"groupTitle": "Chat_Interactions"
},
{
+ "type": "put",
+ "url": "/api/chat/interactions/{id}/close",
+ "title": "Close Interaction",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "addMessage",
+ "group": "Chat_Interactions",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/chatInteraction/index.js",
+ "groupTitle": "Chat_Interactions"
+ },
+ {
"type": "post",
"url": "/api/chat/interactions/{id}/messages",
"title": "Creates new messages",
"groupTitle": "Chat_Interactions"
},
{
- "type": "put",
- "url": "/api/chat/interactions/{id}/close",
- "title": "Close Interaction",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "addMessage",
- "group": "Chat_Interactions",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/chatInteraction/index.js",
- "groupTitle": "Chat_Interactions"
- },
- {
"type": "post",
"url": "/api/chat/interactions/{id}/attachment_upload",
"title": "Add attachment",
"groupTitle": "Fax_Messages"
},
{
- "type": "post",
- "url": "/api/fax/messages",
- "title": "Create message and send Fax",
+ "type": "put",
+ "url": "/api/fax/messages/{id}/reject",
+ "title": "Rejects message",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
- "type": "put",
- "url": "/api/fax/messages/{id}/reject",
- "title": "Rejects message",
+ "type": "post",
+ "url": "/api/fax/messages",
+ "title": "Create message and send Fax",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
"type": "get",
- "url": "/api/rpc/voice/queues",
- "title": "Gets a list of RTVoiceQueues",
+ "url": "/api/rpc/outbound",
+ "title": "Gets a list of RTOutbound",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "get",
- "url": "/api/rpc/outbound",
- "title": "Gets a list of RTOutbound",
+ "url": "/api/rpc/voice/queues",
+ "title": "Gets a list of RTVoiceQueues",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "post",
- "url": "/api/sms/accounts/{id}/status",
+ "url": "/api/sms/messages/{id}/status",
"title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"group": "Sms_Accounts",
"description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsAccount/index.js",
+ "filename": "server/api/smsMessage/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "post",
- "url": "/api/sms/messages/{id}/status",
- "title": "Receive message status",
+ "type": "get",
+ "url": "/api/sms/accounts/{id}/status",
+ "title": "Receive message status as get request",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsMessage/index.js",
+ "filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status as get request",
+ "title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
"type": "delete",
- "url": "/api/whatsapp/queues/{id}/teams",
+ "url": "/api/fax/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/whatsappQueue/index.js",
+ "filename": "server/api/faxQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/openchannel/queues/{id}/teams",
+ "url": "/api/mail/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/openchannelQueue/index.js",
+ "filename": "server/api/mailQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/voice/queues/{id}/teams",
+ "url": "/api/openchannel/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/voiceQueue/index.js",
+ "filename": "server/api/openchannelQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "delete",
- "url": "/api/voice/Prefixes/{id}/teams",
- "title": "Remove teams from a voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X DELETE",
- "type": "json"
- }
- ],
- "name": "RemoveTeams",
- "group": "Teams",
- "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Teams"
- },
- {
- "type": "delete",
- "url": "/api/chat/queues/{id}/teams",
+ "url": "/api/whatsapp/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/chatQueue/index.js",
+ "filename": "server/api/whatsappQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/fax/queues/{id}/teams",
+ "url": "/api/voice/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/faxQueue/index.js",
+ "filename": "server/api/voiceQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/mail/queues/{id}/teams",
+ "url": "/api/chat/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/mailQueue/index.js",
+ "filename": "server/api/chatQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "post",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Add teams to voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "AddTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "get",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Gets voice prefix team",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X GET",
- "type": "json"
- }
- ],
- "name": "GetTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "post",
"url": "/api/voice/prefixes/{id}/users",
"title": "Add agents to a prefix",
"examples": [
"groupTitle": "Voice_Recordings"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
"groupTitle": "Chat_Interactions"
},
{
+ "type": "put",
+ "url": "/api/chat/interactions/{id}/close",
+ "title": "Close Interaction",
+ "examples": [
+ {
+ "title": "Example usage:",
+ "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
+ "type": "json"
+ }
+ ],
+ "name": "addMessage",
+ "group": "Chat_Interactions",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "version": "0.0.0",
+ "filename": "server/api/chatInteraction/index.js",
+ "groupTitle": "Chat_Interactions"
+ },
+ {
"type": "post",
"url": "/api/chat/interactions/{id}/messages",
"title": "Creates new messages",
"groupTitle": "Chat_Interactions"
},
{
- "type": "put",
- "url": "/api/chat/interactions/{id}/close",
- "title": "Close Interaction",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/chat/interactions/{id}/close -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "addMessage",
- "group": "Chat_Interactions",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/chatInteraction/index.js",
- "groupTitle": "Chat_Interactions"
- },
- {
"type": "post",
"url": "/api/chat/interactions/{id}/attachment_upload",
"title": "Add attachment",
"groupTitle": "Fax_Messages"
},
{
- "type": "post",
- "url": "/api/fax/messages",
- "title": "Create message and send Fax",
+ "type": "put",
+ "url": "/api/fax/messages/{id}/reject",
+ "title": "Rejects message",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
- "type": "put",
- "url": "/api/fax/messages/{id}/reject",
- "title": "Rejects message",
+ "type": "post",
+ "url": "/api/fax/messages",
+ "title": "Create message and send Fax",
"examples": [
{
"title": "Example usage:",
],
"name": "rejectMessage",
"group": "Fax_Messages",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/faxMessage/index.js",
"groupTitle": "Fax_Messages"
},
{
"type": "get",
- "url": "/api/rpc/voice/queues",
- "title": "Gets a list of RTVoiceQueues",
+ "url": "/api/rpc/outbound",
+ "title": "Gets a list of RTOutbound",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "get",
- "url": "/api/rpc/outbound",
- "title": "Gets a list of RTOutbound",
+ "url": "/api/rpc/voice/queues",
+ "title": "Gets a list of RTVoiceQueues",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",
+ "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",
"type": "json"
}
],
"name": "RTVoiceQueues",
"group": "RPC_Realtime",
- "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/rpc/index.js",
"groupTitle": "RPC_Realtime"
},
{
"type": "post",
- "url": "/api/sms/accounts/{id}/status",
+ "url": "/api/sms/messages/{id}/status",
"title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"group": "Sms_Accounts",
"description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsAccount/index.js",
+ "filename": "server/api/smsMessage/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "post",
- "url": "/api/sms/messages/{id}/status",
- "title": "Receive message status",
+ "type": "get",
+ "url": "/api/sms/accounts/{id}/status",
+ "title": "Receive message status as get request",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/messages/{id}/status \\ \n -H 'Content-Type: application/json' -v -X POST",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/smsMessage/index.js",
+ "filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/sms/accounts/{id}/status",
- "title": "Receive message status as get request",
+ "title": "Receive message status",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X GET",
+ "content": "curl https://{domain}/api/sms/accounts/{id}/status -H 'Content-Type: application/json' -v -X POST",
"type": "json"
}
],
"name": "statusMessage",
"group": "Sms_Accounts",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/smsAccount/index.js",
"groupTitle": "Sms_Accounts"
},
{
"type": "delete",
- "url": "/api/whatsapp/queues/{id}/teams",
+ "url": "/api/fax/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/whatsappQueue/index.js",
+ "filename": "server/api/faxQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/openchannel/queues/{id}/teams",
+ "url": "/api/mail/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/openchannelQueue/index.js",
+ "filename": "server/api/mailQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/voice/queues/{id}/teams",
+ "url": "/api/openchannel/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/voiceQueue/index.js",
+ "filename": "server/api/openchannelQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "delete",
- "url": "/api/voice/Prefixes/{id}/teams",
- "title": "Remove teams from a voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X DELETE",
- "type": "json"
- }
- ],
- "name": "RemoveTeams",
- "group": "Teams",
- "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Teams"
- },
- {
- "type": "delete",
- "url": "/api/chat/queues/{id}/teams",
+ "url": "/api/whatsapp/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/whatsapp/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/chatQueue/index.js",
+ "filename": "server/api/whatsappQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/fax/queues/{id}/teams",
+ "url": "/api/voice/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/faxQueue/index.js",
+ "filename": "server/api/voiceQueue/index.js",
"groupTitle": "Teams"
},
{
"type": "delete",
- "url": "/api/mail/queues/{id}/teams",
+ "url": "/api/chat/queues/{id}/teams",
"title": "Remove teams from a queue",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",
+ "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",
"type": "json"
}
],
"group": "Teams",
"description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
- "filename": "server/api/mailQueue/index.js",
+ "filename": "server/api/chatQueue/index.js",
"groupTitle": "Teams"
},
{
},
{
"type": "post",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Add teams to voice prefix",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",
- "type": "json"
- }
- ],
- "name": "AddTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "get",
- "url": "/api/voice/prefixes/{id}/teams",
- "title": "Gets voice prefix team",
- "examples": [
- {
- "title": "Example usage:",
- "content": "curl https://{domain}/api/voice/prefixes/{id}/teams -v -u {name}:{password} -X GET",
- "type": "json"
- }
- ],
- "name": "GetTeams",
- "group": "Voice_Prefix",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
- "version": "0.0.0",
- "filename": "server/api/voicePrefix/index.js",
- "groupTitle": "Voice_Prefix"
- },
- {
- "type": "post",
"url": "/api/voice/prefixes/{id}/users",
"title": "Add agents to a prefix",
"examples": [
"groupTitle": "Voice_Recordings"
},
{
- "type": "get",
+ "type": "post",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
},
{
- "type": "post",
+ "type": "get",
"url": "/api/voice/recordings/{id}/transcribe",
"title": "Run Transcribe Recording",
"examples": [
{
"title": "Example usage:",
- "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -d '{\"runSentiment\": \"true\"}' -v -u {name}:{password} -X POST",
+ "content": "curl https://{domain}/api/voice/recordings/{id}/transcribe -v -u {name}:{password} -X GET",
"type": "json"
}
],
"name": "transcribe",
"group": "Voice_Recordings",
- "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
+ "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",
"version": "0.0.0",
"filename": "server/api/voiceRecording/index.js",
"groupTitle": "Voice_Recordings"
define({
"name": "xCALLY Motion API",
- "version": "2.5.35",
+ "version": "2.5.34",
"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.",
"title": "xCALLY MOTION API",
"header": {
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-09-23T11:01:20.490Z",
+ "time": "2021-09-23T13:37:49.567Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "xCALLY Motion API",
- "version": "2.5.35",
+ "version": "2.5.34",
"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.",
"title": "xCALLY MOTION API",
"header": {
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-09-23T11:01:20.490Z",
+ "time": "2021-09-23T13:37:49.567Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
{
"name": "motion",
- "version": "2.5.35",
+ "version": "2.5.34",
"description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
"main": "server/app.js",
"engines": {
"aws-sdk": "2.610.0",
"bimedia-machine-uuid": "1.0.1",
"bluebird": "3.7.2",
- "html-entities": "2.3.2",
"body-parser": "1.19.0",
"compare-versions": "3.6.0",
"composable-middleware": "0.3.0",
"connect-timeout": "1.9.0",
"cookie-parser": "1.4.5",
"cors": "2.8.5",
- "cron-job-manager": "1.0.7",
"crypto-js": "3.1.9-1",
+ "cron-job-manager": "1.0.7",
"desk.js": "0.1.4",
"dialogflow": "0.8.2",
"ejs": "2.7.4",
{
"FORGOTPASSWORD": {
- "TITLE": "Passwort wiederherstellen",
- "EMAIL_ADRESS": "E-Mail Adresse",
+ "TITLE": "Ihr Passwort wiederherstellen",
+ "EMAIL_ADRESS": "E-mail Adresse",
"SEND_RESET_LINK": "LINK ZUM ZURÜCKSETZEN SENDEN",
"GO_BACK": "Zurück zum Login",
"LINK_SENT": "Link gesendet",
- "LINNK_SENT_MESSAGE": "Eine E-Mail mit einem Link zum Zurücksetzen des Passwortes wurde an Ihre Adresse gesendet.",
- "PASSWORD_RESET_ERROR": "Fehler beim Zurücksetzen des Passwortes",
+ "LINNK_SENT_MESSAGE": "Eine e-Mail mit einem Link zum Zurücksetzen des Kennworts wurde an Ihre Adresse gesendet!",
+ "PASSWORD_RESET_ERROR": "Passwort Fehler zurücksetzen",
"ERRORS": {
- "EMAIL_REQUIRED": "Eingabe E-Mail Adresse erforderlich",
- "EMAIL_MUST_VALID": "Es muss eine gültige E-Mail Adresse eingegeben werden"
+ "EMAIL_REQUIRED": "Im Feld E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "E-Mail muss eine gültige e-mail Adresse"
}
}
}
{
"LOGIN": {
- "TITLE": "Bitte mit Ihrem Konto anmelden",
+ "TITLE": "Melden Sie sich bei Ihrem Konto an",
"EMAIL": "E-Mail",
"PASSWORD": "Passwort",
- "REMEMBER_ME": "Anmeldedaten merken",
+ "REMEMBER_ME": "Erinnere Dich an Mich",
"FORGOT_PASSWORD": "Passwort vergessen?",
- "LOG_IN": "ANMELDEN",
+ "LOG_IN": "LOG IN",
"OR": "Oder",
- "WITH_GOOGLE": "Anmeldung mit Google",
- "WITH_FACEBOOK": "Anmeldung mit Facebook",
+ "WITH_GOOGLE": "Melden Sie sich mit Google",
+ "WITH_FACEBOOK": "Mit Facebook anmelden",
"DONT_HAVE_ACCOUNT": "Sie haben noch kein Konto?",
- "CREATE_ACCOUNT": "Konto erstellen",
+ "CREATE_ACCOUNT": "Erstellen Sie ein Konto",
"ERRORS": {
"EMAIL_REQUIRED": "Pflichtfeld",
"EMAIL_MUST_VALID": "Falsches Format",
"USERNAME_REQUIRED": "Pflichtfeld"
},
"USERNAME": "Benutzername",
- "CANCEL": "Abbrechen",
- "SELECT": "Auswählen",
+ "CANCEL": "Stornieren",
+ "SELECT": "Wählen",
"TELEPHONES": "Telefone"
}
}
"METRIC_REQUIRED": "Pflichtfeld",
"COLUMN_REQUIRED": "Pflichtfeld",
"VALUE_REQUIRED": "Pflichtfeld",
- "CUSTOM_METRIC_REQUIRED": "Pflichtfeld",
+ "CUSTOM_METRIC_REQUIRED": "benutzerdefinierte Metrik (erforderlich)",
"ALIAS_REQUIRED": "Pflichtfeld"
},
"NEW_METRIC": "Neue Metrik",
"SAVE": "Speichern",
"BACK": "Zurück",
"SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Keine auswählen",
"TYPE": "Typ",
"EXTRACTEDREPORTS": "Extrahierte Berichte",
"DATE_RANGE_FROM": "Datum von",
"GENERAL": "Allgemein",
"FIELDS": "Felder",
"CONDITION": "Bedingung",
- "OPERATOR": "Operator",
+ "OPERATOR": "Betreiber",
"GROUP": "Gruppe",
"COLUMN": "Spalte",
"VALUE": "Wert",
"PREVIEW": "Vorschau",
- "LIMITED_RESULT": "Ergebins begrenzt",
+ "LIMITED_RESULT": "BEGRENZTES ERGEBNIS",
"NO_DATA": "Keine Daten",
"CONDITIONS": "Bedingungen",
"ALIAS": "Alias",
"FUNCTION": "Funktion",
"GROUP_BY": "Gruppieren nach",
- "ORDER_BY": "Sortieren nach",
+ "ORDER_BY": "Bestellung von",
"ADD_REPORTFIELD": "Feld hinzufügen",
"EDIT_REPORTFIELD": "Feld bearbeiten",
"DELETE_REPORTFIELD": "Feld löschen",
"NO_METRIC_FOUND": "Keine Metrik gefunden",
"NO_AVAILABLE_INFO": "keine Informationen verfügbar",
"CUSTOM_METRIC": "Benutzerdefinierte Metrik",
- "DELETE_EXTRACTEDREPORT": "Extrahierte Berichte löschen",
+ "DELETE_EXTRACTEDREPORT": "Löschen extrahierte Berichte",
"EDIT_EXTRACTEDREPORT": "Extrahierte Berichte bearbeiten",
- "DOWNLOAD_EXTRACTEDREPORT": "Extrahierte Berichte herunterladen",
+ "DOWNLOAD_EXTRACTEDREPORT": "Herunterladen extrahierte Berichte",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"DELETE": "Löschen",
"REPORTNAME": "Berichtsname",
"SEND_IF_EMPTY": "Senden, wenn leer",
"CHAT": {
"AMAZONLEX": "Amazon Lex",
"TEXT": "Text",
- "TIMES": "Anzahl der Zeiten pro Interaktion",
+ "TIMES": "Anzahl von Malen pro Interaktion",
"EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
"AUTOREPLY": "Automatische Antwort",
- "NEW_CHATDISPOSITION": "Neue Chat-Qualifizierung",
+ "NEW_CHATDISPOSITION": "Neue Chat-Disposition",
"ENABLECUSTOMERATTACHMENT": "Kundenanhänge aktivieren",
- "OFFLINE_CHAT_BUTTON": "Button Chat offline",
+ "OFFLINE_CHAT_BUTTON": "Offline-Chat-Taste",
"OFFLINESTATUS": "Offline Status",
"NAME": "Name",
"CHATQUEUES": "Chat-Warteschlangen",
"STRATEGY": "Strategie",
"AGENT_TIMEOUT": "Agent Timeout",
"DESCRIPTION": "Beschreibung",
- "KEY": "Schlüssel",
+ "KEY": "Key",
"ALIAS": "Alias-Name",
"VARIABLE": "Variable",
"INTERVAL": "Intervall",
- "EDIT_CLOSE": "Bearbeitung abschließen",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
"TIMEZONE": "Zeitzone",
"MESSAGE": "Nachricht",
"ADVANCED": "Erweitert",
"FORWARDTRANSCRIPT": "Transkript weiterleiten",
"FORWARDTRANSCRIPTMESSAGE": "Transkript-Nachricht weiterleiten",
- "SKIPMESSAGEBUTTON": "Nachrichtenbutton überspringen",
+ "SKIPMESSAGEBUTTON": "Nachrichtentaste überspringen",
"EDIT_MESSAGE": "Nachricht bearbeiten",
- "CONDITION_AGREEMENT": "Konditionelle Vereinbarung",
- "NONE": "Nichts",
+ "CONDITION_AGREEMENT": "Bedingungsvereinbarung",
+ "NONE": "Keine",
"PRIORITY": "Priorität",
"ONLINESTATUS": "Online Status",
- "UNMANAGEDSTATUS": "Status nicht bearbeitet",
+ "UNMANAGEDSTATUS": "Nicht verwalteter Status",
"AUTOCLOSE": "Automatisches Schließen aktivieren",
- "ENABLEUNMANAGEDNOTE": "Unbearbeitete Nachricht aktivieren",
- "UNMANAGEDMESSAGE": "Unbearbeitete Nachricht",
+ "ENABLEUNMANAGEDNOTE": "Nicht verwaltete Nachricht aktivieren",
+ "UNMANAGEDMESSAGE": "Nachricht",
"SKIPUNMANAGED": "Nachricht überspringen",
"SENDUNMANAGED": "Nachricht senden",
- "WEBSITESCRIPT": "Webseiten-Skript",
+ "WEBSITESCRIPT": "Website-Script",
"DELETE_OFFLINEMESSAGE": "Löschen",
"OFFLINEMESSAGES": "Offline Nachrichten",
"FORWARD_OFFLINE": "Offline weiterleiten",
"FORWARD_OFFLINE_ADDRESS": "Offline-Adresse weiterleiten",
"CLOSINGFORM": "Formular schließen",
"ENABLERATING": "Bewertung aktivieren",
- "ENABLECUSTOMERWRITING": "Kunde kann schreiben, bevor Chat akzeptiert wird",
+ "ENABLECUSTOMERWRITING": "Dem Kunden \"schreiben\" erlauben, bevor der Agent akzeptiert",
"ENABLEFEEDBACK": "Feedback aktivieren",
"RATINGTYPE": "Bewertungstyp",
- "CLOSINGMESSAGE": "Abschluss Nachricht",
- "CLOSINGMESSAGEBUTTON": "Button für Abschluss Nachricht",
+ "CLOSINGMESSAGE": "Nachricht schließen",
+ "CLOSINGMESSAGEBUTTON": "Nachrichtentaste schließen",
"RATINGSTARSNUMBER": "Anzahl der Bewertungssterne",
"EDIT_GOTOIF": "GotoIf bearbeiten",
"CONDITION": "Bedingung",
- "TRUEPRIORITY": "Wahre Priorität",
+ "TRUEPRIORITY": "Echte Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"VALUE": "Wert",
"WEBSITEALIAS": "Website-Alias",
"ERRORS": {
"TEXT_REQUIRED": "Pflichtfeld",
"SENDUNMANAGED_REQUIRED": "Pflichtfeld",
- "SENDUNMANAGED_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "SKIPUNMANAGED_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "UNMANAGEDMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "WEBSITEALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "SENDUNMANAGED_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "SKIPUNMANAGED_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
+ "UNMANAGEDMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
+ "WEBSITEALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{{{max}} haben",
"AGENT_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
"CONDITION_REQUIRED": "Pflichtfeld",
"TIMEOUT_REQUIRED": "Pflichtfeld",
"REJECTURL_MUST_VALID_URL": "Falsches Format",
"CLOSEURL_MUST_VALID_URL": "Falsches Format",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"WAITINGMESSAGE_REQUIRED": "Pflichtfeld",
"WAITINGTITLE_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "KEY_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"KEY_REQUIRED": "Pflichtfeld",
- "WAITINGMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "WAITINGTITLE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "HEADER_OFFLINE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "CLOSINGQUESTION_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "WAITINGMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "WAITINGTITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "HEADER_OFFLINE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "CLOSINGQUESTION_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"VALUE_REQUIRED": "Pflichtfeld",
- "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "OFFLINEMESSAGEBODY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "PLACEHOLDERMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "NOTETITLE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
- "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "OFFLINEMESSAGEBODY_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "PLACEHOLDERMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "NOTETITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"FONTSIZE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
- "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"VERTICALPOSITION_REQUIRED": "Pflichtfeld",
- "CUSTOMERALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "CUSTOMERALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"TAG_REQUIRED": "Pflichtfeld",
- "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"MESSAGEFONTSIZE_REQUIRED": "Pflichtfeld",
"AGENTALIAS_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"CUSTOMERALIAS_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "SYSTEMALIAS_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "SYSTEMALIAS_MAX_LENGTH": "Der Wert muss eine maximale Länge gleich {{max}} haben",
"SYSTEMALIAS_REQUIRED": "Pflichtfeld",
"ACCESSKEYID_REQUIRED": "Pflichtfeld",
"BOTNAME_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld",
"VIDAOOTOPIC_REQUIRED": "Pflichtfeld"
},
- "CM_FIELD": "Kontaktmanager-Feld",
- "CHATPROACTIVEACTIONS": "Proaktive Anfragen",
- "NEW_CHATPROACTIVEACTION": "Neue proaktive Anfrage",
- "EDIT_CHATPROACTIVEACTION": "Proaktive Anfrage bearbeiten",
- "DELETE_CHATPROACTIVEACTION": "Proaktive Anfrage löschen",
- "ADD_CHATPROACTIVEACTION": "Proaktive Anfrage hinzufügen",
- "NO_CHATPROACTIVEACTION_AVAILABLE": "Keine proaktiven Anfragen verfügbar",
+ "CM_FIELD": "Kontakt Manager Feld",
+ "CHATPROACTIVEACTIONS": "Proaktive Aktionen",
+ "NEW_CHATPROACTIVEACTION": "Neue proaktive Aktion",
+ "EDIT_CHATPROACTIVEACTION": "Proaktive Aktion bearbeiten",
+ "DELETE_CHATPROACTIVEACTION": "Proaktive Aktion löschen",
+ "ADD_CHATPROACTIVEACTION": "Proaktive Aktion hinzufügen",
+ "NO_CHATPROACTIVEACTION_AVAILABLE": "Keine proaktiven Aktionen verfügbar",
"NO_OFFLINEMESSAGE_AVAILABLE": "Keine Offline-Nachrichten verfügbar",
- "MOUSEOVER": "Mouse-Over",
+ "MOUSEOVER": "Maus über",
"TIMEOUT": "Timeout",
"TYPE": "Typ",
- "SELECTOR": "Selektion",
+ "SELECTOR": "Wählschalter",
"AGENT": "Agent",
"GOTO": "Goto",
"GOTOIF": "GotoIf",
"QUEUE": "Warteschlange",
"BUILDER": "Builder",
"PREVIEW": "Vorschau",
- "EDIT_AGENT": "Agenten bearbeiten",
+ "EDIT_AGENT": "Agent bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
"EDIT_GOTO": "Goto bearbeiten",
"EDIT_GOTOIf": "GotoIf bearbeiten",
"LIST": "Liste",
"SNIPPET": "Snippet",
"FORMS": "Formulare",
- "UP": "Nach Oben",
- "DOWN": "Nach Unten",
- "COLLAPSE": "Einklappen",
- "PROACTIVEACTIONS": "Proaktive Anfragen",
- "DISPOSITIONS": "Qualifizierungen",
+ "UP": "Bis",
+ "DOWN": "Unten",
+ "COLLAPSE": "Zusammenklappen",
+ "PROACTIVEACTIONS": "Proaktive Aktionen",
+ "DISPOSITIONS": "Dispositionen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"FIDELITY": "Treue",
- "APPEARANCE": "Darstellung",
+ "APPEARANCE": "Aussehen",
"MAINCOLOR": "Hauptfarbe",
"FOCUSCOLOR": "Fokusfarbe",
- "BUTTONCOLOR": "Buttonfarbe",
+ "BUTTONCOLOR": "Tastenfarbe",
"HEADERSHAPE": "Kopfzeilenform",
"ANIMATION": "Animation",
"DEFAULT": "Standard",
"LABELS": "Labels",
"HEADER_ONLINE": "Online-Kopfzeile",
"ONLINE_MESSAGE": "Online Nachricht",
- "NAME_TITLE": "Name Titel",
- "USERNAME_PLACEHOLDER": "Platzhalter für Nutzernamen",
- "EMAIL_TITLE": "E-Mail Titel",
- "EMAIL_PLACEHOLDER": "Platzhalter für E-Mail Adresse",
- "START_CHAT_BUTTON": "'Chat starten' Button",
- "AGENTS_BUSY": "Agenten besetzt",
+ "NAME_TITLE": "Name Eingabebezeichnung",
+ "USERNAME_PLACEHOLDER": "Benutzername Eingabe Platzhalter",
+ "EMAIL_TITLE": "E-Mail-Eingabe Label",
+ "EMAIL_PLACEHOLDER": "Platzhalter für E-Mail-Eingabe",
+ "START_CHAT_BUTTON": "'Chat starten' Taste",
+ "AGENTS_BUSY": "Meldung für besetzte Agenten",
"HEADER_OFFLINE": "Offline-Kopfzeile",
"OFFLINE_MESSAGE": "Offline Nachricht",
- "MESSAGE_TITLE": "Nachricht Titel",
- "ENQUIRY_MESSAGE_PLACEHOLDER": "Platzhalter für Nachrichteneingabe",
- "ENQUIRY_BUTTON": "Anfrage-Button",
+ "MESSAGE_TITLE": "Nachrichtenbezeichnung",
+ "ENQUIRY_MESSAGE_PLACEHOLDER": "Platzhalter für die Eingabe von Anfragenachrichten",
+ "ENQUIRY_BUTTON": "Anfrage-Taste Text",
"RATING_MESSAGE": "Bewertungsnachricht",
- "RATING_SEND": "Button Bewertung senden",
- "RATING_SKIP": "Button Bewertung überspringen",
+ "RATING_SEND": "Bewertung Senden Tasten-Text",
+ "RATING_SKIP": "Bewertung Überspringen Tasten-Text",
"ONLINE": "Online",
"OFFLINE": "Offline",
- "PROACTIVE": "Proaktiv",
+ "PROACTIVE": "Proaktive",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode akzeptieren",
+ "ACCEPTMETHOD": "Methode",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schließen",
+ "CLOSE": "Schliessen",
"CLOSEMETHOD": "Methode schließen",
"CLOSEURL": "URL schließen",
- "EMBEDDING": "Einbetten",
+ "EMBEDDING": "Einbettung",
"GENERAL": "Allgemein",
"SELECTED": "Ausgewählte",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"BACK": "Zurück",
"HELP": {
- "MAPKEY": "Das folgende Feld aus dem Kontaktmanager:",
- "FROMKEY": "wird in dem Chat-Snippet wie folgt zugeordnet:",
- "TOKEN": "Automatisch generierter Token zur Verwendung im Skript",
+ "MAPKEY": "Das folgende Motion Contact Manager-Feld:",
+ "FROMKEY": "Wird in Ihrem Motion Chat-Snippet wie folgt zugeordnet:",
+ "TOKEN": "Automatisch generiertes Token, das im Skript verwendet wird",
"COPYSCRIPTTOCLIPBOARD": "Kopieren Sie den Skripttext und fügen Sie ihn in Ihre Website ein",
"FORWARD_OFFLINE": "Sie können mehrere durch Kommas getrennte Adressen hinzufügen (z. B. john.doe@xcally.com, jane.miller@xcally.com)",
"MOTIONADDRESS": "Das Feld muss das folgende Format haben: ≪protocol>://<IP-Adresse>[:<port>]. Beispiel: https://X.Y.Z.W",
"MOTIONPROXY": "Das Feld muss das folgende Format haben: ≪Protocol>:// ≪IP-Adresse>: ≪port>]. Beispiel: https://X.Y.Z.W",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "LIST": "Liste für die Zuordnung aus dem Kontaktmanager",
+ "LIST": "Contact Manager-Liste, die zum Zuordnen von Kontakten verwendet wird",
"KEY": "Website-Kurzname (5 Zeichen), der auf der Registerkarte \"Agent\" angezeigt wird",
- "INTEVAL": "Wählen aus der Liste der verfügbaren Intervalle",
- "TIMEZONE": "Zeitzone auswählen (Standard = lokale Zeitzone)",
- "ENABLERATING": "Bewertung nach Chat durch Kunden aktivieren",
- "ENABLEFEEDBACK": "Feedback nach Chat durch Kunden aktivieren (Max. 150 Zeichen)",
- "FORWARDTRANSCRIPT": "Chatprotokoll nach Abschluss per E-Mail senden",
- "AUTOCLOSE": "Aktivieren Sie diese Option, wenn Chat-Sitzungen als nicht bearbeitet geschlossen werden sollen, sofern kein Agent verfügbar ist.",
- "ENABLEUNMANAGEDNOTE": "Automatische Nachricht an den Kunden, wenn alle Agenten besetzt sind und somit der Chat nicht verfügbar ist",
- "ENABLECUSTOMERWRITING": "Legt fest, ob der Kunde bereits im Chat schreiben kann, bevor ein Agent den Chat entgegen nimmmt. Hinweis: Dadurch kein Status \"unbearbeitet\"",
- "INTERVAL": "Bitte aus der Liste wählen",
+ "INTEVAL": "Wird aus der Liste der verfügbaren Intervalle ausgewählt",
+ "TIMEZONE": "Wählen Sie eine aus der Liste aus (Standard = lokale Zeitzone)",
+ "ENABLERATING": "Aktivieren Sie es, wenn Sie möchten, dass der Webbesucher die Interaktion am Ende bewerten kann",
+ "ENABLEFEEDBACK": "Aktivieren Sie es, wenn Sie möchten, dass der Webbesucher am Ende ein Feedback (bis zu 150 Zeichen) senden kann",
+ "FORWARDTRANSCRIPT": "Aktivieren Sie diese Option, wenn der Webbesucher aufgefordert wird, ein Chat-Protokoll per E-Mail zu erhalten",
+ "AUTOCLOSE": "Aktivieren Sie diese Option, wenn Chat-Sitzungen als nicht verwaltet geschlossen werden sollen, wenn kein Agent verfügbar ist. Weitere Informationen finden Sie unter: https://wiki.xcallymotion.com/display/XMV/Chat+Websites#ChatWebsites-Snippet",
+ "ENABLEUNMANAGEDNOTE": "Aktivieren Sie diese Option, wenn dem Besucher eine Nachricht angezeigt werden soll, wenn alle Agenten besetzt sind und der Chat nicht mehr verwaltet wird",
+ "ENABLECUSTOMERWRITING": "Aktivieren Sie es, wenn der Chat gestartet werden soll, ohne auf einen verfügbaren Agenten zu warten (Achtung: Wenn Sie ihn aktivieren, werden Ihre Chats niemals nicht verwaltet). Weitere Informationen finden Sie unter: https://wiki.xcallymotion.com/display/XMV/ Chat + Websites # ChatWebsites-Snippet ",
+ "INTERVAL": "Wählen Sie eins aus der Liste aus",
"HIDEWHENOFFLINE": "Snippet ausblenden, wenn offline",
- "AGENTIDENTIFIER": "Agentenkennung innerhalb der Chat-Sitzung im Snippet",
+ "AGENTIDENTIFIER": "Repräsentiert die Agentenkennung innerhalb der Chat-Sitzung im Snippet",
"WEBSITEALIAS": "Ein Präfix, mit dem der Agentenname (Präfix + Agenten-ID) erstellt wird, der dem Webbesucher während der Chat-Sitzung angezeigt wird",
- "VERTICALPOSITION": "Prozentualer Abstand in Prozent vom oberen Bildschirmrand",
- "WELCOMEMESSAGE": "Leer lassen, um keine Nachricht zu senden",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung"
+ "VERTICALPOSITION": "Stellt den Abstand in Prozent von oben dar",
+ "WELCOMEMESSAGE": "Lassen Sie das Feld leer, wenn Sie keine Willkommensnachricht senden möchten",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pausieren Sie die Verwendung, wenn die obligatorische Disposition aktiviert ist"
},
"ADDRESS": "Adresse",
"ONLINESTATE": "Online Status",
"RATINGSTATE": "Bewertungsstatus",
"ENQUIRY": "Anfrage",
"OFFLINETEMPLATE": "Offline Vorlage",
- "CHATDISPOSITIONS": "Chat-Qualifizierungen",
- "NO_CHATDISPOSITION_AVAILABLE": "Keine Qualifizierung verfügbar",
- "ADD_CHATDISPOSITION": "Qualifizierung hinzufügen",
+ "CHATDISPOSITIONS": "Chat-Dispositionen",
+ "NO_CHATDISPOSITION_AVAILABLE": "Keine Chat-Dispositionen verfügbar",
+ "ADD_CHATDISPOSITION": "Chat Disposition hinzufügen",
"DELETE": "Löschen",
- "EDIT_CHATDISPOSITION": "Qualifizierung bearbeiten",
- "DELETE_CHATDISPOSITION": "Qualifizierung löschen",
+ "EDIT_CHATDISPOSITION": "Chat-Disposition bearbeiten",
+ "DELETE_CHATDISPOSITION": "Chat-Disposition löschen",
"CHAT": "Chat",
"ID": "ID",
"NEW_CHATQUEUE": "Neue Chat-Warteschlange",
"NEW_CHATWEBSITE": "Neue Chat-Website",
- "ROUNDED": "Rundes Design",
- "SQUARED": "Eckiges Design",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ROUNDED": "Abgerundet",
+ "SQUARED": "Quadratisch",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
"ALL_TEAMS": "Alle Teams",
"SELECTED_TEAMS": "Ausgewählte Teams",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"CONTACT": "Kontakt",
"STARTEDAT": "Gestartet am",
"STATUS": "Status",
"CLOSED": "Geschlossen",
- "OPENED": "Geöffnet",
- "OPEN": "Offen",
+ "OPENED": "Öffnen",
+ "OPEN": "Öffnen",
"ACCOUNT": "Konto",
"INTERACTION": "Interaktion",
"INTERACTIONS": "Interaktionen",
"WEBSITE": "Website",
- "ALL": "Alles",
- "SELECT_STATUS": "Status auswählen",
+ "ALL": "Alle",
+ "SELECT_STATUS": "Wählen Sie einen Status",
"FILTER": "Filter",
"FILTERS": "Filter",
"TEAMADD_CHATQUEUE": "Team zur Chat-Warteschlange hinzufügen",
- "AGENTADD_CHATQUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
+ "AGENTADD_CHATQUEUE": "Agent zur Chat-Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CLOSEDAT": "Geschlossen am",
- "DISPOSITION": "Qualifizierung",
+ "DISPOSITION": "Disposition",
"CREATEDAT": "Erstellt am",
"NOTES": "Notizen",
"NO_INTERACTION_AVAILABLE": "Keine Interaktionen verfügbar",
- "SELECTED_WEBSITE": "Ausgewählte Webseite",
+ "SELECTED_WEBSITE": "Wählen Sie eine Website",
"GOTOP": "Gotop",
"EDIT_GOTOP": "Gotop bearbeiten",
- "SELECT_WEBSITE": "Webseite auswählen",
+ "SELECT_WEBSITE": "Wählen Sie eine Website",
"INFO": "Info",
"OFFLINEMESSAGES_CHATWEBSITE": "Zu Offline-Nachrichten gehen",
- "WAITINGTITLE": "Titel während Warten",
- "WAITINGMESSAGE": "Wartenachricht",
+ "WAITINGTITLE": "Wartetitel",
+ "WAITINGMESSAGE": "Wartende Nachricht",
"RATING": "Bewertung",
"NO_RATINGVALUE": "Keine Bewertung",
- "AGENTSADD_QUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
+ "AGENTSADD_QUEUE": "Agent zur Chat-Warteschlange hinzufügen",
"QUEUES": "Warteschlangen",
"LOGGED_IN": "Angemeldet",
- "PAUSED": "in Pause",
+ "PAUSED": "Pausiert",
"READY": "Bereit",
- "WAITING": "Wartezustand",
- "WRITING": "am Schreiben",
+ "WAITING": "Warten",
+ "WRITING": "Schreiben",
"MAIL": "E-Mail",
"SMS": "SMS",
- "OPENCHANNEL": "Offener Kanal",
+ "OPENCHANNEL": "Openchannel",
"FAX": "Fax",
"PAUSE": "Pause",
"REALTIME": "Echtzeit",
"AGENTS": "Agenten",
"FULLNAME": "Vollständiger Name",
- "INTERNAL": "Intern",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"LOGOUT": "Abmelden",
"UNPAUSE": "Pause beenden",
- "AGENTADD_QUEUE": "Agenten zur Chat-Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agent zur Chat-Warteschlange hinzufügen",
"DEFAULT_PAUSE": "Standard Pause",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"UNAVAILABLE": "Nicht verfügbar",
"NOT_INUSE": "Nicht in Verwendung",
"REACHABLE": "Erreichbar",
- "IN_USE": "In Verwendung",
- "VOICE": "Anrufe",
+ "IN_USE": "Im Einsatz",
+ "VOICE": "Sprache",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_CHATQUEUE": "Zur Echtzeit-Warteschlange für Chat gehen",
+ "GOTOREALTIME_CHATQUEUE": "Go to Echtzeit-Chat-Warteschlange",
"PARTIALPAUSE": "Teilpause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"CAPACITY": "Kapazität",
"TAGS": "Tags",
"SHOWAGENTAVATAR": "Persönlichen Agenten-Avatar anzeigen",
- "AGENTAVATAR": "Agenten-Avatar",
- "SPYINTERACTION": "Mitlesen",
+ "AGENTAVATAR": "Agent Avatar",
+ "SPYINTERACTION": "Spion",
"INTERACTIONS_CHATWEBSITE": "Zu den Interaktionen gehen",
"REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "CLOSINGQUESTION": "Abschlussfrage",
+ "CLOSINGQUESTION": "Frage schließen",
"WEBSCRIPT": "Webskript",
- "NO_CHATCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NEW_CHATCANNEDANSWER": "Neue Textvorlage",
- "ADD_CHATCANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_CHATCANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_CHATCANNEDANSWER": "Textvorlage löschen",
- "OFFLINEMESSAGESUBJECT": "Betreff der Nachricht bei Offline",
- "OFFLINEMESSAGEBODY": "Test der Nachricht bei Offline",
- "FORMSUBMITSUCCESSMESSAGE": "Meldung Formular erfolgreich gesendet",
- "FORMSUBMITFAILUREMESSAGE": "Meldung Fehler beim Senden des Formulars",
- "PLACEHOLDERMESSAGE": "Nachricht für Platzhalter",
+ "NO_CHATCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
+ "NEW_CHATCANNEDANSWER": "Neue vordefinierte Antwort",
+ "ADD_CHATCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_CHATCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "DELETE_CHATCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "OFFLINEMESSAGESUBJECT": "Betreff der Nachricht",
+ "OFFLINEMESSAGEBODY": "Nachrichtentext",
+ "FORMSUBMITSUCCESSMESSAGE": "Erfolgsmeldung beim Absenden des Formulars",
+ "FORMSUBMITFAILUREMESSAGE": "Fehlermeldung beim Absenden des Formulars",
+ "PLACEHOLDERMESSAGE": "Platzhalter für Nachrichten",
"NOTETITLE": "Titel der Notiz",
"DELETE_INTERACTION": "Interaktion löschen",
"FONTSIZE": "Schriftgröße",
"TEXTCOLOR": "Textfarbe",
- "COMMAND": "Eingabe",
+ "COMMAND": "Befehl",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"NOTIFICATION": "Benachrichtigung",
"NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSOUND": "Ton",
"NOTIFICATIONTEMPLATE": "Vorlage",
- "HIDEWHENOFFLINE": "Ausblenden, wenn offline",
- "INSERT_MESSAGE_HERE": "Nachricht hier eingeben",
+ "HIDEWHENOFFLINE": "Ausblenden",
+ "INSERT_MESSAGE_HERE": "Fügen Sie hier Ihre Textnachricht ein",
"AGENTALIAS": "Agent Alias",
"AGENTFULLNAME": "Vollständiger Name des Agenten",
"AGENTIDENTIFIER": "Identifikator",
- "WAITFORTHEASSIGNEDAGENT": "Warten auf den zugewiesenen Mitarbeiter",
+ "WAITFORTHEASSIGNEDAGENT": "Warten auf den zugewiesenen Agenten",
"ALIGNMENT": "Ausrichtung",
"BOTTOM_RIGHT": "Unten rechts",
"LEFT": "Links",
"CUSTOMERALIAS": "Kunden-Alias",
"EDIT_TAG": "Tag bearbeiten",
"TAG": "Tag",
- "AGENTADD_CHATWEBSITE": "Agenten zur Chat-Website hinzufügen",
+ "AGENTADD_CHATWEBSITE": "Agent zur Chat-Website hinzufügen",
"BACKGROUNDCOLOR": "Hintergrundfarbe",
"MESSAGEFONTSIZE": "Schriftgröße der Nachricht",
"AGENTTRANSFER": "Agententransfer",
"DIALOGFLOW": "Dialogflow",
"EDIT_DIALOGFLOW": "Dialogflow bearbeiten",
"LANGUAGE": "Sprache",
- "QUEUETRANSFER": "Transfer in Warteschlange",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
"QUEUETRANSFERTIMEOUT": "Timeout bei der Warteschlangenübertragung",
"SYSTEMALIAS": "Systemalias",
"SYSTEMAVATAR": "System-Avatar",
"TRANSFER": "Transfer",
"WELCOMEMESSAGE": "Willkommensnachricht",
- "ENABLECUSTOMERCHECKMARKS": "Bestätigung Nachricht erhalten/gelesen",
- "CANNEDANSWERS": "Textvorlagen",
- "CHATCANNEDANSWERS": "Textvorlagen",
+ "ENABLECUSTOMERCHECKMARKS": "Aktivieren vom Kunden gelieferten / gelesenen Benachrichtigungen",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
+ "CHATCANNEDANSWERS": "Vordefinierte Antworten",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"ACCESSKEYID": "Zugangsschlüssel-ID",
- "BOTNAME": "Botname",
+ "BOTNAME": "Bot-Name",
"EDIT_AMAZONLEX": "Amazon Lex bearbeiten",
"LEXREGION": "Region",
"SECRETACCESSKEY": "Geheimer Zugangsschlüssel",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID, wenn Qualifizierung erforderlich",
- "ENABLESENDBUTTON": "Senden-Button aktivieren",
+ "TEAMS_ASSOCIATION": "Teams Verband",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pausieren Sie die Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "ENABLESENDBUTTON": "Sendetaste aktivieren",
"FEEDBACKTITLE": "Feedback-Titel",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterladen inkl. Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
"LASTMESSAGE": "Letzte Nachricht",
"VIDAOO": "Vidaoo",
"VIDAOOAPIKEY": "Vidaoo Api Key",
"CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privater Schlüssel",
+ "PRIVATEKEY": "Privat Key",
"PROJECTID": "Projekt-ID",
"EMAIL_ACCOUNT": "Email-Konto",
"OPEN_NEW_INTERACTION": "Neue Interaktion öffnen",
- "SUBJECT": "Betreff",
+ "SUBJECT": "Gegenstand",
"ADD_NOTE": "Notiz hinzufügen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "NOTE": "Notiz",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "NOTE": "Hinweis",
"VIDAOOMETADATA": "Vidaoo-Metadaten",
"VIDAOONOTE": "Vidaoo-Hinweis",
"VIDAOOTOPIC": "Vidaoo-Thema"
{
"CONTACTMANAGER": {
- "VOICEQUEUEID": "ID Warteschlange für Sprachanrufe",
- "CAMPAIGNID": "Kampagnen-ID",
- "STATE": "Status",
+ "VOICEQUEUEID": "Sprachwarteschlange ID",
+ "CAMPAIGNID": "Kampagne ID",
+ "STATE": "Zustand",
"NAME": "Name",
"LISTS": "Listen",
"UNIQUEID": "Eindeutige ID",
"ENDTIME": "Endzeit",
"MOTION_BULL": "Motion Bull",
"HOPPER": "Hopper",
- "FINAL": "Hopper final",
- "HISTORY": "Hopper historisch",
+ "FINAL": "Hopper Final",
+ "HISTORY": "Hopper Geschichte",
"SCHEDULEDAT": "Geplant am",
"SEARCH_FOR_ANYONE": "Suche",
"EDIT_LIST": "Liste bearbeiten",
"DELETE_HOPPER": "Hopper löschen",
"RELOAD": "Neu laden",
"NO_COMPANIES": "Kein Unternehmen",
- "NO_AVAILABLE_ITEMS": "Keine Einträge verfügbar",
+ "NO_AVAILABLE_ITEMS": "Keine verfügbaren Artikel",
"ADD": "Hinzufügen",
"ERRORS": {
- "NAME_REQUIRED": "Name ist erforderlich",
- "FIRSTNAME_REQUIRED": "Vorname ist erforderlich",
- "PHONE_REQUIRED": "Telefonnummer ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "FIRSTNAME_REQUIRED": "Der Vorname ist erforderlich",
+ "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
"ALIAS_REQUIRED": "Alias ist erforderlich",
- "VALUE_REQUIRED": "Wert ist erforderlich",
+ "VALUE_REQUIRED": "Der Wert ist erforderlich",
"EMAIL_MUST_VALID": "Falsches Format",
- "PHONEBAR_API": "Statusprüfung für die MotionBar und des Remote-Switches für den Agenten",
+ "PHONEBAR_API": "Prüfen, ob die MotionBar ausgeführt wird und der Fernbedienungsschalter für den Agenten eingeschaltet ist",
"ACTIONTYPE_REQUIRED": "Pflichtfeld",
"CLICKTOACTION_REQUIRED": "Pflichtfeld"
},
"DESCRIPTION": "Beschreibung",
- "DISPOSITION": "Qualifizierung",
- "DISPOSITIONS": "Qualifizierungen",
- "VOICEDISPOSITIONS": "Anrufqualifizierungen",
- "NEW_VOICEDISPOSITION": "Neue Anrufqualifizierung",
+ "DISPOSITION": "Disposition",
+ "DISPOSITIONS": "Dispositionen",
+ "VOICEDISPOSITIONS": "Sprachdispositionen",
+ "NEW_VOICEDISPOSITION": "Neue Sprachdisposition",
"CUSTOM_FIELDS": "Benutzerdefinierte Felder",
"ADD_LIST": "Liste hinzufügen",
"BACK": "Zurück",
"SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Keine auswählen",
"COMPANIES": "Unternehmen",
"EDIT_COMPANY": "Unternehmen bearbeiten",
"DELETE_COMPANY": "Unternehmen löschen",
"STREET": "Straße",
"POSTALCODE": "Postleitzahl",
"DELETE": "Löschen",
- "DELETE_ALL": "Alles Löschen",
+ "DELETE_ALL": "Alle Löschen",
"CONTACTMANAGER": "Kontaktmanager",
"ID": "ID",
"SETTINGS": "Einstellungen",
"NEW_CONTACT": "Neuer Kontakt",
"NEW_TAG": "Neuer Tag",
"UPLOAD_CONTACTS": "Kontakte hochladen",
- "FINISH": "Beenden",
- "SUCCESS": "Erfolg",
+ "FINISH": "Fertig",
+ "SUCCESS": "Erfolgreich",
"FAILURE": "Fehler",
"ALL_CONTACTS": "Alle Kontakte",
"NEW_CUSTOMFIELD": "Neues benutzerdefiniertes Feld",
- "NO_VOICEDISPOSITION_AVAILABLE": "Keine Anrufqualifizierung verfügbar",
- "ADD_VOICEDISPOSITION": "Anrufqualifizierung hinzufügen",
- "EDIT_VOICEDISPOSITION": "Anrufqualifizierung bearbeiten",
- "DELETE_VOICEDISPOSITION": "Anrufqualifizierung löschen",
- "VAT": "Ust-ID.",
- "COMPANYID": "Unternehmens-ID",
+ "NO_VOICEDISPOSITION_AVAILABLE": "Keine Sprachdispositionen verfügbar",
+ "ADD_VOICEDISPOSITION": "Sprachdisposition hinzufügen",
+ "EDIT_VOICEDISPOSITION": "Sprachdisposition bearbeiten",
+ "DELETE_VOICEDISPOSITION": "Sprachdisposition löschen",
+ "VAT": "Mwst.",
+ "COMPANYID": "Ihre Unternehmens-ID",
"WEBSITE": "Website",
"EMAIL_DOMAIN": "E-Mail Domain",
"ADDRESS": "Adresse",
"GOTOCONTACTS_COMPANY": "Kontakte anzeigen",
"ADD_AGENT_TO_LIST": "Agenten zur Liste hinzufügen",
"AGENTADD_LIST": "Agenten zur Liste hinzufügen",
- "NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
- "NONE": "Nichts",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "NONE": "Keine",
"FULLNAME": "Vollständiger Name",
- "CHECK_DUPLICATES": "auf Duplikate prüfen",
+ "CHECK_DUPLICATES": "Duplikate prüfen",
"DUPLICATES": "Duplikate",
- "UPLOAD_CSV": "Hochladen von CSV-Datei",
+ "UPLOAD_CSV": "Hochladen von CSV",
"TAG": "Tag",
"UPLOAD": "Hochladen",
"ALL_AGENTS": "Alle Agenten",
"DATE_OF_BIRTH": "Geburtsdatum",
"DATEOFBIRTH": "Geburtsdatum",
"NOTES": "Notizen",
- "EXPORTCSVCONTACTS_LIST": "In CSV-Datei exportieren",
+ "EXPORTCSVCONTACTS_LIST": "In CSV exportieren",
"GOTO_LIST": "Kontakte anzeigen",
"GOTO_COMPANY": "Kontakte anzeigen",
"REQUIRED": "Erforderlich",
"SESSIONS": "Sitzungen",
"AGENT": "Agent",
"PROJECT": "Projekt",
- "SELECT_LIST": "Liste auswählen",
- "SELECT_COMPANY": "Unternehmen auswählen",
- "SELECT_TAGS": "Tags auswählen",
+ "SELECT_LIST": "Wählen Sie eine Liste aus",
+ "SELECT_COMPANY": "Wählen Sie ein Unternehmen aus",
+ "SELECT_TAGS": "Wählen Sie ein oder mehrere Tags aus",
"HELP": {
- "PHONEBAR_API": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Remote-Switch für den Agenten eingeschaltet ist",
- "PHONEBAR_API_MESSAGE": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Remote-Switch für den Agenten eingeschaltet ist"
+ "PHONEBAR_API": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Fernbedienungsschalter für den Agenten eingeschaltet ist",
+ "PHONEBAR_API_MESSAGE": "Um Click-to-Call zu aktivieren, geben Sie eine Telefonnummer ein und überprüfen Sie, ob der Fernbedienungsschalter für den Agenten eingeschaltet ist"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"SOCIAL": "Social",
"ROW": "Reihe",
- "EXPORT_ERRORS": "Fehler-Log exportieren",
+ "EXPORT_ERRORS": "Fehler exportieren",
"UPLOAD_COMPLETED": "Hochladen abgeschlossen",
"STOP": "Stopp",
- "SELECT_FILE": "Datei auswählen",
+ "SELECT_FILE": "Datei aussuchen",
"IMPORT_CONTACTS": "Kontakte importieren",
"MOTIONDIALER": "Motion Bull",
"PREFIX": "Vorwahl wählen",
"PRIORITY": "Priorität",
"USERID": "Agent-ID abrufen",
- "CUSTOMER_JOURNEY": "Kundenhistorie",
- "SELECT_TAG": "Tag auswählen",
+ "CUSTOMER_JOURNEY": "Kundenreise",
+ "SELECT_TAG": "Wählen Sie Tags aus",
"ALL": "Alle",
"BILLINGINFORMATION": "Abrechnungsdaten",
"COMPANY_FISCAL_TYPE": "Unternehmenssteuerart",
"CREATE": "Erstellen",
"EUROPE": "Europa",
- "EXPIREDAY": "Ablauftag",
+ "EXPIREDAY": "Ablauftage",
"FLATDISCOUNT": "Firmenrabatt",
"INVOICEARTICLE": "Gesetzliche Artikel",
"ISOCODE": "Nationaler ISO-Code",
"RELATIONSHIPCOMPANY": " ... mit",
"SDICODE": "SDI-Code",
"SOCIAL_CAPITAL": "Aktienkapital",
- "VATNUMBER_CF": "Umsatzsteuer Identnummer / VAT",
- "RECALLME": "Rückruf anfordern",
+ "VATNUMBER_CF": "Codice Fiscale / VAT",
+ "RECALLME": "Ruf mich zurück",
"ACTIONTYPE": "Aktionstyp",
- "CLICKTOACTION": "Klicken für Aktion"
+ "CLICKTOACTION": "Zur Aktion klicken"
}
}
{
"DASHBOARDS": {
- "HOME": "Startseite",
+ "HOME": "Home",
"CHAT": "Chat",
- "MAIL": "E-Mail",
- "SMS": "SMS",
- "OPENCHANNEL": "Offener Kanal",
+ "MAIL": "Email",
+ "SMS": "Sms",
+ "OPENCHANNEL": "Open Channel",
"FAX": "Fax",
"RATING": "Bewertung",
"FEEDBACK": "Feedback",
"AGENT": "Agent",
"CREATED_AT": "Erstellt am",
"CLOSED_AT": "Geschlossen am",
- "DISPOSITION": "Qualifizierung",
+ "DISPOSITION": "Disposition",
"CONTACT": "Kontakt",
"INTERACTION": "Interaktion",
"BROWSER_NAME": "Browser Name",
"BROWSER_VERSION": "Browser Version",
- "OS_NAME": "Betriebssystem Name",
- "OS_VERSION": "Betriebssystem Version",
+ "OS_NAME": "Name des Betriebssystems",
+ "OS_VERSION": "Version des Betriebssystems",
"DEVICE_MODEL": "Gerätemodell",
"DEVICE_VENDOR": "Gerätehersteller",
"DEVICE_TYPE": "Gerätetyp",
- "RECALLME": "Rückruf anfordern",
- "DROP_RATE": "Abbruchrate Anrufe",
+ "RECALLME": "Ruf mich zurück",
+ "DROP_RATE": "Abgebrochene Anrufrate",
"DROPPED": "Abgebrochen",
- "DROPPED_TEXT": "Abgebrochene Anrufe innerhalb der Warteschlange",
+ "DROPPED_TEXT": "Abgebrochene Anrufe aus der Warteschlange",
"DETAIL": "Detail",
"MOTION_BULL": "Motion Bull",
"LIMITED": "Limitiert",
"LIMITED_TEXT": "IVR-Kampagnen Anrufe getätigt/limitiert",
"DASHBOARDS": "Dashboards",
- "RECORDINGS": "Aufzeichnungen",
- "TODAY_MOTION_BULL_STATS": "Tagesstatistiken Warteschlangen",
+ "RECORDINGS": "Aufnahmen",
+ "TODAY_MOTION_BULL_STATS": "Warteschlangen-Kampagnen Tagesstatistiken",
"ORIGINATED": "Gewählt",
"ORIGINATED_TEXT": "Anrufe aus der Warteschlange gewählt",
"UPDATE": "Aktualisieren",
"MORE": "Mehr",
"MOTIONDIALER": "Motion Dialer",
- "DISPOSE": "Qualifizieren",
+ "DISPOSE": "Entsorgen",
"QUEUES": "Warteschlangen",
- "DIALER_CALL": "Dialer-Anruf",
+ "DIALER_CALL": "Dialer Anruf",
"ELAPSED_TIME": "Abgelaufene Zeit",
"EDIT": "Bearbeiten",
"MERGE": "Zusammenführen",
"DUPLICATE": "Duplizieren",
"UNIQUEID": "Eindeutige ID",
"CAMPAIGN": "Kampagne",
- "NONE": "Nichts",
+ "NONE": "Keine",
"NAME": "Name",
"ANSWER_MACHINE": "Anrufbeantworter",
"INTERESTED": "Interessiert",
"NOT_INTERESTED": "Kein Interesse",
"PERSONAL_INFO": "Persönliche Infos",
"SOLD": "Verkauft",
- "SPECIAL": "Speziell",
+ "SPECIAL": "Spezielle",
"BLACKLIST": "Blacklist",
- "RESCHEDULE": "erneut Planen",
+ "RESCHEDULE": "Verschieben",
"FIRSTNAME": "Vorname",
"LASTNAME": "Nachname",
- "MOBILE": "Mobilnummer",
+ "MOBILE": "Mobile",
"DATE_OF_BIRTH": "Geburtsdatum",
"COMPANY": "Unternehmen",
"TAG": "Tag",
"POSTALCODE": "Postleitzahl",
"CUSTOM_FIELDS": "Benutzerdefinierte Felder",
"GENERAL": "Allgemein",
- "VOICE": "Sprachanrufe",
+ "VOICE": "Sprache",
"TODAY_IVR_CAMPAIGNS_STATS": "IVR-Tagesstatistiken",
- "TODAY_INBOUND_STATS": "Tagesstatistiken - eingehende Warteschlangen",
- "TODAY_OUTBOUND_STATS": "Tagesstatistiken - ausgehende Warteschlangen",
- "WAITING": "Anrufe in Warteschlange",
+ "TODAY_INBOUND_STATS": "Inbound Warteschlangen Tagesstatistiken",
+ "TODAY_OUTBOUND_STATS": "Outbound Warteschlangen Tagesstatistiken",
+ "WAITING": "Anrufe in der Warteschlange",
"TALKING": "Im Gespräch",
- "INBOUND_ANSWERED": "Angenommen eingehend",
- "OUTBOUND_ANSWERED": "Angenommen ausgehend",
- "ABANDONED": "Abgebrochen",
- "TOTAL_OFFERED": "Gesamt angeboten",
+ "INBOUND_ANSWERED": "Angenommen",
+ "OUTBOUND_ANSWERED": "Angenommen",
+ "ABANDONED": "Verlassen",
+ "TOTAL_OFFERED": "Insgesamt",
"AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "INBOUND_ANSWER_RATE": "Antwortrate eingehend",
- "OUTBOUND_ANSWER_RATE": "Antwortrate ausgehend",
- "ABANDON_RATE": "Abbruchrate",
- "UNMANAGED": "Nicht bearbeitet",
- "TOTAL": "Gesamt",
+ "INBOUND_ANSWER_RATE": "Angenommene Anrufrate",
+ "OUTBOUND_ANSWER_RATE": "Angenommene Anrufrate",
+ "ABANDON_RATE": "Verlassene Anrufrate",
+ "UNMANAGED": "Nicht verwaltete",
+ "TOTAL": "Insgesamt",
"TOT_DURATION": "Gesamtdauer",
"AVG_DURATION": "Durchschnittliche Dauer",
"HELP": {
- "ORIGINATEDLIMITED": "IVR Kampagnen gewählt/limitiert",
- "DROPPED": "Gesamtzahl abgebrochener Anrufe innerhalb der Warteschlange",
- "DROP_RATE": "Abbruchrate aller Anrufe in der Warteschlange",
- "WAITING": "Gesamtzahl der wartenden Anrufe aus der Warteschlange",
- "OUTBOUND_ANSWERED": "Gesamtzahl der angenommenen ausgehenden Anrufe",
- "ABANDONED": "Gesamtzahl der abgebrochenen Anrufe innerhalb der Warteschlange",
- "TOTAL_OFFERED": "Gesamtzahl der angebotenen Anrufe in der Warteschlange (angenommen + abgebrochen + nicht bearbeitet in der letzten Warteschlange des Callflows). Hinweis: Anrufe innerhalb der IVR werden nicht berücksichtigt.",
- "AVG_HOLD_TIME": "Durchschnittliche Wartezeit einer Interaktion bis zur Beantwortung durch einen Agenten.",
- "OUTBOUND_ANSWER_RATE": "Rate aller angenommenen ausgehenden Anrufe",
- "ABANDON_RATE": "Rate aller abgebrochener Anrufe innerhalb der Warteschlange",
- "UNMANAGED": "Gesamtzahl der nicht bearbeiteten Anrufe für alle Warteschlangen. Enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen wurden (siehe Asterisk-Dokumentation für weitere Informationen).",
- "TOTAL": "Gesamtzahl der ausgehenden Anrufe",
- "TOT_DURATION": "Gesamtdauer aller ausgehenden Anrufe",
- "AVG_DURATION": "Durchschnittliche Dauer aller angenommenen ausgehenden Anrufe",
- "ORIGINATED": "Gesamtzahl der in den Warteschlangen-Kampagnen gewählten Anrufe",
- "ABANDONED_RATE": "Rate aller abgebrochenen Interaktionen",
- "AVG_MANAGED_TIME": "Durchschnittliche Bearbeitungszeit einer Interaktion",
- "MANAGED": "Gesamtzahl der abgeschlossenen Interaktionen",
- "MANAGED_RATE": "Rate aller bearbeiteten Anrufe",
- "OPENED": "Gesamtzahl der aktiven Interaktionen",
- "UNMANAGED_RATE": "Rate aller unbearbeiteten Interaktionen",
- "VOICE_ABANDONED": "Gesamtzahl der abgebrochenen Anrufe in der Warteschlange unter Berücksichtigung aller vorhandenen Warteschlangen. Hinweis: Anrufe, die wegen Timeout und joinempty abgebrochen wurden, werden nicht berücksichtigt.",
- "VOICE_ANSWERED": "Gesamtzahl der abgeschlossenen Anrufe für alle vorhandenen Warteschlangen",
- "VOICE_ANSWER_RATE": "Antwortrate aller Anrufe in der Warteschlange",
- "VOICE_AVG_HOLD_TIME": "Durchschnittliche Wartezeit bis zur Beantwortung durch einen Agenten für alle vorhandenen Warteschlangen",
- "VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit für alle Anrufe aus der Warteschlange ",
- "VOICE_TALKING": "Gesamtzahl der aktiven Anrufe für alle vorhandenen Warteschlangen",
- "VOICE_TOTAL_OFFERED": "Gesamtzahl der Anrufe der Warteschlangen (angenommen + abgebrochen + nicht bearbeitet in der letzten Warteschlange des Callflows). Hinweis: Anrufe innerhalb der IVR werden nicht berücksichtigt.",
- "VOICE_UNMANAGED": "Gesamtzahl der nicht bearbeiteten Anrufe für alle vorhandenen Warteschlangen. Enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen wurden (siehe Asterisk-Dokumentation für weitere Informationen).",
- "VOICE_WAITING": "Gesamtanzahl der aktuell wartenden Anrufe für alle vorhandenen Warteschlangen",
- "MANDATORY_DISPOSITION_ENABLED": "Kontaktqualifizierung erforderlich",
- "EXACT_MATCH_FILTER": "Suche nach einer genauen Übereinstimmung der Suchbegriffe",
- "LIKE_FILTER": "Suche nach variablen Übereinstimmungen der Suchbegriffe"
+ "ORIGINATEDLIMITED": "IVR Kampagnen gewählt/Limitiert",
+ "DROPPED": "Die Gesamtzahl abgebrochener Anrufe aus der Warteschlange",
+ "DROP_RATE": "Die Rate aller abgebrochener Anrufe aus der Warteschlange",
+ "WAITING": "Die Gesamtzahl der wartenden Anrufe aus der Warteschlange",
+ "OUTBOUND_ANSWERED": "Die Gesamtzahl der angenommenen ausgehenden Anrufe",
+ "ABANDONED": "Die Gesamtzahl der abgebrochenen Anrufe aus der Warteschlange",
+ "TOTAL_OFFERED": "Die Gesamtzahl der Warteschlangenanrufe (angenommen + verlassen + nicht verwaltet in der letzten Warteschlange des Datenflusses). Beachten Sie, dass Anrufe, die in ein IVR und nicht in eine Warteschlange eingehen, nicht berücksichtigt werden.",
+ "AVG_HOLD_TIME": "Die durchschnittliche Interaktionswartezeit, d.h. die durchschnittliche Wartezeit auf die Antwort eines Agenten für alle vorhandenen Interaktionen.",
+ "OUTBOUND_ANSWER_RATE": "Die Rate aller angenommenen ausgehenden Anrufe",
+ "ABANDON_RATE": "Die Rate aller verlassenen Anrufe aus der Warteschlange",
+ "UNMANAGED": "Die Gesamtzahl der nicht verwalteten Warteschlangenanfrufe für alle vorhandenen Warteschlangen. Es enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen werden (siehe Asterisk-Dokumentation für weitere Informationen).",
+ "TOTAL": "Die Gesamtzahl der ausgehenden Anrufe",
+ "TOT_DURATION": "Die Gesamtdauer aller ausgehenden Anrufe",
+ "AVG_DURATION": "Die durchschnittliche Dauer aller angenommenen ausgehenden Anrufe",
+ "ORIGINATED": "Die Gesamtzahl der in den Warteschlangenkampagnen gewählten Anrufe",
+ "ABANDONED_RATE": "Die Rate aller abgebrochenen Interaktionen",
+ "AVG_MANAGED_TIME": "Die durchschnittliche verwaltete Interaktionszeit, nämlich die durchschnittliche Zeit, die während des Gesprächs verbracht wird",
+ "MANAGED": "Die Gesamtzahl der abgeschlossenen Interaktionen",
+ "MANAGED_RATE": "Die verwaltete Rate aller Interaktionen",
+ "OPENED": "Die Gesamtzahl der aktiven Interaktionen",
+ "UNMANAGED_RATE": "Die nicht verwaltete Rate aller Interaktionen",
+ "VOICE_ABANDONED": "Die Gesamtzahl der aufgegebenen Warteschlangenanrufe unter Berücksichtigung aller vorhandenen Warteschlangen. Beachten Sie, dass Anrufe, die wegen Timeout und joinempty abgebrochen werden, nicht berücksichtigt werden",
+ "VOICE_ANSWERED": "Die Gesamtzahl der abgeschlossenen Warteschlangenanrufe für alle vorhandenen Warteschlangen",
+ "VOICE_ANSWER_RATE": "Die Antwortrate aller Warteschlangenanrufe",
+ "VOICE_AVG_HOLD_TIME": "Die durchschnittliche Wartezeit für Warteschlangen, nämlich die durchschnittliche Wartezeit auf die Antwort eines Agenten für alle vorhandenen Warteschlangen",
+ "VOICE_AVG_TALK_TIME": "Die durchschnittliche Gesprächszeit in der Warteschlange, nämlich die durchschnittliche Gesprächszeit für alle vorhandenen Warteschlangen",
+ "VOICE_TALKING": "Die Gesamtzahl der aktiven Warteschlangenanrufe für alle vorhandenen Warteschlangen",
+ "VOICE_TOTAL_OFFERED": "Die Gesamtzahl der Warteschlangenanrufe (angenommen + verlassen + nicht verwaltet in der letzten Warteschlange des Datenflusses). Beachten Sie, dass Anrufe, die in ein IVR und nicht in eine Warteschlange eingehen, nicht berücksichtigt werden.",
+ "VOICE_UNMANAGED": "Die Gesamtzahl der nicht verwalteten Warteschlangenanfrufe für alle vorhandenen Warteschlangen. Es enthält die Anrufe, die durch Timeout, Joinempty, Leavewhenempty und Exitwithkey abgebrochen werden (siehe Asterisk-Dokumentation für weitere Informationen).",
+ "VOICE_WAITING": "Die Gesamtanzahl der wartenden Warteschlangenanrufe für alle vorhandenen Warteschlangen",
+ "MANDATORY_DISPOSITION_ENABLED": "Obligatorische Disposition für dieses Konto aktiviert",
+ "EXACT_MATCH_FILTER": "Suche nach einer genauen Übereinstimmung",
+ "LIKE_FILTER": "Suchen Sie nach dem angegebenen Muster"
},
"ERRORS": {
"FIRSTNAME_REQUIRED": "Der erste Name ist erforderlich",
"CAMPAIGN_REQUIRED": "Pflichtfeld",
"FAILED_INITIALIZATION": "Fehler während der Initialisierung"
},
- "NO_AVAILABLE_INFO": "Keine Information vorhanden",
- "WELCOME_TO_MOTION": "Willkommen zu Motion",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "WELCOME_TO_MOTION": "Willkommen bei Motion",
"WELCOME_MESSAGE": "Verwenden Sie die linke Seitenleiste, um durch die verfügbaren Abschnitte zu navigieren",
"ADD": "Hinzufügen",
- "CONTACTMANAGER": "Kontaktmanager",
+ "CONTACTMANAGER": "Contact Manager",
"DASHBOARD": "Dashboard",
"EDIT_CONTACT": "Kontakt bearbeiten",
"EMAIL": "E-Mail",
"NEW_CONTACT": "Neuer Kontakt",
"PHONE": "Telefon",
"SAVE": "Speichern",
- "INBOUND_WAITING_CALLS": "Wartende Anrufe (Eingehend)",
+ "INBOUND_WAITING_CALLS": "Eingehende Anrufe in der Warteschlange",
"CONTACTS": "Kontakte",
"MYCONTACTS": "Meine Kontakte",
"ADD_CONTACT": "Kontakt hinzufügen",
- "RELOAD": "Neu Laden",
+ "RELOAD": "Neu laden",
"WAITING_TEXT": "Wartende Interaktionen",
- "TALKING_TEXT": "Aktive Anrufe",
- "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe",
- "ABANDONED_TEXT": "Abgebrochene Anrufe",
- "DROP_RATE_TEXT": "Abbruchrate",
- "TOTAL_OFFERED_TEXT": "Gesamt angebotene Interaktionen",
- "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit",
- "AVG_TALK_TIME_TEXT": "Durchschnittliche Gesprächszeit",
- "INBOUND_ANSWER_RATE_TEXT": "Antwortrate ",
- "UNMANAGED_TEXT": "Nicht bearbeitete Interaktionen",
- "TOTAL_TEXT": "Gesamt ausgehende Anrufe",
- "OUTBOUND_ANSWERED_TEXT": "Beantwortete Anrufe (Ausgehend) ",
+ "TALKING_TEXT": "Aktive Anrufe in der Warteschlange",
+ "INBOUND_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange",
+ "ABANDONED_TEXT": "Verlassene Anrufe in der Warteschlange",
+ "DROP_RATE_TEXT": "Rate abgebrochener Anrufe in der Warteschlange",
+ "TOTAL_OFFERED_TEXT": "Gesamtzahl der Interaktionen",
+ "AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit der Interaktionen",
+ "AVG_TALK_TIME_TEXT": "Gesprächszeit der Warteschlangenanrufe",
+ "INBOUND_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange ",
+ "UNMANAGED_TEXT": "Nicht verwaltete Interaktionen",
+ "TOTAL_TEXT": "Gesamtzahl ausgehender Anrufe",
+ "OUTBOUND_ANSWERED_TEXT": "Ausgehende angenommene Anrufe ",
"TOT_DURATION_TEXT": "Gesamtdauer ausgehender Anrufe ",
"AVG_DURATION_TEXT": "Durchschnittliche Dauer ausgehender Anrufe",
"OUTBOUND_ANSWER_RATE_TEXT": "Rate angenommener ausgehender Anrufe",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
- "REPLY_PLACEHOLDER": "Text eingeben und ENTER drücken zum Senden",
+ "OF": "Von",
+ "REPLY_PLACEHOLDER": "Geben Sie ein und drücken Sie die Eingabetaste, um eine Nachricht zu senden",
"CONTACT_INFO": "Kontaktinformationen",
- "CLOSE_AND_DISPOSE": "Schließen und Qualifizieren",
- "DISPOSITIONS": "Qualifizierungen",
- "CLOSE_WITHOUT_DISPOSE": "Schließen ohne Qualifizierung",
- "ACCEPT": "Annehmen",
+ "CLOSE_AND_DISPOSE": "Schließen und Entsorgen",
+ "DISPOSITIONS": "Dispositionen",
+ "CLOSE_WITHOUT_DISPOSE": "Schließen ohne Entsorgen",
+ "ACCEPT": "Akzeptieren",
"REJECT": "Ablehnen",
"CLOSED": "Geschlossen",
- "INFO": "Information",
+ "INFO": "Info",
"NOTE": "Hinweis",
- "ACCEPT_ELSEWHERE": "Von anderem Teilnehmer angenommen",
+ "ACCEPT_ELSEWHERE": "Anderswo akzeptiert",
"ATTENTION": "Achtung",
"SOCIAL": "Sozial",
"NO_JSCRIPTY_PROJECTS_AVAILABLE": "Keine Jscripty-Projekte verfügbar",
"FILTER": "Filter",
"SELECT_STATUS": "Status auswählen",
"SELECT_ACCOUNT": "Konto auswählen",
- "SELECT_WEBSITE": "Webseite auswählen",
- "ALL": "Alles",
+ "SELECT_WEBSITE": "Wählen Sie die Webseite",
+ "ALL": "Alle",
"INTERACTIONS": "Interaktionen",
- "STARTEDAT": "Begonnen am",
+ "STARTEDAT": "Gestartet am",
"STATUS": "Status",
"OPEN": "Öffnen",
- "SHOW": "Anzeigen",
+ "SHOW": "Zeigen",
"ME": "ICH",
"NOT_ASSIGNED": "Nicht zugewiesen",
"UNKNOWN": "Unbekannt",
- "SELECT_USER": "Benutzer auswählen",
+ "SELECT_USER": "Wählen Sie einen Benutzer",
"LAST_MESSAGE": "Letzte Nachricht",
"USER": "Benutzer",
"TAGS": "Tags",
"SOURCE": "Quelle",
"DESTINATION": "Ziel",
"CALLERID": "Anrufer-ID",
- "END_AT": "Beendet am",
+ "END_AT": "Ende am",
"DURATION": "Dauer",
"SHOW_DETAILS": "Details anzeigen",
"HIDE_DETAILS": "Details ausblenden",
"EXTERNAL_URL": "Externer Link",
"SET_AS": "Festlegen als",
"PENDING": "Ausstehend",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textbausteine gefunden",
- "CANNED_ANSWER_SEARCH": "Hier nach einem Textbaustein suchen",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
"NO_MAIL_ACCOUNTS_AVAILABLE": "Keine E-Mail-Konten verfügbar",
"NO_FAX_ACCOUNTS_AVAILABLE": "Keine Fax-Konten verfügbar",
"NO_SMS_ACCOUNTS_AVAILABLE": "Keine SMS-Konten verfügbar",
- "FILTER_VOICE_QUEUES": "Anrufwarteschlangen filtern",
- "LOADING_INTERACTION": "Interaktion wird geladen",
+ "FILTER_VOICE_QUEUES": "Sprachwarteschlangen filtern",
+ "LOADING_INTERACTION": "Wir laden die Interaktion ...",
"JANUARY": "Januar",
"FEBRUARY": "Februar",
"MARCH": "März",
"SELECT_DATE": "Datum auswählen",
"SELECT_DATE_RANGE": "Wählen Sie einen Datumsbereich",
"CLEAR": "Löschen",
- "CALL_NUMBER": "Anrufen",
+ "CALL_NUMBER": "Anruf",
"TRANSFER_NUMBER": "Transfer",
- "CALL_SAVED": "Anruf erfolgreich gespeichert",
- "CALL_DISPOSED": "Anruf erfolgreich qualifiziert",
- "CHANNEL_WAITING_TEXT": "Wartende Interaktionen",
+ "CALL_SAVED": "Anruf richtig gespeichert",
+ "CALL_DISPOSED": "Anruf richtig entsorgt",
+ "CHANNEL_WAITING_TEXT": "Wartende Warteschlangen-Interaktionen",
"CHANNEL_QUEUE": "Warteschlange",
- "CHANNEL_FROM": "von",
+ "CHANNEL_FROM": "Von",
"MARK_AS_UNREAD": "Als ungelesen markieren",
- "SELECT_AGENT": "Agenten auswählen",
+ "SELECT_AGENT": "Wählen Sie den Agenten aus",
"READ": "Gelesen",
- "SELECT_READ_UNREAD": "Wählen ob Lesen/Ungelesen",
- "SELECT_SUBSTATUS": "Zwischenstatus auswählen",
+ "SELECT_READ_UNREAD": "Wählen Sie Lesen/Ungelesen",
+ "SELECT_SUBSTATUS": "Wählen Sie Substatus",
"UNREAD": "Ungelesen",
- "ABANDONAT": "Abgebrochen",
- "ABANDONEDQUEUECALLS": "Abgebrochene Anrufe",
+ "ABANDONAT": "Verlassen",
+ "ABANDONEDQUEUECALLS": "Verlassene Warteschlangenanrufe",
"FREE": "Frei",
"LASTASSIGNEDTO": "Zuletzt zugewiesen an",
"QUEUE": "Warteschlange",
"QUEUECALLEREXITAT": "Abgebrochen",
"QUEUECALLEREXITREASON": "Grund",
"RESERVED": "Reserviert",
- "SELECT_CAMPAIGN": "Warteschlange auswählen",
+ "SELECT_CAMPAIGN": "Wählen Sie eine Warteschlange",
"ASSIGNTO": "Zuweisen",
- "CLICKRELOAD": "Verpasste Anrufe! Bitte Seite erneut laden",
+ "CLICKRELOAD": "Neue verlassene Anrufe! Bitte neu laden",
"NOTAVAILABLE": "Nicht verfügbar",
- "CURRENTLY_IN_USE_BY": "Derzeit verwendet von",
- "CUSTOMER_JOURNEY": "Kundenhistorie",
+ "CURRENTLY_IN_USE_BY": "Derzeit im Einsatz von",
+ "CUSTOMER_JOURNEY": "Kundenreise",
"NO_DATA_AVAILABLE": "Keine Daten verfügbar",
"AGENTS": "Agenten",
"TRANSFER": "Transfer",
- "NO_DISPOSITION_SET": "Keine Qualifizierungen definiert",
- "ABANDONED_RATE": "Abbruchrate",
- "ABANDONED_RATE_TEXT": "Rate der abgebrochenen Anrufe innerhalb der Warteschlange",
- "AVG_MANAGED_TIME": "Durchschnittliche Bearbeitungszeit",
- "AVG_MANAGED_TIME_TEXT": "Durchschnittliche Bearbeitungszeit aller Interkationen",
- "MANAGED": "Bearbeitet",
- "MANAGED_RATE": "Bearbeitungsrate",
- "MANAGED_RATE_TEXT": "Rate der bearbeiteten Interaktionen",
- "MANAGED_TEXT": "Interaktionen bearbeitet",
- "OPENED_TEXT": "Interaktionen geöffnet",
+ "NO_DISPOSITION_SET": "Keine Disposition festgelegt",
+ "ABANDONED_RATE": "Verlassene Rate",
+ "ABANDONED_RATE_TEXT": "Rate verlassener Interaktionen",
+ "AVG_MANAGED_TIME": " Durchschnittliche Verwaltungszeit",
+ "AVG_MANAGED_TIME_TEXT": "Durchschnittliche Verwaltungszeit der Interkationen",
+ "MANAGED": "Verwaltet",
+ "MANAGED_RATE": "Verwaltete Rate",
+ "MANAGED_RATE_TEXT": "Verwaltete Interaktionsrate",
+ "MANAGED_TEXT": "Verwaltete Interaktionen",
+ "OPENED_TEXT": "Geöffnete Interaktionen",
"TODAY_INTERACTIONS_STATS": "Interaktionen Tagesstatistiken",
- "UNMANAGED_RATE": "Rate nicht Bearbeitet",
- "UNMANAGED_RATE_TEXT": "Rate der nicht bearbeiteten Interaktionen in der Warteschlange",
- "VOICE_ABANDONED": "Abgebrochen",
- "VOICE_ABANDONED_TEXT": "Abgebrochene Anrufe innerhalb der Warteschlange",
- "VOICE_ABANDON_RATE": "Abbruchrate",
- "VOICE_ABANDON_RATE_TEXT": "Rate der abgebrochenen Anrufe innerhalb der Warteschlange",
+ "UNMANAGED_RATE": "Nicht verwaltete Rate",
+ "UNMANAGED_RATE_TEXT": "Nicht verwaltete Interaktionsate",
+ "VOICE_ABANDONED": "Verlassen",
+ "VOICE_ABANDONED_TEXT": "Verlassene Warteschlangenanrufe",
+ "VOICE_ABANDON_RATE": "Verlassene Rate",
+ "VOICE_ABANDON_RATE_TEXT": "Rate verlassener Warteschlangenanrufe",
"VOICE_ANSWERED": "Angenommen",
"VOICE_ANSWERED_TEXT": "Angenommene Anrufe in der Warteschlange",
- "VOICE_ANSWER_RATE": "Antwortrate",
+ "VOICE_ANSWER_RATE": "Angenommene Rate",
"VOICE_ANSWER_RATE_TEXT": "Rate angenommener Anrufe in der Warteschlange",
"VOICE_AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "VOICE_AVG_HOLD_TIME_TEXT": "Durchschnittliche Wartezeit aller Sprachanrufe",
+ "VOICE_AVG_HOLD_TIME_TEXT": "Queue ruft AVG HOLD TIME an",
"VOICE_AVG_TALK_TIME": "Durchschnittliche Gesprächszeit",
- "VOICE_AVG_TALK_TIME_TEXT": "Durchschnittliche Gesprächszeit aller Anrufe nach der Warteschleife",
+ "VOICE_AVG_TALK_TIME_TEXT": "Gesprächszeit der Anrufe in der Warteschlage",
"VOICE_TALKING": "IM GESPRÄCH",
"VOICE_TALKING_TEXT": "Aktive Anrufe in der Warteschlange",
- "VOICE_TOTAL_OFFERED": "Gesamt angeboten",
- "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der angebotenen Anrufe in der Warteschlange",
- "VOICE_UNMANAGED": "Nicht bearbeitet",
- "VOICE_UNMANAGED_TEXT": "Nicht bearbeitete Anrufe in der Warteschlange",
+ "VOICE_TOTAL_OFFERED": "Insgesamt",
+ "VOICE_TOTAL_OFFERED_TEXT": "Gesamtzahl der Anrufe in der Warteschlange",
+ "VOICE_UNMANAGED": "Nicht verwaltet",
+ "VOICE_UNMANAGED_TEXT": "Nicht verwaltete Anrufe in der Warteschlange",
"VOICE_WAITING": "Wartende Anrufe",
"VOICE_WAITING_TEXT": "Wartende Anrufe in der Warteschlange",
"DOWNLOAD": "Herunterladen",
"SCHEDULED_CALLS": "Geplante Anrufe",
- "PRIVATE": "Persönlich",
+ "PRIVATE": "Privat",
"PUBLIC": "Öffentlich",
- "PUBLIC_INTERACTION": "Öffentliche Interaktion",
+ "PUBLIC_INTERACTION": "Die Interaktion ist öffentlich",
"VISIBILITY": "Sichtbarkeit",
- "INTERACTION_CLOSED": "Interaktion erfolgreich geschlossen",
- "INTERACTION_CLOSED_DISPOSED": "Interaktion erfolgreich geschlossen und qualifiziert",
- "INTERACTION_DISPOSED": "Interaktion erfolgreich qualifiziert",
- "ASSIGNED_TO_OTHERS": "An Andere zugewiesen",
- "SELECT_ALL": "Alles auswählen",
+ "INTERACTION_CLOSED": "Interaktion korrekt geschlossen",
+ "INTERACTION_CLOSED_DISPOSED": "Interaktion korrekt geschlossen und entsorgt",
+ "INTERACTION_DISPOSED": "Interaktion korrekt entsorgt",
+ "ASSIGNED_TO_OTHERS": "An andere zugewiesen",
+ "SELECT_ALL": "Alle auswählen",
"CHAT_INTERACTIONS": "Chat-Interaktionen",
"FAX_INTERACTIONS": "Fax-Interaktionen",
- "ID": "ID",
+ "ID": "Id",
"MAIL_INTERACTIONS": "E-Mail-Interaktionen",
- "OPENCHANNEL_INTERACTIONS": "Offener-Kanal-Interaktionen",
+ "OPENCHANNEL_INTERACTIONS": "Open Channel-Interaktionen",
"SMS_INTERACTIONS": "SMS-Interaktionen",
- "CANCEL": "Abbrechen",
- "DRAFT": "Entwurf speichern",
- "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Möchten Sie diesen überschreiben?",
+ "CANCEL": "Stornieren",
+ "DRAFT": "Entwurf",
+ "DRAFT_SAVE_WARNING_MESSAGE": "Für diese Interaktion ist bereits ein Entwurf gespeichert. Sind Sie sicher, dass Sie ihn überschreiben möchten?",
"DRAFT_SAVE_WARNING_TITLE": "Vorhandenen Entwurf überschreiben?",
"OVERWRITE": "Überschreiben",
"SAVE_AS_DRAFT": "Als Entwurf speichern",
"UNTITLED": "Ohne Titel",
"UPDATE_DRAFT": "Entwurf aktualisieren",
"NO_AVAILABLE_INTERACTION": "Keine Interaktionen verfügbar",
- "ACCOUNTINGDOC": "Abrechnungsdokumente",
+ "ACCOUNTINGDOC": "Buchhaltung",
"ADD_PRODUCTPRICELIST": "PRODUKT HINZUFÜGEN",
"AGENTFULLNAME": "Agent",
"ALL_COMPANIES": "Alle Unternehmen",
- "ALL_PRODUCTS": "Alles",
- "ALL_STATUS": "Alles",
- "ALL_STEP": "Alles",
+ "ALL_PRODUCTS": "Alle",
+ "ALL_STATUS": "Alle",
+ "ALL_STEP": "Alle",
"ALL_WORKFLOW": "Alle Arbeitsabläufe",
"ATTENDACELASTINVOICE": "Letzte Rechnung",
"ATTENDACENEXTINVOICE": "Nächste Rechnung",
"AUTHORIZED": "AUTORISIERT",
"AUTOINVOICE": "SELBSTABRECHNUNG",
"AUTOPROFORMA": "SELBST-PROFORMA",
- "BALANCE": "SALDO",
+ "BALANCE": "BALANCE",
"BY": "Durch",
"CLONEPROFORMA": "Klon",
"COMPANIES": "Unternehmen",
"DOSSIERS": "Dossiers",
"DOSSIER_INFO": "Information",
"ENDDATE": "Ablaufdatum",
- "FROM": "von",
+ "FROM": "Von",
"GRAPHINVOICES": "Diagramm der Rechnungsemission",
"INASSET": "Kapital",
"INVOICE": "RECHNUNG",
"INVOICEPAYED": "Bezahlt",
"INVOICES": "RECHNUNGEN",
"INVOICESTATUS": "Status",
- "INVOICETOTAL": "Gesamt",
+ "INVOICETOTAL": "Insgesamt",
"INVOICE_INFO": "Rechnung",
"MANAGESALES": "Abonnements",
"MOVEASSET": "Kapital",
"QUOTATIONSTATUS": "Status",
"QUOTATIONSUBSCRIPTION": "Dauer",
"QUOTATIONTAX": "MwSt",
- "QUOTATIONTOTAL": "Gesamt",
+ "QUOTATIONTOTAL": "Insgesamt",
"QUOTATIONTOTALPRICE": "Gesamt netto",
- "QUOTATIONTOTALS": "Gesamt",
+ "QUOTATIONTOTALS": "Insgesamt",
"QUOTATIONTOTALTAX": "Gesamtsteuer",
"QUOTATIONUNIT": "Einheit",
"QUOTATIONVAT": "VAT",
"TOTALPAYMENTS": "Gesamtzahlungen",
"UPDATED_AT": "Geändert am",
"UPDATE_PRODUCT": "Produkt aktualisieren",
- "WORKFLOW": "Arbeitsablauf wählen",
+ "WORKFLOW": "Wählen Sie einen Arbeitsablauf",
"YEARS": "Jahre",
"CUSTOMER_IP": "Ursprüngliche IP-Adresse",
"CUSTOMER_PORT": "Ursprünglicher TCP-Port",
"ADVANCED_SEARCH": "Erweiterte Suche",
- "AND": "und",
+ "AND": "Und",
"APPLY": "Anwenden",
- "CONTAINS": "enthält",
+ "CONTAINS": "Enthält",
"DISABLED": "Deaktiviert",
"ENABLED": "Aktiviert",
"ENDING_DATE": "Enddatum",
"ENDING_VALUE": "Endwert",
- "ENDS_WITH": "endet mit",
- "EQUALS": "gleich",
- "IS_AMONG": "ist unter",
- "IS_BETWEEN": "ist zwischen",
- "IS_GREATER_THAN": "ist größer als",
- "IS_GREATER_THAN_OR_EQUAL_TO": "ist größer oder gleich",
- "IS_LESS_THAN": "ist kleiner als",
- "IS_LESS_THAN_OR_EQUAL_TO": "ist kleiner oder gleich",
- "IS_NOT_AMONG": "ist nicht innerhalb",
- "IS_NOT_EQUAL": "ist nicht gleich",
+ "ENDS_WITH": "Endet mit",
+ "EQUALS": "Gleich",
+ "IS_AMONG": "Ist unter",
+ "IS_BETWEEN": "Ist zwischen",
+ "IS_GREATER_THAN": "Ist größer als",
+ "IS_GREATER_THAN_OR_EQUAL_TO": "Ist größer oder gleich",
+ "IS_LESS_THAN": "Ist kleiner als",
+ "IS_LESS_THAN_OR_EQUAL_TO": "Ist kleiner oder gleich",
+ "IS_NOT_AMONG": "Ist nicht unter",
+ "IS_NOT_EQUAL": "Ist nicht gleich",
"MEET_ALL_CONDITIONS": "Alle Bedingungen erfüllen",
"MEET_ANY_CONDITIONS": "Mindestens eine Bedingung erfüllen",
"NEW_CONDITION": "Neue Bedingung",
"SELECT_OPERATOR": "Operator auswählen",
"STARTING_DATE": "Startdatum",
"STARTING_VALUE": "Startwert",
- "STARTS_WITH": "beginnt mit",
+ "STARTS_WITH": "Beginnt mit",
"VALUE": "Wert",
"VALUES": "Werte",
"VALUE_RANGE_CHECK": "Wert muss größer sein als",
- "CHOOSE": "Auswählen",
+ "CHOOSE": "Wählen",
"DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
"DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
- "SELECT_QUEUE": "Warteschlange auswählen",
+ "SELECT_QUEUE": "Wählen Sie eine Warteschlange aus",
"VIDAOOSESSION": "Videoanruf starten",
"WHATSAPP": "WhatsApp Connector",
- "WHATSAPP_INTERACTIONS": "WhatsApp-Interaktionen",
+ "WHATSAPP_INTERACTIONS": "WhatsApp Connector-Interaktionen",
"LAST_UPDATED": "Zuletzt aktualisiert",
"MATCHING_FIELD": "Übereinstimmendes Feld",
"MULTIPLE_CONTACTS_FOUND": "Mehrere Kontakte für Nummer gefunden",
- "SELECT": "Auswählen",
+ "SELECT": "Wählen",
"SELECT_CONTACT": "Kontakt auswählen",
- "WHICH_ONE_TO_USE": "Welcher Eintrag soll verwendet werden?",
+ "WHICH_ONE_TO_USE": "Welches möchten Sie verwenden?",
"NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Kein WhatsApp-Konto verfügbar",
- "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
- "THIRD_LEVEL_DISPOSITION": "Qualifizierung der dritten Ebene",
+ "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
+ "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene",
"LICENSE_EXPIRE_REMAINING_DAYS": "Ihre Lizenz läuft bald ab! Bitte wenden Sie sich an Ihren Administrator",
"CREATEDAT": "Hergestellt in",
"ELAPSED_ANSWERED": "Verstrichene Zeit seit dem Start des Anrufs",
"ELAPSED_DISPOSED": "Verstrichene Zeit seit Beendigung des Anrufs",
- "LOST_CONNECTION": "Probleme mit der Netzwerkkonnektivität. Bitte Internetverbindung prüfen.",
+ "LOST_CONNECTION": "Probleme mit der Netzwerkkonnektivität. Bitte überprüfe deine Internetverbindung.",
"NO_RESULTS_AVAILABLE": "Keine Ergebnisse verfügbar",
- "AUTOCLOSE": "Tab nach Qualifizierung automatisch schließen",
- "AGENT_PRESENCE": "Bereitschaftsstatus",
- "SELECT_TEAM": "Team auswählen"
+ "AUTOCLOSE": "Schließen Sie die Kontaktlasche nach der Entsorgung automatisch",
+ "AGENT_PRESENCE": "Agentenpräsenz",
+ "SELECT_TEAM": "Team auswählen",
+ "AVAILABLE": "Erhältlich"
}
}
{
"MAIL": {
"TEXT": "Text",
- "TIMES": "Zeitstempel",
- "EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
+ "TIMES": "Die Anzahl der Zeiten pro Interaktion",
+ "EDIT_AUTOREPLY": "Bearbeiten Sie automatische Antwort",
"AUTOREPLY": "Automatische Antwort",
- "SHOW_AUTOREPLY": "Automatische Antwort anzeigen",
+ "SHOW_AUTOREPLY": "Die automatische Antwort anzeigen",
"SHOW_DETAILS": "Details anzeigen",
"HIDE_DETAILS": "Details ausblenden",
- "TO": "An",
+ "TO": "Zu",
"FROM": "Von",
"DATE": "Datum",
- "CC": "CC",
- "REPLY": "Antworten",
+ "CC": "Cc",
+ "REPLY": "Antwort",
"REPLY_ALL": "Allen antworten",
- "FORWARD": "Weiterleiten",
+ "FORWARD": "Vorwärts",
"SUBJECT": "Betreff",
- "BCC": "BCC",
+ "BCC": "Bcc",
"SEND": "Senden",
"ATTACHMENT": "Anhang",
"ATTACHMENTS": "Anhänge",
"NAME": "Name",
"MAILQUEUES": "E-Mail Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"STRATEGY": "Strategie",
"ERRORS": {
- "TEXT_REQUIRED": "Feld \"Text\" ist erforderlich",
- "NAME_REQUIRED": "Name ist erforderlich",
- "AGENT_TIMEOUT_REQUIRED": "Agent Timeout ist erforderlich",
- "EMAIL_ADDRESS_REQUIRED": "E-Mail-Adresse ist erforderlich",
- "EMAIL_ADDRESS_MUST_VALID": "E-Mail ungültiges Format",
- "HOST_REQUIRED": "Host wird benötigt",
- "USERNAME_REQUIRED": "Benutzername ist erforderlich",
- "PORT_REQUIRED": "Port ist erforderlich",
+ "TEXT_REQUIRED": "Das Feld \"Text\" ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+ "EMAIL_ADDRESS_REQUIRED": "Die E-Mail-Adresse ist erforderlich",
+ "EMAIL_ADDRESS_MUST_VALID": "Die E-Mail Adresse muss in einem gültigen Format",
+ "HOST_REQUIRED": "Der Host wird benötigt",
+ "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+ "PORT_REQUIRED": "Der Port ist erforderlich",
"CONNTIMEOUT_REQUIRED": "Timeout der Verbindung ist erforderlich",
- "AUTHTIMEOUT_REQUIRED": "Zeitlimit für die Authentifizierung ist erforderlich",
- "ACCEPTURL_MUST_VALID_URL": "URL ungültiges Format",
- "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
- "REJECTURL_MUST_VALID_URL": "URL ungültiges Format",
- "CLOSEURL_MUST_VALID_URL": "URL ungültiges Format",
- "AGENT_REQUIRED": "Agent ist erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Timeout muss größer oder gleich sein als",
- "DISPOSITION_REQUIRED": "Qualifizierung ist erforderlich",
- "CONDITION_REQUIRED": "Bedingung ist erforderlich",
- "TRUEPRIORITY_REQUIRED": "Wahre Priorität ist erforderlich",
- "FALSEPRIORITY_REQUIRED": "Falsche Priorität ist erforderlich",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wahre Priorität muss größer oder gleich sein als",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Falsche Priorität muss größer oder gleich sein als",
- "PRIORITY_REQUIRED": "Priorität ist erforderlich",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Priorität muss größer oder gleich sein als",
- "QUEUE_REQUIRED": "Warteschlange ist erforderlich",
- "LIST_REQUIRED": "Liste ist erforderlich",
- "PASSWORD_REQUIRED": "Passwort ist erforderlich",
- "SERVICE_REQUIRED": "Dienst ist erforderlich,",
- "IMAP_HOST_REQUIRED": "IMAP-Host ist erforderlich",
- "IMAP_PORT_REQUIRED": "IMAP-Port erforderlich",
- "SMTP_HOST_REQUIRED": "SMTP-Host ist erforderlich",
- "SMTP_PORT_REQUIRED": "SMTP-Port ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "KEY_MAX_LENGTH": "Schlüssel darf eine maximale Länge haben von {{max}}",
- "KEY_REQUIRED": "Schlüssel ist erforderlich",
- "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}}",
+ "AUTHTIMEOUT_REQUIRED": "Das Zeitlimit für die Authentifizierung erforderlich ist",
+ "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+ "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "AGENT_REQUIRED": "Der Agent ist erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Timeout muss größer als oder gleich",
+ "DISPOSITION_REQUIRED": "Die Disposition ist erforderlich",
+ "CONDITION_REQUIRED": "Der Zustand ist erforderlich",
+ "TRUEPRIORITY_REQUIRED": "Die wahre Priorität ist erforderlich",
+ "FALSEPRIORITY_REQUIRED": "Die falsche Priorität ist erforderlich",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die wahre Priorität muss größer als oder gleich",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die falsche Priorität muss größer als oder gleich",
+ "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Priorität muss größer als oder gleich",
+ "QUEUE_REQUIRED": "Die Warteschlange ist erforderlich",
+ "LIST_REQUIRED": "Die Liste ist erforderlich",
+ "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+ "SERVICE_REQUIRED": "Der Dienst ist erforderlich,",
+ "IMAP_HOST_REQUIRED": "Der IMAP-Host wird benötigt",
+ "IMAP_PORT_REQUIRED": "Der IMAP-Anschluss erforderlich",
+ "SMTP_HOST_REQUIRED": "Der SMTP-Host ist erforderlich",
+ "SMTP_PORT_REQUIRED": "Der SMTP-Port ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Passwörter nicht übereinstimmen",
+ "KEY_MAX_LENGTH": "Schlüssel muss eine maximale Länge von {{max}}",
+ "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
+ "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"VALUE_REQUIRED": "Pflichtfeld",
- "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"FONT_SIZE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
"NAME_MUST_VALID_PATTERN": "Falsches Format",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"REPLY_TYPE_REQUIRED": "Pflichtfeld"
"MAILACCOUNTS": "E-Mail Konten",
"EMAIL_ADDRESS": "E-Mail Adresse",
"ADD_MAILACCOUNT": "E-Mail Konto hinzufügen",
- "EDIT_MAILACCOUNT": "E-Mail Konto bearbeiten",
- "DELETE_MAILACCOUNT": "E-Mail Konto löschen",
- "DISPOSITIONS": "Qualifizierungen",
+ "EDIT_MAILACCOUNT": "E-Mail-Konto bearbeiten",
+ "DELETE_MAILACCOUNT": "E-Mail-Konten löschen",
+ "DISPOSITIONS": "Bestimmungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"OTHERS": "Andere",
"SERVICE": "Service",
"CREATED_AT": "Erstellt am",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode akzeptieren",
+ "ACCEPTMETHOD": "Die Methode",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schließen",
- "CLOSEMETHOD": "Methode schließen",
- "CLOSEURL": "URL schließen",
+ "CLOSE": "In der Nähe",
+ "CLOSEMETHOD": "In der Nähe Methode",
+ "CLOSEURL": "Der URL",
"WHITELABEL": "White Label",
- "SIGNATURE": "Signatur",
+ "SIGNATURE": "Unterschrift",
"IMAP": "IMAP",
"HOST": "Host",
"USERNAME": "Benutzername",
- "PORT": "Port",
+ "PORT": "Hafen",
"MAILBOX": "Mailbox",
"FILTER": "Filter",
"CONNTIMEOUT": "Connection Timeout [sek]",
"SMTP": "SMTP",
"SELECTED": "Ausgewählte",
"SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"BACK": "Zurück",
"MAIL": "E-Mail",
- "ID": "ID",
+ "ID": "Id",
"TIMEOUT": "Timeout",
"PASSWORD": "Passwort",
- "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail Qualifizierung verfügbar",
- "ADD_MAILDISPOSITION": "Qualifizierung hinzufügen",
- "NEW_MAILDISPOSITION": "Neue E-Mail Qualifizierung",
- "EDIT_MAILDISPOSITION": "Qualifizierung bearbeiten",
- "DELETE_MAILDISPOSITION": "Qualifizierung löschen",
- "MAILDISPOSITIONS": "E-Mail Qualifizierungen",
+ "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail zur Verfügung Verfügungen",
+ "ADD_MAILDISPOSITION": "E-Mail hinzufügen Disposition",
+ "NEW_MAILDISPOSITION": "Neue E-Mail zur Verfügung",
+ "EDIT_MAILDISPOSITION": "Bearbeiten von E-Mail zur Verfügung",
+ "DELETE_MAILDISPOSITION": "Löschen von E-Mail zur Verfügung",
+ "MAILDISPOSITIONS": "E-Mail Verfügungen",
"NEW_MAILQUEUE": "Neue E-Mail Warteschlange",
- "NEW_MAILACCOUNT": "Neues E-Mail Konto",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "ALL_TEAMS": "Alle Teams",
+ "NEW_MAILACCOUNT": "Neue E-Mail Konto",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"HELP": {
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "USERNAME": "Benutzername für die Authentifizierung",
- "PASSWORD": "Passwort für die Authentifizierung",
- "SECURE": "Bei true wird die Verbindung TLS verwenden, wenn eine Verbindung zum Server aufgebaut wird",
- "FONT_FAMILY": "Standard-Schriften",
+ "USERNAME": "Benutzername für die Authentifizierung verwendet werden",
+ "PASSWORD": "Kennwort für die Authentifizierung verwendet werden",
+ "SECURE": "Bei true wird die Verbindung TLS verwenden, wenn eine Verbindung zu Server",
+ "FONT_FAMILY": "Standardschriftfamilie",
"FONT_SIZE": "Standard Schriftgröße",
- "MARK_AS_UNREAD": "Aktivieren / deaktivieren, um die letzte Nachricht einer Interaktion als ungelesen zu markieren",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung"
+ "MARK_AS_UNREAD": "Agent aktivieren / deaktivieren, um die letzte Nachricht einer Interaktion als ungelesen zu markieren",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Anhalten, um zu verwenden, wenn die obligatorische Disposition aktiviert ist"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
- "TEAMADD_MAILQUEUE": "Team zur Warteschlange hinzufügen",
- "AGENTADD_MAILQUEUE": "Agenten zur Warteschlange hinzufügen",
+ "OF": "Von",
+ "TEAMADD_MAILQUEUE": "Team Chat Warteschlange hinzufügen",
+ "AGENTADD_MAILQUEUE": "Agent zu Chatten Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"AGENT": "Agent",
"EDIT_AGENT": "Agent bearbeiten",
- "EDIT_CLOSE": "Bearbeitung abschließen",
- "DISPOSITION": "Qualifizierung",
- "GOTOIF": "GoToIf",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
+ "DISPOSITION": "Disposition",
+ "GOTOIF": "GotoIf",
"EDIT_GOTOIF": "Bearbeiten GotoIf",
- "CONDITION": "Bedingung",
+ "CONDITION": "Zustand",
"TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"GOTOP": "GotoP",
"VALUE": "Wert",
"QUEUE": "Warteschlange",
"EDIT_QUEUE": "Warteschlange bearbeiten",
- "INTERACTIONS": "Interaktionen",
- "STARTEDAT": "Startdatum",
+ "INTERACTIONS": "Wechselwirkungen",
+ "STARTEDAT": "Gestartet am",
"CONTACT": "Kontakt",
"CLOSEDAT": "Geschlossen",
- "NOTES": "Anmerkungen",
- "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
+ "NOTES": "Hinweise",
+ "NO_INTERACTION_AVAILABLE": "Es sind keine Wechselwirkungen zur Verfügung",
"ACTIVE": "Aktiv",
- "SECURE": "Sicher",
+ "SECURE": "Sichere",
"AUTHENTICATION": "Authentifizierung",
"SMTP_HOST": "SMTP-Host",
"SMTP_PORT": "SMTP-Port",
"IMAP_PORT": "IMAP-Port",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"SELECT_STATUS": "Status auswählen",
- "OPENED": "Geöffnet",
+ "OPENED": "Öffnen",
"CLOSED": "Geschlossen",
"ALL": "Alle",
"SELECT_ACCOUNT": "Konto auswählen",
"UNPAUSE": "Pause beenden",
"DEFAULT_PAUSE": "Standard Pause",
"LOGOUT": "An-/Abmelden",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "VOICE": "Anrufe",
+ "AGENTADD_QUEUE": "Agent E-Mail Warteschlange hinzufügen",
+ "VOICE": "Voice",
"CHAT": "Chat",
- "SMS": "SMS",
- "OPENCHANNEL": "Offener Kanal",
+ "SMS": "Sms",
+ "OPENCHANNEL": "Channel öffnen",
"FAX": "Fax",
"REALTIME": "Echtzeit",
"AGENTS": "Agenten",
"QUEUES": "Warteschlangen",
"ACCOUNTS": "Konten",
- "FULLNAME": "Vollständiger Name",
- "INTERNAL": "Intern",
+ "FULLNAME": "Voller Name",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"PAUSE": "Pause",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
"READY": "Bereit",
- "WAITING": "Wartezustand",
- "TOTAL": "Gesamt",
- "IN": "Eingehend",
- "OUT": "Ausgehend",
+ "WAITING": "Warten",
+ "TOTAL": "Insgesamt",
+ "IN": "In",
+ "OUT": "Aus",
"IMAP_STATUS": "IMAP-Status",
"SMTP_STATUS": "SMTP-Status",
"DISABLED": "Deaktiviert",
"CONNECTED": "Verbunden",
- "NEVER_VERIFIED": "Noch nicht verifiziert",
+ "NEVER_VERIFIED": "Nie verifiziert",
"ERROR": "Fehler",
"EDIT_ACCOUNT": "Konto bearbeiten",
- "VERIFY_SMTP": "Bitte SMTP-Einstellungen prüfen",
+ "VERIFY_SMTP": "Überprüfen Sie die SMTP-",
"VERIFIED": "Überprüft",
- "VERIFYSMTP_MAILACCOUNT": "Bitte SMTP-Einstellungen prüfen",
- "GOTOREALTIME_MAILACCOUNT": "Zum E-Mail-Konto Echtzeitmonitoring",
- "GOTO_MAILACCOUNT": "Zum E-Mail Konto gehen",
+ "VERIFYSMTP_MAILACCOUNT": "Überprüfen Sie die SMTP-",
+ "GOTOREALTIME_MAILACCOUNT": "In Echtzeit, E-Mail Konto",
+ "GOTO_MAILACCOUNT": "In Echtzeit, E-Mail Konto",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"UNAVAILABLE": "Nicht verfügbar",
- "NOT_INUSE": "Nicht in Verwendung",
+ "NOT_INUSE": "Nicht in Gebrauch",
"REACHABLE": "Erreichbar",
- "IN_USE": "In Verwendung",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "INFO": "Information",
+ "IN_USE": "Im Einsatz",
+ "AGENTSADD_QUEUE": "Agenten zu Warteschlange hinzufügen",
+ "INFO": "Info",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_MAILQUEUE": "Echtzeitmonitoring E-Mail Warteschlangen",
- "PARTIALPAUSE": "Teilpause",
+ "GOTOREALTIME_MAILQUEUE": "In Echtzeit, E-Mail Warteschlange",
+ "PARTIALPAUSE": "Lastschriftzahlung teilweise Pause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"IDLE": "Leerlauf",
"CAPACITY": "Kapazität",
- "SPYINTERACTION": "Mithören",
+ "SPYINTERACTION": "Spy",
"ADD_NOTE": "Notiz hinzufügen",
- "NOTE": "Notiz",
+ "NOTE": "Hinweis",
"TAGS": "Tags",
- "INTERACTIONS_MAILACCOUNT": "Zu den Interaktionen gehen",
- "REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "PENDING": "Warten auf Rückmeldung",
- "SEND_AS_PENDING": "Senden und auf Rückmeldung warten",
- "SEND_AND_CLOSE": "Senden und schließen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "CANNED_ANSWER_SEARCH": "Nach Textvorlagen suchen",
- "NO_MAILCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NEW_MAILCANNEDANSWER": "Neue Textvorlage",
- "ADD_MAILCANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_MAILCANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_MAILCANNEDANSWER": "Textvorlage löschen",
+ "INTERACTIONS_MAILACCOUNT": "Zu Wechselwirkungen gehen",
+ "REFRESH_INTERACTIONS": "Aktualisieren Interaktionen",
+ "PENDING": "Ausstehend",
+ "SEND_AS_PENDING": "Senden als Ausstehend",
+ "SEND_AND_CLOSE": "Senden und Schließen",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
+ "NO_MAILCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
+ "NEW_MAILCANNEDANSWER": "Neue vordefinierte Antowrt",
+ "ADD_MAILCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_MAILCANNEDANSWER": "Vordefiierte Antwort bearbeiten",
+ "DELETE_MAILCANNEDANSWER": "Vordefinierte Antwort löschen",
"SHOW_ORIGINAL_MESSAGE": "Ursprüngliche Nachricht anzeigen",
"DELETE_INTERACTION": "Interaktion löschen",
"ACCEPTED": "Akzeptiert",
"FONT_FAMILY": "Schriftfamilie",
"FONT_SIZE": "Schriftgröße",
- "MARK_AS_UNREAD": "Als ungelesen markieren",
- "ADD_MAILSUBSTATUS": "SubStatus hinzufügen",
- "DELETE_MAILSUBSTATUS": "SubStatus löschen",
- "EDIT_MAILSUBSTATUS": "SubStatus bearbeiten",
- "MAILSUBSTATUSES": "E-Mail SubStatus",
- "NEW_MAILSUBSTATUS": "Neuer SubStatus",
- "SEND_AS": "Senden als",
- "COMMAND": "Eingabe",
+ "MARK_AS_UNREAD": "als ungelesen markieren",
+ "ADD_MAILSUBSTATUS": "Unterstatus hinzufügen",
+ "DELETE_MAILSUBSTATUS": "Löschen",
+ "EDIT_MAILSUBSTATUS": "Bearbeiten",
+ "MAILSUBSTATUSES": "E-Mail-Unterstatus",
+ "NEW_MAILSUBSTATUS": "Neuer Unterstatus",
+ "SEND_AS": "Senden Als",
+ "COMMAND": "Befehl",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"VARIABLE": "Variable",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Klingen",
"NOTIFICATIONTEMPLATE": "Vorlage",
"WAITFORTHEASSIGNEDAGENT": "Warte auf den zugewiesenen Agenten",
"EDIT_TAG": "Tag bearbeiten",
- "TAG": "Tag",
- "AGENTTRANSFER": "Weiterleitung Agent",
- "AGENTTRANSFERTIMEOUT": "Zeitlimit für Agententransfer",
- "QUEUETRANSFER": "Weiterleitung Warteschlange",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung für Warteschlangentransfer",
- "TRANSFER": "Weiterleitung",
- "AGENTADD_MAILACCOUNT": "Agenten zum E-Mail Konto hinzufügen",
+ "TAG": "Etikett",
+ "AGENTTRANSFER": "Agentenübertragung",
+ "AGENTTRANSFERTIMEOUT": "Zeitlimit für Agentenübertragungen",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangenübertragung",
+ "TRANSFER": "Transfer",
+ "AGENTADD_MAILACCOUNT": "Fügen Sie dem E-Mail-Konto Agent hinzu",
"YOU_ARE_REGISTERED_AS_A": "Sie sind registriert als",
- "CANNEDANSWERS": "Textvorlagen",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "MAILCANNEDANSWERS": "E-Mail Textvorlagen",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "MAILCANNEDANSWERS": "Vordefinierte Antworten",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"DOWNLOAD": "Herunterladen",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterlagen inkl. Anhänge",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern sonst erforderlich",
- "ADVANCED": "Erweitert",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung angehalten",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
- "DOWNLOAD_WITHOUT_ATTACHMENT": "Herunterladen ohne Anhang",
- "DOWNLOAD_WITH_ATTACHMENT": "Herunterladen inkl. Anhang",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "ADVANCED": "Fortgeschritten",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "DOWNLOAD_WITHOUT_ATTACHMENT": "Ohne Anhang herunterladen",
+ "DOWNLOAD_WITH_ATTACHMENT": "Download mit Anhang",
"LASTMESSAGE": "Letzte Nachricht",
"REPLY_TYPE": "Antworttyp"
}
"DESCRIPTION": "وصف",
"DOWNLOAD_PLUGIN": "تنزيل المكون الإضافي",
"DROP_TO_UPLOAD": "إسقاط للتحميل",
- "DROP_TO_UPLOAD_MESSAGE": "أسقط ملفك هنا للتحميل. فقط الرمز البريدي - ماكس. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "أسقط ملفك هنا للتحميل. فقط الرمز البريدي - ماكس. 2MB",
"EDITOR": "محرر",
"EDIT_PLUGIN": "تحرير المكوّن الإضافي",
"FINISH": "إنهاء",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Beskrivelse",
"DOWNLOAD_PLUGIN": "Download plugin",
"DROP_TO_UPLOAD": "Drop til upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop din fil her for at uploade. Kun ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop din fil her for at uploade. Kun ZIP - Max. 2MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Rediger plugin",
"FINISH": "Afslut",
"DESCRIPTION": "Beschreibung",
"DOWNLOAD_PLUGIN": "Plugin herunterladen",
"DROP_TO_UPLOAD": "Hochladen",
- "DROP_TO_UPLOAD_MESSAGE": "Legen Sie Ihre Datei zum Hochladen hier ab. Nur PLZ - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Legen Sie Ihre Datei zum Hochladen hier ab. Nur PLZ - Max. 2 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Plugin bearbeiten",
"FINISH": "Fertig",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Descripción",
"DOWNLOAD_PLUGIN": "Descargar plugin",
"DROP_TO_UPLOAD": "Suelta para subir",
- "DROP_TO_UPLOAD_MESSAGE": "Suelta tu archivo aquí para subirlo. Solo ZIP - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Suelta tu archivo aquí para subirlo. Solo ZIP - Max. 2 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Editar plugin",
"FINISH": "Terminar",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "شرح",
"DOWNLOAD_PLUGIN": "دانلود پلاگین",
"DROP_TO_UPLOAD": "قطره برای آپلود",
- "DROP_TO_UPLOAD_MESSAGE": "فایل خود را اینجا بگذارید تا آپلود شود فقط ZIP - حداکثر. 4 مگابایت",
+ "DROP_TO_UPLOAD_MESSAGE": "فایل خود را اینجا بگذارید تا آپلود شود فقط ZIP - حداکثر. 2 مگابایت",
"EDITOR": "ویرایشگر",
"EDIT_PLUGIN": "ویرایش پلاگین",
"FINISH": "پایان دادن",
"DESCRIPTION": "Kuvaus",
"DOWNLOAD_PLUGIN": "Lataa laajennus",
"DROP_TO_UPLOAD": "Pudota lähetettäväksi",
- "DROP_TO_UPLOAD_MESSAGE": "Pudota tiedosto täällä lähetettäväksi. Vain ZIP - Max. 4 Mt",
+ "DROP_TO_UPLOAD_MESSAGE": "Pudota tiedosto täällä lähetettäväksi. Vain ZIP - Max. 2 Mt",
"EDITOR": "toimittaja",
"EDIT_PLUGIN": "Muokkaa lisäosaa",
"FINISH": "Suorittaa loppuun",
"DESCRIPTION": "La description",
"DOWNLOAD_PLUGIN": "Télécharger le plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Déposez votre fichier ici pour le télécharger. Seulement ZIP - Max. 4 Mo",
+ "DROP_TO_UPLOAD_MESSAGE": "Déposez votre fichier ici pour le télécharger. Seulement ZIP - Max. 2 Mo",
"EDITOR": "Éditeur",
"EDIT_PLUGIN": "Modifier le plugin",
"FINISH": "terminer",
"SAVE": "שמור",
"INSTALLING": "התקנה",
"DROP_TO_UPLOAD": "שחרר כדי להעלות",
- "DROP_TO_UPLOAD_MESSAGE": "כדי להעלות את הקובץ, שחרר אותו כאן. ZIP בלבד – מקס' 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "כדי להעלות את הקובץ, שחרר אותו כאן. ZIP בלבד – מקס' 2MB",
"UPLOAD_PLUGIN": "יישום Plug-in להעלאות",
"UPLOADING": "העלאה",
"CREATED_AT": "נוצר ב-",
"DESCRIPTION": "विवरण",
"DOWNLOAD_PLUGIN": "प्लगइन डाउनलोड करें",
"DROP_TO_UPLOAD": "अपलोड करने के लिए ड्रॉप",
- "DROP_TO_UPLOAD_MESSAGE": "अपलोड करने के लिए अपनी फाइल यहां ड्रॉप करें। केवल ज़िप - अधिकतम। 4 एमबी",
+ "DROP_TO_UPLOAD_MESSAGE": "अपलोड करने के लिए अपनी फाइल यहां ड्रॉप करें। केवल ज़िप - अधिकतम। 2 एमबी",
"EDITOR": "संपादक",
"EDIT_PLUGIN": "प्लगइन संपादित करें",
"FINISH": "समाप्त",
"DESCRIPTION": "Deskripsi",
"DOWNLOAD_PLUGIN": "Unduh plugin",
"DROP_TO_UPLOAD": "Jatuhkan Untuk Mengunggah",
- "DROP_TO_UPLOAD_MESSAGE": "Jatuhkan file Anda di sini untuk mengunggah. Hanya ZIP - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Jatuhkan file Anda di sini untuk mengunggah. Hanya ZIP - Max. 2 MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Edit plugin",
"FINISH": "Selesai",
"SAVE": "Salva",
"INSTALLING": "Installazione in corso",
"DROP_TO_UPLOAD": "Trascina il file da caricare",
- "DROP_TO_UPLOAD_MESSAGE": "Trascina qui il tuo plugin da caricare. Solo ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Trascina qui il tuo plugin da caricare. Solo ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Upload in corso",
"CREATED_AT": "Creato il",
"DESCRIPTION": "説明",
"DOWNLOAD_PLUGIN": "プラグインをダウンロード",
"DROP_TO_UPLOAD": "アップロードするドロップ",
- "DROP_TO_UPLOAD_MESSAGE": "アップロードするファイルをここにドロップします。 ZIP - Max。 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "アップロードするファイルをここにドロップします。 ZIP - Max。 2MB",
"EDITOR": "編集者",
"EDIT_PLUGIN": "プラグインを編集",
"FINISH": "フィニッシュ",
"DESCRIPTION": "기술",
"DOWNLOAD_PLUGIN": "플러그인 다운로드",
"DROP_TO_UPLOAD": "올리기",
- "DROP_TO_UPLOAD_MESSAGE": "여기에 파일을 올려 업로드하십시오. ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "여기에 파일을 올려 업로드하십시오. ZIP - Max. 2MB",
"EDITOR": "편집자",
"EDIT_PLUGIN": "플러그인 편집",
"FINISH": "끝",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Apraksts",
"DOWNLOAD_PLUGIN": "Lejupielādēt spraudni",
"DROP_TO_UPLOAD": "Pārvelciet šeit, lai augšupielādētu",
- "DROP_TO_UPLOAD_MESSAGE": "Pārvelciet datni šeit, lai augšupielādētu Tikai<i> ZIP</i> – maks. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Pārvelciet datni šeit, lai augšupielādētu Tikai<i> ZIP</i> – maks. 2 MB",
"EDITOR": "Redaktors",
"EDIT_PLUGIN": "Rediģēt spraudni",
"FINISH": "Pabeigt",
"DESCRIPTION": "Beschrijving",
"DOWNLOAD_PLUGIN": "Download plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Zet je bestand hier neer om te uploaden. Alleen ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Zet je bestand hier neer om te uploaden. Alleen ZIP - Max. 2MB",
"EDITOR": "Editor",
"EDIT_PLUGIN": "Bewerk plugin",
"FINISH": "Af hebben",
"DESCRIPTION": "Beskrivelse",
"DOWNLOAD_PLUGIN": "Last ned plugin",
"DROP_TO_UPLOAD": "Drop til opplasting",
- "DROP_TO_UPLOAD_MESSAGE": "Slett filen din her for å laste opp. Kun ZIP - Maks. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Slett filen din her for å laste opp. Kun ZIP - Maks. 2MB",
"EDITOR": "Redaktør",
"EDIT_PLUGIN": "Rediger plugin",
"FINISH": "Bli ferdig",
"DESCRIPTION": "Opis",
"DOWNLOAD_PLUGIN": "Pobierz wtyczkę",
"DROP_TO_UPLOAD": "Upuść, aby przesłać",
- "DROP_TO_UPLOAD_MESSAGE": "Upuść swój plik tutaj, aby przesłać. Tylko ZIP - Max. 4 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Upuść swój plik tutaj, aby przesłać. Tylko ZIP - Max. 2 MB",
"EDITOR": "Redaktor",
"EDIT_PLUGIN": "Edytuj wtyczkę",
"FINISH": "koniec",
"SAVE": "Save",
"INSTALLING": "Installing",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 2MB",
"UPLOAD_PLUGIN": "Upload plugin",
"UPLOADING": "Uploading",
"CREATED_AT": "Created at",
"DESCRIPTION": "Descrição",
"DOWNLOAD_PLUGIN": "Download do plugin",
"DROP_TO_UPLOAD": "Drop To Upload",
- "DROP_TO_UPLOAD_MESSAGE": "Solte seu arquivo aqui para fazer o upload. Apenas ZIP - Máx. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Solte seu arquivo aqui para fazer o upload. Apenas ZIP - Máx. 2MB",
"EDITOR": "editor",
"EDIT_PLUGIN": "Editar plugin",
"FINISH": "Terminar",
"DESCRIPTION": "Описание",
"DOWNLOAD_PLUGIN": "Скачать плагин",
"DROP_TO_UPLOAD": "Загрузить",
- "DROP_TO_UPLOAD_MESSAGE": "Отбросьте свой файл здесь, чтобы загрузить его. Только ZIP - Макс. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Отбросьте свой файл здесь, чтобы загрузить его. Только ZIP - Макс. 2MB",
"EDITOR": "редактор",
"EDIT_PLUGIN": "Изменить плагин",
"FINISH": "Конец",
"DESCRIPTION": "Beskrivning",
"DOWNLOAD_PLUGIN": "Hämta plugin",
"DROP_TO_UPLOAD": "Släpp för att ladda upp",
- "DROP_TO_UPLOAD_MESSAGE": "Släpp din fil här för att ladda upp. Endast ZIP - Max. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Släpp din fil här för att ladda upp. Endast ZIP - Max. 2MB",
"EDITOR": "Redaktör",
"EDIT_PLUGIN": "Redigera plugin",
"FINISH": "Avsluta",
"DESCRIPTION": "Açıklama",
"DOWNLOAD_PLUGIN": "Eklentiyi indir",
"DROP_TO_UPLOAD": "Yüklenmeye Bırak",
- "DROP_TO_UPLOAD_MESSAGE": "Yüklemek için dosyanızı buraya bırakın. Sadece ZIP - Maks. 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Yüklemek için dosyanızı buraya bırakın. Sadece ZIP - Maks. 2MB",
"EDITOR": "Editör",
"EDIT_PLUGIN": "Eklentiyi düzenle",
"FINISH": "Bitiş",
"DESCRIPTION": "描述",
"DOWNLOAD_PLUGIN": "下载插件",
"DROP_TO_UPLOAD": "删除上传",
- "DROP_TO_UPLOAD_MESSAGE": "将您的文件放在此处上传。只有ZIP - Max。 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "将您的文件放在此处上传。只有ZIP - Max。 2MB",
"EDITOR": "编辑",
"EDIT_PLUGIN": "编辑插件",
"FINISH": "完",
"DESCRIPTION": "描述",
"DOWNLOAD_PLUGIN": "下載插件",
"DROP_TO_UPLOAD": "刪除上傳",
- "DROP_TO_UPLOAD_MESSAGE": "將您的文件放在此處上傳。只有ZIP - Max。 4MB",
+ "DROP_TO_UPLOAD_MESSAGE": "將您的文件放在此處上傳。只有ZIP - Max。 2MB",
"EDITOR": "編輯",
"EDIT_PLUGIN": "編輯插件",
"FINISH": "完",
{
"OPENCHANNEL": {
"TEXT": "Text",
- "TIMES": "Zeitstempel",
- "EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
+ "TIMES": "Die Anzahl der Zeiten pro Interaktion",
+ "EDIT_AUTOREPLY": "Bearbeiten Sie automatische Antwort",
"AUTOREPLY": "Automatische Antwort",
"NAME": "Name",
- "OPENCHANNELQUEUES": "Warteschlangen offener Kanal",
- "SEARCH_FOR_ANYONE": "Suche",
+ "OPENCHANNELQUEUES": "Offener Kanal Warteschlangen",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"ERRORS": {
- "TEXT_REQUIRED": "Feld \"Text\" ist erforderlich",
- "NAME_REQUIRED": "Name ist erforderlich",
- "AGENT_TIMEOUT_REQUIRED": "Agent Timeout ist erforderlich",
- "MOTIONADDRESS_REQUIRED": "Adresse ist erforderlich",
- "MOTIONADDRESS_MUST_VALID_URL": "Adresse ungültiges Format",
- "ACCEPTURL_MUST_VALID_URL": "URL ungültiges Format",
- "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
- "REJECTURL_MUST_VALID_URL": "URL ungültiges Format",
- "CLOSEURL_MUST_VALID_URL": "URL ungültiges Format",
- "REPLYURI_REQUIRED": "Antwort-URL ungültiges Format",
- "REPLYURI_MUST_VALID_URL": "Antwort-URL ungültiges Format",
- "PRIORITY_REQUIRED": "Priorität ist erforderlich",
- "CONDITION_REQUIRED": "Bedingung ist erforderlich",
- "TRUEPRIORITY_REQUIRED": "Wahre Priorität ist erforderlich",
- "FALSEPRIORITY_REQUIRED": "Falsche Priorität ist erforderlich",
+ "TEXT_REQUIRED": "Das Feld \"Text\" ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+ "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+ "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+ "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+ "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+ "REPLYURI_REQUIRED": "Die Antwort URL ist erforderlich",
+ "REPLYURI_MUST_VALID_URL": "Die Antwort URL muss im gültigen Format geschrieben werden",
+ "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+ "CONDITION_REQUIRED": "Der Zustand ist erforderlich",
+ "TRUEPRIORITY_REQUIRED": "Die wahre Priorität ist erforderlich",
+ "FALSEPRIORITY_REQUIRED": "Die falsche Priorität ist erforderlich",
"AGENT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
"DISPOSITION_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Schlüssel darf eine maximale Länge haben von {{max}}",
- "TEXT_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}}",
+ "KEY_MAX_LENGTH": "Schlüssel muss eine maximale Länge von {{max}}",
+ "TEXT_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"VALUE_REQUIRED": "Pflichtfeld",
"COMMAND_REQUIRED": "Pflichtfeld",
"LIST_REQUIRED": "Pflichtfeld",
"KEY_REQUIRED": "Pflichtfeld",
- "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "NAME_MUST_VALID_PATTERN": "Format ungültig",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "NAME_MUST_VALID_PATTERN": "Falsches Format",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"ACCESSKEYID_REQUIRED": "Zugangsschlüssel-ID ist erforderlich",
- "BOTNAME_REQUIRED": "Bot-Name ist erforderlich",
- "SECRETACCESSKEY_REQUIRED": "Geheimer Schlüssel ist erforderlich",
+ "BOTNAME_REQUIRED": "Der Bot-Name ist erforderlich",
+ "SECRETACCESSKEY_REQUIRED": "Zugangsschlüssel geheim ist erforderlich",
"CLIENTEMAIL_REQUIRED": "Pflichtfeld",
"PRIVATEKEY_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld"
"GOTOIF": "Gotoif",
"NOOP": "Noop",
"QUEUE": "Warteschlange",
- "EDIT_AGENT": "Agenteb bearbeiten",
- "EDIT_GOTO": "Gehe zu bearbeiten",
- "EDIT_NOOP": "Noop bearbeiten",
- "EDIT_GOTOIF": "GoToIf bearbeiten",
+ "EDIT_AGENT": "Agent bearbeiten",
+ "EDIT_GOTO": "Bearbeiten Gehe zu",
+ "EDIT_NOOP": "Bearbeiten Noop",
+ "EDIT_GOTOIF": "Bearbeiten Gotoif",
"EDIT_QUEUE": "Warteschlange bearbeiten",
- "CONDITION": "Bedingung",
+ "CONDITION": "Zustand",
"TRUEPRIORITY": "Wahre Priorität",
"FALSEPRIORITY": "Falsche Priorität",
"VALUE": "Wert",
"PRIORITY": "Priorität",
"AGENT_TIMEOUT": "Agent Timeout",
"DESCRIPTION": "Beschreibung",
- "ADD_OPENCHANNELQUEUE": "Warteschlange offener Kanal hinzufügen",
- "EDIT_OPENCHANNELQUEUE": "Warteschlange offener Kanal bearbeiten",
- "DELETE_OPENCHANNELQUEUE": "Warteschlange offener Kanal löschen",
- "PENALTY": "Verzögerung",
+ "ADD_OPENCHANNELQUEUE": "Fügen Sie im Offenen Kanal Warteschlange",
+ "EDIT_OPENCHANNELQUEUE": "Offener Kanal Warteschlange bearbeiten",
+ "DELETE_OPENCHANNELQUEUE": "Löschen der Warteschlange im Offenen Kanal",
+ "PENALTY": "Strafe",
"TEAMADD_OPENCHANNELQUEUE": "Team zur Warteschlange hinzufügen",
- "AGENTADD_OPENCHANNELQUEUE": "Agenten zur Warteschlange hinzufügen",
+ "AGENTADD_OPENCHANNELQUEUE": "Agent zur Warteschlange hinzufügen",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CREATED_AT": "Erstellt am",
"SAVE": "Speichern",
"SETTINGS": "Einstellungen",
"GENERAL": "Allgemein",
- "OPENCHANNELACCOUNTS": "Konten offener Kanal",
+ "OPENCHANNELACCOUNTS": "Offener Kanal Konten",
"MOTIONADDRESS": "Motion Adresse",
- "ADD_OPENCHANNELACCOUNT": "Konto offener Kanal hinzufügen",
- "EDIT_OPENCHANNELACCOUNT": "Konto offener Kanal bearbeiten",
- "DELETE_OPENCHANNELACCOUNT": "Konto offener Kanal löschen",
+ "ADD_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account hinzufügen",
+ "EDIT_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account bearbeiten",
+ "DELETE_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account löschen.",
"API": "API",
- "DISPOSITIONS": "Qualifizierungen",
+ "DISPOSITIONS": "Bestimmungen",
"WEBHOOKS": "WebHooks",
"ACTIONS": "Aktionen",
"LIST": "Liste",
"FIDELITY": "Treue",
"ACCEPT": "Akzeptieren",
- "ACCEPTMETHOD": "Methode akzeptieren",
+ "ACCEPTMETHOD": "Die Methode",
"ACCEPTURL": "URL akzeptieren",
"REJECT": "Ablehnen",
"REJECTMETHOD": "Methode ablehnen",
"REJECTURL": "URL ablehnen",
- "CLOSE": "Schließen",
- "CLOSEMETHOD": "Methode schließen",
- "CLOSEURL": "URL schließen",
- "SELECTED": "Ausgewählt",
+ "CLOSE": "In der Nähe",
+ "CLOSEMETHOD": "In der Nähe Methode",
+ "CLOSEURL": "Der URL",
+ "SELECTED": "Ausgewählte",
"SELECT_ALL": "Alle auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"BACK": "Zurück",
"OPENCHANNEL": "Offener Kanal",
- "ID": "ID",
+ "ID": "Id",
"TIMEOUT": "Timeout",
- "OPENCHANNELDISPOSITIONS": "Qualifizierungen offener Kanal",
- "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine Qualifizierungen verfügbar",
- "NEW_OPENCHANNELDISPOSITION": "Neue Qualifizierung",
- "ADD_OPENCHANNELDISPOSITION": "Qualifizierung offener Kanal hinzufügen",
- "EDIT_OPENCHANNELDISPOSITION": "Qualifizierung bearbeiten",
- "DELETE_OPENCHANNELDISPOSITION": "Qualifizierung löschen",
- "NEW_OPENCHANNELQUEUE": "Neue Warteschlange offener Kanal",
- "NEW_OPENCHANNELACCOUNT": "Neues Konto offener Kanal",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "ALL_TEAMS": "Alle Teams",
+ "OPENCHANNELDISPOSITIONS": "Offener Kanal Verfügungen",
+ "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine offenen Kanal Dispositionen verfügbar",
+ "NEW_OPENCHANNELDISPOSITION": "Neue Offene Kanal inspektion",
+ "ADD_OPENCHANNELDISPOSITION": "Fügen Sie im Offenen Kanal inspektion",
+ "EDIT_OPENCHANNELDISPOSITION": "Bearbeiten Sie im Offenen Kanal inspektion",
+ "DELETE_OPENCHANNELDISPOSITION": "Löschen Sie im Offenen Kanal inspektion",
+ "NEW_OPENCHANNELQUEUE": "Neue Offene Kanal Warteschlange",
+ "NEW_OPENCHANNELACCOUNT": "Neue Open Channel Account",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"REPLYURI": "Antwort URL",
"RECEIVEURI": "Erhalten URL",
"HELP": {
- "RECEIVEURI": "Automatisch generierter API-String, um die Nachrichten über den offenen Kanal zu erhalten (POST-Methode). Zum Kopieren in die Zwischenablage klicken",
- "REPLYURI": "URL des offenen Kanals zum Senden und Empfangen von Nachrichten",
+ "RECEIVEURI": "Dies ist die automatisch generierte API-String müssen Sie die Nachrichten in Ihrem offenen Kanal zu erhalten von der externen Anwendung (POST-Methode verwendet werden muss). Drücken Sie die Zwischenablage, um Sie in die Zwischenablage zu kopieren.",
+ "REPLYURI": "Dies ist die URL der Offene Kanal wird beim Senden oder Beantworten von Nachrichten",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"LIST": "Contact Manager Liste zu verknüpfen von Kontakten",
"TOKEN": "Fügen Sie diese Eigenschaft als Abfragezeichenfolge in Ihrer Web-Service-URL hinzu. Weitere Informationen finden Sie im Dokument doc <a target = \"_ blank\" href = \"https://wiki.xcallymotion.com/display/XMV/New Channels Configuration Steps",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
- "WELCOMEMESSAGE": "Willkommensnachricht beim Eintreffen der ersten Anfrage"
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "WELCOMEMESSAGE": "Dies ist die erste Nachricht, die an das Schütz gesendet wird"
},
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"CONTACT": "Kontakt",
- "STARTEDAT": "Startdatum",
+ "STARTEDAT": "Gestartet am",
"STATUS": "Status",
"CLOSED": "Geschlossen",
- "OPENED": "Geöffnet",
+ "OPENED": "Öffnen",
"OPEN": "Öffnen",
"ACCOUNT": "Konto",
"INTERACTION": "Interaktion",
- "INTERACTIONS": "Interaktionen",
+ "INTERACTIONS": "Wechselwirkungen",
"ALL": "Alle",
- "SELECT_STATUS": "Status auswählen",
+ "SELECT_STATUS": "Wählen Sie einen Status",
"FILTER": "Filter",
"FILTERS": "Filter",
"CLOSEDAT": "Geschlossen",
- "DISPOSITION": "Qualifizierung",
- "NOTES": "Anmerkungen",
- "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
- "SELECT_ACCOUNT": "Konto auswählen",
+ "DISPOSITION": "Disposition",
+ "NOTES": "Hinweise",
+ "NO_INTERACTION_AVAILABLE": "Es sind keine Wechselwirkungen zur Verfügung",
+ "SELECT_ACCOUNT": "Wählen Sie ein Konto",
"GOTOP": "Gotop",
"EDIT_GOTOP": "Gotop bearbeiten",
- "EDIT_CLOSE": "Bearbeitung abschließen",
- "INFO": "Information",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
+ "INFO": "Info",
"KEY": "Schlüssel",
"REALTIME": "Echtzeit",
"UNKNOWN": "Unbekannt",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"UNAVAILABLE": "Nicht verfügbar",
- "NOT_INUSE": "Nicht in Verwendung",
+ "NOT_INUSE": "Nicht in Gebrauch",
"REACHABLE": "Erreichbar",
- "IN_USE": "In Verwendung",
+ "IN_USE": "Im Einsatz",
"AGENTS": "Agenten",
"QUEUES": "Warteschlangen",
- "FULLNAME": "Vollständiger Name",
- "INTERNAL": "Intern",
+ "FULLNAME": "Fullname",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"PAUSE": "Pause",
"LOGOUT": "An-/Abmelden",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange offener Kanal hinzufügen",
+ "AGENTADD_QUEUE": "Agent zu Offenen Kanal Warteschlange hinzufügen",
"UNPAUSE": "Pause beenden",
"DEFAULT_PAUSE": "Standard Pause",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
"READY": "Bereit",
- "WAITING": "Wartezustand",
- "VOICE": "Anrufe",
+ "WAITING": "Warten",
+ "VOICE": "Voice",
"CHAT": "Chat",
"MAIL": "E-Mail",
"SMS": "SMS",
"FAX": "Fax",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlange offener Kanal hinzufügen",
+ "AGENTSADD_QUEUE": "Agenten, die Offenen Kanal Warteschlange hinzufügen",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "GOTOREALTIME_OPENCHANNELQUEUE": "Zum offener Kanal Echtzeitmonitoring",
- "PARTIALPAUSE": "Teilpause",
+ "GOTOREALTIME_OPENCHANNELQUEUE": "In Echtzeit, offenen Kanal Warteschlange",
+ "PARTIALPAUSE": "Lastschriftzahlung teilweise Pause",
"BUSY": "Besetzt",
"TIMER": "Timer",
"IDLE": "Leerlauf",
"CAPACITY": "Kapazität",
"TAGS": "Tags",
- "SPYINTERACTION": "Mithören",
- "INTERACTIONS_OPENCHANNELACCOUNT": "Zu Interaktionen gehen",
- "REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
+ "SPYINTERACTION": "Spy",
+ "INTERACTIONS_OPENCHANNELACCOUNT": "Zu Wechselwirkungen gehen",
+ "REFRESH_INTERACTIONS": "Aktualisieren Interaktionen",
"DELETE": "Löschen",
- "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NEW_OPENCHANNELCANNEDANSWER": "Neue Textvorlage",
- "ADD_OPENCHANNELCANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_OPENCHANNELCANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_OPENCHANNELCANNEDANSWER": "Textvorlage löschen",
- "DELIVERYREPORTURL": "URL für Zustellungsbericht",
+ "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "Keine vordefinierten Antworten verfügbar",
+ "NEW_OPENCHANNELCANNEDANSWER": "Neue vordefinierte Antwort",
+ "ADD_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "DELETE_OPENCHANNELCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "DELIVERYREPORTURL": "Zustellungsbericht-URL",
"DELETE_INTERACTION": "Interaktion löschen",
- "COMMAND": "Eingabe",
+ "COMMAND": "Befehl",
"EDIT_SYSTEM": "System bearbeiten",
"SYSTEM": "System",
"VARIABLE": "Variable",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Klingen",
"NOTIFICATIONTEMPLATE": "Vorlage",
- "INSERT_MESSAGE_HERE": "Textnachricht hier eingeben",
+ "INSERT_MESSAGE_HERE": "Fügen Sie hier Ihre Textnachricht ein",
"WAITFORTHEASSIGNEDAGENT": "Warte auf den zugewiesenen Agenten",
- "ADVANCED": "Erweitert",
+ "ADVANCED": "Fortgeschritten",
"PROXY": "Proxy",
- "TOKEN": "Token",
+ "TOKEN": "Zeichen",
"EDIT_TAG": "Tag bearbeiten",
- "TAG": "Tag",
- "AGENTADD_OPENCHANNELACCOUNT": "Konto offener Kanal hinzufügen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "CANNED_ANSWER_SEARCH": "Nach Textvorlagen suchen",
- "MAPKEY": "MAP-KEY",
+ "TAG": "Etikett",
+ "AGENTADD_OPENCHANNELACCOUNT": "Fügen Sie Agent zu Openchannel Account hinzu",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
+ "MAPKEY": "Karten Schlüssel",
"SEND": "Senden",
- "TO": "An",
- "AGENTTRANSFER": "Weiterleitung Agent",
+ "TO": "Zu",
+ "AGENTTRANSFER": "Agent Transfer",
"AGENTTRANSFERTIMEOUT": "Zeitüberschreitung für Agententransfer",
- "QUEUETRANSFER": "Weiterleitung Warteschlange",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung für Warteschlangentransfer",
- "TRANSFER": "Weiterleitung",
- "CANNEDANSWERS": "Textvorlagen",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFERTIMEOUT": "Warteschlangenübertragungs-Timeout",
+ "TRANSFER": "Transfer",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
"DOWNLOAD_INTERACTION": "Herunterladen",
- "OPENCHANNELCANNEDANSWERS": "Textvorlagen offener Kanal",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern sonst erforderlich",
- "DIALOGFLOW": "DialogFlow",
- "EDIT_DIALOGFLOW": "DialogFlow bearbeiten",
+ "OPENCHANNELCANNEDANSWERS": "Vordefinierte Antworten",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause zur Verwendung, wenn die obligatorische Disposition aktiviert ist",
+ "DIALOGFLOW": "Dialogablauf",
+ "EDIT_DIALOGFLOW": "Bearbeiten Sie die Dialogflow-Konfiguration",
"LANGUAGE": "Sprache",
- "WELCOMEMESSAGE": "Willkommensnachricht",
+ "WELCOMEMESSAGE": "Willkommen Messsage",
"ACCESSKEYID": "Zugangsschlüssel-ID",
"AMAZONLEX": "AmazonLex",
- "BOTNAME": "Botname",
- "EDIT_AMAZONLEX": "Lex-Konfiguration bearbeiten",
- "LEXREGION": "Lex Region",
- "SECRETACCESSKEY": "Geheimer Schlüssel",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme angehalten",
+ "BOTNAME": "Bot-Name",
+ "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration",
+ "LEXREGION": "Region",
+ "SECRETACCESSKEY": "Zugangsschlüssel geheim",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
"TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterlagen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterlagen inkl. Anhänge",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download ohne Anhänge",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
"LASTMESSAGE": "Letzte Nachricht",
- "CLIENTEMAIL": "Kunden E-Mail",
+ "CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privater Schlüssel",
+ "PRIVATEKEY": "Privat Schlüssel",
"PROJECTID": "Projekt-ID",
"ADD_NOTE": "Notiz hinzufügen",
- "NOTE": "Notiz"
+ "NOTE": "Hinweis"
}
}
{
"STAFF": {
"CONTEXT": "Kontext",
- "RINGINUSE": "Innerhalb Verteilungsgrupppe",
+ "RINGINUSE": "Ring im Einsatz",
"USERS": "Benutzer",
"AGENTS": "Agenten",
- "TOGGLE_SIDENAV": "Navigationsleiste umschalten",
- "SEARCH_FOR_ANYONE": "Suche",
+ "TOGGLE_SIDENAV": "Um sidenav",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"BACK": "Zurück",
- "MULTI_SELECT_TOGGLE": "Mehrfachauswahl ja/nein",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
- "SELECTED": "Ausgewählt",
+ "MULTI_SELECT_TOGGLE": "Wählen Sie toggle multi",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "SELECTED": "Ausgewählte",
"DELETE_SELECTED": "Auswahl löschen",
"EXPORT_SELECTED": "Auswahl exportieren",
"ALL_USERS": "Alle Benutzer",
"ALL_AGENTS": "Alle Agenten",
"SORT": "Sortieren",
"NAME": "Name",
- "FULLNAME": "Vollständiger Name",
+ "FULLNAME": "Voller Name",
"A_TO_Z": "(A bis Z)",
"Z_TO_A": "(Z bis A)",
"MORE": "Mehr",
"DELETE_USER": "Benutzer löschen",
"EDIT_USER": "Benutzer bearbeiten",
- "DELETE_AGENT": "Agenten löschen",
- "EDIT_AGENT": "Agenten bearbeiten",
+ "DELETE_AGENT": "Bedienplatz löschen",
+ "EDIT_AGENT": "Agent bearbeiten",
"DELETE": "Löschen",
"SAVE": "Speichern",
"ADD_USER": "Benutzer hinzufügen",
"ADD_AGENT": "AGENT HINZUFÜGEN",
- "NO_RESULTS": "Keine Ergebnisse",
+ "NO_RESULTS": "Keine Ergebnisse.",
"CLOSE_DIALOG": "Dialog schließen",
- "NAME_REQUIRED": "Name (erforderlich)",
+ "NAME_REQUIRED": "Name (erforderlich).",
"USERNAME": "Benutzername",
"SHOW_ALL_FIELDS": "Alle Felder anzeigen",
"PHONE_NUMBER": "Telefonnummer",
"EMAIL": "E-Mail",
"PASSWORD": "Passwort",
"ERRORS": {
- "FULLNAME_REQUIRED": "Vollständiger Name ist erforderlich",
- "USERNAME_REQUIRED": "Benutzername ist erforderlich",
- "EMAIL_REQUIRED": "E-Mail ist erforderlich",
- "PASSWORD_REQUIRED": "Passwort ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "EMAIL_MUST_VALID": "E-Mail Format ungültig",
- "ACCOUNTNAME_REQUIRED": "Konto ist erforderlich",
- "NAME_REQUIRED": "Name ist erforderlich",
- "HOST_REQUIRED": "Host ist erforderlich",
- "CHATCAPACITY_REQUIRED": "Kapazität Chat ist erforderlich",
- "MAILCAPACITY_REQUIRED": "Kapazität E-Msil ist erforderlich",
- "FAXCAPACITY_REQUIRED": "Kapazität Fax ist erforderlich",
- "SMSCAPACITY_REQUIRED": "Kapazität SMS ist erforderlich",
- "OPENCHANNELCAPACITY_REQUIRED": "Kapazität offener Kanal ist erforderlich",
- "SIPEXPIRES_REQUIRED": "SIP-Ablaufdatum ist erforderlich",
- "SIPPORT_REQUIRED": "SIP-Port ist erforderlich",
- "UNCONDITIONALNUMBER_REQUIRED": "Zielrufnummer ist erforderlich",
- "NOREPLYNUMBER_REQUIRED": "Nummer bei keiner Antwort ist erforderlich",
- "BUSYNUMBER_REQUIRED": "Nummer bei Besetzt ist erforderlich",
- "USERNAME_MUST_VALID_PATTERN": "Benutzername ungültig {{regex}}.",
- "REMOTECONTROLPORT_REQUIRED": "Port für Remote ist erforderlich",
- "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität Chat muss größer oder gleich sein als",
- "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität E-Mail muss größer oder gleich sein als",
- "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität Fax muss größer oder gleich sein als",
- "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Kapazität offener Kanal muss größer oder gleich sein als",
- "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FULLNAME_REQUIRED": "Der Fullname ist erforderlich",
+ "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+ "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
+ "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
+ "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
+ "ACCOUNTNAME_REQUIRED": "Der Account ist erforderlich.",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "HOST_REQUIRED": "Der Host wird benötigt",
+ "CHATCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
+ "MAILCAPACITY_REQUIRED": "Die E-Mail Kapazität erforderlich ist",
+ "FAXCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
+ "SMSCAPACITY_REQUIRED": "Die SMS-Kapazität erforderlich ist",
+ "OPENCHANNELCAPACITY_REQUIRED": "Der Offene Kanal Kapazität erforderlich ist",
+ "SIPEXPIRES_REQUIRED": "Der SIP-Ablauf ist erforderlich",
+ "SIPPORT_REQUIRED": "Die SIP-Port erforderlich.",
+ "UNCONDITIONALNUMBER_REQUIRED": "Die Zielrufnummer ist erforderlich",
+ "NOREPLYNUMBER_REQUIRED": "Die Nummer ist keine Antwort erforderlich",
+ "BUSYNUMBER_REQUIRED": "Die besetzt ist erforderlich",
+ "USERNAME_MUST_VALID_PATTERN": "Der Benutzername muss gültige {{regex}}.",
+ "REMOTECONTROLPORT_REQUIRED": "Die Fernbedienung Anschluss erforderlich",
+ "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Chat Kapazität muss größer als oder gleich",
+ "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die E-Mail Kapazität muss größer als oder gleich",
+ "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Das Fax Kapazität muss größer als oder gleich",
+ "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der offene Kanal Kapazität muss größer als oder gleich",
+ "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer als oder gleich",
"AUTOANSWERDELAY_REQUIRED": "Pflichtfeld",
"MONITOREXTENSION_REQUIRED": "Pflichtfeld",
"ENCRYPTION": "SRTP (Secure Realtime Protocol) Verschlüsselung",
"DTLSCERTFILE_REQUIRED": "Pflichtfeld",
"DTLSPRIVATEKEY_REQUIRED": "Pflichtfeld",
- "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstaben, 1 Großbuchstaben, 1 Zahl und 1 Sonderzeichen enthalten",
+ "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen haben ~! @",
"ALLOWCODECS_REQUIRED": "Pflichtfeld",
"CRUDPERMISSIONS_REQUIRED": "Pflichtfeld",
"USERPROFILE_REQUIRED": "Pflichtfeld",
- "PASSWORD_OLDPASSWORD_MATCH": "Neues und altes Passwort dürfen nicht gleich sein",
+ "PASSWORD_OLDPASSWORD_MATCH": "Das neue Passwort muss sich vom vorherigen Passwort unterscheiden",
"CONFIRM_REQUIRED": "Pflichtfeld",
"WHATSAPPCAPACITY_REQUIRED": "Pflichtfeld"
},
"ACCOUNT": "Konto",
- "VOICE": "Anrufe",
+ "VOICE": "Voice",
"CREATED_AT": "Erstellt am",
"ROLE": "Rolle",
- "PERSONAL_INFO": "Persönliche Informationen",
+ "PERSONAL_INFO": "Persönliche Infos",
"DESCRIPTION": "Beschreibung",
- "CHANGE_AVATAR": "Avatar ändern",
+ "CHANGE_AVATAR": "Avatar ändern.",
"GENERAL": "Allgemein",
- "INTERNAL": "Intern",
- "TRANSPORT": "Transport",
+ "INTERNAL": "Interne",
+ "TRANSPORT": "Verkehr",
"ALLOWCODECS": "Codecs erlaubt",
"HELP": {
"ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz",
"TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
- "HOST": "Wie finden Sie die Client-IP oder den Host-Namen um das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
- "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall. Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
- "SIPEXPIRES": "Standardeinstellung: 160",
+ "HOST": "Wie finden Sie die Client-IP oder den Host-Namen. Wenn Sie möchten, dass das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
+ "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
+ "SIPEXPIRES": "Standardeinstellung: 120",
"SIPPORT": "Standardeinstellung: 5160",
- "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: eingehende Authentifizierung - Peer: für ausgehende Anrufe - Freund: Deckt beide Eigenschaften",
- "CHATCAPACITY": "0 für unbegrenzt",
- "MAILCAPACITY": "0 für unbegrenzt",
- "FAXCAPACITY": "0 für unbegrenzt",
- "SMSCAPACITY": "0 für unbegrenzt",
- "OPENCHANNELCAPACITY": "0 für unbegrenzt",
- "CALLGROUP": "Anrufgruppe",
- "PICKUPGROUP": "Übernahmegruppe",
+ "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
+ "CHATCAPACITY": "Null bedeutet unbegrenzt.",
+ "MAILCAPACITY": "Null bedeutet unbegrenzt.",
+ "FAXCAPACITY": "Null bedeutet unbegrenzt.",
+ "SMSCAPACITY": "Null bedeutet unbegrenzt.",
+ "OPENCHANNELCAPACITY": "Null bedeutet unbegrenzt.",
+ "CALLGROUP": "Legt der Agent callgroup",
+ "PICKUPGROUP": "Definiert die Gruppen in denen der Agent Anrufe annehmen können",
"USERNAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"ENCRYPTION": "SRTP (Secure Realtime Protocol) Verschlüsselung",
"LAST_PASSWORD_RESET_AT": "Letztes Datum und Uhrzeit, zu der das Passwort geändert wurde. Wenn die Allgemeinen Einstellungen für Secure Suite aktiviert sind, läuft das Passwort nach 90 Tagen ab.",
"DTLSCERTFILE": "Verknüpfen Sie mit dem gültigen TLS-Zertifikat (.crt-Datei). Standardwert: '/etc/pki/tls/certs/motion.crt'.",
"DTLSPRIVATEKEY": "Verknüpfen Sie mit dem privaten Schlüssel des Zertifikats (.key-Datei). Standardwert: '/etc/pki/tls/private/motion.key'.",
"SAVE_PERMISSIONS": "Jeder Abschnitt, der ausstehende Änderungen enthält, wird gespeichert",
- "CUSTOM_DASHBOARDS_PERMISSIONS": "Berechtigungen für benutzerdefinierte Dashboards werden im Werkzeuge-Modul verwaltet",
+ "CUSTOM_DASHBOARDS_PERMISSIONS": "Berechtigungen für benutzerdefinierte Dashboards werden im Modul Tools verwaltet",
"APIKEY": "Verwenden Sie die Schaltfläche \"API-Schlüsselmanager\" in der Symbolleiste, um diesen Schlüssel zu verwalten",
- "ENABLEAUTOMATICSCREENRECORDING": "Funktionalität ist nur für Sprachkanäle verfügbar",
- "BLOCKED": "Zugriff sperren/entsperren",
- "DISABLED": "Auswählen zum Aktivieren",
- "WHATSAPPCAPACITY": "Maximale Anzahl gleichzeitiger Whatsapp-Interaktionen pro Agent (0 = unbegrenzt)",
+ "ENABLEAUTOMATICSCREENRECORDING": "Die Funktionalität ist nur für Sprachkanäle verfügbar",
+ "BLOCKED": "Zugriff sperren / entsperren",
+ "DISABLED": "Zum Deaktivieren auswählen / Zum Reaktivieren deaktivieren",
+ "WHATSAPPCAPACITY": "Maximale Anzahl gleichzeitiger Kanalinteraktionen pro Agent (0 = unbegrenzt)",
"MASK_SENSITIVE_DATA": "Maskieren Sie vertrauliche Daten in der gesamten Anwendung (z. B. Telefonnummern und E-Mail-Adressen).",
"WSS_PORT": "Standard: 8089"
},
- "NEW_PASSWORD": "Neues Passwort",
+ "NEW_PASSWORD": "Neues Kennwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"CHANGE_PASSWORD": "Passwort ändern",
- "CHANGEPASSWORD_AGENT": "Agent",
- "CHANGEPASSWORD_USER": "Nutzer",
- "CHANGEPASSWORD_TELEPHONE": "Telefon",
- "LOGININPAUSE": "Pause nach Anmelden",
+ "CHANGEPASSWORD_AGENT": "Passwort ändern",
+ "CHANGEPASSWORD_USER": "Passwort ändern",
+ "CHANGEPASSWORD_TELEPHONE": "Passwort ändern",
+ "LOGININPAUSE": "Geben Sie Ihren Benutzernamen und Ihr Passwort In der Pause",
"HOST": "Host",
"NAT": "NAT",
- "CHANSPY": "Listen-In",
+ "CHANSPY": "ChanSpy",
"OTHER_CHANNELS": "Andere Kanäle",
- "CHATCAPACITY": "Kapazität Chats",
- "MAILCAPACITY": "Kapazität E-Mail",
- "FAXCAPACITY": "Kapazität Fax",
- "SMSCAPACITY": "Kapazität SMSW",
- "OPENCHANNELCAPACITY": "Kapazität offener Kanal",
+ "CHATCAPACITY": "Chat Kapazität",
+ "MAILCAPACITY": "E-Kapazität",
+ "FAXCAPACITY": "Fax Kapazität",
+ "SMSCAPACITY": "Sms-Kapazität",
+ "OPENCHANNELCAPACITY": "Offener Kanal Kapazität",
"MOTIONBAR": "Motion Bar",
"SETTINGS": "Einstellungen",
- "AUTOANSWER": "Auto-Antwort",
+ "AUTOANSWER": "\"Autom. Antwort\"",
"ENABLESETTINGS": "Einstellungen aktivieren",
"CALL_FORWARDING": "Anrufweiterleitung",
- "UNCONDITIONAL": "Generell",
- "UNCONDITIONALNUMBER": "Nummer Weiterleitung generell",
- "NOREPLY": "Bei keiner Antwort",
- "NOREPLYNUMBER": "Nummer Weiterleitung keine Antwort",
- "BUSY": "Bei Besetzt",
- "BUSYNUMBER": "Nummer Weiterleitung Besetzt",
- "REMOTE_CONTROL": "Remote-Nebenstelle",
- "REMOTECONTROL": "Remote-Nebenstelle",
- "REMOTECONTROLPORT": "Port Remote-Nebenstelle",
+ "UNCONDITIONAL": "Unbedingte",
+ "UNCONDITIONALNUMBER": "Uneingeschränkte Anzahl",
+ "NOREPLY": "Keine Antwort",
+ "NOREPLYNUMBER": "\"Keine Antwort\"-Nummer",
+ "BUSY": "Besetzt",
+ "BUSYNUMBER": "Nummer besetzt",
+ "REMOTE_CONTROL": "Fernbedienung",
+ "REMOTECONTROL": "Fernbedienung",
+ "REMOTECONTROLPORT": "Fernbedienung",
"SIP": "SIP",
- "SIPEXPIRES": "SIP-Ablaufdatum",
+ "SIPEXPIRES": "SIP läuft [sec]",
"SIPPORT": "SIP-Port",
- "PENALTY": "Verzögerung",
+ "PENALTY": "Strafe",
"ACCOUNTNAME": "Account Name",
"ADD_TELEPHONE": "Telefon hinzufügen",
"EDIT_TELEPHONE": "Telefon bearbeiten",
"DELETE_TELEPHONE": "Telefon löschen",
"TEAMS": "Teams",
"DELETE_TEAM": "Team löschen",
- "AGENTADD_TEAM": "Agenten zu einem Team hinzufügen",
- "EDIT_TEAM": "Team bearbeiten",
+ "AGENTADD_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
+ "EDIT_TEAM": "Team bearbeiten.",
"TYPE": "Typ",
- "TELEPHONES": "Telefonnummern",
- "CALLERID": "Anrufer-ID",
- "ENABLERECORDING": "Aufzeichnung aktiv",
+ "TELEPHONES": "Telefone",
+ "CALLERID": "Die Anrufer-ID",
+ "ENABLERECORDING": "Aktivieren der Aufzeichnung",
"STAFF": "Personal",
- "ID": "ID",
+ "ID": "Id",
"NEW_USER": "Neuer Benutzer",
"NEW_AGENT": "Neuer Agent",
"NEW_TELEPHONE": "Neues Telefon",
"NEW_TEAM": "Neues Team",
"ADD_TEAM": "Team hinzufügen",
- "JOIN_QUEUE": "In Warteschlange beitreten",
+ "JOIN_QUEUE": "Melden Sie Warteschlange",
"CAPACITY": "Kapazität",
"AUTOINTERNAL": "Interne Nummer automatisch generieren",
- "ADD_AGENT_TO_TEAM": "Agenten zum Team hinzufügen",
- "TEAMADD_AGENT": "Zum Team hinzufügen",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "ADD_AGENT_TO_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
+ "TEAMADD_AGENT": "Agent zu Gruppe hinzufügen",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
"PERMISSIONS": "Berechtigungen",
- "ADD_AGENT_TO_QUEUE": "Agenten zur Warteschlange hinzufügen",
+ "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
"ALL_MODULES_AVAILABLE": "Alle Module verfügbar",
- "CALLGROUP": "Gruppenanruf",
+ "CALLGROUP": "Gruppenruf",
"PICKUPGROUP": "Übernahmegruppe",
- "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agenten hinzufügen - ausgehende Anrufe",
- "QUEUEADD_AGENT_VOICE_INBOUND": "Agenten hinzufügen - eingehende Anrufe",
- "QUEUEADD_AGENT_CHAT_INBOUND": "Agenten hinzufügen - Chat-Warteschlangen",
- "QUEUEADD_AGENT_MAIL_INBOUND": "Agenten hinzufügen - E-Mail-Warteschlangen",
- "QUEUEADD_AGENT_SMS_INBOUND": "Agenten hinzufügen - SMS-Warteschlangen",
- "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agenten hinzufügen - offener Kanal-Warteschlangen",
- "QUEUEADD_AGENT_FAX_INBOUND": "Agenten hinzufügen - Fax-Warteschlangen",
- "QUEUEADD_USER_VOICE_INBOUND": "Nutzer hinzufügen - eingehende Anrufe",
- "QUEUEADD_USER_CHAT_INBOUND": "Nutzer hinzufügen - eingehende Chats",
- "QUEUEADD_USER_MAIL_INBOUND": "Nutzer hinzufügen - eingehende E-Mails",
- "QUEUEADD_USER_SMS_INBOUND": "Nutzer hinzufügen - eingehende SMS",
- "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Nutzer hinzufügen - eingehender offener Kanal",
- "QUEUEADD_USER_FAX_INBOUND": "Nutzer hinzufügen - eingehende Faxe",
- "ALL_TEAMS": "Alle Teams",
+ "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agent in der Warteschlange Kampagnen hinzufügen",
+ "QUEUEADD_AGENT_VOICE_INBOUND": "Agent Voice Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_CHAT_INBOUND": "Agent zu chatten Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_MAIL_INBOUND": "Agent Mail Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_SMS_INBOUND": "Agent sms-Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agent zu offenen Kanal Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_FAX_INBOUND": "Agent fax Warteschlangen hinzufügen",
+ "QUEUEADD_USER_VOICE_INBOUND": "Benutzer stimme Warteschlangen hinzufügen",
+ "QUEUEADD_USER_CHAT_INBOUND": "Benutzer zu chatten Warteschlangen hinzufügen",
+ "QUEUEADD_USER_MAIL_INBOUND": "Benutzer Mail Warteschlangen hinzufügen",
+ "QUEUEADD_USER_SMS_INBOUND": "Benutzer von SMS-Warteschlangen hinzufügen",
+ "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Benutzer zum offenen Kanal Warteschlangen hinzufügen",
+ "QUEUEADD_USER_FAX_INBOUND": "Benutzer fax Warteschlangen hinzufügen",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"SELECTED_AGENTS": "Ausgewählte Agenten",
- "ALL_QUEUES_VOICE_OUTBOUND": "Alle Warteschlangen - ausgehende Anrufe",
- "SELECTED_QUEUES_VOICE_OUTBOUND": "Gewählte Warteschlangen - ausgehende Anrufe",
- "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen - eingehende Anrufe",
- "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Warteschlangen - eingehende Anrufe",
- "ALL_QUEUES_CHAT_INBOUND": "Alle Warteschlangen - Chat",
- "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Warteschlangen - Chat",
- "ALL_QUEUES_MAIL_INBOUND": "Alle Warteschlangen - E-Mail",
- "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Warteschlangen - E-Mail",
- "ALL_QUEUES_SMS_INBOUND": "Alle Warteschlangen - SMS",
- "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte Warteschlangen - SMS",
- "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle Warteschlangen - offener Kanal",
- "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählte Warteschlangen - offener Kanal",
- "ALL_QUEUES_FAX_INBOUND": "Alle Warteschlangen - Fax",
- "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Warteschlangen - Fax",
+ "ALL_QUEUES_VOICE_OUTBOUND": "Alle Queue Kampagnen",
+ "SELECTED_QUEUES_VOICE_OUTBOUND": "Ausgewählte Warteschlange Kampagnen",
+ "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen",
+ "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Voice Warteschlangen",
+ "ALL_QUEUES_CHAT_INBOUND": "Alle Chat Warteschlangen",
+ "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Chat-warteschlangen",
+ "ALL_QUEUES_MAIL_INBOUND": "Alle E-Mail-Warteschlangen",
+ "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Mail Warteschlangen",
+ "ALL_QUEUES_SMS_INBOUND": "Alle SMS-Warteschlangen",
+ "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte SMS-Warteschlangen",
+ "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle offenen Kanal Warteschlangen",
+ "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählten Offenen Kanal Warteschlangen",
+ "ALL_QUEUES_FAX_INBOUND": "Alle Fax Warteschlangen",
+ "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Fax Warteschlangen",
"VOICEMAIL": "Voicemail",
- "SHOWWEBCONTROL": "WebControl anzeigen",
+ "SHOWWEBCONTROL": "Anzeigen Web Control",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
+ "OF": "Von",
"CALLFORWARDING": "Anrufweiterleitung",
- "DND": "Nicht stören",
- "UNANSWEREDCALLBADGE": "Badge unbeantwortete Anrufe",
- "ENABLEDTMFTONE": "DMFT-Töne aktivieren",
- "AUTOANSWERDELAY": "Automatische Antwort nach",
+ "DND": "Während der Pause nicht stören",
+ "UNANSWEREDCALLBADGE": "Zeige unbeantwortete Anruf Abzeichen",
+ "ENABLEDTMFTONE": "Dtmf-Töne aktivieren",
+ "AUTOANSWERDELAY": "Auto Antwortverzögerung",
"ENCRYPTION": "Verschlüsselung",
"CHANNELS": "Kanäle",
"CHAT": "Chat",
- "SMS": "SMS",
+ "SMS": "Sms",
"OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
- "QUEUEADD_USER_VOICE_OUTBOUND": "Nutzer zu Warteschlange für eingehende Anrufe hinzufügen",
- "MONITOREXTENSION": "Nebenstelle des Nutzers aufzeichnen",
+ "QUEUEADD_USER_VOICE_OUTBOUND": "Benutzer in Warteschlange Kampagnen hinzufügen",
+ "MONITOREXTENSION": "Anrufe an die Nebenstelle des Benutzers aufzeichnen",
"NO_PASSWORD_CHANGE": "Keine Passwortänderung",
"SECURITY_SUITE": "Sicherheitssuite",
- "LAST_PASSWORD_RESET_AT": "Passwort zuletzt zurückgesetzt am:",
- "SIP_WEBRTC": "SIP/WebRTC",
- "SETTINGS_WEBRTC": "Einstellungen",
+ "LAST_PASSWORD_RESET_AT": "Letzte Passwort zurücksetzen um",
+ "SIP_WEBRTC": "Schluck",
+ "SETTINGS_WEBRTC": "die Einstellungen",
"WEBRTC": "WebRTC",
"DTLSCERTFILE": "TLS-Zertifikat",
- "DTLSPRIVATEKEY": "Privater Schlüssel des TLS-Zertifikats",
- "EDITPERMISSIONS": "Berechtigungen verwalten",
- "READANDEDIT": "Lesen und Bearbeiten",
- "READANDEDITANDDELETE": "Lesen, Bearbeiten und Löschen",
- "GENERAL_PERMISSIONS": "Allgemein",
- "ENABLEMESSENGER": "Internen Messenger aktivieren",
- "OUTBOUNDPROXY": "Outbound-Proxy",
+ "DTLSPRIVATEKEY": "Der private Schlüssel des TLS-Zertifikats",
+ "EDITPERMISSIONS": "Bearbeiten von Berechtigungen",
+ "READANDEDIT": "Lesen, Bearbeiten",
+ "READANDEDITANDDELETE": "Lesen, Bearbeiten, Löschen",
+ "GENERAL_PERMISSIONS": "Allgemeines",
+ "ENABLEMESSENGER": "Aktivieren Sie den internen Messenger",
+ "OUTBOUNDPROXY": "Oubound-Proxy",
"PHONE": "Telefon",
"MOBILE": "Handy, Mobiltelefon",
"ALIAS": "Alias",
"ENABLEJAWSINTEGRATION": "Jaws-Integration aktivieren",
"PREFIXREQUIRED": "Präfix erforderlich",
- "ENABLEVIDEORECORDING": "Videoaufzeichnung aktivieren",
+ "ENABLEVIDEORECORDING": "Aktiviere Videoaufnahme",
"OLD_PASSWORD": "Altes Passwort",
"ALL_CHATQUEUES": "Alle Chat-Warteschlangen",
"ALL_CHATWEBSITES": "Alle Chat-Websites",
"ALL_FAXACCOUNTS": "Alle Faxkonten",
- "ALL_FAXQUEUES": "Alle Fax-Warteschlangen",
+ "ALL_FAXQUEUES": "Alle Faxwarteschlangen",
"ALL_MAILACCOUNTS": "Alle E-Mail-Konten",
"ALL_MAILQUEUES": "Alle E-Mail-Warteschlangen",
- "ALL_OPENCHANNELACCOUNTS": "Alle offener Kanal-Konten",
- "ALL_OPENCHANNELQUEUES": "Alle offener Kanal-Warteschlangen",
+ "ALL_OPENCHANNELACCOUNTS": "Alle offenen Channel-Konten",
+ "ALL_OPENCHANNELQUEUES": "Alle offenen Kanalwarteschlangen",
"ALL_PROJECTS": "Alle Cally Square-Projekte",
"ALL_QUEUECAMPAIGNS": "Alle Queue-Kampagnen",
"ALL_SMSACCOUNTS": "Alle SMS-Konten",
"SELECTED_CHATQUEUES": "Ausgewählte E-Mail-Warteschlangen",
"SELECTED_CHATWEBSITES": "Ausgewählte Chat-Websites",
"SELECTED_FAXACCOUNTS": "Ausgewählte Faxkonten",
- "SELECTED_FAXQUEUES": "Ausgewählte Fax-Warteschlangen",
+ "SELECTED_FAXQUEUES": "Ausgewählte Faxwarteschlangen",
"SELECTED_MAILACCOUNTS": "Ausgewählte E-Mail-Konten",
"SELECTED_MAILQUEUES": "Ausgewählte Chat-Warteschlangen",
- "SELECTED_OPENCHANNELACCOUNTS": "Ausgewählte offener Kanal-Konten",
- "SELECTED_OPENCHANNELQUEUES": "Ausgewählte offene Kanal-Warteschlangen",
+ "SELECTED_OPENCHANNELACCOUNTS": "Ausgewählte offene Channel-Konten",
+ "SELECTED_OPENCHANNELQUEUES": "Ausgewählte offene Kanalwarteschlangen",
"SELECTED_PROJECTS": "Ausgewählte Projekte von Cally Square",
"SELECTED_QUEUECAMPAIGNS": "Ausgewählte Queue-Kampagnen",
"SELECTED_SMSACCOUNTS": "Ausgewählte SMS-Konten",
"SELECTED_SMSQUEUES": "Ausgewählte SMS-Warteschlangen",
- "SELECTED_VOICEQUEUES": "Ausgewählte Anruf-Warteschlangen",
+ "SELECTED_VOICEQUEUES": "Ausgewählte Sprachwarteschlangen",
"USERADD_CHATQUEUES": "Chat-Warteschlange zum Benutzer hinzufügen",
"USERADD_CHATWEBSITES": "Chat-Website zum Benutzer hinzufügen",
"USERADD_FAXACCOUNTS": "Faxkonto zum Benutzer hinzufügen",
- "USERADD_FAXQUEUES": "Fax-Warteschlange zum Benutzer hinzufügen",
+ "USERADD_FAXQUEUES": "Faxwarteschlange zum Benutzer hinzufügen",
"USERADD_MAILACCOUNTS": "E-Mail-Konto zum Benutzer hinzufügen",
"USERADD_MAILQUEUES": "E-Mail-Warteschlange zum Benutzer hinzufügen",
- "USERADD_OPENCHANNELACCOUNTS": "Offener Kanal-Konto zum Benutzer hinzufügen",
- "USERADD_OPENCHANNELQUEUES": "Offener Kanal-Warteschlange zum Benutzer hinzufügen",
+ "USERADD_OPENCHANNELACCOUNTS": "Open Channel-Konto zum Benutzer hinzufügen",
+ "USERADD_OPENCHANNELQUEUES": "Open Channel-Warteschlange zum Benutzer hinzufügen",
"USERADD_PROJECTS": "Cally Square-Projekt zum Benutzer hinzufügen",
"USERADD_QUEUECAMPAIGNS": "Queue-Kampagne zum Benutzer hinzufügen",
"USERADD_SMSACCOUNTS": "SMS-Konto zum Benutzer hinzufügen",
"USERADD_SMSQUEUES": "SMS-Warteschlange zum Benutzer hinzufügen",
- "USERADD_VOICEQUEUES": "Anruf-Warteschlange zum Benutzer hinzufügen",
- "HOTDESK": "Wechselnder Arbeitsplatz",
+ "USERADD_VOICEQUEUES": "Sprachwarteschlange zum Benutzer hinzufügen",
+ "HOTDESK": "Heißer Schreibtisch",
"ADD_USERPROFILE": "Benutzerprofil hinzufügen",
- "CANCEL": "Abbrechen",
+ "CANCEL": "Stornieren",
"CLONE_USERPROFILE": "Benutzerprofil klonen",
"CLOSE": "Schließen",
"CONFIRM": "Bestätigen",
"PERMISSIONS_SELECTED_RESOURCES": "Ausgewählte Ressourcen",
"PERMISSIONS_SELECT_REPORT_TYPE": "Wählen Sie den Berichtstyp",
"PERMISSIONS_SELECT_SECTION": "Wählen Sie einen Abschnitt aus",
- "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "Kein Zugriff auf den ausgewählten Bereich",
+ "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "Sie dürfen nicht auf den ausgewählten Bereich zugreifen",
"PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE": "Unbefugte Handlung",
- "PERMISSIONS_WARNING_CLOSE": "Es wurden Änderungen nicht gespeichert. Fortfahren?",
+ "PERMISSIONS_WARNING_CLOSE": "Du hast nicht gespeicherte Änderungen. Möchten Sie den Vorgang wirklich ohne Speichern beenden?",
"PERMISSIONS_WARNING_ENABLE_ALL": "Alle {{sectionName}} Unterabschnitte und ihre Ressourcen werden aktiviert. Sind Sie sicher, dass Sie fortfahren möchten?",
- "QUEUES_ASSOCIATION": "{{channel}} Warteschlangen-Zuweisung",
+ "QUEUES_ASSOCIATION": "{{channel}} Queues Association",
"READ_PERMISSION": "Lesen",
"REPORT_TYPE": "Berichtstyp",
"SECTIONS": "Abschnitte",
"SUMMARY": "Zusammenfassung",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
"USERPROFILE": "Benutzerprofil",
"USERPROFILES": "Benutzerprofil",
- "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Keine Berechtigung zum Erstellen der Ressource",
- "VIDEOSUPPORT": "Unterstützt Video",
+ "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "Sie dürfen die Ressource nicht erstellen",
+ "VIDEOSUPPORT": "Video-Unterstützung",
"APIKEY": "API-Schlüssel",
"APIKEYMANAGER_USER": "API Key Manager",
- "GENERATE": "Erneut generieren",
+ "GENERATE": "(Regenerieren",
"MANAGE_API_KEY": "API-Schlüsselmanager",
- "REMOVE": "Entfernen",
- "ENABLEAUTOMATICSCREENRECORDING": "Automatische Bildschirmaufzeichnung aktivieren",
- "ENABLESCREENRECORDINGBYAGENT": "Bildschirmaufzeichnung durch Agenten aktivieren",
- "ENABLEVIDEOECORDING": "Videoaufzeichnung aktivieren",
+ "REMOVE": "Löschen",
+ "ENABLEAUTOMATICSCREENRECORDING": "Aktivieren Sie die automatische Bildschirmaufnahme",
+ "ENABLESCREENRECORDINGBYAGENT": "Aktivieren Sie die Bildschirmaufzeichnung nach Agent",
+ "ENABLEVIDEOECORDING": "Videoaufnahme aktivieren",
"BLOCKED": "Gesperrt",
"DISABLED": "Deaktiviert",
- "REGENERATE": "Erneut generieren",
+ "REGENERATE": "Regenerieren",
"ALL_QUEUES_WHATSAPP_INBOUND": "Alle WhatsApp-Warteschlangen",
"ALL_WHATSAPPACCOUNTS": "Alle WhatsApp-Konten",
"ALL_WHATSAPPQUEUES": "Alle Whataspp-Warteschlangen",
- "QUEUEADD_AGENT_WHATSAPP_INBOUND": "Agenten zu WhatsApp-Warteschlangen hinzufügen",
+ "QUEUEADD_AGENT_WHATSAPP_INBOUND": "Agent zu WhatsApp-Warteschlangen hinzufügen",
"QUEUEADD_USER_WHATSAPP_INBOUND": "Benutzer zu WhatsApp-Warteschlangen hinzufügen",
"SELECTED_QUEUES_WHATSAPP_INBOUND": "Ausgewählte WhatsApp-Warteschlangen",
"SELECTED_WHATSAPPACCOUNTS": "Ausgewählte WhatsApp-Konten",
"SELECTED_WHATSAPPQUEUES": "Ausgewählte WhatsApp-Warteschlangen",
"USERADD_WHATSAPPACCOUNTS": "WhatsApp-Konto zum Benutzer hinzufügen",
- "USERADD_WHATSAPPQUEUES": "Whataspp-Warteschlange dem Benutzer hinzufügen",
+ "USERADD_WHATSAPPQUEUES": "Fügen Sie dem Benutzer die Whataspp-Warteschlange hinzu",
"WHATSAPP": "WhatsApp Connector",
- "WHATSAPPCAPACITY": "Kapazität Whatsapp",
+ "WHATSAPPCAPACITY": "WhatsApp Connector-Kapazität",
"MASK_SENSITIVE_DATA": "Sensitive Daten maskieren",
"WSS_PORT": "WSS-Port",
"ATTACHMENTS": "Anhänge",
"CALLYSQUARE_RECORDINGS": "Cally Square-Aufnahmen",
- "CONTACT_MANAGER_LISTS": "Kontaktmanager Listen",
+ "CONTACT_MANAGER_LISTS": "Kontaktmanagerlisten",
"DOWNLOADS": "Downloads",
"DOWNLOAD_PERMISSIONS": "Download-Berechtigungen",
"JSCRIPTY_SESSIONS": "Jscripty-Sitzungen",
"OMNICHANNEL_INTERACTIONS": "Omnichannel-Interaktionen",
- "SCREEN_RECORDINGS": "Bildschirmaufzeichnungen",
- "VOICE_RECORDINGS": "Sprachaufzeichnungen"
+ "SCREEN_RECORDINGS": "Bildschirmaufnahmen",
+ "VOICE_RECORDINGS": "Sprachaufnahmen"
}
}
"BOT": "Voicebot",
"CALL": "Anruf",
"NAME": "Name",
- "TRUNKS": "Trunks",
- "SEARCH_FOR_ANYONE": "Suche",
+ "TRUNKS": "Amtsleitungen",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"ERRORS": {
- "NAME_REQUIRED": "Name ist erforderlich",
- "HOST_REQUIRED": "Host wird benötigt",
- "DEFAULTUSER_REQUIRED": "Standardbenutzer ist erforderlich",
- "CALLERID_REQUIRED": "Anrufer-ID ist erforderlich",
- "KEY_REQUIRED": "Schlüssel ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "VALIDITYSTART_REQUIRED": "Startzeit ist erforderlich",
- "VALIDITYEND_REQUIRED": "Endzeit ist erforderlich",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "HOST_REQUIRED": "Der Host wird benötigt",
+ "DEFAULTUSER_REQUIRED": "Der Standardbenutzer ist erforderlich",
+ "CALLERID_REQUIRED": "Die Anrufer-ID ist erforderlich",
+ "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Kennwörter nicht übereinstimmen",
+ "VALIDITYSTART_REQUIRED": "Die Startzeit ist erforderlich",
+ "VALIDITYEND_REQUIRED": "Das Ende der Zeit ist erforderlich",
"MONTHDAY_REQUIRED": "Tag des Monats ist erforderlich",
- "HOUR_REQUIRED": "Stunde ist erforderlich",
- "CONTENT_REQUIRED": "Inhalt ist erforderlich",
- "URL_REQUIRED": "URL ist erforderlich",
- "URL_MUST_VALID_URL": "URL ungültiges Format",
- "APPLICATION_REQUIRED": "Anwendung ist erforderlich",
- "ARGUMENTS_REQUIRED": "Bedingungen sind erforderlich",
- "NAME_MUST_VALID_PATTERN": "Name ungültiges Format",
- "POLLING_INTERVAL_REQUIRED": "Abfrageintervall ist erforderlich",
- "TITLE_REQUIRED": "Titel ist erforderlich",
- "EMAILADDRESS_REQUIRED": "E-Mail Adresse ist erforderlich",
- "EVENTVARIABLES_REQUIRED": "Variablen sind erforderlich",
- "TYPE_REQUIRED": "Typ ist erforderlich",
- "VALUE_REQUIRED": "Wert ist erforderlich",
- "ACCOUNT_REQUIRED": "Konto ist erforderlich",
- "FIELD_REQUIRED": "Feld ist erforderlich",
- "INTEGRATION_REQUIRED": "Integration ist erforderlich",
- "LIST_REQUIRED": "Liste ist erforderlich",
- "TEMPLATE_REQUIRED": "Vorlage ist erforderlich",
- "AUTOCREATECONTACT_REQUIRED": "Kontakterstellung erforderlich",
- "OUTBOUNDROUTE_REQUIRED": "Ausgehende Route erforderlich",
- "QUEUE_REQUIRED": "Warteschlange erforderlich",
- "TIME_RANGE_TO_REQUIRED": "Zeitintervall erforderlich",
- "WEEK_DAYS_TO_REQUIRED": "Wochentage erforderlich",
- "MONTH_DAYS_TO_REQUIRED": "Tage des Monats erforderlich",
- "MONTH_TO_REQUIRED": "Monat erforderlich",
+ "HOUR_REQUIRED": "Die Stunde ist erforderlich",
+ "CONTENT_REQUIRED": "Der Inhalt ist erforderlich",
+ "URL_REQUIRED": "Die URL ist erforderlich",
+ "URL_MUST_VALID_URL": "Die URL muss gültig sein",
+ "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
+ "ARGUMENTS_REQUIRED": "Die Argumente sind erforderlich",
+ "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
+ "POLLING_INTERVAL_REQUIRED": "Das Abfrageintervall ist erforderlich",
+ "TITLE_REQUIRED": "Der Titel ist erforderlich",
+ "EMAILADDRESS_REQUIRED": "Die E-Mail Adresse ist erforderlich",
+ "EVENTVARIABLES_REQUIRED": "Pflichtfeld",
+ "TYPE_REQUIRED": "Pflichtfeld",
+ "VALUE_REQUIRED": "Pflichtfeld",
+ "ACCOUNT_REQUIRED": "Pflichtfeld",
+ "FIELD_REQUIRED": "Pflichtfeld",
+ "INTEGRATION_REQUIRED": "Pflichtfeld",
+ "LIST_REQUIRED": "Pflichtfeld",
+ "TEMPLATE_REQUIRED": "Pflichtfeld",
+ "AUTOCREATECONTACT_REQUIRED": "Pflichtfeld",
+ "OUTBOUNDROUTE_REQUIRED": "Pflichtfeld",
+ "QUEUE_REQUIRED": "Pflichtfeld",
+ "TIME_RANGE_TO_REQUIRED": "Pflichtfeld",
+ "WEEK_DAYS_TO_REQUIRED": "Pflichtfeld",
+ "MONTH_DAYS_TO_REQUIRED": "Pflichtfeld",
+ "MONTH_TO_REQUIRED": "Pflichtfeld",
"TIME_RANGE_FROM_INVALID": "Falsches Format",
"TIME_RANGE_TO_INVALID": "Falsches Format",
- "ACTION_REQUIRED": "Aktion erforderlich",
- "CONFIGURATION_REQUIRED": "Konfiguration erforderlich",
- "PROJECT_REQUIRED": "Projekt erforderlich",
- "LOCATION_REQUIRED": "Standort erforderlich",
- "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "FONTSIZE_REQUIRED": "Schriftgröße erforderlich",
- "PATH_REQUIRED": "Pfad erforderlich",
- "FORMAT_REQUIRED": "Format erforderlich",
- "REPORT_REQUIRED": "Report erforderlich",
- "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "REFRESH_REQUIRED": "Aktualisieren erforderlich",
- "TITLE_MAX_LENGTH": "Titel darf eine maximale Länge haben von {{max}} ",
- "NAME_MAX_LENGTH": "Name darf eine maximale Länge haben von {{max}} ",
- "OUTPUT_REQUIRED": "Ausgabe erforderlich",
- "REPORTFOLDER_REQUIRED": "Ordner erforderlich",
- "REPORTSUBFOLDER_REQUIRED": "Unterordner erforderlich",
- "REPORTTYPE_REQUIRED": "Reporttyp erforderlich",
- "AGENT_REQUIRED": "Agent erforderlich",
- "INFO_REQUIRED": "Information erforderlich",
- "SCRIPT_REQUIRED": "Skript erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
- "TIMEOUT_REQUIRED": "Timeout erforderlich",
- "AUTOCREATE_FIELD_REQUIRED": "Automatisches Erstellen erforderlich"
+ "ACTION_REQUIRED": "Pflichtfeld",
+ "CONFIGURATION_REQUIRED": "Pflichtfeld",
+ "PROJECT_REQUIRED": "Pflichtfeld",
+ "LOCATION_REQUIRED": "Pflichtfeld",
+ "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "FONTSIZE_REQUIRED": "Pflichtfeld",
+ "PATH_REQUIRED": "Pflichtfeld",
+ "FORMAT_REQUIRED": "Pflichtfeld",
+ "REPORT_REQUIRED": "Pflichtfeld",
+ "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "REFRESH_REQUIRED": "Pflichtfeld",
+ "TITLE_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "NAME_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
+ "OUTPUT_REQUIRED": "Pflichtfeld",
+ "REPORTFOLDER_REQUIRED": "Pflichtfeld",
+ "REPORTSUBFOLDER_REQUIRED": "Pflichtfeld",
+ "REPORTTYPE_REQUIRED": "Pflichtfeld",
+ "AGENT_REQUIRED": "Pflichtfeld",
+ "INFO_REQUIRED": "Pflichtfeld",
+ "SCRIPT_REQUIRED": "Pflichtfeld",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
+ "TIMEOUT_REQUIRED": "Pflichtfeld",
+ "AUTOCREATE_FIELD_REQUIRED": "Pflichtfeld"
},
"HOST": "Host",
- "SECRET": "Secret",
- "DEFAULTUSER": "Standardnutzer",
+ "SECRET": "Geheimnis",
+ "DEFAULTUSER": "Default User",
"DESCRIPTION": "Beschreibung",
- "ADD_TRUNK": "Trunk hinzufügen",
+ "ADD_TRUNK": "Amtsleitung hinzufügen",
"HELP": {
- "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Systemadministrator.",
+ "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Anbieter.",
"HOST": "Die Domäne oder den Hostnamen für den Anbieter.",
"DEFAULTUSER": "Authentifizierung Benutzernamen, wenden Sie sich an den Anbieter.",
"CALLERID": "Die Anrufer-ID im Format \"name\" <Nummer>.",
- "REGISTRY": "Die SIP-Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
- "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client).",
- "FROMUSER": "SIP-Nutzereinstellungen. Nur gültig für den Typ=peer.",
+ "REGISTRY": "Die amtsleitung Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
+ "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client). Einige Ziele können die obligatorische Identität Name anstatt nur die IP-Adresse.",
+ "FROMUSER": "Rovider wie ihr sie kennt. Dies ist der Benutzer, um anstelle der Anrufer-ID beim Tätigen von Anrufen zu anderen Peer (SIP-Proxy). Nur gültig für den Typ=peer.",
"OUTBOUNDPROXY": "IP-Adresse oder DNS-SRV-Ressourceneintrag name (ausgenommen die _sip._udp-Präfix): SRV Name, den Hostnamen oder die IP-Adresse des ausgehenden SIP-Proxy. Senden Sie ausgehende Signale zu diesem Proxy und nicht direkt an die Geräte. Nur gültig für den Typ=peer.",
- "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten.",
- "CONTEXT": "Die nutzbaren Kontext für den Trunk.",
- "TYPE": "Definiert die SIP-Rolle innerhalb der Anwendung. User: Authentifizierung für eingehende Verbindungen; Peer: für ausgehende Verbindungen - Freund: Beide Eigenschaften werden erfüllt",
- "DTMFMODE": "Sendeart von DTMF-Tönen (Dual-Tone Multi-Frequency): RFC2833: Standardeinstellung, DMTF wird über RTP gesendet (außerhalb des Audiostreams) - INBAND DTMF wird innerhalb des Audiostreams gesendet, über die Lautsprecher hörbar. Erfordert eine höhere CPU-Last.",
- "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall. Wenn \"Nein\", ignoriert der Asterisk alle anderen Einstellungen und die nat=No.",
+ "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten wir auf der anderen Seite.",
+ "CONTEXT": "Die nutzbaren Rahmen für den Trunk.",
+ "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
+ "DTMFMODE": "Wie DTMF (Dual-Tone Multi-Frequency): RFC2833: Die Standardeinstellung, die DTMF gesendet mit RTP, aber außerhalb der Audio Stream. INBAND DTMF gesendet wird: Die in der Audio Stream des aktuellen Gesprächs, wird über die Lautsprecher hörbar. Erfordert eine hohe CPU-Last. INFO: Diese Methode ist zwar sehr zuverlässig, es ist nicht für alle TK-Anlagen und viele SIP-Trunk.",
+ "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
"QUALIFY": "Legt fest, wann die SIP erreichbar ist.",
"ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz.",
- "INSECURE": "Erlaubt unsichere Einstellungen für peer",
- "CALL_LIMIT": "Maximale Anzahl aller gleichzeitigen ein- und ausgehenden Anrufe",
- "DIRECTMEDIA": "Der Asterisk versucht, den RTP-Stream im Standard direkt zwischen dem Anrufer und dem Angerufenen aufzubauen. Manche Geräte (z.B. Firewalls) unterstützen diese Funktion nicht. Daher kann hier eine Umstellung erfolgen.",
- "CALLCOUNTER": "Aktivieren der Anrufzähler für die Geräte",
- "ADD_PHONE_TO_URI": "Fügt im SIP den user=phone zur URL hinzu",
- "TRUST_REMOTE_PARTY_ID": "Soll der URL der anderen Partei vertraut werden?",
- "SEND_REMOTE_PARTY_ID_HEADER": "Soll die ID der anderen Partei gesendet werden?",
- "ENCRYPTION": "Legt fest, ob die Verbindung über SRTP verschlüsselt vorliegt. Sollte das peer kein SRTP unterstützen, werden Anrufe mit dem HANGUPCAUSE=58 beendet.",
+ "INSECURE": "Legt fest, wie Verbindungen mit Peer, dass unsichere Einstellungen.",
+ "CALL_LIMIT": "Die Anzahl der eingehenden und abgehenden Anrufe, die zu einer Zeit.",
+ "DIRECTMEDIA": "Sternchen standardmäßig versucht, die RTP-Stream direkt aus den Anrufer an den Angerufenen. Einige Geräte werden nicht unterstützt wird (vor allem, wenn einer von Ihnen hinter einem NAT-Gerät befindet). Die Standardeinstellung ist Ja. Wenn Sie alle Clients hinter einem NAT-Gerät befindet, oder aus einem anderen Grund nicht möchten, dass Sternchen in der Audiospur, können Sie diese ausschalten.",
+ "CALLCOUNTER": "Aktivieren Sie die Zähler auf Geräte.",
+ "ADD_PHONE_TO_URI": "Legen Sie fest, ob die Provider ';user=Telefon\" an den URL.",
+ "TRUST_REMOTE_PARTY_ID": "Wenn Remote-Party-ID definieren sollte.",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+ "ENCRYPTION": "Festlegen, ob die Remote-Party-ID gesendet werden soll (standardmäßig auf Nein).",
"TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
- "OTHERFIELDS": "Weitere Felder hinzufügen, in der Trunks conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile.",
- "EMAILADDRESS": "Mehrere Adressen mit Komma getrennt eingeben: (z. b. John.doe@xcally.com, jane.miller@xcally.com)",
+ "OTHERFIELDS": "Weitere Felder hinzufügen, in der Amtsleitungen conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile.",
+ "EMAILADDRESS": "Sie können mehrere Adressen mit Kommata (z. b. John.doe@xcally.com, jane.miller@xcally.com)",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
- "EVENTVARIABLES": "Fügt die Event-Variablen der URL hinzu",
+ "EVENTVARIABLES": "Wenn aktiviert, Es fügt alle Event Variablen an die Url",
"T38PT_UDPTL": "Es: Ja, Redundanz, maxdatagram = 400",
"EMAILBCCADDRESS": "Fügen Sie eine oder mehrere durch Kommas getrennte Adressen hinzu (z. B. john.doe@xcally.com, jane.miller@xcally.com).",
"EMAILCCADDRESS": "Fügen Sie eine oder mehrere durch Kommas getrennte Adressen hinzu (z. B. john.doe@xcally.com, jane.miller@xcally.com).",
- "BODY": "(RAW-JSON-Format) Wenn nicht ausgefüllt, wird der Standardwert verwendet",
+ "BODY": "Wenn nicht ausgefüllt, wird der Standardwert gesendet",
"INFO": "Titel einfügen",
"SCRIPT": "Skript einfügen",
"SCRIPT_INFO": "Fügen Sie eine Beschreibung für das Skript ein",
"SCRIPT_TYPE": "Geben Sie eine Typologie für das Skript ein (zB curl, bash ...)",
- "HEADERS": "Hinweis: Der Header-Abschnitt muss im RAW-JSON-Format {\"key\": \"value\"} vorliegen.\nHinweis: Wenn nicht ausgefüllt, wird der Standardwert verwendet",
- "TIMEOUT": "Zeitüberschreitung in Sekunden anfordern. Der Wert muss zwischen 1 und 10 liegen - Standardwert ist 5."
+ "HEADERS": "Hinweis: Der Header-Abschnitt muss im RAW-JSON-Format {\"key\": \"value\"} vorliegen.\nHinweis: Wenn nicht ausgefüllt, wird der Standardwert gesendet",
+ "TIMEOUT": "Zeitüberschreitung in Sekunden anfordern. Der Wert muss zwischen 1 und 10 liegen und der Standardwert ist 5."
},
"EDIT_TRUNK": "Trunk bearbeiten",
- "DELETE_TRUNK": "Trunk löschen",
+ "DELETE_TRUNK": "Löschen Sie Trunk",
"CREATED_AT": "Erstellt am",
"SETTINGS": "Einstellungen",
- "ADVANCED": "Erweitert",
+ "ADVANCED": "Erweiterte",
"OTHER": "Andere",
"ACTIVE": "Aktiv",
"CONTEXT": "Kontext",
- "CALLERID": "Anrufer-ID",
+ "CALLERID": "Die Anrufer-ID",
"TYPE": "Typ",
- "DTMFMODE": "DTMF-Modus",
+ "DTMFMODE": "Mfv-Modus",
"NAT": "NAT",
"QUALIFY": "Qualifizieren",
"ALLOWCODECS": "Codecs erlaubt",
"INSECURE": "Unsicher",
"REGISTRY": "Registrierung",
- "DIRECTMEDIA": "Direct Media",
+ "DIRECTMEDIA": "Direkte Medien",
"CALLCOUNTER": "Anrufzähler",
- "FROMDOMAIN": "From Domain",
- "FROMUSER": "From Nutzer",
- "OUTBOUNDPROXY": "Outbound Proxy",
- "ADD_PHONE_TO_URI": "Telefon zur URL hinzufügen",
- "TRUST_REMOTE_PARTY_ID": "Trust Remote Party ID",
- "SEND_REMOTE_PARTY_ID_HEADER": "Remote Party im Header senden",
+ "FROMDOMAIN": "Aus der Domäne",
+ "FROMUSER": "Vom Benutzer",
+ "OUTBOUNDPROXY": "Ausgehender Proxy",
+ "ADD_PHONE_TO_URI": "Telefon hinzufügen, URL",
+ "TRUST_REMOTE_PARTY_ID": "Vertrauen Gegenstelle ID",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Senden einer Partner-ID Header",
"ENCRYPTION": "Verschlüsselung",
- "PORT": "Port",
- "TRANSPORT": "Transport",
+ "PORT": "Hafen",
+ "TRANSPORT": "Verkehr",
"SAVE": "Speichern",
"VARIABLES": "Variablen",
"ADD_VARIABLE": "Variable hinzufügen",
"EDIT_VARIABLE": "Variable bearbeiten",
"DELETE_VARIABLE": "Variable löschen",
- "SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECTED": "Ausgewählte",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
"TAGS": "Tags",
- "ADD_TAG": "Tag hinzufügen",
- "EDIT_TAG": "Tag bearbeiten",
- "DELETE_TAG": "Tag löschen",
+ "ADD_TAG": "Variable hinzufügen",
+ "EDIT_TAG": "Variable bearbeiten",
+ "DELETE_TAG": "Variable löschen",
"PAUSES": "Pausen",
"ADD_PAUSE": "Pause hinzufügen",
"EDIT_PAUSE": "Pause bearbeiten",
"DELETE_PAUSE": "Pause löschen",
- "ADD_CANNEDANSWER": "Textvorlage hinzufügen",
- "EDIT_CANNEDANSWER": "Textvorlage bearbeiten",
- "DELETE_CANNEDANSWER": "Testvorlage löschen",
+ "ADD_CANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "EDIT_CANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "DELETE_CANNEDANSWER": "Vordefinierte Antwort löschen",
"KEY": "Schlüssel",
"VALUE": "Wert",
- "SOUNDS": "Audiodateien",
- "EDIT_SOUND": "Audiodatei bearbeiten",
- "DELETE_SOUND": "Audiodatei löschen",
- "FINISH": "Abschließen",
+ "SOUNDS": "Sounds",
+ "EDIT_SOUND": "Ton bearbeiten",
+ "DELETE_SOUND": "Sound löschen",
+ "FINISH": "Fertig stellen",
"DROP_TO_UPLOAD": "Drop hochladen",
"TRIGGERS": "Trigger",
- "EDIT_TRIGGER": "Trigger bearbeiten",
- "DELETE_TRIGGER": "Trigger löschen",
+ "EDIT_TRIGGER": "Auslöser bearbeiten",
+ "DELETE_TRIGGER": "Auslöser löschen",
"ADD_TRIGGER": "Trigger hinzufügen",
"DELETE": "Löschen",
- "AUTOMATIONS": "Automation",
- "EDIT_AUTOMATION": "Automation bearbeiten",
+ "AUTOMATIONS": "Automatisierungen",
+ "EDIT_AUTOMATION": "Bearbeiten einer Automation",
"DELETE_AUTOMATION": "Automation löschen",
"ADD_AUTOMATION": "Automation hinzufügen",
"INTERVALS": "Intervalle",
"EDIT_INTERVAL": "Intervall bearbeiten",
- "DELETE_INTERVAL": "Intervall löschen",
+ "DELETE_INTERVAL": "Intervall für Löschen.",
"ADD_INTERVAL": "Intervall hinzufügen",
"TOOLS": "Werkzeuge",
- "ID": "ID",
+ "ID": "Id",
"AUDIO": "Audio",
- "DOWNLOAD_SOUND": "Audiodatei herunterladen",
- "UPLOAD_SOUND": "Audiodatei hochladen",
+ "DOWNLOAD_SOUND": "Download Sound",
+ "UPLOAD_SOUND": "Werkzeuge",
"CHANNEL": "Kanal",
"NEW_TRIGGER": "Neue Trigger",
"GENERAL": "Allgemein",
"STATUS": "Status",
"CONDITIONS&ACTIONS": "Bedingungen und Aktionen",
- "ALLCONDITIONS": "Alle Bedingungen werden erfüllt",
- "ANYCONDITIONS": "Einige Bedingungen werden erfüllt",
- "ACTIONS": "Aktionen",
+ "ALLCONDITIONS": "Alle diese Bedingungen erfüllen:",
+ "ANYCONDITIONS": "Treffen diese Voraussetzungen:",
+ "ACTIONS": "Aktionen:",
"NEW_AUTOMATION": "Neue Automation",
"TIMEOUT": "Timeout",
"PEERSTATUS": "Peer Status",
- "CALL_LIMIT": "Anrufe limitieren",
- "OTHERFIELDS": "Weitere Felder",
+ "CALL_LIMIT": "Anrufe beschränken",
+ "OTHERFIELDS": "Andere Felder",
"NEW_VARIABLE": "Neue Variable",
"NEW_TAG": "Neuer Tag",
"NEW_PAUSE": "Neue Pause",
- "NEW_CANNEDANSWER": "Neue Textvorlage",
+ "NEW_CANNEDANSWER": "Neue vordefinierte Antwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
- "NEW_TRUNK": "Neuer Trunk",
- "FROM": "von",
- "TO": "an",
- "WEEKDAY": "Wochentag",
- "MONTHDAY": "Monatstag",
+ "NEW_TRUNK": "Neue Leitung",
+ "FROM": "Von",
+ "TO": "Zu",
+ "WEEKDAY": "Woche Tag",
+ "MONTHDAY": "Monat Tag",
"MONTH": "Monat",
"ALWAYS": "Immer",
"MON": "Montag",
"PASSWORD": "Passwort",
"CUSTOMDASHBOARDS": "Benutzerdefinierte Dashboards",
"NEW_CUSTOMDASHBOARD": "Neues benutzerdefiniertes Dashboard",
- "ADD_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard hinzufügen",
- "EDIT_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard bearbeiten",
- "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen",
- "SCHEDULER": "Berichtsplanung",
- "NEW_SCHEDULE": "Neue Planung",
- "ADD_SCHEDULE": "Planung hinzufügen",
- "EDIT_SCHEDULE": "Planung bearbeiten",
- "DELETE_SCHEDULE": "Planung löschen",
+ "ADD_CUSTOMDASHBOARD": "Hinzufügen von benutzerdefinierten Dashboard",
+ "EDIT_CUSTOMDASHBOARD": "Benutzerdefinierte Dashboards bearbeiten",
+ "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen.",
+ "SCHEDULER": "Scheduler",
+ "NEW_SCHEDULE": "Neuer Zeitplan",
+ "ADD_SCHEDULE": "Zeitplan hinzufügen",
+ "EDIT_SCHEDULE": "Zeitplan bearbeiten",
+ "DELETE_SCHEDULE": "Zeitplan löschen",
"SENDMAIL": "E-Mail senden",
"CONFIGURATION": "Konfiguration",
"MAIL": "E-Mail",
"REPORTTYPE": "Berichtstyp",
"REPORT": "Bericht",
- "OUTPUT": "Ausgabe",
+ "OUTPUT": "Ausgang",
"EXECUTEON": "Ausführung",
- "REPORTRANGE": "Bereich",
+ "REPORTRANGE": "Berichtsbereich",
"VALIDITYSTART": "Startzeit",
"VALIDITYEND": "Endzeit",
"EXECUTEEVERY": "Alle ausführen",
"MONTHLY": "Monatlich",
"PREVIOUS_DAY": "Vorheriger Tag",
"LAST_SEVEN_DAYS": "Letzte sieben Tage",
- "LAST_THIRTY_DAYS": "Letzte 30 Tage",
+ "LAST_THIRTY_DAYS": "33 verbotenen letzte Tage",
"LAST_MONTH": "Letzter Monat",
- "WEEKDAYS": "Wochentage",
+ "WEEKDAYS": "Woche Tage",
"HOUR": "Stunde",
"DEFAULT": "Standard",
"CSV": "CSV",
"15MIN": "15 Minuten",
"30MIN": "30 Minuten",
"1H": "1 Stunde",
- "VOICE": "Sprachanrufe",
+ "VOICE": "Voice",
"CHAT": "Chat",
"SMS": "SMS",
"OPENCHANNEL": "Offener Kanal",
"ADD_ALLCONDITION": "Bedingung hinzufügen",
"EDIT_ACTION": "Aktion bearbeiten",
"DELETE_ACTION": "Aktion löschen",
- "NEW_ACTION": "Neue Aktion",
+ "NEW_ACTION": "Neue Maßnahme",
"ADD_ACTION": "Aktion hinzufügen",
"QUEUE": "Warteschlange",
"CALL_STATUS": "Anrufstatus",
- "OUTBOUNDROUTE": "Ausgehende Routen",
- "EQUALS": "ist gleich",
- "NOT_EQUALS": "ist nicht gleich",
- "CONTACT_MANAGER": "Kontaktmanager",
+ "OUTBOUNDROUTE": "Abgehende Routen",
+ "EQUALS": "Ist gleich",
+ "NOT_EQUALS": "Nicht gleich",
+ "CONTACT_MANAGER": "Contacts Manager",
"INTEGRATIONS": "Integrationen",
"MOTIONBAR": "Motion Bar",
"JSCRIPTY": "Jscripty",
- "URL_FORWARD": "URL-Weiterleitung",
- "WEB_POPUP": "Web-Popup",
+ "URL_FORWARD": "URL Weiterleitung",
+ "WEB_POPUP": "Web Popup",
"LIST": "Liste",
"INTEGRATION": "Integration",
"TEMPLATE": "Vorlage",
"OPERATOR": "Betreiber",
"NO_INTERVALS_AVAILABLE": "Keine Intervalle zur Verfügung",
"YES": "Ja",
- "NO": "Nein",
+ "NO": "Keine",
"SUBJECT": "Betreff",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
"BROWSER": "Browser",
"INTERVAL": "Intervall",
- "INFO": "Information",
+ "INFO": "Info",
"TIME_RANGE": "Zeitbereich",
- "WEEK_DAYS": "Wochentage",
- "MONTH_DAYS": "Monatstage",
+ "WEEK_DAYS": "Woche Tage",
+ "MONTH_DAYS": "Monat Tage",
"MONTHS": "Monate",
- "DROP_TO_UPLOAD_MESSAGE": "Dateien hier hinein ziehen zum Hochladen. Unterstütze Formate: .mp3, .wav, .gsm; Max. Dateigröße: 15 MB",
+ "DROP_TO_UPLOAD_MESSAGE": "Sie können auch Audiodateien hier ablegen\" hochzuladen. Nur MP3-, WAV-, GSM-Max. 15 MB",
"POLLING_INTERVAL": "Abfrageintervall (Sekunden)",
- "DASHBOARD": "Dashboard",
- "NEW_DASHBOARDITEM": "Neues Dashboard-Widget",
+ "DASHBOARD": "Armaturenbrett",
+ "NEW_DASHBOARDITEM": "Neue Dashboard Widget",
"COUNTER": "Zähler",
"IFRAME": "IFrame",
"CLOCK": "Uhr",
- "ADD_DASHBOARDITEM": "Dashboard-Widget hinzufügen",
- "EDIT_WIDGET": "Widget bearbeiten",
- "DELETE_WIDGET": "Widget löschen",
- "FLIP_WIDGET": "Widget drehen",
+ "ADD_DASHBOARDITEM": "Dashboard Widget hinzufügen",
+ "EDIT_WIDGET": "Bearbeiten Widget",
+ "DELETE_WIDGET": "Löschen Widget",
+ "FLIP_WIDGET": "Flip Widget",
"TITLE": "Titel",
"UPDATE": "Aktualisieren",
"LAYOUT": "Layout",
"FOREGROUND_COLOR": "Vordergrundfarbe",
"FOREGROUND_TITLE_COLOR": "Vordergrund Titel Farbe",
"THEME": "Thema",
- "LIGHT": "Hell",
+ "LIGHT": "Licht",
"DARK": "Dunkel",
"TIMEZONE": "Zeitzone",
- "DIGITAL_FORMAT": "Digitales Datumsformat",
+ "DIGITAL_FORMAT": "Digitale Datum Format",
"TOOLS_QUERY": "Abfrage",
- "SELECT": "Auswählen",
+ "SELECT": "Wählen Sie",
"WHERE": "Wo",
"BACK": "Zurück",
"PROJECT": "Projekt",
- "GOTOREALTIME_TRUNK": "Zum Echtzeitmonitoring SIP-Trunks gehen",
- "GOTO_TRUNK": "Zum SIP-Trunk gehen",
- "CRON": "CrOn",
+ "GOTOREALTIME_TRUNK": "In Echtzeit, Trunk gehen",
+ "GOTO_TRUNK": "Um die Leitungsbündel gehen",
+ "CRON": "Cron",
"MINUTES": "Minuten",
"HOURLY": "Stündlich",
"YEARLY": "Jährlich",
"EVERY": "Jede",
"MINUTE": "Minute",
- "ON_SECOND": "Zur Sekunde",
- "HOUR_ON_MINUTE": "Stunde zur Minute",
- "AND_SECOND": "und Sekunde",
- "DAY_AT": "Am Tag",
+ "ON_SECOND": "Im 2.",
+ "HOUR_ON_MINUTE": "Stunde Minute",
+ "AND_SECOND": "Und 2.",
+ "DAY_AT": "Tag an",
"START_TIME": "Startzeit",
- "ON_THE": "Am",
- "OF_EVERY": "An jedem",
+ "ON_THE": "Auf der",
+ "OF_EVERY": "Jedes",
"MONTH_AT": "Monat",
- "AT": "Um",
+ "AT": "An",
"LAST": "Letzte",
"LASTUNIT": "Einheit",
"MAILACCOUNT": "E-Mail Konto",
- "OF": "von",
+ "OF": "Von",
"PAST_THE_HOUR": "Nach der vollen Stunde",
"DAY": "Tag",
"WEEK": "Woche",
"YEAR": "Jahr",
- "ON": "Am",
+ "ON": "Auf",
"PAI": "P-Asserted-Identity",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OUTBOUND_ROUTE": "Ausgehende Routen",
- "EVENTVARIABLES": "Event-Variablen",
+ "OUTBOUND_ROUTE": "Abgehende Routen",
+ "EVENTVARIABLES": "Bei Variablen",
"FAX": "Fax",
"INTERACTION": "Interaktion",
"MESSAGE": "Nachricht",
"T38PT_UDPTL": "T38 pt Udptl",
- "AUTOCREATECONTACT": "Automatische Kontakterstellung",
+ "AUTOCREATECONTACT": "Erstellen Sie automatisch",
"COLOR": "Farbe",
- "LOCATION": "Standort",
- "NEW_TAB": "Neuer Tab",
+ "LOCATION": "Lage",
+ "NEW_TAB": "Neue Registerkarte",
"NEW_WINDOW": "Neues Fenster",
- "WINDOWWIDTH": "Fensterbreite (px)",
+ "WINDOWWIDTH": "Fenster Breite (px)",
"WINDOWHEIGHT": "Fensterhöhe (px)",
"EDIT_DASHBOARDITEM": "Dashboard-Widget bearbeiten",
"FONTSIZE": "Schriftgröße",
"FOREGROUND": "Vordergrund",
"NONE": "Keiner",
"TOTAL": "Gesamt",
- "ABANDONED": "Abgebrochen",
+ "ABANDONED": "Verlassen",
"WAITING": "Warten",
- "TALKING": "im Gespräch",
- "ANSWERED": "Beantwortet",
- "UNMANAGED": "Nicht bearbeitet",
+ "TALKING": "Reden",
+ "ANSWERED": "Antwortete",
+ "UNMANAGED": "Nicht verwaltet",
"CUSTOMTYPE": "Benutzerdefiniert [Pfad]",
"WEBREPORT": "Webbericht",
"PIECHART": "Kuchendiagramm",
"MULTIBARCHART": "Multibar-Diagramm",
"MOVE_WIDGET": "Widget verschieben",
- "USERADD_CUSTOMDASHBOARD": "Berechtigungen hinzufügen",
- "GOTODASHBOARD_CUSTOMDASHBOARD": "Vorschau Dashboard",
- "GOTO_CUSTOMDASHBOARD": "Vorschau Dashboard",
+ "USERADD_CUSTOMDASHBOARD": "Hinzufügen von Benutzerberechtigungen",
+ "GOTODASHBOARD_CUSTOMDASHBOARD": "Gehe zum Vorschau-Dashboard",
+ "GOTO_CUSTOMDASHBOARD": "Gehe zum Vorschau-Dashboard",
"METRIC": "Metrisch",
- "FILTERVOICEQUEUES": "Anruf-Warteschlangen filtern",
+ "FILTERVOICEQUEUES": "Voice-Warteschlangen filtern",
"SERIE1": "Serie 1",
"SERIE2": "Serie 2",
"SERIE3": "Serie 3",
"ALL_USERS": "Alle Nutzer",
"SELECTED_USERS": "Ausgewählte Benutzer",
"ADD_WIDGET": "Widget hinzufügen",
- "NEXTCONTACT": "Nächster Kontakt",
+ "NEXTCONTACT": "Nächster",
"SENDIFEMPTY": "Senden, wenn leer",
- "CANCEL": "Abbrechen",
+ "CANCEL": "Stornieren",
"UPLOADING": "Hochladen",
- "EMAILBCCADDRESS": "BCC",
- "EMAILCCADDRESS": "CC",
- "RUN_SCHEDULE": "Zeitplanung ausführen",
- "ADD_DISPOSITION": "Qualifizierung hinzufügen",
- "DELETE_DISPOSITION": "Qualifizierung löschen",
- "DISPOSITIONS": "Qualifizierungen",
- "EDIT_DISPOSITION": "Qualifizierung bearbeiten",
- "NEW_DISPOSITION": "Neue Qualifizierung",
- "CLONE_TRUNK": "Trunk klonen",
- "BODY": "Textinhalt",
- "CANNEDANSWERS": "Textvorlagen",
+ "EMAILBCCADDRESS": "Bcc",
+ "EMAILCCADDRESS": "Cc",
+ "RUN_SCHEDULE": "Zeitplan ausführen",
+ "ADD_DISPOSITION": "Disposition hinzufügen",
+ "DELETE_DISPOSITION": "Disposition löschen",
+ "DISPOSITIONS": "Dispositionen",
+ "EDIT_DISPOSITION": "Disposition bearbeiten",
+ "NEW_DISPOSITION": "Neue Disposition",
+ "CLONE_TRUNK": "Klon-Trunk",
+ "BODY": "Karosserie",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
"REPORTFOLDER": "Berichtsordner",
- "REPORTSUBFOLDER": "Unterordner",
- "PREVIOUSCONTACT": "Vorherigen Kontakt",
+ "REPORTSUBFOLDER": "Unterordner melden",
+ "PREVIOUSCONTACT": "Bisherige",
"VIDEOSUPPORT": "Video-Unterstützung",
"AGENT": "Agent",
"HEADERS": "Überschriften",
"SCRIPT": "Skript",
- "SCRIPT_INFO": "Information",
+ "SCRIPT_INFO": "Info",
"SCRIPT_TYPE": "Art",
"MOTION_TAB": "Neue Registerkarte \"Agent Dashboard\"",
"WHATSAPP": "WhatsApp Connector",
"AUTOCREATE_FIELD": "Feld automatisch erstellen",
- "GLOBALS": "Globale Werte",
+ "GLOBALS": "Globals",
"SEARCH_FIELDS": "Suchfelder",
"STANDARD": "Standard",
"MOTION_BAR": "Motion Bar",
"ALL": "Alle",
- "ALL_DISPOSITIONS": "Alle Qualifizierungen",
- "FIRST_LEVEL_DISPOSITION": "Qualifizierung der ersten Ebene",
- "LEVEL": "Ebene",
- "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
- "SELECT_LEVEL": "Ebene auswählen",
- "TITLEFONTSIZE": "Schriftgröße Titel"
+ "ALL_DISPOSITIONS": "Alle Dispositionen",
+ "FIRST_LEVEL_DISPOSITION": "First Level Disposition",
+ "LEVEL": "Niveau",
+ "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
+ "SELECT_LEVEL": "Wählen Sie eine Ebene",
+ "TITLEFONTSIZE": "Schrifttitelgröße"
}
}
"LINK": "Link [https://]",
"BACKGROUND": "Background",
"FOREGROUND": "Foreground",
- "IGNOREDIALERCONTACTID": "Ignore dialer contact Id",
"NONE": "None",
"TOTAL": "Total",
"ABANDONED": "Abandoned",
"TYPE_REQUIRED": "Mandatory field",
"VALUE_REQUIRED": "Mandatory field",
"ACCOUNT_REQUIRED": "Mandatory field",
- "IGNOREDIALERCONTACTID_REQUIRED": "Ignore dialer contact Id field is required",
"FIELD_REQUIRED": "Mandatory field",
"NAME_REQUIRED": "Mandatory field",
"HOST_REQUIRED": "Mandatory field",
"LINK": "Link [https://]",
"BACKGROUND": "Background",
"FOREGROUND": "Foreground",
- "IGNOREDIALERCONTACTID": "Ignora il contact Id del dialer",
"NONE": "Nessuno",
"TOTAL": "Totale",
"ABANDONED": "Abbandonate",
"TYPE_REQUIRED": "Campo obbligatorio",
"VALUE_REQUIRED": "Campo obbligatorio",
"ACCOUNT_REQUIRED": "Campo obbligatorio",
- "IGNOREDIALERCONTACTID_REQUIRED": "Campo obbligatorio",
"FIELD_REQUIRED": "Campo obbligatorio",
"TIME_RANGE_TO_REQUIRED": "Campo obbligatorio",
"WEEK_DAYS_TO_REQUIRED": "Campo obbligatorio",
"SERVICELEVEL": "مستوى الخدمة",
"SECOND_LEVEL_DISPOSITION": "ترتيب المستوى الثاني",
"THIRD_LEVEL_DISPOSITION": "الترتيب الثالث",
- "TEAMADD_VOICEPREFIX": "أضف الفريق إلى البادئة",
"ALIAS": "الاسم المستعار"
}
}
"SERVICELEVEL": "Úroveň služby",
"SECOND_LEVEL_DISPOSITION": "Dispozice druhé úrovně",
"THIRD_LEVEL_DISPOSITION": "Dispozice třetí úrovně",
- "TEAMADD_VOICEPREFIX": "Přidat tým k předponě",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Serviceniveau",
"SECOND_LEVEL_DISPOSITION": "Andet niveau disposition",
"THIRD_LEVEL_DISPOSITION": "Tredje niveau disposition",
- "TEAMADD_VOICEPREFIX": "Føj team til præfiks",
"ALIAS": "Alias"
}
}
{
"VOICE": {
- "GOTO_VOICEQUEUE": "Zur Anruf-Warteschlange gehen",
- "GOTOREALTIME_VOICEQUEUE": "Zur Echtzeitansicht Anruf-Warteschlange gehen",
+ "GOTO_VOICEQUEUE": "Zu Realtime Voice Warteschlangen gehen",
+ "GOTOREALTIME_VOICEQUEUE": "Zu Realtime Voice Warteschlangen gehen",
"NAME": "Name",
"LOGOUT": "An-/Abmelden",
- "VOICEQUEUES": "Anruf-Warteschlangen",
- "SEARCH_FOR_ANYONE": "Suche",
+ "VOICEQUEUES": "Voice Warteschlangen",
+ "SEARCH_FOR_ANYONE": "Suche für Jedermann",
"BACK": "Zurück",
- "SELECTED": "Ausgewählt",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
- "DELETE_VOICEDISPOSITION": "Qualifizierung löschen",
- "EDIT_VOICEDISPOSITION": "Qualifizierung bearbeiten",
- "EDIT_VOICEQUEUE": "Anruf-Warteschlange bearbeiten",
- "DELETE_VOICEQUEUE": "Anruf-Warteschlange löschen",
- "MOHSOUNDS": "MOH-Töne",
+ "SELECTED": "Ausgewählte",
+ "SELECT_ALL": "Alle auswählen",
+ "SELECT_NONE": "Wählen Sie \"Keine\"",
+ "DELETE_VOICEDISPOSITION": "Disposition löschen",
+ "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+ "EDIT_VOICEQUEUE": "Edit Voice Warteschlange",
+ "DELETE_VOICEQUEUE": "Warteschlange löschen",
+ "MOHSOUNDS": "Die MOH-Sounds",
"STRATEGY": "Strategie",
"DESCRIPTION": "Beschreibung",
- "ADD_VOICEQUEUE": "Warteschlangen hinzufügen",
+ "ADD_VOICEQUEUE": "Hinzufügen von Warteschlangen",
"CREATED_AT": "Erstellt am",
- "CANT_PLAY_GSM_AUDIO_FILES": "Nicht GSM-Audiodateien",
+ "CANT_PLAY_GSM_AUDIO_FILES": "Nicht gsm-Audiodateien",
"APPLICATIONS_LIST": "Liste der Anwendungen",
"LEGEND": {
"CUSTOM_APPLICATION": "(*) - Benutzerdefinierte Anwendung."
},
"ERRORS": {
- "NAME_REQUIRED": "Name ist erforderlich",
- "APPLICATION_NAME_REQUIRED": "Name der Anwendung ist erforderlich",
- "TIMEOUT_REQUIRED": "Timeout ist erforderlich",
- "PHONENUMBER_REQUIRED": "Telefonnummer ist erforderlich",
- "CONTEXT_REQUIRED": "Kontext ist erforderlich",
- "DESTINATIONPATTERN_REQUIRED": "Ziel-Pattern ist erforderlich",
- "FULLNAME_REQUIRED": "Vollständiger Name ist erforderlich",
- "EMAIL_REQUIRED": "E-Mail ist erforderlich",
- "EMAIL_MUST_VALID": "E-Mail Format ungültig",
- "MAILBOX_REQUIRED": "Mailbox ist erforderlich",
- "PASSWORD_REQUIRED": "Passwort ist erforderlich",
- "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "TIMEZONE_REQUIRED": "Zeitzone ist erforderlich",
- "PREFIX_REQUIRED": "Präfix ist erforderlich",
- "OPTIONS_REQUIRED": "Bedingungen sind Erforderlich",
- "AFTERCALLWORKDURATION_REQUIRED": "Dauer Nacharbeit ist erforderlich",
- "TECHNOLOGY/RESOURCE_REQUIRED": "Ressource ist erforderlich",
- "PHONE_REQUIRED": "Telefonnummer ist erforderlich",
- "VALUE_REQUIRED": "Wert ist erforderlich",
- "EXTENSION_REQUIRED": "Nebenstelle ist erforderlich",
- "PRIORITY_REQUIRED": "Priorität ist erforderlich",
- "NAME_MUST_VALID_PATTERN": "Format Name ungültig",
- "APPLICATION_REQUIRED": "Anwendung ist erforderlich",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Timeout muss größer oder gleich sein als",
- "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die max. Länge muss größer oder gleich sein als",
- "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wiederversuche muss größer oder gleich sein als",
- "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Nacharbeit Zeit muss größer oder gleich sein als",
- "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Gewichtung muss größer oder gleich sein als",
- "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Frequenz der Ansagen muss größer oder gleich sein als",
- "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Min. Frequenz der Ansagen muss größer oder gleich sein als",
- "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wiederholende Frequenz der Ansagen muss größer oder gleich sein als",
- "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Nacharbeit Zeit muss größer oder gleich sein als",
- "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Verzögerung muss größer oder gleich sein als",
- "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Position muss größer oder gleich sein als",
- "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Schnitt muss größer oder gleich sein als",
- "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Max. Sekundenmuss größer oder gleich sein als",
- "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Max. Nachrichten muss größer oder gleich sein als",
- "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Max. Nachrichten muss kleiner oder gleich sein als",
+ "NAME_REQUIRED": "Der Name ist erforderlich",
+ "APPLICATION_NAME_REQUIRED": "Der Name der Anwendung ist erforderlich",
+ "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+ "PHONENUMBER_REQUIRED": "Die Telefonnummer ist erforderlich",
+ "CONTEXT_REQUIRED": "Der Rahmen ist erforderlich",
+ "DESTINATIONPATTERN_REQUIRED": "Das Ziel-pattern ist erforderlich",
+ "FULLNAME_REQUIRED": "Der vollständige Name ist erforderlich",
+ "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
+ "MAILBOX_REQUIRED": "Die Mailbox ist erforderlich",
+ "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+ "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
+ "TIMEZONE_REQUIRED": "Die Zeitzone ist erforderlich",
+ "PREFIX_REQUIRED": "Das Präfix ist erforderlich",
+ "OPTIONS_REQUIRED": "Die Optionen sind Erforderlich",
+ "AFTERCALLWORKDURATION_REQUIRED": "Die Arbeit nach Anruf Dauer ist erforderlich",
+ "TECHNOLOGY/RESOURCE_REQUIRED": "Die Technologie/Ressource erforderlich ist",
+ "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
+ "VALUE_REQUIRED": "Der Wert ist erforderlich",
+ "EXTENSION_REQUIRED": "Die Verlängerung ist erforderlich",
+ "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+ "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
+ "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Timeout muss größer als oder gleich",
+ "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die max. Länge muss größer als oder gleich",
+ "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Wiederholung muss größer als oder gleich",
+ "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Nachlese Zeit muss größer als oder gleich",
+ "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Das Gewicht muss größer als oder gleich",
+ "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Häufigkeit verkünden muss größer als oder gleich",
+ "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Min Frequenz ankündigen muss größer als oder gleich",
+ "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die periodische Frequenz ankündigen muss größer als oder gleich",
+ "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Arbeit nach Anruf Dauer muss größer als oder gleich",
+ "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Verzögerung muss größer als oder gleich",
+ "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Position muss größer als oder gleich",
+ "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Den Schnitt stellen muss größer als oder gleich",
+ "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Muss die Max Sekunden größer als oder gleich",
+ "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Die Max Meldungen muss größer als oder gleich",
+ "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Die Max Meldungen muss kleiner als oder gleich",
"CALLERIDALL_MUST_VALID_PATTERN": "Falsches Format",
"OUTBOUNDROUTE_REQUIRED": "Pflichtfeld",
"VARIABLE_REQUIRED": "Pflichtfeld",
"TRUNK_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"PROJECT_REQUIRED": "Pflichtfeld",
- "PENALTY_REQUIRED": "Wert für Verzögerung erforderlich"
+ "PENALTY_REQUIRED": "Sie müssen einen Wert für die Strafe angeben"
},
"GENERAL": "Allgemein",
"TIMEOUT": "Timeout",
"MAXLENGTH": "Maximale Länge",
- "RETRY": "Bitte erneut versuchen",
- "WRAPUPTIME": "Nacharbeit",
- "WEIGHT": "Gewichtung",
- "JOINWHENEMPTY": "Beitreten, wenn leer",
- "LEAVEWHENEMPTY": "Verlassen, wenn leer",
+ "RETRY": "Versuchen Sie es erneut",
+ "WRAPUPTIME": "-Zeit",
+ "WEIGHT": "Gewicht",
+ "JOINWHENEMPTY": "Melden Sie wenn sie leer sind",
+ "LEAVEWHENEMPTY": "Wenn sie leer lassen",
"HELP": {
- "TIMEOUT": "Zeitüberschreitung in Sekunden",
- "MAXLENGTH": "Maximaler Anrufer in der Warteschlange. Wenn Wert 0, dann keine Begrenzung.",
- "RETRY": "Klingelzeit in Sekunden pro Mitglied. Danach erfolgt ein weiterer Versuch bei der nächsten freien Nebenstelle.",
- "WRAPUPTIME": "Nacharbeitszeit in Sekunden, bis ein Nutzer nach einem Anruf wieder verfügbar ist.",
- "WEIGHT": "Gewichtung der Warteschlange. Ein höherer Wert bedeutet eine Priorisierung gegenüber anderen Warteschlangen.",
- "JOINWHENEMPTY": "Legt fest, ob ein Anruf in die Warteschlange eintreten kann, wenn dort keine Nutzer angemeldet sind.",
- "LEAVEWHENEMPTY": "Wirft den Anruf aus der Warteschlange, wenn dort kein Nutzer angemeldet ist.",
- "ANNOUNCEFREQUENCY": "Intervall für automatische Ansagen der Wartezeit, Position, etc. Der Wert 0 deaktiviert diese Option.",
- "MINANNOUNCEFREQUENCY": "Minimales Intervall für die Ansagen der Wartezeit. Verhindert, dass ein Nutzer bei häufigen Wechsel der Warteposition zu viele Ansagen erhält.",
- "PERIODICANNOUNCEFREQUENCY": "Legt fest, wie oft die sich wiederholenden Ansagen gespielt werden sollen",
- "ANNOUNCEPOSITIONLIMIT": "Wird verwendet, wenn der Wert für die Warteposition auf \"Limitierung\" oder \"Mehr\" gestellt wird.",
- "AFTERCALLWORKDURATION": "Die Dauer der Nacharbeit nach einem Anruf",
- "MEMBERDELAY": "Erstellt eine Verzögerung des Anrufes für bestimmte Agenten. Kann zum Skillbasierten Routing verwendet werden.",
- "MUSICONHOLD": "Legt die Haltemusik auf Basis der Warteschlange fest",
- "ANNOUNCETOAGENT": "Legt fest, ob der Agent vor Annahme des Anrufes einen Hinweis auf die eingehende Warteschlange hört",
- "RANDOMPERIODICANNOUNCE": "Bei ja, werden die zugewiesenen Ansagen zufällig abgespielt",
- "ANNOUNCEHOLDTIME": "Spielt die geschätzte Wartezeit zusammen oder ohne die sich wiederholenden Ansagen ab.",
- "ANNOUNCECALLERPOSITION": "Definiert die Ansage der Warteposition für den Anrufer. Nein = Niemals; Ja = Immer; Limitierung = nur, wenn die Zeit innerhalb dem eingetragenen Wert liegt; Mehr = nur, wenn die Zeit oberhalb dem eingetragenen Wert liegt ",
- "REPORTHOLDTIMEAGENT": "Haltezeiten der Agenten in den Berichten verwenden",
- "PERIODICANNOUNCE": "Sich wiederholende Ansagen; können je nach Konfiguration in definierter Reihenfolge oder zufällig abgespielt werden.",
- "HOLDTIMEANNOUNCE": "Ansage der Wartezeit. Leer lassen zum Überspringen",
- "YOUARENEXTANNOUNCE": "Ansage \"Sie sind an erster Position der Warteschlange\", Leer lassen zum Überspringen",
- "THEREAREANNOUNCE": "Ansage \"Es befinden sich..\" Leer lassen zum Überspringen",
- "WAITINGCALLSANNOUNCE": "Ansage \"...Anrufe in der Warteschlange\" Leer lassen zum Überspringen",
- "ESTIMATEDHOLDTIMEANNOUNCE": "Ansage: \"Die geschätzte Wartezeit beträgt derzeit...\" Leer lassen zum Überspringen",
- "MINUTESANNOUNCE": "Ansage \"Minuten\"",
- "MINUTEANNOUNCE": "Ansage \"Minute\"",
- "SECONDSANNOUNCE": "Ansage \"Sekunden\" Leer lassen zum Überspringen",
- "THANKYOUANNOUNCE": "Ansage \"Vielen Dank für Ihre Geduld\" Leer lassen zum Überspringen",
- "AFTERCALLWORK": "Wenn aktiviert, erhalten die Agenten eine kurze Pause nach jedem Anruf",
- "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Pause der Agenten, bei einem verpassten Anruf. Hinweis: bezieht sich dann auf alle Anruf-Warteschlangen des Agenten.",
- "RINGINUSE": "Verhindert das Klingeln bei Agenten, deren Nebenstelle in Verwendung ist",
- "TIMEOUTRESTART": "Wenn ja, wird die Zeitüberschreitung bei Agenten mit \"Besetzt\" oder \"Verbindungsfehler\"-Status übersprungen",
- "CONTEXT": "Ermöglicht einem Anrufer, durch Drücken einer einzelnen Taste, die Warteschlange zu verlassen.",
- "SETINTERFACEVARIABLES": "Definiert die Variablen im Interface, welche bei einem Anruf übergeben werden können. ",
- "SETQUEUEVARIABLES": "Definiert die Variablen in der Warteschlange, welche bei einem Anruf übergeben werden können. ",
- "SETQUEUEENTRYVARIABLES": "Definiert die Variablen beim Eintritt in die Warteschlange, welche bei einem Anruf übergeben werden können. ",
+ "TIMEOUT": "Gibt die Anzahl von Sekunden an, die das Gerät.",
+ "MAXLENGTH": "Gibt die maximale Anzahl der Anrufer, die in der Warteschlange. Ein Wert von Null bedeutet, dass eine unbegrenzte Anzahl von Anrufern in der Warteschlange sind erlaubt.",
+ "RETRY": "Gibt die Anzahl der Sekunden, die gewartet wird, bevor das nächste Mitglied in die Warteschlange, wenn der Wert für die Zeitüberschreitung erschöpft ist, während versucht wird, den ein Mitglied der Warteschlange.",
+ "WRAPUPTIME": "Die Anzahl der Sekunden, die ein Mitglied in einer Warteschlange verfügbar, nachdem Sie einen Anruf.",
+ "WEIGHT": "Legt das Gewicht einer Warteschlange. Eine Warteschlange mit einem höheren Gewicht definiert werden erste Priorität, wenn Mitglieder, die mit mehreren Warteschlangen.",
+ "JOINWHENEMPTY": "Steuert, ob ein Anrufer wird zur Warteschlange hinzugefügt werden, wenn keine Mitglieder verfügbar sind.",
+ "LEAVEWHENEMPTY": "Zur Kontrolle, ob die Anrufer aus der Warteschlange, wenn die Mitglieder nicht mehr bereit sind, Anrufe zu beantworten.",
+ "ANNOUNCEFREQUENCY": "Legt fest, wie oft sollten wir den Anrufer ankündigen und/oder geschätzte Wartezeit in der Warteschlange. Setzen Sie diesen Wert auf Null, um die Funktion zu deaktivieren.",
+ "MINANNOUNCEFREQUENCY": "Gibt die minimale Zeit, die verstreichen müssen, bevor wir Ihnen die Anrufer in der Warteschlange wieder. Dieser wird verwendet, wenn der Anrufer die Position kann sich häufig ändern, um zu verhindern, dass der Anrufer hören mehrere Updates in einem kurzen Zeitraum.",
+ "PERIODICANNOUNCEFREQUENCY": "Gibt an, wie oft wir sollten regelmäßige Ansagen, die dem Anrufer vorgespielt werden.",
+ "ANNOUNCEPOSITIONLIMIT": "Sie kann verwendet werden, wenn Sie definiert haben, verkünden-Position entweder als Begrenzung oder mehr.",
+ "AFTERCALLWORKDURATION": "Die Dauer der Pause durch die Option \"Arbeit nach Anruf",
+ "MEMBERDELAY": "Sie kann verwendet werden, wenn Sie wollen, dass es eine Verzögerung, bevor der Anrufer und Mitglied der Warteschlange, die miteinander verbunden sind.",
+ "MUSICONHOLD": "Setzt die Musik klasse verwendet werden, die von einer bestimmten Warteschlange an.",
+ "ANNOUNCETOAGENT": "Für die Wiedergabe einer Ansage auf den Agenten, der den Anruf entgegengenommen hat, ihn wissen zu lassen, was der Anrufer die Warteschlange aus.",
+ "RANDOMPERIODICANNOUNCE": "Falls auf Ja eingestellt, wird die festgelegte regelmäßige Mitteilungen in einer zufälligen Reihenfolge.",
+ "ANNOUNCEHOLDTIME": "Legt fest, ob die geschätzte Wartezeit gespielt werden sollte zusammen mit den regelmäßigen Ankündigungen.",
+ "ANNOUNCECALLERPOSITION": "Legt fest, ob es sich bei dem Anrufer seine Position in der Warteschlange mitgeteilt werden sollten. Wenn die Einstellung Nein lautet, die Position wird nicht bekannt gegeben. Falls auf Ja eingestellt, wird die Position des Anrufers wird immer bekannt gegeben. Wenn der Wert überschritten wird, wird der Anrufer hört ihre Position in der Warteschlange nur, wenn er sich innerhalb der Grenze von AK-Position. Wenn der Wert auf Mehr, hört der Anrufer ihre Position, wenn es über die Zahl von AK-Position.",
+ "REPORTHOLDTIMEAGENT": "Die Berichterstattung über die CLI des Anrufers mit der Zeit in der Warteschleife in der Warteschlange vor.",
+ "PERIODICANNOUNCE": "Eine Reihe von regelmäßigen Mitteilungen gespielt zu werden, in der Reihenfolge wiedergegeben, in der sie definiert sind.",
+ "HOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Hold\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "YOUARENEXTANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sie sind jetzt in erster Linie\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "THEREAREANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Es gibt\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "WAITINGCALLSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Wartende Anrufe\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Die voraussichtliche Wartezeit ist\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "MINUTESANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "MINUTEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "SECONDSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sekunden\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "THANKYOUANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Vielen Dank für Ihre Geduld.\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+ "AFTERCALLWORK": "Wenn der Agent aktiv ist, wird auf eine Pause nach einer abgeschlossenen Anruf in der Warteschlange",
+ "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Unterbrechung der Mitglieder, die es versäumen, um einen Anruf zu beantworten. Wenn aktiv, wird diese Mitgliedstaaten angehalten zu werden in allen Warteschlangen er Mitglied ist.",
+ "RINGINUSE": "Verwendet werden, um zu vermeiden, Senden von Anrufen an Mitglieder, deren Status im Einsatz ist.",
+ "TIMEOUTRESTART": "Falls auf Ja eingestellt, wird das Timeout für einen Agenten zu beantworten, wenn entweder ein Besetztzeichen oder wird mit dem Status \"Überlastung des Kanals.",
+ "CONTEXT": "Ermöglicht einem Anrufer zu beenden, die die Warteschlange durch Drücken einer einzigen Taste MFV-Ziffer. Wenn Sie einen Kontext angegeben ist und der Anrufer gibt eine Zahl, Ziffer wird versuchen, die angepasst werden können, im Rahmen festgelegt, und es wird auch weiterhin die Ausführung Nummernplan.",
+ "SETINTERFACEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
+ "SETQUEUEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange und kurz vor dem Anrufer die Warteschlange verlassen einige Variablen werden(siehe wiki)",
+ "SETQUEUEENTRYVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
"RECORDING": "Aktivieren der Aufzeichnung",
- "VOICEMAIL_CONTEXT": "Kontext der verwendeten Nebenstellen",
+ "VOICEMAIL_CONTEXT": "Im Rahmen der relativen Erweiterung.",
"NAME": "Nur Zahlen, Buchstaben und Sonderzeichen (._) werden unterstützt.",
"CALLERIDALL": "Unterstützte Formate: \"CallerId\" & lt; number & gt;",
"CALLER_ID": "Unterstützte Formate: \"CallerId\" & lt; number & gt;",
- "MANDATORYDISPOSITIONPAUSEID": "Pausenstatus, welcher während einer erforderlichen Qualifizierung verwendet wird",
- "SERVICELEVEL": "Zweite Einstellungen für Service-Level (Standard = 0, kein SL). Wird für Service Level-Statistiken verwendet (Anrufe werden innerhalb des Service Level-Zeitrahmens beantwortet)",
- "MONITORFORMAT": "Gibt das Format der Aufzeichnungsdatei an. Bei 'inaktiv', werden Anrufe nicht aufgezeichnet"
+ "MANDATORYDISPOSITIONPAUSEID": "Pausenstatus, der während der Zwangsdisposition festgelegt werden soll",
+ "SERVICELEVEL": "Zweite Einstellungen für Service Level (Standard = 0, kein SL). Wird für Service Level-Statistiken verwendet (Anrufe werden innerhalb des Service Level-Zeitrahmens beantwortet)",
+ "MONITORFORMAT": "Gibt das Format der Aufnahmedatei an. Wenn es auf 'inaktiv' gesetzt ist, werden Anrufe nicht aufgezeichnet",
+ "SAVE_ROUTES": "Die Streckenführung wurde geändert. Denken Sie daran, zu speichern, wenn Sie Ihre Änderungen nicht verlieren möchten."
},
- "MUSICONHOLD": "Wartemusik",
- "ANNOUNCETOAGENT": "Ansage an Agenten",
- "ANNOUNCEMENTS": "Ansagen",
- "ADVANCED": "Erweitert",
- "ANNOUNCEFREQUENCY": "Ansagefrequenz",
- "MINANNOUNCEFREQUENCY": "Min. Ansagefrequenz",
- "PERIODICANNOUNCEFREQUENCY": "Frequenz wiederholende Ansagen",
- "RANDOMPERIODICANNOUNCE": "Zufällige Ansagen",
- "ANNOUNCEHOLDTIME": "Wartezeit ansagen",
- "ANNOUNCECALLERPOSITION": "Warteposition ansagen",
- "ANNOUNCEPOSITIONLIMIT": "Limitierung Warteposition ansagen",
- "REPORTHOLDTIMEAGENT": "Haltezeit in Agentenbericht",
- "PERIODICANNOUNCE": "Wiederholende Ansagen",
- "HOLDTIMEANNOUNCE": "Wartezeit ansagen",
- "YOUARENEXTANNOUNCE": "Erste Position",
- "THEREAREANNOUNCE": "Es befinden sich",
- "WAITINGCALLSANNOUNCE": "Wartende Anrufe",
- "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Wartezeit ansagen",
- "MINUTESANNOUNCE": "Minuten",
- "MINUTEANNOUNCE": "Minute",
- "SECONDSANNOUNCE": "Sekunden",
+ "MUSICONHOLD": "Musik auf Halten",
+ "ANNOUNCETOAGENT": "Geben Sie Agent",
+ "ANNOUNCEMENTS": "Ankündigungen",
+ "ADVANCED": "Erweiterte",
+ "ANNOUNCEFREQUENCY": "Frequenz ankündigen",
+ "MINANNOUNCEFREQUENCY": "Minimale Frequenz ankündigen",
+ "PERIODICANNOUNCEFREQUENCY": "Periodische Frequenz ankündigen",
+ "RANDOMPERIODICANNOUNCE": "Random Periodische verkünden",
+ "ANNOUNCEHOLDTIME": "Geben Sie Zeit",
+ "ANNOUNCECALLERPOSITION": "Position des Anrufers bekannt",
+ "ANNOUNCEPOSITIONLIMIT": "Geben Position Limit",
+ "REPORTHOLDTIMEAGENT": "Bericht Agenten",
+ "PERIODICANNOUNCE": "Periodische verkünden",
+ "HOLDTIMEANNOUNCE": "Zeit in der Warteschleife verkünden",
+ "YOUARENEXTANNOUNCE": "\"Sie sind weiter' verkünden",
+ "THEREAREANNOUNCE": "'Es gibt' verkünden",
+ "WAITINGCALLSANNOUNCE": "Wartende Anrufe,",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Zeit halten,",
+ "MINUTESANNOUNCE": "Minuten ankündigen",
+ "MINUTEANNOUNCE": "Minute verkünden",
+ "SECONDSANNOUNCE": "Sekunden,",
"THANKYOUANNOUNCE": "'Vielen Dank' verkünden",
"AUTOPAUSE": "Auto Pause",
- "AFTERCALLWORK": "Nacharbeit",
- "AFTERCALLWORKDURATION": "Dauer Nacharbeit",
- "RINGINUSE": "Klingeln bei Besetzt",
- "MEMBERDELAY": "Verzögerung",
- "TIMEOUTRESTART": "Zeitüberschreitung",
+ "AFTERCALLWORK": "Arbeit nach Anruf",
+ "AFTERCALLWORKDURATION": "Arbeit nach Anruf Dauer",
+ "RINGINUSE": "Ring in Verwendung",
+ "MEMBERDELAY": "Die Verzögerung",
+ "TIMEOUTRESTART": "Timeout starten",
"MONITORFORMAT": "Aufzeichnungsformat",
- "SETINTERFACEVARIABLES": "Interface-Variablen",
- "SETQUEUEVARIABLES": "Warteschlangen-Variablen",
- "SETQUEUEENTRYVARIABLES": "Warteschlangen-Eintritts-Variablen",
+ "SETINTERFACEVARIABLES": "Die Interface- Variablen",
+ "SETQUEUEVARIABLES": "Die Warteschlange Variablen",
+ "SETQUEUEENTRYVARIABLES": "Die Warteschlange ENTRY-Variablen",
"VARIABLE": "Variable",
- "CONTEXT": "Kontext Austritt aus Warteschlange",
+ "CONTEXT": "Kontext",
"SAVE": "Speichern",
"SETTINGS": "Einstellungen",
- "INBOUNDROUTES": "Eingehende Routen",
+ "INBOUNDROUTES": "Ankommende Routen",
"PHONENUMBER": "Telefonnummer",
"ADD_INBOUNDROUTE": "Eingehende Route hinzufügen",
- "EDIT_INBOUNDROUTE": "Eingehende Route bearbeiten",
- "DELETE_INBOUNDROUTE": "Eingehende Route löschen",
+ "EDIT_INBOUNDROUTE": "Route für eingehende Anrufe bearbeiten.",
+ "DELETE_INBOUNDROUTE": "Löschen der Route für eingehende Anrufe",
"ACTIONS": "Aktionen",
- "OUTBOUNDROUTES": "Ausgehende Routen",
- "DESTINATIONPATTERN": "Ziel-Pattern",
+ "OUTBOUNDROUTES": "Abgehende Routen",
+ "DESTINATIONPATTERN": "Ziel Muster",
"ADD_OUTBOUNDROUTE": "Ausgehende Route hinzufügen",
- "EDIT_OUTBOUNDROUTE": "Ausgehende Route bearbeiten",
- "DELETE_OUTBOUNDROUTE": "Ausgehende Route löschen",
- "CUTDIGITS": "Ziffern",
- "RECORDING": "Aufzeichnung",
+ "EDIT_OUTBOUNDROUTE": "Abgehende Route bearbeiten",
+ "DELETE_OUTBOUNDROUTE": "Abgehende Route löschen",
+ "CUTDIGITS": "Die Ziffern",
+ "RECORDING": "Aufnahme",
"RECORDINGFORMAT": "Aufzeichnungsformat",
"INTERNALROUTES": "Interne Routen",
- "ADD_INTERNALROUTE": "Interne Route hinzufügen",
+ "ADD_INTERNALROUTE": "Fügen Sie interne Routen",
"EDIT_INTERNALROUTE": "Interne Route bearbeiten",
- "DELETE_INTERNALROUTE": "Interne Route löschen",
+ "DELETE_INTERNALROUTE": "Interne Routen löschen",
"CONTEXTS": "Kontexte",
- "ADD_CONTEXT": "Kontext hinzufügen",
+ "ADD_CONTEXT": "Rahmen hinzufügen",
"EDIT_CONTEXT": "Kontext bearbeiten",
- "DELETE_CONTEXT": "Kontext löschen",
- "VOICEMAILS": "Voicemails",
- "ADD_VOICEMAIL": "Voicemail hinzufügen",
- "EDIT_VOICEMAIL": "Voicemail bearbeiten",
+ "DELETE_CONTEXT": "Löschen von Rahmen",
+ "VOICEMAILS": "Von Voicemails",
+ "ADD_VOICEMAIL": "Fügen Sie Voicemail",
+ "EDIT_VOICEMAIL": "Bearbeiten von Voicemail",
"DELETE_VOICEMAIL": "Voicemail löschen",
- "FULLNAME": "Vollständiger Name",
+ "FULLNAME": "Voller Name",
"EMAIL": "E-Mail",
"MAILBOX": "Mailbox",
"PASSWORD": "Passwort",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"TIMEZONE": "Zeitzone",
- "ATTACH": "Anhängen",
+ "ATTACH": "Befestigen Sie",
"ENVELOPE": "Umschlag",
"DELETE": "Löschen",
"EMAILBODY": "E-Mail-Text",
"EMAILSUBJECT": "Betreff der E-Mail",
- "MAXSECONDS": "Max. Sekunden",
+ "MAXSECONDS": "In Sekunden",
"MAXMESSAGES": "Max. Nachrichten",
"MESSAGES": "Nachrichten",
"SORT": "Sortieren",
- "ADD_MUSICONHOLD": "Wartemusik hinzufügen",
- "MUSICONHOLDS": "Wartemusik",
- "EDIT_MUSICONHOLD": "Wartemusik bearbeiten",
- "DELETE_MUSICONHOLD": "Wartemusik löschen",
+ "ADD_MUSICONHOLD": "Hinzufügen von Musik auf Halten",
+ "MUSICONHOLDS": "Musik auf Halten",
+ "EDIT_MUSICONHOLD": "Bearbeiten Musik auf Halten",
+ "DELETE_MUSICONHOLD": "Löschen Sie Musik auf Halten",
"DIRECTORY": "Verzeichnis",
"AUDIOFILES": "Audiodateien",
- "RECORDINGS": "Aufzeichnungen",
- "CHANSPY": "Listen-In",
+ "RECORDINGS": "Aufnahmen",
+ "CHANSPY": "ChanSpy",
"PREFIX": "Präfix",
"OPTIONS": "Optionen",
- "AUTH": "Authentifizierung",
- "ADD_CHANSPY": "Listen-In hinzufügen",
- "EDIT_CHANSPY": "Listen-In bearbeiten",
- "DELETE_CHANSPY": "Listen-In löschen",
+ "AUTH": "Auth",
+ "ADD_CHANSPY": "Fügen Sie ChanSpy",
+ "EDIT_CHANSPY": "Bearbeiten Sie ChanSpy",
+ "DELETE_CHANSPY": "Löschen Sie ChanSpy",
"AGENTS": "Agenten",
"TELEPHONES": "Telefone",
"QUEUES": "Warteschlangen",
- "QUEUE_CALLS": "Anrufe in Warteschlange",
- "QUEUE_PARAMETERS": "Warteschlangen Parameter",
+ "QUEUE_CALLS": "Anrufe aus einer Warteschlange",
+ "QUEUE_PARAMETERS": "Queue Parameter",
"ABANDONED_CALLS": "Abgebrochene Anrufe",
"OUTBOUND_CALLS": "Ausgehende Anrufe",
"AGI": "AGI",
- "DIAL": "Wählen",
+ "DIAL": "Kurzwahl",
"CALLYSQUARE": "CallySquare",
- "INTERNALDIAL": "Interner Anruf",
- "EXTERNALDIAL": "Externer Anruf",
- "RINGGROUP": "Rufgruppe",
+ "INTERNALDIAL": "Interne Wahl",
+ "EXTERNALDIAL": "Externes Wählen",
+ "RINGGROUP": "Ring-Gruppe",
"PLAYBACK": "Wiedergabe",
"QUEUE": "Warteschlange",
- "SET": "Einstellen",
+ "SET": "Set",
"VOICEMAIL": "Voicemail",
"GOTO": "Gehe zu",
"HANGUP": "Auflegen",
- "CUSTOM": "Benutzerdefiniert",
+ "CUSTOM": "Benutzerdefinierte",
"PROJECT": "Cally-Square Projekt",
"TECHNOLOGY/RESOURCE": "Technologie-/Ressourcen",
"URL": "URL",
- "EDIT_APP": "App bearbeiten.",
+ "EDIT_APP": "Anwendung bearbeiten.",
"EDIT_INTERVAL": "Intervall bearbeiten",
- "DELETE_APP": "App löschen",
+ "DELETE_APP": "Anwendung löschen",
"INTERVALS": "Intervalle",
"USER": "Benutzer",
- "TRUNK": "Trunk",
+ "TRUNK": "Amtsleitung",
"PHONE": "Telefon",
"AUDIO_FILES": "Audiodateien",
- "ANNOUNCE_OVERRIDES": "Überschreibungen ankündigen",
+ "ANNOUNCE_OVERRIDES": "Überschreibt ankündigen",
"MACRO": "Makro",
"GOSUB": "GoSub",
"RULE": "Regel",
"ANSWER": "Antwort",
"VALUE": "Wert",
"MAILBOX@CONTEXT": "Mailbox@Kontext",
- "EXTENSION": "Nebenstelle",
+ "EXTENSION": "Erweiterung",
"PRIORITY": "Priorität",
- "HANGUP_CAUSE": "Ablehnungsgrund",
- "OUTBOUNDDIAL": "Extern wählen",
- "CALLER_ID": "Anrufer-ID",
+ "HANGUP_CAUSE": "Ursache auflegen",
+ "OUTBOUNDDIAL": "Wählen Sie für abgehende Anrufe",
+ "CALLER_ID": "Die Anrufer-ID",
"NO_MESSAGE_AVAILABLE": "Keine Meldungen vorhanden",
"NO_SOUND_AVAILABLE": "Kein Ton verfügbar",
- "VOICERECORDINGS": "Sprachaufzeichnungen",
- "CHANSPIES": "Listen-Ins",
- "VOICE": "Anrufe",
+ "VOICERECORDINGS": "Sprachaufnahmen",
+ "CHANSPIES": "Chan Spies",
+ "VOICE": "Voice",
"REALTIME": "Echtzeit",
- "ID": "ID",
+ "ID": "Id",
"VOICEMAIL_CONTEXT": "Kontext",
"NO_MOHSOUND_AVAILABLE": "Keine Wartemusik verfügbar",
"FILE": "Datei",
- "ADD_MOHSOUND": "Musik bei Halten hinzufügen",
- "DOWNLOAD_MOHSOUND": "Musik bei Halten herunterladen",
- "DELETE_MOHSOUND": "Musik bei Halten löschen",
+ "ADD_MOHSOUND": "Hinzufügen von Musik auf Halten sound",
+ "DOWNLOAD_MOHSOUND": "Download Music-on-Hold sound",
+ "DELETE_MOHSOUND": "Löschen Sie Music On Hold sound",
"UNIQUEID": "Eindeutige ID",
"AGENT": "Agent",
"TYPE": "Typ",
"RATING": "Bewertung",
"AUDIO": "Audio",
"DATE": "Datum",
- "NEW_VOICEQUEUE": "Neue Anruf-Warteschlange",
- "NEW_INBOUNDROUTE": "Neue eingehende Route",
- "NEW_OUTBOUNDROUTE": "Neue ausgehende Route",
- "NEW_INTERNALROUTE": "Neue interne Route",
- "NEW_CONTEXT": "Neuer Kontext",
+ "NEW_VOICEQUEUE": "Neue Stimme der Warteschlange",
+ "NEW_INBOUNDROUTE": "Neue Route für eingehende Anrufe",
+ "NEW_OUTBOUNDROUTE": "Neue abgehende Route",
+ "NEW_INTERNALROUTE": "Neue interne Routen",
+ "NEW_CONTEXT": "Neue Kontext",
"NEW_VOICEMAIL": "Neue Voicemail",
- "NEW_MUSICONHOLD": "Neue Haltemusik",
- "NEW_CHANSPY": "Neuer Listen-In",
- "PENALTY": "Verzögerung",
- "ADD_TEAM_TO_VOICEQUEUE": "Team zur Warteschlange hinzufügen",
- "ADD_AGENT_TO_VOICEQUEUE": "Agenten zur Warteschlange hinzufügen",
- "EDIT_DIAL": "Wählen anpassen",
+ "NEW_MUSICONHOLD": "Neue Musik auf Halten",
+ "NEW_CHANSPY": "Neue ChanSpy",
+ "PENALTY": "Strafe",
+ "ADD_TEAM_TO_VOICEQUEUE": "Team hinzufügen, Warteschlange",
+ "ADD_AGENT_TO_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+ "EDIT_DIAL": "Wählen Sie Bearbeiten.",
"EDIT_AGI": "AGI bearbeiten",
- "EDIT_INTERNALDIAL": "Internes Wählen bearbeiten",
- "EDIT_EXTERNALDIAL": "Externes Wählen bearbeiten",
- "EDIT_RINGGROUP": "Rufgruppe bearbeiten",
- "EDIT_PLAYBACK": "Wiedergabe bearbeiten",
- "EDIT_QUEUE": "Warteschlange bearbeiten",
- "EDIT_SET": "Set bearbeiten",
- "EDIT_GOTO": "Gehe zu bearbeiten",
- "EDIT_HANGUP": "Auflegen bearbeiten",
- "EDIT_CUSTOM": "Benutzerdef. Einstellungen bearbeiten",
+ "EDIT_INTERNALDIAL": "Interne Wahl bearbeiten.",
+ "EDIT_EXTERNALDIAL": "Wählen Sie Externen bearbeiten",
+ "EDIT_RINGGROUP": "Gruppe bearbeiten",
+ "EDIT_PLAYBACK": "Bearbeiten Sie die Wiedergabe",
+ "EDIT_QUEUE": "Bearbeiten von Warteschlangen",
+ "EDIT_SET": "Bearbeiten",
+ "EDIT_GOTO": "Gehe zu bearbeiten.",
+ "EDIT_HANGUP": "Bearbeiten Sie Auflegen",
+ "EDIT_CUSTOM": "Bearbeiten von benutzerdefinierten",
"DURATION": "Dauer",
- "RECEIVED_AT": "Eingegangen am",
+ "RECEIVED_AT": "Empfangen am",
"YES": "Ja",
- "NO": "Nein",
- "HANGUPCAUSE_1": "1 = Nummer nicht zugewiesen",
- "HANGUPCAUSE_16": "16 = Beenden durch Nutzer",
- "HANGUPCAUSE_17": "17 = Besetzt",
- "HANGUPCAUSE_18": "18 = Keine Antwort (Nebenstelle nicht verbunden)",
+ "NO": "Keine",
+ "HANGUPCAUSE_1": "1 = Nicht zugewiesene Nummer",
+ "HANGUPCAUSE_16": "16 = Normail Anruf löschen",
+ "HANGUPCAUSE_17": "17 = Benutzer besetzt",
+ "HANGUPCAUSE_18": "18 = Keine Reaktion (Telefon Gerät nicht verbunden)",
"HANGUPCAUSE_21": "21 = Anruf abgelehnt",
- "HANGUPCAUSE_22": "22 = Nummer geändert",
- "HANGUPCAUSE_27": "27 = Ziel nicht verfügbar",
- "HANGUPCAUSE_38": "38 = Netzwerk nicht verfügbar",
+ "HANGUPCAUSE_22": "22 = Anzahl geändert",
+ "HANGUPCAUSE_27": "27 = Ziel nicht in Ordnung",
+ "HANGUPCAUSE_38": "38 = Netzwerk aus, um",
"HANGUPCAUSE_41": "41 = vorübergehende Störung",
- "RANDOM": "Zufall",
+ "RANDOM": "Random",
"ALPHABETICAL": "Alphabetisch",
"NO_APPS_AVAILABLE": "Keine Anwendungen verfügbar",
- "DOWNLOAD_VOICERECORDING": "Sprachaufzeichnung herunterladen",
- "DELETE_VOICERECORDING": "Sprachaufzeichnung löschen",
- "INTERNAL": "Intern",
+ "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+ "DELETE_VOICERECORDING": "Löschen von Voice Recording",
+ "INTERNAL": "Interne",
"PHONE_STATE": "Telefonstatus",
"PHONE_STATUS": "Telefonstatus",
"TRUNK_STATUS": "Trunk Status",
"REGISTERED": "Registriert",
- "UNREGISTERED": "Nicht registriert",
+ "UNREGISTERED": "Unregistrierte",
"LAGGED": "Zurück",
"REACHABLE": "Erreichbar",
"UNREACHABLE": "Nicht erreichbar",
"UNKNOWN": "Unbekannt",
- "NOT_INUSE": "Nicht in Verwendung",
- "INUSE": "In Verwendung",
+ "NOT_INUSE": "Nicht in Gebrauch",
+ "INUSE": "Im Einsatz",
"BUSY": "Besetzt",
"INVALID": "Ungültig",
"UNAVAILABLE": "Nicht verfügbar",
"RINGING": "Klingeln",
- "ONHOLD": "Halten",
- "RING": "Klingeln",
- "UP": "Nach Oben",
- "INFO": "Information",
- "TRUNKS": "Trunks",
+ "ONHOLD": "Auf Halten",
+ "RING": "Ring",
+ "UP": "Bis",
+ "INFO": "Info",
+ "TRUNKS": "Amtsleitungen",
"REGISTRY": "Registrierung",
- "NO_REGISTRY": "Keine Registrierung",
+ "NO_REGISTRY": "Keine registry",
"LOGGED_IN": "Angemeldet",
"PAUSED": "Angehalten",
- "WAITING": "Wartezustand",
- "TALKING": "Im Gespräch",
- "DID": "DID",
+ "WAITING": "Warten",
+ "TALKING": "Sprechen",
+ "DID": "Haben",
"CALLER": "Anrufer",
- "TOTAL": "Gesamt",
+ "TOTAL": "Insgesamt",
"ANSWERED": "Beantwortet",
"ABANDONED": "Abgebrochen",
- "UNMANAGED": "Nicht bearbeitet",
- "AVG_HOLD_TIME": "Durchschnittliche Wartezeit",
- "AVG_DURATION": "Durchschnittliche Dauer",
- "AVG_BILLABLE": "Durchschnittliche abrechenbare Zeit",
- "SOURCE": "Ursprung",
+ "UNMANAGED": "Nicht verwaltete",
+ "AVG_HOLD_TIME": "Durchschnittl. Warteschleifenzeit",
+ "AVG_DURATION": "Av-Dauer",
+ "AVG_BILLABLE": "Avg Fakturierbaren",
+ "SOURCE": "Quelle",
"DESTINATION": "Ziel",
"REJECTED": "Abgelehnt",
"FAILED": "Fehlgeschlagen",
- "CALLED": "Angerufen",
+ "CALLED": "Aufgerufen",
"CONNECTED": "Verbunden",
"NO_RATING": "Keine Bewertung",
- "EDIT_VOICERECORDING": "Sprachaufzeichnungen verwalten",
+ "EDIT_VOICERECORDING": "Edit Voice Recording",
"APPLICATION_NAME": "Name der Anwendung",
"ARGUMENTS": "Argumente",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "ADD_AGENT_TO_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "DEFAULT_PAUSE": "Standard Pause",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+ "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
+ "DEFAULT_PAUSE": "Standard PAUSE",
"PAUSE": "Pause",
- "UNPAUSE": "Fortsetzen",
- "REDIRECT_TO_NUMBER": "Weiterleiten an Nummer",
- "REDIRECT_TO_AGENT": "Weiterleiten an Agenten",
- "AGENTADD_VOICEQUEUE": "Agenten zu Anruf-Warteschlange hinzufügen",
+ "UNPAUSE": "Pause",
+ "REDIRECT_TO_NUMBER": "Umleiten zu: Anzahl",
+ "REDIRECT_TO_AGENT": "Umleiten zu: Agent",
+ "AGENTADD_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
"APPLICATION": "Anwendung",
"FILES": "Dateien",
"FORMAT": "Format",
"MODE": "Modus",
"RECORD": "Datensatz",
- "TEAMADD_VOICEQUEUE": "Team zur Anruf-Warteschlange hinzufügen",
- "NEW_MOHSOUND": "Neue Wartemusik",
- "DOWNLOAD_MESSAGE": "Herunterladen",
+ "TEAMADD_VOICEQUEUE": "Hinzufügen Team voicequeue",
+ "NEW_MOHSOUND": "Neue Musik auf Halten",
+ "DOWNLOAD_MESSAGE": "Download",
"DELETE_MESSAGE": "Löschen",
"QUEUE_PARAMS": "Queue Parameter",
- "TOTAL_OFFERED": "Gesamt",
+ "TOTAL_OFFERED": "Insgesamt",
"READY": "Bereit",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlangen hinzufügen",
- "ALL_TEAMS": "Alle Teams",
+ "AGENTADD_QUEUE": "Agent hinzufügen Warteschlangen zu Voice",
+ "AGENTSADD_QUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+ "ALL_TEAMS": "Alle Mannschaften",
"SELECTED_TEAMS": "Ausgewählte Teams",
"ALL_AGENTS": "Alle Agenten",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"CLOSING": "Schließen",
"TAGS": "Tags",
"WAITING_FOR_AGENT": "Warten auf Agenten",
- "EDIT_OUTBOUNDDIAL": "Wählverhalten ausgehend bearbeiten",
- "ACCOUNTNAME": "Kontoname",
+ "EDIT_OUTBOUNDDIAL": "Bearbeiten ausgehenden DFÜ",
+ "ACCOUNTNAME": "Konto Name",
"PAGE": "Seite",
"ROWSPERPAGE": "Zeilen pro Seite",
- "OF": "von",
- "DISPOSITION": "Qualifizierung",
+ "OF": "Von",
+ "DISPOSITION": "Disposition",
"WAITING_FOR_AGENTS": "Warten auf Agenten",
"CHAT": "Chat",
"MAIL": "E-Mail",
"OPENCHANNEL": "Offener Kanal",
"FAX": "Fax",
"NO_AGENT_ONLINE": "Kein Agent Online",
- "PARTIALPAUSE": "Teilpause",
+ "PARTIALPAUSE": "Teilweise Pause",
"STATUS": "Status",
"TIMER": "Timer",
"ALL": "Alle",
"IDLE": "Leerlauf",
- "EDIT_TRUNK": "Trunk bearbeiten",
+ "EDIT_TRUNK": "Bearbeiten Trunk",
"ACTIVE": "Aktiv",
- "CLEAR": "Leeren",
+ "CLEAR": "klar",
"CALLS": "Anrufe",
- "STARTEDAT": "Startdatum",
- "ENDEDAT": "Enddatum",
- "TAG": "Tag",
- "DETAILS": "Details",
+ "STARTEDAT": "Fing an bei",
+ "ENDEDAT": "Beendet bei",
+ "TAG": "Etikett",
+ "DETAILS": "Einzelheiten",
"BILLABLESECONDS": "Abrechenbare Sekunden",
- "ANSWEREDAT": "Beantwortet am",
- "NOTE": "Notiz",
+ "ANSWEREDAT": "Beantwortet bei",
+ "NOTE": "Hinweis",
"CLOSE": "Schließen",
- "SELECT_DATE": "Startdatum auswählen",
- "SELECT_TYPE": "Typ auswählen",
- "ABANDONEDCALLS": "Abgebrochene Anrufe",
+ "SELECT_DATE": "Wählen Sie Startdatum",
+ "SELECT_TYPE": "Art auswählen",
+ "ABANDONEDCALLS": "Verlassene Warteschlangenanrufe",
"ADD_VOICEPREFIX": "Präfix hinzufügen",
- "AGENTADD_VOICEPREFIX": "Agentenpräfix hinzufügen",
+ "AGENTADD_VOICEPREFIX": "Fügen Sie Agent zu Präfix hinzu",
"DELETE_VOICEPREFIX": "Präfix löschen",
"EDIT_VOICEPREFIX": "Präfix bearbeiten",
"NEW_VOICEPREFIX": "Neues Präfix",
- "VOICEPREFIXES": "Präfixe für Sprachanrufe",
+ "VOICEPREFIXES": "Vorgegebene Präfixe",
"CALLERIDALL": "Anruferidentifikation",
"OUTBOUNDROUTE": "Ausgehende Route",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "LOGIN_TIME": "Login-Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"DIALER": "Dialer",
- "INBOUND": "Eingehend",
+ "INBOUND": "Eingehende",
"OUTBOUND": "Ausgehend",
- "MANDATORYDISPOSITION": "Qualifikation erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "MANDATORYDISPOSITION": "Zwingende Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Status der obligatorischen Dispositionspause",
+ "TEAMS_ASSOCIATION": "Vereinigung der Mannschaften",
"CANT_DOWNLOAD_THIS_FILE": "Diese Datei kann nicht heruntergeladen werden",
"FILE_NOT_FOUND": "Datei nicht gefunden",
"SCREENRECORDING": "Bildschirmaufzeichnung verwalten",
- "START_SCREENRECORDING": "Bildschirmaufzeichnung starten",
- "STOP_SCREENRECORDING": "Bildschirmaufzeichnung beenden",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
- "WRONG_EXTENSION": "Ungültige Dateiendung",
+ "START_SCREENRECORDING": "Starten Sie die Bildschirmaufnahme",
+ "STOP_SCREENRECORDING": "Beenden Sie die Bildschirmaufnahme",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "WRONG_EXTENSION": "Die Datei weist die falsche Erweiterung auf",
"DOWNLOADTRANSCRIBE_VOICERECORDING": "Transkript herunterladen",
"FAILUREREASON": "Fehlergrund",
- "RUNSENTIMENT_VOICERECORDING": "Starten Sprachaufzeichnung inkl. Sentiment",
- "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Transkription und Sentinemtaufzeichnung starten",
- "RUNTRANSCRIBE_VOICERECORDING": "Transkription starten",
- "SENTIMENT": "Sentiment",
- "SENTIMENTANALYSIS": "Sentiment-Analyse",
+ "RUNSENTIMENT_VOICERECORDING": "Führen Sie Sentiment",
+ "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Führen Sie Transcribe & Sentiment aus",
+ "RUNTRANSCRIBE_VOICERECORDING": "Führen Sie Transcribe aus",
+ "SENTIMENT": "Gefühl",
+ "SENTIMENTANALYSIS": "Stimmungsanalyse",
"SENTIMENT_MIXED": "Gemischt",
"SENTIMENT_NEGATIVE": "Negativ",
"SENTIMENT_NEUTRAL": "Neutral",
"SENTIMENT_POSITIVE": "Positiv",
"TEXT": "Text",
"TRANSCRIBE": "Transkribieren",
- "TRANSCRIBESTATUS_COMPLETED": "Transkription abgeschlossen",
- "TRANSCRIBESTATUS_FAILED": "Transkription fehlgeschlagen",
+ "TRANSCRIBESTATUS_COMPLETED": "Abgeschlossen",
+ "TRANSCRIBESTATUS_FAILED": "Gescheitert",
"TRANSCRIBESTATUS_IN_PROGRESS": "In Bearbeitung",
"TRANSCRIBESTATUS_NEW": "Neu",
"TRANSCRIPT": "Transkript",
"TRANSCRIPTANALYSIS": "Transkript & Analyse",
"SERVICELEVEL": "Service Level",
- "SECOND_LEVEL_DISPOSITION": "Qualifizierung der zweiten Ebene",
- "THIRD_LEVEL_DISPOSITION": "Qualifizierung der dritten Ebene",
- "TEAMADD_VOICEPREFIX": "Team zum Präfix hinzufügen",
+ "SECOND_LEVEL_DISPOSITION": "Disposition der zweiten Ebene",
+ "THIRD_LEVEL_DISPOSITION": "Disposition der dritten Ebene",
"ALIAS": "Alias"
}
}
"ADD_VOICEPREFIX": "Add Prefix",
"EDIT_VOICEPREFIX": "Edit Prefix",
"AGENTADD_VOICEPREFIX": "Add Agent to Prefix",
- "TEAMADD_VOICEPREFIX": "Add Team to Prefix",
"DELETE_VOICEPREFIX": "Delete Prefix",
"OUTBOUNDROUTE": "Outbound Route",
"CALLERIDALL": "Caller Id",
"SERVICELEVEL": "Nivel de servicio",
"SECOND_LEVEL_DISPOSITION": "Tipificación de segundo nivel",
"THIRD_LEVEL_DISPOSITION": "Tipificación de tercer nivel",
- "TEAMADD_VOICEPREFIX": "Agregar equipo al prefijo",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Teenuse tase",
"SECOND_LEVEL_DISPOSITION": "Teise taseme korraldus",
"THIRD_LEVEL_DISPOSITION": "Kolmanda taseme korraldus",
- "TEAMADD_VOICEPREFIX": "Lisa meeskond eesliidesse",
"ALIAS": "Teise nimega"
}
}
"SERVICELEVEL": "سطح سرویس",
"SECOND_LEVEL_DISPOSITION": "دفع سطح دوم",
"THIRD_LEVEL_DISPOSITION": "دفع سطح سوم",
- "TEAMADD_VOICEPREFIX": "اضافه کردن تیم به پیشوند",
"ALIAS": "نام مستعار"
}
}
"SERVICELEVEL": "Palvelutaso",
"SECOND_LEVEL_DISPOSITION": "Toisen tason sijoitus",
"THIRD_LEVEL_DISPOSITION": "Kolmannen tason sijoitus",
- "TEAMADD_VOICEPREFIX": "Lisää joukkue etuliitteeseen",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Niveau de service",
"SECOND_LEVEL_DISPOSITION": "Disposition de deuxième niveau",
"THIRD_LEVEL_DISPOSITION": "Disposition de troisième niveau",
- "TEAMADD_VOICEPREFIX": "Ajouter une équipe au préfixe",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "רמת שירות",
"SECOND_LEVEL_DISPOSITION": "נטייה בדרגה שנייה",
"THIRD_LEVEL_DISPOSITION": "נטייה ברמה השלישית",
- "TEAMADD_VOICEPREFIX": "הוסף צוות לקידומת",
"ALIAS": "כינוי"
}
}
"SERVICELEVEL": "सेवा का स्तर",
"SECOND_LEVEL_DISPOSITION": "दूसरा स्तर विवाद",
"THIRD_LEVEL_DISPOSITION": "तीसरे स्तर का विवाद",
- "TEAMADD_VOICEPREFIX": "उपसर्ग में टीम जोड़ें",
"ALIAS": "उपनाम"
}
}
"SERVICELEVEL": "Tingkat layanan",
"SECOND_LEVEL_DISPOSITION": "Disposisi Tingkat Kedua",
"THIRD_LEVEL_DISPOSITION": "Disposisi Tingkat Ketiga",
- "TEAMADD_VOICEPREFIX": "Tambahkan Tim ke Awalan",
"ALIAS": "Alias"
}
}
"ADD_VOICEPREFIX": "Aggiungi Prefisso",
"EDIT_VOICEPREFIX": "Modifica Prefisso",
"AGENTADD_VOICEPREFIX": "Aggiungi Agente al Prefisso",
- "TEAMADD_VOICEPREFIX": "Aggiungi Team al Prefisso",
"DELETE_VOICEPREFIX": "Elimina Prefisso",
"OUTBOUNDROUTE": "Rotta Outbound",
"CALLERIDALL": "Numero Chiamante",
"SERVICELEVEL": "サービスレベル",
"SECOND_LEVEL_DISPOSITION": "第2レベルの気質",
"THIRD_LEVEL_DISPOSITION": "第3レベルの気質",
- "TEAMADD_VOICEPREFIX": "プレフィックスにチームを追加",
"ALIAS": "エイリアス"
}
}
"SERVICELEVEL": "서비스 수준",
"SECOND_LEVEL_DISPOSITION": "두 번째 수준 처리",
"THIRD_LEVEL_DISPOSITION": "3 단계 처리",
- "TEAMADD_VOICEPREFIX": "접두사에 팀 추가",
"ALIAS": "별명"
}
}
"SERVICELEVEL": "Aptarnavimo lygis",
"SECOND_LEVEL_DISPOSITION": "Antro lygio disponavimas",
"THIRD_LEVEL_DISPOSITION": "Trečiojo lygio disponavimas",
- "TEAMADD_VOICEPREFIX": "Pridėti komandą prie priešdėlio",
"ALIAS": "Pseudonimas"
}
}
"SERVICELEVEL": "Pakalpojuma līmenis",
"SECOND_LEVEL_DISPOSITION": "Otrā līmeņa izvietojums",
"THIRD_LEVEL_DISPOSITION": "Trešā līmeņa izvietojums",
- "TEAMADD_VOICEPREFIX": "Pievienot komandu prefiksam",
"ALIAS": "Pseidonīms"
}
}
"SERVICELEVEL": "Service Level",
"SECOND_LEVEL_DISPOSITION": "Tweede niveau dispositie",
"THIRD_LEVEL_DISPOSITION": "Dispositie op het derde niveau",
- "TEAMADD_VOICEPREFIX": "Team toevoegen aan voorvoegsel",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Service nivå",
"SECOND_LEVEL_DISPOSITION": "Andre nivå disposisjon",
"THIRD_LEVEL_DISPOSITION": "Tredje nivå disposisjon",
- "TEAMADD_VOICEPREFIX": "Legg Team til prefiks",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Poziom usług",
"SECOND_LEVEL_DISPOSITION": "Dyspozycja drugiego poziomu",
"THIRD_LEVEL_DISPOSITION": "Dyspozycja trzeciego poziomu",
- "TEAMADD_VOICEPREFIX": "Dodaj drużynę do prefiksu",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Nível de serviço",
"SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível",
"THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível",
- "TEAMADD_VOICEPREFIX": "Adicionar equipe ao prefixo",
"ALIAS": "Pseudônimo"
}
}
"SERVICELEVEL": "Nível de serviço",
"SECOND_LEVEL_DISPOSITION": "Disposição de Segundo Nível",
"THIRD_LEVEL_DISPOSITION": "Disposição de terceiro nível",
- "TEAMADD_VOICEPREFIX": "Adicionar equipe ao prefixo",
"ALIAS": "Pseudônimo"
}
}
"SERVICELEVEL": "Уровень обслуживания",
"SECOND_LEVEL_DISPOSITION": "Расположение второго уровня",
"THIRD_LEVEL_DISPOSITION": "Расположение третьего уровня",
- "TEAMADD_VOICEPREFIX": "Добавить команду к префиксу",
"ALIAS": "Псевдоним"
}
}
"SERVICELEVEL": "Servicenivå",
"SECOND_LEVEL_DISPOSITION": "Andra nivån disposition",
"THIRD_LEVEL_DISPOSITION": "Tredje nivåens disposition",
- "TEAMADD_VOICEPREFIX": "Lägg till Team i prefixet",
"ALIAS": "Alias"
}
}
"SERVICELEVEL": "Servis seviyesi",
"SECOND_LEVEL_DISPOSITION": "İkinci Düzey Tasarruf",
"THIRD_LEVEL_DISPOSITION": "Üçüncü Düzey Tasarruf",
- "TEAMADD_VOICEPREFIX": "Önek'e Takım Ekle",
"ALIAS": "takma ad"
}
}
"SERVICELEVEL": "服务等级",
"SECOND_LEVEL_DISPOSITION": "二级处置",
"THIRD_LEVEL_DISPOSITION": "第三级处置",
- "TEAMADD_VOICEPREFIX": "将团队添加到前缀",
"ALIAS": "别名"
}
}
"SERVICELEVEL": "服務等級",
"SECOND_LEVEL_DISPOSITION": "二級處置",
"THIRD_LEVEL_DISPOSITION": "第三級處置",
- "TEAMADD_VOICEPREFIX": "將團隊添加到前綴",
"ALIAS": "別名"
}
}
"LASTMESSAGE": "اخر رسالة",
"LEXREGION": "منطقة",
"LIST": "قائمة",
- "LOGGED_IN": "تم تسجيل الدخول",
+ "LOGGED_IN": "تم تسجيل الدخول (SIP متصل)",
"LOGIN_TIME": "وقت تسجيل الدخول",
"LOGOUT": "تسجيل خروج",
"MANDATORYDISPOSITION": "الترتيب الإلزامي",
"LASTMESSAGE": "Poslední zpráva",
"LEXREGION": "Kraj",
"LIST": "Seznam",
- "LOGGED_IN": "Přihlášen",
+ "LOGGED_IN": "Přihlášen (připojeno SIP)",
"LOGIN_TIME": "Čas přihlášení",
"LOGOUT": "Odhlásit se",
"MANDATORYDISPOSITION": "Povinná dispozice",
"LASTMESSAGE": "Sidste meddelelse",
"LEXREGION": "Område",
"LIST": "Liste",
- "LOGGED_IN": "Logget ind",
+ "LOGGED_IN": "Logget ind (SIP tilsluttet)",
"LOGIN_TIME": "Login tid",
"LOGOUT": "Log ud",
"MANDATORYDISPOSITION": "Obligatorisk disposition",
"ERRORS": {
"ACCESSKEYID_REQUIRED": "Pflichtfeld",
"ACCOUNTSID_REQUIRED": "Pflichtfeld",
- "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"AGENTTRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"AGENT_REQUIRED": "Pflichtfeld",
"AGENT_TIMEOUT_REQUIRED": "Pflichtfeld",
"CONDITION_REQUIRED": "Pflichtfeld",
"DESCRIPTION_REQUIRED": "Pflichtfeld",
"DISPOSITION_REQUIRED": "Pflichtfeld",
- "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"FALSEPRIORITY_REQUIRED": "Pflichtfeld",
- "KEY_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "KEY_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"KEY_REQUIRED": "Pflichtfeld",
"LANGUAGE_REQUIRED": "Pflichtfeld",
"LEXREGION_REQUIRED": "Pflichtfeld",
"MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Pflichtfeld",
"NAME_REQUIRED": "Pflichtfeld",
"PHONE_REQUIRED": "Pflichtfeld",
- "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"PRIORITY_REQUIRED": "Pflichtfeld",
- "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"QUEUETRANSFERTIMEOUT_REQUIRED": "Pflichtfeld",
"QUEUE_REQUIRED": "Pflichtfeld",
"SECRETACCESSKEY_REQUIRED": "Pflichtfeld",
"TAG_REQUIRED": "Pflichtfeld",
"TEXT_REQUIRED": "Pflichtfeld",
- "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"TIMEOUT_REQUIRED": "Pflichtfeld",
"TIMES_REQUIRED": "Pflichtfeld",
"TOKEN_REQUIRED": "Pflichtfeld",
- "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
"TRUEPRIORITY_REQUIRED": "Pflichtfeld",
"TYPE_REQUIRED": "Pflichtfeld",
"VALUE_REQUIRED": "Pflichtfeld",
"VARIABLE_REQUIRED": "Pflichtfeld",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Wert muss größer oder gleich sein als",
- "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Wert muss kleiner oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "Der Wert muss größer oder gleich sein als",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "Der Wert muss kleiner oder gleich sein",
"WAITFORTHEASSIGNEDAGENT_REQUIRED": "Pflichtfeld",
- "WELCOMEMESSAGE_MAX_LENGTH": "Wert darf eine maximale Länge haben von {{max}} ",
+ "WELCOMEMESSAGE_MAX_LENGTH": "Der Wert muss eine maximale Länge von {{max}} haben",
"WELCOMEMESSAGE_REQUIRED": "Pflichtfeld",
"CLIENTEMAIL_REQUIRED": "Pflichtfeld",
"PRIVATEKEY_REQUIRED": "Pflichtfeld",
"PROJECTID_REQUIRED": "Pflichtfeld"
},
"HELP": {
- "LIST": "Liste für die Zuordnung von Kontakten",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "PausenID bei erforderlicher Qualifizierung",
+ "LIST": "Kontaktmanagerliste zum Zuordnen von Kontakten",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause, um zu verwenden, wenn die obligatorische Disposition aktiviert ist",
"MOTIONPROXY": "Das Feld muss das folgende Format haben: <Protokoll>: // <IP-Adresse> [: <Port>]. Beispiel: https: //X.Y.Z.W",
"NAME": "Es werden nur Zahlen, Buchstaben und bestimmte Zeichen (._) unterstützt",
"RECEIVEURL": "Dies ist die automatisch generierte API-Zeichenfolge, die Sie zum Empfangen der Nachrichten in Ihrem Konto von Ihrem WhatsApp Connector-Anbieter verwenden müssen (POST-Methode muss verwendet werden): Klicken Sie auf die Schaltfläche in der Zwischenablage, um sie zu kopieren",
- "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, welche bei einer neuen Interaktion gesendet wird"
+ "WELCOMEMESSAGE": "Dies ist die erste Antwortnachricht, die an neue Interaktionen gesendet wird"
},
"ACCESSKEYID": "Zugriffsschlüssel-ID",
- "ACCOUNTSID": "Konto-ID",
+ "ACCOUNTSID": "Konto-SID",
"ACTIONS": "Aktionen",
"ADD_NOTE": "Notiz hinzufügen",
- "ADD_WHATSAPPACCOUNT": "Whatsapp Konto konzufügen",
- "ADD_WHATSAPPCANNEDANSWER": "Textvorlage hinzufügen",
- "ADD_WHATSAPPDISPOSITION": "Whatsapp-Qualifizierung hinzufügen",
+ "ADD_WHATSAPPACCOUNT": "Hinzufügen",
+ "ADD_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort hinzufügen",
+ "ADD_WHATSAPPDISPOSITION": "WhatsApp Disposition hinzufügen",
"ADD_WHATSAPPQUEUE": "WhatsApp-Warteschlange hinzufügen",
- "ADVANCED": "Erweitert",
+ "ADVANCED": "Fortgeschrittene",
"AGENT": "Agent",
- "AGENTADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "AGENTADD_WHATSAPPACCOUNT": "Agenten zum WhatsApp-Konto hinzufügen",
- "AGENTADD_WHATSAPPQUEUE": "Agenten zur WhatsApp-Warteschlange hinzufügen",
+ "AGENTADD_QUEUE": "Agent zur WhatsApp-Warteschlange hinzufügen",
+ "AGENTADD_WHATSAPPACCOUNT": "Agent zum WhatsApp-Konto hinzufügen",
+ "AGENTADD_WHATSAPPQUEUE": "Agent zur WhatsApp-Warteschlange hinzufügen",
"AGENTS": "Agenten",
- "AGENTSADD_QUEUE": "Agenten zur Warteschlange hinzufügen",
- "AGENTTRANSFER": "Transfer Agent",
- "AGENTTRANSFERTIMEOUT": "Timeout Agententransfer",
- "AGENT_TIMEOUT": "Timeout Agent",
+ "AGENTSADD_QUEUE": "Hinzufügen von Agenten zur WhatsApp-Warteschlange",
+ "AGENTTRANSFER": "Agententransfer",
+ "AGENTTRANSFERTIMEOUT": "Zeitüberschreitung bei der Agentenübertragung",
+ "AGENT_TIMEOUT": "Agent Timeout",
"ALL": "Alles",
"ALL_AGENTS": "Alle Agenten",
"ALL_TEAMS": "Alle Teams",
"AUTHTOKEN": "Auth Token",
"AUTOREPLY": "Automatische Antwort",
"BACK": "Zurück",
- "BOTNAME": "Botname",
+ "BOTNAME": "Bot Name",
"BUSY": "Beschäftigt",
- "CANNEDANSWERS": "Textvorlagen",
- "CANNED_ANSWER_NOT_FOUND": "Keine Textvorlagen gefunden",
- "CANNED_ANSWER_SEARCH": "Suchen nach Textvorlagen",
+ "CANNEDANSWERS": "Vordefinierte Antworten",
+ "CANNED_ANSWER_NOT_FOUND": "Es wurden keine vordefinierten Antworten gefunden",
+ "CANNED_ANSWER_SEARCH": "Geben Sie einen Text ein, um eine vordefinierte Antwort zu suchen",
"CAPACITY": "Kapazität",
"CLOSE": "Schließen",
"CLOSED": "Geschlossen",
"CLOSEMETHOD": "Methode schließen",
"CLOSEURL": "URL schließen",
- "COMMAND": "Eingabe",
+ "COMMAND": "Befehl",
"CONDITION": "Bedingung",
"CONTACT": "Kontakt",
- "CREATED_AT": "Erstellt am",
- "DEFAULT_PAUSE": "Standard Pause",
+ "CREATED_AT": "Hergestellt in",
+ "DEFAULT_PAUSE": "STANDARD PAUSE",
"DELETE": "Löschen",
"DELETE_INTERACTION": "Interaktion löschen",
"DELETE_SELECTED": "Ausgewählte löschen",
"DELETE_WHATSAPPACCOUNT": "WhatsApp-Konto löschen",
- "DELETE_WHATSAPPCANNEDANSWER": "Textvorlage löschen",
- "DELETE_WHATSAPPDISPOSITION": "Qualifizierung löschen",
+ "DELETE_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort löschen",
+ "DELETE_WHATSAPPDISPOSITION": "WhatsApp-Disposition löschen",
"DELETE_WHATSAPPQUEUE": "WhatsApp-Warteschlange löschen",
"DESCRIPTION": "Beschreibung",
"DIALOGFLOW": "DialogFlow",
- "DISPOSITION": "Qualifizierung",
- "DISPOSITIONS": "Qualifizierungen",
- "DOWNLOAD_INTERACTION": "Interaktion herunterladen",
- "DOWNLOAD_WITHOUT_ATTACHMENTS": "Herunterladen ohne Anhänge",
- "DOWNLOAD_WITH_ATTACHMENTS": "Herunterladen inkl. Anhänge",
- "EDIT_AGENT": "Agenten bearbeiten",
- "EDIT_AMAZONLEX": "Lex-Konfiguration bearbeiten",
+ "DISPOSITION": "Anordnung",
+ "DISPOSITIONS": "Dispositionen",
+ "DOWNLOAD_INTERACTION": "Herunterladen",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Ohne Anhänge herunterladen",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Mit Anhängen herunterladen",
+ "EDIT_AGENT": "Agent bearbeiten",
+ "EDIT_AMAZONLEX": "Bearbeiten Sie die Lex-Konfiguration",
"EDIT_AUTOREPLY": "Automatische Antwort bearbeiten",
- "EDIT_CLOSE": "Bearbeitung abschließen",
- "EDIT_DIALOGFLOW": "DialogFlow-Konfiguration bearbeiten",
- "EDIT_GOTOIF": "GoToIf bearbeiten",
- "EDIT_GOTOP": "GoTop bearbeiten",
+ "EDIT_CLOSE": "Bearbeiten Schließen",
+ "EDIT_DIALOGFLOW": "Bearbeiten Sie die DialogFlow-Konfiguration",
+ "EDIT_GOTOIF": "Bearbeiten Sie Gotoif",
+ "EDIT_GOTOP": "Gotop bearbeiten",
"EDIT_NOOP": "Noop bearbeiten",
"EDIT_QUEUE": "Warteschlange bearbeiten",
"EDIT_SYSTEM": "System bearbeiten",
"EDIT_TAG": "Tag bearbeiten",
"EDIT_WHATSAPPACCOUNT": "WhatsApp-Konto bearbeiten",
- "EDIT_WHATSAPPCANNEDANSWER": "Textvorlage bearbeiten",
- "EDIT_WHATSAPPDISPOSITION": "Whatsapp-Qualifizierung bearbeiten",
- "EDIT_WHATSAPPQUEUE": "Whatsapp-Warteschlange bearbeiten",
- "FALSEPRIORITY": "Priorität falsch",
- "GENERAL": "Allgemein",
+ "EDIT_WHATSAPPCANNEDANSWER": "Vordefinierte Antwort bearbeiten",
+ "EDIT_WHATSAPPDISPOSITION": "WhatsApp-Disposition bearbeiten",
+ "EDIT_WHATSAPPQUEUE": "Bearbeiten Sie die WhatsApp-Warteschlange",
+ "FALSEPRIORITY": "Falsche Priorität",
+ "GENERAL": "Allgemeines",
"GOTOIF": "Gotoif",
"GOTOP": "Zum Seitenanfang",
- "GOTOREALTIME_WHATSAPPQUEUE": "Zur Echtzeitansicht gehen",
- "GO_TO_WHATSAPPACCOUNTS": "Zum Whatsapp-Konto gehen",
- "ID": "ID",
+ "GOTOREALTIME_WHATSAPPQUEUE": "Wechseln Sie zur WhatsApp-Warteschlange in Echtzeit",
+ "GO_TO_WHATSAPPACCOUNTS": "Gehe zu Konto",
+ "ID": "Ich würde",
"IDLE": "Leerlauf",
"INSERT_MESSAGE_HERE": "Nachricht hier einfügen",
"INTERACTIONS": "Interaktionen",
- "INTERACTIONS_WHATSAPPACCOUNT": "Zu Interaktionen gehen",
+ "INTERACTIONS_WHATSAPPACCOUNT": "Gehen Sie zu Interaktionen",
"KEY": "Schlüssel",
"LANGUAGE": "Sprache",
"LASTMESSAGE": "Letzte Nachricht",
- "LEXREGION": "LexRegion",
- "LIST": "Liste",
- "LOGGED_IN": "Eingeloggt",
+ "LEXREGION": "Region",
+ "LIST": "Aufführen",
+ "LOGGED_IN": "Eingeloggt (SIP verbunden)",
"LOGIN_TIME": "Anmeldezeit",
"LOGOUT": "Ausloggen",
- "MANDATORYDISPOSITION": "Qualifizierung erforderlich",
- "MANDATORYDISPOSITIONPAUSEID": "Qualifizierung pausieren, sofern erforderlich",
+ "MANDATORYDISPOSITION": "Obligatorische Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause, um zu verwenden, wenn die obligatorische Disposition aktiviert ist",
"MORE": "Mehr",
- "MOTIONPROXY": "Proxy",
+ "MOTIONPROXY": "Proxy- oder Bewegungsdomäne",
"MULTI_SELECT_TOGGLE": "Mehrfachauswahl umschalten",
"NAME": "Name",
"NEW_WHATSAPPACCOUNT": "Neues WhatsApp-Konto",
- "NEW_WHATSAPPCANNEDANSWER": "Neue WhatsApp-Textvorlage",
- "NEW_WHATSAPPDISPOSITION": "Neue WhatsApp-Quailifizierung",
+ "NEW_WHATSAPPCANNEDANSWER": "Neue vordefinierte WhatsApp-Antwort",
+ "NEW_WHATSAPPDISPOSITION": "Neue WhatsApp-Disposition",
"NEW_WHATSAPPQUEUE": "Neue WhatsApp-Warteschlange",
"NOOP": "Noop",
- "NOTE": "Anmerkung",
+ "NOTE": "Hinweis",
"NOTIFICATION": "Benachrichtigung",
- "NOTIFICATIONSHAKE": "Schütteln",
- "NOTIFICATIONSOUND": "Klingeln",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Klang",
"NOTIFICATIONTEMPLATE": "Vorlage",
"NO_AGENT_ONLINE": "Kein Agent online",
- "NO_AVAILABLE_INFO": "Keine Informationen verfügbar",
- "NO_INTERACTION_AVAILABLE": "Keine neuen Interaktionen verfügbar",
- "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "Keine Textvorlagen verfügbar",
- "NO_WHATSAPPDISPOSITION_AVAILABLE": "Keine Qualifizierungen verfügbar",
+ "NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
+ "NO_INTERACTION_AVAILABLE": "Keine Interaktionen verfügbar",
+ "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "Keine vordefinierten WhatsApp-Antworten verfügbar",
+ "NO_WHATSAPPDISPOSITION_AVAILABLE": "Keine WhatsApp-Dispositionen verfügbar",
"NO_WHATSAPP_ACCOUNTS_AVAILABLE": "Keine WhatsApp-Konten verfügbar",
"OF": "von",
"OPENED": "Geöffnet",
"PROXY": "Proxy",
"QUEUE": "Warteschlange",
"QUEUES": "Warteschlangen",
- "QUEUETRANSFER": "Transfer an Warteschlange",
- "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangentransfer",
+ "QUEUETRANSFER": "Warteschlangenübertragung",
+ "QUEUETRANSFERTIMEOUT": "Zeitüberschreitung bei der Warteschlangenübertragung",
"READY": "Bereit",
"REALTIME": "Echtzeit",
- "RECEIVEURL": "URL für Erhalt",
+ "RECEIVEURL": "URL erhalten",
"REFRESH_INTERACTIONS": "Interaktionen aktualisieren",
- "REMOTE": "Remote",
+ "REMOTE": "Fernbedienung",
"ROWSPERPAGE": "Zeilen pro Seite",
- "SAVE": "Speichern",
+ "SAVE": "sparen",
"SCREENRECORDING": "Bildschirmaufzeichnung verwalten",
"SEARCH_FOR_ANYONE": "Suche",
- "SECRETACCESSKEY": "Geheimer Schlüssel",
+ "SECRETACCESSKEY": "Zugriffsschlüsselgeheimnis",
"SELECTED": "Ausgewählt",
"SELECTED_AGENTS": "Ausgewählte Agenten",
"SELECTED_TEAMS": "Ausgewählte Teams",
- "SELECT_ALL": "Alles auswählen",
- "SELECT_NONE": "Nichts auswählen",
+ "SELECT_ALL": "Wählen Sie Alle",
+ "SELECT_NONE": "Nichts ausgewählt",
"SEND": "Senden",
- "SETTINGS": "Einstellungen",
- "SPYINTERACTION": "Mitlesen",
- "STARTEDAT": "Startdatum",
- "START_SCREENRECORDING": "Bildschirmaufzeichnung starten",
+ "SETTINGS": "die Einstellungen",
+ "SPYINTERACTION": "Spionage-Interaktion",
+ "STARTEDAT": "Fing an bei",
+ "START_SCREENRECORDING": "Bildschirmaufnahme starten",
"STATUS": "Status",
"STOP_SCREENRECORDING": "Bildschirmaufzeichnung stoppen",
"STRATEGY": "Strategie",
"SYSTEM": "System",
- "TAG": "Tag",
- "TAGS": "Tags",
+ "TAG": "Etikett",
+ "TAGS": "Stichworte",
"TEAMADD_WHATSAPPQUEUE": "Team zur WhatsApp-Warteschlange hinzufügen",
- "TEAMS_ASSOCIATION": "Teamzuweisung",
+ "TEAMS_ASSOCIATION": "Mannschaftsverband",
"TEXT": "Text",
- "TIMEOUT": "Zeitüberschreitung",
+ "TIMEOUT": "Auszeit",
"TIMER": "Timer",
- "TIMES": "Zeiten",
- "TO": "an",
- "TOKEN": "Token",
- "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufzeichnung verfügbar",
- "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufzeichnung läuft",
- "TRANSFER": "Weiterleiten",
+ "TIMES": "Mal",
+ "TO": "Zu",
+ "TOKEN": "Zeichen",
+ "TOOLTIP_SCREENRECORDING_OFF": "Bildschirmaufnahme verfügbar",
+ "TOOLTIP_SCREENRECORDING_ON": "Bildschirmaufnahme läuft",
+ "TRANSFER": "Transfer",
"TRUEPRIORITY": "Wahre Priorität",
- "TYPE": "Typ",
+ "TYPE": "Art",
"UNPAUSE": "Pause beenden",
"VALUE": "Wert",
"VARIABLE": "Variable",
- "WAITFORTHEASSIGNEDAGENT": "Auf den zugewiesenen Mitarbeiter warten",
+ "WAITFORTHEASSIGNEDAGENT": "Warten Sie auf den zugewiesenen Agenten",
"WAITING": "Warten",
"WELCOMEMESSAGE": "Willkommensnachricht",
"WHATSAPP": "WhatsApp Connector",
"WHATSAPPACCOUNTS": "WhatsApp-Konten",
- "WHATSAPPCANNEDANSWERS": "WhatsApp-Textvorlagen",
- "WHATSAPPDISPOSITIONS": "WhatsApp-Qualifizierungen",
+ "WHATSAPPCANNEDANSWERS": "WhatsApp vordefinierte Antworten",
+ "WHATSAPPDISPOSITIONS": "WhatsApp Dispositionen",
"WHATSAPPQUEUES": "WhatsApp-Warteschlangen",
- "CLIENTEMAIL": "Kunden E-Mail",
+ "CLIENTEMAIL": "Kunden-E-Mail",
"DIALOGFLOWV2": "Dialogflow V2",
"EDIT_DIALOGFLOWV2": "Dialogflow V2 bearbeiten",
- "PRIVATEKEY": "Privater Schlüssel",
+ "PRIVATEKEY": "Privat Schlüssel",
"PROJECTID": "Projekt-ID"
}
}
"LASTMESSAGE": "Last Message",
"LEXREGION": "Region",
"LIST": "List",
- "LOGGED_IN": "Logged In",
+ "LOGGED_IN": "Logged In (SIP Connected)",
"LOGIN_TIME": "Login Time",
"LOGOUT": "Logout",
"MANDATORYDISPOSITION": "Mandatory Disposition",
"LASTMESSAGE": "Ultimo mensaje",
"LEXREGION": "Región",
"LIST": "Lista",
- "LOGGED_IN": "Conectado",
+ "LOGGED_IN": "Conectado (SIP conectado)",
"LOGIN_TIME": "Hora de inicio de sesión",
"LOGOUT": "Cerrar sesión",
"MANDATORYDISPOSITION": "Tipificación obligatoria",
"LASTMESSAGE": "Viimane sõnum",
"LEXREGION": "Piirkond",
"LIST": "Loend",
- "LOGGED_IN": "Sisse logitud",
+ "LOGGED_IN": "Sisse logitud (SIP ühendatud)",
"LOGIN_TIME": "Sisselogimise aeg",
"LOGOUT": "Logi välja",
"MANDATORYDISPOSITION": "Kohustuslik käsutamine",
"LASTMESSAGE": "آخرین پیام",
"LEXREGION": "منطقه",
"LIST": "لیست",
- "LOGGED_IN": "ورود به سیستم",
+ "LOGGED_IN": "ورود به سیستم (SIP متصل)",
"LOGIN_TIME": "زمان ورود",
"LOGOUT": "خروج",
"MANDATORYDISPOSITION": "اختیار اجباری",
"LASTMESSAGE": "Viimeinen viesti",
"LEXREGION": "alue",
"LIST": "Lista",
- "LOGGED_IN": "Sisäänkirjautunut",
+ "LOGGED_IN": "Sisäänkirjautunut (SIP kytketty)",
"LOGIN_TIME": "Sisäänkirjautumisaika",
"LOGOUT": "Kirjautua ulos",
"MANDATORYDISPOSITION": "Pakollinen sijoittaminen",
"LASTMESSAGE": "Dernier message",
"LEXREGION": "Région",
"LIST": "liste",
- "LOGGED_IN": "Connecté",
+ "LOGGED_IN": "Connecté (SIP connecté)",
"LOGIN_TIME": "Heure de connexion",
"LOGOUT": "Se déconnecter",
"MANDATORYDISPOSITION": "Disposition obligatoire",
"LASTMESSAGE": "הודעה אחרונה",
"LEXREGION": "אזור",
"LIST": "רשימה",
- "LOGGED_IN": "מחובר",
+ "LOGGED_IN": "מחובר (SIP מחובר)",
"LOGIN_TIME": "זמן כניסה",
"LOGOUT": "להתנתק",
"MANDATORYDISPOSITION": "התנהגות חובה",
"LASTMESSAGE": "आखिरी सन्देश",
"LEXREGION": "क्षेत्र",
"LIST": "सूची",
- "LOGGED_IN": "लॉग इन",
+ "LOGGED_IN": "लॉग इन (SIP कनेक्टेड)",
"LOGIN_TIME": "लॉग इन टाइम",
"LOGOUT": "लॉग आउट",
"MANDATORYDISPOSITION": "अनिवार्य विवाद",
"LASTMESSAGE": "Pesan Terakhir",
"LEXREGION": "Wilayah",
"LIST": "Daftar",
- "LOGGED_IN": "Masuk",
+ "LOGGED_IN": "Masuk (SIP Terhubung)",
"LOGIN_TIME": "Waktu Login",
"LOGOUT": "Keluar",
"MANDATORYDISPOSITION": "Disposisi Wajib",
"LASTMESSAGE": "最後のメッセージ",
"LEXREGION": "領域",
"LIST": "リスト",
- "LOGGED_IN": "ログイン済み",
+ "LOGGED_IN": "ログイン済み(SIP接続済み)",
"LOGIN_TIME": "ログイン時間",
"LOGOUT": "ログアウト",
"MANDATORYDISPOSITION": "強制処分",
"LASTMESSAGE": "마지막 메시지",
"LEXREGION": "부위",
"LIST": "명부",
- "LOGGED_IN": "로그인 됨",
+ "LOGGED_IN": "로그인 됨 (SIP 연결됨)",
"LOGIN_TIME": "로그인 시간",
"LOGOUT": "로그 아웃",
"MANDATORYDISPOSITION": "필수 처분",
"LASTMESSAGE": "Paskutinė žinutė",
"LEXREGION": "Regionas",
"LIST": "Sąrašas",
- "LOGGED_IN": "Prisijungęs",
+ "LOGGED_IN": "Prisijungęs (prijungtas prie SIP)",
"LOGIN_TIME": "Prisijungimo laikas",
"LOGOUT": "Atsijungti",
"MANDATORYDISPOSITION": "Privalomas nusistatymas",
"LASTMESSAGE": "Pēdējā ziņa",
"LEXREGION": "Novads",
"LIST": "Saraksts",
- "LOGGED_IN": "Pieteicies",
+ "LOGGED_IN": "Pieteicies (savienots ar SIP)",
"LOGIN_TIME": "Pieteikšanās laiks",
"LOGOUT": "Izlogoties",
"MANDATORYDISPOSITION": "Obligāta rīcība",
"LASTMESSAGE": "Laatste bericht",
"LEXREGION": "Regio",
"LIST": "Lijst",
- "LOGGED_IN": "Ingelogd",
+ "LOGGED_IN": "Ingelogd (SIP verbonden)",
"LOGIN_TIME": "Login Tijd",
"LOGOUT": "Uitloggen",
"MANDATORYDISPOSITION": "Verplichte dispositie",
"LASTMESSAGE": "Siste melding",
"LEXREGION": "Region",
"LIST": "Liste",
- "LOGGED_IN": "Logget inn",
+ "LOGGED_IN": "Logget inn (SIP-tilkoblet)",
"LOGIN_TIME": "Innloggingstid",
"LOGOUT": "Logg ut",
"MANDATORYDISPOSITION": "Obligatorisk disposisjon",
"LASTMESSAGE": "Ostatnia wiadomość",
"LEXREGION": "Region",
"LIST": "Lista",
- "LOGGED_IN": "Zalogowano",
+ "LOGGED_IN": "Zalogowano (połączenie SIP)",
"LOGIN_TIME": "Czas logowania",
"LOGOUT": "Wyloguj",
"MANDATORYDISPOSITION": "Obowiązkowa dyspozycja",
"LASTMESSAGE": "Última mensagem",
"LEXREGION": "Região",
"LIST": "Lista",
- "LOGGED_IN": "Conectado",
+ "LOGGED_IN": "Conectado (SIP conectado)",
"LOGIN_TIME": "Hora de Login",
"LOGOUT": "Sair",
"MANDATORYDISPOSITION": "Disposição Obrigatória",
"LASTMESSAGE": "Última mensagem",
"LEXREGION": "Região",
"LIST": "Lista",
- "LOGGED_IN": "Conectado",
+ "LOGGED_IN": "Conectado (SIP conectado)",
"LOGIN_TIME": "Hora de Login",
"LOGOUT": "Sair",
"MANDATORYDISPOSITION": "Disposição Obrigatória",
"LASTMESSAGE": "Последнее сообщение",
"LEXREGION": "Область",
"LIST": "Список",
- "LOGGED_IN": "Авторизован",
+ "LOGGED_IN": "Авторизован (SIP подключен)",
"LOGIN_TIME": "Время входа",
"LOGOUT": "Выйти",
"MANDATORYDISPOSITION": "Обязательное распоряжение",
"LASTMESSAGE": "Senaste meddelandet",
"LEXREGION": "Område",
"LIST": "Lista",
- "LOGGED_IN": "Inloggad",
+ "LOGGED_IN": "Inloggad (SIP ansluten)",
"LOGIN_TIME": "Inloggningstid",
"LOGOUT": "Logga ut",
"MANDATORYDISPOSITION": "Obligatorisk disposition",
"LASTMESSAGE": "Son Mesaj",
"LEXREGION": "bölge",
"LIST": "Liste",
- "LOGGED_IN": "Oturum Açıldı",
+ "LOGGED_IN": "Oturum Açıldı (SIP Bağlı)",
"LOGIN_TIME": "Giriş Zamanı",
"LOGOUT": "Çıkış Yap",
"MANDATORYDISPOSITION": "Zorunlu Elden Çıkarma",
"LASTMESSAGE": "最后留言",
"LEXREGION": "地区",
"LIST": "清单",
- "LOGGED_IN": "已登录",
+ "LOGGED_IN": "已登录(已连接SIP)",
"LOGIN_TIME": "登录时间",
"LOGOUT": "登出",
"MANDATORYDISPOSITION": "强制性",
"LASTMESSAGE": "最後留言",
"LEXREGION": "地區",
"LIST": "清單",
- "LOGGED_IN": "已登錄",
+ "LOGGED_IN": "已登錄(已連接SIP)",
"LOGIN_TIME": "登錄時間",
"LOGOUT": "登出",
"MANDATORYDISPOSITION": "強制性",
"CHAT": "CHAT",
"ACTIVITY": "Aktivität",
"FRIENDS": "Freunde",
- "APP_SERVERS": "Server Anwendung",
- "USER_STATS": "Benutzer Statistiken",
- "EVENTS": "Ereignisse",
- "NOTES": "Notizen",
- "QUICK_SETTINGS": "Schnelleinstellungen",
+ "APP_SERVERS": "Anwendungsserver",
+ "USER_STATS": "Benutzer Stats",
+ "EVENTS": "Veranstaltungen",
+ "NOTES": "Hinweise",
+ "QUICK_SETTINGS": "Schnelle Einstellungen",
"NOTIFICATIONS": "Benachrichtigungen",
"CLOUD_SYNC": "Cloud Synchronisieren",
- "RETRO_THRUSTERS": "Retro Thrusters",
- "RECENT": "Neuste",
+ "RETRO_THRUSTERS": "Retro Triebwerke",
+ "RECENT": "Die jüngsten",
"START_NEW_CHAT": "Neuen Chat starten",
"BACK": "Zurück",
- "CALL": "Anrufen",
+ "CALL": "Anruf",
"MORE": "Mehr",
"SEND_MESSAGE": "Nachricht senden",
- "REPLY_PLACEHOLDER": "Nachricht eingeben und Enter drücken zum Senden",
- "CONTACT_XCALLY_MOTION_SUPPORT": "Support kontaktieren",
+ "REPLY_PLACEHOLDER": "Geben Sie ein, und drücken Sie die Eingabetaste, um Nachricht senden",
+ "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakt xCALLY Motion Support",
"EXPIRATION_DATE": "Ablaufdatum",
"EXPIRATION_REASON": "Ablauf Grund",
"LICENSE": "Lizenz",
- "NEW_TOKEN": "Neuer Token",
- "OLD_TOKEN": "Alter Token",
+ "NEW_TOKEN": "Neue Token",
+ "OLD_TOKEN": "Alte Token",
"SEND_EMAIL_TO": "E-Mail senden an",
"TOKEN": "Token",
- "EXPIRATION_REASON_MESSAGE": "Ihre Lizenz ist abgelaufen oder Ihre eindeutige ID wurde aufgrund einer Änderung an Ihrem System aktualisiert. Bitte den Support kontaktieren",
- "GRAY_PERIOD_EXPIRATION": "Ablauf Testphase",
+ "EXPIRATION_REASON_MESSAGE": "Ihre Lizenz ist abgelaufen oder Ihre Maschine eindeutige Id wurde aufgrund einer Änderung an Ihrem System aktualisiert. Die xCALLY Motion Support Team Ihre alte und Ihre neue uuid senden Kontakt.",
+ "GRAY_PERIOD_EXPIRATION": "Grau Zeitraum Ablauf",
"ERRORS": {
"NAME_REQUIRED": "Pflichtfeld"
},
- "EXPIRATION_GRAY_PERIOD": "Ablauf Testphase",
- "NO_AVAILABLE_GROUPS": "Keine Gruppen verfügbar",
- "SAVE": "Speichern",
- "INFO": "Information",
+ "EXPIRATION_GRAY_PERIOD": "Ablauf Grauzeit",
+ "NO_AVAILABLE_GROUPS": "Keine verfügbaren Gruppen",
+ "SAVE": "sparen",
+ "INFO": "Info",
"NEW_CHATGROUP": "Neue Gruppe",
"NAME": "Name",
"MEMBERS": "Mitglieder",
"DELETE": "Löschen",
"SEARCH": "Suche",
"USERS": "Benutzer",
- "EXPIRATION_REASON_MESSAGE_GRAY": "Ihre Lizenz ist abgelaufen oder wurde deaktiviert. Bitte den Support kontaktieren.",
- "EXPIRATION_REASON_MESSAGE_CHANGED": "Ihre Lizenz ist abgelaufen oder Ihre eindeutige ID wurde aufgrund einer Änderung an Ihrem System aktualisiert. Bitte den Support kontaktieren",
- "MESSENGER_DISABLED": "Internes Messaging für diesen Benutzer nicht aktiviert",
+ "EXPIRATION_REASON_MESSAGE_GRAY": "Ihre Lizenz ist abgelaufen oder wurde deaktiviert. Kontaktieren Sie xCALLY Motion Support Team.",
+ "EXPIRATION_REASON_MESSAGE_CHANGED": "Die eindeutige ID Ihres Rechners wurde aufgrund einer Änderung Ihres Systems aktualisiert. Kontaktieren Sie xCALLY Motion Support Team, das sowohl Ihren alten als auch Ihren neuen UUID sendet.",
+ "MESSENGER_DISABLED": "Das interne Messaging ist für diesen Agenten deaktiviert!",
"WARNING": "Warnung"
}
}
{
"RESETPASSWORD": {
- "TITLE": "Passwort zurücksetzen",
- "EMAIL_ADRESS": "E-Mail Adresse",
- "PASSWORD": "Passwort",
- "PASSWORD_CONFIRM": "Passwort bestätigen",
- "UPDATE_PASSWORD": "Passwort zurücksetzen",
+ "TITLE": "Ihr Kennwort zurücksetzen",
+ "EMAIL_ADRESS": "E-mail Adresse",
+ "PASSWORD": "Kennwort",
+ "PASSWORD_CONFIRM": "Kennwort (bestätigen)",
+ "UPDATE_PASSWORD": "Kennwort zurücksetzen",
"GO_BACK": "Zurück zum Login",
- "PASSWORD_RESET": "Passwort zurücksetzen",
- "PASSWORD_RESET_MESSAGE": "Das Passwort wurde erfolgreich zurückgesetzt. Sie können sich nun erneut anmelden",
- "PASSWORD_RESET_ERROR": "Fehler beim Zurücksetzen des Passwortes",
+ "PASSWORD_RESET": "Kennwort zurücksetzen",
+ "PASSWORD_RESET_MESSAGE": "Ihr Passwort wurde korrekt zurückgesetzt wurde, können Sie sich jetzt!",
+ "PASSWORD_RESET_ERROR": "Passwort Fehler zurücksetzen",
"ERRORS": {
- "EMAIL_REQUIRED": "E-Mail Adresse erfoderlich",
- "EMAIL_MUST_VALID": "E-Mail Adresse ungültig",
- "PASSWORD_REQUIRED": "Passwort erforderlich",
+ "EMAIL_REQUIRED": "Im Feld \"E-Mail ist erforderlich",
+ "EMAIL_MUST_VALID": "E-Mail muss eine gültige e-mail Adresse",
+ "PASSWORD_REQUIRED": "Kennwort Feld ist erforderlich.",
"CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein.",
- "SECURE_PASSWORD_PATTERN": "Muss mindestens 8 Zeichen enthalten, Minimum von 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen ~!?*@#$%^&-_=+[{]}."
+ "SECURE_PASSWORD_PATTERN": "Muss mindestens 8 Zeichen enthalten, mit einem Minimum von 1 Kleinbuchstaben, Großbuchstaben, 1 numerisches und 1 Sonderzeichen ~!?*@#$%^&-_=+[{]}."
}
}
}
{
"TOOLBAR": {
- "TOGGLE_NAVIGATION": "Navigation umschalten",
- "TOGGLE_NAVIGATION_FOLD": "Navigation einklappen",
- "TOGGLE_NAVIGATION_MODE": "Navigation Moduswechsel",
+ "TOGGLE_NAVIGATION": "Navigation wechseln",
+ "TOGGLE_NAVIGATION_FOLD": "Navigation wechseln Fach",
+ "TOGGLE_NAVIGATION_MODE": "Navigation Modus umschalten",
"SEARCH": "Suche",
- "USER_SETTINGS": "Nutzereinstellungen",
- "TOGGLE_QUICK_PANEL": "Schnelles Panel umschalten",
+ "USER_SETTINGS": "Benutzereinstellungen",
+ "TOGGLE_QUICK_PANEL": "Um schnelle Panel",
"ENGLISH": "Englisch",
"ITALIAN": "Italienisch",
"FRENCH": "Französisch",
"CHINESESIMPLIFIED": "Vereinfachtes Chinesisch",
"CHINESETRADITIONAL": "Traditionelles Chinesisch",
"DUTCH": "Niederländisch",
- "FINNISH": "Finnisch",
+ "FINNISH": "Finnische",
"DANISH": "Dänisch",
"PORTUGUESE": "Portugiesisch",
"NORWEGIAN": "Norwegisch",
"HINDI": "Hindi",
"TURKISH": "Türkisch",
"PERSIAN": "Persisch",
- "LOGIN_TIME": "Zeit angemeldet",
- "PAUSE_TIME": "Zeit in Pause",
+ "LOGIN_TIME": "Login Zeit",
+ "PAUSE_TIME": "Pausenzeit",
"PREVIEW": "Vorschau",
"CONFIRM_PASSWORD": "Passwort bestätigen",
"NEW_PASSWORD": "Neues Passwort",
"OLD_PASSWORD": "Altes Passwort",
"SAVE": "Speichern",
"TRIAL_VERSION": "Testversion",
- "SOMEONE_LOGGED_YOU_OUT": "Sie wurden von einem anderen Benutzer abgemeldet. Erneut anmelden?",
+ "SOMEONE_LOGGED_YOU_OUT": "Jemand eingeloggt haben, möchten Sie angemeldet bleiben?",
"STAY_LOGGED": "Angemeldet bleiben",
"WARNING": "Warnung",
"PAUSE": "Pause",
- "RESUME": "Fortsetzen",
- "NO_PAUSES_AVAILABLE": "Keine Pausen verfügbar",
- "LATVIAN": "Lettisch",
+ "RESUME": "Lebenslauf",
+ "NO_PAUSES_AVAILABLE": "Keine Pausen zur Verfügung",
+ "LATVIAN": "Lettische",
"POLISH": "Polnisch",
"ERRORS": {
"FIELD_REQUIRED": "Pflichtfeld",
"PASSWORD_REQUIRED": "Pflichtfeld",
"CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein",
- "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstaben, 1 Großbuchstaben, 1 Zahl und 1 Sonderzeichen enthalten.",
- "PASSWORD_OLDPASSWORD_MATCH": "Die Passwörter stimmen nicht überein"
+ "SECURE_PASSWORD_PATTERN": "Das Passwort muss mindestens 8 Zeichen lang sein und 1 Kleinbuchstabe, 1 Großbuchstabe, 1 Zahl und 1 Sonderzeichen haben ~! @",
+ "PASSWORD_OLDPASSWORD_MATCH": "Das neue Passwort muss sich vom vorherigen Passwort unterscheiden"
},
"RESETPASSWORD": "Passwort zurücksetzen",
- "PASSWORD_EXPIRE_REMAINING_DAYS": "Verbleibende Tage, bis zum Ablauf des Passwortes",
+ "PASSWORD_EXPIRE_REMAINING_DAYS": "Verbleibende Tage, bevor Ihr Passwort abläuft",
"BROWSER_COMPATIBILITY": "Browserkompatibilität [Chrome, Opera, Safari]",
"RECORDING": "Aufzeichnung",
- "INVALID_LICENSE": "Lizenz ungültig",
+ "INVALID_LICENSE": "Ungültige Lizenz",
"BROWSER": "Browser",
"OS": "Betriebssystem",
- "REQUIREMENTS": "Anforderungen",
+ "REQUIREMENTS": "Bedarf",
"LICENSE": "Lizenz",
"HTTPS": "HTTPS",
"WEBRTCSUPPORT": "WebRTC-Unterstützung",
- "REGISTERED": "Registriert",
+ "REGISTERED": "Eingetragen",
"NOT_REGISTERED": "Nicht registriert",
- "WEBRTC_LICENSE_NOT_ENABELD": "WebRTC-Lizenz ist nicht aktiviert",
- "ATTENDED_TRANSFER": "Warmer Transfer",
+ "WEBRTC_LICENSE_NOT_ENABELD": "Die WebRTC-Lizenz ist nicht aktiviert",
+ "ATTENDED_TRANSFER": "Begleiteter Tranfer",
"TRANSFER": "Transfer",
"TARGET": "Ziel",
- "CANCEL": "Abbrechen",
+ "CANCEL": "Stornieren",
"FILENAME": "Dateiname",
"STATUS": "Status",
"ACTIONS": "Aktionen",
- "SPEAKER": "Lautsprecher",
- "RINGING": "Klingeln",
+ "SPEAKER": "Redner",
+ "RINGING": "Klingelton",
"MICROPHONE": "Mikrofon",
"PROFILE": "Profil",
- "SERVICES": "Dienste",
+ "SERVICES": "Dienstleistungen",
"AUDIO": "Audio",
"FULLNAME": "Vollständiger Name",
"NAME": "Name",
"INTERNAL": "Intern",
- "RINGINGDEVICE": "Klingeln auf Gerät",
- "SPEAKERDEVICE": "Verwendeter Lautsprecher",
- "MICROPHONEDEVICE": "Verwendetes Mikrofon",
+ "RINGINGDEVICE": "Klingelgerät",
+ "SPEAKERDEVICE": "Lautsprechergerät",
+ "MICROPHONEDEVICE": "Mikrofon Gerät",
"CHANGEPASSWORD": "Passwort ändern",
- "SETTINGS": "Einstellungen",
+ "SETTINGS": "die Einstellungen",
"AUTOANSWER": "Automatische Antwort",
"INDONESIAN": "Indonesisch",
"ARABIC": "Arabisch",
- "CALL": "Anrufen",
+ "CALL": "Anruf",
"PREFIXES": "Präfixe",
"HEBREW": "Hebräisch",
- "ESTONIAN": "Estnisch",
+ "ESTONIAN": "estnisch",
"CZECH": "Tschechisch",
- "BRAZILIAN": "Brasilianisch",
- "CONFERENCE": "Konferenz mit 2 aktiven Sitzungen",
- "CHANGE_LANGUAGE_MESSAGE": "Bitte Seite aktualisieren, um Änderungen zu übernehmen",
+ "BRAZILIAN": "Brasilianer",
+ "CONFERENCE": "Konferenz mit 2 aktiven Sessions",
+ "CHANGE_LANGUAGE_MESSAGE": "Denken Sie daran, die Seite zu aktualisieren, um die RTL-Unterstützung anzuwenden (falls aktiviert).",
"CHANGE_LANGUAGE_TITLE": "Sprache ändern",
"WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE": "Keine Audiogeräte verfügbar",
"WEBRTC_MICROPHONE_NOT_AVAILABLE": "Kein Mikrofon vorhanden",
"WEBRTC_SPEAKER_NOT_AVAILABLE": "Kein Lautsprecher verfügbar",
"NO_AVAILABLE_INFO": "Keine verfügbaren Informationen",
- "LITHUANIAN": "Litauisch",
+ "LITHUANIAN": "litauisch",
"NOTIFICATION_TITLE": "Neue Benachrichtigung von {{Absender}}",
"NOTIFICATION_TITLE_RECIPIENT": "an {{Empfänger}}",
"USER_FORCE_LOGOUT": "{{ip}} hat sich mit Ihren Anmeldeinformationen angemeldet.\nMehrfachanmeldungen sind nicht zulässig",
<link rel="stylesheet" href="styles/vendor.def00a0c.css">
- <link rel="stylesheet" href="styles/app.2d427cb4.css">
+ <link rel="stylesheet" href="styles/app.91ca40ed.css">
<!-- <link href='//fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700italic,700,900,900italic'
rel='stylesheet' type='text/css'> -->
<script src="assets/plugins/angular-material-form-builder/dist/angular-material-form-builder.min.js"></script>
<!-- ANGULAR-MATERIAL-FORM-BUILDER -->
- <script src="scripts/app.b18c402c.js"></script>
+ <script src="scripts/app.79e08137.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","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){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"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){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"}),n.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,n){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"}),n.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.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){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"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.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})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},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,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.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,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,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,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions: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,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},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,n){return n.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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions: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,n){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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions: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,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},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","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.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","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.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,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{sort:"name"}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.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(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},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",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",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"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,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,n,t,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,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions: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,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},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,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions: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,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},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,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],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,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.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:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions: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,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions: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,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions: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,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions: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,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions: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,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions: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,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions: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,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.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,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions: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,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.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,n,t,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,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions: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,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},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,n){return n.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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions: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,n){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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},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","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},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,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],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,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions: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,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.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,n,t,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,n){return n.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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions: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,n){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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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","Auth",function(e,n){return n.hasRole("admin")?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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions: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,n){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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],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,n,t,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,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions: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,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},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,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions: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,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.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,n,t,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,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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:1400,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,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.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:1400,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:1400,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})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,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,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions: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,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},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,n){return n.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,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions: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,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},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,n){return n.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,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions: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,n){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,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions: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,n){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,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.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,n,t,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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions: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,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions: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,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},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","Auth",function(e,n){return n.hasRole("admin")?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,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",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,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions: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,n){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,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.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","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions: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,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["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.inboundRoutes",{url:"/inboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],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,n){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,n){return n.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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions: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,n){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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions: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,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},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","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],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.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",controller:"AgentsWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["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.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){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"}),n.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){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,i,o,n,s,r,l){var d;return{getToken:e,getCurrentUser:function(){return d},getPermissions:h,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return t(e)})},hasModulePermissions:function(i){return o(function(a,n){g()?a(!0):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};g()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!d&&d.role===e},hasPermission:t,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:d.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return f().then(function(){_.includes(d.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!g())return f().then(function(){a.forEach(function(e){_.includes(d.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:p,isAdmin:g,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===d.role},isUser:v,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(d=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),b("LOCAL_LOGIN")}).then(function(){if(p()&&1===d.showWebBar&&d.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return p()&&0!==d.showWebBar?c(e):g()||v()?m(!0):void 0}).then(function(e){d=_.assign(d,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(u(),e()):o.resolve().then(function(){return p()&&0!==d.showWebBar?o(function(e,n){r.user.logout({id:d.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):g()||v()?m(!1):void 0}).then(function(){u(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return g()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:c,reloadPermissions:f,removeCookies:u,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?h(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(d=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){d=_.merge(d,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return b("SSO_LOGIN"),"/api/auth/"+e}};function e(){return i.get("motion.token")}function c(e){return o(function(n,t){r.user.login({id:d.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function m(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:d.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(){i.remove("motion.token"),d&&(n.localStorage.removeItem("motion.user:"+d.id),n.localStorage.removeItem("motion.authenticationtype"),d=null)}function p(){return"agent"===d.role}function g(){return"admin"===d.role}function v(){return"user"===d.role}function t(e){return!!d&&_.includes(d.permissions,e)}function h(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function f(){return o(function(n,t){h(d.userProfileId).then(function(e){d.permissions=e,n()}).catch(function(e){t(e)})})}function b(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.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,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.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(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),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,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),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(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$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")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$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,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={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){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,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(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[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:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, 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 n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.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,n,t,a){var i=a[0],s=a[1];s.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,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.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,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=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}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.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(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}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,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).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"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,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(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],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 n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.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 n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).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",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(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,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.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")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){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){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.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,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(u,t,p,e,a,i,n,g,s,v,h,f,b,o,A){var E=this,r=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],l=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function d(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){new Promise(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){l.webrtc=_.pick(E.conf,r),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(l))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function c(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",u.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function m(n){return h.user.getVoicePrefixes({id:E.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(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function x(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function N(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function D(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function P(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(l.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){E.showDialpad=!1})}}),E.$onInit=function(){d(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||E.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},m)}}r?(o.call_id=e.request.call_id,n&&P(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&P(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),o.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),o.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),o.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?D(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),o.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),o.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=D(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),o.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=D(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),o.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return m(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){c()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);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 m(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.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"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):c():c()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),c())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=x,u.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!1)))})}),u.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),u.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return m(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:N(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:N(E.sessions[t],"requestFailed","top right",3e3)}})})}),u.$on("$destroy",function(){console.debug("$destroy event fired"),o.removeAllListeners("webbar:originate"),o.removeAllListeners("webbar:hangup"),o.removeAllListeners("webbar:answer"),o.removeAllListeners("webbar:hold"),o.removeAllListeners("webbar:unhold"),o.removeAllListeners("webbar:transfer"),o.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.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,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.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");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),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,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={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){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,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=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[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 s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(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 n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=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 n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){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,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),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,n){angular.isUndefined(e)||angular.equals(e,n)||(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,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(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,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.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(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].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,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,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 o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){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,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$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,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.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,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.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(n()){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,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),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 n=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 t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,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 n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),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[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.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?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.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"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(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"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.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,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.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,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return Promise.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n)return n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)});c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.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("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("secToTime",function(){return function(e){e&&(e=e.toString().replace(",",""));var n=Math.floor(e/86400),t=e%86400,a=new Date(1e3*t).toISOString().substring(11,19);return a.replace(/^(\d+)/,function(e){return(""+(Number(e)+24*n)).padStart(2,"0")})}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.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===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else 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,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" 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,n){return-1<n.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"}],n=[{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 t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,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,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.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"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){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(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={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 n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).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 t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={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]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),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(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).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(n,t,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 t.error('You must have at least one theme named "default"'):(t.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 n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.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(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.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")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/teams"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("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,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(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"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)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"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{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 n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={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:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.progresslogin=!1,r.googleSsoEnabled=!1,r.login=function(){return r.progresslogin=!0,r.message="",s.login(r.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){r.message=e.data?e.data.message:e.message}).finally(function(){r.progresslogin=!1})},r.loginOauth=function(e){r.message="",t.location.href=s.loginSSO(e)},r.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),r.progresslogin=!0,e.put("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){r.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}r.googleSsoEnabled=o.googleSsoEnabled},r.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{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:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,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,n){r.currentNode=n.node}},r.copyReport=function(){var t;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){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.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,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.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()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.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(a){var i={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",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",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(i,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){var n=i[e],t={};return"cm_contacts"===e&&(t.analytics=!0),a[n].describe(t).$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.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,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){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:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=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(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.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(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(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,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.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(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){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:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.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),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.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){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.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 A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(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(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,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(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){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[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(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,n,t,a,i,s,o){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(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={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"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],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"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],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:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,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:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,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("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (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:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).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[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).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)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.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 n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.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){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.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(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){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){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.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(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.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,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:v.rows||[]}})},I.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.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){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.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,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).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","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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,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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=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(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,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"},{type:"upload",name:"Upload",icon:"icon-upload"}],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 n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+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 n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,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 n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+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 n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).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)})},i.card_type="online",i.email_accounts=[]}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.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$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.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.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.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"chat",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("chat_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userChatQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userChatQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.chatPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.chatPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("chat_queue:save"),o.removeAllListeners("userChatQueue:remove"),o.removeAllListeners("userChatQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.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},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.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(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.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:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.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:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.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:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.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){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,c.ListId=c.contact.ListId||void 0):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=m,c.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}},c.getDateFromString=function(e){return null===e?void 0:new Date(e)}}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.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"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.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()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});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,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.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")})},S.editHopper=function(e,n){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:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){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:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.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=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}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(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),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,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.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,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.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"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.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"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.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";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),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";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.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){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",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":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},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 n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},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 n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.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(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,i,s,o,e,t,a,r,l,d,c,m){var u=this;function p(){var e=u.selectedDisposition?u.selectedDisposition.name.toLowerCase():void 0;return{id:u.call.uniqueid,disposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,secondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,thirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,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}}function g(e){n.hide([e,u.autoClose])}u.isReschedule=!1,u.recallme=!1,u.queueCampaign=void 0,u.queueCampaigns={count:0,rows:[]},u.dispositions=_.orderBy(_.concat([],e.rows,t.rows),["name"],["asc"]),u.contact=r,u.call=a,u.note=u.call.note||void 0,u.dialerCall=!1,u.hasBlackLists=!1,u.availableCalls=c,u.autoClose=m,u.hopper={minDate:new Date,dateTime:new Date},u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]?(u.dialerCall=!0,o.voiceQueue.getBlackLists({id:u.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(u.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):o.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.onDispositionChange=function(e){switch(e){case"first":u.selectedDisposition=u.firstLevelDisposition,u.anySecondLevelDisposition=_.some(u.dispositions,["ParentId",u.firstLevelDisposition.id]),u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.anyThirdLevelDisposition=!1;break;case"second":u.selectedDisposition=u.secondLevelDisposition,u.anyThirdLevelDisposition=_.some(u.dispositions,["ParentId",u.secondLevelDisposition.id]);break;case"third":u.selectedDisposition=u.thirdLevelDisposition}},u.clearDispositionSelection=function(e){"second"===e?(u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.selectedDisposition=u.firstLevelDisposition):"third"===e&&(u.thirdLevelDisposition=void 0,u.selectedDisposition=u.secondLevelDisposition)},u.saveDisposition=function(e){u.selectedDisposition=_.isNil(e)?u.selectedDisposition:{name:e},e&&(u.firstLevelDisposition=u.selectedDisposition);u.call.note=u.note,o.voiceCallReport.update({id:u.call.uniqueid,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,note:u.note,UserId:l.getCurrentUser().id,ContactId:u.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:u.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.dialerCall&&(o.cmHopperFinal.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(u.selectedDisposition))g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"");else switch(u.selectedDisposition.name.toLowerCase()){case"blacklist":u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(u.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+u.selectedDisposition}),u.selectedDisposition=void 0}).then(function(e){e&&g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}(u.call.variables["xmd-voicequeueid"]);break;case"reschedule":u.isReschedule=!0,u.recallme=!1;break;case"recallme":u.isReschedule=!0,u.recallme=!0;break;default:g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}},u.closeDialog=function(){n.cancel()},u.saveReschedule=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:u.recallme?l.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:u.dialerCall?Number(u.call["xmd-voicequeueid"]):u.queueCampaign?u.queueCampaign.id:null,scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:u.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){u.dialerCall&&o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:u.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(u.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).finally(function(){u.disable=!1,g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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,o.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(){o.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(){s.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,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.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},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$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"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.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"),o.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,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,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].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=o.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),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.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,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(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,t,n,a,i,s,o,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,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),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),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),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),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),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),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),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),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),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),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].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=o.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),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.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,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(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(e,t,n,a,i,s,o,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.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=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"whatsapp":return"lime-A700-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.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.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},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get({sort:"name"}).$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({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"),s.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.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},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.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,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.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:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.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");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.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){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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 c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.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},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get({sort:"name"}).$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).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(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":var n=_.find(h.messages.rows,{id:h.draft.content.id});if(!n)return l.mailMessage.get({id:h.draft.content.id}).$promise.then(function(e){h.draft.content.originalMessage=e&&e.count?e.rows[0]:void 0,E(h.draft.type,h.draft.content)}).catch(function(){h.draft.content.originalMessage="",E(h.draft.type,h.draft.content)});h.draft.content.originalMessage=n,E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.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 n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.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(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.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}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].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}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.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()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),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()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.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"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).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,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" 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("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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(s.to)||_.isEmpty(s.to)?[]:s.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?(s.draft=void 0,t.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,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.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 n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+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 n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.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(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.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 }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.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:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.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(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(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 S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},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,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" 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(e,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" 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("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){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 n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){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(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.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(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.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 n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(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:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({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)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.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,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=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(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].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(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.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},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.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,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=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(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"fax",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("fax_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userFaxQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userFaxQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.faxPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.faxPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("fax_queue:save"),o.removeAllListeners("userFaxQueue:remove"),o.removeAllListeners("userFaxQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(this.selectedTab=0,t.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,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.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){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.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){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.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){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.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","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,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,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=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(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f["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"),"")}),f["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"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.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"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"mail",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("mail_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userMailQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userMailQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.mailPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.mailPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("mail_queue:save"),o.removeAllListeners("userMailQueue:remove"),o.removeAllListeners("userMailQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(this.selectedTab=0,t.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,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.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"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.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){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.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){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=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(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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")})},f.restartplugin=function(e,n){var t=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(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=4,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!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.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.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,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency: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},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).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","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.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){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=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(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.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"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.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(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.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 n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.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","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.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,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.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=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.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,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.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(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.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(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.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(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.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,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).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","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.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){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=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(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.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"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.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(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.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 n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.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","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.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,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.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=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.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,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.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,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.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(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.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(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.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"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"outbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){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:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.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","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},m.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(_.merge(n,_.pick(e,u)),_.isNil(e.startPredictive)&&(n.startPredictive=void 0))}),o.on("userVoiceQueueRt:save",function(e){var n=_.find(m.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueueRt:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",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,t,n){switch(this.selectedTab=0,t.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,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{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:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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:"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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=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(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"openchannel",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("openchannel_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userOpenchannelQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userOpenchannelQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.openchannelPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.openchannelPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("openchannel_queue:save"),o.removeAllListeners("userOpenchannelQueue:remove"),o.removeAllListeners("userOpenchannelQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.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,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" 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:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.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.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.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.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.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}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.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","Auth"],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 n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.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,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.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"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,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)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[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){n.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,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.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,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.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.network.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Network properly saved!",msg:p.network.name?p.network.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.network.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=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(n).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,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.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(),m.success({title:_.startCase("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 n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.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,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.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","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.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,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},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,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.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");t.show(n).then(function(){t.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,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"sms",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("sms_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userSmsQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userSmsQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.smsPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.smsPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("sms_queue:save"),o.removeAllListeners("userSmsQueue:remove"),o.removeAllListeners("userSmsQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=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(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.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:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.agents=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="agents",f.listOrder="",f.listOrderAsc=null,f.selectedAgents=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,page:1},f.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:f.agents?f.agents.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getAgents=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Agents",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditAgent=function(e,n){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:f.agents.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteAgent=y,f.exportSelectedAgents=function(){var e=angular.copy(f.selectedAgents);return f.selectedAgents=[],e},f.deleteSelectedAgents=function(e){var n=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+f.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedAgents.forEach(function(e){y(e)}),f.selectedAgents=[]})},f.deselectAgents=function(){f.selectedAgents=[]},f.selectAllAgents=function(){f.selectedAgents=f.agents.rows};var b=!0,A=1;function E(e){f.agents=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.agents.rows,{id:e.id}),f.agents.count-=1,f.agents.rows.length||f.getAgents(),p.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","agents","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:"bull"===c.channel?"voice":c.channel,type:c.direction,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:c.direction,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.QUEUEADD_AGENT_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),labelSelected:s.instant("STAFF.SELECTED_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.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"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.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.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.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:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,e.toJSON()),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.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","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).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","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!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.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"name,-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",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||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",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||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.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,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).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","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording","routealias"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.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,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.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","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting),_.merge(n,_.pick(e,u)))}),o.on("userVoiceQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userVoiceQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueue:remove"),o.removeAllListeners("userVoiceQueue:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){var a=this;switch(a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.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,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.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},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",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){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).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","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getTeams({id:l.voicePrefix.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voicePrefix=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.teamadddialog=function(e,n){i.show({controller:"voicePrefixteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.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"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.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"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voiceRecording=c||e.params.voiceRecording||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},u.saveVoiceRecording=function(){r.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h){var f=this;function b(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceRecordings=r||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceRecordings=[],f.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:f.crudPermissions})},f.runtranscriberuntranscribesentiment=b,f.runtranscribesentimentruntranscribesentiment=A,f.runsentimentruntranscribesentiment=E,f.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){I(e)},function(){console.log("CANCEL")})},f.success=T,f.getVoiceRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceRecording.get(f.query,T).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceRecordings",f.promise=m.userProfile.getResources(f.query,T).$promise)},f.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:f.voiceRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceRecording=I,f.exportSelectedVoiceRecordings=function(){var e=angular.copy(f.selectedVoiceRecordings);return f.selectedVoiceRecordings=[],e},f.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+f.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceRecordings.forEach(function(e){I(e)}),f.selectedVoiceRecordings=[]})},f.deselectVoiceRecordings=function(){f.selectedVoiceRecordings=[]},f.selectAllVoiceRecordings=function(){f.selectedVoiceRecordings=f.voiceRecordings.rows},f.runtranscribeSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){b(e,n)}),f.selectedVoiceRecordings=[]},f.runtranscribesentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){A(e,n)}),f.selectedVoiceRecordings=[]},f.runsentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){E(e,n)}),f.selectedVoiceRecordings=[]};var y=!0,S=1;function T(e){f.voiceRecordings=e||{count:0,rows:[]}}function I(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceRecordings.rows,{id:e.id}),f.voiceRecordings.count-=1,f.voiceRecordings.rows.length||f.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){y?o(function(){y=!1}):(n||(S=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=S),f.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"whatsapp",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsWhatsappRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("whatsapp_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userWhatsappQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userWhatsappQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.whatsappPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.whatsappPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("whatsapp_queue:save"),o.removeAllListeners("userWhatsappQueue:remove"),o.removeAllListeners("userWhatsappQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",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,t,n){switch(this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),v(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer 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:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.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)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.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!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.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:4,hidden:function(){return!r.cm||!o.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:5,hidden:function(){return!r.dialer||!o.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:6,hidden:function(){return!r.voice||!o.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:7,hidden:function(){return!r.voice||!o.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:8,hidden:function(){return!r.voice||!o.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:9,hidden:function(){return!r.chat||!o.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:10,hidden:function(){return!r.mail||!o.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:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.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:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.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 n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.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,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},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=n.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--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.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),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.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,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.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 n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.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 n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].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="",t.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),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.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))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.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){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.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,n,t,a,i,s,o,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=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).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((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}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,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[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 n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).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){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.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 n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).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(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.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:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,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]}),n("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,n,t,a,i,s,o,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,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.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");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.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(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){_.isNil(e)&&s.cmHopper.update({id:d.preview.id,UserId:null}),a.hide()}d.customFieldsMap=l&&l.rows?_.mapValues(_.keyBy(l.rows,function(e){return"cf_"+e.id}),"name"):{},d.errors=[],d.hopperIds=[],d.preview=o,d.currentUser=r,d.originated=!1,d.disable=!1,d.disableGetContact=!1,d.hopperIds.push(d.preview.id),d.originatePreview=function(){d.originated=!0,d.disable=!0,_.isEmpty(d.preview)?(i.error({title:"Message",msg:"Contact not available"}),d.disable=!1,d.hopperIds=[],c(!0)):s.rpc.getVoiceQueuesPreview({id:d.preview.id}).$promise.then(function(e){c(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),c(!0)}).finally(function(){d.disable=!1,d.hopperIds=[]})},d.closeDialog=c,d.nextContact=function(){return d.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:d.hopperIds,direction:"next"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(d.disableGetContact=!1,d.hopperIds=[],404===e.status)d.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.previousContact=function(){if(d.disableGetContact=!0,1<d.hopperIds.length){var e=_.without(d.hopperIds,d.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(d.hopperIds,function(e){return e==d.preview.id}),d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e)}).catch(function(e){if(404===e.status)d.hopperIds=[d.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){d.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.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()})})}},d.getFirstAvailableContact=function(){return d.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[d.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"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){d.disableGetContact=!1})},d.isCustomField=function(e){return _.startsWith(e,"cf_")},d.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)},d.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){d.originated||s.cmHopper.update({id:d.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","currentUser","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.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"}],T.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"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.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"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role&&T.currentUser.name===e.membername){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</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})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$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()})})},T.unpause=function(){return f.user.unpause({id:T.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()})})},T.preview=function(n){return T.disable=!0,f.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:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},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){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.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()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$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"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(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",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","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,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.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,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=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),t.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),t.appendChild(a),n.appendChild(t),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=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-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 s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.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,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},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,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<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="",n=0;n<arguments.length;n++)e+=arguments[n],n<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 n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+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,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};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,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t: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,n,t,a){this.x=e,this.y=n,this.width=t,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 n=Math.min(this.x,e.x),t=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=n,this.y=t,this.width=a-n,this.height=e-t}},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,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&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 n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},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,n){return function(){return n.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,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n);n=e.substring(n,t)}return n},indexOf:function(e,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},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 n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}: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,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},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 n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,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",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"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 n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;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==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),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=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=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);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,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,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=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):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},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,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*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,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),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 o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),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 n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}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 n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.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,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,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,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};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,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(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,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}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,n){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,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),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,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}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,n,t,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=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=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),n.appendChild(this.td),e.appendChild(n),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 n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}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 n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},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),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),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,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"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 t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!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{t=!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 n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.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 t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!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=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!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),s=this.table.style.height,o=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 n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.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),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"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,n){var t=document.createElement("tr"),a=document.createElement("td");t.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(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},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(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"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,n,t){return e.getCellAt(n,t)},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,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,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 n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"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 n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.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,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),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(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,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,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"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=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},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,n,t){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,n,t){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,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,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",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}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,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.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 n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;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 n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}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,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}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 n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));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),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=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(t&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){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,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.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=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t: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=n+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=n-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=o())):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)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t: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,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.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,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},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 n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.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),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,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 n=0;n<this.cells.length;n++)this.animateCell(cells[n],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,n,t){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 s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],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,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),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,n){this.state.dx+=e,this.state.dy+=n},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,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},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,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){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 n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},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 n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),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 n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},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 n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},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 n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},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 n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"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,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,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(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),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,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},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 n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},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 n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=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",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*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),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+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(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+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,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=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<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"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,s,o,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);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,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(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*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,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==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=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==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,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?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"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,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,n){this.graph=e,this.setStates(n)}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,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},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,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"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))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?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,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(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,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?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,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"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"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=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(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):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<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(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-t/2)*u.scale)+"px",g.style.top=this.format(n+(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-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.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),t=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+t*g*this.state.scale)+"px",l.style.top=this.format(n+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,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.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),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"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=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},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,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.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",n&&(r||(n=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}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 n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&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 n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].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,n=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!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}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)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),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 n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),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 n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}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 n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/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,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),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 n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},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,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o: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!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){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,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=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-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,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,n,t,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,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,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 n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,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!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,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 n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="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 t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.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=n[o+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(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+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 n=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 t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=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:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.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,n,t,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 n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"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(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=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 o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"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);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=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=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/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 n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),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 n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"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,n,t,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,n,t,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,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),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,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,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 n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"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,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,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 n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.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,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,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,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=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(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,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 n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=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!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.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,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=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);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.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,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.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=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.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,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=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=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!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 n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,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?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.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 n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=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 o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),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]}n.beginUpdate();try{for(a=0;a<s;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);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[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(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(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(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.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),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},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 n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.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 n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.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,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},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,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},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,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},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 n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},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 n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])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 n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].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,n){this.temp[e-this.minRank-1]=n},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,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[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=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,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 n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[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);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-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(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,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 n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");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 n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[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,s=Math.max(s,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]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=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,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):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,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)if(s<=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o<s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],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||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/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)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[s],e.isReversed?e.target.cell:e.source.cell),r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[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]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[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),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=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(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.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,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[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&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}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,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.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,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},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,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==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,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=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 n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=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 n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):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,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==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,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},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,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},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,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[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(n,i),t)},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),n=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=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},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 n=this.getValue();return this.setValue(e),n},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,n){return n?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,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},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,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},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,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.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=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.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 n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.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 s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.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 n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[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+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<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!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){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!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"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=n-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),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=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,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,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,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},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,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(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,n){n?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 n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].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 n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),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 n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,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),n=this.graph.isLabelClipped(e.cell),t=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),t?(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);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(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,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.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=o,this.textarea.style.color=s,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(t),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==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,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"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.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,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(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+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(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)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==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,n){mxCellRenderer.prototype.defaultShapes[e]=n},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,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.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,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var t,a=e.shape.node,i=a.parentNode;n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),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 n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),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 n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},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,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.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 n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.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(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,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 n=e.view.graph,t=e.view.scale,a=n.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*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(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),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,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),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&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==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(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,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=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=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,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,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;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<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(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*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],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*s<m&&2*s<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*s<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*s<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]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[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-=o)<1&&(d+=4),(v-=o)<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]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=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+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-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)<<o)&&(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]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n: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,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,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,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}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,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t: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,n){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,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,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,n){null!=e&&(this.graph=e,this.target=n||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,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t: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(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,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 n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=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!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},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 n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){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*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=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!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.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*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(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(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==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==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}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),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},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 n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),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 n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},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,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),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,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},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 n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"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 n=[],t=0;t<e.length;t++){var a=e[t];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(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},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 n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!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 n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&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 n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.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()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,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,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);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),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].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[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].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[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.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 n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}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(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,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,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,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 s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[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(t[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/s-o.x,l[0].y/s-o.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/s-o.x,l[m].y/s-o.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 t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=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)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&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",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[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/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[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,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,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],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!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 n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);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 s=i.offset;null!=s&&(s.x+=a.x-i.x,s.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[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),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",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!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(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){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!=n.point){var l=t=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"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=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 s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.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/n-t.x+l,c[0].y/n-t.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/n-t.x+l,c[v].y/n-t.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,n){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(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},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,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},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,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.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(t.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(t.setAttribute("transform","translate("+e+","+n+")"),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 s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,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,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=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=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(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 n=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 t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},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 n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(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 n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==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,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(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,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=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 s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){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 n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?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 n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},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 n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&(null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t))),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},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 n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[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 n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.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 n=this.view.getState(e);return e=null!=n?n.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 n=this.view.getState(e);return e=null!=n?n.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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){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,n){return this.isValidSource(e)&&this.isValidTarget(n)},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 n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.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,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){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(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t: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,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>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,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],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)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+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>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,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,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},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,n,t){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(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),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(n,t,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)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},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 n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),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-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.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||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}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 n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.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)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},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 n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.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,n){!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 n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.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,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.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),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.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,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,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 n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=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 n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,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>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);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 n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,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 n=this.graph.view.getState(e);return e=null!=n?n.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 n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){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!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}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,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},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,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),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 n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.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,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.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,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},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 n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,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,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.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,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);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(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},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 n=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,n)}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,n){return n=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),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,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),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,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},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 n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.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=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).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 n=0;n<e.length;n++)e[n].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,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){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(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,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 n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.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(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),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)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.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),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=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,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=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(t,a,n.getEvent(),n.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),n.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,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,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==n&&((u=this.graph.getPointForEvent(t,!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",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,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,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),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(),n):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 s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(t)}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],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.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,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.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,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-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 n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),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,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,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(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==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,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),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=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.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(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},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,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,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 n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,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&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,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 n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||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 n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=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,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;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,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.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&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,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,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.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)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);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(t));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(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.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,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=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-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.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 t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){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,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[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=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=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,n),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 n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.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 s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,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 n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.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,n){if(this.graph.isCellBendable(this.state.cell)){var t=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],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}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,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},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 n=this.getFunction(e);null!=n&&(n(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,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),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,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+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,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?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,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},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,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.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,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,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 n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),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,n){e.showProperties(n)}),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,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),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 n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),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 n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),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,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},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,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),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 n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},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,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[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}}});s.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},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(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);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 n=mxUtils.load(e).getXml();this.readGraphModel(n.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,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.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,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),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 n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.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(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.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 n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}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 n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-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){n.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 n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}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,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},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 n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!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(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},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 n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],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,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},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,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},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 n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+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,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},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,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(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,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.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",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[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<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=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&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.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)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}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,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});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(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.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","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[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"],[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","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[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,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"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.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.isEditingEnabled()?this.createKeyHandler(n):null;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"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.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"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\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";break;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";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.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 t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&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(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||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),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-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 s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",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=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-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.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),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 n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.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,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[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,n){this.editorUi=e,this.container=n,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 n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.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(n,"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,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.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(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);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[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.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[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],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 s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/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(n),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=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.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 n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}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 n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.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=t.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 n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.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 n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.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",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.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){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),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"==s.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 b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),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(n),e.appendChild(t),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 n=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 t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t: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 s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.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,n=this.outline;if(null!=e.container&&null!=n.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="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.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 t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var 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 n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,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,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;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 s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.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 n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,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,n){this.data=e,this.filename=n,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",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),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(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"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;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"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+t/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,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[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==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);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 t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.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",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);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 n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});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 o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){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(t?(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 s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}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="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.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 o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;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((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-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=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){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(n,t,a,e,i,s,o){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(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);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<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){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,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,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"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];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","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.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",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!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,n,t,a){mxGraph.call(this,e,n,t,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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,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 n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[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 n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},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,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},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,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),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,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.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,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};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 n=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(n),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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),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(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.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 n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);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(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}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,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*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,n=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(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.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 t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("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 n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,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 n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},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,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){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!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.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){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},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,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,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 n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].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 n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),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/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></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.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),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()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\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}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\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}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\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 <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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </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>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" 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="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </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-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.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 id="{{ node.id }}" 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&Media 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\', true)" 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\', true)" 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\', true)" 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"></timer>\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" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\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&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\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 id="{{\'div_session_\'+session.id.substr(0,32)}}" 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">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></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="Anser" 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 && !vm_pb.isInConference" 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 && !vm_pb.isInConference" 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" privacy ng-cloak></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="local-audio" autoplay hidden=true></audio>\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 ng-keypress="vm.keyPress($event)">\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" md-autofocus 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 translate="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-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.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, \'font-size\': (widget.titleFontSize || 12) }" 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\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n 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 ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" 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="fab fa-google" 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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($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 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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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\n <div ng-messages="metricForm[\'name\'].$error" ng-show="metricForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" required>\n <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n <md-option ng-value="\'report_call\'">Call Report</md-option>\n <md-option ng-value="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer 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="\'report_dial\'">Dial 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="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</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="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</md-option>\n <md-option ng-value="\'users\'">Users</md-option>\n <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n <md-option ng-value="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</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\n <div ng-messages="metricForm[\'metric\'].$error" ng-show="metricForm[\'metric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.metric.description">\n\n <div ng-messages="metricForm[\'description\'].$error" ng-show="metricForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($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 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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-if="vm_rc.crudPermissions.canEdit">\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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-if="vm_rc.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-disabled="!vm.crudPermissions.canEdit" 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-disabled="!vm.crudPermissions.canEdit" 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, vm.crudPermissions)">\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-if="vm_rf.crudPermissions.canEdit" 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="vm_rf.crudPermissions.canDelete" 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" ng-if="vm_rf.crudPermissions.canEdit">\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" ng-if="vm_rf.crudPermissions.canEdit"></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" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\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" ng-if="vm_rf.crudPermissions.canEdit">\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 Field\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 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 </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, vm.crudPermissions)">\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.crudPermissions.canDelete && vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div layout="column" flex="30">\n <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n \x3c!-- SEARCH --\x3e\n <div layout="row" layout-align="start center">\n <label for="searchFolder" class="m-0">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" 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.getReports()" query="vm.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.crudPermissions.canEdit && 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.crudPermissions.canEdit && 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 translate="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.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : 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 ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && vm.currentNode.custom">\n <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n Delete Report\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-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.WEB_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\n <div ng-messages="odbcForm[\'name\'].$error" ng-show="odbcForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DSN">DSN</label>\n <input type="text" name="dsn" ng-model="vm.odbc.dsn" ng-required="true">\n\n <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n <div ng-messages="odbcForm[\'dsn\'].$error" ng-show="odbcForm[\'dsn\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.odbc.description">\n\n <div ng-messages="odbcForm[\'description\'].$error" ng-show="odbcForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($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\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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|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|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_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]" ng-disabled="v.canSelect === false">{{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-disabled="!vm.crudPermissions.canEdit" 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\'" ng-disabled="v.canSelect === false">{{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\'" ng-disabled="v.canSelect === false">{{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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></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|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" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\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" ng-if="vm.crudPermissions.canEdit">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="editForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label>XML</label>\n <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n CLOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="descriptionFrom" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description" md-autofocus>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NOTES">Description</label>\n <textarea name="notes" ng-model="vm.project.notes"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="openForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.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>\n <md-button class="md-icon-button" ng-click="vm.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" ng-init="vm.onInit()">\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-if="vm.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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 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 translate="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 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-if="vm.crudPermissions.canEdit" 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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($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\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>{{ \'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 " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></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.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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="CHAT.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="chatQueueForm[\'description\'].$error" ng-show="chatQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="CHAT.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="chatWebsiteForm[\'name\'].$error" ng-show="chatWebsiteForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\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 <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 </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\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 <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 </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" value="LOCALIP" ng-required="true">\n\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 <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 </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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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\n <div ng-messages="chatWebsiteForm[\'description\'].$error" ng-show="chatWebsiteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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\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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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" 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>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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\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" ng-if="vm.crudPermissions.canEdit">\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/dialogflowv2/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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey 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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</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.dialogflowv2.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\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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="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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\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\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">\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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$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) || (vidaooForm.$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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></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 <div class="chatWebsite-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\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 </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" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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 </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 <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 <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'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="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\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" ng-if="item.type != \'upload\'">\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 </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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </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>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\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 <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </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>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\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.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo 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.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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 actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </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>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\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.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.crudPermissions.canDelete">\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="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"CHAT.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"CHAT.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="companyForm[\'name\'].$error" ng-show="companyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone">\n\n <div ng-messages="companyForm[\'phone\'].$error" ng-show="companyForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat">\n\n <div ng-messages="companyForm[\'vat\'].$error" ng-show="companyForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax">\n\n <div ng-messages="companyForm[\'fax\'].$error" ng-show="companyForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId">\n\n <div ng-messages="companyForm[\'companyId\'].$error" ng-show="companyForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type">\n\n <div ng-messages="companyForm[\'type\'].$error" ng-show="companyForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255">\n\n <div ng-messages="companyForm[\'website\'].$error" ng-show="companyForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div 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 </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\n <div ng-messages="companyForm[\'emailDomain\'].$error" ng-show="companyForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email">\n\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\n <div ng-messages="companyForm[\'description\'].$error" ng-show="companyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'vat\'].$error" ng-show="generalForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fax\'].$error" ng-show="generalForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'companyId\'].$error" ng-show="generalForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'website\'].$error" ng-show="generalForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div 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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'emailDomain\'].$error" ng-show="generalForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'street\'].$error" ng-show="addressForm[\'street\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="postalCode" ng-model="vm.company.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'postalCode\'].$error" ng-show="addressForm[\'postalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.company.city" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'city\'].$error" ng-show="addressForm[\'city\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.company.country" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'country\'].$error" ng-show="addressForm[\'country\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sStreet\'].$error" ng-show="shipmentAddressForm[\'sStreet\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sPostalCode\'].$error" ng-show="shipmentAddressForm[\'sPostalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="sCity" ng-model="vm.company.sCity" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCity\'].$error" ng-show="shipmentAddressForm[\'sCity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="sCountry" ng-model="vm.company.sCountry" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCountry\'].$error" ng-show="shipmentAddressForm[\'sCountry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="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.crudPermissions.canDelete" 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" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">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 </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 company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\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_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\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 ng-init="vm.getAssignedCompanies()">\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="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | 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 translate="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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : 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" ng-if="!vm.crudPermissions.readOnly">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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-if="vm.crudPermissions.canEdit" 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 privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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]">\n </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-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\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\n 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">\n </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\n 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\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" ng-if="vm.crudPermissions.canEdit">\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" ng-init="vm.onInit()">\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 ng-if="vm.crudPermissions.canEdit">\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\n </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 ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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\n 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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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-disabled="!vm.crudPermissions.canEdit"></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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{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 </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 ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{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_TAG">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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit"></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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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\n </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}}\n </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]">\n </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </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" ng-disabled="!vm.crudPermissions.canEdit">\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="recallme">{{ \'CONTACTMANAGER.RECALLME\' | 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="7">\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 ng-repeat="(id, hopper) in vm.hoppers.rows">\n <td md-cell>{{hopper.id}}</td>\n <td md-cell privacy ng-cloak>{{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" ng-if="!vm.crudPermissions.readOnly">\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="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && 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 translate="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 privacy ng-cloak>{{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 translate="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 privacy ng-cloak>{{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 translate="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="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </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\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" 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 <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : 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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="listForm[\'name\'].$error" ng-show="listForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description">\n\n <div ng-messages="listForm[\'description\'].$error" ng-show="listForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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\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" 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 <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </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>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\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" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\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 <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/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="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.crudPermissions.canEdit" 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.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 | orderByDate " 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\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <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); $event.stopPropagation()">\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 | orderByDate " 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)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" 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/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </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 </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" class="pr-10">\n <div layout="row" flex="75" class="flex-scrollable only-x">\n <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload" class="s22"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="column" layout-align="space-between start" class="word-break-all mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="s20 mr-5">\n </md-icon>\n <span class="h2" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\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" class="s20"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\n </div>\n\n <div class="text h4 pt-8" ng-if="call.queue">\n <md-icon md-font-icon="icon-stackoverflow" class="s20"></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" class="s20"></md-icon>\n Extra: {{call.variables.extravar}}\n </div>\n </div>\n <div layout="row" layout-align="center end" class="mt-8">\n <md-button ng-if="call.disposedAt" type="submit" ng-click="vm.disposeCall($event, call)" class="send-button md-accent md-raised mr-0 mv-0">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n </div>\n <div flex="25" layout="row" layout-md="column" layout-sm="column" layout-align="end center" layout-align-md="center 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">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <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 privacy ng-cloak>\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\n 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); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" 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>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\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" privacy ng-cloak>\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" privacy ng-cloak>\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" privacy ng-cloak>\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); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" 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>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\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" privacy ng-cloak>\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\n 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); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" 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>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\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" privacy ng-cloak>\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); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" 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>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\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="">\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}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </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">\n {{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>\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\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" 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.lists.rows">#{{list.id}} - {{list.name}}\n </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]">\n </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]">\n </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">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </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 <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\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 <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\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="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </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()" ng-if="!vm.call.mandatoryDisposition">\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.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.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 <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\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 <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\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">\n {{ 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()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'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/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),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="{{\'DASHBOARDS.VOICE\' | translate}}">\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\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\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\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\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.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.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-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\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-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.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/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>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.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 <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\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/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\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.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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 md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.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-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\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-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.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\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 | orderBy:\'weight\'" 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>\n </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 layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\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\'">\n </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\'">\n </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\'">\n </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\'">\n </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\'">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </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\'">\n </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\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/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/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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 ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\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.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" 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 </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">{{\'DASHBOARDS.ID\' | translate}}</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="createdAt">{{\'DASHBOARDS.CREATEDAT\' | 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 translate="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" privacy ng-cloak>{{contact.firstName}}\n {{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(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" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\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">,\n </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="{{\'DASHBOARDS.VOICE\' | translate}}">\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="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\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="{{\'DASHBOARDS.CHAT\' | translate}}">\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="{{\'DASHBOARDS.MAIL\' | translate}}">\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="{{\'DASHBOARDS.SMS\' | translate}}">\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="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\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="{{\'DASHBOARDS.FAX\' | translate}}">\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-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" 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" ng-cloak>\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 translate="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 translate="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 privacy ng-cloak>{{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>\n </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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 translate="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 translate="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 privacy ng-cloak>{{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>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\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_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" 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_whatsapp.getColorByChannel(\'whatsapp\')">\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_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.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_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" 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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-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)">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-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)">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n \x3c!-- ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}" --\x3e\n <md-card class="tooltip-preview-text">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\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.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-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 </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">{{\'DASHBOARDS.ID\' | translate}}</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="createdAt">{{\'DASHBOARDS.CREATEDAT\' | 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 translate="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" privacy ng-cloak>\n {{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" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{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">,\n </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 <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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-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)" ng-disabled="!openchannelAccount.replyUri">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | 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.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),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" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\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" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\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 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">\n </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">\n </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" ng-if="vm.currentUser.downloadVoiceRecordings">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\n </md-button>\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>\n </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" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled 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 translate="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 privacy ng-cloak>{{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\' }}">\n </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>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-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)">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\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">{{\'VOICE.ID\' | translate}}</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 md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_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="10">\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 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">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</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="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</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 <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 privacy ng-cloak>{{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 privacy ng-cloak>{{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="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</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.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</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/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-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="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),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 }}\n </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\'">\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" 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\'">\n </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\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </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\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/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="CHAT.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="CHAT.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="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.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="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\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="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" 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="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/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-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 <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 <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 <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 <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\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 <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" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</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="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 <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-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" ng-keypress="vm.keyPress($event)" 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 <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 <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" ng-keypress="vm.keyPress($event)" 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 <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" ng-keypress="vm.keyPress($event)" 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 <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" ng-keypress="vm.keyPress($event)">\n </md-input-container>\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 <md-button ng-click="vm.removeAttachment(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 <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 <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 <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" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </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 }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\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 </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/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 <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-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">\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 <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\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 <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 </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/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 <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-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">\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 <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\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 <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 </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/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="WHATSAPP.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="WHATSAPP.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="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></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 ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.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="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\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="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" 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 <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\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" ng-init="vm.onInit()">\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()" ng-if="!vm.mandatoryDisposition">\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="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.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 <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></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 <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()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" 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)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" 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()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\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 </md-input-container>\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 <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">{{\n 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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <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" style="flex-grow: 1; align-self: stretch" 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">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></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 privacy ng-cloak>\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 privacy ng-cloak>\n </md-input-container>\n\n <md-input-container 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 privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container 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 privacy ng-cloak>\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}} -\n <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\'">\n </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\'">\n </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\'">\n </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-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</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\'">\n </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<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 <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 <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 <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\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-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</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 <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">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 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",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\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 </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" 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 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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 : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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.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 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.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 <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\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 <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\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 ng-if="vm.downloadPermissions.attachments" 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 ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </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.interactionTimelineOptions" 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 && vm.downloadPermissions.attachments">\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>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <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)">\n {{ 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]">\n [{{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)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </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" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </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">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </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">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </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" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{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" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{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\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 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 ||\n 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 </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 <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\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>\n </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>\n </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 && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </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 && vm.downloadPermissions.interactions" 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>\n </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 ng-if="vm.downloadPermissions.attachments">\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 && vm.downloadPermissions.attachments">\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>\n <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)">\n {{ 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 ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\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\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.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/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>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\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>'),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"> -\n {{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"></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\'">\n </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\'">\n </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\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" 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="DASHBOARDS.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 ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.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="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\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",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\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\', 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>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.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/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>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\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>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\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>'),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"></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" ng-init="vm.onInit()" class="page-layout simple right-sidenav" layout="row">\n \x3c!-- CENTER --\x3e\n <div class="center" flex ms-scroll>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs ng-if="vm.hasDashboardPermissions" 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-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" 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\n 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/dashboards/views/general/user/whatsapp/user.general.whatsapp.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-whatsapp" 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/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\n <div ng-messages="faxAccountForm[\'name\'].$error" ng-show="faxAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="faxAccountForm[\'localstationid\'].$error" ng-show="faxAccountForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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\n <div ng-messages="faxAccountForm[\'description\'].$error" ng-show="faxAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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="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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n <div ng-messages="generalForm[\'headerinfo\'].$error" ng-show="generalForm[\'headerinfo\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="generalForm[\'localstationid\'].$error" ng-show="generalForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n <div ng-messages="advancedForm[\'modem\'].$error" ng-show="advancedForm[\'modem\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.GATEWAY">gateway</label>\n <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n <div ng-messages="advancedForm[\'gateway\'].$error" ng-show="advancedForm[\'gateway\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FAXDETECT">faxdetect</label>\n <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n <div ng-messages="advancedForm[\'faxdetect\'].$error" ng-show="advancedForm[\'faxdetect\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.T38TIMEOUT">t38timeout</label>\n <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required ng-disabled="!vm.crudPermissions.canEdit">\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 <div class="faxAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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 actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="FAX.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="faxQueueForm[\'description\'].$error" ng-show="faxQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="FAX.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.vm.getFaxAccounts()" query="vm.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 translate="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" ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'FAX.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"FAX.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"FAX.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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 translate="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" ng-if="vm.crudPermissions.canEdit">\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="https://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\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 </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" 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\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 </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" 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\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 </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" value="LOCALIP" ng-required="true">\n\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" 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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'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.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$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.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($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/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" 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.DYNAMICS365ACCOUNTS">Dynamics365Accounts</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.selectedDynamics365Accounts.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.selectedDynamics365Accounts =[]">\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-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.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="INTEGRATIONS.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.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" 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.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($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 </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!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\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.dynamics365Accounts.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="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT 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 DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'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.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'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.dynamics365Configuration.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="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'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.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$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.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($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/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" 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-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\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="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" 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 <md-tab-body>\n <div class="dynamics365Account-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.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.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.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-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="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\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="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($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\n <div ng-messages="freshdeskAccountForm[\'name\'].$error" ng-show="freshdeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'username\'].$error" ng-show="freshdeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'remoteUri\'].$error" ng-show="freshdeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'apiKey\'].$error" ng-show="freshdeskAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshdeskAccountForm[\'serverUrl\'].$error" ng-show="freshdeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n\n <div ng-messages="freshdeskAccountForm[\'description\'].$error" ng-show="freshdeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$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.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($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/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'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.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'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.freshsalesConfiguration.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="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$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.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($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/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" 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-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\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="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" 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 <md-tab-body>\n <div class="freshsalesAccount-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.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-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="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\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="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($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/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" 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.FRESHSALESACCOUNTS">FreshsalesAccounts</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.selectedFreshsalesAccounts.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.selectedFreshsalesAccounts =[]">\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-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.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="INTEGRATIONS.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.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" 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.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($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 </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!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\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.freshsalesAccounts.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="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT 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 FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT 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\n <div ng-messages="salesforceAccountForm[\'name\'].$error" ng-show="salesforceAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.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\n <div ng-messages="salesforceAccountForm[\'username\'].$error" ng-show="salesforceAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'remoteUri\'].$error" ng-show="salesforceAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="salesforceAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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\n <div ng-messages="salesforceAccountForm[\'clientId\'].$error" ng-show="salesforceAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientSecret\'].$error" ng-show="salesforceAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'securityToken\'].$error" ng-show="salesforceAccountForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="salesforceAccountForm[\'serverUrl\'].$error" ng-show="salesforceAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n\n <div ng-messages="salesforceAccountForm[\'description\'].$error" ng-show="salesforceAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'securityToken\'].$error" ng-show="generalForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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">\n ADVANCED\n </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()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ 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()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'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.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'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 </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.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$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.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($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/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'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.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'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.servicenowConfiguration.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="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$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.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($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/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" 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-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\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="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" 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 <md-tab-body>\n <div class="servicenowAccount-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.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.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.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-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="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\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="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($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/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" 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.SERVICENOWACCOUNTS">ServicenowAccounts</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.selectedServicenowAccounts.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.selectedServicenowAccounts =[]">\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-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.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="INTEGRATIONS.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.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" 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.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($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 </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!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\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="email">{{ \'INTEGRATIONS.EMAIL\' | 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.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\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="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT 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 SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT 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\n <div ng-messages="sugarcrmAccountForm[\'name\'].$error" ng-show="sugarcrmAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'username\'].$error" ng-show="sugarcrmAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'remoteUri\'].$error" ng-show="sugarcrmAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="sugarcrmAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="sugarcrmAccountForm[\'serverUrl\'].$error" ng-show="sugarcrmAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n\n <div ng-messages="sugarcrmAccountForm[\'description\'].$error" ng-show="sugarcrmAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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\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 </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\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 </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\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 </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\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 </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" value="LOCALIP" ng-required="true">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="zendeskAccountForm[\'name\'].$error" ng-show="zendeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.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\n <div ng-messages="zendeskAccountForm[\'username\'].$error" ng-show="zendeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'remoteUri\'].$error" ng-show="zendeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required>\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'authType\'].$error" ng-show="zendeskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="zendeskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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\n <div ng-messages="zendeskAccountForm[\'token\'].$error" ng-show="zendeskAccountForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zendeskAccountForm[\'serverUrl\'].$error" ng-show="zendeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n\n <div ng-messages="zendeskAccountForm[\'description\'].$error" ng-show="zendeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'token\'].$error" ng-show="generalForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\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.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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">\n ADVANCED\n </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.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\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\'}]">\n {{ 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.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ 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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($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 </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 md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | 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="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="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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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-light" 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 </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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><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 <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <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 <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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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="font-size-12">\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">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </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>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\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 <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, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\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-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" 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>\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-light" 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="JSCRIPTY.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="mailAccountForm[\'name\'].$error" ng-show="mailAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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\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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" 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\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 </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" value="465" ng-required="true">\n\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\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 </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" value="465" ng-required="true">\n\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\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 </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\n <div ng-messages="mailAccountForm[\'description\'].$error" ng-show="mailAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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 <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type 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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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="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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.mailbox\'].$error" ng-show="imapForm[\'Imap.mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </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>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </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>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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 actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\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 ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="MAIL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="mailQueueForm[\'description\'].$error" ng-show="mailQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="MAIL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="MAIL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($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 </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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.vm.getMailAccounts()" query="vm.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 translate="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 && vm.mailAccounts[value].Imap.lastSync != \'\')">{{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 ng-if="vm.crudPermissions.canEdit">\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MAIL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MAIL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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\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 </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\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 </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\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 </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\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 </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" 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\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 </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\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 </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\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 </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\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" disabled>\n\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 </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="MARKETPLACE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" 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" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true">\n\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\n <div ng-messages="ivrCampaignForm[\'description\'].$error" ng-show="ivrCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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">\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="ivrCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry 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.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime 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 drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry 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.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime 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 abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry 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.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime 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 machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry 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.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime 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 agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry 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.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime 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 <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" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</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 ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\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="MOTIONDIALER.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" 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" 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"></md-slider>\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">\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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true">\n\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" value="3" ng-required="true">\n\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" value="3" ng-required="true">\n\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\n <div ng-messages="queueCampaignForm[\'description\'].$error" ng-show="queueCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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\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 </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">\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" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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"></md-slider>\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" ng-disabled="!vm.crudPermissions.canEdit">\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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="queueForm[\'dialQueueOptions\'].$error" ng-show="queueForm[\'dialQueueOptions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container 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" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit"><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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="queueCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry 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.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime 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 drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry 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.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime 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 abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry 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.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime 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 machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry 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.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime 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 agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry 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.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime 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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds 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.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div 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 ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\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" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</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 ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\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="MOTIONDIALER.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </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.getAbandonedCalls">\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 md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </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.assignTo(call,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-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\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.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" 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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MOTIONDIALER.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MOTIONDIALER.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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.getCampaigns()" query="vm.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 translate="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" ng-if="vm.crudPermissions.canEdit">\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 <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 </div>\n</md-toolbar>\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="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 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 privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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<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.getQueues()" query="vm.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 translate="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/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.queueCampaign.name }} 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 <md-dialog-content class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | 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.count > 0">\n <td md-cell colspan="12">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.dialMethod || 0 }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.Trunk ? queue.Trunk.name : \'--\' }}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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\n <div ng-messages="openchannelAccountForm[\'name\'].$error" ng-show="openchannelAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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\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 </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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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\n <div ng-messages="openchannelAccountForm[\'description\'].$error" ng-show="openchannelAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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/amazonlex/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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\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="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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" 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>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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/dialogflow/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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\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="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\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/dialogflowv2/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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey 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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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="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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 disabled>\n\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 </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </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>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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 actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="OPENCHANNEL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="openchannelQueueForm[\'description\'].$error" ng-show="openchannelQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="OPENCHANNEL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"OPENCHANNEL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"OPENCHANNEL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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/cloudProviders/cloudProviders.html",'<div id="cloudProviders" 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.AITOOLS">AiTools</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.selectedAiTools.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.selectedAiTools =[]">\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-cloudProviders-count">\n <span>{{vm.selectedAiTools.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="SETTINGS.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.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" 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.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\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="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\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="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER 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 CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey 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.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$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.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($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/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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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\n <div ng-messages="customizationForm[\'headerWhiteLabel\'].$error" ng-show="customizationForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <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\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 </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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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\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 </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\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 </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 ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon 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.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.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, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.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="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.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="{{faviconimage.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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$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" value="1000" ng-required="true" autofocus>\n\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 <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\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 <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\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" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\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 </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" value="5000">\n\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" value="1000">\n\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" value="5000">\n\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 <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\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">\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 <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording 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.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath 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 security 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.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\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.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit 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 no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email 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 no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name 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 no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number 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\n <div class="general-detail-form-container imapgeneralsettings 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.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso 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.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools 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.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.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="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount 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 \x3c!-- <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> --\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 \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 ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" 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 && vm.license.months != 36" 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 <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\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 | limitTo:3" 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 <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" 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\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 | limitTo:3" 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-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" 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" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</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\n <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\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>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-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-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="SETTINGS.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-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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\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 </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\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" 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\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container 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" value="465" ng-required="true">\n\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\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 </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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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 </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\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" 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\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 </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" value="465" ng-required="true">\n\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\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 </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\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'SMS.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"SMS.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"SMS.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | 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.count > 0">\n <td md-cell colspan="7">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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\n <div ng-messages="smsAccountForm[\'name\'].$error" ng-show="smsAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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" value="LOCALIP" ng-required="true">\n\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 <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 </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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" 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="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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\n <div ng-messages="smsAccountForm[\'phone\'].$error" ng-show="smsAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\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 </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\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 </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\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 </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" 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\' || vm.smsAccount.type == \'bandwidth\'" 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\n <div ng-messages="smsAccountForm[\'username\'].$error" ng-show="smsAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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\' || vm.smsAccount.type == \'csc\'" 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\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" 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\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description">\n\n <div ng-messages="smsAccountForm[\'description\'].$error" ng-show="smsAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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/amazonlex/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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\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="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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" 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>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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/dialogflow/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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\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="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\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/dialogflowv2/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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey 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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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="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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" 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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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) || vm.smsAccount.type == \'bandwidth\'" 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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 disabled>\n\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 </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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </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>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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 actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="SMS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="smsQueueForm[\'description\'].$error" ng-show="smsQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="SMS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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="STAFF.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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 md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="10">\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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone ">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="agentForm[\'fullname\'].$error" ng-show="agentForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newAgent">\n\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 </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\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 </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">\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\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" required>\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\n <div ng-messages="agentForm[\'internal\'].$error" ng-show="agentForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\n <div ng-messages="agentForm[\'description\'].$error" ng-show="agentForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.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" value="9888" ng-required="true">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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.oldPassword.$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\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 <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\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" ng-init="vm.onInit()">\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.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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>\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-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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) || (download_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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="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 disabled>\n\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 </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" disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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 disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container 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" multiple ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\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" required ng-disabled="!vm.crudPermissions.canEdit">\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity 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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port 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.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</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, vm.crudPermissions)" 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)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></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-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></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\n <div ng-messages="teamForm[\'name\'].$error" ng-show="teamForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.team.description">\n\n <div ng-messages="teamForm[\'description\'].$error" ng-show="teamForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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="STAFF.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="telephoneForm[\'fullname\'].$error" ng-show="telephoneForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newTelephone">\n\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 </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\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" required>\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\n <div ng-messages="telephoneForm[\'description\'].$error" ng-show="telephoneForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div ng-messages="telephoneForm[\'internal\'].$error" ng-show="telephoneForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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.oldPassword.$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\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 <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\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 </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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'fullname\'].$error" ng-show="accountForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'description\'].$error" ng-show="accountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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 disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\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" required ng-disabled="!vm.crudPermissions.canEdit">\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="STAFF.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$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.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($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/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" 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($event)">\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 <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" 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-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\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="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></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.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_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.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-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 class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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 <md-tab-body>\n <div class="userProfile-detail-form-container modules 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.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\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/userProfiles/userProfiles.html",'<div id="userProfiles" 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.USERPROFILES">UserProfiles</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.selectedUserProfiles.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.selectedUserProfiles =[]">\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-userProfiles-count">\n <span>{{vm.selectedUserProfiles.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="STAFF.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.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" 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.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\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 md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\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="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE 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 USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE 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" autofocus required 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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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\n <div ng-messages="userForm[\'fullname\'].$error" ng-show="userForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newUser">\n\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 </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\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" required>\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\n <div ng-messages="userForm[\'description\'].$error" ng-show="userForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" ng-disabled="!vm.newUser">\n\n <div ng-messages="userForm[\'internal\'].$error" ng-show="userForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/apikeymanager/apikeymanager.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.MANAGE_API_KEY\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <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.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\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.oldPassword.$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\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 <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\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/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 </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$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 <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" autofocus required disabled>\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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container 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 disabled>\n\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 </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" disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</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-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" 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-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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 disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</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-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" 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-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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/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="STAFF.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="userProfileId">{{ \'STAFF.USERPROFILE\' | 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 md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="11">\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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="cannedAnswerForm[\'key\'].$error" ng-show="cannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n <div 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 </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\n <div ng-messages="cannedAnswerForm[\'description\'].$error" ng-show="cannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\n <div ng-messages="customDashboardForm[\'description\'].$error" ng-show="customDashboardForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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" 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\n <div ng-messages="dashboarditemForm[\'title\'].$error" ng-show="dashboarditemForm[\'title\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n </div>\n <div 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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\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" value="https://" ng-required="true">\n\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 </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\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 </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" value="HH:mm:ss" ng-required="true">\n\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 </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" 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" 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" 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">\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">\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.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$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.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" value="10" ng-required="true">\n\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="[\'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" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ 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" value="20" ng-required="true">\n\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="customDashboard-image" hide-xs>\n <img ng-src="assets/images/business/customDashboards.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.customDashboard.id}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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()" ng-if="vm_cd.crudPermissions.canEdit" 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/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon 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="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</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]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" 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.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-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 <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</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.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-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 <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 \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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\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="TOOLS.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 <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.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \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.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\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 md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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.dispositions.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="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 <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>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description">\n\n <div ng-messages="intervalForm[\'description\'].$error" ng-show="intervalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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\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}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.INTERVALS">INTERVALS</span>\n </md-tab-label>\n <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\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">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="pauseForm[\'name\'].$error" ng-show="pauseForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.pause.description">\n\n <div ng-messages="pauseForm[\'description\'].$error" ng-show="pauseForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="scheduleForm[\'name\'].$error" ng-show="scheduleForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$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" 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" value="1" ng-required="true">\n\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" 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" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ 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\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 </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\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 </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\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 </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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon 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="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</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]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : 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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="soundForm[\'name\'].$error" ng-show="soundForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sound.description">\n\n <div ng-messages="soundForm[\'description\'].$error" ng-show="soundForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="tagForm[\'name\'].$error" ng-show="tagForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.tag.description">\n\n <div ng-messages="tagForm[\'description\'].$error" ng-show="tagForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="templateForm[\'name\'].$error" ng-show="templateForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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\n <div ng-messages="templateForm[\'description\'].$error" ng-show="templateForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required md-autofocus>\n <div ng-messages="triggerForm[\'name\'].$error" ng-show="triggerForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | 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>\n </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 </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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\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>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/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.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | 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" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ 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" ng-change="vm.onTypeSelection()" 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" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ 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.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\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.SEARCH_FIELDS_REQUIRED">Search fields 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">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\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 == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\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.AUTOCREATE_FIELD_REQUIRED">Autocreate 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.IGNOREDIALERCONTACTID">Ignore dialer contact Id</label>\n <md-select name="data5" ng-model="vm.action.data5" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.IGNOREDIALERCONTACTID_REQUIRED">Ignore dialer contact Id 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" required>\n <md-option ng-value="\'GET\'">GET</md-option>\n <md-option ng-value="\'POST\'">POST</md-option>\n <md-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</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.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" 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 == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></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.SCRIPT_REQUIRED">Script field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n <label translate="TOOLS.INTEGRATION">Integration</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</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" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ 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 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n 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" ng-change="vm.onTypeSelection()" 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 </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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.ARGUMENTS">Arguments</label>\n <input type="text" name="data3" ng-model="vm.action.data3">\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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 </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" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\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" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | 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 </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 </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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($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.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\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.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/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.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\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" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</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" 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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($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.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\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.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/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.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.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" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</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" 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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 \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 <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- / HEADER --\x3e\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="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </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" ng-disabled="!vm.crudPermissions.canEdit">\n <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" ng-disabled="!vm.crudPermissions.canEdit">\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="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-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 <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 \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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\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="TOOLS.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 <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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \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 \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 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 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 ">\n {{ \'TOOLS.\' + trigger.channel | 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 ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 <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 \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" 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\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 </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\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="trunkForm[\'host\'].$error" ng-show="trunkForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="trunkForm[\'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\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="trunkForm[\'defaultuser\'].$error" ng-show="trunkForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="trunkForm[\'registry\'].$error" ng-show="trunkForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description">\n\n <div ng-messages="trunkForm[\'description\'].$error" ng-show="trunkForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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 </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 </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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="generalForm[\'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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="generalForm[\'defaultuser\'].$error" ng-show="generalForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="advancedForm[\'registry\'].$error" ng-show="advancedForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n <div ng-messages="advancedForm[\'fromdomain\'].$error" ng-show="advancedForm[\'fromdomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMUSER">fromuser</label>\n <input type="text" name="fromuser" ng-model="vm.trunk.fromuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n <div ng-messages="advancedForm[\'fromuser\'].$error" ng-show="advancedForm[\'fromuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n <div ng-messages="advancedForm[\'outboundproxy\'].$error" ng-show="advancedForm[\'outboundproxy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n <md-select name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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 <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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="variableForm[\'name\'].$error" ng-show="variableForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.variable.description">\n\n <div ng-messages="variableForm[\'description\'].$error" ng-show="variableForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.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="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</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-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\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/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" 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-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</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="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.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.selectedScreenRecordings =[]">\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="VIDEO.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-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.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="VIDEO.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.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.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.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.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!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\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">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING 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/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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 ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$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/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit 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">{{ \'TOOLS.EDIT_INTERVAL\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\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" mdp-disabled="!vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.crudPermissions.canEdit" 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 \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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</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 \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" ng-disabled="!vm.crudPermissions.canEdit">\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 <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" ng-disabled="!vm.crudPermissions.canEdit">\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 \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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" 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 </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'app\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ARGUMENTS">Arguments</label>\n <input type="text" name="appdata" ng-model="vm.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'appdata\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'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.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'extension\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PRIORITY">Priority</label>\n <input type="text" name="priority" ng-model="vm.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['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>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'callerID\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="URL" ng-model="vm.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'URL\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n <md-select name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\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.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'agi\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.MACRO">Macro</label>\n <input type="text" name="macro" ng-model="vm.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'macro\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.GOSUB">GoSub</label>\n <input type="text" name="gosub" ng-model="vm.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'gosub\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.RULE">Rule</label>\n <input type="text" name="rule" ng-model="vm.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'rule\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.POSITION">Position</label>\n <input type="number" name="position" ng-model="vm.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'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\n 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.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$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.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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>'),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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : 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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="chanSpyForm[\'name\'].$error" ng-show="chanSpyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" ng-required="true">\n\n <div ng-messages="chanSpyForm[\'prefix\'].$error" ng-show="chanSpyForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" multiple required>\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" 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\n <div ng-messages="chanSpyForm[\'description\'].$error" ng-show="chanSpyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($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 </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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="contextForm[\'name\'].$error" ng-show="contextForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.context.description">\n\n <div ng-messages="contextForm[\'description\'].$error" ng-show="contextForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 ng-init="vm.initialize()" class="inbound-route-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.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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 </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" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description">\n <div ng-messages="inboundrouteForm[\'description\'].$error" ng-show="inboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\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-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" 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 <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\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 \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container 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 ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\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 class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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 </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <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>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-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.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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 </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" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description">\n <div ng-messages="internalrouteForm[\'description\'].$error" ng-show="internalrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\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-internal-routes-button md-icon-button" aria-label="Go to internal routes" 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 <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\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 \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container 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 ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\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 class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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 </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <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>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\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\n <div ng-messages="musiconholdForm[\'name\'].$error" ng-show="musiconholdForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'mode\'].$error" ng-show="musiconholdForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\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\n <div ng-messages="musiconholdForm[\'application\'].$error" ng-show="musiconholdForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'sort\'].$error" ng-show="musiconholdForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required disabled>\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'application\'].$error" ng-show="generalForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </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>\n {{mohSound.id}}\n </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>\n {{ mohSound.createdAt | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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 ng-init="vm.initialize()" class="outbound-route-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.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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 </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" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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" ng-change="vm.getRouting()" 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\n 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description">\n <div ng-messages="outboundrouteForm[\'description\'].$error" ng-show="outboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\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-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" 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 <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\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 \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container 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 ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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" ng-change="vm.onActionsTabSelection()" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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\n 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\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 class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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 </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <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>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\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.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </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.getAbandonedCalls">\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 md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </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.assignTo(call,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-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\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.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" 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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"VOICE.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"VOICE.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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>\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.ALIAS\' | 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="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 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 privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</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"></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 </div>\n</md-toolbar>\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.ALIAS\' | 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="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 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.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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<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.getQueues()" query="vm.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 translate="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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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.getTelephones()" query="vm.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.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 translate="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.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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 translate="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" ng-if="vm.crudPermissions.canEdit">\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\n <div ng-messages="voicemailForm[\'fullname\'].$error" ng-show="voicemailForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'">\n\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" required>\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\n <div ng-messages="voicemailForm[\'mailbox\'].$error" ng-show="voicemailForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fullname\'].$error" ng-show="generalForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required>\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" disabled>\n\n <div ng-messages="generalForm[\'mailbox\'].$error" ng-show="generalForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n <md-select name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'tz\'].$error" ng-show="advancedForm[\'tz\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailbody\'].$error" ng-show="advancedForm[\'emailbody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailsubject\'].$error" ng-show="advancedForm[\'emailsubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </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>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </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>\n {{ message.stamp | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ 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\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($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 </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 ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voicePrefix, $event )" translate="VOICE.TEAMADD_VOICEPREFIX">\n teamadd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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\n <div ng-messages="voiceQueueForm[\'description\'].$error" ng-show="voiceQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'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" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="announce.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="periodic_announce.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_reporthold.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_youarenext.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_thereare.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_callswaiting.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_holdtime.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_minutes.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_minute.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_seconds.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_thankyou.canSelect === false">{{ 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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel 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 <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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 ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/edit/view.html",'<div id="voice-voiceRecording" 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-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\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="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$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.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings 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.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'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.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\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="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[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 <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition 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 ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript 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.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\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 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\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="20">\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">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\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="20">\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">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\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">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\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">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/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 <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\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="VOICE.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.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($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 </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>{{ \'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 md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | 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="16">\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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : 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" model="\'voiceRecording\'"></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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/main/apps/whatsapp/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="WHATSAPP.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" 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="\'\'">{{ \'WHATSAPP.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'WHATSAPP.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'WHATSAPP.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'WHATSAPP.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'WHATSAPP.IDLE\' | translate }}</md-option>\n </md-select>\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\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="5">{{ \'WHATSAPP.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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'WHATSAPP.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'WHATSAPP.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'WHATSAPP.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'WHATSAPP.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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"WHATSAPP.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=\"WHATSAPP.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"WHATSAPP.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"WHATSAPP.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"WHATSAPP.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=\"WHATSAPP.DEFAULT_PAUSE\">Default\n 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}}\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.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"WHATSAPP.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: '{{'WHATSAPP.PAGE' | translate}}:', rowsPerPage: '{{'WHATSAPP.ROWSPERPAGE' | translate}}:', of: '{{'WHATSAPP.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/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.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: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/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="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.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/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\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="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\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="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/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\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" 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-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\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="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.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.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></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.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.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.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twillo\'" class="md-block">\n <label translate="WHATSAPP.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.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/status?token=\' + vm.whatsappAccount.token + (vm.whatsappAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-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="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-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="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-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="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.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_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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 \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\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.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <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="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\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.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.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.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" 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="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.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.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedWhatsappAccountApps">\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.whatsappAccountApps.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.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($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.editWhatsappAccountApp($event, $index)"><span class="text-truncate actionAppData">{{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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" 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="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.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.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </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.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-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.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.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.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.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.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" 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/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</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="WHATSAPP.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.selectedWhatsappAccounts.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.selectedWhatsappAccounts =[]">\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="WHATSAPP.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-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.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.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.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.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT 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 WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.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="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" 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-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\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="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.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.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></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.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></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.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</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="WHATSAPP.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.selectedWhatsappQueues.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.selectedWhatsappQueues =[]">\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="WHATSAPP.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-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.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.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.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.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE 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 WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE 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" aria-label="Chat Tab Search">\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">\n {{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">\n {{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.oldPassword.$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 ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</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() |\n 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" sessions="vm.webRTCSessions" 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">\n </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"></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"></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\n 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">\n {{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" privacy=\'vm.currentUser.privacyEnabled && (key === "firstName" || key === "lastName" || key === "phone" || key === "mobile" || key === "email" || key === "fax") \' ng-cloak>\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","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){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"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){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"}),n.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,n){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"}),n.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.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){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"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.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})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},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,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.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,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,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,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions: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,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},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,n){return n.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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions: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,n){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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions: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,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},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","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.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","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.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,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.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(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},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",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",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",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.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("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",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"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,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,n,t,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,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions: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,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},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,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions: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,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},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,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],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,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.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:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions: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,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions: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,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions: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,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions: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,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions: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,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions: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,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions: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,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.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,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions: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,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.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,n,t,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,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions: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,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},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,n){return n.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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions: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,n){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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},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","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},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,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],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,n,t,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions: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,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.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,n,t,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,n){return n.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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions: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,n){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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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","Auth",function(e,n){return n.hasRole("admin")?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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions: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,n){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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],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,n,t,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,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions: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,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},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,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions: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,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.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,n,t,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,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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:1400,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,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,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,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.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:1400,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:1400,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})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,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,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions: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,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},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,n){return n.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,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions: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,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,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","Auth",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions: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,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},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,n){return n.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,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions: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,n){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,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions: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,n){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,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.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,n,t,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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions: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,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions: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,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},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","Auth",function(e,n){return n.hasRole("admin")?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,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",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,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions: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,n){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,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.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","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions: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,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["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.inboundRoutes",{url:"/inboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.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","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions: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,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).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"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},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,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],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,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},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,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],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,n,t,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,n){return n.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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions: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,n){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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},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","Auth",function(e,n){return n.hasRole("admin")?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}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",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})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions: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,n){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:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions: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,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},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","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.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.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",controller:"AgentsWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",role:"agent",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["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.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){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"}),n.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){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,i,o,n,s,r,l){var d;return{getToken:e,getCurrentUser:function(){return d},getPermissions:h,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return t(e)})},hasModulePermissions:function(i){return o(function(a,n){g()?a(!0):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};g()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:d.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!d&&d.role===e},hasPermission:t,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:d.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return f().then(function(){_.includes(d.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!g())return f().then(function(){a.forEach(function(e){_.includes(d.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:p,isAdmin:g,isLoggedIn:function(){return!!e()},isTelephone:function(){return"telephone"===d.role},isUser:v,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return i.put("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(d=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),b("LOCAL_LOGIN")}).then(function(){if(p()&&1===d.showWebBar&&d.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return p()&&0!==d.showWebBar?c(e):g()||v()?m(!0):void 0}).then(function(e){d=_.assign(d,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(u(),e()):o.resolve().then(function(){return p()&&0!==d.showWebBar?o(function(e,n){r.user.logout({id:d.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):g()||v()?m(!1):void 0}).then(function(){u(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return g()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:c,reloadPermissions:f,removeCookies:u,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?h(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(d=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){d=_.merge(d,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return b("SSO_LOGIN"),"/api/auth/"+e}};function e(){return i.get("motion.token")}function c(e){return o(function(n,t){r.user.login({id:d.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function m(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:d.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(){i.remove("motion.token"),d&&(n.localStorage.removeItem("motion.user:"+d.id),n.localStorage.removeItem("motion.authenticationtype"),d=null)}function p(){return"agent"===d.role}function g(){return"admin"===d.role}function v(){return"user"===d.role}function t(e){return!!d&&_.includes(d.permissions,e)}function h(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function f(){return o(function(n,t){h(d.userProfileId).then(function(e){d.permissions=e,n()}).catch(function(e){t(e)})})}function b(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.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,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.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(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),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,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),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(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$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")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$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,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={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){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,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(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[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:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, 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 n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.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,n,t,a){var i=a[0],s=a[1];s.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,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.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,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=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}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.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(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}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,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).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"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,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(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],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 n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.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 n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).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",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(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,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.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")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){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){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.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,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(u,t,p,e,a,i,n,g,s,v,h,f,b,o,A){var E=this,r=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],l=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function d(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){new Promise(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:g.instant("TOOLBAR.WARNING"),msg:g.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){l.webrtc=_.pick(E.conf,r),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(l))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function c(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",u.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function m(n){return h.user.getVoicePrefixes({id:E.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(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function x(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function N(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function D(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function P(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(l.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:p(function(){E.showDialpad=!1})}}),E.$onInit=function(){d(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];Promise.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();if(c.voicePause&&c.phoneBarDnd||E.originateInProgress)r=!1;else if(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase()){var m=0==d?500:1e3*d;console.debug("auto answer enabled after:"+m+" ms"),p(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},m)}}r?(o.call_id=e.request.call_id,n&&P(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&P(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),p(function(){u.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),o.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),o.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),o.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?D(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),o.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(D(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),o.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=D(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),o.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=D(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),o.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return m(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){c()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);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 m(e)}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:N(n,"requestSucceeded","top right",3e3),requestFailed:N(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.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"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?u.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):c():c()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),c())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){x()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=x,u.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,d(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):d(!1)))})}),u.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),u.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),u.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return m(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:N(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:N(E.sessions[t],"requestFailed","top right",3e3)}})})}),u.$on("$destroy",function(){console.debug("$destroy event fired"),o.removeAllListeners("webbar:originate"),o.removeAllListeners("webbar:hangup"),o.removeAllListeners("webbar:answer"),o.removeAllListeners("webbar:hold"),o.removeAllListeners("webbar:unhold"),o.removeAllListeners("webbar:transfer"),o.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.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,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.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");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n){var t=this;function a(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=a(n,"audiooutput","ringingId"),s.speakerId=a(n,"audiooutput","speakerId"),s.microphoneId=a(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,t.conf=angular.copy(s),t.devices=n,t.saveSettings=function(){e.hide(t.conf)},t.closeDialog=function(){e.hide()},t.isCompatibleBrowser=function(){return"chrome"===t.conf.browserName.toLowerCase()||"opera"===t.conf.browserName.toLowerCase()||"safari"===t.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),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,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={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){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,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=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[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 s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(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 n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=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 n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){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,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),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,n){angular.isUndefined(e)||angular.equals(e,n)||(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,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(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,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.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(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].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,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,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 o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){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,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$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,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).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,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.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,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.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(n()){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,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),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 n=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 t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,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 n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),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[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.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?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.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"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(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"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.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,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.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,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return Promise.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n)return n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)});c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.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("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.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===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else 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,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" 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,n){return-1<n.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"}],n=[{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 t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,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,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.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"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){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(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={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 n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).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 t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={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]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),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(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).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(n,t,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 t.error('You must have at least one theme named "default"'):(t.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 n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.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(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.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")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("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,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(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"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)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"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{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 n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={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:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.progresslogin=!1,r.googleSsoEnabled=!1,r.login=function(){return r.progresslogin=!0,r.message="",s.login(r.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){r.message=e.data?e.data.message:e.message}).finally(function(){r.progresslogin=!1})},r.loginOauth=function(e){r.message="",t.location.href=s.loginSSO(e)},r.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),r.progresslogin=!0,e.put("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){r.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}r.googleSsoEnabled=o.googleSsoEnabled},r.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{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:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,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,n){r.currentNode=n.node}},r.copyReport=function(){var t;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){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.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,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.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()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.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(n){var a={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",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",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(a,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){return n[a[e]].describe().$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.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,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){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:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=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(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.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(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(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,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.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(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.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(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){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:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.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),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.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){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.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 A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(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(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,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(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){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[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(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,n,t,a,i,s,o){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(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={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"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],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"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],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:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,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:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,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("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (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:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).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[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).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)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.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 n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.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){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.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(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){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){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.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(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.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,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:v.rows||[]}})},I.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.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){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.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,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.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,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,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,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).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","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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,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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=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(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,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"},{type:"upload",name:"Upload",icon:"icon-upload"}],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 n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+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 n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,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 n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+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 n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).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)})},i.card_type="online",i.email_accounts=[]}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.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$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.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.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.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"chat",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsChatRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("chat_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userChatQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userChatQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.chatPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.chatPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("chat_queue:save"),o.removeAllListeners("userChatQueue:remove"),o.removeAllListeners("userChatQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.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},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.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(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.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:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.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:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.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:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.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){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,c.ListId=c.contact.ListId||void 0):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=m,c.getCustomFields=function(e){{if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}},c.getDateFromString=function(e){return null===e?void 0:new Date(e)}}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.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"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.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","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.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()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});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,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.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")})},S.editHopper=function(e,n){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:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){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:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.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=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}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(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),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,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.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,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.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"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.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"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.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";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),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";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.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){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",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":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},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 n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},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 n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.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(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose"+o+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,i,s,o,e,t,a,r,l,d,c,m){var u=this;function p(){var e=u.selectedDisposition?u.selectedDisposition.name.toLowerCase():void 0;return{id:u.call.uniqueid,disposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,secondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,thirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,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}}function g(e){n.hide([e,u.autoClose])}u.isReschedule=!1,u.recallme=!1,u.queueCampaign=void 0,u.queueCampaigns={count:0,rows:[]},u.dispositions=_.orderBy(_.concat([],e.rows,t.rows),["name"],["asc"]),u.contact=r,u.call=a,u.note=u.call.note||void 0,u.dialerCall=!1,u.hasBlackLists=!1,u.availableCalls=c,u.autoClose=m,u.hopper={minDate:new Date,dateTime:new Date},u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]?(u.dialerCall=!0,o.voiceQueue.getBlackLists({id:u.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(u.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):o.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,dialActive",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){u.queueCampaigns=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),u.onDispositionChange=function(e){switch(e){case"first":u.selectedDisposition=u.firstLevelDisposition,u.anySecondLevelDisposition=_.some(u.dispositions,["ParentId",u.firstLevelDisposition.id]),u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.anyThirdLevelDisposition=!1;break;case"second":u.selectedDisposition=u.secondLevelDisposition,u.anyThirdLevelDisposition=_.some(u.dispositions,["ParentId",u.secondLevelDisposition.id]);break;case"third":u.selectedDisposition=u.thirdLevelDisposition}},u.clearDispositionSelection=function(e){"second"===e?(u.secondLevelDisposition=void 0,u.thirdLevelDisposition=void 0,u.selectedDisposition=u.firstLevelDisposition):"third"===e&&(u.thirdLevelDisposition=void 0,u.selectedDisposition=u.secondLevelDisposition)},u.saveDisposition=function(e){u.selectedDisposition=_.isNil(e)?u.selectedDisposition:{name:e},e&&(u.firstLevelDisposition=u.selectedDisposition);u.call.note=u.note,o.voiceCallReport.update({id:u.call.uniqueid,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null,note:u.note,UserId:l.getCurrentUser().id,ContactId:u.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:u.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:u.firstLevelDisposition?u.firstLevelDisposition.name:null,userSecondDisposition:u.secondLevelDisposition?u.secondLevelDisposition.name:null,userThirdDisposition:u.thirdLevelDisposition?u.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.dialerCall&&(o.cmHopperFinal.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(p()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(u.selectedDisposition))g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"");else switch(u.selectedDisposition.name.toLowerCase()){case"blacklist":u.call&&u.call.variables&&u.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(u.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.NOTAVAILABLE")+" "+u.selectedDisposition}),u.selectedDisposition=void 0}).then(function(e){e&&g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}(u.call.variables["xmd-voicequeueid"]);break;case"reschedule":u.isReschedule=!0,u.recallme=!1;break;case"recallme":u.isReschedule=!0,u.recallme=!0;break;default:g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}},u.closeDialog=function(){n.cancel()},u.saveReschedule=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:u.recallme?l.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:u.dialerCall?Number(u.call["xmd-voicequeueid"]):u.queueCampaign?u.queueCampaign.id:null,scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:u.recallme,OwnerId:l.getCurrentUser().id}).$promise.then(function(){u.dialerCall&&o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:u.recallme}).$promise.catch(function(e){console.log(e)})}).then(function(){s.success({title:d.instant("DASHBOARDS.INFO"),msg:d.instant("DASHBOARDS.CALL_DISPOSED")+" "+(u.recallme?d.instant("DASHBOARDS.RECALLME"):d.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")}).finally(function(){u.disable=!1,g(u.selectedDisposition?u.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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,o.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(){o.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(){s.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,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.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},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$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"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.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"),o.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,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,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].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=o.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),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.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,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(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,t,n,a,i,s,o,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,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),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),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),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),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),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),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),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),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.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"whatsapp":return"lime-A700-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.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),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),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.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,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),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,t,n,a,i,s,o,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,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].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=o.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),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.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,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(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(e,t,n,a,i,s,o,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.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=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"whatsapp":return"lime-A700-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.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.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},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.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:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get().$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({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"),s.tag.get().$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.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},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.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:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.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,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.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:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.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");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.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){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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 c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.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},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.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:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get().$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get().$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeWhatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeMail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).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(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeFax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.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 n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeSms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeWhatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeChat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/composeOpenchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.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(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.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}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].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}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.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()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),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()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.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"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).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,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" 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("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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(s.to)||_.isEmpty(s.to)?[]:s.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?(s.draft=void 0,t.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,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.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 n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+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 n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.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(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.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 }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.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:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.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(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(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 S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},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,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" 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(e,n,t,a,i,s,o,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(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.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:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" 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("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){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 n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){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(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.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(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.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 n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(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:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({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)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.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,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=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(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].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(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$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",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.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},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.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,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&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,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(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.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}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.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=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(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"fax",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsFaxRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("fax_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userFaxQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userFaxQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.faxPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.faxPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("fax_queue:save"),o.removeAllListeners("userFaxQueue:remove"),o.removeAllListeners("userFaxQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.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,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.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){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.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){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.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){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.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(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.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(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=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(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=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(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=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(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.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,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.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","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,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,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=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(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.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,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f["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"),"")}),f["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"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.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"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"mail",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMailRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("mail_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userMailQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userMailQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.mailPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.mailPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("mail_queue:save"),o.removeAllListeners("userMailQueue:remove"),o.removeAllListeners("userMailQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.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,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.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"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.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){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.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){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=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(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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")})},f.restartplugin=function(e,n){var t=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(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=2,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!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.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.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,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency: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},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).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","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.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){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=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(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.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"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.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(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.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 n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.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","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.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,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.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=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.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,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.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(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.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(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.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(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.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,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).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","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.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){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=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(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.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"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.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(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.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 n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.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","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.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,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.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=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.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,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.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,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.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(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.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(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.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,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.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"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"outbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){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:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.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","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},m.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(_.merge(n,_.pick(e,u)),_.isNil(e.startPredictive)&&(n.startPredictive=void 0))}),o.on("userVoiceQueueRt:save",function(e){var n=_.find(m.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueueRt:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.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,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{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:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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:"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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=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(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"openchannel",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsOpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("openchannel_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userOpenchannelQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userOpenchannelQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.openchannelPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.openchannelPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("openchannel_queue:save"),o.removeAllListeners("userOpenchannelQueue:remove"),o.removeAllListeners("userOpenchannelQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.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,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" 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:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.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.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.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.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.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}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.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","Auth"],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 n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.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,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.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"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.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,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,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)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[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){n.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,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.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,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.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.network.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Network properly saved!",msg:p.network.name?p.network.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.network.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=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(n).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,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.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(),m.success({title:_.startCase("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 n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.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,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.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","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.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,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},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,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.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");t.show(n).then(function(){t.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,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"sms",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsSmsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("sms_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userSmsQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userSmsQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.smsPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.smsPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("sms_queue:save"),o.removeAllListeners("userSmsQueue:remove"),o.removeAllListeners("userSmsQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.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","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];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=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]: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:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=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(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.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:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.agents=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="agents",f.listOrder="",f.listOrderAsc=null,f.selectedAgents=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings",role:"agent",sort:"-updatedAt",limit:10,page:1},f.arrayshowWebBar=_.keyBy([{option:"Phonebar",value:"0"},{option:"External",value:"1"},{option:"WebRTC",value:"2"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.editstate=function(e,n){t.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:f.agents?f.agents.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getAgents=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Agents",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditAgent=function(e,n){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:f.agents.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteAgent=y,f.exportSelectedAgents=function(){var e=angular.copy(f.selectedAgents);return f.selectedAgents=[],e},f.deleteSelectedAgents=function(e){var n=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+f.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedAgents.forEach(function(e){y(e)}),f.selectedAgents=[]})},f.deselectAgents=function(){f.selectedAgents=[]},f.selectAllAgents=function(){f.selectedAgents=f.agents.rows};var b=!0,A=1;function E(e){f.agents=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.agents.rows,{id:e.id}),f.agents.count-=1,f.agents.rows.length||f.getAgents(),p.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","agents","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:"bull"===c.channel?"voice":c.channel,type:c.direction,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:c.direction,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.QUEUEADD_AGENT_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),labelSelected:s.instant("STAFF.SELECTED_QUEUES_"+c.channel.toUpperCase()+"_"+c.direction.toUpperCase()),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.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"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.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.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,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 n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!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(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},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(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.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:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.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","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={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"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).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","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!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.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",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||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",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||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}()}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).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 n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.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.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.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!":""}),t.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 n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.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,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.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"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function c(e){switch(e){case"sound":if(!l.application.appdata)return;return[{key:"save_name",value:l.application.appdata.split("/").pop()}];case"squareProject":if(!l.application.project)return;return[{key:"name",value:l.application.project.split(",")[1]}];case"tag":if(!l.application.tag)return;return[{key:"name",value:l.application.tag}];case"trunk":if(!l.application.trunk)return;return[{key:"name",value:l.application.trunk}];case"user":if(!l.application.user&&!l.application.users)return;return l.application.user?[{key:"name",value:l.application.user.split("/")[1]}]:_.map(l.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!l.application.name)return;return[{key:"name",value:l.application.name}];case"voiceContext":if(!l.application.context)return;return[{key:"name",value:l.application.context}];case"voiceMail":if(!l.application.voiceMail)return;return[{key:"mailbox",value:l.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!l.application.queue)return;return[{key:"name",value:l.application.queue}]}}function m(){s.getResourcesByRole(l.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},c("trunk")).then(function(e){l.trunks=e}).catch(function(){i.error({title:$translate.instant("TOOLS.TRUNKS"),msg:$translate.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function u(){s.getResourcesByRole(l.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},c("sound")).then(function(e){l.sounds=e}).catch(function(){i.error({title:$translate.instant("TOOLS.SOUNDS"),msg:$translate.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function p(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=c("user"),t=[s.getResourcesByRole(l.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),s.getResourcesByRole(l.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();l.users={rows:n,count:n.length}}).catch(function(){i.error({title:$translate.instant("STAFF.USERS"),msg:$translate.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function g(){l.application.appdata&&e.hide(l.application),e.hide()}l.currentUser=o.getCurrentUser(),l.application=angular.copy(n),l.crudPermissions=r,l.errors=[],l.init=function(){l.application.appdata&&function(){var e=[];switch(l.application.appType){case"agi":l.application.project=l.application.appdata;break;case"dial":e=l.application.appdata.split(","),l.application.tech=d(e[0]),l.application.timeout=d(e[1]),l.application.options=d(e[2]),l.application.url=d(e[3]);break;case"externalDial":e=l.application.appdata.split(","),l.application.trunk=e[0].split("/")[1],l.application.phone=e[0].split("/")[2],l.application.timeout=d(e[1]),l.application.options=d(e[2]),l.application.url=d(e[3]);break;case"goTo":e=l.application.appdata.split(","),l.application.context=d(e[0]),l.application.extension=d(e[1]),l.application.priority=d(e[2]);break;case"internalDial":e=l.application.appdata.split(","),l.application.user=d(e[0]),l.application.timeout=d(e[1]),l.application.options=d(e[2]),l.application.url=d(e[3]);break;case"outboundDial":e=l.application.appdata.split(","),l.application.trunk=e[0].split("/")[1],l.application.phone=e[0].split("/")[2],l.application.timeout=d(e[1]),l.application.options=d(e[2]),l.application.url=d(e[3]),l.application.prefix=l.application.phone?l.application.phone.split("$")[0]:void 0,l.application.callerId=l.application.callerID?"CALLERID(all)="+l.application.callerID:void 0;break;case"playback":e=l.application.appdata.split(","),l.application.appdata=d(e[0]),l.application.options=d(e[1]);break;case"queue":e=l.application.appdata.split(","),l.application.queue=d(e[0]),l.application.options=d(e[1]),l.application.URL=d(e[2]),l.application.sound=d(e[3]),l.application.timeout=d(e[4]),l.application.agi=d(e[5]),l.application.macro=d(e[6]),l.application.gosub=d(e[7]),l.application.rule=d(e[8]),l.application.position=d(e[9]);break;case"ringGroup":e=l.application.appdata.split(","),l.application.users=e[0].split("&"),l.application.timeout=d(e[1]),l.application.options=d(e[2]),l.application.url=d(e[3]);break;case"set":e=l.application.appdata.split("="),l.application.name=e[0],l.application.value=e[1];break;case"voicemail":e=l.application.appdata.split(","),l.application.voiceMail=d(e[0]),l.application.options=d(e[1])}}();switch(l.application.appType){case"agi":s.getResourcesByRole(l.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},c("squareProject")).then(function(e){l.projects=e}).catch(function(){i.error({title:$translate.instant("CALLYSQUARE.CALLYSQUARE")+" "+$translate.instant("CALLYSQUARE.PROJECTS"),msg:$translate.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":m();break;case"goTo":s.getResourcesByRole(l.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},c("voiceContext")).then(function(e){l.contexts=e}).catch(function(){i.error({title:$translate.instant("VOICE.CONTEXTS"),msg:$translate.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":p();break;case"outboundDial":s.getResourcesByRole(l.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},c("tag")).then(function(e){l.tags=e}).catch(function(){i.error({title:$translate.instant("TOOLS.TAGS"),msg:$translate.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),m();break;case"playback":u();break;case"queue":u(),s.getResourcesByRole(l.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},c("voiceQueue")).then(function(e){l.queues=e}).catch(function(){i.error({title:$translate.instant("VOICE.VOICEQUEUES"),msg:$translate.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":p();break;case"set":s.getResourcesByRole(l.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},c("variable")).then(function(e){l.variables=e}).catch(function(){i.error({title:$translate.instant("TOOLS.VARIABLES"),msg:$translate.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":s.getResourcesByRole(l.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},c("voiceMail")).then(function(e){l.voiceMails=e}).catch(function(){i.error({title:$translate.instant("VOICE.VOICEMAILS"),msg:$translate.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},l.saveRoutingApp=function(){l.errors=[],function(){var e=[];switch(l.application.appType){case"agi":l.application.appdata=l.application.project;break;case"dial":e[0]=l.application.tech,e[1]=l.application.timeout,e[2]=l.application.options,e[3]=l.application.url,l.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",l.application.trunk,l.application.phone].join("/"),e[1]=l.application.timeout,e[2]=l.application.options,e[3]=l.application.url,l.application.appdata=e.join(",");break;case"goTo":e[0]=l.application.context,e[1]=l.application.extension,e[2]=l.application.priority,l.application.appdata=e.join(",");break;case"internalDial":e[0]=l.application.user,e[1]=l.application.timeout,e[2]=l.application.options,e[3]=l.application.url,l.application.appdata=e.join(",");break;case"outboundDial":l.application.phone=t.cutdigits?(l.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(l.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?l.application.options=l.application.options.replace("U(xcally-mixmonitor-context)",""):l.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",l.application.trunk,l.application.phone].join("/"),e[1]=l.application.timeout,e[2]=l.application.options,e[3]=l.application.url,l.application.appdata=e.join(",");break;case"playback":e[0]=l.application.appdata,e[1]=l.application.options,l.application.appdata=e.join(",");break;case"queue":e[0]=l.application.queue,e[1]=l.application.options,e[2]=l.application.URL,e[3]=l.application.sound,e[4]=l.application.timeout,e[5]=l.application.agi,e[6]=l.application.macro,e[7]=l.application.gosub,e[8]=l.application.rule,e[9]=l.application.position,l.application.appdata=e.join(",");break;case"ringGroup":e[0]=l.application.users.join("&"),e[1]=l.application.timeout,e[2]=l.application.options,e[3]=l.application.url,l.application.appdata=e.join(",");break;case"set":e[0]=l.application.name,e[1]=l.application.value,l.application.appdata=e.join("=");break;case"voicemail":e[0]=l.application.voiceMail,e[1]=l.application.options,l.application.appdata=e.join(",")}}(),g()},l.closeDialog=g}e.$inject=["$mdDialog","$q","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;function d(){var e=[{key:"name",value:l.interval.IntervalId}];i.getResourcesByRole(l.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){l.intervals=e}).catch(function(){a.error({title:$translate.instant("TOOLS.INTERVALS"),msg:$translate.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function c(e){n.hide(e)}l.currentUser=s.getCurrentUser(),l.interval=angular.copy(e),l.intervals=t||{rows:[],count:0},l.types=["always","custom","list"],l.crudPermissions=o,l.errors=[],l.daysOfWeek=r.getDaysOfWeek(),l.monthNumber=r.getMonthNumber(),l.monthName=r.getMonthName(),l.daysOfMonth=r.getDaysOfMonth(),l.initialize=function(){if("*,*,*,*"===l.interval.interval)return l.type=l.interval.IntervalId&&l.interval.application?"list":"always",void("list"===l.type&&d());l.type="custom";var e=l.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),l.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),l.timeRangeTo=s}"*"!==t&&(l.dayOfWeekFrom=t.split("-")[0],l.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(l.monthDayFrom=a.split("-")[0],l.monthDayTo=a.split("-")[1]);"*"!==i&&(l.monthFrom=i.split("-")[0],l.monthTo=i.split("-")[1])},l.onTypeChange=function(){"list"===l.type&&0===l.intervals.count&&d()},l.saveInterval=function(){l.errors=[],l.interval.interval=function(){if(["always","list"].includes(l.type))return"*,*,*,*";var e=[];if("*"!==l.timeRangeFrom&&l.timeRangeFrom&&l.timeRangeTo){var n=(l.timeRangeFrom.getHours()<10?"0":"")+l.timeRangeFrom.getHours()+":"+(l.timeRangeFrom.getMinutes()<10?"0":"")+l.timeRangeFrom.getMinutes(),t=(l.timeRangeTo.getHours()<10?"0":"")+l.timeRangeTo.getHours()+":"+(l.timeRangeTo.getMinutes()<10?"0":"")+l.timeRangeTo.getMinutes();e.push(n+"-"+t)}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()}(),"list"!==l.type&&(l.interval.IntervalId=null);c(l.interval)},l.closeDialog=c}e.$inject=["$mdDialog","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.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"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata!==e.appdata&&p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata!==e.appdata&&p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).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","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata!==e.appdata&&p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording","routealias"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.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,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.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","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","talking","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:m.queues.rows,realtime:!0,crudPermissions:m.crudPermissions}})},o.onWithoutApply("voice_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&(e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting),_.merge(n,_.pick(e,u)))}),o.on("userVoiceQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userVoiceQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:agentconnect",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available-=1)})}),o.on("user:agentcomplete",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(e.available+=1)})}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.voicePause?(n.paused=!0,e.paused+=1,e.available-=1):!t.voicePause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),o.removeAllListeners("userVoiceQueue:remove"),o.removeAllListeners("userVoiceQueue:save"),o.removeAllListeners("user:agentconnect"),o.removeAllListeners("user:agentcomplete"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","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,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.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,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.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","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.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},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",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){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).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","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.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"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.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,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.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"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.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"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voiceRecording=c||e.params.voiceRecording||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},u.saveVoiceRecording=function(){r.voiceRecording.update({id:u.voiceRecording.id},u.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:u.voiceRecording.name?u.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h){var f=this;function b(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceRecordings=r||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceRecordings=[],f.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:f.crudPermissions})},f.runtranscriberuntranscribesentiment=b,f.runtranscribesentimentruntranscribesentiment=A,f.runsentimentruntranscribesentiment=E,f.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){I(e)},function(){console.log("CANCEL")})},f.success=T,f.getVoiceRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceRecording.get(f.query,T).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceRecordings",f.promise=m.userProfile.getResources(f.query,T).$promise)},f.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:f.voiceRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceRecording=I,f.exportSelectedVoiceRecordings=function(){var e=angular.copy(f.selectedVoiceRecordings);return f.selectedVoiceRecordings=[],e},f.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+f.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceRecordings.forEach(function(e){I(e)}),f.selectedVoiceRecordings=[]})},f.deselectVoiceRecordings=function(){f.selectedVoiceRecordings=[]},f.selectAllVoiceRecordings=function(){f.selectedVoiceRecordings=f.voiceRecordings.rows},f.runtranscribeSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){b(e,n)}),f.selectedVoiceRecordings=[]},f.runtranscribesentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){A(e,n)}),f.selectedVoiceRecordings=[]},f.runsentimentSelectedVoiceRecordings=function(n){f.selectedVoiceRecordings.forEach(function(e){E(e,n)}),f.selectedVoiceRecordings=[]};var y=!0,S=1;function T(e){f.voiceRecordings=e||{count:0,rows:[]}}function I(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceRecordings.rows,{id:e.id}),f.voiceRecordings.count-=1,f.voiceRecordings.rows.length||f.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.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,n){y?o(function(){y=!1}):(n||(S=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=S),f.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,o,n,t,a,i,s,r,l,d,c,m,u,p,g,v,h,f){var b=this,A=["userpic","online","lastLoginAt","lastPauseAt","pauseType","lastPauseAt","internal","address","chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","chatCapacity","openchannelCapacity","mailCapacity","smsCapacity","whatsappCapacity","faxCapacity","chatCurrentCapacity","openchannelCurrentCapacity","mailCurrentCapacity","smsCurrentCapacity","whatsappCurrentCapacity","faxCurrentCapacity","chatStatus","openchannelStatus","mailStatus","smsStatus","whatsappStatus","faxStatus","voiceStatus","chatStatusTime","openchannelStatusTime","mailStatusTime","smsStatusTime","whatsappStatusTime","faxStatusTime","voiceStatusTime","queue","destconnectedlinenum","screenrecording","phoneBarEnableScreenRecordingByAgent","phoneBarEnableAutomaticScreenRecording"],E=["chatPause","openchannelPause","mailPause","smsPause","whatsappPause","faxPause","voicePause","online"];for(var y in b.currentUser=v.getCurrentUser(),b.availableStates=["ringing","inuse","busy","onhold","not_inuse"],b.pauses=s||{count:0,rows:[]},b.license=h,b.userProfile=p,b.userProfileSection=g&&1==g.count?g.rows[0]:null,b.crudPermissions=v.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.agents=r?_.keyBy(r.rows?r.rows:[],"id"):{},b.rpcAgents=l?_.keyBy(l.rows?l.rows:[],"id"):{},b.paginatedAgents={},b.load=!1,b.order=[],b.agentInternal={},b.agents)b.agents.hasOwnProperty(y)&&(b.agents[y].init=!0);b.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},b.logout=function(e,n){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"}),b.agents[e.id]&&(b.agents[e.id].online=!1),b.rpcAgents[e.id]&&(b.rpcAgents[e.id].online=!1),T()}).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()})})},b.queueAdd=function(e,n){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"whatsapp",direction:"inbound",crudPermissions:b.crudPermissions}})},b.pause=function(n,e){return d.user.pause({id:n.id,type:e}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.unPause=function(n){return d.user.unpause({id:n.id}).$promise.then(function(e){b.agents[n.id]&&_.merge(b.agents[n.id],_.pick(e,A)),b.rpcAgents[n.id]&&_.merge(b.rpcAgents[n.id],_.pick(e,A)),w(b.agents[n.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()})})},b.showInfo=function(e){t.show(t.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},b.getAgentStatus=O,b.getAgentGlobalStatus=w,b.isPause=I,b.checkPause=function(e){return"pause"===e},b.isPartialPause=function(e){return"*pause"===e},b.onSave=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(_.omit(e,E),A)),_.merge(b.rpcAgents[e.id],_.pick(_.omit(e,E),A)),w(b.agents[e.id]))},b.onUpdate=function(e){b.agents[e.id]&&(_.merge(b.agents[e.id],_.pick(e,A)),_.merge(b.rpcAgents[e.id],_.pick(e,A)),e.lastPauseAt&&(b.agents[e.id].globalStatusTime=e.lastPauseAt,b.rpcAgents[e.id].globalStatusTime=e.lastPauseAt),w(b.agents[e.id]))},b.onInit=T,b.onConnect=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(_.merge(b.agents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])),_.merge(b.rpcAgents[b.agentInternal[e.destaccountcode]],_.pick(e,["queue","destconnectedlinenum","routealias"])))},b.onComplete=function(e){b.agents[b.agentInternal[e.destaccountcode]]&&(b.agents[b.agentInternal[e.destaccountcode]]=_.omit(b.agents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]),b.rpcAgents[b.agentInternal[e.destaccountcode]]=_.omit(b.rpcAgents[b.agentInternal[e.destaccountcode]],["queue","destconnectedlinenum"]))},b.screenRecording=function(e,n){return d.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.on("user:save",b.onSave),c.on("user:update",b.onUpdate),c.on("user:agentconnect",b.onConnect),c.on("user:agentcomplete",b.onComplete),T();var S=f(function(){b.load&&(b.load=!1,T())},999);function T(e){b.load=!1;var n,t,a=o.defer();b.promise=a.promise,b.filteredAgents=[],b.order=[],_.forIn(b.agents,function(e,n){b.rpcAgents[n]&&_.merge(e,_.pick(_.omit(b.rpcAgents[n],E),A)),w(e),e.online?(b.filteredAgents.push(e),b.agentInternal[e.internal]=n):e.globalStatusTime=_.toNumber(moment().format("x"))}),b.query.globalStatusFilter&&_.remove(b.filteredAgents,function(e){return e.globalStatus!==b.query.globalStatusFilter}),b.query.pauseTypeFilter&&_.remove(b.filteredAgents,function(e){return e.pauseType!==b.query.pauseTypeFilter}),b.query.filter&&_.remove(b.filteredAgents,function(e){return e.fullname.toLowerCase().indexOf(b.query.filter.toLowerCase())<0}),b.filteredAgents=(n=b.filteredAgents,t=_.startsWith(b.query.order,"-")?"desc":"asc",_.orderBy(n,[b.query.order.replace("-","")],[t]));var i=(b.query.page-1)*b.query.limit;b.paginatedAgents=_.drop(b.filteredAgents,i).slice(0,b.query.limit);for(var s=0;s<b.paginatedAgents.length;s+=1)b.order.push(b.paginatedAgents[s].id);a.resolve(),b.load=!0}function I(e){return"pause"===e||"*pause"===e}function C(e){return"idle"===e||"unknown"===e||"unavailable"===e||"ringing"===e||_.isNil(e)}function O(e,n){return"voice"===n?"idle"!==e[n+"Status"]?e[n+"Status"]:e[n+"Pause"]?e[n+"Status"]="pause":"idle":e[n+"Pause"]?e[n+"Status"]="pause":e[n+"Status"]}function w(e){var n="unknown";n=_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"pause":_.some([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],I)?"*pause":_.every([O(e,"voice"),O(e,"chat"),O(e,"mail"),O(e,"openchannel"),O(e,"sms"),O(e,"whatsapp"),O(e,"fax")],C)?"idle":"busy",e.globalStatus!==n&&(e.globalStatus=n,e.init?(e.init=!1,e.globalStatusTime=I(n)?_.toNumber(moment(e.lastPauseAt).format("x")):_.max([e.voiceStatusTime,e.chatStatusTime,e.mailStatusTime,e.smsStatusTime,e.whatsappStatusTime,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"),S&&(f.cancel(S),S=null)})}e.$inject=["$scope","$q","$timeout","$mdDialog","$document","$filter","pauses","agents","rpcAgents","api","socket","toasty","helperClasses","userProfile","userProfileSection","Auth","license","$interval"],angular.module("app.voice").controller("AgentsWhatsappRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c){var m=this,u=["loggedIn","available","waiting","paused"],p=n(function(){},999);m.currentUser=c.getCurrentUser(),m.queues=i,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={id:c.isUser()?m.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},m.getQueues=function(){m.query.offset=(m.query.page-1)*m.query.limit,s.realtime.getQueues(m.query).$promise.then(function(e){m.queues=e}).catch(function(e){console.error(e)})},m.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:m.queues.rows,realtime:!1,crudPermissions:m.crudPermissions}})},o.on("whatsapp_queue:save",function(e){var n=_.find(m.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,u))}),o.on("userWhatsappQueue:save",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),o.on("userWhatsappQueue:remove",function(e){var n=_.find(m.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),o.on("user:update",function(t){m.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(!1===t.online?(n.online=!1,e.loggedInDb-=1,n.paused?(n.paused=!1,e.paused-=1):e.available-=1):n.online?t.whatsappPause?(n.paused=!0,e.paused+=1,e.available-=1):!t.whatsappPause&&n.paused&&(n.paused=!1,e.paused-=1,e.available+=1):(n.online=!0,e.loggedInDb+=1,e.available+=1))})}),e.$on("$destroy",function(){o.removeAllListeners("whatsapp_queue:save"),o.removeAllListeners("userWhatsappQueue:remove"),o.removeAllListeners("userWhatsappQueue:save"),o.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","queues","api","socket","toasty","userProfile","userProfileSection","Auth"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",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,t,n){switch(n.disconnect(),n.connect(),this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),v(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.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,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,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",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],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:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],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",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],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:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",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",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],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:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,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){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){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(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.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.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.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){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get().$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer 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:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,_.pick(e.toJSON(),_.keys(n))),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.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)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.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!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.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:4,hidden:function(){return!r.cm||!o.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:5,hidden:function(){return!r.dialer||!o.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:6,hidden:function(){return!r.voice||!o.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:7,hidden:function(){return!r.voice||!o.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:8,hidden:function(){return!r.voice||!o.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:9,hidden:function(){return!r.chat||!o.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:10,hidden:function(){return!r.mail||!o.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:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.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:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.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 n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.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,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},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=n.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--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.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),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.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,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.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 n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.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 n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].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="",t.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),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.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))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.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){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.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,n,t,a,i,s,o,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=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).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((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}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,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[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 n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).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){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.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 n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).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(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.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:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,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]}),n("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,n,t,a,i,s,o,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,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.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");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.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(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){_.isNil(e)&&s.cmHopper.update({id:d.preview.id,UserId:null}),a.hide()}d.customFieldsMap=l&&l.rows?_.mapValues(_.keyBy(l.rows,function(e){return"cf_"+e.id}),"name"):{},d.errors=[],d.hopperIds=[],d.preview=o,d.currentUser=r,d.originated=!1,d.disable=!1,d.disableGetContact=!1,d.hopperIds.push(d.preview.id),d.originatePreview=function(){d.originated=!0,d.disable=!0,_.isEmpty(d.preview)?(i.error({title:"Message",msg:"Contact not available"}),d.disable=!1,d.hopperIds=[],c(!0)):s.rpc.getVoiceQueuesPreview({id:d.preview.id}).$promise.then(function(e){c(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),c(!0)}).finally(function(){d.disable=!1,d.hopperIds=[]})},d.closeDialog=c,d.nextContact=function(){return d.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:d.hopperIds,direction:"next"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.preview.id))}).catch(function(e){if(d.disableGetContact=!1,d.hopperIds=[],404===e.status)d.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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()})})},d.previousContact=function(){if(d.disableGetContact=!0,1<d.hopperIds.length){var e=_.without(d.hopperIds,d.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){d.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(d.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(d.hopperIds,function(e){return e==d.preview.id}),d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e)}).catch(function(e){if(404===e.status)d.hopperIds=[d.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){d.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.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()})})}},d.getFirstAvailableContact=function(){return d.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[d.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"})):(d.originated||s.cmHopper.update({id:d.preview.id,UserId:null}),d.preview=e,d.hopperIds.push(d.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 n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){d.disableGetContact=!1})},d.isCustomField=function(e){return _.startsWith(e,"cf_")},d.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)},d.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){d.originated||s.cmHopper.update({id:d.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","currentUser","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.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"}],T.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"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.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"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role&&T.currentUser.name===e.membername){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</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})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$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()})})},T.unpause=function(){return f.user.unpause({id:T.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()})})},T.preview=function(n){return T.disable=!0,f.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:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},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){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].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(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.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()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$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"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(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",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","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,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.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,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=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),t.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),t.appendChild(a),n.appendChild(t),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=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-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 s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.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,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},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,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<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="",n=0;n<arguments.length;n++)e+=arguments[n],n<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 n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+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,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};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,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t: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,n,t,a){this.x=e,this.y=n,this.width=t,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 n=Math.min(this.x,e.x),t=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=n,this.y=t,this.width=a-n,this.height=e-t}},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,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&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 n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},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,n){return function(){return n.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,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n);n=e.substring(n,t)}return n},indexOf:function(e,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},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 n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}: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,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},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 n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,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",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"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 n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;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==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),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=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=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);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,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,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=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):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},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,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*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,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),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 o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),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 n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}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 n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.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,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,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,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};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,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(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,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}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,n){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,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),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,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}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,n,t,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=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=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),n.appendChild(this.td),e.appendChild(n),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 n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}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 n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},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),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),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,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"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 t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!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{t=!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 n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.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 t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!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=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!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),s=this.table.style.height,o=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 n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.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),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"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,n){var t=document.createElement("tr"),a=document.createElement("td");t.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(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},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(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"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,n,t){return e.getCellAt(n,t)},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,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,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 n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"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 n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.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,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),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(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,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,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"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=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},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,n,t){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,n,t){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,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,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",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}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,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.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 n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;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 n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}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,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}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 n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));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),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=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(t&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){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,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.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=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t: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=n+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=n-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=o())):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)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t: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,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.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,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},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 n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.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),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,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 n=0;n<this.cells.length;n++)this.animateCell(cells[n],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,n,t){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 s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],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,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),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,n){this.state.dx+=e,this.state.dy+=n},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,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},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,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){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 n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},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 n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),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 n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},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 n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},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 n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},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 n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},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 n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"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,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,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(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),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,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},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 n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},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 n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=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",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*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),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+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(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+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,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=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<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"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,s,o,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);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,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(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*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,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==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=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==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,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?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"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,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,n){this.graph=e,this.setStates(n)}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,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},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,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"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))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?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,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(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,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?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,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"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"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=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(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):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<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(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-t/2)*u.scale)+"px",g.style.top=this.format(n+(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-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.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),t=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+t*g*this.state.scale)+"px",l.style.top=this.format(n+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,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.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),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"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=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},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,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.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",n&&(r||(n=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}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 n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&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 n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].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,n=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!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}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)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),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 n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),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 n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}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 n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/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,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),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 n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},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,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o: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!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){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,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=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-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,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,n,t,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,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,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 n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,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!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,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 n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="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 t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.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=n[o+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(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+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 n=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 t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=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:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.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,n,t,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 n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"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(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=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 o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"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);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=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=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/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 n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),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 n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"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,n,t,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,n,t,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,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),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,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,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 n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"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,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=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+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,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 n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.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,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,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,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=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(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,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 n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=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!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.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,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=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);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.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,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.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=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.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,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=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=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!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 n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,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?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.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 n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=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 o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),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]}n.beginUpdate();try{for(a=0;a<s;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);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[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(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(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(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.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),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},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 n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.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 n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.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,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},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,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},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,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},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 n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},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 n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])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 n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].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,n){this.temp[e-this.minRank-1]=n},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,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[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=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,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 n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[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);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-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(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,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 n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");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 n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[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,s=Math.max(s,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]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=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,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):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,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)if(s<=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o<s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],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||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/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)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[s],e.isReversed?e.target.cell:e.source.cell),r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[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]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[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),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=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(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},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,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.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,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[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&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}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,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.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,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},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,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==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,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=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 n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=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 n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):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,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==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,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},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,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},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,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[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(n,i),t)},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),n=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=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},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 n=this.getValue();return this.setValue(e),n},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,n){return n?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,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},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,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},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,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.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=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.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 n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.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 s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.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 n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[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+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<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!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){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!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"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=n-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),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=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,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,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,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},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,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(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,n){n?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 n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].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 n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),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 n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,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),n=this.graph.isLabelClipped(e.cell),t=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),t?(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);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(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,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.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=o,this.textarea.style.color=s,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(t),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==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,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"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.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,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(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+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(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)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==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,n){mxCellRenderer.prototype.defaultShapes[e]=n},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,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.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,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var t,a=e.shape.node,i=a.parentNode;n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),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 n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),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 n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},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,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.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 n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.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(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,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 n=e.view.graph,t=e.view.scale,a=n.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*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(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),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,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),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&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==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(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,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=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=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,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,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;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<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(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*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],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*s<m&&2*s<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*s<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*s<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]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[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-=o)<1&&(d+=4),(v-=o)<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]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=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+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-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)<<o)&&(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]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n: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,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,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,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}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,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t: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,n){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,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,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,n){null!=e&&(this.graph=e,this.target=n||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,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t: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(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,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 n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=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!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},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 n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){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*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=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!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.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*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(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(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==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==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}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),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},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 n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),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 n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},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,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),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,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},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 n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"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 n=[],t=0;t<e.length;t++){var a=e[t];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(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},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 n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!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 n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&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 n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.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()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,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,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);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),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].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[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].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[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.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 n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}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(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,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,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,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 s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[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(t[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/s-o.x,l[0].y/s-o.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/s-o.x,l[m].y/s-o.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 t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=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)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&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",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[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/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[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,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,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],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!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 n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);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 s=i.offset;null!=s&&(s.x+=a.x-i.x,s.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[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),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",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!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(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){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!=n.point){var l=t=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"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=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 s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.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/n-t.x+l,c[0].y/n-t.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/n-t.x+l,c[v].y/n-t.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,n){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(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},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,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},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,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.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(t.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(t.setAttribute("transform","translate("+e+","+n+")"),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 s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,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,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=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=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(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 n=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 t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},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 n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(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 n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==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,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(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,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=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 s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){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 n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?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 n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},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 n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&(null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t))),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},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 n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[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 n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.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 n=this.view.getState(e);return e=null!=n?n.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 n=this.view.getState(e);return e=null!=n?n.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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[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 n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){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,n){return this.isValidSource(e)&&this.isValidTarget(n)},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 n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.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,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){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(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t: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,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>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,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],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)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+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>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,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,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},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,n,t){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(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),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(n,t,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)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},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 n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),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-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.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||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}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 n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.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)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},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 n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.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,n){!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 n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.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,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.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),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.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,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,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 n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=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 n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},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 n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,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>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);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 n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,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 n=this.graph.view.getState(e);return e=null!=n?n.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 n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){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!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}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,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,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 n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},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,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),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 n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.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,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.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,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},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 n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,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,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.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,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);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(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},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 n=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,n)}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,n){return n=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),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,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),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,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},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 n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.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=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).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 n=0;n<e.length;n++)e[n].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,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){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(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,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 n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.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(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),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)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.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),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=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,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=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(t,a,n.getEvent(),n.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),n.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,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,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==n&&((u=this.graph.getPointForEvent(t,!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",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,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,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),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(),n):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 s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(t)}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],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,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,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.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,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.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,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-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 n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),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,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,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(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==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,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),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=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.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(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},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,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,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 n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,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&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,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 n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||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 n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=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,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},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 n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;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,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.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&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,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,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.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)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);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(t));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(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.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,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=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-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.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 t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){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,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[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=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=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,n),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 n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.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 s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,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 n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.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,n){if(this.graph.isCellBendable(this.state.cell)){var t=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],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}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,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},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 n=this.getFunction(e);null!=n&&(n(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,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),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,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+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,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?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,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},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,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.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,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,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,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,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 n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),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,n){e.showProperties(n)}),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,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),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 n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),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 n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),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,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},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,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),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 n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},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,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[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}}});s.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},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(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);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 n=mxUtils.load(e).getXml();this.readGraphModel(n.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,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.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,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),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 n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.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(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.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 n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}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 n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-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){n.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 n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}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,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},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 n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!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(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},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 n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],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,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},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,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},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 n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+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,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},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,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(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,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.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",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[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<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=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&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.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)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}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,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});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(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.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","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[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"],[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","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[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,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"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.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.isEditingEnabled()?this.createKeyHandler(n):null;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"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.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"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\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";break;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";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.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 t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&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(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||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),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-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 s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",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=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-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.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),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 n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.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,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[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,n){this.editorUi=e,this.container=n,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 n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.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(n,"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,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.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(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);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[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.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[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],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 s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/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(n),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=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.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 n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}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 n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);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 f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.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=t.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 n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.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 n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.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",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.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){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),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"==s.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 b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),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(n),e.appendChild(t),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 n=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 t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t: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 s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.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,n=this.outline;if(null!=e.container&&null!=n.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="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.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 t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var 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 n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,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){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),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=n,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,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;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 s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.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 n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,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,n){this.data=e,this.filename=n,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",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),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(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"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;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"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+t/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,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[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==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);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 t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.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",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);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 n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});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 o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){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(t?(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 s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}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="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.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 o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;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((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-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=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){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(n,t,a,e,i,s,o){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(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);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<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){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,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,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"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];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","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.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",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!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,n,t,a){mxGraph.call(this,e,n,t,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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.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 n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,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 n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[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 n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},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,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},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,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),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,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=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 n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.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,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};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 n=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(n),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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}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 n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),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(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.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 n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);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(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}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,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*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,n=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(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.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 t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("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 n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,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 n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},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,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){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!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.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){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},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,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,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 n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].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 n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),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/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></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.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),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()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\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}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\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}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\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 <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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </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>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.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="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" 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="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </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-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.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 id="{{ node.id }}" 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&Media 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\', true)" 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\', true)" 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\', true)" 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"></timer>\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&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\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 id="{{\'div_session_\'+session.id.substr(0,32)}}" 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">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></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="Anser" 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 && !vm_pb.isInConference" 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 && !vm_pb.isInConference" 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" privacy ng-cloak></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="local-audio" autoplay hidden=true></audio>\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 ng-keypress="vm.keyPress($event)">\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" md-autofocus 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 translate="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-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.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, \'font-size\': (widget.titleFontSize || 12) }" 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\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n 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 ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" 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="fab fa-google" 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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($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 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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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\n <div ng-messages="metricForm[\'name\'].$error" ng-show="metricForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" required>\n <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n <md-option ng-value="\'report_call\'">Call Report</md-option>\n <md-option ng-value="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer 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="\'report_dial\'">Dial 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="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</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="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</md-option>\n <md-option ng-value="\'users\'">Users</md-option>\n <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n <md-option ng-value="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</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\n <div ng-messages="metricForm[\'metric\'].$error" ng-show="metricForm[\'metric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.metric.description">\n\n <div ng-messages="metricForm[\'description\'].$error" ng-show="metricForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($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 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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-if="vm_rc.crudPermissions.canEdit">\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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-disabled="!vm_rc.crudPermissions.canEdit" 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" ng-if="vm_rc.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-disabled="!vm.crudPermissions.canEdit" 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-disabled="!vm.crudPermissions.canEdit" 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, vm.crudPermissions)">\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-if="vm_rf.crudPermissions.canEdit" 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="vm_rf.crudPermissions.canDelete" 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" ng-if="vm_rf.crudPermissions.canEdit">\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" ng-if="vm_rf.crudPermissions.canEdit"></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" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\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" ng-if="vm_rf.crudPermissions.canEdit">\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 Field\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 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 </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, vm.crudPermissions)">\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.crudPermissions.canDelete && vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div layout="column" flex="30">\n <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n \x3c!-- SEARCH --\x3e\n <div layout="row" layout-align="start center">\n <label for="searchFolder" class="m-0">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" 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.getReports()" query="vm.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.crudPermissions.canEdit && 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.crudPermissions.canEdit && 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 translate="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.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : 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 ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && vm.currentNode.custom">\n <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n Delete Report\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-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.WEB_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\n <div ng-messages="odbcForm[\'name\'].$error" ng-show="odbcForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DSN">DSN</label>\n <input type="text" name="dsn" ng-model="vm.odbc.dsn" ng-required="true">\n\n <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n <div ng-messages="odbcForm[\'dsn\'].$error" ng-show="odbcForm[\'dsn\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.odbc.description">\n\n <div ng-messages="odbcForm[\'description\'].$error" ng-show="odbcForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($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\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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|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|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_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]" ng-disabled="v.canSelect === false">{{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-disabled="!vm.crudPermissions.canEdit" 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\'" ng-disabled="v.canSelect === false">{{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\'" ng-disabled="v.canSelect === false">{{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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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" ng-disabled="!vm.crudPermissions.canEdit" 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|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></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|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" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\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" ng-if="vm.crudPermissions.canEdit">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="editForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label>XML</label>\n <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n CLOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="descriptionFrom" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description" md-autofocus>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NOTES">Description</label>\n <textarea name="notes" ng-model="vm.project.notes"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="openForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.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>\n <md-button class="md-icon-button" ng-click="vm.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" ng-init="vm.onInit()">\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-if="vm.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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 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 translate="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 ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-if="vm.crudPermissions.canEdit" 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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="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.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($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\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>{{ \'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 " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></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.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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="CHAT.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="chatQueueForm[\'description\'].$error" ng-show="chatQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="CHAT.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="chatWebsiteForm[\'name\'].$error" ng-show="chatWebsiteForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\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 <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 </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\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 <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 </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" value="LOCALIP" ng-required="true">\n\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 <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 </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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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\n <div ng-messages="chatWebsiteForm[\'description\'].$error" ng-show="chatWebsiteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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\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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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" 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>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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\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" ng-if="vm.crudPermissions.canEdit">\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/dialogflowv2/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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey 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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</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.dialogflowv2.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\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\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\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">\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\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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$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) || (vidaooForm.$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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></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 <div class="chatWebsite-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\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 </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" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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 </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 <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 <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'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="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\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" ng-if="item.type != \'upload\'">\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 </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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </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>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\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 <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </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>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\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.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo 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.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($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 <md-table-container class="font-size-12">\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">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </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>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\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.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.crudPermissions.canDelete">\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="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'CHAT.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'CHAT.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'CHAT.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'CHAT.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'CHAT.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"CHAT.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"CHAT.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"CHAT.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="companyForm[\'name\'].$error" ng-show="companyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone">\n\n <div ng-messages="companyForm[\'phone\'].$error" ng-show="companyForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat">\n\n <div ng-messages="companyForm[\'vat\'].$error" ng-show="companyForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax">\n\n <div ng-messages="companyForm[\'fax\'].$error" ng-show="companyForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId">\n\n <div ng-messages="companyForm[\'companyId\'].$error" ng-show="companyForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type">\n\n <div ng-messages="companyForm[\'type\'].$error" ng-show="companyForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255">\n\n <div ng-messages="companyForm[\'website\'].$error" ng-show="companyForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div 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 </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\n <div ng-messages="companyForm[\'emailDomain\'].$error" ng-show="companyForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email">\n\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\n <div ng-messages="companyForm[\'description\'].$error" ng-show="companyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'vat\'].$error" ng-show="generalForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fax\'].$error" ng-show="generalForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'companyId\'].$error" ng-show="generalForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'website\'].$error" ng-show="generalForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div 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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'emailDomain\'].$error" ng-show="generalForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'street\'].$error" ng-show="addressForm[\'street\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="postalCode" ng-model="vm.company.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'postalCode\'].$error" ng-show="addressForm[\'postalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.company.city" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'city\'].$error" ng-show="addressForm[\'city\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.company.country" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'country\'].$error" ng-show="addressForm[\'country\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sStreet\'].$error" ng-show="shipmentAddressForm[\'sStreet\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sPostalCode\'].$error" ng-show="shipmentAddressForm[\'sPostalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="sCity" ng-model="vm.company.sCity" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCity\'].$error" ng-show="shipmentAddressForm[\'sCity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="sCountry" ng-model="vm.company.sCountry" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCountry\'].$error" ng-show="shipmentAddressForm[\'sCountry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="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.crudPermissions.canDelete" 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" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">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 </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 company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\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_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\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 ng-init="vm.getAssignedCompanies()">\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="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | 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 translate="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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : 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" ng-if="!vm.crudPermissions.readOnly">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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-if="vm.crudPermissions.canEdit" 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 privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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]">\n </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-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\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\n 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">\n </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\n 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" ng-if="vm.crudPermissions.canEdit">\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.crudPermissions.canDelete && !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-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\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" ng-if="vm.crudPermissions.canEdit">\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" ng-init="vm.onInit()">\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 ng-if="vm.crudPermissions.canEdit">\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\n </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 ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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\n 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" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\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-disabled="!vm.crudPermissions.canEdit"></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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{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 </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 ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{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_TAG">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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit"></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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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\n </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}}\n </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]">\n </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </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" ng-disabled="!vm.crudPermissions.canEdit">\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="recallme">{{ \'CONTACTMANAGER.RECALLME\' | 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="7">\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 ng-repeat="(id, hopper) in vm.hoppers.rows">\n <td md-cell>{{hopper.id}}</td>\n <td md-cell privacy ng-cloak>{{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" ng-if="!vm.crudPermissions.readOnly">\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="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && 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 translate="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 privacy ng-cloak>{{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 translate="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 privacy ng-cloak>{{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 translate="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="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </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\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" 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 <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : 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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="listForm[\'name\'].$error" ng-show="listForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description">\n\n <div ng-messages="listForm[\'description\'].$error" ng-show="listForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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\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" 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 <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\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">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </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>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\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" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\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 <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/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="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.crudPermissions.canEdit" 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.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 | orderByDate " 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\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <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); $event.stopPropagation()">\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 | orderByDate " 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)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" 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/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </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 </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 <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg mr-0">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="row" layout-align="end center" class="reload-container">\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </div>\n <div layout="column" layout-align="space-between start" class="mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="mr-8">\n </md-icon>\n <span class="h1" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\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: <span privacy ng-cloak>{{ call.calleridname }}</span>\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 </md-card-content>\n </md-card>\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">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <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 privacy ng-cloak>\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\n 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); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" 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>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\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" privacy ng-cloak>\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" privacy ng-cloak>\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" privacy ng-cloak>\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); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" 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>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\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" privacy ng-cloak>\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\n 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); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" 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>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\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" privacy ng-cloak>\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); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" 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>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\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="">\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}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </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">\n {{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>\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\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" 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.lists.rows">#{{list.id}} - {{list.name}}\n </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]">\n </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]">\n </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">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </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 <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\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 <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\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="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </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()" ng-if="!vm.call.mandatoryDisposition">\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.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.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 <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\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 <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\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">\n {{ 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()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'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/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),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="{{\'DASHBOARDS.VOICE\' | translate}}">\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\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\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\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\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.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.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-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\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-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.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/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>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.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 <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\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/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\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.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'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.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</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 md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.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-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\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-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.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\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 | orderBy:\'weight\'" 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>\n </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 layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\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\'">\n </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\'">\n </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\'">\n </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\'">\n </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\'">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </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)">\n </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\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </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\'">\n </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\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/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/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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 ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\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.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" 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 </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">{{\'DASHBOARDS.ID\' | translate}}</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="createdAt">{{\'DASHBOARDS.CREATEDAT\' | 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 translate="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" privacy ng-cloak>{{contact.firstName}}\n {{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(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" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\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">,\n </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="{{\'DASHBOARDS.VOICE\' | translate}}">\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="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\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="{{\'DASHBOARDS.CHAT\' | translate}}">\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="{{\'DASHBOARDS.MAIL\' | translate}}">\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="{{\'DASHBOARDS.SMS\' | translate}}">\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="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\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="{{\'DASHBOARDS.FAX\' | translate}}">\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-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" 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" ng-cloak>\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 translate="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 translate="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 privacy ng-cloak>{{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>\n </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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 </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 translate="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 </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 translate="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" ng-cloak>\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 translate="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 translate="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 privacy ng-cloak>{{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>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\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_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" 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_whatsapp.getColorByChannel(\'whatsapp\')">\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_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.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_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" 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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-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)">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-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)">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n <md-card class="tooltip-preview-text" ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\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.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-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 </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">{{\'DASHBOARDS.ID\' | translate}}</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="createdAt">{{\'DASHBOARDS.CREATEDAT\' | 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 translate="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" privacy ng-cloak>\n {{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" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{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">,\n </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 <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 ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-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)" ng-disabled="!openchannelAccount.replyUri">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | 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.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),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" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\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" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\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 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">\n </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">\n </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" ng-if="vm.currentUser.downloadVoiceRecordings">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\n </md-button>\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>\n </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" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled 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 translate="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 privacy ng-cloak>{{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\' }}">\n </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>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" 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-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-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)">\n {{ 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 class="interactions-list">\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 class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\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">{{\'VOICE.ID\' | translate}}</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 md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_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="10">\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 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">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</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="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</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 <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 privacy ng-cloak>{{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 privacy ng-cloak>{{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="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</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.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</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/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-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="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'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>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\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 <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\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-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.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),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 }}\n </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\'">\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" 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\'">\n </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\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </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\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/composeChat/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="CHAT.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="CHAT.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="CHAT.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="CHAT.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="CHAT.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="\'CHAT.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="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" 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="CHAT.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/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" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</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="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" ng-keypress="vm.keyPress($event)" 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" ng-keypress="vm.keyPress($event)" 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" ng-keypress="vm.keyPress($event)" 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" ng-keypress="vm.keyPress($event)">\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.removeAttachment(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" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </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 }} -\n {{ 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/composeWhatsapp/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="WHATSAPP.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="WHATSAPP.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="WHATSAPP.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="WHATSAPP.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="WHATSAPP.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="\'WHATSAPP.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="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" 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="WHATSAPP.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" ng-init="vm.onInit()">\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()" ng-if="!vm.mandatoryDisposition">\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="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.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 <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></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 <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()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" 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)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" 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()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\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 <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\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 </md-input-container>\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 <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">{{\n 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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <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" style="flex-grow: 1; align-self: stretch" 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">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></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 privacy ng-cloak>\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 privacy ng-cloak>\n </md-input-container>\n\n <md-input-container 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 privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container 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 privacy ng-cloak>\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}} -\n <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\'">\n </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\'">\n </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\'">\n </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-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</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\'">\n </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<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 <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 <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 <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\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-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</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 <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">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 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",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\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 </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" 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 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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 : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</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.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 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.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 <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\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 <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\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 ng-if="vm.downloadPermissions.attachments" 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 ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </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.interactionTimelineOptions" 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 && vm.downloadPermissions.attachments">\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>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <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)">\n {{ 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]">\n [{{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)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </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" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </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">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </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">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </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" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{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" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{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\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 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 ||\n 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 </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 <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\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>\n </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>\n </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 && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </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 && vm.downloadPermissions.interactions" 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>\n </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 ng-if="vm.downloadPermissions.attachments">\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 && vm.downloadPermissions.attachments">\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>\n <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)">\n {{ 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 ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\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\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.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/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>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\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>'),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"> -\n {{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"></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\'">\n </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\'">\n </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\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" 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="DASHBOARDS.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 ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.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="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\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\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\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",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\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\', 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>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.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/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>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\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>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\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>'),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"></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" ng-init="vm.onInit()" class="page-layout simple right-sidenav" layout="row">\n \x3c!-- CENTER --\x3e\n <div class="center" flex ms-scroll>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs ng-if="vm.hasDashboardPermissions" 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-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" 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\n 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/dashboards/views/general/user/whatsapp/user.general.whatsapp.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-whatsapp" 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/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\n <div ng-messages="faxAccountForm[\'name\'].$error" ng-show="faxAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="faxAccountForm[\'localstationid\'].$error" ng-show="faxAccountForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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\n <div ng-messages="faxAccountForm[\'description\'].$error" ng-show="faxAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n <div ng-messages="generalForm[\'headerinfo\'].$error" ng-show="generalForm[\'headerinfo\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="generalForm[\'localstationid\'].$error" ng-show="generalForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n <div ng-messages="advancedForm[\'modem\'].$error" ng-show="advancedForm[\'modem\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.GATEWAY">gateway</label>\n <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n <div ng-messages="advancedForm[\'gateway\'].$error" ng-show="advancedForm[\'gateway\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FAXDETECT">faxdetect</label>\n <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n <div ng-messages="advancedForm[\'faxdetect\'].$error" ng-show="advancedForm[\'faxdetect\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.T38TIMEOUT">t38timeout</label>\n <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required ng-disabled="!vm.crudPermissions.canEdit">\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 <div class="faxAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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 <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="FAX.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="faxQueueForm[\'description\'].$error" ng-show="faxQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="FAX.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.vm.getFaxAccounts()" query="vm.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 translate="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" ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'FAX.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'FAX.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'FAX.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'FAX.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'FAX.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"FAX.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"FAX.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"FAX.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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 translate="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" ng-if="vm.crudPermissions.canEdit">\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="https://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\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 </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" 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\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 </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" 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\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 </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" value="LOCALIP" ng-required="true">\n\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" 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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'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.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$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.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($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/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" 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.DYNAMICS365ACCOUNTS">Dynamics365Accounts</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.selectedDynamics365Accounts.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.selectedDynamics365Accounts =[]">\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-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.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="INTEGRATIONS.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.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" 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.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($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 </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!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\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.dynamics365Accounts.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="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT 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 DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'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.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'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.dynamics365Configuration.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="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'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.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$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.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($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/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.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="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" 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-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\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="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" 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 <md-tab-body>\n <div class="dynamics365Account-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.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.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.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-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="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\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="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($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\n <div ng-messages="freshdeskAccountForm[\'name\'].$error" ng-show="freshdeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'username\'].$error" ng-show="freshdeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'remoteUri\'].$error" ng-show="freshdeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'apiKey\'].$error" ng-show="freshdeskAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshdeskAccountForm[\'serverUrl\'].$error" ng-show="freshdeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n\n <div ng-messages="freshdeskAccountForm[\'description\'].$error" ng-show="freshdeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$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.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($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/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'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.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'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.freshsalesConfiguration.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="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$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.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($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/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.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="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" 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-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\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="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" 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 <md-tab-body>\n <div class="freshsalesAccount-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.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-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="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\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="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($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/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" 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.FRESHSALESACCOUNTS">FreshsalesAccounts</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.selectedFreshsalesAccounts.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.selectedFreshsalesAccounts =[]">\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-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.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="INTEGRATIONS.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.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" 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.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($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 </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!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\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.freshsalesAccounts.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="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT 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 FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT 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\n <div ng-messages="salesforceAccountForm[\'name\'].$error" ng-show="salesforceAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.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\n <div ng-messages="salesforceAccountForm[\'username\'].$error" ng-show="salesforceAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'remoteUri\'].$error" ng-show="salesforceAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="salesforceAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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\n <div ng-messages="salesforceAccountForm[\'clientId\'].$error" ng-show="salesforceAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientSecret\'].$error" ng-show="salesforceAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'securityToken\'].$error" ng-show="salesforceAccountForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="salesforceAccountForm[\'serverUrl\'].$error" ng-show="salesforceAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n\n <div ng-messages="salesforceAccountForm[\'description\'].$error" ng-show="salesforceAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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 <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'securityToken\'].$error" ng-show="generalForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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">\n ADVANCED\n </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()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ 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()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'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.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'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 </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.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$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.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($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/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'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.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'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.servicenowConfiguration.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="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$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.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($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/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n 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="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n 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="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n 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="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n 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}}\n </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="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.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="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" 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-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\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="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" 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 <md-tab-body>\n <div class="servicenowAccount-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.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.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.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.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="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-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="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\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="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($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/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" 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.SERVICENOWACCOUNTS">ServicenowAccounts</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.selectedServicenowAccounts.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.selectedServicenowAccounts =[]">\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-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.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="INTEGRATIONS.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.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" 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.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($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 </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!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\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="email">{{ \'INTEGRATIONS.EMAIL\' | 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.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\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="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT 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 SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT 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\n <div ng-messages="sugarcrmAccountForm[\'name\'].$error" ng-show="sugarcrmAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'username\'].$error" ng-show="sugarcrmAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'remoteUri\'].$error" ng-show="sugarcrmAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="sugarcrmAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="sugarcrmAccountForm[\'serverUrl\'].$error" ng-show="sugarcrmAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n\n <div ng-messages="sugarcrmAccountForm[\'description\'].$error" ng-show="sugarcrmAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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\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 </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\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 </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\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 </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\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 </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" value="LOCALIP" ng-required="true">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\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 <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="zendeskAccountForm[\'name\'].$error" ng-show="zendeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.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\n <div ng-messages="zendeskAccountForm[\'username\'].$error" ng-show="zendeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'remoteUri\'].$error" ng-show="zendeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required>\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'authType\'].$error" ng-show="zendeskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="zendeskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div 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\n <div ng-messages="zendeskAccountForm[\'token\'].$error" ng-show="zendeskAccountForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zendeskAccountForm[\'serverUrl\'].$error" ng-show="zendeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n\n <div ng-messages="zendeskAccountForm[\'description\'].$error" ng-show="zendeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'token\'].$error" ng-show="generalForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 && vm_cc.crudPermissions.canEdit" 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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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" 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" 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n 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\n 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\n 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\n 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\n 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}}\n </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\n 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}}\n </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 \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\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\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\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-option ng-if="vm.customField.options.length" value="picklist">Picklist</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 \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\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\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\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\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\n 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}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </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\n 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\n \x3c!--/ value --\x3e\n\n<\/script>\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"\n 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()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n 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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\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.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 ng-if="vm_cc.crudPermissions.canEdit" 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.crudPermissions.canDelete" 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" ng-if="!vm_cc.crudPermissions.readOnly">\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 ng-if="vm_cc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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">\n ADVANCED\n </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.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\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\'}]">\n {{ 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.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ 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 && vm_cc.crudPermissions.canEdit" 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="INTEGRATIONS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($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 </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 md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | 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="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="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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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-light" 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 </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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><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 <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <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 <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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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="font-size-12">\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">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </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>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\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 <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, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\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-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" 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>\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-light" 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="JSCRIPTY.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="mailAccountForm[\'name\'].$error" ng-show="mailAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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\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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" 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\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 </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" value="465" ng-required="true">\n\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\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 </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" value="465" ng-required="true">\n\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\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 </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\n <div ng-messages="mailAccountForm[\'description\'].$error" ng-show="mailAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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 <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type 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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.mailbox\'].$error" ng-show="imapForm[\'Imap.mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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 }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </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>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </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>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\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 ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="MAIL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="mailQueueForm[\'description\'].$error" ng-show="mailQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="MAIL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="MAIL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($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 </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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.vm.getMailAccounts()" query="vm.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 translate="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 && vm.mailAccounts[value].Imap.lastSync != \'\')">{{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 ng-if="vm.crudPermissions.canEdit">\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MAIL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MAIL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MAIL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MAIL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MAIL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MAIL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MAIL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MAIL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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\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 </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\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 </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\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 </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\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 </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" 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\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 </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\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 </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\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 </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\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" disabled>\n\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 </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="MARKETPLACE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" 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" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true">\n\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\n <div ng-messages="ivrCampaignForm[\'description\'].$error" ng-show="ivrCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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">\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="ivrCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry 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.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime 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 drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry 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.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime 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 abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry 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.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime 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 machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry 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.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime 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 agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry 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.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime 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 <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" autofocus ng-disabled="!vm.crudPermissions.canEdit">\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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</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 ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\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="MOTIONDIALER.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" 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" 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"></md-slider>\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">\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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true">\n\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" value="3" ng-required="true">\n\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" value="3" ng-required="true">\n\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\n <div ng-messages="queueCampaignForm[\'description\'].$error" ng-show="queueCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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\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 </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">\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" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></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 <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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 ng-if="vm.crudPermissions.canEdit">\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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\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"></md-slider>\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" ng-disabled="!vm.crudPermissions.canEdit">\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"></md-slider>\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"></md-slider>\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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="queueForm[\'dialQueueOptions\'].$error" ng-show="queueForm[\'dialQueueOptions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container 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" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit"><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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <div class="queueCampaign-detail-form-container nosuchnumber 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.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry 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.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime 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 drop 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.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry 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.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime 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 abandoned 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.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry 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.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime 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 machine 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.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry 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.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime 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 agentreject 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.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry 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.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime 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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds 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.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div 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 ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </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>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\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" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </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>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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 ng-if="vm_dc.crudPermissions.canEdit">\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-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</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 ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </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>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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 class="font-size-12">\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">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </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>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\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="MOTIONDIALER.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </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.getAbandonedCalls">\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 md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </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.assignTo(call,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-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\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.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" 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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'MOTIONDIALER.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'MOTIONDIALER.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'MOTIONDIALER.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"MOTIONDIALER.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"MOTIONDIALER.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"MOTIONDIALER.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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.getCampaigns()" query="vm.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 translate="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" ng-if="vm.crudPermissions.canEdit">\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 <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 </div>\n</md-toolbar>\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.ALIAS\' | 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="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 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.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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<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.getQueues()" query="vm.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 translate="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/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.queueCampaign.name }} 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 <md-dialog-content class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | 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.count > 0">\n <td md-cell colspan="12">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.dialMethod || 0 }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.Trunk ? queue.Trunk.name : \'--\' }}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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\n <div ng-messages="openchannelAccountForm[\'name\'].$error" ng-show="openchannelAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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\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 </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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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\n <div ng-messages="openchannelAccountForm[\'description\'].$error" ng-show="openchannelAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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/amazonlex/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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\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="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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" 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>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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/dialogflow/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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\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="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\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/dialogflowv2/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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey 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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.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="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 disabled>\n\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 </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </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>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="OPENCHANNEL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="openchannelQueueForm[\'description\'].$error" ng-show="openchannelQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="OPENCHANNEL.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'OPENCHANNEL.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'OPENCHANNEL.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'OPENCHANNEL.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"OPENCHANNEL.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"OPENCHANNEL.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"OPENCHANNEL.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | 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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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/cloudProviders/cloudProviders.html",'<div id="cloudProviders" 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.AITOOLS">AiTools</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.selectedAiTools.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.selectedAiTools =[]">\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-cloudProviders-count">\n <span>{{vm.selectedAiTools.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="SETTINGS.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.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" 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.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\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="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\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="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER 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 CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey 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.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$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.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($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/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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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\n <div ng-messages="customizationForm[\'headerWhiteLabel\'].$error" ng-show="customizationForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <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\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 </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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$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.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</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\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 </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\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 </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 ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon 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.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.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, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.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="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.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="{{faviconimage.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\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$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" value="1000" ng-required="true" autofocus>\n\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 <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\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 <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\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" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\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 </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" value="5000">\n\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" value="1000">\n\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" value="5000">\n\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 <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\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">\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 <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording 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.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath 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 security 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.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\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.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit 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 no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email 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 no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name 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 no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number 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\n <div class="general-detail-form-container imapgeneralsettings 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.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso 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.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools 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.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.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="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount 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 \x3c!-- <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> --\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 \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 ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" 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 && vm.license.months != 36" 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 <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\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 | limitTo:3" 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 <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" 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\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 | limitTo:3" 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-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" 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" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</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\n <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\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>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-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-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="SETTINGS.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-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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\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 </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\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" 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\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container 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" value="465" ng-required="true">\n\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\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 </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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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 </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\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" 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\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 </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" value="465" ng-required="true">\n\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\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 </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\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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'SMS.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'SMS.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'SMS.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'SMS.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'SMS.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"SMS.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"SMS.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"SMS.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | 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.count > 0">\n <td md-cell colspan="7">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" 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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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\n <div ng-messages="smsAccountForm[\'name\'].$error" ng-show="smsAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\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 <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 </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" value="LOCALIP" ng-required="true">\n\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 <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 </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" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" 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="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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\n <div ng-messages="smsAccountForm[\'phone\'].$error" ng-show="smsAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\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 </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\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 </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\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 </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" 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\' || vm.smsAccount.type == \'bandwidth\'" 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\n <div ng-messages="smsAccountForm[\'username\'].$error" ng-show="smsAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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\' || vm.smsAccount.type == \'csc\'" 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\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" 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\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description">\n\n <div ng-messages="smsAccountForm[\'description\'].$error" ng-show="smsAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ 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" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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/amazonlex/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.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\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="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</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" 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>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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/dialogflow/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.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\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="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\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/dialogflowv2/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.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey 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.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.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="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ 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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-if="vm.crudPermissions.canEdit">\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ 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" ng-if="vm.crudPermissions.canEdit">\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\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/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 </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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\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\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" 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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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) || vm.smsAccount.type == \'bandwidth\'" 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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 disabled>\n\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 </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" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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 </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition 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.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\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="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($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 <md-table-container class="font-size-12">\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">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </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>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\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 <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, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\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.crudPermissions.canDelete" 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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\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 ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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-light" 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 <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, vm.crudPermissions, vm.userProfile)">\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 <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($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 <md-table-container class="font-size-12">\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">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </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" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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 ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\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="SMS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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" value="10" ng-required="true">\n\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\n <div ng-messages="smsQueueForm[\'description\'].$error" ng-show="smsQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <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="SMS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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="STAFF.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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 md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="10">\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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar ">{{ vm.arrayshowWebBar[agent.showWebBar].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone ">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile ">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="agentForm[\'fullname\'].$error" ng-show="agentForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newAgent">\n\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 </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\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 </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">\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\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" required>\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\n <div ng-messages="agentForm[\'internal\'].$error" ng-show="agentForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\n <div ng-messages="agentForm[\'description\'].$error" ng-show="agentForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.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" value="9888" ng-required="true">\n\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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.oldPassword.$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\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 <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\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" ng-init="vm.onInit()">\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.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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>\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-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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) || (download_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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="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 disabled>\n\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 </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" disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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 disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container 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" multiple ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\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" required ng-disabled="!vm.crudPermissions.canEdit">\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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" ng-disabled="!vm.crudPermissions.canEdit">\n\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.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity 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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port 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.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</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 ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</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, vm.crudPermissions)" 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)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></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-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></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\n <div ng-messages="teamForm[\'name\'].$error" ng-show="teamForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.team.description">\n\n <div ng-messages="teamForm[\'description\'].$error" ng-show="teamForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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="STAFF.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="telephoneForm[\'fullname\'].$error" ng-show="telephoneForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newTelephone">\n\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 </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\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" required>\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\n <div ng-messages="telephoneForm[\'description\'].$error" ng-show="telephoneForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div ng-messages="telephoneForm[\'internal\'].$error" ng-show="telephoneForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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.oldPassword.$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\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 <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\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 </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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'fullname\'].$error" ng-show="accountForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'description\'].$error" ng-show="accountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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 <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 disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\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" required ng-disabled="!vm.crudPermissions.canEdit">\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="STAFF.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$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.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($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/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" 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($event)">\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 <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" 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-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\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="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></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.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_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.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-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 class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions 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.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></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 <md-tab-body>\n <div class="userProfile-detail-form-container modules 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.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_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.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\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/userProfiles/userProfiles.html",'<div id="userProfiles" 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.USERPROFILES">UserProfiles</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.selectedUserProfiles.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.selectedUserProfiles =[]">\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-userProfiles-count">\n <span>{{vm.selectedUserProfiles.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="STAFF.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.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" 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.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.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!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\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 md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\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="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE 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 USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE 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" autofocus required 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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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\n <div ng-messages="userForm[\'fullname\'].$error" ng-show="userForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newUser">\n\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 </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\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" required>\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\n <div ng-messages="userForm[\'description\'].$error" ng-show="userForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" ng-disabled="!vm.newUser">\n\n <div ng-messages="userForm[\'internal\'].$error" ng-show="userForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/apikeymanager/apikeymanager.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.MANAGE_API_KEY\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <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.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\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.oldPassword.$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\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 <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\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/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 </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$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 <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" autofocus required disabled>\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 ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 </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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container 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 disabled>\n\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 </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" disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</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-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" 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-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></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, vm.crudPermissions)" 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 ng-disabled="!vm_ca.crudPermissions.canEdit">\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 <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 disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</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-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" 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-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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/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="STAFF.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="userProfileId">{{ \'STAFF.USERPROFILE\' | 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 md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | 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="11">\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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="cannedAnswerForm[\'key\'].$error" ng-show="cannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n <div 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 </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\n <div ng-messages="cannedAnswerForm[\'description\'].$error" ng-show="cannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\n <div ng-messages="customDashboardForm[\'description\'].$error" ng-show="customDashboardForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\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" 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\n <div ng-messages="dashboarditemForm[\'title\'].$error" ng-show="dashboarditemForm[\'title\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n </div>\n <div 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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\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" value="https://" ng-required="true">\n\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 </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\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 </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" value="HH:mm:ss" ng-required="true">\n\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 </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" 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" 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" 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">\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">\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.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$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.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" value="10" ng-required="true">\n\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="[\'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" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ 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" value="20" ng-required="true">\n\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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="customDashboard-image" hide-xs>\n <img ng-src="assets/images/business/customDashboards.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.customDashboard.id}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n </md-tab-label>\n <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, vm.crudPermissions)" 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()" ng-if="vm_cd.crudPermissions.canEdit" 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/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon 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="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</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]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" 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.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-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 <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</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.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-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 <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 \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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\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="TOOLS.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 <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.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \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.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\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 md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | 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.dispositions.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="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 <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>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description">\n\n <div ng-messages="intervalForm[\'description\'].$error" ng-show="intervalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.INTERVALS">INTERVALS</span>\n </md-tab-label>\n <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\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">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 ng-if="vm_dc.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="pauseForm[\'name\'].$error" ng-show="pauseForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.pause.description">\n\n <div ng-messages="pauseForm[\'description\'].$error" ng-show="pauseForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="scheduleForm[\'name\'].$error" ng-show="scheduleForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$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" 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" value="1" ng-required="true">\n\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" 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" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ 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\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 </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\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 </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\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 </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\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon 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="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" 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.treeConfig" 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>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" 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 </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 translate="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 md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</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]" 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 </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : 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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="soundForm[\'name\'].$error" ng-show="soundForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sound.description">\n\n <div ng-messages="soundForm[\'description\'].$error" ng-show="soundForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="tagForm[\'name\'].$error" ng-show="tagForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.tag.description">\n\n <div ng-messages="tagForm[\'description\'].$error" ng-show="tagForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="templateForm[\'name\'].$error" ng-show="templateForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', 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\n <div ng-messages="templateForm[\'description\'].$error" ng-show="templateForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required md-autofocus>\n <div ng-messages="triggerForm[\'name\'].$error" ng-show="triggerForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | 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>\n </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 </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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\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>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/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.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | 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" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ 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" ng-change="vm.onTypeSelection()" 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" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ 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.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\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.SEARCH_FIELDS_REQUIRED">Search fields 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">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\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 == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\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.AUTOCREATE_FIELD_REQUIRED">Autocreate 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" required>\n <md-option ng-value="\'GET\'">GET</md-option>\n <md-option ng-value="\'POST\'">POST</md-option>\n <md-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</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.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" 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 == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></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.SCRIPT_REQUIRED">Script field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n <label translate="TOOLS.INTEGRATION">Integration</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</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" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ 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 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n 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" ng-change="vm.onTypeSelection()" 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 </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 </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.ARGUMENTS">Arguments</label>\n <input type="text" name="data3" ng-model="vm.action.data3">\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ 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 </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" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\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" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | 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 </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 </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 <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($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.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\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.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/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.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.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" 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" 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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($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.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </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.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\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.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\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.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/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.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </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" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\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\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ 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" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ 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 == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</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.AGENT_REQUIRED">Agent 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" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.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.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" 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" 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 <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 \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 <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- / HEADER --\x3e\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="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </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" ng-disabled="!vm.crudPermissions.canEdit">\n <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" ng-disabled="!vm.crudPermissions.canEdit">\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="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between 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-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 <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 \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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\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="TOOLS.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 <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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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 \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 \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 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 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 ">\n {{ \'TOOLS.\' + trigger.channel | 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 ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\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 <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 \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" 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\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 </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\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="trunkForm[\'host\'].$error" ng-show="trunkForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="trunkForm[\'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\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="trunkForm[\'defaultuser\'].$error" ng-show="trunkForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="trunkForm[\'registry\'].$error" ng-show="trunkForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description">\n\n <div ng-messages="trunkForm[\'description\'].$error" ng-show="trunkForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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\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 </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 </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 ng-if="vm.crudPermissions.canEdit">\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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="generalForm[\'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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="generalForm[\'defaultuser\'].$error" ng-show="generalForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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-option ng-value="\'h264\'">h264</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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="advancedForm[\'registry\'].$error" ng-show="advancedForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n <div ng-messages="advancedForm[\'fromdomain\'].$error" ng-show="advancedForm[\'fromdomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMUSER">fromuser</label>\n <input type="text" name="fromuser" ng-model="vm.trunk.fromuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n <div ng-messages="advancedForm[\'fromuser\'].$error" ng-show="advancedForm[\'fromuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n <div ng-messages="advancedForm[\'outboundproxy\'].$error" ng-show="advancedForm[\'outboundproxy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n <md-select name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" multiple required ng-disabled="!vm.crudPermissions.canEdit">\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" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport 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 <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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="variableForm[\'name\'].$error" ng-show="variableForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.variable.description">\n\n <div ng-messages="variableForm[\'description\'].$error" ng-show="variableForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="TOOLS.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.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="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</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-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\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/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" 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-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</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="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.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.selectedScreenRecordings =[]">\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="VIDEO.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-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.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="VIDEO.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.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.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.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.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!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\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">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING 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/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <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 ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$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/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit 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">{{ \'TOOLS.EDIT_INTERVAL\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.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>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\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" mdp-disabled="!vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.crudPermissions.canEdit" 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 \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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</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 \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" ng-disabled="!vm.crudPermissions.canEdit">\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 <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" ng-disabled="!vm.crudPermissions.canEdit">\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 \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" ng-disabled="!vm.crudPermissions.canEdit">\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 | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</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 </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" 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 </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'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>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'app\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ARGUMENTS">Arguments</label>\n <input type="text" name="appdata" ng-model="vm.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'appdata\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'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.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'extension\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PRIORITY">Priority</label>\n <input type="text" name="priority" ng-model="vm.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['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>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'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.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'callerID\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="URL" ng-model="vm.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'URL\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n <md-select name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\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.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'agi\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.MACRO">Macro</label>\n <input type="text" name="macro" ng-model="vm.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'macro\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.GOSUB">GoSub</label>\n <input type="text" name="gosub" ng-model="vm.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'gosub\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.RULE">Rule</label>\n <input type="text" name="rule" ng-model="vm.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'rule\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.POSITION">Position</label>\n <input type="number" name="position" ng-model="vm.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'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\n 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.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'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.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'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\n 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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$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.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'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.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'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>'),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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : 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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : 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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="chanSpyForm[\'name\'].$error" ng-show="chanSpyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" ng-required="true">\n\n <div ng-messages="chanSpyForm[\'prefix\'].$error" ng-show="chanSpyForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" multiple required>\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" 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\n <div ng-messages="chanSpyForm[\'description\'].$error" ng-show="chanSpyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($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 </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\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\n <div ng-messages="contextForm[\'name\'].$error" ng-show="contextForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.context.description">\n\n <div ng-messages="contextForm[\'description\'].$error" ng-show="contextForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 ng-init="vm.initialize()" class="inbound-route-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.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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 </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" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description">\n <div ng-messages="inboundrouteForm[\'description\'].$error" ng-show="inboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\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-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" 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 <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\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 \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container 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 ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\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 class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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 </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <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>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-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.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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 </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" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description">\n <div ng-messages="internalrouteForm[\'description\'].$error" ng-show="internalrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\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-internal-routes-button md-icon-button" aria-label="Go to internal routes" 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 <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\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 \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container 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 ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\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 class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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 </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <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>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\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\n <div ng-messages="musiconholdForm[\'name\'].$error" ng-show="musiconholdForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'mode\'].$error" ng-show="musiconholdForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\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\n <div ng-messages="musiconholdForm[\'application\'].$error" ng-show="musiconholdForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'sort\'].$error" ng-show="musiconholdForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ 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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required disabled>\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'application\'].$error" ng-show="generalForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" 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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </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>\n {{mohSound.id}}\n </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>\n {{ mohSound.createdAt | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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 ng-init="vm.initialize()" class="outbound-route-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.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-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 </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" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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" 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\n 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description">\n <div ng-messages="outboundrouteForm[\'description\'].$error" ng-show="outboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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 <md-button type="submit" ng-if="vm.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\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-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" 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 <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\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()" ng-if="vm.crudPermissions.canEdit" 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 </div>\n \x3c!-- /HEADER --\x3e\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 \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container 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 ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ 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" required ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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\n 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.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\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 class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($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 <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\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.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\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.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate" style="width:200px">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $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-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n 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 </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\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 <div layout="row">\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 </div>\n </div>\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 <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 <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\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="VOICE.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.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($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 </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\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 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="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\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 <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $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 <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>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\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.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </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.getAbandonedCalls">\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 md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_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.abandonedCalls.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 ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\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 <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </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.assignTo(call,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-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\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.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" 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.onInit()" query="vm.query" 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 <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\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="5">{{ \'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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'VOICE.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <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 ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"VOICE.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"VOICE.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"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\n 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}}\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.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>\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.ALIAS\' | 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="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 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 privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</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"></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 </div>\n</md-toolbar>\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.ALIAS\' | 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="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 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.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{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"></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"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <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 class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\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<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.getQueues()" query="vm.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 translate="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",'<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.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.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.count > 0">\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="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\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 <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-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.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),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.getTelephones()" query="vm.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.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 translate="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.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\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 translate="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" ng-if="vm.crudPermissions.canEdit">\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\n <div ng-messages="voicemailForm[\'fullname\'].$error" ng-show="voicemailForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'">\n\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" required>\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\n <div ng-messages="voicemailForm[\'mailbox\'].$error" ng-show="voicemailForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fullname\'].$error" ng-show="generalForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\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" required>\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" disabled>\n\n <div ng-messages="generalForm[\'mailbox\'].$error" ng-show="generalForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n <md-select name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ 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 <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 ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'tz\'].$error" ng-show="advancedForm[\'tz\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailbody\'].$error" ng-show="advancedForm[\'emailbody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailsubject\'].$error" ng-show="advancedForm[\'emailsubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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 <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, vm.crudPermissions)">\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 <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\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.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($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 <md-table-container class="font-size-12">\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">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </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>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </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>\n {{ message.stamp | formatdate }}\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 ng-if="vm_dc.crudPermissions.canDelete">\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 <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ 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\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 </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\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 </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($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 </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 ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].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\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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\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 </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" 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\n <div ng-messages="voiceQueueForm[\'description\'].$error" ng-show="voiceQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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" ng-init="vm.onInit()">\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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</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" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\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 </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()" ng-if="vm.crudPermissions.canEdit" 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 <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 disabled>\n\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 </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" required ng-disabled="!vm.crudPermissions.canEdit">\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" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'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" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'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" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="announce.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n </md-tab-label>\n <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 ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="periodic_announce.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_reporthold.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_youarenext.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_thereare.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_callswaiting.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_holdtime.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_minutes.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_minute.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_seconds.canSelect === false">{{ 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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="queue_thankyou.canSelect === false">{{ 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 <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" ng-disabled="!vm.crudPermissions.canEdit"><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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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" ng-disabled="!vm.crudPermissions.canEdit">\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 <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel 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 <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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="VOICE.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.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($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 </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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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 ng-if="vm.crudPermissions.canEdit" 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 ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !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.crudPermissions.canEdit && 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.crudPermissions.canDelete && !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/edit/view.html",'<div id="voice-voiceRecording" 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-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\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="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$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.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings 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.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'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.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.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="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\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="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[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 <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition 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 ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript 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.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\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 class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\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 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\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="20">\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">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\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="20">\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">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\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">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\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">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/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 <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\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="VOICE.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.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($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 </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>{{ \'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 md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | 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="16">\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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : 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" model="\'voiceRecording\'"></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.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\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\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\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/main/apps/whatsapp/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="WHATSAPP.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.onInit()" query="vm.query" 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="\'\'">{{ \'WHATSAPP.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'WHATSAPP.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'WHATSAPP.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'WHATSAPP.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'WHATSAPP.IDLE\' | translate }}</md-option>\n </md-select>\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\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="5">{{ \'WHATSAPP.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">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'WHATSAPP.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'WHATSAPP.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'WHATSAPP.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\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 <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 <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 <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 <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 <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.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="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'WHATSAPP.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 padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (vm.agents[value].phoneBarEnableScreenRecordingByAgent || vm.agents[value].phoneBarEnableAutomaticScreenRecording)">\n <div class="column" ng-if="vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: green; font-size: 36px;" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_ON\' | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n <div class="column" ng-if="!vm.agents[value].screenrecording">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" style="color: gray" aria-label="icon-camcorder-box26">\n <md-tooltip>\n {{ \'WHATSAPP.TOOLTIP_SCREENRECORDING_OFF\' | translate }}\n </md-tooltip>\n </md-icon>\n </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]\">{{\n vm.isPause(vm.agents[value].globalStatus) ? '' : vm.agents[value].globalStatus | uppercase }}\n {{ vm.isPause(vm.agents[value].globalStatus) ? (vm.isPartialPause(vm.agents[value].globalStatus) ?\n '*'+vm.agents[value].pauseType || 'DEFAULT PAUSE' : vm.agents[value].pauseType || 'DEFAULT PAUSE') :\n ''}}</span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"vm.agents[value].lastLoginAt\"></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\"></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]\">{{\n 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]\">{{\n 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]\" privacy ng-cloak>{{\n vm.agents[value].destconnectedlinenum }}</span>\n <span ng-if=\"vm.agents[value].routealias\" 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]\">{{\n vm.agents[value].routealias }}</span>\n <span class=\"padding-5\" ng-if=\"vm.agents[value].queue || vm.agents[value].destconnectedlinenum\">\n <timer start-time=\"vm.agents[value].voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].voiceStatus]\">\n </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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ 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]\">{{\n 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]\">\n {{ vm.agents[value].faxCurrentCapacity }}</td>\n <td class=\"bl bt\" ng-if=\"vm.license.whatsapp\">\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].whatsappStatus]\">{{\n vm.agents[value].whatsappStatus | uppercase }}</span>\n </div>\n </div>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[vm.agents[value].whatsappStatus]\">\n {{ vm.agents[value].whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\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 <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(vm.agents[value], $event)\" translate=\"WHATSAPP.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=\"WHATSAPP.AGENTADD_QUEUE\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && vm.agents[value].phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"WHATSAPP.SCREENRECORDING\">Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if=\"!vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], true)\"><em translate=\"WHATSAPP.START_SCREENRECORDING\">Start\n Screen Recording</em></md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.agents[value].screenrecording\">\n <md-button ng-click=\"vm.screenRecording(vm.agents[value], false)\"><em translate=\"WHATSAPP.STOP_SCREENRECORDING\">Stop\n Screen Recording</em></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=\"WHATSAPP.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=\"WHATSAPP.DEFAULT_PAUSE\">Default\n 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}}\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.isPause(vm.agents[value].globalStatus)\">\n <md-button ng-click=\"vm.unPause(vm.agents[value])\" translate=\"WHATSAPP.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: '{{'WHATSAPP.PAGE' | translate}}:', rowsPerPage: '{{'WHATSAPP.ROWSPERPAGE' | translate}}:', of: '{{'WHATSAPP.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/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\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">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.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.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.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: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/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="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.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/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\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="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition 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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\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="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ 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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" 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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\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 && vm.crudPermissions.canEdit" 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 && vm.crudPermissions.canEdit" 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/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" 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-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\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="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.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.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></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.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.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.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twillo\'" class="md-block">\n <label translate="WHATSAPP.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.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/status?token=\' + vm.whatsappAccount.token + (vm.whatsappAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-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="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.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, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-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="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-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="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId 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="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\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="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\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.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.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_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.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 \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.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 <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.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.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\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.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <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="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\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.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.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.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" 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="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" 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" ng-if="vm_ac.crudPermissions.canEdit">\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="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || 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="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.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.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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.selectedWhatsappAccountApps">\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.whatsappAccountApps.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.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($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.editWhatsappAccountApp($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" ng-if="!vm_ac.crudPermissions.readOnly">\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 ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\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.crudPermissions.canDelete">\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.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" 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="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.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.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </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.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.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="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </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" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </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="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-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.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.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.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.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.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" 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/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</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="WHATSAPP.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.selectedWhatsappAccounts.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.selectedWhatsappAccounts =[]">\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="WHATSAPP.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-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.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.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.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.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT 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 WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.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="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.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" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</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" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" 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-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\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="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.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.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></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.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></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.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.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="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-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="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.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="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.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="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\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="WHATSAPP.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="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.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="WHATSAPP.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="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" 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-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</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="WHATSAPP.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.selectedWhatsappQueues.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.selectedWhatsappQueues =[]">\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="WHATSAPP.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-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.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="WHATSAPP.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.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.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.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.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!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\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">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.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.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE 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 WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE 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" aria-label="Chat Tab Search">\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">\n {{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">\n {{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.oldPassword.$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 ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</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() |\n 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" sessions="vm.webRTCSessions" 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">\n </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"></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"></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\n 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">\n {{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" privacy=\'vm.currentUser.privacyEnabled && (key === "firstName" || key === "lastName" || key === "phone" || key === "mobile" || key === "email" || key === "fax") \' ng-cloak>\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
+++ /dev/null
-[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}md-input-container:not(.md-input-has-value) input:not(:focus){color:inherit!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#00d7cc!important;border-left-color:#00d7cc!important}.right .motion-spinner{border-top-color:#00d7cc!important;border-right-color:#00d7cc!important}.md-option-info-text{font-size:10px}md-pagination-wrapper{width:auto!important}md-autocomplete.no-container-margin md-autocomplete-wrap md-input-container{margin:0!important}md-dialog.report-selection-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.advanced-search-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}.md-dialog-action-center{justify-content:center!important}.flag-24{height:24px}button.auto-width{min-width:auto!important}button.size-8{transform:scale(.8)}md-icon.auto-size{height:auto!important;width:auto!important}md-switch.auto-height{height:auto!important}.hidden{visibility:hidden}.user-profile-section-help{background:#fcf20f0f;border:1px solid rgba(0,0,0,.12);padding:5px}.email-preview-message{display:-webkit-box;margin:0 auto;display:block;height:200px;line-height:1.4;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all}button.advanced-search.md-accent-bg.md-button.md-default-theme:not([disabled]).md-icon-button:hover{background-color:#0091ea}.blink{animation:blink 2s ease-in infinite}.no-click{pointer-events:none}.spinner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:rgba(43,43,43,.5)}ms-quick-filter[disabled]{pointer-events:none;opacity:.7}ms-search-bar[disabled]{pointer-events:none;opacity:.7}@keyframes blink{from,to{opacity:1}50%{opacity:0}}textarea.api-key-area{background:0 0;resize:none}.badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}md-tooltip.multiline div.md-content{height:auto!important}.auto-margin{margin:auto}md-menu-item md-menu.no-margin button{display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-date-range md-menu span.md-select-value{border-bottom-color:rgba(0,0,0,.12)}.keep-on-top{z-index:9999!important}.margin-auto{margin:auto}.xenialab-violet-light-bg{background-color:#9c4fd3!important}.xenialab-violet-light-fg{color:#9c4fd3!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.disabled-button{display:inline-block;position:relative;cursor:default;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:rgba(0,0,0,.12);color:rgba(0,0,0,.38);white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden}.word-break-all{word-break:break-all}@supports (-ms-ime-align:auto){md-tabs{display:inline!important}}@supports (-ms-accelerator:true){md-tabs{display:inline!important}}@supports (-moz-transform:translate(0,0)){md-tabs{display:inline!important}}body[dir=rtl] table.md-table td.md-cell,body[dir=rtl] table.md-table th.md-column{text-align:right!important}body[dir=rtl] table.md-table td.md-cell md-checkbox,body[dir=rtl] table.md-table th.md-column md-checkbox{margin-right:12px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{margin:0 0 0 16px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>a.ms-navigation-button{padding-right:45px}body[dir=rtl] .md-table-pagination>.buttons{direction:ltr}body[dir=rtl] .md-table-pagination>.buttons>.label{direction:rtl}body[dir=rtl] .header .logo .logo-icon{margin:5px 0 0 15px!important}body[dir=rtl] md-switch .md-container{margin-right:inherit!important}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=' icon-'],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:'\e600'}.icon-account-box-outline:before{content:'\e601'}.icon-account-box:before{content:'\e602'}.icon-account-check:before{content:'\e603'}.icon-account-circle:before{content:'\e604'}.icon-account-key:before{content:'\e605'}.icon-account-location:before{content:'\e606'}.icon-account-minus:before{content:'\e607'}.icon-account-multiple-outline:before{content:'\e608'}.icon-account-multiple-plus:before{content:'\e609'}.icon-account-multiple:before{content:'\e60a'}.icon-account-network:before{content:'\e60b'}.icon-account-outline:before{content:'\e60c'}.icon-account-plus:before{content:'\e60d'}.icon-account-remove:before{content:'\e60e'}.icon-account-search:before{content:'\e60f'}.icon-account-switch:before{content:'\e610'}.icon-account:before{content:'\e611'}.icon-airballoon:before{content:'\e612'}.icon-airplane-off:before{content:'\e613'}.icon-airplane:before{content:'\e614'}.icon-alarm-check:before{content:'\e615'}.icon-alarm-multiple:before{content:'\e616'}.icon-alarm-off:before{content:'\e617'}.icon-alarm-plus:before{content:'\e618'}.icon-alarm:before{content:'\e619'}.icon-album:before{content:'\e61a'}.icon-alert-box:before{content:'\e61b'}.icon-alert-circle:before{content:'\e61c'}.icon-alert-octagon:before{content:'\e61d'}.icon-alert:before{content:'\e61e'}.icon-alpha:before{content:'\e61f'}.icon-alphabetical:before{content:'\e620'}.icon-amazon-clouddrive:before{content:'\e621'}.icon-amazon:before{content:'\e622'}.icon-ambulance:before{content:'\e623'}.icon-android-debug-bridge:before{content:'\e624'}.icon-android-studio:before{content:'\e625'}.icon-android:before{content:'\e626'}.icon-apple-finder:before{content:'\e627'}.icon-apple-ios:before{content:'\e628'}.icon-apple-mobileme:before{content:'\e629'}.icon-apple-safari:before{content:'\e62a'}.icon-apple:before{content:'\e62b'}.icon-appnet:before{content:'\e62c'}.icon-apps:before{content:'\e62d'}.icon-archive:before{content:'\e62e'}.icon-arrange-bring-forward:before{content:'\e62f'}.icon-arrange-bring-to-front:before{content:'\e630'}.icon-arrange-send-backward:before{content:'\e631'}.icon-arrange-send-to-back:before{content:'\e632'}.icon-arrow-all:before{content:'\e633'}.icon-arrow-bottom-left:before{content:'\e634'}.icon-arrow-bottom-right:before{content:'\e635'}.icon-arrow-collapse:before{content:'\e636'}.icon-arrow-down-bold-circle-outline:before{content:'\e637'}.icon-arrow-down-bold-circle:before{content:'\e638'}.icon-arrow-down-bold-hexagon-outline:before{content:'\e639'}.icon-arrow-down-bold:before{content:'\e63a'}.icon-arrow-down:before{content:'\e63b'}.icon-arrow-expand:before{content:'\e63c'}.icon-arrow-left-bold-circle-outline:before{content:'\e63d'}.icon-arrow-left-bold-circle:before{content:'\e63e'}.icon-arrow-left-bold-hexagon-outline:before{content:'\e63f'}.icon-arrow-left-bold:before{content:'\e640'}.icon-arrow-left:before{content:'\e641'}.icon-arrow-right-bold-circle-outline:before{content:'\e642'}.icon-arrow-right-bold-circle:before{content:'\e643'}.icon-arrow-right-bold-hexagon-outline:before{content:'\e644'}.icon-arrow-right-bold:before{content:'\e645'}.icon-arrow-right:before{content:'\e646'}.icon-arrow-top-left:before{content:'\e647'}.icon-arrow-top-right:before{content:'\e648'}.icon-arrow-up-bold-circle-outline:before{content:'\e649'}.icon-arrow-up-bold-circle:before{content:'\e64a'}.icon-arrow-up-bold-hexagon-outline:before{content:'\e64b'}.icon-arrow-up-bold:before{content:'\e64c'}.icon-arrow-up:before{content:'\e64d'}.icon-at:before{content:'\e64e'}.icon-attachment:before{content:'\e64f'}.icon-audiobook:before{content:'\e650'}.icon-auto-fix:before{content:'\e651'}.icon-auto-upload:before{content:'\e652'}.icon-baby:before{content:'\e653'}.icon-backburger:before{content:'\e654'}.icon-backup-restore:before{content:'\e655'}.icon-bank:before{content:'\e656'}.icon-barcode:before{content:'\e657'}.icon-barley:before{content:'\e658'}.icon-barrel:before{content:'\e659'}.icon-basecamp:before{content:'\e65a'}.icon-basket-fill:before{content:'\e65b'}.icon-basket-unfill:before{content:'\e65c'}.icon-basket:before{content:'\e65d'}.icon-battery-10:before{content:'\e65e'}.icon-battery-20:before{content:'\e65f'}.icon-battery-30:before{content:'\e660'}.icon-battery-40:before{content:'\e661'}.icon-battery-50:before{content:'\e662'}.icon-battery-60:before{content:'\e663'}.icon-battery-70:before{content:'\e664'}.icon-battery-80:before{content:'\e665'}.icon-battery-90:before{content:'\e666'}.icon-battery-alert:before{content:'\e667'}.icon-battery-charging-20:before{content:'\e668'}.icon-battery-charging-30:before{content:'\e669'}.icon-battery-charging-40:before{content:'\e66a'}.icon-battery-charging-60:before{content:'\e66b'}.icon-battery-charging-80:before{content:'\e66c'}.icon-battery-charging-90:before{content:'\e66d'}.icon-battery-charging-100:before{content:'\e66e'}.icon-battery-minus:before{content:'\e66f'}.icon-battery-negative:before{content:'\e670'}.icon-battery-outline:before{content:'\e671'}.icon-battery-plus:before{content:'\e672'}.icon-battery-positive:before{content:'\e673'}.icon-battery-standard:before{content:'\e674'}.icon-battery-unknown:before{content:'\e675'}.icon-battery:before{content:'\e676'}.icon-beach:before{content:'\e677'}.icon-beaker-empty-outline:before{content:'\e678'}.icon-beaker-empty:before{content:'\e679'}.icon-beaker-outline:before{content:'\e67a'}.icon-beaker:before{content:'\e67b'}.icon-beats:before{content:'\e67c'}.icon-beer:before{content:'\e67d'}.icon-behance:before{content:'\e67e'}.icon-bell-off:before{content:'\e67f'}.icon-bell-outline:before{content:'\e680'}.icon-bell-ring-outline:before{content:'\e681'}.icon-bell-ring:before{content:'\e682'}.icon-bell-sleep:before{content:'\e683'}.icon-bell:before{content:'\e684'}.icon-beta:before{content:'\e685'}.icon-bike:before{content:'\e686'}.icon-bing:before{content:'\e687'}.icon-binoculars:before{content:'\e688'}.icon-bio:before{content:'\e689'}.icon-bitbucket:before{content:'\e68a'}.icon-black-mesa:before{content:'\e68b'}.icon-blackberry:before{content:'\e68c'}.icon-blinds:before{content:'\e68d'}.icon-block-helper:before{content:'\e68e'}.icon-blogger:before{content:'\e68f'}.icon-bluetooth-audio:before{content:'\e690'}.icon-bluetooth-connect:before{content:'\e691'}.icon-bluetooth-settings:before{content:'\e692'}.icon-bluetooth-transfer:before{content:'\e693'}.icon-bluetooth:before{content:'\e694'}.icon-blur-linear:before{content:'\e695'}.icon-blur-off:before{content:'\e696'}.icon-blur-radial:before{content:'\e697'}.icon-blur:before{content:'\e698'}.icon-bone:before{content:'\e699'}.icon-book-multiple-variant:before{content:'\e69a'}.icon-book-multiple:before{content:'\e69b'}.icon-book-open:before{content:'\e69c'}.icon-book-variant:before{content:'\e69d'}.icon-book:before{content:'\e69e'}.icon-bookmark-check:before{content:'\e69f'}.icon-bookmark-music:before{content:'\e6a0'}.icon-bookmark-outline-plus:before{content:'\e6a1'}.icon-bookmark-outline:before{content:'\e6a2'}.icon-bookmark-plus:before{content:'\e6a3'}.icon-bookmark-remove:before{content:'\e6a4'}.icon-bookmark:before{content:'\e6a5'}.icon-border-all:before{content:'\e6a6'}.icon-border-bottom:before{content:'\e6a7'}.icon-border-color:before{content:'\e6a8'}.icon-border-horizontal:before{content:'\e6a9'}.icon-border-inside:before{content:'\e6aa'}.icon-border-left:before{content:'\e6ab'}.icon-border-none:before{content:'\e6ac'}.icon-border-outside:before{content:'\e6ad'}.icon-border-right:before{content:'\e6ae'}.icon-border-top:before{content:'\e6af'}.icon-border-vertical:before{content:'\e6b0'}.icon-bowling:before{content:'\e6b1'}.icon-box-download:before{content:'\e6b2'}.icon-box-upload:before{content:'\e6b3'}.icon-box:before{content:'\e6b4'}.icon-briefcase-checked:before{content:'\e6b5'}.icon-briefcase-download:before{content:'\e6b6'}.icon-briefcase-upload:before{content:'\e6b7'}.icon-briefcase:before{content:'\e6b8'}.icon-brightness-1:before{content:'\e6b9'}.icon-brightness-2:before{content:'\e6ba'}.icon-brightness-3:before{content:'\e6bb'}.icon-brightness-4:before{content:'\e6bc'}.icon-brightness-5:before{content:'\e6bd'}.icon-brightness-6:before{content:'\e6be'}.icon-brightness-7:before{content:'\e6bf'}.icon-brightness-auto:before{content:'\e6c0'}.icon-brightness:before{content:'\e6c1'}.icon-broom:before{content:'\e6c2'}.icon-brush:before{content:'\e6c3'}.icon-bug:before{content:'\e6c4'}.icon-bulletin-board:before{content:'\e6c5'}.icon-bullhorn:before{content:'\e6c6'}.icon-bus:before{content:'\e6c7'}.icon-cake-variant:before{content:'\e6c8'}.icon-cake:before{content:'\e6c9'}.icon-calculator:before{content:'\e6ca'}.icon-calendar-blank:before{content:'\e6cb'}.icon-calendar-check-multiple:before{content:'\e6cc'}.icon-calendar-check:before{content:'\e6cd'}.icon-calendar-clock:before{content:'\e6ce'}.icon-calendar-multiple:before{content:'\e6cf'}.icon-calendar-plus:before{content:'\e6d0'}.icon-calendar-remove:before{content:'\e6d1'}.icon-calendar-select:before{content:'\e6d2'}.icon-calendar-text:before{content:'\e6d3'}.icon-calendar-today:before{content:'\e6d4'}.icon-calendar:before{content:'\e6d5'}.icon-camcorder-box-off:before{content:'\e6d6'}.icon-camcorder-box:before{content:'\e6d7'}.icon-camcorder-off:before{content:'\e6d8'}.icon-camcorder:before{content:'\e6d9'}.icon-camera-front-variant:before{content:'\e6da'}.icon-camera-front:before{content:'\e6db'}.icon-camera-iris:before{content:'\e6dc'}.icon-camera-party-mode:before{content:'\e6dd'}.icon-camera-rear-variant:before{content:'\e6de'}.icon-camera-rear:before{content:'\e6df'}.icon-camera-switch:before{content:'\e6e0'}.icon-camera-timer:before{content:'\e6e1'}.icon-camera:before{content:'\e6e2'}.icon-cancel:before{content:'\e6e3'}.icon-candycane:before{content:'\e6e4'}.icon-car-wash:before{content:'\e6e5'}.icon-car:before{content:'\e6e6'}.icon-carrot:before{content:'\e6e7'}.icon-cart-outline:before{content:'\e6e8'}.icon-cart:before{content:'\e6e9'}.icon-cash-100:before{content:'\e6ea'}.icon-cash-multiple:before{content:'\e6eb'}.icon-cash-usd:before{content:'\e6ec'}.icon-cash:before{content:'\e6ed'}.icon-cast-connected:before{content:'\e6ee'}.icon-cast:before{content:'\e6ef'}.icon-castle:before{content:'\e6f0'}.icon-cat:before{content:'\e6f1'}.icon-cellphone-android:before{content:'\e6f2'}.icon-cellphone-dock:before{content:'\e6f3'}.icon-cellphone-iphone:before{content:'\e6f4'}.icon-cellphone-link-off:before{content:'\e6f5'}.icon-cellphone-link:before{content:'\e6f6'}.icon-cellphone-settings:before{content:'\e6f7'}.icon-cellphone:before{content:'\e6f8'}.icon-chair-school:before{content:'\e6f9'}.icon-chart-arc:before{content:'\e6fa'}.icon-chart-areaspline:before{content:'\e6fb'}.icon-chart-bar:before{content:'\e6fc'}.icon-chart-histogram:before{content:'\e6fd'}.icon-chart-line:before{content:'\e6fe'}.icon-chart-pie:before{content:'\e6ff'}.icon-check-all:before{content:'\e700'}.icon-check-bookmark:before{content:'\e701'}.icon-check-circle:before{content:'\e702'}.icon-check:before{content:'\e703'}.icon-checkbox-blank-circle-outline:before{content:'\e704'}.icon-checkbox-blank-circle:before{content:'\e705'}.icon-checkbox-blank-outline:before{content:'\e706'}.icon-checkbox-blank:before{content:'\e707'}.icon-checkbox-marked-circle-outline:before{content:'\e708'}.icon-checkbox-marked-circle:before{content:'\e709'}.icon-checkbox-marked-outline:before{content:'\e70a'}.icon-checkbox-marked:before{content:'\e70b'}.icon-checkbox-multiple-blank-outline:before{content:'\e70c'}.icon-checkbox-multiple-blank:before{content:'\e70d'}.icon-checkbox-multiple-marked-outline:before{content:'\e70e'}.icon-checkbox-multiple-marked:before{content:'\e70f'}.icon-checkerboard:before{content:'\e710'}.icon-chevron-double-down:before{content:'\e711'}.icon-chevron-double-left:before{content:'\e712'}.icon-chevron-double-right:before{content:'\e713'}.icon-chevron-double-up:before{content:'\e714'}.icon-chevron-down:before{content:'\e715'}.icon-chevron-left:before{content:'\e716'}.icon-chevron-right:before{content:'\e717'}.icon-chevron-up:before{content:'\e718'}.icon-church:before{content:'\e719'}.icon-cisco-webex:before{content:'\e71a'}.icon-city:before{content:'\e71b'}.icon-clapperboard:before{content:'\e71c'}.icon-clipboard-account:before{content:'\e71d'}.icon-clipboard-alert:before{content:'\e71e'}.icon-clipboard-arrow-down:before{content:'\e71f'}.icon-clipboard-arrow-left:before{content:'\e720'}.icon-clipboard-check:before{content:'\e721'}.icon-clipboard-outline:before{content:'\e722'}.icon-clipboard-text:before{content:'\e723'}.icon-clipboard:before{content:'\e724'}.icon-clippy:before{content:'\e725'}.icon-clock-fast:before{content:'\e726'}.icon-clock:before{content:'\e727'}.icon-close-circle-outline:before{content:'\e728'}.icon-close-circle:before{content:'\e729'}.icon-close-network:before{content:'\e72a'}.icon-close:before{content:'\e72b'}.icon-closed-caption:before{content:'\e72c'}.icon-cloud-check:before{content:'\e72d'}.icon-cloud-circle:before{content:'\e72e'}.icon-cloud-download:before{content:'\e72f'}.icon-cloud-outline-off:before{content:'\e730'}.icon-cloud-outline:before{content:'\e731'}.icon-cloud-upload:before{content:'\e732'}.icon-cloud:before{content:'\e733'}.icon-code-array:before{content:'\e734'}.icon-code-braces:before{content:'\e735'}.icon-code-equal:before{content:'\e736'}.icon-code-greater-than-or-equal:before{content:'\e737'}.icon-code-greater-than:before{content:'\e738'}.icon-code-less-than-or-equal:before{content:'\e739'}.icon-code-less-than:before{content:'\e73a'}.icon-code-not-equal-variant:before{content:'\e73b'}.icon-code-not-equal:before{content:'\e73c'}.icon-code-string:before{content:'\e73d'}.icon-code-tags:before{content:'\e73e'}.icon-codepen:before{content:'\e73f'}.icon-coffee-to-go:before{content:'\e740'}.icon-coffee:before{content:'\e741'}.icon-cog-box:before{content:'\e742'}.icon-cog:before{content:'\e743'}.icon-coin:before{content:'\e744'}.icon-color-helper:before{content:'\e745'}.icon-comment-account-outline:before{content:'\e746'}.icon-comment-account:before{content:'\e747'}.icon-comment-alert-outline:before{content:'\e748'}.icon-comment-alert:before{content:'\e749'}.icon-comment-check-outline:before{content:'\e74a'}.icon-comment-check:before{content:'\e74b'}.icon-comment-multipe-outline:before{content:'\e74c'}.icon-comment-outline:before{content:'\e74d'}.icon-comment-plus-outline:before{content:'\e74e'}.icon-comment-processing-outline:before{content:'\e74f'}.icon-comment-processing:before{content:'\e750'}.icon-comment-remove-outline:before{content:'\e751'}.icon-comment-text-outline:before{content:'\e752'}.icon-comment-text:before{content:'\e753'}.icon-comment:before{content:'\e754'}.icon-compare:before{content:'\e755'}.icon-compass-outline:before{content:'\e756'}.icon-compass:before{content:'\e757'}.icon-console:before{content:'\e758'}.icon-content-copy:before{content:'\e759'}.icon-content-cut:before{content:'\e75a'}.icon-content-duplicate:before{content:'\e75b'}.icon-content-paste:before{content:'\e75c'}.icon-content-save-all:before{content:'\e75d'}.icon-content-save:before{content:'\e75e'}.icon-contrast-box:before{content:'\e75f'}.icon-contrast-circle:before{content:'\e760'}.icon-contrast:before{content:'\e761'}.icon-controller-xbox:before{content:'\e762'}.icon-cow:before{content:'\e763'}.icon-credit-card-multiple:before{content:'\e764'}.icon-credit-card:before{content:'\e765'}.icon-crop-free:before{content:'\e766'}.icon-crop-landscape:before{content:'\e767'}.icon-crop-portrait:before{content:'\e768'}.icon-crop-square:before{content:'\e769'}.icon-crop:before{content:'\e76a'}.icon-crosshairs-gps:before{content:'\e76b'}.icon-crosshairs:before{content:'\e76c'}.icon-crown:before{content:'\e76d'}.icon-cube-outline:before{content:'\e76e'}.icon-cube-unfolded:before{content:'\e76f'}.icon-cube:before{content:'\e770'}.icon-cup-water:before{content:'\e771'}.icon-cup:before{content:'\e772'}.icon-currency-btc:before{content:'\e773'}.icon-currency-eur:before{content:'\e774'}.icon-currency-gbp:before{content:'\e775'}.icon-currency-inr:before{content:'\e776'}.icon-currency-rub:before{content:'\e777'}.icon-currency-try:before{content:'\e778'}.icon-currency-usd:before{content:'\e779'}.icon-cursor-default-outline:before{content:'\e77a'}.icon-cursor-default:before{content:'\e77b'}.icon-cursor-move:before{content:'\e77c'}.icon-cursor-pointer:before{content:'\e77d'}.icon-data:before{content:'\e77e'}.icon-debug-step-into:before{content:'\e77f'}.icon-debug-step-out:before{content:'\e780'}.icon-debug-step-over:before{content:'\e781'}.icon-decimal-decrease:before{content:'\e782'}.icon-decimal-increase:before{content:'\e783'}.icon-delete-variant:before{content:'\e784'}.icon-delete:before{content:'\e785'}.icon-deskphone:before{content:'\e786'}.icon-desktop-mac:before{content:'\e787'}.icon-desktop-tower:before{content:'\e788'}.icon-details:before{content:'\e789'}.icon-deviantart:before{content:'\e78a'}.icon-diamond:before{content:'\e78b'}.icon-dice-1:before{content:'\e78c'}.icon-dice-2:before{content:'\e78d'}.icon-dice-3:before{content:'\e78e'}.icon-dice-4:before{content:'\e78f'}.icon-dice-5:before{content:'\e790'}.icon-dice-6:before{content:'\e791'}.icon-dice:before{content:'\e792'}.icon-directions:before{content:'\e793'}.icon-disk-alert:before{content:'\e794'}.icon-disqus-outline:before{content:'\e795'}.icon-disqus:before{content:'\e796'}.icon-division-box:before{content:'\e797'}.icon-division:before{content:'\e798'}.icon-dns:before{content:'\e799'}.icon-document:before{content:'\e79a'}.icon-domain:before{content:'\e79b'}.icon-dots-horizontal:before{content:'\e79c'}.icon-dots-vertical:before{content:'\e79d'}.icon-download:before{content:'\e79e'}.icon-drag-horizontal:before{content:'\e79f'}.icon-drag-vertical:before{content:'\e7a0'}.icon-drag:before{content:'\e7a1'}.icon-drawing-box:before{content:'\e7a2'}.icon-drawing:before{content:'\e7a3'}.icon-dribbble-box:before{content:'\e7a4'}.icon-dribbble:before{content:'\e7a5'}.icon-drone:before{content:'\e7a6'}.icon-dropbox:before{content:'\e7a7'}.icon-drupal:before{content:'\e7a8'}.icon-duck:before{content:'\e7a9'}.icon-dumbbell:before{content:'\e7aa'}.icon-earth-off:before{content:'\e7ab'}.icon-earth:before{content:'\e7ac'}.icon-ebay:before{content:'\e7ad'}.icon-edge:before{content:'\e7ae'}.icon-eject:before{content:'\e7af'}.icon-elevation-decline:before{content:'\e7b0'}.icon-elevation-rise:before{content:'\e7b1'}.icon-elevator:before{content:'\e7b2'}.icon-email-open:before{content:'\e7b3'}.icon-email-secure:before{content:'\e7b4'}.icon-email:before{content:'\e7b5'}.icon-emoticon-cool:before{content:'\e7b6'}.icon-emoticon-devil:before{content:'\e7b7'}.icon-emoticon-happy:before{content:'\e7b8'}.icon-emoticon-neutral:before{content:'\e7b9'}.icon-emoticon-poop:before{content:'\e7ba'}.icon-emoticon-sad:before{content:'\e7bb'}.icon-emoticon-tongue:before{content:'\e7bc'}.icon-emoticon:before{content:'\e7bd'}.icon-engine-outline:before{content:'\e7be'}.icon-engine:before{content:'\e7bf'}.icon-equal-box:before{content:'\e7c0'}.icon-equal:before{content:'\e7c1'}.icon-eraser:before{content:'\e7c2'}.icon-escalator:before{content:'\e7c3'}.icon-etsy:before{content:'\e7c4'}.icon-evernote:before{content:'\e7c5'}.icon-exclamation:before{content:'\e7c6'}.icon-exit-to-app:before{content:'\e7c7'}.icon-export:before{content:'\e7c8'}.icon-eye-off:before{content:'\e7c9'}.icon-eye:before{content:'\e7ca'}.icon-eyedropper-variant:before{content:'\e7cb'}.icon-eyedropper:before{content:'\e7cc'}.icon-facebook-box:before{content:'\e7cd'}.icon-facebook:before{content:'\e7ce'}.icon-factory:before{content:'\e7cf'}.icon-fan:before{content:'\e7d0'}.icon-fast-forward:before{content:'\e7d1'}.icon-ferry:before{content:'\e7d2'}.icon-file-cloud:before{content:'\e7d3'}.icon-file-delimited:before{content:'\e7d4'}.icon-file-document-box:before{content:'\e7d5'}.icon-file-document:before{content:'\e7d6'}.icon-file-excel-box:before{content:'\e7d7'}.icon-file-excel:before{content:'\e7d8'}.icon-file-find:before{content:'\e7d9'}.icon-file-hidden:before{content:'\e7da'}.icon-file-image-box:before{content:'\e7db'}.icon-file-image:before{content:'\e7dc'}.icon-file-multiple:before{content:'\e7dd'}.icon-file-music:before{content:'\e7de'}.icon-file-outline:before{content:'\e7df'}.icon-file-pdf-box:before{content:'\e7e0'}.icon-file-pdf:before{content:'\e7e1'}.icon-file-powerpoint-box:before{content:'\e7e2'}.icon-file-powerpoint:before{content:'\e7e3'}.icon-file-presentation-box:before{content:'\e7e4'}.icon-file-video:before{content:'\e7e5'}.icon-file-word-box:before{content:'\e7e6'}.icon-file-word:before{content:'\e7e7'}.icon-file-xml:before{content:'\e7e8'}.icon-file:before{content:'\e7e9'}.icon-fill:before{content:'\e7ea'}.icon-film:before{content:'\e7eb'}.icon-filmstrip-off:before{content:'\e7ec'}.icon-filmstrip:before{content:'\e7ed'}.icon-filter-outline:before{content:'\e7ee'}.icon-filter-remove-outline:before{content:'\e7ef'}.icon-filter-remove:before{content:'\e7f0'}.icon-filter-variant:before{content:'\e7f1'}.icon-filter:before{content:'\e7f2'}.icon-fire:before{content:'\e7f3'}.icon-fish:before{content:'\e7f4'}.icon-flag-checkered-variant:before{content:'\e7f5'}.icon-flag-checkered:before{content:'\e7f6'}.icon-flag-outline-variant:before{content:'\e7f7'}.icon-flag-outline:before{content:'\e7f8'}.icon-flag-triangle:before{content:'\e7f9'}.icon-flag-variant:before{content:'\e7fa'}.icon-flag:before{content:'\e7fb'}.icon-flash-auto:before{content:'\e7fc'}.icon-flash-off:before{content:'\e7fd'}.icon-flash:before{content:'\e7fe'}.icon-flashlight-off:before{content:'\e7ff'}.icon-flashlight:before{content:'\e800'}.icon-flattr:before{content:'\e801'}.icon-flickr-after:before{content:'\e802'}.icon-flickr-before:before{content:'\e803'}.icon-flip-to-back:before{content:'\e804'}.icon-flip-to-front:before{content:'\e805'}.icon-floppy:before{content:'\e806'}.icon-flower:before{content:'\e807'}.icon-folder-account:before{content:'\e808'}.icon-folder-download:before{content:'\e809'}.icon-folder-google-drive:before{content:'\e80a'}.icon-folder-image:before{content:'\e80b'}.icon-folder-lock-open:before{content:'\e80c'}.icon-folder-lock:before{content:'\e80d'}.icon-folder-move:before{content:'\e80e'}.icon-folder-multiple-image:before{content:'\e80f'}.icon-folder-multiple-outline:before{content:'\e810'}.icon-folder-multiple:before{content:'\e811'}.icon-folder-outline-lock:before{content:'\e812'}.icon-folder-outline:before{content:'\e813'}.icon-folder-plus:before{content:'\e814'}.icon-folder-remove:before{content:'\e815'}.icon-folder-upload:before{content:'\e816'}.icon-folder:before{content:'\e817'}.icon-food-apple:before{content:'\e818'}.icon-food-variant:before{content:'\e819'}.icon-food:before{content:'\e81a'}.icon-football-helmet:before{content:'\e81b'}.icon-football:before{content:'\e81c'}.icon-format-align-center:before{content:'\e81d'}.icon-format-align-justify:before{content:'\e81e'}.icon-format-align-left:before{content:'\e81f'}.icon-format-align-right:before{content:'\e820'}.icon-format-bold:before{content:'\e821'}.icon-format-clear:before{content:'\e822'}.icon-format-color-fill:before{content:'\e823'}.icon-format-color:before{content:'\e824'}.icon-format-float-center:before{content:'\e825'}.icon-format-float-left:before{content:'\e826'}.icon-format-float-none:before{content:'\e827'}.icon-format-float-right:before{content:'\e828'}.icon-format-header-1:before{content:'\e829'}.icon-format-header-2:before{content:'\e82a'}.icon-format-header-3:before{content:'\e82b'}.icon-format-header-4:before{content:'\e82c'}.icon-format-header-5:before{content:'\e82d'}.icon-format-header-6:before{content:'\e82e'}.icon-format-header-decrease:before{content:'\e82f'}.icon-format-header-down:before{content:'\e830'}.icon-format-header-equal:before{content:'\e831'}.icon-format-header-increase:before{content:'\e832'}.icon-format-header-pound:before{content:'\e833'}.icon-format-header-up:before{content:'\e834'}.icon-format-indent-decrease:before{content:'\e835'}.icon-format-indent-increase:before{content:'\e836'}.icon-format-italic:before{content:'\e837'}.icon-format-line-spacing:before{content:'\e838'}.icon-format-list-bulleted:before{content:'\e839'}.icon-format-list-numbers:before{content:'\e83a'}.icon-format-object-inline:before{content:'\e83b'}.icon-format-object-square:before{content:'\e83c'}.icon-format-object-tight:before{content:'\e83d'}.icon-format-object-top-bottom:before{content:'\e83e'}.icon-format-paint:before{content:'\e83f'}.icon-format-paragraph:before{content:'\e840'}.icon-format-quote:before{content:'\e841'}.icon-format-size:before{content:'\e842'}.icon-format-strikethrough:before{content:'\e843'}.icon-format-subscript:before{content:'\e844'}.icon-format-superscript:before{content:'\e845'}.icon-format-text:before{content:'\e846'}.icon-format-textdirection-l-to-r:before{content:'\e847'}.icon-format-textdirection-r-to-l:before{content:'\e848'}.icon-format-underline:before{content:'\e849'}.icon-forum:before{content:'\e84a'}.icon-forward:before{content:'\e84b'}.icon-foursquare:before{content:'\e84c'}.icon-fridge:before{content:'\e84d'}.icon-fullscreen-exit:before{content:'\e84e'}.icon-fullscreen:before{content:'\e84f'}.icon-function:before{content:'\e850'}.icon-gamepad-variant:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-gas-station:before{content:'\e853'}.icon-gavel:before{content:'\e854'}.icon-gender-female:before{content:'\e855'}.icon-gender-male-female:before{content:'\e856'}.icon-gender-male:before{content:'\e857'}.icon-gender-transgender:before{content:'\e858'}.icon-gift:before{content:'\e859'}.icon-git:before{content:'\e85a'}.icon-github-box:before{content:'\e85b'}.icon-github:before{content:'\e85c'}.icon-glass-flute:before{content:'\e85d'}.icon-glass-mug:before{content:'\e85e'}.icon-glass-stange:before{content:'\e85f'}.icon-glass-tulip:before{content:'\e860'}.icon-glasses:before{content:'\e861'}.icon-gmail:before{content:'\e862'}.icon-google-chrome:before{content:'\e863'}.icon-google-circles-communities:before{content:'\e864'}.icon-google-circles-extended:before{content:'\e865'}.icon-google-circles-invite:before{content:'\e866'}.icon-google-circles:before{content:'\e867'}.icon-google-controller-off:before{content:'\e868'}.icon-google-controller:before{content:'\e869'}.icon-google-drive:before{content:'\e86a'}.icon-google-earth:before{content:'\e86b'}.icon-google-glass:before{content:'\e86c'}.icon-google-maps:before{content:'\e86d'}.icon-google-pages:before{content:'\e86e'}.icon-google-play:before{content:'\e86f'}.icon-google-plus-box:before{content:'\e870'}.icon-google-plus:before{content:'\e871'}.icon-google:before{content:'\e872'}.icon-grid-off:before{content:'\e873'}.icon-grid:before{content:'\e874'}.icon-group:before{content:'\e875'}.icon-hand-pointing-right:before{content:'\e876'}.icon-hanger:before{content:'\e877'}.icon-hangouts:before{content:'\e878'}.icon-harddisk:before{content:'\e879'}.icon-headphones-box:before{content:'\e87a'}.icon-headphones-dots:before{content:'\e87b'}.icon-headphones:before{content:'\e87c'}.icon-headset-dock:before{content:'\e87d'}.icon-headset-off:before{content:'\e87e'}.icon-headset:before{content:'\e87f'}.icon-heart-box-outline:before{content:'\e880'}.icon-heart-box:before{content:'\e881'}.icon-heart-broken:before{content:'\e882'}.icon-heart-outline:before{content:'\e883'}.icon-heart:before{content:'\e884'}.icon-help-circle:before{content:'\e885'}.icon-help:before{content:'\e886'}.icon-hexagon-outline:before{content:'\e887'}.icon-hexagon:before{content:'\e888'}.icon-history:before{content:'\e889'}.icon-hololens:before{content:'\e88a'}.icon-home-modern:before{content:'\e88b'}.icon-home-variant:before{content:'\e88c'}.icon-home:before{content:'\e88d'}.icon-hops:before{content:'\e88e'}.icon-hospital-building:before{content:'\e88f'}.icon-hospital-marker:before{content:'\e890'}.icon-hospital:before{content:'\e891'}.icon-hotel:before{content:'\e892'}.icon-houzz-box:before{content:'\e893'}.icon-human-child:before{content:'\e894'}.icon-human-male-female:before{content:'\e895'}.icon-human:before{content:'\e896'}.icon-image-album:before{content:'\e897'}.icon-image-area-close:before{content:'\e898'}.icon-image-area:before{content:'\e899'}.icon-image-broken:before{content:'\e89a'}.icon-image-filter-black-white:before{content:'\e89b'}.icon-image-filter-center-focus:before{content:'\e89c'}.icon-image-filter-drama:before{content:'\e89d'}.icon-image-filter-frames:before{content:'\e89e'}.icon-image-filter-hdr:before{content:'\e89f'}.icon-image-filter-none:before{content:'\e8a0'}.icon-image-filter-tilt-shift:before{content:'\e8a1'}.icon-image-filter-vintage:before{content:'\e8a2'}.icon-image-filter:before{content:'\e8a3'}.icon-image:before{content:'\e8a4'}.icon-import:before{content:'\e8a5'}.icon-inbox:before{content:'\e8a6'}.icon-indent:before{content:'\e8a7'}.icon-information-outline:before{content:'\e8a8'}.icon-information:before{content:'\e8a9'}.icon-instagram:before{content:'\e8aa'}.icon-instapaper:before{content:'\e8ab'}.icon-internet-explorer:before{content:'\e8ac'}.icon-invert-colors:before{content:'\e8ad'}.icon-jira:before{content:'\e8ae'}.icon-jsfiddle:before{content:'\e8af'}.icon-keg:before{content:'\e8b0'}.icon-key-change:before{content:'\e8b1'}.icon-key-minus:before{content:'\e8b2'}.icon-key-plus:before{content:'\e8b3'}.icon-key-remove:before{content:'\e8b4'}.icon-key-variant:before{content:'\e8b5'}.icon-key:before{content:'\e8b6'}.icon-keyboard-backspace:before{content:'\e8b7'}.icon-keyboard-caps:before{content:'\e8b8'}.icon-keyboard-close:before{content:'\e8b9'}.icon-keyboard-off:before{content:'\e8ba'}.icon-keyboard-return:before{content:'\e8bb'}.icon-keyboard-tab:before{content:'\e8bc'}.icon-keyboard-variant:before{content:'\e8bd'}.icon-keyboard:before{content:'\e8be'}.icon-label-outline:before{content:'\e8bf'}.icon-label:before{content:'\e8c0'}.icon-language-csharp:before{content:'\e8c1'}.icon-language-css3:before{content:'\e8c2'}.icon-language-html5:before{content:'\e8c3'}.icon-language-javascript:before{content:'\e8c4'}.icon-language-python-text:before{content:'\e8c5'}.icon-language-python:before{content:'\e8c6'}.icon-laptop-chromebook:before{content:'\e8c7'}.icon-laptop-mac:before{content:'\e8c8'}.icon-laptop-windows:before{content:'\e8c9'}.icon-laptop:before{content:'\e8ca'}.icon-lastfm:before{content:'\e8cb'}.icon-launch:before{content:'\e8cc'}.icon-layers-off:before{content:'\e8cd'}.icon-layers:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-library-books:before{content:'\e8d0'}.icon-library-music:before{content:'\e8d1'}.icon-library-plus:before{content:'\e8d2'}.icon-library:before{content:'\e8d3'}.icon-lightbulb-outline:before{content:'\e8d4'}.icon-lightbulb:before{content:'\e8d5'}.icon-link-off:before{content:'\e8d6'}.icon-link-variant-off:before{content:'\e8d7'}.icon-link-variant:before{content:'\e8d8'}.icon-link:before{content:'\e8d9'}.icon-linkedin-box:before{content:'\e8da'}.icon-linkedin:before{content:'\e8db'}.icon-linode:before{content:'\e8dc'}.icon-linux:before{content:'\e8dd'}.icon-lock-outline:before{content:'\e8de'}.icon-lock-unlocked-outline:before{content:'\e8df'}.icon-lock-unlocked:before{content:'\e8e0'}.icon-lock:before{content:'\e8e1'}.icon-login:before{content:'\e8e2'}.icon-logout:before{content:'\e8e3'}.icon-looks:before{content:'\e8e4'}.icon-loupe:before{content:'\e8e5'}.icon-lumx:before{content:'\e8e6'}.icon-magnet-on:before{content:'\e8e7'}.icon-magnet:before{content:'\e8e8'}.icon-magnify-minus:before{content:'\e8e9'}.icon-magnify-plus:before{content:'\e8ea'}.icon-magnify:before{content:'\e8eb'}.icon-mail-ru:before{content:'\e8ec'}.icon-map-marker-circle:before{content:'\e8ed'}.icon-map-marker-multiple:before{content:'\e8ee'}.icon-map-marker-off:before{content:'\e8ef'}.icon-map-marker-radius:before{content:'\e8f0'}.icon-map-marker:before{content:'\e8f1'}.icon-map:before{content:'\e8f2'}.icon-margin:before{content:'\e8f3'}.icon-markdown:before{content:'\e8f4'}.icon-marker-check:before{content:'\e8f5'}.icon-martini:before{content:'\e8f6'}.icon-material-ui:before{content:'\e8f7'}.icon-maxcdn:before{content:'\e8f8'}.icon-medium:before{content:'\e8f9'}.icon-memory:before{content:'\e8fa'}.icon-menu-down:before{content:'\e8fb'}.icon-menu-left:before{content:'\e8fc'}.icon-menu-right:before{content:'\e8fd'}.icon-menu-up:before{content:'\e8fe'}.icon-menu:before{content:'\e8ff'}.icon-message-alert:before{content:'\e900'}.icon-message-draw:before{content:'\e901'}.icon-message-image:before{content:'\e902'}.icon-message-processing:before{content:'\e903'}.icon-message-reply:before{content:'\e904'}.icon-message-text-outline:before{content:'\e905'}.icon-message-text:before{content:'\e906'}.icon-message-video:before{content:'\e907'}.icon-message:before{content:'\e908'}.icon-microphone-dots:before{content:'\e909'}.icon-microphone-off:before{content:'\e90a'}.icon-microphone-outline:before{content:'\e90b'}.icon-microphone-settings:before{content:'\e90c'}.icon-microphone-variant-off:before{content:'\e90d'}.icon-microphone-variant:before{content:'\e90e'}.icon-microphone:before{content:'\e90f'}.icon-minus-box:before{content:'\e910'}.icon-minus-circle-outline:before{content:'\e911'}.icon-minus-circle:before{content:'\e912'}.icon-minus-network:before{content:'\e913'}.icon-minus:before{content:'\e914'}.icon-monitor-multiple:before{content:'\e915'}.icon-monitor:before{content:'\e916'}.icon-more:before{content:'\e917'}.icon-mouse-off:before{content:'\e918'}.icon-mouse-variant-off:before{content:'\e919'}.icon-mouse-variant:before{content:'\e91a'}.icon-mouse:before{content:'\e91b'}.icon-movie:before{content:'\e91c'}.icon-multiplication-box:before{content:'\e91d'}.icon-multiplication:before{content:'\e91e'}.icon-music-box-outline:before{content:'\e91f'}.icon-music-box:before{content:'\e920'}.icon-music-circle:before{content:'\e921'}.icon-music-note-eighth:before{content:'\e922'}.icon-music-note-half:before{content:'\e923'}.icon-music-note-off:before{content:'\e924'}.icon-music-note-quarter:before{content:'\e925'}.icon-music-note-sixteenth:before{content:'\e926'}.icon-music-note-whole:before{content:'\e927'}.icon-music-note:before{content:'\e928'}.icon-nature-people:before{content:'\e929'}.icon-nature:before{content:'\e92a'}.icon-navigation:before{content:'\e92b'}.icon-needle:before{content:'\e92c'}.icon-nest-protect:before{content:'\e92d'}.icon-nest-thermostat:before{content:'\e92e'}.icon-newspaper:before{content:'\e92f'}.icon-nfc-tap:before{content:'\e930'}.icon-nfc-variant:before{content:'\e931'}.icon-nfc:before{content:'\e932'}.icon-no:before{content:'\e933'}.icon-not-equal:before{content:'\e934'}.icon-note-outline:before{content:'\e935'}.icon-note-text:before{content:'\e936'}.icon-note:before{content:'\e937'}.icon-numeric-0-box-multiple-outline:before{content:'\e938'}.icon-numeric-0-box-outline:before{content:'\e939'}.icon-numeric-0-box:before{content:'\e93a'}.icon-numeric-1-box-multiple-outline:before{content:'\e93b'}.icon-numeric-1-box-outline:before{content:'\e93c'}.icon-numeric-1-box:before{content:'\e93d'}.icon-numeric-2-box-multiple-outline:before{content:'\e93e'}.icon-numeric-2-box-outline:before{content:'\e93f'}.icon-numeric-2-box:before{content:'\e940'}.icon-numeric-3-box-multiple-outline:before{content:'\e941'}.icon-numeric-3-box-outline:before{content:'\e942'}.icon-numeric-3-box:before{content:'\e943'}.icon-numeric-4-box-multiple-outline:before{content:'\e944'}.icon-numeric-4-box-outline:before{content:'\e945'}.icon-numeric-4-box:before{content:'\e946'}.icon-numeric-5-box-multiple-outline:before{content:'\e947'}.icon-numeric-5-box-outline:before{content:'\e948'}.icon-numeric-5-box:before{content:'\e949'}.icon-numeric-6-box-multiple-outline:before{content:'\e94a'}.icon-numeric-6-box-outline:before{content:'\e94b'}.icon-numeric-6-box:before{content:'\e94c'}.icon-numeric-7-box-multiple-outline:before{content:'\e94d'}.icon-numeric-7-box-outline:before{content:'\e94e'}.icon-numeric-7-box:before{content:'\e94f'}.icon-numeric-8-box-multiple-outline:before{content:'\e950'}.icon-numeric-8-box-outline:before{content:'\e951'}.icon-numeric-8-box:before{content:'\e952'}.icon-numeric-9-box-multiple-outline:before{content:'\e953'}.icon-numeric-9-box-outline:before{content:'\e954'}.icon-numeric-9-box:before{content:'\e955'}.icon-numeric-9-plus-box-multiple-outline:before{content:'\e956'}.icon-numeric-9-plus-box-outline:before{content:'\e957'}.icon-numeric-9-plus-box:before{content:'\e958'}.icon-numeric:before{content:'\e959'}.icon-nutriton:before{content:'\e95a'}.icon-odnoklassniki:before{content:'\e95b'}.icon-office:before{content:'\e95c'}.icon-oil:before{content:'\e95d'}.icon-omega:before{content:'\e95e'}.icon-onedrive:before{content:'\e95f'}.icon-open-in-app:before{content:'\e960'}.icon-open-in-new:before{content:'\e961'}.icon-ornament-variant:before{content:'\e962'}.icon-ornament:before{content:'\e963'}.icon-outbox:before{content:'\e964'}.icon-outdent:before{content:'\e965'}.icon-owl:before{content:'\e966'}.icon-package-down:before{content:'\e967'}.icon-package-up:before{content:'\e968'}.icon-package-variant-closed:before{content:'\e969'}.icon-package-variant:before{content:'\e96a'}.icon-package:before{content:'\e96b'}.icon-palette-advanced:before{content:'\e96c'}.icon-palette:before{content:'\e96d'}.icon-panda:before{content:'\e96e'}.icon-pandora:before{content:'\e96f'}.icon-panorama-fisheye:before{content:'\e970'}.icon-panorama-horizontal:before{content:'\e971'}.icon-panorama-vertical:before{content:'\e972'}.icon-panorama-wide-angle:before{content:'\e973'}.icon-panorama:before{content:'\e974'}.icon-paper-cut-vertical:before{content:'\e975'}.icon-paperclip:before{content:'\e976'}.icon-parking:before{content:'\e977'}.icon-pause-circle-outline:before{content:'\e978'}.icon-pause-circle:before{content:'\e979'}.icon-pause-octagon-outline:before{content:'\e97a'}.icon-pause-octagon:before{content:'\e97b'}.icon-pause:before{content:'\e97c'}.icon-paw:before{content:'\e97d'}.icon-pen:before{content:'\e97e'}.icon-pencil-box-outline:before{content:'\e97f'}.icon-pencil-box:before{content:'\e980'}.icon-pencil:before{content:'\e981'}.icon-people:before{content:'\e982'}.icon-percent:before{content:'\e983'}.icon-person-box:before{content:'\e984'}.icon-person-minus:before{content:'\e985'}.icon-person-plus:before{content:'\e986'}.icon-pharmacy:before{content:'\e987'}.icon-phone-bluetooth:before{content:'\e988'}.icon-phone-dots:before{content:'\e989'}.icon-phone-forward:before{content:'\e98a'}.icon-phone-hangup:before{content:'\e98b'}.icon-phone-in-talk:before{content:'\e98c'}.icon-phone-incoming:before{content:'\e98d'}.icon-phone-locked:before{content:'\e98e'}.icon-phone-log:before{content:'\e98f'}.icon-phone-missed:before{content:'\e990'}.icon-phone-outgoing:before{content:'\e991'}.icon-phone-paused:before{content:'\e992'}.icon-phone:before{content:'\e993'}.icon-picture:before{content:'\e994'}.icon-pig:before{content:'\e995'}.icon-pill:before{content:'\e996'}.icon-pin-off:before{content:'\e997'}.icon-pin:before{content:'\e998'}.icon-pine-tree-box:before{content:'\e999'}.icon-pine-tree:before{content:'\e99a'}.icon-pinterest-box:before{content:'\e99b'}.icon-pinterest:before{content:'\e99c'}.icon-pizza:before{content:'\e99d'}.icon-plane:before{content:'\e99e'}.icon-play-box-outline:before{content:'\e99f'}.icon-play-circle-outline:before{content:'\e9a0'}.icon-play-circle:before{content:'\e9a1'}.icon-play:before{content:'\e9a2'}.icon-playlist-minus:before{content:'\e9a3'}.icon-playlist-plus:before{content:'\e9a4'}.icon-playstation:before{content:'\e9a5'}.icon-plus-box:before{content:'\e9a6'}.icon-plus-circle-outline:before{content:'\e9a7'}.icon-plus-circle:before{content:'\e9a8'}.icon-plus-network:before{content:'\e9a9'}.icon-plus-one:before{content:'\e9aa'}.icon-plus:before{content:'\e9ab'}.icon-pocket:before{content:'\e9ac'}.icon-poll-box:before{content:'\e9ad'}.icon-poll:before{content:'\e9ae'}.icon-polymer:before{content:'\e9af'}.icon-popcorn:before{content:'\e9b0'}.icon-pound-box:before{content:'\e9b1'}.icon-pound:before{content:'\e9b2'}.icon-power-settings:before{content:'\e9b3'}.icon-power-socket:before{content:'\e9b4'}.icon-power:before{content:'\e9b5'}.icon-presentation-play:before{content:'\e9b6'}.icon-presentation:before{content:'\e9b7'}.icon-printer-3d:before{content:'\e9b8'}.icon-printer:before{content:'\e9b9'}.icon-pulse:before{content:'\e9ba'}.icon-puzzle:before{content:'\e9bb'}.icon-qrcode:before{content:'\e9bc'}.icon-quadcopter:before{content:'\e9bd'}.icon-quality-high:before{content:'\e9be'}.icon-question-mark-circle:before{content:'\e9bf'}.icon-quick-reply:before{content:'\e9c0'}.icon-quicktime:before{content:'\e9c1'}.icon-rabbit:before{content:'\e9c2'}.icon-radiator:before{content:'\e9c3'}.icon-radio-tower:before{content:'\e9c4'}.icon-radio:before{content:'\e9c5'}.icon-radioactive:before{content:'\e9c6'}.icon-radiobox-blank:before{content:'\e9c7'}.icon-radiobox-marked:before{content:'\e9c8'}.icon-raspberrypi:before{content:'\e9c9'}.icon-rdio:before{content:'\e9ca'}.icon-read:before{content:'\e9cb'}.icon-readability:before{content:'\e9cc'}.icon-receipt:before{content:'\e9cd'}.icon-recycle:before{content:'\e9ce'}.icon-reddit:before{content:'\e9cf'}.icon-redo-variant:before{content:'\e9d0'}.icon-redo:before{content:'\e9d1'}.icon-refresh:before{content:'\e9d2'}.icon-relative-scale:before{content:'\e9d3'}.icon-reload:before{content:'\e9d4'}.icon-remote:before{content:'\e9d5'}.icon-rename-box:before{content:'\e9d6'}.icon-repeat-off:before{content:'\e9d7'}.icon-repeat-once:before{content:'\e9d8'}.icon-repeat:before{content:'\e9d9'}.icon-replay:before{content:'\e9da'}.icon-reply-all:before{content:'\e9db'}.icon-reply:before{content:'\e9dc'}.icon-reproduction:before{content:'\e9dd'}.icon-resize-bottom-right:before{content:'\e9de'}.icon-responsive:before{content:'\e9df'}.icon-restore:before{content:'\e9e0'}.icon-rewind:before{content:'\e9e1'}.icon-ribbon:before{content:'\e9e2'}.icon-road:before{content:'\e9e3'}.icon-rocket:before{content:'\e9e4'}.icon-rotate-3d:before{content:'\e9e5'}.icon-rotate-left-variant:before{content:'\e9e6'}.icon-rotate-left:before{content:'\e9e7'}.icon-rotate-right-variant:before{content:'\e9e8'}.icon-rotate-right:before{content:'\e9e9'}.icon-routes:before{content:'\e9ea'}.icon-rss-box:before{content:'\e9eb'}.icon-ruler:before{content:'\e9ec'}.icon-run:before{content:'\e9ed'}.icon-sale:before{content:'\e9ee'}.icon-satellite-variant:before{content:'\e9ef'}.icon-satellite:before{content:'\e9f0'}.icon-scale-bathroom:before{content:'\e9f1'}.icon-scale:before{content:'\e9f2'}.icon-school:before{content:'\e9f3'}.icon-screen-rotation-lock:before{content:'\e9f4'}.icon-screen-rotation:before{content:'\e9f5'}.icon-script:before{content:'\e9f6'}.icon-security-network:before{content:'\e9f7'}.icon-security:before{content:'\e9f8'}.icon-select-all:before{content:'\e9f9'}.icon-select-inverse:before{content:'\e9fa'}.icon-select-off:before{content:'\e9fb'}.icon-select:before{content:'\e9fc'}.icon-send:before{content:'\e9fd'}.icon-server-minus:before{content:'\e9fe'}.icon-server-network-off:before{content:'\e9ff'}.icon-server-network:before{content:'\ea00'}.icon-server-off:before{content:'\ea01'}.icon-server-plus:before{content:'\ea02'}.icon-server-remove:before{content:'\ea03'}.icon-server-security:before{content:'\ea04'}.icon-server:before{content:'\ea05'}.icon-shape-plus:before{content:'\ea06'}.icon-share-variant:before{content:'\ea07'}.icon-share:before{content:'\ea08'}.icon-shield-outline:before{content:'\ea09'}.icon-shield:before{content:'\ea0a'}.icon-shopping-music:before{content:'\ea0b'}.icon-shopping:before{content:'\ea0c'}.icon-shuffle:before{content:'\ea0d'}.icon-sigma:before{content:'\ea0e'}.icon-sign-caution:before{content:'\ea0f'}.icon-signal:before{content:'\ea10'}.icon-silverware-fork:before{content:'\ea11'}.icon-silverware-spoon:before{content:'\ea12'}.icon-silverware-variant:before{content:'\ea13'}.icon-silverware:before{content:'\ea14'}.icon-sim-alert:before{content:'\ea15'}.icon-sim:before{content:'\ea16'}.icon-sitemap:before{content:'\ea17'}.icon-skip-next:before{content:'\ea18'}.icon-skip-previous:before{content:'\ea19'}.icon-skype-business:before{content:'\ea1a'}.icon-skype:before{content:'\ea1b'}.icon-sleep-off:before{content:'\ea1c'}.icon-sleep:before{content:'\ea1d'}.icon-smoking-off:before{content:'\ea1e'}.icon-smoking:before{content:'\ea1f'}.icon-snapchat:before{content:'\ea20'}.icon-snowman:before{content:'\ea21'}.icon-sofa:before{content:'\ea22'}.icon-sort-alphabetical:before{content:'\ea23'}.icon-sort-ascending:before{content:'\ea24'}.icon-sort-descending:before{content:'\ea25'}.icon-sort-numeric:before{content:'\ea26'}.icon-sort-variant:before{content:'\ea27'}.icon-sort:before{content:'\ea28'}.icon-soundcloud:before{content:'\ea29'}.icon-source-fork:before{content:'\ea2a'}.icon-source-pull:before{content:'\ea2b'}.icon-speaker-off:before{content:'\ea2c'}.icon-speaker:before{content:'\ea2d'}.icon-speedometer:before{content:'\ea2e'}.icon-spellcheck:before{content:'\ea2f'}.icon-spotify:before{content:'\ea30'}.icon-spotlight-beam:before{content:'\ea31'}.icon-spotlight:before{content:'\ea32'}.icon-spreadsheet:before{content:'\ea33'}.icon-square-inc-cash:before{content:'\ea34'}.icon-square-inc:before{content:'\ea35'}.icon-stackoverflow:before{content:'\ea36'}.icon-star-circle:before{content:'\ea37'}.icon-star-half:before{content:'\ea38'}.icon-star-of-david:before{content:'\ea39'}.icon-star-outline:before{content:'\ea3a'}.icon-star:before{content:'\ea3b'}.icon-steam:before{content:'\ea3c'}.icon-stethoscope:before{content:'\ea3d'}.icon-stocking:before{content:'\ea3e'}.icon-stop:before{content:'\ea3f'}.icon-store-24-hour:before{content:'\ea40'}.icon-store:before{content:'\ea41'}.icon-stove:before{content:'\ea42'}.icon-subway:before{content:'\ea43'}.icon-sunglasses:before{content:'\ea44'}.icon-swap-horizontal:before{content:'\ea45'}.icon-swap-vertical:before{content:'\ea46'}.icon-swim:before{content:'\ea47'}.icon-sword:before{content:'\ea48'}.icon-sync-alert:before{content:'\ea49'}.icon-sync-off:before{content:'\ea4a'}.icon-sync:before{content:'\ea4b'}.icon-tab-unselected:before{content:'\ea4c'}.icon-tab:before{content:'\ea4d'}.icon-table-column-plus-after:before{content:'\ea4e'}.icon-table-column-plus-before:before{content:'\ea4f'}.icon-table-column-remove:before{content:'\ea50'}.icon-table-column-width:before{content:'\ea51'}.icon-table-edit:before{content:'\ea52'}.icon-table-large:before{content:'\ea53'}.icon-table-row-height:before{content:'\ea54'}.icon-table-row-plus-after:before{content:'\ea55'}.icon-table-row-plus-before:before{content:'\ea56'}.icon-table-row-remove:before{content:'\ea57'}.icon-table:before{content:'\ea58'}.icon-tablet-android:before{content:'\ea59'}.icon-tablet-ipad:before{content:'\ea5a'}.icon-tablet:before{content:'\ea5b'}.icon-tag-faces:before{content:'\ea5c'}.icon-tag-multiple:before{content:'\ea5d'}.icon-tag-outline:before{content:'\ea5e'}.icon-tag-text-outline:before{content:'\ea5f'}.icon-tag:before{content:'\ea60'}.icon-taxi:before{content:'\ea61'}.icon-teamviewer:before{content:'\ea62'}.icon-telegram:before{content:'\ea63'}.icon-television-guide:before{content:'\ea64'}.icon-television:before{content:'\ea65'}.icon-temperature-celsius:before{content:'\ea66'}.icon-temperature-fahrenheit:before{content:'\ea67'}.icon-temperature-kelvin:before{content:'\ea68'}.icon-tennis:before{content:'\ea69'}.icon-tent:before{content:'\ea6a'}.icon-terrain:before{content:'\ea6b'}.icon-text-to-speech-off:before{content:'\ea6c'}.icon-text-to-speech:before{content:'\ea6d'}.icon-texture:before{content:'\ea6e'}.icon-theater:before{content:'\ea6f'}.icon-theme-light-dark:before{content:'\ea70'}.icon-thermometer-lines:before{content:'\ea71'}.icon-thermometer:before{content:'\ea72'}.icon-thumb-down-outline:before{content:'\ea73'}.icon-thumb-down:before{content:'\ea74'}.icon-thumb-up-outline:before{content:'\ea75'}.icon-thumb-up:before{content:'\ea76'}.icon-thumbs-up-down:before{content:'\ea77'}.icon-ticket-account:before{content:'\ea78'}.icon-ticket:before{content:'\ea79'}.icon-tie:before{content:'\ea7a'}.icon-tile-four:before{content:'\ea7b'}.icon-timelapse:before{content:'\ea7c'}.icon-timer-3:before{content:'\ea7d'}.icon-timer-10:before{content:'\ea7e'}.icon-timer-off:before{content:'\ea7f'}.icon-timer-sand:before{content:'\ea80'}.icon-timer:before{content:'\ea81'}.icon-timetable:before{content:'\ea82'}.icon-toggle-switch-off:before{content:'\ea83'}.icon-toggle-switch-on:before{content:'\ea84'}.icon-tooltip-edit:before{content:'\ea85'}.icon-tooltip-image:before{content:'\ea86'}.icon-tooltip-outline-plus:before{content:'\ea87'}.icon-tooltip-outline:before{content:'\ea88'}.icon-tooltip-text:before{content:'\ea89'}.icon-tooltip:before{content:'\ea8a'}.icon-tor:before{content:'\ea8b'}.icon-traffic-light:before{content:'\ea8c'}.icon-train:before{content:'\ea8d'}.icon-tram:before{content:'\ea8e'}.icon-transcribe-close:before{content:'\ea8f'}.icon-transcribe:before{content:'\ea90'}.icon-transfer:before{content:'\ea91'}.icon-trash:before{content:'\ea92'}.icon-tree:before{content:'\ea93'}.icon-trello:before{content:'\ea94'}.icon-trending-down:before{content:'\ea95'}.icon-trending-neutral:before{content:'\ea96'}.icon-trending-up:before{content:'\ea97'}.icon-truck:before{content:'\ea98'}.icon-tshirt-crew:before{content:'\ea99'}.icon-tshirt-v:before{content:'\ea9a'}.icon-tumblr-reblog:before{content:'\ea9b'}.icon-tumblr:before{content:'\ea9c'}.icon-twitch:before{content:'\ea9d'}.icon-twitter-box:before{content:'\ea9e'}.icon-twitter-circle:before{content:'\ea9f'}.icon-twitter-retweet:before{content:'\eaa0'}.icon-twitter:before{content:'\eaa1'}.icon-ubuntu:before{content:'\eaa2'}.icon-umbrella-outline:before{content:'\eaa3'}.icon-umbrella:before{content:'\eaa4'}.icon-undo-variant:before{content:'\eaa5'}.icon-undo:before{content:'\eaa6'}.icon-unfold-less:before{content:'\eaa7'}.icon-unfold-more:before{content:'\eaa8'}.icon-ungroup:before{content:'\eaa9'}.icon-untappd:before{content:'\eaaa'}.icon-upload:before{content:'\eaab'}.icon-usb:before{content:'\eaac'}.icon-vector-curve:before{content:'\eaad'}.icon-vector-point:before{content:'\eaae'}.icon-vector-square:before{content:'\eaaf'}.icon-verified:before{content:'\eab0'}.icon-vibration:before{content:'\eab1'}.icon-video-off:before{content:'\eab2'}.icon-video-switch:before{content:'\eab3'}.icon-video:before{content:'\eab4'}.icon-view-agenda:before{content:'\eab5'}.icon-view-array:before{content:'\eab6'}.icon-view-carousel:before{content:'\eab7'}.icon-view-column:before{content:'\eab8'}.icon-view-dashboard:before{content:'\eab9'}.icon-view-day:before{content:'\eaba'}.icon-view-headline:before{content:'\eabb'}.icon-view-list:before{content:'\eabc'}.icon-view-module:before{content:'\eabd'}.icon-view-quilt:before{content:'\eabe'}.icon-view-stream:before{content:'\eabf'}.icon-view-week:before{content:'\eac0'}.icon-vimeo:before{content:'\eac1'}.icon-vine:before{content:'\eac2'}.icon-vk-box:before{content:'\eac3'}.icon-vk-circle:before{content:'\eac4'}.icon-vk:before{content:'\eac5'}.icon-voicemail:before{content:'\eac6'}.icon-volume-high:before{content:'\eac7'}.icon-volume-low:before{content:'\eac8'}.icon-volume-medium:before{content:'\eac9'}.icon-volume-off:before{content:'\eaca'}.icon-volume:before{content:'\eacb'}.icon-vpn:before{content:'\eacc'}.icon-walk:before{content:'\eacd'}.icon-wallet-giftcard:before{content:'\eace'}.icon-wallet-membership:before{content:'\eacf'}.icon-wallet-travel:before{content:'\ead0'}.icon-wallet:before{content:'\ead1'}.icon-washing-machine:before{content:'\ead2'}.icon-watch-export:before{content:'\ead3'}.icon-watch-import:before{content:'\ead4'}.icon-watch:before{content:'\ead5'}.icon-water-off:before{content:'\ead6'}.icon-water-pump:before{content:'\ead7'}.icon-water:before{content:'\ead8'}.icon-weather-cloudy:before{content:'\ead9'}.icon-weather-fog:before{content:'\eada'}.icon-weather-hail:before{content:'\eadb'}.icon-weather-lightning:before{content:'\eadc'}.icon-weather-night:before{content:'\eadd'}.icon-weather-partlycloudy:before{content:'\eade'}.icon-weather-pouring:before{content:'\eadf'}.icon-weather-rainy:before{content:'\eae0'}.icon-weather-snowy:before{content:'\eae1'}.icon-weather-sunny:before{content:'\eae2'}.icon-weather-sunset-down:before{content:'\eae3'}.icon-weather-sunset-up:before{content:'\eae4'}.icon-weather-sunset:before{content:'\eae5'}.icon-weather-windy-variant:before{content:'\eae6'}.icon-weather-windy:before{content:'\eae7'}.icon-web:before{content:'\eae8'}.icon-webcam:before{content:'\eae9'}.icon-weight-kilogram:before{content:'\eaea'}.icon-weight:before{content:'\eaeb'}.icon-whatsapp:before{content:'\eaec'}.icon-wheelchair-accessibility:before{content:'\eaed'}.icon-white-balance-auto:before{content:'\eaee'}.icon-white-balance-incandescent:before{content:'\eaef'}.icon-white-balance-irradescent:before{content:'\eaf0'}.icon-white-balance-sunny:before{content:'\eaf1'}.icon-wifi:before{content:'\eaf2'}.icon-wii:before{content:'\eaf3'}.icon-wikipedia:before{content:'\eaf4'}.icon-window-close:before{content:'\eaf5'}.icon-window-closed:before{content:'\eaf6'}.icon-window-maximize:before{content:'\eaf7'}.icon-window-minimize:before{content:'\eaf8'}.icon-window-open:before{content:'\eaf9'}.icon-window-restore:before{content:'\eafa'}.icon-windows:before{content:'\eafb'}.icon-wordpress:before{content:'\eafc'}.icon-worker:before{content:'\eafd'}.icon-wunderlist:before{content:'\eafe'}.icon-xbox-controller-off:before{content:'\eaff'}.icon-xbox-controller:before{content:'\eb00'}.icon-xbox:before{content:'\eb01'}.icon-xda:before{content:'\eb02'}.icon-xml:before{content:'\eb03'}.icon-yeast:before{content:'\eb04'}.icon-yelp:before{content:'\eb05'}.icon-youtube-play:before{content:'\eb06'}.icon-youtube:before{content:'\eb07'}.icon-zip-box:before{content:'\eb08'}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:'';clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.advanced-search-container{border-bottom:1px rgba(0,0,0,.12) solid}.advanced-search-conditions{border-bottom:1px rgba(0,0,0,.12) solid;padding:4px 0}.advanced-search-conditions .errors{font-size:12px;color:#dd2c00;margin-top:10px}.advanced-search-conditions .advanced-search-chips md-chips-wrap{box-shadow:none}.advanced-search-conditions .advanced-search-chips md-chip{position:relative}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-content md-chip-template span p.filter-text{display:inline-block;margin:0}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container{position:absolute;right:4px;top:4px;margin-right:0;height:24px}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter{position:relative;height:24px;width:24px;line-height:30px;text-align:center;border-radius:50%;border:none;box-shadow:none;padding:0;margin:0;transition:background .15s linear;display:block}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);color:#616161}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:focus,.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:hover{color:rgba(255,0,0,.8)}.advanced-search-conditions .advanced-search-chips md-chips-wrap.md-removable md-chip md-chip-template{padding-right:5px}.advanced-search-bar{padding:10px 0}.advanced-search-bar md-input-container.no-errors{font-size:12px;transition:0s none;-webkit-transition:0s none;animation:0s none;-webkit-animation:0s none}.advanced-search-bar md-input-container.no-errors input{font-family:Arial Unicode MS,Arial,Helvetica}.advanced-search-bar md-input-container.no-errors .md-errors-spacer{min-height:0}md-option div div.operators-list{display:table}md-option div div.operators-list span{display:table-cell}md-option div div.operators-list span.operator-symbol{display:table-cell;font-size:14px;width:30px}.advanced-search-bar mdp-date-picker button{margin:0!important}.advanced-search-bar mdp-date-picker md-input-container{flex:1;margin:0}.advanced-search-bar mdp-date-picker md-input-container label{font-size:12px}.advanced-search-bar mdp-date-picker md-input-container .md-errors-spacer{min-height:0}.advanced-search-bar div md-date-range{font-size:12px;margin-left:10px}.advanced-search-bar div.autocomplete-input md-icon{margin:8px 8px 8px 0}.advanced-search-bar div.autocomplete-input md-autocomplete{font-size:12px!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap{height:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container{margin:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container input[type=search]{padding:0!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container div.md-errors-spacer{min-height:0}md-toolbar.advanced-search-dialog-header{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}.md-autocomplete-suggestions-container li .highlight,.md-autocomplete-suggestions-container.md-default-theme li .highlight{color:#ca1d1d;font-weight:700}.chip-disabled{opacity:.4}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-list-item .md-list-item-text p.ms-dual-multiselect-line-xs{font-size:10px!important;padding-top:5px}md-list-item md-icon.hidden{visibility:hidden}md-icon.add-disabled{cursor:default!important;opacity:.4}md-list-item.read-only-mode{cursor:none!important}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}ms-info-bar{display:block;position:relative;width:100%;height:44px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:28px;font-size:14px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}md-dialog.md-phonebar-dialog{max-width:720px;width:720px}md-dialog.md-phonebar-dialog md-dialog-content{display:block;position:relative;height:500px}md-dialog.md-phonebar-dialog md-toolbar .title{font-size:17px}md-dialog.md-phonebar-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.md-phonebar-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.md-phonebar-dialog md-tabs{position:static}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0}.ms-phonebar .phonebar-container .quantity-indicator{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:4px;margin-right:5px;margin-left:5px}.ms-phonebar .phonebar-container .sessions{overflow-x:auto}.ms-phonebar .phonebar-container .session{border-radius:3px;border:1px solid #dcdcdc;margin-left:3px;cursor:pointer}.ms-phonebar .phonebar-container .session-info{padding-left:3px;padding-right:3px;color:grey}.ms-phonebar .phonebar-container .session-button{border:1px solid grey;margin:3px}.ms-phonebar .phonebar-container .button-bar{border:1px solid grey}.ms-phonebar .phonebar-container .num-pad{position:fixed;border-radius:3px;border:1px solid #9e9e9e;top:80px;left:80px}.ms-phonebar .phonebar-container .num-pad-logo{height:40px;width:42px}.ms-phonebar .phonebar-container p{margin:0;padding:0 0 10px 0;line-height:10px;font-size:10px}.ms-phonebar .phonebar-container .span4{width:50px;float:left;margin:8px}.ms-phonebar .phonebar-container .num{border:1px solid #9e9e9e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:50px;background-color:#fff;color:#333;cursor:pointer}.ms-phonebar .phonebar-container .num:hover{background-color:#9e9e9e;color:#fff;transition-property:background-color .2s linear 0s;-moz-transition:background-color .2s linear 0s;-webkit-transition:background-color .2s linear 0s;-o-transition:background-color .2s linear 0s}.ms-phonebar .phonebar-container .txt{font-size:20px;text-align:center;margin-top:3px;font-family:Lato,sans-serif;color:#333}.ms-phonebar .phonebar-container .small{font-size:15px}.ms-phonebar .phonebar-container .angucomplete-dropdown{top:45px;overflow-y:auto;max-height:200px}.ms-phonebar .phonebar-container .highlight{color:red}.ms-phonebar .phonebar-container .input-number{margin-left:5px;padding:8px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}.ms-phonebar .phonebar-container .phonebar{position:relative}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.quick-filter-container md-select .md-select-value.md-select-placeholder{color:inherit}.quick-filter-container md-select[multiple] md-select-value>:first-child{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-button-expanded{pointer-events:none}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar input{background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}.ms-search-bar.down{top:64px;border-bottom:1px rgba(0,0,0,.12) solid}.ms-search-bar[disabled] input{pointer-events:none}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-tab-scroll .scroll-arrow{height:inherit;padding:0}.ms-tab-scroll .bar-container{overflow:hidden}.ms-tab-scroll .scroll-container{overflow-x:hidden;overflow-y:hidden;transition:transform .2s ease-in-out}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:'';width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:'';width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#forgot-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#forgot-password #forgot-password-form-wrapper{flex:1 0 auto;padding:32px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#forgot-password #forgot-password-form-wrapper #forgot-password-form .title{font-size:17px;margin:16px 0 32px 0}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo_login{max-height:200px}#forgot-password #forgot-password-form-wrapper #forgot-password-form form{width:100%;text-align:left}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .submit-button{width:220px;margin:16px auto;display:block}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#forgot-password #forgot-password-form-wrapper{padding:16px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{padding:24px;width:100%}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .md-button{width:90%}}#login{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form .logo_login{max-height:200px}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}#extractedReports #upload-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}#metrics #upload-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:76px;min-height:76px;max-height:76px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.web-dialog md-dialog-content{display:block;position:relative}md-dialog.web-dialog md-toolbar .title{font-size:17px}md-dialog.web-dialog md-input-container textarea{min-height:150px}md-dialog.web-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.web-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.web-dialog .date-container{padding:16px 0 24px 0}md-dialog.web-dialog .error-list{font-size:13px}md-dialog.web-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.web-dialog .error-list .error .message{font-weight:500}md-dialog.web-dialog .error-list .error .md-button{margin:0}md-dialog.web-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.web-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}#odbcs #upload-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:76px;min-height:76px;max-height:76px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:76px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#squareRecordings #upload-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues #upload-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:76px;min-height:76px;max-height:76px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chat-chatQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}#chatWebsites #upload-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.chatCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.chatCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.chatCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.chatCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatCannedAnswer-dialog .error-list{font-size:13px}md-dialog.chatCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.chatCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.chatCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.offlineMessage-dialog{max-width:720px;width:720px}md-dialog.offlineMessage-dialog md-dialog-content{display:block;position:relative}md-dialog.offlineMessage-dialog md-toolbar .title{font-size:17px}md-dialog.offlineMessage-dialog md-input-container textarea{min-height:150px}md-dialog.offlineMessage-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.offlineMessage-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.offlineMessage-dialog .date-container{padding:16px 0 24px 0}md-dialog.offlineMessage-dialog .error-list{font-size:13px}md-dialog.offlineMessage-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.offlineMessage-dialog .error-list .error .message{font-weight:500}md-dialog.offlineMessage-dialog .error-list .error .md-button{margin:0}md-dialog.offlineMessage-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.offlineMessage-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatProactiveAction-dialog{max-width:720px;width:720px}md-dialog.chatProactiveAction-dialog md-dialog-content{display:block;position:relative}md-dialog.chatProactiveAction-dialog md-toolbar .title{font-size:17px}md-dialog.chatProactiveAction-dialog md-input-container textarea{min-height:150px}md-dialog.chatProactiveAction-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatProactiveAction-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatProactiveAction-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatProactiveAction-dialog .error-list{font-size:13px}md-dialog.chatProactiveAction-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatProactiveAction-dialog .error-list .error .message{font-weight:500}md-dialog.chatProactiveAction-dialog .error-list .error .md-button{margin:0}md-dialog.chatProactiveAction-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatProactiveAction-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:76px;min-height:76px;max-height:76px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#chat-chatWebsite md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatWebsite md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#chat-chatWebsite .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#chat-chatWebsite .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#chat-chatWebsite .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#chat-chatWebsite .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#chat-chatWebsite .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#chat-chatWebsite .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#chat-chatWebsite .actionAppData{width:150px!important}}@media screen and (max-width:960px){#chat-chatWebsite .actionAppData{width:80px!important}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}#companies #upload-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:76px;min-height:76px;max-height:76px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#contactmanager-company md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-company md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container.font-size-12 td.md-cell{font-size:12px!important}#contacts{position:relative}#contacts>.header{height:76px;min-height:76px;max-height:76px}#contacts>.header .logo .logo-icon{margin:0 16px 0 0}#contacts>.header .logo .logo-text{font-size:24px}#contacts>.header md-icon{color:#fff}#contacts>.header .search-input-wrapper{position:relative}#contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contacts>.header.selected-bar .close-button-wrapper{width:244px}#contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:76px;min-height:76px;max-height:76px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:10px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.import-dialog{max-width:720px;width:720px}md-dialog.import-dialog md-dialog-content{display:block;position:relative}md-dialog.import-dialog md-toolbar .title{font-size:17px}md-dialog.import-dialog md-input-container textarea{min-height:150px}md-dialog.import-dialog .date-container{padding:16px 0 24px 0}md-dialog.import-dialog .error-list{font-size:13px}md-dialog.import-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .error .message{font-weight:500}md-dialog.import-dialog .error-list .error .md-button{margin:0}md-dialog.import-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.import-dialog .error-list .info{background-color:rgba(24,160,135,.08);border:1px solid rgba(24,160,135,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .info .message{font-weight:500}md-dialog.import-dialog .error-list .info .md-button{margin:0}md-dialog.import-dialog .error-list .info:last-child{margin-bottom:30px}md-dialog.import-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.import-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.import-dialog .contact-image .media{max-height:100%}md-dialog.import-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}#globalCustomFields #upload-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:76px;min-height:76px;max-height:76px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}#contactmanager-list md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-list md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container.font-size-12 td.md-cell{font-size:12px!important}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}#lists #upload-list-button{position:fixed;bottom:8px;right:8px;padding:0}#dashboard-custom .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general{position:fixed;width:100%;height:100%}#agent-general .agent-content{position:fixed;top:36px;bottom:0;left:0;right:0}#agent-general .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#agent-general .table-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general .table-header .md-toolbar-tools div md-select .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder .md-select-icon{display:none}#agent-general .table-header ms-quick-filter .quick-filter-date-clear-button{color:#fff}#agent-general .tooltip-preview{position:relative;display:inline-block;text-decoration:underline}#agent-general .tooltip-preview .tooltip-preview-text{visibility:hidden;width:500px;position:fixed;white-space:pre-line;left:28%;z-index:9999}#agent-general .tooltip-preview:hover .tooltip-preview-text{visibility:visible}#agent-general .reload-list md-icon{color:#fff}#agent-general .advanced-search md-icon{color:#fff}#agent-general .create-new md-icon{color:#fff}#agent-general div.draft-manager-bar{background-color:#f5f5f5;position:sticky;height:34px;bottom:0;border-top:1px solid #e0e0e0}#agent-general div.draft-manager-bar ms-tab-scroll{overflow:hidden}#agent-general div.draft-manager-bar ms-tab-scroll div.draft-manager-tab{height:34px;border-right:1px solid #e0e0e0}#agent-general td.width-5,#agent-general th.width-5{width:5px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-10,#agent-general th.width-10{width:10px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-15,#agent-general th.width-15{width:15px!important;min-width:auto!important;max-width:none!important}#agent-general td.no-padding,#agent-general th.no-padding{padding:0!important}#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:300px!important}#agent-general span.no-margin-bottom{margin-bottom:0!important}#agent-general span.no-margin-top{margin-top:0!important}#agent-general md-table-container.interactions-list thead tr th:not(.no-padding):not(.id-header){padding:0 20px 0 0!important}#agent-general md-table-container.interactions-list tbody tr td:not(.no-padding):not(.actions-padding):not(.id){padding:0 20px 0 0!important}#agent-general td.actions-padding{padding:0 8px 0 0!important}#agent-general md-toolbar.md-table-toolbar[disabled]{pointer-events:none}#agent-general md-toolbar.md-table-toolbar[disabled] ms-search-bar{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] ms-quick-filter{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] button.advanced-search,#agent-general md-toolbar.md-table-toolbar[disabled] button.interaction-reload{opacity:.7}#agent-general md-card.call-info-card{min-width:220px}#agent-general md-card.call-info-card md-card-content,#agent-general md-card.call-info-card md-card-header{padding:10px!important}#agent-general md-card.call-info-card button.reload-button{padding:0;height:22px;width:auto}@media screen and (max-width:1280px){#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:350px!important}}@media screen and (max-width:1920px){#agent-general span.contact-text{width:150px!important}#agent-general span.subject-text{width:500px!important}}#agent-general-dialog{position:fixed;width:100%;height:100%}#agent-general-dialog .agent-content{position:fixed;top:0;bottom:0;left:0;right:0}body .md-select-menu-container{z-index:110}.md-toolbar-tools{font-size:12px}div.toolbar-quick-filter[disabled]{pointer-events:none;opacity:.7}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.contact-trigger-dialog{max-width:720px;width:720px}md-dialog.contact-trigger-dialog md-dialog-content{display:block;position:relative;max-height:400px;height:400px}md-dialog.contact-trigger-dialog md-toolbar{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}md-dialog.contact-trigger-dialog md-toolbar .title{font-size:17px}md-dialog.contact-trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.contact-trigger-dialog md-dialog-actions button.select-button{position:absolute;right:0;margin-right:16px}md-dialog md-grid-list.one-row-layout{height:150px;max-height:150px}md-dialog md-grid-list.two-rows-layout{height:300px;max-height:300px}md-dialog md-card.contact-info:hover{background-color:#e9eef1ad}@media screen and (max-width:1280px){md-dialog.contact-trigger-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.contact-trigger-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.details-dialog{max-width:500px;width:500px}md-dialog.details-dialog md-dialog-content{display:block;position:relative}md-dialog.details-dialog md-toolbar .title{font-size:17px}md-dialog.details-dialog md-input-container textarea{min-height:150px}md-dialog.details-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.details-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.details-dialog .date-container{padding:16px 0 24px 0}md-dialog.details-dialog .error-list{font-size:13px}md-dialog.details-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.details-dialog .error-list .error .message{font-weight:500}md-dialog.details-dialog .error-list .error .md-button{margin:0}md-dialog.details-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.details-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#interaction-app .tags{font-size:12px}#interaction-app .tags .tag{border-radius:2px;padding:3px 8px;background-color:rgba(0,0,0,.08)}#interaction-app .tags .tag .tag-color{width:8px;height:8px;margin-right:8px;border-radius:50%}#interaction-app .content-card{position:relative;height:100%}#interaction-app .content-card .interaction{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .interaction .avatar-small{width:30px;min-width:30px;height:30px;line-height:30px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}#interaction-app .content-card .interaction .interaction-agents{min-height:40px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-agents .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-agents .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-agents .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .interaction-toolbar{min-height:64px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-toolbar md-icon{color:rgba(0,0,0,.87)}#interaction-app .content-card .interaction .interaction-toolbar .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .cannedarea{margin-right:7px;font-size:14px;border:1px solid #ccc;border-radius:3px;align-self:stretch}#interaction-app .content-card .interaction .cannedarea md-autocomplete-wrap{padding:0 1em}#interaction-app .content-card .interaction .emojionearea{margin-right:7px}#interaction-app .content-card .interaction #interaction-content{background:url(/assets/images/patterns/circles-light.png) repeat}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content{padding:24px 0}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject .subject-text{margin-right:4px;text-transform:lowercase}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info{padding-bottom:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .avatar{margin-right:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .name{margin-right:8px;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .toggle-details{padding-top:16px;cursor:pointer;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details{padding-top:8px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .title{font-weight:500;margin-right:6px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .detail{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .bubble{position:relative;padding:6px 7px 8px 9px;background-color:#fff;border:1px solid #dcdfe1;border-radius:6px;word-break:break-word}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after,#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#fff transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .time{font-size:11px;margin-top:0;text-align:right}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message{white-space:pre-wrap}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message span{word-break:break-all}#interaction-app .content-card .interaction #interaction-content .message-row.in{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.in .avatar{margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble{margin-left:auto;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:after{right:-9px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:before{right:-11px;left:auto;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}#interaction-app .content-card .interaction #interaction-content .message-row.out{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.out .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble{margin-left:auto;background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .avatar{order:1;margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:2}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction .interaction-footer{min-height:64px;max-height:180px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-top:1px solid rgba(0,0,0,.08);padding:8px 8px 8px 16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container{margin:0;padding-right:16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea{overflow:auto;max-height:80px;transition:height .2s ease}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea.grow{height:80px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container .md-errors-spacer{display:none}#interaction-app .content-card .interaction .interaction-footer .reply-form .md-button{margin:0}#interaction-app .content-card .info md-list-item{min-height:40px;height:52px}#interaction-app .content-card .start-point{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .start-point .big-circle{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8));border-radius:50%;width:300px;height:300px;line-height:300px;text-align:center}#interaction-app .content-card .start-point .app-title{font-weight:500;font-size:32px;margin:12px 0}#interaction-app .content-card .start-point .secondary-text{font-size:16px}#interaction-app .content-card .sidenav md-toolbar{border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search{height:36px;line-height:36px;padding:8px;background:#fff;font-size:13px}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search .icon{margin:0;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search input{padding-left:12px;height:36px;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-list.contact-list,#interaction-app .content-card .sidenav md-list.interaction-list{position:relative;transition:all .2s ease-out}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.contact-list md-list-item,#interaction-app .content-card .sidenav md-list.interaction-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item{position:absolute;right:0;left:0;width:100%;transition:transform .2s ease-out;background:#fff;will-change:transform}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave{transform:translateY(0);display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide{display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-remove-active{display:block;transition-property:all}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list .subheader{padding-left:16px;font-size:20px;font-weight:300;height:88px;line-height:88px}#interaction-app .content-card .sidenav .no-results-message{position:absolute;width:100%;height:88px;padding:16px;background:#fff;font-size:15px;font-weight:400}#interaction-app .avatar-wrapper{position:relative}#interaction-app .avatar-wrapper .avatar{margin-top:0;margin-bottom:0}#interaction-app .status{position:absolute;top:28px;left:28px;border-radius:50%}#interaction-app .status.online{color:#4caf50}#interaction-app .status.online:before{content:'\e709'}#interaction-app .status.do-not-disturb{color:#f44336}#interaction-app .status.do-not-disturb:before{content:'\e912'}#interaction-app .status.away{background-color:#ffc107;color:#fff}#interaction-app .status.away:before{content:'\e727'}#interaction-app .status.offline{color:#4caf50;background-color:#fff}#interaction-app .status.offline:before{content:'\e704'}#interaction-app .editable-wrap{position:relative}#interaction-app .editable-wrap .editable-controls{display:flex;flex-direction:row;align-items:center;width:100%}#interaction-app .editable-wrap .editable-controls .editable-input{width:inherit;background-color:#fff;padding:8px;border:1px solid rgba(0,0,0,.12)}#interaction-app .editable-wrap .editable-controls .editable-buttons{display:inherit}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button{margin:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button:first-of-type{padding-right:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button .icon-cancel{color:rgba(0,0,0,.32)}#interaction-app .editable-click{cursor:pointer;text-decoration:none;color:inherit;border-bottom:none}#interaction-app .emoji-picker-icon{right:5px;cursor:pointer}#interaction-app .input-show-hide{transition:all linear .5s}#interaction-app .input-show-hide.ng-hide{opacity:0}#interaction-app div.interaction-reply-button-container{display:inline;padding-bottom:14px}#timeline{position:relative;height:auto;padding-bottom:30px}#timeline:before{display:block;position:absolute;z-index:10;content:'';width:2px;background:rgba(0,0,0,.08);top:0;left:50%;bottom:0;margin-left:-1px}#timeline .ms-timeline-item{overflow:hidden;position:relative;z-index:20;width:100%;margin:0 auto;max-width:1200px}#timeline .ms-timeline-item .timeline-card{order:1}#timeline .ms-timeline-item .timeline-card .interaction .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}#timeline .ms-timeline-item .timeline-card .interaction .media .image{width:100%}#timeline .ms-timeline-item .timeline-point{position:absolute;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;left:50%;margin:16px 0 0 -28px;order:2}#timeline .ms-timeline-item .timeline-point md-icon{color:#fff}#timeline .ms-timeline-item .timeline-detail{flex:50% 0 0;padding-top:28px;order:3}#timeline .ms-timeline-item .timeline-detail .time{font-size:15px;padding-left:68px}#timeline .ms-timeline-item .timeline-detail .event{color:rgba(0,0,0,.54);padding-left:68px}#timeline .ms-timeline-item:nth-child(odd) .timeline-card{flex-direction:row-reverse}#timeline .ms-timeline-item:nth-child(even) .timeline-card{order:3;padding-right:0}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card{padding-left:84px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail{order:1;padding-left:0;text-align:right}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:68px}#timeline .ms-timeline-item:first-child{padding-top:15px}#timeline .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline .ms-timeline-item.animate .timeline-point{animation:slide-in-bottom .4s}#timeline .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-card{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-detail{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item .timeline-card{order:1}#timeline.timeline-left .ms-timeline-item .timeline-card ms-card{padding-right:68px;padding-left:0;margin-left:auto}#timeline.timeline-left .ms-timeline-item .timeline-detail{order:3;text-align:left}#timeline.timeline-left .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item .timeline-card{order:3}#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{padding-left:68px;padding-right:0;margin-right:auto}#timeline.timeline-right .ms-timeline-item .timeline-detail{order:1;text-align:right}#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:68px;padding-left:0}#timeline.timeline-right .ms-timeline-item.animate .timeline-card{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item.animate .timeline-detail{animation:slide-in-left .4s}@media screen and (max-width:1280px){#timeline .ms-timeline-item,#timeline.timeline-left .ms-timeline-item,#timeline.timeline-right .ms-timeline-item{display:block}#timeline .ms-timeline-item .timeline-point,#timeline.timeline-left .ms-timeline-item .timeline-point,#timeline.timeline-right .ms-timeline-item .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item .timeline-detail,#timeline.timeline-left .ms-timeline-item .timeline-detail,#timeline.timeline-right .ms-timeline-item .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item .timeline-detail .event,#timeline .ms-timeline-item .timeline-detail .time,#timeline.timeline-left .ms-timeline-item .timeline-detail .event,#timeline.timeline-left .ms-timeline-item .timeline-detail .time,#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{margin:0 auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-card ms-card{margin:0 auto;padding:0}}md-dialog.compose-dialog{max-width:720px;width:720px}md-dialog.compose-dialog.mail-no-secret{max-height:97%;max-width:90%!important;width:100%!important}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-toolbar .vertical-divider{position:absolute;border-right-width:.5px;border-right-style:solid;height:100%}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .to.hidden-cc input{padding-right:32px}md-dialog.compose-dialog .to.hidden-cc.hidden-bcc input{padding-right:56px}md-dialog.compose-dialog .to.hidden-bcc input{padding-right:32px}md-dialog.compose-dialog .to .cc-bcc{position:absolute;bottom:8px;right:0}md-dialog.compose-dialog .to .cc-bcc .show-bcc,md-dialog.compose-dialog .to .cc-bcc .show-cc{cursor:pointer;font-size:12px}md-dialog.compose-dialog .to .cc-bcc .show-bcc{margin-left:8px}md-dialog.compose-dialog .attachment-list{font-size:13px}md-dialog.compose-dialog .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{max-width:700px;min-height:300px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}#dashboard-general .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:76px;min-height:76px;max-height:76px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#fax-faxAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#fax-faxAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#fax-faxAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#fax-faxAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#fax-faxAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#fax-faxAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#fax-faxAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#fax-faxAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#fax-faxAccount .actionAppData{width:80px!important}}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#faxAccounts #upload-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:76px;min-height:76px;max-height:76px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#fax-faxQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#faxQueues #upload-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.deskAccount-dialog{max-width:720px;width:720px}md-dialog.deskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-dialog .error-list{font-size:13px}md-dialog.deskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#deskAccounts{position:relative}#deskAccounts>.header{height:76px;min-height:76px;max-height:76px}#deskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#deskAccounts>.header .logo .logo-text{font-size:24px}#deskAccounts>.header md-icon{color:#fff}#deskAccounts>.header .search-input-wrapper{position:relative}#deskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#deskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#deskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#deskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#deskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#deskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#deskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#deskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#deskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#deskAccounts #add-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#deskAccounts #upload-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.deskConfiguration-dialog{max-width:720px;width:720px}md-dialog.deskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.deskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.deskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.deskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskConfiguration-dialog .error-list{font-size:13px}md-dialog.deskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.deskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.deskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.deskAccount-item-dialog{max-width:720px;width:720px}md-dialog.deskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-item-dialog .error-list{font-size:13px}md-dialog.deskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-deskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-deskAccount .header .goto-deskAccounts-button{margin-right:16px}#integrations-deskAccount .header .deskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-deskAccount .header .deskAccount-image img{height:100%;width:auto;max-width:none}#integrations-deskAccount .header .subtitle{margin:6px 0 0 0}#integrations-deskAccount .deskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-deskAccount .deskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-deskAccount .deskAccount-detail-form-container .handle{cursor:move}#integrations-deskAccount .deskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader{position:relative}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image .media{max-height:100%}#integrations-deskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-deskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.dynamics365Account-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dynamics365Accounts{position:relative}#dynamics365Accounts>.header{height:76px;min-height:76px;max-height:76px}#dynamics365Accounts>.header .logo .logo-icon{margin:0 16px 0 0}#dynamics365Accounts>.header .logo .logo-text{font-size:24px}#dynamics365Accounts>.header md-icon{color:#fff}#dynamics365Accounts>.header .search-input-wrapper{position:relative}#dynamics365Accounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dynamics365Accounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dynamics365Accounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dynamics365Accounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dynamics365Accounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dynamics365Accounts>.header.selected-bar .close-button-wrapper{width:244px}#dynamics365Accounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dynamics365Accounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dynamics365Accounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dynamics365Accounts #add-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}#dynamics365Accounts #upload-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dynamics365Configuration-dialog{max-width:720px;width:720px}md-dialog.dynamics365Configuration-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Configuration-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Configuration-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Configuration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Configuration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Configuration-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Configuration-dialog .error-list{font-size:13px}md-dialog.dynamics365Configuration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Configuration-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Configuration-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Configuration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Configuration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dynamics365Account-item-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-item-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-item-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-item-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-item-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-item-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-item-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-dynamics365Account .header{height:76px;min-height:76px;max-height:76px}#integrations-dynamics365Account .header .goto-dynamics365Accounts-button{margin-right:16px}#integrations-dynamics365Account .header .dynamics365Account-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-dynamics365Account .header .dynamics365Account-image img{height:100%;width:auto;max-width:none}#integrations-dynamics365Account .header .subtitle{margin:6px 0 0 0}#integrations-dynamics365Account .dynamics365Account-detail-form-container{padding:24px;margin-bottom:24px}#integrations-dynamics365Account .dynamics365Account-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-dynamics365Account .dynamics365Account-detail-form-container .handle{cursor:move}#integrations-dynamics365Account .dynamics365Account-detail-form-container md-input-container md-switch{margin:0!important}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader{position:relative}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader.dropping .drop-text{display:flex}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .upload-button{margin-bottom:16px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image .media{max-height:100%}#integrations-dynamics365Account md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-dynamics365Account md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#integrations-freshdeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshdeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshdeskAccounts #upload-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.freshsalesAccount-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshsalesConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesConfiguration-dialog .error-list{font-size:13px}md-dialog.freshsalesConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-item-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshsalesAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshsalesAccount .header .goto-freshsalesAccounts-button{margin-right:16px}#integrations-freshsalesAccount .header .freshsalesAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshsalesAccount .header .freshsalesAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshsalesAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .handle{cursor:move}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader{position:relative}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image .media{max-height:100%}#integrations-freshsalesAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshsalesAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshsalesAccounts{position:relative}#freshsalesAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshsalesAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshsalesAccounts>.header .logo .logo-text{font-size:24px}#freshsalesAccounts>.header md-icon{color:#fff}#freshsalesAccounts>.header .search-input-wrapper{position:relative}#freshsalesAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshsalesAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshsalesAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshsalesAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshsalesAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshsalesAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshsalesAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshsalesAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshsalesAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshsalesAccounts #add-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshsalesAccounts #upload-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#integrations-salesforceAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-salesforceAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#salesforceAccounts #upload-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.servicenowAccount-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowConfiguration-dialog{max-width:720px;width:720px}md-dialog.servicenowConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowConfiguration-dialog .error-list{font-size:13px}md-dialog.servicenowConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowAccount-item-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-item-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-servicenowAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-servicenowAccount .header .goto-servicenowAccounts-button{margin-right:16px}#integrations-servicenowAccount .header .servicenowAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-servicenowAccount .header .servicenowAccount-image img{height:100%;width:auto;max-width:none}#integrations-servicenowAccount .header .subtitle{margin:6px 0 0 0}#integrations-servicenowAccount .servicenowAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-servicenowAccount .servicenowAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-servicenowAccount .servicenowAccount-detail-form-container .handle{cursor:move}#integrations-servicenowAccount .servicenowAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader{position:relative}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader.dropping .drop-text{display:flex}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image .media{max-height:100%}#integrations-servicenowAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-servicenowAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#servicenowAccounts{position:relative}#servicenowAccounts>.header{height:76px;min-height:76px;max-height:76px}#servicenowAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#servicenowAccounts>.header .logo .logo-text{font-size:24px}#servicenowAccounts>.header md-icon{color:#fff}#servicenowAccounts>.header .search-input-wrapper{position:relative}#servicenowAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#servicenowAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#servicenowAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#servicenowAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#servicenowAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#servicenowAccounts>.header.selected-bar .close-button-wrapper{width:244px}#servicenowAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#servicenowAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#servicenowAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#servicenowAccounts #add-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#servicenowAccounts #upload-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#integrations-sugarcrmAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-sugarcrmAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#sugarcrmAccounts #upload-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.vtigerAccount-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerConfiguration-dialog{max-width:720px;width:720px}md-dialog.vtigerConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerConfiguration-dialog .error-list{font-size:13px}md-dialog.vtigerConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerAccount-item-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-item-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-vtigerAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-vtigerAccount .header .goto-vtigerAccounts-button{margin-right:16px}#integrations-vtigerAccount .header .vtigerAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-vtigerAccount .header .vtigerAccount-image img{height:100%;width:auto;max-width:none}#integrations-vtigerAccount .header .subtitle{margin:6px 0 0 0}#integrations-vtigerAccount .vtigerAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-vtigerAccount .vtigerAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-vtigerAccount .vtigerAccount-detail-form-container .handle{cursor:move}#integrations-vtigerAccount .vtigerAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader{position:relative}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader.dropping .drop-text{display:flex}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image .media{max-height:100%}#integrations-vtigerAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-vtigerAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#vtigerAccounts{position:relative}#vtigerAccounts>.header{height:76px;min-height:76px;max-height:76px}#vtigerAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#vtigerAccounts>.header .logo .logo-text{font-size:24px}#vtigerAccounts>.header md-icon{color:#fff}#vtigerAccounts>.header .search-input-wrapper{position:relative}#vtigerAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#vtigerAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#vtigerAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#vtigerAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#vtigerAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#vtigerAccounts>.header.selected-bar .close-button-wrapper{width:244px}#vtigerAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#vtigerAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#vtigerAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#vtigerAccounts #add-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#vtigerAccounts #upload-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}#integrations-zendeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zendeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zendeskAccounts #upload-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zohoAccount-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-dialog .error-list{font-size:13px}md-dialog.zohoAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoConfiguration-dialog{max-width:720px;width:720px}md-dialog.zohoConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zohoConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zohoConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoConfiguration-dialog .error-list{font-size:13px}md-dialog.zohoConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zohoConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zohoConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoAccount-item-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-item-dialog .error-list{font-size:13px}md-dialog.zohoAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zohoAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zohoAccount .header .goto-zohoAccounts-button{margin-right:16px}#integrations-zohoAccount .header .zohoAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zohoAccount .header .zohoAccount-image img{height:100%;width:auto;max-width:none}#integrations-zohoAccount .header .subtitle{margin:6px 0 0 0}#integrations-zohoAccount .zohoAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zohoAccount .zohoAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zohoAccount .zohoAccount-detail-form-container .handle{cursor:move}#integrations-zohoAccount .zohoAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader{position:relative}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image .media{max-height:100%}#integrations-zohoAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zohoAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#zohoAccounts{position:relative}#zohoAccounts>.header{height:76px;min-height:76px;max-height:76px}#zohoAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zohoAccounts>.header .logo .logo-text{font-size:24px}#zohoAccounts>.header md-icon{color:#fff}#zohoAccounts>.header .search-input-wrapper{position:relative}#zohoAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zohoAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zohoAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zohoAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zohoAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zohoAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zohoAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zohoAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zohoAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zohoAccounts #add-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zohoAccounts #upload-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.session-dialog{max-width:720px;width:720px}md-dialog.session-dialog md-dialog-content{display:block;position:relative}md-dialog.session-dialog md-toolbar .title{font-size:17px}md-dialog.session-dialog md-input-container textarea{min-height:150px}md-dialog.session-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.session-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.session-dialog .date-container{padding:16px 0 24px 0}md-dialog.session-dialog .error-list{font-size:13px}md-dialog.session-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.session-dialog .error-list .error .message{font-weight:500}md-dialog.session-dialog .error-list .error .md-button{margin:0}md-dialog.session-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.session-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:76px;min-height:76px;max-height:76px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#jscripty-project md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#jscripty-project md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container.font-size-12 td.md-cell{font-size:12px!important}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}#projects #upload-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.mailCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.mailCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.mailCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.mailCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailCannedAnswer-dialog .error-list{font-size:13px}md-dialog.mailCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.mailCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.mailCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:76px;min-height:76px;max-height:76px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mail-mailAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#mail-mailAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#mail-mailAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#mail-mailAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#mail-mailAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#mail-mailAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#mail-mailAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#mail-mailAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#mail-mailAccount .actionAppData{width:80px!important}}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#mailAccounts #upload-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:76px;min-height:76px;max-height:76px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mail-mailQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#mailQueues #upload-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailSubstatus-dialog{max-width:720px;width:720px}md-dialog.mailSubstatus-dialog md-dialog-content{display:block;position:relative}md-dialog.mailSubstatus-dialog md-toolbar .title{font-size:17px}md-dialog.mailSubstatus-dialog md-input-container textarea{min-height:150px}md-dialog.mailSubstatus-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailSubstatus-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailSubstatus-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailSubstatus-dialog .error-list{font-size:13px}md-dialog.mailSubstatus-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailSubstatus-dialog .error-list .error .message{font-weight:500}md-dialog.mailSubstatus-dialog .error-list .error .md-button{margin:0}md-dialog.mailSubstatus-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailSubstatus-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mailSubtatuses{position:relative}#mailSubtatuses>.header{height:76px;min-height:76px;max-height:76px}#mailSubtatuses>.header .logo .logo-icon{margin:0 16px 0 0}#mailSubtatuses>.header .logo .logo-text{font-size:24px}#mailSubtatuses>.header md-icon{color:#fff}#mailSubtatuses>.header .search-input-wrapper{position:relative}#mailSubtatuses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailSubtatuses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailSubtatuses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailSubtatuses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailSubtatuses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailSubtatuses>.header.selected-bar .close-button-wrapper{width:244px}#mailSubtatuses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailSubtatuses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailSubtatuses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailSubtatuses #add-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#mailSubtatuses #upload-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.plugin-dialog{max-width:720px;width:720px}md-dialog.plugin-dialog md-dialog-content{display:block;position:relative}md-dialog.plugin-dialog md-toolbar .title{font-size:17px}md-dialog.plugin-dialog md-input-container textarea{min-height:150px}md-dialog.plugin-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.plugin-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.plugin-dialog .date-container{padding:16px 0 24px 0}md-dialog.plugin-dialog .error-list{font-size:13px}md-dialog.plugin-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.plugin-dialog .error-list .error .message{font-weight:500}md-dialog.plugin-dialog .error-list .error .md-button{margin:0}md-dialog.plugin-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.plugin-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#marketplace-plugin .header{height:76px;min-height:76px;max-height:76px}#marketplace-plugin .header .goto-plugins-button{margin-right:16px}#marketplace-plugin .header .plugin-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#marketplace-plugin .header .plugin-image img{height:100%;width:auto;max-width:none}#marketplace-plugin .header .subtitle{margin:6px 0 0 0}#marketplace-plugin .plugin-detail-form-container{padding:24px;margin-bottom:24px}#marketplace-plugin .plugin-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#marketplace-plugin .plugin-detail-form-container .handle{cursor:move}#marketplace-plugin .plugin-detail-form-container md-input-container md-switch{margin:0!important}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader{position:relative}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader.dropping .drop-text{display:flex}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .upload-button{margin-bottom:16px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image .media{max-height:100%}#marketplace-plugin md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#marketplace-plugin md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container.font-size-12 td.md-cell{font-size:12px!important}#plugins{position:relative}#plugins>.header{height:76px;min-height:76px;max-height:76px}#plugins>.header .logo .logo-icon{margin:0 16px 0 0}#plugins>.header .logo .logo-text{font-size:24px}#plugins>.header md-icon{color:#fff}#plugins>.header .search-input-wrapper{position:relative}#plugins>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#plugins>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#plugins>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#plugins>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#plugins>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#plugins>.header.selected-bar .close-button-wrapper{width:244px}#plugins>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#plugins>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#plugins>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#plugins #add-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}#plugins #upload-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .plugin-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .plugin-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#motiondialer-ivrCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-ivrCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#ivrCampaigns #upload-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#motiondialer-queueCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-queueCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#queueCampaigns #upload-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.predictive-dialog{max-width:720px;width:720px}md-dialog.predictive-dialog md-dialog-content{display:block;position:relative}md-dialog.predictive-dialog md-toolbar .title{font-size:17px}md-dialog.predictive-dialog md-input-container textarea{min-height:150px}md-dialog.predictive-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.predictive-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.predictive-dialog .date-container{padding:16px 0 24px 0}md-dialog.predictive-dialog .error-list{font-size:13px}md-dialog.predictive-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.predictive-dialog .error-list .error .message{font-weight:500}md-dialog.predictive-dialog .error-list .error .md-button{margin:0}md-dialog.predictive-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.predictive-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.openchannelCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelCannedAnswer-dialog .error-list{font-size:13px}md-dialog.openchannelCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannel-openchannelAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#openchannel-openchannelAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#openchannel-openchannelAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#openchannel-openchannelAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#openchannel-openchannelAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#openchannel-openchannelAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#openchannel-openchannelAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#openchannel-openchannelAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#openchannel-openchannelAccount .actionAppData{width:80px!important}}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelAccounts #upload-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannel-openchannelQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelQueues #upload-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#plugin .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#cloudProviders{position:relative}#cloudProviders>.header{height:76px;min-height:76px;max-height:76px}#cloudProviders>.header .logo .logo-icon{margin:0 16px 0 0}#cloudProviders>.header .logo .logo-text{font-size:24px}#cloudProviders>.header md-icon{color:#fff}#cloudProviders>.header .search-input-wrapper{position:relative}#cloudProviders>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cloudProviders>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cloudProviders>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cloudProviders>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cloudProviders>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cloudProviders>.header.selected-bar .close-button-wrapper{width:244px}#cloudProviders>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cloudProviders>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cloudProviders>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cloudProviders #add-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}#cloudProviders #upload-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cloudProvider-dialog{max-width:720px;width:720px}md-dialog.cloudProvider-dialog md-dialog-content{display:block;position:relative}md-dialog.cloudProvider-dialog md-toolbar .title{font-size:17px}md-dialog.cloudProvider-dialog md-input-container textarea{min-height:150px}md-dialog.cloudProvider-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cloudProvider-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cloudProvider-dialog .date-container{padding:16px 0 24px 0}md-dialog.cloudProvider-dialog .error-list{font-size:13px}md-dialog.cloudProvider-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cloudProvider-dialog .error-list .error .message{font-weight:500}md-dialog.cloudProvider-dialog .error-list .error .md-button{margin:0}md-dialog.cloudProvider-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cloudProvider-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.update-dialog{max-width:720px;width:720px}md-dialog.update-dialog md-dialog-content{display:block;position:relative}md-dialog.update-dialog md-toolbar .title{font-size:17px}md-dialog.update-dialog md-input-container textarea{min-height:60px}md-dialog.update-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.update-dialog .error-list{font-size:13px}md-dialog.update-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.update-dialog .error-list .error .message{font-weight:500}md-dialog.update-dialog .error-list .error .md-button{margin:0}md-dialog.update-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.update-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}#networks #upload-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.smsCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.smsCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.smsCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.smsCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsCannedAnswer-dialog .error-list{font-size:13px}md-dialog.smsCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.smsCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.smsCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:76px;min-height:76px;max-height:76px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#sms-smsAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#sms-smsAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#sms-smsAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#sms-smsAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#sms-smsAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#sms-smsAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#sms-smsAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#sms-smsAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#sms-smsAccount .actionAppData{width:80px!important}}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#smsAccounts #upload-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:76px;min-height:76px;max-height:76px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#sms-smsQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#smsQueues #upload-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}#agents #upload-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:76px;min-height:76px;max-height:76px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}#staff-agent md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-agent md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-agent md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-agent md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}#teams #upload-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:76px;min-height:76px;max-height:76px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#staff-telephone md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-telephone md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container.font-size-12 td.md-cell{font-size:12px!important}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}#telephones #upload-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.userProfile-dialog{max-width:720px;width:720px}md-dialog.userProfile-dialog md-dialog-content{display:block;position:relative}md-dialog.userProfile-dialog md-toolbar .title{font-size:17px}md-dialog.userProfile-dialog md-input-container textarea{min-height:150px}md-dialog.userProfile-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.userProfile-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.userProfile-dialog .date-container{padding:16px 0 24px 0}md-dialog.userProfile-dialog .error-list{font-size:13px}md-dialog.userProfile-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.userProfile-dialog .error-list .error .message{font-weight:500}md-dialog.userProfile-dialog .error-list .error .md-button{margin:0}md-dialog.userProfile-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.userProfile-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-userProfile .header{height:76px;min-height:76px;max-height:76px}#staff-userProfile .header .goto-userProfiles-button{margin-right:16px}#staff-userProfile .header .userProfile-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-userProfile .header .userProfile-image img{height:100%;width:auto;max-width:none}#staff-userProfile .header .subtitle{margin:6px 0 0 0}#staff-userProfile .userProfile-detail-form-container{padding:24px;margin-bottom:24px}#staff-userProfile .userProfile-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-userProfile .userProfile-detail-form-container .handle{cursor:move}#staff-userProfile .userProfile-detail-form-container md-input-container md-switch{margin:0!important}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader{position:relative}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader.dropping .drop-text{display:flex}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .upload-button{margin-bottom:16px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image .media{max-height:100%}#staff-userProfile md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-userProfile md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container.font-size-12 td.md-cell{font-size:12px!important}#userProfiles{position:relative}#userProfiles>.header{height:76px;min-height:76px;max-height:76px}#userProfiles>.header .logo .logo-icon{margin:0 16px 0 0}#userProfiles>.header .logo .logo-text{font-size:24px}#userProfiles>.header md-icon{color:#fff}#userProfiles>.header .search-input-wrapper{position:relative}#userProfiles>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#userProfiles>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#userProfiles>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#userProfiles>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#userProfiles>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#userProfiles>.header.selected-bar .close-button-wrapper{width:244px}#userProfiles>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#userProfiles>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#userProfiles>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#userProfiles #add-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}#userProfiles #upload-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:76px;min-height:76px;max-height:76px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#staff-user md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-user md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-user md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-user md-table-container.font-size-12 td.md-cell{font-size:12px!important}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#users #upload-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers #upload-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}#customDashboards #upload-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:76px;min-height:76px;max-height:76px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}#tools-customDashboard md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-customDashboard md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dispositions{position:relative}#dispositions>.header{height:76px;min-height:76px;max-height:76px}#dispositions>.header .logo .logo-icon{margin:0 16px 0 0}#dispositions>.header .logo .logo-text{font-size:24px}#dispositions>.header md-icon{color:#fff}#dispositions>.header .search-input-wrapper{position:relative}#dispositions>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dispositions>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dispositions>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dispositions>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dispositions>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dispositions>.header.selected-bar .close-button-wrapper{width:244px}#dispositions>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dispositions>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dispositions>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dispositions #add-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}#dispositions #upload-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:76px;min-height:76px;max-height:76px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#tools-interval md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-interval md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-interval md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-interval md-table-container.font-size-12 td.md-cell{font-size:12px!important}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}#intervals #upload-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}#pauses #upload-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}#schedules #upload-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}#sounds #upload-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}#tags #upload-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}#templates #upload-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:76px;min-height:76px;max-height:76px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#tools-trigger md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trigger md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container.font-size-12 td.md-cell{font-size:12px!important}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}#triggers #upload-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:76px;min-height:76px;max-height:76px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#tools-trunk md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trunk md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container.font-size-12 td.md-cell{font-size:12px!important}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}#trunks #upload-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#variables #upload-variable-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.screenRecording-dialog{max-width:720px;width:720px}md-dialog.screenRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.screenRecording-dialog md-toolbar .title{font-size:17px}md-dialog.screenRecording-dialog md-input-container textarea{min-height:150px}md-dialog.screenRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.screenRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.screenRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.screenRecording-dialog .error-list{font-size:13px}md-dialog.screenRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.screenRecording-dialog .error-list .error .message{font-weight:500}md-dialog.screenRecording-dialog .error-list .error .md-button{margin:0}md-dialog.screenRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.screenRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#screenRecordings{position:relative}#screenRecordings>.header{height:76px;min-height:76px;max-height:76px}#screenRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#screenRecordings>.header .logo .logo-text{font-size:24px}#screenRecordings>.header md-icon{color:#fff}#screenRecordings>.header .search-input-wrapper{position:relative}#screenRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#screenRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#screenRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#screenRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#screenRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#screenRecordings>.header.selected-bar .close-button-wrapper{width:244px}#screenRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#screenRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#screenRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#screenRecordings #add-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#screenRecordings #upload-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voice-routing-dialog{max-width:720px;width:720px}md-dialog.voice-routing-dialog md-dialog-content{display:block;position:relative}md-dialog.voice-routing-dialog md-toolbar .title{font-size:17px}md-dialog.voice-routing-dialog md-input-container textarea{min-height:150px}md-dialog.voice-routing-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voice-routing-dialog .date-container{padding:16px 0 24px 0}md-dialog.voice-routing-dialog .error-list{font-size:13px}md-dialog.voice-routing-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voice-routing-dialog .error-list .error .message{font-weight:500}md-dialog.voice-routing-dialog .error-list .error .md-button{margin:0}md-dialog.voice-routing-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voice-routing-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies #upload-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}#contexts #upload-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inbound-route-dialog{max-width:720px;width:720px}md-dialog.inbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.inbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.inbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.inbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.inbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.inbound-route-dialog .error-list{font-size:13px}md-dialog.inbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.inbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.inbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-inbound-route .header .goto-inbound-routes-button{margin-right:16px}#voice-inbound-route .header .inbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inbound-route .header .inbound-route-image img{height:100%;width:auto;max-width:none}#voice-inbound-route .header .subtitle{margin:6px 0 0 0}#voice-inbound-route .inbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-inbound-route .inbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-inbound-route .inbound-route-detail-form-container .handle{cursor:move}#voice-inbound-route .inbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-inbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-inbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-inbound-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-inbound-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-inbound-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-inbound-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-inbound-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-inbound-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-inbound-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-inbound-route .actionAppData{width:80px!important}}#inbound-routes{position:relative}#inbound-routes>.header{height:76px;min-height:76px;max-height:76px}#inbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#inbound-routes>.header .logo .logo-text{font-size:24px}#inbound-routes>.header md-icon{color:#fff}#inbound-routes>.header .search-input-wrapper{position:relative}#inbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#inbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inbound-routes #add-inbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internal-route-dialog{max-width:720px;width:720px}md-dialog.internal-route-dialog md-dialog-content{display:block;position:relative}md-dialog.internal-route-dialog md-toolbar .title{font-size:17px}md-dialog.internal-route-dialog md-input-container textarea{min-height:150px}md-dialog.internal-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.internal-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internal-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.internal-route-dialog .error-list{font-size:13px}md-dialog.internal-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internal-route-dialog .error-list .error .message{font-weight:500}md-dialog.internal-route-dialog .error-list .error .md-button{margin:0}md-dialog.internal-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internal-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internal-route .header{height:76px;min-height:76px;max-height:76px}#voice-internal-route .header .goto-internal-routes-button{margin-right:16px}#voice-internal-route .header .internal-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internal-route .header .internal-route-image img{height:100%;width:auto;max-width:none}#voice-internal-route .header .subtitle{margin:6px 0 0 0}#voice-internal-route .internal-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-internal-route .internal-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-internal-route .internal-route-detail-form-container .handle{cursor:move}#voice-internal-route .internal-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-internal-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-internal-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-internal-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-internal-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-internal-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-internal-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-internal-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-internal-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-internal-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-internal-route .actionAppData{width:80px!important}}#internal-routes{position:relative}#internal-routes>.header{height:76px;min-height:76px;max-height:76px}#internal-routes>.header .logo .logo-icon{margin:0 16px 0 0}#internal-routes>.header .logo .logo-text{font-size:24px}#internal-routes>.header md-icon{color:#fff}#internal-routes>.header .search-input-wrapper{position:relative}#internal-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internal-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internal-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internal-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internal-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internal-routes>.header.selected-bar .close-button-wrapper{width:244px}#internal-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internal-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internal-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internal-routes #add-internal-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:76px;min-height:76px;max-height:76px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#voice-musiconhold md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-musiconhold md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container.font-size-12 td.md-cell{font-size:12px!important}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}#musiconholds #upload-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outbound-route-dialog{max-width:720px;width:720px}md-dialog.outbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.outbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.outbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.outbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.outbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.outbound-route-dialog .error-list{font-size:13px}md-dialog.outbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.outbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.outbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-outbound-route .header .goto-outbound-routes-button{margin-right:16px}#voice-outbound-route .header .outbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outbound-route .header .outbound-route-image img{height:100%;width:auto;max-width:none}#voice-outbound-route .header .subtitle{margin:6px 0 0 0}#voice-outbound-route .outbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-outbound-route .outbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-outbound-route .outbound-route-detail-form-container .handle{cursor:move}#voice-outbound-route .outbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-outbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-outbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#voice-outbound-route .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#voice-outbound-route .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#voice-outbound-route .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#voice-outbound-route .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#voice-outbound-route .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#voice-outbound-route .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#voice-outbound-route .actionAppData{width:150px!important}}@media screen and (max-width:960px){#voice-outbound-route .actionAppData{width:80px!important}}#outbound-routes{position:relative}#outbound-routes>.header{height:76px;min-height:76px;max-height:76px}#outbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#outbound-routes>.header .logo .logo-text{font-size:24px}#outbound-routes>.header md-icon{color:#fff}#outbound-routes>.header .search-input-wrapper{position:relative}#outbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#outbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outbound-routes #add-outbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:76px;min-height:76px;max-height:76px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voice-voicemail md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voicemail md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}#voicemails #upload-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voicePrefix-dialog{max-width:720px;width:720px}md-dialog.voicePrefix-dialog md-dialog-content{display:block;position:relative}md-dialog.voicePrefix-dialog md-toolbar .title{font-size:17px}md-dialog.voicePrefix-dialog md-input-container textarea{min-height:150px}md-dialog.voicePrefix-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicePrefix-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicePrefix-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicePrefix-dialog .error-list{font-size:13px}md-dialog.voicePrefix-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicePrefix-dialog .error-list .error .message{font-weight:500}md-dialog.voicePrefix-dialog .error-list .error .md-button{margin:0}md-dialog.voicePrefix-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicePrefix-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voicePrefixes{position:relative}#voicePrefixes>.header{height:76px;min-height:76px;max-height:76px}#voicePrefixes>.header .logo .logo-icon{margin:0 16px 0 0}#voicePrefixes>.header .logo .logo-text{font-size:24px}#voicePrefixes>.header md-icon{color:#fff}#voicePrefixes>.header .search-input-wrapper{position:relative}#voicePrefixes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicePrefixes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicePrefixes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicePrefixes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicePrefixes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicePrefixes>.header.selected-bar .close-button-wrapper{width:244px}#voicePrefixes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicePrefixes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicePrefixes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicePrefixes #add-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}#voicePrefixes #upload-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:76px;min-height:76px;max-height:76px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voice-voiceQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceQueues #upload-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceRecording .header{height:76px;min-height:76px;max-height:76px}#voice-voiceRecording .header .goto-voiceRecordings-button{margin-right:16px}#voice-voiceRecording .header .voiceRecording-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceRecording .header .voiceRecording-image img{height:100%;width:auto;max-width:none}#voice-voiceRecording .header .subtitle{margin:6px 0 0 0}#voice-voiceRecording .voiceRecording-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceRecording .voiceRecording-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceRecording .voiceRecording-detail-form-container .handle{cursor:move}#voice-voiceRecording .voiceRecording-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader{position:relative}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader.dropping .drop-text{display:flex}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .upload-button{margin-bottom:16px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image .media{max-height:100%}#voice-voiceRecording md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceRecording md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voice-voiceRecording .sentiment.POSITIVE{color:#4caf50;font-size:25px}#voice-voiceRecording .sentiment.NEGATIVE{color:#f40505;font-size:30px}#voice-voiceRecording .sentiment.NEUTRAL{color:#03a9f4;font-size:30px}#voice-voiceRecording .sentiment.MIXED{color:#9c27b0;font-size:30px}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceRecordings #upload-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappAccount .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappAccount .header .goto-whatsappAccounts-button{margin-right:16px}#whatsapp-whatsappAccount .header .whatsappAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappAccount .header .whatsappAccount-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappAccount .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .handle{cursor:move}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader{position:relative}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image .media{max-height:100%}#whatsapp-whatsappAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}@media screen and (min-width:1921px){#whatsapp-whatsappAccount .actionAppData{width:800px!important}}@media screen and (max-width:1920px){#whatsapp-whatsappAccount .actionAppData{width:700px!important}}@media screen and (min-width:1751px) and (max-width:1919px){#whatsapp-whatsappAccount .actionAppData{width:600px!important}}@media screen and (min-width:1601px) and (max-width:1750px){#whatsapp-whatsappAccount .actionAppData{width:500px!important}}@media screen and (min-width:1537px) and (max-width:1600px){#whatsapp-whatsappAccount .actionAppData{width:450px!important}}@media screen and (min-width:1281px) and (max-width:1536px){#whatsapp-whatsappAccount .actionAppData{width:300px!important}}@media screen and (max-width:1280px){#whatsapp-whatsappAccount .actionAppData{width:150px!important}}@media screen and (max-width:960px){#whatsapp-whatsappAccount .actionAppData{width:80px!important}}md-dialog.whatsappCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.whatsappCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappCannedAnswer-dialog .error-list{font-size:13px}md-dialog.whatsappCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsappAccounts{position:relative}#whatsappAccounts>.header{height:76px;min-height:76px;max-height:76px}#whatsappAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappAccounts>.header .logo .logo-text{font-size:24px}#whatsappAccounts>.header md-icon{color:#fff}#whatsappAccounts>.header .search-input-wrapper{position:relative}#whatsappAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappAccounts>.header.selected-bar .close-button-wrapper{width:244px}#whatsappAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappAccounts #add-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappAccounts #upload-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.whatsappQueue-dialog{max-width:720px;width:720px}md-dialog.whatsappQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappQueue-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappQueue-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappQueue-dialog .error-list{font-size:13px}md-dialog.whatsappQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappQueue-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappQueue-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappQueue .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappQueue .header .goto-whatsappQueues-button{margin-right:16px}#whatsapp-whatsappQueue .header .whatsappQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappQueue .header .whatsappQueue-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappQueue .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .handle{cursor:move}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader{position:relative}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image .media{max-height:100%}#whatsapp-whatsappQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#whatsappQueues{position:relative}#whatsappQueues>.header{height:76px;min-height:76px;max-height:76px}#whatsappQueues>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappQueues>.header .logo .logo-text{font-size:24px}#whatsappQueues>.header md-icon{color:#fff}#whatsappQueues>.header .search-input-wrapper{position:relative}#whatsappQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappQueues>.header.selected-bar .close-button-wrapper{width:244px}#whatsappQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappQueues #add-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappQueues #upload-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{position:static;height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}.unread-message-count-chat{position:absolute;top:5px;left:10px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#quick-panel .group-tab .chat,#quick-panel .group-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .group-tab .main .contact{position:relative}#quick-panel .group-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .group-tab .main .contact .status.online{background-color:#00c853}#quick-panel .group-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .group-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .group-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .group-tab .main .recent .contact .status{top:18px}#quick-panel .group-tab .chat{max-height:100%;overflow:hidden}#quick-panel .group-tab .chat .message-row{padding:8px}#quick-panel .group-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .group-tab .chat .message-row .bubble:after,#quick-panel .group-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .group-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .group-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .group-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .group-tab .chat .message-row.user{align-items:flex-end}#quick-panel .group-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .group-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .group-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .group-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .group-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .group-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reset-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#reset-password #reset-password-form-wrapper{flex:1 0 auto;padding:32px}#reset-password #reset-password-form-wrapper #reset-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#reset-password #reset-password-form-wrapper #reset-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#reset-password #reset-password-form-wrapper #reset-password-form .title{font-size:17px;margin:16px 0 32px 0}#reset-password #reset-password-form-wrapper #reset-password-form .logo_login{max-height:200px}#reset-password #reset-password-form-wrapper #reset-password-form form{width:100%;text-align:left}#reset-password #reset-password-form-wrapper #reset-password-form form .submit-button{width:220px;margin:16px auto;display:block}#reset-password #reset-password-form-wrapper #reset-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#reset-password #reset-password-form-wrapper #reset-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#reset-password #reset-password-form-wrapper{padding:16px}#reset-password #reset-password-form-wrapper #reset-password-form{padding:24px;width:100%}#reset-password #reset-password-form-wrapper #reset-password-form form .md-button{width:90%}}md-dialog.preview-dialog{max-width:1020px;width:1020px}md-dialog.preview-dialog md-dialog-content{display:block;position:relative;padding:0}md-dialog.preview-dialog md-toolbar .title{font-size:17px}md-dialog.preview-dialog md-input-container textarea{min-height:150px}md-dialog.preview-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.preview-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.preview-dialog .date-container{padding:16px 0 24px 0}md-dialog.preview-dialog .error-list{font-size:13px}md-dialog.preview-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.preview-dialog .error-list .error .message{font-weight:500}md-dialog.preview-dialog .error-list .error .md-button{margin:0}md-dialog.preview-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.preview-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px;margin-left:10px;margin-right:8px}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar #quick-panel-toggle .unread-message-count{position:absolute;top:8px;left:38px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}.open-contact-count{position:absolute;top:1px;left:25px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}.md-button.preview-button{min-width:46px;min-height:50px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
--- /dev/null
+[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}md-input-container:not(.md-input-has-value) input:not(:focus){color:inherit!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#00d7cc!important;border-left-color:#00d7cc!important}.right .motion-spinner{border-top-color:#00d7cc!important;border-right-color:#00d7cc!important}.md-option-info-text{font-size:10px}md-pagination-wrapper{width:auto!important}md-autocomplete.no-container-margin md-autocomplete-wrap md-input-container{margin:0!important}md-dialog.report-selection-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.advanced-search-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}.md-dialog-action-center{justify-content:center!important}.flag-24{height:24px}button.auto-width{min-width:auto!important}button.size-8{transform:scale(.8)}md-icon.auto-size{height:auto!important;width:auto!important}md-switch.auto-height{height:auto!important}.hidden{visibility:hidden}.user-profile-section-help{background:#fcf20f0f;border:1px solid rgba(0,0,0,.12);padding:5px}.email-preview-message{display:-webkit-box;margin:0 auto;display:block;height:200px;line-height:1.4;-webkit-line-clamp:10;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-all}button.advanced-search.md-accent-bg.md-button.md-default-theme:not([disabled]).md-icon-button:hover{background-color:#0091ea}.blink{animation:blink 2s ease-in infinite}.no-click{pointer-events:none}.spinner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:rgba(43,43,43,.5)}ms-quick-filter[disabled]{pointer-events:none;opacity:.7}ms-search-bar[disabled]{pointer-events:none;opacity:.7}@keyframes blink{from,to{opacity:1}50%{opacity:0}}textarea.api-key-area{background:0 0;resize:none}.badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}md-tooltip.multiline div.md-content{height:auto!important}.auto-margin{margin:auto}md-menu-item md-menu.no-margin button{display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-date-range md-menu span.md-select-value{border-bottom-color:rgba(0,0,0,.12)}.keep-on-top{z-index:9999!important}.margin-auto{margin:auto}.xenialab-violet-light-bg{background-color:#9c4fd3!important}.xenialab-violet-light-fg{color:#9c4fd3!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.disabled-button{display:inline-block;position:relative;cursor:default;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:rgba(0,0,0,.12);color:rgba(0,0,0,.38);white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden}@supports (-ms-ime-align:auto){md-tabs{display:inline!important}}@supports (-ms-accelerator:true){md-tabs{display:inline!important}}@supports (-moz-transform:translate(0,0)){md-tabs{display:inline!important}}body[dir=rtl] table.md-table td.md-cell,body[dir=rtl] table.md-table th.md-column{text-align:right!important}body[dir=rtl] table.md-table td.md-cell md-checkbox,body[dir=rtl] table.md-table th.md-column md-checkbox{margin-right:12px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{margin:0 0 0 16px!important}body[dir=rtl] .ms-navigation .ms-navigation-node .ms-navigation-item>a.ms-navigation-button{padding-right:45px}body[dir=rtl] .md-table-pagination>.buttons{direction:ltr}body[dir=rtl] .md-table-pagination>.buttons>.label{direction:rtl}body[dir=rtl] .header .logo .logo-icon{margin:5px 0 0 15px!important}body[dir=rtl] md-switch .md-container{margin-right:inherit!important}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0%;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=' icon-'],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:'\e600'}.icon-account-box-outline:before{content:'\e601'}.icon-account-box:before{content:'\e602'}.icon-account-check:before{content:'\e603'}.icon-account-circle:before{content:'\e604'}.icon-account-key:before{content:'\e605'}.icon-account-location:before{content:'\e606'}.icon-account-minus:before{content:'\e607'}.icon-account-multiple-outline:before{content:'\e608'}.icon-account-multiple-plus:before{content:'\e609'}.icon-account-multiple:before{content:'\e60a'}.icon-account-network:before{content:'\e60b'}.icon-account-outline:before{content:'\e60c'}.icon-account-plus:before{content:'\e60d'}.icon-account-remove:before{content:'\e60e'}.icon-account-search:before{content:'\e60f'}.icon-account-switch:before{content:'\e610'}.icon-account:before{content:'\e611'}.icon-airballoon:before{content:'\e612'}.icon-airplane-off:before{content:'\e613'}.icon-airplane:before{content:'\e614'}.icon-alarm-check:before{content:'\e615'}.icon-alarm-multiple:before{content:'\e616'}.icon-alarm-off:before{content:'\e617'}.icon-alarm-plus:before{content:'\e618'}.icon-alarm:before{content:'\e619'}.icon-album:before{content:'\e61a'}.icon-alert-box:before{content:'\e61b'}.icon-alert-circle:before{content:'\e61c'}.icon-alert-octagon:before{content:'\e61d'}.icon-alert:before{content:'\e61e'}.icon-alpha:before{content:'\e61f'}.icon-alphabetical:before{content:'\e620'}.icon-amazon-clouddrive:before{content:'\e621'}.icon-amazon:before{content:'\e622'}.icon-ambulance:before{content:'\e623'}.icon-android-debug-bridge:before{content:'\e624'}.icon-android-studio:before{content:'\e625'}.icon-android:before{content:'\e626'}.icon-apple-finder:before{content:'\e627'}.icon-apple-ios:before{content:'\e628'}.icon-apple-mobileme:before{content:'\e629'}.icon-apple-safari:before{content:'\e62a'}.icon-apple:before{content:'\e62b'}.icon-appnet:before{content:'\e62c'}.icon-apps:before{content:'\e62d'}.icon-archive:before{content:'\e62e'}.icon-arrange-bring-forward:before{content:'\e62f'}.icon-arrange-bring-to-front:before{content:'\e630'}.icon-arrange-send-backward:before{content:'\e631'}.icon-arrange-send-to-back:before{content:'\e632'}.icon-arrow-all:before{content:'\e633'}.icon-arrow-bottom-left:before{content:'\e634'}.icon-arrow-bottom-right:before{content:'\e635'}.icon-arrow-collapse:before{content:'\e636'}.icon-arrow-down-bold-circle-outline:before{content:'\e637'}.icon-arrow-down-bold-circle:before{content:'\e638'}.icon-arrow-down-bold-hexagon-outline:before{content:'\e639'}.icon-arrow-down-bold:before{content:'\e63a'}.icon-arrow-down:before{content:'\e63b'}.icon-arrow-expand:before{content:'\e63c'}.icon-arrow-left-bold-circle-outline:before{content:'\e63d'}.icon-arrow-left-bold-circle:before{content:'\e63e'}.icon-arrow-left-bold-hexagon-outline:before{content:'\e63f'}.icon-arrow-left-bold:before{content:'\e640'}.icon-arrow-left:before{content:'\e641'}.icon-arrow-right-bold-circle-outline:before{content:'\e642'}.icon-arrow-right-bold-circle:before{content:'\e643'}.icon-arrow-right-bold-hexagon-outline:before{content:'\e644'}.icon-arrow-right-bold:before{content:'\e645'}.icon-arrow-right:before{content:'\e646'}.icon-arrow-top-left:before{content:'\e647'}.icon-arrow-top-right:before{content:'\e648'}.icon-arrow-up-bold-circle-outline:before{content:'\e649'}.icon-arrow-up-bold-circle:before{content:'\e64a'}.icon-arrow-up-bold-hexagon-outline:before{content:'\e64b'}.icon-arrow-up-bold:before{content:'\e64c'}.icon-arrow-up:before{content:'\e64d'}.icon-at:before{content:'\e64e'}.icon-attachment:before{content:'\e64f'}.icon-audiobook:before{content:'\e650'}.icon-auto-fix:before{content:'\e651'}.icon-auto-upload:before{content:'\e652'}.icon-baby:before{content:'\e653'}.icon-backburger:before{content:'\e654'}.icon-backup-restore:before{content:'\e655'}.icon-bank:before{content:'\e656'}.icon-barcode:before{content:'\e657'}.icon-barley:before{content:'\e658'}.icon-barrel:before{content:'\e659'}.icon-basecamp:before{content:'\e65a'}.icon-basket-fill:before{content:'\e65b'}.icon-basket-unfill:before{content:'\e65c'}.icon-basket:before{content:'\e65d'}.icon-battery-10:before{content:'\e65e'}.icon-battery-20:before{content:'\e65f'}.icon-battery-30:before{content:'\e660'}.icon-battery-40:before{content:'\e661'}.icon-battery-50:before{content:'\e662'}.icon-battery-60:before{content:'\e663'}.icon-battery-70:before{content:'\e664'}.icon-battery-80:before{content:'\e665'}.icon-battery-90:before{content:'\e666'}.icon-battery-alert:before{content:'\e667'}.icon-battery-charging-20:before{content:'\e668'}.icon-battery-charging-30:before{content:'\e669'}.icon-battery-charging-40:before{content:'\e66a'}.icon-battery-charging-60:before{content:'\e66b'}.icon-battery-charging-80:before{content:'\e66c'}.icon-battery-charging-90:before{content:'\e66d'}.icon-battery-charging-100:before{content:'\e66e'}.icon-battery-minus:before{content:'\e66f'}.icon-battery-negative:before{content:'\e670'}.icon-battery-outline:before{content:'\e671'}.icon-battery-plus:before{content:'\e672'}.icon-battery-positive:before{content:'\e673'}.icon-battery-standard:before{content:'\e674'}.icon-battery-unknown:before{content:'\e675'}.icon-battery:before{content:'\e676'}.icon-beach:before{content:'\e677'}.icon-beaker-empty-outline:before{content:'\e678'}.icon-beaker-empty:before{content:'\e679'}.icon-beaker-outline:before{content:'\e67a'}.icon-beaker:before{content:'\e67b'}.icon-beats:before{content:'\e67c'}.icon-beer:before{content:'\e67d'}.icon-behance:before{content:'\e67e'}.icon-bell-off:before{content:'\e67f'}.icon-bell-outline:before{content:'\e680'}.icon-bell-ring-outline:before{content:'\e681'}.icon-bell-ring:before{content:'\e682'}.icon-bell-sleep:before{content:'\e683'}.icon-bell:before{content:'\e684'}.icon-beta:before{content:'\e685'}.icon-bike:before{content:'\e686'}.icon-bing:before{content:'\e687'}.icon-binoculars:before{content:'\e688'}.icon-bio:before{content:'\e689'}.icon-bitbucket:before{content:'\e68a'}.icon-black-mesa:before{content:'\e68b'}.icon-blackberry:before{content:'\e68c'}.icon-blinds:before{content:'\e68d'}.icon-block-helper:before{content:'\e68e'}.icon-blogger:before{content:'\e68f'}.icon-bluetooth-audio:before{content:'\e690'}.icon-bluetooth-connect:before{content:'\e691'}.icon-bluetooth-settings:before{content:'\e692'}.icon-bluetooth-transfer:before{content:'\e693'}.icon-bluetooth:before{content:'\e694'}.icon-blur-linear:before{content:'\e695'}.icon-blur-off:before{content:'\e696'}.icon-blur-radial:before{content:'\e697'}.icon-blur:before{content:'\e698'}.icon-bone:before{content:'\e699'}.icon-book-multiple-variant:before{content:'\e69a'}.icon-book-multiple:before{content:'\e69b'}.icon-book-open:before{content:'\e69c'}.icon-book-variant:before{content:'\e69d'}.icon-book:before{content:'\e69e'}.icon-bookmark-check:before{content:'\e69f'}.icon-bookmark-music:before{content:'\e6a0'}.icon-bookmark-outline-plus:before{content:'\e6a1'}.icon-bookmark-outline:before{content:'\e6a2'}.icon-bookmark-plus:before{content:'\e6a3'}.icon-bookmark-remove:before{content:'\e6a4'}.icon-bookmark:before{content:'\e6a5'}.icon-border-all:before{content:'\e6a6'}.icon-border-bottom:before{content:'\e6a7'}.icon-border-color:before{content:'\e6a8'}.icon-border-horizontal:before{content:'\e6a9'}.icon-border-inside:before{content:'\e6aa'}.icon-border-left:before{content:'\e6ab'}.icon-border-none:before{content:'\e6ac'}.icon-border-outside:before{content:'\e6ad'}.icon-border-right:before{content:'\e6ae'}.icon-border-top:before{content:'\e6af'}.icon-border-vertical:before{content:'\e6b0'}.icon-bowling:before{content:'\e6b1'}.icon-box-download:before{content:'\e6b2'}.icon-box-upload:before{content:'\e6b3'}.icon-box:before{content:'\e6b4'}.icon-briefcase-checked:before{content:'\e6b5'}.icon-briefcase-download:before{content:'\e6b6'}.icon-briefcase-upload:before{content:'\e6b7'}.icon-briefcase:before{content:'\e6b8'}.icon-brightness-1:before{content:'\e6b9'}.icon-brightness-2:before{content:'\e6ba'}.icon-brightness-3:before{content:'\e6bb'}.icon-brightness-4:before{content:'\e6bc'}.icon-brightness-5:before{content:'\e6bd'}.icon-brightness-6:before{content:'\e6be'}.icon-brightness-7:before{content:'\e6bf'}.icon-brightness-auto:before{content:'\e6c0'}.icon-brightness:before{content:'\e6c1'}.icon-broom:before{content:'\e6c2'}.icon-brush:before{content:'\e6c3'}.icon-bug:before{content:'\e6c4'}.icon-bulletin-board:before{content:'\e6c5'}.icon-bullhorn:before{content:'\e6c6'}.icon-bus:before{content:'\e6c7'}.icon-cake-variant:before{content:'\e6c8'}.icon-cake:before{content:'\e6c9'}.icon-calculator:before{content:'\e6ca'}.icon-calendar-blank:before{content:'\e6cb'}.icon-calendar-check-multiple:before{content:'\e6cc'}.icon-calendar-check:before{content:'\e6cd'}.icon-calendar-clock:before{content:'\e6ce'}.icon-calendar-multiple:before{content:'\e6cf'}.icon-calendar-plus:before{content:'\e6d0'}.icon-calendar-remove:before{content:'\e6d1'}.icon-calendar-select:before{content:'\e6d2'}.icon-calendar-text:before{content:'\e6d3'}.icon-calendar-today:before{content:'\e6d4'}.icon-calendar:before{content:'\e6d5'}.icon-camcorder-box-off:before{content:'\e6d6'}.icon-camcorder-box:before{content:'\e6d7'}.icon-camcorder-off:before{content:'\e6d8'}.icon-camcorder:before{content:'\e6d9'}.icon-camera-front-variant:before{content:'\e6da'}.icon-camera-front:before{content:'\e6db'}.icon-camera-iris:before{content:'\e6dc'}.icon-camera-party-mode:before{content:'\e6dd'}.icon-camera-rear-variant:before{content:'\e6de'}.icon-camera-rear:before{content:'\e6df'}.icon-camera-switch:before{content:'\e6e0'}.icon-camera-timer:before{content:'\e6e1'}.icon-camera:before{content:'\e6e2'}.icon-cancel:before{content:'\e6e3'}.icon-candycane:before{content:'\e6e4'}.icon-car-wash:before{content:'\e6e5'}.icon-car:before{content:'\e6e6'}.icon-carrot:before{content:'\e6e7'}.icon-cart-outline:before{content:'\e6e8'}.icon-cart:before{content:'\e6e9'}.icon-cash-100:before{content:'\e6ea'}.icon-cash-multiple:before{content:'\e6eb'}.icon-cash-usd:before{content:'\e6ec'}.icon-cash:before{content:'\e6ed'}.icon-cast-connected:before{content:'\e6ee'}.icon-cast:before{content:'\e6ef'}.icon-castle:before{content:'\e6f0'}.icon-cat:before{content:'\e6f1'}.icon-cellphone-android:before{content:'\e6f2'}.icon-cellphone-dock:before{content:'\e6f3'}.icon-cellphone-iphone:before{content:'\e6f4'}.icon-cellphone-link-off:before{content:'\e6f5'}.icon-cellphone-link:before{content:'\e6f6'}.icon-cellphone-settings:before{content:'\e6f7'}.icon-cellphone:before{content:'\e6f8'}.icon-chair-school:before{content:'\e6f9'}.icon-chart-arc:before{content:'\e6fa'}.icon-chart-areaspline:before{content:'\e6fb'}.icon-chart-bar:before{content:'\e6fc'}.icon-chart-histogram:before{content:'\e6fd'}.icon-chart-line:before{content:'\e6fe'}.icon-chart-pie:before{content:'\e6ff'}.icon-check-all:before{content:'\e700'}.icon-check-bookmark:before{content:'\e701'}.icon-check-circle:before{content:'\e702'}.icon-check:before{content:'\e703'}.icon-checkbox-blank-circle-outline:before{content:'\e704'}.icon-checkbox-blank-circle:before{content:'\e705'}.icon-checkbox-blank-outline:before{content:'\e706'}.icon-checkbox-blank:before{content:'\e707'}.icon-checkbox-marked-circle-outline:before{content:'\e708'}.icon-checkbox-marked-circle:before{content:'\e709'}.icon-checkbox-marked-outline:before{content:'\e70a'}.icon-checkbox-marked:before{content:'\e70b'}.icon-checkbox-multiple-blank-outline:before{content:'\e70c'}.icon-checkbox-multiple-blank:before{content:'\e70d'}.icon-checkbox-multiple-marked-outline:before{content:'\e70e'}.icon-checkbox-multiple-marked:before{content:'\e70f'}.icon-checkerboard:before{content:'\e710'}.icon-chevron-double-down:before{content:'\e711'}.icon-chevron-double-left:before{content:'\e712'}.icon-chevron-double-right:before{content:'\e713'}.icon-chevron-double-up:before{content:'\e714'}.icon-chevron-down:before{content:'\e715'}.icon-chevron-left:before{content:'\e716'}.icon-chevron-right:before{content:'\e717'}.icon-chevron-up:before{content:'\e718'}.icon-church:before{content:'\e719'}.icon-cisco-webex:before{content:'\e71a'}.icon-city:before{content:'\e71b'}.icon-clapperboard:before{content:'\e71c'}.icon-clipboard-account:before{content:'\e71d'}.icon-clipboard-alert:before{content:'\e71e'}.icon-clipboard-arrow-down:before{content:'\e71f'}.icon-clipboard-arrow-left:before{content:'\e720'}.icon-clipboard-check:before{content:'\e721'}.icon-clipboard-outline:before{content:'\e722'}.icon-clipboard-text:before{content:'\e723'}.icon-clipboard:before{content:'\e724'}.icon-clippy:before{content:'\e725'}.icon-clock-fast:before{content:'\e726'}.icon-clock:before{content:'\e727'}.icon-close-circle-outline:before{content:'\e728'}.icon-close-circle:before{content:'\e729'}.icon-close-network:before{content:'\e72a'}.icon-close:before{content:'\e72b'}.icon-closed-caption:before{content:'\e72c'}.icon-cloud-check:before{content:'\e72d'}.icon-cloud-circle:before{content:'\e72e'}.icon-cloud-download:before{content:'\e72f'}.icon-cloud-outline-off:before{content:'\e730'}.icon-cloud-outline:before{content:'\e731'}.icon-cloud-upload:before{content:'\e732'}.icon-cloud:before{content:'\e733'}.icon-code-array:before{content:'\e734'}.icon-code-braces:before{content:'\e735'}.icon-code-equal:before{content:'\e736'}.icon-code-greater-than-or-equal:before{content:'\e737'}.icon-code-greater-than:before{content:'\e738'}.icon-code-less-than-or-equal:before{content:'\e739'}.icon-code-less-than:before{content:'\e73a'}.icon-code-not-equal-variant:before{content:'\e73b'}.icon-code-not-equal:before{content:'\e73c'}.icon-code-string:before{content:'\e73d'}.icon-code-tags:before{content:'\e73e'}.icon-codepen:before{content:'\e73f'}.icon-coffee-to-go:before{content:'\e740'}.icon-coffee:before{content:'\e741'}.icon-cog-box:before{content:'\e742'}.icon-cog:before{content:'\e743'}.icon-coin:before{content:'\e744'}.icon-color-helper:before{content:'\e745'}.icon-comment-account-outline:before{content:'\e746'}.icon-comment-account:before{content:'\e747'}.icon-comment-alert-outline:before{content:'\e748'}.icon-comment-alert:before{content:'\e749'}.icon-comment-check-outline:before{content:'\e74a'}.icon-comment-check:before{content:'\e74b'}.icon-comment-multipe-outline:before{content:'\e74c'}.icon-comment-outline:before{content:'\e74d'}.icon-comment-plus-outline:before{content:'\e74e'}.icon-comment-processing-outline:before{content:'\e74f'}.icon-comment-processing:before{content:'\e750'}.icon-comment-remove-outline:before{content:'\e751'}.icon-comment-text-outline:before{content:'\e752'}.icon-comment-text:before{content:'\e753'}.icon-comment:before{content:'\e754'}.icon-compare:before{content:'\e755'}.icon-compass-outline:before{content:'\e756'}.icon-compass:before{content:'\e757'}.icon-console:before{content:'\e758'}.icon-content-copy:before{content:'\e759'}.icon-content-cut:before{content:'\e75a'}.icon-content-duplicate:before{content:'\e75b'}.icon-content-paste:before{content:'\e75c'}.icon-content-save-all:before{content:'\e75d'}.icon-content-save:before{content:'\e75e'}.icon-contrast-box:before{content:'\e75f'}.icon-contrast-circle:before{content:'\e760'}.icon-contrast:before{content:'\e761'}.icon-controller-xbox:before{content:'\e762'}.icon-cow:before{content:'\e763'}.icon-credit-card-multiple:before{content:'\e764'}.icon-credit-card:before{content:'\e765'}.icon-crop-free:before{content:'\e766'}.icon-crop-landscape:before{content:'\e767'}.icon-crop-portrait:before{content:'\e768'}.icon-crop-square:before{content:'\e769'}.icon-crop:before{content:'\e76a'}.icon-crosshairs-gps:before{content:'\e76b'}.icon-crosshairs:before{content:'\e76c'}.icon-crown:before{content:'\e76d'}.icon-cube-outline:before{content:'\e76e'}.icon-cube-unfolded:before{content:'\e76f'}.icon-cube:before{content:'\e770'}.icon-cup-water:before{content:'\e771'}.icon-cup:before{content:'\e772'}.icon-currency-btc:before{content:'\e773'}.icon-currency-eur:before{content:'\e774'}.icon-currency-gbp:before{content:'\e775'}.icon-currency-inr:before{content:'\e776'}.icon-currency-rub:before{content:'\e777'}.icon-currency-try:before{content:'\e778'}.icon-currency-usd:before{content:'\e779'}.icon-cursor-default-outline:before{content:'\e77a'}.icon-cursor-default:before{content:'\e77b'}.icon-cursor-move:before{content:'\e77c'}.icon-cursor-pointer:before{content:'\e77d'}.icon-data:before{content:'\e77e'}.icon-debug-step-into:before{content:'\e77f'}.icon-debug-step-out:before{content:'\e780'}.icon-debug-step-over:before{content:'\e781'}.icon-decimal-decrease:before{content:'\e782'}.icon-decimal-increase:before{content:'\e783'}.icon-delete-variant:before{content:'\e784'}.icon-delete:before{content:'\e785'}.icon-deskphone:before{content:'\e786'}.icon-desktop-mac:before{content:'\e787'}.icon-desktop-tower:before{content:'\e788'}.icon-details:before{content:'\e789'}.icon-deviantart:before{content:'\e78a'}.icon-diamond:before{content:'\e78b'}.icon-dice-1:before{content:'\e78c'}.icon-dice-2:before{content:'\e78d'}.icon-dice-3:before{content:'\e78e'}.icon-dice-4:before{content:'\e78f'}.icon-dice-5:before{content:'\e790'}.icon-dice-6:before{content:'\e791'}.icon-dice:before{content:'\e792'}.icon-directions:before{content:'\e793'}.icon-disk-alert:before{content:'\e794'}.icon-disqus-outline:before{content:'\e795'}.icon-disqus:before{content:'\e796'}.icon-division-box:before{content:'\e797'}.icon-division:before{content:'\e798'}.icon-dns:before{content:'\e799'}.icon-document:before{content:'\e79a'}.icon-domain:before{content:'\e79b'}.icon-dots-horizontal:before{content:'\e79c'}.icon-dots-vertical:before{content:'\e79d'}.icon-download:before{content:'\e79e'}.icon-drag-horizontal:before{content:'\e79f'}.icon-drag-vertical:before{content:'\e7a0'}.icon-drag:before{content:'\e7a1'}.icon-drawing-box:before{content:'\e7a2'}.icon-drawing:before{content:'\e7a3'}.icon-dribbble-box:before{content:'\e7a4'}.icon-dribbble:before{content:'\e7a5'}.icon-drone:before{content:'\e7a6'}.icon-dropbox:before{content:'\e7a7'}.icon-drupal:before{content:'\e7a8'}.icon-duck:before{content:'\e7a9'}.icon-dumbbell:before{content:'\e7aa'}.icon-earth-off:before{content:'\e7ab'}.icon-earth:before{content:'\e7ac'}.icon-ebay:before{content:'\e7ad'}.icon-edge:before{content:'\e7ae'}.icon-eject:before{content:'\e7af'}.icon-elevation-decline:before{content:'\e7b0'}.icon-elevation-rise:before{content:'\e7b1'}.icon-elevator:before{content:'\e7b2'}.icon-email-open:before{content:'\e7b3'}.icon-email-secure:before{content:'\e7b4'}.icon-email:before{content:'\e7b5'}.icon-emoticon-cool:before{content:'\e7b6'}.icon-emoticon-devil:before{content:'\e7b7'}.icon-emoticon-happy:before{content:'\e7b8'}.icon-emoticon-neutral:before{content:'\e7b9'}.icon-emoticon-poop:before{content:'\e7ba'}.icon-emoticon-sad:before{content:'\e7bb'}.icon-emoticon-tongue:before{content:'\e7bc'}.icon-emoticon:before{content:'\e7bd'}.icon-engine-outline:before{content:'\e7be'}.icon-engine:before{content:'\e7bf'}.icon-equal-box:before{content:'\e7c0'}.icon-equal:before{content:'\e7c1'}.icon-eraser:before{content:'\e7c2'}.icon-escalator:before{content:'\e7c3'}.icon-etsy:before{content:'\e7c4'}.icon-evernote:before{content:'\e7c5'}.icon-exclamation:before{content:'\e7c6'}.icon-exit-to-app:before{content:'\e7c7'}.icon-export:before{content:'\e7c8'}.icon-eye-off:before{content:'\e7c9'}.icon-eye:before{content:'\e7ca'}.icon-eyedropper-variant:before{content:'\e7cb'}.icon-eyedropper:before{content:'\e7cc'}.icon-facebook-box:before{content:'\e7cd'}.icon-facebook:before{content:'\e7ce'}.icon-factory:before{content:'\e7cf'}.icon-fan:before{content:'\e7d0'}.icon-fast-forward:before{content:'\e7d1'}.icon-ferry:before{content:'\e7d2'}.icon-file-cloud:before{content:'\e7d3'}.icon-file-delimited:before{content:'\e7d4'}.icon-file-document-box:before{content:'\e7d5'}.icon-file-document:before{content:'\e7d6'}.icon-file-excel-box:before{content:'\e7d7'}.icon-file-excel:before{content:'\e7d8'}.icon-file-find:before{content:'\e7d9'}.icon-file-hidden:before{content:'\e7da'}.icon-file-image-box:before{content:'\e7db'}.icon-file-image:before{content:'\e7dc'}.icon-file-multiple:before{content:'\e7dd'}.icon-file-music:before{content:'\e7de'}.icon-file-outline:before{content:'\e7df'}.icon-file-pdf-box:before{content:'\e7e0'}.icon-file-pdf:before{content:'\e7e1'}.icon-file-powerpoint-box:before{content:'\e7e2'}.icon-file-powerpoint:before{content:'\e7e3'}.icon-file-presentation-box:before{content:'\e7e4'}.icon-file-video:before{content:'\e7e5'}.icon-file-word-box:before{content:'\e7e6'}.icon-file-word:before{content:'\e7e7'}.icon-file-xml:before{content:'\e7e8'}.icon-file:before{content:'\e7e9'}.icon-fill:before{content:'\e7ea'}.icon-film:before{content:'\e7eb'}.icon-filmstrip-off:before{content:'\e7ec'}.icon-filmstrip:before{content:'\e7ed'}.icon-filter-outline:before{content:'\e7ee'}.icon-filter-remove-outline:before{content:'\e7ef'}.icon-filter-remove:before{content:'\e7f0'}.icon-filter-variant:before{content:'\e7f1'}.icon-filter:before{content:'\e7f2'}.icon-fire:before{content:'\e7f3'}.icon-fish:before{content:'\e7f4'}.icon-flag-checkered-variant:before{content:'\e7f5'}.icon-flag-checkered:before{content:'\e7f6'}.icon-flag-outline-variant:before{content:'\e7f7'}.icon-flag-outline:before{content:'\e7f8'}.icon-flag-triangle:before{content:'\e7f9'}.icon-flag-variant:before{content:'\e7fa'}.icon-flag:before{content:'\e7fb'}.icon-flash-auto:before{content:'\e7fc'}.icon-flash-off:before{content:'\e7fd'}.icon-flash:before{content:'\e7fe'}.icon-flashlight-off:before{content:'\e7ff'}.icon-flashlight:before{content:'\e800'}.icon-flattr:before{content:'\e801'}.icon-flickr-after:before{content:'\e802'}.icon-flickr-before:before{content:'\e803'}.icon-flip-to-back:before{content:'\e804'}.icon-flip-to-front:before{content:'\e805'}.icon-floppy:before{content:'\e806'}.icon-flower:before{content:'\e807'}.icon-folder-account:before{content:'\e808'}.icon-folder-download:before{content:'\e809'}.icon-folder-google-drive:before{content:'\e80a'}.icon-folder-image:before{content:'\e80b'}.icon-folder-lock-open:before{content:'\e80c'}.icon-folder-lock:before{content:'\e80d'}.icon-folder-move:before{content:'\e80e'}.icon-folder-multiple-image:before{content:'\e80f'}.icon-folder-multiple-outline:before{content:'\e810'}.icon-folder-multiple:before{content:'\e811'}.icon-folder-outline-lock:before{content:'\e812'}.icon-folder-outline:before{content:'\e813'}.icon-folder-plus:before{content:'\e814'}.icon-folder-remove:before{content:'\e815'}.icon-folder-upload:before{content:'\e816'}.icon-folder:before{content:'\e817'}.icon-food-apple:before{content:'\e818'}.icon-food-variant:before{content:'\e819'}.icon-food:before{content:'\e81a'}.icon-football-helmet:before{content:'\e81b'}.icon-football:before{content:'\e81c'}.icon-format-align-center:before{content:'\e81d'}.icon-format-align-justify:before{content:'\e81e'}.icon-format-align-left:before{content:'\e81f'}.icon-format-align-right:before{content:'\e820'}.icon-format-bold:before{content:'\e821'}.icon-format-clear:before{content:'\e822'}.icon-format-color-fill:before{content:'\e823'}.icon-format-color:before{content:'\e824'}.icon-format-float-center:before{content:'\e825'}.icon-format-float-left:before{content:'\e826'}.icon-format-float-none:before{content:'\e827'}.icon-format-float-right:before{content:'\e828'}.icon-format-header-1:before{content:'\e829'}.icon-format-header-2:before{content:'\e82a'}.icon-format-header-3:before{content:'\e82b'}.icon-format-header-4:before{content:'\e82c'}.icon-format-header-5:before{content:'\e82d'}.icon-format-header-6:before{content:'\e82e'}.icon-format-header-decrease:before{content:'\e82f'}.icon-format-header-down:before{content:'\e830'}.icon-format-header-equal:before{content:'\e831'}.icon-format-header-increase:before{content:'\e832'}.icon-format-header-pound:before{content:'\e833'}.icon-format-header-up:before{content:'\e834'}.icon-format-indent-decrease:before{content:'\e835'}.icon-format-indent-increase:before{content:'\e836'}.icon-format-italic:before{content:'\e837'}.icon-format-line-spacing:before{content:'\e838'}.icon-format-list-bulleted:before{content:'\e839'}.icon-format-list-numbers:before{content:'\e83a'}.icon-format-object-inline:before{content:'\e83b'}.icon-format-object-square:before{content:'\e83c'}.icon-format-object-tight:before{content:'\e83d'}.icon-format-object-top-bottom:before{content:'\e83e'}.icon-format-paint:before{content:'\e83f'}.icon-format-paragraph:before{content:'\e840'}.icon-format-quote:before{content:'\e841'}.icon-format-size:before{content:'\e842'}.icon-format-strikethrough:before{content:'\e843'}.icon-format-subscript:before{content:'\e844'}.icon-format-superscript:before{content:'\e845'}.icon-format-text:before{content:'\e846'}.icon-format-textdirection-l-to-r:before{content:'\e847'}.icon-format-textdirection-r-to-l:before{content:'\e848'}.icon-format-underline:before{content:'\e849'}.icon-forum:before{content:'\e84a'}.icon-forward:before{content:'\e84b'}.icon-foursquare:before{content:'\e84c'}.icon-fridge:before{content:'\e84d'}.icon-fullscreen-exit:before{content:'\e84e'}.icon-fullscreen:before{content:'\e84f'}.icon-function:before{content:'\e850'}.icon-gamepad-variant:before{content:'\e851'}.icon-gamepad:before{content:'\e852'}.icon-gas-station:before{content:'\e853'}.icon-gavel:before{content:'\e854'}.icon-gender-female:before{content:'\e855'}.icon-gender-male-female:before{content:'\e856'}.icon-gender-male:before{content:'\e857'}.icon-gender-transgender:before{content:'\e858'}.icon-gift:before{content:'\e859'}.icon-git:before{content:'\e85a'}.icon-github-box:before{content:'\e85b'}.icon-github:before{content:'\e85c'}.icon-glass-flute:before{content:'\e85d'}.icon-glass-mug:before{content:'\e85e'}.icon-glass-stange:before{content:'\e85f'}.icon-glass-tulip:before{content:'\e860'}.icon-glasses:before{content:'\e861'}.icon-gmail:before{content:'\e862'}.icon-google-chrome:before{content:'\e863'}.icon-google-circles-communities:before{content:'\e864'}.icon-google-circles-extended:before{content:'\e865'}.icon-google-circles-invite:before{content:'\e866'}.icon-google-circles:before{content:'\e867'}.icon-google-controller-off:before{content:'\e868'}.icon-google-controller:before{content:'\e869'}.icon-google-drive:before{content:'\e86a'}.icon-google-earth:before{content:'\e86b'}.icon-google-glass:before{content:'\e86c'}.icon-google-maps:before{content:'\e86d'}.icon-google-pages:before{content:'\e86e'}.icon-google-play:before{content:'\e86f'}.icon-google-plus-box:before{content:'\e870'}.icon-google-plus:before{content:'\e871'}.icon-google:before{content:'\e872'}.icon-grid-off:before{content:'\e873'}.icon-grid:before{content:'\e874'}.icon-group:before{content:'\e875'}.icon-hand-pointing-right:before{content:'\e876'}.icon-hanger:before{content:'\e877'}.icon-hangouts:before{content:'\e878'}.icon-harddisk:before{content:'\e879'}.icon-headphones-box:before{content:'\e87a'}.icon-headphones-dots:before{content:'\e87b'}.icon-headphones:before{content:'\e87c'}.icon-headset-dock:before{content:'\e87d'}.icon-headset-off:before{content:'\e87e'}.icon-headset:before{content:'\e87f'}.icon-heart-box-outline:before{content:'\e880'}.icon-heart-box:before{content:'\e881'}.icon-heart-broken:before{content:'\e882'}.icon-heart-outline:before{content:'\e883'}.icon-heart:before{content:'\e884'}.icon-help-circle:before{content:'\e885'}.icon-help:before{content:'\e886'}.icon-hexagon-outline:before{content:'\e887'}.icon-hexagon:before{content:'\e888'}.icon-history:before{content:'\e889'}.icon-hololens:before{content:'\e88a'}.icon-home-modern:before{content:'\e88b'}.icon-home-variant:before{content:'\e88c'}.icon-home:before{content:'\e88d'}.icon-hops:before{content:'\e88e'}.icon-hospital-building:before{content:'\e88f'}.icon-hospital-marker:before{content:'\e890'}.icon-hospital:before{content:'\e891'}.icon-hotel:before{content:'\e892'}.icon-houzz-box:before{content:'\e893'}.icon-human-child:before{content:'\e894'}.icon-human-male-female:before{content:'\e895'}.icon-human:before{content:'\e896'}.icon-image-album:before{content:'\e897'}.icon-image-area-close:before{content:'\e898'}.icon-image-area:before{content:'\e899'}.icon-image-broken:before{content:'\e89a'}.icon-image-filter-black-white:before{content:'\e89b'}.icon-image-filter-center-focus:before{content:'\e89c'}.icon-image-filter-drama:before{content:'\e89d'}.icon-image-filter-frames:before{content:'\e89e'}.icon-image-filter-hdr:before{content:'\e89f'}.icon-image-filter-none:before{content:'\e8a0'}.icon-image-filter-tilt-shift:before{content:'\e8a1'}.icon-image-filter-vintage:before{content:'\e8a2'}.icon-image-filter:before{content:'\e8a3'}.icon-image:before{content:'\e8a4'}.icon-import:before{content:'\e8a5'}.icon-inbox:before{content:'\e8a6'}.icon-indent:before{content:'\e8a7'}.icon-information-outline:before{content:'\e8a8'}.icon-information:before{content:'\e8a9'}.icon-instagram:before{content:'\e8aa'}.icon-instapaper:before{content:'\e8ab'}.icon-internet-explorer:before{content:'\e8ac'}.icon-invert-colors:before{content:'\e8ad'}.icon-jira:before{content:'\e8ae'}.icon-jsfiddle:before{content:'\e8af'}.icon-keg:before{content:'\e8b0'}.icon-key-change:before{content:'\e8b1'}.icon-key-minus:before{content:'\e8b2'}.icon-key-plus:before{content:'\e8b3'}.icon-key-remove:before{content:'\e8b4'}.icon-key-variant:before{content:'\e8b5'}.icon-key:before{content:'\e8b6'}.icon-keyboard-backspace:before{content:'\e8b7'}.icon-keyboard-caps:before{content:'\e8b8'}.icon-keyboard-close:before{content:'\e8b9'}.icon-keyboard-off:before{content:'\e8ba'}.icon-keyboard-return:before{content:'\e8bb'}.icon-keyboard-tab:before{content:'\e8bc'}.icon-keyboard-variant:before{content:'\e8bd'}.icon-keyboard:before{content:'\e8be'}.icon-label-outline:before{content:'\e8bf'}.icon-label:before{content:'\e8c0'}.icon-language-csharp:before{content:'\e8c1'}.icon-language-css3:before{content:'\e8c2'}.icon-language-html5:before{content:'\e8c3'}.icon-language-javascript:before{content:'\e8c4'}.icon-language-python-text:before{content:'\e8c5'}.icon-language-python:before{content:'\e8c6'}.icon-laptop-chromebook:before{content:'\e8c7'}.icon-laptop-mac:before{content:'\e8c8'}.icon-laptop-windows:before{content:'\e8c9'}.icon-laptop:before{content:'\e8ca'}.icon-lastfm:before{content:'\e8cb'}.icon-launch:before{content:'\e8cc'}.icon-layers-off:before{content:'\e8cd'}.icon-layers:before{content:'\e8ce'}.icon-leaf:before{content:'\e8cf'}.icon-library-books:before{content:'\e8d0'}.icon-library-music:before{content:'\e8d1'}.icon-library-plus:before{content:'\e8d2'}.icon-library:before{content:'\e8d3'}.icon-lightbulb-outline:before{content:'\e8d4'}.icon-lightbulb:before{content:'\e8d5'}.icon-link-off:before{content:'\e8d6'}.icon-link-variant-off:before{content:'\e8d7'}.icon-link-variant:before{content:'\e8d8'}.icon-link:before{content:'\e8d9'}.icon-linkedin-box:before{content:'\e8da'}.icon-linkedin:before{content:'\e8db'}.icon-linode:before{content:'\e8dc'}.icon-linux:before{content:'\e8dd'}.icon-lock-outline:before{content:'\e8de'}.icon-lock-unlocked-outline:before{content:'\e8df'}.icon-lock-unlocked:before{content:'\e8e0'}.icon-lock:before{content:'\e8e1'}.icon-login:before{content:'\e8e2'}.icon-logout:before{content:'\e8e3'}.icon-looks:before{content:'\e8e4'}.icon-loupe:before{content:'\e8e5'}.icon-lumx:before{content:'\e8e6'}.icon-magnet-on:before{content:'\e8e7'}.icon-magnet:before{content:'\e8e8'}.icon-magnify-minus:before{content:'\e8e9'}.icon-magnify-plus:before{content:'\e8ea'}.icon-magnify:before{content:'\e8eb'}.icon-mail-ru:before{content:'\e8ec'}.icon-map-marker-circle:before{content:'\e8ed'}.icon-map-marker-multiple:before{content:'\e8ee'}.icon-map-marker-off:before{content:'\e8ef'}.icon-map-marker-radius:before{content:'\e8f0'}.icon-map-marker:before{content:'\e8f1'}.icon-map:before{content:'\e8f2'}.icon-margin:before{content:'\e8f3'}.icon-markdown:before{content:'\e8f4'}.icon-marker-check:before{content:'\e8f5'}.icon-martini:before{content:'\e8f6'}.icon-material-ui:before{content:'\e8f7'}.icon-maxcdn:before{content:'\e8f8'}.icon-medium:before{content:'\e8f9'}.icon-memory:before{content:'\e8fa'}.icon-menu-down:before{content:'\e8fb'}.icon-menu-left:before{content:'\e8fc'}.icon-menu-right:before{content:'\e8fd'}.icon-menu-up:before{content:'\e8fe'}.icon-menu:before{content:'\e8ff'}.icon-message-alert:before{content:'\e900'}.icon-message-draw:before{content:'\e901'}.icon-message-image:before{content:'\e902'}.icon-message-processing:before{content:'\e903'}.icon-message-reply:before{content:'\e904'}.icon-message-text-outline:before{content:'\e905'}.icon-message-text:before{content:'\e906'}.icon-message-video:before{content:'\e907'}.icon-message:before{content:'\e908'}.icon-microphone-dots:before{content:'\e909'}.icon-microphone-off:before{content:'\e90a'}.icon-microphone-outline:before{content:'\e90b'}.icon-microphone-settings:before{content:'\e90c'}.icon-microphone-variant-off:before{content:'\e90d'}.icon-microphone-variant:before{content:'\e90e'}.icon-microphone:before{content:'\e90f'}.icon-minus-box:before{content:'\e910'}.icon-minus-circle-outline:before{content:'\e911'}.icon-minus-circle:before{content:'\e912'}.icon-minus-network:before{content:'\e913'}.icon-minus:before{content:'\e914'}.icon-monitor-multiple:before{content:'\e915'}.icon-monitor:before{content:'\e916'}.icon-more:before{content:'\e917'}.icon-mouse-off:before{content:'\e918'}.icon-mouse-variant-off:before{content:'\e919'}.icon-mouse-variant:before{content:'\e91a'}.icon-mouse:before{content:'\e91b'}.icon-movie:before{content:'\e91c'}.icon-multiplication-box:before{content:'\e91d'}.icon-multiplication:before{content:'\e91e'}.icon-music-box-outline:before{content:'\e91f'}.icon-music-box:before{content:'\e920'}.icon-music-circle:before{content:'\e921'}.icon-music-note-eighth:before{content:'\e922'}.icon-music-note-half:before{content:'\e923'}.icon-music-note-off:before{content:'\e924'}.icon-music-note-quarter:before{content:'\e925'}.icon-music-note-sixteenth:before{content:'\e926'}.icon-music-note-whole:before{content:'\e927'}.icon-music-note:before{content:'\e928'}.icon-nature-people:before{content:'\e929'}.icon-nature:before{content:'\e92a'}.icon-navigation:before{content:'\e92b'}.icon-needle:before{content:'\e92c'}.icon-nest-protect:before{content:'\e92d'}.icon-nest-thermostat:before{content:'\e92e'}.icon-newspaper:before{content:'\e92f'}.icon-nfc-tap:before{content:'\e930'}.icon-nfc-variant:before{content:'\e931'}.icon-nfc:before{content:'\e932'}.icon-no:before{content:'\e933'}.icon-not-equal:before{content:'\e934'}.icon-note-outline:before{content:'\e935'}.icon-note-text:before{content:'\e936'}.icon-note:before{content:'\e937'}.icon-numeric-0-box-multiple-outline:before{content:'\e938'}.icon-numeric-0-box-outline:before{content:'\e939'}.icon-numeric-0-box:before{content:'\e93a'}.icon-numeric-1-box-multiple-outline:before{content:'\e93b'}.icon-numeric-1-box-outline:before{content:'\e93c'}.icon-numeric-1-box:before{content:'\e93d'}.icon-numeric-2-box-multiple-outline:before{content:'\e93e'}.icon-numeric-2-box-outline:before{content:'\e93f'}.icon-numeric-2-box:before{content:'\e940'}.icon-numeric-3-box-multiple-outline:before{content:'\e941'}.icon-numeric-3-box-outline:before{content:'\e942'}.icon-numeric-3-box:before{content:'\e943'}.icon-numeric-4-box-multiple-outline:before{content:'\e944'}.icon-numeric-4-box-outline:before{content:'\e945'}.icon-numeric-4-box:before{content:'\e946'}.icon-numeric-5-box-multiple-outline:before{content:'\e947'}.icon-numeric-5-box-outline:before{content:'\e948'}.icon-numeric-5-box:before{content:'\e949'}.icon-numeric-6-box-multiple-outline:before{content:'\e94a'}.icon-numeric-6-box-outline:before{content:'\e94b'}.icon-numeric-6-box:before{content:'\e94c'}.icon-numeric-7-box-multiple-outline:before{content:'\e94d'}.icon-numeric-7-box-outline:before{content:'\e94e'}.icon-numeric-7-box:before{content:'\e94f'}.icon-numeric-8-box-multiple-outline:before{content:'\e950'}.icon-numeric-8-box-outline:before{content:'\e951'}.icon-numeric-8-box:before{content:'\e952'}.icon-numeric-9-box-multiple-outline:before{content:'\e953'}.icon-numeric-9-box-outline:before{content:'\e954'}.icon-numeric-9-box:before{content:'\e955'}.icon-numeric-9-plus-box-multiple-outline:before{content:'\e956'}.icon-numeric-9-plus-box-outline:before{content:'\e957'}.icon-numeric-9-plus-box:before{content:'\e958'}.icon-numeric:before{content:'\e959'}.icon-nutriton:before{content:'\e95a'}.icon-odnoklassniki:before{content:'\e95b'}.icon-office:before{content:'\e95c'}.icon-oil:before{content:'\e95d'}.icon-omega:before{content:'\e95e'}.icon-onedrive:before{content:'\e95f'}.icon-open-in-app:before{content:'\e960'}.icon-open-in-new:before{content:'\e961'}.icon-ornament-variant:before{content:'\e962'}.icon-ornament:before{content:'\e963'}.icon-outbox:before{content:'\e964'}.icon-outdent:before{content:'\e965'}.icon-owl:before{content:'\e966'}.icon-package-down:before{content:'\e967'}.icon-package-up:before{content:'\e968'}.icon-package-variant-closed:before{content:'\e969'}.icon-package-variant:before{content:'\e96a'}.icon-package:before{content:'\e96b'}.icon-palette-advanced:before{content:'\e96c'}.icon-palette:before{content:'\e96d'}.icon-panda:before{content:'\e96e'}.icon-pandora:before{content:'\e96f'}.icon-panorama-fisheye:before{content:'\e970'}.icon-panorama-horizontal:before{content:'\e971'}.icon-panorama-vertical:before{content:'\e972'}.icon-panorama-wide-angle:before{content:'\e973'}.icon-panorama:before{content:'\e974'}.icon-paper-cut-vertical:before{content:'\e975'}.icon-paperclip:before{content:'\e976'}.icon-parking:before{content:'\e977'}.icon-pause-circle-outline:before{content:'\e978'}.icon-pause-circle:before{content:'\e979'}.icon-pause-octagon-outline:before{content:'\e97a'}.icon-pause-octagon:before{content:'\e97b'}.icon-pause:before{content:'\e97c'}.icon-paw:before{content:'\e97d'}.icon-pen:before{content:'\e97e'}.icon-pencil-box-outline:before{content:'\e97f'}.icon-pencil-box:before{content:'\e980'}.icon-pencil:before{content:'\e981'}.icon-people:before{content:'\e982'}.icon-percent:before{content:'\e983'}.icon-person-box:before{content:'\e984'}.icon-person-minus:before{content:'\e985'}.icon-person-plus:before{content:'\e986'}.icon-pharmacy:before{content:'\e987'}.icon-phone-bluetooth:before{content:'\e988'}.icon-phone-dots:before{content:'\e989'}.icon-phone-forward:before{content:'\e98a'}.icon-phone-hangup:before{content:'\e98b'}.icon-phone-in-talk:before{content:'\e98c'}.icon-phone-incoming:before{content:'\e98d'}.icon-phone-locked:before{content:'\e98e'}.icon-phone-log:before{content:'\e98f'}.icon-phone-missed:before{content:'\e990'}.icon-phone-outgoing:before{content:'\e991'}.icon-phone-paused:before{content:'\e992'}.icon-phone:before{content:'\e993'}.icon-picture:before{content:'\e994'}.icon-pig:before{content:'\e995'}.icon-pill:before{content:'\e996'}.icon-pin-off:before{content:'\e997'}.icon-pin:before{content:'\e998'}.icon-pine-tree-box:before{content:'\e999'}.icon-pine-tree:before{content:'\e99a'}.icon-pinterest-box:before{content:'\e99b'}.icon-pinterest:before{content:'\e99c'}.icon-pizza:before{content:'\e99d'}.icon-plane:before{content:'\e99e'}.icon-play-box-outline:before{content:'\e99f'}.icon-play-circle-outline:before{content:'\e9a0'}.icon-play-circle:before{content:'\e9a1'}.icon-play:before{content:'\e9a2'}.icon-playlist-minus:before{content:'\e9a3'}.icon-playlist-plus:before{content:'\e9a4'}.icon-playstation:before{content:'\e9a5'}.icon-plus-box:before{content:'\e9a6'}.icon-plus-circle-outline:before{content:'\e9a7'}.icon-plus-circle:before{content:'\e9a8'}.icon-plus-network:before{content:'\e9a9'}.icon-plus-one:before{content:'\e9aa'}.icon-plus:before{content:'\e9ab'}.icon-pocket:before{content:'\e9ac'}.icon-poll-box:before{content:'\e9ad'}.icon-poll:before{content:'\e9ae'}.icon-polymer:before{content:'\e9af'}.icon-popcorn:before{content:'\e9b0'}.icon-pound-box:before{content:'\e9b1'}.icon-pound:before{content:'\e9b2'}.icon-power-settings:before{content:'\e9b3'}.icon-power-socket:before{content:'\e9b4'}.icon-power:before{content:'\e9b5'}.icon-presentation-play:before{content:'\e9b6'}.icon-presentation:before{content:'\e9b7'}.icon-printer-3d:before{content:'\e9b8'}.icon-printer:before{content:'\e9b9'}.icon-pulse:before{content:'\e9ba'}.icon-puzzle:before{content:'\e9bb'}.icon-qrcode:before{content:'\e9bc'}.icon-quadcopter:before{content:'\e9bd'}.icon-quality-high:before{content:'\e9be'}.icon-question-mark-circle:before{content:'\e9bf'}.icon-quick-reply:before{content:'\e9c0'}.icon-quicktime:before{content:'\e9c1'}.icon-rabbit:before{content:'\e9c2'}.icon-radiator:before{content:'\e9c3'}.icon-radio-tower:before{content:'\e9c4'}.icon-radio:before{content:'\e9c5'}.icon-radioactive:before{content:'\e9c6'}.icon-radiobox-blank:before{content:'\e9c7'}.icon-radiobox-marked:before{content:'\e9c8'}.icon-raspberrypi:before{content:'\e9c9'}.icon-rdio:before{content:'\e9ca'}.icon-read:before{content:'\e9cb'}.icon-readability:before{content:'\e9cc'}.icon-receipt:before{content:'\e9cd'}.icon-recycle:before{content:'\e9ce'}.icon-reddit:before{content:'\e9cf'}.icon-redo-variant:before{content:'\e9d0'}.icon-redo:before{content:'\e9d1'}.icon-refresh:before{content:'\e9d2'}.icon-relative-scale:before{content:'\e9d3'}.icon-reload:before{content:'\e9d4'}.icon-remote:before{content:'\e9d5'}.icon-rename-box:before{content:'\e9d6'}.icon-repeat-off:before{content:'\e9d7'}.icon-repeat-once:before{content:'\e9d8'}.icon-repeat:before{content:'\e9d9'}.icon-replay:before{content:'\e9da'}.icon-reply-all:before{content:'\e9db'}.icon-reply:before{content:'\e9dc'}.icon-reproduction:before{content:'\e9dd'}.icon-resize-bottom-right:before{content:'\e9de'}.icon-responsive:before{content:'\e9df'}.icon-restore:before{content:'\e9e0'}.icon-rewind:before{content:'\e9e1'}.icon-ribbon:before{content:'\e9e2'}.icon-road:before{content:'\e9e3'}.icon-rocket:before{content:'\e9e4'}.icon-rotate-3d:before{content:'\e9e5'}.icon-rotate-left-variant:before{content:'\e9e6'}.icon-rotate-left:before{content:'\e9e7'}.icon-rotate-right-variant:before{content:'\e9e8'}.icon-rotate-right:before{content:'\e9e9'}.icon-routes:before{content:'\e9ea'}.icon-rss-box:before{content:'\e9eb'}.icon-ruler:before{content:'\e9ec'}.icon-run:before{content:'\e9ed'}.icon-sale:before{content:'\e9ee'}.icon-satellite-variant:before{content:'\e9ef'}.icon-satellite:before{content:'\e9f0'}.icon-scale-bathroom:before{content:'\e9f1'}.icon-scale:before{content:'\e9f2'}.icon-school:before{content:'\e9f3'}.icon-screen-rotation-lock:before{content:'\e9f4'}.icon-screen-rotation:before{content:'\e9f5'}.icon-script:before{content:'\e9f6'}.icon-security-network:before{content:'\e9f7'}.icon-security:before{content:'\e9f8'}.icon-select-all:before{content:'\e9f9'}.icon-select-inverse:before{content:'\e9fa'}.icon-select-off:before{content:'\e9fb'}.icon-select:before{content:'\e9fc'}.icon-send:before{content:'\e9fd'}.icon-server-minus:before{content:'\e9fe'}.icon-server-network-off:before{content:'\e9ff'}.icon-server-network:before{content:'\ea00'}.icon-server-off:before{content:'\ea01'}.icon-server-plus:before{content:'\ea02'}.icon-server-remove:before{content:'\ea03'}.icon-server-security:before{content:'\ea04'}.icon-server:before{content:'\ea05'}.icon-shape-plus:before{content:'\ea06'}.icon-share-variant:before{content:'\ea07'}.icon-share:before{content:'\ea08'}.icon-shield-outline:before{content:'\ea09'}.icon-shield:before{content:'\ea0a'}.icon-shopping-music:before{content:'\ea0b'}.icon-shopping:before{content:'\ea0c'}.icon-shuffle:before{content:'\ea0d'}.icon-sigma:before{content:'\ea0e'}.icon-sign-caution:before{content:'\ea0f'}.icon-signal:before{content:'\ea10'}.icon-silverware-fork:before{content:'\ea11'}.icon-silverware-spoon:before{content:'\ea12'}.icon-silverware-variant:before{content:'\ea13'}.icon-silverware:before{content:'\ea14'}.icon-sim-alert:before{content:'\ea15'}.icon-sim:before{content:'\ea16'}.icon-sitemap:before{content:'\ea17'}.icon-skip-next:before{content:'\ea18'}.icon-skip-previous:before{content:'\ea19'}.icon-skype-business:before{content:'\ea1a'}.icon-skype:before{content:'\ea1b'}.icon-sleep-off:before{content:'\ea1c'}.icon-sleep:before{content:'\ea1d'}.icon-smoking-off:before{content:'\ea1e'}.icon-smoking:before{content:'\ea1f'}.icon-snapchat:before{content:'\ea20'}.icon-snowman:before{content:'\ea21'}.icon-sofa:before{content:'\ea22'}.icon-sort-alphabetical:before{content:'\ea23'}.icon-sort-ascending:before{content:'\ea24'}.icon-sort-descending:before{content:'\ea25'}.icon-sort-numeric:before{content:'\ea26'}.icon-sort-variant:before{content:'\ea27'}.icon-sort:before{content:'\ea28'}.icon-soundcloud:before{content:'\ea29'}.icon-source-fork:before{content:'\ea2a'}.icon-source-pull:before{content:'\ea2b'}.icon-speaker-off:before{content:'\ea2c'}.icon-speaker:before{content:'\ea2d'}.icon-speedometer:before{content:'\ea2e'}.icon-spellcheck:before{content:'\ea2f'}.icon-spotify:before{content:'\ea30'}.icon-spotlight-beam:before{content:'\ea31'}.icon-spotlight:before{content:'\ea32'}.icon-spreadsheet:before{content:'\ea33'}.icon-square-inc-cash:before{content:'\ea34'}.icon-square-inc:before{content:'\ea35'}.icon-stackoverflow:before{content:'\ea36'}.icon-star-circle:before{content:'\ea37'}.icon-star-half:before{content:'\ea38'}.icon-star-of-david:before{content:'\ea39'}.icon-star-outline:before{content:'\ea3a'}.icon-star:before{content:'\ea3b'}.icon-steam:before{content:'\ea3c'}.icon-stethoscope:before{content:'\ea3d'}.icon-stocking:before{content:'\ea3e'}.icon-stop:before{content:'\ea3f'}.icon-store-24-hour:before{content:'\ea40'}.icon-store:before{content:'\ea41'}.icon-stove:before{content:'\ea42'}.icon-subway:before{content:'\ea43'}.icon-sunglasses:before{content:'\ea44'}.icon-swap-horizontal:before{content:'\ea45'}.icon-swap-vertical:before{content:'\ea46'}.icon-swim:before{content:'\ea47'}.icon-sword:before{content:'\ea48'}.icon-sync-alert:before{content:'\ea49'}.icon-sync-off:before{content:'\ea4a'}.icon-sync:before{content:'\ea4b'}.icon-tab-unselected:before{content:'\ea4c'}.icon-tab:before{content:'\ea4d'}.icon-table-column-plus-after:before{content:'\ea4e'}.icon-table-column-plus-before:before{content:'\ea4f'}.icon-table-column-remove:before{content:'\ea50'}.icon-table-column-width:before{content:'\ea51'}.icon-table-edit:before{content:'\ea52'}.icon-table-large:before{content:'\ea53'}.icon-table-row-height:before{content:'\ea54'}.icon-table-row-plus-after:before{content:'\ea55'}.icon-table-row-plus-before:before{content:'\ea56'}.icon-table-row-remove:before{content:'\ea57'}.icon-table:before{content:'\ea58'}.icon-tablet-android:before{content:'\ea59'}.icon-tablet-ipad:before{content:'\ea5a'}.icon-tablet:before{content:'\ea5b'}.icon-tag-faces:before{content:'\ea5c'}.icon-tag-multiple:before{content:'\ea5d'}.icon-tag-outline:before{content:'\ea5e'}.icon-tag-text-outline:before{content:'\ea5f'}.icon-tag:before{content:'\ea60'}.icon-taxi:before{content:'\ea61'}.icon-teamviewer:before{content:'\ea62'}.icon-telegram:before{content:'\ea63'}.icon-television-guide:before{content:'\ea64'}.icon-television:before{content:'\ea65'}.icon-temperature-celsius:before{content:'\ea66'}.icon-temperature-fahrenheit:before{content:'\ea67'}.icon-temperature-kelvin:before{content:'\ea68'}.icon-tennis:before{content:'\ea69'}.icon-tent:before{content:'\ea6a'}.icon-terrain:before{content:'\ea6b'}.icon-text-to-speech-off:before{content:'\ea6c'}.icon-text-to-speech:before{content:'\ea6d'}.icon-texture:before{content:'\ea6e'}.icon-theater:before{content:'\ea6f'}.icon-theme-light-dark:before{content:'\ea70'}.icon-thermometer-lines:before{content:'\ea71'}.icon-thermometer:before{content:'\ea72'}.icon-thumb-down-outline:before{content:'\ea73'}.icon-thumb-down:before{content:'\ea74'}.icon-thumb-up-outline:before{content:'\ea75'}.icon-thumb-up:before{content:'\ea76'}.icon-thumbs-up-down:before{content:'\ea77'}.icon-ticket-account:before{content:'\ea78'}.icon-ticket:before{content:'\ea79'}.icon-tie:before{content:'\ea7a'}.icon-tile-four:before{content:'\ea7b'}.icon-timelapse:before{content:'\ea7c'}.icon-timer-3:before{content:'\ea7d'}.icon-timer-10:before{content:'\ea7e'}.icon-timer-off:before{content:'\ea7f'}.icon-timer-sand:before{content:'\ea80'}.icon-timer:before{content:'\ea81'}.icon-timetable:before{content:'\ea82'}.icon-toggle-switch-off:before{content:'\ea83'}.icon-toggle-switch-on:before{content:'\ea84'}.icon-tooltip-edit:before{content:'\ea85'}.icon-tooltip-image:before{content:'\ea86'}.icon-tooltip-outline-plus:before{content:'\ea87'}.icon-tooltip-outline:before{content:'\ea88'}.icon-tooltip-text:before{content:'\ea89'}.icon-tooltip:before{content:'\ea8a'}.icon-tor:before{content:'\ea8b'}.icon-traffic-light:before{content:'\ea8c'}.icon-train:before{content:'\ea8d'}.icon-tram:before{content:'\ea8e'}.icon-transcribe-close:before{content:'\ea8f'}.icon-transcribe:before{content:'\ea90'}.icon-transfer:before{content:'\ea91'}.icon-trash:before{content:'\ea92'}.icon-tree:before{content:'\ea93'}.icon-trello:before{content:'\ea94'}.icon-trending-down:before{content:'\ea95'}.icon-trending-neutral:before{content:'\ea96'}.icon-trending-up:before{content:'\ea97'}.icon-truck:before{content:'\ea98'}.icon-tshirt-crew:before{content:'\ea99'}.icon-tshirt-v:before{content:'\ea9a'}.icon-tumblr-reblog:before{content:'\ea9b'}.icon-tumblr:before{content:'\ea9c'}.icon-twitch:before{content:'\ea9d'}.icon-twitter-box:before{content:'\ea9e'}.icon-twitter-circle:before{content:'\ea9f'}.icon-twitter-retweet:before{content:'\eaa0'}.icon-twitter:before{content:'\eaa1'}.icon-ubuntu:before{content:'\eaa2'}.icon-umbrella-outline:before{content:'\eaa3'}.icon-umbrella:before{content:'\eaa4'}.icon-undo-variant:before{content:'\eaa5'}.icon-undo:before{content:'\eaa6'}.icon-unfold-less:before{content:'\eaa7'}.icon-unfold-more:before{content:'\eaa8'}.icon-ungroup:before{content:'\eaa9'}.icon-untappd:before{content:'\eaaa'}.icon-upload:before{content:'\eaab'}.icon-usb:before{content:'\eaac'}.icon-vector-curve:before{content:'\eaad'}.icon-vector-point:before{content:'\eaae'}.icon-vector-square:before{content:'\eaaf'}.icon-verified:before{content:'\eab0'}.icon-vibration:before{content:'\eab1'}.icon-video-off:before{content:'\eab2'}.icon-video-switch:before{content:'\eab3'}.icon-video:before{content:'\eab4'}.icon-view-agenda:before{content:'\eab5'}.icon-view-array:before{content:'\eab6'}.icon-view-carousel:before{content:'\eab7'}.icon-view-column:before{content:'\eab8'}.icon-view-dashboard:before{content:'\eab9'}.icon-view-day:before{content:'\eaba'}.icon-view-headline:before{content:'\eabb'}.icon-view-list:before{content:'\eabc'}.icon-view-module:before{content:'\eabd'}.icon-view-quilt:before{content:'\eabe'}.icon-view-stream:before{content:'\eabf'}.icon-view-week:before{content:'\eac0'}.icon-vimeo:before{content:'\eac1'}.icon-vine:before{content:'\eac2'}.icon-vk-box:before{content:'\eac3'}.icon-vk-circle:before{content:'\eac4'}.icon-vk:before{content:'\eac5'}.icon-voicemail:before{content:'\eac6'}.icon-volume-high:before{content:'\eac7'}.icon-volume-low:before{content:'\eac8'}.icon-volume-medium:before{content:'\eac9'}.icon-volume-off:before{content:'\eaca'}.icon-volume:before{content:'\eacb'}.icon-vpn:before{content:'\eacc'}.icon-walk:before{content:'\eacd'}.icon-wallet-giftcard:before{content:'\eace'}.icon-wallet-membership:before{content:'\eacf'}.icon-wallet-travel:before{content:'\ead0'}.icon-wallet:before{content:'\ead1'}.icon-washing-machine:before{content:'\ead2'}.icon-watch-export:before{content:'\ead3'}.icon-watch-import:before{content:'\ead4'}.icon-watch:before{content:'\ead5'}.icon-water-off:before{content:'\ead6'}.icon-water-pump:before{content:'\ead7'}.icon-water:before{content:'\ead8'}.icon-weather-cloudy:before{content:'\ead9'}.icon-weather-fog:before{content:'\eada'}.icon-weather-hail:before{content:'\eadb'}.icon-weather-lightning:before{content:'\eadc'}.icon-weather-night:before{content:'\eadd'}.icon-weather-partlycloudy:before{content:'\eade'}.icon-weather-pouring:before{content:'\eadf'}.icon-weather-rainy:before{content:'\eae0'}.icon-weather-snowy:before{content:'\eae1'}.icon-weather-sunny:before{content:'\eae2'}.icon-weather-sunset-down:before{content:'\eae3'}.icon-weather-sunset-up:before{content:'\eae4'}.icon-weather-sunset:before{content:'\eae5'}.icon-weather-windy-variant:before{content:'\eae6'}.icon-weather-windy:before{content:'\eae7'}.icon-web:before{content:'\eae8'}.icon-webcam:before{content:'\eae9'}.icon-weight-kilogram:before{content:'\eaea'}.icon-weight:before{content:'\eaeb'}.icon-whatsapp:before{content:'\eaec'}.icon-wheelchair-accessibility:before{content:'\eaed'}.icon-white-balance-auto:before{content:'\eaee'}.icon-white-balance-incandescent:before{content:'\eaef'}.icon-white-balance-irradescent:before{content:'\eaf0'}.icon-white-balance-sunny:before{content:'\eaf1'}.icon-wifi:before{content:'\eaf2'}.icon-wii:before{content:'\eaf3'}.icon-wikipedia:before{content:'\eaf4'}.icon-window-close:before{content:'\eaf5'}.icon-window-closed:before{content:'\eaf6'}.icon-window-maximize:before{content:'\eaf7'}.icon-window-minimize:before{content:'\eaf8'}.icon-window-open:before{content:'\eaf9'}.icon-window-restore:before{content:'\eafa'}.icon-windows:before{content:'\eafb'}.icon-wordpress:before{content:'\eafc'}.icon-worker:before{content:'\eafd'}.icon-wunderlist:before{content:'\eafe'}.icon-xbox-controller-off:before{content:'\eaff'}.icon-xbox-controller:before{content:'\eb00'}.icon-xbox:before{content:'\eb01'}.icon-xda:before{content:'\eb02'}.icon-xml:before{content:'\eb03'}.icon-yeast:before{content:'\eb04'}.icon-yelp:before{content:'\eb05'}.icon-youtube-play:before{content:'\eb06'}.icon-youtube:before{content:'\eb07'}.icon-zip-box:before{content:'\eb08'}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:'';clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.advanced-search-container{border-bottom:1px rgba(0,0,0,.12) solid}.advanced-search-conditions{border-bottom:1px rgba(0,0,0,.12) solid;padding:4px 0}.advanced-search-conditions .errors{font-size:12px;color:#dd2c00;margin-top:10px}.advanced-search-conditions .advanced-search-chips md-chips-wrap{box-shadow:none}.advanced-search-conditions .advanced-search-chips md-chip{position:relative}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-content md-chip-template span p.filter-text{display:inline-block;margin:0}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container{position:absolute;right:4px;top:4px;margin-right:0;height:24px}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter{position:relative;height:24px;width:24px;line-height:30px;text-align:center;border-radius:50%;border:none;box-shadow:none;padding:0;margin:0;transition:background .15s linear;display:block}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0);color:#616161}.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:focus,.advanced-search-conditions .advanced-search-chips md-chip .md-chip-remove-container button.remove-filter md-icon:hover{color:rgba(255,0,0,.8)}.advanced-search-conditions .advanced-search-chips md-chips-wrap.md-removable md-chip md-chip-template{padding-right:5px}.advanced-search-bar{padding:10px 0}.advanced-search-bar md-input-container.no-errors{font-size:12px;transition:0s none;-webkit-transition:0s none;animation:0s none;-webkit-animation:0s none}.advanced-search-bar md-input-container.no-errors input{font-family:Arial Unicode MS,Arial,Helvetica}.advanced-search-bar md-input-container.no-errors .md-errors-spacer{min-height:0}md-option div div.operators-list{display:table}md-option div div.operators-list span{display:table-cell}md-option div div.operators-list span.operator-symbol{display:table-cell;font-size:14px;width:30px}.advanced-search-bar mdp-date-picker button{margin:0!important}.advanced-search-bar mdp-date-picker md-input-container{flex:1;margin:0}.advanced-search-bar mdp-date-picker md-input-container label{font-size:12px}.advanced-search-bar mdp-date-picker md-input-container .md-errors-spacer{min-height:0}.advanced-search-bar div md-date-range{font-size:12px;margin-left:10px}.advanced-search-bar div.autocomplete-input md-icon{margin:8px 8px 8px 0}.advanced-search-bar div.autocomplete-input md-autocomplete{font-size:12px!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap{height:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container{margin:0}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container input[type=search]{padding:0!important}.advanced-search-bar div.autocomplete-input md-autocomplete md-autocomplete-wrap md-input-container div.md-errors-spacer{min-height:0}md-toolbar.advanced-search-dialog-header{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}.md-autocomplete-suggestions-container li .highlight,.md-autocomplete-suggestions-container.md-default-theme li .highlight{color:#ca1d1d;font-weight:700}.chip-disabled{opacity:.4}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-list-item .md-list-item-text p.ms-dual-multiselect-line-xs{font-size:10px!important;padding-top:5px}md-list-item md-icon.hidden{visibility:hidden}md-icon.add-disabled{cursor:default!important;opacity:.4}md-list-item.read-only-mode{cursor:none!important}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}ms-info-bar{display:block;position:relative;width:100%;height:44px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:28px;font-size:14px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}md-dialog.md-phonebar-dialog{max-width:720px;width:720px}md-dialog.md-phonebar-dialog md-dialog-content{display:block;position:relative;height:500px}md-dialog.md-phonebar-dialog md-toolbar .title{font-size:17px}md-dialog.md-phonebar-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.md-phonebar-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.md-phonebar-dialog md-tabs{position:static}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0}.ms-phonebar .phonebar-container .quantity-indicator{display:inline-block;vertical-align:middle;width:8px;height:8px;border-radius:4px;margin-right:5px;margin-left:5px}.ms-phonebar .phonebar-container .sessions{overflow-x:auto}.ms-phonebar .phonebar-container .session{border-radius:3px;border:1px solid #dcdcdc;margin-left:3px;cursor:pointer}.ms-phonebar .phonebar-container .session-info{padding-left:3px;padding-right:3px;color:grey}.ms-phonebar .phonebar-container .session-button{border:1px solid grey;margin:3px}.ms-phonebar .phonebar-container .button-bar{border:1px solid grey}.ms-phonebar .phonebar-container .num-pad{position:fixed;border-radius:3px;border:1px solid #9e9e9e;top:80px;left:80px}.ms-phonebar .phonebar-container .num-pad-logo{height:40px;width:42px}.ms-phonebar .phonebar-container p{margin:0;padding:0 0 10px 0;line-height:10px;font-size:10px}.ms-phonebar .phonebar-container .span4{width:50px;float:left;margin:8px}.ms-phonebar .phonebar-container .num{border:1px solid #9e9e9e;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;height:50px;background-color:#fff;color:#333;cursor:pointer}.ms-phonebar .phonebar-container .num:hover{background-color:#9e9e9e;color:#fff;transition-property:background-color .2s linear 0s;-moz-transition:background-color .2s linear 0s;-webkit-transition:background-color .2s linear 0s;-o-transition:background-color .2s linear 0s}.ms-phonebar .phonebar-container .txt{font-size:20px;text-align:center;margin-top:3px;font-family:Lato,sans-serif;color:#333}.ms-phonebar .phonebar-container .small{font-size:15px}.ms-phonebar .phonebar-container .angucomplete-dropdown{top:45px;overflow-y:auto;max-height:200px}.ms-phonebar .phonebar-container .highlight{color:red}.ms-phonebar .phonebar-container .input-number{margin-left:5px;padding:8px;border:1px solid #ccc;border-radius:3px;box-sizing:border-box}.ms-phonebar .phonebar-container .phonebar{position:relative}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.quick-filter-container md-select .md-select-value.md-select-placeholder{color:inherit}.quick-filter-container md-select[multiple] md-select-value>:first-child{max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-button-expanded{pointer-events:none}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar input{background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}.ms-search-bar.down{top:64px;border-bottom:1px rgba(0,0,0,.12) solid}.ms-search-bar[disabled] input{pointer-events:none}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-tab-scroll .scroll-arrow{height:inherit;padding:0}.ms-tab-scroll .bar-container{overflow:hidden}.ms-tab-scroll .scroll-container{overflow-x:hidden;overflow-y:hidden;transition:transform .2s ease-in-out}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:'';width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:'';width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#forgot-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#forgot-password #forgot-password-form-wrapper{flex:1 0 auto;padding:32px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#forgot-password #forgot-password-form-wrapper #forgot-password-form .title{font-size:17px;margin:16px 0 32px 0}#forgot-password #forgot-password-form-wrapper #forgot-password-form .logo_login{max-height:200px}#forgot-password #forgot-password-form-wrapper #forgot-password-form form{width:100%;text-align:left}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .submit-button{width:220px;margin:16px auto;display:block}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#forgot-password #forgot-password-form-wrapper #forgot-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#forgot-password #forgot-password-form-wrapper{padding:16px}#forgot-password #forgot-password-form-wrapper #forgot-password-form{padding:24px;width:100%}#forgot-password #forgot-password-form-wrapper #forgot-password-form form .md-button{width:90%}}#login{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form .logo_login{max-height:200px}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}#extractedReports #upload-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}#metrics #upload-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:76px;min-height:76px;max-height:76px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.web-dialog md-dialog-content{display:block;position:relative}md-dialog.web-dialog md-toolbar .title{font-size:17px}md-dialog.web-dialog md-input-container textarea{min-height:150px}md-dialog.web-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.web-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.web-dialog .date-container{padding:16px 0 24px 0}md-dialog.web-dialog .error-list{font-size:13px}md-dialog.web-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.web-dialog .error-list .error .message{font-weight:500}md-dialog.web-dialog .error-list .error .md-button{margin:0}md-dialog.web-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.web-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}#odbcs #upload-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:76px;min-height:76px;max-height:76px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:76px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#squareRecordings #upload-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues #upload-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:76px;min-height:76px;max-height:76px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chat-chatQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}#chatWebsites #upload-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.chatCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.chatCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.chatCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.chatCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatCannedAnswer-dialog .error-list{font-size:13px}md-dialog.chatCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.chatCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.chatCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.offlineMessage-dialog{max-width:720px;width:720px}md-dialog.offlineMessage-dialog md-dialog-content{display:block;position:relative}md-dialog.offlineMessage-dialog md-toolbar .title{font-size:17px}md-dialog.offlineMessage-dialog md-input-container textarea{min-height:150px}md-dialog.offlineMessage-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.offlineMessage-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.offlineMessage-dialog .date-container{padding:16px 0 24px 0}md-dialog.offlineMessage-dialog .error-list{font-size:13px}md-dialog.offlineMessage-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.offlineMessage-dialog .error-list .error .message{font-weight:500}md-dialog.offlineMessage-dialog .error-list .error .md-button{margin:0}md-dialog.offlineMessage-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.offlineMessage-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatProactiveAction-dialog{max-width:720px;width:720px}md-dialog.chatProactiveAction-dialog md-dialog-content{display:block;position:relative}md-dialog.chatProactiveAction-dialog md-toolbar .title{font-size:17px}md-dialog.chatProactiveAction-dialog md-input-container textarea{min-height:150px}md-dialog.chatProactiveAction-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chatProactiveAction-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatProactiveAction-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatProactiveAction-dialog .error-list{font-size:13px}md-dialog.chatProactiveAction-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatProactiveAction-dialog .error-list .error .message{font-weight:500}md-dialog.chatProactiveAction-dialog .error-list .error .md-button{margin:0}md-dialog.chatProactiveAction-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatProactiveAction-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:76px;min-height:76px;max-height:76px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#chat-chatWebsite md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#chat-chatWebsite md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#chat-chatWebsite md-table-container.font-size-12 td.md-cell{font-size:12px!important}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}#companies #upload-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:76px;min-height:76px;max-height:76px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#contactmanager-company md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-company md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-company md-table-container.font-size-12 td.md-cell{font-size:12px!important}#contacts{position:relative}#contacts>.header{height:76px;min-height:76px;max-height:76px}#contacts>.header .logo .logo-icon{margin:0 16px 0 0}#contacts>.header .logo .logo-text{font-size:24px}#contacts>.header md-icon{color:#fff}#contacts>.header .search-input-wrapper{position:relative}#contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contacts>.header.selected-bar .close-button-wrapper{width:244px}#contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:76px;min-height:76px;max-height:76px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:10px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.import-dialog{max-width:720px;width:720px}md-dialog.import-dialog md-dialog-content{display:block;position:relative}md-dialog.import-dialog md-toolbar .title{font-size:17px}md-dialog.import-dialog md-input-container textarea{min-height:150px}md-dialog.import-dialog .date-container{padding:16px 0 24px 0}md-dialog.import-dialog .error-list{font-size:13px}md-dialog.import-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .error .message{font-weight:500}md-dialog.import-dialog .error-list .error .md-button{margin:0}md-dialog.import-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.import-dialog .error-list .info{background-color:rgba(24,160,135,.08);border:1px solid rgba(24,160,135,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.import-dialog .error-list .info .message{font-weight:500}md-dialog.import-dialog .error-list .info .md-button{margin:0}md-dialog.import-dialog .error-list .info:last-child{margin-bottom:30px}md-dialog.import-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.import-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.import-dialog .contact-image .media{max-height:100%}md-dialog.import-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}#globalCustomFields #upload-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:76px;min-height:76px;max-height:76px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}#contactmanager-list md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#contactmanager-list md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#contactmanager-list md-table-container.font-size-12 td.md-cell{font-size:12px!important}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}#lists #upload-list-button{position:fixed;bottom:8px;right:8px;padding:0}#dashboard-custom .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general{position:fixed;width:100%;height:100%}#agent-general .agent-content{position:fixed;top:36px;bottom:0;left:0;right:0}#agent-general .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#agent-general .table-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#agent-general .table-header .md-toolbar-tools div md-select .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder{color:#fff}#agent-general .table-header .md-toolbar-tools div md-select[disabled] .md-select-value.md-select-placeholder .md-select-icon{display:none}#agent-general .table-header ms-quick-filter .quick-filter-date-clear-button{color:#fff}#agent-general .tooltip-preview{position:relative;display:inline-block;text-decoration:underline}#agent-general .tooltip-preview .tooltip-preview-text{visibility:hidden;width:500px;position:absolute;white-space:pre-line;left:100%;z-index:9999}#agent-general .tooltip-preview:hover .tooltip-preview-text{visibility:visible}#agent-general .reload-list md-icon{color:#fff}#agent-general .advanced-search md-icon{color:#fff}#agent-general .create-new md-icon{color:#fff}#agent-general div.draft-manager-bar{background-color:#f5f5f5;position:sticky;height:34px;bottom:0;border-top:1px solid #e0e0e0}#agent-general div.draft-manager-bar ms-tab-scroll{overflow:hidden}#agent-general div.draft-manager-bar ms-tab-scroll div.draft-manager-tab{height:34px;border-right:1px solid #e0e0e0}#agent-general td.width-5,#agent-general th.width-5{width:5px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-10,#agent-general th.width-10{width:10px!important;min-width:auto!important;max-width:none!important}#agent-general td.width-15,#agent-general th.width-15{width:15px!important;min-width:auto!important;max-width:none!important}#agent-general td.no-padding,#agent-general th.no-padding{padding:0!important}#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:300px!important}#agent-general span.no-margin-bottom{margin-bottom:0!important}#agent-general span.no-margin-top{margin-top:0!important}#agent-general md-table-container.interactions-list thead tr th:not(.no-padding):not(.id-header){padding:0 20px 0 0!important}#agent-general md-table-container.interactions-list tbody tr td:not(.no-padding):not(.actions-padding):not(.id){padding:0 20px 0 0!important}#agent-general td.actions-padding{padding:0 8px 0 0!important}#agent-general md-toolbar.md-table-toolbar[disabled]{pointer-events:none}#agent-general md-toolbar.md-table-toolbar[disabled] ms-search-bar{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] ms-quick-filter{opacity:.7}#agent-general md-toolbar.md-table-toolbar[disabled] button.advanced-search,#agent-general md-toolbar.md-table-toolbar[disabled] button.interaction-reload{opacity:.7}#agent-general md-card.call-info-card{min-width:200px}#agent-general md-card.call-info-card div.reload-container{position:relative}#agent-general md-card.call-info-card button.reload-button{position:absolute;right:-16px}@media screen and (max-width:1280px){#agent-general span.contact-text{width:100px!important}#agent-general span.subject-text{width:350px!important}}@media screen and (max-width:1920px){#agent-general span.contact-text{width:150px!important}#agent-general span.subject-text{width:500px!important}}#agent-general-dialog{position:fixed;width:100%;height:100%}#agent-general-dialog .agent-content{position:fixed;top:0;bottom:0;left:0;right:0}body .md-select-menu-container{z-index:110}.md-toolbar-tools{font-size:12px}div.toolbar-quick-filter[disabled]{pointer-events:none;opacity:.7}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.contact-trigger-dialog{max-width:720px;width:720px}md-dialog.contact-trigger-dialog md-dialog-content{display:block;position:relative;max-height:400px;height:400px}md-dialog.contact-trigger-dialog md-toolbar{background-image:url(/assets/images/backgrounds/header-bg.png);background-position:top}md-dialog.contact-trigger-dialog md-toolbar .title{font-size:17px}md-dialog.contact-trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.contact-trigger-dialog md-dialog-actions button.select-button{position:absolute;right:0;margin-right:16px}md-dialog md-grid-list.one-row-layout{height:150px;max-height:150px}md-dialog md-grid-list.two-rows-layout{height:300px;max-height:300px}md-dialog md-card.contact-info:hover{background-color:#e9eef1ad}@media screen and (max-width:1280px){md-dialog.contact-trigger-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.contact-trigger-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.details-dialog{max-width:500px;width:500px}md-dialog.details-dialog md-dialog-content{display:block;position:relative}md-dialog.details-dialog md-toolbar .title{font-size:17px}md-dialog.details-dialog md-input-container textarea{min-height:150px}md-dialog.details-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.details-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.details-dialog .date-container{padding:16px 0 24px 0}md-dialog.details-dialog .error-list{font-size:13px}md-dialog.details-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.details-dialog .error-list .error .message{font-weight:500}md-dialog.details-dialog .error-list .error .md-button{margin:0}md-dialog.details-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.details-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#interaction-app .tags{font-size:12px}#interaction-app .tags .tag{border-radius:2px;padding:3px 8px;background-color:rgba(0,0,0,.08)}#interaction-app .tags .tag .tag-color{width:8px;height:8px;margin-right:8px;border-radius:50%}#interaction-app .content-card{position:relative;height:100%}#interaction-app .content-card .interaction{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .interaction .avatar-small{width:30px;min-width:30px;height:30px;line-height:30px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}#interaction-app .content-card .interaction .interaction-agents{min-height:40px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-agents .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-agents .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-agents .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .interaction-toolbar{min-height:64px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .interaction .interaction-toolbar md-icon{color:rgba(0,0,0,.87)}#interaction-app .content-card .interaction .interaction-toolbar .responsive-interactions-button{padding:0}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact{cursor:pointer}#interaction-app .content-card .interaction .interaction-toolbar .interaction-contact .avatar{margin-right:16px}#interaction-app .content-card .interaction .cannedarea{margin-right:7px;font-size:14px;border:1px solid #ccc;border-radius:3px;align-self:stretch}#interaction-app .content-card .interaction .cannedarea md-autocomplete-wrap{padding:0 1em}#interaction-app .content-card .interaction .emojionearea{margin-right:7px}#interaction-app .content-card .interaction #interaction-content{background:url(/assets/images/patterns/circles-light.png) repeat}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content{padding:24px 0}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .subject .subject-text{margin-right:4px;text-transform:lowercase}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info{padding-bottom:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .avatar{margin-right:16px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .name{margin-right:8px;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .toggle-details{padding-top:16px;cursor:pointer;font-weight:500}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details{padding-top:8px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .title{font-weight:500;margin-right:6px}#interaction-app .content-card .interaction #interaction-content .message-row .mail-content .info .details .detail{color:rgba(0,0,0,.54)}#interaction-app .content-card .interaction #interaction-content .message-row .bubble{position:relative;padding:6px 7px 8px 9px;background-color:#fff;border:1px solid #dcdfe1;border-radius:6px;word-break:break-word}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after,#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#fff transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .time{font-size:11px;margin-top:0;text-align:right}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message{white-space:pre-wrap}#interaction-app .content-card .interaction #interaction-content .message-row .bubble .message span{word-break:break-all}#interaction-app .content-card .interaction #interaction-content .message-row.in{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.in .avatar{margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble{margin-left:auto;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:after{right:-9px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.in-right-aligned .bubble:before{right:-11px;left:auto;-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}#interaction-app .content-card .interaction #interaction-content .message-row.out{padding:5px;align-items:flex-end}#interaction-app .content-card .interaction #interaction-content .message-row.out .avatar{order:2;margin:0 0 0 16px}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble{margin-left:auto;background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned{padding:5px}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .avatar{order:1;margin:0 16px 0 0}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:2}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#interaction-app .content-card .interaction #interaction-content .message-row.out-left-aligned .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#interaction-app .content-card .interaction .interaction-footer{min-height:64px;max-height:180px;background-color:#f3f4f5;color:rgba(0,0,0,.87);border-top:1px solid rgba(0,0,0,.08);padding:8px 8px 8px 16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container{margin:0;padding-right:16px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea{overflow:auto;max-height:80px;transition:height .2s ease}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container textarea.grow{height:80px}#interaction-app .content-card .interaction .interaction-footer .reply-form md-input-container .md-errors-spacer{display:none}#interaction-app .content-card .interaction .interaction-footer .reply-form .md-button{margin:0}#interaction-app .content-card .info md-list-item{min-height:40px;height:52px}#interaction-app .content-card .start-point{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8))}#interaction-app .content-card .start-point .big-circle{background:linear-gradient(to bottom,rgba(255,255,255,.8) 0,rgba(255,255,255,.6) 20%,rgba(255,255,255,.8));border-radius:50%;width:300px;height:300px;line-height:300px;text-align:center}#interaction-app .content-card .start-point .app-title{font-weight:500;font-size:32px;margin:12px 0}#interaction-app .content-card .start-point .secondary-text{font-size:16px}#interaction-app .content-card .sidenav md-toolbar{border-bottom:1px solid rgba(0,0,0,.08)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search{height:36px;line-height:36px;padding:8px;background:#fff;font-size:13px}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search .icon{margin:0;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-toolbar .md-toolbar-tools-bottom .search input{padding-left:12px;height:36px;color:rgba(0,0,0,.54)}#interaction-app .content-card .sidenav md-list.contact-list,#interaction-app .content-card .sidenav md-list.interaction-list{position:relative;transition:all .2s ease-out}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.contact-list md-list-item,#interaction-app .content-card .sidenav md-list.interaction-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item{position:absolute;right:0;left:0;width:100%;transition:transform .2s ease-out;background:#fff;will-change:transform}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave{transform:translateY(0);display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-leave.ng-leave-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide{display:none}#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.contact-list md-list-item.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list .subheader.ng-hide-remove-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-add-active,#interaction-app .content-card .sidenav md-list.interaction-list md-list-item.ng-hide-remove-active{display:block;transition-property:all}#interaction-app .content-card .sidenav md-list.contact-list .subheader,#interaction-app .content-card .sidenav md-list.interaction-list .subheader{padding-left:16px;font-size:20px;font-weight:300;height:88px;line-height:88px}#interaction-app .content-card .sidenav .no-results-message{position:absolute;width:100%;height:88px;padding:16px;background:#fff;font-size:15px;font-weight:400}#interaction-app .avatar-wrapper{position:relative}#interaction-app .avatar-wrapper .avatar{margin-top:0;margin-bottom:0}#interaction-app .status{position:absolute;top:28px;left:28px;border-radius:50%}#interaction-app .status.online{color:#4caf50}#interaction-app .status.online:before{content:'\e709'}#interaction-app .status.do-not-disturb{color:#f44336}#interaction-app .status.do-not-disturb:before{content:'\e912'}#interaction-app .status.away{background-color:#ffc107;color:#fff}#interaction-app .status.away:before{content:'\e727'}#interaction-app .status.offline{color:#4caf50;background-color:#fff}#interaction-app .status.offline:before{content:'\e704'}#interaction-app .editable-wrap{position:relative}#interaction-app .editable-wrap .editable-controls{display:flex;flex-direction:row;align-items:center;width:100%}#interaction-app .editable-wrap .editable-controls .editable-input{width:inherit;background-color:#fff;padding:8px;border:1px solid rgba(0,0,0,.12)}#interaction-app .editable-wrap .editable-controls .editable-buttons{display:inherit}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button{margin:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button:first-of-type{padding-right:0}#interaction-app .editable-wrap .editable-controls .editable-buttons .md-button .icon-cancel{color:rgba(0,0,0,.32)}#interaction-app .editable-click{cursor:pointer;text-decoration:none;color:inherit;border-bottom:none}#interaction-app .emoji-picker-icon{right:5px;cursor:pointer}#interaction-app .input-show-hide{transition:all linear .5s}#interaction-app .input-show-hide.ng-hide{opacity:0}#interaction-app div.interaction-reply-button-container{display:inline;padding-bottom:14px}#timeline{position:relative;height:auto;padding-bottom:30px}#timeline:before{display:block;position:absolute;z-index:10;content:'';width:2px;background:rgba(0,0,0,.08);top:0;left:50%;bottom:0;margin-left:-1px}#timeline .ms-timeline-item{overflow:hidden;position:relative;z-index:20;width:100%;margin:0 auto;max-width:1200px}#timeline .ms-timeline-item .timeline-card{order:1}#timeline .ms-timeline-item .timeline-card .interaction .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}#timeline .ms-timeline-item .timeline-card .interaction .media .image{width:100%}#timeline .ms-timeline-item .timeline-point{position:absolute;width:40px;height:40px;line-height:40px;text-align:center;border-radius:50%;left:50%;margin:16px 0 0 -28px;order:2}#timeline .ms-timeline-item .timeline-point md-icon{color:#fff}#timeline .ms-timeline-item .timeline-detail{flex:50% 0 0;padding-top:28px;order:3}#timeline .ms-timeline-item .timeline-detail .time{font-size:15px;padding-left:68px}#timeline .ms-timeline-item .timeline-detail .event{color:rgba(0,0,0,.54);padding-left:68px}#timeline .ms-timeline-item:nth-child(odd) .timeline-card{flex-direction:row-reverse}#timeline .ms-timeline-item:nth-child(even) .timeline-card{order:3;padding-right:0}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card{padding-left:84px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail{order:1;padding-left:0;text-align:right}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:68px}#timeline .ms-timeline-item:first-child{padding-top:15px}#timeline .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline .ms-timeline-item.animate .timeline-point{animation:slide-in-bottom .4s}#timeline .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-card{animation:slide-in-right .4s}#timeline .ms-timeline-item:nth-child(even).animate .timeline-detail{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item .timeline-card{order:1}#timeline.timeline-left .ms-timeline-item .timeline-card ms-card{padding-right:68px;padding-left:0;margin-left:auto}#timeline.timeline-left .ms-timeline-item .timeline-detail{order:3;text-align:left}#timeline.timeline-left .ms-timeline-item.animate .timeline-card{animation:slide-in-left .4s}#timeline.timeline-left .ms-timeline-item.animate .timeline-detail{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item .timeline-card{order:3}#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{padding-left:68px;padding-right:0;margin-right:auto}#timeline.timeline-right .ms-timeline-item .timeline-detail{order:1;text-align:right}#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:68px;padding-left:0}#timeline.timeline-right .ms-timeline-item.animate .timeline-card{animation:slide-in-right .4s}#timeline.timeline-right .ms-timeline-item.animate .timeline-detail{animation:slide-in-left .4s}@media screen and (max-width:1280px){#timeline .ms-timeline-item,#timeline.timeline-left .ms-timeline-item,#timeline.timeline-right .ms-timeline-item{display:block}#timeline .ms-timeline-item .timeline-point,#timeline.timeline-left .ms-timeline-item .timeline-point,#timeline.timeline-right .ms-timeline-item .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item .timeline-detail,#timeline.timeline-left .ms-timeline-item .timeline-detail,#timeline.timeline-right .ms-timeline-item .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item .timeline-detail .event,#timeline .ms-timeline-item .timeline-detail .time,#timeline.timeline-left .ms-timeline-item .timeline-detail .event,#timeline.timeline-left .ms-timeline-item .timeline-detail .time,#timeline.timeline-right .ms-timeline-item .timeline-detail .event,#timeline.timeline-right .ms-timeline-item .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item .timeline-card ms-card{margin:0 auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-point,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-point{position:relative;left:auto;margin:0 auto 16px auto;padding:0}#timeline .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail{padding:2px;margin-bottom:16px}#timeline .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-detail .time,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .event,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-detail .time{padding-right:0;padding-left:0;text-align:center}#timeline .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-left .ms-timeline-item:nth-child(even) .timeline-card ms-card,#timeline.timeline-right .ms-timeline-item:nth-child(even) .timeline-card ms-card{margin:0 auto;padding:0}}md-dialog.compose-dialog{height:100%;width:100%;max-width:70%;max-height:80%}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{min-height:250px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.compose-dialog-fax{max-width:720px;width:720px;max-height:450px;height:450px}md-dialog.compose-dialog-fax md-dialog-content{display:block;position:relative}md-dialog.compose-dialog-fax md-toolbar .title{font-size:17px}md-dialog.compose-dialog-fax md-chips md-chip{font-size:12px}md-dialog.compose-dialog-fax md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog-fax .to{position:relative}md-dialog.compose-dialog-fax .attachment-list{font-size:13px}md-dialog.compose-dialog-fax .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog-fax .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog-fax .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog-fax .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog-fax .error-list{font-size:13px}md-dialog.compose-dialog-fax .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog-fax .error-list .error .message{font-weight:500}md-dialog.compose-dialog-fax .error-list .error .md-button{margin:0}md-dialog.compose-dialog-fax .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog-fax md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.compose-dialog .vertical-divider{position:absolute;border-right-width:.5px;border-right-style:solid;height:100%}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .to.hidden-cc input{padding-right:32px}md-dialog.compose-dialog .to.hidden-cc.hidden-bcc input{padding-right:56px}md-dialog.compose-dialog .to.hidden-bcc input{padding-right:32px}md-dialog.compose-dialog .to .cc-bcc{position:absolute;bottom:8px;right:0}md-dialog.compose-dialog .to .cc-bcc .show-bcc,md-dialog.compose-dialog .to .cc-bcc .show-cc{cursor:pointer;font-size:12px}md-dialog.compose-dialog .to .cc-bcc .show-bcc{margin-left:8px}md-dialog.compose-dialog .attachment-list{font-size:13px}md-dialog.compose-dialog .attachment-list .attachment{background-color:rgba(0,0,0,.08);border:1px solid rgba(0,0,0,.16);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .attachment-list .attachment .filename{font-weight:500}md-dialog.compose-dialog .attachment-list .attachment .md-button{margin:0}md-dialog.compose-dialog .attachment-list .attachment:last-child{margin-bottom:0}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.compose-dialog{height:100%;width:100%;max-width:70%;max-height:80%}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{min-height:250px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.compose-dialog{height:100%;width:100%;max-width:70%;max-height:80%}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{min-height:250px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.compose-dialog{height:100%;width:100%;max-width:70%;max-height:80%}md-dialog.compose-dialog md-dialog-content{display:block;position:relative}md-dialog.compose-dialog md-toolbar .title{font-size:17px}md-dialog.compose-dialog md-chips md-chip{font-size:12px}md-dialog.compose-dialog md-chips .md-chip-input-container{width:100%}md-dialog.compose-dialog .to{position:relative}md-dialog.compose-dialog .error-list{font-size:13px}md-dialog.compose-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.compose-dialog .error-list .error .message{font-weight:500}md-dialog.compose-dialog .error-list .error .md-button{margin:0}md-dialog.compose-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.compose-dialog .emojionearea{min-height:250px}md-dialog.compose-dialog md-dialog-actions{position:relative;justify-content:space-between;border-top:1px solid rgba(0,0,0,.12);background-color:rgba(0,0,0,.03)}@media screen and (max-width:960px){md-dialog.compose-dialog{width:80%}}@media screen and (max-width:600px){md-dialog.compose-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}#dashboard-general .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:76px;min-height:76px;max-height:76px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#fax-faxAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#faxAccounts #upload-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:76px;min-height:76px;max-height:76px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#fax-faxQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#fax-faxQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#fax-faxQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#faxQueues #upload-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.deskAccount-dialog{max-width:720px;width:720px}md-dialog.deskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-dialog .error-list{font-size:13px}md-dialog.deskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#deskAccounts{position:relative}#deskAccounts>.header{height:76px;min-height:76px;max-height:76px}#deskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#deskAccounts>.header .logo .logo-text{font-size:24px}#deskAccounts>.header md-icon{color:#fff}#deskAccounts>.header .search-input-wrapper{position:relative}#deskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#deskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#deskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#deskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#deskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#deskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#deskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#deskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#deskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#deskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#deskAccounts #add-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#deskAccounts #upload-deskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.deskConfiguration-dialog{max-width:720px;width:720px}md-dialog.deskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.deskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.deskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.deskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskConfiguration-dialog .error-list{font-size:13px}md-dialog.deskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.deskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.deskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.deskAccount-item-dialog{max-width:720px;width:720px}md-dialog.deskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.deskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.deskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.deskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.deskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.deskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.deskAccount-item-dialog .error-list{font-size:13px}md-dialog.deskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.deskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.deskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.deskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.deskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-deskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-deskAccount .header .goto-deskAccounts-button{margin-right:16px}#integrations-deskAccount .header .deskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-deskAccount .header .deskAccount-image img{height:100%;width:auto;max-width:none}#integrations-deskAccount .header .subtitle{margin:6px 0 0 0}#integrations-deskAccount .deskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-deskAccount .deskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-deskAccount .deskAccount-detail-form-container .handle{cursor:move}#integrations-deskAccount .deskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader{position:relative}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-deskAccount .deskAccount-detail-form-container #deskAccount-image-uploader .deskAccount-image .media{max-height:100%}#integrations-deskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-deskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-deskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.dynamics365Account-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dynamics365Accounts{position:relative}#dynamics365Accounts>.header{height:76px;min-height:76px;max-height:76px}#dynamics365Accounts>.header .logo .logo-icon{margin:0 16px 0 0}#dynamics365Accounts>.header .logo .logo-text{font-size:24px}#dynamics365Accounts>.header md-icon{color:#fff}#dynamics365Accounts>.header .search-input-wrapper{position:relative}#dynamics365Accounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dynamics365Accounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dynamics365Accounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dynamics365Accounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dynamics365Accounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dynamics365Accounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dynamics365Accounts>.header.selected-bar .close-button-wrapper{width:244px}#dynamics365Accounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dynamics365Accounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dynamics365Accounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dynamics365Accounts #add-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}#dynamics365Accounts #upload-dynamics365Account-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dynamics365Configuration-dialog{max-width:720px;width:720px}md-dialog.dynamics365Configuration-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Configuration-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Configuration-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Configuration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Configuration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Configuration-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Configuration-dialog .error-list{font-size:13px}md-dialog.dynamics365Configuration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Configuration-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Configuration-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Configuration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Configuration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dynamics365Account-item-dialog{max-width:720px;width:720px}md-dialog.dynamics365Account-item-dialog md-dialog-content{display:block;position:relative}md-dialog.dynamics365Account-item-dialog md-toolbar .title{font-size:17px}md-dialog.dynamics365Account-item-dialog md-input-container textarea{min-height:150px}md-dialog.dynamics365Account-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dynamics365Account-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dynamics365Account-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.dynamics365Account-item-dialog .error-list{font-size:13px}md-dialog.dynamics365Account-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dynamics365Account-item-dialog .error-list .error .message{font-weight:500}md-dialog.dynamics365Account-item-dialog .error-list .error .md-button{margin:0}md-dialog.dynamics365Account-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dynamics365Account-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-dynamics365Account .header{height:76px;min-height:76px;max-height:76px}#integrations-dynamics365Account .header .goto-dynamics365Accounts-button{margin-right:16px}#integrations-dynamics365Account .header .dynamics365Account-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-dynamics365Account .header .dynamics365Account-image img{height:100%;width:auto;max-width:none}#integrations-dynamics365Account .header .subtitle{margin:6px 0 0 0}#integrations-dynamics365Account .dynamics365Account-detail-form-container{padding:24px;margin-bottom:24px}#integrations-dynamics365Account .dynamics365Account-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-dynamics365Account .dynamics365Account-detail-form-container .handle{cursor:move}#integrations-dynamics365Account .dynamics365Account-detail-form-container md-input-container md-switch{margin:0!important}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader{position:relative}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader.dropping .drop-text{display:flex}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .upload-button{margin-bottom:16px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-dynamics365Account .dynamics365Account-detail-form-container #dynamics365Account-image-uploader .dynamics365Account-image .media{max-height:100%}#integrations-dynamics365Account md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-dynamics365Account md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-dynamics365Account md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#integrations-freshdeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshdeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshdeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshdeskAccounts #upload-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.freshsalesAccount-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshsalesConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesConfiguration-dialog .error-list{font-size:13px}md-dialog.freshsalesConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshsalesAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshsalesAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshsalesAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshsalesAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshsalesAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.freshsalesAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshsalesAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshsalesAccount-item-dialog .error-list{font-size:13px}md-dialog.freshsalesAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshsalesAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshsalesAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshsalesAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshsalesAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshsalesAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-freshsalesAccount .header .goto-freshsalesAccounts-button{margin-right:16px}#integrations-freshsalesAccount .header .freshsalesAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshsalesAccount .header .freshsalesAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshsalesAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container .handle{cursor:move}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader{position:relative}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshsalesAccount .freshsalesAccount-detail-form-container #freshsalesAccount-image-uploader .freshsalesAccount-image .media{max-height:100%}#integrations-freshsalesAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-freshsalesAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-freshsalesAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#freshsalesAccounts{position:relative}#freshsalesAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshsalesAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshsalesAccounts>.header .logo .logo-text{font-size:24px}#freshsalesAccounts>.header md-icon{color:#fff}#freshsalesAccounts>.header .search-input-wrapper{position:relative}#freshsalesAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshsalesAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshsalesAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshsalesAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshsalesAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshsalesAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshsalesAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshsalesAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshsalesAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshsalesAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshsalesAccounts #add-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#freshsalesAccounts #upload-freshsalesAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#integrations-salesforceAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-salesforceAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-salesforceAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#salesforceAccounts #upload-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.servicenowAccount-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowConfiguration-dialog{max-width:720px;width:720px}md-dialog.servicenowConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowConfiguration-dialog .error-list{font-size:13px}md-dialog.servicenowConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.servicenowAccount-item-dialog{max-width:720px;width:720px}md-dialog.servicenowAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.servicenowAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.servicenowAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.servicenowAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.servicenowAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.servicenowAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.servicenowAccount-item-dialog .error-list{font-size:13px}md-dialog.servicenowAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.servicenowAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.servicenowAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.servicenowAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.servicenowAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-servicenowAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-servicenowAccount .header .goto-servicenowAccounts-button{margin-right:16px}#integrations-servicenowAccount .header .servicenowAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-servicenowAccount .header .servicenowAccount-image img{height:100%;width:auto;max-width:none}#integrations-servicenowAccount .header .subtitle{margin:6px 0 0 0}#integrations-servicenowAccount .servicenowAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-servicenowAccount .servicenowAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-servicenowAccount .servicenowAccount-detail-form-container .handle{cursor:move}#integrations-servicenowAccount .servicenowAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader{position:relative}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader.dropping .drop-text{display:flex}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-servicenowAccount .servicenowAccount-detail-form-container #servicenowAccount-image-uploader .servicenowAccount-image .media{max-height:100%}#integrations-servicenowAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-servicenowAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-servicenowAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#servicenowAccounts{position:relative}#servicenowAccounts>.header{height:76px;min-height:76px;max-height:76px}#servicenowAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#servicenowAccounts>.header .logo .logo-text{font-size:24px}#servicenowAccounts>.header md-icon{color:#fff}#servicenowAccounts>.header .search-input-wrapper{position:relative}#servicenowAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#servicenowAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#servicenowAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#servicenowAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#servicenowAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#servicenowAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#servicenowAccounts>.header.selected-bar .close-button-wrapper{width:244px}#servicenowAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#servicenowAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#servicenowAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#servicenowAccounts #add-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#servicenowAccounts #upload-servicenowAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#integrations-sugarcrmAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-sugarcrmAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-sugarcrmAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#sugarcrmAccounts #upload-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.vtigerAccount-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerConfiguration-dialog{max-width:720px;width:720px}md-dialog.vtigerConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerConfiguration-dialog .error-list{font-size:13px}md-dialog.vtigerConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.vtigerAccount-item-dialog{max-width:720px;width:720px}md-dialog.vtigerAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.vtigerAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.vtigerAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.vtigerAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.vtigerAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.vtigerAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.vtigerAccount-item-dialog .error-list{font-size:13px}md-dialog.vtigerAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.vtigerAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.vtigerAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.vtigerAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.vtigerAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-vtigerAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-vtigerAccount .header .goto-vtigerAccounts-button{margin-right:16px}#integrations-vtigerAccount .header .vtigerAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-vtigerAccount .header .vtigerAccount-image img{height:100%;width:auto;max-width:none}#integrations-vtigerAccount .header .subtitle{margin:6px 0 0 0}#integrations-vtigerAccount .vtigerAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-vtigerAccount .vtigerAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-vtigerAccount .vtigerAccount-detail-form-container .handle{cursor:move}#integrations-vtigerAccount .vtigerAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader{position:relative}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader.dropping .drop-text{display:flex}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-vtigerAccount .vtigerAccount-detail-form-container #vtigerAccount-image-uploader .vtigerAccount-image .media{max-height:100%}#integrations-vtigerAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-vtigerAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-vtigerAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#vtigerAccounts{position:relative}#vtigerAccounts>.header{height:76px;min-height:76px;max-height:76px}#vtigerAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#vtigerAccounts>.header .logo .logo-text{font-size:24px}#vtigerAccounts>.header md-icon{color:#fff}#vtigerAccounts>.header .search-input-wrapper{position:relative}#vtigerAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#vtigerAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#vtigerAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#vtigerAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#vtigerAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#vtigerAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#vtigerAccounts>.header.selected-bar .close-button-wrapper{width:244px}#vtigerAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#vtigerAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#vtigerAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#vtigerAccounts #add-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#vtigerAccounts #upload-vtigerAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}#integrations-zendeskAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zendeskAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zendeskAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zendeskAccounts #upload-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zohoAccount-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-dialog .error-list{font-size:13px}md-dialog.zohoAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoConfiguration-dialog{max-width:720px;width:720px}md-dialog.zohoConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zohoConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zohoConfiguration-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoConfiguration-dialog .error-list{font-size:13px}md-dialog.zohoConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zohoConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zohoConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zohoAccount-item-dialog{max-width:720px;width:720px}md-dialog.zohoAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zohoAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zohoAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zohoAccount-item-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.zohoAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zohoAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zohoAccount-item-dialog .error-list{font-size:13px}md-dialog.zohoAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zohoAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zohoAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zohoAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zohoAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zohoAccount .header{height:76px;min-height:76px;max-height:76px}#integrations-zohoAccount .header .goto-zohoAccounts-button{margin-right:16px}#integrations-zohoAccount .header .zohoAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zohoAccount .header .zohoAccount-image img{height:100%;width:auto;max-width:none}#integrations-zohoAccount .header .subtitle{margin:6px 0 0 0}#integrations-zohoAccount .zohoAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zohoAccount .zohoAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#integrations-zohoAccount .zohoAccount-detail-form-container .handle{cursor:move}#integrations-zohoAccount .zohoAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader{position:relative}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zohoAccount .zohoAccount-detail-form-container #zohoAccount-image-uploader .zohoAccount-image .media{max-height:100%}#integrations-zohoAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#integrations-zohoAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#integrations-zohoAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#zohoAccounts{position:relative}#zohoAccounts>.header{height:76px;min-height:76px;max-height:76px}#zohoAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zohoAccounts>.header .logo .logo-text{font-size:24px}#zohoAccounts>.header md-icon{color:#fff}#zohoAccounts>.header .search-input-wrapper{position:relative}#zohoAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zohoAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zohoAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zohoAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zohoAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zohoAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zohoAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zohoAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zohoAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zohoAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zohoAccounts #add-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#zohoAccounts #upload-zohoAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.session-dialog{max-width:720px;width:720px}md-dialog.session-dialog md-dialog-content{display:block;position:relative}md-dialog.session-dialog md-toolbar .title{font-size:17px}md-dialog.session-dialog md-input-container textarea{min-height:150px}md-dialog.session-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.session-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.session-dialog .date-container{padding:16px 0 24px 0}md-dialog.session-dialog .error-list{font-size:13px}md-dialog.session-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.session-dialog .error-list .error .message{font-weight:500}md-dialog.session-dialog .error-list .error .md-button{margin:0}md-dialog.session-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.session-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:76px;min-height:76px;max-height:76px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#jscripty-project md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#jscripty-project md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#jscripty-project md-table-container.font-size-12 td.md-cell{font-size:12px!important}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}#projects #upload-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.mailCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.mailCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.mailCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.mailCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailCannedAnswer-dialog .error-list{font-size:13px}md-dialog.mailCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.mailCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.mailCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:76px;min-height:76px;max-height:76px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mail-mailAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#mailAccounts #upload-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:76px;min-height:76px;max-height:76px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mail-mailQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#mail-mailQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#mail-mailQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#mailQueues #upload-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailSubstatus-dialog{max-width:720px;width:720px}md-dialog.mailSubstatus-dialog md-dialog-content{display:block;position:relative}md-dialog.mailSubstatus-dialog md-toolbar .title{font-size:17px}md-dialog.mailSubstatus-dialog md-input-container textarea{min-height:150px}md-dialog.mailSubstatus-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mailSubstatus-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailSubstatus-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailSubstatus-dialog .error-list{font-size:13px}md-dialog.mailSubstatus-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailSubstatus-dialog .error-list .error .message{font-weight:500}md-dialog.mailSubstatus-dialog .error-list .error .md-button{margin:0}md-dialog.mailSubstatus-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailSubstatus-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mailSubtatuses{position:relative}#mailSubtatuses>.header{height:76px;min-height:76px;max-height:76px}#mailSubtatuses>.header .logo .logo-icon{margin:0 16px 0 0}#mailSubtatuses>.header .logo .logo-text{font-size:24px}#mailSubtatuses>.header md-icon{color:#fff}#mailSubtatuses>.header .search-input-wrapper{position:relative}#mailSubtatuses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailSubtatuses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailSubtatuses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailSubtatuses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailSubtatuses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailSubtatuses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailSubtatuses>.header.selected-bar .close-button-wrapper{width:244px}#mailSubtatuses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailSubtatuses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailSubtatuses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailSubtatuses #add-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#mailSubtatuses #upload-mailSubstatus-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.plugin-dialog{max-width:720px;width:720px}md-dialog.plugin-dialog md-dialog-content{display:block;position:relative}md-dialog.plugin-dialog md-toolbar .title{font-size:17px}md-dialog.plugin-dialog md-input-container textarea{min-height:150px}md-dialog.plugin-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.plugin-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.plugin-dialog .date-container{padding:16px 0 24px 0}md-dialog.plugin-dialog .error-list{font-size:13px}md-dialog.plugin-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.plugin-dialog .error-list .error .message{font-weight:500}md-dialog.plugin-dialog .error-list .error .md-button{margin:0}md-dialog.plugin-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.plugin-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#marketplace-plugin .header{height:76px;min-height:76px;max-height:76px}#marketplace-plugin .header .goto-plugins-button{margin-right:16px}#marketplace-plugin .header .plugin-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#marketplace-plugin .header .plugin-image img{height:100%;width:auto;max-width:none}#marketplace-plugin .header .subtitle{margin:6px 0 0 0}#marketplace-plugin .plugin-detail-form-container{padding:24px;margin-bottom:24px}#marketplace-plugin .plugin-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#marketplace-plugin .plugin-detail-form-container .handle{cursor:move}#marketplace-plugin .plugin-detail-form-container md-input-container md-switch{margin:0!important}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader{position:relative}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader.dropping .drop-text{display:flex}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .upload-button{margin-bottom:16px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#marketplace-plugin .plugin-detail-form-container #plugin-image-uploader .plugin-image .media{max-height:100%}#marketplace-plugin md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#marketplace-plugin md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#marketplace-plugin md-table-container.font-size-12 td.md-cell{font-size:12px!important}#plugins{position:relative}#plugins>.header{height:76px;min-height:76px;max-height:76px}#plugins>.header .logo .logo-icon{margin:0 16px 0 0}#plugins>.header .logo .logo-text{font-size:24px}#plugins>.header md-icon{color:#fff}#plugins>.header .search-input-wrapper{position:relative}#plugins>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#plugins>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#plugins>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#plugins>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#plugins>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#plugins>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#plugins>.header.selected-bar .close-button-wrapper{width:244px}#plugins>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#plugins>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#plugins>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#plugins #add-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}#plugins #upload-plugin-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .plugin-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .plugin-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#motiondialer-ivrCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-ivrCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-ivrCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#ivrCampaigns #upload-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:76px;min-height:76px;max-height:76px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#motiondialer-queueCampaign md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#motiondialer-queueCampaign md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#motiondialer-queueCampaign md-table-container.font-size-12 td.md-cell{font-size:12px!important}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#queueCampaigns #upload-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.predictive-dialog{max-width:720px;width:720px}md-dialog.predictive-dialog md-dialog-content{display:block;position:relative}md-dialog.predictive-dialog md-toolbar .title{font-size:17px}md-dialog.predictive-dialog md-input-container textarea{min-height:150px}md-dialog.predictive-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.predictive-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.predictive-dialog .date-container{padding:16px 0 24px 0}md-dialog.predictive-dialog .error-list{font-size:13px}md-dialog.predictive-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.predictive-dialog .error-list .error .message{font-weight:500}md-dialog.predictive-dialog .error-list .error .md-button{margin:0}md-dialog.predictive-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.predictive-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.openchannelCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelCannedAnswer-dialog .error-list{font-size:13px}md-dialog.openchannelCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannel-openchannelAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelAccounts #upload-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:76px;min-height:76px;max-height:76px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannel-openchannelQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#openchannel-openchannelQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#openchannel-openchannelQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#openchannelQueues #upload-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}#plugin .filter-header{background-image:url(/assets/images/backgrounds/header-bg.png);color:#fff}#cloudProviders{position:relative}#cloudProviders>.header{height:76px;min-height:76px;max-height:76px}#cloudProviders>.header .logo .logo-icon{margin:0 16px 0 0}#cloudProviders>.header .logo .logo-text{font-size:24px}#cloudProviders>.header md-icon{color:#fff}#cloudProviders>.header .search-input-wrapper{position:relative}#cloudProviders>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cloudProviders>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cloudProviders>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cloudProviders>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cloudProviders>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cloudProviders>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cloudProviders>.header.selected-bar .close-button-wrapper{width:244px}#cloudProviders>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cloudProviders>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cloudProviders>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cloudProviders #add-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}#cloudProviders #upload-cloudProvider-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cloudProvider-dialog{max-width:720px;width:720px}md-dialog.cloudProvider-dialog md-dialog-content{display:block;position:relative}md-dialog.cloudProvider-dialog md-toolbar .title{font-size:17px}md-dialog.cloudProvider-dialog md-input-container textarea{min-height:150px}md-dialog.cloudProvider-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cloudProvider-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cloudProvider-dialog .date-container{padding:16px 0 24px 0}md-dialog.cloudProvider-dialog .error-list{font-size:13px}md-dialog.cloudProvider-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cloudProvider-dialog .error-list .error .message{font-weight:500}md-dialog.cloudProvider-dialog .error-list .error .md-button{margin:0}md-dialog.cloudProvider-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cloudProvider-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.update-dialog{max-width:720px;width:720px}md-dialog.update-dialog md-dialog-content{display:block;position:relative}md-dialog.update-dialog md-toolbar .title{font-size:17px}md-dialog.update-dialog md-input-container textarea{min-height:60px}md-dialog.update-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.update-dialog .error-list{font-size:13px}md-dialog.update-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.update-dialog .error-list .error .message{font-weight:500}md-dialog.update-dialog .error-list .error .md-button{margin:0}md-dialog.update-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.update-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}#networks #upload-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.smsCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.smsCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.smsCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.smsCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsCannedAnswer-dialog .error-list{font-size:13px}md-dialog.smsCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.smsCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.smsCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:76px;min-height:76px;max-height:76px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#sms-smsAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#smsAccounts #upload-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:76px;min-height:76px;max-height:76px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#sms-smsQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#sms-smsQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#sms-smsQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#smsQueues #upload-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}#agents #upload-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:76px;min-height:76px;max-height:76px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}#staff-agent md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-agent md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-agent md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-agent md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}#teams #upload-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:76px;min-height:76px;max-height:76px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#staff-telephone md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-telephone md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-telephone md-table-container.font-size-12 td.md-cell{font-size:12px!important}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}#telephones #upload-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.userProfile-dialog{max-width:720px;width:720px}md-dialog.userProfile-dialog md-dialog-content{display:block;position:relative}md-dialog.userProfile-dialog md-toolbar .title{font-size:17px}md-dialog.userProfile-dialog md-input-container textarea{min-height:150px}md-dialog.userProfile-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.userProfile-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.userProfile-dialog .date-container{padding:16px 0 24px 0}md-dialog.userProfile-dialog .error-list{font-size:13px}md-dialog.userProfile-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.userProfile-dialog .error-list .error .message{font-weight:500}md-dialog.userProfile-dialog .error-list .error .md-button{margin:0}md-dialog.userProfile-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.userProfile-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-userProfile .header{height:76px;min-height:76px;max-height:76px}#staff-userProfile .header .goto-userProfiles-button{margin-right:16px}#staff-userProfile .header .userProfile-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-userProfile .header .userProfile-image img{height:100%;width:auto;max-width:none}#staff-userProfile .header .subtitle{margin:6px 0 0 0}#staff-userProfile .userProfile-detail-form-container{padding:24px;margin-bottom:24px}#staff-userProfile .userProfile-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-userProfile .userProfile-detail-form-container .handle{cursor:move}#staff-userProfile .userProfile-detail-form-container md-input-container md-switch{margin:0!important}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader{position:relative}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader.dropping .drop-text{display:flex}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .upload-button{margin-bottom:16px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-userProfile .userProfile-detail-form-container #userProfile-image-uploader .userProfile-image .media{max-height:100%}#staff-userProfile md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-userProfile md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-userProfile md-table-container.font-size-12 td.md-cell{font-size:12px!important}#userProfiles{position:relative}#userProfiles>.header{height:76px;min-height:76px;max-height:76px}#userProfiles>.header .logo .logo-icon{margin:0 16px 0 0}#userProfiles>.header .logo .logo-text{font-size:24px}#userProfiles>.header md-icon{color:#fff}#userProfiles>.header .search-input-wrapper{position:relative}#userProfiles>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#userProfiles>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#userProfiles>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#userProfiles>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#userProfiles>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#userProfiles>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#userProfiles>.header.selected-bar .close-button-wrapper{width:244px}#userProfiles>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#userProfiles>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#userProfiles>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#userProfiles #add-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}#userProfiles #upload-userProfile-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:76px;min-height:76px;max-height:76px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#staff-user md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#staff-user md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#staff-user md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#staff-user md-table-container.font-size-12 td.md-cell{font-size:12px!important}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#users #upload-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers #upload-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}#customDashboards #upload-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:76px;min-height:76px;max-height:76px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}#tools-customDashboard md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-customDashboard md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-customDashboard md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.disposition-dialog{max-width:720px;width:720px}md-dialog.disposition-dialog md-dialog-content{display:block;position:relative}md-dialog.disposition-dialog md-toolbar .title{font-size:17px}md-dialog.disposition-dialog md-input-container textarea{min-height:150px}md-dialog.disposition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.disposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.disposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.disposition-dialog .error-list{font-size:13px}md-dialog.disposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.disposition-dialog .error-list .error .message{font-weight:500}md-dialog.disposition-dialog .error-list .error .md-button{margin:0}md-dialog.disposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.disposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dispositions{position:relative}#dispositions>.header{height:76px;min-height:76px;max-height:76px}#dispositions>.header .logo .logo-icon{margin:0 16px 0 0}#dispositions>.header .logo .logo-text{font-size:24px}#dispositions>.header md-icon{color:#fff}#dispositions>.header .search-input-wrapper{position:relative}#dispositions>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#dispositions>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#dispositions>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#dispositions>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#dispositions>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#dispositions>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#dispositions>.header.selected-bar .close-button-wrapper{width:244px}#dispositions>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#dispositions>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#dispositions>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#dispositions #add-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}#dispositions #upload-disposition-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:76px;min-height:76px;max-height:76px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#tools-interval md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-interval md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-interval md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-interval md-table-container.font-size-12 td.md-cell{font-size:12px!important}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}#intervals #upload-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}#pauses #upload-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}#schedules #upload-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}#sounds #upload-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog md-progress-linear{padding-top:16px!important}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}#tags #upload-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}#templates #upload-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:76px;min-height:76px;max-height:76px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#tools-trigger md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trigger md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trigger md-table-container.font-size-12 td.md-cell{font-size:12px!important}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}#triggers #upload-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:76px;min-height:76px;max-height:76px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#tools-trunk md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#tools-trunk md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#tools-trunk md-table-container.font-size-12 td.md-cell{font-size:12px!important}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}#trunks #upload-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#variables #upload-variable-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.screenRecording-dialog{max-width:720px;width:720px}md-dialog.screenRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.screenRecording-dialog md-toolbar .title{font-size:17px}md-dialog.screenRecording-dialog md-input-container textarea{min-height:150px}md-dialog.screenRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.screenRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.screenRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.screenRecording-dialog .error-list{font-size:13px}md-dialog.screenRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.screenRecording-dialog .error-list .error .message{font-weight:500}md-dialog.screenRecording-dialog .error-list .error .md-button{margin:0}md-dialog.screenRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.screenRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#screenRecordings{position:relative}#screenRecordings>.header{height:76px;min-height:76px;max-height:76px}#screenRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#screenRecordings>.header .logo .logo-text{font-size:24px}#screenRecordings>.header md-icon{color:#fff}#screenRecordings>.header .search-input-wrapper{position:relative}#screenRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#screenRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#screenRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#screenRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#screenRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#screenRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#screenRecordings>.header.selected-bar .close-button-wrapper{width:244px}#screenRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#screenRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#screenRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#screenRecordings #add-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#screenRecordings #upload-screenRecording-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voice-routing-dialog{max-width:720px;width:720px}md-dialog.voice-routing-dialog md-dialog-content{display:block;position:relative}md-dialog.voice-routing-dialog md-toolbar .title{font-size:17px}md-dialog.voice-routing-dialog md-input-container textarea{min-height:150px}md-dialog.voice-routing-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voice-routing-dialog .date-container{padding:16px 0 24px 0}md-dialog.voice-routing-dialog .error-list{font-size:13px}md-dialog.voice-routing-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voice-routing-dialog .error-list .error .message{font-weight:500}md-dialog.voice-routing-dialog .error-list .error .md-button{margin:0}md-dialog.voice-routing-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voice-routing-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies #upload-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}#contexts #upload-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inbound-route-dialog{max-width:720px;width:720px}md-dialog.inbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.inbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.inbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.inbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.inbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.inbound-route-dialog .error-list{font-size:13px}md-dialog.inbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.inbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.inbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-inbound-route .header .goto-inbound-routes-button{margin-right:16px}#voice-inbound-route .header .inbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inbound-route .header .inbound-route-image img{height:100%;width:auto;max-width:none}#voice-inbound-route .header .subtitle{margin:6px 0 0 0}#voice-inbound-route .inbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-inbound-route .inbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-inbound-route .inbound-route-detail-form-container .handle{cursor:move}#voice-inbound-route .inbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-inbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-inbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-inbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#inbound-routes{position:relative}#inbound-routes>.header{height:76px;min-height:76px;max-height:76px}#inbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#inbound-routes>.header .logo .logo-text{font-size:24px}#inbound-routes>.header md-icon{color:#fff}#inbound-routes>.header .search-input-wrapper{position:relative}#inbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#inbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inbound-routes #add-inbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internal-route-dialog{max-width:720px;width:720px}md-dialog.internal-route-dialog md-dialog-content{display:block;position:relative}md-dialog.internal-route-dialog md-toolbar .title{font-size:17px}md-dialog.internal-route-dialog md-input-container textarea{min-height:150px}md-dialog.internal-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.internal-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internal-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.internal-route-dialog .error-list{font-size:13px}md-dialog.internal-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internal-route-dialog .error-list .error .message{font-weight:500}md-dialog.internal-route-dialog .error-list .error .md-button{margin:0}md-dialog.internal-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internal-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internal-route .header{height:76px;min-height:76px;max-height:76px}#voice-internal-route .header .goto-internal-routes-button{margin-right:16px}#voice-internal-route .header .internal-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internal-route .header .internal-route-image img{height:100%;width:auto;max-width:none}#voice-internal-route .header .subtitle{margin:6px 0 0 0}#voice-internal-route .internal-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-internal-route .internal-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-internal-route .internal-route-detail-form-container .handle{cursor:move}#voice-internal-route .internal-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-internal-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-internal-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-internal-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#internal-routes{position:relative}#internal-routes>.header{height:76px;min-height:76px;max-height:76px}#internal-routes>.header .logo .logo-icon{margin:0 16px 0 0}#internal-routes>.header .logo .logo-text{font-size:24px}#internal-routes>.header md-icon{color:#fff}#internal-routes>.header .search-input-wrapper{position:relative}#internal-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internal-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internal-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internal-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internal-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internal-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internal-routes>.header.selected-bar .close-button-wrapper{width:244px}#internal-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internal-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internal-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internal-routes #add-internal-route-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:76px;min-height:76px;max-height:76px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#voice-musiconhold md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-musiconhold md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-musiconhold md-table-container.font-size-12 td.md-cell{font-size:12px!important}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}#musiconholds #upload-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outbound-route-dialog{max-width:720px;width:720px}md-dialog.outbound-route-dialog md-dialog-content{display:block;position:relative}md-dialog.outbound-route-dialog md-toolbar .title{font-size:17px}md-dialog.outbound-route-dialog md-input-container textarea{min-height:150px}md-dialog.outbound-route-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.outbound-route-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outbound-route-dialog .date-container{padding:16px 0 24px 0}md-dialog.outbound-route-dialog .error-list{font-size:13px}md-dialog.outbound-route-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outbound-route-dialog .error-list .error .message{font-weight:500}md-dialog.outbound-route-dialog .error-list .error .md-button{margin:0}md-dialog.outbound-route-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outbound-route-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outbound-route .header{height:76px;min-height:76px;max-height:76px}#voice-outbound-route .header .goto-outbound-routes-button{margin-right:16px}#voice-outbound-route .header .outbound-route-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outbound-route .header .outbound-route-image img{height:100%;width:auto;max-width:none}#voice-outbound-route .header .subtitle{margin:6px 0 0 0}#voice-outbound-route .outbound-route-detail-form-container{padding:24px;margin-bottom:24px}#voice-outbound-route .outbound-route-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-outbound-route .outbound-route-detail-form-container .handle{cursor:move}#voice-outbound-route .outbound-route-detail-form-container md-input-container md-switch{margin:0!important}#voice-outbound-route md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-outbound-route md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-outbound-route md-table-container.font-size-12 td.md-cell{font-size:12px!important}#outbound-routes{position:relative}#outbound-routes>.header{height:76px;min-height:76px;max-height:76px}#outbound-routes>.header .logo .logo-icon{margin:0 16px 0 0}#outbound-routes>.header .logo .logo-text{font-size:24px}#outbound-routes>.header md-icon{color:#fff}#outbound-routes>.header .search-input-wrapper{position:relative}#outbound-routes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outbound-routes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outbound-routes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outbound-routes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outbound-routes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outbound-routes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outbound-routes>.header.selected-bar .close-button-wrapper{width:244px}#outbound-routes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outbound-routes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outbound-routes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outbound-routes #add-outbound-route-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:76px;min-height:76px;max-height:76px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voice-voicemail md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voicemail md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voicemail md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}#voicemails #upload-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voicePrefix-dialog{max-width:720px;width:720px}md-dialog.voicePrefix-dialog md-dialog-content{display:block;position:relative}md-dialog.voicePrefix-dialog md-toolbar .title{font-size:17px}md-dialog.voicePrefix-dialog md-input-container textarea{min-height:150px}md-dialog.voicePrefix-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voicePrefix-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicePrefix-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicePrefix-dialog .error-list{font-size:13px}md-dialog.voicePrefix-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicePrefix-dialog .error-list .error .message{font-weight:500}md-dialog.voicePrefix-dialog .error-list .error .md-button{margin:0}md-dialog.voicePrefix-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicePrefix-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voicePrefixes{position:relative}#voicePrefixes>.header{height:76px;min-height:76px;max-height:76px}#voicePrefixes>.header .logo .logo-icon{margin:0 16px 0 0}#voicePrefixes>.header .logo .logo-text{font-size:24px}#voicePrefixes>.header md-icon{color:#fff}#voicePrefixes>.header .search-input-wrapper{position:relative}#voicePrefixes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicePrefixes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicePrefixes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicePrefixes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicePrefixes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicePrefixes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicePrefixes>.header.selected-bar .close-button-wrapper{width:244px}#voicePrefixes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicePrefixes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicePrefixes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicePrefixes #add-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}#voicePrefixes #upload-voicePrefix-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:76px;min-height:76px;max-height:76px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voice-voiceQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceQueues #upload-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceRecording .header{height:76px;min-height:76px;max-height:76px}#voice-voiceRecording .header .goto-voiceRecordings-button{margin-right:16px}#voice-voiceRecording .header .voiceRecording-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceRecording .header .voiceRecording-image img{height:100%;width:auto;max-width:none}#voice-voiceRecording .header .subtitle{margin:6px 0 0 0}#voice-voiceRecording .voiceRecording-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceRecording .voiceRecording-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#voice-voiceRecording .voiceRecording-detail-form-container .handle{cursor:move}#voice-voiceRecording .voiceRecording-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader{position:relative}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader.dropping .drop-text{display:flex}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .upload-button{margin-bottom:16px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceRecording .voiceRecording-detail-form-container #voiceRecording-image-uploader .voiceRecording-image .media{max-height:100%}#voice-voiceRecording md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#voice-voiceRecording md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#voice-voiceRecording md-table-container.font-size-12 td.md-cell{font-size:12px!important}#voice-voiceRecording .sentiment.POSITIVE{color:#4caf50;font-size:25px}#voice-voiceRecording .sentiment.NEGATIVE{color:#f40505;font-size:30px}#voice-voiceRecording .sentiment.NEUTRAL{color:#03a9f4;font-size:30px}#voice-voiceRecording .sentiment.MIXED{color:#9c27b0;font-size:30px}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#voiceRecordings #upload-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .custom-column{padding:0 24px!important}@keyframes blinker{50%{opacity:0}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.whatsappAccount-dialog{max-width:720px;width:720px}md-dialog.whatsappAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappAccount-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappAccount-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappAccount-dialog .error-list{font-size:13px}md-dialog.whatsappAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappAccount-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappAccount-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappAccount .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappAccount .header .goto-whatsappAccounts-button{margin-right:16px}#whatsapp-whatsappAccount .header .whatsappAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappAccount .header .whatsappAccount-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappAccount .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container .handle{cursor:move}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader{position:relative}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappAccount .whatsappAccount-detail-form-container #whatsappAccount-image-uploader .whatsappAccount-image .media{max-height:100%}#whatsapp-whatsappAccount md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappAccount md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappAccount md-table-container.font-size-12 td.md-cell{font-size:12px!important}md-dialog.whatsappCannedAnswer-dialog{max-width:720px;width:720px}md-dialog.whatsappCannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappCannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappCannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappCannedAnswer-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappCannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappCannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappCannedAnswer-dialog .error-list{font-size:13px}md-dialog.whatsappCannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappCannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappCannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappCannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappCannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsappAccounts{position:relative}#whatsappAccounts>.header{height:76px;min-height:76px;max-height:76px}#whatsappAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappAccounts>.header .logo .logo-text{font-size:24px}#whatsappAccounts>.header md-icon{color:#fff}#whatsappAccounts>.header .search-input-wrapper{position:relative}#whatsappAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappAccounts>.header.selected-bar .close-button-wrapper{width:244px}#whatsappAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappAccounts #add-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappAccounts #upload-whatsappAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.whatsappQueue-dialog{max-width:720px;width:720px}md-dialog.whatsappQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.whatsappQueue-dialog md-toolbar .title{font-size:17px}md-dialog.whatsappQueue-dialog md-input-container textarea{min-height:150px}md-dialog.whatsappQueue-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.whatsappQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.whatsappQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.whatsappQueue-dialog .error-list{font-size:13px}md-dialog.whatsappQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.whatsappQueue-dialog .error-list .error .message{font-weight:500}md-dialog.whatsappQueue-dialog .error-list .error .md-button{margin:0}md-dialog.whatsappQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.whatsappQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#whatsapp-whatsappQueue .header{height:76px;min-height:76px;max-height:76px}#whatsapp-whatsappQueue .header .goto-whatsappQueues-button{margin-right:16px}#whatsapp-whatsappQueue .header .whatsappQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#whatsapp-whatsappQueue .header .whatsappQueue-image img{height:100%;width:auto;max-width:none}#whatsapp-whatsappQueue .header .subtitle{margin:6px 0 0 0}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container{padding:24px;margin-bottom:24px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container .handle{cursor:move}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container md-input-container md-switch{margin:0!important}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader{position:relative}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader.dropping .drop-text{display:flex}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .upload-button{margin-bottom:16px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#whatsapp-whatsappQueue .whatsappQueue-detail-form-container #whatsappQueue-image-uploader .whatsappQueue-image .media{max-height:100%}#whatsapp-whatsappQueue md-table-container thead tr th:not(:first-child):not(.no-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container thead th.md-checkbox-column:not(.no-padding){padding:0 24px!important}#whatsapp-whatsappQueue md-table-container tbody tr td:not(:first-child):not(.no-padding):not(.actions-padding){padding:0 20px 0 0!important}#whatsapp-whatsappQueue md-table-container.font-size-12 td.md-cell{font-size:12px!important}#whatsappQueues{position:relative}#whatsappQueues>.header{height:76px;min-height:76px;max-height:76px}#whatsappQueues>.header .logo .logo-icon{margin:0 16px 0 0}#whatsappQueues>.header .logo .logo-text{font-size:24px}#whatsappQueues>.header md-icon{color:#fff}#whatsappQueues>.header .search-input-wrapper{position:relative}#whatsappQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#whatsappQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#whatsappQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#whatsappQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#whatsappQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#whatsappQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#whatsappQueues>.header.selected-bar .close-button-wrapper{width:244px}#whatsappQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#whatsappQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#whatsappQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#whatsappQueues #add-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#whatsappQueues #upload-whatsappQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{position:static;height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}.unread-message-count-chat{position:absolute;top:5px;left:10px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#quick-panel .group-tab .chat,#quick-panel .group-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .group-tab .main .contact{position:relative}#quick-panel .group-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .group-tab .main .contact .status.online{background-color:#00c853}#quick-panel .group-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .group-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .group-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .group-tab .main .recent .contact .status{top:18px}#quick-panel .group-tab .chat{max-height:100%;overflow:hidden}#quick-panel .group-tab .chat .message-row{padding:8px}#quick-panel .group-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .group-tab .chat .message-row .bubble:after,#quick-panel .group-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .group-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .group-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .group-tab .chat .message-row .bubble .message{word-wrap:break-word}#quick-panel .group-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .group-tab .chat .message-row.user{align-items:flex-end}#quick-panel .group-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .group-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .group-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .group-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .group-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .group-tab .chat .reply textarea{margin:8px;resize:none;padding:8px 16px 8px 8px}md-dialog.group-dialog{max-width:720px;width:720px}md-dialog.group-dialog md-dialog-content{display:block;position:relative}md-dialog.group-dialog md-toolbar .title{font-size:17px}md-dialog.group-dialog md-input-container textarea{min-height:150px}md-dialog.group-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.group-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.group-dialog .date-container{padding:16px 0 24px 0}md-dialog.group-dialog .error-list{font-size:13px}md-dialog.group-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.group-dialog .error-list .error .message{font-weight:500}md-dialog.group-dialog .error-list .error .md-button{margin:0}md-dialog.group-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.group-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reset-password{height:100%;background:url(/assets/images/backgrounds/tech.png) no-repeat;background-size:cover}#reset-password #reset-password-form-wrapper{flex:1 0 auto;padding:32px}#reset-password #reset-password-form-wrapper #reset-password-form{width:384px;max-width:384px;padding:32px;text-align:center;background:#fff}#reset-password #reset-password-form-wrapper #reset-password-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#reset-password #reset-password-form-wrapper #reset-password-form .title{font-size:17px;margin:16px 0 32px 0}#reset-password #reset-password-form-wrapper #reset-password-form .logo_login{max-height:200px}#reset-password #reset-password-form-wrapper #reset-password-form form{width:100%;text-align:left}#reset-password #reset-password-form-wrapper #reset-password-form form .submit-button{width:220px;margin:16px auto;display:block}#reset-password #reset-password-form-wrapper #reset-password-form .login{margin:32px auto 24px auto;width:250px;font-weight:500}#reset-password #reset-password-form-wrapper #reset-password-form .login .text{margin-right:8px}@media screen and (max-width:600px){#reset-password #reset-password-form-wrapper{padding:16px}#reset-password #reset-password-form-wrapper #reset-password-form{padding:24px;width:100%}#reset-password #reset-password-form-wrapper #reset-password-form form .md-button{width:90%}}md-dialog.preview-dialog{max-width:1020px;width:1020px}md-dialog.preview-dialog md-dialog-content{display:block;position:relative;padding:0}md-dialog.preview-dialog md-toolbar .title{font-size:17px}md-dialog.preview-dialog md-input-container textarea{min-height:150px}md-dialog.preview-dialog md-input-container .hint{font-size:10px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-dialog.preview-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.preview-dialog .date-container{padding:16px 0 24px 0}md-dialog.preview-dialog .error-list{font-size:13px}md-dialog.preview-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.preview-dialog .error-list .error .message{font-weight:500}md-dialog.preview-dialog .error-list .error .md-button{margin:0}md-dialog.preview-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.preview-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px;margin-left:10px;margin-right:8px}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar #quick-panel-toggle .unread-message-count{position:absolute;top:8px;left:38px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}.open-contact-count{position:absolute;top:1px;left:25px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:10px}.md-button.preview-button{min-width:46px;min-height:50px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e2a=['STRING','contactManager','motionbar','jscripty','urlForward','browser','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]','contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[timeout],\x20browser[windowWidth],\x20contactManager[ignoreDialerContactId]','urlForward[headers],\x20browser[wsindowHeight]','TEXT','sequelize','exports','VIRTUAL','getDataValue','action'];(function(_0x52b661,_0x52adfe){var _0x2aa3a9=function(_0x5b3b36){while(--_0x5b3b36){_0x52b661['push'](_0x52b661['shift']());}};_0x2aa3a9(++_0x52adfe);}(_0x1e2a,0x1c7));var _0xa1e2=function(_0x4ad0b8,_0x7afe72){_0x4ad0b8=_0x4ad0b8-0x0;var _0x5825bc=_0x1e2a[_0x4ad0b8];return _0x5825bc;};'use strict';var Sequelize=require(_0xa1e2('0x0'));module[_0xa1e2('0x1')]={'name':{'type':Sequelize[_0xa1e2('0x2')],'get':function(_0x5ba1ba){return this[_0xa1e2('0x3')](_0xa1e2('0x4'));}},'action':{'type':Sequelize[_0xa1e2('0x5')],'allowNull':![],'validate':{'isIn':{'args':[[_0xa1e2('0x6'),'integration',_0xa1e2('0x7'),_0xa1e2('0x8'),_0xa1e2('0x9'),_0xa1e2('0xa'),_0xa1e2('0xb'),'script']],'msg':_0xa1e2('0xc')}},'comment':_0xa1e2('0xc')},'data1':{'type':Sequelize[_0xa1e2('0x5')](0x1000),'comment':_0xa1e2('0xd')},'data2':{'type':Sequelize[_0xa1e2('0x5')](0x1000),'comment':_0xa1e2('0xe')},'data3':{'type':Sequelize['STRING'](0x1000),'comment':_0xa1e2('0xf')},'data4':{'type':Sequelize[_0xa1e2('0x5')](0x1000),'comments':_0xa1e2('0x10')},'data5':{'type':Sequelize['STRING'](0x1000),'comments':_0xa1e2('0x11')},'data6':{'type':Sequelize[_0xa1e2('0x5')],'comments':_0xa1e2('0x12')},'data7':{'type':Sequelize[_0xa1e2('0x13')],'comments':'urlForward[body]'}};
\ No newline at end of file
+var _0x59f0=['integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20urlForward[URL]','motionbar[NULL,NULL,WinAppArguments]','TEXT','sequelize','VIRTUAL','getDataValue','action','STRING','integration','motionbar','jscripty','browser','bot','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','contactManager[ListId],\x20integration[intName(zendesk)],\x20motionbar[Popup(0),URL(1),WinApp(2)],\x20urlForward[GET,POST],\x20browser[TemplateId(0),URL(1)]'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x59f0,0x1b6));var _0x059f=function(_0x23f98b,_0x400e94){_0x23f98b=_0x23f98b-0x0;var _0x30c237=_0x59f0[_0x23f98b];return _0x30c237;};'use strict';var Sequelize=require(_0x059f('0x0'));module['exports']={'name':{'type':Sequelize[_0x059f('0x1')],'get':function(_0x5c873b){return this[_0x059f('0x2')](_0x059f('0x3'));}},'action':{'type':Sequelize[_0x059f('0x4')],'allowNull':![],'validate':{'isIn':{'args':[['contactManager',_0x059f('0x5'),_0x059f('0x6'),_0x059f('0x7'),'urlForward',_0x059f('0x8'),_0x059f('0x9'),'script']],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'}},'comment':_0x059f('0xa')},'data1':{'type':Sequelize['STRING'](0x1000),'comment':_0x059f('0xb')},'data2':{'type':Sequelize[_0x059f('0x4')](0x1000),'comment':_0x059f('0xc')},'data3':{'type':Sequelize['STRING'](0x1000),'comment':_0x059f('0xd')},'data4':{'type':Sequelize[_0x059f('0x4')](0x1000)},'data5':{'type':Sequelize[_0x059f('0x4')](0x1000)},'data6':{'type':Sequelize[_0x059f('0x4')]},'data7':{'type':Sequelize[_0x059f('0xe')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb6b=['lodash','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','destroy','then','end','error','name','send','body','Action','params','find','catch','rimraf','fast-json-patch','moment','mustache','util','path','sox'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xcb6b,0x18e));var _0xbcb6=function(_0x54ecb2,_0x2a3a39){_0x54ecb2=_0x54ecb2-0x0;var _0x25f8f4=_0xcb6b[_0x54ecb2];return _0x25f8f4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbcb6('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbcb6('0x1'));var rp=require('request-promise');var moment=require(_0xbcb6('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xbcb6('0x3'));var util=require(_0xbcb6('0x4'));var path=require(_0xbcb6('0x5'));var sox=require(_0xbcb6('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbcb6('0x7'));var squel=require(_0xbcb6('0x8'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xbcb6('0x9'));var toCsv=require(_0xbcb6('0xa'));var querystring=require(_0xbcb6('0xb'));var Papa=require(_0xbcb6('0xc'));var Redis=require(_0xbcb6('0xd'));var authService=require(_0xbcb6('0xe'));var qs=require(_0xbcb6('0xf'));var as=require(_0xbcb6('0x10'));var hardwareService=require(_0xbcb6('0x11'));var logger=require(_0xbcb6('0x12'))(_0xbcb6('0x13'));var utils=require(_0xbcb6('0x14'));var config=require(_0xbcb6('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xbcb6('0x16'))['db'];function respondWithStatusCode(_0x3f369d,_0x4285b0){_0x4285b0=_0x4285b0||0xcc;return function(_0xbf68f8){if(_0xbf68f8){return _0x3f369d[_0xbcb6('0x17')](_0x4285b0);}return _0x3f369d[_0xbcb6('0x18')](_0x4285b0)['end']();};}function respondWithResult(_0x1c22ab,_0x120c03){_0x120c03=_0x120c03||0xc8;return function(_0x434f79){if(_0x434f79){return _0x1c22ab[_0xbcb6('0x18')](_0x120c03)[_0xbcb6('0x19')](_0x434f79);}};}function respondWithFilteredResult(_0x585d87,_0x5d7e7f){return function(_0x100316){if(_0x100316){var _0x1101da=typeof _0x5d7e7f[_0xbcb6('0x1a')]===_0xbcb6('0x1b')&&typeof _0x5d7e7f[_0xbcb6('0x1c')]==='undefined';var _0x1045c7=_0x100316[_0xbcb6('0x1d')];var _0x34558f=_0x1101da?0x0:_0x5d7e7f[_0xbcb6('0x1a')];var _0x3193b7=_0x1101da?_0x100316[_0xbcb6('0x1d')]:_0x5d7e7f[_0xbcb6('0x1a')]+_0x5d7e7f['limit'];var _0x19d250;if(_0x3193b7>=_0x1045c7){_0x3193b7=_0x1045c7;_0x19d250=0xc8;}else{_0x19d250=0xce;}_0x585d87[_0xbcb6('0x18')](_0x19d250);return _0x585d87[_0xbcb6('0x1e')](_0xbcb6('0x1f'),_0x34558f+'-'+_0x3193b7+'/'+_0x1045c7)['json'](_0x100316);}return null;};}function patchUpdates(_0x593c9e){return function(_0x100064){try{jsonpatch[_0xbcb6('0x20')](_0x100064,_0x593c9e,!![]);}catch(_0x359301){return BPromise['reject'](_0x359301);}return _0x100064['save']();};}function saveUpdates(_0x3f541e,_0x1de300){return function(_0x3420c7){if(_0x3420c7){return _0x3420c7[_0xbcb6('0x21')](_0x3f541e)['then'](function(_0x23d093){return _0x23d093;});}return null;};}function removeEntity(_0x2ec65c,_0x1fb7aa){return function(_0x1502b0){if(_0x1502b0){return _0x1502b0[_0xbcb6('0x22')]()[_0xbcb6('0x23')](function(){_0x2ec65c['status'](0xcc)[_0xbcb6('0x24')]();});}};}function handleEntityNotFound(_0x1cc943,_0x1d1fda){return function(_0x3e6574){if(!_0x3e6574){_0x1cc943[_0xbcb6('0x17')](0x194);}return _0x3e6574;};}function handleError(_0x4c3d15,_0x514d5b){_0x514d5b=_0x514d5b||0x1f4;return function(_0x425568){logger[_0xbcb6('0x25')](_0x425568['stack']);if(_0x425568['name']){delete _0x425568[_0xbcb6('0x26')];}_0x4c3d15[_0xbcb6('0x18')](_0x514d5b)[_0xbcb6('0x27')](_0x425568);};}exports['update']=function(_0x2ff05d,_0x354a5f){if(_0x2ff05d['body']['id']){delete _0x2ff05d[_0xbcb6('0x28')]['id'];}return db[_0xbcb6('0x29')]['find']({'where':{'id':_0x2ff05d[_0xbcb6('0x2a')]['id']}})[_0xbcb6('0x23')](handleEntityNotFound(_0x354a5f,null))['then'](saveUpdates(_0x2ff05d[_0xbcb6('0x28')],null))['then'](respondWithResult(_0x354a5f,null))['catch'](handleError(_0x354a5f,null));};exports[_0xbcb6('0x22')]=function(_0x51b71a,_0x4321a0){return db['Action'][_0xbcb6('0x2b')]({'where':{'id':_0x51b71a[_0xbcb6('0x2a')]['id']}})[_0xbcb6('0x23')](handleEntityNotFound(_0x4321a0,null))[_0xbcb6('0x23')](removeEntity(_0x4321a0,null))[_0xbcb6('0x2c')](handleError(_0x4321a0,null));};
\ No newline at end of file
+var _0x9946=['Content-Range','apply','save','update','then','error','stack','name','send','body','find','params','catch','destroy','Action','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','set'];(function(_0x81dcac,_0x8ff7db){var _0xc7803b=function(_0x499b29){while(--_0x499b29){_0x81dcac['push'](_0x81dcac['shift']());}};_0xc7803b(++_0x8ff7db);}(_0x9946,0xa5));var _0x6994=function(_0x4a4286,_0x5f0205){_0x4a4286=_0x4a4286-0x0;var _0x4c2507=_0x9946[_0x4a4286];return _0x4c2507;};'use strict';var emlformat=require(_0x6994('0x0'));var rimraf=require(_0x6994('0x1'));var zipdir=require(_0x6994('0x2'));var jsonpatch=require(_0x6994('0x3'));var rp=require(_0x6994('0x4'));var moment=require(_0x6994('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6994('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x6994('0x7'));var ejs=require(_0x6994('0x8'));var fs=require('fs');var fs_extra=require(_0x6994('0x9'));var _=require(_0x6994('0xa'));var squel=require(_0x6994('0xb'));var crypto=require(_0x6994('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x6994('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6994('0xe'));var Papa=require(_0x6994('0xf'));var Redis=require(_0x6994('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x6994('0x11'));var as=require(_0x6994('0x12'));var hardwareService=require(_0x6994('0x13'));var logger=require(_0x6994('0x14'))(_0x6994('0x15'));var utils=require(_0x6994('0x16'));var config=require(_0x6994('0x17'));var licenseUtil=require(_0x6994('0x18'));var db=require(_0x6994('0x19'))['db'];function respondWithStatusCode(_0x4a20a6,_0x413415){_0x413415=_0x413415||0xcc;return function(_0x16bf8b){if(_0x16bf8b){return _0x4a20a6[_0x6994('0x1a')](_0x413415);}return _0x4a20a6[_0x6994('0x1b')](_0x413415)[_0x6994('0x1c')]();};}function respondWithResult(_0x38b0cf,_0x31d627){_0x31d627=_0x31d627||0xc8;return function(_0xdb3e29){if(_0xdb3e29){return _0x38b0cf[_0x6994('0x1b')](_0x31d627)[_0x6994('0x1d')](_0xdb3e29);}};}function respondWithFilteredResult(_0x3aa18b,_0x6a5147){return function(_0x30c1be){if(_0x30c1be){var _0x2bdbb2=typeof _0x6a5147['offset']==='undefined'&&typeof _0x6a5147['limit']===_0x6994('0x1e');var _0x48d9fd=_0x30c1be['count'];var _0x577fc8=_0x2bdbb2?0x0:_0x6a5147['offset'];var _0x1bae79=_0x2bdbb2?_0x30c1be[_0x6994('0x1f')]:_0x6a5147[_0x6994('0x20')]+_0x6a5147[_0x6994('0x21')];var _0x276e05;if(_0x1bae79>=_0x48d9fd){_0x1bae79=_0x48d9fd;_0x276e05=0xc8;}else{_0x276e05=0xce;}_0x3aa18b[_0x6994('0x1b')](_0x276e05);return _0x3aa18b[_0x6994('0x22')](_0x6994('0x23'),_0x577fc8+'-'+_0x1bae79+'/'+_0x48d9fd)['json'](_0x30c1be);}return null;};}function patchUpdates(_0x242abd){return function(_0x16abd3){try{jsonpatch[_0x6994('0x24')](_0x16abd3,_0x242abd,!![]);}catch(_0x1bf777){return BPromise['reject'](_0x1bf777);}return _0x16abd3[_0x6994('0x25')]();};}function saveUpdates(_0x5b89b1,_0x4bf571){return function(_0x585a0c){if(_0x585a0c){return _0x585a0c[_0x6994('0x26')](_0x5b89b1)[_0x6994('0x27')](function(_0x147edd){return _0x147edd;});}return null;};}function removeEntity(_0x4f9fc4,_0x1815fd){return function(_0x5aef1b){if(_0x5aef1b){return _0x5aef1b['destroy']()[_0x6994('0x27')](function(){_0x4f9fc4['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x150dda,_0x688023){return function(_0x49557f){if(!_0x49557f){_0x150dda[_0x6994('0x1a')](0x194);}return _0x49557f;};}function handleError(_0x5b6b55,_0x4b9c77){_0x4b9c77=_0x4b9c77||0x1f4;return function(_0x46e74b){logger[_0x6994('0x28')](_0x46e74b[_0x6994('0x29')]);if(_0x46e74b[_0x6994('0x2a')]){delete _0x46e74b['name'];}_0x5b6b55['status'](_0x4b9c77)[_0x6994('0x2b')](_0x46e74b);};}exports['update']=function(_0x5aa869,_0x33c814){if(_0x5aa869[_0x6994('0x2c')]['id']){delete _0x5aa869[_0x6994('0x2c')]['id'];}return db['Action'][_0x6994('0x2d')]({'where':{'id':_0x5aa869[_0x6994('0x2e')]['id']}})['then'](handleEntityNotFound(_0x33c814,null))[_0x6994('0x27')](saveUpdates(_0x5aa869['body'],null))[_0x6994('0x27')](respondWithResult(_0x33c814,null))[_0x6994('0x2f')](handleError(_0x33c814,null));};exports[_0x6994('0x30')]=function(_0x362571,_0x26e2d9){return db[_0x6994('0x31')]['find']({'where':{'id':_0x362571['params']['id']}})[_0x6994('0x27')](handleEntityNotFound(_0x26e2d9,null))[_0x6994('0x27')](removeEntity(_0x26e2d9,null))[_0x6994('0x2f')](handleError(_0x26e2d9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a36=['moment','bluebird','request-promise','path','define','Action','lodash','util'];(function(_0x58b1fe,_0x14831e){var _0x552550=function(_0x491ad6){while(--_0x491ad6){_0x58b1fe['push'](_0x58b1fe['shift']());}};_0x552550(++_0x14831e);}(_0x9a36,0xee));var _0x69a3=function(_0x35662b,_0x5ba9f2){_0x35662b=_0x35662b-0x0;var _0x1597ab=_0x9a36[_0x35662b];return _0x1597ab;};'use strict';var _=require(_0x69a3('0x0'));var util=require(_0x69a3('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x69a3('0x2'));var BPromise=require(_0x69a3('0x3'));var rp=require(_0x69a3('0x4'));var fs=require('fs');var path=require(_0x69a3('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./action.attributes');module['exports']=function(_0x4517f5,_0x97b1e2){return _0x4517f5[_0x69a3('0x6')](_0x69a3('0x7'),attributes,{'tableName':'tools_actions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe547=['../../config/environment','./action.attributes','exports','define','tools_actions','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x2cbc11,_0x1a7b8d){var _0x1a1c09=function(_0x3a185a){while(--_0x3a185a){_0x2cbc11['push'](_0x2cbc11['shift']());}};_0x1a1c09(++_0x1a7b8d);}(_0xe547,0x191));var _0x7e54=function(_0x23951d,_0x43c81f){_0x23951d=_0x23951d-0x0;var _0x2b4322=_0xe547[_0x23951d];return _0x2b4322;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x7e54('0x0'))(_0x7e54('0x1'));var moment=require(_0x7e54('0x2'));var BPromise=require(_0x7e54('0x3'));var rp=require(_0x7e54('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7e54('0x5'));var config=require(_0x7e54('0x6'));var attributes=require(_0x7e54('0x7'));module[_0x7e54('0x8')]=function(_0x3f4b73,_0x3c99e0){return _0x3f4b73[_0x7e54('0x9')]('Action',attributes,{'tableName':_0x7e54('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['../../config/environment','jayson/promise','client','http','then','info','Action,\x20%s,\x20%s','Action,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','lodash','util','randomstring','ioredis','../../config/utils'];(function(_0x112f3c,_0xd18ff2){var _0x3b0fc3=function(_0x1db4fd){while(--_0x1db4fd){_0x112f3c['push'](_0x112f3c['shift']());}};_0x3b0fc3(++_0xd18ff2);}(_0xe14b,0x93));var _0xbe14=function(_0x30737a,_0x8e39a9){_0x30737a=_0x30737a-0x0;var _0x3a46e3=_0xe14b[_0x30737a];return _0x3a46e3;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xbe14('0x2'));var fs=require('fs');var Redis=require(_0xbe14('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xbe14('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xbe14('0x5'));var jayson=require(_0xbe14('0x6'));var client=jayson[_0xbe14('0x7')][_0xbe14('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1d9ade,_0x39387e,_0x196fca){return new BPromise(function(_0x566ae7,_0x50f909){return client['request'](_0x1d9ade,_0x196fca)[_0xbe14('0x9')](function(_0x6fceff){logger[_0xbe14('0xa')](_0xbe14('0xb'),_0x39387e,'request\x20sent');logger['debug'](_0xbe14('0xc'),_0x39387e,_0xbe14('0xd'),JSON['stringify'](_0x6fceff));if(_0x6fceff[_0xbe14('0xe')]){if(_0x6fceff[_0xbe14('0xe')][_0xbe14('0xf')]===0x1f4){logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);return _0x50f909(_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);}logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);return _0x566ae7(_0x6fceff['error']['message']);}else{logger[_0xbe14('0xa')](_0xbe14('0xb'),_0x39387e,_0xbe14('0xd'));_0x566ae7(_0x6fceff[_0xbe14('0x11')]['message']);}})[_0xbe14('0x12')](function(_0xe9c3ec){logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0xe9c3ec);_0x50f909(_0xe9c3ec);});});}
\ No newline at end of file
+var _0x326f=['info','Action,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x1cec87,_0xa58891){var _0x5aab9e=function(_0xc78092){while(--_0xc78092){_0x1cec87['push'](_0x1cec87['shift']());}};_0x5aab9e(++_0xa58891);}(_0x326f,0xd1));var _0xf326=function(_0x5567c9,_0x526d0d){_0x5567c9=_0x5567c9-0x0;var _0x63fc5=_0x326f[_0x5567c9];return _0x63fc5;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xf326('0x1'));var rs=require(_0xf326('0x2'));var fs=require('fs');var Redis=require(_0xf326('0x3'));var db=require(_0xf326('0x4'))['db'];var utils=require(_0xf326('0x5'));var logger=require(_0xf326('0x6'))(_0xf326('0x7'));var config=require(_0xf326('0x8'));var jayson=require(_0xf326('0x9'));var client=jayson[_0xf326('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3c254d,_0x3851eb,_0x165f95){return new BPromise(function(_0x1e7b8a,_0x515bfa){return client['request'](_0x3c254d,_0x165f95)['then'](function(_0x3bacf2){logger[_0xf326('0xb')](_0xf326('0xc'),_0x3851eb,_0xf326('0xd'));logger[_0xf326('0xe')]('Action,\x20%s,\x20%s,\x20%s',_0x3851eb,_0xf326('0xd'),JSON['stringify'](_0x3bacf2));if(_0x3bacf2[_0xf326('0xf')]){if(_0x3bacf2['error'][_0xf326('0x10')]===0x1f4){logger['error'](_0xf326('0xc'),_0x3851eb,_0x3bacf2[_0xf326('0xf')]['message']);return _0x515bfa(_0x3bacf2[_0xf326('0xf')][_0xf326('0x11')]);}logger[_0xf326('0xf')](_0xf326('0xc'),_0x3851eb,_0x3bacf2['error'][_0xf326('0x11')]);return _0x1e7b8a(_0x3bacf2['error']['message']);}else{logger[_0xf326('0xb')](_0xf326('0xc'),_0x3851eb,_0xf326('0xd'));_0x1e7b8a(_0x3bacf2[_0xf326('0x12')][_0xf326('0x11')]);}})[_0xf326('0x13')](function(_0x34128e){logger[_0xf326('0xf')]('Action,\x20%s,\x20%s',_0x3851eb,_0x34128e);_0x515bfa(_0x34128e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cf2=['exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./action.controller','put','/:id','isAuthenticated','update','destroy'];(function(_0x417c14,_0x5d2f9a){var _0x380d93=function(_0x331ecb){while(--_0x331ecb){_0x417c14['push'](_0x417c14['shift']());}};_0x380d93(++_0x5d2f9a);}(_0x2cf2,0x10f));var _0x22cf=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x2cf2[_0x6c993a];return _0x27f547;};'use strict';var multer=require(_0x22cf('0x0'));var util=require(_0x22cf('0x1'));var path=require(_0x22cf('0x2'));var timeout=require(_0x22cf('0x3'));var express=require(_0x22cf('0x4'));var router=express[_0x22cf('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x22cf('0x6'));var interaction=require(_0x22cf('0x7'));var config=require('../../config/environment');var controller=require(_0x22cf('0x8'));router[_0x22cf('0x9')](_0x22cf('0xa'),auth[_0x22cf('0xb')](),controller[_0x22cf('0xc')]);router['delete'](_0x22cf('0xa'),auth[_0x22cf('0xb')](),controller[_0x22cf('0xd')]);module[_0x22cf('0xe')]=router;
\ No newline at end of file
+var _0x297b=['../../config/environment','put','/:id','isAuthenticated','update','delete','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x7e2eb0,_0x17cd58){var _0xd92de4=function(_0x5d005b){while(--_0x5d005b){_0x7e2eb0['push'](_0x7e2eb0['shift']());}};_0xd92de4(++_0x17cd58);}(_0x297b,0x170));var _0xb297=function(_0x119d5a,_0x19b457){_0x119d5a=_0x119d5a-0x0;var _0x15bff4=_0x297b[_0x119d5a];return _0x15bff4;};'use strict';var multer=require(_0xb297('0x0'));var util=require(_0xb297('0x1'));var path=require(_0xb297('0x2'));var timeout=require('connect-timeout');var express=require(_0xb297('0x3'));var router=express['Router']();var fs_extra=require(_0xb297('0x4'));var auth=require(_0xb297('0x5'));var interaction=require(_0xb297('0x6'));var config=require(_0xb297('0x7'));var controller=require('./action.controller');router[_0xb297('0x8')](_0xb297('0x9'),auth[_0xb297('0xa')](),controller[_0xb297('0xb')]);router[_0xb297('0xc')]('/:id',auth[_0xb297('0xa')](),controller[_0xb297('0xd')]);module[_0xb297('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeec6=['STRING','TEXT','sequelize','exports'];(function(_0x2023d4,_0x55e074){var _0x11035d=function(_0x3e1434){while(--_0x3e1434){_0x2023d4['push'](_0x2023d4['shift']());}};_0x11035d(++_0x55e074);}(_0xeec6,0x1c2));var _0x6eec=function(_0x2efe86,_0x4b6c3f){_0x2efe86=_0x2efe86-0x0;var _0x48e01c=_0xeec6[_0x2efe86];return _0x48e01c;};'use strict';var Sequelize=require(_0x6eec('0x0'));module[_0x6eec('0x1')]={'name':{'type':Sequelize[_0x6eec('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x6eec('0x2')]},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize[_0x6eec('0x2')]},'conditions':{'type':Sequelize[_0x6eec('0x3')]},'joins':{'type':Sequelize[_0x6eec('0x3')]}};
\ No newline at end of file
+var _0x5fc3=['sequelize','exports','STRING','TEXT'];(function(_0x240cc1,_0xaf102){var _0x2eada0=function(_0x51a003){while(--_0x51a003){_0x240cc1['push'](_0x240cc1['shift']());}};_0x2eada0(++_0xaf102);}(_0x5fc3,0xa8));var _0x35fc=function(_0x377a6e,_0x59b99d){_0x377a6e=_0x377a6e-0x0;var _0x37f751=_0x5fc3[_0x377a6e];return _0x37f751;};'use strict';var Sequelize=require(_0x35fc('0x0'));module[_0x35fc('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0x35fc('0x2')]},'parent':{'type':Sequelize[_0x35fc('0x2')]},'table':{'type':Sequelize[_0x35fc('0x2')]},'conditions':{'type':Sequelize[_0x35fc('0x3')]},'joins':{'type':Sequelize[_0x35fc('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4215=['filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','Reports','UserProfileSection','userProfileId','autoAssociation','CustomReports','preview','join','left_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','from','table','MetricId','function','replace','format','groupBy','orderBy','alias','joins','parse','parentKey','foreignTable','foreignKey','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','right_join','SUM(%s)','HOUR(%s)','ROUND(%s)','IS\x20EMPTY','operator','getFields','metric','DESC','web','fullPath','%s-%s.%s','randomstring','output','csv','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','child_process','../../components/export/','../../files/reports','savename','select','COUNT(*)','SELECT','run','runReport','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','UNIX_TIMESTAMP(%s)','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','dbH','sendStatus','status','end','offset','undefined','limit','count','set','json','reject','save','update','then','UserProfileResource','destroy','error','stack','name','send','map','AnalyticCustomReport','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick'];(function(_0x42718c,_0x5e5992){var _0x5e6787=function(_0x29a5b6){while(--_0x29a5b6){_0x42718c['push'](_0x42718c['shift']());}};_0x5e6787(++_0x5e5992);}(_0x4215,0x1b0));var _0x5421=function(_0x2f3c7e,_0x1f7506){_0x2f3c7e=_0x2f3c7e-0x0;var _0x505c8b=_0x4215[_0x2f3c7e];return _0x505c8b;};'use strict';var emlformat=require(_0x5421('0x0'));var rimraf=require(_0x5421('0x1'));var zipdir=require(_0x5421('0x2'));var jsonpatch=require(_0x5421('0x3'));var rp=require(_0x5421('0x4'));var moment=require(_0x5421('0x5'));var BPromise=require(_0x5421('0x6'));var Mustache=require('mustache');var util=require(_0x5421('0x7'));var path=require(_0x5421('0x8'));var sox=require(_0x5421('0x9'));var csv=require(_0x5421('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5421('0xb'));var _=require(_0x5421('0xc'));var squel=require(_0x5421('0xd'));var crypto=require(_0x5421('0xe'));var jsforce=require(_0x5421('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x5421('0xa'));var querystring=require('querystring');var Papa=require(_0x5421('0x10'));var Redis=require(_0x5421('0x11'));var authService=require(_0x5421('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5421('0x13'));var hardwareService=require(_0x5421('0x14'));var logger=require(_0x5421('0x15'))(_0x5421('0x16'));var utils=require(_0x5421('0x17'));var config=require(_0x5421('0x18'));var licenseUtil=require(_0x5421('0x19'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0x5421('0x1a')];function respondWithStatusCode(_0xdd84f8,_0x5198db){_0x5198db=_0x5198db||0xcc;return function(_0x3c097b){if(_0x3c097b){return _0xdd84f8[_0x5421('0x1b')](_0x5198db);}return _0xdd84f8[_0x5421('0x1c')](_0x5198db)[_0x5421('0x1d')]();};}function respondWithResult(_0x495a51,_0x4ff5de){_0x4ff5de=_0x4ff5de||0xc8;return function(_0x190fcd){if(_0x190fcd){return _0x495a51[_0x5421('0x1c')](_0x4ff5de)['json'](_0x190fcd);}};}function respondWithFilteredResult(_0x51f99b,_0x5a6471){return function(_0x5d40f6){if(_0x5d40f6){var _0x40710d=typeof _0x5a6471[_0x5421('0x1e')]===_0x5421('0x1f')&&typeof _0x5a6471[_0x5421('0x20')]===_0x5421('0x1f');var _0x19eae6=_0x5d40f6[_0x5421('0x21')];var _0x16a992=_0x40710d?0x0:_0x5a6471[_0x5421('0x1e')];var _0x299a28=_0x40710d?_0x5d40f6['count']:_0x5a6471[_0x5421('0x1e')]+_0x5a6471[_0x5421('0x20')];var _0x1cbb21;if(_0x299a28>=_0x19eae6){_0x299a28=_0x19eae6;_0x1cbb21=0xc8;}else{_0x1cbb21=0xce;}_0x51f99b[_0x5421('0x1c')](_0x1cbb21);return _0x51f99b[_0x5421('0x22')]('Content-Range',_0x16a992+'-'+_0x299a28+'/'+_0x19eae6)[_0x5421('0x23')](_0x5d40f6);}return null;};}function patchUpdates(_0x394ea9){return function(_0x501896){try{jsonpatch['apply'](_0x501896,_0x394ea9,!![]);}catch(_0xa373c5){return BPromise[_0x5421('0x24')](_0xa373c5);}return _0x501896[_0x5421('0x25')]();};}function saveUpdates(_0x2c29d0,_0x5b0cb4){return function(_0x479aeb){if(_0x479aeb){return _0x479aeb[_0x5421('0x26')](_0x2c29d0)['then'](function(_0x580201){return _0x580201;});}return null;};}function removeEntity(_0x3befd0,_0x524e0f){return function(_0x304475){if(_0x304475){return _0x304475['destroy']()[_0x5421('0x27')](function(){var _0x599c50=_0x304475['get']({'plain':!![]});var _0xd7f49e='CustomReports';return db[_0x5421('0x28')][_0x5421('0x29')]({'where':{'type':_0xd7f49e,'resourceId':_0x599c50['id']}})['then'](function(){return _0x304475;});})[_0x5421('0x27')](function(){_0x3befd0[_0x5421('0x1c')](0xcc)[_0x5421('0x1d')]();});}};}function handleEntityNotFound(_0x2bb86e,_0x2092d4){return function(_0x2b6fd8){if(!_0x2b6fd8){_0x2bb86e[_0x5421('0x1b')](0x194);}return _0x2b6fd8;};}function handleError(_0x17a4d8,_0x46f502){_0x46f502=_0x46f502||0x1f4;return function(_0x380f40){logger[_0x5421('0x2a')](_0x380f40[_0x5421('0x2b')]);if(_0x380f40[_0x5421('0x2c')]){delete _0x380f40[_0x5421('0x2c')];}_0x17a4d8[_0x5421('0x1c')](_0x46f502)[_0x5421('0x2d')](_0x380f40);};}exports['index']=function(_0x8cc29b,_0x1c22c0){var _0x456429={},_0x3ce8e9={},_0x5932e5={'count':0x0,'rows':[]};var _0x1b5f55=_[_0x5421('0x2e')](db[_0x5421('0x2f')][_0x5421('0x30')],function(_0x46d90b){return{'name':_0x46d90b['fieldName'],'type':_0x46d90b[_0x5421('0x31')][_0x5421('0x32')]};});_0x3ce8e9[_0x5421('0x33')]=_[_0x5421('0x2e')](_0x1b5f55,'name');_0x3ce8e9[_0x5421('0x34')]=_[_0x5421('0x35')](_0x8cc29b[_0x5421('0x34')]);_0x3ce8e9[_0x5421('0x36')]=_[_0x5421('0x37')](_0x3ce8e9[_0x5421('0x33')],_0x3ce8e9[_0x5421('0x34')]);_0x456429[_0x5421('0x38')]=_[_0x5421('0x37')](_0x3ce8e9[_0x5421('0x33')],qs[_0x5421('0x39')](_0x8cc29b['query']['fields']));_0x456429[_0x5421('0x38')]=_0x456429[_0x5421('0x38')][_0x5421('0x3a')]?_0x456429[_0x5421('0x38')]:_0x3ce8e9[_0x5421('0x33')];if(!_0x8cc29b[_0x5421('0x34')]['hasOwnProperty']('nolimit')){_0x456429[_0x5421('0x20')]=qs['limit'](_0x8cc29b[_0x5421('0x34')]['limit']);_0x456429['offset']=qs[_0x5421('0x1e')](_0x8cc29b[_0x5421('0x34')][_0x5421('0x1e')]);}_0x456429[_0x5421('0x3b')]=qs[_0x5421('0x3c')](_0x8cc29b[_0x5421('0x34')][_0x5421('0x3c')]);_0x456429[_0x5421('0x3d')]=qs[_0x5421('0x36')](_[_0x5421('0x3e')](_0x8cc29b['query'],_0x3ce8e9[_0x5421('0x36')]),_0x1b5f55);if(_0x8cc29b[_0x5421('0x34')][_0x5421('0x3f')]){_0x456429['where']=_[_0x5421('0x40')](_0x456429['where'],{'$or':_[_0x5421('0x2e')](_0x1b5f55,function(_0x1d157a){if(_0x1d157a[_0x5421('0x31')]!==_0x5421('0x41')){var _0x28ef7b={};_0x28ef7b[_0x1d157a[_0x5421('0x2c')]]={'$like':'%'+_0x8cc29b[_0x5421('0x34')][_0x5421('0x3f')]+'%'};return _0x28ef7b;}})});}_0x456429=_[_0x5421('0x40')]({},_0x456429,_0x8cc29b[_0x5421('0x42')]);var _0x4454e9={'where':_0x456429[_0x5421('0x3d')]};return db['AnalyticCustomReport'][_0x5421('0x21')](_0x4454e9)[_0x5421('0x27')](function(_0x209399){_0x5932e5[_0x5421('0x21')]=_0x209399;if(_0x8cc29b['query'][_0x5421('0x43')]){_0x456429[_0x5421('0x44')]=[{'all':!![]}];}return db[_0x5421('0x2f')]['findAll'](_0x456429);})[_0x5421('0x27')](function(_0x3cfaff){_0x5932e5[_0x5421('0x45')]=_0x3cfaff;return _0x5932e5;})[_0x5421('0x27')](respondWithFilteredResult(_0x1c22c0,_0x456429))[_0x5421('0x46')](handleError(_0x1c22c0,null));};exports[_0x5421('0x47')]=function(_0x395500,_0x412915){var _0x47f195={'raw':![],'where':{'id':_0x395500[_0x5421('0x48')]['id']}},_0x2a000e={};_0x2a000e[_0x5421('0x33')]=_[_0x5421('0x35')](db['AnalyticCustomReport'][_0x5421('0x30')]);_0x2a000e[_0x5421('0x34')]=_[_0x5421('0x35')](_0x395500[_0x5421('0x34')]);_0x2a000e[_0x5421('0x36')]=_['intersection'](_0x2a000e['model'],_0x2a000e[_0x5421('0x34')]);_0x47f195[_0x5421('0x38')]=_[_0x5421('0x37')](_0x2a000e[_0x5421('0x33')],qs['fields'](_0x395500[_0x5421('0x34')][_0x5421('0x39')]));_0x47f195[_0x5421('0x38')]=_0x47f195[_0x5421('0x38')][_0x5421('0x3a')]?_0x47f195[_0x5421('0x38')]:_0x2a000e['model'];if(_0x395500[_0x5421('0x34')][_0x5421('0x43')]){_0x47f195[_0x5421('0x44')]=[{'all':!![]}];}_0x47f195=_[_0x5421('0x40')]({},_0x47f195,_0x395500['options']);return db['AnalyticCustomReport'][_0x5421('0x49')](_0x47f195)[_0x5421('0x27')](handleEntityNotFound(_0x412915,null))[_0x5421('0x27')](respondWithResult(_0x412915,null))[_0x5421('0x46')](handleError(_0x412915,null));};exports[_0x5421('0x4a')]=function(_0x52b08c,_0x28d437){return db[_0x5421('0x2f')][_0x5421('0x4a')](_0x52b08c[_0x5421('0x4b')],{})[_0x5421('0x27')](function(_0x361470){var _0x432b23=_0x52b08c[_0x5421('0x4c')]['get']({'plain':!![]});if(!_0x432b23)throw new Error(_0x5421('0x4d'));if(_0x432b23[_0x5421('0x4e')]===_0x5421('0x4c')){var _0x484270=_0x361470[_0x5421('0x4f')]({'plain':!![]});var _0x48d3d8=_0x5421('0x50');return db[_0x5421('0x51')][_0x5421('0x49')]({'where':{'name':_0x48d3d8,'userProfileId':_0x432b23[_0x5421('0x52')]},'raw':!![]})['then'](function(_0x408e9e){if(_0x408e9e&&_0x408e9e[_0x5421('0x53')]===0x0){return db[_0x5421('0x28')][_0x5421('0x4a')]({'name':_0x484270['name'],'resourceId':_0x484270['id'],'type':_0x5421('0x54'),'sectionId':_0x408e9e['id']},{})[_0x5421('0x27')](function(){return _0x361470;});}else{return _0x361470;}})[_0x5421('0x46')](function(_0x4bc448){logger[_0x5421('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4bc448);throw _0x4bc448;});}return _0x361470;})[_0x5421('0x27')](respondWithResult(_0x28d437,0xc9))[_0x5421('0x46')](handleError(_0x28d437,null));};exports[_0x5421('0x26')]=function(_0x52bb17,_0x478286){if(_0x52bb17[_0x5421('0x4b')]['id']){delete _0x52bb17['body']['id'];}return db[_0x5421('0x2f')][_0x5421('0x49')]({'where':{'id':_0x52bb17['params']['id']}})[_0x5421('0x27')](handleEntityNotFound(_0x478286,null))['then'](saveUpdates(_0x52bb17[_0x5421('0x4b')],null))['then'](respondWithResult(_0x478286,null))[_0x5421('0x46')](handleError(_0x478286,null));};exports[_0x5421('0x29')]=function(_0x346f81,_0x66c745){return db[_0x5421('0x2f')]['find']({'where':{'id':_0x346f81[_0x5421('0x48')]['id']}})[_0x5421('0x27')](handleEntityNotFound(_0x66c745,null))[_0x5421('0x27')](removeEntity(_0x66c745,null))[_0x5421('0x46')](handleError(_0x66c745,null));};exports[_0x5421('0x55')]=function(_0xcbb4d4,_0x524de4){var _0x1ee4bd=0xa;var _0x4dcb52=[_0x5421('0x56'),_0x5421('0x57'),'right_join',_0x5421('0x58')];var _0x5027c8={'SUM':'SUM(%s)','COUNT':_0x5421('0x59'),'COUNT DISTINCT':_0x5421('0x5a'),'MAX':_0x5421('0x5b'),'MIN':_0x5421('0x5c'),'AVG':_0x5421('0x5d'),'GROUP_CONCAT':_0x5421('0x5e'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x5421('0x5f')};var _0x562035={'SEC_TO_TIME':_0x5421('0x60'),'DATE':_0x5421('0x61'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x6695be=function(_0x292bfb){return!_[_0x5421('0x62')]([_0x5421('0x63'),_0x5421('0x64'),'IS\x20EMPTY',_0x5421('0x65')],_0x292bfb);};var _0x314f3b=function(_0x423b44){if(!_0x423b44||!_0x423b44[_0x5421('0x66')][_0x5421('0x3a')]){return'';}for(var _0x5ebc84='(',_0x3f9522=0x0;_0x3f9522<_0x423b44[_0x5421('0x66')][_0x5421('0x3a')];_0x3f9522+=0x1){_0x3f9522>0x0&&(_0x5ebc84+='\x20'+_0x423b44['operator']+'\x20');_0x5ebc84+=_0x423b44['rules'][_0x3f9522][_0x5421('0x67')]?_0x314f3b(_0x423b44[_0x5421('0x66')][_0x3f9522][_0x5421('0x67')]):_0x423b44[_0x5421('0x66')][_0x3f9522][_0x5421('0x68')]+'\x20'+_0x423b44[_0x5421('0x66')][_0x3f9522][_0x5421('0x69')]+(_0x6695be(_0x423b44[_0x5421('0x66')][_0x3f9522][_0x5421('0x69')])?'\x20'+_0x423b44[_0x5421('0x66')][_0x3f9522][_0x5421('0x6a')]:'');}return _0x5ebc84+')';};var _0x429f96={'where':{'id':_0xcbb4d4[_0x5421('0x48')]['id']}},_0x505500,_0x372a6d,_0x3ff8ad,_0x501d87,_0x30665f;_0x429f96=_[_0x5421('0x40')]({},_0x429f96,_0xcbb4d4['options']);return db[_0x5421('0x2f')][_0x5421('0x49')](_0x429f96)[_0x5421('0x27')](function(_0xe9e2d6){if(_0xe9e2d6){_0x505500=_0xe9e2d6;return _0xe9e2d6['getFields']();}return null;})[_0x5421('0x27')](function(_0x3c36b7){if(_0x3c36b7){if(!_0x3c36b7[_0x5421('0x3a')]){throw new db['Sequelize'][(_0x5421('0x6b'))](_0x5421('0x6c'),0x193);}_0x372a6d=_0x3c36b7;return db[_0x5421('0x6d')][_0x5421('0x6e')]({'raw':!![]});}return null;})[_0x5421('0x27')](function(_0x1a3564){if(_0x1a3564){_0x3ff8ad=_[_0x5421('0x6f')](_0x1a3564,'id');var _0x286374;var _0x2bdf00=squel['select']();_0x2bdf00[_0x5421('0x70')](_0x505500[_0x5421('0x71')]);for(var _0x2a8e32=0x0;_0x2a8e32<_0x372a6d[_0x5421('0x3a')];_0x2a8e32+=0x1){_0x286374=_0x372a6d[_0x2a8e32][_0x5421('0x72')]?_0x3ff8ad[_0x372a6d[_0x2a8e32][_0x5421('0x72')]]['metric']:_0x372a6d[_0x2a8e32]['field'];_0x286374=_0x372a6d[_0x2a8e32][_0x5421('0x73')]?_[_0x5421('0x74')](_0x5027c8[_0x372a6d[_0x2a8e32]['function']],'%s',_0x286374):_0x286374;_0x286374=_0x372a6d[_0x2a8e32][_0x5421('0x75')]?_[_0x5421('0x74')](_0x562035[_0x372a6d[_0x2a8e32][_0x5421('0x75')]],'%s',_0x286374):_0x286374;if(_0x372a6d[_0x2a8e32][_0x5421('0x76')]){_0x2bdf00[_0x5421('0x67')](_0x286374);}_0x372a6d[_0x2a8e32][_0x5421('0x77')]&&_0x2bdf00[_0x5421('0x3b')](_0x286374,_0x372a6d[_0x2a8e32][_0x5421('0x77')]==='DESC'?![]:!![]);_0x2bdf00['field'](_0x286374,_0x372a6d[_0x2a8e32][_0x5421('0x78')]||_0x286374);}if(_0x505500[_0x5421('0x79')]){_0x505500[_0x5421('0x79')]=JSON[_0x5421('0x7a')](_0x505500['joins']);for(var _0x46a88e=0x0;_0x46a88e<_0x505500[_0x5421('0x79')][_0x5421('0x3a')];_0x46a88e+=0x1){if(_0x505500[_0x5421('0x79')][_0x46a88e]['type']&&_[_0x5421('0x62')](_0x4dcb52,_0x505500[_0x5421('0x79')][_0x46a88e][_0x5421('0x31')])&&_0x505500[_0x5421('0x79')][_0x46a88e][_0x5421('0x7b')]&&_0x505500['joins'][_0x46a88e][_0x5421('0x7c')]&&_0x505500[_0x5421('0x79')][_0x46a88e]['foreignKey']){_0x2bdf00[_0x505500[_0x5421('0x79')][_0x46a88e][_0x5421('0x31')]](_0x505500[_0x5421('0x79')][_0x46a88e][_0x5421('0x7c')],null,util[_0x5421('0x75')]('%s.%s\x20=\x20%s.%s',_0x505500[_0x5421('0x71')],_0x505500[_0x5421('0x79')][_0x46a88e][_0x5421('0x7b')],_0x505500[_0x5421('0x79')][_0x46a88e][_0x5421('0x7c')],_0x505500['joins'][_0x46a88e][_0x5421('0x7d')]));}}}if(_0x505500['conditions']){_0x505500[_0x5421('0x7e')]=JSON['parse'](_0x505500[_0x5421('0x7e')]);_0x2bdf00[_0x5421('0x3d')](_0x314f3b(_0x505500['conditions'][_0x5421('0x67')]));}_0x30665f=_0x2bdf00[_0x5421('0x7f')]();_0x2bdf00['limit'](_0x1ee4bd);_0x2bdf00[_0x5421('0x1e')](0x0);logger[_0x5421('0x80')](_0x5421('0x81'),_0x2bdf00[_0x5421('0x82')]());return dbH['sequelize'][_0x5421('0x34')](_0x2bdf00[_0x5421('0x82')](),{'type':dbH[_0x5421('0x83')][_0x5421('0x84')]['SELECT']});}})[_0x5421('0x27')](respondWithResult(_0x524de4,null))[_0x5421('0x46')](handleError(_0x524de4,null));};function runReport(_0x5c445e,_0x3a6bbe,_0xd8d7d4){var _0x3b30f1=_0x3a6bbe[_0x5421('0x2c')];var _0x4862ab=0xa;var _0x115869=[_0x5421('0x56'),_0x5421('0x57'),_0x5421('0x85'),_0x5421('0x58')];var _0x4fbda0={'SUM':_0x5421('0x86'),'COUNT':_0x5421('0x59'),'COUNT DISTINCT':_0x5421('0x5a'),'MAX':_0x5421('0x5b'),'MIN':'MIN(%s)','AVG':_0x5421('0x5d'),'GROUP_CONCAT':_0x5421('0x5e'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0x5421('0x5f')};var _0x5aabc1={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x5421('0x61'),'HOUR':_0x5421('0x87'),'ROUND':_0x5421('0x88'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x308f1c=function(_0x3cb66b){return!_[_0x5421('0x62')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x5421('0x89'),_0x5421('0x65')],_0x3cb66b);};var _0x2cae72=function(_0x3b53f6){if(!_0x3b53f6||!_0x3b53f6[_0x5421('0x66')][_0x5421('0x3a')]){return'';}for(var _0x13b869='(',_0x14c5b5=0x0;_0x14c5b5<_0x3b53f6[_0x5421('0x66')]['length'];_0x14c5b5+=0x1){_0x14c5b5>0x0&&(_0x13b869+='\x20'+_0x3b53f6[_0x5421('0x8a')]+'\x20');_0x13b869+=_0x3b53f6[_0x5421('0x66')][_0x14c5b5][_0x5421('0x67')]?_0x2cae72(_0x3b53f6[_0x5421('0x66')][_0x14c5b5]['group']):_0x3b53f6[_0x5421('0x66')][_0x14c5b5][_0x5421('0x68')]+'\x20'+_0x3b53f6['rules'][_0x14c5b5]['condition']+(_0x308f1c(_0x3b53f6[_0x5421('0x66')][_0x14c5b5][_0x5421('0x69')])?'\x20'+_0x3b53f6[_0x5421('0x66')][_0x14c5b5][_0x5421('0x6a')]:'');}return _0x13b869+')';};var _0x420610={'where':{'id':_0x5c445e['id']}},_0x5d1278,_0x17aca5,_0x3ad53e,_0x467d2e,_0x4ac749;_0x420610=_[_0x5421('0x40')]({},_0x420610,_0xd8d7d4);return db[_0x5421('0x2f')][_0x5421('0x49')](_0x420610)['then'](function(_0x3d2216){if(_0x3d2216){_0x5d1278=_0x3d2216;return _0x3d2216[_0x5421('0x8b')]();}return null;})[_0x5421('0x27')](function(_0x1e41b3){if(_0x1e41b3){if(!_0x1e41b3[_0x5421('0x3a')]){throw new db['Sequelize'][(_0x5421('0x6b'))](_0x5421('0x6c'),0x193);}_0x17aca5=_0x1e41b3;return db[_0x5421('0x6d')][_0x5421('0x6e')]({'raw':!![]});}return null;})[_0x5421('0x27')](function(_0x2875f6){if(_0x2875f6){_0x3ad53e=_[_0x5421('0x6f')](_0x2875f6,'id');var _0x4f3978;var _0x275c7d=squel['select']();_0x275c7d['from'](_0x5d1278[_0x5421('0x71')]);for(var _0x3c6105=0x0;_0x3c6105<_0x17aca5[_0x5421('0x3a')];_0x3c6105+=0x1){_0x4f3978=_0x17aca5[_0x3c6105]['MetricId']?_0x3ad53e[_0x17aca5[_0x3c6105][_0x5421('0x72')]][_0x5421('0x8c')]:_0x17aca5[_0x3c6105]['field'];_0x4f3978=_0x17aca5[_0x3c6105]['function']?_[_0x5421('0x74')](_0x4fbda0[_0x17aca5[_0x3c6105][_0x5421('0x73')]],'%s',_0x4f3978):_0x4f3978;_0x4f3978=_0x17aca5[_0x3c6105][_0x5421('0x75')]?_[_0x5421('0x74')](_0x5aabc1[_0x17aca5[_0x3c6105][_0x5421('0x75')]],'%s',_0x4f3978):_0x4f3978;if(_0x17aca5[_0x3c6105][_0x5421('0x76')]){_0x275c7d[_0x5421('0x67')](_0x4f3978);}_0x17aca5[_0x3c6105]['orderBy']&&_0x275c7d[_0x5421('0x3b')](_0x4f3978,_0x17aca5[_0x3c6105][_0x5421('0x77')]===_0x5421('0x8d')?![]:!![]);_0x275c7d[_0x5421('0x68')](_0x4f3978,_0x17aca5[_0x3c6105]['alias']||_0x4f3978);}if(_0x5d1278['joins']){_0x5d1278[_0x5421('0x79')]=JSON[_0x5421('0x7a')](_0x5d1278[_0x5421('0x79')]);for(var _0x358409=0x0;_0x358409<_0x5d1278[_0x5421('0x79')][_0x5421('0x3a')];_0x358409+=0x1){if(_0x5d1278['joins'][_0x358409][_0x5421('0x31')]&&_[_0x5421('0x62')](_0x115869,_0x5d1278[_0x5421('0x79')][_0x358409][_0x5421('0x31')])&&_0x5d1278[_0x5421('0x79')][_0x358409][_0x5421('0x7b')]&&_0x5d1278['joins'][_0x358409][_0x5421('0x7c')]&&_0x5d1278[_0x5421('0x79')][_0x358409]['foreignKey']){_0x275c7d[_0x5d1278['joins'][_0x358409][_0x5421('0x31')]](_0x5d1278[_0x5421('0x79')][_0x358409][_0x5421('0x7c')],null,util[_0x5421('0x75')]('%s.%s\x20=\x20%s.%s',_0x5d1278[_0x5421('0x71')],_0x5d1278['joins'][_0x358409][_0x5421('0x7b')],_0x5d1278[_0x5421('0x79')][_0x358409][_0x5421('0x7c')],_0x5d1278[_0x5421('0x79')][_0x358409]['foreignKey']));}}}if(_0x5d1278['conditions']){_0x5d1278['conditions']=JSON['parse'](_0x5d1278['conditions']);_0x275c7d[_0x5421('0x3d')](_0x2cae72(_0x5d1278[_0x5421('0x7e')]['group']));}_0x4ac749=_0x275c7d[_0x5421('0x7f')]();_0x275c7d[_0x5421('0x20')](_0x4862ab);_0x275c7d[_0x5421('0x1e')](0x0);return;}})[_0x5421('0x27')](function(){if(_0x3a6bbe['output']===_0x5421('0x8e')){return null;}var _0x4b8d97=_[_0x5421('0x40')](_0x3a6bbe,{'name':_0x3a6bbe[_0x5421('0x8f')]||_0x3a6bbe[_0x5421('0x2c')]||_0x5d1278[_0x5421('0x2c')],'basename':_0x3b30f1,'savename':util[_0x5421('0x75')](_0x5421('0x90'),_0x3a6bbe[_0x5421('0x2c')]||_0x5d1278['name'],require(_0x5421('0x91'))['generate'](0x4),_0x3a6bbe[_0x5421('0x92')]||_0x5421('0x93')),'reportId':_0x5d1278['id'],'reportType':'custom'});return db[_0x5421('0x94')]['create'](_0x4b8d97,{'raw':!![]});})[_0x5421('0x27')](function(_0x2b48f3){if(_0x5d1278[_0x5421('0x71')]==='cdr'){_0x4ac749[_0x5421('0x3d')](_0x5d1278[_0x5421('0x71')]+_0x5421('0x95'),_0x3a6bbe[_0x5421('0x96')],_0x3a6bbe[_0x5421('0x97')]);}else{_0x4ac749[_0x5421('0x3d')](_0x5d1278['table']+_0x5421('0x98'),_0x3a6bbe['startDate'],_0x3a6bbe[_0x5421('0x97')]);}if(_0x2b48f3){logger[_0x5421('0x99')]('Run\x20Query:',_0x4ac749['toString']());require(_0x5421('0x9a'))['fork'](path['join'](__dirname,_0x5421('0x9b'),_0x2b48f3[_0x5421('0x92')]),[_0x2b48f3['id'],_0x4ac749[_0x5421('0x82')](),path[_0x5421('0x56')](__dirname,_0x5421('0x9c'),_0x2b48f3[_0x5421('0x9d')]),_0x3b30f1]);return _0x2b48f3;}else{var _0xf6580b=squel[_0x5421('0x9e')]();_0xf6580b[_0x5421('0x70')]('('+_0x4ac749[_0x5421('0x82')]()+')','countTable');_0xf6580b[_0x5421('0x68')](_0x5421('0x9f'),_0x5421('0x21'));_0x4ac749[_0x5421('0x20')](_0x3a6bbe[_0x5421('0x20')]||_0x4862ab);_0x4ac749['offset'](_0x3a6bbe['offset']||0x0);return dbH['sequelize']['query'](_0xf6580b[_0x5421('0x82')](),{'type':dbH[_0x5421('0x83')][_0x5421('0x84')][_0x5421('0xa0')]})[_0x5421('0x27')](function(_0x43bcdc){if(!_0x43bcdc['length']){_0x467d2e=0x0;}else{_0x467d2e=_0x43bcdc[0x0]['count']||0x0;}return dbH[_0x5421('0x83')][_0x5421('0x34')](_0x4ac749[_0x5421('0x82')](),{'type':dbH[_0x5421('0x83')][_0x5421('0x84')][_0x5421('0xa0')]});})['then'](function(_0x462f23){return{'rows':_0x462f23||[],'count':_0x467d2e};});}});}exports[_0x5421('0xa1')]=function(_0x43ba5f,_0x20fb73){return runReport(_0x43ba5f[_0x5421('0x48')],_0x43ba5f[_0x5421('0x34')],_0x43ba5f[_0x5421('0x42')])['then'](respondWithResult(_0x20fb73,null))[_0x5421('0x46')](handleError(_0x20fb73,null));};exports[_0x5421('0xa2')]=runReport;exports['query']=function(_0x1cc55a,_0x5ee46f){var _0x22334d=0xa;var _0x2bf0c9=[_0x5421('0x56'),_0x5421('0x57'),'right_join','cross_join'];var _0x35444e={'SUM':_0x5421('0x86'),'COUNT':_0x5421('0x59'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x5421('0x5b'),'MIN':_0x5421('0x5c'),'AVG':_0x5421('0x5d'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x5421('0xa3'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0xb8452f={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x5421('0x61'),'HOUR':'HOUR(%s)','ROUND':_0x5421('0x88'),'UNIX_TIMESTAMP':_0x5421('0xa4')};var _0x3e7aed=function(_0x4d7768){return!_[_0x5421('0x62')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x5421('0x89'),'IS\x20NOT\x20EMPTY'],_0x4d7768);};var _0x51d6d2=function(_0x154f12){if(!_0x154f12||!_0x154f12[_0x5421('0x66')][_0x5421('0x3a')]){return'';}for(var _0x245fae='(',_0x47ab2d=0x0;_0x47ab2d<_0x154f12[_0x5421('0x66')]['length'];_0x47ab2d+=0x1){_0x47ab2d>0x0&&(_0x245fae+='\x20'+_0x154f12[_0x5421('0x8a')]+'\x20');_0x245fae+=_0x154f12['rules'][_0x47ab2d][_0x5421('0x67')]?_0x51d6d2(_0x154f12[_0x5421('0x66')][_0x47ab2d][_0x5421('0x67')]):_0x154f12[_0x5421('0x66')][_0x47ab2d][_0x5421('0x68')]+'\x20'+_0x154f12['rules'][_0x47ab2d]['condition']+(_0x3e7aed(_0x154f12['rules'][_0x47ab2d][_0x5421('0x69')])?'\x20'+_0x154f12['rules'][_0x47ab2d][_0x5421('0x6a')]:'');}return _0x245fae+')';};var _0x48d7cb={'where':{'id':_0x1cc55a['params']['id']}},_0x3de20f,_0x3835ef,_0x2dd3a4,_0x5effdb,_0xf7abbb;_0x48d7cb=_['merge']({},_0x48d7cb,_0x1cc55a['options']);return db[_0x5421('0x2f')][_0x5421('0x49')](_0x48d7cb)[_0x5421('0x27')](function(_0x4b80bf){if(_0x4b80bf){_0x3de20f=_0x4b80bf;return _0x4b80bf[_0x5421('0x8b')]();}return null;})[_0x5421('0x27')](function(_0x1e5780){if(_0x1e5780){if(!_0x1e5780['length']){throw new db['Sequelize']['ValidationErrorItem'](_0x5421('0x6c'),0x193);}_0x3835ef=_0x1e5780;return db[_0x5421('0x6d')]['findAll']({'raw':!![]});}return null;})['then'](function(_0x2d875e){if(_0x2d875e){_0x2dd3a4=_[_0x5421('0x6f')](_0x2d875e,'id');var _0x44a6e0;var _0x1d0c10=squel[_0x5421('0x9e')]();_0x1d0c10[_0x5421('0x70')](_0x3de20f[_0x5421('0x71')]);for(var _0x1db5fb=0x0;_0x1db5fb<_0x3835ef['length'];_0x1db5fb+=0x1){_0x44a6e0=_0x3835ef[_0x1db5fb][_0x5421('0x72')]?_0x2dd3a4[_0x3835ef[_0x1db5fb][_0x5421('0x72')]]['metric']:_0x3835ef[_0x1db5fb][_0x5421('0x68')];_0x44a6e0=_0x3835ef[_0x1db5fb][_0x5421('0x73')]?_['replace'](_0x35444e[_0x3835ef[_0x1db5fb]['function']],'%s',_0x44a6e0):_0x44a6e0;_0x44a6e0=_0x3835ef[_0x1db5fb][_0x5421('0x75')]?_[_0x5421('0x74')](_0xb8452f[_0x3835ef[_0x1db5fb]['format']],'%s',_0x44a6e0):_0x44a6e0;if(_0x3835ef[_0x1db5fb]['groupBy']){_0x1d0c10[_0x5421('0x67')](_0x44a6e0);}_0x3835ef[_0x1db5fb]['orderBy']&&_0x1d0c10[_0x5421('0x3b')](_0x44a6e0,_0x3835ef[_0x1db5fb][_0x5421('0x77')]===_0x5421('0x8d')?![]:!![]);_0x1d0c10['field'](_0x44a6e0,_0x3835ef[_0x1db5fb][_0x5421('0x78')]||_0x44a6e0);}if(_0x3de20f[_0x5421('0x79')]){_0x3de20f[_0x5421('0x79')]=JSON[_0x5421('0x7a')](_0x3de20f[_0x5421('0x79')]);for(var _0xc46efa=0x0;_0xc46efa<_0x3de20f[_0x5421('0x79')]['length'];_0xc46efa+=0x1){if(_0x3de20f[_0x5421('0x79')][_0xc46efa][_0x5421('0x31')]&&_[_0x5421('0x62')](_0x2bf0c9,_0x3de20f[_0x5421('0x79')][_0xc46efa][_0x5421('0x31')])&&_0x3de20f[_0x5421('0x79')][_0xc46efa][_0x5421('0x7b')]&&_0x3de20f['joins'][_0xc46efa]['foreignTable']&&_0x3de20f[_0x5421('0x79')][_0xc46efa][_0x5421('0x7d')]){_0x1d0c10[_0x3de20f[_0x5421('0x79')][_0xc46efa][_0x5421('0x31')]](_0x3de20f[_0x5421('0x79')][_0xc46efa][_0x5421('0x7c')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x3de20f[_0x5421('0x71')],_0x3de20f['joins'][_0xc46efa]['parentKey'],_0x3de20f[_0x5421('0x79')][_0xc46efa]['foreignTable'],_0x3de20f[_0x5421('0x79')][_0xc46efa]['foreignKey']));}}}if(_0x3de20f[_0x5421('0x7e')]){_0x3de20f[_0x5421('0x7e')]=JSON[_0x5421('0x7a')](_0x3de20f[_0x5421('0x7e')]);_0x1d0c10['where'](_0x51d6d2(_0x3de20f[_0x5421('0x7e')][_0x5421('0x67')]));}_0xf7abbb=_0x1d0c10['clone']();_0x1d0c10[_0x5421('0x20')](_0x22334d);_0x1d0c10[_0x5421('0x1e')](0x0);logger[_0x5421('0x80')](_0x5421('0x81'),_0x1d0c10[_0x5421('0x82')]());return dbH[_0x5421('0x83')][_0x5421('0x34')](_0x1d0c10[_0x5421('0x82')](),{'type':dbH[_0x5421('0x83')]['QueryTypes'][_0x5421('0xa0')]});}})['then'](function(){return{'sql':_0xf7abbb[_0x5421('0x82')]()};})[_0x5421('0x27')](respondWithResult(_0x5ee46f,null))[_0x5421('0x46')](handleError(_0x5ee46f,null));};
\ No newline at end of file
+var _0x1ed7=['map','query','keys','intersection','fields','attributes','length','nolimit','order','sort','where','filters','filter','VIRTUAL','merge','options','include','catch','includeAll','find','create','body','user','role','Reports','userProfileId','autoAssociation','UserProfileResource','params','preview','join','left_join','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','group','field','condition','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','table','MetricId','metric','function','replace','format','groupBy','orderBy','DESC','joins','parentKey','foreignTable','conditions','parse','clone','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','SUM(%s)','IS\x20EMPTY','operator','value','getFields','foreignKey','output','web','randomstring','generate','csv','custom','AnalyticExtractedReport','cdr','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','../../components/export/','savename','run','runReport','AVG(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','alias','%s.%s\x20=\x20%s.%s','debug','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','status','end','json','undefined','limit','offset','count','set','reject','save','update','then','get','CustomReports','destroy','sendStatus','name','index','AnalyticCustomReport','rawAttributes','fieldName','type','key','model'];(function(_0x1fdd36,_0x3c9ebc){var _0x23a845=function(_0x4ecf71){while(--_0x4ecf71){_0x1fdd36['push'](_0x1fdd36['shift']());}};_0x23a845(++_0x3c9ebc);}(_0x1ed7,0x6e));var _0x71ed=function(_0x53023e,_0x222a0e){_0x53023e=_0x53023e-0x0;var _0x5cb0c6=_0x1ed7[_0x53023e];return _0x5cb0c6;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x71ed('0x0'));var rp=require(_0x71ed('0x1'));var moment=require(_0x71ed('0x2'));var BPromise=require(_0x71ed('0x3'));var Mustache=require(_0x71ed('0x4'));var util=require('util');var path=require(_0x71ed('0x5'));var sox=require(_0x71ed('0x6'));var csv=require(_0x71ed('0x7'));var ejs=require(_0x71ed('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x71ed('0x9'));var crypto=require(_0x71ed('0xa'));var jsforce=require(_0x71ed('0xb'));var deskjs=require(_0x71ed('0xc'));var toCsv=require(_0x71ed('0x7'));var querystring=require(_0x71ed('0xd'));var Papa=require('papaparse');var Redis=require(_0x71ed('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x71ed('0xf'));var as=require(_0x71ed('0x10'));var hardwareService=require(_0x71ed('0x11'));var logger=require(_0x71ed('0x12'))(_0x71ed('0x13'));var utils=require(_0x71ed('0x14'));var config=require(_0x71ed('0x15'));var licenseUtil=require(_0x71ed('0x16'));var db=require(_0x71ed('0x17'))['db'];var dbH=require('../../mysqldb')[_0x71ed('0x18')];function respondWithStatusCode(_0x5b40e8,_0x327bb5){_0x327bb5=_0x327bb5||0xcc;return function(_0x34ebc4){if(_0x34ebc4){return _0x5b40e8['sendStatus'](_0x327bb5);}return _0x5b40e8[_0x71ed('0x19')](_0x327bb5)[_0x71ed('0x1a')]();};}function respondWithResult(_0x53d5e0,_0x5edb1c){_0x5edb1c=_0x5edb1c||0xc8;return function(_0xaae28){if(_0xaae28){return _0x53d5e0[_0x71ed('0x19')](_0x5edb1c)[_0x71ed('0x1b')](_0xaae28);}};}function respondWithFilteredResult(_0x43eb51,_0x4b9b72){return function(_0x2473a3){if(_0x2473a3){var _0x37e85e=typeof _0x4b9b72['offset']===_0x71ed('0x1c')&&typeof _0x4b9b72[_0x71ed('0x1d')]==='undefined';var _0x4a9f42=_0x2473a3['count'];var _0x1ce561=_0x37e85e?0x0:_0x4b9b72[_0x71ed('0x1e')];var _0x4939e5=_0x37e85e?_0x2473a3[_0x71ed('0x1f')]:_0x4b9b72[_0x71ed('0x1e')]+_0x4b9b72[_0x71ed('0x1d')];var _0x1f04df;if(_0x4939e5>=_0x4a9f42){_0x4939e5=_0x4a9f42;_0x1f04df=0xc8;}else{_0x1f04df=0xce;}_0x43eb51['status'](_0x1f04df);return _0x43eb51[_0x71ed('0x20')]('Content-Range',_0x1ce561+'-'+_0x4939e5+'/'+_0x4a9f42)[_0x71ed('0x1b')](_0x2473a3);}return null;};}function patchUpdates(_0x3a45cd){return function(_0x5a41e5){try{jsonpatch['apply'](_0x5a41e5,_0x3a45cd,!![]);}catch(_0xb6f5ad){return BPromise[_0x71ed('0x21')](_0xb6f5ad);}return _0x5a41e5[_0x71ed('0x22')]();};}function saveUpdates(_0x5a1c85,_0x39ab0b){return function(_0x49423b){if(_0x49423b){return _0x49423b[_0x71ed('0x23')](_0x5a1c85)[_0x71ed('0x24')](function(_0x5a953e){return _0x5a953e;});}return null;};}function removeEntity(_0x22cfbb,_0x2c00f5){return function(_0xe974cc){if(_0xe974cc){return _0xe974cc['destroy']()['then'](function(){var _0xb01ddd=_0xe974cc[_0x71ed('0x25')]({'plain':!![]});var _0x1472ac=_0x71ed('0x26');return db['UserProfileResource'][_0x71ed('0x27')]({'where':{'type':_0x1472ac,'resourceId':_0xb01ddd['id']}})['then'](function(){return _0xe974cc;});})[_0x71ed('0x24')](function(){_0x22cfbb['status'](0xcc)[_0x71ed('0x1a')]();});}};}function handleEntityNotFound(_0x15bf63,_0x55476c){return function(_0x52de58){if(!_0x52de58){_0x15bf63[_0x71ed('0x28')](0x194);}return _0x52de58;};}function handleError(_0xff59b8,_0x3223d7){_0x3223d7=_0x3223d7||0x1f4;return function(_0x22acb4){logger['error'](_0x22acb4['stack']);if(_0x22acb4[_0x71ed('0x29')]){delete _0x22acb4['name'];}_0xff59b8[_0x71ed('0x19')](_0x3223d7)['send'](_0x22acb4);};}exports[_0x71ed('0x2a')]=function(_0xec9ca7,_0x30ff6d){var _0x33eb53={},_0x520906={},_0x4742ed={'count':0x0,'rows':[]};var _0x4173f3=_['map'](db[_0x71ed('0x2b')][_0x71ed('0x2c')],function(_0x46d80b){return{'name':_0x46d80b[_0x71ed('0x2d')],'type':_0x46d80b[_0x71ed('0x2e')][_0x71ed('0x2f')]};});_0x520906[_0x71ed('0x30')]=_[_0x71ed('0x31')](_0x4173f3,'name');_0x520906[_0x71ed('0x32')]=_[_0x71ed('0x33')](_0xec9ca7[_0x71ed('0x32')]);_0x520906['filters']=_[_0x71ed('0x34')](_0x520906[_0x71ed('0x30')],_0x520906[_0x71ed('0x32')]);_0x33eb53['attributes']=_[_0x71ed('0x34')](_0x520906['model'],qs['fields'](_0xec9ca7[_0x71ed('0x32')][_0x71ed('0x35')]));_0x33eb53[_0x71ed('0x36')]=_0x33eb53['attributes'][_0x71ed('0x37')]?_0x33eb53[_0x71ed('0x36')]:_0x520906[_0x71ed('0x30')];if(!_0xec9ca7[_0x71ed('0x32')]['hasOwnProperty'](_0x71ed('0x38'))){_0x33eb53[_0x71ed('0x1d')]=qs[_0x71ed('0x1d')](_0xec9ca7[_0x71ed('0x32')]['limit']);_0x33eb53['offset']=qs['offset'](_0xec9ca7[_0x71ed('0x32')][_0x71ed('0x1e')]);}_0x33eb53[_0x71ed('0x39')]=qs[_0x71ed('0x3a')](_0xec9ca7[_0x71ed('0x32')][_0x71ed('0x3a')]);_0x33eb53[_0x71ed('0x3b')]=qs['filters'](_['pick'](_0xec9ca7[_0x71ed('0x32')],_0x520906[_0x71ed('0x3c')]),_0x4173f3);if(_0xec9ca7[_0x71ed('0x32')][_0x71ed('0x3d')]){_0x33eb53[_0x71ed('0x3b')]=_['merge'](_0x33eb53[_0x71ed('0x3b')],{'$or':_[_0x71ed('0x31')](_0x4173f3,function(_0x5c8633){if(_0x5c8633[_0x71ed('0x2e')]!==_0x71ed('0x3e')){var _0x2968b8={};_0x2968b8[_0x5c8633[_0x71ed('0x29')]]={'$like':'%'+_0xec9ca7[_0x71ed('0x32')][_0x71ed('0x3d')]+'%'};return _0x2968b8;}})});}_0x33eb53=_[_0x71ed('0x3f')]({},_0x33eb53,_0xec9ca7[_0x71ed('0x40')]);var _0x1fbe04={'where':_0x33eb53[_0x71ed('0x3b')]};return db['AnalyticCustomReport'][_0x71ed('0x1f')](_0x1fbe04)['then'](function(_0x268452){_0x4742ed[_0x71ed('0x1f')]=_0x268452;if(_0xec9ca7[_0x71ed('0x32')]['includeAll']){_0x33eb53[_0x71ed('0x41')]=[{'all':!![]}];}return db[_0x71ed('0x2b')]['findAll'](_0x33eb53);})[_0x71ed('0x24')](function(_0x260144){_0x4742ed['rows']=_0x260144;return _0x4742ed;})[_0x71ed('0x24')](respondWithFilteredResult(_0x30ff6d,_0x33eb53))[_0x71ed('0x42')](handleError(_0x30ff6d,null));};exports['show']=function(_0x12ecb7,_0xc0bcb9){var _0x507f7c={'raw':![],'where':{'id':_0x12ecb7['params']['id']}},_0x1c70ab={};_0x1c70ab['model']=_['keys'](db[_0x71ed('0x2b')][_0x71ed('0x2c')]);_0x1c70ab[_0x71ed('0x32')]=_['keys'](_0x12ecb7[_0x71ed('0x32')]);_0x1c70ab[_0x71ed('0x3c')]=_[_0x71ed('0x34')](_0x1c70ab[_0x71ed('0x30')],_0x1c70ab[_0x71ed('0x32')]);_0x507f7c[_0x71ed('0x36')]=_[_0x71ed('0x34')](_0x1c70ab['model'],qs[_0x71ed('0x35')](_0x12ecb7[_0x71ed('0x32')][_0x71ed('0x35')]));_0x507f7c['attributes']=_0x507f7c[_0x71ed('0x36')][_0x71ed('0x37')]?_0x507f7c['attributes']:_0x1c70ab[_0x71ed('0x30')];if(_0x12ecb7['query'][_0x71ed('0x43')]){_0x507f7c['include']=[{'all':!![]}];}_0x507f7c=_[_0x71ed('0x3f')]({},_0x507f7c,_0x12ecb7['options']);return db[_0x71ed('0x2b')][_0x71ed('0x44')](_0x507f7c)['then'](handleEntityNotFound(_0xc0bcb9,null))['then'](respondWithResult(_0xc0bcb9,null))[_0x71ed('0x42')](handleError(_0xc0bcb9,null));};exports[_0x71ed('0x45')]=function(_0x28893f,_0x3239bf){return db[_0x71ed('0x2b')][_0x71ed('0x45')](_0x28893f[_0x71ed('0x46')],{})[_0x71ed('0x24')](function(_0x466200){var _0x5235c8=_0x28893f[_0x71ed('0x47')][_0x71ed('0x25')]({'plain':!![]});if(!_0x5235c8)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5235c8[_0x71ed('0x48')]===_0x71ed('0x47')){var _0x28533c=_0x466200[_0x71ed('0x25')]({'plain':!![]});var _0x5a5c4a=_0x71ed('0x49');return db['UserProfileSection']['find']({'where':{'name':_0x5a5c4a,'userProfileId':_0x5235c8[_0x71ed('0x4a')]},'raw':!![]})[_0x71ed('0x24')](function(_0x174e48){if(_0x174e48&&_0x174e48[_0x71ed('0x4b')]===0x0){return db[_0x71ed('0x4c')][_0x71ed('0x45')]({'name':_0x28533c[_0x71ed('0x29')],'resourceId':_0x28533c['id'],'type':'CustomReports','sectionId':_0x174e48['id']},{})['then'](function(){return _0x466200;});}else{return _0x466200;}})['catch'](function(_0x10453b){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x10453b);throw _0x10453b;});}return _0x466200;})['then'](respondWithResult(_0x3239bf,0xc9))['catch'](handleError(_0x3239bf,null));};exports[_0x71ed('0x23')]=function(_0x8a39e2,_0x5bcfb1){if(_0x8a39e2[_0x71ed('0x46')]['id']){delete _0x8a39e2[_0x71ed('0x46')]['id'];}return db[_0x71ed('0x2b')]['find']({'where':{'id':_0x8a39e2['params']['id']}})[_0x71ed('0x24')](handleEntityNotFound(_0x5bcfb1,null))[_0x71ed('0x24')](saveUpdates(_0x8a39e2[_0x71ed('0x46')],null))[_0x71ed('0x24')](respondWithResult(_0x5bcfb1,null))[_0x71ed('0x42')](handleError(_0x5bcfb1,null));};exports[_0x71ed('0x27')]=function(_0x2f8097,_0xe70c3b){return db[_0x71ed('0x2b')][_0x71ed('0x44')]({'where':{'id':_0x2f8097[_0x71ed('0x4d')]['id']}})[_0x71ed('0x24')](handleEntityNotFound(_0xe70c3b,null))[_0x71ed('0x24')](removeEntity(_0xe70c3b,null))[_0x71ed('0x42')](handleError(_0xe70c3b,null));};exports[_0x71ed('0x4e')]=function(_0x360515,_0x9c37bd){var _0xccf823=0xa;var _0x3e1ddc=[_0x71ed('0x4f'),_0x71ed('0x50'),_0x71ed('0x51'),_0x71ed('0x52')];var _0x4bd0da={'SUM':'SUM(%s)','COUNT':_0x71ed('0x53'),'COUNT DISTINCT':_0x71ed('0x54'),'MAX':_0x71ed('0x55'),'MIN':_0x71ed('0x56'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x71ed('0x57'),'GROUP_CONCAT ASC':_0x71ed('0x58'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x1d5603={'SEC_TO_TIME':_0x71ed('0x59'),'DATE':_0x71ed('0x5a'),'HOUR':_0x71ed('0x5b'),'ROUND':_0x71ed('0x5c'),'UNIX_TIMESTAMP':_0x71ed('0x5d')};var _0x25b1ed=function(_0x3afaea){return!_[_0x71ed('0x5e')]([_0x71ed('0x5f'),_0x71ed('0x60'),'IS\x20EMPTY',_0x71ed('0x61')],_0x3afaea);};var _0x5404ea=function(_0x366d3f){if(!_0x366d3f||!_0x366d3f[_0x71ed('0x62')][_0x71ed('0x37')]){return'';}for(var _0x25797e='(',_0x28aa37=0x0;_0x28aa37<_0x366d3f[_0x71ed('0x62')][_0x71ed('0x37')];_0x28aa37+=0x1){_0x28aa37>0x0&&(_0x25797e+='\x20'+_0x366d3f['operator']+'\x20');_0x25797e+=_0x366d3f[_0x71ed('0x62')][_0x28aa37][_0x71ed('0x63')]?_0x5404ea(_0x366d3f['rules'][_0x28aa37][_0x71ed('0x63')]):_0x366d3f[_0x71ed('0x62')][_0x28aa37][_0x71ed('0x64')]+'\x20'+_0x366d3f[_0x71ed('0x62')][_0x28aa37][_0x71ed('0x65')]+(_0x25b1ed(_0x366d3f[_0x71ed('0x62')][_0x28aa37][_0x71ed('0x65')])?'\x20'+_0x366d3f[_0x71ed('0x62')][_0x28aa37]['value']:'');}return _0x25797e+')';};var _0x332cf3={'where':{'id':_0x360515[_0x71ed('0x4d')]['id']}},_0x1b996a,_0x51d588,_0x37bc5d,_0x4a0cf6,_0x3ff156;_0x332cf3=_[_0x71ed('0x3f')]({},_0x332cf3,_0x360515[_0x71ed('0x40')]);return db[_0x71ed('0x2b')][_0x71ed('0x44')](_0x332cf3)[_0x71ed('0x24')](function(_0x473545){if(_0x473545){_0x1b996a=_0x473545;return _0x473545['getFields']();}return null;})[_0x71ed('0x24')](function(_0x38e489){if(_0x38e489){if(!_0x38e489[_0x71ed('0x37')]){throw new db[(_0x71ed('0x66'))][(_0x71ed('0x67'))](_0x71ed('0x68'),0x193);}_0x51d588=_0x38e489;return db[_0x71ed('0x69')][_0x71ed('0x6a')]({'raw':!![]});}return null;})[_0x71ed('0x24')](function(_0x539ef4){if(_0x539ef4){_0x37bc5d=_[_0x71ed('0x6b')](_0x539ef4,'id');var _0x34332e;var _0x57038b=squel[_0x71ed('0x6c')]();_0x57038b[_0x71ed('0x6d')](_0x1b996a[_0x71ed('0x6e')]);for(var _0xb15ac0=0x0;_0xb15ac0<_0x51d588[_0x71ed('0x37')];_0xb15ac0+=0x1){_0x34332e=_0x51d588[_0xb15ac0][_0x71ed('0x6f')]?_0x37bc5d[_0x51d588[_0xb15ac0][_0x71ed('0x6f')]][_0x71ed('0x70')]:_0x51d588[_0xb15ac0][_0x71ed('0x64')];_0x34332e=_0x51d588[_0xb15ac0][_0x71ed('0x71')]?_['replace'](_0x4bd0da[_0x51d588[_0xb15ac0][_0x71ed('0x71')]],'%s',_0x34332e):_0x34332e;_0x34332e=_0x51d588[_0xb15ac0]['format']?_[_0x71ed('0x72')](_0x1d5603[_0x51d588[_0xb15ac0][_0x71ed('0x73')]],'%s',_0x34332e):_0x34332e;if(_0x51d588[_0xb15ac0][_0x71ed('0x74')]){_0x57038b[_0x71ed('0x63')](_0x34332e);}_0x51d588[_0xb15ac0][_0x71ed('0x75')]&&_0x57038b[_0x71ed('0x39')](_0x34332e,_0x51d588[_0xb15ac0][_0x71ed('0x75')]===_0x71ed('0x76')?![]:!![]);_0x57038b['field'](_0x34332e,_0x51d588[_0xb15ac0]['alias']||_0x34332e);}if(_0x1b996a[_0x71ed('0x77')]){_0x1b996a[_0x71ed('0x77')]=JSON['parse'](_0x1b996a[_0x71ed('0x77')]);for(var _0x333f74=0x0;_0x333f74<_0x1b996a['joins']['length'];_0x333f74+=0x1){if(_0x1b996a[_0x71ed('0x77')][_0x333f74][_0x71ed('0x2e')]&&_[_0x71ed('0x5e')](_0x3e1ddc,_0x1b996a['joins'][_0x333f74][_0x71ed('0x2e')])&&_0x1b996a[_0x71ed('0x77')][_0x333f74][_0x71ed('0x78')]&&_0x1b996a[_0x71ed('0x77')][_0x333f74][_0x71ed('0x79')]&&_0x1b996a[_0x71ed('0x77')][_0x333f74]['foreignKey']){_0x57038b[_0x1b996a[_0x71ed('0x77')][_0x333f74]['type']](_0x1b996a[_0x71ed('0x77')][_0x333f74]['foreignTable'],null,util[_0x71ed('0x73')]('%s.%s\x20=\x20%s.%s',_0x1b996a[_0x71ed('0x6e')],_0x1b996a[_0x71ed('0x77')][_0x333f74][_0x71ed('0x78')],_0x1b996a['joins'][_0x333f74][_0x71ed('0x79')],_0x1b996a['joins'][_0x333f74]['foreignKey']));}}}if(_0x1b996a[_0x71ed('0x7a')]){_0x1b996a[_0x71ed('0x7a')]=JSON[_0x71ed('0x7b')](_0x1b996a['conditions']);_0x57038b['where'](_0x5404ea(_0x1b996a[_0x71ed('0x7a')]['group']));}_0x3ff156=_0x57038b[_0x71ed('0x7c')]();_0x57038b[_0x71ed('0x1d')](_0xccf823);_0x57038b[_0x71ed('0x1e')](0x0);logger['debug'](_0x71ed('0x7d'),_0x57038b['toString']());return dbH['sequelize']['query'](_0x57038b[_0x71ed('0x7e')](),{'type':dbH[_0x71ed('0x7f')][_0x71ed('0x80')][_0x71ed('0x81')]});}})['then'](respondWithResult(_0x9c37bd,null))[_0x71ed('0x42')](handleError(_0x9c37bd,null));};function runReport(_0x1835ff,_0x4c8245,_0x310d7a){var _0x971234=_0x4c8245[_0x71ed('0x29')];var _0x17553c=0xa;var _0xd21dee=[_0x71ed('0x4f'),_0x71ed('0x50'),_0x71ed('0x51'),_0x71ed('0x52')];var _0x2b557f={'SUM':_0x71ed('0x82'),'COUNT':_0x71ed('0x53'),'COUNT DISTINCT':_0x71ed('0x54'),'MAX':_0x71ed('0x55'),'MIN':_0x71ed('0x56'),'AVG':'AVG(%s)','GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x71ed('0x58'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x4e8cf1={'SEC_TO_TIME':_0x71ed('0x59'),'DATE':_0x71ed('0x5a'),'HOUR':'HOUR(%s)','ROUND':_0x71ed('0x5c'),'UNIX_TIMESTAMP':_0x71ed('0x5d')};var _0x307668=function(_0x4b63da){return!_[_0x71ed('0x5e')]([_0x71ed('0x5f'),_0x71ed('0x60'),_0x71ed('0x83'),_0x71ed('0x61')],_0x4b63da);};var _0x253ae2=function(_0x266f64){if(!_0x266f64||!_0x266f64[_0x71ed('0x62')]['length']){return'';}for(var _0x5bcbce='(',_0xf8938a=0x0;_0xf8938a<_0x266f64[_0x71ed('0x62')][_0x71ed('0x37')];_0xf8938a+=0x1){_0xf8938a>0x0&&(_0x5bcbce+='\x20'+_0x266f64[_0x71ed('0x84')]+'\x20');_0x5bcbce+=_0x266f64[_0x71ed('0x62')][_0xf8938a][_0x71ed('0x63')]?_0x253ae2(_0x266f64[_0x71ed('0x62')][_0xf8938a][_0x71ed('0x63')]):_0x266f64[_0x71ed('0x62')][_0xf8938a][_0x71ed('0x64')]+'\x20'+_0x266f64[_0x71ed('0x62')][_0xf8938a]['condition']+(_0x307668(_0x266f64['rules'][_0xf8938a][_0x71ed('0x65')])?'\x20'+_0x266f64[_0x71ed('0x62')][_0xf8938a][_0x71ed('0x85')]:'');}return _0x5bcbce+')';};var _0x6cf2f4={'where':{'id':_0x1835ff['id']}},_0x307911,_0x1d6198,_0x183d18,_0x5ac5ee,_0x13aa56;_0x6cf2f4=_[_0x71ed('0x3f')]({},_0x6cf2f4,_0x310d7a);return db['AnalyticCustomReport'][_0x71ed('0x44')](_0x6cf2f4)[_0x71ed('0x24')](function(_0x2ba495){if(_0x2ba495){_0x307911=_0x2ba495;return _0x2ba495[_0x71ed('0x86')]();}return null;})['then'](function(_0x4ea7d8){if(_0x4ea7d8){if(!_0x4ea7d8[_0x71ed('0x37')]){throw new db[(_0x71ed('0x66'))][(_0x71ed('0x67'))](_0x71ed('0x68'),0x193);}_0x1d6198=_0x4ea7d8;return db[_0x71ed('0x69')][_0x71ed('0x6a')]({'raw':!![]});}return null;})['then'](function(_0x8db262){if(_0x8db262){_0x183d18=_[_0x71ed('0x6b')](_0x8db262,'id');var _0x2dc3ab;var _0x9b386a=squel['select']();_0x9b386a[_0x71ed('0x6d')](_0x307911[_0x71ed('0x6e')]);for(var _0x247d54=0x0;_0x247d54<_0x1d6198[_0x71ed('0x37')];_0x247d54+=0x1){_0x2dc3ab=_0x1d6198[_0x247d54][_0x71ed('0x6f')]?_0x183d18[_0x1d6198[_0x247d54]['MetricId']]['metric']:_0x1d6198[_0x247d54]['field'];_0x2dc3ab=_0x1d6198[_0x247d54][_0x71ed('0x71')]?_['replace'](_0x2b557f[_0x1d6198[_0x247d54][_0x71ed('0x71')]],'%s',_0x2dc3ab):_0x2dc3ab;_0x2dc3ab=_0x1d6198[_0x247d54]['format']?_[_0x71ed('0x72')](_0x4e8cf1[_0x1d6198[_0x247d54]['format']],'%s',_0x2dc3ab):_0x2dc3ab;if(_0x1d6198[_0x247d54][_0x71ed('0x74')]){_0x9b386a['group'](_0x2dc3ab);}_0x1d6198[_0x247d54]['orderBy']&&_0x9b386a['order'](_0x2dc3ab,_0x1d6198[_0x247d54][_0x71ed('0x75')]===_0x71ed('0x76')?![]:!![]);_0x9b386a[_0x71ed('0x64')](_0x2dc3ab,_0x1d6198[_0x247d54]['alias']||_0x2dc3ab);}if(_0x307911[_0x71ed('0x77')]){_0x307911[_0x71ed('0x77')]=JSON[_0x71ed('0x7b')](_0x307911[_0x71ed('0x77')]);for(var _0x167f20=0x0;_0x167f20<_0x307911['joins'][_0x71ed('0x37')];_0x167f20+=0x1){if(_0x307911[_0x71ed('0x77')][_0x167f20]['type']&&_[_0x71ed('0x5e')](_0xd21dee,_0x307911['joins'][_0x167f20][_0x71ed('0x2e')])&&_0x307911[_0x71ed('0x77')][_0x167f20][_0x71ed('0x78')]&&_0x307911['joins'][_0x167f20]['foreignTable']&&_0x307911[_0x71ed('0x77')][_0x167f20][_0x71ed('0x87')]){_0x9b386a[_0x307911[_0x71ed('0x77')][_0x167f20][_0x71ed('0x2e')]](_0x307911[_0x71ed('0x77')][_0x167f20][_0x71ed('0x79')],null,util[_0x71ed('0x73')]('%s.%s\x20=\x20%s.%s',_0x307911[_0x71ed('0x6e')],_0x307911['joins'][_0x167f20][_0x71ed('0x78')],_0x307911[_0x71ed('0x77')][_0x167f20][_0x71ed('0x79')],_0x307911[_0x71ed('0x77')][_0x167f20][_0x71ed('0x87')]));}}}if(_0x307911[_0x71ed('0x7a')]){_0x307911[_0x71ed('0x7a')]=JSON[_0x71ed('0x7b')](_0x307911[_0x71ed('0x7a')]);_0x9b386a['where'](_0x253ae2(_0x307911[_0x71ed('0x7a')]['group']));}_0x13aa56=_0x9b386a['clone']();_0x9b386a[_0x71ed('0x1d')](_0x17553c);_0x9b386a[_0x71ed('0x1e')](0x0);return;}})[_0x71ed('0x24')](function(){if(_0x4c8245[_0x71ed('0x88')]===_0x71ed('0x89')){return null;}var _0x4548a2=_[_0x71ed('0x3f')](_0x4c8245,{'name':_0x4c8245['fullPath']||_0x4c8245[_0x71ed('0x29')]||_0x307911['name'],'basename':_0x971234,'savename':util[_0x71ed('0x73')]('%s-%s.%s',_0x4c8245['name']||_0x307911[_0x71ed('0x29')],require(_0x71ed('0x8a'))[_0x71ed('0x8b')](0x4),_0x4c8245[_0x71ed('0x88')]||_0x71ed('0x8c')),'reportId':_0x307911['id'],'reportType':_0x71ed('0x8d')});return db[_0x71ed('0x8e')][_0x71ed('0x45')](_0x4548a2,{'raw':!![]});})[_0x71ed('0x24')](function(_0x57b1b6){if(_0x307911[_0x71ed('0x6e')]===_0x71ed('0x8f')){_0x13aa56[_0x71ed('0x3b')](_0x307911[_0x71ed('0x6e')]+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x4c8245[_0x71ed('0x90')],_0x4c8245[_0x71ed('0x91')]);}else{_0x13aa56[_0x71ed('0x3b')](_0x307911[_0x71ed('0x6e')]+_0x71ed('0x92'),_0x4c8245[_0x71ed('0x90')],_0x4c8245[_0x71ed('0x91')]);}if(_0x57b1b6){logger[_0x71ed('0x93')](_0x71ed('0x94'),_0x13aa56[_0x71ed('0x7e')]());require(_0x71ed('0x95'))['fork'](path['join'](__dirname,_0x71ed('0x96'),_0x57b1b6[_0x71ed('0x88')]),[_0x57b1b6['id'],_0x13aa56[_0x71ed('0x7e')](),path['join'](__dirname,'../../files/reports',_0x57b1b6[_0x71ed('0x97')]),_0x971234]);return _0x57b1b6;}else{var _0x3e35bf=squel['select']();_0x3e35bf[_0x71ed('0x6d')]('('+_0x13aa56['toString']()+')','countTable');_0x3e35bf[_0x71ed('0x64')]('COUNT(*)',_0x71ed('0x1f'));_0x13aa56[_0x71ed('0x1d')](_0x4c8245[_0x71ed('0x1d')]||_0x17553c);_0x13aa56[_0x71ed('0x1e')](_0x4c8245[_0x71ed('0x1e')]||0x0);return dbH[_0x71ed('0x7f')][_0x71ed('0x32')](_0x3e35bf['toString'](),{'type':dbH[_0x71ed('0x7f')][_0x71ed('0x80')][_0x71ed('0x81')]})[_0x71ed('0x24')](function(_0x25d00b){if(!_0x25d00b['length']){_0x5ac5ee=0x0;}else{_0x5ac5ee=_0x25d00b[0x0]['count']||0x0;}return dbH[_0x71ed('0x7f')][_0x71ed('0x32')](_0x13aa56['toString'](),{'type':dbH[_0x71ed('0x7f')][_0x71ed('0x80')][_0x71ed('0x81')]});})[_0x71ed('0x24')](function(_0x1efe60){return{'rows':_0x1efe60||[],'count':_0x5ac5ee};});}});}exports[_0x71ed('0x98')]=function(_0x871864,_0x240c15){return runReport(_0x871864[_0x71ed('0x4d')],_0x871864[_0x71ed('0x32')],_0x871864['options'])[_0x71ed('0x24')](respondWithResult(_0x240c15,null))[_0x71ed('0x42')](handleError(_0x240c15,null));};exports[_0x71ed('0x99')]=runReport;exports[_0x71ed('0x32')]=function(_0x4f05c7,_0x2e1240){var _0x7e7a0b=0xa;var _0x3a02ab=[_0x71ed('0x4f'),_0x71ed('0x50'),_0x71ed('0x51'),'cross_join'];var _0x476ee0={'SUM':_0x71ed('0x82'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x71ed('0x54'),'MAX':_0x71ed('0x55'),'MIN':_0x71ed('0x56'),'AVG':_0x71ed('0x9a'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x71ed('0x58'),'GROUP_CONCAT DESC':_0x71ed('0x9b')};var _0x244068={'SEC_TO_TIME':_0x71ed('0x59'),'DATE':'DATE(%s)','HOUR':_0x71ed('0x5b'),'ROUND':_0x71ed('0x5c'),'UNIX_TIMESTAMP':_0x71ed('0x5d')};var _0x3c16e4=function(_0x4d99fe){return!_[_0x71ed('0x5e')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x71ed('0x83'),_0x71ed('0x61')],_0x4d99fe);};var _0x1e8f0a=function(_0x2d5fd9){if(!_0x2d5fd9||!_0x2d5fd9[_0x71ed('0x62')][_0x71ed('0x37')]){return'';}for(var _0x5d8e12='(',_0x596c93=0x0;_0x596c93<_0x2d5fd9[_0x71ed('0x62')][_0x71ed('0x37')];_0x596c93+=0x1){_0x596c93>0x0&&(_0x5d8e12+='\x20'+_0x2d5fd9[_0x71ed('0x84')]+'\x20');_0x5d8e12+=_0x2d5fd9[_0x71ed('0x62')][_0x596c93][_0x71ed('0x63')]?_0x1e8f0a(_0x2d5fd9[_0x71ed('0x62')][_0x596c93][_0x71ed('0x63')]):_0x2d5fd9['rules'][_0x596c93]['field']+'\x20'+_0x2d5fd9['rules'][_0x596c93][_0x71ed('0x65')]+(_0x3c16e4(_0x2d5fd9[_0x71ed('0x62')][_0x596c93][_0x71ed('0x65')])?'\x20'+_0x2d5fd9[_0x71ed('0x62')][_0x596c93][_0x71ed('0x85')]:'');}return _0x5d8e12+')';};var _0x140e16={'where':{'id':_0x4f05c7[_0x71ed('0x4d')]['id']}},_0x2de96c,_0x4e3dde,_0x4dd489,_0x4a1665,_0x417615;_0x140e16=_[_0x71ed('0x3f')]({},_0x140e16,_0x4f05c7['options']);return db[_0x71ed('0x2b')][_0x71ed('0x44')](_0x140e16)[_0x71ed('0x24')](function(_0x2995b2){if(_0x2995b2){_0x2de96c=_0x2995b2;return _0x2995b2[_0x71ed('0x86')]();}return null;})['then'](function(_0x2a30c0){if(_0x2a30c0){if(!_0x2a30c0['length']){throw new db['Sequelize'][(_0x71ed('0x67'))](_0x71ed('0x68'),0x193);}_0x4e3dde=_0x2a30c0;return db[_0x71ed('0x69')][_0x71ed('0x6a')]({'raw':!![]});}return null;})['then'](function(_0x87428c){if(_0x87428c){_0x4dd489=_[_0x71ed('0x6b')](_0x87428c,'id');var _0x4ee0c1;var _0x2eea96=squel['select']();_0x2eea96['from'](_0x2de96c[_0x71ed('0x6e')]);for(var _0x4f189d=0x0;_0x4f189d<_0x4e3dde[_0x71ed('0x37')];_0x4f189d+=0x1){_0x4ee0c1=_0x4e3dde[_0x4f189d][_0x71ed('0x6f')]?_0x4dd489[_0x4e3dde[_0x4f189d][_0x71ed('0x6f')]][_0x71ed('0x70')]:_0x4e3dde[_0x4f189d]['field'];_0x4ee0c1=_0x4e3dde[_0x4f189d][_0x71ed('0x71')]?_[_0x71ed('0x72')](_0x476ee0[_0x4e3dde[_0x4f189d][_0x71ed('0x71')]],'%s',_0x4ee0c1):_0x4ee0c1;_0x4ee0c1=_0x4e3dde[_0x4f189d][_0x71ed('0x73')]?_[_0x71ed('0x72')](_0x244068[_0x4e3dde[_0x4f189d][_0x71ed('0x73')]],'%s',_0x4ee0c1):_0x4ee0c1;if(_0x4e3dde[_0x4f189d]['groupBy']){_0x2eea96['group'](_0x4ee0c1);}_0x4e3dde[_0x4f189d][_0x71ed('0x75')]&&_0x2eea96[_0x71ed('0x39')](_0x4ee0c1,_0x4e3dde[_0x4f189d][_0x71ed('0x75')]===_0x71ed('0x76')?![]:!![]);_0x2eea96[_0x71ed('0x64')](_0x4ee0c1,_0x4e3dde[_0x4f189d][_0x71ed('0x9c')]||_0x4ee0c1);}if(_0x2de96c[_0x71ed('0x77')]){_0x2de96c[_0x71ed('0x77')]=JSON[_0x71ed('0x7b')](_0x2de96c[_0x71ed('0x77')]);for(var _0x204fed=0x0;_0x204fed<_0x2de96c['joins']['length'];_0x204fed+=0x1){if(_0x2de96c[_0x71ed('0x77')][_0x204fed][_0x71ed('0x2e')]&&_[_0x71ed('0x5e')](_0x3a02ab,_0x2de96c['joins'][_0x204fed]['type'])&&_0x2de96c[_0x71ed('0x77')][_0x204fed][_0x71ed('0x78')]&&_0x2de96c[_0x71ed('0x77')][_0x204fed]['foreignTable']&&_0x2de96c[_0x71ed('0x77')][_0x204fed]['foreignKey']){_0x2eea96[_0x2de96c[_0x71ed('0x77')][_0x204fed]['type']](_0x2de96c['joins'][_0x204fed][_0x71ed('0x79')],null,util[_0x71ed('0x73')](_0x71ed('0x9d'),_0x2de96c[_0x71ed('0x6e')],_0x2de96c['joins'][_0x204fed][_0x71ed('0x78')],_0x2de96c[_0x71ed('0x77')][_0x204fed][_0x71ed('0x79')],_0x2de96c[_0x71ed('0x77')][_0x204fed][_0x71ed('0x87')]));}}}if(_0x2de96c[_0x71ed('0x7a')]){_0x2de96c[_0x71ed('0x7a')]=JSON[_0x71ed('0x7b')](_0x2de96c[_0x71ed('0x7a')]);_0x2eea96['where'](_0x1e8f0a(_0x2de96c['conditions']['group']));}_0x417615=_0x2eea96['clone']();_0x2eea96['limit'](_0x7e7a0b);_0x2eea96[_0x71ed('0x1e')](0x0);logger[_0x71ed('0x9e')]('Limited\x20Query:',_0x2eea96[_0x71ed('0x7e')]());return dbH[_0x71ed('0x7f')]['query'](_0x2eea96[_0x71ed('0x7e')](),{'type':dbH[_0x71ed('0x7f')][_0x71ed('0x80')][_0x71ed('0x81')]});}})[_0x71ed('0x24')](function(){return{'sql':_0x417615[_0x71ed('0x7e')]()};})[_0x71ed('0x24')](respondWithResult(_0x2e1240,null))[_0x71ed('0x42')](handleError(_0x2e1240,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad1c=['bluebird','request-promise','rimraf','../../config/environment','exports','define','AnalyticCustomReport','analytics_custom_reports','api','moment'];(function(_0x2730da,_0x1098bd){var _0xfe9991=function(_0x2ea521){while(--_0x2ea521){_0x2730da['push'](_0x2730da['shift']());}};_0xfe9991(++_0x1098bd);}(_0xad1c,0x9e));var _0xcad1=function(_0x2cf2e9,_0xd58ea1){_0x2cf2e9=_0x2cf2e9-0x0;var _0xd3670d=_0xad1c[_0x2cf2e9];return _0xd3670d;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xcad1('0x0'));var moment=require(_0xcad1('0x1'));var BPromise=require(_0xcad1('0x2'));var rp=require(_0xcad1('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xcad1('0x4'));var config=require(_0xcad1('0x5'));var attributes=require('./analyticCustomReport.attributes');module[_0xcad1('0x6')]=function(_0x23136a,_0x228fe9){return _0x23136a[_0xcad1('0x7')](_0xcad1('0x8'),attributes,{'tableName':_0xcad1('0x9'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3d96=['util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./analyticCustomReport.attributes','exports','analytics_custom_reports'];(function(_0x47dcb1,_0x2e7067){var _0x532b9f=function(_0x1f3fb5){while(--_0x1f3fb5){_0x47dcb1['push'](_0x47dcb1['shift']());}};_0x532b9f(++_0x2e7067);}(_0x3d96,0xc8));var _0x63d9=function(_0x3bc5cb,_0x472fbf){_0x3bc5cb=_0x3bc5cb-0x0;var _0x52ba9f=_0x3d96[_0x3bc5cb];return _0x52ba9f;};'use strict';var _=require('lodash');var util=require(_0x63d9('0x0'));var logger=require(_0x63d9('0x1'))(_0x63d9('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x63d9('0x3'));var fs=require('fs');var path=require(_0x63d9('0x4'));var rimraf=require(_0x63d9('0x5'));var config=require(_0x63d9('0x6'));var attributes=require(_0x63d9('0x7'));module[_0x63d9('0x8')]=function(_0x4bf7b7,_0x4d4188){return _0x4bf7b7['define']('AnalyticCustomReport',attributes,{'tableName':_0x63d9('0x9'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcf5=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','randomstring','ioredis'];(function(_0x558e45,_0x4f5e4f){var _0x3e9075=function(_0x289725){while(--_0x289725){_0x558e45['push'](_0x558e45['shift']());}};_0x3e9075(++_0x4f5e4f);}(_0xbcf5,0x182));var _0x5bcf=function(_0x105c45,_0x4d4583){_0x105c45=_0x105c45-0x0;var _0x46cd1f=_0xbcf5[_0x105c45];return _0x46cd1f;};'use strict';var _=require(_0x5bcf('0x0'));var util=require(_0x5bcf('0x1'));var moment=require(_0x5bcf('0x2'));var BPromise=require('bluebird');var rs=require(_0x5bcf('0x3'));var fs=require('fs');var Redis=require(_0x5bcf('0x4'));var db=require(_0x5bcf('0x5'))['db'];var utils=require(_0x5bcf('0x6'));var logger=require(_0x5bcf('0x7'))(_0x5bcf('0x8'));var config=require(_0x5bcf('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x5bcf('0xa')][_0x5bcf('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2bb478,_0x5a2a5a,_0x1598b7){return new BPromise(function(_0x4dce44,_0x19b721){return client['request'](_0x2bb478,_0x1598b7)[_0x5bcf('0xc')](function(_0x109b2e){logger[_0x5bcf('0xd')](_0x5bcf('0xe'),_0x5a2a5a,_0x5bcf('0xf'));logger[_0x5bcf('0x10')](_0x5bcf('0x11'),_0x5a2a5a,_0x5bcf('0xf'),JSON[_0x5bcf('0x12')](_0x109b2e));if(_0x109b2e[_0x5bcf('0x13')]){if(_0x109b2e[_0x5bcf('0x13')][_0x5bcf('0x14')]===0x1f4){logger['error'](_0x5bcf('0xe'),_0x5a2a5a,_0x109b2e['error'][_0x5bcf('0x15')]);return _0x19b721(_0x109b2e['error'][_0x5bcf('0x15')]);}logger['error'](_0x5bcf('0xe'),_0x5a2a5a,_0x109b2e[_0x5bcf('0x13')]['message']);return _0x4dce44(_0x109b2e[_0x5bcf('0x13')][_0x5bcf('0x15')]);}else{logger[_0x5bcf('0xd')](_0x5bcf('0xe'),_0x5a2a5a,_0x5bcf('0xf'));_0x4dce44(_0x109b2e[_0x5bcf('0x16')]['message']);}})['catch'](function(_0x258e80){logger[_0x5bcf('0x13')](_0x5bcf('0xe'),_0x5a2a5a,_0x258e80);_0x19b721(_0x258e80);});});}
\ No newline at end of file
+var _0x41f4=['message','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x513987,_0x3b3093){var _0x7b2337=function(_0x4c51aa){while(--_0x4c51aa){_0x513987['push'](_0x513987['shift']());}};_0x7b2337(++_0x3b3093);}(_0x41f4,0x1ce));var _0x441f=function(_0x12fcf8,_0x7857bd){_0x12fcf8=_0x12fcf8-0x0;var _0xd45e55=_0x41f4[_0x12fcf8];return _0xd45e55;};'use strict';var _=require(_0x441f('0x0'));var util=require(_0x441f('0x1'));var moment=require(_0x441f('0x2'));var BPromise=require(_0x441f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x441f('0x4'));var db=require(_0x441f('0x5'))['db'];var utils=require(_0x441f('0x6'));var logger=require('../../config/logger')(_0x441f('0x7'));var config=require(_0x441f('0x8'));var jayson=require(_0x441f('0x9'));var client=jayson[_0x441f('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2cfe0d,_0x5a3115,_0x56e303){return new BPromise(function(_0x473330,_0x3dc408){return client[_0x441f('0xb')](_0x2cfe0d,_0x56e303)[_0x441f('0xc')](function(_0x2b7341){logger[_0x441f('0xd')](_0x441f('0xe'),_0x5a3115,_0x441f('0xf'));logger[_0x441f('0x10')](_0x441f('0x11'),_0x5a3115,_0x441f('0xf'),JSON[_0x441f('0x12')](_0x2b7341));if(_0x2b7341[_0x441f('0x13')]){if(_0x2b7341[_0x441f('0x13')][_0x441f('0x14')]===0x1f4){logger['error'](_0x441f('0xe'),_0x5a3115,_0x2b7341[_0x441f('0x13')][_0x441f('0x15')]);return _0x3dc408(_0x2b7341['error'][_0x441f('0x15')]);}logger['error'](_0x441f('0xe'),_0x5a3115,_0x2b7341[_0x441f('0x13')][_0x441f('0x15')]);return _0x473330(_0x2b7341[_0x441f('0x13')][_0x441f('0x15')]);}else{logger['info']('AnalyticCustomReport,\x20%s,\x20%s',_0x5a3115,'request\x20sent');_0x473330(_0x2b7341['result'][_0x441f('0x15')]);}})[_0x441f('0x16')](function(_0x30a12d){logger[_0x441f('0x13')]('AnalyticCustomReport,\x20%s,\x20%s',_0x5a3115,_0x30a12d);_0x3dc408(_0x30a12d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee71=['multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticCustomReport.controller','isAuthenticated','index','/:id','show','get','preview','/:id/run','run','/:id/query','query','post','put','update','delete','destroy'];(function(_0x2c428a,_0x732ed0){var _0x4a05c7=function(_0x5e995f){while(--_0x5e995f){_0x2c428a['push'](_0x2c428a['shift']());}};_0x4a05c7(++_0x732ed0);}(_0xee71,0x180));var _0x1ee7=function(_0x1fef2e,_0x38b3c2){_0x1fef2e=_0x1fef2e-0x0;var _0x51a4b5=_0xee71[_0x1fef2e];return _0x51a4b5;};'use strict';var multer=require(_0x1ee7('0x0'));var util=require('util');var path=require(_0x1ee7('0x1'));var timeout=require('connect-timeout');var express=require(_0x1ee7('0x2'));var router=express[_0x1ee7('0x3')]();var fs_extra=require(_0x1ee7('0x4'));var auth=require(_0x1ee7('0x5'));var interaction=require(_0x1ee7('0x6'));var config=require(_0x1ee7('0x7'));var controller=require(_0x1ee7('0x8'));router['get']('/',auth[_0x1ee7('0x9')](),controller[_0x1ee7('0xa')]);router['get'](_0x1ee7('0xb'),auth[_0x1ee7('0x9')](),controller[_0x1ee7('0xc')]);router[_0x1ee7('0xd')]('/:id/preview',auth['isAuthenticated'](),controller[_0x1ee7('0xe')]);router[_0x1ee7('0xd')](_0x1ee7('0xf'),auth[_0x1ee7('0x9')](),controller[_0x1ee7('0x10')]);router[_0x1ee7('0xd')](_0x1ee7('0x11'),auth[_0x1ee7('0x9')](),controller[_0x1ee7('0x12')]);router[_0x1ee7('0x13')]('/',auth[_0x1ee7('0x9')](),controller['create']);router[_0x1ee7('0x14')](_0x1ee7('0xb'),auth[_0x1ee7('0x9')](),controller[_0x1ee7('0x15')]);router[_0x1ee7('0x16')](_0x1ee7('0xb'),auth['isAuthenticated'](),controller[_0x1ee7('0x17')]);module['exports']=router;
\ No newline at end of file
+var _0xa4fa=['/:id/preview','isAuthenticated','preview','/:id/run','run','/:id/query','query','post','create','put','update','delete','destroy','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/:id'];(function(_0x8eb4eb,_0xa70079){var _0x1ff8e3=function(_0x1e118e){while(--_0x1e118e){_0x8eb4eb['push'](_0x8eb4eb['shift']());}};_0x1ff8e3(++_0xa70079);}(_0xa4fa,0xb5));var _0xaa4f=function(_0x91affa,_0x2d29a0){_0x91affa=_0x91affa-0x0;var _0x3f10be=_0xa4fa[_0x91affa];return _0x3f10be;};'use strict';var multer=require(_0xaa4f('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xaa4f('0x1'));var express=require(_0xaa4f('0x2'));var router=express[_0xaa4f('0x3')]();var fs_extra=require(_0xaa4f('0x4'));var auth=require(_0xaa4f('0x5'));var interaction=require(_0xaa4f('0x6'));var config=require(_0xaa4f('0x7'));var controller=require('./analyticCustomReport.controller');router[_0xaa4f('0x8')]('/',auth['isAuthenticated'](),controller[_0xaa4f('0x9')]);router[_0xaa4f('0x8')](_0xaa4f('0xa'),auth['isAuthenticated'](),controller['show']);router[_0xaa4f('0x8')](_0xaa4f('0xb'),auth[_0xaa4f('0xc')](),controller[_0xaa4f('0xd')]);router[_0xaa4f('0x8')](_0xaa4f('0xe'),auth[_0xaa4f('0xc')](),controller[_0xaa4f('0xf')]);router[_0xaa4f('0x8')](_0xaa4f('0x10'),auth[_0xaa4f('0xc')](),controller[_0xaa4f('0x11')]);router[_0xaa4f('0x12')]('/',auth[_0xaa4f('0xc')](),controller[_0xaa4f('0x13')]);router[_0xaa4f('0x14')](_0xaa4f('0xa'),auth['isAuthenticated'](),controller[_0xaa4f('0x15')]);router[_0xaa4f('0x16')](_0xaa4f('0xa'),auth[_0xaa4f('0xc')](),controller[_0xaa4f('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fab=['exports','STRING','TEXT','sequelize'];(function(_0xdbbdc2,_0x16a3be){var _0x20f387=function(_0x215f7d){while(--_0x215f7d){_0xdbbdc2['push'](_0xdbbdc2['shift']());}};_0x20f387(++_0x16a3be);}(_0x5fab,0x177));var _0xb5fa=function(_0x22153b,_0x4528ec){_0x22153b=_0x22153b-0x0;var _0x217dae=_0x5fab[_0x22153b];return _0x217dae;};'use strict';var Sequelize=require(_0xb5fa('0x0'));module[_0xb5fa('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0xb5fa('0x2')]},'parent':{'type':Sequelize[_0xb5fa('0x2')]},'table':{'type':Sequelize[_0xb5fa('0x2')]},'conditions':{'type':Sequelize[_0xb5fa('0x3')]},'joins':{'type':Sequelize[_0xb5fa('0x3')]}};
\ No newline at end of file
+var _0x5075=['exports','STRING','TEXT','sequelize'];(function(_0x16a223,_0x31b6e8){var _0x5ded66=function(_0x25eb5f){while(--_0x25eb5f){_0x16a223['push'](_0x16a223['shift']());}};_0x5ded66(++_0x31b6e8);}(_0x5075,0x73));var _0x5507=function(_0x4e85ec,_0x2913b6){_0x4e85ec=_0x4e85ec-0x0;var _0x1c1ab3=_0x5075[_0x4e85ec];return _0x1c1ab3;};'use strict';var Sequelize=require(_0x5507('0x0'));module[_0x5507('0x1')]={'name':{'type':Sequelize[_0x5507('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x5507('0x2')]},'parent':{'type':Sequelize[_0x5507('0x2')]},'table':{'type':Sequelize[_0x5507('0x2')]},'conditions':{'type':Sequelize[_0x5507('0x3')]},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3f8a=['get','DefaultReports','end','error','stack','name','send','index','map','AnalyticDefaultReport','rawAttributes','type','key','keys','intersection','model','attributes','fields','query','order','sort','filters','pick','filter','merge','VIRTUAL','options','where','include','findAll','catch','show','params','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','preview','join','left_join','right_join','SUM(%s)','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','length','operator','group','field','value','getFields','Sequelize','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','keyBy','select','from','table','MetricId','function','replace','format','groupBy','orderBy','alias','joins','parse','parentKey','foreignTable','foreignKey','conditions','Limited\x20Query:','sequelize','toString','SELECT','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','IS\x20NULL','condition','ValidationErrorItem','metric','DESC','clone','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','default','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','countTable','COUNT(*)','QueryTypes','run','runReport','%s.%s\x20=\x20%s.%s','debug','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','offset','undefined','limit','count','set','json','apply','reject','save','update','destroy','then'];(function(_0x3fb4cf,_0x4b7a87){var _0x1bad5d=function(_0xc30b2d){while(--_0xc30b2d){_0x3fb4cf['push'](_0x3fb4cf['shift']());}};_0x1bad5d(++_0x4b7a87);}(_0x3f8a,0x1d5));var _0xa3f8=function(_0x2be4f3,_0x212a79){_0x2be4f3=_0x2be4f3-0x0;var _0x1bc2b9=_0x3f8a[_0x2be4f3];return _0x1bc2b9;};'use strict';var emlformat=require(_0xa3f8('0x0'));var rimraf=require(_0xa3f8('0x1'));var zipdir=require(_0xa3f8('0x2'));var jsonpatch=require(_0xa3f8('0x3'));var rp=require('request-promise');var moment=require(_0xa3f8('0x4'));var BPromise=require(_0xa3f8('0x5'));var Mustache=require(_0xa3f8('0x6'));var util=require(_0xa3f8('0x7'));var path=require(_0xa3f8('0x8'));var sox=require(_0xa3f8('0x9'));var csv=require(_0xa3f8('0xa'));var ejs=require(_0xa3f8('0xb'));var fs=require('fs');var fs_extra=require(_0xa3f8('0xc'));var _=require(_0xa3f8('0xd'));var squel=require(_0xa3f8('0xe'));var crypto=require(_0xa3f8('0xf'));var jsforce=require(_0xa3f8('0x10'));var deskjs=require(_0xa3f8('0x11'));var toCsv=require(_0xa3f8('0xa'));var querystring=require(_0xa3f8('0x12'));var Papa=require(_0xa3f8('0x13'));var Redis=require('ioredis');var authService=require(_0xa3f8('0x14'));var qs=require(_0xa3f8('0x15'));var as=require(_0xa3f8('0x16'));var hardwareService=require(_0xa3f8('0x17'));var logger=require('../../config/logger')(_0xa3f8('0x18'));var utils=require(_0xa3f8('0x19'));var config=require(_0xa3f8('0x1a'));var licenseUtil=require(_0xa3f8('0x1b'));var db=require(_0xa3f8('0x1c'))['db'];var dbH=require(_0xa3f8('0x1c'))[_0xa3f8('0x1d')];function respondWithStatusCode(_0x63de8b,_0x324aa8){_0x324aa8=_0x324aa8||0xcc;return function(_0x36b1b8){if(_0x36b1b8){return _0x63de8b[_0xa3f8('0x1e')](_0x324aa8);}return _0x63de8b[_0xa3f8('0x1f')](_0x324aa8)['end']();};}function respondWithResult(_0x2d8f74,_0xe55848){_0xe55848=_0xe55848||0xc8;return function(_0x45014f){if(_0x45014f){return _0x2d8f74[_0xa3f8('0x1f')](_0xe55848)['json'](_0x45014f);}};}function respondWithFilteredResult(_0x39c450,_0x33b98e){return function(_0x46a8d9){if(_0x46a8d9){var _0x8cd130=typeof _0x33b98e[_0xa3f8('0x20')]===_0xa3f8('0x21')&&typeof _0x33b98e[_0xa3f8('0x22')]===_0xa3f8('0x21');var _0x2cb49f=_0x46a8d9[_0xa3f8('0x23')];var _0x54b870=_0x8cd130?0x0:_0x33b98e[_0xa3f8('0x20')];var _0x5a0e18=_0x8cd130?_0x46a8d9[_0xa3f8('0x23')]:_0x33b98e[_0xa3f8('0x20')]+_0x33b98e[_0xa3f8('0x22')];var _0x46042d;if(_0x5a0e18>=_0x2cb49f){_0x5a0e18=_0x2cb49f;_0x46042d=0xc8;}else{_0x46042d=0xce;}_0x39c450['status'](_0x46042d);return _0x39c450[_0xa3f8('0x24')]('Content-Range',_0x54b870+'-'+_0x5a0e18+'/'+_0x2cb49f)[_0xa3f8('0x25')](_0x46a8d9);}return null;};}function patchUpdates(_0x58336d){return function(_0x4066bb){try{jsonpatch[_0xa3f8('0x26')](_0x4066bb,_0x58336d,!![]);}catch(_0x353daa){return BPromise[_0xa3f8('0x27')](_0x353daa);}return _0x4066bb[_0xa3f8('0x28')]();};}function saveUpdates(_0x1e5f30,_0x187352){return function(_0x490717){if(_0x490717){return _0x490717[_0xa3f8('0x29')](_0x1e5f30)['then'](function(_0x3ce57b){return _0x3ce57b;});}return null;};}function removeEntity(_0xa5a697,_0x24985a){return function(_0x37b290){if(_0x37b290){return _0x37b290[_0xa3f8('0x2a')]()[_0xa3f8('0x2b')](function(){var _0x6e3cb4=_0x37b290[_0xa3f8('0x2c')]({'plain':!![]});var _0x1e22b8=_0xa3f8('0x2d');return db['UserProfileResource'][_0xa3f8('0x2a')]({'where':{'type':_0x1e22b8,'resourceId':_0x6e3cb4['id']}})[_0xa3f8('0x2b')](function(){return _0x37b290;});})[_0xa3f8('0x2b')](function(){_0xa5a697['status'](0xcc)[_0xa3f8('0x2e')]();});}};}function handleEntityNotFound(_0x57f6be,_0xbad6a6){return function(_0x3a3746){if(!_0x3a3746){_0x57f6be[_0xa3f8('0x1e')](0x194);}return _0x3a3746;};}function handleError(_0x4ea213,_0x458824){_0x458824=_0x458824||0x1f4;return function(_0x5e69e2){logger[_0xa3f8('0x2f')](_0x5e69e2[_0xa3f8('0x30')]);if(_0x5e69e2[_0xa3f8('0x31')]){delete _0x5e69e2[_0xa3f8('0x31')];}_0x4ea213[_0xa3f8('0x1f')](_0x458824)[_0xa3f8('0x32')](_0x5e69e2);};}exports[_0xa3f8('0x33')]=function(_0x424a3e,_0x25f9f5){var _0x290a4e={},_0x6e83b0={},_0x57c465={'count':0x0,'rows':[]};var _0x4404da=_[_0xa3f8('0x34')](db[_0xa3f8('0x35')][_0xa3f8('0x36')],function(_0x3bb4b0){return{'name':_0x3bb4b0['fieldName'],'type':_0x3bb4b0[_0xa3f8('0x37')][_0xa3f8('0x38')]};});_0x6e83b0['model']=_[_0xa3f8('0x34')](_0x4404da,_0xa3f8('0x31'));_0x6e83b0['query']=_[_0xa3f8('0x39')](_0x424a3e['query']);_0x6e83b0['filters']=_[_0xa3f8('0x3a')](_0x6e83b0[_0xa3f8('0x3b')],_0x6e83b0['query']);_0x290a4e[_0xa3f8('0x3c')]=_['intersection'](_0x6e83b0[_0xa3f8('0x3b')],qs[_0xa3f8('0x3d')](_0x424a3e[_0xa3f8('0x3e')][_0xa3f8('0x3d')]));_0x290a4e['attributes']=_0x290a4e[_0xa3f8('0x3c')]['length']?_0x290a4e[_0xa3f8('0x3c')]:_0x6e83b0['model'];if(!_0x424a3e[_0xa3f8('0x3e')]['hasOwnProperty']('nolimit')){_0x290a4e['limit']=qs[_0xa3f8('0x22')](_0x424a3e[_0xa3f8('0x3e')][_0xa3f8('0x22')]);_0x290a4e[_0xa3f8('0x20')]=qs['offset'](_0x424a3e[_0xa3f8('0x3e')][_0xa3f8('0x20')]);}_0x290a4e[_0xa3f8('0x3f')]=qs[_0xa3f8('0x40')](_0x424a3e[_0xa3f8('0x3e')][_0xa3f8('0x40')]);_0x290a4e['where']=qs[_0xa3f8('0x41')](_[_0xa3f8('0x42')](_0x424a3e[_0xa3f8('0x3e')],_0x6e83b0['filters']),_0x4404da);if(_0x424a3e[_0xa3f8('0x3e')][_0xa3f8('0x43')]){_0x290a4e['where']=_[_0xa3f8('0x44')](_0x290a4e['where'],{'$or':_[_0xa3f8('0x34')](_0x4404da,function(_0x5a077c){if(_0x5a077c[_0xa3f8('0x37')]!==_0xa3f8('0x45')){var _0x9a00e7={};_0x9a00e7[_0x5a077c[_0xa3f8('0x31')]]={'$like':'%'+_0x424a3e[_0xa3f8('0x3e')]['filter']+'%'};return _0x9a00e7;}})});}_0x290a4e=_[_0xa3f8('0x44')]({},_0x290a4e,_0x424a3e[_0xa3f8('0x46')]);var _0x4db9c5={'where':_0x290a4e[_0xa3f8('0x47')]};return db['AnalyticDefaultReport'][_0xa3f8('0x23')](_0x4db9c5)[_0xa3f8('0x2b')](function(_0x1542cc){_0x57c465[_0xa3f8('0x23')]=_0x1542cc;if(_0x424a3e[_0xa3f8('0x3e')]['includeAll']){_0x290a4e[_0xa3f8('0x48')]=[{'all':!![]}];}return db[_0xa3f8('0x35')][_0xa3f8('0x49')](_0x290a4e);})[_0xa3f8('0x2b')](function(_0x337808){_0x57c465['rows']=_0x337808;return _0x57c465;})[_0xa3f8('0x2b')](respondWithFilteredResult(_0x25f9f5,_0x290a4e))[_0xa3f8('0x4a')](handleError(_0x25f9f5,null));};exports[_0xa3f8('0x4b')]=function(_0x32e371,_0x2a124b){var _0x314dba={'raw':!![],'where':{'id':_0x32e371[_0xa3f8('0x4c')]['id']}},_0x497217={};_0x497217[_0xa3f8('0x3b')]=_[_0xa3f8('0x39')](db[_0xa3f8('0x35')][_0xa3f8('0x36')]);_0x497217[_0xa3f8('0x3e')]=_['keys'](_0x32e371['query']);_0x497217['filters']=_[_0xa3f8('0x3a')](_0x497217[_0xa3f8('0x3b')],_0x497217[_0xa3f8('0x3e')]);_0x314dba[_0xa3f8('0x3c')]=_[_0xa3f8('0x3a')](_0x497217[_0xa3f8('0x3b')],qs['fields'](_0x32e371[_0xa3f8('0x3e')][_0xa3f8('0x3d')]));_0x314dba[_0xa3f8('0x3c')]=_0x314dba[_0xa3f8('0x3c')]['length']?_0x314dba[_0xa3f8('0x3c')]:_0x497217[_0xa3f8('0x3b')];if(_0x32e371[_0xa3f8('0x3e')]['includeAll']){_0x314dba['include']=[{'all':!![]}];}_0x314dba=_['merge']({},_0x314dba,_0x32e371[_0xa3f8('0x46')]);return db[_0xa3f8('0x35')]['find'](_0x314dba)[_0xa3f8('0x2b')](handleEntityNotFound(_0x2a124b,null))[_0xa3f8('0x2b')](respondWithResult(_0x2a124b,null))[_0xa3f8('0x4a')](handleError(_0x2a124b,null));};exports[_0xa3f8('0x4d')]=function(_0x14932f,_0x3c74b5){return db[_0xa3f8('0x35')][_0xa3f8('0x4d')](_0x14932f[_0xa3f8('0x4e')],{})[_0xa3f8('0x2b')](function(_0x338554){var _0x29d8f5=_0x14932f[_0xa3f8('0x4f')][_0xa3f8('0x2c')]({'plain':!![]});if(!_0x29d8f5)throw new Error(_0xa3f8('0x50'));if(_0x29d8f5[_0xa3f8('0x51')]===_0xa3f8('0x4f')){var _0x559ae7=_0x338554['get']({'plain':!![]});var _0x1fad80=_0xa3f8('0x52');return db['UserProfileSection'][_0xa3f8('0x53')]({'where':{'name':_0x1fad80,'userProfileId':_0x29d8f5[_0xa3f8('0x54')]},'raw':!![]})[_0xa3f8('0x2b')](function(_0xaff79b){if(_0xaff79b&&_0xaff79b[_0xa3f8('0x55')]===0x0){return db[_0xa3f8('0x56')][_0xa3f8('0x4d')]({'name':_0x559ae7[_0xa3f8('0x31')],'resourceId':_0x559ae7['id'],'type':_0xa3f8('0x2d'),'sectionId':_0xaff79b['id']},{})[_0xa3f8('0x2b')](function(){return _0x338554;});}else{return _0x338554;}})[_0xa3f8('0x4a')](function(_0x3752fa){logger[_0xa3f8('0x2f')](_0xa3f8('0x57'),_0x3752fa);throw _0x3752fa;});}return _0x338554;})[_0xa3f8('0x2b')](respondWithResult(_0x3c74b5,0xc9))[_0xa3f8('0x4a')](handleError(_0x3c74b5,null));};exports['update']=function(_0x593614,_0xd0628e){if(_0x593614['body']['id']){delete _0x593614[_0xa3f8('0x4e')]['id'];}return db[_0xa3f8('0x35')][_0xa3f8('0x53')]({'where':{'id':_0x593614['params']['id']}})[_0xa3f8('0x2b')](handleEntityNotFound(_0xd0628e,null))[_0xa3f8('0x2b')](saveUpdates(_0x593614[_0xa3f8('0x4e')],null))[_0xa3f8('0x2b')](respondWithResult(_0xd0628e,null))['catch'](handleError(_0xd0628e,null));};exports[_0xa3f8('0x2a')]=function(_0x47cc0c,_0x392e1e){return db[_0xa3f8('0x35')][_0xa3f8('0x53')]({'where':{'id':_0x47cc0c['params']['id']}})['then'](handleEntityNotFound(_0x392e1e,null))[_0xa3f8('0x2b')](removeEntity(_0x392e1e,null))[_0xa3f8('0x4a')](handleError(_0x392e1e,null));};exports[_0xa3f8('0x58')]=function(_0x6ad40a,_0x48f5a6){var _0x36eac9=0xa;var _0x3478e8=[_0xa3f8('0x59'),_0xa3f8('0x5a'),_0xa3f8('0x5b'),'cross_join'];var _0x5d7877={'SUM':_0xa3f8('0x5c'),'COUNT':_0xa3f8('0x5d'),'COUNT DISTINCT':_0xa3f8('0x5e'),'MAX':_0xa3f8('0x5f'),'MIN':_0xa3f8('0x60'),'AVG':_0xa3f8('0x61'),'GROUP_CONCAT':_0xa3f8('0x62'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x521719={'SEC_TO_TIME':_0xa3f8('0x63'),'DATE':_0xa3f8('0x64'),'HOUR':_0xa3f8('0x65'),'ROUND':_0xa3f8('0x66'),'UNIX_TIMESTAMP':_0xa3f8('0x67')};var _0x27de61=function(_0x356643){return!_[_0xa3f8('0x68')](['IS\x20NULL',_0xa3f8('0x69'),_0xa3f8('0x6a'),_0xa3f8('0x6b')],_0x356643);};var _0x42e3f8=function(_0x27c5aa){if(!_0x27c5aa||!_0x27c5aa[_0xa3f8('0x6c')][_0xa3f8('0x6d')]){return'';}for(var _0x4d0404='(',_0x33ea06=0x0;_0x33ea06<_0x27c5aa[_0xa3f8('0x6c')]['length'];_0x33ea06+=0x1){_0x33ea06>0x0&&(_0x4d0404+='\x20'+_0x27c5aa[_0xa3f8('0x6e')]+'\x20');_0x4d0404+=_0x27c5aa[_0xa3f8('0x6c')][_0x33ea06][_0xa3f8('0x6f')]?_0x42e3f8(_0x27c5aa[_0xa3f8('0x6c')][_0x33ea06][_0xa3f8('0x6f')]):_0x27c5aa[_0xa3f8('0x6c')][_0x33ea06][_0xa3f8('0x70')]+'\x20'+_0x27c5aa['rules'][_0x33ea06]['condition']+(_0x27de61(_0x27c5aa[_0xa3f8('0x6c')][_0x33ea06]['condition'])?'\x20'+_0x27c5aa[_0xa3f8('0x6c')][_0x33ea06][_0xa3f8('0x71')]:'');}return _0x4d0404+')';};var _0x3ff369={'where':{'id':_0x6ad40a[_0xa3f8('0x4c')]['id']}},_0x1dba7e,_0x452e99,_0x35d4d6,_0xeca2dc,_0x14508d;_0x3ff369=_[_0xa3f8('0x44')]({},_0x3ff369,_0x6ad40a[_0xa3f8('0x46')]);return db[_0xa3f8('0x35')][_0xa3f8('0x53')](_0x3ff369)['then'](function(_0x5efdcf){if(_0x5efdcf){_0x1dba7e=_0x5efdcf;return _0x5efdcf[_0xa3f8('0x72')]();}return null;})[_0xa3f8('0x2b')](function(_0x1688ca){if(_0x1688ca){if(!_0x1688ca[_0xa3f8('0x6d')]){throw new db[(_0xa3f8('0x73'))]['ValidationErrorItem'](_0xa3f8('0x74'),0x193);}_0x452e99=_0x1688ca;return db[_0xa3f8('0x75')][_0xa3f8('0x49')]({'raw':!![]});}return null;})[_0xa3f8('0x2b')](function(_0x28d359){if(_0x28d359){_0x35d4d6=_[_0xa3f8('0x76')](_0x28d359,'id');var _0x3d45ae;var _0x3a2362=squel[_0xa3f8('0x77')]();_0x3a2362[_0xa3f8('0x78')](_0x1dba7e[_0xa3f8('0x79')]);for(var _0x5d4fe5=0x0;_0x5d4fe5<_0x452e99[_0xa3f8('0x6d')];_0x5d4fe5+=0x1){_0x3d45ae=_0x452e99[_0x5d4fe5][_0xa3f8('0x7a')]?_0x35d4d6[_0x452e99[_0x5d4fe5]['MetricId']]['metric']:_0x452e99[_0x5d4fe5][_0xa3f8('0x70')];_0x3d45ae=_0x452e99[_0x5d4fe5][_0xa3f8('0x7b')]?_[_0xa3f8('0x7c')](_0x5d7877[_0x452e99[_0x5d4fe5][_0xa3f8('0x7b')]],'%s',_0x3d45ae):_0x3d45ae;_0x3d45ae=_0x452e99[_0x5d4fe5][_0xa3f8('0x7d')]?_[_0xa3f8('0x7c')](_0x521719[_0x452e99[_0x5d4fe5][_0xa3f8('0x7d')]],'%s',_0x3d45ae):_0x3d45ae;if(_0x452e99[_0x5d4fe5][_0xa3f8('0x7e')]){_0x3a2362['group'](_0x3d45ae);}_0x452e99[_0x5d4fe5][_0xa3f8('0x7f')]&&_0x3a2362[_0xa3f8('0x3f')](_0x3d45ae,_0x452e99[_0x5d4fe5][_0xa3f8('0x7f')]==='DESC'?![]:!![]);_0x3a2362[_0xa3f8('0x70')](_0x3d45ae,_0x452e99[_0x5d4fe5][_0xa3f8('0x80')]||_0x3d45ae);}if(_0x1dba7e['joins']){_0x1dba7e[_0xa3f8('0x81')]=JSON[_0xa3f8('0x82')](_0x1dba7e[_0xa3f8('0x81')]);for(var _0x14a5b5=0x0;_0x14a5b5<_0x1dba7e[_0xa3f8('0x81')][_0xa3f8('0x6d')];_0x14a5b5+=0x1){if(_0x1dba7e[_0xa3f8('0x81')][_0x14a5b5][_0xa3f8('0x37')]&&_[_0xa3f8('0x68')](_0x3478e8,_0x1dba7e['joins'][_0x14a5b5][_0xa3f8('0x37')])&&_0x1dba7e['joins'][_0x14a5b5][_0xa3f8('0x83')]&&_0x1dba7e['joins'][_0x14a5b5][_0xa3f8('0x84')]&&_0x1dba7e[_0xa3f8('0x81')][_0x14a5b5][_0xa3f8('0x85')]){_0x3a2362[_0x1dba7e[_0xa3f8('0x81')][_0x14a5b5][_0xa3f8('0x37')]](_0x1dba7e['joins'][_0x14a5b5][_0xa3f8('0x84')],null,util[_0xa3f8('0x7d')]('%s.%s\x20=\x20%s.%s',_0x1dba7e[_0xa3f8('0x79')],_0x1dba7e[_0xa3f8('0x81')][_0x14a5b5][_0xa3f8('0x83')],_0x1dba7e[_0xa3f8('0x81')][_0x14a5b5][_0xa3f8('0x84')],_0x1dba7e[_0xa3f8('0x81')][_0x14a5b5]['foreignKey']));}}}if(_0x1dba7e[_0xa3f8('0x86')]){_0x1dba7e[_0xa3f8('0x86')]=JSON[_0xa3f8('0x82')](_0x1dba7e['conditions']);_0x3a2362[_0xa3f8('0x47')](_0x42e3f8(_0x1dba7e['conditions'][_0xa3f8('0x6f')]));}_0x14508d=_0x3a2362['clone']();_0x3a2362['limit'](_0x36eac9);_0x3a2362[_0xa3f8('0x20')](0x0);logger['debug'](_0xa3f8('0x87'),_0x3a2362['toString']());return dbH[_0xa3f8('0x88')][_0xa3f8('0x3e')](_0x3a2362[_0xa3f8('0x89')](),{'type':dbH[_0xa3f8('0x88')]['QueryTypes'][_0xa3f8('0x8a')]});}})[_0xa3f8('0x2b')](respondWithResult(_0x48f5a6,null))['catch'](handleError(_0x48f5a6,null));};function runReport(_0x3187e0,_0xd0d568,_0x3715ea){var _0x345089=_0xd0d568[_0xa3f8('0x31')];var _0x20ae51=0xa;var _0x190ce8=[_0xa3f8('0x59'),_0xa3f8('0x5a'),_0xa3f8('0x5b'),'cross_join'];var _0x7dc5ec={'SUM':_0xa3f8('0x5c'),'COUNT':_0xa3f8('0x5d'),'COUNT DISTINCT':_0xa3f8('0x5e'),'MAX':_0xa3f8('0x5f'),'MIN':_0xa3f8('0x60'),'AVG':_0xa3f8('0x61'),'GROUP_CONCAT':_0xa3f8('0x62'),'GROUP_CONCAT ASC':_0xa3f8('0x8b'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x2e2d99={'SEC_TO_TIME':_0xa3f8('0x63'),'DATE':_0xa3f8('0x64'),'HOUR':_0xa3f8('0x65'),'ROUND':_0xa3f8('0x66'),'UNIX_TIMESTAMP':_0xa3f8('0x67')};var _0x599484=function(_0x24fe62){return!_[_0xa3f8('0x68')]([_0xa3f8('0x8c'),_0xa3f8('0x69'),'IS\x20EMPTY',_0xa3f8('0x6b')],_0x24fe62);};var _0x427830=function(_0x3c5091){if(!_0x3c5091||!_0x3c5091[_0xa3f8('0x6c')][_0xa3f8('0x6d')]){return'';}for(var _0x2db7dd='(',_0x12fe03=0x0;_0x12fe03<_0x3c5091[_0xa3f8('0x6c')][_0xa3f8('0x6d')];_0x12fe03+=0x1){_0x12fe03>0x0&&(_0x2db7dd+='\x20'+_0x3c5091[_0xa3f8('0x6e')]+'\x20');_0x2db7dd+=_0x3c5091[_0xa3f8('0x6c')][_0x12fe03]['group']?_0x427830(_0x3c5091[_0xa3f8('0x6c')][_0x12fe03]['group']):_0x3c5091[_0xa3f8('0x6c')][_0x12fe03][_0xa3f8('0x70')]+'\x20'+_0x3c5091[_0xa3f8('0x6c')][_0x12fe03][_0xa3f8('0x8d')]+(_0x599484(_0x3c5091[_0xa3f8('0x6c')][_0x12fe03][_0xa3f8('0x8d')])?'\x20'+_0x3c5091[_0xa3f8('0x6c')][_0x12fe03][_0xa3f8('0x71')]:'');}return _0x2db7dd+')';};var _0x4bb7dd={'where':{'id':_0x3187e0['id']}},_0x2c6efe,_0x4f9513,_0x39bd5c,_0x52fcc3,_0x2d2883;_0x4bb7dd=_['merge']({},_0x4bb7dd,_0x3715ea);return db[_0xa3f8('0x35')][_0xa3f8('0x53')](_0x4bb7dd)[_0xa3f8('0x2b')](function(_0xe3cc6a){if(_0xe3cc6a){_0x2c6efe=_0xe3cc6a;return _0xe3cc6a['getFields']();}return null;})[_0xa3f8('0x2b')](function(_0x3d343f){if(_0x3d343f){if(!_0x3d343f[_0xa3f8('0x6d')]){throw new db[(_0xa3f8('0x73'))][(_0xa3f8('0x8e'))](_0xa3f8('0x74'),0x193);}_0x4f9513=_0x3d343f;return db['AnalyticMetric'][_0xa3f8('0x49')]({'raw':!![]});}return null;})[_0xa3f8('0x2b')](function(_0xbe1a54){if(_0xbe1a54){_0x39bd5c=_[_0xa3f8('0x76')](_0xbe1a54,'id');var _0x477b0a;var _0x565a10=squel[_0xa3f8('0x77')]();_0x565a10[_0xa3f8('0x78')](_0x2c6efe['table']);for(var _0x4494a5=0x0;_0x4494a5<_0x4f9513[_0xa3f8('0x6d')];_0x4494a5+=0x1){_0x477b0a=_0x4f9513[_0x4494a5][_0xa3f8('0x7a')]?_0x39bd5c[_0x4f9513[_0x4494a5]['MetricId']][_0xa3f8('0x8f')]:_0x4f9513[_0x4494a5][_0xa3f8('0x70')];_0x477b0a=_0x4f9513[_0x4494a5][_0xa3f8('0x7b')]?_[_0xa3f8('0x7c')](_0x7dc5ec[_0x4f9513[_0x4494a5][_0xa3f8('0x7b')]],'%s',_0x477b0a):_0x477b0a;_0x477b0a=_0x4f9513[_0x4494a5][_0xa3f8('0x7d')]?_[_0xa3f8('0x7c')](_0x2e2d99[_0x4f9513[_0x4494a5]['format']],'%s',_0x477b0a):_0x477b0a;if(_0x4f9513[_0x4494a5][_0xa3f8('0x7e')]){_0x565a10[_0xa3f8('0x6f')](_0x477b0a);}_0x4f9513[_0x4494a5]['orderBy']&&_0x565a10[_0xa3f8('0x3f')](_0x477b0a,_0x4f9513[_0x4494a5][_0xa3f8('0x7f')]===_0xa3f8('0x90')?![]:!![]);_0x565a10[_0xa3f8('0x70')](_0x477b0a,_0x4f9513[_0x4494a5][_0xa3f8('0x80')]||_0x477b0a);}if(_0x2c6efe[_0xa3f8('0x81')]){_0x2c6efe[_0xa3f8('0x81')]=JSON['parse'](_0x2c6efe[_0xa3f8('0x81')]);for(var _0x151bab=0x0;_0x151bab<_0x2c6efe[_0xa3f8('0x81')][_0xa3f8('0x6d')];_0x151bab+=0x1){if(_0x2c6efe[_0xa3f8('0x81')][_0x151bab][_0xa3f8('0x37')]&&_[_0xa3f8('0x68')](_0x190ce8,_0x2c6efe['joins'][_0x151bab][_0xa3f8('0x37')])&&_0x2c6efe[_0xa3f8('0x81')][_0x151bab][_0xa3f8('0x83')]&&_0x2c6efe[_0xa3f8('0x81')][_0x151bab]['foreignTable']&&_0x2c6efe['joins'][_0x151bab][_0xa3f8('0x85')]){_0x565a10[_0x2c6efe['joins'][_0x151bab][_0xa3f8('0x37')]](_0x2c6efe[_0xa3f8('0x81')][_0x151bab][_0xa3f8('0x84')],null,util['format']('%s.%s\x20=\x20%s.%s',_0x2c6efe[_0xa3f8('0x79')],_0x2c6efe[_0xa3f8('0x81')][_0x151bab][_0xa3f8('0x83')],_0x2c6efe[_0xa3f8('0x81')][_0x151bab]['foreignTable'],_0x2c6efe[_0xa3f8('0x81')][_0x151bab]['foreignKey']));}}}if(_0x2c6efe[_0xa3f8('0x86')]){_0x2c6efe[_0xa3f8('0x86')]=JSON[_0xa3f8('0x82')](_0x2c6efe['conditions']);_0x565a10['where'](_0x427830(_0x2c6efe['conditions'][_0xa3f8('0x6f')]));}_0x2d2883=_0x565a10[_0xa3f8('0x91')]();_0x565a10[_0xa3f8('0x22')](_0x20ae51);_0x565a10[_0xa3f8('0x20')](0x0);return;}})[_0xa3f8('0x2b')](function(){if(_0xd0d568[_0xa3f8('0x92')]===_0xa3f8('0x93')){return null;}var _0x18890e=_['merge'](_0xd0d568,{'name':_0xd0d568[_0xa3f8('0x94')]||_0xd0d568[_0xa3f8('0x31')]||_0x2c6efe[_0xa3f8('0x31')],'basename':_0x345089,'savename':util['format'](_0xa3f8('0x95'),_0xd0d568[_0xa3f8('0x31')]||_0x2c6efe['name'],require(_0xa3f8('0x96'))[_0xa3f8('0x97')](0x4),_0xd0d568['output']||_0xa3f8('0x98')),'reportId':_0x2c6efe['id'],'reportType':_0xa3f8('0x99')});return db['AnalyticExtractedReport'][_0xa3f8('0x4d')](_0x18890e,{'raw':!![]});})[_0xa3f8('0x2b')](function(_0x21cc1d){if(_0x2c6efe['table']===_0xa3f8('0x9a')){_0x2d2883[_0xa3f8('0x47')](_0x2c6efe[_0xa3f8('0x79')]+_0xa3f8('0x9b'),_0xd0d568[_0xa3f8('0x9c')],_0xd0d568['endDate']);}else{_0x2d2883['where'](_0x2c6efe[_0xa3f8('0x79')]+_0xa3f8('0x9d'),_0xd0d568[_0xa3f8('0x9c')],_0xd0d568[_0xa3f8('0x9e')]);}if(_0x21cc1d){logger['info'](_0xa3f8('0x9f'),_0x2d2883[_0xa3f8('0x89')]());require(_0xa3f8('0xa0'))[_0xa3f8('0xa1')](path[_0xa3f8('0x59')](__dirname,_0xa3f8('0xa2'),_0x21cc1d[_0xa3f8('0x92')]),[_0x21cc1d['id'],_0x2d2883[_0xa3f8('0x89')](),path['join'](__dirname,_0xa3f8('0xa3'),_0x21cc1d['savename']),_0x345089]);return _0x21cc1d;}else{var _0xe9842=squel['select']();_0xe9842['from']('('+_0x2d2883[_0xa3f8('0x89')]()+')',_0xa3f8('0xa4'));_0xe9842[_0xa3f8('0x70')](_0xa3f8('0xa5'),_0xa3f8('0x23'));_0x2d2883['limit'](_0xd0d568['limit']||_0x20ae51);_0x2d2883[_0xa3f8('0x20')](_0xd0d568[_0xa3f8('0x20')]||0x0);return dbH[_0xa3f8('0x88')][_0xa3f8('0x3e')](_0xe9842[_0xa3f8('0x89')](),{'type':dbH[_0xa3f8('0x88')]['QueryTypes'][_0xa3f8('0x8a')]})[_0xa3f8('0x2b')](function(_0x5a4f4a){if(!_0x5a4f4a['length']){_0x52fcc3=0x0;}else{_0x52fcc3=_0x5a4f4a[0x0][_0xa3f8('0x23')]||0x0;}return dbH[_0xa3f8('0x88')]['query'](_0x2d2883[_0xa3f8('0x89')](),{'type':dbH[_0xa3f8('0x88')][_0xa3f8('0xa6')][_0xa3f8('0x8a')]});})[_0xa3f8('0x2b')](function(_0x52f592){return{'rows':_0x52f592||[],'count':_0x52fcc3};});}});}exports[_0xa3f8('0xa7')]=function(_0x59026b,_0x234636){return runReport(_0x59026b[_0xa3f8('0x4c')],_0x59026b['query'],_0x59026b['options'])[_0xa3f8('0x2b')](respondWithResult(_0x234636,null))[_0xa3f8('0x4a')](handleError(_0x234636,null));};exports[_0xa3f8('0xa8')]=runReport;exports[_0xa3f8('0x3e')]=function(_0x26ec07,_0x2c9db8){var _0x18ab67=0xa;var _0x1f21a2=[_0xa3f8('0x59'),_0xa3f8('0x5a'),_0xa3f8('0x5b'),'cross_join'];var _0x15a11c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0xa3f8('0x5e'),'MAX':_0xa3f8('0x5f'),'MIN':_0xa3f8('0x60'),'AVG':_0xa3f8('0x61'),'GROUP_CONCAT':_0xa3f8('0x62'),'GROUP_CONCAT ASC':_0xa3f8('0x8b'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x481b70={'SEC_TO_TIME':_0xa3f8('0x63'),'DATE':_0xa3f8('0x64'),'HOUR':_0xa3f8('0x65'),'ROUND':_0xa3f8('0x66'),'UNIX_TIMESTAMP':_0xa3f8('0x67')};var _0x1f776a=function(_0x5b1527){return!_['includes']([_0xa3f8('0x8c'),_0xa3f8('0x69'),_0xa3f8('0x6a'),_0xa3f8('0x6b')],_0x5b1527);};var _0x4670cc=function(_0xfde509){if(!_0xfde509||!_0xfde509['rules']['length']){return'';}for(var _0x3d81fe='(',_0x15111a=0x0;_0x15111a<_0xfde509[_0xa3f8('0x6c')]['length'];_0x15111a+=0x1){_0x15111a>0x0&&(_0x3d81fe+='\x20'+_0xfde509[_0xa3f8('0x6e')]+'\x20');_0x3d81fe+=_0xfde509[_0xa3f8('0x6c')][_0x15111a]['group']?_0x4670cc(_0xfde509[_0xa3f8('0x6c')][_0x15111a]['group']):_0xfde509[_0xa3f8('0x6c')][_0x15111a]['field']+'\x20'+_0xfde509['rules'][_0x15111a][_0xa3f8('0x8d')]+(_0x1f776a(_0xfde509[_0xa3f8('0x6c')][_0x15111a][_0xa3f8('0x8d')])?'\x20'+_0xfde509[_0xa3f8('0x6c')][_0x15111a]['value']:'');}return _0x3d81fe+')';};var _0x2e694e={'where':{'id':_0x26ec07[_0xa3f8('0x4c')]['id']}},_0x1669be,_0x4f248f,_0x6ef1ad,_0xae3a31,_0x31d45c;_0x2e694e=_[_0xa3f8('0x44')]({},_0x2e694e,_0x26ec07[_0xa3f8('0x46')]);return db[_0xa3f8('0x35')][_0xa3f8('0x53')](_0x2e694e)[_0xa3f8('0x2b')](function(_0x529021){if(_0x529021){_0x1669be=_0x529021;return _0x529021[_0xa3f8('0x72')]();}return null;})[_0xa3f8('0x2b')](function(_0x35c498){if(_0x35c498){if(!_0x35c498[_0xa3f8('0x6d')]){throw new db[(_0xa3f8('0x73'))][(_0xa3f8('0x8e'))](_0xa3f8('0x74'),0x193);}_0x4f248f=_0x35c498;return db[_0xa3f8('0x75')]['findAll']({'raw':!![]});}return null;})[_0xa3f8('0x2b')](function(_0x286490){if(_0x286490){_0x6ef1ad=_['keyBy'](_0x286490,'id');var _0x16e98d;var _0x3be5c9=squel['select']();_0x3be5c9[_0xa3f8('0x78')](_0x1669be[_0xa3f8('0x79')]);for(var _0x5260e0=0x0;_0x5260e0<_0x4f248f[_0xa3f8('0x6d')];_0x5260e0+=0x1){_0x16e98d=_0x4f248f[_0x5260e0][_0xa3f8('0x7a')]?_0x6ef1ad[_0x4f248f[_0x5260e0]['MetricId']][_0xa3f8('0x8f')]:_0x4f248f[_0x5260e0][_0xa3f8('0x70')];_0x16e98d=_0x4f248f[_0x5260e0]['function']?_['replace'](_0x15a11c[_0x4f248f[_0x5260e0][_0xa3f8('0x7b')]],'%s',_0x16e98d):_0x16e98d;_0x16e98d=_0x4f248f[_0x5260e0][_0xa3f8('0x7d')]?_[_0xa3f8('0x7c')](_0x481b70[_0x4f248f[_0x5260e0]['format']],'%s',_0x16e98d):_0x16e98d;if(_0x4f248f[_0x5260e0]['groupBy']){_0x3be5c9[_0xa3f8('0x6f')](_0x16e98d);}_0x4f248f[_0x5260e0][_0xa3f8('0x7f')]&&_0x3be5c9['order'](_0x16e98d,_0x4f248f[_0x5260e0][_0xa3f8('0x7f')]==='DESC'?![]:!![]);_0x3be5c9[_0xa3f8('0x70')](_0x16e98d,_0x4f248f[_0x5260e0]['alias']||_0x16e98d);}if(_0x1669be[_0xa3f8('0x81')]){_0x1669be['joins']=JSON['parse'](_0x1669be[_0xa3f8('0x81')]);for(var _0x5ac693=0x0;_0x5ac693<_0x1669be[_0xa3f8('0x81')][_0xa3f8('0x6d')];_0x5ac693+=0x1){if(_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x37')]&&_[_0xa3f8('0x68')](_0x1f21a2,_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x37')])&&_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x83')]&&_0x1669be['joins'][_0x5ac693][_0xa3f8('0x84')]&&_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x85')]){_0x3be5c9[_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x37')]](_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x84')],null,util[_0xa3f8('0x7d')](_0xa3f8('0xa9'),_0x1669be[_0xa3f8('0x79')],_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x83')],_0x1669be[_0xa3f8('0x81')][_0x5ac693]['foreignTable'],_0x1669be[_0xa3f8('0x81')][_0x5ac693][_0xa3f8('0x85')]));}}}if(_0x1669be[_0xa3f8('0x86')]){_0x1669be[_0xa3f8('0x86')]=JSON[_0xa3f8('0x82')](_0x1669be[_0xa3f8('0x86')]);_0x3be5c9['where'](_0x4670cc(_0x1669be[_0xa3f8('0x86')][_0xa3f8('0x6f')]));}_0x31d45c=_0x3be5c9[_0xa3f8('0x91')]();_0x3be5c9[_0xa3f8('0x22')](_0x18ab67);_0x3be5c9[_0xa3f8('0x20')](0x0);logger[_0xa3f8('0xaa')](_0xa3f8('0x87'),_0x3be5c9[_0xa3f8('0x89')]());return dbH[_0xa3f8('0x88')][_0xa3f8('0x3e')](_0x3be5c9[_0xa3f8('0x89')](),{'type':dbH[_0xa3f8('0x88')][_0xa3f8('0xa6')][_0xa3f8('0x8a')]});}})[_0xa3f8('0x2b')](function(){return{'sql':_0x31d45c[_0xa3f8('0x89')]()};})[_0xa3f8('0x2b')](respondWithResult(_0x2c9db8,null))[_0xa3f8('0x4a')](handleError(_0x2c9db8,null));};
\ No newline at end of file
+var _0x7a54=['options','AnalyticDefaultReport','includeAll','include','show','keys','attributes','create','body','user','role','get','Reports','UserProfileSection','userProfileId','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','find','params','right_join','cross_join','SUM(%s)','COUNT(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','ROUND(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','group','condition','value','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','findAll','keyBy','select','from','MetricId','metric','field','function','replace','format','orderBy','DESC','joins','parse','type','parentKey','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','table','conditions','debug','toString','sequelize','QueryTypes','SELECT','join','left_join','COUNT(DISTINCT\x20%s)','MAX(%s)','HOUR(%s)','UNIX_TIMESTAMP(%s)','IS\x20EMPTY','operator','groupBy','alias','output','web','fullPath','%s-%s.%s','generate','default','AnalyticExtractedReport','cdr','startDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','endDate','info','Run\x20Query:','child_process','../../components/export/','../../files/reports','savename','countTable','COUNT(*)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','getFields','clone','Limited\x20Query:','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','limit','count','offset','Content-Range','apply','save','then','destroy','DefaultReports','error','stack','name','index','map','fieldName','model','query','filters','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge'];(function(_0x1ff804,_0x263135){var _0x3454b8=function(_0x5a95ec){while(--_0x5a95ec){_0x1ff804['push'](_0x1ff804['shift']());}};_0x3454b8(++_0x263135);}(_0x7a54,0x106));var _0x47a5=function(_0x272ee6,_0xc6963){_0x272ee6=_0x272ee6-0x0;var _0x4ae77f=_0x7a54[_0x272ee6];return _0x4ae77f;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));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 authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];var dbH=require(_0x47a5('0x15'))[_0x47a5('0x16')];function respondWithStatusCode(_0x5beb89,_0x44bd3e){_0x44bd3e=_0x44bd3e||0xcc;return function(_0x221b54){if(_0x221b54){return _0x5beb89[_0x47a5('0x17')](_0x44bd3e);}return _0x5beb89[_0x47a5('0x18')](_0x44bd3e)[_0x47a5('0x19')]();};}function respondWithResult(_0x620ee9,_0x3c6c46){_0x3c6c46=_0x3c6c46||0xc8;return function(_0x190faa){if(_0x190faa){return _0x620ee9['status'](_0x3c6c46)[_0x47a5('0x1a')](_0x190faa);}};}function respondWithFilteredResult(_0x11faf5,_0x3b001e){return function(_0x2a2cbb){if(_0x2a2cbb){var _0x1ef44c=typeof _0x3b001e['offset']==='undefined'&&typeof _0x3b001e[_0x47a5('0x1b')]==='undefined';var _0x5247fd=_0x2a2cbb[_0x47a5('0x1c')];var _0xaf70a6=_0x1ef44c?0x0:_0x3b001e[_0x47a5('0x1d')];var _0x1ef371=_0x1ef44c?_0x2a2cbb[_0x47a5('0x1c')]:_0x3b001e[_0x47a5('0x1d')]+_0x3b001e[_0x47a5('0x1b')];var _0xe3c618;if(_0x1ef371>=_0x5247fd){_0x1ef371=_0x5247fd;_0xe3c618=0xc8;}else{_0xe3c618=0xce;}_0x11faf5[_0x47a5('0x18')](_0xe3c618);return _0x11faf5['set'](_0x47a5('0x1e'),_0xaf70a6+'-'+_0x1ef371+'/'+_0x5247fd)[_0x47a5('0x1a')](_0x2a2cbb);}return null;};}function patchUpdates(_0x47cf3c){return function(_0x2b0360){try{jsonpatch[_0x47a5('0x1f')](_0x2b0360,_0x47cf3c,!![]);}catch(_0x36874d){return BPromise['reject'](_0x36874d);}return _0x2b0360[_0x47a5('0x20')]();};}function saveUpdates(_0x2f142b,_0x23db32){return function(_0x7a9f9e){if(_0x7a9f9e){return _0x7a9f9e['update'](_0x2f142b)[_0x47a5('0x21')](function(_0x385687){return _0x385687;});}return null;};}function removeEntity(_0x513981,_0x28747d){return function(_0xc4cd63){if(_0xc4cd63){return _0xc4cd63[_0x47a5('0x22')]()[_0x47a5('0x21')](function(){var _0x3abd6a=_0xc4cd63['get']({'plain':!![]});var _0x53078a=_0x47a5('0x23');return db['UserProfileResource'][_0x47a5('0x22')]({'where':{'type':_0x53078a,'resourceId':_0x3abd6a['id']}})['then'](function(){return _0xc4cd63;});})[_0x47a5('0x21')](function(){_0x513981[_0x47a5('0x18')](0xcc)[_0x47a5('0x19')]();});}};}function handleEntityNotFound(_0x1dac65,_0x21f296){return function(_0x3ba0b7){if(!_0x3ba0b7){_0x1dac65[_0x47a5('0x17')](0x194);}return _0x3ba0b7;};}function handleError(_0x136b14,_0x16631f){_0x16631f=_0x16631f||0x1f4;return function(_0x361bfa){logger[_0x47a5('0x24')](_0x361bfa[_0x47a5('0x25')]);if(_0x361bfa[_0x47a5('0x26')]){delete _0x361bfa['name'];}_0x136b14[_0x47a5('0x18')](_0x16631f)['send'](_0x361bfa);};}exports[_0x47a5('0x27')]=function(_0x9ac908,_0x16901f){var _0x4d6b57={},_0x256650={},_0x625952={'count':0x0,'rows':[]};var _0x39b50b=_[_0x47a5('0x28')](db['AnalyticDefaultReport']['rawAttributes'],function(_0x6f9a12){return{'name':_0x6f9a12[_0x47a5('0x29')],'type':_0x6f9a12['type']['key']};});_0x256650[_0x47a5('0x2a')]=_[_0x47a5('0x28')](_0x39b50b,'name');_0x256650[_0x47a5('0x2b')]=_['keys'](_0x9ac908[_0x47a5('0x2b')]);_0x256650[_0x47a5('0x2c')]=_['intersection'](_0x256650['model'],_0x256650[_0x47a5('0x2b')]);_0x4d6b57['attributes']=_[_0x47a5('0x2d')](_0x256650[_0x47a5('0x2a')],qs[_0x47a5('0x2e')](_0x9ac908['query'][_0x47a5('0x2e')]));_0x4d6b57['attributes']=_0x4d6b57['attributes'][_0x47a5('0x2f')]?_0x4d6b57['attributes']:_0x256650[_0x47a5('0x2a')];if(!_0x9ac908['query'][_0x47a5('0x30')](_0x47a5('0x31'))){_0x4d6b57[_0x47a5('0x1b')]=qs[_0x47a5('0x1b')](_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x1b')]);_0x4d6b57[_0x47a5('0x1d')]=qs[_0x47a5('0x1d')](_0x9ac908[_0x47a5('0x2b')]['offset']);}_0x4d6b57[_0x47a5('0x32')]=qs[_0x47a5('0x33')](_0x9ac908['query'][_0x47a5('0x33')]);_0x4d6b57[_0x47a5('0x34')]=qs[_0x47a5('0x2c')](_['pick'](_0x9ac908[_0x47a5('0x2b')],_0x256650[_0x47a5('0x2c')]),_0x39b50b);if(_0x9ac908['query'][_0x47a5('0x35')]){_0x4d6b57[_0x47a5('0x34')]=_['merge'](_0x4d6b57['where'],{'$or':_['map'](_0x39b50b,function(_0x12d9f2){if(_0x12d9f2['type']!==_0x47a5('0x36')){var _0x1f9631={};_0x1f9631[_0x12d9f2[_0x47a5('0x26')]]={'$like':'%'+_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x35')]+'%'};return _0x1f9631;}})});}_0x4d6b57=_[_0x47a5('0x37')]({},_0x4d6b57,_0x9ac908[_0x47a5('0x38')]);var _0x1f3d01={'where':_0x4d6b57[_0x47a5('0x34')]};return db[_0x47a5('0x39')][_0x47a5('0x1c')](_0x1f3d01)[_0x47a5('0x21')](function(_0x23d6d8){_0x625952['count']=_0x23d6d8;if(_0x9ac908[_0x47a5('0x2b')][_0x47a5('0x3a')]){_0x4d6b57[_0x47a5('0x3b')]=[{'all':!![]}];}return db[_0x47a5('0x39')]['findAll'](_0x4d6b57);})[_0x47a5('0x21')](function(_0x528ef3){_0x625952['rows']=_0x528ef3;return _0x625952;})['then'](respondWithFilteredResult(_0x16901f,_0x4d6b57))['catch'](handleError(_0x16901f,null));};exports[_0x47a5('0x3c')]=function(_0x5ec4e5,_0x2bb502){var _0x3a740b={'raw':!![],'where':{'id':_0x5ec4e5['params']['id']}},_0x448610={};_0x448610[_0x47a5('0x2a')]=_[_0x47a5('0x3d')](db['AnalyticDefaultReport']['rawAttributes']);_0x448610[_0x47a5('0x2b')]=_['keys'](_0x5ec4e5[_0x47a5('0x2b')]);_0x448610[_0x47a5('0x2c')]=_[_0x47a5('0x2d')](_0x448610[_0x47a5('0x2a')],_0x448610[_0x47a5('0x2b')]);_0x3a740b[_0x47a5('0x3e')]=_[_0x47a5('0x2d')](_0x448610[_0x47a5('0x2a')],qs[_0x47a5('0x2e')](_0x5ec4e5[_0x47a5('0x2b')][_0x47a5('0x2e')]));_0x3a740b[_0x47a5('0x3e')]=_0x3a740b[_0x47a5('0x3e')][_0x47a5('0x2f')]?_0x3a740b[_0x47a5('0x3e')]:_0x448610[_0x47a5('0x2a')];if(_0x5ec4e5['query'][_0x47a5('0x3a')]){_0x3a740b[_0x47a5('0x3b')]=[{'all':!![]}];}_0x3a740b=_['merge']({},_0x3a740b,_0x5ec4e5['options']);return db[_0x47a5('0x39')]['find'](_0x3a740b)[_0x47a5('0x21')](handleEntityNotFound(_0x2bb502,null))[_0x47a5('0x21')](respondWithResult(_0x2bb502,null))['catch'](handleError(_0x2bb502,null));};exports['create']=function(_0x3d85cc,_0x52d409){return db[_0x47a5('0x39')][_0x47a5('0x3f')](_0x3d85cc[_0x47a5('0x40')],{})[_0x47a5('0x21')](function(_0x44fe8a){var _0x26acd2=_0x3d85cc[_0x47a5('0x41')]['get']({'plain':!![]});if(!_0x26acd2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x26acd2[_0x47a5('0x42')]===_0x47a5('0x41')){var _0x1163e3=_0x44fe8a[_0x47a5('0x43')]({'plain':!![]});var _0x2c7020=_0x47a5('0x44');return db[_0x47a5('0x45')]['find']({'where':{'name':_0x2c7020,'userProfileId':_0x26acd2[_0x47a5('0x46')]},'raw':!![]})[_0x47a5('0x21')](function(_0x5f6a){if(_0x5f6a&&_0x5f6a['autoAssociation']===0x0){return db[_0x47a5('0x47')]['create']({'name':_0x1163e3[_0x47a5('0x26')],'resourceId':_0x1163e3['id'],'type':_0x47a5('0x23'),'sectionId':_0x5f6a['id']},{})[_0x47a5('0x21')](function(){return _0x44fe8a;});}else{return _0x44fe8a;}})[_0x47a5('0x48')](function(_0x588551){logger[_0x47a5('0x24')](_0x47a5('0x49'),_0x588551);throw _0x588551;});}return _0x44fe8a;})[_0x47a5('0x21')](respondWithResult(_0x52d409,0xc9))[_0x47a5('0x48')](handleError(_0x52d409,null));};exports[_0x47a5('0x4a')]=function(_0x6a53b3,_0x24e9f4){if(_0x6a53b3['body']['id']){delete _0x6a53b3[_0x47a5('0x40')]['id'];}return db[_0x47a5('0x39')][_0x47a5('0x4b')]({'where':{'id':_0x6a53b3[_0x47a5('0x4c')]['id']}})[_0x47a5('0x21')](handleEntityNotFound(_0x24e9f4,null))[_0x47a5('0x21')](saveUpdates(_0x6a53b3['body'],null))[_0x47a5('0x21')](respondWithResult(_0x24e9f4,null))[_0x47a5('0x48')](handleError(_0x24e9f4,null));};exports[_0x47a5('0x22')]=function(_0x53871e,_0x4c5ed){return db[_0x47a5('0x39')][_0x47a5('0x4b')]({'where':{'id':_0x53871e['params']['id']}})['then'](handleEntityNotFound(_0x4c5ed,null))[_0x47a5('0x21')](removeEntity(_0x4c5ed,null))[_0x47a5('0x48')](handleError(_0x4c5ed,null));};exports['preview']=function(_0x4cf792,_0x6d6b2b){var _0x4d6a82=0xa;var _0x16bb8a=['join','left_join',_0x47a5('0x4d'),_0x47a5('0x4e')];var _0x53eedf={'SUM':_0x47a5('0x4f'),'COUNT':_0x47a5('0x50'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':_0x47a5('0x53'),'GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x199621={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':_0x47a5('0x56'),'HOUR':'HOUR(%s)','ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':'UNIX_TIMESTAMP(%s)'};var _0x485e3c=function(_0x470da6){return!_[_0x47a5('0x58')]([_0x47a5('0x59'),_0x47a5('0x5a'),'IS\x20EMPTY',_0x47a5('0x5b')],_0x470da6);};var _0x5d1550=function(_0x5cbe97){if(!_0x5cbe97||!_0x5cbe97['rules']['length']){return'';}for(var _0x212d92='(',_0x6cd4ea=0x0;_0x6cd4ea<_0x5cbe97[_0x47a5('0x5c')]['length'];_0x6cd4ea+=0x1){_0x6cd4ea>0x0&&(_0x212d92+='\x20'+_0x5cbe97['operator']+'\x20');_0x212d92+=_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5d')]?_0x5d1550(_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5d')]):_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea]['field']+'\x20'+_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea]['condition']+(_0x485e3c(_0x5cbe97[_0x47a5('0x5c')][_0x6cd4ea][_0x47a5('0x5e')])?'\x20'+_0x5cbe97['rules'][_0x6cd4ea][_0x47a5('0x5f')]:'');}return _0x212d92+')';};var _0x345104={'where':{'id':_0x4cf792[_0x47a5('0x4c')]['id']}},_0x132854,_0x3e8274,_0x2d6494,_0x215634,_0x35cca8;_0x345104=_['merge']({},_0x345104,_0x4cf792[_0x47a5('0x38')]);return db[_0x47a5('0x39')][_0x47a5('0x4b')](_0x345104)[_0x47a5('0x21')](function(_0x396cb0){if(_0x396cb0){_0x132854=_0x396cb0;return _0x396cb0['getFields']();}return null;})[_0x47a5('0x21')](function(_0xdfcecc){if(_0xdfcecc){if(!_0xdfcecc[_0x47a5('0x2f')]){throw new db[(_0x47a5('0x60'))][(_0x47a5('0x61'))](_0x47a5('0x62'),0x193);}_0x3e8274=_0xdfcecc;return db[_0x47a5('0x63')][_0x47a5('0x64')]({'raw':!![]});}return null;})[_0x47a5('0x21')](function(_0x44cb90){if(_0x44cb90){_0x2d6494=_[_0x47a5('0x65')](_0x44cb90,'id');var _0x44fda9;var _0x3c0006=squel[_0x47a5('0x66')]();_0x3c0006[_0x47a5('0x67')](_0x132854['table']);for(var _0x42dd7d=0x0;_0x42dd7d<_0x3e8274[_0x47a5('0x2f')];_0x42dd7d+=0x1){_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x68')]?_0x2d6494[_0x3e8274[_0x42dd7d]['MetricId']][_0x47a5('0x69')]:_0x3e8274[_0x42dd7d][_0x47a5('0x6a')];_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x6b')]?_[_0x47a5('0x6c')](_0x53eedf[_0x3e8274[_0x42dd7d]['function']],'%s',_0x44fda9):_0x44fda9;_0x44fda9=_0x3e8274[_0x42dd7d][_0x47a5('0x6d')]?_['replace'](_0x199621[_0x3e8274[_0x42dd7d][_0x47a5('0x6d')]],'%s',_0x44fda9):_0x44fda9;if(_0x3e8274[_0x42dd7d]['groupBy']){_0x3c0006[_0x47a5('0x5d')](_0x44fda9);}_0x3e8274[_0x42dd7d]['orderBy']&&_0x3c0006[_0x47a5('0x32')](_0x44fda9,_0x3e8274[_0x42dd7d][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x3c0006['field'](_0x44fda9,_0x3e8274[_0x42dd7d]['alias']||_0x44fda9);}if(_0x132854['joins']){_0x132854[_0x47a5('0x70')]=JSON[_0x47a5('0x71')](_0x132854[_0x47a5('0x70')]);for(var _0x117510=0x0;_0x117510<_0x132854['joins'][_0x47a5('0x2f')];_0x117510+=0x1){if(_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x72')]&&_[_0x47a5('0x58')](_0x16bb8a,_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x72')])&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x73')]&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x74')]&&_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x75')]){_0x3c0006[_0x132854['joins'][_0x117510][_0x47a5('0x72')]](_0x132854['joins'][_0x117510][_0x47a5('0x74')],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x132854[_0x47a5('0x77')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x73')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x74')],_0x132854[_0x47a5('0x70')][_0x117510][_0x47a5('0x75')]));}}}if(_0x132854[_0x47a5('0x78')]){_0x132854[_0x47a5('0x78')]=JSON[_0x47a5('0x71')](_0x132854[_0x47a5('0x78')]);_0x3c0006[_0x47a5('0x34')](_0x5d1550(_0x132854['conditions']['group']));}_0x35cca8=_0x3c0006['clone']();_0x3c0006['limit'](_0x4d6a82);_0x3c0006[_0x47a5('0x1d')](0x0);logger[_0x47a5('0x79')]('Limited\x20Query:',_0x3c0006[_0x47a5('0x7a')]());return dbH[_0x47a5('0x7b')][_0x47a5('0x2b')](_0x3c0006[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')][_0x47a5('0x7d')]});}})[_0x47a5('0x21')](respondWithResult(_0x6d6b2b,null))[_0x47a5('0x48')](handleError(_0x6d6b2b,null));};function runReport(_0x1ffe3c,_0x24a6c1,_0x5e5f16){var _0x18fa31=_0x24a6c1[_0x47a5('0x26')];var _0x420671=0xa;var _0x4f35ff=[_0x47a5('0x7e'),_0x47a5('0x7f'),_0x47a5('0x4d'),'cross_join'];var _0x19dc8c={'SUM':'SUM(%s)','COUNT':'COUNT(%s)','COUNT DISTINCT':_0x47a5('0x80'),'MAX':_0x47a5('0x81'),'MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':_0x47a5('0x53'),'GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x592322={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':'DATE(%s)','HOUR':_0x47a5('0x82'),'ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':_0x47a5('0x83')};var _0xb16bdd=function(_0x53ea2b){return!_[_0x47a5('0x58')](['IS\x20NULL','IS\x20NOT\x20NULL',_0x47a5('0x84'),_0x47a5('0x5b')],_0x53ea2b);};var _0x5b91f7=function(_0x1926bd){if(!_0x1926bd||!_0x1926bd[_0x47a5('0x5c')][_0x47a5('0x2f')]){return'';}for(var _0x4c25ec='(',_0x280372=0x0;_0x280372<_0x1926bd['rules'][_0x47a5('0x2f')];_0x280372+=0x1){_0x280372>0x0&&(_0x4c25ec+='\x20'+_0x1926bd[_0x47a5('0x85')]+'\x20');_0x4c25ec+=_0x1926bd[_0x47a5('0x5c')][_0x280372]['group']?_0x5b91f7(_0x1926bd[_0x47a5('0x5c')][_0x280372][_0x47a5('0x5d')]):_0x1926bd[_0x47a5('0x5c')][_0x280372]['field']+'\x20'+_0x1926bd[_0x47a5('0x5c')][_0x280372]['condition']+(_0xb16bdd(_0x1926bd[_0x47a5('0x5c')][_0x280372]['condition'])?'\x20'+_0x1926bd[_0x47a5('0x5c')][_0x280372][_0x47a5('0x5f')]:'');}return _0x4c25ec+')';};var _0x20a742={'where':{'id':_0x1ffe3c['id']}},_0x211fbf,_0x51738b,_0x42fcce,_0x2ae130,_0x23c393;_0x20a742=_[_0x47a5('0x37')]({},_0x20a742,_0x5e5f16);return db[_0x47a5('0x39')]['find'](_0x20a742)['then'](function(_0x569550){if(_0x569550){_0x211fbf=_0x569550;return _0x569550['getFields']();}return null;})[_0x47a5('0x21')](function(_0xa8809a){if(_0xa8809a){if(!_0xa8809a[_0x47a5('0x2f')]){throw new db['Sequelize'][(_0x47a5('0x61'))](_0x47a5('0x62'),0x193);}_0x51738b=_0xa8809a;return db['AnalyticMetric'][_0x47a5('0x64')]({'raw':!![]});}return null;})[_0x47a5('0x21')](function(_0x19acfa){if(_0x19acfa){_0x42fcce=_[_0x47a5('0x65')](_0x19acfa,'id');var _0x58dacd;var _0x4b5353=squel[_0x47a5('0x66')]();_0x4b5353[_0x47a5('0x67')](_0x211fbf['table']);for(var _0x27d422=0x0;_0x27d422<_0x51738b[_0x47a5('0x2f')];_0x27d422+=0x1){_0x58dacd=_0x51738b[_0x27d422]['MetricId']?_0x42fcce[_0x51738b[_0x27d422][_0x47a5('0x68')]][_0x47a5('0x69')]:_0x51738b[_0x27d422][_0x47a5('0x6a')];_0x58dacd=_0x51738b[_0x27d422]['function']?_[_0x47a5('0x6c')](_0x19dc8c[_0x51738b[_0x27d422]['function']],'%s',_0x58dacd):_0x58dacd;_0x58dacd=_0x51738b[_0x27d422][_0x47a5('0x6d')]?_['replace'](_0x592322[_0x51738b[_0x27d422][_0x47a5('0x6d')]],'%s',_0x58dacd):_0x58dacd;if(_0x51738b[_0x27d422][_0x47a5('0x86')]){_0x4b5353['group'](_0x58dacd);}_0x51738b[_0x27d422][_0x47a5('0x6e')]&&_0x4b5353['order'](_0x58dacd,_0x51738b[_0x27d422][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x4b5353[_0x47a5('0x6a')](_0x58dacd,_0x51738b[_0x27d422][_0x47a5('0x87')]||_0x58dacd);}if(_0x211fbf['joins']){_0x211fbf[_0x47a5('0x70')]=JSON['parse'](_0x211fbf['joins']);for(var _0x2bb2df=0x0;_0x2bb2df<_0x211fbf[_0x47a5('0x70')][_0x47a5('0x2f')];_0x2bb2df+=0x1){if(_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')]&&_['includes'](_0x4f35ff,_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')])&&_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x73')]&&_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x74')]&&_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x75')]){_0x4b5353[_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x72')]](_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x74')],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x211fbf[_0x47a5('0x77')],_0x211fbf[_0x47a5('0x70')][_0x2bb2df]['parentKey'],_0x211fbf[_0x47a5('0x70')][_0x2bb2df][_0x47a5('0x74')],_0x211fbf['joins'][_0x2bb2df][_0x47a5('0x75')]));}}}if(_0x211fbf[_0x47a5('0x78')]){_0x211fbf[_0x47a5('0x78')]=JSON['parse'](_0x211fbf['conditions']);_0x4b5353[_0x47a5('0x34')](_0x5b91f7(_0x211fbf[_0x47a5('0x78')]['group']));}_0x23c393=_0x4b5353['clone']();_0x4b5353[_0x47a5('0x1b')](_0x420671);_0x4b5353[_0x47a5('0x1d')](0x0);return;}})['then'](function(){if(_0x24a6c1[_0x47a5('0x88')]===_0x47a5('0x89')){return null;}var _0x4c9e6a=_[_0x47a5('0x37')](_0x24a6c1,{'name':_0x24a6c1[_0x47a5('0x8a')]||_0x24a6c1[_0x47a5('0x26')]||_0x211fbf[_0x47a5('0x26')],'basename':_0x18fa31,'savename':util[_0x47a5('0x6d')](_0x47a5('0x8b'),_0x24a6c1['name']||_0x211fbf['name'],require('randomstring')[_0x47a5('0x8c')](0x4),_0x24a6c1[_0x47a5('0x88')]||'csv'),'reportId':_0x211fbf['id'],'reportType':_0x47a5('0x8d')});return db[_0x47a5('0x8e')][_0x47a5('0x3f')](_0x4c9e6a,{'raw':!![]});})[_0x47a5('0x21')](function(_0xcdbfd7){if(_0x211fbf['table']===_0x47a5('0x8f')){_0x23c393['where'](_0x211fbf['table']+'.calldate\x20BETWEEN\x20?\x20AND\x20?',_0x24a6c1[_0x47a5('0x90')],_0x24a6c1['endDate']);}else{_0x23c393[_0x47a5('0x34')](_0x211fbf[_0x47a5('0x77')]+_0x47a5('0x91'),_0x24a6c1['startDate'],_0x24a6c1[_0x47a5('0x92')]);}if(_0xcdbfd7){logger[_0x47a5('0x93')](_0x47a5('0x94'),_0x23c393[_0x47a5('0x7a')]());require(_0x47a5('0x95'))['fork'](path[_0x47a5('0x7e')](__dirname,_0x47a5('0x96'),_0xcdbfd7['output']),[_0xcdbfd7['id'],_0x23c393[_0x47a5('0x7a')](),path[_0x47a5('0x7e')](__dirname,_0x47a5('0x97'),_0xcdbfd7[_0x47a5('0x98')]),_0x18fa31]);return _0xcdbfd7;}else{var _0x3c117a=squel[_0x47a5('0x66')]();_0x3c117a['from']('('+_0x23c393[_0x47a5('0x7a')]()+')',_0x47a5('0x99'));_0x3c117a['field'](_0x47a5('0x9a'),_0x47a5('0x1c'));_0x23c393[_0x47a5('0x1b')](_0x24a6c1[_0x47a5('0x1b')]||_0x420671);_0x23c393['offset'](_0x24a6c1['offset']||0x0);return dbH['sequelize']['query'](_0x3c117a[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')][_0x47a5('0x7d')]})[_0x47a5('0x21')](function(_0x6bc37b){if(!_0x6bc37b[_0x47a5('0x2f')]){_0x2ae130=0x0;}else{_0x2ae130=_0x6bc37b[0x0][_0x47a5('0x1c')]||0x0;}return dbH['sequelize'][_0x47a5('0x2b')](_0x23c393[_0x47a5('0x7a')](),{'type':dbH[_0x47a5('0x7b')][_0x47a5('0x7c')]['SELECT']});})['then'](function(_0x3770ae){return{'rows':_0x3770ae||[],'count':_0x2ae130};});}});}exports['run']=function(_0x4cb8e4,_0x1b6a5c){return runReport(_0x4cb8e4[_0x47a5('0x4c')],_0x4cb8e4['query'],_0x4cb8e4[_0x47a5('0x38')])[_0x47a5('0x21')](respondWithResult(_0x1b6a5c,null))[_0x47a5('0x48')](handleError(_0x1b6a5c,null));};exports['runReport']=runReport;exports[_0x47a5('0x2b')]=function(_0xee23c7,_0x48a491){var _0x1172fd=0xa;var _0x280b7b=[_0x47a5('0x7e'),_0x47a5('0x7f'),_0x47a5('0x4d'),_0x47a5('0x4e')];var _0x482c87={'SUM':_0x47a5('0x4f'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0x47a5('0x80'),'MAX':_0x47a5('0x81'),'MIN':_0x47a5('0x51'),'AVG':_0x47a5('0x52'),'GROUP_CONCAT':'GROUP_CONCAT(%s)','GROUP_CONCAT ASC':_0x47a5('0x54'),'GROUP_CONCAT DESC':_0x47a5('0x9b')};var _0x151540={'SEC_TO_TIME':_0x47a5('0x55'),'DATE':_0x47a5('0x56'),'HOUR':_0x47a5('0x82'),'ROUND':_0x47a5('0x57'),'UNIX_TIMESTAMP':_0x47a5('0x83')};var _0x1b3e82=function(_0xa2045c){return!_[_0x47a5('0x58')]([_0x47a5('0x59'),'IS\x20NOT\x20NULL',_0x47a5('0x84'),_0x47a5('0x5b')],_0xa2045c);};var _0x591bde=function(_0x55d955){if(!_0x55d955||!_0x55d955[_0x47a5('0x5c')][_0x47a5('0x2f')]){return'';}for(var _0x2ccf21='(',_0x2ff467=0x0;_0x2ff467<_0x55d955['rules'][_0x47a5('0x2f')];_0x2ff467+=0x1){_0x2ff467>0x0&&(_0x2ccf21+='\x20'+_0x55d955[_0x47a5('0x85')]+'\x20');_0x2ccf21+=_0x55d955[_0x47a5('0x5c')][_0x2ff467][_0x47a5('0x5d')]?_0x591bde(_0x55d955[_0x47a5('0x5c')][_0x2ff467][_0x47a5('0x5d')]):_0x55d955[_0x47a5('0x5c')][_0x2ff467]['field']+'\x20'+_0x55d955['rules'][_0x2ff467][_0x47a5('0x5e')]+(_0x1b3e82(_0x55d955['rules'][_0x2ff467][_0x47a5('0x5e')])?'\x20'+_0x55d955['rules'][_0x2ff467][_0x47a5('0x5f')]:'');}return _0x2ccf21+')';};var _0x8b4354={'where':{'id':_0xee23c7[_0x47a5('0x4c')]['id']}},_0x134c1a,_0x2bc7ae,_0x49cb8c,_0x220557,_0x11f07b;_0x8b4354=_['merge']({},_0x8b4354,_0xee23c7['options']);return db[_0x47a5('0x39')][_0x47a5('0x4b')](_0x8b4354)[_0x47a5('0x21')](function(_0xfccf9c){if(_0xfccf9c){_0x134c1a=_0xfccf9c;return _0xfccf9c[_0x47a5('0x9c')]();}return null;})[_0x47a5('0x21')](function(_0x1c0323){if(_0x1c0323){if(!_0x1c0323[_0x47a5('0x2f')]){throw new db['Sequelize'][(_0x47a5('0x61'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x2bc7ae=_0x1c0323;return db[_0x47a5('0x63')][_0x47a5('0x64')]({'raw':!![]});}return null;})['then'](function(_0x48d4cf){if(_0x48d4cf){_0x49cb8c=_[_0x47a5('0x65')](_0x48d4cf,'id');var _0x41d2da;var _0x530387=squel[_0x47a5('0x66')]();_0x530387[_0x47a5('0x67')](_0x134c1a[_0x47a5('0x77')]);for(var _0x44567e=0x0;_0x44567e<_0x2bc7ae['length'];_0x44567e+=0x1){_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x68')]?_0x49cb8c[_0x2bc7ae[_0x44567e]['MetricId']]['metric']:_0x2bc7ae[_0x44567e]['field'];_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x6b')]?_['replace'](_0x482c87[_0x2bc7ae[_0x44567e][_0x47a5('0x6b')]],'%s',_0x41d2da):_0x41d2da;_0x41d2da=_0x2bc7ae[_0x44567e][_0x47a5('0x6d')]?_[_0x47a5('0x6c')](_0x151540[_0x2bc7ae[_0x44567e][_0x47a5('0x6d')]],'%s',_0x41d2da):_0x41d2da;if(_0x2bc7ae[_0x44567e][_0x47a5('0x86')]){_0x530387[_0x47a5('0x5d')](_0x41d2da);}_0x2bc7ae[_0x44567e][_0x47a5('0x6e')]&&_0x530387[_0x47a5('0x32')](_0x41d2da,_0x2bc7ae[_0x44567e][_0x47a5('0x6e')]===_0x47a5('0x6f')?![]:!![]);_0x530387[_0x47a5('0x6a')](_0x41d2da,_0x2bc7ae[_0x44567e][_0x47a5('0x87')]||_0x41d2da);}if(_0x134c1a[_0x47a5('0x70')]){_0x134c1a[_0x47a5('0x70')]=JSON[_0x47a5('0x71')](_0x134c1a['joins']);for(var _0xdd95c8=0x0;_0xdd95c8<_0x134c1a[_0x47a5('0x70')][_0x47a5('0x2f')];_0xdd95c8+=0x1){if(_0x134c1a[_0x47a5('0x70')][_0xdd95c8]['type']&&_[_0x47a5('0x58')](_0x280b7b,_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x72')])&&_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x73')]&&_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x74')]&&_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x75')]){_0x530387[_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x72')]](_0x134c1a['joins'][_0xdd95c8]['foreignTable'],null,util[_0x47a5('0x6d')](_0x47a5('0x76'),_0x134c1a[_0x47a5('0x77')],_0x134c1a[_0x47a5('0x70')][_0xdd95c8][_0x47a5('0x73')],_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x74')],_0x134c1a['joins'][_0xdd95c8][_0x47a5('0x75')]));}}}if(_0x134c1a[_0x47a5('0x78')]){_0x134c1a[_0x47a5('0x78')]=JSON[_0x47a5('0x71')](_0x134c1a['conditions']);_0x530387['where'](_0x591bde(_0x134c1a[_0x47a5('0x78')][_0x47a5('0x5d')]));}_0x11f07b=_0x530387[_0x47a5('0x9d')]();_0x530387[_0x47a5('0x1b')](_0x1172fd);_0x530387[_0x47a5('0x1d')](0x0);logger[_0x47a5('0x79')](_0x47a5('0x9e'),_0x530387[_0x47a5('0x7a')]());return dbH[_0x47a5('0x7b')]['query'](_0x530387['toString'](),{'type':dbH[_0x47a5('0x7b')]['QueryTypes'][_0x47a5('0x7d')]});}})[_0x47a5('0x21')](function(){return{'sql':_0x11f07b[_0x47a5('0x7a')]()};})['then'](respondWithResult(_0x48a491,null))[_0x47a5('0x48')](handleError(_0x48a491,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x698a=['bluebird','request-promise','path','rimraf','./analyticDefaultReport.attributes','exports','define','lodash','util','../../config/logger','moment'];(function(_0x874cf1,_0x2a4954){var _0x233579=function(_0xa6e939){while(--_0xa6e939){_0x874cf1['push'](_0x874cf1['shift']());}};_0x233579(++_0x2a4954);}(_0x698a,0x1e0));var _0xa698=function(_0x121350,_0x361f4d){_0x121350=_0x121350-0x0;var _0x2e21c7=_0x698a[_0x121350];return _0x2e21c7;};'use strict';var _=require(_0xa698('0x0'));var util=require(_0xa698('0x1'));var logger=require(_0xa698('0x2'))('api');var moment=require(_0xa698('0x3'));var BPromise=require(_0xa698('0x4'));var rp=require(_0xa698('0x5'));var fs=require('fs');var path=require(_0xa698('0x6'));var rimraf=require(_0xa698('0x7'));var config=require('../../config/environment');var attributes=require(_0xa698('0x8'));module[_0xa698('0x9')]=function(_0x39146a,_0x511a98){return _0x39146a[_0xa698('0xa')]('AnalyticDefaultReport',attributes,{'tableName':'analytics_default_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x882c=['exports','define','AnalyticDefaultReport','analytics_default_reports','util','api','bluebird','request-promise','path','./analyticDefaultReport.attributes'];(function(_0x1e253b,_0x57cc14){var _0x41fc32=function(_0x595fe2){while(--_0x595fe2){_0x1e253b['push'](_0x1e253b['shift']());}};_0x41fc32(++_0x57cc14);}(_0x882c,0xd6));var _0xc882=function(_0x16acb7,_0x23f034){_0x16acb7=_0x16acb7-0x0;var _0x39bf39=_0x882c[_0x16acb7];return _0x39bf39;};'use strict';var _=require('lodash');var util=require(_0xc882('0x0'));var logger=require('../../config/logger')(_0xc882('0x1'));var moment=require('moment');var BPromise=require(_0xc882('0x2'));var rp=require(_0xc882('0x3'));var fs=require('fs');var path=require(_0xc882('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xc882('0x5'));module[_0xc882('0x6')]=function(_0x41fefe,_0x40cdf1){return _0x41fefe[_0xc882('0x7')](_0xc882('0x8'),attributes,{'tableName':_0xc882('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e77=['randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','AnalyticDefaultReport,\x20%s,\x20%s','request\x20sent','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment'];(function(_0x56f8c5,_0x5b1699){var _0x331fb1=function(_0x486d01){while(--_0x486d01){_0x56f8c5['push'](_0x56f8c5['shift']());}};_0x331fb1(++_0x5b1699);}(_0x4e77,0xcf));var _0x74e7=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x4e77[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0x74e7('0x0'));var util=require(_0x74e7('0x1'));var moment=require(_0x74e7('0x2'));var BPromise=require('bluebird');var rs=require(_0x74e7('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x74e7('0x4'));var logger=require('../../config/logger')(_0x74e7('0x5'));var config=require(_0x74e7('0x6'));var jayson=require(_0x74e7('0x7'));var client=jayson[_0x74e7('0x8')][_0x74e7('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x24ff79,_0x10f7dd,_0x3aa98a){return new BPromise(function(_0x284b5a,_0x2d4776){return client[_0x74e7('0xa')](_0x24ff79,_0x3aa98a)[_0x74e7('0xb')](function(_0x386d50){logger[_0x74e7('0xc')](_0x74e7('0xd'),_0x10f7dd,_0x74e7('0xe'));logger[_0x74e7('0xf')](_0x74e7('0x10'),_0x10f7dd,'request\x20sent',JSON[_0x74e7('0x11')](_0x386d50));if(_0x386d50[_0x74e7('0x12')]){if(_0x386d50['error']['code']===0x1f4){logger['error']('AnalyticDefaultReport,\x20%s,\x20%s',_0x10f7dd,_0x386d50['error'][_0x74e7('0x13')]);return _0x2d4776(_0x386d50[_0x74e7('0x12')]['message']);}logger[_0x74e7('0x12')](_0x74e7('0xd'),_0x10f7dd,_0x386d50['error'][_0x74e7('0x13')]);return _0x284b5a(_0x386d50[_0x74e7('0x12')][_0x74e7('0x13')]);}else{logger['info'](_0x74e7('0xd'),_0x10f7dd,_0x74e7('0xe'));_0x284b5a(_0x386d50[_0x74e7('0x14')]['message']);}})['catch'](function(_0x35ab85){logger[_0x74e7('0x12')](_0x74e7('0xd'),_0x10f7dd,_0x35ab85);_0x2d4776(_0x35ab85);});});}
\ No newline at end of file
+var _0x2f0e=['catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','AnalyticDefaultReport,\x20%s,\x20%s','message','request\x20sent','result'];(function(_0x3130b5,_0x23faf7){var _0xa6d8a3=function(_0x175be7){while(--_0x175be7){_0x3130b5['push'](_0x3130b5['shift']());}};_0xa6d8a3(++_0x23faf7);}(_0x2f0e,0x199));var _0xe2f0=function(_0x419f61,_0x2efa41){_0x419f61=_0x419f61-0x0;var _0x4b9536=_0x2f0e[_0x419f61];return _0x4b9536;};'use strict';var _=require(_0xe2f0('0x0'));var util=require('util');var moment=require(_0xe2f0('0x1'));var BPromise=require('bluebird');var rs=require(_0xe2f0('0x2'));var fs=require('fs');var Redis=require(_0xe2f0('0x3'));var db=require(_0xe2f0('0x4'))['db'];var utils=require(_0xe2f0('0x5'));var logger=require(_0xe2f0('0x6'))(_0xe2f0('0x7'));var config=require(_0xe2f0('0x8'));var jayson=require(_0xe2f0('0x9'));var client=jayson[_0xe2f0('0xa')][_0xe2f0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x424c18,_0x363e49,_0x4cdae8){return new BPromise(function(_0x35ff9b,_0x24bcdd){return client['request'](_0x424c18,_0x4cdae8)[_0xe2f0('0xc')](function(_0x1fe2ba){logger[_0xe2f0('0xd')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x363e49,'request\x20sent');logger[_0xe2f0('0xe')](_0xe2f0('0xf'),_0x363e49,'request\x20sent',JSON[_0xe2f0('0x10')](_0x1fe2ba));if(_0x1fe2ba[_0xe2f0('0x11')]){if(_0x1fe2ba[_0xe2f0('0x11')][_0xe2f0('0x12')]===0x1f4){logger['error'](_0xe2f0('0x13'),_0x363e49,_0x1fe2ba[_0xe2f0('0x11')][_0xe2f0('0x14')]);return _0x24bcdd(_0x1fe2ba[_0xe2f0('0x11')][_0xe2f0('0x14')]);}logger[_0xe2f0('0x11')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x363e49,_0x1fe2ba[_0xe2f0('0x11')][_0xe2f0('0x14')]);return _0x35ff9b(_0x1fe2ba[_0xe2f0('0x11')][_0xe2f0('0x14')]);}else{logger[_0xe2f0('0xd')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x363e49,_0xe2f0('0x15'));_0x35ff9b(_0x1fe2ba[_0xe2f0('0x16')][_0xe2f0('0x14')]);}})[_0xe2f0('0x17')](function(_0x321fef){logger[_0xe2f0('0x11')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x363e49,_0x321fef);_0x24bcdd(_0x321fef);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1e1=['multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticDefaultReport.controller','get','isAuthenticated','index','/:id','show','/:id/preview','/:id/run','post','create','put','delete','exports'];(function(_0x28debc,_0x5dfbae){var _0x59c528=function(_0x321540){while(--_0x321540){_0x28debc['push'](_0x28debc['shift']());}};_0x59c528(++_0x5dfbae);}(_0xc1e1,0x11e));var _0x1c1e=function(_0x1f7053,_0x59739b){_0x1f7053=_0x1f7053-0x0;var _0xce379f=_0xc1e1[_0x1f7053];return _0xce379f;};'use strict';var multer=require(_0x1c1e('0x0'));var util=require(_0x1c1e('0x1'));var path=require(_0x1c1e('0x2'));var timeout=require(_0x1c1e('0x3'));var express=require(_0x1c1e('0x4'));var router=express['Router']();var fs_extra=require(_0x1c1e('0x5'));var auth=require(_0x1c1e('0x6'));var interaction=require(_0x1c1e('0x7'));var config=require(_0x1c1e('0x8'));var controller=require(_0x1c1e('0x9'));router[_0x1c1e('0xa')]('/',auth[_0x1c1e('0xb')](),controller[_0x1c1e('0xc')]);router[_0x1c1e('0xa')](_0x1c1e('0xd'),auth['isAuthenticated'](),controller[_0x1c1e('0xe')]);router['get'](_0x1c1e('0xf'),auth['isAuthenticated'](),controller['preview']);router[_0x1c1e('0xa')](_0x1c1e('0x10'),auth[_0x1c1e('0xb')](),controller['run']);router[_0x1c1e('0xa')]('/:id/query',auth[_0x1c1e('0xb')](),controller['query']);router[_0x1c1e('0x11')]('/',auth[_0x1c1e('0xb')](),controller[_0x1c1e('0x12')]);router[_0x1c1e('0x13')](_0x1c1e('0xd'),auth[_0x1c1e('0xb')](),controller['update']);router[_0x1c1e('0x14')]('/:id',auth[_0x1c1e('0xb')](),controller['destroy']);module[_0x1c1e('0x15')]=router;
\ No newline at end of file
+var _0xa928=['/:id/preview','query','post','create','put','update','destroy','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticDefaultReport.controller','get','isAuthenticated','index','/:id'];(function(_0x5d0683,_0x380a30){var _0x67a4ae=function(_0x49ba29){while(--_0x49ba29){_0x5d0683['push'](_0x5d0683['shift']());}};_0x67a4ae(++_0x380a30);}(_0xa928,0x85));var _0x8a92=function(_0x38c987,_0x563b93){_0x38c987=_0x38c987-0x0;var _0x546344=_0xa928[_0x38c987];return _0x546344;};'use strict';var multer=require(_0x8a92('0x0'));var util=require(_0x8a92('0x1'));var path=require(_0x8a92('0x2'));var timeout=require(_0x8a92('0x3'));var express=require(_0x8a92('0x4'));var router=express['Router']();var fs_extra=require(_0x8a92('0x5'));var auth=require(_0x8a92('0x6'));var interaction=require(_0x8a92('0x7'));var config=require(_0x8a92('0x8'));var controller=require(_0x8a92('0x9'));router[_0x8a92('0xa')]('/',auth[_0x8a92('0xb')](),controller[_0x8a92('0xc')]);router[_0x8a92('0xa')](_0x8a92('0xd'),auth[_0x8a92('0xb')](),controller['show']);router[_0x8a92('0xa')](_0x8a92('0xe'),auth[_0x8a92('0xb')](),controller['preview']);router[_0x8a92('0xa')]('/:id/run',auth[_0x8a92('0xb')](),controller['run']);router['get']('/:id/query',auth[_0x8a92('0xb')](),controller[_0x8a92('0xf')]);router[_0x8a92('0x10')]('/',auth[_0x8a92('0xb')](),controller[_0x8a92('0x11')]);router[_0x8a92('0x12')](_0x8a92('0xd'),auth[_0x8a92('0xb')](),controller[_0x8a92('0x13')]);router['delete'](_0x8a92('0xd'),auth['isAuthenticated'](),controller[_0x8a92('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2507=['xlsx','csv','DATE','manual','INTEGER','UNSIGNED','moment','STRING','ENUM','pdf'];(function(_0x55fec2,_0x5036bb){var _0x559086=function(_0x35d0bb){while(--_0x35d0bb){_0x55fec2['push'](_0x55fec2['shift']());}};_0x559086(++_0x5036bb);}(_0x2507,0x164));var _0x7250=function(_0x43139b,_0x5671c1){_0x43139b=_0x43139b-0x0;var _0x5a2e51=_0x2507[_0x43139b];return _0x5a2e51;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x7250('0x0'));module['exports']={'name':{'type':Sequelize[_0x7250('0x1')],'allowNull':![]},'basename':{'type':Sequelize[_0x7250('0x1')],'allowNull':![]},'output':{'type':Sequelize[_0x7250('0x2')]('csv',_0x7250('0x3'),_0x7250('0x4')),'allowNull':![],'defaultValue':_0x7250('0x5')},'savename':{'type':Sequelize[_0x7250('0x1')],'allowNull':![]},'startDate':{'type':Sequelize['DATE']},'endDate':{'type':Sequelize[_0x7250('0x6')]},'status':{'type':Sequelize['STRING'],'defaultValue':'Loading'},'type':{'type':Sequelize[_0x7250('0x2')](_0x7250('0x7'),'scheduled'),'allowNull':![],'defaultValue':'manual'},'reportId':{'type':Sequelize[_0x7250('0x8')](0xb)[_0x7250('0x9')]},'reportType':{'type':Sequelize[_0x7250('0x1')]}};
\ No newline at end of file
+var _0xe91b=['ENUM','pdf','xlsx','csv','DATE','STRING','Loading','scheduled','INTEGER','UNSIGNED','moment'];(function(_0x4c807f,_0x3d2e68){var _0x70aba3=function(_0x30da64){while(--_0x30da64){_0x4c807f['push'](_0x4c807f['shift']());}};_0x70aba3(++_0x3d2e68);}(_0xe91b,0x78));var _0xbe91=function(_0x2bfe52,_0x43946e){_0x2bfe52=_0x2bfe52-0x0;var _0x1cf649=_0xe91b[_0x2bfe52];return _0x1cf649;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xbe91('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![]},'basename':{'type':Sequelize['STRING'],'allowNull':![]},'output':{'type':Sequelize[_0xbe91('0x1')]('csv',_0xbe91('0x2'),_0xbe91('0x3')),'allowNull':![],'defaultValue':_0xbe91('0x4')},'savename':{'type':Sequelize['STRING'],'allowNull':![]},'startDate':{'type':Sequelize[_0xbe91('0x5')]},'endDate':{'type':Sequelize[_0xbe91('0x5')]},'status':{'type':Sequelize[_0xbe91('0x6')],'defaultValue':_0xbe91('0x7')},'type':{'type':Sequelize[_0xbe91('0x1')]('manual',_0xbe91('0x8')),'allowNull':![],'defaultValue':'manual'},'reportId':{'type':Sequelize[_0xbe91('0x9')](0xb)[_0xbe91('0xa')]},'reportType':{'type':Sequelize[_0xbe91('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5f5=['query','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','options','includeAll','rows','show','params','include','merge','find','catch','create','body','get','role','UserProfileSection','userProfileId','autoAssociation','basename','savename','output','existsSync','join','root','Sequelize','Report\x20not\x20found\x20or\x20empty','exists','download','server/files/reports','format','%s.%s','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','undefined','limit','count','offset','set','Content-Range','save','update','then','ExtractedReports','destroy','error','stack','name','send','map','AnalyticExtractedReport','rawAttributes','type','key','model','keys','filters','attributes','intersection','fields'];(function(_0x18d3e8,_0x984529){var _0x16403a=function(_0x4cd297){while(--_0x4cd297){_0x18d3e8['push'](_0x18d3e8['shift']());}};_0x16403a(++_0x984529);}(_0xa5f5,0x85));var _0x5a5f=function(_0x51020b,_0x38c2c7){_0x51020b=_0x51020b-0x0;var _0x371e47=_0xa5f5[_0x51020b];return _0x371e47;};'use strict';var emlformat=require(_0x5a5f('0x0'));var rimraf=require(_0x5a5f('0x1'));var zipdir=require(_0x5a5f('0x2'));var jsonpatch=require(_0x5a5f('0x3'));var rp=require(_0x5a5f('0x4'));var moment=require(_0x5a5f('0x5'));var BPromise=require(_0x5a5f('0x6'));var Mustache=require(_0x5a5f('0x7'));var util=require(_0x5a5f('0x8'));var path=require(_0x5a5f('0x9'));var sox=require(_0x5a5f('0xa'));var csv=require(_0x5a5f('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x5a5f('0xc'));var crypto=require(_0x5a5f('0xd'));var jsforce=require(_0x5a5f('0xe'));var deskjs=require(_0x5a5f('0xf'));var toCsv=require(_0x5a5f('0xb'));var querystring=require('querystring');var Papa=require(_0x5a5f('0x10'));var Redis=require(_0x5a5f('0x11'));var authService=require(_0x5a5f('0x12'));var qs=require(_0x5a5f('0x13'));var as=require(_0x5a5f('0x14'));var hardwareService=require(_0x5a5f('0x15'));var logger=require('../../config/logger')(_0x5a5f('0x16'));var utils=require(_0x5a5f('0x17'));var config=require(_0x5a5f('0x18'));var licenseUtil=require(_0x5a5f('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5425ab,_0x4c8851){_0x4c8851=_0x4c8851||0xcc;return function(_0x41b440){if(_0x41b440){return _0x5425ab[_0x5a5f('0x1a')](_0x4c8851);}return _0x5425ab['status'](_0x4c8851)[_0x5a5f('0x1b')]();};}function respondWithResult(_0x3b7d1f,_0x2f3239){_0x2f3239=_0x2f3239||0xc8;return function(_0x181d97){if(_0x181d97){return _0x3b7d1f[_0x5a5f('0x1c')](_0x2f3239)['json'](_0x181d97);}};}function respondWithFilteredResult(_0x1a420c,_0x1a8c85){return function(_0x3cc127){if(_0x3cc127){var _0x32883b=typeof _0x1a8c85['offset']===_0x5a5f('0x1d')&&typeof _0x1a8c85[_0x5a5f('0x1e')]==='undefined';var _0x5ac3bc=_0x3cc127[_0x5a5f('0x1f')];var _0x3009e2=_0x32883b?0x0:_0x1a8c85[_0x5a5f('0x20')];var _0xf3d204=_0x32883b?_0x3cc127[_0x5a5f('0x1f')]:_0x1a8c85[_0x5a5f('0x20')]+_0x1a8c85[_0x5a5f('0x1e')];var _0x223139;if(_0xf3d204>=_0x5ac3bc){_0xf3d204=_0x5ac3bc;_0x223139=0xc8;}else{_0x223139=0xce;}_0x1a420c[_0x5a5f('0x1c')](_0x223139);return _0x1a420c[_0x5a5f('0x21')](_0x5a5f('0x22'),_0x3009e2+'-'+_0xf3d204+'/'+_0x5ac3bc)['json'](_0x3cc127);}return null;};}function patchUpdates(_0xdc0be9){return function(_0x3e493f){try{jsonpatch['apply'](_0x3e493f,_0xdc0be9,!![]);}catch(_0xf7a247){return BPromise['reject'](_0xf7a247);}return _0x3e493f[_0x5a5f('0x23')]();};}function saveUpdates(_0x3045bb,_0x4a17ee){return function(_0x54f871){if(_0x54f871){return _0x54f871[_0x5a5f('0x24')](_0x3045bb)[_0x5a5f('0x25')](function(_0x26d899){return _0x26d899;});}return null;};}function removeEntity(_0x5a2b1b,_0x318c8b){return function(_0x455b90){if(_0x455b90){return _0x455b90['destroy']()[_0x5a5f('0x25')](function(){var _0x3ae4fc=_0x455b90['get']({'plain':!![]});var _0x51817b=_0x5a5f('0x26');return db['UserProfileResource'][_0x5a5f('0x27')]({'where':{'type':_0x51817b,'resourceId':_0x3ae4fc['id']}})[_0x5a5f('0x25')](function(){return _0x455b90;});})[_0x5a5f('0x25')](function(){_0x5a2b1b[_0x5a5f('0x1c')](0xcc)[_0x5a5f('0x1b')]();});}};}function handleEntityNotFound(_0x3c5de9,_0x29b1ec){return function(_0x2c874a){if(!_0x2c874a){_0x3c5de9[_0x5a5f('0x1a')](0x194);}return _0x2c874a;};}function handleError(_0x3f9f3f,_0xd77fbf){_0xd77fbf=_0xd77fbf||0x1f4;return function(_0x8f2dc3){logger[_0x5a5f('0x28')](_0x8f2dc3[_0x5a5f('0x29')]);if(_0x8f2dc3['name']){delete _0x8f2dc3[_0x5a5f('0x2a')];}_0x3f9f3f['status'](_0xd77fbf)[_0x5a5f('0x2b')](_0x8f2dc3);};}exports['index']=function(_0x3c1306,_0x33220b){var _0x59bc49={},_0x3621da={},_0x3db3f7={'count':0x0,'rows':[]};var _0x2ad148=_[_0x5a5f('0x2c')](db[_0x5a5f('0x2d')][_0x5a5f('0x2e')],function(_0x9147dd){return{'name':_0x9147dd['fieldName'],'type':_0x9147dd[_0x5a5f('0x2f')][_0x5a5f('0x30')]};});_0x3621da[_0x5a5f('0x31')]=_['map'](_0x2ad148,'name');_0x3621da['query']=_[_0x5a5f('0x32')](_0x3c1306['query']);_0x3621da[_0x5a5f('0x33')]=_['intersection'](_0x3621da[_0x5a5f('0x31')],_0x3621da['query']);_0x59bc49[_0x5a5f('0x34')]=_[_0x5a5f('0x35')](_0x3621da['model'],qs[_0x5a5f('0x36')](_0x3c1306[_0x5a5f('0x37')][_0x5a5f('0x36')]));_0x59bc49[_0x5a5f('0x34')]=_0x59bc49['attributes'][_0x5a5f('0x38')]?_0x59bc49['attributes']:_0x3621da['model'];if(!_0x3c1306[_0x5a5f('0x37')][_0x5a5f('0x39')](_0x5a5f('0x3a'))){_0x59bc49[_0x5a5f('0x1e')]=qs[_0x5a5f('0x1e')](_0x3c1306[_0x5a5f('0x37')][_0x5a5f('0x1e')]);_0x59bc49[_0x5a5f('0x20')]=qs['offset'](_0x3c1306['query']['offset']);}_0x59bc49[_0x5a5f('0x3b')]=qs[_0x5a5f('0x3c')](_0x3c1306[_0x5a5f('0x37')]['sort']);_0x59bc49[_0x5a5f('0x3d')]=qs['filters'](_[_0x5a5f('0x3e')](_0x3c1306[_0x5a5f('0x37')],_0x3621da[_0x5a5f('0x33')]),_0x2ad148);if(_0x3c1306[_0x5a5f('0x37')][_0x5a5f('0x3f')]){_0x59bc49[_0x5a5f('0x3d')]=_['merge'](_0x59bc49[_0x5a5f('0x3d')],{'$or':_[_0x5a5f('0x2c')](_0x2ad148,function(_0x2031a0){if(_0x2031a0['type']!=='VIRTUAL'){var _0x11079b={};_0x11079b[_0x2031a0[_0x5a5f('0x2a')]]={'$like':'%'+_0x3c1306[_0x5a5f('0x37')]['filter']+'%'};return _0x11079b;}})});}_0x59bc49=_['merge']({},_0x59bc49,_0x3c1306[_0x5a5f('0x40')]);var _0x3b9566={'where':_0x59bc49[_0x5a5f('0x3d')]};return db['AnalyticExtractedReport']['count'](_0x3b9566)['then'](function(_0x5c21d6){_0x3db3f7[_0x5a5f('0x1f')]=_0x5c21d6;if(_0x3c1306[_0x5a5f('0x37')][_0x5a5f('0x41')]){_0x59bc49['include']=[{'all':!![]}];}return db[_0x5a5f('0x2d')]['findAll'](_0x59bc49);})[_0x5a5f('0x25')](function(_0x2d2c1f){_0x3db3f7[_0x5a5f('0x42')]=_0x2d2c1f;return _0x3db3f7;})[_0x5a5f('0x25')](respondWithFilteredResult(_0x33220b,_0x59bc49))['catch'](handleError(_0x33220b,null));};exports[_0x5a5f('0x43')]=function(_0xc32bd3,_0x2ddfbf){var _0x4b89b8={'raw':!![],'where':{'id':_0xc32bd3[_0x5a5f('0x44')]['id']}},_0x44e95a={};_0x44e95a['model']=_[_0x5a5f('0x32')](db[_0x5a5f('0x2d')][_0x5a5f('0x2e')]);_0x44e95a[_0x5a5f('0x37')]=_[_0x5a5f('0x32')](_0xc32bd3['query']);_0x44e95a[_0x5a5f('0x33')]=_[_0x5a5f('0x35')](_0x44e95a[_0x5a5f('0x31')],_0x44e95a['query']);_0x4b89b8[_0x5a5f('0x34')]=_[_0x5a5f('0x35')](_0x44e95a[_0x5a5f('0x31')],qs['fields'](_0xc32bd3[_0x5a5f('0x37')][_0x5a5f('0x36')]));_0x4b89b8['attributes']=_0x4b89b8['attributes'][_0x5a5f('0x38')]?_0x4b89b8[_0x5a5f('0x34')]:_0x44e95a[_0x5a5f('0x31')];if(_0xc32bd3[_0x5a5f('0x37')][_0x5a5f('0x41')]){_0x4b89b8[_0x5a5f('0x45')]=[{'all':!![]}];}_0x4b89b8=_[_0x5a5f('0x46')]({},_0x4b89b8,_0xc32bd3[_0x5a5f('0x40')]);return db[_0x5a5f('0x2d')][_0x5a5f('0x47')](_0x4b89b8)[_0x5a5f('0x25')](handleEntityNotFound(_0x2ddfbf,null))['then'](respondWithResult(_0x2ddfbf,null))[_0x5a5f('0x48')](handleError(_0x2ddfbf,null));};exports[_0x5a5f('0x49')]=function(_0x44ecab,_0x4247e0){return db[_0x5a5f('0x2d')]['create'](_0x44ecab[_0x5a5f('0x4a')],{})[_0x5a5f('0x25')](function(_0x57dc08){var _0x5892bf=_0x44ecab['user'][_0x5a5f('0x4b')]({'plain':!![]});if(!_0x5892bf)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5892bf[_0x5a5f('0x4c')]==='user'){var _0x3a2970=_0x57dc08[_0x5a5f('0x4b')]({'plain':!![]});var _0x68c2e1=_0x5a5f('0x26');return db[_0x5a5f('0x4d')][_0x5a5f('0x47')]({'where':{'name':_0x68c2e1,'userProfileId':_0x5892bf[_0x5a5f('0x4e')]},'raw':!![]})[_0x5a5f('0x25')](function(_0x116a76){if(_0x116a76&&_0x116a76[_0x5a5f('0x4f')]===0x0){return db['UserProfileResource'][_0x5a5f('0x49')]({'name':_0x3a2970['name'],'resourceId':_0x3a2970['id'],'type':_0x116a76[_0x5a5f('0x2a')],'sectionId':_0x116a76['id']},{})[_0x5a5f('0x25')](function(){return _0x57dc08;});}else{return _0x57dc08;}})['catch'](function(_0x3b5e08){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3b5e08);throw _0x3b5e08;});}return _0x57dc08;})[_0x5a5f('0x25')](respondWithResult(_0x4247e0,0xc9))[_0x5a5f('0x48')](handleError(_0x4247e0,null));};exports[_0x5a5f('0x24')]=function(_0x304190,_0x1c3a2f){if(_0x304190[_0x5a5f('0x4a')]['id']){delete _0x304190[_0x5a5f('0x4a')]['id'];}return db[_0x5a5f('0x2d')]['find']({'where':{'id':_0x304190[_0x5a5f('0x44')]['id']}})[_0x5a5f('0x25')](handleEntityNotFound(_0x1c3a2f,null))[_0x5a5f('0x25')](saveUpdates(_0x304190[_0x5a5f('0x4a')],null))[_0x5a5f('0x25')](respondWithResult(_0x1c3a2f,null))[_0x5a5f('0x48')](handleError(_0x1c3a2f,null));};exports[_0x5a5f('0x27')]=function(_0x32d842,_0x1d5ee6){return db['AnalyticExtractedReport'][_0x5a5f('0x47')]({'where':{'id':_0x32d842[_0x5a5f('0x44')]['id']}})[_0x5a5f('0x25')](handleEntityNotFound(_0x1d5ee6,null))[_0x5a5f('0x25')](removeEntity(_0x1d5ee6,null))[_0x5a5f('0x48')](handleError(_0x1d5ee6,null));};exports['download']=function(_0x41e251,_0x1a9c25,_0x4d92cb){return db[_0x5a5f('0x2d')][_0x5a5f('0x47')]({'where':{'id':_0x41e251[_0x5a5f('0x44')]['id']},'attributes':[_0x5a5f('0x2a'),_0x5a5f('0x50'),_0x5a5f('0x51'),_0x5a5f('0x52')],'raw':!![]})['then'](handleEntityNotFound(_0x1a9c25,null))['then'](function(_0x706a01){if(_0x706a01){if(!fs[_0x5a5f('0x53')](path[_0x5a5f('0x54')](config[_0x5a5f('0x55')],'server/files/reports',_0x706a01[_0x5a5f('0x51')]))){throw new db[(_0x5a5f('0x56'))]['ValidationError'](_0x5a5f('0x57'));}if(_0x41e251[_0x5a5f('0x37')][_0x5a5f('0x58')]){return _0x1a9c25[_0x5a5f('0x1a')](0xc8);}return _0x1a9c25[_0x5a5f('0x59')](path[_0x5a5f('0x54')](config['root'],_0x5a5f('0x5a'),_0x706a01[_0x5a5f('0x51')]),util[_0x5a5f('0x5b')](_0x5a5f('0x5c'),_0x706a01[_0x5a5f('0x50')]||_0x706a01[_0x5a5f('0x2a')],_0x706a01[_0x5a5f('0x52')][_0x5a5f('0x5d')]()));}})[_0x5a5f('0x48')](handleError(_0x1a9c25,null));};
\ No newline at end of file
+var _0x2311=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','count','limit','set','Content-Range','save','update','then','destroy','get','UserProfileResource','error','stack','name','AnalyticExtractedReport','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','find','body','user','ExtractedReports','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','download','basename','output','existsSync','root','server/files/reports','savename','Sequelize','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','join','%s.%s','toLowerCase','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis'];(function(_0x55ab2a,_0x50d853){var _0x2797c9=function(_0x10cce0){while(--_0x10cce0){_0x55ab2a['push'](_0x55ab2a['shift']());}};_0x2797c9(++_0x50d853);}(_0x2311,0x108));var _0x1231=function(_0x4f10b1,_0x260b27){_0x4f10b1=_0x4f10b1-0x0;var _0x3b616b=_0x2311[_0x4f10b1];return _0x3b616b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x1231('0x0'));var moment=require(_0x1231('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x1231('0x2'));var util=require('util');var path=require(_0x1231('0x3'));var sox=require(_0x1231('0x4'));var csv=require(_0x1231('0x5'));var ejs=require(_0x1231('0x6'));var fs=require('fs');var fs_extra=require(_0x1231('0x7'));var _=require(_0x1231('0x8'));var squel=require(_0x1231('0x9'));var crypto=require('crypto');var jsforce=require(_0x1231('0xa'));var deskjs=require(_0x1231('0xb'));var toCsv=require(_0x1231('0x5'));var querystring=require(_0x1231('0xc'));var Papa=require(_0x1231('0xd'));var Redis=require(_0x1231('0xe'));var authService=require(_0x1231('0xf'));var qs=require(_0x1231('0x10'));var as=require(_0x1231('0x11'));var hardwareService=require(_0x1231('0x12'));var logger=require(_0x1231('0x13'))(_0x1231('0x14'));var utils=require(_0x1231('0x15'));var config=require(_0x1231('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x1231('0x17'))['db'];function respondWithStatusCode(_0x46f0e2,_0x3c6e29){_0x3c6e29=_0x3c6e29||0xcc;return function(_0xfa5a33){if(_0xfa5a33){return _0x46f0e2[_0x1231('0x18')](_0x3c6e29);}return _0x46f0e2[_0x1231('0x19')](_0x3c6e29)[_0x1231('0x1a')]();};}function respondWithResult(_0x281b3a,_0x56b9a2){_0x56b9a2=_0x56b9a2||0xc8;return function(_0x25a7a8){if(_0x25a7a8){return _0x281b3a[_0x1231('0x19')](_0x56b9a2)[_0x1231('0x1b')](_0x25a7a8);}};}function respondWithFilteredResult(_0x56da38,_0x2b645f){return function(_0x508ecb){if(_0x508ecb){var _0xe8689=typeof _0x2b645f[_0x1231('0x1c')]==='undefined'&&typeof _0x2b645f['limit']==='undefined';var _0x275494=_0x508ecb[_0x1231('0x1d')];var _0x405d78=_0xe8689?0x0:_0x2b645f[_0x1231('0x1c')];var _0x3a26b8=_0xe8689?_0x508ecb[_0x1231('0x1d')]:_0x2b645f['offset']+_0x2b645f[_0x1231('0x1e')];var _0x2dcdc6;if(_0x3a26b8>=_0x275494){_0x3a26b8=_0x275494;_0x2dcdc6=0xc8;}else{_0x2dcdc6=0xce;}_0x56da38[_0x1231('0x19')](_0x2dcdc6);return _0x56da38[_0x1231('0x1f')](_0x1231('0x20'),_0x405d78+'-'+_0x3a26b8+'/'+_0x275494)[_0x1231('0x1b')](_0x508ecb);}return null;};}function patchUpdates(_0x5730d1){return function(_0x1a92e4){try{jsonpatch['apply'](_0x1a92e4,_0x5730d1,!![]);}catch(_0x521462){return BPromise['reject'](_0x521462);}return _0x1a92e4[_0x1231('0x21')]();};}function saveUpdates(_0x328fde,_0x957d32){return function(_0x272f5c){if(_0x272f5c){return _0x272f5c[_0x1231('0x22')](_0x328fde)[_0x1231('0x23')](function(_0x30d46d){return _0x30d46d;});}return null;};}function removeEntity(_0x1d0647,_0x46f806){return function(_0x42571b){if(_0x42571b){return _0x42571b[_0x1231('0x24')]()[_0x1231('0x23')](function(){var _0x399e37=_0x42571b[_0x1231('0x25')]({'plain':!![]});var _0xbaeca0='ExtractedReports';return db[_0x1231('0x26')][_0x1231('0x24')]({'where':{'type':_0xbaeca0,'resourceId':_0x399e37['id']}})[_0x1231('0x23')](function(){return _0x42571b;});})[_0x1231('0x23')](function(){_0x1d0647[_0x1231('0x19')](0xcc)[_0x1231('0x1a')]();});}};}function handleEntityNotFound(_0x3dba47,_0x52117c){return function(_0x3c0b53){if(!_0x3c0b53){_0x3dba47[_0x1231('0x18')](0x194);}return _0x3c0b53;};}function handleError(_0xcfdfbe,_0x33044e){_0x33044e=_0x33044e||0x1f4;return function(_0x35a578){logger[_0x1231('0x27')](_0x35a578[_0x1231('0x28')]);if(_0x35a578[_0x1231('0x29')]){delete _0x35a578['name'];}_0xcfdfbe['status'](_0x33044e)['send'](_0x35a578);};}exports['index']=function(_0x475949,_0x3e31fd){var _0x3fc7db={},_0x142619={},_0x3a94d3={'count':0x0,'rows':[]};var _0x3c5ce9=_['map'](db[_0x1231('0x2a')][_0x1231('0x2b')],function(_0x19a1e1){return{'name':_0x19a1e1[_0x1231('0x2c')],'type':_0x19a1e1[_0x1231('0x2d')][_0x1231('0x2e')]};});_0x142619['model']=_[_0x1231('0x2f')](_0x3c5ce9,'name');_0x142619['query']=_[_0x1231('0x30')](_0x475949[_0x1231('0x31')]);_0x142619[_0x1231('0x32')]=_[_0x1231('0x33')](_0x142619[_0x1231('0x34')],_0x142619[_0x1231('0x31')]);_0x3fc7db[_0x1231('0x35')]=_[_0x1231('0x33')](_0x142619['model'],qs['fields'](_0x475949[_0x1231('0x31')][_0x1231('0x36')]));_0x3fc7db[_0x1231('0x35')]=_0x3fc7db['attributes'][_0x1231('0x37')]?_0x3fc7db[_0x1231('0x35')]:_0x142619['model'];if(!_0x475949[_0x1231('0x31')]['hasOwnProperty'](_0x1231('0x38'))){_0x3fc7db[_0x1231('0x1e')]=qs[_0x1231('0x1e')](_0x475949[_0x1231('0x31')][_0x1231('0x1e')]);_0x3fc7db[_0x1231('0x1c')]=qs['offset'](_0x475949[_0x1231('0x31')]['offset']);}_0x3fc7db[_0x1231('0x39')]=qs[_0x1231('0x3a')](_0x475949[_0x1231('0x31')][_0x1231('0x3a')]);_0x3fc7db[_0x1231('0x3b')]=qs[_0x1231('0x32')](_['pick'](_0x475949[_0x1231('0x31')],_0x142619[_0x1231('0x32')]),_0x3c5ce9);if(_0x475949['query'][_0x1231('0x3c')]){_0x3fc7db[_0x1231('0x3b')]=_[_0x1231('0x3d')](_0x3fc7db['where'],{'$or':_[_0x1231('0x2f')](_0x3c5ce9,function(_0x5df601){if(_0x5df601[_0x1231('0x2d')]!==_0x1231('0x3e')){var _0x28d2ad={};_0x28d2ad[_0x5df601[_0x1231('0x29')]]={'$like':'%'+_0x475949[_0x1231('0x31')][_0x1231('0x3c')]+'%'};return _0x28d2ad;}})});}_0x3fc7db=_['merge']({},_0x3fc7db,_0x475949[_0x1231('0x3f')]);var _0x43de37={'where':_0x3fc7db[_0x1231('0x3b')]};return db[_0x1231('0x2a')][_0x1231('0x1d')](_0x43de37)[_0x1231('0x23')](function(_0x554a90){_0x3a94d3[_0x1231('0x1d')]=_0x554a90;if(_0x475949[_0x1231('0x31')][_0x1231('0x40')]){_0x3fc7db[_0x1231('0x41')]=[{'all':!![]}];}return db[_0x1231('0x2a')][_0x1231('0x42')](_0x3fc7db);})[_0x1231('0x23')](function(_0x613949){_0x3a94d3[_0x1231('0x43')]=_0x613949;return _0x3a94d3;})[_0x1231('0x23')](respondWithFilteredResult(_0x3e31fd,_0x3fc7db))[_0x1231('0x44')](handleError(_0x3e31fd,null));};exports[_0x1231('0x45')]=function(_0x3d9fdd,_0x1a7f5e){var _0x44f274={'raw':!![],'where':{'id':_0x3d9fdd['params']['id']}},_0x79f9d5={};_0x79f9d5[_0x1231('0x34')]=_[_0x1231('0x30')](db[_0x1231('0x2a')][_0x1231('0x2b')]);_0x79f9d5[_0x1231('0x31')]=_[_0x1231('0x30')](_0x3d9fdd[_0x1231('0x31')]);_0x79f9d5[_0x1231('0x32')]=_[_0x1231('0x33')](_0x79f9d5['model'],_0x79f9d5[_0x1231('0x31')]);_0x44f274[_0x1231('0x35')]=_[_0x1231('0x33')](_0x79f9d5[_0x1231('0x34')],qs[_0x1231('0x36')](_0x3d9fdd[_0x1231('0x31')][_0x1231('0x36')]));_0x44f274[_0x1231('0x35')]=_0x44f274[_0x1231('0x35')][_0x1231('0x37')]?_0x44f274[_0x1231('0x35')]:_0x79f9d5[_0x1231('0x34')];if(_0x3d9fdd[_0x1231('0x31')][_0x1231('0x40')]){_0x44f274[_0x1231('0x41')]=[{'all':!![]}];}_0x44f274=_[_0x1231('0x3d')]({},_0x44f274,_0x3d9fdd[_0x1231('0x3f')]);return db[_0x1231('0x2a')][_0x1231('0x46')](_0x44f274)[_0x1231('0x23')](handleEntityNotFound(_0x1a7f5e,null))[_0x1231('0x23')](respondWithResult(_0x1a7f5e,null))[_0x1231('0x44')](handleError(_0x1a7f5e,null));};exports['create']=function(_0x3333dc,_0x46a1d7){return db[_0x1231('0x2a')]['create'](_0x3333dc[_0x1231('0x47')],{})[_0x1231('0x23')](function(_0x3847fe){var _0x890488=_0x3333dc[_0x1231('0x48')]['get']({'plain':!![]});if(!_0x890488)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x890488['role']===_0x1231('0x48')){var _0xab5f98=_0x3847fe['get']({'plain':!![]});var _0x5e8006=_0x1231('0x49');return db[_0x1231('0x4a')][_0x1231('0x46')]({'where':{'name':_0x5e8006,'userProfileId':_0x890488[_0x1231('0x4b')]},'raw':!![]})[_0x1231('0x23')](function(_0x5279dc){if(_0x5279dc&&_0x5279dc[_0x1231('0x4c')]===0x0){return db['UserProfileResource']['create']({'name':_0xab5f98['name'],'resourceId':_0xab5f98['id'],'type':_0x5279dc[_0x1231('0x29')],'sectionId':_0x5279dc['id']},{})[_0x1231('0x23')](function(){return _0x3847fe;});}else{return _0x3847fe;}})[_0x1231('0x44')](function(_0x45dbba){logger['error'](_0x1231('0x4d'),_0x45dbba);throw _0x45dbba;});}return _0x3847fe;})[_0x1231('0x23')](respondWithResult(_0x46a1d7,0xc9))[_0x1231('0x44')](handleError(_0x46a1d7,null));};exports[_0x1231('0x22')]=function(_0x247270,_0x17f7cc){if(_0x247270[_0x1231('0x47')]['id']){delete _0x247270[_0x1231('0x47')]['id'];}return db[_0x1231('0x2a')][_0x1231('0x46')]({'where':{'id':_0x247270[_0x1231('0x4e')]['id']}})[_0x1231('0x23')](handleEntityNotFound(_0x17f7cc,null))['then'](saveUpdates(_0x247270[_0x1231('0x47')],null))['then'](respondWithResult(_0x17f7cc,null))['catch'](handleError(_0x17f7cc,null));};exports['destroy']=function(_0x376c74,_0x186e14){return db[_0x1231('0x2a')][_0x1231('0x46')]({'where':{'id':_0x376c74[_0x1231('0x4e')]['id']}})[_0x1231('0x23')](handleEntityNotFound(_0x186e14,null))[_0x1231('0x23')](removeEntity(_0x186e14,null))[_0x1231('0x44')](handleError(_0x186e14,null));};exports[_0x1231('0x4f')]=function(_0x5d8c37,_0x25a2d1,_0x3e6b2c){return db[_0x1231('0x2a')]['find']({'where':{'id':_0x5d8c37['params']['id']},'attributes':[_0x1231('0x29'),_0x1231('0x50'),'savename',_0x1231('0x51')],'raw':!![]})[_0x1231('0x23')](handleEntityNotFound(_0x25a2d1,null))[_0x1231('0x23')](function(_0x1bd507){if(_0x1bd507){if(!fs[_0x1231('0x52')](path['join'](config[_0x1231('0x53')],_0x1231('0x54'),_0x1bd507[_0x1231('0x55')]))){throw new db[(_0x1231('0x56'))][(_0x1231('0x57'))](_0x1231('0x58'));}if(_0x5d8c37[_0x1231('0x31')][_0x1231('0x59')]){return _0x25a2d1[_0x1231('0x18')](0xc8);}return _0x25a2d1[_0x1231('0x4f')](path[_0x1231('0x5a')](config[_0x1231('0x53')],_0x1231('0x54'),_0x1bd507[_0x1231('0x55')]),util['format'](_0x1231('0x5b'),_0x1bd507[_0x1231('0x50')]||_0x1bd507[_0x1231('0x29')],_0x1bd507[_0x1231('0x51')][_0x1231('0x5c')]()));}})[_0x1231('0x44')](handleError(_0x25a2d1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe65=['AnalyticExtractedReport','analytics_extracted_reports','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','./analyticExtractedReport.attributes'];(function(_0x42c61a,_0x457e31){var _0x4aa968=function(_0x160065){while(--_0x160065){_0x42c61a['push'](_0x42c61a['shift']());}};_0x4aa968(++_0x457e31);}(_0xbe65,0x185));var _0x5be6=function(_0x1ac5e1,_0x43a483){_0x1ac5e1=_0x1ac5e1-0x0;var _0x3ae80e=_0xbe65[_0x1ac5e1];return _0x3ae80e;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x5be6('0x0'))('api');var moment=require('moment');var BPromise=require(_0x5be6('0x1'));var rp=require(_0x5be6('0x2'));var fs=require('fs');var path=require(_0x5be6('0x3'));var rimraf=require(_0x5be6('0x4'));var config=require(_0x5be6('0x5'));var attributes=require(_0x5be6('0x6'));module['exports']=function(_0x5a3d94,_0x26d75d){return _0x5a3d94['define'](_0x5be6('0x7'),attributes,{'tableName':_0x5be6('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a68=['../../config/logger','api','moment','bluebird','request-promise','path','./analyticExtractedReport.attributes','exports','define','AnalyticExtractedReport','lodash','util'];(function(_0x5b3d5d,_0x3b32d7){var _0x3d7f49=function(_0xe4add2){while(--_0xe4add2){_0x5b3d5d['push'](_0x5b3d5d['shift']());}};_0x3d7f49(++_0x3b32d7);}(_0x7a68,0x12a));var _0x87a6=function(_0x38b0f2,_0x23b2b9){_0x38b0f2=_0x38b0f2-0x0;var _0x2ee050=_0x7a68[_0x38b0f2];return _0x2ee050;};'use strict';var _=require(_0x87a6('0x0'));var util=require(_0x87a6('0x1'));var logger=require(_0x87a6('0x2'))(_0x87a6('0x3'));var moment=require(_0x87a6('0x4'));var BPromise=require(_0x87a6('0x5'));var rp=require(_0x87a6('0x6'));var fs=require('fs');var path=require(_0x87a6('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x87a6('0x8'));module[_0x87a6('0x9')]=function(_0x26d218,_0x2156a0){return _0x26d218[_0x87a6('0xa')](_0x87a6('0xb'),attributes,{'tableName':'analytics_extracted_reports','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5321=['../../config/utils','rpc','../../config/environment','http','request','then','AnalyticExtractedReport,\x20%s,\x20%s','request\x20sent','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','error','code','message','info','result','lodash','util','moment','randomstring'];(function(_0x9cfe28,_0x1a335c){var _0x54a1d0=function(_0x46bc02){while(--_0x46bc02){_0x9cfe28['push'](_0x9cfe28['shift']());}};_0x54a1d0(++_0x1a335c);}(_0x5321,0x9e));var _0x1532=function(_0x4fe0ee,_0x31e206){_0x4fe0ee=_0x4fe0ee-0x0;var _0x42c3e3=_0x5321[_0x4fe0ee];return _0x42c3e3;};'use strict';var _=require(_0x1532('0x0'));var util=require(_0x1532('0x1'));var moment=require(_0x1532('0x2'));var BPromise=require('bluebird');var rs=require(_0x1532('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x1532('0x4'));var logger=require('../../config/logger')(_0x1532('0x5'));var config=require(_0x1532('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1532('0x7')]({'port':0x232a});function respondWithRpcPromise(_0xdefcda,_0x450cc6,_0x1ae021){return new BPromise(function(_0x3ff4b4,_0x1e3d53){return client[_0x1532('0x8')](_0xdefcda,_0x1ae021)[_0x1532('0x9')](function(_0x1331d6){logger['info'](_0x1532('0xa'),_0x450cc6,_0x1532('0xb'));logger['debug'](_0x1532('0xc'),_0x450cc6,'request\x20sent',JSON['stringify'](_0x1331d6));if(_0x1331d6['error']){if(_0x1331d6[_0x1532('0xd')][_0x1532('0xe')]===0x1f4){logger[_0x1532('0xd')](_0x1532('0xa'),_0x450cc6,_0x1331d6[_0x1532('0xd')][_0x1532('0xf')]);return _0x1e3d53(_0x1331d6['error']['message']);}logger[_0x1532('0xd')](_0x1532('0xa'),_0x450cc6,_0x1331d6[_0x1532('0xd')][_0x1532('0xf')]);return _0x3ff4b4(_0x1331d6['error'][_0x1532('0xf')]);}else{logger[_0x1532('0x10')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x450cc6,_0x1532('0xb'));_0x3ff4b4(_0x1331d6[_0x1532('0x11')]['message']);}})['catch'](function(_0x21fd1c){logger[_0x1532('0xd')](_0x1532('0xa'),_0x450cc6,_0x21fd1c);_0x1e3d53(_0x21fd1c);});});}
\ No newline at end of file
+var _0x1c1f=['http','request','then','info','AnalyticExtractedReport,\x20%s,\x20%s','debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','lodash','util','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x5aa8a1,_0x9b593b){var _0x1ee2b5=function(_0x3a4bc0){while(--_0x3a4bc0){_0x5aa8a1['push'](_0x5aa8a1['shift']());}};_0x1ee2b5(++_0x9b593b);}(_0x1c1f,0x1c4));var _0xf1c1=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0x1c1f[_0x8c43de];return _0xa6591b;};'use strict';var _=require(_0xf1c1('0x0'));var util=require(_0xf1c1('0x1'));var moment=require('moment');var BPromise=require(_0xf1c1('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf1c1('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xf1c1('0x4'));var logger=require(_0xf1c1('0x5'))(_0xf1c1('0x6'));var config=require(_0xf1c1('0x7'));var jayson=require(_0xf1c1('0x8'));var client=jayson[_0xf1c1('0x9')][_0xf1c1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x25e768,_0x74b4bb,_0x24f870){return new BPromise(function(_0x314cb3,_0x54782b){return client[_0xf1c1('0xb')](_0x25e768,_0x24f870)[_0xf1c1('0xc')](function(_0x3a19cd){logger[_0xf1c1('0xd')](_0xf1c1('0xe'),_0x74b4bb,'request\x20sent');logger[_0xf1c1('0xf')](_0xf1c1('0x10'),_0x74b4bb,_0xf1c1('0x11'),JSON[_0xf1c1('0x12')](_0x3a19cd));if(_0x3a19cd['error']){if(_0x3a19cd[_0xf1c1('0x13')]['code']===0x1f4){logger[_0xf1c1('0x13')](_0xf1c1('0xe'),_0x74b4bb,_0x3a19cd[_0xf1c1('0x13')][_0xf1c1('0x14')]);return _0x54782b(_0x3a19cd[_0xf1c1('0x13')][_0xf1c1('0x14')]);}logger['error'](_0xf1c1('0xe'),_0x74b4bb,_0x3a19cd[_0xf1c1('0x13')][_0xf1c1('0x14')]);return _0x314cb3(_0x3a19cd[_0xf1c1('0x13')][_0xf1c1('0x14')]);}else{logger[_0xf1c1('0xd')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x74b4bb,_0xf1c1('0x11'));_0x314cb3(_0x3a19cd['result'][_0xf1c1('0x14')]);}})[_0xf1c1('0x15')](function(_0x1c0b00){logger[_0xf1c1('0x13')](_0xf1c1('0xe'),_0x74b4bb,_0x1c0b00);_0x54782b(_0x1c0b00);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a06=['exports','util','express','Router','fs-extra','../../config/environment','./analyticExtractedReport.controller','isAuthenticated','index','get','show','/:id/download','download','post','create','put','update','delete','/:id','destroy'];(function(_0x1126c6,_0x486776){var _0x3be619=function(_0x5b8ba3){while(--_0x5b8ba3){_0x1126c6['push'](_0x1126c6['shift']());}};_0x3be619(++_0x486776);}(_0x1a06,0xdd));var _0x61a0=function(_0x58e61d,_0x3fb5b5){_0x58e61d=_0x58e61d-0x0;var _0x27d73e=_0x1a06[_0x58e61d];return _0x27d73e;};'use strict';var multer=require('multer');var util=require(_0x61a0('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x61a0('0x1'));var router=express[_0x61a0('0x2')]();var fs_extra=require(_0x61a0('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x61a0('0x4'));var controller=require(_0x61a0('0x5'));router['get']('/',auth[_0x61a0('0x6')](),controller[_0x61a0('0x7')]);router[_0x61a0('0x8')]('/:id',auth[_0x61a0('0x6')](),controller[_0x61a0('0x9')]);router[_0x61a0('0x8')](_0x61a0('0xa'),auth[_0x61a0('0x6')](),controller[_0x61a0('0xb')]);router[_0x61a0('0xc')]('/',auth[_0x61a0('0x6')](),controller[_0x61a0('0xd')]);router[_0x61a0('0xe')]('/:id',auth[_0x61a0('0x6')](),controller[_0x61a0('0xf')]);router[_0x61a0('0x10')](_0x61a0('0x11'),auth[_0x61a0('0x6')](),controller[_0x61a0('0x12')]);module[_0x61a0('0x13')]=router;
\ No newline at end of file
+var _0x39d9=['download','post','create','put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','index','get','/:id','isAuthenticated'];(function(_0x112db6,_0x2c495e){var _0x2441ae=function(_0x358aab){while(--_0x358aab){_0x112db6['push'](_0x112db6['shift']());}};_0x2441ae(++_0x2c495e);}(_0x39d9,0x6c));var _0x939d=function(_0x5507d1,_0x590508){_0x5507d1=_0x5507d1-0x0;var _0x3ee53d=_0x39d9[_0x5507d1];return _0x3ee53d;};'use strict';var multer=require(_0x939d('0x0'));var util=require(_0x939d('0x1'));var path=require('path');var timeout=require(_0x939d('0x2'));var express=require(_0x939d('0x3'));var router=express[_0x939d('0x4')]();var fs_extra=require(_0x939d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x939d('0x6'));var config=require(_0x939d('0x7'));var controller=require('./analyticExtractedReport.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x939d('0x8')]);router[_0x939d('0x9')](_0x939d('0xa'),auth[_0x939d('0xb')](),controller['show']);router[_0x939d('0x9')]('/:id/download',auth[_0x939d('0xb')](),controller[_0x939d('0xc')]);router[_0x939d('0xd')]('/',auth[_0x939d('0xb')](),controller[_0x939d('0xe')]);router[_0x939d('0xf')]('/:id',auth[_0x939d('0xb')](),controller[_0x939d('0x10')]);router[_0x939d('0x11')](_0x939d('0xa'),auth[_0x939d('0xb')](),controller[_0x939d('0x12')]);module[_0x939d('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1920=['BOOLEAN','STRING'];(function(_0x29d915,_0x54a040){var _0x160f86=function(_0x237dfa){while(--_0x237dfa){_0x29d915['push'](_0x29d915['shift']());}};_0x160f86(++_0x54a040);}(_0x1920,0x73));var _0x0192=function(_0x57b22f,_0x6776e7){_0x57b22f=_0x57b22f-0x0;var _0xe790ae=_0x1920[_0x57b22f];return _0xe790ae;};'use strict';var Sequelize=require('sequelize');module['exports']={'field':{'type':Sequelize['TEXT']},'alias':{'type':Sequelize[_0x0192('0x0')]},'function':{'type':Sequelize[_0x0192('0x0')]},'format':{'type':Sequelize['STRING']},'groupBy':{'type':Sequelize[_0x0192('0x1')],'defaultValue':![]},'orderBy':{'type':Sequelize['STRING']},'custom':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x0176=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0x1f549b,_0x3376a7){var _0x1a4a64=function(_0x3f5aac){while(--_0x3f5aac){_0x1f549b['push'](_0x1f549b['shift']());}};_0x1a4a64(++_0x3376a7);}(_0x0176,0x148));var _0x6017=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x0176[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x6017('0x0'));module[_0x6017('0x1')]={'field':{'type':Sequelize[_0x6017('0x2')]},'alias':{'type':Sequelize[_0x6017('0x3')]},'function':{'type':Sequelize['STRING']},'format':{'type':Sequelize[_0x6017('0x3')]},'groupBy':{'type':Sequelize[_0x6017('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x6017('0x3')]},'custom':{'type':Sequelize[_0x6017('0x4')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x580f=['set','Content-Range','apply','update','then','end','stack','name','index','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','limit','offset','order','sort','where','map','type','filter','merge','AnalyticFieldReport','includeAll','include','findAll','rows','catch','show','params','keys','fields','create','body','bulkCreate','find','bulkDestroy','destroy','ids','addFields','AnalyticCustomReport','findOne','transaction','CustomReportId','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','count'];(function(_0x24f862,_0x4b645a){var _0x198aa4=function(_0x131195){while(--_0x131195){_0x24f862['push'](_0x24f862['shift']());}};_0x198aa4(++_0x4b645a);}(_0x580f,0x129));var _0xf580=function(_0x527b2b,_0x58e078){_0x527b2b=_0x527b2b-0x0;var _0x2cefeb=_0x580f[_0x527b2b];return _0x2cefeb;};'use strict';var emlformat=require(_0xf580('0x0'));var rimraf=require(_0xf580('0x1'));var zipdir=require(_0xf580('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf580('0x3'));var moment=require(_0xf580('0x4'));var BPromise=require(_0xf580('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf580('0x6'));var sox=require(_0xf580('0x7'));var csv=require('to-csv');var ejs=require(_0xf580('0x8'));var fs=require('fs');var fs_extra=require(_0xf580('0x9'));var _=require(_0xf580('0xa'));var squel=require('squel');var crypto=require(_0xf580('0xb'));var jsforce=require(_0xf580('0xc'));var deskjs=require(_0xf580('0xd'));var toCsv=require(_0xf580('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xf580('0xf'));var authService=require(_0xf580('0x10'));var qs=require(_0xf580('0x11'));var as=require(_0xf580('0x12'));var hardwareService=require(_0xf580('0x13'));var logger=require(_0xf580('0x14'))(_0xf580('0x15'));var utils=require(_0xf580('0x16'));var config=require(_0xf580('0x17'));var licenseUtil=require(_0xf580('0x18'));var db=require(_0xf580('0x19'))['db'];function respondWithStatusCode(_0x789164,_0x5ed3a0){_0x5ed3a0=_0x5ed3a0||0xcc;return function(_0x362f91){if(_0x362f91){return _0x789164[_0xf580('0x1a')](_0x5ed3a0);}return _0x789164[_0xf580('0x1b')](_0x5ed3a0)['end']();};}function respondWithResult(_0x1b2518,_0x266a54){_0x266a54=_0x266a54||0xc8;return function(_0x48c790){if(_0x48c790){return _0x1b2518['status'](_0x266a54)[_0xf580('0x1c')](_0x48c790);}};}function respondWithFilteredResult(_0x4fd092,_0x330b2d){return function(_0x4ea98a){if(_0x4ea98a){var _0x16c8b1=typeof _0x330b2d['offset']==='undefined'&&typeof _0x330b2d['limit']===_0xf580('0x1d');var _0x465fe3=_0x4ea98a['count'];var _0x42a284=_0x16c8b1?0x0:_0x330b2d['offset'];var _0x4b6d96=_0x16c8b1?_0x4ea98a[_0xf580('0x1e')]:_0x330b2d['offset']+_0x330b2d['limit'];var _0x369564;if(_0x4b6d96>=_0x465fe3){_0x4b6d96=_0x465fe3;_0x369564=0xc8;}else{_0x369564=0xce;}_0x4fd092[_0xf580('0x1b')](_0x369564);return _0x4fd092[_0xf580('0x1f')](_0xf580('0x20'),_0x42a284+'-'+_0x4b6d96+'/'+_0x465fe3)[_0xf580('0x1c')](_0x4ea98a);}return null;};}function patchUpdates(_0x8421c4){return function(_0x164480){try{jsonpatch[_0xf580('0x21')](_0x164480,_0x8421c4,!![]);}catch(_0x3f581f){return BPromise['reject'](_0x3f581f);}return _0x164480['save']();};}function saveUpdates(_0x2d1b90,_0x14c625){return function(_0x15f86c){if(_0x15f86c){return _0x15f86c[_0xf580('0x22')](_0x2d1b90)[_0xf580('0x23')](function(_0x11e685){return _0x11e685;});}return null;};}function removeEntity(_0x25450d,_0x3dcf71){return function(_0x4809f3){if(_0x4809f3){return _0x4809f3['destroy']()[_0xf580('0x23')](function(){_0x25450d[_0xf580('0x1b')](0xcc)[_0xf580('0x24')]();});}};}function handleEntityNotFound(_0x52d32c,_0x13186a){return function(_0x266f91){if(!_0x266f91){_0x52d32c['sendStatus'](0x194);}return _0x266f91;};}function handleError(_0x107997,_0x5cdff0){_0x5cdff0=_0x5cdff0||0x1f4;return function(_0x1012cb){logger['error'](_0x1012cb[_0xf580('0x25')]);if(_0x1012cb[_0xf580('0x26')]){delete _0x1012cb[_0xf580('0x26')];}_0x107997[_0xf580('0x1b')](_0x5cdff0)['send'](_0x1012cb);};}exports[_0xf580('0x27')]=function(_0x267e3c,_0x352b33){var _0xd07eb={},_0x1c8808={},_0x3a2651={'count':0x0,'rows':[]};var _0x4d60e4=_['map'](db['AnalyticFieldReport'][_0xf580('0x28')],function(_0x3ed939){return{'name':_0x3ed939[_0xf580('0x29')],'type':_0x3ed939['type'][_0xf580('0x2a')]};});_0x1c8808[_0xf580('0x2b')]=_['map'](_0x4d60e4,'name');_0x1c8808[_0xf580('0x2c')]=_['keys'](_0x267e3c[_0xf580('0x2c')]);_0x1c8808[_0xf580('0x2d')]=_[_0xf580('0x2e')](_0x1c8808[_0xf580('0x2b')],_0x1c8808[_0xf580('0x2c')]);_0xd07eb[_0xf580('0x2f')]=_[_0xf580('0x2e')](_0x1c8808['model'],qs['fields'](_0x267e3c[_0xf580('0x2c')]['fields']));_0xd07eb[_0xf580('0x2f')]=_0xd07eb[_0xf580('0x2f')][_0xf580('0x30')]?_0xd07eb[_0xf580('0x2f')]:_0x1c8808[_0xf580('0x2b')];if(!_0x267e3c[_0xf580('0x2c')][_0xf580('0x31')](_0xf580('0x32'))){_0xd07eb[_0xf580('0x33')]=qs[_0xf580('0x33')](_0x267e3c[_0xf580('0x2c')][_0xf580('0x33')]);_0xd07eb['offset']=qs['offset'](_0x267e3c['query'][_0xf580('0x34')]);}_0xd07eb[_0xf580('0x35')]=qs['sort'](_0x267e3c['query'][_0xf580('0x36')]);_0xd07eb[_0xf580('0x37')]=qs[_0xf580('0x2d')](_['pick'](_0x267e3c[_0xf580('0x2c')],_0x1c8808[_0xf580('0x2d')]),_0x4d60e4);if(_0x267e3c[_0xf580('0x2c')]['filter']){_0xd07eb['where']=_['merge'](_0xd07eb[_0xf580('0x37')],{'$or':_[_0xf580('0x38')](_0x4d60e4,function(_0x51bf70){if(_0x51bf70[_0xf580('0x39')]!=='VIRTUAL'){var _0x1fa6b7={};_0x1fa6b7[_0x51bf70[_0xf580('0x26')]]={'$like':'%'+_0x267e3c[_0xf580('0x2c')][_0xf580('0x3a')]+'%'};return _0x1fa6b7;}})});}_0xd07eb=_[_0xf580('0x3b')]({},_0xd07eb,_0x267e3c['options']);var _0x3aae8f={'where':_0xd07eb['where']};return db[_0xf580('0x3c')][_0xf580('0x1e')](_0x3aae8f)[_0xf580('0x23')](function(_0x250dab){_0x3a2651[_0xf580('0x1e')]=_0x250dab;if(_0x267e3c[_0xf580('0x2c')][_0xf580('0x3d')]){_0xd07eb[_0xf580('0x3e')]=[{'all':!![]}];}return db[_0xf580('0x3c')][_0xf580('0x3f')](_0xd07eb);})[_0xf580('0x23')](function(_0x715e85){_0x3a2651[_0xf580('0x40')]=_0x715e85;return _0x3a2651;})['then'](respondWithFilteredResult(_0x352b33,_0xd07eb))[_0xf580('0x41')](handleError(_0x352b33,null));};exports[_0xf580('0x42')]=function(_0x4b6cc4,_0x174ae6){var _0x477752={'raw':![],'where':{'id':_0x4b6cc4[_0xf580('0x43')]['id']}},_0x59490={};_0x59490[_0xf580('0x2b')]=_[_0xf580('0x44')](db[_0xf580('0x3c')][_0xf580('0x28')]);_0x59490[_0xf580('0x2c')]=_[_0xf580('0x44')](_0x4b6cc4['query']);_0x59490[_0xf580('0x2d')]=_[_0xf580('0x2e')](_0x59490[_0xf580('0x2b')],_0x59490[_0xf580('0x2c')]);_0x477752[_0xf580('0x2f')]=_['intersection'](_0x59490[_0xf580('0x2b')],qs['fields'](_0x4b6cc4[_0xf580('0x2c')][_0xf580('0x45')]));_0x477752[_0xf580('0x2f')]=_0x477752['attributes'][_0xf580('0x30')]?_0x477752[_0xf580('0x2f')]:_0x59490[_0xf580('0x2b')];if(_0x4b6cc4[_0xf580('0x2c')]['includeAll']){_0x477752[_0xf580('0x3e')]=[{'all':!![]}];}_0x477752=_['merge']({},_0x477752,_0x4b6cc4['options']);return db['AnalyticFieldReport']['find'](_0x477752)['then'](handleEntityNotFound(_0x174ae6,null))['then'](respondWithResult(_0x174ae6,null))[_0xf580('0x41')](handleError(_0x174ae6,null));};exports['create']=function(_0x13bc8b,_0x38e04b){return db[_0xf580('0x3c')][_0xf580('0x46')](_0x13bc8b[_0xf580('0x47')],{})[_0xf580('0x23')](respondWithResult(_0x38e04b,0xc9))[_0xf580('0x41')](handleError(_0x38e04b,null));};exports['bulkCreate']=function(_0x431b42,_0x473ca4){return db[_0xf580('0x3c')][_0xf580('0x48')](_0x431b42[_0xf580('0x47')],{'raw':![],'individualHooks':!![]})[_0xf580('0x23')](respondWithResult(_0x473ca4,0xc9))[_0xf580('0x41')](handleError(_0x473ca4,null));};exports[_0xf580('0x22')]=function(_0x548371,_0x19239f){if(_0x548371[_0xf580('0x47')]['id']){delete _0x548371['body']['id'];}return db[_0xf580('0x3c')][_0xf580('0x49')]({'where':{'id':_0x548371['params']['id']}})[_0xf580('0x23')](handleEntityNotFound(_0x19239f,null))[_0xf580('0x23')](saveUpdates(_0x548371[_0xf580('0x47')],null))['then'](respondWithResult(_0x19239f,null))[_0xf580('0x41')](handleError(_0x19239f,null));};exports['destroy']=function(_0x3ab7c4,_0x1acbc3){return db[_0xf580('0x3c')][_0xf580('0x49')]({'where':{'id':_0x3ab7c4[_0xf580('0x43')]['id']}})['then'](handleEntityNotFound(_0x1acbc3,null))[_0xf580('0x23')](removeEntity(_0x1acbc3,null))[_0xf580('0x41')](handleError(_0x1acbc3,null));};exports[_0xf580('0x4a')]=function(_0x418a87,_0x1f4d02){return db['AnalyticFieldReport'][_0xf580('0x4b')]({'where':{'id':_0x418a87[_0xf580('0x2c')][_0xf580('0x4c')]||[]},'raw':![],'individualHooks':!![]})[_0xf580('0x23')](respondWithResult(_0x1f4d02,0xcc))[_0xf580('0x41')](handleError(_0x1f4d02,null));};exports[_0xf580('0x4d')]=function(_0x570f59,_0x5f2e17,_0x3a14e4){return db[_0xf580('0x4e')][_0xf580('0x4f')]({'where':{'id':_0x570f59[_0xf580('0x43')]['id']}})[_0xf580('0x23')](handleEntityNotFound(_0x5f2e17,null))['then'](function(_0x48e924){if(_0x48e924){return db['sequelize'][_0xf580('0x50')](function(_0x235b69){return db[_0xf580('0x3c')][_0xf580('0x4b')]({'where':{'CustomReportId':_0x570f59['params']['id']},'transaction':_0x235b69})['then'](function(_0x441c9e){var _0x24dde8=_[_0xf580('0x38')](_0x570f59[_0xf580('0x47')],function(_0x2a8e9e){delete _0x2a8e9e['id'];_0x2a8e9e[_0xf580('0x51')]=_0x570f59[_0xf580('0x43')]['id'];return _0x2a8e9e;});return db[_0xf580('0x3c')][_0xf580('0x48')](_0x24dde8,{'transaction':_0x235b69});});})[_0xf580('0x23')](function(){return db[_0xf580('0x3c')]['findAll']({'where':{'CustomReportId':_0x570f59[_0xf580('0x43')]['id']}});});}})[_0xf580('0x23')](respondWithResult(_0x5f2e17,null))['catch'](handleError(_0x5f2e17,null));};
\ No newline at end of file
+var _0xaf19=['error','stack','name','index','map','rawAttributes','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','sort','filter','where','merge','type','VIRTUAL','AnalyticFieldReport','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','bulkCreate','destroy','bulkDestroy','addFields','AnalyticCustomReport','findOne','sequelize','transaction','CustomReportId','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','reject','save','update','then'];(function(_0x49fb32,_0x40c748){var _0x4b1577=function(_0x421b1c){while(--_0x421b1c){_0x49fb32['push'](_0x49fb32['shift']());}};_0x4b1577(++_0x40c748);}(_0xaf19,0x7c));var _0x9af1=function(_0x28bb98,_0x2902d5){_0x28bb98=_0x28bb98-0x0;var _0x650a7a=_0xaf19[_0x28bb98];return _0x650a7a;};'use strict';var emlformat=require(_0x9af1('0x0'));var rimraf=require(_0x9af1('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9af1('0x2'));var rp=require(_0x9af1('0x3'));var moment=require(_0x9af1('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9af1('0x5'));var util=require(_0x9af1('0x6'));var path=require(_0x9af1('0x7'));var sox=require(_0x9af1('0x8'));var csv=require(_0x9af1('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9af1('0xa'));var _=require('lodash');var squel=require(_0x9af1('0xb'));var crypto=require(_0x9af1('0xc'));var jsforce=require(_0x9af1('0xd'));var deskjs=require(_0x9af1('0xe'));var toCsv=require(_0x9af1('0x9'));var querystring=require(_0x9af1('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x9af1('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x9af1('0x11'));var hardwareService=require(_0x9af1('0x12'));var logger=require(_0x9af1('0x13'))(_0x9af1('0x14'));var utils=require(_0x9af1('0x15'));var config=require(_0x9af1('0x16'));var licenseUtil=require(_0x9af1('0x17'));var db=require(_0x9af1('0x18'))['db'];function respondWithStatusCode(_0x338266,_0x4d26b5){_0x4d26b5=_0x4d26b5||0xcc;return function(_0x1082bf){if(_0x1082bf){return _0x338266[_0x9af1('0x19')](_0x4d26b5);}return _0x338266[_0x9af1('0x1a')](_0x4d26b5)[_0x9af1('0x1b')]();};}function respondWithResult(_0x5c472e,_0x1f3596){_0x1f3596=_0x1f3596||0xc8;return function(_0x539fdd){if(_0x539fdd){return _0x5c472e[_0x9af1('0x1a')](_0x1f3596)['json'](_0x539fdd);}};}function respondWithFilteredResult(_0xfc1560,_0x4cb14f){return function(_0x18fdd3){if(_0x18fdd3){var _0x327b0e=typeof _0x4cb14f[_0x9af1('0x1c')]===_0x9af1('0x1d')&&typeof _0x4cb14f[_0x9af1('0x1e')]===_0x9af1('0x1d');var _0x214183=_0x18fdd3[_0x9af1('0x1f')];var _0x3834d1=_0x327b0e?0x0:_0x4cb14f[_0x9af1('0x1c')];var _0x336734=_0x327b0e?_0x18fdd3[_0x9af1('0x1f')]:_0x4cb14f[_0x9af1('0x1c')]+_0x4cb14f['limit'];var _0x15421e;if(_0x336734>=_0x214183){_0x336734=_0x214183;_0x15421e=0xc8;}else{_0x15421e=0xce;}_0xfc1560[_0x9af1('0x1a')](_0x15421e);return _0xfc1560['set'](_0x9af1('0x20'),_0x3834d1+'-'+_0x336734+'/'+_0x214183)[_0x9af1('0x21')](_0x18fdd3);}return null;};}function patchUpdates(_0x249dce){return function(_0x41f7c7){try{jsonpatch['apply'](_0x41f7c7,_0x249dce,!![]);}catch(_0xf675c1){return BPromise[_0x9af1('0x22')](_0xf675c1);}return _0x41f7c7[_0x9af1('0x23')]();};}function saveUpdates(_0x5c12d8,_0x39388a){return function(_0x9e3acd){if(_0x9e3acd){return _0x9e3acd[_0x9af1('0x24')](_0x5c12d8)[_0x9af1('0x25')](function(_0x55ba02){return _0x55ba02;});}return null;};}function removeEntity(_0x522249,_0x100858){return function(_0x504ca1){if(_0x504ca1){return _0x504ca1['destroy']()[_0x9af1('0x25')](function(){_0x522249['status'](0xcc)[_0x9af1('0x1b')]();});}};}function handleEntityNotFound(_0x2e31c4,_0xdf5dbe){return function(_0x14cb8d){if(!_0x14cb8d){_0x2e31c4[_0x9af1('0x19')](0x194);}return _0x14cb8d;};}function handleError(_0x47416c,_0x51f3a1){_0x51f3a1=_0x51f3a1||0x1f4;return function(_0x53cd42){logger[_0x9af1('0x26')](_0x53cd42[_0x9af1('0x27')]);if(_0x53cd42[_0x9af1('0x28')]){delete _0x53cd42['name'];}_0x47416c[_0x9af1('0x1a')](_0x51f3a1)['send'](_0x53cd42);};}exports[_0x9af1('0x29')]=function(_0x977f09,_0x206b41){var _0x565254={},_0x17d09a={},_0x5c42a9={'count':0x0,'rows':[]};var _0x1c0ccb=_[_0x9af1('0x2a')](db['AnalyticFieldReport'][_0x9af1('0x2b')],function(_0x2cfc17){return{'name':_0x2cfc17['fieldName'],'type':_0x2cfc17['type'][_0x9af1('0x2c')]};});_0x17d09a[_0x9af1('0x2d')]=_['map'](_0x1c0ccb,_0x9af1('0x28'));_0x17d09a['query']=_['keys'](_0x977f09[_0x9af1('0x2e')]);_0x17d09a[_0x9af1('0x2f')]=_[_0x9af1('0x30')](_0x17d09a[_0x9af1('0x2d')],_0x17d09a[_0x9af1('0x2e')]);_0x565254['attributes']=_[_0x9af1('0x30')](_0x17d09a[_0x9af1('0x2d')],qs['fields'](_0x977f09[_0x9af1('0x2e')][_0x9af1('0x31')]));_0x565254[_0x9af1('0x32')]=_0x565254[_0x9af1('0x32')][_0x9af1('0x33')]?_0x565254['attributes']:_0x17d09a['model'];if(!_0x977f09[_0x9af1('0x2e')]['hasOwnProperty'](_0x9af1('0x34'))){_0x565254[_0x9af1('0x1e')]=qs['limit'](_0x977f09['query']['limit']);_0x565254[_0x9af1('0x1c')]=qs['offset'](_0x977f09[_0x9af1('0x2e')]['offset']);}_0x565254[_0x9af1('0x35')]=qs[_0x9af1('0x36')](_0x977f09[_0x9af1('0x2e')][_0x9af1('0x36')]);_0x565254['where']=qs[_0x9af1('0x2f')](_['pick'](_0x977f09[_0x9af1('0x2e')],_0x17d09a[_0x9af1('0x2f')]),_0x1c0ccb);if(_0x977f09[_0x9af1('0x2e')][_0x9af1('0x37')]){_0x565254[_0x9af1('0x38')]=_[_0x9af1('0x39')](_0x565254[_0x9af1('0x38')],{'$or':_[_0x9af1('0x2a')](_0x1c0ccb,function(_0x16e12b){if(_0x16e12b[_0x9af1('0x3a')]!==_0x9af1('0x3b')){var _0x488e49={};_0x488e49[_0x16e12b[_0x9af1('0x28')]]={'$like':'%'+_0x977f09['query']['filter']+'%'};return _0x488e49;}})});}_0x565254=_[_0x9af1('0x39')]({},_0x565254,_0x977f09['options']);var _0x296f83={'where':_0x565254[_0x9af1('0x38')]};return db[_0x9af1('0x3c')][_0x9af1('0x1f')](_0x296f83)[_0x9af1('0x25')](function(_0xaf43c4){_0x5c42a9[_0x9af1('0x1f')]=_0xaf43c4;if(_0x977f09[_0x9af1('0x2e')][_0x9af1('0x3d')]){_0x565254[_0x9af1('0x3e')]=[{'all':!![]}];}return db[_0x9af1('0x3c')][_0x9af1('0x3f')](_0x565254);})[_0x9af1('0x25')](function(_0x40c752){_0x5c42a9[_0x9af1('0x40')]=_0x40c752;return _0x5c42a9;})[_0x9af1('0x25')](respondWithFilteredResult(_0x206b41,_0x565254))[_0x9af1('0x41')](handleError(_0x206b41,null));};exports[_0x9af1('0x42')]=function(_0x357fac,_0x3e2040){var _0x4984a9={'raw':![],'where':{'id':_0x357fac[_0x9af1('0x43')]['id']}},_0x170162={};_0x170162[_0x9af1('0x2d')]=_[_0x9af1('0x44')](db[_0x9af1('0x3c')][_0x9af1('0x2b')]);_0x170162[_0x9af1('0x2e')]=_[_0x9af1('0x44')](_0x357fac[_0x9af1('0x2e')]);_0x170162[_0x9af1('0x2f')]=_[_0x9af1('0x30')](_0x170162[_0x9af1('0x2d')],_0x170162[_0x9af1('0x2e')]);_0x4984a9[_0x9af1('0x32')]=_[_0x9af1('0x30')](_0x170162[_0x9af1('0x2d')],qs['fields'](_0x357fac[_0x9af1('0x2e')][_0x9af1('0x31')]));_0x4984a9[_0x9af1('0x32')]=_0x4984a9['attributes']['length']?_0x4984a9[_0x9af1('0x32')]:_0x170162[_0x9af1('0x2d')];if(_0x357fac[_0x9af1('0x2e')][_0x9af1('0x3d')]){_0x4984a9[_0x9af1('0x3e')]=[{'all':!![]}];}_0x4984a9=_[_0x9af1('0x39')]({},_0x4984a9,_0x357fac['options']);return db[_0x9af1('0x3c')][_0x9af1('0x45')](_0x4984a9)['then'](handleEntityNotFound(_0x3e2040,null))[_0x9af1('0x25')](respondWithResult(_0x3e2040,null))[_0x9af1('0x41')](handleError(_0x3e2040,null));};exports['create']=function(_0x1e0193,_0x243c4f){return db[_0x9af1('0x3c')][_0x9af1('0x46')](_0x1e0193[_0x9af1('0x47')],{})[_0x9af1('0x25')](respondWithResult(_0x243c4f,0xc9))['catch'](handleError(_0x243c4f,null));};exports[_0x9af1('0x48')]=function(_0x2de4c5,_0x5ea726){return db['AnalyticFieldReport'][_0x9af1('0x48')](_0x2de4c5['body'],{'raw':![],'individualHooks':!![]})[_0x9af1('0x25')](respondWithResult(_0x5ea726,0xc9))['catch'](handleError(_0x5ea726,null));};exports['update']=function(_0x2cd680,_0x1a70e0){if(_0x2cd680[_0x9af1('0x47')]['id']){delete _0x2cd680[_0x9af1('0x47')]['id'];}return db[_0x9af1('0x3c')]['find']({'where':{'id':_0x2cd680[_0x9af1('0x43')]['id']}})['then'](handleEntityNotFound(_0x1a70e0,null))[_0x9af1('0x25')](saveUpdates(_0x2cd680[_0x9af1('0x47')],null))[_0x9af1('0x25')](respondWithResult(_0x1a70e0,null))[_0x9af1('0x41')](handleError(_0x1a70e0,null));};exports[_0x9af1('0x49')]=function(_0x3d023e,_0x1a6ef7){return db[_0x9af1('0x3c')]['find']({'where':{'id':_0x3d023e['params']['id']}})[_0x9af1('0x25')](handleEntityNotFound(_0x1a6ef7,null))[_0x9af1('0x25')](removeEntity(_0x1a6ef7,null))['catch'](handleError(_0x1a6ef7,null));};exports[_0x9af1('0x4a')]=function(_0x5cd0d6,_0x43631e){return db['AnalyticFieldReport'][_0x9af1('0x49')]({'where':{'id':_0x5cd0d6['query']['ids']||[]},'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x43631e,0xcc))[_0x9af1('0x41')](handleError(_0x43631e,null));};exports[_0x9af1('0x4b')]=function(_0x5ea6e1,_0x29262b,_0x1c3060){return db[_0x9af1('0x4c')][_0x9af1('0x4d')]({'where':{'id':_0x5ea6e1['params']['id']}})[_0x9af1('0x25')](handleEntityNotFound(_0x29262b,null))[_0x9af1('0x25')](function(_0x121e5e){if(_0x121e5e){return db[_0x9af1('0x4e')][_0x9af1('0x4f')](function(_0x34cf39){return db[_0x9af1('0x3c')][_0x9af1('0x49')]({'where':{'CustomReportId':_0x5ea6e1['params']['id']},'transaction':_0x34cf39})[_0x9af1('0x25')](function(_0x401765){var _0x117d4d=_[_0x9af1('0x2a')](_0x5ea6e1[_0x9af1('0x47')],function(_0xca6cfe){delete _0xca6cfe['id'];_0xca6cfe[_0x9af1('0x50')]=_0x5ea6e1['params']['id'];return _0xca6cfe;});return db[_0x9af1('0x3c')][_0x9af1('0x48')](_0x117d4d,{'transaction':_0x34cf39});});})[_0x9af1('0x25')](function(){return db[_0x9af1('0x3c')][_0x9af1('0x3f')]({'where':{'CustomReportId':_0x5ea6e1[_0x9af1('0x43')]['id']}});});}})[_0x9af1('0x25')](respondWithResult(_0x29262b,null))['catch'](handleError(_0x29262b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5340=['request-promise','rimraf','../../config/environment','./analyticFieldReport.attributes','exports','AnalyticFieldReport','analytics_report_fields','util','api','bluebird'];(function(_0x403c20,_0x4a7b99){var _0x2b271a=function(_0x106ecb){while(--_0x106ecb){_0x403c20['push'](_0x403c20['shift']());}};_0x2b271a(++_0x4a7b99);}(_0x5340,0x1a1));var _0x0534=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5340[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x0534('0x0'));var logger=require('../../config/logger')(_0x0534('0x1'));var moment=require('moment');var BPromise=require(_0x0534('0x2'));var rp=require(_0x0534('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0534('0x4'));var config=require(_0x0534('0x5'));var attributes=require(_0x0534('0x6'));module[_0x0534('0x7')]=function(_0x2207f3,_0x33cf17){return _0x2207f3['define'](_0x0534('0x8'),attributes,{'tableName':_0x0534('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x46b2=['AnalyticFieldReport','analytics_report_fields','../../config/logger','api','moment','bluebird','request-promise','rimraf','define'];(function(_0x31cda3,_0x56ffee){var _0xd5bee9=function(_0x3d4d73){while(--_0x3d4d73){_0x31cda3['push'](_0x31cda3['shift']());}};_0xd5bee9(++_0x56ffee);}(_0x46b2,0x13d));var _0x246b=function(_0x4651d8,_0x37c4c2){_0x4651d8=_0x4651d8-0x0;var _0x28e903=_0x46b2[_0x4651d8];return _0x28e903;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x246b('0x0'))(_0x246b('0x1'));var moment=require(_0x246b('0x2'));var BPromise=require(_0x246b('0x3'));var rp=require(_0x246b('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x246b('0x5'));var config=require('../../config/environment');var attributes=require('./analyticFieldReport.attributes');module['exports']=function(_0x3c0ab2,_0x332153){return _0x3c0ab2[_0x246b('0x6')](_0x246b('0x7'),attributes,{'tableName':_0x246b('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8270=['randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird'];(function(_0x870b62,_0x2143f9){var _0x2dcb39=function(_0x2fb63d){while(--_0x2fb63d){_0x870b62['push'](_0x870b62['shift']());}};_0x2dcb39(++_0x2143f9);}(_0x8270,0x172));var _0x0827=function(_0x305cc5,_0x317607){_0x305cc5=_0x305cc5-0x0;var _0x3ef26f=_0x8270[_0x305cc5];return _0x3ef26f;};'use strict';var _=require(_0x0827('0x0'));var util=require(_0x0827('0x1'));var moment=require(_0x0827('0x2'));var BPromise=require(_0x0827('0x3'));var rs=require(_0x0827('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x0827('0x5'));var logger=require(_0x0827('0x6'))(_0x0827('0x7'));var config=require('../../config/environment');var jayson=require(_0x0827('0x8'));var client=jayson[_0x0827('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x49cc53,_0x35eefb,_0x51358b){return new BPromise(function(_0x37b9af,_0x568c78){return client[_0x0827('0xa')](_0x49cc53,_0x51358b)[_0x0827('0xb')](function(_0x57011c){logger['info'](_0x0827('0xc'),_0x35eefb,_0x0827('0xd'));logger[_0x0827('0xe')]('AnalyticFieldReport,\x20%s,\x20%s,\x20%s',_0x35eefb,'request\x20sent',JSON[_0x0827('0xf')](_0x57011c));if(_0x57011c[_0x0827('0x10')]){if(_0x57011c[_0x0827('0x10')][_0x0827('0x11')]===0x1f4){logger[_0x0827('0x10')](_0x0827('0xc'),_0x35eefb,_0x57011c[_0x0827('0x10')][_0x0827('0x12')]);return _0x568c78(_0x57011c[_0x0827('0x10')]['message']);}logger[_0x0827('0x10')]('AnalyticFieldReport,\x20%s,\x20%s',_0x35eefb,_0x57011c[_0x0827('0x10')][_0x0827('0x12')]);return _0x37b9af(_0x57011c[_0x0827('0x10')][_0x0827('0x12')]);}else{logger[_0x0827('0x13')]('AnalyticFieldReport,\x20%s,\x20%s',_0x35eefb,'request\x20sent');_0x37b9af(_0x57011c[_0x0827('0x14')][_0x0827('0x12')]);}})[_0x0827('0x15')](function(_0x434ddb){logger[_0x0827('0x10')](_0x0827('0xc'),_0x35eefb,_0x434ddb);_0x568c78(_0x434ddb);});});}
\ No newline at end of file
+var _0xa1f0=['../../config/environment','jayson/promise','client','http','request','then','info','AnalyticFieldReport,\x20%s,\x20%s','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x36e225,_0x482d58){var _0x27badf=function(_0x2166e4){while(--_0x2166e4){_0x36e225['push'](_0x36e225['shift']());}};_0x27badf(++_0x482d58);}(_0xa1f0,0x104));var _0x0a1f=function(_0x3a5b57,_0x1785f7){_0x3a5b57=_0x3a5b57-0x0;var _0x6e5d93=_0xa1f0[_0x3a5b57];return _0x6e5d93;};'use strict';var _=require(_0x0a1f('0x0'));var util=require(_0x0a1f('0x1'));var moment=require(_0x0a1f('0x2'));var BPromise=require(_0x0a1f('0x3'));var rs=require(_0x0a1f('0x4'));var fs=require('fs');var Redis=require(_0x0a1f('0x5'));var db=require(_0x0a1f('0x6'))['db'];var utils=require(_0x0a1f('0x7'));var logger=require(_0x0a1f('0x8'))(_0x0a1f('0x9'));var config=require(_0x0a1f('0xa'));var jayson=require(_0x0a1f('0xb'));var client=jayson[_0x0a1f('0xc')][_0x0a1f('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x3a61c4,_0x404838,_0x2a807d){return new BPromise(function(_0x3574ac,_0x396f52){return client[_0x0a1f('0xe')](_0x3a61c4,_0x2a807d)[_0x0a1f('0xf')](function(_0x1c7831){logger[_0x0a1f('0x10')](_0x0a1f('0x11'),_0x404838,'request\x20sent');logger[_0x0a1f('0x12')](_0x0a1f('0x13'),_0x404838,_0x0a1f('0x14'),JSON[_0x0a1f('0x15')](_0x1c7831));if(_0x1c7831[_0x0a1f('0x16')]){if(_0x1c7831[_0x0a1f('0x16')][_0x0a1f('0x17')]===0x1f4){logger['error'](_0x0a1f('0x11'),_0x404838,_0x1c7831['error'][_0x0a1f('0x18')]);return _0x396f52(_0x1c7831[_0x0a1f('0x16')]['message']);}logger[_0x0a1f('0x16')](_0x0a1f('0x11'),_0x404838,_0x1c7831[_0x0a1f('0x16')][_0x0a1f('0x18')]);return _0x3574ac(_0x1c7831[_0x0a1f('0x16')][_0x0a1f('0x18')]);}else{logger[_0x0a1f('0x10')]('AnalyticFieldReport,\x20%s,\x20%s',_0x404838,_0x0a1f('0x14'));_0x3574ac(_0x1c7831[_0x0a1f('0x19')][_0x0a1f('0x18')]);}})[_0x0a1f('0x1a')](function(_0x185663){logger['error'](_0x0a1f('0x11'),_0x404838,_0x185663);_0x396f52(_0x185663);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x1bf4d2,_0x2f1654){var _0x401f27=function(_0x4eb6c7){while(--_0x4eb6c7){_0x1bf4d2['push'](_0x1bf4d2['shift']());}};_0x401f27(++_0x2f1654);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xa9e0[_0x1facfa];return _0x9ec701;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
+var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x5d28ec,_0x4304d2){var _0x4d9dad=function(_0x6cb123){while(--_0x6cb123){_0x5d28ec['push'](_0x5d28ec['shift']());}};_0x4d9dad(++_0x4304d2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0xa9e0[_0x3635ce];return _0x97ecd0;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa2d=['TEXT','STRING','exports'];(function(_0x3ec5e4,_0x4ad544){var _0x16d482=function(_0xc9209a){while(--_0xc9209a){_0x3ec5e4['push'](_0x3ec5e4['shift']());}};_0x16d482(++_0x4ad544);}(_0xaa2d,0x11c));var _0xdaa2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xaa2d[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module[_0xdaa2('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'table':{'type':Sequelize['STRING']},'metric':{'type':Sequelize[_0xdaa2('0x1')]},'description':{'type':Sequelize[_0xdaa2('0x2')]}};
\ No newline at end of file
+var _0x5bc5=['STRING','name','TEXT','sequelize','exports'];(function(_0x41de93,_0x54761e){var _0x492bd8=function(_0x3c1b8e){while(--_0x3c1b8e){_0x41de93['push'](_0x41de93['shift']());}};_0x492bd8(++_0x54761e);}(_0x5bc5,0xb2));var _0x55bc=function(_0x4ac60a,_0x503a99){_0x4ac60a=_0x4ac60a-0x0;var _0x4b22e8=_0x5bc5[_0x4ac60a];return _0x4b22e8;};'use strict';var Sequelize=require(_0x55bc('0x0'));module[_0x55bc('0x1')]={'name':{'type':Sequelize[_0x55bc('0x2')],'allowNull':![],'unique':_0x55bc('0x3')},'table':{'type':Sequelize[_0x55bc('0x2')]},'metric':{'type':Sequelize[_0x55bc('0x4')]},'description':{'type':Sequelize[_0x55bc('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81bd=['filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','options','AnalyticMetric','includeAll','include','findAll','rows','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','catch','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','get','Metrics','stack','name','send','index','map','fieldName','query','keys'];(function(_0x192bc9,_0x4408c7){var _0x48397b=function(_0x2e03e6){while(--_0x2e03e6){_0x192bc9['push'](_0x192bc9['shift']());}};_0x48397b(++_0x4408c7);}(_0x81bd,0x7c));var _0xd81b=function(_0x32292b,_0x4e9525){_0x32292b=_0x32292b-0x0;var _0x1845b4=_0x81bd[_0x32292b];return _0x1845b4;};'use strict';var emlformat=require(_0xd81b('0x0'));var rimraf=require(_0xd81b('0x1'));var zipdir=require(_0xd81b('0x2'));var jsonpatch=require(_0xd81b('0x3'));var rp=require(_0xd81b('0x4'));var moment=require(_0xd81b('0x5'));var BPromise=require(_0xd81b('0x6'));var Mustache=require('mustache');var util=require(_0xd81b('0x7'));var path=require(_0xd81b('0x8'));var sox=require(_0xd81b('0x9'));var csv=require('to-csv');var ejs=require(_0xd81b('0xa'));var fs=require('fs');var fs_extra=require(_0xd81b('0xb'));var _=require(_0xd81b('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xd81b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd81b('0xe'));var querystring=require(_0xd81b('0xf'));var Papa=require(_0xd81b('0x10'));var Redis=require(_0xd81b('0x11'));var authService=require(_0xd81b('0x12'));var qs=require(_0xd81b('0x13'));var as=require(_0xd81b('0x14'));var hardwareService=require(_0xd81b('0x15'));var logger=require(_0xd81b('0x16'))(_0xd81b('0x17'));var utils=require(_0xd81b('0x18'));var config=require(_0xd81b('0x19'));var licenseUtil=require(_0xd81b('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x21dfff,_0x57f71d){_0x57f71d=_0x57f71d||0xcc;return function(_0x3f2405){if(_0x3f2405){return _0x21dfff[_0xd81b('0x1b')](_0x57f71d);}return _0x21dfff['status'](_0x57f71d)[_0xd81b('0x1c')]();};}function respondWithResult(_0x47dd04,_0x13dd00){_0x13dd00=_0x13dd00||0xc8;return function(_0x41bf7a){if(_0x41bf7a){return _0x47dd04[_0xd81b('0x1d')](_0x13dd00)[_0xd81b('0x1e')](_0x41bf7a);}};}function respondWithFilteredResult(_0x128162,_0x552215){return function(_0x1c620d){if(_0x1c620d){var _0x27b7a0=typeof _0x552215['offset']===_0xd81b('0x1f')&&typeof _0x552215[_0xd81b('0x20')]===_0xd81b('0x1f');var _0x15e860=_0x1c620d[_0xd81b('0x21')];var _0xc49b8d=_0x27b7a0?0x0:_0x552215[_0xd81b('0x22')];var _0x3d4d34=_0x27b7a0?_0x1c620d[_0xd81b('0x21')]:_0x552215[_0xd81b('0x22')]+_0x552215[_0xd81b('0x20')];var _0x453952;if(_0x3d4d34>=_0x15e860){_0x3d4d34=_0x15e860;_0x453952=0xc8;}else{_0x453952=0xce;}_0x128162[_0xd81b('0x1d')](_0x453952);return _0x128162[_0xd81b('0x23')](_0xd81b('0x24'),_0xc49b8d+'-'+_0x3d4d34+'/'+_0x15e860)[_0xd81b('0x1e')](_0x1c620d);}return null;};}function patchUpdates(_0x5f101a){return function(_0x4d566e){try{jsonpatch[_0xd81b('0x25')](_0x4d566e,_0x5f101a,!![]);}catch(_0x1b7876){return BPromise[_0xd81b('0x26')](_0x1b7876);}return _0x4d566e['save']();};}function saveUpdates(_0x19ed0e,_0x6571a6){return function(_0x542ee2){if(_0x542ee2){return _0x542ee2[_0xd81b('0x27')](_0x19ed0e)[_0xd81b('0x28')](function(_0x1670cd){return _0x1670cd;});}return null;};}function removeEntity(_0x1ad65c,_0x279176){return function(_0xcb4f91){if(_0xcb4f91){return _0xcb4f91[_0xd81b('0x29')]()[_0xd81b('0x28')](function(){var _0x341aec=_0xcb4f91[_0xd81b('0x2a')]({'plain':!![]});var _0x2ccedf=_0xd81b('0x2b');return db['UserProfileResource'][_0xd81b('0x29')]({'where':{'type':_0x2ccedf,'resourceId':_0x341aec['id']}})[_0xd81b('0x28')](function(){return _0xcb4f91;});})[_0xd81b('0x28')](function(){_0x1ad65c[_0xd81b('0x1d')](0xcc)[_0xd81b('0x1c')]();});}};}function handleEntityNotFound(_0x2d0d02,_0x3e28dd){return function(_0x73dc09){if(!_0x73dc09){_0x2d0d02[_0xd81b('0x1b')](0x194);}return _0x73dc09;};}function handleError(_0x483a3d,_0x469cc4){_0x469cc4=_0x469cc4||0x1f4;return function(_0x4e2eff){logger['error'](_0x4e2eff[_0xd81b('0x2c')]);if(_0x4e2eff[_0xd81b('0x2d')]){delete _0x4e2eff['name'];}_0x483a3d['status'](_0x469cc4)[_0xd81b('0x2e')](_0x4e2eff);};}exports[_0xd81b('0x2f')]=function(_0x1b1434,_0x289f54){var _0x1a1572={},_0x4654ba={},_0x5527ed={'count':0x0,'rows':[]};var _0x37d381=_[_0xd81b('0x30')](db['AnalyticMetric']['rawAttributes'],function(_0x165892){return{'name':_0x165892[_0xd81b('0x31')],'type':_0x165892['type']['key']};});_0x4654ba['model']=_[_0xd81b('0x30')](_0x37d381,_0xd81b('0x2d'));_0x4654ba[_0xd81b('0x32')]=_[_0xd81b('0x33')](_0x1b1434[_0xd81b('0x32')]);_0x4654ba[_0xd81b('0x34')]=_[_0xd81b('0x35')](_0x4654ba['model'],_0x4654ba[_0xd81b('0x32')]);_0x1a1572['attributes']=_[_0xd81b('0x35')](_0x4654ba[_0xd81b('0x36')],qs[_0xd81b('0x37')](_0x1b1434[_0xd81b('0x32')][_0xd81b('0x37')]));_0x1a1572[_0xd81b('0x38')]=_0x1a1572[_0xd81b('0x38')][_0xd81b('0x39')]?_0x1a1572[_0xd81b('0x38')]:_0x4654ba[_0xd81b('0x36')];if(!_0x1b1434[_0xd81b('0x32')][_0xd81b('0x3a')](_0xd81b('0x3b'))){_0x1a1572['limit']=qs['limit'](_0x1b1434[_0xd81b('0x32')][_0xd81b('0x20')]);_0x1a1572[_0xd81b('0x22')]=qs['offset'](_0x1b1434[_0xd81b('0x32')][_0xd81b('0x22')]);}_0x1a1572['order']=qs[_0xd81b('0x3c')](_0x1b1434[_0xd81b('0x32')]['sort']);_0x1a1572[_0xd81b('0x3d')]=qs['filters'](_[_0xd81b('0x3e')](_0x1b1434[_0xd81b('0x32')],_0x4654ba[_0xd81b('0x34')]),_0x37d381);if(_0x1b1434[_0xd81b('0x32')]['filter']){_0x1a1572[_0xd81b('0x3d')]=_[_0xd81b('0x3f')](_0x1a1572[_0xd81b('0x3d')],{'$or':_[_0xd81b('0x30')](_0x37d381,function(_0x3abd60){if(_0x3abd60[_0xd81b('0x40')]!==_0xd81b('0x41')){var _0x532ada={};_0x532ada[_0x3abd60[_0xd81b('0x2d')]]={'$like':'%'+_0x1b1434[_0xd81b('0x32')][_0xd81b('0x42')]+'%'};return _0x532ada;}})});}_0x1a1572=_['merge']({},_0x1a1572,_0x1b1434[_0xd81b('0x43')]);var _0x3a05f4={'where':_0x1a1572[_0xd81b('0x3d')]};return db[_0xd81b('0x44')][_0xd81b('0x21')](_0x3a05f4)['then'](function(_0x3dfba7){_0x5527ed[_0xd81b('0x21')]=_0x3dfba7;if(_0x1b1434[_0xd81b('0x32')][_0xd81b('0x45')]){_0x1a1572[_0xd81b('0x46')]=[{'all':!![]}];}return db[_0xd81b('0x44')][_0xd81b('0x47')](_0x1a1572);})[_0xd81b('0x28')](function(_0x4405a8){_0x5527ed[_0xd81b('0x48')]=_0x4405a8;return _0x5527ed;})[_0xd81b('0x28')](respondWithFilteredResult(_0x289f54,_0x1a1572))['catch'](handleError(_0x289f54,null));};exports[_0xd81b('0x49')]=function(_0x2778b3,_0x25824e){var _0xa5e391={'raw':!![],'where':{'id':_0x2778b3[_0xd81b('0x4a')]['id']}},_0x1e6654={};_0x1e6654[_0xd81b('0x36')]=_[_0xd81b('0x33')](db['AnalyticMetric']['rawAttributes']);_0x1e6654[_0xd81b('0x32')]=_[_0xd81b('0x33')](_0x2778b3[_0xd81b('0x32')]);_0x1e6654[_0xd81b('0x34')]=_[_0xd81b('0x35')](_0x1e6654[_0xd81b('0x36')],_0x1e6654[_0xd81b('0x32')]);_0xa5e391[_0xd81b('0x38')]=_[_0xd81b('0x35')](_0x1e6654[_0xd81b('0x36')],qs[_0xd81b('0x37')](_0x2778b3[_0xd81b('0x32')]['fields']));_0xa5e391[_0xd81b('0x38')]=_0xa5e391[_0xd81b('0x38')][_0xd81b('0x39')]?_0xa5e391[_0xd81b('0x38')]:_0x1e6654[_0xd81b('0x36')];if(_0x2778b3[_0xd81b('0x32')][_0xd81b('0x45')]){_0xa5e391[_0xd81b('0x46')]=[{'all':!![]}];}_0xa5e391=_[_0xd81b('0x3f')]({},_0xa5e391,_0x2778b3['options']);return db[_0xd81b('0x44')][_0xd81b('0x4b')](_0xa5e391)[_0xd81b('0x28')](handleEntityNotFound(_0x25824e,null))[_0xd81b('0x28')](respondWithResult(_0x25824e,null))['catch'](handleError(_0x25824e,null));};exports[_0xd81b('0x4c')]=function(_0x151127,_0x15030b){return db[_0xd81b('0x44')][_0xd81b('0x4c')](_0x151127[_0xd81b('0x4d')],{})[_0xd81b('0x28')](function(_0x43d7ce){var _0x133a76=_0x151127['user']['get']({'plain':!![]});if(!_0x133a76)throw new Error(_0xd81b('0x4e'));if(_0x133a76[_0xd81b('0x4f')]===_0xd81b('0x50')){var _0x4da281=_0x43d7ce[_0xd81b('0x2a')]({'plain':!![]});var _0x3d6ab3=_0xd81b('0x2b');return db[_0xd81b('0x51')]['find']({'where':{'name':_0x3d6ab3,'userProfileId':_0x133a76[_0xd81b('0x52')]},'raw':!![]})[_0xd81b('0x28')](function(_0x1b523c){if(_0x1b523c&&_0x1b523c[_0xd81b('0x53')]===0x0){return db[_0xd81b('0x54')]['create']({'name':_0x4da281[_0xd81b('0x2d')],'resourceId':_0x4da281['id'],'type':_0x1b523c[_0xd81b('0x2d')],'sectionId':_0x1b523c['id']},{})['then'](function(){return _0x43d7ce;});}else{return _0x43d7ce;}})[_0xd81b('0x55')](function(_0x315bd5){logger[_0xd81b('0x56')](_0xd81b('0x57'),_0x315bd5);throw _0x315bd5;});}return _0x43d7ce;})[_0xd81b('0x28')](respondWithResult(_0x15030b,0xc9))[_0xd81b('0x55')](handleError(_0x15030b,null));};exports[_0xd81b('0x27')]=function(_0x22f588,_0x3ed626){if(_0x22f588[_0xd81b('0x4d')]['id']){delete _0x22f588[_0xd81b('0x4d')]['id'];}return db['AnalyticMetric'][_0xd81b('0x4b')]({'where':{'id':_0x22f588['params']['id']}})[_0xd81b('0x28')](handleEntityNotFound(_0x3ed626,null))[_0xd81b('0x28')](saveUpdates(_0x22f588[_0xd81b('0x4d')],null))[_0xd81b('0x28')](respondWithResult(_0x3ed626,null))[_0xd81b('0x55')](handleError(_0x3ed626,null));};exports[_0xd81b('0x29')]=function(_0x5c196a,_0x2d978d){return db[_0xd81b('0x44')]['find']({'where':{'id':_0x5c196a['params']['id']}})[_0xd81b('0x28')](handleEntityNotFound(_0x2d978d,null))['then'](removeEntity(_0x2d978d,null))[_0xd81b('0x55')](handleError(_0x2d978d,null));};
\ No newline at end of file
+var _0x4b84=['status','end','json','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','Metrics','UserProfileResource','sendStatus','stack','name','map','AnalyticMetric','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','request-promise','mustache','util','path','fs-extra','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb'];(function(_0x414815,_0x3b9381){var _0x143e0d=function(_0xa131da){while(--_0xa131da){_0x414815['push'](_0x414815['shift']());}};_0x143e0d(++_0x3b9381);}(_0x4b84,0x1cc));var _0x44b8=function(_0x548d7d,_0x2d41fc){_0x548d7d=_0x548d7d-0x0;var _0xb1c878=_0x4b84[_0x548d7d];return _0xb1c878;};'use strict';var emlformat=require(_0x44b8('0x0'));var rimraf=require(_0x44b8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x44b8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x44b8('0x3'));var util=require(_0x44b8('0x4'));var path=require(_0x44b8('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x44b8('0x6'));var _=require('lodash');var squel=require(_0x44b8('0x7'));var crypto=require('crypto');var jsforce=require(_0x44b8('0x8'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x44b8('0x9'));var Papa=require(_0x44b8('0xa'));var Redis=require(_0x44b8('0xb'));var authService=require('../../components/auth/service');var qs=require(_0x44b8('0xc'));var as=require(_0x44b8('0xd'));var hardwareService=require(_0x44b8('0xe'));var logger=require(_0x44b8('0xf'))(_0x44b8('0x10'));var utils=require(_0x44b8('0x11'));var config=require(_0x44b8('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x44b8('0x13'))['db'];function respondWithStatusCode(_0x4301a6,_0x4bcc43){_0x4bcc43=_0x4bcc43||0xcc;return function(_0x194230){if(_0x194230){return _0x4301a6['sendStatus'](_0x4bcc43);}return _0x4301a6[_0x44b8('0x14')](_0x4bcc43)[_0x44b8('0x15')]();};}function respondWithResult(_0x4df670,_0x63e8f6){_0x63e8f6=_0x63e8f6||0xc8;return function(_0x4be54c){if(_0x4be54c){return _0x4df670['status'](_0x63e8f6)[_0x44b8('0x16')](_0x4be54c);}};}function respondWithFilteredResult(_0x2af0ad,_0x1722da){return function(_0x41ab46){if(_0x41ab46){var _0x5e52f2=typeof _0x1722da['offset']==='undefined'&&typeof _0x1722da[_0x44b8('0x17')]==='undefined';var _0x28ef36=_0x41ab46[_0x44b8('0x18')];var _0x55e258=_0x5e52f2?0x0:_0x1722da[_0x44b8('0x19')];var _0xe3de8f=_0x5e52f2?_0x41ab46['count']:_0x1722da[_0x44b8('0x19')]+_0x1722da[_0x44b8('0x17')];var _0x4b600f;if(_0xe3de8f>=_0x28ef36){_0xe3de8f=_0x28ef36;_0x4b600f=0xc8;}else{_0x4b600f=0xce;}_0x2af0ad[_0x44b8('0x14')](_0x4b600f);return _0x2af0ad[_0x44b8('0x1a')](_0x44b8('0x1b'),_0x55e258+'-'+_0xe3de8f+'/'+_0x28ef36)[_0x44b8('0x16')](_0x41ab46);}return null;};}function patchUpdates(_0x102ef9){return function(_0x369c09){try{jsonpatch[_0x44b8('0x1c')](_0x369c09,_0x102ef9,!![]);}catch(_0x9b0536){return BPromise[_0x44b8('0x1d')](_0x9b0536);}return _0x369c09[_0x44b8('0x1e')]();};}function saveUpdates(_0x1d642b,_0x14996c){return function(_0x48327e){if(_0x48327e){return _0x48327e[_0x44b8('0x1f')](_0x1d642b)[_0x44b8('0x20')](function(_0x416b34){return _0x416b34;});}return null;};}function removeEntity(_0x1418db,_0x305a5c){return function(_0x51a34a){if(_0x51a34a){return _0x51a34a[_0x44b8('0x21')]()['then'](function(){var _0x41a922=_0x51a34a[_0x44b8('0x22')]({'plain':!![]});var _0x25a0c1=_0x44b8('0x23');return db[_0x44b8('0x24')]['destroy']({'where':{'type':_0x25a0c1,'resourceId':_0x41a922['id']}})[_0x44b8('0x20')](function(){return _0x51a34a;});})['then'](function(){_0x1418db[_0x44b8('0x14')](0xcc)[_0x44b8('0x15')]();});}};}function handleEntityNotFound(_0x549a26,_0x17ac44){return function(_0x470f49){if(!_0x470f49){_0x549a26[_0x44b8('0x25')](0x194);}return _0x470f49;};}function handleError(_0x59c1bf,_0xb22107){_0xb22107=_0xb22107||0x1f4;return function(_0x242342){logger['error'](_0x242342[_0x44b8('0x26')]);if(_0x242342['name']){delete _0x242342[_0x44b8('0x27')];}_0x59c1bf['status'](_0xb22107)['send'](_0x242342);};}exports['index']=function(_0x387293,_0x29b18d){var _0x44ce5a={},_0x1bd1be={},_0x38cd17={'count':0x0,'rows':[]};var _0xc3f667=_[_0x44b8('0x28')](db[_0x44b8('0x29')][_0x44b8('0x2a')],function(_0x28f918){return{'name':_0x28f918[_0x44b8('0x2b')],'type':_0x28f918[_0x44b8('0x2c')][_0x44b8('0x2d')]};});_0x1bd1be['model']=_[_0x44b8('0x28')](_0xc3f667,'name');_0x1bd1be[_0x44b8('0x2e')]=_[_0x44b8('0x2f')](_0x387293[_0x44b8('0x2e')]);_0x1bd1be[_0x44b8('0x30')]=_[_0x44b8('0x31')](_0x1bd1be['model'],_0x1bd1be[_0x44b8('0x2e')]);_0x44ce5a[_0x44b8('0x32')]=_[_0x44b8('0x31')](_0x1bd1be[_0x44b8('0x33')],qs[_0x44b8('0x34')](_0x387293['query'][_0x44b8('0x34')]));_0x44ce5a[_0x44b8('0x32')]=_0x44ce5a[_0x44b8('0x32')][_0x44b8('0x35')]?_0x44ce5a[_0x44b8('0x32')]:_0x1bd1be[_0x44b8('0x33')];if(!_0x387293[_0x44b8('0x2e')][_0x44b8('0x36')](_0x44b8('0x37'))){_0x44ce5a[_0x44b8('0x17')]=qs[_0x44b8('0x17')](_0x387293[_0x44b8('0x2e')][_0x44b8('0x17')]);_0x44ce5a[_0x44b8('0x19')]=qs[_0x44b8('0x19')](_0x387293[_0x44b8('0x2e')][_0x44b8('0x19')]);}_0x44ce5a[_0x44b8('0x38')]=qs[_0x44b8('0x39')](_0x387293[_0x44b8('0x2e')][_0x44b8('0x39')]);_0x44ce5a[_0x44b8('0x3a')]=qs['filters'](_[_0x44b8('0x3b')](_0x387293[_0x44b8('0x2e')],_0x1bd1be['filters']),_0xc3f667);if(_0x387293[_0x44b8('0x2e')][_0x44b8('0x3c')]){_0x44ce5a[_0x44b8('0x3a')]=_[_0x44b8('0x3d')](_0x44ce5a['where'],{'$or':_[_0x44b8('0x28')](_0xc3f667,function(_0x11e4e3){if(_0x11e4e3[_0x44b8('0x2c')]!==_0x44b8('0x3e')){var _0x9cb2a={};_0x9cb2a[_0x11e4e3[_0x44b8('0x27')]]={'$like':'%'+_0x387293[_0x44b8('0x2e')][_0x44b8('0x3c')]+'%'};return _0x9cb2a;}})});}_0x44ce5a=_[_0x44b8('0x3d')]({},_0x44ce5a,_0x387293[_0x44b8('0x3f')]);var _0x1c9983={'where':_0x44ce5a[_0x44b8('0x3a')]};return db[_0x44b8('0x29')][_0x44b8('0x18')](_0x1c9983)[_0x44b8('0x20')](function(_0x29b43f){_0x38cd17['count']=_0x29b43f;if(_0x387293[_0x44b8('0x2e')][_0x44b8('0x40')]){_0x44ce5a[_0x44b8('0x41')]=[{'all':!![]}];}return db['AnalyticMetric'][_0x44b8('0x42')](_0x44ce5a);})[_0x44b8('0x20')](function(_0x229cc9){_0x38cd17['rows']=_0x229cc9;return _0x38cd17;})[_0x44b8('0x20')](respondWithFilteredResult(_0x29b18d,_0x44ce5a))[_0x44b8('0x43')](handleError(_0x29b18d,null));};exports[_0x44b8('0x44')]=function(_0x334f86,_0xfd590a){var _0x499a3e={'raw':!![],'where':{'id':_0x334f86[_0x44b8('0x45')]['id']}},_0x5ae5f9={};_0x5ae5f9[_0x44b8('0x33')]=_[_0x44b8('0x2f')](db[_0x44b8('0x29')][_0x44b8('0x2a')]);_0x5ae5f9[_0x44b8('0x2e')]=_[_0x44b8('0x2f')](_0x334f86[_0x44b8('0x2e')]);_0x5ae5f9[_0x44b8('0x30')]=_[_0x44b8('0x31')](_0x5ae5f9[_0x44b8('0x33')],_0x5ae5f9[_0x44b8('0x2e')]);_0x499a3e[_0x44b8('0x32')]=_[_0x44b8('0x31')](_0x5ae5f9[_0x44b8('0x33')],qs[_0x44b8('0x34')](_0x334f86[_0x44b8('0x2e')][_0x44b8('0x34')]));_0x499a3e[_0x44b8('0x32')]=_0x499a3e['attributes']['length']?_0x499a3e[_0x44b8('0x32')]:_0x5ae5f9[_0x44b8('0x33')];if(_0x334f86[_0x44b8('0x2e')][_0x44b8('0x40')]){_0x499a3e[_0x44b8('0x41')]=[{'all':!![]}];}_0x499a3e=_[_0x44b8('0x3d')]({},_0x499a3e,_0x334f86[_0x44b8('0x3f')]);return db['AnalyticMetric'][_0x44b8('0x46')](_0x499a3e)['then'](handleEntityNotFound(_0xfd590a,null))[_0x44b8('0x20')](respondWithResult(_0xfd590a,null))[_0x44b8('0x43')](handleError(_0xfd590a,null));};exports[_0x44b8('0x47')]=function(_0x9207bf,_0x103d57){return db[_0x44b8('0x29')]['create'](_0x9207bf[_0x44b8('0x48')],{})[_0x44b8('0x20')](function(_0x10602c){var _0x25d266=_0x9207bf['user'][_0x44b8('0x22')]({'plain':!![]});if(!_0x25d266)throw new Error(_0x44b8('0x49'));if(_0x25d266[_0x44b8('0x4a')]===_0x44b8('0x4b')){var _0x44ec23=_0x10602c[_0x44b8('0x22')]({'plain':!![]});var _0x500bad=_0x44b8('0x23');return db[_0x44b8('0x4c')][_0x44b8('0x46')]({'where':{'name':_0x500bad,'userProfileId':_0x25d266[_0x44b8('0x4d')]},'raw':!![]})[_0x44b8('0x20')](function(_0x57d0e2){if(_0x57d0e2&&_0x57d0e2['autoAssociation']===0x0){return db[_0x44b8('0x24')]['create']({'name':_0x44ec23[_0x44b8('0x27')],'resourceId':_0x44ec23['id'],'type':_0x57d0e2['name'],'sectionId':_0x57d0e2['id']},{})[_0x44b8('0x20')](function(){return _0x10602c;});}else{return _0x10602c;}})[_0x44b8('0x43')](function(_0x1a29f6){logger[_0x44b8('0x4e')](_0x44b8('0x4f'),_0x1a29f6);throw _0x1a29f6;});}return _0x10602c;})[_0x44b8('0x20')](respondWithResult(_0x103d57,0xc9))[_0x44b8('0x43')](handleError(_0x103d57,null));};exports['update']=function(_0x3ad278,_0x37b2c2){if(_0x3ad278[_0x44b8('0x48')]['id']){delete _0x3ad278['body']['id'];}return db[_0x44b8('0x29')][_0x44b8('0x46')]({'where':{'id':_0x3ad278[_0x44b8('0x45')]['id']}})[_0x44b8('0x20')](handleEntityNotFound(_0x37b2c2,null))['then'](saveUpdates(_0x3ad278[_0x44b8('0x48')],null))[_0x44b8('0x20')](respondWithResult(_0x37b2c2,null))['catch'](handleError(_0x37b2c2,null));};exports[_0x44b8('0x21')]=function(_0x19f22b,_0x35136e){return db[_0x44b8('0x29')][_0x44b8('0x46')]({'where':{'id':_0x19f22b['params']['id']}})['then'](handleEntityNotFound(_0x35136e,null))[_0x44b8('0x20')](removeEntity(_0x35136e,null))[_0x44b8('0x43')](handleError(_0x35136e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae30=['../../config/environment','./analyticMetric.attributes','exports','define','AnalyticMetric','analytics_metrics','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x5533b1,_0x7f4a9a){var _0x1009f3=function(_0x41d1ad){while(--_0x41d1ad){_0x5533b1['push'](_0x5533b1['shift']());}};_0x1009f3(++_0x7f4a9a);}(_0xae30,0x10a));var _0x0ae3=function(_0xb1473e,_0x3ed6d7){_0xb1473e=_0xb1473e-0x0;var _0x9760f4=_0xae30[_0xb1473e];return _0x9760f4;};'use strict';var _=require(_0x0ae3('0x0'));var util=require(_0x0ae3('0x1'));var logger=require(_0x0ae3('0x2'))('api');var moment=require(_0x0ae3('0x3'));var BPromise=require(_0x0ae3('0x4'));var rp=require(_0x0ae3('0x5'));var fs=require('fs');var path=require(_0x0ae3('0x6'));var rimraf=require('rimraf');var config=require(_0x0ae3('0x7'));var attributes=require(_0x0ae3('0x8'));module[_0x0ae3('0x9')]=function(_0x7ce33e,_0x2b8c53){return _0x7ce33e[_0x0ae3('0xa')](_0x0ae3('0xb'),attributes,{'tableName':_0x0ae3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb5bb=['analytics_metrics','lodash','util','../../config/logger','moment','bluebird','AnalyticMetric'];(function(_0x2cef86,_0xbae0a6){var _0x46dfd6=function(_0x52e464){while(--_0x52e464){_0x2cef86['push'](_0x2cef86['shift']());}};_0x46dfd6(++_0xbae0a6);}(_0xb5bb,0x1ba));var _0xbb5b=function(_0x3712d4,_0x5a1cf7){_0x3712d4=_0x3712d4-0x0;var _0x37573d=_0xb5bb[_0x3712d4];return _0x37573d;};'use strict';var _=require(_0xbb5b('0x0'));var util=require(_0xbb5b('0x1'));var logger=require(_0xbb5b('0x2'))('api');var moment=require(_0xbb5b('0x3'));var BPromise=require(_0xbb5b('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./analyticMetric.attributes');module['exports']=function(_0x1c9622,_0x161047){return _0x1c9622['define'](_0xbb5b('0x5'),attributes,{'tableName':_0xbb5b('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7c9=['catch','moment','bluebird','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','info','AnalyticMetric,\x20%s,\x20%s','request\x20sent','debug','AnalyticMetric,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x146fe5,_0x45b677){var _0x4478a0=function(_0x12d9fd){while(--_0x12d9fd){_0x146fe5['push'](_0x146fe5['shift']());}};_0x4478a0(++_0x45b677);}(_0xb7c9,0xe8));var _0x9b7c=function(_0x5d80de,_0x2cf15d){_0x5d80de=_0x5d80de-0x0;var _0x1c7556=_0xb7c9[_0x5d80de];return _0x1c7556;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9b7c('0x0'));var BPromise=require(_0x9b7c('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9b7c('0x2'))['db'];var utils=require(_0x9b7c('0x3'));var logger=require('../../config/logger')(_0x9b7c('0x4'));var config=require('../../config/environment');var jayson=require(_0x9b7c('0x5'));var client=jayson[_0x9b7c('0x6')][_0x9b7c('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3f989c,_0x42bdc3,_0x2bc95d){return new BPromise(function(_0x75937b,_0x222144){return client[_0x9b7c('0x8')](_0x3f989c,_0x2bc95d)[_0x9b7c('0x9')](function(_0x22763e){logger[_0x9b7c('0xa')](_0x9b7c('0xb'),_0x42bdc3,_0x9b7c('0xc'));logger[_0x9b7c('0xd')](_0x9b7c('0xe'),_0x42bdc3,_0x9b7c('0xc'),JSON[_0x9b7c('0xf')](_0x22763e));if(_0x22763e['error']){if(_0x22763e[_0x9b7c('0x10')][_0x9b7c('0x11')]===0x1f4){logger[_0x9b7c('0x10')](_0x9b7c('0xb'),_0x42bdc3,_0x22763e[_0x9b7c('0x10')][_0x9b7c('0x12')]);return _0x222144(_0x22763e[_0x9b7c('0x10')][_0x9b7c('0x12')]);}logger[_0x9b7c('0x10')](_0x9b7c('0xb'),_0x42bdc3,_0x22763e[_0x9b7c('0x10')][_0x9b7c('0x12')]);return _0x75937b(_0x22763e[_0x9b7c('0x10')][_0x9b7c('0x12')]);}else{logger[_0x9b7c('0xa')](_0x9b7c('0xb'),_0x42bdc3,_0x9b7c('0xc'));_0x75937b(_0x22763e[_0x9b7c('0x13')][_0x9b7c('0x12')]);}})[_0x9b7c('0x14')](function(_0x3b3a8e){logger[_0x9b7c('0x10')](_0x9b7c('0xb'),_0x42bdc3,_0x3b3a8e);_0x222144(_0x3b3a8e);});});}
\ No newline at end of file
+var _0xcb8c=['jayson/promise','client','http','request','then','info','AnalyticMetric,\x20%s,\x20%s','request\x20sent','AnalyticMetric,\x20%s,\x20%s,\x20%s','error','code','message','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment'];(function(_0x4b4a8e,_0x492739){var _0x274229=function(_0x4ba356){while(--_0x4ba356){_0x4b4a8e['push'](_0x4b4a8e['shift']());}};_0x274229(++_0x492739);}(_0xcb8c,0xad));var _0xccb8=function(_0x181e62,_0x337a32){_0x181e62=_0x181e62-0x0;var _0x353ec5=_0xcb8c[_0x181e62];return _0x353ec5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xccb8('0x0'));var BPromise=require(_0xccb8('0x1'));var rs=require(_0xccb8('0x2'));var fs=require('fs');var Redis=require(_0xccb8('0x3'));var db=require(_0xccb8('0x4'))['db'];var utils=require(_0xccb8('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xccb8('0x6'));var jayson=require(_0xccb8('0x7'));var client=jayson[_0xccb8('0x8')][_0xccb8('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x509f36,_0x24ae73,_0x5eb7c5){return new BPromise(function(_0x1768ac,_0x144053){return client[_0xccb8('0xa')](_0x509f36,_0x5eb7c5)[_0xccb8('0xb')](function(_0x4b0d51){logger[_0xccb8('0xc')](_0xccb8('0xd'),_0x24ae73,_0xccb8('0xe'));logger['debug'](_0xccb8('0xf'),_0x24ae73,_0xccb8('0xe'),JSON['stringify'](_0x4b0d51));if(_0x4b0d51[_0xccb8('0x10')]){if(_0x4b0d51[_0xccb8('0x10')][_0xccb8('0x11')]===0x1f4){logger[_0xccb8('0x10')](_0xccb8('0xd'),_0x24ae73,_0x4b0d51[_0xccb8('0x10')][_0xccb8('0x12')]);return _0x144053(_0x4b0d51[_0xccb8('0x10')]['message']);}logger[_0xccb8('0x10')](_0xccb8('0xd'),_0x24ae73,_0x4b0d51[_0xccb8('0x10')]['message']);return _0x1768ac(_0x4b0d51[_0xccb8('0x10')][_0xccb8('0x12')]);}else{logger[_0xccb8('0xc')](_0xccb8('0xd'),_0x24ae73,_0xccb8('0xe'));_0x1768ac(_0x4b0d51['result']['message']);}})[_0xccb8('0x13')](function(_0x1bba82){logger['error'](_0xccb8('0xd'),_0x24ae73,_0x1bba82);_0x144053(_0x1bba82);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00b3=['/:id','show','post','create','put','delete','exports','multer','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x00b3,0x97));var _0x300b=function(_0x156947,_0x56691d){_0x156947=_0x156947-0x0;var _0x58475a=_0x00b3[_0x156947];return _0x58475a;};'use strict';var multer=require(_0x300b('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x300b('0x1'));var express=require(_0x300b('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x300b('0x3'));var interaction=require(_0x300b('0x4'));var config=require(_0x300b('0x5'));var controller=require('./analyticMetric.controller');router[_0x300b('0x6')]('/',auth[_0x300b('0x7')](),controller[_0x300b('0x8')]);router[_0x300b('0x6')](_0x300b('0x9'),auth[_0x300b('0x7')](),controller[_0x300b('0xa')]);router[_0x300b('0xb')]('/',auth[_0x300b('0x7')](),controller[_0x300b('0xc')]);router[_0x300b('0xd')](_0x300b('0x9'),auth[_0x300b('0x7')](),controller['update']);router[_0x300b('0xe')](_0x300b('0x9'),auth[_0x300b('0x7')](),controller['destroy']);module[_0x300b('0xf')]=router;
\ No newline at end of file
+var _0xa1aa=['delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./analyticMetric.controller','get','index','/:id','isAuthenticated','show','post','create','put'];(function(_0x56d72b,_0x27933b){var _0x50e9ce=function(_0x3d6c5f){while(--_0x3d6c5f){_0x56d72b['push'](_0x56d72b['shift']());}};_0x50e9ce(++_0x27933b);}(_0xa1aa,0x88));var _0xaa1a=function(_0x19d0ae,_0x49d669){_0x19d0ae=_0x19d0ae-0x0;var _0x31137c=_0xa1aa[_0x19d0ae];return _0x31137c;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xaa1a('0x0'));var timeout=require(_0xaa1a('0x1'));var express=require(_0xaa1a('0x2'));var router=express[_0xaa1a('0x3')]();var fs_extra=require(_0xaa1a('0x4'));var auth=require(_0xaa1a('0x5'));var interaction=require(_0xaa1a('0x6'));var config=require('../../config/environment');var controller=require(_0xaa1a('0x7'));router[_0xaa1a('0x8')]('/',auth['isAuthenticated'](),controller[_0xaa1a('0x9')]);router[_0xaa1a('0x8')](_0xaa1a('0xa'),auth[_0xaa1a('0xb')](),controller[_0xaa1a('0xc')]);router[_0xaa1a('0xd')]('/',auth[_0xaa1a('0xb')](),controller[_0xaa1a('0xe')]);router[_0xaa1a('0xf')]('/:id',auth[_0xaa1a('0xb')](),controller['update']);router[_0xaa1a('0x10')](_0xaa1a('0xa'),auth[_0xaa1a('0xb')](),controller[_0xaa1a('0x11')]);module[_0xaa1a('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8fa=['exports','TEXT','sequelize'];(function(_0x243b59,_0x3f9495){var _0x3e1676=function(_0x354052){while(--_0x354052){_0x243b59['push'](_0x243b59['shift']());}};_0x3e1676(++_0x3f9495);}(_0xe8fa,0x1ac));var _0xae8f=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0xe8fa[_0x46e363];return _0x3fb059;};'use strict';var Sequelize=require(_0xae8f('0x0'));module[_0xae8f('0x1')]={'tree':{'type':Sequelize[_0xae8f('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xc390=['TEXT','sequelize'];(function(_0x29fc58,_0x1f2466){var _0x3f39b6=function(_0x1e9186){while(--_0x1e9186){_0x29fc58['push'](_0x29fc58['shift']());}};_0x3f39b6(++_0x1f2466);}(_0xc390,0x15f));var _0x0c39=function(_0x34c573,_0x574120){_0x34c573=_0x34c573-0x0;var _0x3a6825=_0xc390[_0x34c573];return _0x3a6825;};'use strict';var Sequelize=require(_0x0c39('0x0'));module['exports']={'tree':{'type':Sequelize[_0x0c39('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc07=['crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','limit','set','apply','save','update','then','error','stack','name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','model','query','keys','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','count','includeAll','include','findAll','rows','catch','show','params','find','create','body','destroy','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xcc07,0x122));var _0x7cc0=function(_0x37b7b6,_0x165a5c){_0x37b7b6=_0x37b7b6-0x0;var _0x10c4c3=_0xcc07[_0x37b7b6];return _0x10c4c3;};'use strict';var emlformat=require(_0x7cc0('0x0'));var rimraf=require(_0x7cc0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7cc0('0x2'));var rp=require(_0x7cc0('0x3'));var moment=require(_0x7cc0('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x7cc0('0x5'));var util=require(_0x7cc0('0x6'));var path=require(_0x7cc0('0x7'));var sox=require(_0x7cc0('0x8'));var csv=require(_0x7cc0('0x9'));var ejs=require(_0x7cc0('0xa'));var fs=require('fs');var fs_extra=require(_0x7cc0('0xb'));var _=require(_0x7cc0('0xc'));var squel=require(_0x7cc0('0xd'));var crypto=require(_0x7cc0('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x7cc0('0xf'));var toCsv=require('to-csv');var querystring=require(_0x7cc0('0x10'));var Papa=require(_0x7cc0('0x11'));var Redis=require(_0x7cc0('0x12'));var authService=require(_0x7cc0('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7cc0('0x14'));var hardwareService=require(_0x7cc0('0x15'));var logger=require(_0x7cc0('0x16'))('api');var utils=require('../../config/utils');var config=require(_0x7cc0('0x17'));var licenseUtil=require(_0x7cc0('0x18'));var db=require(_0x7cc0('0x19'))['db'];function respondWithStatusCode(_0x5b9884,_0x2865b4){_0x2865b4=_0x2865b4||0xcc;return function(_0x4bcaa2){if(_0x4bcaa2){return _0x5b9884[_0x7cc0('0x1a')](_0x2865b4);}return _0x5b9884[_0x7cc0('0x1b')](_0x2865b4)[_0x7cc0('0x1c')]();};}function respondWithResult(_0x2db35b,_0x50670a){_0x50670a=_0x50670a||0xc8;return function(_0x45b9ce){if(_0x45b9ce){return _0x2db35b[_0x7cc0('0x1b')](_0x50670a)[_0x7cc0('0x1d')](_0x45b9ce);}};}function respondWithFilteredResult(_0x4c6b92,_0x5e5888){return function(_0x1abb0f){if(_0x1abb0f){var _0x37a0d2=typeof _0x5e5888['offset']==='undefined'&&typeof _0x5e5888['limit']===_0x7cc0('0x1e');var _0xb1c81c=_0x1abb0f['count'];var _0x4cb8e7=_0x37a0d2?0x0:_0x5e5888[_0x7cc0('0x1f')];var _0x1de9ed=_0x37a0d2?_0x1abb0f['count']:_0x5e5888['offset']+_0x5e5888[_0x7cc0('0x20')];var _0x1d8506;if(_0x1de9ed>=_0xb1c81c){_0x1de9ed=_0xb1c81c;_0x1d8506=0xc8;}else{_0x1d8506=0xce;}_0x4c6b92[_0x7cc0('0x1b')](_0x1d8506);return _0x4c6b92[_0x7cc0('0x21')]('Content-Range',_0x4cb8e7+'-'+_0x1de9ed+'/'+_0xb1c81c)['json'](_0x1abb0f);}return null;};}function patchUpdates(_0x26a5d1){return function(_0x154378){try{jsonpatch[_0x7cc0('0x22')](_0x154378,_0x26a5d1,!![]);}catch(_0x126b82){return BPromise['reject'](_0x126b82);}return _0x154378[_0x7cc0('0x23')]();};}function saveUpdates(_0x19fda2,_0x512e97){return function(_0x53858e){if(_0x53858e){return _0x53858e[_0x7cc0('0x24')](_0x19fda2)[_0x7cc0('0x25')](function(_0x26db11){return _0x26db11;});}return null;};}function removeEntity(_0x2a11d2,_0x23ae2b){return function(_0x536ba5){if(_0x536ba5){return _0x536ba5['destroy']()[_0x7cc0('0x25')](function(){_0x2a11d2[_0x7cc0('0x1b')](0xcc)[_0x7cc0('0x1c')]();});}};}function handleEntityNotFound(_0x1a3895,_0x48c6b8){return function(_0x3daa0d){if(!_0x3daa0d){_0x1a3895[_0x7cc0('0x1a')](0x194);}return _0x3daa0d;};}function handleError(_0x8ef336,_0xf1bd5e){_0xf1bd5e=_0xf1bd5e||0x1f4;return function(_0x1f83f8){logger[_0x7cc0('0x26')](_0x1f83f8[_0x7cc0('0x27')]);if(_0x1f83f8[_0x7cc0('0x28')]){delete _0x1f83f8[_0x7cc0('0x28')];}_0x8ef336['status'](_0xf1bd5e)[_0x7cc0('0x29')](_0x1f83f8);};}exports[_0x7cc0('0x2a')]=function(_0x3fd487,_0x22989a){var _0x38dce7={},_0x3d6daa={},_0x4d638d={'count':0x0,'rows':[]};var _0x36484c=_[_0x7cc0('0x2b')](db[_0x7cc0('0x2c')][_0x7cc0('0x2d')],function(_0x342b35){return{'name':_0x342b35[_0x7cc0('0x2e')],'type':_0x342b35['type']['key']};});_0x3d6daa[_0x7cc0('0x2f')]=_[_0x7cc0('0x2b')](_0x36484c,_0x7cc0('0x28'));_0x3d6daa[_0x7cc0('0x30')]=_[_0x7cc0('0x31')](_0x3fd487['query']);_0x3d6daa['filters']=_['intersection'](_0x3d6daa[_0x7cc0('0x2f')],_0x3d6daa['query']);_0x38dce7[_0x7cc0('0x32')]=_[_0x7cc0('0x33')](_0x3d6daa[_0x7cc0('0x2f')],qs['fields'](_0x3fd487[_0x7cc0('0x30')][_0x7cc0('0x34')]));_0x38dce7[_0x7cc0('0x32')]=_0x38dce7[_0x7cc0('0x32')][_0x7cc0('0x35')]?_0x38dce7[_0x7cc0('0x32')]:_0x3d6daa[_0x7cc0('0x2f')];if(!_0x3fd487[_0x7cc0('0x30')]['hasOwnProperty'](_0x7cc0('0x36'))){_0x38dce7['limit']=qs[_0x7cc0('0x20')](_0x3fd487[_0x7cc0('0x30')][_0x7cc0('0x20')]);_0x38dce7['offset']=qs['offset'](_0x3fd487[_0x7cc0('0x30')]['offset']);}_0x38dce7[_0x7cc0('0x37')]=qs[_0x7cc0('0x38')](_0x3fd487[_0x7cc0('0x30')][_0x7cc0('0x38')]);_0x38dce7[_0x7cc0('0x39')]=qs[_0x7cc0('0x3a')](_[_0x7cc0('0x3b')](_0x3fd487[_0x7cc0('0x30')],_0x3d6daa['filters']),_0x36484c);if(_0x3fd487[_0x7cc0('0x30')]['filter']){_0x38dce7[_0x7cc0('0x39')]=_[_0x7cc0('0x3c')](_0x38dce7[_0x7cc0('0x39')],{'$or':_[_0x7cc0('0x2b')](_0x36484c,function(_0x2cb6f7){if(_0x2cb6f7['type']!==_0x7cc0('0x3d')){var _0x5180bd={};_0x5180bd[_0x2cb6f7[_0x7cc0('0x28')]]={'$like':'%'+_0x3fd487[_0x7cc0('0x30')][_0x7cc0('0x3e')]+'%'};return _0x5180bd;}})});}_0x38dce7=_['merge']({},_0x38dce7,_0x3fd487[_0x7cc0('0x3f')]);var _0x415458={'where':_0x38dce7[_0x7cc0('0x39')]};return db[_0x7cc0('0x2c')]['count'](_0x415458)[_0x7cc0('0x25')](function(_0x25b022){_0x4d638d[_0x7cc0('0x40')]=_0x25b022;if(_0x3fd487[_0x7cc0('0x30')][_0x7cc0('0x41')]){_0x38dce7[_0x7cc0('0x42')]=[{'all':!![]}];}return db['AnalyticTreeReport'][_0x7cc0('0x43')](_0x38dce7);})[_0x7cc0('0x25')](function(_0x2a0b8f){_0x4d638d[_0x7cc0('0x44')]=_0x2a0b8f;return _0x4d638d;})[_0x7cc0('0x25')](respondWithFilteredResult(_0x22989a,_0x38dce7))[_0x7cc0('0x45')](handleError(_0x22989a,null));};exports[_0x7cc0('0x46')]=function(_0x5a49fa,_0x42bfd9){var _0x1f868e={'raw':!![],'where':{'id':_0x5a49fa[_0x7cc0('0x47')]['id']}},_0x34aa2b={};_0x34aa2b[_0x7cc0('0x2f')]=_['keys'](db[_0x7cc0('0x2c')]['rawAttributes']);_0x34aa2b[_0x7cc0('0x30')]=_[_0x7cc0('0x31')](_0x5a49fa[_0x7cc0('0x30')]);_0x34aa2b['filters']=_[_0x7cc0('0x33')](_0x34aa2b[_0x7cc0('0x2f')],_0x34aa2b[_0x7cc0('0x30')]);_0x1f868e[_0x7cc0('0x32')]=_[_0x7cc0('0x33')](_0x34aa2b[_0x7cc0('0x2f')],qs[_0x7cc0('0x34')](_0x5a49fa[_0x7cc0('0x30')]['fields']));_0x1f868e[_0x7cc0('0x32')]=_0x1f868e[_0x7cc0('0x32')][_0x7cc0('0x35')]?_0x1f868e[_0x7cc0('0x32')]:_0x34aa2b[_0x7cc0('0x2f')];if(_0x5a49fa[_0x7cc0('0x30')][_0x7cc0('0x41')]){_0x1f868e['include']=[{'all':!![]}];}_0x1f868e=_[_0x7cc0('0x3c')]({},_0x1f868e,_0x5a49fa[_0x7cc0('0x3f')]);return db[_0x7cc0('0x2c')][_0x7cc0('0x48')](_0x1f868e)[_0x7cc0('0x25')](handleEntityNotFound(_0x42bfd9,null))[_0x7cc0('0x25')](respondWithResult(_0x42bfd9,null))[_0x7cc0('0x45')](handleError(_0x42bfd9,null));};exports[_0x7cc0('0x49')]=function(_0x21c90c,_0xe77b66){return db[_0x7cc0('0x2c')][_0x7cc0('0x49')](_0x21c90c['body'],{})['then'](respondWithResult(_0xe77b66,0xc9))[_0x7cc0('0x45')](handleError(_0xe77b66,null));};exports[_0x7cc0('0x24')]=function(_0x40e202,_0x3bb726){if(_0x40e202[_0x7cc0('0x4a')]['id']){delete _0x40e202[_0x7cc0('0x4a')]['id'];}return db[_0x7cc0('0x2c')][_0x7cc0('0x48')]({'where':{'id':_0x40e202[_0x7cc0('0x47')]['id']}})[_0x7cc0('0x25')](handleEntityNotFound(_0x3bb726,null))[_0x7cc0('0x25')](saveUpdates(_0x40e202[_0x7cc0('0x4a')],null))[_0x7cc0('0x25')](respondWithResult(_0x3bb726,null))[_0x7cc0('0x45')](handleError(_0x3bb726,null));};exports[_0x7cc0('0x4b')]=function(_0x2d5b12,_0x33eb07){return db[_0x7cc0('0x2c')][_0x7cc0('0x48')]({'where':{'id':_0x2d5b12[_0x7cc0('0x47')]['id']}})['then'](handleEntityNotFound(_0x33eb07,null))['then'](removeEntity(_0x33eb07,null))[_0x7cc0('0x45')](handleError(_0x33eb07,null));};
\ No newline at end of file
+var _0x0029=['filters','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','then','includeAll','include','rows','catch','params','intersection','options','find','create','update','body','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','destroy','error','stack','name','send','map','AnalyticTreeReport','rawAttributes','fieldName','type','key','keys','query'];(function(_0x81f000,_0x15df85){var _0x337aa2=function(_0x37f6a4){while(--_0x37f6a4){_0x81f000['push'](_0x81f000['shift']());}};_0x337aa2(++_0x15df85);}(_0x0029,0x146));var _0x9002=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0x0029[_0x21549c];return _0x426cbd;};'use strict';var emlformat=require(_0x9002('0x0'));var rimraf=require(_0x9002('0x1'));var zipdir=require(_0x9002('0x2'));var jsonpatch=require(_0x9002('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x9002('0x4'));var Mustache=require(_0x9002('0x5'));var util=require(_0x9002('0x6'));var path=require(_0x9002('0x7'));var sox=require(_0x9002('0x8'));var csv=require(_0x9002('0x9'));var ejs=require(_0x9002('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9002('0xb'));var squel=require(_0x9002('0xc'));var crypto=require(_0x9002('0xd'));var jsforce=require(_0x9002('0xe'));var deskjs=require(_0x9002('0xf'));var toCsv=require(_0x9002('0x9'));var querystring=require(_0x9002('0x10'));var Papa=require('papaparse');var Redis=require(_0x9002('0x11'));var authService=require(_0x9002('0x12'));var qs=require(_0x9002('0x13'));var as=require(_0x9002('0x14'));var hardwareService=require(_0x9002('0x15'));var logger=require(_0x9002('0x16'))(_0x9002('0x17'));var utils=require(_0x9002('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x9002('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x117795,_0x3c108b){_0x3c108b=_0x3c108b||0xcc;return function(_0x5a0d92){if(_0x5a0d92){return _0x117795['sendStatus'](_0x3c108b);}return _0x117795['status'](_0x3c108b)[_0x9002('0x1a')]();};}function respondWithResult(_0x4ed918,_0x217287){_0x217287=_0x217287||0xc8;return function(_0x36e127){if(_0x36e127){return _0x4ed918[_0x9002('0x1b')](_0x217287)[_0x9002('0x1c')](_0x36e127);}};}function respondWithFilteredResult(_0x4e0329,_0x7efcb2){return function(_0x330a04){if(_0x330a04){var _0x43f40b=typeof _0x7efcb2[_0x9002('0x1d')]===_0x9002('0x1e')&&typeof _0x7efcb2[_0x9002('0x1f')]==='undefined';var _0x4b6fc8=_0x330a04[_0x9002('0x20')];var _0x3c6f09=_0x43f40b?0x0:_0x7efcb2['offset'];var _0xdf0f78=_0x43f40b?_0x330a04[_0x9002('0x20')]:_0x7efcb2[_0x9002('0x1d')]+_0x7efcb2['limit'];var _0x3acb18;if(_0xdf0f78>=_0x4b6fc8){_0xdf0f78=_0x4b6fc8;_0x3acb18=0xc8;}else{_0x3acb18=0xce;}_0x4e0329['status'](_0x3acb18);return _0x4e0329[_0x9002('0x21')](_0x9002('0x22'),_0x3c6f09+'-'+_0xdf0f78+'/'+_0x4b6fc8)[_0x9002('0x1c')](_0x330a04);}return null;};}function patchUpdates(_0x47cb07){return function(_0x233f0b){try{jsonpatch[_0x9002('0x23')](_0x233f0b,_0x47cb07,!![]);}catch(_0x40f556){return BPromise['reject'](_0x40f556);}return _0x233f0b['save']();};}function saveUpdates(_0x3c2c08,_0x4d23f7){return function(_0x5f264c){if(_0x5f264c){return _0x5f264c['update'](_0x3c2c08)['then'](function(_0x15ac89){return _0x15ac89;});}return null;};}function removeEntity(_0x20fdcd,_0x376122){return function(_0x41bc3b){if(_0x41bc3b){return _0x41bc3b[_0x9002('0x24')]()['then'](function(){_0x20fdcd[_0x9002('0x1b')](0xcc)[_0x9002('0x1a')]();});}};}function handleEntityNotFound(_0x1eaa9f,_0x4acf39){return function(_0x572265){if(!_0x572265){_0x1eaa9f['sendStatus'](0x194);}return _0x572265;};}function handleError(_0x33c040,_0x40f830){_0x40f830=_0x40f830||0x1f4;return function(_0x46e7c4){logger[_0x9002('0x25')](_0x46e7c4[_0x9002('0x26')]);if(_0x46e7c4[_0x9002('0x27')]){delete _0x46e7c4[_0x9002('0x27')];}_0x33c040[_0x9002('0x1b')](_0x40f830)[_0x9002('0x28')](_0x46e7c4);};}exports['index']=function(_0x1faab8,_0x197f91){var _0x296b29={},_0x153cc0={},_0x4afd6e={'count':0x0,'rows':[]};var _0x517ba4=_[_0x9002('0x29')](db[_0x9002('0x2a')][_0x9002('0x2b')],function(_0x43904f){return{'name':_0x43904f[_0x9002('0x2c')],'type':_0x43904f[_0x9002('0x2d')][_0x9002('0x2e')]};});_0x153cc0['model']=_[_0x9002('0x29')](_0x517ba4,'name');_0x153cc0['query']=_[_0x9002('0x2f')](_0x1faab8[_0x9002('0x30')]);_0x153cc0[_0x9002('0x31')]=_['intersection'](_0x153cc0[_0x9002('0x32')],_0x153cc0['query']);_0x296b29['attributes']=_['intersection'](_0x153cc0['model'],qs[_0x9002('0x33')](_0x1faab8[_0x9002('0x30')]['fields']));_0x296b29[_0x9002('0x34')]=_0x296b29[_0x9002('0x34')][_0x9002('0x35')]?_0x296b29[_0x9002('0x34')]:_0x153cc0[_0x9002('0x32')];if(!_0x1faab8[_0x9002('0x30')][_0x9002('0x36')](_0x9002('0x37'))){_0x296b29[_0x9002('0x1f')]=qs[_0x9002('0x1f')](_0x1faab8[_0x9002('0x30')][_0x9002('0x1f')]);_0x296b29['offset']=qs[_0x9002('0x1d')](_0x1faab8[_0x9002('0x30')][_0x9002('0x1d')]);}_0x296b29[_0x9002('0x38')]=qs[_0x9002('0x39')](_0x1faab8[_0x9002('0x30')][_0x9002('0x39')]);_0x296b29[_0x9002('0x3a')]=qs[_0x9002('0x31')](_[_0x9002('0x3b')](_0x1faab8['query'],_0x153cc0[_0x9002('0x31')]),_0x517ba4);if(_0x1faab8[_0x9002('0x30')][_0x9002('0x3c')]){_0x296b29['where']=_['merge'](_0x296b29[_0x9002('0x3a')],{'$or':_[_0x9002('0x29')](_0x517ba4,function(_0x5cc636){if(_0x5cc636['type']!==_0x9002('0x3d')){var _0x2d7c61={};_0x2d7c61[_0x5cc636[_0x9002('0x27')]]={'$like':'%'+_0x1faab8[_0x9002('0x30')]['filter']+'%'};return _0x2d7c61;}})});}_0x296b29=_[_0x9002('0x3e')]({},_0x296b29,_0x1faab8['options']);var _0x581f5f={'where':_0x296b29[_0x9002('0x3a')]};return db['AnalyticTreeReport'][_0x9002('0x20')](_0x581f5f)[_0x9002('0x3f')](function(_0x1fca64){_0x4afd6e[_0x9002('0x20')]=_0x1fca64;if(_0x1faab8[_0x9002('0x30')][_0x9002('0x40')]){_0x296b29[_0x9002('0x41')]=[{'all':!![]}];}return db['AnalyticTreeReport']['findAll'](_0x296b29);})[_0x9002('0x3f')](function(_0x2f6476){_0x4afd6e[_0x9002('0x42')]=_0x2f6476;return _0x4afd6e;})[_0x9002('0x3f')](respondWithFilteredResult(_0x197f91,_0x296b29))[_0x9002('0x43')](handleError(_0x197f91,null));};exports['show']=function(_0x3fdd04,_0x152c63){var _0x3bafe1={'raw':!![],'where':{'id':_0x3fdd04[_0x9002('0x44')]['id']}},_0x38bbac={};_0x38bbac[_0x9002('0x32')]=_[_0x9002('0x2f')](db[_0x9002('0x2a')]['rawAttributes']);_0x38bbac[_0x9002('0x30')]=_['keys'](_0x3fdd04[_0x9002('0x30')]);_0x38bbac[_0x9002('0x31')]=_['intersection'](_0x38bbac['model'],_0x38bbac['query']);_0x3bafe1[_0x9002('0x34')]=_[_0x9002('0x45')](_0x38bbac[_0x9002('0x32')],qs[_0x9002('0x33')](_0x3fdd04[_0x9002('0x30')][_0x9002('0x33')]));_0x3bafe1[_0x9002('0x34')]=_0x3bafe1[_0x9002('0x34')][_0x9002('0x35')]?_0x3bafe1[_0x9002('0x34')]:_0x38bbac[_0x9002('0x32')];if(_0x3fdd04[_0x9002('0x30')][_0x9002('0x40')]){_0x3bafe1[_0x9002('0x41')]=[{'all':!![]}];}_0x3bafe1=_[_0x9002('0x3e')]({},_0x3bafe1,_0x3fdd04[_0x9002('0x46')]);return db[_0x9002('0x2a')][_0x9002('0x47')](_0x3bafe1)[_0x9002('0x3f')](handleEntityNotFound(_0x152c63,null))[_0x9002('0x3f')](respondWithResult(_0x152c63,null))[_0x9002('0x43')](handleError(_0x152c63,null));};exports[_0x9002('0x48')]=function(_0x51016c,_0x120d7c){return db[_0x9002('0x2a')][_0x9002('0x48')](_0x51016c['body'],{})[_0x9002('0x3f')](respondWithResult(_0x120d7c,0xc9))[_0x9002('0x43')](handleError(_0x120d7c,null));};exports[_0x9002('0x49')]=function(_0x318744,_0x24fd13){if(_0x318744[_0x9002('0x4a')]['id']){delete _0x318744[_0x9002('0x4a')]['id'];}return db[_0x9002('0x2a')][_0x9002('0x47')]({'where':{'id':_0x318744[_0x9002('0x44')]['id']}})[_0x9002('0x3f')](handleEntityNotFound(_0x24fd13,null))[_0x9002('0x3f')](saveUpdates(_0x318744[_0x9002('0x4a')],null))['then'](respondWithResult(_0x24fd13,null))[_0x9002('0x43')](handleError(_0x24fd13,null));};exports[_0x9002('0x24')]=function(_0x514f0e,_0x475824){return db[_0x9002('0x2a')][_0x9002('0x47')]({'where':{'id':_0x514f0e[_0x9002('0x44')]['id']}})['then'](handleEntityNotFound(_0x475824,null))[_0x9002('0x3f')](removeEntity(_0x475824,null))[_0x9002('0x43')](handleError(_0x475824,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4486=['analytics_report_trees','lodash','util','../../config/logger','bluebird','request-promise','path','./analyticTreeReport.attributes','define','AnalyticTreeReport'];(function(_0x318410,_0x451962){var _0x2898a3=function(_0x58e572){while(--_0x58e572){_0x318410['push'](_0x318410['shift']());}};_0x2898a3(++_0x451962);}(_0x4486,0x1eb));var _0x6448=function(_0x5534fe,_0x43c22e){_0x5534fe=_0x5534fe-0x0;var _0x3d1dc2=_0x4486[_0x5534fe];return _0x3d1dc2;};'use strict';var _=require(_0x6448('0x0'));var util=require(_0x6448('0x1'));var logger=require(_0x6448('0x2'))('api');var moment=require('moment');var BPromise=require(_0x6448('0x3'));var rp=require(_0x6448('0x4'));var fs=require('fs');var path=require(_0x6448('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x6448('0x6'));module['exports']=function(_0xff3a1f,_0x497311){return _0xff3a1f[_0x6448('0x7')](_0x6448('0x8'),attributes,{'tableName':_0x6448('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1df1=['exports','lodash','util','api','request-promise','path','rimraf','./analyticTreeReport.attributes'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x1df1,0x1e9));var _0x11df=function(_0x183b90,_0x2c7378){_0x183b90=_0x183b90-0x0;var _0x5b34f5=_0x1df1[_0x183b90];return _0x5b34f5;};'use strict';var _=require(_0x11df('0x0'));var util=require(_0x11df('0x1'));var logger=require('../../config/logger')(_0x11df('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x11df('0x3'));var fs=require('fs');var path=require(_0x11df('0x4'));var rimraf=require(_0x11df('0x5'));var config=require('../../config/environment');var attributes=require(_0x11df('0x6'));module[_0x11df('0x7')]=function(_0x1e6560,_0x3e1af8){return _0x1e6560['define']('AnalyticTreeReport',attributes,{'tableName':'analytics_report_trees','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x14e324,_0x2653cf){var _0x6651b8=function(_0x3bd68d){while(--_0x3bd68d){_0x14e324['push'](_0x14e324['shift']());}};_0x6651b8(++_0x2653cf);}(_0xdb28,0x106));var _0x8db2=function(_0x4d84bf,_0x58b4ff){_0x4d84bf=_0x4d84bf-0x0;var _0x3f10ae=_0xdb28[_0x4d84bf];return _0x3f10ae;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('AnalyticTreeReport,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}
\ No newline at end of file
+var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','AnalyticTreeReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x332a92,_0x38e128){var _0x5a9727=function(_0xf2f8af){while(--_0xf2f8af){_0x332a92['push'](_0x332a92['shift']());}};_0x5a9727(++_0x38e128);}(_0xdb28,0x106));var _0x8db2=function(_0x32c7ee,_0x30efcd){_0x32c7ee=_0x32c7ee-0x0;var _0x2d89c3=_0xdb28[_0x32c7ee];return _0x2d89c3;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('AnalyticTreeReport,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bd4=['/:id','post','create','put','delete','destroy','exports','multer','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','isAuthenticated','index'];(function(_0x55f888,_0x148b57){var _0x3f6fa5=function(_0x2d3543){while(--_0x2d3543){_0x55f888['push'](_0x55f888['shift']());}};_0x3f6fa5(++_0x148b57);}(_0x7bd4,0x15b));var _0x47bd=function(_0x139de3,_0x1b14fc){_0x139de3=_0x139de3-0x0;var _0x5c3532=_0x7bd4[_0x139de3];return _0x5c3532;};'use strict';var multer=require(_0x47bd('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x47bd('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x47bd('0x2'));var auth=require(_0x47bd('0x3'));var interaction=require(_0x47bd('0x4'));var config=require(_0x47bd('0x5'));var controller=require(_0x47bd('0x6'));router[_0x47bd('0x7')]('/',auth[_0x47bd('0x8')](),controller[_0x47bd('0x9')]);router[_0x47bd('0x7')](_0x47bd('0xa'),auth[_0x47bd('0x8')](),controller['show']);router[_0x47bd('0xb')]('/',auth['isAuthenticated'](),controller[_0x47bd('0xc')]);router[_0x47bd('0xd')](_0x47bd('0xa'),auth[_0x47bd('0x8')](),controller['update']);router[_0x47bd('0xe')]('/:id',auth[_0x47bd('0x8')](),controller[_0x47bd('0xf')]);module[_0x47bd('0x10')]=router;
\ No newline at end of file
+var _0x16f2=['destroy','exports','multer','util','path','fs-extra','../../components/interaction/service','isAuthenticated','index','get','/:id','show','post','put'];(function(_0x3d1966,_0x4c6d23){var _0x2a57fc=function(_0x27de91){while(--_0x27de91){_0x3d1966['push'](_0x3d1966['shift']());}};_0x2a57fc(++_0x4c6d23);}(_0x16f2,0x152));var _0x216f=function(_0x3a7722,_0x5d6f9f){_0x3a7722=_0x3a7722-0x0;var _0x2755aa=_0x16f2[_0x3a7722];return _0x2755aa;};'use strict';var multer=require(_0x216f('0x0'));var util=require(_0x216f('0x1'));var path=require(_0x216f('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x216f('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x216f('0x4'));var config=require('../../config/environment');var controller=require('./analyticTreeReport.controller');router['get']('/',auth[_0x216f('0x5')](),controller[_0x216f('0x6')]);router[_0x216f('0x7')](_0x216f('0x8'),auth[_0x216f('0x5')](),controller[_0x216f('0x9')]);router[_0x216f('0xa')]('/',auth['isAuthenticated'](),controller['create']);router[_0x216f('0xb')]('/:id',auth[_0x216f('0x5')](),controller['update']);router['delete']('/:id',auth[_0x216f('0x5')](),controller[_0x216f('0xc')]);module[_0x216f('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6308=['sequelize','STRING'];(function(_0x7f27a0,_0x15d0e0){var _0x6f8f3b=function(_0x545489){while(--_0x545489){_0x7f27a0['push'](_0x7f27a0['shift']());}};_0x6f8f3b(++_0x15d0e0);}(_0x6308,0x1f2));var _0x8630=function(_0xd09668,_0x1435b2){_0xd09668=_0xd09668-0x0;var _0x68726=_0x6308[_0xd09668];return _0x68726;};'use strict';var Sequelize=require(_0x8630('0x0'));module['exports']={'name':{'type':Sequelize[_0x8630('0x1')]},'basename':{'type':Sequelize['STRING']},'type':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6334=['exports','STRING','sequelize'];(function(_0x4cd690,_0x4797cc){var _0x4a74a9=function(_0x4cbbc5){while(--_0x4cbbc5){_0x4cd690['push'](_0x4cd690['shift']());}};_0x4a74a9(++_0x4797cc);}(_0x6334,0x119));var _0x4633=function(_0x285a14,_0x394a27){_0x285a14=_0x285a14-0x0;var _0x3430cc=_0x6334[_0x285a14];return _0x3430cc;};'use strict';var Sequelize=require(_0x4633('0x0'));module[_0x4633('0x1')]={'name':{'type':Sequelize[_0x4633('0x2')]},'basename':{'type':Sequelize[_0x4633('0x2')]},'type':{'type':Sequelize[_0x4633('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d38=['Attachment','length','clone','get','updatedAt','body','omit','createdAt','create','find','destroy','file','basename','mimetype','findOne','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','update','then','stack','name','send','index','rawAttributes','model','query','keys','intersection','attributes','fields','nolimit','limit','sort','where','filters','pick','filter','merge','type','options','includeAll','include','findAll','rows','catch','show'];(function(_0x1aba25,_0x1faed1){var _0x47d997=function(_0x4f9e11){while(--_0x4f9e11){_0x1aba25['push'](_0x1aba25['shift']());}};_0x47d997(++_0x1faed1);}(_0x5d38,0xbc));var _0x85d3=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x5d38[_0x4b055c];return _0x4b62bb;};'use strict';var emlformat=require(_0x85d3('0x0'));var rimraf=require(_0x85d3('0x1'));var zipdir=require(_0x85d3('0x2'));var jsonpatch=require(_0x85d3('0x3'));var rp=require('request-promise');var moment=require(_0x85d3('0x4'));var BPromise=require(_0x85d3('0x5'));var Mustache=require(_0x85d3('0x6'));var util=require(_0x85d3('0x7'));var path=require(_0x85d3('0x8'));var sox=require(_0x85d3('0x9'));var csv=require(_0x85d3('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x85d3('0xb'));var _=require(_0x85d3('0xc'));var squel=require(_0x85d3('0xd'));var crypto=require('crypto');var jsforce=require(_0x85d3('0xe'));var deskjs=require(_0x85d3('0xf'));var toCsv=require('to-csv');var querystring=require(_0x85d3('0x10'));var Papa=require(_0x85d3('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x85d3('0x12'));var hardwareService=require(_0x85d3('0x13'));var logger=require(_0x85d3('0x14'))('api');var utils=require(_0x85d3('0x15'));var config=require(_0x85d3('0x16'));var licenseUtil=require(_0x85d3('0x17'));var db=require(_0x85d3('0x18'))['db'];function respondWithStatusCode(_0x2160b7,_0x157c79){_0x157c79=_0x157c79||0xcc;return function(_0x223d24){if(_0x223d24){return _0x2160b7[_0x85d3('0x19')](_0x157c79);}return _0x2160b7[_0x85d3('0x1a')](_0x157c79)[_0x85d3('0x1b')]();};}function respondWithResult(_0x3aee43,_0x4f7c12){_0x4f7c12=_0x4f7c12||0xc8;return function(_0x352a20){if(_0x352a20){return _0x3aee43[_0x85d3('0x1a')](_0x4f7c12)[_0x85d3('0x1c')](_0x352a20);}};}function respondWithFilteredResult(_0xaf4491,_0x4246e8){return function(_0x56f751){if(_0x56f751){var _0x4af15a=typeof _0x4246e8[_0x85d3('0x1d')]==='undefined'&&typeof _0x4246e8['limit']===_0x85d3('0x1e');var _0x1d579b=_0x56f751['count'];var _0x145570=_0x4af15a?0x0:_0x4246e8[_0x85d3('0x1d')];var _0x3bbcac=_0x4af15a?_0x56f751[_0x85d3('0x1f')]:_0x4246e8[_0x85d3('0x1d')]+_0x4246e8['limit'];var _0x183d8b;if(_0x3bbcac>=_0x1d579b){_0x3bbcac=_0x1d579b;_0x183d8b=0xc8;}else{_0x183d8b=0xce;}_0xaf4491[_0x85d3('0x1a')](_0x183d8b);return _0xaf4491[_0x85d3('0x20')](_0x85d3('0x21'),_0x145570+'-'+_0x3bbcac+'/'+_0x1d579b)[_0x85d3('0x1c')](_0x56f751);}return null;};}function patchUpdates(_0x3a2ae3){return function(_0x40f295){try{jsonpatch[_0x85d3('0x22')](_0x40f295,_0x3a2ae3,!![]);}catch(_0x1ec420){return BPromise['reject'](_0x1ec420);}return _0x40f295['save']();};}function saveUpdates(_0x5adc72,_0x3a3e80){return function(_0x32047b){if(_0x32047b){return _0x32047b[_0x85d3('0x23')](_0x5adc72)[_0x85d3('0x24')](function(_0x36e6f3){return _0x36e6f3;});}return null;};}function removeEntity(_0x2de564,_0x29dde5){return function(_0x54ee93){if(_0x54ee93){return _0x54ee93['destroy']()['then'](function(){_0x2de564[_0x85d3('0x1a')](0xcc)[_0x85d3('0x1b')]();});}};}function handleEntityNotFound(_0x1893ec,_0xfd3c0b){return function(_0x24b880){if(!_0x24b880){_0x1893ec[_0x85d3('0x19')](0x194);}return _0x24b880;};}function handleError(_0x59eaee,_0x3a6175){_0x3a6175=_0x3a6175||0x1f4;return function(_0x2f27b3){logger['error'](_0x2f27b3[_0x85d3('0x25')]);if(_0x2f27b3[_0x85d3('0x26')]){delete _0x2f27b3[_0x85d3('0x26')];}_0x59eaee[_0x85d3('0x1a')](_0x3a6175)[_0x85d3('0x27')](_0x2f27b3);};}exports[_0x85d3('0x28')]=function(_0xd4c6c4,_0xbc899e){var _0x21b264={},_0x50565e={},_0x5f2a31={'count':0x0,'rows':[]};var _0x2a6140=_['map'](db['Attachment'][_0x85d3('0x29')],function(_0x1b797b){return{'name':_0x1b797b['fieldName'],'type':_0x1b797b['type']['key']};});_0x50565e[_0x85d3('0x2a')]=_['map'](_0x2a6140,_0x85d3('0x26'));_0x50565e[_0x85d3('0x2b')]=_[_0x85d3('0x2c')](_0xd4c6c4[_0x85d3('0x2b')]);_0x50565e['filters']=_[_0x85d3('0x2d')](_0x50565e[_0x85d3('0x2a')],_0x50565e[_0x85d3('0x2b')]);_0x21b264[_0x85d3('0x2e')]=_[_0x85d3('0x2d')](_0x50565e[_0x85d3('0x2a')],qs['fields'](_0xd4c6c4[_0x85d3('0x2b')][_0x85d3('0x2f')]));_0x21b264[_0x85d3('0x2e')]=_0x21b264[_0x85d3('0x2e')]['length']?_0x21b264[_0x85d3('0x2e')]:_0x50565e[_0x85d3('0x2a')];if(!_0xd4c6c4['query']['hasOwnProperty'](_0x85d3('0x30'))){_0x21b264['limit']=qs[_0x85d3('0x31')](_0xd4c6c4[_0x85d3('0x2b')][_0x85d3('0x31')]);_0x21b264[_0x85d3('0x1d')]=qs[_0x85d3('0x1d')](_0xd4c6c4['query']['offset']);}_0x21b264['order']=qs[_0x85d3('0x32')](_0xd4c6c4[_0x85d3('0x2b')][_0x85d3('0x32')]);_0x21b264[_0x85d3('0x33')]=qs[_0x85d3('0x34')](_[_0x85d3('0x35')](_0xd4c6c4[_0x85d3('0x2b')],_0x50565e['filters']),_0x2a6140);if(_0xd4c6c4[_0x85d3('0x2b')][_0x85d3('0x36')]){_0x21b264['where']=_[_0x85d3('0x37')](_0x21b264[_0x85d3('0x33')],{'$or':_['map'](_0x2a6140,function(_0x70ea98){if(_0x70ea98[_0x85d3('0x38')]!=='VIRTUAL'){var _0x26dc9d={};_0x26dc9d[_0x70ea98['name']]={'$like':'%'+_0xd4c6c4['query'][_0x85d3('0x36')]+'%'};return _0x26dc9d;}})});}_0x21b264=_[_0x85d3('0x37')]({},_0x21b264,_0xd4c6c4[_0x85d3('0x39')]);var _0x584d2a={'where':_0x21b264[_0x85d3('0x33')]};return db['Attachment'][_0x85d3('0x1f')](_0x584d2a)['then'](function(_0x50397a){_0x5f2a31[_0x85d3('0x1f')]=_0x50397a;if(_0xd4c6c4[_0x85d3('0x2b')][_0x85d3('0x3a')]){_0x21b264[_0x85d3('0x3b')]=[{'all':!![]}];}return db['Attachment'][_0x85d3('0x3c')](_0x21b264);})[_0x85d3('0x24')](function(_0x1111ed){_0x5f2a31[_0x85d3('0x3d')]=_0x1111ed;return _0x5f2a31;})[_0x85d3('0x24')](respondWithFilteredResult(_0xbc899e,_0x21b264))[_0x85d3('0x3e')](handleError(_0xbc899e,null));};exports[_0x85d3('0x3f')]=function(_0x321492,_0x3ad5da){var _0x42677e={'raw':!![],'where':{'id':_0x321492['params']['id']}},_0x31f2c2={};_0x31f2c2[_0x85d3('0x2a')]=_[_0x85d3('0x2c')](db[_0x85d3('0x40')]['rawAttributes']);_0x31f2c2[_0x85d3('0x2b')]=_[_0x85d3('0x2c')](_0x321492[_0x85d3('0x2b')]);_0x31f2c2[_0x85d3('0x34')]=_[_0x85d3('0x2d')](_0x31f2c2[_0x85d3('0x2a')],_0x31f2c2[_0x85d3('0x2b')]);_0x42677e[_0x85d3('0x2e')]=_['intersection'](_0x31f2c2['model'],qs[_0x85d3('0x2f')](_0x321492['query'][_0x85d3('0x2f')]));_0x42677e[_0x85d3('0x2e')]=_0x42677e[_0x85d3('0x2e')][_0x85d3('0x41')]?_0x42677e[_0x85d3('0x2e')]:_0x31f2c2['model'];if(_0x321492[_0x85d3('0x2b')][_0x85d3('0x3a')]){_0x42677e['include']=[{'all':!![]}];}_0x42677e=_[_0x85d3('0x37')]({},_0x42677e,_0x321492['options']);return db[_0x85d3('0x40')]['find'](_0x42677e)['then'](handleEntityNotFound(_0x3ad5da,null))[_0x85d3('0x24')](respondWithResult(_0x3ad5da,null))[_0x85d3('0x3e')](handleError(_0x3ad5da,null));};exports[_0x85d3('0x42')]=function(_0x5d1d70,_0x3e3bde){var _0x1909d0={'where':{'id':_0x5d1d70['params']['id']}},_0x2f91a6={};_0x2f91a6[_0x85d3('0x2a')]=_[_0x85d3('0x2c')](db['Attachment'][_0x85d3('0x29')]);_0x1909d0['attributes']=_[_0x85d3('0x2d')](_0x2f91a6[_0x85d3('0x2a')],qs[_0x85d3('0x2f')](_0x5d1d70[_0x85d3('0x2b')]['fields']));_0x1909d0[_0x85d3('0x2e')]=_0x1909d0[_0x85d3('0x2e')]['length']?_0x1909d0[_0x85d3('0x2e')]:_0x2f91a6[_0x85d3('0x2a')];if(_0x5d1d70['query'][_0x85d3('0x3a')]){_0x1909d0[_0x85d3('0x3b')]=[{'all':!![]}];}_0x1909d0=_[_0x85d3('0x37')]({},_0x1909d0,_0x5d1d70[_0x85d3('0x39')]);return db[_0x85d3('0x40')]['find'](_0x1909d0)[_0x85d3('0x24')](handleEntityNotFound(_0x3e3bde,null))[_0x85d3('0x24')](function(_0x59df68){if(_0x59df68){var _0x4ef7fe=_0x59df68[_0x85d3('0x43')]({'plain':!![]});_0x4ef7fe=qs['omit'](_0x4ef7fe,['id','createdAt',_0x85d3('0x44')]);_0x5d1d70[_0x85d3('0x45')]=_[_0x85d3('0x46')](_0x5d1d70[_0x85d3('0x45')],['id',_0x85d3('0x47'),_0x85d3('0x44')]);return db[_0x85d3('0x40')][_0x85d3('0x48')](_[_0x85d3('0x37')](_0x4ef7fe,_0x5d1d70[_0x85d3('0x45')]),{'include':_0x5d1d70[_0x85d3('0x2b')][_0x85d3('0x3a')]?[{'all':!![]}]:undefined});}})[_0x85d3('0x24')](respondWithResult(_0x3e3bde,0xc9))[_0x85d3('0x3e')](handleError(_0x3e3bde,null));};exports[_0x85d3('0x23')]=function(_0x1ada10,_0xc8392){if(_0x1ada10[_0x85d3('0x45')]['id']){delete _0x1ada10[_0x85d3('0x45')]['id'];}return db[_0x85d3('0x40')][_0x85d3('0x49')]({'where':{'id':_0x1ada10['params']['id']}})[_0x85d3('0x24')](handleEntityNotFound(_0xc8392,null))[_0x85d3('0x24')](saveUpdates(_0x1ada10[_0x85d3('0x45')],null))[_0x85d3('0x24')](respondWithResult(_0xc8392,null))[_0x85d3('0x3e')](handleError(_0xc8392,null));};exports[_0x85d3('0x4a')]=function(_0x51a3d7,_0x2eb6c0){return db[_0x85d3('0x40')][_0x85d3('0x49')]({'where':{'id':_0x51a3d7['params']['id']}})[_0x85d3('0x24')](handleEntityNotFound(_0x2eb6c0,null))[_0x85d3('0x24')](removeEntity(_0x2eb6c0,null))['catch'](handleError(_0x2eb6c0,null));};exports[_0x85d3('0x48')]=function(_0x58d771,_0x2a7219,_0x205c5b){_0x58d771[_0x85d3('0x45')]['name']=_0x58d771[_0x85d3('0x4b')]['originalname'];_0x58d771[_0x85d3('0x45')][_0x85d3('0x4c')]=_0x58d771[_0x85d3('0x4b')]['filename'];_0x58d771[_0x85d3('0x45')][_0x85d3('0x38')]=_0x58d771['file'][_0x85d3('0x4d')];return db['Attachment'][_0x85d3('0x48')](_0x58d771[_0x85d3('0x45')])[_0x85d3('0x24')](respondWithResult(_0x2a7219,0xc9))[_0x85d3('0x3e')](handleError(_0x2a7219,null));};exports['download']=function(_0x1622ac,_0x18fbbc,_0x513747){return db[_0x85d3('0x40')][_0x85d3('0x4e')]({'where':{'id':_0x1622ac['params']['id']},'raw':!![]})[_0x85d3('0x24')](handleEntityNotFound(_0x18fbbc,null))[_0x85d3('0x24')](function(_0x484dcb){if(_0x484dcb){var _0x146e82=_0x484dcb[_0x85d3('0x4f')]!==null;var _0x332ba6=path[_0x85d3('0x50')](config[_0x85d3('0x51')],_0x85d3('0x52'));if(_0x146e82){_0x332ba6=path[_0x85d3('0x50')](_0x332ba6,_0x85d3('0x53'));}var _0x48290b=path['join'](_0x332ba6,_0x484dcb[_0x85d3('0x4c')]);return _0x18fbbc['download'](_0x48290b);}})[_0x85d3('0x3e')](handleError(_0x18fbbc,null));};
\ No newline at end of file
+var _0x88aa=['params','rawAttributes','find','clone','includeAll','get','omit','createdAt','updatedAt','body','create','basename','filename','file','mimetype','findOne','join','root','offline-chat/','download','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','save','update','then','error','stack','name','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','include','Attachment','rows','catch','show'];(function(_0x2cc594,_0x4d727b){var _0x4abff7=function(_0x22b01d){while(--_0x22b01d){_0x2cc594['push'](_0x2cc594['shift']());}};_0x4abff7(++_0x4d727b);}(_0x88aa,0xb4));var _0xa88a=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x88aa[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa88a('0x0'));var rp=require(_0xa88a('0x1'));var moment=require(_0xa88a('0x2'));var BPromise=require(_0xa88a('0x3'));var Mustache=require(_0xa88a('0x4'));var util=require(_0xa88a('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xa88a('0x6'));var ejs=require(_0xa88a('0x7'));var fs=require('fs');var fs_extra=require(_0xa88a('0x8'));var _=require(_0xa88a('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xa88a('0xa'));var deskjs=require(_0xa88a('0xb'));var toCsv=require(_0xa88a('0x6'));var querystring=require(_0xa88a('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa88a('0xd'));var qs=require(_0xa88a('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa88a('0xf'));var logger=require(_0xa88a('0x10'))(_0xa88a('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xa88a('0x12'));var db=require(_0xa88a('0x13'))['db'];function respondWithStatusCode(_0x55cfdd,_0x54f568){_0x54f568=_0x54f568||0xcc;return function(_0xebaf81){if(_0xebaf81){return _0x55cfdd[_0xa88a('0x14')](_0x54f568);}return _0x55cfdd['status'](_0x54f568)[_0xa88a('0x15')]();};}function respondWithResult(_0x3fe2b3,_0x2b1722){_0x2b1722=_0x2b1722||0xc8;return function(_0x1ab3ea){if(_0x1ab3ea){return _0x3fe2b3[_0xa88a('0x16')](_0x2b1722)[_0xa88a('0x17')](_0x1ab3ea);}};}function respondWithFilteredResult(_0x3f98ec,_0x568a50){return function(_0x3663c5){if(_0x3663c5){var _0x52529a=typeof _0x568a50['offset']===_0xa88a('0x18')&&typeof _0x568a50[_0xa88a('0x19')]===_0xa88a('0x18');var _0x8ddaec=_0x3663c5['count'];var _0x3c0ff4=_0x52529a?0x0:_0x568a50[_0xa88a('0x1a')];var _0x2b1e46=_0x52529a?_0x3663c5[_0xa88a('0x1b')]:_0x568a50[_0xa88a('0x1a')]+_0x568a50[_0xa88a('0x19')];var _0x1ebd74;if(_0x2b1e46>=_0x8ddaec){_0x2b1e46=_0x8ddaec;_0x1ebd74=0xc8;}else{_0x1ebd74=0xce;}_0x3f98ec[_0xa88a('0x16')](_0x1ebd74);return _0x3f98ec['set']('Content-Range',_0x3c0ff4+'-'+_0x2b1e46+'/'+_0x8ddaec)[_0xa88a('0x17')](_0x3663c5);}return null;};}function patchUpdates(_0x2cf23a){return function(_0x360ae1){try{jsonpatch['apply'](_0x360ae1,_0x2cf23a,!![]);}catch(_0x4cd6c7){return BPromise['reject'](_0x4cd6c7);}return _0x360ae1[_0xa88a('0x1c')]();};}function saveUpdates(_0xd2bced,_0x2fa62a){return function(_0x264fd3){if(_0x264fd3){return _0x264fd3[_0xa88a('0x1d')](_0xd2bced)[_0xa88a('0x1e')](function(_0x2363bf){return _0x2363bf;});}return null;};}function removeEntity(_0x40f948,_0x4287fb){return function(_0x3f3a0a){if(_0x3f3a0a){return _0x3f3a0a['destroy']()[_0xa88a('0x1e')](function(){_0x40f948[_0xa88a('0x16')](0xcc)[_0xa88a('0x15')]();});}};}function handleEntityNotFound(_0x4e9d18,_0x56c39b){return function(_0x457c17){if(!_0x457c17){_0x4e9d18[_0xa88a('0x14')](0x194);}return _0x457c17;};}function handleError(_0x47951d,_0x49cd99){_0x49cd99=_0x49cd99||0x1f4;return function(_0x524cca){logger[_0xa88a('0x1f')](_0x524cca[_0xa88a('0x20')]);if(_0x524cca[_0xa88a('0x21')]){delete _0x524cca[_0xa88a('0x21')];}_0x47951d['status'](_0x49cd99)['send'](_0x524cca);};}exports['index']=function(_0x41f004,_0x1fa3dd){var _0x1d2d7b={},_0x394e9d={},_0x3c790e={'count':0x0,'rows':[]};var _0x568f33=_[_0xa88a('0x22')](db['Attachment']['rawAttributes'],function(_0x113832){return{'name':_0x113832[_0xa88a('0x23')],'type':_0x113832[_0xa88a('0x24')][_0xa88a('0x25')]};});_0x394e9d[_0xa88a('0x26')]=_['map'](_0x568f33,'name');_0x394e9d['query']=_[_0xa88a('0x27')](_0x41f004[_0xa88a('0x28')]);_0x394e9d[_0xa88a('0x29')]=_[_0xa88a('0x2a')](_0x394e9d[_0xa88a('0x26')],_0x394e9d[_0xa88a('0x28')]);_0x1d2d7b[_0xa88a('0x2b')]=_['intersection'](_0x394e9d[_0xa88a('0x26')],qs[_0xa88a('0x2c')](_0x41f004[_0xa88a('0x28')][_0xa88a('0x2c')]));_0x1d2d7b[_0xa88a('0x2b')]=_0x1d2d7b[_0xa88a('0x2b')][_0xa88a('0x2d')]?_0x1d2d7b['attributes']:_0x394e9d['model'];if(!_0x41f004[_0xa88a('0x28')][_0xa88a('0x2e')]('nolimit')){_0x1d2d7b[_0xa88a('0x19')]=qs[_0xa88a('0x19')](_0x41f004['query'][_0xa88a('0x19')]);_0x1d2d7b[_0xa88a('0x1a')]=qs['offset'](_0x41f004[_0xa88a('0x28')]['offset']);}_0x1d2d7b[_0xa88a('0x2f')]=qs[_0xa88a('0x30')](_0x41f004[_0xa88a('0x28')][_0xa88a('0x30')]);_0x1d2d7b[_0xa88a('0x31')]=qs[_0xa88a('0x29')](_[_0xa88a('0x32')](_0x41f004[_0xa88a('0x28')],_0x394e9d[_0xa88a('0x29')]),_0x568f33);if(_0x41f004[_0xa88a('0x28')][_0xa88a('0x33')]){_0x1d2d7b[_0xa88a('0x31')]=_[_0xa88a('0x34')](_0x1d2d7b[_0xa88a('0x31')],{'$or':_[_0xa88a('0x22')](_0x568f33,function(_0x1c609f){if(_0x1c609f[_0xa88a('0x24')]!==_0xa88a('0x35')){var _0x185317={};_0x185317[_0x1c609f[_0xa88a('0x21')]]={'$like':'%'+_0x41f004[_0xa88a('0x28')]['filter']+'%'};return _0x185317;}})});}_0x1d2d7b=_[_0xa88a('0x34')]({},_0x1d2d7b,_0x41f004[_0xa88a('0x36')]);var _0x302234={'where':_0x1d2d7b[_0xa88a('0x31')]};return db['Attachment'][_0xa88a('0x1b')](_0x302234)[_0xa88a('0x1e')](function(_0x25a2db){_0x3c790e[_0xa88a('0x1b')]=_0x25a2db;if(_0x41f004[_0xa88a('0x28')]['includeAll']){_0x1d2d7b[_0xa88a('0x37')]=[{'all':!![]}];}return db[_0xa88a('0x38')]['findAll'](_0x1d2d7b);})['then'](function(_0x4e59ba){_0x3c790e[_0xa88a('0x39')]=_0x4e59ba;return _0x3c790e;})['then'](respondWithFilteredResult(_0x1fa3dd,_0x1d2d7b))[_0xa88a('0x3a')](handleError(_0x1fa3dd,null));};exports[_0xa88a('0x3b')]=function(_0x38bfed,_0x574840){var _0x161b6d={'raw':!![],'where':{'id':_0x38bfed[_0xa88a('0x3c')]['id']}},_0x30ea05={};_0x30ea05['model']=_[_0xa88a('0x27')](db[_0xa88a('0x38')][_0xa88a('0x3d')]);_0x30ea05[_0xa88a('0x28')]=_['keys'](_0x38bfed[_0xa88a('0x28')]);_0x30ea05[_0xa88a('0x29')]=_[_0xa88a('0x2a')](_0x30ea05['model'],_0x30ea05[_0xa88a('0x28')]);_0x161b6d[_0xa88a('0x2b')]=_[_0xa88a('0x2a')](_0x30ea05[_0xa88a('0x26')],qs['fields'](_0x38bfed[_0xa88a('0x28')]['fields']));_0x161b6d[_0xa88a('0x2b')]=_0x161b6d[_0xa88a('0x2b')]['length']?_0x161b6d[_0xa88a('0x2b')]:_0x30ea05[_0xa88a('0x26')];if(_0x38bfed[_0xa88a('0x28')]['includeAll']){_0x161b6d[_0xa88a('0x37')]=[{'all':!![]}];}_0x161b6d=_[_0xa88a('0x34')]({},_0x161b6d,_0x38bfed[_0xa88a('0x36')]);return db[_0xa88a('0x38')][_0xa88a('0x3e')](_0x161b6d)[_0xa88a('0x1e')](handleEntityNotFound(_0x574840,null))[_0xa88a('0x1e')](respondWithResult(_0x574840,null))[_0xa88a('0x3a')](handleError(_0x574840,null));};exports[_0xa88a('0x3f')]=function(_0x2ee0f6,_0x45ad6e){var _0x5512fc={'where':{'id':_0x2ee0f6[_0xa88a('0x3c')]['id']}},_0x15c0fa={};_0x15c0fa['model']=_['keys'](db[_0xa88a('0x38')][_0xa88a('0x3d')]);_0x5512fc[_0xa88a('0x2b')]=_['intersection'](_0x15c0fa[_0xa88a('0x26')],qs['fields'](_0x2ee0f6[_0xa88a('0x28')][_0xa88a('0x2c')]));_0x5512fc[_0xa88a('0x2b')]=_0x5512fc['attributes'][_0xa88a('0x2d')]?_0x5512fc[_0xa88a('0x2b')]:_0x15c0fa[_0xa88a('0x26')];if(_0x2ee0f6['query'][_0xa88a('0x40')]){_0x5512fc['include']=[{'all':!![]}];}_0x5512fc=_[_0xa88a('0x34')]({},_0x5512fc,_0x2ee0f6[_0xa88a('0x36')]);return db[_0xa88a('0x38')]['find'](_0x5512fc)[_0xa88a('0x1e')](handleEntityNotFound(_0x45ad6e,null))[_0xa88a('0x1e')](function(_0x2bc052){if(_0x2bc052){var _0x5a0222=_0x2bc052[_0xa88a('0x41')]({'plain':!![]});_0x5a0222=qs[_0xa88a('0x42')](_0x5a0222,['id',_0xa88a('0x43'),_0xa88a('0x44')]);_0x2ee0f6[_0xa88a('0x45')]=_[_0xa88a('0x42')](_0x2ee0f6[_0xa88a('0x45')],['id',_0xa88a('0x43'),_0xa88a('0x44')]);return db[_0xa88a('0x38')][_0xa88a('0x46')](_['merge'](_0x5a0222,_0x2ee0f6['body']),{'include':_0x2ee0f6[_0xa88a('0x28')][_0xa88a('0x40')]?[{'all':!![]}]:undefined});}})['then'](respondWithResult(_0x45ad6e,0xc9))[_0xa88a('0x3a')](handleError(_0x45ad6e,null));};exports[_0xa88a('0x1d')]=function(_0x2019dc,_0x4110df){if(_0x2019dc[_0xa88a('0x45')]['id']){delete _0x2019dc[_0xa88a('0x45')]['id'];}return db['Attachment'][_0xa88a('0x3e')]({'where':{'id':_0x2019dc[_0xa88a('0x3c')]['id']}})[_0xa88a('0x1e')](handleEntityNotFound(_0x4110df,null))['then'](saveUpdates(_0x2019dc['body'],null))['then'](respondWithResult(_0x4110df,null))[_0xa88a('0x3a')](handleError(_0x4110df,null));};exports['destroy']=function(_0x144840,_0x584d59){return db['Attachment']['find']({'where':{'id':_0x144840[_0xa88a('0x3c')]['id']}})[_0xa88a('0x1e')](handleEntityNotFound(_0x584d59,null))[_0xa88a('0x1e')](removeEntity(_0x584d59,null))[_0xa88a('0x3a')](handleError(_0x584d59,null));};exports[_0xa88a('0x46')]=function(_0x33563f,_0x57b46c,_0x298297){_0x33563f[_0xa88a('0x45')][_0xa88a('0x21')]=_0x33563f['file']['originalname'];_0x33563f[_0xa88a('0x45')][_0xa88a('0x47')]=_0x33563f['file'][_0xa88a('0x48')];_0x33563f[_0xa88a('0x45')][_0xa88a('0x24')]=_0x33563f[_0xa88a('0x49')][_0xa88a('0x4a')];return db['Attachment']['create'](_0x33563f['body'])['then'](respondWithResult(_0x57b46c,0xc9))[_0xa88a('0x3a')](handleError(_0x57b46c,null));};exports['download']=function(_0x529330,_0x58298b,_0x38aed3){return db['Attachment'][_0xa88a('0x4b')]({'where':{'id':_0x529330['params']['id']},'raw':!![]})[_0xa88a('0x1e')](handleEntityNotFound(_0x58298b,null))[_0xa88a('0x1e')](function(_0x5bbb84){if(_0x5bbb84){var _0x4dcf35=_0x5bbb84['ChatOfflineMessageId']!==null;var _0x3d48d8=path[_0xa88a('0x4c')](config[_0xa88a('0x4d')],'server/files/attachments/');if(_0x4dcf35){_0x3d48d8=path['join'](_0x3d48d8,_0xa88a('0x4e'));}var _0x129a3c=path[_0xa88a('0x4c')](_0x3d48d8,_0x5bbb84[_0xa88a('0x47')]);return _0x58298b[_0xa88a('0x4f')](_0x129a3c);}})[_0xa88a('0x3a')](handleError(_0x58298b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc01c=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./attachment.attributes','exports','attachments','lodash','util','../../config/logger','api'];(function(_0x52473a,_0x5b0fd2){var _0x8e22c0=function(_0x7a9b08){while(--_0x7a9b08){_0x52473a['push'](_0x52473a['shift']());}};_0x8e22c0(++_0x5b0fd2);}(_0xc01c,0x98));var _0xcc01=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc01c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xcc01('0x0'));var util=require(_0xcc01('0x1'));var logger=require(_0xcc01('0x2'))(_0xcc01('0x3'));var moment=require(_0xcc01('0x4'));var BPromise=require(_0xcc01('0x5'));var rp=require(_0xcc01('0x6'));var fs=require('fs');var path=require(_0xcc01('0x7'));var rimraf=require(_0xcc01('0x8'));var config=require(_0xcc01('0x9'));var attributes=require(_0xcc01('0xa'));module[_0xcc01('0xb')]=function(_0x45a2ef,_0x141070){return _0x45a2ef['define']('Attachment',attributes,{'tableName':_0xcc01('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x552c=['api','bluebird','request-promise','path','rimraf','../../config/environment','./attachment.attributes','exports','define','Attachment','util'];(function(_0xf70b9c,_0x3b8e10){var _0x3785f9=function(_0xdafe1b){while(--_0xdafe1b){_0xf70b9c['push'](_0xf70b9c['shift']());}};_0x3785f9(++_0x3b8e10);}(_0x552c,0xf1));var _0xc552=function(_0x566a4e,_0xeeb3f6){_0x566a4e=_0x566a4e-0x0;var _0x36d409=_0x552c[_0x566a4e];return _0x36d409;};'use strict';var _=require('lodash');var util=require(_0xc552('0x0'));var logger=require('../../config/logger')(_0xc552('0x1'));var moment=require('moment');var BPromise=require(_0xc552('0x2'));var rp=require(_0xc552('0x3'));var fs=require('fs');var path=require(_0xc552('0x4'));var rimraf=require(_0xc552('0x5'));var config=require(_0xc552('0x6'));var attributes=require(_0xc552('0x7'));module[_0xc552('0x8')]=function(_0x55ee81,_0x19b19e){return _0x55ee81[_0xc552('0x9')](_0xc552('0xa'),attributes,{'tableName':'attachments','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9099=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','stringify','error','code','Attachment,\x20%s,\x20%s','message','catch','CreateAttachment','Attachment','body','options','raw','then','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x1035c1,_0x2d8583){var _0x308d67=function(_0x58ddb6){while(--_0x58ddb6){_0x1035c1['push'](_0x1035c1['shift']());}};_0x308d67(++_0x2d8583);}(_0x9099,0x1ac));var _0x9909=function(_0x2e7a43,_0x3b3df4){_0x2e7a43=_0x2e7a43-0x0;var _0x52e9e1=_0x9099[_0x2e7a43];return _0x52e9e1;};'use strict';var _=require(_0x9909('0x0'));var util=require('util');var moment=require(_0x9909('0x1'));var BPromise=require(_0x9909('0x2'));var rs=require(_0x9909('0x3'));var fs=require('fs');var Redis=require(_0x9909('0x4'));var db=require(_0x9909('0x5'))['db'];var utils=require(_0x9909('0x6'));var logger=require(_0x9909('0x7'))(_0x9909('0x8'));var config=require(_0x9909('0x9'));var jayson=require(_0x9909('0xa'));var client=jayson[_0x9909('0xb')][_0x9909('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x3b7391,_0x3dc2dd,_0x54011f){return new BPromise(function(_0x6d755a,_0x5dcd39){return client['request'](_0x3b7391,_0x54011f)['then'](function(_0x5023b7){logger[_0x9909('0xd')]('Attachment,\x20%s,\x20%s',_0x3dc2dd,_0x9909('0xe'));logger[_0x9909('0xf')](_0x9909('0x10'),_0x3dc2dd,'request\x20sent',JSON[_0x9909('0x11')](_0x5023b7));if(_0x5023b7['error']){if(_0x5023b7[_0x9909('0x12')][_0x9909('0x13')]===0x1f4){logger[_0x9909('0x12')](_0x9909('0x14'),_0x3dc2dd,_0x5023b7[_0x9909('0x12')][_0x9909('0x15')]);return _0x5dcd39(_0x5023b7[_0x9909('0x12')][_0x9909('0x15')]);}logger[_0x9909('0x12')](_0x9909('0x14'),_0x3dc2dd,_0x5023b7[_0x9909('0x12')][_0x9909('0x15')]);return _0x6d755a(_0x5023b7[_0x9909('0x12')]['message']);}else{logger[_0x9909('0xd')]('Attachment,\x20%s,\x20%s',_0x3dc2dd,_0x9909('0xe'));_0x6d755a(_0x5023b7['result'][_0x9909('0x15')]);}})[_0x9909('0x16')](function(_0x245f0d){logger['error'](_0x9909('0x14'),_0x3dc2dd,_0x245f0d);_0x5dcd39(_0x245f0d);});});}exports[_0x9909('0x17')]=function(_0x180929){var _0x2e6c16=this;return new Promise(function(_0x1106e5,_0x3a38ac){return db[_0x9909('0x18')]['create'](_0x180929[_0x9909('0x19')],{'raw':_0x180929[_0x9909('0x1a')]?_0x180929['options'][_0x9909('0x1b')]===undefined?!![]:![]:!![]})[_0x9909('0x1c')](function(_0x20c236){logger[_0x9909('0xd')](_0x9909('0x17'),_0x180929);logger[_0x9909('0xf')](_0x9909('0x17'),_0x180929,JSON['stringify'](_0x20c236));_0x1106e5(_0x20c236);})[_0x9909('0x16')](function(_0x319c31){logger['error']('CreateAttachment',_0x319c31[_0x9909('0x15')],_0x180929);_0x3a38ac(_0x2e6c16[_0x9909('0x12')](0x1f4,_0x319c31[_0x9909('0x15')]));});});};
\ No newline at end of file
+var _0x2333=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Attachment,\x20%s,\x20%s','request\x20sent','debug','Attachment,\x20%s,\x20%s,\x20%s','error','code','message','catch','CreateAttachment','options','raw','stringify','lodash','util','randomstring','ioredis'];(function(_0x3feed1,_0x1280cf){var _0x50f298=function(_0x1772a){while(--_0x1772a){_0x3feed1['push'](_0x3feed1['shift']());}};_0x50f298(++_0x1280cf);}(_0x2333,0x11a));var _0x3233=function(_0x3c9a3c,_0x26bd97){_0x3c9a3c=_0x3c9a3c-0x0;var _0x595651=_0x2333[_0x3c9a3c];return _0x595651;};'use strict';var _=require(_0x3233('0x0'));var util=require(_0x3233('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x3233('0x2'));var fs=require('fs');var Redis=require(_0x3233('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x3233('0x4'));var logger=require(_0x3233('0x5'))(_0x3233('0x6'));var config=require(_0x3233('0x7'));var jayson=require(_0x3233('0x8'));var client=jayson[_0x3233('0x9')][_0x3233('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x33a56d,_0x1e93e8,_0x1842a1){return new BPromise(function(_0x1837b6,_0x2ee6df){return client[_0x3233('0xb')](_0x33a56d,_0x1842a1)[_0x3233('0xc')](function(_0x7ff4bd){logger[_0x3233('0xd')](_0x3233('0xe'),_0x1e93e8,_0x3233('0xf'));logger[_0x3233('0x10')](_0x3233('0x11'),_0x1e93e8,_0x3233('0xf'),JSON['stringify'](_0x7ff4bd));if(_0x7ff4bd[_0x3233('0x12')]){if(_0x7ff4bd[_0x3233('0x12')][_0x3233('0x13')]===0x1f4){logger[_0x3233('0x12')](_0x3233('0xe'),_0x1e93e8,_0x7ff4bd[_0x3233('0x12')][_0x3233('0x14')]);return _0x2ee6df(_0x7ff4bd[_0x3233('0x12')][_0x3233('0x14')]);}logger[_0x3233('0x12')](_0x3233('0xe'),_0x1e93e8,_0x7ff4bd[_0x3233('0x12')][_0x3233('0x14')]);return _0x1837b6(_0x7ff4bd['error']['message']);}else{logger[_0x3233('0xd')](_0x3233('0xe'),_0x1e93e8,_0x3233('0xf'));_0x1837b6(_0x7ff4bd['result'][_0x3233('0x14')]);}})[_0x3233('0x15')](function(_0x127227){logger['error'](_0x3233('0xe'),_0x1e93e8,_0x127227);_0x2ee6df(_0x127227);});});}exports[_0x3233('0x16')]=function(_0x55fa30){var _0x38a9c0=this;return new Promise(function(_0x58420c,_0x233141){return db['Attachment']['create'](_0x55fa30['body'],{'raw':_0x55fa30[_0x3233('0x17')]?_0x55fa30['options'][_0x3233('0x18')]===undefined?!![]:![]:!![]})['then'](function(_0x305227){logger[_0x3233('0xd')](_0x3233('0x16'),_0x55fa30);logger[_0x3233('0x10')]('CreateAttachment',_0x55fa30,JSON[_0x3233('0x19')](_0x305227));_0x58420c(_0x305227);})[_0x3233('0x15')](function(_0x56fa5a){logger['error'](_0x3233('0x16'),_0x56fa5a['message'],_0x55fa30);_0x233141(_0x38a9c0[_0x3233('0x12')](0x1f4,_0x56fa5a[_0x3233('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['originalname','replace','single','file','create','put','/:id','update','destroy','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./attachment.controller','get','index','isAuthenticated','show','/:id/download','download','post','/:id/clone','diskStorage','join','server/files/attachments/','format','%s-%s'];(function(_0x3292f9,_0x23b1f2){var _0x5ced62=function(_0x283365){while(--_0x283365){_0x3292f9['push'](_0x3292f9['shift']());}};_0x5ced62(++_0x23b1f2);}(_0xb10b,0x12a));var _0xbb10=function(_0xc54c54,_0x59053b){_0xc54c54=_0xc54c54-0x0;var _0x476786=_0xb10b[_0xc54c54];return _0x476786;};'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 fs_extra=require(_0xbb10('0x4'));var auth=require(_0xbb10('0x5'));var interaction=require(_0xbb10('0x6'));var config=require(_0xbb10('0x7'));var controller=require(_0xbb10('0x8'));router[_0xbb10('0x9')]('/',auth['isAuthenticated'](),controller[_0xbb10('0xa')]);router[_0xbb10('0x9')]('/:id',auth[_0xbb10('0xb')](),controller[_0xbb10('0xc')]);router[_0xbb10('0x9')](_0xbb10('0xd'),auth[_0xbb10('0xb')](),controller[_0xbb10('0xe')]);router[_0xbb10('0xf')](_0xbb10('0x10'),auth['isAuthenticated'](),controller['clone']);var upload=multer({'storage':multer[_0xbb10('0x11')]({'destination':function(_0x118a74,_0xce64f3,_0x5e136d){_0x5e136d(null,path[_0xbb10('0x12')](config['root'],_0xbb10('0x13')));},'filename':function(_0x916a32,_0x285009,_0x193a27){_0x193a27(null,util[_0xbb10('0x14')](_0xbb10('0x15'),Date['now'](),_0x285009[_0xbb10('0x16')][_0xbb10('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xbb10('0xf')]('/',upload[_0xbb10('0x18')](_0xbb10('0x19')),controller[_0xbb10('0x1a')]);router[_0xbb10('0x1b')](_0xbb10('0x1c'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1d')]);router['delete'](_0xbb10('0x1c'),auth[_0xbb10('0xb')](),controller[_0xbb10('0x1e')]);module[_0xbb10('0x1f')]=router;
\ No newline at end of file
+var _0x2032=['./attachment.controller','get','isAuthenticated','index','/:id','show','download','/:id/clone','clone','root','server/files/attachments/','now','post','single','file','create','put','update','delete','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x1c62fb,_0x3cb9ea){var _0x2138c7=function(_0x2a1e94){while(--_0x2a1e94){_0x1c62fb['push'](_0x1c62fb['shift']());}};_0x2138c7(++_0x3cb9ea);}(_0x2032,0xd9));var _0x2203=function(_0x3e2c81,_0x4e7224){_0x3e2c81=_0x3e2c81-0x0;var _0x1ce24f=_0x2032[_0x3e2c81];return _0x1ce24f;};'use strict';var multer=require('multer');var util=require(_0x2203('0x0'));var path=require(_0x2203('0x1'));var timeout=require(_0x2203('0x2'));var express=require('express');var router=express[_0x2203('0x3')]();var fs_extra=require(_0x2203('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2203('0x5'));var config=require(_0x2203('0x6'));var controller=require(_0x2203('0x7'));router[_0x2203('0x8')]('/',auth[_0x2203('0x9')](),controller[_0x2203('0xa')]);router[_0x2203('0x8')](_0x2203('0xb'),auth[_0x2203('0x9')](),controller[_0x2203('0xc')]);router[_0x2203('0x8')]('/:id/download',auth['isAuthenticated'](),controller[_0x2203('0xd')]);router['post'](_0x2203('0xe'),auth[_0x2203('0x9')](),controller[_0x2203('0xf')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x849049,_0x4a6832,_0x3f690a){_0x3f690a(null,path['join'](config[_0x2203('0x10')],_0x2203('0x11')));},'filename':function(_0x4b9376,_0x583bc7,_0x585c76){_0x585c76(null,util['format']('%s-%s',Date[_0x2203('0x12')](),_0x583bc7['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x2203('0x13')]('/',upload[_0x2203('0x14')](_0x2203('0x15')),controller[_0x2203('0x16')]);router[_0x2203('0x17')](_0x2203('0xb'),auth[_0x2203('0x9')](),controller[_0x2203('0x18')]);router[_0x2203('0x19')](_0x2203('0xb'),auth['isAuthenticated'](),controller[_0x2203('0x1a')]);module[_0x2203('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f77=['then','find','map','emails','admin','user','disabled','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked','blockedAt','add','clearBlockUser','getLicense','catch','lodash','passport','passport-google-oauth20','Strategy','moment','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','login','google','/login','profile','callback','use','clientID','clientSecret','secret','callbackURL','findOne','allowedLoginAttempts','blockDuration'];(function(_0x3d9bfe,_0x2f64e2){var _0x4c0f42=function(_0x42f8b2){while(--_0x42f8b2){_0x3d9bfe['push'](_0x3d9bfe['shift']());}};_0x4c0f42(++_0x2f64e2);}(_0x1f77,0x111));var _0x71f7=function(_0x185eb7,_0x2b46d1){_0x185eb7=_0x185eb7-0x0;var _0x1589c7=_0x1f77[_0x185eb7];return _0x1589c7;};'use strict';var _=require(_0x71f7('0x0'));var passport=require(_0x71f7('0x1'));var GoogleStrategy=require(_0x71f7('0x2'))[_0x71f7('0x3')];var moment=require(_0x71f7('0x4'));var db=require(_0x71f7('0x5'))['db'];var config=require(_0x71f7('0x6'));var signToken=require(_0x71f7('0x7'))[_0x71f7('0x8')];var utils=require(_0x71f7('0x9'));exports[_0x71f7('0xa')]=passport['authenticate'](_0x71f7('0xb'),{'failureRedirect':_0x71f7('0xc'),'scope':[_0x71f7('0xd'),'email'],'session':![]});exports[_0x71f7('0xe')]=passport['authenticate'](_0x71f7('0xb'),{'failureRedirect':_0x71f7('0xc'),'session':![]});passport[_0x71f7('0xf')](new GoogleStrategy({'clientID':config['google']?config[_0x71f7('0xb')][_0x71f7('0x10')]:'id','clientSecret':config[_0x71f7('0xb')]?config[_0x71f7('0xb')][_0x71f7('0x11')]:_0x71f7('0x12'),'callbackURL':config[_0x71f7('0xb')]?config[_0x71f7('0xb')][_0x71f7('0x13')]:''},function(_0x46f6b3,_0x559302,_0x9a812b,_0x590657){var _0x41d68b,_0x2dc362;return db['Setting'][_0x71f7('0x14')]({'where':{'id':0x1},'attributes':[_0x71f7('0x15'),_0x71f7('0x16')],'raw':!![]})[_0x71f7('0x17')](function(_0x321781){_0x41d68b=_0x321781;return db['User'][_0x71f7('0x18')]({'where':{'email':_[_0x71f7('0x19')](_0x9a812b[_0x71f7('0x1a')],'value'),'role':{'$or':[_0x71f7('0x1b'),_0x71f7('0x1c'),'agent']}}});})['then'](function(_0x5d1c61){_0x2dc362=_0x5d1c61;if(_0x2dc362){if(_0x2dc362[_0x71f7('0x1d')]){return _0x590657(_0x71f7('0x1e'));}else if(_0x41d68b[_0x71f7('0x16')]>0x0){if(_0x2dc362[_0x71f7('0x1f')]){if(moment(_0x2dc362[_0x71f7('0x20')])[_0x71f7('0x21')](_0x41d68b[_0x71f7('0x16')],'minutes')>moment()){return _0x590657(_0x71f7('0x1e'));}else{return utils[_0x71f7('0x22')](_0x2dc362,0x0,![],null)[_0x71f7('0x17')](function(){return utils[_0x71f7('0x23')](_0x2dc362);})[_0x71f7('0x17')](function(){return _0x590657(null,_0x2dc362);});}}else{return utils[_0x71f7('0x23')](_0x2dc362)[_0x71f7('0x17')](function(){return _0x590657(null,_0x2dc362);});}}else{return utils[_0x71f7('0x23')](_0x2dc362)[_0x71f7('0x17')](function(){return _0x590657(null,_0x2dc362);});}}return _0x590657('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');})[_0x71f7('0x24')](function(_0x579e6c){_0x590657(_0x579e6c);});}));
\ No newline at end of file
+var _0xe2a3=['login','authenticate','/login','profile','email','google','use','clientID','clientSecret','secret','callbackURL','Setting','findOne','blockDuration','then','find','emails','agent','disabled','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked','blockedAt','add','minutes','clearBlockUser','getLicense','catch','lodash','passport','passport-google-oauth20','Strategy','moment','../../config/environment','signToken','../../config/utils'];(function(_0x2d4be2,_0x4c462f){var _0x32e943=function(_0xbbc389){while(--_0xbbc389){_0x2d4be2['push'](_0x2d4be2['shift']());}};_0x32e943(++_0x4c462f);}(_0xe2a3,0x179));var _0x3e2a=function(_0x3ce53b,_0x30bbcc){_0x3ce53b=_0x3ce53b-0x0;var _0x7fa584=_0xe2a3[_0x3ce53b];return _0x7fa584;};'use strict';var _=require(_0x3e2a('0x0'));var passport=require(_0x3e2a('0x1'));var GoogleStrategy=require(_0x3e2a('0x2'))[_0x3e2a('0x3')];var moment=require(_0x3e2a('0x4'));var db=require('../../mysqldb')['db'];var config=require(_0x3e2a('0x5'));var signToken=require('../../components/auth/service')[_0x3e2a('0x6')];var utils=require(_0x3e2a('0x7'));exports[_0x3e2a('0x8')]=passport[_0x3e2a('0x9')]('google',{'failureRedirect':_0x3e2a('0xa'),'scope':[_0x3e2a('0xb'),_0x3e2a('0xc')],'session':![]});exports['callback']=passport['authenticate'](_0x3e2a('0xd'),{'failureRedirect':_0x3e2a('0xa'),'session':![]});passport[_0x3e2a('0xe')](new GoogleStrategy({'clientID':config[_0x3e2a('0xd')]?config['google'][_0x3e2a('0xf')]:'id','clientSecret':config[_0x3e2a('0xd')]?config[_0x3e2a('0xd')][_0x3e2a('0x10')]:_0x3e2a('0x11'),'callbackURL':config['google']?config[_0x3e2a('0xd')][_0x3e2a('0x12')]:''},function(_0x161a56,_0x268e35,_0x42e826,_0x3426c7){var _0x1762c6,_0x143174;return db[_0x3e2a('0x13')][_0x3e2a('0x14')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x3e2a('0x15')],'raw':!![]})[_0x3e2a('0x16')](function(_0x4330a3){_0x1762c6=_0x4330a3;return db['User'][_0x3e2a('0x17')]({'where':{'email':_['map'](_0x42e826[_0x3e2a('0x18')],'value'),'role':{'$or':['admin','user',_0x3e2a('0x19')]}}});})[_0x3e2a('0x16')](function(_0x2e5182){_0x143174=_0x2e5182;if(_0x143174){if(_0x143174[_0x3e2a('0x1a')]){return _0x3426c7(_0x3e2a('0x1b'));}else if(_0x1762c6[_0x3e2a('0x15')]>0x0){if(_0x143174[_0x3e2a('0x1c')]){if(moment(_0x143174[_0x3e2a('0x1d')])[_0x3e2a('0x1e')](_0x1762c6[_0x3e2a('0x15')],_0x3e2a('0x1f'))>moment()){return _0x3426c7(_0x3e2a('0x1b'));}else{return utils[_0x3e2a('0x20')](_0x143174,0x0,![],null)[_0x3e2a('0x16')](function(){return utils[_0x3e2a('0x21')](_0x143174);})[_0x3e2a('0x16')](function(){return _0x3426c7(null,_0x143174);});}}else{return utils[_0x3e2a('0x21')](_0x143174)[_0x3e2a('0x16')](function(){return _0x3426c7(null,_0x143174);});}}else{return utils[_0x3e2a('0x21')](_0x143174)[_0x3e2a('0x16')](function(){return _0x3426c7(null,_0x143174);});}}return _0x3426c7('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');})[_0x3e2a('0x22')](function(_0x27dce6){_0x3426c7(_0x27dce6);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1122=['exports','express','passport','./authGoogle.controller','../user/user.controller.js','../../components/auth/service','get','login','callback','isMiddleware'];(function(_0x592541,_0x4fab31){var _0x5ba8d8=function(_0xd62b60){while(--_0xd62b60){_0x592541['push'](_0x592541['shift']());}};_0x5ba8d8(++_0x4fab31);}(_0x1122,0x97));var _0x2112=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1122[_0x3dd15e];return _0x231fd0;};'use strict';var express=require(_0x2112('0x0'));var passport=require(_0x2112('0x1'));var router=express['Router']();var controller=require(_0x2112('0x2'));var userController=require(_0x2112('0x3'));var authService=require(_0x2112('0x4'));router[_0x2112('0x5')]('/',controller[_0x2112('0x6')]);router['get']('/callback',controller[_0x2112('0x7')],authService[_0x2112('0x8')],userController[_0x2112('0x6')],authService['setTokenCookie']);module[_0x2112('0x9')]=router;
\ No newline at end of file
+var _0x1fcb=['../../components/auth/service','get','login','/callback','isMiddleware','setTokenCookie','exports','express','passport','./authGoogle.controller','../user/user.controller.js'];(function(_0x16d9a7,_0x290bec){var _0x17532e=function(_0x3e8cc2){while(--_0x3e8cc2){_0x16d9a7['push'](_0x16d9a7['shift']());}};_0x17532e(++_0x290bec);}(_0x1fcb,0x96));var _0xb1fc=function(_0x4a3560,_0x400d45){_0x4a3560=_0x4a3560-0x0;var _0x21a1f0=_0x1fcb[_0x4a3560];return _0x21a1f0;};'use strict';var express=require(_0xb1fc('0x0'));var passport=require(_0xb1fc('0x1'));var router=express['Router']();var controller=require(_0xb1fc('0x2'));var userController=require(_0xb1fc('0x3'));var authService=require(_0xb1fc('0x4'));router[_0xb1fc('0x5')]('/',controller[_0xb1fc('0x6')]);router[_0xb1fc('0x5')](_0xb1fc('0x7'),controller['callback'],authService[_0xb1fc('0x8')],userController['login'],authService[_0xb1fc('0x9')]);module[_0xb1fc('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757f=['minutes','clearBlockUser','getLicense','catch','find','email','MailServerOut','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','Smtp','host','port','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','login','authenticate','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','toLowerCase','User','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','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','headers','Reset\x20Email\x20sent!','reset','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','previousPasswords','save','use','util','passport-local','Strategy','jayson/promise','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','http','Setting','findOne','allowedLoginAttempts','blockDuration','name','password','salt','role','disabled','blocked','blockedAt','loginAttempts','admin','user','agent','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','add'];(function(_0x3718b7,_0x2da677){var _0xf8c91e=function(_0x2519b4){while(--_0x2519b4){_0x3718b7['push'](_0x3718b7['shift']());}};_0xf8c91e(++_0x2da677);}(_0x757f,0xee));var _0xf757=function(_0x30a191,_0x38b23b){_0x30a191=_0x30a191-0x0;var _0xf6f720=_0x757f[_0x30a191];return _0xf6f720;};'use strict';var util=require(_0xf757('0x0'));var passport=require('passport');var LocalStrategy=require(_0xf757('0x1'))[_0xf757('0x2')];var jayson=require(_0xf757('0x3'));var _=require(_0xf757('0x4'));var rs=require(_0xf757('0x5'));var moment=require(_0xf757('0x6'));var db=require(_0xf757('0x7'))['db'];var authService=require(_0xf757('0x8'));var utils=require(_0xf757('0x9'));var client=jayson['client'][_0xf757('0xa')]({'port':0x232b});function localAuthenticate(_0x30ccea,_0x4e1e06,_0x2c0fcf,_0x44b312){var _0x565224,_0x5bf802;return db[_0xf757('0xb')][_0xf757('0xc')]({'where':{'id':0x1},'attributes':[_0xf757('0xd'),_0xf757('0xe')],'raw':!![]})['then'](function(_0xca61ee){_0x565224=_0xca61ee;return _0x30ccea[_0xf757('0xc')]({'attributes':['id',_0xf757('0xf'),_0xf757('0x10'),_0xf757('0x11'),_0xf757('0x12'),_0xf757('0x13'),_0xf757('0x14'),_0xf757('0x15'),_0xf757('0x16')],'where':{'name':_0x4e1e06,'role':{'$or':[_0xf757('0x17'),_0xf757('0x18'),_0xf757('0x19')]}}});})[_0xf757('0x1a')](function(_0x3dcfaa){if(!_0x3dcfaa||_0x3dcfaa&&_0x3dcfaa[_0xf757('0xf')]!==_0x4e1e06){throw new Error(_0xf757('0x1b'));}else{_0x5bf802=_0x3dcfaa;return _0x5bf802;}})[_0xf757('0x1a')](function(){_0x5bf802['authenticate'](_0x2c0fcf,function(_0x328fed,_0x12fb35){var _0x5c297e=_0x5bf802[_0xf757('0x16')]+0x1;if(_0x328fed){return _0x44b312(_0x328fed);}else if(!_0x12fb35){if(_0x5bf802[_0xf757('0x13')]){return _0x44b312(null,![],{'message':_0xf757('0x1b')});}else if(_0x565224['allowedLoginAttempts']>0x0){if(_0x5bf802[_0xf757('0x14')]){if(_0x565224[_0xf757('0xe')]>0x0){if(moment(_0x5bf802[_0xf757('0x15')])[_0xf757('0x1c')](_0x565224['blockDuration'],_0xf757('0x1d'))>moment()){return _0x44b312(null,![],{'message':_0xf757('0x1b')});}else{return utils[_0xf757('0x1e')](_0x5bf802,_0x5c297e,![],null)[_0xf757('0x1a')](function(){return _0x44b312(null,![],{'message':_0xf757('0x1b')});});}}else{return _0x44b312(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x5c297e>=_0x565224['allowedLoginAttempts']){return utils[_0xf757('0x1e')](_0x5bf802,0x0,!![],moment())['then'](function(){return _0x44b312(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils[_0xf757('0x1e')](_0x5bf802,_0x5c297e,![],null)[_0xf757('0x1a')](function(){return _0x44b312(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}}else{return _0x44b312(null,![],{'message':_0xf757('0x1b')});}}else{if(_0x5bf802[_0xf757('0x13')]){return _0x44b312(null,![],{'message':_0xf757('0x1b')});}else if(_0x565224[_0xf757('0xd')]>0x0){if(_0x5bf802['blocked']){if(_0x565224['blockDuration']>0x0){if(moment(_0x5bf802[_0xf757('0x15')])[_0xf757('0x1c')](_0x565224[_0xf757('0xe')],_0xf757('0x1d'))>moment()){return _0x44b312(null,![],{'message':_0xf757('0x1b')});}else{return utils[_0xf757('0x1e')](_0x5bf802,0x0,![],null)[_0xf757('0x1a')](function(){return utils[_0xf757('0x1f')](_0x5bf802);})[_0xf757('0x1a')](function(){return _0x44b312(null,_0x5bf802);});}}else{return _0x44b312(null,![],{'message':_0xf757('0x1b')});}}else{return utils['clearBlockUser'](_0x5bf802,0x0,![],null)['then'](function(){return utils[_0xf757('0x1f')](_0x5bf802);})[_0xf757('0x1a')](function(){return _0x44b312(null,_0x5bf802);})[_0xf757('0x20')](function(_0x5d83c1){return _0x44b312(null,![],_0x5d83c1);});}}else{if(_0x5bf802[_0xf757('0x14')]){return _0x44b312(null,![],{'message':_0xf757('0x1b')});}else{return utils[_0xf757('0x1f')](_0x5bf802)[_0xf757('0x1a')](function(){return _0x44b312(null,_0x5bf802);});}}}});})['catch'](function(_0x4ef0a9){return _0x44b312(null,![],_0x4ef0a9);});}function sendServiceMail(_0x1b61bf){return db['MailAccount'][_0xf757('0x21')]({'where':{'service':!![]},'attributes':['id','name',_0xf757('0x22')],'include':[{'model':db[_0xf757('0x23')],'as':'Smtp'}]})[_0xf757('0x1a')](function(_0x269388){if(!_0x269388){throw new Error(_0xf757('0x24'));}var _0x3ad266={'tls':{'rejectUnauthorized':![]}};if(_0x269388['Smtp'][_0xf757('0x25')]){_0x3ad266['service']=_0x269388[_0xf757('0x26')]['service'];}else{_0x3ad266[_0xf757('0x27')]=_0x269388['Smtp'][_0xf757('0x27')];_0x3ad266[_0xf757('0x28')]=_0x269388['Smtp'][_0xf757('0x28')];_0x3ad266['secure']=_0x269388[_0xf757('0x26')]['secure'];}if(_0x269388[_0xf757('0x26')][_0xf757('0x29')]){_0x3ad266[_0xf757('0x2a')]={'user':_0x269388[_0xf757('0x26')]['user'],'pass':_0x269388[_0xf757('0x26')][_0xf757('0x2b')]};}var _0x18d57e={'account':_0x3ad266,'message':_[_0xf757('0x2c')]({'from':util[_0xf757('0x2d')](_0xf757('0x2e'),_0x269388[_0xf757('0xf')],_0x269388[_0xf757('0x22')]||_0x269388[_0xf757('0x26')]['user'])},_0x1b61bf)};return client[_0xf757('0x2f')](_0xf757('0x30'),_0x18d57e);})[_0xf757('0x1a')](function(_0x4645dc){if(_0x4645dc[_0xf757('0x31')]){throw new Error(util[_0xf757('0x2d')](_0xf757('0x32'),_0x4645dc[_0xf757('0x31')][_0xf757('0x33')]||JSON[_0xf757('0x34')](_0x4645dc['error'])));}return!![];});}function handleError(_0x56174b,_0x530c8a,_0x4b56af){return _0x56174b[_0xf757('0x35')](_0x530c8a||0x1f4)[_0xf757('0x36')]({'message':_0x4b56af?_0x4b56af[_0xf757('0x33')]||_0x4b56af:''});}exports[_0xf757('0x37')]=function(_0x3d06c3,_0x54a332,_0x5ed195){passport[_0xf757('0x38')](_0xf757('0x39'),function(_0x49cbaa,_0x3a783e,_0x1cb9ba){var _0x547f26=_0x49cbaa||_0x1cb9ba;if(_0x547f26){return handleError(_0x54a332,0x191,_0x547f26);}if(!_0x3a783e){return handleError(_0x54a332,0x194,{'message':_0xf757('0x3a')});}else{var _0x411f80={'payload':{'id':_0x3a783e['id'],'role':_0x3a783e[_0xf757('0x12')]},'options':{'expiresIn':0x15180}};return authService[_0xf757('0x3b')](_0x411f80)['then'](function(_0x27d557){_0x54a332[_0xf757('0x3c')]({'id':_0x3a783e['id'],'token':_0x27d557,'statusCall':'','isAlreadyLogged':_0x3a783e[_0xf757('0x3d')]});});}})(_0x3d06c3,_0x54a332,_0x5ed195);};exports[_0xf757('0x3e')]=function(_0x1c1384,_0x5496e7,_0x4856f5){if(!_0x1c1384[_0xf757('0x3f')][_0xf757('0x22')]){return handleError(_0x5496e7,0x1f4,{'message':_0xf757('0x40')});}var _0x2febe3=rs[_0xf757('0x41')]();_0x1c1384['body']['email']=_0x1c1384[_0xf757('0x3f')]['email'][_0xf757('0x42')]()[_0xf757('0x43')]();var _0x36ed8a;return db['Setting'][_0xf757('0xc')]({'where':{'id':0x1},'attributes':[_0xf757('0xd'),'blockDuration'],'raw':!![]})[_0xf757('0x1a')](function(_0x22d068){_0x36ed8a=_0x22d068;return db[_0xf757('0x44')][_0xf757('0x21')]({'where':{'email':_0x1c1384[_0xf757('0x3f')][_0xf757('0x22')]}});})['then'](function(_0x15c0ad){if(!_0x15c0ad){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x15c0ad[_0xf757('0x13')]){throw new Error(_0xf757('0x45'));}if(_0x15c0ad[_0xf757('0x14')]){if(moment(_0x15c0ad['blockedAt'])[_0xf757('0x1c')](_0x36ed8a[_0xf757('0xe')],'minutes')>moment()){throw new Error(_0xf757('0x46'));}else{_0x15c0ad[_0xf757('0x14')]=![];_0x15c0ad[_0xf757('0x15')]=null;}}_0x15c0ad[_0xf757('0x47')]=_0x2febe3;_0x15c0ad['resetPasswordExpires']=Date[_0xf757('0x48')]()+0x36ee80;return _0x15c0ad['save']();})[_0xf757('0x1a')](function(){return sendServiceMail({'to':_0x1c1384[_0xf757('0x3f')][_0xf757('0x22')],'subject':_0xf757('0x49'),'text':_0xf757('0x4a')+_0xf757('0x4b')+'https://'+_0x1c1384[_0xf757('0x4c')][_0xf757('0x27')]+'/reset/'+_0x2febe3+'\x0a\x0a'+'If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a'});})[_0xf757('0x1a')](function(){_0x5496e7['status'](0xc8)[_0xf757('0x36')]({'message':_0xf757('0x4d')});})[_0xf757('0x20')](function(_0x31593f){return handleError(_0x5496e7,0x1f4,_0x31593f);});};exports[_0xf757('0x4e')]=function(_0x27ac4d,_0x27319d,_0x804418){return db[_0xf757('0x44')][_0xf757('0x21')]({'where':{'resetPasswordToken':_0x27ac4d[_0xf757('0x4f')][_0xf757('0x50')],'resetPasswordExpires':{'$gt':Date['now']()}}})[_0xf757('0x1a')](function(_0x354018){if(!_0x354018){throw new Error(_0xf757('0x51'));}return db['Setting'][_0xf757('0xc')]({'attributes':['id',_0xf757('0x52'),_0xf757('0x53'),_0xf757('0x54')]})['then'](function(_0x38bb4e){if(_0x38bb4e['securePassword'])authService[_0xf757('0x55')](_0x27ac4d[_0xf757('0x3f')][_0xf757('0x10')]);if(!_0x38bb4e[_0xf757('0x53')]||!_0x354018[_0xf757('0x56')])return _0x354018;authService['validatePasswordHistory'](_0x27ac4d['body'][_0xf757('0x10')],_0x354018[_0xf757('0x56')],_0x38bb4e['passwordHistoryLimit']);return _0x354018;})[_0xf757('0x1a')](function(){_0x354018['password']=_0x27ac4d[_0xf757('0x3f')][_0xf757('0x10')];_0x354018[_0xf757('0x47')]=null;_0x354018['resetPasswordExpires']=null;return _0x354018[_0xf757('0x57')]();});})[_0xf757('0x1a')](function(){_0x27319d['status'](0xc8)[_0xf757('0x36')]({'message':'Password\x20reset!'});})[_0xf757('0x20')](function(_0x5e7004){return handleError(_0x27319d,0x1f4,_0x5e7004);});};passport[_0xf757('0x58')](new LocalStrategy({'usernameField':_0xf757('0xf'),'passwordField':_0xf757('0x10')},function(_0x5e8d05,_0x1f1469,_0x41692f){return localAuthenticate(db[_0xf757('0x44')],_0x5e8d05,_0x1f1469,_0x41692f);}));
\ No newline at end of file
+var _0x6ac9=['params','token','securePassword','enforcePasswordHistory','passwordHistoryLimit','validatePasswordPattern','previousPasswords','validatePasswordHistory','Password\x20reset!','use','util','passport','passport-local','Strategy','jayson/promise','lodash','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','findOne','blockDuration','then','name','password','salt','role','blocked','blockedAt','loginAttempts','admin','user','agent','authenticate','disabled','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','add','clearBlockUser','getLicense','MailAccount','find','email','MailServerOut','Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','auth','pass','merge','format','\x22%s\x22\x20<%s>','request','SendMail','error','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','login','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','forgot','body','Email\x20parameter\x20is\x20missing','generate','trim','allowedLoginAttempts','User','minutes','The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','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','https://','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','catch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6ac9,0x112));var _0x96ac=function(_0x15b2b7,_0x5dee54){_0x15b2b7=_0x15b2b7-0x0;var _0x131cb7=_0x6ac9[_0x15b2b7];return _0x131cb7;};'use strict';var util=require(_0x96ac('0x0'));var passport=require(_0x96ac('0x1'));var LocalStrategy=require(_0x96ac('0x2'))[_0x96ac('0x3')];var jayson=require(_0x96ac('0x4'));var _=require(_0x96ac('0x5'));var rs=require(_0x96ac('0x6'));var moment=require(_0x96ac('0x7'));var db=require(_0x96ac('0x8'))['db'];var authService=require(_0x96ac('0x9'));var utils=require(_0x96ac('0xa'));var client=jayson[_0x96ac('0xb')][_0x96ac('0xc')]({'port':0x232b});function localAuthenticate(_0xbecbb7,_0x35a26d,_0x2dbbc6,_0x4d1e3e){var _0x41c422,_0x314399;return db[_0x96ac('0xd')][_0x96ac('0xe')]({'where':{'id':0x1},'attributes':['allowedLoginAttempts',_0x96ac('0xf')],'raw':!![]})[_0x96ac('0x10')](function(_0x5d0ea5){_0x41c422=_0x5d0ea5;return _0xbecbb7[_0x96ac('0xe')]({'attributes':['id',_0x96ac('0x11'),_0x96ac('0x12'),_0x96ac('0x13'),_0x96ac('0x14'),'disabled',_0x96ac('0x15'),_0x96ac('0x16'),_0x96ac('0x17')],'where':{'name':_0x35a26d,'role':{'$or':[_0x96ac('0x18'),_0x96ac('0x19'),_0x96ac('0x1a')]}}});})[_0x96ac('0x10')](function(_0x1e6929){if(!_0x1e6929||_0x1e6929&&_0x1e6929[_0x96ac('0x11')]!==_0x35a26d){throw new Error('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else{_0x314399=_0x1e6929;return _0x314399;}})['then'](function(){_0x314399[_0x96ac('0x1b')](_0x2dbbc6,function(_0x499018,_0x50f575){var _0x4707e4=_0x314399[_0x96ac('0x17')]+0x1;if(_0x499018){return _0x4d1e3e(_0x499018);}else if(!_0x50f575){if(_0x314399[_0x96ac('0x1c')]){return _0x4d1e3e(null,![],{'message':_0x96ac('0x1d')});}else if(_0x41c422['allowedLoginAttempts']>0x0){if(_0x314399[_0x96ac('0x15')]){if(_0x41c422['blockDuration']>0x0){if(moment(_0x314399['blockedAt'])[_0x96ac('0x1e')](_0x41c422[_0x96ac('0xf')],'minutes')>moment()){return _0x4d1e3e(null,![],{'message':_0x96ac('0x1d')});}else{return utils['clearBlockUser'](_0x314399,_0x4707e4,![],null)[_0x96ac('0x10')](function(){return _0x4d1e3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}else{return _0x4d1e3e(null,![],{'message':_0x96ac('0x1d')});}}else{if(_0x4707e4>=_0x41c422['allowedLoginAttempts']){return utils[_0x96ac('0x1f')](_0x314399,0x0,!![],moment())[_0x96ac('0x10')](function(){return _0x4d1e3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils[_0x96ac('0x1f')](_0x314399,_0x4707e4,![],null)[_0x96ac('0x10')](function(){return _0x4d1e3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}}}else{return _0x4d1e3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x314399[_0x96ac('0x1c')]){return _0x4d1e3e(null,![],{'message':_0x96ac('0x1d')});}else if(_0x41c422['allowedLoginAttempts']>0x0){if(_0x314399[_0x96ac('0x15')]){if(_0x41c422[_0x96ac('0xf')]>0x0){if(moment(_0x314399[_0x96ac('0x16')])['add'](_0x41c422['blockDuration'],'minutes')>moment()){return _0x4d1e3e(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x96ac('0x1f')](_0x314399,0x0,![],null)[_0x96ac('0x10')](function(){return utils[_0x96ac('0x20')](_0x314399);})['then'](function(){return _0x4d1e3e(null,_0x314399);});}}else{return _0x4d1e3e(null,![],{'message':_0x96ac('0x1d')});}}else{return utils['clearBlockUser'](_0x314399,0x0,![],null)[_0x96ac('0x10')](function(){return utils[_0x96ac('0x20')](_0x314399);})[_0x96ac('0x10')](function(){return _0x4d1e3e(null,_0x314399);})['catch'](function(_0x434032){return _0x4d1e3e(null,![],_0x434032);});}}else{if(_0x314399['blocked']){return _0x4d1e3e(null,![],{'message':_0x96ac('0x1d')});}else{return utils['getLicense'](_0x314399)['then'](function(){return _0x4d1e3e(null,_0x314399);});}}}});})['catch'](function(_0x3fb3bf){return _0x4d1e3e(null,![],_0x3fb3bf);});}function sendServiceMail(_0x20b169){return db[_0x96ac('0x21')][_0x96ac('0x22')]({'where':{'service':!![]},'attributes':['id',_0x96ac('0x11'),_0x96ac('0x23')],'include':[{'model':db[_0x96ac('0x24')],'as':_0x96ac('0x25')}]})[_0x96ac('0x10')](function(_0x29e47e){if(!_0x29e47e){throw new Error(_0x96ac('0x26'));}var _0x34c24c={'tls':{'rejectUnauthorized':![]}};if(_0x29e47e[_0x96ac('0x25')][_0x96ac('0x27')]){_0x34c24c[_0x96ac('0x27')]=_0x29e47e[_0x96ac('0x25')][_0x96ac('0x27')];}else{_0x34c24c['host']=_0x29e47e[_0x96ac('0x25')][_0x96ac('0x28')];_0x34c24c[_0x96ac('0x29')]=_0x29e47e[_0x96ac('0x25')][_0x96ac('0x29')];_0x34c24c[_0x96ac('0x2a')]=_0x29e47e['Smtp'][_0x96ac('0x2a')];}if(_0x29e47e[_0x96ac('0x25')]['authentication']){_0x34c24c[_0x96ac('0x2b')]={'user':_0x29e47e['Smtp'][_0x96ac('0x19')],'pass':_0x29e47e[_0x96ac('0x25')][_0x96ac('0x2c')]};}var _0x4ae083={'account':_0x34c24c,'message':_[_0x96ac('0x2d')]({'from':util[_0x96ac('0x2e')](_0x96ac('0x2f'),_0x29e47e[_0x96ac('0x11')],_0x29e47e[_0x96ac('0x23')]||_0x29e47e[_0x96ac('0x25')][_0x96ac('0x19')])},_0x20b169)};return client[_0x96ac('0x30')](_0x96ac('0x31'),_0x4ae083);})[_0x96ac('0x10')](function(_0x3724b7){if(_0x3724b7[_0x96ac('0x32')]){throw new Error(util[_0x96ac('0x2e')](_0x96ac('0x33'),_0x3724b7[_0x96ac('0x32')][_0x96ac('0x34')]||JSON[_0x96ac('0x35')](_0x3724b7[_0x96ac('0x32')])));}return!![];});}function handleError(_0x15271c,_0x234221,_0x3ef431){return _0x15271c[_0x96ac('0x36')](_0x234221||0x1f4)[_0x96ac('0x37')]({'message':_0x3ef431?_0x3ef431[_0x96ac('0x34')]||_0x3ef431:''});}exports[_0x96ac('0x38')]=function(_0x50ca8d,_0x1758f4,_0x454b5e){passport['authenticate']('local',function(_0x387e63,_0x20d812,_0x121527){var _0x544139=_0x387e63||_0x121527;if(_0x544139){return handleError(_0x1758f4,0x191,_0x544139);}if(!_0x20d812){return handleError(_0x1758f4,0x194,{'message':_0x96ac('0x39')});}else{var _0x35431a={'payload':{'id':_0x20d812['id'],'role':_0x20d812[_0x96ac('0x14')]},'options':{'expiresIn':0x15180}};return authService[_0x96ac('0x3a')](_0x35431a)[_0x96ac('0x10')](function(_0x20e6f0){_0x1758f4['json']({'id':_0x20d812['id'],'token':_0x20e6f0,'statusCall':'','isAlreadyLogged':_0x20d812['online']});});}})(_0x50ca8d,_0x1758f4,_0x454b5e);};exports[_0x96ac('0x3b')]=function(_0x24bf68,_0x43241b,_0x35c2d1){if(!_0x24bf68[_0x96ac('0x3c')][_0x96ac('0x23')]){return handleError(_0x43241b,0x1f4,{'message':_0x96ac('0x3d')});}var _0x53c301=rs[_0x96ac('0x3e')]();_0x24bf68[_0x96ac('0x3c')][_0x96ac('0x23')]=_0x24bf68[_0x96ac('0x3c')]['email'][_0x96ac('0x3f')]()['toLowerCase']();var _0xd57394;return db[_0x96ac('0xd')][_0x96ac('0xe')]({'where':{'id':0x1},'attributes':[_0x96ac('0x40'),_0x96ac('0xf')],'raw':!![]})[_0x96ac('0x10')](function(_0x25d969){_0xd57394=_0x25d969;return db[_0x96ac('0x41')]['find']({'where':{'email':_0x24bf68['body']['email']}});})[_0x96ac('0x10')](function(_0x4479b7){if(!_0x4479b7){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x4479b7[_0x96ac('0x1c')]){throw new Error('The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.');}if(_0x4479b7[_0x96ac('0x15')]){if(moment(_0x4479b7['blockedAt'])['add'](_0xd57394['blockDuration'],_0x96ac('0x42'))>moment()){throw new Error(_0x96ac('0x43'));}else{_0x4479b7['blocked']=![];_0x4479b7[_0x96ac('0x16')]=null;}}_0x4479b7[_0x96ac('0x44')]=_0x53c301;_0x4479b7[_0x96ac('0x45')]=Date[_0x96ac('0x46')]()+0x36ee80;return _0x4479b7[_0x96ac('0x47')]();})[_0x96ac('0x10')](function(){return sendServiceMail({'to':_0x24bf68[_0x96ac('0x3c')][_0x96ac('0x23')],'subject':_0x96ac('0x48'),'text':_0x96ac('0x49')+'Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a'+_0x96ac('0x4a')+_0x24bf68['headers']['host']+_0x96ac('0x4b')+_0x53c301+'\x0a\x0a'+_0x96ac('0x4c')});})[_0x96ac('0x10')](function(){_0x43241b['status'](0xc8)[_0x96ac('0x37')]({'message':'Reset\x20Email\x20sent!'});})[_0x96ac('0x4d')](function(_0x108e54){return handleError(_0x43241b,0x1f4,_0x108e54);});};exports['reset']=function(_0x24d7b2,_0x2a827c,_0x353793){return db[_0x96ac('0x41')][_0x96ac('0x22')]({'where':{'resetPasswordToken':_0x24d7b2[_0x96ac('0x4e')][_0x96ac('0x4f')],'resetPasswordExpires':{'$gt':Date[_0x96ac('0x46')]()}}})[_0x96ac('0x10')](function(_0x3b94b4){if(!_0x3b94b4){throw new Error('Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.');}return db['Setting'][_0x96ac('0xe')]({'attributes':['id',_0x96ac('0x50'),_0x96ac('0x51'),_0x96ac('0x52')]})[_0x96ac('0x10')](function(_0x167496){if(_0x167496[_0x96ac('0x50')])authService[_0x96ac('0x53')](_0x24d7b2[_0x96ac('0x3c')][_0x96ac('0x12')]);if(!_0x167496[_0x96ac('0x51')]||!_0x3b94b4[_0x96ac('0x54')])return _0x3b94b4;authService[_0x96ac('0x55')](_0x24d7b2[_0x96ac('0x3c')][_0x96ac('0x12')],_0x3b94b4[_0x96ac('0x54')],_0x167496[_0x96ac('0x52')]);return _0x3b94b4;})[_0x96ac('0x10')](function(){_0x3b94b4['password']=_0x24d7b2[_0x96ac('0x3c')][_0x96ac('0x12')];_0x3b94b4[_0x96ac('0x44')]=null;_0x3b94b4[_0x96ac('0x45')]=null;return _0x3b94b4['save']();});})[_0x96ac('0x10')](function(){_0x2a827c[_0x96ac('0x36')](0xc8)['send']({'message':_0x96ac('0x56')});})['catch'](function(_0x19fd23){return handleError(_0x2a827c,0x1f4,_0x19fd23);});};passport[_0x96ac('0x57')](new LocalStrategy({'usernameField':_0x96ac('0x11'),'passwordField':_0x96ac('0x12')},function(_0x292e30,_0xf67610,_0x3b5275){return localAuthenticate(db['User'],_0x292e30,_0xf67610,_0x3b5275);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5930=['./authLocal.controller','post','login','/forgot','forgot','/reset/:token','reset','express','Router'];(function(_0xcfd4f2,_0x41744c){var _0x3c1bdf=function(_0x9754fb){while(--_0x9754fb){_0xcfd4f2['push'](_0xcfd4f2['shift']());}};_0x3c1bdf(++_0x41744c);}(_0x5930,0xe8));var _0x0593=function(_0x220405,_0xbff02b){_0x220405=_0x220405-0x0;var _0x5e80ca=_0x5930[_0x220405];return _0x5e80ca;};'use strict';var express=require(_0x0593('0x0'));var router=express[_0x0593('0x1')]();var controller=require(_0x0593('0x2'));router[_0x0593('0x3')]('/',controller[_0x0593('0x4')]);router['post'](_0x0593('0x5'),controller[_0x0593('0x6')]);router['post'](_0x0593('0x7'),controller[_0x0593('0x8')]);module['exports']=router;
\ No newline at end of file
+var _0x6fff=['./authLocal.controller','post','login','/forgot','forgot','/reset/:token','reset','express','Router'];(function(_0x154551,_0x5574a8){var _0x5d7667=function(_0x1bc54e){while(--_0x1bc54e){_0x154551['push'](_0x154551['shift']());}};_0x5d7667(++_0x5574a8);}(_0x6fff,0x1d2));var _0xf6ff=function(_0x32691d,_0x2e6e00){_0x32691d=_0x32691d-0x0;var _0x3deaf0=_0x6fff[_0x32691d];return _0x3deaf0;};'use strict';var express=require(_0xf6ff('0x0'));var router=express[_0xf6ff('0x1')]();var controller=require(_0xf6ff('0x2'));router[_0xf6ff('0x3')]('/',controller[_0xf6ff('0x4')]);router[_0xf6ff('0x3')](_0xf6ff('0x5'),controller[_0xf6ff('0x6')]);router[_0xf6ff('0x3')](_0xf6ff('0x7'),controller[_0xf6ff('0x8')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2080=['sequelize','exports','STRING','BOOLEAN'];(function(_0x528e30,_0x3ee591){var _0x3d2e2f=function(_0x147d02){while(--_0x147d02){_0x528e30['push'](_0x528e30['shift']());}};_0x3d2e2f(++_0x3ee591);}(_0x2080,0x158));var _0x0208=function(_0x3274a8,_0x13a3ff){_0x3274a8=_0x3274a8-0x0;var _0x57027d=_0x2080[_0x3274a8];return _0x57027d;};'use strict';var Sequelize=require(_0x0208('0x0'));module[_0x0208('0x1')]={'name':{'type':Sequelize[_0x0208('0x2')],'allowNull':![]},'channel':{'type':Sequelize[_0x0208('0x2')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize[_0x0208('0x3')],'defaultValue':![]},'timeout':{'type':Sequelize['INTEGER'],'defaultValue':0xa}};
\ No newline at end of file
+var _0x2f43=['INTEGER','exports','STRING','BOOLEAN'];(function(_0x1602fb,_0x20b6b3){var _0x461831=function(_0x4a19f1){while(--_0x4a19f1){_0x1602fb['push'](_0x1602fb['shift']());}};_0x461831(++_0x20b6b3);}(_0x2f43,0x131));var _0x32f4=function(_0x363ba2,_0x54c897){_0x363ba2=_0x363ba2-0x0;var _0x131ebf=_0x2f43[_0x363ba2];return _0x131ebf;};'use strict';var Sequelize=require('sequelize');module[_0x32f4('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'channel':{'type':Sequelize[_0x32f4('0x1')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize[_0x32f4('0x2')],'defaultValue':![]},'timeout':{'type':Sequelize[_0x32f4('0x3')],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4309=['error','stack','name','index','map','Automation','rawAttributes','key','keys','filters','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','type','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','params','merge','find','create','body','addConditions','omit','ids','getConditions','findOne','Condition','pick','addActions','getActions','Action','eml-format','zip-dir','request-promise','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','destroy'];(function(_0x331737,_0x24e938){var _0x20fe78=function(_0x3d1f4a){while(--_0x3d1f4a){_0x331737['push'](_0x331737['shift']());}};_0x20fe78(++_0x24e938);}(_0x4309,0x80));var _0x9430=function(_0x19a9ee,_0x413a2d){_0x19a9ee=_0x19a9ee-0x0;var _0x158be4=_0x4309[_0x19a9ee];return _0x158be4;};'use strict';var emlformat=require(_0x9430('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9430('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9430('0x2'));var moment=require('moment');var BPromise=require(_0x9430('0x3'));var Mustache=require(_0x9430('0x4'));var util=require('util');var path=require(_0x9430('0x5'));var sox=require(_0x9430('0x6'));var csv=require(_0x9430('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9430('0x8'));var _=require(_0x9430('0x9'));var squel=require(_0x9430('0xa'));var crypto=require(_0x9430('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x9430('0xc'));var toCsv=require(_0x9430('0x7'));var querystring=require(_0x9430('0xd'));var Papa=require(_0x9430('0xe'));var Redis=require(_0x9430('0xf'));var authService=require(_0x9430('0x10'));var qs=require(_0x9430('0x11'));var as=require(_0x9430('0x12'));var hardwareService=require(_0x9430('0x13'));var logger=require(_0x9430('0x14'))('api');var utils=require(_0x9430('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x9430('0x16'));var db=require(_0x9430('0x17'))['db'];function respondWithStatusCode(_0x50e567,_0x3f26d3){_0x3f26d3=_0x3f26d3||0xcc;return function(_0x3e5e6f){if(_0x3e5e6f){return _0x50e567[_0x9430('0x18')](_0x3f26d3);}return _0x50e567[_0x9430('0x19')](_0x3f26d3)[_0x9430('0x1a')]();};}function respondWithResult(_0x54ba9c,_0x183f02){_0x183f02=_0x183f02||0xc8;return function(_0x522c17){if(_0x522c17){return _0x54ba9c[_0x9430('0x19')](_0x183f02)[_0x9430('0x1b')](_0x522c17);}};}function respondWithFilteredResult(_0x214652,_0x5412ba){return function(_0x3a3086){if(_0x3a3086){var _0x2edce8=typeof _0x5412ba[_0x9430('0x1c')]===_0x9430('0x1d')&&typeof _0x5412ba[_0x9430('0x1e')]===_0x9430('0x1d');var _0x1f1f34=_0x3a3086[_0x9430('0x1f')];var _0x42328d=_0x2edce8?0x0:_0x5412ba[_0x9430('0x1c')];var _0x3d31e6=_0x2edce8?_0x3a3086[_0x9430('0x1f')]:_0x5412ba[_0x9430('0x1c')]+_0x5412ba[_0x9430('0x1e')];var _0x212493;if(_0x3d31e6>=_0x1f1f34){_0x3d31e6=_0x1f1f34;_0x212493=0xc8;}else{_0x212493=0xce;}_0x214652[_0x9430('0x19')](_0x212493);return _0x214652[_0x9430('0x20')]('Content-Range',_0x42328d+'-'+_0x3d31e6+'/'+_0x1f1f34)['json'](_0x3a3086);}return null;};}function patchUpdates(_0x447882){return function(_0x1a5226){try{jsonpatch['apply'](_0x1a5226,_0x447882,!![]);}catch(_0x562432){return BPromise[_0x9430('0x21')](_0x562432);}return _0x1a5226[_0x9430('0x22')]();};}function saveUpdates(_0x406eb4,_0x1cabb6){return function(_0x2eda1d){if(_0x2eda1d){return _0x2eda1d[_0x9430('0x23')](_0x406eb4)[_0x9430('0x24')](function(_0x2bbee3){return _0x2bbee3;});}return null;};}function removeEntity(_0x26fe63,_0x29c305){return function(_0x444738){if(_0x444738){return _0x444738[_0x9430('0x25')]()[_0x9430('0x24')](function(){_0x26fe63[_0x9430('0x19')](0xcc)[_0x9430('0x1a')]();});}};}function handleEntityNotFound(_0xa104f8,_0x25ae06){return function(_0x2de535){if(!_0x2de535){_0xa104f8['sendStatus'](0x194);}return _0x2de535;};}function handleError(_0x14bde0,_0x21237a){_0x21237a=_0x21237a||0x1f4;return function(_0xa8737a){logger[_0x9430('0x26')](_0xa8737a[_0x9430('0x27')]);if(_0xa8737a['name']){delete _0xa8737a[_0x9430('0x28')];}_0x14bde0[_0x9430('0x19')](_0x21237a)['send'](_0xa8737a);};}exports[_0x9430('0x29')]=function(_0x22fac0,_0x917e26){var _0x1eee34={},_0x3c35ec={},_0x4ff8c6={'count':0x0,'rows':[]};var _0x1fc60b=_[_0x9430('0x2a')](db[_0x9430('0x2b')][_0x9430('0x2c')],function(_0xb9d77e){return{'name':_0xb9d77e['fieldName'],'type':_0xb9d77e['type'][_0x9430('0x2d')]};});_0x3c35ec['model']=_['map'](_0x1fc60b,_0x9430('0x28'));_0x3c35ec['query']=_[_0x9430('0x2e')](_0x22fac0['query']);_0x3c35ec[_0x9430('0x2f')]=_[_0x9430('0x30')](_0x3c35ec[_0x9430('0x31')],_0x3c35ec[_0x9430('0x32')]);_0x1eee34[_0x9430('0x33')]=_[_0x9430('0x30')](_0x3c35ec[_0x9430('0x31')],qs[_0x9430('0x34')](_0x22fac0[_0x9430('0x32')][_0x9430('0x34')]));_0x1eee34[_0x9430('0x33')]=_0x1eee34[_0x9430('0x33')][_0x9430('0x35')]?_0x1eee34[_0x9430('0x33')]:_0x3c35ec[_0x9430('0x31')];if(!_0x22fac0[_0x9430('0x32')][_0x9430('0x36')](_0x9430('0x37'))){_0x1eee34[_0x9430('0x1e')]=qs[_0x9430('0x1e')](_0x22fac0['query']['limit']);_0x1eee34[_0x9430('0x1c')]=qs[_0x9430('0x1c')](_0x22fac0[_0x9430('0x32')]['offset']);}_0x1eee34[_0x9430('0x38')]=qs[_0x9430('0x39')](_0x22fac0[_0x9430('0x32')][_0x9430('0x39')]);_0x1eee34[_0x9430('0x3a')]=qs[_0x9430('0x2f')](_['pick'](_0x22fac0[_0x9430('0x32')],_0x3c35ec[_0x9430('0x2f')]),_0x1fc60b);if(_0x22fac0[_0x9430('0x32')]['filter']){_0x1eee34['where']=_['merge'](_0x1eee34['where'],{'$or':_[_0x9430('0x2a')](_0x1fc60b,function(_0x5d4c35){if(_0x5d4c35[_0x9430('0x3b')]!==_0x9430('0x3c')){var _0x561a16={};_0x561a16[_0x5d4c35[_0x9430('0x28')]]={'$like':'%'+_0x22fac0[_0x9430('0x32')][_0x9430('0x3d')]+'%'};return _0x561a16;}})});}_0x1eee34=_['merge']({},_0x1eee34,_0x22fac0[_0x9430('0x3e')]);var _0x491646={'where':_0x1eee34[_0x9430('0x3a')]};return db['Automation'][_0x9430('0x1f')](_0x491646)[_0x9430('0x24')](function(_0x2376ab){_0x4ff8c6[_0x9430('0x1f')]=_0x2376ab;if(_0x22fac0[_0x9430('0x32')][_0x9430('0x3f')]){_0x1eee34[_0x9430('0x40')]=[{'all':!![]}];}return db[_0x9430('0x2b')][_0x9430('0x41')](_0x1eee34);})[_0x9430('0x24')](function(_0x303718){_0x4ff8c6[_0x9430('0x42')]=_0x303718;return _0x4ff8c6;})[_0x9430('0x24')](respondWithFilteredResult(_0x917e26,_0x1eee34))[_0x9430('0x43')](handleError(_0x917e26,null));};exports['show']=function(_0x429ed2,_0x4041a3){var _0x575f51={'raw':![],'where':{'id':_0x429ed2[_0x9430('0x44')]['id']}},_0x1625ec={};_0x1625ec[_0x9430('0x31')]=_['keys'](db[_0x9430('0x2b')]['rawAttributes']);_0x1625ec['query']=_[_0x9430('0x2e')](_0x429ed2[_0x9430('0x32')]);_0x1625ec[_0x9430('0x2f')]=_[_0x9430('0x30')](_0x1625ec['model'],_0x1625ec[_0x9430('0x32')]);_0x575f51[_0x9430('0x33')]=_[_0x9430('0x30')](_0x1625ec[_0x9430('0x31')],qs[_0x9430('0x34')](_0x429ed2['query'][_0x9430('0x34')]));_0x575f51[_0x9430('0x33')]=_0x575f51[_0x9430('0x33')][_0x9430('0x35')]?_0x575f51[_0x9430('0x33')]:_0x1625ec['model'];if(_0x429ed2[_0x9430('0x32')][_0x9430('0x3f')]){_0x575f51[_0x9430('0x40')]=[{'all':!![]}];}_0x575f51=_[_0x9430('0x45')]({},_0x575f51,_0x429ed2[_0x9430('0x3e')]);return db['Automation'][_0x9430('0x46')](_0x575f51)[_0x9430('0x24')](handleEntityNotFound(_0x4041a3,null))[_0x9430('0x24')](respondWithResult(_0x4041a3,null))[_0x9430('0x43')](handleError(_0x4041a3,null));};exports[_0x9430('0x47')]=function(_0x2976c9,_0x22019a){return db[_0x9430('0x2b')][_0x9430('0x47')](_0x2976c9[_0x9430('0x48')],{})[_0x9430('0x24')](respondWithResult(_0x22019a,0xc9))[_0x9430('0x43')](handleError(_0x22019a,null));};exports['update']=function(_0x215fb6,_0x1c5e99){if(_0x215fb6[_0x9430('0x48')]['id']){delete _0x215fb6[_0x9430('0x48')]['id'];}return db[_0x9430('0x2b')][_0x9430('0x46')]({'where':{'id':_0x215fb6[_0x9430('0x44')]['id']}})[_0x9430('0x24')](handleEntityNotFound(_0x1c5e99,null))[_0x9430('0x24')](saveUpdates(_0x215fb6[_0x9430('0x48')],null))[_0x9430('0x24')](respondWithResult(_0x1c5e99,null))[_0x9430('0x43')](handleError(_0x1c5e99,null));};exports[_0x9430('0x25')]=function(_0x2e88ea,_0x4220e7){return db[_0x9430('0x2b')][_0x9430('0x46')]({'where':{'id':_0x2e88ea[_0x9430('0x44')]['id']}})[_0x9430('0x24')](handleEntityNotFound(_0x4220e7,null))['then'](removeEntity(_0x4220e7,null))['catch'](handleError(_0x4220e7,null));};exports[_0x9430('0x49')]=function(_0x179243,_0x4cb46c,_0x2d4f1f){return db['Condition']['find']({'where':{'id':_0x179243[_0x9430('0x44')]['id']}})[_0x9430('0x24')](handleEntityNotFound(_0x4cb46c,null))[_0x9430('0x24')](function(_0x29eac5){if(_0x29eac5){return _0x29eac5[_0x9430('0x49')](_0x179243['body']['ids'],_[_0x9430('0x4a')](_0x179243[_0x9430('0x48')],[_0x9430('0x4b'),'id'])||{});}})['then'](respondWithResult(_0x4cb46c,null))[_0x9430('0x43')](handleError(_0x4cb46c,null));};exports[_0x9430('0x4c')]=function(_0x29fa44,_0x58257f,_0x33d7f1){var _0x3c0a6d={};var _0xadaf96={};var _0x31db89;var _0x17cc80;return db['Automation'][_0x9430('0x4d')]({'where':{'id':_0x29fa44[_0x9430('0x44')]['id']}})[_0x9430('0x24')](handleEntityNotFound(_0x58257f,null))['then'](function(_0x3fe8a2){if(_0x3fe8a2){_0x31db89=_0x3fe8a2;_0xadaf96[_0x9430('0x31')]=_['keys'](db[_0x9430('0x4e')][_0x9430('0x2c')]);_0xadaf96[_0x9430('0x32')]=_[_0x9430('0x2e')](_0x29fa44[_0x9430('0x32')]);_0xadaf96[_0x9430('0x2f')]=_[_0x9430('0x30')](_0xadaf96[_0x9430('0x31')],_0xadaf96[_0x9430('0x32')]);_0x3c0a6d[_0x9430('0x33')]=_['intersection'](_0xadaf96['model'],qs[_0x9430('0x34')](_0x29fa44[_0x9430('0x32')][_0x9430('0x34')]));_0x3c0a6d[_0x9430('0x33')]=_0x3c0a6d['attributes'][_0x9430('0x35')]?_0x3c0a6d['attributes']:_0xadaf96[_0x9430('0x31')];_0x3c0a6d[_0x9430('0x38')]=qs[_0x9430('0x39')](_0x29fa44['query'][_0x9430('0x39')]);_0x3c0a6d[_0x9430('0x3a')]=qs[_0x9430('0x2f')](_[_0x9430('0x4f')](_0x29fa44['query'],_0xadaf96[_0x9430('0x2f')]));if(_0x29fa44[_0x9430('0x32')][_0x9430('0x3d')]){_0x3c0a6d[_0x9430('0x3a')]=_['merge'](_0x3c0a6d[_0x9430('0x3a')],{'$or':_['map'](_0x3c0a6d[_0x9430('0x33')],function(_0x189302){var _0x5815d3={};_0x5815d3[_0x189302]={'$like':'%'+_0x29fa44['query'][_0x9430('0x3d')]+'%'};return _0x5815d3;})});}_0x3c0a6d=_[_0x9430('0x45')]({},_0x3c0a6d,_0x29fa44[_0x9430('0x3e')]);return _0x31db89[_0x9430('0x4c')](_0x3c0a6d);}})[_0x9430('0x24')](function(_0x447e65){if(_0x447e65){_0x17cc80=_0x447e65[_0x9430('0x35')];if(!_0x29fa44[_0x9430('0x32')][_0x9430('0x36')](_0x9430('0x37'))){_0x3c0a6d['limit']=qs[_0x9430('0x1e')](_0x29fa44[_0x9430('0x32')][_0x9430('0x1e')]);_0x3c0a6d[_0x9430('0x1c')]=qs[_0x9430('0x1c')](_0x29fa44[_0x9430('0x32')][_0x9430('0x1c')]);}return _0x31db89[_0x9430('0x4c')](_0x3c0a6d);}})['then'](function(_0x492569){if(_0x492569){return _0x492569?{'count':_0x17cc80,'rows':_0x492569}:null;}})['then'](respondWithResult(_0x58257f,null))[_0x9430('0x43')](handleError(_0x58257f,null));};exports['addActions']=function(_0x4447e7,_0x458110,_0x4ffcb3){return db['Action'][_0x9430('0x46')]({'where':{'id':_0x4447e7[_0x9430('0x44')]['id']}})[_0x9430('0x24')](handleEntityNotFound(_0x458110,null))[_0x9430('0x24')](function(_0x578b51){if(_0x578b51){return _0x578b51[_0x9430('0x50')](_0x4447e7[_0x9430('0x48')][_0x9430('0x4b')],_[_0x9430('0x4a')](_0x4447e7[_0x9430('0x48')],[_0x9430('0x4b'),'id'])||{});}})[_0x9430('0x24')](respondWithResult(_0x458110,null))[_0x9430('0x43')](handleError(_0x458110,null));};exports[_0x9430('0x51')]=function(_0x174cf6,_0x5c783e,_0x41d179){var _0x1b4414={};var _0x21acd0={};var _0x45c931;var _0x2c734c;return db[_0x9430('0x2b')][_0x9430('0x4d')]({'where':{'id':_0x174cf6[_0x9430('0x44')]['id']}})[_0x9430('0x24')](handleEntityNotFound(_0x5c783e,null))['then'](function(_0x32549f){if(_0x32549f){_0x45c931=_0x32549f;_0x21acd0[_0x9430('0x31')]=_[_0x9430('0x2e')](db[_0x9430('0x52')][_0x9430('0x2c')]);_0x21acd0[_0x9430('0x32')]=_[_0x9430('0x2e')](_0x174cf6[_0x9430('0x32')]);_0x21acd0[_0x9430('0x2f')]=_[_0x9430('0x30')](_0x21acd0[_0x9430('0x31')],_0x21acd0['query']);_0x1b4414[_0x9430('0x33')]=_[_0x9430('0x30')](_0x21acd0[_0x9430('0x31')],qs[_0x9430('0x34')](_0x174cf6[_0x9430('0x32')][_0x9430('0x34')]));_0x1b4414[_0x9430('0x33')]=_0x1b4414[_0x9430('0x33')][_0x9430('0x35')]?_0x1b4414[_0x9430('0x33')]:_0x21acd0[_0x9430('0x31')];_0x1b4414[_0x9430('0x38')]=qs['sort'](_0x174cf6[_0x9430('0x32')][_0x9430('0x39')]);_0x1b4414[_0x9430('0x3a')]=qs[_0x9430('0x2f')](_[_0x9430('0x4f')](_0x174cf6[_0x9430('0x32')],_0x21acd0[_0x9430('0x2f')]));if(_0x174cf6[_0x9430('0x32')][_0x9430('0x3d')]){_0x1b4414['where']=_['merge'](_0x1b4414[_0x9430('0x3a')],{'$or':_[_0x9430('0x2a')](_0x1b4414['attributes'],function(_0x2b1d40){var _0x400bd4={};_0x400bd4[_0x2b1d40]={'$like':'%'+_0x174cf6[_0x9430('0x32')][_0x9430('0x3d')]+'%'};return _0x400bd4;})});}_0x1b4414=_[_0x9430('0x45')]({},_0x1b4414,_0x174cf6[_0x9430('0x3e')]);return _0x45c931[_0x9430('0x51')](_0x1b4414);}})['then'](function(_0x3179ef){if(_0x3179ef){_0x2c734c=_0x3179ef[_0x9430('0x35')];if(!_0x174cf6[_0x9430('0x32')]['hasOwnProperty'](_0x9430('0x37'))){_0x1b4414[_0x9430('0x1e')]=qs['limit'](_0x174cf6['query']['limit']);_0x1b4414[_0x9430('0x1c')]=qs['offset'](_0x174cf6['query'][_0x9430('0x1c')]);}return _0x45c931[_0x9430('0x51')](_0x1b4414);}})[_0x9430('0x24')](function(_0x28ef17){if(_0x28ef17){return _0x28ef17?{'count':_0x2c734c,'rows':_0x28ef17}:null;}})[_0x9430('0x24')](respondWithResult(_0x5c783e,null))['catch'](handleError(_0x5c783e,null));};
\ No newline at end of file
+var _0x177a=['stack','name','send','index','Automation','rawAttributes','fieldName','model','map','keys','intersection','fields','query','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','merge','VIRTUAL','filter','options','includeAll','include','catch','params','find','create','body','destroy','addConditions','Condition','ids','getConditions','findOne','Action','addActions','omit','getActions','pick','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','update','then','error'];(function(_0x599afd,_0x4da0d3){var _0x2b3fe5=function(_0x1ac873){while(--_0x1ac873){_0x599afd['push'](_0x599afd['shift']());}};_0x2b3fe5(++_0x4da0d3);}(_0x177a,0x7b));var _0xa177=function(_0x47985b,_0x2dd54f){_0x47985b=_0x47985b-0x0;var _0x5ea898=_0x177a[_0x47985b];return _0x5ea898;};'use strict';var emlformat=require(_0xa177('0x0'));var rimraf=require(_0xa177('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa177('0x2'));var rp=require(_0xa177('0x3'));var moment=require(_0xa177('0x4'));var BPromise=require(_0xa177('0x5'));var Mustache=require(_0xa177('0x6'));var util=require(_0xa177('0x7'));var path=require(_0xa177('0x8'));var sox=require(_0xa177('0x9'));var csv=require(_0xa177('0xa'));var ejs=require(_0xa177('0xb'));var fs=require('fs');var fs_extra=require(_0xa177('0xc'));var _=require(_0xa177('0xd'));var squel=require(_0xa177('0xe'));var crypto=require('crypto');var jsforce=require(_0xa177('0xf'));var deskjs=require(_0xa177('0x10'));var toCsv=require(_0xa177('0xa'));var querystring=require(_0xa177('0x11'));var Papa=require(_0xa177('0x12'));var Redis=require('ioredis');var authService=require(_0xa177('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xa177('0x14'));var config=require(_0xa177('0x15'));var licenseUtil=require(_0xa177('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2d4c70,_0x2029d7){_0x2029d7=_0x2029d7||0xcc;return function(_0x564670){if(_0x564670){return _0x2d4c70[_0xa177('0x17')](_0x2029d7);}return _0x2d4c70[_0xa177('0x18')](_0x2029d7)[_0xa177('0x19')]();};}function respondWithResult(_0x108c1c,_0x45745c){_0x45745c=_0x45745c||0xc8;return function(_0x46a5a3){if(_0x46a5a3){return _0x108c1c[_0xa177('0x18')](_0x45745c)[_0xa177('0x1a')](_0x46a5a3);}};}function respondWithFilteredResult(_0x45d55c,_0x10b84a){return function(_0x254978){if(_0x254978){var _0x575e81=typeof _0x10b84a[_0xa177('0x1b')]==='undefined'&&typeof _0x10b84a[_0xa177('0x1c')]===_0xa177('0x1d');var _0x2a13e3=_0x254978[_0xa177('0x1e')];var _0x32d113=_0x575e81?0x0:_0x10b84a[_0xa177('0x1b')];var _0x81c596=_0x575e81?_0x254978['count']:_0x10b84a[_0xa177('0x1b')]+_0x10b84a[_0xa177('0x1c')];var _0x4f7848;if(_0x81c596>=_0x2a13e3){_0x81c596=_0x2a13e3;_0x4f7848=0xc8;}else{_0x4f7848=0xce;}_0x45d55c[_0xa177('0x18')](_0x4f7848);return _0x45d55c[_0xa177('0x1f')]('Content-Range',_0x32d113+'-'+_0x81c596+'/'+_0x2a13e3)[_0xa177('0x1a')](_0x254978);}return null;};}function patchUpdates(_0x2b1784){return function(_0x320f7f){try{jsonpatch[_0xa177('0x20')](_0x320f7f,_0x2b1784,!![]);}catch(_0x1b3398){return BPromise[_0xa177('0x21')](_0x1b3398);}return _0x320f7f['save']();};}function saveUpdates(_0x4abc26,_0x50e340){return function(_0x9d51b6){if(_0x9d51b6){return _0x9d51b6[_0xa177('0x22')](_0x4abc26)[_0xa177('0x23')](function(_0x5bb60a){return _0x5bb60a;});}return null;};}function removeEntity(_0x509bd1,_0x5c8931){return function(_0x35d93c){if(_0x35d93c){return _0x35d93c['destroy']()[_0xa177('0x23')](function(){_0x509bd1['status'](0xcc)[_0xa177('0x19')]();});}};}function handleEntityNotFound(_0x1d16f3,_0x103544){return function(_0x5f393d){if(!_0x5f393d){_0x1d16f3[_0xa177('0x17')](0x194);}return _0x5f393d;};}function handleError(_0x252198,_0x522409){_0x522409=_0x522409||0x1f4;return function(_0x2fb908){logger[_0xa177('0x24')](_0x2fb908[_0xa177('0x25')]);if(_0x2fb908[_0xa177('0x26')]){delete _0x2fb908[_0xa177('0x26')];}_0x252198['status'](_0x522409)[_0xa177('0x27')](_0x2fb908);};}exports[_0xa177('0x28')]=function(_0x1a783e,_0x214650){var _0x4e7906={},_0x524e5b={},_0x54aee3={'count':0x0,'rows':[]};var _0x631f9a=_['map'](db[_0xa177('0x29')][_0xa177('0x2a')],function(_0x2f505c){return{'name':_0x2f505c[_0xa177('0x2b')],'type':_0x2f505c['type']['key']};});_0x524e5b[_0xa177('0x2c')]=_[_0xa177('0x2d')](_0x631f9a,'name');_0x524e5b['query']=_[_0xa177('0x2e')](_0x1a783e['query']);_0x524e5b['filters']=_[_0xa177('0x2f')](_0x524e5b['model'],_0x524e5b['query']);_0x4e7906['attributes']=_[_0xa177('0x2f')](_0x524e5b['model'],qs[_0xa177('0x30')](_0x1a783e[_0xa177('0x31')][_0xa177('0x30')]));_0x4e7906[_0xa177('0x32')]=_0x4e7906[_0xa177('0x32')][_0xa177('0x33')]?_0x4e7906[_0xa177('0x32')]:_0x524e5b[_0xa177('0x2c')];if(!_0x1a783e[_0xa177('0x31')][_0xa177('0x34')](_0xa177('0x35'))){_0x4e7906[_0xa177('0x1c')]=qs[_0xa177('0x1c')](_0x1a783e['query'][_0xa177('0x1c')]);_0x4e7906[_0xa177('0x1b')]=qs[_0xa177('0x1b')](_0x1a783e['query'][_0xa177('0x1b')]);}_0x4e7906[_0xa177('0x36')]=qs[_0xa177('0x37')](_0x1a783e[_0xa177('0x31')][_0xa177('0x37')]);_0x4e7906[_0xa177('0x38')]=qs[_0xa177('0x39')](_['pick'](_0x1a783e[_0xa177('0x31')],_0x524e5b[_0xa177('0x39')]),_0x631f9a);if(_0x1a783e[_0xa177('0x31')]['filter']){_0x4e7906[_0xa177('0x38')]=_[_0xa177('0x3a')](_0x4e7906[_0xa177('0x38')],{'$or':_[_0xa177('0x2d')](_0x631f9a,function(_0x4c4f2d){if(_0x4c4f2d['type']!==_0xa177('0x3b')){var _0x5a4156={};_0x5a4156[_0x4c4f2d['name']]={'$like':'%'+_0x1a783e[_0xa177('0x31')][_0xa177('0x3c')]+'%'};return _0x5a4156;}})});}_0x4e7906=_[_0xa177('0x3a')]({},_0x4e7906,_0x1a783e[_0xa177('0x3d')]);var _0x4c6bf2={'where':_0x4e7906[_0xa177('0x38')]};return db[_0xa177('0x29')][_0xa177('0x1e')](_0x4c6bf2)[_0xa177('0x23')](function(_0x245432){_0x54aee3[_0xa177('0x1e')]=_0x245432;if(_0x1a783e[_0xa177('0x31')][_0xa177('0x3e')]){_0x4e7906[_0xa177('0x3f')]=[{'all':!![]}];}return db[_0xa177('0x29')]['findAll'](_0x4e7906);})[_0xa177('0x23')](function(_0x247122){_0x54aee3['rows']=_0x247122;return _0x54aee3;})[_0xa177('0x23')](respondWithFilteredResult(_0x214650,_0x4e7906))[_0xa177('0x40')](handleError(_0x214650,null));};exports['show']=function(_0x3baedf,_0x50cb2d){var _0x16e6e={'raw':![],'where':{'id':_0x3baedf[_0xa177('0x41')]['id']}},_0x43d071={};_0x43d071[_0xa177('0x2c')]=_[_0xa177('0x2e')](db[_0xa177('0x29')][_0xa177('0x2a')]);_0x43d071[_0xa177('0x31')]=_[_0xa177('0x2e')](_0x3baedf[_0xa177('0x31')]);_0x43d071['filters']=_[_0xa177('0x2f')](_0x43d071[_0xa177('0x2c')],_0x43d071[_0xa177('0x31')]);_0x16e6e[_0xa177('0x32')]=_['intersection'](_0x43d071[_0xa177('0x2c')],qs[_0xa177('0x30')](_0x3baedf[_0xa177('0x31')][_0xa177('0x30')]));_0x16e6e['attributes']=_0x16e6e[_0xa177('0x32')][_0xa177('0x33')]?_0x16e6e['attributes']:_0x43d071[_0xa177('0x2c')];if(_0x3baedf[_0xa177('0x31')][_0xa177('0x3e')]){_0x16e6e[_0xa177('0x3f')]=[{'all':!![]}];}_0x16e6e=_[_0xa177('0x3a')]({},_0x16e6e,_0x3baedf['options']);return db[_0xa177('0x29')][_0xa177('0x42')](_0x16e6e)[_0xa177('0x23')](handleEntityNotFound(_0x50cb2d,null))[_0xa177('0x23')](respondWithResult(_0x50cb2d,null))[_0xa177('0x40')](handleError(_0x50cb2d,null));};exports['create']=function(_0x1c794a,_0x58ba87){return db[_0xa177('0x29')][_0xa177('0x43')](_0x1c794a[_0xa177('0x44')],{})[_0xa177('0x23')](respondWithResult(_0x58ba87,0xc9))[_0xa177('0x40')](handleError(_0x58ba87,null));};exports[_0xa177('0x22')]=function(_0x55f44a,_0x13e61e){if(_0x55f44a[_0xa177('0x44')]['id']){delete _0x55f44a[_0xa177('0x44')]['id'];}return db[_0xa177('0x29')][_0xa177('0x42')]({'where':{'id':_0x55f44a[_0xa177('0x41')]['id']}})['then'](handleEntityNotFound(_0x13e61e,null))[_0xa177('0x23')](saveUpdates(_0x55f44a['body'],null))[_0xa177('0x23')](respondWithResult(_0x13e61e,null))[_0xa177('0x40')](handleError(_0x13e61e,null));};exports[_0xa177('0x45')]=function(_0x1f18b4,_0x1d8b40){return db[_0xa177('0x29')][_0xa177('0x42')]({'where':{'id':_0x1f18b4[_0xa177('0x41')]['id']}})[_0xa177('0x23')](handleEntityNotFound(_0x1d8b40,null))[_0xa177('0x23')](removeEntity(_0x1d8b40,null))[_0xa177('0x40')](handleError(_0x1d8b40,null));};exports[_0xa177('0x46')]=function(_0x500b34,_0x177bed,_0x3bc0a9){return db[_0xa177('0x47')]['find']({'where':{'id':_0x500b34[_0xa177('0x41')]['id']}})['then'](handleEntityNotFound(_0x177bed,null))[_0xa177('0x23')](function(_0x13cef5){if(_0x13cef5){return _0x13cef5[_0xa177('0x46')](_0x500b34[_0xa177('0x44')][_0xa177('0x48')],_['omit'](_0x500b34['body'],[_0xa177('0x48'),'id'])||{});}})[_0xa177('0x23')](respondWithResult(_0x177bed,null))[_0xa177('0x40')](handleError(_0x177bed,null));};exports[_0xa177('0x49')]=function(_0x345d15,_0x5bf70c,_0x5e6dcb){var _0x1ab0c7={};var _0x94c51={};var _0x25c121;var _0x3cba49;return db['Automation'][_0xa177('0x4a')]({'where':{'id':_0x345d15['params']['id']}})[_0xa177('0x23')](handleEntityNotFound(_0x5bf70c,null))[_0xa177('0x23')](function(_0x2ed7f3){if(_0x2ed7f3){_0x25c121=_0x2ed7f3;_0x94c51[_0xa177('0x2c')]=_[_0xa177('0x2e')](db[_0xa177('0x47')][_0xa177('0x2a')]);_0x94c51['query']=_[_0xa177('0x2e')](_0x345d15['query']);_0x94c51[_0xa177('0x39')]=_[_0xa177('0x2f')](_0x94c51[_0xa177('0x2c')],_0x94c51[_0xa177('0x31')]);_0x1ab0c7['attributes']=_[_0xa177('0x2f')](_0x94c51[_0xa177('0x2c')],qs[_0xa177('0x30')](_0x345d15[_0xa177('0x31')][_0xa177('0x30')]));_0x1ab0c7[_0xa177('0x32')]=_0x1ab0c7['attributes'][_0xa177('0x33')]?_0x1ab0c7[_0xa177('0x32')]:_0x94c51[_0xa177('0x2c')];_0x1ab0c7[_0xa177('0x36')]=qs[_0xa177('0x37')](_0x345d15['query'][_0xa177('0x37')]);_0x1ab0c7[_0xa177('0x38')]=qs[_0xa177('0x39')](_['pick'](_0x345d15[_0xa177('0x31')],_0x94c51['filters']));if(_0x345d15['query']['filter']){_0x1ab0c7[_0xa177('0x38')]=_['merge'](_0x1ab0c7[_0xa177('0x38')],{'$or':_[_0xa177('0x2d')](_0x1ab0c7[_0xa177('0x32')],function(_0x293db8){var _0x4f0803={};_0x4f0803[_0x293db8]={'$like':'%'+_0x345d15['query'][_0xa177('0x3c')]+'%'};return _0x4f0803;})});}_0x1ab0c7=_[_0xa177('0x3a')]({},_0x1ab0c7,_0x345d15['options']);return _0x25c121[_0xa177('0x49')](_0x1ab0c7);}})['then'](function(_0x156837){if(_0x156837){_0x3cba49=_0x156837['length'];if(!_0x345d15[_0xa177('0x31')][_0xa177('0x34')](_0xa177('0x35'))){_0x1ab0c7[_0xa177('0x1c')]=qs[_0xa177('0x1c')](_0x345d15[_0xa177('0x31')][_0xa177('0x1c')]);_0x1ab0c7[_0xa177('0x1b')]=qs['offset'](_0x345d15[_0xa177('0x31')][_0xa177('0x1b')]);}return _0x25c121[_0xa177('0x49')](_0x1ab0c7);}})[_0xa177('0x23')](function(_0x5bbc29){if(_0x5bbc29){return _0x5bbc29?{'count':_0x3cba49,'rows':_0x5bbc29}:null;}})[_0xa177('0x23')](respondWithResult(_0x5bf70c,null))['catch'](handleError(_0x5bf70c,null));};exports['addActions']=function(_0x502f1d,_0x455a7e,_0x1b84fc){return db[_0xa177('0x4b')][_0xa177('0x42')]({'where':{'id':_0x502f1d[_0xa177('0x41')]['id']}})[_0xa177('0x23')](handleEntityNotFound(_0x455a7e,null))[_0xa177('0x23')](function(_0x37a486){if(_0x37a486){return _0x37a486[_0xa177('0x4c')](_0x502f1d[_0xa177('0x44')][_0xa177('0x48')],_[_0xa177('0x4d')](_0x502f1d[_0xa177('0x44')],['ids','id'])||{});}})[_0xa177('0x23')](respondWithResult(_0x455a7e,null))[_0xa177('0x40')](handleError(_0x455a7e,null));};exports[_0xa177('0x4e')]=function(_0x29cbd3,_0x2c84f3,_0x4aaa00){var _0x1d1178={};var _0x289275={};var _0x59ab8a;var _0x5a6d19;return db[_0xa177('0x29')]['findOne']({'where':{'id':_0x29cbd3['params']['id']}})[_0xa177('0x23')](handleEntityNotFound(_0x2c84f3,null))[_0xa177('0x23')](function(_0x55aee6){if(_0x55aee6){_0x59ab8a=_0x55aee6;_0x289275[_0xa177('0x2c')]=_[_0xa177('0x2e')](db[_0xa177('0x4b')][_0xa177('0x2a')]);_0x289275['query']=_[_0xa177('0x2e')](_0x29cbd3[_0xa177('0x31')]);_0x289275['filters']=_['intersection'](_0x289275[_0xa177('0x2c')],_0x289275[_0xa177('0x31')]);_0x1d1178[_0xa177('0x32')]=_[_0xa177('0x2f')](_0x289275[_0xa177('0x2c')],qs[_0xa177('0x30')](_0x29cbd3['query']['fields']));_0x1d1178[_0xa177('0x32')]=_0x1d1178[_0xa177('0x32')][_0xa177('0x33')]?_0x1d1178[_0xa177('0x32')]:_0x289275['model'];_0x1d1178['order']=qs['sort'](_0x29cbd3['query'][_0xa177('0x37')]);_0x1d1178[_0xa177('0x38')]=qs['filters'](_[_0xa177('0x4f')](_0x29cbd3[_0xa177('0x31')],_0x289275[_0xa177('0x39')]));if(_0x29cbd3['query']['filter']){_0x1d1178[_0xa177('0x38')]=_[_0xa177('0x3a')](_0x1d1178[_0xa177('0x38')],{'$or':_[_0xa177('0x2d')](_0x1d1178['attributes'],function(_0x4a7fdd){var _0x70f326={};_0x70f326[_0x4a7fdd]={'$like':'%'+_0x29cbd3[_0xa177('0x31')][_0xa177('0x3c')]+'%'};return _0x70f326;})});}_0x1d1178=_[_0xa177('0x3a')]({},_0x1d1178,_0x29cbd3[_0xa177('0x3d')]);return _0x59ab8a[_0xa177('0x4e')](_0x1d1178);}})[_0xa177('0x23')](function(_0x4637ad){if(_0x4637ad){_0x5a6d19=_0x4637ad[_0xa177('0x33')];if(!_0x29cbd3[_0xa177('0x31')][_0xa177('0x34')](_0xa177('0x35'))){_0x1d1178['limit']=qs[_0xa177('0x1c')](_0x29cbd3[_0xa177('0x31')][_0xa177('0x1c')]);_0x1d1178[_0xa177('0x1b')]=qs[_0xa177('0x1b')](_0x29cbd3[_0xa177('0x31')][_0xa177('0x1b')]);}return _0x59ab8a[_0xa177('0x4e')](_0x1d1178);}})['then'](function(_0x883fab){if(_0x883fab){return _0x883fab?{'count':_0x5a6d19,'rows':_0x883fab}:null;}})[_0xa177('0x23')](respondWithResult(_0x2c84f3,null))[_0xa177('0x40')](handleError(_0x2c84f3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0150=['request-promise','path','rimraf','../../config/environment','./automation.attributes','define','Automation','tools_automations','util','../../config/logger','api','moment','bluebird'];(function(_0x37bd26,_0x5ad346){var _0xe83dc4=function(_0x1ac229){while(--_0x1ac229){_0x37bd26['push'](_0x37bd26['shift']());}};_0xe83dc4(++_0x5ad346);}(_0x0150,0x1dc));var _0x0015=function(_0x21333b,_0x13c0f1){_0x21333b=_0x21333b-0x0;var _0x14f23b=_0x0150[_0x21333b];return _0x14f23b;};'use strict';var _=require('lodash');var util=require(_0x0015('0x0'));var logger=require(_0x0015('0x1'))(_0x0015('0x2'));var moment=require(_0x0015('0x3'));var BPromise=require(_0x0015('0x4'));var rp=require(_0x0015('0x5'));var fs=require('fs');var path=require(_0x0015('0x6'));var rimraf=require(_0x0015('0x7'));var config=require(_0x0015('0x8'));var attributes=require(_0x0015('0x9'));module['exports']=function(_0x57fdae,_0x5c62d2){return _0x57fdae[_0x0015('0xa')](_0x0015('0xb'),attributes,{'tableName':_0x0015('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x394c=['../../config/environment','./automation.attributes','exports','define','Automation','tools_automations','lodash','util','../../config/logger','moment','request-promise','path','rimraf'];(function(_0x3907f1,_0x20eee7){var _0x37c3ae=function(_0x3a5446){while(--_0x3a5446){_0x3907f1['push'](_0x3907f1['shift']());}};_0x37c3ae(++_0x20eee7);}(_0x394c,0x95));var _0xc394=function(_0x5ebec4,_0x474731){_0x5ebec4=_0x5ebec4-0x0;var _0x3b9d3b=_0x394c[_0x5ebec4];return _0x3b9d3b;};'use strict';var _=require(_0xc394('0x0'));var util=require(_0xc394('0x1'));var logger=require(_0xc394('0x2'))('api');var moment=require(_0xc394('0x3'));var BPromise=require('bluebird');var rp=require(_0xc394('0x4'));var fs=require('fs');var path=require(_0xc394('0x5'));var rimraf=require(_0xc394('0x6'));var config=require(_0xc394('0x7'));var attributes=require(_0xc394('0x8'));module[_0xc394('0x9')]=function(_0x508eff,_0x26c130){return _0x508eff[_0xc394('0xa')](_0xc394('0xb'),attributes,{'tableName':_0xc394('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d0c=['../../config/environment','http','request','then','info','Automation,\x20%s,\x20%s','request\x20sent','debug','Automation,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x5d2fd8,_0x5ddbf2){var _0xa0f408=function(_0x550617){while(--_0x550617){_0x5d2fd8['push'](_0x5d2fd8['shift']());}};_0xa0f408(++_0x5ddbf2);}(_0x6d0c,0x8c));var _0xc6d0=function(_0x8fd988,_0x28ccd9){_0x8fd988=_0x8fd988-0x0;var _0x23d8e7=_0x6d0c[_0x8fd988];return _0x23d8e7;};'use strict';var _=require(_0xc6d0('0x0'));var util=require(_0xc6d0('0x1'));var moment=require(_0xc6d0('0x2'));var BPromise=require(_0xc6d0('0x3'));var rs=require(_0xc6d0('0x4'));var fs=require('fs');var Redis=require(_0xc6d0('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xc6d0('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xc6d0('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0xc6d0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x40ba33,_0xf1bb4f,_0x39e8be){return new BPromise(function(_0xbd2213,_0x1cf577){return client[_0xc6d0('0x9')](_0x40ba33,_0x39e8be)[_0xc6d0('0xa')](function(_0x1452b5){logger[_0xc6d0('0xb')](_0xc6d0('0xc'),_0xf1bb4f,_0xc6d0('0xd'));logger[_0xc6d0('0xe')](_0xc6d0('0xf'),_0xf1bb4f,_0xc6d0('0xd'),JSON[_0xc6d0('0x10')](_0x1452b5));if(_0x1452b5[_0xc6d0('0x11')]){if(_0x1452b5[_0xc6d0('0x11')][_0xc6d0('0x12')]===0x1f4){logger['error']('Automation,\x20%s,\x20%s',_0xf1bb4f,_0x1452b5[_0xc6d0('0x11')][_0xc6d0('0x13')]);return _0x1cf577(_0x1452b5['error'][_0xc6d0('0x13')]);}logger[_0xc6d0('0x11')](_0xc6d0('0xc'),_0xf1bb4f,_0x1452b5['error']['message']);return _0xbd2213(_0x1452b5[_0xc6d0('0x11')][_0xc6d0('0x13')]);}else{logger[_0xc6d0('0xb')]('Automation,\x20%s,\x20%s',_0xf1bb4f,_0xc6d0('0xd'));_0xbd2213(_0x1452b5['result'][_0xc6d0('0x13')]);}})[_0xc6d0('0x14')](function(_0x34ea2f){logger[_0xc6d0('0x11')](_0xc6d0('0xc'),_0xf1bb4f,_0x34ea2f);_0x1cf577(_0x34ea2f);});});}
\ No newline at end of file
+var _0x47c5=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','then','info','Automation,\x20%s,\x20%s','request\x20sent','debug','Automation,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment'];(function(_0x1ae491,_0x5b83b9){var _0x4958a5=function(_0xf0f364){while(--_0xf0f364){_0x1ae491['push'](_0x1ae491['shift']());}};_0x4958a5(++_0x5b83b9);}(_0x47c5,0x165));var _0x547c=function(_0xbe200f,_0x4b50eb){_0xbe200f=_0xbe200f-0x0;var _0x192597=_0x47c5[_0xbe200f];return _0x192597;};'use strict';var _=require(_0x547c('0x0'));var util=require(_0x547c('0x1'));var moment=require(_0x547c('0x2'));var BPromise=require(_0x547c('0x3'));var rs=require(_0x547c('0x4'));var fs=require('fs');var Redis=require(_0x547c('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x547c('0x6'));var logger=require(_0x547c('0x7'))('rpc');var config=require(_0x547c('0x8'));var jayson=require(_0x547c('0x9'));var client=jayson['client'][_0x547c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x439f25,_0x381f2e,_0x10a334){return new BPromise(function(_0x12fb7d,_0x4ef079){return client[_0x547c('0xb')](_0x439f25,_0x10a334)[_0x547c('0xc')](function(_0x10dec9){logger[_0x547c('0xd')](_0x547c('0xe'),_0x381f2e,_0x547c('0xf'));logger[_0x547c('0x10')](_0x547c('0x11'),_0x381f2e,_0x547c('0xf'),JSON[_0x547c('0x12')](_0x10dec9));if(_0x10dec9[_0x547c('0x13')]){if(_0x10dec9['error'][_0x547c('0x14')]===0x1f4){logger[_0x547c('0x13')]('Automation,\x20%s,\x20%s',_0x381f2e,_0x10dec9[_0x547c('0x13')][_0x547c('0x15')]);return _0x4ef079(_0x10dec9[_0x547c('0x13')][_0x547c('0x15')]);}logger[_0x547c('0x13')](_0x547c('0xe'),_0x381f2e,_0x10dec9[_0x547c('0x13')][_0x547c('0x15')]);return _0x12fb7d(_0x10dec9[_0x547c('0x13')][_0x547c('0x15')]);}else{logger[_0x547c('0xd')](_0x547c('0xe'),_0x381f2e,_0x547c('0xf'));_0x12fb7d(_0x10dec9[_0x547c('0x16')][_0x547c('0x15')]);}})[_0x547c('0x17')](function(_0x39498d){logger[_0x547c('0x13')]('Automation,\x20%s,\x20%s',_0x381f2e,_0x39498d);_0x4ef079(_0x39498d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a84=['delete','exports','multer','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./automation.controller','isAuthenticated','index','show','get','/:id/actions','getActions','post','create','/:id/conditions','addConditions','addActions','put','/:id','update'];(function(_0x31c479,_0x303887){var _0x3562b2=function(_0x4ca554){while(--_0x4ca554){_0x31c479['push'](_0x31c479['shift']());}};_0x3562b2(++_0x303887);}(_0x7a84,0x182));var _0x47a8=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7a84[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x47a8('0x0'));var util=require(_0x47a8('0x1'));var path=require(_0x47a8('0x2'));var timeout=require(_0x47a8('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x47a8('0x4'));var interaction=require(_0x47a8('0x5'));var config=require(_0x47a8('0x6'));var controller=require(_0x47a8('0x7'));router['get']('/',auth[_0x47a8('0x8')](),controller[_0x47a8('0x9')]);router['get']('/:id',auth[_0x47a8('0x8')](),controller[_0x47a8('0xa')]);router[_0x47a8('0xb')]('/:id/conditions',auth[_0x47a8('0x8')](),controller['getConditions']);router[_0x47a8('0xb')](_0x47a8('0xc'),auth['isAuthenticated'](),controller[_0x47a8('0xd')]);router[_0x47a8('0xe')]('/',auth[_0x47a8('0x8')](),controller[_0x47a8('0xf')]);router[_0x47a8('0xe')](_0x47a8('0x10'),auth[_0x47a8('0x8')](),controller[_0x47a8('0x11')]);router['post'](_0x47a8('0xc'),auth[_0x47a8('0x8')](),controller[_0x47a8('0x12')]);router[_0x47a8('0x13')](_0x47a8('0x14'),auth[_0x47a8('0x8')](),controller[_0x47a8('0x15')]);router[_0x47a8('0x16')](_0x47a8('0x14'),auth[_0x47a8('0x8')](),controller['destroy']);module[_0x47a8('0x17')]=router;
\ No newline at end of file
+var _0x131a=['update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/conditions','getConditions','getActions','post','addConditions','/:id/actions'];(function(_0x495e9f,_0x1b1d80){var _0xb249d2=function(_0x3db4e4){while(--_0x3db4e4){_0x495e9f['push'](_0x495e9f['shift']());}};_0xb249d2(++_0x1b1d80);}(_0x131a,0x18b));var _0xa131=function(_0x5caf34,_0x3a7aa8){_0x5caf34=_0x5caf34-0x0;var _0x5daf61=_0x131a[_0x5caf34];return _0x5daf61;};'use strict';var multer=require(_0xa131('0x0'));var util=require(_0xa131('0x1'));var path=require(_0xa131('0x2'));var timeout=require(_0xa131('0x3'));var express=require(_0xa131('0x4'));var router=express['Router']();var fs_extra=require(_0xa131('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xa131('0x6'));var config=require(_0xa131('0x7'));var controller=require('./automation.controller');router[_0xa131('0x8')]('/',auth[_0xa131('0x9')](),controller[_0xa131('0xa')]);router[_0xa131('0x8')](_0xa131('0xb'),auth[_0xa131('0x9')](),controller[_0xa131('0xc')]);router[_0xa131('0x8')](_0xa131('0xd'),auth['isAuthenticated'](),controller[_0xa131('0xe')]);router[_0xa131('0x8')]('/:id/actions',auth[_0xa131('0x9')](),controller[_0xa131('0xf')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xa131('0x10')]('/:id/conditions',auth[_0xa131('0x9')](),controller[_0xa131('0x11')]);router['post'](_0xa131('0x12'),auth[_0xa131('0x9')](),controller['addActions']);router['put'](_0xa131('0xb'),auth[_0xa131('0x9')](),controller[_0xa131('0x13')]);router[_0xa131('0x14')](_0xa131('0xb'),auth[_0xa131('0x9')](),controller[_0xa131('0x15')]);module[_0xa131('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f74=['ivr','Active/Disactive\x20Campaign','INTEGER','UNSIGNED','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)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','onlyIfOpen','BOOLEAN','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','sequelize','exports','STRING','name','ENUM'];(function(_0x3a7f1d,_0x2cddbd){var _0x76c5f6=function(_0x44c004){while(--_0x44c004){_0x3a7f1d['push'](_0x3a7f1d['shift']());}};_0x76c5f6(++_0x2cddbd);}(_0x2f74,0xf0));var _0x42f7=function(_0x2612dd,_0x1b3ed){_0x2612dd=_0x2612dd-0x0;var _0x15af02=_0x2f74[_0x2612dd];return _0x15af02;};'use strict';var Sequelize=require(_0x42f7('0x0'));module[_0x42f7('0x1')]={'name':{'type':Sequelize[_0x42f7('0x2')],'unique':_0x42f7('0x3'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0x42f7('0x4')](_0x42f7('0x5')),'allowNull':![],'defaultValue':'ivr'},'description':{'type':Sequelize[_0x42f7('0x2')]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x42f7('0x6')},'limitCalls':{'type':Sequelize[_0x42f7('0x7')](0x4)['UNSIGNED'],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':'Max\x20200\x20calls.'},'dialOriginateCallerIdName':{'type':Sequelize['STRING']},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x42f7('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0x9')},'dialCongestionMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0xa')},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x42f7('0xb')},'dialBusyMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0xc')},'dialBusyRetryFrequency':{'type':Sequelize[_0x42f7('0x7')](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x42f7('0xd')},'dialNoAnswerMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'comment':_0x42f7('0xe')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x42f7('0x7')](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x42f7('0xf')},'dialGlobalMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x42f7('0x10')},'dialTimezone':{'type':Sequelize[_0x42f7('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x42f7('0x2')],'defaultValue':'07:00-22:00,*,*,*'},'dialCheckDuplicateType':{'type':Sequelize[_0x42f7('0x4')]('always','never',_0x42f7('0x11')),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize[_0x42f7('0x12')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x42f7('0x13')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x42f7('0x14')},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x42f7('0x15')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x42f7('0x7')](0x9)[_0x42f7('0x8')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x42f7('0x16')},'dialAMDMinWordLength':{'type':Sequelize[_0x42f7('0x7')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x42f7('0x7')](0x9)[_0x42f7('0x8')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x42f7('0x7')](0x9)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x42f7('0x17')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x42f7('0x7')](0x5)[_0x42f7('0x8')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x42f7('0x18')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x42f7('0x7')](0x9)[_0x42f7('0x8')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x42f7('0x19')},'dialOrderByScheduledAt':{'type':Sequelize[_0x42f7('0x4')](_0x42f7('0x1a'),'ASC'),'defaultValue':_0x42f7('0x1a')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x42f7('0x7')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x42f7('0x1b')},'dialCutDigit':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x42f7('0x1c')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)'},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x42f7('0x7')](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x42f7('0x1d')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0x1e')},'dialDropRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAbandonedMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0x1f')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x42f7('0x7')](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0x20')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x42f7('0x21')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x42f7('0x7')](0x3)[_0x42f7('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x42f7('0x22')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x42f7('0x7')](0x5)[_0x42f7('0x8')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'}};
\ No newline at end of file
+var _0x920c=['#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','exports','STRING','name','ivr','BOOLEAN','UNSIGNED','Max\x20200\x20calls.','INTEGER','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','ENUM','never','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'];(function(_0x2eb4c3,_0xa4e108){var _0x4544f7=function(_0x1b2562){while(--_0x1b2562){_0x2eb4c3['push'](_0x2eb4c3['shift']());}};_0x4544f7(++_0xa4e108);}(_0x920c,0x152));var _0xc920=function(_0x51666b,_0x48e537){_0x51666b=_0x51666b-0x0;var _0x1858fa=_0x920c[_0x51666b];return _0x1858fa;};'use strict';var Sequelize=require('sequelize');module[_0xc920('0x0')]={'name':{'type':Sequelize[_0xc920('0x1')],'unique':_0xc920('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize['ENUM']('ivr'),'allowNull':![],'defaultValue':_0xc920('0x3')},'description':{'type':Sequelize['STRING']},'active':{'type':Sequelize[_0xc920('0x4')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize['INTEGER'](0x4)[_0xc920('0x5')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0xc920('0x6')},'dialOriginateCallerIdName':{'type':Sequelize[_0xc920('0x1')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xc920('0x1')]},'dialOriginateTimeout':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialCongestionMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc920('0x8')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xc920('0x7')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc920('0x9')},'dialBusyMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc920('0xa')},'dialBusyRetryFrequency':{'type':Sequelize[_0xc920('0x7')](0x5)[_0xc920('0x5')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'defaultValue':0x3,'comment':'#NoAnswer\x20Retry\x20(min:1,\x20max:999)'},'dialNoAnswerRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xc920('0xb')},'dialTimezone':{'type':Sequelize[_0xc920('0x1')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0xc920('0x1')],'defaultValue':_0xc920('0xc')},'dialCheckDuplicateType':{'type':Sequelize[_0xc920('0xd')]('always',_0xc920('0xe'),_0xc920('0xf')),'defaultValue':_0xc920('0x10')},'dialAMDActive':{'type':Sequelize[_0xc920('0x4')],'defaultValue':0x0,'comment':_0xc920('0x11')},'dialAMDInitialSilence':{'type':Sequelize[_0xc920('0x7')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0xc920('0x12')},'dialAMDGreeting':{'type':Sequelize[_0xc920('0x7')](0x9)[_0xc920('0x5')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xc920('0x13')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0xc920('0x7')](0x9)[_0xc920('0x5')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xc920('0x14')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xc920('0x7')](0x9)[_0xc920('0x5')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xc920('0x15')},'dialAMDMinWordLength':{'type':Sequelize[_0xc920('0x7')](0x9)[_0xc920('0x5')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0xc920('0x16')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xc920('0x7')](0x9)[_0xc920('0x5')],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize[_0xc920('0x7')](0x5)[_0xc920('0x5')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0xc920('0x17')},'dialAMDMaximumWordLength':{'type':Sequelize['INTEGER'](0x9)[_0xc920('0x5')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xc920('0x18')},'dialOrderByScheduledAt':{'type':Sequelize[_0xc920('0xd')](_0xc920('0x19'),'ASC'),'defaultValue':_0xc920('0x19')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xc920('0x1a')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0xc920('0x5')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xc920('0x1b')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc920('0x1c')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xc920('0x7')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc920('0x1d')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xc920('0x5')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc920('0x1e')},'dialDropRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xc920('0x5')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc920('0x1f')},'dialAbandonedMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc920('0x20')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xc920('0x7')](0x5)[_0xc920('0x5')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc920('0x21')},'dialMachineMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize[_0xc920('0x7')](0x5)[_0xc920('0x5')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc920('0x22')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xc920('0x7')](0x3)[_0xc920('0x5')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xc920('0x23')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0xc920('0x7')](0x5)[_0xc920('0x5')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xc920('0x24')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b2b=['COALESCE(calleridnum,\x27\x27)','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','onlyIfOpen','into','push','sequelize','all','removeLists','getBlackLists','addBlackLists','removeBlackLists','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','get','IvrCampaigns','error','name','send','index','map','rawAttributes','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','type','VIRTUAL','options','Campaign','includeAll','include','rows','show','params','keys','length','find','create','body','user','role','UserProfileSection','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','getHoppers','findOne','CmHopper','nolimit','pick','CampaignId','getHopperHistories','CmHopperHistory','getHopperFinals','CmHopperFinal','findAll','getHopperBlacks','CmHopperBlack','CmList','getLists','addLists','ids','spread','dialCheckDuplicateType','always','insert','cm_hopper','fromQuery','phone','scheduledAt','ContactId','ListId','select','field','NOW()','CmListId','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)'];(function(_0x2d36a6,_0x2f8cd0){var _0x59cec0=function(_0x5a56d0){while(--_0x5a56d0){_0x2d36a6['push'](_0x2d36a6['shift']());}};_0x59cec0(++_0x2f8cd0);}(_0x4b2b,0x1aa));var _0xb4b2=function(_0x46692f,_0x111847){_0x46692f=_0x46692f-0x0;var _0x35f334=_0x4b2b[_0x46692f];return _0x35f334;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb4b2('0x0'));var zipdir=require(_0xb4b2('0x1'));var jsonpatch=require(_0xb4b2('0x2'));var rp=require('request-promise');var moment=require(_0xb4b2('0x3'));var BPromise=require(_0xb4b2('0x4'));var Mustache=require(_0xb4b2('0x5'));var util=require(_0xb4b2('0x6'));var path=require(_0xb4b2('0x7'));var sox=require(_0xb4b2('0x8'));var csv=require('to-csv');var ejs=require(_0xb4b2('0x9'));var fs=require('fs');var fs_extra=require(_0xb4b2('0xa'));var _=require(_0xb4b2('0xb'));var squel=require(_0xb4b2('0xc'));var crypto=require(_0xb4b2('0xd'));var jsforce=require(_0xb4b2('0xe'));var deskjs=require(_0xb4b2('0xf'));var toCsv=require(_0xb4b2('0x10'));var querystring=require(_0xb4b2('0x11'));var Papa=require(_0xb4b2('0x12'));var Redis=require(_0xb4b2('0x13'));var authService=require(_0xb4b2('0x14'));var qs=require(_0xb4b2('0x15'));var as=require(_0xb4b2('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb4b2('0x17'))('api');var utils=require(_0xb4b2('0x18'));var config=require(_0xb4b2('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xb4b2('0x1a'))['db'];function respondWithStatusCode(_0x18544c,_0x3cce11){_0x3cce11=_0x3cce11||0xcc;return function(_0x4b2a2a){if(_0x4b2a2a){return _0x18544c[_0xb4b2('0x1b')](_0x3cce11);}return _0x18544c[_0xb4b2('0x1c')](_0x3cce11)[_0xb4b2('0x1d')]();};}function respondWithResult(_0xbc363,_0x4df51e){_0x4df51e=_0x4df51e||0xc8;return function(_0x4b7fab){if(_0x4b7fab){return _0xbc363['status'](_0x4df51e)[_0xb4b2('0x1e')](_0x4b7fab);}};}function respondWithFilteredResult(_0x5e57c4,_0x257951){return function(_0x281104){if(_0x281104){var _0xca3003=typeof _0x257951[_0xb4b2('0x1f')]===_0xb4b2('0x20')&&typeof _0x257951[_0xb4b2('0x21')]===_0xb4b2('0x20');var _0x4ca210=_0x281104[_0xb4b2('0x22')];var _0x178c41=_0xca3003?0x0:_0x257951[_0xb4b2('0x1f')];var _0x7212d=_0xca3003?_0x281104[_0xb4b2('0x22')]:_0x257951[_0xb4b2('0x1f')]+_0x257951[_0xb4b2('0x21')];var _0x566a06;if(_0x7212d>=_0x4ca210){_0x7212d=_0x4ca210;_0x566a06=0xc8;}else{_0x566a06=0xce;}_0x5e57c4[_0xb4b2('0x1c')](_0x566a06);return _0x5e57c4[_0xb4b2('0x23')]('Content-Range',_0x178c41+'-'+_0x7212d+'/'+_0x4ca210)[_0xb4b2('0x1e')](_0x281104);}return null;};}function patchUpdates(_0x45d29a){return function(_0x24edd9){try{jsonpatch[_0xb4b2('0x24')](_0x24edd9,_0x45d29a,!![]);}catch(_0x607645){return BPromise[_0xb4b2('0x25')](_0x607645);}return _0x24edd9[_0xb4b2('0x26')]();};}function saveUpdates(_0x258afd,_0xa20265){return function(_0x3a0cab){if(_0x3a0cab){return _0x3a0cab[_0xb4b2('0x27')](_0x258afd)[_0xb4b2('0x28')](function(_0x58a008){return _0x58a008;});}return null;};}function removeEntity(_0x724486,_0x4895ac){return function(_0x4cce26){if(_0x4cce26){return _0x4cce26[_0xb4b2('0x29')]()[_0xb4b2('0x28')](function(){var _0x1ac79a=_0x4cce26[_0xb4b2('0x2a')]({'plain':!![]});var _0xa40f0e=_0xb4b2('0x2b');return db['UserProfileResource'][_0xb4b2('0x29')]({'where':{'type':_0xa40f0e,'resourceId':_0x1ac79a['id']}})[_0xb4b2('0x28')](function(){return _0x4cce26;});})[_0xb4b2('0x28')](function(){_0x724486['status'](0xcc)[_0xb4b2('0x1d')]();});}};}function handleEntityNotFound(_0x31a211,_0x2cc042){return function(_0x4285e7){if(!_0x4285e7){_0x31a211[_0xb4b2('0x1b')](0x194);}return _0x4285e7;};}function handleError(_0x483fda,_0x4006a4){_0x4006a4=_0x4006a4||0x1f4;return function(_0xe3e42d){logger[_0xb4b2('0x2c')](_0xe3e42d['stack']);if(_0xe3e42d[_0xb4b2('0x2d')]){delete _0xe3e42d[_0xb4b2('0x2d')];}_0x483fda[_0xb4b2('0x1c')](_0x4006a4)[_0xb4b2('0x2e')](_0xe3e42d);};}exports[_0xb4b2('0x2f')]=function(_0x21b354,_0x1b3ae1){var _0x47e464={},_0x1ae1fa={},_0x804c58={'count':0x0,'rows':[]};var _0x41f7e9=_[_0xb4b2('0x30')](db['Campaign'][_0xb4b2('0x31')],function(_0xac9780){return{'name':_0xac9780['fieldName'],'type':_0xac9780['type'][_0xb4b2('0x32')]};});_0x1ae1fa[_0xb4b2('0x33')]=_['map'](_0x41f7e9,'name');_0x1ae1fa[_0xb4b2('0x34')]=_['keys'](_0x21b354['query']);_0x1ae1fa[_0xb4b2('0x35')]=_[_0xb4b2('0x36')](_0x1ae1fa[_0xb4b2('0x33')],_0x1ae1fa[_0xb4b2('0x34')]);_0x47e464[_0xb4b2('0x37')]=_[_0xb4b2('0x36')](_0x1ae1fa[_0xb4b2('0x33')],qs[_0xb4b2('0x38')](_0x21b354[_0xb4b2('0x34')][_0xb4b2('0x38')]));_0x47e464[_0xb4b2('0x37')]=_0x47e464['attributes']['length']?_0x47e464['attributes']:_0x1ae1fa[_0xb4b2('0x33')];if(!_0x21b354[_0xb4b2('0x34')][_0xb4b2('0x39')]('nolimit')){_0x47e464[_0xb4b2('0x21')]=qs[_0xb4b2('0x21')](_0x21b354['query']['limit']);_0x47e464[_0xb4b2('0x1f')]=qs[_0xb4b2('0x1f')](_0x21b354[_0xb4b2('0x34')][_0xb4b2('0x1f')]);}_0x47e464[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x21b354[_0xb4b2('0x34')]['sort']);_0x47e464[_0xb4b2('0x3c')]=qs['filters'](_['pick'](_0x21b354[_0xb4b2('0x34')],_0x1ae1fa['filters']),_0x41f7e9);if(_0x21b354[_0xb4b2('0x34')][_0xb4b2('0x3d')]){_0x47e464[_0xb4b2('0x3c')]=_[_0xb4b2('0x3e')](_0x47e464[_0xb4b2('0x3c')],{'$or':_[_0xb4b2('0x30')](_0x41f7e9,function(_0x577706){if(_0x577706[_0xb4b2('0x3f')]!==_0xb4b2('0x40')){var _0x5b9d2a={};_0x5b9d2a[_0x577706[_0xb4b2('0x2d')]]={'$like':'%'+_0x21b354[_0xb4b2('0x34')][_0xb4b2('0x3d')]+'%'};return _0x5b9d2a;}})});}_0x47e464=_[_0xb4b2('0x3e')]({},_0x47e464,_0x21b354[_0xb4b2('0x41')]);var _0x314aba={'where':_0x47e464[_0xb4b2('0x3c')]};return db[_0xb4b2('0x42')][_0xb4b2('0x22')](_0x314aba)[_0xb4b2('0x28')](function(_0x5e4464){_0x804c58[_0xb4b2('0x22')]=_0x5e4464;if(_0x21b354[_0xb4b2('0x34')][_0xb4b2('0x43')]){_0x47e464[_0xb4b2('0x44')]=[{'all':!![]}];}return db[_0xb4b2('0x42')]['findAll'](_0x47e464);})['then'](function(_0x4e1207){_0x804c58[_0xb4b2('0x45')]=_0x4e1207;return _0x804c58;})[_0xb4b2('0x28')](respondWithFilteredResult(_0x1b3ae1,_0x47e464))['catch'](handleError(_0x1b3ae1,null));};exports[_0xb4b2('0x46')]=function(_0x4eaa44,_0x1193d9){var _0x26c58d={'raw':![],'where':{'id':_0x4eaa44[_0xb4b2('0x47')]['id']}},_0x58af6b={};_0x58af6b[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db[_0xb4b2('0x42')][_0xb4b2('0x31')]);_0x58af6b[_0xb4b2('0x34')]=_[_0xb4b2('0x48')](_0x4eaa44[_0xb4b2('0x34')]);_0x58af6b['filters']=_[_0xb4b2('0x36')](_0x58af6b[_0xb4b2('0x33')],_0x58af6b[_0xb4b2('0x34')]);_0x26c58d[_0xb4b2('0x37')]=_[_0xb4b2('0x36')](_0x58af6b[_0xb4b2('0x33')],qs[_0xb4b2('0x38')](_0x4eaa44[_0xb4b2('0x34')]['fields']));_0x26c58d['attributes']=_0x26c58d['attributes'][_0xb4b2('0x49')]?_0x26c58d['attributes']:_0x58af6b[_0xb4b2('0x33')];if(_0x4eaa44['query']['includeAll']){_0x26c58d[_0xb4b2('0x44')]=[{'all':!![]}];}_0x26c58d=_['merge']({},_0x26c58d,_0x4eaa44[_0xb4b2('0x41')]);return db[_0xb4b2('0x42')][_0xb4b2('0x4a')](_0x26c58d)[_0xb4b2('0x28')](handleEntityNotFound(_0x1193d9,null))[_0xb4b2('0x28')](respondWithResult(_0x1193d9,null))['catch'](handleError(_0x1193d9,null));};exports[_0xb4b2('0x4b')]=function(_0x4bba3d,_0x5ca95b){return db[_0xb4b2('0x42')]['create'](_0x4bba3d[_0xb4b2('0x4c')],{})[_0xb4b2('0x28')](function(_0x130878){var _0x59b2e7=_0x4bba3d[_0xb4b2('0x4d')]['get']({'plain':!![]});if(!_0x59b2e7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x59b2e7[_0xb4b2('0x4e')]===_0xb4b2('0x4d')){var _0x2087bc=_0x130878['get']({'plain':!![]});var _0x595025=_0xb4b2('0x2b');return db[_0xb4b2('0x4f')][_0xb4b2('0x4a')]({'where':{'name':_0x595025,'userProfileId':_0x59b2e7['userProfileId']},'raw':!![]})[_0xb4b2('0x28')](function(_0x12ec50){if(_0x12ec50&&_0x12ec50[_0xb4b2('0x50')]===0x0){return db['UserProfileResource'][_0xb4b2('0x4b')]({'name':_0x2087bc[_0xb4b2('0x2d')],'resourceId':_0x2087bc['id'],'type':_0x12ec50[_0xb4b2('0x2d')],'sectionId':_0x12ec50['id']},{})[_0xb4b2('0x28')](function(){return _0x130878;});}else{return _0x130878;}})[_0xb4b2('0x51')](function(_0x2962a4){logger[_0xb4b2('0x2c')](_0xb4b2('0x52'),_0x2962a4);throw _0x2962a4;});}return _0x130878;})[_0xb4b2('0x28')](respondWithResult(_0x5ca95b,0xc9))[_0xb4b2('0x51')](handleError(_0x5ca95b,null));};exports[_0xb4b2('0x53')]=function(_0x43bb35,_0x13f4f8){var _0x551b8e={'where':{'id':_0x43bb35['params']['id']}},_0x265584={};_0x265584[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db['Campaign'][_0xb4b2('0x31')]);_0x551b8e[_0xb4b2('0x37')]=_['intersection'](_0x265584[_0xb4b2('0x33')],qs[_0xb4b2('0x38')](_0x43bb35[_0xb4b2('0x34')]['fields']));_0x551b8e['attributes']=_0x551b8e['attributes'][_0xb4b2('0x49')]?_0x551b8e[_0xb4b2('0x37')]:_0x265584[_0xb4b2('0x33')];if(_0x43bb35[_0xb4b2('0x34')][_0xb4b2('0x43')]){_0x551b8e[_0xb4b2('0x44')]=[{'all':!![]}];}_0x551b8e=_[_0xb4b2('0x3e')]({},_0x551b8e,_0x43bb35[_0xb4b2('0x41')]);return db[_0xb4b2('0x42')]['find'](_0x551b8e)['then'](handleEntityNotFound(_0x13f4f8,null))['then'](function(_0x35c73b){if(_0x35c73b){var _0x187530=_0x35c73b[_0xb4b2('0x2a')]({'plain':!![]});_0x187530=qs[_0xb4b2('0x54')](_0x187530,['id',_0xb4b2('0x55'),_0xb4b2('0x56')]);_0x43bb35['body']=_['omit'](_0x43bb35['body'],['id','createdAt','updatedAt']);return db[_0xb4b2('0x42')][_0xb4b2('0x4b')](_[_0xb4b2('0x3e')](_0x187530,_0x43bb35[_0xb4b2('0x4c')]),{'include':_0x43bb35[_0xb4b2('0x34')][_0xb4b2('0x43')]?[{'all':!![]}]:undefined})['then'](function(_0x2fd8c5){var _0x4d73b6=_0x43bb35[_0xb4b2('0x4d')]['get']({'plain':!![]});if(!_0x4d73b6)throw new Error(_0xb4b2('0x57'));if(_0x4d73b6[_0xb4b2('0x4e')]===_0xb4b2('0x4d')){var _0x4d2a10=_0x2fd8c5[_0xb4b2('0x2a')]({'plain':!![]});var _0x2dd401=_0xb4b2('0x2b');return db['UserProfileSection'][_0xb4b2('0x4a')]({'where':{'name':_0x2dd401,'userProfileId':_0x4d73b6['userProfileId']},'raw':!![]})[_0xb4b2('0x28')](function(_0x1f860){if(_0x1f860&&_0x1f860[_0xb4b2('0x50')]===0x0){return db['UserProfileResource'][_0xb4b2('0x4b')]({'name':_0x4d2a10[_0xb4b2('0x2d')],'resourceId':_0x4d2a10['id'],'type':_0x1f860[_0xb4b2('0x2d')],'sectionId':_0x1f860['id']},{})[_0xb4b2('0x28')](function(){return _0x2fd8c5;});}else{return _0x2fd8c5;}})[_0xb4b2('0x51')](function(_0x5c658f){logger[_0xb4b2('0x2c')](_0xb4b2('0x52'),_0x5c658f);throw _0x5c658f;});}return _0x2fd8c5;});}})[_0xb4b2('0x28')](respondWithResult(_0x13f4f8,0xc9))[_0xb4b2('0x51')](handleError(_0x13f4f8,null));};exports[_0xb4b2('0x27')]=function(_0x594e94,_0x59e810){if(_0x594e94[_0xb4b2('0x4c')]['id']){delete _0x594e94[_0xb4b2('0x4c')]['id'];}return db[_0xb4b2('0x42')][_0xb4b2('0x4a')]({'where':{'id':_0x594e94['params']['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x59e810,null))['then'](saveUpdates(_0x594e94[_0xb4b2('0x4c')],null))['then'](respondWithResult(_0x59e810,null))[_0xb4b2('0x51')](handleError(_0x59e810,null));};exports[_0xb4b2('0x29')]=function(_0x1d861d,_0x1754cd){return db[_0xb4b2('0x42')]['find']({'where':{'id':_0x1d861d[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x1754cd,null))[_0xb4b2('0x28')](removeEntity(_0x1754cd,null))['catch'](handleError(_0x1754cd,null));};exports[_0xb4b2('0x58')]=function(_0x410492,_0x5b9c03,_0x2b6cee){var _0x2c1aaf={'raw':!![],'where':{}};var _0x1e3c03={};var _0x505617={'count':0x0,'rows':[]};return db[_0xb4b2('0x42')][_0xb4b2('0x59')]({'where':{'id':_0x410492[_0xb4b2('0x47')]['id']}})['then'](handleEntityNotFound(_0x5b9c03,null))['then'](function(_0x3af7e3){if(_0x3af7e3){_0x1e3c03[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db[_0xb4b2('0x5a')][_0xb4b2('0x31')]);_0x1e3c03[_0xb4b2('0x34')]=_[_0xb4b2('0x48')](_0x410492[_0xb4b2('0x34')]);_0x1e3c03['filters']=_[_0xb4b2('0x36')](_0x1e3c03[_0xb4b2('0x33')],_0x1e3c03[_0xb4b2('0x34')]);_0x2c1aaf[_0xb4b2('0x37')]=_[_0xb4b2('0x36')](_0x1e3c03['model'],qs[_0xb4b2('0x38')](_0x410492[_0xb4b2('0x34')][_0xb4b2('0x38')]));_0x2c1aaf[_0xb4b2('0x37')]=_0x2c1aaf[_0xb4b2('0x37')]['length']?_0x2c1aaf[_0xb4b2('0x37')]:_0x1e3c03['model'];if(!_0x410492[_0xb4b2('0x34')]['hasOwnProperty'](_0xb4b2('0x5b'))){_0x2c1aaf['limit']=qs['limit'](_0x410492['query']['limit']);_0x2c1aaf['offset']=qs[_0xb4b2('0x1f')](_0x410492[_0xb4b2('0x34')]['offset']);}_0x2c1aaf[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x410492['query'][_0xb4b2('0x3b')]);_0x2c1aaf[_0xb4b2('0x3c')]=qs[_0xb4b2('0x35')](_[_0xb4b2('0x5c')](_0x410492['query'],_0x1e3c03['filters']));_0x2c1aaf[_0xb4b2('0x3c')][_0xb4b2('0x5d')]=_0x3af7e3['id'];if(_0x410492[_0xb4b2('0x34')][_0xb4b2('0x3d')]){_0x2c1aaf[_0xb4b2('0x3c')]=_['merge'](_0x2c1aaf['where'],{'$or':_['map'](_0x2c1aaf[_0xb4b2('0x37')],function(_0x3daf96){var _0xbb4b5e={};_0xbb4b5e[_0x3daf96]={'$like':'%'+_0x410492[_0xb4b2('0x34')][_0xb4b2('0x3d')]+'%'};return _0xbb4b5e;})});}_0x2c1aaf=_['merge']({},_0x2c1aaf,_0x410492[_0xb4b2('0x41')]);return db['CmHopper']['count']({'where':_0x2c1aaf[_0xb4b2('0x3c')]})[_0xb4b2('0x28')](function(_0x25e6db){_0x505617[_0xb4b2('0x22')]=_0x25e6db;if(_0x410492['query'][_0xb4b2('0x43')]){_0x2c1aaf[_0xb4b2('0x44')]=[{'all':!![]}];}return db[_0xb4b2('0x5a')]['findAll'](_0x2c1aaf);})['then'](function(_0x431ee7){_0x505617[_0xb4b2('0x45')]=_0x431ee7;return _0x505617;});}})[_0xb4b2('0x28')](respondWithFilteredResult(_0x5b9c03,_0x2c1aaf))['catch'](handleError(_0x5b9c03,null));};exports[_0xb4b2('0x5e')]=function(_0x54660a,_0x5f1490,_0x5c0a7f){var _0x1780bf={'raw':!![],'where':{}};var _0x1bbfc8={};var _0x5b223b={'count':0x0,'rows':[]};return db[_0xb4b2('0x42')][_0xb4b2('0x59')]({'where':{'id':_0x54660a[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x5f1490,null))[_0xb4b2('0x28')](function(_0x50c287){if(_0x50c287){_0x1bbfc8[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db[_0xb4b2('0x5f')][_0xb4b2('0x31')]);_0x1bbfc8[_0xb4b2('0x34')]=_['keys'](_0x54660a[_0xb4b2('0x34')]);_0x1bbfc8[_0xb4b2('0x35')]=_[_0xb4b2('0x36')](_0x1bbfc8[_0xb4b2('0x33')],_0x1bbfc8[_0xb4b2('0x34')]);_0x1780bf['attributes']=_[_0xb4b2('0x36')](_0x1bbfc8[_0xb4b2('0x33')],qs['fields'](_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x38')]));_0x1780bf[_0xb4b2('0x37')]=_0x1780bf[_0xb4b2('0x37')][_0xb4b2('0x49')]?_0x1780bf[_0xb4b2('0x37')]:_0x1bbfc8[_0xb4b2('0x33')];if(!_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x39')](_0xb4b2('0x5b'))){_0x1780bf[_0xb4b2('0x21')]=qs['limit'](_0x54660a[_0xb4b2('0x34')]['limit']);_0x1780bf[_0xb4b2('0x1f')]=qs[_0xb4b2('0x1f')](_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x1f')]);}_0x1780bf[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x3b')]);_0x1780bf[_0xb4b2('0x3c')]=qs[_0xb4b2('0x35')](_[_0xb4b2('0x5c')](_0x54660a[_0xb4b2('0x34')],_0x1bbfc8[_0xb4b2('0x35')]));_0x1780bf[_0xb4b2('0x3c')][_0xb4b2('0x5d')]=_0x50c287['id'];if(_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x3d')]){_0x1780bf[_0xb4b2('0x3c')]=_[_0xb4b2('0x3e')](_0x1780bf['where'],{'$or':_['map'](_0x1780bf[_0xb4b2('0x37')],function(_0x29b600){var _0xae0ca8={};_0xae0ca8[_0x29b600]={'$like':'%'+_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x3d')]+'%'};return _0xae0ca8;})});}_0x1780bf=_[_0xb4b2('0x3e')]({},_0x1780bf,_0x54660a[_0xb4b2('0x41')]);return db[_0xb4b2('0x5f')][_0xb4b2('0x22')]({'where':_0x1780bf[_0xb4b2('0x3c')]})[_0xb4b2('0x28')](function(_0x533106){_0x5b223b[_0xb4b2('0x22')]=_0x533106;if(_0x54660a[_0xb4b2('0x34')][_0xb4b2('0x43')]){_0x1780bf[_0xb4b2('0x44')]=[{'all':!![]}];}return db[_0xb4b2('0x5f')]['findAll'](_0x1780bf);})['then'](function(_0x36cb79){_0x5b223b[_0xb4b2('0x45')]=_0x36cb79;return _0x5b223b;});}})[_0xb4b2('0x28')](respondWithFilteredResult(_0x5f1490,_0x1780bf))[_0xb4b2('0x51')](handleError(_0x5f1490,null));};exports[_0xb4b2('0x60')]=function(_0x35b8b2,_0x3e5aed,_0x178f62){var _0x1c021a={'raw':!![],'where':{}};var _0x539b77={};var _0xa86ec3={'count':0x0,'rows':[]};return db[_0xb4b2('0x42')][_0xb4b2('0x59')]({'where':{'id':_0x35b8b2[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x3e5aed,null))[_0xb4b2('0x28')](function(_0xd3747c){if(_0xd3747c){_0x539b77[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db['CmHopperFinal'][_0xb4b2('0x31')]);_0x539b77[_0xb4b2('0x34')]=_[_0xb4b2('0x48')](_0x35b8b2[_0xb4b2('0x34')]);_0x539b77[_0xb4b2('0x35')]=_['intersection'](_0x539b77[_0xb4b2('0x33')],_0x539b77[_0xb4b2('0x34')]);_0x1c021a[_0xb4b2('0x37')]=_['intersection'](_0x539b77[_0xb4b2('0x33')],qs[_0xb4b2('0x38')](_0x35b8b2[_0xb4b2('0x34')][_0xb4b2('0x38')]));_0x1c021a[_0xb4b2('0x37')]=_0x1c021a[_0xb4b2('0x37')][_0xb4b2('0x49')]?_0x1c021a[_0xb4b2('0x37')]:_0x539b77['model'];if(!_0x35b8b2[_0xb4b2('0x34')]['hasOwnProperty'](_0xb4b2('0x5b'))){_0x1c021a[_0xb4b2('0x21')]=qs[_0xb4b2('0x21')](_0x35b8b2[_0xb4b2('0x34')][_0xb4b2('0x21')]);_0x1c021a[_0xb4b2('0x1f')]=qs[_0xb4b2('0x1f')](_0x35b8b2[_0xb4b2('0x34')][_0xb4b2('0x1f')]);}_0x1c021a[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x35b8b2['query']['sort']);_0x1c021a[_0xb4b2('0x3c')]=qs[_0xb4b2('0x35')](_[_0xb4b2('0x5c')](_0x35b8b2['query'],_0x539b77[_0xb4b2('0x35')]));_0x1c021a['where']['CampaignId']=_0xd3747c['id'];if(_0x35b8b2['query'][_0xb4b2('0x3d')]){_0x1c021a[_0xb4b2('0x3c')]=_[_0xb4b2('0x3e')](_0x1c021a[_0xb4b2('0x3c')],{'$or':_['map'](_0x1c021a[_0xb4b2('0x37')],function(_0x60f926){var _0x366d={};_0x366d[_0x60f926]={'$like':'%'+_0x35b8b2[_0xb4b2('0x34')][_0xb4b2('0x3d')]+'%'};return _0x366d;})});}_0x1c021a=_[_0xb4b2('0x3e')]({},_0x1c021a,_0x35b8b2[_0xb4b2('0x41')]);return db[_0xb4b2('0x61')][_0xb4b2('0x22')]({'where':_0x1c021a[_0xb4b2('0x3c')]})[_0xb4b2('0x28')](function(_0x1f5af8){_0xa86ec3[_0xb4b2('0x22')]=_0x1f5af8;if(_0x35b8b2[_0xb4b2('0x34')][_0xb4b2('0x43')]){_0x1c021a[_0xb4b2('0x44')]=[{'all':!![]}];}return db[_0xb4b2('0x61')][_0xb4b2('0x62')](_0x1c021a);})[_0xb4b2('0x28')](function(_0x4317c5){_0xa86ec3[_0xb4b2('0x45')]=_0x4317c5;return _0xa86ec3;});}})[_0xb4b2('0x28')](respondWithFilteredResult(_0x3e5aed,_0x1c021a))[_0xb4b2('0x51')](handleError(_0x3e5aed,null));};exports[_0xb4b2('0x63')]=function(_0x59562e,_0x4b6902,_0x5a4d53){var _0x537113={'raw':!![],'where':{}};var _0x109ca5={};var _0x477f72={'count':0x0,'rows':[]};return db[_0xb4b2('0x42')][_0xb4b2('0x59')]({'where':{'id':_0x59562e[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x4b6902,null))[_0xb4b2('0x28')](function(_0x1c7465){if(_0x1c7465){_0x109ca5[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db[_0xb4b2('0x64')][_0xb4b2('0x31')]);_0x109ca5[_0xb4b2('0x34')]=_[_0xb4b2('0x48')](_0x59562e[_0xb4b2('0x34')]);_0x109ca5[_0xb4b2('0x35')]=_[_0xb4b2('0x36')](_0x109ca5[_0xb4b2('0x33')],_0x109ca5[_0xb4b2('0x34')]);_0x537113[_0xb4b2('0x37')]=_['intersection'](_0x109ca5[_0xb4b2('0x33')],qs[_0xb4b2('0x38')](_0x59562e[_0xb4b2('0x34')]['fields']));_0x537113[_0xb4b2('0x37')]=_0x537113['attributes'][_0xb4b2('0x49')]?_0x537113['attributes']:_0x109ca5[_0xb4b2('0x33')];if(!_0x59562e['query'][_0xb4b2('0x39')](_0xb4b2('0x5b'))){_0x537113[_0xb4b2('0x21')]=qs[_0xb4b2('0x21')](_0x59562e['query'][_0xb4b2('0x21')]);_0x537113[_0xb4b2('0x1f')]=qs[_0xb4b2('0x1f')](_0x59562e['query']['offset']);}_0x537113[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x59562e[_0xb4b2('0x34')][_0xb4b2('0x3b')]);_0x537113[_0xb4b2('0x3c')]=qs[_0xb4b2('0x35')](_['pick'](_0x59562e[_0xb4b2('0x34')],_0x109ca5[_0xb4b2('0x35')]));_0x537113['where'][_0xb4b2('0x5d')]=_0x1c7465['id'];if(_0x59562e[_0xb4b2('0x34')]['filter']){_0x537113[_0xb4b2('0x3c')]=_[_0xb4b2('0x3e')](_0x537113[_0xb4b2('0x3c')],{'$or':_[_0xb4b2('0x30')](_0x537113[_0xb4b2('0x37')],function(_0x35f683){var _0x2520b6={};_0x2520b6[_0x35f683]={'$like':'%'+_0x59562e['query'][_0xb4b2('0x3d')]+'%'};return _0x2520b6;})});}_0x537113=_['merge']({},_0x537113,_0x59562e[_0xb4b2('0x41')]);return db[_0xb4b2('0x64')][_0xb4b2('0x22')]({'where':_0x537113['where']})[_0xb4b2('0x28')](function(_0x390836){_0x477f72['count']=_0x390836;if(_0x59562e[_0xb4b2('0x34')]['includeAll']){_0x537113[_0xb4b2('0x44')]=[{'all':!![]}];}return db[_0xb4b2('0x64')]['findAll'](_0x537113);})[_0xb4b2('0x28')](function(_0x19665c){_0x477f72[_0xb4b2('0x45')]=_0x19665c;return _0x477f72;});}})[_0xb4b2('0x28')](respondWithFilteredResult(_0x4b6902,_0x537113))[_0xb4b2('0x51')](handleError(_0x4b6902,null));};exports['getLists']=function(_0x7a1d5c,_0x5e69ae,_0x22dec9){var _0x41e258={};var _0x5762d7={};var _0x2886ad;var _0x258fbc;return db[_0xb4b2('0x42')][_0xb4b2('0x59')]({'where':{'id':_0x7a1d5c['params']['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x5e69ae,null))[_0xb4b2('0x28')](function(_0x3d9536){if(_0x3d9536){_0x2886ad=_0x3d9536;_0x5762d7[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db[_0xb4b2('0x65')][_0xb4b2('0x31')]);_0x5762d7[_0xb4b2('0x34')]=_[_0xb4b2('0x48')](_0x7a1d5c[_0xb4b2('0x34')]);_0x5762d7[_0xb4b2('0x35')]=_[_0xb4b2('0x36')](_0x5762d7[_0xb4b2('0x33')],_0x5762d7[_0xb4b2('0x34')]);_0x41e258[_0xb4b2('0x37')]=_['intersection'](_0x5762d7['model'],qs['fields'](_0x7a1d5c['query']['fields']));_0x41e258[_0xb4b2('0x37')]=_0x41e258[_0xb4b2('0x37')]['length']?_0x41e258['attributes']:_0x5762d7[_0xb4b2('0x33')];_0x41e258[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x7a1d5c[_0xb4b2('0x34')][_0xb4b2('0x3b')]);_0x41e258['where']=qs[_0xb4b2('0x35')](_['pick'](_0x7a1d5c[_0xb4b2('0x34')],_0x5762d7['filters']));if(_0x7a1d5c[_0xb4b2('0x34')][_0xb4b2('0x3d')]){_0x41e258[_0xb4b2('0x3c')]=_['merge'](_0x41e258[_0xb4b2('0x3c')],{'$or':_[_0xb4b2('0x30')](_0x41e258[_0xb4b2('0x37')],function(_0x466835){var _0x59a99f={};_0x59a99f[_0x466835]={'$like':'%'+_0x7a1d5c[_0xb4b2('0x34')]['filter']+'%'};return _0x59a99f;})});}_0x41e258=_[_0xb4b2('0x3e')]({},_0x41e258,_0x7a1d5c['options']);return _0x2886ad[_0xb4b2('0x66')](_0x41e258);}})[_0xb4b2('0x28')](function(_0x1967b4){if(_0x1967b4){_0x258fbc=_0x1967b4[_0xb4b2('0x49')];if(!_0x7a1d5c[_0xb4b2('0x34')][_0xb4b2('0x39')](_0xb4b2('0x5b'))){_0x41e258[_0xb4b2('0x21')]=qs[_0xb4b2('0x21')](_0x7a1d5c[_0xb4b2('0x34')]['limit']);_0x41e258['offset']=qs['offset'](_0x7a1d5c[_0xb4b2('0x34')][_0xb4b2('0x1f')]);}return _0x2886ad[_0xb4b2('0x66')](_0x41e258);}})[_0xb4b2('0x28')](function(_0x4aea67){if(_0x4aea67){return _0x4aea67?{'count':_0x258fbc,'rows':_0x4aea67}:null;}})[_0xb4b2('0x28')](respondWithResult(_0x5e69ae,null))[_0xb4b2('0x51')](handleError(_0x5e69ae,null));};exports['addLists']=function(_0x402ad6,_0x1c9281,_0x3e52e1){var _0x236be9,_0x62cff;return db[_0xb4b2('0x42')][_0xb4b2('0x4a')]({'where':{'id':_0x402ad6[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x1c9281,null))['then'](function(_0xadbae4){if(_0xadbae4){_0x62cff=_0xadbae4;return _0xadbae4[_0xb4b2('0x67')](_0x402ad6[_0xb4b2('0x4c')][_0xb4b2('0x68')],_['omit'](_0x402ad6[_0xb4b2('0x4c')],[_0xb4b2('0x68'),'id'])||{});}return null;})[_0xb4b2('0x69')](function(_0x504c81){var _0xf121cf;_0x236be9=_0x504c81||[];var _0x32edde=[];if(_0x504c81){for(var _0x256873=0x0;_0x256873<_0x504c81[_0xb4b2('0x49')];_0x256873+=0x1){var _0x586a35=_0x504c81[_0x256873]['get']({'plain':!![]});_0x62cff['dialCheckDuplicateType']=_0x402ad6[_0xb4b2('0x4c')][_0xb4b2('0x6a')]?_0x402ad6[_0xb4b2('0x4c')][_0xb4b2('0x6a')]:_0x62cff[_0xb4b2('0x6a')];switch(_0x62cff[_0xb4b2('0x6a')]){case _0xb4b2('0x6b'):_0xf121cf=squel[_0xb4b2('0x6c')]()['into'](_0xb4b2('0x6d'))[_0xb4b2('0x6e')]([_0xb4b2('0x6f'),_0xb4b2('0x70'),_0xb4b2('0x71'),_0xb4b2('0x72'),_0xb4b2('0x5d'),_0xb4b2('0x55'),_0xb4b2('0x56')],squel[_0xb4b2('0x73')]()['field'](_0xb4b2('0x6f'),_0xb4b2('0x6f'))[_0xb4b2('0x74')](_0xb4b2('0x75'),_0xb4b2('0x70'))[_0xb4b2('0x74')]('id',_0xb4b2('0x71'))[_0xb4b2('0x74')](_0x586a35[_0xb4b2('0x76')][_0xb4b2('0x77')](),_0xb4b2('0x72'))['field'](_0x402ad6[_0xb4b2('0x47')]['id']['toString'](),_0xb4b2('0x5d'))[_0xb4b2('0x74')](_0xb4b2('0x75'),'createdAt')[_0xb4b2('0x74')]('NOW()',_0xb4b2('0x56'))[_0xb4b2('0x78')](_0xb4b2('0x79'))['where'](_0xb4b2('0x7a'))['where'](_0xb4b2('0x7b'),_0x586a35[_0xb4b2('0x76')]['toString']())[_0xb4b2('0x3c')](_0xb4b2('0x7c'))['where'](_0xb4b2('0x7d'),squel[_0xb4b2('0x73')]()['field'](_0xb4b2('0x7e'))[_0xb4b2('0x78')]('cm_hopper_final')['where'](_0xb4b2('0x7f'),_0x402ad6[_0xb4b2('0x47')]['id'][_0xb4b2('0x77')]()))[_0xb4b2('0x3c')](_0xb4b2('0x7d'),squel[_0xb4b2('0x73')]()['field'](_0xb4b2('0x80'))[_0xb4b2('0x78')]('cm_hopper')[_0xb4b2('0x3c')](_0xb4b2('0x7f'),_0x402ad6[_0xb4b2('0x47')]['id'][_0xb4b2('0x77')]())))['toString']();break;case _0xb4b2('0x81'):_0xf121cf=squel[_0xb4b2('0x6c')]()['into']('cm_hopper')[_0xb4b2('0x6e')]([_0xb4b2('0x6f'),_0xb4b2('0x70'),'ContactId',_0xb4b2('0x72'),'CampaignId',_0xb4b2('0x55'),_0xb4b2('0x56')],squel[_0xb4b2('0x73')]()[_0xb4b2('0x74')](_0xb4b2('0x6f'),'phone')[_0xb4b2('0x74')]('NOW()','scheduledAt')[_0xb4b2('0x74')]('id',_0xb4b2('0x71'))[_0xb4b2('0x74')](_0x586a35[_0xb4b2('0x76')]['toString'](),_0xb4b2('0x72'))[_0xb4b2('0x74')](_0x402ad6['params']['id'][_0xb4b2('0x77')](),'CampaignId')[_0xb4b2('0x74')](_0xb4b2('0x75'),_0xb4b2('0x55'))[_0xb4b2('0x74')](_0xb4b2('0x75'),_0xb4b2('0x56'))[_0xb4b2('0x78')](_0xb4b2('0x79'))['where'](_0xb4b2('0x7a'))[_0xb4b2('0x3c')](_0xb4b2('0x7b'),_0x586a35[_0xb4b2('0x76')][_0xb4b2('0x77')]())['where']('phone\x20IS\x20NOT\x20NULL')['where'](_0xb4b2('0x7d'),squel['select']()[_0xb4b2('0x74')]('COALESCE(phone,\x27\x27)')[_0xb4b2('0x78')](_0xb4b2('0x6d'))[_0xb4b2('0x3c')](_0xb4b2('0x7f'),_0x402ad6[_0xb4b2('0x47')]['id'][_0xb4b2('0x77')]())))[_0xb4b2('0x77')]();break;default:_0xf121cf=squel[_0xb4b2('0x6c')]()[_0xb4b2('0x82')](_0xb4b2('0x6d'))[_0xb4b2('0x6e')]([_0xb4b2('0x6f'),_0xb4b2('0x70'),'ContactId',_0xb4b2('0x72'),'CampaignId',_0xb4b2('0x55'),_0xb4b2('0x56')],squel[_0xb4b2('0x73')]()[_0xb4b2('0x74')](_0xb4b2('0x6f'),_0xb4b2('0x6f'))['field'](_0xb4b2('0x75'),'scheduledAt')[_0xb4b2('0x74')]('id','ContactId')[_0xb4b2('0x74')](_0x586a35[_0xb4b2('0x76')][_0xb4b2('0x77')](),_0xb4b2('0x72'))[_0xb4b2('0x74')](_0x402ad6[_0xb4b2('0x47')]['id'][_0xb4b2('0x77')](),_0xb4b2('0x5d'))[_0xb4b2('0x74')](_0xb4b2('0x75'),_0xb4b2('0x55'))[_0xb4b2('0x74')](_0xb4b2('0x75'),_0xb4b2('0x56'))[_0xb4b2('0x78')](_0xb4b2('0x79'))[_0xb4b2('0x3c')](_0xb4b2('0x7a'))[_0xb4b2('0x3c')](_0xb4b2('0x7b'),_0x586a35[_0xb4b2('0x76')]['toString']())[_0xb4b2('0x3c')](_0xb4b2('0x7c')))[_0xb4b2('0x77')]();}_0x32edde[_0xb4b2('0x83')](db[_0xb4b2('0x84')][_0xb4b2('0x34')](_0xf121cf));}return BPromise[_0xb4b2('0x85')](_0x32edde);}})['then'](function(){return _0x236be9;})['then'](respondWithResult(_0x1c9281,null))[_0xb4b2('0x51')](handleError(_0x1c9281,null));};exports['removeLists']=function(_0x570788,_0x2789c7,_0x5e828e){return db[_0xb4b2('0x42')]['find']({'where':{'id':_0x570788[_0xb4b2('0x47')]['id']}})['then'](handleEntityNotFound(_0x2789c7,null))[_0xb4b2('0x28')](function(_0x313677){if(_0x313677){return _0x313677[_0xb4b2('0x86')](_0x570788[_0xb4b2('0x34')][_0xb4b2('0x68')]);}})[_0xb4b2('0x28')](function(_0x394b63){if(_0x394b63){return db[_0xb4b2('0x5a')][_0xb4b2('0x29')]({'where':{'ListId':_0x570788[_0xb4b2('0x34')][_0xb4b2('0x68')],'CampaignId':_0x570788[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](function(){return _0x394b63;});}})[_0xb4b2('0x28')](respondWithStatusCode(_0x2789c7,null))['catch'](handleError(_0x2789c7,null));};exports[_0xb4b2('0x87')]=function(_0x2c7acf,_0x5edcde,_0x27e1f3){var _0x24bb9c={};var _0x53e536={};var _0x474a70;var _0x245726;return db[_0xb4b2('0x42')][_0xb4b2('0x59')]({'where':{'id':_0x2c7acf[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x5edcde,null))[_0xb4b2('0x28')](function(_0x4087b5){if(_0x4087b5){_0x474a70=_0x4087b5;_0x53e536[_0xb4b2('0x33')]=_[_0xb4b2('0x48')](db[_0xb4b2('0x65')][_0xb4b2('0x31')]);_0x53e536[_0xb4b2('0x34')]=_[_0xb4b2('0x48')](_0x2c7acf[_0xb4b2('0x34')]);_0x53e536[_0xb4b2('0x35')]=_[_0xb4b2('0x36')](_0x53e536[_0xb4b2('0x33')],_0x53e536['query']);_0x24bb9c[_0xb4b2('0x37')]=_['intersection'](_0x53e536['model'],qs[_0xb4b2('0x38')](_0x2c7acf['query'][_0xb4b2('0x38')]));_0x24bb9c['attributes']=_0x24bb9c[_0xb4b2('0x37')][_0xb4b2('0x49')]?_0x24bb9c[_0xb4b2('0x37')]:_0x53e536[_0xb4b2('0x33')];_0x24bb9c[_0xb4b2('0x3a')]=qs[_0xb4b2('0x3b')](_0x2c7acf['query'][_0xb4b2('0x3b')]);_0x24bb9c[_0xb4b2('0x3c')]=qs[_0xb4b2('0x35')](_[_0xb4b2('0x5c')](_0x2c7acf[_0xb4b2('0x34')],_0x53e536['filters']));if(_0x2c7acf[_0xb4b2('0x34')][_0xb4b2('0x3d')]){_0x24bb9c['where']=_[_0xb4b2('0x3e')](_0x24bb9c[_0xb4b2('0x3c')],{'$or':_[_0xb4b2('0x30')](_0x24bb9c['attributes'],function(_0xbfedb2){var _0x35616d={};_0x35616d[_0xbfedb2]={'$like':'%'+_0x2c7acf['query'][_0xb4b2('0x3d')]+'%'};return _0x35616d;})});}_0x24bb9c=_[_0xb4b2('0x3e')]({},_0x24bb9c,_0x2c7acf[_0xb4b2('0x41')]);return _0x474a70[_0xb4b2('0x87')](_0x24bb9c);}})[_0xb4b2('0x28')](function(_0x53fb6f){if(_0x53fb6f){_0x245726=_0x53fb6f[_0xb4b2('0x49')];if(!_0x2c7acf[_0xb4b2('0x34')][_0xb4b2('0x39')](_0xb4b2('0x5b'))){_0x24bb9c[_0xb4b2('0x21')]=qs[_0xb4b2('0x21')](_0x2c7acf[_0xb4b2('0x34')][_0xb4b2('0x21')]);_0x24bb9c[_0xb4b2('0x1f')]=qs['offset'](_0x2c7acf[_0xb4b2('0x34')][_0xb4b2('0x1f')]);}return _0x474a70[_0xb4b2('0x87')](_0x24bb9c);}})[_0xb4b2('0x28')](function(_0x484377){if(_0x484377){return _0x484377?{'count':_0x245726,'rows':_0x484377}:null;}})['then'](respondWithResult(_0x5edcde,null))[_0xb4b2('0x51')](handleError(_0x5edcde,null));};exports[_0xb4b2('0x88')]=function(_0x144c30,_0x2cdc97,_0x27defe){var _0x137440,_0x31d479;return db['Campaign'][_0xb4b2('0x4a')]({'where':{'id':_0x144c30[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x2cdc97,null))[_0xb4b2('0x28')](function(_0x2b8ff8){if(_0x2b8ff8){_0x31d479=_0x2b8ff8;return _0x2b8ff8['addBlackLists'](_0x144c30[_0xb4b2('0x4c')]['ids'],_['omit'](_0x144c30[_0xb4b2('0x4c')],['ids','id'])||{});}return null;})[_0xb4b2('0x69')](function(_0x3a0596){var _0x2aa543;_0x137440=_0x3a0596||[];var _0x2d6f0f=[];if(_0x3a0596){for(var _0x165828=0x0;_0x165828<_0x3a0596[_0xb4b2('0x49')];_0x165828+=0x1){var _0x3ce679=_0x3a0596[_0x165828][_0xb4b2('0x2a')]({'plain':!![]});_0x2aa543=squel[_0xb4b2('0x6c')]()[_0xb4b2('0x82')]('cm_hopper_black')[_0xb4b2('0x6e')]([_0xb4b2('0x6f'),_0xb4b2('0x71'),_0xb4b2('0x72'),'CampaignId',_0xb4b2('0x55'),'updatedAt'],squel['select']()[_0xb4b2('0x74')]('phone','phone')[_0xb4b2('0x74')]('id',_0xb4b2('0x71'))[_0xb4b2('0x74')](_0x3ce679[_0xb4b2('0x76')][_0xb4b2('0x77')](),_0xb4b2('0x72'))[_0xb4b2('0x74')](_0x144c30['params']['id'][_0xb4b2('0x77')](),'CampaignId')[_0xb4b2('0x74')](_0xb4b2('0x75'),'createdAt')[_0xb4b2('0x74')](_0xb4b2('0x75'),_0xb4b2('0x56'))[_0xb4b2('0x78')](_0xb4b2('0x79'))[_0xb4b2('0x3c')](_0xb4b2('0x7a'))['where'](_0xb4b2('0x7b'),_0x3ce679[_0xb4b2('0x76')][_0xb4b2('0x77')]())['where'](_0xb4b2('0x7c')))['toString']();_0x2d6f0f[_0xb4b2('0x83')](db[_0xb4b2('0x84')][_0xb4b2('0x34')](_0x2aa543));}return BPromise[_0xb4b2('0x85')](_0x2d6f0f);}})['then'](function(){return _0x137440;})[_0xb4b2('0x28')](respondWithResult(_0x2cdc97,null))[_0xb4b2('0x51')](handleError(_0x2cdc97,null));};exports[_0xb4b2('0x89')]=function(_0x2eaeb4,_0x2810a4,_0x2acdea){return db[_0xb4b2('0x42')][_0xb4b2('0x4a')]({'where':{'id':_0x2eaeb4[_0xb4b2('0x47')]['id']}})[_0xb4b2('0x28')](handleEntityNotFound(_0x2810a4,null))['then'](function(_0x349a99){if(_0x349a99){return _0x349a99['removeBlackLists'](_0x2eaeb4[_0xb4b2('0x34')]['ids']);}})[_0xb4b2('0x28')](function(_0x2f58f2){if(_0x2f58f2){return db[_0xb4b2('0x64')][_0xb4b2('0x29')]({'where':{'ListId':_0x2eaeb4[_0xb4b2('0x34')][_0xb4b2('0x68')],'CampaignId':_0x2eaeb4['params']['id']}})[_0xb4b2('0x28')](function(){return _0x2f58f2;});}})[_0xb4b2('0x28')](respondWithStatusCode(_0x2810a4,null))['catch'](handleError(_0x2810a4,null));};
\ No newline at end of file
+var _0x3344=['autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','createdAt','updatedAt','params','getHoppers','findOne','CmHopper','nolimit','findAll','getHopperHistories','CmHopperHistory','order','CampaignId','getHopperFinals','CmHopperFinal','CmHopperBlack','CmList','getLists','addLists','ids','omit','spread','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','scheduledAt','ContactId','ListId','select','field','phone','NOW()','CmListId','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','push','sequelize','all','removeLists','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','reject','update','then','IvrCampaigns','UserProfileResource','destroy','stack','name','send','index','map','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','sort','where','pick','filter','merge','type','VIRTUAL','options','Campaign','includeAll','include','rows','catch','rawAttributes','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId'];(function(_0x4a7cad,_0x5b066d){var _0x71954a=function(_0x125f43){while(--_0x125f43){_0x4a7cad['push'](_0x4a7cad['shift']());}};_0x71954a(++_0x5b066d);}(_0x3344,0xc0));var _0x4334=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x3344[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x4334('0x0'));var rimraf=require(_0x4334('0x1'));var zipdir=require(_0x4334('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4334('0x3'));var BPromise=require(_0x4334('0x4'));var Mustache=require('mustache');var util=require(_0x4334('0x5'));var path=require('path');var sox=require(_0x4334('0x6'));var csv=require(_0x4334('0x7'));var ejs=require(_0x4334('0x8'));var fs=require('fs');var fs_extra=require(_0x4334('0x9'));var _=require(_0x4334('0xa'));var squel=require(_0x4334('0xb'));var crypto=require(_0x4334('0xc'));var jsforce=require(_0x4334('0xd'));var deskjs=require(_0x4334('0xe'));var toCsv=require(_0x4334('0x7'));var querystring=require('querystring');var Papa=require(_0x4334('0xf'));var Redis=require(_0x4334('0x10'));var authService=require(_0x4334('0x11'));var qs=require(_0x4334('0x12'));var as=require(_0x4334('0x13'));var hardwareService=require(_0x4334('0x14'));var logger=require(_0x4334('0x15'))(_0x4334('0x16'));var utils=require('../../config/utils');var config=require(_0x4334('0x17'));var licenseUtil=require(_0x4334('0x18'));var db=require(_0x4334('0x19'))['db'];function respondWithStatusCode(_0x2fa953,_0x33ddaa){_0x33ddaa=_0x33ddaa||0xcc;return function(_0x35b28a){if(_0x35b28a){return _0x2fa953[_0x4334('0x1a')](_0x33ddaa);}return _0x2fa953[_0x4334('0x1b')](_0x33ddaa)[_0x4334('0x1c')]();};}function respondWithResult(_0x10d587,_0x44c4ef){_0x44c4ef=_0x44c4ef||0xc8;return function(_0x49a409){if(_0x49a409){return _0x10d587[_0x4334('0x1b')](_0x44c4ef)[_0x4334('0x1d')](_0x49a409);}};}function respondWithFilteredResult(_0x438a83,_0x4db2e1){return function(_0x51d540){if(_0x51d540){var _0x187e8b=typeof _0x4db2e1[_0x4334('0x1e')]===_0x4334('0x1f')&&typeof _0x4db2e1[_0x4334('0x20')]===_0x4334('0x1f');var _0x147d99=_0x51d540[_0x4334('0x21')];var _0x394220=_0x187e8b?0x0:_0x4db2e1[_0x4334('0x1e')];var _0x3a27f5=_0x187e8b?_0x51d540[_0x4334('0x21')]:_0x4db2e1['offset']+_0x4db2e1[_0x4334('0x20')];var _0x27e668;if(_0x3a27f5>=_0x147d99){_0x3a27f5=_0x147d99;_0x27e668=0xc8;}else{_0x27e668=0xce;}_0x438a83[_0x4334('0x1b')](_0x27e668);return _0x438a83['set'](_0x4334('0x22'),_0x394220+'-'+_0x3a27f5+'/'+_0x147d99)[_0x4334('0x1d')](_0x51d540);}return null;};}function patchUpdates(_0x4e38ad){return function(_0x2cb232){try{jsonpatch['apply'](_0x2cb232,_0x4e38ad,!![]);}catch(_0x16e10e){return BPromise[_0x4334('0x23')](_0x16e10e);}return _0x2cb232['save']();};}function saveUpdates(_0x276930,_0x2476b1){return function(_0x502311){if(_0x502311){return _0x502311[_0x4334('0x24')](_0x276930)[_0x4334('0x25')](function(_0x24f0ae){return _0x24f0ae;});}return null;};}function removeEntity(_0x188a44,_0x3094e0){return function(_0x67070a){if(_0x67070a){return _0x67070a['destroy']()[_0x4334('0x25')](function(){var _0x12436a=_0x67070a['get']({'plain':!![]});var _0x3145e3=_0x4334('0x26');return db[_0x4334('0x27')][_0x4334('0x28')]({'where':{'type':_0x3145e3,'resourceId':_0x12436a['id']}})[_0x4334('0x25')](function(){return _0x67070a;});})[_0x4334('0x25')](function(){_0x188a44['status'](0xcc)[_0x4334('0x1c')]();});}};}function handleEntityNotFound(_0x4985a1,_0x5d4786){return function(_0xfd814a){if(!_0xfd814a){_0x4985a1[_0x4334('0x1a')](0x194);}return _0xfd814a;};}function handleError(_0x476255,_0x214048){_0x214048=_0x214048||0x1f4;return function(_0x4be354){logger['error'](_0x4be354[_0x4334('0x29')]);if(_0x4be354[_0x4334('0x2a')]){delete _0x4be354['name'];}_0x476255[_0x4334('0x1b')](_0x214048)[_0x4334('0x2b')](_0x4be354);};}exports[_0x4334('0x2c')]=function(_0x198281,_0x1045c0){var _0x270081={},_0x3f56f4={},_0x396121={'count':0x0,'rows':[]};var _0x5dded8=_[_0x4334('0x2d')](db['Campaign']['rawAttributes'],function(_0x2257f4){return{'name':_0x2257f4[_0x4334('0x2e')],'type':_0x2257f4['type'][_0x4334('0x2f')]};});_0x3f56f4[_0x4334('0x30')]=_[_0x4334('0x2d')](_0x5dded8,_0x4334('0x2a'));_0x3f56f4[_0x4334('0x31')]=_[_0x4334('0x32')](_0x198281[_0x4334('0x31')]);_0x3f56f4[_0x4334('0x33')]=_['intersection'](_0x3f56f4[_0x4334('0x30')],_0x3f56f4[_0x4334('0x31')]);_0x270081['attributes']=_[_0x4334('0x34')](_0x3f56f4[_0x4334('0x30')],qs[_0x4334('0x35')](_0x198281[_0x4334('0x31')][_0x4334('0x35')]));_0x270081[_0x4334('0x36')]=_0x270081[_0x4334('0x36')][_0x4334('0x37')]?_0x270081[_0x4334('0x36')]:_0x3f56f4[_0x4334('0x30')];if(!_0x198281[_0x4334('0x31')][_0x4334('0x38')]('nolimit')){_0x270081['limit']=qs[_0x4334('0x20')](_0x198281[_0x4334('0x31')][_0x4334('0x20')]);_0x270081['offset']=qs[_0x4334('0x1e')](_0x198281['query'][_0x4334('0x1e')]);}_0x270081['order']=qs['sort'](_0x198281[_0x4334('0x31')][_0x4334('0x39')]);_0x270081[_0x4334('0x3a')]=qs['filters'](_[_0x4334('0x3b')](_0x198281[_0x4334('0x31')],_0x3f56f4[_0x4334('0x33')]),_0x5dded8);if(_0x198281[_0x4334('0x31')][_0x4334('0x3c')]){_0x270081[_0x4334('0x3a')]=_[_0x4334('0x3d')](_0x270081[_0x4334('0x3a')],{'$or':_[_0x4334('0x2d')](_0x5dded8,function(_0xf56034){if(_0xf56034[_0x4334('0x3e')]!==_0x4334('0x3f')){var _0x129760={};_0x129760[_0xf56034['name']]={'$like':'%'+_0x198281[_0x4334('0x31')]['filter']+'%'};return _0x129760;}})});}_0x270081=_[_0x4334('0x3d')]({},_0x270081,_0x198281[_0x4334('0x40')]);var _0x36e40b={'where':_0x270081[_0x4334('0x3a')]};return db[_0x4334('0x41')]['count'](_0x36e40b)[_0x4334('0x25')](function(_0x2d927e){_0x396121[_0x4334('0x21')]=_0x2d927e;if(_0x198281[_0x4334('0x31')][_0x4334('0x42')]){_0x270081[_0x4334('0x43')]=[{'all':!![]}];}return db[_0x4334('0x41')]['findAll'](_0x270081);})[_0x4334('0x25')](function(_0x2f69de){_0x396121[_0x4334('0x44')]=_0x2f69de;return _0x396121;})['then'](respondWithFilteredResult(_0x1045c0,_0x270081))[_0x4334('0x45')](handleError(_0x1045c0,null));};exports['show']=function(_0xc2f460,_0x57119f){var _0x5126e9={'raw':![],'where':{'id':_0xc2f460['params']['id']}},_0x2903e7={};_0x2903e7[_0x4334('0x30')]=_['keys'](db['Campaign'][_0x4334('0x46')]);_0x2903e7[_0x4334('0x31')]=_['keys'](_0xc2f460[_0x4334('0x31')]);_0x2903e7[_0x4334('0x33')]=_[_0x4334('0x34')](_0x2903e7[_0x4334('0x30')],_0x2903e7[_0x4334('0x31')]);_0x5126e9[_0x4334('0x36')]=_[_0x4334('0x34')](_0x2903e7[_0x4334('0x30')],qs[_0x4334('0x35')](_0xc2f460[_0x4334('0x31')][_0x4334('0x35')]));_0x5126e9[_0x4334('0x36')]=_0x5126e9[_0x4334('0x36')][_0x4334('0x37')]?_0x5126e9[_0x4334('0x36')]:_0x2903e7[_0x4334('0x30')];if(_0xc2f460[_0x4334('0x31')][_0x4334('0x42')]){_0x5126e9[_0x4334('0x43')]=[{'all':!![]}];}_0x5126e9=_[_0x4334('0x3d')]({},_0x5126e9,_0xc2f460[_0x4334('0x40')]);return db['Campaign'][_0x4334('0x47')](_0x5126e9)[_0x4334('0x25')](handleEntityNotFound(_0x57119f,null))[_0x4334('0x25')](respondWithResult(_0x57119f,null))[_0x4334('0x45')](handleError(_0x57119f,null));};exports[_0x4334('0x48')]=function(_0x455e85,_0x3c4a4c){return db['Campaign']['create'](_0x455e85[_0x4334('0x49')],{})['then'](function(_0x39e2a9){var _0x1ca813=_0x455e85[_0x4334('0x4a')][_0x4334('0x4b')]({'plain':!![]});if(!_0x1ca813)throw new Error(_0x4334('0x4c'));if(_0x1ca813[_0x4334('0x4d')]===_0x4334('0x4a')){var _0xa19d6d=_0x39e2a9[_0x4334('0x4b')]({'plain':!![]});var _0x456117=_0x4334('0x26');return db[_0x4334('0x4e')][_0x4334('0x47')]({'where':{'name':_0x456117,'userProfileId':_0x1ca813[_0x4334('0x4f')]},'raw':!![]})[_0x4334('0x25')](function(_0x1dba40){if(_0x1dba40&&_0x1dba40[_0x4334('0x50')]===0x0){return db[_0x4334('0x27')]['create']({'name':_0xa19d6d[_0x4334('0x2a')],'resourceId':_0xa19d6d['id'],'type':_0x1dba40[_0x4334('0x2a')],'sectionId':_0x1dba40['id']},{})['then'](function(){return _0x39e2a9;});}else{return _0x39e2a9;}})[_0x4334('0x45')](function(_0x52f868){logger[_0x4334('0x51')](_0x4334('0x52'),_0x52f868);throw _0x52f868;});}return _0x39e2a9;})[_0x4334('0x25')](respondWithResult(_0x3c4a4c,0xc9))[_0x4334('0x45')](handleError(_0x3c4a4c,null));};exports['clone']=function(_0x48637f,_0x4d4e22){var _0x19133b={'where':{'id':_0x48637f['params']['id']}},_0x2f9fc4={};_0x2f9fc4[_0x4334('0x30')]=_['keys'](db[_0x4334('0x41')]['rawAttributes']);_0x19133b[_0x4334('0x36')]=_[_0x4334('0x34')](_0x2f9fc4[_0x4334('0x30')],qs['fields'](_0x48637f[_0x4334('0x31')][_0x4334('0x35')]));_0x19133b[_0x4334('0x36')]=_0x19133b[_0x4334('0x36')][_0x4334('0x37')]?_0x19133b['attributes']:_0x2f9fc4[_0x4334('0x30')];if(_0x48637f[_0x4334('0x31')][_0x4334('0x42')]){_0x19133b['include']=[{'all':!![]}];}_0x19133b=_[_0x4334('0x3d')]({},_0x19133b,_0x48637f['options']);return db[_0x4334('0x41')][_0x4334('0x47')](_0x19133b)[_0x4334('0x25')](handleEntityNotFound(_0x4d4e22,null))[_0x4334('0x25')](function(_0x3f8052){if(_0x3f8052){var _0x25c57c=_0x3f8052[_0x4334('0x4b')]({'plain':!![]});_0x25c57c=qs['omit'](_0x25c57c,['id',_0x4334('0x53'),_0x4334('0x54')]);_0x48637f[_0x4334('0x49')]=_['omit'](_0x48637f['body'],['id','createdAt',_0x4334('0x54')]);return db[_0x4334('0x41')]['create'](_['merge'](_0x25c57c,_0x48637f[_0x4334('0x49')]),{'include':_0x48637f[_0x4334('0x31')][_0x4334('0x42')]?[{'all':!![]}]:undefined})[_0x4334('0x25')](function(_0x5aae93){var _0x4593a6=_0x48637f[_0x4334('0x4a')]['get']({'plain':!![]});if(!_0x4593a6)throw new Error(_0x4334('0x4c'));if(_0x4593a6[_0x4334('0x4d')]===_0x4334('0x4a')){var _0x13286c=_0x5aae93[_0x4334('0x4b')]({'plain':!![]});var _0x5fa2ee='IvrCampaigns';return db[_0x4334('0x4e')][_0x4334('0x47')]({'where':{'name':_0x5fa2ee,'userProfileId':_0x4593a6[_0x4334('0x4f')]},'raw':!![]})[_0x4334('0x25')](function(_0x293b67){if(_0x293b67&&_0x293b67[_0x4334('0x50')]===0x0){return db['UserProfileResource'][_0x4334('0x48')]({'name':_0x13286c[_0x4334('0x2a')],'resourceId':_0x13286c['id'],'type':_0x293b67[_0x4334('0x2a')],'sectionId':_0x293b67['id']},{})[_0x4334('0x25')](function(){return _0x5aae93;});}else{return _0x5aae93;}})[_0x4334('0x45')](function(_0x602428){logger[_0x4334('0x51')](_0x4334('0x52'),_0x602428);throw _0x602428;});}return _0x5aae93;});}})[_0x4334('0x25')](respondWithResult(_0x4d4e22,0xc9))[_0x4334('0x45')](handleError(_0x4d4e22,null));};exports['update']=function(_0x4f6231,_0x366d4b){if(_0x4f6231[_0x4334('0x49')]['id']){delete _0x4f6231[_0x4334('0x49')]['id'];}return db['Campaign'][_0x4334('0x47')]({'where':{'id':_0x4f6231[_0x4334('0x55')]['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x366d4b,null))[_0x4334('0x25')](saveUpdates(_0x4f6231[_0x4334('0x49')],null))[_0x4334('0x25')](respondWithResult(_0x366d4b,null))[_0x4334('0x45')](handleError(_0x366d4b,null));};exports['destroy']=function(_0x3d7ac8,_0x2e0130){return db['Campaign']['find']({'where':{'id':_0x3d7ac8[_0x4334('0x55')]['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x2e0130,null))[_0x4334('0x25')](removeEntity(_0x2e0130,null))[_0x4334('0x45')](handleError(_0x2e0130,null));};exports[_0x4334('0x56')]=function(_0x373ca2,_0x14ba06,_0xe9ea08){var _0x3649fb={'raw':!![],'where':{}};var _0x5b5869={};var _0x558b18={'count':0x0,'rows':[]};return db[_0x4334('0x41')][_0x4334('0x57')]({'where':{'id':_0x373ca2[_0x4334('0x55')]['id']}})['then'](handleEntityNotFound(_0x14ba06,null))[_0x4334('0x25')](function(_0x2eadee){if(_0x2eadee){_0x5b5869[_0x4334('0x30')]=_['keys'](db[_0x4334('0x58')]['rawAttributes']);_0x5b5869[_0x4334('0x31')]=_[_0x4334('0x32')](_0x373ca2[_0x4334('0x31')]);_0x5b5869['filters']=_[_0x4334('0x34')](_0x5b5869[_0x4334('0x30')],_0x5b5869[_0x4334('0x31')]);_0x3649fb['attributes']=_[_0x4334('0x34')](_0x5b5869[_0x4334('0x30')],qs[_0x4334('0x35')](_0x373ca2[_0x4334('0x31')]['fields']));_0x3649fb['attributes']=_0x3649fb[_0x4334('0x36')][_0x4334('0x37')]?_0x3649fb[_0x4334('0x36')]:_0x5b5869[_0x4334('0x30')];if(!_0x373ca2[_0x4334('0x31')][_0x4334('0x38')](_0x4334('0x59'))){_0x3649fb[_0x4334('0x20')]=qs['limit'](_0x373ca2[_0x4334('0x31')]['limit']);_0x3649fb[_0x4334('0x1e')]=qs[_0x4334('0x1e')](_0x373ca2[_0x4334('0x31')][_0x4334('0x1e')]);}_0x3649fb['order']=qs['sort'](_0x373ca2[_0x4334('0x31')][_0x4334('0x39')]);_0x3649fb[_0x4334('0x3a')]=qs[_0x4334('0x33')](_[_0x4334('0x3b')](_0x373ca2[_0x4334('0x31')],_0x5b5869[_0x4334('0x33')]));_0x3649fb[_0x4334('0x3a')]['CampaignId']=_0x2eadee['id'];if(_0x373ca2['query'][_0x4334('0x3c')]){_0x3649fb[_0x4334('0x3a')]=_[_0x4334('0x3d')](_0x3649fb[_0x4334('0x3a')],{'$or':_[_0x4334('0x2d')](_0x3649fb[_0x4334('0x36')],function(_0x12917d){var _0x485d11={};_0x485d11[_0x12917d]={'$like':'%'+_0x373ca2[_0x4334('0x31')][_0x4334('0x3c')]+'%'};return _0x485d11;})});}_0x3649fb=_[_0x4334('0x3d')]({},_0x3649fb,_0x373ca2[_0x4334('0x40')]);return db[_0x4334('0x58')][_0x4334('0x21')]({'where':_0x3649fb[_0x4334('0x3a')]})[_0x4334('0x25')](function(_0x1b8920){_0x558b18[_0x4334('0x21')]=_0x1b8920;if(_0x373ca2[_0x4334('0x31')][_0x4334('0x42')]){_0x3649fb[_0x4334('0x43')]=[{'all':!![]}];}return db[_0x4334('0x58')][_0x4334('0x5a')](_0x3649fb);})[_0x4334('0x25')](function(_0x297ec4){_0x558b18[_0x4334('0x44')]=_0x297ec4;return _0x558b18;});}})['then'](respondWithFilteredResult(_0x14ba06,_0x3649fb))[_0x4334('0x45')](handleError(_0x14ba06,null));};exports[_0x4334('0x5b')]=function(_0x4ecc2b,_0xf5b2a4,_0x3cf362){var _0x19b266={'raw':!![],'where':{}};var _0x515b1c={};var _0x2e5be5={'count':0x0,'rows':[]};return db['Campaign'][_0x4334('0x57')]({'where':{'id':_0x4ecc2b[_0x4334('0x55')]['id']}})['then'](handleEntityNotFound(_0xf5b2a4,null))[_0x4334('0x25')](function(_0x3ee005){if(_0x3ee005){_0x515b1c['model']=_[_0x4334('0x32')](db[_0x4334('0x5c')][_0x4334('0x46')]);_0x515b1c[_0x4334('0x31')]=_[_0x4334('0x32')](_0x4ecc2b[_0x4334('0x31')]);_0x515b1c[_0x4334('0x33')]=_['intersection'](_0x515b1c[_0x4334('0x30')],_0x515b1c[_0x4334('0x31')]);_0x19b266[_0x4334('0x36')]=_['intersection'](_0x515b1c[_0x4334('0x30')],qs[_0x4334('0x35')](_0x4ecc2b[_0x4334('0x31')][_0x4334('0x35')]));_0x19b266[_0x4334('0x36')]=_0x19b266[_0x4334('0x36')][_0x4334('0x37')]?_0x19b266[_0x4334('0x36')]:_0x515b1c['model'];if(!_0x4ecc2b[_0x4334('0x31')][_0x4334('0x38')]('nolimit')){_0x19b266['limit']=qs[_0x4334('0x20')](_0x4ecc2b[_0x4334('0x31')][_0x4334('0x20')]);_0x19b266[_0x4334('0x1e')]=qs[_0x4334('0x1e')](_0x4ecc2b['query'][_0x4334('0x1e')]);}_0x19b266[_0x4334('0x5d')]=qs[_0x4334('0x39')](_0x4ecc2b[_0x4334('0x31')][_0x4334('0x39')]);_0x19b266['where']=qs[_0x4334('0x33')](_[_0x4334('0x3b')](_0x4ecc2b[_0x4334('0x31')],_0x515b1c[_0x4334('0x33')]));_0x19b266['where'][_0x4334('0x5e')]=_0x3ee005['id'];if(_0x4ecc2b['query']['filter']){_0x19b266['where']=_[_0x4334('0x3d')](_0x19b266[_0x4334('0x3a')],{'$or':_[_0x4334('0x2d')](_0x19b266['attributes'],function(_0x44536c){var _0x477d09={};_0x477d09[_0x44536c]={'$like':'%'+_0x4ecc2b[_0x4334('0x31')][_0x4334('0x3c')]+'%'};return _0x477d09;})});}_0x19b266=_['merge']({},_0x19b266,_0x4ecc2b[_0x4334('0x40')]);return db[_0x4334('0x5c')][_0x4334('0x21')]({'where':_0x19b266[_0x4334('0x3a')]})['then'](function(_0x3aa774){_0x2e5be5[_0x4334('0x21')]=_0x3aa774;if(_0x4ecc2b[_0x4334('0x31')][_0x4334('0x42')]){_0x19b266['include']=[{'all':!![]}];}return db[_0x4334('0x5c')]['findAll'](_0x19b266);})[_0x4334('0x25')](function(_0x38c622){_0x2e5be5[_0x4334('0x44')]=_0x38c622;return _0x2e5be5;});}})['then'](respondWithFilteredResult(_0xf5b2a4,_0x19b266))[_0x4334('0x45')](handleError(_0xf5b2a4,null));};exports[_0x4334('0x5f')]=function(_0x408508,_0x49c1d0,_0x55034f){var _0x26f96a={'raw':!![],'where':{}};var _0x199954={};var _0x43f4c7={'count':0x0,'rows':[]};return db[_0x4334('0x41')][_0x4334('0x57')]({'where':{'id':_0x408508[_0x4334('0x55')]['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x49c1d0,null))[_0x4334('0x25')](function(_0x4e11b0){if(_0x4e11b0){_0x199954[_0x4334('0x30')]=_[_0x4334('0x32')](db[_0x4334('0x60')][_0x4334('0x46')]);_0x199954[_0x4334('0x31')]=_[_0x4334('0x32')](_0x408508['query']);_0x199954[_0x4334('0x33')]=_[_0x4334('0x34')](_0x199954['model'],_0x199954[_0x4334('0x31')]);_0x26f96a[_0x4334('0x36')]=_[_0x4334('0x34')](_0x199954[_0x4334('0x30')],qs[_0x4334('0x35')](_0x408508[_0x4334('0x31')][_0x4334('0x35')]));_0x26f96a[_0x4334('0x36')]=_0x26f96a[_0x4334('0x36')][_0x4334('0x37')]?_0x26f96a[_0x4334('0x36')]:_0x199954[_0x4334('0x30')];if(!_0x408508[_0x4334('0x31')][_0x4334('0x38')](_0x4334('0x59'))){_0x26f96a['limit']=qs[_0x4334('0x20')](_0x408508[_0x4334('0x31')][_0x4334('0x20')]);_0x26f96a['offset']=qs[_0x4334('0x1e')](_0x408508[_0x4334('0x31')][_0x4334('0x1e')]);}_0x26f96a[_0x4334('0x5d')]=qs['sort'](_0x408508[_0x4334('0x31')][_0x4334('0x39')]);_0x26f96a[_0x4334('0x3a')]=qs[_0x4334('0x33')](_[_0x4334('0x3b')](_0x408508[_0x4334('0x31')],_0x199954[_0x4334('0x33')]));_0x26f96a[_0x4334('0x3a')][_0x4334('0x5e')]=_0x4e11b0['id'];if(_0x408508[_0x4334('0x31')][_0x4334('0x3c')]){_0x26f96a[_0x4334('0x3a')]=_['merge'](_0x26f96a[_0x4334('0x3a')],{'$or':_[_0x4334('0x2d')](_0x26f96a['attributes'],function(_0x454e5b){var _0xa6db1b={};_0xa6db1b[_0x454e5b]={'$like':'%'+_0x408508[_0x4334('0x31')]['filter']+'%'};return _0xa6db1b;})});}_0x26f96a=_[_0x4334('0x3d')]({},_0x26f96a,_0x408508['options']);return db['CmHopperFinal'][_0x4334('0x21')]({'where':_0x26f96a[_0x4334('0x3a')]})[_0x4334('0x25')](function(_0x114436){_0x43f4c7[_0x4334('0x21')]=_0x114436;if(_0x408508[_0x4334('0x31')][_0x4334('0x42')]){_0x26f96a[_0x4334('0x43')]=[{'all':!![]}];}return db[_0x4334('0x60')][_0x4334('0x5a')](_0x26f96a);})['then'](function(_0x330dc0){_0x43f4c7[_0x4334('0x44')]=_0x330dc0;return _0x43f4c7;});}})[_0x4334('0x25')](respondWithFilteredResult(_0x49c1d0,_0x26f96a))['catch'](handleError(_0x49c1d0,null));};exports['getHopperBlacks']=function(_0x437f38,_0x584f6b,_0x59b1dd){var _0x5cb97a={'raw':!![],'where':{}};var _0x2018c7={};var _0x5eaa6d={'count':0x0,'rows':[]};return db['Campaign'][_0x4334('0x57')]({'where':{'id':_0x437f38[_0x4334('0x55')]['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x584f6b,null))[_0x4334('0x25')](function(_0x258aed){if(_0x258aed){_0x2018c7[_0x4334('0x30')]=_[_0x4334('0x32')](db[_0x4334('0x61')][_0x4334('0x46')]);_0x2018c7[_0x4334('0x31')]=_['keys'](_0x437f38[_0x4334('0x31')]);_0x2018c7['filters']=_[_0x4334('0x34')](_0x2018c7[_0x4334('0x30')],_0x2018c7['query']);_0x5cb97a['attributes']=_[_0x4334('0x34')](_0x2018c7['model'],qs['fields'](_0x437f38[_0x4334('0x31')][_0x4334('0x35')]));_0x5cb97a[_0x4334('0x36')]=_0x5cb97a[_0x4334('0x36')][_0x4334('0x37')]?_0x5cb97a[_0x4334('0x36')]:_0x2018c7[_0x4334('0x30')];if(!_0x437f38[_0x4334('0x31')][_0x4334('0x38')](_0x4334('0x59'))){_0x5cb97a[_0x4334('0x20')]=qs['limit'](_0x437f38[_0x4334('0x31')][_0x4334('0x20')]);_0x5cb97a[_0x4334('0x1e')]=qs['offset'](_0x437f38[_0x4334('0x31')][_0x4334('0x1e')]);}_0x5cb97a[_0x4334('0x5d')]=qs[_0x4334('0x39')](_0x437f38['query'][_0x4334('0x39')]);_0x5cb97a['where']=qs[_0x4334('0x33')](_[_0x4334('0x3b')](_0x437f38[_0x4334('0x31')],_0x2018c7['filters']));_0x5cb97a[_0x4334('0x3a')][_0x4334('0x5e')]=_0x258aed['id'];if(_0x437f38['query']['filter']){_0x5cb97a[_0x4334('0x3a')]=_[_0x4334('0x3d')](_0x5cb97a['where'],{'$or':_[_0x4334('0x2d')](_0x5cb97a[_0x4334('0x36')],function(_0x50b54b){var _0x24138b={};_0x24138b[_0x50b54b]={'$like':'%'+_0x437f38[_0x4334('0x31')]['filter']+'%'};return _0x24138b;})});}_0x5cb97a=_[_0x4334('0x3d')]({},_0x5cb97a,_0x437f38[_0x4334('0x40')]);return db['CmHopperBlack']['count']({'where':_0x5cb97a[_0x4334('0x3a')]})[_0x4334('0x25')](function(_0x550fc2){_0x5eaa6d[_0x4334('0x21')]=_0x550fc2;if(_0x437f38[_0x4334('0x31')][_0x4334('0x42')]){_0x5cb97a['include']=[{'all':!![]}];}return db[_0x4334('0x61')][_0x4334('0x5a')](_0x5cb97a);})['then'](function(_0x2f5fa0){_0x5eaa6d['rows']=_0x2f5fa0;return _0x5eaa6d;});}})[_0x4334('0x25')](respondWithFilteredResult(_0x584f6b,_0x5cb97a))['catch'](handleError(_0x584f6b,null));};exports['getLists']=function(_0x54e90b,_0x6918,_0x472c88){var _0x4d514e={};var _0x2203dd={};var _0x113f5f;var _0x292807;return db[_0x4334('0x41')][_0x4334('0x57')]({'where':{'id':_0x54e90b['params']['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x6918,null))['then'](function(_0x347c92){if(_0x347c92){_0x113f5f=_0x347c92;_0x2203dd[_0x4334('0x30')]=_[_0x4334('0x32')](db[_0x4334('0x62')][_0x4334('0x46')]);_0x2203dd['query']=_[_0x4334('0x32')](_0x54e90b[_0x4334('0x31')]);_0x2203dd[_0x4334('0x33')]=_[_0x4334('0x34')](_0x2203dd[_0x4334('0x30')],_0x2203dd[_0x4334('0x31')]);_0x4d514e[_0x4334('0x36')]=_[_0x4334('0x34')](_0x2203dd[_0x4334('0x30')],qs['fields'](_0x54e90b[_0x4334('0x31')][_0x4334('0x35')]));_0x4d514e[_0x4334('0x36')]=_0x4d514e[_0x4334('0x36')][_0x4334('0x37')]?_0x4d514e[_0x4334('0x36')]:_0x2203dd[_0x4334('0x30')];_0x4d514e[_0x4334('0x5d')]=qs[_0x4334('0x39')](_0x54e90b['query'][_0x4334('0x39')]);_0x4d514e[_0x4334('0x3a')]=qs[_0x4334('0x33')](_[_0x4334('0x3b')](_0x54e90b[_0x4334('0x31')],_0x2203dd[_0x4334('0x33')]));if(_0x54e90b[_0x4334('0x31')][_0x4334('0x3c')]){_0x4d514e[_0x4334('0x3a')]=_['merge'](_0x4d514e[_0x4334('0x3a')],{'$or':_['map'](_0x4d514e[_0x4334('0x36')],function(_0xbcf140){var _0x37254d={};_0x37254d[_0xbcf140]={'$like':'%'+_0x54e90b[_0x4334('0x31')][_0x4334('0x3c')]+'%'};return _0x37254d;})});}_0x4d514e=_['merge']({},_0x4d514e,_0x54e90b['options']);return _0x113f5f['getLists'](_0x4d514e);}})[_0x4334('0x25')](function(_0x370301){if(_0x370301){_0x292807=_0x370301['length'];if(!_0x54e90b[_0x4334('0x31')][_0x4334('0x38')]('nolimit')){_0x4d514e[_0x4334('0x20')]=qs[_0x4334('0x20')](_0x54e90b['query']['limit']);_0x4d514e[_0x4334('0x1e')]=qs[_0x4334('0x1e')](_0x54e90b['query']['offset']);}return _0x113f5f[_0x4334('0x63')](_0x4d514e);}})[_0x4334('0x25')](function(_0x1997a5){if(_0x1997a5){return _0x1997a5?{'count':_0x292807,'rows':_0x1997a5}:null;}})[_0x4334('0x25')](respondWithResult(_0x6918,null))[_0x4334('0x45')](handleError(_0x6918,null));};exports[_0x4334('0x64')]=function(_0x1d08d3,_0x5660bc,_0x487121){var _0x32020e,_0xfcabae;return db[_0x4334('0x41')]['find']({'where':{'id':_0x1d08d3['params']['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x5660bc,null))[_0x4334('0x25')](function(_0x2667f9){if(_0x2667f9){_0xfcabae=_0x2667f9;return _0x2667f9[_0x4334('0x64')](_0x1d08d3[_0x4334('0x49')][_0x4334('0x65')],_[_0x4334('0x66')](_0x1d08d3[_0x4334('0x49')],[_0x4334('0x65'),'id'])||{});}return null;})[_0x4334('0x67')](function(_0x507143){var _0x1de504;_0x32020e=_0x507143||[];var _0x31aa31=[];if(_0x507143){for(var _0x2a683f=0x0;_0x2a683f<_0x507143[_0x4334('0x37')];_0x2a683f+=0x1){var _0x72172e=_0x507143[_0x2a683f][_0x4334('0x4b')]({'plain':!![]});_0xfcabae['dialCheckDuplicateType']=_0x1d08d3['body'][_0x4334('0x68')]?_0x1d08d3['body'][_0x4334('0x68')]:_0xfcabae[_0x4334('0x68')];switch(_0xfcabae['dialCheckDuplicateType']){case _0x4334('0x69'):_0x1de504=squel[_0x4334('0x6a')]()[_0x4334('0x6b')](_0x4334('0x6c'))[_0x4334('0x6d')](['phone',_0x4334('0x6e'),_0x4334('0x6f'),_0x4334('0x70'),_0x4334('0x5e'),_0x4334('0x53'),_0x4334('0x54')],squel[_0x4334('0x71')]()[_0x4334('0x72')](_0x4334('0x73'),_0x4334('0x73'))['field'](_0x4334('0x74'),_0x4334('0x6e'))[_0x4334('0x72')]('id',_0x4334('0x6f'))[_0x4334('0x72')](_0x72172e[_0x4334('0x75')][_0x4334('0x76')](),_0x4334('0x70'))[_0x4334('0x72')](_0x1d08d3[_0x4334('0x55')]['id'][_0x4334('0x76')](),_0x4334('0x5e'))[_0x4334('0x72')](_0x4334('0x74'),_0x4334('0x53'))['field'](_0x4334('0x74'),'updatedAt')[_0x4334('0x77')](_0x4334('0x78'))['where'](_0x4334('0x79'))[_0x4334('0x3a')](_0x4334('0x7a'),_0x72172e[_0x4334('0x75')][_0x4334('0x76')]())[_0x4334('0x3a')](_0x4334('0x7b'))[_0x4334('0x3a')](_0x4334('0x7c'),squel[_0x4334('0x71')]()[_0x4334('0x72')](_0x4334('0x7d'))['from']('cm_hopper_final')[_0x4334('0x3a')](_0x4334('0x7e'),_0x1d08d3['params']['id'][_0x4334('0x76')]()))[_0x4334('0x3a')](_0x4334('0x7c'),squel[_0x4334('0x71')]()['field'](_0x4334('0x7f'))[_0x4334('0x77')]('cm_hopper')[_0x4334('0x3a')](_0x4334('0x7e'),_0x1d08d3['params']['id'][_0x4334('0x76')]())))[_0x4334('0x76')]();break;case'onlyIfOpen':_0x1de504=squel['insert']()['into'](_0x4334('0x6c'))[_0x4334('0x6d')](['phone','scheduledAt','ContactId',_0x4334('0x70'),_0x4334('0x5e'),'createdAt',_0x4334('0x54')],squel[_0x4334('0x71')]()[_0x4334('0x72')](_0x4334('0x73'),'phone')[_0x4334('0x72')](_0x4334('0x74'),'scheduledAt')[_0x4334('0x72')]('id',_0x4334('0x6f'))['field'](_0x72172e['CmListId'][_0x4334('0x76')](),_0x4334('0x70'))[_0x4334('0x72')](_0x1d08d3[_0x4334('0x55')]['id']['toString'](),'CampaignId')['field']('NOW()','createdAt')[_0x4334('0x72')](_0x4334('0x74'),_0x4334('0x54'))['from'](_0x4334('0x78'))[_0x4334('0x3a')](_0x4334('0x79'))['where'](_0x4334('0x7a'),_0x72172e[_0x4334('0x75')][_0x4334('0x76')]())[_0x4334('0x3a')](_0x4334('0x7b'))[_0x4334('0x3a')]('phone\x20NOT\x20IN\x20(?)',squel[_0x4334('0x71')]()[_0x4334('0x72')](_0x4334('0x7f'))[_0x4334('0x77')](_0x4334('0x6c'))[_0x4334('0x3a')](_0x4334('0x7e'),_0x1d08d3[_0x4334('0x55')]['id'][_0x4334('0x76')]())))['toString']();break;default:_0x1de504=squel[_0x4334('0x6a')]()[_0x4334('0x6b')](_0x4334('0x6c'))[_0x4334('0x6d')]([_0x4334('0x73'),_0x4334('0x6e'),_0x4334('0x6f'),'ListId',_0x4334('0x5e'),'createdAt',_0x4334('0x54')],squel[_0x4334('0x71')]()[_0x4334('0x72')]('phone',_0x4334('0x73'))[_0x4334('0x72')](_0x4334('0x74'),_0x4334('0x6e'))['field']('id',_0x4334('0x6f'))[_0x4334('0x72')](_0x72172e[_0x4334('0x75')][_0x4334('0x76')](),'ListId')['field'](_0x1d08d3['params']['id'][_0x4334('0x76')](),_0x4334('0x5e'))[_0x4334('0x72')](_0x4334('0x74'),_0x4334('0x53'))['field']('NOW()',_0x4334('0x54'))['from'](_0x4334('0x78'))[_0x4334('0x3a')](_0x4334('0x79'))[_0x4334('0x3a')](_0x4334('0x7a'),_0x72172e[_0x4334('0x75')][_0x4334('0x76')]())[_0x4334('0x3a')](_0x4334('0x7b')))[_0x4334('0x76')]();}_0x31aa31[_0x4334('0x80')](db[_0x4334('0x81')][_0x4334('0x31')](_0x1de504));}return BPromise[_0x4334('0x82')](_0x31aa31);}})[_0x4334('0x25')](function(){return _0x32020e;})[_0x4334('0x25')](respondWithResult(_0x5660bc,null))[_0x4334('0x45')](handleError(_0x5660bc,null));};exports[_0x4334('0x83')]=function(_0x197d7e,_0x5aa0eb,_0xe7df63){return db[_0x4334('0x41')]['find']({'where':{'id':_0x197d7e[_0x4334('0x55')]['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x5aa0eb,null))[_0x4334('0x25')](function(_0x468dd0){if(_0x468dd0){return _0x468dd0[_0x4334('0x83')](_0x197d7e[_0x4334('0x31')]['ids']);}})['then'](function(_0x395c52){if(_0x395c52){return db[_0x4334('0x58')][_0x4334('0x28')]({'where':{'ListId':_0x197d7e['query'][_0x4334('0x65')],'CampaignId':_0x197d7e[_0x4334('0x55')]['id']}})[_0x4334('0x25')](function(){return _0x395c52;});}})[_0x4334('0x25')](respondWithStatusCode(_0x5aa0eb,null))[_0x4334('0x45')](handleError(_0x5aa0eb,null));};exports['getBlackLists']=function(_0x51245f,_0x48f3af,_0x30eb43){var _0x1d4e98={};var _0x57e04d={};var _0x579ff8;var _0x22c255;return db[_0x4334('0x41')][_0x4334('0x57')]({'where':{'id':_0x51245f['params']['id']}})['then'](handleEntityNotFound(_0x48f3af,null))[_0x4334('0x25')](function(_0x3490a1){if(_0x3490a1){_0x579ff8=_0x3490a1;_0x57e04d[_0x4334('0x30')]=_[_0x4334('0x32')](db[_0x4334('0x62')][_0x4334('0x46')]);_0x57e04d['query']=_[_0x4334('0x32')](_0x51245f[_0x4334('0x31')]);_0x57e04d[_0x4334('0x33')]=_['intersection'](_0x57e04d[_0x4334('0x30')],_0x57e04d[_0x4334('0x31')]);_0x1d4e98[_0x4334('0x36')]=_[_0x4334('0x34')](_0x57e04d[_0x4334('0x30')],qs['fields'](_0x51245f[_0x4334('0x31')][_0x4334('0x35')]));_0x1d4e98[_0x4334('0x36')]=_0x1d4e98[_0x4334('0x36')][_0x4334('0x37')]?_0x1d4e98[_0x4334('0x36')]:_0x57e04d[_0x4334('0x30')];_0x1d4e98[_0x4334('0x5d')]=qs['sort'](_0x51245f[_0x4334('0x31')][_0x4334('0x39')]);_0x1d4e98['where']=qs[_0x4334('0x33')](_['pick'](_0x51245f[_0x4334('0x31')],_0x57e04d[_0x4334('0x33')]));if(_0x51245f[_0x4334('0x31')][_0x4334('0x3c')]){_0x1d4e98['where']=_[_0x4334('0x3d')](_0x1d4e98['where'],{'$or':_[_0x4334('0x2d')](_0x1d4e98[_0x4334('0x36')],function(_0x26a45d){var _0x4a9872={};_0x4a9872[_0x26a45d]={'$like':'%'+_0x51245f[_0x4334('0x31')][_0x4334('0x3c')]+'%'};return _0x4a9872;})});}_0x1d4e98=_[_0x4334('0x3d')]({},_0x1d4e98,_0x51245f['options']);return _0x579ff8[_0x4334('0x84')](_0x1d4e98);}})['then'](function(_0x7961a6){if(_0x7961a6){_0x22c255=_0x7961a6['length'];if(!_0x51245f['query'][_0x4334('0x38')](_0x4334('0x59'))){_0x1d4e98[_0x4334('0x20')]=qs[_0x4334('0x20')](_0x51245f[_0x4334('0x31')][_0x4334('0x20')]);_0x1d4e98[_0x4334('0x1e')]=qs[_0x4334('0x1e')](_0x51245f[_0x4334('0x31')][_0x4334('0x1e')]);}return _0x579ff8[_0x4334('0x84')](_0x1d4e98);}})[_0x4334('0x25')](function(_0x272659){if(_0x272659){return _0x272659?{'count':_0x22c255,'rows':_0x272659}:null;}})[_0x4334('0x25')](respondWithResult(_0x48f3af,null))[_0x4334('0x45')](handleError(_0x48f3af,null));};exports[_0x4334('0x85')]=function(_0x83a275,_0x9be36,_0x58af09){var _0x36e47e,_0x41fe52;return db[_0x4334('0x41')][_0x4334('0x47')]({'where':{'id':_0x83a275['params']['id']}})['then'](handleEntityNotFound(_0x9be36,null))['then'](function(_0x4dee4d){if(_0x4dee4d){_0x41fe52=_0x4dee4d;return _0x4dee4d[_0x4334('0x85')](_0x83a275['body'][_0x4334('0x65')],_[_0x4334('0x66')](_0x83a275[_0x4334('0x49')],[_0x4334('0x65'),'id'])||{});}return null;})[_0x4334('0x67')](function(_0x324b93){var _0xdfabf8;_0x36e47e=_0x324b93||[];var _0x20ac64=[];if(_0x324b93){for(var _0x509bcd=0x0;_0x509bcd<_0x324b93[_0x4334('0x37')];_0x509bcd+=0x1){var _0x247f93=_0x324b93[_0x509bcd][_0x4334('0x4b')]({'plain':!![]});_0xdfabf8=squel[_0x4334('0x6a')]()[_0x4334('0x6b')](_0x4334('0x86'))['fromQuery']([_0x4334('0x73'),_0x4334('0x6f'),_0x4334('0x70'),_0x4334('0x5e'),_0x4334('0x53'),_0x4334('0x54')],squel['select']()[_0x4334('0x72')](_0x4334('0x73'),_0x4334('0x73'))[_0x4334('0x72')]('id',_0x4334('0x6f'))[_0x4334('0x72')](_0x247f93[_0x4334('0x75')]['toString'](),'ListId')[_0x4334('0x72')](_0x83a275[_0x4334('0x55')]['id']['toString'](),_0x4334('0x5e'))['field']('NOW()','createdAt')[_0x4334('0x72')]('NOW()','updatedAt')['from']('cm_contacts')[_0x4334('0x3a')](_0x4334('0x79'))[_0x4334('0x3a')](_0x4334('0x7a'),_0x247f93[_0x4334('0x75')]['toString']())['where'](_0x4334('0x7b')))['toString']();_0x20ac64['push'](db[_0x4334('0x81')][_0x4334('0x31')](_0xdfabf8));}return BPromise[_0x4334('0x82')](_0x20ac64);}})[_0x4334('0x25')](function(){return _0x36e47e;})['then'](respondWithResult(_0x9be36,null))[_0x4334('0x45')](handleError(_0x9be36,null));};exports['removeBlackLists']=function(_0x237744,_0x502d59,_0x3f421a){return db[_0x4334('0x41')]['find']({'where':{'id':_0x237744['params']['id']}})[_0x4334('0x25')](handleEntityNotFound(_0x502d59,null))[_0x4334('0x25')](function(_0x4631cc){if(_0x4631cc){return _0x4631cc[_0x4334('0x87')](_0x237744['query']['ids']);}})[_0x4334('0x25')](function(_0x18d7d1){if(_0x18d7d1){return db[_0x4334('0x61')]['destroy']({'where':{'ListId':_0x237744['query']['ids'],'CampaignId':_0x237744[_0x4334('0x55')]['id']}})[_0x4334('0x25')](function(){return _0x18d7d1;});}})[_0x4334('0x25')](respondWithStatusCode(_0x502d59,null))[_0x4334('0x45')](handleError(_0x502d59,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','define','Campaign','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./campaign.attributes'];(function(_0x44bcb0,_0x235aa9){var _0xfaf881=function(_0x25d81d){while(--_0x25d81d){_0x44bcb0['push'](_0x44bcb0['shift']());}};_0xfaf881(++_0x235aa9);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'campaigns','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9957=['exports','define','Campaign','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./campaign.attributes'];(function(_0x1203f,_0x554bbc){var _0x365f0a=function(_0x3531d0){while(--_0x3531d0){_0x1203f['push'](_0x1203f['shift']());}};_0x365f0a(++_0x554bbc);}(_0x9957,0x93));var _0x7995=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x9957[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'campaigns','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x871e=['GetCampaign','Campaign','findAll','options','raw','where','attributes','limit','include','map','model','then','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','Campaign,\x20%s,\x20%s','debug','Campaign,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch'];(function(_0x15b4e6,_0xd32ebe){var _0x4c9002=function(_0x37c157){while(--_0x37c157){_0x15b4e6['push'](_0x15b4e6['shift']());}};_0x4c9002(++_0xd32ebe);}(_0x871e,0x1b0));var _0xe871=function(_0x59cf1a,_0x57932e){_0x59cf1a=_0x59cf1a-0x0;var _0x2e7476=_0x871e[_0x59cf1a];return _0x2e7476;};'use strict';var _=require(_0xe871('0x0'));var util=require('util');var moment=require(_0xe871('0x1'));var BPromise=require(_0xe871('0x2'));var rs=require(_0xe871('0x3'));var fs=require('fs');var Redis=require(_0xe871('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xe871('0x5'));var logger=require(_0xe871('0x6'))(_0xe871('0x7'));var config=require(_0xe871('0x8'));var jayson=require(_0xe871('0x9'));var client=jayson[_0xe871('0xa')][_0xe871('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x13ed0e,_0x289308,_0x1d773f){return new BPromise(function(_0x4cf6af,_0x3bcc75){return client['request'](_0x13ed0e,_0x1d773f)['then'](function(_0x225f5b){logger[_0xe871('0xc')](_0xe871('0xd'),_0x289308,'request\x20sent');logger[_0xe871('0xe')](_0xe871('0xf'),_0x289308,_0xe871('0x10'),JSON[_0xe871('0x11')](_0x225f5b));if(_0x225f5b[_0xe871('0x12')]){if(_0x225f5b[_0xe871('0x12')][_0xe871('0x13')]===0x1f4){logger['error'](_0xe871('0xd'),_0x289308,_0x225f5b[_0xe871('0x12')][_0xe871('0x14')]);return _0x3bcc75(_0x225f5b[_0xe871('0x12')][_0xe871('0x14')]);}logger[_0xe871('0x12')](_0xe871('0xd'),_0x289308,_0x225f5b[_0xe871('0x12')][_0xe871('0x14')]);return _0x4cf6af(_0x225f5b['error'][_0xe871('0x14')]);}else{logger['info']('Campaign,\x20%s,\x20%s',_0x289308,_0xe871('0x10'));_0x4cf6af(_0x225f5b[_0xe871('0x15')][_0xe871('0x14')]);}})[_0xe871('0x16')](function(_0x2288c8){logger[_0xe871('0x12')](_0xe871('0xd'),_0x289308,_0x2288c8);_0x3bcc75(_0x2288c8);});});}exports[_0xe871('0x17')]=function(_0x11ad56){var _0x4d7c98=this;return new Promise(function(_0x31319f,_0x57f15d){return db[_0xe871('0x18')][_0xe871('0x19')]({'raw':_0x11ad56['options']?_0x11ad56[_0xe871('0x1a')][_0xe871('0x1b')]===undefined?!![]:![]:!![],'where':_0x11ad56[_0xe871('0x1a')]?_0x11ad56[_0xe871('0x1a')][_0xe871('0x1c')]||null:null,'attributes':_0x11ad56[_0xe871('0x1a')]?_0x11ad56[_0xe871('0x1a')][_0xe871('0x1d')]||null:null,'limit':_0x11ad56[_0xe871('0x1a')]?_0x11ad56[_0xe871('0x1a')][_0xe871('0x1e')]||null:null,'include':_0x11ad56[_0xe871('0x1a')]?_0x11ad56[_0xe871('0x1a')][_0xe871('0x1f')]?_[_0xe871('0x20')](_0x11ad56[_0xe871('0x1a')][_0xe871('0x1f')],function(_0x45ca0d){return{'model':db[_0x45ca0d[_0xe871('0x21')]],'as':_0x45ca0d['as'],'attributes':_0x45ca0d[_0xe871('0x1d')],'include':_0x45ca0d[_0xe871('0x1f')]?_[_0xe871('0x20')](_0x45ca0d[_0xe871('0x1f')],function(_0x416589){return{'model':db[_0x416589[_0xe871('0x21')]],'as':_0x416589['as'],'attributes':_0x416589[_0xe871('0x1d')],'include':_0x416589['include']?_['map'](_0x416589['include'],function(_0x469b45){return{'model':db[_0x469b45[_0xe871('0x21')]],'as':_0x469b45['as'],'attributes':_0x469b45[_0xe871('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xe871('0x22')](function(_0x5dfb27){logger[_0xe871('0xc')]('GetCampaign',_0x11ad56);logger['debug']('GetCampaign',_0x11ad56,JSON[_0xe871('0x11')](_0x5dfb27));_0x31319f(_0x5dfb27);})[_0xe871('0x16')](function(_0x2bfab3){logger[_0xe871('0x12')](_0xe871('0x17'),_0x2bfab3[_0xe871('0x14')],_0x11ad56);_0x57f15d(_0x4d7c98[_0xe871('0x12')](0x1f4,_0x2bfab3[_0xe871('0x14')]));});});};
\ No newline at end of file
+var _0x81a4=['raw','attributes','limit','include','map','model','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','Campaign,\x20%s,\x20%s','request\x20sent','debug','Campaign,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','GetCampaign','Campaign','options'];(function(_0x81e6e2,_0x3565ca){var _0x56bb71=function(_0x49c2b7){while(--_0x49c2b7){_0x81e6e2['push'](_0x81e6e2['shift']());}};_0x56bb71(++_0x3565ca);}(_0x81a4,0x1a6));var _0x481a=function(_0x2675da,_0x5a250e){_0x2675da=_0x2675da-0x0;var _0x5e6153=_0x81a4[_0x2675da];return _0x5e6153;};'use strict';var _=require(_0x481a('0x0'));var util=require(_0x481a('0x1'));var moment=require(_0x481a('0x2'));var BPromise=require(_0x481a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x481a('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x481a('0x5'));var logger=require(_0x481a('0x6'))(_0x481a('0x7'));var config=require('../../config/environment');var jayson=require(_0x481a('0x8'));var client=jayson[_0x481a('0x9')][_0x481a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x14b819,_0x4a5a92,_0x13ed10){return new BPromise(function(_0x13b771,_0x9b7dd5){return client[_0x481a('0xb')](_0x14b819,_0x13ed10)[_0x481a('0xc')](function(_0x59580e){logger['info'](_0x481a('0xd'),_0x4a5a92,_0x481a('0xe'));logger[_0x481a('0xf')](_0x481a('0x10'),_0x4a5a92,_0x481a('0xe'),JSON[_0x481a('0x11')](_0x59580e));if(_0x59580e[_0x481a('0x12')]){if(_0x59580e[_0x481a('0x12')][_0x481a('0x13')]===0x1f4){logger[_0x481a('0x12')]('Campaign,\x20%s,\x20%s',_0x4a5a92,_0x59580e['error'][_0x481a('0x14')]);return _0x9b7dd5(_0x59580e[_0x481a('0x12')][_0x481a('0x14')]);}logger[_0x481a('0x12')](_0x481a('0xd'),_0x4a5a92,_0x59580e[_0x481a('0x12')]['message']);return _0x13b771(_0x59580e[_0x481a('0x12')]['message']);}else{logger[_0x481a('0x15')](_0x481a('0xd'),_0x4a5a92,_0x481a('0xe'));_0x13b771(_0x59580e['result']['message']);}})[_0x481a('0x16')](function(_0xa5746f){logger[_0x481a('0x12')](_0x481a('0xd'),_0x4a5a92,_0xa5746f);_0x9b7dd5(_0xa5746f);});});}exports[_0x481a('0x17')]=function(_0x3186e3){var _0xe4e8fe=this;return new Promise(function(_0x2e6d4e,_0x38c15e){return db[_0x481a('0x18')]['findAll']({'raw':_0x3186e3[_0x481a('0x19')]?_0x3186e3[_0x481a('0x19')][_0x481a('0x1a')]===undefined?!![]:![]:!![],'where':_0x3186e3[_0x481a('0x19')]?_0x3186e3[_0x481a('0x19')]['where']||null:null,'attributes':_0x3186e3[_0x481a('0x19')]?_0x3186e3[_0x481a('0x19')][_0x481a('0x1b')]||null:null,'limit':_0x3186e3[_0x481a('0x19')]?_0x3186e3['options'][_0x481a('0x1c')]||null:null,'include':_0x3186e3[_0x481a('0x19')]?_0x3186e3[_0x481a('0x19')][_0x481a('0x1d')]?_[_0x481a('0x1e')](_0x3186e3[_0x481a('0x19')][_0x481a('0x1d')],function(_0x6a554b){return{'model':db[_0x6a554b['model']],'as':_0x6a554b['as'],'attributes':_0x6a554b[_0x481a('0x1b')],'include':_0x6a554b[_0x481a('0x1d')]?_['map'](_0x6a554b[_0x481a('0x1d')],function(_0x4916fa){return{'model':db[_0x4916fa[_0x481a('0x1f')]],'as':_0x4916fa['as'],'attributes':_0x4916fa[_0x481a('0x1b')],'include':_0x4916fa[_0x481a('0x1d')]?_[_0x481a('0x1e')](_0x4916fa['include'],function(_0x42acf4){return{'model':db[_0x42acf4[_0x481a('0x1f')]],'as':_0x42acf4['as'],'attributes':_0x42acf4[_0x481a('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x481a('0xc')](function(_0x20aeb5){logger[_0x481a('0x15')]('GetCampaign',_0x3186e3);logger[_0x481a('0xf')](_0x481a('0x17'),_0x3186e3,JSON[_0x481a('0x11')](_0x20aeb5));_0x2e6d4e(_0x20aeb5);})[_0x481a('0x16')](function(_0x4e9d26){logger[_0x481a('0x12')](_0x481a('0x17'),_0x4e9d26[_0x481a('0x14')],_0x3186e3);_0x38c15e(_0xe4e8fe[_0x481a('0x12')](0x1f4,_0x4e9d26['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a9a=['delete','destroy','/:id/lists','removeBlackLists','exports','util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./campaign.controller','get','index','isAuthenticated','show','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','getHopperFinals','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','clone','put','/:id','update'];(function(_0x16ec37,_0x2a317c){var _0x311df8=function(_0x1ac079){while(--_0x1ac079){_0x16ec37['push'](_0x16ec37['shift']());}};_0x311df8(++_0x2a317c);}(_0x5a9a,0x85));var _0xa5a9=function(_0x2aa133,_0x3e4e25){_0x2aa133=_0x2aa133-0x0;var _0x4716a4=_0x5a9a[_0x2aa133];return _0x4716a4;};'use strict';var multer=require('multer');var util=require(_0xa5a9('0x0'));var path=require(_0xa5a9('0x1'));var timeout=require('connect-timeout');var express=require(_0xa5a9('0x2'));var router=express[_0xa5a9('0x3')]();var fs_extra=require(_0xa5a9('0x4'));var auth=require(_0xa5a9('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xa5a9('0x6'));var controller=require(_0xa5a9('0x7'));router[_0xa5a9('0x8')]('/',auth['isAuthenticated'](),controller[_0xa5a9('0x9')]);router[_0xa5a9('0x8')]('/:id',auth[_0xa5a9('0xa')](),controller[_0xa5a9('0xb')]);router[_0xa5a9('0x8')](_0xa5a9('0xc'),auth[_0xa5a9('0xa')](),controller[_0xa5a9('0xd')]);router[_0xa5a9('0x8')](_0xa5a9('0xe'),auth[_0xa5a9('0xa')](),controller[_0xa5a9('0xf')]);router[_0xa5a9('0x8')]('/:id/hopper_finals',auth[_0xa5a9('0xa')](),controller[_0xa5a9('0x10')]);router[_0xa5a9('0x8')]('/:id/hopper_black',auth['isAuthenticated'](),controller['getHopperBlacks']);router[_0xa5a9('0x8')]('/:id/lists',auth[_0xa5a9('0xa')](),controller[_0xa5a9('0x11')]);router['get'](_0xa5a9('0x12'),auth[_0xa5a9('0xa')](),controller[_0xa5a9('0x13')]);router[_0xa5a9('0x14')]('/',auth[_0xa5a9('0xa')](),controller[_0xa5a9('0x15')]);router[_0xa5a9('0x14')](_0xa5a9('0x16'),auth['isAuthenticated'](),controller[_0xa5a9('0x17')]);router[_0xa5a9('0x14')]('/:id/lists',auth[_0xa5a9('0xa')](),controller['addLists']);router['post'](_0xa5a9('0x12'),auth[_0xa5a9('0xa')](),controller['addBlackLists']);router[_0xa5a9('0x18')](_0xa5a9('0x19'),auth['isAuthenticated'](),controller[_0xa5a9('0x1a')]);router[_0xa5a9('0x1b')](_0xa5a9('0x19'),auth[_0xa5a9('0xa')](),controller[_0xa5a9('0x1c')]);router[_0xa5a9('0x1b')](_0xa5a9('0x1d'),auth['isAuthenticated'](),controller['removeLists']);router[_0xa5a9('0x1b')](_0xa5a9('0x12'),auth[_0xa5a9('0xa')](),controller[_0xa5a9('0x1e')]);module[_0xa5a9('0x1f')]=router;
\ No newline at end of file
+var _0x188e=['addLists','addBlackLists','put','update','destroy','delete','removeLists','exports','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./campaign.controller','isAuthenticated','index','get','/:id','show','getHoppers','/:id/hopper_histories','getHopperHistories','getHopperFinals','getHopperBlacks','/:id/lists','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','clone'];(function(_0x560759,_0x232877){var _0x433d61=function(_0x107e35){while(--_0x107e35){_0x560759['push'](_0x560759['shift']());}};_0x433d61(++_0x232877);}(_0x188e,0x1cf));var _0xe188=function(_0x481705,_0x4f9d21){_0x481705=_0x481705-0x0;var _0x35524c=_0x188e[_0x481705];return _0x35524c;};'use strict';var multer=require('multer');var util=require(_0xe188('0x0'));var path=require(_0xe188('0x1'));var timeout=require('connect-timeout');var express=require(_0xe188('0x2'));var router=express[_0xe188('0x3')]();var fs_extra=require(_0xe188('0x4'));var auth=require(_0xe188('0x5'));var interaction=require(_0xe188('0x6'));var config=require(_0xe188('0x7'));var controller=require(_0xe188('0x8'));router['get']('/',auth[_0xe188('0x9')](),controller[_0xe188('0xa')]);router[_0xe188('0xb')](_0xe188('0xc'),auth[_0xe188('0x9')](),controller[_0xe188('0xd')]);router[_0xe188('0xb')]('/:id/hoppers',auth[_0xe188('0x9')](),controller[_0xe188('0xe')]);router[_0xe188('0xb')](_0xe188('0xf'),auth[_0xe188('0x9')](),controller[_0xe188('0x10')]);router[_0xe188('0xb')]('/:id/hopper_finals',auth[_0xe188('0x9')](),controller[_0xe188('0x11')]);router[_0xe188('0xb')]('/:id/hopper_black',auth[_0xe188('0x9')](),controller[_0xe188('0x12')]);router[_0xe188('0xb')](_0xe188('0x13'),auth[_0xe188('0x9')](),controller[_0xe188('0x14')]);router['get'](_0xe188('0x15'),auth[_0xe188('0x9')](),controller[_0xe188('0x16')]);router[_0xe188('0x17')]('/',auth[_0xe188('0x9')](),controller[_0xe188('0x18')]);router['post'](_0xe188('0x19'),auth[_0xe188('0x9')](),controller[_0xe188('0x1a')]);router['post'](_0xe188('0x13'),auth[_0xe188('0x9')](),controller[_0xe188('0x1b')]);router[_0xe188('0x17')](_0xe188('0x15'),auth[_0xe188('0x9')](),controller[_0xe188('0x1c')]);router[_0xe188('0x1d')](_0xe188('0xc'),auth['isAuthenticated'](),controller[_0xe188('0x1e')]);router['delete'](_0xe188('0xc'),auth[_0xe188('0x9')](),controller[_0xe188('0x1f')]);router[_0xe188('0x20')](_0xe188('0x13'),auth['isAuthenticated'](),controller[_0xe188('0x21')]);router['delete'](_0xe188('0x15'),auth[_0xe188('0x9')](),controller['removeBlackLists']);module[_0xe188('0x22')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff5c=['TEXT','VIRTUAL','getDataValue','key','sequelize','STRING'];(function(_0x1f0277,_0x51ad6d){var _0xb5aa9b=function(_0x2ec757){while(--_0x2ec757){_0x1f0277['push'](_0x1f0277['shift']());}};_0xb5aa9b(++_0x51ad6d);}(_0xff5c,0x1f0));var _0xcff5=function(_0x4878b9,_0x4f5799){_0x4878b9=_0x4878b9-0x0;var _0x515ab2=_0xff5c[_0x4878b9];return _0x515ab2;};'use strict';var Sequelize=require(_0xcff5('0x0'));module['exports']={'key':{'type':Sequelize[_0xcff5('0x1')],'allowNull':![]},'value':{'type':Sequelize[_0xcff5('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xcff5('0x1')]},'name':{'type':Sequelize[_0xcff5('0x3')],'get':function(){return this[_0xcff5('0x4')](_0xcff5('0x5'));}}};
\ No newline at end of file
+var _0x3e22=['getDataValue','key','sequelize','exports','STRING','TEXT'];(function(_0x11a445,_0x30efba){var _0x18db04=function(_0x2bb67f){while(--_0x2bb67f){_0x11a445['push'](_0x11a445['shift']());}};_0x18db04(++_0x30efba);}(_0x3e22,0x98));var _0x23e2=function(_0x41bbd7,_0x3041f8){_0x41bbd7=_0x41bbd7-0x0;var _0x116b13=_0x3e22[_0x41bbd7];return _0x116b13;};'use strict';var Sequelize=require(_0x23e2('0x0'));module[_0x23e2('0x1')]={'key':{'type':Sequelize[_0x23e2('0x2')],'allowNull':![]},'value':{'type':Sequelize[_0x23e2('0x3')],'allowNull':![]},'description':{'type':Sequelize[_0x23e2('0x2')]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x23e2('0x4')](_0x23e2('0x5'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8228=['../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','destroy','CannedAnswers','UserProfileResource','error','name','send','index','map','CannedAnswer','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','options','includeAll','findAll','params','rawAttributes','include','catch','update','body','find','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','rimraf','zip-dir','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0xaa0309,_0x1c8008){var _0x5de7ce=function(_0x3aa6ae){while(--_0x3aa6ae){_0xaa0309['push'](_0xaa0309['shift']());}};_0x5de7ce(++_0x1c8008);}(_0x8228,0x149));var _0x8822=function(_0x67e97c,_0x3c3690){_0x67e97c=_0x67e97c-0x0;var _0x2f6c1f=_0x8228[_0x67e97c];return _0x2f6c1f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8822('0x0'));var zipdir=require(_0x8822('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8822('0x2'));var moment=require(_0x8822('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8822('0x4'));var util=require(_0x8822('0x5'));var path=require(_0x8822('0x6'));var sox=require('sox');var csv=require(_0x8822('0x7'));var ejs=require(_0x8822('0x8'));var fs=require('fs');var fs_extra=require(_0x8822('0x9'));var _=require(_0x8822('0xa'));var squel=require(_0x8822('0xb'));var crypto=require(_0x8822('0xc'));var jsforce=require(_0x8822('0xd'));var deskjs=require(_0x8822('0xe'));var toCsv=require(_0x8822('0x7'));var querystring=require('querystring');var Papa=require(_0x8822('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x8822('0x10'));var as=require(_0x8822('0x11'));var hardwareService=require(_0x8822('0x12'));var logger=require(_0x8822('0x13'))('api');var utils=require(_0x8822('0x14'));var config=require(_0x8822('0x15'));var licenseUtil=require(_0x8822('0x16'));var db=require(_0x8822('0x17'))['db'];function respondWithStatusCode(_0x8c21b,_0x1180c6){_0x1180c6=_0x1180c6||0xcc;return function(_0x373317){if(_0x373317){return _0x8c21b[_0x8822('0x18')](_0x1180c6);}return _0x8c21b[_0x8822('0x19')](_0x1180c6)[_0x8822('0x1a')]();};}function respondWithResult(_0x2b9255,_0x44d00a){_0x44d00a=_0x44d00a||0xc8;return function(_0x1bae52){if(_0x1bae52){return _0x2b9255[_0x8822('0x19')](_0x44d00a)[_0x8822('0x1b')](_0x1bae52);}};}function respondWithFilteredResult(_0x4e5b8b,_0x3d634a){return function(_0x2d818d){if(_0x2d818d){var _0x1632bd=typeof _0x3d634a[_0x8822('0x1c')]===_0x8822('0x1d')&&typeof _0x3d634a[_0x8822('0x1e')]==='undefined';var _0x510b71=_0x2d818d[_0x8822('0x1f')];var _0x5aa693=_0x1632bd?0x0:_0x3d634a['offset'];var _0x1f3bd5=_0x1632bd?_0x2d818d[_0x8822('0x1f')]:_0x3d634a['offset']+_0x3d634a[_0x8822('0x1e')];var _0x63d517;if(_0x1f3bd5>=_0x510b71){_0x1f3bd5=_0x510b71;_0x63d517=0xc8;}else{_0x63d517=0xce;}_0x4e5b8b['status'](_0x63d517);return _0x4e5b8b[_0x8822('0x20')](_0x8822('0x21'),_0x5aa693+'-'+_0x1f3bd5+'/'+_0x510b71)[_0x8822('0x1b')](_0x2d818d);}return null;};}function patchUpdates(_0x1cf110){return function(_0x51dc15){try{jsonpatch['apply'](_0x51dc15,_0x1cf110,!![]);}catch(_0xaec558){return BPromise[_0x8822('0x22')](_0xaec558);}return _0x51dc15[_0x8822('0x23')]();};}function saveUpdates(_0x5e3cdb,_0x1d1f17){return function(_0x44f293){if(_0x44f293){return _0x44f293['update'](_0x5e3cdb)[_0x8822('0x24')](function(_0x461d46){return _0x461d46;});}return null;};}function removeEntity(_0x21aff4,_0x4186a7){return function(_0x2b4aa2){if(_0x2b4aa2){return _0x2b4aa2[_0x8822('0x25')]()[_0x8822('0x24')](function(){var _0x128f4b=_0x2b4aa2['get']({'plain':!![]});var _0x40b9ae=_0x8822('0x26');return db[_0x8822('0x27')][_0x8822('0x25')]({'where':{'type':_0x40b9ae,'resourceId':_0x128f4b['id']}})[_0x8822('0x24')](function(){return _0x2b4aa2;});})[_0x8822('0x24')](function(){_0x21aff4[_0x8822('0x19')](0xcc)[_0x8822('0x1a')]();});}};}function handleEntityNotFound(_0x3cd717,_0x3a9f79){return function(_0x27671c){if(!_0x27671c){_0x3cd717[_0x8822('0x18')](0x194);}return _0x27671c;};}function handleError(_0x3183d7,_0x39519d){_0x39519d=_0x39519d||0x1f4;return function(_0xf74dd8){logger[_0x8822('0x28')](_0xf74dd8['stack']);if(_0xf74dd8[_0x8822('0x29')]){delete _0xf74dd8[_0x8822('0x29')];}_0x3183d7[_0x8822('0x19')](_0x39519d)[_0x8822('0x2a')](_0xf74dd8);};}exports[_0x8822('0x2b')]=function(_0x2f56cf,_0x32e002){var _0x195de5={},_0x24e1a3={},_0x49a07d={'count':0x0,'rows':[]};var _0x5c9fc4=_[_0x8822('0x2c')](db[_0x8822('0x2d')]['rawAttributes'],function(_0x48f79a){return{'name':_0x48f79a[_0x8822('0x2e')],'type':_0x48f79a[_0x8822('0x2f')][_0x8822('0x30')]};});_0x24e1a3[_0x8822('0x31')]=_[_0x8822('0x2c')](_0x5c9fc4,_0x8822('0x29'));_0x24e1a3[_0x8822('0x32')]=_[_0x8822('0x33')](_0x2f56cf[_0x8822('0x32')]);_0x24e1a3['filters']=_[_0x8822('0x34')](_0x24e1a3[_0x8822('0x31')],_0x24e1a3[_0x8822('0x32')]);_0x195de5['attributes']=_[_0x8822('0x34')](_0x24e1a3[_0x8822('0x31')],qs['fields'](_0x2f56cf['query'][_0x8822('0x35')]));_0x195de5[_0x8822('0x36')]=_0x195de5['attributes'][_0x8822('0x37')]?_0x195de5[_0x8822('0x36')]:_0x24e1a3[_0x8822('0x31')];if(!_0x2f56cf['query'][_0x8822('0x38')](_0x8822('0x39'))){_0x195de5['limit']=qs[_0x8822('0x1e')](_0x2f56cf[_0x8822('0x32')][_0x8822('0x1e')]);_0x195de5[_0x8822('0x1c')]=qs[_0x8822('0x1c')](_0x2f56cf[_0x8822('0x32')][_0x8822('0x1c')]);}_0x195de5[_0x8822('0x3a')]=qs[_0x8822('0x3b')](_0x2f56cf[_0x8822('0x32')][_0x8822('0x3b')]);_0x195de5[_0x8822('0x3c')]=qs[_0x8822('0x3d')](_['pick'](_0x2f56cf['query'],_0x24e1a3['filters']),_0x5c9fc4);if(_0x2f56cf[_0x8822('0x32')][_0x8822('0x3e')]){_0x195de5[_0x8822('0x3c')]=_[_0x8822('0x3f')](_0x195de5[_0x8822('0x3c')],{'$or':[{'key':{'$like':'%'+_0x2f56cf[_0x8822('0x32')]['filter']+'%'}},{'value':{'$like':'%'+_0x2f56cf[_0x8822('0x32')][_0x8822('0x3e')]+'%'}}]});}_0x195de5=_[_0x8822('0x3f')]({},_0x195de5,_0x2f56cf[_0x8822('0x40')]);var _0x39f10a={'where':_0x195de5['where']};return db[_0x8822('0x2d')][_0x8822('0x1f')](_0x39f10a)['then'](function(_0x3625d6){_0x49a07d['count']=_0x3625d6;if(_0x2f56cf[_0x8822('0x32')][_0x8822('0x41')]){_0x195de5['include']=[{'all':!![]}];}return db[_0x8822('0x2d')][_0x8822('0x42')](_0x195de5);})[_0x8822('0x24')](function(_0x717bd7){_0x49a07d['rows']=_0x717bd7;return _0x49a07d;})[_0x8822('0x24')](respondWithFilteredResult(_0x32e002,_0x195de5))['catch'](handleError(_0x32e002,null));};exports['show']=function(_0x3d0faf,_0x376b8e){var _0x5c709e={'raw':!![],'where':{'id':_0x3d0faf[_0x8822('0x43')]['id']}},_0x588738={};_0x588738['model']=_[_0x8822('0x33')](db[_0x8822('0x2d')][_0x8822('0x44')]);_0x588738[_0x8822('0x32')]=_[_0x8822('0x33')](_0x3d0faf[_0x8822('0x32')]);_0x588738[_0x8822('0x3d')]=_[_0x8822('0x34')](_0x588738['model'],_0x588738[_0x8822('0x32')]);_0x5c709e[_0x8822('0x36')]=_[_0x8822('0x34')](_0x588738[_0x8822('0x31')],qs['fields'](_0x3d0faf[_0x8822('0x32')][_0x8822('0x35')]));_0x5c709e[_0x8822('0x36')]=_0x5c709e[_0x8822('0x36')][_0x8822('0x37')]?_0x5c709e['attributes']:_0x588738[_0x8822('0x31')];if(_0x3d0faf[_0x8822('0x32')][_0x8822('0x41')]){_0x5c709e[_0x8822('0x45')]=[{'all':!![]}];}_0x5c709e=_[_0x8822('0x3f')]({},_0x5c709e,_0x3d0faf[_0x8822('0x40')]);return db['CannedAnswer']['find'](_0x5c709e)[_0x8822('0x24')](handleEntityNotFound(_0x376b8e,null))[_0x8822('0x24')](respondWithResult(_0x376b8e,null))[_0x8822('0x46')](handleError(_0x376b8e,null));};exports[_0x8822('0x47')]=function(_0x2aeeea,_0xb9a583){if(_0x2aeeea[_0x8822('0x48')]['id']){delete _0x2aeeea[_0x8822('0x48')]['id'];}return db[_0x8822('0x2d')][_0x8822('0x49')]({'where':{'id':_0x2aeeea['params']['id']}})[_0x8822('0x24')](handleEntityNotFound(_0xb9a583,null))[_0x8822('0x24')](saveUpdates(_0x2aeeea[_0x8822('0x48')],null))[_0x8822('0x24')](respondWithResult(_0xb9a583,null))['catch'](handleError(_0xb9a583,null));};exports['destroy']=function(_0x323daa,_0x527433){return db[_0x8822('0x2d')][_0x8822('0x49')]({'where':{'id':_0x323daa[_0x8822('0x43')]['id']}})[_0x8822('0x24')](handleEntityNotFound(_0x527433,null))['then'](removeEntity(_0x527433,null))[_0x8822('0x46')](handleError(_0x527433,null));};exports[_0x8822('0x4a')]=function(_0x272fca,_0x4e32e9){var _0x4e5ea2={'key':_0x272fca[_0x8822('0x48')][_0x8822('0x30')]};if(_0x272fca['body']['MailAccountId']){_0x4e5ea2[_0x8822('0x4b')]=_0x272fca[_0x8822('0x48')][_0x8822('0x4b')];}else if(_0x272fca[_0x8822('0x48')]['SmsAccountId']){_0x4e5ea2[_0x8822('0x4c')]=_0x272fca['body'][_0x8822('0x4c')];}else if(_0x272fca[_0x8822('0x48')]['OpenchannelAccountId']){_0x4e5ea2[_0x8822('0x4d')]=_0x272fca[_0x8822('0x48')][_0x8822('0x4d')];}else if(_0x272fca['body']['ChatWebsiteId']){_0x4e5ea2[_0x8822('0x4e')]=_0x272fca['body'][_0x8822('0x4e')];}return db[_0x8822('0x2d')][_0x8822('0x49')]({'where':_0x4e5ea2})[_0x8822('0x24')](function(_0x3582e5){if(_0x3582e5){throw new db[(_0x8822('0x4f'))][(_0x8822('0x50'))](_0x8822('0x51'));}return db['CannedAnswer'][_0x8822('0x4a')](_0x272fca[_0x8822('0x48')]);})[_0x8822('0x24')](function(_0x451d1c){var _0x5c7aaa=_0x272fca[_0x8822('0x52')]['get']({'plain':!![]});if(!_0x5c7aaa)throw new Error(_0x8822('0x53'));if(_0x5c7aaa['role']==='user'){var _0x56bd1a=_0x451d1c[_0x8822('0x54')]({'plain':!![]});return db['UserProfileSection'][_0x8822('0x49')]({'where':{'name':_0x8822('0x26'),'userProfileId':_0x5c7aaa[_0x8822('0x55')]},'raw':!![]})['then'](function(_0x3ff2aa){if(_0x3ff2aa&&_0x3ff2aa['autoAssociation']===0x0){return db[_0x8822('0x27')]['create']({'name':_0x56bd1a[_0x8822('0x29')],'resourceId':_0x56bd1a['id'],'type':_0x3ff2aa[_0x8822('0x29')],'sectionId':_0x3ff2aa['id']},{})[_0x8822('0x24')](function(){return _0x451d1c;});}else{return _0x451d1c;}})['catch'](function(_0x350805){logger['error'](_0x8822('0x56'),_0x350805);throw _0x350805;});}return _0x451d1c;})[_0x8822('0x24')](respondWithResult(_0x4e32e9,0xc9))[_0x8822('0x46')](handleError(_0x4e32e9,null));};
\ No newline at end of file
+var _0x073b=['UserProfileResource','error','stack','send','index','map','rawAttributes','fieldName','type','key','name','keys','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','merge','filter','options','CannedAnswer','includeAll','rows','params','include','find','body','catch','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','ValidationError','The\x20inserted\x20key\x20already\x20exists.','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','save','then','destroy','get','CannedAnswers'];(function(_0x546125,_0xfa3bf){var _0x77b546=function(_0x475555){while(--_0x475555){_0x546125['push'](_0x546125['shift']());}};_0x77b546(++_0xfa3bf);}(_0x073b,0x149));var _0xb073=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x073b[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0xb073('0x0'));var rimraf=require(_0xb073('0x1'));var zipdir=require(_0xb073('0x2'));var jsonpatch=require(_0xb073('0x3'));var rp=require(_0xb073('0x4'));var moment=require(_0xb073('0x5'));var BPromise=require(_0xb073('0x6'));var Mustache=require(_0xb073('0x7'));var util=require(_0xb073('0x8'));var path=require(_0xb073('0x9'));var sox=require('sox');var csv=require(_0xb073('0xa'));var ejs=require(_0xb073('0xb'));var fs=require('fs');var fs_extra=require(_0xb073('0xc'));var _=require(_0xb073('0xd'));var squel=require(_0xb073('0xe'));var crypto=require(_0xb073('0xf'));var jsforce=require(_0xb073('0x10'));var deskjs=require(_0xb073('0x11'));var toCsv=require(_0xb073('0xa'));var querystring=require(_0xb073('0x12'));var Papa=require('papaparse');var Redis=require(_0xb073('0x13'));var authService=require(_0xb073('0x14'));var qs=require(_0xb073('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb073('0x16'));var logger=require('../../config/logger')(_0xb073('0x17'));var utils=require(_0xb073('0x18'));var config=require(_0xb073('0x19'));var licenseUtil=require(_0xb073('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x32e583,_0x491604){_0x491604=_0x491604||0xcc;return function(_0x48dcce){if(_0x48dcce){return _0x32e583[_0xb073('0x1b')](_0x491604);}return _0x32e583['status'](_0x491604)[_0xb073('0x1c')]();};}function respondWithResult(_0x2a0808,_0x6dfca5){_0x6dfca5=_0x6dfca5||0xc8;return function(_0x7eb5f0){if(_0x7eb5f0){return _0x2a0808[_0xb073('0x1d')](_0x6dfca5)[_0xb073('0x1e')](_0x7eb5f0);}};}function respondWithFilteredResult(_0x51fc88,_0x314900){return function(_0x49df22){if(_0x49df22){var _0x393ee3=typeof _0x314900[_0xb073('0x1f')]==='undefined'&&typeof _0x314900[_0xb073('0x20')]===_0xb073('0x21');var _0xea167a=_0x49df22[_0xb073('0x22')];var _0x3a9234=_0x393ee3?0x0:_0x314900[_0xb073('0x1f')];var _0x216d79=_0x393ee3?_0x49df22[_0xb073('0x22')]:_0x314900[_0xb073('0x1f')]+_0x314900[_0xb073('0x20')];var _0x47fa3d;if(_0x216d79>=_0xea167a){_0x216d79=_0xea167a;_0x47fa3d=0xc8;}else{_0x47fa3d=0xce;}_0x51fc88[_0xb073('0x1d')](_0x47fa3d);return _0x51fc88[_0xb073('0x23')](_0xb073('0x24'),_0x3a9234+'-'+_0x216d79+'/'+_0xea167a)[_0xb073('0x1e')](_0x49df22);}return null;};}function patchUpdates(_0x1a0989){return function(_0x39a618){try{jsonpatch[_0xb073('0x25')](_0x39a618,_0x1a0989,!![]);}catch(_0x3c4721){return BPromise['reject'](_0x3c4721);}return _0x39a618[_0xb073('0x26')]();};}function saveUpdates(_0x113353,_0x192f94){return function(_0x489f5a){if(_0x489f5a){return _0x489f5a['update'](_0x113353)[_0xb073('0x27')](function(_0x8190e0){return _0x8190e0;});}return null;};}function removeEntity(_0x39d95e,_0x257c23){return function(_0x3acda9){if(_0x3acda9){return _0x3acda9[_0xb073('0x28')]()[_0xb073('0x27')](function(){var _0x3ce8ad=_0x3acda9[_0xb073('0x29')]({'plain':!![]});var _0x2d8006=_0xb073('0x2a');return db[_0xb073('0x2b')][_0xb073('0x28')]({'where':{'type':_0x2d8006,'resourceId':_0x3ce8ad['id']}})[_0xb073('0x27')](function(){return _0x3acda9;});})[_0xb073('0x27')](function(){_0x39d95e[_0xb073('0x1d')](0xcc)[_0xb073('0x1c')]();});}};}function handleEntityNotFound(_0x18d6f9,_0x4985fb){return function(_0x5e0bc3){if(!_0x5e0bc3){_0x18d6f9[_0xb073('0x1b')](0x194);}return _0x5e0bc3;};}function handleError(_0x3d5502,_0x9cc071){_0x9cc071=_0x9cc071||0x1f4;return function(_0x53d1ff){logger[_0xb073('0x2c')](_0x53d1ff[_0xb073('0x2d')]);if(_0x53d1ff['name']){delete _0x53d1ff['name'];}_0x3d5502[_0xb073('0x1d')](_0x9cc071)[_0xb073('0x2e')](_0x53d1ff);};}exports[_0xb073('0x2f')]=function(_0xc627f5,_0xa7d8a9){var _0x3e7254={},_0x1d27a0={},_0x9f71c9={'count':0x0,'rows':[]};var _0x2ff340=_[_0xb073('0x30')](db['CannedAnswer'][_0xb073('0x31')],function(_0x3ae3d4){return{'name':_0x3ae3d4[_0xb073('0x32')],'type':_0x3ae3d4[_0xb073('0x33')][_0xb073('0x34')]};});_0x1d27a0['model']=_[_0xb073('0x30')](_0x2ff340,_0xb073('0x35'));_0x1d27a0['query']=_[_0xb073('0x36')](_0xc627f5['query']);_0x1d27a0['filters']=_[_0xb073('0x37')](_0x1d27a0[_0xb073('0x38')],_0x1d27a0[_0xb073('0x39')]);_0x3e7254[_0xb073('0x3a')]=_[_0xb073('0x37')](_0x1d27a0[_0xb073('0x38')],qs['fields'](_0xc627f5['query'][_0xb073('0x3b')]));_0x3e7254[_0xb073('0x3a')]=_0x3e7254[_0xb073('0x3a')][_0xb073('0x3c')]?_0x3e7254[_0xb073('0x3a')]:_0x1d27a0[_0xb073('0x38')];if(!_0xc627f5[_0xb073('0x39')][_0xb073('0x3d')](_0xb073('0x3e'))){_0x3e7254[_0xb073('0x20')]=qs[_0xb073('0x20')](_0xc627f5[_0xb073('0x39')]['limit']);_0x3e7254['offset']=qs[_0xb073('0x1f')](_0xc627f5[_0xb073('0x39')]['offset']);}_0x3e7254[_0xb073('0x3f')]=qs[_0xb073('0x40')](_0xc627f5[_0xb073('0x39')][_0xb073('0x40')]);_0x3e7254[_0xb073('0x41')]=qs['filters'](_[_0xb073('0x42')](_0xc627f5['query'],_0x1d27a0[_0xb073('0x43')]),_0x2ff340);if(_0xc627f5[_0xb073('0x39')]['filter']){_0x3e7254['where']=_[_0xb073('0x44')](_0x3e7254[_0xb073('0x41')],{'$or':[{'key':{'$like':'%'+_0xc627f5[_0xb073('0x39')][_0xb073('0x45')]+'%'}},{'value':{'$like':'%'+_0xc627f5['query'][_0xb073('0x45')]+'%'}}]});}_0x3e7254=_[_0xb073('0x44')]({},_0x3e7254,_0xc627f5[_0xb073('0x46')]);var _0xc0143c={'where':_0x3e7254[_0xb073('0x41')]};return db[_0xb073('0x47')][_0xb073('0x22')](_0xc0143c)[_0xb073('0x27')](function(_0x2a05e0){_0x9f71c9['count']=_0x2a05e0;if(_0xc627f5[_0xb073('0x39')][_0xb073('0x48')]){_0x3e7254['include']=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x3e7254);})['then'](function(_0x15192){_0x9f71c9[_0xb073('0x49')]=_0x15192;return _0x9f71c9;})['then'](respondWithFilteredResult(_0xa7d8a9,_0x3e7254))['catch'](handleError(_0xa7d8a9,null));};exports['show']=function(_0x1283f1,_0xa89a70){var _0x2b98d9={'raw':!![],'where':{'id':_0x1283f1[_0xb073('0x4a')]['id']}},_0x1e1ed6={};_0x1e1ed6['model']=_[_0xb073('0x36')](db[_0xb073('0x47')][_0xb073('0x31')]);_0x1e1ed6['query']=_[_0xb073('0x36')](_0x1283f1['query']);_0x1e1ed6[_0xb073('0x43')]=_[_0xb073('0x37')](_0x1e1ed6[_0xb073('0x38')],_0x1e1ed6[_0xb073('0x39')]);_0x2b98d9[_0xb073('0x3a')]=_[_0xb073('0x37')](_0x1e1ed6[_0xb073('0x38')],qs[_0xb073('0x3b')](_0x1283f1[_0xb073('0x39')][_0xb073('0x3b')]));_0x2b98d9[_0xb073('0x3a')]=_0x2b98d9[_0xb073('0x3a')][_0xb073('0x3c')]?_0x2b98d9[_0xb073('0x3a')]:_0x1e1ed6[_0xb073('0x38')];if(_0x1283f1[_0xb073('0x39')][_0xb073('0x48')]){_0x2b98d9[_0xb073('0x4b')]=[{'all':!![]}];}_0x2b98d9=_[_0xb073('0x44')]({},_0x2b98d9,_0x1283f1['options']);return db[_0xb073('0x47')][_0xb073('0x4c')](_0x2b98d9)[_0xb073('0x27')](handleEntityNotFound(_0xa89a70,null))['then'](respondWithResult(_0xa89a70,null))['catch'](handleError(_0xa89a70,null));};exports['update']=function(_0x30b596,_0x82ebc2){if(_0x30b596[_0xb073('0x4d')]['id']){delete _0x30b596[_0xb073('0x4d')]['id'];}return db['CannedAnswer'][_0xb073('0x4c')]({'where':{'id':_0x30b596['params']['id']}})[_0xb073('0x27')](handleEntityNotFound(_0x82ebc2,null))['then'](saveUpdates(_0x30b596[_0xb073('0x4d')],null))[_0xb073('0x27')](respondWithResult(_0x82ebc2,null))[_0xb073('0x4e')](handleError(_0x82ebc2,null));};exports['destroy']=function(_0x231c8c,_0x2d1ac4){return db[_0xb073('0x47')][_0xb073('0x4c')]({'where':{'id':_0x231c8c['params']['id']}})[_0xb073('0x27')](handleEntityNotFound(_0x2d1ac4,null))[_0xb073('0x27')](removeEntity(_0x2d1ac4,null))[_0xb073('0x4e')](handleError(_0x2d1ac4,null));};exports[_0xb073('0x4f')]=function(_0x37a6f2,_0x1365c6){var _0x3f11e5={'key':_0x37a6f2[_0xb073('0x4d')][_0xb073('0x34')]};if(_0x37a6f2[_0xb073('0x4d')][_0xb073('0x50')]){_0x3f11e5[_0xb073('0x50')]=_0x37a6f2[_0xb073('0x4d')][_0xb073('0x50')];}else if(_0x37a6f2[_0xb073('0x4d')][_0xb073('0x51')]){_0x3f11e5[_0xb073('0x51')]=_0x37a6f2[_0xb073('0x4d')]['SmsAccountId'];}else if(_0x37a6f2['body'][_0xb073('0x52')]){_0x3f11e5[_0xb073('0x52')]=_0x37a6f2[_0xb073('0x4d')]['OpenchannelAccountId'];}else if(_0x37a6f2[_0xb073('0x4d')][_0xb073('0x53')]){_0x3f11e5[_0xb073('0x53')]=_0x37a6f2[_0xb073('0x4d')][_0xb073('0x53')];}return db[_0xb073('0x47')][_0xb073('0x4c')]({'where':_0x3f11e5})['then'](function(_0x279794){if(_0x279794){throw new db['Sequelize'][(_0xb073('0x54'))](_0xb073('0x55'));}return db[_0xb073('0x47')][_0xb073('0x4f')](_0x37a6f2[_0xb073('0x4d')]);})[_0xb073('0x27')](function(_0x13bf55){var _0x52447a=_0x37a6f2[_0xb073('0x56')][_0xb073('0x29')]({'plain':!![]});if(!_0x52447a)throw new Error(_0xb073('0x57'));if(_0x52447a[_0xb073('0x58')]===_0xb073('0x56')){var _0x4a0971=_0x13bf55['get']({'plain':!![]});return db[_0xb073('0x59')][_0xb073('0x4c')]({'where':{'name':'CannedAnswers','userProfileId':_0x52447a[_0xb073('0x5a')]},'raw':!![]})[_0xb073('0x27')](function(_0xac558c){if(_0xac558c&&_0xac558c[_0xb073('0x5b')]===0x0){return db[_0xb073('0x2b')][_0xb073('0x4f')]({'name':_0x4a0971[_0xb073('0x35')],'resourceId':_0x4a0971['id'],'type':_0xac558c[_0xb073('0x35')],'sectionId':_0xac558c['id']},{})['then'](function(){return _0x13bf55;});}else{return _0x13bf55;}})[_0xb073('0x4e')](function(_0x7c493e){logger[_0xb073('0x2c')](_0xb073('0x5c'),_0x7c493e);throw _0x7c493e;});}return _0x13bf55;})[_0xb073('0x27')](respondWithResult(_0x1365c6,0xc9))[_0xb073('0x4e')](handleError(_0x1365c6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9f5=['../../config/environment','./cannedAnswer.attributes','exports','CannedAnswer','tools_canned_answers','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird','path'];(function(_0x146143,_0x567318){var _0x242971=function(_0x39b0f5){while(--_0x39b0f5){_0x146143['push'](_0x146143['shift']());}};_0x242971(++_0x567318);}(_0xd9f5,0x1b4));var _0x5d9f=function(_0x1e1020,_0xd64a27){_0x1e1020=_0x1e1020-0x0;var _0x464719=_0xd9f5[_0x1e1020];return _0x464719;};'use strict';var _=require(_0x5d9f('0x0'));var util=require('util');var logger=require(_0x5d9f('0x1'))(_0x5d9f('0x2'));var moment=require(_0x5d9f('0x3'));var BPromise=require(_0x5d9f('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5d9f('0x5'));var rimraf=require('rimraf');var config=require(_0x5d9f('0x6'));var attributes=require(_0x5d9f('0x7'));module[_0x5d9f('0x8')]=function(_0x658a34,_0xcd1abe){return _0x658a34['define'](_0x5d9f('0x9'),attributes,{'tableName':_0x5d9f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x5d9f('0xb'),'collate':_0x5d9f('0xc')});};
\ No newline at end of file
+var _0xa772=['utf8mb4_unicode_ci','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./cannedAnswer.attributes','CannedAnswer','tools_canned_answers','utf8mb4'];(function(_0x3b3f46,_0x2e0b19){var _0x45bb8a=function(_0x134e41){while(--_0x134e41){_0x3b3f46['push'](_0x3b3f46['shift']());}};_0x45bb8a(++_0x2e0b19);}(_0xa772,0x114));var _0x2a77=function(_0x7f287d,_0xe3b36e){_0x7f287d=_0x7f287d-0x0;var _0x21514f=_0xa772[_0x7f287d];return _0x21514f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x2a77('0x0'))(_0x2a77('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x2a77('0x2'));var fs=require('fs');var path=require(_0x2a77('0x3'));var rimraf=require(_0x2a77('0x4'));var config=require(_0x2a77('0x5'));var attributes=require(_0x2a77('0x6'));module['exports']=function(_0x20e909,_0x2e9e78){return _0x20e909['define'](_0x2a77('0x7'),attributes,{'tableName':_0x2a77('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x2a77('0x9'),'collate':_0x2a77('0xa')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\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(_0x186d8b,_0x147075){var _0x4ef74f=function(_0x44ded5){while(--_0x44ded5){_0x186d8b['push'](_0x186d8b['shift']());}};_0x4ef74f(++_0x147075);}(_0xa9e0,0x123));var _0x0a9e=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0xa9e0[_0x43d11d];return _0x38cd08;};'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
+var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\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(_0x4eb84e,_0x21a71a){var _0xd8d067=function(_0x26efc6){while(--_0x26efc6){_0x4eb84e['push'](_0x4eb84e['shift']());}};_0xd8d067(++_0x21a71a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3a6efd,_0x2a5102){_0x3a6efd=_0x3a6efd-0x0;var _0x487b9a=_0xa9e0[_0x3a6efd];return _0x487b9a;};'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 _0xf3cf=['../../config/environment','./cannedAnswer.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf3cf,0x116));var _0xff3c=function(_0x1ae31c,_0x8dcd2d){_0x1ae31c=_0x1ae31c-0x0;var _0x19519d=_0xf3cf[_0x1ae31c];return _0x19519d;};'use strict';var multer=require(_0xff3c('0x0'));var util=require(_0xff3c('0x1'));var path=require(_0xff3c('0x2'));var timeout=require(_0xff3c('0x3'));var express=require(_0xff3c('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xff3c('0x5'));var interaction=require(_0xff3c('0x6'));var config=require(_0xff3c('0x7'));var controller=require(_0xff3c('0x8'));router[_0xff3c('0x9')]('/',auth[_0xff3c('0xa')](),controller[_0xff3c('0xb')]);router[_0xff3c('0x9')](_0xff3c('0xc'),auth[_0xff3c('0xa')](),controller[_0xff3c('0xd')]);router[_0xff3c('0xe')]('/',auth['isAuthenticated'](),controller[_0xff3c('0xf')]);router[_0xff3c('0x10')](_0xff3c('0xc'),auth[_0xff3c('0xa')](),controller['update']);router[_0xff3c('0x11')](_0xff3c('0xc'),auth[_0xff3c('0xa')](),controller['destroy']);module[_0xff3c('0x12')]=router;
\ No newline at end of file
+var _0x4ccf=['isAuthenticated','/:id','show','post','create','put','update','delete','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x3b5ad9,_0x223867){var _0x611ae9=function(_0x1c5e28){while(--_0x1c5e28){_0x3b5ad9['push'](_0x3b5ad9['shift']());}};_0x611ae9(++_0x223867);}(_0x4ccf,0x160));var _0xf4cc=function(_0x3abaa9,_0x38c1c6){_0x3abaa9=_0x3abaa9-0x0;var _0x33db5c=_0x4ccf[_0x3abaa9];return _0x33db5c;};'use strict';var multer=require('multer');var util=require(_0xf4cc('0x0'));var path=require('path');var timeout=require(_0xf4cc('0x1'));var express=require(_0xf4cc('0x2'));var router=express[_0xf4cc('0x3')]();var fs_extra=require(_0xf4cc('0x4'));var auth=require(_0xf4cc('0x5'));var interaction=require(_0xf4cc('0x6'));var config=require(_0xf4cc('0x7'));var controller=require('./cannedAnswer.controller');router[_0xf4cc('0x8')]('/',auth[_0xf4cc('0x9')](),controller['index']);router[_0xf4cc('0x8')](_0xf4cc('0xa'),auth[_0xf4cc('0x9')](),controller[_0xf4cc('0xb')]);router[_0xf4cc('0xc')]('/',auth[_0xf4cc('0x9')](),controller[_0xf4cc('0xd')]);router[_0xf4cc('0xe')](_0xf4cc('0xa'),auth[_0xf4cc('0x9')](),controller[_0xf4cc('0xf')]);router[_0xf4cc('0x10')](_0xf4cc('0xa'),auth[_0xf4cc('0x9')](),controller[_0xf4cc('0x11')]);module[_0xf4cc('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25a8=['DATE','1970-01-01\x2000:00:01','STRING','INTEGER','exports'];(function(_0x30e289,_0x1ed090){var _0x37d9a2=function(_0x306be5){while(--_0x306be5){_0x30e289['push'](_0x30e289['shift']());}};_0x37d9a2(++_0x1ed090);}(_0x25a8,0x126));var _0x825a=function(_0x1ce345,_0x11d756){_0x1ce345=_0x1ce345-0x0;var _0x294e58=_0x25a8[_0x1ce345];return _0x294e58;};'use strict';var Sequelize=require('sequelize');module[_0x825a('0x0')]={'calldate':{'type':Sequelize[_0x825a('0x1')],'allowNull':![],'defaultValue':_0x825a('0x2')},'clid':{'type':Sequelize['STRING']},'src':{'type':Sequelize[_0x825a('0x3')]},'dst':{'type':Sequelize['STRING']},'dcontext':{'type':Sequelize[_0x825a('0x3')]},'channel':{'type':Sequelize[_0x825a('0x3')]},'dstchannel':{'type':Sequelize[_0x825a('0x3')]},'lastapp':{'type':Sequelize[_0x825a('0x3')]},'lastdata':{'type':Sequelize[_0x825a('0x3')]},'duration':{'type':Sequelize[_0x825a('0x4')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x825a('0x4')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x825a('0x3')]},'amaflags':{'type':Sequelize[_0x825a('0x4')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x825a('0x3')]},'userfield':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x825a('0x3')]},'linkedid':{'type':Sequelize['STRING']},'sequence':{'type':Sequelize['STRING']},'peeraccount':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x825a('0x3')]},'tag':{'type':Sequelize[_0x825a('0x3')]}};
\ No newline at end of file
+var _0x2f72=['DATE','1970-01-01\x2000:00:01','STRING','INTEGER','sequelize','exports'];(function(_0x4364a9,_0x3c3bd4){var _0x30fdb2=function(_0x397e51){while(--_0x397e51){_0x4364a9['push'](_0x4364a9['shift']());}};_0x30fdb2(++_0x3c3bd4);}(_0x2f72,0x166));var _0x22f7=function(_0x2b9854,_0x4f08da){_0x2b9854=_0x2b9854-0x0;var _0x152508=_0x2f72[_0x2b9854];return _0x152508;};'use strict';var Sequelize=require(_0x22f7('0x0'));module[_0x22f7('0x1')]={'calldate':{'type':Sequelize[_0x22f7('0x2')],'allowNull':![],'defaultValue':_0x22f7('0x3')},'clid':{'type':Sequelize[_0x22f7('0x4')]},'src':{'type':Sequelize[_0x22f7('0x4')]},'dst':{'type':Sequelize[_0x22f7('0x4')]},'dcontext':{'type':Sequelize[_0x22f7('0x4')]},'channel':{'type':Sequelize['STRING']},'dstchannel':{'type':Sequelize[_0x22f7('0x4')]},'lastapp':{'type':Sequelize[_0x22f7('0x4')]},'lastdata':{'type':Sequelize[_0x22f7('0x4')]},'duration':{'type':Sequelize[_0x22f7('0x5')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x22f7('0x5')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x22f7('0x4')]},'amaflags':{'type':Sequelize[_0x22f7('0x5')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x22f7('0x4')]},'userfield':{'type':Sequelize[_0x22f7('0x4')]},'uniqueid':{'type':Sequelize[_0x22f7('0x4')]},'linkedid':{'type':Sequelize[_0x22f7('0x4')]},'sequence':{'type':Sequelize[_0x22f7('0x4')]},'peeraccount':{'type':Sequelize[_0x22f7('0x4')]},'type':{'type':Sequelize[_0x22f7('0x4')]},'tag':{'type':Sequelize[_0x22f7('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5292=['rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','length','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','findAll','rows','catch','params','fields','options','find','create','body','describe','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','sox','lodash','squel','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','count','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','Cdr'];(function(_0x2112d4,_0x3c863c){var _0x434972=function(_0x477020){while(--_0x477020){_0x2112d4['push'](_0x2112d4['shift']());}};_0x434972(++_0x3c863c);}(_0x5292,0xf7));var _0x2529=function(_0x22f7aa,_0x5c01d8){_0x22f7aa=_0x22f7aa-0x0;var _0x9f6274=_0x5292[_0x22f7aa];return _0x9f6274;};'use strict';var emlformat=require(_0x2529('0x0'));var rimraf=require(_0x2529('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2529('0x2'));var rp=require('request-promise');var moment=require(_0x2529('0x3'));var BPromise=require(_0x2529('0x4'));var Mustache=require(_0x2529('0x5'));var util=require(_0x2529('0x6'));var path=require('path');var sox=require(_0x2529('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2529('0x8'));var squel=require(_0x2529('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x2529('0xa'));var toCsv=require(_0x2529('0xb'));var querystring=require('querystring');var Papa=require(_0x2529('0xc'));var Redis=require(_0x2529('0xd'));var authService=require(_0x2529('0xe'));var qs=require(_0x2529('0xf'));var as=require(_0x2529('0x10'));var hardwareService=require(_0x2529('0x11'));var logger=require(_0x2529('0x12'))(_0x2529('0x13'));var utils=require('../../config/utils');var config=require(_0x2529('0x14'));var licenseUtil=require(_0x2529('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xe333c9,_0x23bfaf){_0x23bfaf=_0x23bfaf||0xcc;return function(_0x149692){if(_0x149692){return _0xe333c9[_0x2529('0x16')](_0x23bfaf);}return _0xe333c9[_0x2529('0x17')](_0x23bfaf)[_0x2529('0x18')]();};}function respondWithResult(_0x3f3b40,_0x5245cf){_0x5245cf=_0x5245cf||0xc8;return function(_0x101668){if(_0x101668){return _0x3f3b40[_0x2529('0x17')](_0x5245cf)[_0x2529('0x19')](_0x101668);}};}function respondWithFilteredResult(_0x19e4bf,_0x1cc716){return function(_0x2598a1){if(_0x2598a1){var _0x1a1ccc=typeof _0x1cc716[_0x2529('0x1a')]==='undefined'&&typeof _0x1cc716[_0x2529('0x1b')]==='undefined';var _0x337720=_0x2598a1[_0x2529('0x1c')];var _0x89be58=_0x1a1ccc?0x0:_0x1cc716['offset'];var _0x5b4d0d=_0x1a1ccc?_0x2598a1[_0x2529('0x1c')]:_0x1cc716[_0x2529('0x1a')]+_0x1cc716[_0x2529('0x1b')];var _0x37204a;if(_0x5b4d0d>=_0x337720){_0x5b4d0d=_0x337720;_0x37204a=0xc8;}else{_0x37204a=0xce;}_0x19e4bf[_0x2529('0x17')](_0x37204a);return _0x19e4bf['set'](_0x2529('0x1d'),_0x89be58+'-'+_0x5b4d0d+'/'+_0x337720)[_0x2529('0x19')](_0x2598a1);}return null;};}function patchUpdates(_0x1ca15f){return function(_0xeff5a6){try{jsonpatch['apply'](_0xeff5a6,_0x1ca15f,!![]);}catch(_0x1fa873){return BPromise[_0x2529('0x1e')](_0x1fa873);}return _0xeff5a6[_0x2529('0x1f')]();};}function saveUpdates(_0x5b4760,_0x3d5d17){return function(_0x3f57da){if(_0x3f57da){return _0x3f57da[_0x2529('0x20')](_0x5b4760)[_0x2529('0x21')](function(_0x5540e4){return _0x5540e4;});}return null;};}function removeEntity(_0x2736f6,_0x2d0c6d){return function(_0x400a01){if(_0x400a01){return _0x400a01[_0x2529('0x22')]()[_0x2529('0x21')](function(){_0x2736f6[_0x2529('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5539ef,_0x856e50){return function(_0x40f42b){if(!_0x40f42b){_0x5539ef[_0x2529('0x16')](0x194);}return _0x40f42b;};}function handleError(_0x431c40,_0x24418a){_0x24418a=_0x24418a||0x1f4;return function(_0x2a8371){logger[_0x2529('0x23')](_0x2a8371[_0x2529('0x24')]);if(_0x2a8371[_0x2529('0x25')]){delete _0x2a8371[_0x2529('0x25')];}_0x431c40['status'](_0x24418a)[_0x2529('0x26')](_0x2a8371);};}exports[_0x2529('0x27')]=function(_0x4dd0fb,_0x1822ce){var _0x3c46c6={},_0x5bea2d={},_0x17bcbd={'count':0x0,'rows':[]};var _0x1d7e98=_['map'](db[_0x2529('0x28')][_0x2529('0x29')],function(_0x4a18f6){return{'name':_0x4a18f6[_0x2529('0x2a')],'type':_0x4a18f6[_0x2529('0x2b')][_0x2529('0x2c')]};});_0x5bea2d[_0x2529('0x2d')]=_[_0x2529('0x2e')](_0x1d7e98,'name');_0x5bea2d[_0x2529('0x2f')]=_[_0x2529('0x30')](_0x4dd0fb[_0x2529('0x2f')]);_0x5bea2d[_0x2529('0x31')]=_[_0x2529('0x32')](_0x5bea2d[_0x2529('0x2d')],_0x5bea2d[_0x2529('0x2f')]);_0x3c46c6['attributes']=_['intersection'](_0x5bea2d[_0x2529('0x2d')],qs['fields'](_0x4dd0fb[_0x2529('0x2f')]['fields']));_0x3c46c6['attributes']=_0x3c46c6['attributes'][_0x2529('0x33')]?_0x3c46c6[_0x2529('0x34')]:_0x5bea2d[_0x2529('0x2d')];if(!_0x4dd0fb['query'][_0x2529('0x35')]('nolimit')){_0x3c46c6['limit']=qs['limit'](_0x4dd0fb[_0x2529('0x2f')][_0x2529('0x1b')]);_0x3c46c6[_0x2529('0x1a')]=qs[_0x2529('0x1a')](_0x4dd0fb[_0x2529('0x2f')][_0x2529('0x1a')]);}_0x3c46c6[_0x2529('0x36')]=qs[_0x2529('0x37')](_0x4dd0fb[_0x2529('0x2f')][_0x2529('0x37')]);_0x3c46c6[_0x2529('0x38')]=qs[_0x2529('0x31')](_[_0x2529('0x39')](_0x4dd0fb['query'],_0x5bea2d['filters']),_0x1d7e98);if(_0x4dd0fb[_0x2529('0x2f')][_0x2529('0x3a')]){_0x3c46c6['where']=_[_0x2529('0x3b')](_0x3c46c6[_0x2529('0x38')],{'$or':_[_0x2529('0x2e')](_0x1d7e98,function(_0x1b1f81){if(_0x1b1f81[_0x2529('0x2b')]!==_0x2529('0x3c')){var _0x1b8226={};_0x1b8226[_0x1b1f81['name']]={'$like':'%'+_0x4dd0fb[_0x2529('0x2f')][_0x2529('0x3a')]+'%'};return _0x1b8226;}})});}_0x3c46c6=_[_0x2529('0x3b')]({},_0x3c46c6,_0x4dd0fb['options']);var _0x1393b7={'where':_0x3c46c6[_0x2529('0x38')]};return db[_0x2529('0x28')][_0x2529('0x1c')](_0x1393b7)[_0x2529('0x21')](function(_0x33acbf){_0x17bcbd[_0x2529('0x1c')]=_0x33acbf;if(_0x4dd0fb[_0x2529('0x2f')][_0x2529('0x3d')]){_0x3c46c6['include']=[{'all':!![]}];}return db[_0x2529('0x28')][_0x2529('0x3e')](_0x3c46c6);})[_0x2529('0x21')](function(_0x3b4e47){_0x17bcbd[_0x2529('0x3f')]=_0x3b4e47;return _0x17bcbd;})[_0x2529('0x21')](respondWithFilteredResult(_0x1822ce,_0x3c46c6))[_0x2529('0x40')](handleError(_0x1822ce,null));};exports['show']=function(_0x8ced2e,_0x33a13e){var _0x3f76e8={'raw':!![],'where':{'id':_0x8ced2e[_0x2529('0x41')]['id']}},_0x2aaecb={};_0x2aaecb['model']=_[_0x2529('0x30')](db[_0x2529('0x28')][_0x2529('0x29')]);_0x2aaecb[_0x2529('0x2f')]=_[_0x2529('0x30')](_0x8ced2e[_0x2529('0x2f')]);_0x2aaecb['filters']=_['intersection'](_0x2aaecb['model'],_0x2aaecb['query']);_0x3f76e8[_0x2529('0x34')]=_['intersection'](_0x2aaecb[_0x2529('0x2d')],qs[_0x2529('0x42')](_0x8ced2e[_0x2529('0x2f')][_0x2529('0x42')]));_0x3f76e8[_0x2529('0x34')]=_0x3f76e8['attributes'][_0x2529('0x33')]?_0x3f76e8['attributes']:_0x2aaecb[_0x2529('0x2d')];if(_0x8ced2e['query'][_0x2529('0x3d')]){_0x3f76e8['include']=[{'all':!![]}];}_0x3f76e8=_[_0x2529('0x3b')]({},_0x3f76e8,_0x8ced2e[_0x2529('0x43')]);return db['Cdr'][_0x2529('0x44')](_0x3f76e8)['then'](handleEntityNotFound(_0x33a13e,null))[_0x2529('0x21')](respondWithResult(_0x33a13e,null))[_0x2529('0x40')](handleError(_0x33a13e,null));};exports[_0x2529('0x45')]=function(_0x3c6d79,_0xdc4bef){return db[_0x2529('0x28')][_0x2529('0x45')](_0x3c6d79[_0x2529('0x46')],{})[_0x2529('0x21')](respondWithResult(_0xdc4bef,0xc9))['catch'](handleError(_0xdc4bef,null));};exports['update']=function(_0x5e72d1,_0x37a23a){if(_0x5e72d1[_0x2529('0x46')]['id']){delete _0x5e72d1[_0x2529('0x46')]['id'];}return db['Cdr']['find']({'where':{'id':_0x5e72d1[_0x2529('0x41')]['id']}})['then'](handleEntityNotFound(_0x37a23a,null))[_0x2529('0x21')](saveUpdates(_0x5e72d1[_0x2529('0x46')],null))[_0x2529('0x21')](respondWithResult(_0x37a23a,null))[_0x2529('0x40')](handleError(_0x37a23a,null));};exports[_0x2529('0x22')]=function(_0x196ee8,_0x4583ba){return db[_0x2529('0x28')]['find']({'where':{'id':_0x196ee8['params']['id']}})[_0x2529('0x21')](handleEntityNotFound(_0x4583ba,null))[_0x2529('0x21')](removeEntity(_0x4583ba,null))[_0x2529('0x40')](handleError(_0x4583ba,null));};exports[_0x2529('0x47')]=function(_0x1f76d3,_0x3ac799){return db[_0x2529('0x28')][_0x2529('0x47')]()[_0x2529('0x21')](respondWithResult(_0x3ac799,null))[_0x2529('0x40')](handleError(_0x3ac799,null));};
\ No newline at end of file
+var _0xaf1b=['undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','Cdr','rawAttributes','fieldName','type','key','model','map','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','findAll','rows','catch','show','params','intersection','includeAll','include','create','body','find','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset'];(function(_0x5cd0a2,_0x7b9fc7){var _0xa20254=function(_0x335706){while(--_0x335706){_0x5cd0a2['push'](_0x5cd0a2['shift']());}};_0xa20254(++_0x7b9fc7);}(_0xaf1b,0x11a));var _0xbaf1=function(_0x27853f,_0x1e9869){_0x27853f=_0x27853f-0x0;var _0x2d74f0=_0xaf1b[_0x27853f];return _0x2d74f0;};'use strict';var emlformat=require(_0xbaf1('0x0'));var rimraf=require(_0xbaf1('0x1'));var zipdir=require(_0xbaf1('0x2'));var jsonpatch=require(_0xbaf1('0x3'));var rp=require(_0xbaf1('0x4'));var moment=require(_0xbaf1('0x5'));var BPromise=require(_0xbaf1('0x6'));var Mustache=require(_0xbaf1('0x7'));var util=require(_0xbaf1('0x8'));var path=require(_0xbaf1('0x9'));var sox=require(_0xbaf1('0xa'));var csv=require(_0xbaf1('0xb'));var ejs=require(_0xbaf1('0xc'));var fs=require('fs');var fs_extra=require(_0xbaf1('0xd'));var _=require('lodash');var squel=require(_0xbaf1('0xe'));var crypto=require('crypto');var jsforce=require(_0xbaf1('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xbaf1('0xb'));var querystring=require(_0xbaf1('0x10'));var Papa=require(_0xbaf1('0x11'));var Redis=require('ioredis');var authService=require(_0xbaf1('0x12'));var qs=require(_0xbaf1('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbaf1('0x14'));var logger=require('../../config/logger')(_0xbaf1('0x15'));var utils=require(_0xbaf1('0x16'));var config=require(_0xbaf1('0x17'));var licenseUtil=require(_0xbaf1('0x18'));var db=require(_0xbaf1('0x19'))['db'];function respondWithStatusCode(_0x36ec1c,_0x50de02){_0x50de02=_0x50de02||0xcc;return function(_0x493f3f){if(_0x493f3f){return _0x36ec1c[_0xbaf1('0x1a')](_0x50de02);}return _0x36ec1c[_0xbaf1('0x1b')](_0x50de02)[_0xbaf1('0x1c')]();};}function respondWithResult(_0xb6f7d8,_0x1d94da){_0x1d94da=_0x1d94da||0xc8;return function(_0x1097d6){if(_0x1097d6){return _0xb6f7d8[_0xbaf1('0x1b')](_0x1d94da)['json'](_0x1097d6);}};}function respondWithFilteredResult(_0x32981b,_0x173cb6){return function(_0xb9ac72){if(_0xb9ac72){var _0x342c11=typeof _0x173cb6[_0xbaf1('0x1d')]===_0xbaf1('0x1e')&&typeof _0x173cb6[_0xbaf1('0x1f')]===_0xbaf1('0x1e');var _0x58d217=_0xb9ac72[_0xbaf1('0x20')];var _0x4f4527=_0x342c11?0x0:_0x173cb6[_0xbaf1('0x1d')];var _0x3b13b2=_0x342c11?_0xb9ac72[_0xbaf1('0x20')]:_0x173cb6[_0xbaf1('0x1d')]+_0x173cb6['limit'];var _0x43291c;if(_0x3b13b2>=_0x58d217){_0x3b13b2=_0x58d217;_0x43291c=0xc8;}else{_0x43291c=0xce;}_0x32981b['status'](_0x43291c);return _0x32981b[_0xbaf1('0x21')](_0xbaf1('0x22'),_0x4f4527+'-'+_0x3b13b2+'/'+_0x58d217)['json'](_0xb9ac72);}return null;};}function patchUpdates(_0xd579de){return function(_0x33c524){try{jsonpatch[_0xbaf1('0x23')](_0x33c524,_0xd579de,!![]);}catch(_0x19f4d8){return BPromise[_0xbaf1('0x24')](_0x19f4d8);}return _0x33c524[_0xbaf1('0x25')]();};}function saveUpdates(_0x5b9f50,_0x487d25){return function(_0x3cb56b){if(_0x3cb56b){return _0x3cb56b[_0xbaf1('0x26')](_0x5b9f50)[_0xbaf1('0x27')](function(_0x496344){return _0x496344;});}return null;};}function removeEntity(_0x2e71ce,_0xefc243){return function(_0x40a0fa){if(_0x40a0fa){return _0x40a0fa['destroy']()[_0xbaf1('0x27')](function(){_0x2e71ce['status'](0xcc)[_0xbaf1('0x1c')]();});}};}function handleEntityNotFound(_0x181c9d,_0xae3b42){return function(_0x2afb55){if(!_0x2afb55){_0x181c9d[_0xbaf1('0x1a')](0x194);}return _0x2afb55;};}function handleError(_0x480835,_0x5d13d4){_0x5d13d4=_0x5d13d4||0x1f4;return function(_0x1cfbcd){logger[_0xbaf1('0x28')](_0x1cfbcd[_0xbaf1('0x29')]);if(_0x1cfbcd[_0xbaf1('0x2a')]){delete _0x1cfbcd['name'];}_0x480835[_0xbaf1('0x1b')](_0x5d13d4)['send'](_0x1cfbcd);};}exports[_0xbaf1('0x2b')]=function(_0x23d96a,_0x35fdc){var _0x17f2ea={},_0x2ccd80={},_0x3abb17={'count':0x0,'rows':[]};var _0x32bb6f=_['map'](db[_0xbaf1('0x2c')][_0xbaf1('0x2d')],function(_0x1a523d){return{'name':_0x1a523d[_0xbaf1('0x2e')],'type':_0x1a523d[_0xbaf1('0x2f')][_0xbaf1('0x30')]};});_0x2ccd80[_0xbaf1('0x31')]=_[_0xbaf1('0x32')](_0x32bb6f,'name');_0x2ccd80[_0xbaf1('0x33')]=_[_0xbaf1('0x34')](_0x23d96a[_0xbaf1('0x33')]);_0x2ccd80[_0xbaf1('0x35')]=_['intersection'](_0x2ccd80[_0xbaf1('0x31')],_0x2ccd80['query']);_0x17f2ea[_0xbaf1('0x36')]=_['intersection'](_0x2ccd80[_0xbaf1('0x31')],qs[_0xbaf1('0x37')](_0x23d96a[_0xbaf1('0x33')][_0xbaf1('0x37')]));_0x17f2ea['attributes']=_0x17f2ea[_0xbaf1('0x36')][_0xbaf1('0x38')]?_0x17f2ea[_0xbaf1('0x36')]:_0x2ccd80[_0xbaf1('0x31')];if(!_0x23d96a[_0xbaf1('0x33')][_0xbaf1('0x39')](_0xbaf1('0x3a'))){_0x17f2ea['limit']=qs[_0xbaf1('0x1f')](_0x23d96a[_0xbaf1('0x33')][_0xbaf1('0x1f')]);_0x17f2ea[_0xbaf1('0x1d')]=qs[_0xbaf1('0x1d')](_0x23d96a[_0xbaf1('0x33')][_0xbaf1('0x1d')]);}_0x17f2ea['order']=qs[_0xbaf1('0x3b')](_0x23d96a['query'][_0xbaf1('0x3b')]);_0x17f2ea[_0xbaf1('0x3c')]=qs[_0xbaf1('0x35')](_[_0xbaf1('0x3d')](_0x23d96a[_0xbaf1('0x33')],_0x2ccd80[_0xbaf1('0x35')]),_0x32bb6f);if(_0x23d96a[_0xbaf1('0x33')][_0xbaf1('0x3e')]){_0x17f2ea[_0xbaf1('0x3c')]=_['merge'](_0x17f2ea['where'],{'$or':_['map'](_0x32bb6f,function(_0x3e45aa){if(_0x3e45aa[_0xbaf1('0x2f')]!=='VIRTUAL'){var _0x2adc26={};_0x2adc26[_0x3e45aa[_0xbaf1('0x2a')]]={'$like':'%'+_0x23d96a[_0xbaf1('0x33')]['filter']+'%'};return _0x2adc26;}})});}_0x17f2ea=_[_0xbaf1('0x3f')]({},_0x17f2ea,_0x23d96a[_0xbaf1('0x40')]);var _0x3d2302={'where':_0x17f2ea['where']};return db[_0xbaf1('0x2c')][_0xbaf1('0x20')](_0x3d2302)['then'](function(_0x520ae2){_0x3abb17[_0xbaf1('0x20')]=_0x520ae2;if(_0x23d96a['query']['includeAll']){_0x17f2ea['include']=[{'all':!![]}];}return db[_0xbaf1('0x2c')][_0xbaf1('0x41')](_0x17f2ea);})[_0xbaf1('0x27')](function(_0x27c821){_0x3abb17[_0xbaf1('0x42')]=_0x27c821;return _0x3abb17;})[_0xbaf1('0x27')](respondWithFilteredResult(_0x35fdc,_0x17f2ea))[_0xbaf1('0x43')](handleError(_0x35fdc,null));};exports[_0xbaf1('0x44')]=function(_0x481722,_0x45f0b5){var _0x3d2785={'raw':!![],'where':{'id':_0x481722[_0xbaf1('0x45')]['id']}},_0x3d0793={};_0x3d0793['model']=_[_0xbaf1('0x34')](db['Cdr'][_0xbaf1('0x2d')]);_0x3d0793[_0xbaf1('0x33')]=_[_0xbaf1('0x34')](_0x481722['query']);_0x3d0793[_0xbaf1('0x35')]=_[_0xbaf1('0x46')](_0x3d0793[_0xbaf1('0x31')],_0x3d0793['query']);_0x3d2785[_0xbaf1('0x36')]=_['intersection'](_0x3d0793['model'],qs['fields'](_0x481722[_0xbaf1('0x33')][_0xbaf1('0x37')]));_0x3d2785[_0xbaf1('0x36')]=_0x3d2785[_0xbaf1('0x36')][_0xbaf1('0x38')]?_0x3d2785[_0xbaf1('0x36')]:_0x3d0793['model'];if(_0x481722[_0xbaf1('0x33')][_0xbaf1('0x47')]){_0x3d2785[_0xbaf1('0x48')]=[{'all':!![]}];}_0x3d2785=_[_0xbaf1('0x3f')]({},_0x3d2785,_0x481722[_0xbaf1('0x40')]);return db[_0xbaf1('0x2c')]['find'](_0x3d2785)[_0xbaf1('0x27')](handleEntityNotFound(_0x45f0b5,null))['then'](respondWithResult(_0x45f0b5,null))['catch'](handleError(_0x45f0b5,null));};exports[_0xbaf1('0x49')]=function(_0x12a9a1,_0x20328e){return db[_0xbaf1('0x2c')][_0xbaf1('0x49')](_0x12a9a1['body'],{})[_0xbaf1('0x27')](respondWithResult(_0x20328e,0xc9))['catch'](handleError(_0x20328e,null));};exports[_0xbaf1('0x26')]=function(_0x3f3b0d,_0xce46bc){if(_0x3f3b0d[_0xbaf1('0x4a')]['id']){delete _0x3f3b0d[_0xbaf1('0x4a')]['id'];}return db[_0xbaf1('0x2c')][_0xbaf1('0x4b')]({'where':{'id':_0x3f3b0d[_0xbaf1('0x45')]['id']}})[_0xbaf1('0x27')](handleEntityNotFound(_0xce46bc,null))[_0xbaf1('0x27')](saveUpdates(_0x3f3b0d[_0xbaf1('0x4a')],null))[_0xbaf1('0x27')](respondWithResult(_0xce46bc,null))[_0xbaf1('0x43')](handleError(_0xce46bc,null));};exports[_0xbaf1('0x4c')]=function(_0x364309,_0xad3fd3){return db['Cdr'][_0xbaf1('0x4b')]({'where':{'id':_0x364309[_0xbaf1('0x45')]['id']}})[_0xbaf1('0x27')](handleEntityNotFound(_0xad3fd3,null))[_0xbaf1('0x27')](removeEntity(_0xad3fd3,null))[_0xbaf1('0x43')](handleError(_0xad3fd3,null));};exports[_0xbaf1('0x4d')]=function(_0x3962b5,_0x312fd0){return db[_0xbaf1('0x2c')][_0xbaf1('0x4d')]()[_0xbaf1('0x27')](respondWithResult(_0x312fd0,null))['catch'](handleError(_0x312fd0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['dst','src','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition'];(function(_0x515257,_0x9ec736){var _0xdef091=function(_0x335163){while(--_0x335163){_0x515257['push'](_0x515257['shift']());}};_0xdef091(++_0x9ec736);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'cdr','paranoid':![],'indexes':[{'name':_0x7995('0xc'),'fields':[_0x7995('0xc')]},{'name':'calldate','fields':[_0x7995('0xd')]},{'name':_0x7995('0xe'),'fields':[_0x7995('0xe')]},{'name':_0x7995('0xf'),'fields':[_0x7995('0xf')]},{'name':_0x7995('0x10'),'fields':[_0x7995('0x10')]},{'name':'uniqueid','fields':[_0x7995('0x11')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x7a54=['Cdr','cdr','accountcode','disposition','dst','src','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./cdr.attributes','exports'];(function(_0x4d4731,_0x386a81){var _0x2428fb=function(_0xba4443){while(--_0xba4443){_0x4d4731['push'](_0x4d4731['shift']());}};_0x2428fb(++_0x386a81);}(_0x7a54,0x106));var _0x47a5=function(_0x21396b,_0x57829d){_0x21396b=_0x21396b-0x0;var _0x54cf69=_0x7a54[_0x21396b];return _0x54cf69;};'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 fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[{'name':'accountcode','fields':[_0x47a5('0xc')]},{'name':'calldate','fields':['calldate']},{'name':'disposition','fields':[_0x47a5('0xd')]},{'name':_0x47a5('0xe'),'fields':['dst']},{'name':_0x47a5('0xf'),'fields':['src']},{'name':'uniqueid','fields':[_0x47a5('0x10')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2486=['message','Cdr,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','Cdr,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x5abdfc,_0x385c27){var _0x124657=function(_0x667dde){while(--_0x667dde){_0x5abdfc['push'](_0x5abdfc['shift']());}};_0x124657(++_0x385c27);}(_0x2486,0x8e));var _0x6248=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2486[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6248('0x0'));var util=require(_0x6248('0x1'));var moment=require(_0x6248('0x2'));var BPromise=require(_0x6248('0x3'));var rs=require(_0x6248('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x6248('0x5'));var logger=require('../../config/logger')(_0x6248('0x6'));var config=require(_0x6248('0x7'));var jayson=require(_0x6248('0x8'));var client=jayson[_0x6248('0x9')][_0x6248('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x395617,_0x5c4559,_0x21d08e){return new BPromise(function(_0x4078b6,_0x25c922){return client[_0x6248('0xb')](_0x395617,_0x21d08e)[_0x6248('0xc')](function(_0x4f9724){logger[_0x6248('0xd')]('Cdr,\x20%s,\x20%s',_0x5c4559,_0x6248('0xe'));logger[_0x6248('0xf')](_0x6248('0x10'),_0x5c4559,_0x6248('0xe'),JSON[_0x6248('0x11')](_0x4f9724));if(_0x4f9724[_0x6248('0x12')]){if(_0x4f9724[_0x6248('0x12')]['code']===0x1f4){logger[_0x6248('0x12')]('Cdr,\x20%s,\x20%s',_0x5c4559,_0x4f9724[_0x6248('0x12')]['message']);return _0x25c922(_0x4f9724[_0x6248('0x12')][_0x6248('0x13')]);}logger[_0x6248('0x12')](_0x6248('0x14'),_0x5c4559,_0x4f9724[_0x6248('0x12')][_0x6248('0x13')]);return _0x4078b6(_0x4f9724[_0x6248('0x12')]['message']);}else{logger[_0x6248('0xd')]('Cdr,\x20%s,\x20%s',_0x5c4559,_0x6248('0xe'));_0x4078b6(_0x4f9724[_0x6248('0x15')][_0x6248('0x13')]);}})[_0x6248('0x16')](function(_0xe473cc){logger[_0x6248('0x12')](_0x6248('0x14'),_0x5c4559,_0xe473cc);_0x25c922(_0xe473cc);});});}
\ No newline at end of file
+var _0xc475=['result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','request','then','Cdr,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info'];(function(_0x2d344f,_0x25fa84){var _0x2e796b=function(_0x10466a){while(--_0x10466a){_0x2d344f['push'](_0x2d344f['shift']());}};_0x2e796b(++_0x25fa84);}(_0xc475,0x9c));var _0x5c47=function(_0x26dd98,_0x887363){_0x26dd98=_0x26dd98-0x0;var _0x50b339=_0xc475[_0x26dd98];return _0x50b339;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x5c47('0x0'));var BPromise=require(_0x5c47('0x1'));var rs=require(_0x5c47('0x2'));var fs=require('fs');var Redis=require(_0x5c47('0x3'));var db=require(_0x5c47('0x4'))['db'];var utils=require(_0x5c47('0x5'));var logger=require(_0x5c47('0x6'))(_0x5c47('0x7'));var config=require('../../config/environment');var jayson=require(_0x5c47('0x8'));var client=jayson['client'][_0x5c47('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c0cb5,_0x984031,_0x465269){return new BPromise(function(_0x150208,_0x4a3959){return client[_0x5c47('0xa')](_0x4c0cb5,_0x465269)[_0x5c47('0xb')](function(_0x3c8283){logger['info'](_0x5c47('0xc'),_0x984031,_0x5c47('0xd'));logger[_0x5c47('0xe')]('Cdr,\x20%s,\x20%s,\x20%s',_0x984031,_0x5c47('0xd'),JSON[_0x5c47('0xf')](_0x3c8283));if(_0x3c8283[_0x5c47('0x10')]){if(_0x3c8283[_0x5c47('0x10')][_0x5c47('0x11')]===0x1f4){logger[_0x5c47('0x10')](_0x5c47('0xc'),_0x984031,_0x3c8283[_0x5c47('0x10')][_0x5c47('0x12')]);return _0x4a3959(_0x3c8283[_0x5c47('0x10')]['message']);}logger[_0x5c47('0x10')](_0x5c47('0xc'),_0x984031,_0x3c8283[_0x5c47('0x10')][_0x5c47('0x12')]);return _0x150208(_0x3c8283[_0x5c47('0x10')]['message']);}else{logger[_0x5c47('0x13')](_0x5c47('0xc'),_0x984031,_0x5c47('0xd'));_0x150208(_0x3c8283[_0x5c47('0x14')][_0x5c47('0x12')]);}})[_0x5c47('0x15')](function(_0x533f38){logger[_0x5c47('0x10')](_0x5c47('0xc'),_0x984031,_0x533f38);_0x4a3959(_0x533f38);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x27c37c,_0x755b76){var _0x414bd0=function(_0x34b896){while(--_0x34b896){_0x27c37c['push'](_0x27c37c['shift']());}};_0x414bd0(++_0x755b76);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'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 fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
+var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x52a857,_0xc99fa1){var _0x4e2aae=function(_0x5410d9){while(--_0x5410d9){_0x52a857['push'](_0x52a857['shift']());}};_0x4e2aae(++_0xc99fa1);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'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 fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc05f=['INTEGER','STRING','TEXT','*,*,*,*','sequelize','exports'];(function(_0x5c7ca0,_0x2a7ecb){var _0x226229=function(_0x3d7a80){while(--_0x3d7a80){_0x5c7ca0['push'](_0x5c7ca0['shift']());}};_0x226229(++_0x2a7ecb);}(_0xc05f,0x9a));var _0xfc05=function(_0x52ba28,_0x77c858){_0x52ba28=_0x52ba28-0x0;var _0x20097c=_0xc05f[_0x52ba28];return _0x20097c;};'use strict';var Sequelize=require(_0xfc05('0x0'));module[_0xfc05('0x1')]={'priority':{'type':Sequelize[_0xfc05('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xfc05('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0xfc05('0x4')]()},'description':{'type':Sequelize[_0xfc05('0x3')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xfc05('0x5')}};
\ No newline at end of file
+var _0x2f2d=['exports','INTEGER','noop','TEXT','STRING','*,*,*,*','sequelize'];(function(_0xfef967,_0x429164){var _0x3d65f3=function(_0x4a2a9d){while(--_0x4a2a9d){_0xfef967['push'](_0xfef967['shift']());}};_0x3d65f3(++_0x429164);}(_0x2f2d,0xdf));var _0xd2f2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2f2d[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xd2f2('0x0'));module[_0xd2f2('0x1')]={'priority':{'type':Sequelize[_0xd2f2('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xd2f2('0x3')},'appdata':{'type':Sequelize[_0xd2f2('0x4')]()},'description':{'type':Sequelize[_0xd2f2('0x5')]},'interval':{'type':Sequelize[_0xd2f2('0x5')],'defaultValue':_0xd2f2('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c6a=['sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range','json','reject','update','destroy','then','error','stack','name','send','show','params','query','keys','filters','model','attributes','intersection','fields','length','includeAll','include','ChatApplication','find','body','catch','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','util','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2c6a,0xa7));var _0xa2c6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2c6a[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xa2c6('0x0'));var rimraf=require(_0xa2c6('0x1'));var zipdir=require(_0xa2c6('0x2'));var jsonpatch=require(_0xa2c6('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa2c6('0x4'));var Mustache=require('mustache');var util=require(_0xa2c6('0x5'));var path=require(_0xa2c6('0x6'));var sox=require(_0xa2c6('0x7'));var csv=require(_0xa2c6('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xa2c6('0x9'));var squel=require(_0xa2c6('0xa'));var crypto=require(_0xa2c6('0xb'));var jsforce=require(_0xa2c6('0xc'));var deskjs=require(_0xa2c6('0xd'));var toCsv=require(_0xa2c6('0x8'));var querystring=require(_0xa2c6('0xe'));var Papa=require('papaparse');var Redis=require(_0xa2c6('0xf'));var authService=require(_0xa2c6('0x10'));var qs=require(_0xa2c6('0x11'));var as=require(_0xa2c6('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa2c6('0x13'))('api');var utils=require(_0xa2c6('0x14'));var config=require(_0xa2c6('0x15'));var licenseUtil=require(_0xa2c6('0x16'));var db=require(_0xa2c6('0x17'))['db'];function respondWithStatusCode(_0x4955be,_0x2897ee){_0x2897ee=_0x2897ee||0xcc;return function(_0x3234b6){if(_0x3234b6){return _0x4955be[_0xa2c6('0x18')](_0x2897ee);}return _0x4955be['status'](_0x2897ee)[_0xa2c6('0x19')]();};}function respondWithResult(_0x1dc749,_0x3ebb15){_0x3ebb15=_0x3ebb15||0xc8;return function(_0x1bc1dc){if(_0x1bc1dc){return _0x1dc749[_0xa2c6('0x1a')](_0x3ebb15)['json'](_0x1bc1dc);}};}function respondWithFilteredResult(_0x412229,_0x374404){return function(_0x43b97b){if(_0x43b97b){var _0x354dff=typeof _0x374404[_0xa2c6('0x1b')]===_0xa2c6('0x1c')&&typeof _0x374404['limit']===_0xa2c6('0x1c');var _0x4d49f8=_0x43b97b[_0xa2c6('0x1d')];var _0x114424=_0x354dff?0x0:_0x374404[_0xa2c6('0x1b')];var _0x2479bd=_0x354dff?_0x43b97b[_0xa2c6('0x1d')]:_0x374404[_0xa2c6('0x1b')]+_0x374404[_0xa2c6('0x1e')];var _0x2b3d6e;if(_0x2479bd>=_0x4d49f8){_0x2479bd=_0x4d49f8;_0x2b3d6e=0xc8;}else{_0x2b3d6e=0xce;}_0x412229['status'](_0x2b3d6e);return _0x412229[_0xa2c6('0x1f')](_0xa2c6('0x20'),_0x114424+'-'+_0x2479bd+'/'+_0x4d49f8)[_0xa2c6('0x21')](_0x43b97b);}return null;};}function patchUpdates(_0x21ec92){return function(_0x2a2fc9){try{jsonpatch['apply'](_0x2a2fc9,_0x21ec92,!![]);}catch(_0x35dd2a){return BPromise[_0xa2c6('0x22')](_0x35dd2a);}return _0x2a2fc9['save']();};}function saveUpdates(_0x20a86e,_0x58530d){return function(_0x8b2eea){if(_0x8b2eea){return _0x8b2eea[_0xa2c6('0x23')](_0x20a86e)['then'](function(_0x291057){return _0x291057;});}return null;};}function removeEntity(_0x5aabe2,_0x19a765){return function(_0x168de7){if(_0x168de7){return _0x168de7[_0xa2c6('0x24')]()[_0xa2c6('0x25')](function(){_0x5aabe2[_0xa2c6('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2ed646,_0x4e9dcc){return function(_0x14c01e){if(!_0x14c01e){_0x2ed646[_0xa2c6('0x18')](0x194);}return _0x14c01e;};}function handleError(_0x5d687a,_0x2cedee){_0x2cedee=_0x2cedee||0x1f4;return function(_0x4485d4){logger[_0xa2c6('0x26')](_0x4485d4[_0xa2c6('0x27')]);if(_0x4485d4[_0xa2c6('0x28')]){delete _0x4485d4[_0xa2c6('0x28')];}_0x5d687a[_0xa2c6('0x1a')](_0x2cedee)[_0xa2c6('0x29')](_0x4485d4);};}exports[_0xa2c6('0x2a')]=function(_0x57d67a,_0x1655f8){var _0x46b082={'raw':!![],'where':{'id':_0x57d67a[_0xa2c6('0x2b')]['id']}},_0x233284={};_0x233284['model']=_['keys'](db['ChatApplication']['rawAttributes']);_0x233284[_0xa2c6('0x2c')]=_[_0xa2c6('0x2d')](_0x57d67a[_0xa2c6('0x2c')]);_0x233284[_0xa2c6('0x2e')]=_['intersection'](_0x233284[_0xa2c6('0x2f')],_0x233284[_0xa2c6('0x2c')]);_0x46b082[_0xa2c6('0x30')]=_[_0xa2c6('0x31')](_0x233284[_0xa2c6('0x2f')],qs[_0xa2c6('0x32')](_0x57d67a[_0xa2c6('0x2c')][_0xa2c6('0x32')]));_0x46b082[_0xa2c6('0x30')]=_0x46b082['attributes'][_0xa2c6('0x33')]?_0x46b082[_0xa2c6('0x30')]:_0x233284[_0xa2c6('0x2f')];if(_0x57d67a['query'][_0xa2c6('0x34')]){_0x46b082[_0xa2c6('0x35')]=[{'all':!![]}];}_0x46b082=_['merge']({},_0x46b082,_0x57d67a['options']);return db[_0xa2c6('0x36')][_0xa2c6('0x37')](_0x46b082)[_0xa2c6('0x25')](handleEntityNotFound(_0x1655f8,null))[_0xa2c6('0x25')](respondWithResult(_0x1655f8,null))['catch'](handleError(_0x1655f8,null));};exports[_0xa2c6('0x23')]=function(_0x4fec50,_0xfb137b){if(_0x4fec50[_0xa2c6('0x38')]['id']){delete _0x4fec50[_0xa2c6('0x38')]['id'];}return db[_0xa2c6('0x36')][_0xa2c6('0x37')]({'where':{'id':_0x4fec50['params']['id']}})[_0xa2c6('0x25')](handleEntityNotFound(_0xfb137b,null))[_0xa2c6('0x25')](saveUpdates(_0x4fec50[_0xa2c6('0x38')],null))[_0xa2c6('0x25')](respondWithResult(_0xfb137b,null))[_0xa2c6('0x39')](handleError(_0xfb137b,null));};exports[_0xa2c6('0x24')]=function(_0x2f5e6e,_0x49cbc5){return db[_0xa2c6('0x36')][_0xa2c6('0x37')]({'where':{'id':_0x2f5e6e['params']['id']}})[_0xa2c6('0x25')](handleEntityNotFound(_0x49cbc5,null))['then'](removeEntity(_0x49cbc5,null))[_0xa2c6('0x39')](handleError(_0x49cbc5,null));};
\ No newline at end of file
+var _0x6324=['end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','send','show','model','keys','rawAttributes','intersection','query','fields','attributes','includeAll','include','options','ChatApplication','body','params','catch','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status'];(function(_0x37a786,_0x21be51){var _0x955db7=function(_0xd63f25){while(--_0xd63f25){_0x37a786['push'](_0x37a786['shift']());}};_0x955db7(++_0x21be51);}(_0x6324,0x142));var _0x4632=function(_0x37512d,_0x44495e){_0x37512d=_0x37512d-0x0;var _0x133f49=_0x6324[_0x37512d];return _0x133f49;};'use strict';var emlformat=require(_0x4632('0x0'));var rimraf=require(_0x4632('0x1'));var zipdir=require(_0x4632('0x2'));var jsonpatch=require(_0x4632('0x3'));var rp=require('request-promise');var moment=require(_0x4632('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4632('0x5'));var util=require('util');var path=require(_0x4632('0x6'));var sox=require('sox');var csv=require(_0x4632('0x7'));var ejs=require(_0x4632('0x8'));var fs=require('fs');var fs_extra=require(_0x4632('0x9'));var _=require(_0x4632('0xa'));var squel=require('squel');var crypto=require(_0x4632('0xb'));var jsforce=require(_0x4632('0xc'));var deskjs=require(_0x4632('0xd'));var toCsv=require('to-csv');var querystring=require(_0x4632('0xe'));var Papa=require(_0x4632('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4632('0x10'));var as=require(_0x4632('0x11'));var hardwareService=require(_0x4632('0x12'));var logger=require(_0x4632('0x13'))(_0x4632('0x14'));var utils=require(_0x4632('0x15'));var config=require(_0x4632('0x16'));var licenseUtil=require(_0x4632('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b3f0f,_0x499d88){_0x499d88=_0x499d88||0xcc;return function(_0x4719f7){if(_0x4719f7){return _0x2b3f0f[_0x4632('0x18')](_0x499d88);}return _0x2b3f0f[_0x4632('0x19')](_0x499d88)[_0x4632('0x1a')]();};}function respondWithResult(_0x51ee37,_0x3ba361){_0x3ba361=_0x3ba361||0xc8;return function(_0x255882){if(_0x255882){return _0x51ee37[_0x4632('0x19')](_0x3ba361)[_0x4632('0x1b')](_0x255882);}};}function respondWithFilteredResult(_0x1c1be0,_0x5438ab){return function(_0x47b349){if(_0x47b349){var _0x2fd7ae=typeof _0x5438ab[_0x4632('0x1c')]===_0x4632('0x1d')&&typeof _0x5438ab[_0x4632('0x1e')]==='undefined';var _0x158831=_0x47b349[_0x4632('0x1f')];var _0x1a94c0=_0x2fd7ae?0x0:_0x5438ab['offset'];var _0x3cddfa=_0x2fd7ae?_0x47b349[_0x4632('0x1f')]:_0x5438ab['offset']+_0x5438ab['limit'];var _0x1c0523;if(_0x3cddfa>=_0x158831){_0x3cddfa=_0x158831;_0x1c0523=0xc8;}else{_0x1c0523=0xce;}_0x1c1be0[_0x4632('0x19')](_0x1c0523);return _0x1c1be0[_0x4632('0x20')](_0x4632('0x21'),_0x1a94c0+'-'+_0x3cddfa+'/'+_0x158831)[_0x4632('0x1b')](_0x47b349);}return null;};}function patchUpdates(_0x3d2d23){return function(_0x9ab826){try{jsonpatch[_0x4632('0x22')](_0x9ab826,_0x3d2d23,!![]);}catch(_0x29f875){return BPromise[_0x4632('0x23')](_0x29f875);}return _0x9ab826[_0x4632('0x24')]();};}function saveUpdates(_0x2d656a,_0x2ca6a5){return function(_0x263907){if(_0x263907){return _0x263907[_0x4632('0x25')](_0x2d656a)[_0x4632('0x26')](function(_0x4264d5){return _0x4264d5;});}return null;};}function removeEntity(_0x3537ed,_0x380a9f){return function(_0x1e1b86){if(_0x1e1b86){return _0x1e1b86[_0x4632('0x27')]()[_0x4632('0x26')](function(){_0x3537ed[_0x4632('0x19')](0xcc)[_0x4632('0x1a')]();});}};}function handleEntityNotFound(_0xb074d,_0x1b8de0){return function(_0x4af026){if(!_0x4af026){_0xb074d[_0x4632('0x18')](0x194);}return _0x4af026;};}function handleError(_0x21118c,_0x372679){_0x372679=_0x372679||0x1f4;return function(_0x22d0f5){logger[_0x4632('0x28')](_0x22d0f5[_0x4632('0x29')]);if(_0x22d0f5['name']){delete _0x22d0f5['name'];}_0x21118c[_0x4632('0x19')](_0x372679)[_0x4632('0x2a')](_0x22d0f5);};}exports[_0x4632('0x2b')]=function(_0x35a533,_0x34079f){var _0x119d1b={'raw':!![],'where':{'id':_0x35a533['params']['id']}},_0x3570b2={};_0x3570b2[_0x4632('0x2c')]=_[_0x4632('0x2d')](db['ChatApplication'][_0x4632('0x2e')]);_0x3570b2['query']=_[_0x4632('0x2d')](_0x35a533['query']);_0x3570b2['filters']=_[_0x4632('0x2f')](_0x3570b2[_0x4632('0x2c')],_0x3570b2[_0x4632('0x30')]);_0x119d1b['attributes']=_['intersection'](_0x3570b2[_0x4632('0x2c')],qs[_0x4632('0x31')](_0x35a533['query']['fields']));_0x119d1b[_0x4632('0x32')]=_0x119d1b[_0x4632('0x32')]['length']?_0x119d1b[_0x4632('0x32')]:_0x3570b2[_0x4632('0x2c')];if(_0x35a533[_0x4632('0x30')][_0x4632('0x33')]){_0x119d1b[_0x4632('0x34')]=[{'all':!![]}];}_0x119d1b=_['merge']({},_0x119d1b,_0x35a533[_0x4632('0x35')]);return db[_0x4632('0x36')]['find'](_0x119d1b)['then'](handleEntityNotFound(_0x34079f,null))[_0x4632('0x26')](respondWithResult(_0x34079f,null))['catch'](handleError(_0x34079f,null));};exports['update']=function(_0x196b3b,_0x5d34ac){if(_0x196b3b[_0x4632('0x37')]['id']){delete _0x196b3b[_0x4632('0x37')]['id'];}return db[_0x4632('0x36')]['find']({'where':{'id':_0x196b3b[_0x4632('0x38')]['id']}})[_0x4632('0x26')](handleEntityNotFound(_0x5d34ac,null))[_0x4632('0x26')](saveUpdates(_0x196b3b[_0x4632('0x37')],null))[_0x4632('0x26')](respondWithResult(_0x5d34ac,null))['catch'](handleError(_0x5d34ac,null));};exports['destroy']=function(_0x3114c4,_0xd90c7c){return db[_0x4632('0x36')]['find']({'where':{'id':_0x3114c4['params']['id']}})['then'](handleEntityNotFound(_0xd90c7c,null))[_0x4632('0x26')](removeEntity(_0xd90c7c,null))[_0x4632('0x39')](handleError(_0xd90c7c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75aa=['../../config/environment','./chatApplication.attributes','ChatApplication','chat_applications','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x7450c6,_0x5ddd3e){var _0x4d14a1=function(_0x34796f){while(--_0x34796f){_0x7450c6['push'](_0x7450c6['shift']());}};_0x4d14a1(++_0x5ddd3e);}(_0x75aa,0xef));var _0xa75a=function(_0x2990c4,_0x1b4179){_0x2990c4=_0x2990c4-0x0;var _0x3d3dc8=_0x75aa[_0x2990c4];return _0x3d3dc8;};'use strict';var _=require(_0xa75a('0x0'));var util=require('util');var logger=require(_0xa75a('0x1'))(_0xa75a('0x2'));var moment=require(_0xa75a('0x3'));var BPromise=require(_0xa75a('0x4'));var rp=require(_0xa75a('0x5'));var fs=require('fs');var path=require(_0xa75a('0x6'));var rimraf=require(_0xa75a('0x7'));var config=require(_0xa75a('0x8'));var attributes=require(_0xa75a('0x9'));module['exports']=function(_0x3f07ef,_0x13e354){return _0x3f07ef['define'](_0xa75a('0xa'),attributes,{'tableName':_0xa75a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xa75a('0xc'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xc910=['util','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./chatApplication.attributes','exports','define','chat_applications','utf8mb4','utf8mb4_unicode_ci'];(function(_0x24d399,_0x4c3760){var _0x5f0014=function(_0x93cec0){while(--_0x93cec0){_0x24d399['push'](_0x24d399['shift']());}};_0x5f0014(++_0x4c3760);}(_0xc910,0x1e1));var _0x0c91=function(_0x5323f8,_0xd4d0f9){_0x5323f8=_0x5323f8-0x0;var _0x4c1ce7=_0xc910[_0x5323f8];return _0x4c1ce7;};'use strict';var _=require('lodash');var util=require(_0x0c91('0x0'));var logger=require(_0x0c91('0x1'))('api');var moment=require(_0x0c91('0x2'));var BPromise=require(_0x0c91('0x3'));var rp=require(_0x0c91('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0c91('0x5'));var config=require(_0x0c91('0x6'));var attributes=require(_0x0c91('0x7'));module[_0x0c91('0x8')]=function(_0x4c4eb4,_0x3d2049){return _0x4c4eb4[_0x0c91('0x9')]('ChatApplication',attributes,{'tableName':_0x0c91('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x0c91('0xb'),'collate':_0x0c91('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x694a=['debug','stringify','error','message','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','ChatApplication,\x20%s,\x20%s','request\x20sent'];(function(_0x12a674,_0x475b5b){var _0x28680a=function(_0x28791a){while(--_0x28791a){_0x12a674['push'](_0x12a674['shift']());}};_0x28680a(++_0x475b5b);}(_0x694a,0x121));var _0xa694=function(_0x294652,_0x36149f){_0x294652=_0x294652-0x0;var _0x50bb88=_0x694a[_0x294652];return _0x50bb88;};'use strict';var _=require(_0xa694('0x0'));var util=require('util');var moment=require(_0xa694('0x1'));var BPromise=require(_0xa694('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa694('0x3'));var db=require(_0xa694('0x4'))['db'];var utils=require(_0xa694('0x5'));var logger=require(_0xa694('0x6'))(_0xa694('0x7'));var config=require(_0xa694('0x8'));var jayson=require(_0xa694('0x9'));var client=jayson['client'][_0xa694('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3435fe,_0x1c2e7b,_0x27f66d){return new BPromise(function(_0x10e2d8,_0x5efbf5){return client[_0xa694('0xb')](_0x3435fe,_0x27f66d)[_0xa694('0xc')](function(_0x418264){logger['info'](_0xa694('0xd'),_0x1c2e7b,_0xa694('0xe'));logger[_0xa694('0xf')]('ChatApplication,\x20%s,\x20%s,\x20%s',_0x1c2e7b,_0xa694('0xe'),JSON[_0xa694('0x10')](_0x418264));if(_0x418264[_0xa694('0x11')]){if(_0x418264[_0xa694('0x11')]['code']===0x1f4){logger[_0xa694('0x11')](_0xa694('0xd'),_0x1c2e7b,_0x418264[_0xa694('0x11')][_0xa694('0x12')]);return _0x5efbf5(_0x418264[_0xa694('0x11')][_0xa694('0x12')]);}logger[_0xa694('0x11')](_0xa694('0xd'),_0x1c2e7b,_0x418264[_0xa694('0x11')]['message']);return _0x10e2d8(_0x418264['error']['message']);}else{logger['info'](_0xa694('0xd'),_0x1c2e7b,_0xa694('0xe'));_0x10e2d8(_0x418264['result'][_0xa694('0x12')]);}})['catch'](function(_0x252ea8){logger[_0xa694('0x11')](_0xa694('0xd'),_0x1c2e7b,_0x252ea8);_0x5efbf5(_0x252ea8);});});}
\ No newline at end of file
+var _0xe5f6=['stringify','error','code','message','result','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request','then','info','ChatApplication,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x26bcec,_0xe13f50){var _0x1049dc=function(_0x4c0d9b){while(--_0x4c0d9b){_0x26bcec['push'](_0x26bcec['shift']());}};_0x1049dc(++_0xe13f50);}(_0xe5f6,0x165));var _0x6e5f=function(_0x546177,_0x252857){_0x546177=_0x546177-0x0;var _0x324a56=_0xe5f6[_0x546177];return _0x324a56;};'use strict';var _=require(_0x6e5f('0x0'));var util=require(_0x6e5f('0x1'));var moment=require(_0x6e5f('0x2'));var BPromise=require('bluebird');var rs=require(_0x6e5f('0x3'));var fs=require('fs');var Redis=require(_0x6e5f('0x4'));var db=require(_0x6e5f('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x6e5f('0x6'))(_0x6e5f('0x7'));var config=require('../../config/environment');var jayson=require(_0x6e5f('0x8'));var client=jayson[_0x6e5f('0x9')][_0x6e5f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5b5a2f,_0x3c3f37,_0xe0562e){return new BPromise(function(_0x33239d,_0x1b8094){return client[_0x6e5f('0xb')](_0x5b5a2f,_0xe0562e)[_0x6e5f('0xc')](function(_0x3d4207){logger[_0x6e5f('0xd')](_0x6e5f('0xe'),_0x3c3f37,_0x6e5f('0xf'));logger[_0x6e5f('0x10')]('ChatApplication,\x20%s,\x20%s,\x20%s',_0x3c3f37,_0x6e5f('0xf'),JSON[_0x6e5f('0x11')](_0x3d4207));if(_0x3d4207[_0x6e5f('0x12')]){if(_0x3d4207['error'][_0x6e5f('0x13')]===0x1f4){logger['error'](_0x6e5f('0xe'),_0x3c3f37,_0x3d4207[_0x6e5f('0x12')][_0x6e5f('0x14')]);return _0x1b8094(_0x3d4207[_0x6e5f('0x12')]['message']);}logger[_0x6e5f('0x12')](_0x6e5f('0xe'),_0x3c3f37,_0x3d4207[_0x6e5f('0x12')][_0x6e5f('0x14')]);return _0x33239d(_0x3d4207['error'][_0x6e5f('0x14')]);}else{logger[_0x6e5f('0xd')](_0x6e5f('0xe'),_0x3c3f37,_0x6e5f('0xf'));_0x33239d(_0x3d4207[_0x6e5f('0x15')][_0x6e5f('0x14')]);}})['catch'](function(_0x85d6e4){logger['error']('ChatApplication,\x20%s,\x20%s',_0x3c3f37,_0x85d6e4);_0x1b8094(_0x85d6e4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88f5=['isAuthenticated','show','put','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatApplication.controller','get','/:id'];(function(_0x10bcc4,_0x4400e2){var _0x2da988=function(_0x2ee849){while(--_0x2ee849){_0x10bcc4['push'](_0x10bcc4['shift']());}};_0x2da988(++_0x4400e2);}(_0x88f5,0x114));var _0x588f=function(_0x6730fa,_0x484c4f){_0x6730fa=_0x6730fa-0x0;var _0x141feb=_0x88f5[_0x6730fa];return _0x141feb;};'use strict';var multer=require(_0x588f('0x0'));var util=require(_0x588f('0x1'));var path=require('path');var timeout=require(_0x588f('0x2'));var express=require(_0x588f('0x3'));var router=express[_0x588f('0x4')]();var fs_extra=require(_0x588f('0x5'));var auth=require(_0x588f('0x6'));var interaction=require(_0x588f('0x7'));var config=require(_0x588f('0x8'));var controller=require(_0x588f('0x9'));router[_0x588f('0xa')](_0x588f('0xb'),auth[_0x588f('0xc')](),controller[_0x588f('0xd')]);router[_0x588f('0xe')](_0x588f('0xb'),auth[_0x588f('0xc')](),controller['update']);router[_0x588f('0xf')](_0x588f('0xb'),auth[_0x588f('0xc')](),controller[_0x588f('0x10')]);module[_0x588f('0x11')]=router;
\ No newline at end of file
+var _0x96b2=['../../components/auth/service','get','/:id','show','put','isAuthenticated','update','destroy','exports','multer','util','path','express','fs-extra'];(function(_0x50587f,_0x5bc8e6){var _0x363c05=function(_0x2dfcb2){while(--_0x2dfcb2){_0x50587f['push'](_0x50587f['shift']());}};_0x363c05(++_0x5bc8e6);}(_0x96b2,0x105));var _0x296b=function(_0x33d7c2,_0x858971){_0x33d7c2=_0x33d7c2-0x0;var _0x49e29a=_0x96b2[_0x33d7c2];return _0x49e29a;};'use strict';var multer=require(_0x296b('0x0'));var util=require(_0x296b('0x1'));var path=require(_0x296b('0x2'));var timeout=require('connect-timeout');var express=require(_0x296b('0x3'));var router=express['Router']();var fs_extra=require(_0x296b('0x4'));var auth=require(_0x296b('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./chatApplication.controller');router[_0x296b('0x6')](_0x296b('0x7'),auth['isAuthenticated'](),controller[_0x296b('0x8')]);router[_0x296b('0x9')]('/:id',auth[_0x296b('0xa')](),controller[_0x296b('0xb')]);router['delete'](_0x296b('0x7'),auth[_0x296b('0xa')](),controller[_0x296b('0xc')]);module[_0x296b('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e9f=['exports','STRING','sequelize'];(function(_0x59c683,_0x209444){var _0x47251b=function(_0x4db046){while(--_0x4db046){_0x59c683['push'](_0x59c683['shift']());}};_0x47251b(++_0x209444);}(_0x9e9f,0x1cd));var _0xf9e9=function(_0x4dcc2d,_0x422839){_0x4dcc2d=_0x4dcc2d-0x0;var _0x1bbd79=_0x9e9f[_0x4dcc2d];return _0x1bbd79;};'use strict';var Sequelize=require(_0xf9e9('0x0'));module[_0xf9e9('0x1')]={'name':{'type':Sequelize[_0xf9e9('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0x1203=['sequelize','exports','STRING','BOOLEAN'];(function(_0x40c0bb,_0x2fad1a){var _0x9ce19a=function(_0x555cd1){while(--_0x555cd1){_0x40c0bb['push'](_0x40c0bb['shift']());}};_0x9ce19a(++_0x2fad1a);}(_0x1203,0x8c));var _0x3120=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x1203[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x3120('0x0'));module[_0x3120('0x1')]={'name':{'type':Sequelize[_0x3120('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x3120('0x2')]},'write':{'type':Sequelize[_0x3120('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1907=['user','toInteger','addMembers','ids','User','getMembers','removeMembers','addMessage','ChatGroupId','getMessages','pick','$gte','split','format','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','map','ChatGroup','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','merge','type','VIRTUAL','filter','includeAll','include','findAll','rows','catch','show','options','find','create','body','params','describe','getUnread','ChatInternalMessage'];(function(_0x4c1dbc,_0x60cc62){var _0x3a3a09=function(_0x84ae){while(--_0x84ae){_0x4c1dbc['push'](_0x4c1dbc['shift']());}};_0x3a3a09(++_0x60cc62);}(_0x1907,0x6d));var _0x7190=function(_0x135b97,_0x9fa195){_0x135b97=_0x135b97-0x0;var _0x503581=_0x1907[_0x135b97];return _0x503581;};'use strict';var emlformat=require(_0x7190('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7190('0x1'));var jsonpatch=require(_0x7190('0x2'));var rp=require('request-promise');var moment=require(_0x7190('0x3'));var BPromise=require(_0x7190('0x4'));var Mustache=require(_0x7190('0x5'));var util=require('util');var path=require('path');var sox=require(_0x7190('0x6'));var csv=require(_0x7190('0x7'));var ejs=require(_0x7190('0x8'));var fs=require('fs');var fs_extra=require(_0x7190('0x9'));var _=require(_0x7190('0xa'));var squel=require('squel');var crypto=require(_0x7190('0xb'));var jsforce=require(_0x7190('0xc'));var deskjs=require(_0x7190('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7190('0xe'));var Redis=require(_0x7190('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x7190('0x10'));var as=require(_0x7190('0x11'));var hardwareService=require(_0x7190('0x12'));var logger=require(_0x7190('0x13'))(_0x7190('0x14'));var utils=require('../../config/utils');var config=require(_0x7190('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x7190('0x16')]=_[_0x7190('0x17')](config['redis'],{'host':_0x7190('0x18'),'port':0x18eb});var socket=require(_0x7190('0x19'))(new Redis(config[_0x7190('0x16')]));require(_0x7190('0x1a'))['register'](socket);function respondWithStatusCode(_0x3a83c5,_0x3087ea){_0x3087ea=_0x3087ea||0xcc;return function(_0x535b81){if(_0x535b81){return _0x3a83c5[_0x7190('0x1b')](_0x3087ea);}return _0x3a83c5[_0x7190('0x1c')](_0x3087ea)['end']();};}function respondWithResult(_0x129ea0,_0x156917){_0x156917=_0x156917||0xc8;return function(_0x21d9af){if(_0x21d9af){return _0x129ea0[_0x7190('0x1c')](_0x156917)[_0x7190('0x1d')](_0x21d9af);}};}function respondWithFilteredResult(_0x54577c,_0x5dce4f){return function(_0x1dd015){if(_0x1dd015){var _0x34870d=typeof _0x5dce4f[_0x7190('0x1e')]===_0x7190('0x1f')&&typeof _0x5dce4f[_0x7190('0x20')]===_0x7190('0x1f');var _0x344356=_0x1dd015[_0x7190('0x21')];var _0x2a36c5=_0x34870d?0x0:_0x5dce4f['offset'];var _0x1b0784=_0x34870d?_0x1dd015[_0x7190('0x21')]:_0x5dce4f[_0x7190('0x1e')]+_0x5dce4f[_0x7190('0x20')];var _0x493c84;if(_0x1b0784>=_0x344356){_0x1b0784=_0x344356;_0x493c84=0xc8;}else{_0x493c84=0xce;}_0x54577c[_0x7190('0x1c')](_0x493c84);return _0x54577c[_0x7190('0x22')](_0x7190('0x23'),_0x2a36c5+'-'+_0x1b0784+'/'+_0x344356)[_0x7190('0x1d')](_0x1dd015);}return null;};}function patchUpdates(_0x28db81){return function(_0x168cdb){try{jsonpatch[_0x7190('0x24')](_0x168cdb,_0x28db81,!![]);}catch(_0x47f0bf){return BPromise[_0x7190('0x25')](_0x47f0bf);}return _0x168cdb[_0x7190('0x26')]();};}function saveUpdates(_0x19a681,_0x3a8db2){return function(_0x33fce8){if(_0x33fce8){return _0x33fce8[_0x7190('0x27')](_0x19a681)[_0x7190('0x28')](function(_0x563b5a){return _0x563b5a;});}return null;};}function removeEntity(_0x25c48f,_0x32b613){return function(_0x4a717f){if(_0x4a717f){return _0x4a717f[_0x7190('0x29')]()[_0x7190('0x28')](function(){_0x25c48f[_0x7190('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x238a4d,_0x3f1608){return function(_0x56ce36){if(!_0x56ce36){_0x238a4d[_0x7190('0x1b')](0x194);}return _0x56ce36;};}function handleError(_0x22292c,_0x4c4a0e){_0x4c4a0e=_0x4c4a0e||0x1f4;return function(_0x120ced){logger[_0x7190('0x2a')](_0x120ced[_0x7190('0x2b')]);if(_0x120ced[_0x7190('0x2c')]){delete _0x120ced[_0x7190('0x2c')];}_0x22292c[_0x7190('0x1c')](_0x4c4a0e)['send'](_0x120ced);};}exports['index']=function(_0x4b982b,_0x38b985){var _0x4b4995={},_0x168063={},_0x50db48={'count':0x0,'rows':[]};var _0x4e182c=_[_0x7190('0x2d')](db[_0x7190('0x2e')][_0x7190('0x2f')],function(_0x858468){return{'name':_0x858468[_0x7190('0x30')],'type':_0x858468['type'][_0x7190('0x31')]};});_0x168063[_0x7190('0x32')]=_[_0x7190('0x2d')](_0x4e182c,'name');_0x168063[_0x7190('0x33')]=_[_0x7190('0x34')](_0x4b982b['query']);_0x168063[_0x7190('0x35')]=_[_0x7190('0x36')](_0x168063['model'],_0x168063[_0x7190('0x33')]);_0x4b4995['attributes']=_[_0x7190('0x36')](_0x168063['model'],qs[_0x7190('0x37')](_0x4b982b[_0x7190('0x33')][_0x7190('0x37')]));_0x4b4995['attributes']=_0x4b4995[_0x7190('0x38')][_0x7190('0x39')]?_0x4b4995['attributes']:_0x168063[_0x7190('0x32')];if(!_0x4b982b[_0x7190('0x33')][_0x7190('0x3a')](_0x7190('0x3b'))){_0x4b4995['limit']=qs[_0x7190('0x20')](_0x4b982b[_0x7190('0x33')][_0x7190('0x20')]);_0x4b4995['offset']=qs[_0x7190('0x1e')](_0x4b982b['query']['offset']);}_0x4b4995[_0x7190('0x3c')]=qs[_0x7190('0x3d')](_0x4b982b[_0x7190('0x33')][_0x7190('0x3d')]);_0x4b4995[_0x7190('0x3e')]=qs[_0x7190('0x35')](_['pick'](_0x4b982b['query'],_0x168063[_0x7190('0x35')]),_0x4e182c);if(_0x4b982b[_0x7190('0x33')]['filter']){_0x4b4995['where']=_[_0x7190('0x3f')](_0x4b4995[_0x7190('0x3e')],{'$or':_['map'](_0x4e182c,function(_0x3cd979){if(_0x3cd979[_0x7190('0x40')]!==_0x7190('0x41')){var _0x1ff43d={};_0x1ff43d[_0x3cd979[_0x7190('0x2c')]]={'$like':'%'+_0x4b982b[_0x7190('0x33')][_0x7190('0x42')]+'%'};return _0x1ff43d;}})});}_0x4b4995=_[_0x7190('0x3f')]({},_0x4b4995,_0x4b982b['options']);var _0x52f021={'where':_0x4b4995[_0x7190('0x3e')]};return db['ChatGroup'][_0x7190('0x21')](_0x52f021)[_0x7190('0x28')](function(_0x363008){_0x50db48['count']=_0x363008;if(_0x4b982b[_0x7190('0x33')][_0x7190('0x43')]){_0x4b4995[_0x7190('0x44')]=[{'all':!![]}];}return db[_0x7190('0x2e')][_0x7190('0x45')](_0x4b4995);})[_0x7190('0x28')](function(_0x5f1f18){_0x50db48[_0x7190('0x46')]=_0x5f1f18;return _0x50db48;})['then'](respondWithFilteredResult(_0x38b985,_0x4b4995))[_0x7190('0x47')](handleError(_0x38b985,null));};exports[_0x7190('0x48')]=function(_0x4b3a6e,_0x592dda){var _0x860d8c={'raw':!![],'where':{'id':_0x4b3a6e['params']['id']}},_0x1f3e9b={};_0x1f3e9b['model']=_[_0x7190('0x34')](db[_0x7190('0x2e')]['rawAttributes']);_0x1f3e9b[_0x7190('0x33')]=_[_0x7190('0x34')](_0x4b3a6e[_0x7190('0x33')]);_0x1f3e9b['filters']=_[_0x7190('0x36')](_0x1f3e9b[_0x7190('0x32')],_0x1f3e9b[_0x7190('0x33')]);_0x860d8c['attributes']=_[_0x7190('0x36')](_0x1f3e9b['model'],qs[_0x7190('0x37')](_0x4b3a6e['query'][_0x7190('0x37')]));_0x860d8c[_0x7190('0x38')]=_0x860d8c[_0x7190('0x38')][_0x7190('0x39')]?_0x860d8c[_0x7190('0x38')]:_0x1f3e9b[_0x7190('0x32')];if(_0x4b3a6e['query'][_0x7190('0x43')]){_0x860d8c[_0x7190('0x44')]=[{'all':!![]}];}_0x860d8c=_[_0x7190('0x3f')]({},_0x860d8c,_0x4b3a6e[_0x7190('0x49')]);return db[_0x7190('0x2e')][_0x7190('0x4a')](_0x860d8c)[_0x7190('0x28')](handleEntityNotFound(_0x592dda,null))['then'](respondWithResult(_0x592dda,null))[_0x7190('0x47')](handleError(_0x592dda,null));};exports[_0x7190('0x4b')]=function(_0x20b618,_0x1954f5){return db['ChatGroup'][_0x7190('0x4b')](_0x20b618[_0x7190('0x4c')],{})[_0x7190('0x28')](respondWithResult(_0x1954f5,0xc9))[_0x7190('0x47')](handleError(_0x1954f5,null));};exports[_0x7190('0x27')]=function(_0xe6ae4d,_0xc4cf5){if(_0xe6ae4d[_0x7190('0x4c')]['id']){delete _0xe6ae4d[_0x7190('0x4c')]['id'];}return db['ChatGroup'][_0x7190('0x4a')]({'where':{'id':_0xe6ae4d[_0x7190('0x4d')]['id']}})[_0x7190('0x28')](handleEntityNotFound(_0xc4cf5,null))['then'](saveUpdates(_0xe6ae4d[_0x7190('0x4c')],null))[_0x7190('0x28')](respondWithResult(_0xc4cf5,null))[_0x7190('0x47')](handleError(_0xc4cf5,null));};exports[_0x7190('0x29')]=function(_0x243699,_0x42dc82){return db[_0x7190('0x2e')][_0x7190('0x4a')]({'where':{'id':_0x243699['params']['id']}})[_0x7190('0x28')](handleEntityNotFound(_0x42dc82,null))[_0x7190('0x28')](removeEntity(_0x42dc82,null))['catch'](handleError(_0x42dc82,null));};exports[_0x7190('0x4e')]=function(_0x138f4f,_0x3ce33f){return db[_0x7190('0x2e')][_0x7190('0x4e')]()['then'](respondWithResult(_0x3ce33f,null))[_0x7190('0x47')](handleError(_0x3ce33f,null));};exports[_0x7190('0x4f')]=function(_0x21ad0a,_0x2dd693,_0x1ea027){return db[_0x7190('0x50')][_0x7190('0x21')]({'where':{'ChatGroupId':_0x21ad0a[_0x7190('0x4d')]['id'],'ToId':_0x21ad0a[_0x7190('0x51')]['id'],'read':![]}})[_0x7190('0x28')](function(_0x4eae12){return{'id':_[_0x7190('0x52')](_0x21ad0a[_0x7190('0x4d')]['id']),'count':_0x4eae12};})[_0x7190('0x28')](respondWithResult(_0x2dd693,null))[_0x7190('0x47')](handleError(_0x2dd693,null));};exports[_0x7190('0x53')]=function(_0x341435,_0x41dfb6,_0x53a81c){return db[_0x7190('0x2e')][_0x7190('0x4a')]({'where':{'id':_0x341435[_0x7190('0x4d')]['id']}})[_0x7190('0x28')](handleEntityNotFound(_0x41dfb6,null))[_0x7190('0x28')](function(_0x5c88e0){if(_0x5c88e0){return _0x5c88e0[_0x7190('0x53')](_0x341435[_0x7190('0x4c')]['ids'],_['omit'](_0x341435[_0x7190('0x4c')],[_0x7190('0x54'),'id'])||{});}})[_0x7190('0x28')](respondWithResult(_0x41dfb6,null))[_0x7190('0x47')](handleError(_0x41dfb6,null));};exports['getMembers']=function(_0x3eea27,_0x4e2f3b,_0x509f1d){var _0x1a71b0={};var _0x3980d1={};var _0x311ae5;var _0x1b77a1;return db[_0x7190('0x2e')]['findOne']({'where':{'id':_0x3eea27[_0x7190('0x4d')]['id']}})[_0x7190('0x28')](handleEntityNotFound(_0x4e2f3b,null))[_0x7190('0x28')](function(_0x585eae){if(_0x585eae){_0x311ae5=_0x585eae;_0x3980d1['model']=_['keys'](db[_0x7190('0x55')][_0x7190('0x2f')]);_0x3980d1['query']=_[_0x7190('0x34')](_0x3eea27['query']);_0x3980d1[_0x7190('0x35')]=_[_0x7190('0x36')](_0x3980d1['model'],_0x3980d1[_0x7190('0x33')]);_0x1a71b0[_0x7190('0x38')]=_['intersection'](_0x3980d1[_0x7190('0x32')],qs[_0x7190('0x37')](_0x3eea27[_0x7190('0x33')][_0x7190('0x37')]));_0x1a71b0[_0x7190('0x38')]=_0x1a71b0[_0x7190('0x38')]['length']?_0x1a71b0[_0x7190('0x38')]:_0x3980d1[_0x7190('0x32')];_0x1a71b0[_0x7190('0x3c')]=qs[_0x7190('0x3d')](_0x3eea27[_0x7190('0x33')][_0x7190('0x3d')]);_0x1a71b0[_0x7190('0x3e')]=qs[_0x7190('0x35')](_['pick'](_0x3eea27[_0x7190('0x33')],_0x3980d1['filters']));if(_0x3eea27[_0x7190('0x33')]['filter']){_0x1a71b0[_0x7190('0x3e')]=_['merge'](_0x1a71b0[_0x7190('0x3e')],{'$or':_[_0x7190('0x2d')](_0x1a71b0[_0x7190('0x38')],function(_0x37de6d){var _0x18d056={};_0x18d056[_0x37de6d]={'$like':'%'+_0x3eea27[_0x7190('0x33')][_0x7190('0x42')]+'%'};return _0x18d056;})});}_0x1a71b0=_[_0x7190('0x3f')]({},_0x1a71b0,_0x3eea27['options']);return _0x311ae5[_0x7190('0x56')](_0x1a71b0);}})[_0x7190('0x28')](function(_0x3a9a53){if(_0x3a9a53){_0x1b77a1=_0x3a9a53[_0x7190('0x39')];if(!_0x3eea27['query'][_0x7190('0x3a')](_0x7190('0x3b'))){_0x1a71b0[_0x7190('0x20')]=qs[_0x7190('0x20')](_0x3eea27[_0x7190('0x33')]['limit']);_0x1a71b0['offset']=qs[_0x7190('0x1e')](_0x3eea27[_0x7190('0x33')]['offset']);}return _0x311ae5['getMembers'](_0x1a71b0);}})[_0x7190('0x28')](function(_0x10ebd1){if(_0x10ebd1){return _0x10ebd1?{'count':_0x1b77a1,'rows':_0x10ebd1}:null;}})[_0x7190('0x28')](respondWithResult(_0x4e2f3b,null))['catch'](handleError(_0x4e2f3b,null));};exports[_0x7190('0x57')]=function(_0x3f355c,_0x41d128,_0x3083f2){return db[_0x7190('0x2e')][_0x7190('0x4a')]({'where':{'id':_0x3f355c[_0x7190('0x4d')]['id']}})[_0x7190('0x28')](handleEntityNotFound(_0x41d128,null))[_0x7190('0x28')](function(_0x39b823){if(_0x39b823){return _0x39b823[_0x7190('0x57')](_0x3f355c[_0x7190('0x33')]['ids']);}})[_0x7190('0x28')](respondWithStatusCode(_0x41d128,null))[_0x7190('0x47')](handleError(_0x41d128,null));};exports[_0x7190('0x58')]=function(_0x1420c5,_0x4f37a8,_0x31dc64){if(_0x1420c5['body']['id']){delete _0x1420c5[_0x7190('0x4c')]['id'];}return db[_0x7190('0x2e')][_0x7190('0x4a')]({'where':{'id':_0x1420c5['params']['id']}})[_0x7190('0x28')](handleEntityNotFound(_0x4f37a8,null))[_0x7190('0x28')](function(_0x2c270c){if(_0x2c270c){_0x1420c5['body'][_0x7190('0x59')]=_0x2c270c['id'];return db[_0x7190('0x50')][_0x7190('0x4b')](_0x1420c5[_0x7190('0x4c')]);}})['then'](respondWithResult(_0x4f37a8,null))['catch'](handleError(_0x4f37a8,null));};exports[_0x7190('0x5a')]=function(_0x3db3e5,_0x2751bd,_0xba4132){var _0x5397b8={};var _0x59e1c1={};var _0x1e1d5f;var _0x5beaba;return db[_0x7190('0x2e')]['findOne']({'where':{'id':_0x3db3e5[_0x7190('0x4d')]['id']}})['then'](handleEntityNotFound(_0x2751bd,null))[_0x7190('0x28')](function(_0x243609){if(_0x243609){_0x1e1d5f=_0x243609;_0x59e1c1[_0x7190('0x32')]=_[_0x7190('0x34')](db[_0x7190('0x50')][_0x7190('0x2f')]);_0x59e1c1[_0x7190('0x33')]=_[_0x7190('0x34')](_0x3db3e5[_0x7190('0x33')]);_0x59e1c1[_0x7190('0x35')]=_[_0x7190('0x36')](_0x59e1c1[_0x7190('0x32')],_0x59e1c1[_0x7190('0x33')]);_0x5397b8['attributes']=_[_0x7190('0x36')](_0x59e1c1['model'],qs[_0x7190('0x37')](_0x3db3e5[_0x7190('0x33')][_0x7190('0x37')]));_0x5397b8[_0x7190('0x38')]=_0x5397b8[_0x7190('0x38')][_0x7190('0x39')]?_0x5397b8['attributes']:_0x59e1c1[_0x7190('0x32')];_0x5397b8[_0x7190('0x3c')]=qs[_0x7190('0x3d')](_0x3db3e5[_0x7190('0x33')][_0x7190('0x3d')]);_0x5397b8[_0x7190('0x3e')]=qs[_0x7190('0x35')](_[_0x7190('0x5b')](_0x3db3e5[_0x7190('0x33')],_0x59e1c1[_0x7190('0x35')]));if(_0x3db3e5['query'][_0x7190('0x42')]){_0x5397b8[_0x7190('0x3e')]=_[_0x7190('0x3f')](_0x5397b8[_0x7190('0x3e')],{'$or':_[_0x7190('0x2d')](_0x5397b8['attributes'],function(_0x36576a){var _0xa620={};_0xa620[_0x36576a]={'$like':'%'+_0x3db3e5[_0x7190('0x33')][_0x7190('0x42')]+'%'};return _0xa620;})});}if(_0x3db3e5['query'][_0x7190('0x5c')]){var _0x1eb0ad=_0x3db3e5[_0x7190('0x33')]['$gte'][_0x7190('0x5d')](',');var _0x5225e7={};_0x5225e7[_0x1eb0ad[0x0]]={'$gte':moment(_0x1eb0ad[0x1])[_0x7190('0x5e')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5397b8['where']=_[_0x7190('0x3f')](_0x5397b8[_0x7190('0x3e')],_0x5225e7);}_0x5397b8=_[_0x7190('0x3f')]({},_0x5397b8,_0x3db3e5['options']);return _0x1e1d5f[_0x7190('0x5a')](_0x5397b8);}})['then'](function(_0x1af045){if(_0x1af045){_0x5beaba=_0x1af045[_0x7190('0x39')];if(!_0x3db3e5['query'][_0x7190('0x3a')](_0x7190('0x3b'))){_0x5397b8['limit']=qs['limit'](_0x3db3e5[_0x7190('0x33')][_0x7190('0x20')]);_0x5397b8[_0x7190('0x1e')]=qs['offset'](_0x3db3e5[_0x7190('0x33')][_0x7190('0x1e')]);}return _0x1e1d5f['getMessages'](_0x5397b8);}})[_0x7190('0x28')](function(_0x1d6da3){if(_0x1d6da3){return _0x1d6da3?{'count':_0x5beaba,'rows':_0x1d6da3}:null;}})[_0x7190('0x28')](respondWithResult(_0x2751bd,null))[_0x7190('0x47')](handleError(_0x2751bd,null));};
\ No newline at end of file
+var _0xc6af=['index','map','ChatGroup','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','catch','show','params','include','find','create','body','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','findOne','pick','getMembers','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','YYYY-MM-DD\x20HH:mm:ss','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./chatGroup.socket','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','error','stack','name'];(function(_0x3548e4,_0x50c8d2){var _0x31ae82=function(_0x41faa3){while(--_0x41faa3){_0x3548e4['push'](_0x3548e4['shift']());}};_0x31ae82(++_0x50c8d2);}(_0xc6af,0xee));var _0xfc6a=function(_0x16574b,_0x30f1f5){_0x16574b=_0x16574b-0x0;var _0x300504=_0xc6af[_0x16574b];return _0x300504;};'use strict';var emlformat=require(_0xfc6a('0x0'));var rimraf=require(_0xfc6a('0x1'));var zipdir=require(_0xfc6a('0x2'));var jsonpatch=require(_0xfc6a('0x3'));var rp=require(_0xfc6a('0x4'));var moment=require(_0xfc6a('0x5'));var BPromise=require(_0xfc6a('0x6'));var Mustache=require(_0xfc6a('0x7'));var util=require(_0xfc6a('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xfc6a('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xfc6a('0xa'));var _=require(_0xfc6a('0xb'));var squel=require(_0xfc6a('0xc'));var crypto=require('crypto');var jsforce=require(_0xfc6a('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfc6a('0x9'));var querystring=require('querystring');var Papa=require(_0xfc6a('0xe'));var Redis=require(_0xfc6a('0xf'));var authService=require(_0xfc6a('0x10'));var qs=require(_0xfc6a('0x11'));var as=require(_0xfc6a('0x12'));var hardwareService=require(_0xfc6a('0x13'));var logger=require(_0xfc6a('0x14'))(_0xfc6a('0x15'));var utils=require(_0xfc6a('0x16'));var config=require(_0xfc6a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xfc6a('0x18'))['db'];config[_0xfc6a('0x19')]=_[_0xfc6a('0x1a')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xfc6a('0x1b'))(new Redis(config[_0xfc6a('0x19')]));require(_0xfc6a('0x1c'))['register'](socket);function respondWithStatusCode(_0x2a22db,_0x2ddd37){_0x2ddd37=_0x2ddd37||0xcc;return function(_0x43734e){if(_0x43734e){return _0x2a22db[_0xfc6a('0x1d')](_0x2ddd37);}return _0x2a22db[_0xfc6a('0x1e')](_0x2ddd37)[_0xfc6a('0x1f')]();};}function respondWithResult(_0x3176c1,_0xd87472){_0xd87472=_0xd87472||0xc8;return function(_0x130f66){if(_0x130f66){return _0x3176c1[_0xfc6a('0x1e')](_0xd87472)[_0xfc6a('0x20')](_0x130f66);}};}function respondWithFilteredResult(_0x441831,_0x539924){return function(_0x3e4362){if(_0x3e4362){var _0x68e857=typeof _0x539924[_0xfc6a('0x21')]===_0xfc6a('0x22')&&typeof _0x539924[_0xfc6a('0x23')]==='undefined';var _0x1fbf31=_0x3e4362[_0xfc6a('0x24')];var _0x2e3826=_0x68e857?0x0:_0x539924[_0xfc6a('0x21')];var _0x4e1759=_0x68e857?_0x3e4362[_0xfc6a('0x24')]:_0x539924['offset']+_0x539924[_0xfc6a('0x23')];var _0x2e04be;if(_0x4e1759>=_0x1fbf31){_0x4e1759=_0x1fbf31;_0x2e04be=0xc8;}else{_0x2e04be=0xce;}_0x441831['status'](_0x2e04be);return _0x441831[_0xfc6a('0x25')](_0xfc6a('0x26'),_0x2e3826+'-'+_0x4e1759+'/'+_0x1fbf31)[_0xfc6a('0x20')](_0x3e4362);}return null;};}function patchUpdates(_0x5c8efe){return function(_0x567e3e){try{jsonpatch['apply'](_0x567e3e,_0x5c8efe,!![]);}catch(_0x386629){return BPromise[_0xfc6a('0x27')](_0x386629);}return _0x567e3e[_0xfc6a('0x28')]();};}function saveUpdates(_0x111693,_0x4aedca){return function(_0x36ff03){if(_0x36ff03){return _0x36ff03[_0xfc6a('0x29')](_0x111693)[_0xfc6a('0x2a')](function(_0x284467){return _0x284467;});}return null;};}function removeEntity(_0x58bfc4,_0x10ff55){return function(_0x5c25f1){if(_0x5c25f1){return _0x5c25f1[_0xfc6a('0x2b')]()[_0xfc6a('0x2a')](function(){_0x58bfc4['status'](0xcc)[_0xfc6a('0x1f')]();});}};}function handleEntityNotFound(_0x3df042,_0x9b6a5d){return function(_0x20ed4e){if(!_0x20ed4e){_0x3df042[_0xfc6a('0x1d')](0x194);}return _0x20ed4e;};}function handleError(_0x35b176,_0x250ce3){_0x250ce3=_0x250ce3||0x1f4;return function(_0x19ffc6){logger[_0xfc6a('0x2c')](_0x19ffc6[_0xfc6a('0x2d')]);if(_0x19ffc6[_0xfc6a('0x2e')]){delete _0x19ffc6['name'];}_0x35b176[_0xfc6a('0x1e')](_0x250ce3)['send'](_0x19ffc6);};}exports[_0xfc6a('0x2f')]=function(_0x2a44f8,_0x2d05b0){var _0x3b034f={},_0x492306={},_0x5b321d={'count':0x0,'rows':[]};var _0x1b7c12=_[_0xfc6a('0x30')](db[_0xfc6a('0x31')][_0xfc6a('0x32')],function(_0x1d586d){return{'name':_0x1d586d[_0xfc6a('0x33')],'type':_0x1d586d['type'][_0xfc6a('0x34')]};});_0x492306['model']=_[_0xfc6a('0x30')](_0x1b7c12,'name');_0x492306[_0xfc6a('0x35')]=_[_0xfc6a('0x36')](_0x2a44f8['query']);_0x492306[_0xfc6a('0x37')]=_[_0xfc6a('0x38')](_0x492306[_0xfc6a('0x39')],_0x492306[_0xfc6a('0x35')]);_0x3b034f[_0xfc6a('0x3a')]=_[_0xfc6a('0x38')](_0x492306[_0xfc6a('0x39')],qs[_0xfc6a('0x3b')](_0x2a44f8[_0xfc6a('0x35')]['fields']));_0x3b034f[_0xfc6a('0x3a')]=_0x3b034f[_0xfc6a('0x3a')][_0xfc6a('0x3c')]?_0x3b034f[_0xfc6a('0x3a')]:_0x492306[_0xfc6a('0x39')];if(!_0x2a44f8[_0xfc6a('0x35')][_0xfc6a('0x3d')](_0xfc6a('0x3e'))){_0x3b034f[_0xfc6a('0x23')]=qs[_0xfc6a('0x23')](_0x2a44f8[_0xfc6a('0x35')]['limit']);_0x3b034f[_0xfc6a('0x21')]=qs[_0xfc6a('0x21')](_0x2a44f8[_0xfc6a('0x35')]['offset']);}_0x3b034f[_0xfc6a('0x3f')]=qs[_0xfc6a('0x40')](_0x2a44f8['query']['sort']);_0x3b034f[_0xfc6a('0x41')]=qs['filters'](_['pick'](_0x2a44f8['query'],_0x492306[_0xfc6a('0x37')]),_0x1b7c12);if(_0x2a44f8[_0xfc6a('0x35')][_0xfc6a('0x42')]){_0x3b034f[_0xfc6a('0x41')]=_[_0xfc6a('0x43')](_0x3b034f[_0xfc6a('0x41')],{'$or':_[_0xfc6a('0x30')](_0x1b7c12,function(_0x5da2f3){if(_0x5da2f3[_0xfc6a('0x44')]!==_0xfc6a('0x45')){var _0x46bf53={};_0x46bf53[_0x5da2f3[_0xfc6a('0x2e')]]={'$like':'%'+_0x2a44f8[_0xfc6a('0x35')][_0xfc6a('0x42')]+'%'};return _0x46bf53;}})});}_0x3b034f=_[_0xfc6a('0x43')]({},_0x3b034f,_0x2a44f8[_0xfc6a('0x46')]);var _0x43e637={'where':_0x3b034f[_0xfc6a('0x41')]};return db[_0xfc6a('0x31')][_0xfc6a('0x24')](_0x43e637)['then'](function(_0x4b0b7f){_0x5b321d[_0xfc6a('0x24')]=_0x4b0b7f;if(_0x2a44f8[_0xfc6a('0x35')][_0xfc6a('0x47')]){_0x3b034f['include']=[{'all':!![]}];}return db[_0xfc6a('0x31')]['findAll'](_0x3b034f);})[_0xfc6a('0x2a')](function(_0x301208){_0x5b321d['rows']=_0x301208;return _0x5b321d;})['then'](respondWithFilteredResult(_0x2d05b0,_0x3b034f))[_0xfc6a('0x48')](handleError(_0x2d05b0,null));};exports[_0xfc6a('0x49')]=function(_0x453158,_0x158c20){var _0x453f47={'raw':!![],'where':{'id':_0x453158[_0xfc6a('0x4a')]['id']}},_0x290f2f={};_0x290f2f[_0xfc6a('0x39')]=_[_0xfc6a('0x36')](db[_0xfc6a('0x31')][_0xfc6a('0x32')]);_0x290f2f[_0xfc6a('0x35')]=_[_0xfc6a('0x36')](_0x453158['query']);_0x290f2f[_0xfc6a('0x37')]=_[_0xfc6a('0x38')](_0x290f2f[_0xfc6a('0x39')],_0x290f2f[_0xfc6a('0x35')]);_0x453f47[_0xfc6a('0x3a')]=_[_0xfc6a('0x38')](_0x290f2f['model'],qs[_0xfc6a('0x3b')](_0x453158[_0xfc6a('0x35')][_0xfc6a('0x3b')]));_0x453f47[_0xfc6a('0x3a')]=_0x453f47[_0xfc6a('0x3a')]['length']?_0x453f47[_0xfc6a('0x3a')]:_0x290f2f[_0xfc6a('0x39')];if(_0x453158['query'][_0xfc6a('0x47')]){_0x453f47[_0xfc6a('0x4b')]=[{'all':!![]}];}_0x453f47=_[_0xfc6a('0x43')]({},_0x453f47,_0x453158[_0xfc6a('0x46')]);return db[_0xfc6a('0x31')][_0xfc6a('0x4c')](_0x453f47)[_0xfc6a('0x2a')](handleEntityNotFound(_0x158c20,null))[_0xfc6a('0x2a')](respondWithResult(_0x158c20,null))[_0xfc6a('0x48')](handleError(_0x158c20,null));};exports[_0xfc6a('0x4d')]=function(_0x504fbf,_0xfb5e4c){return db[_0xfc6a('0x31')][_0xfc6a('0x4d')](_0x504fbf[_0xfc6a('0x4e')],{})[_0xfc6a('0x2a')](respondWithResult(_0xfb5e4c,0xc9))[_0xfc6a('0x48')](handleError(_0xfb5e4c,null));};exports[_0xfc6a('0x29')]=function(_0x4aab0e,_0x22ffa5){if(_0x4aab0e[_0xfc6a('0x4e')]['id']){delete _0x4aab0e['body']['id'];}return db[_0xfc6a('0x31')][_0xfc6a('0x4c')]({'where':{'id':_0x4aab0e[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x22ffa5,null))[_0xfc6a('0x2a')](saveUpdates(_0x4aab0e['body'],null))['then'](respondWithResult(_0x22ffa5,null))[_0xfc6a('0x48')](handleError(_0x22ffa5,null));};exports['destroy']=function(_0x419e5d,_0x1af713){return db[_0xfc6a('0x31')][_0xfc6a('0x4c')]({'where':{'id':_0x419e5d[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x1af713,null))[_0xfc6a('0x2a')](removeEntity(_0x1af713,null))[_0xfc6a('0x48')](handleError(_0x1af713,null));};exports['describe']=function(_0x1ca6a9,_0x3964f8){return db[_0xfc6a('0x31')]['describe']()[_0xfc6a('0x2a')](respondWithResult(_0x3964f8,null))[_0xfc6a('0x48')](handleError(_0x3964f8,null));};exports[_0xfc6a('0x4f')]=function(_0x1ebc42,_0x2a0d88,_0x5d1d84){return db[_0xfc6a('0x50')]['count']({'where':{'ChatGroupId':_0x1ebc42[_0xfc6a('0x4a')]['id'],'ToId':_0x1ebc42[_0xfc6a('0x51')]['id'],'read':![]}})[_0xfc6a('0x2a')](function(_0x789b62){return{'id':_[_0xfc6a('0x52')](_0x1ebc42[_0xfc6a('0x4a')]['id']),'count':_0x789b62};})[_0xfc6a('0x2a')](respondWithResult(_0x2a0d88,null))[_0xfc6a('0x48')](handleError(_0x2a0d88,null));};exports['addMembers']=function(_0x39dc18,_0x4e4f35,_0x4f5892){return db[_0xfc6a('0x31')][_0xfc6a('0x4c')]({'where':{'id':_0x39dc18[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x4e4f35,null))['then'](function(_0x39433b){if(_0x39433b){return _0x39433b[_0xfc6a('0x53')](_0x39dc18['body'][_0xfc6a('0x54')],_['omit'](_0x39dc18['body'],['ids','id'])||{});}})[_0xfc6a('0x2a')](respondWithResult(_0x4e4f35,null))[_0xfc6a('0x48')](handleError(_0x4e4f35,null));};exports['getMembers']=function(_0x2aba6d,_0x4ef06f,_0x4aed3b){var _0x357dbc={};var _0x3ce262={};var _0x3dfa3b;var _0x203ca6;return db[_0xfc6a('0x31')][_0xfc6a('0x55')]({'where':{'id':_0x2aba6d[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x4ef06f,null))[_0xfc6a('0x2a')](function(_0x5e860c){if(_0x5e860c){_0x3dfa3b=_0x5e860c;_0x3ce262['model']=_[_0xfc6a('0x36')](db['User']['rawAttributes']);_0x3ce262['query']=_[_0xfc6a('0x36')](_0x2aba6d[_0xfc6a('0x35')]);_0x3ce262['filters']=_[_0xfc6a('0x38')](_0x3ce262[_0xfc6a('0x39')],_0x3ce262['query']);_0x357dbc[_0xfc6a('0x3a')]=_[_0xfc6a('0x38')](_0x3ce262[_0xfc6a('0x39')],qs[_0xfc6a('0x3b')](_0x2aba6d['query'][_0xfc6a('0x3b')]));_0x357dbc['attributes']=_0x357dbc[_0xfc6a('0x3a')]['length']?_0x357dbc[_0xfc6a('0x3a')]:_0x3ce262[_0xfc6a('0x39')];_0x357dbc[_0xfc6a('0x3f')]=qs[_0xfc6a('0x40')](_0x2aba6d[_0xfc6a('0x35')][_0xfc6a('0x40')]);_0x357dbc[_0xfc6a('0x41')]=qs[_0xfc6a('0x37')](_[_0xfc6a('0x56')](_0x2aba6d[_0xfc6a('0x35')],_0x3ce262['filters']));if(_0x2aba6d[_0xfc6a('0x35')][_0xfc6a('0x42')]){_0x357dbc[_0xfc6a('0x41')]=_[_0xfc6a('0x43')](_0x357dbc['where'],{'$or':_[_0xfc6a('0x30')](_0x357dbc[_0xfc6a('0x3a')],function(_0x3f2d87){var _0x236857={};_0x236857[_0x3f2d87]={'$like':'%'+_0x2aba6d[_0xfc6a('0x35')]['filter']+'%'};return _0x236857;})});}_0x357dbc=_[_0xfc6a('0x43')]({},_0x357dbc,_0x2aba6d['options']);return _0x3dfa3b[_0xfc6a('0x57')](_0x357dbc);}})[_0xfc6a('0x2a')](function(_0x6a7b49){if(_0x6a7b49){_0x203ca6=_0x6a7b49[_0xfc6a('0x3c')];if(!_0x2aba6d[_0xfc6a('0x35')][_0xfc6a('0x3d')](_0xfc6a('0x3e'))){_0x357dbc['limit']=qs[_0xfc6a('0x23')](_0x2aba6d[_0xfc6a('0x35')][_0xfc6a('0x23')]);_0x357dbc[_0xfc6a('0x21')]=qs[_0xfc6a('0x21')](_0x2aba6d[_0xfc6a('0x35')][_0xfc6a('0x21')]);}return _0x3dfa3b[_0xfc6a('0x57')](_0x357dbc);}})[_0xfc6a('0x2a')](function(_0x350ab2){if(_0x350ab2){return _0x350ab2?{'count':_0x203ca6,'rows':_0x350ab2}:null;}})['then'](respondWithResult(_0x4ef06f,null))[_0xfc6a('0x48')](handleError(_0x4ef06f,null));};exports['removeMembers']=function(_0x4f703f,_0x52eadc,_0x36cd76){return db[_0xfc6a('0x31')][_0xfc6a('0x4c')]({'where':{'id':_0x4f703f[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x52eadc,null))[_0xfc6a('0x2a')](function(_0x803c42){if(_0x803c42){return _0x803c42[_0xfc6a('0x58')](_0x4f703f[_0xfc6a('0x35')][_0xfc6a('0x54')]);}})[_0xfc6a('0x2a')](respondWithStatusCode(_0x52eadc,null))[_0xfc6a('0x48')](handleError(_0x52eadc,null));};exports[_0xfc6a('0x59')]=function(_0x37b0e6,_0x18bb29,_0x1d2acf){if(_0x37b0e6[_0xfc6a('0x4e')]['id']){delete _0x37b0e6['body']['id'];}return db[_0xfc6a('0x31')]['find']({'where':{'id':_0x37b0e6[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x18bb29,null))[_0xfc6a('0x2a')](function(_0x34656b){if(_0x34656b){_0x37b0e6[_0xfc6a('0x4e')][_0xfc6a('0x5a')]=_0x34656b['id'];return db[_0xfc6a('0x50')][_0xfc6a('0x4d')](_0x37b0e6[_0xfc6a('0x4e')]);}})[_0xfc6a('0x2a')](respondWithResult(_0x18bb29,null))[_0xfc6a('0x48')](handleError(_0x18bb29,null));};exports[_0xfc6a('0x5b')]=function(_0x4e7433,_0x4d5c20,_0x42a4ef){var _0x388f86={};var _0x275033={};var _0x3936ef;var _0x312def;return db[_0xfc6a('0x31')][_0xfc6a('0x55')]({'where':{'id':_0x4e7433[_0xfc6a('0x4a')]['id']}})[_0xfc6a('0x2a')](handleEntityNotFound(_0x4d5c20,null))[_0xfc6a('0x2a')](function(_0x770e5d){if(_0x770e5d){_0x3936ef=_0x770e5d;_0x275033['model']=_[_0xfc6a('0x36')](db[_0xfc6a('0x50')]['rawAttributes']);_0x275033[_0xfc6a('0x35')]=_[_0xfc6a('0x36')](_0x4e7433[_0xfc6a('0x35')]);_0x275033[_0xfc6a('0x37')]=_[_0xfc6a('0x38')](_0x275033[_0xfc6a('0x39')],_0x275033[_0xfc6a('0x35')]);_0x388f86[_0xfc6a('0x3a')]=_[_0xfc6a('0x38')](_0x275033[_0xfc6a('0x39')],qs[_0xfc6a('0x3b')](_0x4e7433[_0xfc6a('0x35')]['fields']));_0x388f86['attributes']=_0x388f86['attributes']['length']?_0x388f86[_0xfc6a('0x3a')]:_0x275033[_0xfc6a('0x39')];_0x388f86['order']=qs[_0xfc6a('0x40')](_0x4e7433[_0xfc6a('0x35')]['sort']);_0x388f86[_0xfc6a('0x41')]=qs[_0xfc6a('0x37')](_[_0xfc6a('0x56')](_0x4e7433[_0xfc6a('0x35')],_0x275033[_0xfc6a('0x37')]));if(_0x4e7433[_0xfc6a('0x35')][_0xfc6a('0x42')]){_0x388f86[_0xfc6a('0x41')]=_[_0xfc6a('0x43')](_0x388f86[_0xfc6a('0x41')],{'$or':_['map'](_0x388f86[_0xfc6a('0x3a')],function(_0x401281){var _0xb8f92b={};_0xb8f92b[_0x401281]={'$like':'%'+_0x4e7433['query'][_0xfc6a('0x42')]+'%'};return _0xb8f92b;})});}if(_0x4e7433[_0xfc6a('0x35')][_0xfc6a('0x5c')]){var _0x282fe2=_0x4e7433['query'][_0xfc6a('0x5c')][_0xfc6a('0x5d')](',');var _0x5e1fe1={};_0x5e1fe1[_0x282fe2[0x0]]={'$gte':moment(_0x282fe2[0x1])['format'](_0xfc6a('0x5e'))};_0x388f86['where']=_['merge'](_0x388f86[_0xfc6a('0x41')],_0x5e1fe1);}_0x388f86=_[_0xfc6a('0x43')]({},_0x388f86,_0x4e7433['options']);return _0x3936ef[_0xfc6a('0x5b')](_0x388f86);}})[_0xfc6a('0x2a')](function(_0x266b40){if(_0x266b40){_0x312def=_0x266b40[_0xfc6a('0x3c')];if(!_0x4e7433[_0xfc6a('0x35')]['hasOwnProperty']('nolimit')){_0x388f86[_0xfc6a('0x23')]=qs['limit'](_0x4e7433[_0xfc6a('0x35')][_0xfc6a('0x23')]);_0x388f86['offset']=qs[_0xfc6a('0x21')](_0x4e7433[_0xfc6a('0x35')][_0xfc6a('0x21')]);}return _0x3936ef[_0xfc6a('0x5b')](_0x388f86);}})[_0xfc6a('0x2a')](function(_0x5d7e71){if(_0x5d7e71){return _0x5d7e71?{'count':_0x312def,'rows':_0x5d7e71}:null;}})[_0xfc6a('0x2a')](respondWithResult(_0x4d5c20,null))['catch'](handleError(_0x4d5c20,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6014=['exports','events','../../mysqldb','ChatGroup','setMaxListeners','update','emit','hasOwnProperty','hook'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x6014,0x6d));var _0x4601=function(_0x5f265e,_0x5f29c3){_0x5f265e=_0x5f265e-0x0;var _0x197592=_0x6014[_0x5f265e];return _0x197592;};'use strict';var EventEmitter=require(_0x4601('0x0'));var ChatGroup=require(_0x4601('0x1'))['db'][_0x4601('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0x4601('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x4601('0x4'),'afterDestroy':'remove'};function emitEvent(_0xb6cc9f){return function(_0x4c9792,_0x24b107,_0x4e4403){ChatGroupEvents[_0x4601('0x5')](_0xb6cc9f+':'+_0x4c9792['id'],_0x4c9792);ChatGroupEvents[_0x4601('0x5')](_0xb6cc9f,_0x4c9792);_0x4e4403(null);};}for(var e in events){if(events[_0x4601('0x6')](e)){var event=events[e];ChatGroup[_0x4601('0x7')](e,emitEvent(event));}}module[_0x4601('0x8')]=ChatGroupEvents;
\ No newline at end of file
+var _0xe0e8=['hook','events','ChatGroup','save','update','remove','emit','hasOwnProperty'];(function(_0x4e1186,_0x13ad6f){var _0x1c463d=function(_0x1b2d32){while(--_0x1b2d32){_0x4e1186['push'](_0x4e1186['shift']());}};_0x1c463d(++_0x13ad6f);}(_0xe0e8,0xe9));var _0x8e0e=function(_0x3d1da6,_0x490f78){_0x3d1da6=_0x3d1da6-0x0;var _0x2986ad=_0xe0e8[_0x3d1da6];return _0x2986ad;};'use strict';var EventEmitter=require(_0x8e0e('0x0'));var ChatGroup=require('../../mysqldb')['db'][_0x8e0e('0x1')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x8e0e('0x2'),'afterUpdate':_0x8e0e('0x3'),'afterDestroy':_0x8e0e('0x4')};function emitEvent(_0x5bacc7){return function(_0x1ba854,_0xaab575,_0x2e66cb){ChatGroupEvents[_0x8e0e('0x5')](_0x5bacc7+':'+_0x1ba854['id'],_0x1ba854);ChatGroupEvents[_0x8e0e('0x5')](_0x5bacc7,_0x1ba854);_0x2e66cb(null);};}for(var e in events){if(events[_0x8e0e('0x6')](e)){var event=events[e];ChatGroup[_0x8e0e('0x7')](e,emitEvent(event));}}module['exports']=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfcac=['../../config/logger','api','moment','path','rimraf','exports','chat_groups','lodash'];(function(_0x2b7764,_0x2606f1){var _0x848dcb=function(_0x1ae85b){while(--_0x1ae85b){_0x2b7764['push'](_0x2b7764['shift']());}};_0x848dcb(++_0x2606f1);}(_0xfcac,0x127));var _0xcfca=function(_0x3b72a8,_0x228ed6){_0x3b72a8=_0x3b72a8-0x0;var _0x5c4edd=_0xfcac[_0x3b72a8];return _0x5c4edd;};'use strict';var _=require(_0xcfca('0x0'));var util=require('util');var logger=require(_0xcfca('0x1'))(_0xcfca('0x2'));var moment=require(_0xcfca('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xcfca('0x4'));var rimraf=require(_0xcfca('0x5'));var config=require('../../config/environment');var attributes=require('./chatGroup.attributes');module[_0xcfca('0x6')]=function(_0x561799,_0x4ebf4d){return _0x561799['define']('ChatGroup',attributes,{'tableName':_0xcfca('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa93e=['../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatGroup.attributes','exports','define','chat_groups','lodash','util'];(function(_0x27bf9c,_0x3d8612){var _0x228166=function(_0x2444ab){while(--_0x2444ab){_0x27bf9c['push'](_0x27bf9c['shift']());}};_0x228166(++_0x3d8612);}(_0xa93e,0x9a));var _0xea93=function(_0x4d249f,_0x2c30e3){_0x4d249f=_0x4d249f-0x0;var _0x33d871=_0xa93e[_0x4d249f];return _0x33d871;};'use strict';var _=require(_0xea93('0x0'));var util=require(_0xea93('0x1'));var logger=require(_0xea93('0x2'))('api');var moment=require(_0xea93('0x3'));var BPromise=require(_0xea93('0x4'));var rp=require(_0xea93('0x5'));var fs=require('fs');var path=require(_0xea93('0x6'));var rimraf=require(_0xea93('0x7'));var config=require(_0xea93('0x8'));var attributes=require(_0xea93('0x9'));module[_0xea93('0xa')]=function(_0x4677ec,_0xf75104){return _0x4677ec[_0xea93('0xb')]('ChatGroup',attributes,{'tableName':_0xea93('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8819=['register','request','then','info','request\x20sent','debug','error','ChatGroup,\x20%s,\x20%s','message','result','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','socket.io-emitter'];(function(_0x4e29b3,_0x24f9ff){var _0xe21365=function(_0x20644c){while(--_0x20644c){_0x4e29b3['push'](_0x4e29b3['shift']());}};_0xe21365(++_0x24f9ff);}(_0x8819,0x94));var _0x9881=function(_0x251cff,_0x353041){_0x251cff=_0x251cff-0x0;var _0x93e183=_0x8819[_0x251cff];return _0x93e183;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9881('0x0'));var BPromise=require(_0x9881('0x1'));var rs=require(_0x9881('0x2'));var fs=require('fs');var Redis=require(_0x9881('0x3'));var db=require(_0x9881('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x9881('0x5'))(_0x9881('0x6'));var config=require(_0x9881('0x7'));var jayson=require(_0x9881('0x8'));var client=jayson[_0x9881('0x9')][_0x9881('0xa')]({'port':0x232a});config['redis']=_[_0x9881('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x9881('0xc'))(new Redis(config['redis']));require('./chatGroup.socket')[_0x9881('0xd')](socket);function respondWithRpcPromise(_0x4adf62,_0x2570a3,_0x39122e){return new BPromise(function(_0x1e192a,_0x571947){return client[_0x9881('0xe')](_0x4adf62,_0x39122e)[_0x9881('0xf')](function(_0x2693a6){logger[_0x9881('0x10')]('ChatGroup,\x20%s,\x20%s',_0x2570a3,_0x9881('0x11'));logger[_0x9881('0x12')]('ChatGroup,\x20%s,\x20%s,\x20%s',_0x2570a3,_0x9881('0x11'),JSON['stringify'](_0x2693a6));if(_0x2693a6['error']){if(_0x2693a6['error']['code']===0x1f4){logger[_0x9881('0x13')](_0x9881('0x14'),_0x2570a3,_0x2693a6[_0x9881('0x13')][_0x9881('0x15')]);return _0x571947(_0x2693a6[_0x9881('0x13')][_0x9881('0x15')]);}logger['error'](_0x9881('0x14'),_0x2570a3,_0x2693a6[_0x9881('0x13')][_0x9881('0x15')]);return _0x1e192a(_0x2693a6['error']['message']);}else{logger['info'](_0x9881('0x14'),_0x2570a3,'request\x20sent');_0x1e192a(_0x2693a6[_0x9881('0x16')]['message']);}})['catch'](function(_0x1f6e20){logger[_0x9881('0x13')](_0x9881('0x14'),_0x2570a3,_0x1f6e20);_0x571947(_0x1f6e20);});});}
\ No newline at end of file
+var _0x0cd6=['lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','./chatGroup.socket','register','request','ChatGroup,\x20%s,\x20%s','request\x20sent','ChatGroup,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch'];(function(_0x42bdad,_0x12836c){var _0x122626=function(_0x2eb29c){while(--_0x2eb29c){_0x42bdad['push'](_0x42bdad['shift']());}};_0x122626(++_0x12836c);}(_0x0cd6,0x113));var _0x60cd=function(_0x54d4a8,_0x585a59){_0x54d4a8=_0x54d4a8-0x0;var _0x3b321b=_0x0cd6[_0x54d4a8];return _0x3b321b;};'use strict';var _=require(_0x60cd('0x0'));var util=require(_0x60cd('0x1'));var moment=require('moment');var BPromise=require(_0x60cd('0x2'));var rs=require(_0x60cd('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x60cd('0x4'))['db'];var utils=require(_0x60cd('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x60cd('0x6'));var jayson=require(_0x60cd('0x7'));var client=jayson[_0x60cd('0x8')]['http']({'port':0x232a});config[_0x60cd('0x9')]=_['defaults'](config[_0x60cd('0x9')],{'host':_0x60cd('0xa'),'port':0x18eb});var socket=require(_0x60cd('0xb'))(new Redis(config[_0x60cd('0x9')]));require(_0x60cd('0xc'))[_0x60cd('0xd')](socket);function respondWithRpcPromise(_0x539cd3,_0x316912,_0x374baa){return new BPromise(function(_0x5d82b7,_0x23820b){return client[_0x60cd('0xe')](_0x539cd3,_0x374baa)['then'](function(_0xc240d8){logger['info'](_0x60cd('0xf'),_0x316912,_0x60cd('0x10'));logger['debug'](_0x60cd('0x11'),_0x316912,_0x60cd('0x10'),JSON[_0x60cd('0x12')](_0xc240d8));if(_0xc240d8['error']){if(_0xc240d8[_0x60cd('0x13')][_0x60cd('0x14')]===0x1f4){logger['error'](_0x60cd('0xf'),_0x316912,_0xc240d8['error'][_0x60cd('0x15')]);return _0x23820b(_0xc240d8[_0x60cd('0x13')]['message']);}logger['error'](_0x60cd('0xf'),_0x316912,_0xc240d8[_0x60cd('0x13')][_0x60cd('0x15')]);return _0x5d82b7(_0xc240d8['error'][_0x60cd('0x15')]);}else{logger[_0x60cd('0x16')](_0x60cd('0xf'),_0x316912,_0x60cd('0x10'));_0x5d82b7(_0xc240d8[_0x60cd('0x17')][_0x60cd('0x15')]);}})[_0x60cd('0x18')](function(_0x1e5ed5){logger[_0x60cd('0x13')]('ChatGroup,\x20%s,\x20%s',_0x316912,_0x1e5ed5);_0x23820b(_0x1e5ed5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x696d=['length','chatGroup:','./chatGroup.events','save','remove','update','emit','removeListener','register'];(function(_0x247976,_0x93f371){var _0x42b421=function(_0x4cd02a){while(--_0x4cd02a){_0x247976['push'](_0x247976['shift']());}};_0x42b421(++_0x93f371);}(_0x696d,0x146));var _0xd696=function(_0xb0f7c3,_0x4eae95){_0xb0f7c3=_0xb0f7c3-0x0;var _0x28ea68=_0x696d[_0xb0f7c3];return _0x28ea68;};'use strict';var ChatGroupEvents=require(_0xd696('0x0'));var events=[_0xd696('0x1'),_0xd696('0x2'),_0xd696('0x3')];function createListener(_0x18511d,_0x998308){return function(_0x563264){_0x998308[_0xd696('0x4')](_0x18511d,_0x563264);};}function removeListener(_0x5c0f59,_0x3ff891){return function(){ChatGroupEvents[_0xd696('0x5')](_0x5c0f59,_0x3ff891);};}exports[_0xd696('0x6')]=function(_0x202543){for(var _0x23a186=0x0,_0x1e891f=events[_0xd696('0x7')];_0x23a186<_0x1e891f;_0x23a186++){var _0x5a6e09=events[_0x23a186];var _0x28adec=createListener(_0xd696('0x8')+_0x5a6e09,_0x202543);ChatGroupEvents['on'](_0x5a6e09,_0x28adec);}};
\ No newline at end of file
+var _0xe235=['emit','register','length','chatGroup:','./chatGroup.events','save','remove','update'];(function(_0x347ff3,_0x1cf44b){var _0xe8c4d3=function(_0x5eaed3){while(--_0x5eaed3){_0x347ff3['push'](_0x347ff3['shift']());}};_0xe8c4d3(++_0x1cf44b);}(_0xe235,0xe4));var _0x5e23=function(_0x535b1c,_0x5ab76f){_0x535b1c=_0x535b1c-0x0;var _0x262515=_0xe235[_0x535b1c];return _0x262515;};'use strict';var ChatGroupEvents=require(_0x5e23('0x0'));var events=[_0x5e23('0x1'),_0x5e23('0x2'),_0x5e23('0x3')];function createListener(_0x49fc1b,_0x57e9e8){return function(_0x31faa4){_0x57e9e8[_0x5e23('0x4')](_0x49fc1b,_0x31faa4);};}function removeListener(_0x14eee2,_0x5ba17a){return function(){ChatGroupEvents['removeListener'](_0x14eee2,_0x5ba17a);};}exports[_0x5e23('0x5')]=function(_0x37c8a7){for(var _0x1b49b2=0x0,_0x1c9b2b=events[_0x5e23('0x6')];_0x1b49b2<_0x1c9b2b;_0x1b49b2++){var _0xd7f262=events[_0x1b49b2];var _0x1f0008=createListener(_0x5e23('0x7')+_0xd7f262,_0x37c8a7);ChatGroupEvents['on'](_0xd7f262,_0x1f0008);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe152=['../../config/environment','./chatGroup.controller','get','isAuthenticated','index','/describe','/:id','getUnread','/:id/members','/:id/messages','post','create','addMembers','addMessage','put','update','delete','removeMembers','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x1ae761,_0x1cc8d8){var _0x2cc8ad=function(_0x2789a6){while(--_0x2789a6){_0x1ae761['push'](_0x1ae761['shift']());}};_0x2cc8ad(++_0x1cc8d8);}(_0xe152,0xa8));var _0x2e15=function(_0x3cd8f4,_0xb9796f){_0x3cd8f4=_0x3cd8f4-0x0;var _0x272e96=_0xe152[_0x3cd8f4];return _0x272e96;};'use strict';var multer=require(_0x2e15('0x0'));var util=require(_0x2e15('0x1'));var path=require(_0x2e15('0x2'));var timeout=require(_0x2e15('0x3'));var express=require('express');var router=express[_0x2e15('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x2e15('0x5'));var interaction=require(_0x2e15('0x6'));var config=require(_0x2e15('0x7'));var controller=require(_0x2e15('0x8'));router[_0x2e15('0x9')]('/',auth[_0x2e15('0xa')](),controller[_0x2e15('0xb')]);router[_0x2e15('0x9')](_0x2e15('0xc'),auth[_0x2e15('0xa')](),controller['describe']);router[_0x2e15('0x9')](_0x2e15('0xd'),auth[_0x2e15('0xa')](),controller['show']);router[_0x2e15('0x9')]('/:id/unread',auth[_0x2e15('0xa')](),controller[_0x2e15('0xe')]);router[_0x2e15('0x9')](_0x2e15('0xf'),auth[_0x2e15('0xa')](),controller['getMembers']);router[_0x2e15('0x9')](_0x2e15('0x10'),auth[_0x2e15('0xa')](),controller['getMessages']);router[_0x2e15('0x11')]('/',auth[_0x2e15('0xa')](),controller[_0x2e15('0x12')]);router[_0x2e15('0x11')](_0x2e15('0xf'),auth[_0x2e15('0xa')](),controller[_0x2e15('0x13')]);router['post']('/:id/messages',auth['isAuthenticated'](),controller[_0x2e15('0x14')]);router[_0x2e15('0x15')](_0x2e15('0xd'),auth['isAuthenticated'](),controller[_0x2e15('0x16')]);router[_0x2e15('0x17')](_0x2e15('0xd'),auth[_0x2e15('0xa')](),controller['destroy']);router[_0x2e15('0x17')](_0x2e15('0xf'),auth[_0x2e15('0xa')](),controller[_0x2e15('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0xf7ac=['show','/:id/unread','getMembers','/:id/messages','getMessages','post','create','/:id/members','addMembers','put','update','delete','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf7ac,0xde));var _0xcf7a=function(_0x3eceb2,_0x509ff8){_0x3eceb2=_0x3eceb2-0x0;var _0x818bc4=_0xf7ac[_0x3eceb2];return _0x818bc4;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xcf7a('0x0'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0xcf7a('0x1'));var auth=require(_0xcf7a('0x2'));var interaction=require(_0xcf7a('0x3'));var config=require(_0xcf7a('0x4'));var controller=require('./chatGroup.controller');router[_0xcf7a('0x5')]('/',auth[_0xcf7a('0x6')](),controller[_0xcf7a('0x7')]);router[_0xcf7a('0x5')]('/describe',auth[_0xcf7a('0x6')](),controller['describe']);router[_0xcf7a('0x5')](_0xcf7a('0x8'),auth['isAuthenticated'](),controller[_0xcf7a('0x9')]);router[_0xcf7a('0x5')](_0xcf7a('0xa'),auth['isAuthenticated'](),controller['getUnread']);router['get']('/:id/members',auth[_0xcf7a('0x6')](),controller[_0xcf7a('0xb')]);router[_0xcf7a('0x5')](_0xcf7a('0xc'),auth[_0xcf7a('0x6')](),controller[_0xcf7a('0xd')]);router[_0xcf7a('0xe')]('/',auth[_0xcf7a('0x6')](),controller[_0xcf7a('0xf')]);router[_0xcf7a('0xe')](_0xcf7a('0x10'),auth[_0xcf7a('0x6')](),controller[_0xcf7a('0x11')]);router[_0xcf7a('0xe')]('/:id/messages',auth['isAuthenticated'](),controller['addMessage']);router[_0xcf7a('0x12')](_0xcf7a('0x8'),auth[_0xcf7a('0x6')](),controller[_0xcf7a('0x13')]);router[_0xcf7a('0x14')](_0xcf7a('0x8'),auth[_0xcf7a('0x6')](),controller['destroy']);router[_0xcf7a('0x14')](_0xcf7a('0x10'),auth['isAuthenticated'](),controller['removeMembers']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9563=['thumb','TEXT','DATE','STRING','long','out','BOOLEAN','sequelize','exports','INTEGER','ENUM','star'];(function(_0x46de6b,_0x18c82f){var _0x229b7c=function(_0xb05d7f){while(--_0xb05d7f){_0x46de6b['push'](_0x46de6b['shift']());}};_0x229b7c(++_0x18c82f);}(_0x9563,0x1e7));var _0x3956=function(_0x4d1a85,_0x160283){_0x4d1a85=_0x4d1a85-0x0;var _0x5d6ddf=_0x9563[_0x4d1a85];return _0x5d6ddf;};'use strict';var Sequelize=require(_0x3956('0x0'));module[_0x3956('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x3956('0x2')]},'ratingType':{'type':Sequelize[_0x3956('0x3')](_0x3956('0x4'),_0x3956('0x5')),'defaultValue':'star'},'ratingMessage':{'type':Sequelize['TEXT']},'pathTranscript':{'type':Sequelize[_0x3956('0x6')]},'mailTranscript':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x3956('0x7')]},'disposition':{'type':Sequelize[_0x3956('0x8')]},'secondDisposition':{'type':Sequelize[_0x3956('0x8')]},'thirdDisposition':{'type':Sequelize[_0x3956('0x8')]},'note':{'type':Sequelize['STRING']},'browserName':{'type':Sequelize[_0x3956('0x8')]},'browserVersion':{'type':Sequelize[_0x3956('0x8')]},'osName':{'type':Sequelize[_0x3956('0x8')]},'osVersion':{'type':Sequelize[_0x3956('0x8')]},'deviceModel':{'type':Sequelize[_0x3956('0x8')]},'deviceVendor':{'type':Sequelize['STRING']},'deviceType':{'type':Sequelize['STRING']},'referer':{'type':Sequelize[_0x3956('0x6')]},'customerIp':{'type':Sequelize[_0x3956('0x8')]},'formData':{'type':Sequelize[_0x3956('0x6')](_0x3956('0x9'))},'read1stAt':{'type':Sequelize['DATE']},'lastMsgAt':{'type':Sequelize[_0x3956('0x7')]},'lastMsgDirection':{'type':Sequelize[_0x3956('0x3')]('in',_0x3956('0xa')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x3956('0x8')]},'customerPort':{'type':Sequelize[_0x3956('0x8')]},'vidaooSessionId':{'type':Sequelize[_0x3956('0x6')]},'autoreplyExecuted':{'type':Sequelize[_0x3956('0xb')],'defaultValue':![]}};
\ No newline at end of file
+var _0xf894=['sequelize','exports','BOOLEAN','INTEGER','ENUM','star','thumb','TEXT','STRING','DATE','out'];(function(_0x53c922,_0xc0d0a6){var _0x2d8773=function(_0x36961c){while(--_0x36961c){_0x53c922['push'](_0x53c922['shift']());}};_0x2d8773(++_0xc0d0a6);}(_0xf894,0xfd));var _0x4f89=function(_0x1aa8c4,_0x49f5a9){_0x1aa8c4=_0x1aa8c4-0x0;var _0x16a372=_0xf894[_0x1aa8c4];return _0x16a372;};'use strict';var Sequelize=require(_0x4f89('0x0'));module[_0x4f89('0x1')]={'closed':{'type':Sequelize[_0x4f89('0x2')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x4f89('0x3')]},'ratingType':{'type':Sequelize[_0x4f89('0x4')](_0x4f89('0x5'),_0x4f89('0x6')),'defaultValue':_0x4f89('0x5')},'ratingMessage':{'type':Sequelize[_0x4f89('0x7')]},'pathTranscript':{'type':Sequelize[_0x4f89('0x7')]},'mailTranscript':{'type':Sequelize[_0x4f89('0x8')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x4f89('0x9')]},'disposition':{'type':Sequelize[_0x4f89('0x8')]},'secondDisposition':{'type':Sequelize[_0x4f89('0x8')]},'thirdDisposition':{'type':Sequelize[_0x4f89('0x8')]},'note':{'type':Sequelize[_0x4f89('0x8')]},'browserName':{'type':Sequelize[_0x4f89('0x8')]},'browserVersion':{'type':Sequelize[_0x4f89('0x8')]},'osName':{'type':Sequelize['STRING']},'osVersion':{'type':Sequelize[_0x4f89('0x8')]},'deviceModel':{'type':Sequelize[_0x4f89('0x8')]},'deviceVendor':{'type':Sequelize[_0x4f89('0x8')]},'deviceType':{'type':Sequelize[_0x4f89('0x8')]},'referer':{'type':Sequelize[_0x4f89('0x7')]},'customerIp':{'type':Sequelize[_0x4f89('0x8')]},'formData':{'type':Sequelize[_0x4f89('0x7')]('long')},'read1stAt':{'type':Sequelize['DATE']},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x4f89('0x4')]('in',_0x4f89('0xa')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize['STRING']},'customerPort':{'type':Sequelize[_0x4f89('0x8')]},'vidaooSessionId':{'type':Sequelize[_0x4f89('0x7')]},'autoreplyExecuted':{'type':Sequelize[_0x4f89('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8603=['Unauthorized','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','close','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','CmContact','%s%d','agentAlias','System','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailServerOut','Smtp','service','host','port','secure','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','mailTranscript','addMessage','ids','omit','getMessages','nolimit','pick','YYYY-MM-DD\x20HH:mm:ss','includeAll','findAll','rows','getMyMessages','hasOwnProperty','includeAgent','addTags','setTags','spread','chatInteractionTags:save','removeTags','download','unix','server','files','attachments','Attachment','Account','Owner','mkdirSync','Chat','N.A.','closedAt','disposition','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','lastName','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','client','http','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','save','update','then','stack','name','send','render','contact','agent','interaction','account','Users','fullname','Tags','TagIds','split','push','catch','index','map','ChatInteraction','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','field','color','from','tools_tags','select','u.id','u.fullname','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','o.id\x20=\x20i.UserId','chat_websites','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','Tag','forEach','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','body','keys','some','isEmpty','ChatWebsiteId','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','role','sequelize','toString','keyBy','merge','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','show','params','include','options','create','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooMetadata','email','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooTopic','isNull','vidaooNote','follow','ValidationError','Error\x20in\x20Vidaoo\x20configuration','out','ChatMessage','customUpdate','abandon','Interaction\x20already\x20assigned','closed','AbandonInteraction','file','originalname','basename','mimetype','attachmentDownload'];(function(_0x3f6e31,_0x45a738){var _0x62eb3a=function(_0x3a6dea){while(--_0x3a6dea){_0x3f6e31['push'](_0x3f6e31['shift']());}};_0x62eb3a(++_0x45a738);}(_0x8603,0x190));var _0x3860=function(_0xd9fd40,_0x37d572){_0xd9fd40=_0xd9fd40-0x0;var _0x244d56=_0x8603[_0xd9fd40];return _0x244d56;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3860('0x0'));var zipdir=require(_0x3860('0x1'));var jsonpatch=require(_0x3860('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3860('0x3'));var Mustache=require(_0x3860('0x4'));var util=require(_0x3860('0x5'));var path=require('path');var sox=require(_0x3860('0x6'));var csv=require('to-csv');var ejs=require(_0x3860('0x7'));var fs=require('fs');var fs_extra=require(_0x3860('0x8'));var _=require(_0x3860('0x9'));var squel=require(_0x3860('0xa'));var crypto=require(_0x3860('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3860('0xc'));var Papa=require(_0x3860('0xd'));var Redis=require('ioredis');var authService=require(_0x3860('0xe'));var qs=require(_0x3860('0xf'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x3860('0x10'));var hardwareService=require(_0x3860('0x11'));var logger=require('../../config/logger')(_0x3860('0x12'));var utils=require(_0x3860('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x3860('0x14'));var db=require(_0x3860('0x15'))['db'];config[_0x3860('0x16')]=_[_0x3860('0x17')](config[_0x3860('0x16')],{'host':_0x3860('0x18'),'port':0x18eb});var socket=require(_0x3860('0x19'))(new Redis(config[_0x3860('0x16')]));require(_0x3860('0x1a'))[_0x3860('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3860('0x1c')][_0x3860('0x1d')]({'port':0x232b});var client9004=jayson[_0x3860('0x1c')][_0x3860('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x1055b3,_0xfa0c9a,_0x2d8a3a,_0x378305){return new BPromise(function(_0x311fdb,_0x3c0d91){var _0x3e51b4=_0x378305||client;return _0x3e51b4[_0x3860('0x1e')](_0x1055b3,_0x2d8a3a)['then'](function(_0x4863bd){logger[_0x3860('0x1f')](_0x3860('0x20'),_0xfa0c9a,_0x3860('0x21'));logger['debug'](_0x3860('0x22'),_0xfa0c9a,_0x3860('0x21'),JSON[_0x3860('0x23')](_0x4863bd));if(_0x4863bd[_0x3860('0x24')]){if(_0x4863bd[_0x3860('0x24')][_0x3860('0x25')]===0x1f4){logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);return _0x3c0d91(_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);}logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x4863bd[_0x3860('0x24')]['message']);return _0x311fdb(_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);}else{logger[_0x3860('0x1f')](_0x3860('0x20'),_0xfa0c9a,_0x3860('0x21'));_0x311fdb(_0x4863bd['result'][_0x3860('0x26')]);}})['catch'](function(_0x577750){logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x577750);_0x3c0d91(_0x577750);});});}function respondWithStatusCode(_0x54b5ec,_0x4d9a90){_0x4d9a90=_0x4d9a90||0xcc;return function(_0x5f42d5){if(_0x5f42d5){return _0x54b5ec[_0x3860('0x27')](_0x4d9a90);}return _0x54b5ec[_0x3860('0x28')](_0x4d9a90)[_0x3860('0x29')]();};}function respondWithResult(_0x371f3a,_0x9332a5){_0x9332a5=_0x9332a5||0xc8;return function(_0x228d34){if(_0x228d34){return _0x371f3a['status'](_0x9332a5)['json'](_0x228d34);}};}function respondWithFilteredResult(_0x389bd0,_0x1f1809){return function(_0x5a9af2){if(_0x5a9af2){var _0x2551f4=typeof _0x1f1809[_0x3860('0x2a')]===_0x3860('0x2b')&&typeof _0x1f1809[_0x3860('0x2c')]===_0x3860('0x2b');var _0x4bbae9=_0x5a9af2[_0x3860('0x2d')];var _0xf624ba=_0x2551f4?0x0:_0x1f1809[_0x3860('0x2a')];var _0x4bd90c=_0x2551f4?_0x5a9af2[_0x3860('0x2d')]:_0x1f1809['offset']+_0x1f1809[_0x3860('0x2c')];var _0x4825f0;if(_0x4bd90c>=_0x4bbae9){_0x4bd90c=_0x4bbae9;_0x4825f0=0xc8;}else{_0x4825f0=0xce;}_0x389bd0[_0x3860('0x28')](_0x4825f0);return _0x389bd0[_0x3860('0x2e')](_0x3860('0x2f'),_0xf624ba+'-'+_0x4bd90c+'/'+_0x4bbae9)['json'](_0x5a9af2);}return null;};}function patchUpdates(_0x39c751){return function(_0x451b0c){try{jsonpatch['apply'](_0x451b0c,_0x39c751,!![]);}catch(_0x1c94cc){return BPromise['reject'](_0x1c94cc);}return _0x451b0c[_0x3860('0x30')]();};}function saveUpdates(_0x3a577a,_0x35185c){return function(_0x2fc231){if(_0x2fc231){return _0x2fc231[_0x3860('0x31')](_0x3a577a)[_0x3860('0x32')](function(_0x1d3fd0){return _0x1d3fd0;});}return null;};}function removeEntity(_0x4d30bc,_0x1a48b6){return function(_0x396ccf){if(_0x396ccf){return _0x396ccf['destroy']()[_0x3860('0x32')](function(){_0x4d30bc[_0x3860('0x28')](0xcc)[_0x3860('0x29')]();});}};}function handleEntityNotFound(_0x5af661,_0x523cc1){return function(_0x285b1b){if(!_0x285b1b){_0x5af661[_0x3860('0x27')](0x194);}return _0x285b1b;};}function handleError(_0x3abf18,_0xa921ed){_0xa921ed=_0xa921ed||0x1f4;return function(_0x59271f){logger['error'](_0x59271f[_0x3860('0x33')]);if(_0x59271f[_0x3860('0x34')]){delete _0x59271f[_0x3860('0x34')];}_0x3abf18[_0x3860('0x28')](_0xa921ed)[_0x3860('0x35')](_0x59271f);};}function getMustacheRender(_0x4df2a9,_0x424424){return Mustache[_0x3860('0x36')](_0x4df2a9,_['merge'](_0x424424['body'],{'contact':_0x424424[_0x3860('0x37')],'message':_0x424424[_0x3860('0x26')],'agent':_0x424424[_0x3860('0x38')],'interaction':_0x424424[_0x3860('0x39')],'account':_0x424424[_0x3860('0x3a')]}))||'';}function getInteractionUsers(_0x592311,_0x28f04d){return new BPromise(function(_0x510aef,_0x112600){try{if(_0x28f04d[_0x592311['id']]){_0x592311[_0x3860('0x3b')]=_['map'](_0x28f04d[_0x592311['id']],function(_0x36d9bd){return{'id':_0x36d9bd['id'],'fullname':_0x36d9bd[_0x3860('0x3c')]};});}}catch(_0x4f3303){_0x112600(_0x4f3303);}_0x510aef(_0x592311);});}function getInteractionTags(_0x1ef9aa,_0xc7d34d){return new BPromise(function(_0x15bd2c,_0xf346e){try{if(_0x1ef9aa['TagIds']){_0x1ef9aa[_0x3860('0x3d')]=[];_0x1ef9aa[_0x3860('0x3e')][_0x3860('0x3f')](',')['forEach'](function(_0x3a87e5){_0x1ef9aa['Tags'][_0x3860('0x40')](_0xc7d34d[_0x3a87e5]);});}delete _0x1ef9aa[_0x3860('0x3e')];}catch(_0x405bfc){_0xf346e(_0x405bfc);}_0x15bd2c(_0x1ef9aa);});}function updateChatInteraction(_0x3f613f,_0x2220c8,_0x3f4216){return new BPromise(function(_0x4e0a44,_0xbbbf01){return getInteractionUsers(_0x3f613f,_0x3f4216)[_0x3860('0x32')](function(_0x5dc78f){return getInteractionTags(_0x5dc78f,_0x2220c8);})['then'](function(_0x2938d4){_0x4e0a44(_0x2938d4);})[_0x3860('0x41')](function(_0x4f2f53){_0xbbbf01(_0x4f2f53);});});}exports[_0x3860('0x42')]=function(_0x30d8eb,_0x4c6c23){var _0xa6791a={},_0x56a650={},_0x392dc3={'count':0x0,'rows':[]};var _0x37e5c3=_[_0x3860('0x43')](db[_0x3860('0x44')][_0x3860('0x45')],function(_0x15ebbd){return{'name':_0x15ebbd[_0x3860('0x46')],'type':_0x15ebbd[_0x3860('0x47')][_0x3860('0x48')]};});_0x56a650[_0x3860('0x49')]=_[_0x3860('0x43')](_0x37e5c3,'name');_0x56a650[_0x3860('0x4a')]=_['keys'](_0x30d8eb[_0x3860('0x4a')]);_0x56a650[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x56a650[_0x3860('0x49')],_0x56a650[_0x3860('0x4a')]);_0xa6791a[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x56a650[_0x3860('0x49')],qs['fields'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x4e')]));_0xa6791a[_0x3860('0x4d')]=_0xa6791a['attributes'][_0x3860('0x4f')]?_0xa6791a[_0x3860('0x4d')]:_0x56a650[_0x3860('0x49')];if(!_0x30d8eb[_0x3860('0x4a')]['hasOwnProperty']('nolimit')){_0xa6791a[_0x3860('0x2c')]=qs['limit'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x2c')]);_0xa6791a[_0x3860('0x2a')]=qs['offset'](_0x30d8eb[_0x3860('0x4a')]['offset']);}_0xa6791a[_0x3860('0x50')]=qs['sort'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x51')]);_0xa6791a[_0x3860('0x52')]=qs['filters'](_['pick'](_0x30d8eb[_0x3860('0x4a')],_0x56a650[_0x3860('0x4b')]),_0x37e5c3);var _0x478dd9=[];var _0x3910f5=squel['select']()[_0x3860('0x53')]('id')[_0x3860('0x53')](_0x3860('0x34'))[_0x3860('0x53')](_0x3860('0x54'))[_0x3860('0x55')](_0x3860('0x56'));var _0x5a9987=squel[_0x3860('0x57')]()[_0x3860('0x53')](_0x3860('0x58'))[_0x3860('0x53')](_0x3860('0x59'))[_0x3860('0x53')]('ui.ChatInteractionId')[_0x3860('0x55')](_0x3860('0x5a'),'ui')[_0x3860('0x5b')](_0x3860('0x5c'),'u',_0x3860('0x5d'));var _0x1e2b5d=squel[_0x3860('0x57')]()[_0x3860('0x55')]('chat_interactions','i')[_0x3860('0x5b')](_0x3860('0x5e'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x3860('0x5b')](_0x3860('0x5c'),'o',_0x3860('0x5f'))['left_join'](_0x3860('0x60'),'a','a.id\x20=\x20i.ChatWebsiteId')[_0x3860('0x5b')](_0x3860('0x61'),'me',_0x3860('0x62'))[_0x3860('0x5b')](_0x3860('0x63'),'it',_0x3860('0x64'))[_0x3860('0x5b')](_0x3860('0x56'),'t',_0x3860('0x65'));var _0x151492=squel[_0x3860('0x66')]();var _0x2bac24=[];var _0x58147d=squel['expr']();var _0x5111e0;if(_0x30d8eb[_0x3860('0x4a')]['search']){_0x5111e0=as['parseSearch'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x67')]);var _0x2ff440=_0x5111e0[_0x3860('0x68')];for(var _0x3d6c17=0x0;_0x3d6c17<_0x5111e0[_0x3860('0x69')]['length'];_0x3d6c17++){var _0x49ec68=_0x5111e0['conditions'][_0x3d6c17];var _0x1d6c70='i';var _0x1c1da4=_[_0x3860('0x6a')](_0x37e5c3,['name',_0x49ec68[_0x3860('0x53')]]);if(!_0x1c1da4){switch(_0x49ec68['field']){case _0x3860('0x6b'):if(_0x49ec68[_0x3860('0x6c')]==0x1){_0x1e2b5d['having']('`'+_0x49ec68[_0x3860('0x53')]+_0x3860('0x6d'));}else{_0x1e2b5d[_0x3860('0x6e')]('`'+_0x49ec68[_0x3860('0x53')]+'`\x20>\x200');}break;case _0x3860('0x6f'):if(_0x49ec68[_0x3860('0x70')]===_0x3860('0x71')){if(_0x49ec68['value']['split']('\x20')[_0x3860('0x4f')]>0x1){_0x151492[_0x2ff440](_0x3860('0x72'),qs[_0x3860('0x73')](_0x49ec68[_0x3860('0x6c')]),null);}else{var _0x28a8b4='%'+_0x49ec68[_0x3860('0x6c')]+'%';_0x151492[_0x2ff440]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x28a8b4,_0x28a8b4,_0x28a8b4);}}else{_0x1c1da4=_[_0x3860('0x6a')](_0x37e5c3,[_0x3860('0x34'),'ContactId']);_0x49ec68[_0x3860('0x53')]=_0x3860('0x74');_0x3427a5=as[_0x3860('0x75')](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5[_0x3860('0x6c')][_0x3860('0x29')]);}break;case _0x3860('0x77'):var _0x27e5ab=_0x49ec68[_0x3860('0x6c')][_0x3860('0x3f')](',')['map'](function(_0x1ae31b){return Number(_0x1ae31b);});_0x27e5ab[_0x3860('0x78')](function(_0x1c33dc){_0x58147d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1c33dc+',%');});_0x2bac24=_['union'](_0x2bac24,_0x27e5ab);break;case _0x3860('0x79'):if(_0x49ec68[_0x3860('0x70')]===_0x3860('0x71')){_0x151492[_0x2ff440](_0x3860('0x7a'),'%'+_0x49ec68[_0x3860('0x6c')]+'%',null);}else{_0x1c1da4=_['find'](_0x37e5c3,['name',_0x3860('0x7b')]);_0x49ec68[_0x3860('0x53')]='UserId';_0x3427a5=as['buildExpression'](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5['value'][_0x3860('0x7c')],_0x3427a5[_0x3860('0x6c')][_0x3860('0x29')]);}break;case _0x3860('0x7d'):_0x3427a5=as['buildExpression']('me',null,_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5['value'][_0x3860('0x29')]);break;}}else{var _0x3427a5=as['buildExpression'](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5['text'],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5['value'][_0x3860('0x29')]);}}}else{var _0x49c356=_(_0x30d8eb[_0x3860('0x4a')])[_0x3860('0x7e')]()[_0x3860('0x43')](function(_0x2fd2f4){return _[_0x3860('0x7f')](_0x37e5c3,[_0x3860('0x34'),_0x2fd2f4])?_0x2fd2f4:undefined;})['compact']()[_0x3860('0x6c')]();if(!_[_0x3860('0x80')](_0x49c356)){_0x49c356[_0x3860('0x78')](function(_0x5d7cc4){if(_0x5d7cc4===_0x3860('0x81')){_0x1e2b5d['where'](_0x3860('0x82'),[][_0x3860('0x83')](_0x30d8eb['query'][_0x5d7cc4]));}else if(_0x5d7cc4===_0x3860('0x84')){var _0x2cd731=JSON[_0x3860('0x85')](_0x30d8eb['query'][_0x5d7cc4])['$gte'];var _0x5a282a=JSON['parse'](_0x30d8eb[_0x3860('0x4a')][_0x5d7cc4])[_0x3860('0x86')];_0x1e2b5d[_0x3860('0x52')](_0x3860('0x87'),_0x2cd731,_0x5a282a);}else{if(_0x30d8eb['query'][_0x5d7cc4]==='null'){_0x1e2b5d[_0x3860('0x52')]('i.'+_0x5d7cc4+_0x3860('0x88'));}else{_0x1e2b5d[_0x3860('0x52')]('i.'+_0x5d7cc4+_0x3860('0x89'),_0x30d8eb['query'][_0x5d7cc4]);}}});}if(_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8a')]){if(_0x30d8eb['query']['read']==0x1){_0x1e2b5d[_0x3860('0x6e')](_0x3860('0x8b'));}else{_0x1e2b5d[_0x3860('0x6e')](_0x3860('0x8c'));}}if(_0x30d8eb['query']['tag']){_0x2bac24=_[_0x3860('0x8d')](_0x30d8eb['query'][_0x3860('0x8e')])?_0x30d8eb[_0x3860('0x4a')]['tag']:new Array(_0x30d8eb['query']['tag']);_0x2bac24[_0x3860('0x78')](function(_0x36116e){_0x58147d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x36116e+',%');});}if(_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8f')]){var _0x2351fe=_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8f')]['replace']('\x5c','\x5c\x5c')[_0x3860('0x90')](/'/g,'\x27\x27');if(qs[_0x3860('0x91')](_0x2351fe)){_0x151492['or'](_0x3860('0x92'),_0x2351fe+'%');}else{_0x151492['or'](_0x3860('0x93'),qs[_0x3860('0x73')](_0x2351fe))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x2351fe+'%');}}}_0x1e2b5d[_0x3860('0x52')](_0x151492);_0x1e2b5d[_0x3860('0x94')](_0x3860('0x95'));var _0x41ee6f={'type':db[_0x3860('0x96')]['QueryTypes']['SELECT'],'raw':!![]};var _0x196c50=_0x1e2b5d[_0x3860('0x97')]();_0x196c50[_0x3860('0x53')](_0x3860('0x95'));_0x196c50[_0x3860('0x53')](_0x3860('0x98'),_0x3860('0x6b'));if(_0xa6791a['order']){_0xa6791a[_0x3860('0x50')][_0x3860('0x78')](function(_0x58eddd){var _0x1ff95b=_0x58eddd[0x0]===_0x3860('0x99')?_0x58eddd[0x0]:'i.'+_0x58eddd[0x0];_0x1e2b5d[_0x3860('0x50')](_0x1ff95b,_0x58eddd[0x1]==='DESC'?![]:!![]);});}if(!_[_0x3860('0x80')](_0x2bac24)){_0x1e2b5d[_0x3860('0x6e')](_0x58147d);_0x196c50['where'](_0x3860('0x9a'),_0x2bac24);}BPromise['resolve']()[_0x3860('0x32')](function(){if(!_0x5111e0){if(_0x30d8eb[_0x3860('0x4a')]['ChatWebsiteId'])return;_0x196c50[_0x3860('0x52')](_0x3860('0x9b'));_0x1e2b5d[_0x3860('0x52')](_0x3860('0x9b'));return;}if(_0x30d8eb[_0x3860('0x9c')]['role']!==_0x3860('0x38'))return;return _0x30d8eb[_0x3860('0x9c')][_0x3860('0x9d')]({'attributes':['id'],'raw':!![]})[_0x3860('0x32')](function(_0x3c9837){if(_['isEmpty'](_0x3c9837)){_0x196c50['where'](_0x3860('0x9e'));_0x1e2b5d[_0x3860('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x196c50[_0x3860('0x52')](_0x3860('0x82'),_[_0x3860('0x43')](_0x3c9837,'id'));_0x1e2b5d[_0x3860('0x52')]('i.ChatWebsiteId\x20IN\x20?',_[_0x3860('0x43')](_0x3c9837,'id'));}});})['then'](function(){if(_0x30d8eb[_0x3860('0x9c')][_0x3860('0x9f')]===_0x3860('0x38')&&!_0x5111e0&&!_0x30d8eb[_0x3860('0x4a')][_0x3860('0x81')])return[];return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x196c50['toString'](),_0x41ee6f);})[_0x3860('0x32')](function(_0x47396d){_0x392dc3['count']=_0x47396d['length'];if(_0x392dc3['count']===0x0)return[];return db['sequelize'][_0x3860('0x4a')](_0x3910f5[_0x3860('0xa1')](),_0x41ee6f)[_0x3860('0x32')](function(_0x1482cd){_0x478dd9=_[_0x3860('0xa2')](_0x1482cd,'id');_0x41ee6f=_[_0x3860('0xa3')](_0x41ee6f,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x30d8eb[_0x3860('0x4a')]['fields']){_0xa6791a[_0x3860('0x4d')][_0x3860('0x78')](function(_0x897ea0){_0x1e2b5d[_0x3860('0x53')]('i.'+_0x897ea0);});}else{_0x1e2b5d[_0x3860('0x53')](_0x3860('0x98'),_0x3860('0x6b'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa4'),_0x3860('0xa5'));_0x1e2b5d[_0x3860('0x53')]('a.mandatoryDisposition',_0x3860('0xa6'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa7'),'contactName');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa8'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa9'),'Contact.firstName');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xaa'),_0x3860('0xab'));_0x1e2b5d['field'](_0x3860('0xac'),_0x3860('0xad'));_0x1e2b5d[_0x3860('0x53')]('c.phone',_0x3860('0xae'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xaf'),'Contact.mobile');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xb0'),_0x3860('0xb1'));_0x1e2b5d['field'](_0x3860('0xb2'),_0x3860('0xb3'));_0x1e2b5d[_0x3860('0x53')]('o.internal',_0x3860('0xb4'));_0x1e2b5d['field'](_0x3860('0xb5'),'TagIds');}if(_0xa6791a[_0x3860('0x2c')])_0x1e2b5d[_0x3860('0x2c')](_0xa6791a[_0x3860('0x2c')]);if(_0xa6791a[_0x3860('0x2a')])_0x1e2b5d[_0x3860('0x2a')](_0xa6791a[_0x3860('0x2a')]);return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x1e2b5d[_0x3860('0xa1')](),_0x41ee6f);})[_0x3860('0x32')](function(_0x10b4e8){if(_0x10b4e8[_0x3860('0x4f')]>0x0)_0x5a9987[_0x3860('0x52')](_0x3860('0xb6'),_[_0x3860('0x43')](_0x10b4e8,'id'));return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x5a9987[_0x3860('0xa1')](),_0x41ee6f)['then'](function(_0x37575b){var _0x1d6d2b=_[_0x3860('0xb7')](_0x37575b,_0x3860('0xb8'));var _0x3e6bf8=[];_0x10b4e8[_0x3860('0x78')](function(_0xffe2a1){_0x3e6bf8[_0x3860('0x40')](updateChatInteraction(_0xffe2a1,_0x478dd9,_0x1d6d2b));});return BPromise[_0x3860('0xb9')](_0x3e6bf8);});});})[_0x3860('0x32')](function(_0x3b932d){_0x392dc3['rows']=_0x3b932d;return _0x392dc3;})[_0x3860('0x32')](respondWithFilteredResult(_0x4c6c23,_0xa6791a))[_0x3860('0x41')](handleError(_0x4c6c23,null));};exports[_0x3860('0xba')]=function(_0x6334ca,_0x4a929e){var _0x1a1994={'raw':![],'where':{'id':_0x6334ca[_0x3860('0xbb')]['id']}},_0x2ece36={};_0x2ece36[_0x3860('0x49')]=_['keys'](db[_0x3860('0x44')]['rawAttributes']);_0x2ece36['query']=_[_0x3860('0x7e')](_0x6334ca[_0x3860('0x4a')]);_0x2ece36[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x2ece36[_0x3860('0x49')],_0x2ece36[_0x3860('0x4a')]);_0x1a1994[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x2ece36[_0x3860('0x49')],qs[_0x3860('0x4e')](_0x6334ca[_0x3860('0x4a')][_0x3860('0x4e')]));_0x1a1994[_0x3860('0x4d')]=_0x1a1994['attributes'][_0x3860('0x4f')]?_0x1a1994['attributes']:_0x2ece36[_0x3860('0x49')];if(_0x6334ca[_0x3860('0x4a')]['includeAll']){_0x1a1994[_0x3860('0xbc')]=[{'all':!![]}];}_0x1a1994=_[_0x3860('0xa3')]({},_0x1a1994,_0x6334ca[_0x3860('0xbd')]);return db[_0x3860('0x44')][_0x3860('0x6a')](_0x1a1994)[_0x3860('0x32')](handleEntityNotFound(_0x4a929e,null))[_0x3860('0x32')](respondWithResult(_0x4a929e,null))['catch'](handleError(_0x4a929e,null));};exports[_0x3860('0xbe')]=function(_0x6d1819,_0x9e1682){return db[_0x3860('0x44')][_0x3860('0xbe')](_0x6d1819['body'],{})[_0x3860('0x32')](respondWithResult(_0x9e1682,0xc9))['catch'](handleError(_0x9e1682,null));};exports['update']=function(_0x56af8c,_0x1059a4){if(_0x56af8c[_0x3860('0x7d')]['id']){delete _0x56af8c[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x56af8c[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x1059a4,null))[_0x3860('0x32')](saveUpdates(_0x56af8c['body'],null))[_0x3860('0x32')](respondWithResult(_0x1059a4,null))[_0x3860('0x41')](handleError(_0x1059a4,null));};exports['destroy']=function(_0x490884,_0x4428eb){return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x490884['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x4428eb,null))['then'](removeEntity(_0x4428eb,null))[_0x3860('0x41')](handleError(_0x4428eb,null));};exports['describe']=function(_0x41fd53,_0xf91fc2){return db['ChatInteraction'][_0x3860('0xbf')]()[_0x3860('0x32')](respondWithResult(_0xf91fc2,null))['catch'](handleError(_0xf91fc2,null));};exports[_0x3860('0xc0')]=function(_0x398bc1,_0x3312c4){var _0x501519=_0x398bc1[_0x3860('0xbb')]['id'];var _0x47fba5;var _0x3e3dac;var _0x18b845;return db['ChatInteraction'][_0x3860('0xc1')]({'where':{'id':_0x501519}})[_0x3860('0x32')](function(_0x2b1dc1){_0x47fba5=_0x2b1dc1;return db[_0x3860('0xc2')][_0x3860('0xc1')]({'where':{'id':_0x2b1dc1['ChatWebsiteId']},'attributes':['id',_0x3860('0xc3'),_0x3860('0xc4'),'vidaooTopic','vidaooNote',_0x3860('0xc5')],'raw':!![]});})['then'](function(_0xe27f6b){if(_0xe27f6b&&_0xe27f6b[_0x3860('0xc3')]&&_0xe27f6b['vidaooEscalation']){_0x3e3dac=_0xe27f6b;var _0x1041bf={'interaction':{'id':_0x501519},'agent':{'id':_0x398bc1['user']['id'],'name':_0x398bc1[_0x3860('0x9c')]['name'],'fullname':_0x398bc1[_0x3860('0x9c')][_0x3860('0x3c')],'email':_0x398bc1[_0x3860('0x9c')][_0x3860('0xc6')]},'contact':_0x398bc1['body'][_0x3860('0x37')],'account':_0x398bc1[_0x3860('0x7d')][_0x3860('0x3a')]};var _0x1e1baf={'rejectUnauthorized':![],'method':'POST','url':_0x3860('0xc7'),'headers':{'X-APIKEY':_0xe27f6b[_0x3860('0xc3')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x398bc1['user'][_0x3860('0xc6')]],'buttons':null,'topic':_0x3e3dac[_0x3860('0xc8')],'note':_[_0x3860('0xc9')](_0x3e3dac[_0x3860('0xca')])?null:getMustacheRender(_0x3e3dac['vidaooNote'],_0x1041bf),'metadata':null},'redirect':_0x3860('0xcb'),'json':!![]};try{if(!_[_0x3860('0xc9')](_0x3e3dac[_0x3860('0xc5')])){var _0x1ce6e6=getMustacheRender(_0x3e3dac['vidaooMetadata'],_0x1041bf);var _0x1df44=JSON['parse'](_0x1ce6e6);_0x1e1baf['body']['metadata']=_0x1df44;}}catch(_0x15b53f){throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))]('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x1e1baf);}else{throw new db[(_0x3860('0x96'))]['ValidationError'](_0x3860('0xcd'));}})[_0x3860('0x32')](function(_0x21c052){_0x18b845=_0x21c052;if(_0x18b845['id']){var _0x3a920b={'body':_0x18b845['join_url'],'ChatWebsiteId':_0x3e3dac['id'],'ChatInteractionId':_0x47fba5['id'],'direction':_0x3860('0xce'),'UserId':_0x398bc1[_0x3860('0x9c')]['id']};return db[_0x3860('0xcf')]['create'](_0x3a920b,{});}else{throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x47fba5['updateAttributes']({'vidaooSessionId':_0x18b845['id']});})['then'](respondWithResult(_0x3312c4,null))[_0x3860('0x41')](handleError(_0x3312c4,null));};exports[_0x3860('0xd0')]=function(_0x2a09a2,_0x266347){if(_0x2a09a2[_0x3860('0x7d')]['id']){delete _0x2a09a2[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')]['find']({'where':{'id':_0x2a09a2['params']['id']},'include':[{'model':db['CmContact'],'as':_0x3860('0x6f')}]})[_0x3860('0x32')](handleEntityNotFound(_0x266347,null))[_0x3860('0x32')](saveUpdates(_0x2a09a2['body'],null))[_0x3860('0x32')](respondWithResult(_0x266347,null))['catch'](handleError(_0x266347,null));};exports['abandon']=function(_0x5f0700,_0x46f630,_0x505ba2){if(_0x5f0700['body']['id']){delete _0x5f0700[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x5f0700[_0x3860('0xbb')]['id']}})['then'](function(_0x53392b){if(!_0x53392b){logger['error']('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x3860('0xd1'),0x194,'entity\x20not\x20found');_0x46f630['sendStatus'](0x194);}else{if(_0x53392b[_0x3860('0x7b')]){throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))](_0x3860('0xd2'));}}return _0x53392b;})['then'](function(_0x6e541d){if(_0x6e541d){return _0x6e541d[_0x3860('0x31')]({'closed':_0x5f0700[_0x3860('0x7d')][_0x3860('0xd3')],'disposition':_0x5f0700['body']['disposition']})[_0x3860('0x32')](function(_0x55c19c){return _0x55c19c;});}})[_0x3860('0x32')](function(_0x4ab85d){return respondWithRpcPromise(_0x3860('0xd4'),_0x3860('0xd1'),_0x5f0700[_0x3860('0x7d')],client9004);})[_0x3860('0x32')](respondWithResult(_0x46f630,null))[_0x3860('0x41')](handleError(_0x46f630,null));};exports['attachmentUpload']=function(_0x5d3c4d,_0x5e3c54,_0x39e855){_0x5d3c4d[_0x3860('0x7d')][_0x3860('0x34')]=_0x5d3c4d[_0x3860('0xd5')][_0x3860('0xd6')];_0x5d3c4d['body'][_0x3860('0xd7')]=_0x5d3c4d[_0x3860('0xd5')]['filename'];_0x5d3c4d[_0x3860('0x7d')]['type']=_0x5d3c4d[_0x3860('0xd5')][_0x3860('0xd8')];return db['Attachment'][_0x3860('0xbe')](_0x5d3c4d[_0x3860('0x7d')])[_0x3860('0x32')](respondWithResult(_0x5e3c54,0xc9))[_0x3860('0x41')](handleError(_0x5e3c54,null));};exports[_0x3860('0xd9')]=function(_0x3e2dfc,_0x135e84,_0x199bbc){return db[_0x3860('0x44')][_0x3860('0xc1')]({'where':{'id':_0x3e2dfc[_0x3860('0xbb')]['id']},'raw':!![]})[_0x3860('0x32')](handleEntityNotFound(_0x135e84,null))['then'](function(_0x369a4b){if(_0x369a4b){if(_0x369a4b['closed']){return _0x135e84[_0x3860('0x28')](0x193)['json']({'status':0x193,'message':_0x3860('0xda')});}return db['Attachment'][_0x3860('0xc1')]({'where':{'id':_0x3e2dfc['query']['attachId']},'raw':!![]})[_0x3860('0x32')](handleEntityNotFound(_0x135e84,null));}})[_0x3860('0x32')](function(_0xa152b4){if(_0xa152b4){var _0x28931d=_0xa152b4[_0x3860('0xdb')]!==null;var _0x5e65a2=path[_0x3860('0xdc')](config[_0x3860('0xdd')],_0x3860('0xde'));if(_0x28931d){_0x5e65a2=path[_0x3860('0xdc')](_0x5e65a2,_0x3860('0xdf'));}var _0x268658=path['join'](_0x5e65a2,_0xa152b4[_0x3860('0xd7')]);return _0x135e84['download'](_0x268658);}})[_0x3860('0x41')](handleError(_0x135e84,null));};exports[_0x3860('0xe0')]=function(_0x118c4e,_0x471da9){var _0x244ceb=null;var _0x24f8a6=null;var _0x532349=null;var _0x17fa12=null;if(_0x118c4e[_0x3860('0x7d')]['id']){delete _0x118c4e[_0x3860('0x7d')]['id'];}if(_0x118c4e[_0x3860('0x7d')]['mailTranscript']){_0x17fa12=path[_0x3860('0xdc')](config[_0x3860('0xdd')],_0x3860('0xe1'),util[_0x3860('0xe2')](_0x3860('0xe3'),Date[_0x3860('0xe4')]()));_0x118c4e['body'][_0x3860('0xe5')]=_0x17fa12;}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x118c4e[_0x3860('0xbb')]['id']},'include':[{'model':db[_0x3860('0xcf')],'as':_0x3860('0xe6'),'include':[{'model':db['User'],'as':'User'}]}]})['then'](handleEntityNotFound(_0x471da9,null))[_0x3860('0x32')](saveUpdates(_0x118c4e[_0x3860('0x7d')],null))['then'](function(_0x276828){if(_0x276828){_0x244ceb=_0x276828;return db[_0x3860('0xc2')][_0x3860('0x6a')]({'where':{'id':_0x244ceb[_0x3860('0x81')]}});}})[_0x3860('0x32')](function(_0x1740d0){if(_0x1740d0){_0x532349=_0x1740d0;return db[_0x3860('0xe7')][_0x3860('0x6a')]({'where':{'id':_0x244ceb[_0x3860('0x74')]}});}})[_0x3860('0x32')](function(_0x975c7f){if(_0x975c7f){_0x24f8a6=_0x975c7f;if(_0x17fa12){var _0x23207b=null;for(var _0x1a1366=0x1;_0x1a1366<_0x244ceb[_0x3860('0xe6')][_0x3860('0x4f')];++_0x1a1366){_0x23207b=_0x244ceb['Messages'][_0x1a1366];var _0x56566c=_0x23207b[_0x3860('0x7b')]?util[_0x3860('0xe2')](_0x3860('0xe8'),_0x532349[_0x3860('0xe9')],_0x23207b[_0x3860('0x7b')]):_0x3860('0xea');var _0x1290e7=_0x118c4e[_0x3860('0x7d')]['customer']||util[_0x3860('0xe2')](_0x3860('0xe8'),_0x3860('0xeb'),_0x23207b['ContactId']);switch(_0x532349[_0x3860('0xec')]){case _0x3860('0xed'):_0x56566c=_0x23207b[_0x3860('0x7b')]?util[_0x3860('0xe2')](_0x3860('0xe8'),_0x532349[_0x3860('0xe9')],_0x23207b[_0x3860('0x7b')]):_0x3860('0xea');break;case _0x3860('0xee'):_0x56566c=_0x23207b['UserId']?_0x23207b[_0x3860('0x79')][_0x3860('0xef')]||_0x23207b['User'][_0x3860('0x3c')]:_0x3860('0xea');break;case _0x3860('0xf0'):_0x56566c=_0x23207b['UserId']?_0x23207b[_0x3860('0x79')][_0x3860('0x3c')]:_0x3860('0xea');break;default:_0x56566c=_0x23207b[_0x3860('0x7b')]?util['format']('%s%d',_0x532349[_0x3860('0xe9')],_0x23207b['UserId']):_0x3860('0xea');}var _0x15314d=util[_0x3860('0xe2')](_0x3860('0xf1'),moment(_0x23207b[_0x3860('0x84')])[_0x3860('0xe2')](_0x3860('0xf2')),_0x23207b[_0x3860('0xf3')]==='in'?_0x1290e7:_0x56566c,_0x23207b['body']);if(!_0x23207b[_0x3860('0xf4')]){fs[_0x3860('0xf5')](_0x17fa12,_0x15314d);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x3860('0xf6')],'as':'Smtp','raw':!![]}]});}}})[_0x3860('0x32')](function(_0x2bf644){if(_0x2bf644&&_0x2bf644[_0x3860('0xf7')]&&_0x118c4e[_0x3860('0x7d')]){var _0xd95981={'tls':{'rejectUnauthorized':![]}};if(_0x2bf644[_0x3860('0xf7')][_0x3860('0xf8')]){_0xd95981[_0x3860('0xf8')]=_0x2bf644['Smtp']['service'];}else{_0xd95981[_0x3860('0xf9')]=_0x2bf644['Smtp'][_0x3860('0xf9')];_0xd95981[_0x3860('0xfa')]=_0x2bf644[_0x3860('0xf7')][_0x3860('0xfa')];_0xd95981[_0x3860('0xfb')]=_0x2bf644[_0x3860('0xf7')][_0x3860('0xfb')];}if(_0x2bf644['Smtp']['authentication']){_0xd95981[_0x3860('0xfc')]={'user':_0x2bf644[_0x3860('0xf7')][_0x3860('0x9c')],'pass':_0x2bf644['Smtp'][_0x3860('0xfd')]};}return respondWithRpcPromise(_0x3860('0xfe'),_0x3860('0xff'),{'account':_0xd95981,'message':{'from':util['format'](_0x3860('0x100'),_0x2bf644[_0x3860('0x34')],_0x2bf644['email']||_0x2bf644['Smtp']['user']),'to':_0x118c4e['body']['mailTranscript'],'subject':_0x3860('0x101'),'text':util[_0x3860('0xe2')](_0x3860('0x102'),_0x118c4e[_0x3860('0x7d')][_0x3860('0x103')]),'attachments':[{'path':_0x17fa12}]}})['then'](function(){return _0x244ceb;})[_0x3860('0x41')](function(_0x5235e){console['error'](_0x5235e);});}else{return _0x244ceb;}})[_0x3860('0x32')](respondWithStatusCode(_0x471da9,0xc8))[_0x3860('0x41')](handleError(_0x471da9,null));};exports[_0x3860('0x104')]=function(_0x38cdf1,_0x4ab7b2,_0x4c8a10){return db['ChatMessage'][_0x3860('0x6a')]({'where':{'id':_0x38cdf1['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x4ab7b2,null))[_0x3860('0x32')](function(_0x2adf67){if(_0x2adf67){return _0x2adf67[_0x3860('0x104')](_0x38cdf1[_0x3860('0x7d')][_0x3860('0x105')],_[_0x3860('0x106')](_0x38cdf1[_0x3860('0x7d')],[_0x3860('0x105'),'id'])||{});}})[_0x3860('0x32')](respondWithResult(_0x4ab7b2,null))[_0x3860('0x41')](handleError(_0x4ab7b2,null));};exports[_0x3860('0x107')]=function(_0x173790,_0x20d0d2,_0x8d3ad7){var _0xf1e9ab={'raw':![],'where':{}};var _0xcf350b={};var _0x1348e0={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x3860('0xc1')]({'where':{'id':_0x173790['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x20d0d2,null))[_0x3860('0x32')](function(_0x11d0ab){if(_0x11d0ab){_0xcf350b[_0x3860('0x49')]=_[_0x3860('0x7e')](db[_0x3860('0xcf')][_0x3860('0x45')]);_0xcf350b[_0x3860('0x4a')]=_[_0x3860('0x7e')](_0x173790['query']);_0xcf350b[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0xcf350b[_0x3860('0x49')],_0xcf350b[_0x3860('0x4a')]);_0xf1e9ab[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0xcf350b[_0x3860('0x49')],qs['fields'](_0x173790[_0x3860('0x4a')][_0x3860('0x4e')]));_0xf1e9ab[_0x3860('0x4d')]=_0xf1e9ab['attributes'][_0x3860('0x4f')]?_0xf1e9ab[_0x3860('0x4d')]:_0xcf350b[_0x3860('0x49')];if(!_0x173790['query']['hasOwnProperty'](_0x3860('0x108'))){_0xf1e9ab[_0x3860('0x2c')]=qs['limit'](_0x173790[_0x3860('0x4a')]['limit']);_0xf1e9ab[_0x3860('0x2a')]=qs[_0x3860('0x2a')](_0x173790['query'][_0x3860('0x2a')]);}_0xf1e9ab['order']=qs[_0x3860('0x51')](_0x173790[_0x3860('0x4a')][_0x3860('0x51')]);_0xf1e9ab[_0x3860('0x52')]=qs[_0x3860('0x4b')](_[_0x3860('0x109')](_0x173790[_0x3860('0x4a')],_0xcf350b['filters']));_0xf1e9ab[_0x3860('0x52')]['ChatInteractionId']=_0x11d0ab['id'];if(_0x173790[_0x3860('0x4a')][_0x3860('0x8f')]){_0xf1e9ab['where']=_['merge'](_0xf1e9ab[_0x3860('0x52')],{'$or':_[_0x3860('0x43')](_0xf1e9ab[_0x3860('0x4d')],function(_0x234f93){var _0x5ed001={};_0x5ed001[_0x234f93]={'$like':'%'+_0x173790[_0x3860('0x4a')][_0x3860('0x8f')]+'%'};return _0x5ed001;})});}if(_0x173790[_0x3860('0x4a')]['$gte']){var _0x1ac962=_0x173790[_0x3860('0x4a')]['$gte'][_0x3860('0x3f')](',');var _0x35dbfe={};_0x35dbfe[_0x1ac962[0x0]]={'$gte':moment(_0x1ac962[0x1])[_0x3860('0xe2')](_0x3860('0x10a'))};_0xf1e9ab[_0x3860('0x52')]=_[_0x3860('0xa3')](_0xf1e9ab[_0x3860('0x52')],_0x35dbfe);}_0xf1e9ab=_['merge']({},_0xf1e9ab,_0x173790[_0x3860('0xbd')]);return db[_0x3860('0xcf')][_0x3860('0x2d')]({'where':_0xf1e9ab[_0x3860('0x52')]})[_0x3860('0x32')](function(_0x54ebd7){_0x1348e0[_0x3860('0x2d')]=_0x54ebd7;if(_0x173790[_0x3860('0x4a')][_0x3860('0x10b')]){_0xf1e9ab[_0x3860('0xbc')]=[{'all':!![]}];}return db[_0x3860('0xcf')][_0x3860('0x10c')](_0xf1e9ab);})['then'](function(_0x16457e){_0x1348e0[_0x3860('0x10d')]=_0x16457e;return _0x1348e0;});}})[_0x3860('0x32')](respondWithFilteredResult(_0x20d0d2,_0xf1e9ab))[_0x3860('0x41')](handleError(_0x20d0d2,null));};exports[_0x3860('0x10e')]=function(_0x2b6605,_0x11409b,_0x187e3b){var _0x4fb4f3={'where':{}},_0x21b179={},_0x28b7a2={'count':0x0,'rows':[]};return db[_0x3860('0x44')][_0x3860('0xc1')]({'where':{'id':_0x2b6605[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x11409b,null))[_0x3860('0x32')](function(_0x2ca2e7){if(_0x2ca2e7){_0x21b179[_0x3860('0x49')]=_['keys'](db[_0x3860('0xcf')][_0x3860('0x45')]);_0x21b179[_0x3860('0x4a')]=_[_0x3860('0x7e')](_0x2b6605[_0x3860('0x4a')]);_0x21b179[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x21b179[_0x3860('0x49')],_0x21b179[_0x3860('0x4a')]);_0x4fb4f3[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x21b179[_0x3860('0x49')],qs[_0x3860('0x4e')](_0x2b6605[_0x3860('0x4a')][_0x3860('0x4e')]));_0x4fb4f3['attributes']=_0x4fb4f3[_0x3860('0x4d')][_0x3860('0x4f')]?_0x4fb4f3[_0x3860('0x4d')]:_0x21b179[_0x3860('0x49')];if(!_0x2b6605[_0x3860('0x4a')][_0x3860('0x10f')](_0x3860('0x108'))){_0x4fb4f3[_0x3860('0x2c')]=qs[_0x3860('0x2c')](_0x2b6605[_0x3860('0x4a')][_0x3860('0x2c')]);_0x4fb4f3[_0x3860('0x2a')]=qs['offset'](_0x2b6605[_0x3860('0x4a')]['offset']);}_0x4fb4f3[_0x3860('0x50')]=qs['sort'](_0x2b6605[_0x3860('0x4a')]['sort']);_0x4fb4f3[_0x3860('0x52')]=qs[_0x3860('0x4b')](_['pick'](_0x2b6605[_0x3860('0x4a')],_0x21b179[_0x3860('0x4b')]));_0x4fb4f3[_0x3860('0x52')][_0x3860('0xb8')]=_0x2ca2e7['id'];if(_0x2b6605[_0x3860('0x4a')]['filter']){_0x4fb4f3['where']=_[_0x3860('0xa3')](_0x4fb4f3[_0x3860('0x52')],{'$or':_[_0x3860('0x43')](_0x4fb4f3[_0x3860('0x4d')],function(_0x31a537){var _0x438121={};_0x438121[_0x31a537]={'$like':'%'+_0x2b6605[_0x3860('0x4a')]['filter']+'%'};return _0x438121;})});}_0x4fb4f3[_0x3860('0x52')]['secret']=![];if(_0x2b6605[_0x3860('0x4a')]['id']){_0x4fb4f3[_0x3860('0x52')]['id']={'$gt':_0x2b6605[_0x3860('0x4a')]['id']};}_0x4fb4f3=_[_0x3860('0xa3')]({},_0x4fb4f3,_0x2b6605['options']);return db[_0x3860('0xcf')][_0x3860('0x2d')]({'where':_0x4fb4f3['where']})[_0x3860('0x32')](function(_0x4d4366){_0x28b7a2[_0x3860('0x2d')]=_0x4d4366;_0x4fb4f3[_0x3860('0xbc')]=[];if(_0x2b6605[_0x3860('0x4a')][_0x3860('0x110')]){_0x4fb4f3[_0x3860('0xbc')][_0x3860('0x40')]({'model':db[_0x3860('0x79')],'as':_0x3860('0x79'),'attributes':['id',_0x3860('0x3c'),'alias']});}if(_0x2b6605[_0x3860('0x4a')][_0x3860('0x10b')]){_0x4fb4f3[_0x3860('0xbc')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x4fb4f3);})['then'](function(_0x39c52e){_0x28b7a2[_0x3860('0x10d')]=_0x39c52e;return _0x28b7a2;});}})[_0x3860('0x32')](respondWithFilteredResult(_0x11409b,_0x4fb4f3))[_0x3860('0x41')](handleError(_0x11409b,null));};exports[_0x3860('0x111')]=function(_0x185040,_0x14cef9,_0x5e1ed4){return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x185040[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x14cef9,null))['then'](function(_0xbc013a){if(_0xbc013a){return _0xbc013a[_0x3860('0x112')](_0x185040['body'][_0x3860('0x105')],_[_0x3860('0x106')](_0x185040[_0x3860('0x7d')],[_0x3860('0x105'),'id'])||{})[_0x3860('0x113')](function(){return db[_0x3860('0x77')][_0x3860('0x10c')]({'attributes':['id',_0x3860('0x34'),_0x3860('0x54')],'where':{'id':_0x185040[_0x3860('0x7d')][_0x3860('0x105')]}});})[_0x3860('0x32')](function(_0x57f603){socket['emit'](_0x3860('0x114'),{'id':Number(_0x185040['params']['id']),'tags':_0x57f603||[]});return{'id':Number(_0x185040['params']['id']),'tags':_0x57f603||[]};});}})[_0x3860('0x32')](respondWithResult(_0x14cef9,null))[_0x3860('0x41')](handleError(_0x14cef9,null));};exports[_0x3860('0x115')]=function(_0x2e2ff3,_0x27c591,_0x8b9a7a){return db['ChatInteraction'][_0x3860('0x6a')]({'where':{'id':_0x2e2ff3[_0x3860('0xbb')]['id']}})['then'](handleEntityNotFound(_0x27c591,null))[_0x3860('0x32')](function(_0x5ecd57){if(_0x5ecd57){return _0x5ecd57['removeTags'](_0x2e2ff3['query'][_0x3860('0x105')]);}})[_0x3860('0x32')](respondWithStatusCode(_0x27c591,null))[_0x3860('0x41')](handleError(_0x27c591,null));};exports[_0x3860('0x116')]=function(_0x39524a,_0xa0492b){var _0x4d44de=moment()[_0x3860('0x117')]()[_0x3860('0xa1')]();var _0x1dcd01=path['join'](config[_0x3860('0xdd')],_0x3860('0x118'),_0x3860('0x119'),'tmp');var _0x198422=path['join'](config[_0x3860('0xdd')],'server',_0x3860('0x119'),_0x3860('0x11a'));var _0x1a97c1=path[_0x3860('0xdc')](_0x1dcd01,_0x4d44de);var _0x4cc748=util[_0x3860('0xe2')]('transcript-%d-%s.zip',_0x39524a[_0x3860('0xbb')]['id'],_0x4d44de);var _0x18fd61=path['join'](_0x1dcd01,_0x4cc748);var _0x39eb63=[];_0x39eb63[_0x3860('0x40')]({'model':db['User'],'as':_0x3860('0x79'),'attributes':['id',_0x3860('0x3c')],'raw':!![]});_0x39eb63[_0x3860('0x40')]({'model':db[_0x3860('0xe7')],'as':_0x3860('0x6f'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x39524a[_0x3860('0x4a')]['attachments']){_0x39eb63[_0x3860('0x40')]({'model':db[_0x3860('0x11b')],'as':'Attachment','raw':!![]});}var _0x134dfd=[{'model':db[_0x3860('0xcf')],'as':_0x3860('0xe6'),'attributes':['id','body',_0x3860('0x84'),'direction','secret','read'],'include':_0x39eb63}];_0x134dfd['push']({'model':db['ChatWebsite'],'as':_0x3860('0x11c'),'attributes':['id',_0x3860('0x34')]});_0x134dfd['push']({'model':db[_0x3860('0x79')],'as':_0x3860('0x11d'),'attributes':['id',_0x3860('0x3c')]});return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x39524a[_0x3860('0xbb')]['id']},'include':_0x134dfd})[_0x3860('0x32')](handleEntityNotFound(_0xa0492b,null))['then'](function(_0x2fe51b){if(_0x2fe51b){var _0x51bf5a=_0x2fe51b['get']({'plain':!![]});fs[_0x3860('0x11e')](_0x1a97c1);var _0x33abf1={'channel':_0x3860('0x11f'),'account':_0x51bf5a[_0x3860('0x11c')][_0x3860('0x34')],'agent':_0x51bf5a['Owner']?_0x51bf5a[_0x3860('0x11d')]['fullname']:_0x3860('0x120'),'createdAt':moment(_0x51bf5a['createdAt'])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')](),'closedAt':_0x51bf5a[_0x3860('0xd3')]?moment(_0x51bf5a[_0x3860('0x121')])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')]():'','disposition':_0x51bf5a[_0x3860('0x122')],'chatInfo':{'browser':_0x51bf5a['browserName'],'os':_0x51bf5a[_0x3860('0x123')],'referer':_0x51bf5a[_0x3860('0x124')],'customerIp':_0x51bf5a[_0x3860('0x125')],'customerPort':_0x51bf5a[_0x3860('0x126')]?_0x51bf5a[_0x3860('0x126')]:'N.A.'},'messages':_(_0x51bf5a[_0x3860('0xe6')])[_0x3860('0x127')]()['filter']({'secret':![]})['map'](function(_0x5b23d2){if(_0x5b23d2[_0x3860('0x11b')]){var _0x409781=path[_0x3860('0xdc')](_0x198422,_0x5b23d2[_0x3860('0x11b')][_0x3860('0xd7')]);if(fs[_0x3860('0x128')](_0x409781)){fs[_0x3860('0x129')](_0x409781)[_0x3860('0x12a')](fs[_0x3860('0x12b')](path[_0x3860('0xdc')](_0x1a97c1,_0x5b23d2[_0x3860('0x11b')][_0x3860('0xd7')])));}}return{'date':moment(_0x5b23d2[_0x3860('0x84')])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')](),'sender':_0x5b23d2[_0x3860('0xf3')]===_0x3860('0xce')?_0x5b23d2[_0x3860('0x79')]?_0x5b23d2['User'][_0x3860('0x3c')]:_0x3860('0xea'):_0x5b23d2[_0x3860('0x6f')]['firstName']+(_0x5b23d2[_0x3860('0x6f')][_0x3860('0x12c')]?'\x20'+_0x5b23d2['Contact'][_0x3860('0x12c')]:''),'body':_0x5b23d2['Attachment']?_0x5b23d2['Attachment'][_0x3860('0xd7')]:_0x5b23d2[_0x3860('0x7d')],'direction':_0x5b23d2[_0x3860('0xf3')]===_0x3860('0xce')?'A':'C','secret':_0x5b23d2[_0x3860('0xf4')],'read':_0x5b23d2[_0x3860('0x8a')],'attachment':_0x5b23d2['Attachment']};})[_0x3860('0x6c')]()};return ejs[_0x3860('0x12d')](path[_0x3860('0xdc')](config['root'],_0x3860('0x118'),_0x3860('0x12e'),'downloadInteraction.ejs'),{'interaction':_0x33abf1})[_0x3860('0x32')](function(_0x5c5755){var _0x5dfb3b=path[_0x3860('0xdc')](_0x1a97c1,_0x3860('0x12f')+_0x51bf5a['id']+'-'+_0x4d44de+_0x3860('0x130'));var _0x1eba76={'path':_0x5dfb3b,'channel':'Chat','interactionId':_0x51bf5a['id']};return pdf[_0x3860('0x131')](_0x5c5755,_0x1eba76);})['then'](function(){return new BPromise(function(_0x34ad82,_0x44ac65){zipdir(_0x1a97c1,{'saveTo':_0x18fd61},function(_0x43cc98,_0xd9ff70){if(_0x43cc98)return _0x44ac65(_0x43cc98);return _0x34ad82(_0xd9ff70);});})['then'](function(){return new BPromise(function(_0x52e611,_0x4ccefa){rimraf(_0x1a97c1,function(_0x2c90b){if(_0x2c90b)_0x4ccefa(_0x2c90b);return _0x52e611();});});})[_0x3860('0x32')](function(){return _0xa0492b[_0x3860('0x116')](_0x18fd61,_0x4cc748,function(_0x3046f4){if(_0x3046f4){console[_0x3860('0x132')](_0x3860('0x133'),_0x3046f4);}else{fs[_0x3860('0x134')](_0x18fd61);}});});});}else{return _0xa0492b['sendStatus'](0xc8);}})[_0x3860('0x41')](handleError(_0xa0492b,null));};
\ No newline at end of file
+var _0xd943=['Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','addMessage','ids','omit','getMessages','pick','YYYY-MM-DD\x20HH:mm:ss','findAll','includeAgent','addTags','setTags','spread','emit','chatInteractionTags:save','removeTags','unix','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','Account','Owner','mkdirSync','Chat','disposition','browserName','osName','referer','customerIp','customerPort','tail','existsSync','pipe','createWriteStream','renderFile','server','views','downloadInteraction.ejs','transcript-','log','err','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','ejs','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./chatInteraction.socket','register','client','http','request','then','info','ChatInteraction,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','offset','limit','undefined','Content-Range','reject','save','update','destroy','stack','name','send','render','body','contact','agent','account','map','fullname','TagIds','Tags','split','forEach','index','ChatInteraction','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','field','from','tools_tags','select','u.fullname','ui.ChatInteractionId','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','chat_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','chat_websites','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','unreadMessages','`\x20=\x200','having','Contact','operator','value','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','find','ContactId','buildExpression','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','UserId','start','some','compact','isEmpty','ChatWebsiteId','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','$gte','null','\x20IS\x20NULL','read','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','QueryTypes','SELECT','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','toString','count','sequelize','keyBy','merge','a.key','Account.key','Account.mandatoryDisposition','i.*','c.firstName','Contact.firstName','Contact.lastName','c.email','Contact.phone','c.mobile','Contact.mobile','o.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','push','all','rows','params','rawAttributes','includeAll','include','options','create','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooTopic','email','https://api-vidaoo.xcally.com/api/v1/meetings','isNull','vidaooMetadata','metadata','ValidationError','Error\x20in\x20conversion\x20vidaooMetadata','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','customUpdate','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','Interaction\x20already\x20assigned','closed','AbandonInteraction','attachmentUpload','file','originalname','basename','filename','mimetype','Attachment','attachmentDownload','json','Unauthorized','attachId','ChatOfflineMessageId','join','root','server/files/attachments/','download','close','mailTranscript','server/files/chat/upload/','transcript-%s.txt','Messages','%s%d','agentAlias','System','customer','format','Visitor','agentIdentifier','website_alias','agent_alias','alias','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailAccount','Smtp','service','host','port','authentication','auth','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript'];(function(_0x4b8890,_0x49ab18){var _0x3bfbf1=function(_0x658cc4){while(--_0x658cc4){_0x4b8890['push'](_0x4b8890['shift']());}};_0x3bfbf1(++_0x49ab18);}(_0xd943,0x15d));var _0x3d94=function(_0x4d4c97,_0x313647){_0x4d4c97=_0x4d4c97-0x0;var _0x330095=_0xd943[_0x4d4c97];return _0x330095;};'use strict';var emlformat=require(_0x3d94('0x0'));var rimraf=require(_0x3d94('0x1'));var zipdir=require(_0x3d94('0x2'));var jsonpatch=require(_0x3d94('0x3'));var rp=require('request-promise');var moment=require(_0x3d94('0x4'));var BPromise=require(_0x3d94('0x5'));var Mustache=require(_0x3d94('0x6'));var util=require(_0x3d94('0x7'));var path=require(_0x3d94('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x3d94('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x3d94('0xa'));var jsforce=require(_0x3d94('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3d94('0xc'));var Papa=require(_0x3d94('0xd'));var Redis=require(_0x3d94('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x3d94('0xf'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x3d94('0x10'));var hardwareService=require(_0x3d94('0x11'));var logger=require('../../config/logger')(_0x3d94('0x12'));var utils=require(_0x3d94('0x13'));var config=require(_0x3d94('0x14'));var licenseUtil=require(_0x3d94('0x15'));var db=require(_0x3d94('0x16'))['db'];config['redis']=_[_0x3d94('0x17')](config[_0x3d94('0x18')],{'host':_0x3d94('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3d94('0x18')]));require(_0x3d94('0x1a'))[_0x3d94('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3d94('0x1c')][_0x3d94('0x1d')]({'port':0x232b});var client9004=jayson[_0x3d94('0x1c')][_0x3d94('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0xaf939a,_0xd8efaa,_0x31c6e8,_0x9893cb){return new BPromise(function(_0x540658,_0x22676a){var _0x1a9315=_0x9893cb||client;return _0x1a9315[_0x3d94('0x1e')](_0xaf939a,_0x31c6e8)[_0x3d94('0x1f')](function(_0x4afc92){logger[_0x3d94('0x20')](_0x3d94('0x21'),_0xd8efaa,'request\x20sent');logger[_0x3d94('0x22')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0xd8efaa,_0x3d94('0x23'),JSON[_0x3d94('0x24')](_0x4afc92));if(_0x4afc92[_0x3d94('0x25')]){if(_0x4afc92[_0x3d94('0x25')][_0x3d94('0x26')]===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0xd8efaa,_0x4afc92[_0x3d94('0x25')][_0x3d94('0x27')]);return _0x22676a(_0x4afc92[_0x3d94('0x25')]['message']);}logger[_0x3d94('0x25')](_0x3d94('0x21'),_0xd8efaa,_0x4afc92[_0x3d94('0x25')][_0x3d94('0x27')]);return _0x540658(_0x4afc92[_0x3d94('0x25')][_0x3d94('0x27')]);}else{logger[_0x3d94('0x20')](_0x3d94('0x21'),_0xd8efaa,_0x3d94('0x23'));_0x540658(_0x4afc92[_0x3d94('0x28')][_0x3d94('0x27')]);}})[_0x3d94('0x29')](function(_0x292976){logger[_0x3d94('0x25')](_0x3d94('0x21'),_0xd8efaa,_0x292976);_0x22676a(_0x292976);});});}function respondWithStatusCode(_0x5b3b31,_0x123183){_0x123183=_0x123183||0xcc;return function(_0x558fd2){if(_0x558fd2){return _0x5b3b31[_0x3d94('0x2a')](_0x123183);}return _0x5b3b31[_0x3d94('0x2b')](_0x123183)[_0x3d94('0x2c')]();};}function respondWithResult(_0x439173,_0x13254f){_0x13254f=_0x13254f||0xc8;return function(_0x82b568){if(_0x82b568){return _0x439173[_0x3d94('0x2b')](_0x13254f)['json'](_0x82b568);}};}function respondWithFilteredResult(_0x584c4a,_0x362642){return function(_0x4813e1){if(_0x4813e1){var _0x4dd410=typeof _0x362642[_0x3d94('0x2d')]==='undefined'&&typeof _0x362642[_0x3d94('0x2e')]===_0x3d94('0x2f');var _0x32403a=_0x4813e1['count'];var _0x2a07b4=_0x4dd410?0x0:_0x362642['offset'];var _0x3d4994=_0x4dd410?_0x4813e1['count']:_0x362642[_0x3d94('0x2d')]+_0x362642[_0x3d94('0x2e')];var _0x29b1ff;if(_0x3d4994>=_0x32403a){_0x3d4994=_0x32403a;_0x29b1ff=0xc8;}else{_0x29b1ff=0xce;}_0x584c4a[_0x3d94('0x2b')](_0x29b1ff);return _0x584c4a['set'](_0x3d94('0x30'),_0x2a07b4+'-'+_0x3d4994+'/'+_0x32403a)['json'](_0x4813e1);}return null;};}function patchUpdates(_0x1f9559){return function(_0xd294fd){try{jsonpatch['apply'](_0xd294fd,_0x1f9559,!![]);}catch(_0x5288da){return BPromise[_0x3d94('0x31')](_0x5288da);}return _0xd294fd[_0x3d94('0x32')]();};}function saveUpdates(_0x273337,_0x5cdb2e){return function(_0x1e6dbc){if(_0x1e6dbc){return _0x1e6dbc[_0x3d94('0x33')](_0x273337)['then'](function(_0x242500){return _0x242500;});}return null;};}function removeEntity(_0x23f3fe,_0x35947b){return function(_0xbda334){if(_0xbda334){return _0xbda334[_0x3d94('0x34')]()['then'](function(){_0x23f3fe[_0x3d94('0x2b')](0xcc)[_0x3d94('0x2c')]();});}};}function handleEntityNotFound(_0x41579e,_0x52bdb9){return function(_0xb493f1){if(!_0xb493f1){_0x41579e[_0x3d94('0x2a')](0x194);}return _0xb493f1;};}function handleError(_0x546658,_0x555ec5){_0x555ec5=_0x555ec5||0x1f4;return function(_0xfe58eb){logger[_0x3d94('0x25')](_0xfe58eb[_0x3d94('0x35')]);if(_0xfe58eb[_0x3d94('0x36')]){delete _0xfe58eb[_0x3d94('0x36')];}_0x546658[_0x3d94('0x2b')](_0x555ec5)[_0x3d94('0x37')](_0xfe58eb);};}function getMustacheRender(_0x12c01a,_0x2e7b97){return Mustache[_0x3d94('0x38')](_0x12c01a,_['merge'](_0x2e7b97[_0x3d94('0x39')],{'contact':_0x2e7b97[_0x3d94('0x3a')],'message':_0x2e7b97[_0x3d94('0x27')],'agent':_0x2e7b97[_0x3d94('0x3b')],'interaction':_0x2e7b97['interaction'],'account':_0x2e7b97[_0x3d94('0x3c')]}))||'';}function getInteractionUsers(_0x2bf3b2,_0x35e0e6){return new BPromise(function(_0x29eaa4,_0x22b7d2){try{if(_0x35e0e6[_0x2bf3b2['id']]){_0x2bf3b2['Users']=_[_0x3d94('0x3d')](_0x35e0e6[_0x2bf3b2['id']],function(_0x462ab6){return{'id':_0x462ab6['id'],'fullname':_0x462ab6[_0x3d94('0x3e')]};});}}catch(_0x485066){_0x22b7d2(_0x485066);}_0x29eaa4(_0x2bf3b2);});}function getInteractionTags(_0x4eee4d,_0x4d8a8f){return new BPromise(function(_0x47905e,_0x3b3550){try{if(_0x4eee4d[_0x3d94('0x3f')]){_0x4eee4d[_0x3d94('0x40')]=[];_0x4eee4d[_0x3d94('0x3f')][_0x3d94('0x41')](',')[_0x3d94('0x42')](function(_0x3a3898){_0x4eee4d['Tags']['push'](_0x4d8a8f[_0x3a3898]);});}delete _0x4eee4d[_0x3d94('0x3f')];}catch(_0x3ced26){_0x3b3550(_0x3ced26);}_0x47905e(_0x4eee4d);});}function updateChatInteraction(_0x512cef,_0x2d0aa2,_0x4af4b6){return new BPromise(function(_0x1361fb,_0x411b5b){return getInteractionUsers(_0x512cef,_0x4af4b6)[_0x3d94('0x1f')](function(_0xacfc44){return getInteractionTags(_0xacfc44,_0x2d0aa2);})[_0x3d94('0x1f')](function(_0x5a9263){_0x1361fb(_0x5a9263);})[_0x3d94('0x29')](function(_0x168771){_0x411b5b(_0x168771);});});}exports[_0x3d94('0x43')]=function(_0x5d5c66,_0x2910ea){var _0x555366={},_0x4bad90={},_0x3f4b32={'count':0x0,'rows':[]};var _0x402132=_[_0x3d94('0x3d')](db[_0x3d94('0x44')]['rawAttributes'],function(_0x323d58){return{'name':_0x323d58['fieldName'],'type':_0x323d58[_0x3d94('0x45')][_0x3d94('0x46')]};});_0x4bad90[_0x3d94('0x47')]=_[_0x3d94('0x3d')](_0x402132,_0x3d94('0x36'));_0x4bad90[_0x3d94('0x48')]=_[_0x3d94('0x49')](_0x5d5c66['query']);_0x4bad90[_0x3d94('0x4a')]=_[_0x3d94('0x4b')](_0x4bad90['model'],_0x4bad90['query']);_0x555366[_0x3d94('0x4c')]=_[_0x3d94('0x4b')](_0x4bad90['model'],qs[_0x3d94('0x4d')](_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x4d')]));_0x555366[_0x3d94('0x4c')]=_0x555366[_0x3d94('0x4c')][_0x3d94('0x4e')]?_0x555366[_0x3d94('0x4c')]:_0x4bad90[_0x3d94('0x47')];if(!_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x4f')](_0x3d94('0x50'))){_0x555366[_0x3d94('0x2e')]=qs[_0x3d94('0x2e')](_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x2e')]);_0x555366['offset']=qs[_0x3d94('0x2d')](_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x2d')]);}_0x555366[_0x3d94('0x51')]=qs[_0x3d94('0x52')](_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x52')]);_0x555366[_0x3d94('0x53')]=qs[_0x3d94('0x4a')](_['pick'](_0x5d5c66[_0x3d94('0x48')],_0x4bad90['filters']),_0x402132);var _0x174eb3=[];var _0x3a7eb0=squel['select']()[_0x3d94('0x54')]('id')['field']('name')[_0x3d94('0x54')]('color')[_0x3d94('0x55')](_0x3d94('0x56'));var _0x5b6061=squel[_0x3d94('0x57')]()['field']('u.id')[_0x3d94('0x54')](_0x3d94('0x58'))[_0x3d94('0x54')](_0x3d94('0x59'))[_0x3d94('0x55')](_0x3d94('0x5a'),'ui')[_0x3d94('0x5b')](_0x3d94('0x5c'),'u',_0x3d94('0x5d'));var _0x584e1d=squel[_0x3d94('0x57')]()[_0x3d94('0x55')](_0x3d94('0x5e'),'i')[_0x3d94('0x5b')](_0x3d94('0x5f'),'c',_0x3d94('0x60'))[_0x3d94('0x5b')](_0x3d94('0x5c'),'o',_0x3d94('0x61'))[_0x3d94('0x5b')](_0x3d94('0x62'),'a','a.id\x20=\x20i.ChatWebsiteId')[_0x3d94('0x5b')]('chat_messages','me',_0x3d94('0x63'))[_0x3d94('0x5b')](_0x3d94('0x64'),'it',_0x3d94('0x65'))[_0x3d94('0x5b')](_0x3d94('0x56'),'t',_0x3d94('0x66'));var _0x169aa1=squel[_0x3d94('0x67')]();var _0x5da38c=[];var _0x519ada=squel[_0x3d94('0x67')]();var _0x4bd97c;if(_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x68')]){_0x4bd97c=as['parseSearch'](_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x68')]);var _0x3cb8f4=_0x4bd97c[_0x3d94('0x69')];for(var _0xcefff5=0x0;_0xcefff5<_0x4bd97c[_0x3d94('0x6a')][_0x3d94('0x4e')];_0xcefff5++){var _0x4b023e=_0x4bd97c[_0x3d94('0x6a')][_0xcefff5];var _0x351ea6='i';var _0x368581=_['find'](_0x402132,[_0x3d94('0x36'),_0x4b023e[_0x3d94('0x54')]]);if(!_0x368581){switch(_0x4b023e[_0x3d94('0x54')]){case _0x3d94('0x6b'):if(_0x4b023e['value']==0x1){_0x584e1d['having']('`'+_0x4b023e[_0x3d94('0x54')]+_0x3d94('0x6c'));}else{_0x584e1d[_0x3d94('0x6d')]('`'+_0x4b023e[_0x3d94('0x54')]+'`\x20>\x200');}break;case _0x3d94('0x6e'):if(_0x4b023e[_0x3d94('0x6f')]==='$substring'){if(_0x4b023e[_0x3d94('0x70')][_0x3d94('0x41')]('\x20')[_0x3d94('0x4e')]>0x1){_0x169aa1[_0x3cb8f4]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x3d94('0x71')](_0x4b023e[_0x3d94('0x70')]),null);}else{var _0x585531='%'+_0x4b023e['value']+'%';_0x169aa1[_0x3cb8f4](_0x3d94('0x72'),_0x585531,_0x585531,_0x585531);}}else{_0x368581=_[_0x3d94('0x73')](_0x402132,['name','ContactId']);_0x4b023e['field']=_0x3d94('0x74');_0x55084e=as[_0x3d94('0x75')](_0x351ea6,_0x368581[_0x3d94('0x45')],_0x4b023e);_0x169aa1[_0x3cb8f4](_0x55084e[_0x3d94('0x76')],_0x55084e[_0x3d94('0x70')]['start'],_0x55084e[_0x3d94('0x70')][_0x3d94('0x2c')]);}break;case _0x3d94('0x77'):var _0x1e8e3d=_0x4b023e[_0x3d94('0x70')][_0x3d94('0x41')](',')['map'](function(_0x30673a){return Number(_0x30673a);});_0x1e8e3d['forEach'](function(_0x1f3551){_0x519ada['or'](_0x3d94('0x78'),'%,'+_0x1f3551+',%');});_0x5da38c=_[_0x3d94('0x79')](_0x5da38c,_0x1e8e3d);break;case _0x3d94('0x7a'):if(_0x4b023e[_0x3d94('0x6f')]===_0x3d94('0x7b')){_0x169aa1[_0x3cb8f4]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x4b023e['value']+'%',null);}else{_0x368581=_[_0x3d94('0x73')](_0x402132,['name','UserId']);_0x4b023e['field']=_0x3d94('0x7c');_0x55084e=as[_0x3d94('0x75')](_0x351ea6,_0x368581[_0x3d94('0x45')],_0x4b023e);_0x169aa1[_0x3cb8f4](_0x55084e[_0x3d94('0x76')],_0x55084e[_0x3d94('0x70')][_0x3d94('0x7d')],_0x55084e[_0x3d94('0x70')][_0x3d94('0x2c')]);}break;case'body':_0x55084e=as[_0x3d94('0x75')]('me',null,_0x4b023e);_0x169aa1[_0x3cb8f4](_0x55084e['text'],_0x55084e[_0x3d94('0x70')][_0x3d94('0x7d')],_0x55084e[_0x3d94('0x70')]['end']);break;}}else{var _0x55084e=as['buildExpression'](_0x351ea6,_0x368581[_0x3d94('0x45')],_0x4b023e);_0x169aa1[_0x3cb8f4](_0x55084e[_0x3d94('0x76')],_0x55084e[_0x3d94('0x70')][_0x3d94('0x7d')],_0x55084e[_0x3d94('0x70')]['end']);}}}else{var _0x5b7316=_(_0x5d5c66[_0x3d94('0x48')])[_0x3d94('0x49')]()[_0x3d94('0x3d')](function(_0x57a4df){return _[_0x3d94('0x7e')](_0x402132,['name',_0x57a4df])?_0x57a4df:undefined;})[_0x3d94('0x7f')]()[_0x3d94('0x70')]();if(!_[_0x3d94('0x80')](_0x5b7316)){_0x5b7316[_0x3d94('0x42')](function(_0x3b42c8){if(_0x3b42c8===_0x3d94('0x81')){_0x584e1d[_0x3d94('0x53')](_0x3d94('0x82'),[][_0x3d94('0x83')](_0x5d5c66[_0x3d94('0x48')][_0x3b42c8]));}else if(_0x3b42c8===_0x3d94('0x84')){var _0xe6cfd1=JSON[_0x3d94('0x85')](_0x5d5c66['query'][_0x3b42c8])[_0x3d94('0x86')];var _0x2819e2=JSON[_0x3d94('0x85')](_0x5d5c66[_0x3d94('0x48')][_0x3b42c8])['$lte'];_0x584e1d[_0x3d94('0x53')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0xe6cfd1,_0x2819e2);}else{if(_0x5d5c66['query'][_0x3b42c8]===_0x3d94('0x87')){_0x584e1d['where']('i.'+_0x3b42c8+_0x3d94('0x88'));}else{_0x584e1d[_0x3d94('0x53')]('i.'+_0x3b42c8+'\x20=\x20?',_0x5d5c66[_0x3d94('0x48')][_0x3b42c8]);}}});}if(_0x5d5c66['query'][_0x3d94('0x89')]){if(_0x5d5c66[_0x3d94('0x48')]['read']==0x1){_0x584e1d['having']('`unreadMessages`\x20=\x200');}else{_0x584e1d[_0x3d94('0x6d')]('`unreadMessages`\x20>\x200');}}if(_0x5d5c66['query'][_0x3d94('0x8a')]){_0x5da38c=_[_0x3d94('0x8b')](_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x8a')])?_0x5d5c66['query'][_0x3d94('0x8a')]:new Array(_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x8a')]);_0x5da38c[_0x3d94('0x42')](function(_0x38b411){_0x519ada['or'](_0x3d94('0x78'),'%,'+_0x38b411+',%');});}if(_0x5d5c66['query'][_0x3d94('0x8c')]){var _0x6cfc19=_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x8c')][_0x3d94('0x8d')]('\x5c','\x5c\x5c')[_0x3d94('0x8d')](/'/g,'\x27\x27');if(qs[_0x3d94('0x8e')](_0x6cfc19)){_0x169aa1['or'](_0x3d94('0x8f'),_0x6cfc19+'%');}else{_0x169aa1['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x6cfc19))['or'](_0x3d94('0x90'),_0x6cfc19+'%');}}}_0x584e1d[_0x3d94('0x53')](_0x169aa1);_0x584e1d[_0x3d94('0x91')]('i.id');var _0x43a00e={'type':db[_0x3d94('0x92')][_0x3d94('0x93')][_0x3d94('0x94')],'raw':!![]};var _0x860ee5=_0x584e1d['clone']();_0x860ee5['field'](_0x3d94('0x95'));_0x860ee5[_0x3d94('0x54')](_0x3d94('0x96'),_0x3d94('0x6b'));if(_0x555366[_0x3d94('0x51')]){_0x555366[_0x3d94('0x51')][_0x3d94('0x42')](function(_0x3bcc86){var _0x462e88=_0x3bcc86[0x0]===_0x3d94('0x97')?_0x3bcc86[0x0]:'i.'+_0x3bcc86[0x0];_0x584e1d[_0x3d94('0x51')](_0x462e88,_0x3bcc86[0x1]===_0x3d94('0x98')?![]:!![]);});}if(!_[_0x3d94('0x80')](_0x5da38c)){_0x584e1d['having'](_0x519ada);_0x860ee5[_0x3d94('0x53')](_0x3d94('0x99'),_0x5da38c);}BPromise['resolve']()['then'](function(){if(!_0x4bd97c){if(_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x81')])return;_0x860ee5[_0x3d94('0x53')](_0x3d94('0x9a'));_0x584e1d['where']('i.ChatWebsiteId\x20IS\x20NOT\x20NULL');return;}if(_0x5d5c66[_0x3d94('0x9b')][_0x3d94('0x9c')]!==_0x3d94('0x3b'))return;return _0x5d5c66[_0x3d94('0x9b')][_0x3d94('0x9d')]({'attributes':['id'],'raw':!![]})['then'](function(_0x38975f){if(_['isEmpty'](_0x38975f)){_0x860ee5[_0x3d94('0x53')](_0x3d94('0x9e'));_0x584e1d[_0x3d94('0x53')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x860ee5[_0x3d94('0x53')](_0x3d94('0x82'),_['map'](_0x38975f,'id'));_0x584e1d[_0x3d94('0x53')]('i.ChatWebsiteId\x20IN\x20?',_[_0x3d94('0x3d')](_0x38975f,'id'));}});})[_0x3d94('0x1f')](function(){if(_0x5d5c66[_0x3d94('0x9b')]['role']===_0x3d94('0x3b')&&!_0x4bd97c&&!_0x5d5c66[_0x3d94('0x48')][_0x3d94('0x81')])return[];return db['sequelize'][_0x3d94('0x48')](_0x860ee5[_0x3d94('0x9f')](),_0x43a00e);})[_0x3d94('0x1f')](function(_0x1f0f6f){_0x3f4b32[_0x3d94('0xa0')]=_0x1f0f6f[_0x3d94('0x4e')];if(_0x3f4b32[_0x3d94('0xa0')]===0x0)return[];return db[_0x3d94('0xa1')]['query'](_0x3a7eb0[_0x3d94('0x9f')](),_0x43a00e)[_0x3d94('0x1f')](function(_0x227d15){_0x174eb3=_[_0x3d94('0xa2')](_0x227d15,'id');_0x43a00e=_[_0x3d94('0xa3')](_0x43a00e,{'model':db[_0x3d94('0x44')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5d5c66['query'][_0x3d94('0x4d')]){_0x555366[_0x3d94('0x4c')][_0x3d94('0x42')](function(_0x59b62b){_0x584e1d[_0x3d94('0x54')]('i.'+_0x59b62b);});}else{_0x584e1d['field'](_0x3d94('0x96'),_0x3d94('0x6b'));_0x584e1d['field'](_0x3d94('0xa4'),_0x3d94('0xa5'));_0x584e1d['field']('a.mandatoryDisposition',_0x3d94('0xa6'));_0x584e1d[_0x3d94('0x54')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName');_0x584e1d['field'](_0x3d94('0xa7'));_0x584e1d[_0x3d94('0x54')](_0x3d94('0xa8'),_0x3d94('0xa9'));_0x584e1d[_0x3d94('0x54')]('c.lastName',_0x3d94('0xaa'));_0x584e1d[_0x3d94('0x54')](_0x3d94('0xab'),'Contact.email');_0x584e1d[_0x3d94('0x54')]('c.phone',_0x3d94('0xac'));_0x584e1d[_0x3d94('0x54')](_0x3d94('0xad'),_0x3d94('0xae'));_0x584e1d[_0x3d94('0x54')]('c.fax','Contact.fax');_0x584e1d[_0x3d94('0x54')](_0x3d94('0xaf'),'Owner.fullname');_0x584e1d[_0x3d94('0x54')]('o.internal',_0x3d94('0xb0'));_0x584e1d[_0x3d94('0x54')](_0x3d94('0xb1'),'TagIds');}if(_0x555366[_0x3d94('0x2e')])_0x584e1d['limit'](_0x555366[_0x3d94('0x2e')]);if(_0x555366[_0x3d94('0x2d')])_0x584e1d[_0x3d94('0x2d')](_0x555366[_0x3d94('0x2d')]);return db['sequelize']['query'](_0x584e1d[_0x3d94('0x9f')](),_0x43a00e);})[_0x3d94('0x1f')](function(_0x1c2092){if(_0x1c2092[_0x3d94('0x4e')]>0x0)_0x5b6061['where'](_0x3d94('0xb2'),_['map'](_0x1c2092,'id'));return db['sequelize']['query'](_0x5b6061[_0x3d94('0x9f')](),_0x43a00e)[_0x3d94('0x1f')](function(_0x3706ea){var _0xcd36ab=_[_0x3d94('0xb3')](_0x3706ea,_0x3d94('0xb4'));var _0x33af12=[];_0x1c2092[_0x3d94('0x42')](function(_0x2e2f9f){_0x33af12[_0x3d94('0xb5')](updateChatInteraction(_0x2e2f9f,_0x174eb3,_0xcd36ab));});return BPromise[_0x3d94('0xb6')](_0x33af12);});});})[_0x3d94('0x1f')](function(_0x42c91f){_0x3f4b32[_0x3d94('0xb7')]=_0x42c91f;return _0x3f4b32;})[_0x3d94('0x1f')](respondWithFilteredResult(_0x2910ea,_0x555366))['catch'](handleError(_0x2910ea,null));};exports['show']=function(_0x14ec29,_0x3ff668){var _0x1837c9={'raw':![],'where':{'id':_0x14ec29[_0x3d94('0xb8')]['id']}},_0x41251d={};_0x41251d[_0x3d94('0x47')]=_[_0x3d94('0x49')](db['ChatInteraction'][_0x3d94('0xb9')]);_0x41251d[_0x3d94('0x48')]=_[_0x3d94('0x49')](_0x14ec29[_0x3d94('0x48')]);_0x41251d[_0x3d94('0x4a')]=_[_0x3d94('0x4b')](_0x41251d['model'],_0x41251d['query']);_0x1837c9[_0x3d94('0x4c')]=_['intersection'](_0x41251d[_0x3d94('0x47')],qs[_0x3d94('0x4d')](_0x14ec29[_0x3d94('0x48')][_0x3d94('0x4d')]));_0x1837c9[_0x3d94('0x4c')]=_0x1837c9[_0x3d94('0x4c')][_0x3d94('0x4e')]?_0x1837c9[_0x3d94('0x4c')]:_0x41251d['model'];if(_0x14ec29[_0x3d94('0x48')][_0x3d94('0xba')]){_0x1837c9[_0x3d94('0xbb')]=[{'all':!![]}];}_0x1837c9=_[_0x3d94('0xa3')]({},_0x1837c9,_0x14ec29[_0x3d94('0xbc')]);return db[_0x3d94('0x44')][_0x3d94('0x73')](_0x1837c9)[_0x3d94('0x1f')](handleEntityNotFound(_0x3ff668,null))[_0x3d94('0x1f')](respondWithResult(_0x3ff668,null))[_0x3d94('0x29')](handleError(_0x3ff668,null));};exports[_0x3d94('0xbd')]=function(_0x26c8ef,_0x17b789){return db[_0x3d94('0x44')][_0x3d94('0xbd')](_0x26c8ef[_0x3d94('0x39')],{})[_0x3d94('0x1f')](respondWithResult(_0x17b789,0xc9))[_0x3d94('0x29')](handleError(_0x17b789,null));};exports[_0x3d94('0x33')]=function(_0xe5f109,_0xb55889){if(_0xe5f109['body']['id']){delete _0xe5f109[_0x3d94('0x39')]['id'];}return db[_0x3d94('0x44')][_0x3d94('0x73')]({'where':{'id':_0xe5f109[_0x3d94('0xb8')]['id']}})[_0x3d94('0x1f')](handleEntityNotFound(_0xb55889,null))[_0x3d94('0x1f')](saveUpdates(_0xe5f109['body'],null))[_0x3d94('0x1f')](respondWithResult(_0xb55889,null))[_0x3d94('0x29')](handleError(_0xb55889,null));};exports[_0x3d94('0x34')]=function(_0x3242ea,_0x17a478){return db[_0x3d94('0x44')]['find']({'where':{'id':_0x3242ea[_0x3d94('0xb8')]['id']}})[_0x3d94('0x1f')](handleEntityNotFound(_0x17a478,null))['then'](removeEntity(_0x17a478,null))['catch'](handleError(_0x17a478,null));};exports['describe']=function(_0x3e1139,_0x77b79d){return db[_0x3d94('0x44')][_0x3d94('0xbe')]()[_0x3d94('0x1f')](respondWithResult(_0x77b79d,null))['catch'](handleError(_0x77b79d,null));};exports[_0x3d94('0xbf')]=function(_0x36499a,_0xd8488f){var _0x669d83=_0x36499a[_0x3d94('0xb8')]['id'];var _0x2c004f;var _0x5d10af;var _0x167d4c;return db['ChatInteraction'][_0x3d94('0xc0')]({'where':{'id':_0x669d83}})[_0x3d94('0x1f')](function(_0x34e156){_0x2c004f=_0x34e156;return db[_0x3d94('0xc1')]['findOne']({'where':{'id':_0x34e156[_0x3d94('0x81')]},'attributes':['id',_0x3d94('0xc2'),_0x3d94('0xc3'),_0x3d94('0xc4'),'vidaooNote','vidaooMetadata'],'raw':!![]});})[_0x3d94('0x1f')](function(_0x24d10c){if(_0x24d10c&&_0x24d10c[_0x3d94('0xc2')]&&_0x24d10c['vidaooEscalation']){_0x5d10af=_0x24d10c;var _0x2fac35={'interaction':{'id':_0x669d83},'agent':{'id':_0x36499a['user']['id'],'name':_0x36499a['user'][_0x3d94('0x36')],'fullname':_0x36499a[_0x3d94('0x9b')]['fullname'],'email':_0x36499a[_0x3d94('0x9b')][_0x3d94('0xc5')]},'contact':_0x36499a[_0x3d94('0x39')]['contact'],'account':_0x36499a[_0x3d94('0x39')][_0x3d94('0x3c')]};var _0x579998={'rejectUnauthorized':![],'method':'POST','url':_0x3d94('0xc6'),'headers':{'X-APIKEY':_0x24d10c[_0x3d94('0xc2')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x36499a[_0x3d94('0x9b')][_0x3d94('0xc5')]],'buttons':null,'topic':_0x5d10af[_0x3d94('0xc4')],'note':_[_0x3d94('0xc7')](_0x5d10af['vidaooNote'])?null:getMustacheRender(_0x5d10af['vidaooNote'],_0x2fac35),'metadata':null},'redirect':'follow','json':!![]};try{if(!_['isNull'](_0x5d10af[_0x3d94('0xc8')])){var _0x3950d1=getMustacheRender(_0x5d10af[_0x3d94('0xc8')],_0x2fac35);var _0x1073d3=JSON[_0x3d94('0x85')](_0x3950d1);_0x579998[_0x3d94('0x39')][_0x3d94('0xc9')]=_0x1073d3;}}catch(_0x23c9d4){throw new db[(_0x3d94('0x92'))][(_0x3d94('0xca'))](_0x3d94('0xcb'));}return rp(_0x579998);}else{throw new db['Sequelize'][(_0x3d94('0xca'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0x3d94('0x1f')](function(_0x149fab){_0x167d4c=_0x149fab;if(_0x167d4c['id']){var _0x15cda1={'body':_0x167d4c[_0x3d94('0xcc')],'ChatWebsiteId':_0x5d10af['id'],'ChatInteractionId':_0x2c004f['id'],'direction':_0x3d94('0xcd'),'UserId':_0x36499a[_0x3d94('0x9b')]['id']};return db[_0x3d94('0xce')][_0x3d94('0xbd')](_0x15cda1,{});}else{throw new db['Sequelize'][(_0x3d94('0xca'))](_0x3d94('0xcf'));}})[_0x3d94('0x1f')](function(){return _0x2c004f[_0x3d94('0xd0')]({'vidaooSessionId':_0x167d4c['id']});})[_0x3d94('0x1f')](respondWithResult(_0xd8488f,null))[_0x3d94('0x29')](handleError(_0xd8488f,null));};exports[_0x3d94('0xd1')]=function(_0x1b7ad4,_0x483e7a){if(_0x1b7ad4[_0x3d94('0x39')]['id']){delete _0x1b7ad4[_0x3d94('0x39')]['id'];}return db[_0x3d94('0x44')][_0x3d94('0x73')]({'where':{'id':_0x1b7ad4[_0x3d94('0xb8')]['id']},'include':[{'model':db[_0x3d94('0xd2')],'as':_0x3d94('0x6e')}]})[_0x3d94('0x1f')](handleEntityNotFound(_0x483e7a,null))['then'](saveUpdates(_0x1b7ad4[_0x3d94('0x39')],null))[_0x3d94('0x1f')](respondWithResult(_0x483e7a,null))['catch'](handleError(_0x483e7a,null));};exports[_0x3d94('0xd3')]=function(_0x11378e,_0x24e1c8,_0xaedee0){if(_0x11378e[_0x3d94('0x39')]['id']){delete _0x11378e[_0x3d94('0x39')]['id'];}return db[_0x3d94('0x44')][_0x3d94('0x73')]({'where':{'id':_0x11378e[_0x3d94('0xb8')]['id']}})[_0x3d94('0x1f')](function(_0xf982a2){if(!_0xf982a2){logger[_0x3d94('0x25')](_0x3d94('0xd4'),_0x3d94('0xd3'),0x194,_0x3d94('0xd5'));_0x24e1c8[_0x3d94('0x2a')](0x194);}else{if(_0xf982a2[_0x3d94('0x7c')]){throw new db[(_0x3d94('0x92'))][(_0x3d94('0xca'))](_0x3d94('0xd6'));}}return _0xf982a2;})[_0x3d94('0x1f')](function(_0x4353ca){if(_0x4353ca){return _0x4353ca[_0x3d94('0x33')]({'closed':_0x11378e[_0x3d94('0x39')][_0x3d94('0xd7')],'disposition':_0x11378e['body']['disposition']})[_0x3d94('0x1f')](function(_0x54f366){return _0x54f366;});}})['then'](function(_0x199fa0){return respondWithRpcPromise(_0x3d94('0xd8'),_0x3d94('0xd3'),_0x11378e[_0x3d94('0x39')],client9004);})[_0x3d94('0x1f')](respondWithResult(_0x24e1c8,null))['catch'](handleError(_0x24e1c8,null));};exports[_0x3d94('0xd9')]=function(_0x5c0138,_0x41fd2c,_0x3b5b04){_0x5c0138[_0x3d94('0x39')][_0x3d94('0x36')]=_0x5c0138[_0x3d94('0xda')][_0x3d94('0xdb')];_0x5c0138[_0x3d94('0x39')][_0x3d94('0xdc')]=_0x5c0138[_0x3d94('0xda')][_0x3d94('0xdd')];_0x5c0138[_0x3d94('0x39')][_0x3d94('0x45')]=_0x5c0138[_0x3d94('0xda')][_0x3d94('0xde')];return db[_0x3d94('0xdf')]['create'](_0x5c0138['body'])['then'](respondWithResult(_0x41fd2c,0xc9))[_0x3d94('0x29')](handleError(_0x41fd2c,null));};exports[_0x3d94('0xe0')]=function(_0x59118c,_0x2105c2,_0x380071){return db['ChatInteraction'][_0x3d94('0xc0')]({'where':{'id':_0x59118c[_0x3d94('0xb8')]['id']},'raw':!![]})[_0x3d94('0x1f')](handleEntityNotFound(_0x2105c2,null))[_0x3d94('0x1f')](function(_0x3d96c5){if(_0x3d96c5){if(_0x3d96c5['closed']){return _0x2105c2[_0x3d94('0x2b')](0x193)[_0x3d94('0xe1')]({'status':0x193,'message':_0x3d94('0xe2')});}return db[_0x3d94('0xdf')][_0x3d94('0xc0')]({'where':{'id':_0x59118c[_0x3d94('0x48')][_0x3d94('0xe3')]},'raw':!![]})[_0x3d94('0x1f')](handleEntityNotFound(_0x2105c2,null));}})[_0x3d94('0x1f')](function(_0x4d54e7){if(_0x4d54e7){var _0x26bf00=_0x4d54e7[_0x3d94('0xe4')]!==null;var _0x23bf47=path[_0x3d94('0xe5')](config[_0x3d94('0xe6')],_0x3d94('0xe7'));if(_0x26bf00){_0x23bf47=path['join'](_0x23bf47,'offline-chat/');}var _0x336a7d=path[_0x3d94('0xe5')](_0x23bf47,_0x4d54e7['basename']);return _0x2105c2[_0x3d94('0xe8')](_0x336a7d);}})[_0x3d94('0x29')](handleError(_0x2105c2,null));};exports[_0x3d94('0xe9')]=function(_0x37680e,_0x397e85){var _0x5c192c=null;var _0x180595=null;var _0x4a7185=null;var _0x3b0395=null;if(_0x37680e['body']['id']){delete _0x37680e['body']['id'];}if(_0x37680e[_0x3d94('0x39')][_0x3d94('0xea')]){_0x3b0395=path[_0x3d94('0xe5')](config[_0x3d94('0xe6')],_0x3d94('0xeb'),util['format'](_0x3d94('0xec'),Date['now']()));_0x37680e['body']['pathTranscript']=_0x3b0395;}return db[_0x3d94('0x44')]['find']({'where':{'id':_0x37680e[_0x3d94('0xb8')]['id']},'include':[{'model':db[_0x3d94('0xce')],'as':_0x3d94('0xed'),'include':[{'model':db[_0x3d94('0x7a')],'as':_0x3d94('0x7a')}]}]})['then'](handleEntityNotFound(_0x397e85,null))[_0x3d94('0x1f')](saveUpdates(_0x37680e[_0x3d94('0x39')],null))[_0x3d94('0x1f')](function(_0x283758){if(_0x283758){_0x5c192c=_0x283758;return db[_0x3d94('0xc1')][_0x3d94('0x73')]({'where':{'id':_0x5c192c['ChatWebsiteId']}});}})[_0x3d94('0x1f')](function(_0x593683){if(_0x593683){_0x4a7185=_0x593683;return db['CmContact'][_0x3d94('0x73')]({'where':{'id':_0x5c192c['ContactId']}});}})[_0x3d94('0x1f')](function(_0xc61003){if(_0xc61003){_0x180595=_0xc61003;if(_0x3b0395){var _0x40b159=null;for(var _0x5262af=0x1;_0x5262af<_0x5c192c['Messages'][_0x3d94('0x4e')];++_0x5262af){_0x40b159=_0x5c192c['Messages'][_0x5262af];var _0x289577=_0x40b159[_0x3d94('0x7c')]?util['format'](_0x3d94('0xee'),_0x4a7185[_0x3d94('0xef')],_0x40b159[_0x3d94('0x7c')]):_0x3d94('0xf0');var _0x4282b3=_0x37680e[_0x3d94('0x39')][_0x3d94('0xf1')]||util[_0x3d94('0xf2')](_0x3d94('0xee'),_0x3d94('0xf3'),_0x40b159[_0x3d94('0x74')]);switch(_0x4a7185[_0x3d94('0xf4')]){case _0x3d94('0xf5'):_0x289577=_0x40b159[_0x3d94('0x7c')]?util[_0x3d94('0xf2')](_0x3d94('0xee'),_0x4a7185[_0x3d94('0xef')],_0x40b159['UserId']):_0x3d94('0xf0');break;case _0x3d94('0xf6'):_0x289577=_0x40b159[_0x3d94('0x7c')]?_0x40b159[_0x3d94('0x7a')][_0x3d94('0xf7')]||_0x40b159[_0x3d94('0x7a')][_0x3d94('0x3e')]:'System';break;case'agent_fullname':_0x289577=_0x40b159['UserId']?_0x40b159[_0x3d94('0x7a')][_0x3d94('0x3e')]:'System';break;default:_0x289577=_0x40b159['UserId']?util[_0x3d94('0xf2')](_0x3d94('0xee'),_0x4a7185[_0x3d94('0xef')],_0x40b159[_0x3d94('0x7c')]):'System';}var _0x5ac9db=util['format'](_0x3d94('0xf8'),moment(_0x40b159['createdAt'])['format'](_0x3d94('0xf9')),_0x40b159[_0x3d94('0xfa')]==='in'?_0x4282b3:_0x289577,_0x40b159[_0x3d94('0x39')]);if(!_0x40b159[_0x3d94('0xfb')]){fs[_0x3d94('0xfc')](_0x3b0395,_0x5ac9db);}}return db[_0x3d94('0xfd')][_0x3d94('0xc0')]({'where':{'service':!![]},'include':[{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]});}}})[_0x3d94('0x1f')](function(_0x29a79a){if(_0x29a79a&&_0x29a79a[_0x3d94('0xfe')]&&_0x37680e[_0x3d94('0x39')]){var _0x1be31a={'tls':{'rejectUnauthorized':![]}};if(_0x29a79a[_0x3d94('0xfe')][_0x3d94('0xff')]){_0x1be31a['service']=_0x29a79a[_0x3d94('0xfe')]['service'];}else{_0x1be31a['host']=_0x29a79a['Smtp'][_0x3d94('0x100')];_0x1be31a[_0x3d94('0x101')]=_0x29a79a[_0x3d94('0xfe')][_0x3d94('0x101')];_0x1be31a['secure']=_0x29a79a[_0x3d94('0xfe')]['secure'];}if(_0x29a79a[_0x3d94('0xfe')][_0x3d94('0x102')]){_0x1be31a[_0x3d94('0x103')]={'user':_0x29a79a['Smtp'][_0x3d94('0x9b')],'pass':_0x29a79a[_0x3d94('0xfe')]['pass']};}return respondWithRpcPromise('SendMail',_0x3d94('0x104'),{'account':_0x1be31a,'message':{'from':util[_0x3d94('0xf2')](_0x3d94('0x105'),_0x29a79a[_0x3d94('0x36')],_0x29a79a['email']||_0x29a79a['Smtp']['user']),'to':_0x37680e[_0x3d94('0x39')][_0x3d94('0xea')],'subject':_0x3d94('0x106'),'text':util[_0x3d94('0xf2')](_0x3d94('0x107'),_0x37680e[_0x3d94('0x39')][_0x3d94('0xea')]),'attachments':[{'path':_0x3b0395}]}})['then'](function(){return _0x5c192c;})['catch'](function(_0xcd4f10){console[_0x3d94('0x25')](_0xcd4f10);});}else{return _0x5c192c;}})[_0x3d94('0x1f')](respondWithStatusCode(_0x397e85,0xc8))[_0x3d94('0x29')](handleError(_0x397e85,null));};exports[_0x3d94('0x108')]=function(_0x4d9b7a,_0x4514fa,_0x29fd6b){return db[_0x3d94('0xce')][_0x3d94('0x73')]({'where':{'id':_0x4d9b7a[_0x3d94('0xb8')]['id']}})[_0x3d94('0x1f')](handleEntityNotFound(_0x4514fa,null))['then'](function(_0xaa7525){if(_0xaa7525){return _0xaa7525[_0x3d94('0x108')](_0x4d9b7a['body'][_0x3d94('0x109')],_[_0x3d94('0x10a')](_0x4d9b7a['body'],[_0x3d94('0x109'),'id'])||{});}})['then'](respondWithResult(_0x4514fa,null))[_0x3d94('0x29')](handleError(_0x4514fa,null));};exports[_0x3d94('0x10b')]=function(_0xabb45a,_0x381b5a,_0x5e935e){var _0x317583={'raw':![],'where':{}};var _0x4733ad={};var _0x5e7388={'count':0x0,'rows':[]};return db['ChatInteraction']['findOne']({'where':{'id':_0xabb45a[_0x3d94('0xb8')]['id']}})[_0x3d94('0x1f')](handleEntityNotFound(_0x381b5a,null))[_0x3d94('0x1f')](function(_0x5e3823){if(_0x5e3823){_0x4733ad[_0x3d94('0x47')]=_[_0x3d94('0x49')](db['ChatMessage'][_0x3d94('0xb9')]);_0x4733ad[_0x3d94('0x48')]=_[_0x3d94('0x49')](_0xabb45a[_0x3d94('0x48')]);_0x4733ad[_0x3d94('0x4a')]=_[_0x3d94('0x4b')](_0x4733ad[_0x3d94('0x47')],_0x4733ad[_0x3d94('0x48')]);_0x317583[_0x3d94('0x4c')]=_[_0x3d94('0x4b')](_0x4733ad[_0x3d94('0x47')],qs[_0x3d94('0x4d')](_0xabb45a[_0x3d94('0x48')][_0x3d94('0x4d')]));_0x317583[_0x3d94('0x4c')]=_0x317583[_0x3d94('0x4c')][_0x3d94('0x4e')]?_0x317583['attributes']:_0x4733ad['model'];if(!_0xabb45a[_0x3d94('0x48')][_0x3d94('0x4f')](_0x3d94('0x50'))){_0x317583['limit']=qs['limit'](_0xabb45a[_0x3d94('0x48')][_0x3d94('0x2e')]);_0x317583[_0x3d94('0x2d')]=qs['offset'](_0xabb45a[_0x3d94('0x48')][_0x3d94('0x2d')]);}_0x317583[_0x3d94('0x51')]=qs[_0x3d94('0x52')](_0xabb45a['query'][_0x3d94('0x52')]);_0x317583[_0x3d94('0x53')]=qs[_0x3d94('0x4a')](_[_0x3d94('0x10c')](_0xabb45a[_0x3d94('0x48')],_0x4733ad[_0x3d94('0x4a')]));_0x317583['where'][_0x3d94('0xb4')]=_0x5e3823['id'];if(_0xabb45a[_0x3d94('0x48')][_0x3d94('0x8c')]){_0x317583['where']=_[_0x3d94('0xa3')](_0x317583[_0x3d94('0x53')],{'$or':_[_0x3d94('0x3d')](_0x317583[_0x3d94('0x4c')],function(_0x4bd3fd){var _0x4279a6={};_0x4279a6[_0x4bd3fd]={'$like':'%'+_0xabb45a[_0x3d94('0x48')]['filter']+'%'};return _0x4279a6;})});}if(_0xabb45a[_0x3d94('0x48')][_0x3d94('0x86')]){var _0x32f992=_0xabb45a['query'][_0x3d94('0x86')]['split'](',');var _0x4ae7d9={};_0x4ae7d9[_0x32f992[0x0]]={'$gte':moment(_0x32f992[0x1])[_0x3d94('0xf2')](_0x3d94('0x10d'))};_0x317583['where']=_['merge'](_0x317583[_0x3d94('0x53')],_0x4ae7d9);}_0x317583=_['merge']({},_0x317583,_0xabb45a[_0x3d94('0xbc')]);return db[_0x3d94('0xce')][_0x3d94('0xa0')]({'where':_0x317583[_0x3d94('0x53')]})[_0x3d94('0x1f')](function(_0x249f16){_0x5e7388[_0x3d94('0xa0')]=_0x249f16;if(_0xabb45a[_0x3d94('0x48')][_0x3d94('0xba')]){_0x317583['include']=[{'all':!![]}];}return db[_0x3d94('0xce')][_0x3d94('0x10e')](_0x317583);})['then'](function(_0x3e6878){_0x5e7388['rows']=_0x3e6878;return _0x5e7388;});}})[_0x3d94('0x1f')](respondWithFilteredResult(_0x381b5a,_0x317583))[_0x3d94('0x29')](handleError(_0x381b5a,null));};exports['getMyMessages']=function(_0x1e3d22,_0x562c3f,_0x5ebe77){var _0xf8f4e7={'where':{}},_0x3fd9a9={},_0x1606b6={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x3d94('0xc0')]({'where':{'id':_0x1e3d22[_0x3d94('0xb8')]['id']}})[_0x3d94('0x1f')](handleEntityNotFound(_0x562c3f,null))[_0x3d94('0x1f')](function(_0x4c76f3){if(_0x4c76f3){_0x3fd9a9[_0x3d94('0x47')]=_[_0x3d94('0x49')](db[_0x3d94('0xce')][_0x3d94('0xb9')]);_0x3fd9a9[_0x3d94('0x48')]=_['keys'](_0x1e3d22['query']);_0x3fd9a9['filters']=_[_0x3d94('0x4b')](_0x3fd9a9[_0x3d94('0x47')],_0x3fd9a9[_0x3d94('0x48')]);_0xf8f4e7['attributes']=_[_0x3d94('0x4b')](_0x3fd9a9[_0x3d94('0x47')],qs['fields'](_0x1e3d22[_0x3d94('0x48')][_0x3d94('0x4d')]));_0xf8f4e7[_0x3d94('0x4c')]=_0xf8f4e7[_0x3d94('0x4c')][_0x3d94('0x4e')]?_0xf8f4e7[_0x3d94('0x4c')]:_0x3fd9a9['model'];if(!_0x1e3d22['query'][_0x3d94('0x4f')](_0x3d94('0x50'))){_0xf8f4e7['limit']=qs[_0x3d94('0x2e')](_0x1e3d22[_0x3d94('0x48')][_0x3d94('0x2e')]);_0xf8f4e7[_0x3d94('0x2d')]=qs[_0x3d94('0x2d')](_0x1e3d22[_0x3d94('0x48')]['offset']);}_0xf8f4e7[_0x3d94('0x51')]=qs[_0x3d94('0x52')](_0x1e3d22[_0x3d94('0x48')][_0x3d94('0x52')]);_0xf8f4e7['where']=qs[_0x3d94('0x4a')](_[_0x3d94('0x10c')](_0x1e3d22['query'],_0x3fd9a9[_0x3d94('0x4a')]));_0xf8f4e7[_0x3d94('0x53')][_0x3d94('0xb4')]=_0x4c76f3['id'];if(_0x1e3d22[_0x3d94('0x48')][_0x3d94('0x8c')]){_0xf8f4e7[_0x3d94('0x53')]=_[_0x3d94('0xa3')](_0xf8f4e7[_0x3d94('0x53')],{'$or':_[_0x3d94('0x3d')](_0xf8f4e7[_0x3d94('0x4c')],function(_0x5829be){var _0x56894f={};_0x56894f[_0x5829be]={'$like':'%'+_0x1e3d22[_0x3d94('0x48')][_0x3d94('0x8c')]+'%'};return _0x56894f;})});}_0xf8f4e7[_0x3d94('0x53')][_0x3d94('0xfb')]=![];if(_0x1e3d22['query']['id']){_0xf8f4e7[_0x3d94('0x53')]['id']={'$gt':_0x1e3d22[_0x3d94('0x48')]['id']};}_0xf8f4e7=_[_0x3d94('0xa3')]({},_0xf8f4e7,_0x1e3d22['options']);return db[_0x3d94('0xce')][_0x3d94('0xa0')]({'where':_0xf8f4e7[_0x3d94('0x53')]})[_0x3d94('0x1f')](function(_0x289380){_0x1606b6[_0x3d94('0xa0')]=_0x289380;_0xf8f4e7[_0x3d94('0xbb')]=[];if(_0x1e3d22['query'][_0x3d94('0x10f')]){_0xf8f4e7['include'][_0x3d94('0xb5')]({'model':db['User'],'as':_0x3d94('0x7a'),'attributes':['id',_0x3d94('0x3e'),'alias']});}if(_0x1e3d22[_0x3d94('0x48')]['includeAll']){_0xf8f4e7[_0x3d94('0xbb')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0xf8f4e7);})[_0x3d94('0x1f')](function(_0x436e01){_0x1606b6[_0x3d94('0xb7')]=_0x436e01;return _0x1606b6;});}})[_0x3d94('0x1f')](respondWithFilteredResult(_0x562c3f,_0xf8f4e7))[_0x3d94('0x29')](handleError(_0x562c3f,null));};exports[_0x3d94('0x110')]=function(_0xfb94d4,_0x1ef614,_0x137d04){return db[_0x3d94('0x44')][_0x3d94('0x73')]({'where':{'id':_0xfb94d4[_0x3d94('0xb8')]['id']}})['then'](handleEntityNotFound(_0x1ef614,null))[_0x3d94('0x1f')](function(_0x28aad1){if(_0x28aad1){return _0x28aad1[_0x3d94('0x111')](_0xfb94d4[_0x3d94('0x39')]['ids'],_['omit'](_0xfb94d4[_0x3d94('0x39')],[_0x3d94('0x109'),'id'])||{})[_0x3d94('0x112')](function(){return db[_0x3d94('0x77')][_0x3d94('0x10e')]({'attributes':['id','name','color'],'where':{'id':_0xfb94d4[_0x3d94('0x39')]['ids']}});})[_0x3d94('0x1f')](function(_0xc1537){socket[_0x3d94('0x113')](_0x3d94('0x114'),{'id':Number(_0xfb94d4[_0x3d94('0xb8')]['id']),'tags':_0xc1537||[]});return{'id':Number(_0xfb94d4[_0x3d94('0xb8')]['id']),'tags':_0xc1537||[]};});}})['then'](respondWithResult(_0x1ef614,null))[_0x3d94('0x29')](handleError(_0x1ef614,null));};exports[_0x3d94('0x115')]=function(_0x4aa6e6,_0x18f2db,_0x16082f){return db[_0x3d94('0x44')][_0x3d94('0x73')]({'where':{'id':_0x4aa6e6['params']['id']}})['then'](handleEntityNotFound(_0x18f2db,null))[_0x3d94('0x1f')](function(_0x1e480b){if(_0x1e480b){return _0x1e480b[_0x3d94('0x115')](_0x4aa6e6[_0x3d94('0x48')][_0x3d94('0x109')]);}})[_0x3d94('0x1f')](respondWithStatusCode(_0x18f2db,null))[_0x3d94('0x29')](handleError(_0x18f2db,null));};exports[_0x3d94('0xe8')]=function(_0x4147d5,_0x54d72a){var _0x31ec36=moment()[_0x3d94('0x116')]()['toString']();var _0x4897f6=path[_0x3d94('0xe5')](config['root'],'server',_0x3d94('0x117'),_0x3d94('0x118'));var _0x17f392=path[_0x3d94('0xe5')](config[_0x3d94('0xe6')],'server',_0x3d94('0x117'),_0x3d94('0x119'));var _0xceded9=path[_0x3d94('0xe5')](_0x4897f6,_0x31ec36);var _0x77078d=util[_0x3d94('0xf2')](_0x3d94('0x11a'),_0x4147d5[_0x3d94('0xb8')]['id'],_0x31ec36);var _0x27008c=path[_0x3d94('0xe5')](_0x4897f6,_0x77078d);var _0x464735=[];_0x464735[_0x3d94('0xb5')]({'model':db[_0x3d94('0x7a')],'as':'User','attributes':['id',_0x3d94('0x3e')],'raw':!![]});_0x464735[_0x3d94('0xb5')]({'model':db[_0x3d94('0xd2')],'as':'Contact','attributes':['id',_0x3d94('0x11b'),_0x3d94('0x11c')],'raw':!![]});if(_0x4147d5[_0x3d94('0x48')][_0x3d94('0x119')]){_0x464735[_0x3d94('0xb5')]({'model':db[_0x3d94('0xdf')],'as':_0x3d94('0xdf'),'raw':!![]});}var _0x554203=[{'model':db[_0x3d94('0xce')],'as':_0x3d94('0xed'),'attributes':['id',_0x3d94('0x39'),_0x3d94('0x84'),_0x3d94('0xfa'),_0x3d94('0xfb'),'read'],'include':_0x464735}];_0x554203['push']({'model':db[_0x3d94('0xc1')],'as':_0x3d94('0x11d'),'attributes':['id',_0x3d94('0x36')]});_0x554203[_0x3d94('0xb5')]({'model':db['User'],'as':_0x3d94('0x11e'),'attributes':['id','fullname']});return db[_0x3d94('0x44')][_0x3d94('0x73')]({'where':{'id':_0x4147d5['params']['id']},'include':_0x554203})['then'](handleEntityNotFound(_0x54d72a,null))['then'](function(_0x1da500){if(_0x1da500){var _0x2eb637=_0x1da500['get']({'plain':!![]});fs[_0x3d94('0x11f')](_0xceded9);var _0x4f572c={'channel':_0x3d94('0x120'),'account':_0x2eb637[_0x3d94('0x11d')][_0x3d94('0x36')],'agent':_0x2eb637[_0x3d94('0x11e')]?_0x2eb637[_0x3d94('0x11e')][_0x3d94('0x3e')]:'N.A.','createdAt':moment(_0x2eb637['createdAt'])[_0x3d94('0xf2')](_0x3d94('0x10d'))[_0x3d94('0x9f')](),'closedAt':_0x2eb637[_0x3d94('0xd7')]?moment(_0x2eb637['closedAt'])[_0x3d94('0xf2')](_0x3d94('0x10d'))[_0x3d94('0x9f')]():'','disposition':_0x2eb637[_0x3d94('0x121')],'chatInfo':{'browser':_0x2eb637[_0x3d94('0x122')],'os':_0x2eb637[_0x3d94('0x123')],'referer':_0x2eb637[_0x3d94('0x124')],'customerIp':_0x2eb637[_0x3d94('0x125')],'customerPort':_0x2eb637['customerPort']?_0x2eb637[_0x3d94('0x126')]:'N.A.'},'messages':_(_0x2eb637['Messages'])[_0x3d94('0x127')]()[_0x3d94('0x8c')]({'secret':![]})[_0x3d94('0x3d')](function(_0x10fdf2){if(_0x10fdf2[_0x3d94('0xdf')]){var _0x70202c=path[_0x3d94('0xe5')](_0x17f392,_0x10fdf2[_0x3d94('0xdf')]['basename']);if(fs[_0x3d94('0x128')](_0x70202c)){fs['createReadStream'](_0x70202c)[_0x3d94('0x129')](fs[_0x3d94('0x12a')](path[_0x3d94('0xe5')](_0xceded9,_0x10fdf2[_0x3d94('0xdf')][_0x3d94('0xdc')])));}}return{'date':moment(_0x10fdf2[_0x3d94('0x84')])['format'](_0x3d94('0x10d'))[_0x3d94('0x9f')](),'sender':_0x10fdf2[_0x3d94('0xfa')]===_0x3d94('0xcd')?_0x10fdf2['User']?_0x10fdf2['User'][_0x3d94('0x3e')]:_0x3d94('0xf0'):_0x10fdf2[_0x3d94('0x6e')][_0x3d94('0x11b')]+(_0x10fdf2[_0x3d94('0x6e')]['lastName']?'\x20'+_0x10fdf2[_0x3d94('0x6e')][_0x3d94('0x11c')]:''),'body':_0x10fdf2[_0x3d94('0xdf')]?_0x10fdf2[_0x3d94('0xdf')]['basename']:_0x10fdf2[_0x3d94('0x39')],'direction':_0x10fdf2['direction']===_0x3d94('0xcd')?'A':'C','secret':_0x10fdf2[_0x3d94('0xfb')],'read':_0x10fdf2['read'],'attachment':_0x10fdf2[_0x3d94('0xdf')]};})[_0x3d94('0x70')]()};return ejs[_0x3d94('0x12b')](path[_0x3d94('0xe5')](config[_0x3d94('0xe6')],_0x3d94('0x12c'),_0x3d94('0x12d'),_0x3d94('0x12e')),{'interaction':_0x4f572c})[_0x3d94('0x1f')](function(_0x244770){var _0x4e0383=path['join'](_0xceded9,_0x3d94('0x12f')+_0x2eb637['id']+'-'+_0x31ec36+'.pdf');var _0x57a739={'path':_0x4e0383,'channel':_0x3d94('0x120'),'interactionId':_0x2eb637['id']};return pdf['createPdfFromHTML'](_0x244770,_0x57a739);})[_0x3d94('0x1f')](function(){return new BPromise(function(_0x46ddad,_0x3063e9){zipdir(_0xceded9,{'saveTo':_0x27008c},function(_0x36c9be,_0x316c31){if(_0x36c9be)return _0x3063e9(_0x36c9be);return _0x46ddad(_0x316c31);});})['then'](function(){return new BPromise(function(_0x4e42e3,_0xeee55f){rimraf(_0xceded9,function(_0x2be870){if(_0x2be870)_0xeee55f(_0x2be870);return _0x4e42e3();});});})[_0x3d94('0x1f')](function(){return _0x54d72a['download'](_0x27008c,_0x77078d,function(_0x3330df){if(_0x3330df){console[_0x3d94('0x130')](_0x3d94('0x131'),_0x3330df);}else{fs['unlinkSync'](_0x27008c);}});});});}else{return _0x54d72a[_0x3d94('0x2a')](0xc8);}})[_0x3d94('0x29')](handleError(_0x54d72a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf74e=['../../mysqldb','ChatInteraction','setMaxListeners','update','remove','map','findAll','then','setDataValue','emit','hasOwnProperty'];(function(_0x18dedd,_0x4cb9e5){var _0x35b7e1=function(_0x429eb0){while(--_0x429eb0){_0x18dedd['push'](_0x18dedd['shift']());}};_0x35b7e1(++_0x4cb9e5);}(_0xf74e,0x108));var _0xef74=function(_0x322461,_0x38641b){_0x322461=_0x322461-0x0;var _0xd02a85=_0xf74e[_0x322461];return _0xd02a85;};'use strict';var EventEmitter=require('events');var ChatInteraction=require(_0xef74('0x0'))['db'][_0xef74('0x1')];var ChatMessage=require(_0xef74('0x0'))['db']['ChatMessage'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0xef74('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xef74('0x3'),'afterDestroy':_0xef74('0x4')};function emitEvent(_0x2bb5f7){return function(_0x54c617,_0x37ebec,_0x12151c){_0x54c617['getUsers']({'attributes':['id'],'raw':!![]})['then'](function(_0x39e427){_0x54c617['setDataValue']('Users',_0x39e427[_0xef74('0x5')](function(_0x1a1a58){return{'id':_0x1a1a58['id']};}));return ChatMessage[_0xef74('0x6')]({'where':{'ChatInteractionId':_0x54c617['id'],'direction':'in','read':![]},'raw':!![]});})[_0xef74('0x7')](function(_0x167198){_0x54c617[_0xef74('0x8')]('unreadMessages',_0x167198['length']);ChatInteractionEvents[_0xef74('0x9')](_0x2bb5f7+':'+_0x54c617['id'],_0x54c617);ChatInteractionEvents[_0xef74('0x9')](_0x2bb5f7,_0x54c617);_0x12151c(null);})['catch'](_0x12151c(null));};}for(var e in events){if(events[_0xef74('0xa')](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;
\ No newline at end of file
+var _0xb615=['length','emit','catch','events','ChatInteraction','../../mysqldb','save','remove','getUsers','then','setDataValue','map','findAll','unreadMessages'];(function(_0x550a61,_0x1c5d8c){var _0x248bfc=function(_0x38d79e){while(--_0x38d79e){_0x550a61['push'](_0x550a61['shift']());}};_0x248bfc(++_0x1c5d8c);}(_0xb615,0xf1));var _0x5b61=function(_0x5d0131,_0x1b1497){_0x5d0131=_0x5d0131-0x0;var _0x3915d8=_0xb615[_0x5d0131];return _0x3915d8;};'use strict';var EventEmitter=require(_0x5b61('0x0'));var ChatInteraction=require('../../mysqldb')['db'][_0x5b61('0x1')];var ChatMessage=require(_0x5b61('0x2'))['db']['ChatMessage'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x5b61('0x3'),'afterUpdate':'update','afterDestroy':_0x5b61('0x4')};function emitEvent(_0x4e6c14){return function(_0x3c78c8,_0x23f6c4,_0x3cf2f2){_0x3c78c8[_0x5b61('0x5')]({'attributes':['id'],'raw':!![]})[_0x5b61('0x6')](function(_0x3fe047){_0x3c78c8[_0x5b61('0x7')]('Users',_0x3fe047[_0x5b61('0x8')](function(_0xea1e7f){return{'id':_0xea1e7f['id']};}));return ChatMessage[_0x5b61('0x9')]({'where':{'ChatInteractionId':_0x3c78c8['id'],'direction':'in','read':![]},'raw':!![]});})[_0x5b61('0x6')](function(_0xaf2601){_0x3c78c8[_0x5b61('0x7')](_0x5b61('0xa'),_0xaf2601[_0x5b61('0xb')]);ChatInteractionEvents[_0x5b61('0xc')](_0x4e6c14+':'+_0x3c78c8['id'],_0x3c78c8);ChatInteractionEvents[_0x5b61('0xc')](_0x4e6c14,_0x3c78c8);_0x3cf2f2(null);})[_0x5b61('0xd')](_0x3cf2f2(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInteraction['hook'](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x61e0=['exports','define','ChatInteraction','chat_interactions','closedAt','YYYY-MM-DD\x20HH:mm:ss','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./chatInteraction.attributes'];(function(_0x3e30df,_0x3c2abb){var _0x222b25=function(_0xbbc7c7){while(--_0xbbc7c7){_0x3e30df['push'](_0x3e30df['shift']());}};_0x222b25(++_0x3c2abb);}(_0x61e0,0x148));var _0x061e=function(_0x37a2ac,_0x15ff2f){_0x37a2ac=_0x37a2ac-0x0;var _0x4fa616=_0x61e0[_0x37a2ac];return _0x4fa616;};'use strict';var _=require(_0x061e('0x0'));var util=require('util');var logger=require(_0x061e('0x1'))('api');var moment=require(_0x061e('0x2'));var BPromise=require('bluebird');var rp=require(_0x061e('0x3'));var fs=require('fs');var path=require(_0x061e('0x4'));var rimraf=require(_0x061e('0x5'));var config=require(_0x061e('0x6'));var attributes=require(_0x061e('0x7'));module[_0x061e('0x8')]=function(_0xc228da,_0x439c71){return _0xc228da[_0x061e('0x9')](_0x061e('0xa'),attributes,{'tableName':_0x061e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x13ad39,_0x1b0396,_0x5454db){if(_0x13ad39['changed']('closed')){_0x13ad39[_0x061e('0xc')]=moment()['format'](_0x061e('0xd'));}_0x5454db(null,_0x13ad39);}},'charset':_0x061e('0xe'),'collate':_0x061e('0xf')});};
\ No newline at end of file
+var _0x0aff=['format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','api','moment','bluebird','path','../../config/environment','./chatInteraction.attributes','define','ChatInteraction','chat_interactions','closed','closedAt'];(function(_0x3175f3,_0x330954){var _0x2b9216=function(_0x422b57){while(--_0x422b57){_0x3175f3['push'](_0x3175f3['shift']());}};_0x2b9216(++_0x330954);}(_0x0aff,0xa7));var _0xf0af=function(_0x51ab33,_0x71a8a8){_0x51ab33=_0x51ab33-0x0;var _0x5e1298=_0x0aff[_0x51ab33];return _0x5e1298;};'use strict';var _=require(_0xf0af('0x0'));var util=require(_0xf0af('0x1'));var logger=require('../../config/logger')(_0xf0af('0x2'));var moment=require(_0xf0af('0x3'));var BPromise=require(_0xf0af('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf0af('0x5'));var rimraf=require('rimraf');var config=require(_0xf0af('0x6'));var attributes=require(_0xf0af('0x7'));module['exports']=function(_0x111edf,_0x2c0517){return _0x111edf[_0xf0af('0x8')](_0xf0af('0x9'),attributes,{'tableName':_0xf0af('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x41ac99,_0x48255b,_0x41ed4c){if(_0x41ac99['changed'](_0xf0af('0xb'))){_0x41ac99[_0xf0af('0xc')]=moment()[_0xf0af('0xd')](_0xf0af('0xe'));}_0x41ed4c(null,_0x41ac99);}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x345e=['util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','client','http','redis','defaults','./chatInteraction.socket','register','request','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','error','code','ChatInteraction,\x20%s,\x20%s','message','result','catch','UpdateChatInteraction','ChatInteraction','update','options','raw','where','AddTagsToChatInteraction','find','addTags','ids','omit','body','AddTags','stringify','lodash'];(function(_0x18c937,_0x32d230){var _0xc920b3=function(_0x3f8610){while(--_0x3f8610){_0x18c937['push'](_0x18c937['shift']());}};_0xc920b3(++_0x32d230);}(_0x345e,0xcc));var _0xe345=function(_0x31bdff,_0x21a396){_0x31bdff=_0x31bdff-0x0;var _0x1600bd=_0x345e[_0x31bdff];return _0x1600bd;};'use strict';var _=require(_0xe345('0x0'));var util=require(_0xe345('0x1'));var moment=require(_0xe345('0x2'));var BPromise=require(_0xe345('0x3'));var rs=require(_0xe345('0x4'));var fs=require('fs');var Redis=require(_0xe345('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xe345('0x6'));var logger=require('../../config/logger')(_0xe345('0x7'));var config=require(_0xe345('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xe345('0x9')][_0xe345('0xa')]({'port':0x232a});config[_0xe345('0xb')]=_[_0xe345('0xc')](config[_0xe345('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe345('0xb')]));require(_0xe345('0xd'))[_0xe345('0xe')](socket);function respondWithRpcPromise(_0x4de955,_0x269a75,_0x35b832){return new BPromise(function(_0x41755f,_0xbe6d1f){return client[_0xe345('0xf')](_0x4de955,_0x35b832)[_0xe345('0x10')](function(_0x2d0de7){logger[_0xe345('0x11')]('ChatInteraction,\x20%s,\x20%s',_0x269a75,_0xe345('0x12'));logger[_0xe345('0x13')](_0xe345('0x14'),_0x269a75,_0xe345('0x12'),JSON['stringify'](_0x2d0de7));if(_0x2d0de7[_0xe345('0x15')]){if(_0x2d0de7['error'][_0xe345('0x16')]===0x1f4){logger[_0xe345('0x15')](_0xe345('0x17'),_0x269a75,_0x2d0de7[_0xe345('0x15')]['message']);return _0xbe6d1f(_0x2d0de7[_0xe345('0x15')][_0xe345('0x18')]);}logger[_0xe345('0x15')](_0xe345('0x17'),_0x269a75,_0x2d0de7[_0xe345('0x15')][_0xe345('0x18')]);return _0x41755f(_0x2d0de7[_0xe345('0x15')]['message']);}else{logger[_0xe345('0x11')](_0xe345('0x17'),_0x269a75,_0xe345('0x12'));_0x41755f(_0x2d0de7[_0xe345('0x19')][_0xe345('0x18')]);}})[_0xe345('0x1a')](function(_0x3935b9){logger[_0xe345('0x15')](_0xe345('0x17'),_0x269a75,_0x3935b9);_0xbe6d1f(_0x3935b9);});});}exports[_0xe345('0x1b')]=function(_0x4d47fd){var _0x4a58ee=this;return new Promise(function(_0x46d0e7,_0x4aa98){return db[_0xe345('0x1c')][_0xe345('0x1d')](_0x4d47fd['body'],{'raw':_0x4d47fd[_0xe345('0x1e')]?_0x4d47fd[_0xe345('0x1e')][_0xe345('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4d47fd['options']?_0x4d47fd[_0xe345('0x1e')][_0xe345('0x20')]||null:null,'attributes':_0x4d47fd[_0xe345('0x1e')]?_0x4d47fd[_0xe345('0x1e')]['attributes']||null:null,'limit':_0x4d47fd[_0xe345('0x1e')]?_0x4d47fd['options']['limit']||null:null})['then'](function(_0x112b5e){logger[_0xe345('0x11')](_0xe345('0x1b'),_0x4d47fd);logger[_0xe345('0x13')]('UpdateChatInteraction',_0x4d47fd,JSON['stringify'](_0x112b5e));_0x46d0e7(_0x112b5e);})[_0xe345('0x1a')](function(_0x1c1712){logger[_0xe345('0x15')](_0xe345('0x1b'),_0x1c1712['message'],_0x4d47fd);_0x4aa98(_0x4a58ee[_0xe345('0x15')](0x1f4,_0x1c1712[_0xe345('0x18')]));});});};exports[_0xe345('0x21')]=function(_0x25ec4d){return new Promise(function(_0x4a9c70,_0x2c847e){return db['ChatInteraction'][_0xe345('0x22')]({'where':_0x25ec4d[_0xe345('0x1e')]?_0x25ec4d['options'][_0xe345('0x20')]||null:null})[_0xe345('0x10')](function(_0x2f2392){if(_0x2f2392){return _0x2f2392[_0xe345('0x23')](_0x25ec4d['body'][_0xe345('0x24')],_[_0xe345('0x25')](_0x25ec4d[_0xe345('0x26')],[_0xe345('0x24'),'id'])||{});}})['spread'](function(_0x2f0135){logger[_0xe345('0x11')](_0xe345('0x27'),_0x25ec4d);logger[_0xe345('0x13')](_0xe345('0x27'),_0x25ec4d,JSON[_0xe345('0x28')](_0x2f0135));_0x4a9c70(_0x2f0135);})[_0xe345('0x1a')](function(_0x396de8){logger[_0xe345('0x15')]('AddTags',_0x396de8['message'],_0x25ec4d);_0x2c847e(_this[_0xe345('0x15')](0x1f4,_0x396de8[_0xe345('0x18')]));});});};
\ No newline at end of file
+var _0x0e09=['ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','UpdateChatInteraction','ChatInteraction','body','raw','where','options','attributes','limit','debug','AddTagsToChatInteraction','find','addTags','omit','ids','AddTags','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','localhost','./chatInteraction.socket','register','then','info'];(function(_0x1fd5c3,_0x101259){var _0x5666a2=function(_0x2299b5){while(--_0x2299b5){_0x1fd5c3['push'](_0x1fd5c3['shift']());}};_0x5666a2(++_0x101259);}(_0x0e09,0x160));var _0x90e0=function(_0x34061d,_0x21895c){_0x34061d=_0x34061d-0x0;var _0x4a4df4=_0x0e09[_0x34061d];return _0x4a4df4;};'use strict';var _=require(_0x90e0('0x0'));var util=require(_0x90e0('0x1'));var moment=require('moment');var BPromise=require(_0x90e0('0x2'));var rs=require(_0x90e0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x90e0('0x4'))['db'];var utils=require(_0x90e0('0x5'));var logger=require(_0x90e0('0x6'))('rpc');var config=require(_0x90e0('0x7'));var jayson=require(_0x90e0('0x8'));var client=jayson[_0x90e0('0x9')][_0x90e0('0xa')]({'port':0x232a});config[_0x90e0('0xb')]=_['defaults'](config[_0x90e0('0xb')],{'host':_0x90e0('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x90e0('0xb')]));require(_0x90e0('0xd'))[_0x90e0('0xe')](socket);function respondWithRpcPromise(_0x1798b0,_0x59e1d5,_0x3b6813){return new BPromise(function(_0x58cf59,_0x5a6d59){return client['request'](_0x1798b0,_0x3b6813)[_0x90e0('0xf')](function(_0xe37ee4){logger[_0x90e0('0x10')](_0x90e0('0x11'),_0x59e1d5,_0x90e0('0x12'));logger['debug'](_0x90e0('0x13'),_0x59e1d5,_0x90e0('0x12'),JSON[_0x90e0('0x14')](_0xe37ee4));if(_0xe37ee4[_0x90e0('0x15')]){if(_0xe37ee4[_0x90e0('0x15')][_0x90e0('0x16')]===0x1f4){logger['error']('ChatInteraction,\x20%s,\x20%s',_0x59e1d5,_0xe37ee4[_0x90e0('0x15')][_0x90e0('0x17')]);return _0x5a6d59(_0xe37ee4[_0x90e0('0x15')]['message']);}logger[_0x90e0('0x15')](_0x90e0('0x11'),_0x59e1d5,_0xe37ee4[_0x90e0('0x15')][_0x90e0('0x17')]);return _0x58cf59(_0xe37ee4[_0x90e0('0x15')]['message']);}else{logger[_0x90e0('0x10')](_0x90e0('0x11'),_0x59e1d5,_0x90e0('0x12'));_0x58cf59(_0xe37ee4[_0x90e0('0x18')][_0x90e0('0x17')]);}})[_0x90e0('0x19')](function(_0x595928){logger[_0x90e0('0x15')](_0x90e0('0x11'),_0x59e1d5,_0x595928);_0x5a6d59(_0x595928);});});}exports[_0x90e0('0x1a')]=function(_0x37be91){var _0x5d471d=this;return new Promise(function(_0x342393,_0x3cd6e9){return db[_0x90e0('0x1b')]['update'](_0x37be91[_0x90e0('0x1c')],{'raw':_0x37be91['options']?_0x37be91['options'][_0x90e0('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x37be91['options']?_0x37be91['options'][_0x90e0('0x1e')]||null:null,'attributes':_0x37be91[_0x90e0('0x1f')]?_0x37be91[_0x90e0('0x1f')][_0x90e0('0x20')]||null:null,'limit':_0x37be91['options']?_0x37be91[_0x90e0('0x1f')][_0x90e0('0x21')]||null:null})['then'](function(_0x397305){logger[_0x90e0('0x10')]('UpdateChatInteraction',_0x37be91);logger[_0x90e0('0x22')](_0x90e0('0x1a'),_0x37be91,JSON[_0x90e0('0x14')](_0x397305));_0x342393(_0x397305);})[_0x90e0('0x19')](function(_0x2bbdc3){logger['error'](_0x90e0('0x1a'),_0x2bbdc3[_0x90e0('0x17')],_0x37be91);_0x3cd6e9(_0x5d471d[_0x90e0('0x15')](0x1f4,_0x2bbdc3['message']));});});};exports[_0x90e0('0x23')]=function(_0x3f9fed){return new Promise(function(_0x523608,_0x40e90d){return db[_0x90e0('0x1b')][_0x90e0('0x24')]({'where':_0x3f9fed[_0x90e0('0x1f')]?_0x3f9fed[_0x90e0('0x1f')]['where']||null:null})['then'](function(_0x3a6208){if(_0x3a6208){return _0x3a6208[_0x90e0('0x25')](_0x3f9fed['body']['ids'],_[_0x90e0('0x26')](_0x3f9fed[_0x90e0('0x1c')],[_0x90e0('0x27'),'id'])||{});}})['spread'](function(_0x2f38f6){logger['info'](_0x90e0('0x28'),_0x3f9fed);logger[_0x90e0('0x22')](_0x90e0('0x28'),_0x3f9fed,JSON['stringify'](_0x2f38f6));_0x523608(_0x2f38f6);})[_0x90e0('0x19')](function(_0x5e86cb){logger[_0x90e0('0x15')]('AddTags',_0x5e86cb[_0x90e0('0x17')],_0x3f9fed);_0x40e90d(_this[_0x90e0('0x15')](0x1f4,_0x5e86cb[_0x90e0('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe041=['length','./chatInteraction.events','save','update','emit','removeListener','register'];(function(_0x1c4671,_0x2b1527){var _0x5b4024=function(_0x5db42b){while(--_0x5db42b){_0x1c4671['push'](_0x1c4671['shift']());}};_0x5b4024(++_0x2b1527);}(_0xe041,0x17b));var _0x1e04=function(_0x49fb6e,_0x2b1a51){_0x49fb6e=_0x49fb6e-0x0;var _0x3c03cc=_0xe041[_0x49fb6e];return _0x3c03cc;};'use strict';var ChatInteractionEvents=require(_0x1e04('0x0'));var events=[_0x1e04('0x1'),'remove',_0x1e04('0x2')];function createListener(_0x578038,_0x3f5f60){return function(_0x15b054){_0x3f5f60[_0x1e04('0x3')](_0x578038,_0x15b054);};}function removeListener(_0x4f6279,_0x1e7f56){return function(){ChatInteractionEvents[_0x1e04('0x4')](_0x4f6279,_0x1e7f56);};}exports[_0x1e04('0x5')]=function(_0xbb179e){for(var _0x1f8b6c=0x0,_0x2fe4f8=events[_0x1e04('0x6')];_0x1f8b6c<_0x2fe4f8;_0x1f8b6c++){var _0x4c3007=events[_0x1f8b6c];var _0x5422d4=createListener('chatInteraction:'+_0x4c3007,_0xbb179e);ChatInteractionEvents['on'](_0x4c3007,_0x5422d4);}};
\ No newline at end of file
+var _0x0b8d=['./chatInteraction.events','save','remove','update','emit','removeListener','register'];(function(_0x4fc9e6,_0xc51915){var _0x551d28=function(_0x1a603b){while(--_0x1a603b){_0x4fc9e6['push'](_0x4fc9e6['shift']());}};_0x551d28(++_0xc51915);}(_0x0b8d,0xbd));var _0xd0b8=function(_0x474bc0,_0x26989c){_0x474bc0=_0x474bc0-0x0;var _0x4b24cf=_0x0b8d[_0x474bc0];return _0x4b24cf;};'use strict';var ChatInteractionEvents=require(_0xd0b8('0x0'));var events=[_0xd0b8('0x1'),_0xd0b8('0x2'),_0xd0b8('0x3')];function createListener(_0x590962,_0x55b19e){return function(_0x58dda3){_0x55b19e[_0xd0b8('0x4')](_0x590962,_0x58dda3);};}function removeListener(_0x2b9e59,_0x3de3ca){return function(){ChatInteractionEvents[_0xd0b8('0x5')](_0x2b9e59,_0x3de3ca);};}exports[_0xd0b8('0x6')]=function(_0x820540){for(var _0x3bf19d=0x0,_0x574535=events['length'];_0x3bf19d<_0x574535;_0x3bf19d++){var _0x6d7b41=events[_0x3bf19d];var _0x1f6e14=createListener('chatInteraction:'+_0x6d7b41,_0x820540);ChatInteractionEvents['on'](_0x6d7b41,_0x1f6e14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a56=['chat','chatinteraction:addtags','addTags','put','/:id','update','/:id/custom_update','customUpdate','/:id/abandon','abandon','/:id/close','close','delete','removeTags','exports','multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','index','isChatInteractionAuthorized','show','/:id/attachment_download','/:id/messages','getMessages','/:id/my_messages','getMyMessages','/:id/download','post','create','/:id/vidaoo','diskStorage','join','root','server/files/attachments/','format','%s-%s','now','originalname','replace','/:id/attachment_upload','file','attachmentUpload','addMessage','/:id/tags','tracked'];(function(_0x3dee92,_0x55e1eb){var _0x44d36e=function(_0x34de1a){while(--_0x34de1a){_0x3dee92['push'](_0x3dee92['shift']());}};_0x44d36e(++_0x55e1eb);}(_0x9a56,0x79));var _0x69a5=function(_0x128860,_0x375228){_0x128860=_0x128860-0x0;var _0x424617=_0x9a56[_0x128860];return _0x424617;};'use strict';var multer=require(_0x69a5('0x0'));var util=require(_0x69a5('0x1'));var path=require(_0x69a5('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x69a5('0x3')]();var fs_extra=require(_0x69a5('0x4'));var auth=require(_0x69a5('0x5'));var interaction=require(_0x69a5('0x6'));var config=require(_0x69a5('0x7'));var controller=require(_0x69a5('0x8'));router[_0x69a5('0x9')]('/',auth[_0x69a5('0xa')](),controller[_0x69a5('0xb')]);router['get']('/describe',auth['isAuthenticated'](),controller['describe']);router[_0x69a5('0x9')]('/:id',auth[_0x69a5('0xc')](),controller[_0x69a5('0xd')]);router['get'](_0x69a5('0xe'),auth[_0x69a5('0xc')](),controller['attachmentDownload']);router[_0x69a5('0x9')](_0x69a5('0xf'),auth[_0x69a5('0xa')](),controller[_0x69a5('0x10')]);router[_0x69a5('0x9')](_0x69a5('0x11'),auth[_0x69a5('0xc')](),controller[_0x69a5('0x12')]);router['get'](_0x69a5('0x13'),auth[_0x69a5('0xa')](),controller['download']);router[_0x69a5('0x14')]('/',auth[_0x69a5('0xa')](),controller[_0x69a5('0x15')]);router[_0x69a5('0x14')](_0x69a5('0x16'),auth[_0x69a5('0xa')](),controller['createVidaooSession']);var upload=multer({'storage':multer[_0x69a5('0x17')]({'destination':function(_0xff2de1,_0x147227,_0x248880){_0x248880(null,path[_0x69a5('0x18')](config[_0x69a5('0x19')],_0x69a5('0x1a')));},'filename':function(_0x143229,_0x1a3979,_0xbd045b){_0xbd045b(null,util[_0x69a5('0x1b')](_0x69a5('0x1c'),Date[_0x69a5('0x1d')](),_0x1a3979[_0x69a5('0x1e')][_0x69a5('0x1f')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x69a5('0x14')](_0x69a5('0x20'),upload['single'](_0x69a5('0x21')),controller[_0x69a5('0x22')]);router[_0x69a5('0x14')](_0x69a5('0xf'),auth['isChatInteractionAuthorized'](),controller[_0x69a5('0x23')]);router[_0x69a5('0x14')](_0x69a5('0x24'),auth[_0x69a5('0xa')](),interaction[_0x69a5('0x25')](_0x69a5('0x26'),_0x69a5('0x27')),controller[_0x69a5('0x28')]);router[_0x69a5('0x29')](_0x69a5('0x2a'),auth[_0x69a5('0xa')](),interaction[_0x69a5('0x25')](_0x69a5('0x26'),'chatinteraction:update'),controller[_0x69a5('0x2b')]);router[_0x69a5('0x29')](_0x69a5('0x2c'),controller[_0x69a5('0x2d')]);router[_0x69a5('0x29')](_0x69a5('0x2e'),auth['isChatInteractionAuthorized'](),controller[_0x69a5('0x2f')]);router[_0x69a5('0x29')](_0x69a5('0x30'),controller[_0x69a5('0x31')]);router[_0x69a5('0x32')](_0x69a5('0x2a'),auth[_0x69a5('0xa')](),interaction[_0x69a5('0x25')](_0x69a5('0x26'),'chatinteraction:destroy'),controller['destroy']);router['delete'](_0x69a5('0x24'),auth[_0x69a5('0xa')](),controller[_0x69a5('0x33')]);module[_0x69a5('0x34')]=router;
\ No newline at end of file
+var _0x3911=['now','originalname','replace','/:id/attachment_upload','single','file','attachmentUpload','/:id/messages','addMessage','/:id/tags','chat','chatinteraction:addtags','addTags','tracked','update','put','/:id/custom_update','customUpdate','/:id/abandon','abandon','/:id/close','close','delete','chatinteraction:destroy','destroy','removeTags','exports','multer','path','express','Router','fs-extra','../../components/auth/service','./chatInteraction.controller','get','isAuthenticated','index','/describe','/:id','isChatInteractionAuthorized','/:id/my_messages','getMyMessages','/:id/download','download','post','create','/:id/vidaoo','diskStorage','root','server/files/attachments/','format','%s-%s'];(function(_0x2eb370,_0x4f62b5){var _0x473c1=function(_0x4377e9){while(--_0x4377e9){_0x2eb370['push'](_0x2eb370['shift']());}};_0x473c1(++_0x4f62b5);}(_0x3911,0x11f));var _0x1391=function(_0x57411a,_0x59328f){_0x57411a=_0x57411a-0x0;var _0xd487ba=_0x3911[_0x57411a];return _0xd487ba;};'use strict';var multer=require(_0x1391('0x0'));var util=require('util');var path=require(_0x1391('0x1'));var timeout=require('connect-timeout');var express=require(_0x1391('0x2'));var router=express[_0x1391('0x3')]();var fs_extra=require(_0x1391('0x4'));var auth=require(_0x1391('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x1391('0x6'));router[_0x1391('0x7')]('/',auth[_0x1391('0x8')](),controller[_0x1391('0x9')]);router[_0x1391('0x7')](_0x1391('0xa'),auth[_0x1391('0x8')](),controller['describe']);router[_0x1391('0x7')](_0x1391('0xb'),auth[_0x1391('0xc')](),controller['show']);router[_0x1391('0x7')]('/:id/attachment_download',auth[_0x1391('0xc')](),controller['attachmentDownload']);router[_0x1391('0x7')]('/:id/messages',auth[_0x1391('0x8')](),controller['getMessages']);router[_0x1391('0x7')](_0x1391('0xd'),auth[_0x1391('0xc')](),controller[_0x1391('0xe')]);router[_0x1391('0x7')](_0x1391('0xf'),auth[_0x1391('0x8')](),controller[_0x1391('0x10')]);router[_0x1391('0x11')]('/',auth[_0x1391('0x8')](),controller[_0x1391('0x12')]);router[_0x1391('0x11')](_0x1391('0x13'),auth[_0x1391('0x8')](),controller['createVidaooSession']);var upload=multer({'storage':multer[_0x1391('0x14')]({'destination':function(_0x5bd1f8,_0x5acbb2,_0x2e17a2){_0x2e17a2(null,path['join'](config[_0x1391('0x15')],_0x1391('0x16')));},'filename':function(_0x514766,_0x1b5732,_0x52b797){_0x52b797(null,util[_0x1391('0x17')](_0x1391('0x18'),Date[_0x1391('0x19')](),_0x1b5732[_0x1391('0x1a')][_0x1391('0x1b')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x1391('0x11')](_0x1391('0x1c'),upload[_0x1391('0x1d')](_0x1391('0x1e')),controller[_0x1391('0x1f')]);router['post'](_0x1391('0x20'),auth['isChatInteractionAuthorized'](),controller[_0x1391('0x21')]);router['post'](_0x1391('0x22'),auth[_0x1391('0x8')](),interaction['tracked'](_0x1391('0x23'),_0x1391('0x24')),controller[_0x1391('0x25')]);router['put'](_0x1391('0xb'),auth[_0x1391('0x8')](),interaction[_0x1391('0x26')](_0x1391('0x23'),'chatinteraction:update'),controller[_0x1391('0x27')]);router[_0x1391('0x28')](_0x1391('0x29'),controller[_0x1391('0x2a')]);router[_0x1391('0x28')](_0x1391('0x2b'),auth['isChatInteractionAuthorized'](),controller[_0x1391('0x2c')]);router['put'](_0x1391('0x2d'),controller[_0x1391('0x2e')]);router[_0x1391('0x2f')](_0x1391('0xb'),auth[_0x1391('0x8')](),interaction[_0x1391('0x26')](_0x1391('0x23'),_0x1391('0x30')),controller[_0x1391('0x31')]);router[_0x1391('0x2f')]('/:id/tags',auth[_0x1391('0x8')](),controller[_0x1391('0x32')]);module[_0x1391('0x33')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcbb5=['exports','TEXT','BOOLEAN'];(function(_0x1340ed,_0x3d90da){var _0x20d9f2=function(_0x38a347){while(--_0x38a347){_0x1340ed['push'](_0x1340ed['shift']());}};_0x20d9f2(++_0x3d90da);}(_0xcbb5,0x10b));var _0x5cbb=function(_0x43aab7,_0x3724b5){_0x43aab7=_0x43aab7-0x0;var _0x24c3de=_0xcbb5[_0x43aab7];return _0x24c3de;};'use strict';var Sequelize=require('sequelize');module[_0x5cbb('0x0')]={'body':{'type':Sequelize[_0x5cbb('0x1')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x5cbb('0x2')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0x16ad=['medium','BOOLEAN','sequelize','exports'];(function(_0x25a091,_0x35fcf6){var _0x34503d=function(_0x514287){while(--_0x514287){_0x25a091['push'](_0x25a091['shift']());}};_0x34503d(++_0x35fcf6);}(_0x16ad,0x132));var _0xd16a=function(_0x1fb07d,_0x16b8cb){_0x1fb07d=_0x1fb07d-0x0;var _0x5a101f=_0x16ad[_0x1fb07d];return _0x5a101f;};'use strict';var Sequelize=require(_0xd16a('0x0'));module[_0xd16a('0x1')]={'body':{'type':Sequelize['TEXT'](_0xd16a('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xd16a('0x3')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9605=['offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','VIRTUAL','includeAll','include','rows','params','options','find','catch','create','body','describe','messages','createdAt','lastMessageAt','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','User','findAll','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','allowmessenger','-online','VoiceQueue','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','push','FromId','ToId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','register','sendStatus','status','end','json'];(function(_0xf0dbf9,_0x1b21a1){var _0x4a6946=function(_0x40cbe6){while(--_0x40cbe6){_0xf0dbf9['push'](_0xf0dbf9['shift']());}};_0x4a6946(++_0x1b21a1);}(_0x9605,0x135));var _0x5960=function(_0x584caf,_0x20b072){_0x584caf=_0x584caf-0x0;var _0x179f35=_0x9605[_0x584caf];return _0x179f35;};'use strict';var emlformat=require(_0x5960('0x0'));var rimraf=require(_0x5960('0x1'));var zipdir=require(_0x5960('0x2'));var jsonpatch=require(_0x5960('0x3'));var rp=require(_0x5960('0x4'));var moment=require(_0x5960('0x5'));var BPromise=require(_0x5960('0x6'));var Mustache=require(_0x5960('0x7'));var util=require(_0x5960('0x8'));var path=require(_0x5960('0x9'));var sox=require('sox');var csv=require(_0x5960('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x5960('0xb'));var _=require(_0x5960('0xc'));var squel=require(_0x5960('0xd'));var crypto=require(_0x5960('0xe'));var jsforce=require(_0x5960('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5960('0x10'));var Papa=require(_0x5960('0x11'));var Redis=require(_0x5960('0x12'));var authService=require(_0x5960('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x5960('0x14'));var hardwareService=require(_0x5960('0x15'));var logger=require(_0x5960('0x16'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x5960('0x17'))['db'];config[_0x5960('0x18')]=_[_0x5960('0x19')](config[_0x5960('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0x5960('0x1a'))(new Redis(config['redis']));require(_0x5960('0x1b'))[_0x5960('0x1c')](socket);function respondWithStatusCode(_0x4a67af,_0x57fbf3){_0x57fbf3=_0x57fbf3||0xcc;return function(_0xb7a41d){if(_0xb7a41d){return _0x4a67af[_0x5960('0x1d')](_0x57fbf3);}return _0x4a67af[_0x5960('0x1e')](_0x57fbf3)[_0x5960('0x1f')]();};}function respondWithResult(_0x5b8050,_0x5346ea){_0x5346ea=_0x5346ea||0xc8;return function(_0x1a85e1){if(_0x1a85e1){return _0x5b8050[_0x5960('0x1e')](_0x5346ea)[_0x5960('0x20')](_0x1a85e1);}};}function respondWithFilteredResult(_0x1c6e85,_0x5e1501){return function(_0xd1e944){if(_0xd1e944){var _0x3214f2=typeof _0x5e1501[_0x5960('0x21')]===_0x5960('0x22')&&typeof _0x5e1501[_0x5960('0x23')]==='undefined';var _0xcc8310=_0xd1e944['count'];var _0x35bbe2=_0x3214f2?0x0:_0x5e1501['offset'];var _0x588811=_0x3214f2?_0xd1e944[_0x5960('0x24')]:_0x5e1501[_0x5960('0x21')]+_0x5e1501[_0x5960('0x23')];var _0x5ec21c;if(_0x588811>=_0xcc8310){_0x588811=_0xcc8310;_0x5ec21c=0xc8;}else{_0x5ec21c=0xce;}_0x1c6e85[_0x5960('0x1e')](_0x5ec21c);return _0x1c6e85[_0x5960('0x25')](_0x5960('0x26'),_0x35bbe2+'-'+_0x588811+'/'+_0xcc8310)['json'](_0xd1e944);}return null;};}function patchUpdates(_0x157f7e){return function(_0x177274){try{jsonpatch[_0x5960('0x27')](_0x177274,_0x157f7e,!![]);}catch(_0x4d196e){return BPromise['reject'](_0x4d196e);}return _0x177274[_0x5960('0x28')]();};}function saveUpdates(_0x189fdf,_0x237936){return function(_0x43a78a){if(_0x43a78a){return _0x43a78a[_0x5960('0x29')](_0x189fdf)['then'](function(_0x30bca1){return _0x30bca1;});}return null;};}function removeEntity(_0x2580e4,_0x44de8b){return function(_0x28be9c){if(_0x28be9c){return _0x28be9c[_0x5960('0x2a')]()[_0x5960('0x2b')](function(){_0x2580e4[_0x5960('0x1e')](0xcc)[_0x5960('0x1f')]();});}};}function handleEntityNotFound(_0xccf934,_0xf578f7){return function(_0x5ab7f1){if(!_0x5ab7f1){_0xccf934[_0x5960('0x1d')](0x194);}return _0x5ab7f1;};}function handleError(_0x34b647,_0x20907a){_0x20907a=_0x20907a||0x1f4;return function(_0x571aa8){logger[_0x5960('0x2c')](_0x571aa8[_0x5960('0x2d')]);if(_0x571aa8[_0x5960('0x2e')]){delete _0x571aa8[_0x5960('0x2e')];}_0x34b647['status'](_0x20907a)[_0x5960('0x2f')](_0x571aa8);};}exports[_0x5960('0x30')]=function(_0x5300c4,_0x401a84){var _0x21a96a={},_0x2ee1b8={},_0x52ea28={'count':0x0,'rows':[]};var _0x1ac02f=_[_0x5960('0x31')](db[_0x5960('0x32')][_0x5960('0x33')],function(_0x53293e){return{'name':_0x53293e[_0x5960('0x34')],'type':_0x53293e[_0x5960('0x35')][_0x5960('0x36')]};});_0x2ee1b8[_0x5960('0x37')]=_[_0x5960('0x31')](_0x1ac02f,_0x5960('0x2e'));_0x2ee1b8[_0x5960('0x38')]=_[_0x5960('0x39')](_0x5300c4[_0x5960('0x38')]);_0x2ee1b8[_0x5960('0x3a')]=_[_0x5960('0x3b')](_0x2ee1b8['model'],_0x2ee1b8[_0x5960('0x38')]);_0x21a96a[_0x5960('0x3c')]=_[_0x5960('0x3b')](_0x2ee1b8[_0x5960('0x37')],qs[_0x5960('0x3d')](_0x5300c4[_0x5960('0x38')][_0x5960('0x3d')]));_0x21a96a[_0x5960('0x3c')]=_0x21a96a['attributes'][_0x5960('0x3e')]?_0x21a96a[_0x5960('0x3c')]:_0x2ee1b8[_0x5960('0x37')];if(!_0x5300c4[_0x5960('0x38')][_0x5960('0x3f')](_0x5960('0x40'))){_0x21a96a[_0x5960('0x23')]=qs['limit'](_0x5300c4[_0x5960('0x38')]['limit']);_0x21a96a[_0x5960('0x21')]=qs[_0x5960('0x21')](_0x5300c4[_0x5960('0x38')][_0x5960('0x21')]);}_0x21a96a['order']=qs[_0x5960('0x41')](_0x5300c4[_0x5960('0x38')][_0x5960('0x41')]);_0x21a96a['where']=qs['filters'](_[_0x5960('0x42')](_0x5300c4[_0x5960('0x38')],_0x2ee1b8[_0x5960('0x3a')]),_0x1ac02f);if(_0x5300c4[_0x5960('0x38')][_0x5960('0x43')]){_0x21a96a[_0x5960('0x44')]=_[_0x5960('0x45')](_0x21a96a[_0x5960('0x44')],{'$or':_[_0x5960('0x31')](_0x1ac02f,function(_0x57f8c5){if(_0x57f8c5[_0x5960('0x35')]!==_0x5960('0x46')){var _0xa99b27={};_0xa99b27[_0x57f8c5[_0x5960('0x2e')]]={'$like':'%'+_0x5300c4[_0x5960('0x38')][_0x5960('0x43')]+'%'};return _0xa99b27;}})});}_0x21a96a=_['merge']({},_0x21a96a,_0x5300c4['options']);var _0x30a31d={'where':_0x21a96a[_0x5960('0x44')]};return db[_0x5960('0x32')][_0x5960('0x24')](_0x30a31d)['then'](function(_0x31fdaf){_0x52ea28[_0x5960('0x24')]=_0x31fdaf;if(_0x5300c4[_0x5960('0x38')][_0x5960('0x47')]){_0x21a96a[_0x5960('0x48')]=[{'all':!![]}];}return db[_0x5960('0x32')]['findAll'](_0x21a96a);})[_0x5960('0x2b')](function(_0x318587){_0x52ea28[_0x5960('0x49')]=_0x318587;return _0x52ea28;})['then'](respondWithFilteredResult(_0x401a84,_0x21a96a))['catch'](handleError(_0x401a84,null));};exports['show']=function(_0xb7e67b,_0xd48c02){var _0x32e271={'raw':!![],'where':{'id':_0xb7e67b[_0x5960('0x4a')]['id']}},_0x4631bc={};_0x4631bc[_0x5960('0x37')]=_[_0x5960('0x39')](db['ChatInternalMessage']['rawAttributes']);_0x4631bc[_0x5960('0x38')]=_[_0x5960('0x39')](_0xb7e67b[_0x5960('0x38')]);_0x4631bc[_0x5960('0x3a')]=_['intersection'](_0x4631bc[_0x5960('0x37')],_0x4631bc[_0x5960('0x38')]);_0x32e271[_0x5960('0x3c')]=_[_0x5960('0x3b')](_0x4631bc[_0x5960('0x37')],qs[_0x5960('0x3d')](_0xb7e67b[_0x5960('0x38')]['fields']));_0x32e271[_0x5960('0x3c')]=_0x32e271[_0x5960('0x3c')][_0x5960('0x3e')]?_0x32e271[_0x5960('0x3c')]:_0x4631bc[_0x5960('0x37')];if(_0xb7e67b[_0x5960('0x38')][_0x5960('0x47')]){_0x32e271[_0x5960('0x48')]=[{'all':!![]}];}_0x32e271=_[_0x5960('0x45')]({},_0x32e271,_0xb7e67b[_0x5960('0x4b')]);return db[_0x5960('0x32')][_0x5960('0x4c')](_0x32e271)['then'](handleEntityNotFound(_0xd48c02,null))[_0x5960('0x2b')](respondWithResult(_0xd48c02,null))[_0x5960('0x4d')](handleError(_0xd48c02,null));};exports[_0x5960('0x4e')]=function(_0x105f3d,_0x1352ec){return db[_0x5960('0x32')][_0x5960('0x4e')](_0x105f3d[_0x5960('0x4f')],{})[_0x5960('0x2b')](respondWithResult(_0x1352ec,0xc9))[_0x5960('0x4d')](handleError(_0x1352ec,null));};exports['update']=function(_0x38fd51,_0x59ff60){if(_0x38fd51[_0x5960('0x4f')]['id']){delete _0x38fd51[_0x5960('0x4f')]['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x38fd51[_0x5960('0x4a')]['id']}})['then'](handleEntityNotFound(_0x59ff60,null))['then'](saveUpdates(_0x38fd51[_0x5960('0x4f')],null))[_0x5960('0x2b')](respondWithResult(_0x59ff60,null))[_0x5960('0x4d')](handleError(_0x59ff60,null));};exports[_0x5960('0x2a')]=function(_0x3b968d,_0x422019){return db[_0x5960('0x32')][_0x5960('0x4c')]({'where':{'id':_0x3b968d[_0x5960('0x4a')]['id']}})[_0x5960('0x2b')](handleEntityNotFound(_0x422019,null))[_0x5960('0x2b')](removeEntity(_0x422019,null))[_0x5960('0x4d')](handleError(_0x422019,null));};exports[_0x5960('0x50')]=function(_0x1f806b,_0x112f5c){return db['ChatInternalMessage'][_0x5960('0x50')]()[_0x5960('0x2b')](respondWithResult(_0x112f5c,null))[_0x5960('0x4d')](handleError(_0x112f5c,null));};function wrapUser(_0x41c708){return function(_0xbd1159){var _0x108e1d=_0x41c708['get']({'plain':!![]});_0x108e1d[_0x5960('0x51')]=[];if(_0xbd1159){_0x108e1d['lastMessageAt']=_0xbd1159[_0x5960('0x52')];_0x108e1d['lastMessage']=_0xbd1159;}else{_0x108e1d[_0x5960('0x53')]=moment(0x0)[_0x5960('0x54')](_0x5960('0x55'));_0x108e1d['lastMessage']={};}return _0x108e1d;};}exports[_0x5960('0x56')]=function(_0x21667e,_0x1fb95e,_0x55a43c){var _0x18018f=[];return db[_0x5960('0x57')][_0x5960('0x58')]({'where':{'role':[_0x5960('0x59'),_0x5960('0x5a'),_0x5960('0x5b')]},'attributes':['id',_0x5960('0x5c'),_0x5960('0x2e'),_0x5960('0x5d'),_0x5960('0x5e'),_0x5960('0x5f'),_0x5960('0x60'),_0x5960('0x61'),_0x5960('0x62'),'showWebBar'],'order':qs['sort'](_0x5960('0x63')),'include':[{'model':db[_0x5960('0x64')],'as':'VoiceQueues','attributes':['id',_0x5960('0x2e'),_0x5960('0x35')],'through':{'attributes':[]}}]})[_0x5960('0x2b')](function(_0x3f691a){if(_0x3f691a){var _0x13b4d1=_0x21667e[_0x5960('0x5b')][_0x5960('0x65')]({'plain':!![]});if(!_0x13b4d1)throw new Error(_0x5960('0x66'));if(_0x13b4d1[_0x5960('0x5d')]==='user'){return db[_0x5960('0x67')]['find']({'where':{'name':'Agents','userProfileId':_0x13b4d1[_0x5960('0x68')]},'raw':!![]})[_0x5960('0x2b')](function(_0x41358a){if(_0x41358a){if(_0x41358a[_0x5960('0x69')]===0x0){return db[_0x5960('0x6a')][_0x5960('0x58')]({'where':{'sectionId':_0x41358a['id']},'raw':!![]})['then'](function(_0x597e5d){var _0x50cdbe=[];if(_[_0x5960('0x6b')](_0x597e5d)){_0x50cdbe=_[_0x5960('0x43')](_0x3f691a,function(_0x596eee){if(_0x596eee['role']!==_0x5960('0x59')){return _0x596eee;}});return _0x50cdbe;}else{for(var _0x341a01=0x0;_0x341a01<_0x3f691a[_0x5960('0x3e')];_0x341a01++){var _0x42311=_0x3f691a[_0x341a01];if(_0x42311[_0x5960('0x5d')]===_0x5960('0x59')){var _0x405716=_[_0x5960('0x4c')](_0x597e5d,function(_0x29d7d0){return _0x29d7d0['resourceId']===_0x42311['id'];});if(_0x405716)_0x50cdbe['push'](_0x42311);}else{_0x50cdbe[_0x5960('0x6c')](_0x42311);}}return _0x50cdbe;}});}else{return _0x3f691a;}}else{var _0x549e16=_[_0x5960('0x43')](_0x3f691a,function(_0x431504){if(_0x431504['role']!==_0x5960('0x59')){return _0x431504;}});return _0x549e16;}});}else{return _0x3f691a;}}})[_0x5960('0x2b')](function(_0x56233b){var _0x2deb87=[];if(_0x56233b){_0x18018f=_0x56233b;for(var _0x1c9d78=0x0;_0x1c9d78<_0x56233b[_0x5960('0x3e')];_0x1c9d78+=0x1){_0x18018f[_0x1c9d78][_0x5960('0x51')]=[];_0x2deb87[_0x5960('0x6c')](db['ChatInternalMessage']['find']({'where':{'FromId':[_0x21667e[_0x5960('0x5b')]['id'],_0x56233b[_0x1c9d78]['id']],'ToId':[_0x21667e['user']['id'],_0x56233b[_0x1c9d78]['id']],'ChatGroupId':null},'attributes':['id',_0x5960('0x52'),_0x5960('0x6d'),_0x5960('0x6e'),_0x5960('0x6f'),_0x5960('0x4f')],'order':qs[_0x5960('0x41')](_0x5960('0x70')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x56233b[_0x1c9d78])));}return BPromise[_0x5960('0x71')](_0x2deb87);}return[];})[_0x5960('0x2b')](function(_0x3a8233){return{'rows':_0x3a8233,'count':_0x3a8233[_0x5960('0x3e')]};})[_0x5960('0x2b')](respondWithResult(_0x1fb95e,null))[_0x5960('0x4d')](handleError(_0x1fb95e,null));};
\ No newline at end of file
+var _0x753c=['include','rows','catch','show','keys','ChatInternalMessage','fields','length','find','create','update','body','params','describe','get','lastMessageAt','createdAt','lastMessage','getUsers','findAll','agent','admin','user','fullname','role','userpic','internal','online','lastLoginAt','showWebBar','VoiceQueue','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','filter','resourceId','push','messages','FromId','read','-createdAt','all','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','to-csv','ejs','fs-extra','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','then','destroy','sendStatus','error','stack','name','send','index','rawAttributes','fieldName','type','key','map','query','filters','intersection','attributes','model','hasOwnProperty','nolimit','order','sort','where','pick','merge','options'];(function(_0x4cb500,_0x24f003){var _0x16661f=function(_0x3b5026){while(--_0x3b5026){_0x4cb500['push'](_0x4cb500['shift']());}};_0x16661f(++_0x24f003);}(_0x753c,0x101));var _0xc753=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x753c[_0x501510];return _0x1e6ee5;};'use strict';var emlformat=require(_0xc753('0x0'));var rimraf=require(_0xc753('0x1'));var zipdir=require(_0xc753('0x2'));var jsonpatch=require(_0xc753('0x3'));var rp=require('request-promise');var moment=require(_0xc753('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc753('0x5'));var util=require(_0xc753('0x6'));var path=require(_0xc753('0x7'));var sox=require('sox');var csv=require(_0xc753('0x8'));var ejs=require(_0xc753('0x9'));var fs=require('fs');var fs_extra=require(_0xc753('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xc753('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc753('0x8'));var querystring=require(_0xc753('0xc'));var Papa=require(_0xc753('0xd'));var Redis=require(_0xc753('0xe'));var authService=require(_0xc753('0xf'));var qs=require(_0xc753('0x10'));var as=require(_0xc753('0x11'));var hardwareService=require(_0xc753('0x12'));var logger=require(_0xc753('0x13'))(_0xc753('0x14'));var utils=require('../../config/utils');var config=require(_0xc753('0x15'));var licenseUtil=require(_0xc753('0x16'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xc753('0x17')](config['redis'],{'host':_0xc753('0x18'),'port':0x18eb});var socket=require(_0xc753('0x19'))(new Redis(config['redis']));require(_0xc753('0x1a'))[_0xc753('0x1b')](socket);function respondWithStatusCode(_0x468aea,_0xa1047c){_0xa1047c=_0xa1047c||0xcc;return function(_0x3ce340){if(_0x3ce340){return _0x468aea['sendStatus'](_0xa1047c);}return _0x468aea['status'](_0xa1047c)[_0xc753('0x1c')]();};}function respondWithResult(_0x1e0d42,_0x3533d4){_0x3533d4=_0x3533d4||0xc8;return function(_0x392bad){if(_0x392bad){return _0x1e0d42[_0xc753('0x1d')](_0x3533d4)[_0xc753('0x1e')](_0x392bad);}};}function respondWithFilteredResult(_0x53a396,_0x3e3301){return function(_0x57d7dd){if(_0x57d7dd){var _0x4fc0ca=typeof _0x3e3301[_0xc753('0x1f')]===_0xc753('0x20')&&typeof _0x3e3301[_0xc753('0x21')]===_0xc753('0x20');var _0x29ee72=_0x57d7dd[_0xc753('0x22')];var _0x45f2bd=_0x4fc0ca?0x0:_0x3e3301['offset'];var _0x5c7de6=_0x4fc0ca?_0x57d7dd['count']:_0x3e3301['offset']+_0x3e3301[_0xc753('0x21')];var _0x305895;if(_0x5c7de6>=_0x29ee72){_0x5c7de6=_0x29ee72;_0x305895=0xc8;}else{_0x305895=0xce;}_0x53a396[_0xc753('0x1d')](_0x305895);return _0x53a396['set'](_0xc753('0x23'),_0x45f2bd+'-'+_0x5c7de6+'/'+_0x29ee72)[_0xc753('0x1e')](_0x57d7dd);}return null;};}function patchUpdates(_0x2d8a3d){return function(_0x5cb06b){try{jsonpatch[_0xc753('0x24')](_0x5cb06b,_0x2d8a3d,!![]);}catch(_0x2d61ae){return BPromise[_0xc753('0x25')](_0x2d61ae);}return _0x5cb06b['save']();};}function saveUpdates(_0x2f6929,_0x495fae){return function(_0x19b3ac){if(_0x19b3ac){return _0x19b3ac['update'](_0x2f6929)[_0xc753('0x26')](function(_0x1dc5ee){return _0x1dc5ee;});}return null;};}function removeEntity(_0x468572,_0x597dd2){return function(_0x2a5347){if(_0x2a5347){return _0x2a5347[_0xc753('0x27')]()[_0xc753('0x26')](function(){_0x468572['status'](0xcc)[_0xc753('0x1c')]();});}};}function handleEntityNotFound(_0x55e1dd,_0x4e18a0){return function(_0xad08fc){if(!_0xad08fc){_0x55e1dd[_0xc753('0x28')](0x194);}return _0xad08fc;};}function handleError(_0x55366e,_0x27e7e2){_0x27e7e2=_0x27e7e2||0x1f4;return function(_0x1e09e0){logger[_0xc753('0x29')](_0x1e09e0[_0xc753('0x2a')]);if(_0x1e09e0[_0xc753('0x2b')]){delete _0x1e09e0[_0xc753('0x2b')];}_0x55366e[_0xc753('0x1d')](_0x27e7e2)[_0xc753('0x2c')](_0x1e09e0);};}exports[_0xc753('0x2d')]=function(_0x45d002,_0x1601f2){var _0xb5e2fd={},_0x1dd638={},_0x177fda={'count':0x0,'rows':[]};var _0x4c79e5=_['map'](db['ChatInternalMessage'][_0xc753('0x2e')],function(_0x118b07){return{'name':_0x118b07[_0xc753('0x2f')],'type':_0x118b07[_0xc753('0x30')][_0xc753('0x31')]};});_0x1dd638['model']=_[_0xc753('0x32')](_0x4c79e5,_0xc753('0x2b'));_0x1dd638[_0xc753('0x33')]=_['keys'](_0x45d002['query']);_0x1dd638[_0xc753('0x34')]=_[_0xc753('0x35')](_0x1dd638['model'],_0x1dd638[_0xc753('0x33')]);_0xb5e2fd[_0xc753('0x36')]=_[_0xc753('0x35')](_0x1dd638[_0xc753('0x37')],qs['fields'](_0x45d002[_0xc753('0x33')]['fields']));_0xb5e2fd['attributes']=_0xb5e2fd[_0xc753('0x36')]['length']?_0xb5e2fd[_0xc753('0x36')]:_0x1dd638[_0xc753('0x37')];if(!_0x45d002[_0xc753('0x33')][_0xc753('0x38')](_0xc753('0x39'))){_0xb5e2fd['limit']=qs[_0xc753('0x21')](_0x45d002[_0xc753('0x33')][_0xc753('0x21')]);_0xb5e2fd['offset']=qs[_0xc753('0x1f')](_0x45d002[_0xc753('0x33')][_0xc753('0x1f')]);}_0xb5e2fd[_0xc753('0x3a')]=qs[_0xc753('0x3b')](_0x45d002[_0xc753('0x33')][_0xc753('0x3b')]);_0xb5e2fd[_0xc753('0x3c')]=qs[_0xc753('0x34')](_[_0xc753('0x3d')](_0x45d002['query'],_0x1dd638['filters']),_0x4c79e5);if(_0x45d002[_0xc753('0x33')]['filter']){_0xb5e2fd['where']=_[_0xc753('0x3e')](_0xb5e2fd[_0xc753('0x3c')],{'$or':_[_0xc753('0x32')](_0x4c79e5,function(_0x207dce){if(_0x207dce[_0xc753('0x30')]!=='VIRTUAL'){var _0x45b3b3={};_0x45b3b3[_0x207dce[_0xc753('0x2b')]]={'$like':'%'+_0x45d002[_0xc753('0x33')]['filter']+'%'};return _0x45b3b3;}})});}_0xb5e2fd=_[_0xc753('0x3e')]({},_0xb5e2fd,_0x45d002[_0xc753('0x3f')]);var _0xf94d0a={'where':_0xb5e2fd[_0xc753('0x3c')]};return db['ChatInternalMessage'][_0xc753('0x22')](_0xf94d0a)[_0xc753('0x26')](function(_0x383cc0){_0x177fda['count']=_0x383cc0;if(_0x45d002[_0xc753('0x33')]['includeAll']){_0xb5e2fd[_0xc753('0x40')]=[{'all':!![]}];}return db['ChatInternalMessage']['findAll'](_0xb5e2fd);})[_0xc753('0x26')](function(_0x15157d){_0x177fda[_0xc753('0x41')]=_0x15157d;return _0x177fda;})[_0xc753('0x26')](respondWithFilteredResult(_0x1601f2,_0xb5e2fd))[_0xc753('0x42')](handleError(_0x1601f2,null));};exports[_0xc753('0x43')]=function(_0x3ba9bd,_0x4c03ab){var _0x4fe084={'raw':!![],'where':{'id':_0x3ba9bd['params']['id']}},_0x1db4d3={};_0x1db4d3['model']=_[_0xc753('0x44')](db[_0xc753('0x45')][_0xc753('0x2e')]);_0x1db4d3[_0xc753('0x33')]=_[_0xc753('0x44')](_0x3ba9bd['query']);_0x1db4d3['filters']=_[_0xc753('0x35')](_0x1db4d3[_0xc753('0x37')],_0x1db4d3[_0xc753('0x33')]);_0x4fe084['attributes']=_[_0xc753('0x35')](_0x1db4d3[_0xc753('0x37')],qs[_0xc753('0x46')](_0x3ba9bd['query'][_0xc753('0x46')]));_0x4fe084[_0xc753('0x36')]=_0x4fe084['attributes'][_0xc753('0x47')]?_0x4fe084['attributes']:_0x1db4d3[_0xc753('0x37')];if(_0x3ba9bd[_0xc753('0x33')]['includeAll']){_0x4fe084[_0xc753('0x40')]=[{'all':!![]}];}_0x4fe084=_['merge']({},_0x4fe084,_0x3ba9bd[_0xc753('0x3f')]);return db[_0xc753('0x45')][_0xc753('0x48')](_0x4fe084)[_0xc753('0x26')](handleEntityNotFound(_0x4c03ab,null))['then'](respondWithResult(_0x4c03ab,null))[_0xc753('0x42')](handleError(_0x4c03ab,null));};exports[_0xc753('0x49')]=function(_0x13e225,_0x242794){return db[_0xc753('0x45')][_0xc753('0x49')](_0x13e225['body'],{})[_0xc753('0x26')](respondWithResult(_0x242794,0xc9))['catch'](handleError(_0x242794,null));};exports[_0xc753('0x4a')]=function(_0x12e307,_0x48cdb5){if(_0x12e307[_0xc753('0x4b')]['id']){delete _0x12e307[_0xc753('0x4b')]['id'];}return db[_0xc753('0x45')][_0xc753('0x48')]({'where':{'id':_0x12e307[_0xc753('0x4c')]['id']}})[_0xc753('0x26')](handleEntityNotFound(_0x48cdb5,null))['then'](saveUpdates(_0x12e307[_0xc753('0x4b')],null))['then'](respondWithResult(_0x48cdb5,null))['catch'](handleError(_0x48cdb5,null));};exports['destroy']=function(_0x4fa83c,_0x4477ef){return db[_0xc753('0x45')][_0xc753('0x48')]({'where':{'id':_0x4fa83c[_0xc753('0x4c')]['id']}})[_0xc753('0x26')](handleEntityNotFound(_0x4477ef,null))[_0xc753('0x26')](removeEntity(_0x4477ef,null))['catch'](handleError(_0x4477ef,null));};exports[_0xc753('0x4d')]=function(_0x2fcdfe,_0x3e5b67){return db[_0xc753('0x45')]['describe']()[_0xc753('0x26')](respondWithResult(_0x3e5b67,null))[_0xc753('0x42')](handleError(_0x3e5b67,null));};function wrapUser(_0x37da57){return function(_0x16fc98){var _0x1bbd1a=_0x37da57[_0xc753('0x4e')]({'plain':!![]});_0x1bbd1a['messages']=[];if(_0x16fc98){_0x1bbd1a[_0xc753('0x4f')]=_0x16fc98[_0xc753('0x50')];_0x1bbd1a[_0xc753('0x51')]=_0x16fc98;}else{_0x1bbd1a[_0xc753('0x4f')]=moment(0x0)['format']('YYYY-MM-DD\x20HH:mm:ss');_0x1bbd1a[_0xc753('0x51')]={};}return _0x1bbd1a;};}exports[_0xc753('0x52')]=function(_0x31746b,_0x5ca144,_0x122aee){var _0x3eefe3=[];return db['User'][_0xc753('0x53')]({'where':{'role':[_0xc753('0x54'),_0xc753('0x55'),_0xc753('0x56')]},'attributes':['id',_0xc753('0x57'),_0xc753('0x2b'),_0xc753('0x58'),_0xc753('0x59'),_0xc753('0x5a'),_0xc753('0x5b'),_0xc753('0x5c'),'allowmessenger',_0xc753('0x5d')],'order':qs[_0xc753('0x3b')]('-online'),'include':[{'model':db[_0xc753('0x5e')],'as':'VoiceQueues','attributes':['id',_0xc753('0x2b'),_0xc753('0x30')],'through':{'attributes':[]}}]})[_0xc753('0x26')](function(_0x51328d){if(_0x51328d){var _0x1afedc=_0x31746b[_0xc753('0x56')][_0xc753('0x4e')]({'plain':!![]});if(!_0x1afedc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1afedc['role']===_0xc753('0x56')){return db[_0xc753('0x5f')][_0xc753('0x48')]({'where':{'name':'Agents','userProfileId':_0x1afedc[_0xc753('0x60')]},'raw':!![]})[_0xc753('0x26')](function(_0x170716){if(_0x170716){if(_0x170716[_0xc753('0x61')]===0x0){return db[_0xc753('0x62')]['findAll']({'where':{'sectionId':_0x170716['id']},'raw':!![]})[_0xc753('0x26')](function(_0x4dc01d){var _0x56ca69=[];if(_['isEmpty'](_0x4dc01d)){_0x56ca69=_[_0xc753('0x63')](_0x51328d,function(_0x13071d){if(_0x13071d[_0xc753('0x58')]!==_0xc753('0x54')){return _0x13071d;}});return _0x56ca69;}else{for(var _0x2af590=0x0;_0x2af590<_0x51328d[_0xc753('0x47')];_0x2af590++){var _0x3e9a02=_0x51328d[_0x2af590];if(_0x3e9a02['role']===_0xc753('0x54')){var _0x5de0aa=_[_0xc753('0x48')](_0x4dc01d,function(_0x21f6f0){return _0x21f6f0[_0xc753('0x64')]===_0x3e9a02['id'];});if(_0x5de0aa)_0x56ca69[_0xc753('0x65')](_0x3e9a02);}else{_0x56ca69['push'](_0x3e9a02);}}return _0x56ca69;}});}else{return _0x51328d;}}else{var _0x44d502=_['filter'](_0x51328d,function(_0x10227a){if(_0x10227a[_0xc753('0x58')]!==_0xc753('0x54')){return _0x10227a;}});return _0x44d502;}});}else{return _0x51328d;}}})['then'](function(_0x5614af){var _0x51a2d9=[];if(_0x5614af){_0x3eefe3=_0x5614af;for(var _0x1696ce=0x0;_0x1696ce<_0x5614af[_0xc753('0x47')];_0x1696ce+=0x1){_0x3eefe3[_0x1696ce][_0xc753('0x66')]=[];_0x51a2d9[_0xc753('0x65')](db[_0xc753('0x45')]['find']({'where':{'FromId':[_0x31746b[_0xc753('0x56')]['id'],_0x5614af[_0x1696ce]['id']],'ToId':[_0x31746b[_0xc753('0x56')]['id'],_0x5614af[_0x1696ce]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0xc753('0x67'),'ToId',_0xc753('0x68'),_0xc753('0x4b')],'order':qs[_0xc753('0x3b')](_0xc753('0x69')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xc753('0x26')](wrapUser(_0x5614af[_0x1696ce])));}return BPromise[_0xc753('0x6a')](_0x51a2d9);}return[];})[_0xc753('0x26')](function(_0x3c3538){return{'rows':_0x3c3538,'count':_0x3c3538[_0xc753('0x47')]};})[_0xc753('0x26')](respondWithResult(_0x5ca144,null))['catch'](handleError(_0x5ca144,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b3d=['exports','events','../../mysqldb','ChatInternalMessage','setMaxListeners','save','remove','emit','hasOwnProperty','hook'];(function(_0x55541f,_0x26bef4){var _0x11c926=function(_0x20c374){while(--_0x20c374){_0x55541f['push'](_0x55541f['shift']());}};_0x11c926(++_0x26bef4);}(_0x5b3d,0xb5));var _0xd5b3=function(_0x3afad3,_0x5266f8){_0x3afad3=_0x3afad3-0x0;var _0x4e55c6=_0x5b3d[_0x3afad3];return _0x4e55c6;};'use strict';var EventEmitter=require(_0xd5b3('0x0'));var ChatInternalMessage=require(_0xd5b3('0x1'))['db'][_0xd5b3('0x2')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0xd5b3('0x3')](0x0);var events={'afterCreate':_0xd5b3('0x4'),'afterUpdate':'update','afterDestroy':_0xd5b3('0x5')};function emitEvent(_0xdb50be){return function(_0xabe01f,_0x4564b1,_0x11f7ef){ChatInternalMessageEvents[_0xd5b3('0x6')](_0xdb50be+':'+_0xabe01f['id'],_0xabe01f);ChatInternalMessageEvents[_0xd5b3('0x6')](_0xdb50be,_0xabe01f);_0x11f7ef(null);};}for(var e in events){if(events[_0xd5b3('0x7')](e)){var event=events[e];ChatInternalMessage[_0xd5b3('0x8')](e,emitEvent(event));}}module[_0xd5b3('0x9')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0x06d7=['emit','hook','exports','events','ChatInternalMessage','setMaxListeners','save','update','remove'];(function(_0x2c535c,_0xd03bf5){var _0x1d75b9=function(_0xb9c294){while(--_0xb9c294){_0x2c535c['push'](_0x2c535c['shift']());}};_0x1d75b9(++_0xd03bf5);}(_0x06d7,0xd2));var _0x706d=function(_0x25a987,_0x34c654){_0x25a987=_0x25a987-0x0;var _0x4224ff=_0x06d7[_0x25a987];return _0x4224ff;};'use strict';var EventEmitter=require(_0x706d('0x0'));var ChatInternalMessage=require('../../mysqldb')['db'][_0x706d('0x1')];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x706d('0x2')](0x0);var events={'afterCreate':_0x706d('0x3'),'afterUpdate':_0x706d('0x4'),'afterDestroy':_0x706d('0x5')};function emitEvent(_0x4e89b2){return function(_0x1f7716,_0xc14603,_0x2b16b7){ChatInternalMessageEvents['emit'](_0x4e89b2+':'+_0x1f7716['id'],_0x1f7716);ChatInternalMessageEvents[_0x706d('0x6')](_0x4e89b2,_0x1f7716);_0x2b16b7(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInternalMessage[_0x706d('0x7')](e,emitEvent(event));}}module[_0x706d('0x8')]=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x414c=['exports','define','chat_internal_messages','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','request-promise','path','../../config/environment'];(function(_0x3c2166,_0x41fc16){var _0x30ccc3=function(_0x689bc3){while(--_0x689bc3){_0x3c2166['push'](_0x3c2166['shift']());}};_0x30ccc3(++_0x41fc16);}(_0x414c,0x160));var _0xc414=function(_0x29d8c5,_0x1f9a7e){_0x29d8c5=_0x29d8c5-0x0;var _0x4b05f9=_0x414c[_0x29d8c5];return _0x4b05f9;};'use strict';var _=require(_0xc414('0x0'));var util=require(_0xc414('0x1'));var logger=require(_0xc414('0x2'))('api');var moment=require(_0xc414('0x3'));var BPromise=require(_0xc414('0x4'));var rp=require(_0xc414('0x5'));var fs=require('fs');var path=require(_0xc414('0x6'));var rimraf=require('rimraf');var config=require(_0xc414('0x7'));var attributes=require('./chatInternalMessage.attributes');module[_0xc414('0x8')]=function(_0x38406f,_0x4682cb){return _0x38406f[_0xc414('0x9')]('ChatInternalMessage',attributes,{'tableName':_0xc414('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xc414('0xb')});};
\ No newline at end of file
+var _0x5200=['utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./chatInternalMessage.attributes','exports','define','chat_internal_messages'];(function(_0x4854d6,_0x2f1264){var _0x3885c0=function(_0x4d564d){while(--_0x4d564d){_0x4854d6['push'](_0x4854d6['shift']());}};_0x3885c0(++_0x2f1264);}(_0x5200,0x179));var _0x0520=function(_0x19c28c,_0x43be59){_0x19c28c=_0x19c28c-0x0;var _0x54553a=_0x5200[_0x19c28c];return _0x54553a;};'use strict';var _=require(_0x0520('0x0'));var util=require(_0x0520('0x1'));var logger=require(_0x0520('0x2'))(_0x0520('0x3'));var moment=require(_0x0520('0x4'));var BPromise=require(_0x0520('0x5'));var rp=require(_0x0520('0x6'));var fs=require('fs');var path=require(_0x0520('0x7'));var rimraf=require(_0x0520('0x8'));var config=require('../../config/environment');var attributes=require(_0x0520('0x9'));module[_0x0520('0xa')]=function(_0x417fc7,_0x194ec6){return _0x417fc7[_0x0520('0xb')]('ChatInternalMessage',attributes,{'tableName':_0x0520('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x0520('0xd'),'collate':_0x0520('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaaea=['ChatInternalMessage,\x20%s,\x20%s','request\x20sent','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','request','then','info'];(function(_0x474357,_0x5dcd57){var _0x589fa4=function(_0x10070c){while(--_0x10070c){_0x474357['push'](_0x474357['shift']());}};_0x589fa4(++_0x5dcd57);}(_0xaaea,0x183));var _0xaaae=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0xaaea[_0x3e5086];return _0xfeb102;};'use strict';var _=require('lodash');var util=require(_0xaaae('0x0'));var moment=require('moment');var BPromise=require(_0xaaae('0x1'));var rs=require(_0xaaae('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xaaae('0x3'));var logger=require(_0xaaae('0x4'))(_0xaaae('0x5'));var config=require(_0xaaae('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xaaae('0x7')][_0xaaae('0x8')]({'port':0x232a});config[_0xaaae('0x9')]=_[_0xaaae('0xa')](config['redis'],{'host':_0xaaae('0xb'),'port':0x18eb});var socket=require(_0xaaae('0xc'))(new Redis(config['redis']));require(_0xaaae('0xd'))[_0xaaae('0xe')](socket);function respondWithRpcPromise(_0x54ec37,_0x9c9301,_0x4646b9){return new BPromise(function(_0xa50766,_0x3805bd){return client[_0xaaae('0xf')](_0x54ec37,_0x4646b9)[_0xaaae('0x10')](function(_0x225794){logger[_0xaaae('0x11')](_0xaaae('0x12'),_0x9c9301,_0xaaae('0x13'));logger['debug'](_0xaaae('0x14'),_0x9c9301,'request\x20sent',JSON[_0xaaae('0x15')](_0x225794));if(_0x225794[_0xaaae('0x16')]){if(_0x225794[_0xaaae('0x16')][_0xaaae('0x17')]===0x1f4){logger[_0xaaae('0x16')]('ChatInternalMessage,\x20%s,\x20%s',_0x9c9301,_0x225794['error']['message']);return _0x3805bd(_0x225794['error'][_0xaaae('0x18')]);}logger[_0xaaae('0x16')](_0xaaae('0x12'),_0x9c9301,_0x225794[_0xaaae('0x16')][_0xaaae('0x18')]);return _0xa50766(_0x225794[_0xaaae('0x16')][_0xaaae('0x18')]);}else{logger[_0xaaae('0x11')]('ChatInternalMessage,\x20%s,\x20%s',_0x9c9301,_0xaaae('0x13'));_0xa50766(_0x225794[_0xaaae('0x19')]['message']);}})[_0xaaae('0x1a')](function(_0x3dd070){logger[_0xaaae('0x16')](_0xaaae('0x12'),_0x9c9301,_0x3dd070);_0x3805bd(_0x3dd070);});});}
\ No newline at end of file
+var _0x7940=['catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','./chatInternalMessage.socket','register','request','then','info','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x7940,0x1ee));var _0x0794=function(_0x598acd,_0x21354a){_0x598acd=_0x598acd-0x0;var _0x241ce4=_0x7940[_0x598acd];return _0x241ce4;};'use strict';var _=require(_0x0794('0x0'));var util=require('util');var moment=require(_0x0794('0x1'));var BPromise=require(_0x0794('0x2'));var rs=require(_0x0794('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0794('0x4'))['db'];var utils=require(_0x0794('0x5'));var logger=require(_0x0794('0x6'))(_0x0794('0x7'));var config=require('../../config/environment');var jayson=require(_0x0794('0x8'));var client=jayson[_0x0794('0x9')][_0x0794('0xa')]({'port':0x232a});config[_0x0794('0xb')]=_[_0x0794('0xc')](config[_0x0794('0xb')],{'host':_0x0794('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x0794('0xe'))[_0x0794('0xf')](socket);function respondWithRpcPromise(_0x15b099,_0x4c6277,_0x231a01){return new BPromise(function(_0x5d3111,_0x4b5d45){return client[_0x0794('0x10')](_0x15b099,_0x231a01)[_0x0794('0x11')](function(_0x37a04a){logger[_0x0794('0x12')](_0x0794('0x13'),_0x4c6277,_0x0794('0x14'));logger[_0x0794('0x15')](_0x0794('0x16'),_0x4c6277,_0x0794('0x14'),JSON[_0x0794('0x17')](_0x37a04a));if(_0x37a04a['error']){if(_0x37a04a[_0x0794('0x18')][_0x0794('0x19')]===0x1f4){logger[_0x0794('0x18')](_0x0794('0x13'),_0x4c6277,_0x37a04a[_0x0794('0x18')][_0x0794('0x1a')]);return _0x4b5d45(_0x37a04a['error'][_0x0794('0x1a')]);}logger['error'](_0x0794('0x13'),_0x4c6277,_0x37a04a[_0x0794('0x18')]['message']);return _0x5d3111(_0x37a04a[_0x0794('0x18')][_0x0794('0x1a')]);}else{logger[_0x0794('0x12')](_0x0794('0x13'),_0x4c6277,_0x0794('0x14'));_0x5d3111(_0x37a04a[_0x0794('0x1b')]['message']);}})[_0x0794('0x1c')](function(_0x3502e4){logger['error']('ChatInternalMessage,\x20%s,\x20%s',_0x4c6277,_0x3502e4);_0x4b5d45(_0x3502e4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcf7=['register','length','chatInternalMessage:','remove','update','emit','removeListener'];(function(_0x4e8b10,_0xf8fe7e){var _0xe256d8=function(_0x245c11){while(--_0x245c11){_0x4e8b10['push'](_0x4e8b10['shift']());}};_0xe256d8(++_0xf8fe7e);}(_0xbcf7,0x10d));var _0x7bcf=function(_0x20e9be,_0xcd0346){_0x20e9be=_0x20e9be-0x0;var _0x5070da=_0xbcf7[_0x20e9be];return _0x5070da;};'use strict';var ChatInternalMessageEvents=require('./chatInternalMessage.events');var events=['save',_0x7bcf('0x0'),_0x7bcf('0x1')];function createListener(_0x5ba52f,_0x4e18c5){return function(_0x25906e){_0x4e18c5[_0x7bcf('0x2')](_0x5ba52f,_0x25906e);};}function removeListener(_0x3c4125,_0x468bdf){return function(){ChatInternalMessageEvents[_0x7bcf('0x3')](_0x3c4125,_0x468bdf);};}exports[_0x7bcf('0x4')]=function(_0x3e527e){for(var _0x13fdc4=0x0,_0x34102b=events[_0x7bcf('0x5')];_0x13fdc4<_0x34102b;_0x13fdc4++){var _0x41e772=events[_0x13fdc4];var _0x5358fb=createListener(_0x7bcf('0x6')+_0x41e772,_0x3e527e);ChatInternalMessageEvents['on'](_0x41e772,_0x5358fb);}};
\ No newline at end of file
+var _0xc7db=['register','length','chatInternalMessage:','./chatInternalMessage.events','save','remove','update','emit'];(function(_0x3ffed5,_0x438a10){var _0x3f74ae=function(_0x2af291){while(--_0x2af291){_0x3ffed5['push'](_0x3ffed5['shift']());}};_0x3f74ae(++_0x438a10);}(_0xc7db,0xeb));var _0xbc7d=function(_0x15f43a,_0x57c8b5){_0x15f43a=_0x15f43a-0x0;var _0x2369bc=_0xc7db[_0x15f43a];return _0x2369bc;};'use strict';var ChatInternalMessageEvents=require(_0xbc7d('0x0'));var events=[_0xbc7d('0x1'),_0xbc7d('0x2'),_0xbc7d('0x3')];function createListener(_0x4ccfe2,_0x1b1017){return function(_0x4fad4a){_0x1b1017[_0xbc7d('0x4')](_0x4ccfe2,_0x4fad4a);};}function removeListener(_0x38b470,_0x3914bc){return function(){ChatInternalMessageEvents['removeListener'](_0x38b470,_0x3914bc);};}exports[_0xbc7d('0x5')]=function(_0x1057d7){for(var _0x1efdfc=0x0,_0x48bdce=events[_0xbc7d('0x6')];_0x1efdfc<_0x48bdce;_0x1efdfc++){var _0x318b8b=events[_0x1efdfc];var _0x188f18=createListener(_0xbc7d('0x7')+_0x318b8b,_0x1057d7);ChatInternalMessageEvents['on'](_0x318b8b,_0x188f18);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe42c=['getUsers','/:id','show','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./chatInternalMessage.controller','get','isAuthenticated','index','/describe','describe','/users'];(function(_0x22272a,_0x58d622){var _0x133a13=function(_0x16bf92){while(--_0x16bf92){_0x22272a['push'](_0x22272a['shift']());}};_0x133a13(++_0x58d622);}(_0xe42c,0x149));var _0xce42=function(_0x30f2b9,_0x5dcea8){_0x30f2b9=_0x30f2b9-0x0;var _0x20462e=_0xe42c[_0x30f2b9];return _0x20462e;};'use strict';var multer=require(_0xce42('0x0'));var util=require(_0xce42('0x1'));var path=require(_0xce42('0x2'));var timeout=require(_0xce42('0x3'));var express=require(_0xce42('0x4'));var router=express[_0xce42('0x5')]();var fs_extra=require(_0xce42('0x6'));var auth=require(_0xce42('0x7'));var interaction=require(_0xce42('0x8'));var config=require('../../config/environment');var controller=require(_0xce42('0x9'));router[_0xce42('0xa')]('/',auth[_0xce42('0xb')](),controller[_0xce42('0xc')]);router[_0xce42('0xa')](_0xce42('0xd'),auth[_0xce42('0xb')](),controller[_0xce42('0xe')]);router[_0xce42('0xa')](_0xce42('0xf'),auth[_0xce42('0xb')](),controller[_0xce42('0x10')]);router[_0xce42('0xa')](_0xce42('0x11'),auth[_0xce42('0xb')](),controller[_0xce42('0x12')]);router['post']('/',auth[_0xce42('0xb')](),controller['create']);router[_0xce42('0x13')]('/:id',controller[_0xce42('0x14')]);router[_0xce42('0x15')]('/:id',auth[_0xce42('0xb')](),controller[_0xce42('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0x0d12=['fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','/describe','describe','/:id','create','put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router'];(function(_0x560075,_0x4dd168){var _0x267e05=function(_0x5abddf){while(--_0x5abddf){_0x560075['push'](_0x560075['shift']());}};_0x267e05(++_0x4dd168);}(_0x0d12,0x1b0));var _0x20d1=function(_0x251c50,_0xcccb22){_0x251c50=_0x251c50-0x0;var _0x296a87=_0x0d12[_0x251c50];return _0x296a87;};'use strict';var multer=require(_0x20d1('0x0'));var util=require(_0x20d1('0x1'));var path=require('path');var timeout=require(_0x20d1('0x2'));var express=require(_0x20d1('0x3'));var router=express[_0x20d1('0x4')]();var fs_extra=require(_0x20d1('0x5'));var auth=require(_0x20d1('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x20d1('0x7'));var controller=require('./chatInternalMessage.controller');router[_0x20d1('0x8')]('/',auth[_0x20d1('0x9')](),controller['index']);router[_0x20d1('0x8')](_0x20d1('0xa'),auth['isAuthenticated'](),controller[_0x20d1('0xb')]);router[_0x20d1('0x8')]('/users',auth['isAuthenticated'](),controller['getUsers']);router[_0x20d1('0x8')](_0x20d1('0xc'),auth[_0x20d1('0x9')](),controller['show']);router['post']('/',auth[_0x20d1('0x9')](),controller[_0x20d1('0xd')]);router[_0x20d1('0xe')]('/:id',controller[_0x20d1('0xf')]);router[_0x20d1('0x10')](_0x20d1('0xc'),auth['isAuthenticated'](),controller[_0x20d1('0x11')]);module[_0x20d1('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x777d=['TEXT','medium','BOOLEAN','ENUM','STRING','exports'];(function(_0xd22d95,_0xc59f8f){var _0x15d7a3=function(_0x3db95c){while(--_0x3db95c){_0xd22d95['push'](_0xd22d95['shift']());}};_0x15d7a3(++_0xc59f8f);}(_0x777d,0xe9));var _0xd777=function(_0x1c1509,_0x2dfa81){_0x1c1509=_0x1c1509-0x0;var _0xf11b7=_0x777d[_0x1c1509];return _0xf11b7;};'use strict';var Sequelize=require('sequelize');module[_0xd777('0x0')]={'body':{'type':Sequelize[_0xd777('0x1')](_0xd777('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize[_0xd777('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xd777('0x4')]('in','out'),'defaultValue':'out','allowNull':![]},'readAt':{'type':Sequelize['DATE']},'providerName':{'type':Sequelize[_0xd777('0x5')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x15b8=['DATE','STRING','exports','TEXT','medium','BOOLEAN','out'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x15b8,0xcd));var _0x815b=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x15b8[_0x4b369d];return _0x571a98;};'use strict';var Sequelize=require('sequelize');module[_0x815b('0x0')]={'body':{'type':Sequelize[_0x815b('0x1')](_0x815b('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x815b('0x3')],'defaultValue':![]},'secret':{'type':Sequelize[_0x815b('0x3')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x815b('0x4')),'defaultValue':_0x815b('0x4'),'allowNull':![]},'readAt':{'type':Sequelize[_0x815b('0x5')]},'providerName':{'type':Sequelize[_0x815b('0x6')]},'providerResponse':{'type':Sequelize[_0x815b('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd496=['moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost','./chatMessage.socket','register','jayson/promise','client','http','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','catch','sendStatus','status','end','json','limit','count','set','apply','reject','save','update','destroy','stack','name','send','index','map','ChatMessage','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','nolimit','offset','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','params','rawAttributes','length','find','create','body','describe','chat-interactions','chat','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','ChatInteraction','ChatInteractionId','isNil','read1stAt','interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','QueryTypes','SELECT','User','fullname','email','internal','manual','interface','format','SIP/%s','channel','motionChannel','event','accept','EventManager','parse','formData','null','RejectMessage','rejectMessage','sequelize','contact','rejectmessage','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x231b2e,_0x2a33f9){var _0x3feb2a=function(_0x5aa472){while(--_0x5aa472){_0x231b2e['push'](_0x231b2e['shift']());}};_0x3feb2a(++_0x2a33f9);}(_0xd496,0x196));var _0x6d49=function(_0x34bf97,_0xc60f9d){_0x34bf97=_0x34bf97-0x0;var _0x292719=_0xd496[_0x34bf97];return _0x292719;};'use strict';var emlformat=require(_0x6d49('0x0'));var rimraf=require(_0x6d49('0x1'));var zipdir=require(_0x6d49('0x2'));var jsonpatch=require(_0x6d49('0x3'));var rp=require(_0x6d49('0x4'));var moment=require(_0x6d49('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x6d49('0x6'));var util=require(_0x6d49('0x7'));var path=require(_0x6d49('0x8'));var sox=require(_0x6d49('0x9'));var csv=require(_0x6d49('0xa'));var ejs=require(_0x6d49('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6d49('0xc'));var squel=require(_0x6d49('0xd'));var crypto=require(_0x6d49('0xe'));var jsforce=require(_0x6d49('0xf'));var deskjs=require(_0x6d49('0x10'));var toCsv=require(_0x6d49('0xa'));var querystring=require(_0x6d49('0x11'));var Papa=require(_0x6d49('0x12'));var Redis=require(_0x6d49('0x13'));var authService=require(_0x6d49('0x14'));var qs=require(_0x6d49('0x15'));var as=require(_0x6d49('0x16'));var hardwareService=require(_0x6d49('0x17'));var logger=require(_0x6d49('0x18'))(_0x6d49('0x19'));var utils=require('../../config/utils');var config=require(_0x6d49('0x1a'));var licenseUtil=require(_0x6d49('0x1b'));var db=require('../../mysqldb')['db'];config[_0x6d49('0x1c')]=_[_0x6d49('0x1d')](config['redis'],{'host':_0x6d49('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x6d49('0x1f'))[_0x6d49('0x20')](socket);var jayson=require(_0x6d49('0x21'));var client=jayson[_0x6d49('0x22')][_0x6d49('0x23')]({'port':0x232c});var client9002=jayson[_0x6d49('0x22')][_0x6d49('0x23')]({'port':0x232a});function respondWithRpcPromise(_0x4a9d23,_0x6d9cab,_0x4adffb,_0xcf931d){return new BPromise(function(_0xf76b7b,_0x3d7143){var _0x3ffb1a=_0xcf931d||client;return _0x3ffb1a['request'](_0x4a9d23,_0x4adffb)[_0x6d49('0x24')](function(_0x627ac3){logger[_0x6d49('0x25')](_0x6d49('0x26'),_0x6d9cab,_0x6d49('0x27'));logger['debug']('ChatMessage,\x20%s,\x20%s,\x20%s',_0x6d9cab,_0x6d49('0x27'),JSON[_0x6d49('0x28')](_0x627ac3));if(_0x627ac3['error']){if(_0x627ac3['error'][_0x6d49('0x29')]===0x1f4){logger[_0x6d49('0x2a')](_0x6d49('0x26'),_0x6d9cab,_0x627ac3[_0x6d49('0x2a')]['message']);return _0x3d7143(_0x627ac3[_0x6d49('0x2a')]['message']);}logger[_0x6d49('0x2a')](_0x6d49('0x26'),_0x6d9cab,_0x627ac3[_0x6d49('0x2a')][_0x6d49('0x2b')]);return _0xf76b7b(_0x627ac3[_0x6d49('0x2a')][_0x6d49('0x2b')]);}else{logger[_0x6d49('0x25')](_0x6d49('0x26'),_0x6d9cab,_0x6d49('0x27'));_0xf76b7b(_0x627ac3['result'][_0x6d49('0x2b')]);}})[_0x6d49('0x2c')](function(_0x4c32ae){logger[_0x6d49('0x2a')](_0x6d49('0x26'),_0x6d9cab,_0x4c32ae);_0x3d7143(_0x4c32ae);});});}function respondWithStatusCode(_0x26f86c,_0x48e950){_0x48e950=_0x48e950||0xcc;return function(_0x244852){if(_0x244852){return _0x26f86c[_0x6d49('0x2d')](_0x48e950);}return _0x26f86c[_0x6d49('0x2e')](_0x48e950)[_0x6d49('0x2f')]();};}function respondWithResult(_0x19533a,_0x343e30){_0x343e30=_0x343e30||0xc8;return function(_0x1cefdc){if(_0x1cefdc){return _0x19533a[_0x6d49('0x2e')](_0x343e30)[_0x6d49('0x30')](_0x1cefdc);}};}function respondWithFilteredResult(_0x24df05,_0x567b2b){return function(_0xbe4d74){if(_0xbe4d74){var _0x485bbe=typeof _0x567b2b['offset']==='undefined'&&typeof _0x567b2b[_0x6d49('0x31')]==='undefined';var _0xf2e6fd=_0xbe4d74[_0x6d49('0x32')];var _0x552788=_0x485bbe?0x0:_0x567b2b['offset'];var _0x49cde2=_0x485bbe?_0xbe4d74['count']:_0x567b2b['offset']+_0x567b2b[_0x6d49('0x31')];var _0x38a276;if(_0x49cde2>=_0xf2e6fd){_0x49cde2=_0xf2e6fd;_0x38a276=0xc8;}else{_0x38a276=0xce;}_0x24df05['status'](_0x38a276);return _0x24df05[_0x6d49('0x33')]('Content-Range',_0x552788+'-'+_0x49cde2+'/'+_0xf2e6fd)['json'](_0xbe4d74);}return null;};}function patchUpdates(_0x477fcc){return function(_0x3a51b1){try{jsonpatch[_0x6d49('0x34')](_0x3a51b1,_0x477fcc,!![]);}catch(_0x516258){return BPromise[_0x6d49('0x35')](_0x516258);}return _0x3a51b1[_0x6d49('0x36')]();};}function saveUpdates(_0x1f6ba1,_0xa86f28){return function(_0x4d3d69){if(_0x4d3d69){return _0x4d3d69[_0x6d49('0x37')](_0x1f6ba1)[_0x6d49('0x24')](function(_0x431ee9){return _0x431ee9;});}return null;};}function removeEntity(_0x21a151,_0x2e8bb9){return function(_0x1c004b){if(_0x1c004b){return _0x1c004b[_0x6d49('0x38')]()[_0x6d49('0x24')](function(){_0x21a151[_0x6d49('0x2e')](0xcc)[_0x6d49('0x2f')]();});}};}function handleEntityNotFound(_0x4b5ab2,_0x4b19dd){return function(_0x5d2442){if(!_0x5d2442){_0x4b5ab2['sendStatus'](0x194);}return _0x5d2442;};}function handleError(_0x5715a8,_0x3917b3){_0x3917b3=_0x3917b3||0x1f4;return function(_0x574f71){logger[_0x6d49('0x2a')](_0x574f71[_0x6d49('0x39')]);if(_0x574f71[_0x6d49('0x3a')]){delete _0x574f71[_0x6d49('0x3a')];}_0x5715a8[_0x6d49('0x2e')](_0x3917b3)[_0x6d49('0x3b')](_0x574f71);};}exports[_0x6d49('0x3c')]=function(_0x37a016,_0x317c69){var _0x493ce3={},_0xd1eaff={},_0x13a69b={'count':0x0,'rows':[]};var _0x486bf1=_[_0x6d49('0x3d')](db[_0x6d49('0x3e')]['rawAttributes'],function(_0x1a9a4f){return{'name':_0x1a9a4f[_0x6d49('0x3f')],'type':_0x1a9a4f[_0x6d49('0x40')][_0x6d49('0x41')]};});_0xd1eaff[_0x6d49('0x42')]=_[_0x6d49('0x3d')](_0x486bf1,_0x6d49('0x3a'));_0xd1eaff[_0x6d49('0x43')]=_[_0x6d49('0x44')](_0x37a016[_0x6d49('0x43')]);_0xd1eaff[_0x6d49('0x45')]=_['intersection'](_0xd1eaff[_0x6d49('0x42')],_0xd1eaff[_0x6d49('0x43')]);_0x493ce3[_0x6d49('0x46')]=_[_0x6d49('0x47')](_0xd1eaff[_0x6d49('0x42')],qs[_0x6d49('0x48')](_0x37a016[_0x6d49('0x43')][_0x6d49('0x48')]));_0x493ce3[_0x6d49('0x46')]=_0x493ce3[_0x6d49('0x46')]['length']?_0x493ce3[_0x6d49('0x46')]:_0xd1eaff[_0x6d49('0x42')];if(!_0x37a016[_0x6d49('0x43')][_0x6d49('0x49')](_0x6d49('0x4a'))){_0x493ce3['limit']=qs[_0x6d49('0x31')](_0x37a016[_0x6d49('0x43')][_0x6d49('0x31')]);_0x493ce3[_0x6d49('0x4b')]=qs[_0x6d49('0x4b')](_0x37a016[_0x6d49('0x43')][_0x6d49('0x4b')]);}_0x493ce3[_0x6d49('0x4c')]=qs[_0x6d49('0x4d')](_0x37a016[_0x6d49('0x43')][_0x6d49('0x4d')]);_0x493ce3[_0x6d49('0x4e')]=qs[_0x6d49('0x45')](_[_0x6d49('0x4f')](_0x37a016[_0x6d49('0x43')],_0xd1eaff[_0x6d49('0x45')]),_0x486bf1);if(_0x37a016[_0x6d49('0x43')][_0x6d49('0x50')]){_0x493ce3[_0x6d49('0x4e')]=_['merge'](_0x493ce3['where'],{'$or':_[_0x6d49('0x3d')](_0x486bf1,function(_0x15b264){if(_0x15b264[_0x6d49('0x40')]!=='VIRTUAL'){var _0x5362c5={};_0x5362c5[_0x15b264[_0x6d49('0x3a')]]={'$like':'%'+_0x37a016[_0x6d49('0x43')]['filter']+'%'};return _0x5362c5;}})});}_0x493ce3=_[_0x6d49('0x51')]({},_0x493ce3,_0x37a016[_0x6d49('0x52')]);var _0x245273={'where':_0x493ce3[_0x6d49('0x4e')]};return db['ChatMessage'][_0x6d49('0x32')](_0x245273)[_0x6d49('0x24')](function(_0x3be1d7){_0x13a69b[_0x6d49('0x32')]=_0x3be1d7;if(_0x37a016[_0x6d49('0x43')][_0x6d49('0x53')]){_0x493ce3[_0x6d49('0x54')]=[{'all':!![]}];}return db[_0x6d49('0x3e')][_0x6d49('0x55')](_0x493ce3);})[_0x6d49('0x24')](function(_0x41a43f){_0x13a69b[_0x6d49('0x56')]=_0x41a43f;return _0x13a69b;})[_0x6d49('0x24')](respondWithFilteredResult(_0x317c69,_0x493ce3))[_0x6d49('0x2c')](handleError(_0x317c69,null));};exports['show']=function(_0x13fcfc,_0x3684d){var _0x4f5999={'raw':!![],'where':{'id':_0x13fcfc[_0x6d49('0x57')]['id']}},_0x1e39cb={};_0x1e39cb[_0x6d49('0x42')]=_[_0x6d49('0x44')](db[_0x6d49('0x3e')][_0x6d49('0x58')]);_0x1e39cb[_0x6d49('0x43')]=_['keys'](_0x13fcfc[_0x6d49('0x43')]);_0x1e39cb[_0x6d49('0x45')]=_['intersection'](_0x1e39cb[_0x6d49('0x42')],_0x1e39cb['query']);_0x4f5999['attributes']=_['intersection'](_0x1e39cb[_0x6d49('0x42')],qs['fields'](_0x13fcfc[_0x6d49('0x43')][_0x6d49('0x48')]));_0x4f5999[_0x6d49('0x46')]=_0x4f5999[_0x6d49('0x46')][_0x6d49('0x59')]?_0x4f5999[_0x6d49('0x46')]:_0x1e39cb[_0x6d49('0x42')];if(_0x13fcfc['query'][_0x6d49('0x53')]){_0x4f5999[_0x6d49('0x54')]=[{'all':!![]}];}_0x4f5999=_[_0x6d49('0x51')]({},_0x4f5999,_0x13fcfc['options']);return db[_0x6d49('0x3e')][_0x6d49('0x5a')](_0x4f5999)[_0x6d49('0x24')](handleEntityNotFound(_0x3684d,null))['then'](respondWithResult(_0x3684d,null))[_0x6d49('0x2c')](handleError(_0x3684d,null));};exports['create']=function(_0x142f6b,_0xa6e2a1){return db[_0x6d49('0x3e')][_0x6d49('0x5b')](_0x142f6b[_0x6d49('0x5c')],{})[_0x6d49('0x24')](respondWithResult(_0xa6e2a1,0xc9))[_0x6d49('0x2c')](handleError(_0xa6e2a1,null));};exports[_0x6d49('0x37')]=function(_0x184c00,_0x524060){if(_0x184c00[_0x6d49('0x5c')]['id']){delete _0x184c00[_0x6d49('0x5c')]['id'];}return db[_0x6d49('0x3e')][_0x6d49('0x5a')]({'where':{'id':_0x184c00['params']['id']}})[_0x6d49('0x24')](handleEntityNotFound(_0x524060,null))['then'](saveUpdates(_0x184c00['body'],null))[_0x6d49('0x24')](respondWithResult(_0x524060,null))[_0x6d49('0x2c')](handleError(_0x524060,null));};exports['destroy']=function(_0x2205b2,_0x1e6073){return db[_0x6d49('0x3e')]['find']({'where':{'id':_0x2205b2[_0x6d49('0x57')]['id']}})[_0x6d49('0x24')](handleEntityNotFound(_0x1e6073,null))['then'](removeEntity(_0x1e6073,null))[_0x6d49('0x2c')](handleError(_0x1e6073,null));};exports[_0x6d49('0x5d')]=function(_0x1b4816,_0x3c77d0){return db[_0x6d49('0x3e')][_0x6d49('0x5d')]()[_0x6d49('0x24')](respondWithResult(_0x3c77d0,null))[_0x6d49('0x2c')](handleError(_0x3c77d0,null));};var interaction_log=require(_0x6d49('0x18'))(_0x6d49('0x5e'));exports['accept']=function(_0x755d42,_0x1e79cd,_0x2e1aeb){var _0x4e9bed={'agent':{},'channel':_0x6d49('0x5f')};if(_0x755d42[_0x6d49('0x5c')]['id']){delete _0x755d42[_0x6d49('0x5c')]['id'];}_0x755d42[_0x6d49('0x5c')][_0x6d49('0x60')]=!![];_0x755d42[_0x6d49('0x5c')][_0x6d49('0x61')]=moment()['format'](_0x6d49('0x62'));_0x755d42[_0x6d49('0x5c')]['UserId']=_0x755d42[_0x6d49('0x5c')][_0x6d49('0x63')]||_0x755d42[_0x6d49('0x64')]['id'];_0x4e9bed[_0x6d49('0x65')]['id']=_0x755d42['body'][_0x6d49('0x63')];return db[_0x6d49('0x3e')][_0x6d49('0x5a')]({'where':{'id':_0x755d42[_0x6d49('0x57')]['id'],'UserId':null}})[_0x6d49('0x24')](handleEntityNotFound(_0x1e79cd,null))['then'](saveUpdates(_0x755d42[_0x6d49('0x5c')],null))[_0x6d49('0x24')](function(_0x3d530b){if(_0x3d530b){_0x4e9bed[_0x6d49('0x2b')]=_0x3d530b[_0x6d49('0x66')]({'plain':!![]});return db[_0x6d49('0x67')][_0x6d49('0x5a')]({'where':{'id':_0x3d530b[_0x6d49('0x68')]}});}return null;})[_0x6d49('0x24')](handleEntityNotFound(_0x1e79cd,null))[_0x6d49('0x24')](function(_0x1939b5){if(_0x1939b5){return _0x1939b5[_0x6d49('0x37')]({'UserId':_0x755d42[_0x6d49('0x5c')][_0x6d49('0x63')],'read1stAt':_[_0x6d49('0x69')](_0x1939b5[_0x6d49('0x6a')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})['then'](function(_0x1281dc){if(_0x1281dc){_0x4e9bed[_0x6d49('0x6b')]=_0x1281dc['get']({'plain':!![]});interaction_log[_0x6d49('0x25')](_0x6d49('0x6c'),_0x755d42[_0x6d49('0x64')]['id'],_0x755d42[_0x6d49('0x64')]['name'],_0x755d42[_0x6d49('0x64')][_0x6d49('0x6d')],_0x4e9bed[_0x6d49('0x6b')]['id'],_0x755d42[_0x6d49('0x5c')]?JSON[_0x6d49('0x28')](_0x755d42[_0x6d49('0x5c')]):'null');return respondWithRpcPromise(_0x6d49('0x6e'),_0x6d49('0x6f'),_0x4e9bed);}return null;})['then'](function(_0xd4c6b5){var _0x376536=_0x6d49('0x70')+_0xd4c6b5[_0x6d49('0x2b')][_0x6d49('0x71')];return db['sequelize'][_0x6d49('0x43')](_0x376536,{'type':db['Sequelize'][_0x6d49('0x72')][_0x6d49('0x73')],'raw':!![]})['then'](function(_0x253621){return _0x253621;});})[_0x6d49('0x24')](function(_0x1cbd7e){if(_0x1cbd7e){_0x4e9bed['message']['contact']=_0x1cbd7e[0x0];if(!_0x755d42[_0x6d49('0x5c')]['UserId'])return;return db[_0x6d49('0x74')][_0x6d49('0x5a')]({'where':{'id':_0x755d42[_0x6d49('0x5c')][_0x6d49('0x63')],'role':_0x6d49('0x65')},'attributes':['id',_0x6d49('0x3a'),_0x6d49('0x75'),_0x6d49('0x76'),_0x6d49('0x77')],'raw':!![]});}return null;})['then'](function(_0x1b402){if(!_0x1b402)return null;_0x4e9bed[_0x6d49('0x2b')]['agent']=_0x1b402;return _0x4e9bed;})[_0x6d49('0x24')](function(_0x5a0e75){if(_0x5a0e75){if(_0x755d42[_0x6d49('0x5c')][_0x6d49('0x78')]){_0x4e9bed[_0x6d49('0x2b')][_0x6d49('0x79')]=util[_0x6d49('0x7a')](_0x6d49('0x7b'),_0x755d42[_0x6d49('0x64')][_0x6d49('0x3a')]);_0x4e9bed[_0x6d49('0x2b')][_0x6d49('0x7c')]=_0x4e9bed[_0x6d49('0x7c')];_0x4e9bed[_0x6d49('0x2b')][_0x6d49('0x7d')]=_0x4e9bed['channel'];_0x4e9bed[_0x6d49('0x2b')][_0x6d49('0x7e')]=_0x6d49('0x7f');return respondWithRpcPromise(_0x6d49('0x80'),_0x6d49('0x80'),{'event':'acceptmessage','message':_[_0x6d49('0x51')](_0x4e9bed[_0x6d49('0x2b')],JSON[_0x6d49('0x81')](_0x4e9bed[_0x6d49('0x6b')][_0x6d49('0x82')]))},client9002)[_0x6d49('0x24')](function(){return _0x4e9bed;});}return _0x4e9bed;}return null;})[_0x6d49('0x24')](respondWithResult(_0x1e79cd,null))[_0x6d49('0x2c')](handleError(_0x1e79cd,null));};var interaction_log=require(_0x6d49('0x18'))(_0x6d49('0x5e'));exports[_0x6d49('0x35')]=function(_0x4575ca,_0x2e52df,_0x319224){var _0x292470={'agent':{},'channel':_0x6d49('0x5f')};if(_0x4575ca[_0x6d49('0x5c')]['id']){delete _0x4575ca[_0x6d49('0x5c')]['id'];}_0x4575ca[_0x6d49('0x5c')][_0x6d49('0x63')]=_0x4575ca[_0x6d49('0x5c')][_0x6d49('0x63')]||_0x4575ca['user']['id'];_0x292470[_0x6d49('0x65')]['id']=_0x4575ca['body'][_0x6d49('0x63')];return db[_0x6d49('0x3e')][_0x6d49('0x5a')]({'where':{'id':_0x4575ca[_0x6d49('0x57')]['id'],'UserId':null}})[_0x6d49('0x24')](handleEntityNotFound(_0x2e52df,null))['then'](function(_0x406ea6){if(_0x406ea6){_0x292470[_0x6d49('0x2b')]=_0x406ea6['get']({'plain':!![]});return db[_0x6d49('0x67')][_0x6d49('0x5a')]({'where':{'id':_0x406ea6[_0x6d49('0x68')]}});}return null;})[_0x6d49('0x24')](handleEntityNotFound(_0x2e52df,null))['then'](function(_0x4290da){if(_0x4290da){_0x292470[_0x6d49('0x6b')]=_0x4290da[_0x6d49('0x66')]({'plain':!![]});interaction_log[_0x6d49('0x25')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4575ca[_0x6d49('0x64')]['id'],_0x4575ca[_0x6d49('0x64')]['name'],_0x4575ca[_0x6d49('0x64')]['role'],_0x292470[_0x6d49('0x6b')]['id'],_0x4575ca[_0x6d49('0x5c')]?JSON[_0x6d49('0x28')](_0x4575ca[_0x6d49('0x5c')]):_0x6d49('0x83'));return respondWithRpcPromise(_0x6d49('0x84'),_0x6d49('0x85'),_0x292470);}return null;})['then'](function(_0x3d9150){var _0x28a829=_0x6d49('0x70')+_0x3d9150['message']['ContactId'];return db[_0x6d49('0x86')][_0x6d49('0x43')](_0x28a829,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]})[_0x6d49('0x24')](function(_0x2e76cc){return _0x2e76cc;});})[_0x6d49('0x24')](function(_0x1ee576){if(_0x1ee576){_0x292470['message'][_0x6d49('0x87')]=_0x1ee576[0x0];if(!_0x4575ca['body'][_0x6d49('0x63')])return;return db['User'][_0x6d49('0x5a')]({'where':{'id':_0x4575ca['body'][_0x6d49('0x63')],'role':_0x6d49('0x65')},'attributes':['id',_0x6d49('0x3a'),_0x6d49('0x75'),'email',_0x6d49('0x77')],'raw':!![]});}return null;})['then'](function(_0x4afbc8){if(!_0x4afbc8)return null;_0x292470['message'][_0x6d49('0x65')]=_0x4afbc8;return _0x292470;})['then'](function(_0x43d791){if(_0x43d791){_0x43d791[_0x6d49('0x2b')][_0x6d49('0x79')]=util[_0x6d49('0x7a')](_0x6d49('0x7b'),_0x4575ca['user'][_0x6d49('0x3a')]);_0x43d791['message'][_0x6d49('0x7c')]=_0x292470[_0x6d49('0x7c')];_0x43d791[_0x6d49('0x2b')][_0x6d49('0x7d')]=_0x292470[_0x6d49('0x7c')];_0x43d791[_0x6d49('0x2b')]['event']=_0x6d49('0x35');respondWithRpcPromise(_0x6d49('0x80'),_0x6d49('0x80'),{'event':_0x6d49('0x88'),'message':_[_0x6d49('0x51')](_0x292470[_0x6d49('0x2b')],JSON[_0x6d49('0x81')](_0x292470[_0x6d49('0x6b')][_0x6d49('0x82')]))},client9002);return _0x292470;}return null;})[_0x6d49('0x24')](respondWithResult(_0x2e52df,null))[_0x6d49('0x2c')](handleError(_0x2e52df,null));};
\ No newline at end of file
+var _0xa9e0=['interaction','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','contact','email','internal','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','parse','formData','chat-interactions','chat','ChatInteraction','RejectMessage','rejectMessage','Sequelize','QueryTypes','SELECT','fullname','rejectmessage','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','redis','defaults','localhost','./chatMessage.socket','register','jayson/promise','client','http','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','destroy','stack','name','send','map','ChatMessage','fieldName','type','keys','query','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','body','find','describe','../../config/logger','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','ChatInteractionId','isNil','read1stAt','format'];(function(_0x1f11ce,_0x11e8e4){var _0x5dd9f7=function(_0x2d64e1){while(--_0x2d64e1){_0x1f11ce['push'](_0x1f11ce['shift']());}};_0x5dd9f7(++_0x11e8e4);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0xa9e0[_0x9aada2];return _0x196dff;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));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 authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];config[_0x0a9e('0x15')]=_[_0x0a9e('0x16')](config[_0x0a9e('0x15')],{'host':_0x0a9e('0x17'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x15')]));require(_0x0a9e('0x18'))[_0x0a9e('0x19')](socket);var jayson=require(_0x0a9e('0x1a'));var client=jayson[_0x0a9e('0x1b')][_0x0a9e('0x1c')]({'port':0x232c});var client9002=jayson['client'][_0x0a9e('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x5d0880,_0x1985b6,_0x519dfd,_0x16033c){return new BPromise(function(_0x12066b,_0x48f32d){var _0x225616=_0x16033c||client;return _0x225616['request'](_0x5d0880,_0x519dfd)[_0x0a9e('0x1d')](function(_0x478723){logger[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x1985b6,_0x0a9e('0x20'));logger[_0x0a9e('0x21')](_0x0a9e('0x22'),_0x1985b6,_0x0a9e('0x20'),JSON[_0x0a9e('0x23')](_0x478723));if(_0x478723[_0x0a9e('0x24')]){if(_0x478723[_0x0a9e('0x24')][_0x0a9e('0x25')]===0x1f4){logger['error'](_0x0a9e('0x1f'),_0x1985b6,_0x478723[_0x0a9e('0x24')]['message']);return _0x48f32d(_0x478723[_0x0a9e('0x24')]['message']);}logger['error'](_0x0a9e('0x1f'),_0x1985b6,_0x478723[_0x0a9e('0x24')][_0x0a9e('0x26')]);return _0x12066b(_0x478723[_0x0a9e('0x24')]['message']);}else{logger[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x1985b6,_0x0a9e('0x20'));_0x12066b(_0x478723[_0x0a9e('0x27')][_0x0a9e('0x26')]);}})[_0x0a9e('0x28')](function(_0x16b1ca){logger['error']('ChatMessage,\x20%s,\x20%s',_0x1985b6,_0x16b1ca);_0x48f32d(_0x16b1ca);});});}function respondWithStatusCode(_0x197ec0,_0x3a8e58){_0x3a8e58=_0x3a8e58||0xcc;return function(_0x40c424){if(_0x40c424){return _0x197ec0[_0x0a9e('0x29')](_0x3a8e58);}return _0x197ec0['status'](_0x3a8e58)[_0x0a9e('0x2a')]();};}function respondWithResult(_0x479bc4,_0x45a1e7){_0x45a1e7=_0x45a1e7||0xc8;return function(_0x5bfb33){if(_0x5bfb33){return _0x479bc4[_0x0a9e('0x2b')](_0x45a1e7)[_0x0a9e('0x2c')](_0x5bfb33);}};}function respondWithFilteredResult(_0x25fba9,_0x14433c){return function(_0x140511){if(_0x140511){var _0x1538a4=typeof _0x14433c[_0x0a9e('0x2d')]===_0x0a9e('0x2e')&&typeof _0x14433c['limit']===_0x0a9e('0x2e');var _0x468813=_0x140511[_0x0a9e('0x2f')];var _0x2ec755=_0x1538a4?0x0:_0x14433c['offset'];var _0x15b200=_0x1538a4?_0x140511[_0x0a9e('0x2f')]:_0x14433c[_0x0a9e('0x2d')]+_0x14433c[_0x0a9e('0x30')];var _0x58b06f;if(_0x15b200>=_0x468813){_0x15b200=_0x468813;_0x58b06f=0xc8;}else{_0x58b06f=0xce;}_0x25fba9[_0x0a9e('0x2b')](_0x58b06f);return _0x25fba9[_0x0a9e('0x31')](_0x0a9e('0x32'),_0x2ec755+'-'+_0x15b200+'/'+_0x468813)[_0x0a9e('0x2c')](_0x140511);}return null;};}function patchUpdates(_0x540530){return function(_0x426950){try{jsonpatch['apply'](_0x426950,_0x540530,!![]);}catch(_0x2407f9){return BPromise[_0x0a9e('0x33')](_0x2407f9);}return _0x426950[_0x0a9e('0x34')]();};}function saveUpdates(_0x33bdb7,_0x25ce3a){return function(_0x5180f1){if(_0x5180f1){return _0x5180f1[_0x0a9e('0x35')](_0x33bdb7)[_0x0a9e('0x1d')](function(_0x40cb85){return _0x40cb85;});}return null;};}function removeEntity(_0x2da5c0,_0x2b45ea){return function(_0x409319){if(_0x409319){return _0x409319[_0x0a9e('0x36')]()[_0x0a9e('0x1d')](function(){_0x2da5c0['status'](0xcc)[_0x0a9e('0x2a')]();});}};}function handleEntityNotFound(_0x5e7238,_0x2cc7a0){return function(_0x14b13f){if(!_0x14b13f){_0x5e7238[_0x0a9e('0x29')](0x194);}return _0x14b13f;};}function handleError(_0x3f3d41,_0x567193){_0x567193=_0x567193||0x1f4;return function(_0x191e91){logger[_0x0a9e('0x24')](_0x191e91[_0x0a9e('0x37')]);if(_0x191e91[_0x0a9e('0x38')]){delete _0x191e91['name'];}_0x3f3d41['status'](_0x567193)[_0x0a9e('0x39')](_0x191e91);};}exports['index']=function(_0x24936a,_0x3d9717){var _0x381c37={},_0x1ef87a={},_0x4f41ae={'count':0x0,'rows':[]};var _0x31916f=_[_0x0a9e('0x3a')](db[_0x0a9e('0x3b')]['rawAttributes'],function(_0x1dbf74){return{'name':_0x1dbf74[_0x0a9e('0x3c')],'type':_0x1dbf74[_0x0a9e('0x3d')]['key']};});_0x1ef87a['model']=_[_0x0a9e('0x3a')](_0x31916f,_0x0a9e('0x38'));_0x1ef87a['query']=_[_0x0a9e('0x3e')](_0x24936a[_0x0a9e('0x3f')]);_0x1ef87a[_0x0a9e('0x40')]=_[_0x0a9e('0x41')](_0x1ef87a['model'],_0x1ef87a['query']);_0x381c37[_0x0a9e('0x42')]=_[_0x0a9e('0x41')](_0x1ef87a['model'],qs[_0x0a9e('0x43')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x43')]));_0x381c37['attributes']=_0x381c37[_0x0a9e('0x42')][_0x0a9e('0x44')]?_0x381c37[_0x0a9e('0x42')]:_0x1ef87a[_0x0a9e('0x45')];if(!_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x46')](_0x0a9e('0x47'))){_0x381c37[_0x0a9e('0x30')]=qs[_0x0a9e('0x30')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x30')]);_0x381c37[_0x0a9e('0x2d')]=qs[_0x0a9e('0x2d')](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x2d')]);}_0x381c37['order']=qs['sort'](_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x48')]);_0x381c37[_0x0a9e('0x49')]=qs[_0x0a9e('0x40')](_[_0x0a9e('0x4a')](_0x24936a[_0x0a9e('0x3f')],_0x1ef87a[_0x0a9e('0x40')]),_0x31916f);if(_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4b')]){_0x381c37[_0x0a9e('0x49')]=_[_0x0a9e('0x4c')](_0x381c37[_0x0a9e('0x49')],{'$or':_['map'](_0x31916f,function(_0x117c99){if(_0x117c99[_0x0a9e('0x3d')]!==_0x0a9e('0x4d')){var _0xfbd5ad={};_0xfbd5ad[_0x117c99[_0x0a9e('0x38')]]={'$like':'%'+_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4b')]+'%'};return _0xfbd5ad;}})});}_0x381c37=_[_0x0a9e('0x4c')]({},_0x381c37,_0x24936a['options']);var _0x2e9d90={'where':_0x381c37['where']};return db[_0x0a9e('0x3b')][_0x0a9e('0x2f')](_0x2e9d90)[_0x0a9e('0x1d')](function(_0x562fb4){_0x4f41ae[_0x0a9e('0x2f')]=_0x562fb4;if(_0x24936a[_0x0a9e('0x3f')][_0x0a9e('0x4e')]){_0x381c37[_0x0a9e('0x4f')]=[{'all':!![]}];}return db[_0x0a9e('0x3b')][_0x0a9e('0x50')](_0x381c37);})[_0x0a9e('0x1d')](function(_0x5bbcde){_0x4f41ae[_0x0a9e('0x51')]=_0x5bbcde;return _0x4f41ae;})[_0x0a9e('0x1d')](respondWithFilteredResult(_0x3d9717,_0x381c37))[_0x0a9e('0x28')](handleError(_0x3d9717,null));};exports[_0x0a9e('0x52')]=function(_0x409789,_0x992c77){var _0x6054ee={'raw':!![],'where':{'id':_0x409789[_0x0a9e('0x53')]['id']}},_0x19383e={};_0x19383e['model']=_[_0x0a9e('0x3e')](db[_0x0a9e('0x3b')]['rawAttributes']);_0x19383e['query']=_['keys'](_0x409789[_0x0a9e('0x3f')]);_0x19383e[_0x0a9e('0x40')]=_[_0x0a9e('0x41')](_0x19383e[_0x0a9e('0x45')],_0x19383e[_0x0a9e('0x3f')]);_0x6054ee[_0x0a9e('0x42')]=_[_0x0a9e('0x41')](_0x19383e[_0x0a9e('0x45')],qs['fields'](_0x409789['query']['fields']));_0x6054ee[_0x0a9e('0x42')]=_0x6054ee[_0x0a9e('0x42')][_0x0a9e('0x44')]?_0x6054ee['attributes']:_0x19383e[_0x0a9e('0x45')];if(_0x409789[_0x0a9e('0x3f')]['includeAll']){_0x6054ee['include']=[{'all':!![]}];}_0x6054ee=_[_0x0a9e('0x4c')]({},_0x6054ee,_0x409789['options']);return db[_0x0a9e('0x3b')]['find'](_0x6054ee)[_0x0a9e('0x1d')](handleEntityNotFound(_0x992c77,null))[_0x0a9e('0x1d')](respondWithResult(_0x992c77,null))[_0x0a9e('0x28')](handleError(_0x992c77,null));};exports['create']=function(_0x2f82da,_0x1bf38a){return db['ChatMessage']['create'](_0x2f82da[_0x0a9e('0x54')],{})[_0x0a9e('0x1d')](respondWithResult(_0x1bf38a,0xc9))['catch'](handleError(_0x1bf38a,null));};exports[_0x0a9e('0x35')]=function(_0x5ce9ac,_0x211ef9){if(_0x5ce9ac['body']['id']){delete _0x5ce9ac[_0x0a9e('0x54')]['id'];}return db['ChatMessage']['find']({'where':{'id':_0x5ce9ac['params']['id']}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x211ef9,null))['then'](saveUpdates(_0x5ce9ac[_0x0a9e('0x54')],null))[_0x0a9e('0x1d')](respondWithResult(_0x211ef9,null))[_0x0a9e('0x28')](handleError(_0x211ef9,null));};exports[_0x0a9e('0x36')]=function(_0x232830,_0x272738){return db[_0x0a9e('0x3b')][_0x0a9e('0x55')]({'where':{'id':_0x232830['params']['id']}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x272738,null))[_0x0a9e('0x1d')](removeEntity(_0x272738,null))[_0x0a9e('0x28')](handleError(_0x272738,null));};exports[_0x0a9e('0x56')]=function(_0xb83dfd,_0x156662){return db['ChatMessage'][_0x0a9e('0x56')]()[_0x0a9e('0x1d')](respondWithResult(_0x156662,null))['catch'](handleError(_0x156662,null));};var interaction_log=require(_0x0a9e('0x57'))('chat-interactions');exports[_0x0a9e('0x58')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee){var _0x273cb5={'agent':{},'channel':'chat'};if(_0x5ba1f9[_0x0a9e('0x54')]['id']){delete _0x5ba1f9[_0x0a9e('0x54')]['id'];}_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x59')]=!![];_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5a')]=moment()['format'](_0x0a9e('0x5b'));_0x5ba1f9['body'][_0x0a9e('0x5c')]=_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')]||_0x5ba1f9['user']['id'];_0x273cb5[_0x0a9e('0x5d')]['id']=_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')];return db[_0x0a9e('0x3b')]['find']({'where':{'id':_0x5ba1f9[_0x0a9e('0x53')]['id'],'UserId':null}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x4b3c1a,null))['then'](saveUpdates(_0x5ba1f9[_0x0a9e('0x54')],null))[_0x0a9e('0x1d')](function(_0x88dcbf){if(_0x88dcbf){_0x273cb5[_0x0a9e('0x26')]=_0x88dcbf[_0x0a9e('0x5e')]({'plain':!![]});return db['ChatInteraction'][_0x0a9e('0x55')]({'where':{'id':_0x88dcbf[_0x0a9e('0x5f')]}});}return null;})[_0x0a9e('0x1d')](handleEntityNotFound(_0x4b3c1a,null))['then'](function(_0x3528b7){if(_0x3528b7){return _0x3528b7['update']({'UserId':_0x5ba1f9['body'][_0x0a9e('0x5c')],'read1stAt':_[_0x0a9e('0x60')](_0x3528b7[_0x0a9e('0x61')])?moment()[_0x0a9e('0x62')](_0x0a9e('0x5b')):undefined});}return null;})[_0x0a9e('0x1d')](function(_0x387489){if(_0x387489){_0x273cb5[_0x0a9e('0x63')]=_0x387489[_0x0a9e('0x5e')]({'plain':!![]});interaction_log[_0x0a9e('0x1e')](_0x0a9e('0x64'),_0x5ba1f9[_0x0a9e('0x65')]['id'],_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x38')],_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x66')],_0x273cb5[_0x0a9e('0x63')]['id'],_0x5ba1f9[_0x0a9e('0x54')]?JSON['stringify'](_0x5ba1f9[_0x0a9e('0x54')]):_0x0a9e('0x67'));return respondWithRpcPromise(_0x0a9e('0x68'),'acceptMessage',_0x273cb5);}return null;})[_0x0a9e('0x1d')](function(_0x30944e){var _0x4b341d=_0x0a9e('0x69')+_0x30944e[_0x0a9e('0x26')][_0x0a9e('0x6a')];return db[_0x0a9e('0x6b')][_0x0a9e('0x3f')](_0x4b341d,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]})[_0x0a9e('0x1d')](function(_0x18bf5d){return _0x18bf5d;});})[_0x0a9e('0x1d')](function(_0x23a7d3){if(_0x23a7d3){_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x6c')]=_0x23a7d3[0x0];if(!_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')])return;return db['User'][_0x0a9e('0x55')]({'where':{'id':_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x5c')],'role':'agent'},'attributes':['id',_0x0a9e('0x38'),'fullname',_0x0a9e('0x6d'),_0x0a9e('0x6e')],'raw':!![]});}return null;})['then'](function(_0x2ed01e){if(!_0x2ed01e)return null;_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x5d')]=_0x2ed01e;return _0x273cb5;})[_0x0a9e('0x1d')](function(_0x542ece){if(_0x542ece){if(_0x5ba1f9[_0x0a9e('0x54')][_0x0a9e('0x6f')]){_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x70')]=util['format'](_0x0a9e('0x71'),_0x5ba1f9[_0x0a9e('0x65')][_0x0a9e('0x38')]);_0x273cb5[_0x0a9e('0x26')]['channel']=_0x273cb5[_0x0a9e('0x72')];_0x273cb5[_0x0a9e('0x26')][_0x0a9e('0x73')]=_0x0a9e('0x58');return respondWithRpcPromise(_0x0a9e('0x74'),_0x0a9e('0x74'),{'event':_0x0a9e('0x75'),'message':_[_0x0a9e('0x4c')](_0x273cb5[_0x0a9e('0x26')],JSON[_0x0a9e('0x76')](_0x273cb5[_0x0a9e('0x63')][_0x0a9e('0x77')]))},client9002)[_0x0a9e('0x1d')](function(){return _0x273cb5;});}return _0x273cb5;}return null;})[_0x0a9e('0x1d')](respondWithResult(_0x4b3c1a,null))['catch'](handleError(_0x4b3c1a,null));};var interaction_log=require(_0x0a9e('0x57'))(_0x0a9e('0x78'));exports[_0x0a9e('0x33')]=function(_0x563627,_0x3736e0,_0x33dda0){var _0x8cea96={'agent':{},'channel':_0x0a9e('0x79')};if(_0x563627['body']['id']){delete _0x563627['body']['id'];}_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')]=_0x563627['body'][_0x0a9e('0x5c')]||_0x563627['user']['id'];_0x8cea96[_0x0a9e('0x5d')]['id']=_0x563627[_0x0a9e('0x54')]['UserId'];return db[_0x0a9e('0x3b')][_0x0a9e('0x55')]({'where':{'id':_0x563627[_0x0a9e('0x53')]['id'],'UserId':null}})[_0x0a9e('0x1d')](handleEntityNotFound(_0x3736e0,null))[_0x0a9e('0x1d')](function(_0x1f42a0){if(_0x1f42a0){_0x8cea96[_0x0a9e('0x26')]=_0x1f42a0['get']({'plain':!![]});return db[_0x0a9e('0x7a')][_0x0a9e('0x55')]({'where':{'id':_0x1f42a0[_0x0a9e('0x5f')]}});}return null;})[_0x0a9e('0x1d')](handleEntityNotFound(_0x3736e0,null))['then'](function(_0xf51744){if(_0xf51744){_0x8cea96[_0x0a9e('0x63')]=_0xf51744['get']({'plain':!![]});interaction_log[_0x0a9e('0x1e')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x563627[_0x0a9e('0x65')]['id'],_0x563627[_0x0a9e('0x65')][_0x0a9e('0x38')],_0x563627[_0x0a9e('0x65')]['role'],_0x8cea96['interaction']['id'],_0x563627[_0x0a9e('0x54')]?JSON[_0x0a9e('0x23')](_0x563627[_0x0a9e('0x54')]):'null');return respondWithRpcPromise(_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x8cea96);}return null;})['then'](function(_0x4e46b2){var _0xf0a802='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4e46b2['message']['ContactId'];return db[_0x0a9e('0x6b')][_0x0a9e('0x3f')](_0xf0a802,{'type':db[_0x0a9e('0x7d')][_0x0a9e('0x7e')][_0x0a9e('0x7f')],'raw':!![]})[_0x0a9e('0x1d')](function(_0x5a8854){return _0x5a8854;});})[_0x0a9e('0x1d')](function(_0x5955f1){if(_0x5955f1){_0x8cea96[_0x0a9e('0x26')][_0x0a9e('0x6c')]=_0x5955f1[0x0];if(!_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')])return;return db['User'][_0x0a9e('0x55')]({'where':{'id':_0x563627[_0x0a9e('0x54')][_0x0a9e('0x5c')],'role':'agent'},'attributes':['id',_0x0a9e('0x38'),_0x0a9e('0x80'),_0x0a9e('0x6d'),_0x0a9e('0x6e')],'raw':!![]});}return null;})[_0x0a9e('0x1d')](function(_0x1910bf){if(!_0x1910bf)return null;_0x8cea96[_0x0a9e('0x26')][_0x0a9e('0x5d')]=_0x1910bf;return _0x8cea96;})['then'](function(_0x2645d6){if(_0x2645d6){_0x2645d6[_0x0a9e('0x26')]['interface']=util[_0x0a9e('0x62')](_0x0a9e('0x71'),_0x563627[_0x0a9e('0x65')]['name']);_0x2645d6[_0x0a9e('0x26')]['channel']=_0x8cea96[_0x0a9e('0x72')];_0x2645d6[_0x0a9e('0x26')][_0x0a9e('0x73')]=_0x0a9e('0x33');respondWithRpcPromise(_0x0a9e('0x74'),_0x0a9e('0x74'),{'event':_0x0a9e('0x81'),'message':_[_0x0a9e('0x4c')](_0x8cea96['message'],JSON[_0x0a9e('0x76')](_0x8cea96[_0x0a9e('0x63')][_0x0a9e('0x77')]))},client9002);return _0x8cea96;}return null;})[_0x0a9e('0x1d')](respondWithResult(_0x3736e0,null))[_0x0a9e('0x28')](handleError(_0x3736e0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ee3=['ChatMessage','setMaxListeners','update','remove','emit','hasOwnProperty','../../mysqldb'];(function(_0x2f7bc7,_0x394c14){var _0x12015c=function(_0x141ba8){while(--_0x141ba8){_0x2f7bc7['push'](_0x2f7bc7['shift']());}};_0x12015c(++_0x394c14);}(_0x9ee3,0xa0));var _0x39ee=function(_0x350031,_0x1f8e3e){_0x350031=_0x350031-0x0;var _0x592b45=_0x9ee3[_0x350031];return _0x592b45;};'use strict';var EventEmitter=require('events');var ChatMessage=require(_0x39ee('0x0'))['db'][_0x39ee('0x1')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x39ee('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x39ee('0x3'),'afterDestroy':_0x39ee('0x4')};function emitEvent(_0x420903){return function(_0x526ed9,_0x1678ef,_0x5ad8d3){ChatMessageEvents[_0x39ee('0x5')](_0x420903+':'+_0x526ed9['id'],_0x526ed9);ChatMessageEvents['emit'](_0x420903,_0x526ed9);_0x5ad8d3(null);};}for(var e in events){if(events[_0x39ee('0x6')](e)){var event=events[e];ChatMessage['hook'](e,emitEvent(event));}}module['exports']=ChatMessageEvents;
\ No newline at end of file
+var _0xf6f0=['hook','exports','../../mysqldb','ChatMessage','setMaxListeners','save','update','emit','hasOwnProperty'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0xf6f0,0x110));var _0x0f6f=function(_0x342465,_0x3aa51b){_0x342465=_0x342465-0x0;var _0x4a4da7=_0xf6f0[_0x342465];return _0x4a4da7;};'use strict';var EventEmitter=require('events');var ChatMessage=require(_0x0f6f('0x0'))['db'][_0x0f6f('0x1')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x0f6f('0x2')](0x0);var events={'afterCreate':_0x0f6f('0x3'),'afterUpdate':_0x0f6f('0x4'),'afterDestroy':'remove'};function emitEvent(_0x2ed832){return function(_0x48e159,_0x3e8295,_0x3d16bc){ChatMessageEvents[_0x0f6f('0x5')](_0x2ed832+':'+_0x48e159['id'],_0x48e159);ChatMessageEvents['emit'](_0x2ed832,_0x48e159);_0x3d16bc(null);};}for(var e in events){if(events[_0x0f6f('0x6')](e)){var event=events[e];ChatMessage[_0x0f6f('0x7')](e,emitEvent(event));}}module[_0x0f6f('0x8')]=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8766=['ChatInteraction','findOne','ChatInteractionId','then','direction','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','./chatMessage.attributes','exports','define','ChatMessage','chat_messages','body','FULLTEXT','models','get','toLowerCase','out','secret','UserId'];(function(_0x368ad9,_0x12f7f9){var _0x13cf87=function(_0x457b62){while(--_0x457b62){_0x368ad9['push'](_0x368ad9['shift']());}};_0x13cf87(++_0x12f7f9);}(_0x8766,0x1d9));var _0x6876=function(_0x4c342c,_0x2d2036){_0x4c342c=_0x4c342c-0x0;var _0x16c286=_0x8766[_0x4c342c];return _0x16c286;};'use strict';var _=require(_0x6876('0x0'));var util=require('util');var logger=require(_0x6876('0x1'))('api');var moment=require(_0x6876('0x2'));var BPromise=require(_0x6876('0x3'));var rp=require(_0x6876('0x4'));var fs=require('fs');var path=require(_0x6876('0x5'));var rimraf=require(_0x6876('0x6'));var config=require('../../config/environment');var attributes=require(_0x6876('0x7'));module[_0x6876('0x8')]=function(_0x5346da,_0x4cf88a){return _0x5346da[_0x6876('0x9')](_0x6876('0xa'),attributes,{'tableName':_0x6876('0xb'),'paranoid':![],'indexes':[{'name':'fti_chat_messages','fields':[_0x6876('0xc')],'type':_0x6876('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x283a50,_0x1701b4,_0x2d1697){var _0xaf132e=_0x5346da[_0x6876('0xe')];var _0x543850=_0x283a50[_0x6876('0xf')]({'plain':!![]});if(_0x543850['direction'][_0x6876('0x10')]()==='in'||_0x543850['direction'][_0x6876('0x10')]()===_0x6876('0x11')&&!_0x543850[_0x6876('0x12')]&&!_['isNil'](_0x543850[_0x6876('0x13')])){_0xaf132e[_0x6876('0x14')][_0x6876('0x15')]({'where':{'id':_0x543850[_0x6876('0x16')]}})[_0x6876('0x17')](function(_0x39dc02){if(_0x39dc02){_0x39dc02['update']({'lastMsgAt':_0x543850['createdAt'],'lastMsgDirection':_0x543850[_0x6876('0x18')]['toLowerCase']()});}})[_0x6876('0x19')](function(_0x130859){console[_0x6876('0x1a')](_0x130859);});}_0x2d1697();}},'charset':_0x6876('0x1b'),'collate':_0x6876('0x1c')});};
\ No newline at end of file
+var _0x6f70=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./chatMessage.attributes','exports','define','chat_messages','fti_chat_messages','FULLTEXT','models','get','direction','out','secret','isNil','UserId','ChatInteraction','findOne','ChatInteractionId','then','createdAt','catch','utf8mb4','lodash'];(function(_0x2cbc24,_0x1cb2c3){var _0x9a8498=function(_0x3530f8){while(--_0x3530f8){_0x2cbc24['push'](_0x2cbc24['shift']());}};_0x9a8498(++_0x1cb2c3);}(_0x6f70,0x1ec));var _0x06f7=function(_0x40b488,_0x4e2c67){_0x40b488=_0x40b488-0x0;var _0x1ca483=_0x6f70[_0x40b488];return _0x1ca483;};'use strict';var _=require(_0x06f7('0x0'));var util=require(_0x06f7('0x1'));var logger=require(_0x06f7('0x2'))(_0x06f7('0x3'));var moment=require('moment');var BPromise=require(_0x06f7('0x4'));var rp=require(_0x06f7('0x5'));var fs=require('fs');var path=require(_0x06f7('0x6'));var rimraf=require(_0x06f7('0x7'));var config=require(_0x06f7('0x8'));var attributes=require(_0x06f7('0x9'));module[_0x06f7('0xa')]=function(_0xfd748,_0x5c2cd9){return _0xfd748[_0x06f7('0xb')]('ChatMessage',attributes,{'tableName':_0x06f7('0xc'),'paranoid':![],'indexes':[{'name':_0x06f7('0xd'),'fields':['body'],'type':_0x06f7('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x223318,_0x56c7a8,_0x50110d){var _0x4fbcb9=_0xfd748[_0x06f7('0xf')];var _0x2dd45b=_0x223318[_0x06f7('0x10')]({'plain':!![]});if(_0x2dd45b[_0x06f7('0x11')]['toLowerCase']()==='in'||_0x2dd45b[_0x06f7('0x11')]['toLowerCase']()===_0x06f7('0x12')&&!_0x2dd45b[_0x06f7('0x13')]&&!_[_0x06f7('0x14')](_0x2dd45b[_0x06f7('0x15')])){_0x4fbcb9[_0x06f7('0x16')][_0x06f7('0x17')]({'where':{'id':_0x2dd45b[_0x06f7('0x18')]}})[_0x06f7('0x19')](function(_0x3b70d1){if(_0x3b70d1){_0x3b70d1['update']({'lastMsgAt':_0x2dd45b[_0x06f7('0x1a')],'lastMsgDirection':_0x2dd45b[_0x06f7('0x11')]['toLowerCase']()});}})[_0x06f7('0x1b')](function(_0x15c4d4){console['error'](_0x15c4d4);});}_0x50110d();}},'charset':_0x06f7('0x1c'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c98=['register','request','then','info','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','ChatMessage','create','body','options','CreateChatMessage','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./chatMessage.socket'];(function(_0xe18208,_0x5cd027){var _0xe97b3b=function(_0x317d4f){while(--_0x317d4f){_0xe18208['push'](_0xe18208['shift']());}};_0xe97b3b(++_0x5cd027);}(_0x5c98,0x151));var _0x85c9=function(_0x1f6ace,_0x2e6774){_0x1f6ace=_0x1f6ace-0x0;var _0x53aba4=_0x5c98[_0x1f6ace];return _0x53aba4;};'use strict';var _=require('lodash');var util=require(_0x85c9('0x0'));var moment=require(_0x85c9('0x1'));var BPromise=require(_0x85c9('0x2'));var rs=require(_0x85c9('0x3'));var fs=require('fs');var Redis=require(_0x85c9('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x85c9('0x5'));var logger=require(_0x85c9('0x6'))('rpc');var config=require(_0x85c9('0x7'));var jayson=require(_0x85c9('0x8'));var client=jayson[_0x85c9('0x9')][_0x85c9('0xa')]({'port':0x232a});config[_0x85c9('0xb')]=_['defaults'](config[_0x85c9('0xb')],{'host':_0x85c9('0xc'),'port':0x18eb});var socket=require(_0x85c9('0xd'))(new Redis(config[_0x85c9('0xb')]));require(_0x85c9('0xe'))[_0x85c9('0xf')](socket);function respondWithRpcPromise(_0x1a2685,_0x35fd2b,_0x9f31fa){return new BPromise(function(_0x1e3a57,_0x38b988){return client[_0x85c9('0x10')](_0x1a2685,_0x9f31fa)[_0x85c9('0x11')](function(_0x5f4007){logger[_0x85c9('0x12')](_0x85c9('0x13'),_0x35fd2b,_0x85c9('0x14'));logger[_0x85c9('0x15')](_0x85c9('0x16'),_0x35fd2b,_0x85c9('0x14'),JSON[_0x85c9('0x17')](_0x5f4007));if(_0x5f4007[_0x85c9('0x18')]){if(_0x5f4007['error']['code']===0x1f4){logger[_0x85c9('0x18')]('ChatMessage,\x20%s,\x20%s',_0x35fd2b,_0x5f4007['error'][_0x85c9('0x19')]);return _0x38b988(_0x5f4007[_0x85c9('0x18')][_0x85c9('0x19')]);}logger[_0x85c9('0x18')](_0x85c9('0x13'),_0x35fd2b,_0x5f4007[_0x85c9('0x18')][_0x85c9('0x19')]);return _0x1e3a57(_0x5f4007[_0x85c9('0x18')][_0x85c9('0x19')]);}else{logger['info'](_0x85c9('0x13'),_0x35fd2b,_0x85c9('0x14'));_0x1e3a57(_0x5f4007['result'][_0x85c9('0x19')]);}})[_0x85c9('0x1a')](function(_0x46130c){logger['error']('ChatMessage,\x20%s,\x20%s',_0x35fd2b,_0x46130c);_0x38b988(_0x46130c);});});}exports['CreateChatMessage']=function(_0x48d98e){var _0xbafe7=this;return new Promise(function(_0x1fb7fa,_0x1c15d8){return db[_0x85c9('0x1b')][_0x85c9('0x1c')](_0x48d98e[_0x85c9('0x1d')],{'raw':_0x48d98e[_0x85c9('0x1e')]?_0x48d98e[_0x85c9('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0x85c9('0x11')](function(_0x3afad0){logger[_0x85c9('0x12')](_0x85c9('0x1f'),_0x48d98e);logger['debug'](_0x85c9('0x1f'),_0x48d98e,JSON[_0x85c9('0x17')](_0x3afad0));_0x1fb7fa(_0x3afad0);})['catch'](function(_0x226965){logger[_0x85c9('0x18')]('CreateChatMessage',_0x226965[_0x85c9('0x19')],_0x48d98e);_0x1c15d8(_0xbafe7[_0x85c9('0x18')](0x1f4,_0x226965[_0x85c9('0x19')]));});});};
\ No newline at end of file
+var _0xcaf9=['raw','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','request','then','info','debug','request\x20sent','stringify','error','code','ChatMessage,\x20%s,\x20%s','message','result','catch','CreateChatMessage','ChatMessage','create','body','options'];(function(_0x1242f2,_0x2b9a43){var _0x3e1e84=function(_0x2d25a0){while(--_0x2d25a0){_0x1242f2['push'](_0x1242f2['shift']());}};_0x3e1e84(++_0x2b9a43);}(_0xcaf9,0x9c));var _0x9caf=function(_0x23071a,_0x4dd508){_0x23071a=_0x23071a-0x0;var _0x40479d=_0xcaf9[_0x23071a];return _0x40479d;};'use strict';var _=require('lodash');var util=require(_0x9caf('0x0'));var moment=require(_0x9caf('0x1'));var BPromise=require(_0x9caf('0x2'));var rs=require(_0x9caf('0x3'));var fs=require('fs');var Redis=require(_0x9caf('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x9caf('0x5'))(_0x9caf('0x6'));var config=require('../../config/environment');var jayson=require(_0x9caf('0x7'));var client=jayson[_0x9caf('0x8')][_0x9caf('0x9')]({'port':0x232a});config[_0x9caf('0xa')]=_[_0x9caf('0xb')](config[_0x9caf('0xa')],{'host':_0x9caf('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9caf('0xa')]));require('./chatMessage.socket')['register'](socket);function respondWithRpcPromise(_0x5ec6f3,_0x7ecee4,_0x56b76f){return new BPromise(function(_0x424480,_0x55f001){return client[_0x9caf('0xd')](_0x5ec6f3,_0x56b76f)[_0x9caf('0xe')](function(_0x477028){logger[_0x9caf('0xf')]('ChatMessage,\x20%s,\x20%s',_0x7ecee4,'request\x20sent');logger[_0x9caf('0x10')]('ChatMessage,\x20%s,\x20%s,\x20%s',_0x7ecee4,_0x9caf('0x11'),JSON[_0x9caf('0x12')](_0x477028));if(_0x477028[_0x9caf('0x13')]){if(_0x477028[_0x9caf('0x13')][_0x9caf('0x14')]===0x1f4){logger[_0x9caf('0x13')](_0x9caf('0x15'),_0x7ecee4,_0x477028[_0x9caf('0x13')]['message']);return _0x55f001(_0x477028[_0x9caf('0x13')][_0x9caf('0x16')]);}logger[_0x9caf('0x13')](_0x9caf('0x15'),_0x7ecee4,_0x477028[_0x9caf('0x13')][_0x9caf('0x16')]);return _0x424480(_0x477028[_0x9caf('0x13')][_0x9caf('0x16')]);}else{logger[_0x9caf('0xf')](_0x9caf('0x15'),_0x7ecee4,_0x9caf('0x11'));_0x424480(_0x477028[_0x9caf('0x17')]['message']);}})[_0x9caf('0x18')](function(_0x56106f){logger[_0x9caf('0x13')]('ChatMessage,\x20%s,\x20%s',_0x7ecee4,_0x56106f);_0x55f001(_0x56106f);});});}exports[_0x9caf('0x19')]=function(_0x22c303){var _0x27563b=this;return new Promise(function(_0x100831,_0x218a34){return db[_0x9caf('0x1a')][_0x9caf('0x1b')](_0x22c303[_0x9caf('0x1c')],{'raw':_0x22c303[_0x9caf('0x1d')]?_0x22c303[_0x9caf('0x1d')][_0x9caf('0x1e')]===undefined?!![]:![]:!![]})[_0x9caf('0xe')](function(_0x18d3d9){logger['info'](_0x9caf('0x19'),_0x22c303);logger[_0x9caf('0x10')](_0x9caf('0x19'),_0x22c303,JSON[_0x9caf('0x12')](_0x18d3d9));_0x100831(_0x18d3d9);})[_0x9caf('0x18')](function(_0x473428){logger[_0x9caf('0x13')](_0x9caf('0x19'),_0x473428[_0x9caf('0x16')],_0x22c303);_0x218a34(_0x27563b[_0x9caf('0x13')](0x1f4,_0x473428['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6011=['length','removeListener','register'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x6011,0x196));var _0x1601=function(_0x4d2139,_0x842ef9){_0x4d2139=_0x4d2139-0x0;var _0x4521e0=_0x6011[_0x4d2139];return _0x4521e0;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=['save','remove','update'];function createListener(_0x59212c,_0x157c9d){return function(_0x40c20f){_0x157c9d['emit'](_0x59212c,_0x40c20f);};}function removeListener(_0x23ed9e,_0x2ede55){return function(){ChatMessageEvents[_0x1601('0x0')](_0x23ed9e,_0x2ede55);};}exports[_0x1601('0x1')]=function(_0x3c9c29){for(var _0x38cc43=0x0,_0x277bfc=events[_0x1601('0x2')];_0x38cc43<_0x277bfc;_0x38cc43++){var _0x18e06c=events[_0x38cc43];var _0x99dee1=createListener('chatMessage:'+_0x18e06c,_0x3c9c29);ChatMessageEvents['on'](_0x18e06c,_0x99dee1);}};
\ No newline at end of file
+var _0x43fd=['register','length','save','emit','removeListener'];(function(_0x52cbf6,_0x1b61c9){var _0x18e261=function(_0x2ac3cb){while(--_0x2ac3cb){_0x52cbf6['push'](_0x52cbf6['shift']());}};_0x18e261(++_0x1b61c9);}(_0x43fd,0x1ec));var _0xd43f=function(_0x1ffdcc,_0x248c6d){_0x1ffdcc=_0x1ffdcc-0x0;var _0x3ef694=_0x43fd[_0x1ffdcc];return _0x3ef694;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=[_0xd43f('0x0'),'remove','update'];function createListener(_0x316ee5,_0x1ead65){return function(_0x484615){_0x1ead65[_0xd43f('0x1')](_0x316ee5,_0x484615);};}function removeListener(_0x48f953,_0x3c2af1){return function(){ChatMessageEvents[_0xd43f('0x2')](_0x48f953,_0x3c2af1);};}exports[_0xd43f('0x3')]=function(_0x33ddff){for(var _0x52e75f=0x0,_0xde214d=events[_0xd43f('0x4')];_0x52e75f<_0xde214d;_0x52e75f++){var _0x20ccd7=events[_0x52e75f];var _0x331163=createListener('chatMessage:'+_0x20ccd7,_0x33ddff);ChatMessageEvents['on'](_0x20ccd7,_0x331163);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08f7=['put','update','/:id/accept','accept','/:id/reject','reject','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatMessage.controller','get','isAuthenticated','describe','/:id','post','tracked','chat','chatmessage:create','create'];(function(_0x5550b3,_0x2d0ee0){var _0x4b8fc4=function(_0x22393a){while(--_0x22393a){_0x5550b3['push'](_0x5550b3['shift']());}};_0x4b8fc4(++_0x2d0ee0);}(_0x08f7,0x73));var _0x708f=function(_0x34325b,_0x5e5afe){_0x34325b=_0x34325b-0x0;var _0x3da348=_0x08f7[_0x34325b];return _0x3da348;};'use strict';var multer=require(_0x708f('0x0'));var util=require(_0x708f('0x1'));var path=require(_0x708f('0x2'));var timeout=require(_0x708f('0x3'));var express=require(_0x708f('0x4'));var router=express[_0x708f('0x5')]();var fs_extra=require(_0x708f('0x6'));var auth=require(_0x708f('0x7'));var interaction=require(_0x708f('0x8'));var config=require(_0x708f('0x9'));var controller=require(_0x708f('0xa'));router[_0x708f('0xb')]('/',auth[_0x708f('0xc')](),controller['index']);router[_0x708f('0xb')]('/describe',auth[_0x708f('0xc')](),controller[_0x708f('0xd')]);router[_0x708f('0xb')](_0x708f('0xe'),auth['isAuthenticated'](),controller['show']);router[_0x708f('0xf')]('/',auth[_0x708f('0xc')](),interaction[_0x708f('0x10')](_0x708f('0x11'),_0x708f('0x12')),controller[_0x708f('0x13')]);router[_0x708f('0x14')](_0x708f('0xe'),controller[_0x708f('0x15')]);router[_0x708f('0x14')](_0x708f('0x16'),auth['isAuthenticated'](),controller[_0x708f('0x17')]);router[_0x708f('0x14')](_0x708f('0x18'),auth[_0x708f('0xc')](),controller[_0x708f('0x19')]);router['delete'](_0x708f('0xe'),auth[_0x708f('0xc')](),controller[_0x708f('0x1a')]);module['exports']=router;
\ No newline at end of file
+var _0x5dd6=['update','/:id/accept','/:id/reject','reject','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatMessage.controller','get','index','isAuthenticated','describe','/:id','show','post','tracked','chat','put'];(function(_0xcc206c,_0xf20f91){var _0x239181=function(_0x367a0b){while(--_0x367a0b){_0xcc206c['push'](_0xcc206c['shift']());}};_0x239181(++_0xf20f91);}(_0x5dd6,0x9c));var _0x65dd=function(_0x496738,_0x3f1a9f){_0x496738=_0x496738-0x0;var _0xee1381=_0x5dd6[_0x496738];return _0xee1381;};'use strict';var multer=require('multer');var util=require(_0x65dd('0x0'));var path=require(_0x65dd('0x1'));var timeout=require(_0x65dd('0x2'));var express=require(_0x65dd('0x3'));var router=express[_0x65dd('0x4')]();var fs_extra=require(_0x65dd('0x5'));var auth=require(_0x65dd('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x65dd('0x7'));var controller=require(_0x65dd('0x8'));router[_0x65dd('0x9')]('/',auth['isAuthenticated'](),controller[_0x65dd('0xa')]);router[_0x65dd('0x9')]('/describe',auth[_0x65dd('0xb')](),controller[_0x65dd('0xc')]);router[_0x65dd('0x9')](_0x65dd('0xd'),auth[_0x65dd('0xb')](),controller[_0x65dd('0xe')]);router[_0x65dd('0xf')]('/',auth[_0x65dd('0xb')](),interaction[_0x65dd('0x10')](_0x65dd('0x11'),'chatmessage:create'),controller['create']);router[_0x65dd('0x12')](_0x65dd('0xd'),controller[_0x65dd('0x13')]);router[_0x65dd('0x12')](_0x65dd('0x14'),auth[_0x65dd('0xb')](),controller['accept']);router[_0x65dd('0x12')](_0x65dd('0x15'),auth[_0x65dd('0xb')](),controller[_0x65dd('0x16')]);router[_0x65dd('0x17')](_0x65dd('0xd'),auth[_0x65dd('0xb')](),controller['destroy']);module[_0x65dd('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x511c=['medium'];(function(_0x143cfd,_0x1a336e){var _0x2cb5f5=function(_0x1523fa){while(--_0x1523fa){_0x143cfd['push'](_0x143cfd['shift']());}};_0x2cb5f5(++_0x1a336e);}(_0x511c,0xaf));var _0xc511=function(_0x38e870,_0x3d2e6a){_0x38e870=_0x38e870-0x0;var _0x2dabbe=_0x511c[_0x38e870];return _0x2dabbe;};'use strict';var Sequelize=require('sequelize');module['exports']={'body':{'type':Sequelize['TEXT'](_0xc511('0x0')),'allowNull':![]}};
\ No newline at end of file
+var _0x84d1=['exports','medium','sequelize'];(function(_0x39096d,_0x51f8a0){var _0x13da4f=function(_0x11e6b2){while(--_0x11e6b2){_0x39096d['push'](_0x39096d['shift']());}};_0x13da4f(++_0x51f8a0);}(_0x84d1,0x119));var _0x184d=function(_0x272156,_0x5e4b0d){_0x272156=_0x272156-0x0;var _0x1071d0=_0x84d1[_0x272156];return _0x1071d0;};'use strict';var Sequelize=require(_0x184d('0x0'));module[_0x184d('0x1')]={'body':{'type':Sequelize['TEXT'](_0x184d('0x2')),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','index','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','ChatOfflineMessage','findAll','rows','show','rawAttributes','includeAll','include','find','create','catch','body','params','Attachment','forEach','join','root','server','files','attachments','basename','existsSync','remove','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb'];(function(_0x1f951b,_0x42df15){var _0x48c770=function(_0x252aa0){while(--_0x252aa0){_0x1f951b['push'](_0x1f951b['shift']());}};_0x48c770(++_0x42df15);}(_0x9957,0x93));var _0x7995=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9957[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));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 authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];function respondWithStatusCode(_0x19a27e,_0x385f00){_0x385f00=_0x385f00||0xcc;return function(_0x281576){if(_0x281576){return _0x19a27e[_0x7995('0x1b')](_0x385f00);}return _0x19a27e[_0x7995('0x1c')](_0x385f00)['end']();};}function respondWithResult(_0x58f5ad,_0x2b4e94){_0x2b4e94=_0x2b4e94||0xc8;return function(_0x2233dd){if(_0x2233dd){return _0x58f5ad[_0x7995('0x1c')](_0x2b4e94)[_0x7995('0x1d')](_0x2233dd);}};}function respondWithFilteredResult(_0x3f1d3e,_0x1a5310){return function(_0x2202ce){if(_0x2202ce){var _0x41cbf0=typeof _0x1a5310['offset']===_0x7995('0x1e')&&typeof _0x1a5310['limit']===_0x7995('0x1e');var _0x37f297=_0x2202ce[_0x7995('0x1f')];var _0x291317=_0x41cbf0?0x0:_0x1a5310[_0x7995('0x20')];var _0x37a7d4=_0x41cbf0?_0x2202ce['count']:_0x1a5310['offset']+_0x1a5310[_0x7995('0x21')];var _0x5e6f90;if(_0x37a7d4>=_0x37f297){_0x37a7d4=_0x37f297;_0x5e6f90=0xc8;}else{_0x5e6f90=0xce;}_0x3f1d3e['status'](_0x5e6f90);return _0x3f1d3e[_0x7995('0x22')](_0x7995('0x23'),_0x291317+'-'+_0x37a7d4+'/'+_0x37f297)['json'](_0x2202ce);}return null;};}function patchUpdates(_0x3a9b54){return function(_0x51f276){try{jsonpatch['apply'](_0x51f276,_0x3a9b54,!![]);}catch(_0x3e4c54){return BPromise[_0x7995('0x24')](_0x3e4c54);}return _0x51f276[_0x7995('0x25')]();};}function saveUpdates(_0x1a8568,_0x460924){return function(_0x1c278a){if(_0x1c278a){return _0x1c278a['update'](_0x1a8568)[_0x7995('0x26')](function(_0x46ee4b){return _0x46ee4b;});}return null;};}function removeEntity(_0x204507,_0x285437){return function(_0x563799){if(_0x563799){return _0x563799[_0x7995('0x27')]()[_0x7995('0x26')](function(){_0x204507[_0x7995('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39df42,_0x34e70c){return function(_0x401dc3){if(!_0x401dc3){_0x39df42[_0x7995('0x1b')](0x194);}return _0x401dc3;};}function handleError(_0x3a3fcf,_0x2a307e){_0x2a307e=_0x2a307e||0x1f4;return function(_0x56691a){logger[_0x7995('0x28')](_0x56691a['stack']);if(_0x56691a[_0x7995('0x29')]){delete _0x56691a[_0x7995('0x29')];}_0x3a3fcf[_0x7995('0x1c')](_0x2a307e)[_0x7995('0x2a')](_0x56691a);};}exports[_0x7995('0x2b')]=function(_0x4b6f99,_0x9b2a15){var _0x514445={},_0x456a28={},_0x3250e0={'count':0x0,'rows':[]};var _0x4253e5=_['map'](db['ChatOfflineMessage']['rawAttributes'],function(_0x3573be){return{'name':_0x3573be[_0x7995('0x2c')],'type':_0x3573be[_0x7995('0x2d')][_0x7995('0x2e')]};});_0x456a28[_0x7995('0x2f')]=_[_0x7995('0x30')](_0x4253e5,'name');_0x456a28['query']=_[_0x7995('0x31')](_0x4b6f99['query']);_0x456a28[_0x7995('0x32')]=_[_0x7995('0x33')](_0x456a28[_0x7995('0x2f')],_0x456a28[_0x7995('0x34')]);_0x514445[_0x7995('0x35')]=_['intersection'](_0x456a28[_0x7995('0x2f')],qs[_0x7995('0x36')](_0x4b6f99['query']['fields']));_0x514445['attributes']=_0x514445[_0x7995('0x35')][_0x7995('0x37')]?_0x514445['attributes']:_0x456a28[_0x7995('0x2f')];if(!_0x4b6f99['query'][_0x7995('0x38')](_0x7995('0x39'))){_0x514445[_0x7995('0x21')]=qs['limit'](_0x4b6f99['query'][_0x7995('0x21')]);_0x514445['offset']=qs['offset'](_0x4b6f99[_0x7995('0x34')][_0x7995('0x20')]);}_0x514445['order']=qs[_0x7995('0x3a')](_0x4b6f99[_0x7995('0x34')][_0x7995('0x3a')]);_0x514445[_0x7995('0x3b')]=qs[_0x7995('0x32')](_['pick'](_0x4b6f99[_0x7995('0x34')],_0x456a28[_0x7995('0x32')]),_0x4253e5);if(_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]){_0x514445['where']=_[_0x7995('0x3d')](_0x514445[_0x7995('0x3b')],{'$or':_[_0x7995('0x30')](_0x4253e5,function(_0xe5ea43){if(_0xe5ea43[_0x7995('0x2d')]!==_0x7995('0x3e')){var _0x5688a1={};_0x5688a1[_0xe5ea43[_0x7995('0x29')]]={'$like':'%'+_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]+'%'};return _0x5688a1;}})});}_0x514445=_[_0x7995('0x3d')]({},_0x514445,_0x4b6f99[_0x7995('0x3f')]);var _0x298fc2={'where':_0x514445[_0x7995('0x3b')]};return db[_0x7995('0x40')][_0x7995('0x1f')](_0x298fc2)[_0x7995('0x26')](function(_0x6fe77b){_0x3250e0[_0x7995('0x1f')]=_0x6fe77b;if(_0x4b6f99[_0x7995('0x34')]['includeAll']){_0x514445['include']=[{'all':!![]}];}return db[_0x7995('0x40')][_0x7995('0x41')](_0x514445);})['then'](function(_0x4b0855){_0x3250e0[_0x7995('0x42')]=_0x4b0855;return _0x3250e0;})['then'](respondWithFilteredResult(_0x9b2a15,_0x514445))['catch'](handleError(_0x9b2a15,null));};exports[_0x7995('0x43')]=function(_0x36e28b,_0x35c8ff){var _0x576b96={'raw':!![],'where':{'id':_0x36e28b['params']['id']}},_0x46ac4f={};_0x46ac4f[_0x7995('0x2f')]=_['keys'](db['ChatOfflineMessage'][_0x7995('0x44')]);_0x46ac4f[_0x7995('0x34')]=_[_0x7995('0x31')](_0x36e28b[_0x7995('0x34')]);_0x46ac4f['filters']=_[_0x7995('0x33')](_0x46ac4f[_0x7995('0x2f')],_0x46ac4f[_0x7995('0x34')]);_0x576b96[_0x7995('0x35')]=_['intersection'](_0x46ac4f['model'],qs[_0x7995('0x36')](_0x36e28b['query'][_0x7995('0x36')]));_0x576b96['attributes']=_0x576b96[_0x7995('0x35')]['length']?_0x576b96[_0x7995('0x35')]:_0x46ac4f[_0x7995('0x2f')];if(_0x36e28b['query'][_0x7995('0x45')]){_0x576b96[_0x7995('0x46')]=[{'all':!![]}];}_0x576b96=_[_0x7995('0x3d')]({},_0x576b96,_0x36e28b[_0x7995('0x3f')]);return db['ChatOfflineMessage'][_0x7995('0x47')](_0x576b96)[_0x7995('0x26')](handleEntityNotFound(_0x35c8ff,null))[_0x7995('0x26')](respondWithResult(_0x35c8ff,null))['catch'](handleError(_0x35c8ff,null));};exports[_0x7995('0x48')]=function(_0x44f516,_0x511567){return db[_0x7995('0x40')][_0x7995('0x48')](_0x44f516['body'],{})[_0x7995('0x26')](respondWithResult(_0x511567,0xc9))[_0x7995('0x49')](handleError(_0x511567,null));};exports['update']=function(_0x3d1dbb,_0x5843ba){if(_0x3d1dbb[_0x7995('0x4a')]['id']){delete _0x3d1dbb[_0x7995('0x4a')]['id'];}return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x3d1dbb[_0x7995('0x4b')]['id']}})[_0x7995('0x26')](handleEntityNotFound(_0x5843ba,null))[_0x7995('0x26')](saveUpdates(_0x3d1dbb['body'],null))[_0x7995('0x26')](respondWithResult(_0x5843ba,null))[_0x7995('0x49')](handleError(_0x5843ba,null));};exports[_0x7995('0x27')]=function(_0x4ffc8a,_0x19da63){return db[_0x7995('0x4c')][_0x7995('0x41')]({'where':{'ChatOfflineMessageId':_0x4ffc8a['params']['id']},'raw':!![]})['then'](function(_0x5a592e){_0x5a592e[_0x7995('0x4d')](function(_0x1fd1ca){var _0x4cf5db=path[_0x7995('0x4e')](config[_0x7995('0x4f')],_0x7995('0x50'),_0x7995('0x51'),_0x7995('0x52'),'offline-chat',_0x1fd1ca[_0x7995('0x53')]);var _0x4ab09f=fs[_0x7995('0x54')](_0x4cf5db);if(_0x4ab09f)fs_extra[_0x7995('0x55')](_0x4cf5db);});})[_0x7995('0x26')](function(){return db['ChatOfflineMessage']['find']({'where':{'id':_0x4ffc8a['params']['id']},'individualHooks':!![]});})['then'](handleEntityNotFound(_0x19da63,null))[_0x7995('0x26')](removeEntity(_0x19da63,null))[_0x7995('0x49')](handleError(_0x19da63,null));};exports[_0x7995('0x56')]=function(_0x150261,_0x1d957e){return db[_0x7995('0x40')][_0x7995('0x56')]()[_0x7995('0x26')](respondWithResult(_0x1d957e,null))[_0x7995('0x49')](handleError(_0x1d957e,null));};
\ No newline at end of file
+var _0x7a54=['filter','VIRTUAL','includeAll','include','findAll','rows','show','params','length','merge','options','find','catch','body','Attachment','join','server','attachments','offline-chat','basename','remove','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','ChatOfflineMessage','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x1cfa0d,_0x4391f2){var _0xe33279=function(_0x3ce7c1){while(--_0x3ce7c1){_0x1cfa0d['push'](_0x1cfa0d['shift']());}};_0xe33279(++_0x4391f2);}(_0x7a54,0x106));var _0x47a5=function(_0x35140e,_0x54d78e){_0x35140e=_0x35140e-0x0;var _0x529c31=_0x7a54[_0x35140e];return _0x529c31;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));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 authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x29')]=function(_0x136b14,_0x16631f){var _0x361bfa={},_0x1127f8={},_0x11a4fa={'count':0x0,'rows':[]};var _0x3ad507=_['map'](db[_0x47a5('0x2a')]['rawAttributes'],function(_0x2ef875){return{'name':_0x2ef875[_0x47a5('0x2b')],'type':_0x2ef875[_0x47a5('0x2c')]['key']};});_0x1127f8[_0x47a5('0x2d')]=_[_0x47a5('0x2e')](_0x3ad507,_0x47a5('0x27'));_0x1127f8[_0x47a5('0x2f')]=_['keys'](_0x136b14['query']);_0x1127f8[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x1127f8['model'],_0x1127f8['query']);_0x361bfa[_0x47a5('0x32')]=_[_0x47a5('0x31')](_0x1127f8['model'],qs[_0x47a5('0x33')](_0x136b14['query'][_0x47a5('0x33')]));_0x361bfa[_0x47a5('0x32')]=_0x361bfa['attributes']['length']?_0x361bfa[_0x47a5('0x32')]:_0x1127f8['model'];if(!_0x136b14[_0x47a5('0x2f')][_0x47a5('0x34')](_0x47a5('0x35'))){_0x361bfa['limit']=qs[_0x47a5('0x1d')](_0x136b14['query']['limit']);_0x361bfa[_0x47a5('0x1a')]=qs['offset'](_0x136b14[_0x47a5('0x2f')]['offset']);}_0x361bfa[_0x47a5('0x36')]=qs[_0x47a5('0x37')](_0x136b14[_0x47a5('0x2f')][_0x47a5('0x37')]);_0x361bfa[_0x47a5('0x38')]=qs[_0x47a5('0x30')](_[_0x47a5('0x39')](_0x136b14[_0x47a5('0x2f')],_0x1127f8[_0x47a5('0x30')]),_0x3ad507);if(_0x136b14['query'][_0x47a5('0x3a')]){_0x361bfa[_0x47a5('0x38')]=_['merge'](_0x361bfa[_0x47a5('0x38')],{'$or':_[_0x47a5('0x2e')](_0x3ad507,function(_0x1d4348){if(_0x1d4348['type']!==_0x47a5('0x3b')){var _0x10f660={};_0x10f660[_0x1d4348['name']]={'$like':'%'+_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3a')]+'%'};return _0x10f660;}})});}_0x361bfa=_['merge']({},_0x361bfa,_0x136b14['options']);var _0x5ebd8c={'where':_0x361bfa[_0x47a5('0x38')]};return db['ChatOfflineMessage'][_0x47a5('0x1c')](_0x5ebd8c)[_0x47a5('0x23')](function(_0x301a85){_0x11a4fa[_0x47a5('0x1c')]=_0x301a85;if(_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x361bfa[_0x47a5('0x3d')]=[{'all':!![]}];}return db[_0x47a5('0x2a')][_0x47a5('0x3e')](_0x361bfa);})[_0x47a5('0x23')](function(_0x280500){_0x11a4fa[_0x47a5('0x3f')]=_0x280500;return _0x11a4fa;})[_0x47a5('0x23')](respondWithFilteredResult(_0x16631f,_0x361bfa))['catch'](handleError(_0x16631f,null));};exports[_0x47a5('0x40')]=function(_0x1c36fa,_0x331474){var _0x23bd8d={'raw':!![],'where':{'id':_0x1c36fa[_0x47a5('0x41')]['id']}},_0x586f4f={};_0x586f4f['model']=_['keys'](db['ChatOfflineMessage']['rawAttributes']);_0x586f4f[_0x47a5('0x2f')]=_['keys'](_0x1c36fa[_0x47a5('0x2f')]);_0x586f4f[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x586f4f['model'],_0x586f4f[_0x47a5('0x2f')]);_0x23bd8d[_0x47a5('0x32')]=_['intersection'](_0x586f4f['model'],qs[_0x47a5('0x33')](_0x1c36fa['query'][_0x47a5('0x33')]));_0x23bd8d[_0x47a5('0x32')]=_0x23bd8d[_0x47a5('0x32')][_0x47a5('0x42')]?_0x23bd8d[_0x47a5('0x32')]:_0x586f4f[_0x47a5('0x2d')];if(_0x1c36fa[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x23bd8d[_0x47a5('0x3d')]=[{'all':!![]}];}_0x23bd8d=_[_0x47a5('0x43')]({},_0x23bd8d,_0x1c36fa[_0x47a5('0x44')]);return db[_0x47a5('0x2a')][_0x47a5('0x45')](_0x23bd8d)[_0x47a5('0x23')](handleEntityNotFound(_0x331474,null))[_0x47a5('0x23')](respondWithResult(_0x331474,null))[_0x47a5('0x46')](handleError(_0x331474,null));};exports['create']=function(_0x2d38de,_0x23bb04){return db['ChatOfflineMessage']['create'](_0x2d38de[_0x47a5('0x47')],{})['then'](respondWithResult(_0x23bb04,0xc9))[_0x47a5('0x46')](handleError(_0x23bb04,null));};exports[_0x47a5('0x22')]=function(_0x54c35f,_0x4f62d3){if(_0x54c35f[_0x47a5('0x47')]['id']){delete _0x54c35f['body']['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x54c35f[_0x47a5('0x41')]['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x4f62d3,null))[_0x47a5('0x23')](saveUpdates(_0x54c35f[_0x47a5('0x47')],null))[_0x47a5('0x23')](respondWithResult(_0x4f62d3,null))['catch'](handleError(_0x4f62d3,null));};exports['destroy']=function(_0x2dd1db,_0x411230){return db[_0x47a5('0x48')][_0x47a5('0x3e')]({'where':{'ChatOfflineMessageId':_0x2dd1db[_0x47a5('0x41')]['id']},'raw':!![]})[_0x47a5('0x23')](function(_0x249de5){_0x249de5['forEach'](function(_0x45cca5){var _0x1c9a62=path[_0x47a5('0x49')](config['root'],_0x47a5('0x4a'),'files',_0x47a5('0x4b'),_0x47a5('0x4c'),_0x45cca5[_0x47a5('0x4d')]);var _0xf03bd5=fs['existsSync'](_0x1c9a62);if(_0xf03bd5)fs_extra[_0x47a5('0x4e')](_0x1c9a62);});})[_0x47a5('0x23')](function(){return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x2dd1db[_0x47a5('0x41')]['id']},'individualHooks':!![]});})[_0x47a5('0x23')](handleEntityNotFound(_0x411230,null))[_0x47a5('0x23')](removeEntity(_0x411230,null))['catch'](handleError(_0x411230,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e){return db[_0x47a5('0x2a')][_0x47a5('0x4f')]()[_0x47a5('0x23')](respondWithResult(_0x187d7e,null))['catch'](handleError(_0x187d7e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf5b9=['../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./chatOfflineMessage.attributes','define','ChatOfflineMessage','chat_offline_messages','utf8mb4','utf8mb4_unicode_ci','util'];(function(_0x39322a,_0x1d0ba2){var _0x22785b=function(_0x2be8b6){while(--_0x2be8b6){_0x39322a['push'](_0x39322a['shift']());}};_0x22785b(++_0x1d0ba2);}(_0xf5b9,0x6f));var _0x9f5b=function(_0x163a31,_0x4ff83e){_0x163a31=_0x163a31-0x0;var _0x3f99c7=_0xf5b9[_0x163a31];return _0x3f99c7;};'use strict';var _=require('lodash');var util=require(_0x9f5b('0x0'));var logger=require(_0x9f5b('0x1'))(_0x9f5b('0x2'));var moment=require('moment');var BPromise=require(_0x9f5b('0x3'));var rp=require(_0x9f5b('0x4'));var fs=require('fs');var path=require(_0x9f5b('0x5'));var rimraf=require(_0x9f5b('0x6'));var config=require(_0x9f5b('0x7'));var attributes=require(_0x9f5b('0x8'));module['exports']=function(_0x317bb1,_0x1729d1){return _0x317bb1[_0x9f5b('0x9')](_0x9f5b('0xa'),attributes,{'tableName':_0x9f5b('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x9f5b('0xc'),'collate':_0x9f5b('0xd')});};
\ No newline at end of file
+var _0x439e=['utf8mb4_unicode_ci','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatOfflineMessage.attributes','exports','define','ChatOfflineMessage'];(function(_0x2f0057,_0x448b27){var _0x17f2c3=function(_0x12efc3){while(--_0x12efc3){_0x2f0057['push'](_0x2f0057['shift']());}};_0x17f2c3(++_0x448b27);}(_0x439e,0x153));var _0xe439=function(_0x3320fb,_0x519c04){_0x3320fb=_0x3320fb-0x0;var _0x4329e9=_0x439e[_0x3320fb];return _0x4329e9;};'use strict';var _=require('lodash');var util=require(_0xe439('0x0'));var logger=require(_0xe439('0x1'))('api');var moment=require(_0xe439('0x2'));var BPromise=require(_0xe439('0x3'));var rp=require(_0xe439('0x4'));var fs=require('fs');var path=require(_0xe439('0x5'));var rimraf=require(_0xe439('0x6'));var config=require(_0xe439('0x7'));var attributes=require(_0xe439('0x8'));module[_0xe439('0x9')]=function(_0x2d7adb,_0x392dfb){return _0x2d7adb[_0xe439('0xa')](_0xe439('0xb'),attributes,{'tableName':'chat_offline_messages','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xe439('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ce8=['message','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','error','code'];(function(_0x1fd2e6,_0x319411){var _0x38284b=function(_0x220170){while(--_0x220170){_0x1fd2e6['push'](_0x1fd2e6['shift']());}};_0x38284b(++_0x319411);}(_0x6ce8,0x13e));var _0x86ce=function(_0x3b0731,_0xcf9925){_0x3b0731=_0x3b0731-0x0;var _0x4204d7=_0x6ce8[_0x3b0731];return _0x4204d7;};'use strict';var _=require(_0x86ce('0x0'));var util=require('util');var moment=require(_0x86ce('0x1'));var BPromise=require('bluebird');var rs=require(_0x86ce('0x2'));var fs=require('fs');var Redis=require(_0x86ce('0x3'));var db=require(_0x86ce('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x86ce('0x5'))(_0x86ce('0x6'));var config=require(_0x86ce('0x7'));var jayson=require(_0x86ce('0x8'));var client=jayson[_0x86ce('0x9')][_0x86ce('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x28d407,_0x40766c,_0x453ff4){return new BPromise(function(_0xfc6cae,_0x13bf81){return client['request'](_0x28d407,_0x453ff4)[_0x86ce('0xb')](function(_0x1acb99){logger[_0x86ce('0xc')](_0x86ce('0xd'),_0x40766c,_0x86ce('0xe'));logger['debug'](_0x86ce('0xf'),_0x40766c,_0x86ce('0xe'),JSON['stringify'](_0x1acb99));if(_0x1acb99[_0x86ce('0x10')]){if(_0x1acb99[_0x86ce('0x10')][_0x86ce('0x11')]===0x1f4){logger[_0x86ce('0x10')](_0x86ce('0xd'),_0x40766c,_0x1acb99[_0x86ce('0x10')][_0x86ce('0x12')]);return _0x13bf81(_0x1acb99['error'][_0x86ce('0x12')]);}logger[_0x86ce('0x10')](_0x86ce('0xd'),_0x40766c,_0x1acb99[_0x86ce('0x10')][_0x86ce('0x12')]);return _0xfc6cae(_0x1acb99[_0x86ce('0x10')]['message']);}else{logger[_0x86ce('0xc')](_0x86ce('0xd'),_0x40766c,_0x86ce('0xe'));_0xfc6cae(_0x1acb99[_0x86ce('0x13')][_0x86ce('0x12')]);}})[_0x86ce('0x14')](function(_0x556525){logger[_0x86ce('0x10')]('ChatOfflineMessage,\x20%s,\x20%s',_0x40766c,_0x556525);_0x13bf81(_0x556525);});});}
\ No newline at end of file
+var _0x535f=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','debug','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','error','code','ChatOfflineMessage,\x20%s,\x20%s','message','result','catch'];(function(_0x3f994d,_0x249d72){var _0x5309b4=function(_0x545307){while(--_0x545307){_0x3f994d['push'](_0x3f994d['shift']());}};_0x5309b4(++_0x249d72);}(_0x535f,0x111));var _0xf535=function(_0x545c73,_0x1d886f){_0x545c73=_0x545c73-0x0;var _0x194561=_0x535f[_0x545c73];return _0x194561;};'use strict';var _=require('lodash');var util=require(_0xf535('0x0'));var moment=require(_0xf535('0x1'));var BPromise=require('bluebird');var rs=require(_0xf535('0x2'));var fs=require('fs');var Redis=require(_0xf535('0x3'));var db=require(_0xf535('0x4'))['db'];var utils=require(_0xf535('0x5'));var logger=require('../../config/logger')(_0xf535('0x6'));var config=require(_0xf535('0x7'));var jayson=require(_0xf535('0x8'));var client=jayson[_0xf535('0x9')][_0xf535('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xc74104,_0x580328,_0x510b86){return new BPromise(function(_0x17f72e,_0x156c64){return client[_0xf535('0xb')](_0xc74104,_0x510b86)['then'](function(_0x244189){logger[_0xf535('0xc')]('ChatOfflineMessage,\x20%s,\x20%s',_0x580328,'request\x20sent');logger[_0xf535('0xd')](_0xf535('0xe'),_0x580328,'request\x20sent',JSON['stringify'](_0x244189));if(_0x244189[_0xf535('0xf')]){if(_0x244189[_0xf535('0xf')][_0xf535('0x10')]===0x1f4){logger[_0xf535('0xf')](_0xf535('0x11'),_0x580328,_0x244189['error'][_0xf535('0x12')]);return _0x156c64(_0x244189[_0xf535('0xf')][_0xf535('0x12')]);}logger[_0xf535('0xf')](_0xf535('0x11'),_0x580328,_0x244189[_0xf535('0xf')][_0xf535('0x12')]);return _0x17f72e(_0x244189[_0xf535('0xf')][_0xf535('0x12')]);}else{logger[_0xf535('0xc')](_0xf535('0x11'),_0x580328,'request\x20sent');_0x17f72e(_0x244189[_0xf535('0x13')][_0xf535('0x12')]);}})[_0xf535('0x14')](function(_0x3ffb1b){logger[_0xf535('0xf')](_0xf535('0x11'),_0x580328,_0x3ffb1b);_0x156c64(_0x3ffb1b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d85=['express','fs-extra','../../config/environment','get','/describe','isAuthenticated','describe','/:id','show','put','update','delete','destroy','exports','util','path','connect-timeout'];(function(_0x48ecd2,_0x481ad3){var _0x5a4457=function(_0xdd9abd){while(--_0xdd9abd){_0x48ecd2['push'](_0x48ecd2['shift']());}};_0x5a4457(++_0x481ad3);}(_0x7d85,0x1ea));var _0x57d8=function(_0x360213,_0x34aca3){_0x360213=_0x360213-0x0;var _0x44a7fd=_0x7d85[_0x360213];return _0x44a7fd;};'use strict';var multer=require('multer');var util=require(_0x57d8('0x0'));var path=require(_0x57d8('0x1'));var timeout=require(_0x57d8('0x2'));var express=require(_0x57d8('0x3'));var router=express['Router']();var fs_extra=require(_0x57d8('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x57d8('0x5'));var controller=require('./chatOfflineMessage.controller');router[_0x57d8('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0x57d8('0x6')](_0x57d8('0x7'),auth[_0x57d8('0x8')](),controller[_0x57d8('0x9')]);router[_0x57d8('0x6')](_0x57d8('0xa'),auth[_0x57d8('0x8')](),controller[_0x57d8('0xb')]);router['post']('/',auth[_0x57d8('0x8')](),controller['create']);router[_0x57d8('0xc')](_0x57d8('0xa'),auth[_0x57d8('0x8')](),controller[_0x57d8('0xd')]);router[_0x57d8('0xe')](_0x57d8('0xa'),auth[_0x57d8('0x8')](),controller[_0x57d8('0xf')]);module[_0x57d8('0x10')]=router;
\ No newline at end of file
+var _0x576a=['../../config/environment','./chatOfflineMessage.controller','get','isAuthenticated','index','/describe','/:id','show','post','put','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service'];(function(_0x31b13c,_0xdffa8){var _0x47dbb4=function(_0x15b0cc){while(--_0x15b0cc){_0x31b13c['push'](_0x31b13c['shift']());}};_0x47dbb4(++_0xdffa8);}(_0x576a,0x111));var _0xa576=function(_0x62bf80,_0x394e38){_0x62bf80=_0x62bf80-0x0;var _0x2890d7=_0x576a[_0x62bf80];return _0x2890d7;};'use strict';var multer=require(_0xa576('0x0'));var util=require(_0xa576('0x1'));var path=require(_0xa576('0x2'));var timeout=require('connect-timeout');var express=require(_0xa576('0x3'));var router=express[_0xa576('0x4')]();var fs_extra=require(_0xa576('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xa576('0x6'));var config=require(_0xa576('0x7'));var controller=require(_0xa576('0x8'));router[_0xa576('0x9')]('/',auth[_0xa576('0xa')](),controller[_0xa576('0xb')]);router[_0xa576('0x9')](_0xa576('0xc'),auth[_0xa576('0xa')](),controller['describe']);router['get'](_0xa576('0xd'),auth[_0xa576('0xa')](),controller[_0xa576('0xe')]);router[_0xa576('0xf')]('/',auth[_0xa576('0xa')](),controller['create']);router[_0xa576('0x10')](_0xa576('0xd'),auth[_0xa576('0xa')](),controller['update']);router[_0xa576('0x11')](_0xa576('0xd'),auth[_0xa576('0xa')](),controller[_0xa576('0x12')]);module[_0xa576('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a65=['sequelize','exports','ENUM','timeout','mouseOver','STRING','INTEGER'];(function(_0x1f9c78,_0x5c4e52){var _0x4e1e5c=function(_0x359715){while(--_0x359715){_0x1f9c78['push'](_0x1f9c78['shift']());}};_0x4e1e5c(++_0x5c4e52);}(_0x3a65,0x157));var _0x53a6=function(_0x252643,_0x5cde88){_0x252643=_0x252643-0x0;var _0x54ae19=_0x3a65[_0x252643];return _0x54ae19;};'use strict';var Sequelize=require(_0x53a6('0x0'));module[_0x53a6('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x53a6('0x2')]('mouseOver',_0x53a6('0x3')),'defaultValue':_0x53a6('0x4')},'selector':{'type':Sequelize[_0x53a6('0x5')]},'timeout':{'type':Sequelize[_0x53a6('0x6')]}};
\ No newline at end of file
+var _0x97eb=['STRING','mouseOver','INTEGER','sequelize','exports'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0x97eb,0x193));var _0xb97e=function(_0x23855f,_0x3837a4){_0x23855f=_0x23855f-0x0;var _0x4f911b=_0x97eb[_0x23855f];return _0x4f911b;};'use strict';var Sequelize=require(_0xb97e('0x0'));module[_0xb97e('0x1')]={'name':{'type':Sequelize[_0xb97e('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xb97e('0x3'),'timeout'),'defaultValue':_0xb97e('0x3')},'selector':{'type':Sequelize[_0xb97e('0x2')]},'timeout':{'type':Sequelize[_0xb97e('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x97d5=['catch','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','show','params','model','ChatProactiveAction','rawAttributes','query','filters','attributes','includeAll','include','merge','options','find'];(function(_0x34131c,_0x5ae18d){var _0x579de6=function(_0xdff697){while(--_0xdff697){_0x34131c['push'](_0x34131c['shift']());}};_0x579de6(++_0x5ae18d);}(_0x97d5,0x199));var _0x597d=function(_0x14a345,_0x4cca7b){_0x14a345=_0x14a345-0x0;var _0x25d3a2=_0x97d5[_0x14a345];return _0x25d3a2;};'use strict';var emlformat=require(_0x597d('0x0'));var rimraf=require(_0x597d('0x1'));var zipdir=require(_0x597d('0x2'));var jsonpatch=require(_0x597d('0x3'));var rp=require(_0x597d('0x4'));var moment=require(_0x597d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x597d('0x6'));var util=require(_0x597d('0x7'));var path=require(_0x597d('0x8'));var sox=require('sox');var csv=require(_0x597d('0x9'));var ejs=require(_0x597d('0xa'));var fs=require('fs');var fs_extra=require(_0x597d('0xb'));var _=require(_0x597d('0xc'));var squel=require(_0x597d('0xd'));var crypto=require(_0x597d('0xe'));var jsforce=require(_0x597d('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x597d('0x9'));var querystring=require(_0x597d('0x10'));var Papa=require('papaparse');var Redis=require(_0x597d('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x597d('0x12'));var as=require(_0x597d('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x597d('0x14'));var utils=require(_0x597d('0x15'));var config=require(_0x597d('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x597d('0x17'))['db'];function respondWithStatusCode(_0x2f464a,_0x355fbd){_0x355fbd=_0x355fbd||0xcc;return function(_0x1664e5){if(_0x1664e5){return _0x2f464a[_0x597d('0x18')](_0x355fbd);}return _0x2f464a[_0x597d('0x19')](_0x355fbd)[_0x597d('0x1a')]();};}function respondWithResult(_0x465ebc,_0x810dce){_0x810dce=_0x810dce||0xc8;return function(_0x11147c){if(_0x11147c){return _0x465ebc[_0x597d('0x19')](_0x810dce)[_0x597d('0x1b')](_0x11147c);}};}function respondWithFilteredResult(_0x290db2,_0x394d1d){return function(_0x4ca1b1){if(_0x4ca1b1){var _0x17b021=typeof _0x394d1d['offset']===_0x597d('0x1c')&&typeof _0x394d1d[_0x597d('0x1d')]==='undefined';var _0x38844b=_0x4ca1b1['count'];var _0x68a5c6=_0x17b021?0x0:_0x394d1d[_0x597d('0x1e')];var _0x525f28=_0x17b021?_0x4ca1b1['count']:_0x394d1d['offset']+_0x394d1d[_0x597d('0x1d')];var _0x32717e;if(_0x525f28>=_0x38844b){_0x525f28=_0x38844b;_0x32717e=0xc8;}else{_0x32717e=0xce;}_0x290db2[_0x597d('0x19')](_0x32717e);return _0x290db2[_0x597d('0x1f')](_0x597d('0x20'),_0x68a5c6+'-'+_0x525f28+'/'+_0x38844b)[_0x597d('0x1b')](_0x4ca1b1);}return null;};}function patchUpdates(_0x4173c9){return function(_0x1f8966){try{jsonpatch[_0x597d('0x21')](_0x1f8966,_0x4173c9,!![]);}catch(_0x349d8a){return BPromise['reject'](_0x349d8a);}return _0x1f8966[_0x597d('0x22')]();};}function saveUpdates(_0x330794,_0x639ac){return function(_0x2d4e7b){if(_0x2d4e7b){return _0x2d4e7b[_0x597d('0x23')](_0x330794)[_0x597d('0x24')](function(_0x529af4){return _0x529af4;});}return null;};}function removeEntity(_0xc6ca7,_0xa0a6da){return function(_0x104476){if(_0x104476){return _0x104476[_0x597d('0x25')]()[_0x597d('0x24')](function(){_0xc6ca7['status'](0xcc)[_0x597d('0x1a')]();});}};}function handleEntityNotFound(_0x8e3c80,_0x1379a2){return function(_0x5a551f){if(!_0x5a551f){_0x8e3c80[_0x597d('0x18')](0x194);}return _0x5a551f;};}function handleError(_0x1713d1,_0x30d783){_0x30d783=_0x30d783||0x1f4;return function(_0x6f424f){logger[_0x597d('0x26')](_0x6f424f[_0x597d('0x27')]);if(_0x6f424f[_0x597d('0x28')]){delete _0x6f424f[_0x597d('0x28')];}_0x1713d1[_0x597d('0x19')](_0x30d783)[_0x597d('0x29')](_0x6f424f);};}exports[_0x597d('0x2a')]=function(_0x249e81,_0x25ffc6){var _0x2fcb0d={'raw':!![],'where':{'id':_0x249e81[_0x597d('0x2b')]['id']}},_0x106b92={};_0x106b92[_0x597d('0x2c')]=_['keys'](db[_0x597d('0x2d')][_0x597d('0x2e')]);_0x106b92['query']=_['keys'](_0x249e81[_0x597d('0x2f')]);_0x106b92[_0x597d('0x30')]=_['intersection'](_0x106b92[_0x597d('0x2c')],_0x106b92[_0x597d('0x2f')]);_0x2fcb0d[_0x597d('0x31')]=_['intersection'](_0x106b92[_0x597d('0x2c')],qs['fields'](_0x249e81[_0x597d('0x2f')]['fields']));_0x2fcb0d['attributes']=_0x2fcb0d['attributes']['length']?_0x2fcb0d['attributes']:_0x106b92[_0x597d('0x2c')];if(_0x249e81[_0x597d('0x2f')][_0x597d('0x32')]){_0x2fcb0d[_0x597d('0x33')]=[{'all':!![]}];}_0x2fcb0d=_[_0x597d('0x34')]({},_0x2fcb0d,_0x249e81[_0x597d('0x35')]);return db[_0x597d('0x2d')][_0x597d('0x36')](_0x2fcb0d)['then'](handleEntityNotFound(_0x25ffc6,null))[_0x597d('0x24')](respondWithResult(_0x25ffc6,null))[_0x597d('0x37')](handleError(_0x25ffc6,null));};exports[_0x597d('0x38')]=function(_0x2d56a1,_0x581541){return db[_0x597d('0x2d')][_0x597d('0x38')](_0x2d56a1[_0x597d('0x39')],{})[_0x597d('0x24')](respondWithResult(_0x581541,0xc9))[_0x597d('0x37')](handleError(_0x581541,null));};exports[_0x597d('0x23')]=function(_0x3807ca,_0x1cf849){if(_0x3807ca[_0x597d('0x39')]['id']){delete _0x3807ca[_0x597d('0x39')]['id'];}return db[_0x597d('0x2d')][_0x597d('0x36')]({'where':{'id':_0x3807ca[_0x597d('0x2b')]['id']}})[_0x597d('0x24')](handleEntityNotFound(_0x1cf849,null))[_0x597d('0x24')](saveUpdates(_0x3807ca[_0x597d('0x39')],null))[_0x597d('0x24')](respondWithResult(_0x1cf849,null))[_0x597d('0x37')](handleError(_0x1cf849,null));};exports[_0x597d('0x25')]=function(_0x13d8ba,_0x5b46cc){return db['ChatProactiveAction'][_0x597d('0x36')]({'where':{'id':_0x13d8ba['params']['id']}})[_0x597d('0x24')](handleEntityNotFound(_0x5b46cc,null))[_0x597d('0x24')](removeEntity(_0x5b46cc,null))['catch'](handleError(_0x5b46cc,null));};
\ No newline at end of file
+var _0xfd6e=['save','update','then','stack','name','send','show','params','model','keys','ChatProactiveAction','query','filters','intersection','attributes','fields','length','include','merge','find','catch','create','body','destroy','eml-format','zip-dir','request-promise','moment','path','ejs','fs-extra','lodash','squel','crypto','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject'];(function(_0x3b5bca,_0x326805){var _0x39833=function(_0x16f56f){while(--_0x16f56f){_0x3b5bca['push'](_0x3b5bca['shift']());}};_0x39833(++_0x326805);}(_0xfd6e,0x16e));var _0xefd6=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xfd6e[_0x3ab51d];return _0x29a04e;};'use strict';var emlformat=require(_0xefd6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xefd6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xefd6('0x2'));var moment=require(_0xefd6('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xefd6('0x4'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xefd6('0x5'));var fs=require('fs');var fs_extra=require(_0xefd6('0x6'));var _=require(_0xefd6('0x7'));var squel=require(_0xefd6('0x8'));var crypto=require(_0xefd6('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xefd6('0xa'));var querystring=require(_0xefd6('0xb'));var Papa=require(_0xefd6('0xc'));var Redis=require('ioredis');var authService=require(_0xefd6('0xd'));var qs=require(_0xefd6('0xe'));var as=require(_0xefd6('0xf'));var hardwareService=require(_0xefd6('0x10'));var logger=require('../../config/logger')(_0xefd6('0x11'));var utils=require(_0xefd6('0x12'));var config=require(_0xefd6('0x13'));var licenseUtil=require(_0xefd6('0x14'));var db=require(_0xefd6('0x15'))['db'];function respondWithStatusCode(_0x34ad42,_0x3a8259){_0x3a8259=_0x3a8259||0xcc;return function(_0x1069f3){if(_0x1069f3){return _0x34ad42['sendStatus'](_0x3a8259);}return _0x34ad42[_0xefd6('0x16')](_0x3a8259)[_0xefd6('0x17')]();};}function respondWithResult(_0x45ac7f,_0x1ade7c){_0x1ade7c=_0x1ade7c||0xc8;return function(_0x1a8cc9){if(_0x1a8cc9){return _0x45ac7f['status'](_0x1ade7c)[_0xefd6('0x18')](_0x1a8cc9);}};}function respondWithFilteredResult(_0x4be0f8,_0x23d864){return function(_0x4d72ca){if(_0x4d72ca){var _0x25a39d=typeof _0x23d864[_0xefd6('0x19')]==='undefined'&&typeof _0x23d864[_0xefd6('0x1a')]===_0xefd6('0x1b');var _0x41e998=_0x4d72ca[_0xefd6('0x1c')];var _0xd59458=_0x25a39d?0x0:_0x23d864[_0xefd6('0x19')];var _0x469c17=_0x25a39d?_0x4d72ca[_0xefd6('0x1c')]:_0x23d864[_0xefd6('0x19')]+_0x23d864[_0xefd6('0x1a')];var _0x1aa125;if(_0x469c17>=_0x41e998){_0x469c17=_0x41e998;_0x1aa125=0xc8;}else{_0x1aa125=0xce;}_0x4be0f8['status'](_0x1aa125);return _0x4be0f8[_0xefd6('0x1d')](_0xefd6('0x1e'),_0xd59458+'-'+_0x469c17+'/'+_0x41e998)[_0xefd6('0x18')](_0x4d72ca);}return null;};}function patchUpdates(_0x3a26c5){return function(_0x122009){try{jsonpatch[_0xefd6('0x1f')](_0x122009,_0x3a26c5,!![]);}catch(_0x499c9b){return BPromise[_0xefd6('0x20')](_0x499c9b);}return _0x122009[_0xefd6('0x21')]();};}function saveUpdates(_0x586388,_0x2b0442){return function(_0x36d030){if(_0x36d030){return _0x36d030[_0xefd6('0x22')](_0x586388)['then'](function(_0x587643){return _0x587643;});}return null;};}function removeEntity(_0x1a0a7f,_0x1b1d41){return function(_0xe763eb){if(_0xe763eb){return _0xe763eb['destroy']()[_0xefd6('0x23')](function(){_0x1a0a7f[_0xefd6('0x16')](0xcc)[_0xefd6('0x17')]();});}};}function handleEntityNotFound(_0x5347fd,_0xf0adca){return function(_0x3d91b4){if(!_0x3d91b4){_0x5347fd['sendStatus'](0x194);}return _0x3d91b4;};}function handleError(_0x2be815,_0x2d71df){_0x2d71df=_0x2d71df||0x1f4;return function(_0x43ffbc){logger['error'](_0x43ffbc[_0xefd6('0x24')]);if(_0x43ffbc[_0xefd6('0x25')]){delete _0x43ffbc[_0xefd6('0x25')];}_0x2be815[_0xefd6('0x16')](_0x2d71df)[_0xefd6('0x26')](_0x43ffbc);};}exports[_0xefd6('0x27')]=function(_0x320e4f,_0x1783d7){var _0x5404ad={'raw':!![],'where':{'id':_0x320e4f[_0xefd6('0x28')]['id']}},_0xca6bad={};_0xca6bad[_0xefd6('0x29')]=_[_0xefd6('0x2a')](db[_0xefd6('0x2b')]['rawAttributes']);_0xca6bad[_0xefd6('0x2c')]=_[_0xefd6('0x2a')](_0x320e4f[_0xefd6('0x2c')]);_0xca6bad[_0xefd6('0x2d')]=_[_0xefd6('0x2e')](_0xca6bad[_0xefd6('0x29')],_0xca6bad['query']);_0x5404ad[_0xefd6('0x2f')]=_[_0xefd6('0x2e')](_0xca6bad[_0xefd6('0x29')],qs[_0xefd6('0x30')](_0x320e4f[_0xefd6('0x2c')][_0xefd6('0x30')]));_0x5404ad[_0xefd6('0x2f')]=_0x5404ad['attributes'][_0xefd6('0x31')]?_0x5404ad[_0xefd6('0x2f')]:_0xca6bad[_0xefd6('0x29')];if(_0x320e4f[_0xefd6('0x2c')]['includeAll']){_0x5404ad[_0xefd6('0x32')]=[{'all':!![]}];}_0x5404ad=_[_0xefd6('0x33')]({},_0x5404ad,_0x320e4f['options']);return db[_0xefd6('0x2b')][_0xefd6('0x34')](_0x5404ad)[_0xefd6('0x23')](handleEntityNotFound(_0x1783d7,null))[_0xefd6('0x23')](respondWithResult(_0x1783d7,null))[_0xefd6('0x35')](handleError(_0x1783d7,null));};exports[_0xefd6('0x36')]=function(_0x351ca5,_0x45a79a){return db[_0xefd6('0x2b')]['create'](_0x351ca5[_0xefd6('0x37')],{})[_0xefd6('0x23')](respondWithResult(_0x45a79a,0xc9))[_0xefd6('0x35')](handleError(_0x45a79a,null));};exports[_0xefd6('0x22')]=function(_0xaf2526,_0x2bf865){if(_0xaf2526['body']['id']){delete _0xaf2526[_0xefd6('0x37')]['id'];}return db[_0xefd6('0x2b')][_0xefd6('0x34')]({'where':{'id':_0xaf2526[_0xefd6('0x28')]['id']}})['then'](handleEntityNotFound(_0x2bf865,null))[_0xefd6('0x23')](saveUpdates(_0xaf2526[_0xefd6('0x37')],null))['then'](respondWithResult(_0x2bf865,null))[_0xefd6('0x35')](handleError(_0x2bf865,null));};exports[_0xefd6('0x38')]=function(_0x536ad1,_0x1d7615){return db[_0xefd6('0x2b')][_0xefd6('0x34')]({'where':{'id':_0x536ad1[_0xefd6('0x28')]['id']}})[_0xefd6('0x23')](handleEntityNotFound(_0x1d7615,null))[_0xefd6('0x23')](removeEntity(_0x1d7615,null))['catch'](handleError(_0x1d7615,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa489=['../../config/logger','moment','rimraf','../../config/environment','./chatProactiveAction.attributes','exports','define','chat_proactive_actions','lodash','util'];(function(_0x2cf2e9,_0xd58ea1){var _0xd3670d=function(_0x272868){while(--_0x272868){_0x2cf2e9['push'](_0x2cf2e9['shift']());}};_0xd3670d(++_0xd58ea1);}(_0xa489,0x166));var _0x9a48=function(_0x48802c,_0x106382){_0x48802c=_0x48802c-0x0;var _0x343cfc=_0xa489[_0x48802c];return _0x343cfc;};'use strict';var _=require(_0x9a48('0x0'));var util=require(_0x9a48('0x1'));var logger=require(_0x9a48('0x2'))('api');var moment=require(_0x9a48('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x9a48('0x4'));var config=require(_0x9a48('0x5'));var attributes=require(_0x9a48('0x6'));module[_0x9a48('0x7')]=function(_0x23c44d,_0x19ac81){return _0x23c44d[_0x9a48('0x8')]('ChatProactiveAction',attributes,{'tableName':_0x9a48('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbbe8=['util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','exports','define','ChatProactiveAction','chat_proactive_actions'];(function(_0x2d89d9,_0x48ff49){var _0x1dc23c=function(_0x4084be){while(--_0x4084be){_0x2d89d9['push'](_0x2d89d9['shift']());}};_0x1dc23c(++_0x48ff49);}(_0xbbe8,0x120));var _0x8bbe=function(_0x21f089,_0x5ebacd){_0x21f089=_0x21f089-0x0;var _0x59c5e7=_0xbbe8[_0x21f089];return _0x59c5e7;};'use strict';var _=require('lodash');var util=require(_0x8bbe('0x0'));var logger=require(_0x8bbe('0x1'))(_0x8bbe('0x2'));var moment=require(_0x8bbe('0x3'));var BPromise=require('bluebird');var rp=require(_0x8bbe('0x4'));var fs=require('fs');var path=require(_0x8bbe('0x5'));var rimraf=require(_0x8bbe('0x6'));var config=require(_0x8bbe('0x7'));var attributes=require('./chatProactiveAction.attributes');module[_0x8bbe('0x8')]=function(_0x33d2ee,_0x35890a){return _0x33d2ee[_0x8bbe('0x9')](_0x8bbe('0xa'),attributes,{'tableName':_0x8bbe('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a6e=['ChatProactiveAction,\x20%s,\x20%s,\x20%s','error','code','message','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','request','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x160c73,_0x2ee678){var _0xd9302=function(_0x169454){while(--_0x169454){_0x160c73['push'](_0x160c73['shift']());}};_0xd9302(++_0x2ee678);}(_0x6a6e,0x15a));var _0xe6a6=function(_0x5b87ce,_0x20b7f6){_0x5b87ce=_0x5b87ce-0x0;var _0x597aa7=_0x6a6e[_0x5b87ce];return _0x597aa7;};'use strict';var _=require(_0xe6a6('0x0'));var util=require(_0xe6a6('0x1'));var moment=require('moment');var BPromise=require(_0xe6a6('0x2'));var rs=require(_0xe6a6('0x3'));var fs=require('fs');var Redis=require(_0xe6a6('0x4'));var db=require(_0xe6a6('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe6a6('0x6'))(_0xe6a6('0x7'));var config=require(_0xe6a6('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xe6a6('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x350c03,_0x5d96a3,_0x488bfd){return new BPromise(function(_0x38e177,_0x558b1d){return client[_0xe6a6('0xa')](_0x350c03,_0x488bfd)['then'](function(_0x93b99e){logger[_0xe6a6('0xb')](_0xe6a6('0xc'),_0x5d96a3,_0xe6a6('0xd'));logger[_0xe6a6('0xe')](_0xe6a6('0xf'),_0x5d96a3,_0xe6a6('0xd'),JSON['stringify'](_0x93b99e));if(_0x93b99e[_0xe6a6('0x10')]){if(_0x93b99e[_0xe6a6('0x10')][_0xe6a6('0x11')]===0x1f4){logger[_0xe6a6('0x10')](_0xe6a6('0xc'),_0x5d96a3,_0x93b99e['error'][_0xe6a6('0x12')]);return _0x558b1d(_0x93b99e[_0xe6a6('0x10')][_0xe6a6('0x12')]);}logger['error']('ChatProactiveAction,\x20%s,\x20%s',_0x5d96a3,_0x93b99e['error'][_0xe6a6('0x12')]);return _0x38e177(_0x93b99e[_0xe6a6('0x10')][_0xe6a6('0x12')]);}else{logger[_0xe6a6('0xb')](_0xe6a6('0xc'),_0x5d96a3,_0xe6a6('0xd'));_0x38e177(_0x93b99e['result'][_0xe6a6('0x12')]);}})['catch'](function(_0x595b83){logger[_0xe6a6('0x10')](_0xe6a6('0xc'),_0x5d96a3,_0x595b83);_0x558b1d(_0x595b83);});});}
\ No newline at end of file
+var _0x4095=['debug','ChatProactiveAction,\x20%s,\x20%s,\x20%s','error','code','ChatProactiveAction,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','info','request\x20sent'];(function(_0x3a891f,_0x10e7ef){var _0x4ec879=function(_0x241515){while(--_0x241515){_0x3a891f['push'](_0x3a891f['shift']());}};_0x4ec879(++_0x10e7ef);}(_0x4095,0xce));var _0x5409=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x4095[_0x24061a];return _0x82054e;};'use strict';var _=require(_0x5409('0x0'));var util=require(_0x5409('0x1'));var moment=require(_0x5409('0x2'));var BPromise=require(_0x5409('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5409('0x4'));var db=require(_0x5409('0x5'))['db'];var utils=require(_0x5409('0x6'));var logger=require(_0x5409('0x7'))('rpc');var config=require(_0x5409('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5409('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1db913,_0x1b2436,_0x5502d3){return new BPromise(function(_0x35d69c,_0x3d1c8d){return client[_0x5409('0xa')](_0x1db913,_0x5502d3)[_0x5409('0xb')](function(_0x46f3e0){logger[_0x5409('0xc')]('ChatProactiveAction,\x20%s,\x20%s',_0x1b2436,_0x5409('0xd'));logger[_0x5409('0xe')](_0x5409('0xf'),_0x1b2436,_0x5409('0xd'),JSON['stringify'](_0x46f3e0));if(_0x46f3e0[_0x5409('0x10')]){if(_0x46f3e0[_0x5409('0x10')][_0x5409('0x11')]===0x1f4){logger['error'](_0x5409('0x12'),_0x1b2436,_0x46f3e0[_0x5409('0x10')][_0x5409('0x13')]);return _0x3d1c8d(_0x46f3e0[_0x5409('0x10')]['message']);}logger['error']('ChatProactiveAction,\x20%s,\x20%s',_0x1b2436,_0x46f3e0[_0x5409('0x10')][_0x5409('0x13')]);return _0x35d69c(_0x46f3e0[_0x5409('0x10')][_0x5409('0x13')]);}else{logger[_0x5409('0xc')](_0x5409('0x12'),_0x1b2436,_0x5409('0xd'));_0x35d69c(_0x46f3e0[_0x5409('0x14')][_0x5409('0x13')]);}})[_0x5409('0x15')](function(_0x9683a0){logger['error'](_0x5409('0x12'),_0x1b2436,_0x9683a0);_0x3d1c8d(_0x9683a0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','get','/:id','isAuthenticated','show','create','destroy','exports'];(function(_0x2baee0,_0x4ec1b7){var _0x5eedd1=function(_0x3928f5){while(--_0x3928f5){_0x2baee0['push'](_0x2baee0['shift']());}};_0x5eedd1(++_0x4ec1b7);}(_0x55ca,0x126));var _0xa55c=function(_0x31880d,_0x4f0ff3){_0x31880d=_0x31880d-0x0;var _0x423823=_0x55ca[_0x31880d];return _0x423823;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')](_0xa55c('0x8'),auth[_0xa55c('0x9')](),controller[_0xa55c('0xa')]);router['post']('/',auth[_0xa55c('0x9')](),controller[_0xa55c('0xb')]);router['put'](_0xa55c('0x8'),auth[_0xa55c('0x9')](),controller['update']);router['delete'](_0xa55c('0x8'),auth[_0xa55c('0x9')](),controller[_0xa55c('0xc')]);module[_0xa55c('0xd')]=router;
\ No newline at end of file
+var _0xee14=['/:id','show','post','isAuthenticated','create','put','update','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller'];(function(_0x221b0c,_0x473fa2){var _0x3b8809=function(_0x179877){while(--_0x179877){_0x221b0c['push'](_0x221b0c['shift']());}};_0x3b8809(++_0x473fa2);}(_0xee14,0x13a));var _0x4ee1=function(_0x508cda,_0x3a04cd){_0x508cda=_0x508cda-0x0;var _0x29153f=_0xee14[_0x508cda];return _0x29153f;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x4ee1('0x0'));var timeout=require(_0x4ee1('0x1'));var express=require(_0x4ee1('0x2'));var router=express[_0x4ee1('0x3')]();var fs_extra=require(_0x4ee1('0x4'));var auth=require(_0x4ee1('0x5'));var interaction=require(_0x4ee1('0x6'));var config=require(_0x4ee1('0x7'));var controller=require(_0x4ee1('0x8'));router['get'](_0x4ee1('0x9'),auth['isAuthenticated'](),controller[_0x4ee1('0xa')]);router[_0x4ee1('0xb')]('/',auth[_0x4ee1('0xc')](),controller[_0x4ee1('0xd')]);router[_0x4ee1('0xe')](_0x4ee1('0x9'),auth['isAuthenticated'](),controller[_0x4ee1('0xf')]);router[_0x4ee1('0x10')]('/:id',auth[_0x4ee1('0xc')](),controller[_0x4ee1('0x11')]);module[_0x4ee1('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3987=['sequelize','STRING','name','INTEGER','ENUM','beepall'];(function(_0xb729d2,_0x131a0e){var _0x181500=function(_0x38cdec){while(--_0x38cdec){_0xb729d2['push'](_0xb729d2['shift']());}};_0x181500(++_0x131a0e);}(_0x3987,0x16e));var _0x7398=function(_0x240d0d,_0x2fda9b){_0x240d0d=_0x240d0d-0x0;var _0x4cdb1c=_0x3987[_0x240d0d];return _0x4cdb1c;};'use strict';var Sequelize=require(_0x7398('0x0'));module['exports']={'name':{'type':Sequelize[_0x7398('0x1')],'unique':_0x7398('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x7398('0x1')]},'timeout':{'type':Sequelize[_0x7398('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x7398('0x4')]('rrmemory',_0x7398('0x5'),'roundrobin')}};
\ No newline at end of file
+var _0x742e=['ENUM','rrmemory','sequelize','exports','name','INTEGER'];(function(_0xa3bcb3,_0x1c15f6){var _0xdaf64c=function(_0x15af48){while(--_0x15af48){_0xa3bcb3['push'](_0xa3bcb3['shift']());}};_0xdaf64c(++_0x1c15f6);}(_0x742e,0x11c));var _0xe742=function(_0x47c47f,_0x310616){_0x47c47f=_0x47c47f-0x0;var _0x438346=_0x742e[_0x47c47f];return _0x438346;};'use strict';var Sequelize=require(_0xe742('0x0'));module[_0xe742('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xe742('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0xe742('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xe742('0x4')](_0xe742('0x5'),'beepall','roundrobin')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe4f8=['push','toString','sequelize','every','TeamId','includes','union','compact','value','transaction','isEmpty','removeAgents','forEach','addAgents','omit','spread','emit','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','request-promise','moment','util','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','redis','defaults','localhost','./chatQueue.socket','register','jayson/promise','http','then','debug','ChatQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','info','ChatQueue,\x20%s,\x20%s','result','catch','sendStatus','end','status','offset','undefined','limit','count','set','apply','reject','save','update','get','ChatQueues','UserProfileResource','stack','send','index','map','rawAttributes','fieldName','type','key','model','name','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','ChatQueue','include','findAll','params','includeAll','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserChatQueue','hasOwnProperty','ChatQueueId','User','findAndCountAll','UserId','agent','chatPause','createdAt','rows','format','%s/%s','SIP','updatedAt','findOne','Team','ids','Agents','voicePause','interface','flatMap','each','findOrCreate','userChatQueue:save','removeTeams','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','clone','ut.UserId\x20=\x20?'];(function(_0x2c73c6,_0x28332b){var _0x2e203c=function(_0x181ffa){while(--_0x181ffa){_0x2c73c6['push'](_0x2c73c6['shift']());}};_0x2e203c(++_0x28332b);}(_0xe4f8,0x1d3));var _0x8e4f=function(_0x29e35f,_0x4859ef){_0x29e35f=_0x29e35f-0x0;var _0x266b74=_0xe4f8[_0x29e35f];return _0x266b74;};'use strict';var emlformat=require(_0x8e4f('0x0'));var rimraf=require(_0x8e4f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8e4f('0x2'));var moment=require(_0x8e4f('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8e4f('0x4'));var path=require('path');var sox=require(_0x8e4f('0x5'));var csv=require('to-csv');var ejs=require(_0x8e4f('0x6'));var fs=require('fs');var fs_extra=require(_0x8e4f('0x7'));var _=require(_0x8e4f('0x8'));var squel=require(_0x8e4f('0x9'));var crypto=require(_0x8e4f('0xa'));var jsforce=require(_0x8e4f('0xb'));var deskjs=require(_0x8e4f('0xc'));var toCsv=require(_0x8e4f('0xd'));var querystring=require(_0x8e4f('0xe'));var Papa=require(_0x8e4f('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x8e4f('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8e4f('0x11'))('api');var utils=require(_0x8e4f('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x8e4f('0x13'));var db=require('../../mysqldb')['db'];config[_0x8e4f('0x14')]=_[_0x8e4f('0x15')](config['redis'],{'host':_0x8e4f('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8e4f('0x14')]));require(_0x8e4f('0x17'))[_0x8e4f('0x18')](socket);var jayson=require(_0x8e4f('0x19'));var client=jayson['client'][_0x8e4f('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x8dcb89,_0x477e1f,_0x330b0f,_0x229f4a){return new BPromise(function(_0x478138,_0x1b9e55){var _0x470fe6=_0x229f4a||client;return _0x470fe6['request'](_0x8dcb89,_0x330b0f)[_0x8e4f('0x1b')](function(_0x30189a){logger['info']('ChatQueue,\x20%s,\x20%s',_0x477e1f,'request\x20sent');logger[_0x8e4f('0x1c')](_0x8e4f('0x1d'),_0x477e1f,_0x8e4f('0x1e'),JSON[_0x8e4f('0x1f')](_0x30189a));if(_0x30189a['error']){if(_0x30189a[_0x8e4f('0x20')]['code']===0x1f4){logger[_0x8e4f('0x20')]('ChatQueue,\x20%s,\x20%s',_0x477e1f,_0x30189a['error'][_0x8e4f('0x21')]);return _0x1b9e55(_0x30189a[_0x8e4f('0x20')][_0x8e4f('0x21')]);}logger[_0x8e4f('0x20')]('ChatQueue,\x20%s,\x20%s',_0x477e1f,_0x30189a['error'][_0x8e4f('0x21')]);return _0x478138(_0x30189a[_0x8e4f('0x20')][_0x8e4f('0x21')]);}else{logger[_0x8e4f('0x22')](_0x8e4f('0x23'),_0x477e1f,_0x8e4f('0x1e'));_0x478138(_0x30189a[_0x8e4f('0x24')][_0x8e4f('0x21')]);}})[_0x8e4f('0x25')](function(_0x2ae7df){logger['error']('ChatQueue,\x20%s,\x20%s',_0x477e1f,_0x2ae7df);_0x1b9e55(_0x2ae7df);});});}function respondWithStatusCode(_0x32ff06,_0x5b0ab9){_0x5b0ab9=_0x5b0ab9||0xcc;return function(_0x52c905){if(_0x52c905){return _0x32ff06[_0x8e4f('0x26')](_0x5b0ab9);}return _0x32ff06['status'](_0x5b0ab9)[_0x8e4f('0x27')]();};}function respondWithResult(_0x96d688,_0x4a270a){_0x4a270a=_0x4a270a||0xc8;return function(_0x447be6){if(_0x447be6){return _0x96d688[_0x8e4f('0x28')](_0x4a270a)['json'](_0x447be6);}};}function respondWithFilteredResult(_0x48d915,_0x3d2e3c){return function(_0x2d22ff){if(_0x2d22ff){var _0x41b382=typeof _0x3d2e3c[_0x8e4f('0x29')]===_0x8e4f('0x2a')&&typeof _0x3d2e3c[_0x8e4f('0x2b')]==='undefined';var _0x23f297=_0x2d22ff['count'];var _0x4f855e=_0x41b382?0x0:_0x3d2e3c[_0x8e4f('0x29')];var _0x249af4=_0x41b382?_0x2d22ff[_0x8e4f('0x2c')]:_0x3d2e3c[_0x8e4f('0x29')]+_0x3d2e3c[_0x8e4f('0x2b')];var _0x3ad949;if(_0x249af4>=_0x23f297){_0x249af4=_0x23f297;_0x3ad949=0xc8;}else{_0x3ad949=0xce;}_0x48d915[_0x8e4f('0x28')](_0x3ad949);return _0x48d915[_0x8e4f('0x2d')]('Content-Range',_0x4f855e+'-'+_0x249af4+'/'+_0x23f297)['json'](_0x2d22ff);}return null;};}function patchUpdates(_0x4f78e9){return function(_0x53dc50){try{jsonpatch[_0x8e4f('0x2e')](_0x53dc50,_0x4f78e9,!![]);}catch(_0x3d3acf){return BPromise[_0x8e4f('0x2f')](_0x3d3acf);}return _0x53dc50[_0x8e4f('0x30')]();};}function saveUpdates(_0x2e6418,_0x229470){return function(_0x5994de){if(_0x5994de){return _0x5994de[_0x8e4f('0x31')](_0x2e6418)[_0x8e4f('0x1b')](function(_0x4dbf89){return _0x4dbf89;});}return null;};}function removeEntity(_0x4b1000,_0x23d742){return function(_0x123f5d){if(_0x123f5d){return _0x123f5d['destroy']()[_0x8e4f('0x1b')](function(){var _0xca4609=_0x123f5d[_0x8e4f('0x32')]({'plain':!![]});var _0x24fa1e=_0x8e4f('0x33');return db[_0x8e4f('0x34')]['destroy']({'where':{'type':_0x24fa1e,'resourceId':_0xca4609['id']}})[_0x8e4f('0x1b')](function(){return _0x123f5d;});})[_0x8e4f('0x1b')](function(){_0x4b1000[_0x8e4f('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x144168,_0x28d024){return function(_0x4801a7){if(!_0x4801a7){_0x144168[_0x8e4f('0x26')](0x194);}return _0x4801a7;};}function handleError(_0x486deb,_0x2d26da){_0x2d26da=_0x2d26da||0x1f4;return function(_0x30105f){logger[_0x8e4f('0x20')](_0x30105f[_0x8e4f('0x35')]);if(_0x30105f['name']){delete _0x30105f['name'];}_0x486deb['status'](_0x2d26da)[_0x8e4f('0x36')](_0x30105f);};}exports[_0x8e4f('0x37')]=function(_0x4cb7a0,_0x1d520c){var _0x1ed392={},_0x3976aa={},_0x230cf3={'count':0x0,'rows':[]};var _0x1ea158=_[_0x8e4f('0x38')](db['ChatQueue'][_0x8e4f('0x39')],function(_0x2afb31){return{'name':_0x2afb31[_0x8e4f('0x3a')],'type':_0x2afb31[_0x8e4f('0x3b')][_0x8e4f('0x3c')]};});_0x3976aa[_0x8e4f('0x3d')]=_['map'](_0x1ea158,_0x8e4f('0x3e'));_0x3976aa[_0x8e4f('0x3f')]=_[_0x8e4f('0x40')](_0x4cb7a0[_0x8e4f('0x3f')]);_0x3976aa[_0x8e4f('0x41')]=_[_0x8e4f('0x42')](_0x3976aa[_0x8e4f('0x3d')],_0x3976aa[_0x8e4f('0x3f')]);_0x1ed392[_0x8e4f('0x43')]=_[_0x8e4f('0x42')](_0x3976aa[_0x8e4f('0x3d')],qs[_0x8e4f('0x44')](_0x4cb7a0[_0x8e4f('0x3f')][_0x8e4f('0x44')]));_0x1ed392[_0x8e4f('0x43')]=_0x1ed392[_0x8e4f('0x43')][_0x8e4f('0x45')]?_0x1ed392['attributes']:_0x3976aa[_0x8e4f('0x3d')];if(!_0x4cb7a0[_0x8e4f('0x3f')]['hasOwnProperty'](_0x8e4f('0x46'))){_0x1ed392[_0x8e4f('0x2b')]=qs[_0x8e4f('0x2b')](_0x4cb7a0[_0x8e4f('0x3f')][_0x8e4f('0x2b')]);_0x1ed392[_0x8e4f('0x29')]=qs[_0x8e4f('0x29')](_0x4cb7a0[_0x8e4f('0x3f')][_0x8e4f('0x29')]);}_0x1ed392[_0x8e4f('0x47')]=qs['sort'](_0x4cb7a0[_0x8e4f('0x3f')][_0x8e4f('0x48')]);_0x1ed392[_0x8e4f('0x49')]=qs[_0x8e4f('0x41')](_[_0x8e4f('0x4a')](_0x4cb7a0['query'],_0x3976aa[_0x8e4f('0x41')]),_0x1ea158);if(_0x4cb7a0[_0x8e4f('0x3f')][_0x8e4f('0x4b')]){_0x1ed392[_0x8e4f('0x49')]=_['merge'](_0x1ed392[_0x8e4f('0x49')],{'$or':_[_0x8e4f('0x38')](_0x1ea158,function(_0x37d41c){if(_0x37d41c[_0x8e4f('0x3b')]!==_0x8e4f('0x4c')){var _0x469610={};_0x469610[_0x37d41c[_0x8e4f('0x3e')]]={'$like':'%'+_0x4cb7a0[_0x8e4f('0x3f')][_0x8e4f('0x4b')]+'%'};return _0x469610;}})});}_0x1ed392=_[_0x8e4f('0x4d')]({},_0x1ed392,_0x4cb7a0['options']);var _0x239130={'where':_0x1ed392[_0x8e4f('0x49')]};return db[_0x8e4f('0x4e')][_0x8e4f('0x2c')](_0x239130)[_0x8e4f('0x1b')](function(_0x254e5f){_0x230cf3[_0x8e4f('0x2c')]=_0x254e5f;if(_0x4cb7a0[_0x8e4f('0x3f')]['includeAll']){_0x1ed392[_0x8e4f('0x4f')]=[{'all':!![]}];}return db[_0x8e4f('0x4e')][_0x8e4f('0x50')](_0x1ed392);})[_0x8e4f('0x1b')](function(_0x3e6c27){_0x230cf3['rows']=_0x3e6c27;return _0x230cf3;})['then'](respondWithFilteredResult(_0x1d520c,_0x1ed392))[_0x8e4f('0x25')](handleError(_0x1d520c,null));};exports['show']=function(_0x48265a,_0x3cb81c){var _0x580784={'raw':!![],'where':{'id':_0x48265a[_0x8e4f('0x51')]['id']}},_0xed8ca6={};_0xed8ca6[_0x8e4f('0x3d')]=_[_0x8e4f('0x40')](db[_0x8e4f('0x4e')][_0x8e4f('0x39')]);_0xed8ca6['query']=_[_0x8e4f('0x40')](_0x48265a['query']);_0xed8ca6['filters']=_[_0x8e4f('0x42')](_0xed8ca6[_0x8e4f('0x3d')],_0xed8ca6[_0x8e4f('0x3f')]);_0x580784['attributes']=_[_0x8e4f('0x42')](_0xed8ca6[_0x8e4f('0x3d')],qs[_0x8e4f('0x44')](_0x48265a[_0x8e4f('0x3f')][_0x8e4f('0x44')]));_0x580784['attributes']=_0x580784[_0x8e4f('0x43')]['length']?_0x580784[_0x8e4f('0x43')]:_0xed8ca6[_0x8e4f('0x3d')];if(_0x48265a[_0x8e4f('0x3f')][_0x8e4f('0x52')]){_0x580784['include']=[{'all':!![]}];}_0x580784=_[_0x8e4f('0x4d')]({},_0x580784,_0x48265a[_0x8e4f('0x53')]);return db[_0x8e4f('0x4e')][_0x8e4f('0x54')](_0x580784)['then'](handleEntityNotFound(_0x3cb81c,null))[_0x8e4f('0x1b')](respondWithResult(_0x3cb81c,null))[_0x8e4f('0x25')](handleError(_0x3cb81c,null));};exports['create']=function(_0x442217,_0x2f522c){return db[_0x8e4f('0x4e')][_0x8e4f('0x55')](_0x442217[_0x8e4f('0x56')],{})[_0x8e4f('0x1b')](function(_0x130313){var _0x213b48=_0x442217[_0x8e4f('0x57')][_0x8e4f('0x32')]({'plain':!![]});if(!_0x213b48)throw new Error(_0x8e4f('0x58'));if(_0x213b48[_0x8e4f('0x59')]===_0x8e4f('0x57')){var _0x5411f6=_0x130313[_0x8e4f('0x32')]({'plain':!![]});var _0x130d7a=_0x8e4f('0x33');return db[_0x8e4f('0x5a')][_0x8e4f('0x54')]({'where':{'name':_0x130d7a,'userProfileId':_0x213b48[_0x8e4f('0x5b')]},'raw':!![]})[_0x8e4f('0x1b')](function(_0x21ed98){if(_0x21ed98&&_0x21ed98[_0x8e4f('0x5c')]===0x0){return db[_0x8e4f('0x34')][_0x8e4f('0x55')]({'name':_0x5411f6['name'],'resourceId':_0x5411f6['id'],'type':_0x21ed98[_0x8e4f('0x3e')],'sectionId':_0x21ed98['id']},{})[_0x8e4f('0x1b')](function(){return _0x130313;});}else{return _0x130313;}})['catch'](function(_0x1cc535){logger[_0x8e4f('0x20')](_0x8e4f('0x5d'),_0x1cc535);throw _0x1cc535;});}return _0x130313;})['then'](respondWithResult(_0x2f522c,0xc9))['catch'](handleError(_0x2f522c,null));};exports[_0x8e4f('0x31')]=function(_0x33ee16,_0x55a4d0){if(_0x33ee16['body']['id']){delete _0x33ee16[_0x8e4f('0x56')]['id'];}return db[_0x8e4f('0x4e')][_0x8e4f('0x54')]({'where':{'id':_0x33ee16[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x55a4d0,null))[_0x8e4f('0x1b')](saveUpdates(_0x33ee16[_0x8e4f('0x56')],null))['then'](respondWithResult(_0x55a4d0,null))['catch'](handleError(_0x55a4d0,null));};exports['destroy']=function(_0xc6b1dd,_0x5ef5e4){return db[_0x8e4f('0x4e')][_0x8e4f('0x54')]({'where':{'id':_0xc6b1dd[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x5ef5e4,null))[_0x8e4f('0x1b')](removeEntity(_0x5ef5e4,null))['catch'](handleError(_0x5ef5e4,null));};exports[_0x8e4f('0x5e')]=function(_0x268a0e,_0x514d0c){return db[_0x8e4f('0x4e')][_0x8e4f('0x5e')]()[_0x8e4f('0x1b')](respondWithResult(_0x514d0c,null))[_0x8e4f('0x25')](handleError(_0x514d0c,null));};exports[_0x8e4f('0x5f')]=function(_0x55c5c1,_0x4d38e5,_0x59d4ab){var _0xb4cc03={'raw':!![],'where':{}},_0x1e3ffd={},_0x35e3d7;return db['ChatQueue']['findOne']({'where':{'id':_0x55c5c1[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x4d38e5,null))[_0x8e4f('0x1b')](function(_0x52173d){if(_0x52173d){_0x35e3d7=_0x52173d[_0x8e4f('0x32')]({'plain':!![]});_0x1e3ffd[_0x8e4f('0x3d')]=_[_0x8e4f('0x40')](db[_0x8e4f('0x60')][_0x8e4f('0x39')]);_0x1e3ffd['query']=_[_0x8e4f('0x40')](_0x55c5c1[_0x8e4f('0x3f')]);_0x1e3ffd[_0x8e4f('0x41')]=_[_0x8e4f('0x42')](_0x1e3ffd[_0x8e4f('0x3d')],_0x1e3ffd[_0x8e4f('0x3f')]);_0xb4cc03['attributes']=_[_0x8e4f('0x42')](_0x1e3ffd[_0x8e4f('0x3d')],qs[_0x8e4f('0x44')](_0x55c5c1[_0x8e4f('0x3f')][_0x8e4f('0x44')]));_0xb4cc03[_0x8e4f('0x43')]=_0xb4cc03[_0x8e4f('0x43')]['length']?_0xb4cc03[_0x8e4f('0x43')]:_0x1e3ffd[_0x8e4f('0x3d')];if(!_0x55c5c1[_0x8e4f('0x3f')][_0x8e4f('0x61')](_0x8e4f('0x46'))){_0xb4cc03[_0x8e4f('0x2b')]=qs[_0x8e4f('0x2b')](_0x55c5c1[_0x8e4f('0x3f')][_0x8e4f('0x2b')]);_0xb4cc03[_0x8e4f('0x29')]=qs['offset'](_0x55c5c1['query'][_0x8e4f('0x29')]);}_0xb4cc03[_0x8e4f('0x47')]=qs[_0x8e4f('0x48')](_0x55c5c1[_0x8e4f('0x3f')][_0x8e4f('0x48')]);_0xb4cc03[_0x8e4f('0x49')]=qs['filters'](_[_0x8e4f('0x4a')](_0x55c5c1['query'],_0x1e3ffd['filters']));_0xb4cc03['where'][_0x8e4f('0x62')]=_0x52173d['id'];if(_0x55c5c1[_0x8e4f('0x3f')][_0x8e4f('0x4b')]){_0xb4cc03[_0x8e4f('0x49')]=_['merge'](_0xb4cc03[_0x8e4f('0x49')],{'$or':_['map'](_0xb4cc03[_0x8e4f('0x43')],function(_0x246e4a){var _0x385639={};_0x385639[_0x246e4a]={'$like':'%'+_0x55c5c1['query'][_0x8e4f('0x4b')]+'%'};return _0x385639;})});}_0xb4cc03=_[_0x8e4f('0x4d')]({},_0xb4cc03,_0x55c5c1[_0x8e4f('0x53')]);return db[_0x8e4f('0x60')]['findAll'](_0xb4cc03);}})[_0x8e4f('0x1b')](function(_0x50a3f2){if(_0x50a3f2){return db[_0x8e4f('0x63')][_0x8e4f('0x64')]({'where':{'id':_[_0x8e4f('0x38')](_0x50a3f2,_0x8e4f('0x65')),'role':_0x8e4f('0x66')},'attributes':['id',_0x8e4f('0x3e'),_0x8e4f('0x67'),'updatedAt',_0x8e4f('0x68')]});}})['then'](function(_0x3b5e95){if(_0x3b5e95){return{'count':_0x3b5e95[_0x8e4f('0x2c')],'rows':_[_0x8e4f('0x38')](_0x3b5e95[_0x8e4f('0x69')],function(_0x1f4947){return{'membername':_0x1f4947['name'],'UserId':_0x1f4947['id'],'queue_name':_0x35e3d7[_0x8e4f('0x3e')],'ChatQueueId':_0x35e3d7['id'],'interface':util[_0x8e4f('0x6a')](_0x8e4f('0x6b'),_0x8e4f('0x6c'),_0x1f4947[_0x8e4f('0x3e')]),'penalty':0x0,'paused':_0x1f4947[_0x8e4f('0x67')],'createdAt':_0x1f4947['createdAt'],'updatedAt':_0x1f4947[_0x8e4f('0x6d')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x4d38e5,_0xb4cc03))['catch'](handleError(_0x4d38e5,null));};exports['getTeams']=function(_0x538dd8,_0x119ed9,_0x2e3fed){var _0x88fe64={};var _0x2f28cf={};var _0x4dda76;var _0x541edc;return db[_0x8e4f('0x4e')][_0x8e4f('0x6e')]({'where':{'id':_0x538dd8[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x119ed9,null))[_0x8e4f('0x1b')](function(_0x177870){if(_0x177870){_0x4dda76=_0x177870;_0x2f28cf[_0x8e4f('0x3d')]=_['keys'](db[_0x8e4f('0x6f')][_0x8e4f('0x39')]);_0x2f28cf[_0x8e4f('0x3f')]=_[_0x8e4f('0x40')](_0x538dd8[_0x8e4f('0x3f')]);_0x2f28cf['filters']=_['intersection'](_0x2f28cf[_0x8e4f('0x3d')],_0x2f28cf['query']);_0x88fe64[_0x8e4f('0x43')]=_[_0x8e4f('0x42')](_0x2f28cf[_0x8e4f('0x3d')],qs[_0x8e4f('0x44')](_0x538dd8[_0x8e4f('0x3f')][_0x8e4f('0x44')]));_0x88fe64[_0x8e4f('0x43')]=_0x88fe64[_0x8e4f('0x43')]['length']?_0x88fe64['attributes']:_0x2f28cf[_0x8e4f('0x3d')];_0x88fe64[_0x8e4f('0x47')]=qs[_0x8e4f('0x48')](_0x538dd8['query']['sort']);_0x88fe64[_0x8e4f('0x49')]=qs[_0x8e4f('0x41')](_['pick'](_0x538dd8[_0x8e4f('0x3f')],_0x2f28cf[_0x8e4f('0x41')]));if(_0x538dd8['query']['filter']){_0x88fe64[_0x8e4f('0x49')]=_[_0x8e4f('0x4d')](_0x88fe64[_0x8e4f('0x49')],{'$or':_[_0x8e4f('0x38')](_0x88fe64[_0x8e4f('0x43')],function(_0x44e40b){var _0x5ab987={};_0x5ab987[_0x44e40b]={'$like':'%'+_0x538dd8[_0x8e4f('0x3f')][_0x8e4f('0x4b')]+'%'};return _0x5ab987;})});}_0x88fe64=_[_0x8e4f('0x4d')]({},_0x88fe64,_0x538dd8[_0x8e4f('0x53')]);return _0x4dda76['getTeams'](_0x88fe64);}})[_0x8e4f('0x1b')](function(_0x26af63){if(_0x26af63){_0x541edc=_0x26af63[_0x8e4f('0x45')];if(!_0x538dd8['query'][_0x8e4f('0x61')](_0x8e4f('0x46'))){_0x88fe64[_0x8e4f('0x2b')]=qs['limit'](_0x538dd8[_0x8e4f('0x3f')][_0x8e4f('0x2b')]);_0x88fe64['offset']=qs[_0x8e4f('0x29')](_0x538dd8[_0x8e4f('0x3f')][_0x8e4f('0x29')]);}return _0x4dda76['getTeams'](_0x88fe64);}})['then'](function(_0x18c851){if(_0x18c851){return _0x18c851?{'count':_0x541edc,'rows':_0x18c851}:null;}})[_0x8e4f('0x1b')](respondWithResult(_0x119ed9,null))[_0x8e4f('0x25')](handleError(_0x119ed9,null));};exports['addTeams']=function(_0x237d18,_0x29fb8e,_0x24fb9e){var _0x36752f=_0x237d18[_0x8e4f('0x56')][_0x8e4f('0x70')];return db[_0x8e4f('0x6f')][_0x8e4f('0x50')]({'where':{'id':_0x36752f},'attributes':['id'],'include':[{'model':db['User'],'as':_0x8e4f('0x71'),'attributes':['id',_0x8e4f('0x3e'),'online',_0x8e4f('0x72'),_0x8e4f('0x73')],'raw':!![]}]})[_0x8e4f('0x1b')](function(_0x407a18){if(_0x407a18){var _0x3aa90d=_[_0x8e4f('0x74')](_0x407a18,function(_0x8b4ea9){var _0x552202=_0x8b4ea9['get']({'plain':!![]});return _0x552202['Agents'];});return db['ChatQueue'][_0x8e4f('0x54')]({'where':{'id':_0x237d18[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](function(_0x1bbc8c){return db['sequelize']['transaction'](function(_0x2fdc73){return _0x1bbc8c['addTeams'](_0x36752f,{'transaction':_0x2fdc73})['then'](function(){return BPromise[_0x8e4f('0x75')](_0x3aa90d,function(_0x1e12c2){return db[_0x8e4f('0x60')][_0x8e4f('0x76')]({'where':{'UserId':_0x1e12c2['id'],'ChatQueueId':_0x237d18['params']['id']},'transaction':_0x2fdc73});});})[_0x8e4f('0x1b')](function(){_0x3aa90d['forEach'](function(_0x5cf288){socket['emit'](_0x8e4f('0x77'),{'UserId':_0x5cf288['id'],'ChatQueueId':_0x1bbc8c['id']});});});});});}})[_0x8e4f('0x1b')](respondWithStatusCode(_0x29fb8e,null))[_0x8e4f('0x25')](handleError(_0x29fb8e,null));};exports[_0x8e4f('0x78')]=function(_0x2c0605,_0x1e498b,_0x5e132b){return db['Team'][_0x8e4f('0x50')]({'where':{'id':_0x2c0605[_0x8e4f('0x3f')]['ids']},'attributes':['id'],'include':[{'model':db[_0x8e4f('0x63')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x8e4f('0x1b')](handleEntityNotFound(_0x1e498b,null))[_0x8e4f('0x1b')](function(_0x50ae96){var _0x1c3172=_[_0x8e4f('0x38')](_0x50ae96,'id');var _0x35d61d=[];var _0x5e5505=[];var _0x14e282=squel['select']();_0x14e282[_0x8e4f('0x79')](_0x8e4f('0x7a'))[_0x8e4f('0x7b')](_0x8e4f('0x7c'),'tq')[_0x8e4f('0x7d')](_0x8e4f('0x7e'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x8e4f('0x49')]('ChatQueueId\x20=\x20?',_0x2c0605['params']['id']);for(var _0x528a40=0x0;_0x528a40<_0x50ae96[_0x8e4f('0x45')];_0x528a40+=0x1){let _0x499862=_0x50ae96[_0x528a40];for(var _0x52528b=0x0;_0x52528b<_0x499862[_0x8e4f('0x71')][_0x8e4f('0x45')];_0x52528b+=0x1){let _0x34c817=_0x499862['Agents'][_0x52528b];var _0x1fb6b4=_0x14e282[_0x8e4f('0x7f')]();_0x1fb6b4['where'](_0x8e4f('0x80'),_0x34c817['id']);_0x5e5505[_0x8e4f('0x81')](db['sequelize'][_0x8e4f('0x3f')](_0x1fb6b4[_0x8e4f('0x82')](),{'type':db[_0x8e4f('0x83')]['QueryTypes']['SELECT']})['then'](function(_0x2f88a6){if(_0x2f88a6[_0x8e4f('0x45')]===0x1){return _0x34c817['id'];}else{var _0x4cf69a=_[_0x8e4f('0x84')](_['map'](_0x2f88a6,_0x8e4f('0x85')),function(_0x12fab5){return _[_0x8e4f('0x86')](_0x1c3172,_0x12fab5);});if(_0x4cf69a){return _0x34c817['id'];}}}));}}return BPromise['all'](_0x5e5505)['then'](function(_0x5aa115){_0x35d61d=_(_0x35d61d)[_0x8e4f('0x87')](_0x5aa115)[_0x8e4f('0x88')]()[_0x8e4f('0x89')]();return db[_0x8e4f('0x4e')][_0x8e4f('0x54')]({'where':{'id':_0x2c0605[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](function(_0x4c4044){return db[_0x8e4f('0x83')][_0x8e4f('0x8a')](function(_0x52a70f){return _0x4c4044['removeTeams'](_0x2c0605[_0x8e4f('0x3f')]['ids'],{'transaction':_0x52a70f})[_0x8e4f('0x1b')](function(){if(!_[_0x8e4f('0x8b')](_0x35d61d)){return _0x4c4044[_0x8e4f('0x8c')](_0x35d61d,{'transaction':_0x52a70f});}})[_0x8e4f('0x1b')](function(){_0x35d61d[_0x8e4f('0x8d')](function(_0x55c42b){socket['emit']('userChatQueue:remove',{'UserId':_0x55c42b,'ChatQueueId':_0x4c4044['id']});});});});});});})['then'](respondWithStatusCode(_0x1e498b,null))[_0x8e4f('0x25')](handleError(_0x1e498b,null));};exports[_0x8e4f('0x8e')]=function(_0xa26e58,_0x329ff9,_0x1852ff){return db['ChatQueue'][_0x8e4f('0x54')]({'where':{'id':_0xa26e58['params']['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x329ff9,null))['then'](function(_0x115fc4){if(_0x115fc4){return _0x115fc4['addAgents'](_0xa26e58[_0x8e4f('0x56')][_0x8e4f('0x70')],_[_0x8e4f('0x8f')](_0xa26e58[_0x8e4f('0x56')],[_0x8e4f('0x70'),'id'])||{})[_0x8e4f('0x90')](function(_0x3914b1){for(var _0x360238=0x0;_0x360238<_0xa26e58[_0x8e4f('0x56')][_0x8e4f('0x70')][_0x8e4f('0x45')];_0x360238+=0x1){socket[_0x8e4f('0x91')](_0x8e4f('0x77'),{'UserId':Number(_0xa26e58[_0x8e4f('0x56')]['ids'][_0x360238]),'ChatQueueId':Number(_0xa26e58[_0x8e4f('0x51')]['id'])});}return _0x3914b1;});}})[_0x8e4f('0x1b')](respondWithResult(_0x329ff9,null))[_0x8e4f('0x25')](handleError(_0x329ff9,null));};exports[_0x8e4f('0x8c')]=function(_0x4f3997,_0x21e044,_0x227572){return db[_0x8e4f('0x4e')][_0x8e4f('0x54')]({'where':{'id':_0x4f3997[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x21e044,null))[_0x8e4f('0x1b')](function(_0x42b49e){if(_0x42b49e){return _0x42b49e['removeAgents'](_0x4f3997[_0x8e4f('0x3f')][_0x8e4f('0x70')])[_0x8e4f('0x1b')](function(){if(_[_0x8e4f('0x92')](_0x4f3997[_0x8e4f('0x3f')][_0x8e4f('0x70')])){for(var _0x190ee9=0x0;_0x190ee9<_0x4f3997['query'][_0x8e4f('0x70')][_0x8e4f('0x45')];_0x190ee9+=0x1){socket[_0x8e4f('0x91')](_0x8e4f('0x93'),{'UserId':Number(_0x4f3997[_0x8e4f('0x3f')][_0x8e4f('0x70')][_0x190ee9]),'ChatQueueId':Number(_0x4f3997[_0x8e4f('0x51')]['id'])});}}else{socket['emit'](_0x8e4f('0x93'),{'UserId':Number(_0x4f3997[_0x8e4f('0x3f')][_0x8e4f('0x70')]),'ChatQueueId':Number(_0x4f3997[_0x8e4f('0x51')]['id'])});}});}})[_0x8e4f('0x1b')](respondWithStatusCode(_0x21e044,null))[_0x8e4f('0x25')](handleError(_0x21e044,null));};exports['getAgents']=function(_0x35a726,_0x3698f0,_0x538242){var _0x39a2b2={};var _0x530232={};var _0x2b481f;var _0x30f9c4;return db['ChatQueue'][_0x8e4f('0x6e')]({'where':{'id':_0x35a726[_0x8e4f('0x51')]['id']}})[_0x8e4f('0x1b')](handleEntityNotFound(_0x3698f0,null))[_0x8e4f('0x1b')](function(_0x29701f){if(_0x29701f){_0x2b481f=_0x29701f;_0x530232[_0x8e4f('0x3d')]=_[_0x8e4f('0x40')](db[_0x8e4f('0x63')][_0x8e4f('0x39')]);_0x530232[_0x8e4f('0x3f')]=_[_0x8e4f('0x40')](_0x35a726['query']);_0x530232[_0x8e4f('0x41')]=_['intersection'](_0x530232[_0x8e4f('0x3d')],_0x530232['query']);_0x39a2b2[_0x8e4f('0x43')]=_['intersection'](_0x530232[_0x8e4f('0x3d')],qs['fields'](_0x35a726[_0x8e4f('0x3f')]['fields']));_0x39a2b2[_0x8e4f('0x43')]=_0x39a2b2[_0x8e4f('0x43')][_0x8e4f('0x45')]?_0x39a2b2[_0x8e4f('0x43')]:_0x530232[_0x8e4f('0x3d')];_0x39a2b2['order']=qs[_0x8e4f('0x48')](_0x35a726[_0x8e4f('0x3f')][_0x8e4f('0x48')]);_0x39a2b2[_0x8e4f('0x49')]=qs[_0x8e4f('0x41')](_[_0x8e4f('0x4a')](_0x35a726[_0x8e4f('0x3f')],_0x530232['filters']));if(_0x35a726[_0x8e4f('0x3f')]['filter']){_0x39a2b2[_0x8e4f('0x49')]=_[_0x8e4f('0x4d')](_0x39a2b2[_0x8e4f('0x49')],{'$or':_[_0x8e4f('0x38')](_0x39a2b2[_0x8e4f('0x43')],function(_0x4dc2e4){var _0x614873={};_0x614873[_0x4dc2e4]={'$like':'%'+_0x35a726[_0x8e4f('0x3f')]['filter']+'%'};return _0x614873;})});}_0x39a2b2=_[_0x8e4f('0x4d')]({},_0x39a2b2,_0x35a726[_0x8e4f('0x53')]);return _0x2b481f[_0x8e4f('0x94')](_0x39a2b2);}})[_0x8e4f('0x1b')](function(_0x1532ed){if(_0x1532ed){_0x30f9c4=_0x1532ed[_0x8e4f('0x45')];if(!_0x35a726[_0x8e4f('0x3f')][_0x8e4f('0x61')](_0x8e4f('0x46'))){_0x39a2b2['limit']=qs[_0x8e4f('0x2b')](_0x35a726['query'][_0x8e4f('0x2b')]);_0x39a2b2[_0x8e4f('0x29')]=qs[_0x8e4f('0x29')](_0x35a726[_0x8e4f('0x3f')][_0x8e4f('0x29')]);}return _0x2b481f[_0x8e4f('0x94')](_0x39a2b2);}})[_0x8e4f('0x1b')](function(_0x653804){if(_0x653804){return _0x653804?{'count':_0x30f9c4,'rows':_0x653804}:null;}})[_0x8e4f('0x1b')](respondWithResult(_0x3698f0,null))[_0x8e4f('0x25')](handleError(_0x3698f0,null));};
\ No newline at end of file
+var _0x65ea=['addTeams','Agents','voicePause','interface','sequelize','forEach','emit','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','QueryTypes','every','TeamId','includes','all','union','compact','value','removeTeams','ids','isEmpty','removeAgents','userChatQueue:remove','addAgents','spread','userChatQueue:save','isArray','getAgents','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','jayson/promise','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','info','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','destroy','then','get','ChatQueues','stack','name','index','ChatQueue','rawAttributes','fieldName','type','key','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','include','rows','catch','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','getMembers','findOne','UserChatQueue','ChatQueueId','findAll','User','findAndCountAll','chatPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team'];(function(_0x18b5e8,_0x51e875){var _0x25baed=function(_0x3fcdf9){while(--_0x3fcdf9){_0x18b5e8['push'](_0x18b5e8['shift']());}};_0x25baed(++_0x51e875);}(_0x65ea,0x1ea));var _0xa65e=function(_0x4bf3d0,_0x5b3ea4){_0x4bf3d0=_0x4bf3d0-0x0;var _0x454639=_0x65ea[_0x4bf3d0];return _0x454639;};'use strict';var emlformat=require(_0xa65e('0x0'));var rimraf=require(_0xa65e('0x1'));var zipdir=require(_0xa65e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa65e('0x3'));var moment=require('moment');var BPromise=require(_0xa65e('0x4'));var Mustache=require(_0xa65e('0x5'));var util=require(_0xa65e('0x6'));var path=require(_0xa65e('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa65e('0x8'));var fs=require('fs');var fs_extra=require(_0xa65e('0x9'));var _=require('lodash');var squel=require(_0xa65e('0xa'));var crypto=require(_0xa65e('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xa65e('0xc'));var toCsv=require(_0xa65e('0xd'));var querystring=require(_0xa65e('0xe'));var Papa=require(_0xa65e('0xf'));var Redis=require('ioredis');var authService=require(_0xa65e('0x10'));var qs=require(_0xa65e('0x11'));var as=require(_0xa65e('0x12'));var hardwareService=require(_0xa65e('0x13'));var logger=require(_0xa65e('0x14'))(_0xa65e('0x15'));var utils=require(_0xa65e('0x16'));var config=require(_0xa65e('0x17'));var licenseUtil=require(_0xa65e('0x18'));var db=require(_0xa65e('0x19'))['db'];config[_0xa65e('0x1a')]=_[_0xa65e('0x1b')](config[_0xa65e('0x1a')],{'host':_0xa65e('0x1c'),'port':0x18eb});var socket=require(_0xa65e('0x1d'))(new Redis(config[_0xa65e('0x1a')]));require(_0xa65e('0x1e'))['register'](socket);var jayson=require(_0xa65e('0x1f'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x55c621,_0x4139ca,_0x3187d4,_0x4d6908){return new BPromise(function(_0x4dfabe,_0x5cf4b1){var _0x34e6d9=_0x4d6908||client;return _0x34e6d9['request'](_0x55c621,_0x3187d4)['then'](function(_0x318519){logger['info'](_0xa65e('0x20'),_0x4139ca,_0xa65e('0x21'));logger[_0xa65e('0x22')](_0xa65e('0x23'),_0x4139ca,_0xa65e('0x21'),JSON[_0xa65e('0x24')](_0x318519));if(_0x318519[_0xa65e('0x25')]){if(_0x318519[_0xa65e('0x25')]['code']===0x1f4){logger[_0xa65e('0x25')]('ChatQueue,\x20%s,\x20%s',_0x4139ca,_0x318519[_0xa65e('0x25')][_0xa65e('0x26')]);return _0x5cf4b1(_0x318519[_0xa65e('0x25')][_0xa65e('0x26')]);}logger[_0xa65e('0x25')](_0xa65e('0x20'),_0x4139ca,_0x318519[_0xa65e('0x25')][_0xa65e('0x26')]);return _0x4dfabe(_0x318519[_0xa65e('0x25')]['message']);}else{logger[_0xa65e('0x27')]('ChatQueue,\x20%s,\x20%s',_0x4139ca,_0xa65e('0x21'));_0x4dfabe(_0x318519['result']['message']);}})['catch'](function(_0x4d4833){logger[_0xa65e('0x25')]('ChatQueue,\x20%s,\x20%s',_0x4139ca,_0x4d4833);_0x5cf4b1(_0x4d4833);});});}function respondWithStatusCode(_0x3cc7b3,_0x27dc0c){_0x27dc0c=_0x27dc0c||0xcc;return function(_0x305a15){if(_0x305a15){return _0x3cc7b3[_0xa65e('0x28')](_0x27dc0c);}return _0x3cc7b3[_0xa65e('0x29')](_0x27dc0c)[_0xa65e('0x2a')]();};}function respondWithResult(_0x1b246d,_0x24ae60){_0x24ae60=_0x24ae60||0xc8;return function(_0x478069){if(_0x478069){return _0x1b246d[_0xa65e('0x29')](_0x24ae60)[_0xa65e('0x2b')](_0x478069);}};}function respondWithFilteredResult(_0x16b2e2,_0x69ee4){return function(_0x3a7a6d){if(_0x3a7a6d){var _0x237abd=typeof _0x69ee4[_0xa65e('0x2c')]===_0xa65e('0x2d')&&typeof _0x69ee4[_0xa65e('0x2e')]===_0xa65e('0x2d');var _0x314802=_0x3a7a6d[_0xa65e('0x2f')];var _0x58b7b6=_0x237abd?0x0:_0x69ee4[_0xa65e('0x2c')];var _0x113f1=_0x237abd?_0x3a7a6d[_0xa65e('0x2f')]:_0x69ee4['offset']+_0x69ee4[_0xa65e('0x2e')];var _0x55318e;if(_0x113f1>=_0x314802){_0x113f1=_0x314802;_0x55318e=0xc8;}else{_0x55318e=0xce;}_0x16b2e2[_0xa65e('0x29')](_0x55318e);return _0x16b2e2[_0xa65e('0x30')](_0xa65e('0x31'),_0x58b7b6+'-'+_0x113f1+'/'+_0x314802)[_0xa65e('0x2b')](_0x3a7a6d);}return null;};}function patchUpdates(_0x3f09e6){return function(_0x16aeee){try{jsonpatch['apply'](_0x16aeee,_0x3f09e6,!![]);}catch(_0x4cb2f4){return BPromise[_0xa65e('0x32')](_0x4cb2f4);}return _0x16aeee[_0xa65e('0x33')]();};}function saveUpdates(_0x160a8b,_0x58ca3b){return function(_0x56b958){if(_0x56b958){return _0x56b958['update'](_0x160a8b)['then'](function(_0x3bcc38){return _0x3bcc38;});}return null;};}function removeEntity(_0x13bbac,_0x466b93){return function(_0x1bbc4a){if(_0x1bbc4a){return _0x1bbc4a[_0xa65e('0x34')]()[_0xa65e('0x35')](function(){var _0x135ab5=_0x1bbc4a[_0xa65e('0x36')]({'plain':!![]});var _0x218708=_0xa65e('0x37');return db['UserProfileResource'][_0xa65e('0x34')]({'where':{'type':_0x218708,'resourceId':_0x135ab5['id']}})[_0xa65e('0x35')](function(){return _0x1bbc4a;});})[_0xa65e('0x35')](function(){_0x13bbac[_0xa65e('0x29')](0xcc)[_0xa65e('0x2a')]();});}};}function handleEntityNotFound(_0x782e14,_0xd17d71){return function(_0x44de15){if(!_0x44de15){_0x782e14['sendStatus'](0x194);}return _0x44de15;};}function handleError(_0x270e18,_0x3a262c){_0x3a262c=_0x3a262c||0x1f4;return function(_0x2b7991){logger[_0xa65e('0x25')](_0x2b7991[_0xa65e('0x38')]);if(_0x2b7991[_0xa65e('0x39')]){delete _0x2b7991[_0xa65e('0x39')];}_0x270e18[_0xa65e('0x29')](_0x3a262c)['send'](_0x2b7991);};}exports[_0xa65e('0x3a')]=function(_0x2fad5c,_0x34b4ad){var _0x49ed89={},_0x106b38={},_0x596e77={'count':0x0,'rows':[]};var _0x3a26a3=_['map'](db[_0xa65e('0x3b')][_0xa65e('0x3c')],function(_0x45c3e0){return{'name':_0x45c3e0[_0xa65e('0x3d')],'type':_0x45c3e0[_0xa65e('0x3e')][_0xa65e('0x3f')]};});_0x106b38[_0xa65e('0x40')]=_[_0xa65e('0x41')](_0x3a26a3,_0xa65e('0x39'));_0x106b38[_0xa65e('0x42')]=_[_0xa65e('0x43')](_0x2fad5c[_0xa65e('0x42')]);_0x106b38['filters']=_['intersection'](_0x106b38[_0xa65e('0x40')],_0x106b38[_0xa65e('0x42')]);_0x49ed89[_0xa65e('0x44')]=_[_0xa65e('0x45')](_0x106b38[_0xa65e('0x40')],qs[_0xa65e('0x46')](_0x2fad5c[_0xa65e('0x42')][_0xa65e('0x46')]));_0x49ed89[_0xa65e('0x44')]=_0x49ed89['attributes'][_0xa65e('0x47')]?_0x49ed89[_0xa65e('0x44')]:_0x106b38[_0xa65e('0x40')];if(!_0x2fad5c[_0xa65e('0x42')][_0xa65e('0x48')](_0xa65e('0x49'))){_0x49ed89['limit']=qs[_0xa65e('0x2e')](_0x2fad5c[_0xa65e('0x42')]['limit']);_0x49ed89['offset']=qs['offset'](_0x2fad5c[_0xa65e('0x42')]['offset']);}_0x49ed89[_0xa65e('0x4a')]=qs[_0xa65e('0x4b')](_0x2fad5c[_0xa65e('0x42')][_0xa65e('0x4b')]);_0x49ed89[_0xa65e('0x4c')]=qs[_0xa65e('0x4d')](_[_0xa65e('0x4e')](_0x2fad5c[_0xa65e('0x42')],_0x106b38['filters']),_0x3a26a3);if(_0x2fad5c[_0xa65e('0x42')][_0xa65e('0x4f')]){_0x49ed89['where']=_['merge'](_0x49ed89['where'],{'$or':_[_0xa65e('0x41')](_0x3a26a3,function(_0x54b716){if(_0x54b716[_0xa65e('0x3e')]!==_0xa65e('0x50')){var _0x57a1c0={};_0x57a1c0[_0x54b716[_0xa65e('0x39')]]={'$like':'%'+_0x2fad5c['query'][_0xa65e('0x4f')]+'%'};return _0x57a1c0;}})});}_0x49ed89=_[_0xa65e('0x51')]({},_0x49ed89,_0x2fad5c[_0xa65e('0x52')]);var _0x2ba3eb={'where':_0x49ed89[_0xa65e('0x4c')]};return db['ChatQueue'][_0xa65e('0x2f')](_0x2ba3eb)[_0xa65e('0x35')](function(_0x2e9032){_0x596e77[_0xa65e('0x2f')]=_0x2e9032;if(_0x2fad5c[_0xa65e('0x42')]['includeAll']){_0x49ed89[_0xa65e('0x53')]=[{'all':!![]}];}return db[_0xa65e('0x3b')]['findAll'](_0x49ed89);})['then'](function(_0x2c6ceb){_0x596e77[_0xa65e('0x54')]=_0x2c6ceb;return _0x596e77;})[_0xa65e('0x35')](respondWithFilteredResult(_0x34b4ad,_0x49ed89))[_0xa65e('0x55')](handleError(_0x34b4ad,null));};exports['show']=function(_0x4c4016,_0x43d4ef){var _0x566588={'raw':!![],'where':{'id':_0x4c4016[_0xa65e('0x56')]['id']}},_0x3b204a={};_0x3b204a[_0xa65e('0x40')]=_[_0xa65e('0x43')](db[_0xa65e('0x3b')][_0xa65e('0x3c')]);_0x3b204a[_0xa65e('0x42')]=_[_0xa65e('0x43')](_0x4c4016[_0xa65e('0x42')]);_0x3b204a[_0xa65e('0x4d')]=_[_0xa65e('0x45')](_0x3b204a[_0xa65e('0x40')],_0x3b204a['query']);_0x566588[_0xa65e('0x44')]=_[_0xa65e('0x45')](_0x3b204a[_0xa65e('0x40')],qs[_0xa65e('0x46')](_0x4c4016[_0xa65e('0x42')][_0xa65e('0x46')]));_0x566588[_0xa65e('0x44')]=_0x566588[_0xa65e('0x44')][_0xa65e('0x47')]?_0x566588['attributes']:_0x3b204a[_0xa65e('0x40')];if(_0x4c4016[_0xa65e('0x42')][_0xa65e('0x57')]){_0x566588[_0xa65e('0x53')]=[{'all':!![]}];}_0x566588=_[_0xa65e('0x51')]({},_0x566588,_0x4c4016[_0xa65e('0x52')]);return db['ChatQueue'][_0xa65e('0x58')](_0x566588)[_0xa65e('0x35')](handleEntityNotFound(_0x43d4ef,null))['then'](respondWithResult(_0x43d4ef,null))[_0xa65e('0x55')](handleError(_0x43d4ef,null));};exports[_0xa65e('0x59')]=function(_0x4b3877,_0x48e77c){return db['ChatQueue'][_0xa65e('0x59')](_0x4b3877[_0xa65e('0x5a')],{})[_0xa65e('0x35')](function(_0x1b76d8){var _0x121d21=_0x4b3877[_0xa65e('0x5b')][_0xa65e('0x36')]({'plain':!![]});if(!_0x121d21)throw new Error(_0xa65e('0x5c'));if(_0x121d21[_0xa65e('0x5d')]===_0xa65e('0x5b')){var _0x2c6f27=_0x1b76d8[_0xa65e('0x36')]({'plain':!![]});var _0x440d4c=_0xa65e('0x37');return db[_0xa65e('0x5e')][_0xa65e('0x58')]({'where':{'name':_0x440d4c,'userProfileId':_0x121d21[_0xa65e('0x5f')]},'raw':!![]})[_0xa65e('0x35')](function(_0x7d5581){if(_0x7d5581&&_0x7d5581['autoAssociation']===0x0){return db['UserProfileResource'][_0xa65e('0x59')]({'name':_0x2c6f27[_0xa65e('0x39')],'resourceId':_0x2c6f27['id'],'type':_0x7d5581['name'],'sectionId':_0x7d5581['id']},{})['then'](function(){return _0x1b76d8;});}else{return _0x1b76d8;}})[_0xa65e('0x55')](function(_0x4b6f47){logger['error'](_0xa65e('0x60'),_0x4b6f47);throw _0x4b6f47;});}return _0x1b76d8;})['then'](respondWithResult(_0x48e77c,0xc9))[_0xa65e('0x55')](handleError(_0x48e77c,null));};exports[_0xa65e('0x61')]=function(_0x2f77b7,_0x447c03){if(_0x2f77b7[_0xa65e('0x5a')]['id']){delete _0x2f77b7[_0xa65e('0x5a')]['id'];}return db[_0xa65e('0x3b')][_0xa65e('0x58')]({'where':{'id':_0x2f77b7[_0xa65e('0x56')]['id']}})['then'](handleEntityNotFound(_0x447c03,null))[_0xa65e('0x35')](saveUpdates(_0x2f77b7['body'],null))[_0xa65e('0x35')](respondWithResult(_0x447c03,null))['catch'](handleError(_0x447c03,null));};exports['destroy']=function(_0x50d4e9,_0x1bb815){return db[_0xa65e('0x3b')][_0xa65e('0x58')]({'where':{'id':_0x50d4e9[_0xa65e('0x56')]['id']}})['then'](handleEntityNotFound(_0x1bb815,null))[_0xa65e('0x35')](removeEntity(_0x1bb815,null))[_0xa65e('0x55')](handleError(_0x1bb815,null));};exports[_0xa65e('0x62')]=function(_0x431fd4,_0x3d35bd){return db[_0xa65e('0x3b')]['describe']()[_0xa65e('0x35')](respondWithResult(_0x3d35bd,null))[_0xa65e('0x55')](handleError(_0x3d35bd,null));};exports[_0xa65e('0x63')]=function(_0x48bdff,_0x24184e,_0x15ab4a){var _0x332a6d={'raw':!![],'where':{}},_0x544d5a={},_0x301f9b;return db[_0xa65e('0x3b')][_0xa65e('0x64')]({'where':{'id':_0x48bdff[_0xa65e('0x56')]['id']}})[_0xa65e('0x35')](handleEntityNotFound(_0x24184e,null))[_0xa65e('0x35')](function(_0x216b6a){if(_0x216b6a){_0x301f9b=_0x216b6a['get']({'plain':!![]});_0x544d5a['model']=_[_0xa65e('0x43')](db[_0xa65e('0x65')][_0xa65e('0x3c')]);_0x544d5a[_0xa65e('0x42')]=_[_0xa65e('0x43')](_0x48bdff[_0xa65e('0x42')]);_0x544d5a[_0xa65e('0x4d')]=_[_0xa65e('0x45')](_0x544d5a[_0xa65e('0x40')],_0x544d5a[_0xa65e('0x42')]);_0x332a6d[_0xa65e('0x44')]=_[_0xa65e('0x45')](_0x544d5a['model'],qs[_0xa65e('0x46')](_0x48bdff[_0xa65e('0x42')][_0xa65e('0x46')]));_0x332a6d[_0xa65e('0x44')]=_0x332a6d['attributes'][_0xa65e('0x47')]?_0x332a6d[_0xa65e('0x44')]:_0x544d5a[_0xa65e('0x40')];if(!_0x48bdff[_0xa65e('0x42')]['hasOwnProperty']('nolimit')){_0x332a6d[_0xa65e('0x2e')]=qs[_0xa65e('0x2e')](_0x48bdff[_0xa65e('0x42')][_0xa65e('0x2e')]);_0x332a6d['offset']=qs[_0xa65e('0x2c')](_0x48bdff[_0xa65e('0x42')]['offset']);}_0x332a6d[_0xa65e('0x4a')]=qs[_0xa65e('0x4b')](_0x48bdff['query']['sort']);_0x332a6d[_0xa65e('0x4c')]=qs[_0xa65e('0x4d')](_[_0xa65e('0x4e')](_0x48bdff[_0xa65e('0x42')],_0x544d5a['filters']));_0x332a6d[_0xa65e('0x4c')][_0xa65e('0x66')]=_0x216b6a['id'];if(_0x48bdff['query'][_0xa65e('0x4f')]){_0x332a6d[_0xa65e('0x4c')]=_['merge'](_0x332a6d[_0xa65e('0x4c')],{'$or':_[_0xa65e('0x41')](_0x332a6d['attributes'],function(_0x43d63e){var _0x1af75b={};_0x1af75b[_0x43d63e]={'$like':'%'+_0x48bdff[_0xa65e('0x42')][_0xa65e('0x4f')]+'%'};return _0x1af75b;})});}_0x332a6d=_[_0xa65e('0x51')]({},_0x332a6d,_0x48bdff[_0xa65e('0x52')]);return db[_0xa65e('0x65')][_0xa65e('0x67')](_0x332a6d);}})[_0xa65e('0x35')](function(_0x2d6ac5){if(_0x2d6ac5){return db[_0xa65e('0x68')][_0xa65e('0x69')]({'where':{'id':_['map'](_0x2d6ac5,'UserId'),'role':'agent'},'attributes':['id',_0xa65e('0x39'),_0xa65e('0x6a'),_0xa65e('0x6b'),_0xa65e('0x6c')]});}})[_0xa65e('0x35')](function(_0x5cddc6){if(_0x5cddc6){return{'count':_0x5cddc6[_0xa65e('0x2f')],'rows':_[_0xa65e('0x41')](_0x5cddc6[_0xa65e('0x54')],function(_0xb9bca){return{'membername':_0xb9bca['name'],'UserId':_0xb9bca['id'],'queue_name':_0x301f9b['name'],'ChatQueueId':_0x301f9b['id'],'interface':util[_0xa65e('0x6d')](_0xa65e('0x6e'),_0xa65e('0x6f'),_0xb9bca[_0xa65e('0x39')]),'penalty':0x0,'paused':_0xb9bca['chatPause'],'createdAt':_0xb9bca[_0xa65e('0x6c')],'updatedAt':_0xb9bca[_0xa65e('0x6b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xa65e('0x35')](respondWithFilteredResult(_0x24184e,_0x332a6d))[_0xa65e('0x55')](handleError(_0x24184e,null));};exports[_0xa65e('0x70')]=function(_0xab6274,_0x2e393a,_0x56b20d){var _0x9f49c0={};var _0x340697={};var _0x52836c;var _0x1d872b;return db[_0xa65e('0x3b')][_0xa65e('0x64')]({'where':{'id':_0xab6274[_0xa65e('0x56')]['id']}})['then'](handleEntityNotFound(_0x2e393a,null))[_0xa65e('0x35')](function(_0x24142a){if(_0x24142a){_0x52836c=_0x24142a;_0x340697[_0xa65e('0x40')]=_[_0xa65e('0x43')](db[_0xa65e('0x71')]['rawAttributes']);_0x340697[_0xa65e('0x42')]=_[_0xa65e('0x43')](_0xab6274[_0xa65e('0x42')]);_0x340697[_0xa65e('0x4d')]=_[_0xa65e('0x45')](_0x340697[_0xa65e('0x40')],_0x340697['query']);_0x9f49c0[_0xa65e('0x44')]=_[_0xa65e('0x45')](_0x340697[_0xa65e('0x40')],qs['fields'](_0xab6274[_0xa65e('0x42')][_0xa65e('0x46')]));_0x9f49c0[_0xa65e('0x44')]=_0x9f49c0[_0xa65e('0x44')][_0xa65e('0x47')]?_0x9f49c0[_0xa65e('0x44')]:_0x340697[_0xa65e('0x40')];_0x9f49c0[_0xa65e('0x4a')]=qs[_0xa65e('0x4b')](_0xab6274[_0xa65e('0x42')][_0xa65e('0x4b')]);_0x9f49c0[_0xa65e('0x4c')]=qs[_0xa65e('0x4d')](_[_0xa65e('0x4e')](_0xab6274[_0xa65e('0x42')],_0x340697['filters']));if(_0xab6274['query'][_0xa65e('0x4f')]){_0x9f49c0['where']=_['merge'](_0x9f49c0[_0xa65e('0x4c')],{'$or':_['map'](_0x9f49c0[_0xa65e('0x44')],function(_0x56cccb){var _0x10599c={};_0x10599c[_0x56cccb]={'$like':'%'+_0xab6274[_0xa65e('0x42')]['filter']+'%'};return _0x10599c;})});}_0x9f49c0=_[_0xa65e('0x51')]({},_0x9f49c0,_0xab6274['options']);return _0x52836c[_0xa65e('0x70')](_0x9f49c0);}})[_0xa65e('0x35')](function(_0xb3235a){if(_0xb3235a){_0x1d872b=_0xb3235a[_0xa65e('0x47')];if(!_0xab6274[_0xa65e('0x42')][_0xa65e('0x48')](_0xa65e('0x49'))){_0x9f49c0[_0xa65e('0x2e')]=qs['limit'](_0xab6274[_0xa65e('0x42')]['limit']);_0x9f49c0[_0xa65e('0x2c')]=qs['offset'](_0xab6274[_0xa65e('0x42')]['offset']);}return _0x52836c['getTeams'](_0x9f49c0);}})[_0xa65e('0x35')](function(_0x37d2a0){if(_0x37d2a0){return _0x37d2a0?{'count':_0x1d872b,'rows':_0x37d2a0}:null;}})[_0xa65e('0x35')](respondWithResult(_0x2e393a,null))['catch'](handleError(_0x2e393a,null));};exports[_0xa65e('0x72')]=function(_0x3a82ee,_0x225f97,_0x351581){var _0x94123c=_0x3a82ee[_0xa65e('0x5a')]['ids'];return db['Team'][_0xa65e('0x67')]({'where':{'id':_0x94123c},'attributes':['id'],'include':[{'model':db['User'],'as':_0xa65e('0x73'),'attributes':['id',_0xa65e('0x39'),'online',_0xa65e('0x74'),_0xa65e('0x75')],'raw':!![]}]})['then'](function(_0x14c99b){if(_0x14c99b){var _0x2109cb=_['flatMap'](_0x14c99b,function(_0x5215fa){var _0x4ad232=_0x5215fa[_0xa65e('0x36')]({'plain':!![]});return _0x4ad232[_0xa65e('0x73')];});return db[_0xa65e('0x3b')][_0xa65e('0x58')]({'where':{'id':_0x3a82ee[_0xa65e('0x56')]['id']}})[_0xa65e('0x35')](function(_0x13eba0){return db[_0xa65e('0x76')]['transaction'](function(_0x48c38b){return _0x13eba0['addTeams'](_0x94123c,{'transaction':_0x48c38b})['then'](function(){return BPromise['each'](_0x2109cb,function(_0x2b965a){return db[_0xa65e('0x65')]['findOrCreate']({'where':{'UserId':_0x2b965a['id'],'ChatQueueId':_0x3a82ee['params']['id']},'transaction':_0x48c38b});});})['then'](function(){_0x2109cb[_0xa65e('0x77')](function(_0x462d8f){socket[_0xa65e('0x78')]('userChatQueue:save',{'UserId':_0x462d8f['id'],'ChatQueueId':_0x13eba0['id']});});});});});}})[_0xa65e('0x35')](respondWithStatusCode(_0x225f97,null))[_0xa65e('0x55')](handleError(_0x225f97,null));};exports['removeTeams']=function(_0x45cb86,_0x4c2992,_0x221178){return db['Team'][_0xa65e('0x67')]({'where':{'id':_0x45cb86[_0xa65e('0x42')]['ids']},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x4c2992,null))[_0xa65e('0x35')](function(_0x41233a){var _0x594973=_[_0xa65e('0x41')](_0x41233a,'id');var _0x51095b=[];var _0x2aa3c5=[];var _0x38acf7=squel[_0xa65e('0x79')]();_0x38acf7[_0xa65e('0x7a')](_0xa65e('0x7b'))[_0xa65e('0x7c')](_0xa65e('0x7d'),'tq')[_0xa65e('0x7e')](_0xa65e('0x7f'),'ut',_0xa65e('0x80'))['where'](_0xa65e('0x81'),_0x45cb86[_0xa65e('0x56')]['id']);for(var _0x4cd55d=0x0;_0x4cd55d<_0x41233a[_0xa65e('0x47')];_0x4cd55d+=0x1){let _0x495b45=_0x41233a[_0x4cd55d];for(var _0x4684e6=0x0;_0x4684e6<_0x495b45[_0xa65e('0x73')]['length'];_0x4684e6+=0x1){let _0x5e45b6=_0x495b45[_0xa65e('0x73')][_0x4684e6];var _0x320e5d=_0x38acf7[_0xa65e('0x82')]();_0x320e5d['where'](_0xa65e('0x83'),_0x5e45b6['id']);_0x2aa3c5[_0xa65e('0x84')](db[_0xa65e('0x76')][_0xa65e('0x42')](_0x320e5d['toString'](),{'type':db[_0xa65e('0x76')][_0xa65e('0x85')]['SELECT']})[_0xa65e('0x35')](function(_0xa40d3f){if(_0xa40d3f['length']===0x1){return _0x5e45b6['id'];}else{var _0x234f46=_[_0xa65e('0x86')](_[_0xa65e('0x41')](_0xa40d3f,_0xa65e('0x87')),function(_0x2d6324){return _[_0xa65e('0x88')](_0x594973,_0x2d6324);});if(_0x234f46){return _0x5e45b6['id'];}}}));}}return BPromise[_0xa65e('0x89')](_0x2aa3c5)[_0xa65e('0x35')](function(_0x1b7b5e){_0x51095b=_(_0x51095b)[_0xa65e('0x8a')](_0x1b7b5e)[_0xa65e('0x8b')]()[_0xa65e('0x8c')]();return db[_0xa65e('0x3b')][_0xa65e('0x58')]({'where':{'id':_0x45cb86[_0xa65e('0x56')]['id']}})[_0xa65e('0x35')](function(_0x1328d9){return db[_0xa65e('0x76')]['transaction'](function(_0x574ffe){return _0x1328d9[_0xa65e('0x8d')](_0x45cb86[_0xa65e('0x42')][_0xa65e('0x8e')],{'transaction':_0x574ffe})[_0xa65e('0x35')](function(){if(!_[_0xa65e('0x8f')](_0x51095b)){return _0x1328d9[_0xa65e('0x90')](_0x51095b,{'transaction':_0x574ffe});}})['then'](function(){_0x51095b['forEach'](function(_0x56baf5){socket['emit'](_0xa65e('0x91'),{'UserId':_0x56baf5,'ChatQueueId':_0x1328d9['id']});});});});});});})[_0xa65e('0x35')](respondWithStatusCode(_0x4c2992,null))['catch'](handleError(_0x4c2992,null));};exports['addAgents']=function(_0x420598,_0x112663,_0x3dcbde){return db[_0xa65e('0x3b')][_0xa65e('0x58')]({'where':{'id':_0x420598[_0xa65e('0x56')]['id']}})[_0xa65e('0x35')](handleEntityNotFound(_0x112663,null))[_0xa65e('0x35')](function(_0x1f1a96){if(_0x1f1a96){return _0x1f1a96[_0xa65e('0x92')](_0x420598[_0xa65e('0x5a')][_0xa65e('0x8e')],_['omit'](_0x420598[_0xa65e('0x5a')],[_0xa65e('0x8e'),'id'])||{})[_0xa65e('0x93')](function(_0x58b520){for(var _0xb609d9=0x0;_0xb609d9<_0x420598['body']['ids'][_0xa65e('0x47')];_0xb609d9+=0x1){socket[_0xa65e('0x78')](_0xa65e('0x94'),{'UserId':Number(_0x420598['body'][_0xa65e('0x8e')][_0xb609d9]),'ChatQueueId':Number(_0x420598['params']['id'])});}return _0x58b520;});}})[_0xa65e('0x35')](respondWithResult(_0x112663,null))[_0xa65e('0x55')](handleError(_0x112663,null));};exports[_0xa65e('0x90')]=function(_0x2ba3f5,_0x1f8978,_0x382eb2){return db[_0xa65e('0x3b')]['find']({'where':{'id':_0x2ba3f5[_0xa65e('0x56')]['id']}})[_0xa65e('0x35')](handleEntityNotFound(_0x1f8978,null))['then'](function(_0x342087){if(_0x342087){return _0x342087['removeAgents'](_0x2ba3f5[_0xa65e('0x42')]['ids'])['then'](function(){if(_[_0xa65e('0x95')](_0x2ba3f5[_0xa65e('0x42')]['ids'])){for(var _0xdb7017=0x0;_0xdb7017<_0x2ba3f5[_0xa65e('0x42')][_0xa65e('0x8e')][_0xa65e('0x47')];_0xdb7017+=0x1){socket[_0xa65e('0x78')](_0xa65e('0x91'),{'UserId':Number(_0x2ba3f5[_0xa65e('0x42')][_0xa65e('0x8e')][_0xdb7017]),'ChatQueueId':Number(_0x2ba3f5[_0xa65e('0x56')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x2ba3f5[_0xa65e('0x42')][_0xa65e('0x8e')]),'ChatQueueId':Number(_0x2ba3f5[_0xa65e('0x56')]['id'])});}});}})[_0xa65e('0x35')](respondWithStatusCode(_0x1f8978,null))['catch'](handleError(_0x1f8978,null));};exports['getAgents']=function(_0x330376,_0x4857fd,_0x38b76b){var _0x5394b5={};var _0x4a2cbd={};var _0x1f641f;var _0x31bee6;return db[_0xa65e('0x3b')][_0xa65e('0x64')]({'where':{'id':_0x330376['params']['id']}})[_0xa65e('0x35')](handleEntityNotFound(_0x4857fd,null))['then'](function(_0x28bfa4){if(_0x28bfa4){_0x1f641f=_0x28bfa4;_0x4a2cbd[_0xa65e('0x40')]=_['keys'](db['User'][_0xa65e('0x3c')]);_0x4a2cbd[_0xa65e('0x42')]=_[_0xa65e('0x43')](_0x330376[_0xa65e('0x42')]);_0x4a2cbd[_0xa65e('0x4d')]=_[_0xa65e('0x45')](_0x4a2cbd[_0xa65e('0x40')],_0x4a2cbd['query']);_0x5394b5['attributes']=_[_0xa65e('0x45')](_0x4a2cbd[_0xa65e('0x40')],qs[_0xa65e('0x46')](_0x330376[_0xa65e('0x42')][_0xa65e('0x46')]));_0x5394b5[_0xa65e('0x44')]=_0x5394b5['attributes'][_0xa65e('0x47')]?_0x5394b5[_0xa65e('0x44')]:_0x4a2cbd[_0xa65e('0x40')];_0x5394b5['order']=qs['sort'](_0x330376[_0xa65e('0x42')]['sort']);_0x5394b5[_0xa65e('0x4c')]=qs[_0xa65e('0x4d')](_[_0xa65e('0x4e')](_0x330376[_0xa65e('0x42')],_0x4a2cbd[_0xa65e('0x4d')]));if(_0x330376[_0xa65e('0x42')][_0xa65e('0x4f')]){_0x5394b5[_0xa65e('0x4c')]=_[_0xa65e('0x51')](_0x5394b5[_0xa65e('0x4c')],{'$or':_[_0xa65e('0x41')](_0x5394b5[_0xa65e('0x44')],function(_0x5357f5){var _0x5e7273={};_0x5e7273[_0x5357f5]={'$like':'%'+_0x330376[_0xa65e('0x42')][_0xa65e('0x4f')]+'%'};return _0x5e7273;})});}_0x5394b5=_['merge']({},_0x5394b5,_0x330376['options']);return _0x1f641f[_0xa65e('0x96')](_0x5394b5);}})[_0xa65e('0x35')](function(_0xb084aa){if(_0xb084aa){_0x31bee6=_0xb084aa[_0xa65e('0x47')];if(!_0x330376[_0xa65e('0x42')][_0xa65e('0x48')](_0xa65e('0x49'))){_0x5394b5[_0xa65e('0x2e')]=qs[_0xa65e('0x2e')](_0x330376[_0xa65e('0x42')][_0xa65e('0x2e')]);_0x5394b5[_0xa65e('0x2c')]=qs[_0xa65e('0x2c')](_0x330376['query'][_0xa65e('0x2c')]);}return _0x1f641f[_0xa65e('0x96')](_0x5394b5);}})[_0xa65e('0x35')](function(_0xedfdf4){if(_0xedfdf4){return _0xedfdf4?{'count':_0x31bee6,'rows':_0xedfdf4}:null;}})[_0xa65e('0x35')](respondWithResult(_0x4857fd,null))['catch'](handleError(_0x4857fd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x385a=['hasOwnProperty','hook','exports','../../mysqldb','ChatQueue','setMaxListeners','save'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x385a,0xa4));var _0xa385=function(_0x2ea067,_0x5d5bd0){_0x2ea067=_0x2ea067-0x0;var _0x3eecfd=_0x385a[_0x2ea067];return _0x3eecfd;};'use strict';var EventEmitter=require('events');var ChatQueue=require(_0xa385('0x0'))['db'][_0xa385('0x1')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0xa385('0x2')](0x0);var events={'afterCreate':_0xa385('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x44e9c4){return function(_0x395e07,_0x2c5e10,_0x55e3fb){ChatQueueEvents['emit'](_0x44e9c4+':'+_0x395e07['id'],_0x395e07);ChatQueueEvents['emit'](_0x44e9c4,_0x395e07);_0x55e3fb(null);};}for(var e in events){if(events[_0xa385('0x4')](e)){var event=events[e];ChatQueue[_0xa385('0x5')](e,emitEvent(event));}}module[_0xa385('0x6')]=ChatQueueEvents;
\ No newline at end of file
+var _0xf2fa=['../../mysqldb','ChatQueue','setMaxListeners','update','emit','hasOwnProperty','hook','events'];(function(_0x60508c,_0x5e2e0d){var _0x4001dd=function(_0x71a4cd){while(--_0x71a4cd){_0x60508c['push'](_0x60508c['shift']());}};_0x4001dd(++_0x5e2e0d);}(_0xf2fa,0x12f));var _0xaf2f=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf2fa[_0x321bb2];return _0x9c12ed;};'use strict';var EventEmitter=require(_0xaf2f('0x0'));var ChatQueue=require(_0xaf2f('0x1'))['db'][_0xaf2f('0x2')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0xaf2f('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xaf2f('0x4'),'afterDestroy':'remove'};function emitEvent(_0x19f39c){return function(_0x5152a9,_0x5324f5,_0x43cac5){ChatQueueEvents[_0xaf2f('0x5')](_0x19f39c+':'+_0x5152a9['id'],_0x5152a9);ChatQueueEvents[_0xaf2f('0x5')](_0x19f39c,_0x5152a9);_0x43cac5(null);};}for(var e in events){if(events[_0xaf2f('0x6')](e)){var event=events[e];ChatQueue[_0xaf2f('0x7')](e,emitEvent(event));}}module['exports']=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8708=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatQueue.attributes','ChatQueue','chat_queues','lodash','api'];(function(_0x5106de,_0x3c1fff){var _0x4d0d40=function(_0x10b10c){while(--_0x10b10c){_0x5106de['push'](_0x5106de['shift']());}};_0x4d0d40(++_0x3c1fff);}(_0x8708,0x98));var _0x8870=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x8708[_0x1035c1];return _0x308d67;};'use strict';var _=require(_0x8870('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x8870('0x1'));var moment=require(_0x8870('0x2'));var BPromise=require(_0x8870('0x3'));var rp=require(_0x8870('0x4'));var fs=require('fs');var path=require(_0x8870('0x5'));var rimraf=require(_0x8870('0x6'));var config=require(_0x8870('0x7'));var attributes=require(_0x8870('0x8'));module['exports']=function(_0x2720e8,_0x29e6d6){return _0x2720e8['define'](_0x8870('0x9'),attributes,{'tableName':_0x8870('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb3f7=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatQueue.attributes','exports','define','ChatQueue','chat_queues','lodash','util','api'];(function(_0x42bc91,_0x41f40a){var _0x3f5507=function(_0x20cfaf){while(--_0x20cfaf){_0x42bc91['push'](_0x42bc91['shift']());}};_0x3f5507(++_0x41f40a);}(_0xb3f7,0xcf));var _0x7b3f=function(_0x599c4e,_0x22815d){_0x599c4e=_0x599c4e-0x0;var _0x569ec1=_0xb3f7[_0x599c4e];return _0x569ec1;};'use strict';var _=require(_0x7b3f('0x0'));var util=require(_0x7b3f('0x1'));var logger=require('../../config/logger')(_0x7b3f('0x2'));var moment=require(_0x7b3f('0x3'));var BPromise=require(_0x7b3f('0x4'));var rp=require(_0x7b3f('0x5'));var fs=require('fs');var path=require(_0x7b3f('0x6'));var rimraf=require(_0x7b3f('0x7'));var config=require(_0x7b3f('0x8'));var attributes=require(_0x7b3f('0x9'));module[_0x7b3f('0xa')]=function(_0x52441a,_0x2c442d){return _0x52441a[_0x7b3f('0xb')](_0x7b3f('0xc'),attributes,{'tableName':_0x7b3f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25e7=['client','defaults','redis','localhost','socket.io-emitter','./chatQueue.socket','register','info','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','ChatQueue,\x20%s,\x20%s','message','request\x20sent','result','GetChatQueue','ChatQueue','findAll','options','raw','where','attributes','include','model','catch','ShowChatQueue','find','map','then','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x2b6198,_0x385aaf){var _0xf0a0e2=function(_0x1025e7){while(--_0x1025e7){_0x2b6198['push'](_0x2b6198['shift']());}};_0xf0a0e2(++_0x385aaf);}(_0x25e7,0x1d6));var _0x725e=function(_0x38ff0f,_0x58fc59){_0x38ff0f=_0x38ff0f-0x0;var _0x597aa2=_0x25e7[_0x38ff0f];return _0x597aa2;};'use strict';var _=require(_0x725e('0x0'));var util=require(_0x725e('0x1'));var moment=require(_0x725e('0x2'));var BPromise=require(_0x725e('0x3'));var rs=require(_0x725e('0x4'));var fs=require('fs');var Redis=require(_0x725e('0x5'));var db=require(_0x725e('0x6'))['db'];var utils=require(_0x725e('0x7'));var logger=require(_0x725e('0x8'))(_0x725e('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x725e('0xa')]['http']({'port':0x232a});config['redis']=_[_0x725e('0xb')](config[_0x725e('0xc')],{'host':_0x725e('0xd'),'port':0x18eb});var socket=require(_0x725e('0xe'))(new Redis(config[_0x725e('0xc')]));require(_0x725e('0xf'))[_0x725e('0x10')](socket);function respondWithRpcPromise(_0x7c40ff,_0x22c189,_0x45cb68){return new BPromise(function(_0x441c29,_0xb297c7){return client['request'](_0x7c40ff,_0x45cb68)['then'](function(_0x40741b){logger[_0x725e('0x11')]('ChatQueue,\x20%s,\x20%s',_0x22c189,'request\x20sent');logger[_0x725e('0x12')](_0x725e('0x13'),_0x22c189,'request\x20sent',JSON[_0x725e('0x14')](_0x40741b));if(_0x40741b[_0x725e('0x15')]){if(_0x40741b[_0x725e('0x15')]['code']===0x1f4){logger[_0x725e('0x15')](_0x725e('0x16'),_0x22c189,_0x40741b[_0x725e('0x15')][_0x725e('0x17')]);return _0xb297c7(_0x40741b[_0x725e('0x15')][_0x725e('0x17')]);}logger['error'](_0x725e('0x16'),_0x22c189,_0x40741b[_0x725e('0x15')][_0x725e('0x17')]);return _0x441c29(_0x40741b['error'][_0x725e('0x17')]);}else{logger[_0x725e('0x11')](_0x725e('0x16'),_0x22c189,_0x725e('0x18'));_0x441c29(_0x40741b[_0x725e('0x19')][_0x725e('0x17')]);}})['catch'](function(_0x22fba5){logger[_0x725e('0x15')](_0x725e('0x16'),_0x22c189,_0x22fba5);_0xb297c7(_0x22fba5);});});}exports[_0x725e('0x1a')]=function(_0x1a9ea6){var _0x3ad3d2=this;return new Promise(function(_0x540802,_0x2fc416){return db[_0x725e('0x1b')][_0x725e('0x1c')]({'raw':_0x1a9ea6[_0x725e('0x1d')]?_0x1a9ea6[_0x725e('0x1d')][_0x725e('0x1e')]===undefined?!![]:![]:!![],'where':_0x1a9ea6[_0x725e('0x1d')]?_0x1a9ea6[_0x725e('0x1d')][_0x725e('0x1f')]||null:null,'attributes':_0x1a9ea6['options']?_0x1a9ea6[_0x725e('0x1d')][_0x725e('0x20')]||null:null,'limit':_0x1a9ea6[_0x725e('0x1d')]?_0x1a9ea6[_0x725e('0x1d')]['limit']||null:null,'include':_0x1a9ea6[_0x725e('0x1d')]?_0x1a9ea6['options']['include']?_['map'](_0x1a9ea6[_0x725e('0x1d')][_0x725e('0x21')],function(_0x2d3c55){return{'model':db[_0x2d3c55['model']],'as':_0x2d3c55['as'],'attributes':_0x2d3c55[_0x725e('0x20')],'include':_0x2d3c55[_0x725e('0x21')]?_['map'](_0x2d3c55[_0x725e('0x21')],function(_0x339a58){return{'model':db[_0x339a58['model']],'as':_0x339a58['as'],'attributes':_0x339a58[_0x725e('0x20')],'include':_0x339a58['include']?_['map'](_0x339a58[_0x725e('0x21')],function(_0x5b8dec){return{'model':db[_0x5b8dec[_0x725e('0x22')]],'as':_0x5b8dec['as'],'attributes':_0x5b8dec['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x9b5b7f){logger[_0x725e('0x11')](_0x725e('0x1a'),_0x1a9ea6);logger['debug'](_0x725e('0x1a'),_0x1a9ea6,JSON['stringify'](_0x9b5b7f));_0x540802(_0x9b5b7f);})[_0x725e('0x23')](function(_0x1ce9c8){logger[_0x725e('0x15')](_0x725e('0x1a'),_0x1ce9c8[_0x725e('0x17')],_0x1a9ea6);_0x2fc416(_0x3ad3d2[_0x725e('0x15')](0x1f4,_0x1ce9c8[_0x725e('0x17')]));});});};exports[_0x725e('0x24')]=function(_0x4271d2){var _0x3e7637=this;return new Promise(function(_0x9179a4,_0x5493d0){return db[_0x725e('0x1b')][_0x725e('0x25')]({'raw':_0x4271d2['options']?_0x4271d2[_0x725e('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x4271d2[_0x725e('0x1d')]?_0x4271d2['options'][_0x725e('0x1f')]||null:null,'attributes':_0x4271d2[_0x725e('0x1d')]?_0x4271d2[_0x725e('0x1d')][_0x725e('0x20')]||null:null,'include':_0x4271d2[_0x725e('0x1d')]?_0x4271d2[_0x725e('0x1d')]['include']?_['map'](_0x4271d2[_0x725e('0x1d')][_0x725e('0x21')],function(_0x224942){return{'model':db[_0x224942['model']],'as':_0x224942['as'],'attributes':_0x224942[_0x725e('0x20')],'include':_0x224942['include']?_[_0x725e('0x26')](_0x224942[_0x725e('0x21')],function(_0x386636){return{'model':db[_0x386636[_0x725e('0x22')]],'as':_0x386636['as'],'attributes':_0x386636['attributes'],'include':_0x386636['include']?_[_0x725e('0x26')](_0x386636[_0x725e('0x21')],function(_0xe255a3){return{'model':db[_0xe255a3['model']],'as':_0xe255a3['as'],'attributes':_0xe255a3[_0x725e('0x20')]};}):[]};}):[]};}):[]:[]})[_0x725e('0x27')](function(_0x2c2669){logger['info'](_0x725e('0x24'),_0x4271d2);logger['debug'](_0x725e('0x24'),_0x4271d2,JSON[_0x725e('0x14')](_0x2c2669));_0x9179a4(_0x2c2669);})[_0x725e('0x23')](function(_0x46a0de){logger[_0x725e('0x15')]('ShowChatQueue',_0x46a0de['message'],_0x4271d2);_0x5493d0(_0x3e7637[_0x725e('0x15')](0x1f4,_0x46a0de[_0x725e('0x17')]));});});};
\ No newline at end of file
+var _0x4808=['then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetChatQueue','findAll','options','raw','where','attributes','include','map','model','catch','ChatQueue','find','ShowChatQueue','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','defaults','localhost','socket.io-emitter','redis','./chatQueue.socket','register','request'];(function(_0x35082c,_0xde7fa9){var _0xbec57d=function(_0x237034){while(--_0x237034){_0x35082c['push'](_0x35082c['shift']());}};_0xbec57d(++_0xde7fa9);}(_0x4808,0x160));var _0x8480=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x4808[_0x4b055c];return _0x4b62bb;};'use strict';var _=require(_0x8480('0x0'));var util=require(_0x8480('0x1'));var moment=require(_0x8480('0x2'));var BPromise=require('bluebird');var rs=require(_0x8480('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8480('0x4'))['db'];var utils=require(_0x8480('0x5'));var logger=require(_0x8480('0x6'))('rpc');var config=require(_0x8480('0x7'));var jayson=require(_0x8480('0x8'));var client=jayson['client'][_0x8480('0x9')]({'port':0x232a});config['redis']=_[_0x8480('0xa')](config['redis'],{'host':_0x8480('0xb'),'port':0x18eb});var socket=require(_0x8480('0xc'))(new Redis(config[_0x8480('0xd')]));require(_0x8480('0xe'))[_0x8480('0xf')](socket);function respondWithRpcPromise(_0x4ff8e3,_0x27b6d6,_0x32ab1b){return new BPromise(function(_0x232440,_0x2301e9){return client[_0x8480('0x10')](_0x4ff8e3,_0x32ab1b)[_0x8480('0x11')](function(_0x1bb2a5){logger[_0x8480('0x12')](_0x8480('0x13'),_0x27b6d6,_0x8480('0x14'));logger[_0x8480('0x15')](_0x8480('0x16'),_0x27b6d6,_0x8480('0x14'),JSON[_0x8480('0x17')](_0x1bb2a5));if(_0x1bb2a5[_0x8480('0x18')]){if(_0x1bb2a5[_0x8480('0x18')][_0x8480('0x19')]===0x1f4){logger[_0x8480('0x18')](_0x8480('0x13'),_0x27b6d6,_0x1bb2a5['error'][_0x8480('0x1a')]);return _0x2301e9(_0x1bb2a5[_0x8480('0x18')][_0x8480('0x1a')]);}logger['error'](_0x8480('0x13'),_0x27b6d6,_0x1bb2a5[_0x8480('0x18')][_0x8480('0x1a')]);return _0x232440(_0x1bb2a5[_0x8480('0x18')][_0x8480('0x1a')]);}else{logger[_0x8480('0x12')](_0x8480('0x13'),_0x27b6d6,'request\x20sent');_0x232440(_0x1bb2a5[_0x8480('0x1b')]['message']);}})['catch'](function(_0x4dbe98){logger[_0x8480('0x18')]('ChatQueue,\x20%s,\x20%s',_0x27b6d6,_0x4dbe98);_0x2301e9(_0x4dbe98);});});}exports[_0x8480('0x1c')]=function(_0x4ad4f9){var _0x56028=this;return new Promise(function(_0x4445d8,_0x1e2b60){return db['ChatQueue'][_0x8480('0x1d')]({'raw':_0x4ad4f9[_0x8480('0x1e')]?_0x4ad4f9[_0x8480('0x1e')][_0x8480('0x1f')]===undefined?!![]:![]:!![],'where':_0x4ad4f9['options']?_0x4ad4f9['options'][_0x8480('0x20')]||null:null,'attributes':_0x4ad4f9[_0x8480('0x1e')]?_0x4ad4f9[_0x8480('0x1e')][_0x8480('0x21')]||null:null,'limit':_0x4ad4f9['options']?_0x4ad4f9[_0x8480('0x1e')]['limit']||null:null,'include':_0x4ad4f9['options']?_0x4ad4f9[_0x8480('0x1e')][_0x8480('0x22')]?_[_0x8480('0x23')](_0x4ad4f9['options'][_0x8480('0x22')],function(_0x4ca36e){return{'model':db[_0x4ca36e[_0x8480('0x24')]],'as':_0x4ca36e['as'],'attributes':_0x4ca36e[_0x8480('0x21')],'include':_0x4ca36e['include']?_[_0x8480('0x23')](_0x4ca36e[_0x8480('0x22')],function(_0x3feecd){return{'model':db[_0x3feecd[_0x8480('0x24')]],'as':_0x3feecd['as'],'attributes':_0x3feecd[_0x8480('0x21')],'include':_0x3feecd['include']?_[_0x8480('0x23')](_0x3feecd[_0x8480('0x22')],function(_0x53663c){return{'model':db[_0x53663c[_0x8480('0x24')]],'as':_0x53663c['as'],'attributes':_0x53663c[_0x8480('0x21')]};}):[]};}):[]};}):[]:[]})[_0x8480('0x11')](function(_0x319ff1){logger['info']('GetChatQueue',_0x4ad4f9);logger['debug']('GetChatQueue',_0x4ad4f9,JSON[_0x8480('0x17')](_0x319ff1));_0x4445d8(_0x319ff1);})[_0x8480('0x25')](function(_0x2762c8){logger[_0x8480('0x18')]('GetChatQueue',_0x2762c8[_0x8480('0x1a')],_0x4ad4f9);_0x1e2b60(_0x56028['error'](0x1f4,_0x2762c8[_0x8480('0x1a')]));});});};exports['ShowChatQueue']=function(_0x532766){var _0x310687=this;return new Promise(function(_0x379d85,_0x27ee42){return db[_0x8480('0x26')][_0x8480('0x27')]({'raw':_0x532766[_0x8480('0x1e')]?_0x532766[_0x8480('0x1e')][_0x8480('0x1f')]===undefined?!![]:![]:!![],'where':_0x532766[_0x8480('0x1e')]?_0x532766[_0x8480('0x1e')][_0x8480('0x20')]||null:null,'attributes':_0x532766[_0x8480('0x1e')]?_0x532766[_0x8480('0x1e')][_0x8480('0x21')]||null:null,'include':_0x532766[_0x8480('0x1e')]?_0x532766[_0x8480('0x1e')][_0x8480('0x22')]?_[_0x8480('0x23')](_0x532766[_0x8480('0x1e')][_0x8480('0x22')],function(_0x50d045){return{'model':db[_0x50d045[_0x8480('0x24')]],'as':_0x50d045['as'],'attributes':_0x50d045[_0x8480('0x21')],'include':_0x50d045[_0x8480('0x22')]?_[_0x8480('0x23')](_0x50d045[_0x8480('0x22')],function(_0x150bdb){return{'model':db[_0x150bdb[_0x8480('0x24')]],'as':_0x150bdb['as'],'attributes':_0x150bdb[_0x8480('0x21')],'include':_0x150bdb[_0x8480('0x22')]?_[_0x8480('0x23')](_0x150bdb[_0x8480('0x22')],function(_0x277eba){return{'model':db[_0x277eba[_0x8480('0x24')]],'as':_0x277eba['as'],'attributes':_0x277eba[_0x8480('0x21')]};}):[]};}):[]};}):[]:[]})[_0x8480('0x11')](function(_0x5cf36b){logger['info'](_0x8480('0x28'),_0x532766);logger['debug']('ShowChatQueue',_0x532766,JSON['stringify'](_0x5cf36b));_0x379d85(_0x5cf36b);})[_0x8480('0x25')](function(_0x3f3b37){logger['error']('ShowChatQueue',_0x3f3b37[_0x8480('0x1a')],_0x532766);_0x27ee42(_0x310687[_0x8480('0x18')](0x1f4,_0x3f3b37[_0x8480('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc874=['emit','removeListener','register','length','./chatQueue.events','remove','update'];(function(_0x1ac257,_0xfb12a0){var _0x104779=function(_0x49d8cb){while(--_0x49d8cb){_0x1ac257['push'](_0x1ac257['shift']());}};_0x104779(++_0xfb12a0);}(_0xc874,0x154));var _0x4c87=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xc874[_0x3ce3c];return _0x55a2c9;};'use strict';var ChatQueueEvents=require(_0x4c87('0x0'));var events=['save',_0x4c87('0x1'),_0x4c87('0x2')];function createListener(_0x505440,_0x5e6d61){return function(_0xfc1b9f){_0x5e6d61[_0x4c87('0x3')](_0x505440,_0xfc1b9f);};}function removeListener(_0x1c3dbc,_0x575a7c){return function(){ChatQueueEvents[_0x4c87('0x4')](_0x1c3dbc,_0x575a7c);};}exports[_0x4c87('0x5')]=function(_0x5d63ae){for(var _0x46e0f5=0x0,_0x3dafe0=events[_0x4c87('0x6')];_0x46e0f5<_0x3dafe0;_0x46e0f5++){var _0xdc4a29=events[_0x46e0f5];var _0x116649=createListener('chatQueue:'+_0xdc4a29,_0x5d63ae);ChatQueueEvents['on'](_0xdc4a29,_0x116649);}};
\ No newline at end of file
+var _0xda55=['chatQueue:','./chatQueue.events','save','emit','removeListener','length'];(function(_0x4c93e1,_0xe41a97){var _0x140d4d=function(_0xd40d2b){while(--_0xd40d2b){_0x4c93e1['push'](_0x4c93e1['shift']());}};_0x140d4d(++_0xe41a97);}(_0xda55,0x6d));var _0x5da5=function(_0x69d91e,_0x12fec6){_0x69d91e=_0x69d91e-0x0;var _0x381436=_0xda55[_0x69d91e];return _0x381436;};'use strict';var ChatQueueEvents=require(_0x5da5('0x0'));var events=[_0x5da5('0x1'),'remove','update'];function createListener(_0x13ecbc,_0x240a49){return function(_0x26a443){_0x240a49[_0x5da5('0x2')](_0x13ecbc,_0x26a443);};}function removeListener(_0x1c3afd,_0x5da254){return function(){ChatQueueEvents[_0x5da5('0x3')](_0x1c3afd,_0x5da254);};}exports['register']=function(_0x356a37){for(var _0x58e7b3=0x0,_0x2fd877=events[_0x5da5('0x4')];_0x58e7b3<_0x2fd877;_0x58e7b3++){var _0x71b187=events[_0x58e7b3];var _0x46290d=createListener(_0x5da5('0x5')+_0x71b187,_0x356a37);ChatQueueEvents['on'](_0x71b187,_0x46290d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['/describe','show','/:id/members','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','/:id','delete','destroy','removeAgents','exports','multer','util','express','Router','../../components/auth/service','./chatQueue.controller','get','isAuthenticated','index'];(function(_0x176ba6,_0x53a6f3){var _0x51f295=function(_0x1adee9){while(--_0x1adee9){_0x176ba6['push'](_0x176ba6['shift']());}};_0x51f295(++_0x53a6f3);}(_0xe14b,0x93));var _0xbe14=function(_0x589686,_0x2cd79c){_0x589686=_0x589686-0x0;var _0x4110da=_0xe14b[_0x589686];return _0x4110da;};'use strict';var multer=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbe14('0x2'));var router=express[_0xbe14('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xbe14('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xbe14('0x5'));router[_0xbe14('0x6')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x8')]);router[_0xbe14('0x6')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['describe']);router['get']('/:id',auth[_0xbe14('0x7')](),controller[_0xbe14('0xa')]);router[_0xbe14('0x6')](_0xbe14('0xb'),auth['isAuthenticated'](),controller['getMembers']);router[_0xbe14('0x6')](_0xbe14('0xc'),auth['isAuthenticated'](),controller[_0xbe14('0xd')]);router[_0xbe14('0x6')](_0xbe14('0xe'),auth[_0xbe14('0x7')](),controller[_0xbe14('0xf')]);router[_0xbe14('0x10')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x11')]);router[_0xbe14('0x10')](_0xbe14('0xc'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x12')]);router[_0xbe14('0x10')]('/:id/users',auth['isAuthenticated'](),controller[_0xbe14('0x13')]);router[_0xbe14('0x14')](_0xbe14('0x15'),auth[_0xbe14('0x7')](),controller['update']);router[_0xbe14('0x16')](_0xbe14('0x15'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x17')]);router[_0xbe14('0x16')](_0xbe14('0xc'),auth[_0xbe14('0x7')](),controller['removeTeams']);router[_0xbe14('0x16')](_0xbe14('0xe'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x18')]);module[_0xbe14('0x19')]=router;
\ No newline at end of file
+var _0x55ca=['post','addAgents','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./chatQueue.controller','get','isAuthenticated','index','describe','/:id','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','addTeams'];(function(_0x3fe780,_0x26079d){var _0x59c64e=function(_0x3a13a5){while(--_0x3a13a5){_0x3fe780['push'](_0x3fe780['shift']());}};_0x59c64e(++_0x26079d);}(_0x55ca,0x126));var _0xa55c=function(_0x4e93a9,_0x413f30){_0x4e93a9=_0x4e93a9-0x0;var _0x43013c=_0x55ca[_0x4e93a9];return _0x43013c;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')]('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0x9')]);router[_0xa55c('0x7')]('/describe',auth[_0xa55c('0x8')](),controller[_0xa55c('0xa')]);router['get'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller['show']);router['get'](_0xa55c('0xc'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xd')]);router[_0xa55c('0x7')](_0xa55c('0xe'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xf')]);router[_0xa55c('0x7')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller['getAgents']);router['post']('/',auth[_0xa55c('0x8')](),controller['create']);router['post']('/:id/teams',auth[_0xa55c('0x8')](),controller[_0xa55c('0x11')]);router[_0xa55c('0x12')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x13')]);router['put'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x14')]);router[_0xa55c('0x15')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x16')]);router[_0xa55c('0x15')](_0xa55c('0xe'),auth['isAuthenticated'](),controller[_0xa55c('0x17')]);router[_0xa55c('0x15')](_0xa55c('0x10'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x18')]);module[_0xa55c('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc42=['exports','STRING','DATE'];(function(_0x19e15e,_0x49a659){var _0x3129f0=function(_0xea529){while(--_0xea529){_0x19e15e['push'](_0x19e15e['shift']());}};_0x3129f0(++_0x49a659);}(_0xcc42,0x84));var _0x2cc4=function(_0x506d2f,_0x5ab76e){_0x506d2f=_0x506d2f-0x0;var _0x101255=_0xcc42[_0x506d2f];return _0x101255;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x2cc4('0x0')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x2cc4('0x1')]},'joinAt':{'type':Sequelize[_0x2cc4('0x2')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x2cc4('0x2')]},'reason':{'type':Sequelize[_0x2cc4('0x1')]}};
\ No newline at end of file
+var _0xe5ea=['DATE','moment','exports','STRING'];(function(_0xadd06c,_0x461540){var _0x579ab4=function(_0x380b2e){while(--_0x380b2e){_0xadd06c['push'](_0xadd06c['shift']());}};_0x579ab4(++_0x461540);}(_0xe5ea,0xfd));var _0xae5e=function(_0x4f0b93,_0x16a201){_0x4f0b93=_0x4f0b93-0x0;var _0x4c651e=_0xe5ea[_0x4f0b93];return _0x4c651e;};'use strict';var moment=require(_0xae5e('0x0'));var Sequelize=require('sequelize');module[_0xae5e('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xae5e('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0xae5e('0x3')]},'acceptAt':{'type':Sequelize[_0xae5e('0x3')]},'exitAt':{'type':Sequelize[_0xae5e('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29b7=['show','include','find','body','params','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','reject','save','update','then','destroy','error','stack','name','send','index','map','ChatQueueReport','rawAttributes','fieldName','type','key','keys','filters','intersection','query','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','findAll','rows','catch'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x29b7,0x17d));var _0x729b=function(_0xc06b1b,_0x1fc7ea){_0xc06b1b=_0xc06b1b-0x0;var _0x568413=_0x29b7[_0xc06b1b];return _0x568413;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x729b('0x0'));var zipdir=require(_0x729b('0x1'));var jsonpatch=require(_0x729b('0x2'));var rp=require(_0x729b('0x3'));var moment=require(_0x729b('0x4'));var BPromise=require(_0x729b('0x5'));var Mustache=require(_0x729b('0x6'));var util=require(_0x729b('0x7'));var path=require('path');var sox=require(_0x729b('0x8'));var csv=require(_0x729b('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x729b('0xa'));var _=require(_0x729b('0xb'));var squel=require(_0x729b('0xc'));var crypto=require(_0x729b('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x729b('0xe'));var toCsv=require(_0x729b('0x9'));var querystring=require(_0x729b('0xf'));var Papa=require(_0x729b('0x10'));var Redis=require(_0x729b('0x11'));var authService=require(_0x729b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x729b('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x729b('0x14'))(_0x729b('0x15'));var utils=require(_0x729b('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x729b('0x17'));var db=require(_0x729b('0x18'))['db'];function respondWithStatusCode(_0x60c948,_0x35f036){_0x35f036=_0x35f036||0xcc;return function(_0x17a664){if(_0x17a664){return _0x60c948['sendStatus'](_0x35f036);}return _0x60c948[_0x729b('0x19')](_0x35f036)[_0x729b('0x1a')]();};}function respondWithResult(_0x56883a,_0x26a9d9){_0x26a9d9=_0x26a9d9||0xc8;return function(_0x3afdc1){if(_0x3afdc1){return _0x56883a[_0x729b('0x19')](_0x26a9d9)[_0x729b('0x1b')](_0x3afdc1);}};}function respondWithFilteredResult(_0x248378,_0x4e25e0){return function(_0x5eaff6){if(_0x5eaff6){var _0x2ab1ca=typeof _0x4e25e0[_0x729b('0x1c')]===_0x729b('0x1d')&&typeof _0x4e25e0[_0x729b('0x1e')]==='undefined';var _0x3b91e9=_0x5eaff6[_0x729b('0x1f')];var _0x58fce1=_0x2ab1ca?0x0:_0x4e25e0[_0x729b('0x1c')];var _0x36a23e=_0x2ab1ca?_0x5eaff6[_0x729b('0x1f')]:_0x4e25e0[_0x729b('0x1c')]+_0x4e25e0[_0x729b('0x1e')];var _0x52cde1;if(_0x36a23e>=_0x3b91e9){_0x36a23e=_0x3b91e9;_0x52cde1=0xc8;}else{_0x52cde1=0xce;}_0x248378[_0x729b('0x19')](_0x52cde1);return _0x248378[_0x729b('0x20')]('Content-Range',_0x58fce1+'-'+_0x36a23e+'/'+_0x3b91e9)[_0x729b('0x1b')](_0x5eaff6);}return null;};}function patchUpdates(_0x2bf269){return function(_0x4fe695){try{jsonpatch['apply'](_0x4fe695,_0x2bf269,!![]);}catch(_0xf511cb){return BPromise[_0x729b('0x21')](_0xf511cb);}return _0x4fe695[_0x729b('0x22')]();};}function saveUpdates(_0x80814f,_0x31d58f){return function(_0x257290){if(_0x257290){return _0x257290[_0x729b('0x23')](_0x80814f)[_0x729b('0x24')](function(_0x5d2a27){return _0x5d2a27;});}return null;};}function removeEntity(_0x3974e2,_0x378c4d){return function(_0x261c6f){if(_0x261c6f){return _0x261c6f[_0x729b('0x25')]()[_0x729b('0x24')](function(){_0x3974e2['status'](0xcc)[_0x729b('0x1a')]();});}};}function handleEntityNotFound(_0x2d127e,_0x5bfd74){return function(_0x378a89){if(!_0x378a89){_0x2d127e['sendStatus'](0x194);}return _0x378a89;};}function handleError(_0x5b0246,_0x39065a){_0x39065a=_0x39065a||0x1f4;return function(_0x376a22){logger[_0x729b('0x26')](_0x376a22[_0x729b('0x27')]);if(_0x376a22[_0x729b('0x28')]){delete _0x376a22['name'];}_0x5b0246[_0x729b('0x19')](_0x39065a)[_0x729b('0x29')](_0x376a22);};}exports[_0x729b('0x2a')]=function(_0x1bd0f3,_0x11053e){var _0x147797={},_0x41fe6a={},_0x2329cf={'count':0x0,'rows':[]};var _0x537572=_[_0x729b('0x2b')](db[_0x729b('0x2c')][_0x729b('0x2d')],function(_0x4fe559){return{'name':_0x4fe559[_0x729b('0x2e')],'type':_0x4fe559[_0x729b('0x2f')][_0x729b('0x30')]};});_0x41fe6a['model']=_[_0x729b('0x2b')](_0x537572,_0x729b('0x28'));_0x41fe6a['query']=_[_0x729b('0x31')](_0x1bd0f3['query']);_0x41fe6a[_0x729b('0x32')]=_[_0x729b('0x33')](_0x41fe6a['model'],_0x41fe6a[_0x729b('0x34')]);_0x147797[_0x729b('0x35')]=_[_0x729b('0x33')](_0x41fe6a[_0x729b('0x36')],qs[_0x729b('0x37')](_0x1bd0f3[_0x729b('0x34')]['fields']));_0x147797[_0x729b('0x35')]=_0x147797[_0x729b('0x35')][_0x729b('0x38')]?_0x147797[_0x729b('0x35')]:_0x41fe6a[_0x729b('0x36')];if(!_0x1bd0f3[_0x729b('0x34')]['hasOwnProperty'](_0x729b('0x39'))){_0x147797[_0x729b('0x1e')]=qs['limit'](_0x1bd0f3[_0x729b('0x34')][_0x729b('0x1e')]);_0x147797['offset']=qs[_0x729b('0x1c')](_0x1bd0f3[_0x729b('0x34')][_0x729b('0x1c')]);}_0x147797[_0x729b('0x3a')]=qs[_0x729b('0x3b')](_0x1bd0f3[_0x729b('0x34')][_0x729b('0x3b')]);_0x147797[_0x729b('0x3c')]=qs[_0x729b('0x32')](_[_0x729b('0x3d')](_0x1bd0f3['query'],_0x41fe6a[_0x729b('0x32')]),_0x537572);if(_0x1bd0f3[_0x729b('0x34')][_0x729b('0x3e')]){_0x147797[_0x729b('0x3c')]=_['merge'](_0x147797[_0x729b('0x3c')],{'$or':_[_0x729b('0x2b')](_0x537572,function(_0x2f6924){if(_0x2f6924['type']!=='VIRTUAL'){var _0x1d21e2={};_0x1d21e2[_0x2f6924[_0x729b('0x28')]]={'$like':'%'+_0x1bd0f3['query'][_0x729b('0x3e')]+'%'};return _0x1d21e2;}})});}_0x147797=_[_0x729b('0x3f')]({},_0x147797,_0x1bd0f3[_0x729b('0x40')]);var _0x20122b={'where':_0x147797['where']};return db[_0x729b('0x2c')][_0x729b('0x1f')](_0x20122b)[_0x729b('0x24')](function(_0x4854dc){_0x2329cf['count']=_0x4854dc;if(_0x1bd0f3[_0x729b('0x34')][_0x729b('0x41')]){_0x147797['include']=[{'all':!![]}];}return db[_0x729b('0x2c')][_0x729b('0x42')](_0x147797);})[_0x729b('0x24')](function(_0x51725c){_0x2329cf[_0x729b('0x43')]=_0x51725c;return _0x2329cf;})['then'](respondWithFilteredResult(_0x11053e,_0x147797))[_0x729b('0x44')](handleError(_0x11053e,null));};exports[_0x729b('0x45')]=function(_0xb8a017,_0x4ca70c){var _0x4303b0={'raw':!![],'where':{'id':_0xb8a017['params']['id']}},_0x323b55={};_0x323b55[_0x729b('0x36')]=_[_0x729b('0x31')](db[_0x729b('0x2c')]['rawAttributes']);_0x323b55['query']=_['keys'](_0xb8a017['query']);_0x323b55[_0x729b('0x32')]=_[_0x729b('0x33')](_0x323b55[_0x729b('0x36')],_0x323b55['query']);_0x4303b0['attributes']=_[_0x729b('0x33')](_0x323b55[_0x729b('0x36')],qs['fields'](_0xb8a017[_0x729b('0x34')][_0x729b('0x37')]));_0x4303b0[_0x729b('0x35')]=_0x4303b0['attributes'][_0x729b('0x38')]?_0x4303b0[_0x729b('0x35')]:_0x323b55[_0x729b('0x36')];if(_0xb8a017[_0x729b('0x34')][_0x729b('0x41')]){_0x4303b0[_0x729b('0x46')]=[{'all':!![]}];}_0x4303b0=_[_0x729b('0x3f')]({},_0x4303b0,_0xb8a017[_0x729b('0x40')]);return db[_0x729b('0x2c')][_0x729b('0x47')](_0x4303b0)['then'](handleEntityNotFound(_0x4ca70c,null))[_0x729b('0x24')](respondWithResult(_0x4ca70c,null))[_0x729b('0x44')](handleError(_0x4ca70c,null));};exports['create']=function(_0x50abf4,_0x6fb966){return db['ChatQueueReport']['create'](_0x50abf4[_0x729b('0x48')],{})[_0x729b('0x24')](respondWithResult(_0x6fb966,0xc9))[_0x729b('0x44')](handleError(_0x6fb966,null));};exports['update']=function(_0x48d447,_0x24c13d){if(_0x48d447[_0x729b('0x48')]['id']){delete _0x48d447[_0x729b('0x48')]['id'];}return db[_0x729b('0x2c')][_0x729b('0x47')]({'where':{'id':_0x48d447[_0x729b('0x49')]['id']}})[_0x729b('0x24')](handleEntityNotFound(_0x24c13d,null))[_0x729b('0x24')](saveUpdates(_0x48d447[_0x729b('0x48')],null))[_0x729b('0x24')](respondWithResult(_0x24c13d,null))[_0x729b('0x44')](handleError(_0x24c13d,null));};exports[_0x729b('0x25')]=function(_0x56ff5f,_0x296d45){return db[_0x729b('0x2c')][_0x729b('0x47')]({'where':{'id':_0x56ff5f[_0x729b('0x49')]['id']}})[_0x729b('0x24')](handleEntityNotFound(_0x296d45,null))['then'](removeEntity(_0x296d45,null))[_0x729b('0x44')](handleError(_0x296d45,null));};exports[_0x729b('0x4a')]=function(_0x4da2c5,_0x1be5e5){return db[_0x729b('0x2c')][_0x729b('0x4a')]()[_0x729b('0x24')](respondWithResult(_0x1be5e5,null))[_0x729b('0x44')](handleError(_0x1be5e5,null));};
\ No newline at end of file
+var _0x63f2=['params','keys','rawAttributes','length','include','find','catch','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','then','error','stack','name','send','index','map','ChatQueueReport','fieldName','type','key','model','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','rows','show'];(function(_0x4e9033,_0x4aab67){var _0x4a57f4=function(_0x21df97){while(--_0x21df97){_0x4e9033['push'](_0x4e9033['shift']());}};_0x4a57f4(++_0x4aab67);}(_0x63f2,0x19b));var _0x263f=function(_0x2c5a7b,_0x1a6d2e){_0x2c5a7b=_0x2c5a7b-0x0;var _0x407f64=_0x63f2[_0x2c5a7b];return _0x407f64;};'use strict';var emlformat=require(_0x263f('0x0'));var rimraf=require(_0x263f('0x1'));var zipdir=require(_0x263f('0x2'));var jsonpatch=require(_0x263f('0x3'));var rp=require(_0x263f('0x4'));var moment=require(_0x263f('0x5'));var BPromise=require(_0x263f('0x6'));var Mustache=require(_0x263f('0x7'));var util=require(_0x263f('0x8'));var path=require('path');var sox=require(_0x263f('0x9'));var csv=require(_0x263f('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x263f('0xb'));var _=require(_0x263f('0xc'));var squel=require(_0x263f('0xd'));var crypto=require('crypto');var jsforce=require(_0x263f('0xe'));var deskjs=require(_0x263f('0xf'));var toCsv=require(_0x263f('0xa'));var querystring=require(_0x263f('0x10'));var Papa=require(_0x263f('0x11'));var Redis=require(_0x263f('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x263f('0x13'));var as=require(_0x263f('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x263f('0x15'))(_0x263f('0x16'));var utils=require(_0x263f('0x17'));var config=require(_0x263f('0x18'));var licenseUtil=require(_0x263f('0x19'));var db=require(_0x263f('0x1a'))['db'];function respondWithStatusCode(_0x2053ea,_0x84e574){_0x84e574=_0x84e574||0xcc;return function(_0x1bb05a){if(_0x1bb05a){return _0x2053ea['sendStatus'](_0x84e574);}return _0x2053ea[_0x263f('0x1b')](_0x84e574)[_0x263f('0x1c')]();};}function respondWithResult(_0x371798,_0x2fd47f){_0x2fd47f=_0x2fd47f||0xc8;return function(_0x553413){if(_0x553413){return _0x371798['status'](_0x2fd47f)['json'](_0x553413);}};}function respondWithFilteredResult(_0x3e72f8,_0x316be8){return function(_0x571c6e){if(_0x571c6e){var _0x119170=typeof _0x316be8[_0x263f('0x1d')]===_0x263f('0x1e')&&typeof _0x316be8[_0x263f('0x1f')]==='undefined';var _0x4169c4=_0x571c6e[_0x263f('0x20')];var _0x143dcd=_0x119170?0x0:_0x316be8[_0x263f('0x1d')];var _0x5a68cf=_0x119170?_0x571c6e[_0x263f('0x20')]:_0x316be8[_0x263f('0x1d')]+_0x316be8[_0x263f('0x1f')];var _0x15bf30;if(_0x5a68cf>=_0x4169c4){_0x5a68cf=_0x4169c4;_0x15bf30=0xc8;}else{_0x15bf30=0xce;}_0x3e72f8[_0x263f('0x1b')](_0x15bf30);return _0x3e72f8[_0x263f('0x21')](_0x263f('0x22'),_0x143dcd+'-'+_0x5a68cf+'/'+_0x4169c4)[_0x263f('0x23')](_0x571c6e);}return null;};}function patchUpdates(_0x3903cb){return function(_0x3ad729){try{jsonpatch['apply'](_0x3ad729,_0x3903cb,!![]);}catch(_0x1a6b15){return BPromise[_0x263f('0x24')](_0x1a6b15);}return _0x3ad729[_0x263f('0x25')]();};}function saveUpdates(_0x1e9703,_0x3f1d6e){return function(_0x12c090){if(_0x12c090){return _0x12c090[_0x263f('0x26')](_0x1e9703)[_0x263f('0x27')](function(_0x23a2ff){return _0x23a2ff;});}return null;};}function removeEntity(_0x30bb0c,_0x57ee4f){return function(_0x3b3494){if(_0x3b3494){return _0x3b3494['destroy']()[_0x263f('0x27')](function(){_0x30bb0c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x501d66,_0x399cc3){return function(_0x506f9a){if(!_0x506f9a){_0x501d66['sendStatus'](0x194);}return _0x506f9a;};}function handleError(_0x3815aa,_0x2417bc){_0x2417bc=_0x2417bc||0x1f4;return function(_0x4f912d){logger[_0x263f('0x28')](_0x4f912d[_0x263f('0x29')]);if(_0x4f912d[_0x263f('0x2a')]){delete _0x4f912d[_0x263f('0x2a')];}_0x3815aa[_0x263f('0x1b')](_0x2417bc)[_0x263f('0x2b')](_0x4f912d);};}exports[_0x263f('0x2c')]=function(_0x2097bc,_0x4ac6a6){var _0x250d43={},_0x480baa={},_0xe8e7f7={'count':0x0,'rows':[]};var _0x3fba6b=_[_0x263f('0x2d')](db[_0x263f('0x2e')]['rawAttributes'],function(_0x89c70c){return{'name':_0x89c70c[_0x263f('0x2f')],'type':_0x89c70c[_0x263f('0x30')][_0x263f('0x31')]};});_0x480baa[_0x263f('0x32')]=_[_0x263f('0x2d')](_0x3fba6b,_0x263f('0x2a'));_0x480baa[_0x263f('0x33')]=_['keys'](_0x2097bc[_0x263f('0x33')]);_0x480baa[_0x263f('0x34')]=_['intersection'](_0x480baa['model'],_0x480baa[_0x263f('0x33')]);_0x250d43[_0x263f('0x35')]=_[_0x263f('0x36')](_0x480baa[_0x263f('0x32')],qs[_0x263f('0x37')](_0x2097bc[_0x263f('0x33')][_0x263f('0x37')]));_0x250d43[_0x263f('0x35')]=_0x250d43[_0x263f('0x35')]['length']?_0x250d43[_0x263f('0x35')]:_0x480baa['model'];if(!_0x2097bc[_0x263f('0x33')][_0x263f('0x38')](_0x263f('0x39'))){_0x250d43[_0x263f('0x1f')]=qs[_0x263f('0x1f')](_0x2097bc['query'][_0x263f('0x1f')]);_0x250d43['offset']=qs[_0x263f('0x1d')](_0x2097bc[_0x263f('0x33')][_0x263f('0x1d')]);}_0x250d43[_0x263f('0x3a')]=qs[_0x263f('0x3b')](_0x2097bc[_0x263f('0x33')][_0x263f('0x3b')]);_0x250d43['where']=qs['filters'](_[_0x263f('0x3c')](_0x2097bc['query'],_0x480baa['filters']),_0x3fba6b);if(_0x2097bc[_0x263f('0x33')][_0x263f('0x3d')]){_0x250d43[_0x263f('0x3e')]=_[_0x263f('0x3f')](_0x250d43[_0x263f('0x3e')],{'$or':_[_0x263f('0x2d')](_0x3fba6b,function(_0x431a41){if(_0x431a41[_0x263f('0x30')]!==_0x263f('0x40')){var _0x2cadb7={};_0x2cadb7[_0x431a41[_0x263f('0x2a')]]={'$like':'%'+_0x2097bc[_0x263f('0x33')][_0x263f('0x3d')]+'%'};return _0x2cadb7;}})});}_0x250d43=_[_0x263f('0x3f')]({},_0x250d43,_0x2097bc[_0x263f('0x41')]);var _0xf9a72b={'where':_0x250d43['where']};return db[_0x263f('0x2e')]['count'](_0xf9a72b)[_0x263f('0x27')](function(_0x2cba31){_0xe8e7f7[_0x263f('0x20')]=_0x2cba31;if(_0x2097bc[_0x263f('0x33')][_0x263f('0x42')]){_0x250d43['include']=[{'all':!![]}];}return db[_0x263f('0x2e')]['findAll'](_0x250d43);})['then'](function(_0xb7b2c8){_0xe8e7f7[_0x263f('0x43')]=_0xb7b2c8;return _0xe8e7f7;})[_0x263f('0x27')](respondWithFilteredResult(_0x4ac6a6,_0x250d43))['catch'](handleError(_0x4ac6a6,null));};exports[_0x263f('0x44')]=function(_0xb89b59,_0x232b0b){var _0x2d0ec3={'raw':!![],'where':{'id':_0xb89b59[_0x263f('0x45')]['id']}},_0xcbedff={};_0xcbedff[_0x263f('0x32')]=_[_0x263f('0x46')](db[_0x263f('0x2e')][_0x263f('0x47')]);_0xcbedff[_0x263f('0x33')]=_[_0x263f('0x46')](_0xb89b59[_0x263f('0x33')]);_0xcbedff['filters']=_[_0x263f('0x36')](_0xcbedff['model'],_0xcbedff['query']);_0x2d0ec3[_0x263f('0x35')]=_[_0x263f('0x36')](_0xcbedff['model'],qs['fields'](_0xb89b59['query'][_0x263f('0x37')]));_0x2d0ec3['attributes']=_0x2d0ec3['attributes'][_0x263f('0x48')]?_0x2d0ec3[_0x263f('0x35')]:_0xcbedff['model'];if(_0xb89b59[_0x263f('0x33')]['includeAll']){_0x2d0ec3[_0x263f('0x49')]=[{'all':!![]}];}_0x2d0ec3=_[_0x263f('0x3f')]({},_0x2d0ec3,_0xb89b59[_0x263f('0x41')]);return db[_0x263f('0x2e')][_0x263f('0x4a')](_0x2d0ec3)[_0x263f('0x27')](handleEntityNotFound(_0x232b0b,null))[_0x263f('0x27')](respondWithResult(_0x232b0b,null))[_0x263f('0x4b')](handleError(_0x232b0b,null));};exports[_0x263f('0x4c')]=function(_0x1454d2,_0x3df211){return db[_0x263f('0x2e')][_0x263f('0x4c')](_0x1454d2['body'],{})[_0x263f('0x27')](respondWithResult(_0x3df211,0xc9))[_0x263f('0x4b')](handleError(_0x3df211,null));};exports[_0x263f('0x26')]=function(_0xec2f11,_0x4d93a9){if(_0xec2f11[_0x263f('0x4d')]['id']){delete _0xec2f11[_0x263f('0x4d')]['id'];}return db[_0x263f('0x2e')][_0x263f('0x4a')]({'where':{'id':_0xec2f11[_0x263f('0x45')]['id']}})[_0x263f('0x27')](handleEntityNotFound(_0x4d93a9,null))['then'](saveUpdates(_0xec2f11['body'],null))[_0x263f('0x27')](respondWithResult(_0x4d93a9,null))[_0x263f('0x4b')](handleError(_0x4d93a9,null));};exports[_0x263f('0x4e')]=function(_0x496892,_0x41b79c){return db['ChatQueueReport'][_0x263f('0x4a')]({'where':{'id':_0x496892[_0x263f('0x45')]['id']}})[_0x263f('0x27')](handleEntityNotFound(_0x41b79c,null))[_0x263f('0x27')](removeEntity(_0x41b79c,null))['catch'](handleError(_0x41b79c,null));};exports[_0x263f('0x4f')]=function(_0x32e070,_0x42271e){return db[_0x263f('0x2e')][_0x263f('0x4f')]()[_0x263f('0x27')](respondWithResult(_0x42271e,null))['catch'](handleError(_0x42271e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['define','ChatQueueReport','report_chat_queue','uniqueid','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./chatQueueReport.attributes','exports'];(function(_0x2403af,_0x4e4217){var _0x290e85=function(_0x7485a1){while(--_0x7485a1){_0x2403af['push'](_0x2403af['shift']());}};_0x290e85(++_0x4e4217);}(_0xbaf0,0x12a));var _0x0baf=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xbaf0[_0x465028];return _0xb783d4;};'use strict';var _=require('lodash');var util=require(_0x0baf('0x0'));var logger=require(_0x0baf('0x1'))(_0x0baf('0x2'));var moment=require(_0x0baf('0x3'));var BPromise=require(_0x0baf('0x4'));var rp=require(_0x0baf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var attributes=require(_0x0baf('0x8'));module[_0x0baf('0x9')]=function(_0xe4c3c4,_0x335e24){return _0xe4c3c4[_0x0baf('0xa')](_0x0baf('0xb'),attributes,{'tableName':_0x0baf('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x0baf('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x757a=['report_chat_queue','uniqueid','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./chatQueueReport.attributes','exports','define'];(function(_0x30e677,_0x256fe7){var _0x23d05e=function(_0x53e0e8){while(--_0x53e0e8){_0x30e677['push'](_0x30e677['shift']());}};_0x23d05e(++_0x256fe7);}(_0x757a,0xde));var _0xa757=function(_0x28b2e6,_0x35a4a5){_0x28b2e6=_0x28b2e6-0x0;var _0x554415=_0x757a[_0x28b2e6];return _0x554415;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var logger=require(_0xa757('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa757('0x2'));var fs=require('fs');var path=require(_0xa757('0x3'));var rimraf=require(_0xa757('0x4'));var config=require(_0xa757('0x5'));var attributes=require(_0xa757('0x6'));module[_0xa757('0x7')]=function(_0x5edca8,_0xae0e7c){return _0x5edca8[_0xa757('0x8')]('ChatQueueReport',attributes,{'tableName':_0xa757('0x9'),'paranoid':![],'indexes':[{'name':_0xa757('0xa'),'fields':[_0xa757('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x348d=['jayson/promise','client','then','info','request\x20sent','debug','stringify','error','code','message','ChatQueueReport,\x20%s,\x20%s','result','catch','CreateChatQueueReport','ChatQueueReport','create','body','raw','UpdateChatQueueReport','update','options','where','attributes','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x355ab9,_0x26cc34){var _0xccfc6c=function(_0x7a20f){while(--_0x7a20f){_0x355ab9['push'](_0x355ab9['shift']());}};_0xccfc6c(++_0x26cc34);}(_0x348d,0xd7));var _0xd348=function(_0x2aa0e7,_0x4e5145){_0x2aa0e7=_0x2aa0e7-0x0;var _0x1472c0=_0x348d[_0x2aa0e7];return _0x1472c0;};'use strict';var _=require('lodash');var util=require(_0xd348('0x0'));var moment=require(_0xd348('0x1'));var BPromise=require(_0xd348('0x2'));var rs=require(_0xd348('0x3'));var fs=require('fs');var Redis=require(_0xd348('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd348('0x5'));var logger=require(_0xd348('0x6'))(_0xd348('0x7'));var config=require(_0xd348('0x8'));var jayson=require(_0xd348('0x9'));var client=jayson[_0xd348('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x44e3e7,_0x4ddffe,_0x26f3ed){return new BPromise(function(_0x23dcf0,_0x632fd7){return client['request'](_0x44e3e7,_0x26f3ed)[_0xd348('0xb')](function(_0x47069c){logger[_0xd348('0xc')]('ChatQueueReport,\x20%s,\x20%s',_0x4ddffe,_0xd348('0xd'));logger[_0xd348('0xe')]('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x4ddffe,_0xd348('0xd'),JSON[_0xd348('0xf')](_0x47069c));if(_0x47069c[_0xd348('0x10')]){if(_0x47069c[_0xd348('0x10')][_0xd348('0x11')]===0x1f4){logger[_0xd348('0x10')]('ChatQueueReport,\x20%s,\x20%s',_0x4ddffe,_0x47069c[_0xd348('0x10')][_0xd348('0x12')]);return _0x632fd7(_0x47069c['error'][_0xd348('0x12')]);}logger['error'](_0xd348('0x13'),_0x4ddffe,_0x47069c['error'][_0xd348('0x12')]);return _0x23dcf0(_0x47069c[_0xd348('0x10')][_0xd348('0x12')]);}else{logger[_0xd348('0xc')](_0xd348('0x13'),_0x4ddffe,_0xd348('0xd'));_0x23dcf0(_0x47069c[_0xd348('0x14')]['message']);}})[_0xd348('0x15')](function(_0x506a50){logger[_0xd348('0x10')](_0xd348('0x13'),_0x4ddffe,_0x506a50);_0x632fd7(_0x506a50);});});}exports[_0xd348('0x16')]=function(_0x48b042){var _0x676a70=this;return new Promise(function(_0x2afcff,_0x3eb0de){return db[_0xd348('0x17')][_0xd348('0x18')](_0x48b042[_0xd348('0x19')],{'raw':_0x48b042['options']?_0x48b042['options'][_0xd348('0x1a')]===undefined?!![]:![]:!![]})[_0xd348('0xb')](function(_0x4d6763){logger['info'](_0xd348('0x16'),_0x48b042);logger[_0xd348('0xe')](_0xd348('0x16'),_0x48b042,JSON[_0xd348('0xf')](_0x4d6763));_0x2afcff(_0x4d6763);})[_0xd348('0x15')](function(_0x30281e){logger[_0xd348('0x10')](_0xd348('0x16'),_0x30281e[_0xd348('0x12')],_0x48b042);_0x3eb0de(_0x676a70[_0xd348('0x10')](0x1f4,_0x30281e[_0xd348('0x12')]));});});};exports[_0xd348('0x1b')]=function(_0x10cc65){var _0x177be4=this;return new Promise(function(_0x45847f,_0x4cd3aa){return db['ChatQueueReport'][_0xd348('0x1c')](_0x10cc65['body'],{'raw':_0x10cc65[_0xd348('0x1d')]?_0x10cc65[_0xd348('0x1d')][_0xd348('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x10cc65[_0xd348('0x1d')]?_0x10cc65['options'][_0xd348('0x1e')]||null:null,'attributes':_0x10cc65[_0xd348('0x1d')]?_0x10cc65[_0xd348('0x1d')][_0xd348('0x1f')]||null:null,'limit':_0x10cc65['options']?_0x10cc65[_0xd348('0x1d')]['limit']||null:null})[_0xd348('0xb')](function(_0x4c8850){logger[_0xd348('0xc')](_0xd348('0x1b'),_0x10cc65);logger['debug']('UpdateChatQueueReport',_0x10cc65,JSON[_0xd348('0xf')](_0x4c8850));_0x45847f(_0x4c8850);})[_0xd348('0x15')](function(_0x2ee67d){logger[_0xd348('0x10')](_0xd348('0x1b'),_0x2ee67d[_0xd348('0x12')],_0x10cc65);_0x4cd3aa(_0x177be4['error'](0x1f4,_0x2ee67d['message']));});});};
\ No newline at end of file
+var _0x31ae=['randomstring','ioredis','../../mysqldb','rpc','jayson/promise','client','http','request','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','ChatQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','ChatQueueReport','create','body','options','raw','debug','CreateChatQueueReport','stringify','UpdateChatQueueReport','attributes','limit','lodash','bluebird'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x31ae,0x1cf));var _0xe31a=function(_0x3f54e1,_0x2aac41){_0x3f54e1=_0x3f54e1-0x0;var _0x5a0d29=_0x31ae[_0x3f54e1];return _0x5a0d29;};'use strict';var _=require(_0xe31a('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xe31a('0x1'));var rs=require(_0xe31a('0x2'));var fs=require('fs');var Redis=require(_0xe31a('0x3'));var db=require(_0xe31a('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xe31a('0x5'));var config=require('../../config/environment');var jayson=require(_0xe31a('0x6'));var client=jayson[_0xe31a('0x7')][_0xe31a('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5b8a47,_0xa426ec,_0x1e28fd){return new BPromise(function(_0x4a9b0a,_0x5e20b2){return client[_0xe31a('0x9')](_0x5b8a47,_0x1e28fd)[_0xe31a('0xa')](function(_0x49f673){logger[_0xe31a('0xb')](_0xe31a('0xc'),_0xa426ec,_0xe31a('0xd'));logger['debug'](_0xe31a('0xe'),_0xa426ec,_0xe31a('0xd'),JSON['stringify'](_0x49f673));if(_0x49f673[_0xe31a('0xf')]){if(_0x49f673[_0xe31a('0xf')][_0xe31a('0x10')]===0x1f4){logger[_0xe31a('0xf')](_0xe31a('0xc'),_0xa426ec,_0x49f673[_0xe31a('0xf')][_0xe31a('0x11')]);return _0x5e20b2(_0x49f673[_0xe31a('0xf')][_0xe31a('0x11')]);}logger['error'](_0xe31a('0xc'),_0xa426ec,_0x49f673[_0xe31a('0xf')][_0xe31a('0x11')]);return _0x4a9b0a(_0x49f673['error'][_0xe31a('0x11')]);}else{logger[_0xe31a('0xb')](_0xe31a('0xc'),_0xa426ec,_0xe31a('0xd'));_0x4a9b0a(_0x49f673[_0xe31a('0x12')][_0xe31a('0x11')]);}})[_0xe31a('0x13')](function(_0x3f08da){logger['error'](_0xe31a('0xc'),_0xa426ec,_0x3f08da);_0x5e20b2(_0x3f08da);});});}exports['CreateChatQueueReport']=function(_0x13fc4c){var _0x131f9e=this;return new Promise(function(_0x48e4c8,_0x2bff2b){return db[_0xe31a('0x14')][_0xe31a('0x15')](_0x13fc4c[_0xe31a('0x16')],{'raw':_0x13fc4c[_0xe31a('0x17')]?_0x13fc4c['options'][_0xe31a('0x18')]===undefined?!![]:![]:!![]})[_0xe31a('0xa')](function(_0x444f26){logger[_0xe31a('0xb')]('CreateChatQueueReport',_0x13fc4c);logger[_0xe31a('0x19')](_0xe31a('0x1a'),_0x13fc4c,JSON[_0xe31a('0x1b')](_0x444f26));_0x48e4c8(_0x444f26);})[_0xe31a('0x13')](function(_0xe0d457){logger[_0xe31a('0xf')](_0xe31a('0x1a'),_0xe0d457['message'],_0x13fc4c);_0x2bff2b(_0x131f9e['error'](0x1f4,_0xe0d457[_0xe31a('0x11')]));});});};exports[_0xe31a('0x1c')]=function(_0x2f5abc){var _0x54e82a=this;return new Promise(function(_0x38d75c,_0x26e90d){return db['ChatQueueReport']['update'](_0x2f5abc[_0xe31a('0x16')],{'raw':_0x2f5abc[_0xe31a('0x17')]?_0x2f5abc['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2f5abc[_0xe31a('0x17')]?_0x2f5abc['options']['where']||null:null,'attributes':_0x2f5abc[_0xe31a('0x17')]?_0x2f5abc[_0xe31a('0x17')][_0xe31a('0x1d')]||null:null,'limit':_0x2f5abc['options']?_0x2f5abc[_0xe31a('0x17')][_0xe31a('0x1e')]||null:null})[_0xe31a('0xa')](function(_0x1f79fa){logger['info'](_0xe31a('0x1c'),_0x2f5abc);logger[_0xe31a('0x19')]('UpdateChatQueueReport',_0x2f5abc,JSON['stringify'](_0x1f79fa));_0x38d75c(_0x1f79fa);})[_0xe31a('0x13')](function(_0x373f07){logger[_0xe31a('0xf')](_0xe31a('0x1c'),_0x373f07[_0xe31a('0x11')],_0x2f5abc);_0x26e90d(_0x54e82a[_0xe31a('0xf')](0x1f4,_0x373f07['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc399=['../../components/interaction/service','./chatQueueReport.controller','index','get','/describe','isAuthenticated','describe','show','put','/:id','update','multer','util','path','connect-timeout','Router','fs-extra'];(function(_0x2f05e4,_0x334ff1){var _0x454805=function(_0x2fed2d){while(--_0x2fed2d){_0x2f05e4['push'](_0x2f05e4['shift']());}};_0x454805(++_0x334ff1);}(_0xc399,0xb5));var _0x9c39=function(_0x1837d0,_0x3de075){_0x1837d0=_0x1837d0-0x0;var _0xd564c8=_0xc399[_0x1837d0];return _0xd564c8;};'use strict';var multer=require(_0x9c39('0x0'));var util=require(_0x9c39('0x1'));var path=require(_0x9c39('0x2'));var timeout=require(_0x9c39('0x3'));var express=require('express');var router=express[_0x9c39('0x4')]();var fs_extra=require(_0x9c39('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x9c39('0x6'));var config=require('../../config/environment');var controller=require(_0x9c39('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x9c39('0x8')]);router[_0x9c39('0x9')](_0x9c39('0xa'),auth[_0x9c39('0xb')](),controller[_0x9c39('0xc')]);router['get']('/:id',auth[_0x9c39('0xb')](),controller[_0x9c39('0xd')]);router['post']('/',auth[_0x9c39('0xb')](),controller['create']);router[_0x9c39('0xe')](_0x9c39('0xf'),auth[_0x9c39('0xb')](),controller[_0x9c39('0x10')]);router['delete'](_0x9c39('0xf'),auth[_0x9c39('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x8ec2=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatQueueReport.controller','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','path'];(function(_0x4db541,_0x551774){var _0x3da416=function(_0x5df6a9){while(--_0x5df6a9){_0x4db541['push'](_0x4db541['shift']());}};_0x3da416(++_0x551774);}(_0x8ec2,0x1b6));var _0x28ec=function(_0x5199d1,_0x3069d9){_0x5199d1=_0x5199d1-0x0;var _0x5d93ea=_0x8ec2[_0x5199d1];return _0x5d93ea;};'use strict';var multer=require(_0x28ec('0x0'));var util=require('util');var path=require(_0x28ec('0x1'));var timeout=require(_0x28ec('0x2'));var express=require(_0x28ec('0x3'));var router=express[_0x28ec('0x4')]();var fs_extra=require(_0x28ec('0x5'));var auth=require(_0x28ec('0x6'));var interaction=require(_0x28ec('0x7'));var config=require(_0x28ec('0x8'));var controller=require(_0x28ec('0x9'));router['get']('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x28ec('0xa'),auth[_0x28ec('0xb')](),controller[_0x28ec('0xc')]);router['get'](_0x28ec('0xd'),auth[_0x28ec('0xb')](),controller[_0x28ec('0xe')]);router[_0x28ec('0xf')]('/',auth[_0x28ec('0xb')](),controller[_0x28ec('0x10')]);router[_0x28ec('0x11')](_0x28ec('0xd'),auth[_0x28ec('0xb')](),controller[_0x28ec('0x12')]);router[_0x28ec('0x13')]('/:id',auth['isAuthenticated'](),controller[_0x28ec('0x14')]);module[_0x28ec('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['queue','DATE','NOW','moment','sequelize','exports','STRING','account','agent'];(function(_0x4d7c86,_0x9b62a6){var _0x59443d=function(_0x5af971){while(--_0x5af971){_0x4d7c86['push'](_0x4d7c86['shift']());}};_0x59443d(++_0x9b62a6);}(_0x34e8,0x12c));var _0x834e=function(_0x5d2621,_0x3ae025){_0x5d2621=_0x5d2621-0x0;var _0x24dc5c=_0x34e8[_0x5d2621];return _0x24dc5c;};'use strict';var moment=require(_0x834e('0x0'));var Sequelize=require(_0x834e('0x1'));module[_0x834e('0x2')]={'uniqueid':{'type':Sequelize[_0x834e('0x3')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x834e('0x4'),_0x834e('0x5'),_0x834e('0x6')),'allowNull':![],'defaultValue':_0x834e('0x6')},'transferredAt':{'type':Sequelize[_0x834e('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x834e('0x8')]}};
\ No newline at end of file
+var _0x9bde=['NOW','sequelize','STRING','account','agent','queue','DATE'];(function(_0x5c72ee,_0x5a8bf8){var _0x231876=function(_0x955276){while(--_0x955276){_0x5c72ee['push'](_0x5c72ee['shift']());}};_0x231876(++_0x5a8bf8);}(_0x9bde,0xe1));var _0xe9bd=function(_0x350aa3,_0x168d3d){_0x350aa3=_0x350aa3-0x0;var _0x301fb8=_0x9bde[_0x350aa3];return _0x301fb8;};'use strict';var moment=require('moment');var Sequelize=require(_0xe9bd('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0xe9bd('0x1')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xe9bd('0x2'),_0xe9bd('0x3'),_0xe9bd('0x4')),'allowNull':![],'defaultValue':_0xe9bd('0x4')},'transferredAt':{'type':Sequelize[_0xe9bd('0x5')],'allowNull':![],'defaultValue':Sequelize[_0xe9bd('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ae8=['sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','apply','update','then','destroy','error','name','send','index','ChatTransferReport','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path'];(function(_0x354ff0,_0x305207){var _0x540722=function(_0x2982e9){while(--_0x2982e9){_0x354ff0['push'](_0x354ff0['shift']());}};_0x540722(++_0x305207);}(_0x1ae8,0x94));var _0x81ae=function(_0x32db89,_0x38e63e){_0x32db89=_0x32db89-0x0;var _0x786fe8=_0x1ae8[_0x32db89];return _0x786fe8;};'use strict';var emlformat=require(_0x81ae('0x0'));var rimraf=require(_0x81ae('0x1'));var zipdir=require(_0x81ae('0x2'));var jsonpatch=require(_0x81ae('0x3'));var rp=require(_0x81ae('0x4'));var moment=require(_0x81ae('0x5'));var BPromise=require(_0x81ae('0x6'));var Mustache=require(_0x81ae('0x7'));var util=require(_0x81ae('0x8'));var path=require(_0x81ae('0x9'));var sox=require(_0x81ae('0xa'));var csv=require(_0x81ae('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x81ae('0xc'));var _=require(_0x81ae('0xd'));var squel=require(_0x81ae('0xe'));var crypto=require(_0x81ae('0xf'));var jsforce=require(_0x81ae('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x81ae('0xb'));var querystring=require(_0x81ae('0x11'));var Papa=require(_0x81ae('0x12'));var Redis=require(_0x81ae('0x13'));var authService=require(_0x81ae('0x14'));var qs=require(_0x81ae('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x81ae('0x16'));var logger=require(_0x81ae('0x17'))(_0x81ae('0x18'));var utils=require(_0x81ae('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x81ae('0x1a'));var db=require(_0x81ae('0x1b'))['db'];function respondWithStatusCode(_0x40c755,_0x51ce1b){_0x51ce1b=_0x51ce1b||0xcc;return function(_0x23bd35){if(_0x23bd35){return _0x40c755[_0x81ae('0x1c')](_0x51ce1b);}return _0x40c755[_0x81ae('0x1d')](_0x51ce1b)[_0x81ae('0x1e')]();};}function respondWithResult(_0x4a5a75,_0x2fa334){_0x2fa334=_0x2fa334||0xc8;return function(_0x517cbf){if(_0x517cbf){return _0x4a5a75[_0x81ae('0x1d')](_0x2fa334)['json'](_0x517cbf);}};}function respondWithFilteredResult(_0x490e08,_0x6e523d){return function(_0x1b99ae){if(_0x1b99ae){var _0x51c02a=typeof _0x6e523d[_0x81ae('0x1f')]===_0x81ae('0x20')&&typeof _0x6e523d[_0x81ae('0x21')]===_0x81ae('0x20');var _0x4b8cc2=_0x1b99ae[_0x81ae('0x22')];var _0x23e065=_0x51c02a?0x0:_0x6e523d[_0x81ae('0x1f')];var _0x564a32=_0x51c02a?_0x1b99ae[_0x81ae('0x22')]:_0x6e523d[_0x81ae('0x1f')]+_0x6e523d[_0x81ae('0x21')];var _0x2deca3;if(_0x564a32>=_0x4b8cc2){_0x564a32=_0x4b8cc2;_0x2deca3=0xc8;}else{_0x2deca3=0xce;}_0x490e08['status'](_0x2deca3);return _0x490e08[_0x81ae('0x23')]('Content-Range',_0x23e065+'-'+_0x564a32+'/'+_0x4b8cc2)['json'](_0x1b99ae);}return null;};}function patchUpdates(_0x4323c6){return function(_0xe150ee){try{jsonpatch[_0x81ae('0x24')](_0xe150ee,_0x4323c6,!![]);}catch(_0x1412d0){return BPromise['reject'](_0x1412d0);}return _0xe150ee['save']();};}function saveUpdates(_0x57f6b3,_0x1c1982){return function(_0x68710c){if(_0x68710c){return _0x68710c[_0x81ae('0x25')](_0x57f6b3)[_0x81ae('0x26')](function(_0x379904){return _0x379904;});}return null;};}function removeEntity(_0x135686,_0x2a4e6a){return function(_0x5f437c){if(_0x5f437c){return _0x5f437c[_0x81ae('0x27')]()[_0x81ae('0x26')](function(){_0x135686['status'](0xcc)[_0x81ae('0x1e')]();});}};}function handleEntityNotFound(_0x7eb615,_0x347cec){return function(_0x2e36d1){if(!_0x2e36d1){_0x7eb615['sendStatus'](0x194);}return _0x2e36d1;};}function handleError(_0x1a8933,_0x30c4dd){_0x30c4dd=_0x30c4dd||0x1f4;return function(_0x22e499){logger[_0x81ae('0x28')](_0x22e499['stack']);if(_0x22e499[_0x81ae('0x29')]){delete _0x22e499['name'];}_0x1a8933['status'](_0x30c4dd)[_0x81ae('0x2a')](_0x22e499);};}exports[_0x81ae('0x2b')]=function(_0x71eae6,_0x28c8d8){var _0x534a8a={},_0xd80dbf={},_0x303c48={'count':0x0,'rows':[]};var _0xb66a9e=_['map'](db[_0x81ae('0x2c')]['rawAttributes'],function(_0x3fca4d){return{'name':_0x3fca4d[_0x81ae('0x2d')],'type':_0x3fca4d['type'][_0x81ae('0x2e')]};});_0xd80dbf[_0x81ae('0x2f')]=_[_0x81ae('0x30')](_0xb66a9e,_0x81ae('0x29'));_0xd80dbf[_0x81ae('0x31')]=_[_0x81ae('0x32')](_0x71eae6[_0x81ae('0x31')]);_0xd80dbf[_0x81ae('0x33')]=_[_0x81ae('0x34')](_0xd80dbf[_0x81ae('0x2f')],_0xd80dbf[_0x81ae('0x31')]);_0x534a8a[_0x81ae('0x35')]=_['intersection'](_0xd80dbf[_0x81ae('0x2f')],qs[_0x81ae('0x36')](_0x71eae6[_0x81ae('0x31')][_0x81ae('0x36')]));_0x534a8a[_0x81ae('0x35')]=_0x534a8a[_0x81ae('0x35')][_0x81ae('0x37')]?_0x534a8a[_0x81ae('0x35')]:_0xd80dbf[_0x81ae('0x2f')];if(!_0x71eae6['query'][_0x81ae('0x38')](_0x81ae('0x39'))){_0x534a8a[_0x81ae('0x21')]=qs['limit'](_0x71eae6[_0x81ae('0x31')]['limit']);_0x534a8a['offset']=qs[_0x81ae('0x1f')](_0x71eae6[_0x81ae('0x31')][_0x81ae('0x1f')]);}_0x534a8a[_0x81ae('0x3a')]=qs[_0x81ae('0x3b')](_0x71eae6['query'][_0x81ae('0x3b')]);_0x534a8a[_0x81ae('0x3c')]=qs[_0x81ae('0x33')](_[_0x81ae('0x3d')](_0x71eae6[_0x81ae('0x31')],_0xd80dbf[_0x81ae('0x33')]),_0xb66a9e);if(_0x71eae6[_0x81ae('0x31')][_0x81ae('0x3e')]){_0x534a8a['where']=_['merge'](_0x534a8a[_0x81ae('0x3c')],{'$or':_[_0x81ae('0x30')](_0xb66a9e,function(_0xc8eca4){if(_0xc8eca4[_0x81ae('0x3f')]!==_0x81ae('0x40')){var _0x5e2d50={};_0x5e2d50[_0xc8eca4[_0x81ae('0x29')]]={'$like':'%'+_0x71eae6[_0x81ae('0x31')][_0x81ae('0x3e')]+'%'};return _0x5e2d50;}})});}_0x534a8a=_[_0x81ae('0x41')]({},_0x534a8a,_0x71eae6[_0x81ae('0x42')]);var _0x5d5785={'where':_0x534a8a[_0x81ae('0x3c')]};return db[_0x81ae('0x2c')][_0x81ae('0x22')](_0x5d5785)['then'](function(_0x5147e1){_0x303c48[_0x81ae('0x22')]=_0x5147e1;if(_0x71eae6[_0x81ae('0x31')]['includeAll']){_0x534a8a[_0x81ae('0x43')]=[{'all':!![]}];}return db[_0x81ae('0x2c')][_0x81ae('0x44')](_0x534a8a);})['then'](function(_0x580f09){_0x303c48[_0x81ae('0x45')]=_0x580f09;return _0x303c48;})[_0x81ae('0x26')](respondWithFilteredResult(_0x28c8d8,_0x534a8a))[_0x81ae('0x46')](handleError(_0x28c8d8,null));};exports[_0x81ae('0x47')]=function(_0x3bfb94,_0x5d9504){var _0x1b237f={'raw':!![],'where':{'id':_0x3bfb94[_0x81ae('0x48')]['id']}},_0x112652={};_0x112652[_0x81ae('0x2f')]=_[_0x81ae('0x32')](db[_0x81ae('0x2c')][_0x81ae('0x49')]);_0x112652[_0x81ae('0x31')]=_[_0x81ae('0x32')](_0x3bfb94[_0x81ae('0x31')]);_0x112652[_0x81ae('0x33')]=_[_0x81ae('0x34')](_0x112652[_0x81ae('0x2f')],_0x112652[_0x81ae('0x31')]);_0x1b237f[_0x81ae('0x35')]=_['intersection'](_0x112652[_0x81ae('0x2f')],qs[_0x81ae('0x36')](_0x3bfb94[_0x81ae('0x31')]['fields']));_0x1b237f[_0x81ae('0x35')]=_0x1b237f[_0x81ae('0x35')][_0x81ae('0x37')]?_0x1b237f['attributes']:_0x112652[_0x81ae('0x2f')];if(_0x3bfb94[_0x81ae('0x31')][_0x81ae('0x4a')]){_0x1b237f[_0x81ae('0x43')]=[{'all':!![]}];}_0x1b237f=_[_0x81ae('0x41')]({},_0x1b237f,_0x3bfb94[_0x81ae('0x42')]);return db['ChatTransferReport'][_0x81ae('0x4b')](_0x1b237f)['then'](handleEntityNotFound(_0x5d9504,null))[_0x81ae('0x26')](respondWithResult(_0x5d9504,null))['catch'](handleError(_0x5d9504,null));};exports[_0x81ae('0x4c')]=function(_0x296753,_0x599d56){return db[_0x81ae('0x2c')][_0x81ae('0x4c')](_0x296753[_0x81ae('0x4d')],{})[_0x81ae('0x26')](respondWithResult(_0x599d56,0xc9))[_0x81ae('0x46')](handleError(_0x599d56,null));};exports['update']=function(_0x24bb44,_0x2502fe){if(_0x24bb44[_0x81ae('0x4d')]['id']){delete _0x24bb44['body']['id'];}return db[_0x81ae('0x2c')][_0x81ae('0x4b')]({'where':{'id':_0x24bb44[_0x81ae('0x48')]['id']}})[_0x81ae('0x26')](handleEntityNotFound(_0x2502fe,null))['then'](saveUpdates(_0x24bb44[_0x81ae('0x4d')],null))[_0x81ae('0x26')](respondWithResult(_0x2502fe,null))['catch'](handleError(_0x2502fe,null));};exports['destroy']=function(_0x542d6a,_0x9b6c59){return db[_0x81ae('0x2c')][_0x81ae('0x4b')]({'where':{'id':_0x542d6a[_0x81ae('0x48')]['id']}})['then'](handleEntityNotFound(_0x9b6c59,null))[_0x81ae('0x26')](removeEntity(_0x9b6c59,null))[_0x81ae('0x46')](handleError(_0x9b6c59,null));};exports[_0x81ae('0x4e')]=function(_0xdcdb8d,_0x113808){return db[_0x81ae('0x2c')][_0x81ae('0x4e')]()[_0x81ae('0x26')](respondWithResult(_0x113808,null))[_0x81ae('0x46')](handleError(_0x113808,null));};
\ No newline at end of file
+var _0xbc4a=['update','find','describe','eml-format','rimraf','fast-json-patch','moment','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','count','limit','apply','reject','then','destroy','sendStatus','send','map','ChatTransferReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','name','merge','options','includeAll','include','findAll','rows','show','params','rawAttributes','catch','create','body'];(function(_0x56ca34,_0xb998c7){var _0x57c8e2=function(_0x41710e){while(--_0x41710e){_0x56ca34['push'](_0x56ca34['shift']());}};_0x57c8e2(++_0xb998c7);}(_0xbc4a,0x123));var _0xabc4=function(_0x4b8cba,_0x2783a4){_0x4b8cba=_0x4b8cba-0x0;var _0x58647e=_0xbc4a[_0x4b8cba];return _0x58647e;};'use strict';var emlformat=require(_0xabc4('0x0'));var rimraf=require(_0xabc4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xabc4('0x2'));var rp=require('request-promise');var moment=require(_0xabc4('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xabc4('0x4'));var util=require(_0xabc4('0x5'));var path=require(_0xabc4('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xabc4('0x7'));var fs=require('fs');var fs_extra=require(_0xabc4('0x8'));var _=require('lodash');var squel=require(_0xabc4('0x9'));var crypto=require(_0xabc4('0xa'));var jsforce=require(_0xabc4('0xb'));var deskjs=require(_0xabc4('0xc'));var toCsv=require(_0xabc4('0xd'));var querystring=require(_0xabc4('0xe'));var Papa=require(_0xabc4('0xf'));var Redis=require('ioredis');var authService=require(_0xabc4('0x10'));var qs=require(_0xabc4('0x11'));var as=require(_0xabc4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xabc4('0x13'))(_0xabc4('0x14'));var utils=require(_0xabc4('0x15'));var config=require(_0xabc4('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xabc4('0x17'))['db'];function respondWithStatusCode(_0x4c9a5c,_0x4fc992){_0x4fc992=_0x4fc992||0xcc;return function(_0x54dffa){if(_0x54dffa){return _0x4c9a5c['sendStatus'](_0x4fc992);}return _0x4c9a5c[_0xabc4('0x18')](_0x4fc992)[_0xabc4('0x19')]();};}function respondWithResult(_0x56663c,_0x5d64c6){_0x5d64c6=_0x5d64c6||0xc8;return function(_0x37efe7){if(_0x37efe7){return _0x56663c[_0xabc4('0x18')](_0x5d64c6)[_0xabc4('0x1a')](_0x37efe7);}};}function respondWithFilteredResult(_0x1f14ee,_0x3fbd71){return function(_0x4df627){if(_0x4df627){var _0x197971=typeof _0x3fbd71[_0xabc4('0x1b')]==='undefined'&&typeof _0x3fbd71['limit']==='undefined';var _0x20e2fe=_0x4df627['count'];var _0x54e290=_0x197971?0x0:_0x3fbd71[_0xabc4('0x1b')];var _0x466405=_0x197971?_0x4df627[_0xabc4('0x1c')]:_0x3fbd71[_0xabc4('0x1b')]+_0x3fbd71[_0xabc4('0x1d')];var _0x266d60;if(_0x466405>=_0x20e2fe){_0x466405=_0x20e2fe;_0x266d60=0xc8;}else{_0x266d60=0xce;}_0x1f14ee[_0xabc4('0x18')](_0x266d60);return _0x1f14ee['set']('Content-Range',_0x54e290+'-'+_0x466405+'/'+_0x20e2fe)[_0xabc4('0x1a')](_0x4df627);}return null;};}function patchUpdates(_0x875e1b){return function(_0xc61ed4){try{jsonpatch[_0xabc4('0x1e')](_0xc61ed4,_0x875e1b,!![]);}catch(_0x3b298d){return BPromise[_0xabc4('0x1f')](_0x3b298d);}return _0xc61ed4['save']();};}function saveUpdates(_0x344a2d,_0x5b2420){return function(_0x7e4778){if(_0x7e4778){return _0x7e4778['update'](_0x344a2d)[_0xabc4('0x20')](function(_0x45b488){return _0x45b488;});}return null;};}function removeEntity(_0x946c29,_0x438f01){return function(_0x733245){if(_0x733245){return _0x733245[_0xabc4('0x21')]()[_0xabc4('0x20')](function(){_0x946c29[_0xabc4('0x18')](0xcc)[_0xabc4('0x19')]();});}};}function handleEntityNotFound(_0x302c85,_0x2d61ac){return function(_0x1f6eeb){if(!_0x1f6eeb){_0x302c85[_0xabc4('0x22')](0x194);}return _0x1f6eeb;};}function handleError(_0x4b3a6d,_0x6aa637){_0x6aa637=_0x6aa637||0x1f4;return function(_0x15a884){logger['error'](_0x15a884['stack']);if(_0x15a884['name']){delete _0x15a884['name'];}_0x4b3a6d[_0xabc4('0x18')](_0x6aa637)[_0xabc4('0x23')](_0x15a884);};}exports['index']=function(_0x53ebca,_0x17150b){var _0x26079f={},_0x35ca73={},_0x4c386c={'count':0x0,'rows':[]};var _0x2fe1f6=_[_0xabc4('0x24')](db[_0xabc4('0x25')]['rawAttributes'],function(_0x4e63c8){return{'name':_0x4e63c8[_0xabc4('0x26')],'type':_0x4e63c8[_0xabc4('0x27')][_0xabc4('0x28')]};});_0x35ca73[_0xabc4('0x29')]=_[_0xabc4('0x24')](_0x2fe1f6,'name');_0x35ca73[_0xabc4('0x2a')]=_[_0xabc4('0x2b')](_0x53ebca[_0xabc4('0x2a')]);_0x35ca73[_0xabc4('0x2c')]=_[_0xabc4('0x2d')](_0x35ca73[_0xabc4('0x29')],_0x35ca73[_0xabc4('0x2a')]);_0x26079f['attributes']=_['intersection'](_0x35ca73['model'],qs['fields'](_0x53ebca[_0xabc4('0x2a')][_0xabc4('0x2e')]));_0x26079f[_0xabc4('0x2f')]=_0x26079f['attributes'][_0xabc4('0x30')]?_0x26079f[_0xabc4('0x2f')]:_0x35ca73[_0xabc4('0x29')];if(!_0x53ebca[_0xabc4('0x2a')][_0xabc4('0x31')](_0xabc4('0x32'))){_0x26079f[_0xabc4('0x1d')]=qs['limit'](_0x53ebca[_0xabc4('0x2a')]['limit']);_0x26079f[_0xabc4('0x1b')]=qs[_0xabc4('0x1b')](_0x53ebca[_0xabc4('0x2a')]['offset']);}_0x26079f['order']=qs[_0xabc4('0x33')](_0x53ebca[_0xabc4('0x2a')]['sort']);_0x26079f[_0xabc4('0x34')]=qs[_0xabc4('0x2c')](_[_0xabc4('0x35')](_0x53ebca[_0xabc4('0x2a')],_0x35ca73[_0xabc4('0x2c')]),_0x2fe1f6);if(_0x53ebca[_0xabc4('0x2a')][_0xabc4('0x36')]){_0x26079f[_0xabc4('0x34')]=_['merge'](_0x26079f[_0xabc4('0x34')],{'$or':_[_0xabc4('0x24')](_0x2fe1f6,function(_0x231135){if(_0x231135[_0xabc4('0x27')]!==_0xabc4('0x37')){var _0x17cb59={};_0x17cb59[_0x231135[_0xabc4('0x38')]]={'$like':'%'+_0x53ebca['query'][_0xabc4('0x36')]+'%'};return _0x17cb59;}})});}_0x26079f=_[_0xabc4('0x39')]({},_0x26079f,_0x53ebca[_0xabc4('0x3a')]);var _0x19cf05={'where':_0x26079f[_0xabc4('0x34')]};return db[_0xabc4('0x25')]['count'](_0x19cf05)[_0xabc4('0x20')](function(_0x500f72){_0x4c386c[_0xabc4('0x1c')]=_0x500f72;if(_0x53ebca[_0xabc4('0x2a')][_0xabc4('0x3b')]){_0x26079f[_0xabc4('0x3c')]=[{'all':!![]}];}return db[_0xabc4('0x25')][_0xabc4('0x3d')](_0x26079f);})[_0xabc4('0x20')](function(_0x473dd9){_0x4c386c[_0xabc4('0x3e')]=_0x473dd9;return _0x4c386c;})[_0xabc4('0x20')](respondWithFilteredResult(_0x17150b,_0x26079f))['catch'](handleError(_0x17150b,null));};exports[_0xabc4('0x3f')]=function(_0x2d0590,_0x1932bc){var _0xca3aa0={'raw':!![],'where':{'id':_0x2d0590[_0xabc4('0x40')]['id']}},_0x1d9b44={};_0x1d9b44[_0xabc4('0x29')]=_[_0xabc4('0x2b')](db['ChatTransferReport'][_0xabc4('0x41')]);_0x1d9b44['query']=_[_0xabc4('0x2b')](_0x2d0590['query']);_0x1d9b44[_0xabc4('0x2c')]=_[_0xabc4('0x2d')](_0x1d9b44[_0xabc4('0x29')],_0x1d9b44[_0xabc4('0x2a')]);_0xca3aa0[_0xabc4('0x2f')]=_['intersection'](_0x1d9b44[_0xabc4('0x29')],qs[_0xabc4('0x2e')](_0x2d0590[_0xabc4('0x2a')][_0xabc4('0x2e')]));_0xca3aa0[_0xabc4('0x2f')]=_0xca3aa0[_0xabc4('0x2f')]['length']?_0xca3aa0[_0xabc4('0x2f')]:_0x1d9b44[_0xabc4('0x29')];if(_0x2d0590['query']['includeAll']){_0xca3aa0[_0xabc4('0x3c')]=[{'all':!![]}];}_0xca3aa0=_[_0xabc4('0x39')]({},_0xca3aa0,_0x2d0590[_0xabc4('0x3a')]);return db[_0xabc4('0x25')]['find'](_0xca3aa0)[_0xabc4('0x20')](handleEntityNotFound(_0x1932bc,null))['then'](respondWithResult(_0x1932bc,null))[_0xabc4('0x42')](handleError(_0x1932bc,null));};exports['create']=function(_0x5365c8,_0x4f101e){return db[_0xabc4('0x25')][_0xabc4('0x43')](_0x5365c8[_0xabc4('0x44')],{})[_0xabc4('0x20')](respondWithResult(_0x4f101e,0xc9))[_0xabc4('0x42')](handleError(_0x4f101e,null));};exports[_0xabc4('0x45')]=function(_0x4896ff,_0x448109){if(_0x4896ff['body']['id']){delete _0x4896ff[_0xabc4('0x44')]['id'];}return db[_0xabc4('0x25')][_0xabc4('0x46')]({'where':{'id':_0x4896ff[_0xabc4('0x40')]['id']}})[_0xabc4('0x20')](handleEntityNotFound(_0x448109,null))['then'](saveUpdates(_0x4896ff[_0xabc4('0x44')],null))[_0xabc4('0x20')](respondWithResult(_0x448109,null))[_0xabc4('0x42')](handleError(_0x448109,null));};exports[_0xabc4('0x21')]=function(_0xb35591,_0x3cb15){return db['ChatTransferReport'][_0xabc4('0x46')]({'where':{'id':_0xb35591[_0xabc4('0x40')]['id']}})[_0xabc4('0x20')](handleEntityNotFound(_0x3cb15,null))['then'](removeEntity(_0x3cb15,null))['catch'](handleError(_0x3cb15,null));};exports[_0xabc4('0x47')]=function(_0x3af2bd,_0x44813a){return db[_0xabc4('0x25')][_0xabc4('0x47')]()[_0xabc4('0x20')](respondWithResult(_0x44813a,null))[_0xabc4('0x42')](handleError(_0x44813a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63dd=['lodash','util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./chatTransferReport.attributes','define','ChatTransferReport','report_chat_transfer','uniqueid'];(function(_0x49677a,_0x197e86){var _0x115408=function(_0xc88918){while(--_0xc88918){_0x49677a['push'](_0x49677a['shift']());}};_0x115408(++_0x197e86);}(_0x63dd,0x15f));var _0xd63d=function(_0x5c9cdb,_0x508819){_0x5c9cdb=_0x5c9cdb-0x0;var _0x3a76b8=_0x63dd[_0x5c9cdb];return _0x3a76b8;};'use strict';var _=require(_0xd63d('0x0'));var util=require(_0xd63d('0x1'));var logger=require(_0xd63d('0x2'))(_0xd63d('0x3'));var moment=require('moment');var BPromise=require(_0xd63d('0x4'));var rp=require(_0xd63d('0x5'));var fs=require('fs');var path=require(_0xd63d('0x6'));var rimraf=require('rimraf');var config=require(_0xd63d('0x7'));var attributes=require(_0xd63d('0x8'));module['exports']=function(_0x3567bf,_0x2408e4){return _0x3567bf[_0xd63d('0x9')](_0xd63d('0xa'),attributes,{'tableName':_0xd63d('0xb'),'paranoid':![],'indexes':[{'name':_0xd63d('0xc'),'fields':[_0xd63d('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8bbd=['../../config/environment','./chatTransferReport.attributes','exports','define','ChatTransferReport','uniqueid','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x4b20ca,_0x22e9eb){var _0x218273=function(_0x13ac67){while(--_0x13ac67){_0x4b20ca['push'](_0x4b20ca['shift']());}};_0x218273(++_0x22e9eb);}(_0x8bbd,0x102));var _0xd8bb=function(_0x20111f,_0xdb8e6c){_0x20111f=_0x20111f-0x0;var _0x809fc6=_0x8bbd[_0x20111f];return _0x809fc6;};'use strict';var _=require('lodash');var util=require(_0xd8bb('0x0'));var logger=require(_0xd8bb('0x1'))(_0xd8bb('0x2'));var moment=require(_0xd8bb('0x3'));var BPromise=require(_0xd8bb('0x4'));var rp=require(_0xd8bb('0x5'));var fs=require('fs');var path=require(_0xd8bb('0x6'));var rimraf=require(_0xd8bb('0x7'));var config=require(_0xd8bb('0x8'));var attributes=require(_0xd8bb('0x9'));module[_0xd8bb('0xa')]=function(_0x256b1f,_0x4b5868){return _0x256b1f[_0xd8bb('0xb')](_0xd8bb('0xc'),attributes,{'tableName':'report_chat_transfer','paranoid':![],'indexes':[{'name':_0xd8bb('0xd'),'fields':[_0xd8bb('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96f1=['lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','request','then','info','ChatTransferReport,\x20%s,\x20%s','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch'];(function(_0x5d1bd8,_0x492c1f){var _0x5e84fe=function(_0x4b8324){while(--_0x4b8324){_0x5d1bd8['push'](_0x5d1bd8['shift']());}};_0x5e84fe(++_0x492c1f);}(_0x96f1,0xb4));var _0x196f=function(_0x37051e,_0x9577d1){_0x37051e=_0x37051e-0x0;var _0x15907f=_0x96f1[_0x37051e];return _0x15907f;};'use strict';var _=require(_0x196f('0x0'));var util=require('util');var moment=require(_0x196f('0x1'));var BPromise=require(_0x196f('0x2'));var rs=require(_0x196f('0x3'));var fs=require('fs');var Redis=require(_0x196f('0x4'));var db=require(_0x196f('0x5'))['db'];var utils=require(_0x196f('0x6'));var logger=require(_0x196f('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x196f('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x33bd07,_0x3b403f,_0x81f7b5){return new BPromise(function(_0x420cdd,_0x248741){return client[_0x196f('0x9')](_0x33bd07,_0x81f7b5)[_0x196f('0xa')](function(_0x2b5e6a){logger[_0x196f('0xb')](_0x196f('0xc'),_0x3b403f,'request\x20sent');logger[_0x196f('0xd')](_0x196f('0xe'),_0x3b403f,_0x196f('0xf'),JSON[_0x196f('0x10')](_0x2b5e6a));if(_0x2b5e6a[_0x196f('0x11')]){if(_0x2b5e6a[_0x196f('0x11')]['code']===0x1f4){logger[_0x196f('0x11')](_0x196f('0xc'),_0x3b403f,_0x2b5e6a[_0x196f('0x11')]['message']);return _0x248741(_0x2b5e6a[_0x196f('0x11')][_0x196f('0x12')]);}logger[_0x196f('0x11')](_0x196f('0xc'),_0x3b403f,_0x2b5e6a[_0x196f('0x11')][_0x196f('0x12')]);return _0x420cdd(_0x2b5e6a['error'][_0x196f('0x12')]);}else{logger[_0x196f('0xb')](_0x196f('0xc'),_0x3b403f,'request\x20sent');_0x420cdd(_0x2b5e6a['result'][_0x196f('0x12')]);}})[_0x196f('0x13')](function(_0x1419e8){logger['error']('ChatTransferReport,\x20%s,\x20%s',_0x3b403f,_0x1419e8);_0x248741(_0x1419e8);});});}
\ No newline at end of file
+var _0x0b5e=['../../config/utils','../../config/logger','rpc','../../config/environment','client','http','info','ChatTransferReport,\x20%s,\x20%s','debug','ChatTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0x0b5e,0x1f4));var _0xe0b5=function(_0x38d136,_0xc954da){_0x38d136=_0x38d136-0x0;var _0x3c2d04=_0x0b5e[_0x38d136];return _0x3c2d04;};'use strict';var _=require(_0xe0b5('0x0'));var util=require(_0xe0b5('0x1'));var moment=require(_0xe0b5('0x2'));var BPromise=require(_0xe0b5('0x3'));var rs=require(_0xe0b5('0x4'));var fs=require('fs');var Redis=require(_0xe0b5('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xe0b5('0x6'));var logger=require(_0xe0b5('0x7'))(_0xe0b5('0x8'));var config=require(_0xe0b5('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xe0b5('0xa')][_0xe0b5('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x45683e,_0x3f8f8a,_0x297c77){return new BPromise(function(_0x3ab635,_0x2a0ddc){return client['request'](_0x45683e,_0x297c77)['then'](function(_0x1653ff){logger[_0xe0b5('0xc')](_0xe0b5('0xd'),_0x3f8f8a,'request\x20sent');logger[_0xe0b5('0xe')](_0xe0b5('0xf'),_0x3f8f8a,_0xe0b5('0x10'),JSON[_0xe0b5('0x11')](_0x1653ff));if(_0x1653ff[_0xe0b5('0x12')]){if(_0x1653ff[_0xe0b5('0x12')]['code']===0x1f4){logger['error'](_0xe0b5('0xd'),_0x3f8f8a,_0x1653ff[_0xe0b5('0x12')]['message']);return _0x2a0ddc(_0x1653ff[_0xe0b5('0x12')][_0xe0b5('0x13')]);}logger[_0xe0b5('0x12')](_0xe0b5('0xd'),_0x3f8f8a,_0x1653ff[_0xe0b5('0x12')][_0xe0b5('0x13')]);return _0x3ab635(_0x1653ff[_0xe0b5('0x12')][_0xe0b5('0x13')]);}else{logger[_0xe0b5('0xc')](_0xe0b5('0xd'),_0x3f8f8a,_0xe0b5('0x10'));_0x3ab635(_0x1653ff[_0xe0b5('0x14')]['message']);}})[_0xe0b5('0x15')](function(_0x42e806){logger[_0xe0b5('0x12')]('ChatTransferReport,\x20%s,\x20%s',_0x3f8f8a,_0x42e806);_0x2a0ddc(_0x42e806);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1234=['express','Router','fs-extra','../../components/interaction/service','./chatTransferReport.controller','get','isAuthenticated','/describe','describe','/:id','show','post','create','destroy','exports','multer','util','path','connect-timeout'];(function(_0x57d984,_0x1c8003){var _0x179f3c=function(_0x2d7e60){while(--_0x2d7e60){_0x57d984['push'](_0x57d984['shift']());}};_0x179f3c(++_0x1c8003);}(_0x1234,0x119));var _0x4123=function(_0x330900,_0x50df82){_0x330900=_0x330900-0x0;var _0x23377c=_0x1234[_0x330900];return _0x23377c;};'use strict';var multer=require(_0x4123('0x0'));var util=require(_0x4123('0x1'));var path=require(_0x4123('0x2'));var timeout=require(_0x4123('0x3'));var express=require(_0x4123('0x4'));var router=express[_0x4123('0x5')]();var fs_extra=require(_0x4123('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x4123('0x7'));var config=require('../../config/environment');var controller=require(_0x4123('0x8'));router[_0x4123('0x9')]('/',auth[_0x4123('0xa')](),controller['index']);router[_0x4123('0x9')](_0x4123('0xb'),auth['isAuthenticated'](),controller[_0x4123('0xc')]);router[_0x4123('0x9')](_0x4123('0xd'),auth[_0x4123('0xa')](),controller[_0x4123('0xe')]);router[_0x4123('0xf')]('/',auth['isAuthenticated'](),controller[_0x4123('0x10')]);router['put'](_0x4123('0xd'),auth[_0x4123('0xa')](),controller['update']);router['delete'](_0x4123('0xd'),auth[_0x4123('0xa')](),controller[_0x4123('0x11')]);module[_0x4123('0x12')]=router;
\ No newline at end of file
+var _0x890f=['put','delete','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','get','index','/describe','isAuthenticated','describe','/:id','show','create'];(function(_0x4ac1ca,_0x362770){var _0xb2ef65=function(_0x41cc6a){while(--_0x41cc6a){_0x4ac1ca['push'](_0x4ac1ca['shift']());}};_0xb2ef65(++_0x362770);}(_0x890f,0x1cc));var _0xf890=function(_0x49536b,_0x2abe5d){_0x49536b=_0x49536b-0x0;var _0x30de59=_0x890f[_0x49536b];return _0x30de59;};'use strict';var multer=require(_0xf890('0x0'));var util=require(_0xf890('0x1'));var path=require(_0xf890('0x2'));var timeout=require(_0xf890('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf890('0x4'));var auth=require(_0xf890('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xf890('0x6'));var controller=require('./chatTransferReport.controller');router[_0xf890('0x7')]('/',auth['isAuthenticated'](),controller[_0xf890('0x8')]);router[_0xf890('0x7')](_0xf890('0x9'),auth[_0xf890('0xa')](),controller[_0xf890('0xb')]);router[_0xf890('0x7')](_0xf890('0xc'),auth[_0xf890('0xa')](),controller[_0xf890('0xd')]);router['post']('/',auth[_0xf890('0xa')](),controller[_0xf890('0xe')]);router[_0xf890('0xf')]('/:id',auth[_0xf890('0xa')](),controller['update']);router[_0xf890('0x10')](_0xf890('0xc'),auth[_0xf890('0xa')](),controller[_0xf890('0x11')]);module[_0xf890('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb162=['#ffffff','INTEGER','BOOLEAN','ENUM','rounded','squared','We\x20are\x20here!','Chat','Send','Contact\x20us','Powered\x20by\x20xCALLY','Do\x20you\x20want\x20to\x20close\x20the\x20interaction?','Form\x20properly\x20submitted','Note','Type\x20a\x20message','Skip','star','TEXT','stringify','input','name','text','onlineForm','parse','getDataValue','setDataValue','textarea','Comments','Leave\x20your\x20comments','offlineForm','generate','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.','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','bottom_right','alternate','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','STRING','email','Agent','#011F6A'];(function(_0x3046d8,_0x19af5e){var _0x56ecb6=function(_0x4d50f9){while(--_0x4d50f9){_0x3046d8['push'](_0x3046d8['shift']());}};_0x56ecb6(++_0x19af5e);}(_0xb162,0xcb));var _0x2b16=function(_0x9ddd6d,_0x4972d1){_0x9ddd6d=_0x9ddd6d-0x0;var _0x4c0b09=_0xb162[_0x9ddd6d];return _0x4c0b09;};'use strict';var Sequelize=require(_0x2b16('0x0'));var rs=require('randomstring');module['exports']={'name':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![]},'address':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![],'unique':'address'},'description':{'type':Sequelize[_0x2b16('0x1')]},'mapKey':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0x2')},'mapKeyOffline':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0x2')},'key':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![]},'agentAlias':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0x3')},'customerAlias':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':'Me'},'color':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![],'defaultValue':_0x2b16('0x4'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![],'defaultValue':_0x2b16('0x4'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![],'defaultValue':_0x2b16('0x5'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0x2b16('0x6')],'defaultValue':0xf},'remote':{'type':Sequelize[_0x2b16('0x1')]},'animation':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0x2b16('0x8')](_0x2b16('0x9'),_0x2b16('0xa')),'defaultValue':_0x2b16('0x9')},'header_online':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0xb')},'start_chat_button':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0xc')},'offline_chat_button':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0xd')},'header_offline':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0xe')},'download_transcript':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0x2b16('0x6')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0xf')},'defaultWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'sitepic':{'type':Sequelize['TEXT']},'closingQuestion':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x10')},'formSubmitSuccessMessage':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x11')},'formSubmitFailureMessage':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':'Form\x20submission\x20error'},'noteTitle':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x12')},'placeholderMessage':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x13')},'closingMessage':{'type':Sequelize['STRING'],'defaultValue':'Thanks\x20you\x20for\x20your\x20time!'},'closingMessageButton':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0xd')},'skipMessageButton':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x14')},'conditionAgreement':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableRating':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize['STRING'],'defaultValue':'Feedback'},'ratingType':{'type':Sequelize[_0x2b16('0x8')](_0x2b16('0x15'),'thumb'),'defaultValue':_0x2b16('0x15')},'ratingStarsNumber':{'type':Sequelize[_0x2b16('0x6')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0x2b16('0x16')],'defaultValue':function(){return JSON[_0x2b16('0x17')]({'items':[{'type':_0x2b16('0x18'),'variable':null,'config':{'placeholder':_0x2b16('0x19'),'type':_0x2b16('0x1a'),'required':!![]},'props':{'title':_0x2b16('0x19'),'helpText':''}},{'type':'input','props':{'title':_0x2b16('0x2'),'helpText':''},'config':{'required':!![],'placeholder':_0x2b16('0x2'),'type':_0x2b16('0x2')},'variable':null}],'fromKey':0x1});},'get':function(){return this['getDataValue'](_0x2b16('0x1b'))?JSON[_0x2b16('0x1c')](this[_0x2b16('0x1d')](_0x2b16('0x1b'))):{};},'set':function(_0x32e720){return this[_0x2b16('0x1e')](_0x2b16('0x1b'),JSON[_0x2b16('0x17')](_0x32e720));}},'offlineForm':{'type':Sequelize[_0x2b16('0x16')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':'input','props':{'title':_0x2b16('0x2'),'helpText':''},'config':{'required':!![],'placeholder':_0x2b16('0x2'),'type':'email'},'variable':null},{'type':_0x2b16('0x1f'),'config':{'placeholder':_0x2b16('0x20')},'props':{'title':_0x2b16('0x20'),'helpText':_0x2b16('0x21')}}],'fromKey':0x0});},'get':function(){return this[_0x2b16('0x1d')]('offlineForm')?JSON[_0x2b16('0x1c')](this[_0x2b16('0x1d')](_0x2b16('0x22'))):{};},'set':function(_0x2ac3fe){return this['setDataValue'](_0x2b16('0x22'),JSON['stringify'](_0x2ac3fe));}},'token':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':function(){return rs[_0x2b16('0x23')]();}},'autoclose':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0x2b16('0x1')]},'forwardOffline':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0x2b16('0x1')]},'waitingTitle':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x24')},'waitingMessage':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x25')},'offlineMessageSubject':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0x26')},'offlineMessageBody':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x27')},'enableUnmanagedNote':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x28')},'skipUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0x14')},'sendUnmanaged':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':'Send'},'enableCustomerAttachment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0x2b16('0x16')]},'showAgentAvatar':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'timezone':{'type':Sequelize[_0x2b16('0x1')]},'notificationTemplate':{'type':Sequelize[_0x2b16('0x16')],'defaultValue':function(){return _0x2b16('0x29');}},'notificationSound':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x2a')},'waitForTheAssignedAgent':{'type':Sequelize[_0x2b16('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize['STRING'],'defaultValue':_0x2b16('0x2b')},'verticalAlignment':{'type':Sequelize[_0x2b16('0x6')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x2c')},'defaultTitle':{'type':Sequelize[_0x2b16('0x1')]},'customerAvatar':{'type':Sequelize[_0x2b16('0x16')]},'showCustomerAvatar':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0x2b16('0x6')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0x2b16('0x1')],'allowNull':![],'defaultValue':'#fafafa','validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x2b16('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x2b16('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':_0x2b16('0x2d')},'systemAvatar':{'type':Sequelize[_0x2b16('0x16')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x2b16('0x6')],'comment':_0x2b16('0x2e')},'mandatoryDisposition':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![],'comment':_0x2b16('0x2f'),'set':function(_0x3446c0){if(!_0x3446c0)this[_0x2b16('0x1e')](_0x2b16('0x30'),null);this[_0x2b16('0x1e')](_0x2b16('0x31'),_0x3446c0);}},'vidaooEscalation':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0x2b16('0x1')]},'vidaooTopic':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x2b16('0x32')},'vidaooNote':{'type':Sequelize[_0x2b16('0x1')],'defaultValue':function(){return _0x2b16('0x33');}},'vidaooMetadata':{'type':Sequelize['TEXT'],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0x2b16('0x7')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0x2b16('0x16')]}};
\ No newline at end of file
+var _0xca84=['Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','exports','STRING','email','Agent','#011F6A','#ffffff','INTEGER','BOOLEAN','ENUM','squared','rounded','We\x20are\x20here!','Chat','Send','TEXT','Form\x20submission\x20error','Note','Type\x20a\x20message','Skip','star','thumb','stringify','name','input','getDataValue','parse','setDataValue','textarea','Comments','offlineForm','generate','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.','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','bottom_right','alternate','#fafafa','System','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition'];(function(_0xa13b36,_0x9e0fef){var _0x1a3a93=function(_0x293fb4){while(--_0x293fb4){_0xa13b36['push'](_0xa13b36['shift']());}};_0x1a3a93(++_0x9e0fef);}(_0xca84,0xca));var _0x4ca8=function(_0x152e69,_0x48182a){_0x152e69=_0x152e69-0x0;var _0x23c0bb=_0xca84[_0x152e69];return _0x23c0bb;};'use strict';var Sequelize=require(_0x4ca8('0x0'));var rs=require(_0x4ca8('0x1'));module[_0x4ca8('0x2')]={'name':{'type':Sequelize[_0x4ca8('0x3')],'allowNull':![]},'address':{'type':Sequelize[_0x4ca8('0x3')],'allowNull':![],'unique':'address'},'description':{'type':Sequelize[_0x4ca8('0x3')]},'mapKey':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x4')},'mapKeyOffline':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x4')},'key':{'type':Sequelize[_0x4ca8('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0x5')},'customerAlias':{'type':Sequelize['STRING'],'defaultValue':'Me'},'color':{'type':Sequelize[_0x4ca8('0x3')],'allowNull':![],'defaultValue':_0x4ca8('0x6'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x4ca8('0x6'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x4ca8('0x7'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0x4ca8('0x8')],'defaultValue':0xf},'remote':{'type':Sequelize[_0x4ca8('0x3')]},'animation':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0x4ca8('0xa')]('rounded',_0x4ca8('0xb')),'defaultValue':_0x4ca8('0xc')},'header_online':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0xd')},'start_chat_button':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0xe')},'offline_chat_button':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0xf')},'header_offline':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':'Contact\x20us'},'download_transcript':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'timeout':{'type':Sequelize[_0x4ca8('0x8')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':'Powered\x20by\x20xCALLY'},'defaultWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0x4ca8('0x10')]},'closingQuestion':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':'Form\x20properly\x20submitted'},'formSubmitFailureMessage':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x11')},'noteTitle':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x12')},'placeholderMessage':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0x13')},'closingMessage':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':'Thanks\x20you\x20for\x20your\x20time!'},'closingMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0xf')},'skipMessageButton':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x14')},'conditionAgreement':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableSendButton':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'feedbackTitle':{'type':Sequelize['STRING'],'defaultValue':'Feedback'},'ratingType':{'type':Sequelize[_0x4ca8('0xa')](_0x4ca8('0x15'),_0x4ca8('0x16')),'defaultValue':_0x4ca8('0x15')},'ratingStarsNumber':{'type':Sequelize[_0x4ca8('0x8')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0x4ca8('0x10')],'defaultValue':function(){return JSON[_0x4ca8('0x17')]({'items':[{'type':'input','variable':null,'config':{'placeholder':'name','type':'text','required':!![]},'props':{'title':_0x4ca8('0x18'),'helpText':''}},{'type':_0x4ca8('0x19'),'props':{'title':_0x4ca8('0x4'),'helpText':''},'config':{'required':!![],'placeholder':'email','type':'email'},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0x4ca8('0x1a')]('onlineForm')?JSON[_0x4ca8('0x1b')](this[_0x4ca8('0x1a')]('onlineForm')):{};},'set':function(_0x11d0d0){return this[_0x4ca8('0x1c')]('onlineForm',JSON[_0x4ca8('0x17')](_0x11d0d0));}},'offlineForm':{'type':Sequelize[_0x4ca8('0x10')],'defaultValue':function(){return JSON[_0x4ca8('0x17')]({'items':[{'type':_0x4ca8('0x19'),'props':{'title':_0x4ca8('0x4'),'helpText':''},'config':{'required':!![],'placeholder':_0x4ca8('0x4'),'type':_0x4ca8('0x4')},'variable':null},{'type':_0x4ca8('0x1d'),'config':{'placeholder':_0x4ca8('0x1e')},'props':{'title':'Comments','helpText':'Leave\x20your\x20comments'}}],'fromKey':0x0});},'get':function(){return this['getDataValue'](_0x4ca8('0x1f'))?JSON[_0x4ca8('0x1b')](this[_0x4ca8('0x1a')](_0x4ca8('0x1f'))):{};},'set':function(_0x404513){return this[_0x4ca8('0x1c')](_0x4ca8('0x1f'),JSON[_0x4ca8('0x17')](_0x404513));}},'token':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':function(){return rs[_0x4ca8('0x20')]();}},'autoclose':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize['STRING']},'forwardOffline':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0x4ca8('0x3')]},'waitingTitle':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x21')},'waitingMessage':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0x22')},'offlineMessageSubject':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x23')},'offlineMessageBody':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x24')},'enableUnmanagedNote':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x25')},'skipUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0x14')},'sendUnmanaged':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':'Send'},'enableCustomerAttachment':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentAvatar':{'type':Sequelize['TEXT']},'showAgentAvatar':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'timezone':{'type':Sequelize[_0x4ca8('0x3')]},'notificationTemplate':{'type':Sequelize[_0x4ca8('0x10')],'defaultValue':function(){return _0x4ca8('0x26');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':_0x4ca8('0x27')},'waitForTheAssignedAgent':{'type':Sequelize[_0x4ca8('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x28')},'verticalAlignment':{'type':Sequelize['INTEGER'],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x29')},'defaultTitle':{'type':Sequelize[_0x4ca8('0x3')]},'customerAvatar':{'type':Sequelize[_0x4ca8('0x10')]},'showCustomerAvatar':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0x4ca8('0x8')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0x4ca8('0x3')],'allowNull':![],'defaultValue':_0x4ca8('0x2a'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4ca8('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0x4ca8('0x3')],'defaultValue':_0x4ca8('0x2b')},'systemAvatar':{'type':Sequelize[_0x4ca8('0x10')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x4ca8('0x8')],'comment':_0x4ca8('0x2c')},'mandatoryDisposition':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![],'comment':_0x4ca8('0x2d'),'set':function(_0x3c1c15){if(!_0x3c1c15)this['setDataValue'](_0x4ca8('0x2e'),null);this[_0x4ca8('0x1c')](_0x4ca8('0x2f'),_0x3c1c15);}},'vidaooEscalation':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0x4ca8('0x3')]},'vidaooTopic':{'type':Sequelize[_0x4ca8('0x3')],'allowNull':![],'defaultValue':_0x4ca8('0x30')},'vidaooNote':{'type':Sequelize['STRING'],'defaultValue':function(){return _0x4ca8('0x31');}},'vidaooMetadata':{'type':Sequelize[_0x4ca8('0x10')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0x4ca8('0x9')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0x4ca8('0x10')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x248b=['localhost','socket.io-emitter','./chatWebsite.socket','register','jayson/promise','client','http','request','ChatWebsite,\x20%s,\x20%s','request\x20sent','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','ChatWebsites','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','length','hasOwnProperty','sort','where','pick','filters','merge','VIRTUAL','filter','options','include','rows','show','fields','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','ChatWebsiteId','Disposition','getDispositions','nolimit','order','includeAll','findAll','removeDispositions','CannedAnswer','getAnswers','findOne','removeAnswers','ids','addLogo','filename','addAvatar','agentAvatar','file','addCustomerAvatar','customerAvatar','systemAvatar','getLogo','join','root','sitepic','../../config/license/util','getLicense','custom','existsSync','server/files/images/logos/','download','server/files/images/avatars/default_avatar.png','isNil','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','headers','getResult','chat','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','from','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','List','DESC','Applications','account','applications','list','asc','ListId','contact','cf-connecting-ip','x-forwarded-for','split','lastName','referer','browser','version','%s\x20%s','unknown','format','device','vendor','threadId','ChatInteraction','externalUrl','interaction','messageId','created','autoclose','push','close','unmanaged','*,*,*,*','ChatMessage','AttachmentId','UserId','User','unshift','waitForTheAssignedAgent','Start','EventManager','offline','CompanyId','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','defaults','findOrCreate','readFileSync','render','toPairs','offlineMessageBody','originalname','mimetype','server','files','attachments','offline-chat','basename','openNewInteraction','sequelize','bulkCreate','MailAccount','MailServerOut','forwardOffline','Smtp','service','host','port','secure','auth','pass','sendMail','\x22%s\x22\x20<%s>','email','forwardOfflineAddress','MailAccountId','subjectOffline','mapValues','firstName','offlineMessageSubject','Chat','NotifyMailAccount','notifyMail','remove','addInteraction','omit','getInteractions','Owner','fullname','Tag','Tags','color','tag','timezone','iftime\x20%s,%s','iftime\x20%s','interval','indexOf','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','ONLINE','No\x20timezone','inspect','getSnippet','Interval','Intervals','License','increment','chatLicenseExceeded','all','some','server/files/chat/iframe.ejs','remote','x-real-ip','connection','replace','alignment','verticalAlignment','textColor','backgroundColor','addApplications','transaction','ChatApplication','findAndCountAll','getApplications','addProactiveActions','chatProactiveAction','ChatProactiveAction','getProactiveActions','getFields','false','offlineForm','onlineForm','items','fromKey','getOfflineMessages','ChatOfflineMessage','Contact','Attachments','addAgents','userChatWebsite:save','removeAgents','emit','userChatWebsite:remove','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','redis'];(function(_0x26da89,_0x264785){var _0xc95b7b=function(_0x230e5b){while(--_0x230e5b){_0x26da89['push'](_0x26da89['shift']());}};_0xc95b7b(++_0x264785);}(_0x248b,0x118));var _0xb248=function(_0xcadf7c,_0x528f5e){_0xcadf7c=_0xcadf7c-0x0;var _0x2228a2=_0x248b[_0xcadf7c];return _0x2228a2;};'use strict';var emlformat=require(_0xb248('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb248('0x1'));var jsonpatch=require(_0xb248('0x2'));var rp=require(_0xb248('0x3'));var moment=require('moment');var BPromise=require(_0xb248('0x4'));var Mustache=require(_0xb248('0x5'));var util=require('util');var path=require(_0xb248('0x6'));var sox=require(_0xb248('0x7'));var csv=require(_0xb248('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb248('0x9'));var _=require(_0xb248('0xa'));var squel=require('squel');var crypto=require(_0xb248('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xb248('0xc'));var toCsv=require(_0xb248('0x8'));var querystring=require(_0xb248('0xd'));var Papa=require(_0xb248('0xe'));var Redis=require(_0xb248('0xf'));var authService=require(_0xb248('0x10'));var qs=require(_0xb248('0x11'));var as=require(_0xb248('0x12'));var hardwareService=require(_0xb248('0x13'));var logger=require(_0xb248('0x14'))(_0xb248('0x15'));var utils=require('../../config/utils');var config=require(_0xb248('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xb248('0x17')]=_['defaults'](config[_0xb248('0x17')],{'host':_0xb248('0x18'),'port':0x18eb});var socket=require(_0xb248('0x19'))(new Redis(config[_0xb248('0x17')]));require(_0xb248('0x1a'))[_0xb248('0x1b')](socket);var jayson=require(_0xb248('0x1c'));var client=jayson[_0xb248('0x1d')][_0xb248('0x1e')]({'port':0x232c});var client9002=jayson[_0xb248('0x1d')][_0xb248('0x1e')]({'port':0x232a});var client9003=jayson[_0xb248('0x1d')][_0xb248('0x1e')]({'port':0x232b});var client9001=jayson[_0xb248('0x1d')][_0xb248('0x1e')]({'port':0x2329});function respondWithRpcPromise(_0x12f851,_0x4aaa90,_0x32f149,_0x8eb915){return new BPromise(function(_0x1b10e4,_0x13850f){var _0x1b63c0=_0x8eb915||client;return _0x1b63c0[_0xb248('0x1f')](_0x12f851,_0x32f149)['then'](function(_0x44b377){logger['info'](_0xb248('0x20'),_0x4aaa90,_0xb248('0x21'));logger['debug'](_0xb248('0x22'),_0x4aaa90,_0xb248('0x21'),JSON[_0xb248('0x23')](_0x44b377));if(_0x44b377[_0xb248('0x24')]){if(_0x44b377[_0xb248('0x24')][_0xb248('0x25')]===0x1f4){logger[_0xb248('0x24')](_0xb248('0x20'),_0x4aaa90,_0x44b377['error'][_0xb248('0x26')]);return _0x13850f(_0x44b377['error'][_0xb248('0x26')]);}logger[_0xb248('0x24')]('ChatWebsite,\x20%s,\x20%s',_0x4aaa90,_0x44b377[_0xb248('0x24')]['message']);return _0x1b10e4(_0x44b377['error'][_0xb248('0x26')]);}else{logger['info']('ChatWebsite,\x20%s,\x20%s',_0x4aaa90,_0xb248('0x21'));_0x1b10e4(_0x44b377[_0xb248('0x27')][_0xb248('0x26')]);}})[_0xb248('0x28')](function(_0x3c9684){logger['error'](_0xb248('0x20'),_0x4aaa90,_0x3c9684);_0x13850f(_0x3c9684);});});}function respondWithStatusCode(_0x3d7de7,_0xf67142){_0xf67142=_0xf67142||0xcc;return function(_0x55b86a){if(_0x55b86a){return _0x3d7de7['sendStatus'](_0xf67142);}return _0x3d7de7[_0xb248('0x29')](_0xf67142)[_0xb248('0x2a')]();};}function respondWithResult(_0x58012e,_0x5da270){_0x5da270=_0x5da270||0xc8;return function(_0x24068a){if(_0x24068a){return _0x58012e[_0xb248('0x29')](_0x5da270)[_0xb248('0x2b')](_0x24068a);}};}function respondWithFilteredResult(_0x457643,_0x22b972){return function(_0xf3e161){if(_0xf3e161){var _0x542695=typeof _0x22b972[_0xb248('0x2c')]===_0xb248('0x2d')&&typeof _0x22b972[_0xb248('0x2e')]===_0xb248('0x2d');var _0xd1733f=_0xf3e161[_0xb248('0x2f')];var _0x17c800=_0x542695?0x0:_0x22b972[_0xb248('0x2c')];var _0x4846f2=_0x542695?_0xf3e161['count']:_0x22b972['offset']+_0x22b972[_0xb248('0x2e')];var _0x19d99d;if(_0x4846f2>=_0xd1733f){_0x4846f2=_0xd1733f;_0x19d99d=0xc8;}else{_0x19d99d=0xce;}_0x457643[_0xb248('0x29')](_0x19d99d);return _0x457643[_0xb248('0x30')](_0xb248('0x31'),_0x17c800+'-'+_0x4846f2+'/'+_0xd1733f)[_0xb248('0x2b')](_0xf3e161);}return null;};}function patchUpdates(_0x35b9e6){return function(_0x37b1cd){try{jsonpatch[_0xb248('0x32')](_0x37b1cd,_0x35b9e6,!![]);}catch(_0x22e365){return BPromise[_0xb248('0x33')](_0x22e365);}return _0x37b1cd[_0xb248('0x34')]();};}function saveUpdates(_0x31bd30,_0x1b32ba){return function(_0x32a098){if(_0x32a098){return _0x32a098[_0xb248('0x35')](_0x31bd30)['then'](function(_0x1221c5){return _0x1221c5;});}return null;};}function removeEntity(_0x516824,_0x221203){return function(_0x499734){if(_0x499734){return _0x499734[_0xb248('0x36')]()[_0xb248('0x37')](function(){var _0xdfa1f=_0x499734[_0xb248('0x38')]({'plain':!![]});var _0x1d9403=_0xb248('0x39');return db[_0xb248('0x3a')][_0xb248('0x36')]({'where':{'type':_0x1d9403,'resourceId':_0xdfa1f['id']}})[_0xb248('0x37')](function(){return _0x499734;});})[_0xb248('0x37')](function(){_0x516824[_0xb248('0x29')](0xcc)[_0xb248('0x2a')]();});}};}function handleEntityNotFound(_0x520f84,_0x1daaf5){return function(_0x756e0){if(!_0x756e0){_0x520f84['sendStatus'](0x194);}return _0x756e0;};}function handleError(_0x5e2c43,_0x5065a3){_0x5065a3=_0x5065a3||0x1f4;return function(_0x279dbd){logger['error'](_0x279dbd[_0xb248('0x3b')]);if(_0x279dbd[_0xb248('0x3c')]){delete _0x279dbd[_0xb248('0x3c')];}_0x5e2c43[_0xb248('0x29')](_0x5065a3)[_0xb248('0x3d')](_0x279dbd);};}exports[_0xb248('0x3e')]=function(_0x31c7a4,_0x33817f){var _0x560e69={'include':[{'model':db[_0xb248('0x3f')],'as':_0xb248('0x40')}]},_0x5a0d4b={},_0x72d92f={'count':0x0,'rows':[]};var _0x1cf301=_[_0xb248('0x41')](db[_0xb248('0x42')][_0xb248('0x43')],function(_0x53f6b0){return{'name':_0x53f6b0[_0xb248('0x44')],'type':_0x53f6b0[_0xb248('0x45')]['key']};});_0x5a0d4b[_0xb248('0x46')]=_[_0xb248('0x41')](_0x1cf301,'name');_0x5a0d4b[_0xb248('0x47')]=_[_0xb248('0x48')](_0x31c7a4['query']);_0x5a0d4b['filters']=_[_0xb248('0x49')](_0x5a0d4b[_0xb248('0x46')],_0x5a0d4b[_0xb248('0x47')]);_0x560e69['attributes']=_[_0xb248('0x49')](_0x5a0d4b['model'],qs['fields'](_0x31c7a4[_0xb248('0x47')]['fields']));_0x560e69[_0xb248('0x4a')]=_0x560e69['attributes'][_0xb248('0x4b')]?_0x560e69[_0xb248('0x4a')]:_0x5a0d4b[_0xb248('0x46')];if(!_0x31c7a4[_0xb248('0x47')][_0xb248('0x4c')]('nolimit')){_0x560e69['limit']=qs[_0xb248('0x2e')](_0x31c7a4[_0xb248('0x47')]['limit']);_0x560e69['offset']=qs['offset'](_0x31c7a4[_0xb248('0x47')][_0xb248('0x2c')]);}_0x560e69['order']=qs['sort'](_0x31c7a4[_0xb248('0x47')][_0xb248('0x4d')]);_0x560e69[_0xb248('0x4e')]=qs['filters'](_[_0xb248('0x4f')](_0x31c7a4['query'],_0x5a0d4b[_0xb248('0x50')]),_0x1cf301);if(_0x31c7a4[_0xb248('0x47')]['filter']){_0x560e69[_0xb248('0x4e')]=_[_0xb248('0x51')](_0x560e69[_0xb248('0x4e')],{'$or':_[_0xb248('0x41')](_0x1cf301,function(_0x2e4ca3){if(_0x2e4ca3[_0xb248('0x45')]!==_0xb248('0x52')){var _0x53d24e={};_0x53d24e[_0x2e4ca3[_0xb248('0x3c')]]={'$like':'%'+_0x31c7a4['query'][_0xb248('0x53')]+'%'};return _0x53d24e;}})});}_0x560e69=_[_0xb248('0x51')]({},_0x560e69,_0x31c7a4[_0xb248('0x54')]);var _0x431363={'where':_0x560e69[_0xb248('0x4e')]};return db[_0xb248('0x42')]['count'](_0x431363)[_0xb248('0x37')](function(_0x5834b8){_0x72d92f[_0xb248('0x2f')]=_0x5834b8;if(_0x31c7a4['query']['includeAll']){_0x560e69[_0xb248('0x55')]=[{'all':!![]}];}return db[_0xb248('0x42')]['findAll'](_0x560e69);})[_0xb248('0x37')](function(_0x32e32f){_0x72d92f[_0xb248('0x56')]=_0x32e32f;return _0x72d92f;})['then'](respondWithFilteredResult(_0x33817f,_0x560e69))['catch'](handleError(_0x33817f,null));};exports[_0xb248('0x57')]=function(_0x427928,_0x4b24b7){var _0x160b3d={'raw':![],'where':{'id':_0x427928['params']['id']},'include':[{'model':db[_0xb248('0x3f')],'as':_0xb248('0x40')}]},_0x2b888b={};_0x2b888b[_0xb248('0x46')]=_['keys'](db[_0xb248('0x42')][_0xb248('0x43')]);_0x2b888b[_0xb248('0x47')]=_['keys'](_0x427928[_0xb248('0x47')]);_0x2b888b['filters']=_['intersection'](_0x2b888b[_0xb248('0x46')],_0x2b888b[_0xb248('0x47')]);_0x160b3d[_0xb248('0x4a')]=_['intersection'](_0x2b888b['model'],qs[_0xb248('0x58')](_0x427928[_0xb248('0x47')][_0xb248('0x58')]));_0x160b3d[_0xb248('0x4a')]=_0x160b3d[_0xb248('0x4a')][_0xb248('0x4b')]?_0x160b3d['attributes']:_0x2b888b['model'];if(_0x427928['query']['includeAll']){_0x160b3d['include']=[{'all':!![]}];}_0x160b3d=_[_0xb248('0x51')]({},_0x160b3d,_0x427928[_0xb248('0x54')]);return db[_0xb248('0x42')][_0xb248('0x59')](_0x160b3d)[_0xb248('0x37')](handleEntityNotFound(_0x4b24b7,null))['then'](respondWithResult(_0x4b24b7,null))[_0xb248('0x28')](handleError(_0x4b24b7,null));};exports[_0xb248('0x5a')]=function(_0x50888c,_0x4c5c54){return db[_0xb248('0x42')]['create'](_0x50888c[_0xb248('0x5b')],{})[_0xb248('0x37')](function(_0x38abaf){var _0x3a2836=_0x50888c[_0xb248('0x5c')][_0xb248('0x38')]({'plain':!![]});if(!_0x3a2836)throw new Error(_0xb248('0x5d'));if(_0x3a2836[_0xb248('0x5e')]===_0xb248('0x5c')){var _0x501593=_0x38abaf[_0xb248('0x38')]({'plain':!![]});var _0x3e466e=_0xb248('0x39');return db[_0xb248('0x5f')][_0xb248('0x59')]({'where':{'name':_0x3e466e,'userProfileId':_0x3a2836[_0xb248('0x60')]},'raw':!![]})[_0xb248('0x37')](function(_0x3d7f67){if(_0x3d7f67&&_0x3d7f67[_0xb248('0x61')]===0x0){return db[_0xb248('0x3a')][_0xb248('0x5a')]({'name':_0x501593[_0xb248('0x3c')],'resourceId':_0x501593['id'],'type':_0x3d7f67[_0xb248('0x3c')],'sectionId':_0x3d7f67['id']},{})[_0xb248('0x37')](function(){return _0x38abaf;});}else{return _0x38abaf;}})[_0xb248('0x28')](function(_0x4106bb){logger[_0xb248('0x24')](_0xb248('0x62'),_0x4106bb);throw _0x4106bb;});}return _0x38abaf;})[_0xb248('0x37')](respondWithResult(_0x4c5c54,0xc9))['catch'](handleError(_0x4c5c54,null));};exports[_0xb248('0x35')]=function(_0x4fa881,_0x4507bd){if(_0x4fa881[_0xb248('0x5b')]['id']){delete _0x4fa881[_0xb248('0x5b')]['id'];}return db['ChatWebsite'][_0xb248('0x59')]({'where':{'id':_0x4fa881[_0xb248('0x63')]['id']},'include':[{'model':db[_0xb248('0x3f')],'as':_0xb248('0x40')}]})[_0xb248('0x37')](handleEntityNotFound(_0x4507bd,null))['then'](saveUpdates(_0x4fa881[_0xb248('0x5b')],null))['then'](respondWithResult(_0x4507bd,null))['catch'](handleError(_0x4507bd,null));};exports['destroy']=function(_0x4e31ca,_0x5e4b6a){return db['ChatWebsite'][_0xb248('0x59')]({'where':{'id':_0x4e31ca[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x5e4b6a,null))['then'](removeEntity(_0x5e4b6a,null))[_0xb248('0x28')](handleError(_0x5e4b6a,null));};exports['describe']=function(_0x4cc343,_0x4f10cf){return db[_0xb248('0x42')][_0xb248('0x64')]()['then'](respondWithResult(_0x4f10cf,null))['catch'](handleError(_0x4f10cf,null));};exports['addDisposition']=function(_0xd23731,_0x1908db,_0x3ebf2c){if(_0xd23731[_0xb248('0x5b')]['id']){delete _0xd23731[_0xb248('0x5b')]['id'];}return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0xd23731[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x1908db,null))[_0xb248('0x37')](function(_0xd93a1f){if(_0xd93a1f){_0xd23731[_0xb248('0x5b')][_0xb248('0x65')]=_0xd93a1f['id'];return db[_0xb248('0x66')][_0xb248('0x5a')](_0xd23731[_0xb248('0x5b')]);}})['then'](respondWithResult(_0x1908db,null))[_0xb248('0x28')](handleError(_0x1908db,null));};exports[_0xb248('0x67')]=function(_0x3f3aad,_0x186aa4,_0x3c24b3){var _0xce6dde={'raw':![],'where':{}};var _0x7cb6d7={};var _0xf1e63a={'count':0x0,'rows':[]};return db[_0xb248('0x42')]['findOne']({'where':{'id':_0x3f3aad[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x186aa4,null))[_0xb248('0x37')](function(_0x382204){if(_0x382204){_0x7cb6d7[_0xb248('0x46')]=_[_0xb248('0x48')](db[_0xb248('0x66')][_0xb248('0x43')]);_0x7cb6d7['query']=_[_0xb248('0x48')](_0x3f3aad[_0xb248('0x47')]);_0x7cb6d7[_0xb248('0x50')]=_['intersection'](_0x7cb6d7[_0xb248('0x46')],_0x7cb6d7[_0xb248('0x47')]);_0xce6dde[_0xb248('0x4a')]=_[_0xb248('0x49')](_0x7cb6d7[_0xb248('0x46')],qs['fields'](_0x3f3aad[_0xb248('0x47')][_0xb248('0x58')]));_0xce6dde[_0xb248('0x4a')]=_0xce6dde[_0xb248('0x4a')][_0xb248('0x4b')]?_0xce6dde[_0xb248('0x4a')]:_0x7cb6d7[_0xb248('0x46')];if(!_0x3f3aad[_0xb248('0x47')][_0xb248('0x4c')](_0xb248('0x68'))){_0xce6dde[_0xb248('0x2e')]=qs[_0xb248('0x2e')](_0x3f3aad[_0xb248('0x47')][_0xb248('0x2e')]);_0xce6dde['offset']=qs[_0xb248('0x2c')](_0x3f3aad['query'][_0xb248('0x2c')]);}_0xce6dde[_0xb248('0x69')]=qs[_0xb248('0x4d')](_0x3f3aad[_0xb248('0x47')]['sort']);_0xce6dde[_0xb248('0x4e')]=qs[_0xb248('0x50')](_[_0xb248('0x4f')](_0x3f3aad[_0xb248('0x47')],_0x7cb6d7[_0xb248('0x50')]));_0xce6dde[_0xb248('0x4e')]['ChatWebsiteId']=_0x382204['id'];if(_0x3f3aad['query'][_0xb248('0x53')]){_0xce6dde[_0xb248('0x4e')]=_[_0xb248('0x51')](_0xce6dde[_0xb248('0x4e')],{'$or':_['map'](_0xce6dde['attributes'],function(_0x3bf869){var _0x43d54c={};_0x43d54c[_0x3bf869]={'$like':'%'+_0x3f3aad[_0xb248('0x47')][_0xb248('0x53')]+'%'};return _0x43d54c;})});}_0xce6dde=_[_0xb248('0x51')]({},_0xce6dde,_0x3f3aad[_0xb248('0x54')]);return db[_0xb248('0x66')][_0xb248('0x2f')]({'where':_0xce6dde[_0xb248('0x4e')]})[_0xb248('0x37')](function(_0x3dc3d6){_0xf1e63a[_0xb248('0x2f')]=_0x3dc3d6;if(_0x3f3aad['query'][_0xb248('0x6a')]){_0xce6dde['include']=[{'all':!![]}];}return db[_0xb248('0x66')][_0xb248('0x6b')](_0xce6dde);})[_0xb248('0x37')](function(_0xa25d66){_0xf1e63a['rows']=_0xa25d66;return _0xf1e63a;});}})[_0xb248('0x37')](respondWithFilteredResult(_0x186aa4,_0xce6dde))[_0xb248('0x28')](handleError(_0x186aa4,null));};exports[_0xb248('0x6c')]=function(_0x5b462f,_0x5dc526,_0x1cef08){return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0x5b462f[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x5dc526,null))[_0xb248('0x37')](function(_0x349d72){if(_0x349d72){return _0x349d72[_0xb248('0x6c')](_0x5b462f[_0xb248('0x47')]['ids']);}})[_0xb248('0x37')](respondWithStatusCode(_0x5dc526,null))[_0xb248('0x28')](handleError(_0x5dc526,null));};exports['addAnswer']=function(_0x8b30f3,_0x3b2c34,_0x3bc88c){if(_0x8b30f3['body']['id']){delete _0x8b30f3[_0xb248('0x5b')]['id'];}return db['ChatWebsite'][_0xb248('0x59')]({'where':{'id':_0x8b30f3[_0xb248('0x63')]['id']}})['then'](handleEntityNotFound(_0x3b2c34,null))['then'](function(_0x2b8b8e){if(_0x2b8b8e){_0x8b30f3[_0xb248('0x5b')]['ChatWebsiteId']=_0x2b8b8e['id'];return db[_0xb248('0x6d')][_0xb248('0x5a')](_0x8b30f3['body']);}})[_0xb248('0x37')](respondWithResult(_0x3b2c34,null))[_0xb248('0x28')](handleError(_0x3b2c34,null));};exports[_0xb248('0x6e')]=function(_0xdf9428,_0x29f337,_0x1e89b2){var _0x3c1223={'raw':![],'where':{}};var _0x3c551c={};var _0x4a9c4a={'count':0x0,'rows':[]};return db[_0xb248('0x42')][_0xb248('0x6f')]({'where':{'id':_0xdf9428[_0xb248('0x63')]['id']}})['then'](handleEntityNotFound(_0x29f337,null))['then'](function(_0x5f43b8){if(_0x5f43b8){_0x3c551c[_0xb248('0x46')]=_[_0xb248('0x48')](db[_0xb248('0x6d')]['rawAttributes']);_0x3c551c[_0xb248('0x47')]=_[_0xb248('0x48')](_0xdf9428[_0xb248('0x47')]);_0x3c551c['filters']=_[_0xb248('0x49')](_0x3c551c[_0xb248('0x46')],_0x3c551c[_0xb248('0x47')]);_0x3c1223[_0xb248('0x4a')]=_[_0xb248('0x49')](_0x3c551c['model'],qs[_0xb248('0x58')](_0xdf9428[_0xb248('0x47')][_0xb248('0x58')]));_0x3c1223[_0xb248('0x4a')]=_0x3c1223[_0xb248('0x4a')][_0xb248('0x4b')]?_0x3c1223[_0xb248('0x4a')]:_0x3c551c['model'];if(!_0xdf9428[_0xb248('0x47')][_0xb248('0x4c')]('nolimit')){_0x3c1223[_0xb248('0x2e')]=qs[_0xb248('0x2e')](_0xdf9428[_0xb248('0x47')]['limit']);_0x3c1223['offset']=qs['offset'](_0xdf9428['query'][_0xb248('0x2c')]);}_0x3c1223[_0xb248('0x69')]=qs[_0xb248('0x4d')](_0xdf9428['query'][_0xb248('0x4d')]);_0x3c1223['where']=qs[_0xb248('0x50')](_[_0xb248('0x4f')](_0xdf9428['query'],_0x3c551c[_0xb248('0x50')]));_0x3c1223[_0xb248('0x4e')][_0xb248('0x65')]=_0x5f43b8['id'];if(_0xdf9428[_0xb248('0x47')][_0xb248('0x53')]){_0x3c1223['where']=_[_0xb248('0x51')](_0x3c1223['where'],{'$or':_[_0xb248('0x41')](_0x3c1223[_0xb248('0x4a')],function(_0x5be242){var _0x298824={};_0x298824[_0x5be242]={'$like':'%'+_0xdf9428[_0xb248('0x47')][_0xb248('0x53')]+'%'};return _0x298824;})});}_0x3c1223=_[_0xb248('0x51')]({},_0x3c1223,_0xdf9428[_0xb248('0x54')]);return db[_0xb248('0x6d')][_0xb248('0x2f')]({'where':_0x3c1223['where']})[_0xb248('0x37')](function(_0x31bab8){_0x4a9c4a['count']=_0x31bab8;if(_0xdf9428[_0xb248('0x47')][_0xb248('0x6a')]){_0x3c1223[_0xb248('0x55')]=[{'all':!![]}];}return db[_0xb248('0x6d')][_0xb248('0x6b')](_0x3c1223);})[_0xb248('0x37')](function(_0x29d0df){_0x4a9c4a['rows']=_0x29d0df;return _0x4a9c4a;});}})[_0xb248('0x37')](respondWithFilteredResult(_0x29f337,_0x3c1223))['catch'](handleError(_0x29f337,null));};exports[_0xb248('0x70')]=function(_0x4b7b5f,_0x30966f,_0x2c64ac){return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0x4b7b5f[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x30966f,null))[_0xb248('0x37')](function(_0x3fd42a){if(_0x3fd42a){return _0x3fd42a[_0xb248('0x70')](_0x4b7b5f[_0xb248('0x47')][_0xb248('0x71')]);}})[_0xb248('0x37')](respondWithStatusCode(_0x30966f,null))[_0xb248('0x28')](handleError(_0x30966f,null));};exports[_0xb248('0x72')]=function(_0x2a7eaa,_0x1dc18f,_0xb58caf){_0x2a7eaa[_0xb248('0x5b')]['sitepic']=_0x2a7eaa['file'][_0xb248('0x73')];return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0x2a7eaa['params']['id']}})['then'](handleEntityNotFound(_0x1dc18f,null))[_0xb248('0x37')](saveUpdates(_0x2a7eaa[_0xb248('0x5b')],null))['then'](respondWithResult(_0x1dc18f,null))[_0xb248('0x28')](handleError(_0x1dc18f,null));};exports[_0xb248('0x74')]=function(_0x5bcb9e,_0x101204,_0x2b74ed){_0x5bcb9e['body'][_0xb248('0x75')]=_0x5bcb9e[_0xb248('0x76')][_0xb248('0x73')];return db['ChatWebsite'][_0xb248('0x59')]({'where':{'id':_0x5bcb9e[_0xb248('0x63')]['id']}})['then'](handleEntityNotFound(_0x101204,null))[_0xb248('0x37')](saveUpdates(_0x5bcb9e[_0xb248('0x5b')],null))['then'](respondWithResult(_0x101204,null))[_0xb248('0x28')](handleError(_0x101204,null));};exports[_0xb248('0x77')]=function(_0x39c150,_0x2cbb46,_0x317399){_0x39c150[_0xb248('0x5b')][_0xb248('0x78')]=_0x39c150[_0xb248('0x76')]['filename'];return db[_0xb248('0x42')]['find']({'where':{'id':_0x39c150[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x2cbb46,null))[_0xb248('0x37')](saveUpdates(_0x39c150['body'],null))[_0xb248('0x37')](respondWithResult(_0x2cbb46,null))[_0xb248('0x28')](handleError(_0x2cbb46,null));};exports['addSystemAvatar']=function(_0x45d0d4,_0x4a532c,_0x97768f){_0x45d0d4[_0xb248('0x5b')][_0xb248('0x79')]=_0x45d0d4[_0xb248('0x76')][_0xb248('0x73')];return db['ChatWebsite']['find']({'where':{'id':_0x45d0d4[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x4a532c,null))[_0xb248('0x37')](saveUpdates(_0x45d0d4[_0xb248('0x5b')],null))[_0xb248('0x37')](respondWithResult(_0x4a532c,null))[_0xb248('0x28')](handleError(_0x4a532c,null));};exports[_0xb248('0x7a')]=function(_0x1bf822,_0x46a6ac,_0xf06838){var _0x4026c7=path[_0xb248('0x7b')](config[_0xb248('0x7c')],'server/files/images/logos/default_logo.svg');var _0x4f8d2d={'where':{'id':_0x1bf822['params']['id']},'attributes':['id',_0xb248('0x7d')],'raw':!![]};var _0x51fc8a=![];return require(_0xb248('0x7e'))[_0xb248('0x7f')]()['then'](function(_0x613039){if(_0x613039){_0x51fc8a=_0x613039[_0xb248('0x80')];}})['then'](function(){return db[_0xb248('0x42')][_0xb248('0x59')](_0x4f8d2d);})[_0xb248('0x37')](handleEntityNotFound(_0x46a6ac,null))['then'](function(_0x1c3ee5){if(_0x1c3ee5){if(!_['isNil'](_0x1c3ee5[_0xb248('0x7d')])){if(fs[_0xb248('0x81')](path[_0xb248('0x7b')](config[_0xb248('0x7c')],'server/files/images/logos/',_0x1c3ee5['sitepic']))&&_0x51fc8a){_0x4026c7=path['join'](config[_0xb248('0x7c')],_0xb248('0x82'),_0x1c3ee5['sitepic']);}}return _0x46a6ac[_0xb248('0x83')](_0x4026c7);}})[_0xb248('0x28')](handleError(_0x46a6ac,null));};exports['getAvatar']=function(_0x4a9865,_0x3065b5,_0x25e0d4){var _0x11279f=path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x84'));var _0x1d7b35={'where':{'id':_0x4a9865[_0xb248('0x63')]['id']},'attributes':['id',_0xb248('0x75')],'raw':!![]};return db[_0xb248('0x42')][_0xb248('0x59')](_0x1d7b35)[_0xb248('0x37')](handleEntityNotFound(_0x3065b5,null))[_0xb248('0x37')](function(_0xf1f222){if(_0xf1f222){if(!_[_0xb248('0x85')](_0xf1f222['agentAvatar'])){if(fs[_0xb248('0x81')](path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x86'),_0xf1f222[_0xb248('0x75')]))){_0x11279f=path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x86'),_0xf1f222['agentAvatar']);}}return _0x3065b5[_0xb248('0x83')](_0x11279f);}})[_0xb248('0x28')](handleError(_0x3065b5,null));};exports[_0xb248('0x87')]=function(_0x176d86,_0x12f662,_0x3805fd){var _0x524c1d=path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x88'));var _0x5bd23a={'where':{'id':_0x176d86[_0xb248('0x63')]['id']},'attributes':['id','customerAvatar',_0xb248('0x89')],'raw':!![]};return db[_0xb248('0x42')][_0xb248('0x59')](_0x5bd23a)[_0xb248('0x37')](handleEntityNotFound(_0x12f662,null))['then'](function(_0x18bbf1){if(_0x18bbf1){if(!_[_0xb248('0x85')](_0x18bbf1[_0xb248('0x78')])){if(fs[_0xb248('0x81')](path['join'](config[_0xb248('0x7c')],_0xb248('0x86'),_0x18bbf1[_0xb248('0x78')]))&&_0x18bbf1['showCustomerAvatar']){_0x524c1d=path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x86'),_0x18bbf1[_0xb248('0x78')]);}}return _0x12f662[_0xb248('0x83')](_0x524c1d);}})[_0xb248('0x28')](handleError(_0x12f662,null));};exports[_0xb248('0x8a')]=function(_0x3e4584,_0x41e754,_0x41f3ec){var _0x23c9f0=path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x8b'));var _0x370c8f={'where':{'id':_0x3e4584[_0xb248('0x63')]['id']},'attributes':['id',_0xb248('0x79')],'raw':!![]};return db[_0xb248('0x42')]['find'](_0x370c8f)[_0xb248('0x37')](handleEntityNotFound(_0x41e754,null))[_0xb248('0x37')](function(_0x4b7928){if(_0x4b7928){if(!_[_0xb248('0x85')](_0x4b7928[_0xb248('0x79')])){if(fs[_0xb248('0x81')](path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0x86'),_0x4b7928[_0xb248('0x79')]))){_0x23c9f0=path['join'](config[_0xb248('0x7c')],'server/files/images/avatars/',_0x4b7928[_0xb248('0x79')]);}}return _0x41e754['download'](_0x23c9f0);}})[_0xb248('0x28')](handleError(_0x41e754,null));};exports[_0xb248('0x8c')]=function(_0x4c91d0,_0x2ff820,_0x2ace7e){var _0x4727cd=require(_0xb248('0x8d'));var _0x5f180f=new _0x4727cd();var _0x31fcb7=_0x5f180f['setUA'](_0x4c91d0[_0xb248('0x8e')]['user-agent'])[_0xb248('0x8f')]();var _0x306f4c={'body':_0x4c91d0['body'],'channel':_0xb248('0x90')};var _0x4a43b6=[];var _0x3cd1c4=[];var _0x39049e={};var _0x5462dc=![];return db[_0xb248('0x91')][_0xb248('0x64')]()['then'](function(_0x5ad13a){if(!_0x5ad13a){throw new db[(_0xb248('0x92'))][(_0xb248('0x93'))](_0xb248('0x94'));}_0x4a43b6=_[_0xb248('0x95')](_[_0xb248('0x48')](_0x5ad13a),[_0xb248('0x96'),_0xb248('0x97')]);_0x3cd1c4=_[_0xb248('0x95')](_[_0xb248('0x48')](_0x5ad13a),[_0xb248('0x96'),_0xb248('0x97'),'CompanyId','ListId']);if(_0x4c91d0['body']['id']){delete _0x4c91d0[_0xb248('0x5b')]['id'];}if(_[_0xb248('0x85')](_0x4c91d0['body'][_0xb248('0x98')])){throw new db[(_0xb248('0x92'))]['ValidationError']('from\x20is\x20mandatory');}if(_['isNil'](_0x4c91d0[_0xb248('0x5b')]['body'])||_0x4c91d0[_0xb248('0x5b')][_0xb248('0x5b')]===''){throw new db[(_0xb248('0x92'))]['ValidationError'](_0xb248('0x99'));}if(_['isNil'](_0x4c91d0[_0xb248('0x5b')][_0xb248('0x9a')])){throw new db[(_0xb248('0x92'))][(_0xb248('0x93'))](_0xb248('0x9b')+_0x3cd1c4);}if(!_[_0xb248('0x9c')](_0x3cd1c4,_0x4c91d0[_0xb248('0x5b')][_0xb248('0x9a')])){throw new db[(_0xb248('0x92'))][(_0xb248('0x93'))](_0xb248('0x9d')+_0x3cd1c4);}_0x39049e[_0x4c91d0[_0xb248('0x5b')][_0xb248('0x9a')]]=_0x4c91d0[_0xb248('0x5b')][_0xb248('0x98')];})[_0xb248('0x37')](function(){return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0x4c91d0[_0xb248('0x63')]['id']},'include':[{'model':db[_0xb248('0x9e')],'as':_0xb248('0x9f'),'include':[{'model':db[_0xb248('0x91')],'as':'Contacts','where':_0x39049e,'limit':0x1,'order':[[_0xb248('0x97'),_0xb248('0xa0')]]}]},{'model':db['ChatApplication'],'as':_0xb248('0xa1')}]});})[_0xb248('0x37')](handleEntityNotFound(_0x2ff820,null))[_0xb248('0x37')](function(_0xc4ab68){if(_0xc4ab68&&_0xc4ab68[_0xb248('0x9f')]){_0x306f4c[_0xb248('0xa2')]=_0xc4ab68;_0x306f4c[_0xb248('0xa3')]=_0xc4ab68[_0xb248('0xa1')];_0x306f4c[_0xb248('0xa4')]=_0xc4ab68[_0xb248('0x9f')];_0x306f4c[_0xb248('0xa3')]=_['orderBy'](_0x306f4c[_0xb248('0xa3')],['priority'],[_0xb248('0xa5')]);if(_0x306f4c['account'][_0xb248('0xa1')]){delete _0x306f4c[_0xb248('0xa2')]['Applications'];}if(_0x306f4c[_0xb248('0xa2')][_0xb248('0x9f')]&&_0x306f4c[_0xb248('0xa2')][_0xb248('0x9f')]['Contacts'][_0xb248('0x4b')]){return _0x306f4c[_0xb248('0xa2')][_0xb248('0x9f')]['Contacts'][0x0];}var _0x267f9e=_['defaults'](_0x4c91d0[_0xb248('0x5b')],{'firstName':_0x4c91d0[_0xb248('0x5b')][_0xb248('0x98')],'ListId':_0xc4ab68[_0xb248('0xa6')]});_0x267f9e[_0x4c91d0['body']['mapKey']]=_0x4c91d0[_0xb248('0x5b')]['from'];return db[_0xb248('0x91')][_0xb248('0x5a')](_0x267f9e,{'fields':_0x4a43b6,'raw':!![]});}})[_0xb248('0x37')](handleEntityNotFound(_0x2ff820,null))['then'](function(_0x210d35){_0x306f4c[_0xb248('0xa7')]=_0x210d35;var _0x50b172=_0x4c91d0[_0xb248('0x5b')]['customerIp'];if(_0x4c91d0[_0xb248('0x8e')][_0xb248('0xa8')]){_0x50b172=_0x4c91d0[_0xb248('0x8e')][_0xb248('0xa8')];}else if(_0x4c91d0[_0xb248('0x8e')][_0xb248('0xa9')]){_0x50b172=_['first'](_0x4c91d0[_0xb248('0x8e')]['x-forwarded-for'][_0xb248('0xaa')](','));}if(_0x210d35){var _0x11e970={'ContactId':_0x210d35['id'],'ChatWebsiteId':_0x4c91d0[_0xb248('0x63')]['id'],'from':(_0x210d35['firstName']||'')+'\x20'+(_0x210d35[_0xb248('0xab')]||''),'customerIp':_0x50b172,'customerPort':_0x4c91d0[_0xb248('0x8e')]['x-real-port']?_0x4c91d0[_0xb248('0x8e')]['x-real-port']:null,'referer':_0x4c91d0[_0xb248('0x5b')][_0xb248('0xac')],'browserName':_0x31fcb7[_0xb248('0xad')]['name']&&_0x31fcb7[_0xb248('0xad')][_0xb248('0xae')]?util['format'](_0xb248('0xaf'),_0x31fcb7[_0xb248('0xad')][_0xb248('0x3c')],_0x31fcb7[_0xb248('0xad')][_0xb248('0xae')]):_0xb248('0xb0'),'browserVersion':_0x31fcb7[_0xb248('0xad')][_0xb248('0xae')]||'unknown','osName':util[_0xb248('0xb1')]('%s\x20%s',_0x31fcb7['os'][_0xb248('0x3c')],_0x31fcb7['os'][_0xb248('0xae')]),'osVersion':_0x31fcb7['os'][_0xb248('0xae')],'deviceModel':_0x31fcb7['device'][_0xb248('0x46')]&&_0x31fcb7[_0xb248('0xb2')][_0xb248('0xb3')]?util[_0xb248('0xb1')]('%s\x20%s\x20%s',_0x31fcb7[_0xb248('0xb2')]['model'],_0x31fcb7[_0xb248('0xb2')][_0xb248('0xb3')],_0x31fcb7[_0xb248('0xb2')][_0xb248('0x45')]):null,'deviceVendor':_0x31fcb7['device']['vendor'],'deviceType':_0x31fcb7['device'][_0xb248('0x45')],'formData':JSON[_0xb248('0x23')](_0x4c91d0[_0xb248('0x5b')])};var _0x15ce81={'ChatWebsiteId':_0x4c91d0[_0xb248('0x63')]['id'],'closed':![]};if(_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb4')]){_0x15ce81['threadId']=_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb4')];return db[_0xb248('0xb5')][_0xb248('0x59')]({'where':_0x15ce81})['then'](function(_0x52419d){if(_0x52419d){return[_0x52419d,![]];}_0x11e970['threadId']=_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb4')];_0x11e970[_0xb248('0xb6')]=_0x4c91d0['body'][_0xb248('0xb6')];return db[_0xb248('0xb5')][_0xb248('0x5a')](_0x11e970)[_0xb248('0x37')](function(_0x3344bd){return[_0x3344bd,!![]];});});}_0x15ce81['ContactId']=_0x210d35['id'];if(_0x4c91d0['body'][_0xb248('0xb7')]&&_0x4c91d0['body'][_0xb248('0xb7')]['id']){_0x15ce81['id']=_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb7')]['id'];return db[_0xb248('0xb5')][_0xb248('0x59')]({'where':_0x15ce81})[_0xb248('0x37')](function(_0x4a9306){if(_0x4a9306){return[_0x4a9306,![]];}return db[_0xb248('0xb5')]['create'](_0x11e970)[_0xb248('0x37')](function(_0x206304){return[_0x206304,!![]];});});}return db[_0xb248('0xb5')][_0xb248('0x5a')](_0x11e970)[_0xb248('0x37')](function(_0x55e7a4){return[_0x55e7a4,!![]];});}})['spread'](function(_0x1a340d,_0x446197){if(_0x1a340d){_0x5462dc=_0x446197;if(!_0x446197){var _0x28b995={'from':(_0x306f4c['contact']['firstName']||'')+'\x20'+(_0x306f4c['contact'][_0xb248('0xab')]||'')};if(_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb4')]&&_0x4c91d0[_0xb248('0x5b')]['messageId']&&_0x4c91d0[_0xb248('0x5b')]['threadId']!=_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb8')]){_0x28b995[_0xb248('0xb4')]=_0x4c91d0[_0xb248('0x5b')][_0xb248('0xb8')];}return _0x1a340d[_0xb248('0x35')](_0x28b995);}else{return _0x1a340d;}}})[_0xb248('0x37')](function(_0x2fe393){_0x306f4c[_0xb248('0xb7')]=_0x2fe393[_0xb248('0x38')]({'plain':!![]});_0x306f4c[_0xb248('0xb7')][_0xb248('0xb9')]=_0x5462dc;if(_0x306f4c[_0xb248('0xb7')][_0xb248('0xb9')]){if(_0x306f4c[_0xb248('0xa2')][_0xb248('0xba')]){_0x306f4c[_0xb248('0xa3')][_0xb248('0xbb')]({'id':0x0,'priority':_0x306f4c[_0xb248('0xa3')][_0xb248('0x4b')]+0x1,'app':_0xb248('0xbc'),'appdata':_0xb248('0xbd'),'interval':_0xb248('0xbe')});}}return db[_0xb248('0xbf')]['create']({'body':_0x4c91d0[_0xb248('0x5b')][_0xb248('0x5b')],'ChatWebsiteId':_0x4c91d0[_0xb248('0x63')]['id'],'ChatInteractionId':_0x2fe393['id'],'direction':'in','ContactId':_0x306f4c['contact']['id'],'AttachmentId':_0x4c91d0[_0xb248('0x5b')][_0xb248('0xc0')]});})[_0xb248('0x37')](function(_0x306b01){_0x306f4c['message']=_0x306b01;if(_0x306f4c['interaction'][_0xb248('0xc1')]){return db[_0xb248('0xc2')][_0xb248('0x59')]({'attributes':['id','name'],'where':{'id':_0x306f4c[_0xb248('0xb7')][_0xb248('0xc1')]}})[_0xb248('0x37')](function(_0x3e8b8f){if(_0x3e8b8f){_0x306f4c[_0xb248('0xa3')][_0xb248('0xc3')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x3e8b8f[_0xb248('0x3c')]+','+(_0x306f4c['account'][_0xb248('0xc4')]||0xa),'interval':_0xb248('0xbe')});_0x306f4c['forcedOwnership']=!![];}return respondWithRpcPromise(_0xb248('0xc5'),'startRouting',_0x306f4c);});}return respondWithRpcPromise(_0xb248('0xc5'),'startRouting',_0x306f4c);})[_0xb248('0x37')](function(_0xe9dd38){respondWithRpcPromise(_0xb248('0xc6'),_0xb248('0xc6'),{'event':_0xb248('0x8c'),'message':_0xe9dd38},client9002);return _0xe9dd38;})[_0xb248('0x37')](respondWithResult(_0x2ff820,null))[_0xb248('0x28')](handleError(_0x2ff820,null));};exports[_0xb248('0xc7')]=function(_0xcd7da7,_0x117af2,_0x11129f){var _0x2312a6,_0x20f730,_0x372440;var _0xbb99d7=[];var _0x371baf=[];var _0x2f114d={};var _0xe39844=_0xcd7da7['files']||[];var _0x2e8182=[];var _0x2d3d86;return db[_0xb248('0x91')][_0xb248('0x64')]()['then'](function(_0xc5f1f2){if(!_0xc5f1f2){throw new db[(_0xb248('0x92'))][(_0xb248('0x93'))](_0xb248('0x94'));}_0x371baf=_[_0xb248('0x95')](_[_0xb248('0x48')](_0xc5f1f2),[_0xb248('0x96'),'updatedAt']);_0xbb99d7=_[_0xb248('0x95')](_[_0xb248('0x48')](_0xc5f1f2),['createdAt',_0xb248('0x97'),_0xb248('0xc8'),_0xb248('0xa6')]);if(_0xcd7da7['body']['id']){delete _0xcd7da7[_0xb248('0x5b')]['id'];}if(_['isNil'](_0xcd7da7[_0xb248('0x5b')][_0xb248('0x98')])){throw _0x117af2[_0xb248('0x29')](0x1f4)[_0xb248('0x3d')](new db[(_0xb248('0x92'))][(_0xb248('0x93'))]('from\x20is\x20mandatory'));}if(_[_0xb248('0x85')](_0xcd7da7[_0xb248('0x5b')][_0xb248('0x5b')])||_0xcd7da7[_0xb248('0x5b')]['body']===''){throw _0x117af2[_0xb248('0x29')](0x1f4)[_0xb248('0x3d')](new db[(_0xb248('0x92'))][(_0xb248('0x93'))]('body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0xb248('0x85')](_0xcd7da7[_0xb248('0x5b')]['mapKeyOffline'])){throw _0x117af2[_0xb248('0x29')](0x1f4)['send'](new db['Sequelize'][(_0xb248('0x93'))](_0xb248('0xc9')+_0xbb99d7));}if(!_[_0xb248('0x9c')](_0xbb99d7,_0xcd7da7[_0xb248('0x5b')][_0xb248('0xca')])){throw _0x117af2[_0xb248('0x29')](0x1f4)[_0xb248('0x3d')](new db['Sequelize'][(_0xb248('0x93'))](_0xb248('0xcb')+_0xbb99d7));}_0x2f114d[_0xcd7da7[_0xb248('0x5b')]['mapKeyOffline']]=_0xcd7da7['body']['from'];})['then'](function(){return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0xcd7da7[_0xb248('0x63')]['id']},'include':[{'model':db[_0xb248('0x9e')],'as':_0xb248('0x9f')},{'model':db['MailAccount'],'as':'MailAccount'}]});})[_0xb248('0x37')](handleEntityNotFound(_0x117af2,null))[_0xb248('0x37')](function(_0x3fbf22){if(_0x3fbf22&&_0x3fbf22['List']){_0x20f730=_0x3fbf22;var _0x77ca65=_[_0xb248('0xcc')](_0xcd7da7['body'],{'firstName':_0xcd7da7[_0xb248('0x5b')][_0xb248('0x98')],'phone':_0xcd7da7[_0xb248('0x5b')]['from'],'ListId':_0x3fbf22['ListId']});_0x77ca65[_0xcd7da7[_0xb248('0x5b')][_0xb248('0xca')]]=_0xcd7da7[_0xb248('0x5b')]['from'];return db[_0xb248('0x91')][_0xb248('0xcd')]({'where':_0x2f114d,'defaults':_0x77ca65});}})['spread'](function(_0x4068e2){if(_0x4068e2){_0x372440=_0x4068e2;var _0x1430a6=fs[_0xb248('0xce')](path[_0xb248('0x7b')](config[_0xb248('0x7c')],'server/files/templates/chatOfflineMessage.ejs'),'utf8');var _0xd8d240=ejs[_0xb248('0xcf')](_0x1430a6,{'body':_[_0xb248('0xd0')](_0xcd7da7[_0xb248('0x5b')]['body']),'bodyTitle':_0x20f730[_0xb248('0xd1')]});return db['ChatOfflineMessage']['create']({'body':_0xd8d240,'ContactId':_0x4068e2['id'],'ChatWebsiteId':_0x20f730['id']});}})[_0xb248('0x37')](function(_0x84d1a8){_0x2d3d86=_0x84d1a8;if(_0xe39844['length']){var _0x12d61b=_0xe39844['map'](function(_0x371bf5){return{'name':_0x371bf5[_0xb248('0xd2')],'basename':_0x371bf5[_0xb248('0x73')],'type':_0x371bf5[_0xb248('0xd3')],'ChatOfflineMessageId':_0x84d1a8['id']};});_0x2e8182=_0x12d61b[_0xb248('0x41')](_0x878684=>{var _0xce83a8={'filename':_0x878684[_0xb248('0x3c')],'path':path[_0xb248('0x7b')](config[_0xb248('0x7c')],_0xb248('0xd4'),_0xb248('0xd5'),_0xb248('0xd6'),_0xb248('0xd7'),_0x878684[_0xb248('0xd8')])};return _0xce83a8;});if(!_0x20f730[_0xb248('0xd9')]){return db[_0xb248('0xda')]['transaction'](function(_0x14e69a){return db['Attachment'][_0xb248('0xdb')](_0x12d61b,{'transaction':_0x14e69a});});}}})[_0xb248('0x37')](function(){if(_0x2d3d86){_0x2312a6=_0x2d3d86;return db[_0xb248('0xdc')][_0xb248('0x6f')]({'where':{'active':!![]},'include':[{'model':db[_0xb248('0xdd')],'as':'Smtp','raw':!![]}]});}})[_0xb248('0x37')](function(_0x4ff7d9){if(_0x4ff7d9&&_0x4ff7d9['Smtp']&&_0x20f730[_0xb248('0xde')]&&_0x20f730['forwardOfflineAddress']){var _0x219591={'tls':{'rejectUnauthorized':![]}};if(_0x4ff7d9[_0xb248('0xdf')][_0xb248('0xe0')]){_0x219591[_0xb248('0xe0')]=_0x4ff7d9[_0xb248('0xdf')][_0xb248('0xe0')];}else{_0x219591[_0xb248('0xe1')]=_0x4ff7d9[_0xb248('0xdf')]['host'];_0x219591[_0xb248('0xe2')]=_0x4ff7d9['Smtp']['port'];_0x219591[_0xb248('0xe3')]=_0x4ff7d9['Smtp'][_0xb248('0xe3')];}if(_0x4ff7d9['Smtp']['authentication']){_0x219591[_0xb248('0xe4')]={'user':_0x4ff7d9[_0xb248('0xdf')][_0xb248('0x5c')],'pass':_0x4ff7d9[_0xb248('0xdf')][_0xb248('0xe5')]};}return respondWithRpcPromise('SendMail',_0xb248('0xe6'),{'account':_0x219591,'message':{'from':util[_0xb248('0xb1')](_0xb248('0xe7'),_0x4ff7d9['name'],_0x4ff7d9[_0xb248('0xe8')]||_0x4ff7d9[_0xb248('0xdf')][_0xb248('0x5c')]),'to':_0x20f730[_0xb248('0xe9')],'subject':_0x20f730['offlineMessageSubject'],'html':_0x2312a6[_0xb248('0x5b')],'attachments':_0x2e8182}},client9003)[_0xb248('0x37')](function(){return _0x2312a6;})[_0xb248('0x28')](function(_0x17c738){console['error'](_0x17c738);});}})[_0xb248('0x37')](function(){if(_0x20f730&&_0x20f730[_0xb248('0xd9')]&&_0x20f730[_0xb248('0xea')]){var _0x1b30f1=[];if(_0xe39844['length']){_0x1b30f1=_0xe39844[_0xb248('0x41')](function(_0x4539dd){return{'name':_0x4539dd[_0xb248('0xd2')],'basename':_0x4539dd[_0xb248('0x73')],'type':_0x4539dd[_0xb248('0xd3')],'ChatOfflineMessageId':_0x2d3d86['id']};});}var _0xf2fd11;if(!_['isNil'](_0x20f730[_0xb248('0xeb')])){var _0x4a3413=_[_0xb248('0x41')](_0xcd7da7[_0xb248('0x5b')],function(_0x4496d8){return _0x4496d8;});var _0xbc99f7=_['toPairsIn'](_0x4a3413)[0x0];var _0x272314=_[_0xb248('0xec')](_0xbc99f7,function(_0x5884df){return _0x5884df;});_0xf2fd11=_0x272314[0x1][_0x20f730[_0xb248('0xeb')]];}var _0x4b2d2d={'from':_0x372440[_0xb248('0xe8')],'firstName':_0x372440[_0xb248('0xed')],'lastName':_0x372440[_0xb248('0xab')],'mapKey':'email','message':{'from':_0x372440[_0xb248('0xe8')],'to':_0x20f730[_0xb248('0xdc')][_0xb248('0xe8')],'cc':'','subject':_[_0xb248('0x85')](_0xf2fd11)?_0x20f730[_0xb248('0xee')]:_0xf2fd11,'messageId':'','sentAt':new Date(),'attach':_0x1b30f1[_0xb248('0x4b')],'attachments':_0x1b30f1,'originChannel':_0xb248('0xef'),'ChatWebsiteId':_0x20f730['id'],'ChatOfflineMessageId':_0x2312a6['id'],'originTo':_0x20f730[_0xb248('0xdc')][_0xb248('0xe8')]},'body':_0x2312a6[_0xb248('0x5b')]};var _0x2b1644={'account':{'id':_0x20f730[_0xb248('0xea')]},'body':_0x4b2d2d,'log':_0xb248('0xf0')};return respondWithRpcPromise(_0xb248('0xf0'),_0xb248('0xf1'),_0x2b1644,client9001)[_0xb248('0x37')](function(){return _0x2312a6;})[_0xb248('0x28')](function(_0x43c543){console[_0xb248('0x24')](_0x43c543);});}return;})[_0xb248('0x37')](function(){if(_0x2312a6){return _0x2312a6;}})[_0xb248('0x37')](respondWithResult(_0x117af2,null))[_0xb248('0x28')](function(_0x5dfac4){console['error']('catch',_0x5dfac4);for(var _0x3a0eb4 of _0xe39844){var _0x17dba0=path[_0xb248('0x7b')](config[_0xb248('0x7c')],'server','files',_0xb248('0xd6'),_0xb248('0xd7'),_0x3a0eb4[_0xb248('0x73')]);fs_extra[_0xb248('0xf2')](_0x17dba0)[_0xb248('0x28')](function(_0x2a7f46){console[_0xb248('0x24')]('Could\x20not\x20remove\x20attachment\x20file',_0x17dba0,_0x2a7f46);});}});};exports[_0xb248('0xf3')]=function(_0x4b8c2b,_0x1e34e9,_0x854303){return db[_0xb248('0xb5')][_0xb248('0x59')]({'where':{'id':_0x4b8c2b[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x1e34e9,null))[_0xb248('0x37')](function(_0x53118e){if(_0x53118e){return _0x53118e['addInteraction'](_0x4b8c2b[_0xb248('0x5b')][_0xb248('0x71')],_[_0xb248('0xf4')](_0x4b8c2b[_0xb248('0x5b')],[_0xb248('0x71'),'id'])||{});}})[_0xb248('0x37')](respondWithResult(_0x1e34e9,null))[_0xb248('0x28')](handleError(_0x1e34e9,null));};exports[_0xb248('0xf5')]=function(_0x159de8,_0xeda1b5,_0x5bba43){var _0x5ce553={'raw':![],'where':{}};var _0x47f17b={};var _0x35c5a6={'count':0x0,'rows':[]};return db[_0xb248('0x42')]['findOne']({'where':{'id':_0x159de8['params']['id']}})[_0xb248('0x37')](handleEntityNotFound(_0xeda1b5,null))[_0xb248('0x37')](function(_0x3929a4){if(_0x3929a4){_0x47f17b[_0xb248('0x46')]=_[_0xb248('0x48')](db['ChatInteraction']['rawAttributes']);_0x47f17b[_0xb248('0x47')]=_['keys'](_0x159de8[_0xb248('0x47')]);_0x47f17b[_0xb248('0x50')]=_['intersection'](_0x47f17b[_0xb248('0x46')],_0x47f17b[_0xb248('0x47')]);_0x5ce553[_0xb248('0x4a')]=_[_0xb248('0x49')](_0x47f17b[_0xb248('0x46')],qs[_0xb248('0x58')](_0x159de8['query']['fields']));_0x5ce553[_0xb248('0x4a')]=_0x5ce553[_0xb248('0x4a')][_0xb248('0x4b')]?_0x5ce553[_0xb248('0x4a')]:_0x47f17b[_0xb248('0x46')];if(!_0x159de8['query'][_0xb248('0x4c')](_0xb248('0x68'))){_0x5ce553[_0xb248('0x2e')]=qs[_0xb248('0x2e')](_0x159de8[_0xb248('0x47')][_0xb248('0x2e')]);_0x5ce553[_0xb248('0x2c')]=qs[_0xb248('0x2c')](_0x159de8['query']['offset']);}_0x5ce553['order']=qs['sort'](_0x159de8[_0xb248('0x47')][_0xb248('0x4d')]);_0x5ce553[_0xb248('0x4e')]=qs[_0xb248('0x50')](_[_0xb248('0x4f')](_0x159de8[_0xb248('0x47')],_0x47f17b['filters']));_0x5ce553[_0xb248('0x4e')][_0xb248('0x65')]=_0x3929a4['id'];if(_0x159de8['query'][_0xb248('0x53')]){_0x5ce553[_0xb248('0x4e')]=_[_0xb248('0x51')](_0x5ce553['where'],{'$or':_[_0xb248('0x41')](_0x5ce553[_0xb248('0x4a')],function(_0x3cf500){var _0x3c2563={};_0x3c2563[_0x3cf500]={'$like':'%'+_0x159de8[_0xb248('0x47')][_0xb248('0x53')]+'%'};return _0x3c2563;})});}_0x5ce553=_[_0xb248('0x51')]({},_0x5ce553,_0x159de8[_0xb248('0x54')]);return db[_0xb248('0xb5')][_0xb248('0x2f')]({'where':_0x5ce553['where']})[_0xb248('0x37')](function(_0x15b237){_0x35c5a6['count']=_0x15b237;if(_0x159de8[_0xb248('0x47')][_0xb248('0x6a')]){_0x5ce553[_0xb248('0x55')]=[{'model':db['CmContact'],'as':'Contact','required':![]},{'model':db[_0xb248('0xc2')],'as':_0xb248('0xf6'),'attributes':[_0xb248('0x3c'),_0xb248('0xf7'),'internal'],'required':![]},{'model':db[_0xb248('0xf8')],'as':_0xb248('0xf9'),'attributes':['id',_0xb248('0x3c'),_0xb248('0xfa')],'where':_0x159de8[_0xb248('0x47')][_0xb248('0xfb')]?{'id':_0x159de8[_0xb248('0x47')][_0xb248('0xfb')]}:undefined,'required':_0x159de8['query'][_0xb248('0xfb')]?!![]:![]}];}return db[_0xb248('0xb5')][_0xb248('0x6b')](_0x5ce553);})[_0xb248('0x37')](function(_0x297b4e){_0x35c5a6[_0xb248('0x56')]=_0x297b4e;return _0x35c5a6;});}})[_0xb248('0x37')](respondWithFilteredResult(_0xeda1b5,_0x5ce553))[_0xb248('0x28')](handleError(_0xeda1b5,null));};function iftimePromise(_0x5bb6b6,_0x1d3ac1){return respondWithRpcPromise('Command','getSnippet',{'command':_0x1d3ac1[_0xb248('0xfc')]?util[_0xb248('0xb1')](_0xb248('0xfd'),_0x5bb6b6['interval'],_0x1d3ac1[_0xb248('0xfc')]):util[_0xb248('0xb1')](_0xb248('0xfe'),_0x5bb6b6[_0xb248('0xff')])},client9002)[_0xb248('0x37')](function(_0x266326){var _0x3bba7f=_0x266326&&_0x266326[_0xb248('0x100')](_0xb248('0x101'))>=0x0?!![]:![];logger['info'](_0xb248('0x102'),_0x1d3ac1['id'],_0x5bb6b6['id'],_0x5bb6b6[_0xb248('0xff')],_0x3bba7f?_0xb248('0x103'):'OFFLINE',_0x1d3ac1[_0xb248('0xfc')]?_0x1d3ac1[_0xb248('0xfc')]:_0xb248('0x104'));return _0x3bba7f;})['catch'](function(_0x1d36a2){logger['error'](_0xb248('0x102'),_0x1d3ac1['id'],_0x5bb6b6['id'],_0x5bb6b6[_0xb248('0xff')],util[_0xb248('0x105')](_0x1d36a2,{'showHidden':![],'depth':null}),_0x1d3ac1[_0xb248('0xfc')]?_0x1d3ac1[_0xb248('0xfc')]:_0xb248('0x104'));return![];});}exports[_0xb248('0x106')]=function(_0x3070e8,_0x19c1f6,_0x598910){var _0x426fdb=0x0;var _0x330da5=0x0;var _0x4930e5=![];var _0x39dd2a;var _0x4e2411;return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0x3070e8[_0xb248('0x63')]['id']},'include':[{'model':db['Interval'],'as':_0xb248('0x107'),'include':[{'model':db['Interval'],'as':_0xb248('0x108'),'attributes':['id',_0xb248('0xff')],'raw':!![]}]}]})[_0xb248('0x37')](handleEntityNotFound(_0x19c1f6,null))[_0xb248('0x37')](function(_0xaf1567){if(_0xaf1567){_0x39dd2a=_0xaf1567;return _0xaf1567['getProactiveActions']({'raw':!![]});}})[_0xb248('0x37')](function(_0x2d316e){if(_0x39dd2a){if(_0x2d316e){_0x4e2411=_0x2d316e;}}return require(_0xb248('0x7e'))['getLicense']();})[_0xb248('0x37')](function(_0x3a1197){if(_0x3a1197){_0x330da5=_0x3a1197['virtual'];_0x4930e5=_0x3a1197[_0xb248('0x80')];}})['then'](function(){return db[_0xb248('0xb5')][_0xb248('0x2f')]({'where':{'closed':![]}});})['then'](function(_0x2b1434){_0x426fdb=_0x2b1434;if(_0x330da5&&_0x2b1434>_0x330da5){return db[_0xb248('0x109')][_0xb248('0x6f')]({'where':{'id':0x1}})[_0xb248('0x37')](function(_0x1419bd){if(_0x1419bd){_0x1419bd[_0xb248('0x10a')](_0xb248('0x10b'));}});}})[_0xb248('0x37')](function(){if(_0x39dd2a['Interval']&&_0x39dd2a['Interval'][_0xb248('0x108')]){var _0x34c116=[];for(var _0x4de84d=0x0;_0x4de84d<_0x39dd2a[_0xb248('0x107')]['Intervals'][_0xb248('0x4b')];_0x4de84d++){var _0x2d68f5=_0x39dd2a[_0xb248('0x107')][_0xb248('0x108')][_0x4de84d][_0xb248('0x38')]({'plain':!![]});_0x34c116['push'](iftimePromise(_0x2d68f5,_0x39dd2a));}return BPromise[_0xb248('0x10c')](_0x34c116)[_0xb248('0x37')](function(_0x17df3b){return _[_0xb248('0x10d')](_0x17df3b);});}else{return!![];}})[_0xb248('0x37')](function(_0x529905){var _0x100621=fs['readFileSync'](path['join'](config[_0xb248('0x7c')],_0xb248('0x10e')),'utf8');var _0x322c1a={'remote':_0x39dd2a[_0xb248('0x10f')],'query':querystring[_0xb248('0x23')](_[_0xb248('0x51')](_0x39dd2a[_0xb248('0x38')]({'plain':!![]}),{'customerIp':_0x3070e8[_0xb248('0x8e')][_0xb248('0xa9')]||_0x3070e8[_0xb248('0x8e')][_0xb248('0x110')]||_0x3070e8[_0xb248('0x111')]['remoteAddress']||_0x3070e8['ip'],'referer':_0x3070e8['headers'][_0xb248('0xac')],'openedInteractions':_0x426fdb,'maxInteractions':_0x330da5,'virtual':_0x4930e5['virtual'],'online':_0x529905,'custom':_0x4930e5}))[_0xb248('0x112')](/'/g,'\x5c\x27')};_0x19c1f6['send'](ejs[_0xb248('0xcf')](Mustache[_0xb248('0xcf')](_0x100621,_0x322c1a),{'proactiveActions':_0x4e2411,'alignment':_0x39dd2a[_0xb248('0x113')],'verticalAlignment':_0x39dd2a[_0xb248('0x114')],'div_color':_0x39dd2a[_0xb248('0xfa')],'text_color':_0x39dd2a[_0xb248('0x115')],'button_color':_0x39dd2a['color_button'],'background_color':_0x39dd2a[_0xb248('0x116')]}));})[_0xb248('0x28')](handleError(_0x19c1f6,null));};exports[_0xb248('0x117')]=function(_0x4bafec,_0x3ee000,_0x5872c7){return db[_0xb248('0x42')][_0xb248('0x6f')]({'where':{'id':_0x4bafec[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x3ee000,null))[_0xb248('0x37')](function(_0x510c16){if(_0x510c16){return db[_0xb248('0xda')][_0xb248('0x118')](function(_0x4b8a1e){return db['ChatApplication']['destroy']({'where':{'ChatWebsiteId':_0x4bafec[_0xb248('0x63')]['id']},'transaction':_0x4b8a1e})[_0xb248('0x37')](function(_0x37a1c2){var _0x5162d0=_['map'](_0x4bafec[_0xb248('0x5b')],function(_0xbc9b8d){_0xbc9b8d['ChatWebsiteId']=_0x4bafec[_0xb248('0x63')]['id'];return _0xbc9b8d;});return db[_0xb248('0x119')][_0xb248('0xdb')](_0x5162d0,{'transaction':_0x4b8a1e});});})[_0xb248('0x37')](function(){return db['ChatApplication'][_0xb248('0x11a')]({'where':{'ChatWebsiteId':_0x4bafec[_0xb248('0x63')]['id']},'order':'priority'});});}})[_0xb248('0x37')](respondWithResult(_0x3ee000,null))['catch'](handleError(_0x3ee000,null));};exports[_0xb248('0x11b')]=function(_0x1a9f17,_0x4271f7,_0x1101ac){var _0x17e7e0={};var _0x235c3f={};var _0xd90666;var _0x2147ab;return db[_0xb248('0x42')][_0xb248('0x6f')]({'where':{'id':_0x1a9f17['params']['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x4271f7,null))[_0xb248('0x37')](function(_0x2a46c9){if(_0x2a46c9){_0xd90666=_0x2a46c9;_0x235c3f['model']=_[_0xb248('0x48')](db[_0xb248('0x119')][_0xb248('0x43')]);_0x235c3f['query']=_[_0xb248('0x48')](_0x1a9f17[_0xb248('0x47')]);_0x235c3f['filters']=_[_0xb248('0x49')](_0x235c3f[_0xb248('0x46')],_0x235c3f[_0xb248('0x47')]);_0x17e7e0[_0xb248('0x4a')]=_[_0xb248('0x49')](_0x235c3f[_0xb248('0x46')],qs['fields'](_0x1a9f17[_0xb248('0x47')]['fields']));_0x17e7e0['attributes']=_0x17e7e0['attributes'][_0xb248('0x4b')]?_0x17e7e0[_0xb248('0x4a')]:_0x235c3f[_0xb248('0x46')];_0x17e7e0['order']=qs[_0xb248('0x4d')](_0x1a9f17['query'][_0xb248('0x4d')]);_0x17e7e0['where']=qs[_0xb248('0x50')](_[_0xb248('0x4f')](_0x1a9f17[_0xb248('0x47')],_0x235c3f['filters']));if(_0x1a9f17[_0xb248('0x47')]['filter']){_0x17e7e0[_0xb248('0x4e')]=_[_0xb248('0x51')](_0x17e7e0[_0xb248('0x4e')],{'$or':_['map'](_0x17e7e0[_0xb248('0x4a')],function(_0x363780){var _0x3522d1={};_0x3522d1[_0x363780]={'$like':'%'+_0x1a9f17['query'][_0xb248('0x53')]+'%'};return _0x3522d1;})});}_0x17e7e0=_[_0xb248('0x51')]({},_0x17e7e0,_0x1a9f17[_0xb248('0x54')]);return _0xd90666[_0xb248('0x11b')](_0x17e7e0);}})[_0xb248('0x37')](function(_0x54a67e){if(_0x54a67e){_0x2147ab=_0x54a67e[_0xb248('0x4b')];if(!_0x1a9f17[_0xb248('0x47')][_0xb248('0x4c')](_0xb248('0x68'))){_0x17e7e0[_0xb248('0x2e')]=qs[_0xb248('0x2e')](_0x1a9f17[_0xb248('0x47')][_0xb248('0x2e')]);_0x17e7e0[_0xb248('0x2c')]=qs[_0xb248('0x2c')](_0x1a9f17['query'][_0xb248('0x2c')]);}return _0xd90666['getApplications'](_0x17e7e0);}})['then'](function(_0x4c5368){if(_0x4c5368){return _0x4c5368?{'count':_0x2147ab,'rows':_0x4c5368}:null;}})[_0xb248('0x37')](respondWithResult(_0x4271f7,null))[_0xb248('0x28')](handleError(_0x4271f7,null));};exports[_0xb248('0x11c')]=function(_0x47d0c0,_0x5deb81,_0x3d2ccc){return db[_0xb248('0x11d')]['find']({'where':{'id':_0x47d0c0['params']['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x5deb81,null))['then'](function(_0x5a9c8a){if(_0x5a9c8a){return _0x5a9c8a[_0xb248('0x11c')](_0x47d0c0[_0xb248('0x5b')][_0xb248('0x71')],_['omit'](_0x47d0c0[_0xb248('0x5b')],[_0xb248('0x71'),'id'])||{});}})[_0xb248('0x37')](respondWithResult(_0x5deb81,null))['catch'](handleError(_0x5deb81,null));};exports['getProactiveActions']=function(_0xc2db15,_0x2dc3ee,_0x14d9b5){var _0x53884a={};var _0x1f167d={};var _0x120109;var _0x3886f5;return db[_0xb248('0x42')]['findOne']({'where':{'id':_0xc2db15['params']['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x2dc3ee,null))[_0xb248('0x37')](function(_0x26ab89){if(_0x26ab89){_0x120109=_0x26ab89;_0x1f167d[_0xb248('0x46')]=_[_0xb248('0x48')](db[_0xb248('0x11e')][_0xb248('0x43')]);_0x1f167d['query']=_['keys'](_0xc2db15[_0xb248('0x47')]);_0x1f167d['filters']=_[_0xb248('0x49')](_0x1f167d[_0xb248('0x46')],_0x1f167d['query']);_0x53884a[_0xb248('0x4a')]=_['intersection'](_0x1f167d[_0xb248('0x46')],qs['fields'](_0xc2db15['query']['fields']));_0x53884a[_0xb248('0x4a')]=_0x53884a['attributes'][_0xb248('0x4b')]?_0x53884a[_0xb248('0x4a')]:_0x1f167d['model'];_0x53884a[_0xb248('0x69')]=qs[_0xb248('0x4d')](_0xc2db15[_0xb248('0x47')][_0xb248('0x4d')]);_0x53884a['where']=qs[_0xb248('0x50')](_[_0xb248('0x4f')](_0xc2db15[_0xb248('0x47')],_0x1f167d[_0xb248('0x50')]));if(_0xc2db15['query'][_0xb248('0x53')]){_0x53884a[_0xb248('0x4e')]=_[_0xb248('0x51')](_0x53884a['where'],{'$or':_[_0xb248('0x41')](_0x53884a[_0xb248('0x4a')],function(_0x1a420b){var _0x580c7d={};_0x580c7d[_0x1a420b]={'$like':'%'+_0xc2db15[_0xb248('0x47')][_0xb248('0x53')]+'%'};return _0x580c7d;})});}_0x53884a=_[_0xb248('0x51')]({},_0x53884a,_0xc2db15['options']);return _0x120109[_0xb248('0x11f')](_0x53884a);}})[_0xb248('0x37')](function(_0xbd0af6){if(_0xbd0af6){_0x3886f5=_0xbd0af6[_0xb248('0x4b')];if(!_0xc2db15[_0xb248('0x47')][_0xb248('0x4c')](_0xb248('0x68'))){_0x53884a[_0xb248('0x2e')]=qs[_0xb248('0x2e')](_0xc2db15[_0xb248('0x47')][_0xb248('0x2e')]);_0x53884a[_0xb248('0x2c')]=qs[_0xb248('0x2c')](_0xc2db15['query']['offset']);}return _0x120109[_0xb248('0x11f')](_0x53884a);}})[_0xb248('0x37')](function(_0xdbb38f){if(_0xdbb38f){return _0xdbb38f?{'count':_0x3886f5,'rows':_0xdbb38f}:null;}})[_0xb248('0x37')](respondWithResult(_0x2dc3ee,null))[_0xb248('0x28')](handleError(_0x2dc3ee,null));};exports[_0xb248('0x120')]=function(_0x123c3b,_0x539cbd,_0x260b07){var _0x33d47c=_0x123c3b[_0xb248('0x47')]['online']===_0xb248('0x121')?_0xb248('0x122'):_0xb248('0x123');return db['ChatWebsite'][_0xb248('0x59')]({'attributes':['id',_0x33d47c],'where':{'id':_0x123c3b['params']['id']}})['then'](handleEntityNotFound(_0x539cbd,null))[_0xb248('0x37')](function(_0x412114){if(_0x412114){var _0x35a415=_0x412114[_0x33d47c];var _0x45081e=_0x35a415&&_0x35a415[_0xb248('0x124')]?_0x35a415[_0xb248('0x124')]:[];_0x539cbd[_0xb248('0x3d')]({'fromKey':_['isNil'](_0x35a415[_0xb248('0x125')])?undefined:_0x35a415[_0xb248('0x125')],'count':_0x45081e['length'],'rows':_0x45081e});}})['catch'](handleError(_0x539cbd,null));};exports[_0xb248('0x126')]=function(_0x2b291f,_0x508d41,_0x48f945){var _0x258ed7={'raw':![],'where':{}};var _0x3863a8={};var _0x265ba3={'count':0x0,'rows':[]};return db['ChatWebsite'][_0xb248('0x6f')]({'where':{'id':_0x2b291f[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x508d41,null))[_0xb248('0x37')](function(_0x19b20d){if(_0x19b20d){_0x3863a8[_0xb248('0x46')]=_['keys'](db['ChatOfflineMessage'][_0xb248('0x43')]);_0x3863a8[_0xb248('0x47')]=_[_0xb248('0x48')](_0x2b291f['query']);_0x3863a8[_0xb248('0x50')]=_[_0xb248('0x49')](_0x3863a8[_0xb248('0x46')],_0x3863a8['query']);_0x258ed7[_0xb248('0x4a')]=_[_0xb248('0x49')](_0x3863a8[_0xb248('0x46')],qs['fields'](_0x2b291f[_0xb248('0x47')][_0xb248('0x58')]));_0x258ed7[_0xb248('0x4a')]=_0x258ed7[_0xb248('0x4a')][_0xb248('0x4b')]?_0x258ed7[_0xb248('0x4a')]:_0x3863a8['model'];if(!_0x2b291f[_0xb248('0x47')][_0xb248('0x4c')](_0xb248('0x68'))){_0x258ed7['limit']=qs[_0xb248('0x2e')](_0x2b291f[_0xb248('0x47')][_0xb248('0x2e')]);_0x258ed7[_0xb248('0x2c')]=qs[_0xb248('0x2c')](_0x2b291f['query'][_0xb248('0x2c')]);}_0x258ed7[_0xb248('0x69')]=qs[_0xb248('0x4d')](_0x2b291f[_0xb248('0x47')]['sort']);_0x258ed7[_0xb248('0x4e')]=qs[_0xb248('0x50')](_[_0xb248('0x4f')](_0x2b291f[_0xb248('0x47')],_0x3863a8[_0xb248('0x50')]));_0x258ed7[_0xb248('0x4e')][_0xb248('0x65')]=_0x19b20d['id'];if(_0x2b291f[_0xb248('0x47')][_0xb248('0x53')]){_0x258ed7[_0xb248('0x4e')]=_[_0xb248('0x51')](_0x258ed7[_0xb248('0x4e')],{'$or':_['map'](_0x258ed7[_0xb248('0x4a')],function(_0x2afaea){var _0x2df0a4={};_0x2df0a4[_0x2afaea]={'$like':'%'+_0x2b291f['query']['filter']+'%'};return _0x2df0a4;})});}_0x258ed7=_[_0xb248('0x51')]({},_0x258ed7,_0x2b291f['options']);return db[_0xb248('0x127')]['count']({'where':_0x258ed7[_0xb248('0x4e')]})[_0xb248('0x37')](function(_0x5d41e0){_0x265ba3[_0xb248('0x2f')]=_0x5d41e0;if(_0x2b291f[_0xb248('0x47')][_0xb248('0x6a')]){_0x258ed7[_0xb248('0x55')]=[{'all':!![]}];}else{_0x258ed7[_0xb248('0x55')]=[{'model':db['CmContact'],'as':_0xb248('0x128'),'required':![]},{'model':db['Attachment'],'as':_0xb248('0x129'),'required':![]}];}return db[_0xb248('0x127')][_0xb248('0x6b')](_0x258ed7);})[_0xb248('0x37')](function(_0x2b1844){_0x265ba3[_0xb248('0x56')]=_0x2b1844;return _0x265ba3;});}})[_0xb248('0x37')](respondWithFilteredResult(_0x508d41,_0x258ed7))['catch'](handleError(_0x508d41,null));};exports['addAgents']=function(_0x2ef3b4,_0xab6cd6,_0xcd4415){return db['ChatWebsite'][_0xb248('0x59')]({'where':{'id':_0x2ef3b4[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0xab6cd6,null))[_0xb248('0x37')](function(_0x4b3c74){if(_0x4b3c74){return _0x4b3c74[_0xb248('0x12a')](_0x2ef3b4['body'][_0xb248('0x71')],_[_0xb248('0xf4')](_0x2ef3b4[_0xb248('0x5b')],[_0xb248('0x71'),'id'])||{})['spread'](function(_0x5b1904){for(var _0x3f8679=0x0;_0x3f8679<_0x2ef3b4[_0xb248('0x5b')][_0xb248('0x71')][_0xb248('0x4b')];_0x3f8679+=0x1){socket['emit'](_0xb248('0x12b'),{'UserId':Number(_0x2ef3b4[_0xb248('0x5b')][_0xb248('0x71')][_0x3f8679]),'ChatWebsiteId':Number(_0x2ef3b4[_0xb248('0x63')]['id'])});}return _0x5b1904;});}})[_0xb248('0x37')](respondWithResult(_0xab6cd6,null))[_0xb248('0x28')](handleError(_0xab6cd6,null));};exports[_0xb248('0x12c')]=function(_0x2aa116,_0x204a65,_0xa0af45){return db[_0xb248('0x42')][_0xb248('0x59')]({'where':{'id':_0x2aa116[_0xb248('0x63')]['id']}})[_0xb248('0x37')](handleEntityNotFound(_0x204a65,null))[_0xb248('0x37')](function(_0x57073f){if(_0x57073f){return _0x57073f[_0xb248('0x12c')](_0x2aa116[_0xb248('0x47')][_0xb248('0x71')])[_0xb248('0x37')](function(){if(_['isArray'](_0x2aa116[_0xb248('0x47')][_0xb248('0x71')])){for(var _0x4d4640=0x0;_0x4d4640<_0x2aa116[_0xb248('0x47')][_0xb248('0x71')]['length'];_0x4d4640+=0x1){socket[_0xb248('0x12d')](_0xb248('0x12e'),{'UserId':Number(_0x2aa116['query']['ids'][_0x4d4640]),'ChatWebsiteId':Number(_0x2aa116[_0xb248('0x63')]['id'])});}}else{socket[_0xb248('0x12d')](_0xb248('0x12e'),{'UserId':Number(_0x2aa116['query'][_0xb248('0x71')]),'ChatWebsiteId':Number(_0x2aa116[_0xb248('0x63')]['id'])});}});}})[_0xb248('0x37')](respondWithStatusCode(_0x204a65,null))[_0xb248('0x28')](handleError(_0x204a65,null));};exports[_0xb248('0x12f')]=function(_0x438180,_0x18945d,_0x3cfbb7){var _0x360224={};var _0x2d5d51={};var _0x49101f;var _0x26e704;return db[_0xb248('0x42')][_0xb248('0x6f')]({'where':{'id':_0x438180[_0xb248('0x63')]['id']}})['then'](handleEntityNotFound(_0x18945d,null))['then'](function(_0x26b593){if(_0x26b593){_0x49101f=_0x26b593;_0x2d5d51['model']=_[_0xb248('0x48')](db[_0xb248('0xc2')][_0xb248('0x43')]);_0x2d5d51[_0xb248('0x47')]=_[_0xb248('0x48')](_0x438180[_0xb248('0x47')]);_0x2d5d51[_0xb248('0x50')]=_[_0xb248('0x49')](_0x2d5d51[_0xb248('0x46')],_0x2d5d51[_0xb248('0x47')]);_0x360224[_0xb248('0x4a')]=_[_0xb248('0x49')](_0x2d5d51[_0xb248('0x46')],qs['fields'](_0x438180[_0xb248('0x47')][_0xb248('0x58')]));_0x360224[_0xb248('0x4a')]=_0x360224[_0xb248('0x4a')]['length']?_0x360224[_0xb248('0x4a')]:_0x2d5d51['model'];_0x360224[_0xb248('0x69')]=qs[_0xb248('0x4d')](_0x438180['query'][_0xb248('0x4d')]);_0x360224['where']=qs['filters'](_[_0xb248('0x4f')](_0x438180[_0xb248('0x47')],_0x2d5d51[_0xb248('0x50')]));if(_0x438180[_0xb248('0x47')][_0xb248('0x53')]){_0x360224['where']=_['merge'](_0x360224[_0xb248('0x4e')],{'$or':_[_0xb248('0x41')](_0x360224[_0xb248('0x4a')],function(_0x2ed625){var _0x5ee12e={};_0x5ee12e[_0x2ed625]={'$like':'%'+_0x438180['query'][_0xb248('0x53')]+'%'};return _0x5ee12e;})});}_0x360224=_['merge']({},_0x360224,_0x438180[_0xb248('0x54')]);return _0x49101f[_0xb248('0x12f')](_0x360224);}})[_0xb248('0x37')](function(_0x47efad){if(_0x47efad){_0x26e704=_0x47efad['length'];if(!_0x438180['query']['hasOwnProperty'](_0xb248('0x68'))){_0x360224[_0xb248('0x2e')]=qs['limit'](_0x438180['query'][_0xb248('0x2e')]);_0x360224['offset']=qs[_0xb248('0x2c')](_0x438180[_0xb248('0x47')][_0xb248('0x2c')]);}return _0x49101f['getAgents'](_0x360224);}})[_0xb248('0x37')](function(_0x2c3443){if(_0x2c3443){return _0x2c3443?{'count':_0x26e704,'rows':_0x2c3443}:null;}})[_0xb248('0x37')](respondWithResult(_0x18945d,null))['catch'](handleError(_0x18945d,null));};
\ No newline at end of file
+var _0x29a4=['addAgents','emit','removeAgents','isArray','getAgents','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./chatWebsite.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatWebsite,\x20%s,\x20%s','message','result','end','status','json','offset','undefined','count','limit','set','apply','reject','update','destroy','get','ChatWebsites','sendStatus','name','send','index','Pause','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','nolimit','sort','pick','filters','where','merge','VIRTUAL','filter','options','findAll','rows','catch','show','params','length','includeAll','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','ChatWebsiteId','getDispositions','findOne','Disposition','hasOwnProperty','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','order','addLogo','sitepic','filename','addAvatar','agentAvatar','file','addCustomerAvatar','addSystemAvatar','getLogo','join','root','server/files/images/logos/default_logo.svg','../../config/license/util','getLicense','custom','isNil','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','server/files/images/avatars/','getCustomerAvatar','customerAvatar','showCustomerAvatar','existsSync','getSystemAvatar','server/files/images/avatars/system_avatar.png','systemAvatar','user-agent-parser','setUA','headers','chat','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','CmList','List','ChatApplication','Applications','account','list','applications','orderBy','asc','Contacts','contact','x-forwarded-for','first','lastName','x-real-port','referer','browser','version','format','%s\x20%s','unknown','device','vendor','%s\x20%s\x20%s','ChatInteraction','threadId','externalUrl','interaction','spread','messageId','created','autoclose','push','unmanaged','ChatMessage','AttachmentId','User','UserId','unshift','agent','waitForTheAssignedAgent','*,*,*,*','forcedOwnership','Start','startRouting','EventManager','offline','files','CompanyId','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline','MailAccount','findOrCreate','readFileSync','server/files/templates/chatOfflineMessage.ejs','utf8','toPairs','ChatOfflineMessage','originalname','mimetype','server','attachments','offline-chat','basename','sequelize','Attachment','bulkCreate','MailServerOut','Smtp','forwardOfflineAddress','service','host','port','secure','authentication','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','email','openNewInteraction','MailAccountId','subjectOffline','toPairsIn','mapValues','firstName','offlineMessageSubject','Chat','NotifyMailAccount','notifyMail','remove','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','Owner','internal','Tag','Tags','color','tag','Command','timezone','iftime\x20%s,%s','interval','iftime\x20%s','indexOf','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','ONLINE','OFFLINE','inspect','No\x20timezone','getSnippet','Interval','Intervals','getProactiveActions','License','increment','chatLicenseExceeded','all','some','server/files/chat/iframe.ejs','x-real-ip','connection','remoteAddress','virtual','replace','backgroundColor','addApplications','transaction','priority','getApplications','addProactiveActions','chatProactiveAction','getFields','false','offlineForm','onlineForm','items','fromKey','getOfflineMessages','Contact','Attachments'];(function(_0x323b00,_0x2c5ae8){var _0x4c39dd=function(_0x5590dc){while(--_0x5590dc){_0x323b00['push'](_0x323b00['shift']());}};_0x4c39dd(++_0x2c5ae8);}(_0x29a4,0x139));var _0x429a=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x29a4[_0x21a9d9];return _0x46adce;};'use strict';var emlformat=require(_0x429a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x429a('0x1'));var jsonpatch=require(_0x429a('0x2'));var rp=require('request-promise');var moment=require(_0x429a('0x3'));var BPromise=require(_0x429a('0x4'));var Mustache=require(_0x429a('0x5'));var util=require(_0x429a('0x6'));var path=require('path');var sox=require(_0x429a('0x7'));var csv=require(_0x429a('0x8'));var ejs=require(_0x429a('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x429a('0xa'));var squel=require(_0x429a('0xb'));var crypto=require(_0x429a('0xc'));var jsforce=require(_0x429a('0xd'));var deskjs=require(_0x429a('0xe'));var toCsv=require('to-csv');var querystring=require(_0x429a('0xf'));var Papa=require(_0x429a('0x10'));var Redis=require(_0x429a('0x11'));var authService=require(_0x429a('0x12'));var qs=require(_0x429a('0x13'));var as=require(_0x429a('0x14'));var hardwareService=require(_0x429a('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x429a('0x16'));var config=require(_0x429a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x429a('0x18'))['db'];config[_0x429a('0x19')]=_[_0x429a('0x1a')](config[_0x429a('0x19')],{'host':_0x429a('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x429a('0x19')]));require(_0x429a('0x1c'))[_0x429a('0x1d')](socket);var jayson=require(_0x429a('0x1e'));var client=jayson[_0x429a('0x1f')][_0x429a('0x20')]({'port':0x232c});var client9002=jayson[_0x429a('0x1f')]['http']({'port':0x232a});var client9003=jayson[_0x429a('0x1f')][_0x429a('0x20')]({'port':0x232b});var client9001=jayson['client'][_0x429a('0x20')]({'port':0x2329});function respondWithRpcPromise(_0x547478,_0x57bdda,_0x24f0e6,_0x16f872){return new BPromise(function(_0x55586a,_0x198362){var _0x2032fe=_0x16f872||client;return _0x2032fe[_0x429a('0x21')](_0x547478,_0x24f0e6)[_0x429a('0x22')](function(_0x4a413e){logger[_0x429a('0x23')]('ChatWebsite,\x20%s,\x20%s',_0x57bdda,_0x429a('0x24'));logger[_0x429a('0x25')](_0x429a('0x26'),_0x57bdda,_0x429a('0x24'),JSON[_0x429a('0x27')](_0x4a413e));if(_0x4a413e[_0x429a('0x28')]){if(_0x4a413e[_0x429a('0x28')][_0x429a('0x29')]===0x1f4){logger[_0x429a('0x28')](_0x429a('0x2a'),_0x57bdda,_0x4a413e[_0x429a('0x28')][_0x429a('0x2b')]);return _0x198362(_0x4a413e[_0x429a('0x28')][_0x429a('0x2b')]);}logger[_0x429a('0x28')]('ChatWebsite,\x20%s,\x20%s',_0x57bdda,_0x4a413e['error'][_0x429a('0x2b')]);return _0x55586a(_0x4a413e['error'][_0x429a('0x2b')]);}else{logger[_0x429a('0x23')](_0x429a('0x2a'),_0x57bdda,_0x429a('0x24'));_0x55586a(_0x4a413e[_0x429a('0x2c')]['message']);}})['catch'](function(_0x32250a){logger['error']('ChatWebsite,\x20%s,\x20%s',_0x57bdda,_0x32250a);_0x198362(_0x32250a);});});}function respondWithStatusCode(_0x8058a8,_0x42e2f9){_0x42e2f9=_0x42e2f9||0xcc;return function(_0x22d8b4){if(_0x22d8b4){return _0x8058a8['sendStatus'](_0x42e2f9);}return _0x8058a8['status'](_0x42e2f9)[_0x429a('0x2d')]();};}function respondWithResult(_0x1fc5ba,_0x4beed4){_0x4beed4=_0x4beed4||0xc8;return function(_0x33cca2){if(_0x33cca2){return _0x1fc5ba[_0x429a('0x2e')](_0x4beed4)[_0x429a('0x2f')](_0x33cca2);}};}function respondWithFilteredResult(_0x25e46f,_0x4b7c8e){return function(_0xf8e155){if(_0xf8e155){var _0x42deb5=typeof _0x4b7c8e[_0x429a('0x30')]===_0x429a('0x31')&&typeof _0x4b7c8e['limit']===_0x429a('0x31');var _0x35d87b=_0xf8e155[_0x429a('0x32')];var _0x537bfe=_0x42deb5?0x0:_0x4b7c8e[_0x429a('0x30')];var _0x4b2b2f=_0x42deb5?_0xf8e155[_0x429a('0x32')]:_0x4b7c8e[_0x429a('0x30')]+_0x4b7c8e[_0x429a('0x33')];var _0xfce0cc;if(_0x4b2b2f>=_0x35d87b){_0x4b2b2f=_0x35d87b;_0xfce0cc=0xc8;}else{_0xfce0cc=0xce;}_0x25e46f[_0x429a('0x2e')](_0xfce0cc);return _0x25e46f[_0x429a('0x34')]('Content-Range',_0x537bfe+'-'+_0x4b2b2f+'/'+_0x35d87b)['json'](_0xf8e155);}return null;};}function patchUpdates(_0x33faca){return function(_0x48e828){try{jsonpatch[_0x429a('0x35')](_0x48e828,_0x33faca,!![]);}catch(_0x58ab9a){return BPromise[_0x429a('0x36')](_0x58ab9a);}return _0x48e828['save']();};}function saveUpdates(_0x124fe1,_0x29efc2){return function(_0x3dfead){if(_0x3dfead){return _0x3dfead[_0x429a('0x37')](_0x124fe1)[_0x429a('0x22')](function(_0xc00458){return _0xc00458;});}return null;};}function removeEntity(_0x1de885,_0x244490){return function(_0x13a224){if(_0x13a224){return _0x13a224[_0x429a('0x38')]()['then'](function(){var _0x4dccb1=_0x13a224[_0x429a('0x39')]({'plain':!![]});var _0x398330=_0x429a('0x3a');return db['UserProfileResource']['destroy']({'where':{'type':_0x398330,'resourceId':_0x4dccb1['id']}})[_0x429a('0x22')](function(){return _0x13a224;});})[_0x429a('0x22')](function(){_0x1de885[_0x429a('0x2e')](0xcc)[_0x429a('0x2d')]();});}};}function handleEntityNotFound(_0x353430,_0x1ba0e1){return function(_0x37eb4e){if(!_0x37eb4e){_0x353430[_0x429a('0x3b')](0x194);}return _0x37eb4e;};}function handleError(_0x447410,_0x23c00e){_0x23c00e=_0x23c00e||0x1f4;return function(_0x228b5e){logger[_0x429a('0x28')](_0x228b5e['stack']);if(_0x228b5e['name']){delete _0x228b5e[_0x429a('0x3c')];}_0x447410[_0x429a('0x2e')](_0x23c00e)[_0x429a('0x3d')](_0x228b5e);};}exports[_0x429a('0x3e')]=function(_0x30c9b5,_0x27d708){var _0x618201={'include':[{'model':db[_0x429a('0x3f')],'as':_0x429a('0x40')}]},_0xf3713d={},_0x1616b3={'count':0x0,'rows':[]};var _0x144198=_[_0x429a('0x41')](db[_0x429a('0x42')][_0x429a('0x43')],function(_0x7cd627){return{'name':_0x7cd627[_0x429a('0x44')],'type':_0x7cd627[_0x429a('0x45')][_0x429a('0x46')]};});_0xf3713d[_0x429a('0x47')]=_['map'](_0x144198,_0x429a('0x3c'));_0xf3713d[_0x429a('0x48')]=_[_0x429a('0x49')](_0x30c9b5[_0x429a('0x48')]);_0xf3713d['filters']=_[_0x429a('0x4a')](_0xf3713d[_0x429a('0x47')],_0xf3713d[_0x429a('0x48')]);_0x618201['attributes']=_['intersection'](_0xf3713d[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x30c9b5[_0x429a('0x48')][_0x429a('0x4b')]));_0x618201[_0x429a('0x4c')]=_0x618201[_0x429a('0x4c')]['length']?_0x618201[_0x429a('0x4c')]:_0xf3713d[_0x429a('0x47')];if(!_0x30c9b5[_0x429a('0x48')]['hasOwnProperty'](_0x429a('0x4d'))){_0x618201[_0x429a('0x33')]=qs[_0x429a('0x33')](_0x30c9b5[_0x429a('0x48')][_0x429a('0x33')]);_0x618201['offset']=qs[_0x429a('0x30')](_0x30c9b5[_0x429a('0x48')][_0x429a('0x30')]);}_0x618201['order']=qs['sort'](_0x30c9b5[_0x429a('0x48')][_0x429a('0x4e')]);_0x618201['where']=qs['filters'](_[_0x429a('0x4f')](_0x30c9b5[_0x429a('0x48')],_0xf3713d[_0x429a('0x50')]),_0x144198);if(_0x30c9b5['query']['filter']){_0x618201[_0x429a('0x51')]=_[_0x429a('0x52')](_0x618201['where'],{'$or':_[_0x429a('0x41')](_0x144198,function(_0x43459c){if(_0x43459c[_0x429a('0x45')]!==_0x429a('0x53')){var _0x402bcf={};_0x402bcf[_0x43459c[_0x429a('0x3c')]]={'$like':'%'+_0x30c9b5['query'][_0x429a('0x54')]+'%'};return _0x402bcf;}})});}_0x618201=_[_0x429a('0x52')]({},_0x618201,_0x30c9b5[_0x429a('0x55')]);var _0x48bfec={'where':_0x618201[_0x429a('0x51')]};return db[_0x429a('0x42')][_0x429a('0x32')](_0x48bfec)[_0x429a('0x22')](function(_0x9d760c){_0x1616b3[_0x429a('0x32')]=_0x9d760c;if(_0x30c9b5[_0x429a('0x48')]['includeAll']){_0x618201['include']=[{'all':!![]}];}return db[_0x429a('0x42')][_0x429a('0x56')](_0x618201);})[_0x429a('0x22')](function(_0x3c852d){_0x1616b3[_0x429a('0x57')]=_0x3c852d;return _0x1616b3;})[_0x429a('0x22')](respondWithFilteredResult(_0x27d708,_0x618201))[_0x429a('0x58')](handleError(_0x27d708,null));};exports[_0x429a('0x59')]=function(_0x1d7072,_0x3505c9){var _0x5b213f={'raw':![],'where':{'id':_0x1d7072[_0x429a('0x5a')]['id']},'include':[{'model':db[_0x429a('0x3f')],'as':_0x429a('0x40')}]},_0xa4b9a4={};_0xa4b9a4[_0x429a('0x47')]=_['keys'](db[_0x429a('0x42')][_0x429a('0x43')]);_0xa4b9a4['query']=_['keys'](_0x1d7072[_0x429a('0x48')]);_0xa4b9a4[_0x429a('0x50')]=_['intersection'](_0xa4b9a4[_0x429a('0x47')],_0xa4b9a4['query']);_0x5b213f[_0x429a('0x4c')]=_[_0x429a('0x4a')](_0xa4b9a4[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x1d7072[_0x429a('0x48')][_0x429a('0x4b')]));_0x5b213f[_0x429a('0x4c')]=_0x5b213f[_0x429a('0x4c')][_0x429a('0x5b')]?_0x5b213f[_0x429a('0x4c')]:_0xa4b9a4[_0x429a('0x47')];if(_0x1d7072[_0x429a('0x48')][_0x429a('0x5c')]){_0x5b213f[_0x429a('0x5d')]=[{'all':!![]}];}_0x5b213f=_[_0x429a('0x52')]({},_0x5b213f,_0x1d7072['options']);return db[_0x429a('0x42')][_0x429a('0x5e')](_0x5b213f)[_0x429a('0x22')](handleEntityNotFound(_0x3505c9,null))[_0x429a('0x22')](respondWithResult(_0x3505c9,null))[_0x429a('0x58')](handleError(_0x3505c9,null));};exports[_0x429a('0x5f')]=function(_0x1a74e3,_0x258bda){return db['ChatWebsite'][_0x429a('0x5f')](_0x1a74e3['body'],{})['then'](function(_0xb02e95){var _0x4511c8=_0x1a74e3[_0x429a('0x60')][_0x429a('0x39')]({'plain':!![]});if(!_0x4511c8)throw new Error(_0x429a('0x61'));if(_0x4511c8['role']===_0x429a('0x60')){var _0x39904f=_0xb02e95[_0x429a('0x39')]({'plain':!![]});var _0x53e3c8=_0x429a('0x3a');return db['UserProfileSection'][_0x429a('0x5e')]({'where':{'name':_0x53e3c8,'userProfileId':_0x4511c8['userProfileId']},'raw':!![]})[_0x429a('0x22')](function(_0x2fcb62){if(_0x2fcb62&&_0x2fcb62['autoAssociation']===0x0){return db[_0x429a('0x62')][_0x429a('0x5f')]({'name':_0x39904f[_0x429a('0x3c')],'resourceId':_0x39904f['id'],'type':_0x2fcb62['name'],'sectionId':_0x2fcb62['id']},{})[_0x429a('0x22')](function(){return _0xb02e95;});}else{return _0xb02e95;}})[_0x429a('0x58')](function(_0x199317){logger[_0x429a('0x28')](_0x429a('0x63'),_0x199317);throw _0x199317;});}return _0xb02e95;})[_0x429a('0x22')](respondWithResult(_0x258bda,0xc9))['catch'](handleError(_0x258bda,null));};exports['update']=function(_0x26ae84,_0x2b86bd){if(_0x26ae84[_0x429a('0x64')]['id']){delete _0x26ae84['body']['id'];}return db['ChatWebsite'][_0x429a('0x5e')]({'where':{'id':_0x26ae84[_0x429a('0x5a')]['id']},'include':[{'model':db['Pause'],'as':_0x429a('0x40')}]})['then'](handleEntityNotFound(_0x2b86bd,null))[_0x429a('0x22')](saveUpdates(_0x26ae84['body'],null))[_0x429a('0x22')](respondWithResult(_0x2b86bd,null))[_0x429a('0x58')](handleError(_0x2b86bd,null));};exports[_0x429a('0x38')]=function(_0x307b79,_0xf84fc9){return db['ChatWebsite']['find']({'where':{'id':_0x307b79[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0xf84fc9,null))['then'](removeEntity(_0xf84fc9,null))['catch'](handleError(_0xf84fc9,null));};exports[_0x429a('0x65')]=function(_0x491d65,_0x4c8998){return db[_0x429a('0x42')][_0x429a('0x65')]()[_0x429a('0x22')](respondWithResult(_0x4c8998,null))[_0x429a('0x58')](handleError(_0x4c8998,null));};exports[_0x429a('0x66')]=function(_0x1a76f1,_0x52cad5,_0x2091fc){if(_0x1a76f1['body']['id']){delete _0x1a76f1['body']['id'];}return db[_0x429a('0x42')]['find']({'where':{'id':_0x1a76f1[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x52cad5,null))[_0x429a('0x22')](function(_0x298444){if(_0x298444){_0x1a76f1['body'][_0x429a('0x67')]=_0x298444['id'];return db['Disposition'][_0x429a('0x5f')](_0x1a76f1['body']);}})[_0x429a('0x22')](respondWithResult(_0x52cad5,null))[_0x429a('0x58')](handleError(_0x52cad5,null));};exports[_0x429a('0x68')]=function(_0x2bd51b,_0x43241e,_0xc1831f){var _0x37154e={'raw':![],'where':{}};var _0x1d00ed={};var _0x4bd57a={'count':0x0,'rows':[]};return db[_0x429a('0x42')][_0x429a('0x69')]({'where':{'id':_0x2bd51b[_0x429a('0x5a')]['id']}})['then'](handleEntityNotFound(_0x43241e,null))['then'](function(_0x90af3f){if(_0x90af3f){_0x1d00ed['model']=_[_0x429a('0x49')](db[_0x429a('0x6a')][_0x429a('0x43')]);_0x1d00ed[_0x429a('0x48')]=_[_0x429a('0x49')](_0x2bd51b['query']);_0x1d00ed[_0x429a('0x50')]=_['intersection'](_0x1d00ed[_0x429a('0x47')],_0x1d00ed[_0x429a('0x48')]);_0x37154e[_0x429a('0x4c')]=_[_0x429a('0x4a')](_0x1d00ed['model'],qs[_0x429a('0x4b')](_0x2bd51b[_0x429a('0x48')][_0x429a('0x4b')]));_0x37154e[_0x429a('0x4c')]=_0x37154e[_0x429a('0x4c')]['length']?_0x37154e['attributes']:_0x1d00ed[_0x429a('0x47')];if(!_0x2bd51b[_0x429a('0x48')][_0x429a('0x6b')](_0x429a('0x4d'))){_0x37154e[_0x429a('0x33')]=qs['limit'](_0x2bd51b['query']['limit']);_0x37154e['offset']=qs['offset'](_0x2bd51b[_0x429a('0x48')]['offset']);}_0x37154e['order']=qs['sort'](_0x2bd51b[_0x429a('0x48')]['sort']);_0x37154e[_0x429a('0x51')]=qs['filters'](_[_0x429a('0x4f')](_0x2bd51b[_0x429a('0x48')],_0x1d00ed['filters']));_0x37154e['where'][_0x429a('0x67')]=_0x90af3f['id'];if(_0x2bd51b[_0x429a('0x48')][_0x429a('0x54')]){_0x37154e[_0x429a('0x51')]=_[_0x429a('0x52')](_0x37154e[_0x429a('0x51')],{'$or':_[_0x429a('0x41')](_0x37154e[_0x429a('0x4c')],function(_0x4149a0){var _0x482a1f={};_0x482a1f[_0x4149a0]={'$like':'%'+_0x2bd51b['query']['filter']+'%'};return _0x482a1f;})});}_0x37154e=_['merge']({},_0x37154e,_0x2bd51b[_0x429a('0x55')]);return db[_0x429a('0x6a')]['count']({'where':_0x37154e[_0x429a('0x51')]})[_0x429a('0x22')](function(_0x5f34a2){_0x4bd57a[_0x429a('0x32')]=_0x5f34a2;if(_0x2bd51b[_0x429a('0x48')][_0x429a('0x5c')]){_0x37154e[_0x429a('0x5d')]=[{'all':!![]}];}return db['Disposition'][_0x429a('0x56')](_0x37154e);})['then'](function(_0x5b9f9a){_0x4bd57a[_0x429a('0x57')]=_0x5b9f9a;return _0x4bd57a;});}})[_0x429a('0x22')](respondWithFilteredResult(_0x43241e,_0x37154e))[_0x429a('0x58')](handleError(_0x43241e,null));};exports[_0x429a('0x6c')]=function(_0x4e0262,_0x5d1e01,_0x1c616f){return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x4e0262['params']['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x5d1e01,null))[_0x429a('0x22')](function(_0x35ffe9){if(_0x35ffe9){return _0x35ffe9['removeDispositions'](_0x4e0262['query'][_0x429a('0x6d')]);}})[_0x429a('0x22')](respondWithStatusCode(_0x5d1e01,null))[_0x429a('0x58')](handleError(_0x5d1e01,null));};exports[_0x429a('0x6e')]=function(_0x351ab1,_0x2452df,_0x25c2be){if(_0x351ab1['body']['id']){delete _0x351ab1['body']['id'];}return db['ChatWebsite'][_0x429a('0x5e')]({'where':{'id':_0x351ab1[_0x429a('0x5a')]['id']}})['then'](handleEntityNotFound(_0x2452df,null))[_0x429a('0x22')](function(_0x550d5b){if(_0x550d5b){_0x351ab1['body'][_0x429a('0x67')]=_0x550d5b['id'];return db[_0x429a('0x6f')][_0x429a('0x5f')](_0x351ab1['body']);}})[_0x429a('0x22')](respondWithResult(_0x2452df,null))['catch'](handleError(_0x2452df,null));};exports[_0x429a('0x70')]=function(_0x37a0a2,_0x25e212,_0x52e596){var _0x3ea2ac={'raw':![],'where':{}};var _0x3a5f29={};var _0x4a2d9f={'count':0x0,'rows':[]};return db[_0x429a('0x42')][_0x429a('0x69')]({'where':{'id':_0x37a0a2['params']['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x25e212,null))[_0x429a('0x22')](function(_0x357054){if(_0x357054){_0x3a5f29[_0x429a('0x47')]=_['keys'](db[_0x429a('0x6f')][_0x429a('0x43')]);_0x3a5f29[_0x429a('0x48')]=_['keys'](_0x37a0a2[_0x429a('0x48')]);_0x3a5f29[_0x429a('0x50')]=_[_0x429a('0x4a')](_0x3a5f29[_0x429a('0x47')],_0x3a5f29['query']);_0x3ea2ac[_0x429a('0x4c')]=_['intersection'](_0x3a5f29[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x37a0a2[_0x429a('0x48')]['fields']));_0x3ea2ac[_0x429a('0x4c')]=_0x3ea2ac[_0x429a('0x4c')][_0x429a('0x5b')]?_0x3ea2ac[_0x429a('0x4c')]:_0x3a5f29[_0x429a('0x47')];if(!_0x37a0a2[_0x429a('0x48')][_0x429a('0x6b')](_0x429a('0x4d'))){_0x3ea2ac[_0x429a('0x33')]=qs['limit'](_0x37a0a2[_0x429a('0x48')]['limit']);_0x3ea2ac[_0x429a('0x30')]=qs['offset'](_0x37a0a2[_0x429a('0x48')][_0x429a('0x30')]);}_0x3ea2ac[_0x429a('0x71')]=qs[_0x429a('0x4e')](_0x37a0a2['query'][_0x429a('0x4e')]);_0x3ea2ac[_0x429a('0x51')]=qs[_0x429a('0x50')](_[_0x429a('0x4f')](_0x37a0a2[_0x429a('0x48')],_0x3a5f29[_0x429a('0x50')]));_0x3ea2ac[_0x429a('0x51')][_0x429a('0x67')]=_0x357054['id'];if(_0x37a0a2[_0x429a('0x48')][_0x429a('0x54')]){_0x3ea2ac[_0x429a('0x51')]=_[_0x429a('0x52')](_0x3ea2ac[_0x429a('0x51')],{'$or':_[_0x429a('0x41')](_0x3ea2ac[_0x429a('0x4c')],function(_0x3884dd){var _0x3f46f7={};_0x3f46f7[_0x3884dd]={'$like':'%'+_0x37a0a2[_0x429a('0x48')][_0x429a('0x54')]+'%'};return _0x3f46f7;})});}_0x3ea2ac=_['merge']({},_0x3ea2ac,_0x37a0a2[_0x429a('0x55')]);return db[_0x429a('0x6f')][_0x429a('0x32')]({'where':_0x3ea2ac[_0x429a('0x51')]})[_0x429a('0x22')](function(_0x25e644){_0x4a2d9f[_0x429a('0x32')]=_0x25e644;if(_0x37a0a2['query']['includeAll']){_0x3ea2ac[_0x429a('0x5d')]=[{'all':!![]}];}return db[_0x429a('0x6f')][_0x429a('0x56')](_0x3ea2ac);})[_0x429a('0x22')](function(_0x16be01){_0x4a2d9f['rows']=_0x16be01;return _0x4a2d9f;});}})[_0x429a('0x22')](respondWithFilteredResult(_0x25e212,_0x3ea2ac))[_0x429a('0x58')](handleError(_0x25e212,null));};exports['removeAnswers']=function(_0x2e7cf5,_0x2eb14a,_0x28a353){return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x2e7cf5[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x2eb14a,null))['then'](function(_0x53576d){if(_0x53576d){return _0x53576d['removeAnswers'](_0x2e7cf5[_0x429a('0x48')]['ids']);}})['then'](respondWithStatusCode(_0x2eb14a,null))['catch'](handleError(_0x2eb14a,null));};exports[_0x429a('0x72')]=function(_0x3fd789,_0x49fad9,_0x274093){_0x3fd789[_0x429a('0x64')][_0x429a('0x73')]=_0x3fd789['file'][_0x429a('0x74')];return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x3fd789['params']['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x49fad9,null))[_0x429a('0x22')](saveUpdates(_0x3fd789[_0x429a('0x64')],null))[_0x429a('0x22')](respondWithResult(_0x49fad9,null))[_0x429a('0x58')](handleError(_0x49fad9,null));};exports[_0x429a('0x75')]=function(_0x3630ce,_0x45b9fe,_0x5e9186){_0x3630ce[_0x429a('0x64')][_0x429a('0x76')]=_0x3630ce[_0x429a('0x77')]['filename'];return db[_0x429a('0x42')]['find']({'where':{'id':_0x3630ce[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x45b9fe,null))[_0x429a('0x22')](saveUpdates(_0x3630ce[_0x429a('0x64')],null))[_0x429a('0x22')](respondWithResult(_0x45b9fe,null))[_0x429a('0x58')](handleError(_0x45b9fe,null));};exports[_0x429a('0x78')]=function(_0x4b89b0,_0x3f6974,_0x57eb55){_0x4b89b0[_0x429a('0x64')]['customerAvatar']=_0x4b89b0[_0x429a('0x77')]['filename'];return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x4b89b0[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x3f6974,null))['then'](saveUpdates(_0x4b89b0[_0x429a('0x64')],null))[_0x429a('0x22')](respondWithResult(_0x3f6974,null))[_0x429a('0x58')](handleError(_0x3f6974,null));};exports[_0x429a('0x79')]=function(_0x37e7fc,_0xf07fa8,_0x2d002b){_0x37e7fc[_0x429a('0x64')]['systemAvatar']=_0x37e7fc['file'][_0x429a('0x74')];return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x37e7fc['params']['id']}})['then'](handleEntityNotFound(_0xf07fa8,null))[_0x429a('0x22')](saveUpdates(_0x37e7fc[_0x429a('0x64')],null))[_0x429a('0x22')](respondWithResult(_0xf07fa8,null))[_0x429a('0x58')](handleError(_0xf07fa8,null));};exports[_0x429a('0x7a')]=function(_0x4b3813,_0x453681,_0x2b1b99){var _0x233f4b=path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0x7d'));var _0x122562={'where':{'id':_0x4b3813[_0x429a('0x5a')]['id']},'attributes':['id',_0x429a('0x73')],'raw':!![]};var _0x5b6bef=![];return require(_0x429a('0x7e'))[_0x429a('0x7f')]()[_0x429a('0x22')](function(_0x1e167e){if(_0x1e167e){_0x5b6bef=_0x1e167e[_0x429a('0x80')];}})[_0x429a('0x22')](function(){return db[_0x429a('0x42')][_0x429a('0x5e')](_0x122562);})[_0x429a('0x22')](handleEntityNotFound(_0x453681,null))['then'](function(_0x10e5e3){if(_0x10e5e3){if(!_[_0x429a('0x81')](_0x10e5e3[_0x429a('0x73')])){if(fs['existsSync'](path['join'](config[_0x429a('0x7c')],_0x429a('0x82'),_0x10e5e3['sitepic']))&&_0x5b6bef){_0x233f4b=path[_0x429a('0x7b')](config['root'],_0x429a('0x82'),_0x10e5e3['sitepic']);}}return _0x453681[_0x429a('0x83')](_0x233f4b);}})[_0x429a('0x58')](handleError(_0x453681,null));};exports[_0x429a('0x84')]=function(_0xfbba29,_0x25d6b8,_0x48363f){var _0x5b594c=path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0x85'));var _0x2f7b73={'where':{'id':_0xfbba29[_0x429a('0x5a')]['id']},'attributes':['id',_0x429a('0x76')],'raw':!![]};return db['ChatWebsite'][_0x429a('0x5e')](_0x2f7b73)['then'](handleEntityNotFound(_0x25d6b8,null))[_0x429a('0x22')](function(_0x1ac3b9){if(_0x1ac3b9){if(!_[_0x429a('0x81')](_0x1ac3b9[_0x429a('0x76')])){if(fs['existsSync'](path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0x86'),_0x1ac3b9[_0x429a('0x76')]))){_0x5b594c=path['join'](config['root'],_0x429a('0x86'),_0x1ac3b9['agentAvatar']);}}return _0x25d6b8['download'](_0x5b594c);}})[_0x429a('0x58')](handleError(_0x25d6b8,null));};exports[_0x429a('0x87')]=function(_0x6f2e6d,_0x2b9c73,_0x518d4a){var _0xa63bb0=path['join'](config[_0x429a('0x7c')],'server/files/images/avatars/customer_avatar.png');var _0x4d4abc={'where':{'id':_0x6f2e6d['params']['id']},'attributes':['id',_0x429a('0x88'),_0x429a('0x89')],'raw':!![]};return db['ChatWebsite'][_0x429a('0x5e')](_0x4d4abc)[_0x429a('0x22')](handleEntityNotFound(_0x2b9c73,null))[_0x429a('0x22')](function(_0x4dfbe1){if(_0x4dfbe1){if(!_[_0x429a('0x81')](_0x4dfbe1[_0x429a('0x88')])){if(fs[_0x429a('0x8a')](path['join'](config[_0x429a('0x7c')],'server/files/images/avatars/',_0x4dfbe1[_0x429a('0x88')]))&&_0x4dfbe1[_0x429a('0x89')]){_0xa63bb0=path['join'](config[_0x429a('0x7c')],_0x429a('0x86'),_0x4dfbe1[_0x429a('0x88')]);}}return _0x2b9c73[_0x429a('0x83')](_0xa63bb0);}})['catch'](handleError(_0x2b9c73,null));};exports[_0x429a('0x8b')]=function(_0x25b836,_0x26b7e3,_0x33a0e4){var _0x428b55=path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0x8c'));var _0x2126d5={'where':{'id':_0x25b836[_0x429a('0x5a')]['id']},'attributes':['id',_0x429a('0x8d')],'raw':!![]};return db[_0x429a('0x42')][_0x429a('0x5e')](_0x2126d5)[_0x429a('0x22')](handleEntityNotFound(_0x26b7e3,null))['then'](function(_0x96967f){if(_0x96967f){if(!_[_0x429a('0x81')](_0x96967f[_0x429a('0x8d')])){if(fs[_0x429a('0x8a')](path[_0x429a('0x7b')](config[_0x429a('0x7c')],'server/files/images/avatars/',_0x96967f[_0x429a('0x8d')]))){_0x428b55=path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0x86'),_0x96967f[_0x429a('0x8d')]);}}return _0x26b7e3[_0x429a('0x83')](_0x428b55);}})['catch'](handleError(_0x26b7e3,null));};exports['notify']=function(_0x41598b,_0x2b98cd,_0x1906cb){var _0x3f3765=require(_0x429a('0x8e'));var _0x2cd807=new _0x3f3765();var _0x75f1e3=_0x2cd807[_0x429a('0x8f')](_0x41598b[_0x429a('0x90')]['user-agent'])['getResult']();var _0x4e6fc9={'body':_0x41598b['body'],'channel':_0x429a('0x91')};var _0x5cc620=[];var _0x18872a=[];var _0x54c290={};var _0x39d524=![];return db[_0x429a('0x92')][_0x429a('0x65')]()[_0x429a('0x22')](function(_0x1f36ea){if(!_0x1f36ea){throw new db[(_0x429a('0x93'))][(_0x429a('0x94'))](_0x429a('0x95'));}_0x5cc620=_[_0x429a('0x96')](_[_0x429a('0x49')](_0x1f36ea),[_0x429a('0x97'),'updatedAt']);_0x18872a=_[_0x429a('0x96')](_[_0x429a('0x49')](_0x1f36ea),[_0x429a('0x97'),_0x429a('0x98'),'CompanyId',_0x429a('0x99')]);if(_0x41598b[_0x429a('0x64')]['id']){delete _0x41598b[_0x429a('0x64')]['id'];}if(_[_0x429a('0x81')](_0x41598b[_0x429a('0x64')][_0x429a('0x9a')])){throw new db[(_0x429a('0x93'))][(_0x429a('0x94'))](_0x429a('0x9b'));}if(_[_0x429a('0x81')](_0x41598b[_0x429a('0x64')][_0x429a('0x64')])||_0x41598b[_0x429a('0x64')][_0x429a('0x64')]===''){throw new db['Sequelize']['ValidationError'](_0x429a('0x9c'));}if(_['isNil'](_0x41598b[_0x429a('0x64')][_0x429a('0x9d')])){throw new db[(_0x429a('0x93'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x18872a);}if(!_[_0x429a('0x9e')](_0x18872a,_0x41598b[_0x429a('0x64')][_0x429a('0x9d')])){throw new db[(_0x429a('0x93'))][(_0x429a('0x94'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x18872a);}_0x54c290[_0x41598b[_0x429a('0x64')][_0x429a('0x9d')]]=_0x41598b['body'][_0x429a('0x9a')];})['then'](function(){return db[_0x429a('0x42')]['find']({'where':{'id':_0x41598b[_0x429a('0x5a')]['id']},'include':[{'model':db[_0x429a('0x9f')],'as':_0x429a('0xa0'),'include':[{'model':db[_0x429a('0x92')],'as':'Contacts','where':_0x54c290,'limit':0x1,'order':[[_0x429a('0x98'),'DESC']]}]},{'model':db[_0x429a('0xa1')],'as':_0x429a('0xa2')}]});})[_0x429a('0x22')](handleEntityNotFound(_0x2b98cd,null))[_0x429a('0x22')](function(_0x3da583){if(_0x3da583&&_0x3da583[_0x429a('0xa0')]){_0x4e6fc9[_0x429a('0xa3')]=_0x3da583;_0x4e6fc9['applications']=_0x3da583[_0x429a('0xa2')];_0x4e6fc9[_0x429a('0xa4')]=_0x3da583[_0x429a('0xa0')];_0x4e6fc9[_0x429a('0xa5')]=_[_0x429a('0xa6')](_0x4e6fc9['applications'],['priority'],[_0x429a('0xa7')]);if(_0x4e6fc9[_0x429a('0xa3')][_0x429a('0xa2')]){delete _0x4e6fc9[_0x429a('0xa3')][_0x429a('0xa2')];}if(_0x4e6fc9['account'][_0x429a('0xa0')]&&_0x4e6fc9[_0x429a('0xa3')][_0x429a('0xa0')][_0x429a('0xa8')]['length']){return _0x4e6fc9[_0x429a('0xa3')][_0x429a('0xa0')]['Contacts'][0x0];}var _0x2020fc=_[_0x429a('0x1a')](_0x41598b['body'],{'firstName':_0x41598b[_0x429a('0x64')][_0x429a('0x9a')],'ListId':_0x3da583[_0x429a('0x99')]});_0x2020fc[_0x41598b[_0x429a('0x64')][_0x429a('0x9d')]]=_0x41598b[_0x429a('0x64')]['from'];return db['CmContact'][_0x429a('0x5f')](_0x2020fc,{'fields':_0x5cc620,'raw':!![]});}})[_0x429a('0x22')](handleEntityNotFound(_0x2b98cd,null))[_0x429a('0x22')](function(_0x29f3b7){_0x4e6fc9[_0x429a('0xa9')]=_0x29f3b7;var _0x231284=_0x41598b[_0x429a('0x64')]['customerIp'];if(_0x41598b[_0x429a('0x90')]['cf-connecting-ip']){_0x231284=_0x41598b[_0x429a('0x90')]['cf-connecting-ip'];}else if(_0x41598b['headers'][_0x429a('0xaa')]){_0x231284=_[_0x429a('0xab')](_0x41598b[_0x429a('0x90')][_0x429a('0xaa')]['split'](','));}if(_0x29f3b7){var _0x2024af={'ContactId':_0x29f3b7['id'],'ChatWebsiteId':_0x41598b['params']['id'],'from':(_0x29f3b7['firstName']||'')+'\x20'+(_0x29f3b7[_0x429a('0xac')]||''),'customerIp':_0x231284,'customerPort':_0x41598b['headers'][_0x429a('0xad')]?_0x41598b[_0x429a('0x90')][_0x429a('0xad')]:null,'referer':_0x41598b[_0x429a('0x64')][_0x429a('0xae')],'browserName':_0x75f1e3[_0x429a('0xaf')][_0x429a('0x3c')]&&_0x75f1e3[_0x429a('0xaf')][_0x429a('0xb0')]?util[_0x429a('0xb1')](_0x429a('0xb2'),_0x75f1e3[_0x429a('0xaf')]['name'],_0x75f1e3['browser'][_0x429a('0xb0')]):'unknown','browserVersion':_0x75f1e3[_0x429a('0xaf')][_0x429a('0xb0')]||_0x429a('0xb3'),'osName':util[_0x429a('0xb1')]('%s\x20%s',_0x75f1e3['os'][_0x429a('0x3c')],_0x75f1e3['os'][_0x429a('0xb0')]),'osVersion':_0x75f1e3['os'][_0x429a('0xb0')],'deviceModel':_0x75f1e3[_0x429a('0xb4')][_0x429a('0x47')]&&_0x75f1e3[_0x429a('0xb4')][_0x429a('0xb5')]?util['format'](_0x429a('0xb6'),_0x75f1e3['device']['model'],_0x75f1e3['device']['vendor'],_0x75f1e3['device'][_0x429a('0x45')]):null,'deviceVendor':_0x75f1e3[_0x429a('0xb4')][_0x429a('0xb5')],'deviceType':_0x75f1e3[_0x429a('0xb4')][_0x429a('0x45')],'formData':JSON['stringify'](_0x41598b['body'])};var _0x1617c2={'ChatWebsiteId':_0x41598b[_0x429a('0x5a')]['id'],'closed':![]};if(_0x41598b['body']['threadId']){_0x1617c2['threadId']=_0x41598b['body']['threadId'];return db[_0x429a('0xb7')][_0x429a('0x5e')]({'where':_0x1617c2})[_0x429a('0x22')](function(_0x5b5a30){if(_0x5b5a30){return[_0x5b5a30,![]];}_0x2024af['threadId']=_0x41598b[_0x429a('0x64')][_0x429a('0xb8')];_0x2024af[_0x429a('0xb9')]=_0x41598b['body'][_0x429a('0xb9')];return db[_0x429a('0xb7')][_0x429a('0x5f')](_0x2024af)[_0x429a('0x22')](function(_0x2b2c67){return[_0x2b2c67,!![]];});});}_0x1617c2['ContactId']=_0x29f3b7['id'];if(_0x41598b[_0x429a('0x64')][_0x429a('0xba')]&&_0x41598b[_0x429a('0x64')]['interaction']['id']){_0x1617c2['id']=_0x41598b[_0x429a('0x64')]['interaction']['id'];return db[_0x429a('0xb7')][_0x429a('0x5e')]({'where':_0x1617c2})['then'](function(_0x27fe45){if(_0x27fe45){return[_0x27fe45,![]];}return db[_0x429a('0xb7')][_0x429a('0x5f')](_0x2024af)[_0x429a('0x22')](function(_0x2a4bb3){return[_0x2a4bb3,!![]];});});}return db[_0x429a('0xb7')][_0x429a('0x5f')](_0x2024af)[_0x429a('0x22')](function(_0xafb7ef){return[_0xafb7ef,!![]];});}})[_0x429a('0xbb')](function(_0x39b75a,_0x29e05b){if(_0x39b75a){_0x39d524=_0x29e05b;if(!_0x29e05b){var _0x22e508={'from':(_0x4e6fc9[_0x429a('0xa9')]['firstName']||'')+'\x20'+(_0x4e6fc9[_0x429a('0xa9')]['lastName']||'')};if(_0x41598b[_0x429a('0x64')][_0x429a('0xb8')]&&_0x41598b[_0x429a('0x64')][_0x429a('0xbc')]&&_0x41598b[_0x429a('0x64')][_0x429a('0xb8')]!=_0x41598b[_0x429a('0x64')]['messageId']){_0x22e508[_0x429a('0xb8')]=_0x41598b[_0x429a('0x64')][_0x429a('0xbc')];}return _0x39b75a[_0x429a('0x37')](_0x22e508);}else{return _0x39b75a;}}})[_0x429a('0x22')](function(_0x507d37){_0x4e6fc9[_0x429a('0xba')]=_0x507d37['get']({'plain':!![]});_0x4e6fc9[_0x429a('0xba')]['created']=_0x39d524;if(_0x4e6fc9[_0x429a('0xba')][_0x429a('0xbd')]){if(_0x4e6fc9['account'][_0x429a('0xbe')]){_0x4e6fc9[_0x429a('0xa5')][_0x429a('0xbf')]({'id':0x0,'priority':_0x4e6fc9['applications'][_0x429a('0x5b')]+0x1,'app':'close','appdata':_0x429a('0xc0'),'interval':'*,*,*,*'});}}return db[_0x429a('0xc1')][_0x429a('0x5f')]({'body':_0x41598b[_0x429a('0x64')][_0x429a('0x64')],'ChatWebsiteId':_0x41598b['params']['id'],'ChatInteractionId':_0x507d37['id'],'direction':'in','ContactId':_0x4e6fc9[_0x429a('0xa9')]['id'],'AttachmentId':_0x41598b[_0x429a('0x64')][_0x429a('0xc2')]});})[_0x429a('0x22')](function(_0x1d573a){_0x4e6fc9[_0x429a('0x2b')]=_0x1d573a;if(_0x4e6fc9[_0x429a('0xba')]['UserId']){return db[_0x429a('0xc3')][_0x429a('0x5e')]({'attributes':['id','name'],'where':{'id':_0x4e6fc9[_0x429a('0xba')][_0x429a('0xc4')]}})[_0x429a('0x22')](function(_0x86a66a){if(_0x86a66a){_0x4e6fc9[_0x429a('0xa5')][_0x429a('0xc5')]({'id':0x0,'priority':0x0,'app':_0x429a('0xc6'),'appdata':_0x86a66a['name']+','+(_0x4e6fc9[_0x429a('0xa3')][_0x429a('0xc7')]||0xa),'interval':_0x429a('0xc8')});_0x4e6fc9[_0x429a('0xc9')]=!![];}return respondWithRpcPromise(_0x429a('0xca'),'startRouting',_0x4e6fc9);});}return respondWithRpcPromise(_0x429a('0xca'),_0x429a('0xcb'),_0x4e6fc9);})['then'](function(_0x52a9d2){respondWithRpcPromise(_0x429a('0xcc'),_0x429a('0xcc'),{'event':'notify','message':_0x52a9d2},client9002);return _0x52a9d2;})[_0x429a('0x22')](respondWithResult(_0x2b98cd,null))[_0x429a('0x58')](handleError(_0x2b98cd,null));};exports[_0x429a('0xcd')]=function(_0x17046b,_0x203a58,_0x4ef240){var _0x1cca5d,_0x4d26bf,_0x4d4f4f;var _0xd9b336=[];var _0x5a3257=[];var _0x322269={};var _0x454b5e=_0x17046b[_0x429a('0xce')]||[];var _0xd52f2e=[];var _0x56960d;return db[_0x429a('0x92')][_0x429a('0x65')]()['then'](function(_0x1c6b15){if(!_0x1c6b15){throw new db[(_0x429a('0x93'))][(_0x429a('0x94'))](_0x429a('0x95'));}_0x5a3257=_[_0x429a('0x96')](_['keys'](_0x1c6b15),['createdAt',_0x429a('0x98')]);_0xd9b336=_[_0x429a('0x96')](_[_0x429a('0x49')](_0x1c6b15),[_0x429a('0x97'),_0x429a('0x98'),_0x429a('0xcf'),_0x429a('0x99')]);if(_0x17046b[_0x429a('0x64')]['id']){delete _0x17046b[_0x429a('0x64')]['id'];}if(_[_0x429a('0x81')](_0x17046b['body']['from'])){throw _0x203a58[_0x429a('0x2e')](0x1f4)[_0x429a('0x3d')](new db[(_0x429a('0x93'))][(_0x429a('0x94'))]('from\x20is\x20mandatory'));}if(_[_0x429a('0x81')](_0x17046b['body'][_0x429a('0x64')])||_0x17046b[_0x429a('0x64')]['body']===''){throw _0x203a58[_0x429a('0x2e')](0x1f4)[_0x429a('0x3d')](new db[(_0x429a('0x93'))][(_0x429a('0x94'))](_0x429a('0x9c')));}if(_[_0x429a('0x81')](_0x17046b[_0x429a('0x64')]['mapKeyOffline'])){throw _0x203a58[_0x429a('0x2e')](0x1f4)[_0x429a('0x3d')](new db['Sequelize'][(_0x429a('0x94'))]('mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xd9b336));}if(!_['includes'](_0xd9b336,_0x17046b[_0x429a('0x64')]['mapKeyOffline'])){throw _0x203a58[_0x429a('0x2e')](0x1f4)['send'](new db[(_0x429a('0x93'))][(_0x429a('0x94'))](_0x429a('0xd0')+_0xd9b336));}_0x322269[_0x17046b[_0x429a('0x64')][_0x429a('0xd1')]]=_0x17046b['body']['from'];})[_0x429a('0x22')](function(){return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x17046b['params']['id']},'include':[{'model':db[_0x429a('0x9f')],'as':_0x429a('0xa0')},{'model':db[_0x429a('0xd2')],'as':_0x429a('0xd2')}]});})[_0x429a('0x22')](handleEntityNotFound(_0x203a58,null))[_0x429a('0x22')](function(_0x3d1b1c){if(_0x3d1b1c&&_0x3d1b1c[_0x429a('0xa0')]){_0x4d26bf=_0x3d1b1c;var _0x44f23f=_[_0x429a('0x1a')](_0x17046b[_0x429a('0x64')],{'firstName':_0x17046b[_0x429a('0x64')]['from'],'phone':_0x17046b[_0x429a('0x64')][_0x429a('0x9a')],'ListId':_0x3d1b1c[_0x429a('0x99')]});_0x44f23f[_0x17046b[_0x429a('0x64')]['mapKeyOffline']]=_0x17046b[_0x429a('0x64')][_0x429a('0x9a')];return db[_0x429a('0x92')][_0x429a('0xd3')]({'where':_0x322269,'defaults':_0x44f23f});}})['spread'](function(_0xc28dd6){if(_0xc28dd6){_0x4d4f4f=_0xc28dd6;var _0x2169a3=fs[_0x429a('0xd4')](path['join'](config['root'],_0x429a('0xd5')),_0x429a('0xd6'));var _0x5a4955=ejs['render'](_0x2169a3,{'body':_[_0x429a('0xd7')](_0x17046b[_0x429a('0x64')][_0x429a('0x64')]),'bodyTitle':_0x4d26bf['offlineMessageBody']});return db[_0x429a('0xd8')][_0x429a('0x5f')]({'body':_0x5a4955,'ContactId':_0xc28dd6['id'],'ChatWebsiteId':_0x4d26bf['id']});}})[_0x429a('0x22')](function(_0x40702e){_0x56960d=_0x40702e;if(_0x454b5e['length']){var _0x3c5dc7=_0x454b5e[_0x429a('0x41')](function(_0x292d19){return{'name':_0x292d19[_0x429a('0xd9')],'basename':_0x292d19[_0x429a('0x74')],'type':_0x292d19[_0x429a('0xda')],'ChatOfflineMessageId':_0x40702e['id']};});_0xd52f2e=_0x3c5dc7[_0x429a('0x41')](_0x493876=>{var _0x332dbf={'filename':_0x493876['name'],'path':path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0xdb'),'files',_0x429a('0xdc'),_0x429a('0xdd'),_0x493876[_0x429a('0xde')])};return _0x332dbf;});if(!_0x4d26bf['openNewInteraction']){return db[_0x429a('0xdf')]['transaction'](function(_0x2aeaaf){return db[_0x429a('0xe0')][_0x429a('0xe1')](_0x3c5dc7,{'transaction':_0x2aeaaf});});}}})[_0x429a('0x22')](function(){if(_0x56960d){_0x1cca5d=_0x56960d;return db[_0x429a('0xd2')]['findOne']({'where':{'active':!![]},'include':[{'model':db[_0x429a('0xe2')],'as':_0x429a('0xe3'),'raw':!![]}]});}})[_0x429a('0x22')](function(_0x5af6f0){if(_0x5af6f0&&_0x5af6f0[_0x429a('0xe3')]&&_0x4d26bf['forwardOffline']&&_0x4d26bf[_0x429a('0xe4')]){var _0x4d46a0={'tls':{'rejectUnauthorized':![]}};if(_0x5af6f0[_0x429a('0xe3')][_0x429a('0xe5')]){_0x4d46a0[_0x429a('0xe5')]=_0x5af6f0[_0x429a('0xe3')][_0x429a('0xe5')];}else{_0x4d46a0['host']=_0x5af6f0[_0x429a('0xe3')][_0x429a('0xe6')];_0x4d46a0[_0x429a('0xe7')]=_0x5af6f0[_0x429a('0xe3')][_0x429a('0xe7')];_0x4d46a0[_0x429a('0xe8')]=_0x5af6f0[_0x429a('0xe3')][_0x429a('0xe8')];}if(_0x5af6f0[_0x429a('0xe3')][_0x429a('0xe9')]){_0x4d46a0[_0x429a('0xea')]={'user':_0x5af6f0[_0x429a('0xe3')][_0x429a('0x60')],'pass':_0x5af6f0[_0x429a('0xe3')][_0x429a('0xeb')]};}return respondWithRpcPromise(_0x429a('0xec'),_0x429a('0xed'),{'account':_0x4d46a0,'message':{'from':util[_0x429a('0xb1')](_0x429a('0xee'),_0x5af6f0[_0x429a('0x3c')],_0x5af6f0[_0x429a('0xef')]||_0x5af6f0['Smtp'][_0x429a('0x60')]),'to':_0x4d26bf[_0x429a('0xe4')],'subject':_0x4d26bf['offlineMessageSubject'],'html':_0x1cca5d[_0x429a('0x64')],'attachments':_0xd52f2e}},client9003)[_0x429a('0x22')](function(){return _0x1cca5d;})[_0x429a('0x58')](function(_0x10caef){console[_0x429a('0x28')](_0x10caef);});}})[_0x429a('0x22')](function(){if(_0x4d26bf&&_0x4d26bf[_0x429a('0xf0')]&&_0x4d26bf[_0x429a('0xf1')]){var _0x410b38=[];if(_0x454b5e['length']){_0x410b38=_0x454b5e['map'](function(_0x525573){return{'name':_0x525573['originalname'],'basename':_0x525573['filename'],'type':_0x525573[_0x429a('0xda')],'ChatOfflineMessageId':_0x56960d['id']};});}var _0x3eded1;if(!_[_0x429a('0x81')](_0x4d26bf[_0x429a('0xf2')])){var _0x515f08=_[_0x429a('0x41')](_0x17046b[_0x429a('0x64')],function(_0x37d41e){return _0x37d41e;});var _0x1dbbc3=_[_0x429a('0xf3')](_0x515f08)[0x0];var _0x150572=_[_0x429a('0xf4')](_0x1dbbc3,function(_0x2661a7){return _0x2661a7;});_0x3eded1=_0x150572[0x1][_0x4d26bf[_0x429a('0xf2')]];}var _0x4664c5={'from':_0x4d4f4f['email'],'firstName':_0x4d4f4f[_0x429a('0xf5')],'lastName':_0x4d4f4f[_0x429a('0xac')],'mapKey':_0x429a('0xef'),'message':{'from':_0x4d4f4f['email'],'to':_0x4d26bf[_0x429a('0xd2')][_0x429a('0xef')],'cc':'','subject':_['isNil'](_0x3eded1)?_0x4d26bf[_0x429a('0xf6')]:_0x3eded1,'messageId':'','sentAt':new Date(),'attach':_0x410b38[_0x429a('0x5b')],'attachments':_0x410b38,'originChannel':_0x429a('0xf7'),'ChatWebsiteId':_0x4d26bf['id'],'ChatOfflineMessageId':_0x1cca5d['id'],'originTo':_0x4d26bf[_0x429a('0xd2')][_0x429a('0xef')]},'body':_0x1cca5d[_0x429a('0x64')]};var _0x3b1583={'account':{'id':_0x4d26bf[_0x429a('0xf1')]},'body':_0x4664c5,'log':_0x429a('0xf8')};return respondWithRpcPromise('NotifyMailAccount',_0x429a('0xf9'),_0x3b1583,client9001)[_0x429a('0x22')](function(){return _0x1cca5d;})[_0x429a('0x58')](function(_0x4e5baa){console[_0x429a('0x28')](_0x4e5baa);});}return;})[_0x429a('0x22')](function(){if(_0x1cca5d){return _0x1cca5d;}})[_0x429a('0x22')](respondWithResult(_0x203a58,null))[_0x429a('0x58')](function(_0x55a0ea){console[_0x429a('0x28')](_0x429a('0x58'),_0x55a0ea);for(var _0x15966a of _0x454b5e){var _0x383c2e=path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0xdb'),_0x429a('0xce'),_0x429a('0xdc'),_0x429a('0xdd'),_0x15966a[_0x429a('0x74')]);fs_extra[_0x429a('0xfa')](_0x383c2e)['catch'](function(_0x517482){console[_0x429a('0x28')](_0x429a('0xfb'),_0x383c2e,_0x517482);});}});};exports[_0x429a('0xfc')]=function(_0x31473d,_0xa902bc,_0x1780a0){return db[_0x429a('0xb7')][_0x429a('0x5e')]({'where':{'id':_0x31473d[_0x429a('0x5a')]['id']}})['then'](handleEntityNotFound(_0xa902bc,null))[_0x429a('0x22')](function(_0x3c6e5d){if(_0x3c6e5d){return _0x3c6e5d[_0x429a('0xfc')](_0x31473d[_0x429a('0x64')][_0x429a('0x6d')],_[_0x429a('0xfd')](_0x31473d[_0x429a('0x64')],[_0x429a('0x6d'),'id'])||{});}})[_0x429a('0x22')](respondWithResult(_0xa902bc,null))[_0x429a('0x58')](handleError(_0xa902bc,null));};exports['getInteractions']=function(_0x280052,_0x28ac2e,_0x47b88a){var _0x554611={'raw':![],'where':{}};var _0x12803e={};var _0x1b2400={'count':0x0,'rows':[]};return db[_0x429a('0x42')][_0x429a('0x69')]({'where':{'id':_0x280052[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x28ac2e,null))['then'](function(_0xf4110d){if(_0xf4110d){_0x12803e[_0x429a('0x47')]=_[_0x429a('0x49')](db['ChatInteraction'][_0x429a('0x43')]);_0x12803e[_0x429a('0x48')]=_[_0x429a('0x49')](_0x280052[_0x429a('0x48')]);_0x12803e[_0x429a('0x50')]=_[_0x429a('0x4a')](_0x12803e[_0x429a('0x47')],_0x12803e['query']);_0x554611['attributes']=_[_0x429a('0x4a')](_0x12803e['model'],qs['fields'](_0x280052['query'][_0x429a('0x4b')]));_0x554611['attributes']=_0x554611[_0x429a('0x4c')]['length']?_0x554611[_0x429a('0x4c')]:_0x12803e[_0x429a('0x47')];if(!_0x280052[_0x429a('0x48')][_0x429a('0x6b')](_0x429a('0x4d'))){_0x554611['limit']=qs[_0x429a('0x33')](_0x280052[_0x429a('0x48')][_0x429a('0x33')]);_0x554611[_0x429a('0x30')]=qs['offset'](_0x280052[_0x429a('0x48')][_0x429a('0x30')]);}_0x554611[_0x429a('0x71')]=qs[_0x429a('0x4e')](_0x280052[_0x429a('0x48')][_0x429a('0x4e')]);_0x554611[_0x429a('0x51')]=qs[_0x429a('0x50')](_[_0x429a('0x4f')](_0x280052[_0x429a('0x48')],_0x12803e['filters']));_0x554611[_0x429a('0x51')]['ChatWebsiteId']=_0xf4110d['id'];if(_0x280052[_0x429a('0x48')][_0x429a('0x54')]){_0x554611[_0x429a('0x51')]=_[_0x429a('0x52')](_0x554611['where'],{'$or':_[_0x429a('0x41')](_0x554611[_0x429a('0x4c')],function(_0xe6202e){var _0x513c9c={};_0x513c9c[_0xe6202e]={'$like':'%'+_0x280052['query']['filter']+'%'};return _0x513c9c;})});}_0x554611=_[_0x429a('0x52')]({},_0x554611,_0x280052['options']);return db[_0x429a('0xb7')][_0x429a('0x32')]({'where':_0x554611['where']})['then'](function(_0x5b724d){_0x1b2400[_0x429a('0x32')]=_0x5b724d;if(_0x280052[_0x429a('0x48')][_0x429a('0x5c')]){_0x554611['include']=[{'model':db[_0x429a('0x92')],'as':'Contact','required':![]},{'model':db[_0x429a('0xc3')],'as':_0x429a('0xfe'),'attributes':[_0x429a('0x3c'),'fullname',_0x429a('0xff')],'required':![]},{'model':db[_0x429a('0x100')],'as':_0x429a('0x101'),'attributes':['id',_0x429a('0x3c'),_0x429a('0x102')],'where':_0x280052[_0x429a('0x48')][_0x429a('0x103')]?{'id':_0x280052[_0x429a('0x48')]['tag']}:undefined,'required':_0x280052[_0x429a('0x48')]['tag']?!![]:![]}];}return db[_0x429a('0xb7')][_0x429a('0x56')](_0x554611);})[_0x429a('0x22')](function(_0x11da55){_0x1b2400[_0x429a('0x57')]=_0x11da55;return _0x1b2400;});}})[_0x429a('0x22')](respondWithFilteredResult(_0x28ac2e,_0x554611))['catch'](handleError(_0x28ac2e,null));};function iftimePromise(_0x2a2d73,_0x29f9e7){return respondWithRpcPromise(_0x429a('0x104'),'getSnippet',{'command':_0x29f9e7[_0x429a('0x105')]?util['format'](_0x429a('0x106'),_0x2a2d73[_0x429a('0x107')],_0x29f9e7[_0x429a('0x105')]):util['format'](_0x429a('0x108'),_0x2a2d73[_0x429a('0x107')])},client9002)[_0x429a('0x22')](function(_0x5dd417){var _0x246cb2=_0x5dd417&&_0x5dd417[_0x429a('0x109')](_0x429a('0x10a'))>=0x0?!![]:![];logger[_0x429a('0x23')](_0x429a('0x10b'),_0x29f9e7['id'],_0x2a2d73['id'],_0x2a2d73[_0x429a('0x107')],_0x246cb2?_0x429a('0x10c'):_0x429a('0x10d'),_0x29f9e7[_0x429a('0x105')]?_0x29f9e7[_0x429a('0x105')]:'No\x20timezone');return _0x246cb2;})[_0x429a('0x58')](function(_0xc5bfaa){logger[_0x429a('0x28')](_0x429a('0x10b'),_0x29f9e7['id'],_0x2a2d73['id'],_0x2a2d73[_0x429a('0x107')],util[_0x429a('0x10e')](_0xc5bfaa,{'showHidden':![],'depth':null}),_0x29f9e7[_0x429a('0x105')]?_0x29f9e7[_0x429a('0x105')]:_0x429a('0x10f'));return![];});}exports[_0x429a('0x110')]=function(_0x3affeb,_0x49539b,_0x55be8f){var _0x260793=0x0;var _0x5ee6d6=0x0;var _0x38a40d=![];var _0x22ce00;var _0x4c17d3;return db[_0x429a('0x42')]['find']({'where':{'id':_0x3affeb[_0x429a('0x5a')]['id']},'include':[{'model':db[_0x429a('0x111')],'as':_0x429a('0x111'),'include':[{'model':db[_0x429a('0x111')],'as':_0x429a('0x112'),'attributes':['id','interval'],'raw':!![]}]}]})[_0x429a('0x22')](handleEntityNotFound(_0x49539b,null))[_0x429a('0x22')](function(_0x1a2bbe){if(_0x1a2bbe){_0x22ce00=_0x1a2bbe;return _0x1a2bbe[_0x429a('0x113')]({'raw':!![]});}})[_0x429a('0x22')](function(_0x210688){if(_0x22ce00){if(_0x210688){_0x4c17d3=_0x210688;}}return require(_0x429a('0x7e'))[_0x429a('0x7f')]();})[_0x429a('0x22')](function(_0x40bd64){if(_0x40bd64){_0x5ee6d6=_0x40bd64['virtual'];_0x38a40d=_0x40bd64['custom'];}})['then'](function(){return db[_0x429a('0xb7')][_0x429a('0x32')]({'where':{'closed':![]}});})[_0x429a('0x22')](function(_0x41c0da){_0x260793=_0x41c0da;if(_0x5ee6d6&&_0x41c0da>_0x5ee6d6){return db[_0x429a('0x114')][_0x429a('0x69')]({'where':{'id':0x1}})[_0x429a('0x22')](function(_0x21abde){if(_0x21abde){_0x21abde[_0x429a('0x115')](_0x429a('0x116'));}});}})['then'](function(){if(_0x22ce00['Interval']&&_0x22ce00['Interval'][_0x429a('0x112')]){var _0x18cede=[];for(var _0x27e96a=0x0;_0x27e96a<_0x22ce00[_0x429a('0x111')]['Intervals']['length'];_0x27e96a++){var _0x2f350b=_0x22ce00[_0x429a('0x111')][_0x429a('0x112')][_0x27e96a][_0x429a('0x39')]({'plain':!![]});_0x18cede[_0x429a('0xbf')](iftimePromise(_0x2f350b,_0x22ce00));}return BPromise[_0x429a('0x117')](_0x18cede)[_0x429a('0x22')](function(_0x1e0aea){return _[_0x429a('0x118')](_0x1e0aea);});}else{return!![];}})[_0x429a('0x22')](function(_0x4c990b){var _0x29ce2f=fs[_0x429a('0xd4')](path[_0x429a('0x7b')](config[_0x429a('0x7c')],_0x429a('0x119')),_0x429a('0xd6'));var _0x4b1072={'remote':_0x22ce00['remote'],'query':querystring[_0x429a('0x27')](_[_0x429a('0x52')](_0x22ce00[_0x429a('0x39')]({'plain':!![]}),{'customerIp':_0x3affeb[_0x429a('0x90')][_0x429a('0xaa')]||_0x3affeb[_0x429a('0x90')][_0x429a('0x11a')]||_0x3affeb[_0x429a('0x11b')][_0x429a('0x11c')]||_0x3affeb['ip'],'referer':_0x3affeb[_0x429a('0x90')]['referer'],'openedInteractions':_0x260793,'maxInteractions':_0x5ee6d6,'virtual':_0x38a40d[_0x429a('0x11d')],'online':_0x4c990b,'custom':_0x38a40d}))[_0x429a('0x11e')](/'/g,'\x5c\x27')};_0x49539b[_0x429a('0x3d')](ejs['render'](Mustache['render'](_0x29ce2f,_0x4b1072),{'proactiveActions':_0x4c17d3,'alignment':_0x22ce00['alignment'],'verticalAlignment':_0x22ce00['verticalAlignment'],'div_color':_0x22ce00[_0x429a('0x102')],'text_color':_0x22ce00['textColor'],'button_color':_0x22ce00['color_button'],'background_color':_0x22ce00[_0x429a('0x11f')]}));})[_0x429a('0x58')](handleError(_0x49539b,null));};exports[_0x429a('0x120')]=function(_0x1af2c8,_0x124629,_0x1ae1b5){return db['ChatWebsite'][_0x429a('0x69')]({'where':{'id':_0x1af2c8['params']['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x124629,null))[_0x429a('0x22')](function(_0x537962){if(_0x537962){return db['sequelize'][_0x429a('0x121')](function(_0x3a9ea5){return db['ChatApplication'][_0x429a('0x38')]({'where':{'ChatWebsiteId':_0x1af2c8[_0x429a('0x5a')]['id']},'transaction':_0x3a9ea5})[_0x429a('0x22')](function(_0x41e5b6){var _0x224157=_[_0x429a('0x41')](_0x1af2c8[_0x429a('0x64')],function(_0xf1151d){_0xf1151d[_0x429a('0x67')]=_0x1af2c8[_0x429a('0x5a')]['id'];return _0xf1151d;});return db[_0x429a('0xa1')][_0x429a('0xe1')](_0x224157,{'transaction':_0x3a9ea5});});})[_0x429a('0x22')](function(){return db[_0x429a('0xa1')]['findAndCountAll']({'where':{'ChatWebsiteId':_0x1af2c8[_0x429a('0x5a')]['id']},'order':_0x429a('0x122')});});}})['then'](respondWithResult(_0x124629,null))[_0x429a('0x58')](handleError(_0x124629,null));};exports['getApplications']=function(_0x2ea273,_0x4cb86b,_0x17d18d){var _0x38b28e={};var _0x49f68e={};var _0x1cef62;var _0x26b9c3;return db[_0x429a('0x42')][_0x429a('0x69')]({'where':{'id':_0x2ea273['params']['id']}})['then'](handleEntityNotFound(_0x4cb86b,null))[_0x429a('0x22')](function(_0x90fb1b){if(_0x90fb1b){_0x1cef62=_0x90fb1b;_0x49f68e[_0x429a('0x47')]=_[_0x429a('0x49')](db['ChatApplication']['rawAttributes']);_0x49f68e[_0x429a('0x48')]=_[_0x429a('0x49')](_0x2ea273['query']);_0x49f68e[_0x429a('0x50')]=_['intersection'](_0x49f68e['model'],_0x49f68e[_0x429a('0x48')]);_0x38b28e[_0x429a('0x4c')]=_['intersection'](_0x49f68e[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x2ea273[_0x429a('0x48')]['fields']));_0x38b28e[_0x429a('0x4c')]=_0x38b28e[_0x429a('0x4c')][_0x429a('0x5b')]?_0x38b28e['attributes']:_0x49f68e['model'];_0x38b28e[_0x429a('0x71')]=qs[_0x429a('0x4e')](_0x2ea273[_0x429a('0x48')][_0x429a('0x4e')]);_0x38b28e['where']=qs[_0x429a('0x50')](_[_0x429a('0x4f')](_0x2ea273[_0x429a('0x48')],_0x49f68e[_0x429a('0x50')]));if(_0x2ea273[_0x429a('0x48')]['filter']){_0x38b28e[_0x429a('0x51')]=_[_0x429a('0x52')](_0x38b28e['where'],{'$or':_['map'](_0x38b28e['attributes'],function(_0x53d044){var _0x349328={};_0x349328[_0x53d044]={'$like':'%'+_0x2ea273[_0x429a('0x48')][_0x429a('0x54')]+'%'};return _0x349328;})});}_0x38b28e=_[_0x429a('0x52')]({},_0x38b28e,_0x2ea273[_0x429a('0x55')]);return _0x1cef62[_0x429a('0x123')](_0x38b28e);}})[_0x429a('0x22')](function(_0x610db8){if(_0x610db8){_0x26b9c3=_0x610db8[_0x429a('0x5b')];if(!_0x2ea273['query']['hasOwnProperty'](_0x429a('0x4d'))){_0x38b28e[_0x429a('0x33')]=qs[_0x429a('0x33')](_0x2ea273[_0x429a('0x48')][_0x429a('0x33')]);_0x38b28e[_0x429a('0x30')]=qs[_0x429a('0x30')](_0x2ea273['query'][_0x429a('0x30')]);}return _0x1cef62[_0x429a('0x123')](_0x38b28e);}})[_0x429a('0x22')](function(_0x144de0){if(_0x144de0){return _0x144de0?{'count':_0x26b9c3,'rows':_0x144de0}:null;}})[_0x429a('0x22')](respondWithResult(_0x4cb86b,null))[_0x429a('0x58')](handleError(_0x4cb86b,null));};exports[_0x429a('0x124')]=function(_0x1d9202,_0xb08e0,_0x2e9b96){return db[_0x429a('0x125')][_0x429a('0x5e')]({'where':{'id':_0x1d9202[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0xb08e0,null))['then'](function(_0x1f2965){if(_0x1f2965){return _0x1f2965[_0x429a('0x124')](_0x1d9202['body'][_0x429a('0x6d')],_[_0x429a('0xfd')](_0x1d9202[_0x429a('0x64')],[_0x429a('0x6d'),'id'])||{});}})[_0x429a('0x22')](respondWithResult(_0xb08e0,null))['catch'](handleError(_0xb08e0,null));};exports[_0x429a('0x113')]=function(_0x48b313,_0x35b38e,_0x51eab4){var _0x20b32d={};var _0x3a2836={};var _0x3b1e23;var _0x125ead;return db[_0x429a('0x42')][_0x429a('0x69')]({'where':{'id':_0x48b313[_0x429a('0x5a')]['id']}})['then'](handleEntityNotFound(_0x35b38e,null))[_0x429a('0x22')](function(_0x8a0e8f){if(_0x8a0e8f){_0x3b1e23=_0x8a0e8f;_0x3a2836[_0x429a('0x47')]=_[_0x429a('0x49')](db['ChatProactiveAction'][_0x429a('0x43')]);_0x3a2836[_0x429a('0x48')]=_[_0x429a('0x49')](_0x48b313[_0x429a('0x48')]);_0x3a2836[_0x429a('0x50')]=_['intersection'](_0x3a2836[_0x429a('0x47')],_0x3a2836[_0x429a('0x48')]);_0x20b32d[_0x429a('0x4c')]=_[_0x429a('0x4a')](_0x3a2836[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x48b313[_0x429a('0x48')]['fields']));_0x20b32d[_0x429a('0x4c')]=_0x20b32d[_0x429a('0x4c')]['length']?_0x20b32d['attributes']:_0x3a2836[_0x429a('0x47')];_0x20b32d[_0x429a('0x71')]=qs[_0x429a('0x4e')](_0x48b313[_0x429a('0x48')][_0x429a('0x4e')]);_0x20b32d['where']=qs[_0x429a('0x50')](_[_0x429a('0x4f')](_0x48b313[_0x429a('0x48')],_0x3a2836[_0x429a('0x50')]));if(_0x48b313[_0x429a('0x48')][_0x429a('0x54')]){_0x20b32d['where']=_[_0x429a('0x52')](_0x20b32d[_0x429a('0x51')],{'$or':_[_0x429a('0x41')](_0x20b32d[_0x429a('0x4c')],function(_0x23174b){var _0x483709={};_0x483709[_0x23174b]={'$like':'%'+_0x48b313['query'][_0x429a('0x54')]+'%'};return _0x483709;})});}_0x20b32d=_[_0x429a('0x52')]({},_0x20b32d,_0x48b313[_0x429a('0x55')]);return _0x3b1e23[_0x429a('0x113')](_0x20b32d);}})[_0x429a('0x22')](function(_0x204688){if(_0x204688){_0x125ead=_0x204688[_0x429a('0x5b')];if(!_0x48b313['query'][_0x429a('0x6b')](_0x429a('0x4d'))){_0x20b32d[_0x429a('0x33')]=qs['limit'](_0x48b313[_0x429a('0x48')][_0x429a('0x33')]);_0x20b32d['offset']=qs[_0x429a('0x30')](_0x48b313[_0x429a('0x48')][_0x429a('0x30')]);}return _0x3b1e23[_0x429a('0x113')](_0x20b32d);}})[_0x429a('0x22')](function(_0x14962f){if(_0x14962f){return _0x14962f?{'count':_0x125ead,'rows':_0x14962f}:null;}})['then'](respondWithResult(_0x35b38e,null))[_0x429a('0x58')](handleError(_0x35b38e,null));};exports[_0x429a('0x126')]=function(_0x44615d,_0xbefb04,_0x8de009){var _0x178bee=_0x44615d[_0x429a('0x48')]['online']===_0x429a('0x127')?_0x429a('0x128'):_0x429a('0x129');return db[_0x429a('0x42')]['find']({'attributes':['id',_0x178bee],'where':{'id':_0x44615d[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0xbefb04,null))[_0x429a('0x22')](function(_0x225251){if(_0x225251){var _0x29ef6f=_0x225251[_0x178bee];var _0x2034dd=_0x29ef6f&&_0x29ef6f['items']?_0x29ef6f[_0x429a('0x12a')]:[];_0xbefb04['send']({'fromKey':_[_0x429a('0x81')](_0x29ef6f['fromKey'])?undefined:_0x29ef6f[_0x429a('0x12b')],'count':_0x2034dd[_0x429a('0x5b')],'rows':_0x2034dd});}})[_0x429a('0x58')](handleError(_0xbefb04,null));};exports[_0x429a('0x12c')]=function(_0x3077a8,_0x3ef771,_0x532784){var _0x54f2c2={'raw':![],'where':{}};var _0x421523={};var _0x7c3ab3={'count':0x0,'rows':[]};return db[_0x429a('0x42')]['findOne']({'where':{'id':_0x3077a8[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x3ef771,null))[_0x429a('0x22')](function(_0x4a940b){if(_0x4a940b){_0x421523[_0x429a('0x47')]=_['keys'](db[_0x429a('0xd8')][_0x429a('0x43')]);_0x421523[_0x429a('0x48')]=_['keys'](_0x3077a8['query']);_0x421523[_0x429a('0x50')]=_[_0x429a('0x4a')](_0x421523[_0x429a('0x47')],_0x421523[_0x429a('0x48')]);_0x54f2c2[_0x429a('0x4c')]=_[_0x429a('0x4a')](_0x421523[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x3077a8[_0x429a('0x48')][_0x429a('0x4b')]));_0x54f2c2['attributes']=_0x54f2c2[_0x429a('0x4c')][_0x429a('0x5b')]?_0x54f2c2[_0x429a('0x4c')]:_0x421523[_0x429a('0x47')];if(!_0x3077a8['query'][_0x429a('0x6b')](_0x429a('0x4d'))){_0x54f2c2['limit']=qs[_0x429a('0x33')](_0x3077a8[_0x429a('0x48')][_0x429a('0x33')]);_0x54f2c2[_0x429a('0x30')]=qs['offset'](_0x3077a8[_0x429a('0x48')][_0x429a('0x30')]);}_0x54f2c2[_0x429a('0x71')]=qs['sort'](_0x3077a8[_0x429a('0x48')][_0x429a('0x4e')]);_0x54f2c2[_0x429a('0x51')]=qs[_0x429a('0x50')](_[_0x429a('0x4f')](_0x3077a8[_0x429a('0x48')],_0x421523[_0x429a('0x50')]));_0x54f2c2['where'][_0x429a('0x67')]=_0x4a940b['id'];if(_0x3077a8['query'][_0x429a('0x54')]){_0x54f2c2[_0x429a('0x51')]=_['merge'](_0x54f2c2['where'],{'$or':_[_0x429a('0x41')](_0x54f2c2[_0x429a('0x4c')],function(_0x2ed44b){var _0x3145ab={};_0x3145ab[_0x2ed44b]={'$like':'%'+_0x3077a8[_0x429a('0x48')][_0x429a('0x54')]+'%'};return _0x3145ab;})});}_0x54f2c2=_[_0x429a('0x52')]({},_0x54f2c2,_0x3077a8[_0x429a('0x55')]);return db[_0x429a('0xd8')][_0x429a('0x32')]({'where':_0x54f2c2[_0x429a('0x51')]})[_0x429a('0x22')](function(_0x544bec){_0x7c3ab3[_0x429a('0x32')]=_0x544bec;if(_0x3077a8[_0x429a('0x48')][_0x429a('0x5c')]){_0x54f2c2[_0x429a('0x5d')]=[{'all':!![]}];}else{_0x54f2c2[_0x429a('0x5d')]=[{'model':db[_0x429a('0x92')],'as':_0x429a('0x12d'),'required':![]},{'model':db[_0x429a('0xe0')],'as':_0x429a('0x12e'),'required':![]}];}return db[_0x429a('0xd8')][_0x429a('0x56')](_0x54f2c2);})[_0x429a('0x22')](function(_0x237c68){_0x7c3ab3['rows']=_0x237c68;return _0x7c3ab3;});}})[_0x429a('0x22')](respondWithFilteredResult(_0x3ef771,_0x54f2c2))['catch'](handleError(_0x3ef771,null));};exports[_0x429a('0x12f')]=function(_0x51d15d,_0x53deb5,_0x455cef){return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x51d15d[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x53deb5,null))[_0x429a('0x22')](function(_0x28a924){if(_0x28a924){return _0x28a924[_0x429a('0x12f')](_0x51d15d[_0x429a('0x64')][_0x429a('0x6d')],_[_0x429a('0xfd')](_0x51d15d[_0x429a('0x64')],[_0x429a('0x6d'),'id'])||{})[_0x429a('0xbb')](function(_0x51a21b){for(var _0x1532fa=0x0;_0x1532fa<_0x51d15d[_0x429a('0x64')]['ids'][_0x429a('0x5b')];_0x1532fa+=0x1){socket[_0x429a('0x130')]('userChatWebsite:save',{'UserId':Number(_0x51d15d[_0x429a('0x64')][_0x429a('0x6d')][_0x1532fa]),'ChatWebsiteId':Number(_0x51d15d['params']['id'])});}return _0x51a21b;});}})[_0x429a('0x22')](respondWithResult(_0x53deb5,null))[_0x429a('0x58')](handleError(_0x53deb5,null));};exports[_0x429a('0x131')]=function(_0x351234,_0xa89b34,_0x41802e){return db[_0x429a('0x42')][_0x429a('0x5e')]({'where':{'id':_0x351234[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0xa89b34,null))[_0x429a('0x22')](function(_0x4cb022){if(_0x4cb022){return _0x4cb022[_0x429a('0x131')](_0x351234[_0x429a('0x48')][_0x429a('0x6d')])['then'](function(){if(_[_0x429a('0x132')](_0x351234[_0x429a('0x48')][_0x429a('0x6d')])){for(var _0x3b6821=0x0;_0x3b6821<_0x351234['query'][_0x429a('0x6d')][_0x429a('0x5b')];_0x3b6821+=0x1){socket[_0x429a('0x130')]('userChatWebsite:remove',{'UserId':Number(_0x351234[_0x429a('0x48')][_0x429a('0x6d')][_0x3b6821]),'ChatWebsiteId':Number(_0x351234[_0x429a('0x5a')]['id'])});}}else{socket[_0x429a('0x130')]('userChatWebsite:remove',{'UserId':Number(_0x351234['query'][_0x429a('0x6d')]),'ChatWebsiteId':Number(_0x351234[_0x429a('0x5a')]['id'])});}});}})[_0x429a('0x22')](respondWithStatusCode(_0xa89b34,null))[_0x429a('0x58')](handleError(_0xa89b34,null));};exports[_0x429a('0x133')]=function(_0x4d58a7,_0x553d23,_0x5b2ceb){var _0x3f4970={};var _0x167c5d={};var _0x39814e;var _0x500d22;return db[_0x429a('0x42')]['findOne']({'where':{'id':_0x4d58a7[_0x429a('0x5a')]['id']}})[_0x429a('0x22')](handleEntityNotFound(_0x553d23,null))['then'](function(_0x2c5031){if(_0x2c5031){_0x39814e=_0x2c5031;_0x167c5d['model']=_[_0x429a('0x49')](db[_0x429a('0xc3')][_0x429a('0x43')]);_0x167c5d['query']=_['keys'](_0x4d58a7['query']);_0x167c5d[_0x429a('0x50')]=_[_0x429a('0x4a')](_0x167c5d[_0x429a('0x47')],_0x167c5d[_0x429a('0x48')]);_0x3f4970['attributes']=_[_0x429a('0x4a')](_0x167c5d[_0x429a('0x47')],qs[_0x429a('0x4b')](_0x4d58a7['query']['fields']));_0x3f4970[_0x429a('0x4c')]=_0x3f4970['attributes'][_0x429a('0x5b')]?_0x3f4970[_0x429a('0x4c')]:_0x167c5d['model'];_0x3f4970[_0x429a('0x71')]=qs[_0x429a('0x4e')](_0x4d58a7[_0x429a('0x48')][_0x429a('0x4e')]);_0x3f4970[_0x429a('0x51')]=qs[_0x429a('0x50')](_[_0x429a('0x4f')](_0x4d58a7[_0x429a('0x48')],_0x167c5d[_0x429a('0x50')]));if(_0x4d58a7[_0x429a('0x48')][_0x429a('0x54')]){_0x3f4970[_0x429a('0x51')]=_[_0x429a('0x52')](_0x3f4970[_0x429a('0x51')],{'$or':_[_0x429a('0x41')](_0x3f4970[_0x429a('0x4c')],function(_0x2b0884){var _0x5821c4={};_0x5821c4[_0x2b0884]={'$like':'%'+_0x4d58a7[_0x429a('0x48')]['filter']+'%'};return _0x5821c4;})});}_0x3f4970=_['merge']({},_0x3f4970,_0x4d58a7['options']);return _0x39814e[_0x429a('0x133')](_0x3f4970);}})[_0x429a('0x22')](function(_0x23403f){if(_0x23403f){_0x500d22=_0x23403f['length'];if(!_0x4d58a7['query']['hasOwnProperty']('nolimit')){_0x3f4970[_0x429a('0x33')]=qs[_0x429a('0x33')](_0x4d58a7[_0x429a('0x48')][_0x429a('0x33')]);_0x3f4970[_0x429a('0x30')]=qs[_0x429a('0x30')](_0x4d58a7['query'][_0x429a('0x30')]);}return _0x39814e[_0x429a('0x133')](_0x3f4970);}})['then'](function(_0x18e58f){if(_0x18e58f){return _0x18e58f?{'count':_0x500d22,'rows':_0x18e58f}:null;}})['then'](respondWithResult(_0x553d23,null))['catch'](handleError(_0x553d23,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59ce=['../../mysqldb','ChatWebsite','save','update','remove','emit','events'];(function(_0x39c734,_0x2f3e06){var _0xb2a2f9=function(_0x502f3f){while(--_0x502f3f){_0x39c734['push'](_0x39c734['shift']());}};_0xb2a2f9(++_0x2f3e06);}(_0x59ce,0x92));var _0xe59c=function(_0x1cc224,_0x3eafe9){_0x1cc224=_0x1cc224-0x0;var _0x36baf1=_0x59ce[_0x1cc224];return _0x36baf1;};'use strict';var EventEmitter=require(_0xe59c('0x0'));var ChatWebsite=require(_0xe59c('0x1'))['db'][_0xe59c('0x2')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xe59c('0x3'),'afterUpdate':_0xe59c('0x4'),'afterDestroy':_0xe59c('0x5')};function emitEvent(_0x4178c1){return function(_0x2ea56e,_0x42a856,_0x20fc88){ChatWebsiteEvents['emit'](_0x4178c1+':'+_0x2ea56e['id'],_0x2ea56e);ChatWebsiteEvents[_0xe59c('0x6')](_0x4178c1,_0x2ea56e);_0x20fc88(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module['exports']=ChatWebsiteEvents;
\ No newline at end of file
+var _0x323b=['emit','hasOwnProperty','events','ChatWebsite','setMaxListeners','save','remove'];(function(_0x4745cb,_0x276412){var _0x538f64=function(_0x5f0c98){while(--_0x5f0c98){_0x4745cb['push'](_0x4745cb['shift']());}};_0x538f64(++_0x276412);}(_0x323b,0x1ad));var _0xb323=function(_0x1d8ff0,_0x38071b){_0x1d8ff0=_0x1d8ff0-0x0;var _0x128e01=_0x323b[_0x1d8ff0];return _0x128e01;};'use strict';var EventEmitter=require(_0xb323('0x0'));var ChatWebsite=require('../../mysqldb')['db'][_0xb323('0x1')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0xb323('0x2')](0x0);var events={'afterCreate':_0xb323('0x3'),'afterUpdate':'update','afterDestroy':_0xb323('0x4')};function emitEvent(_0x4532c7){return function(_0x3bcab5,_0x2132bd,_0x38f1d0){ChatWebsiteEvents[_0xb323('0x5')](_0x4532c7+':'+_0x3bcab5['id'],_0x3bcab5);ChatWebsiteEvents[_0xb323('0x5')](_0x4532c7,_0x3bcab5);_0x38f1d0(null);};}for(var e in events){if(events[_0xb323('0x6')](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module['exports']=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63d3=['../../config/logger','moment','request-promise','path','../../config/environment','./chatWebsite.attributes','exports','define','ChatWebsite'];(function(_0x2a755f,_0x343d3c){var _0x111fad=function(_0x337796){while(--_0x337796){_0x2a755f['push'](_0x2a755f['shift']());}};_0x111fad(++_0x343d3c);}(_0x63d3,0x120));var _0x363d=function(_0x2f14d6,_0x5db8da){_0x2f14d6=_0x2f14d6-0x0;var _0x2bdaa9=_0x63d3[_0x2f14d6];return _0x2bdaa9;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x363d('0x0'))('api');var moment=require(_0x363d('0x1'));var BPromise=require('bluebird');var rp=require(_0x363d('0x2'));var fs=require('fs');var path=require(_0x363d('0x3'));var rimraf=require('rimraf');var config=require(_0x363d('0x4'));var attributes=require(_0x363d('0x5'));module[_0x363d('0x6')]=function(_0x36b20b,_0x338c6e){return _0x36b20b[_0x363d('0x7')](_0x363d('0x8'),attributes,{'tableName':'chat_websites','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2773=['bluebird','request-promise','path','rimraf','../../config/environment','define','ChatWebsite','chat_websites','lodash','util','../../config/logger','api','moment'];(function(_0x5e3701,_0x596265){var _0x345dcf=function(_0x5eb12a){while(--_0x5eb12a){_0x5e3701['push'](_0x5e3701['shift']());}};_0x345dcf(++_0x596265);}(_0x2773,0x1dc));var _0x3277=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x2773[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0x3277('0x0'));var util=require(_0x3277('0x1'));var logger=require(_0x3277('0x2'))(_0x3277('0x3'));var moment=require(_0x3277('0x4'));var BPromise=require(_0x3277('0x5'));var rp=require(_0x3277('0x6'));var fs=require('fs');var path=require(_0x3277('0x7'));var rimraf=require(_0x3277('0x8'));var config=require(_0x3277('0x9'));var attributes=require('./chatWebsite.attributes');module['exports']=function(_0x428144,_0x159da0){return _0x428144[_0x3277('0xa')](_0x3277('0xb'),attributes,{'tableName':_0x3277('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e82=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./chatWebsite.socket','register','request','then','info','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatWebsite,\x20%s,\x20%s','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x5b0f33,_0x1708e2){var _0x2842fa=function(_0x3edfb7){while(--_0x3edfb7){_0x5b0f33['push'](_0x5b0f33['shift']());}};_0x2842fa(++_0x1708e2);}(_0x0e82,0x130));var _0x20e8=function(_0x5ee6f3,_0x4cf046){_0x5ee6f3=_0x5ee6f3-0x0;var _0xa0a711=_0x0e82[_0x5ee6f3];return _0xa0a711;};'use strict';var _=require(_0x20e8('0x0'));var util=require('util');var moment=require(_0x20e8('0x1'));var BPromise=require(_0x20e8('0x2'));var rs=require(_0x20e8('0x3'));var fs=require('fs');var Redis=require(_0x20e8('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x20e8('0x5'));var logger=require(_0x20e8('0x6'))(_0x20e8('0x7'));var config=require(_0x20e8('0x8'));var jayson=require(_0x20e8('0x9'));var client=jayson[_0x20e8('0xa')][_0x20e8('0xb')]({'port':0x232a});config[_0x20e8('0xc')]=_[_0x20e8('0xd')](config[_0x20e8('0xc')],{'host':_0x20e8('0xe'),'port':0x18eb});var socket=require(_0x20e8('0xf'))(new Redis(config['redis']));require(_0x20e8('0x10'))[_0x20e8('0x11')](socket);function respondWithRpcPromise(_0x1c3b5d,_0x37da69,_0x16cb1a){return new BPromise(function(_0x1a3f9c,_0x52eca4){return client[_0x20e8('0x12')](_0x1c3b5d,_0x16cb1a)[_0x20e8('0x13')](function(_0x4aa313){logger[_0x20e8('0x14')]('ChatWebsite,\x20%s,\x20%s',_0x37da69,_0x20e8('0x15'));logger[_0x20e8('0x16')](_0x20e8('0x17'),_0x37da69,'request\x20sent',JSON[_0x20e8('0x18')](_0x4aa313));if(_0x4aa313[_0x20e8('0x19')]){if(_0x4aa313[_0x20e8('0x19')][_0x20e8('0x1a')]===0x1f4){logger[_0x20e8('0x19')](_0x20e8('0x1b'),_0x37da69,_0x4aa313['error']['message']);return _0x52eca4(_0x4aa313['error'][_0x20e8('0x1c')]);}logger['error'](_0x20e8('0x1b'),_0x37da69,_0x4aa313[_0x20e8('0x19')][_0x20e8('0x1c')]);return _0x1a3f9c(_0x4aa313[_0x20e8('0x19')][_0x20e8('0x1c')]);}else{logger['info'](_0x20e8('0x1b'),_0x37da69,_0x20e8('0x15'));_0x1a3f9c(_0x4aa313[_0x20e8('0x1d')][_0x20e8('0x1c')]);}})[_0x20e8('0x1e')](function(_0xb14ea1){logger[_0x20e8('0x19')]('ChatWebsite,\x20%s,\x20%s',_0x37da69,_0xb14ea1);_0x52eca4(_0xb14ea1);});});}
\ No newline at end of file
+var _0x710a=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','register','request','then','info','ChatWebsite,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring'];(function(_0x5c437c,_0x48c79a){var _0x1d9d21=function(_0x4836e0){while(--_0x4836e0){_0x5c437c['push'](_0x5c437c['shift']());}};_0x1d9d21(++_0x48c79a);}(_0x710a,0x1e1));var _0xa710=function(_0x3cde08,_0xcd905e){_0x3cde08=_0x3cde08-0x0;var _0x30d4b0=_0x710a[_0x3cde08];return _0x30d4b0;};'use strict';var _=require(_0xa710('0x0'));var util=require(_0xa710('0x1'));var moment=require(_0xa710('0x2'));var BPromise=require(_0xa710('0x3'));var rs=require(_0xa710('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa710('0x5'))['db'];var utils=require(_0xa710('0x6'));var logger=require(_0xa710('0x7'))(_0xa710('0x8'));var config=require(_0xa710('0x9'));var jayson=require(_0xa710('0xa'));var client=jayson[_0xa710('0xb')][_0xa710('0xc')]({'port':0x232a});config[_0xa710('0xd')]=_['defaults'](config[_0xa710('0xd')],{'host':_0xa710('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa710('0xd')]));require('./chatWebsite.socket')[_0xa710('0xf')](socket);function respondWithRpcPromise(_0x5e920f,_0x47bf32,_0x182d4e){return new BPromise(function(_0x5687f5,_0x14208d){return client[_0xa710('0x10')](_0x5e920f,_0x182d4e)[_0xa710('0x11')](function(_0x104b01){logger[_0xa710('0x12')](_0xa710('0x13'),_0x47bf32,'request\x20sent');logger[_0xa710('0x14')]('ChatWebsite,\x20%s,\x20%s,\x20%s',_0x47bf32,_0xa710('0x15'),JSON[_0xa710('0x16')](_0x104b01));if(_0x104b01[_0xa710('0x17')]){if(_0x104b01['error'][_0xa710('0x18')]===0x1f4){logger[_0xa710('0x17')]('ChatWebsite,\x20%s,\x20%s',_0x47bf32,_0x104b01[_0xa710('0x17')]['message']);return _0x14208d(_0x104b01[_0xa710('0x17')][_0xa710('0x19')]);}logger['error'](_0xa710('0x13'),_0x47bf32,_0x104b01[_0xa710('0x17')][_0xa710('0x19')]);return _0x5687f5(_0x104b01[_0xa710('0x17')][_0xa710('0x19')]);}else{logger[_0xa710('0x12')](_0xa710('0x13'),_0x47bf32,'request\x20sent');_0x5687f5(_0x104b01[_0xa710('0x1a')][_0xa710('0x19')]);}})['catch'](function(_0x5a73a3){logger[_0xa710('0x17')](_0xa710('0x13'),_0x47bf32,_0x5a73a3);_0x14208d(_0x5a73a3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf639=['register','save','removeListener'];(function(_0xe8b4df,_0x14ed44){var _0x143aa8=function(_0x40df62){while(--_0x40df62){_0xe8b4df['push'](_0xe8b4df['shift']());}};_0x143aa8(++_0x14ed44);}(_0xf639,0x17e));var _0x9f63=function(_0x57ddbd,_0x1d83de){_0x57ddbd=_0x57ddbd-0x0;var _0x10da80=_0xf639[_0x57ddbd];return _0x10da80;};'use strict';var ChatWebsiteEvents=require('./chatWebsite.events');var events=[_0x9f63('0x0'),'remove','update'];function createListener(_0x42303a,_0x4e374a){return function(_0x1c91dc){_0x4e374a['emit'](_0x42303a,_0x1c91dc);};}function removeListener(_0x5d3ac6,_0x275a41){return function(){ChatWebsiteEvents[_0x9f63('0x1')](_0x5d3ac6,_0x275a41);};}exports[_0x9f63('0x2')]=function(_0x59ffff){for(var _0x227463=0x0,_0x51ba48=events['length'];_0x227463<_0x51ba48;_0x227463++){var _0x3d3965=events[_0x227463];var _0x2d8ff4=createListener('chatWebsite:'+_0x3d3965,_0x59ffff);ChatWebsiteEvents['on'](_0x3d3965,_0x2d8ff4);}};
\ No newline at end of file
+var _0x7067=['save','remove','update','emit','chatWebsite:','./chatWebsite.events'];(function(_0x7dbd65,_0x18da49){var _0x33d551=function(_0x7ce789){while(--_0x7ce789){_0x7dbd65['push'](_0x7dbd65['shift']());}};_0x33d551(++_0x18da49);}(_0x7067,0xe9));var _0x7706=function(_0x2bebb1,_0x3affa4){_0x2bebb1=_0x2bebb1-0x0;var _0x229e69=_0x7067[_0x2bebb1];return _0x229e69;};'use strict';var ChatWebsiteEvents=require(_0x7706('0x0'));var events=[_0x7706('0x1'),_0x7706('0x2'),_0x7706('0x3')];function createListener(_0x6e8e66,_0x269db3){return function(_0x4c2456){_0x269db3[_0x7706('0x4')](_0x6e8e66,_0x4c2456);};}function removeListener(_0x5f59e7,_0x59aa43){return function(){ChatWebsiteEvents['removeListener'](_0x5f59e7,_0x59aa43);};}exports['register']=function(_0x3a762c){for(var _0xe527e1=0x0,_0x4f6df4=events['length'];_0xe527e1<_0x4f6df4;_0xe527e1++){var _0x269b66=events[_0xe527e1];var _0x389373=createListener(_0x7706('0x5')+_0x269b66,_0x3a762c);ChatWebsiteEvents['on'](_0x269b66,_0x389373);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ae3=['extname','any','offline','addInteraction','addProactiveActions','/:id/users','addAgents','delete','destroy','removeDispositions','removeAnswers','removeAgents','multer','util','path','connect-timeout','express','../../components/auth/service','isAuthenticated','index','/describe','describe','/:id','show','get','/:id/dispositions','getDispositions','getAnswers','getLogo','/:id/avatar','getAvatar','/:id/customer_avatar','getCustomerAvatar','getSystemAvatar','/:id/interactions','getInteractions','/:id/snippet','getSnippet','/:id/applications','getProactiveActions','/:id/fields','/:id/offline_messages','getOfflineMessages','getAgents','post','create','addDisposition','/:id/canned_answers','addAnswer','join','root','server/files/images/logos/','%s-%s','now','originalname','single','file','format','addAvatar','diskStorage','server/files/images/avatars/','/:id/system_avatar','addSystemAvatar','notify','server/files','attachments','replace'];(function(_0x29e57b,_0x4cdf7d){var _0x4cf22d=function(_0x44f6d7){while(--_0x44f6d7){_0x29e57b['push'](_0x29e57b['shift']());}};_0x4cf22d(++_0x4cdf7d);}(_0x6ae3,0x19e));var _0x36ae=function(_0x53377b,_0x5ebf03){_0x53377b=_0x53377b-0x0;var _0x20309d=_0x6ae3[_0x53377b];return _0x20309d;};'use strict';var multer=require(_0x36ae('0x0'));var util=require(_0x36ae('0x1'));var path=require(_0x36ae('0x2'));var timeout=require(_0x36ae('0x3'));var express=require(_0x36ae('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x36ae('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./chatWebsite.controller');router['get']('/',auth[_0x36ae('0x6')](),controller[_0x36ae('0x7')]);router['get'](_0x36ae('0x8'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x9')]);router['get'](_0x36ae('0xa'),auth[_0x36ae('0x6')](),controller[_0x36ae('0xb')]);router[_0x36ae('0xc')](_0x36ae('0xd'),auth[_0x36ae('0x6')](),controller[_0x36ae('0xe')]);router['get']('/:id/canned_answers',auth[_0x36ae('0x6')](),controller[_0x36ae('0xf')]);router['get']('/:id/logo',controller[_0x36ae('0x10')]);router[_0x36ae('0xc')](_0x36ae('0x11'),controller[_0x36ae('0x12')]);router[_0x36ae('0xc')](_0x36ae('0x13'),controller[_0x36ae('0x14')]);router[_0x36ae('0xc')]('/:id/system_avatar',controller[_0x36ae('0x15')]);router[_0x36ae('0xc')](_0x36ae('0x16'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x17')]);router[_0x36ae('0xc')](_0x36ae('0x18'),controller[_0x36ae('0x19')]);router['get'](_0x36ae('0x1a'),auth[_0x36ae('0x6')](),controller['getApplications']);router[_0x36ae('0xc')]('/:id/proactive_actions',auth[_0x36ae('0x6')](),controller[_0x36ae('0x1b')]);router[_0x36ae('0xc')](_0x36ae('0x1c'),controller['getFields']);router[_0x36ae('0xc')](_0x36ae('0x1d'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x1e')]);router['get']('/:id/users',auth[_0x36ae('0x6')](),controller[_0x36ae('0x1f')]);router[_0x36ae('0x20')]('/',auth[_0x36ae('0x6')](),controller[_0x36ae('0x21')]);router['post'](_0x36ae('0xd'),auth['isAuthenticated'](),controller[_0x36ae('0x22')]);router['post'](_0x36ae('0x23'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x24')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x2c97f3,_0x1ae427,_0x110101){_0x110101(null,path[_0x36ae('0x25')](config[_0x36ae('0x26')],_0x36ae('0x27')));},'filename':function(_0x123063,_0xda6693,_0x1d8142){_0x1d8142(null,util['format'](_0x36ae('0x28'),Date[_0x36ae('0x29')](),_0xda6693[_0x36ae('0x2a')]));}})});router['post']('/:id/logo',upload[_0x36ae('0x2b')](_0x36ae('0x2c')),controller['addLogo']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x25a546,_0xfc86c,_0x2fa5a9){_0x2fa5a9(null,path[_0x36ae('0x25')](config['root'],'server/files/images/avatars/'));},'filename':function(_0x3cfa6b,_0x4d91c1,_0x544573){_0x544573(null,util[_0x36ae('0x2d')](_0x36ae('0x28'),Date[_0x36ae('0x29')](),_0x4d91c1[_0x36ae('0x2a')]));}})});router['post']('/:id/avatar',upload[_0x36ae('0x2b')]('file'),controller[_0x36ae('0x2e')]);var upload=multer({'storage':multer[_0x36ae('0x2f')]({'destination':function(_0x21675c,_0x37021e,_0x1bf6f9){_0x1bf6f9(null,path[_0x36ae('0x25')](config[_0x36ae('0x26')],_0x36ae('0x30')));},'filename':function(_0x12fb60,_0x20d4aa,_0x4d733e){_0x4d733e(null,util['format'](_0x36ae('0x28'),Date[_0x36ae('0x29')](),_0x20d4aa[_0x36ae('0x2a')]));}})});router['post'](_0x36ae('0x13'),upload['single'](_0x36ae('0x2c')),controller['addCustomerAvatar']);var upload=multer({'storage':multer[_0x36ae('0x2f')]({'destination':function(_0x3dbb3d,_0x27c921,_0x4c4651){_0x4c4651(null,path[_0x36ae('0x25')](config[_0x36ae('0x26')],_0x36ae('0x30')));},'filename':function(_0x7e023d,_0x38a634,_0x3b0f21){_0x3b0f21(null,util[_0x36ae('0x2d')](_0x36ae('0x28'),Date['now'](),_0x38a634['originalname']));}})});router['post'](_0x36ae('0x31'),upload[_0x36ae('0x2b')]('file'),controller[_0x36ae('0x32')]);router['post']('/:id/notify',controller[_0x36ae('0x33')]);const offlineUploadMulter=multer({'storage':multer[_0x36ae('0x2f')]({'destination':function(_0x2963da,_0x5a806a,_0x51edaf){const _0x145fbd=path[_0x36ae('0x25')](config[_0x36ae('0x26')],_0x36ae('0x34'),_0x36ae('0x35'),'offline-chat');fs_extra['ensureDir'](_0x145fbd,function(){_0x51edaf(null,_0x145fbd);});},'filename':function(_0x45ce69,_0x410cbd,_0x30bf55){const _0x1b712c=_0x410cbd[_0x36ae('0x2a')][_0x36ae('0x36')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x41eb56=path[_0x36ae('0x37')](_0x1b712c);const _0x2cc637=Date['now']()+'-'+_0x1b712c['replace'](_0x41eb56,'')+_0x41eb56;_0x30bf55(null,_0x2cc637);}})});router[_0x36ae('0x20')]('/:id/offline',offlineUploadMulter[_0x36ae('0x38')](),controller[_0x36ae('0x39')]);router['post']('/:id/interactions',auth[_0x36ae('0x6')](),controller[_0x36ae('0x3a')]);router['post'](_0x36ae('0x1a'),auth[_0x36ae('0x6')](),controller['addApplications']);router[_0x36ae('0x20')]('/:id/proactive_actions',auth['isAuthenticated'](),controller[_0x36ae('0x3b')]);router[_0x36ae('0x20')](_0x36ae('0x3c'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x3d')]);router['put'](_0x36ae('0xa'),auth['isAuthenticated'](),controller['update']);router[_0x36ae('0x3e')](_0x36ae('0xa'),auth['isAuthenticated'](),controller[_0x36ae('0x3f')]);router[_0x36ae('0x3e')](_0x36ae('0xd'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x40')]);router[_0x36ae('0x3e')](_0x36ae('0x23'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x41')]);router[_0x36ae('0x3e')](_0x36ae('0x3c'),auth[_0x36ae('0x6')](),controller[_0x36ae('0x42')]);module['exports']=router;
\ No newline at end of file
+var _0x1a42=['single','addAvatar','diskStorage','addCustomerAvatar','/:id/system_avatar','addSystemAvatar','/:id/notify','notify','server/files','offline-chat','ensureDir','replace','extname','/:id/offline','offline','addInteraction','addApplications','addProactiveActions','addAgents','put','update','delete','destroy','removeDispositions','removeAnswers','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatWebsite.controller','isAuthenticated','index','get','/:id','show','/:id/dispositions','/:id/canned_answers','getLogo','/:id/avatar','getAvatar','/:id/customer_avatar','getCustomerAvatar','getSystemAvatar','/:id/interactions','getInteractions','getSnippet','/:id/applications','getApplications','/:id/proactive_actions','getFields','/:id/offline_messages','getOfflineMessages','/:id/users','getAgents','post','addDisposition','addAnswer','join','root','server/files/images/logos/','format','originalname','file','addLogo','server/files/images/avatars/','%s-%s','now'];(function(_0x1fafb7,_0x4e4575){var _0x37b3e9=function(_0x231927){while(--_0x231927){_0x1fafb7['push'](_0x1fafb7['shift']());}};_0x37b3e9(++_0x4e4575);}(_0x1a42,0x13a));var _0x21a4=function(_0x11722b,_0x247eb2){_0x11722b=_0x11722b-0x0;var _0x2065f0=_0x1a42[_0x11722b];return _0x2065f0;};'use strict';var multer=require(_0x21a4('0x0'));var util=require(_0x21a4('0x1'));var path=require('path');var timeout=require(_0x21a4('0x2'));var express=require(_0x21a4('0x3'));var router=express[_0x21a4('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x21a4('0x5'));var interaction=require(_0x21a4('0x6'));var config=require(_0x21a4('0x7'));var controller=require(_0x21a4('0x8'));router['get']('/',auth[_0x21a4('0x9')](),controller[_0x21a4('0xa')]);router[_0x21a4('0xb')]('/describe',auth[_0x21a4('0x9')](),controller['describe']);router[_0x21a4('0xb')](_0x21a4('0xc'),auth['isAuthenticated'](),controller[_0x21a4('0xd')]);router[_0x21a4('0xb')](_0x21a4('0xe'),auth[_0x21a4('0x9')](),controller['getDispositions']);router[_0x21a4('0xb')](_0x21a4('0xf'),auth[_0x21a4('0x9')](),controller['getAnswers']);router[_0x21a4('0xb')]('/:id/logo',controller[_0x21a4('0x10')]);router[_0x21a4('0xb')](_0x21a4('0x11'),controller[_0x21a4('0x12')]);router[_0x21a4('0xb')](_0x21a4('0x13'),controller[_0x21a4('0x14')]);router['get']('/:id/system_avatar',controller[_0x21a4('0x15')]);router[_0x21a4('0xb')](_0x21a4('0x16'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x17')]);router['get']('/:id/snippet',controller[_0x21a4('0x18')]);router[_0x21a4('0xb')](_0x21a4('0x19'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x1a')]);router['get'](_0x21a4('0x1b'),auth['isAuthenticated'](),controller['getProactiveActions']);router[_0x21a4('0xb')]('/:id/fields',controller[_0x21a4('0x1c')]);router[_0x21a4('0xb')](_0x21a4('0x1d'),auth['isAuthenticated'](),controller[_0x21a4('0x1e')]);router['get'](_0x21a4('0x1f'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x20')]);router['post']('/',auth[_0x21a4('0x9')](),controller['create']);router[_0x21a4('0x21')]('/:id/dispositions',auth[_0x21a4('0x9')](),controller[_0x21a4('0x22')]);router[_0x21a4('0x21')](_0x21a4('0xf'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x23')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x4f98bb,_0x5353b3,_0xbd0b81){_0xbd0b81(null,path[_0x21a4('0x24')](config[_0x21a4('0x25')],_0x21a4('0x26')));},'filename':function(_0x41f44e,_0x56ded5,_0x3d0f14){_0x3d0f14(null,util[_0x21a4('0x27')]('%s-%s',Date['now'](),_0x56ded5[_0x21a4('0x28')]));}})});router['post']('/:id/logo',upload['single'](_0x21a4('0x29')),controller[_0x21a4('0x2a')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x4e6d4e,_0x47e4f0,_0x36071e){_0x36071e(null,path[_0x21a4('0x24')](config[_0x21a4('0x25')],_0x21a4('0x2b')));},'filename':function(_0x59eabb,_0x944544,_0x1a6f67){_0x1a6f67(null,util[_0x21a4('0x27')](_0x21a4('0x2c'),Date[_0x21a4('0x2d')](),_0x944544['originalname']));}})});router[_0x21a4('0x21')](_0x21a4('0x11'),upload[_0x21a4('0x2e')](_0x21a4('0x29')),controller[_0x21a4('0x2f')]);var upload=multer({'storage':multer[_0x21a4('0x30')]({'destination':function(_0x25ad4e,_0x3bd80c,_0x35b65c){_0x35b65c(null,path[_0x21a4('0x24')](config[_0x21a4('0x25')],_0x21a4('0x2b')));},'filename':function(_0x5e207a,_0x2d96d7,_0xd5f4d9){_0xd5f4d9(null,util[_0x21a4('0x27')](_0x21a4('0x2c'),Date[_0x21a4('0x2d')](),_0x2d96d7[_0x21a4('0x28')]));}})});router[_0x21a4('0x21')]('/:id/customer_avatar',upload['single'](_0x21a4('0x29')),controller[_0x21a4('0x31')]);var upload=multer({'storage':multer[_0x21a4('0x30')]({'destination':function(_0xc76ebd,_0xb2aa26,_0x5b04f0){_0x5b04f0(null,path[_0x21a4('0x24')](config['root'],_0x21a4('0x2b')));},'filename':function(_0x3700fa,_0x376f70,_0x387605){_0x387605(null,util[_0x21a4('0x27')](_0x21a4('0x2c'),Date[_0x21a4('0x2d')](),_0x376f70[_0x21a4('0x28')]));}})});router[_0x21a4('0x21')](_0x21a4('0x32'),upload[_0x21a4('0x2e')]('file'),controller[_0x21a4('0x33')]);router[_0x21a4('0x21')](_0x21a4('0x34'),controller[_0x21a4('0x35')]);const offlineUploadMulter=multer({'storage':multer[_0x21a4('0x30')]({'destination':function(_0x2da877,_0x32c39f,_0x5dc94d){const _0x5e83e9=path['join'](config[_0x21a4('0x25')],_0x21a4('0x36'),'attachments',_0x21a4('0x37'));fs_extra[_0x21a4('0x38')](_0x5e83e9,function(){_0x5dc94d(null,_0x5e83e9);});},'filename':function(_0x33356a,_0x48abe0,_0x31050d){const _0x1559c1=_0x48abe0['originalname'][_0x21a4('0x39')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x8c64de=path[_0x21a4('0x3a')](_0x1559c1);const _0x13986f=Date[_0x21a4('0x2d')]()+'-'+_0x1559c1[_0x21a4('0x39')](_0x8c64de,'')+_0x8c64de;_0x31050d(null,_0x13986f);}})});router[_0x21a4('0x21')](_0x21a4('0x3b'),offlineUploadMulter['any'](),controller[_0x21a4('0x3c')]);router[_0x21a4('0x21')](_0x21a4('0x16'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x3d')]);router['post']('/:id/applications',auth[_0x21a4('0x9')](),controller[_0x21a4('0x3e')]);router['post'](_0x21a4('0x1b'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x3f')]);router['post']('/:id/users',auth[_0x21a4('0x9')](),controller[_0x21a4('0x40')]);router[_0x21a4('0x41')](_0x21a4('0xc'),auth['isAuthenticated'](),controller[_0x21a4('0x42')]);router[_0x21a4('0x43')]('/:id',auth[_0x21a4('0x9')](),controller[_0x21a4('0x44')]);router[_0x21a4('0x43')](_0x21a4('0xe'),auth[_0x21a4('0x9')](),controller[_0x21a4('0x45')]);router['delete']('/:id/canned_answers',auth[_0x21a4('0x9')](),controller[_0x21a4('0x46')]);router['delete']('/:id/users',auth['isAuthenticated'](),controller['removeAgents']);module[_0x21a4('0x47')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7dee=['sequelize','STRING','AmazonAWS','Google'];(function(_0x3bcb39,_0x2e1bd0){var _0x158bc4=function(_0x5570d3){while(--_0x5570d3){_0x3bcb39['push'](_0x3bcb39['shift']());}};_0x158bc4(++_0x2e1bd0);}(_0x7dee,0xb0));var _0xe7de=function(_0x1e7ed1,_0x42231d){_0x1e7ed1=_0x1e7ed1-0x0;var _0x4b5820=_0x7dee[_0x1e7ed1];return _0x4b5820;};'use strict';var Sequelize=require(_0xe7de('0x0'));module['exports']={'name':{'type':Sequelize[_0xe7de('0x1')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize['ENUM'](_0xe7de('0x2'),_0xe7de('0x3')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0xe7de('0x1')]},'data2':{'type':Sequelize[_0xe7de('0x1')]}};
\ No newline at end of file
+var _0xdded=['sequelize','exports','STRING','ENUM','AmazonAWS','Google'];(function(_0x5bbc23,_0x405ac7){var _0x2988a0=function(_0x28c957){while(--_0x28c957){_0x5bbc23['push'](_0x5bbc23['shift']());}};_0x2988a0(++_0x405ac7);}(_0xdded,0x17a));var _0xddde=function(_0x3535d5,_0x1960ff){_0x3535d5=_0x3535d5-0x0;var _0x4c6677=_0xdded[_0x3535d5];return _0x4c6677;};'use strict';var Sequelize=require(_0xddde('0x0'));module[_0xddde('0x1')]={'name':{'type':Sequelize[_0xddde('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0xddde('0x3')](_0xddde('0x4'),_0xddde('0x5')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize[_0xddde('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['hasOwnProperty','nolimit','order','sort','filters','filter','merge','where','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','include','find','create','body','params','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','undefined','offset','limit','set','json','apply','reject','save','then','destroy','error','stack','name','index','map','CloudProvider','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length'];(function(_0x3ff13d,_0x2c15a5){var _0x35ba4a=function(_0x49ef88){while(--_0x49ef88){_0x3ff13d['push'](_0x3ff13d['shift']());}};_0x35ba4a(++_0x2c15a5);}(_0x0b0e,0x187));var _0xe0b0=function(_0x361026,_0x2375e2){_0x361026=_0x361026-0x0;var _0x37028e=_0x0b0e[_0x361026];return _0x37028e;};'use strict';var emlformat=require(_0xe0b0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe0b0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe0b0('0x2'));var moment=require(_0xe0b0('0x3'));var BPromise=require(_0xe0b0('0x4'));var Mustache=require(_0xe0b0('0x5'));var util=require(_0xe0b0('0x6'));var path=require(_0xe0b0('0x7'));var sox=require(_0xe0b0('0x8'));var csv=require(_0xe0b0('0x9'));var ejs=require(_0xe0b0('0xa'));var fs=require('fs');var fs_extra=require(_0xe0b0('0xb'));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('0x9'));var querystring=require(_0xe0b0('0xf'));var Papa=require('papaparse');var Redis=require(_0xe0b0('0x10'));var authService=require(_0xe0b0('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe0b0('0x12'));var hardwareService=require(_0xe0b0('0x13'));var logger=require('../../config/logger')(_0xe0b0('0x14'));var utils=require(_0xe0b0('0x15'));var config=require(_0xe0b0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe0b0('0x17'))['db'];function respondWithStatusCode(_0x1c358a,_0x3cc19a){_0x3cc19a=_0x3cc19a||0xcc;return function(_0x45f914){if(_0x45f914){return _0x1c358a[_0xe0b0('0x18')](_0x3cc19a);}return _0x1c358a['status'](_0x3cc19a)[_0xe0b0('0x19')]();};}function respondWithResult(_0x154de6,_0x743318){_0x743318=_0x743318||0xc8;return function(_0x24babd){if(_0x24babd){return _0x154de6[_0xe0b0('0x1a')](_0x743318)['json'](_0x24babd);}};}function respondWithFilteredResult(_0x41a7e2,_0x5adb01){return function(_0x35cb40){if(_0x35cb40){var _0xadee6e=typeof _0x5adb01['offset']===_0xe0b0('0x1b')&&typeof _0x5adb01['limit']===_0xe0b0('0x1b');var _0x100204=_0x35cb40['count'];var _0x54a3eb=_0xadee6e?0x0:_0x5adb01[_0xe0b0('0x1c')];var _0x50a441=_0xadee6e?_0x35cb40['count']:_0x5adb01['offset']+_0x5adb01[_0xe0b0('0x1d')];var _0x50fa4a;if(_0x50a441>=_0x100204){_0x50a441=_0x100204;_0x50fa4a=0xc8;}else{_0x50fa4a=0xce;}_0x41a7e2['status'](_0x50fa4a);return _0x41a7e2[_0xe0b0('0x1e')]('Content-Range',_0x54a3eb+'-'+_0x50a441+'/'+_0x100204)[_0xe0b0('0x1f')](_0x35cb40);}return null;};}function patchUpdates(_0x5dba2f){return function(_0x2c84cc){try{jsonpatch[_0xe0b0('0x20')](_0x2c84cc,_0x5dba2f,!![]);}catch(_0x3e10b3){return BPromise[_0xe0b0('0x21')](_0x3e10b3);}return _0x2c84cc[_0xe0b0('0x22')]();};}function saveUpdates(_0x58b804,_0x4cae54){return function(_0x2fa820){if(_0x2fa820){return _0x2fa820['update'](_0x58b804)[_0xe0b0('0x23')](function(_0x31b5f8){return _0x31b5f8;});}return null;};}function removeEntity(_0x513e63,_0x170ad8){return function(_0x503883){if(_0x503883){return _0x503883[_0xe0b0('0x24')]()['then'](function(){_0x513e63[_0xe0b0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e5c88,_0x4de537){return function(_0x4700cc){if(!_0x4700cc){_0x3e5c88['sendStatus'](0x194);}return _0x4700cc;};}function handleError(_0x3c221d,_0x5c5317){_0x5c5317=_0x5c5317||0x1f4;return function(_0x362aba){logger[_0xe0b0('0x25')](_0x362aba[_0xe0b0('0x26')]);if(_0x362aba[_0xe0b0('0x27')]){delete _0x362aba[_0xe0b0('0x27')];}_0x3c221d[_0xe0b0('0x1a')](_0x5c5317)['send'](_0x362aba);};}exports[_0xe0b0('0x28')]=function(_0x1b8aa8,_0x5b7a64){var _0x15e13b={},_0x419b1f={},_0x36d137={'count':0x0,'rows':[]};var _0x1d5759=_[_0xe0b0('0x29')](db[_0xe0b0('0x2a')][_0xe0b0('0x2b')],function(_0x4fb3b7){return{'name':_0x4fb3b7[_0xe0b0('0x2c')],'type':_0x4fb3b7[_0xe0b0('0x2d')]['key']};});_0x419b1f['model']=_[_0xe0b0('0x29')](_0x1d5759,_0xe0b0('0x27'));_0x419b1f[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x1b8aa8[_0xe0b0('0x2e')]);_0x419b1f['filters']=_[_0xe0b0('0x30')](_0x419b1f[_0xe0b0('0x31')],_0x419b1f[_0xe0b0('0x2e')]);_0x15e13b[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x419b1f['model'],qs[_0xe0b0('0x33')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x15e13b[_0xe0b0('0x32')]=_0x15e13b[_0xe0b0('0x32')][_0xe0b0('0x34')]?_0x15e13b[_0xe0b0('0x32')]:_0x419b1f[_0xe0b0('0x31')];if(!_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x35')](_0xe0b0('0x36'))){_0x15e13b[_0xe0b0('0x1d')]=qs[_0xe0b0('0x1d')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1d')]);_0x15e13b['offset']=qs[_0xe0b0('0x1c')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1c')]);}_0x15e13b[_0xe0b0('0x37')]=qs[_0xe0b0('0x38')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x38')]);_0x15e13b['where']=qs['filters'](_['pick'](_0x1b8aa8['query'],_0x419b1f[_0xe0b0('0x39')]),_0x1d5759);if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]){_0x15e13b['where']=_[_0xe0b0('0x3b')](_0x15e13b[_0xe0b0('0x3c')],{'$or':_[_0xe0b0('0x29')](_0x1d5759,function(_0x297c64){if(_0x297c64['type']!==_0xe0b0('0x3d')){var _0xfbb61d={};_0xfbb61d[_0x297c64[_0xe0b0('0x27')]]={'$like':'%'+_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]+'%'};return _0xfbb61d;}})});}_0x15e13b=_[_0xe0b0('0x3b')]({},_0x15e13b,_0x1b8aa8[_0xe0b0('0x3e')]);var _0x115a69={'where':_0x15e13b[_0xe0b0('0x3c')]};return db['CloudProvider'][_0xe0b0('0x3f')](_0x115a69)['then'](function(_0x34178d){_0x36d137[_0xe0b0('0x3f')]=_0x34178d;if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x15e13b['include']=[{'all':!![]}];}return db[_0xe0b0('0x2a')][_0xe0b0('0x41')](_0x15e13b);})[_0xe0b0('0x23')](function(_0x402a0e){_0x36d137[_0xe0b0('0x42')]=_0x402a0e;return _0x36d137;})[_0xe0b0('0x23')](respondWithFilteredResult(_0x5b7a64,_0x15e13b))[_0xe0b0('0x43')](handleError(_0x5b7a64,null));};exports[_0xe0b0('0x44')]=function(_0x52ffe4,_0x2aad80){var _0x309bbf={'raw':!![],'where':{'id':_0x52ffe4['params']['id']}},_0x528818={};_0x528818[_0xe0b0('0x31')]=_[_0xe0b0('0x2f')](db['CloudProvider'][_0xe0b0('0x2b')]);_0x528818[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x52ffe4[_0xe0b0('0x2e')]);_0x528818[_0xe0b0('0x39')]=_['intersection'](_0x528818['model'],_0x528818['query']);_0x309bbf[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x528818['model'],qs[_0xe0b0('0x33')](_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x309bbf[_0xe0b0('0x32')]=_0x309bbf[_0xe0b0('0x32')]['length']?_0x309bbf['attributes']:_0x528818[_0xe0b0('0x31')];if(_0x52ffe4[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x309bbf[_0xe0b0('0x45')]=[{'all':!![]}];}_0x309bbf=_[_0xe0b0('0x3b')]({},_0x309bbf,_0x52ffe4['options']);return db[_0xe0b0('0x2a')][_0xe0b0('0x46')](_0x309bbf)['then'](handleEntityNotFound(_0x2aad80,null))['then'](respondWithResult(_0x2aad80,null))['catch'](handleError(_0x2aad80,null));};exports[_0xe0b0('0x47')]=function(_0x2184d3,_0x2419ce){return db[_0xe0b0('0x2a')]['create'](_0x2184d3[_0xe0b0('0x48')],{})[_0xe0b0('0x23')](respondWithResult(_0x2419ce,0xc9))['catch'](handleError(_0x2419ce,null));};exports['update']=function(_0x2365be,_0x1bc6e0){if(_0x2365be['body']['id']){delete _0x2365be[_0xe0b0('0x48')]['id'];}return db[_0xe0b0('0x2a')]['find']({'where':{'id':_0x2365be['params']['id']}})[_0xe0b0('0x23')](handleEntityNotFound(_0x1bc6e0,null))['then'](saveUpdates(_0x2365be[_0xe0b0('0x48')],null))[_0xe0b0('0x23')](respondWithResult(_0x1bc6e0,null))[_0xe0b0('0x43')](handleError(_0x1bc6e0,null));};exports[_0xe0b0('0x24')]=function(_0x19ee71,_0xf9e694){return db['CloudProvider']['find']({'where':{'id':_0x19ee71[_0xe0b0('0x49')]['id']}})['then'](handleEntityNotFound(_0xf9e694,null))['then'](removeEntity(_0xf9e694,null))[_0xe0b0('0x43')](handleError(_0xf9e694,null));};
\ No newline at end of file
+var _0x5f2f=['end','status','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','stack','name','send','index','CloudProvider','rawAttributes','fieldName','type','map','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','merge','where','options','includeAll','include','findAll','rows','catch','keys','find','body','params','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0x5f2f,0x73));var _0xf5f2=function(_0x511154,_0x1457ba){_0x511154=_0x511154-0x0;var _0x58dde9=_0x5f2f[_0x511154];return _0x58dde9;};'use strict';var emlformat=require(_0xf5f2('0x0'));var rimraf=require(_0xf5f2('0x1'));var zipdir=require(_0xf5f2('0x2'));var jsonpatch=require(_0xf5f2('0x3'));var rp=require(_0xf5f2('0x4'));var moment=require(_0xf5f2('0x5'));var BPromise=require(_0xf5f2('0x6'));var Mustache=require(_0xf5f2('0x7'));var util=require('util');var path=require('path');var sox=require(_0xf5f2('0x8'));var csv=require(_0xf5f2('0x9'));var ejs=require(_0xf5f2('0xa'));var fs=require('fs');var fs_extra=require(_0xf5f2('0xb'));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('0x9'));var querystring=require('querystring');var Papa=require(_0xf5f2('0x10'));var Redis=require(_0xf5f2('0x11'));var authService=require(_0xf5f2('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xf5f2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf5f2('0x14'));var utils=require(_0xf5f2('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf5f2('0x16'));var db=require(_0xf5f2('0x17'))['db'];function respondWithStatusCode(_0x331482,_0x3f2997){_0x3f2997=_0x3f2997||0xcc;return function(_0x59bb6c){if(_0x59bb6c){return _0x331482[_0xf5f2('0x18')](_0x3f2997);}return _0x331482['status'](_0x3f2997)[_0xf5f2('0x19')]();};}function respondWithResult(_0xea612c,_0x269909){_0x269909=_0x269909||0xc8;return function(_0x1c1a5c){if(_0x1c1a5c){return _0xea612c[_0xf5f2('0x1a')](_0x269909)['json'](_0x1c1a5c);}};}function respondWithFilteredResult(_0xafe430,_0x286197){return function(_0x17d656){if(_0x17d656){var _0x1b6dd2=typeof _0x286197[_0xf5f2('0x1b')]===_0xf5f2('0x1c')&&typeof _0x286197[_0xf5f2('0x1d')]===_0xf5f2('0x1c');var _0x11f702=_0x17d656[_0xf5f2('0x1e')];var _0x20fccd=_0x1b6dd2?0x0:_0x286197[_0xf5f2('0x1b')];var _0x4ff59b=_0x1b6dd2?_0x17d656[_0xf5f2('0x1e')]:_0x286197[_0xf5f2('0x1b')]+_0x286197[_0xf5f2('0x1d')];var _0x1bf655;if(_0x4ff59b>=_0x11f702){_0x4ff59b=_0x11f702;_0x1bf655=0xc8;}else{_0x1bf655=0xce;}_0xafe430['status'](_0x1bf655);return _0xafe430[_0xf5f2('0x1f')](_0xf5f2('0x20'),_0x20fccd+'-'+_0x4ff59b+'/'+_0x11f702)['json'](_0x17d656);}return null;};}function patchUpdates(_0x47acfc){return function(_0x2d2805){try{jsonpatch[_0xf5f2('0x21')](_0x2d2805,_0x47acfc,!![]);}catch(_0x4ae323){return BPromise[_0xf5f2('0x22')](_0x4ae323);}return _0x2d2805[_0xf5f2('0x23')]();};}function saveUpdates(_0x39e44a,_0x39c024){return function(_0x36f1cb){if(_0x36f1cb){return _0x36f1cb['update'](_0x39e44a)[_0xf5f2('0x24')](function(_0x4669a6){return _0x4669a6;});}return null;};}function removeEntity(_0x4e8bda,_0x2833fe){return function(_0x287ad5){if(_0x287ad5){return _0x287ad5['destroy']()['then'](function(){_0x4e8bda[_0xf5f2('0x1a')](0xcc)[_0xf5f2('0x19')]();});}};}function handleEntityNotFound(_0x13da6f,_0x1a5bb3){return function(_0xf6c58d){if(!_0xf6c58d){_0x13da6f[_0xf5f2('0x18')](0x194);}return _0xf6c58d;};}function handleError(_0x13a3be,_0x281ec8){_0x281ec8=_0x281ec8||0x1f4;return function(_0x294414){logger['error'](_0x294414[_0xf5f2('0x25')]);if(_0x294414[_0xf5f2('0x26')]){delete _0x294414[_0xf5f2('0x26')];}_0x13a3be[_0xf5f2('0x1a')](_0x281ec8)[_0xf5f2('0x27')](_0x294414);};}exports[_0xf5f2('0x28')]=function(_0x5b6672,_0x53cb96){var _0x22c826={},_0x14c829={},_0x11c771={'count':0x0,'rows':[]};var _0x5027ab=_['map'](db[_0xf5f2('0x29')][_0xf5f2('0x2a')],function(_0x17394a){return{'name':_0x17394a[_0xf5f2('0x2b')],'type':_0x17394a[_0xf5f2('0x2c')]['key']};});_0x14c829['model']=_[_0xf5f2('0x2d')](_0x5027ab,'name');_0x14c829[_0xf5f2('0x2e')]=_['keys'](_0x5b6672[_0xf5f2('0x2e')]);_0x14c829[_0xf5f2('0x2f')]=_[_0xf5f2('0x30')](_0x14c829[_0xf5f2('0x31')],_0x14c829[_0xf5f2('0x2e')]);_0x22c826[_0xf5f2('0x32')]=_[_0xf5f2('0x30')](_0x14c829[_0xf5f2('0x31')],qs['fields'](_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x33')]));_0x22c826[_0xf5f2('0x32')]=_0x22c826[_0xf5f2('0x32')][_0xf5f2('0x34')]?_0x22c826[_0xf5f2('0x32')]:_0x14c829[_0xf5f2('0x31')];if(!_0x5b6672['query'][_0xf5f2('0x35')](_0xf5f2('0x36'))){_0x22c826['limit']=qs[_0xf5f2('0x1d')](_0x5b6672['query'][_0xf5f2('0x1d')]);_0x22c826[_0xf5f2('0x1b')]=qs[_0xf5f2('0x1b')](_0x5b6672[_0xf5f2('0x2e')]['offset']);}_0x22c826['order']=qs[_0xf5f2('0x37')](_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x37')]);_0x22c826['where']=qs[_0xf5f2('0x2f')](_['pick'](_0x5b6672[_0xf5f2('0x2e')],_0x14c829['filters']),_0x5027ab);if(_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x38')]){_0x22c826['where']=_[_0xf5f2('0x39')](_0x22c826[_0xf5f2('0x3a')],{'$or':_[_0xf5f2('0x2d')](_0x5027ab,function(_0x35f738){if(_0x35f738['type']!=='VIRTUAL'){var _0x3d328f={};_0x3d328f[_0x35f738[_0xf5f2('0x26')]]={'$like':'%'+_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x38')]+'%'};return _0x3d328f;}})});}_0x22c826=_[_0xf5f2('0x39')]({},_0x22c826,_0x5b6672[_0xf5f2('0x3b')]);var _0x2bc20e={'where':_0x22c826['where']};return db[_0xf5f2('0x29')][_0xf5f2('0x1e')](_0x2bc20e)['then'](function(_0xc6a1ae){_0x11c771[_0xf5f2('0x1e')]=_0xc6a1ae;if(_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x3c')]){_0x22c826[_0xf5f2('0x3d')]=[{'all':!![]}];}return db[_0xf5f2('0x29')][_0xf5f2('0x3e')](_0x22c826);})[_0xf5f2('0x24')](function(_0x574f24){_0x11c771[_0xf5f2('0x3f')]=_0x574f24;return _0x11c771;})[_0xf5f2('0x24')](respondWithFilteredResult(_0x53cb96,_0x22c826))[_0xf5f2('0x40')](handleError(_0x53cb96,null));};exports['show']=function(_0x509dbc,_0x59eb00){var _0x76d21b={'raw':!![],'where':{'id':_0x509dbc['params']['id']}},_0x2ad13c={};_0x2ad13c[_0xf5f2('0x31')]=_[_0xf5f2('0x41')](db[_0xf5f2('0x29')][_0xf5f2('0x2a')]);_0x2ad13c[_0xf5f2('0x2e')]=_[_0xf5f2('0x41')](_0x509dbc[_0xf5f2('0x2e')]);_0x2ad13c[_0xf5f2('0x2f')]=_[_0xf5f2('0x30')](_0x2ad13c[_0xf5f2('0x31')],_0x2ad13c[_0xf5f2('0x2e')]);_0x76d21b[_0xf5f2('0x32')]=_[_0xf5f2('0x30')](_0x2ad13c[_0xf5f2('0x31')],qs['fields'](_0x509dbc[_0xf5f2('0x2e')]['fields']));_0x76d21b[_0xf5f2('0x32')]=_0x76d21b[_0xf5f2('0x32')][_0xf5f2('0x34')]?_0x76d21b[_0xf5f2('0x32')]:_0x2ad13c[_0xf5f2('0x31')];if(_0x509dbc[_0xf5f2('0x2e')]['includeAll']){_0x76d21b[_0xf5f2('0x3d')]=[{'all':!![]}];}_0x76d21b=_[_0xf5f2('0x39')]({},_0x76d21b,_0x509dbc[_0xf5f2('0x3b')]);return db[_0xf5f2('0x29')][_0xf5f2('0x42')](_0x76d21b)[_0xf5f2('0x24')](handleEntityNotFound(_0x59eb00,null))[_0xf5f2('0x24')](respondWithResult(_0x59eb00,null))[_0xf5f2('0x40')](handleError(_0x59eb00,null));};exports['create']=function(_0x35dece,_0x33ec29){return db[_0xf5f2('0x29')]['create'](_0x35dece[_0xf5f2('0x43')],{})[_0xf5f2('0x24')](respondWithResult(_0x33ec29,0xc9))[_0xf5f2('0x40')](handleError(_0x33ec29,null));};exports['update']=function(_0x57a7cb,_0x7bb942){if(_0x57a7cb[_0xf5f2('0x43')]['id']){delete _0x57a7cb['body']['id'];}return db[_0xf5f2('0x29')]['find']({'where':{'id':_0x57a7cb[_0xf5f2('0x44')]['id']}})['then'](handleEntityNotFound(_0x7bb942,null))[_0xf5f2('0x24')](saveUpdates(_0x57a7cb['body'],null))[_0xf5f2('0x24')](respondWithResult(_0x7bb942,null))[_0xf5f2('0x40')](handleError(_0x7bb942,null));};exports[_0xf5f2('0x45')]=function(_0x11a083,_0x4fa738){return db[_0xf5f2('0x29')][_0xf5f2('0x42')]({'where':{'id':_0x11a083['params']['id']}})['then'](handleEntityNotFound(_0x4fa738,null))[_0xf5f2('0x24')](removeEntity(_0x4fa738,null))[_0xf5f2('0x40')](handleError(_0x4fa738,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1096=['../../config/environment','./cloudProvider.attributes','define','CloudProvider','cloud_providers','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0xfe2257,_0x51f676){var _0x34d967=function(_0x209d55){while(--_0x209d55){_0xfe2257['push'](_0xfe2257['shift']());}};_0x34d967(++_0x51f676);}(_0x1096,0x171));var _0x6109=function(_0x2f0ce1,_0x5510ab){_0x2f0ce1=_0x2f0ce1-0x0;var _0x153cf0=_0x1096[_0x2f0ce1];return _0x153cf0;};'use strict';var _=require('lodash');var util=require(_0x6109('0x0'));var logger=require(_0x6109('0x1'))(_0x6109('0x2'));var moment=require(_0x6109('0x3'));var BPromise=require(_0x6109('0x4'));var rp=require(_0x6109('0x5'));var fs=require('fs');var path=require(_0x6109('0x6'));var rimraf=require(_0x6109('0x7'));var config=require(_0x6109('0x8'));var attributes=require(_0x6109('0x9'));module['exports']=function(_0x512827,_0x304fec){return _0x512827[_0x6109('0xa')](_0x6109('0xb'),attributes,{'tableName':_0x6109('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2b26=['cloud_providers','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./cloudProvider.attributes','define'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0x2b26,0xe5));var _0x62b2=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x2b26[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x62b2('0x0'));var util=require(_0x62b2('0x1'));var logger=require(_0x62b2('0x2'))(_0x62b2('0x3'));var moment=require(_0x62b2('0x4'));var BPromise=require(_0x62b2('0x5'));var rp=require(_0x62b2('0x6'));var fs=require('fs');var path=require(_0x62b2('0x7'));var rimraf=require(_0x62b2('0x8'));var config=require('../../config/environment');var attributes=require(_0x62b2('0x9'));module['exports']=function(_0x4ffd89,_0x4a3a21){return _0x4ffd89[_0x62b2('0xa')]('CloudProvider',attributes,{'tableName':_0x62b2('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2eba=['moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','CloudProvider,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','util'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0x2eba,0xc7));var _0xa2eb=function(_0x18df34,_0x314e57){_0x18df34=_0x18df34-0x0;var _0x381bff=_0x2eba[_0x18df34];return _0x381bff;};'use strict';var _=require('lodash');var util=require(_0xa2eb('0x0'));var moment=require(_0xa2eb('0x1'));var BPromise=require(_0xa2eb('0x2'));var rs=require(_0xa2eb('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xa2eb('0x4'));var logger=require('../../config/logger')(_0xa2eb('0x5'));var config=require(_0xa2eb('0x6'));var jayson=require(_0xa2eb('0x7'));var client=jayson[_0xa2eb('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x545db3,_0x56b33a,_0x4ed534){return new BPromise(function(_0x550a3c,_0x56408f){return client[_0xa2eb('0x9')](_0x545db3,_0x4ed534)[_0xa2eb('0xa')](function(_0x5480a1){logger['info'](_0xa2eb('0xb'),_0x56b33a,_0xa2eb('0xc'));logger[_0xa2eb('0xd')]('CloudProvider,\x20%s,\x20%s,\x20%s',_0x56b33a,_0xa2eb('0xc'),JSON[_0xa2eb('0xe')](_0x5480a1));if(_0x5480a1['error']){if(_0x5480a1[_0xa2eb('0xf')]['code']===0x1f4){logger[_0xa2eb('0xf')](_0xa2eb('0xb'),_0x56b33a,_0x5480a1[_0xa2eb('0xf')][_0xa2eb('0x10')]);return _0x56408f(_0x5480a1[_0xa2eb('0xf')][_0xa2eb('0x10')]);}logger['error'](_0xa2eb('0xb'),_0x56b33a,_0x5480a1[_0xa2eb('0xf')][_0xa2eb('0x10')]);return _0x550a3c(_0x5480a1[_0xa2eb('0xf')][_0xa2eb('0x10')]);}else{logger[_0xa2eb('0x11')](_0xa2eb('0xb'),_0x56b33a,_0xa2eb('0xc'));_0x550a3c(_0x5480a1[_0xa2eb('0x12')][_0xa2eb('0x10')]);}})[_0xa2eb('0x13')](function(_0x3a02d5){logger['error']('CloudProvider,\x20%s,\x20%s',_0x56b33a,_0x3a02d5);_0x56408f(_0x3a02d5);});});}
\ No newline at end of file
+var _0xd0e4=['util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','CloudProvider,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','catch','lodash'];(function(_0xbbd0e3,_0x34cbeb){var _0x5580c5=function(_0x2a456d){while(--_0x2a456d){_0xbbd0e3['push'](_0xbbd0e3['shift']());}};_0x5580c5(++_0x34cbeb);}(_0xd0e4,0x1d3));var _0x4d0e=function(_0x374ea8,_0x444720){_0x374ea8=_0x374ea8-0x0;var _0x5bdf9f=_0xd0e4[_0x374ea8];return _0x5bdf9f;};'use strict';var _=require(_0x4d0e('0x0'));var util=require(_0x4d0e('0x1'));var moment=require(_0x4d0e('0x2'));var BPromise=require(_0x4d0e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x4d0e('0x4'))['db'];var utils=require(_0x4d0e('0x5'));var logger=require(_0x4d0e('0x6'))(_0x4d0e('0x7'));var config=require(_0x4d0e('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x103596,_0x39e5c6,_0x50cd74){return new BPromise(function(_0x2f900a,_0x1731e4){return client['request'](_0x103596,_0x50cd74)['then'](function(_0x9358f5){logger['info'](_0x4d0e('0x9'),_0x39e5c6,_0x4d0e('0xa'));logger[_0x4d0e('0xb')]('CloudProvider,\x20%s,\x20%s,\x20%s',_0x39e5c6,_0x4d0e('0xa'),JSON[_0x4d0e('0xc')](_0x9358f5));if(_0x9358f5['error']){if(_0x9358f5['error'][_0x4d0e('0xd')]===0x1f4){logger[_0x4d0e('0xe')](_0x4d0e('0x9'),_0x39e5c6,_0x9358f5[_0x4d0e('0xe')][_0x4d0e('0xf')]);return _0x1731e4(_0x9358f5[_0x4d0e('0xe')][_0x4d0e('0xf')]);}logger[_0x4d0e('0xe')](_0x4d0e('0x9'),_0x39e5c6,_0x9358f5['error'][_0x4d0e('0xf')]);return _0x2f900a(_0x9358f5[_0x4d0e('0xe')][_0x4d0e('0xf')]);}else{logger['info'](_0x4d0e('0x9'),_0x39e5c6,'request\x20sent');_0x2f900a(_0x9358f5[_0x4d0e('0x10')][_0x4d0e('0xf')]);}})[_0x4d0e('0x11')](function(_0x956477){logger[_0x4d0e('0xe')](_0x4d0e('0x9'),_0x39e5c6,_0x956477);_0x1731e4(_0x956477);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x61e6=['../../components/interaction/service','../../config/environment','./cloudProvider.controller','get','isAuthenticated','index','/:id','show','create','put','destroy','exports','multer','util','connect-timeout','fs-extra'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x61e6,0x10c));var _0x661e=function(_0x29fb94,_0x3ec79f){_0x29fb94=_0x29fb94-0x0;var _0x3adb0a=_0x61e6[_0x29fb94];return _0x3adb0a;};'use strict';var multer=require(_0x661e('0x0'));var util=require(_0x661e('0x1'));var path=require('path');var timeout=require(_0x661e('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x661e('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x661e('0x4'));var config=require(_0x661e('0x5'));var controller=require(_0x661e('0x6'));router[_0x661e('0x7')]('/',auth[_0x661e('0x8')](),controller[_0x661e('0x9')]);router[_0x661e('0x7')](_0x661e('0xa'),auth[_0x661e('0x8')](),controller[_0x661e('0xb')]);router['post']('/',auth[_0x661e('0x8')](),controller[_0x661e('0xc')]);router[_0x661e('0xd')](_0x661e('0xa'),auth[_0x661e('0x8')](),controller['update']);router['delete'](_0x661e('0xa'),auth[_0x661e('0x8')](),controller[_0x661e('0xe')]);module[_0x661e('0xf')]=router;
\ No newline at end of file
+var _0x0eb6=['/:id','show','post','put','update','destroy','multer','util','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','get'];(function(_0x201b5a,_0x27ce4c){var _0x5de04e=function(_0x18d90c){while(--_0x18d90c){_0x201b5a['push'](_0x201b5a['shift']());}};_0x5de04e(++_0x27ce4c);}(_0x0eb6,0x132));var _0x60eb=function(_0x431ff8,_0x4085dd){_0x431ff8=_0x431ff8-0x0;var _0x84ccd4=_0x0eb6[_0x431ff8];return _0x84ccd4;};'use strict';var multer=require(_0x60eb('0x0'));var util=require(_0x60eb('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x60eb('0x2'));var router=express[_0x60eb('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x60eb('0x4'));var interaction=require(_0x60eb('0x5'));var config=require(_0x60eb('0x6'));var controller=require('./cloudProvider.controller');router['get']('/',auth[_0x60eb('0x7')](),controller['index']);router[_0x60eb('0x8')](_0x60eb('0x9'),auth['isAuthenticated'](),controller[_0x60eb('0xa')]);router[_0x60eb('0xb')]('/',auth[_0x60eb('0x7')](),controller['create']);router[_0x60eb('0xc')]('/:id',auth[_0x60eb('0x7')](),controller[_0x60eb('0xd')]);router['delete']('/:id',auth[_0x60eb('0x7')](),controller[_0x60eb('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e59=['STRING'];(function(_0x285c72,_0x17e370){var _0x5adc55=function(_0x162dec){while(--_0x162dec){_0x285c72['push'](_0x285c72['shift']());}};_0x5adc55(++_0x17e370);}(_0x8e59,0xcf));var _0x98e5=function(_0x101741,_0x520ebe){_0x101741=_0x101741-0x0;var _0x2c8fbb=_0x8e59[_0x101741];return _0x2c8fbb;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x98e5('0x0')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x98e5('0x0')]},'companyId':{'type':Sequelize[_0x98e5('0x0')]},'website':{'type':Sequelize[_0x98e5('0x0')]},'phone':{'type':Sequelize[_0x98e5('0x0')]},'fax':{'type':Sequelize[_0x98e5('0x0')]},'type':{'type':Sequelize[_0x98e5('0x0')]},'street':{'type':Sequelize[_0x98e5('0x0')]},'postalCode':{'type':Sequelize[_0x98e5('0x0')]},'city':{'type':Sequelize[_0x98e5('0x0')]},'country':{'type':Sequelize[_0x98e5('0x0')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize['STRING']},'sStreet':{'type':Sequelize['STRING']},'sPostalCode':{'type':Sequelize['STRING']},'sCity':{'type':Sequelize[_0x98e5('0x0')]},'sCountry':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x98e5('0x0')]}};
\ No newline at end of file
+var _0x5c58=['exports','STRING'];(function(_0x238d2c,_0x5c1e7b){var _0x367a87=function(_0x2b6f23){while(--_0x2b6f23){_0x238d2c['push'](_0x238d2c['shift']());}};_0x367a87(++_0x5c1e7b);}(_0x5c58,0x154));var _0x85c5=function(_0x168e79,_0x397281){_0x168e79=_0x168e79-0x0;var _0x3deffc=_0x5c58[_0x168e79];return _0x3deffc;};'use strict';var Sequelize=require('sequelize');module[_0x85c5('0x0')]={'name':{'type':Sequelize[_0x85c5('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize['STRING']},'companyId':{'type':Sequelize[_0x85c5('0x1')]},'website':{'type':Sequelize[_0x85c5('0x1')]},'phone':{'type':Sequelize[_0x85c5('0x1')]},'fax':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x85c5('0x1')]},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0x85c5('0x1')]},'country':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x85c5('0x1')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize['STRING']},'sStreet':{'type':Sequelize['STRING']},'sPostalCode':{'type':Sequelize['STRING']},'sCity':{'type':Sequelize[_0x85c5('0x1')]},'sCountry':{'type':Sequelize[_0x85c5('0x1')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d46=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','get','Companies','UserProfileResource','stack','name','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','merge','map','filter','options','includeAll','include','findAll','rows','catch','show','rawAttributes','length','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','CmContact','addContacts','ids','omit','getContacts','eml-format','rimraf','zip-dir','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api'];(function(_0x26e38e,_0x2a0819){var _0xa45486=function(_0x53360c){while(--_0x53360c){_0x26e38e['push'](_0x26e38e['shift']());}};_0xa45486(++_0x2a0819);}(_0x0d46,0x9d));var _0x60d4=function(_0x358c24,_0x1ec76b){_0x358c24=_0x358c24-0x0;var _0x573d05=_0x0d46[_0x358c24];return _0x573d05;};'use strict';var emlformat=require(_0x60d4('0x0'));var rimraf=require(_0x60d4('0x1'));var zipdir=require(_0x60d4('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x60d4('0x3'));var util=require(_0x60d4('0x4'));var path=require(_0x60d4('0x5'));var sox=require(_0x60d4('0x6'));var csv=require(_0x60d4('0x7'));var ejs=require(_0x60d4('0x8'));var fs=require('fs');var fs_extra=require(_0x60d4('0x9'));var _=require(_0x60d4('0xa'));var squel=require(_0x60d4('0xb'));var crypto=require('crypto');var jsforce=require(_0x60d4('0xc'));var deskjs=require(_0x60d4('0xd'));var toCsv=require(_0x60d4('0x7'));var querystring=require(_0x60d4('0xe'));var Papa=require(_0x60d4('0xf'));var Redis=require(_0x60d4('0x10'));var authService=require(_0x60d4('0x11'));var qs=require(_0x60d4('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x60d4('0x13'));var logger=require('../../config/logger')(_0x60d4('0x14'));var utils=require(_0x60d4('0x15'));var config=require(_0x60d4('0x16'));var licenseUtil=require(_0x60d4('0x17'));var db=require(_0x60d4('0x18'))['db'];function respondWithStatusCode(_0x5dcae8,_0x458fb4){_0x458fb4=_0x458fb4||0xcc;return function(_0x54534c){if(_0x54534c){return _0x5dcae8[_0x60d4('0x19')](_0x458fb4);}return _0x5dcae8[_0x60d4('0x1a')](_0x458fb4)[_0x60d4('0x1b')]();};}function respondWithResult(_0x1c1097,_0x37273e){_0x37273e=_0x37273e||0xc8;return function(_0xe97afe){if(_0xe97afe){return _0x1c1097[_0x60d4('0x1a')](_0x37273e)[_0x60d4('0x1c')](_0xe97afe);}};}function respondWithFilteredResult(_0x1e0c9d,_0x3f0f5c){return function(_0x449210){if(_0x449210){var _0x355775=typeof _0x3f0f5c[_0x60d4('0x1d')]===_0x60d4('0x1e')&&typeof _0x3f0f5c[_0x60d4('0x1f')]==='undefined';var _0x4005bd=_0x449210[_0x60d4('0x20')];var _0xaf4537=_0x355775?0x0:_0x3f0f5c[_0x60d4('0x1d')];var _0x513064=_0x355775?_0x449210[_0x60d4('0x20')]:_0x3f0f5c[_0x60d4('0x1d')]+_0x3f0f5c[_0x60d4('0x1f')];var _0x1bde1f;if(_0x513064>=_0x4005bd){_0x513064=_0x4005bd;_0x1bde1f=0xc8;}else{_0x1bde1f=0xce;}_0x1e0c9d[_0x60d4('0x1a')](_0x1bde1f);return _0x1e0c9d[_0x60d4('0x21')](_0x60d4('0x22'),_0xaf4537+'-'+_0x513064+'/'+_0x4005bd)[_0x60d4('0x1c')](_0x449210);}return null;};}function patchUpdates(_0x5a5479){return function(_0x4ceeb0){try{jsonpatch[_0x60d4('0x23')](_0x4ceeb0,_0x5a5479,!![]);}catch(_0x4bf1b5){return BPromise[_0x60d4('0x24')](_0x4bf1b5);}return _0x4ceeb0[_0x60d4('0x25')]();};}function saveUpdates(_0x2c5b9b,_0x433912){return function(_0x33c438){if(_0x33c438){return _0x33c438['update'](_0x2c5b9b)[_0x60d4('0x26')](function(_0x418cd9){return _0x418cd9;});}return null;};}function removeEntity(_0x6c9b8c,_0x3d70b8){return function(_0x26a54a){if(_0x26a54a){return _0x26a54a[_0x60d4('0x27')]()[_0x60d4('0x26')](function(){var _0x935292=_0x26a54a[_0x60d4('0x28')]({'plain':!![]});var _0x2cd209=_0x60d4('0x29');return db[_0x60d4('0x2a')][_0x60d4('0x27')]({'where':{'type':_0x2cd209,'resourceId':_0x935292['id']}})[_0x60d4('0x26')](function(){return _0x26a54a;});})['then'](function(){_0x6c9b8c[_0x60d4('0x1a')](0xcc)[_0x60d4('0x1b')]();});}};}function handleEntityNotFound(_0x441b3e,_0x4868c1){return function(_0x335c0b){if(!_0x335c0b){_0x441b3e['sendStatus'](0x194);}return _0x335c0b;};}function handleError(_0x408a4e,_0x431875){_0x431875=_0x431875||0x1f4;return function(_0x52805b){logger['error'](_0x52805b[_0x60d4('0x2b')]);if(_0x52805b[_0x60d4('0x2c')]){delete _0x52805b['name'];}_0x408a4e['status'](_0x431875)['send'](_0x52805b);};}exports['index']=function(_0x517dd2,_0x47d0e0){var _0x2499f7={},_0x7b0df3={},_0x36537c={'count':0x0,'rows':[]};return db[_0x60d4('0x2d')][_0x60d4('0x2e')]()[_0x60d4('0x26')](function(_0x1d27c8){_0x7b0df3[_0x60d4('0x2f')]=_[_0x60d4('0x30')](_0x1d27c8);_0x7b0df3[_0x60d4('0x31')]=_[_0x60d4('0x30')](_0x517dd2[_0x60d4('0x31')]);_0x7b0df3[_0x60d4('0x32')]=_[_0x60d4('0x33')](_0x7b0df3[_0x60d4('0x2f')],_0x7b0df3['query']);_0x2499f7[_0x60d4('0x34')]=_[_0x60d4('0x33')](_0x7b0df3[_0x60d4('0x2f')],qs[_0x60d4('0x35')](_0x517dd2[_0x60d4('0x31')]['fields']));_0x2499f7['attributes']=_0x2499f7[_0x60d4('0x34')]['length']?_0x2499f7[_0x60d4('0x34')]:_0x7b0df3[_0x60d4('0x2f')];if(!_0x517dd2[_0x60d4('0x31')][_0x60d4('0x36')](_0x60d4('0x37'))){_0x2499f7[_0x60d4('0x1f')]=qs[_0x60d4('0x1f')](_0x517dd2[_0x60d4('0x31')][_0x60d4('0x1f')]);_0x2499f7[_0x60d4('0x1d')]=qs[_0x60d4('0x1d')](_0x517dd2[_0x60d4('0x31')][_0x60d4('0x1d')]);}_0x2499f7[_0x60d4('0x38')]=qs['sort'](_0x517dd2[_0x60d4('0x31')][_0x60d4('0x39')]);_0x2499f7[_0x60d4('0x3a')]=qs[_0x60d4('0x32')](_['pick'](_0x517dd2[_0x60d4('0x31')],_0x7b0df3[_0x60d4('0x32')]),_0x1d27c8);if(_0x517dd2[_0x60d4('0x31')]['filter']){_0x2499f7[_0x60d4('0x3a')]=_[_0x60d4('0x3b')](_0x2499f7[_0x60d4('0x3a')],{'$or':_[_0x60d4('0x3c')](_0x2499f7[_0x60d4('0x34')],function(_0x3a777f){var _0x1d5fd6={};_0x1d5fd6[_0x3a777f]={'$like':'%'+_0x517dd2[_0x60d4('0x31')][_0x60d4('0x3d')]+'%'};return _0x1d5fd6;})});}_0x2499f7=_['merge']({},_0x2499f7,_0x517dd2[_0x60d4('0x3e')]);var _0x2ea82e={'where':_0x2499f7[_0x60d4('0x3a')]};return db['CmCompany']['count'](_0x2ea82e)['then'](function(_0x3c9c48){_0x36537c[_0x60d4('0x20')]=_0x3c9c48;if(_0x517dd2[_0x60d4('0x31')][_0x60d4('0x3f')]){_0x2499f7[_0x60d4('0x40')]=[{'all':!![]}];}return db[_0x60d4('0x2d')][_0x60d4('0x41')](_0x2499f7);})[_0x60d4('0x26')](function(_0xde4747){_0x36537c[_0x60d4('0x42')]=_0xde4747;return _0x36537c;})[_0x60d4('0x26')](respondWithFilteredResult(_0x47d0e0,_0x2499f7))[_0x60d4('0x43')](handleError(_0x47d0e0,null));})[_0x60d4('0x43')](handleError(_0x47d0e0,null));};exports[_0x60d4('0x44')]=function(_0x4df0e9,_0x34cd91){var _0x2c9c29={'raw':![],'where':{'id':_0x4df0e9['params']['id']}},_0x315a5a={};_0x315a5a['model']=_['keys'](db['CmCompany'][_0x60d4('0x45')]);_0x315a5a[_0x60d4('0x31')]=_['keys'](_0x4df0e9[_0x60d4('0x31')]);_0x315a5a[_0x60d4('0x32')]=_['intersection'](_0x315a5a['model'],_0x315a5a[_0x60d4('0x31')]);_0x2c9c29['attributes']=_[_0x60d4('0x33')](_0x315a5a[_0x60d4('0x2f')],qs[_0x60d4('0x35')](_0x4df0e9[_0x60d4('0x31')][_0x60d4('0x35')]));_0x2c9c29['attributes']=_0x2c9c29['attributes'][_0x60d4('0x46')]?_0x2c9c29['attributes']:_0x315a5a['model'];if(_0x4df0e9[_0x60d4('0x31')]['includeAll']){_0x2c9c29[_0x60d4('0x40')]=[{'all':!![]}];}_0x2c9c29=_['merge']({},_0x2c9c29,_0x4df0e9[_0x60d4('0x3e')]);return db[_0x60d4('0x2d')]['find'](_0x2c9c29)['then'](handleEntityNotFound(_0x34cd91,null))['then'](respondWithResult(_0x34cd91,null))[_0x60d4('0x43')](handleError(_0x34cd91,null));};exports['create']=function(_0x5328e1,_0x4ecbc1){return db[_0x60d4('0x2d')]['create'](_0x5328e1['body'],{})['then'](function(_0x5bde62){var _0x986bc3=_0x5328e1[_0x60d4('0x47')]['get']({'plain':!![]});if(!_0x986bc3)throw new Error(_0x60d4('0x48'));if(_0x986bc3[_0x60d4('0x49')]==='user'){var _0x4d3ff7=_0x5bde62[_0x60d4('0x28')]({'plain':!![]});var _0x568d7d=_0x60d4('0x29');return db[_0x60d4('0x4a')][_0x60d4('0x4b')]({'where':{'name':_0x568d7d,'userProfileId':_0x986bc3[_0x60d4('0x4c')]},'raw':!![]})['then'](function(_0x2c1ad2){if(_0x2c1ad2&&_0x2c1ad2[_0x60d4('0x4d')]===0x0){return db[_0x60d4('0x2a')][_0x60d4('0x4e')]({'name':_0x4d3ff7[_0x60d4('0x2c')],'resourceId':_0x4d3ff7['id'],'type':_0x2c1ad2[_0x60d4('0x2c')],'sectionId':_0x2c1ad2['id']},{})[_0x60d4('0x26')](function(){return _0x5bde62;});}else{return _0x5bde62;}})['catch'](function(_0x7f7500){logger[_0x60d4('0x4f')](_0x60d4('0x50'),_0x7f7500);throw _0x7f7500;});}return _0x5bde62;})[_0x60d4('0x26')](respondWithResult(_0x4ecbc1,0xc9))[_0x60d4('0x43')](handleError(_0x4ecbc1,null));};exports[_0x60d4('0x51')]=function(_0x3e3bde,_0x4a67d5){if(_0x3e3bde[_0x60d4('0x52')]['id']){delete _0x3e3bde[_0x60d4('0x52')]['id'];}return db[_0x60d4('0x2d')][_0x60d4('0x4b')]({'where':{'id':_0x3e3bde[_0x60d4('0x53')]['id']}})[_0x60d4('0x26')](handleEntityNotFound(_0x4a67d5,null))['then'](saveUpdates(_0x3e3bde['body'],null))['then'](respondWithResult(_0x4a67d5,null))['catch'](handleError(_0x4a67d5,null));};exports[_0x60d4('0x27')]=function(_0x415cdf,_0x534ec3){return db[_0x60d4('0x2d')][_0x60d4('0x4b')]({'where':{'id':_0x415cdf[_0x60d4('0x53')]['id']}})[_0x60d4('0x26')](handleEntityNotFound(_0x534ec3,null))[_0x60d4('0x26')](removeEntity(_0x534ec3,null))[_0x60d4('0x43')](handleError(_0x534ec3,null));};exports['describe']=function(_0x24aea3,_0x107b6c){return db[_0x60d4('0x2d')][_0x60d4('0x2e')]()[_0x60d4('0x26')](respondWithResult(_0x107b6c,null))[_0x60d4('0x43')](handleError(_0x107b6c,null));};exports['addContacts']=function(_0x58e6ba,_0x37da87,_0x41ed50){return db[_0x60d4('0x54')][_0x60d4('0x4b')]({'where':{'id':_0x58e6ba[_0x60d4('0x53')]['id']}})['then'](handleEntityNotFound(_0x37da87,null))[_0x60d4('0x26')](function(_0x3b9d5f){if(_0x3b9d5f){return _0x3b9d5f[_0x60d4('0x55')](_0x58e6ba[_0x60d4('0x52')][_0x60d4('0x56')],_[_0x60d4('0x57')](_0x58e6ba[_0x60d4('0x52')],[_0x60d4('0x56'),'id'])||{});}})[_0x60d4('0x26')](respondWithResult(_0x37da87,null))['catch'](handleError(_0x37da87,null));};exports[_0x60d4('0x58')]=function(_0x8db6cf,_0x19b4fa,_0x45897d){var _0x34c9f0={};var _0xb71afa={};var _0x2e58d3;var _0x596da6;return db[_0x60d4('0x2d')]['findOne']({'where':{'id':_0x8db6cf[_0x60d4('0x53')]['id']}})[_0x60d4('0x26')](handleEntityNotFound(_0x19b4fa,null))[_0x60d4('0x26')](function(_0x402bdb){if(_0x402bdb){_0x2e58d3=_0x402bdb;_0xb71afa[_0x60d4('0x2f')]=_[_0x60d4('0x30')](db[_0x60d4('0x54')][_0x60d4('0x45')]);_0xb71afa['query']=_[_0x60d4('0x30')](_0x8db6cf[_0x60d4('0x31')]);_0xb71afa[_0x60d4('0x32')]=_[_0x60d4('0x33')](_0xb71afa['model'],_0xb71afa[_0x60d4('0x31')]);_0x34c9f0[_0x60d4('0x34')]=_[_0x60d4('0x33')](_0xb71afa[_0x60d4('0x2f')],qs[_0x60d4('0x35')](_0x8db6cf[_0x60d4('0x31')]['fields']));_0x34c9f0['attributes']=_0x34c9f0[_0x60d4('0x34')]['length']?_0x34c9f0[_0x60d4('0x34')]:_0xb71afa['model'];_0x34c9f0[_0x60d4('0x38')]=qs[_0x60d4('0x39')](_0x8db6cf[_0x60d4('0x31')][_0x60d4('0x39')]);_0x34c9f0[_0x60d4('0x3a')]=qs['filters'](_['pick'](_0x8db6cf[_0x60d4('0x31')],_0xb71afa['filters']));if(_0x8db6cf[_0x60d4('0x31')][_0x60d4('0x3d')]){_0x34c9f0['where']=_[_0x60d4('0x3b')](_0x34c9f0['where'],{'$or':_[_0x60d4('0x3c')](_0x34c9f0[_0x60d4('0x34')],function(_0x5941ea){var _0x74842c={};_0x74842c[_0x5941ea]={'$like':'%'+_0x8db6cf[_0x60d4('0x31')][_0x60d4('0x3d')]+'%'};return _0x74842c;})});}_0x34c9f0=_[_0x60d4('0x3b')]({},_0x34c9f0,_0x8db6cf[_0x60d4('0x3e')]);return _0x2e58d3[_0x60d4('0x58')](_0x34c9f0);}})[_0x60d4('0x26')](function(_0x440159){if(_0x440159){_0x596da6=_0x440159[_0x60d4('0x46')];if(!_0x8db6cf['query'][_0x60d4('0x36')](_0x60d4('0x37'))){_0x34c9f0[_0x60d4('0x1f')]=qs[_0x60d4('0x1f')](_0x8db6cf[_0x60d4('0x31')][_0x60d4('0x1f')]);_0x34c9f0['offset']=qs[_0x60d4('0x1d')](_0x8db6cf[_0x60d4('0x31')][_0x60d4('0x1d')]);}return _0x2e58d3[_0x60d4('0x58')](_0x34c9f0);}})[_0x60d4('0x26')](function(_0x99148a){if(_0x99148a){return _0x99148a?{'count':_0x596da6,'rows':_0x99148a}:null;}})[_0x60d4('0x26')](respondWithResult(_0x19b4fa,null))['catch'](handleError(_0x19b4fa,null));};
\ No newline at end of file
+var _0x9387=['index','CmCompany','describe','model','keys','query','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','merge','map','include','findAll','rows','show','params','rawAttributes','includeAll','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','catch','CmContact','addContacts','ids','omit','getContacts','findOne','order','hasOwnProperty','rimraf','fast-json-patch','moment','bluebird','util','path','sox','ejs','fs-extra','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','update','destroy','then','get','Companies','UserProfileResource','error','stack','name','send'];(function(_0x2e7f96,_0x2ffe43){var _0x315277=function(_0x26bcae){while(--_0x26bcae){_0x2e7f96['push'](_0x2e7f96['shift']());}};_0x315277(++_0x2ffe43);}(_0x9387,0xcf));var _0x7938=function(_0x22198f,_0x1f8534){_0x22198f=_0x22198f-0x0;var _0x3ad148=_0x9387[_0x22198f];return _0x3ad148;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7938('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7938('0x1'));var rp=require('request-promise');var moment=require(_0x7938('0x2'));var BPromise=require(_0x7938('0x3'));var Mustache=require('mustache');var util=require(_0x7938('0x4'));var path=require(_0x7938('0x5'));var sox=require(_0x7938('0x6'));var csv=require('to-csv');var ejs=require(_0x7938('0x7'));var fs=require('fs');var fs_extra=require(_0x7938('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7938('0x9'));var deskjs=require(_0x7938('0xa'));var toCsv=require('to-csv');var querystring=require(_0x7938('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x7938('0xc'));var qs=require(_0x7938('0xd'));var as=require(_0x7938('0xe'));var hardwareService=require(_0x7938('0xf'));var logger=require(_0x7938('0x10'))(_0x7938('0x11'));var utils=require(_0x7938('0x12'));var config=require(_0x7938('0x13'));var licenseUtil=require(_0x7938('0x14'));var db=require(_0x7938('0x15'))['db'];function respondWithStatusCode(_0x321b4d,_0x1bf339){_0x1bf339=_0x1bf339||0xcc;return function(_0x46a17d){if(_0x46a17d){return _0x321b4d[_0x7938('0x16')](_0x1bf339);}return _0x321b4d[_0x7938('0x17')](_0x1bf339)[_0x7938('0x18')]();};}function respondWithResult(_0x21e86e,_0x2d1e04){_0x2d1e04=_0x2d1e04||0xc8;return function(_0xc749a4){if(_0xc749a4){return _0x21e86e[_0x7938('0x17')](_0x2d1e04)[_0x7938('0x19')](_0xc749a4);}};}function respondWithFilteredResult(_0x58f136,_0x416499){return function(_0x217780){if(_0x217780){var _0x42c8c0=typeof _0x416499['offset']===_0x7938('0x1a')&&typeof _0x416499[_0x7938('0x1b')]===_0x7938('0x1a');var _0x234282=_0x217780['count'];var _0x5a891f=_0x42c8c0?0x0:_0x416499['offset'];var _0x1fbbd8=_0x42c8c0?_0x217780[_0x7938('0x1c')]:_0x416499[_0x7938('0x1d')]+_0x416499[_0x7938('0x1b')];var _0x4c1e88;if(_0x1fbbd8>=_0x234282){_0x1fbbd8=_0x234282;_0x4c1e88=0xc8;}else{_0x4c1e88=0xce;}_0x58f136[_0x7938('0x17')](_0x4c1e88);return _0x58f136[_0x7938('0x1e')](_0x7938('0x1f'),_0x5a891f+'-'+_0x1fbbd8+'/'+_0x234282)[_0x7938('0x19')](_0x217780);}return null;};}function patchUpdates(_0x42b14e){return function(_0x2f9c0b){try{jsonpatch['apply'](_0x2f9c0b,_0x42b14e,!![]);}catch(_0xe67317){return BPromise['reject'](_0xe67317);}return _0x2f9c0b['save']();};}function saveUpdates(_0x5a3547,_0x2d414b){return function(_0x3f2c07){if(_0x3f2c07){return _0x3f2c07[_0x7938('0x20')](_0x5a3547)['then'](function(_0x2f79ac){return _0x2f79ac;});}return null;};}function removeEntity(_0x305f8b,_0x61ed9e){return function(_0x3b904f){if(_0x3b904f){return _0x3b904f[_0x7938('0x21')]()[_0x7938('0x22')](function(){var _0x5a39a5=_0x3b904f[_0x7938('0x23')]({'plain':!![]});var _0x5162a4=_0x7938('0x24');return db[_0x7938('0x25')][_0x7938('0x21')]({'where':{'type':_0x5162a4,'resourceId':_0x5a39a5['id']}})['then'](function(){return _0x3b904f;});})[_0x7938('0x22')](function(){_0x305f8b[_0x7938('0x17')](0xcc)[_0x7938('0x18')]();});}};}function handleEntityNotFound(_0x27394a,_0x3258d0){return function(_0x2daf4b){if(!_0x2daf4b){_0x27394a[_0x7938('0x16')](0x194);}return _0x2daf4b;};}function handleError(_0x2deecb,_0x21bf0b){_0x21bf0b=_0x21bf0b||0x1f4;return function(_0x48f914){logger[_0x7938('0x26')](_0x48f914[_0x7938('0x27')]);if(_0x48f914['name']){delete _0x48f914[_0x7938('0x28')];}_0x2deecb[_0x7938('0x17')](_0x21bf0b)[_0x7938('0x29')](_0x48f914);};}exports[_0x7938('0x2a')]=function(_0xbe1365,_0x4be8f4){var _0x30fc1c={},_0x16f475={},_0x1fb1cb={'count':0x0,'rows':[]};return db[_0x7938('0x2b')][_0x7938('0x2c')]()[_0x7938('0x22')](function(_0x2a9022){_0x16f475[_0x7938('0x2d')]=_[_0x7938('0x2e')](_0x2a9022);_0x16f475[_0x7938('0x2f')]=_[_0x7938('0x2e')](_0xbe1365['query']);_0x16f475[_0x7938('0x30')]=_[_0x7938('0x31')](_0x16f475[_0x7938('0x2d')],_0x16f475[_0x7938('0x2f')]);_0x30fc1c['attributes']=_[_0x7938('0x31')](_0x16f475[_0x7938('0x2d')],qs[_0x7938('0x32')](_0xbe1365['query']['fields']));_0x30fc1c[_0x7938('0x33')]=_0x30fc1c[_0x7938('0x33')][_0x7938('0x34')]?_0x30fc1c[_0x7938('0x33')]:_0x16f475[_0x7938('0x2d')];if(!_0xbe1365[_0x7938('0x2f')]['hasOwnProperty'](_0x7938('0x35'))){_0x30fc1c[_0x7938('0x1b')]=qs[_0x7938('0x1b')](_0xbe1365[_0x7938('0x2f')]['limit']);_0x30fc1c[_0x7938('0x1d')]=qs[_0x7938('0x1d')](_0xbe1365[_0x7938('0x2f')][_0x7938('0x1d')]);}_0x30fc1c['order']=qs[_0x7938('0x36')](_0xbe1365['query'][_0x7938('0x36')]);_0x30fc1c[_0x7938('0x37')]=qs[_0x7938('0x30')](_[_0x7938('0x38')](_0xbe1365[_0x7938('0x2f')],_0x16f475[_0x7938('0x30')]),_0x2a9022);if(_0xbe1365[_0x7938('0x2f')][_0x7938('0x39')]){_0x30fc1c['where']=_[_0x7938('0x3a')](_0x30fc1c['where'],{'$or':_[_0x7938('0x3b')](_0x30fc1c['attributes'],function(_0x47d525){var _0x268aa8={};_0x268aa8[_0x47d525]={'$like':'%'+_0xbe1365[_0x7938('0x2f')]['filter']+'%'};return _0x268aa8;})});}_0x30fc1c=_[_0x7938('0x3a')]({},_0x30fc1c,_0xbe1365['options']);var _0x2c22ad={'where':_0x30fc1c[_0x7938('0x37')]};return db[_0x7938('0x2b')]['count'](_0x2c22ad)[_0x7938('0x22')](function(_0x353f53){_0x1fb1cb[_0x7938('0x1c')]=_0x353f53;if(_0xbe1365[_0x7938('0x2f')]['includeAll']){_0x30fc1c[_0x7938('0x3c')]=[{'all':!![]}];}return db['CmCompany'][_0x7938('0x3d')](_0x30fc1c);})[_0x7938('0x22')](function(_0x59d3b7){_0x1fb1cb[_0x7938('0x3e')]=_0x59d3b7;return _0x1fb1cb;})['then'](respondWithFilteredResult(_0x4be8f4,_0x30fc1c))['catch'](handleError(_0x4be8f4,null));})['catch'](handleError(_0x4be8f4,null));};exports[_0x7938('0x3f')]=function(_0x1ef930,_0x26e07a){var _0x5505ae={'raw':![],'where':{'id':_0x1ef930[_0x7938('0x40')]['id']}},_0x2cdcb8={};_0x2cdcb8[_0x7938('0x2d')]=_['keys'](db[_0x7938('0x2b')][_0x7938('0x41')]);_0x2cdcb8['query']=_[_0x7938('0x2e')](_0x1ef930[_0x7938('0x2f')]);_0x2cdcb8[_0x7938('0x30')]=_[_0x7938('0x31')](_0x2cdcb8[_0x7938('0x2d')],_0x2cdcb8[_0x7938('0x2f')]);_0x5505ae['attributes']=_[_0x7938('0x31')](_0x2cdcb8['model'],qs[_0x7938('0x32')](_0x1ef930[_0x7938('0x2f')][_0x7938('0x32')]));_0x5505ae['attributes']=_0x5505ae['attributes'][_0x7938('0x34')]?_0x5505ae[_0x7938('0x33')]:_0x2cdcb8[_0x7938('0x2d')];if(_0x1ef930[_0x7938('0x2f')][_0x7938('0x42')]){_0x5505ae[_0x7938('0x3c')]=[{'all':!![]}];}_0x5505ae=_[_0x7938('0x3a')]({},_0x5505ae,_0x1ef930[_0x7938('0x43')]);return db['CmCompany'][_0x7938('0x44')](_0x5505ae)['then'](handleEntityNotFound(_0x26e07a,null))[_0x7938('0x22')](respondWithResult(_0x26e07a,null))['catch'](handleError(_0x26e07a,null));};exports[_0x7938('0x45')]=function(_0x53c754,_0x540e78){return db['CmCompany'][_0x7938('0x45')](_0x53c754[_0x7938('0x46')],{})[_0x7938('0x22')](function(_0x1c26dc){var _0x20a1a0=_0x53c754['user']['get']({'plain':!![]});if(!_0x20a1a0)throw new Error(_0x7938('0x47'));if(_0x20a1a0['role']==='user'){var _0x24dfc4=_0x1c26dc['get']({'plain':!![]});var _0x3c7396=_0x7938('0x24');return db[_0x7938('0x48')][_0x7938('0x44')]({'where':{'name':_0x3c7396,'userProfileId':_0x20a1a0[_0x7938('0x49')]},'raw':!![]})[_0x7938('0x22')](function(_0x47cda1){if(_0x47cda1&&_0x47cda1['autoAssociation']===0x0){return db[_0x7938('0x25')]['create']({'name':_0x24dfc4['name'],'resourceId':_0x24dfc4['id'],'type':_0x47cda1[_0x7938('0x28')],'sectionId':_0x47cda1['id']},{})[_0x7938('0x22')](function(){return _0x1c26dc;});}else{return _0x1c26dc;}})[_0x7938('0x4a')](function(_0x5671ab){logger[_0x7938('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5671ab);throw _0x5671ab;});}return _0x1c26dc;})[_0x7938('0x22')](respondWithResult(_0x540e78,0xc9))[_0x7938('0x4a')](handleError(_0x540e78,null));};exports['update']=function(_0x46f450,_0x13a546){if(_0x46f450[_0x7938('0x46')]['id']){delete _0x46f450[_0x7938('0x46')]['id'];}return db[_0x7938('0x2b')]['find']({'where':{'id':_0x46f450[_0x7938('0x40')]['id']}})[_0x7938('0x22')](handleEntityNotFound(_0x13a546,null))[_0x7938('0x22')](saveUpdates(_0x46f450['body'],null))[_0x7938('0x22')](respondWithResult(_0x13a546,null))['catch'](handleError(_0x13a546,null));};exports['destroy']=function(_0x255fed,_0x1f1b0e){return db[_0x7938('0x2b')][_0x7938('0x44')]({'where':{'id':_0x255fed[_0x7938('0x40')]['id']}})[_0x7938('0x22')](handleEntityNotFound(_0x1f1b0e,null))['then'](removeEntity(_0x1f1b0e,null))[_0x7938('0x4a')](handleError(_0x1f1b0e,null));};exports[_0x7938('0x2c')]=function(_0x2cb8ec,_0x1f4f45){return db[_0x7938('0x2b')]['describe']()['then'](respondWithResult(_0x1f4f45,null))['catch'](handleError(_0x1f4f45,null));};exports['addContacts']=function(_0x24a1bd,_0x2bf2a6,_0x14555b){return db[_0x7938('0x4b')][_0x7938('0x44')]({'where':{'id':_0x24a1bd[_0x7938('0x40')]['id']}})['then'](handleEntityNotFound(_0x2bf2a6,null))[_0x7938('0x22')](function(_0x12008e){if(_0x12008e){return _0x12008e[_0x7938('0x4c')](_0x24a1bd[_0x7938('0x46')][_0x7938('0x4d')],_[_0x7938('0x4e')](_0x24a1bd[_0x7938('0x46')],[_0x7938('0x4d'),'id'])||{});}})[_0x7938('0x22')](respondWithResult(_0x2bf2a6,null))[_0x7938('0x4a')](handleError(_0x2bf2a6,null));};exports[_0x7938('0x4f')]=function(_0x3ad5e9,_0x30012b,_0x589ae6){var _0x4e3414={};var _0x413e8e={};var _0x3234d5;var _0x4b6664;return db[_0x7938('0x2b')][_0x7938('0x50')]({'where':{'id':_0x3ad5e9['params']['id']}})[_0x7938('0x22')](handleEntityNotFound(_0x30012b,null))['then'](function(_0x516f1c){if(_0x516f1c){_0x3234d5=_0x516f1c;_0x413e8e[_0x7938('0x2d')]=_[_0x7938('0x2e')](db['CmContact'][_0x7938('0x41')]);_0x413e8e['query']=_[_0x7938('0x2e')](_0x3ad5e9[_0x7938('0x2f')]);_0x413e8e[_0x7938('0x30')]=_[_0x7938('0x31')](_0x413e8e[_0x7938('0x2d')],_0x413e8e[_0x7938('0x2f')]);_0x4e3414[_0x7938('0x33')]=_[_0x7938('0x31')](_0x413e8e['model'],qs[_0x7938('0x32')](_0x3ad5e9[_0x7938('0x2f')][_0x7938('0x32')]));_0x4e3414['attributes']=_0x4e3414[_0x7938('0x33')]['length']?_0x4e3414[_0x7938('0x33')]:_0x413e8e[_0x7938('0x2d')];_0x4e3414[_0x7938('0x51')]=qs[_0x7938('0x36')](_0x3ad5e9['query'][_0x7938('0x36')]);_0x4e3414[_0x7938('0x37')]=qs[_0x7938('0x30')](_[_0x7938('0x38')](_0x3ad5e9['query'],_0x413e8e[_0x7938('0x30')]));if(_0x3ad5e9[_0x7938('0x2f')]['filter']){_0x4e3414[_0x7938('0x37')]=_[_0x7938('0x3a')](_0x4e3414[_0x7938('0x37')],{'$or':_['map'](_0x4e3414['attributes'],function(_0x376392){var _0x23c2ad={};_0x23c2ad[_0x376392]={'$like':'%'+_0x3ad5e9[_0x7938('0x2f')]['filter']+'%'};return _0x23c2ad;})});}_0x4e3414=_[_0x7938('0x3a')]({},_0x4e3414,_0x3ad5e9[_0x7938('0x43')]);return _0x3234d5[_0x7938('0x4f')](_0x4e3414);}})[_0x7938('0x22')](function(_0x13896f){if(_0x13896f){_0x4b6664=_0x13896f[_0x7938('0x34')];if(!_0x3ad5e9[_0x7938('0x2f')][_0x7938('0x52')](_0x7938('0x35'))){_0x4e3414[_0x7938('0x1b')]=qs['limit'](_0x3ad5e9[_0x7938('0x2f')][_0x7938('0x1b')]);_0x4e3414[_0x7938('0x1d')]=qs[_0x7938('0x1d')](_0x3ad5e9[_0x7938('0x2f')][_0x7938('0x1d')]);}return _0x3234d5[_0x7938('0x4f')](_0x4e3414);}})[_0x7938('0x22')](function(_0x294f5a){if(_0x294f5a){return _0x294f5a?{'count':_0x4b6664,'rows':_0x294f5a}:null;}})[_0x7938('0x22')](respondWithResult(_0x30012b,null))[_0x7938('0x4a')](handleError(_0x30012b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd32c=['path','rimraf','../../config/environment','./cmCompany.attributes','exports','define','CmCompany','cm_companies','lodash','util','api','moment','bluebird'];(function(_0x422f3c,_0x20d5a3){var _0x274bfa=function(_0x3b6ea8){while(--_0x3b6ea8){_0x422f3c['push'](_0x422f3c['shift']());}};_0x274bfa(++_0x20d5a3);}(_0xd32c,0x1e9));var _0xcd32=function(_0x2b0b61,_0x170827){_0x2b0b61=_0x2b0b61-0x0;var _0x2ae144=_0xd32c[_0x2b0b61];return _0x2ae144;};'use strict';var _=require(_0xcd32('0x0'));var util=require(_0xcd32('0x1'));var logger=require('../../config/logger')(_0xcd32('0x2'));var moment=require(_0xcd32('0x3'));var BPromise=require(_0xcd32('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xcd32('0x5'));var rimraf=require(_0xcd32('0x6'));var config=require(_0xcd32('0x7'));var attributes=require(_0xcd32('0x8'));module[_0xcd32('0x9')]=function(_0x311267,_0x26644f){return _0x311267[_0xcd32('0xa')](_0xcd32('0xb'),attributes,{'tableName':_0xcd32('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x96bd=['request-promise','path','rimraf','exports','define','CmCompany','cm_companies','lodash','../../config/logger','api','moment'];(function(_0x285bc6,_0x24cb17){var _0x1fef47=function(_0x1e6212){while(--_0x1e6212){_0x285bc6['push'](_0x285bc6['shift']());}};_0x1fef47(++_0x24cb17);}(_0x96bd,0x1d5));var _0xd96b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x96bd[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0xd96b('0x0'));var util=require('util');var logger=require(_0xd96b('0x1'))(_0xd96b('0x2'));var moment=require(_0xd96b('0x3'));var BPromise=require('bluebird');var rp=require(_0xd96b('0x4'));var fs=require('fs');var path=require(_0xd96b('0x5'));var rimraf=require(_0xd96b('0x6'));var config=require('../../config/environment');var attributes=require('./cmCompany.attributes');module[_0xd96b('0x7')]=function(_0x4fdedf,_0x920e3c){return _0x4fdedf[_0xd96b('0x8')](_0xd96b('0x9'),attributes,{'tableName':_0xd96b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x230d=['request','then','info','CmCompany,\x20%s,\x20%s','request\x20sent','debug','CmCompany,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http'];(function(_0x595bd1,_0xb1e7a){var _0xd0344f=function(_0x5eb2fd){while(--_0x5eb2fd){_0x595bd1['push'](_0x595bd1['shift']());}};_0xd0344f(++_0xb1e7a);}(_0x230d,0x1da));var _0xd230=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x230d[_0x57b54c];return _0x59cc19;};'use strict';var _=require('lodash');var util=require(_0xd230('0x0'));var moment=require(_0xd230('0x1'));var BPromise=require(_0xd230('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd230('0x3'))['db'];var utils=require(_0xd230('0x4'));var logger=require(_0xd230('0x5'))(_0xd230('0x6'));var config=require(_0xd230('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0xd230('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x667be0,_0x156bbe,_0x13e4bb){return new BPromise(function(_0x3b62b8,_0x3811a9){return client[_0xd230('0x9')](_0x667be0,_0x13e4bb)[_0xd230('0xa')](function(_0x1c9227){logger[_0xd230('0xb')](_0xd230('0xc'),_0x156bbe,_0xd230('0xd'));logger[_0xd230('0xe')](_0xd230('0xf'),_0x156bbe,_0xd230('0xd'),JSON[_0xd230('0x10')](_0x1c9227));if(_0x1c9227[_0xd230('0x11')]){if(_0x1c9227[_0xd230('0x11')]['code']===0x1f4){logger[_0xd230('0x11')]('CmCompany,\x20%s,\x20%s',_0x156bbe,_0x1c9227[_0xd230('0x11')][_0xd230('0x12')]);return _0x3811a9(_0x1c9227[_0xd230('0x11')][_0xd230('0x12')]);}logger[_0xd230('0x11')](_0xd230('0xc'),_0x156bbe,_0x1c9227[_0xd230('0x11')][_0xd230('0x12')]);return _0x3b62b8(_0x1c9227[_0xd230('0x11')]['message']);}else{logger[_0xd230('0xb')]('CmCompany,\x20%s,\x20%s',_0x156bbe,_0xd230('0xd'));_0x3b62b8(_0x1c9227[_0xd230('0x13')][_0xd230('0x12')]);}})[_0xd230('0x14')](function(_0x4e4851){logger['error']('CmCompany,\x20%s,\x20%s',_0x156bbe,_0x4e4851);_0x3811a9(_0x4e4851);});});}
\ No newline at end of file
+var _0x5f15=['error','code','CmCompany,\x20%s,\x20%s','message','result','lodash','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','info','request\x20sent','debug','CmCompany,\x20%s,\x20%s,\x20%s'];(function(_0x1efb37,_0x36569f){var _0x154cb0=function(_0x575ea4){while(--_0x575ea4){_0x1efb37['push'](_0x1efb37['shift']());}};_0x154cb0(++_0x36569f);}(_0x5f15,0x194));var _0x55f1=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x5f15[_0x57b54c];return _0x59cc19;};'use strict';var _=require(_0x55f1('0x0'));var util=require('util');var moment=require(_0x55f1('0x1'));var BPromise=require(_0x55f1('0x2'));var rs=require(_0x55f1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x55f1('0x4'));var logger=require(_0x55f1('0x5'))(_0x55f1('0x6'));var config=require(_0x55f1('0x7'));var jayson=require(_0x55f1('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1a668f,_0x56da74,_0x54ef13){return new BPromise(function(_0x39e391,_0x38de4){return client[_0x55f1('0x9')](_0x1a668f,_0x54ef13)['then'](function(_0xcd46cf){logger[_0x55f1('0xa')]('CmCompany,\x20%s,\x20%s',_0x56da74,_0x55f1('0xb'));logger[_0x55f1('0xc')](_0x55f1('0xd'),_0x56da74,'request\x20sent',JSON['stringify'](_0xcd46cf));if(_0xcd46cf[_0x55f1('0xe')]){if(_0xcd46cf['error'][_0x55f1('0xf')]===0x1f4){logger[_0x55f1('0xe')](_0x55f1('0x10'),_0x56da74,_0xcd46cf[_0x55f1('0xe')][_0x55f1('0x11')]);return _0x38de4(_0xcd46cf['error'][_0x55f1('0x11')]);}logger[_0x55f1('0xe')](_0x55f1('0x10'),_0x56da74,_0xcd46cf[_0x55f1('0xe')][_0x55f1('0x11')]);return _0x39e391(_0xcd46cf['error']['message']);}else{logger[_0x55f1('0xa')](_0x55f1('0x10'),_0x56da74,_0x55f1('0xb'));_0x39e391(_0xcd46cf[_0x55f1('0x12')][_0x55f1('0x11')]);}})['catch'](function(_0x428c4b){logger[_0x55f1('0xe')](_0x55f1('0x10'),_0x56da74,_0x428c4b);_0x38de4(_0x428c4b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e63=['express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCompany.controller','isAuthenticated','index','/describe','get','/:id','show','/:id/contacts','getContacts','post','addContacts','put','update','destroy','multer','path','connect-timeout'];(function(_0x451def,_0x4f86e4){var _0x1449d1=function(_0x1c931f){while(--_0x1c931f){_0x451def['push'](_0x451def['shift']());}};_0x1449d1(++_0x4f86e4);}(_0x5e63,0x19f));var _0x35e6=function(_0x34e755,_0x324b09){_0x34e755=_0x34e755-0x0;var _0x1febfc=_0x5e63[_0x34e755];return _0x1febfc;};'use strict';var multer=require(_0x35e6('0x0'));var util=require('util');var path=require(_0x35e6('0x1'));var timeout=require(_0x35e6('0x2'));var express=require(_0x35e6('0x3'));var router=express['Router']();var fs_extra=require(_0x35e6('0x4'));var auth=require(_0x35e6('0x5'));var interaction=require(_0x35e6('0x6'));var config=require(_0x35e6('0x7'));var controller=require(_0x35e6('0x8'));router['get']('/',auth[_0x35e6('0x9')](),controller[_0x35e6('0xa')]);router['get'](_0x35e6('0xb'),auth[_0x35e6('0x9')](),controller['describe']);router[_0x35e6('0xc')](_0x35e6('0xd'),auth[_0x35e6('0x9')](),controller[_0x35e6('0xe')]);router[_0x35e6('0xc')](_0x35e6('0xf'),auth[_0x35e6('0x9')](),controller[_0x35e6('0x10')]);router[_0x35e6('0x11')]('/',auth[_0x35e6('0x9')](),controller['create']);router[_0x35e6('0x11')](_0x35e6('0xf'),auth['isAuthenticated'](),controller[_0x35e6('0x12')]);router[_0x35e6('0x13')](_0x35e6('0xd'),auth[_0x35e6('0x9')](),controller[_0x35e6('0x14')]);router['delete'](_0x35e6('0xd'),auth[_0x35e6('0x9')](),controller[_0x35e6('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0xddbe=['show','/:id/contacts','getContacts','post','addContacts','put','delete','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCompany.controller','get','/describe','isAuthenticated','describe','/:id'];(function(_0x19d982,_0x570390){var _0x326291=function(_0x44a1c3){while(--_0x44a1c3){_0x19d982['push'](_0x19d982['shift']());}};_0x326291(++_0x570390);}(_0xddbe,0x13b));var _0xeddb=function(_0x4b6a59,_0x14892f){_0x4b6a59=_0x4b6a59-0x0;var _0x19f2f0=_0xddbe[_0x4b6a59];return _0x19f2f0;};'use strict';var multer=require(_0xeddb('0x0'));var util=require(_0xeddb('0x1'));var path=require(_0xeddb('0x2'));var timeout=require(_0xeddb('0x3'));var express=require('express');var router=express[_0xeddb('0x4')]();var fs_extra=require(_0xeddb('0x5'));var auth=require(_0xeddb('0x6'));var interaction=require(_0xeddb('0x7'));var config=require(_0xeddb('0x8'));var controller=require(_0xeddb('0x9'));router[_0xeddb('0xa')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xeddb('0xb'),auth[_0xeddb('0xc')](),controller[_0xeddb('0xd')]);router[_0xeddb('0xa')](_0xeddb('0xe'),auth[_0xeddb('0xc')](),controller[_0xeddb('0xf')]);router[_0xeddb('0xa')](_0xeddb('0x10'),auth[_0xeddb('0xc')](),controller[_0xeddb('0x11')]);router[_0xeddb('0x12')]('/',auth[_0xeddb('0xc')](),controller['create']);router['post'](_0xeddb('0x10'),auth[_0xeddb('0xc')](),controller[_0xeddb('0x13')]);router[_0xeddb('0x14')]('/:id',auth[_0xeddb('0xc')](),controller['update']);router[_0xeddb('0x15')]('/:id',auth[_0xeddb('0xc')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0915=['INTEGER','UNSIGNED','DATE','NOW','lodash','exports','STRING'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x0915,0x1e7));var _0x5091=function(_0x29c3b2,_0x3c12ac){_0x29c3b2=_0x29c3b2-0x0;var _0x4b3aa7=_0x0915[_0x29c3b2];return _0x4b3aa7;};'use strict';var _=require(_0x5091('0x0'));var Sequelize=require('sequelize');module[_0x5091('0x1')]={'firstName':{'type':Sequelize[_0x5091('0x2')],'allowNull':![]},'lastName':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0x5091('0x2')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0x5091('0x2')]},'country':{'type':Sequelize['STRING']},'dateOfBirth':{'type':Sequelize[_0x5091('0x2')]},'description':{'type':Sequelize['TEXT']},'phone':{'type':Sequelize[_0x5091('0x2')]},'mobile':{'type':Sequelize[_0x5091('0x2')]},'fax':{'type':Sequelize[_0x5091('0x2')]},'email':{'type':Sequelize['STRING']},'url':{'type':Sequelize[_0x5091('0x2')]},'facebook':{'type':Sequelize[_0x5091('0x2')]},'fb_data':{'type':Sequelize[_0x5091('0x2')]},'twitter':{'type':Sequelize[_0x5091('0x2')]},'skype':{'type':Sequelize[_0x5091('0x2')]},'teams':{'type':Sequelize[_0x5091('0x2')]},'viber':{'type':Sequelize[_0x5091('0x2')]},'line':{'type':Sequelize[_0x5091('0x2')]},'wechat':{'type':Sequelize[_0x5091('0x2')]},'telegram':{'type':Sequelize[_0x5091('0x2')]},'UserId':{'type':Sequelize[_0x5091('0x3')]},'priority':{'type':Sequelize[_0x5091('0x3')](0x2)[_0x5091('0x4')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0x5091('0x5')],'defaultValue':Sequelize[_0x5091('0x6')]}};
\ No newline at end of file
+var _0x3ed1=['NOW','lodash','sequelize','exports','STRING','TEXT','INTEGER','UNSIGNED','DATE'];(function(_0x27f444,_0x2576e6){var _0x4e4cf3=function(_0x54c2db){while(--_0x54c2db){_0x27f444['push'](_0x27f444['shift']());}};_0x4e4cf3(++_0x2576e6);}(_0x3ed1,0x1d5));var _0x13ed=function(_0x20275f,_0x4528c5){_0x20275f=_0x20275f-0x0;var _0x5a5457=_0x3ed1[_0x20275f];return _0x5a5457;};'use strict';var _=require(_0x13ed('0x0'));var Sequelize=require(_0x13ed('0x1'));module[_0x13ed('0x2')]={'firstName':{'type':Sequelize[_0x13ed('0x3')],'allowNull':![]},'lastName':{'type':Sequelize[_0x13ed('0x3')]},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize[_0x13ed('0x3')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0x13ed('0x3')]},'dateOfBirth':{'type':Sequelize[_0x13ed('0x3')]},'description':{'type':Sequelize[_0x13ed('0x4')]},'phone':{'type':Sequelize[_0x13ed('0x3')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0x13ed('0x3')]},'email':{'type':Sequelize[_0x13ed('0x3')]},'url':{'type':Sequelize[_0x13ed('0x3')]},'facebook':{'type':Sequelize[_0x13ed('0x3')]},'fb_data':{'type':Sequelize[_0x13ed('0x3')]},'twitter':{'type':Sequelize[_0x13ed('0x3')]},'skype':{'type':Sequelize['STRING']},'teams':{'type':Sequelize['STRING']},'viber':{'type':Sequelize[_0x13ed('0x3')]},'line':{'type':Sequelize[_0x13ed('0x3')]},'wechat':{'type':Sequelize['STRING']},'telegram':{'type':Sequelize[_0x13ed('0x3')]},'UserId':{'type':Sequelize[_0x13ed('0x5')]},'priority':{'type':Sequelize[_0x13ed('0x5')](0x2)[_0x13ed('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0x13ed('0x7')],'defaultValue':Sequelize[_0x13ed('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccb3=['value','split','map','forEach','union','User','and','uc.UserId\x20=\x20?','datetime','castTo','DATE','start','isNil','Contact','ListId','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','isNumeric','c.mobile\x20LIKE\x20?','c.fax\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','Sequelize','QueryTypes','SELECT','c.id','DESC','isEmpty','having','t.id\x20IN\x20?','resolve','user','role','agent','some','getLists','c.ListId\x20IS\x20NULL','c.ListId\x20IN\x20?','toString','count','sequelize','merge','c.phone','c.mobile','c.fax','c.email','c.ListId','c.createdAt','c.deletedAt','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','tags','columnName','displayName','analytics','CmCustomField','type','values','catch','body','get','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','[CmContact][merge][destroy][CmHopper],\x20%s','info','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatInteraction','ChatMessage','ChatOfflineMessage','MailInteraction','SmsInteraction','SmsMessage','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','CmHopperHistory','ReportAgentPreview','VoiceCallReport','ChatQueueReport','MailQueueReport','OpenchannelQueueReport','SmsQueueReport','WhatsappInteraction','WhatsappMessage','WhatsappQueueReport','bulkCreate','each','duplicates','$or','spread','show','Tag','$and','format','params','findAll','omit','pickBy','cf_%d','cm_contacts','setFields','id\x20=\x20?','text','phone','getTags','model','rawAttributes','filters','setTags','ids','getHoppers','ContactId','options','includeAll','rows','getHopperHistories','include','JscriptySessionReport','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','file','filename','chmodSync','0777','child_process','fork','../../components/import/cm/csv','File\x20uploaded\x20correctly!','pid','upload','parse','binding','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','exit','error\x20child\x20process','getJourney','mail','chat','sms','openchannel','whatsapp','channel','Invalid\x20channel','toLowerCase','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','source','destination','endtime','userDisposition','userThirdDisposition','UserId','alias','createdAt','findAndCountAll','startCase','Website','Account','closedAt','note','secondDisposition','key','Owner','fullname','customerPort','osName','ratingType','referer','substatus','reverse','slice','moment','util','path','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./cmContact.socket','register','status','offset','undefined','limit','set','json','update','then','destroy','end','sendStatus','error','stack','name','send','index','CmContact','describe','keys','length','push','findOne','all','cf_','fieldType','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','from','tools_tags','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','cm_contact_has_tags','c.deletedAt\x20IS\x20NULL','expr','parseSearch','sqlOperator','conditions','find'];(function(_0x3a0687,_0x248f45){var _0xc6c44f=function(_0x15c013){while(--_0x15c013){_0x3a0687['push'](_0x3a0687['shift']());}};_0xc6c44f(++_0x248f45);}(_0xccb3,0xca));var _0x3ccb=function(_0xe30e17,_0xce02be){_0xe30e17=_0xe30e17-0x0;var _0x2342c9=_0xccb3[_0xe30e17];return _0x2342c9;};'use strict';var moment=require(_0x3ccb('0x0'));var BPromise=require('bluebird');var util=require(_0x3ccb('0x1'));var path=require(_0x3ccb('0x2'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var Papa=require(_0x3ccb('0x3'));var Redis=require(_0x3ccb('0x4'));var qs=require('../../components/parsers/qs');var as=require(_0x3ccb('0x5'));var logger=require(_0x3ccb('0x6'))(_0x3ccb('0x7'));var config=require(_0x3ccb('0x8'));var db=require(_0x3ccb('0x9'))['db'];config[_0x3ccb('0xa')]=_[_0x3ccb('0xb')](config[_0x3ccb('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x3ccb('0xc'))(new Redis(config[_0x3ccb('0xa')]));require(_0x3ccb('0xd'))[_0x3ccb('0xe')](socket);function respondWithResult(_0x1b9dfa,_0xd713f5){_0xd713f5=_0xd713f5||0xc8;return function(_0x5ec784){if(_0x5ec784){return _0x1b9dfa[_0x3ccb('0xf')](_0xd713f5)['json'](_0x5ec784);}};}function respondWithFilteredResult(_0x8f7058,_0x260afd){return function(_0x1a05d1){if(_0x1a05d1){var _0x4c19a6=typeof _0x260afd[_0x3ccb('0x10')]===_0x3ccb('0x11')&&typeof _0x260afd[_0x3ccb('0x12')]===_0x3ccb('0x11');var _0x41e55c=_0x1a05d1['count'];var _0x1bd3d1=_0x4c19a6?0x0:_0x260afd[_0x3ccb('0x10')];var _0x2f430a=_0x4c19a6?_0x1a05d1['count']:_0x260afd[_0x3ccb('0x10')]+_0x260afd[_0x3ccb('0x12')];var _0x348e05;if(_0x2f430a>=_0x41e55c){_0x2f430a=_0x41e55c;_0x348e05=0xc8;}else{_0x348e05=0xce;}_0x8f7058['status'](_0x348e05);return _0x8f7058[_0x3ccb('0x13')]('Content-Range',_0x1bd3d1+'-'+_0x2f430a+'/'+_0x41e55c)[_0x3ccb('0x14')](_0x1a05d1);}return null;};}function saveUpdates(_0x1d30f2){return function(_0x41405d){if(_0x41405d){return _0x41405d[_0x3ccb('0x15')](_0x1d30f2)[_0x3ccb('0x16')](function(_0x294ba6){return _0x294ba6;});}return null;};}function removeEntity(_0x374c4c){return function(_0x4c0e1c){if(_0x4c0e1c){return _0x4c0e1c[_0x3ccb('0x17')]()[_0x3ccb('0x16')](function(){_0x374c4c[_0x3ccb('0xf')](0xcc)[_0x3ccb('0x18')]();});}};}function handleEntityNotFound(_0x204ec7){return function(_0x3211cc){if(!_0x3211cc){_0x204ec7[_0x3ccb('0x19')](0x194);}return _0x3211cc;};}function handleError(_0x458270,_0x3a2d30){_0x3a2d30=_0x3a2d30||0x1f4;return function(_0x35ce38){logger[_0x3ccb('0x1a')](_0x35ce38[_0x3ccb('0x1b')]);if(_0x35ce38[_0x3ccb('0x1c')]){delete _0x35ce38[_0x3ccb('0x1c')];}_0x458270[_0x3ccb('0xf')](_0x3a2d30)[_0x3ccb('0x1d')](_0x35ce38);};}exports[_0x3ccb('0x1e')]=function(_0x5cd90b,_0x52ca22){var _0x17f683={},_0x1c4c53={},_0xbd026c={'count':0x0,'rows':[]};return db[_0x3ccb('0x1f')][_0x3ccb('0x20')]()[_0x3ccb('0x16')](function(_0x389389){var _0x5b0caa=[];for(var _0x326362=0x0;_0x326362<Object[_0x3ccb('0x21')](_0x389389)[_0x3ccb('0x22')];_0x326362++){var _0xb20cd2=Object[_0x3ccb('0x21')](_0x389389)[_0x326362];if(_['startsWith'](_0xb20cd2,'cf_')){_0x5b0caa[_0x3ccb('0x23')](db['CmCustomField'][_0x3ccb('0x24')]({'where':{'id':_['trimStart'](_0xb20cd2,'cf_')},'raw':!![]}));}}return BPromise[_0x3ccb('0x25')](_0x5b0caa)[_0x3ccb('0x16')](function(_0xb303a4){for(var _0x4938ac=0x0;_0x4938ac<_0xb303a4[_0x3ccb('0x22')];_0x4938ac++){if(_0xb303a4[_0x4938ac]){var _0x4db1bc=_0x3ccb('0x26')+_0xb303a4[_0x4938ac]['id'];var _0x288261=_0x389389[_0x4db1bc];_0x288261[_0x3ccb('0x27')]=_0xb303a4[_0x4938ac]['type'];}}return _0x389389;});})[_0x3ccb('0x16')](function(_0x216792){_0x1c4c53['model']=_[_0x3ccb('0x21')](_0x216792);_0x1c4c53[_0x3ccb('0x28')]=_[_0x3ccb('0x21')](_0x5cd90b['query']);_0x1c4c53['filters']=_[_0x3ccb('0x29')](_0x1c4c53['model'],_0x1c4c53[_0x3ccb('0x28')]);_0x17f683[_0x3ccb('0x2a')]=_['intersection'](_0x1c4c53['model'],qs['fields'](_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x2b')]));_0x17f683['attributes']=_0x17f683[_0x3ccb('0x2a')][_0x3ccb('0x22')]?_0x17f683[_0x3ccb('0x2a')]:_0x1c4c53['model'];if(!_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x2c')](_0x3ccb('0x2d'))){_0x17f683[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x12')]);_0x17f683['offset']=qs[_0x3ccb('0x10')](_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x10')]);}_0x17f683[_0x3ccb('0x2e')]=qs[_0x3ccb('0x2f')](_0x5cd90b['query']['sort']);_0x17f683[_0x3ccb('0x30')]=qs['filters'](_[_0x3ccb('0x31')](_0x5cd90b[_0x3ccb('0x28')],_0x1c4c53['filters']),_0x216792);var _0x2ef56b=[];var _0x357cf9=squel[_0x3ccb('0x32')]()[_0x3ccb('0x33')]('id')[_0x3ccb('0x33')](_0x3ccb('0x1c'))[_0x3ccb('0x33')](_0x3ccb('0x34'))[_0x3ccb('0x35')](_0x3ccb('0x36'));var _0x1b5731=squel['select']()[_0x3ccb('0x35')]('cm_contacts','c')[_0x3ccb('0x37')](_0x3ccb('0x38'),'uc',_0x3ccb('0x39'))[_0x3ccb('0x37')](_0x3ccb('0x3a'),'ct','ct.CmContactId\x20=\x20c.id')['left_join'](_0x3ccb('0x36'),'t','t.id\x20=\x20ct.TagId')[_0x3ccb('0x30')](_0x3ccb('0x3b'));var _0x2d4cd8=squel['expr']();var _0x56fad8=[];var _0x107317=squel[_0x3ccb('0x3c')]();var _0x486e66;if(_0x5cd90b['query']['search']){_0x486e66=as[_0x3ccb('0x3d')](_0x5cd90b[_0x3ccb('0x28')]['search']);var _0x14bc71=_0x486e66[_0x3ccb('0x3e')];for(var _0x17e2b3=0x0;_0x17e2b3<_0x486e66[_0x3ccb('0x3f')][_0x3ccb('0x22')];_0x17e2b3++){var _0x4fa07c=_0x486e66[_0x3ccb('0x3f')][_0x17e2b3];var _0x97ac4d='c';var _0x20a7cc=_(_0x216792)[_0x3ccb('0x21')]()[_0x3ccb('0x40')](function(_0x51efa8){return _0x51efa8===_0x4fa07c[_0x3ccb('0x33')];});if(_0x20a7cc)_0x20a7cc=_0x216792[_0x4fa07c[_0x3ccb('0x33')]];if(!_0x20a7cc){if(_0x4fa07c[_0x3ccb('0x33')]==='Tag'){var _0x189ee5=_0x4fa07c[_0x3ccb('0x41')][_0x3ccb('0x42')](',')[_0x3ccb('0x43')](function(_0x3c2793){return Number(_0x3c2793);});_0x189ee5[_0x3ccb('0x44')](function(_0x5ce176){_0x107317['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x5ce176+',%');});_0x56fad8=_[_0x3ccb('0x45')](_0x56fad8,_0x189ee5);}else if(_0x4fa07c[_0x3ccb('0x33')]===_0x3ccb('0x46')){_0x2d4cd8[_0x3ccb('0x47')](_0x3ccb('0x48'),_0x4fa07c['value']);}}else{if(_0x4fa07c['field']==='dateOfBirth'||_0x20a7cc[_0x3ccb('0x27')]===_0x3ccb('0x49'))_0x4fa07c[_0x3ccb('0x4a')]=_0x3ccb('0x4b');var _0x41d8d8=as['buildExpression'](_0x97ac4d,_0x20a7cc['type'],_0x4fa07c);_0x2d4cd8[_0x14bc71](_0x41d8d8['text'],_0x41d8d8['value'][_0x3ccb('0x4c')],_0x41d8d8['value'][_0x3ccb('0x18')]);}}}else{var _0x7b0bd7=_(Object[_0x3ccb('0x21')](_0x5cd90b[_0x3ccb('0x28')]))[_0x3ccb('0x43')](function(_0x5c33d9){return _0x216792[_0x3ccb('0x2c')](_0x5c33d9)?_0x5c33d9:undefined;})['filter'](function(_0x5e7f8a){return!_[_0x3ccb('0x4d')](_0x5e7f8a);})[_0x3ccb('0x41')]();if(_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x4e')])_0x7b0bd7[_0x3ccb('0x23')]('Contact');if(!_['isEmpty'](_0x7b0bd7)){_0x7b0bd7[_0x3ccb('0x44')](function(_0x222522){if(_0x222522===_0x3ccb('0x4f')){_0x1b5731[_0x3ccb('0x30')]('c.ListId\x20IN\x20?',[][_0x3ccb('0x50')](_0x5cd90b[_0x3ccb('0x28')][_0x222522]));}else if(_0x222522==='Contact'){var _0x1fd9c3='%'+_0x5cd90b['query'][_0x222522]+'%';_0x1b5731[_0x3ccb('0x30')](_0x3ccb('0x51'),_0x1fd9c3);}else{_0x1b5731[_0x3ccb('0x30')]('c.'+_0x222522+_0x3ccb('0x52'),_0x5cd90b[_0x3ccb('0x28')][_0x222522]);}});}if(_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x53')]){_0x56fad8=_[_0x3ccb('0x54')](_0x5cd90b[_0x3ccb('0x28')]['tag'])?_0x5cd90b['query']['tag']:new Array(_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x53')]);_0x56fad8[_0x3ccb('0x44')](function(_0x1ebabb){_0x107317['or'](_0x3ccb('0x55'),'%,'+_0x1ebabb+',%');});}if(_0x5cd90b[_0x3ccb('0x28')][_0x3ccb('0x56')]){var _0x2143a3=_0x5cd90b['query'][_0x3ccb('0x56')][_0x3ccb('0x57')]('\x5c','\x5c\x5c')[_0x3ccb('0x57')](/'/g,'\x27\x27');if(_0x2143a3['split']('\x20')[_0x3ccb('0x22')]>0x1){_0x2d4cd8['or'](_0x3ccb('0x58'),qs[_0x3ccb('0x59')](_0x2143a3),null);}else{if(qs[_0x3ccb('0x5a')](_0x2143a3)){_0x2d4cd8['or']('c.id\x20LIKE\x20?',_0x2143a3+'%');_0x2d4cd8['or']('c.phone\x20LIKE\x20?',_0x2143a3+'%');_0x2d4cd8['or'](_0x3ccb('0x5b'),_0x2143a3+'%');_0x2d4cd8['or'](_0x3ccb('0x5c'),_0x2143a3+'%');}else if(qs[_0x3ccb('0x5d')](_0x2143a3)){_0x2d4cd8['or'](_0x3ccb('0x5e'),_0x2143a3+'%');}else{_0x2d4cd8['or'](_0x3ccb('0x5f'),'%'+_0x2143a3+'%');_0x2d4cd8['or'](_0x3ccb('0x60'),'%'+_0x2143a3+'%');_0x2d4cd8['or'](_0x3ccb('0x5e'),'%'+_0x2143a3+'%');}}}}_0x1b5731[_0x3ccb('0x30')](_0x2d4cd8);_0x1b5731[_0x3ccb('0x61')]('c.id');var _0x246870={'type':db[_0x3ccb('0x62')][_0x3ccb('0x63')][_0x3ccb('0x64')],'raw':!![]};var _0x47dffb=_0x1b5731['clone']()[_0x3ccb('0x33')](_0x3ccb('0x65'));if(_0x17f683['order']){_0x17f683[_0x3ccb('0x2e')][_0x3ccb('0x44')](function(_0x195417){_0x1b5731[_0x3ccb('0x2e')]('c.'+_0x195417[0x0],_0x195417[0x1]===_0x3ccb('0x66')?![]:!![]);});}if(!_[_0x3ccb('0x67')](_0x56fad8)){_0x1b5731[_0x3ccb('0x68')](_0x107317);_0x47dffb[_0x3ccb('0x30')](_0x3ccb('0x69'),_0x56fad8);}BPromise[_0x3ccb('0x6a')]()[_0x3ccb('0x16')](function(){if(!_0x486e66)return;if(_0x5cd90b[_0x3ccb('0x6b')][_0x3ccb('0x6c')]!==_0x3ccb('0x6d'))return;if(!_[_0x3ccb('0x6e')](_0x486e66[_0x3ccb('0x3f')],[_0x3ccb('0x33'),_0x3ccb('0x46')])){return _0x5cd90b['user'][_0x3ccb('0x6f')]({'attributes':['id'],'raw':!![]})['then'](function(_0x3ffcae){if(_['isEmpty'](_0x3ffcae)){_0x47dffb[_0x3ccb('0x30')]('c.ListId\x20IS\x20NULL');_0x1b5731['where'](_0x3ccb('0x70'));}else{_0x47dffb[_0x3ccb('0x30')](_0x3ccb('0x71'),_[_0x3ccb('0x43')](_0x3ffcae,'id'));_0x1b5731[_0x3ccb('0x30')](_0x3ccb('0x71'),_['map'](_0x3ffcae,'id'));}});}})['then'](function(){if(_0x5cd90b[_0x3ccb('0x6b')][_0x3ccb('0x6c')]===_0x3ccb('0x6d')&&!_0x486e66&&!_0x5cd90b[_0x3ccb('0x28')]['ListId'])return[];return db['sequelize'][_0x3ccb('0x28')](_0x47dffb[_0x3ccb('0x72')](),_0x246870);})[_0x3ccb('0x16')](function(_0x4aa48d){_0xbd026c['count']=_0x4aa48d[_0x3ccb('0x22')];if(_0xbd026c[_0x3ccb('0x73')]===0x0)return[];return db[_0x3ccb('0x74')][_0x3ccb('0x28')](_0x357cf9[_0x3ccb('0x72')](),_0x246870)[_0x3ccb('0x16')](function(_0x3d96f8){_0x2ef56b=_['keyBy'](_0x3d96f8,'id');_0x246870=_[_0x3ccb('0x75')](_0x246870,{'model':db[_0x3ccb('0x1f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5cd90b[_0x3ccb('0x28')]['fields']){_0x17f683['attributes'][_0x3ccb('0x44')](function(_0x30e79f){_0x1b5731[_0x3ccb('0x33')]('c.'+_0x30e79f);});}else{_0x1b5731['field'](_0x3ccb('0x65'));_0x1b5731[_0x3ccb('0x33')]('c.firstName');_0x1b5731['field']('c.lastName');_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x76'));_0x1b5731['field'](_0x3ccb('0x77'));_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x78'));_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x79'));_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x7a'));_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x7b'));_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x7c'));_0x1b5731[_0x3ccb('0x33')]('c.CompanyId');_0x1b5731[_0x3ccb('0x33')](_0x3ccb('0x7d'),_0x3ccb('0x7e'));}if(_0x17f683[_0x3ccb('0x12')])_0x1b5731[_0x3ccb('0x12')](_0x17f683['limit']);if(_0x17f683[_0x3ccb('0x10')])_0x1b5731[_0x3ccb('0x10')](_0x17f683['offset']);return db['sequelize'][_0x3ccb('0x28')](_0x1b5731[_0x3ccb('0x72')](),_0x246870);});})[_0x3ccb('0x16')](function(_0x14d9c4){_0x14d9c4[_0x3ccb('0x44')](function(_0x1f9c1d){if(_0x1f9c1d[_0x3ccb('0x7e')]){_0x1f9c1d[_0x3ccb('0x7f')]=[];_0x1f9c1d[_0x3ccb('0x7e')]['split'](',')['forEach'](function(_0x483e25){_0x1f9c1d[_0x3ccb('0x7f')][_0x3ccb('0x23')](_0x2ef56b[_0x483e25]);});}delete _0x1f9c1d['TagIds'];});_0xbd026c['rows']=_0x14d9c4;return _0xbd026c;})[_0x3ccb('0x16')](respondWithFilteredResult(_0x52ca22,_0x17f683));})['catch'](handleError(_0x52ca22,null));};exports[_0x3ccb('0x17')]=function(_0x16471b,_0x347dc4){return db[_0x3ccb('0x1f')][_0x3ccb('0x40')]({'where':{'id':_0x16471b['params']['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x347dc4,null))[_0x3ccb('0x16')](removeEntity(_0x347dc4,null))['catch'](handleError(_0x347dc4,null));};exports[_0x3ccb('0x20')]=function(_0x557d54,_0x579792){return db['CmContact']['describe']()['then'](function(_0x3bb0cd){delete _0x3bb0cd[_0x3ccb('0x80')];for(var _0x28658c=0x0;_0x28658c<Object[_0x3ccb('0x21')](_0x3bb0cd)['length'];_0x28658c++){var _0x24c531=Object[_0x3ccb('0x21')](_0x3bb0cd)[_0x28658c];if(!_['startsWith'](_0x24c531,_0x3ccb('0x26'))){_0x3bb0cd[_0x24c531][_0x3ccb('0x81')]=_0x24c531;_0x3bb0cd[_0x24c531][_0x3ccb('0x82')]=_0x24c531;}}return _0x3bb0cd;})[_0x3ccb('0x16')](function(_0xfc2a52){var _0x1b6ba4={'where':Boolean(_0x557d54[_0x3ccb('0x28')][_0x3ccb('0x83')])===!![]?undefined:{'$or':[{'ListId':_0x557d54[_0x3ccb('0x28')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x3ccb('0x84')]['findAll'](_0x1b6ba4)['then'](function(_0x46908e){for(var _0x297420=0x0;_0x297420<_0x46908e[_0x3ccb('0x22')];_0x297420++){var _0xc05c44='cf_'+_0x46908e[_0x297420]['id'];_0xfc2a52[_0xc05c44][_0x3ccb('0x81')]=_0xc05c44;_0xfc2a52[_0xc05c44][_0x3ccb('0x82')]=_0x46908e[_0x297420]['alias'];_0xfc2a52[_0xc05c44]['custom']={'type':_0x46908e[_0x297420][_0x3ccb('0x85')],'values':_0x46908e[_0x297420][_0x3ccb('0x86')]};}Object[_0x3ccb('0x21')](_0xfc2a52)['forEach'](function(_0x221c63){if(!_0xfc2a52[_0x221c63][_0x3ccb('0x2c')]('columnName')){delete _0xfc2a52[_0x221c63];}});return _0xfc2a52;});})[_0x3ccb('0x16')](respondWithResult(_0x579792,null))[_0x3ccb('0x87')](handleError(_0x579792,null));};exports[_0x3ccb('0x75')]=function(_0x688181,_0x585f6c){var _0x411105;var _0x33adaf;var _0x10f6e6;if(_0x688181[_0x3ccb('0x88')]['id']){delete _0x688181[_0x3ccb('0x88')]['id'];}return db['CmContact']['findAll']({'where':{'id':[_0x688181[_0x3ccb('0x88')]['to'],_0x688181[_0x3ccb('0x88')][_0x3ccb('0x35')]]}})['then'](function(_0x1edae5){if(_0x1edae5){if(_0x1edae5[_0x3ccb('0x22')]!==0x2){return null;}_0x1edae5[0x0]=_0x1edae5[0x0][_0x3ccb('0x89')]({'plain':!![]});_0x1edae5[0x1]=_0x1edae5[0x1][_0x3ccb('0x89')]({'plain':!![]});delete _0x1edae5[0x0]['id'];delete _0x1edae5[0x1]['id'];return _['mergeWith'](_0x1edae5[0x0],_0x1edae5[0x1],function(_0x46901e,_0x47382f){if(Array[_0x3ccb('0x54')](_0x47382f)&&!_0x47382f[_0x3ccb('0x22')]){return _0x46901e;}else if(!_0x47382f){return _0x46901e;}});}})['then'](handleEntityNotFound(_0x585f6c,null))[_0x3ccb('0x16')](function(_0x2ca8a8){if(_0x2ca8a8){if(_0x2ca8a8[_0x3ccb('0x80')]&&_[_0x3ccb('0x54')](_0x2ca8a8[_0x3ccb('0x80')])){_0x2ca8a8[_0x3ccb('0x80')]=_0x2ca8a8['tags'][_0x3ccb('0x8a')]();}logger['info'](_0x3ccb('0x8b'),_0x688181[_0x3ccb('0x88')]['to'],_0x688181['body']['from']);return db[_0x3ccb('0x8c')][_0x3ccb('0x17')]({'where':{'ContactId':[_0x688181['body']['to'],_0x688181[_0x3ccb('0x88')][_0x3ccb('0x35')]]}})[_0x3ccb('0x16')](function(_0x5a9b21){logger['info'](_0x3ccb('0x8d'),_0x5a9b21);return db['CmHopperBlack'][_0x3ccb('0x17')]({'where':{'ContactId':[_0x688181[_0x3ccb('0x88')]['to'],_0x688181[_0x3ccb('0x88')][_0x3ccb('0x35')]]}})['then'](function(_0xf3a9e8){logger[_0x3ccb('0x8e')](_0x3ccb('0x8f'),_0xf3a9e8);return db[_0x3ccb('0x1f')][_0x3ccb('0x90')](_0x2ca8a8);});});}})[_0x3ccb('0x16')](function(_0x523616){if(_0x523616){_0x411105=_0x523616;_0x33adaf={'ContactId':_0x411105['id']};_0x10f6e6={'where':{'ContactId':[_0x688181[_0x3ccb('0x88')]['to'],_0x688181[_0x3ccb('0x88')][_0x3ccb('0x35')]]}};return db[_0x3ccb('0x91')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x92')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x93')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x94')]['update'](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db['MailMessage']['update'](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x94')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db['MailMessage'][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x95')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x96')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x97')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x98')]['update'](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x99')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x9a')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x9b')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x9c')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0x9d')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x9e')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x9f')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db['FaxQueueReport'][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0xa0')]['update'](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0xa1')]['update'](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0xa2')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db['JscriptySessionReport']['update'](_0x33adaf,_0x10f6e6);}})['then'](function(){if(_0x411105){return db[_0x3ccb('0xa3')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0xa4')][_0x3ccb('0x15')](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0xa5')]['update'](_0x33adaf,_0x10f6e6);}})[_0x3ccb('0x16')](function(){if(_0x411105){return db[_0x3ccb('0x1f')][_0x3ccb('0x17')]({'where':{'id':[_0x688181[_0x3ccb('0x88')]['to'],_0x688181[_0x3ccb('0x88')][_0x3ccb('0x35')]]}});}})[_0x3ccb('0x16')](function(){if(_0x411105){return _0x411105;}})['then'](respondWithResult(_0x585f6c,null))[_0x3ccb('0x87')](handleError(_0x585f6c,null));};exports[_0x3ccb('0x90')]=function(_0x2a0b0b,_0x3205c5){return db[_0x3ccb('0x1f')][_0x3ccb('0x20')]()[_0x3ccb('0x16')](function(_0x5b41e1){if(_0x2a0b0b[_0x3ccb('0x88')]['tags']&&_[_0x3ccb('0x54')](_0x2a0b0b['body'][_0x3ccb('0x80')])){if(_0x2a0b0b[_0x3ccb('0x88')][_0x3ccb('0x80')][_0x3ccb('0x22')]){_0x2a0b0b[_0x3ccb('0x88')][_0x3ccb('0x80')]=_0x2a0b0b['body'][_0x3ccb('0x80')][_0x3ccb('0x8a')](';')+';';}else{_0x2a0b0b[_0x3ccb('0x88')][_0x3ccb('0x80')]=null;}}else{_0x2a0b0b['body'][_0x3ccb('0x80')]=null;}return db['CmContact'][_0x3ccb('0x90')](_0x2a0b0b['body'],{'fields':_[_0x3ccb('0x21')](_0x5b41e1),'raw':!![]});})[_0x3ccb('0x16')](respondWithResult(_0x3205c5,0xc9))['catch'](handleError(_0x3205c5,null));};exports[_0x3ccb('0xa6')]=function(_0x1f312e,_0x481cb1){var _0xdf850c=0x0;var _0x43cc67=0x0;var _0x17699e=0x0;return db[_0x3ccb('0x1f')][_0x3ccb('0x20')]()[_0x3ccb('0x16')](function(_0xeb6d0c){return BPromise[_0x3ccb('0xa7')](_0x1f312e[_0x3ccb('0x88')],function(_0x3107f1){var _0x34b3de={'where':{'$or':[]},'defaults':_0x3107f1,'fields':_[_0x3ccb('0x21')](_0xeb6d0c),'raw':!![]};if(_0x3107f1[_0x3ccb('0xa8')]){for(var _0x45908b=0x0;_0x45908b<_0x3107f1[_0x3ccb('0xa8')][_0x3ccb('0x22')];_0x45908b++){var _0x2cc1a2={};_0x2cc1a2[_0x3107f1[_0x3ccb('0xa8')][_0x45908b]]=_0x3107f1[_0x3107f1['duplicates'][_0x45908b]];_0x34b3de[_0x3ccb('0x30')][_0x3ccb('0xa9')][_0x3ccb('0x23')](_0x2cc1a2);}_0x34b3de[_0x3ccb('0x30')][_0x3ccb('0x4f')]=_0x3107f1['ListId'];}return db['CmContact']['findOrCreate'](_0x34b3de)[_0x3ccb('0xaa')](function(_0x38ce67,_0x1604b0){if(_0x1604b0){_0xdf850c++;}else{_0x17699e++;}})['catch'](function(){_0x43cc67++;});});})['then'](function(_0x5d5035){if(_0x5d5035){return{'success':_0xdf850c,'failure':_0x43cc67,'duplicates':_0x17699e};}})[_0x3ccb('0x16')](respondWithResult(_0x481cb1,0xc9))[_0x3ccb('0x87')](handleError(_0x481cb1,null));};exports[_0x3ccb('0xab')]=function(_0x3c6e69,_0x74bdc4){var _0x1bf34d;return db['CmContact']['describe']()[_0x3ccb('0x16')](function(_0x24cb80){return db[_0x3ccb('0x1f')][_0x3ccb('0x40')]({'where':{'id':_0x3c6e69['params']['id']},'include':[{'model':db[_0x3ccb('0xac')],'as':_0x3ccb('0x7f'),'attributes':['id',_0x3ccb('0x1c'),_0x3ccb('0x34')],'required':_0x3c6e69[_0x3ccb('0x28')]['tag']?!![]:![]}],'attributes':_[_0x3ccb('0x21')](_0x24cb80)});})[_0x3ccb('0x16')](function(_0x37631e){if(!_[_0x3ccb('0x4d')](_0x37631e)){_0x1bf34d=_0x37631e[_0x3ccb('0x89')]({'plain':!![]});var _0x42b115={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x37631e&&_0x37631e[_0x3ccb('0x4f')]){if(_0x37631e[_0x3ccb('0x4f')]){_0x42b115[_0x3ccb('0x30')][_0x3ccb('0xad')]['push']({'ListId':{'$ne':_0x37631e['ListId']}});}}return db[_0x3ccb('0x84')]['findAll'](_0x42b115);}})[_0x3ccb('0x16')](function(_0x6e4d00){if(!_[_0x3ccb('0x4d')](_0x6e4d00)){return _['omit'](_0x1bf34d,_[_0x3ccb('0x43')](_0x6e4d00,function(_0x9b05ac){return util[_0x3ccb('0xae')]('cf_%d',_0x9b05ac['id']);}));}})[_0x3ccb('0x16')](handleEntityNotFound(_0x74bdc4,null))[_0x3ccb('0x16')](respondWithResult(_0x74bdc4,null))[_0x3ccb('0x87')](handleError(_0x74bdc4,null));};exports[_0x3ccb('0x15')]=function(_0x1e5b46,_0x481ca4){var _0x2f5dd8;if(_0x1e5b46[_0x3ccb('0x88')]['id']){delete _0x1e5b46[_0x3ccb('0x88')]['id'];}return db['CmContact']['find']({'where':{'id':_0x1e5b46[_0x3ccb('0xaf')]['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x481ca4,null))[_0x3ccb('0x16')](saveUpdates(_0x1e5b46['body'],null))[_0x3ccb('0x16')](function(_0x4f84a0){_0x2f5dd8=_0x4f84a0;var _0x4d57c6={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x4f84a0&&_0x4f84a0[_0x3ccb('0x4f')]){if(_0x4f84a0[_0x3ccb('0x4f')]){_0x4d57c6[_0x3ccb('0x30')][_0x3ccb('0xad')][_0x3ccb('0x23')]({'ListId':{'$ne':_0x4f84a0[_0x3ccb('0x4f')]}});}}return db[_0x3ccb('0x84')][_0x3ccb('0xb0')](_0x4d57c6);})[_0x3ccb('0x16')](function(_0x4632b7){if(_0x4632b7){return _[_0x3ccb('0xb1')](_[_0x3ccb('0xb2')](_0x1e5b46[_0x3ccb('0x88')],function(_0xf4b3c5,_0x378588){return _['startsWith'](_0x378588,_0x3ccb('0x26'));}),_['map'](_0x4632b7,function(_0x4214c3){return util['format'](_0x3ccb('0xb3'),_0x4214c3['id']);}));}})[_0x3ccb('0x16')](function(_0x34ce74){if(_0x34ce74&&!_[_0x3ccb('0x67')](_0x34ce74)){var _0xfb91ce=squel['update']()['table'](_0x3ccb('0xb4'))[_0x3ccb('0xb5')](_0x34ce74)[_0x3ccb('0x30')](_0x3ccb('0xb6'),_0x1e5b46[_0x3ccb('0xaf')]['id'])['toParam']();return db['sequelize'][_0x3ccb('0x28')](_0xfb91ce[_0x3ccb('0xb7')],{'replacements':_0xfb91ce[_0x3ccb('0x86')]});}})['then'](function(){if(_0x1e5b46['body'][_0x3ccb('0xb8')]&&_0x2f5dd8){return db[_0x3ccb('0x8c')][_0x3ccb('0x15')]({'phone':_0x1e5b46['body']['phone']},{'where':{'ContactId':_0x2f5dd8['id']}});}})[_0x3ccb('0x16')](function(){return _0x2f5dd8;})[_0x3ccb('0x16')](respondWithResult(_0x481ca4,null))[_0x3ccb('0x87')](handleError(_0x481ca4,null));};exports[_0x3ccb('0xb9')]=function(_0x15388f,_0x46ca82){var _0x299abb={};var _0x26c4a4={};var _0x21588a;var _0x2b9c99;return db[_0x3ccb('0x1f')][_0x3ccb('0x24')]({'where':{'id':_0x15388f[_0x3ccb('0xaf')]['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x46ca82,null))[_0x3ccb('0x16')](function(_0x831dbb){if(_0x831dbb){_0x21588a=_0x831dbb;_0x26c4a4[_0x3ccb('0xba')]=_['keys'](db['Tag'][_0x3ccb('0xbb')]);_0x26c4a4[_0x3ccb('0x28')]=_[_0x3ccb('0x21')](_0x15388f[_0x3ccb('0x28')]);_0x26c4a4['filters']=_[_0x3ccb('0x29')](_0x26c4a4['model'],_0x26c4a4[_0x3ccb('0x28')]);_0x299abb[_0x3ccb('0x2a')]=_[_0x3ccb('0x29')](_0x26c4a4[_0x3ccb('0xba')],qs[_0x3ccb('0x2b')](_0x15388f[_0x3ccb('0x28')][_0x3ccb('0x2b')]));_0x299abb[_0x3ccb('0x2a')]=_0x299abb['attributes'][_0x3ccb('0x22')]?_0x299abb[_0x3ccb('0x2a')]:_0x26c4a4['model'];_0x299abb[_0x3ccb('0x2e')]=qs[_0x3ccb('0x2f')](_0x15388f[_0x3ccb('0x28')]['sort']);_0x299abb[_0x3ccb('0x30')]=qs[_0x3ccb('0xbc')](_[_0x3ccb('0x31')](_0x15388f[_0x3ccb('0x28')],_0x26c4a4[_0x3ccb('0xbc')]));if(_0x15388f['query'][_0x3ccb('0x56')]){_0x299abb[_0x3ccb('0x30')]=_[_0x3ccb('0x75')](_0x299abb[_0x3ccb('0x30')],{'$or':_[_0x3ccb('0x43')](_0x299abb[_0x3ccb('0x2a')],function(_0xd18cd2){var _0x572caa={};_0x572caa[_0xd18cd2]={'$like':'%'+_0x15388f[_0x3ccb('0x28')][_0x3ccb('0x56')]+'%'};return _0x572caa;})});}_0x299abb=_[_0x3ccb('0x75')]({},_0x299abb,_0x15388f['options']);return _0x21588a['getTags'](_0x299abb);}})[_0x3ccb('0x16')](function(_0x31889a){if(_0x31889a){_0x2b9c99=_0x31889a[_0x3ccb('0x22')];if(!_0x15388f[_0x3ccb('0x28')][_0x3ccb('0x2c')](_0x3ccb('0x2d'))){_0x299abb[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x15388f['query'][_0x3ccb('0x12')]);_0x299abb[_0x3ccb('0x10')]=qs[_0x3ccb('0x10')](_0x15388f['query'][_0x3ccb('0x10')]);}return _0x21588a['getTags'](_0x299abb);}})['then'](function(_0x17f24f){if(_0x17f24f){return _0x17f24f?{'count':_0x2b9c99,'rows':_0x17f24f}:null;}})['then'](respondWithResult(_0x46ca82,null))[_0x3ccb('0x87')](handleError(_0x46ca82,null));};exports[_0x3ccb('0xbd')]=function(_0x59f756,_0x40b075){if(_0x59f756[_0x3ccb('0x88')]['id']){delete _0x59f756[_0x3ccb('0x88')]['id'];}return db[_0x3ccb('0x1f')][_0x3ccb('0x24')]({'where':{'id':_0x59f756[_0x3ccb('0xaf')]['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x40b075,null))[_0x3ccb('0x16')](function(_0x3f9de3){if(_0x3f9de3){return _0x3f9de3[_0x3ccb('0xbd')](_0x59f756[_0x3ccb('0x88')][_0x3ccb('0xbe')]||[]);}return null;})[_0x3ccb('0x16')](respondWithResult(_0x40b075,null))[_0x3ccb('0x87')](handleError(_0x40b075,null));};exports[_0x3ccb('0xbf')]=function(_0x321353,_0x14d91c){var _0x5d95e9={'raw':![],'where':{}};var _0x238d15={};var _0x29e7db={'count':0x0,'rows':[]};return db[_0x3ccb('0x1f')][_0x3ccb('0x24')]({'where':{'id':_0x321353[_0x3ccb('0xaf')]['id']}})['then'](handleEntityNotFound(_0x14d91c,null))[_0x3ccb('0x16')](function(_0x3234ba){if(_0x3234ba){_0x238d15['model']=_[_0x3ccb('0x21')](db[_0x3ccb('0x8c')]['rawAttributes']);_0x238d15[_0x3ccb('0x28')]=_[_0x3ccb('0x21')](_0x321353[_0x3ccb('0x28')]);_0x238d15[_0x3ccb('0xbc')]=_[_0x3ccb('0x29')](_0x238d15['model'],_0x238d15['query']);_0x5d95e9['attributes']=_[_0x3ccb('0x29')](_0x238d15[_0x3ccb('0xba')],qs[_0x3ccb('0x2b')](_0x321353[_0x3ccb('0x28')]['fields']));_0x5d95e9[_0x3ccb('0x2a')]=_0x5d95e9[_0x3ccb('0x2a')][_0x3ccb('0x22')]?_0x5d95e9[_0x3ccb('0x2a')]:_0x238d15[_0x3ccb('0xba')];if(!_0x321353[_0x3ccb('0x28')]['hasOwnProperty'](_0x3ccb('0x2d'))){_0x5d95e9[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x321353[_0x3ccb('0x28')][_0x3ccb('0x12')]);_0x5d95e9[_0x3ccb('0x10')]=qs[_0x3ccb('0x10')](_0x321353['query'][_0x3ccb('0x10')]);}_0x5d95e9[_0x3ccb('0x2e')]=qs[_0x3ccb('0x2f')](_0x321353['query'][_0x3ccb('0x2f')]);_0x5d95e9[_0x3ccb('0x30')]=qs[_0x3ccb('0xbc')](_['pick'](_0x321353['query'],_0x238d15['filters']));_0x5d95e9[_0x3ccb('0x30')][_0x3ccb('0xc0')]=_0x3234ba['id'];if(_0x321353[_0x3ccb('0x28')][_0x3ccb('0x56')]){_0x5d95e9['where']=_['merge'](_0x5d95e9[_0x3ccb('0x30')],{'$or':_['map'](_0x5d95e9['attributes'],function(_0x11a409){var _0x162fc6={};_0x162fc6[_0x11a409]={'$like':'%'+_0x321353[_0x3ccb('0x28')]['filter']+'%'};return _0x162fc6;})});}_0x5d95e9=_[_0x3ccb('0x75')]({},_0x5d95e9,_0x321353[_0x3ccb('0xc1')]);return db[_0x3ccb('0x8c')][_0x3ccb('0x73')]({'where':_0x5d95e9['where']})['then'](function(_0x12dc0e){_0x29e7db['count']=_0x12dc0e;if(_0x321353['query'][_0x3ccb('0xc2')]){_0x5d95e9['include']=[{'all':!![]}];}return db[_0x3ccb('0x8c')][_0x3ccb('0xb0')](_0x5d95e9);})[_0x3ccb('0x16')](function(_0x9f6e71){_0x29e7db[_0x3ccb('0xc3')]=_0x9f6e71;return _0x29e7db;});}})[_0x3ccb('0x16')](respondWithFilteredResult(_0x14d91c,_0x5d95e9))[_0x3ccb('0x87')](handleError(_0x14d91c,null));};exports[_0x3ccb('0xc4')]=function(_0x58dc52,_0x5ed510){var _0x282e89={'raw':!![],'where':{}};var _0x32ea6b={};var _0x56b8ce={'count':0x0,'rows':[]};return db[_0x3ccb('0x1f')][_0x3ccb('0x24')]({'where':{'id':_0x58dc52['params']['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x5ed510,null))[_0x3ccb('0x16')](function(_0x40fcc7){if(_0x40fcc7){_0x32ea6b[_0x3ccb('0xba')]=_[_0x3ccb('0x21')](db[_0x3ccb('0x9c')][_0x3ccb('0xbb')]);_0x32ea6b['query']=_['keys'](_0x58dc52[_0x3ccb('0x28')]);_0x32ea6b[_0x3ccb('0xbc')]=_[_0x3ccb('0x29')](_0x32ea6b[_0x3ccb('0xba')],_0x32ea6b['query']);_0x282e89[_0x3ccb('0x2a')]=_['intersection'](_0x32ea6b[_0x3ccb('0xba')],qs[_0x3ccb('0x2b')](_0x58dc52[_0x3ccb('0x28')][_0x3ccb('0x2b')]));_0x282e89[_0x3ccb('0x2a')]=_0x282e89[_0x3ccb('0x2a')][_0x3ccb('0x22')]?_0x282e89['attributes']:_0x32ea6b[_0x3ccb('0xba')];if(!_0x58dc52[_0x3ccb('0x28')][_0x3ccb('0x2c')](_0x3ccb('0x2d'))){_0x282e89[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x58dc52['query'][_0x3ccb('0x12')]);_0x282e89[_0x3ccb('0x10')]=qs[_0x3ccb('0x10')](_0x58dc52['query'][_0x3ccb('0x10')]);}_0x282e89[_0x3ccb('0x2e')]=qs[_0x3ccb('0x2f')](_0x58dc52[_0x3ccb('0x28')][_0x3ccb('0x2f')]);_0x282e89[_0x3ccb('0x30')]=qs[_0x3ccb('0xbc')](_[_0x3ccb('0x31')](_0x58dc52[_0x3ccb('0x28')],_0x32ea6b[_0x3ccb('0xbc')]));_0x282e89[_0x3ccb('0x30')][_0x3ccb('0xc0')]=_0x40fcc7['id'];if(_0x58dc52['query']['filter']){_0x282e89[_0x3ccb('0x30')]=_[_0x3ccb('0x75')](_0x282e89[_0x3ccb('0x30')],{'$or':_[_0x3ccb('0x43')](_0x282e89[_0x3ccb('0x2a')],function(_0x455365){var _0x1c0624={};_0x1c0624[_0x455365]={'$like':'%'+_0x58dc52['query'][_0x3ccb('0x56')]+'%'};return _0x1c0624;})});}_0x282e89=_[_0x3ccb('0x75')]({},_0x282e89,_0x58dc52['options']);return db['CmHopperHistory']['count']({'where':_0x282e89[_0x3ccb('0x30')]})[_0x3ccb('0x16')](function(_0x4b94d2){_0x56b8ce['count']=_0x4b94d2;if(_0x58dc52[_0x3ccb('0x28')][_0x3ccb('0xc2')]){_0x282e89['include']=[{'all':!![]}];}return db[_0x3ccb('0x9c')][_0x3ccb('0xb0')](_0x282e89);})[_0x3ccb('0x16')](function(_0x58ff41){_0x56b8ce[_0x3ccb('0xc3')]=_0x58ff41;return _0x56b8ce;});}})['then'](respondWithFilteredResult(_0x5ed510,_0x282e89))[_0x3ccb('0x87')](handleError(_0x5ed510,null));};exports['getHopperFinals']=function(_0x122b8f,_0x2da211){var _0x662948={'raw':!![],'where':{}};var _0x2254eb={};var _0x4413b5={'count':0x0,'rows':[]};return db[_0x3ccb('0x1f')][_0x3ccb('0x24')]({'where':{'id':_0x122b8f['params']['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x2da211,null))[_0x3ccb('0x16')](function(_0x2703df){if(_0x2703df){_0x2254eb[_0x3ccb('0xba')]=_['keys'](db[_0x3ccb('0x9b')]['rawAttributes']);_0x2254eb[_0x3ccb('0x28')]=_[_0x3ccb('0x21')](_0x122b8f['query']);_0x2254eb[_0x3ccb('0xbc')]=_[_0x3ccb('0x29')](_0x2254eb[_0x3ccb('0xba')],_0x2254eb[_0x3ccb('0x28')]);_0x662948['attributes']=_[_0x3ccb('0x29')](_0x2254eb[_0x3ccb('0xba')],qs['fields'](_0x122b8f[_0x3ccb('0x28')][_0x3ccb('0x2b')]));_0x662948[_0x3ccb('0x2a')]=_0x662948['attributes'][_0x3ccb('0x22')]?_0x662948[_0x3ccb('0x2a')]:_0x2254eb['model'];if(!_0x122b8f[_0x3ccb('0x28')][_0x3ccb('0x2c')](_0x3ccb('0x2d'))){_0x662948[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x122b8f['query'][_0x3ccb('0x12')]);_0x662948[_0x3ccb('0x10')]=qs[_0x3ccb('0x10')](_0x122b8f['query']['offset']);}_0x662948['order']=qs[_0x3ccb('0x2f')](_0x122b8f['query']['sort']);_0x662948[_0x3ccb('0x30')]=qs[_0x3ccb('0xbc')](_[_0x3ccb('0x31')](_0x122b8f[_0x3ccb('0x28')],_0x2254eb[_0x3ccb('0xbc')]));_0x662948[_0x3ccb('0x30')]['ContactId']=_0x2703df['id'];if(_0x122b8f[_0x3ccb('0x28')][_0x3ccb('0x56')]){_0x662948[_0x3ccb('0x30')]=_['merge'](_0x662948[_0x3ccb('0x30')],{'$or':_[_0x3ccb('0x43')](_0x662948[_0x3ccb('0x2a')],function(_0x4c3110){var _0x5c4b16={};_0x5c4b16[_0x4c3110]={'$like':'%'+_0x122b8f['query'][_0x3ccb('0x56')]+'%'};return _0x5c4b16;})});}_0x662948=_[_0x3ccb('0x75')]({},_0x662948,_0x122b8f[_0x3ccb('0xc1')]);return db[_0x3ccb('0x9b')][_0x3ccb('0x73')]({'where':_0x662948['where']})['then'](function(_0x982582){_0x4413b5[_0x3ccb('0x73')]=_0x982582;if(_0x122b8f['query'][_0x3ccb('0xc2')]){_0x662948[_0x3ccb('0xc5')]=[{'all':!![]}];}return db[_0x3ccb('0x9b')][_0x3ccb('0xb0')](_0x662948);})[_0x3ccb('0x16')](function(_0x5eb5c3){_0x4413b5[_0x3ccb('0xc3')]=_0x5eb5c3;return _0x4413b5;});}})[_0x3ccb('0x16')](respondWithFilteredResult(_0x2da211,_0x662948))[_0x3ccb('0x87')](handleError(_0x2da211,null));};exports['getJscriptySessions']=function(_0x3f8208,_0x2252f9){var _0x3817bb={'raw':!![],'where':{}};var _0x4e6daf={};var _0x39962b={'count':0x0,'rows':[]};return db[_0x3ccb('0x1f')]['findOne']({'where':{'id':_0x3f8208[_0x3ccb('0xaf')]['id']}})[_0x3ccb('0x16')](handleEntityNotFound(_0x2252f9,null))[_0x3ccb('0x16')](function(_0x50c678){if(_0x50c678){_0x4e6daf['model']=_['keys'](db[_0x3ccb('0xc6')][_0x3ccb('0xbb')]);_0x4e6daf['query']=_[_0x3ccb('0x21')](_0x3f8208[_0x3ccb('0x28')]);_0x4e6daf[_0x3ccb('0xbc')]=_[_0x3ccb('0x29')](_0x4e6daf[_0x3ccb('0xba')],_0x4e6daf[_0x3ccb('0x28')]);_0x3817bb[_0x3ccb('0x2a')]=_['intersection'](_0x4e6daf[_0x3ccb('0xba')],qs[_0x3ccb('0x2b')](_0x3f8208[_0x3ccb('0x28')][_0x3ccb('0x2b')]));_0x3817bb[_0x3ccb('0x2a')]=_0x3817bb['attributes'][_0x3ccb('0x22')]?_0x3817bb['attributes']:_0x4e6daf[_0x3ccb('0xba')];if(!_0x3f8208[_0x3ccb('0x28')][_0x3ccb('0x2c')](_0x3ccb('0x2d'))){_0x3817bb[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x3f8208[_0x3ccb('0x28')][_0x3ccb('0x12')]);_0x3817bb[_0x3ccb('0x10')]=qs[_0x3ccb('0x10')](_0x3f8208[_0x3ccb('0x28')][_0x3ccb('0x10')]);}_0x3817bb['order']=qs[_0x3ccb('0x2f')](_0x3f8208['query'][_0x3ccb('0x2f')]);_0x3817bb[_0x3ccb('0x30')]=qs[_0x3ccb('0xbc')](_[_0x3ccb('0x31')](_0x3f8208[_0x3ccb('0x28')],_0x4e6daf[_0x3ccb('0xbc')]));_0x3817bb[_0x3ccb('0x30')][_0x3ccb('0xc0')]=_0x50c678['id'];if(_0x3f8208['query'][_0x3ccb('0x56')]){_0x3817bb['where']=_['merge'](_0x3817bb[_0x3ccb('0x30')],{'$or':_['map'](_0x3817bb['attributes'],function(_0x101561){var _0x2f0356={};_0x2f0356[_0x101561]={'$like':'%'+_0x3f8208[_0x3ccb('0x28')][_0x3ccb('0x56')]+'%'};return _0x2f0356;})});}_0x3817bb=_['merge']({},_0x3817bb,_0x3f8208['options']);return db['JscriptySessionReport'][_0x3ccb('0x73')]({'where':_0x3817bb[_0x3ccb('0x30')]})['then'](function(_0x174e8a){_0x39962b[_0x3ccb('0x73')]=_0x174e8a;if(_0x3f8208['query'][_0x3ccb('0xc2')]){_0x3817bb[_0x3ccb('0xc5')]=[{'all':!![]}];}return db['JscriptySessionReport']['findAll'](_0x3817bb);})['then'](function(_0x4010f6){_0x39962b['rows']=_0x4010f6;return _0x39962b;});}})[_0x3ccb('0x16')](respondWithFilteredResult(_0x2252f9,_0x3817bb))[_0x3ccb('0x87')](handleError(_0x2252f9,null));};exports['uploadCsv']=function(_0x45d212,_0x540967){try{if(!_0x45d212['body'][_0x3ccb('0x4f')]){throw new Error(_0x3ccb('0xc7'));}if(!_0x45d212['body'][_0x3ccb('0xc8')]){throw new Error(_0x3ccb('0xc9'));}if(!_0x45d212[_0x3ccb('0x88')][_0x3ccb('0xca')]){throw new Error('No\x20association\x20values\x20specified!');}if(!_0x45d212[_0x3ccb('0x88')][_0x3ccb('0xcb')]){throw new Error(_0x3ccb('0xcc'));}var _0x383e71=_0x45d212[_0x3ccb('0x88')][_0x3ccb('0xc8')]['split'](',');var _0x26525b=_0x45d212[_0x3ccb('0x88')][_0x3ccb('0xca')]['split'](',');if(!_0x383e71[_0x3ccb('0x22')]||!_0x26525b[_0x3ccb('0x22')]||_0x383e71[_0x3ccb('0x22')]!==_0x26525b[_0x3ccb('0x22')]){throw new Error(_0x3ccb('0xcd'));}_0x45d212[_0x3ccb('0x88')][_0x3ccb('0x2b')]=_[_0x3ccb('0xce')](_0x383e71,_0x26525b);if(!_0x45d212[_0x3ccb('0x88')][_0x3ccb('0x2b')][_0x3ccb('0xb8')]){throw new Error(_0x3ccb('0xcf'));}if(!_0x45d212[_0x3ccb('0x88')][_0x3ccb('0x2b')][_0x3ccb('0xd0')]){throw new Error(_0x3ccb('0xd1'));}var _0x2916c5=path[_0x3ccb('0x8a')](config['root'],'server/files/tmp',_0x45d212[_0x3ccb('0xd2')][_0x3ccb('0xd3')]);fs[_0x3ccb('0xd4')](_0x2916c5,parseInt(_0x3ccb('0xd5'),0x8));var _0x219f35=require(_0x3ccb('0xd6'))[_0x3ccb('0xd7')](path[_0x3ccb('0x8a')](__dirname,_0x3ccb('0xd8')),[_0x2916c5,_0x45d212['body'][_0x3ccb('0xc8')],_0x45d212[_0x3ccb('0x88')][_0x3ccb('0xca')],_0x45d212[_0x3ccb('0x88')]['ListId'],_0x45d212[_0x3ccb('0x88')]['CompanyId'],_0x45d212[_0x3ccb('0x88')]['duplicates'],_0x45d212[_0x3ccb('0x88')]['socket_timestamp']]);return _0x540967[_0x3ccb('0xf')](0xc8)[_0x3ccb('0x14')]({'message':_0x3ccb('0xd9'),'pid':_0x219f35[_0x3ccb('0xda')]});}catch(_0x5ba1ca){return _0x540967[_0x3ccb('0xf')](0x1f4)[_0x3ccb('0x1d')](_0x5ba1ca);}};exports[_0x3ccb('0xdb')]=function(_0xa3e270,_0x42ea1a){var _0x2c3f9b=fs['createReadStream'](_0xa3e270[_0x3ccb('0xd2')]['path']);Papa[_0x3ccb('0xdc')](_0x2c3f9b,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x4bcfa4){return _0x42ea1a['status'](0xc8)[_0x3ccb('0x14')]({'file':_0xa3e270['file'],'fields':_0x4bcfa4['meta']['fields']});}});};exports['import']=function(_0xda1e5b,_0x113d90){return db[_0x3ccb('0x46')][_0x3ccb('0xb0')]({'raw':!![],'attributes':['id'],'where':{'role':'agent'}})[_0x3ccb('0x16')](function(_0x49697c){var _0x598c1a=![];if(!_0xda1e5b[_0x3ccb('0x88')][_0x3ccb('0x4f')]){throw new Error('No\x20ListId\x20specified');}if(!_0xda1e5b[_0x3ccb('0x88')][_0x3ccb('0xdd')][_0x3ccb('0xb8')]){throw new Error(_0x3ccb('0xcf'));}if(!_0xda1e5b[_0x3ccb('0x88')]['binding'][_0x3ccb('0xd0')]){throw new Error(_0x3ccb('0xd1'));}if(!_0xda1e5b[_0x3ccb('0x88')][_0x3ccb('0xcb')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x44c95e=require(_0x3ccb('0xd6'))[_0x3ccb('0xd7')](path[_0x3ccb('0x8a')](__dirname,_0x3ccb('0xde')),[_0xda1e5b[_0x3ccb('0xaf')]['id'],JSON[_0x3ccb('0xdf')](_0xda1e5b[_0x3ccb('0x88')]),JSON['stringify'](_0x49697c)]);_0x44c95e['on'](_0x3ccb('0xe0'),function(){_0x598c1a=!![];return _0x113d90[_0x3ccb('0xf')](0xc8)[_0x3ccb('0x14')]({'message':_0x3ccb('0xe1'),'pid':_0x44c95e[_0x3ccb('0xda')]});});_0x44c95e['on'](_0x3ccb('0xe2'),function(_0x78727c){if(_0x78727c&&!_0x598c1a){return _0x113d90[_0x3ccb('0xf')](0x1f4)[_0x3ccb('0x14')]({'message':_0x3ccb('0xe3'),'pid':_0x44c95e[_0x3ccb('0xda')]});}});})[_0x3ccb('0x87')](handleError(_0x113d90,null));};exports[_0x3ccb('0xe4')]=function(_0x5ee71c,_0xdeaac1){var _0x963272=[_0x3ccb('0xe5'),_0x3ccb('0xe6'),_0x3ccb('0xe7'),_0x3ccb('0xe8'),'fax',_0x3ccb('0xe9'),'voice'];var _0x148514={'offset':0x0,'order':qs['sort']('-createdAt')},_0x2ae6b6={'count':0x0,'rows':[]};Promise[_0x3ccb('0x6a')]()[_0x3ccb('0x16')](function(){if(_0x5ee71c[_0x3ccb('0x28')][_0x3ccb('0xea')]){if(!_['includes'](_0x963272,_0x5ee71c['query'][_0x3ccb('0xea')]['toLowerCase']())){throw new Error(_0x3ccb('0xeb'));}_0x963272=[_0x5ee71c[_0x3ccb('0x28')][_0x3ccb('0xea')][_0x3ccb('0xec')]()];}if(_0x5ee71c['query'][_0x3ccb('0xed')]){try{var _0x2e811b=JSON[_0x3ccb('0xdc')](_0x5ee71c[_0x3ccb('0x28')]['range']);if(!moment(_0x2e811b[_0x3ccb('0x35')])[_0x3ccb('0xee')]()){throw new Error(_0x3ccb('0xef'));}if(!moment(_0x2e811b['to'])['isValid']()){throw new Error(_0x3ccb('0xf0'));}}catch(_0x1358ad){throw new Error(_0x3ccb('0xf1'));}}if(!_0x5ee71c[_0x3ccb('0x28')][_0x3ccb('0x2c')](_0x3ccb('0x2d'))){_0x148514[_0x3ccb('0x12')]=qs[_0x3ccb('0x12')](_0x5ee71c['query']['limit']||0xa);_0x148514['offset']=qs[_0x3ccb('0x10')](_0x5ee71c[_0x3ccb('0x28')][_0x3ccb('0x10')]);}var _0x4caa7c=_0x963272['map'](function(_0x4f4e32){if(_0x4f4e32==='voice'){var _0x33918b={'attributes':['id','uniqueid',_0x3ccb('0x85'),_0x3ccb('0xf2'),_0x3ccb('0xf3'),'callerid','starttime',_0x3ccb('0xf4'),'duration','note','createdAt',_0x3ccb('0xf5'),'userSecondDisposition',_0x3ccb('0xf6'),_0x3ccb('0xf7')],'where':{'ContactId':_0x5ee71c[_0x3ccb('0xaf')]['id']},'include':[{'model':db[_0x3ccb('0x46')],'as':_0x3ccb('0x46'),'attributes':['id',_0x3ccb('0x1c'),'fullname',_0x3ccb('0xf8')]}],'order':[[_0x3ccb('0xf9'),_0x3ccb('0x66')]]};if(_0x5ee71c[_0x3ccb('0x28')]['range']){_0x33918b[_0x3ccb('0x30')][_0x3ccb('0xf9')]={'$gte':_0x2e811b['from'],'$lte':_0x2e811b['to']};}return db[_0x3ccb('0x9e')][_0x3ccb('0xfa')](_0x33918b)[_0x3ccb('0x16')](function(_0x2aee4c){_0x2ae6b6['count']+=_0x2aee4c[_0x3ccb('0x73')];return _[_0x3ccb('0x43')](_0x2aee4c[_0x3ccb('0xc3')],function(_0x2b071f){var _0x3b5b32=_0x2b071f[_0x3ccb('0x89')]({'plain':!![]});_0x3b5b32[_0x3ccb('0xea')]=_0x4f4e32;if(_0x3b5b32[_0x3ccb('0x46')]){_0x3b5b32[_0x3ccb('0x46')]={'id':_0x3b5b32['User']['id'],'name':_0x3b5b32[_0x3ccb('0x46')][_0x3ccb('0x1c')],'fullname':_0x3b5b32[_0x3ccb('0x46')]['fullname'],'alias':_0x3b5b32['User'][_0x3ccb('0xf8')]};}return _0x3b5b32;});});}else{var _0x2859f2=_[_0x3ccb('0xfb')](_0x4f4e32)+(_0x4f4e32==='chat'?_0x3ccb('0xfc'):_0x3ccb('0xfd'));var _0x3b7978={'attributes':['id','closed',_0x3ccb('0xfe'),_0x3ccb('0xf9'),_0x3ccb('0xff'),'disposition',_0x3ccb('0x100'),'thirdDisposition',_0x3ccb('0xf7'),_0x2859f2+'Id'],'where':{'ContactId':_0x5ee71c[_0x3ccb('0xaf')]['id']},'include':[{'model':db[_0x2859f2],'as':_0x3ccb('0xfd'),'attributes':['id',_0x3ccb('0x1c'),_0x3ccb('0x101')]},{'model':db[_0x3ccb('0x46')],'as':_0x3ccb('0x102'),'attributes':['id',_0x3ccb('0x1c'),_0x3ccb('0x103')]},{'model':db[_0x3ccb('0xac')],'as':_0x3ccb('0x7f'),'attributes':['id',_0x3ccb('0x1c'),_0x3ccb('0x34')],'through':{'attributes':[]}}],'order':[[_0x3ccb('0xf9'),_0x3ccb('0x66')]]};if(_0x5ee71c['query'][_0x3ccb('0xed')]){_0x3b7978[_0x3ccb('0x30')][_0x3ccb('0xf9')]={'$gte':_0x2e811b[_0x3ccb('0x35')],'$lte':_0x2e811b['to']};}switch(_0x4f4e32){case _0x3ccb('0xe6'):_0x3b7978['attributes'][_0x3ccb('0x23')]('browserName','customerIp',_0x3ccb('0x104'),'deviceModel',_0x3ccb('0x105'),'ratingMessage',_0x3ccb('0x106'),'ratingValue',_0x3ccb('0x107'));break;case'mail':_0x3b7978[_0x3ccb('0x2a')][_0x3ccb('0x23')]('subject',_0x3ccb('0x108'));break;case'openchannel':_0x3b7978['attributes'][_0x3ccb('0x23')]('externalUrl','threadId');break;}return db[_[_0x3ccb('0xfb')](_0x4f4e32)+'Interaction'][_0x3ccb('0xfa')](_0x3b7978)['then'](function(_0x4bb522){_0x2ae6b6['count']+=_0x4bb522[_0x3ccb('0x73')];return _['map'](_0x4bb522['rows'],function(_0x1d1103){var _0x3d3fea=_0x1d1103[_0x3ccb('0x89')]({'plain':!![]});_0x3d3fea[_0x3ccb('0xea')]=_0x4f4e32;if(_0x3d3fea['Owner']){_0x3d3fea[_0x3ccb('0x102')]={'id':_0x3d3fea[_0x3ccb('0x102')]['id'],'name':_0x3d3fea[_0x3ccb('0x102')][_0x3ccb('0x1c')],'fullname':_0x3d3fea[_0x3ccb('0x102')][_0x3ccb('0x103')]};}return _0x3d3fea;});});}});return Promise[_0x3ccb('0x25')](_0x4caa7c);})[_0x3ccb('0x16')](function(_0xef9823){return _(_0xef9823)['flatten']()['sortBy'](_0x3ccb('0xf9'))[_0x3ccb('0x109')]()[_0x3ccb('0x41')]();})[_0x3ccb('0x16')](function(_0x315d0d){_0x2ae6b6[_0x3ccb('0xc3')]=_0x148514[_0x3ccb('0x12')]?_0x315d0d[_0x3ccb('0x10a')](_0x148514[_0x3ccb('0x10')],_0x148514[_0x3ccb('0x10')]+_0x148514['limit']):_0x315d0d;return _0x2ae6b6;})['then'](respondWithFilteredResult(_0xdeaac1,_0x148514))[_0x3ccb('0x87')](handleError(_0xdeaac1,null));};
\ No newline at end of file
+var _0xf25a=['FaxQueueReport','OpenchannelQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappMessage','WhatsappQueueReport','create','bulkCreate','duplicates','$or','findOrCreate','error','color','get','$and','omit','format','cf_%d','startsWith','table','setFields','id\x20=\x20?','params','toParam','values','phone','getTags','rawAttributes','pick','filter','options','setTags','findOne','ids','getHoppers','ContactId','include','getHopperHistories','includeAll','getHopperFinals','getJscriptySessions','uploadCsv','No\x20ListId\x20specified','No\x20association\x20keys\x20specified!','binding_values','No\x20association\x20values\x20specified!','socket_timestamp','binding_keys','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','0777','child_process','fork','../../components/import/cm/csv','File\x20uploaded\x20correctly!','pid','send','upload','createReadStream','path','parse','meta','import','binding','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','exit','error\x20child\x20process','getJourney','mail','chat','sms','openchannel','fax','voice','-createdAt','resolve','channel','toLowerCase','Invalid\x20channel','range','Invalid\x20date\x20for\x20range\x20from\x20filter','isValid','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','uniqueid','source','destination','starttime','endtime','duration','note','createdAt','alias','findAndCountAll','fullname','startCase','Website','Account','closed','closedAt','disposition','secondDisposition','thirdDisposition','UserId','key','Owner','browserName','customerIp','deviceModel','ratingMessage','ratingType','ratingValue','referer','subject','substatus','externalUrl','Interaction','reverse','slice','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./cmContact.socket','sendStatus','status','end','json','offset','limit','undefined','count','reject','save','update','destroy','then','stack','name','index','CmContact','describe','keys','length','push','CmCustomField','all','cf_','fieldType','type','model','query','intersection','attributes','fields','nolimit','order','sort','where','filters','field','tools_tags','select','from','cm_contacts','left_join','cm_user_has_contacts','ct.CmContactId\x20=\x20c.id','c.deletedAt\x20IS\x20NULL','expr','search','conditions','find','Tag','map','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','and','uc.UserId\x20=\x20?','value','dateOfBirth','datetime','castTo','DATE','buildExpression','text','start','hasOwnProperty','Contact','isEmpty','ListId','c.ListId\x20IN\x20?','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','tag','isArray','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','isNumeric','c.id\x20LIKE\x20?','c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','c.fax\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','c.id','Sequelize','clone','DESC','having','t.id\x20IN\x20?','user','agent','some','getLists','c.ListId\x20IS\x20NULL','role','sequelize','toString','keyBy','c.lastName','c.phone','c.mobile','c.fax','c.createdAt','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','split','rows','catch','tags','columnName','displayName','findAll','custom','merge','body','join','info','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','[CmContact][merge][destroy][CmHopperBlack],\x20%s','ChatInteraction','ChatMessage','ChatOfflineMessage','MailMessage','MailInteraction','SmsInteraction','SmsMessage','FaxInteraction','OpenchannelInteraction','OpenchannelMessage','CmHopperFinal','CmHopperHistory','ReportAgentPreview','VoiceCallReport','ChatQueueReport'];(function(_0x20895e,_0x2ddef4){var _0x9c898e=function(_0x27830d){while(--_0x27830d){_0x20895e['push'](_0x20895e['shift']());}};_0x9c898e(++_0x2ddef4);}(_0xf25a,0x1b1));var _0xaf25=function(_0xe3c804,_0x469031){_0xe3c804=_0xe3c804-0x0;var _0x59e322=_0xf25a[_0xe3c804];return _0x59e322;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaf25('0x0'));var zipdir=require(_0xaf25('0x1'));var jsonpatch=require(_0xaf25('0x2'));var rp=require(_0xaf25('0x3'));var moment=require(_0xaf25('0x4'));var BPromise=require(_0xaf25('0x5'));var Mustache=require(_0xaf25('0x6'));var util=require('util');var path=require('path');var sox=require(_0xaf25('0x7'));var csv=require('to-csv');var ejs=require(_0xaf25('0x8'));var fs=require('fs');var fs_extra=require(_0xaf25('0x9'));var _=require(_0xaf25('0xa'));var squel=require(_0xaf25('0xb'));var crypto=require('crypto');var jsforce=require(_0xaf25('0xc'));var deskjs=require(_0xaf25('0xd'));var toCsv=require(_0xaf25('0xe'));var querystring=require(_0xaf25('0xf'));var Papa=require('papaparse');var Redis=require(_0xaf25('0x10'));var authService=require(_0xaf25('0x11'));var qs=require(_0xaf25('0x12'));var as=require(_0xaf25('0x13'));var hardwareService=require(_0xaf25('0x14'));var logger=require(_0xaf25('0x15'))(_0xaf25('0x16'));var utils=require(_0xaf25('0x17'));var config=require(_0xaf25('0x18'));var licenseUtil=require(_0xaf25('0x19'));var db=require(_0xaf25('0x1a'))['db'];config[_0xaf25('0x1b')]=_[_0xaf25('0x1c')](config[_0xaf25('0x1b')],{'host':_0xaf25('0x1d'),'port':0x18eb});var socket=require(_0xaf25('0x1e'))(new Redis(config['redis']));require(_0xaf25('0x1f'))['register'](socket);function respondWithStatusCode(_0x4df4c7,_0x4e3da4){_0x4e3da4=_0x4e3da4||0xcc;return function(_0x2cd539){if(_0x2cd539){return _0x4df4c7[_0xaf25('0x20')](_0x4e3da4);}return _0x4df4c7[_0xaf25('0x21')](_0x4e3da4)[_0xaf25('0x22')]();};}function respondWithResult(_0x5b8181,_0x98e950){_0x98e950=_0x98e950||0xc8;return function(_0x449f17){if(_0x449f17){return _0x5b8181[_0xaf25('0x21')](_0x98e950)[_0xaf25('0x23')](_0x449f17);}};}function respondWithFilteredResult(_0x4c9e6a,_0x7eacc8){return function(_0x438be0){if(_0x438be0){var _0xbf1f1a=typeof _0x7eacc8[_0xaf25('0x24')]==='undefined'&&typeof _0x7eacc8[_0xaf25('0x25')]===_0xaf25('0x26');var _0x3d8834=_0x438be0[_0xaf25('0x27')];var _0x10f97c=_0xbf1f1a?0x0:_0x7eacc8['offset'];var _0x21b8ab=_0xbf1f1a?_0x438be0[_0xaf25('0x27')]:_0x7eacc8[_0xaf25('0x24')]+_0x7eacc8['limit'];var _0x2007c7;if(_0x21b8ab>=_0x3d8834){_0x21b8ab=_0x3d8834;_0x2007c7=0xc8;}else{_0x2007c7=0xce;}_0x4c9e6a[_0xaf25('0x21')](_0x2007c7);return _0x4c9e6a['set']('Content-Range',_0x10f97c+'-'+_0x21b8ab+'/'+_0x3d8834)[_0xaf25('0x23')](_0x438be0);}return null;};}function patchUpdates(_0x31b4a1){return function(_0x18f823){try{jsonpatch['apply'](_0x18f823,_0x31b4a1,!![]);}catch(_0x144cf0){return BPromise[_0xaf25('0x28')](_0x144cf0);}return _0x18f823[_0xaf25('0x29')]();};}function saveUpdates(_0x305f01,_0x327482){return function(_0x53f1e4){if(_0x53f1e4){return _0x53f1e4[_0xaf25('0x2a')](_0x305f01)['then'](function(_0x3c2b78){return _0x3c2b78;});}return null;};}function removeEntity(_0x53371d,_0x49543e){return function(_0x8674b0){if(_0x8674b0){return _0x8674b0[_0xaf25('0x2b')]()[_0xaf25('0x2c')](function(){_0x53371d[_0xaf25('0x21')](0xcc)[_0xaf25('0x22')]();});}};}function handleEntityNotFound(_0x510988,_0x482e0f){return function(_0x78cfa){if(!_0x78cfa){_0x510988[_0xaf25('0x20')](0x194);}return _0x78cfa;};}function handleError(_0x344dd1,_0x48a8a4){_0x48a8a4=_0x48a8a4||0x1f4;return function(_0x38b6b2){logger['error'](_0x38b6b2[_0xaf25('0x2d')]);if(_0x38b6b2[_0xaf25('0x2e')]){delete _0x38b6b2['name'];}_0x344dd1[_0xaf25('0x21')](_0x48a8a4)['send'](_0x38b6b2);};}exports[_0xaf25('0x2f')]=function(_0xac5bcb,_0x5c7d6a){var _0x542952={},_0x3e7b90={},_0x45f250={'count':0x0,'rows':[]};return db[_0xaf25('0x30')][_0xaf25('0x31')]()[_0xaf25('0x2c')](function(_0x5af5b5){var _0x50b420=[];for(var _0xc7baaa=0x0;_0xc7baaa<Object[_0xaf25('0x32')](_0x5af5b5)[_0xaf25('0x33')];_0xc7baaa++){var _0x393e2a=Object[_0xaf25('0x32')](_0x5af5b5)[_0xc7baaa];if(_['startsWith'](_0x393e2a,'cf_')){_0x50b420[_0xaf25('0x34')](db[_0xaf25('0x35')]['findOne']({'where':{'id':_['trimStart'](_0x393e2a,'cf_')},'raw':!![]}));}}return BPromise[_0xaf25('0x36')](_0x50b420)[_0xaf25('0x2c')](function(_0x2f21ed){for(var _0x2f8be9=0x0;_0x2f8be9<_0x2f21ed[_0xaf25('0x33')];_0x2f8be9++){if(_0x2f21ed[_0x2f8be9]){var _0x4b66c6=_0xaf25('0x37')+_0x2f21ed[_0x2f8be9]['id'];var _0x79605d=_0x5af5b5[_0x4b66c6];_0x79605d[_0xaf25('0x38')]=_0x2f21ed[_0x2f8be9][_0xaf25('0x39')];}}return _0x5af5b5;});})[_0xaf25('0x2c')](function(_0x720901){_0x3e7b90[_0xaf25('0x3a')]=_[_0xaf25('0x32')](_0x720901);_0x3e7b90['query']=_[_0xaf25('0x32')](_0xac5bcb[_0xaf25('0x3b')]);_0x3e7b90['filters']=_[_0xaf25('0x3c')](_0x3e7b90['model'],_0x3e7b90[_0xaf25('0x3b')]);_0x542952[_0xaf25('0x3d')]=_[_0xaf25('0x3c')](_0x3e7b90[_0xaf25('0x3a')],qs[_0xaf25('0x3e')](_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x3e')]));_0x542952[_0xaf25('0x3d')]=_0x542952[_0xaf25('0x3d')]['length']?_0x542952['attributes']:_0x3e7b90['model'];if(!_0xac5bcb[_0xaf25('0x3b')]['hasOwnProperty'](_0xaf25('0x3f'))){_0x542952[_0xaf25('0x25')]=qs['limit'](_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x25')]);_0x542952[_0xaf25('0x24')]=qs[_0xaf25('0x24')](_0xac5bcb['query'][_0xaf25('0x24')]);}_0x542952[_0xaf25('0x40')]=qs[_0xaf25('0x41')](_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x41')]);_0x542952[_0xaf25('0x42')]=qs['filters'](_['pick'](_0xac5bcb[_0xaf25('0x3b')],_0x3e7b90[_0xaf25('0x43')]),_0x720901);var _0x9639cb=[];var _0x16adb1=squel['select']()[_0xaf25('0x44')]('id')[_0xaf25('0x44')](_0xaf25('0x2e'))[_0xaf25('0x44')]('color')['from'](_0xaf25('0x45'));var _0x33d5c4=squel[_0xaf25('0x46')]()[_0xaf25('0x47')](_0xaf25('0x48'),'c')[_0xaf25('0x49')](_0xaf25('0x4a'),'uc','uc.CmContactId\x20=\x20c.id')['left_join']('cm_contact_has_tags','ct',_0xaf25('0x4b'))['left_join'](_0xaf25('0x45'),'t','t.id\x20=\x20ct.TagId')[_0xaf25('0x42')](_0xaf25('0x4c'));var _0x187bc1=squel[_0xaf25('0x4d')]();var _0x2fe765=[];var _0x54be54=squel[_0xaf25('0x4d')]();var _0x255646;if(_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x4e')]){_0x255646=as['parseSearch'](_0xac5bcb['query'][_0xaf25('0x4e')]);var _0x5b68f7=_0x255646['sqlOperator'];for(var _0x2788f7=0x0;_0x2788f7<_0x255646[_0xaf25('0x4f')]['length'];_0x2788f7++){var _0x48d02e=_0x255646[_0xaf25('0x4f')][_0x2788f7];var _0x4e2a68='c';var _0x99be3a=_(_0x720901)[_0xaf25('0x32')]()[_0xaf25('0x50')](function(_0xadd01){return _0xadd01===_0x48d02e[_0xaf25('0x44')];});if(_0x99be3a)_0x99be3a=_0x720901[_0x48d02e[_0xaf25('0x44')]];if(!_0x99be3a){if(_0x48d02e[_0xaf25('0x44')]===_0xaf25('0x51')){var _0x4df0cb=_0x48d02e['value']['split'](',')[_0xaf25('0x52')](function(_0x2e036f){return Number(_0x2e036f);});_0x4df0cb[_0xaf25('0x53')](function(_0x173f7d){_0x54be54['or'](_0xaf25('0x54'),'%,'+_0x173f7d+',%');});_0x2fe765=_[_0xaf25('0x55')](_0x2fe765,_0x4df0cb);}else if(_0x48d02e[_0xaf25('0x44')]===_0xaf25('0x56')){_0x187bc1[_0xaf25('0x57')](_0xaf25('0x58'),_0x48d02e[_0xaf25('0x59')]);}}else{if(_0x48d02e[_0xaf25('0x44')]===_0xaf25('0x5a')||_0x99be3a[_0xaf25('0x38')]===_0xaf25('0x5b'))_0x48d02e[_0xaf25('0x5c')]=_0xaf25('0x5d');var _0x1e244b=as[_0xaf25('0x5e')](_0x4e2a68,_0x99be3a[_0xaf25('0x39')],_0x48d02e);_0x187bc1[_0x5b68f7](_0x1e244b[_0xaf25('0x5f')],_0x1e244b[_0xaf25('0x59')][_0xaf25('0x60')],_0x1e244b[_0xaf25('0x59')]['end']);}}}else{var _0x49a0c1=_(Object[_0xaf25('0x32')](_0xac5bcb['query']))[_0xaf25('0x52')](function(_0xcbbe9){return _0x720901[_0xaf25('0x61')](_0xcbbe9)?_0xcbbe9:undefined;})['filter'](function(_0xe256f9){return!_['isNil'](_0xe256f9);})['value']();if(_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x62')])_0x49a0c1[_0xaf25('0x34')](_0xaf25('0x62'));if(!_[_0xaf25('0x63')](_0x49a0c1)){_0x49a0c1[_0xaf25('0x53')](function(_0x4cdd22){if(_0x4cdd22===_0xaf25('0x64')){_0x33d5c4[_0xaf25('0x42')](_0xaf25('0x65'),[][_0xaf25('0x66')](_0xac5bcb[_0xaf25('0x3b')][_0x4cdd22]));}else if(_0x4cdd22===_0xaf25('0x62')){var _0x2162e7='%'+_0xac5bcb[_0xaf25('0x3b')][_0x4cdd22]+'%';_0x33d5c4[_0xaf25('0x42')](_0xaf25('0x67'),_0x2162e7);}else{_0x33d5c4['where']('c.'+_0x4cdd22+_0xaf25('0x68'),_0xac5bcb['query'][_0x4cdd22]);}});}if(_0xac5bcb['query'][_0xaf25('0x69')]){_0x2fe765=_[_0xaf25('0x6a')](_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x69')])?_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x69')]:new Array(_0xac5bcb[_0xaf25('0x3b')]['tag']);_0x2fe765[_0xaf25('0x53')](function(_0x83588a){_0x54be54['or'](_0xaf25('0x54'),'%,'+_0x83588a+',%');});}if(_0xac5bcb[_0xaf25('0x3b')]['filter']){var _0x38b8d3=_0xac5bcb[_0xaf25('0x3b')]['filter'][_0xaf25('0x6b')]('\x5c','\x5c\x5c')[_0xaf25('0x6b')](/'/g,'\x27\x27');if(_0x38b8d3['split']('\x20')[_0xaf25('0x33')]>0x1){_0x187bc1['or'](_0xaf25('0x6c'),qs[_0xaf25('0x6d')](_0x38b8d3),null);}else{if(qs[_0xaf25('0x6e')](_0x38b8d3)){_0x187bc1['or'](_0xaf25('0x6f'),_0x38b8d3+'%');_0x187bc1['or'](_0xaf25('0x70'),_0x38b8d3+'%');_0x187bc1['or'](_0xaf25('0x71'),_0x38b8d3+'%');_0x187bc1['or'](_0xaf25('0x72'),_0x38b8d3+'%');}else if(qs[_0xaf25('0x73')](_0x38b8d3)){_0x187bc1['or'](_0xaf25('0x74'),_0x38b8d3+'%');}else{_0x187bc1['or'](_0xaf25('0x75'),'%'+_0x38b8d3+'%');_0x187bc1['or'](_0xaf25('0x76'),'%'+_0x38b8d3+'%');_0x187bc1['or'](_0xaf25('0x74'),'%'+_0x38b8d3+'%');}}}}_0x33d5c4['where'](_0x187bc1);_0x33d5c4[_0xaf25('0x77')](_0xaf25('0x78'));var _0x348c66={'type':db[_0xaf25('0x79')]['QueryTypes']['SELECT'],'raw':!![]};var _0x449a3a=_0x33d5c4[_0xaf25('0x7a')]()[_0xaf25('0x44')](_0xaf25('0x78'));if(_0x542952[_0xaf25('0x40')]){_0x542952['order'][_0xaf25('0x53')](function(_0x341666){_0x33d5c4[_0xaf25('0x40')]('c.'+_0x341666[0x0],_0x341666[0x1]===_0xaf25('0x7b')?![]:!![]);});}if(!_[_0xaf25('0x63')](_0x2fe765)){_0x33d5c4[_0xaf25('0x7c')](_0x54be54);_0x449a3a['where'](_0xaf25('0x7d'),_0x2fe765);}BPromise['resolve']()['then'](function(){if(!_0x255646)return;if(_0xac5bcb[_0xaf25('0x7e')]['role']!==_0xaf25('0x7f'))return;if(!_[_0xaf25('0x80')](_0x255646[_0xaf25('0x4f')],['field',_0xaf25('0x56')])){return _0xac5bcb[_0xaf25('0x7e')][_0xaf25('0x81')]({'attributes':['id'],'raw':!![]})[_0xaf25('0x2c')](function(_0x34872c){if(_[_0xaf25('0x63')](_0x34872c)){_0x449a3a['where']('c.ListId\x20IS\x20NULL');_0x33d5c4[_0xaf25('0x42')](_0xaf25('0x82'));}else{_0x449a3a['where']('c.ListId\x20IN\x20?',_[_0xaf25('0x52')](_0x34872c,'id'));_0x33d5c4[_0xaf25('0x42')]('c.ListId\x20IN\x20?',_['map'](_0x34872c,'id'));}});}})['then'](function(){if(_0xac5bcb[_0xaf25('0x7e')][_0xaf25('0x83')]==='agent'&&!_0x255646&&!_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x64')])return[];return db['sequelize'][_0xaf25('0x3b')](_0x449a3a['toString'](),_0x348c66);})[_0xaf25('0x2c')](function(_0x2b901f){_0x45f250[_0xaf25('0x27')]=_0x2b901f[_0xaf25('0x33')];if(_0x45f250['count']===0x0)return[];return db[_0xaf25('0x84')]['query'](_0x16adb1[_0xaf25('0x85')](),_0x348c66)[_0xaf25('0x2c')](function(_0x16d5bc){_0x9639cb=_[_0xaf25('0x86')](_0x16d5bc,'id');_0x348c66=_['merge'](_0x348c66,{'model':db['CmContact'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xac5bcb[_0xaf25('0x3b')][_0xaf25('0x3e')]){_0x542952[_0xaf25('0x3d')]['forEach'](function(_0x5140a3){_0x33d5c4[_0xaf25('0x44')]('c.'+_0x5140a3);});}else{_0x33d5c4[_0xaf25('0x44')](_0xaf25('0x78'));_0x33d5c4[_0xaf25('0x44')]('c.firstName');_0x33d5c4['field'](_0xaf25('0x87'));_0x33d5c4[_0xaf25('0x44')](_0xaf25('0x88'));_0x33d5c4[_0xaf25('0x44')](_0xaf25('0x89'));_0x33d5c4[_0xaf25('0x44')](_0xaf25('0x8a'));_0x33d5c4[_0xaf25('0x44')]('c.email');_0x33d5c4[_0xaf25('0x44')]('c.ListId');_0x33d5c4[_0xaf25('0x44')](_0xaf25('0x8b'));_0x33d5c4[_0xaf25('0x44')](_0xaf25('0x8c'));_0x33d5c4['field'](_0xaf25('0x8d'));_0x33d5c4['field'](_0xaf25('0x8e'),_0xaf25('0x8f'));}if(_0x542952['limit'])_0x33d5c4['limit'](_0x542952[_0xaf25('0x25')]);if(_0x542952[_0xaf25('0x24')])_0x33d5c4[_0xaf25('0x24')](_0x542952['offset']);return db[_0xaf25('0x84')][_0xaf25('0x3b')](_0x33d5c4[_0xaf25('0x85')](),_0x348c66);});})[_0xaf25('0x2c')](function(_0x23b0e8){_0x23b0e8[_0xaf25('0x53')](function(_0x2302cf){if(_0x2302cf[_0xaf25('0x8f')]){_0x2302cf[_0xaf25('0x90')]=[];_0x2302cf[_0xaf25('0x8f')][_0xaf25('0x91')](',')['forEach'](function(_0x5d52a5){_0x2302cf[_0xaf25('0x90')][_0xaf25('0x34')](_0x9639cb[_0x5d52a5]);});}delete _0x2302cf[_0xaf25('0x8f')];});_0x45f250[_0xaf25('0x92')]=_0x23b0e8;return _0x45f250;})['then'](respondWithFilteredResult(_0x5c7d6a,_0x542952));})['catch'](handleError(_0x5c7d6a,null));};exports[_0xaf25('0x2b')]=function(_0x5bd5de,_0x5af204){return db[_0xaf25('0x30')]['find']({'where':{'id':_0x5bd5de['params']['id']}})[_0xaf25('0x2c')](handleEntityNotFound(_0x5af204,null))[_0xaf25('0x2c')](removeEntity(_0x5af204,null))[_0xaf25('0x93')](handleError(_0x5af204,null));};exports[_0xaf25('0x31')]=function(_0x1861b9,_0x26de74){return db[_0xaf25('0x30')][_0xaf25('0x31')]()['then'](function(_0x35d1fc){delete _0x35d1fc[_0xaf25('0x94')];for(var _0x32ed30=0x0;_0x32ed30<Object[_0xaf25('0x32')](_0x35d1fc)['length'];_0x32ed30++){var _0x5b4ae4=Object['keys'](_0x35d1fc)[_0x32ed30];if(!_['startsWith'](_0x5b4ae4,_0xaf25('0x37'))){_0x35d1fc[_0x5b4ae4][_0xaf25('0x95')]=_0x5b4ae4;_0x35d1fc[_0x5b4ae4][_0xaf25('0x96')]=_0x5b4ae4;}}return _0x35d1fc;})['then'](function(_0x3ba141){var _0x7376e4={'where':{'$or':[{'ListId':_0x1861b9[_0xaf25('0x3b')]['id']},{'ListId':null}]},'raw':!![]};return db[_0xaf25('0x35')][_0xaf25('0x97')](_0x7376e4)[_0xaf25('0x2c')](function(_0x2f5db9){for(var _0x3067e4=0x0;_0x3067e4<_0x2f5db9[_0xaf25('0x33')];_0x3067e4++){var _0x2f5b33=_0xaf25('0x37')+_0x2f5db9[_0x3067e4]['id'];_0x3ba141[_0x2f5b33][_0xaf25('0x95')]=_0x2f5b33;_0x3ba141[_0x2f5b33][_0xaf25('0x96')]=_0x2f5db9[_0x3067e4]['alias'];_0x3ba141[_0x2f5b33][_0xaf25('0x98')]={'type':_0x2f5db9[_0x3067e4][_0xaf25('0x39')],'values':_0x2f5db9[_0x3067e4]['values']};}Object[_0xaf25('0x32')](_0x3ba141)['forEach'](function(_0xe12355){if(!_0x3ba141[_0xe12355][_0xaf25('0x61')]('columnName')){delete _0x3ba141[_0xe12355];}});return _0x3ba141;});})[_0xaf25('0x2c')](respondWithResult(_0x26de74,null))[_0xaf25('0x93')](handleError(_0x26de74,null));};exports[_0xaf25('0x99')]=function(_0x4dabfb,_0x5aa262){var _0x14932d;var _0x5d968f;var _0x449b2b;if(_0x4dabfb[_0xaf25('0x9a')]['id']){delete _0x4dabfb[_0xaf25('0x9a')]['id'];}return db[_0xaf25('0x30')]['findAll']({'where':{'id':[_0x4dabfb[_0xaf25('0x9a')]['to'],_0x4dabfb[_0xaf25('0x9a')][_0xaf25('0x47')]]}})[_0xaf25('0x2c')](function(_0x431a01){if(_0x431a01){if(_0x431a01[_0xaf25('0x33')]!==0x2){return null;}_0x431a01[0x0]=_0x431a01[0x0]['get']({'plain':!![]});_0x431a01[0x1]=_0x431a01[0x1]['get']({'plain':!![]});delete _0x431a01[0x0]['id'];delete _0x431a01[0x1]['id'];return _['mergeWith'](_0x431a01[0x0],_0x431a01[0x1],function(_0x393980,_0x4dac14){if(Array['isArray'](_0x4dac14)&&!_0x4dac14['length']){return _0x393980;}else if(!_0x4dac14){return _0x393980;}});}})[_0xaf25('0x2c')](handleEntityNotFound(_0x5aa262,null))[_0xaf25('0x2c')](function(_0x149dec){if(_0x149dec){if(_0x149dec[_0xaf25('0x94')]&&_['isArray'](_0x149dec[_0xaf25('0x94')])){_0x149dec['tags']=_0x149dec[_0xaf25('0x94')][_0xaf25('0x9b')]();}logger[_0xaf25('0x9c')](_0xaf25('0x9d'),_0x4dabfb['body']['to'],_0x4dabfb['body'][_0xaf25('0x47')]);return db[_0xaf25('0x9e')][_0xaf25('0x2b')]({'where':{'ContactId':[_0x4dabfb[_0xaf25('0x9a')]['to'],_0x4dabfb[_0xaf25('0x9a')][_0xaf25('0x47')]]}})['then'](function(_0x15778d){logger[_0xaf25('0x9c')]('[CmContact][merge][destroy][CmHopper],\x20%s',_0x15778d);return db['CmHopperBlack'][_0xaf25('0x2b')]({'where':{'ContactId':[_0x4dabfb[_0xaf25('0x9a')]['to'],_0x4dabfb['body'][_0xaf25('0x47')]]}})[_0xaf25('0x2c')](function(_0x2d5106){logger['info'](_0xaf25('0x9f'),_0x2d5106);return db[_0xaf25('0x30')]['create'](_0x149dec);});});}})[_0xaf25('0x2c')](function(_0x11b55e){if(_0x11b55e){_0x14932d=_0x11b55e;_0x5d968f={'ContactId':_0x14932d['id']};_0x449b2b={'where':{'ContactId':[_0x4dabfb[_0xaf25('0x9a')]['to'],_0x4dabfb['body'][_0xaf25('0x47')]]}};return db[_0xaf25('0xa0')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa1')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa2')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db['MailInteraction'][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0xa3')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0xa4')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa3')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa5')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0xa6')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa7')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db['FaxMessage'][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa8')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xa9')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xaa')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0xab')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xac')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xad')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xae')]['update'](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0xaf')]['update'](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db['MailQueueReport']['update'](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0xb0')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xb1')]['update'](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xb2')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db['WhatsappInteraction'][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xb3')][_0xaf25('0x2a')](_0x5d968f,_0x449b2b);}})[_0xaf25('0x2c')](function(){if(_0x14932d){return db[_0xaf25('0xb4')]['update'](_0x5d968f,_0x449b2b);}})['then'](function(){if(_0x14932d){return db[_0xaf25('0x30')][_0xaf25('0x2b')]({'where':{'id':[_0x4dabfb['body']['to'],_0x4dabfb[_0xaf25('0x9a')][_0xaf25('0x47')]]}});}})['then'](function(){if(_0x14932d){return _0x14932d;}})[_0xaf25('0x2c')](respondWithResult(_0x5aa262,null))[_0xaf25('0x93')](handleError(_0x5aa262,null));};exports['create']=function(_0x588773,_0x595038){return db[_0xaf25('0x30')][_0xaf25('0x31')]()[_0xaf25('0x2c')](function(_0x33228e){if(_0x588773['body'][_0xaf25('0x94')]&&_[_0xaf25('0x6a')](_0x588773[_0xaf25('0x9a')][_0xaf25('0x94')])){if(_0x588773['body'][_0xaf25('0x94')][_0xaf25('0x33')]){_0x588773[_0xaf25('0x9a')]['tags']=_0x588773[_0xaf25('0x9a')][_0xaf25('0x94')]['join'](';')+';';}else{_0x588773[_0xaf25('0x9a')][_0xaf25('0x94')]=null;}}else{_0x588773[_0xaf25('0x9a')][_0xaf25('0x94')]=null;}return db[_0xaf25('0x30')][_0xaf25('0xb5')](_0x588773[_0xaf25('0x9a')],{'fields':_[_0xaf25('0x32')](_0x33228e),'raw':!![]});})[_0xaf25('0x2c')](respondWithResult(_0x595038,0xc9))[_0xaf25('0x93')](handleError(_0x595038,null));};exports[_0xaf25('0xb6')]=function(_0xdf11ce,_0x384d87){var _0x1cc27b=[];var _0x223534=0x0;var _0x25e22c=0x0;var _0xf4508f=0x0;return db[_0xaf25('0x30')][_0xaf25('0x31')]()[_0xaf25('0x2c')](function(_0x30a968){return BPromise['each'](_0xdf11ce[_0xaf25('0x9a')],function(_0x5b571e){var _0x5e3eef={'where':{'$or':[]},'defaults':_0x5b571e,'fields':_[_0xaf25('0x32')](_0x30a968),'raw':!![]};if(_0x5b571e[_0xaf25('0xb7')]){for(var _0x4b1732=0x0;_0x4b1732<_0x5b571e['duplicates'][_0xaf25('0x33')];_0x4b1732++){var _0x2393d6={};_0x2393d6[_0x5b571e['duplicates'][_0x4b1732]]=_0x5b571e[_0x5b571e[_0xaf25('0xb7')][_0x4b1732]];_0x5e3eef[_0xaf25('0x42')][_0xaf25('0xb8')]['push'](_0x2393d6);}_0x5e3eef['where']['ListId']=_0x5b571e[_0xaf25('0x64')];}return db[_0xaf25('0x30')][_0xaf25('0xb9')](_0x5e3eef)['spread'](function(_0x5a584b,_0x22147f){if(_0x22147f){_0x223534++;}else{_0xf4508f++;}})[_0xaf25('0x93')](function(_0x28803e){console[_0xaf25('0xba')](_0x28803e);_0x25e22c++;});});})[_0xaf25('0x2c')](function(_0x3705f5){if(_0x3705f5){return{'success':_0x223534,'failure':_0x25e22c,'duplicates':_0xf4508f};}})[_0xaf25('0x2c')](respondWithResult(_0x384d87,0xc9))['catch'](handleError(_0x384d87,null));};exports['show']=function(_0x3cc301,_0x53147a,_0x223c59){var _0x54c981;return db[_0xaf25('0x30')]['describe']()[_0xaf25('0x2c')](function(_0x2fd759){return db[_0xaf25('0x30')][_0xaf25('0x50')]({'where':{'id':_0x3cc301['params']['id']},'include':[{'model':db['Tag'],'as':_0xaf25('0x90'),'attributes':['id',_0xaf25('0x2e'),_0xaf25('0xbb')],'required':_0x3cc301['query']['tag']?!![]:![]}],'attributes':_[_0xaf25('0x32')](_0x2fd759)});})[_0xaf25('0x2c')](function(_0x34d5c4){_0x54c981=_0x34d5c4[_0xaf25('0xbc')]({'plain':!![]});var _0x5e7696={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x34d5c4&&_0x34d5c4[_0xaf25('0x64')]){if(_0x34d5c4[_0xaf25('0x64')]){_0x5e7696[_0xaf25('0x42')][_0xaf25('0xbd')][_0xaf25('0x34')]({'ListId':{'$ne':_0x34d5c4[_0xaf25('0x64')]}});}}return db[_0xaf25('0x35')][_0xaf25('0x97')](_0x5e7696);})[_0xaf25('0x2c')](function(_0x2e7727){return _[_0xaf25('0xbe')](_0x54c981,_[_0xaf25('0x52')](_0x2e7727,function(_0x171b84){return util[_0xaf25('0xbf')](_0xaf25('0xc0'),_0x171b84['id']);}));})['then'](handleEntityNotFound(_0x53147a,null))[_0xaf25('0x2c')](respondWithResult(_0x53147a,null))[_0xaf25('0x93')](handleError(_0x53147a,null));};exports[_0xaf25('0x2a')]=function(_0x4be222,_0x5dd628){var _0x56e3e2;if(_0x4be222[_0xaf25('0x9a')]['id']){delete _0x4be222[_0xaf25('0x9a')]['id'];}return db['CmContact'][_0xaf25('0x50')]({'where':{'id':_0x4be222['params']['id']}})[_0xaf25('0x2c')](handleEntityNotFound(_0x5dd628,null))['then'](saveUpdates(_0x4be222['body'],null))[_0xaf25('0x2c')](function(_0xe4455){_0x56e3e2=_0xe4455;var _0x3fb665={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0xe4455&&_0xe4455[_0xaf25('0x64')]){if(_0xe4455[_0xaf25('0x64')]){_0x3fb665[_0xaf25('0x42')][_0xaf25('0xbd')]['push']({'ListId':{'$ne':_0xe4455[_0xaf25('0x64')]}});}}return db[_0xaf25('0x35')][_0xaf25('0x97')](_0x3fb665);})[_0xaf25('0x2c')](function(_0x1510a6){if(_0x1510a6){return _[_0xaf25('0xbe')](_['pickBy'](_0x4be222[_0xaf25('0x9a')],function(_0x32191c,_0x13b849){return _[_0xaf25('0xc1')](_0x13b849,_0xaf25('0x37'));}),_[_0xaf25('0x52')](_0x1510a6,function(_0x5cb9cd){return util[_0xaf25('0xbf')](_0xaf25('0xc0'),_0x5cb9cd['id']);}));}})[_0xaf25('0x2c')](function(_0x25f88c){if(_0x25f88c&&!_[_0xaf25('0x63')](_0x25f88c)){var _0x539faf=squel['update']()[_0xaf25('0xc2')](_0xaf25('0x48'))[_0xaf25('0xc3')](_0x25f88c)[_0xaf25('0x42')](_0xaf25('0xc4'),_0x4be222[_0xaf25('0xc5')]['id'])[_0xaf25('0xc6')]();return db[_0xaf25('0x84')][_0xaf25('0x3b')](_0x539faf[_0xaf25('0x5f')],{'replacements':_0x539faf[_0xaf25('0xc7')]});}})[_0xaf25('0x2c')](function(){if(_0x4be222[_0xaf25('0x9a')][_0xaf25('0xc8')]&&_0x56e3e2){return db[_0xaf25('0x9e')][_0xaf25('0x2a')]({'phone':_0x4be222[_0xaf25('0x9a')][_0xaf25('0xc8')]},{'where':{'ContactId':_0x56e3e2['id']}});}})[_0xaf25('0x2c')](function(){return _0x56e3e2;})['then'](respondWithResult(_0x5dd628,null))[_0xaf25('0x93')](handleError(_0x5dd628,null));};exports[_0xaf25('0xc9')]=function(_0x3dedb0,_0x2126a2,_0x5df458){var _0x166fb7={};var _0x25f601={};var _0x261b18;var _0x5d4283;return db[_0xaf25('0x30')]['findOne']({'where':{'id':_0x3dedb0[_0xaf25('0xc5')]['id']}})['then'](handleEntityNotFound(_0x2126a2,null))['then'](function(_0x50b015){if(_0x50b015){_0x261b18=_0x50b015;_0x25f601['model']=_[_0xaf25('0x32')](db[_0xaf25('0x51')][_0xaf25('0xca')]);_0x25f601[_0xaf25('0x3b')]=_[_0xaf25('0x32')](_0x3dedb0[_0xaf25('0x3b')]);_0x25f601[_0xaf25('0x43')]=_[_0xaf25('0x3c')](_0x25f601[_0xaf25('0x3a')],_0x25f601[_0xaf25('0x3b')]);_0x166fb7[_0xaf25('0x3d')]=_[_0xaf25('0x3c')](_0x25f601[_0xaf25('0x3a')],qs[_0xaf25('0x3e')](_0x3dedb0[_0xaf25('0x3b')]['fields']));_0x166fb7['attributes']=_0x166fb7[_0xaf25('0x3d')][_0xaf25('0x33')]?_0x166fb7[_0xaf25('0x3d')]:_0x25f601[_0xaf25('0x3a')];_0x166fb7[_0xaf25('0x40')]=qs[_0xaf25('0x41')](_0x3dedb0['query'][_0xaf25('0x41')]);_0x166fb7[_0xaf25('0x42')]=qs[_0xaf25('0x43')](_[_0xaf25('0xcb')](_0x3dedb0[_0xaf25('0x3b')],_0x25f601[_0xaf25('0x43')]));if(_0x3dedb0[_0xaf25('0x3b')][_0xaf25('0xcc')]){_0x166fb7[_0xaf25('0x42')]=_[_0xaf25('0x99')](_0x166fb7[_0xaf25('0x42')],{'$or':_['map'](_0x166fb7[_0xaf25('0x3d')],function(_0x40dccd){var _0x21e5c6={};_0x21e5c6[_0x40dccd]={'$like':'%'+_0x3dedb0['query']['filter']+'%'};return _0x21e5c6;})});}_0x166fb7=_[_0xaf25('0x99')]({},_0x166fb7,_0x3dedb0[_0xaf25('0xcd')]);return _0x261b18[_0xaf25('0xc9')](_0x166fb7);}})[_0xaf25('0x2c')](function(_0x596c84){if(_0x596c84){_0x5d4283=_0x596c84[_0xaf25('0x33')];if(!_0x3dedb0[_0xaf25('0x3b')][_0xaf25('0x61')](_0xaf25('0x3f'))){_0x166fb7[_0xaf25('0x25')]=qs[_0xaf25('0x25')](_0x3dedb0[_0xaf25('0x3b')][_0xaf25('0x25')]);_0x166fb7[_0xaf25('0x24')]=qs[_0xaf25('0x24')](_0x3dedb0[_0xaf25('0x3b')][_0xaf25('0x24')]);}return _0x261b18[_0xaf25('0xc9')](_0x166fb7);}})[_0xaf25('0x2c')](function(_0x5297fe){if(_0x5297fe){return _0x5297fe?{'count':_0x5d4283,'rows':_0x5297fe}:null;}})[_0xaf25('0x2c')](respondWithResult(_0x2126a2,null))['catch'](handleError(_0x2126a2,null));};exports[_0xaf25('0xce')]=function(_0x3214c8,_0x3bef6c,_0x1b2844){if(_0x3214c8['body']['id']){delete _0x3214c8[_0xaf25('0x9a')]['id'];}return db[_0xaf25('0x30')][_0xaf25('0xcf')]({'where':{'id':_0x3214c8[_0xaf25('0xc5')]['id']}})['then'](handleEntityNotFound(_0x3bef6c,null))[_0xaf25('0x2c')](function(_0x660003){if(_0x660003){return _0x660003[_0xaf25('0xce')](_0x3214c8[_0xaf25('0x9a')][_0xaf25('0xd0')]||[]);}return null;})[_0xaf25('0x2c')](respondWithResult(_0x3bef6c,null))[_0xaf25('0x93')](handleError(_0x3bef6c,null));};exports[_0xaf25('0xd1')]=function(_0xa6849a,_0x512455,_0x56d462){var _0x3ce52e={'raw':![],'where':{}};var _0x1d6773={};var _0x97f19d={'count':0x0,'rows':[]};return db[_0xaf25('0x30')][_0xaf25('0xcf')]({'where':{'id':_0xa6849a[_0xaf25('0xc5')]['id']}})[_0xaf25('0x2c')](handleEntityNotFound(_0x512455,null))[_0xaf25('0x2c')](function(_0x43bb62){if(_0x43bb62){_0x1d6773['model']=_['keys'](db['CmHopper'][_0xaf25('0xca')]);_0x1d6773[_0xaf25('0x3b')]=_[_0xaf25('0x32')](_0xa6849a[_0xaf25('0x3b')]);_0x1d6773['filters']=_[_0xaf25('0x3c')](_0x1d6773[_0xaf25('0x3a')],_0x1d6773[_0xaf25('0x3b')]);_0x3ce52e['attributes']=_[_0xaf25('0x3c')](_0x1d6773[_0xaf25('0x3a')],qs[_0xaf25('0x3e')](_0xa6849a[_0xaf25('0x3b')][_0xaf25('0x3e')]));_0x3ce52e['attributes']=_0x3ce52e[_0xaf25('0x3d')][_0xaf25('0x33')]?_0x3ce52e[_0xaf25('0x3d')]:_0x1d6773[_0xaf25('0x3a')];if(!_0xa6849a['query'][_0xaf25('0x61')]('nolimit')){_0x3ce52e[_0xaf25('0x25')]=qs['limit'](_0xa6849a['query'][_0xaf25('0x25')]);_0x3ce52e[_0xaf25('0x24')]=qs['offset'](_0xa6849a[_0xaf25('0x3b')][_0xaf25('0x24')]);}_0x3ce52e[_0xaf25('0x40')]=qs[_0xaf25('0x41')](_0xa6849a['query'][_0xaf25('0x41')]);_0x3ce52e[_0xaf25('0x42')]=qs[_0xaf25('0x43')](_[_0xaf25('0xcb')](_0xa6849a[_0xaf25('0x3b')],_0x1d6773[_0xaf25('0x43')]));_0x3ce52e['where'][_0xaf25('0xd2')]=_0x43bb62['id'];if(_0xa6849a['query'][_0xaf25('0xcc')]){_0x3ce52e[_0xaf25('0x42')]=_[_0xaf25('0x99')](_0x3ce52e[_0xaf25('0x42')],{'$or':_[_0xaf25('0x52')](_0x3ce52e[_0xaf25('0x3d')],function(_0x37e9ea){var _0x30f6a6={};_0x30f6a6[_0x37e9ea]={'$like':'%'+_0xa6849a['query'][_0xaf25('0xcc')]+'%'};return _0x30f6a6;})});}_0x3ce52e=_[_0xaf25('0x99')]({},_0x3ce52e,_0xa6849a[_0xaf25('0xcd')]);return db[_0xaf25('0x9e')][_0xaf25('0x27')]({'where':_0x3ce52e[_0xaf25('0x42')]})[_0xaf25('0x2c')](function(_0x50cbda){_0x97f19d['count']=_0x50cbda;if(_0xa6849a[_0xaf25('0x3b')]['includeAll']){_0x3ce52e[_0xaf25('0xd3')]=[{'all':!![]}];}return db[_0xaf25('0x9e')][_0xaf25('0x97')](_0x3ce52e);})['then'](function(_0x1fc764){_0x97f19d[_0xaf25('0x92')]=_0x1fc764;return _0x97f19d;});}})['then'](respondWithFilteredResult(_0x512455,_0x3ce52e))[_0xaf25('0x93')](handleError(_0x512455,null));};exports[_0xaf25('0xd4')]=function(_0x75d4b,_0x2085b9,_0x414e66){var _0x5d686f={'raw':!![],'where':{}};var _0x4359db={};var _0x55f7d3={'count':0x0,'rows':[]};return db['CmContact'][_0xaf25('0xcf')]({'where':{'id':_0x75d4b['params']['id']}})['then'](handleEntityNotFound(_0x2085b9,null))[_0xaf25('0x2c')](function(_0x4740c5){if(_0x4740c5){_0x4359db['model']=_[_0xaf25('0x32')](db[_0xaf25('0xab')]['rawAttributes']);_0x4359db['query']=_[_0xaf25('0x32')](_0x75d4b[_0xaf25('0x3b')]);_0x4359db[_0xaf25('0x43')]=_[_0xaf25('0x3c')](_0x4359db[_0xaf25('0x3a')],_0x4359db[_0xaf25('0x3b')]);_0x5d686f['attributes']=_['intersection'](_0x4359db[_0xaf25('0x3a')],qs[_0xaf25('0x3e')](_0x75d4b[_0xaf25('0x3b')][_0xaf25('0x3e')]));_0x5d686f[_0xaf25('0x3d')]=_0x5d686f['attributes'][_0xaf25('0x33')]?_0x5d686f[_0xaf25('0x3d')]:_0x4359db[_0xaf25('0x3a')];if(!_0x75d4b['query'][_0xaf25('0x61')](_0xaf25('0x3f'))){_0x5d686f['limit']=qs[_0xaf25('0x25')](_0x75d4b['query']['limit']);_0x5d686f['offset']=qs[_0xaf25('0x24')](_0x75d4b[_0xaf25('0x3b')]['offset']);}_0x5d686f[_0xaf25('0x40')]=qs[_0xaf25('0x41')](_0x75d4b['query']['sort']);_0x5d686f[_0xaf25('0x42')]=qs['filters'](_['pick'](_0x75d4b[_0xaf25('0x3b')],_0x4359db[_0xaf25('0x43')]));_0x5d686f[_0xaf25('0x42')]['ContactId']=_0x4740c5['id'];if(_0x75d4b[_0xaf25('0x3b')][_0xaf25('0xcc')]){_0x5d686f[_0xaf25('0x42')]=_[_0xaf25('0x99')](_0x5d686f[_0xaf25('0x42')],{'$or':_[_0xaf25('0x52')](_0x5d686f[_0xaf25('0x3d')],function(_0x3c16d0){var _0x329491={};_0x329491[_0x3c16d0]={'$like':'%'+_0x75d4b['query'][_0xaf25('0xcc')]+'%'};return _0x329491;})});}_0x5d686f=_[_0xaf25('0x99')]({},_0x5d686f,_0x75d4b[_0xaf25('0xcd')]);return db[_0xaf25('0xab')][_0xaf25('0x27')]({'where':_0x5d686f[_0xaf25('0x42')]})[_0xaf25('0x2c')](function(_0x51fb26){_0x55f7d3[_0xaf25('0x27')]=_0x51fb26;if(_0x75d4b[_0xaf25('0x3b')][_0xaf25('0xd5')]){_0x5d686f[_0xaf25('0xd3')]=[{'all':!![]}];}return db['CmHopperHistory']['findAll'](_0x5d686f);})[_0xaf25('0x2c')](function(_0x1645bc){_0x55f7d3[_0xaf25('0x92')]=_0x1645bc;return _0x55f7d3;});}})[_0xaf25('0x2c')](respondWithFilteredResult(_0x2085b9,_0x5d686f))[_0xaf25('0x93')](handleError(_0x2085b9,null));};exports[_0xaf25('0xd6')]=function(_0x3634c2,_0x43a1b0,_0x590bee){var _0x5198ae={'raw':!![],'where':{}};var _0x37fbd5={};var _0x2b90b1={'count':0x0,'rows':[]};return db[_0xaf25('0x30')][_0xaf25('0xcf')]({'where':{'id':_0x3634c2[_0xaf25('0xc5')]['id']}})['then'](handleEntityNotFound(_0x43a1b0,null))['then'](function(_0x306ba3){if(_0x306ba3){_0x37fbd5[_0xaf25('0x3a')]=_[_0xaf25('0x32')](db[_0xaf25('0xaa')]['rawAttributes']);_0x37fbd5[_0xaf25('0x3b')]=_['keys'](_0x3634c2['query']);_0x37fbd5['filters']=_['intersection'](_0x37fbd5['model'],_0x37fbd5[_0xaf25('0x3b')]);_0x5198ae['attributes']=_['intersection'](_0x37fbd5[_0xaf25('0x3a')],qs[_0xaf25('0x3e')](_0x3634c2[_0xaf25('0x3b')][_0xaf25('0x3e')]));_0x5198ae[_0xaf25('0x3d')]=_0x5198ae[_0xaf25('0x3d')][_0xaf25('0x33')]?_0x5198ae[_0xaf25('0x3d')]:_0x37fbd5[_0xaf25('0x3a')];if(!_0x3634c2[_0xaf25('0x3b')][_0xaf25('0x61')]('nolimit')){_0x5198ae[_0xaf25('0x25')]=qs['limit'](_0x3634c2['query'][_0xaf25('0x25')]);_0x5198ae[_0xaf25('0x24')]=qs['offset'](_0x3634c2[_0xaf25('0x3b')][_0xaf25('0x24')]);}_0x5198ae[_0xaf25('0x40')]=qs[_0xaf25('0x41')](_0x3634c2[_0xaf25('0x3b')]['sort']);_0x5198ae[_0xaf25('0x42')]=qs[_0xaf25('0x43')](_[_0xaf25('0xcb')](_0x3634c2['query'],_0x37fbd5[_0xaf25('0x43')]));_0x5198ae[_0xaf25('0x42')][_0xaf25('0xd2')]=_0x306ba3['id'];if(_0x3634c2['query'][_0xaf25('0xcc')]){_0x5198ae[_0xaf25('0x42')]=_[_0xaf25('0x99')](_0x5198ae[_0xaf25('0x42')],{'$or':_['map'](_0x5198ae[_0xaf25('0x3d')],function(_0x2077c1){var _0x4b141c={};_0x4b141c[_0x2077c1]={'$like':'%'+_0x3634c2[_0xaf25('0x3b')][_0xaf25('0xcc')]+'%'};return _0x4b141c;})});}_0x5198ae=_[_0xaf25('0x99')]({},_0x5198ae,_0x3634c2[_0xaf25('0xcd')]);return db[_0xaf25('0xaa')]['count']({'where':_0x5198ae[_0xaf25('0x42')]})[_0xaf25('0x2c')](function(_0x1a7ce6){_0x2b90b1[_0xaf25('0x27')]=_0x1a7ce6;if(_0x3634c2[_0xaf25('0x3b')][_0xaf25('0xd5')]){_0x5198ae[_0xaf25('0xd3')]=[{'all':!![]}];}return db[_0xaf25('0xaa')][_0xaf25('0x97')](_0x5198ae);})[_0xaf25('0x2c')](function(_0x211346){_0x2b90b1[_0xaf25('0x92')]=_0x211346;return _0x2b90b1;});}})[_0xaf25('0x2c')](respondWithFilteredResult(_0x43a1b0,_0x5198ae))[_0xaf25('0x93')](handleError(_0x43a1b0,null));};exports[_0xaf25('0xd7')]=function(_0xbca529,_0x3efe4a,_0x310080){var _0x3b0e8b={'raw':!![],'where':{}};var _0x1e028d={};var _0x3da090={'count':0x0,'rows':[]};return db[_0xaf25('0x30')]['findOne']({'where':{'id':_0xbca529[_0xaf25('0xc5')]['id']}})['then'](handleEntityNotFound(_0x3efe4a,null))[_0xaf25('0x2c')](function(_0x302848){if(_0x302848){_0x1e028d[_0xaf25('0x3a')]=_[_0xaf25('0x32')](db['JscriptySessionReport'][_0xaf25('0xca')]);_0x1e028d['query']=_[_0xaf25('0x32')](_0xbca529[_0xaf25('0x3b')]);_0x1e028d['filters']=_[_0xaf25('0x3c')](_0x1e028d['model'],_0x1e028d['query']);_0x3b0e8b[_0xaf25('0x3d')]=_[_0xaf25('0x3c')](_0x1e028d[_0xaf25('0x3a')],qs[_0xaf25('0x3e')](_0xbca529['query'][_0xaf25('0x3e')]));_0x3b0e8b[_0xaf25('0x3d')]=_0x3b0e8b['attributes']['length']?_0x3b0e8b[_0xaf25('0x3d')]:_0x1e028d[_0xaf25('0x3a')];if(!_0xbca529[_0xaf25('0x3b')][_0xaf25('0x61')](_0xaf25('0x3f'))){_0x3b0e8b['limit']=qs['limit'](_0xbca529[_0xaf25('0x3b')][_0xaf25('0x25')]);_0x3b0e8b[_0xaf25('0x24')]=qs[_0xaf25('0x24')](_0xbca529[_0xaf25('0x3b')][_0xaf25('0x24')]);}_0x3b0e8b[_0xaf25('0x40')]=qs[_0xaf25('0x41')](_0xbca529[_0xaf25('0x3b')]['sort']);_0x3b0e8b[_0xaf25('0x42')]=qs[_0xaf25('0x43')](_['pick'](_0xbca529[_0xaf25('0x3b')],_0x1e028d['filters']));_0x3b0e8b[_0xaf25('0x42')][_0xaf25('0xd2')]=_0x302848['id'];if(_0xbca529[_0xaf25('0x3b')]['filter']){_0x3b0e8b[_0xaf25('0x42')]=_[_0xaf25('0x99')](_0x3b0e8b[_0xaf25('0x42')],{'$or':_['map'](_0x3b0e8b[_0xaf25('0x3d')],function(_0x3817d1){var _0x3ee95a={};_0x3ee95a[_0x3817d1]={'$like':'%'+_0xbca529['query'][_0xaf25('0xcc')]+'%'};return _0x3ee95a;})});}_0x3b0e8b=_[_0xaf25('0x99')]({},_0x3b0e8b,_0xbca529[_0xaf25('0xcd')]);return db[_0xaf25('0xb2')][_0xaf25('0x27')]({'where':_0x3b0e8b['where']})[_0xaf25('0x2c')](function(_0x44da7d){_0x3da090[_0xaf25('0x27')]=_0x44da7d;if(_0xbca529[_0xaf25('0x3b')]['includeAll']){_0x3b0e8b[_0xaf25('0xd3')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0xaf25('0x97')](_0x3b0e8b);})[_0xaf25('0x2c')](function(_0x2a80fa){_0x3da090[_0xaf25('0x92')]=_0x2a80fa;return _0x3da090;});}})[_0xaf25('0x2c')](respondWithFilteredResult(_0x3efe4a,_0x3b0e8b))[_0xaf25('0x93')](handleError(_0x3efe4a,null));};exports[_0xaf25('0xd8')]=function(_0x33d2f5,_0x4110f7,_0x1abf13){try{if(!_0x33d2f5['body'][_0xaf25('0x64')]){throw new Error(_0xaf25('0xd9'));}if(!_0x33d2f5['body']['binding_keys']){throw new Error(_0xaf25('0xda'));}if(!_0x33d2f5['body'][_0xaf25('0xdb')]){throw new Error(_0xaf25('0xdc'));}if(!_0x33d2f5[_0xaf25('0x9a')][_0xaf25('0xdd')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x28e07e=_0x33d2f5[_0xaf25('0x9a')][_0xaf25('0xde')]['split'](',');var _0x1ce753=_0x33d2f5[_0xaf25('0x9a')][_0xaf25('0xdb')][_0xaf25('0x91')](',');if(!_0x28e07e[_0xaf25('0x33')]||!_0x1ce753[_0xaf25('0x33')]||_0x28e07e[_0xaf25('0x33')]!==_0x1ce753[_0xaf25('0x33')]){throw new Error(_0xaf25('0xdf'));}_0x33d2f5['body'][_0xaf25('0x3e')]=_[_0xaf25('0xe0')](_0x28e07e,_0x1ce753);if(!_0x33d2f5[_0xaf25('0x9a')]['fields'][_0xaf25('0xc8')]){throw new Error(_0xaf25('0xe1'));}if(!_0x33d2f5[_0xaf25('0x9a')][_0xaf25('0x3e')][_0xaf25('0xe2')]){throw new Error(_0xaf25('0xe3'));}var _0x2bb978=path[_0xaf25('0x9b')](config[_0xaf25('0xe4')],_0xaf25('0xe5'),_0x33d2f5[_0xaf25('0xe6')][_0xaf25('0xe7')]);fs['chmodSync'](_0x2bb978,parseInt(_0xaf25('0xe8'),0x8));var _0x112a53=require(_0xaf25('0xe9'))[_0xaf25('0xea')](path['join'](__dirname,_0xaf25('0xeb')),[_0x2bb978,_0x33d2f5[_0xaf25('0x9a')]['binding_keys'],_0x33d2f5[_0xaf25('0x9a')]['binding_values'],_0x33d2f5[_0xaf25('0x9a')]['ListId'],_0x33d2f5[_0xaf25('0x9a')]['CompanyId'],_0x33d2f5[_0xaf25('0x9a')]['duplicates'],_0x33d2f5[_0xaf25('0x9a')][_0xaf25('0xdd')]]);return _0x4110f7[_0xaf25('0x21')](0xc8)[_0xaf25('0x23')]({'message':_0xaf25('0xec'),'pid':_0x112a53[_0xaf25('0xed')]});}catch(_0x1122da){return _0x4110f7[_0xaf25('0x21')](0x1f4)[_0xaf25('0xee')](_0x1122da);}};exports[_0xaf25('0xef')]=function(_0x313c9d,_0x31caf4,_0xeafed0){var _0x4b42c2=fs[_0xaf25('0xf0')](_0x313c9d[_0xaf25('0xe6')][_0xaf25('0xf1')]);Papa[_0xaf25('0xf2')](_0x4b42c2,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x2cbb02){return _0x31caf4['status'](0xc8)['json']({'file':_0x313c9d[_0xaf25('0xe6')],'fields':_0x2cbb02[_0xaf25('0xf3')][_0xaf25('0x3e')]});}});};exports[_0xaf25('0xf4')]=function(_0x233986,_0x8b80a7,_0x237ce6){return db[_0xaf25('0x56')][_0xaf25('0x97')]({'raw':!![],'attributes':['id'],'where':{'role':_0xaf25('0x7f')}})['then'](function(_0x30a9dd){var _0x4f3b7e=![];if(!_0x233986['body']['ListId']){throw new Error(_0xaf25('0xd9'));}if(!_0x233986[_0xaf25('0x9a')][_0xaf25('0xf5')][_0xaf25('0xc8')]){throw new Error(_0xaf25('0xe1'));}if(!_0x233986[_0xaf25('0x9a')][_0xaf25('0xf5')]['firstName']){throw new Error(_0xaf25('0xe3'));}if(!_0x233986[_0xaf25('0x9a')]['socket_timestamp']){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x254597=require(_0xaf25('0xe9'))['fork'](path[_0xaf25('0x9b')](__dirname,_0xaf25('0xf6')),[_0x233986['params']['id'],JSON[_0xaf25('0xf7')](_0x233986[_0xaf25('0x9a')]),JSON[_0xaf25('0xf7')](_0x30a9dd)]);_0x254597['on'](_0xaf25('0xf8'),function(_0x4e345a){_0x4f3b7e=!![];return _0x8b80a7[_0xaf25('0x21')](0xc8)['json']({'message':_0xaf25('0xf9'),'pid':_0x254597['pid']});});_0x254597['on'](_0xaf25('0xfa'),function(_0x2bd3f4){if(_0x2bd3f4&&!_0x4f3b7e){return _0x8b80a7['status'](0x1f4)[_0xaf25('0x23')]({'message':_0xaf25('0xfb'),'pid':_0x254597[_0xaf25('0xed')]});}});})['catch'](handleError(_0x8b80a7,null));};exports[_0xaf25('0xfc')]=function(_0x446d55,_0x48d195){var _0x36daac=[_0xaf25('0xfd'),_0xaf25('0xfe'),_0xaf25('0xff'),_0xaf25('0x100'),_0xaf25('0x101'),'whatsapp',_0xaf25('0x102')];var _0x516f09={'offset':0x0,'order':qs['sort'](_0xaf25('0x103'))},_0x3db6ce={'count':0x0,'rows':[]};Promise[_0xaf25('0x104')]()['then'](function(){if(_0x446d55[_0xaf25('0x3b')][_0xaf25('0x105')]){if(!_['includes'](_0x36daac,_0x446d55[_0xaf25('0x3b')][_0xaf25('0x105')][_0xaf25('0x106')]())){throw new Error(_0xaf25('0x107'));}_0x36daac=[_0x446d55['query'][_0xaf25('0x105')]['toLowerCase']()];}if(_0x446d55['query'][_0xaf25('0x108')]){try{var _0x3979e3=JSON[_0xaf25('0xf2')](_0x446d55[_0xaf25('0x3b')]['range']);if(!moment(_0x3979e3[_0xaf25('0x47')])['isValid']()){throw new Error(_0xaf25('0x109'));}if(!moment(_0x3979e3['to'])[_0xaf25('0x10a')]()){throw new Error(_0xaf25('0x10b'));}}catch(_0x328200){throw new Error(_0xaf25('0x10c'));}}if(!_0x446d55['query'][_0xaf25('0x61')](_0xaf25('0x3f'))){_0x516f09[_0xaf25('0x25')]=qs[_0xaf25('0x25')](_0x446d55[_0xaf25('0x3b')][_0xaf25('0x25')]||0xa);_0x516f09[_0xaf25('0x24')]=qs['offset'](_0x446d55[_0xaf25('0x3b')][_0xaf25('0x24')]);}var _0x51d693=_0x36daac[_0xaf25('0x52')](function(_0x2be9f4){if(_0x2be9f4===_0xaf25('0x102')){var _0x31d6ee={'attributes':['id',_0xaf25('0x10d'),_0xaf25('0x39'),_0xaf25('0x10e'),_0xaf25('0x10f'),'callerid',_0xaf25('0x110'),_0xaf25('0x111'),_0xaf25('0x112'),_0xaf25('0x113'),_0xaf25('0x114'),'userDisposition','userSecondDisposition','userThirdDisposition','UserId'],'where':{'ContactId':_0x446d55[_0xaf25('0xc5')]['id']},'include':[{'model':db['User'],'as':_0xaf25('0x56'),'attributes':['id',_0xaf25('0x2e'),'fullname',_0xaf25('0x115')]}],'order':[[_0xaf25('0x114'),_0xaf25('0x7b')]]};if(_0x446d55[_0xaf25('0x3b')][_0xaf25('0x108')]){_0x31d6ee[_0xaf25('0x42')][_0xaf25('0x114')]={'$gte':_0x3979e3[_0xaf25('0x47')],'$lte':_0x3979e3['to']};}return db[_0xaf25('0xad')][_0xaf25('0x116')](_0x31d6ee)[_0xaf25('0x2c')](function(_0x309684){_0x3db6ce[_0xaf25('0x27')]+=_0x309684[_0xaf25('0x27')];return _[_0xaf25('0x52')](_0x309684[_0xaf25('0x92')],function(_0x1339ee){var _0xd7e3ac=_0x1339ee[_0xaf25('0xbc')]({'plain':!![]});_0xd7e3ac[_0xaf25('0x105')]=_0x2be9f4;if(_0xd7e3ac[_0xaf25('0x56')]){_0xd7e3ac['User']={'id':_0xd7e3ac['User']['id'],'name':_0xd7e3ac[_0xaf25('0x56')][_0xaf25('0x2e')],'fullname':_0xd7e3ac['User'][_0xaf25('0x117')],'alias':_0xd7e3ac[_0xaf25('0x56')][_0xaf25('0x115')]};}return _0xd7e3ac;});});}else{var _0x4915bd=_[_0xaf25('0x118')](_0x2be9f4)+(_0x2be9f4==='chat'?_0xaf25('0x119'):_0xaf25('0x11a'));var _0x28a3c1={'attributes':['id',_0xaf25('0x11b'),_0xaf25('0x11c'),_0xaf25('0x114'),_0xaf25('0x113'),_0xaf25('0x11d'),_0xaf25('0x11e'),_0xaf25('0x11f'),_0xaf25('0x120'),_0x4915bd+'Id'],'where':{'ContactId':_0x446d55['params']['id']},'include':[{'model':db[_0x4915bd],'as':_0xaf25('0x11a'),'attributes':['id',_0xaf25('0x2e'),_0xaf25('0x121')]},{'model':db['User'],'as':_0xaf25('0x122'),'attributes':['id',_0xaf25('0x2e'),_0xaf25('0x117')]},{'model':db[_0xaf25('0x51')],'as':'Tags','attributes':['id',_0xaf25('0x2e'),_0xaf25('0xbb')],'through':{'attributes':[]}}],'order':[['createdAt',_0xaf25('0x7b')]]};if(_0x446d55[_0xaf25('0x3b')]['range']){_0x28a3c1[_0xaf25('0x42')][_0xaf25('0x114')]={'$gte':_0x3979e3[_0xaf25('0x47')],'$lte':_0x3979e3['to']};}switch(_0x2be9f4){case'chat':_0x28a3c1['attributes']['push'](_0xaf25('0x123'),_0xaf25('0x124'),'customerPort',_0xaf25('0x125'),'osName',_0xaf25('0x126'),_0xaf25('0x127'),_0xaf25('0x128'),_0xaf25('0x129'));break;case'mail':_0x28a3c1[_0xaf25('0x3d')][_0xaf25('0x34')](_0xaf25('0x12a'),_0xaf25('0x12b'));break;case _0xaf25('0x100'):_0x28a3c1[_0xaf25('0x3d')][_0xaf25('0x34')](_0xaf25('0x12c'),'threadId');break;}return db[_[_0xaf25('0x118')](_0x2be9f4)+_0xaf25('0x12d')][_0xaf25('0x116')](_0x28a3c1)[_0xaf25('0x2c')](function(_0x31c184){_0x3db6ce[_0xaf25('0x27')]+=_0x31c184[_0xaf25('0x27')];return _[_0xaf25('0x52')](_0x31c184[_0xaf25('0x92')],function(_0x30af9d){var _0x2e933f=_0x30af9d[_0xaf25('0xbc')]({'plain':!![]});_0x2e933f[_0xaf25('0x105')]=_0x2be9f4;if(_0x2e933f[_0xaf25('0x122')]){_0x2e933f[_0xaf25('0x122')]={'id':_0x2e933f[_0xaf25('0x122')]['id'],'name':_0x2e933f['Owner']['name'],'fullname':_0x2e933f[_0xaf25('0x122')][_0xaf25('0x117')]};}return _0x2e933f;});});}});return Promise[_0xaf25('0x36')](_0x51d693);})[_0xaf25('0x2c')](function(_0x39a92c){return _(_0x39a92c)['flatten']()['sortBy']('createdAt')[_0xaf25('0x12e')]()[_0xaf25('0x59')]();})['then'](function(_0x35681a){_0x3db6ce[_0xaf25('0x92')]=_0x516f09[_0xaf25('0x25')]?_0x35681a[_0xaf25('0x12f')](_0x516f09[_0xaf25('0x24')],_0x516f09[_0xaf25('0x24')]+_0x516f09['limit']):_0x35681a;return _0x3db6ce;})[_0xaf25('0x2c')](respondWithFilteredResult(_0x48d195,_0x516f09))[_0xaf25('0x93')](handleError(_0x48d195,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d1e=['save','update','remove','emit','hasOwnProperty','hook'];(function(_0x2f41dd,_0x5bd3a1){var _0x3b377d=function(_0x3bd677){while(--_0x3bd677){_0x2f41dd['push'](_0x2f41dd['shift']());}};_0x3b377d(++_0x5bd3a1);}(_0x7d1e,0xf6));var _0xe7d1=function(_0x22f5ea,_0x3a6a30){_0x22f5ea=_0x22f5ea-0x0;var _0xe5955=_0x7d1e[_0x22f5ea];return _0xe5955;};'use strict';var EventEmitter=require('events');var CmContact=require('../../mysqldb')['db']['CmContact'];var CmContactEvents=new EventEmitter();CmContactEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xe7d1('0x0'),'afterUpdate':_0xe7d1('0x1'),'afterDestroy':_0xe7d1('0x2')};function emitEvent(_0x50b60e){return function(_0x4768f6,_0x2fec00,_0x2facf9){CmContactEvents[_0xe7d1('0x3')](_0x50b60e+':'+_0x4768f6['id'],_0x4768f6);CmContactEvents[_0xe7d1('0x3')](_0x50b60e,_0x4768f6);_0x2facf9(null);};}for(var e in events){if(events[_0xe7d1('0x4')](e)){var event=events[e];CmContact[_0xe7d1('0x5')](e,emitEvent(event));}}module['exports']=CmContactEvents;
\ No newline at end of file
+var _0xd0cd=['hook','exports','events','../../mysqldb','CmContact','setMaxListeners','update','remove','emit','hasOwnProperty'];(function(_0xb24a3e,_0x4a3594){var _0x4038d7=function(_0x1ea3c3){while(--_0x1ea3c3){_0xb24a3e['push'](_0xb24a3e['shift']());}};_0x4038d7(++_0x4a3594);}(_0xd0cd,0xf2));var _0xdd0c=function(_0x5245bc,_0x55e740){_0x5245bc=_0x5245bc-0x0;var _0x2acb9a=_0xd0cd[_0x5245bc];return _0x2acb9a;};'use strict';var EventEmitter=require(_0xdd0c('0x0'));var CmContact=require(_0xdd0c('0x1'))['db'][_0xdd0c('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents[_0xdd0c('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xdd0c('0x4'),'afterDestroy':_0xdd0c('0x5')};function emitEvent(_0x4bfde8){return function(_0x5b9592,_0x39a999,_0x5e7b42){CmContactEvents[_0xdd0c('0x6')](_0x4bfde8+':'+_0x5b9592['id'],_0x5b9592);CmContactEvents[_0xdd0c('0x6')](_0x4bfde8,_0x5b9592);_0x5e7b42(null);};}for(var e in events){if(events[_0xdd0c('0x7')](e)){var event=events[e];CmContact[_0xdd0c('0x8')](e,emitEvent(event));}}module[_0xdd0c('0x9')]=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb838=['../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','lastName','mobile','fax','email','FULLTEXT','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','CmHopper','findOne','isNil','then','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','inspect','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','CmHopperFinal','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','findAll','BlackLists','cmContact,\x20%s,\x20%s','message','Campaign','isEmpty','destroy','VoiceQueueId','CampaignId','all','info','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2688d5,_0x45db72){var _0x372637=function(_0x51c20d){while(--_0x51c20d){_0x2688d5['push'](_0x2688d5['shift']());}};_0x372637(++_0x45db72);}(_0xb838,0x14b));var _0x8b83=function(_0x535719,_0x2006dd){_0x535719=_0x535719-0x0;var _0xbc7ac2=_0xb838[_0x535719];return _0xbc7ac2;};'use strict';var _=require(_0x8b83('0x0'));var util=require(_0x8b83('0x1'));var logger=require(_0x8b83('0x2'))(_0x8b83('0x3'));var moment=require(_0x8b83('0x4'));var BPromise=require(_0x8b83('0x5'));var rp=require(_0x8b83('0x6'));var fs=require('fs');var path=require(_0x8b83('0x7'));var rimraf=require(_0x8b83('0x8'));var config=require(_0x8b83('0x9'));var attributes=require(_0x8b83('0xa'));module[_0x8b83('0xb')]=function(_0x8995d1,_0x5571e1){return _0x8995d1[_0x8b83('0xc')]('CmContact',attributes,{'tableName':_0x8b83('0xd'),'paranoid':!![],'indexes':[{'name':'phone','fields':[_0x8b83('0xe')]},{'name':'fti_cm_contacts','fields':['firstName',_0x8b83('0xf'),_0x8b83('0xe'),_0x8b83('0x10'),_0x8b83('0x11'),_0x8b83('0x12')],'type':_0x8b83('0x13')}],'timestamps':!![],'charset':'utf8mb4','collate':_0x8b83('0x14'),'hooks':{'afterCreate':function(_0x867d21,_0x25f449,_0x178633){var _0x193663=_0x8995d1[_0x8b83('0x15')];var _0x1df688=_0x867d21[_0x8b83('0x16')]({'plain':!![]});function _0x2b9501(){return function(_0x358280){logger[_0x8b83('0x17')](_0x8b83('0x18'),_0x8b83('0x19'),util['inspect'](_0x358280,{'showHidden':![],'depth':null}));};}var _0x1af376=function(_0x406517){return new BPromise(function(_0x5bfa7e,_0xd19fa5){_0x193663['CmHopper']['findOne']({'where':{'phone':_0x1df688[_0x8b83('0xe')],'VoiceQueueId':_0x406517['id']}})['then'](function(_0x570e05){if(!_['isNil'](_0x570e05)){throw new Error(_0x8b83('0x1a')+_0x1df688[_0x8b83('0xe')]+_0x8b83('0x1b')+_0x406517['id']);}return _0x193663['CmHopper'][_0x8b83('0x1c')]({'phone':_0x1df688['phone'],'ContactId':_0x1df688['id'],'ListId':_0x1df688[_0x8b83('0x1d')],'priority':_0x1df688['priority']?_0x1df688[_0x8b83('0x1e')]:0x2,'scheduledat':_0x1df688[_0x8b83('0x1f')]?_0x1df688[_0x8b83('0x1f')]:moment()[_0x8b83('0x20')](_0x8b83('0x21')),'callback':_0x1df688[_0x8b83('0x22')]?!![]:![],'callbackuniqueid':_0x1df688[_0x8b83('0x22')]?_0x1df688[_0x8b83('0x22')]:undefined,'callbackat':_0x1df688[_0x8b83('0x22')]?moment()[_0x8b83('0x20')](_0x8b83('0x21')):undefined,'VoiceQueueId':_0x406517['id']});})[_0x8b83('0x23')](function(_0x4cbe4f){_0xd19fa5(_0x4cbe4f);});});};var _0x5a9a85=function(_0x1e9e39){return new BPromise(function(_0x1e8a2e,_0x3bb867){_0x193663[_0x8b83('0x24')][_0x8b83('0x25')]({'where':{'phone':_0x1df688[_0x8b83('0xe')],'VoiceQueueId':_0x1e9e39['id']}})['then'](function(_0x81c677){if(!_[_0x8b83('0x26')](_0x81c677)){throw new Error(_0x8b83('0x1a')+_0x1df688['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'+_0x1e9e39['id']);}return _0x193663['CmHopperFinal'][_0x8b83('0x25')]({'where':{'calleridnum':_0x1df688[_0x8b83('0xe')],'VoiceQueueId':_0x1e9e39['id']}});})[_0x8b83('0x27')](function(_0x3f1d45){if(!_[_0x8b83('0x26')](_0x3f1d45)){throw new Error(_0x8b83('0x28')+_0x1df688[_0x8b83('0xe')]+_0x8b83('0x29')+_0x1e9e39['id']);}return _0x193663[_0x8b83('0x24')]['create']({'phone':_0x1df688[_0x8b83('0xe')],'ContactId':_0x1df688['id'],'ListId':_0x1df688['ListId'],'priority':_0x1df688[_0x8b83('0x1e')]?_0x1df688[_0x8b83('0x1e')]:0x2,'scheduledat':_0x1df688[_0x8b83('0x1f')]?_0x1df688['scheduledat']:moment()[_0x8b83('0x20')](_0x8b83('0x21')),'callback':_0x1df688['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x1df688[_0x8b83('0x22')]?_0x1df688[_0x8b83('0x22')]:undefined,'callbackat':_0x1df688[_0x8b83('0x22')]?moment()['format'](_0x8b83('0x21')):undefined,'VoiceQueueId':_0x1e9e39['id']});})[_0x8b83('0x23')](function(_0x281bdc){_0x3bb867(_0x281bdc);});});};function _0x3a7f2d(){return function(_0x253106){logger[_0x8b83('0x17')](_0x8b83('0x18'),_0x8b83('0x19'),util[_0x8b83('0x2a')](_0x253106,{'showHidden':![],'depth':null}));};}var _0x585840=function(_0x4a01bf){return new BPromise(function(_0x4fea84,_0x437237){_0x193663['CmHopper'][_0x8b83('0x25')]({'where':{'phone':_0x1df688[_0x8b83('0xe')],'CampaignId':_0x4a01bf['id']}})[_0x8b83('0x27')](function(_0x335956){if(!_['isNil'](_0x335956)){throw new Error(_0x8b83('0x1a')+_0x1df688[_0x8b83('0xe')]+_0x8b83('0x2b')+_0x4a01bf['id']);}return _0x193663['CmHopper']['create']({'phone':_0x1df688[_0x8b83('0xe')],'ContactId':_0x1df688['id'],'ListId':_0x1df688[_0x8b83('0x1d')],'priority':_0x1df688[_0x8b83('0x1e')]?_0x1df688['priority']:0x2,'scheduledat':_0x1df688[_0x8b83('0x1f')]?_0x1df688[_0x8b83('0x1f')]:moment()[_0x8b83('0x20')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1df688['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x1df688['callbackUniqueid']?_0x1df688[_0x8b83('0x22')]:undefined,'callbackat':_0x1df688[_0x8b83('0x22')]?moment()[_0x8b83('0x20')](_0x8b83('0x21')):undefined,'CampaignId':_0x4a01bf['id']});})['catch'](function(_0x46c24a){_0x437237(_0x46c24a);});});};var _0x5b8b9d=function(_0xcae600){return new BPromise(function(_0x1952a6,_0x2e0129){_0x193663[_0x8b83('0x24')][_0x8b83('0x25')]({'where':{'phone':_0x1df688[_0x8b83('0xe')],'CampaignId':_0xcae600['id']}})['then'](function(_0x7cadeb){if(!_['isNil'](_0x7cadeb)){throw new Error(_0x8b83('0x1a')+_0x1df688[_0x8b83('0xe')]+_0x8b83('0x2c')+_0xcae600['id']);}return _0x193663[_0x8b83('0x2d')][_0x8b83('0x25')]({'where':{'calleridnum':_0x1df688[_0x8b83('0xe')],'CampaignId':_0xcae600['id']}});})[_0x8b83('0x27')](function(_0x5dc7fe){if(!_['isNil'](_0x5dc7fe)){throw new Error(_0x8b83('0x28')+_0x1df688[_0x8b83('0xe')]+_0x8b83('0x2e')+_0xcae600['id']);}return _0x193663[_0x8b83('0x24')]['create']({'phone':_0x1df688[_0x8b83('0xe')],'ContactId':_0x1df688['id'],'ListId':_0x1df688[_0x8b83('0x1d')],'priority':_0x1df688[_0x8b83('0x1e')]?_0x1df688[_0x8b83('0x1e')]:0x2,'scheduledat':_0x1df688[_0x8b83('0x1f')]?_0x1df688[_0x8b83('0x1f')]:moment()[_0x8b83('0x20')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x1df688[_0x8b83('0x22')]?!![]:![],'callbackuniqueid':_0x1df688['callbackUniqueid']?_0x1df688[_0x8b83('0x22')]:undefined,'callbackat':_0x1df688[_0x8b83('0x22')]?moment()[_0x8b83('0x20')](_0x8b83('0x21')):undefined,'CampaignId':_0xcae600['id']});})[_0x8b83('0x23')](function(_0x3a7b4c){_0x2e0129(_0x3a7b4c);});});};if(_0x1df688[_0x8b83('0x1d')]){_0x193663[_0x8b83('0x2f')]['findAll']({'where':{'type':_0x8b83('0x30')},'attributes':['id',_0x8b83('0x31')],'include':[{'model':_0x193663[_0x8b83('0x32')],'as':_0x8b83('0x33'),'where':{'id':_0x1df688[_0x8b83('0x1d')]}}]})[_0x8b83('0x27')](function(_0x3273a2){if(_0x3273a2){var _0x303bae=[];for(var _0x5b28d1=0x0,_0x2a5ee6;_0x5b28d1<_0x3273a2[_0x8b83('0x34')];_0x5b28d1+=0x1){_0x2a5ee6=_0x3273a2[_0x5b28d1][_0x8b83('0x16')]({'plain':!![]});switch(_0x2a5ee6[_0x8b83('0x31')]){case _0x8b83('0x35'):_0x5a9a85(_0x2a5ee6)[_0x8b83('0x23')](_0x2b9501());break;case _0x8b83('0x36'):_0x1af376(_0x2a5ee6)[_0x8b83('0x23')](_0x2b9501());break;default:_0x193663['CmHopper']['create']({'phone':_0x1df688[_0x8b83('0xe')],'ContactId':_0x1df688['id'],'ListId':_0x1df688[_0x8b83('0x1d')],'scheduledat':_0x1df688['scheduledat']?_0x1df688[_0x8b83('0x1f')]:moment()[_0x8b83('0x20')](_0x8b83('0x21')),'priority':_0x1df688['priority']?_0x1df688[_0x8b83('0x1e')]:0x2,'callback':_0x1df688[_0x8b83('0x22')]?!![]:![],'callbackuniqueid':_0x1df688[_0x8b83('0x22')]?_0x1df688[_0x8b83('0x22')]:undefined,'callbackat':_0x1df688[_0x8b83('0x22')]?moment()[_0x8b83('0x20')](_0x8b83('0x21')):undefined,'VoiceQueueId':_0x2a5ee6['id']})[_0x8b83('0x23')](_0x2b9501());}}}})[_0x8b83('0x27')](function(){return _0x193663['VoiceQueue'][_0x8b83('0x37')]({'where':{'type':_0x8b83('0x30')},'attributes':['id'],'include':[{'model':_0x193663[_0x8b83('0x32')],'as':_0x8b83('0x38'),'where':{'id':_0x1df688['ListId']}}]})['then'](function(_0x453396){if(_0x453396){var _0x16bb8e=[];for(var _0x8802a0=0x0,_0x55b734;_0x8802a0<_0x453396['length'];_0x8802a0+=0x1){_0x55b734=_0x453396[_0x8802a0][_0x8b83('0x16')]({'plain':!![]});_0x193663['CmHopperBlack'][_0x8b83('0x1c')]({'phone':_0x1df688['phone'],'ContactId':_0x1df688['id'],'ListId':_0x1df688[_0x8b83('0x1d')],'VoiceQueueId':_0x55b734['id']})[_0x8b83('0x23')](function(_0x3a9af6){logger['error'](_0x8b83('0x39'),_0x8b83('0x19'),_0x3a9af6[_0x8b83('0x3a')]);});}}});})['then'](function(){return _0x193663[_0x8b83('0x3b')][_0x8b83('0x37')]({'attributes':['id',_0x8b83('0x31')],'include':[{'model':_0x193663[_0x8b83('0x32')],'as':_0x8b83('0x33'),'where':{'id':_0x1df688[_0x8b83('0x1d')]}}]})[_0x8b83('0x27')](function(_0x365dca){if(_0x365dca){var _0x366f01=[];for(var _0x7c5a54=0x0,_0x5e8ad4;_0x7c5a54<_0x365dca[_0x8b83('0x34')];_0x7c5a54+=0x1){_0x5e8ad4=_0x365dca[_0x7c5a54]['get']({'plain':!![]});switch(_0x5e8ad4[_0x8b83('0x31')]){case _0x8b83('0x35'):_0x5b8b9d(_0x5e8ad4)[_0x8b83('0x23')](_0x3a7f2d());break;case _0x8b83('0x36'):_0x585840(_0x5e8ad4)[_0x8b83('0x23')](_0x3a7f2d());break;default:_0x193663[_0x8b83('0x24')][_0x8b83('0x1c')]({'phone':_0x1df688[_0x8b83('0xe')],'ContactId':_0x1df688['id'],'ListId':_0x1df688['ListId'],'scheduledat':_0x1df688['scheduledat']?_0x1df688['scheduledat']:moment()[_0x8b83('0x20')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x1df688[_0x8b83('0x1e')]?_0x1df688['priority']:0x2,'callback':_0x1df688[_0x8b83('0x22')]?!![]:![],'callbackuniqueid':_0x1df688[_0x8b83('0x22')]?_0x1df688['callbackUniqueid']:undefined,'callbackat':_0x1df688[_0x8b83('0x22')]?moment()['format'](_0x8b83('0x21')):undefined,'CampaignId':_0x5e8ad4['id']})[_0x8b83('0x23')](_0x3a7f2d());}}}});})[_0x8b83('0x27')](function(){return _0x193663['Campaign'][_0x8b83('0x37')]({'attributes':['id'],'include':[{'model':_0x193663['CmList'],'as':_0x8b83('0x38'),'where':{'id':_0x1df688[_0x8b83('0x1d')]}}]})['then'](function(_0x1eb81b){if(_0x1eb81b){var _0x3d2080=[];for(var _0x4a4730=0x0,_0x28115a;_0x4a4730<_0x1eb81b[_0x8b83('0x34')];_0x4a4730+=0x1){_0x28115a=_0x1eb81b[_0x4a4730]['get']({'plain':!![]});_0x193663['CmHopperBlack'][_0x8b83('0x1c')]({'phone':_0x1df688[_0x8b83('0xe')],'ContactId':_0x1df688['id'],'ListId':_0x1df688['ListId'],'CampaignId':_0x28115a['id']})[_0x8b83('0x23')](function(_0x5076a3){logger[_0x8b83('0x17')](_0x8b83('0x39'),_0x8b83('0x19'),_0x5076a3[_0x8b83('0x3a')]);});}}});})[_0x8b83('0x27')](function(){_0x178633();})[_0x8b83('0x23')](function(_0x1d163d){logger[_0x8b83('0x17')]('cmContact,\x20%s,\x20%s','afterCreate',_0x1d163d[_0x8b83('0x3a')]);_0x178633(_0x1d163d);});}else{_0x178633(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x5ce240,_0x3d5d40,_0x17502c){var _0x25d7f1=_0x8995d1[_0x8b83('0x15')];var _0x52cd8a=_0x5ce240[_0x8b83('0x16')]({'plain':!![]});return _0x25d7f1[_0x8b83('0x24')]['findAll']({'raw':!![],'where':{'ListId':_0x52cd8a[_0x8b83('0x1d')],'ContactId':_0x52cd8a['id']}})[_0x8b83('0x27')](function(_0x5e16d7){if(!_[_0x8b83('0x3c')](_0x5e16d7)){var _0x1e6c4b=[];for(var _0x117049=0x0;_0x117049<_0x5e16d7['length'];_0x117049+=0x1){var _0x1c7d95=_0x25d7f1[_0x8b83('0x24')][_0x8b83('0x3d')]({'where':{'ListId':_0x5e16d7[_0x117049]['ListId'],'ContactId':_0x5e16d7[_0x117049]['ContactId'],'VoiceQueueId':_0x5e16d7[_0x117049][_0x8b83('0x3e')],'CampaignId':_0x5e16d7[_0x117049][_0x8b83('0x3f')]}});_0x1e6c4b['push'](_0x1c7d95);}return BPromise[_0x8b83('0x40')](_0x1e6c4b);}})[_0x8b83('0x27')](function(_0x23080f){logger[_0x8b83('0x41')](_0x8b83('0x42'),util[_0x8b83('0x2a')](_0x23080f,{'showHidden':![],'depth':null}));_0x17502c();})['catch'](function(_0x906123){logger[_0x8b83('0x17')](_0x8b83('0x43'),util[_0x8b83('0x2a')](_0x906123,{'showHidden':![],'depth':null}));_0x17502c(_0x906123);});}}});};
\ No newline at end of file
+var _0xafc6=['ListId','priority','scheduledat','format','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','catch','then','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','cmContact,\x20afterCreate,\x20','create','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','VoiceQueue','dialCheckDuplicateType','CmList','Lists','length','always','outbound','BlackLists','CmHopperBlack','error','cmContact,\x20%s,\x20%s','message','Campaign','findAll','onlyIfOpen','List\x20not\x20found','isEmpty','destroy','ContactId','VoiceQueueId','CampaignId','push','all','[CmContact][afterDestroy][Succesfull]','[CmContact][afterDestroy][Error]','lodash','util','../../config/logger','api','moment','bluebird','path','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','fti_cm_contacts','firstName','lastName','fax','email','FULLTEXT','utf8mb4_unicode_ci','models','get','cmContact','afterCreate','inspect','CmHopper','findOne','isNil','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20'];(function(_0x288337,_0x1f4876){var _0x104cf1=function(_0x22b84f){while(--_0x22b84f){_0x288337['push'](_0x288337['shift']());}};_0x104cf1(++_0x1f4876);}(_0xafc6,0x180));var _0x6afc=function(_0x1477ef,_0x54a5d6){_0x1477ef=_0x1477ef-0x0;var _0x164acd=_0xafc6[_0x1477ef];return _0x164acd;};'use strict';var _=require(_0x6afc('0x0'));var util=require(_0x6afc('0x1'));var logger=require(_0x6afc('0x2'))(_0x6afc('0x3'));var moment=require(_0x6afc('0x4'));var BPromise=require(_0x6afc('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6afc('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x6afc('0x7'));module[_0x6afc('0x8')]=function(_0x461900,_0x31f2c0){return _0x461900[_0x6afc('0x9')](_0x6afc('0xa'),attributes,{'tableName':_0x6afc('0xb'),'paranoid':!![],'indexes':[{'name':_0x6afc('0xc'),'fields':[_0x6afc('0xc')]},{'name':_0x6afc('0xd'),'fields':[_0x6afc('0xe'),_0x6afc('0xf'),_0x6afc('0xc'),'mobile',_0x6afc('0x10'),_0x6afc('0x11')],'type':_0x6afc('0x12')}],'timestamps':!![],'charset':'utf8mb4','collate':_0x6afc('0x13'),'hooks':{'afterCreate':function(_0x16fcc3,_0x457d85,_0x51f8b1){var _0x3f7e75=_0x461900[_0x6afc('0x14')];var _0x3fcd66=_0x16fcc3[_0x6afc('0x15')]({'plain':!![]});function _0x422610(){return function(_0x8d8eaf){logger['error'](_0x6afc('0x16'),_0x6afc('0x17'),util[_0x6afc('0x18')](_0x8d8eaf,{'showHidden':![],'depth':null}));};}var _0x2e6f1b=function(_0x3a5509){return new BPromise(function(_0x3e179b,_0x3beb56){_0x3f7e75[_0x6afc('0x19')][_0x6afc('0x1a')]({'where':{'phone':_0x3fcd66[_0x6afc('0xc')],'VoiceQueueId':_0x3a5509['id']}})['then'](function(_0x1d52fc){if(!_[_0x6afc('0x1b')](_0x1d52fc)){throw new Error(_0x6afc('0x1c')+_0x3fcd66[_0x6afc('0xc')]+_0x6afc('0x1d')+_0x3a5509['id']);}return _0x3f7e75[_0x6afc('0x19')]['create']({'phone':_0x3fcd66['phone'],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66[_0x6afc('0x1e')],'priority':_0x3fcd66[_0x6afc('0x1f')]?_0x3fcd66['priority']:0x2,'scheduledat':_0x3fcd66[_0x6afc('0x20')]?_0x3fcd66[_0x6afc('0x20')]:moment()[_0x6afc('0x21')](_0x6afc('0x22')),'callback':_0x3fcd66[_0x6afc('0x23')]?!![]:![],'callbackuniqueid':_0x3fcd66[_0x6afc('0x23')]?_0x3fcd66['callbackUniqueid']:undefined,'callbackat':_0x3fcd66[_0x6afc('0x23')]?moment()[_0x6afc('0x21')](_0x6afc('0x22')):undefined,'VoiceQueueId':_0x3a5509['id']});})[_0x6afc('0x24')](function(_0x47ef1b){_0x3beb56(_0x47ef1b);});});};var _0x20a31b=function(_0xd9e099){return new BPromise(function(_0x151ff4,_0x35551a){_0x3f7e75[_0x6afc('0x19')][_0x6afc('0x1a')]({'where':{'phone':_0x3fcd66['phone'],'VoiceQueueId':_0xd9e099['id']}})[_0x6afc('0x25')](function(_0x4b317b){if(!_[_0x6afc('0x1b')](_0x4b317b)){throw new Error(_0x6afc('0x1c')+_0x3fcd66[_0x6afc('0xc')]+_0x6afc('0x26')+_0xd9e099['id']);}return _0x3f7e75[_0x6afc('0x27')][_0x6afc('0x1a')]({'where':{'calleridnum':_0x3fcd66['phone'],'VoiceQueueId':_0xd9e099['id']}});})[_0x6afc('0x25')](function(_0xc724d4){if(!_['isNil'](_0xc724d4)){throw new Error(_0x6afc('0x28')+_0x3fcd66['phone']+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20'+_0xd9e099['id']);}return _0x3f7e75['CmHopper'][_0x6afc('0x29')]({'phone':_0x3fcd66[_0x6afc('0xc')],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66[_0x6afc('0x1e')],'priority':_0x3fcd66['priority']?_0x3fcd66[_0x6afc('0x1f')]:0x2,'scheduledat':_0x3fcd66[_0x6afc('0x20')]?_0x3fcd66[_0x6afc('0x20')]:moment()[_0x6afc('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3fcd66[_0x6afc('0x23')]?!![]:![],'callbackuniqueid':_0x3fcd66['callbackUniqueid']?_0x3fcd66[_0x6afc('0x23')]:undefined,'callbackat':_0x3fcd66[_0x6afc('0x23')]?moment()[_0x6afc('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'VoiceQueueId':_0xd9e099['id']});})[_0x6afc('0x24')](function(_0x11a79d){_0x35551a(_0x11a79d);});});};function _0x3bebf6(){return function(_0x131a91){logger['error'](_0x6afc('0x16'),'afterCreate',util['inspect'](_0x131a91,{'showHidden':![],'depth':null}));};}var _0x5f2a2f=function(_0x3372e2){return new BPromise(function(_0x2bb19a,_0x5a9211){_0x3f7e75['CmHopper'][_0x6afc('0x1a')]({'where':{'phone':_0x3fcd66[_0x6afc('0xc')],'CampaignId':_0x3372e2['id']}})[_0x6afc('0x25')](function(_0x4a976e){if(!_[_0x6afc('0x1b')](_0x4a976e)){throw new Error(_0x6afc('0x1c')+_0x3fcd66[_0x6afc('0xc')]+_0x6afc('0x2a')+_0x3372e2['id']);}return _0x3f7e75[_0x6afc('0x19')][_0x6afc('0x29')]({'phone':_0x3fcd66['phone'],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66[_0x6afc('0x1e')],'priority':_0x3fcd66['priority']?_0x3fcd66[_0x6afc('0x1f')]:0x2,'scheduledat':_0x3fcd66[_0x6afc('0x20')]?_0x3fcd66[_0x6afc('0x20')]:moment()[_0x6afc('0x21')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3fcd66[_0x6afc('0x23')]?!![]:![],'callbackuniqueid':_0x3fcd66[_0x6afc('0x23')]?_0x3fcd66['callbackUniqueid']:undefined,'callbackat':_0x3fcd66['callbackUniqueid']?moment()['format'](_0x6afc('0x22')):undefined,'CampaignId':_0x3372e2['id']});})['catch'](function(_0x27f54b){_0x5a9211(_0x27f54b);});});};var _0x2af513=function(_0x506fe6){return new BPromise(function(_0x28a13e,_0x59d90a){_0x3f7e75['CmHopper'][_0x6afc('0x1a')]({'where':{'phone':_0x3fcd66[_0x6afc('0xc')],'CampaignId':_0x506fe6['id']}})[_0x6afc('0x25')](function(_0x326d2b){if(!_[_0x6afc('0x1b')](_0x326d2b)){throw new Error(_0x6afc('0x1c')+_0x3fcd66[_0x6afc('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0x506fe6['id']);}return _0x3f7e75[_0x6afc('0x27')][_0x6afc('0x1a')]({'where':{'calleridnum':_0x3fcd66[_0x6afc('0xc')],'CampaignId':_0x506fe6['id']}});})[_0x6afc('0x25')](function(_0x2de47a){if(!_[_0x6afc('0x1b')](_0x2de47a)){throw new Error(_0x6afc('0x28')+_0x3fcd66[_0x6afc('0xc')]+_0x6afc('0x2b')+_0x506fe6['id']);}return _0x3f7e75[_0x6afc('0x19')][_0x6afc('0x29')]({'phone':_0x3fcd66['phone'],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66[_0x6afc('0x1e')],'priority':_0x3fcd66[_0x6afc('0x1f')]?_0x3fcd66[_0x6afc('0x1f')]:0x2,'scheduledat':_0x3fcd66[_0x6afc('0x20')]?_0x3fcd66[_0x6afc('0x20')]:moment()['format'](_0x6afc('0x22')),'callback':_0x3fcd66[_0x6afc('0x23')]?!![]:![],'callbackuniqueid':_0x3fcd66[_0x6afc('0x23')]?_0x3fcd66[_0x6afc('0x23')]:undefined,'callbackat':_0x3fcd66[_0x6afc('0x23')]?moment()[_0x6afc('0x21')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x506fe6['id']});})[_0x6afc('0x24')](function(_0xe3be6){_0x59d90a(_0xe3be6);});});};if(_0x3fcd66[_0x6afc('0x1e')]){_0x3f7e75[_0x6afc('0x2c')]['findAll']({'where':{'type':'outbound'},'attributes':['id',_0x6afc('0x2d')],'include':[{'model':_0x3f7e75[_0x6afc('0x2e')],'as':_0x6afc('0x2f'),'where':{'id':_0x3fcd66[_0x6afc('0x1e')]}}]})['then'](function(_0x27be97){if(_0x27be97){var _0xbf840c=[];for(var _0x300032=0x0,_0x17cdb1;_0x300032<_0x27be97[_0x6afc('0x30')];_0x300032+=0x1){_0x17cdb1=_0x27be97[_0x300032][_0x6afc('0x15')]({'plain':!![]});switch(_0x17cdb1[_0x6afc('0x2d')]){case _0x6afc('0x31'):_0x20a31b(_0x17cdb1)[_0x6afc('0x24')](_0x422610());break;case'onlyIfOpen':_0x2e6f1b(_0x17cdb1)['catch'](_0x422610());break;default:_0x3f7e75[_0x6afc('0x19')][_0x6afc('0x29')]({'phone':_0x3fcd66[_0x6afc('0xc')],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66[_0x6afc('0x1e')],'scheduledat':_0x3fcd66[_0x6afc('0x20')]?_0x3fcd66['scheduledat']:moment()['format'](_0x6afc('0x22')),'priority':_0x3fcd66['priority']?_0x3fcd66['priority']:0x2,'callback':_0x3fcd66[_0x6afc('0x23')]?!![]:![],'callbackuniqueid':_0x3fcd66[_0x6afc('0x23')]?_0x3fcd66[_0x6afc('0x23')]:undefined,'callbackat':_0x3fcd66[_0x6afc('0x23')]?moment()['format'](_0x6afc('0x22')):undefined,'VoiceQueueId':_0x17cdb1['id']})[_0x6afc('0x24')](_0x422610());}}}})[_0x6afc('0x25')](function(){return _0x3f7e75[_0x6afc('0x2c')]['findAll']({'where':{'type':_0x6afc('0x32')},'attributes':['id'],'include':[{'model':_0x3f7e75['CmList'],'as':_0x6afc('0x33'),'where':{'id':_0x3fcd66[_0x6afc('0x1e')]}}]})[_0x6afc('0x25')](function(_0x2462a6){if(_0x2462a6){var _0x8fa86=[];for(var _0x325b58=0x0,_0x5d8bd4;_0x325b58<_0x2462a6[_0x6afc('0x30')];_0x325b58+=0x1){_0x5d8bd4=_0x2462a6[_0x325b58]['get']({'plain':!![]});_0x3f7e75[_0x6afc('0x34')][_0x6afc('0x29')]({'phone':_0x3fcd66[_0x6afc('0xc')],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66['ListId'],'VoiceQueueId':_0x5d8bd4['id']})[_0x6afc('0x24')](function(_0x4b0639){logger[_0x6afc('0x35')](_0x6afc('0x36'),_0x6afc('0x17'),_0x4b0639[_0x6afc('0x37')]);});}}});})[_0x6afc('0x25')](function(){return _0x3f7e75[_0x6afc('0x38')][_0x6afc('0x39')]({'attributes':['id',_0x6afc('0x2d')],'include':[{'model':_0x3f7e75[_0x6afc('0x2e')],'as':'Lists','where':{'id':_0x3fcd66[_0x6afc('0x1e')]}}]})[_0x6afc('0x25')](function(_0x530fb1){if(_0x530fb1){var _0x3a2b64=[];for(var _0x1e0051=0x0,_0x316720;_0x1e0051<_0x530fb1[_0x6afc('0x30')];_0x1e0051+=0x1){_0x316720=_0x530fb1[_0x1e0051][_0x6afc('0x15')]({'plain':!![]});switch(_0x316720[_0x6afc('0x2d')]){case _0x6afc('0x31'):_0x2af513(_0x316720)[_0x6afc('0x24')](_0x3bebf6());break;case _0x6afc('0x3a'):_0x5f2a2f(_0x316720)[_0x6afc('0x24')](_0x3bebf6());break;default:_0x3f7e75['CmHopper'][_0x6afc('0x29')]({'phone':_0x3fcd66[_0x6afc('0xc')],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66['ListId'],'scheduledat':_0x3fcd66[_0x6afc('0x20')]?_0x3fcd66[_0x6afc('0x20')]:moment()['format'](_0x6afc('0x22')),'priority':_0x3fcd66['priority']?_0x3fcd66[_0x6afc('0x1f')]:0x2,'callback':_0x3fcd66[_0x6afc('0x23')]?!![]:![],'callbackuniqueid':_0x3fcd66[_0x6afc('0x23')]?_0x3fcd66[_0x6afc('0x23')]:undefined,'callbackat':_0x3fcd66[_0x6afc('0x23')]?moment()[_0x6afc('0x21')](_0x6afc('0x22')):undefined,'CampaignId':_0x316720['id']})[_0x6afc('0x24')](_0x3bebf6());}}}});})['then'](function(){return _0x3f7e75[_0x6afc('0x38')][_0x6afc('0x39')]({'attributes':['id'],'include':[{'model':_0x3f7e75[_0x6afc('0x2e')],'as':'BlackLists','where':{'id':_0x3fcd66[_0x6afc('0x1e')]}}]})[_0x6afc('0x25')](function(_0x4358f7){if(_0x4358f7){var _0x309857=[];for(var _0x5dde98=0x0,_0x19334c;_0x5dde98<_0x4358f7['length'];_0x5dde98+=0x1){_0x19334c=_0x4358f7[_0x5dde98][_0x6afc('0x15')]({'plain':!![]});_0x3f7e75[_0x6afc('0x34')][_0x6afc('0x29')]({'phone':_0x3fcd66[_0x6afc('0xc')],'ContactId':_0x3fcd66['id'],'ListId':_0x3fcd66[_0x6afc('0x1e')],'CampaignId':_0x19334c['id']})[_0x6afc('0x24')](function(_0x57ca76){logger['error']('cmContact,\x20%s,\x20%s',_0x6afc('0x17'),_0x57ca76[_0x6afc('0x37')]);});}}});})['then'](function(){_0x51f8b1();})[_0x6afc('0x24')](function(_0x26d2e8){logger[_0x6afc('0x35')]('cmContact,\x20%s,\x20%s','afterCreate',_0x26d2e8['message']);_0x51f8b1(_0x26d2e8);});}else{_0x51f8b1(new Error(_0x6afc('0x3b')));}},'afterDestroy':function(_0x192851,_0x32ec64,_0x41902b){var _0x5cfaba=_0x461900[_0x6afc('0x14')];var _0x1f974f=_0x192851['get']({'plain':!![]});return _0x5cfaba[_0x6afc('0x19')]['findAll']({'raw':!![],'where':{'ListId':_0x1f974f[_0x6afc('0x1e')],'ContactId':_0x1f974f['id']}})['then'](function(_0x500a5f){if(!_[_0x6afc('0x3c')](_0x500a5f)){var _0xa46770=[];for(var _0x10e851=0x0;_0x10e851<_0x500a5f[_0x6afc('0x30')];_0x10e851+=0x1){var _0x6da675=_0x5cfaba[_0x6afc('0x19')][_0x6afc('0x3d')]({'where':{'ListId':_0x500a5f[_0x10e851][_0x6afc('0x1e')],'ContactId':_0x500a5f[_0x10e851][_0x6afc('0x3e')],'VoiceQueueId':_0x500a5f[_0x10e851][_0x6afc('0x3f')],'CampaignId':_0x500a5f[_0x10e851][_0x6afc('0x40')]}});_0xa46770[_0x6afc('0x41')](_0x6da675);}return BPromise[_0x6afc('0x42')](_0xa46770);}})[_0x6afc('0x25')](function(_0x347a6f){logger['info'](_0x6afc('0x43'),util[_0x6afc('0x18')](_0x347a6f,{'showHidden':![],'depth':null}));_0x41902b();})[_0x6afc('0x24')](function(_0x435cb4){logger[_0x6afc('0x35')](_0x6afc('0x44'),util[_0x6afc('0x18')](_0x435cb4,{'showHidden':![],'depth':null}));_0x41902b(_0x435cb4);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f05=['CmContact','findAll','options','raw','where','attributes','include','map','model','GetCmContact','CreateCmContact','create','keys','body','startsWith','cf_','table','cm_contacts','set','toString','sequelize','query','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','defaults','localhost','register','request','then','info','CmContact,\x20%s,\x20%s','debug','CmContact,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x11f249,_0x4ca4a8){var _0x5c3656=function(_0x27c9f8){while(--_0x27c9f8){_0x11f249['push'](_0x11f249['shift']());}};_0x5c3656(++_0x4ca4a8);}(_0x4f05,0x136));var _0x54f0=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0x4f05[_0x2064e5];return _0x21a233;};'use strict';var _=require(_0x54f0('0x0'));var util=require(_0x54f0('0x1'));var moment=require(_0x54f0('0x2'));var BPromise=require(_0x54f0('0x3'));var rs=require(_0x54f0('0x4'));var fs=require('fs');var Redis=require(_0x54f0('0x5'));var squel=require('squel');var db=require(_0x54f0('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x54f0('0x7'))('rpc');var config=require(_0x54f0('0x8'));var jayson=require(_0x54f0('0x9'));var client=jayson[_0x54f0('0xa')]['http']({'port':0x232a});config['redis']=_[_0x54f0('0xb')](config['redis'],{'host':_0x54f0('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./cmContact.socket')[_0x54f0('0xd')](socket);function respondWithRpcPromise(_0x227a09,_0x38bba1,_0x50aa4c){return new BPromise(function(_0x4d6ef5,_0x11ff6b){return client[_0x54f0('0xe')](_0x227a09,_0x50aa4c)[_0x54f0('0xf')](function(_0x33acaa){logger[_0x54f0('0x10')](_0x54f0('0x11'),_0x38bba1,'request\x20sent');logger[_0x54f0('0x12')](_0x54f0('0x13'),_0x38bba1,'request\x20sent',JSON[_0x54f0('0x14')](_0x33acaa));if(_0x33acaa['error']){if(_0x33acaa[_0x54f0('0x15')][_0x54f0('0x16')]===0x1f4){logger[_0x54f0('0x15')]('CmContact,\x20%s,\x20%s',_0x38bba1,_0x33acaa['error']['message']);return _0x11ff6b(_0x33acaa[_0x54f0('0x15')][_0x54f0('0x17')]);}logger[_0x54f0('0x15')]('CmContact,\x20%s,\x20%s',_0x38bba1,_0x33acaa[_0x54f0('0x15')]['message']);return _0x4d6ef5(_0x33acaa[_0x54f0('0x15')][_0x54f0('0x17')]);}else{logger[_0x54f0('0x10')]('CmContact,\x20%s,\x20%s',_0x38bba1,'request\x20sent');_0x4d6ef5(_0x33acaa[_0x54f0('0x18')][_0x54f0('0x17')]);}})[_0x54f0('0x19')](function(_0x11488d){logger[_0x54f0('0x15')](_0x54f0('0x11'),_0x38bba1,_0x11488d);_0x11ff6b(_0x11488d);});});}exports['GetCmContact']=function(_0x52fdfd){var _0x521d05=this;return new Promise(function(_0x532012,_0x589339){return db[_0x54f0('0x1a')][_0x54f0('0x1b')]({'raw':_0x52fdfd[_0x54f0('0x1c')]?_0x52fdfd['options'][_0x54f0('0x1d')]===undefined?!![]:![]:!![],'where':_0x52fdfd[_0x54f0('0x1c')]?_0x52fdfd[_0x54f0('0x1c')][_0x54f0('0x1e')]||null:null,'attributes':_0x52fdfd[_0x54f0('0x1c')]?_0x52fdfd[_0x54f0('0x1c')][_0x54f0('0x1f')]||null:null,'limit':_0x52fdfd[_0x54f0('0x1c')]?_0x52fdfd['options']['limit']||null:null,'include':_0x52fdfd[_0x54f0('0x1c')]?_0x52fdfd[_0x54f0('0x1c')][_0x54f0('0x20')]?_[_0x54f0('0x21')](_0x52fdfd[_0x54f0('0x1c')][_0x54f0('0x20')],function(_0x511013){return{'model':db[_0x511013[_0x54f0('0x22')]],'as':_0x511013['as'],'attributes':_0x511013['attributes'],'include':_0x511013['include']?_['map'](_0x511013['include'],function(_0xe9f339){return{'model':db[_0xe9f339[_0x54f0('0x22')]],'as':_0xe9f339['as'],'attributes':_0xe9f339[_0x54f0('0x1f')],'include':_0xe9f339[_0x54f0('0x20')]?_[_0x54f0('0x21')](_0xe9f339[_0x54f0('0x20')],function(_0x43323c){return{'model':db[_0x43323c[_0x54f0('0x22')]],'as':_0x43323c['as'],'attributes':_0x43323c[_0x54f0('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4c3cf9){logger['info'](_0x54f0('0x23'),_0x52fdfd);logger[_0x54f0('0x12')](_0x54f0('0x23'),_0x52fdfd,JSON[_0x54f0('0x14')](_0x4c3cf9));_0x532012(_0x4c3cf9);})['catch'](function(_0x2353c8){logger[_0x54f0('0x15')](_0x54f0('0x23'),_0x2353c8['message'],_0x52fdfd);_0x589339(_0x521d05[_0x54f0('0x15')](0x1f4,_0x2353c8[_0x54f0('0x17')]));});});};exports[_0x54f0('0x24')]=function(_0x7bda25){var _0x6cffe7=this;return new Promise(function(_0x1a9072,_0x55767b){return db[_0x54f0('0x1a')][_0x54f0('0x25')](_0x7bda25['body'],{'raw':_0x7bda25[_0x54f0('0x1c')]?_0x7bda25['options'][_0x54f0('0x1d')]===undefined?!![]:![]:!![]})[_0x54f0('0xf')](function(_0x438fd9){var _0x275ace;for(var _0x4807b6=0x0;_0x4807b6<Object[_0x54f0('0x26')](_0x7bda25[_0x54f0('0x27')])['length'];_0x4807b6++){var _0x415079=Object[_0x54f0('0x26')](_0x7bda25['body'])[_0x4807b6];if(_0x415079[_0x54f0('0x28')](_0x54f0('0x29'))){_0x275ace=squel['update']()[_0x54f0('0x2a')](_0x54f0('0x2b'))[_0x54f0('0x2c')](_0x415079,_0x7bda25['body'][_0x415079])[_0x54f0('0x1e')]('id\x20=\x20?',_0x438fd9['id'])[_0x54f0('0x2d')]();break;}}if(!_0x275ace)return _0x438fd9;return db[_0x54f0('0x2e')][_0x54f0('0x2f')](_0x275ace)[_0x54f0('0xf')](function(){return _0x438fd9;});})[_0x54f0('0xf')](function(_0x393479){logger[_0x54f0('0x10')]('CreateCmContact',_0x7bda25);logger[_0x54f0('0x12')]('CreateCmContact',_0x7bda25,JSON[_0x54f0('0x14')](_0x393479));_0x1a9072(_0x393479);})['catch'](function(_0x45e070){logger[_0x54f0('0x15')]('CreateCmContact',_0x45e070[_0x54f0('0x17')],_0x7bda25);_0x55767b(_0x6cffe7['error'](0x1f4,_0x45e070[_0x54f0('0x17')]));});});};
\ No newline at end of file
+var _0x60ac=['sequelize','moment','randomstring','ioredis','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./cmContact.socket','register','request','then','info','CmContact,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','GetCmContact','CmContact','findAll','options','where','include','map','model','attributes','catch','CreateCmContact','body','keys','length','startsWith','cf_','update','cm_contacts','set','toString'];(function(_0x472230,_0x54e89f){var _0x3150b6=function(_0x314972){while(--_0x314972){_0x472230['push'](_0x472230['shift']());}};_0x3150b6(++_0x54e89f);}(_0x60ac,0xb1));var _0xc60a=function(_0x274f0a,_0x2d010d){_0x274f0a=_0x274f0a-0x0;var _0x2adadc=_0x60ac[_0x274f0a];return _0x2adadc;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc60a('0x0'));var BPromise=require('bluebird');var rs=require(_0xc60a('0x1'));var fs=require('fs');var Redis=require(_0xc60a('0x2'));var squel=require('squel');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xc60a('0x3'));var jayson=require(_0xc60a('0x4'));var client=jayson[_0xc60a('0x5')][_0xc60a('0x6')]({'port':0x232a});config[_0xc60a('0x7')]=_['defaults'](config[_0xc60a('0x7')],{'host':_0xc60a('0x8'),'port':0x18eb});var socket=require(_0xc60a('0x9'))(new Redis(config['redis']));require(_0xc60a('0xa'))[_0xc60a('0xb')](socket);function respondWithRpcPromise(_0x514409,_0x58652d,_0x53ddf8){return new BPromise(function(_0x42ef22,_0x4f8579){return client[_0xc60a('0xc')](_0x514409,_0x53ddf8)[_0xc60a('0xd')](function(_0x2cdf8b){logger[_0xc60a('0xe')](_0xc60a('0xf'),_0x58652d,_0xc60a('0x10'));logger[_0xc60a('0x11')]('CmContact,\x20%s,\x20%s,\x20%s',_0x58652d,_0xc60a('0x10'),JSON[_0xc60a('0x12')](_0x2cdf8b));if(_0x2cdf8b[_0xc60a('0x13')]){if(_0x2cdf8b[_0xc60a('0x13')][_0xc60a('0x14')]===0x1f4){logger[_0xc60a('0x13')](_0xc60a('0xf'),_0x58652d,_0x2cdf8b[_0xc60a('0x13')][_0xc60a('0x15')]);return _0x4f8579(_0x2cdf8b['error'][_0xc60a('0x15')]);}logger[_0xc60a('0x13')]('CmContact,\x20%s,\x20%s',_0x58652d,_0x2cdf8b['error'][_0xc60a('0x15')]);return _0x42ef22(_0x2cdf8b[_0xc60a('0x13')][_0xc60a('0x15')]);}else{logger[_0xc60a('0xe')](_0xc60a('0xf'),_0x58652d,_0xc60a('0x10'));_0x42ef22(_0x2cdf8b[_0xc60a('0x16')][_0xc60a('0x15')]);}})['catch'](function(_0x4a1192){logger[_0xc60a('0x13')](_0xc60a('0xf'),_0x58652d,_0x4a1192);_0x4f8579(_0x4a1192);});});}exports[_0xc60a('0x17')]=function(_0x2ab930){var _0x16d727=this;return new Promise(function(_0x4a5c57,_0x44f921){return db[_0xc60a('0x18')][_0xc60a('0x19')]({'raw':_0x2ab930[_0xc60a('0x1a')]?_0x2ab930[_0xc60a('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x2ab930[_0xc60a('0x1a')]?_0x2ab930['options'][_0xc60a('0x1b')]||null:null,'attributes':_0x2ab930[_0xc60a('0x1a')]?_0x2ab930[_0xc60a('0x1a')]['attributes']||null:null,'limit':_0x2ab930[_0xc60a('0x1a')]?_0x2ab930[_0xc60a('0x1a')]['limit']||null:null,'include':_0x2ab930[_0xc60a('0x1a')]?_0x2ab930[_0xc60a('0x1a')][_0xc60a('0x1c')]?_[_0xc60a('0x1d')](_0x2ab930[_0xc60a('0x1a')][_0xc60a('0x1c')],function(_0x4c9eaf){return{'model':db[_0x4c9eaf[_0xc60a('0x1e')]],'as':_0x4c9eaf['as'],'attributes':_0x4c9eaf['attributes'],'include':_0x4c9eaf[_0xc60a('0x1c')]?_[_0xc60a('0x1d')](_0x4c9eaf[_0xc60a('0x1c')],function(_0x27355f){return{'model':db[_0x27355f[_0xc60a('0x1e')]],'as':_0x27355f['as'],'attributes':_0x27355f[_0xc60a('0x1f')],'include':_0x27355f[_0xc60a('0x1c')]?_[_0xc60a('0x1d')](_0x27355f[_0xc60a('0x1c')],function(_0x411c9f){return{'model':db[_0x411c9f['model']],'as':_0x411c9f['as'],'attributes':_0x411c9f[_0xc60a('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xc60a('0xd')](function(_0x4c8beb){logger[_0xc60a('0xe')](_0xc60a('0x17'),_0x2ab930);logger[_0xc60a('0x11')](_0xc60a('0x17'),_0x2ab930,JSON['stringify'](_0x4c8beb));_0x4a5c57(_0x4c8beb);})[_0xc60a('0x20')](function(_0x3d679b){logger[_0xc60a('0x13')]('GetCmContact',_0x3d679b[_0xc60a('0x15')],_0x2ab930);_0x44f921(_0x16d727[_0xc60a('0x13')](0x1f4,_0x3d679b[_0xc60a('0x15')]));});});};exports[_0xc60a('0x21')]=function(_0x20dd0e){var _0x5eb995=this;return new Promise(function(_0x95176c,_0x800ee4){return db[_0xc60a('0x18')]['create'](_0x20dd0e[_0xc60a('0x22')],{'raw':_0x20dd0e[_0xc60a('0x1a')]?_0x20dd0e[_0xc60a('0x1a')]['raw']===undefined?!![]:![]:!![]})[_0xc60a('0xd')](function(_0x1216a0){var _0x566a31;for(var _0x2b83c3=0x0;_0x2b83c3<Object[_0xc60a('0x23')](_0x20dd0e['body'])[_0xc60a('0x24')];_0x2b83c3++){var _0x47f460=Object[_0xc60a('0x23')](_0x20dd0e[_0xc60a('0x22')])[_0x2b83c3];if(_0x47f460[_0xc60a('0x25')](_0xc60a('0x26'))){_0x566a31=squel[_0xc60a('0x27')]()['table'](_0xc60a('0x28'))[_0xc60a('0x29')](_0x47f460,_0x20dd0e[_0xc60a('0x22')][_0x47f460])[_0xc60a('0x1b')]('id\x20=\x20?',_0x1216a0['id'])[_0xc60a('0x2a')]();break;}}if(!_0x566a31)return _0x1216a0;return db[_0xc60a('0x2b')]['query'](_0x566a31)[_0xc60a('0xd')](function(){return _0x1216a0;});})[_0xc60a('0xd')](function(_0x8de16a){logger[_0xc60a('0xe')](_0xc60a('0x21'),_0x20dd0e);logger[_0xc60a('0x11')](_0xc60a('0x21'),_0x20dd0e,JSON[_0xc60a('0x12')](_0x8de16a));_0x95176c(_0x8de16a);})[_0xc60a('0x20')](function(_0x23f32c){logger[_0xc60a('0x13')](_0xc60a('0x21'),_0x23f32c[_0xc60a('0x15')],_0x20dd0e);_0x800ee4(_0x5eb995[_0xc60a('0x13')](0x1f4,_0x23f32c[_0xc60a('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0xa9e0[_0x1ac595];return _0x455fff;};'use strict';var CmContactEvents=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(){CmContactEvents[_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);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1c546c,_0x5c57cb){_0x1c546c=_0x1c546c-0x0;var _0x2cc384=_0xa9e0[_0x1c546c];return _0x2cc384;};'use strict';var CmContactEvents=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(){CmContactEvents[_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);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x180c=['server/files/tmp','originalname','format','%s-%s%s','basename','now','extname','single','replace','file','upload','/upload/:id','import','put','update','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','./cmContact.controller','isAuthenticated','index','get','/describe','/:id','show','/:id/tags','getTags','getHoppers','/:id/hopper_histories','getHopperHistories','getHopperFinals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney','post','merge','create','bulkCreate','setTags','diskStorage','join','root'];(function(_0x37bc30,_0xf9e780){var _0x556780=function(_0x3fdabe){while(--_0x3fdabe){_0x37bc30['push'](_0x37bc30['shift']());}};_0x556780(++_0xf9e780);}(_0x180c,0x131));var _0xc180=function(_0x48d4e2,_0x4339ea){_0x48d4e2=_0x48d4e2-0x0;var _0x4a5aa0=_0x180c[_0x48d4e2];return _0x4a5aa0;};'use strict';var multer=require(_0xc180('0x0'));var util=require('util');var path=require(_0xc180('0x1'));var timeout=require(_0xc180('0x2'));var express=require(_0xc180('0x3'));var router=express[_0xc180('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xc180('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xc180('0x6'));router['get']('/',auth[_0xc180('0x7')](),controller[_0xc180('0x8')]);router[_0xc180('0x9')](_0xc180('0xa'),auth[_0xc180('0x7')](),controller['describe']);router[_0xc180('0x9')](_0xc180('0xb'),auth[_0xc180('0x7')](),controller[_0xc180('0xc')]);router[_0xc180('0x9')](_0xc180('0xd'),auth[_0xc180('0x7')](),controller[_0xc180('0xe')]);router[_0xc180('0x9')]('/:id/hoppers',auth[_0xc180('0x7')](),controller[_0xc180('0xf')]);router['get'](_0xc180('0x10'),auth[_0xc180('0x7')](),controller[_0xc180('0x11')]);router[_0xc180('0x9')]('/:id/hopper_finals',auth['isAuthenticated'](),controller[_0xc180('0x12')]);router['get'](_0xc180('0x13'),auth[_0xc180('0x7')](),controller[_0xc180('0x14')]);router[_0xc180('0x9')](_0xc180('0x15'),auth[_0xc180('0x7')](),controller[_0xc180('0x16')]);router[_0xc180('0x17')]('/merge',auth[_0xc180('0x7')](),controller[_0xc180('0x18')]);router[_0xc180('0x17')]('/',auth['isAuthenticated'](),controller[_0xc180('0x19')]);router[_0xc180('0x17')]('/create_many',auth[_0xc180('0x7')](),controller[_0xc180('0x1a')]);router[_0xc180('0x17')](_0xc180('0xd'),auth[_0xc180('0x7')](),controller[_0xc180('0x1b')]);var upload=multer({'storage':multer[_0xc180('0x1c')]({'destination':function(_0x58e81a,_0x1c9729,_0x250a46){_0x250a46(null,path[_0xc180('0x1d')](config[_0xc180('0x1e')],_0xc180('0x1f')));},'filename':function(_0x47f4c3,_0x1028fb,_0x508f48){_0x1028fb['originalname']=_0x1028fb[_0xc180('0x20')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x508f48(null,util[_0xc180('0x21')](_0xc180('0x22'),path[_0xc180('0x23')](_0x1028fb[_0xc180('0x20')],path['extname'](_0x1028fb[_0xc180('0x20')])),Date[_0xc180('0x24')](),path[_0xc180('0x25')](_0x1028fb[_0xc180('0x20')])));}})});router[_0xc180('0x17')]('/csv',upload[_0xc180('0x26')]('file'),controller['uploadCsv']);var upload=multer({'storage':multer[_0xc180('0x1c')]({'destination':function(_0x1b66d4,_0x6cc7fc,_0x36d965){_0x36d965(null,path[_0xc180('0x1d')](config['root'],'server/files/tmp'));},'filename':function(_0x15702e,_0x587010,_0xfe1880){_0x587010[_0xc180('0x20')]=_0x587010['originalname'][_0xc180('0x27')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0xfe1880(null,util[_0xc180('0x21')](_0xc180('0x22'),path[_0xc180('0x23')](_0x587010[_0xc180('0x20')],path[_0xc180('0x25')](_0x587010['originalname'])),Date['now'](),path[_0xc180('0x25')](_0x587010[_0xc180('0x20')])));}})});router[_0xc180('0x17')]('/upload',upload[_0xc180('0x26')](_0xc180('0x28')),controller[_0xc180('0x29')]);router[_0xc180('0x17')](_0xc180('0x2a'),auth[_0xc180('0x7')](),controller[_0xc180('0x2b')]);router[_0xc180('0x2c')](_0xc180('0xb'),auth[_0xc180('0x7')](),controller[_0xc180('0x2d')]);router['delete'](_0xc180('0xb'),auth[_0xc180('0x7')](),controller[_0xc180('0x2e')]);module[_0xc180('0x2f')]=router;
\ No newline at end of file
+var _0xc1df=['file','uploadCsv','%s-%s%s','now','/upload','upload','import','put','/:id','update','delete','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmContact.controller','get','isAuthenticated','index','describe','show','/:id/tags','getTags','getHoppers','getHopperHistories','/:id/hopper_finals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney','post','/merge','merge','create','/create_many','bulkCreate','setTags','diskStorage','join','root','server/files/tmp','originalname','format','basename','extname','/csv','single'];(function(_0x4ec028,_0x3583b4){var _0x2ad670=function(_0x381986){while(--_0x381986){_0x4ec028['push'](_0x4ec028['shift']());}};_0x2ad670(++_0x3583b4);}(_0xc1df,0x1df));var _0xfc1d=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xc1df[_0x42cae2];return _0x5f256f;};'use strict';var multer=require('multer');var util=require(_0xfc1d('0x0'));var path=require(_0xfc1d('0x1'));var timeout=require(_0xfc1d('0x2'));var express=require(_0xfc1d('0x3'));var router=express[_0xfc1d('0x4')]();var fs_extra=require(_0xfc1d('0x5'));var auth=require(_0xfc1d('0x6'));var interaction=require(_0xfc1d('0x7'));var config=require(_0xfc1d('0x8'));var controller=require(_0xfc1d('0x9'));router[_0xfc1d('0xa')]('/',auth[_0xfc1d('0xb')](),controller[_0xfc1d('0xc')]);router['get']('/describe',auth[_0xfc1d('0xb')](),controller[_0xfc1d('0xd')]);router[_0xfc1d('0xa')]('/:id',auth['isAuthenticated'](),controller[_0xfc1d('0xe')]);router[_0xfc1d('0xa')](_0xfc1d('0xf'),auth['isAuthenticated'](),controller[_0xfc1d('0x10')]);router['get']('/:id/hoppers',auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x11')]);router[_0xfc1d('0xa')]('/:id/hopper_histories',auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x12')]);router[_0xfc1d('0xa')](_0xfc1d('0x13'),auth[_0xfc1d('0xb')](),controller['getHopperFinals']);router['get'](_0xfc1d('0x14'),auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x15')]);router[_0xfc1d('0xa')](_0xfc1d('0x16'),auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x17')]);router[_0xfc1d('0x18')](_0xfc1d('0x19'),auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x1a')]);router[_0xfc1d('0x18')]('/',auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x1b')]);router[_0xfc1d('0x18')](_0xfc1d('0x1c'),auth['isAuthenticated'](),controller[_0xfc1d('0x1d')]);router['post'](_0xfc1d('0xf'),auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x1e')]);var upload=multer({'storage':multer[_0xfc1d('0x1f')]({'destination':function(_0x64cbb6,_0xc84605,_0xea96fd){_0xea96fd(null,path[_0xfc1d('0x20')](config[_0xfc1d('0x21')],_0xfc1d('0x22')));},'filename':function(_0x168b26,_0x3a68d8,_0x421eb5){_0x3a68d8['originalname']=_0x3a68d8[_0xfc1d('0x23')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x421eb5(null,util[_0xfc1d('0x24')]('%s-%s%s',path[_0xfc1d('0x25')](_0x3a68d8[_0xfc1d('0x23')],path[_0xfc1d('0x26')](_0x3a68d8[_0xfc1d('0x23')])),Date['now'](),path[_0xfc1d('0x26')](_0x3a68d8[_0xfc1d('0x23')])));}})});router[_0xfc1d('0x18')](_0xfc1d('0x27'),upload[_0xfc1d('0x28')](_0xfc1d('0x29')),controller[_0xfc1d('0x2a')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x202df1,_0x1520f6,_0x37a0f3){_0x37a0f3(null,path[_0xfc1d('0x20')](config['root'],_0xfc1d('0x22')));},'filename':function(_0x570f78,_0x44fb69,_0x4f2a2c){_0x44fb69[_0xfc1d('0x23')]=_0x44fb69[_0xfc1d('0x23')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x4f2a2c(null,util['format'](_0xfc1d('0x2b'),path[_0xfc1d('0x25')](_0x44fb69[_0xfc1d('0x23')],path[_0xfc1d('0x26')](_0x44fb69[_0xfc1d('0x23')])),Date[_0xfc1d('0x2c')](),path['extname'](_0x44fb69[_0xfc1d('0x23')])));}})});router[_0xfc1d('0x18')](_0xfc1d('0x2d'),upload[_0xfc1d('0x28')](_0xfc1d('0x29')),controller[_0xfc1d('0x2e')]);router[_0xfc1d('0x18')]('/upload/:id',auth['isAuthenticated'](),controller[_0xfc1d('0x2f')]);router[_0xfc1d('0x30')](_0xfc1d('0x31'),auth[_0xfc1d('0xb')](),controller[_0xfc1d('0x32')]);router[_0xfc1d('0x33')]('/:id',auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x348d=['STRING','name','TEXT','long','type','select','parse','values','isArray','setDataValue','stringify','BOOLEAN','sequelize','exports','getDataValue','alias'];(function(_0x2deb59,_0x4c7915){var _0x41cca4=function(_0x191d9d){while(--_0x191d9d){_0x2deb59['push'](_0x2deb59['shift']());}};_0x41cca4(++_0x4c7915);}(_0x348d,0xac));var _0xd348=function(_0x5a6961,_0xd41ca6){_0x5a6961=_0x5a6961-0x0;var _0x4af0a6=_0x348d[_0x5a6961];return _0x4af0a6;};'use strict';var Sequelize=require(_0xd348('0x0'));var _=require('lodash');module[_0xd348('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x462af5){return this[_0xd348('0x2')](_0xd348('0x3'));}},'alias':{'type':Sequelize[_0xd348('0x4')],'allowNull':![],'set':function(_0x6a49fb){this['setDataValue'](_0xd348('0x3'),_0x6a49fb?_0x6a49fb:this[_0xd348('0x2')](_0xd348('0x5')));}},'type':{'type':Sequelize[_0xd348('0x4')],'allowNull':![]},'values':{'type':Sequelize[_0xd348('0x6')](_0xd348('0x7')),'get':function(){if(this[_0xd348('0x2')](_0xd348('0x8'))===_0xd348('0x9')){return JSON[_0xd348('0xa')](this[_0xd348('0x2')](_0xd348('0xb')));}else{return this[_0xd348('0x2')](_0xd348('0xb'));}},'set':function(_0x4c0bf3){if(Array[_0xd348('0xc')](_0x4c0bf3)){this[_0xd348('0xd')](_0xd348('0xb'),JSON[_0xd348('0xe')](_0x4c0bf3));}else{this['setDataValue'](_0xd348('0xb'),_0x4c0bf3);}}},'required':{'type':Sequelize[_0xd348('0xf')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0xd348('0xf')],'defaultValue':![]},'actionType':{'type':Sequelize['ENUM']('voice')}};
\ No newline at end of file
+var _0x4b1b=['setDataValue','name','STRING','TEXT','long','parse','values','isArray','stringify','BOOLEAN','ENUM','sequelize','lodash','getDataValue','alias'];(function(_0x40a740,_0x5e1944){var _0x2b5bbb=function(_0x2b3bed){while(--_0x2b3bed){_0x40a740['push'](_0x40a740['shift']());}};_0x2b5bbb(++_0x5e1944);}(_0x4b1b,0x92));var _0xb4b1=function(_0x454f6c,_0x5c1d65){_0x454f6c=_0x454f6c-0x0;var _0xdbb6d=_0x4b1b[_0x454f6c];return _0xdbb6d;};'use strict';var Sequelize=require(_0xb4b1('0x0'));var _=require(_0xb4b1('0x1'));module['exports']={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x57ad43){return this[_0xb4b1('0x2')](_0xb4b1('0x3'));}},'alias':{'type':Sequelize['STRING'],'allowNull':![],'set':function(_0x25b46a){this[_0xb4b1('0x4')](_0xb4b1('0x3'),_0x25b46a?_0x25b46a:this[_0xb4b1('0x2')](_0xb4b1('0x5')));}},'type':{'type':Sequelize[_0xb4b1('0x6')],'allowNull':![]},'values':{'type':Sequelize[_0xb4b1('0x7')](_0xb4b1('0x8')),'get':function(){if(this['getDataValue']('type')==='select'){return JSON[_0xb4b1('0x9')](this[_0xb4b1('0x2')]('values'));}else{return this[_0xb4b1('0x2')](_0xb4b1('0xa'));}},'set':function(_0x2c8696){if(Array[_0xb4b1('0xb')](_0x2c8696)){this[_0xb4b1('0x4')](_0xb4b1('0xa'),JSON[_0xb4b1('0xc')](_0x2c8696));}else{this[_0xb4b1('0x4')]('values',_0x2c8696);}}},'required':{'type':Sequelize[_0xb4b1('0xd')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0xb4b1('0xd')],'defaultValue':![]},'actionType':{'type':Sequelize[_0xb4b1('0xe')]('voice')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2384=['body','destroy','sequelize','transaction','create','Sequelize','TEXT','number','INTEGER','switch','BOOLEAN','defaultValue','addColumn','cm_contacts','format','cf_%d','eml-format','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','end','stack','name','index','type','key','model','differenceBy','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','options','CmCustomField','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch'];(function(_0x4d7176,_0x6b0f43){var _0x18570e=function(_0x4d6b27){while(--_0x4d6b27){_0x4d7176['push'](_0x4d7176['shift']());}};_0x18570e(++_0x6b0f43);}(_0x2384,0x11b));var _0x4238=function(_0x630fd2,_0x4b11cd){_0x630fd2=_0x630fd2-0x0;var _0x473191=_0x2384[_0x630fd2];return _0x473191;};'use strict';var emlformat=require(_0x4238('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4238('0x1'));var rp=require(_0x4238('0x2'));var moment=require(_0x4238('0x3'));var BPromise=require(_0x4238('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x4238('0x5'));var sox=require(_0x4238('0x6'));var csv=require(_0x4238('0x7'));var ejs=require(_0x4238('0x8'));var fs=require('fs');var fs_extra=require(_0x4238('0x9'));var _=require(_0x4238('0xa'));var squel=require('squel');var crypto=require(_0x4238('0xb'));var jsforce=require(_0x4238('0xc'));var deskjs=require(_0x4238('0xd'));var toCsv=require('to-csv');var querystring=require(_0x4238('0xe'));var Papa=require('papaparse');var Redis=require(_0x4238('0xf'));var authService=require(_0x4238('0x10'));var qs=require(_0x4238('0x11'));var as=require(_0x4238('0x12'));var hardwareService=require(_0x4238('0x13'));var logger=require(_0x4238('0x14'))(_0x4238('0x15'));var utils=require(_0x4238('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x4238('0x17'));var db=require(_0x4238('0x18'))['db'];function respondWithStatusCode(_0x3c55b1,_0x3e5b2b){_0x3e5b2b=_0x3e5b2b||0xcc;return function(_0x1392be){if(_0x1392be){return _0x3c55b1['sendStatus'](_0x3e5b2b);}return _0x3c55b1[_0x4238('0x19')](_0x3e5b2b)['end']();};}function respondWithResult(_0x18f49d,_0x4994dd){_0x4994dd=_0x4994dd||0xc8;return function(_0x588387){if(_0x588387){return _0x18f49d[_0x4238('0x19')](_0x4994dd)[_0x4238('0x1a')](_0x588387);}};}function respondWithFilteredResult(_0x5f12c9,_0xb6306c){return function(_0x1d3471){if(_0x1d3471){var _0x3e9b0c=typeof _0xb6306c[_0x4238('0x1b')]==='undefined'&&typeof _0xb6306c['limit']===_0x4238('0x1c');var _0x5b28d3=_0x1d3471[_0x4238('0x1d')];var _0x4c2a49=_0x3e9b0c?0x0:_0xb6306c['offset'];var _0x161758=_0x3e9b0c?_0x1d3471[_0x4238('0x1d')]:_0xb6306c[_0x4238('0x1b')]+_0xb6306c[_0x4238('0x1e')];var _0x2db55c;if(_0x161758>=_0x5b28d3){_0x161758=_0x5b28d3;_0x2db55c=0xc8;}else{_0x2db55c=0xce;}_0x5f12c9[_0x4238('0x19')](_0x2db55c);return _0x5f12c9[_0x4238('0x1f')](_0x4238('0x20'),_0x4c2a49+'-'+_0x161758+'/'+_0x5b28d3)[_0x4238('0x1a')](_0x1d3471);}return null;};}function patchUpdates(_0x134414){return function(_0x40fb22){try{jsonpatch['apply'](_0x40fb22,_0x134414,!![]);}catch(_0xd656d7){return BPromise[_0x4238('0x21')](_0xd656d7);}return _0x40fb22[_0x4238('0x22')]();};}function saveUpdates(_0x598e0f,_0x17ec1f){return function(_0x540d5e){if(_0x540d5e){return _0x540d5e[_0x4238('0x23')](_0x598e0f)[_0x4238('0x24')](function(_0x4f2f65){return _0x4f2f65;});}return null;};}function removeEntity(_0x520dc9,_0x362fa0){return function(_0x280eec){if(_0x280eec){return _0x280eec['destroy']()[_0x4238('0x24')](function(){_0x520dc9[_0x4238('0x19')](0xcc)[_0x4238('0x25')]();});}};}function handleEntityNotFound(_0xebd6fc,_0x55e53b){return function(_0x1db0db){if(!_0x1db0db){_0xebd6fc['sendStatus'](0x194);}return _0x1db0db;};}function handleError(_0x4f9195,_0x1c23c8){_0x1c23c8=_0x1c23c8||0x1f4;return function(_0x3a607c){logger['error'](_0x3a607c[_0x4238('0x26')]);if(_0x3a607c[_0x4238('0x27')]){delete _0x3a607c[_0x4238('0x27')];}_0x4f9195[_0x4238('0x19')](_0x1c23c8)['send'](_0x3a607c);};}exports[_0x4238('0x28')]=function(_0x49ff73,_0x18fc07){var _0x418381={},_0x54e079={},_0x3298e2={'count':0x0,'rows':[]};var _0x418144=_['map'](db['CmCustomField']['rawAttributes'],function(_0x293285){return{'name':_0x293285['fieldName'],'type':_0x293285[_0x4238('0x29')][_0x4238('0x2a')]};});_0x54e079[_0x4238('0x2b')]=_[_0x4238('0x2c')](_['map'](_0x418144,_0x4238('0x27')),[_0x4238('0x27')]);_0x54e079[_0x4238('0x2d')]=_[_0x4238('0x2e')](_0x49ff73[_0x4238('0x2d')]);_0x54e079[_0x4238('0x2f')]=_[_0x4238('0x30')](_0x54e079[_0x4238('0x2b')],_0x54e079[_0x4238('0x2d')]);_0x418381[_0x4238('0x31')]=_[_0x4238('0x30')](_0x54e079[_0x4238('0x2b')],qs['fields'](_0x49ff73['query'][_0x4238('0x32')]));_0x418381[_0x4238('0x31')]=_0x418381[_0x4238('0x31')][_0x4238('0x33')]?_0x418381['attributes']:_0x54e079['model'];if(!_0x49ff73[_0x4238('0x2d')][_0x4238('0x34')](_0x4238('0x35'))){_0x418381[_0x4238('0x1e')]=qs[_0x4238('0x1e')](_0x49ff73[_0x4238('0x2d')][_0x4238('0x1e')]);_0x418381[_0x4238('0x1b')]=qs[_0x4238('0x1b')](_0x49ff73[_0x4238('0x2d')][_0x4238('0x1b')]);}_0x418381[_0x4238('0x36')]=qs[_0x4238('0x37')](_0x49ff73[_0x4238('0x2d')]['sort']);_0x418381[_0x4238('0x38')]=qs[_0x4238('0x2f')](_[_0x4238('0x39')](_0x49ff73[_0x4238('0x2d')],_0x54e079['filters']),_0x418144);if(_0x49ff73['query'][_0x4238('0x3a')]){_0x418381[_0x4238('0x38')]=_[_0x4238('0x3b')](_0x418381[_0x4238('0x38')],{'$or':_[_0x4238('0x3c')](_0x418144,function(_0xe9cef9){if(_0xe9cef9[_0x4238('0x29')]!==_0x4238('0x3d')){var _0x4e8300={};_0x4e8300[_0xe9cef9['name']]={'$like':'%'+_0x49ff73[_0x4238('0x2d')][_0x4238('0x3a')]+'%'};return _0x4e8300;}})});}_0x418381=_[_0x4238('0x3b')]({},_0x418381,_0x49ff73[_0x4238('0x3e')]);var _0xaa73a7={'where':_0x418381[_0x4238('0x38')]};return db[_0x4238('0x3f')]['count'](_0xaa73a7)[_0x4238('0x24')](function(_0x14ed24){_0x3298e2['count']=_0x14ed24;if(_0x49ff73[_0x4238('0x2d')][_0x4238('0x40')]){_0x418381[_0x4238('0x41')]=[{'all':!![]}];}return db[_0x4238('0x3f')][_0x4238('0x42')](_0x418381);})['then'](function(_0x592445){_0x3298e2[_0x4238('0x43')]=_0x592445;return _0x3298e2;})[_0x4238('0x24')](respondWithFilteredResult(_0x18fc07,_0x418381))['catch'](handleError(_0x18fc07,null));};exports[_0x4238('0x44')]=function(_0x2d5cd2,_0x5cd8b9){var _0x583d03={'raw':!![],'where':{'id':_0x2d5cd2[_0x4238('0x45')]['id']}},_0x182695={};_0x182695['model']=_[_0x4238('0x2e')](db[_0x4238('0x3f')][_0x4238('0x46')]);_0x182695['query']=_[_0x4238('0x2e')](_0x2d5cd2[_0x4238('0x2d')]);_0x182695['filters']=_[_0x4238('0x30')](_0x182695[_0x4238('0x2b')],_0x182695['query']);_0x583d03[_0x4238('0x31')]=_[_0x4238('0x30')](_0x182695[_0x4238('0x2b')],qs['fields'](_0x2d5cd2[_0x4238('0x2d')][_0x4238('0x32')]));_0x583d03[_0x4238('0x31')]=_0x583d03[_0x4238('0x31')][_0x4238('0x33')]?_0x583d03[_0x4238('0x31')]:_0x182695[_0x4238('0x2b')];if(_0x2d5cd2[_0x4238('0x2d')][_0x4238('0x40')]){_0x583d03[_0x4238('0x41')]=[{'all':!![]}];}_0x583d03=_[_0x4238('0x3b')]({},_0x583d03,_0x2d5cd2[_0x4238('0x3e')]);return db[_0x4238('0x3f')][_0x4238('0x47')](_0x583d03)[_0x4238('0x24')](handleEntityNotFound(_0x5cd8b9,null))[_0x4238('0x24')](respondWithResult(_0x5cd8b9,null))[_0x4238('0x48')](handleError(_0x5cd8b9,null));};exports[_0x4238('0x23')]=function(_0x528b46,_0x5daf8b){if(_0x528b46[_0x4238('0x49')]['id']){delete _0x528b46[_0x4238('0x49')]['id'];}return db[_0x4238('0x3f')][_0x4238('0x47')]({'where':{'id':_0x528b46[_0x4238('0x45')]['id']}})[_0x4238('0x24')](handleEntityNotFound(_0x5daf8b,null))['then'](saveUpdates(_0x528b46[_0x4238('0x49')],null))[_0x4238('0x24')](respondWithResult(_0x5daf8b,null))[_0x4238('0x48')](handleError(_0x5daf8b,null));};exports[_0x4238('0x4a')]=function(_0x26ad49,_0x3205a5){return db[_0x4238('0x3f')][_0x4238('0x47')]({'where':{'id':_0x26ad49[_0x4238('0x45')]['id']}})[_0x4238('0x24')](handleEntityNotFound(_0x3205a5,null))[_0x4238('0x24')](removeEntity(_0x3205a5,null))['catch'](handleError(_0x3205a5,null));};exports['create']=function(_0x360a1b,_0x2cd57e){var _0x2be700;return db[_0x4238('0x4b')][_0x4238('0x4c')](function(_0x57b5f8){return db[_0x4238('0x3f')][_0x4238('0x4d')](_0x360a1b[_0x4238('0x49')],{'transaction':_0x57b5f8})[_0x4238('0x24')](function(_0x5df0d7){_0x2be700=_0x5df0d7;var _0x46863b={'type':db[_0x4238('0x4e')][_0x4238('0x4f')],'transaction':_0x57b5f8};switch(_0x360a1b[_0x4238('0x49')][_0x4238('0x29')]){case'text':_0x46863b[_0x4238('0x29')]=db['Sequelize']['TEXT'];break;case _0x4238('0x50'):_0x46863b[_0x4238('0x29')]=db[_0x4238('0x4e')][_0x4238('0x51')];break;case _0x4238('0x52'):_0x46863b[_0x4238('0x29')]=db[_0x4238('0x4e')][_0x4238('0x53')];_0x46863b[_0x4238('0x54')]=![];break;default:}return db['sequelize']['queryInterface'][_0x4238('0x55')](_0x4238('0x56'),util[_0x4238('0x57')](_0x4238('0x58'),_0x2be700['id']),_0x46863b);})[_0x4238('0x24')](function(){return _0x2be700;});})['then'](respondWithResult(_0x2cd57e,0xc9))['catch'](handleError(_0x2cd57e,null));};
\ No newline at end of file
+var _0xdb20=['TEXT','switch','BOOLEAN','defaultValue','addColumn','cm_contacts','cf_%d','rimraf','request-promise','bluebird','util','path','sox','ejs','fs-extra','lodash','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','CmCustomField','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','map','filter','merge','options','includeAll','include','findAll','rows','catch','keys','find','body','create','sequelize','Sequelize'];(function(_0x334841,_0x2bbc4c){var _0x5beb4b=function(_0x4bea72){while(--_0x4bea72){_0x334841['push'](_0x334841['shift']());}};_0x5beb4b(++_0x2bbc4c);}(_0xdb20,0xf7));var _0x0db2=function(_0x40a9f7,_0x3876a9){_0x40a9f7=_0x40a9f7-0x0;var _0x41f2f5=_0xdb20[_0x40a9f7];return _0x41f2f5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0db2('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x0db2('0x1'));var moment=require('moment');var BPromise=require(_0x0db2('0x2'));var Mustache=require('mustache');var util=require(_0x0db2('0x3'));var path=require(_0x0db2('0x4'));var sox=require(_0x0db2('0x5'));var csv=require('to-csv');var ejs=require(_0x0db2('0x6'));var fs=require('fs');var fs_extra=require(_0x0db2('0x7'));var _=require(_0x0db2('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x0db2('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x0db2('0xa'));var querystring=require(_0x0db2('0xb'));var Papa=require(_0x0db2('0xc'));var Redis=require('ioredis');var authService=require(_0x0db2('0xd'));var qs=require(_0x0db2('0xe'));var as=require(_0x0db2('0xf'));var hardwareService=require(_0x0db2('0x10'));var logger=require(_0x0db2('0x11'))(_0x0db2('0x12'));var utils=require(_0x0db2('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x370134,_0x28dc3e){_0x28dc3e=_0x28dc3e||0xcc;return function(_0xe2d5e6){if(_0xe2d5e6){return _0x370134[_0x0db2('0x14')](_0x28dc3e);}return _0x370134['status'](_0x28dc3e)[_0x0db2('0x15')]();};}function respondWithResult(_0x3ed901,_0xf53f61){_0xf53f61=_0xf53f61||0xc8;return function(_0x113c2b){if(_0x113c2b){return _0x3ed901[_0x0db2('0x16')](_0xf53f61)[_0x0db2('0x17')](_0x113c2b);}};}function respondWithFilteredResult(_0x55bdf3,_0x2e25a5){return function(_0x3a3db0){if(_0x3a3db0){var _0x2ed100=typeof _0x2e25a5[_0x0db2('0x18')]===_0x0db2('0x19')&&typeof _0x2e25a5[_0x0db2('0x1a')]===_0x0db2('0x19');var _0x187af8=_0x3a3db0[_0x0db2('0x1b')];var _0x2a07ff=_0x2ed100?0x0:_0x2e25a5[_0x0db2('0x18')];var _0x34a6b8=_0x2ed100?_0x3a3db0[_0x0db2('0x1b')]:_0x2e25a5['offset']+_0x2e25a5[_0x0db2('0x1a')];var _0x2a3987;if(_0x34a6b8>=_0x187af8){_0x34a6b8=_0x187af8;_0x2a3987=0xc8;}else{_0x2a3987=0xce;}_0x55bdf3[_0x0db2('0x16')](_0x2a3987);return _0x55bdf3[_0x0db2('0x1c')](_0x0db2('0x1d'),_0x2a07ff+'-'+_0x34a6b8+'/'+_0x187af8)['json'](_0x3a3db0);}return null;};}function patchUpdates(_0x381c66){return function(_0x538262){try{jsonpatch[_0x0db2('0x1e')](_0x538262,_0x381c66,!![]);}catch(_0x5af261){return BPromise[_0x0db2('0x1f')](_0x5af261);}return _0x538262[_0x0db2('0x20')]();};}function saveUpdates(_0x28c305,_0x2fd41a){return function(_0x42d4ee){if(_0x42d4ee){return _0x42d4ee[_0x0db2('0x21')](_0x28c305)[_0x0db2('0x22')](function(_0x21cf30){return _0x21cf30;});}return null;};}function removeEntity(_0x3a0202,_0x37a48e){return function(_0x2cacbc){if(_0x2cacbc){return _0x2cacbc[_0x0db2('0x23')]()['then'](function(){_0x3a0202[_0x0db2('0x16')](0xcc)[_0x0db2('0x15')]();});}};}function handleEntityNotFound(_0xb2b4fe,_0x52f1bf){return function(_0x551f17){if(!_0x551f17){_0xb2b4fe['sendStatus'](0x194);}return _0x551f17;};}function handleError(_0x1b27ce,_0x32589d){_0x32589d=_0x32589d||0x1f4;return function(_0x439ff8){logger[_0x0db2('0x24')](_0x439ff8[_0x0db2('0x25')]);if(_0x439ff8[_0x0db2('0x26')]){delete _0x439ff8[_0x0db2('0x26')];}_0x1b27ce[_0x0db2('0x16')](_0x32589d)[_0x0db2('0x27')](_0x439ff8);};}exports[_0x0db2('0x28')]=function(_0x2f012e,_0xd27590){var _0x3eb2ca={},_0x8af358={},_0x9effd6={'count':0x0,'rows':[]};var _0x53d734=_['map'](db[_0x0db2('0x29')][_0x0db2('0x2a')],function(_0x3758cc){return{'name':_0x3758cc[_0x0db2('0x2b')],'type':_0x3758cc[_0x0db2('0x2c')][_0x0db2('0x2d')]};});_0x8af358[_0x0db2('0x2e')]=_['differenceBy'](_['map'](_0x53d734,_0x0db2('0x26')),[_0x0db2('0x26')]);_0x8af358[_0x0db2('0x2f')]=_['keys'](_0x2f012e['query']);_0x8af358[_0x0db2('0x30')]=_[_0x0db2('0x31')](_0x8af358['model'],_0x8af358['query']);_0x3eb2ca[_0x0db2('0x32')]=_[_0x0db2('0x31')](_0x8af358[_0x0db2('0x2e')],qs[_0x0db2('0x33')](_0x2f012e[_0x0db2('0x2f')][_0x0db2('0x33')]));_0x3eb2ca['attributes']=_0x3eb2ca[_0x0db2('0x32')][_0x0db2('0x34')]?_0x3eb2ca[_0x0db2('0x32')]:_0x8af358['model'];if(!_0x2f012e[_0x0db2('0x2f')][_0x0db2('0x35')](_0x0db2('0x36'))){_0x3eb2ca[_0x0db2('0x1a')]=qs[_0x0db2('0x1a')](_0x2f012e[_0x0db2('0x2f')][_0x0db2('0x1a')]);_0x3eb2ca[_0x0db2('0x18')]=qs[_0x0db2('0x18')](_0x2f012e[_0x0db2('0x2f')][_0x0db2('0x18')]);}_0x3eb2ca[_0x0db2('0x37')]=qs[_0x0db2('0x38')](_0x2f012e['query'][_0x0db2('0x38')]);_0x3eb2ca[_0x0db2('0x39')]=qs[_0x0db2('0x30')](_['pick'](_0x2f012e['query'],_0x8af358['filters']),_0x53d734);if(_0x2f012e['query']['filter']){_0x3eb2ca[_0x0db2('0x39')]=_['merge'](_0x3eb2ca[_0x0db2('0x39')],{'$or':_[_0x0db2('0x3a')](_0x53d734,function(_0x52f0ef){if(_0x52f0ef[_0x0db2('0x2c')]!=='VIRTUAL'){var _0x268c52={};_0x268c52[_0x52f0ef[_0x0db2('0x26')]]={'$like':'%'+_0x2f012e['query'][_0x0db2('0x3b')]+'%'};return _0x268c52;}})});}_0x3eb2ca=_[_0x0db2('0x3c')]({},_0x3eb2ca,_0x2f012e[_0x0db2('0x3d')]);var _0x3fbfaa={'where':_0x3eb2ca[_0x0db2('0x39')]};return db['CmCustomField'][_0x0db2('0x1b')](_0x3fbfaa)[_0x0db2('0x22')](function(_0xaa1045){_0x9effd6['count']=_0xaa1045;if(_0x2f012e['query'][_0x0db2('0x3e')]){_0x3eb2ca[_0x0db2('0x3f')]=[{'all':!![]}];}return db[_0x0db2('0x29')][_0x0db2('0x40')](_0x3eb2ca);})[_0x0db2('0x22')](function(_0x5573c9){_0x9effd6[_0x0db2('0x41')]=_0x5573c9;return _0x9effd6;})['then'](respondWithFilteredResult(_0xd27590,_0x3eb2ca))[_0x0db2('0x42')](handleError(_0xd27590,null));};exports['show']=function(_0x516e7c,_0x2fa5d9){var _0x56997c={'raw':!![],'where':{'id':_0x516e7c['params']['id']}},_0x48cc5f={};_0x48cc5f['model']=_['keys'](db[_0x0db2('0x29')][_0x0db2('0x2a')]);_0x48cc5f[_0x0db2('0x2f')]=_[_0x0db2('0x43')](_0x516e7c[_0x0db2('0x2f')]);_0x48cc5f[_0x0db2('0x30')]=_[_0x0db2('0x31')](_0x48cc5f[_0x0db2('0x2e')],_0x48cc5f[_0x0db2('0x2f')]);_0x56997c[_0x0db2('0x32')]=_['intersection'](_0x48cc5f[_0x0db2('0x2e')],qs[_0x0db2('0x33')](_0x516e7c[_0x0db2('0x2f')]['fields']));_0x56997c[_0x0db2('0x32')]=_0x56997c[_0x0db2('0x32')][_0x0db2('0x34')]?_0x56997c[_0x0db2('0x32')]:_0x48cc5f[_0x0db2('0x2e')];if(_0x516e7c[_0x0db2('0x2f')]['includeAll']){_0x56997c[_0x0db2('0x3f')]=[{'all':!![]}];}_0x56997c=_['merge']({},_0x56997c,_0x516e7c[_0x0db2('0x3d')]);return db[_0x0db2('0x29')][_0x0db2('0x44')](_0x56997c)['then'](handleEntityNotFound(_0x2fa5d9,null))['then'](respondWithResult(_0x2fa5d9,null))[_0x0db2('0x42')](handleError(_0x2fa5d9,null));};exports[_0x0db2('0x21')]=function(_0x4b103d,_0x307fae){if(_0x4b103d['body']['id']){delete _0x4b103d[_0x0db2('0x45')]['id'];}return db['CmCustomField'][_0x0db2('0x44')]({'where':{'id':_0x4b103d['params']['id']}})[_0x0db2('0x22')](handleEntityNotFound(_0x307fae,null))[_0x0db2('0x22')](saveUpdates(_0x4b103d[_0x0db2('0x45')],null))['then'](respondWithResult(_0x307fae,null))['catch'](handleError(_0x307fae,null));};exports['destroy']=function(_0x887a2d,_0x299883){return db[_0x0db2('0x29')]['find']({'where':{'id':_0x887a2d['params']['id']}})[_0x0db2('0x22')](handleEntityNotFound(_0x299883,null))[_0x0db2('0x22')](removeEntity(_0x299883,null))[_0x0db2('0x42')](handleError(_0x299883,null));};exports[_0x0db2('0x46')]=function(_0x534929,_0x5cb1f9){var _0x2e4743;return db[_0x0db2('0x47')]['transaction'](function(_0x433015){return db[_0x0db2('0x29')][_0x0db2('0x46')](_0x534929[_0x0db2('0x45')],{'transaction':_0x433015})[_0x0db2('0x22')](function(_0x4af750){_0x2e4743=_0x4af750;var _0x1ae603={'type':db[_0x0db2('0x48')]['TEXT'],'transaction':_0x433015};switch(_0x534929[_0x0db2('0x45')]['type']){case'text':_0x1ae603[_0x0db2('0x2c')]=db['Sequelize'][_0x0db2('0x49')];break;case'number':_0x1ae603['type']=db[_0x0db2('0x48')]['INTEGER'];break;case _0x0db2('0x4a'):_0x1ae603[_0x0db2('0x2c')]=db[_0x0db2('0x48')][_0x0db2('0x4b')];_0x1ae603[_0x0db2('0x4c')]=![];break;default:}return db[_0x0db2('0x47')]['queryInterface'][_0x0db2('0x4d')](_0x0db2('0x4e'),util['format'](_0x0db2('0x4f'),_0x2e4743['id']),_0x1ae603);})['then'](function(){return _0x2e4743;});})[_0x0db2('0x22')](respondWithResult(_0x5cb1f9,0xc9))[_0x0db2('0x42')](handleError(_0x5cb1f9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8590=['rimraf','exports','define','CmCustomField','cm_custom_fields','lodash','util','../../config/logger','moment','request-promise','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8590,0xb5));var _0x0859=function(_0x287f34,_0x28ee58){_0x287f34=_0x287f34-0x0;var _0x39b8ed=_0x8590[_0x287f34];return _0x39b8ed;};'use strict';var _=require(_0x0859('0x0'));var util=require(_0x0859('0x1'));var logger=require(_0x0859('0x2'))('api');var moment=require(_0x0859('0x3'));var BPromise=require('bluebird');var rp=require(_0x0859('0x4'));var fs=require('fs');var path=require(_0x0859('0x5'));var rimraf=require(_0x0859('0x6'));var config=require('../../config/environment');var attributes=require('./cmCustomField.attributes');module[_0x0859('0x7')]=function(_0x344ea0,_0x5082f8){return _0x344ea0[_0x0859('0x8')](_0x0859('0x9'),attributes,{'tableName':_0x0859('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8e1c=['lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','exports','define','CmCustomField'];(function(_0x2be652,_0x15543c){var _0x3be237=function(_0x41f308){while(--_0x41f308){_0x2be652['push'](_0x2be652['shift']());}};_0x3be237(++_0x15543c);}(_0x8e1c,0x155));var _0xc8e1=function(_0x366ddf,_0x1246ad){_0x366ddf=_0x366ddf-0x0;var _0x2d4f8b=_0x8e1c[_0x366ddf];return _0x2d4f8b;};'use strict';var _=require(_0xc8e1('0x0'));var util=require(_0xc8e1('0x1'));var logger=require('../../config/logger')(_0xc8e1('0x2'));var moment=require(_0xc8e1('0x3'));var BPromise=require(_0xc8e1('0x4'));var rp=require(_0xc8e1('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc8e1('0x6'));var config=require(_0xc8e1('0x7'));var attributes=require('./cmCustomField.attributes');module[_0xc8e1('0x8')]=function(_0x3c3d48,_0x42a517){return _0x3c3d48[_0xc8e1('0x9')](_0xc8e1('0xa'),attributes,{'tableName':'cm_custom_fields','paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ede=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','CmCustomField,\x20%s,\x20%s','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util'];(function(_0x3239f5,_0x50e77c){var _0x3559c8=function(_0x4f9f83){while(--_0x4f9f83){_0x3239f5['push'](_0x3239f5['shift']());}};_0x3559c8(++_0x50e77c);}(_0x1ede,0x174));var _0xe1ed=function(_0x6a567e,_0x5716e3){_0x6a567e=_0x6a567e-0x0;var _0x2e4734=_0x1ede[_0x6a567e];return _0x2e4734;};'use strict';var _=require(_0xe1ed('0x0'));var util=require(_0xe1ed('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe1ed('0x2'));var fs=require('fs');var Redis=require(_0xe1ed('0x3'));var db=require(_0xe1ed('0x4'))['db'];var utils=require(_0xe1ed('0x5'));var logger=require(_0xe1ed('0x6'))(_0xe1ed('0x7'));var config=require(_0xe1ed('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xe1ed('0x9')][_0xe1ed('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3d26ed,_0x368a6c,_0x21c005){return new BPromise(function(_0x2ff1a5,_0x39ee9e){return client['request'](_0x3d26ed,_0x21c005)[_0xe1ed('0xb')](function(_0x73f78f){logger[_0xe1ed('0xc')](_0xe1ed('0xd'),_0x368a6c,_0xe1ed('0xe'));logger[_0xe1ed('0xf')](_0xe1ed('0x10'),_0x368a6c,_0xe1ed('0xe'),JSON[_0xe1ed('0x11')](_0x73f78f));if(_0x73f78f[_0xe1ed('0x12')]){if(_0x73f78f['error'][_0xe1ed('0x13')]===0x1f4){logger[_0xe1ed('0x12')](_0xe1ed('0xd'),_0x368a6c,_0x73f78f[_0xe1ed('0x12')][_0xe1ed('0x14')]);return _0x39ee9e(_0x73f78f[_0xe1ed('0x12')][_0xe1ed('0x14')]);}logger['error'](_0xe1ed('0xd'),_0x368a6c,_0x73f78f[_0xe1ed('0x12')][_0xe1ed('0x14')]);return _0x2ff1a5(_0x73f78f[_0xe1ed('0x12')][_0xe1ed('0x14')]);}else{logger[_0xe1ed('0xc')]('CmCustomField,\x20%s,\x20%s',_0x368a6c,_0xe1ed('0xe'));_0x2ff1a5(_0x73f78f['result'][_0xe1ed('0x14')]);}})[_0xe1ed('0x15')](function(_0x5d40e4){logger[_0xe1ed('0x12')](_0xe1ed('0xd'),_0x368a6c,_0x5d40e4);_0x39ee9e(_0x5d40e4);});});}
\ No newline at end of file
+var _0x72c0=['bluebird','ioredis','../../config/utils','../../config/logger','rpc','client','http','request','info','debug','CmCustomField,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','CmCustomField,\x20%s,\x20%s','result','catch','util'];(function(_0x1f9044,_0x4d4c7b){var _0x42c442=function(_0x349040){while(--_0x349040){_0x1f9044['push'](_0x1f9044['shift']());}};_0x42c442(++_0x4d4c7b);}(_0x72c0,0x12b));var _0x072c=function(_0x1e3c16,_0x372caa){_0x1e3c16=_0x1e3c16-0x0;var _0x47a0c9=_0x72c0[_0x1e3c16];return _0x47a0c9;};'use strict';var _=require('lodash');var util=require(_0x072c('0x0'));var moment=require('moment');var BPromise=require(_0x072c('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x072c('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x072c('0x3'));var logger=require(_0x072c('0x4'))(_0x072c('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x072c('0x6')][_0x072c('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3f25b4,_0x59818b,_0x10eabf){return new BPromise(function(_0x267cfd,_0x4423ce){return client[_0x072c('0x8')](_0x3f25b4,_0x10eabf)['then'](function(_0x35dcf8){logger[_0x072c('0x9')]('CmCustomField,\x20%s,\x20%s',_0x59818b,'request\x20sent');logger[_0x072c('0xa')](_0x072c('0xb'),_0x59818b,_0x072c('0xc'),JSON[_0x072c('0xd')](_0x35dcf8));if(_0x35dcf8['error']){if(_0x35dcf8['error'][_0x072c('0xe')]===0x1f4){logger[_0x072c('0xf')]('CmCustomField,\x20%s,\x20%s',_0x59818b,_0x35dcf8[_0x072c('0xf')][_0x072c('0x10')]);return _0x4423ce(_0x35dcf8[_0x072c('0xf')][_0x072c('0x10')]);}logger[_0x072c('0xf')](_0x072c('0x11'),_0x59818b,_0x35dcf8[_0x072c('0xf')][_0x072c('0x10')]);return _0x267cfd(_0x35dcf8[_0x072c('0xf')][_0x072c('0x10')]);}else{logger[_0x072c('0x9')](_0x072c('0x11'),_0x59818b,_0x072c('0xc'));_0x267cfd(_0x35dcf8[_0x072c('0x12')][_0x072c('0x10')]);}})[_0x072c('0x13')](function(_0x5d905e){logger[_0x072c('0xf')](_0x072c('0x11'),_0x59818b,_0x5d905e);_0x4423ce(_0x5d905e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c32=['post','update','delete','destroy','exports','multer','path','express','fs-extra','../../components/auth/service','./cmCustomField.controller','get','isAuthenticated','index','/:id','show'];(function(_0x4fb815,_0xab0829){var _0x49c584=function(_0x36e15e){while(--_0x36e15e){_0x4fb815['push'](_0x4fb815['shift']());}};_0x49c584(++_0xab0829);}(_0x6c32,0xb5));var _0x26c3=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x6c32[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x26c3('0x0'));var util=require('util');var path=require(_0x26c3('0x1'));var timeout=require('connect-timeout');var express=require(_0x26c3('0x2'));var router=express['Router']();var fs_extra=require(_0x26c3('0x3'));var auth=require(_0x26c3('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x26c3('0x5'));router[_0x26c3('0x6')]('/',auth[_0x26c3('0x7')](),controller[_0x26c3('0x8')]);router[_0x26c3('0x6')](_0x26c3('0x9'),auth[_0x26c3('0x7')](),controller[_0x26c3('0xa')]);router[_0x26c3('0xb')]('/',auth[_0x26c3('0x7')](),controller['create']);router['put'](_0x26c3('0x9'),auth['isAuthenticated'](),controller[_0x26c3('0xc')]);router[_0x26c3('0xd')]('/:id',auth[_0x26c3('0x7')](),controller[_0x26c3('0xe')]);module[_0x26c3('0xf')]=router;
\ No newline at end of file
+var _0xbea5=['multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','./cmCustomField.controller','isAuthenticated','/:id','post','create','delete','destroy','exports'];(function(_0x8eeae6,_0x3c2aa0){var _0xb01689=function(_0x13ed14){while(--_0x13ed14){_0x8eeae6['push'](_0x8eeae6['shift']());}};_0xb01689(++_0x3c2aa0);}(_0xbea5,0x177));var _0x5bea=function(_0x12d033,_0x25fa2f){_0x12d033=_0x12d033-0x0;var _0x3b4e80=_0xbea5[_0x12d033];return _0x3b4e80;};'use strict';var multer=require(_0x5bea('0x0'));var util=require(_0x5bea('0x1'));var path=require('path');var timeout=require(_0x5bea('0x2'));var express=require(_0x5bea('0x3'));var router=express[_0x5bea('0x4')]();var fs_extra=require(_0x5bea('0x5'));var auth=require(_0x5bea('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x5bea('0x7'));router['get']('/',auth[_0x5bea('0x8')](),controller['index']);router['get'](_0x5bea('0x9'),auth['isAuthenticated'](),controller['show']);router[_0x5bea('0xa')]('/',auth[_0x5bea('0x8')](),controller[_0x5bea('0xb')]);router['put'](_0x5bea('0x9'),auth['isAuthenticated'](),controller['update']);router[_0x5bea('0xc')](_0x5bea('0x9'),auth[_0x5bea('0x8')](),controller[_0x5bea('0xd')]);module[_0x5bea('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x96d1=['YYYY-MM-DD\x20HH:mm:ss','INTEGER','UNSIGNED','contactListQueue','sequelize','STRING','BOOLEAN','DATE','format'];(function(_0x5580d1,_0x30b8cb){var _0x1089a5=function(_0x39e1b3){while(--_0x39e1b3){_0x5580d1['push'](_0x5580d1['shift']());}};_0x1089a5(++_0x30b8cb);}(_0x96d1,0x16c));var _0x196d=function(_0x4a32a7,_0x1675f8){_0x4a32a7=_0x4a32a7-0x0;var _0x175234=_0x96d1[_0x4a32a7];return _0x175234;};'use strict';var moment=require('moment');var Sequelize=require(_0x196d('0x0'));module['exports']={'phone':{'type':Sequelize[_0x196d('0x1')],'allowNull':![]},'active':{'type':Sequelize[_0x196d('0x2')],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0x196d('0x3')],'defaultValue':moment()[_0x196d('0x4')](_0x196d('0x5'))},'countbusyretry':{'type':Sequelize[_0x196d('0x6')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'callback':{'type':Sequelize[_0x196d('0x2')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x196d('0x1')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x196d('0x3')]},'priority':{'type':Sequelize[_0x196d('0x6')](0x2)[_0x196d('0x7')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0x196d('0x2')],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0x196d('0x6')],'unique':'contactListQueue'},'UserId':{'type':Sequelize[_0x196d('0x6')]},'VoiceQueueId':{'type':Sequelize[_0x196d('0x6')],'unique':_0x196d('0x8')},'CampaignId':{'type':Sequelize[_0x196d('0x6')]},'countnosuchnumberretry':{'type':Sequelize[_0x196d('0x6')],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x196d('0x6')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x196d('0x6')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x665f=['BOOLEAN','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','DATE','UNSIGNED','contactListQueue','moment','exports','STRING'];(function(_0xefd519,_0xc62635){var _0x4bb882=function(_0x37e0a1){while(--_0x37e0a1){_0xefd519['push'](_0xefd519['shift']());}};_0x4bb882(++_0xc62635);}(_0x665f,0x9d));var _0xf665=function(_0x3ba463,_0x31b492){_0x3ba463=_0x3ba463-0x0;var _0x5d7d4d=_0x665f[_0x3ba463];return _0x5d7d4d;};'use strict';var moment=require(_0xf665('0x0'));var Sequelize=require('sequelize');module[_0xf665('0x1')]={'phone':{'type':Sequelize[_0xf665('0x2')],'allowNull':![]},'active':{'type':Sequelize[_0xf665('0x3')],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0xf665('0x4')](_0xf665('0x5'))},'countbusyretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0},'callback':{'type':Sequelize[_0xf665('0x3')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0xf665('0x7')]},'priority':{'type':Sequelize['INTEGER'](0x2)[_0xf665('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0xf665('0x3')],'defaultValue':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'ListId':{'type':Sequelize['INTEGER'],'unique':_0xf665('0x9')},'UserId':{'type':Sequelize[_0xf665('0x6')]},'VoiceQueueId':{'type':Sequelize[_0xf665('0x6')],'unique':_0xf665('0x9')},'CampaignId':{'type':Sequelize[_0xf665('0x6')]},'countnosuchnumberretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xf665('0x6')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4bf5=['error','name','index','CmHopper','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$notIn','$like','$iLike','$notILike','$overlap','$contains','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','filter','options','includeAll','include','findAll','rows','catch','params','find','create','body','describe','CampaignId','VoiceQueue','Campaign','VoiceQueueId','omit','updatedAt','state','statedesc','deleted','membername','user','UserId','format','YYYY-MM-DD\x20HH:mm:ss','calleridnum','phone','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','transaction','direction','prev','isEmpty','hopperIds','priority','ASC','scheduledAt','sequelize','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','DESC','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','LOCK','Contact','CmCompany','Company','CmList','dialActive','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','rimraf','request-promise','moment','mustache','util','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','limit','count','set','reject','save','update','then','destroy'];(function(_0x298ed3,_0x4ab5e1){var _0x5aad28=function(_0x168687){while(--_0x168687){_0x298ed3['push'](_0x298ed3['shift']());}};_0x5aad28(++_0x4ab5e1);}(_0x4bf5,0x18b));var _0x54bf=function(_0xad2972,_0x362cf7){_0xad2972=_0xad2972-0x0;var _0xd72857=_0x4bf5[_0xad2972];return _0xd72857;};'use strict';var emlformat=require(_0x54bf('0x0'));var rimraf=require(_0x54bf('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x54bf('0x2'));var moment=require(_0x54bf('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x54bf('0x4'));var util=require(_0x54bf('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x54bf('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x54bf('0x7'));var squel=require(_0x54bf('0x8'));var crypto=require(_0x54bf('0x9'));var jsforce=require(_0x54bf('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x54bf('0xb'));var querystring=require(_0x54bf('0xc'));var Papa=require(_0x54bf('0xd'));var Redis=require(_0x54bf('0xe'));var authService=require(_0x54bf('0xf'));var qs=require(_0x54bf('0x10'));var as=require(_0x54bf('0x11'));var hardwareService=require(_0x54bf('0x12'));var logger=require('../../config/logger')(_0x54bf('0x13'));var utils=require(_0x54bf('0x14'));var config=require(_0x54bf('0x15'));var licenseUtil=require(_0x54bf('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2dfbd3,_0x234db1){_0x234db1=_0x234db1||0xcc;return function(_0x320d6){if(_0x320d6){return _0x2dfbd3[_0x54bf('0x17')](_0x234db1);}return _0x2dfbd3['status'](_0x234db1)[_0x54bf('0x18')]();};}function respondWithResult(_0x1a7282,_0x45d250){_0x45d250=_0x45d250||0xc8;return function(_0x152977){if(_0x152977){return _0x1a7282[_0x54bf('0x19')](_0x45d250)[_0x54bf('0x1a')](_0x152977);}};}function respondWithFilteredResult(_0x5df559,_0x26cd8f){return function(_0x538c23){if(_0x538c23){var _0x4fa927=typeof _0x26cd8f[_0x54bf('0x1b')]===_0x54bf('0x1c')&&typeof _0x26cd8f[_0x54bf('0x1d')]==='undefined';var _0x48487b=_0x538c23[_0x54bf('0x1e')];var _0x567157=_0x4fa927?0x0:_0x26cd8f['offset'];var _0x224dc1=_0x4fa927?_0x538c23[_0x54bf('0x1e')]:_0x26cd8f['offset']+_0x26cd8f[_0x54bf('0x1d')];var _0x17ea79;if(_0x224dc1>=_0x48487b){_0x224dc1=_0x48487b;_0x17ea79=0xc8;}else{_0x17ea79=0xce;}_0x5df559[_0x54bf('0x19')](_0x17ea79);return _0x5df559[_0x54bf('0x1f')]('Content-Range',_0x567157+'-'+_0x224dc1+'/'+_0x48487b)[_0x54bf('0x1a')](_0x538c23);}return null;};}function patchUpdates(_0x4d9ebf){return function(_0x14398e){try{jsonpatch['apply'](_0x14398e,_0x4d9ebf,!![]);}catch(_0x2eb913){return BPromise[_0x54bf('0x20')](_0x2eb913);}return _0x14398e[_0x54bf('0x21')]();};}function saveUpdates(_0xc7478a,_0x55fefd){return function(_0x37f5a7){if(_0x37f5a7){return _0x37f5a7[_0x54bf('0x22')](_0xc7478a)[_0x54bf('0x23')](function(_0x87e362){return _0x87e362;});}return null;};}function removeEntity(_0x268561,_0x3f63a2){return function(_0x2547fd){if(_0x2547fd){return _0x2547fd[_0x54bf('0x24')]()[_0x54bf('0x23')](function(){_0x268561[_0x54bf('0x19')](0xcc)[_0x54bf('0x18')]();});}};}function handleEntityNotFound(_0x6d1af8,_0x21a205){return function(_0x1c9800){if(!_0x1c9800){_0x6d1af8[_0x54bf('0x17')](0x194);}return _0x1c9800;};}function handleError(_0x5538ba,_0xd7c3d8){_0xd7c3d8=_0xd7c3d8||0x1f4;return function(_0x2061e0){logger[_0x54bf('0x25')](_0x2061e0['stack']);if(_0x2061e0['name']){delete _0x2061e0[_0x54bf('0x26')];}_0x5538ba['status'](_0xd7c3d8)['send'](_0x2061e0);};}exports[_0x54bf('0x27')]=function(_0x9f41c7,_0x428832){var _0x175930={},_0x11dbf2={},_0x34412e={'count':0x0,'rows':[]};var _0x54709a=_['map'](db[_0x54bf('0x28')][_0x54bf('0x29')],function(_0x2e3bd2){return{'name':_0x2e3bd2[_0x54bf('0x2a')],'type':_0x2e3bd2[_0x54bf('0x2b')][_0x54bf('0x2c')]};});_0x11dbf2[_0x54bf('0x2d')]=_['map'](_0x54709a,'name');_0x11dbf2[_0x54bf('0x2e')]=_[_0x54bf('0x2f')](_0x9f41c7[_0x54bf('0x2e')]);_0x11dbf2[_0x54bf('0x30')]=_[_0x54bf('0x31')](_0x11dbf2['model'],_0x11dbf2[_0x54bf('0x2e')]);_0x11dbf2[_0x54bf('0x30')]=_['concat'](_0x11dbf2[_0x54bf('0x30')],[_0x54bf('0x32'),_0x54bf('0x33'),_0x54bf('0x34'),_0x54bf('0x35'),_0x54bf('0x36'),_0x54bf('0x37'),_0x54bf('0x38'),_0x54bf('0x39'),_0x54bf('0x3a'),_0x54bf('0x3b'),_0x54bf('0x3c'),'$in',_0x54bf('0x3d'),_0x54bf('0x3e'),'$notLike',_0x54bf('0x3f'),_0x54bf('0x40'),_0x54bf('0x3e'),_0x54bf('0x41'),_0x54bf('0x42'),'$contained','$any']);_0x175930[_0x54bf('0x43')]=_['intersection'](_0x11dbf2[_0x54bf('0x2d')],qs['fields'](_0x9f41c7[_0x54bf('0x2e')][_0x54bf('0x44')]));_0x175930[_0x54bf('0x43')]=_0x175930['attributes'][_0x54bf('0x45')]?_0x175930[_0x54bf('0x43')]:_0x11dbf2['model'];if(!_0x9f41c7['query'][_0x54bf('0x46')](_0x54bf('0x47'))){_0x175930['limit']=qs[_0x54bf('0x1d')](_0x9f41c7[_0x54bf('0x2e')][_0x54bf('0x1d')]);_0x175930['offset']=qs[_0x54bf('0x1b')](_0x9f41c7[_0x54bf('0x2e')][_0x54bf('0x1b')]);}_0x175930[_0x54bf('0x48')]=qs['sort'](_0x9f41c7[_0x54bf('0x2e')][_0x54bf('0x49')]);_0x175930[_0x54bf('0x4a')]=qs[_0x54bf('0x30')](_['pick'](_0x9f41c7[_0x54bf('0x2e')],_0x11dbf2[_0x54bf('0x30')]),_0x54709a);if(_0x9f41c7[_0x54bf('0x2e')]['filter']){_0x175930[_0x54bf('0x4a')]=_[_0x54bf('0x4b')](_0x175930[_0x54bf('0x4a')],{'$or':_['map'](_0x54709a,function(_0x59608b){if(_0x59608b['type']!=='VIRTUAL'){var _0x3959f9={};_0x3959f9[_0x59608b[_0x54bf('0x26')]]={'$like':'%'+_0x9f41c7[_0x54bf('0x2e')][_0x54bf('0x4c')]+'%'};return _0x3959f9;}})});}_0x175930=_[_0x54bf('0x4b')]({},_0x175930,_0x9f41c7[_0x54bf('0x4d')]);var _0x1a4ab8={'where':_0x175930[_0x54bf('0x4a')]};return db[_0x54bf('0x28')]['count'](_0x1a4ab8)[_0x54bf('0x23')](function(_0x5d608b){_0x34412e['count']=_0x5d608b;if(_0x9f41c7[_0x54bf('0x2e')][_0x54bf('0x4e')]){_0x175930[_0x54bf('0x4f')]=[{'all':!![]}];}return db['CmHopper'][_0x54bf('0x50')](_0x175930);})['then'](function(_0x2a64b0){_0x34412e[_0x54bf('0x51')]=_0x2a64b0;return _0x34412e;})[_0x54bf('0x23')](respondWithFilteredResult(_0x428832,_0x175930))[_0x54bf('0x52')](handleError(_0x428832,null));};exports['show']=function(_0x3b70b7,_0x224edc){var _0x522d91={'raw':!![],'where':{'id':_0x3b70b7[_0x54bf('0x53')]['id']}},_0x520598={};_0x520598[_0x54bf('0x2d')]=_['keys'](db['CmHopper'][_0x54bf('0x29')]);_0x520598[_0x54bf('0x2e')]=_[_0x54bf('0x2f')](_0x3b70b7[_0x54bf('0x2e')]);_0x520598[_0x54bf('0x30')]=_[_0x54bf('0x31')](_0x520598[_0x54bf('0x2d')],_0x520598['query']);_0x522d91[_0x54bf('0x43')]=_[_0x54bf('0x31')](_0x520598['model'],qs[_0x54bf('0x44')](_0x3b70b7[_0x54bf('0x2e')][_0x54bf('0x44')]));_0x522d91[_0x54bf('0x43')]=_0x522d91['attributes']['length']?_0x522d91[_0x54bf('0x43')]:_0x520598[_0x54bf('0x2d')];if(_0x3b70b7[_0x54bf('0x2e')]['includeAll']){_0x522d91[_0x54bf('0x4f')]=[{'all':!![]}];}_0x522d91=_['merge']({},_0x522d91,_0x3b70b7[_0x54bf('0x4d')]);return db['CmHopper'][_0x54bf('0x54')](_0x522d91)[_0x54bf('0x23')](handleEntityNotFound(_0x224edc,null))[_0x54bf('0x23')](respondWithResult(_0x224edc,null))[_0x54bf('0x52')](handleError(_0x224edc,null));};exports[_0x54bf('0x55')]=function(_0x5d1c9e,_0x1083c7){return db[_0x54bf('0x28')][_0x54bf('0x55')](_0x5d1c9e[_0x54bf('0x56')],{})[_0x54bf('0x23')](respondWithResult(_0x1083c7,0xc9))['catch'](handleError(_0x1083c7,null));};exports[_0x54bf('0x22')]=function(_0x2607fc,_0x2d822c){if(_0x2607fc[_0x54bf('0x56')]['id']){delete _0x2607fc[_0x54bf('0x56')]['id'];}return db['CmHopper'][_0x54bf('0x54')]({'where':{'id':_0x2607fc[_0x54bf('0x53')]['id']}})['then'](handleEntityNotFound(_0x2d822c,null))[_0x54bf('0x23')](saveUpdates(_0x2607fc[_0x54bf('0x56')],null))[_0x54bf('0x23')](respondWithResult(_0x2d822c,null))[_0x54bf('0x52')](handleError(_0x2d822c,null));};exports[_0x54bf('0x57')]=function(_0xe9c0c9,_0x3ea626){return db['CmHopper'][_0x54bf('0x57')]()[_0x54bf('0x23')](respondWithResult(_0x3ea626,null))['catch'](handleError(_0x3ea626,null));};exports[_0x54bf('0x24')]=function(_0x29f150,_0x41abb3){var _0x6a130b;return db[_0x54bf('0x28')]['find']({'where':{'id':_0x29f150[_0x54bf('0x53')]['id']}})[_0x54bf('0x23')](handleEntityNotFound(_0x41abb3,null))[_0x54bf('0x23')](function(_0x370641){if(_0x370641){return _0x370641[_0x54bf('0x24')]()['then'](function(_0x4e812e){return _0x4e812e;});}})['then'](function(_0x46061d){_0x6a130b=_0x46061d;if(_0x46061d){if(_0x46061d['VoiceQueueId']||_0x46061d[_0x54bf('0x58')]){return db[_0x46061d['VoiceQueueId']?_0x54bf('0x59'):_0x54bf('0x5a')][_0x54bf('0x54')]({'where':{'id':_0x46061d[_0x54bf('0x5b')]?_0x46061d['VoiceQueueId']:_0x46061d[_0x54bf('0x58')]},'attributes':['id',_0x54bf('0x26')],'raw':!![]});}}})[_0x54bf('0x23')](function(_0x1762bd){var _0x443e7d={};if(_0x1762bd){_['merge'](_0x443e7d,_[_0x54bf('0x5c')](_0x6a130b['dataValues'],['createdAt',_0x54bf('0x5d'),'id']));_0x443e7d[_0x54bf('0x5e')]=0x15;_0x443e7d[_0x54bf('0x5f')]=_0x54bf('0x60');_0x443e7d['campaign']=_0x1762bd['name'];_0x443e7d[_0x54bf('0x61')]=_0x29f150[_0x54bf('0x62')][_0x54bf('0x26')];_0x443e7d[_0x54bf('0x63')]=_0x29f150[_0x54bf('0x62')]['id'];_0x443e7d[_0x54bf('0x60')]=!![];_0x443e7d['deletedat']=moment()[_0x54bf('0x64')](_0x54bf('0x65'));_0x443e7d[_0x54bf('0x66')]=_0x6a130b[_0x54bf('0x67')];_0x443e7d[_0x54bf('0x68')]=_0x6a130b[_0x54bf('0x5b')]?_0x54bf('0x69'):_0x54bf('0x6a');return db[_0x54bf('0x6b')]['find']({'where':{'id':_0x443e7d[_0x54bf('0x6c')]},'attributes':[_0x54bf('0x6d'),_0x54bf('0x6e')]})['then'](function(_0x25fe12){if(!_['isNil'](_0x41abb3)&&!_[_0x54bf('0x6f')](_0x25fe12[_0x54bf('0x6d')])){_0x443e7d['calleridname']=_0x25fe12[_0x54bf('0x6d')];if(!_[_0x54bf('0x6f')](_0x25fe12['lastName'])){_0x443e7d[_0x54bf('0x70')]+='\x20'+_0x25fe12[_0x54bf('0x6e')];}}})[_0x54bf('0x71')](function(){return db[_0x54bf('0x72')]['create'](_0x443e7d);});}})['then'](function(){return _0x41abb3[_0x54bf('0x19')](0xcc)[_0x54bf('0x18')]();})[_0x54bf('0x52')](handleError(_0x41abb3,null));};exports[_0x54bf('0x73')]=function(_0xac7d43,_0x5c2ab8,_0x37ff85){var _0x416fe7=[];return db[_0x54bf('0x6b')]['describe']()[_0x54bf('0x23')](function(_0x50e126){_0x416fe7=_[_0x54bf('0x2f')](_0x50e126);return _0xac7d43[_0x54bf('0x62')][_0x54bf('0x74')]({'where':{'type':_0x54bf('0x75'),'dialActive':!![],'dialMethod':_0x54bf('0x76')},'attributes':['id',_0x54bf('0x77')],'raw':!![]});})[_0x54bf('0x23')](function(_0x475101){if(_0x475101&&_0x475101['length']){return db['sequelize'][_0x54bf('0x78')](function(_0x5c8677){var _0x5d0d9f={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x54bf('0x64')](_0x54bf('0x65'))},'VoiceQueueId':{'$in':_['map'](_0x475101,'id')},'$or':[{'UserId':null},{'UserId':_0xac7d43[_0x54bf('0x62')]['id']}]};var _0x103e57=[];if(_0xac7d43[_0x54bf('0x56')][_0x54bf('0x79')]&&_0xac7d43[_0x54bf('0x56')][_0x54bf('0x79')]===_0x54bf('0x7a')){if(!_[_0x54bf('0x7b')](_0xac7d43[_0x54bf('0x56')][_0x54bf('0x7c')])){_0x5d0d9f['id']={'$in':_0xac7d43[_0x54bf('0x56')][_0x54bf('0x7c')]};}_0x103e57=[[_0x54bf('0x7d'),_0x54bf('0x7e')],[_0x54bf('0x7f'),_0x475101[0x0]['dialOrderByScheduledAt']==='ASC'?'DESC':_0x54bf('0x7e')],db[_0x54bf('0x80')][_0x54bf('0x81')](_0x54bf('0x82')),['id','DESC']];}else{if(!_[_0x54bf('0x7b')](_0xac7d43[_0x54bf('0x56')][_0x54bf('0x7c')])){_0x5d0d9f['id']={'$notIn':_0xac7d43['body'][_0x54bf('0x7c')]};}_0x103e57=[['priority',_0x54bf('0x83')],[_0x54bf('0x7f'),_0x475101[0x0]['dialOrderByScheduledAt']],db['sequelize'][_0x54bf('0x81')](_0x54bf('0x84')),['id',_0x54bf('0x7e')]];}return db[_0x54bf('0x28')]['findOne']({'attributes':['id',_0x54bf('0x85')],'where':_0x5d0d9f,'order':_0x103e57,'transaction':_0x5c8677,'lock':_0x5c8677[_0x54bf('0x86')]['UPDATE'],'include':[{'model':db['CmContact'],'as':_0x54bf('0x87'),'attributes':_0x416fe7,'include':[{'model':db[_0x54bf('0x88')],'as':_0x54bf('0x89'),'attributes':['id',_0x54bf('0x26')]}]},{'model':db[_0x54bf('0x8a')],'as':'List','attributes':['id',_0x54bf('0x26')]},{'model':db['VoiceQueue'],'as':'Queue','attributes':['id',_0x54bf('0x26'),_0x54bf('0x8b')]}]})[_0x54bf('0x23')](function(_0x5428e4){if(_0x5428e4){return _0x5428e4[_0x54bf('0x22')]({'UserId':_0xac7d43[_0x54bf('0x62')]['id']},{'transaction':_0x5c8677});}});});}})[_0x54bf('0x23')](handleEntityNotFound(_0x5c2ab8,null))['then'](respondWithResult(_0x5c2ab8,null))[_0x54bf('0x52')](handleError(_0x5c2ab8,null));};exports[_0x54bf('0x8c')]=function(_0x51b3a4,_0x44789c,_0x4d47c0){return _0x51b3a4[_0x54bf('0x62')][_0x54bf('0x74')]({'where':{'type':_0x54bf('0x75'),'dialActive':!![],'dialMethod':_0x54bf('0x76')},'attributes':['id'],'raw':!![]})['then'](function(_0x527582){if(_0x527582&&_0x527582[_0x54bf('0x45')]){return db[_0x54bf('0x28')][_0x54bf('0x1e')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x54bf('0x64')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_['map'](_0x527582,'id')},'$or':[{'UserId':null},{'UserId':_0x51b3a4[_0x54bf('0x62')]['id']}]}});}return 0x0;})['then'](function(_0x1c6a2a){if(!_['isNil'](_0x1c6a2a)&&_[_0x54bf('0x8d')](_0x1c6a2a)){return _0x44789c['status'](0xc8)['json']({'contacts':_0x1c6a2a});}else{logger[_0x54bf('0x25')](_0x54bf('0x8e'),_0x54bf('0x8c'),0x194,_0x54bf('0x8f'));_0x44789c[_0x54bf('0x17')](0x194);}})[_0x54bf('0x52')](handleError(_0x44789c,null));};
\ No newline at end of file
+var _0xb0aa=['updatedAt','state','statedesc','deleted','campaign','membername','user','UserId','format','calleridnum','ivr','ContactId','lastName','isNil','firstName','calleridname','finally','getPreview','CmContact','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','direction','prev','hopperIds','ASC','scheduledAt','DESC','literal','COALESCE(CmHopper.UserId,\x200)\x20ASC','priority','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','Contact','CmCompany','Company','CmList','List','Queue','update','getOpenContacts','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','entity\x20not\x20found','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','then','error','stack','name','send','index','map','CmHopper','rawAttributes','keys','query','intersection','filters','concat','$and','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$notLike','$iLike','$notILike','$like','$contains','$contained','$any','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','filter','options','includeAll','include','findAll','catch','show','params','find','create','body','describe','destroy','VoiceQueueId','VoiceQueue','Campaign','CampaignId','createdAt'];(function(_0x584e52,_0x5443dc){var _0x5cf710=function(_0x4fc333){while(--_0x4fc333){_0x584e52['push'](_0x584e52['shift']());}};_0x5cf710(++_0x5443dc);}(_0xb0aa,0xc2));var _0xab0a=function(_0x10cbfd,_0x5c2873){_0x10cbfd=_0x10cbfd-0x0;var _0x8cd494=_0xb0aa[_0x10cbfd];return _0x8cd494;};'use strict';var emlformat=require(_0xab0a('0x0'));var rimraf=require(_0xab0a('0x1'));var zipdir=require(_0xab0a('0x2'));var jsonpatch=require(_0xab0a('0x3'));var rp=require('request-promise');var moment=require(_0xab0a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xab0a('0x5'));var util=require(_0xab0a('0x6'));var path=require(_0xab0a('0x7'));var sox=require(_0xab0a('0x8'));var csv=require(_0xab0a('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xab0a('0xa'));var _=require(_0xab0a('0xb'));var squel=require('squel');var crypto=require(_0xab0a('0xc'));var jsforce=require(_0xab0a('0xd'));var deskjs=require(_0xab0a('0xe'));var toCsv=require(_0xab0a('0x9'));var querystring=require('querystring');var Papa=require(_0xab0a('0xf'));var Redis=require('ioredis');var authService=require(_0xab0a('0x10'));var qs=require(_0xab0a('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xab0a('0x12'));var logger=require(_0xab0a('0x13'))('api');var utils=require(_0xab0a('0x14'));var config=require(_0xab0a('0x15'));var licenseUtil=require(_0xab0a('0x16'));var db=require(_0xab0a('0x17'))['db'];function respondWithStatusCode(_0x4a3f9c,_0x4b9378){_0x4b9378=_0x4b9378||0xcc;return function(_0x358b8b){if(_0x358b8b){return _0x4a3f9c[_0xab0a('0x18')](_0x4b9378);}return _0x4a3f9c[_0xab0a('0x19')](_0x4b9378)[_0xab0a('0x1a')]();};}function respondWithResult(_0x2d871e,_0x30ce37){_0x30ce37=_0x30ce37||0xc8;return function(_0x3aa930){if(_0x3aa930){return _0x2d871e[_0xab0a('0x19')](_0x30ce37)[_0xab0a('0x1b')](_0x3aa930);}};}function respondWithFilteredResult(_0x3c0770,_0x41141c){return function(_0x2d2932){if(_0x2d2932){var _0xff68dc=typeof _0x41141c[_0xab0a('0x1c')]==='undefined'&&typeof _0x41141c['limit']===_0xab0a('0x1d');var _0x252077=_0x2d2932[_0xab0a('0x1e')];var _0xe147c9=_0xff68dc?0x0:_0x41141c[_0xab0a('0x1c')];var _0x503016=_0xff68dc?_0x2d2932['count']:_0x41141c[_0xab0a('0x1c')]+_0x41141c[_0xab0a('0x1f')];var _0x3ac7fa;if(_0x503016>=_0x252077){_0x503016=_0x252077;_0x3ac7fa=0xc8;}else{_0x3ac7fa=0xce;}_0x3c0770[_0xab0a('0x19')](_0x3ac7fa);return _0x3c0770[_0xab0a('0x20')]('Content-Range',_0xe147c9+'-'+_0x503016+'/'+_0x252077)[_0xab0a('0x1b')](_0x2d2932);}return null;};}function patchUpdates(_0xd81b01){return function(_0x252e5f){try{jsonpatch[_0xab0a('0x21')](_0x252e5f,_0xd81b01,!![]);}catch(_0x179638){return BPromise[_0xab0a('0x22')](_0x179638);}return _0x252e5f[_0xab0a('0x23')]();};}function saveUpdates(_0xa03c9,_0x408fa6){return function(_0x1d982f){if(_0x1d982f){return _0x1d982f['update'](_0xa03c9)[_0xab0a('0x24')](function(_0x1befe4){return _0x1befe4;});}return null;};}function removeEntity(_0x54edbe,_0x59da79){return function(_0x49c681){if(_0x49c681){return _0x49c681['destroy']()[_0xab0a('0x24')](function(){_0x54edbe['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x26c845,_0x3d3486){return function(_0x26b118){if(!_0x26b118){_0x26c845[_0xab0a('0x18')](0x194);}return _0x26b118;};}function handleError(_0x22e62b,_0x4e582c){_0x4e582c=_0x4e582c||0x1f4;return function(_0x16a07f){logger[_0xab0a('0x25')](_0x16a07f[_0xab0a('0x26')]);if(_0x16a07f[_0xab0a('0x27')]){delete _0x16a07f[_0xab0a('0x27')];}_0x22e62b[_0xab0a('0x19')](_0x4e582c)[_0xab0a('0x28')](_0x16a07f);};}exports[_0xab0a('0x29')]=function(_0x545467,_0x17f385){var _0x6e7316={},_0x5484b4={},_0x346356={'count':0x0,'rows':[]};var _0x1721dc=_[_0xab0a('0x2a')](db[_0xab0a('0x2b')][_0xab0a('0x2c')],function(_0x3c8f08){return{'name':_0x3c8f08['fieldName'],'type':_0x3c8f08['type']['key']};});_0x5484b4['model']=_['map'](_0x1721dc,'name');_0x5484b4['query']=_[_0xab0a('0x2d')](_0x545467[_0xab0a('0x2e')]);_0x5484b4['filters']=_[_0xab0a('0x2f')](_0x5484b4['model'],_0x5484b4[_0xab0a('0x2e')]);_0x5484b4[_0xab0a('0x30')]=_[_0xab0a('0x31')](_0x5484b4[_0xab0a('0x30')],[_0xab0a('0x32'),'$or','$gt',_0xab0a('0x33'),_0xab0a('0x34'),_0xab0a('0x35'),_0xab0a('0x36'),_0xab0a('0x37'),_0xab0a('0x38'),_0xab0a('0x39'),_0xab0a('0x3a'),_0xab0a('0x3b'),'$notIn','$like',_0xab0a('0x3c'),_0xab0a('0x3d'),_0xab0a('0x3e'),_0xab0a('0x3f'),'$overlap',_0xab0a('0x40'),_0xab0a('0x41'),_0xab0a('0x42')]);_0x6e7316['attributes']=_[_0xab0a('0x2f')](_0x5484b4[_0xab0a('0x43')],qs[_0xab0a('0x44')](_0x545467['query'][_0xab0a('0x44')]));_0x6e7316['attributes']=_0x6e7316[_0xab0a('0x45')][_0xab0a('0x46')]?_0x6e7316['attributes']:_0x5484b4[_0xab0a('0x43')];if(!_0x545467['query'][_0xab0a('0x47')](_0xab0a('0x48'))){_0x6e7316[_0xab0a('0x1f')]=qs[_0xab0a('0x1f')](_0x545467['query'][_0xab0a('0x1f')]);_0x6e7316['offset']=qs['offset'](_0x545467[_0xab0a('0x2e')][_0xab0a('0x1c')]);}_0x6e7316[_0xab0a('0x49')]=qs[_0xab0a('0x4a')](_0x545467['query'][_0xab0a('0x4a')]);_0x6e7316[_0xab0a('0x4b')]=qs[_0xab0a('0x30')](_[_0xab0a('0x4c')](_0x545467[_0xab0a('0x2e')],_0x5484b4[_0xab0a('0x30')]),_0x1721dc);if(_0x545467['query']['filter']){_0x6e7316[_0xab0a('0x4b')]=_[_0xab0a('0x4d')](_0x6e7316[_0xab0a('0x4b')],{'$or':_[_0xab0a('0x2a')](_0x1721dc,function(_0x33a5d2){if(_0x33a5d2[_0xab0a('0x4e')]!==_0xab0a('0x4f')){var _0xfb60e7={};_0xfb60e7[_0x33a5d2[_0xab0a('0x27')]]={'$like':'%'+_0x545467['query'][_0xab0a('0x50')]+'%'};return _0xfb60e7;}})});}_0x6e7316=_[_0xab0a('0x4d')]({},_0x6e7316,_0x545467[_0xab0a('0x51')]);var _0x29c455={'where':_0x6e7316[_0xab0a('0x4b')]};return db[_0xab0a('0x2b')][_0xab0a('0x1e')](_0x29c455)[_0xab0a('0x24')](function(_0xc744d1){_0x346356['count']=_0xc744d1;if(_0x545467[_0xab0a('0x2e')][_0xab0a('0x52')]){_0x6e7316[_0xab0a('0x53')]=[{'all':!![]}];}return db['CmHopper'][_0xab0a('0x54')](_0x6e7316);})[_0xab0a('0x24')](function(_0x5e6ee0){_0x346356['rows']=_0x5e6ee0;return _0x346356;})['then'](respondWithFilteredResult(_0x17f385,_0x6e7316))[_0xab0a('0x55')](handleError(_0x17f385,null));};exports[_0xab0a('0x56')]=function(_0x1ad8dc,_0x1fefbe){var _0x9c52f8={'raw':!![],'where':{'id':_0x1ad8dc[_0xab0a('0x57')]['id']}},_0x42859f={};_0x42859f[_0xab0a('0x43')]=_[_0xab0a('0x2d')](db[_0xab0a('0x2b')][_0xab0a('0x2c')]);_0x42859f['query']=_[_0xab0a('0x2d')](_0x1ad8dc[_0xab0a('0x2e')]);_0x42859f['filters']=_[_0xab0a('0x2f')](_0x42859f[_0xab0a('0x43')],_0x42859f['query']);_0x9c52f8[_0xab0a('0x45')]=_[_0xab0a('0x2f')](_0x42859f[_0xab0a('0x43')],qs[_0xab0a('0x44')](_0x1ad8dc[_0xab0a('0x2e')]['fields']));_0x9c52f8[_0xab0a('0x45')]=_0x9c52f8['attributes'][_0xab0a('0x46')]?_0x9c52f8['attributes']:_0x42859f[_0xab0a('0x43')];if(_0x1ad8dc[_0xab0a('0x2e')]['includeAll']){_0x9c52f8['include']=[{'all':!![]}];}_0x9c52f8=_[_0xab0a('0x4d')]({},_0x9c52f8,_0x1ad8dc[_0xab0a('0x51')]);return db['CmHopper'][_0xab0a('0x58')](_0x9c52f8)[_0xab0a('0x24')](handleEntityNotFound(_0x1fefbe,null))[_0xab0a('0x24')](respondWithResult(_0x1fefbe,null))[_0xab0a('0x55')](handleError(_0x1fefbe,null));};exports[_0xab0a('0x59')]=function(_0x3bfdda,_0x4e09c1){return db[_0xab0a('0x2b')][_0xab0a('0x59')](_0x3bfdda[_0xab0a('0x5a')],{})[_0xab0a('0x24')](respondWithResult(_0x4e09c1,0xc9))[_0xab0a('0x55')](handleError(_0x4e09c1,null));};exports['update']=function(_0x442a1d,_0x40d62b){if(_0x442a1d[_0xab0a('0x5a')]['id']){delete _0x442a1d[_0xab0a('0x5a')]['id'];}return db[_0xab0a('0x2b')][_0xab0a('0x58')]({'where':{'id':_0x442a1d[_0xab0a('0x57')]['id']}})[_0xab0a('0x24')](handleEntityNotFound(_0x40d62b,null))[_0xab0a('0x24')](saveUpdates(_0x442a1d[_0xab0a('0x5a')],null))[_0xab0a('0x24')](respondWithResult(_0x40d62b,null))[_0xab0a('0x55')](handleError(_0x40d62b,null));};exports['describe']=function(_0x3e5773,_0x1270bb){return db['CmHopper'][_0xab0a('0x5b')]()['then'](respondWithResult(_0x1270bb,null))[_0xab0a('0x55')](handleError(_0x1270bb,null));};exports[_0xab0a('0x5c')]=function(_0x4b319d,_0x4c33aa){var _0x4310fe;return db[_0xab0a('0x2b')][_0xab0a('0x58')]({'where':{'id':_0x4b319d['params']['id']}})[_0xab0a('0x24')](handleEntityNotFound(_0x4c33aa,null))[_0xab0a('0x24')](function(_0x241bac){if(_0x241bac){return _0x241bac[_0xab0a('0x5c')]()[_0xab0a('0x24')](function(_0x3037a1){return _0x3037a1;});}})['then'](function(_0x3a2299){_0x4310fe=_0x3a2299;if(_0x3a2299){if(_0x3a2299[_0xab0a('0x5d')]||_0x3a2299['CampaignId']){return db[_0x3a2299[_0xab0a('0x5d')]?_0xab0a('0x5e'):_0xab0a('0x5f')][_0xab0a('0x58')]({'where':{'id':_0x3a2299[_0xab0a('0x5d')]?_0x3a2299[_0xab0a('0x5d')]:_0x3a2299[_0xab0a('0x60')]},'attributes':['id',_0xab0a('0x27')],'raw':!![]});}}})[_0xab0a('0x24')](function(_0x3df7ea){var _0x536281={};if(_0x3df7ea){_[_0xab0a('0x4d')](_0x536281,_['omit'](_0x4310fe['dataValues'],[_0xab0a('0x61'),_0xab0a('0x62'),'id']));_0x536281[_0xab0a('0x63')]=0x15;_0x536281[_0xab0a('0x64')]=_0xab0a('0x65');_0x536281[_0xab0a('0x66')]=_0x3df7ea[_0xab0a('0x27')];_0x536281[_0xab0a('0x67')]=_0x4b319d[_0xab0a('0x68')][_0xab0a('0x27')];_0x536281[_0xab0a('0x69')]=_0x4b319d[_0xab0a('0x68')]['id'];_0x536281[_0xab0a('0x65')]=!![];_0x536281['deletedat']=moment()[_0xab0a('0x6a')]('YYYY-MM-DD\x20HH:mm:ss');_0x536281[_0xab0a('0x6b')]=_0x4310fe['phone'];_0x536281['campaigntype']=_0x4310fe[_0xab0a('0x5d')]?'queue':_0xab0a('0x6c');return db['CmContact'][_0xab0a('0x58')]({'where':{'id':_0x536281[_0xab0a('0x6d')]},'attributes':['firstName',_0xab0a('0x6e')]})[_0xab0a('0x24')](function(_0x47cab6){if(!_[_0xab0a('0x6f')](_0x4c33aa)&&!_['isNil'](_0x47cab6[_0xab0a('0x70')])){_0x536281[_0xab0a('0x71')]=_0x47cab6['firstName'];if(!_[_0xab0a('0x6f')](_0x47cab6[_0xab0a('0x6e')])){_0x536281[_0xab0a('0x71')]+='\x20'+_0x47cab6['lastName'];}}})[_0xab0a('0x72')](function(){return db['CmHopperFinal'][_0xab0a('0x59')](_0x536281);});}})['then'](function(){return _0x4c33aa[_0xab0a('0x19')](0xcc)[_0xab0a('0x1a')]();})['catch'](handleError(_0x4c33aa,null));};exports[_0xab0a('0x73')]=function(_0x3479b2,_0x3a8976,_0x4a48f1){var _0x1df739=[];return db[_0xab0a('0x74')][_0xab0a('0x5b')]()[_0xab0a('0x24')](function(_0xe20c3a){_0x1df739=_[_0xab0a('0x2d')](_0xe20c3a);return _0x3479b2['user'][_0xab0a('0x75')]({'where':{'type':_0xab0a('0x76'),'dialActive':!![],'dialMethod':_0xab0a('0x77')},'attributes':['id',_0xab0a('0x78')],'raw':!![]});})[_0xab0a('0x24')](function(_0x5baa23){if(_0x5baa23&&_0x5baa23[_0xab0a('0x46')]){return db[_0xab0a('0x79')][_0xab0a('0x7a')](function(_0x22541e){var _0xf440de={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()['format'](_0xab0a('0x7b'))},'VoiceQueueId':{'$in':_[_0xab0a('0x2a')](_0x5baa23,'id')},'$or':[{'UserId':null},{'UserId':_0x3479b2[_0xab0a('0x68')]['id']}]};var _0x22b5b1=[];if(_0x3479b2['body'][_0xab0a('0x7c')]&&_0x3479b2['body'][_0xab0a('0x7c')]===_0xab0a('0x7d')){if(!_['isEmpty'](_0x3479b2['body'][_0xab0a('0x7e')])){_0xf440de['id']={'$in':_0x3479b2['body'][_0xab0a('0x7e')]};}_0x22b5b1=[['priority',_0xab0a('0x7f')],[_0xab0a('0x80'),_0x5baa23[0x0][_0xab0a('0x78')]===_0xab0a('0x7f')?_0xab0a('0x81'):_0xab0a('0x7f')],db[_0xab0a('0x79')][_0xab0a('0x82')](_0xab0a('0x83')),['id','DESC']];}else{if(!_['isEmpty'](_0x3479b2['body']['hopperIds'])){_0xf440de['id']={'$notIn':_0x3479b2['body'][_0xab0a('0x7e')]};}_0x22b5b1=[[_0xab0a('0x84'),_0xab0a('0x81')],[_0xab0a('0x80'),_0x5baa23[0x0]['dialOrderByScheduledAt']],db[_0xab0a('0x79')][_0xab0a('0x82')](_0xab0a('0x85')),['id',_0xab0a('0x7f')]];}return db[_0xab0a('0x2b')]['findOne']({'attributes':['id',_0xab0a('0x86')],'where':_0xf440de,'order':_0x22b5b1,'transaction':_0x22541e,'lock':_0x22541e['LOCK']['UPDATE'],'include':[{'model':db[_0xab0a('0x74')],'as':_0xab0a('0x87'),'attributes':_0x1df739,'include':[{'model':db[_0xab0a('0x88')],'as':_0xab0a('0x89'),'attributes':['id','name']}]},{'model':db[_0xab0a('0x8a')],'as':_0xab0a('0x8b'),'attributes':['id',_0xab0a('0x27')]},{'model':db['VoiceQueue'],'as':_0xab0a('0x8c'),'attributes':['id',_0xab0a('0x27'),'dialActive']}]})['then'](function(_0x52b0c4){if(_0x52b0c4){return _0x52b0c4[_0xab0a('0x8d')]({'UserId':_0x3479b2['user']['id']},{'transaction':_0x22541e});}});});}})[_0xab0a('0x24')](handleEntityNotFound(_0x3a8976,null))[_0xab0a('0x24')](respondWithResult(_0x3a8976,null))[_0xab0a('0x55')](handleError(_0x3a8976,null));};exports[_0xab0a('0x8e')]=function(_0x14a48f,_0x3f830b,_0xf8312b){return _0x14a48f[_0xab0a('0x68')][_0xab0a('0x75')]({'where':{'type':_0xab0a('0x76'),'dialActive':!![],'dialMethod':_0xab0a('0x77')},'attributes':['id'],'raw':!![]})[_0xab0a('0x24')](function(_0x59db4f){if(_0x59db4f&&_0x59db4f['length']){return db[_0xab0a('0x2b')]['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0xab0a('0x6a')](_0xab0a('0x7b'))},'VoiceQueueId':{'$in':_[_0xab0a('0x2a')](_0x59db4f,'id')},'$or':[{'UserId':null},{'UserId':_0x14a48f[_0xab0a('0x68')]['id']}]}});}return 0x0;})[_0xab0a('0x24')](function(_0x32a3e1){if(!_[_0xab0a('0x6f')](_0x32a3e1)&&_[_0xab0a('0x8f')](_0x32a3e1)){return _0x3f830b[_0xab0a('0x19')](0xc8)[_0xab0a('0x1b')]({'contacts':_0x32a3e1});}else{logger[_0xab0a('0x25')](_0xab0a('0x90'),'getOpenContacts',0x194,_0xab0a('0x91'));_0x3f830b[_0xab0a('0x18')](0x194);}})[_0xab0a('0x55')](handleError(_0x3f830b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['path','rimraf','../../config/environment','./cmHopper.attributes','define','cm_hopper','scheduledat','phone','priority','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x768d32,_0x17abed){var _0x400135=function(_0x3875ec){while(--_0x3875ec){_0x768d32['push'](_0x768d32['shift']());}};_0x400135(++_0x17abed);}(_0x1261,0x144));var _0x1126=function(_0x5ab340,_0x3bf3e4){_0x5ab340=_0x5ab340-0x0;var _0x2ed5b7=_0x1261[_0x5ab340];return _0x2ed5b7;};'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 fs=require('fs');var path=require(_0x1126('0x6'));var rimraf=require(_0x1126('0x7'));var config=require(_0x1126('0x8'));var attributes=require(_0x1126('0x9'));module['exports']=function(_0x5c68c8,_0x40ba58){return _0x5c68c8[_0x1126('0xa')]('CmHopper',attributes,{'tableName':_0x1126('0xb'),'paranoid':![],'indexes':[{'name':_0x1126('0xc'),'fields':[_0x1126('0xc')]},{'name':_0x1126('0xd'),'fields':[_0x1126('0xd')]},{'name':'priority','fields':[_0x1126('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x90b1=['priority','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','define','CmHopper','cm_hopper','scheduledat','phone'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x90b1,0x1bb));var _0x190b=function(_0x3e478c,_0x3afee8){_0x3e478c=_0x3e478c-0x0;var _0x3a0906=_0x90b1[_0x3e478c];return _0x3a0906;};'use strict';var _=require(_0x190b('0x0'));var util=require(_0x190b('0x1'));var logger=require(_0x190b('0x2'))('api');var moment=require('moment');var BPromise=require(_0x190b('0x3'));var rp=require(_0x190b('0x4'));var fs=require('fs');var path=require(_0x190b('0x5'));var rimraf=require(_0x190b('0x6'));var config=require('../../config/environment');var attributes=require('./cmHopper.attributes');module['exports']=function(_0x5da9c1,_0x27ff8c){return _0x5da9c1[_0x190b('0x7')](_0x190b('0x8'),attributes,{'tableName':_0x190b('0x9'),'paranoid':![],'indexes':[{'name':_0x190b('0xa'),'fields':[_0x190b('0xa')]},{'name':_0x190b('0xb'),'fields':['phone']},{'name':_0x190b('0xc'),'fields':[_0x190b('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb9bd=['request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetCmHopper','CmHopper','findAll','options','raw','where','attributes','limit','include','map','model','then','stringify','ShowCmHopper','CreateCmHopper','create','body','UpdateCmHopper','update','DestroyCmHopper','destroy','GetContactDialer','CmContact','describe','sequelize','transaction','order','LOCK','UPDATE','Contact','User','name','voicePause','length','UserId','includes','all','MoveContactManagedDialer','CmHopperFinal','CountReScheduled','COUNT','literal','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','contactsRescheduled','GetContactRecallMe','GetCmHopperPreview','keys','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','CmHopper,\x20%s,\x20%s'];(function(_0x4b935a,_0x327ee3){var _0xa298f0=function(_0x3e07c2){while(--_0x3e07c2){_0x4b935a['push'](_0x4b935a['shift']());}};_0xa298f0(++_0x327ee3);}(_0xb9bd,0x1ad));var _0xdb9b=function(_0xd1b5c5,_0x3630f9){_0xd1b5c5=_0xd1b5c5-0x0;var _0x90bd31=_0xb9bd[_0xd1b5c5];return _0x90bd31;};'use strict';var _=require(_0xdb9b('0x0'));var util=require(_0xdb9b('0x1'));var moment=require(_0xdb9b('0x2'));var BPromise=require('bluebird');var rs=require(_0xdb9b('0x3'));var fs=require('fs');var Redis=require(_0xdb9b('0x4'));var db=require(_0xdb9b('0x5'))['db'];var utils=require(_0xdb9b('0x6'));var logger=require('../../config/logger')(_0xdb9b('0x7'));var config=require(_0xdb9b('0x8'));var jayson=require(_0xdb9b('0x9'));var client=jayson[_0xdb9b('0xa')][_0xdb9b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x496db2,_0x4a48ca,_0xe54fc8){return new BPromise(function(_0x1b327c,_0xeeb74e){return client[_0xdb9b('0xc')](_0x496db2,_0xe54fc8)['then'](function(_0x2d553a){logger[_0xdb9b('0xd')](_0xdb9b('0xe'),_0x4a48ca,_0xdb9b('0xf'));logger[_0xdb9b('0x10')](_0xdb9b('0x11'),_0x4a48ca,_0xdb9b('0xf'),JSON['stringify'](_0x2d553a));if(_0x2d553a[_0xdb9b('0x12')]){if(_0x2d553a[_0xdb9b('0x12')][_0xdb9b('0x13')]===0x1f4){logger['error'](_0xdb9b('0xe'),_0x4a48ca,_0x2d553a['error'][_0xdb9b('0x14')]);return _0xeeb74e(_0x2d553a[_0xdb9b('0x12')]['message']);}logger[_0xdb9b('0x12')]('CmHopper,\x20%s,\x20%s',_0x4a48ca,_0x2d553a[_0xdb9b('0x12')][_0xdb9b('0x14')]);return _0x1b327c(_0x2d553a[_0xdb9b('0x12')][_0xdb9b('0x14')]);}else{logger['info'](_0xdb9b('0xe'),_0x4a48ca,_0xdb9b('0xf'));_0x1b327c(_0x2d553a[_0xdb9b('0x15')][_0xdb9b('0x14')]);}})[_0xdb9b('0x16')](function(_0x138d0e){logger[_0xdb9b('0x12')](_0xdb9b('0xe'),_0x4a48ca,_0x138d0e);_0xeeb74e(_0x138d0e);});});}exports[_0xdb9b('0x17')]=function(_0x56c096){var _0x4f343f=this;return new Promise(function(_0x2c66d1,_0x168320){return db[_0xdb9b('0x18')][_0xdb9b('0x19')]({'raw':_0x56c096[_0xdb9b('0x1a')]?_0x56c096[_0xdb9b('0x1a')][_0xdb9b('0x1b')]===undefined?!![]:![]:!![],'where':_0x56c096[_0xdb9b('0x1a')]?_0x56c096[_0xdb9b('0x1a')][_0xdb9b('0x1c')]||null:null,'attributes':_0x56c096['options']?_0x56c096['options'][_0xdb9b('0x1d')]||null:null,'limit':_0x56c096[_0xdb9b('0x1a')]?_0x56c096[_0xdb9b('0x1a')][_0xdb9b('0x1e')]||null:null,'include':_0x56c096[_0xdb9b('0x1a')]?_0x56c096[_0xdb9b('0x1a')][_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x56c096[_0xdb9b('0x1a')][_0xdb9b('0x1f')],function(_0x2e2120){return{'model':db[_0x2e2120[_0xdb9b('0x21')]],'as':_0x2e2120['as'],'attributes':_0x2e2120['attributes'],'include':_0x2e2120[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x2e2120[_0xdb9b('0x1f')],function(_0x2ab956){return{'model':db[_0x2ab956[_0xdb9b('0x21')]],'as':_0x2ab956['as'],'attributes':_0x2ab956[_0xdb9b('0x1d')],'include':_0x2ab956[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x2ab956['include'],function(_0x3c9e76){return{'model':db[_0x3c9e76[_0xdb9b('0x21')]],'as':_0x3c9e76['as'],'attributes':_0x3c9e76[_0xdb9b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xdb9b('0x22')](function(_0x1d5eb7){logger[_0xdb9b('0xd')](_0xdb9b('0x17'),_0x56c096);logger['debug'](_0xdb9b('0x17'),_0x56c096,JSON[_0xdb9b('0x23')](_0x1d5eb7));_0x2c66d1(_0x1d5eb7);})['catch'](function(_0x346fc5){logger[_0xdb9b('0x12')](_0xdb9b('0x17'),_0x346fc5['message'],_0x56c096);_0x168320(_0x4f343f[_0xdb9b('0x12')](0x1f4,_0x346fc5['message']));});});};exports[_0xdb9b('0x24')]=function(_0x1b69ac){var _0x4ba05d=this;return new Promise(function(_0x32549c,_0x3551ea){return db[_0xdb9b('0x18')]['find']({'raw':_0x1b69ac['options']?_0x1b69ac[_0xdb9b('0x1a')][_0xdb9b('0x1b')]===undefined?!![]:![]:!![],'where':_0x1b69ac['options']?_0x1b69ac[_0xdb9b('0x1a')][_0xdb9b('0x1c')]||null:null,'attributes':_0x1b69ac[_0xdb9b('0x1a')]?_0x1b69ac['options'][_0xdb9b('0x1d')]||null:null,'include':_0x1b69ac['options']?_0x1b69ac[_0xdb9b('0x1a')][_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x1b69ac['options']['include'],function(_0x20d209){return{'model':db[_0x20d209[_0xdb9b('0x21')]],'as':_0x20d209['as'],'attributes':_0x20d209[_0xdb9b('0x1d')],'include':_0x20d209[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x20d209[_0xdb9b('0x1f')],function(_0x38a79a){return{'model':db[_0x38a79a[_0xdb9b('0x21')]],'as':_0x38a79a['as'],'attributes':_0x38a79a[_0xdb9b('0x1d')],'include':_0x38a79a[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x38a79a[_0xdb9b('0x1f')],function(_0x12144b){return{'model':db[_0x12144b[_0xdb9b('0x21')]],'as':_0x12144b['as'],'attributes':_0x12144b[_0xdb9b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xdb9b('0x22')](function(_0x4c44f1){logger[_0xdb9b('0xd')](_0xdb9b('0x24'),_0x1b69ac);logger[_0xdb9b('0x10')](_0xdb9b('0x24'),_0x1b69ac,JSON[_0xdb9b('0x23')](_0x4c44f1));_0x32549c(_0x4c44f1);})['catch'](function(_0x9ecb06){logger[_0xdb9b('0x12')](_0xdb9b('0x24'),_0x9ecb06['message'],_0x1b69ac);_0x3551ea(_0x4ba05d[_0xdb9b('0x12')](0x1f4,_0x9ecb06['message']));});});};exports[_0xdb9b('0x25')]=function(_0x196095){var _0x13db0f=this;return new Promise(function(_0x2f7223,_0x49ce58){return db[_0xdb9b('0x18')][_0xdb9b('0x26')](_0x196095[_0xdb9b('0x27')],{'raw':_0x196095['options']?_0x196095['options']['raw']===undefined?!![]:![]:!![]})[_0xdb9b('0x22')](function(_0x4d4863){logger['info'](_0xdb9b('0x25'),_0x196095);logger[_0xdb9b('0x10')]('CreateCmHopper',_0x196095,JSON[_0xdb9b('0x23')](_0x4d4863));_0x2f7223(_0x4d4863);})[_0xdb9b('0x16')](function(_0x3602d2){logger[_0xdb9b('0x12')](_0xdb9b('0x25'),_0x3602d2['message'],_0x196095);_0x49ce58(_0x13db0f[_0xdb9b('0x12')](0x1f4,_0x3602d2[_0xdb9b('0x14')]));});});};exports[_0xdb9b('0x28')]=function(_0x544cb4){var _0x54fa19=this;return new Promise(function(_0x39b5ee,_0x22c428){return db[_0xdb9b('0x18')][_0xdb9b('0x29')](_0x544cb4['body'],{'raw':_0x544cb4[_0xdb9b('0x1a')]?_0x544cb4['options'][_0xdb9b('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x544cb4[_0xdb9b('0x1a')]?_0x544cb4[_0xdb9b('0x1a')]['where']||null:null,'attributes':_0x544cb4['options']?_0x544cb4[_0xdb9b('0x1a')][_0xdb9b('0x1d')]||null:null,'limit':_0x544cb4[_0xdb9b('0x1a')]?_0x544cb4[_0xdb9b('0x1a')][_0xdb9b('0x1e')]||null:null})[_0xdb9b('0x22')](function(_0x51f591){logger[_0xdb9b('0xd')](_0xdb9b('0x28'),_0x544cb4);logger[_0xdb9b('0x10')](_0xdb9b('0x28'),_0x544cb4,JSON['stringify'](_0x51f591));_0x39b5ee(_0x51f591);})[_0xdb9b('0x16')](function(_0x5f78c9){logger['error'](_0xdb9b('0x28'),_0x5f78c9['message'],_0x544cb4);_0x22c428(_0x54fa19['error'](0x1f4,_0x5f78c9[_0xdb9b('0x14')]));});});};exports[_0xdb9b('0x2a')]=function(_0x20c776){var _0x1567f6=this;return new Promise(function(_0x78fd15,_0x188557){return db[_0xdb9b('0x18')][_0xdb9b('0x2b')]({'where':_0x20c776['options']?_0x20c776[_0xdb9b('0x1a')][_0xdb9b('0x1c')]||null:null})[_0xdb9b('0x22')](function(_0x109019){logger['info']('DestroyCmHopper',_0x20c776);logger[_0xdb9b('0x10')](_0xdb9b('0x2a'),_0x20c776,JSON[_0xdb9b('0x23')](_0x109019));_0x78fd15(_0x109019);})[_0xdb9b('0x16')](function(_0x1b2e1d){logger['error'](_0xdb9b('0x2a'),_0x1b2e1d['message'],_0x20c776);_0x188557(_0x1567f6[_0xdb9b('0x12')](0x1f4,_0x1b2e1d[_0xdb9b('0x14')]));});});};exports[_0xdb9b('0x2c')]=function(_0x453e4f){var _0x59808a=this;return new Promise(function(_0x5e2e30,_0x1605f0){return db[_0xdb9b('0x2d')][_0xdb9b('0x2e')]()['then'](function(_0xb41abd){return db[_0xdb9b('0x2f')][_0xdb9b('0x30')](function(_0x48c9df){return db[_0xdb9b('0x18')][_0xdb9b('0x19')]({'where':_0x453e4f['options']?_0x453e4f['options']['where']||null:null,'attributes':_0x453e4f['options']?_0x453e4f[_0xdb9b('0x1a')][_0xdb9b('0x1d')]||null:null,'limit':_0x453e4f['options']?_0x453e4f[_0xdb9b('0x1a')][_0xdb9b('0x1e')]||null:null,'order':_0x453e4f[_0xdb9b('0x1a')]?_0x453e4f[_0xdb9b('0x1a')][_0xdb9b('0x31')]||null:null,'transaction':_0x48c9df,'lock':_0x48c9df[_0xdb9b('0x32')][_0xdb9b('0x33')],'include':[{'model':db[_0xdb9b('0x2d')],'as':_0xdb9b('0x34'),'attributes':_['keys'](_0xb41abd)},{'model':db[_0xdb9b('0x35')],'as':'Agent','attributes':['id',_0xdb9b('0x36'),_0xdb9b('0x37')]}]})['then'](function(_0x1ea3d7){var _0x2b629e=[];var _0x1ca109=[];for(var _0x30894f=0x0;_0x30894f<_0x1ea3d7[_0xdb9b('0x38')];_0x30894f+=0x1){var _0x166c66=_0x1ea3d7[_0x30894f][_0xdb9b('0x39')];if(_0x166c66===null){_0x2b629e['push'](_0x1ea3d7[_0x30894f][_0xdb9b('0x29')](_0x453e4f['body'],{'transaction':_0x48c9df}));}else if(!_0x1ca109[_0xdb9b('0x3a')](_0x166c66)){_0x1ca109['push'](_0x166c66);_0x2b629e['push'](_0x1ea3d7[_0x30894f][_0xdb9b('0x29')](_0x453e4f['body'],{'transaction':_0x48c9df}));}}return BPromise[_0xdb9b('0x3b')](_0x2b629e);});})[_0xdb9b('0x22')](function(_0x2bf180){logger[_0xdb9b('0xd')](_0xdb9b('0x2c'),_0x453e4f);logger['debug'](_0xdb9b('0x2c'),_0x453e4f,JSON[_0xdb9b('0x23')](_0x2bf180));_0x5e2e30(_0x2bf180);})[_0xdb9b('0x16')](function(_0x50be4b){logger[_0xdb9b('0x12')](_0xdb9b('0x2c'),_0x50be4b[_0xdb9b('0x14')],_0x453e4f);_0x1605f0(_0x59808a[_0xdb9b('0x12')](0x1f4,_0x50be4b[_0xdb9b('0x14')]));});});});};exports[_0xdb9b('0x3c')]=function(_0x2486e9){var _0x2115fb=this;return new Promise(function(_0x5d2e8c,_0x254c68){return db[_0xdb9b('0x2f')][_0xdb9b('0x30')](function(_0x30142e){return db[_0xdb9b('0x3d')]['create'](_0x2486e9[_0xdb9b('0x27')],{'raw':_0x2486e9[_0xdb9b('0x1a')]?_0x2486e9[_0xdb9b('0x1a')][_0xdb9b('0x1b')]===undefined?!![]:![]:!![],'transaction':_0x30142e})[_0xdb9b('0x22')](function(){return db[_0xdb9b('0x18')][_0xdb9b('0x2b')]({'where':_0x2486e9[_0xdb9b('0x1a')]?_0x2486e9[_0xdb9b('0x1a')][_0xdb9b('0x1c')]||null:null,'transaction':_0x30142e});});})[_0xdb9b('0x22')](function(_0x818266){logger[_0xdb9b('0xd')]('MoveContactManagedDialer',_0x2486e9);logger['debug'](_0xdb9b('0x3c'),_0x2486e9,JSON[_0xdb9b('0x23')](_0x818266));_0x5d2e8c(_0x818266);})['catch'](function(_0xf48c06){logger[_0xdb9b('0x12')]('MoveContactManagedDialer',_0xf48c06[_0xdb9b('0x14')],_0x2486e9);_0x254c68(_0x2115fb[_0xdb9b('0x12')](0x1f4,_0xf48c06[_0xdb9b('0x14')]));});});};exports[_0xdb9b('0x3e')]=function(_0x3c255e){var _0x1d0aad=this;return new Promise(function(_0x4db48d,_0x439b52){return db['CmHopper'][_0xdb9b('0x19')]({'raw':_0x3c255e[_0xdb9b('0x1a')]?_0x3c255e[_0xdb9b('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x3c255e['options']?_0x3c255e[_0xdb9b('0x1a')][_0xdb9b('0x1c')]||null:null,'attributes':[[db[_0xdb9b('0x2f')]['fn'](_0xdb9b('0x3f'),db['sequelize']['fn']('IF',db[_0xdb9b('0x2f')][_0xdb9b('0x40')](_0xdb9b('0x41')+util[_0xdb9b('0x42')](_0xdb9b('0x43'),moment()[_0xdb9b('0x42')](_0xdb9b('0x44')))+_0xdb9b('0x45')))),_0xdb9b('0x46')]]})[_0xdb9b('0x22')](function(_0x752877){logger[_0xdb9b('0xd')](_0xdb9b('0x3e'),_0x3c255e);logger[_0xdb9b('0x10')](_0xdb9b('0x3e'),_0x3c255e,JSON['stringify'](_0x752877));_0x4db48d(_0x752877);})[_0xdb9b('0x16')](function(_0x233f5a){logger['error'](_0xdb9b('0x3e'),_0x233f5a[_0xdb9b('0x14')],_0x3c255e);_0x439b52(_0x1d0aad['error'](0x1f4,_0x233f5a[_0xdb9b('0x14')]));});});};exports[_0xdb9b('0x47')]=function(_0x15b73e){var _0x2d1c25=this;return new Promise(function(_0x5956fa,_0x4f2b8d){return db[_0xdb9b('0x2d')][_0xdb9b('0x2e')]()[_0xdb9b('0x22')](function(_0x20f34c){return db[_0xdb9b('0x2f')][_0xdb9b('0x30')](function(_0x18305d){return db[_0xdb9b('0x18')][_0xdb9b('0x19')]({'where':_0x15b73e[_0xdb9b('0x1a')]?_0x15b73e[_0xdb9b('0x1a')][_0xdb9b('0x1c')]||null:null,'attributes':_0x15b73e[_0xdb9b('0x1a')]?_0x15b73e[_0xdb9b('0x1a')]['attributes']||null:null,'limit':0x1,'order':_0x15b73e[_0xdb9b('0x1a')]?_0x15b73e[_0xdb9b('0x1a')][_0xdb9b('0x31')]||null:null,'group':db[_0xdb9b('0x18')][_0xdb9b('0x39')],'transaction':_0x18305d,'lock':_0x18305d[_0xdb9b('0x32')][_0xdb9b('0x33')],'include':_0x15b73e[_0xdb9b('0x1a')]?_0x15b73e['options']['include']?_[_0xdb9b('0x20')](_0x15b73e[_0xdb9b('0x1a')][_0xdb9b('0x1f')],function(_0x4e891c){return{'model':db[_0x4e891c[_0xdb9b('0x21')]],'as':_0x4e891c['as'],'attributes':_0x4e891c['attributes'],'include':_0x4e891c[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x4e891c[_0xdb9b('0x1f')],function(_0xfdd5b8){return{'model':db[_0xfdd5b8[_0xdb9b('0x21')]],'as':_0xfdd5b8['as'],'attributes':_0xfdd5b8[_0xdb9b('0x1d')],'include':_0xfdd5b8[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0xfdd5b8[_0xdb9b('0x1f')],function(_0x377f29){return{'model':db[_0x377f29[_0xdb9b('0x21')]],'as':_0x377f29['as'],'attributes':_0x377f29['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5b8beb){var _0xc08b51=[];for(var _0x278f81=0x0;_0x278f81<_0x5b8beb['length'];_0x278f81+=0x1){_0xc08b51['push'](_0x5b8beb[_0x278f81][_0xdb9b('0x29')](_0x15b73e[_0xdb9b('0x27')],{'transaction':_0x18305d}));}return BPromise[_0xdb9b('0x3b')](_0xc08b51);});})[_0xdb9b('0x22')](function(_0x3f4e34){logger[_0xdb9b('0xd')](_0xdb9b('0x47'),_0x15b73e);logger[_0xdb9b('0x10')](_0xdb9b('0x47'),_0x15b73e,JSON[_0xdb9b('0x23')](_0x3f4e34));_0x5956fa(_0x3f4e34);})[_0xdb9b('0x16')](function(_0x794a7d){logger['error']('GetContactRecallMe',_0x794a7d[_0xdb9b('0x14')],_0x15b73e);_0x4f2b8d(_0x2d1c25[_0xdb9b('0x12')](0x1f4,_0x794a7d[_0xdb9b('0x14')]));});});});};exports[_0xdb9b('0x48')]=function(_0x25bb19){var _0x32ab2c=this;return new Promise(function(_0x2c474f,_0x19a13a){db[_0xdb9b('0x2d')][_0xdb9b('0x2e')]()['then'](function(_0x4bec55){return db[_0xdb9b('0x18')]['findAll']({'raw':_0x25bb19['options']?_0x25bb19[_0xdb9b('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x25bb19[_0xdb9b('0x1a')]?_0x25bb19['options']['where']||null:null,'attributes':_0x25bb19[_0xdb9b('0x1a')]?_0x25bb19[_0xdb9b('0x1a')][_0xdb9b('0x1d')]||null:null,'limit':_0x25bb19[_0xdb9b('0x1a')]?_0x25bb19['options']['limit']||null:null,'include':_0x25bb19['options']?_0x25bb19[_0xdb9b('0x1a')]['include']?_[_0xdb9b('0x20')](_0x25bb19[_0xdb9b('0x1a')][_0xdb9b('0x1f')],function(_0x36f7e9){return{'model':db[_0x36f7e9[_0xdb9b('0x21')]],'as':_0x36f7e9['as'],'attributes':_0x36f7e9['as']==='Contact'?_[_0xdb9b('0x49')](_0x4bec55):_0x36f7e9[_0xdb9b('0x1d')],'include':_0x36f7e9[_0xdb9b('0x1f')]?_[_0xdb9b('0x20')](_0x36f7e9['include'],function(_0x57b553){return{'model':db[_0x57b553[_0xdb9b('0x21')]],'as':_0x57b553['as'],'attributes':_0x57b553['attributes'],'include':_0x57b553[_0xdb9b('0x1f')]?_['map'](_0x57b553[_0xdb9b('0x1f')],function(_0x1f0545){return{'model':db[_0x1f0545[_0xdb9b('0x21')]],'as':_0x1f0545['as'],'attributes':_0x1f0545[_0xdb9b('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xdb9b('0x22')](function(_0x5756f4){logger['info'](_0xdb9b('0x17'),_0x25bb19);logger[_0xdb9b('0x10')](_0xdb9b('0x17'),_0x25bb19,JSON[_0xdb9b('0x23')](_0x5756f4));_0x2c474f(_0x5756f4);})[_0xdb9b('0x16')](function(_0x4cfc64){logger['error'](_0xdb9b('0x17'),_0x4cfc64[_0xdb9b('0x14')],_0x25bb19);_0x19a13a(_0x32ab2c[_0xdb9b('0x12')](0x1f4,_0x4cfc64[_0xdb9b('0x14')]));});});});};
\ No newline at end of file
+var _0x2d7f=['request','info','CmHopper,\x20%s,\x20%s','request\x20sent','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetCmHopper','options','raw','where','attributes','limit','include','model','map','debug','ShowCmHopper','CmHopper','find','then','CreateCmHopper','create','body','UpdateCmHopper','destroy','DestroyCmHopper','GetContactDialer','CmContact','transaction','findAll','order','UPDATE','Contact','keys','User','Agent','name','voicePause','UserId','push','update','all','MoveContactManagedDialer','sequelize','CmHopperFinal','CountReScheduled','COUNT','`scheduledat`\x20>=\x20','format','\x22%s\x22','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','GetContactRecallMe','LOCK','length','GetCmHopperPreview','describe','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client'];(function(_0xce1c9a,_0x5c0290){var _0x25afd3=function(_0x4ec42c){while(--_0x4ec42c){_0xce1c9a['push'](_0xce1c9a['shift']());}};_0x25afd3(++_0x5c0290);}(_0x2d7f,0x11c));var _0xf2d7=function(_0x23e6c9,_0x22b81f){_0x23e6c9=_0x23e6c9-0x0;var _0x23a4df=_0x2d7f[_0x23e6c9];return _0x23a4df;};'use strict';var _=require(_0xf2d7('0x0'));var util=require(_0xf2d7('0x1'));var moment=require(_0xf2d7('0x2'));var BPromise=require(_0xf2d7('0x3'));var rs=require(_0xf2d7('0x4'));var fs=require('fs');var Redis=require(_0xf2d7('0x5'));var db=require(_0xf2d7('0x6'))['db'];var utils=require(_0xf2d7('0x7'));var logger=require('../../config/logger')(_0xf2d7('0x8'));var config=require(_0xf2d7('0x9'));var jayson=require(_0xf2d7('0xa'));var client=jayson[_0xf2d7('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x50f664,_0x41483c,_0x39e15){return new BPromise(function(_0x4502bb,_0x1b5ab3){return client[_0xf2d7('0xc')](_0x50f664,_0x39e15)['then'](function(_0x2316e8){logger[_0xf2d7('0xd')](_0xf2d7('0xe'),_0x41483c,_0xf2d7('0xf'));logger['debug'](_0xf2d7('0x10'),_0x41483c,_0xf2d7('0xf'),JSON[_0xf2d7('0x11')](_0x2316e8));if(_0x2316e8[_0xf2d7('0x12')]){if(_0x2316e8[_0xf2d7('0x12')][_0xf2d7('0x13')]===0x1f4){logger[_0xf2d7('0x12')](_0xf2d7('0xe'),_0x41483c,_0x2316e8[_0xf2d7('0x12')][_0xf2d7('0x14')]);return _0x1b5ab3(_0x2316e8['error'][_0xf2d7('0x14')]);}logger[_0xf2d7('0x12')](_0xf2d7('0xe'),_0x41483c,_0x2316e8['error'][_0xf2d7('0x14')]);return _0x4502bb(_0x2316e8[_0xf2d7('0x12')][_0xf2d7('0x14')]);}else{logger[_0xf2d7('0xd')]('CmHopper,\x20%s,\x20%s',_0x41483c,_0xf2d7('0xf'));_0x4502bb(_0x2316e8[_0xf2d7('0x15')][_0xf2d7('0x14')]);}})[_0xf2d7('0x16')](function(_0x13e38e){logger[_0xf2d7('0x12')](_0xf2d7('0xe'),_0x41483c,_0x13e38e);_0x1b5ab3(_0x13e38e);});});}exports[_0xf2d7('0x17')]=function(_0x490589){var _0x171d9f=this;return new Promise(function(_0x2b6727,_0x59e59d){return db['CmHopper']['findAll']({'raw':_0x490589[_0xf2d7('0x18')]?_0x490589[_0xf2d7('0x18')][_0xf2d7('0x19')]===undefined?!![]:![]:!![],'where':_0x490589[_0xf2d7('0x18')]?_0x490589[_0xf2d7('0x18')][_0xf2d7('0x1a')]||null:null,'attributes':_0x490589[_0xf2d7('0x18')]?_0x490589[_0xf2d7('0x18')][_0xf2d7('0x1b')]||null:null,'limit':_0x490589[_0xf2d7('0x18')]?_0x490589[_0xf2d7('0x18')][_0xf2d7('0x1c')]||null:null,'include':_0x490589[_0xf2d7('0x18')]?_0x490589[_0xf2d7('0x18')][_0xf2d7('0x1d')]?_['map'](_0x490589[_0xf2d7('0x18')][_0xf2d7('0x1d')],function(_0x56765c){return{'model':db[_0x56765c[_0xf2d7('0x1e')]],'as':_0x56765c['as'],'attributes':_0x56765c[_0xf2d7('0x1b')],'include':_0x56765c[_0xf2d7('0x1d')]?_[_0xf2d7('0x1f')](_0x56765c[_0xf2d7('0x1d')],function(_0x5c5b5e){return{'model':db[_0x5c5b5e[_0xf2d7('0x1e')]],'as':_0x5c5b5e['as'],'attributes':_0x5c5b5e[_0xf2d7('0x1b')],'include':_0x5c5b5e[_0xf2d7('0x1d')]?_['map'](_0x5c5b5e[_0xf2d7('0x1d')],function(_0xf3ac37){return{'model':db[_0xf3ac37['model']],'as':_0xf3ac37['as'],'attributes':_0xf3ac37[_0xf2d7('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5bec63){logger[_0xf2d7('0xd')](_0xf2d7('0x17'),_0x490589);logger[_0xf2d7('0x20')](_0xf2d7('0x17'),_0x490589,JSON['stringify'](_0x5bec63));_0x2b6727(_0x5bec63);})[_0xf2d7('0x16')](function(_0x375e02){logger[_0xf2d7('0x12')](_0xf2d7('0x17'),_0x375e02[_0xf2d7('0x14')],_0x490589);_0x59e59d(_0x171d9f[_0xf2d7('0x12')](0x1f4,_0x375e02['message']));});});};exports[_0xf2d7('0x21')]=function(_0x440c65){var _0x18817d=this;return new Promise(function(_0x18c977,_0x41e425){return db[_0xf2d7('0x22')][_0xf2d7('0x23')]({'raw':_0x440c65[_0xf2d7('0x18')]?_0x440c65[_0xf2d7('0x18')][_0xf2d7('0x19')]===undefined?!![]:![]:!![],'where':_0x440c65[_0xf2d7('0x18')]?_0x440c65['options'][_0xf2d7('0x1a')]||null:null,'attributes':_0x440c65['options']?_0x440c65[_0xf2d7('0x18')]['attributes']||null:null,'include':_0x440c65[_0xf2d7('0x18')]?_0x440c65[_0xf2d7('0x18')][_0xf2d7('0x1d')]?_[_0xf2d7('0x1f')](_0x440c65[_0xf2d7('0x18')][_0xf2d7('0x1d')],function(_0x2160cd){return{'model':db[_0x2160cd['model']],'as':_0x2160cd['as'],'attributes':_0x2160cd[_0xf2d7('0x1b')],'include':_0x2160cd['include']?_[_0xf2d7('0x1f')](_0x2160cd[_0xf2d7('0x1d')],function(_0x3acc73){return{'model':db[_0x3acc73['model']],'as':_0x3acc73['as'],'attributes':_0x3acc73[_0xf2d7('0x1b')],'include':_0x3acc73[_0xf2d7('0x1d')]?_['map'](_0x3acc73['include'],function(_0x449f6e){return{'model':db[_0x449f6e[_0xf2d7('0x1e')]],'as':_0x449f6e['as'],'attributes':_0x449f6e[_0xf2d7('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xf2d7('0x24')](function(_0x1897dd){logger['info'](_0xf2d7('0x21'),_0x440c65);logger['debug'](_0xf2d7('0x21'),_0x440c65,JSON[_0xf2d7('0x11')](_0x1897dd));_0x18c977(_0x1897dd);})[_0xf2d7('0x16')](function(_0x531160){logger[_0xf2d7('0x12')](_0xf2d7('0x21'),_0x531160[_0xf2d7('0x14')],_0x440c65);_0x41e425(_0x18817d[_0xf2d7('0x12')](0x1f4,_0x531160[_0xf2d7('0x14')]));});});};exports[_0xf2d7('0x25')]=function(_0x4f931b){var _0x31d52c=this;return new Promise(function(_0x27aa24,_0x336d57){return db[_0xf2d7('0x22')][_0xf2d7('0x26')](_0x4f931b[_0xf2d7('0x27')],{'raw':_0x4f931b['options']?_0x4f931b[_0xf2d7('0x18')][_0xf2d7('0x19')]===undefined?!![]:![]:!![]})[_0xf2d7('0x24')](function(_0x41afb5){logger[_0xf2d7('0xd')]('CreateCmHopper',_0x4f931b);logger['debug'](_0xf2d7('0x25'),_0x4f931b,JSON[_0xf2d7('0x11')](_0x41afb5));_0x27aa24(_0x41afb5);})['catch'](function(_0x5afa09){logger[_0xf2d7('0x12')](_0xf2d7('0x25'),_0x5afa09[_0xf2d7('0x14')],_0x4f931b);_0x336d57(_0x31d52c['error'](0x1f4,_0x5afa09[_0xf2d7('0x14')]));});});};exports[_0xf2d7('0x28')]=function(_0x29f7e6){var _0x43cc1b=this;return new Promise(function(_0x44f843,_0x428d40){return db['CmHopper']['update'](_0x29f7e6['body'],{'raw':_0x29f7e6['options']?_0x29f7e6['options'][_0xf2d7('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x29f7e6[_0xf2d7('0x18')]?_0x29f7e6[_0xf2d7('0x18')][_0xf2d7('0x1a')]||null:null,'attributes':_0x29f7e6['options']?_0x29f7e6[_0xf2d7('0x18')][_0xf2d7('0x1b')]||null:null,'limit':_0x29f7e6[_0xf2d7('0x18')]?_0x29f7e6[_0xf2d7('0x18')][_0xf2d7('0x1c')]||null:null})[_0xf2d7('0x24')](function(_0x232cfe){logger[_0xf2d7('0xd')](_0xf2d7('0x28'),_0x29f7e6);logger[_0xf2d7('0x20')](_0xf2d7('0x28'),_0x29f7e6,JSON[_0xf2d7('0x11')](_0x232cfe));_0x44f843(_0x232cfe);})[_0xf2d7('0x16')](function(_0x3e1d6f){logger['error']('UpdateCmHopper',_0x3e1d6f['message'],_0x29f7e6);_0x428d40(_0x43cc1b[_0xf2d7('0x12')](0x1f4,_0x3e1d6f[_0xf2d7('0x14')]));});});};exports['DestroyCmHopper']=function(_0x2dccae){var _0x5caccb=this;return new Promise(function(_0x774cc1,_0x12a89b){return db[_0xf2d7('0x22')][_0xf2d7('0x29')]({'where':_0x2dccae['options']?_0x2dccae['options'][_0xf2d7('0x1a')]||null:null})[_0xf2d7('0x24')](function(_0xf4582c){logger[_0xf2d7('0xd')]('DestroyCmHopper',_0x2dccae);logger[_0xf2d7('0x20')](_0xf2d7('0x2a'),_0x2dccae,JSON['stringify'](_0xf4582c));_0x774cc1(_0xf4582c);})[_0xf2d7('0x16')](function(_0xb0cdd1){logger[_0xf2d7('0x12')]('DestroyCmHopper',_0xb0cdd1[_0xf2d7('0x14')],_0x2dccae);_0x12a89b(_0x5caccb[_0xf2d7('0x12')](0x1f4,_0xb0cdd1[_0xf2d7('0x14')]));});});};exports[_0xf2d7('0x2b')]=function(_0x384507){var _0x5175b8=this;return new Promise(function(_0x27b6eb,_0x58bd5e){return db[_0xf2d7('0x2c')]['describe']()[_0xf2d7('0x24')](function(_0x3f6289){return db['sequelize'][_0xf2d7('0x2d')](function(_0x7fab5){return db[_0xf2d7('0x22')][_0xf2d7('0x2e')]({'where':_0x384507[_0xf2d7('0x18')]?_0x384507['options'][_0xf2d7('0x1a')]||null:null,'attributes':_0x384507[_0xf2d7('0x18')]?_0x384507['options']['attributes']||null:null,'limit':_0x384507[_0xf2d7('0x18')]?_0x384507[_0xf2d7('0x18')][_0xf2d7('0x1c')]||null:null,'order':_0x384507[_0xf2d7('0x18')]?_0x384507['options'][_0xf2d7('0x2f')]||null:null,'transaction':_0x7fab5,'lock':_0x7fab5['LOCK'][_0xf2d7('0x30')],'include':[{'model':db[_0xf2d7('0x2c')],'as':_0xf2d7('0x31'),'attributes':_[_0xf2d7('0x32')](_0x3f6289)},{'model':db[_0xf2d7('0x33')],'as':_0xf2d7('0x34'),'attributes':['id',_0xf2d7('0x35'),_0xf2d7('0x36')]}]})[_0xf2d7('0x24')](function(_0x2b56e0){var _0x278cc4=[];var _0x4f1dd3=[];for(var _0x6ab814=0x0;_0x6ab814<_0x2b56e0['length'];_0x6ab814+=0x1){var _0x25a6e4=_0x2b56e0[_0x6ab814][_0xf2d7('0x37')];if(_0x25a6e4===null){_0x278cc4[_0xf2d7('0x38')](_0x2b56e0[_0x6ab814][_0xf2d7('0x39')](_0x384507['body'],{'transaction':_0x7fab5}));}else if(!_0x4f1dd3['includes'](_0x25a6e4)){_0x4f1dd3[_0xf2d7('0x38')](_0x25a6e4);_0x278cc4['push'](_0x2b56e0[_0x6ab814][_0xf2d7('0x39')](_0x384507[_0xf2d7('0x27')],{'transaction':_0x7fab5}));}}return BPromise[_0xf2d7('0x3a')](_0x278cc4);});})[_0xf2d7('0x24')](function(_0x2310ca){logger[_0xf2d7('0xd')](_0xf2d7('0x2b'),_0x384507);logger['debug']('GetContactDialer',_0x384507,JSON[_0xf2d7('0x11')](_0x2310ca));_0x27b6eb(_0x2310ca);})[_0xf2d7('0x16')](function(_0x2bac57){logger[_0xf2d7('0x12')](_0xf2d7('0x2b'),_0x2bac57[_0xf2d7('0x14')],_0x384507);_0x58bd5e(_0x5175b8[_0xf2d7('0x12')](0x1f4,_0x2bac57[_0xf2d7('0x14')]));});});});};exports[_0xf2d7('0x3b')]=function(_0x171e75){var _0x2d3be6=this;return new Promise(function(_0x54312b,_0x3bbb07){return db[_0xf2d7('0x3c')][_0xf2d7('0x2d')](function(_0xbacea3){return db[_0xf2d7('0x3d')][_0xf2d7('0x26')](_0x171e75['body'],{'raw':_0x171e75['options']?_0x171e75['options'][_0xf2d7('0x19')]===undefined?!![]:![]:!![],'transaction':_0xbacea3})[_0xf2d7('0x24')](function(){return db[_0xf2d7('0x22')][_0xf2d7('0x29')]({'where':_0x171e75[_0xf2d7('0x18')]?_0x171e75[_0xf2d7('0x18')][_0xf2d7('0x1a')]||null:null,'transaction':_0xbacea3});});})[_0xf2d7('0x24')](function(_0x5e069e){logger[_0xf2d7('0xd')](_0xf2d7('0x3b'),_0x171e75);logger[_0xf2d7('0x20')](_0xf2d7('0x3b'),_0x171e75,JSON['stringify'](_0x5e069e));_0x54312b(_0x5e069e);})[_0xf2d7('0x16')](function(_0x560253){logger[_0xf2d7('0x12')](_0xf2d7('0x3b'),_0x560253[_0xf2d7('0x14')],_0x171e75);_0x3bbb07(_0x2d3be6['error'](0x1f4,_0x560253['message']));});});};exports[_0xf2d7('0x3e')]=function(_0x1d289c){var _0x2a7528=this;return new Promise(function(_0x2b6837,_0x4f1419){return db['CmHopper'][_0xf2d7('0x2e')]({'raw':_0x1d289c[_0xf2d7('0x18')]?_0x1d289c[_0xf2d7('0x18')][_0xf2d7('0x19')]===undefined?!![]:![]:!![],'where':_0x1d289c[_0xf2d7('0x18')]?_0x1d289c[_0xf2d7('0x18')][_0xf2d7('0x1a')]||null:null,'attributes':[[db[_0xf2d7('0x3c')]['fn'](_0xf2d7('0x3f'),db[_0xf2d7('0x3c')]['fn']('IF',db[_0xf2d7('0x3c')]['literal'](_0xf2d7('0x40')+util[_0xf2d7('0x41')](_0xf2d7('0x42'),moment()[_0xf2d7('0x41')](_0xf2d7('0x43')))+_0xf2d7('0x44')))),'contactsRescheduled']]})[_0xf2d7('0x24')](function(_0x54f11a){logger['info'](_0xf2d7('0x3e'),_0x1d289c);logger[_0xf2d7('0x20')]('CountReScheduled',_0x1d289c,JSON[_0xf2d7('0x11')](_0x54f11a));_0x2b6837(_0x54f11a);})[_0xf2d7('0x16')](function(_0x259843){logger[_0xf2d7('0x12')](_0xf2d7('0x3e'),_0x259843[_0xf2d7('0x14')],_0x1d289c);_0x4f1419(_0x2a7528['error'](0x1f4,_0x259843[_0xf2d7('0x14')]));});});};exports[_0xf2d7('0x45')]=function(_0x5bfdab){var _0x205bc5=this;return new Promise(function(_0x40d6ce,_0x317f70){return db['CmContact']['describe']()[_0xf2d7('0x24')](function(_0xd7ecc9){return db[_0xf2d7('0x3c')][_0xf2d7('0x2d')](function(_0x33bc6f){return db[_0xf2d7('0x22')][_0xf2d7('0x2e')]({'where':_0x5bfdab['options']?_0x5bfdab[_0xf2d7('0x18')]['where']||null:null,'attributes':_0x5bfdab[_0xf2d7('0x18')]?_0x5bfdab[_0xf2d7('0x18')][_0xf2d7('0x1b')]||null:null,'limit':0x1,'order':_0x5bfdab[_0xf2d7('0x18')]?_0x5bfdab[_0xf2d7('0x18')][_0xf2d7('0x2f')]||null:null,'group':db['CmHopper'][_0xf2d7('0x37')],'transaction':_0x33bc6f,'lock':_0x33bc6f[_0xf2d7('0x46')][_0xf2d7('0x30')],'include':_0x5bfdab[_0xf2d7('0x18')]?_0x5bfdab['options']['include']?_['map'](_0x5bfdab[_0xf2d7('0x18')]['include'],function(_0x40709d){return{'model':db[_0x40709d[_0xf2d7('0x1e')]],'as':_0x40709d['as'],'attributes':_0x40709d['attributes'],'include':_0x40709d['include']?_[_0xf2d7('0x1f')](_0x40709d[_0xf2d7('0x1d')],function(_0x202042){return{'model':db[_0x202042['model']],'as':_0x202042['as'],'attributes':_0x202042['attributes'],'include':_0x202042[_0xf2d7('0x1d')]?_[_0xf2d7('0x1f')](_0x202042[_0xf2d7('0x1d')],function(_0xc1908d){return{'model':db[_0xc1908d['model']],'as':_0xc1908d['as'],'attributes':_0xc1908d[_0xf2d7('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xf2d7('0x24')](function(_0x268b8b){var _0x1a4a36=[];for(var _0x107344=0x0;_0x107344<_0x268b8b[_0xf2d7('0x47')];_0x107344+=0x1){_0x1a4a36[_0xf2d7('0x38')](_0x268b8b[_0x107344][_0xf2d7('0x39')](_0x5bfdab['body'],{'transaction':_0x33bc6f}));}return BPromise[_0xf2d7('0x3a')](_0x1a4a36);});})[_0xf2d7('0x24')](function(_0x2350f2){logger[_0xf2d7('0xd')](_0xf2d7('0x45'),_0x5bfdab);logger[_0xf2d7('0x20')](_0xf2d7('0x45'),_0x5bfdab,JSON[_0xf2d7('0x11')](_0x2350f2));_0x40d6ce(_0x2350f2);})[_0xf2d7('0x16')](function(_0x168557){logger['error']('GetContactRecallMe',_0x168557['message'],_0x5bfdab);_0x317f70(_0x205bc5[_0xf2d7('0x12')](0x1f4,_0x168557[_0xf2d7('0x14')]));});});});};exports[_0xf2d7('0x48')]=function(_0x3953bf){var _0x39f1e=this;return new Promise(function(_0x2d6c0a,_0x35bcf4){db['CmContact'][_0xf2d7('0x49')]()[_0xf2d7('0x24')](function(_0x163396){return db[_0xf2d7('0x22')]['findAll']({'raw':_0x3953bf[_0xf2d7('0x18')]?_0x3953bf[_0xf2d7('0x18')][_0xf2d7('0x19')]===undefined?!![]:![]:!![],'where':_0x3953bf['options']?_0x3953bf[_0xf2d7('0x18')][_0xf2d7('0x1a')]||null:null,'attributes':_0x3953bf['options']?_0x3953bf['options']['attributes']||null:null,'limit':_0x3953bf[_0xf2d7('0x18')]?_0x3953bf[_0xf2d7('0x18')][_0xf2d7('0x1c')]||null:null,'include':_0x3953bf['options']?_0x3953bf[_0xf2d7('0x18')][_0xf2d7('0x1d')]?_[_0xf2d7('0x1f')](_0x3953bf[_0xf2d7('0x18')][_0xf2d7('0x1d')],function(_0x1ad622){return{'model':db[_0x1ad622[_0xf2d7('0x1e')]],'as':_0x1ad622['as'],'attributes':_0x1ad622['as']==='Contact'?_['keys'](_0x163396):_0x1ad622[_0xf2d7('0x1b')],'include':_0x1ad622[_0xf2d7('0x1d')]?_[_0xf2d7('0x1f')](_0x1ad622[_0xf2d7('0x1d')],function(_0x23e51e){return{'model':db[_0x23e51e['model']],'as':_0x23e51e['as'],'attributes':_0x23e51e[_0xf2d7('0x1b')],'include':_0x23e51e[_0xf2d7('0x1d')]?_[_0xf2d7('0x1f')](_0x23e51e['include'],function(_0x5e6f0f){return{'model':db[_0x5e6f0f[_0xf2d7('0x1e')]],'as':_0x5e6f0f['as'],'attributes':_0x5e6f0f['attributes']};}):[]};}):[]};}):[]:[]})[_0xf2d7('0x24')](function(_0x2c8b7f){logger['info']('GetCmHopper',_0x3953bf);logger['debug'](_0xf2d7('0x17'),_0x3953bf,JSON[_0xf2d7('0x11')](_0x2c8b7f));_0x2d6c0a(_0x2c8b7f);})[_0xf2d7('0x16')](function(_0x400426){logger[_0xf2d7('0x12')](_0xf2d7('0x17'),_0x400426[_0xf2d7('0x14')],_0x3953bf);_0x35bcf4(_0x39f1e[_0xf2d7('0x12')](0x1f4,_0x400426[_0xf2d7('0x14')]));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf198=['Router','fs-extra','../../components/auth/service','../../config/environment','./cmHopper.controller','isAuthenticated','get','describe','/opencontacts','/:id','show','create','/preview','getPreview','put','update','destroy','exports','multer','path','connect-timeout','express'];(function(_0x3e80d3,_0x4188cc){var _0x4d5330=function(_0x26dac3){while(--_0x26dac3){_0x3e80d3['push'](_0x3e80d3['shift']());}};_0x4d5330(++_0x4188cc);}(_0xf198,0x1e0));var _0x8f19=function(_0x29857a,_0x3e8b40){_0x29857a=_0x29857a-0x0;var _0x1b03e0=_0xf198[_0x29857a];return _0x1b03e0;};'use strict';var multer=require(_0x8f19('0x0'));var util=require('util');var path=require(_0x8f19('0x1'));var timeout=require(_0x8f19('0x2'));var express=require(_0x8f19('0x3'));var router=express[_0x8f19('0x4')]();var fs_extra=require(_0x8f19('0x5'));var auth=require(_0x8f19('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x8f19('0x7'));var controller=require(_0x8f19('0x8'));router['get']('/',auth[_0x8f19('0x9')](),controller['index']);router[_0x8f19('0xa')]('/describe',auth[_0x8f19('0x9')](),controller[_0x8f19('0xb')]);router['get'](_0x8f19('0xc'),auth[_0x8f19('0x9')](),controller['getOpenContacts']);router[_0x8f19('0xa')](_0x8f19('0xd'),auth[_0x8f19('0x9')](),controller[_0x8f19('0xe')]);router['post']('/',auth[_0x8f19('0x9')](),controller[_0x8f19('0xf')]);router['post'](_0x8f19('0x10'),auth[_0x8f19('0x9')](),controller[_0x8f19('0x11')]);router[_0x8f19('0x12')]('/:id',auth[_0x8f19('0x9')](),controller[_0x8f19('0x13')]);router['delete'](_0x8f19('0xd'),auth[_0x8f19('0x9')](),controller[_0x8f19('0x14')]);module[_0x8f19('0x15')]=router;
\ No newline at end of file
+var _0x3a2f=['describe','/opencontacts','getOpenContacts','show','post','/preview','getPreview','put','update','delete','/:id','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./cmHopper.controller','get','isAuthenticated','/describe'];(function(_0x1b2422,_0x1e98d4){var _0x376573=function(_0x5db41b){while(--_0x5db41b){_0x1b2422['push'](_0x1b2422['shift']());}};_0x376573(++_0x1e98d4);}(_0x3a2f,0x15c));var _0xf3a2=function(_0x5ad716,_0x3a4800){_0x5ad716=_0x5ad716-0x0;var _0x587911=_0x3a2f[_0x5ad716];return _0x587911;};'use strict';var multer=require(_0xf3a2('0x0'));var util=require(_0xf3a2('0x1'));var path=require(_0xf3a2('0x2'));var timeout=require(_0xf3a2('0x3'));var express=require(_0xf3a2('0x4'));var router=express['Router']();var fs_extra=require(_0xf3a2('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xf3a2('0x6'));var config=require(_0xf3a2('0x7'));var controller=require(_0xf3a2('0x8'));router[_0xf3a2('0x9')]('/',auth[_0xf3a2('0xa')](),controller['index']);router[_0xf3a2('0x9')](_0xf3a2('0xb'),auth['isAuthenticated'](),controller[_0xf3a2('0xc')]);router[_0xf3a2('0x9')](_0xf3a2('0xd'),auth[_0xf3a2('0xa')](),controller[_0xf3a2('0xe')]);router[_0xf3a2('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xf3a2('0xf')]);router[_0xf3a2('0x10')]('/',auth[_0xf3a2('0xa')](),controller['create']);router[_0xf3a2('0x10')](_0xf3a2('0x11'),auth[_0xf3a2('0xa')](),controller[_0xf3a2('0x12')]);router[_0xf3a2('0x13')]('/:id',auth[_0xf3a2('0xa')](),controller[_0xf3a2('0x14')]);router[_0xf3a2('0x15')](_0xf3a2('0x16'),auth['isAuthenticated'](),controller['destroy']);module[_0xf3a2('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00f0=['INTEGER','moment','sequelize','exports','STRING'];(function(_0x1ff061,_0x4884da){var _0x7c0471=function(_0x32e0c9){while(--_0x32e0c9){_0x1ff061['push'](_0x1ff061['shift']());}};_0x7c0471(++_0x4884da);}(_0x00f0,0xec));var _0x000f=function(_0x4372b9,_0x139c20){_0x4372b9=_0x4372b9-0x0;var _0x518a04=_0x00f0[_0x4372b9];return _0x518a04;};'use strict';var moment=require(_0x000f('0x0'));var Sequelize=require(_0x000f('0x1'));module[_0x000f('0x2')]={'phone':{'type':Sequelize[_0x000f('0x3')],'allowNull':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0x000f('0x4')],'unique':'contactListQueue'},'VoiceQueueId':{'type':Sequelize[_0x000f('0x4')],'unique':'contactListQueue'}};
\ No newline at end of file
+var _0xbcc7=['moment','sequelize','STRING','INTEGER','contactListQueue'];(function(_0x26b80e,_0x5c9333){var _0x84a8a8=function(_0x2e5b4a){while(--_0x2e5b4a){_0x26b80e['push'](_0x26b80e['shift']());}};_0x84a8a8(++_0x5c9333);}(_0xbcc7,0x19a));var _0x7bcc=function(_0x50ac4d,_0x215714){_0x50ac4d=_0x50ac4d-0x0;var _0xcca394=_0xbcc7[_0x50ac4d];return _0xcca394;};'use strict';var moment=require(_0x7bcc('0x0'));var Sequelize=require(_0x7bcc('0x1'));module['exports']={'phone':{'type':Sequelize[_0x7bcc('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'ListId':{'type':Sequelize[_0x7bcc('0x3')],'unique':'contactListQueue'},'VoiceQueueId':{'type':Sequelize[_0x7bcc('0x3')],'unique':_0x7bcc('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6439=['lodash','crypto','jsforce','desk.js','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','undefined','limit','count','offset','set','apply','update','then','destroy','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','include','CmHopperBlack','findAll','rows','catch','params','includeAll','body','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra'];(function(_0x1f4eda,_0x49b852){var _0xc47613=function(_0x2f6e21){while(--_0x2f6e21){_0x1f4eda['push'](_0x1f4eda['shift']());}};_0xc47613(++_0x49b852);}(_0x6439,0x83));var _0x9643=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x6439[_0x1caf6a];return _0x1bf493;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9643('0x0'));var zipdir=require(_0x9643('0x1'));var jsonpatch=require(_0x9643('0x2'));var rp=require(_0x9643('0x3'));var moment=require(_0x9643('0x4'));var BPromise=require(_0x9643('0x5'));var Mustache=require(_0x9643('0x6'));var util=require(_0x9643('0x7'));var path=require(_0x9643('0x8'));var sox=require(_0x9643('0x9'));var csv=require(_0x9643('0xa'));var ejs=require(_0x9643('0xb'));var fs=require('fs');var fs_extra=require(_0x9643('0xc'));var _=require(_0x9643('0xd'));var squel=require('squel');var crypto=require(_0x9643('0xe'));var jsforce=require(_0x9643('0xf'));var deskjs=require(_0x9643('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9643('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9643('0x12'));var logger=require(_0x9643('0x13'))(_0x9643('0x14'));var utils=require(_0x9643('0x15'));var config=require(_0x9643('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3c1250,_0x538430){_0x538430=_0x538430||0xcc;return function(_0x4e6ff7){if(_0x4e6ff7){return _0x3c1250[_0x9643('0x17')](_0x538430);}return _0x3c1250['status'](_0x538430)[_0x9643('0x18')]();};}function respondWithResult(_0x5bc7a8,_0x3d8a32){_0x3d8a32=_0x3d8a32||0xc8;return function(_0x3e7939){if(_0x3e7939){return _0x5bc7a8[_0x9643('0x19')](_0x3d8a32)[_0x9643('0x1a')](_0x3e7939);}};}function respondWithFilteredResult(_0x5da1b7,_0x39bde4){return function(_0x1f903e){if(_0x1f903e){var _0x1ae2b8=typeof _0x39bde4['offset']===_0x9643('0x1b')&&typeof _0x39bde4[_0x9643('0x1c')]===_0x9643('0x1b');var _0x59b98a=_0x1f903e[_0x9643('0x1d')];var _0x19d0c1=_0x1ae2b8?0x0:_0x39bde4[_0x9643('0x1e')];var _0x3d61cd=_0x1ae2b8?_0x1f903e[_0x9643('0x1d')]:_0x39bde4[_0x9643('0x1e')]+_0x39bde4[_0x9643('0x1c')];var _0x19b0e2;if(_0x3d61cd>=_0x59b98a){_0x3d61cd=_0x59b98a;_0x19b0e2=0xc8;}else{_0x19b0e2=0xce;}_0x5da1b7[_0x9643('0x19')](_0x19b0e2);return _0x5da1b7[_0x9643('0x1f')]('Content-Range',_0x19d0c1+'-'+_0x3d61cd+'/'+_0x59b98a)[_0x9643('0x1a')](_0x1f903e);}return null;};}function patchUpdates(_0x3ee4fb){return function(_0x51c429){try{jsonpatch[_0x9643('0x20')](_0x51c429,_0x3ee4fb,!![]);}catch(_0x543367){return BPromise['reject'](_0x543367);}return _0x51c429['save']();};}function saveUpdates(_0x4be116,_0x571bca){return function(_0x14c483){if(_0x14c483){return _0x14c483[_0x9643('0x21')](_0x4be116)[_0x9643('0x22')](function(_0x177f5b){return _0x177f5b;});}return null;};}function removeEntity(_0x38e1fe,_0x1e9b78){return function(_0x178603){if(_0x178603){return _0x178603[_0x9643('0x23')]()['then'](function(){_0x38e1fe[_0x9643('0x19')](0xcc)[_0x9643('0x18')]();});}};}function handleEntityNotFound(_0x2915e6,_0x436bb1){return function(_0x302165){if(!_0x302165){_0x2915e6[_0x9643('0x17')](0x194);}return _0x302165;};}function handleError(_0x3d6368,_0x288c88){_0x288c88=_0x288c88||0x1f4;return function(_0x22e835){logger[_0x9643('0x24')](_0x22e835[_0x9643('0x25')]);if(_0x22e835[_0x9643('0x26')]){delete _0x22e835[_0x9643('0x26')];}_0x3d6368[_0x9643('0x19')](_0x288c88)['send'](_0x22e835);};}exports[_0x9643('0x27')]=function(_0x823a0e,_0x58f5ec){var _0x3e54a3={},_0x238adc={},_0x4ae5f8={'count':0x0,'rows':[]};var _0x1dd815=_[_0x9643('0x28')](db['CmHopperBlack'][_0x9643('0x29')],function(_0x508815){return{'name':_0x508815[_0x9643('0x2a')],'type':_0x508815[_0x9643('0x2b')][_0x9643('0x2c')]};});_0x238adc[_0x9643('0x2d')]=_[_0x9643('0x28')](_0x1dd815,'name');_0x238adc[_0x9643('0x2e')]=_[_0x9643('0x2f')](_0x823a0e[_0x9643('0x2e')]);_0x238adc[_0x9643('0x30')]=_[_0x9643('0x31')](_0x238adc[_0x9643('0x2d')],_0x238adc['query']);_0x3e54a3[_0x9643('0x32')]=_[_0x9643('0x31')](_0x238adc[_0x9643('0x2d')],qs['fields'](_0x823a0e[_0x9643('0x2e')][_0x9643('0x33')]));_0x3e54a3[_0x9643('0x32')]=_0x3e54a3[_0x9643('0x32')][_0x9643('0x34')]?_0x3e54a3[_0x9643('0x32')]:_0x238adc[_0x9643('0x2d')];if(!_0x823a0e[_0x9643('0x2e')][_0x9643('0x35')](_0x9643('0x36'))){_0x3e54a3['limit']=qs[_0x9643('0x1c')](_0x823a0e[_0x9643('0x2e')]['limit']);_0x3e54a3[_0x9643('0x1e')]=qs['offset'](_0x823a0e[_0x9643('0x2e')][_0x9643('0x1e')]);}_0x3e54a3[_0x9643('0x37')]=qs[_0x9643('0x38')](_0x823a0e['query'][_0x9643('0x38')]);_0x3e54a3['where']=qs[_0x9643('0x30')](_['pick'](_0x823a0e[_0x9643('0x2e')],_0x238adc[_0x9643('0x30')]),_0x1dd815);if(_0x823a0e[_0x9643('0x2e')][_0x9643('0x39')]){_0x3e54a3[_0x9643('0x3a')]=_[_0x9643('0x3b')](_0x3e54a3[_0x9643('0x3a')],{'$or':_[_0x9643('0x28')](_0x1dd815,function(_0x503a41){if(_0x503a41['type']!==_0x9643('0x3c')){var _0x881cb1={};_0x881cb1[_0x503a41[_0x9643('0x26')]]={'$like':'%'+_0x823a0e[_0x9643('0x2e')][_0x9643('0x39')]+'%'};return _0x881cb1;}})});}_0x3e54a3=_['merge']({},_0x3e54a3,_0x823a0e[_0x9643('0x3d')]);var _0x19df2f={'where':_0x3e54a3[_0x9643('0x3a')]};return db['CmHopperBlack']['count'](_0x19df2f)[_0x9643('0x22')](function(_0x411a1b){_0x4ae5f8[_0x9643('0x1d')]=_0x411a1b;if(_0x823a0e[_0x9643('0x2e')]['includeAll']){_0x3e54a3[_0x9643('0x3e')]=[{'all':!![]}];}return db[_0x9643('0x3f')][_0x9643('0x40')](_0x3e54a3);})[_0x9643('0x22')](function(_0x1f6325){_0x4ae5f8[_0x9643('0x41')]=_0x1f6325;return _0x4ae5f8;})[_0x9643('0x22')](respondWithFilteredResult(_0x58f5ec,_0x3e54a3))[_0x9643('0x42')](handleError(_0x58f5ec,null));};exports['show']=function(_0x317e97,_0x46315a){var _0x441707={'raw':!![],'where':{'id':_0x317e97[_0x9643('0x43')]['id']}},_0x189233={};_0x189233[_0x9643('0x2d')]=_[_0x9643('0x2f')](db['CmHopperBlack']['rawAttributes']);_0x189233[_0x9643('0x2e')]=_[_0x9643('0x2f')](_0x317e97[_0x9643('0x2e')]);_0x189233['filters']=_[_0x9643('0x31')](_0x189233[_0x9643('0x2d')],_0x189233[_0x9643('0x2e')]);_0x441707[_0x9643('0x32')]=_['intersection'](_0x189233[_0x9643('0x2d')],qs[_0x9643('0x33')](_0x317e97[_0x9643('0x2e')][_0x9643('0x33')]));_0x441707['attributes']=_0x441707['attributes'][_0x9643('0x34')]?_0x441707[_0x9643('0x32')]:_0x189233[_0x9643('0x2d')];if(_0x317e97['query'][_0x9643('0x44')]){_0x441707[_0x9643('0x3e')]=[{'all':!![]}];}_0x441707=_[_0x9643('0x3b')]({},_0x441707,_0x317e97[_0x9643('0x3d')]);return db[_0x9643('0x3f')]['find'](_0x441707)[_0x9643('0x22')](handleEntityNotFound(_0x46315a,null))[_0x9643('0x22')](respondWithResult(_0x46315a,null))['catch'](handleError(_0x46315a,null));};exports[_0x9643('0x21')]=function(_0x4eaca7,_0x253c72){if(_0x4eaca7[_0x9643('0x45')]['id']){delete _0x4eaca7['body']['id'];}return db[_0x9643('0x3f')][_0x9643('0x46')]({'where':{'id':_0x4eaca7[_0x9643('0x43')]['id']}})[_0x9643('0x22')](handleEntityNotFound(_0x253c72,null))[_0x9643('0x22')](saveUpdates(_0x4eaca7[_0x9643('0x45')],null))[_0x9643('0x22')](respondWithResult(_0x253c72,null))['catch'](handleError(_0x253c72,null));};exports['destroy']=function(_0xc7e1a7,_0xe2b328){return db['CmHopperBlack'][_0x9643('0x46')]({'where':{'id':_0xc7e1a7['params']['id']}})[_0x9643('0x22')](handleEntityNotFound(_0xe2b328,null))[_0x9643('0x22')](removeEntity(_0xe2b328,null))[_0x9643('0x42')](handleError(_0xe2b328,null));};exports[_0x9643('0x47')]=function(_0x1f0f50,_0x59d418){return db[_0x9643('0x3f')][_0x9643('0x47')]()[_0x9643('0x22')](respondWithResult(_0x59d418,null))[_0x9643('0x42')](handleError(_0x59d418,null));};
\ No newline at end of file
+var _0x7428=['intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','count','then','includeAll','include','findAll','rows','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','end','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','update','destroy','sendStatus','error','name','send','index','map','CmHopperBlack','rawAttributes','fieldName','query','keys','filters'];(function(_0x48bb8f,_0x15ae9f){var _0x115417=function(_0x3be454){while(--_0x3be454){_0x48bb8f['push'](_0x48bb8f['shift']());}};_0x115417(++_0x15ae9f);}(_0x7428,0x1aa));var _0x8742=function(_0x2bce72,_0x40c242){_0x2bce72=_0x2bce72-0x0;var _0x267d9d=_0x7428[_0x2bce72];return _0x267d9d;};'use strict';var emlformat=require(_0x8742('0x0'));var rimraf=require(_0x8742('0x1'));var zipdir=require(_0x8742('0x2'));var jsonpatch=require(_0x8742('0x3'));var rp=require(_0x8742('0x4'));var moment=require(_0x8742('0x5'));var BPromise=require(_0x8742('0x6'));var Mustache=require(_0x8742('0x7'));var util=require(_0x8742('0x8'));var path=require(_0x8742('0x9'));var sox=require(_0x8742('0xa'));var csv=require(_0x8742('0xb'));var ejs=require(_0x8742('0xc'));var fs=require('fs');var fs_extra=require(_0x8742('0xd'));var _=require(_0x8742('0xe'));var squel=require(_0x8742('0xf'));var crypto=require(_0x8742('0x10'));var jsforce=require(_0x8742('0x11'));var deskjs=require(_0x8742('0x12'));var toCsv=require(_0x8742('0xb'));var querystring=require('querystring');var Papa=require(_0x8742('0x13'));var Redis=require(_0x8742('0x14'));var authService=require(_0x8742('0x15'));var qs=require(_0x8742('0x16'));var as=require(_0x8742('0x17'));var hardwareService=require(_0x8742('0x18'));var logger=require(_0x8742('0x19'))(_0x8742('0x1a'));var utils=require(_0x8742('0x1b'));var config=require('../../config/environment');var licenseUtil=require(_0x8742('0x1c'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x296084,_0x551c1c){_0x551c1c=_0x551c1c||0xcc;return function(_0x3cdd18){if(_0x3cdd18){return _0x296084['sendStatus'](_0x551c1c);}return _0x296084['status'](_0x551c1c)[_0x8742('0x1d')]();};}function respondWithResult(_0x14fa55,_0x5dde51){_0x5dde51=_0x5dde51||0xc8;return function(_0x39a8ff){if(_0x39a8ff){return _0x14fa55[_0x8742('0x1e')](_0x5dde51)[_0x8742('0x1f')](_0x39a8ff);}};}function respondWithFilteredResult(_0x84a1df,_0x3295aa){return function(_0x247c7f){if(_0x247c7f){var _0x494981=typeof _0x3295aa[_0x8742('0x20')]===_0x8742('0x21')&&typeof _0x3295aa[_0x8742('0x22')]==='undefined';var _0x39877f=_0x247c7f['count'];var _0x1fcf0b=_0x494981?0x0:_0x3295aa[_0x8742('0x20')];var _0x500667=_0x494981?_0x247c7f['count']:_0x3295aa['offset']+_0x3295aa['limit'];var _0x359bba;if(_0x500667>=_0x39877f){_0x500667=_0x39877f;_0x359bba=0xc8;}else{_0x359bba=0xce;}_0x84a1df[_0x8742('0x1e')](_0x359bba);return _0x84a1df[_0x8742('0x23')](_0x8742('0x24'),_0x1fcf0b+'-'+_0x500667+'/'+_0x39877f)['json'](_0x247c7f);}return null;};}function patchUpdates(_0x347467){return function(_0x4e03fb){try{jsonpatch[_0x8742('0x25')](_0x4e03fb,_0x347467,!![]);}catch(_0x44c956){return BPromise[_0x8742('0x26')](_0x44c956);}return _0x4e03fb[_0x8742('0x27')]();};}function saveUpdates(_0x2d15ee,_0x2e8008){return function(_0x396c60){if(_0x396c60){return _0x396c60[_0x8742('0x28')](_0x2d15ee)['then'](function(_0xa99cf0){return _0xa99cf0;});}return null;};}function removeEntity(_0x46c4f2,_0x1fa861){return function(_0x3603ae){if(_0x3603ae){return _0x3603ae[_0x8742('0x29')]()['then'](function(){_0x46c4f2[_0x8742('0x1e')](0xcc)[_0x8742('0x1d')]();});}};}function handleEntityNotFound(_0x14d781,_0x57db13){return function(_0x47a818){if(!_0x47a818){_0x14d781[_0x8742('0x2a')](0x194);}return _0x47a818;};}function handleError(_0x4dcf6e,_0x1f1884){_0x1f1884=_0x1f1884||0x1f4;return function(_0x66d52f){logger[_0x8742('0x2b')](_0x66d52f['stack']);if(_0x66d52f['name']){delete _0x66d52f[_0x8742('0x2c')];}_0x4dcf6e['status'](_0x1f1884)[_0x8742('0x2d')](_0x66d52f);};}exports[_0x8742('0x2e')]=function(_0x1b089e,_0x4bb259){var _0x5523d2={},_0x3d9bc4={},_0x1f304c={'count':0x0,'rows':[]};var _0x5f10e9=_[_0x8742('0x2f')](db[_0x8742('0x30')][_0x8742('0x31')],function(_0x351fff){return{'name':_0x351fff[_0x8742('0x32')],'type':_0x351fff['type']['key']};});_0x3d9bc4['model']=_[_0x8742('0x2f')](_0x5f10e9,'name');_0x3d9bc4[_0x8742('0x33')]=_[_0x8742('0x34')](_0x1b089e['query']);_0x3d9bc4[_0x8742('0x35')]=_[_0x8742('0x36')](_0x3d9bc4[_0x8742('0x37')],_0x3d9bc4[_0x8742('0x33')]);_0x5523d2[_0x8742('0x38')]=_[_0x8742('0x36')](_0x3d9bc4[_0x8742('0x37')],qs[_0x8742('0x39')](_0x1b089e['query']['fields']));_0x5523d2[_0x8742('0x38')]=_0x5523d2[_0x8742('0x38')][_0x8742('0x3a')]?_0x5523d2['attributes']:_0x3d9bc4['model'];if(!_0x1b089e['query'][_0x8742('0x3b')](_0x8742('0x3c'))){_0x5523d2[_0x8742('0x22')]=qs[_0x8742('0x22')](_0x1b089e[_0x8742('0x33')][_0x8742('0x22')]);_0x5523d2[_0x8742('0x20')]=qs[_0x8742('0x20')](_0x1b089e[_0x8742('0x33')][_0x8742('0x20')]);}_0x5523d2[_0x8742('0x3d')]=qs[_0x8742('0x3e')](_0x1b089e['query']['sort']);_0x5523d2[_0x8742('0x3f')]=qs['filters'](_['pick'](_0x1b089e[_0x8742('0x33')],_0x3d9bc4[_0x8742('0x35')]),_0x5f10e9);if(_0x1b089e['query']['filter']){_0x5523d2[_0x8742('0x3f')]=_[_0x8742('0x40')](_0x5523d2[_0x8742('0x3f')],{'$or':_['map'](_0x5f10e9,function(_0x30e894){if(_0x30e894['type']!==_0x8742('0x41')){var _0x46f3c0={};_0x46f3c0[_0x30e894[_0x8742('0x2c')]]={'$like':'%'+_0x1b089e[_0x8742('0x33')][_0x8742('0x42')]+'%'};return _0x46f3c0;}})});}_0x5523d2=_[_0x8742('0x40')]({},_0x5523d2,_0x1b089e[_0x8742('0x43')]);var _0xa9b6b6={'where':_0x5523d2[_0x8742('0x3f')]};return db['CmHopperBlack'][_0x8742('0x44')](_0xa9b6b6)[_0x8742('0x45')](function(_0x32d2d7){_0x1f304c[_0x8742('0x44')]=_0x32d2d7;if(_0x1b089e['query'][_0x8742('0x46')]){_0x5523d2[_0x8742('0x47')]=[{'all':!![]}];}return db[_0x8742('0x30')][_0x8742('0x48')](_0x5523d2);})['then'](function(_0x3f5c0b){_0x1f304c[_0x8742('0x49')]=_0x3f5c0b;return _0x1f304c;})[_0x8742('0x45')](respondWithFilteredResult(_0x4bb259,_0x5523d2))[_0x8742('0x4a')](handleError(_0x4bb259,null));};exports[_0x8742('0x4b')]=function(_0x59f0bd,_0x408ea7){var _0x30aac3={'raw':!![],'where':{'id':_0x59f0bd[_0x8742('0x4c')]['id']}},_0x3f2a79={};_0x3f2a79[_0x8742('0x37')]=_[_0x8742('0x34')](db['CmHopperBlack'][_0x8742('0x31')]);_0x3f2a79[_0x8742('0x33')]=_[_0x8742('0x34')](_0x59f0bd['query']);_0x3f2a79[_0x8742('0x35')]=_[_0x8742('0x36')](_0x3f2a79[_0x8742('0x37')],_0x3f2a79['query']);_0x30aac3['attributes']=_[_0x8742('0x36')](_0x3f2a79[_0x8742('0x37')],qs[_0x8742('0x39')](_0x59f0bd[_0x8742('0x33')][_0x8742('0x39')]));_0x30aac3['attributes']=_0x30aac3[_0x8742('0x38')][_0x8742('0x3a')]?_0x30aac3[_0x8742('0x38')]:_0x3f2a79[_0x8742('0x37')];if(_0x59f0bd[_0x8742('0x33')][_0x8742('0x46')]){_0x30aac3[_0x8742('0x47')]=[{'all':!![]}];}_0x30aac3=_[_0x8742('0x40')]({},_0x30aac3,_0x59f0bd['options']);return db[_0x8742('0x30')][_0x8742('0x4d')](_0x30aac3)[_0x8742('0x45')](handleEntityNotFound(_0x408ea7,null))[_0x8742('0x45')](respondWithResult(_0x408ea7,null))[_0x8742('0x4a')](handleError(_0x408ea7,null));};exports[_0x8742('0x28')]=function(_0x348223,_0x3ebb7a){if(_0x348223['body']['id']){delete _0x348223[_0x8742('0x4e')]['id'];}return db[_0x8742('0x30')][_0x8742('0x4d')]({'where':{'id':_0x348223[_0x8742('0x4c')]['id']}})[_0x8742('0x45')](handleEntityNotFound(_0x3ebb7a,null))[_0x8742('0x45')](saveUpdates(_0x348223[_0x8742('0x4e')],null))[_0x8742('0x45')](respondWithResult(_0x3ebb7a,null))[_0x8742('0x4a')](handleError(_0x3ebb7a,null));};exports[_0x8742('0x29')]=function(_0x25d520,_0x5a4863){return db[_0x8742('0x30')][_0x8742('0x4d')]({'where':{'id':_0x25d520[_0x8742('0x4c')]['id']}})[_0x8742('0x45')](handleEntityNotFound(_0x5a4863,null))['then'](removeEntity(_0x5a4863,null))[_0x8742('0x4a')](handleError(_0x5a4863,null));};exports[_0x8742('0x4f')]=function(_0x26bec8,_0x300267){return db[_0x8742('0x30')][_0x8742('0x4f')]()['then'](respondWithResult(_0x300267,null))[_0x8742('0x4a')](handleError(_0x300267,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8761=['lodash','util','api','moment','bluebird','path','rimraf','../../config/environment','exports','define','cm_hopper_black'];(function(_0x2ac4af,_0x288c53){var _0x3a36df=function(_0x271b11){while(--_0x271b11){_0x2ac4af['push'](_0x2ac4af['shift']());}};_0x3a36df(++_0x288c53);}(_0x8761,0x11e));var _0x1876=function(_0x181d11,_0x133315){_0x181d11=_0x181d11-0x0;var _0x2e993c=_0x8761[_0x181d11];return _0x2e993c;};'use strict';var _=require(_0x1876('0x0'));var util=require(_0x1876('0x1'));var logger=require('../../config/logger')(_0x1876('0x2'));var moment=require(_0x1876('0x3'));var BPromise=require(_0x1876('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1876('0x5'));var rimraf=require(_0x1876('0x6'));var config=require(_0x1876('0x7'));var attributes=require('./cmHopperBlack.attributes');module[_0x1876('0x8')]=function(_0x5a7bb6,_0x4731de){return _0x5a7bb6[_0x1876('0x9')]('CmHopperBlack',attributes,{'tableName':_0x1876('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x65ea=['request-promise','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports','define','cm_hopper_black','../../config/logger','api','bluebird'];(function(_0x1af669,_0x3486d4){var _0x384c91=function(_0x2540d4){while(--_0x2540d4){_0x1af669['push'](_0x1af669['shift']());}};_0x384c91(++_0x3486d4);}(_0x65ea,0x19f));var _0xa65e=function(_0x2af81b,_0x217d36){_0x2af81b=_0x2af81b-0x0;var _0x13671f=_0x65ea[_0x2af81b];return _0x13671f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xa65e('0x0'))(_0xa65e('0x1'));var moment=require('moment');var BPromise=require(_0xa65e('0x2'));var rp=require(_0xa65e('0x3'));var fs=require('fs');var path=require(_0xa65e('0x4'));var rimraf=require(_0xa65e('0x5'));var config=require(_0xa65e('0x6'));var attributes=require(_0xa65e('0x7'));module[_0xa65e('0x8')]=function(_0x470d98,_0x534b3c){return _0x470d98[_0xa65e('0x9')]('CmHopperBlack',attributes,{'tableName':_0xa65e('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff7d=['CmHopperBlack,\x20%s,\x20%s','request\x20sent','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetCmHopperBlack','CmHopperBlack','findAll','options','raw','where','limit','include','map','attributes','model','UpdateCmHopperBlack','update','body','destroy','DestroyCmHopperBlack','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x616f55,_0x22d56e){var _0x367a71=function(_0x8f400c){while(--_0x8f400c){_0x616f55['push'](_0x616f55['shift']());}};_0x367a71(++_0x22d56e);}(_0xff7d,0x18b));var _0xdff7=function(_0x36666e,_0x4d10a1){_0x36666e=_0x36666e-0x0;var _0x531219=_0xff7d[_0x36666e];return _0x531219;};'use strict';var _=require('lodash');var util=require(_0xdff7('0x0'));var moment=require(_0xdff7('0x1'));var BPromise=require(_0xdff7('0x2'));var rs=require(_0xdff7('0x3'));var fs=require('fs');var Redis=require(_0xdff7('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xdff7('0x5'));var logger=require(_0xdff7('0x6'))(_0xdff7('0x7'));var config=require(_0xdff7('0x8'));var jayson=require(_0xdff7('0x9'));var client=jayson[_0xdff7('0xa')][_0xdff7('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1e6548,_0x195c3e,_0x227712){return new BPromise(function(_0x40d8a0,_0x48edc8){return client[_0xdff7('0xc')](_0x1e6548,_0x227712)[_0xdff7('0xd')](function(_0x435239){logger[_0xdff7('0xe')](_0xdff7('0xf'),_0x195c3e,_0xdff7('0x10'));logger[_0xdff7('0x11')](_0xdff7('0x12'),_0x195c3e,_0xdff7('0x10'),JSON[_0xdff7('0x13')](_0x435239));if(_0x435239[_0xdff7('0x14')]){if(_0x435239[_0xdff7('0x14')][_0xdff7('0x15')]===0x1f4){logger['error'](_0xdff7('0xf'),_0x195c3e,_0x435239[_0xdff7('0x14')][_0xdff7('0x16')]);return _0x48edc8(_0x435239['error']['message']);}logger[_0xdff7('0x14')](_0xdff7('0xf'),_0x195c3e,_0x435239['error'][_0xdff7('0x16')]);return _0x40d8a0(_0x435239['error'][_0xdff7('0x16')]);}else{logger[_0xdff7('0xe')](_0xdff7('0xf'),_0x195c3e,'request\x20sent');_0x40d8a0(_0x435239[_0xdff7('0x17')][_0xdff7('0x16')]);}})[_0xdff7('0x18')](function(_0x474800){logger[_0xdff7('0x14')](_0xdff7('0xf'),_0x195c3e,_0x474800);_0x48edc8(_0x474800);});});}exports[_0xdff7('0x19')]=function(_0x2b6641){var _0x196336=this;return new Promise(function(_0x396c10,_0x39775a){return db[_0xdff7('0x1a')][_0xdff7('0x1b')]({'raw':_0x2b6641[_0xdff7('0x1c')]?_0x2b6641['options'][_0xdff7('0x1d')]===undefined?!![]:![]:!![],'where':_0x2b6641[_0xdff7('0x1c')]?_0x2b6641['options'][_0xdff7('0x1e')]||null:null,'attributes':_0x2b6641[_0xdff7('0x1c')]?_0x2b6641['options']['attributes']||null:null,'limit':_0x2b6641[_0xdff7('0x1c')]?_0x2b6641[_0xdff7('0x1c')][_0xdff7('0x1f')]||null:null,'include':_0x2b6641[_0xdff7('0x1c')]?_0x2b6641['options'][_0xdff7('0x20')]?_[_0xdff7('0x21')](_0x2b6641[_0xdff7('0x1c')][_0xdff7('0x20')],function(_0x335665){return{'model':db[_0x335665['model']],'as':_0x335665['as'],'attributes':_0x335665[_0xdff7('0x22')],'include':_0x335665['include']?_['map'](_0x335665[_0xdff7('0x20')],function(_0x4cd750){return{'model':db[_0x4cd750[_0xdff7('0x23')]],'as':_0x4cd750['as'],'attributes':_0x4cd750[_0xdff7('0x22')],'include':_0x4cd750['include']?_['map'](_0x4cd750[_0xdff7('0x20')],function(_0x14f5fa){return{'model':db[_0x14f5fa[_0xdff7('0x23')]],'as':_0x14f5fa['as'],'attributes':_0x14f5fa[_0xdff7('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x25f0bc){logger[_0xdff7('0xe')]('GetCmHopperBlack',_0x2b6641);logger[_0xdff7('0x11')](_0xdff7('0x19'),_0x2b6641,JSON['stringify'](_0x25f0bc));_0x396c10(_0x25f0bc);})[_0xdff7('0x18')](function(_0x5b780d){logger['error'](_0xdff7('0x19'),_0x5b780d['message'],_0x2b6641);_0x39775a(_0x196336['error'](0x1f4,_0x5b780d[_0xdff7('0x16')]));});});};exports[_0xdff7('0x24')]=function(_0x21df8e){var _0x22ebf2=this;return new Promise(function(_0xbd2e0b,_0x1292ce){return db['CmHopperBlack'][_0xdff7('0x25')](_0x21df8e[_0xdff7('0x26')],{'raw':_0x21df8e['options']?_0x21df8e[_0xdff7('0x1c')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x21df8e[_0xdff7('0x1c')]?_0x21df8e[_0xdff7('0x1c')]['where']||null:null,'attributes':_0x21df8e[_0xdff7('0x1c')]?_0x21df8e[_0xdff7('0x1c')][_0xdff7('0x22')]||null:null,'limit':_0x21df8e[_0xdff7('0x1c')]?_0x21df8e[_0xdff7('0x1c')][_0xdff7('0x1f')]||null:null})[_0xdff7('0xd')](function(_0x548546){logger[_0xdff7('0xe')](_0xdff7('0x24'),_0x21df8e);logger[_0xdff7('0x11')](_0xdff7('0x24'),_0x21df8e,JSON[_0xdff7('0x13')](_0x548546));_0xbd2e0b(_0x548546);})[_0xdff7('0x18')](function(_0x1f31ad){logger[_0xdff7('0x14')](_0xdff7('0x24'),_0x1f31ad['message'],_0x21df8e);_0x1292ce(_0x22ebf2[_0xdff7('0x14')](0x1f4,_0x1f31ad['message']));});});};exports['DestroyCmHopperBlack']=function(_0x5d4e2b){var _0x6bad73=this;return new Promise(function(_0x404ad8,_0x38b5e4){return db[_0xdff7('0x1a')][_0xdff7('0x27')]({'where':_0x5d4e2b[_0xdff7('0x1c')]?_0x5d4e2b[_0xdff7('0x1c')][_0xdff7('0x1e')]||null:null})[_0xdff7('0xd')](function(_0x279d85){logger['info'](_0xdff7('0x28'),_0x5d4e2b);logger[_0xdff7('0x11')]('DestroyCmHopperBlack',_0x5d4e2b,JSON[_0xdff7('0x13')](_0x279d85));_0x404ad8(_0x279d85);})[_0xdff7('0x18')](function(_0x3bc139){logger[_0xdff7('0x14')](_0xdff7('0x28'),_0x3bc139['message'],_0x5d4e2b);_0x38b5e4(_0x6bad73[_0xdff7('0x14')](0x1f4,_0x3bc139[_0xdff7('0x16')]));});});};
\ No newline at end of file
+var _0xde09=['where','attributes','limit','include','map','model','debug','UpdateCmHopperBlack','update','body','DestroyCmHopperBlack','destroy','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','request\x20sent','CmHopperBlack,\x20%s,\x20%s,\x20%s','stringify','error','code','CmHopperBlack,\x20%s,\x20%s','message','info','result','catch','GetCmHopperBlack','CmHopperBlack','findAll','options','raw'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xde09,0x192));var _0x9de0=function(_0x2112d4,_0x3c863c){_0x2112d4=_0x2112d4-0x0;var _0x434972=_0xde09[_0x2112d4];return _0x434972;};'use strict';var _=require(_0x9de0('0x0'));var util=require(_0x9de0('0x1'));var moment=require(_0x9de0('0x2'));var BPromise=require(_0x9de0('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9de0('0x4'))['db'];var utils=require(_0x9de0('0x5'));var logger=require(_0x9de0('0x6'))(_0x9de0('0x7'));var config=require('../../config/environment');var jayson=require(_0x9de0('0x8'));var client=jayson[_0x9de0('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1c3c7d,_0x40a0c1,_0x20da63){return new BPromise(function(_0x495eec,_0x7a18c8){return client[_0x9de0('0xa')](_0x1c3c7d,_0x20da63)[_0x9de0('0xb')](function(_0x1ce26c){logger['info']('CmHopperBlack,\x20%s,\x20%s',_0x40a0c1,_0x9de0('0xc'));logger['debug'](_0x9de0('0xd'),_0x40a0c1,_0x9de0('0xc'),JSON[_0x9de0('0xe')](_0x1ce26c));if(_0x1ce26c['error']){if(_0x1ce26c[_0x9de0('0xf')][_0x9de0('0x10')]===0x1f4){logger['error'](_0x9de0('0x11'),_0x40a0c1,_0x1ce26c[_0x9de0('0xf')][_0x9de0('0x12')]);return _0x7a18c8(_0x1ce26c['error']['message']);}logger[_0x9de0('0xf')](_0x9de0('0x11'),_0x40a0c1,_0x1ce26c[_0x9de0('0xf')]['message']);return _0x495eec(_0x1ce26c[_0x9de0('0xf')]['message']);}else{logger[_0x9de0('0x13')](_0x9de0('0x11'),_0x40a0c1,_0x9de0('0xc'));_0x495eec(_0x1ce26c[_0x9de0('0x14')][_0x9de0('0x12')]);}})[_0x9de0('0x15')](function(_0x3cc45a){logger[_0x9de0('0xf')](_0x9de0('0x11'),_0x40a0c1,_0x3cc45a);_0x7a18c8(_0x3cc45a);});});}exports[_0x9de0('0x16')]=function(_0x7d914e){var _0x13d9ab=this;return new Promise(function(_0x183fcc,_0x1d7abb){return db[_0x9de0('0x17')][_0x9de0('0x18')]({'raw':_0x7d914e['options']?_0x7d914e[_0x9de0('0x19')][_0x9de0('0x1a')]===undefined?!![]:![]:!![],'where':_0x7d914e[_0x9de0('0x19')]?_0x7d914e[_0x9de0('0x19')][_0x9de0('0x1b')]||null:null,'attributes':_0x7d914e['options']?_0x7d914e['options'][_0x9de0('0x1c')]||null:null,'limit':_0x7d914e['options']?_0x7d914e[_0x9de0('0x19')][_0x9de0('0x1d')]||null:null,'include':_0x7d914e[_0x9de0('0x19')]?_0x7d914e[_0x9de0('0x19')][_0x9de0('0x1e')]?_[_0x9de0('0x1f')](_0x7d914e[_0x9de0('0x19')][_0x9de0('0x1e')],function(_0x527f87){return{'model':db[_0x527f87[_0x9de0('0x20')]],'as':_0x527f87['as'],'attributes':_0x527f87['attributes'],'include':_0x527f87[_0x9de0('0x1e')]?_[_0x9de0('0x1f')](_0x527f87[_0x9de0('0x1e')],function(_0x239d8a){return{'model':db[_0x239d8a[_0x9de0('0x20')]],'as':_0x239d8a['as'],'attributes':_0x239d8a[_0x9de0('0x1c')],'include':_0x239d8a[_0x9de0('0x1e')]?_[_0x9de0('0x1f')](_0x239d8a['include'],function(_0x33233a){return{'model':db[_0x33233a[_0x9de0('0x20')]],'as':_0x33233a['as'],'attributes':_0x33233a[_0x9de0('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x9de0('0xb')](function(_0x5a3775){logger[_0x9de0('0x13')](_0x9de0('0x16'),_0x7d914e);logger[_0x9de0('0x21')]('GetCmHopperBlack',_0x7d914e,JSON['stringify'](_0x5a3775));_0x183fcc(_0x5a3775);})[_0x9de0('0x15')](function(_0x53b9f0){logger[_0x9de0('0xf')](_0x9de0('0x16'),_0x53b9f0[_0x9de0('0x12')],_0x7d914e);_0x1d7abb(_0x13d9ab[_0x9de0('0xf')](0x1f4,_0x53b9f0['message']));});});};exports[_0x9de0('0x22')]=function(_0x3138c7){var _0x578cc0=this;return new Promise(function(_0x3fdae4,_0x3e2142){return db['CmHopperBlack'][_0x9de0('0x23')](_0x3138c7[_0x9de0('0x24')],{'raw':_0x3138c7[_0x9de0('0x19')]?_0x3138c7[_0x9de0('0x19')][_0x9de0('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3138c7[_0x9de0('0x19')]?_0x3138c7['options']['where']||null:null,'attributes':_0x3138c7['options']?_0x3138c7['options'][_0x9de0('0x1c')]||null:null,'limit':_0x3138c7[_0x9de0('0x19')]?_0x3138c7[_0x9de0('0x19')][_0x9de0('0x1d')]||null:null})['then'](function(_0x2e1a0d){logger['info'](_0x9de0('0x22'),_0x3138c7);logger['debug'](_0x9de0('0x22'),_0x3138c7,JSON['stringify'](_0x2e1a0d));_0x3fdae4(_0x2e1a0d);})[_0x9de0('0x15')](function(_0x213392){logger[_0x9de0('0xf')](_0x9de0('0x22'),_0x213392['message'],_0x3138c7);_0x3e2142(_0x578cc0[_0x9de0('0xf')](0x1f4,_0x213392[_0x9de0('0x12')]));});});};exports[_0x9de0('0x25')]=function(_0xc21bba){var _0x1242db=this;return new Promise(function(_0x408135,_0x16b5ff){return db[_0x9de0('0x17')][_0x9de0('0x26')]({'where':_0xc21bba[_0x9de0('0x19')]?_0xc21bba[_0x9de0('0x19')][_0x9de0('0x1b')]||null:null})[_0x9de0('0xb')](function(_0x4abe2a){logger['info'](_0x9de0('0x25'),_0xc21bba);logger[_0x9de0('0x21')]('DestroyCmHopperBlack',_0xc21bba,JSON[_0x9de0('0xe')](_0x4abe2a));_0x408135(_0x4abe2a);})[_0x9de0('0x15')](function(_0x40ef67){logger[_0x9de0('0xf')](_0x9de0('0x25'),_0x40ef67['message'],_0xc21bba);_0x16b5ff(_0x1242db[_0x9de0('0xf')](0x1f4,_0x40ef67[_0x9de0('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdbd=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./cmHopperBlack.controller','isAuthenticated','index','describe','get','show','put','/:id','update','delete','destroy'];(function(_0x48c4ef,_0x319d44){var _0x435715=function(_0x925d50){while(--_0x925d50){_0x48c4ef['push'](_0x48c4ef['shift']());}};_0x435715(++_0x319d44);}(_0xfdbd,0xf0));var _0xdfdb=function(_0x4b64a4,_0x1bdc50){_0x4b64a4=_0x4b64a4-0x0;var _0xd19b0e=_0xfdbd[_0x4b64a4];return _0xd19b0e;};'use strict';var multer=require(_0xdfdb('0x0'));var util=require(_0xdfdb('0x1'));var path=require(_0xdfdb('0x2'));var timeout=require(_0xdfdb('0x3'));var express=require(_0xdfdb('0x4'));var router=express[_0xdfdb('0x5')]();var fs_extra=require(_0xdfdb('0x6'));var auth=require(_0xdfdb('0x7'));var interaction=require(_0xdfdb('0x8'));var config=require('../../config/environment');var controller=require(_0xdfdb('0x9'));router['get']('/',auth[_0xdfdb('0xa')](),controller[_0xdfdb('0xb')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0xdfdb('0xc')]);router[_0xdfdb('0xd')]('/:id',auth[_0xdfdb('0xa')](),controller[_0xdfdb('0xe')]);router[_0xdfdb('0xf')](_0xdfdb('0x10'),auth[_0xdfdb('0xa')](),controller[_0xdfdb('0x11')]);router[_0xdfdb('0x12')]('/:id',auth[_0xdfdb('0xa')](),controller[_0xdfdb('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x1db9=['isAuthenticated','describe','put','/:id','delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','get','/describe'];(function(_0x576885,_0x576ce3){var _0x29c536=function(_0x4b90b3){while(--_0x4b90b3){_0x576885['push'](_0x576885['shift']());}};_0x29c536(++_0x576ce3);}(_0x1db9,0x176));var _0x91db=function(_0x2fbe77,_0x213747){_0x2fbe77=_0x2fbe77-0x0;var _0x521e8c=_0x1db9[_0x2fbe77];return _0x521e8c;};'use strict';var multer=require(_0x91db('0x0'));var util=require(_0x91db('0x1'));var path=require(_0x91db('0x2'));var timeout=require(_0x91db('0x3'));var express=require(_0x91db('0x4'));var router=express[_0x91db('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x91db('0x6'));var interaction=require(_0x91db('0x7'));var config=require('../../config/environment');var controller=require('./cmHopperBlack.controller');router[_0x91db('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0x91db('0x8')](_0x91db('0x9'),auth[_0x91db('0xa')](),controller[_0x91db('0xb')]);router[_0x91db('0x8')]('/:id',auth[_0x91db('0xa')](),controller['show']);router[_0x91db('0xc')](_0x91db('0xd'),auth[_0x91db('0xa')](),controller['update']);router[_0x91db('0xe')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x91db('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef7f=['getDataValue','endtime','setDataValue','diff','BOOLEAN','moment','exports','INTEGER','DATE','STRING'];(function(_0x311829,_0x4f55ef){var _0x6f1881=function(_0x51fde7){while(--_0x51fde7){_0x311829['push'](_0x311829['shift']());}};_0x6f1881(++_0x4f55ef);}(_0xef7f,0xcd));var _0xfef7=function(_0x48e931,_0xc9dfdc){_0x48e931=_0x48e931-0x0;var _0x5a3c86=_0xef7f[_0x48e931];return _0x5a3c86;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xfef7('0x0'));module[_0xfef7('0x1')]={'state':{'type':Sequelize[_0xfef7('0x2')](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0xfef7('0x3')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xfef7('0x4')]},'originatecalleridnum':{'type':Sequelize[_0xfef7('0x4')]},'originatecalleridname':{'type':Sequelize[_0xfef7('0x4')]},'calleridnum':{'type':Sequelize[_0xfef7('0x4')]},'calleridname':{'type':Sequelize[_0xfef7('0x4')]},'starttime':{'type':Sequelize[_0xfef7('0x3')]},'responsetime':{'type':Sequelize['DATE']},'answertime':{'type':Sequelize[_0xfef7('0x3')]},'droptime':{'type':Sequelize[_0xfef7('0x3')]},'endtime':{'type':Sequelize[_0xfef7('0x3')]},'ringtime':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xfef7('0x4')]},'campaign':{'type':Sequelize[_0xfef7('0x4')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize[_0xfef7('0x4')]},'disposition':{'type':Sequelize[_0xfef7('0x4')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xfef7('0x4')]},'dispositionat':{'type':Sequelize[_0xfef7('0x3')],'set':function(_0x4a783c){var _0x91f0a1=this[_0xfef7('0x5')](_0xfef7('0x6'));if(_0x91f0a1&&_0x4a783c){this[_0xfef7('0x7')]('followuptime',moment(_0x4a783c)[_0xfef7('0x8')](moment(_0x91f0a1),'seconds'));}return this[_0xfef7('0x7')]('dispositionat',_0x4a783c);}},'amd':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fax':{'type':Sequelize[_0xfef7('0x9')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0xfef7('0x9')],'defaultValue':![]},'rescheduled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0xfef7('0x3')]},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xfef7('0x4')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xfef7('0x3')]},'deleted':{'type':Sequelize[_0xfef7('0x4')],'defaultValue':null},'deletedat':{'type':Sequelize[_0xfef7('0x3')]},'recallme':{'type':Sequelize[_0xfef7('0x9')],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0xfef7('0x3')]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xfef7('0x2')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xbe69=['seconds','BOOLEAN','sequelize','moment','exports','INTEGER','STRING','DATE','setDataValue','followuptime'];(function(_0x52205a,_0x14f256){var _0x40bb7d=function(_0xd9958c){while(--_0xd9958c){_0x52205a['push'](_0x52205a['shift']());}};_0x40bb7d(++_0x14f256);}(_0xbe69,0x1ce));var _0x9be6=function(_0x1eda52,_0x56aadb){_0x1eda52=_0x1eda52-0x0;var _0x40dceb=_0xbe69[_0x1eda52];return _0x40dceb;};'use strict';var Sequelize=require(_0x9be6('0x0'));var moment=require(_0x9be6('0x1'));module[_0x9be6('0x2')]={'state':{'type':Sequelize[_0x9be6('0x3')](0x2)},'statedesc':{'type':Sequelize[_0x9be6('0x4')]},'scheduledat':{'type':Sequelize[_0x9be6('0x5')]},'countbusyretry':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x9be6('0x4')]},'originatecalleridnum':{'type':Sequelize[_0x9be6('0x4')]},'originatecalleridname':{'type':Sequelize[_0x9be6('0x4')]},'calleridnum':{'type':Sequelize[_0x9be6('0x4')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x9be6('0x5')]},'responsetime':{'type':Sequelize[_0x9be6('0x5')]},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize[_0x9be6('0x5')]},'endtime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x9be6('0x4')]},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0x9be6('0x4')]},'membername':{'type':Sequelize[_0x9be6('0x4')]},'reason':{'type':Sequelize[_0x9be6('0x4')]},'disposition':{'type':Sequelize[_0x9be6('0x4')]},'secondDisposition':{'type':Sequelize[_0x9be6('0x4')]},'thirdDisposition':{'type':Sequelize[_0x9be6('0x4')]},'dispositionat':{'type':Sequelize[_0x9be6('0x5')],'set':function(_0x3e798f){var _0x384082=this['getDataValue']('endtime');if(_0x384082&&_0x3e798f){this[_0x9be6('0x6')](_0x9be6('0x7'),moment(_0x3e798f)['diff'](moment(_0x384082),_0x9be6('0x8')));}return this[_0x9be6('0x6')]('dispositionat',_0x3e798f);}},'amd':{'type':Sequelize[_0x9be6('0x9')],'defaultValue':![]},'fax':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'blacklist':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduled':{'type':Sequelize[_0x9be6('0x9')],'defaultValue':![]},'rescheduledat':{'type':Sequelize['DATE']},'callback':{'type':Sequelize[_0x9be6('0x9')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0x9be6('0x5')]},'deleted':{'type':Sequelize['STRING'],'defaultValue':null},'deletedat':{'type':Sequelize[_0x9be6('0x5')]},'recallme':{'type':Sequelize[_0x9be6('0x9')],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x9be6('0x5')]},'countnosuchnumberretry':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x9be6('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d38=['calleridnum\x20IS\x20NOT\x20NULL','CmHopper','findOne','rimraf','zip-dir','fast-json-patch','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','save','update','then','stack','name','send','index','map','CmHopperFinal','rawAttributes','type','key','model','query','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','keys','filters','intersection','describe','catch','body','uniqueid','find','params','countContactsQueueCampaignHopperFinal','sequelize','literal','`state`\x20=\x200,\x201,\x20null','noSuchContacts','COUNT','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','countContactsIvrCampaignHopperFinal','busyContacts','`state`\x20=\x208,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','moveContactsQueueCampaignHopperFinal','insert','into','fromQuery','phone','scheduledAt','ContactId','ListId','VoiceQueueId','createdAt','updatedAt','select','field','ANY_VALUE(calleridnum)','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(VoiceQueueId)','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','from','calleridnum\x20NOT\x20IN\x20(?)','state\x20=\x204','group','Campaign','cm_hopper','CampaignId','ANY_VALUE(ListId)','CampaignId\x20=\x20?','state'];(function(_0x19d873,_0x1b5249){var _0x26be90=function(_0x10fb7f){while(--_0x10fb7f){_0x19d873['push'](_0x19d873['shift']());}};_0x26be90(++_0x1b5249);}(_0x6d38,0x1ef));var _0x86d3=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x6d38[_0x2f5ac5];return _0x37c9a8;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x86d3('0x0'));var zipdir=require(_0x86d3('0x1'));var jsonpatch=require(_0x86d3('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x86d3('0x3'));var Mustache=require('mustache');var util=require(_0x86d3('0x4'));var path=require(_0x86d3('0x5'));var sox=require(_0x86d3('0x6'));var csv=require('to-csv');var ejs=require(_0x86d3('0x7'));var fs=require('fs');var fs_extra=require(_0x86d3('0x8'));var _=require(_0x86d3('0x9'));var squel=require(_0x86d3('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x86d3('0xb'));var toCsv=require(_0x86d3('0xc'));var querystring=require(_0x86d3('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x86d3('0xe'));var qs=require(_0x86d3('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x86d3('0x10'))(_0x86d3('0x11'));var utils=require('../../config/utils');var config=require(_0x86d3('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x86d3('0x13'))['db'];function respondWithStatusCode(_0x7d4d2e,_0x440a55){_0x440a55=_0x440a55||0xcc;return function(_0x26d64c){if(_0x26d64c){return _0x7d4d2e[_0x86d3('0x14')](_0x440a55);}return _0x7d4d2e[_0x86d3('0x15')](_0x440a55)[_0x86d3('0x16')]();};}function respondWithResult(_0x12ef4a,_0x5ce2ff){_0x5ce2ff=_0x5ce2ff||0xc8;return function(_0x1c1ba8){if(_0x1c1ba8){return _0x12ef4a[_0x86d3('0x15')](_0x5ce2ff)[_0x86d3('0x17')](_0x1c1ba8);}};}function respondWithFilteredResult(_0x207f6f,_0x1ea535){return function(_0x34fb3b){if(_0x34fb3b){var _0x1ff008=typeof _0x1ea535[_0x86d3('0x18')]==='undefined'&&typeof _0x1ea535[_0x86d3('0x19')]===_0x86d3('0x1a');var _0x431b3f=_0x34fb3b[_0x86d3('0x1b')];var _0x46feec=_0x1ff008?0x0:_0x1ea535[_0x86d3('0x18')];var _0x33e459=_0x1ff008?_0x34fb3b[_0x86d3('0x1b')]:_0x1ea535[_0x86d3('0x18')]+_0x1ea535['limit'];var _0x191ba5;if(_0x33e459>=_0x431b3f){_0x33e459=_0x431b3f;_0x191ba5=0xc8;}else{_0x191ba5=0xce;}_0x207f6f['status'](_0x191ba5);return _0x207f6f[_0x86d3('0x1c')]('Content-Range',_0x46feec+'-'+_0x33e459+'/'+_0x431b3f)['json'](_0x34fb3b);}return null;};}function patchUpdates(_0x41486a){return function(_0x1edb6d){try{jsonpatch[_0x86d3('0x1d')](_0x1edb6d,_0x41486a,!![]);}catch(_0x1720ae){return BPromise['reject'](_0x1720ae);}return _0x1edb6d[_0x86d3('0x1e')]();};}function saveUpdates(_0x55e1c3,_0x36e0fa){return function(_0x3fdf67){if(_0x3fdf67){return _0x3fdf67[_0x86d3('0x1f')](_0x55e1c3)['then'](function(_0x39d819){return _0x39d819;});}return null;};}function removeEntity(_0x72b3d4,_0x1fa4ac){return function(_0x4bf5b8){if(_0x4bf5b8){return _0x4bf5b8['destroy']()[_0x86d3('0x20')](function(){_0x72b3d4['status'](0xcc)[_0x86d3('0x16')]();});}};}function handleEntityNotFound(_0x1bea5e,_0x3dfecd){return function(_0x3c5fe4){if(!_0x3c5fe4){_0x1bea5e['sendStatus'](0x194);}return _0x3c5fe4;};}function handleError(_0x481077,_0x3359e4){_0x3359e4=_0x3359e4||0x1f4;return function(_0x611764){logger['error'](_0x611764[_0x86d3('0x21')]);if(_0x611764['name']){delete _0x611764[_0x86d3('0x22')];}_0x481077[_0x86d3('0x15')](_0x3359e4)[_0x86d3('0x23')](_0x611764);};}exports[_0x86d3('0x24')]=function(_0x11a6fd,_0x14c9ff){var _0x1f203e={},_0x35d708={},_0x303f13={'count':0x0,'rows':[]};var _0x44dacf=_[_0x86d3('0x25')](db[_0x86d3('0x26')][_0x86d3('0x27')],function(_0x28c25e){return{'name':_0x28c25e['fieldName'],'type':_0x28c25e[_0x86d3('0x28')][_0x86d3('0x29')]};});_0x35d708[_0x86d3('0x2a')]=_[_0x86d3('0x25')](_0x44dacf,_0x86d3('0x22'));_0x35d708[_0x86d3('0x2b')]=_['keys'](_0x11a6fd[_0x86d3('0x2b')]);_0x35d708['filters']=_['intersection'](_0x35d708[_0x86d3('0x2a')],_0x35d708[_0x86d3('0x2b')]);_0x1f203e[_0x86d3('0x2c')]=_['intersection'](_0x35d708[_0x86d3('0x2a')],qs[_0x86d3('0x2d')](_0x11a6fd['query'][_0x86d3('0x2d')]));_0x1f203e[_0x86d3('0x2c')]=_0x1f203e[_0x86d3('0x2c')][_0x86d3('0x2e')]?_0x1f203e[_0x86d3('0x2c')]:_0x35d708[_0x86d3('0x2a')];if(!_0x11a6fd[_0x86d3('0x2b')][_0x86d3('0x2f')]('nolimit')){_0x1f203e['limit']=qs['limit'](_0x11a6fd[_0x86d3('0x2b')]['limit']);_0x1f203e[_0x86d3('0x18')]=qs['offset'](_0x11a6fd[_0x86d3('0x2b')][_0x86d3('0x18')]);}_0x1f203e[_0x86d3('0x30')]=qs[_0x86d3('0x31')](_0x11a6fd[_0x86d3('0x2b')][_0x86d3('0x31')]);_0x1f203e[_0x86d3('0x32')]=qs['filters'](_[_0x86d3('0x33')](_0x11a6fd[_0x86d3('0x2b')],_0x35d708['filters']),_0x44dacf);if(_0x11a6fd[_0x86d3('0x2b')][_0x86d3('0x34')]){_0x1f203e[_0x86d3('0x32')]=_[_0x86d3('0x35')](_0x1f203e['where'],{'$or':_[_0x86d3('0x25')](_0x44dacf,function(_0x42ac0d){if(_0x42ac0d[_0x86d3('0x28')]!=='VIRTUAL'){var _0x5762ca={};_0x5762ca[_0x42ac0d[_0x86d3('0x22')]]={'$like':'%'+_0x11a6fd[_0x86d3('0x2b')][_0x86d3('0x34')]+'%'};return _0x5762ca;}})});}_0x1f203e=_[_0x86d3('0x35')]({},_0x1f203e,_0x11a6fd[_0x86d3('0x36')]);var _0x3666fc={'where':_0x1f203e[_0x86d3('0x32')]};return db['CmHopperFinal'][_0x86d3('0x1b')](_0x3666fc)[_0x86d3('0x20')](function(_0x2bdc67){_0x303f13[_0x86d3('0x1b')]=_0x2bdc67;if(_0x11a6fd['query'][_0x86d3('0x37')]){_0x1f203e[_0x86d3('0x38')]=[{'all':!![]}];}return db[_0x86d3('0x26')][_0x86d3('0x39')](_0x1f203e);})['then'](function(_0x587747){_0x303f13[_0x86d3('0x3a')]=_0x587747;return _0x303f13;})['then'](respondWithFilteredResult(_0x14c9ff,_0x1f203e))['catch'](handleError(_0x14c9ff,null));};exports[_0x86d3('0x3b')]=function(_0x1385fc,_0x43490a){var _0x35d6fe={'raw':!![],'where':{'id':_0x1385fc['params']['id']}},_0x23ef72={};_0x23ef72[_0x86d3('0x2a')]=_[_0x86d3('0x3c')](db[_0x86d3('0x26')]['rawAttributes']);_0x23ef72[_0x86d3('0x2b')]=_[_0x86d3('0x3c')](_0x1385fc['query']);_0x23ef72[_0x86d3('0x3d')]=_[_0x86d3('0x3e')](_0x23ef72['model'],_0x23ef72['query']);_0x35d6fe['attributes']=_[_0x86d3('0x3e')](_0x23ef72[_0x86d3('0x2a')],qs[_0x86d3('0x2d')](_0x1385fc[_0x86d3('0x2b')][_0x86d3('0x2d')]));_0x35d6fe[_0x86d3('0x2c')]=_0x35d6fe['attributes'][_0x86d3('0x2e')]?_0x35d6fe[_0x86d3('0x2c')]:_0x23ef72['model'];if(_0x1385fc[_0x86d3('0x2b')][_0x86d3('0x37')]){_0x35d6fe[_0x86d3('0x38')]=[{'all':!![]}];}_0x35d6fe=_[_0x86d3('0x35')]({},_0x35d6fe,_0x1385fc[_0x86d3('0x36')]);return db[_0x86d3('0x26')]['find'](_0x35d6fe)[_0x86d3('0x20')](handleEntityNotFound(_0x43490a,null))[_0x86d3('0x20')](respondWithResult(_0x43490a,null))['catch'](handleError(_0x43490a,null));};exports[_0x86d3('0x3f')]=function(_0x412d0e,_0xd20863){return db[_0x86d3('0x26')][_0x86d3('0x3f')]()['then'](respondWithResult(_0xd20863,null))[_0x86d3('0x40')](handleError(_0xd20863,null));};exports[_0x86d3('0x1f')]=function(_0x3226b5,_0x14fa58){if(_0x3226b5[_0x86d3('0x41')][_0x86d3('0x42')]){delete _0x3226b5[_0x86d3('0x41')][_0x86d3('0x42')];}return db[_0x86d3('0x26')][_0x86d3('0x43')]({'where':{'uniqueid':_0x3226b5[_0x86d3('0x44')]['id']}})[_0x86d3('0x20')](handleEntityNotFound(_0x14fa58,null))['then'](saveUpdates(_0x3226b5[_0x86d3('0x41')],null))[_0x86d3('0x20')](respondWithResult(_0x14fa58,null))['catch'](handleError(_0x14fa58,null));};exports[_0x86d3('0x45')]=function(_0x23a6ee,_0x197047,_0x2e9af5){return db[_0x86d3('0x26')][_0x86d3('0x39')]({'raw':![],'where':{'VoiceQueueId':_0x23a6ee['params']['id']},'attributes':[[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x48')))),_0x86d3('0x49')],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db['sequelize'][_0x86d3('0x47')](_0x86d3('0x4b')))),_0x86d3('0x4c')],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')]['literal'](_0x86d3('0x4d')))),'busyContacts'],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')]('`state`\x20=\x208,\x201,\x20null'))),_0x86d3('0x4e')],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db['sequelize']['fn']('IF',db['sequelize']['literal'](_0x86d3('0x4f')))),'dropContacts'],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')]['literal']('`state`\x20=\x2011\x20,\x201,\x20null'))),'abandonedContacts'],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db['sequelize']['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x50')))),_0x86d3('0x51')],[db[_0x86d3('0x46')]['fn']('COUNT',db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x52')))),'answeringMachine']]})[_0x86d3('0x20')](handleEntityNotFound(_0x197047,null))[_0x86d3('0x20')](respondWithResult(_0x197047,null))['catch'](handleError(_0x197047,null));};exports[_0x86d3('0x53')]=function(_0x416428,_0x15cdd0,_0x29bdee){return db[_0x86d3('0x26')][_0x86d3('0x39')]({'raw':![],'where':{'CampaignId':_0x416428[_0x86d3('0x44')]['id']},'attributes':[[db['sequelize']['fn']('COUNT',db[_0x86d3('0x46')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x200,\x201,\x20null'))),_0x86d3('0x49')],[db['sequelize']['fn'](_0x86d3('0x4a'),db['sequelize']['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x4b')))),'noAnswerContacts'],[db['sequelize']['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x4d')))),_0x86d3('0x54')],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x55')))),_0x86d3('0x4e')],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db[_0x86d3('0x46')]['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')]('`state`\x20=\x2010\x20,\x201,\x20null'))),_0x86d3('0x56')],[db[_0x86d3('0x46')]['fn'](_0x86d3('0x4a'),db['sequelize']['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x57')))),_0x86d3('0x58')],[db['sequelize']['fn'](_0x86d3('0x4a'),db['sequelize']['fn']('IF',db[_0x86d3('0x46')][_0x86d3('0x47')](_0x86d3('0x50')))),_0x86d3('0x51')],[db[_0x86d3('0x46')]['fn']('COUNT',db[_0x86d3('0x46')]['fn']('IF',db['sequelize'][_0x86d3('0x47')](_0x86d3('0x52')))),'answeringMachine']]})[_0x86d3('0x20')](handleEntityNotFound(_0x15cdd0,null))[_0x86d3('0x20')](respondWithResult(_0x15cdd0,null))[_0x86d3('0x40')](handleError(_0x15cdd0,null));};exports[_0x86d3('0x59')]=function(_0x308fed,_0x1c966a,_0x379799){return db['VoiceQueue'][_0x86d3('0x43')]({'where':{'id':_0x308fed[_0x86d3('0x44')]['id']}})[_0x86d3('0x20')](handleEntityNotFound(_0x1c966a,null))[_0x86d3('0x20')](function(_0x46e356){var _0x47f72e;if(_0x46e356){_0x47f72e=squel[_0x86d3('0x5a')]()[_0x86d3('0x5b')]('cm_hopper')[_0x86d3('0x5c')]([_0x86d3('0x5d'),_0x86d3('0x5e'),_0x86d3('0x5f'),_0x86d3('0x60'),_0x86d3('0x61'),_0x86d3('0x62'),_0x86d3('0x63')],squel[_0x86d3('0x64')]()[_0x86d3('0x65')](_0x86d3('0x66'),_0x86d3('0x5d'))[_0x86d3('0x65')](_0x86d3('0x67'),'scheduledAt')[_0x86d3('0x65')](_0x86d3('0x68'),_0x86d3('0x5f'))[_0x86d3('0x65')]('ANY_VALUE(ListId)',_0x86d3('0x60'))[_0x86d3('0x65')](_0x86d3('0x69'),_0x86d3('0x61'))['field']('NOW()',_0x86d3('0x62'))['field'](_0x86d3('0x67'),'updatedAt')['from'](_0x86d3('0x6a'))[_0x86d3('0x32')](_0x86d3('0x6b'),_0x308fed[_0x86d3('0x44')]['id'][_0x86d3('0x6c')]())['where'](_0x86d3('0x6d'),_0x308fed[_0x86d3('0x41')]['state'][_0x86d3('0x6c')]())[_0x86d3('0x32')]('calleridnum\x20IS\x20NOT\x20NULL')[_0x86d3('0x32')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0x86d3('0x64')]()['field']('phone')[_0x86d3('0x6e')]('cm_hopper')[_0x86d3('0x32')](_0x86d3('0x6b'),_0x308fed[_0x86d3('0x44')]['id'][_0x86d3('0x6c')]()))[_0x86d3('0x32')](_0x86d3('0x6f'),squel[_0x86d3('0x64')]()[_0x86d3('0x65')]('calleridnum')[_0x86d3('0x6e')](_0x86d3('0x6a'))[_0x86d3('0x32')](_0x86d3('0x6b'),_0x308fed[_0x86d3('0x44')]['id']['toString']())[_0x86d3('0x32')](_0x86d3('0x70')))[_0x86d3('0x71')](_0x86d3('0x5f')))[_0x86d3('0x6c')]();return db[_0x86d3('0x46')][_0x86d3('0x2b')](_0x47f72e);}return[];})['then'](respondWithResult(_0x1c966a,null))[_0x86d3('0x40')](handleError(_0x1c966a,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0xca2e0,_0x596b1d,_0x5a22ca){return db[_0x86d3('0x72')][_0x86d3('0x43')]({'where':{'id':_0xca2e0['params']['id']}})[_0x86d3('0x20')](handleEntityNotFound(_0x596b1d,null))[_0x86d3('0x20')](function(_0x879a8b){var _0x1c1384;if(_0x879a8b){_0x1c1384=squel[_0x86d3('0x5a')]()[_0x86d3('0x5b')](_0x86d3('0x73'))['fromQuery'](['phone',_0x86d3('0x5e'),_0x86d3('0x5f'),_0x86d3('0x60'),_0x86d3('0x74'),_0x86d3('0x62'),_0x86d3('0x63')],squel['select']()[_0x86d3('0x65')](_0x86d3('0x66'),_0x86d3('0x5d'))[_0x86d3('0x65')](_0x86d3('0x67'),_0x86d3('0x5e'))[_0x86d3('0x65')](_0x86d3('0x68'),_0x86d3('0x5f'))['field'](_0x86d3('0x75'),_0x86d3('0x60'))['field']('ANY_VALUE(CampaignId)',_0x86d3('0x74'))[_0x86d3('0x65')](_0x86d3('0x67'),'createdAt')[_0x86d3('0x65')](_0x86d3('0x67'),_0x86d3('0x63'))[_0x86d3('0x6e')](_0x86d3('0x6a'))['where'](_0x86d3('0x76'),_0xca2e0[_0x86d3('0x44')]['id']['toString']())[_0x86d3('0x32')](_0x86d3('0x6d'),_0xca2e0[_0x86d3('0x41')][_0x86d3('0x77')]['toString']())[_0x86d3('0x32')](_0x86d3('0x78'))[_0x86d3('0x32')](_0x86d3('0x6f'),squel[_0x86d3('0x64')]()['field'](_0x86d3('0x5d'))[_0x86d3('0x6e')](_0x86d3('0x73'))[_0x86d3('0x32')](_0x86d3('0x76'),_0xca2e0[_0x86d3('0x44')]['id'][_0x86d3('0x6c')]()))[_0x86d3('0x32')](_0x86d3('0x6f'),squel[_0x86d3('0x64')]()['field']('calleridnum')[_0x86d3('0x6e')](_0x86d3('0x6a'))['where'](_0x86d3('0x76'),_0xca2e0[_0x86d3('0x44')]['id'][_0x86d3('0x6c')]())[_0x86d3('0x32')](_0x86d3('0x70')))[_0x86d3('0x71')](_0x86d3('0x5f')))[_0x86d3('0x6c')]();return db[_0x86d3('0x46')]['query'](_0x1c1384);}return[];})['then'](respondWithResult(_0x596b1d,null))['catch'](handleError(_0x596b1d,null));};exports['checkContactHopper']=function(_0xad83bf,_0x2514c1,_0x28a509){return db[_0x86d3('0x79')][_0x86d3('0x7a')]({'where':{'VoiceQueueId':_0xad83bf[_0x86d3('0x41')][_0x86d3('0x61')],'CampaignId':_0xad83bf['body'][_0x86d3('0x74')],'ContactId':_0xad83bf[_0x86d3('0x41')][_0x86d3('0x5f')]}})[_0x86d3('0x20')](handleEntityNotFound(_0x2514c1,null))['then'](function(_0xe239b5){if(_0xe239b5){return _0xe239b5;}return null;})['then'](respondWithResult(_0x2514c1,null))[_0x86d3('0x40')](handleError(_0x2514c1,null));};
\ No newline at end of file
+var _0xf61e=['rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','set','Content-Range','apply','destroy','then','status','error','stack','name','send','index','map','CmHopperFinal','rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','where','filter','VIRTUAL','merge','options','includeAll','include','findAll','catch','show','find','describe','update','body','uniqueid','params','countContactsQueueCampaignHopperFinal','COUNT','sequelize','literal','noSuchContacts','noAnswerContacts','busyContacts','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','`state`\x20=\x203,\x201,\x20null','`state`\x20=\x205,\x201,\x20null','`state`\x20=\x208,\x201,\x20null','moveContactsQueueCampaignHopperFinal','insert','cm_hopper','phone','scheduledAt','VoiceQueueId','createdAt','updatedAt','select','field','NOW()','ANY_VALUE(ContactId)','ListId','ANY_VALUE(VoiceQueueId)','from','cm_hopper_final','toString','state\x20=\x20?','state','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','VoiceQueueId\x20=\x20?','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','Campaign','into','fromQuery','ContactId','CampaignId','ANY_VALUE(calleridnum)','ANY_VALUE(ListId)','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','calleridnum','checkContactHopper','findOne','eml-format'];(function(_0x5f0089,_0x227e2c){var _0x193892=function(_0x24051f){while(--_0x24051f){_0x5f0089['push'](_0x5f0089['shift']());}};_0x193892(++_0x227e2c);}(_0xf61e,0x191));var _0xef61=function(_0x115f77,_0x4baddc){_0x115f77=_0x115f77-0x0;var _0x27dfe8=_0xf61e[_0x115f77];return _0x27dfe8;};'use strict';var emlformat=require(_0xef61('0x0'));var rimraf=require(_0xef61('0x1'));var zipdir=require(_0xef61('0x2'));var jsonpatch=require(_0xef61('0x3'));var rp=require(_0xef61('0x4'));var moment=require(_0xef61('0x5'));var BPromise=require(_0xef61('0x6'));var Mustache=require(_0xef61('0x7'));var util=require(_0xef61('0x8'));var path=require(_0xef61('0x9'));var sox=require(_0xef61('0xa'));var csv=require(_0xef61('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xef61('0xc'));var _=require(_0xef61('0xd'));var squel=require('squel');var crypto=require(_0xef61('0xe'));var jsforce=require(_0xef61('0xf'));var deskjs=require(_0xef61('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xef61('0x11'));var Redis=require(_0xef61('0x12'));var authService=require(_0xef61('0x13'));var qs=require(_0xef61('0x14'));var as=require(_0xef61('0x15'));var hardwareService=require(_0xef61('0x16'));var logger=require(_0xef61('0x17'))(_0xef61('0x18'));var utils=require(_0xef61('0x19'));var config=require(_0xef61('0x1a'));var licenseUtil=require(_0xef61('0x1b'));var db=require(_0xef61('0x1c'))['db'];function respondWithStatusCode(_0x114e1f,_0x318f1c){_0x318f1c=_0x318f1c||0xcc;return function(_0x5de159){if(_0x5de159){return _0x114e1f[_0xef61('0x1d')](_0x318f1c);}return _0x114e1f['status'](_0x318f1c)[_0xef61('0x1e')]();};}function respondWithResult(_0x1db2a9,_0x370ee0){_0x370ee0=_0x370ee0||0xc8;return function(_0x76ef9b){if(_0x76ef9b){return _0x1db2a9['status'](_0x370ee0)[_0xef61('0x1f')](_0x76ef9b);}};}function respondWithFilteredResult(_0x435beb,_0x1224c2){return function(_0x78ff22){if(_0x78ff22){var _0x588a61=typeof _0x1224c2[_0xef61('0x20')]===_0xef61('0x21')&&typeof _0x1224c2['limit']===_0xef61('0x21');var _0x408541=_0x78ff22[_0xef61('0x22')];var _0x22dc1b=_0x588a61?0x0:_0x1224c2[_0xef61('0x20')];var _0x28315a=_0x588a61?_0x78ff22[_0xef61('0x22')]:_0x1224c2['offset']+_0x1224c2[_0xef61('0x23')];var _0x2c8dad;if(_0x28315a>=_0x408541){_0x28315a=_0x408541;_0x2c8dad=0xc8;}else{_0x2c8dad=0xce;}_0x435beb['status'](_0x2c8dad);return _0x435beb[_0xef61('0x24')](_0xef61('0x25'),_0x22dc1b+'-'+_0x28315a+'/'+_0x408541)[_0xef61('0x1f')](_0x78ff22);}return null;};}function patchUpdates(_0x26cf42){return function(_0xb0d7a4){try{jsonpatch[_0xef61('0x26')](_0xb0d7a4,_0x26cf42,!![]);}catch(_0x92ea33){return BPromise['reject'](_0x92ea33);}return _0xb0d7a4['save']();};}function saveUpdates(_0x3d31c1,_0x58bd7d){return function(_0x389d6d){if(_0x389d6d){return _0x389d6d['update'](_0x3d31c1)['then'](function(_0x2f0569){return _0x2f0569;});}return null;};}function removeEntity(_0x5ce99d,_0x53181b){return function(_0xfbee94){if(_0xfbee94){return _0xfbee94[_0xef61('0x27')]()[_0xef61('0x28')](function(){_0x5ce99d[_0xef61('0x29')](0xcc)['end']();});}};}function handleEntityNotFound(_0x16b144,_0x4e738f){return function(_0x2a6832){if(!_0x2a6832){_0x16b144[_0xef61('0x1d')](0x194);}return _0x2a6832;};}function handleError(_0x2419a9,_0xf4c7c9){_0xf4c7c9=_0xf4c7c9||0x1f4;return function(_0x2155f1){logger[_0xef61('0x2a')](_0x2155f1[_0xef61('0x2b')]);if(_0x2155f1[_0xef61('0x2c')]){delete _0x2155f1[_0xef61('0x2c')];}_0x2419a9[_0xef61('0x29')](_0xf4c7c9)[_0xef61('0x2d')](_0x2155f1);};}exports[_0xef61('0x2e')]=function(_0xeb9a62,_0x63edd4){var _0x1f3572={},_0x85978={},_0x39c15e={'count':0x0,'rows':[]};var _0x393ea9=_[_0xef61('0x2f')](db[_0xef61('0x30')][_0xef61('0x31')],function(_0x53fa3b){return{'name':_0x53fa3b['fieldName'],'type':_0x53fa3b['type'][_0xef61('0x32')]};});_0x85978[_0xef61('0x33')]=_[_0xef61('0x2f')](_0x393ea9,'name');_0x85978[_0xef61('0x34')]=_[_0xef61('0x35')](_0xeb9a62['query']);_0x85978[_0xef61('0x36')]=_['intersection'](_0x85978['model'],_0x85978[_0xef61('0x34')]);_0x1f3572['attributes']=_[_0xef61('0x37')](_0x85978['model'],qs[_0xef61('0x38')](_0xeb9a62[_0xef61('0x34')][_0xef61('0x38')]));_0x1f3572[_0xef61('0x39')]=_0x1f3572[_0xef61('0x39')][_0xef61('0x3a')]?_0x1f3572[_0xef61('0x39')]:_0x85978[_0xef61('0x33')];if(!_0xeb9a62[_0xef61('0x34')][_0xef61('0x3b')]('nolimit')){_0x1f3572[_0xef61('0x23')]=qs[_0xef61('0x23')](_0xeb9a62[_0xef61('0x34')][_0xef61('0x23')]);_0x1f3572[_0xef61('0x20')]=qs['offset'](_0xeb9a62[_0xef61('0x34')][_0xef61('0x20')]);}_0x1f3572[_0xef61('0x3c')]=qs['sort'](_0xeb9a62['query']['sort']);_0x1f3572[_0xef61('0x3d')]=qs['filters'](_['pick'](_0xeb9a62['query'],_0x85978[_0xef61('0x36')]),_0x393ea9);if(_0xeb9a62[_0xef61('0x34')][_0xef61('0x3e')]){_0x1f3572['where']=_['merge'](_0x1f3572['where'],{'$or':_[_0xef61('0x2f')](_0x393ea9,function(_0x32ad44){if(_0x32ad44['type']!==_0xef61('0x3f')){var _0x12f442={};_0x12f442[_0x32ad44[_0xef61('0x2c')]]={'$like':'%'+_0xeb9a62[_0xef61('0x34')]['filter']+'%'};return _0x12f442;}})});}_0x1f3572=_[_0xef61('0x40')]({},_0x1f3572,_0xeb9a62[_0xef61('0x41')]);var _0x3103d4={'where':_0x1f3572[_0xef61('0x3d')]};return db['CmHopperFinal']['count'](_0x3103d4)[_0xef61('0x28')](function(_0x462972){_0x39c15e[_0xef61('0x22')]=_0x462972;if(_0xeb9a62['query'][_0xef61('0x42')]){_0x1f3572[_0xef61('0x43')]=[{'all':!![]}];}return db[_0xef61('0x30')][_0xef61('0x44')](_0x1f3572);})['then'](function(_0x545597){_0x39c15e['rows']=_0x545597;return _0x39c15e;})[_0xef61('0x28')](respondWithFilteredResult(_0x63edd4,_0x1f3572))[_0xef61('0x45')](handleError(_0x63edd4,null));};exports[_0xef61('0x46')]=function(_0xe40d,_0x3f81a1){var _0x272143={'raw':!![],'where':{'id':_0xe40d['params']['id']}},_0xc9b467={};_0xc9b467[_0xef61('0x33')]=_[_0xef61('0x35')](db[_0xef61('0x30')][_0xef61('0x31')]);_0xc9b467['query']=_[_0xef61('0x35')](_0xe40d[_0xef61('0x34')]);_0xc9b467[_0xef61('0x36')]=_[_0xef61('0x37')](_0xc9b467[_0xef61('0x33')],_0xc9b467[_0xef61('0x34')]);_0x272143['attributes']=_[_0xef61('0x37')](_0xc9b467[_0xef61('0x33')],qs[_0xef61('0x38')](_0xe40d['query'][_0xef61('0x38')]));_0x272143[_0xef61('0x39')]=_0x272143[_0xef61('0x39')][_0xef61('0x3a')]?_0x272143[_0xef61('0x39')]:_0xc9b467[_0xef61('0x33')];if(_0xe40d['query'][_0xef61('0x42')]){_0x272143[_0xef61('0x43')]=[{'all':!![]}];}_0x272143=_['merge']({},_0x272143,_0xe40d[_0xef61('0x41')]);return db[_0xef61('0x30')][_0xef61('0x47')](_0x272143)[_0xef61('0x28')](handleEntityNotFound(_0x3f81a1,null))['then'](respondWithResult(_0x3f81a1,null))[_0xef61('0x45')](handleError(_0x3f81a1,null));};exports[_0xef61('0x48')]=function(_0x5e614b,_0x47b09d){return db[_0xef61('0x30')][_0xef61('0x48')]()['then'](respondWithResult(_0x47b09d,null))[_0xef61('0x45')](handleError(_0x47b09d,null));};exports[_0xef61('0x49')]=function(_0x13d0f8,_0x2904e0){if(_0x13d0f8[_0xef61('0x4a')][_0xef61('0x4b')]){delete _0x13d0f8[_0xef61('0x4a')]['uniqueid'];}return db[_0xef61('0x30')]['find']({'where':{'uniqueid':_0x13d0f8[_0xef61('0x4c')]['id']}})[_0xef61('0x28')](handleEntityNotFound(_0x2904e0,null))[_0xef61('0x28')](saveUpdates(_0x13d0f8[_0xef61('0x4a')],null))[_0xef61('0x28')](respondWithResult(_0x2904e0,null))[_0xef61('0x45')](handleError(_0x2904e0,null));};exports[_0xef61('0x4d')]=function(_0x1565c7,_0x264877,_0x4af2f3){return db[_0xef61('0x30')][_0xef61('0x44')]({'raw':![],'where':{'VoiceQueueId':_0x1565c7['params']['id']},'attributes':[[db['sequelize']['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db['sequelize'][_0xef61('0x50')]('`state`\x20=\x200,\x201,\x20null'))),_0xef61('0x51')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')]('`state`\x20=\x203,\x201,\x20null'))),_0xef61('0x52')],[db[_0xef61('0x4f')]['fn']('COUNT',db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')]['literal']('`state`\x20=\x205,\x201,\x20null'))),_0xef61('0x53')],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')]('`state`\x20=\x208,\x201,\x20null'))),_0xef61('0x54')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x55')))),_0xef61('0x56')],[db['sequelize']['fn']('COUNT',db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x57')))),_0xef61('0x58')],[db['sequelize']['fn'](_0xef61('0x4e'),db['sequelize']['fn']('IF',db['sequelize'][_0xef61('0x50')](_0xef61('0x59')))),_0xef61('0x5a')],[db['sequelize']['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x5b')))),_0xef61('0x5c')]]})[_0xef61('0x28')](handleEntityNotFound(_0x264877,null))[_0xef61('0x28')](respondWithResult(_0x264877,null))[_0xef61('0x45')](handleError(_0x264877,null));};exports[_0xef61('0x5d')]=function(_0x5507ee,_0x15a8c5,_0x4b26e6){return db['CmHopperFinal'][_0xef61('0x44')]({'raw':![],'where':{'CampaignId':_0x5507ee[_0xef61('0x4c')]['id']},'attributes':[[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')]['literal']('`state`\x20=\x200,\x201,\x20null'))),_0xef61('0x51')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x5e')))),_0xef61('0x52')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db['sequelize'][_0xef61('0x50')](_0xef61('0x5f')))),'busyContacts'],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x60')))),_0xef61('0x54')],[db[_0xef61('0x4f')]['fn']('COUNT',db[_0xef61('0x4f')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x2010\x20,\x201,\x20null'))),_0xef61('0x56')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db['sequelize']['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x57')))),_0xef61('0x58')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x59')))),_0xef61('0x5a')],[db[_0xef61('0x4f')]['fn'](_0xef61('0x4e'),db[_0xef61('0x4f')]['fn']('IF',db[_0xef61('0x4f')][_0xef61('0x50')](_0xef61('0x5b')))),_0xef61('0x5c')]]})['then'](handleEntityNotFound(_0x15a8c5,null))[_0xef61('0x28')](respondWithResult(_0x15a8c5,null))[_0xef61('0x45')](handleError(_0x15a8c5,null));};exports[_0xef61('0x61')]=function(_0x5ab4fe,_0x38117b,_0x346752){return db['VoiceQueue'][_0xef61('0x47')]({'where':{'id':_0x5ab4fe[_0xef61('0x4c')]['id']}})['then'](handleEntityNotFound(_0x38117b,null))[_0xef61('0x28')](function(_0x54777a){var _0xe62ec2;if(_0x54777a){_0xe62ec2=squel[_0xef61('0x62')]()['into'](_0xef61('0x63'))['fromQuery']([_0xef61('0x64'),_0xef61('0x65'),'ContactId','ListId',_0xef61('0x66'),_0xef61('0x67'),_0xef61('0x68')],squel[_0xef61('0x69')]()[_0xef61('0x6a')]('ANY_VALUE(calleridnum)',_0xef61('0x64'))[_0xef61('0x6a')](_0xef61('0x6b'),_0xef61('0x65'))[_0xef61('0x6a')](_0xef61('0x6c'),'ContactId')[_0xef61('0x6a')]('ANY_VALUE(ListId)',_0xef61('0x6d'))[_0xef61('0x6a')](_0xef61('0x6e'),_0xef61('0x66'))[_0xef61('0x6a')](_0xef61('0x6b'),_0xef61('0x67'))[_0xef61('0x6a')](_0xef61('0x6b'),_0xef61('0x68'))[_0xef61('0x6f')](_0xef61('0x70'))[_0xef61('0x3d')]('VoiceQueueId\x20=\x20?',_0x5ab4fe[_0xef61('0x4c')]['id'][_0xef61('0x71')]())[_0xef61('0x3d')](_0xef61('0x72'),_0x5ab4fe['body'][_0xef61('0x73')]['toString']())['where'](_0xef61('0x74'))['where'](_0xef61('0x75'),squel['select']()['field'](_0xef61('0x64'))[_0xef61('0x6f')]('cm_hopper')[_0xef61('0x3d')]('VoiceQueueId\x20=\x20?',_0x5ab4fe[_0xef61('0x4c')]['id'][_0xef61('0x71')]()))[_0xef61('0x3d')](_0xef61('0x75'),squel['select']()[_0xef61('0x6a')]('calleridnum')[_0xef61('0x6f')](_0xef61('0x70'))[_0xef61('0x3d')](_0xef61('0x76'),_0x5ab4fe[_0xef61('0x4c')]['id'][_0xef61('0x71')]())[_0xef61('0x3d')](_0xef61('0x77')))[_0xef61('0x78')]('ContactId'))[_0xef61('0x71')]();return db['sequelize'][_0xef61('0x34')](_0xe62ec2);}return[];})[_0xef61('0x28')](respondWithResult(_0x38117b,null))['catch'](handleError(_0x38117b,null));};exports[_0xef61('0x79')]=function(_0x5b86e4,_0x52f7c5,_0x465fb5){return db[_0xef61('0x7a')]['find']({'where':{'id':_0x5b86e4[_0xef61('0x4c')]['id']}})[_0xef61('0x28')](handleEntityNotFound(_0x52f7c5,null))['then'](function(_0x352633){var _0x2cb8a8;if(_0x352633){_0x2cb8a8=squel['insert']()[_0xef61('0x7b')]('cm_hopper')[_0xef61('0x7c')]([_0xef61('0x64'),_0xef61('0x65'),_0xef61('0x7d'),'ListId',_0xef61('0x7e'),_0xef61('0x67'),_0xef61('0x68')],squel['select']()[_0xef61('0x6a')](_0xef61('0x7f'),'phone')['field'](_0xef61('0x6b'),_0xef61('0x65'))[_0xef61('0x6a')](_0xef61('0x6c'),_0xef61('0x7d'))[_0xef61('0x6a')](_0xef61('0x80'),_0xef61('0x6d'))[_0xef61('0x6a')](_0xef61('0x81'),_0xef61('0x7e'))[_0xef61('0x6a')](_0xef61('0x6b'),_0xef61('0x67'))[_0xef61('0x6a')](_0xef61('0x6b'),'updatedAt')[_0xef61('0x6f')](_0xef61('0x70'))[_0xef61('0x3d')](_0xef61('0x82'),_0x5b86e4[_0xef61('0x4c')]['id'][_0xef61('0x71')]())[_0xef61('0x3d')](_0xef61('0x72'),_0x5b86e4[_0xef61('0x4a')][_0xef61('0x73')][_0xef61('0x71')]())[_0xef61('0x3d')]('calleridnum\x20IS\x20NOT\x20NULL')[_0xef61('0x3d')](_0xef61('0x75'),squel['select']()[_0xef61('0x6a')](_0xef61('0x64'))[_0xef61('0x6f')](_0xef61('0x63'))[_0xef61('0x3d')]('CampaignId\x20=\x20?',_0x5b86e4[_0xef61('0x4c')]['id']['toString']()))[_0xef61('0x3d')](_0xef61('0x75'),squel[_0xef61('0x69')]()[_0xef61('0x6a')](_0xef61('0x83'))[_0xef61('0x6f')](_0xef61('0x70'))[_0xef61('0x3d')]('CampaignId\x20=\x20?',_0x5b86e4[_0xef61('0x4c')]['id'][_0xef61('0x71')]())[_0xef61('0x3d')](_0xef61('0x77')))[_0xef61('0x78')](_0xef61('0x7d')))[_0xef61('0x71')]();return db[_0xef61('0x4f')][_0xef61('0x34')](_0x2cb8a8);}return[];})['then'](respondWithResult(_0x52f7c5,null))[_0xef61('0x45')](handleError(_0x52f7c5,null));};exports[_0xef61('0x84')]=function(_0x22006a,_0x317c4a,_0x5d8ee9){return db['CmHopper'][_0xef61('0x85')]({'where':{'VoiceQueueId':_0x22006a[_0xef61('0x4a')][_0xef61('0x66')],'CampaignId':_0x22006a[_0xef61('0x4a')][_0xef61('0x7e')],'ContactId':_0x22006a[_0xef61('0x4a')][_0xef61('0x7d')]}})['then'](handleEntityNotFound(_0x317c4a,null))[_0xef61('0x28')](function(_0x660c71){if(_0x660c71){return _0x660c71;}return null;})[_0xef61('0x28')](respondWithResult(_0x317c4a,null))[_0xef61('0x45')](handleError(_0x317c4a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x216c=['calleridnum','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','define','cm_hopper_final'];(function(_0x41ecc0,_0x4a941a){var _0x5447f1=function(_0x15423a){while(--_0x15423a){_0x41ecc0['push'](_0x41ecc0['shift']());}};_0x5447f1(++_0x4a941a);}(_0x216c,0x1e3));var _0xc216=function(_0x520936,_0x563abb){_0x520936=_0x520936-0x0;var _0x3177ec=_0x216c[_0x520936];return _0x3177ec;};'use strict';var _=require(_0xc216('0x0'));var util=require(_0xc216('0x1'));var logger=require(_0xc216('0x2'))(_0xc216('0x3'));var moment=require(_0xc216('0x4'));var BPromise=require(_0xc216('0x5'));var rp=require(_0xc216('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc216('0x7'));var config=require(_0xc216('0x8'));var attributes=require('./cmHopperFinal.attributes');module['exports']=function(_0x5e2631,_0x34503b){return _0x5e2631[_0xc216('0x9')]('CmHopperFinal',attributes,{'tableName':_0xc216('0xa'),'paranoid':![],'indexes':[{'name':_0xc216('0xb'),'fields':[_0xc216('0xb')]},{'name':_0xc216('0xc'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1019=['rimraf','../../config/environment','./cmHopperFinal.attributes','exports','define','CmHopperFinal','cm_hopper_final','uniqueid','lodash','../../config/logger','moment','bluebird','request-promise'];(function(_0x3ce221,_0x22d678){var _0x3995b8=function(_0x4f0a97){while(--_0x4f0a97){_0x3ce221['push'](_0x3ce221['shift']());}};_0x3995b8(++_0x22d678);}(_0x1019,0xbe));var _0x9101=function(_0x3931ff,_0x49d16d){_0x3931ff=_0x3931ff-0x0;var _0x107f42=_0x1019[_0x3931ff];return _0x107f42;};'use strict';var _=require(_0x9101('0x0'));var util=require('util');var logger=require(_0x9101('0x1'))('api');var moment=require(_0x9101('0x2'));var BPromise=require(_0x9101('0x3'));var rp=require(_0x9101('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9101('0x5'));var config=require(_0x9101('0x6'));var attributes=require(_0x9101('0x7'));module[_0x9101('0x8')]=function(_0x3d1b3e,_0xa775fc){return _0x3d1b3e[_0x9101('0x9')](_0x9101('0xa'),attributes,{'tableName':_0x9101('0xb'),'paranoid':![],'indexes':[{'name':'calleridnum','fields':['calleridnum']},{'name':_0x9101('0xc'),'fields':[_0x9101('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['../../config/environment','jayson/promise','http','info','CmHopperFinal,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','CmHopperFinal','create','body','options','raw','CreateCmHopperFinal','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x3e92be,_0x151b4d){var _0x34077c=function(_0x179d4d){while(--_0x179d4d){_0x3e92be['push'](_0x3e92be['shift']());}};_0x34077c(++_0x151b4d);}(_0x7a54,0x106));var _0x47a5=function(_0x39798a,_0x1805ae){_0x39798a=_0x39798a-0x0;var _0x3fe31b=_0x7a54[_0x39798a];return _0x3fe31b;};'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')]('CmHopperFinal,\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['CreateCmHopperFinal']=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')]('CreateCmHopperFinal',_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')]));});});};
\ No newline at end of file
+var _0x7a54=['../../config/environment','jayson/promise','http','info','CmHopperFinal,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','CmHopperFinal','create','body','options','raw','CreateCmHopperFinal','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x4e2f80,_0x3e1d03){var _0x4a2481=function(_0x433f0e){while(--_0x433f0e){_0x4e2f80['push'](_0x4e2f80['shift']());}};_0x4a2481(++_0x3e1d03);}(_0x7a54,0x106));var _0x47a5=function(_0x2c461d,_0x12a02f){_0x2c461d=_0x2c461d-0x0;var _0x179fd9=_0x7a54[_0x2c461d];return _0x179fd9;};'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')]('CmHopperFinal,\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['CreateCmHopperFinal']=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')]('CreateCmHopperFinal',_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')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3efd=['/describe','describe','/:id','countContactsQueueCampaignHopperFinal','/campaign/countAttributes/:id','countContactsIvrCampaignHopperFinal','moveContactsQueueCampaignHopperFinal','post','checkContactHopper','put','update','exports','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperFinal.controller','get','isAuthenticated','index'];(function(_0x404957,_0x5192a4){var _0x4e0365=function(_0x4f6cd7){while(--_0x4f6cd7){_0x404957['push'](_0x404957['shift']());}};_0x4e0365(++_0x5192a4);}(_0x3efd,0xcc));var _0xd3ef=function(_0x22fe3b,_0x1ff31f){_0x22fe3b=_0x22fe3b-0x0;var _0x3e7386=_0x3efd[_0x22fe3b];return _0x3e7386;};'use strict';var multer=require(_0xd3ef('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xd3ef('0x1'));var express=require(_0xd3ef('0x2'));var router=express[_0xd3ef('0x3')]();var fs_extra=require(_0xd3ef('0x4'));var auth=require(_0xd3ef('0x5'));var interaction=require(_0xd3ef('0x6'));var config=require(_0xd3ef('0x7'));var controller=require(_0xd3ef('0x8'));router[_0xd3ef('0x9')]('/',auth[_0xd3ef('0xa')](),controller[_0xd3ef('0xb')]);router[_0xd3ef('0x9')](_0xd3ef('0xc'),auth[_0xd3ef('0xa')](),controller[_0xd3ef('0xd')]);router['get'](_0xd3ef('0xe'),auth[_0xd3ef('0xa')](),controller['show']);router['get']('/voice/queue/countAttributes/:id',auth[_0xd3ef('0xa')](),controller[_0xd3ef('0xf')]);router['get'](_0xd3ef('0x10'),auth['isAuthenticated'](),controller[_0xd3ef('0x11')]);router['post']('/voice/queue/moveContacts/:id',auth[_0xd3ef('0xa')](),controller[_0xd3ef('0x12')]);router[_0xd3ef('0x13')]('/voice/campaign/moveContacts/:id',auth['isAuthenticated'](),controller['moveContactsIvrCampaignHopperFinal']);router[_0xd3ef('0x13')]('/checkContactHopper',auth[_0xd3ef('0xa')](),controller[_0xd3ef('0x14')]);router[_0xd3ef('0x15')]('/:id',auth[_0xd3ef('0xa')](),controller[_0xd3ef('0x16')]);module[_0xd3ef('0x17')]=router;
\ No newline at end of file
+var _0x3278=['Router','../../components/auth/service','../../config/environment','./cmHopperFinal.controller','isAuthenticated','index','describe','get','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','countContactsIvrCampaignHopperFinal','post','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','put','/:id','exports','path','connect-timeout'];(function(_0x3776b4,_0x19a1e3){var _0x1636d9=function(_0x320ae3){while(--_0x320ae3){_0x3776b4['push'](_0x3776b4['shift']());}};_0x1636d9(++_0x19a1e3);}(_0x3278,0x11c));var _0x8327=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x3278[_0x20a584];return _0x4b41a8;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x8327('0x0'));var timeout=require(_0x8327('0x1'));var express=require('express');var router=express[_0x8327('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x8327('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x8327('0x4'));var controller=require(_0x8327('0x5'));router['get']('/',auth[_0x8327('0x6')](),controller[_0x8327('0x7')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0x8327('0x8')]);router[_0x8327('0x9')]('/:id',auth[_0x8327('0x6')](),controller[_0x8327('0xa')]);router[_0x8327('0x9')](_0x8327('0xb'),auth[_0x8327('0x6')](),controller[_0x8327('0xc')]);router[_0x8327('0x9')]('/campaign/countAttributes/:id',auth[_0x8327('0x6')](),controller[_0x8327('0xd')]);router[_0x8327('0xe')](_0x8327('0xf'),auth[_0x8327('0x6')](),controller[_0x8327('0x10')]);router[_0x8327('0xe')](_0x8327('0x11'),auth[_0x8327('0x6')](),controller[_0x8327('0x12')]);router[_0x8327('0xe')]('/checkContactHopper',auth['isAuthenticated'](),controller['checkContactHopper']);router[_0x8327('0x13')](_0x8327('0x14'),auth[_0x8327('0x6')](),controller['update']);module[_0x8327('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x641e=['DATE','BOOLEAN','sequelize','exports','INTEGER','STRING'];(function(_0x5625eb,_0x32e080){var _0xfbd7af=function(_0x4b2918){while(--_0x4b2918){_0x5625eb['push'](_0x5625eb['shift']());}};_0xfbd7af(++_0x32e080);}(_0x641e,0x74));var _0xe641=function(_0x2dcdc0,_0x4244a2){_0x2dcdc0=_0x2dcdc0-0x0;var _0x3916d2=_0x641e[_0x2dcdc0];return _0x3916d2;};'use strict';var Sequelize=require(_0xe641('0x0'));module[_0xe641('0x1')]={'state':{'type':Sequelize[_0xe641('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xe641('0x3')]},'scheduledat':{'type':Sequelize[_0xe641('0x4')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xe641('0x3')]},'originatecalleridnum':{'type':Sequelize[_0xe641('0x3')]},'originatecalleridname':{'type':Sequelize[_0xe641('0x3')]},'calleridnum':{'type':Sequelize[_0xe641('0x3')]},'calleridname':{'type':Sequelize[_0xe641('0x3')]},'starttime':{'type':Sequelize['DATE']},'responsetime':{'type':Sequelize[_0xe641('0x4')]},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize[_0xe641('0x4')]},'endtime':{'type':Sequelize[_0xe641('0x4')]},'ringtime':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'followuptime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'dropreason':{'type':Sequelize['STRING']},'campaign':{'type':Sequelize[_0xe641('0x3')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0xe641('0x3')]},'reason':{'type':Sequelize['STRING']},'amd':{'type':Sequelize[_0xe641('0x5')],'defaultValue':![]},'fax':{'type':Sequelize[_0xe641('0x5')],'defaultValue':![]},'callback':{'type':Sequelize[_0xe641('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xe641('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xe641('0x4')]},'recallme':{'type':Sequelize[_0xe641('0x5')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xe641('0x4')]},'edited':{'type':Sequelize[_0xe641('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xe641('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x8c3e=['BOOLEAN','INTEGER','DATE','STRING'];(function(_0x5a77ff,_0x10d75f){var _0x588243=function(_0x35e550){while(--_0x35e550){_0x5a77ff['push'](_0x5a77ff['shift']());}};_0x588243(++_0x10d75f);}(_0x8c3e,0x189));var _0xe8c3=function(_0x108d68,_0x9b39de){_0x108d68=_0x108d68-0x0;var _0x11476a=_0x8c3e[_0x108d68];return _0x11476a;};'use strict';var Sequelize=require('sequelize');module['exports']={'state':{'type':Sequelize[_0xe8c3('0x0')](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0xe8c3('0x1')]},'countbusyretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'countglobal':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xe8c3('0x2')]},'originatecalleridnum':{'type':Sequelize[_0xe8c3('0x2')]},'originatecalleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xe8c3('0x2')]},'calleridname':{'type':Sequelize[_0xe8c3('0x2')]},'starttime':{'type':Sequelize[_0xe8c3('0x1')]},'responsetime':{'type':Sequelize[_0xe8c3('0x1')]},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize[_0xe8c3('0x1')]},'endtime':{'type':Sequelize[_0xe8c3('0x1')]},'ringtime':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'dropreason':{'type':Sequelize['STRING']},'campaign':{'type':Sequelize[_0xe8c3('0x2')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize['STRING']},'amd':{'type':Sequelize[_0xe8c3('0x3')],'defaultValue':![]},'fax':{'type':Sequelize[_0xe8c3('0x3')],'defaultValue':![]},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0xe8c3('0x1')]},'recallme':{'type':Sequelize[_0xe8c3('0x3')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xe8c3('0x1')]},'edited':{'type':Sequelize[_0xe8c3('0x3')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xe8c3('0x0')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x212f=['sort','filters','pick','where','filter','CmHopperHistory','includeAll','include','rows','show','params','merge','create','body','catch','describe','uniqueid','find','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x212f,0x170));var _0xf212=function(_0x3387a9,_0x15cf49){_0x3387a9=_0x3387a9-0x0;var _0x5e1442=_0x212f[_0x3387a9];return _0x5e1442;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf212('0x0'));var rp=require(_0xf212('0x1'));var moment=require(_0xf212('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xf212('0x3'));var util=require(_0xf212('0x4'));var path=require('path');var sox=require(_0xf212('0x5'));var csv=require(_0xf212('0x6'));var ejs=require(_0xf212('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xf212('0x8'));var crypto=require(_0xf212('0x9'));var jsforce=require(_0xf212('0xa'));var deskjs=require(_0xf212('0xb'));var toCsv=require(_0xf212('0x6'));var querystring=require(_0xf212('0xc'));var Papa=require(_0xf212('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf212('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf212('0xf'));var utils=require(_0xf212('0x10'));var config=require(_0xf212('0x11'));var licenseUtil=require(_0xf212('0x12'));var db=require(_0xf212('0x13'))['db'];function respondWithStatusCode(_0x561b6f,_0x5f1b67){_0x5f1b67=_0x5f1b67||0xcc;return function(_0xc35a3d){if(_0xc35a3d){return _0x561b6f[_0xf212('0x14')](_0x5f1b67);}return _0x561b6f[_0xf212('0x15')](_0x5f1b67)[_0xf212('0x16')]();};}function respondWithResult(_0x410b13,_0x5907a8){_0x5907a8=_0x5907a8||0xc8;return function(_0x38bb5a){if(_0x38bb5a){return _0x410b13[_0xf212('0x15')](_0x5907a8)[_0xf212('0x17')](_0x38bb5a);}};}function respondWithFilteredResult(_0x2328f9,_0x45ece7){return function(_0x1d0371){if(_0x1d0371){var _0xeba296=typeof _0x45ece7[_0xf212('0x18')]===_0xf212('0x19')&&typeof _0x45ece7[_0xf212('0x1a')]===_0xf212('0x19');var _0x7f6ea7=_0x1d0371[_0xf212('0x1b')];var _0x5303f8=_0xeba296?0x0:_0x45ece7[_0xf212('0x18')];var _0x1138a8=_0xeba296?_0x1d0371['count']:_0x45ece7[_0xf212('0x18')]+_0x45ece7[_0xf212('0x1a')];var _0x5a01f4;if(_0x1138a8>=_0x7f6ea7){_0x1138a8=_0x7f6ea7;_0x5a01f4=0xc8;}else{_0x5a01f4=0xce;}_0x2328f9['status'](_0x5a01f4);return _0x2328f9[_0xf212('0x1c')](_0xf212('0x1d'),_0x5303f8+'-'+_0x1138a8+'/'+_0x7f6ea7)[_0xf212('0x17')](_0x1d0371);}return null;};}function patchUpdates(_0x2aea09){return function(_0x12c241){try{jsonpatch[_0xf212('0x1e')](_0x12c241,_0x2aea09,!![]);}catch(_0x6b8cb4){return BPromise[_0xf212('0x1f')](_0x6b8cb4);}return _0x12c241[_0xf212('0x20')]();};}function saveUpdates(_0x3fd1d3,_0x3b6dfa){return function(_0xbda27c){if(_0xbda27c){return _0xbda27c[_0xf212('0x21')](_0x3fd1d3)[_0xf212('0x22')](function(_0x51fd51){return _0x51fd51;});}return null;};}function removeEntity(_0x425e4e,_0x1efedc){return function(_0x32e182){if(_0x32e182){return _0x32e182[_0xf212('0x23')]()[_0xf212('0x22')](function(){_0x425e4e[_0xf212('0x15')](0xcc)['end']();});}};}function handleEntityNotFound(_0x404f89,_0x578168){return function(_0x3d694c){if(!_0x3d694c){_0x404f89[_0xf212('0x14')](0x194);}return _0x3d694c;};}function handleError(_0x1cb578,_0x2fe544){_0x2fe544=_0x2fe544||0x1f4;return function(_0x2fe802){logger[_0xf212('0x24')](_0x2fe802[_0xf212('0x25')]);if(_0x2fe802[_0xf212('0x26')]){delete _0x2fe802[_0xf212('0x26')];}_0x1cb578[_0xf212('0x15')](_0x2fe544)[_0xf212('0x27')](_0x2fe802);};}exports['index']=function(_0x2a09d8,_0x5524e9){var _0x4daa0f={},_0x58ed8e={},_0xc45286={'count':0x0,'rows':[]};var _0x746b08=_[_0xf212('0x28')](db['CmHopperHistory'][_0xf212('0x29')],function(_0x557bea){return{'name':_0x557bea['fieldName'],'type':_0x557bea[_0xf212('0x2a')][_0xf212('0x2b')]};});_0x58ed8e[_0xf212('0x2c')]=_['map'](_0x746b08,_0xf212('0x26'));_0x58ed8e[_0xf212('0x2d')]=_[_0xf212('0x2e')](_0x2a09d8[_0xf212('0x2d')]);_0x58ed8e['filters']=_[_0xf212('0x2f')](_0x58ed8e[_0xf212('0x2c')],_0x58ed8e[_0xf212('0x2d')]);_0x4daa0f[_0xf212('0x30')]=_[_0xf212('0x2f')](_0x58ed8e[_0xf212('0x2c')],qs[_0xf212('0x31')](_0x2a09d8[_0xf212('0x2d')][_0xf212('0x31')]));_0x4daa0f[_0xf212('0x30')]=_0x4daa0f[_0xf212('0x30')][_0xf212('0x32')]?_0x4daa0f[_0xf212('0x30')]:_0x58ed8e['model'];if(!_0x2a09d8[_0xf212('0x2d')][_0xf212('0x33')]('nolimit')){_0x4daa0f[_0xf212('0x1a')]=qs[_0xf212('0x1a')](_0x2a09d8[_0xf212('0x2d')][_0xf212('0x1a')]);_0x4daa0f[_0xf212('0x18')]=qs[_0xf212('0x18')](_0x2a09d8[_0xf212('0x2d')]['offset']);}_0x4daa0f['order']=qs[_0xf212('0x34')](_0x2a09d8[_0xf212('0x2d')][_0xf212('0x34')]);_0x4daa0f['where']=qs[_0xf212('0x35')](_[_0xf212('0x36')](_0x2a09d8[_0xf212('0x2d')],_0x58ed8e['filters']),_0x746b08);if(_0x2a09d8['query']['filter']){_0x4daa0f[_0xf212('0x37')]=_['merge'](_0x4daa0f['where'],{'$or':_[_0xf212('0x28')](_0x746b08,function(_0x19ff17){if(_0x19ff17[_0xf212('0x2a')]!=='VIRTUAL'){var _0x31f93b={};_0x31f93b[_0x19ff17['name']]={'$like':'%'+_0x2a09d8['query'][_0xf212('0x38')]+'%'};return _0x31f93b;}})});}_0x4daa0f=_['merge']({},_0x4daa0f,_0x2a09d8['options']);var _0xde4cef={'where':_0x4daa0f['where']};return db[_0xf212('0x39')]['count'](_0xde4cef)['then'](function(_0x1737ad){_0xc45286['count']=_0x1737ad;if(_0x2a09d8[_0xf212('0x2d')][_0xf212('0x3a')]){_0x4daa0f[_0xf212('0x3b')]=[{'all':!![]}];}return db[_0xf212('0x39')]['findAll'](_0x4daa0f);})[_0xf212('0x22')](function(_0x3f633e){_0xc45286[_0xf212('0x3c')]=_0x3f633e;return _0xc45286;})['then'](respondWithFilteredResult(_0x5524e9,_0x4daa0f))['catch'](handleError(_0x5524e9,null));};exports[_0xf212('0x3d')]=function(_0x23c146,_0x9d8d2b){var _0x4654a2={'raw':!![],'where':{'id':_0x23c146[_0xf212('0x3e')]['id']}},_0x40919c={};_0x40919c[_0xf212('0x2c')]=_[_0xf212('0x2e')](db[_0xf212('0x39')][_0xf212('0x29')]);_0x40919c[_0xf212('0x2d')]=_['keys'](_0x23c146['query']);_0x40919c['filters']=_[_0xf212('0x2f')](_0x40919c[_0xf212('0x2c')],_0x40919c[_0xf212('0x2d')]);_0x4654a2[_0xf212('0x30')]=_[_0xf212('0x2f')](_0x40919c[_0xf212('0x2c')],qs['fields'](_0x23c146[_0xf212('0x2d')]['fields']));_0x4654a2[_0xf212('0x30')]=_0x4654a2[_0xf212('0x30')][_0xf212('0x32')]?_0x4654a2[_0xf212('0x30')]:_0x40919c[_0xf212('0x2c')];if(_0x23c146['query'][_0xf212('0x3a')]){_0x4654a2[_0xf212('0x3b')]=[{'all':!![]}];}_0x4654a2=_[_0xf212('0x3f')]({},_0x4654a2,_0x23c146['options']);return db[_0xf212('0x39')]['find'](_0x4654a2)[_0xf212('0x22')](handleEntityNotFound(_0x9d8d2b,null))[_0xf212('0x22')](respondWithResult(_0x9d8d2b,null))['catch'](handleError(_0x9d8d2b,null));};exports[_0xf212('0x40')]=function(_0x4bedd3,_0x118228){return db[_0xf212('0x39')][_0xf212('0x40')](_0x4bedd3[_0xf212('0x41')],{})[_0xf212('0x22')](respondWithResult(_0x118228,0xc9))[_0xf212('0x42')](handleError(_0x118228,null));};exports[_0xf212('0x43')]=function(_0x411146,_0xe3cfcf){return db[_0xf212('0x39')][_0xf212('0x43')]()[_0xf212('0x22')](respondWithResult(_0xe3cfcf,null))[_0xf212('0x42')](handleError(_0xe3cfcf,null));};exports[_0xf212('0x21')]=function(_0x382842,_0x3b90e9){if(_0x382842[_0xf212('0x41')][_0xf212('0x44')]){delete _0x382842[_0xf212('0x41')][_0xf212('0x44')];}return db[_0xf212('0x39')][_0xf212('0x45')]({'where':{'uniqueid':_0x382842['params']['id']}})[_0xf212('0x22')](handleEntityNotFound(_0x3b90e9,null))[_0xf212('0x22')](saveUpdates(_0x382842['body'],null))['then'](respondWithResult(_0x3b90e9,null))[_0xf212('0x42')](handleError(_0x3b90e9,null));};
\ No newline at end of file
+var _0xf847=['where','pick','filters','filter','merge','type','options','findAll','rows','show','params','keys','includeAll','find','catch','body','describe','uniqueid','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','sox','fs-extra','lodash','squel','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','stack','name','send','index','map','CmHopperHistory','rawAttributes','fieldName','query','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort'];(function(_0x4eab88,_0xcc1ff8){var _0x2042e3=function(_0x221e40){while(--_0x221e40){_0x4eab88['push'](_0x4eab88['shift']());}};_0x2042e3(++_0xcc1ff8);}(_0xf847,0xea));var _0x7f84=function(_0x1ccd10,_0x4d56c4){_0x1ccd10=_0x1ccd10-0x0;var _0x171147=_0xf847[_0x1ccd10];return _0x171147;};'use strict';var emlformat=require(_0x7f84('0x0'));var rimraf=require(_0x7f84('0x1'));var zipdir=require(_0x7f84('0x2'));var jsonpatch=require(_0x7f84('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x7f84('0x4'));var Mustache=require(_0x7f84('0x5'));var util=require('util');var path=require('path');var sox=require(_0x7f84('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7f84('0x7'));var _=require(_0x7f84('0x8'));var squel=require(_0x7f84('0x9'));var crypto=require('crypto');var jsforce=require(_0x7f84('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x7f84('0xb'));var querystring=require('querystring');var Papa=require(_0x7f84('0xc'));var Redis=require('ioredis');var authService=require(_0x7f84('0xd'));var qs=require(_0x7f84('0xe'));var as=require(_0x7f84('0xf'));var hardwareService=require(_0x7f84('0x10'));var logger=require('../../config/logger')(_0x7f84('0x11'));var utils=require(_0x7f84('0x12'));var config=require(_0x7f84('0x13'));var licenseUtil=require(_0x7f84('0x14'));var db=require(_0x7f84('0x15'))['db'];function respondWithStatusCode(_0x427b83,_0xdffc7f){_0xdffc7f=_0xdffc7f||0xcc;return function(_0x5c4e1d){if(_0x5c4e1d){return _0x427b83[_0x7f84('0x16')](_0xdffc7f);}return _0x427b83['status'](_0xdffc7f)[_0x7f84('0x17')]();};}function respondWithResult(_0x5547db,_0x39b97b){_0x39b97b=_0x39b97b||0xc8;return function(_0x4f9ec1){if(_0x4f9ec1){return _0x5547db[_0x7f84('0x18')](_0x39b97b)[_0x7f84('0x19')](_0x4f9ec1);}};}function respondWithFilteredResult(_0x1ae99b,_0x483978){return function(_0x3ce732){if(_0x3ce732){var _0x290b25=typeof _0x483978[_0x7f84('0x1a')]==='undefined'&&typeof _0x483978[_0x7f84('0x1b')]===_0x7f84('0x1c');var _0x53be37=_0x3ce732[_0x7f84('0x1d')];var _0x3e873d=_0x290b25?0x0:_0x483978[_0x7f84('0x1a')];var _0x34b98f=_0x290b25?_0x3ce732[_0x7f84('0x1d')]:_0x483978['offset']+_0x483978[_0x7f84('0x1b')];var _0x360dc0;if(_0x34b98f>=_0x53be37){_0x34b98f=_0x53be37;_0x360dc0=0xc8;}else{_0x360dc0=0xce;}_0x1ae99b[_0x7f84('0x18')](_0x360dc0);return _0x1ae99b[_0x7f84('0x1e')](_0x7f84('0x1f'),_0x3e873d+'-'+_0x34b98f+'/'+_0x53be37)[_0x7f84('0x19')](_0x3ce732);}return null;};}function patchUpdates(_0x129bf3){return function(_0x33036d){try{jsonpatch['apply'](_0x33036d,_0x129bf3,!![]);}catch(_0x19323b){return BPromise[_0x7f84('0x20')](_0x19323b);}return _0x33036d[_0x7f84('0x21')]();};}function saveUpdates(_0x65061e,_0x3e8667){return function(_0x1110af){if(_0x1110af){return _0x1110af[_0x7f84('0x22')](_0x65061e)[_0x7f84('0x23')](function(_0x17331a){return _0x17331a;});}return null;};}function removeEntity(_0x3e04ce,_0x4fb5ce){return function(_0x3a82ec){if(_0x3a82ec){return _0x3a82ec['destroy']()['then'](function(){_0x3e04ce[_0x7f84('0x18')](0xcc)[_0x7f84('0x17')]();});}};}function handleEntityNotFound(_0x453ae1,_0x3f093d){return function(_0x534986){if(!_0x534986){_0x453ae1[_0x7f84('0x16')](0x194);}return _0x534986;};}function handleError(_0x15b456,_0x38b4e8){_0x38b4e8=_0x38b4e8||0x1f4;return function(_0x42fc62){logger['error'](_0x42fc62[_0x7f84('0x24')]);if(_0x42fc62[_0x7f84('0x25')]){delete _0x42fc62[_0x7f84('0x25')];}_0x15b456['status'](_0x38b4e8)[_0x7f84('0x26')](_0x42fc62);};}exports[_0x7f84('0x27')]=function(_0xb9be82,_0x276aef){var _0x47429d={},_0x511ff4={},_0x1c0ca0={'count':0x0,'rows':[]};var _0xddd1e=_[_0x7f84('0x28')](db[_0x7f84('0x29')][_0x7f84('0x2a')],function(_0x31c745){return{'name':_0x31c745[_0x7f84('0x2b')],'type':_0x31c745['type']['key']};});_0x511ff4['model']=_[_0x7f84('0x28')](_0xddd1e,_0x7f84('0x25'));_0x511ff4[_0x7f84('0x2c')]=_['keys'](_0xb9be82['query']);_0x511ff4['filters']=_[_0x7f84('0x2d')](_0x511ff4['model'],_0x511ff4['query']);_0x47429d[_0x7f84('0x2e')]=_[_0x7f84('0x2d')](_0x511ff4[_0x7f84('0x2f')],qs[_0x7f84('0x30')](_0xb9be82[_0x7f84('0x2c')][_0x7f84('0x30')]));_0x47429d['attributes']=_0x47429d[_0x7f84('0x2e')][_0x7f84('0x31')]?_0x47429d['attributes']:_0x511ff4[_0x7f84('0x2f')];if(!_0xb9be82['query'][_0x7f84('0x32')](_0x7f84('0x33'))){_0x47429d['limit']=qs['limit'](_0xb9be82['query'][_0x7f84('0x1b')]);_0x47429d[_0x7f84('0x1a')]=qs['offset'](_0xb9be82[_0x7f84('0x2c')][_0x7f84('0x1a')]);}_0x47429d[_0x7f84('0x34')]=qs[_0x7f84('0x35')](_0xb9be82[_0x7f84('0x2c')][_0x7f84('0x35')]);_0x47429d[_0x7f84('0x36')]=qs['filters'](_[_0x7f84('0x37')](_0xb9be82[_0x7f84('0x2c')],_0x511ff4[_0x7f84('0x38')]),_0xddd1e);if(_0xb9be82['query'][_0x7f84('0x39')]){_0x47429d[_0x7f84('0x36')]=_[_0x7f84('0x3a')](_0x47429d[_0x7f84('0x36')],{'$or':_['map'](_0xddd1e,function(_0x10efa6){if(_0x10efa6[_0x7f84('0x3b')]!=='VIRTUAL'){var _0x4bcd10={};_0x4bcd10[_0x10efa6[_0x7f84('0x25')]]={'$like':'%'+_0xb9be82['query'][_0x7f84('0x39')]+'%'};return _0x4bcd10;}})});}_0x47429d=_[_0x7f84('0x3a')]({},_0x47429d,_0xb9be82[_0x7f84('0x3c')]);var _0x2ca916={'where':_0x47429d[_0x7f84('0x36')]};return db[_0x7f84('0x29')][_0x7f84('0x1d')](_0x2ca916)['then'](function(_0x1eaeab){_0x1c0ca0[_0x7f84('0x1d')]=_0x1eaeab;if(_0xb9be82[_0x7f84('0x2c')]['includeAll']){_0x47429d['include']=[{'all':!![]}];}return db[_0x7f84('0x29')][_0x7f84('0x3d')](_0x47429d);})[_0x7f84('0x23')](function(_0x5a9d4c){_0x1c0ca0[_0x7f84('0x3e')]=_0x5a9d4c;return _0x1c0ca0;})[_0x7f84('0x23')](respondWithFilteredResult(_0x276aef,_0x47429d))['catch'](handleError(_0x276aef,null));};exports[_0x7f84('0x3f')]=function(_0x36152d,_0x4f9bcd){var _0x1205d4={'raw':!![],'where':{'id':_0x36152d[_0x7f84('0x40')]['id']}},_0x58fb5f={};_0x58fb5f[_0x7f84('0x2f')]=_[_0x7f84('0x41')](db['CmHopperHistory'][_0x7f84('0x2a')]);_0x58fb5f[_0x7f84('0x2c')]=_[_0x7f84('0x41')](_0x36152d['query']);_0x58fb5f[_0x7f84('0x38')]=_[_0x7f84('0x2d')](_0x58fb5f[_0x7f84('0x2f')],_0x58fb5f[_0x7f84('0x2c')]);_0x1205d4[_0x7f84('0x2e')]=_[_0x7f84('0x2d')](_0x58fb5f[_0x7f84('0x2f')],qs['fields'](_0x36152d['query'][_0x7f84('0x30')]));_0x1205d4[_0x7f84('0x2e')]=_0x1205d4[_0x7f84('0x2e')][_0x7f84('0x31')]?_0x1205d4['attributes']:_0x58fb5f[_0x7f84('0x2f')];if(_0x36152d[_0x7f84('0x2c')][_0x7f84('0x42')]){_0x1205d4['include']=[{'all':!![]}];}_0x1205d4=_[_0x7f84('0x3a')]({},_0x1205d4,_0x36152d['options']);return db[_0x7f84('0x29')][_0x7f84('0x43')](_0x1205d4)[_0x7f84('0x23')](handleEntityNotFound(_0x4f9bcd,null))['then'](respondWithResult(_0x4f9bcd,null))[_0x7f84('0x44')](handleError(_0x4f9bcd,null));};exports['create']=function(_0x166bf4,_0xa12425){return db[_0x7f84('0x29')]['create'](_0x166bf4[_0x7f84('0x45')],{})[_0x7f84('0x23')](respondWithResult(_0xa12425,0xc9))['catch'](handleError(_0xa12425,null));};exports[_0x7f84('0x46')]=function(_0x524ebe,_0x3a6792){return db[_0x7f84('0x29')]['describe']()[_0x7f84('0x23')](respondWithResult(_0x3a6792,null))[_0x7f84('0x44')](handleError(_0x3a6792,null));};exports[_0x7f84('0x22')]=function(_0x413827,_0x204bac){if(_0x413827[_0x7f84('0x45')][_0x7f84('0x47')]){delete _0x413827[_0x7f84('0x45')]['uniqueid'];}return db[_0x7f84('0x29')][_0x7f84('0x43')]({'where':{'uniqueid':_0x413827[_0x7f84('0x40')]['id']}})[_0x7f84('0x23')](handleEntityNotFound(_0x204bac,null))[_0x7f84('0x23')](saveUpdates(_0x413827['body'],null))['then'](respondWithResult(_0x204bac,null))[_0x7f84('0x44')](handleError(_0x204bac,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa848=['rimraf','../../config/environment','./cmHopperHistory.attributes','exports','define','CmHopperHistory','cm_hopper_history','endtime','uniqueid','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x1281eb,_0x5dbf5a){var _0x3f229b=function(_0x1c4129){while(--_0x1c4129){_0x1281eb['push'](_0x1281eb['shift']());}};_0x3f229b(++_0x5dbf5a);}(_0xa848,0x99));var _0x8a84=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xa848[_0x4b369d];return _0x571a98;};'use strict';var _=require(_0x8a84('0x0'));var util=require(_0x8a84('0x1'));var logger=require(_0x8a84('0x2'))('api');var moment=require(_0x8a84('0x3'));var BPromise=require(_0x8a84('0x4'));var rp=require(_0x8a84('0x5'));var fs=require('fs');var path=require(_0x8a84('0x6'));var rimraf=require(_0x8a84('0x7'));var config=require(_0x8a84('0x8'));var attributes=require(_0x8a84('0x9'));module[_0x8a84('0xa')]=function(_0x13acad,_0x3ee596){return _0x13acad[_0x8a84('0xb')](_0x8a84('0xc'),attributes,{'tableName':_0x8a84('0xd'),'paranoid':![],'indexes':[{'name':_0x8a84('0xe'),'fields':['endtime']},{'name':_0x8a84('0xf'),'fields':[_0x8a84('0xf')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0eeb=['uniqueid','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./cmHopperHistory.attributes','exports','define','cm_hopper_history','endtime'];(function(_0x5d3903,_0x3d6c3e){var _0x4b8bc9=function(_0x92b297){while(--_0x92b297){_0x5d3903['push'](_0x5d3903['shift']());}};_0x4b8bc9(++_0x3d6c3e);}(_0x0eeb,0xc5));var _0xb0ee=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x0eeb[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0xb0ee('0x0'));var util=require(_0xb0ee('0x1'));var logger=require(_0xb0ee('0x2'))(_0xb0ee('0x3'));var moment=require(_0xb0ee('0x4'));var BPromise=require(_0xb0ee('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb0ee('0x6'));var config=require(_0xb0ee('0x7'));var attributes=require(_0xb0ee('0x8'));module[_0xb0ee('0x9')]=function(_0x209dda,_0x453fa4){return _0x209dda[_0xb0ee('0xa')]('CmHopperHistory',attributes,{'tableName':_0xb0ee('0xb'),'paranoid':![],'indexes':[{'name':'endtime','fields':[_0xb0ee('0xc')]},{'name':_0xb0ee('0xd'),'fields':[_0xb0ee('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d08=['debug','error','code','message','CmHopperHistory,\x20%s,\x20%s','result','catch','CmHopperHistory','body','options','raw','CreateCmHopperHistory','stringify','AvgHandleTime','where','sequelize','col','predictiveIntervalTotalCalls','COUNT','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','literal','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','AVG','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','GetVoiceQueueHopperHistory','findAll','campaign','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','`state`\x20=\x203,\x201,\x20null','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundBusyCallsDay','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','outboundUnknownCallsDay','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetCampaignHopperHistory','ivrAnswerCallsDay','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','info','request\x20sent'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x8d08,0x118));var _0x88d0=function(_0x509083,_0xa6676b){_0x509083=_0x509083-0x0;var _0x4b2495=_0x8d08[_0x509083];return _0x4b2495;};'use strict';var _=require(_0x88d0('0x0'));var util=require(_0x88d0('0x1'));var moment=require(_0x88d0('0x2'));var BPromise=require(_0x88d0('0x3'));var rs=require(_0x88d0('0x4'));var fs=require('fs');var Redis=require(_0x88d0('0x5'));var db=require(_0x88d0('0x6'))['db'];var utils=require(_0x88d0('0x7'));var logger=require(_0x88d0('0x8'))(_0x88d0('0x9'));var config=require(_0x88d0('0xa'));var jayson=require(_0x88d0('0xb'));var client=jayson['client'][_0x88d0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x14eafb,_0x584b6a,_0x42ceda){return new BPromise(function(_0x511c4a,_0x473151){return client['request'](_0x14eafb,_0x42ceda)[_0x88d0('0xd')](function(_0x2fb116){logger[_0x88d0('0xe')]('CmHopperHistory,\x20%s,\x20%s',_0x584b6a,_0x88d0('0xf'));logger[_0x88d0('0x10')]('CmHopperHistory,\x20%s,\x20%s,\x20%s',_0x584b6a,_0x88d0('0xf'),JSON['stringify'](_0x2fb116));if(_0x2fb116[_0x88d0('0x11')]){if(_0x2fb116[_0x88d0('0x11')][_0x88d0('0x12')]===0x1f4){logger['error']('CmHopperHistory,\x20%s,\x20%s',_0x584b6a,_0x2fb116['error'][_0x88d0('0x13')]);return _0x473151(_0x2fb116[_0x88d0('0x11')][_0x88d0('0x13')]);}logger['error']('CmHopperHistory,\x20%s,\x20%s',_0x584b6a,_0x2fb116['error'][_0x88d0('0x13')]);return _0x511c4a(_0x2fb116[_0x88d0('0x11')]['message']);}else{logger[_0x88d0('0xe')](_0x88d0('0x14'),_0x584b6a,_0x88d0('0xf'));_0x511c4a(_0x2fb116[_0x88d0('0x15')]['message']);}})[_0x88d0('0x16')](function(_0x371744){logger[_0x88d0('0x11')](_0x88d0('0x14'),_0x584b6a,_0x371744);_0x473151(_0x371744);});});}exports['CreateCmHopperHistory']=function(_0x100727){var _0x327e52=this;return new Promise(function(_0x5862d1,_0xe59d53){return db[_0x88d0('0x17')]['create'](_0x100727[_0x88d0('0x18')],{'raw':_0x100727['options']?_0x100727[_0x88d0('0x19')][_0x88d0('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x463d67){logger[_0x88d0('0xe')](_0x88d0('0x1b'),_0x100727);logger[_0x88d0('0x10')]('CreateCmHopperHistory',_0x100727,JSON[_0x88d0('0x1c')](_0x463d67));_0x5862d1(_0x463d67);})[_0x88d0('0x16')](function(_0x40155e){logger['error']('CreateCmHopperHistory',_0x40155e[_0x88d0('0x13')],_0x100727);_0xe59d53(_0x327e52[_0x88d0('0x11')](0x1f4,_0x40155e[_0x88d0('0x13')]));});});};exports[_0x88d0('0x1d')]=function(_0x2d2aac){var _0x24af46=this;return new Promise(function(_0x100699,_0x16cd98){return db[_0x88d0('0x17')]['findAll']({'raw':_0x2d2aac[_0x88d0('0x19')]?_0x2d2aac[_0x88d0('0x19')][_0x88d0('0x1a')]===undefined?!![]:![]:!![],'where':_0x2d2aac[_0x88d0('0x19')]?_0x2d2aac[_0x88d0('0x19')][_0x88d0('0x1e')]||null:null,'attributes':[[db['sequelize']['fn']('COUNT',db[_0x88d0('0x1f')][_0x88d0('0x20')]('id')),_0x88d0('0x21')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')]['literal'](_0x88d0('0x23')))),_0x88d0('0x24')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x26')))),_0x88d0('0x27')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')]('`state`\x20=\x2011,\x201,\x20null'))),_0x88d0('0x28')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x29'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x2a')))),_0x88d0('0x2b')],[db[_0x88d0('0x1f')]['fn']('AVG',db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x2c')))),_0x88d0('0x2d')]]})['then'](function(_0x429e30){logger[_0x88d0('0xe')](_0x88d0('0x1d'),_0x2d2aac);logger[_0x88d0('0x10')](_0x88d0('0x1d'),_0x2d2aac,JSON[_0x88d0('0x1c')](_0x429e30));_0x100699(_0x429e30);})[_0x88d0('0x16')](function(_0x2be3bf){logger[_0x88d0('0x11')](_0x88d0('0x1d'),_0x2be3bf[_0x88d0('0x13')],_0x2d2aac);_0x16cd98(_0x24af46[_0x88d0('0x11')](0x1f4,_0x2be3bf[_0x88d0('0x13')]));});});};exports[_0x88d0('0x2e')]=function(_0x5282fd){var _0x139b57=this;return new Promise(function(_0x583056,_0x29f08b){return db['CmHopperHistory'][_0x88d0('0x2f')]({'raw':_0x5282fd[_0x88d0('0x19')]?_0x5282fd[_0x88d0('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x5282fd[_0x88d0('0x19')]?_0x5282fd[_0x88d0('0x19')][_0x88d0('0x1e')]||null:null,'attributes':[[_0x88d0('0x30'),_0x88d0('0x31')],[db['sequelize']['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x32')))),_0x88d0('0x33')],[db['sequelize']['fn'](_0x88d0('0x22'),db['sequelize']['fn']('IF',db[_0x88d0('0x1f')]['literal'](_0x88d0('0x34')))),'outboundNoAnswerCallsDay'],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db['sequelize'][_0x88d0('0x25')](_0x88d0('0x23')))),_0x88d0('0x35')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db['sequelize']['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x36')))),_0x88d0('0x37')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x38')))),_0x88d0('0x39')],[db['sequelize']['fn'](_0x88d0('0x22'),db['sequelize']['fn']('IF',db[_0x88d0('0x1f')]['literal'](_0x88d0('0x3a')))),_0x88d0('0x3b')],[db['sequelize']['fn'](_0x88d0('0x22'),db['sequelize']['fn']('IF',db[_0x88d0('0x1f')]['literal'](_0x88d0('0x3c')))),_0x88d0('0x3d')],[db['sequelize']['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db['sequelize'][_0x88d0('0x25')]('`state`\x20=\x2012,\x201,\x20null'))),_0x88d0('0x3e')],[db['sequelize']['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')]['literal']('`state`\x20=\x2013,\x201,\x20null'))),_0x88d0('0x3f')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db['sequelize']['literal'](_0x88d0('0x40')))),_0x88d0('0x41')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')]['literal']('`state`\x20=\x2018,\x201,\x20null'))),_0x88d0('0x42')],[db['sequelize']['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')]['literal'](_0x88d0('0x43')))),_0x88d0('0x44')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db['sequelize'][_0x88d0('0x25')](_0x88d0('0x45')))),_0x88d0('0x42')],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db[_0x88d0('0x1f')]['fn']('IF',db[_0x88d0('0x1f')][_0x88d0('0x25')](_0x88d0('0x46')))),_0x88d0('0x47')]],'group':[_0x88d0('0x30')]})[_0x88d0('0xd')](function(_0x34abf7){logger[_0x88d0('0xe')](_0x88d0('0x2e'),_0x5282fd);logger['debug']('GetVoiceQueueHopperHistory',_0x5282fd,JSON[_0x88d0('0x1c')](_0x34abf7));_0x583056(_0x34abf7);})['catch'](function(_0x1ab031){logger[_0x88d0('0x11')](_0x88d0('0x2e'),_0x1ab031['message'],_0x5282fd);_0x29f08b(_0x139b57[_0x88d0('0x11')](0x1f4,_0x1ab031[_0x88d0('0x13')]));});});};exports[_0x88d0('0x48')]=function(_0x93aaff){var _0x206aad=this;return new Promise(function(_0x4f4aa4,_0x36f098){return db[_0x88d0('0x17')][_0x88d0('0x2f')]({'raw':_0x93aaff['options']?_0x93aaff[_0x88d0('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x93aaff[_0x88d0('0x19')]?_0x93aaff[_0x88d0('0x19')][_0x88d0('0x1e')]||null:null,'attributes':[['campaign','name'],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db['sequelize']['col']('id')),'ivrTotalCallsDays'],[db[_0x88d0('0x1f')]['fn'](_0x88d0('0x22'),db['sequelize']['fn']('IF',db['sequelize'][_0x88d0('0x25')]('`state`\x20=\x204,\x201,\x20null'))),_0x88d0('0x49')]],'group':[_0x88d0('0x30')]})[_0x88d0('0xd')](function(_0x27f27b){logger[_0x88d0('0xe')](_0x88d0('0x48'),_0x93aaff);logger[_0x88d0('0x10')](_0x88d0('0x48'),_0x93aaff,JSON[_0x88d0('0x1c')](_0x27f27b));_0x4f4aa4(_0x27f27b);})[_0x88d0('0x16')](function(_0x1ba5c0){logger[_0x88d0('0x11')](_0x88d0('0x48'),_0x1ba5c0[_0x88d0('0x13')],_0x93aaff);_0x36f098(_0x206aad[_0x88d0('0x11')](0x1f4,_0x1ba5c0['message']));});});};
\ No newline at end of file
+var _0xb575=['outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','ivrAnswerCallsDay','GetCampaignHopperHistory','lodash','util','bluebird','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','CmHopperHistory,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','CmHopperHistory','create','options','raw','CreateCmHopperHistory','debug','stringify','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','`state`\x20=\x204,\x201,\x20null','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','AvgHandleTime','GetVoiceQueueHopperHistory','findAll','campaign','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','outboundNoAnswerCallsDay','outboundAnswerCallsDay','outboundBusyCallsDay','`state`\x20=\x208,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','outboundUnknownCallsDay','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null'];(function(_0xf21aaa,_0x3f5fa3){var _0x548273=function(_0x68d210){while(--_0x68d210){_0xf21aaa['push'](_0xf21aaa['shift']());}};_0x548273(++_0x3f5fa3);}(_0xb575,0xda));var _0x5b57=function(_0x3a1987,_0x3ed73e){_0x3a1987=_0x3a1987-0x0;var _0x29231f=_0xb575[_0x3a1987];return _0x29231f;};'use strict';var _=require(_0x5b57('0x0'));var util=require(_0x5b57('0x1'));var moment=require('moment');var BPromise=require(_0x5b57('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x5b57('0x3'));var logger=require(_0x5b57('0x4'))('rpc');var config=require(_0x5b57('0x5'));var jayson=require(_0x5b57('0x6'));var client=jayson[_0x5b57('0x7')][_0x5b57('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x672beb,_0x5d223d,_0x4232d0){return new BPromise(function(_0x5dd0c7,_0x2f9789){return client[_0x5b57('0x9')](_0x672beb,_0x4232d0)[_0x5b57('0xa')](function(_0x49ce3a){logger[_0x5b57('0xb')](_0x5b57('0xc'),_0x5d223d,_0x5b57('0xd'));logger['debug'](_0x5b57('0xe'),_0x5d223d,_0x5b57('0xd'),JSON['stringify'](_0x49ce3a));if(_0x49ce3a['error']){if(_0x49ce3a[_0x5b57('0xf')][_0x5b57('0x10')]===0x1f4){logger[_0x5b57('0xf')](_0x5b57('0xc'),_0x5d223d,_0x49ce3a[_0x5b57('0xf')][_0x5b57('0x11')]);return _0x2f9789(_0x49ce3a[_0x5b57('0xf')][_0x5b57('0x11')]);}logger[_0x5b57('0xf')](_0x5b57('0xc'),_0x5d223d,_0x49ce3a['error'][_0x5b57('0x11')]);return _0x5dd0c7(_0x49ce3a[_0x5b57('0xf')][_0x5b57('0x11')]);}else{logger['info'](_0x5b57('0xc'),_0x5d223d,_0x5b57('0xd'));_0x5dd0c7(_0x49ce3a[_0x5b57('0x12')][_0x5b57('0x11')]);}})[_0x5b57('0x13')](function(_0x1e7cc0){logger[_0x5b57('0xf')](_0x5b57('0xc'),_0x5d223d,_0x1e7cc0);_0x2f9789(_0x1e7cc0);});});}exports['CreateCmHopperHistory']=function(_0x336db6){var _0x1e316f=this;return new Promise(function(_0x2cb809,_0x137899){return db[_0x5b57('0x14')][_0x5b57('0x15')](_0x336db6['body'],{'raw':_0x336db6[_0x5b57('0x16')]?_0x336db6[_0x5b57('0x16')][_0x5b57('0x17')]===undefined?!![]:![]:!![]})[_0x5b57('0xa')](function(_0x53378c){logger[_0x5b57('0xb')](_0x5b57('0x18'),_0x336db6);logger[_0x5b57('0x19')]('CreateCmHopperHistory',_0x336db6,JSON[_0x5b57('0x1a')](_0x53378c));_0x2cb809(_0x53378c);})[_0x5b57('0x13')](function(_0x3a4488){logger[_0x5b57('0xf')](_0x5b57('0x18'),_0x3a4488[_0x5b57('0x11')],_0x336db6);_0x137899(_0x1e316f['error'](0x1f4,_0x3a4488[_0x5b57('0x11')]));});});};exports['AvgHandleTime']=function(_0x11c149){var _0x38a3b3=this;return new Promise(function(_0x5a4961,_0x52e4b0){return db[_0x5b57('0x14')]['findAll']({'raw':_0x11c149[_0x5b57('0x16')]?_0x11c149[_0x5b57('0x16')][_0x5b57('0x17')]===undefined?!![]:![]:!![],'where':_0x11c149[_0x5b57('0x16')]?_0x11c149[_0x5b57('0x16')][_0x5b57('0x1b')]||null:null,'attributes':[[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')][_0x5b57('0x1e')]('id')),_0x5b57('0x1f')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x21')))),'predictiveIntervalAnsweredCalls'],[db[_0x5b57('0x1c')]['fn']('COUNT',db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x22')))),_0x5b57('0x23')],[db[_0x5b57('0x1c')]['fn']('COUNT',db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x24')))),_0x5b57('0x25')],[db['sequelize']['fn'](_0x5b57('0x26'),db['sequelize']['fn']('IF',db[_0x5b57('0x1c')]['literal'](_0x5b57('0x27')))),_0x5b57('0x28')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x26'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x29')))),_0x5b57('0x2a')]]})[_0x5b57('0xa')](function(_0x57985c){logger[_0x5b57('0xb')](_0x5b57('0x2b'),_0x11c149);logger[_0x5b57('0x19')](_0x5b57('0x2b'),_0x11c149,JSON[_0x5b57('0x1a')](_0x57985c));_0x5a4961(_0x57985c);})[_0x5b57('0x13')](function(_0x402fe7){logger[_0x5b57('0xf')](_0x5b57('0x2b'),_0x402fe7[_0x5b57('0x11')],_0x11c149);_0x52e4b0(_0x38a3b3[_0x5b57('0xf')](0x1f4,_0x402fe7[_0x5b57('0x11')]));});});};exports[_0x5b57('0x2c')]=function(_0xd0a05d){var _0x5b4bd2=this;return new Promise(function(_0x4155ac,_0x4db5ae){return db[_0x5b57('0x14')][_0x5b57('0x2d')]({'raw':_0xd0a05d[_0x5b57('0x16')]?_0xd0a05d[_0x5b57('0x16')][_0x5b57('0x17')]===undefined?!![]:![]:!![],'where':_0xd0a05d[_0x5b57('0x16')]?_0xd0a05d[_0x5b57('0x16')]['where']||null:null,'attributes':[[_0x5b57('0x2e'),_0x5b57('0x2f')],[db[_0x5b57('0x1c')]['fn']('COUNT',db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')]['literal'](_0x5b57('0x30')))),_0x5b57('0x31')],[db[_0x5b57('0x1c')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')]('`state`\x20=\x203,\x201,\x20null'))),_0x5b57('0x32')],[db['sequelize']['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db['sequelize'][_0x5b57('0x20')](_0x5b57('0x21')))),_0x5b57('0x33')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')]['literal']('`state`\x20=\x205,\x201,\x20null'))),_0x5b57('0x34')],[db['sequelize']['fn'](_0x5b57('0x1d'),db['sequelize']['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x35')))),_0x5b57('0x36')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x37')))),_0x5b57('0x38')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x39')))),_0x5b57('0x3a')],[db[_0x5b57('0x1c')]['fn']('COUNT',db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')]('`state`\x20=\x2012,\x201,\x20null'))),_0x5b57('0x3b')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x2013,\x201,\x20null'))),_0x5b57('0x3c')],[db[_0x5b57('0x1c')]['fn']('COUNT',db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x3d')))),_0x5b57('0x3e')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x3f')))),_0x5b57('0x40')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x41')))),_0x5b57('0x42')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db['sequelize']['literal'](_0x5b57('0x43')))),'outboundRejectCallsDay'],[db[_0x5b57('0x1c')]['fn']('COUNT',db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')]('`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null'))),'outboundReCallsDay']],'group':['campaign']})['then'](function(_0x367dea){logger['info']('GetVoiceQueueHopperHistory',_0xd0a05d);logger['debug'](_0x5b57('0x2c'),_0xd0a05d,JSON[_0x5b57('0x1a')](_0x367dea));_0x4155ac(_0x367dea);})[_0x5b57('0x13')](function(_0x3e0c0c){logger[_0x5b57('0xf')](_0x5b57('0x2c'),_0x3e0c0c['message'],_0xd0a05d);_0x4db5ae(_0x5b4bd2[_0x5b57('0xf')](0x1f4,_0x3e0c0c[_0x5b57('0x11')]));});});};exports['GetCampaignHopperHistory']=function(_0x118a1e){var _0x23841a=this;return new Promise(function(_0x2b1d59,_0xabfbe6){return db['CmHopperHistory']['findAll']({'raw':_0x118a1e[_0x5b57('0x16')]?_0x118a1e[_0x5b57('0x16')][_0x5b57('0x17')]===undefined?!![]:![]:!![],'where':_0x118a1e[_0x5b57('0x16')]?_0x118a1e[_0x5b57('0x16')]['where']||null:null,'attributes':[['campaign',_0x5b57('0x2f')],[db[_0x5b57('0x1c')]['fn'](_0x5b57('0x1d'),db['sequelize']['col']('id')),'ivrTotalCallsDays'],[db['sequelize']['fn'](_0x5b57('0x1d'),db[_0x5b57('0x1c')]['fn']('IF',db[_0x5b57('0x1c')][_0x5b57('0x20')](_0x5b57('0x21')))),_0x5b57('0x44')]],'group':[_0x5b57('0x2e')]})[_0x5b57('0xa')](function(_0x53b907){logger[_0x5b57('0xb')](_0x5b57('0x45'),_0x118a1e);logger[_0x5b57('0x19')](_0x5b57('0x45'),_0x118a1e,JSON['stringify'](_0x53b907));_0x2b1d59(_0x53b907);})[_0x5b57('0x13')](function(_0x57916e){logger[_0x5b57('0xf')](_0x5b57('0x45'),_0x57916e['message'],_0x118a1e);_0xabfbe6(_0x23841a[_0x5b57('0xf')](0x1f4,_0x57916e['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c18=['put','update','exports','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./cmHopperHistory.controller','get','index','/describe','isAuthenticated','show','post','create'];(function(_0x2e8484,_0x37d325){var _0x460858=function(_0x530b59){while(--_0x530b59){_0x2e8484['push'](_0x2e8484['shift']());}};_0x460858(++_0x37d325);}(_0x1c18,0x9c));var _0x81c1=function(_0x3f446f,_0x914cd6){_0x3f446f=_0x3f446f-0x0;var _0x523c66=_0x1c18[_0x3f446f];return _0x523c66;};'use strict';var multer=require('multer');var util=require(_0x81c1('0x0'));var path=require(_0x81c1('0x1'));var timeout=require(_0x81c1('0x2'));var express=require(_0x81c1('0x3'));var router=express['Router']();var fs_extra=require(_0x81c1('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x81c1('0x5'));var config=require('../../config/environment');var controller=require(_0x81c1('0x6'));router[_0x81c1('0x7')]('/',auth['isAuthenticated'](),controller[_0x81c1('0x8')]);router[_0x81c1('0x7')](_0x81c1('0x9'),auth[_0x81c1('0xa')](),controller['describe']);router['get']('/:id',auth['isAuthenticated'](),controller[_0x81c1('0xb')]);router[_0x81c1('0xc')]('/',auth[_0x81c1('0xa')](),controller[_0x81c1('0xd')]);router[_0x81c1('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x81c1('0xf')]);module[_0x81c1('0x10')]=router;
\ No newline at end of file
+var _0x4926=['../../config/environment','./cmHopperHistory.controller','index','/describe','describe','get','/:id','isAuthenticated','post','create','update','exports','multer','path','Router','fs-extra','../../components/auth/service'];(function(_0x4ebcee,_0x22671d){var _0x26e5bf=function(_0x3ad167){while(--_0x3ad167){_0x4ebcee['push'](_0x4ebcee['shift']());}};_0x26e5bf(++_0x22671d);}(_0x4926,0x12d));var _0x6492=function(_0x16eb11,_0x1a2251){_0x16eb11=_0x16eb11-0x0;var _0x3ae7ef=_0x4926[_0x16eb11];return _0x3ae7ef;};'use strict';var multer=require(_0x6492('0x0'));var util=require('util');var path=require(_0x6492('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x6492('0x2')]();var fs_extra=require(_0x6492('0x3'));var auth=require(_0x6492('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x6492('0x5'));var controller=require(_0x6492('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x6492('0x7')]);router['get'](_0x6492('0x8'),auth['isAuthenticated'](),controller[_0x6492('0x9')]);router[_0x6492('0xa')](_0x6492('0xb'),auth[_0x6492('0xc')](),controller['show']);router[_0x6492('0xd')]('/',auth[_0x6492('0xc')](),controller[_0x6492('0xe')]);router['put']('/:id',auth[_0x6492('0xc')](),controller[_0x6492('0xf')]);module[_0x6492('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4944=['name','sequelize','STRING'];(function(_0x53f6e3,_0x4a6ec6){var _0x4bca61=function(_0x3c3101){while(--_0x3c3101){_0x53f6e3['push'](_0x53f6e3['shift']());}};_0x4bca61(++_0x4a6ec6);}(_0x4944,0x6d));var _0x4494=function(_0x3eff95,_0x188961){_0x3eff95=_0x3eff95-0x0;var _0x1e12d2=_0x4944[_0x3eff95];return _0x1e12d2;};'use strict';var Sequelize=require(_0x4494('0x0'));module['exports']={'name':{'type':Sequelize[_0x4494('0x1')],'unique':_0x4494('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x4494('0x1')]},'dialPrefix':{'type':Sequelize[_0x4494('0x1')]}};
\ No newline at end of file
+var _0x269f=['STRING','sequelize','exports'];(function(_0x53afe9,_0x2c9f40){var _0x396396=function(_0x1f574d){while(--_0x1f574d){_0x53afe9['push'](_0x53afe9['shift']());}};_0x396396(++_0x2c9f40);}(_0x269f,0xee));var _0xf269=function(_0x25e7cb,_0x3579b7){_0x25e7cb=_0x25e7cb-0x0;var _0x375d92=_0x269f[_0x25e7cb];return _0x375d92;};'use strict';var Sequelize=require(_0xf269('0x0'));module[_0xf269('0x1')]={'name':{'type':Sequelize[_0xf269('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xf269('0x2')]},'dialPrefix':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5907=['redis','defaults','localhost','socket.io-emitter','./cmList.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','filter','options','CmList','includeAll','findAll','rows','catch','show','params','find','create','body','user','Lists','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','Disposition','getDispositions','findOne','ListId','include','removeDispositions','addContacts','CmContact','tags','join','isArray','push','each','omit','ids','success','errors','Malformed\x20request\x20syntax','getContacts','CustomFields','concat','cf_%d','raw','getContactsCsv','CmCustomField','format','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','list_%d_%s.csv','Content-type','download','addCustomField','transaction','addCustomFields','Sequelize','TEXT','text','number','INTEGER','switch','defaultValue','sequelize','queryInterface','addColumn','cm_contacts','cf_%s','getCustomFields','addAgents','spread','emit','userCmList:save','removeAgents','userCmList:remove','getAgents','User','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x57b3f7,_0x5854ce){var _0xfed86c=function(_0x205a54){while(--_0x205a54){_0x57b3f7['push'](_0x57b3f7['shift']());}};_0xfed86c(++_0x5854ce);}(_0x5907,0x7e));var _0x7590=function(_0x20f4b1,_0xd300f4){_0x20f4b1=_0x20f4b1-0x0;var _0x2cfefe=_0x5907[_0x20f4b1];return _0x2cfefe;};'use strict';var emlformat=require(_0x7590('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7590('0x1'));var jsonpatch=require(_0x7590('0x2'));var rp=require(_0x7590('0x3'));var moment=require('moment');var BPromise=require(_0x7590('0x4'));var Mustache=require(_0x7590('0x5'));var util=require(_0x7590('0x6'));var path=require(_0x7590('0x7'));var sox=require(_0x7590('0x8'));var csv=require(_0x7590('0x9'));var ejs=require(_0x7590('0xa'));var fs=require('fs');var fs_extra=require(_0x7590('0xb'));var _=require(_0x7590('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7590('0xd'));var deskjs=require(_0x7590('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7590('0xf'));var Redis=require(_0x7590('0x10'));var authService=require(_0x7590('0x11'));var qs=require(_0x7590('0x12'));var as=require(_0x7590('0x13'));var hardwareService=require(_0x7590('0x14'));var logger=require(_0x7590('0x15'))(_0x7590('0x16'));var utils=require(_0x7590('0x17'));var config=require(_0x7590('0x18'));var licenseUtil=require(_0x7590('0x19'));var db=require(_0x7590('0x1a'))['db'];config[_0x7590('0x1b')]=_[_0x7590('0x1c')](config['redis'],{'host':_0x7590('0x1d'),'port':0x18eb});var socket=require(_0x7590('0x1e'))(new Redis(config[_0x7590('0x1b')]));require(_0x7590('0x1f'))[_0x7590('0x20')](socket);function respondWithStatusCode(_0x50fe2d,_0x313005){_0x313005=_0x313005||0xcc;return function(_0x5b6b6a){if(_0x5b6b6a){return _0x50fe2d[_0x7590('0x21')](_0x313005);}return _0x50fe2d['status'](_0x313005)[_0x7590('0x22')]();};}function respondWithResult(_0x4c49c5,_0x3b1af5){_0x3b1af5=_0x3b1af5||0xc8;return function(_0x335234){if(_0x335234){return _0x4c49c5[_0x7590('0x23')](_0x3b1af5)[_0x7590('0x24')](_0x335234);}};}function respondWithFilteredResult(_0x20fa02,_0x55ff59){return function(_0xbce8ab){if(_0xbce8ab){var _0x5b9632=typeof _0x55ff59[_0x7590('0x25')]===_0x7590('0x26')&&typeof _0x55ff59[_0x7590('0x27')]===_0x7590('0x26');var _0x303b68=_0xbce8ab[_0x7590('0x28')];var _0x4bd94f=_0x5b9632?0x0:_0x55ff59[_0x7590('0x25')];var _0x5cbacf=_0x5b9632?_0xbce8ab[_0x7590('0x28')]:_0x55ff59[_0x7590('0x25')]+_0x55ff59[_0x7590('0x27')];var _0x67af1a;if(_0x5cbacf>=_0x303b68){_0x5cbacf=_0x303b68;_0x67af1a=0xc8;}else{_0x67af1a=0xce;}_0x20fa02[_0x7590('0x23')](_0x67af1a);return _0x20fa02[_0x7590('0x29')](_0x7590('0x2a'),_0x4bd94f+'-'+_0x5cbacf+'/'+_0x303b68)[_0x7590('0x24')](_0xbce8ab);}return null;};}function patchUpdates(_0x55ac1f){return function(_0x45e654){try{jsonpatch[_0x7590('0x2b')](_0x45e654,_0x55ac1f,!![]);}catch(_0x1b8d43){return BPromise[_0x7590('0x2c')](_0x1b8d43);}return _0x45e654[_0x7590('0x2d')]();};}function saveUpdates(_0x5cd741,_0x59a69c){return function(_0x123e5e){if(_0x123e5e){return _0x123e5e[_0x7590('0x2e')](_0x5cd741)[_0x7590('0x2f')](function(_0x9d774c){return _0x9d774c;});}return null;};}function removeEntity(_0x33bd34,_0x264b1c){return function(_0x1efda2){if(_0x1efda2){return _0x1efda2[_0x7590('0x30')]()[_0x7590('0x2f')](function(){var _0x44260c=_0x1efda2[_0x7590('0x31')]({'plain':!![]});var _0x172337='Lists';return db[_0x7590('0x32')][_0x7590('0x30')]({'where':{'type':_0x172337,'resourceId':_0x44260c['id']}})[_0x7590('0x2f')](function(){return _0x1efda2;});})[_0x7590('0x2f')](function(){_0x33bd34[_0x7590('0x23')](0xcc)[_0x7590('0x22')]();});}};}function handleEntityNotFound(_0xe7eae1,_0x36c9ea){return function(_0x94d2fb){if(!_0x94d2fb){_0xe7eae1[_0x7590('0x21')](0x194);}return _0x94d2fb;};}function handleError(_0x4e3415,_0x2d342b){_0x2d342b=_0x2d342b||0x1f4;return function(_0x4742e6){logger[_0x7590('0x33')](_0x4742e6[_0x7590('0x34')]);if(_0x4742e6[_0x7590('0x35')]){delete _0x4742e6[_0x7590('0x35')];}_0x4e3415[_0x7590('0x23')](_0x2d342b)['send'](_0x4742e6);};}exports[_0x7590('0x36')]=function(_0x3d847f,_0x1167f6){var _0x2214e4={},_0x35c1da={},_0x30b896={'count':0x0,'rows':[]};var _0x42bcfb=_[_0x7590('0x37')](db['CmList'][_0x7590('0x38')],function(_0x23a77e){return{'name':_0x23a77e[_0x7590('0x39')],'type':_0x23a77e[_0x7590('0x3a')][_0x7590('0x3b')]};});_0x35c1da[_0x7590('0x3c')]=_[_0x7590('0x37')](_0x42bcfb,_0x7590('0x35'));_0x35c1da['query']=_[_0x7590('0x3d')](_0x3d847f[_0x7590('0x3e')]);_0x35c1da[_0x7590('0x3f')]=_[_0x7590('0x40')](_0x35c1da[_0x7590('0x3c')],_0x35c1da[_0x7590('0x3e')]);_0x2214e4['attributes']=_[_0x7590('0x40')](_0x35c1da[_0x7590('0x3c')],qs['fields'](_0x3d847f[_0x7590('0x3e')][_0x7590('0x41')]));_0x2214e4['attributes']=_0x2214e4[_0x7590('0x42')][_0x7590('0x43')]?_0x2214e4[_0x7590('0x42')]:_0x35c1da[_0x7590('0x3c')];if(!_0x3d847f[_0x7590('0x3e')][_0x7590('0x44')](_0x7590('0x45'))){_0x2214e4[_0x7590('0x27')]=qs['limit'](_0x3d847f[_0x7590('0x3e')][_0x7590('0x27')]);_0x2214e4[_0x7590('0x25')]=qs[_0x7590('0x25')](_0x3d847f[_0x7590('0x3e')]['offset']);}_0x2214e4[_0x7590('0x46')]=qs[_0x7590('0x47')](_0x3d847f[_0x7590('0x3e')]['sort']);_0x2214e4['where']=qs[_0x7590('0x3f')](_[_0x7590('0x48')](_0x3d847f[_0x7590('0x3e')],_0x35c1da['filters']),_0x42bcfb);if(_0x3d847f['query']['filter']){_0x2214e4[_0x7590('0x49')]=_[_0x7590('0x4a')](_0x2214e4[_0x7590('0x49')],{'$or':_[_0x7590('0x37')](_0x42bcfb,function(_0x18a3f6){if(_0x18a3f6['type']!=='VIRTUAL'){var _0x5f302a={};_0x5f302a[_0x18a3f6[_0x7590('0x35')]]={'$like':'%'+_0x3d847f[_0x7590('0x3e')][_0x7590('0x4b')]+'%'};return _0x5f302a;}})});}_0x2214e4=_[_0x7590('0x4a')]({},_0x2214e4,_0x3d847f[_0x7590('0x4c')]);var _0x10c947={'where':_0x2214e4['where']};return db[_0x7590('0x4d')][_0x7590('0x28')](_0x10c947)['then'](function(_0xd1d465){_0x30b896[_0x7590('0x28')]=_0xd1d465;if(_0x3d847f[_0x7590('0x3e')][_0x7590('0x4e')]){_0x2214e4['include']=[{'all':!![]}];}return db['CmList'][_0x7590('0x4f')](_0x2214e4);})[_0x7590('0x2f')](function(_0x160a29){_0x30b896[_0x7590('0x50')]=_0x160a29;return _0x30b896;})[_0x7590('0x2f')](respondWithFilteredResult(_0x1167f6,_0x2214e4))[_0x7590('0x51')](handleError(_0x1167f6,null));};exports[_0x7590('0x52')]=function(_0x2ae9e5,_0x5e593f){var _0xf43cc1={'raw':![],'where':{'id':_0x2ae9e5[_0x7590('0x53')]['id']}},_0x955e43={};_0x955e43[_0x7590('0x3c')]=_[_0x7590('0x3d')](db['CmList'][_0x7590('0x38')]);_0x955e43[_0x7590('0x3e')]=_[_0x7590('0x3d')](_0x2ae9e5[_0x7590('0x3e')]);_0x955e43[_0x7590('0x3f')]=_[_0x7590('0x40')](_0x955e43[_0x7590('0x3c')],_0x955e43['query']);_0xf43cc1[_0x7590('0x42')]=_['intersection'](_0x955e43['model'],qs[_0x7590('0x41')](_0x2ae9e5['query'][_0x7590('0x41')]));_0xf43cc1[_0x7590('0x42')]=_0xf43cc1[_0x7590('0x42')]['length']?_0xf43cc1[_0x7590('0x42')]:_0x955e43[_0x7590('0x3c')];if(_0x2ae9e5[_0x7590('0x3e')]['includeAll']){_0xf43cc1['include']=[{'all':!![]}];}_0xf43cc1=_[_0x7590('0x4a')]({},_0xf43cc1,_0x2ae9e5[_0x7590('0x4c')]);return db[_0x7590('0x4d')][_0x7590('0x54')](_0xf43cc1)[_0x7590('0x2f')](handleEntityNotFound(_0x5e593f,null))['then'](respondWithResult(_0x5e593f,null))[_0x7590('0x51')](handleError(_0x5e593f,null));};exports[_0x7590('0x55')]=function(_0x336b47,_0x57a141){return db['CmList'][_0x7590('0x55')](_0x336b47[_0x7590('0x56')],{})[_0x7590('0x2f')](function(_0x49c1a5){var _0x142c2b=_0x336b47[_0x7590('0x57')][_0x7590('0x31')]({'plain':!![]});if(!_0x142c2b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x142c2b['role']===_0x7590('0x57')){var _0x48372a=_0x49c1a5[_0x7590('0x31')]({'plain':!![]});var _0x384f74=_0x7590('0x58');return db[_0x7590('0x59')][_0x7590('0x54')]({'where':{'name':_0x384f74,'userProfileId':_0x142c2b[_0x7590('0x5a')]},'raw':!![]})[_0x7590('0x2f')](function(_0x252c5b){if(_0x252c5b&&_0x252c5b[_0x7590('0x5b')]===0x0){return db[_0x7590('0x32')][_0x7590('0x55')]({'name':_0x48372a['name'],'resourceId':_0x48372a['id'],'type':_0x252c5b[_0x7590('0x35')],'sectionId':_0x252c5b['id']},{})[_0x7590('0x2f')](function(){return _0x49c1a5;});}else{return _0x49c1a5;}})['catch'](function(_0x779024){logger[_0x7590('0x33')](_0x7590('0x5c'),_0x779024);throw _0x779024;});}return _0x49c1a5;})[_0x7590('0x2f')](respondWithResult(_0x57a141,0xc9))['catch'](handleError(_0x57a141,null));};exports[_0x7590('0x2e')]=function(_0x3860b8,_0x2d70e0){if(_0x3860b8[_0x7590('0x56')]['id']){delete _0x3860b8[_0x7590('0x56')]['id'];}return db['CmList'][_0x7590('0x54')]({'where':{'id':_0x3860b8[_0x7590('0x53')]['id']}})[_0x7590('0x2f')](handleEntityNotFound(_0x2d70e0,null))['then'](saveUpdates(_0x3860b8['body'],null))[_0x7590('0x2f')](respondWithResult(_0x2d70e0,null))[_0x7590('0x51')](handleError(_0x2d70e0,null));};exports[_0x7590('0x30')]=function(_0x584e72,_0x444f2b){return db[_0x7590('0x4d')]['find']({'where':{'id':_0x584e72[_0x7590('0x53')]['id']}})['then'](handleEntityNotFound(_0x444f2b,null))[_0x7590('0x2f')](removeEntity(_0x444f2b,null))[_0x7590('0x51')](handleError(_0x444f2b,null));};exports[_0x7590('0x5d')]=function(_0x25a1d0,_0x25f146){return db['CmList'][_0x7590('0x5d')]()[_0x7590('0x2f')](respondWithResult(_0x25f146,null))[_0x7590('0x51')](handleError(_0x25f146,null));};exports[_0x7590('0x5e')]=function(_0x3b6ce8,_0xa8be46,_0x16ac7b){if(_0x3b6ce8[_0x7590('0x56')]['id']){delete _0x3b6ce8[_0x7590('0x56')]['id'];}return db[_0x7590('0x4d')]['find']({'where':{'id':_0x3b6ce8[_0x7590('0x53')]['id']}})['then'](handleEntityNotFound(_0xa8be46,null))[_0x7590('0x2f')](function(_0x364b0b){if(_0x364b0b){_0x3b6ce8[_0x7590('0x56')]['ListId']=_0x364b0b['id'];return db[_0x7590('0x5f')][_0x7590('0x55')](_0x3b6ce8[_0x7590('0x56')]);}})[_0x7590('0x2f')](respondWithResult(_0xa8be46,null))[_0x7590('0x51')](handleError(_0xa8be46,null));};exports[_0x7590('0x60')]=function(_0x35a657,_0x3ef9e8,_0x530b50){var _0x48cd3b={'raw':![],'where':{}};var _0x543bdd={};var _0x1618a8={'count':0x0,'rows':[]};return db['CmList'][_0x7590('0x61')]({'where':{'id':_0x35a657[_0x7590('0x53')]['id']}})['then'](handleEntityNotFound(_0x3ef9e8,null))[_0x7590('0x2f')](function(_0x5bf98d){if(_0x5bf98d){_0x543bdd['model']=_[_0x7590('0x3d')](db[_0x7590('0x5f')][_0x7590('0x38')]);_0x543bdd[_0x7590('0x3e')]=_['keys'](_0x35a657['query']);_0x543bdd[_0x7590('0x3f')]=_[_0x7590('0x40')](_0x543bdd[_0x7590('0x3c')],_0x543bdd[_0x7590('0x3e')]);_0x48cd3b['attributes']=_[_0x7590('0x40')](_0x543bdd[_0x7590('0x3c')],qs[_0x7590('0x41')](_0x35a657[_0x7590('0x3e')][_0x7590('0x41')]));_0x48cd3b[_0x7590('0x42')]=_0x48cd3b[_0x7590('0x42')][_0x7590('0x43')]?_0x48cd3b['attributes']:_0x543bdd[_0x7590('0x3c')];if(!_0x35a657['query'][_0x7590('0x44')](_0x7590('0x45'))){_0x48cd3b[_0x7590('0x27')]=qs[_0x7590('0x27')](_0x35a657[_0x7590('0x3e')][_0x7590('0x27')]);_0x48cd3b[_0x7590('0x25')]=qs[_0x7590('0x25')](_0x35a657[_0x7590('0x3e')]['offset']);}_0x48cd3b['order']=qs['sort'](_0x35a657[_0x7590('0x3e')]['sort']);_0x48cd3b[_0x7590('0x49')]=qs[_0x7590('0x3f')](_['pick'](_0x35a657[_0x7590('0x3e')],_0x543bdd[_0x7590('0x3f')]));_0x48cd3b[_0x7590('0x49')][_0x7590('0x62')]=_0x5bf98d['id'];if(_0x35a657['query']['filter']){_0x48cd3b[_0x7590('0x49')]=_['merge'](_0x48cd3b['where'],{'$or':_[_0x7590('0x37')](_0x48cd3b[_0x7590('0x42')],function(_0x59286f){var _0x237d92={};_0x237d92[_0x59286f]={'$like':'%'+_0x35a657[_0x7590('0x3e')][_0x7590('0x4b')]+'%'};return _0x237d92;})});}_0x48cd3b=_[_0x7590('0x4a')]({},_0x48cd3b,_0x35a657[_0x7590('0x4c')]);return db[_0x7590('0x5f')]['count']({'where':_0x48cd3b['where']})[_0x7590('0x2f')](function(_0x11645b){_0x1618a8[_0x7590('0x28')]=_0x11645b;if(_0x35a657[_0x7590('0x3e')][_0x7590('0x4e')]){_0x48cd3b[_0x7590('0x63')]=[{'all':!![]}];}return db[_0x7590('0x5f')][_0x7590('0x4f')](_0x48cd3b);})[_0x7590('0x2f')](function(_0x5cb453){_0x1618a8[_0x7590('0x50')]=_0x5cb453;return _0x1618a8;});}})[_0x7590('0x2f')](respondWithFilteredResult(_0x3ef9e8,_0x48cd3b))[_0x7590('0x51')](handleError(_0x3ef9e8,null));};exports[_0x7590('0x64')]=function(_0x42a0ca,_0xa63a92,_0x3bd336){return db[_0x7590('0x4d')][_0x7590('0x54')]({'where':{'id':_0x42a0ca[_0x7590('0x53')]['id']}})[_0x7590('0x2f')](handleEntityNotFound(_0xa63a92,null))['then'](function(_0x29f08b){if(_0x29f08b){return _0x29f08b['removeDispositions'](_0x42a0ca['query']['ids']);}})[_0x7590('0x2f')](respondWithStatusCode(_0xa63a92,null))['catch'](handleError(_0xa63a92,null));};exports[_0x7590('0x65')]=function(_0x1fbcb9,_0x49762d,_0x41da71){return db['CmList'][_0x7590('0x54')]({'where':{'id':_0x1fbcb9['params']['id']}})[_0x7590('0x2f')](handleEntityNotFound(_0x49762d,null))[_0x7590('0x2f')](function(_0x568ea6){if(_0x568ea6){var _0x187b5f=[];var _0x329062={'success':[],'errors':[]};return db[_0x7590('0x66')]['describe']()['then'](function(_0x4843d3){if(_0x1fbcb9[_0x7590('0x56')]['tags']&&_['isArray'](_0x1fbcb9[_0x7590('0x56')][_0x7590('0x67')])){if(_0x1fbcb9['body'][_0x7590('0x67')][_0x7590('0x43')]){_0x1fbcb9[_0x7590('0x56')]['tags']=_0x1fbcb9[_0x7590('0x56')][_0x7590('0x67')][_0x7590('0x68')](';')+';';}else{_0x1fbcb9[_0x7590('0x56')]['tags']=null;}}else{_0x1fbcb9[_0x7590('0x56')]['tags']=null;}if(_0x1fbcb9['body']&&_[_0x7590('0x69')](_0x1fbcb9[_0x7590('0x56')])){for(var _0x391f24=0x0;_0x391f24<_0x1fbcb9[_0x7590('0x56')]['length'];_0x391f24+=0x1){_0x1fbcb9[_0x7590('0x56')][_0x391f24][_0x7590('0x62')]=_0x1fbcb9[_0x7590('0x53')]['id'];_0x187b5f[_0x7590('0x6a')](_0x1fbcb9[_0x7590('0x56')][_0x391f24]);}return BPromise[_0x7590('0x6b')](_0x187b5f,function(_0x31025e){return db[_0x7590('0x66')][_0x7590('0x55')](_[_0x7590('0x6c')](_0x31025e,[_0x7590('0x6d'),'id'])||{},{'fields':_[_0x7590('0x3d')](_0x4843d3),'raw':!![]})[_0x7590('0x2f')](function(_0x330e16){_0x329062[_0x7590('0x6e')]['push'](_0x330e16['dataValues']);})['catch'](function(_0x19ed57){_0x329062[_0x7590('0x6f')][_0x7590('0x6a')]({'data':_0x31025e,'error':_0x19ed57['message']});});})[_0x7590('0x2f')](function(_0x36aa0c){return _0x329062;})['catch'](function(_0x475370){return _0x475370;});}else{_0x49762d[_0x7590('0x23')](0x190)[_0x7590('0x24')]({'message':_0x7590('0x70')});}});}})[_0x7590('0x2f')](respondWithResult(_0x49762d,null))[_0x7590('0x51')](handleError(_0x49762d,null));};exports[_0x7590('0x71')]=function(_0xdf36b6,_0x978319,_0x5ee8b0){var _0x5c939;return db['CmList'][_0x7590('0x54')]({'where':{'id':_0xdf36b6[_0x7590('0x53')]['id']},'include':[{'model':db['CmCustomField'],'as':_0x7590('0x72')}]})[_0x7590('0x2f')](handleEntityNotFound(_0x978319,null))[_0x7590('0x2f')](function(_0x483097){if(_0x483097){_0x5c939=_0x483097;return db['CmContact']['rawAttributes'];}})[_0x7590('0x2f')](function(_0x4136bc){if(_0x4136bc){var _0x11d7ac={};var _0x4be6b1={};_0x4be6b1[_0x7590('0x3c')]=_[_0x7590('0x73')](_[_0x7590('0x3d')](_0x4136bc),_['map'](_0x5c939['CustomFields'],function(_0x4b0fd1){return util['format'](_0x7590('0x74'),_0x4b0fd1['id']);}));_0x4be6b1[_0x7590('0x3e')]=_[_0x7590('0x3d')](_0xdf36b6['query']);_0x4be6b1[_0x7590('0x3f')]=_[_0x7590('0x40')](_0x4be6b1[_0x7590('0x3c')],_0x4be6b1['query']);_0x11d7ac[_0x7590('0x42')]=_[_0x7590('0x40')](_0x4be6b1[_0x7590('0x3c')],qs['fields'](_0xdf36b6['query'][_0x7590('0x41')]));_0x11d7ac[_0x7590('0x42')]=_0x11d7ac[_0x7590('0x42')][_0x7590('0x43')]?_0x11d7ac['attributes']:_0x4be6b1[_0x7590('0x3c')];if(!_0xdf36b6['query'][_0x7590('0x44')](_0x7590('0x45'))){_0x11d7ac[_0x7590('0x27')]=qs['limit'](_0xdf36b6[_0x7590('0x3e')][_0x7590('0x27')]);_0x11d7ac[_0x7590('0x25')]=qs[_0x7590('0x25')](_0xdf36b6['query'][_0x7590('0x25')]);}_0x11d7ac['order']=qs[_0x7590('0x47')](_0xdf36b6['query']['sort']);_0x11d7ac[_0x7590('0x49')]=qs[_0x7590('0x3f')](_[_0x7590('0x48')](_0xdf36b6[_0x7590('0x3e')],_0x4be6b1[_0x7590('0x3f')]));_0x11d7ac[_0x7590('0x75')]=!![];if(_0xdf36b6[_0x7590('0x3e')][_0x7590('0x4b')]){_0x11d7ac[_0x7590('0x49')]=_[_0x7590('0x4a')](_0x11d7ac[_0x7590('0x49')],{'$or':_[_0x7590('0x37')](_0x11d7ac[_0x7590('0x42')],function(_0x23f981){var _0x52adff={};_0x52adff[_0x23f981]={'$like':'%'+_0xdf36b6[_0x7590('0x3e')]['filter']+'%'};return _0x52adff;})});}_0x11d7ac=_[_0x7590('0x4a')]({},_0x11d7ac,_0xdf36b6[_0x7590('0x4c')]);return _0x5c939['getContacts'](_0x11d7ac);}})[_0x7590('0x2f')](respondWithResult(_0x978319,null))[_0x7590('0x51')](handleError(_0x978319,null));};exports[_0x7590('0x76')]=function(_0x597075,_0x3ee084,_0x32668b){var _0x1a538a;return db['CmList']['find']({'where':{'id':_0x597075[_0x7590('0x53')]['id']},'include':[{'model':db[_0x7590('0x77')],'as':_0x7590('0x72')}]})[_0x7590('0x2f')](handleEntityNotFound(_0x3ee084,null))[_0x7590('0x2f')](function(_0x375204){if(_0x375204){_0x1a538a=_0x375204;return db[_0x7590('0x66')]['rawAttributes'];}})[_0x7590('0x2f')](function(_0xaf02d4){if(_0xaf02d4){var _0x1a8634={};var _0x296191={};_0x296191[_0x7590('0x3c')]=_[_0x7590('0x73')](_[_0x7590('0x3d')](_0xaf02d4),_[_0x7590('0x37')](_0x1a538a[_0x7590('0x72')],function(_0xd57c07){return util[_0x7590('0x78')]('cf_%d',_0xd57c07['id']);}));_0x296191[_0x7590('0x3e')]=_['keys'](_0x597075[_0x7590('0x3e')]);_0x296191[_0x7590('0x3f')]=_['intersection'](_0x296191[_0x7590('0x3c')],_0x296191[_0x7590('0x3e')]);_0x1a8634[_0x7590('0x42')]=_[_0x7590('0x40')](_0x296191[_0x7590('0x3c')],qs[_0x7590('0x41')](_0x597075[_0x7590('0x3e')]['fields']));_0x1a8634[_0x7590('0x42')]=_0x1a8634[_0x7590('0x42')][_0x7590('0x43')]?_0x1a8634['attributes']:_0x296191[_0x7590('0x3c')];if(!_0x597075[_0x7590('0x3e')]['hasOwnProperty']('nolimit')){_0x1a8634[_0x7590('0x27')]=qs[_0x7590('0x27')](_0x597075[_0x7590('0x3e')][_0x7590('0x27')]);_0x1a8634[_0x7590('0x25')]=qs[_0x7590('0x25')](_0x597075[_0x7590('0x3e')][_0x7590('0x25')]);}_0x1a8634['order']=qs[_0x7590('0x47')](_0x597075['query'][_0x7590('0x47')]);_0x1a8634[_0x7590('0x49')]=qs['filters'](_[_0x7590('0x48')](_0x597075['query'],_0x296191[_0x7590('0x3f')]));_0x1a8634[_0x7590('0x75')]=!![];if(_0x597075[_0x7590('0x3e')][_0x7590('0x4b')]){_0x1a8634[_0x7590('0x49')]=_['merge'](_0x1a8634[_0x7590('0x49')],{'$or':_['map'](_0x1a8634[_0x7590('0x42')],function(_0xc02fb6){var _0x39d77b={};_0x39d77b[_0xc02fb6]={'$like':'%'+_0x597075['query'][_0x7590('0x4b')]+'%'};return _0x39d77b;})});}_0x1a8634=_[_0x7590('0x4a')]({},_0x1a8634,_0x597075['options']);return _0x1a538a[_0x7590('0x71')](_0x1a8634);}})['then'](function(_0x381aa9){if(!_[_0x7590('0x79')](_0x381aa9)){var _0x5613f5=toCsv(_0x381aa9);var _0x2d81d2=Date[_0x7590('0x7a')]();fs[_0x7590('0x7b')](util[_0x7590('0x78')](_0x7590('0x7c'),_0x1a538a['id'],_0x2d81d2),_0x5613f5);_0x3ee084[_0x7590('0x7d')]('Content-disposition','attachment;\x20filename='+util[_0x7590('0x78')](_0x7590('0x7e'),_0x1a538a['id'],_0x2d81d2));_0x3ee084['setHeader'](_0x7590('0x7f'),'text/csv');return _0x3ee084[_0x7590('0x80')](util[_0x7590('0x78')]('/tmp/list_%d_%s.csv',_0x1a538a['id'],_0x2d81d2));}else{return _0x3ee084['sendStatus'](0xcc);}})[_0x7590('0x51')](handleError(_0x3ee084,null));};exports[_0x7590('0x81')]=function(_0x272fd5,_0x184adc,_0x4a94b){var _0x4184a0;delete _0x272fd5['body']['id'];return db['CmList'][_0x7590('0x61')]({'where':{'id':_0x272fd5[_0x7590('0x53')]['id']}})['then'](handleEntityNotFound(_0x184adc,null))[_0x7590('0x2f')](function(_0x57248f){if(_0x57248f){return db['sequelize'][_0x7590('0x82')](function(_0x4d15f2){return db['CmCustomField'][_0x7590('0x55')](_0x272fd5['body'],{'transaction':_0x4d15f2})[_0x7590('0x2f')](function(_0x57c3bb){_0x4184a0=_0x57c3bb;return _0x57248f[_0x7590('0x83')](_0x57c3bb,{'transaction':_0x4d15f2});})['then'](function(){var _0x22be3f={'type':db[_0x7590('0x84')][_0x7590('0x85')],'transaction':_0x4d15f2};switch(_0x272fd5[_0x7590('0x56')][_0x7590('0x3a')]){case _0x7590('0x86'):_0x22be3f['type']=db['Sequelize'][_0x7590('0x85')];break;case _0x7590('0x87'):_0x22be3f[_0x7590('0x3a')]=db[_0x7590('0x84')][_0x7590('0x88')];break;case _0x7590('0x89'):_0x22be3f[_0x7590('0x3a')]=db[_0x7590('0x84')]['BOOLEAN'];_0x22be3f[_0x7590('0x8a')]=![];break;default:}return db[_0x7590('0x8b')][_0x7590('0x8c')][_0x7590('0x8d')](_0x7590('0x8e'),util[_0x7590('0x78')](_0x7590('0x8f'),_0x4184a0['id']),_0x22be3f);})[_0x7590('0x2f')](function(){return _0x4184a0;});});}})['then'](respondWithResult(_0x184adc,null))[_0x7590('0x51')](handleError(_0x184adc,null));};exports[_0x7590('0x90')]=function(_0x1ff578,_0x51c0e3,_0x4e65bb){var _0x495264={};var _0x1fc1ba={};var _0x4bc77a;var _0x21b5db;return db[_0x7590('0x4d')][_0x7590('0x61')]({'where':{'id':_0x1ff578[_0x7590('0x53')]['id']}})[_0x7590('0x2f')](handleEntityNotFound(_0x51c0e3,null))[_0x7590('0x2f')](function(_0x1dbcc7){if(_0x1dbcc7){_0x4bc77a=_0x1dbcc7;_0x1fc1ba[_0x7590('0x3c')]=_[_0x7590('0x3d')](db[_0x7590('0x77')]['rawAttributes']);_0x1fc1ba[_0x7590('0x3e')]=_[_0x7590('0x3d')](_0x1ff578[_0x7590('0x3e')]);_0x1fc1ba['filters']=_[_0x7590('0x40')](_0x1fc1ba['model'],_0x1fc1ba['query']);_0x495264['attributes']=_[_0x7590('0x40')](_0x1fc1ba[_0x7590('0x3c')],qs[_0x7590('0x41')](_0x1ff578['query']['fields']));_0x495264[_0x7590('0x42')]=_0x495264[_0x7590('0x42')][_0x7590('0x43')]?_0x495264[_0x7590('0x42')]:_0x1fc1ba[_0x7590('0x3c')];_0x495264[_0x7590('0x46')]=qs['sort'](_0x1ff578[_0x7590('0x3e')][_0x7590('0x47')]);_0x495264[_0x7590('0x49')]=qs['filters'](_[_0x7590('0x48')](_0x1ff578[_0x7590('0x3e')],_0x1fc1ba['filters']));_0x495264[_0x7590('0x49')]=_[_0x7590('0x4a')](_0x495264[_0x7590('0x49')],{'$or':[{'ListId':_0x1dbcc7['id']},{'ListId':null}]});if(_0x1ff578[_0x7590('0x3e')][_0x7590('0x4b')]){_0x495264['where']=_['merge'](_0x495264[_0x7590('0x49')],{'$or':_[_0x7590('0x37')](_0x495264[_0x7590('0x42')],function(_0x81aba1){var _0x33ba3c={};_0x33ba3c[_0x81aba1]={'$like':'%'+_0x1ff578[_0x7590('0x3e')][_0x7590('0x4b')]+'%'};return _0x33ba3c;})});}_0x495264=_[_0x7590('0x4a')]({},_0x495264,_0x1ff578[_0x7590('0x4c')]);return db[_0x7590('0x77')]['findAndCountAll'](_0x495264);}})[_0x7590('0x2f')](respondWithResult(_0x51c0e3,null))['catch'](handleError(_0x51c0e3,null));};exports[_0x7590('0x91')]=function(_0xfb8482,_0x23ff1f,_0x3098fb){return db[_0x7590('0x4d')][_0x7590('0x54')]({'where':{'id':_0xfb8482['params']['id']}})[_0x7590('0x2f')](handleEntityNotFound(_0x23ff1f,null))[_0x7590('0x2f')](function(_0x252470){if(_0x252470){return _0x252470[_0x7590('0x91')](_0xfb8482[_0x7590('0x56')][_0x7590('0x6d')],_[_0x7590('0x6c')](_0xfb8482['body'],[_0x7590('0x6d'),'id'])||{})[_0x7590('0x92')](function(_0x1941af){for(var _0x253c5f=0x0;_0x253c5f<_0xfb8482[_0x7590('0x56')][_0x7590('0x6d')][_0x7590('0x43')];_0x253c5f+=0x1){socket[_0x7590('0x93')](_0x7590('0x94'),{'UserId':Number(_0xfb8482['body'][_0x7590('0x6d')][_0x253c5f]),'CmListId':Number(_0xfb8482[_0x7590('0x53')]['id'])});}return _0x1941af;});}})[_0x7590('0x2f')](respondWithResult(_0x23ff1f,null))['catch'](handleError(_0x23ff1f,null));};exports[_0x7590('0x95')]=function(_0x1513e8,_0x28a382,_0x5dfdf6){return db[_0x7590('0x4d')]['find']({'where':{'id':_0x1513e8[_0x7590('0x53')]['id']}})['then'](handleEntityNotFound(_0x28a382,null))[_0x7590('0x2f')](function(_0x1831ca){if(_0x1831ca){return _0x1831ca[_0x7590('0x95')](_0x1513e8['query']['ids'])[_0x7590('0x2f')](function(){if(_[_0x7590('0x69')](_0x1513e8[_0x7590('0x3e')][_0x7590('0x6d')])){for(var _0x64c90e=0x0;_0x64c90e<_0x1513e8[_0x7590('0x3e')][_0x7590('0x6d')][_0x7590('0x43')];_0x64c90e+=0x1){socket[_0x7590('0x93')](_0x7590('0x96'),{'UserId':Number(_0x1513e8['query'][_0x7590('0x6d')][_0x64c90e]),'CmListId':Number(_0x1513e8[_0x7590('0x53')]['id'])});}}else{socket[_0x7590('0x93')]('userCmList:remove',{'UserId':Number(_0x1513e8[_0x7590('0x3e')][_0x7590('0x6d')]),'CmListId':Number(_0x1513e8[_0x7590('0x53')]['id'])});}});}})[_0x7590('0x2f')](respondWithStatusCode(_0x28a382,null))['catch'](handleError(_0x28a382,null));};exports[_0x7590('0x97')]=function(_0x5da74b,_0x46bedc,_0x480876){var _0x332a49={};var _0x17422d={};var _0x4ccea4;var _0x8b694;return db['CmList'][_0x7590('0x61')]({'where':{'id':_0x5da74b[_0x7590('0x53')]['id']}})[_0x7590('0x2f')](handleEntityNotFound(_0x46bedc,null))[_0x7590('0x2f')](function(_0x3ac026){if(_0x3ac026){_0x4ccea4=_0x3ac026;_0x17422d[_0x7590('0x3c')]=_[_0x7590('0x3d')](db[_0x7590('0x98')][_0x7590('0x38')]);_0x17422d[_0x7590('0x3e')]=_['keys'](_0x5da74b[_0x7590('0x3e')]);_0x17422d['filters']=_[_0x7590('0x40')](_0x17422d[_0x7590('0x3c')],_0x17422d[_0x7590('0x3e')]);_0x332a49['attributes']=_[_0x7590('0x40')](_0x17422d[_0x7590('0x3c')],qs[_0x7590('0x41')](_0x5da74b[_0x7590('0x3e')]['fields']));_0x332a49[_0x7590('0x42')]=_0x332a49['attributes'][_0x7590('0x43')]?_0x332a49[_0x7590('0x42')]:_0x17422d['model'];_0x332a49[_0x7590('0x46')]=qs['sort'](_0x5da74b[_0x7590('0x3e')][_0x7590('0x47')]);_0x332a49[_0x7590('0x49')]=qs['filters'](_[_0x7590('0x48')](_0x5da74b['query'],_0x17422d[_0x7590('0x3f')]));if(_0x5da74b[_0x7590('0x3e')][_0x7590('0x4b')]){_0x332a49[_0x7590('0x49')]=_['merge'](_0x332a49[_0x7590('0x49')],{'$or':_['map'](_0x332a49[_0x7590('0x42')],function(_0x4b42c7){var _0x4e8961={};_0x4e8961[_0x4b42c7]={'$like':'%'+_0x5da74b['query'][_0x7590('0x4b')]+'%'};return _0x4e8961;})});}_0x332a49=_[_0x7590('0x4a')]({},_0x332a49,_0x5da74b[_0x7590('0x4c')]);return _0x4ccea4[_0x7590('0x97')](_0x332a49);}})[_0x7590('0x2f')](function(_0x18c691){if(_0x18c691){_0x8b694=_0x18c691[_0x7590('0x43')];if(!_0x5da74b[_0x7590('0x3e')][_0x7590('0x44')](_0x7590('0x45'))){_0x332a49[_0x7590('0x27')]=qs['limit'](_0x5da74b[_0x7590('0x3e')][_0x7590('0x27')]);_0x332a49['offset']=qs[_0x7590('0x25')](_0x5da74b['query'][_0x7590('0x25')]);}return _0x4ccea4[_0x7590('0x97')](_0x332a49);}})[_0x7590('0x2f')](function(_0x5c961d){if(_0x5c961d){return _0x5c961d?{'count':_0x8b694,'rows':_0x5c961d}:null;}})['then'](respondWithResult(_0x46bedc,null))['catch'](handleError(_0x46bedc,null));};
\ No newline at end of file
+var _0x47d2=['count','Content-Range','apply','reject','update','then','destroy','get','Lists','UserProfileResource','sendStatus','error','stack','name','send','index','map','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','CmList','includeAll','include','findAll','rows','catch','rawAttributes','keys','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','addDisposition','ListId','Disposition','findOne','nolimit','removeDispositions','ids','addContacts','CmContact','tags','isArray','push','each','success','dataValues','errors','json','Malformed\x20request\x20syntax','getContacts','CustomFields','concat','format','cf_%d','raw','getContactsCsv','CmCustomField','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','Content-type','text/csv','download','transaction','addCustomFields','Sequelize','text','TEXT','number','INTEGER','switch','BOOLEAN','sequelize','queryInterface','addColumn','cf_%s','getCustomFields','findAndCountAll','addAgents','omit','spread','userCmList:save','removeAgents','emit','userCmList:remove','getAgents','User','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./cmList.socket','register','status','offset','undefined','limit'];(function(_0x11ae28,_0x5a2fa9){var _0x5012ec=function(_0x520237){while(--_0x520237){_0x11ae28['push'](_0x11ae28['shift']());}};_0x5012ec(++_0x5a2fa9);}(_0x47d2,0x10d));var _0x247d=function(_0x4a8428,_0x271b81){_0x4a8428=_0x4a8428-0x0;var _0x559859=_0x47d2[_0x4a8428];return _0x559859;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x247d('0x0'));var zipdir=require(_0x247d('0x1'));var jsonpatch=require(_0x247d('0x2'));var rp=require(_0x247d('0x3'));var moment=require('moment');var BPromise=require(_0x247d('0x4'));var Mustache=require(_0x247d('0x5'));var util=require(_0x247d('0x6'));var path=require(_0x247d('0x7'));var sox=require(_0x247d('0x8'));var csv=require(_0x247d('0x9'));var ejs=require(_0x247d('0xa'));var fs=require('fs');var fs_extra=require(_0x247d('0xb'));var _=require(_0x247d('0xc'));var squel=require(_0x247d('0xd'));var crypto=require('crypto');var jsforce=require(_0x247d('0xe'));var deskjs=require(_0x247d('0xf'));var toCsv=require(_0x247d('0x9'));var querystring=require(_0x247d('0x10'));var Papa=require(_0x247d('0x11'));var Redis=require(_0x247d('0x12'));var authService=require(_0x247d('0x13'));var qs=require(_0x247d('0x14'));var as=require(_0x247d('0x15'));var hardwareService=require(_0x247d('0x16'));var logger=require(_0x247d('0x17'))(_0x247d('0x18'));var utils=require(_0x247d('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x247d('0x1a'));var db=require(_0x247d('0x1b'))['db'];config[_0x247d('0x1c')]=_[_0x247d('0x1d')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x247d('0x1e'))(new Redis(config[_0x247d('0x1c')]));require(_0x247d('0x1f'))[_0x247d('0x20')](socket);function respondWithStatusCode(_0x549214,_0x48a66f){_0x48a66f=_0x48a66f||0xcc;return function(_0x463df4){if(_0x463df4){return _0x549214['sendStatus'](_0x48a66f);}return _0x549214['status'](_0x48a66f)['end']();};}function respondWithResult(_0x414b88,_0x5dad2f){_0x5dad2f=_0x5dad2f||0xc8;return function(_0x97df72){if(_0x97df72){return _0x414b88[_0x247d('0x21')](_0x5dad2f)['json'](_0x97df72);}};}function respondWithFilteredResult(_0x40c094,_0x145eb7){return function(_0x86ac58){if(_0x86ac58){var _0x13a785=typeof _0x145eb7[_0x247d('0x22')]===_0x247d('0x23')&&typeof _0x145eb7[_0x247d('0x24')]===_0x247d('0x23');var _0x28e486=_0x86ac58[_0x247d('0x25')];var _0x14c5a3=_0x13a785?0x0:_0x145eb7['offset'];var _0x40508d=_0x13a785?_0x86ac58[_0x247d('0x25')]:_0x145eb7['offset']+_0x145eb7[_0x247d('0x24')];var _0x1fb250;if(_0x40508d>=_0x28e486){_0x40508d=_0x28e486;_0x1fb250=0xc8;}else{_0x1fb250=0xce;}_0x40c094[_0x247d('0x21')](_0x1fb250);return _0x40c094['set'](_0x247d('0x26'),_0x14c5a3+'-'+_0x40508d+'/'+_0x28e486)['json'](_0x86ac58);}return null;};}function patchUpdates(_0x5187d8){return function(_0x3af5e9){try{jsonpatch[_0x247d('0x27')](_0x3af5e9,_0x5187d8,!![]);}catch(_0x578126){return BPromise[_0x247d('0x28')](_0x578126);}return _0x3af5e9['save']();};}function saveUpdates(_0xeb723d,_0x4380ec){return function(_0xa35277){if(_0xa35277){return _0xa35277[_0x247d('0x29')](_0xeb723d)[_0x247d('0x2a')](function(_0x576c38){return _0x576c38;});}return null;};}function removeEntity(_0x38c37a,_0x4cd86f){return function(_0x344978){if(_0x344978){return _0x344978[_0x247d('0x2b')]()[_0x247d('0x2a')](function(){var _0x89f85e=_0x344978[_0x247d('0x2c')]({'plain':!![]});var _0x5d638e=_0x247d('0x2d');return db[_0x247d('0x2e')][_0x247d('0x2b')]({'where':{'type':_0x5d638e,'resourceId':_0x89f85e['id']}})[_0x247d('0x2a')](function(){return _0x344978;});})[_0x247d('0x2a')](function(){_0x38c37a[_0x247d('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x19fd31,_0x4ad4d1){return function(_0x44fdca){if(!_0x44fdca){_0x19fd31[_0x247d('0x2f')](0x194);}return _0x44fdca;};}function handleError(_0x4b13a6,_0x161aa1){_0x161aa1=_0x161aa1||0x1f4;return function(_0x122d59){logger[_0x247d('0x30')](_0x122d59[_0x247d('0x31')]);if(_0x122d59[_0x247d('0x32')]){delete _0x122d59[_0x247d('0x32')];}_0x4b13a6[_0x247d('0x21')](_0x161aa1)[_0x247d('0x33')](_0x122d59);};}exports[_0x247d('0x34')]=function(_0x5d38f0,_0x205743){var _0x2121c7={},_0x6f6d24={},_0x52e722={'count':0x0,'rows':[]};var _0x207d10=_[_0x247d('0x35')](db['CmList']['rawAttributes'],function(_0x1aee97){return{'name':_0x1aee97[_0x247d('0x36')],'type':_0x1aee97[_0x247d('0x37')]['key']};});_0x6f6d24[_0x247d('0x38')]=_[_0x247d('0x35')](_0x207d10,_0x247d('0x32'));_0x6f6d24[_0x247d('0x39')]=_['keys'](_0x5d38f0[_0x247d('0x39')]);_0x6f6d24[_0x247d('0x3a')]=_[_0x247d('0x3b')](_0x6f6d24[_0x247d('0x38')],_0x6f6d24[_0x247d('0x39')]);_0x2121c7[_0x247d('0x3c')]=_[_0x247d('0x3b')](_0x6f6d24[_0x247d('0x38')],qs[_0x247d('0x3d')](_0x5d38f0[_0x247d('0x39')][_0x247d('0x3d')]));_0x2121c7[_0x247d('0x3c')]=_0x2121c7['attributes'][_0x247d('0x3e')]?_0x2121c7['attributes']:_0x6f6d24[_0x247d('0x38')];if(!_0x5d38f0['query'][_0x247d('0x3f')]('nolimit')){_0x2121c7['limit']=qs[_0x247d('0x24')](_0x5d38f0[_0x247d('0x39')][_0x247d('0x24')]);_0x2121c7[_0x247d('0x22')]=qs[_0x247d('0x22')](_0x5d38f0[_0x247d('0x39')][_0x247d('0x22')]);}_0x2121c7[_0x247d('0x40')]=qs[_0x247d('0x41')](_0x5d38f0[_0x247d('0x39')][_0x247d('0x41')]);_0x2121c7[_0x247d('0x42')]=qs['filters'](_[_0x247d('0x43')](_0x5d38f0[_0x247d('0x39')],_0x6f6d24[_0x247d('0x3a')]),_0x207d10);if(_0x5d38f0[_0x247d('0x39')][_0x247d('0x44')]){_0x2121c7[_0x247d('0x42')]=_[_0x247d('0x45')](_0x2121c7[_0x247d('0x42')],{'$or':_[_0x247d('0x35')](_0x207d10,function(_0x4b2a97){if(_0x4b2a97['type']!==_0x247d('0x46')){var _0x149417={};_0x149417[_0x4b2a97['name']]={'$like':'%'+_0x5d38f0[_0x247d('0x39')][_0x247d('0x44')]+'%'};return _0x149417;}})});}_0x2121c7=_[_0x247d('0x45')]({},_0x2121c7,_0x5d38f0[_0x247d('0x47')]);var _0x420609={'where':_0x2121c7[_0x247d('0x42')]};return db[_0x247d('0x48')][_0x247d('0x25')](_0x420609)['then'](function(_0x556aa0){_0x52e722[_0x247d('0x25')]=_0x556aa0;if(_0x5d38f0[_0x247d('0x39')][_0x247d('0x49')]){_0x2121c7[_0x247d('0x4a')]=[{'all':!![]}];}return db[_0x247d('0x48')][_0x247d('0x4b')](_0x2121c7);})['then'](function(_0x2370bf){_0x52e722[_0x247d('0x4c')]=_0x2370bf;return _0x52e722;})['then'](respondWithFilteredResult(_0x205743,_0x2121c7))[_0x247d('0x4d')](handleError(_0x205743,null));};exports['show']=function(_0x12ef94,_0x42ec6e){var _0x1af4f1={'raw':![],'where':{'id':_0x12ef94['params']['id']}},_0x251b58={};_0x251b58['model']=_['keys'](db[_0x247d('0x48')][_0x247d('0x4e')]);_0x251b58['query']=_[_0x247d('0x4f')](_0x12ef94['query']);_0x251b58[_0x247d('0x3a')]=_['intersection'](_0x251b58['model'],_0x251b58[_0x247d('0x39')]);_0x1af4f1[_0x247d('0x3c')]=_[_0x247d('0x3b')](_0x251b58[_0x247d('0x38')],qs['fields'](_0x12ef94['query'][_0x247d('0x3d')]));_0x1af4f1[_0x247d('0x3c')]=_0x1af4f1[_0x247d('0x3c')][_0x247d('0x3e')]?_0x1af4f1[_0x247d('0x3c')]:_0x251b58['model'];if(_0x12ef94[_0x247d('0x39')]['includeAll']){_0x1af4f1[_0x247d('0x4a')]=[{'all':!![]}];}_0x1af4f1=_['merge']({},_0x1af4f1,_0x12ef94[_0x247d('0x47')]);return db[_0x247d('0x48')]['find'](_0x1af4f1)[_0x247d('0x2a')](handleEntityNotFound(_0x42ec6e,null))[_0x247d('0x2a')](respondWithResult(_0x42ec6e,null))['catch'](handleError(_0x42ec6e,null));};exports[_0x247d('0x50')]=function(_0xb2051c,_0x5afe77){return db[_0x247d('0x48')][_0x247d('0x50')](_0xb2051c[_0x247d('0x51')],{})[_0x247d('0x2a')](function(_0x12378c){var _0x59d1eb=_0xb2051c['user'][_0x247d('0x2c')]({'plain':!![]});if(!_0x59d1eb)throw new Error(_0x247d('0x52'));if(_0x59d1eb[_0x247d('0x53')]===_0x247d('0x54')){var _0x54d688=_0x12378c[_0x247d('0x2c')]({'plain':!![]});var _0x385f56=_0x247d('0x2d');return db[_0x247d('0x55')][_0x247d('0x56')]({'where':{'name':_0x385f56,'userProfileId':_0x59d1eb[_0x247d('0x57')]},'raw':!![]})['then'](function(_0x4f59a5){if(_0x4f59a5&&_0x4f59a5[_0x247d('0x58')]===0x0){return db['UserProfileResource'][_0x247d('0x50')]({'name':_0x54d688['name'],'resourceId':_0x54d688['id'],'type':_0x4f59a5[_0x247d('0x32')],'sectionId':_0x4f59a5['id']},{})['then'](function(){return _0x12378c;});}else{return _0x12378c;}})[_0x247d('0x4d')](function(_0x2e8e2d){logger[_0x247d('0x30')](_0x247d('0x59'),_0x2e8e2d);throw _0x2e8e2d;});}return _0x12378c;})[_0x247d('0x2a')](respondWithResult(_0x5afe77,0xc9))[_0x247d('0x4d')](handleError(_0x5afe77,null));};exports[_0x247d('0x29')]=function(_0x13b428,_0x51740e){if(_0x13b428[_0x247d('0x51')]['id']){delete _0x13b428['body']['id'];}return db[_0x247d('0x48')][_0x247d('0x56')]({'where':{'id':_0x13b428[_0x247d('0x5a')]['id']}})[_0x247d('0x2a')](handleEntityNotFound(_0x51740e,null))['then'](saveUpdates(_0x13b428[_0x247d('0x51')],null))[_0x247d('0x2a')](respondWithResult(_0x51740e,null))[_0x247d('0x4d')](handleError(_0x51740e,null));};exports['destroy']=function(_0x191775,_0x1e471a){return db[_0x247d('0x48')][_0x247d('0x56')]({'where':{'id':_0x191775[_0x247d('0x5a')]['id']}})[_0x247d('0x2a')](handleEntityNotFound(_0x1e471a,null))[_0x247d('0x2a')](removeEntity(_0x1e471a,null))[_0x247d('0x4d')](handleError(_0x1e471a,null));};exports['describe']=function(_0x44d7cc,_0xa31c48){return db[_0x247d('0x48')][_0x247d('0x5b')]()['then'](respondWithResult(_0xa31c48,null))[_0x247d('0x4d')](handleError(_0xa31c48,null));};exports[_0x247d('0x5c')]=function(_0x25e137,_0x258088,_0x90eedb){if(_0x25e137['body']['id']){delete _0x25e137[_0x247d('0x51')]['id'];}return db[_0x247d('0x48')][_0x247d('0x56')]({'where':{'id':_0x25e137[_0x247d('0x5a')]['id']}})['then'](handleEntityNotFound(_0x258088,null))[_0x247d('0x2a')](function(_0x4461ca){if(_0x4461ca){_0x25e137[_0x247d('0x51')][_0x247d('0x5d')]=_0x4461ca['id'];return db[_0x247d('0x5e')][_0x247d('0x50')](_0x25e137[_0x247d('0x51')]);}})[_0x247d('0x2a')](respondWithResult(_0x258088,null))['catch'](handleError(_0x258088,null));};exports['getDispositions']=function(_0x4347f1,_0x1b6217,_0x19d9ce){var _0x383e54={'raw':![],'where':{}};var _0x582ad1={};var _0x5a74e3={'count':0x0,'rows':[]};return db[_0x247d('0x48')][_0x247d('0x5f')]({'where':{'id':_0x4347f1[_0x247d('0x5a')]['id']}})[_0x247d('0x2a')](handleEntityNotFound(_0x1b6217,null))[_0x247d('0x2a')](function(_0x1d6ae0){if(_0x1d6ae0){_0x582ad1[_0x247d('0x38')]=_[_0x247d('0x4f')](db[_0x247d('0x5e')][_0x247d('0x4e')]);_0x582ad1['query']=_[_0x247d('0x4f')](_0x4347f1[_0x247d('0x39')]);_0x582ad1[_0x247d('0x3a')]=_['intersection'](_0x582ad1['model'],_0x582ad1['query']);_0x383e54[_0x247d('0x3c')]=_[_0x247d('0x3b')](_0x582ad1[_0x247d('0x38')],qs[_0x247d('0x3d')](_0x4347f1[_0x247d('0x39')][_0x247d('0x3d')]));_0x383e54[_0x247d('0x3c')]=_0x383e54[_0x247d('0x3c')][_0x247d('0x3e')]?_0x383e54[_0x247d('0x3c')]:_0x582ad1[_0x247d('0x38')];if(!_0x4347f1[_0x247d('0x39')]['hasOwnProperty'](_0x247d('0x60'))){_0x383e54[_0x247d('0x24')]=qs[_0x247d('0x24')](_0x4347f1['query'][_0x247d('0x24')]);_0x383e54[_0x247d('0x22')]=qs[_0x247d('0x22')](_0x4347f1['query'][_0x247d('0x22')]);}_0x383e54[_0x247d('0x40')]=qs[_0x247d('0x41')](_0x4347f1[_0x247d('0x39')][_0x247d('0x41')]);_0x383e54[_0x247d('0x42')]=qs[_0x247d('0x3a')](_[_0x247d('0x43')](_0x4347f1[_0x247d('0x39')],_0x582ad1[_0x247d('0x3a')]));_0x383e54[_0x247d('0x42')][_0x247d('0x5d')]=_0x1d6ae0['id'];if(_0x4347f1[_0x247d('0x39')][_0x247d('0x44')]){_0x383e54[_0x247d('0x42')]=_[_0x247d('0x45')](_0x383e54['where'],{'$or':_[_0x247d('0x35')](_0x383e54[_0x247d('0x3c')],function(_0x5ac4bc){var _0x37ff97={};_0x37ff97[_0x5ac4bc]={'$like':'%'+_0x4347f1[_0x247d('0x39')][_0x247d('0x44')]+'%'};return _0x37ff97;})});}_0x383e54=_[_0x247d('0x45')]({},_0x383e54,_0x4347f1[_0x247d('0x47')]);return db[_0x247d('0x5e')][_0x247d('0x25')]({'where':_0x383e54[_0x247d('0x42')]})[_0x247d('0x2a')](function(_0x5d0c3f){_0x5a74e3['count']=_0x5d0c3f;if(_0x4347f1['query'][_0x247d('0x49')]){_0x383e54[_0x247d('0x4a')]=[{'all':!![]}];}return db[_0x247d('0x5e')][_0x247d('0x4b')](_0x383e54);})[_0x247d('0x2a')](function(_0x5b9aba){_0x5a74e3[_0x247d('0x4c')]=_0x5b9aba;return _0x5a74e3;});}})['then'](respondWithFilteredResult(_0x1b6217,_0x383e54))[_0x247d('0x4d')](handleError(_0x1b6217,null));};exports[_0x247d('0x61')]=function(_0x2671c0,_0x27496f,_0x56f522){return db[_0x247d('0x48')]['find']({'where':{'id':_0x2671c0[_0x247d('0x5a')]['id']}})[_0x247d('0x2a')](handleEntityNotFound(_0x27496f,null))[_0x247d('0x2a')](function(_0x41b716){if(_0x41b716){return _0x41b716[_0x247d('0x61')](_0x2671c0[_0x247d('0x39')][_0x247d('0x62')]);}})['then'](respondWithStatusCode(_0x27496f,null))['catch'](handleError(_0x27496f,null));};exports[_0x247d('0x63')]=function(_0x26d949,_0x400a93,_0x3be7ef){return db['CmList'][_0x247d('0x56')]({'where':{'id':_0x26d949[_0x247d('0x5a')]['id']}})['then'](handleEntityNotFound(_0x400a93,null))[_0x247d('0x2a')](function(_0x4ce926){if(_0x4ce926){var _0x4f8e12=[];var _0x351007={'success':[],'errors':[]};return db[_0x247d('0x64')][_0x247d('0x5b')]()[_0x247d('0x2a')](function(_0x45a77e){if(_0x26d949[_0x247d('0x51')][_0x247d('0x65')]&&_[_0x247d('0x66')](_0x26d949[_0x247d('0x51')][_0x247d('0x65')])){if(_0x26d949[_0x247d('0x51')][_0x247d('0x65')][_0x247d('0x3e')]){_0x26d949[_0x247d('0x51')]['tags']=_0x26d949[_0x247d('0x51')]['tags']['join'](';')+';';}else{_0x26d949[_0x247d('0x51')]['tags']=null;}}else{_0x26d949[_0x247d('0x51')][_0x247d('0x65')]=null;}if(_0x26d949[_0x247d('0x51')]&&_[_0x247d('0x66')](_0x26d949[_0x247d('0x51')])){for(var _0x11d5f6=0x0;_0x11d5f6<_0x26d949[_0x247d('0x51')][_0x247d('0x3e')];_0x11d5f6+=0x1){_0x26d949[_0x247d('0x51')][_0x11d5f6][_0x247d('0x5d')]=_0x26d949[_0x247d('0x5a')]['id'];_0x4f8e12[_0x247d('0x67')](_0x26d949[_0x247d('0x51')][_0x11d5f6]);}return BPromise[_0x247d('0x68')](_0x4f8e12,function(_0x2a2616){return db[_0x247d('0x64')][_0x247d('0x50')](_['omit'](_0x2a2616,[_0x247d('0x62'),'id'])||{},{'fields':_[_0x247d('0x4f')](_0x45a77e),'raw':!![]})[_0x247d('0x2a')](function(_0xde5509){_0x351007[_0x247d('0x69')][_0x247d('0x67')](_0xde5509[_0x247d('0x6a')]);})[_0x247d('0x4d')](function(_0x3822ba){_0x351007[_0x247d('0x6b')][_0x247d('0x67')]({'data':_0x2a2616,'error':_0x3822ba['message']});});})[_0x247d('0x2a')](function(_0x3479e5){return _0x351007;})[_0x247d('0x4d')](function(_0x19776f){return _0x19776f;});}else{_0x400a93[_0x247d('0x21')](0x190)[_0x247d('0x6c')]({'message':_0x247d('0x6d')});}});}})[_0x247d('0x2a')](respondWithResult(_0x400a93,null))[_0x247d('0x4d')](handleError(_0x400a93,null));};exports[_0x247d('0x6e')]=function(_0x217173,_0xd659ea,_0x3bdf45){var _0x25f884;return db[_0x247d('0x48')]['find']({'where':{'id':_0x217173[_0x247d('0x5a')]['id']},'include':[{'model':db['CmCustomField'],'as':_0x247d('0x6f')}]})['then'](handleEntityNotFound(_0xd659ea,null))[_0x247d('0x2a')](function(_0xcb621a){if(_0xcb621a){_0x25f884=_0xcb621a;return db[_0x247d('0x64')][_0x247d('0x4e')];}})[_0x247d('0x2a')](function(_0x15a7a0){if(_0x15a7a0){var _0x1e6e3c={};var _0x3d51fa={};_0x3d51fa[_0x247d('0x38')]=_[_0x247d('0x70')](_[_0x247d('0x4f')](_0x15a7a0),_[_0x247d('0x35')](_0x25f884[_0x247d('0x6f')],function(_0x21b13b){return util[_0x247d('0x71')](_0x247d('0x72'),_0x21b13b['id']);}));_0x3d51fa[_0x247d('0x39')]=_[_0x247d('0x4f')](_0x217173[_0x247d('0x39')]);_0x3d51fa['filters']=_[_0x247d('0x3b')](_0x3d51fa[_0x247d('0x38')],_0x3d51fa[_0x247d('0x39')]);_0x1e6e3c[_0x247d('0x3c')]=_[_0x247d('0x3b')](_0x3d51fa[_0x247d('0x38')],qs['fields'](_0x217173[_0x247d('0x39')]['fields']));_0x1e6e3c[_0x247d('0x3c')]=_0x1e6e3c[_0x247d('0x3c')][_0x247d('0x3e')]?_0x1e6e3c[_0x247d('0x3c')]:_0x3d51fa[_0x247d('0x38')];if(!_0x217173[_0x247d('0x39')][_0x247d('0x3f')]('nolimit')){_0x1e6e3c['limit']=qs[_0x247d('0x24')](_0x217173[_0x247d('0x39')][_0x247d('0x24')]);_0x1e6e3c[_0x247d('0x22')]=qs[_0x247d('0x22')](_0x217173['query'][_0x247d('0x22')]);}_0x1e6e3c[_0x247d('0x40')]=qs[_0x247d('0x41')](_0x217173[_0x247d('0x39')][_0x247d('0x41')]);_0x1e6e3c[_0x247d('0x42')]=qs['filters'](_[_0x247d('0x43')](_0x217173['query'],_0x3d51fa['filters']));_0x1e6e3c[_0x247d('0x73')]=!![];if(_0x217173[_0x247d('0x39')]['filter']){_0x1e6e3c[_0x247d('0x42')]=_[_0x247d('0x45')](_0x1e6e3c[_0x247d('0x42')],{'$or':_[_0x247d('0x35')](_0x1e6e3c['attributes'],function(_0x1e6308){var _0x29bdea={};_0x29bdea[_0x1e6308]={'$like':'%'+_0x217173['query'][_0x247d('0x44')]+'%'};return _0x29bdea;})});}_0x1e6e3c=_[_0x247d('0x45')]({},_0x1e6e3c,_0x217173['options']);return _0x25f884[_0x247d('0x6e')](_0x1e6e3c);}})['then'](respondWithResult(_0xd659ea,null))[_0x247d('0x4d')](handleError(_0xd659ea,null));};exports[_0x247d('0x74')]=function(_0x1b4115,_0x1af44e,_0x195608){var _0x354b64;return db[_0x247d('0x48')][_0x247d('0x56')]({'where':{'id':_0x1b4115['params']['id']},'include':[{'model':db[_0x247d('0x75')],'as':_0x247d('0x6f')}]})[_0x247d('0x2a')](handleEntityNotFound(_0x1af44e,null))[_0x247d('0x2a')](function(_0x3fe4eb){if(_0x3fe4eb){_0x354b64=_0x3fe4eb;return db[_0x247d('0x64')][_0x247d('0x4e')];}})[_0x247d('0x2a')](function(_0x7f6368){if(_0x7f6368){var _0x7590d8={};var _0x528f33={};_0x528f33[_0x247d('0x38')]=_[_0x247d('0x70')](_[_0x247d('0x4f')](_0x7f6368),_[_0x247d('0x35')](_0x354b64[_0x247d('0x6f')],function(_0x4a5c1c){return util[_0x247d('0x71')](_0x247d('0x72'),_0x4a5c1c['id']);}));_0x528f33['query']=_['keys'](_0x1b4115[_0x247d('0x39')]);_0x528f33[_0x247d('0x3a')]=_[_0x247d('0x3b')](_0x528f33[_0x247d('0x38')],_0x528f33[_0x247d('0x39')]);_0x7590d8[_0x247d('0x3c')]=_[_0x247d('0x3b')](_0x528f33[_0x247d('0x38')],qs['fields'](_0x1b4115[_0x247d('0x39')]['fields']));_0x7590d8[_0x247d('0x3c')]=_0x7590d8[_0x247d('0x3c')][_0x247d('0x3e')]?_0x7590d8[_0x247d('0x3c')]:_0x528f33[_0x247d('0x38')];if(!_0x1b4115[_0x247d('0x39')][_0x247d('0x3f')](_0x247d('0x60'))){_0x7590d8[_0x247d('0x24')]=qs[_0x247d('0x24')](_0x1b4115[_0x247d('0x39')][_0x247d('0x24')]);_0x7590d8['offset']=qs[_0x247d('0x22')](_0x1b4115[_0x247d('0x39')][_0x247d('0x22')]);}_0x7590d8[_0x247d('0x40')]=qs['sort'](_0x1b4115[_0x247d('0x39')][_0x247d('0x41')]);_0x7590d8[_0x247d('0x42')]=qs[_0x247d('0x3a')](_[_0x247d('0x43')](_0x1b4115['query'],_0x528f33[_0x247d('0x3a')]));_0x7590d8['raw']=!![];if(_0x1b4115[_0x247d('0x39')][_0x247d('0x44')]){_0x7590d8[_0x247d('0x42')]=_[_0x247d('0x45')](_0x7590d8[_0x247d('0x42')],{'$or':_['map'](_0x7590d8[_0x247d('0x3c')],function(_0x45cca4){var _0x4d6912={};_0x4d6912[_0x45cca4]={'$like':'%'+_0x1b4115['query'][_0x247d('0x44')]+'%'};return _0x4d6912;})});}_0x7590d8=_[_0x247d('0x45')]({},_0x7590d8,_0x1b4115[_0x247d('0x47')]);return _0x354b64[_0x247d('0x6e')](_0x7590d8);}})[_0x247d('0x2a')](function(_0x198b21){if(!_[_0x247d('0x76')](_0x198b21)){var _0x1f8f7b=toCsv(_0x198b21);var _0x2ba419=Date[_0x247d('0x77')]();fs[_0x247d('0x78')](util[_0x247d('0x71')](_0x247d('0x79'),_0x354b64['id'],_0x2ba419),_0x1f8f7b);_0x1af44e[_0x247d('0x7a')](_0x247d('0x7b'),_0x247d('0x7c')+util['format'](_0x247d('0x7d'),_0x354b64['id'],_0x2ba419));_0x1af44e[_0x247d('0x7a')](_0x247d('0x7e'),_0x247d('0x7f'));return _0x1af44e[_0x247d('0x80')](util[_0x247d('0x71')]('/tmp/list_%d_%s.csv',_0x354b64['id'],_0x2ba419));}else{return _0x1af44e['sendStatus'](0xcc);}})['catch'](handleError(_0x1af44e,null));};exports['addCustomField']=function(_0x3c7033,_0x224dcc,_0x2e8bda){var _0x214981;delete _0x3c7033[_0x247d('0x51')]['id'];return db[_0x247d('0x48')][_0x247d('0x5f')]({'where':{'id':_0x3c7033[_0x247d('0x5a')]['id']}})['then'](handleEntityNotFound(_0x224dcc,null))['then'](function(_0x519fb7){if(_0x519fb7){return db['sequelize'][_0x247d('0x81')](function(_0x54dd2a){return db[_0x247d('0x75')]['create'](_0x3c7033['body'],{'transaction':_0x54dd2a})['then'](function(_0x31a2fb){_0x214981=_0x31a2fb;return _0x519fb7[_0x247d('0x82')](_0x31a2fb,{'transaction':_0x54dd2a});})[_0x247d('0x2a')](function(){var _0x2dc79a={'type':db[_0x247d('0x83')]['TEXT'],'transaction':_0x54dd2a};switch(_0x3c7033['body'][_0x247d('0x37')]){case _0x247d('0x84'):_0x2dc79a[_0x247d('0x37')]=db[_0x247d('0x83')][_0x247d('0x85')];break;case _0x247d('0x86'):_0x2dc79a[_0x247d('0x37')]=db['Sequelize'][_0x247d('0x87')];break;case _0x247d('0x88'):_0x2dc79a[_0x247d('0x37')]=db['Sequelize'][_0x247d('0x89')];_0x2dc79a['defaultValue']=![];break;default:}return db[_0x247d('0x8a')][_0x247d('0x8b')][_0x247d('0x8c')]('cm_contacts',util['format'](_0x247d('0x8d'),_0x214981['id']),_0x2dc79a);})[_0x247d('0x2a')](function(){return _0x214981;});});}})[_0x247d('0x2a')](respondWithResult(_0x224dcc,null))['catch'](handleError(_0x224dcc,null));};exports[_0x247d('0x8e')]=function(_0x4e750f,_0x51cc90,_0x1cabd1){var _0x2aabe6={};var _0xed2cb6={};var _0x16d021;var _0x2c81fc;return db['CmList'][_0x247d('0x5f')]({'where':{'id':_0x4e750f[_0x247d('0x5a')]['id']}})['then'](handleEntityNotFound(_0x51cc90,null))[_0x247d('0x2a')](function(_0x2fffb7){if(_0x2fffb7){_0x16d021=_0x2fffb7;_0xed2cb6[_0x247d('0x38')]=_[_0x247d('0x4f')](db['CmCustomField'][_0x247d('0x4e')]);_0xed2cb6['query']=_[_0x247d('0x4f')](_0x4e750f[_0x247d('0x39')]);_0xed2cb6[_0x247d('0x3a')]=_[_0x247d('0x3b')](_0xed2cb6[_0x247d('0x38')],_0xed2cb6[_0x247d('0x39')]);_0x2aabe6[_0x247d('0x3c')]=_[_0x247d('0x3b')](_0xed2cb6['model'],qs[_0x247d('0x3d')](_0x4e750f[_0x247d('0x39')][_0x247d('0x3d')]));_0x2aabe6[_0x247d('0x3c')]=_0x2aabe6[_0x247d('0x3c')][_0x247d('0x3e')]?_0x2aabe6[_0x247d('0x3c')]:_0xed2cb6[_0x247d('0x38')];_0x2aabe6[_0x247d('0x40')]=qs[_0x247d('0x41')](_0x4e750f['query'][_0x247d('0x41')]);_0x2aabe6['where']=qs[_0x247d('0x3a')](_[_0x247d('0x43')](_0x4e750f[_0x247d('0x39')],_0xed2cb6['filters']));_0x2aabe6[_0x247d('0x42')]=_[_0x247d('0x45')](_0x2aabe6[_0x247d('0x42')],{'$or':[{'ListId':_0x2fffb7['id']},{'ListId':null}]});if(_0x4e750f[_0x247d('0x39')]['filter']){_0x2aabe6[_0x247d('0x42')]=_['merge'](_0x2aabe6[_0x247d('0x42')],{'$or':_['map'](_0x2aabe6[_0x247d('0x3c')],function(_0xd09a88){var _0x5ad299={};_0x5ad299[_0xd09a88]={'$like':'%'+_0x4e750f[_0x247d('0x39')]['filter']+'%'};return _0x5ad299;})});}_0x2aabe6=_[_0x247d('0x45')]({},_0x2aabe6,_0x4e750f['options']);return db['CmCustomField'][_0x247d('0x8f')](_0x2aabe6);}})[_0x247d('0x2a')](respondWithResult(_0x51cc90,null))[_0x247d('0x4d')](handleError(_0x51cc90,null));};exports[_0x247d('0x90')]=function(_0x3a370f,_0x4ba0a8,_0x272741){return db[_0x247d('0x48')][_0x247d('0x56')]({'where':{'id':_0x3a370f[_0x247d('0x5a')]['id']}})['then'](handleEntityNotFound(_0x4ba0a8,null))['then'](function(_0x25c10c){if(_0x25c10c){return _0x25c10c[_0x247d('0x90')](_0x3a370f[_0x247d('0x51')][_0x247d('0x62')],_[_0x247d('0x91')](_0x3a370f[_0x247d('0x51')],[_0x247d('0x62'),'id'])||{})[_0x247d('0x92')](function(_0x2f3f72){for(var _0x360445=0x0;_0x360445<_0x3a370f['body'][_0x247d('0x62')][_0x247d('0x3e')];_0x360445+=0x1){socket['emit'](_0x247d('0x93'),{'UserId':Number(_0x3a370f[_0x247d('0x51')][_0x247d('0x62')][_0x360445]),'CmListId':Number(_0x3a370f[_0x247d('0x5a')]['id'])});}return _0x2f3f72;});}})[_0x247d('0x2a')](respondWithResult(_0x4ba0a8,null))['catch'](handleError(_0x4ba0a8,null));};exports[_0x247d('0x94')]=function(_0x293516,_0x4bce64,_0x4ae503){return db[_0x247d('0x48')]['find']({'where':{'id':_0x293516[_0x247d('0x5a')]['id']}})[_0x247d('0x2a')](handleEntityNotFound(_0x4bce64,null))[_0x247d('0x2a')](function(_0x65b32c){if(_0x65b32c){return _0x65b32c[_0x247d('0x94')](_0x293516[_0x247d('0x39')][_0x247d('0x62')])[_0x247d('0x2a')](function(){if(_[_0x247d('0x66')](_0x293516[_0x247d('0x39')]['ids'])){for(var _0x376e6e=0x0;_0x376e6e<_0x293516[_0x247d('0x39')][_0x247d('0x62')][_0x247d('0x3e')];_0x376e6e+=0x1){socket[_0x247d('0x95')](_0x247d('0x96'),{'UserId':Number(_0x293516[_0x247d('0x39')]['ids'][_0x376e6e]),'CmListId':Number(_0x293516['params']['id'])});}}else{socket[_0x247d('0x95')](_0x247d('0x96'),{'UserId':Number(_0x293516[_0x247d('0x39')][_0x247d('0x62')]),'CmListId':Number(_0x293516[_0x247d('0x5a')]['id'])});}});}})[_0x247d('0x2a')](respondWithStatusCode(_0x4bce64,null))['catch'](handleError(_0x4bce64,null));};exports[_0x247d('0x97')]=function(_0x36b151,_0x47ac4b,_0x3ece31){var _0x3c5983={};var _0x10a383={};var _0x396821;var _0x51c851;return db[_0x247d('0x48')][_0x247d('0x5f')]({'where':{'id':_0x36b151[_0x247d('0x5a')]['id']}})[_0x247d('0x2a')](handleEntityNotFound(_0x47ac4b,null))[_0x247d('0x2a')](function(_0x4954d7){if(_0x4954d7){_0x396821=_0x4954d7;_0x10a383[_0x247d('0x38')]=_['keys'](db[_0x247d('0x98')][_0x247d('0x4e')]);_0x10a383['query']=_[_0x247d('0x4f')](_0x36b151['query']);_0x10a383['filters']=_[_0x247d('0x3b')](_0x10a383[_0x247d('0x38')],_0x10a383[_0x247d('0x39')]);_0x3c5983['attributes']=_[_0x247d('0x3b')](_0x10a383[_0x247d('0x38')],qs[_0x247d('0x3d')](_0x36b151['query']['fields']));_0x3c5983[_0x247d('0x3c')]=_0x3c5983[_0x247d('0x3c')]['length']?_0x3c5983[_0x247d('0x3c')]:_0x10a383[_0x247d('0x38')];_0x3c5983[_0x247d('0x40')]=qs[_0x247d('0x41')](_0x36b151[_0x247d('0x39')][_0x247d('0x41')]);_0x3c5983['where']=qs['filters'](_[_0x247d('0x43')](_0x36b151[_0x247d('0x39')],_0x10a383['filters']));if(_0x36b151['query'][_0x247d('0x44')]){_0x3c5983[_0x247d('0x42')]=_[_0x247d('0x45')](_0x3c5983[_0x247d('0x42')],{'$or':_[_0x247d('0x35')](_0x3c5983[_0x247d('0x3c')],function(_0x1fedc0){var _0x50587a={};_0x50587a[_0x1fedc0]={'$like':'%'+_0x36b151[_0x247d('0x39')][_0x247d('0x44')]+'%'};return _0x50587a;})});}_0x3c5983=_[_0x247d('0x45')]({},_0x3c5983,_0x36b151[_0x247d('0x47')]);return _0x396821[_0x247d('0x97')](_0x3c5983);}})[_0x247d('0x2a')](function(_0x139a08){if(_0x139a08){_0x51c851=_0x139a08[_0x247d('0x3e')];if(!_0x36b151['query'][_0x247d('0x3f')](_0x247d('0x60'))){_0x3c5983[_0x247d('0x24')]=qs[_0x247d('0x24')](_0x36b151[_0x247d('0x39')][_0x247d('0x24')]);_0x3c5983['offset']=qs[_0x247d('0x22')](_0x36b151['query']['offset']);}return _0x396821[_0x247d('0x97')](_0x3c5983);}})[_0x247d('0x2a')](function(_0x1635ad){if(_0x1635ad){return _0x1635ad?{'count':_0x51c851,'rows':_0x1635ad}:null;}})[_0x247d('0x2a')](respondWithResult(_0x47ac4b,null))['catch'](handleError(_0x47ac4b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['events','../../mysqldb','setMaxListeners','save','update','remove','emit','hook'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x5fc3,0xa8));var _0x35fc=function(_0x5ecadc,_0x1cf9f1){_0x5ecadc=_0x5ecadc-0x0;var _0x565037=_0x5fc3[_0x5ecadc];return _0x565037;};'use strict';var EventEmitter=require(_0x35fc('0x0'));var CmList=require(_0x35fc('0x1'))['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents[_0x35fc('0x2')](0x0);var events={'afterCreate':_0x35fc('0x3'),'afterUpdate':_0x35fc('0x4'),'afterDestroy':_0x35fc('0x5')};function emitEvent(_0xb4f9ce){return function(_0x5e75e6,_0x2d1404,_0x1d5fec){CmListEvents[_0x35fc('0x6')](_0xb4f9ce+':'+_0x5e75e6['id'],_0x5e75e6);CmListEvents['emit'](_0xb4f9ce,_0x5e75e6);_0x1d5fec(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmList[_0x35fc('0x7')](e,emitEvent(event));}}module['exports']=CmListEvents;
\ No newline at end of file
+var _0x9957=['setMaxListeners','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','CmList'];(function(_0x48668c,_0x20b3e4){var _0x183532=function(_0x28cb8f){while(--_0x28cb8f){_0x48668c['push'](_0x48668c['shift']());}};_0x183532(++_0x20b3e4);}(_0x9957,0x93));var _0x7995=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9957[_0x2dafbe];return _0x58a45a;};'use strict';var EventEmitter=require(_0x7995('0x0'));var CmList=require(_0x7995('0x1'))['db'][_0x7995('0x2')];var CmListEvents=new EventEmitter();CmListEvents[_0x7995('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x7995('0x4'),'afterDestroy':_0x7995('0x5')};function emitEvent(_0x1902b4){return function(_0x462a03,_0x576d89,_0x744bea){CmListEvents[_0x7995('0x6')](_0x1902b4+':'+_0x462a03['id'],_0x462a03);CmListEvents[_0x7995('0x6')](_0x1902b4,_0x462a03);_0x744bea(null);};}for(var e in events){if(events[_0x7995('0x7')](e)){var event=events[e];CmList[_0x7995('0x8')](e,emitEvent(event));}}module[_0x7995('0x9')]=CmListEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb821=['rimraf','../../config/environment','./cmList.attributes','exports','define','CmList','cm_lists','util','../../config/logger','bluebird'];(function(_0x3828ab,_0x263c40){var _0x31eb27=function(_0x493747){while(--_0x493747){_0x3828ab['push'](_0x3828ab['shift']());}};_0x31eb27(++_0x263c40);}(_0xb821,0xa7));var _0x1b82=function(_0x3643fc,_0x22c634){_0x3643fc=_0x3643fc-0x0;var _0x1753aa=_0xb821[_0x3643fc];return _0x1753aa;};'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 fs=require('fs');var path=require('path');var rimraf=require(_0x1b82('0x3'));var config=require(_0x1b82('0x4'));var attributes=require(_0x1b82('0x5'));module[_0x1b82('0x6')]=function(_0x597ca7,_0x3e27c4){return _0x597ca7[_0x1b82('0x7')](_0x1b82('0x8'),attributes,{'tableName':_0x1b82('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6f7a=['CmList','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./cmList.attributes','exports','define'];(function(_0x4653f7,_0x3d3ae3){var _0x5454da=function(_0x448f55){while(--_0x448f55){_0x4653f7['push'](_0x4653f7['shift']());}};_0x5454da(++_0x3d3ae3);}(_0x6f7a,0x1ae));var _0xa6f7=function(_0x18a983,_0x32228){_0x18a983=_0x18a983-0x0;var _0x42bc15=_0x6f7a[_0x18a983];return _0x42bc15;};'use strict';var _=require(_0xa6f7('0x0'));var util=require(_0xa6f7('0x1'));var logger=require(_0xa6f7('0x2'))(_0xa6f7('0x3'));var moment=require('moment');var BPromise=require(_0xa6f7('0x4'));var rp=require(_0xa6f7('0x5'));var fs=require('fs');var path=require(_0xa6f7('0x6'));var rimraf=require(_0xa6f7('0x7'));var config=require(_0xa6f7('0x8'));var attributes=require(_0xa6f7('0x9'));module[_0xa6f7('0xa')]=function(_0x20cccd,_0x1fdd5f){return _0x20cccd[_0xa6f7('0xb')](_0xa6f7('0xc'),attributes,{'tableName':'cm_lists','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1d1=['../../config/environment','client','redis','localhost','socket.io-emitter','./cmList.socket','register','request','then','CmList,\x20%s,\x20%s','request\x20sent','error','message','info','result','catch','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x2c8d60,_0x43fa57){var _0x504dc8=function(_0x5d7fad){while(--_0x5d7fad){_0x2c8d60['push'](_0x2c8d60['shift']());}};_0x504dc8(++_0x43fa57);}(_0xe1d1,0x10d));var _0x1e1d=function(_0x2d34d6,_0x397ff9){_0x2d34d6=_0x2d34d6-0x0;var _0x1d3d12=_0xe1d1[_0x2d34d6];return _0x1d3d12;};'use strict';var _=require('lodash');var util=require(_0x1e1d('0x0'));var moment=require(_0x1e1d('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1e1d('0x2'));var db=require(_0x1e1d('0x3'))['db'];var utils=require(_0x1e1d('0x4'));var logger=require(_0x1e1d('0x5'))(_0x1e1d('0x6'));var config=require(_0x1e1d('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x1e1d('0x8')]['http']({'port':0x232a});config[_0x1e1d('0x9')]=_['defaults'](config[_0x1e1d('0x9')],{'host':_0x1e1d('0xa'),'port':0x18eb});var socket=require(_0x1e1d('0xb'))(new Redis(config['redis']));require(_0x1e1d('0xc'))[_0x1e1d('0xd')](socket);function respondWithRpcPromise(_0x37081b,_0x262b41,_0xbb9bfa){return new BPromise(function(_0x23bd38,_0x3bf8d5){return client[_0x1e1d('0xe')](_0x37081b,_0xbb9bfa)[_0x1e1d('0xf')](function(_0x410135){logger['info'](_0x1e1d('0x10'),_0x262b41,_0x1e1d('0x11'));logger['debug']('CmList,\x20%s,\x20%s,\x20%s',_0x262b41,'request\x20sent',JSON['stringify'](_0x410135));if(_0x410135[_0x1e1d('0x12')]){if(_0x410135['error']['code']===0x1f4){logger[_0x1e1d('0x12')](_0x1e1d('0x10'),_0x262b41,_0x410135[_0x1e1d('0x12')][_0x1e1d('0x13')]);return _0x3bf8d5(_0x410135[_0x1e1d('0x12')][_0x1e1d('0x13')]);}logger['error'](_0x1e1d('0x10'),_0x262b41,_0x410135[_0x1e1d('0x12')][_0x1e1d('0x13')]);return _0x23bd38(_0x410135[_0x1e1d('0x12')][_0x1e1d('0x13')]);}else{logger[_0x1e1d('0x14')](_0x1e1d('0x10'),_0x262b41,_0x1e1d('0x11'));_0x23bd38(_0x410135[_0x1e1d('0x15')][_0x1e1d('0x13')]);}})[_0x1e1d('0x16')](function(_0xa7771f){logger[_0x1e1d('0x12')](_0x1e1d('0x10'),_0x262b41,_0xa7771f);_0x3bf8d5(_0xa7771f);});});}
\ No newline at end of file
+var _0x742b=['code','message','CmList,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','register','then','info','debug','CmList,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x257642,_0x270a80){var _0x3d813b=function(_0x2a1c8a){while(--_0x2a1c8a){_0x257642['push'](_0x257642['shift']());}};_0x3d813b(++_0x270a80);}(_0x742b,0x171));var _0xb742=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x742b[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0xb742('0x0'));var util=require(_0xb742('0x1'));var moment=require(_0xb742('0x2'));var BPromise=require(_0xb742('0x3'));var rs=require(_0xb742('0x4'));var fs=require('fs');var Redis=require(_0xb742('0x5'));var db=require(_0xb742('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xb742('0x7'));var jayson=require(_0xb742('0x8'));var client=jayson[_0xb742('0x9')][_0xb742('0xa')]({'port':0x232a});config[_0xb742('0xb')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb742('0xc'))(new Redis(config[_0xb742('0xb')]));require('./cmList.socket')[_0xb742('0xd')](socket);function respondWithRpcPromise(_0x9be5af,_0x43aafe,_0x5a7e91){return new BPromise(function(_0x54ef7f,_0x4d74a6){return client['request'](_0x9be5af,_0x5a7e91)[_0xb742('0xe')](function(_0x9900be){logger[_0xb742('0xf')]('CmList,\x20%s,\x20%s',_0x43aafe,'request\x20sent');logger[_0xb742('0x10')](_0xb742('0x11'),_0x43aafe,_0xb742('0x12'),JSON[_0xb742('0x13')](_0x9900be));if(_0x9900be[_0xb742('0x14')]){if(_0x9900be[_0xb742('0x14')][_0xb742('0x15')]===0x1f4){logger[_0xb742('0x14')]('CmList,\x20%s,\x20%s',_0x43aafe,_0x9900be[_0xb742('0x14')]['message']);return _0x4d74a6(_0x9900be['error'][_0xb742('0x16')]);}logger['error']('CmList,\x20%s,\x20%s',_0x43aafe,_0x9900be['error'][_0xb742('0x16')]);return _0x54ef7f(_0x9900be[_0xb742('0x14')][_0xb742('0x16')]);}else{logger['info'](_0xb742('0x17'),_0x43aafe,_0xb742('0x12'));_0x54ef7f(_0x9900be[_0xb742('0x18')][_0xb742('0x16')]);}})[_0xb742('0x19')](function(_0x1c5821){logger['error'](_0xb742('0x17'),_0x43aafe,_0x1c5821);_0x4d74a6(_0x1c5821);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd618=['save','update','emit','removeListener','register','./cmList.events'];(function(_0x312196,_0x28b5fc){var _0x2b5b3a=function(_0x3b14e0){while(--_0x3b14e0){_0x312196['push'](_0x312196['shift']());}};_0x2b5b3a(++_0x28b5fc);}(_0xd618,0x9b));var _0x8d61=function(_0x1f2e5e,_0x36db41){_0x1f2e5e=_0x1f2e5e-0x0;var _0x16fcdb=_0xd618[_0x1f2e5e];return _0x16fcdb;};'use strict';var CmListEvents=require(_0x8d61('0x0'));var events=[_0x8d61('0x1'),'remove',_0x8d61('0x2')];function createListener(_0x571355,_0x38ded5){return function(_0x3f2074){_0x38ded5[_0x8d61('0x3')](_0x571355,_0x3f2074);};}function removeListener(_0x2b1021,_0x154e75){return function(){CmListEvents[_0x8d61('0x4')](_0x2b1021,_0x154e75);};}exports[_0x8d61('0x5')]=function(_0x1f9697){for(var _0x32a95f=0x0,_0x231dc9=events['length'];_0x32a95f<_0x231dc9;_0x32a95f++){var _0x4f7068=events[_0x32a95f];var _0x194905=createListener('cmList:'+_0x4f7068,_0x1f9697);CmListEvents['on'](_0x4f7068,_0x194905);}};
\ No newline at end of file
+var _0xbfb9=['length','./cmList.events','remove','update','emit'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0xbfb9,0x97));var _0x9bfb=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xbfb9[_0xa464c9];return _0x3d73c4;};'use strict';var CmListEvents=require(_0x9bfb('0x0'));var events=['save',_0x9bfb('0x1'),_0x9bfb('0x2')];function createListener(_0xb99654,_0x286f9b){return function(_0x214331){_0x286f9b[_0x9bfb('0x3')](_0xb99654,_0x214331);};}function removeListener(_0x1b343c,_0x43e63d){return function(){CmListEvents['removeListener'](_0x1b343c,_0x43e63d);};}exports['register']=function(_0x2a0ab6){for(var _0x348465=0x0,_0x25ce08=events[_0x9bfb('0x4')];_0x348465<_0x25ce08;_0x348465++){var _0x4c6ed9=events[_0x348465];var _0x4efce1=createListener('cmList:'+_0x4c6ed9,_0x2a0ab6);CmListEvents['on'](_0x4c6ed9,_0x4efce1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3791=['addAgents','put','delete','/:id/users','exports','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmList.controller','get','isAuthenticated','/describe','describe','/:id','show','getDispositions','/:id/contacts','/:id/contacts/csv','getContactsCsv','/:id/fields','getAgents','post','create','/:id/dispositions','addDisposition','addContacts','addCustomField'];(function(_0x1fa7e3,_0x591fa2){var _0x564e47=function(_0x5ab98d){while(--_0x5ab98d){_0x1fa7e3['push'](_0x1fa7e3['shift']());}};_0x564e47(++_0x591fa2);}(_0x3791,0x14f));var _0x1379=function(_0x58f626,_0x313821){_0x58f626=_0x58f626-0x0;var _0x53835e=_0x3791[_0x58f626];return _0x53835e;};'use strict';var multer=require('multer');var util=require(_0x1379('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x1379('0x1'));var router=express['Router']();var fs_extra=require(_0x1379('0x2'));var auth=require(_0x1379('0x3'));var interaction=require(_0x1379('0x4'));var config=require(_0x1379('0x5'));var controller=require(_0x1379('0x6'));router[_0x1379('0x7')]('/',auth[_0x1379('0x8')](),controller['index']);router[_0x1379('0x7')](_0x1379('0x9'),auth[_0x1379('0x8')](),controller[_0x1379('0xa')]);router[_0x1379('0x7')](_0x1379('0xb'),auth[_0x1379('0x8')](),controller[_0x1379('0xc')]);router['get']('/:id/dispositions',auth[_0x1379('0x8')](),controller[_0x1379('0xd')]);router['get'](_0x1379('0xe'),auth[_0x1379('0x8')](),controller['getContacts']);router['get'](_0x1379('0xf'),auth[_0x1379('0x8')](),controller[_0x1379('0x10')]);router[_0x1379('0x7')](_0x1379('0x11'),auth['isAuthenticated'](),controller['getCustomFields']);router[_0x1379('0x7')]('/:id/users',auth[_0x1379('0x8')](),controller[_0x1379('0x12')]);router[_0x1379('0x13')]('/',auth[_0x1379('0x8')](),controller[_0x1379('0x14')]);router[_0x1379('0x13')](_0x1379('0x15'),auth[_0x1379('0x8')](),controller[_0x1379('0x16')]);router[_0x1379('0x13')]('/:id/contacts',auth[_0x1379('0x8')](),controller[_0x1379('0x17')]);router[_0x1379('0x13')](_0x1379('0x11'),auth[_0x1379('0x8')](),controller[_0x1379('0x18')]);router['post']('/:id/users',auth[_0x1379('0x8')](),controller[_0x1379('0x19')]);router[_0x1379('0x1a')](_0x1379('0xb'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x1379('0xb'),auth[_0x1379('0x8')](),controller['destroy']);router['delete']('/:id/dispositions',auth[_0x1379('0x8')](),controller['removeDispositions']);router[_0x1379('0x1b')](_0x1379('0x1c'),auth[_0x1379('0x8')](),controller['removeAgents']);module[_0x1379('0x1d')]=router;
\ No newline at end of file
+var _0xef98=['removeAgents','exports','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','get','index','isAuthenticated','describe','show','getContacts','getContactsCsv','/:id/fields','getCustomFields','/:id/users','getAgents','post','addDisposition','/:id/contacts','put','/:id','update','delete','destroy','/:id/dispositions','removeDispositions'];(function(_0x4ac60a,_0x503a99){var _0x4b22e8=function(_0x145c47){while(--_0x145c47){_0x4ac60a['push'](_0x4ac60a['shift']());}};_0x4b22e8(++_0x503a99);}(_0xef98,0x1c2));var _0x8ef9=function(_0x4455af,_0x26f3c9){_0x4455af=_0x4455af-0x0;var _0x51cb57=_0xef98[_0x4455af];return _0x51cb57;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x8ef9('0x0'));var timeout=require(_0x8ef9('0x1'));var express=require('express');var router=express[_0x8ef9('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x8ef9('0x3'));var interaction=require(_0x8ef9('0x4'));var config=require('../../config/environment');var controller=require('./cmList.controller');router[_0x8ef9('0x5')]('/',auth['isAuthenticated'](),controller[_0x8ef9('0x6')]);router[_0x8ef9('0x5')]('/describe',auth[_0x8ef9('0x7')](),controller[_0x8ef9('0x8')]);router[_0x8ef9('0x5')]('/:id',auth[_0x8ef9('0x7')](),controller[_0x8ef9('0x9')]);router['get']('/:id/dispositions',auth['isAuthenticated'](),controller['getDispositions']);router[_0x8ef9('0x5')]('/:id/contacts',auth['isAuthenticated'](),controller[_0x8ef9('0xa')]);router[_0x8ef9('0x5')]('/:id/contacts/csv',auth[_0x8ef9('0x7')](),controller[_0x8ef9('0xb')]);router[_0x8ef9('0x5')](_0x8ef9('0xc'),auth[_0x8ef9('0x7')](),controller[_0x8ef9('0xd')]);router['get'](_0x8ef9('0xe'),auth[_0x8ef9('0x7')](),controller[_0x8ef9('0xf')]);router[_0x8ef9('0x10')]('/',auth[_0x8ef9('0x7')](),controller['create']);router[_0x8ef9('0x10')]('/:id/dispositions',auth[_0x8ef9('0x7')](),controller[_0x8ef9('0x11')]);router[_0x8ef9('0x10')](_0x8ef9('0x12'),auth[_0x8ef9('0x7')](),controller['addContacts']);router[_0x8ef9('0x10')]('/:id/fields',auth[_0x8ef9('0x7')](),controller['addCustomField']);router[_0x8ef9('0x10')](_0x8ef9('0xe'),auth[_0x8ef9('0x7')](),controller['addAgents']);router[_0x8ef9('0x13')](_0x8ef9('0x14'),auth['isAuthenticated'](),controller[_0x8ef9('0x15')]);router[_0x8ef9('0x16')](_0x8ef9('0x14'),auth[_0x8ef9('0x7')](),controller[_0x8ef9('0x17')]);router[_0x8ef9('0x16')](_0x8ef9('0x18'),auth['isAuthenticated'](),controller[_0x8ef9('0x19')]);router[_0x8ef9('0x16')]('/:id/users',auth[_0x8ef9('0x7')](),controller[_0x8ef9('0x1a')]);module[_0x8ef9('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58e4=['field','STRING','sequelize','exports','VIRTUAL'];(function(_0x45a717,_0xf2e23e){var _0x3feeb1=function(_0x3c1d2a){while(--_0x3c1d2a){_0x45a717['push'](_0x45a717['shift']());}};_0x3feeb1(++_0xf2e23e);}(_0x58e4,0x106));var _0x458e=function(_0x34f4be,_0x161c28){_0x34f4be=_0x34f4be-0x0;var _0x4c6796=_0x58e4[_0x34f4be];return _0x4c6796;};'use strict';var Sequelize=require(_0x458e('0x0'));module[_0x458e('0x1')]={'name':{'type':Sequelize[_0x458e('0x2')],'get':function(_0x5316ab){return this['getDataValue'](_0x458e('0x3'));}},'field':{'type':Sequelize[_0x458e('0x4')],'allowNull':![]},'operator':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize[_0x458e('0x4')],'allowNull':![]}};
\ No newline at end of file
+var _0x27a0=['STRING','exports','VIRTUAL','getDataValue','field'];(function(_0x129d61,_0x1dff9b){var _0x468457=function(_0x262f55){while(--_0x262f55){_0x129d61['push'](_0x129d61['shift']());}};_0x468457(++_0x1dff9b);}(_0x27a0,0x13c));var _0x027a=function(_0x197e1a,_0x356755){_0x197e1a=_0x197e1a-0x0;var _0x3cdbb6=_0x27a0[_0x197e1a];return _0x3cdbb6;};'use strict';var Sequelize=require('sequelize');module[_0x027a('0x0')]={'name':{'type':Sequelize[_0x027a('0x1')],'get':function(_0x434623){return this[_0x027a('0x2')](_0x027a('0x3'));}},'field':{'type':Sequelize[_0x027a('0x4')],'allowNull':![]},'operator':{'type':Sequelize[_0x027a('0x4')],'allowNull':![]},'value':{'type':Sequelize[_0x027a('0x4')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x26142a,_0x1cdb5b){var _0xdcd22b=function(_0x5685ac){while(--_0x5685ac){_0x26142a['push'](_0x26142a['shift']());}};_0xdcd22b(++_0x1cdb5b);}(_0x7a54,0x106));var _0x47a5=function(_0x30f8b5,_0x24235f){_0x30f8b5=_0x30f8b5-0x0;var _0x15780f=_0x7a54[_0x30f8b5];return _0x15780f;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));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 authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
+var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x42e2b4,_0x2d4657){var _0xb5095c=function(_0x19ee84){while(--_0x19ee84){_0x42e2b4['push'](_0x42e2b4['shift']());}};_0xb5095c(++_0x2d4657);}(_0x7a54,0x106));var _0x47a5=function(_0x639219,_0x5d642f){_0x639219=_0x639219-0x0;var _0x313b87=_0x7a54[_0x639219];return _0x313b87;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));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 authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd946=['lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','./condition.attributes','exports','define','tools_conditions'];(function(_0x2859b0,_0x13b8d8){var _0x44d1a9=function(_0x90d7b){while(--_0x90d7b){_0x2859b0['push'](_0x2859b0['shift']());}};_0x44d1a9(++_0x13b8d8);}(_0xd946,0x9c));var _0x6d94=function(_0x2a134f,_0x9c89d4){_0x2a134f=_0x2a134f-0x0;var _0x27bec7=_0xd946[_0x2a134f];return _0x27bec7;};'use strict';var _=require(_0x6d94('0x0'));var util=require(_0x6d94('0x1'));var logger=require(_0x6d94('0x2'))(_0x6d94('0x3'));var moment=require('moment');var BPromise=require(_0x6d94('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6d94('0x5'));var rimraf=require(_0x6d94('0x6'));var config=require(_0x6d94('0x7'));var attributes=require(_0x6d94('0x8'));module[_0x6d94('0x9')]=function(_0xc20a01,_0x472e47){return _0xc20a01[_0x6d94('0xa')]('Condition',attributes,{'tableName':_0x6d94('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf38d=['path','rimraf','../../config/environment','./condition.attributes','exports','define','Condition','lodash','util','../../config/logger','api','request-promise'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf38d,0x19f));var _0xdf38=function(_0x5ddfca,_0x233349){_0x5ddfca=_0x5ddfca-0x0;var _0x55be75=_0xf38d[_0x5ddfca];return _0x55be75;};'use strict';var _=require(_0xdf38('0x0'));var util=require(_0xdf38('0x1'));var logger=require(_0xdf38('0x2'))(_0xdf38('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xdf38('0x4'));var fs=require('fs');var path=require(_0xdf38('0x5'));var rimraf=require(_0xdf38('0x6'));var config=require(_0xdf38('0x7'));var attributes=require(_0xdf38('0x8'));module[_0xdf38('0x9')]=function(_0x5b85b2,_0x46a1d3){return _0x5b85b2[_0xdf38('0xa')](_0xdf38('0xb'),attributes,{'tableName':'tools_conditions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ae9=['ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','debug','Condition,\x20%s,\x20%s,\x20%s','stringify','error','message','Condition,\x20%s,\x20%s','lodash','util','moment','bluebird','randomstring'];(function(_0x18578b,_0x327691){var _0x24b2a3=function(_0xda6492){while(--_0xda6492){_0x18578b['push'](_0x18578b['shift']());}};_0x24b2a3(++_0x327691);}(_0x3ae9,0xab));var _0x93ae=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0x3ae9[_0x2763f2];return _0x3ef471;};'use strict';var _=require(_0x93ae('0x0'));var util=require(_0x93ae('0x1'));var moment=require(_0x93ae('0x2'));var BPromise=require(_0x93ae('0x3'));var rs=require(_0x93ae('0x4'));var fs=require('fs');var Redis=require(_0x93ae('0x5'));var db=require(_0x93ae('0x6'))['db'];var utils=require(_0x93ae('0x7'));var logger=require('../../config/logger')(_0x93ae('0x8'));var config=require(_0x93ae('0x9'));var jayson=require(_0x93ae('0xa'));var client=jayson[_0x93ae('0xb')][_0x93ae('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x5094cb,_0x278057,_0x11ccdf){return new BPromise(function(_0x34fcaa,_0x195dda){return client[_0x93ae('0xd')](_0x5094cb,_0x11ccdf)[_0x93ae('0xe')](function(_0x1252db){logger['info']('Condition,\x20%s,\x20%s',_0x278057,_0x93ae('0xf'));logger[_0x93ae('0x10')](_0x93ae('0x11'),_0x278057,_0x93ae('0xf'),JSON[_0x93ae('0x12')](_0x1252db));if(_0x1252db[_0x93ae('0x13')]){if(_0x1252db[_0x93ae('0x13')]['code']===0x1f4){logger['error']('Condition,\x20%s,\x20%s',_0x278057,_0x1252db[_0x93ae('0x13')]['message']);return _0x195dda(_0x1252db['error']['message']);}logger[_0x93ae('0x13')]('Condition,\x20%s,\x20%s',_0x278057,_0x1252db['error']['message']);return _0x34fcaa(_0x1252db[_0x93ae('0x13')][_0x93ae('0x14')]);}else{logger['info'](_0x93ae('0x15'),_0x278057,_0x93ae('0xf'));_0x34fcaa(_0x1252db['result'][_0x93ae('0x14')]);}})['catch'](function(_0x23dee7){logger[_0x93ae('0x13')]('Condition,\x20%s,\x20%s',_0x278057,_0x23dee7);_0x195dda(_0x23dee7);});});}
\ No newline at end of file
+var _0x5dc8=['message','info','result','catch','lodash','util','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','then','Condition,\x20%s,\x20%s','Condition,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error'];(function(_0x2eec2c,_0x150f96){var _0x5c2f6a=function(_0x4cf97c){while(--_0x4cf97c){_0x2eec2c['push'](_0x2eec2c['shift']());}};_0x5c2f6a(++_0x150f96);}(_0x5dc8,0x1d0));var _0x85dc=function(_0x4dda69,_0x2a0fe4){_0x4dda69=_0x4dda69-0x0;var _0x9014a9=_0x5dc8[_0x4dda69];return _0x9014a9;};'use strict';var _=require(_0x85dc('0x0'));var util=require(_0x85dc('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x85dc('0x2'));var db=require(_0x85dc('0x3'))['db'];var utils=require(_0x85dc('0x4'));var logger=require(_0x85dc('0x5'))(_0x85dc('0x6'));var config=require(_0x85dc('0x7'));var jayson=require(_0x85dc('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1eaec5,_0x40558f,_0x45de86){return new BPromise(function(_0x4d0ac9,_0x14a8d3){return client['request'](_0x1eaec5,_0x45de86)[_0x85dc('0x9')](function(_0x1d5fd5){logger['info'](_0x85dc('0xa'),_0x40558f,'request\x20sent');logger['debug'](_0x85dc('0xb'),_0x40558f,_0x85dc('0xc'),JSON[_0x85dc('0xd')](_0x1d5fd5));if(_0x1d5fd5['error']){if(_0x1d5fd5['error'][_0x85dc('0xe')]===0x1f4){logger[_0x85dc('0xf')](_0x85dc('0xa'),_0x40558f,_0x1d5fd5[_0x85dc('0xf')]['message']);return _0x14a8d3(_0x1d5fd5[_0x85dc('0xf')][_0x85dc('0x10')]);}logger['error']('Condition,\x20%s,\x20%s',_0x40558f,_0x1d5fd5[_0x85dc('0xf')][_0x85dc('0x10')]);return _0x4d0ac9(_0x1d5fd5['error'][_0x85dc('0x10')]);}else{logger[_0x85dc('0x11')](_0x85dc('0xa'),_0x40558f,_0x85dc('0xc'));_0x4d0ac9(_0x1d5fd5[_0x85dc('0x12')][_0x85dc('0x10')]);}})[_0x85dc('0x13')](function(_0x33f234){logger[_0x85dc('0xf')](_0x85dc('0xa'),_0x40558f,_0x33f234);_0x14a8d3(_0x33f234);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd247=['destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./condition.controller','isAuthenticated','update'];(function(_0x11212c,_0x1a2428){var _0x14548e=function(_0x1b6104){while(--_0x1b6104){_0x11212c['push'](_0x11212c['shift']());}};_0x14548e(++_0x1a2428);}(_0xd247,0x188));var _0x7d24=function(_0x569744,_0x30c532){_0x569744=_0x569744-0x0;var _0x57e918=_0xd247[_0x569744];return _0x57e918;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7d24('0x0'));var timeout=require(_0x7d24('0x1'));var express=require(_0x7d24('0x2'));var router=express[_0x7d24('0x3')]();var fs_extra=require(_0x7d24('0x4'));var auth=require(_0x7d24('0x5'));var interaction=require(_0x7d24('0x6'));var config=require(_0x7d24('0x7'));var controller=require(_0x7d24('0x8'));router['put']('/:id',auth[_0x7d24('0x9')](),controller[_0x7d24('0xa')]);router['delete']('/:id',auth[_0x7d24('0x9')](),controller[_0x7d24('0xb')]);module[_0x7d24('0xc')]=router;
\ No newline at end of file
+var _0x7fe7=['destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated','delete'];(function(_0x35caa8,_0x100229){var _0x72dcf0=function(_0x29571a){while(--_0x29571a){_0x35caa8['push'](_0x35caa8['shift']());}};_0x72dcf0(++_0x100229);}(_0x7fe7,0x1a6));var _0x77fe=function(_0x75ad68,_0xc75b2a){_0x75ad68=_0x75ad68-0x0;var _0x469c7d=_0x7fe7[_0x75ad68];return _0x469c7d;};'use strict';var multer=require(_0x77fe('0x0'));var util=require(_0x77fe('0x1'));var path=require(_0x77fe('0x2'));var timeout=require(_0x77fe('0x3'));var express=require('express');var router=express[_0x77fe('0x4')]();var fs_extra=require(_0x77fe('0x5'));var auth=require(_0x77fe('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x77fe('0x7'));var controller=require(_0x77fe('0x8'));router[_0x77fe('0x9')](_0x77fe('0xa'),auth[_0x77fe('0xb')](),controller['update']);router[_0x77fe('0xc')](_0x77fe('0xa'),auth[_0x77fe('0xb')](),controller[_0x77fe('0xd')]);module[_0x77fe('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['STRING','sequelize','exports'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xe706,0xa3));var _0x6e70=function(_0x3e0191,_0x1d4b20){_0x3e0191=_0x3e0191-0x0;var _0xf2ae83=_0xe706[_0x3e0191];return _0xf2ae83;};'use strict';var Sequelize=require(_0x6e70('0x0'));module[_0x6e70('0x1')]={'name':{'type':Sequelize[_0x6e70('0x2')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize[_0x6e70('0x2')]}};
\ No newline at end of file
+var _0x757a=['exports','STRING'];(function(_0x1e822a,_0x12dcb1){var _0x1b7404=function(_0x51dd3c){while(--_0x51dd3c){_0x1e822a['push'](_0x1e822a['shift']());}};_0x1b7404(++_0x12dcb1);}(_0x757a,0xde));var _0xa757=function(_0x25273f,_0x36b3e6){_0x25273f=_0x25273f-0x0;var _0x55f768=_0x757a[_0x25273f];return _0x55f768;};'use strict';var Sequelize=require('sequelize');module[_0xa757('0x0')]={'name':{'type':Sequelize[_0xa757('0x1')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f4a=['rawAttributes','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','params','omit','createdAt','updatedAt','iframe','attrUrl','attrs','https://','custom','attrPath','value','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','DashboardId','getItems','findOne','DashboardItem','pick','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./dashboard.socket','register','sendStatus','status','json','limit','undefined','count','offset','set','Content-Range','reject','save','update','then','destroy','get','CustomDashboards','stack','name','send','index','map','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','Dashboard','includeAll','include','findAll','rows','catch','show'];(function(_0x4e19e4,_0x27e57b){var _0xfc3224=function(_0x328fb1){while(--_0x328fb1){_0x4e19e4['push'](_0x4e19e4['shift']());}};_0xfc3224(++_0x27e57b);}(_0x8f4a,0x126));var _0xa8f4=function(_0x31f9e9,_0x72a5c6){_0x31f9e9=_0x31f9e9-0x0;var _0x5ed409=_0x8f4a[_0x31f9e9];return _0x5ed409;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa8f4('0x0'));var rp=require(_0xa8f4('0x1'));var moment=require(_0xa8f4('0x2'));var BPromise=require(_0xa8f4('0x3'));var Mustache=require(_0xa8f4('0x4'));var util=require(_0xa8f4('0x5'));var path=require(_0xa8f4('0x6'));var sox=require(_0xa8f4('0x7'));var csv=require(_0xa8f4('0x8'));var ejs=require(_0xa8f4('0x9'));var fs=require('fs');var fs_extra=require(_0xa8f4('0xa'));var _=require(_0xa8f4('0xb'));var squel=require('squel');var crypto=require(_0xa8f4('0xc'));var jsforce=require(_0xa8f4('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xa8f4('0x8'));var querystring=require(_0xa8f4('0xe'));var Papa=require(_0xa8f4('0xf'));var Redis=require(_0xa8f4('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xa8f4('0x11'));var as=require(_0xa8f4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa8f4('0x13'))(_0xa8f4('0x14'));var utils=require('../../config/utils');var config=require(_0xa8f4('0x15'));var licenseUtil=require(_0xa8f4('0x16'));var db=require(_0xa8f4('0x17'))['db'];config[_0xa8f4('0x18')]=_[_0xa8f4('0x19')](config[_0xa8f4('0x18')],{'host':'localhost','port':0x18eb});var socket=require(_0xa8f4('0x1a'))(new Redis(config[_0xa8f4('0x18')]));require(_0xa8f4('0x1b'))[_0xa8f4('0x1c')](socket);function respondWithStatusCode(_0x3bc352,_0x1f7b56){_0x1f7b56=_0x1f7b56||0xcc;return function(_0x3a80e9){if(_0x3a80e9){return _0x3bc352[_0xa8f4('0x1d')](_0x1f7b56);}return _0x3bc352[_0xa8f4('0x1e')](_0x1f7b56)['end']();};}function respondWithResult(_0x48e64d,_0x4f885c){_0x4f885c=_0x4f885c||0xc8;return function(_0xd126a4){if(_0xd126a4){return _0x48e64d[_0xa8f4('0x1e')](_0x4f885c)[_0xa8f4('0x1f')](_0xd126a4);}};}function respondWithFilteredResult(_0x579685,_0x343a6c){return function(_0x2426a5){if(_0x2426a5){var _0x422149=typeof _0x343a6c['offset']==='undefined'&&typeof _0x343a6c[_0xa8f4('0x20')]===_0xa8f4('0x21');var _0x166181=_0x2426a5[_0xa8f4('0x22')];var _0x2df806=_0x422149?0x0:_0x343a6c[_0xa8f4('0x23')];var _0x16f67f=_0x422149?_0x2426a5['count']:_0x343a6c[_0xa8f4('0x23')]+_0x343a6c[_0xa8f4('0x20')];var _0x5237bf;if(_0x16f67f>=_0x166181){_0x16f67f=_0x166181;_0x5237bf=0xc8;}else{_0x5237bf=0xce;}_0x579685[_0xa8f4('0x1e')](_0x5237bf);return _0x579685[_0xa8f4('0x24')](_0xa8f4('0x25'),_0x2df806+'-'+_0x16f67f+'/'+_0x166181)[_0xa8f4('0x1f')](_0x2426a5);}return null;};}function patchUpdates(_0x14a49d){return function(_0x93b04f){try{jsonpatch['apply'](_0x93b04f,_0x14a49d,!![]);}catch(_0x5d52f2){return BPromise[_0xa8f4('0x26')](_0x5d52f2);}return _0x93b04f[_0xa8f4('0x27')]();};}function saveUpdates(_0x176fe6,_0x5518d7){return function(_0x4cd4b8){if(_0x4cd4b8){return _0x4cd4b8[_0xa8f4('0x28')](_0x176fe6)[_0xa8f4('0x29')](function(_0x58f4e2){return _0x58f4e2;});}return null;};}function removeEntity(_0x28e9a8,_0x4247b6){return function(_0x29f6c0){if(_0x29f6c0){return _0x29f6c0[_0xa8f4('0x2a')]()[_0xa8f4('0x29')](function(){var _0x4ccfee=_0x29f6c0[_0xa8f4('0x2b')]({'plain':!![]});var _0x15d75c=_0xa8f4('0x2c');return db['UserProfileResource'][_0xa8f4('0x2a')]({'where':{'type':_0x15d75c,'resourceId':_0x4ccfee['id']}})[_0xa8f4('0x29')](function(){return _0x29f6c0;});})[_0xa8f4('0x29')](function(){_0x28e9a8[_0xa8f4('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4de6c1,_0x290445){return function(_0x2fdf18){if(!_0x2fdf18){_0x4de6c1['sendStatus'](0x194);}return _0x2fdf18;};}function handleError(_0xbf93a7,_0xa03807){_0xa03807=_0xa03807||0x1f4;return function(_0x23289b){logger['error'](_0x23289b[_0xa8f4('0x2d')]);if(_0x23289b[_0xa8f4('0x2e')]){delete _0x23289b[_0xa8f4('0x2e')];}_0xbf93a7['status'](_0xa03807)[_0xa8f4('0x2f')](_0x23289b);};}exports[_0xa8f4('0x30')]=function(_0x206c77,_0x2b5275){var _0x392281={},_0x4af67a={},_0x4f701c={'count':0x0,'rows':[]};var _0x3292fd=_[_0xa8f4('0x31')](db['Dashboard']['rawAttributes'],function(_0x691a5){return{'name':_0x691a5['fieldName'],'type':_0x691a5[_0xa8f4('0x32')][_0xa8f4('0x33')]};});_0x4af67a['model']=_[_0xa8f4('0x31')](_0x3292fd,_0xa8f4('0x2e'));_0x4af67a[_0xa8f4('0x34')]=_[_0xa8f4('0x35')](_0x206c77[_0xa8f4('0x34')]);_0x4af67a['filters']=_[_0xa8f4('0x36')](_0x4af67a[_0xa8f4('0x37')],_0x4af67a[_0xa8f4('0x34')]);_0x392281[_0xa8f4('0x38')]=_[_0xa8f4('0x36')](_0x4af67a['model'],qs[_0xa8f4('0x39')](_0x206c77['query']['fields']));_0x392281[_0xa8f4('0x38')]=_0x392281[_0xa8f4('0x38')][_0xa8f4('0x3a')]?_0x392281[_0xa8f4('0x38')]:_0x4af67a[_0xa8f4('0x37')];if(!_0x206c77[_0xa8f4('0x34')][_0xa8f4('0x3b')](_0xa8f4('0x3c'))){_0x392281[_0xa8f4('0x20')]=qs[_0xa8f4('0x20')](_0x206c77['query'][_0xa8f4('0x20')]);_0x392281[_0xa8f4('0x23')]=qs[_0xa8f4('0x23')](_0x206c77[_0xa8f4('0x34')][_0xa8f4('0x23')]);}_0x392281[_0xa8f4('0x3d')]=qs[_0xa8f4('0x3e')](_0x206c77[_0xa8f4('0x34')][_0xa8f4('0x3e')]);_0x392281[_0xa8f4('0x3f')]=qs[_0xa8f4('0x40')](_['pick'](_0x206c77['query'],_0x4af67a[_0xa8f4('0x40')]),_0x3292fd);if(_0x206c77[_0xa8f4('0x34')][_0xa8f4('0x41')]){_0x392281['where']=_[_0xa8f4('0x42')](_0x392281[_0xa8f4('0x3f')],{'$or':_['map'](_0x3292fd,function(_0x4f8231){if(_0x4f8231[_0xa8f4('0x32')]!==_0xa8f4('0x43')){var _0xc85678={};_0xc85678[_0x4f8231[_0xa8f4('0x2e')]]={'$like':'%'+_0x206c77[_0xa8f4('0x34')][_0xa8f4('0x41')]+'%'};return _0xc85678;}})});}_0x392281=_[_0xa8f4('0x42')]({},_0x392281,_0x206c77['options']);var _0x3fdb88={'where':_0x392281[_0xa8f4('0x3f')]};return db[_0xa8f4('0x44')][_0xa8f4('0x22')](_0x3fdb88)['then'](function(_0x4fb868){_0x4f701c[_0xa8f4('0x22')]=_0x4fb868;if(_0x206c77[_0xa8f4('0x34')][_0xa8f4('0x45')]){_0x392281[_0xa8f4('0x46')]=[{'all':!![]}];}return db[_0xa8f4('0x44')][_0xa8f4('0x47')](_0x392281);})[_0xa8f4('0x29')](function(_0x425b1d){_0x4f701c[_0xa8f4('0x48')]=_0x425b1d;return _0x4f701c;})[_0xa8f4('0x29')](respondWithFilteredResult(_0x2b5275,_0x392281))[_0xa8f4('0x49')](handleError(_0x2b5275,null));};exports[_0xa8f4('0x4a')]=function(_0x31b899,_0xc2660){var _0x2b24f9={'raw':![],'where':{'id':_0x31b899['params']['id']}},_0x118875={};_0x118875[_0xa8f4('0x37')]=_[_0xa8f4('0x35')](db['Dashboard'][_0xa8f4('0x4b')]);_0x118875[_0xa8f4('0x34')]=_[_0xa8f4('0x35')](_0x31b899[_0xa8f4('0x34')]);_0x118875[_0xa8f4('0x40')]=_[_0xa8f4('0x36')](_0x118875['model'],_0x118875[_0xa8f4('0x34')]);_0x2b24f9['attributes']=_['intersection'](_0x118875['model'],qs[_0xa8f4('0x39')](_0x31b899[_0xa8f4('0x34')][_0xa8f4('0x39')]));_0x2b24f9[_0xa8f4('0x38')]=_0x2b24f9[_0xa8f4('0x38')][_0xa8f4('0x3a')]?_0x2b24f9[_0xa8f4('0x38')]:_0x118875[_0xa8f4('0x37')];if(_0x31b899[_0xa8f4('0x34')][_0xa8f4('0x45')]){_0x2b24f9['include']=[{'all':!![]}];}_0x2b24f9=_[_0xa8f4('0x42')]({},_0x2b24f9,_0x31b899[_0xa8f4('0x4c')]);return db['Dashboard'][_0xa8f4('0x4d')](_0x2b24f9)[_0xa8f4('0x29')](handleEntityNotFound(_0xc2660,null))[_0xa8f4('0x29')](respondWithResult(_0xc2660,null))[_0xa8f4('0x49')](handleError(_0xc2660,null));};exports[_0xa8f4('0x4e')]=function(_0x57d215,_0x2c6f59){return db[_0xa8f4('0x44')][_0xa8f4('0x4e')](_0x57d215[_0xa8f4('0x4f')],{})[_0xa8f4('0x29')](function(_0x386f0e){var _0x492555=_0x57d215[_0xa8f4('0x50')][_0xa8f4('0x2b')]({'plain':!![]});if(!_0x492555)throw new Error(_0xa8f4('0x51'));if(_0x492555[_0xa8f4('0x52')]==='user'){var _0x385e1f=_0x386f0e[_0xa8f4('0x2b')]({'plain':!![]});var _0x2f9a58='CustomDashboards';return db[_0xa8f4('0x53')]['find']({'where':{'name':_0x2f9a58,'userProfileId':_0x492555['userProfileId']},'raw':!![]})[_0xa8f4('0x29')](function(_0x250c39){if(_0x250c39&&_0x250c39[_0xa8f4('0x54')]===0x0){return db[_0xa8f4('0x55')][_0xa8f4('0x4e')]({'name':_0x385e1f['name'],'resourceId':_0x385e1f['id'],'type':_0x250c39[_0xa8f4('0x2e')],'sectionId':_0x250c39['id']},{})[_0xa8f4('0x29')](function(){return _0x386f0e;});}else{return _0x386f0e;}})[_0xa8f4('0x49')](function(_0x22d192){logger[_0xa8f4('0x56')](_0xa8f4('0x57'),_0x22d192);throw _0x22d192;});}return _0x386f0e;})[_0xa8f4('0x29')](respondWithResult(_0x2c6f59,0xc9))[_0xa8f4('0x49')](handleError(_0x2c6f59,null));};exports[_0xa8f4('0x58')]=function(_0x5c34f2,_0x2958a3){var _0x29ae01={'where':{'id':_0x5c34f2[_0xa8f4('0x59')]['id']}},_0x52c21f={};_0x52c21f[_0xa8f4('0x37')]=_[_0xa8f4('0x35')](db[_0xa8f4('0x44')]['rawAttributes']);_0x29ae01[_0xa8f4('0x38')]=_[_0xa8f4('0x36')](_0x52c21f[_0xa8f4('0x37')],qs[_0xa8f4('0x39')](_0x5c34f2[_0xa8f4('0x34')][_0xa8f4('0x39')]));_0x29ae01[_0xa8f4('0x38')]=_0x29ae01[_0xa8f4('0x38')][_0xa8f4('0x3a')]?_0x29ae01[_0xa8f4('0x38')]:_0x52c21f['model'];if(_0x5c34f2[_0xa8f4('0x34')][_0xa8f4('0x45')]){_0x29ae01[_0xa8f4('0x46')]=[{'all':!![]}];}_0x29ae01=_[_0xa8f4('0x42')]({},_0x29ae01,_0x5c34f2['options']);return db['Dashboard'][_0xa8f4('0x4d')](_0x29ae01)[_0xa8f4('0x29')](handleEntityNotFound(_0x2958a3,null))['then'](function(_0x17fd37){if(_0x17fd37){var _0x301d6e=_0x17fd37[_0xa8f4('0x2b')]({'plain':!![]});_0x301d6e=qs[_0xa8f4('0x5a')](_0x301d6e,['id',_0xa8f4('0x5b'),_0xa8f4('0x5c')]);_0x5c34f2[_0xa8f4('0x4f')]=_[_0xa8f4('0x5a')](_0x5c34f2[_0xa8f4('0x4f')],['id',_0xa8f4('0x5b'),_0xa8f4('0x5c')]);return db[_0xa8f4('0x44')][_0xa8f4('0x4e')](_[_0xa8f4('0x42')](_0x301d6e,_0x5c34f2[_0xa8f4('0x4f')]),{'include':_0x5c34f2[_0xa8f4('0x34')][_0xa8f4('0x45')]?[{'all':!![]}]:undefined})['then'](function(_0x5e6b0f){var _0x34bafd=_0x5c34f2[_0xa8f4('0x50')][_0xa8f4('0x2b')]({'plain':!![]});if(!_0x34bafd)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x34bafd[_0xa8f4('0x52')]===_0xa8f4('0x50')){var _0x59f2f7=_0x5e6b0f[_0xa8f4('0x2b')]({'plain':!![]});var _0x3a4fcc=_0xa8f4('0x2c');return db[_0xa8f4('0x53')][_0xa8f4('0x4d')]({'where':{'name':_0x3a4fcc,'userProfileId':_0x34bafd['userProfileId']},'raw':!![]})[_0xa8f4('0x29')](function(_0x5c1d97){if(_0x5c1d97&&_0x5c1d97[_0xa8f4('0x54')]===0x0){return db['UserProfileResource']['create']({'name':_0x59f2f7[_0xa8f4('0x2e')],'resourceId':_0x59f2f7['id'],'type':_0x5c1d97[_0xa8f4('0x2e')],'sectionId':_0x5c1d97['id']},{})[_0xa8f4('0x29')](function(){return _0x5e6b0f;});}else{return _0x5e6b0f;}})[_0xa8f4('0x49')](function(_0x1cebf8){logger['error'](_0xa8f4('0x57'),_0x1cebf8);throw _0x1cebf8;});}return _0x5e6b0f;});}})[_0xa8f4('0x29')](respondWithResult(_0x2958a3,0xc9))[_0xa8f4('0x49')](handleError(_0x2958a3,null));};exports[_0xa8f4('0x28')]=function(_0x546023,_0x142909){if(_0x546023[_0xa8f4('0x4f')]['id']){delete _0x546023[_0xa8f4('0x4f')]['id'];}return db[_0xa8f4('0x44')][_0xa8f4('0x4d')]({'where':{'id':_0x546023['params']['id']}})[_0xa8f4('0x29')](handleEntityNotFound(_0x142909,null))['then'](saveUpdates(_0x546023[_0xa8f4('0x4f')],null))[_0xa8f4('0x29')](respondWithResult(_0x142909,null))['catch'](handleError(_0x142909,null));};exports[_0xa8f4('0x2a')]=function(_0x5f3662,_0x1c5a3f){return db[_0xa8f4('0x44')][_0xa8f4('0x4d')]({'where':{'id':_0x5f3662[_0xa8f4('0x59')]['id']}})['then'](handleEntityNotFound(_0x1c5a3f,null))[_0xa8f4('0x29')](removeEntity(_0x1c5a3f,null))[_0xa8f4('0x49')](handleError(_0x1c5a3f,null));};function widgetAttributes(_0x2566db){try{switch(_0x2566db[_0xa8f4('0x32')]){case _0xa8f4('0x5d'):return[{'name':_0xa8f4('0x5e'),'value':_0x2566db[_0xa8f4('0x5e')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x0]?_0x2566db['attrs'][0x0]['value']:undefined)||_0xa8f4('0x60')}];case _0xa8f4('0x61'):return[{'name':'attrPath','value':_0x2566db[_0xa8f4('0x62')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x0]?_0x2566db[_0xa8f4('0x5f')][0x0][_0xa8f4('0x63')]:undefined)||''}];case'clock':return[{'name':_0xa8f4('0x64'),'value':_0x2566db['attrHourFormat']||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db['attrs'][0x0]?_0x2566db['attrs'][0x0][_0xa8f4('0x63')]:undefined)||_0xa8f4('0x65')},{'name':_0xa8f4('0x66'),'value':_0x2566db['attrTimezone']||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db['attrs'][0x1]?_0x2566db[_0xa8f4('0x5f')][0x1]['value']:undefined)||'0.00'},{'name':_0xa8f4('0x67'),'value':_0x2566db[_0xa8f4('0x67')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db['attrs'][0x2]?_0x2566db[_0xa8f4('0x5f')][0x2][_0xa8f4('0x63')]:undefined)||0xc}];case _0xa8f4('0x68'):return[{'name':_0xa8f4('0x69'),'value':_0x2566db[_0xa8f4('0x69')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db['attrs'][0x0]?_0x2566db[_0xa8f4('0x5f')][0x0][_0xa8f4('0x63')]:undefined)||_0xa8f4('0x6a')},{'name':'attrVoiceQueues','value':_0x2566db[_0xa8f4('0x6b')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x1]?_0x2566db[_0xa8f4('0x5f')][0x1][_0xa8f4('0x63')]:undefined)||[]},{'name':'attrFontSize','value':_0x2566db[_0xa8f4('0x67')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x2]?_0x2566db['attrs'][0x2][_0xa8f4('0x63')]:undefined)||0x14}];case'multibar-chart':case _0xa8f4('0x6c'):return[{'name':_0xa8f4('0x6d'),'value':_0x2566db[_0xa8f4('0x6d')]||(_0x2566db['attrs']&&_0x2566db[_0xa8f4('0x5f')][0x0]?_0x2566db[_0xa8f4('0x5f')][0x0]['value']:undefined)||'total'},{'name':_0xa8f4('0x6e'),'value':_0x2566db[_0xa8f4('0x6e')]||(_0x2566db['attrs']&&_0x2566db[_0xa8f4('0x5f')][0x1]?_0x2566db[_0xa8f4('0x5f')][0x1]['value']:undefined)||null},{'name':_0xa8f4('0x6f'),'value':_0x2566db['attrSerie3']||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x2]?_0x2566db['attrs'][0x2]['value']:undefined)||null},{'name':_0xa8f4('0x6b'),'value':_0x2566db[_0xa8f4('0x6b')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x3]?_0x2566db[_0xa8f4('0x5f')][0x3]['value']:undefined)||[]}];case _0xa8f4('0x70'):return[{'name':_0xa8f4('0x71'),'type':_0x2566db[_0xa8f4('0x72')]||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db['attrs'][0x0]?_0x2566db[_0xa8f4('0x5f')][0x0][_0xa8f4('0x32')]:undefined)||null,'value':_0x2566db['attrReport']||(_0x2566db[_0xa8f4('0x5f')]&&_0x2566db[_0xa8f4('0x5f')][0x0]?_0x2566db[_0xa8f4('0x5f')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x2566db[_0xa8f4('0x73')]||(_0x2566db['attrs']&&_0x2566db[_0xa8f4('0x5f')][0x1]?_0x2566db[_0xa8f4('0x5f')][0x1][_0xa8f4('0x63')]:undefined)||0x0}];default:return[];}}catch(_0x323a27){logger[_0xa8f4('0x56')](_0xa8f4('0x74'),JSON[_0xa8f4('0x75')](_0x323a27));return[];}}exports['addItem']=function(_0x1ee7eb,_0x26e601,_0x263cf5){if(_0x1ee7eb[_0xa8f4('0x4f')]['id']){delete _0x1ee7eb['body']['id'];}return db[_0xa8f4('0x44')]['find']({'where':{'id':_0x1ee7eb[_0xa8f4('0x59')]['id']}})[_0xa8f4('0x29')](handleEntityNotFound(_0x26e601,null))[_0xa8f4('0x29')](function(_0x4c05a2){if(_0x4c05a2){_0x1ee7eb['body'][_0xa8f4('0x76')]=_0x4c05a2['id'];_0x1ee7eb[_0xa8f4('0x4f')][_0xa8f4('0x5f')]=widgetAttributes(_0x1ee7eb[_0xa8f4('0x4f')]);return db['DashboardItem'][_0xa8f4('0x4e')](_0x1ee7eb[_0xa8f4('0x4f')]);}})[_0xa8f4('0x29')](respondWithResult(_0x26e601,null))[_0xa8f4('0x49')](handleError(_0x26e601,null));};exports[_0xa8f4('0x77')]=function(_0x5eee55,_0x223e83,_0xa98248){var _0x2c3d15={};var _0x5bd9c4={};var _0x313ab6;var _0x23bbd7;return db[_0xa8f4('0x44')][_0xa8f4('0x78')]({'where':{'id':_0x5eee55[_0xa8f4('0x59')]['id']}})[_0xa8f4('0x29')](handleEntityNotFound(_0x223e83,null))[_0xa8f4('0x29')](function(_0x487839){if(_0x487839){_0x313ab6=_0x487839;_0x5bd9c4[_0xa8f4('0x37')]=_['keys'](db[_0xa8f4('0x79')][_0xa8f4('0x4b')]);_0x5bd9c4['query']=_[_0xa8f4('0x35')](_0x5eee55['query']);_0x5bd9c4[_0xa8f4('0x40')]=_['intersection'](_0x5bd9c4[_0xa8f4('0x37')],_0x5bd9c4[_0xa8f4('0x34')]);_0x2c3d15[_0xa8f4('0x38')]=_[_0xa8f4('0x36')](_0x5bd9c4[_0xa8f4('0x37')],qs[_0xa8f4('0x39')](_0x5eee55[_0xa8f4('0x34')][_0xa8f4('0x39')]));_0x2c3d15[_0xa8f4('0x38')]=_0x2c3d15[_0xa8f4('0x38')][_0xa8f4('0x3a')]?_0x2c3d15[_0xa8f4('0x38')]:_0x5bd9c4['model'];_0x2c3d15[_0xa8f4('0x3d')]=qs['sort'](_0x5eee55[_0xa8f4('0x34')][_0xa8f4('0x3e')]);_0x2c3d15[_0xa8f4('0x3f')]=qs[_0xa8f4('0x40')](_[_0xa8f4('0x7a')](_0x5eee55[_0xa8f4('0x34')],_0x5bd9c4['filters']));if(_0x5eee55[_0xa8f4('0x34')][_0xa8f4('0x41')]){_0x2c3d15['where']=_[_0xa8f4('0x42')](_0x2c3d15[_0xa8f4('0x3f')],{'$or':_[_0xa8f4('0x31')](_0x2c3d15['attributes'],function(_0x100e1e){var _0x5e91ba={};_0x5e91ba[_0x100e1e]={'$like':'%'+_0x5eee55[_0xa8f4('0x34')]['filter']+'%'};return _0x5e91ba;})});}_0x2c3d15=_[_0xa8f4('0x42')]({},_0x2c3d15,_0x5eee55['options']);return _0x313ab6['getItems'](_0x2c3d15);}})['then'](function(_0x38f00c){if(_0x38f00c){_0x23bbd7=_0x38f00c[_0xa8f4('0x3a')];if(!_0x5eee55[_0xa8f4('0x34')][_0xa8f4('0x3b')](_0xa8f4('0x3c'))){_0x2c3d15[_0xa8f4('0x20')]=qs[_0xa8f4('0x20')](_0x5eee55[_0xa8f4('0x34')][_0xa8f4('0x20')]);_0x2c3d15[_0xa8f4('0x23')]=qs['offset'](_0x5eee55[_0xa8f4('0x34')][_0xa8f4('0x23')]);}return _0x313ab6[_0xa8f4('0x77')](_0x2c3d15);}})[_0xa8f4('0x29')](function(_0x2e8b82){if(_0x2e8b82){return _0x2e8b82?{'count':_0x23bbd7,'rows':_0x2e8b82}:null;}})['then'](respondWithResult(_0x223e83,null))[_0xa8f4('0x49')](handleError(_0x223e83,null));};
\ No newline at end of file
+var _0x6cbd=['count','set','Content-Range','apply','reject','save','update','destroy','then','UserProfileResource','error','name','index','map','Dashboard','rawAttributes','fieldName','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','filter','merge','options','includeAll','findAll','rows','show','params','include','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','CustomDashboards','UserProfileSection','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','omit','createdAt','updatedAt','userProfileId','autoAssociation','type','iframe','attrUrl','attrs','value','https://','custom','attrPath','attrHourFormat','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','getItems','DashboardItem','nolimit','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','./dashboard.socket','register','sendStatus','end','status','json','offset','undefined','limit'];(function(_0x435fa1,_0x58550a){var _0x845f9f=function(_0x89867e){while(--_0x89867e){_0x435fa1['push'](_0x435fa1['shift']());}};_0x845f9f(++_0x58550a);}(_0x6cbd,0xca));var _0xd6cb=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x6cbd[_0x24061a];return _0x82054e;};'use strict';var emlformat=require(_0xd6cb('0x0'));var rimraf=require(_0xd6cb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xd6cb('0x2'));var moment=require(_0xd6cb('0x3'));var BPromise=require(_0xd6cb('0x4'));var Mustache=require(_0xd6cb('0x5'));var util=require(_0xd6cb('0x6'));var path=require('path');var sox=require(_0xd6cb('0x7'));var csv=require(_0xd6cb('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd6cb('0x9'));var squel=require(_0xd6cb('0xa'));var crypto=require(_0xd6cb('0xb'));var jsforce=require(_0xd6cb('0xc'));var deskjs=require(_0xd6cb('0xd'));var toCsv=require(_0xd6cb('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xd6cb('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xd6cb('0xf'));var as=require(_0xd6cb('0x10'));var hardwareService=require(_0xd6cb('0x11'));var logger=require(_0xd6cb('0x12'))('api');var utils=require(_0xd6cb('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xd6cb('0x14'));var db=require(_0xd6cb('0x15'))['db'];config['redis']=_[_0xd6cb('0x16')](config[_0xd6cb('0x17')],{'host':_0xd6cb('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd6cb('0x17')]));require(_0xd6cb('0x19'))[_0xd6cb('0x1a')](socket);function respondWithStatusCode(_0x3ef70c,_0x5cb003){_0x5cb003=_0x5cb003||0xcc;return function(_0x44317e){if(_0x44317e){return _0x3ef70c[_0xd6cb('0x1b')](_0x5cb003);}return _0x3ef70c['status'](_0x5cb003)[_0xd6cb('0x1c')]();};}function respondWithResult(_0x5e3255,_0x1cf08d){_0x1cf08d=_0x1cf08d||0xc8;return function(_0x4303eb){if(_0x4303eb){return _0x5e3255[_0xd6cb('0x1d')](_0x1cf08d)[_0xd6cb('0x1e')](_0x4303eb);}};}function respondWithFilteredResult(_0x341ef4,_0x1936ec){return function(_0x3c5b15){if(_0x3c5b15){var _0x55d058=typeof _0x1936ec[_0xd6cb('0x1f')]===_0xd6cb('0x20')&&typeof _0x1936ec[_0xd6cb('0x21')]===_0xd6cb('0x20');var _0x2bd395=_0x3c5b15[_0xd6cb('0x22')];var _0x3f0db1=_0x55d058?0x0:_0x1936ec[_0xd6cb('0x1f')];var _0x2497e5=_0x55d058?_0x3c5b15[_0xd6cb('0x22')]:_0x1936ec[_0xd6cb('0x1f')]+_0x1936ec[_0xd6cb('0x21')];var _0x4c487f;if(_0x2497e5>=_0x2bd395){_0x2497e5=_0x2bd395;_0x4c487f=0xc8;}else{_0x4c487f=0xce;}_0x341ef4[_0xd6cb('0x1d')](_0x4c487f);return _0x341ef4[_0xd6cb('0x23')](_0xd6cb('0x24'),_0x3f0db1+'-'+_0x2497e5+'/'+_0x2bd395)[_0xd6cb('0x1e')](_0x3c5b15);}return null;};}function patchUpdates(_0x486634){return function(_0x443c35){try{jsonpatch[_0xd6cb('0x25')](_0x443c35,_0x486634,!![]);}catch(_0xe032b7){return BPromise[_0xd6cb('0x26')](_0xe032b7);}return _0x443c35[_0xd6cb('0x27')]();};}function saveUpdates(_0x3a42b8,_0x4a77c4){return function(_0x3f3823){if(_0x3f3823){return _0x3f3823[_0xd6cb('0x28')](_0x3a42b8)['then'](function(_0x146797){return _0x146797;});}return null;};}function removeEntity(_0x2d4c5c,_0x2533e8){return function(_0x573fcb){if(_0x573fcb){return _0x573fcb[_0xd6cb('0x29')]()[_0xd6cb('0x2a')](function(){var _0x165e29=_0x573fcb['get']({'plain':!![]});var _0x3260f5='CustomDashboards';return db[_0xd6cb('0x2b')]['destroy']({'where':{'type':_0x3260f5,'resourceId':_0x165e29['id']}})[_0xd6cb('0x2a')](function(){return _0x573fcb;});})[_0xd6cb('0x2a')](function(){_0x2d4c5c[_0xd6cb('0x1d')](0xcc)[_0xd6cb('0x1c')]();});}};}function handleEntityNotFound(_0x98193e,_0x8fc9d6){return function(_0x13ab28){if(!_0x13ab28){_0x98193e[_0xd6cb('0x1b')](0x194);}return _0x13ab28;};}function handleError(_0x1b987e,_0x13230d){_0x13230d=_0x13230d||0x1f4;return function(_0x1fd407){logger[_0xd6cb('0x2c')](_0x1fd407['stack']);if(_0x1fd407[_0xd6cb('0x2d')]){delete _0x1fd407[_0xd6cb('0x2d')];}_0x1b987e[_0xd6cb('0x1d')](_0x13230d)['send'](_0x1fd407);};}exports[_0xd6cb('0x2e')]=function(_0x50de0a,_0x1c2df2){var _0x1a39ee={},_0x1f51f0={},_0xef3942={'count':0x0,'rows':[]};var _0x5f129a=_[_0xd6cb('0x2f')](db[_0xd6cb('0x30')][_0xd6cb('0x31')],function(_0x4abcf2){return{'name':_0x4abcf2[_0xd6cb('0x32')],'type':_0x4abcf2['type']['key']};});_0x1f51f0[_0xd6cb('0x33')]=_[_0xd6cb('0x2f')](_0x5f129a,_0xd6cb('0x2d'));_0x1f51f0[_0xd6cb('0x34')]=_[_0xd6cb('0x35')](_0x50de0a[_0xd6cb('0x34')]);_0x1f51f0['filters']=_[_0xd6cb('0x36')](_0x1f51f0[_0xd6cb('0x33')],_0x1f51f0['query']);_0x1a39ee[_0xd6cb('0x37')]=_[_0xd6cb('0x36')](_0x1f51f0['model'],qs[_0xd6cb('0x38')](_0x50de0a[_0xd6cb('0x34')][_0xd6cb('0x38')]));_0x1a39ee[_0xd6cb('0x37')]=_0x1a39ee[_0xd6cb('0x37')][_0xd6cb('0x39')]?_0x1a39ee['attributes']:_0x1f51f0['model'];if(!_0x50de0a[_0xd6cb('0x34')][_0xd6cb('0x3a')]('nolimit')){_0x1a39ee[_0xd6cb('0x21')]=qs[_0xd6cb('0x21')](_0x50de0a[_0xd6cb('0x34')]['limit']);_0x1a39ee[_0xd6cb('0x1f')]=qs[_0xd6cb('0x1f')](_0x50de0a[_0xd6cb('0x34')][_0xd6cb('0x1f')]);}_0x1a39ee[_0xd6cb('0x3b')]=qs[_0xd6cb('0x3c')](_0x50de0a['query']['sort']);_0x1a39ee[_0xd6cb('0x3d')]=qs[_0xd6cb('0x3e')](_['pick'](_0x50de0a[_0xd6cb('0x34')],_0x1f51f0[_0xd6cb('0x3e')]),_0x5f129a);if(_0x50de0a[_0xd6cb('0x34')][_0xd6cb('0x3f')]){_0x1a39ee[_0xd6cb('0x3d')]=_[_0xd6cb('0x40')](_0x1a39ee['where'],{'$or':_[_0xd6cb('0x2f')](_0x5f129a,function(_0x3a000d){if(_0x3a000d['type']!=='VIRTUAL'){var _0x55d905={};_0x55d905[_0x3a000d[_0xd6cb('0x2d')]]={'$like':'%'+_0x50de0a[_0xd6cb('0x34')][_0xd6cb('0x3f')]+'%'};return _0x55d905;}})});}_0x1a39ee=_['merge']({},_0x1a39ee,_0x50de0a[_0xd6cb('0x41')]);var _0x45c1f9={'where':_0x1a39ee[_0xd6cb('0x3d')]};return db['Dashboard'][_0xd6cb('0x22')](_0x45c1f9)['then'](function(_0x289782){_0xef3942[_0xd6cb('0x22')]=_0x289782;if(_0x50de0a['query'][_0xd6cb('0x42')]){_0x1a39ee['include']=[{'all':!![]}];}return db[_0xd6cb('0x30')][_0xd6cb('0x43')](_0x1a39ee);})[_0xd6cb('0x2a')](function(_0x5020dd){_0xef3942[_0xd6cb('0x44')]=_0x5020dd;return _0xef3942;})[_0xd6cb('0x2a')](respondWithFilteredResult(_0x1c2df2,_0x1a39ee))['catch'](handleError(_0x1c2df2,null));};exports[_0xd6cb('0x45')]=function(_0x3e3c0f,_0x4c1b1b){var _0x2e1a38={'raw':![],'where':{'id':_0x3e3c0f[_0xd6cb('0x46')]['id']}},_0x36a2c6={};_0x36a2c6[_0xd6cb('0x33')]=_['keys'](db[_0xd6cb('0x30')][_0xd6cb('0x31')]);_0x36a2c6[_0xd6cb('0x34')]=_[_0xd6cb('0x35')](_0x3e3c0f[_0xd6cb('0x34')]);_0x36a2c6[_0xd6cb('0x3e')]=_['intersection'](_0x36a2c6[_0xd6cb('0x33')],_0x36a2c6[_0xd6cb('0x34')]);_0x2e1a38[_0xd6cb('0x37')]=_[_0xd6cb('0x36')](_0x36a2c6[_0xd6cb('0x33')],qs[_0xd6cb('0x38')](_0x3e3c0f[_0xd6cb('0x34')][_0xd6cb('0x38')]));_0x2e1a38[_0xd6cb('0x37')]=_0x2e1a38[_0xd6cb('0x37')][_0xd6cb('0x39')]?_0x2e1a38[_0xd6cb('0x37')]:_0x36a2c6[_0xd6cb('0x33')];if(_0x3e3c0f[_0xd6cb('0x34')][_0xd6cb('0x42')]){_0x2e1a38[_0xd6cb('0x47')]=[{'all':!![]}];}_0x2e1a38=_[_0xd6cb('0x40')]({},_0x2e1a38,_0x3e3c0f['options']);return db[_0xd6cb('0x30')][_0xd6cb('0x48')](_0x2e1a38)[_0xd6cb('0x2a')](handleEntityNotFound(_0x4c1b1b,null))[_0xd6cb('0x2a')](respondWithResult(_0x4c1b1b,null))['catch'](handleError(_0x4c1b1b,null));};exports['create']=function(_0x1275b5,_0x5916ba){return db['Dashboard'][_0xd6cb('0x49')](_0x1275b5[_0xd6cb('0x4a')],{})[_0xd6cb('0x2a')](function(_0x3c3f37){var _0x199ca3=_0x1275b5[_0xd6cb('0x4b')][_0xd6cb('0x4c')]({'plain':!![]});if(!_0x199ca3)throw new Error(_0xd6cb('0x4d'));if(_0x199ca3[_0xd6cb('0x4e')]===_0xd6cb('0x4b')){var _0x509f5d=_0x3c3f37[_0xd6cb('0x4c')]({'plain':!![]});var _0x2cbeb0=_0xd6cb('0x4f');return db[_0xd6cb('0x50')]['find']({'where':{'name':_0x2cbeb0,'userProfileId':_0x199ca3['userProfileId']},'raw':!![]})['then'](function(_0x40cb56){if(_0x40cb56&&_0x40cb56['autoAssociation']===0x0){return db[_0xd6cb('0x2b')]['create']({'name':_0x509f5d[_0xd6cb('0x2d')],'resourceId':_0x509f5d['id'],'type':_0x40cb56[_0xd6cb('0x2d')],'sectionId':_0x40cb56['id']},{})[_0xd6cb('0x2a')](function(){return _0x3c3f37;});}else{return _0x3c3f37;}})[_0xd6cb('0x51')](function(_0x2b3d60){logger[_0xd6cb('0x2c')](_0xd6cb('0x52'),_0x2b3d60);throw _0x2b3d60;});}return _0x3c3f37;})[_0xd6cb('0x2a')](respondWithResult(_0x5916ba,0xc9))['catch'](handleError(_0x5916ba,null));};exports['clone']=function(_0x1afac8,_0x5cc1a3){var _0x10729b={'where':{'id':_0x1afac8['params']['id']}},_0x3a641a={};_0x3a641a['model']=_[_0xd6cb('0x35')](db[_0xd6cb('0x30')]['rawAttributes']);_0x10729b[_0xd6cb('0x37')]=_['intersection'](_0x3a641a[_0xd6cb('0x33')],qs[_0xd6cb('0x38')](_0x1afac8[_0xd6cb('0x34')][_0xd6cb('0x38')]));_0x10729b[_0xd6cb('0x37')]=_0x10729b[_0xd6cb('0x37')][_0xd6cb('0x39')]?_0x10729b[_0xd6cb('0x37')]:_0x3a641a[_0xd6cb('0x33')];if(_0x1afac8['query'][_0xd6cb('0x42')]){_0x10729b[_0xd6cb('0x47')]=[{'all':!![]}];}_0x10729b=_['merge']({},_0x10729b,_0x1afac8[_0xd6cb('0x41')]);return db[_0xd6cb('0x30')][_0xd6cb('0x48')](_0x10729b)['then'](handleEntityNotFound(_0x5cc1a3,null))['then'](function(_0x365573){if(_0x365573){var _0x240084=_0x365573[_0xd6cb('0x4c')]({'plain':!![]});_0x240084=qs[_0xd6cb('0x53')](_0x240084,['id',_0xd6cb('0x54'),_0xd6cb('0x55')]);_0x1afac8['body']=_[_0xd6cb('0x53')](_0x1afac8['body'],['id',_0xd6cb('0x54'),'updatedAt']);return db[_0xd6cb('0x30')][_0xd6cb('0x49')](_[_0xd6cb('0x40')](_0x240084,_0x1afac8[_0xd6cb('0x4a')]),{'include':_0x1afac8['query'][_0xd6cb('0x42')]?[{'all':!![]}]:undefined})[_0xd6cb('0x2a')](function(_0x21d78a){var _0x298959=_0x1afac8[_0xd6cb('0x4b')][_0xd6cb('0x4c')]({'plain':!![]});if(!_0x298959)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x298959[_0xd6cb('0x4e')]===_0xd6cb('0x4b')){var _0x39c357=_0x21d78a[_0xd6cb('0x4c')]({'plain':!![]});var _0x1e72f4=_0xd6cb('0x4f');return db[_0xd6cb('0x50')][_0xd6cb('0x48')]({'where':{'name':_0x1e72f4,'userProfileId':_0x298959[_0xd6cb('0x56')]},'raw':!![]})[_0xd6cb('0x2a')](function(_0x2d4d7f){if(_0x2d4d7f&&_0x2d4d7f[_0xd6cb('0x57')]===0x0){return db[_0xd6cb('0x2b')][_0xd6cb('0x49')]({'name':_0x39c357['name'],'resourceId':_0x39c357['id'],'type':_0x2d4d7f[_0xd6cb('0x2d')],'sectionId':_0x2d4d7f['id']},{})[_0xd6cb('0x2a')](function(){return _0x21d78a;});}else{return _0x21d78a;}})[_0xd6cb('0x51')](function(_0x5db14a){logger[_0xd6cb('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5db14a);throw _0x5db14a;});}return _0x21d78a;});}})[_0xd6cb('0x2a')](respondWithResult(_0x5cc1a3,0xc9))[_0xd6cb('0x51')](handleError(_0x5cc1a3,null));};exports['update']=function(_0x564c00,_0x2a318f){if(_0x564c00[_0xd6cb('0x4a')]['id']){delete _0x564c00['body']['id'];}return db[_0xd6cb('0x30')]['find']({'where':{'id':_0x564c00['params']['id']}})[_0xd6cb('0x2a')](handleEntityNotFound(_0x2a318f,null))[_0xd6cb('0x2a')](saveUpdates(_0x564c00[_0xd6cb('0x4a')],null))[_0xd6cb('0x2a')](respondWithResult(_0x2a318f,null))[_0xd6cb('0x51')](handleError(_0x2a318f,null));};exports['destroy']=function(_0x4cc500,_0x9b3dfb){return db[_0xd6cb('0x30')][_0xd6cb('0x48')]({'where':{'id':_0x4cc500['params']['id']}})[_0xd6cb('0x2a')](handleEntityNotFound(_0x9b3dfb,null))[_0xd6cb('0x2a')](removeEntity(_0x9b3dfb,null))['catch'](handleError(_0x9b3dfb,null));};function widgetAttributes(_0x1a1423){try{switch(_0x1a1423[_0xd6cb('0x58')]){case _0xd6cb('0x59'):return[{'name':_0xd6cb('0x5a'),'value':_0x1a1423[_0xd6cb('0x5a')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423['attrs'][0x0]?_0x1a1423[_0xd6cb('0x5b')][0x0][_0xd6cb('0x5c')]:undefined)||_0xd6cb('0x5d')}];case _0xd6cb('0x5e'):return[{'name':_0xd6cb('0x5f'),'value':_0x1a1423[_0xd6cb('0x5f')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423[_0xd6cb('0x5b')][0x0]?_0x1a1423['attrs'][0x0][_0xd6cb('0x5c')]:undefined)||''}];case'clock':return[{'name':_0xd6cb('0x60'),'value':_0x1a1423[_0xd6cb('0x60')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423['attrs'][0x0]?_0x1a1423['attrs'][0x0][_0xd6cb('0x5c')]:undefined)||_0xd6cb('0x61')},{'name':_0xd6cb('0x62'),'value':_0x1a1423[_0xd6cb('0x62')]||(_0x1a1423['attrs']&&_0x1a1423[_0xd6cb('0x5b')][0x1]?_0x1a1423[_0xd6cb('0x5b')][0x1][_0xd6cb('0x5c')]:undefined)||'0.00'},{'name':_0xd6cb('0x63'),'value':_0x1a1423[_0xd6cb('0x63')]||(_0x1a1423['attrs']&&_0x1a1423[_0xd6cb('0x5b')][0x2]?_0x1a1423[_0xd6cb('0x5b')][0x2][_0xd6cb('0x5c')]:undefined)||0xc}];case _0xd6cb('0x64'):return[{'name':_0xd6cb('0x65'),'value':_0x1a1423[_0xd6cb('0x65')]||(_0x1a1423['attrs']&&_0x1a1423[_0xd6cb('0x5b')][0x0]?_0x1a1423[_0xd6cb('0x5b')][0x0][_0xd6cb('0x5c')]:undefined)||_0xd6cb('0x66')},{'name':_0xd6cb('0x67'),'value':_0x1a1423[_0xd6cb('0x67')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423[_0xd6cb('0x5b')][0x1]?_0x1a1423[_0xd6cb('0x5b')][0x1][_0xd6cb('0x5c')]:undefined)||[]},{'name':_0xd6cb('0x63'),'value':_0x1a1423[_0xd6cb('0x63')]||(_0x1a1423['attrs']&&_0x1a1423['attrs'][0x2]?_0x1a1423[_0xd6cb('0x5b')][0x2][_0xd6cb('0x5c')]:undefined)||0x14}];case _0xd6cb('0x68'):case'pie-chart':return[{'name':'attrSerie1','value':_0x1a1423[_0xd6cb('0x69')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423[_0xd6cb('0x5b')][0x0]?_0x1a1423[_0xd6cb('0x5b')][0x0]['value']:undefined)||_0xd6cb('0x66')},{'name':_0xd6cb('0x6a'),'value':_0x1a1423[_0xd6cb('0x6a')]||(_0x1a1423['attrs']&&_0x1a1423['attrs'][0x1]?_0x1a1423[_0xd6cb('0x5b')][0x1][_0xd6cb('0x5c')]:undefined)||null},{'name':_0xd6cb('0x6b'),'value':_0x1a1423[_0xd6cb('0x6b')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423['attrs'][0x2]?_0x1a1423[_0xd6cb('0x5b')][0x2][_0xd6cb('0x5c')]:undefined)||null},{'name':_0xd6cb('0x67'),'value':_0x1a1423[_0xd6cb('0x67')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423[_0xd6cb('0x5b')][0x3]?_0x1a1423['attrs'][0x3][_0xd6cb('0x5c')]:undefined)||[]}];case _0xd6cb('0x6c'):return[{'name':_0xd6cb('0x6d'),'type':_0x1a1423['reportType']||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423[_0xd6cb('0x5b')][0x0]?_0x1a1423[_0xd6cb('0x5b')][0x0]['type']:undefined)||null,'value':_0x1a1423[_0xd6cb('0x6d')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423['attrs'][0x0]?_0x1a1423['attrs'][0x0][_0xd6cb('0x5c')]:undefined)||null},{'name':'attrRefresh','value':_0x1a1423[_0xd6cb('0x6e')]||(_0x1a1423[_0xd6cb('0x5b')]&&_0x1a1423[_0xd6cb('0x5b')][0x1]?_0x1a1423[_0xd6cb('0x5b')][0x1][_0xd6cb('0x5c')]:undefined)||0x0}];default:return[];}}catch(_0x38f8cb){logger[_0xd6cb('0x2c')](_0xd6cb('0x6f'),JSON[_0xd6cb('0x70')](_0x38f8cb));return[];}}exports[_0xd6cb('0x71')]=function(_0x5e706e,_0x90174c,_0xfc085c){if(_0x5e706e['body']['id']){delete _0x5e706e[_0xd6cb('0x4a')]['id'];}return db[_0xd6cb('0x30')][_0xd6cb('0x48')]({'where':{'id':_0x5e706e[_0xd6cb('0x46')]['id']}})[_0xd6cb('0x2a')](handleEntityNotFound(_0x90174c,null))[_0xd6cb('0x2a')](function(_0x3fca9b){if(_0x3fca9b){_0x5e706e[_0xd6cb('0x4a')][_0xd6cb('0x72')]=_0x3fca9b['id'];_0x5e706e[_0xd6cb('0x4a')][_0xd6cb('0x5b')]=widgetAttributes(_0x5e706e[_0xd6cb('0x4a')]);return db['DashboardItem'][_0xd6cb('0x49')](_0x5e706e['body']);}})[_0xd6cb('0x2a')](respondWithResult(_0x90174c,null))[_0xd6cb('0x51')](handleError(_0x90174c,null));};exports[_0xd6cb('0x73')]=function(_0x252387,_0x1eb34a,_0x6176d0){var _0xa83ae6={};var _0xe4d986={};var _0x1fb248;var _0x4a8c74;return db[_0xd6cb('0x30')]['findOne']({'where':{'id':_0x252387[_0xd6cb('0x46')]['id']}})[_0xd6cb('0x2a')](handleEntityNotFound(_0x1eb34a,null))[_0xd6cb('0x2a')](function(_0x44be9f){if(_0x44be9f){_0x1fb248=_0x44be9f;_0xe4d986[_0xd6cb('0x33')]=_['keys'](db[_0xd6cb('0x74')][_0xd6cb('0x31')]);_0xe4d986[_0xd6cb('0x34')]=_[_0xd6cb('0x35')](_0x252387[_0xd6cb('0x34')]);_0xe4d986[_0xd6cb('0x3e')]=_[_0xd6cb('0x36')](_0xe4d986[_0xd6cb('0x33')],_0xe4d986['query']);_0xa83ae6['attributes']=_['intersection'](_0xe4d986[_0xd6cb('0x33')],qs['fields'](_0x252387[_0xd6cb('0x34')][_0xd6cb('0x38')]));_0xa83ae6[_0xd6cb('0x37')]=_0xa83ae6[_0xd6cb('0x37')][_0xd6cb('0x39')]?_0xa83ae6[_0xd6cb('0x37')]:_0xe4d986[_0xd6cb('0x33')];_0xa83ae6['order']=qs[_0xd6cb('0x3c')](_0x252387[_0xd6cb('0x34')][_0xd6cb('0x3c')]);_0xa83ae6[_0xd6cb('0x3d')]=qs[_0xd6cb('0x3e')](_['pick'](_0x252387['query'],_0xe4d986['filters']));if(_0x252387[_0xd6cb('0x34')][_0xd6cb('0x3f')]){_0xa83ae6[_0xd6cb('0x3d')]=_[_0xd6cb('0x40')](_0xa83ae6['where'],{'$or':_[_0xd6cb('0x2f')](_0xa83ae6[_0xd6cb('0x37')],function(_0x1cdb52){var _0x243ac3={};_0x243ac3[_0x1cdb52]={'$like':'%'+_0x252387[_0xd6cb('0x34')][_0xd6cb('0x3f')]+'%'};return _0x243ac3;})});}_0xa83ae6=_['merge']({},_0xa83ae6,_0x252387[_0xd6cb('0x41')]);return _0x1fb248[_0xd6cb('0x73')](_0xa83ae6);}})[_0xd6cb('0x2a')](function(_0x26ef5e){if(_0x26ef5e){_0x4a8c74=_0x26ef5e[_0xd6cb('0x39')];if(!_0x252387[_0xd6cb('0x34')][_0xd6cb('0x3a')](_0xd6cb('0x75'))){_0xa83ae6['limit']=qs[_0xd6cb('0x21')](_0x252387['query'][_0xd6cb('0x21')]);_0xa83ae6[_0xd6cb('0x1f')]=qs[_0xd6cb('0x1f')](_0x252387['query']['offset']);}return _0x1fb248['getItems'](_0xa83ae6);}})['then'](function(_0x24aa09){if(_0x24aa09){return _0x24aa09?{'count':_0x4a8c74,'rows':_0x24aa09}:null;}})[_0xd6cb('0x2a')](respondWithResult(_0x1eb34a,null))['catch'](handleError(_0x1eb34a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c94=['hook','events','../../mysqldb','setMaxListeners','update','remove','emit','hasOwnProperty'];(function(_0x2ba91a,_0x97f7fe){var _0x3e8f74=function(_0x56c014){while(--_0x56c014){_0x2ba91a['push'](_0x2ba91a['shift']());}};_0x3e8f74(++_0x97f7fe);}(_0x9c94,0x99));var _0x49c9=function(_0x396466,_0xe9857b){_0x396466=_0x396466-0x0;var _0x5e9ab4=_0x9c94[_0x396466];return _0x5e9ab4;};'use strict';var EventEmitter=require(_0x49c9('0x0'));var Dashboard=require(_0x49c9('0x1'))['db']['Dashboard'];var DashboardEvents=new EventEmitter();DashboardEvents[_0x49c9('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x49c9('0x3'),'afterDestroy':_0x49c9('0x4')};function emitEvent(_0x5ec825){return function(_0x1c5f95,_0x26b4f7,_0x1d9b76){DashboardEvents['emit'](_0x5ec825+':'+_0x1c5f95['id'],_0x1c5f95);DashboardEvents[_0x49c9('0x5')](_0x5ec825,_0x1c5f95);_0x1d9b76(null);};}for(var e in events){if(events[_0x49c9('0x6')](e)){var event=events[e];Dashboard[_0x49c9('0x7')](e,emitEvent(event));}}module['exports']=DashboardEvents;
\ No newline at end of file
+var _0x3ed6=['emit','hook','../../mysqldb','Dashboard','save','update','remove'];(function(_0x4e85f2,_0x1cf40b){var _0x3ac183=function(_0x11d3a6){while(--_0x11d3a6){_0x4e85f2['push'](_0x4e85f2['shift']());}};_0x3ac183(++_0x1cf40b);}(_0x3ed6,0x12f));var _0x63ed=function(_0x59b5eb,_0x516998){_0x59b5eb=_0x59b5eb-0x0;var _0x28d8c8=_0x3ed6[_0x59b5eb];return _0x28d8c8;};'use strict';var EventEmitter=require('events');var Dashboard=require(_0x63ed('0x0'))['db'][_0x63ed('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x63ed('0x2'),'afterUpdate':_0x63ed('0x3'),'afterDestroy':_0x63ed('0x4')};function emitEvent(_0x39674f){return function(_0x1c15d0,_0x4e7d19,_0x3efbe0){DashboardEvents[_0x63ed('0x5')](_0x39674f+':'+_0x1c15d0['id'],_0x1c15d0);DashboardEvents[_0x63ed('0x5')](_0x39674f,_0x1c15d0);_0x3efbe0(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];Dashboard[_0x63ed('0x6')](e,emitEvent(event));}}module['exports']=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x52f8=['rimraf','../../config/environment','./dashboard.attributes','exports','Dashboard','dashboards','../../config/logger','bluebird','request-promise','path'];(function(_0x2f144b,_0x28eee5){var _0xa9e678=function(_0x5c1fab){while(--_0x5c1fab){_0x2f144b['push'](_0x2f144b['shift']());}};_0xa9e678(++_0x28eee5);}(_0x52f8,0x114));var _0x852f=function(_0x33d799,_0x228cab){_0x33d799=_0x33d799-0x0;var _0xcc6681=_0x52f8[_0x33d799];return _0xcc6681;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x852f('0x0'))('api');var moment=require('moment');var BPromise=require(_0x852f('0x1'));var rp=require(_0x852f('0x2'));var fs=require('fs');var path=require(_0x852f('0x3'));var rimraf=require(_0x852f('0x4'));var config=require(_0x852f('0x5'));var attributes=require(_0x852f('0x6'));module[_0x852f('0x7')]=function(_0x87f69,_0x31eb88){return _0x87f69['define'](_0x852f('0x8'),attributes,{'tableName':_0x852f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2cae=['../../config/environment','./dashboard.attributes','Dashboard','lodash','util','moment','bluebird','path','rimraf'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2cae,0x16b));var _0xe2ca=function(_0x6cf19c,_0x2f3f02){_0x6cf19c=_0x6cf19c-0x0;var _0xce14f3=_0x2cae[_0x6cf19c];return _0xce14f3;};'use strict';var _=require(_0xe2ca('0x0'));var util=require(_0xe2ca('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xe2ca('0x2'));var BPromise=require(_0xe2ca('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe2ca('0x4'));var rimraf=require(_0xe2ca('0x5'));var config=require(_0xe2ca('0x6'));var attributes=require(_0xe2ca('0x7'));module['exports']=function(_0x2b4c70,_0x3cabde){return _0x2b4c70['define'](_0xe2ca('0x8'),attributes,{'tableName':'dashboards','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0711=['message','result','catch','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./dashboard.socket','register','then','Dashboard,\x20%s,\x20%s','request\x20sent','Dashboard,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x218983,_0x17b039){var _0x2f9052=function(_0x596202){while(--_0x596202){_0x218983['push'](_0x218983['shift']());}};_0x2f9052(++_0x17b039);}(_0x0711,0xb9));var _0x1071=function(_0x51454b,_0x2c74c1){_0x51454b=_0x51454b-0x0;var _0x20fa8c=_0x0711[_0x51454b];return _0x20fa8c;};'use strict';var _=require('lodash');var util=require(_0x1071('0x0'));var moment=require(_0x1071('0x1'));var BPromise=require('bluebird');var rs=require(_0x1071('0x2'));var fs=require('fs');var Redis=require(_0x1071('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x1071('0x4'));var logger=require(_0x1071('0x5'))(_0x1071('0x6'));var config=require('../../config/environment');var jayson=require(_0x1071('0x7'));var client=jayson[_0x1071('0x8')][_0x1071('0x9')]({'port':0x232a});config[_0x1071('0xa')]=_[_0x1071('0xb')](config['redis'],{'host':_0x1071('0xc'),'port':0x18eb});var socket=require(_0x1071('0xd'))(new Redis(config['redis']));require(_0x1071('0xe'))[_0x1071('0xf')](socket);function respondWithRpcPromise(_0x4b9ef0,_0x49f48f,_0x25c11f){return new BPromise(function(_0x2e526a,_0x156296){return client['request'](_0x4b9ef0,_0x25c11f)[_0x1071('0x10')](function(_0x181d50){logger['info'](_0x1071('0x11'),_0x49f48f,_0x1071('0x12'));logger['debug'](_0x1071('0x13'),_0x49f48f,_0x1071('0x12'),JSON[_0x1071('0x14')](_0x181d50));if(_0x181d50[_0x1071('0x15')]){if(_0x181d50['error'][_0x1071('0x16')]===0x1f4){logger['error'](_0x1071('0x11'),_0x49f48f,_0x181d50[_0x1071('0x15')][_0x1071('0x17')]);return _0x156296(_0x181d50['error'][_0x1071('0x17')]);}logger[_0x1071('0x15')]('Dashboard,\x20%s,\x20%s',_0x49f48f,_0x181d50['error'][_0x1071('0x17')]);return _0x2e526a(_0x181d50[_0x1071('0x15')]['message']);}else{logger['info'](_0x1071('0x11'),_0x49f48f,_0x1071('0x12'));_0x2e526a(_0x181d50[_0x1071('0x18')]['message']);}})[_0x1071('0x19')](function(_0x518a26){logger['error'](_0x1071('0x11'),_0x49f48f,_0x518a26);_0x156296(_0x518a26);});});}
\ No newline at end of file
+var _0x08fc=['./dashboard.socket','request','then','info','debug','Dashboard,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Dashboard,\x20%s,\x20%s','message','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','localhost','socket.io-emitter','redis'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x08fc,0x11a));var _0xc08f=function(_0x3e0dc4,_0x13971b){_0x3e0dc4=_0x3e0dc4-0x0;var _0x586111=_0x08fc[_0x3e0dc4];return _0x586111;};'use strict';var _=require(_0xc08f('0x0'));var util=require(_0xc08f('0x1'));var moment=require(_0xc08f('0x2'));var BPromise=require('bluebird');var rs=require(_0xc08f('0x3'));var fs=require('fs');var Redis=require(_0xc08f('0x4'));var db=require(_0xc08f('0x5'))['db'];var utils=require(_0xc08f('0x6'));var logger=require('../../config/logger')(_0xc08f('0x7'));var config=require(_0xc08f('0x8'));var jayson=require(_0xc08f('0x9'));var client=jayson[_0xc08f('0xa')][_0xc08f('0xb')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0xc08f('0xc'),'port':0x18eb});var socket=require(_0xc08f('0xd'))(new Redis(config[_0xc08f('0xe')]));require(_0xc08f('0xf'))['register'](socket);function respondWithRpcPromise(_0xc99c2c,_0x1b34f8,_0x184db4){return new BPromise(function(_0x501fe9,_0x6e2fd){return client[_0xc08f('0x10')](_0xc99c2c,_0x184db4)[_0xc08f('0x11')](function(_0xb55752){logger[_0xc08f('0x12')]('Dashboard,\x20%s,\x20%s',_0x1b34f8,'request\x20sent');logger[_0xc08f('0x13')](_0xc08f('0x14'),_0x1b34f8,_0xc08f('0x15'),JSON[_0xc08f('0x16')](_0xb55752));if(_0xb55752[_0xc08f('0x17')]){if(_0xb55752[_0xc08f('0x17')][_0xc08f('0x18')]===0x1f4){logger[_0xc08f('0x17')](_0xc08f('0x19'),_0x1b34f8,_0xb55752[_0xc08f('0x17')]['message']);return _0x6e2fd(_0xb55752[_0xc08f('0x17')][_0xc08f('0x1a')]);}logger[_0xc08f('0x17')](_0xc08f('0x19'),_0x1b34f8,_0xb55752['error'][_0xc08f('0x1a')]);return _0x501fe9(_0xb55752[_0xc08f('0x17')][_0xc08f('0x1a')]);}else{logger[_0xc08f('0x12')](_0xc08f('0x19'),_0x1b34f8,'request\x20sent');_0x501fe9(_0xb55752['result']['message']);}})['catch'](function(_0x468b3a){logger[_0xc08f('0x17')](_0xc08f('0x19'),_0x1b34f8,_0x468b3a);_0x6e2fd(_0x468b3a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe036=['removeListener','register','length','./dashboard.events','save','remove','update','emit'];(function(_0x426a79,_0x1ce840){var _0x1c7b3d=function(_0x6997f5){while(--_0x6997f5){_0x426a79['push'](_0x426a79['shift']());}};_0x1c7b3d(++_0x1ce840);}(_0xe036,0x1bb));var _0x6e03=function(_0x5046f6,_0x4c160c){_0x5046f6=_0x5046f6-0x0;var _0x3f21a1=_0xe036[_0x5046f6];return _0x3f21a1;};'use strict';var DashboardEvents=require(_0x6e03('0x0'));var events=[_0x6e03('0x1'),_0x6e03('0x2'),_0x6e03('0x3')];function createListener(_0x1bf5bc,_0x4653dc){return function(_0x37bc19){_0x4653dc[_0x6e03('0x4')](_0x1bf5bc,_0x37bc19);};}function removeListener(_0x3e8570,_0x5681b1){return function(){DashboardEvents[_0x6e03('0x5')](_0x3e8570,_0x5681b1);};}exports[_0x6e03('0x6')]=function(_0x382132){for(var _0x5dbfd5=0x0,_0x19abd3=events[_0x6e03('0x7')];_0x5dbfd5<_0x19abd3;_0x5dbfd5++){var _0x548e7a=events[_0x5dbfd5];var _0x19f60d=createListener('dashboard:'+_0x548e7a,_0x382132);DashboardEvents['on'](_0x548e7a,_0x19f60d);}};
\ No newline at end of file
+var _0xe843=['removeListener','length','./dashboard.events','save','remove','update','emit'];(function(_0x15169c,_0x1e853d){var _0x4ad1f7=function(_0x1b5074){while(--_0x1b5074){_0x15169c['push'](_0x15169c['shift']());}};_0x4ad1f7(++_0x1e853d);}(_0xe843,0x167));var _0x3e84=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe843[_0x321bb2];return _0x9c12ed;};'use strict';var DashboardEvents=require(_0x3e84('0x0'));var events=[_0x3e84('0x1'),_0x3e84('0x2'),_0x3e84('0x3')];function createListener(_0x5d6228,_0x208656){return function(_0x349996){_0x208656[_0x3e84('0x4')](_0x5d6228,_0x349996);};}function removeListener(_0x17096f,_0x50c77e){return function(){DashboardEvents[_0x3e84('0x5')](_0x17096f,_0x50c77e);};}exports['register']=function(_0x1855ab){for(var _0x437cac=0x0,_0x3c5e0b=events[_0x3e84('0x6')];_0x437cac<_0x3c5e0b;_0x437cac++){var _0x1c9526=events[_0x437cac];var _0x4ce700=createListener('dashboard:'+_0x1c9526,_0x1855ab);DashboardEvents['on'](_0x1c9526,_0x4ce700);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43f=['getItems','post','create','/:id/clone','clone','addItem','put','delete','destroy','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','get','index','/:id','show','/:id/items','isAuthenticated'];(function(_0x12ae97,_0x385f36){var _0xb50847=function(_0x50238c){while(--_0x50238c){_0x12ae97['push'](_0x12ae97['shift']());}};_0xb50847(++_0x385f36);}(_0xb43f,0x159));var _0xfb43=function(_0x38f5f8,_0xefe164){_0x38f5f8=_0x38f5f8-0x0;var _0x34e820=_0xb43f[_0x38f5f8];return _0x34e820;};'use strict';var multer=require(_0xfb43('0x0'));var util=require('util');var path=require(_0xfb43('0x1'));var timeout=require(_0xfb43('0x2'));var express=require(_0xfb43('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xfb43('0x4'));var interaction=require(_0xfb43('0x5'));var config=require('../../config/environment');var controller=require('./dashboard.controller');router[_0xfb43('0x6')]('/',auth['isAuthenticated'](),controller[_0xfb43('0x7')]);router[_0xfb43('0x6')](_0xfb43('0x8'),auth['isAuthenticated'](),controller[_0xfb43('0x9')]);router[_0xfb43('0x6')](_0xfb43('0xa'),auth[_0xfb43('0xb')](),controller[_0xfb43('0xc')]);router[_0xfb43('0xd')]('/',auth[_0xfb43('0xb')](),controller[_0xfb43('0xe')]);router[_0xfb43('0xd')](_0xfb43('0xf'),auth['isAuthenticated'](),controller[_0xfb43('0x10')]);router['post'](_0xfb43('0xa'),auth[_0xfb43('0xb')](),controller[_0xfb43('0x11')]);router[_0xfb43('0x12')](_0xfb43('0x8'),auth[_0xfb43('0xb')](),controller['update']);router[_0xfb43('0x13')](_0xfb43('0x8'),auth[_0xfb43('0xb')](),controller[_0xfb43('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xec53=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./dashboard.controller','get','isAuthenticated','index','show','/:id/items','post','/:id/clone','clone','addItem','update','delete','destroy','exports','util'];(function(_0x28f5c9,_0x2de2cc){var _0x5376a4=function(_0x460c8d){while(--_0x460c8d){_0x28f5c9['push'](_0x28f5c9['shift']());}};_0x5376a4(++_0x2de2cc);}(_0xec53,0x179));var _0x3ec5=function(_0x22600d,_0x367b8e){_0x22600d=_0x22600d-0x0;var _0x13547b=_0xec53[_0x22600d];return _0x13547b;};'use strict';var multer=require('multer');var util=require(_0x3ec5('0x0'));var path=require('path');var timeout=require(_0x3ec5('0x1'));var express=require(_0x3ec5('0x2'));var router=express[_0x3ec5('0x3')]();var fs_extra=require(_0x3ec5('0x4'));var auth=require(_0x3ec5('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x3ec5('0x6'));var controller=require(_0x3ec5('0x7'));router[_0x3ec5('0x8')]('/',auth[_0x3ec5('0x9')](),controller[_0x3ec5('0xa')]);router['get']('/:id',auth[_0x3ec5('0x9')](),controller[_0x3ec5('0xb')]);router[_0x3ec5('0x8')](_0x3ec5('0xc'),auth['isAuthenticated'](),controller['getItems']);router[_0x3ec5('0xd')]('/',auth[_0x3ec5('0x9')](),controller['create']);router['post'](_0x3ec5('0xe'),auth[_0x3ec5('0x9')](),controller[_0x3ec5('0xf')]);router[_0x3ec5('0xd')](_0x3ec5('0xc'),auth[_0x3ec5('0x9')](),controller[_0x3ec5('0x10')]);router['put']('/:id',auth[_0x3ec5('0x9')](),controller[_0x3ec5('0x11')]);router[_0x3ec5('0x12')]('/:id',auth[_0x3ec5('0x9')](),controller[_0x3ec5('0x13')]);module[_0x3ec5('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90b1=['#2196f3','sequelize','squel','lodash','STRING','TEXT','long','parse','setDataValue','attrs','stringify','INTEGER','#ffffff'];(function(_0x1c0991,_0x4f22d2){var _0x5034de=function(_0x520f49){while(--_0x520f49){_0x1c0991['push'](_0x1c0991['shift']());}};_0x5034de(++_0x4f22d2);}(_0x90b1,0x1bb));var _0x190b=function(_0xadf368,_0x5a5863){_0xadf368=_0xadf368-0x0;var _0x41a61e=_0x90b1[_0xadf368];return _0x41a61e;};'use strict';var Sequelize=require(_0x190b('0x0'));var squel=require(_0x190b('0x1'));var _=require(_0x190b('0x2'));module['exports']={'title':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x190b('0x3')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x190b('0x4')](_0x190b('0x5')),'get':function(){try{return JSON[_0x190b('0x6')](this['getDataValue']('attrs'));}catch(_0x5cbebb){return[];}},'set':function(_0x5da9c1){try{this[_0x190b('0x7')](_0x190b('0x8'),JSON[_0x190b('0x9')](_0x5da9c1));}catch(_0x626aa1){this[_0x190b('0x7')](_0x190b('0x8'),JSON[_0x190b('0x9')]([]));}}},'sizeX':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x190b('0xa')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x190b('0xa')]},'col':{'type':Sequelize[_0x190b('0xa')]},'background':{'type':Sequelize[_0x190b('0x3')],'allowNull':![],'defaultValue':_0x190b('0xb'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x190b('0x3')],'allowNull':![],'defaultValue':_0x190b('0xc'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x190b('0x3')]},'titleFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc}};
\ No newline at end of file
+var _0xba34=['attrs','setDataValue','stringify','INTEGER','#ffffff','sequelize','squel','lodash','exports','STRING','parse','getDataValue'];(function(_0x364048,_0x34dea3){var _0x591678=function(_0x239c0a){while(--_0x239c0a){_0x364048['push'](_0x364048['shift']());}};_0x591678(++_0x34dea3);}(_0xba34,0x119));var _0x4ba3=function(_0x3117bf,_0x32933d){_0x3117bf=_0x3117bf-0x0;var _0x3834f7=_0xba34[_0x3117bf];return _0x3834f7;};'use strict';var Sequelize=require(_0x4ba3('0x0'));var squel=require(_0x4ba3('0x1'));var _=require(_0x4ba3('0x2'));module[_0x4ba3('0x3')]={'title':{'type':Sequelize[_0x4ba3('0x4')],'allowNull':![]},'type':{'type':Sequelize['STRING'](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize['TEXT']('long'),'get':function(){try{return JSON[_0x4ba3('0x5')](this[_0x4ba3('0x6')](_0x4ba3('0x7')));}catch(_0x1011ec){return[];}},'set':function(_0x3590a1){try{this[_0x4ba3('0x8')](_0x4ba3('0x7'),JSON['stringify'](_0x3590a1));}catch(_0x6254fb){this[_0x4ba3('0x8')](_0x4ba3('0x7'),JSON[_0x4ba3('0x9')]([]));}}},'sizeX':{'type':Sequelize[_0x4ba3('0xa')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x4ba3('0xa')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x4ba3('0xa')]},'col':{'type':Sequelize[_0x4ba3('0xa')]},'background':{'type':Sequelize[_0x4ba3('0x4')],'allowNull':![],'defaultValue':_0x4ba3('0xb'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x4ba3('0x4')],'allowNull':![],'defaultValue':'#2196f3','validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x4ba3('0x4')]},'titleFontSize':{'type':Sequelize[_0x4ba3('0xa')],'defaultValue':0xc}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd27=['attrMetric','total','attrVoiceQueues','attrSerie1','attrSerie2','attrSerie3','reportType','attrReport','attrRefresh','error','widgetAttributes:\x20%s','stringify','create','body','update','find','eml-format','zip-dir','fast-json-patch','moment','bluebird','to-csv','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','name','send','show','params','model','keys','rawAttributes','query','attributes','intersection','fields','length','includeAll','DashboardItem','catch','type','iframe','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter'];(function(_0x2c00ea,_0x4f7cc0){var _0x2454b7=function(_0x2985fe){while(--_0x2985fe){_0x2c00ea['push'](_0x2c00ea['shift']());}};_0x2454b7(++_0x4f7cc0);}(_0xfd27,0xb4));var _0x7fd2=function(_0x48d735,_0x38bdfd){_0x48d735=_0x48d735-0x0;var _0x1860fa=_0xfd27[_0x48d735];return _0x1860fa;};'use strict';var emlformat=require(_0x7fd2('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7fd2('0x1'));var jsonpatch=require(_0x7fd2('0x2'));var rp=require('request-promise');var moment=require(_0x7fd2('0x3'));var BPromise=require(_0x7fd2('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x7fd2('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x7fd2('0x6'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7fd2('0x7'));var toCsv=require(_0x7fd2('0x5'));var querystring=require('querystring');var Papa=require(_0x7fd2('0x8'));var Redis=require(_0x7fd2('0x9'));var authService=require(_0x7fd2('0xa'));var qs=require('../../components/parsers/qs');var as=require(_0x7fd2('0xb'));var hardwareService=require(_0x7fd2('0xc'));var logger=require(_0x7fd2('0xd'))(_0x7fd2('0xe'));var utils=require(_0x7fd2('0xf'));var config=require(_0x7fd2('0x10'));var licenseUtil=require(_0x7fd2('0x11'));var db=require('../../mysqldb')['db'];config[_0x7fd2('0x12')]=_['defaults'](config[_0x7fd2('0x12')],{'host':_0x7fd2('0x13'),'port':0x18eb});var socket=require(_0x7fd2('0x14'))(new Redis(config[_0x7fd2('0x12')]));require('./dashboardItem.socket')[_0x7fd2('0x15')](socket);function respondWithStatusCode(_0x507d9f,_0x486f35){_0x486f35=_0x486f35||0xcc;return function(_0x18e668){if(_0x18e668){return _0x507d9f[_0x7fd2('0x16')](_0x486f35);}return _0x507d9f[_0x7fd2('0x17')](_0x486f35)['end']();};}function respondWithResult(_0x4ad464,_0x101ae5){_0x101ae5=_0x101ae5||0xc8;return function(_0x208317){if(_0x208317){return _0x4ad464['status'](_0x101ae5)[_0x7fd2('0x18')](_0x208317);}};}function respondWithFilteredResult(_0x2f8572,_0x5e7ef0){return function(_0x16ccd0){if(_0x16ccd0){var _0x570272=typeof _0x5e7ef0[_0x7fd2('0x19')]===_0x7fd2('0x1a')&&typeof _0x5e7ef0[_0x7fd2('0x1b')]===_0x7fd2('0x1a');var _0x137b37=_0x16ccd0[_0x7fd2('0x1c')];var _0xaa2cf9=_0x570272?0x0:_0x5e7ef0[_0x7fd2('0x19')];var _0xbae7d3=_0x570272?_0x16ccd0[_0x7fd2('0x1c')]:_0x5e7ef0[_0x7fd2('0x19')]+_0x5e7ef0[_0x7fd2('0x1b')];var _0x109c5b;if(_0xbae7d3>=_0x137b37){_0xbae7d3=_0x137b37;_0x109c5b=0xc8;}else{_0x109c5b=0xce;}_0x2f8572[_0x7fd2('0x17')](_0x109c5b);return _0x2f8572[_0x7fd2('0x1d')](_0x7fd2('0x1e'),_0xaa2cf9+'-'+_0xbae7d3+'/'+_0x137b37)['json'](_0x16ccd0);}return null;};}function patchUpdates(_0x64ba92){return function(_0x622da1){try{jsonpatch[_0x7fd2('0x1f')](_0x622da1,_0x64ba92,!![]);}catch(_0x4a762e){return BPromise[_0x7fd2('0x20')](_0x4a762e);}return _0x622da1[_0x7fd2('0x21')]();};}function saveUpdates(_0x39dacf,_0x2032df){return function(_0x2f4d8b){if(_0x2f4d8b){return _0x2f4d8b['update'](_0x39dacf)[_0x7fd2('0x22')](function(_0xd88e54){return _0xd88e54;});}return null;};}function removeEntity(_0x4af073,_0x53a20e){return function(_0x1b450c){if(_0x1b450c){return _0x1b450c[_0x7fd2('0x23')]()['then'](function(){_0x4af073[_0x7fd2('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x401d84,_0x1df070){return function(_0x3d16f4){if(!_0x3d16f4){_0x401d84[_0x7fd2('0x16')](0x194);}return _0x3d16f4;};}function handleError(_0x441d8b,_0x54765e){_0x54765e=_0x54765e||0x1f4;return function(_0x3fc26f){logger['error'](_0x3fc26f['stack']);if(_0x3fc26f[_0x7fd2('0x24')]){delete _0x3fc26f['name'];}_0x441d8b[_0x7fd2('0x17')](_0x54765e)[_0x7fd2('0x25')](_0x3fc26f);};}exports[_0x7fd2('0x26')]=function(_0x83fdd3,_0x4cb2ae){var _0x308bbd={'raw':![],'where':{'id':_0x83fdd3[_0x7fd2('0x27')]['id']}},_0x5765f7={};_0x5765f7[_0x7fd2('0x28')]=_[_0x7fd2('0x29')](db['DashboardItem'][_0x7fd2('0x2a')]);_0x5765f7[_0x7fd2('0x2b')]=_['keys'](_0x83fdd3['query']);_0x5765f7['filters']=_['intersection'](_0x5765f7[_0x7fd2('0x28')],_0x5765f7[_0x7fd2('0x2b')]);_0x308bbd[_0x7fd2('0x2c')]=_[_0x7fd2('0x2d')](_0x5765f7['model'],qs[_0x7fd2('0x2e')](_0x83fdd3[_0x7fd2('0x2b')][_0x7fd2('0x2e')]));_0x308bbd[_0x7fd2('0x2c')]=_0x308bbd[_0x7fd2('0x2c')][_0x7fd2('0x2f')]?_0x308bbd[_0x7fd2('0x2c')]:_0x5765f7[_0x7fd2('0x28')];if(_0x83fdd3['query'][_0x7fd2('0x30')]){_0x308bbd['include']=[{'all':!![]}];}_0x308bbd=_['merge']({},_0x308bbd,_0x83fdd3['options']);return db[_0x7fd2('0x31')]['find'](_0x308bbd)[_0x7fd2('0x22')](handleEntityNotFound(_0x4cb2ae,null))[_0x7fd2('0x22')](respondWithResult(_0x4cb2ae,null))[_0x7fd2('0x32')](handleError(_0x4cb2ae,null));};exports[_0x7fd2('0x23')]=function(_0x54a2ed,_0x31450e){return db[_0x7fd2('0x31')]['find']({'where':{'id':_0x54a2ed[_0x7fd2('0x27')]['id']}})[_0x7fd2('0x22')](handleEntityNotFound(_0x31450e,null))['then'](removeEntity(_0x31450e,null))[_0x7fd2('0x32')](handleError(_0x31450e,null));};function widgetAttributes(_0x411edd){try{switch(_0x411edd[_0x7fd2('0x33')]){case _0x7fd2('0x34'):return[{'name':_0x7fd2('0x35'),'value':_0x411edd[_0x7fd2('0x35')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x0]?_0x411edd['attrs'][0x0]['value']:undefined)||_0x7fd2('0x37')}];case _0x7fd2('0x38'):return[{'name':_0x7fd2('0x39'),'value':_0x411edd[_0x7fd2('0x39')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x0]?_0x411edd[_0x7fd2('0x36')][0x0][_0x7fd2('0x3a')]:undefined)||''}];case _0x7fd2('0x3b'):return[{'name':'attrHourFormat','value':_0x411edd[_0x7fd2('0x3c')]||(_0x411edd['attrs']&&_0x411edd[_0x7fd2('0x36')][0x0]?_0x411edd[_0x7fd2('0x36')][0x0][_0x7fd2('0x3a')]:undefined)||_0x7fd2('0x3d')},{'name':_0x7fd2('0x3e'),'value':_0x411edd[_0x7fd2('0x3e')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x1]?_0x411edd[_0x7fd2('0x36')][0x1][_0x7fd2('0x3a')]:undefined)||_0x7fd2('0x3f')},{'name':_0x7fd2('0x40'),'value':_0x411edd[_0x7fd2('0x40')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd['attrs'][0x2]?_0x411edd[_0x7fd2('0x36')][0x2]['value']:undefined)||0xc}];case _0x7fd2('0x41'):return[{'name':_0x7fd2('0x42'),'value':_0x411edd[_0x7fd2('0x42')]||(_0x411edd['attrs']&&_0x411edd['attrs'][0x0]?_0x411edd[_0x7fd2('0x36')][0x0][_0x7fd2('0x3a')]:undefined)||_0x7fd2('0x43')},{'name':_0x7fd2('0x44'),'value':_0x411edd[_0x7fd2('0x44')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x1]?_0x411edd[_0x7fd2('0x36')][0x1][_0x7fd2('0x3a')]:undefined)||[]},{'name':'attrFontSize','value':_0x411edd[_0x7fd2('0x40')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd['attrs'][0x2]?_0x411edd['attrs'][0x2][_0x7fd2('0x3a')]:undefined)||0x14}];case'multibar-chart':case'pie-chart':return[{'name':'attrSerie1','value':_0x411edd[_0x7fd2('0x45')]||(_0x411edd['attrs']&&_0x411edd['attrs'][0x0]?_0x411edd[_0x7fd2('0x36')][0x0][_0x7fd2('0x3a')]:undefined)||_0x7fd2('0x43')},{'name':_0x7fd2('0x46'),'value':_0x411edd[_0x7fd2('0x46')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x1]?_0x411edd['attrs'][0x1][_0x7fd2('0x3a')]:undefined)||null},{'name':_0x7fd2('0x47'),'value':_0x411edd['attrSerie3']||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd['attrs'][0x2]?_0x411edd[_0x7fd2('0x36')][0x2][_0x7fd2('0x3a')]:undefined)||null},{'name':_0x7fd2('0x44'),'value':_0x411edd[_0x7fd2('0x44')]||(_0x411edd['attrs']&&_0x411edd[_0x7fd2('0x36')][0x3]?_0x411edd['attrs'][0x3]['value']:undefined)||[]}];case'web-report':return[{'name':'attrReport','type':_0x411edd[_0x7fd2('0x48')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x0]?_0x411edd['attrs'][0x0][_0x7fd2('0x33')]:undefined)||null,'value':_0x411edd[_0x7fd2('0x49')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x0]?_0x411edd[_0x7fd2('0x36')][0x0][_0x7fd2('0x3a')]:undefined)||null},{'name':'attrRefresh','value':_0x411edd[_0x7fd2('0x4a')]||(_0x411edd[_0x7fd2('0x36')]&&_0x411edd[_0x7fd2('0x36')][0x1]?_0x411edd[_0x7fd2('0x36')][0x1][_0x7fd2('0x3a')]:undefined)||0x0}];default:return[];}}catch(_0xb2aed4){logger[_0x7fd2('0x4b')](_0x7fd2('0x4c'),JSON[_0x7fd2('0x4d')](_0xb2aed4));return[];}}exports[_0x7fd2('0x4e')]=function(_0x8a88ff,_0x9d6273){if(_0x8a88ff[_0x7fd2('0x4f')]){_0x8a88ff['body']['attrs']=widgetAttributes(_0x8a88ff[_0x7fd2('0x4f')]);}return db[_0x7fd2('0x31')][_0x7fd2('0x4e')](_0x8a88ff[_0x7fd2('0x4f')],{})['then'](respondWithResult(_0x9d6273,0xc9))[_0x7fd2('0x32')](handleError(_0x9d6273,null));};exports[_0x7fd2('0x50')]=function(_0x4c1fe9,_0x5367d0){if(_0x4c1fe9['body']['id']){delete _0x4c1fe9['body']['id'];}_0x4c1fe9[_0x7fd2('0x4f')][_0x7fd2('0x36')]=widgetAttributes(_0x4c1fe9['body']);return db['DashboardItem'][_0x7fd2('0x51')]({'where':{'id':_0x4c1fe9['params']['id']}})[_0x7fd2('0x22')](handleEntityNotFound(_0x5367d0,null))[_0x7fd2('0x22')](saveUpdates(_0x4c1fe9[_0x7fd2('0x4f')],null))[_0x7fd2('0x22')](respondWithResult(_0x5367d0,null))['catch'](handleError(_0x5367d0,null));};
\ No newline at end of file
+var _0x0e18=['../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./dashboardItem.socket','sendStatus','end','offset','undefined','count','limit','status','set','Content-Range','apply','save','update','then','error','stack','name','send','show','model','keys','DashboardItem','rawAttributes','query','intersection','attributes','fields','length','includeAll','include','merge','options','find','catch','destroy','params','type','iframe','attrUrl','attrs','https://','custom','attrPath','value','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','attrMetric','total','attrVoiceQueues','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','body','create','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment'];(function(_0x4129e0,_0x27d2e5){var _0x15f3ba=function(_0x254de1){while(--_0x254de1){_0x4129e0['push'](_0x4129e0['shift']());}};_0x15f3ba(++_0x27d2e5);}(_0x0e18,0x1c2));var _0x80e1=function(_0x141917,_0x5b26c6){_0x141917=_0x141917-0x0;var _0x4db970=_0x0e18[_0x141917];return _0x4db970;};'use strict';var emlformat=require(_0x80e1('0x0'));var rimraf=require(_0x80e1('0x1'));var zipdir=require(_0x80e1('0x2'));var jsonpatch=require(_0x80e1('0x3'));var rp=require(_0x80e1('0x4'));var moment=require(_0x80e1('0x5'));var BPromise=require(_0x80e1('0x6'));var Mustache=require(_0x80e1('0x7'));var util=require(_0x80e1('0x8'));var path=require(_0x80e1('0x9'));var sox=require(_0x80e1('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x80e1('0xb'));var _=require(_0x80e1('0xc'));var squel=require(_0x80e1('0xd'));var crypto=require(_0x80e1('0xe'));var jsforce=require(_0x80e1('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x80e1('0x10'));var querystring=require(_0x80e1('0x11'));var Papa=require(_0x80e1('0x12'));var Redis=require(_0x80e1('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x80e1('0x14'));var as=require(_0x80e1('0x15'));var hardwareService=require(_0x80e1('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x80e1('0x17'));var config=require(_0x80e1('0x18'));var licenseUtil=require(_0x80e1('0x19'));var db=require(_0x80e1('0x1a'))['db'];config['redis']=_[_0x80e1('0x1b')](config[_0x80e1('0x1c')],{'host':_0x80e1('0x1d'),'port':0x18eb});var socket=require(_0x80e1('0x1e'))(new Redis(config[_0x80e1('0x1c')]));require(_0x80e1('0x1f'))['register'](socket);function respondWithStatusCode(_0x19fa1,_0x4847fc){_0x4847fc=_0x4847fc||0xcc;return function(_0x3c5377){if(_0x3c5377){return _0x19fa1[_0x80e1('0x20')](_0x4847fc);}return _0x19fa1['status'](_0x4847fc)[_0x80e1('0x21')]();};}function respondWithResult(_0x35b6c7,_0x590a2c){_0x590a2c=_0x590a2c||0xc8;return function(_0x45ba9c){if(_0x45ba9c){return _0x35b6c7['status'](_0x590a2c)['json'](_0x45ba9c);}};}function respondWithFilteredResult(_0x492cb6,_0x32653d){return function(_0x4e215e){if(_0x4e215e){var _0x349db2=typeof _0x32653d[_0x80e1('0x22')]===_0x80e1('0x23')&&typeof _0x32653d['limit']===_0x80e1('0x23');var _0x57f3ee=_0x4e215e['count'];var _0x5dd631=_0x349db2?0x0:_0x32653d[_0x80e1('0x22')];var _0x4515d2=_0x349db2?_0x4e215e[_0x80e1('0x24')]:_0x32653d[_0x80e1('0x22')]+_0x32653d[_0x80e1('0x25')];var _0x3b4817;if(_0x4515d2>=_0x57f3ee){_0x4515d2=_0x57f3ee;_0x3b4817=0xc8;}else{_0x3b4817=0xce;}_0x492cb6[_0x80e1('0x26')](_0x3b4817);return _0x492cb6[_0x80e1('0x27')](_0x80e1('0x28'),_0x5dd631+'-'+_0x4515d2+'/'+_0x57f3ee)['json'](_0x4e215e);}return null;};}function patchUpdates(_0x51cdbc){return function(_0x2c9d7c){try{jsonpatch[_0x80e1('0x29')](_0x2c9d7c,_0x51cdbc,!![]);}catch(_0x3db454){return BPromise['reject'](_0x3db454);}return _0x2c9d7c[_0x80e1('0x2a')]();};}function saveUpdates(_0x22c8ce,_0x53e55a){return function(_0x5b3313){if(_0x5b3313){return _0x5b3313[_0x80e1('0x2b')](_0x22c8ce)[_0x80e1('0x2c')](function(_0xc1fe17){return _0xc1fe17;});}return null;};}function removeEntity(_0x1a0392,_0x44414d){return function(_0x1b3bf8){if(_0x1b3bf8){return _0x1b3bf8['destroy']()[_0x80e1('0x2c')](function(){_0x1a0392[_0x80e1('0x26')](0xcc)[_0x80e1('0x21')]();});}};}function handleEntityNotFound(_0x438e9d,_0x350da7){return function(_0x3ffc55){if(!_0x3ffc55){_0x438e9d['sendStatus'](0x194);}return _0x3ffc55;};}function handleError(_0x435cd9,_0x5d13b4){_0x5d13b4=_0x5d13b4||0x1f4;return function(_0x1acd4d){logger[_0x80e1('0x2d')](_0x1acd4d[_0x80e1('0x2e')]);if(_0x1acd4d[_0x80e1('0x2f')]){delete _0x1acd4d[_0x80e1('0x2f')];}_0x435cd9['status'](_0x5d13b4)[_0x80e1('0x30')](_0x1acd4d);};}exports[_0x80e1('0x31')]=function(_0x1a2cc9,_0x5b26cc){var _0x3c9875={'raw':![],'where':{'id':_0x1a2cc9['params']['id']}},_0x51e495={};_0x51e495[_0x80e1('0x32')]=_[_0x80e1('0x33')](db[_0x80e1('0x34')][_0x80e1('0x35')]);_0x51e495['query']=_[_0x80e1('0x33')](_0x1a2cc9[_0x80e1('0x36')]);_0x51e495['filters']=_[_0x80e1('0x37')](_0x51e495['model'],_0x51e495[_0x80e1('0x36')]);_0x3c9875[_0x80e1('0x38')]=_[_0x80e1('0x37')](_0x51e495[_0x80e1('0x32')],qs[_0x80e1('0x39')](_0x1a2cc9['query'][_0x80e1('0x39')]));_0x3c9875[_0x80e1('0x38')]=_0x3c9875['attributes'][_0x80e1('0x3a')]?_0x3c9875[_0x80e1('0x38')]:_0x51e495[_0x80e1('0x32')];if(_0x1a2cc9[_0x80e1('0x36')][_0x80e1('0x3b')]){_0x3c9875[_0x80e1('0x3c')]=[{'all':!![]}];}_0x3c9875=_[_0x80e1('0x3d')]({},_0x3c9875,_0x1a2cc9[_0x80e1('0x3e')]);return db[_0x80e1('0x34')][_0x80e1('0x3f')](_0x3c9875)[_0x80e1('0x2c')](handleEntityNotFound(_0x5b26cc,null))[_0x80e1('0x2c')](respondWithResult(_0x5b26cc,null))[_0x80e1('0x40')](handleError(_0x5b26cc,null));};exports[_0x80e1('0x41')]=function(_0x2f8fdf,_0x3efaae){return db[_0x80e1('0x34')][_0x80e1('0x3f')]({'where':{'id':_0x2f8fdf[_0x80e1('0x42')]['id']}})[_0x80e1('0x2c')](handleEntityNotFound(_0x3efaae,null))['then'](removeEntity(_0x3efaae,null))['catch'](handleError(_0x3efaae,null));};function widgetAttributes(_0x578270){try{switch(_0x578270[_0x80e1('0x43')]){case _0x80e1('0x44'):return[{'name':'attrUrl','value':_0x578270[_0x80e1('0x45')]||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x0]?_0x578270['attrs'][0x0]['value']:undefined)||_0x80e1('0x47')}];case _0x80e1('0x48'):return[{'name':'attrPath','value':_0x578270[_0x80e1('0x49')]||(_0x578270[_0x80e1('0x46')]&&_0x578270['attrs'][0x0]?_0x578270[_0x80e1('0x46')][0x0][_0x80e1('0x4a')]:undefined)||''}];case _0x80e1('0x4b'):return[{'name':_0x80e1('0x4c'),'value':_0x578270['attrHourFormat']||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x0]?_0x578270[_0x80e1('0x46')][0x0]['value']:undefined)||_0x80e1('0x4d')},{'name':_0x80e1('0x4e'),'value':_0x578270[_0x80e1('0x4e')]||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x1]?_0x578270['attrs'][0x1][_0x80e1('0x4a')]:undefined)||_0x80e1('0x4f')},{'name':_0x80e1('0x50'),'value':_0x578270['attrFontSize']||(_0x578270[_0x80e1('0x46')]&&_0x578270['attrs'][0x2]?_0x578270[_0x80e1('0x46')][0x2][_0x80e1('0x4a')]:undefined)||0xc}];case'counter':return[{'name':_0x80e1('0x51'),'value':_0x578270[_0x80e1('0x51')]||(_0x578270['attrs']&&_0x578270['attrs'][0x0]?_0x578270['attrs'][0x0][_0x80e1('0x4a')]:undefined)||_0x80e1('0x52')},{'name':_0x80e1('0x53'),'value':_0x578270['attrVoiceQueues']||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x1]?_0x578270['attrs'][0x1][_0x80e1('0x4a')]:undefined)||[]},{'name':'attrFontSize','value':_0x578270[_0x80e1('0x50')]||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x2]?_0x578270[_0x80e1('0x46')][0x2][_0x80e1('0x4a')]:undefined)||0x14}];case'multibar-chart':case _0x80e1('0x54'):return[{'name':_0x80e1('0x55'),'value':_0x578270[_0x80e1('0x55')]||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x0]?_0x578270['attrs'][0x0][_0x80e1('0x4a')]:undefined)||_0x80e1('0x52')},{'name':_0x80e1('0x56'),'value':_0x578270[_0x80e1('0x56')]||(_0x578270[_0x80e1('0x46')]&&_0x578270['attrs'][0x1]?_0x578270['attrs'][0x1][_0x80e1('0x4a')]:undefined)||null},{'name':_0x80e1('0x57'),'value':_0x578270[_0x80e1('0x57')]||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x2]?_0x578270['attrs'][0x2][_0x80e1('0x4a')]:undefined)||null},{'name':_0x80e1('0x53'),'value':_0x578270['attrVoiceQueues']||(_0x578270['attrs']&&_0x578270[_0x80e1('0x46')][0x3]?_0x578270[_0x80e1('0x46')][0x3]['value']:undefined)||[]}];case _0x80e1('0x58'):return[{'name':'attrReport','type':_0x578270[_0x80e1('0x59')]||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x0]?_0x578270[_0x80e1('0x46')][0x0][_0x80e1('0x43')]:undefined)||null,'value':_0x578270['attrReport']||(_0x578270[_0x80e1('0x46')]&&_0x578270[_0x80e1('0x46')][0x0]?_0x578270['attrs'][0x0][_0x80e1('0x4a')]:undefined)||null},{'name':_0x80e1('0x5a'),'value':_0x578270[_0x80e1('0x5a')]||(_0x578270[_0x80e1('0x46')]&&_0x578270['attrs'][0x1]?_0x578270[_0x80e1('0x46')][0x1][_0x80e1('0x4a')]:undefined)||0x0}];default:return[];}}catch(_0x5205c3){logger[_0x80e1('0x2d')](_0x80e1('0x5b'),JSON[_0x80e1('0x5c')](_0x5205c3));return[];}}exports['create']=function(_0x1c9e9c,_0x2b751d){if(_0x1c9e9c[_0x80e1('0x5d')]){_0x1c9e9c[_0x80e1('0x5d')][_0x80e1('0x46')]=widgetAttributes(_0x1c9e9c[_0x80e1('0x5d')]);}return db[_0x80e1('0x34')][_0x80e1('0x5e')](_0x1c9e9c[_0x80e1('0x5d')],{})[_0x80e1('0x2c')](respondWithResult(_0x2b751d,0xc9))[_0x80e1('0x40')](handleError(_0x2b751d,null));};exports[_0x80e1('0x2b')]=function(_0x7467dc,_0x3d21aa){if(_0x7467dc[_0x80e1('0x5d')]['id']){delete _0x7467dc['body']['id'];}_0x7467dc[_0x80e1('0x5d')][_0x80e1('0x46')]=widgetAttributes(_0x7467dc['body']);return db[_0x80e1('0x34')]['find']({'where':{'id':_0x7467dc[_0x80e1('0x42')]['id']}})['then'](handleEntityNotFound(_0x3d21aa,null))[_0x80e1('0x2c')](saveUpdates(_0x7467dc[_0x80e1('0x5d')],null))[_0x80e1('0x2c')](respondWithResult(_0x3d21aa,null))[_0x80e1('0x40')](handleError(_0x3d21aa,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd13=['update','remove','emit','hook','exports','events','../../mysqldb','save'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xfd13,0xa5));var _0x3fd1=function(_0x3bc6ee,_0x5ee4d8){_0x3bc6ee=_0x3bc6ee-0x0;var _0x369102=_0xfd13[_0x3bc6ee];return _0x369102;};'use strict';var EventEmitter=require(_0x3fd1('0x0'));var DashboardItem=require(_0x3fd1('0x1'))['db']['DashboardItem'];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3fd1('0x2'),'afterUpdate':_0x3fd1('0x3'),'afterDestroy':_0x3fd1('0x4')};function emitEvent(_0x3ef7ed){return function(_0x2500da,_0x5f3c58,_0x17f8e3){DashboardItemEvents[_0x3fd1('0x5')](_0x3ef7ed+':'+_0x2500da['id'],_0x2500da);DashboardItemEvents[_0x3fd1('0x5')](_0x3ef7ed,_0x2500da);_0x17f8e3(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];DashboardItem[_0x3fd1('0x6')](e,emitEvent(event));}}module[_0x3fd1('0x7')]=DashboardItemEvents;
\ No newline at end of file
+var _0xea68=['update','remove','emit','hasOwnProperty','exports','save'];(function(_0x5b872f,_0x5395b4){var _0x27a106=function(_0x223b69){while(--_0x223b69){_0x5b872f['push'](_0x5b872f['shift']());}};_0x27a106(++_0x5395b4);}(_0xea68,0x77));var _0x8ea6=function(_0xbe6dd2,_0x376a3d){_0xbe6dd2=_0xbe6dd2-0x0;var _0x558cc2=_0xea68[_0xbe6dd2];return _0x558cc2;};'use strict';var EventEmitter=require('events');var DashboardItem=require('../../mysqldb')['db']['DashboardItem'];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x8ea6('0x0'),'afterUpdate':_0x8ea6('0x1'),'afterDestroy':_0x8ea6('0x2')};function emitEvent(_0x24d89c){return function(_0x173ef7,_0x2ab9f2,_0x1f7fb7){DashboardItemEvents[_0x8ea6('0x3')](_0x24d89c+':'+_0x173ef7['id'],_0x173ef7);DashboardItemEvents[_0x8ea6('0x3')](_0x24d89c,_0x173ef7);_0x1f7fb7(null);};}for(var e in events){if(events[_0x8ea6('0x4')](e)){var event=events[e];DashboardItem['hook'](e,emitEvent(event));}}module[_0x8ea6('0x5')]=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x312d=['exports','define','dashboard_items','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','./dashboardItem.attributes'];(function(_0x10bcc4,_0x4400e2){var _0x2da988=function(_0x2ee849){while(--_0x2ee849){_0x10bcc4['push'](_0x10bcc4['shift']());}};_0x2da988(++_0x4400e2);}(_0x312d,0x14d));var _0xd312=function(_0x279d37,_0x14de3f){_0x279d37=_0x279d37-0x0;var _0x530173=_0x312d[_0x279d37];return _0x530173;};'use strict';var _=require(_0xd312('0x0'));var util=require(_0xd312('0x1'));var logger=require(_0xd312('0x2'))('api');var moment=require('moment');var BPromise=require(_0xd312('0x3'));var rp=require(_0xd312('0x4'));var fs=require('fs');var path=require(_0xd312('0x5'));var rimraf=require(_0xd312('0x6'));var config=require('../../config/environment');var attributes=require(_0xd312('0x7'));module[_0xd312('0x8')]=function(_0x5bf5d1,_0x25b4e6){return _0x5bf5d1[_0xd312('0x9')]('DashboardItem',attributes,{'tableName':_0xd312('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdfd0=['../../config/logger','api','moment','bluebird','path','../../config/environment','./dashboardItem.attributes','define','DashboardItem','lodash','util'];(function(_0x27af45,_0x1b57aa){var _0x18df21=function(_0x4b7679){while(--_0x4b7679){_0x27af45['push'](_0x27af45['shift']());}};_0x18df21(++_0x1b57aa);}(_0xdfd0,0x13d));var _0x0dfd=function(_0x5c634f,_0x7e428c){_0x5c634f=_0x5c634f-0x0;var _0x517272=_0xdfd0[_0x5c634f];return _0x517272;};'use strict';var _=require(_0x0dfd('0x0'));var util=require(_0x0dfd('0x1'));var logger=require(_0x0dfd('0x2'))(_0x0dfd('0x3'));var moment=require(_0x0dfd('0x4'));var BPromise=require(_0x0dfd('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0dfd('0x6'));var rimraf=require('rimraf');var config=require(_0x0dfd('0x7'));var attributes=require(_0x0dfd('0x8'));module['exports']=function(_0x1241ee,_0xd8073a){return _0x1241ee[_0x0dfd('0x9')](_0x0dfd('0xa'),attributes,{'tableName':'dashboard_items','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe546=['code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','info','DashboardItem,\x20%s,\x20%s','debug','DashboardItem,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x375ac9,_0x262210){var _0x421ea2=function(_0x10e6ba){while(--_0x10e6ba){_0x375ac9['push'](_0x375ac9['shift']());}};_0x421ea2(++_0x262210);}(_0xe546,0x1cf));var _0x6e54=function(_0x2306f4,_0x106dfa){_0x2306f4=_0x2306f4-0x0;var _0x5245d3=_0xe546[_0x2306f4];return _0x5245d3;};'use strict';var _=require(_0x6e54('0x0'));var util=require(_0x6e54('0x1'));var moment=require(_0x6e54('0x2'));var BPromise=require('bluebird');var rs=require(_0x6e54('0x3'));var fs=require('fs');var Redis=require(_0x6e54('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x6e54('0x5'));var logger=require(_0x6e54('0x6'))('rpc');var config=require(_0x6e54('0x7'));var jayson=require(_0x6e54('0x8'));var client=jayson[_0x6e54('0x9')][_0x6e54('0xa')]({'port':0x232a});config[_0x6e54('0xb')]=_[_0x6e54('0xc')](config[_0x6e54('0xb')],{'host':_0x6e54('0xd'),'port':0x18eb});var socket=require(_0x6e54('0xe'))(new Redis(config[_0x6e54('0xb')]));require('./dashboardItem.socket')[_0x6e54('0xf')](socket);function respondWithRpcPromise(_0x114046,_0x265ddb,_0x1778a6){return new BPromise(function(_0x48c4e6,_0xd408a6){return client['request'](_0x114046,_0x1778a6)['then'](function(_0x50b08){logger[_0x6e54('0x10')](_0x6e54('0x11'),_0x265ddb,'request\x20sent');logger[_0x6e54('0x12')](_0x6e54('0x13'),_0x265ddb,_0x6e54('0x14'),JSON[_0x6e54('0x15')](_0x50b08));if(_0x50b08[_0x6e54('0x16')]){if(_0x50b08[_0x6e54('0x16')][_0x6e54('0x17')]===0x1f4){logger['error'](_0x6e54('0x11'),_0x265ddb,_0x50b08[_0x6e54('0x16')][_0x6e54('0x18')]);return _0xd408a6(_0x50b08[_0x6e54('0x16')][_0x6e54('0x18')]);}logger[_0x6e54('0x16')](_0x6e54('0x11'),_0x265ddb,_0x50b08[_0x6e54('0x16')][_0x6e54('0x18')]);return _0x48c4e6(_0x50b08['error']['message']);}else{logger[_0x6e54('0x10')]('DashboardItem,\x20%s,\x20%s',_0x265ddb,_0x6e54('0x14'));_0x48c4e6(_0x50b08[_0x6e54('0x19')][_0x6e54('0x18')]);}})[_0x6e54('0x1a')](function(_0x2f7aba){logger[_0x6e54('0x16')](_0x6e54('0x11'),_0x265ddb,_0x2f7aba);_0xd408a6(_0x2f7aba);});});}
\ No newline at end of file
+var _0x8739=['../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter','./dashboardItem.socket','register','then','info','DashboardItem,\x20%s,\x20%s','request\x20sent','debug','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x3b6eb9,_0x409248){var _0x2d48a4=function(_0x5c5fb8){while(--_0x5c5fb8){_0x3b6eb9['push'](_0x3b6eb9['shift']());}};_0x2d48a4(++_0x409248);}(_0x8739,0x174));var _0x9873=function(_0x3eab2c,_0x2754ce){_0x3eab2c=_0x3eab2c-0x0;var _0x4361f2=_0x8739[_0x3eab2c];return _0x4361f2;};'use strict';var _=require('lodash');var util=require(_0x9873('0x0'));var moment=require(_0x9873('0x1'));var BPromise=require(_0x9873('0x2'));var rs=require(_0x9873('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9873('0x4'))['db'];var utils=require(_0x9873('0x5'));var logger=require(_0x9873('0x6'))(_0x9873('0x7'));var config=require(_0x9873('0x8'));var jayson=require(_0x9873('0x9'));var client=jayson['client'][_0x9873('0xa')]({'port':0x232a});config[_0x9873('0xb')]=_[_0x9873('0xc')](config[_0x9873('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x9873('0xd'))(new Redis(config[_0x9873('0xb')]));require(_0x9873('0xe'))[_0x9873('0xf')](socket);function respondWithRpcPromise(_0x241171,_0x1c1b6c,_0x320321){return new BPromise(function(_0x533642,_0x5af8e6){return client['request'](_0x241171,_0x320321)[_0x9873('0x10')](function(_0x8229e7){logger[_0x9873('0x11')](_0x9873('0x12'),_0x1c1b6c,_0x9873('0x13'));logger[_0x9873('0x14')](_0x9873('0x15'),_0x1c1b6c,'request\x20sent',JSON[_0x9873('0x16')](_0x8229e7));if(_0x8229e7[_0x9873('0x17')]){if(_0x8229e7[_0x9873('0x17')]['code']===0x1f4){logger[_0x9873('0x17')](_0x9873('0x12'),_0x1c1b6c,_0x8229e7['error']['message']);return _0x5af8e6(_0x8229e7[_0x9873('0x17')]['message']);}logger[_0x9873('0x17')]('DashboardItem,\x20%s,\x20%s',_0x1c1b6c,_0x8229e7[_0x9873('0x17')][_0x9873('0x18')]);return _0x533642(_0x8229e7[_0x9873('0x17')][_0x9873('0x18')]);}else{logger[_0x9873('0x11')](_0x9873('0x12'),_0x1c1b6c,_0x9873('0x13'));_0x533642(_0x8229e7[_0x9873('0x19')][_0x9873('0x18')]);}})[_0x9873('0x1a')](function(_0x8527e7){logger[_0x9873('0x17')](_0x9873('0x12'),_0x1c1b6c,_0x8527e7);_0x5af8e6(_0x8527e7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6899=['remove','removeListener','register','length','dashboardItem:','save'];(function(_0x26b9cd,_0x4959d8){var _0x3a56e9=function(_0x4c0554){while(--_0x4c0554){_0x26b9cd['push'](_0x26b9cd['shift']());}};_0x3a56e9(++_0x4959d8);}(_0x6899,0x6b));var _0x9689=function(_0x5d7485,_0x498850){_0x5d7485=_0x5d7485-0x0;var _0x292e76=_0x6899[_0x5d7485];return _0x292e76;};'use strict';var DashboardItemEvents=require('./dashboardItem.events');var events=[_0x9689('0x0'),_0x9689('0x1'),'update'];function createListener(_0x1d676a,_0x53338a){return function(_0x195416){_0x53338a['emit'](_0x1d676a,_0x195416);};}function removeListener(_0xfb9a30,_0xacb38d){return function(){DashboardItemEvents[_0x9689('0x2')](_0xfb9a30,_0xacb38d);};}exports[_0x9689('0x3')]=function(_0x329603){for(var _0x559cd7=0x0,_0x233d44=events[_0x9689('0x4')];_0x559cd7<_0x233d44;_0x559cd7++){var _0x1f89dc=events[_0x559cd7];var _0x5a01ee=createListener(_0x9689('0x5')+_0x1f89dc,_0x329603);DashboardItemEvents['on'](_0x1f89dc,_0x5a01ee);}};
\ No newline at end of file
+var _0xe137=['save','update','emit','removeListener','dashboardItem:','./dashboardItem.events'];(function(_0x4a2f97,_0x1fd001){var _0x105ee8=function(_0x4ba8dc){while(--_0x4ba8dc){_0x4a2f97['push'](_0x4a2f97['shift']());}};_0x105ee8(++_0x1fd001);}(_0xe137,0x6b));var _0x7e13=function(_0x5b740b,_0x381833){_0x5b740b=_0x5b740b-0x0;var _0x6f8f4e=_0xe137[_0x5b740b];return _0x6f8f4e;};'use strict';var DashboardItemEvents=require(_0x7e13('0x0'));var events=[_0x7e13('0x1'),'remove',_0x7e13('0x2')];function createListener(_0x2e4e81,_0x141b10){return function(_0x2def4a){_0x141b10[_0x7e13('0x3')](_0x2e4e81,_0x2def4a);};}function removeListener(_0x29f390,_0x472a2e){return function(){DashboardItemEvents[_0x7e13('0x4')](_0x29f390,_0x472a2e);};}exports['register']=function(_0x56f81a){for(var _0x157fee=0x0,_0x1804f7=events['length'];_0x157fee<_0x1804f7;_0x157fee++){var _0x582457=events[_0x157fee];var _0x424306=createListener(_0x7e13('0x5')+_0x582457,_0x56f81a);DashboardItemEvents['on'](_0x582457,_0x424306);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe11=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./dashboardItem.controller','/:id','isAuthenticated','show','post','create','update','delete','destroy','exports','multer'];(function(_0x2b61cd,_0x1e876e){var _0x658eb6=function(_0x248fb6){while(--_0x248fb6){_0x2b61cd['push'](_0x2b61cd['shift']());}};_0x658eb6(++_0x1e876e);}(_0xbe11,0x109));var _0x1be1=function(_0xc4bb81,_0x592159){_0xc4bb81=_0xc4bb81-0x0;var _0x17d82b=_0xbe11[_0xc4bb81];return _0x17d82b;};'use strict';var multer=require(_0x1be1('0x0'));var util=require(_0x1be1('0x1'));var path=require(_0x1be1('0x2'));var timeout=require(_0x1be1('0x3'));var express=require(_0x1be1('0x4'));var router=express[_0x1be1('0x5')]();var fs_extra=require(_0x1be1('0x6'));var auth=require(_0x1be1('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x1be1('0x8'));var controller=require(_0x1be1('0x9'));router['get'](_0x1be1('0xa'),auth[_0x1be1('0xb')](),controller[_0x1be1('0xc')]);router[_0x1be1('0xd')]('/',auth['isAuthenticated'](),controller[_0x1be1('0xe')]);router['put']('/:id',auth[_0x1be1('0xb')](),controller[_0x1be1('0xf')]);router[_0x1be1('0x10')](_0x1be1('0xa'),auth['isAuthenticated'](),controller[_0x1be1('0x11')]);module[_0x1be1('0x12')]=router;
\ No newline at end of file
+var _0xfc24=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated','post','put','update','destroy','multer','util','connect-timeout','express','Router'];(function(_0x4ec63a,_0x2ef377){var _0x5ee5d3=function(_0x661f1b){while(--_0x661f1b){_0x4ec63a['push'](_0x4ec63a['shift']());}};_0x5ee5d3(++_0x2ef377);}(_0xfc24,0x13b));var _0x4fc2=function(_0x5e8eae,_0x4f81e0){_0x5e8eae=_0x5e8eae-0x0;var _0xdd09cd=_0xfc24[_0x5e8eae];return _0xdd09cd;};'use strict';var multer=require(_0x4fc2('0x0'));var util=require(_0x4fc2('0x1'));var path=require('path');var timeout=require(_0x4fc2('0x2'));var express=require(_0x4fc2('0x3'));var router=express[_0x4fc2('0x4')]();var fs_extra=require(_0x4fc2('0x5'));var auth=require(_0x4fc2('0x6'));var interaction=require(_0x4fc2('0x7'));var config=require(_0x4fc2('0x8'));var controller=require('./dashboardItem.controller');router[_0x4fc2('0x9')](_0x4fc2('0xa'),auth[_0x4fc2('0xb')](),controller['show']);router[_0x4fc2('0xc')]('/',auth[_0x4fc2('0xb')](),controller['create']);router[_0x4fc2('0xd')](_0x4fc2('0xa'),auth[_0x4fc2('0xb')](),controller[_0x4fc2('0xe')]);router['delete'](_0x4fc2('0xa'),auth[_0x4fc2('0xb')](),controller[_0x4fc2('0xf')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0528=['ENUM','first','second','third','sequelize','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0528,0x66));var _0x8052=function(_0xe2a4a1,_0x55d6f0){_0xe2a4a1=_0xe2a4a1-0x0;var _0x1a967c=_0x0528[_0xe2a4a1];return _0x1a967c;};'use strict';var Sequelize=require(_0x8052('0x0'));module[_0x8052('0x1')]={'name':{'type':Sequelize[_0x8052('0x2')],'allowNull':![]},'level':{'type':Sequelize[_0x8052('0x3')](_0x8052('0x4'),_0x8052('0x5'),_0x8052('0x6')),'allowNull':![],'defaultValue':_0x8052('0x4')},'description':{'type':Sequelize[_0x8052('0x2')]}};
\ No newline at end of file
+var _0x7c9a=['exports','STRING','ENUM','first','third','sequelize'];(function(_0x26cac6,_0x3e959e){var _0x384ba5=function(_0x5e933b){while(--_0x5e933b){_0x26cac6['push'](_0x26cac6['shift']());}};_0x384ba5(++_0x3e959e);}(_0x7c9a,0xb3));var _0xa7c9=function(_0x2daf2c,_0x4815b8){_0x2daf2c=_0x2daf2c-0x0;var _0x1763b0=_0x7c9a[_0x2daf2c];return _0x1763b0;};'use strict';var Sequelize=require(_0xa7c9('0x0'));module[_0xa7c9('0x1')]={'name':{'type':Sequelize[_0xa7c9('0x2')],'allowNull':![]},'level':{'type':Sequelize[_0xa7c9('0x3')](_0xa7c9('0x4'),'second',_0xa7c9('0x5')),'allowNull':![],'defaultValue':_0xa7c9('0x4')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87d3=['undefined','limit','count','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','index','map','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','order','where','pick','filter','merge','type','Disposition','includeAll','include','findAll','catch','show','params','options','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Dispositions','UserProfileSection','userProfileId','autoAssociation','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset'];(function(_0x332309,_0x5eff30){var _0x5048cf=function(_0x5b5ef5){while(--_0x5b5ef5){_0x332309['push'](_0x332309['shift']());}};_0x5048cf(++_0x5eff30);}(_0x87d3,0x86));var _0x387d=function(_0x149ca0,_0x2ac7f5){_0x149ca0=_0x149ca0-0x0;var _0x56b6b9=_0x87d3[_0x149ca0];return _0x56b6b9;};'use strict';var emlformat=require(_0x387d('0x0'));var rimraf=require(_0x387d('0x1'));var zipdir=require(_0x387d('0x2'));var jsonpatch=require(_0x387d('0x3'));var rp=require(_0x387d('0x4'));var moment=require(_0x387d('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x387d('0x6'));var util=require('util');var path=require(_0x387d('0x7'));var sox=require(_0x387d('0x8'));var csv=require(_0x387d('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x387d('0xa'));var _=require(_0x387d('0xb'));var squel=require(_0x387d('0xc'));var crypto=require(_0x387d('0xd'));var jsforce=require(_0x387d('0xe'));var deskjs=require(_0x387d('0xf'));var toCsv=require(_0x387d('0x9'));var querystring=require(_0x387d('0x10'));var Papa=require(_0x387d('0x11'));var Redis=require(_0x387d('0x12'));var authService=require(_0x387d('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x387d('0x14'));var hardwareService=require(_0x387d('0x15'));var logger=require(_0x387d('0x16'))(_0x387d('0x17'));var utils=require(_0x387d('0x18'));var config=require(_0x387d('0x19'));var licenseUtil=require(_0x387d('0x1a'));var db=require(_0x387d('0x1b'))['db'];function respondWithStatusCode(_0x325292,_0x45c990){_0x45c990=_0x45c990||0xcc;return function(_0x371959){if(_0x371959){return _0x325292[_0x387d('0x1c')](_0x45c990);}return _0x325292[_0x387d('0x1d')](_0x45c990)[_0x387d('0x1e')]();};}function respondWithResult(_0x11c3bd,_0x51000d){_0x51000d=_0x51000d||0xc8;return function(_0x4914a8){if(_0x4914a8){return _0x11c3bd[_0x387d('0x1d')](_0x51000d)['json'](_0x4914a8);}};}function respondWithFilteredResult(_0x54c482,_0x516b42){return function(_0xf6f574){if(_0xf6f574){var _0x316368=typeof _0x516b42[_0x387d('0x1f')]===_0x387d('0x20')&&typeof _0x516b42[_0x387d('0x21')]===_0x387d('0x20');var _0x3bbf9f=_0xf6f574[_0x387d('0x22')];var _0x560b1c=_0x316368?0x0:_0x516b42[_0x387d('0x1f')];var _0xa50585=_0x316368?_0xf6f574[_0x387d('0x22')]:_0x516b42['offset']+_0x516b42[_0x387d('0x21')];var _0x53933a;if(_0xa50585>=_0x3bbf9f){_0xa50585=_0x3bbf9f;_0x53933a=0xc8;}else{_0x53933a=0xce;}_0x54c482[_0x387d('0x1d')](_0x53933a);return _0x54c482['set'](_0x387d('0x23'),_0x560b1c+'-'+_0xa50585+'/'+_0x3bbf9f)[_0x387d('0x24')](_0xf6f574);}return null;};}function patchUpdates(_0x2abd07){return function(_0x37b84b){try{jsonpatch[_0x387d('0x25')](_0x37b84b,_0x2abd07,!![]);}catch(_0x5c733b){return BPromise['reject'](_0x5c733b);}return _0x37b84b[_0x387d('0x26')]();};}function saveUpdates(_0x7799a7,_0x2f2827){return function(_0x580a6e){if(_0x580a6e){return _0x580a6e[_0x387d('0x27')](_0x7799a7)[_0x387d('0x28')](function(_0x3e5620){return _0x3e5620;});}return null;};}function removeEntity(_0x2be266,_0x36ee8b){return function(_0x5569db){if(_0x5569db){return _0x5569db['destroy']()['then'](function(){var _0x463121=_0x5569db['get']({'plain':!![]});var _0x5c567b='Dispositions';return db['UserProfileResource'][_0x387d('0x29')]({'where':{'type':_0x5c567b,'resourceId':_0x463121['id']}})[_0x387d('0x28')](function(){return _0x5569db;});})[_0x387d('0x28')](function(){_0x2be266[_0x387d('0x1d')](0xcc)[_0x387d('0x1e')]();});}};}function handleEntityNotFound(_0xe0982e,_0x1d3f3a){return function(_0x2df701){if(!_0x2df701){_0xe0982e[_0x387d('0x1c')](0x194);}return _0x2df701;};}function handleError(_0x270231,_0x25214f){_0x25214f=_0x25214f||0x1f4;return function(_0x22a7a6){logger[_0x387d('0x2a')](_0x22a7a6[_0x387d('0x2b')]);if(_0x22a7a6[_0x387d('0x2c')]){delete _0x22a7a6[_0x387d('0x2c')];}_0x270231['status'](_0x25214f)[_0x387d('0x2d')](_0x22a7a6);};}exports[_0x387d('0x2e')]=function(_0x4495fb,_0x588feb){var _0x370689={},_0x452a11={},_0x386af6={'count':0x0,'rows':[]};var _0x23a388=_[_0x387d('0x2f')](db['Disposition'][_0x387d('0x30')],function(_0x11f171){return{'name':_0x11f171['fieldName'],'type':_0x11f171['type'][_0x387d('0x31')]};});_0x452a11[_0x387d('0x32')]=_[_0x387d('0x2f')](_0x23a388,_0x387d('0x2c'));_0x452a11[_0x387d('0x33')]=_[_0x387d('0x34')](_0x4495fb['query']);_0x452a11[_0x387d('0x35')]=_[_0x387d('0x36')](_0x452a11[_0x387d('0x32')],_0x452a11[_0x387d('0x33')]);_0x370689[_0x387d('0x37')]=_[_0x387d('0x36')](_0x452a11[_0x387d('0x32')],qs['fields'](_0x4495fb[_0x387d('0x33')][_0x387d('0x38')]));_0x370689[_0x387d('0x37')]=_0x370689[_0x387d('0x37')][_0x387d('0x39')]?_0x370689[_0x387d('0x37')]:_0x452a11['model'];if(!_0x4495fb['query']['hasOwnProperty']('nolimit')){_0x370689[_0x387d('0x21')]=qs[_0x387d('0x21')](_0x4495fb['query'][_0x387d('0x21')]);_0x370689[_0x387d('0x1f')]=qs['offset'](_0x4495fb[_0x387d('0x33')][_0x387d('0x1f')]);}_0x370689[_0x387d('0x3a')]=qs['sort'](_0x4495fb[_0x387d('0x33')]['sort']);_0x370689[_0x387d('0x3b')]=qs[_0x387d('0x35')](_[_0x387d('0x3c')](_0x4495fb[_0x387d('0x33')],_0x452a11['filters']),_0x23a388);if(_0x4495fb[_0x387d('0x33')][_0x387d('0x3d')]){_0x370689['where']=_[_0x387d('0x3e')](_0x370689['where'],{'$or':_[_0x387d('0x2f')](_0x23a388,function(_0x1d2116){if(_0x1d2116[_0x387d('0x3f')]!=='VIRTUAL'){var _0x39bdff={};_0x39bdff[_0x1d2116[_0x387d('0x2c')]]={'$like':'%'+_0x4495fb[_0x387d('0x33')]['filter']+'%'};return _0x39bdff;}})});}_0x370689=_[_0x387d('0x3e')]({},_0x370689,_0x4495fb['options']);var _0x564b18={'where':_0x370689[_0x387d('0x3b')]};return db[_0x387d('0x40')][_0x387d('0x22')](_0x564b18)[_0x387d('0x28')](function(_0x539063){_0x386af6['count']=_0x539063;if(_0x4495fb[_0x387d('0x33')][_0x387d('0x41')]){_0x370689[_0x387d('0x42')]=[{'all':!![]}];}return db[_0x387d('0x40')][_0x387d('0x43')](_0x370689);})[_0x387d('0x28')](function(_0x4e78c6){_0x386af6['rows']=_0x4e78c6;return _0x386af6;})[_0x387d('0x28')](respondWithFilteredResult(_0x588feb,_0x370689))[_0x387d('0x44')](handleError(_0x588feb,null));};exports[_0x387d('0x45')]=function(_0x4deb33,_0x1cc685){var _0x5b89dd={'raw':!![],'where':{'id':_0x4deb33[_0x387d('0x46')]['id']}},_0x286ffc={};_0x286ffc[_0x387d('0x32')]=_['keys'](db[_0x387d('0x40')][_0x387d('0x30')]);_0x286ffc['query']=_[_0x387d('0x34')](_0x4deb33[_0x387d('0x33')]);_0x286ffc['filters']=_[_0x387d('0x36')](_0x286ffc[_0x387d('0x32')],_0x286ffc[_0x387d('0x33')]);_0x5b89dd[_0x387d('0x37')]=_['intersection'](_0x286ffc[_0x387d('0x32')],qs['fields'](_0x4deb33[_0x387d('0x33')][_0x387d('0x38')]));_0x5b89dd[_0x387d('0x37')]=_0x5b89dd['attributes'][_0x387d('0x39')]?_0x5b89dd[_0x387d('0x37')]:_0x286ffc[_0x387d('0x32')];if(_0x4deb33[_0x387d('0x33')][_0x387d('0x41')]){_0x5b89dd[_0x387d('0x42')]=[{'all':!![]}];}_0x5b89dd=_[_0x387d('0x3e')]({},_0x5b89dd,_0x4deb33[_0x387d('0x47')]);return db[_0x387d('0x40')][_0x387d('0x48')](_0x5b89dd)[_0x387d('0x28')](handleEntityNotFound(_0x1cc685,null))['then'](respondWithResult(_0x1cc685,null))[_0x387d('0x44')](handleError(_0x1cc685,null));};exports[_0x387d('0x49')]=function(_0x4160dc,_0x59d681){return db['Disposition']['create'](_0x4160dc[_0x387d('0x4a')],{})[_0x387d('0x28')](function(_0xec2ef4){var _0x30b3e9=_0x4160dc[_0x387d('0x4b')][_0x387d('0x4c')]({'plain':!![]});if(!_0x30b3e9)throw new Error(_0x387d('0x4d'));if(_0x30b3e9[_0x387d('0x4e')]===_0x387d('0x4b')){var _0x172461=_0xec2ef4[_0x387d('0x4c')]({'plain':!![]});var _0x46d651=_0x387d('0x4f');return db[_0x387d('0x50')][_0x387d('0x48')]({'where':{'name':_0x46d651,'userProfileId':_0x30b3e9[_0x387d('0x51')]},'raw':!![]})[_0x387d('0x28')](function(_0x381089){if(_0x381089&&_0x381089[_0x387d('0x52')]===0x0){return db['UserProfileResource'][_0x387d('0x49')]({'name':_0x172461[_0x387d('0x2c')],'resourceId':_0x172461['id'],'type':_0x381089['name'],'sectionId':_0x381089['id']},{})['then'](function(){return _0xec2ef4;});}else{return _0xec2ef4;}})[_0x387d('0x44')](function(_0x201f57){logger[_0x387d('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x201f57);throw _0x201f57;});}return _0xec2ef4;})[_0x387d('0x28')](respondWithResult(_0x59d681,0xc9))[_0x387d('0x44')](handleError(_0x59d681,null));};exports[_0x387d('0x27')]=function(_0x1f363f,_0x32031d){if(_0x1f363f[_0x387d('0x4a')]['id']){delete _0x1f363f[_0x387d('0x4a')]['id'];}return db[_0x387d('0x40')][_0x387d('0x48')]({'where':{'id':_0x1f363f[_0x387d('0x46')]['id']}})[_0x387d('0x28')](handleEntityNotFound(_0x32031d,null))['then'](saveUpdates(_0x1f363f[_0x387d('0x4a')],null))[_0x387d('0x28')](respondWithResult(_0x32031d,null))[_0x387d('0x44')](handleError(_0x32031d,null));};exports[_0x387d('0x29')]=function(_0x334f8c,_0x29e320){return db[_0x387d('0x40')][_0x387d('0x48')]({'where':{'id':_0x334f8c[_0x387d('0x46')]['id']}})[_0x387d('0x28')](handleEntityNotFound(_0x29e320,null))[_0x387d('0x28')](removeEntity(_0x29e320,null))['catch'](handleError(_0x29e320,null));};
\ No newline at end of file
+var _0x3f27=['query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','type','VIRTUAL','filter','merge','options','findAll','rows','params','includeAll','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','json','reject','save','update','then','get','Dispositions','UserProfileResource','destroy','end','error','name','send','index','map','Disposition','key'];(function(_0x4f83ca,_0x46f67a){var _0x1fbac3=function(_0x19e401){while(--_0x19e401){_0x4f83ca['push'](_0x4f83ca['shift']());}};_0x1fbac3(++_0x46f67a);}(_0x3f27,0x1f4));var _0x73f2=function(_0x94bc4f,_0x55232e){_0x94bc4f=_0x94bc4f-0x0;var _0x268f4b=_0x3f27[_0x94bc4f];return _0x268f4b;};'use strict';var emlformat=require(_0x73f2('0x0'));var rimraf=require(_0x73f2('0x1'));var zipdir=require(_0x73f2('0x2'));var jsonpatch=require(_0x73f2('0x3'));var rp=require(_0x73f2('0x4'));var moment=require('moment');var BPromise=require(_0x73f2('0x5'));var Mustache=require(_0x73f2('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x73f2('0x7'));var ejs=require(_0x73f2('0x8'));var fs=require('fs');var fs_extra=require(_0x73f2('0x9'));var _=require(_0x73f2('0xa'));var squel=require(_0x73f2('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x73f2('0xc'));var toCsv=require(_0x73f2('0x7'));var querystring=require(_0x73f2('0xd'));var Papa=require(_0x73f2('0xe'));var Redis=require(_0x73f2('0xf'));var authService=require(_0x73f2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x73f2('0x11'));var hardwareService=require(_0x73f2('0x12'));var logger=require(_0x73f2('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x73f2('0x14'));var db=require(_0x73f2('0x15'))['db'];function respondWithStatusCode(_0x20d4f3,_0x25e1bc){_0x25e1bc=_0x25e1bc||0xcc;return function(_0x454352){if(_0x454352){return _0x20d4f3[_0x73f2('0x16')](_0x25e1bc);}return _0x20d4f3[_0x73f2('0x17')](_0x25e1bc)['end']();};}function respondWithResult(_0x4d4bd2,_0x469686){_0x469686=_0x469686||0xc8;return function(_0x45e8e0){if(_0x45e8e0){return _0x4d4bd2['status'](_0x469686)['json'](_0x45e8e0);}};}function respondWithFilteredResult(_0x2c0720,_0x39feae){return function(_0x2a1ac6){if(_0x2a1ac6){var _0x262f51=typeof _0x39feae[_0x73f2('0x18')]===_0x73f2('0x19')&&typeof _0x39feae[_0x73f2('0x1a')]===_0x73f2('0x19');var _0x41e10c=_0x2a1ac6[_0x73f2('0x1b')];var _0x1dee61=_0x262f51?0x0:_0x39feae[_0x73f2('0x18')];var _0x2546a0=_0x262f51?_0x2a1ac6['count']:_0x39feae[_0x73f2('0x18')]+_0x39feae[_0x73f2('0x1a')];var _0x13c6ec;if(_0x2546a0>=_0x41e10c){_0x2546a0=_0x41e10c;_0x13c6ec=0xc8;}else{_0x13c6ec=0xce;}_0x2c0720[_0x73f2('0x17')](_0x13c6ec);return _0x2c0720['set'](_0x73f2('0x1c'),_0x1dee61+'-'+_0x2546a0+'/'+_0x41e10c)[_0x73f2('0x1d')](_0x2a1ac6);}return null;};}function patchUpdates(_0x416ead){return function(_0x2ae791){try{jsonpatch['apply'](_0x2ae791,_0x416ead,!![]);}catch(_0xd80727){return BPromise[_0x73f2('0x1e')](_0xd80727);}return _0x2ae791[_0x73f2('0x1f')]();};}function saveUpdates(_0x55416e,_0x4a723b){return function(_0x444b06){if(_0x444b06){return _0x444b06[_0x73f2('0x20')](_0x55416e)[_0x73f2('0x21')](function(_0x5e8f4c){return _0x5e8f4c;});}return null;};}function removeEntity(_0x4844df,_0x11a5da){return function(_0xd5bb3b){if(_0xd5bb3b){return _0xd5bb3b['destroy']()[_0x73f2('0x21')](function(){var _0x86c182=_0xd5bb3b[_0x73f2('0x22')]({'plain':!![]});var _0x4ecdc7=_0x73f2('0x23');return db[_0x73f2('0x24')][_0x73f2('0x25')]({'where':{'type':_0x4ecdc7,'resourceId':_0x86c182['id']}})['then'](function(){return _0xd5bb3b;});})['then'](function(){_0x4844df['status'](0xcc)[_0x73f2('0x26')]();});}};}function handleEntityNotFound(_0x4529c6,_0x398593){return function(_0x444efc){if(!_0x444efc){_0x4529c6[_0x73f2('0x16')](0x194);}return _0x444efc;};}function handleError(_0x3f784d,_0x545fb5){_0x545fb5=_0x545fb5||0x1f4;return function(_0x2840f0){logger[_0x73f2('0x27')](_0x2840f0['stack']);if(_0x2840f0[_0x73f2('0x28')]){delete _0x2840f0[_0x73f2('0x28')];}_0x3f784d[_0x73f2('0x17')](_0x545fb5)[_0x73f2('0x29')](_0x2840f0);};}exports[_0x73f2('0x2a')]=function(_0x52b04f,_0x3add12){var _0x1caacd={},_0x4fc6ff={},_0x5ea8d6={'count':0x0,'rows':[]};var _0x3a255f=_[_0x73f2('0x2b')](db[_0x73f2('0x2c')]['rawAttributes'],function(_0x4977d2){return{'name':_0x4977d2['fieldName'],'type':_0x4977d2['type'][_0x73f2('0x2d')]};});_0x4fc6ff['model']=_[_0x73f2('0x2b')](_0x3a255f,_0x73f2('0x28'));_0x4fc6ff[_0x73f2('0x2e')]=_[_0x73f2('0x2f')](_0x52b04f['query']);_0x4fc6ff[_0x73f2('0x30')]=_[_0x73f2('0x31')](_0x4fc6ff[_0x73f2('0x32')],_0x4fc6ff['query']);_0x1caacd[_0x73f2('0x33')]=_[_0x73f2('0x31')](_0x4fc6ff[_0x73f2('0x32')],qs['fields'](_0x52b04f[_0x73f2('0x2e')][_0x73f2('0x34')]));_0x1caacd[_0x73f2('0x33')]=_0x1caacd[_0x73f2('0x33')][_0x73f2('0x35')]?_0x1caacd[_0x73f2('0x33')]:_0x4fc6ff[_0x73f2('0x32')];if(!_0x52b04f[_0x73f2('0x2e')][_0x73f2('0x36')]('nolimit')){_0x1caacd['limit']=qs['limit'](_0x52b04f[_0x73f2('0x2e')][_0x73f2('0x1a')]);_0x1caacd[_0x73f2('0x18')]=qs['offset'](_0x52b04f[_0x73f2('0x2e')][_0x73f2('0x18')]);}_0x1caacd[_0x73f2('0x37')]=qs[_0x73f2('0x38')](_0x52b04f[_0x73f2('0x2e')]['sort']);_0x1caacd[_0x73f2('0x39')]=qs[_0x73f2('0x30')](_[_0x73f2('0x3a')](_0x52b04f[_0x73f2('0x2e')],_0x4fc6ff[_0x73f2('0x30')]),_0x3a255f);if(_0x52b04f[_0x73f2('0x2e')]['filter']){_0x1caacd[_0x73f2('0x39')]=_['merge'](_0x1caacd[_0x73f2('0x39')],{'$or':_[_0x73f2('0x2b')](_0x3a255f,function(_0x420a39){if(_0x420a39[_0x73f2('0x3b')]!==_0x73f2('0x3c')){var _0x283ea1={};_0x283ea1[_0x420a39[_0x73f2('0x28')]]={'$like':'%'+_0x52b04f[_0x73f2('0x2e')][_0x73f2('0x3d')]+'%'};return _0x283ea1;}})});}_0x1caacd=_[_0x73f2('0x3e')]({},_0x1caacd,_0x52b04f[_0x73f2('0x3f')]);var _0x317043={'where':_0x1caacd['where']};return db['Disposition'][_0x73f2('0x1b')](_0x317043)['then'](function(_0x58a244){_0x5ea8d6[_0x73f2('0x1b')]=_0x58a244;if(_0x52b04f[_0x73f2('0x2e')]['includeAll']){_0x1caacd['include']=[{'all':!![]}];}return db[_0x73f2('0x2c')][_0x73f2('0x40')](_0x1caacd);})[_0x73f2('0x21')](function(_0x211e04){_0x5ea8d6[_0x73f2('0x41')]=_0x211e04;return _0x5ea8d6;})[_0x73f2('0x21')](respondWithFilteredResult(_0x3add12,_0x1caacd))['catch'](handleError(_0x3add12,null));};exports['show']=function(_0x2c02ab,_0x2720ae){var _0x33e0ac={'raw':!![],'where':{'id':_0x2c02ab[_0x73f2('0x42')]['id']}},_0x4fd07a={};_0x4fd07a[_0x73f2('0x32')]=_[_0x73f2('0x2f')](db[_0x73f2('0x2c')]['rawAttributes']);_0x4fd07a[_0x73f2('0x2e')]=_['keys'](_0x2c02ab[_0x73f2('0x2e')]);_0x4fd07a['filters']=_[_0x73f2('0x31')](_0x4fd07a['model'],_0x4fd07a[_0x73f2('0x2e')]);_0x33e0ac[_0x73f2('0x33')]=_[_0x73f2('0x31')](_0x4fd07a[_0x73f2('0x32')],qs[_0x73f2('0x34')](_0x2c02ab[_0x73f2('0x2e')][_0x73f2('0x34')]));_0x33e0ac[_0x73f2('0x33')]=_0x33e0ac[_0x73f2('0x33')]['length']?_0x33e0ac[_0x73f2('0x33')]:_0x4fd07a['model'];if(_0x2c02ab[_0x73f2('0x2e')][_0x73f2('0x43')]){_0x33e0ac['include']=[{'all':!![]}];}_0x33e0ac=_['merge']({},_0x33e0ac,_0x2c02ab[_0x73f2('0x3f')]);return db[_0x73f2('0x2c')]['find'](_0x33e0ac)['then'](handleEntityNotFound(_0x2720ae,null))[_0x73f2('0x21')](respondWithResult(_0x2720ae,null))['catch'](handleError(_0x2720ae,null));};exports[_0x73f2('0x44')]=function(_0x4f9dfd,_0xdcdc3b){return db['Disposition'][_0x73f2('0x44')](_0x4f9dfd[_0x73f2('0x45')],{})[_0x73f2('0x21')](function(_0x410c4a){var _0x5739fd=_0x4f9dfd[_0x73f2('0x46')][_0x73f2('0x22')]({'plain':!![]});if(!_0x5739fd)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5739fd[_0x73f2('0x47')]===_0x73f2('0x46')){var _0x5d5bba=_0x410c4a[_0x73f2('0x22')]({'plain':!![]});var _0x4cfce9='Dispositions';return db[_0x73f2('0x48')]['find']({'where':{'name':_0x4cfce9,'userProfileId':_0x5739fd[_0x73f2('0x49')]},'raw':!![]})[_0x73f2('0x21')](function(_0x503f74){if(_0x503f74&&_0x503f74[_0x73f2('0x4a')]===0x0){return db[_0x73f2('0x24')][_0x73f2('0x44')]({'name':_0x5d5bba[_0x73f2('0x28')],'resourceId':_0x5d5bba['id'],'type':_0x503f74['name'],'sectionId':_0x503f74['id']},{})['then'](function(){return _0x410c4a;});}else{return _0x410c4a;}})[_0x73f2('0x4b')](function(_0x2eece4){logger[_0x73f2('0x27')](_0x73f2('0x4c'),_0x2eece4);throw _0x2eece4;});}return _0x410c4a;})['then'](respondWithResult(_0xdcdc3b,0xc9))[_0x73f2('0x4b')](handleError(_0xdcdc3b,null));};exports[_0x73f2('0x20')]=function(_0x5a55fe,_0xe968bd){if(_0x5a55fe[_0x73f2('0x45')]['id']){delete _0x5a55fe[_0x73f2('0x45')]['id'];}return db[_0x73f2('0x2c')][_0x73f2('0x4d')]({'where':{'id':_0x5a55fe[_0x73f2('0x42')]['id']}})['then'](handleEntityNotFound(_0xe968bd,null))['then'](saveUpdates(_0x5a55fe[_0x73f2('0x45')],null))['then'](respondWithResult(_0xe968bd,null))[_0x73f2('0x4b')](handleError(_0xe968bd,null));};exports[_0x73f2('0x25')]=function(_0xca621e,_0x275a6f){return db[_0x73f2('0x2c')]['find']({'where':{'id':_0xca621e[_0x73f2('0x42')]['id']}})[_0x73f2('0x21')](handleEntityNotFound(_0x275a6f,null))[_0x73f2('0x21')](removeEntity(_0x275a6f,null))['catch'](handleError(_0x275a6f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfe3=['../../config/environment','exports','define','name','ListId','ChatWebsiteId','name_mail','MailAccountId','FaxAccountId','name_openchannel','OpenchannelAccountId','name_whatsapp','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x3d99dc,_0x3fe15b){var _0xc331cb=function(_0x5ad1af){while(--_0x5ad1af){_0x3d99dc['push'](_0x3d99dc['shift']());}};_0xc331cb(++_0x3fe15b);}(_0xcfe3,0x11a));var _0x3cfe=function(_0x4a6252,_0x262760){_0x4a6252=_0x4a6252-0x0;var _0x1eb1bb=_0xcfe3[_0x4a6252];return _0x1eb1bb;};'use strict';var _=require('lodash');var util=require(_0x3cfe('0x0'));var logger=require(_0x3cfe('0x1'))('api');var moment=require(_0x3cfe('0x2'));var BPromise=require(_0x3cfe('0x3'));var rp=require(_0x3cfe('0x4'));var fs=require('fs');var path=require(_0x3cfe('0x5'));var rimraf=require('rimraf');var config=require(_0x3cfe('0x6'));var attributes=require('./disposition.attributes');module[_0x3cfe('0x7')]=function(_0xc19f44,_0x1cf0d9){return _0xc19f44[_0x3cfe('0x8')]('Disposition',attributes,{'tableName':'tools_dispositions','paranoid':![],'indexes':[{'unique':!![],'name':'name_voice','fields':[_0x3cfe('0x9'),_0x3cfe('0xa')]},{'unique':!![],'name':'name_chat','fields':[_0x3cfe('0x9'),_0x3cfe('0xb')]},{'unique':!![],'name':_0x3cfe('0xc'),'fields':['name',_0x3cfe('0xd')]},{'unique':!![],'name':'name_sms','fields':[_0x3cfe('0x9'),'SmsAccountId']},{'unique':!![],'name':'name_fax','fields':[_0x3cfe('0x9'),_0x3cfe('0xe')]},{'unique':!![],'name':_0x3cfe('0xf'),'fields':[_0x3cfe('0x9'),_0x3cfe('0x10')]},{'unique':!![],'name':_0x3cfe('0x11'),'fields':[_0x3cfe('0x9'),'WhatsappAccountId']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3558=['ChatWebsiteId','name_mail','MailAccountId','name_sms','SmsAccountId','name_fax','FaxAccountId','name_openchannel','OpenchannelAccountId','name_whatsapp','WhatsappAccountId','lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./disposition.attributes','exports','Disposition','tools_dispositions','name_voice','name','ListId','name_chat'];(function(_0x182a32,_0x298e71){var _0x30bf68=function(_0x5def04){while(--_0x5def04){_0x182a32['push'](_0x182a32['shift']());}};_0x30bf68(++_0x298e71);}(_0x3558,0xfe));var _0x8355=function(_0x32f7d7,_0x54231b){_0x32f7d7=_0x32f7d7-0x0;var _0x133d09=_0x3558[_0x32f7d7];return _0x133d09;};'use strict';var _=require(_0x8355('0x0'));var util=require(_0x8355('0x1'));var logger=require(_0x8355('0x2'))('api');var moment=require(_0x8355('0x3'));var BPromise=require(_0x8355('0x4'));var rp=require(_0x8355('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8355('0x6'));var config=require(_0x8355('0x7'));var attributes=require(_0x8355('0x8'));module[_0x8355('0x9')]=function(_0x5bba6a,_0x8f5726){return _0x5bba6a['define'](_0x8355('0xa'),attributes,{'tableName':_0x8355('0xb'),'paranoid':![],'indexes':[{'unique':!![],'name':_0x8355('0xc'),'fields':[_0x8355('0xd'),_0x8355('0xe')]},{'unique':!![],'name':_0x8355('0xf'),'fields':[_0x8355('0xd'),_0x8355('0x10')]},{'unique':!![],'name':_0x8355('0x11'),'fields':['name',_0x8355('0x12')]},{'unique':!![],'name':_0x8355('0x13'),'fields':[_0x8355('0xd'),_0x8355('0x14')]},{'unique':!![],'name':_0x8355('0x15'),'fields':[_0x8355('0xd'),_0x8355('0x16')]},{'unique':!![],'name':_0x8355('0x17'),'fields':[_0x8355('0xd'),_0x8355('0x18')]},{'unique':!![],'name':_0x8355('0x19'),'fields':[_0x8355('0xd'),_0x8355('0x1a')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\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(_0x474b2a,_0x481025){var _0x159f15=function(_0x22e7ec){while(--_0x22e7ec){_0x474b2a['push'](_0x474b2a['shift']());}};_0x159f15(++_0x481025);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xa9e0[_0x1facfa];return _0x9ec701;};'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
+var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\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(_0x32c19a,_0x197048){var _0x179c82=function(_0x251679){while(--_0x251679){_0x32c19a['push'](_0x32c19a['shift']());}};_0x179c82(++_0x197048);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0xa9e0[_0x1da04e];return _0xdd8c41;};'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 _0xc762=['/:id','show','post','put','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./disposition.controller','get','isAuthenticated','index'];(function(_0x13ffc0,_0x35d32f){var _0x1c8987=function(_0xdc4e44){while(--_0xdc4e44){_0x13ffc0['push'](_0x13ffc0['shift']());}};_0x1c8987(++_0x35d32f);}(_0xc762,0x92));var _0x2c76=function(_0x1d7791,_0x2a291f){_0x1d7791=_0x1d7791-0x0;var _0x2293f8=_0xc762[_0x1d7791];return _0x2293f8;};'use strict';var multer=require(_0x2c76('0x0'));var util=require(_0x2c76('0x1'));var path=require(_0x2c76('0x2'));var timeout=require(_0x2c76('0x3'));var express=require(_0x2c76('0x4'));var router=express[_0x2c76('0x5')]();var fs_extra=require(_0x2c76('0x6'));var auth=require(_0x2c76('0x7'));var interaction=require(_0x2c76('0x8'));var config=require(_0x2c76('0x9'));var controller=require(_0x2c76('0xa'));router[_0x2c76('0xb')]('/',auth[_0x2c76('0xc')](),controller[_0x2c76('0xd')]);router[_0x2c76('0xb')](_0x2c76('0xe'),auth['isAuthenticated'](),controller[_0x2c76('0xf')]);router[_0x2c76('0x10')]('/',auth[_0x2c76('0xc')](),controller['create']);router[_0x2c76('0x11')](_0x2c76('0xe'),auth[_0x2c76('0xc')](),controller['update']);router['delete'](_0x2c76('0xe'),auth['isAuthenticated'](),controller[_0x2c76('0x12')]);module[_0x2c76('0x13')]=router;
\ No newline at end of file
+var _0x4870=['util','path','connect-timeout','express','fs-extra','./disposition.controller','index','get','/:id','isAuthenticated','show','post','put','destroy','exports','multer'];(function(_0x54c695,_0x5d6677){var _0x3ce06b=function(_0x55bdf1){while(--_0x55bdf1){_0x54c695['push'](_0x54c695['shift']());}};_0x3ce06b(++_0x5d6677);}(_0x4870,0x8f));var _0x0487=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x4870[_0x178e48];return _0x440d7e;};'use strict';var multer=require(_0x0487('0x0'));var util=require(_0x0487('0x1'));var path=require(_0x0487('0x2'));var timeout=require(_0x0487('0x3'));var express=require(_0x0487('0x4'));var router=express['Router']();var fs_extra=require(_0x0487('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x0487('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x0487('0x7')]);router[_0x0487('0x8')](_0x0487('0x9'),auth[_0x0487('0xa')](),controller[_0x0487('0xb')]);router[_0x0487('0xc')]('/',auth[_0x0487('0xa')](),controller['create']);router[_0x0487('0xd')]('/:id',auth[_0x0487('0xa')](),controller['update']);router['delete']('/:id',auth[_0x0487('0xa')](),controller[_0x0487('0xe')]);module[_0x0487('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x535c=['INTEGER','SIP','IAX','DADHI','KHOMP','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','sequelize','exports','STRING','ENUM','yes','localstationid','2400','9600','12000','4800','7200','14400'];(function(_0x134827,_0x21f6ed){var _0x366671=function(_0x4dc8d4){while(--_0x4dc8d4){_0x134827['push'](_0x134827['shift']());}};_0x366671(++_0x21f6ed);}(_0x535c,0x67));var _0xc535=function(_0x45ffad,_0x1c09f0){_0x45ffad=_0x45ffad-0x0;var _0x7c936e=_0x535c[_0x45ffad];return _0x7c936e;};'use strict';var Sequelize=require(_0xc535('0x0'));module[_0xc535('0x1')]={'name':{'type':Sequelize[_0xc535('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xc535('0x2')]},'ecm':{'type':Sequelize[_0xc535('0x3')](_0xc535('0x4'),'no'),'defaultValue':'yes'},'headerinfo':{'type':Sequelize[_0xc535('0x2')],'defaultValue':'xCALLY\x20Motion\x20Fax'},'localstationid':{'type':Sequelize[_0xc535('0x2')],'unique':_0xc535('0x5')},'minrate':{'type':Sequelize['ENUM'](_0xc535('0x6'),'4800','7200',_0xc535('0x7'),_0xc535('0x8'),'14400'),'defaultValue':_0xc535('0x9')},'maxrate':{'type':Sequelize[_0xc535('0x3')](_0xc535('0x6'),_0xc535('0x9'),_0xc535('0xa'),_0xc535('0x7'),_0xc535('0x8'),_0xc535('0xb')),'defaultValue':_0xc535('0xb')},'modem':{'type':Sequelize[_0xc535('0x2')],'defaultValue':'v17,v27,v29'},'gateway':{'type':Sequelize[_0xc535('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0xc535('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0xc535('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0xc535('0x3')](_0xc535('0xd'),_0xc535('0xe'),_0xc535('0xf'),_0xc535('0x10')),'defaultValue':_0xc535('0xd')},'key':{'type':Sequelize[_0xc535('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0xc535('0x11');}},'notificationSound':{'type':Sequelize[_0xc535('0x12')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xc535('0x12')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xc535('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xc535('0x12')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xc535('0x12')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xc535('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xc535('0xc')],'allowNull':!![],'defaultValue':null,'comment':_0xc535('0x13')},'mandatoryDisposition':{'type':Sequelize[_0xc535('0x12')],'defaultValue':![],'comment':_0xc535('0x14'),'set':function(_0x564aaf){if(!_0x564aaf)this[_0xc535('0x15')](_0xc535('0x16'),null);this[_0xc535('0x15')]('mandatoryDisposition',_0x564aaf);}}};
\ No newline at end of file
+var _0xa645=['SIP','TEXT','BOOLEAN','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','sequelize','STRING','ENUM','yes','xCALLY\x20Motion\x20Fax','localstationid','2400','4800','9600','14400','7200','v17,v27,v29','INTEGER','IAX','DADHI','KHOMP'];(function(_0xba1760,_0x191969){var _0x1f3143=function(_0x5aa807){while(--_0x5aa807){_0xba1760['push'](_0xba1760['shift']());}};_0x1f3143(++_0x191969);}(_0xa645,0xbf));var _0x5a64=function(_0x43cdf5,_0x47c1e7){_0x43cdf5=_0x43cdf5-0x0;var _0x89cc4b=_0xa645[_0x43cdf5];return _0x89cc4b;};'use strict';var Sequelize=require(_0x5a64('0x0'));module['exports']={'name':{'type':Sequelize[_0x5a64('0x1')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x5a64('0x1')]},'ecm':{'type':Sequelize[_0x5a64('0x2')](_0x5a64('0x3'),'no'),'defaultValue':'yes'},'headerinfo':{'type':Sequelize[_0x5a64('0x1')],'defaultValue':_0x5a64('0x4')},'localstationid':{'type':Sequelize[_0x5a64('0x1')],'unique':_0x5a64('0x5')},'minrate':{'type':Sequelize[_0x5a64('0x2')](_0x5a64('0x6'),_0x5a64('0x7'),'7200',_0x5a64('0x8'),'12000',_0x5a64('0x9')),'defaultValue':'4800'},'maxrate':{'type':Sequelize['ENUM'](_0x5a64('0x6'),_0x5a64('0x7'),_0x5a64('0xa'),_0x5a64('0x8'),'12000','14400'),'defaultValue':_0x5a64('0x9')},'modem':{'type':Sequelize[_0x5a64('0x1')],'defaultValue':_0x5a64('0xb')},'gateway':{'type':Sequelize[_0x5a64('0x1')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x5a64('0x1')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x5a64('0xc')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize['ENUM']('SIP',_0x5a64('0xd'),_0x5a64('0xe'),_0x5a64('0xf')),'defaultValue':_0x5a64('0x10')},'key':{'type':Sequelize[_0x5a64('0x1')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x5a64('0x11')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x5a64('0x12')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x5a64('0x12')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x5a64('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x5a64('0x12')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x5a64('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x5a64('0x12')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x5a64('0xc')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x5a64('0xc')],'allowNull':!![],'defaultValue':null,'comment':_0x5a64('0x13')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x5a64('0x14'),'set':function(_0x4df738){if(!_0x4df738)this[_0x5a64('0x15')](_0x5a64('0x16'),null);this[_0x5a64('0x15')]('mandatoryDisposition',_0x4df738);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x479c=['filename','Messages','Contact\x20not\x20found','spread','ContactId','dataValues','SendFax','SendFaxRpc,\x20%s','removeAgents','isArray','emit','userFaxAccount:remove','getAgents','User','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','jayson/promise','client','http','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','get','FaxAccounts','UserProfileResource','sendStatus','stack','name','send','index','Pause','mandatoryDispositionPause','map','fieldName','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','FaxAccount','includeAll','include','catch','show','params','keys','rawAttributes','options','find','create','body','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','FaxAccountId','Disposition','getDispositions','findOne','findAll','rows','removeDispositions','CannedAnswer','getAnswers','removeAnswers','ids','addInteraction','FaxInteraction','omit','getInteractions','CmContact','Contact','Owner','fullname','internal','Tag','Tags','color','tag','addApplications','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','from-voip-provider','exten','app','type','description','Fax\x20Extension','appdata','push','Answer','CDR(type)=inbound-fax','localstationid','gateway','faxdetect','headerinfo','maxrate','minrate','modem','t38timeout','FAXOPT(','Set','Wait','/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','ReceiveFax','addAccountApplications','sequelize','VoiceExtension','update','tech','updatedAt','TrunkId','findById','getMessages','FaxMessage','split','format','YYYY-MM-DD\x20HH:mm:ss','Contacts','DESC','attachments','join','server/files/attachments','basename','CheckAfterSend','isNil','path','from','\x22%s\x22\x20<%s>','fax','List','List\x20not\x20found','Send\x20Fax\x20failed','out'];(function(_0x3b14ad,_0x5e4401){var _0x392677=function(_0x4c9139){while(--_0x4c9139){_0x3b14ad['push'](_0x3b14ad['shift']());}};_0x392677(++_0x5e4401);}(_0x479c,0x1a6));var _0xc479=function(_0x1b2ff7,_0x12a034){_0x1b2ff7=_0x1b2ff7-0x0;var _0x31656a=_0x479c[_0x1b2ff7];return _0x31656a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xc479('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc479('0x1'));var moment=require(_0xc479('0x2'));var BPromise=require(_0xc479('0x3'));var Mustache=require(_0xc479('0x4'));var util=require(_0xc479('0x5'));var path=require('path');var sox=require(_0xc479('0x6'));var csv=require('to-csv');var ejs=require(_0xc479('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc479('0x8'));var squel=require(_0xc479('0x9'));var crypto=require(_0xc479('0xa'));var jsforce=require(_0xc479('0xb'));var deskjs=require(_0xc479('0xc'));var toCsv=require(_0xc479('0xd'));var querystring=require(_0xc479('0xe'));var Papa=require(_0xc479('0xf'));var Redis=require(_0xc479('0x10'));var authService=require(_0xc479('0x11'));var qs=require(_0xc479('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xc479('0x13'))(_0xc479('0x14'));var utils=require(_0xc479('0x15'));var config=require(_0xc479('0x16'));var licenseUtil=require(_0xc479('0x17'));var db=require(_0xc479('0x18'))['db'];config[_0xc479('0x19')]=_[_0xc479('0x1a')](config[_0xc479('0x19')],{'host':_0xc479('0x1b'),'port':0x18eb});var socket=require(_0xc479('0x1c'))(new Redis(config[_0xc479('0x19')]));require(_0xc479('0x1d'))[_0xc479('0x1e')](socket);var jayson=require(_0xc479('0x1f'));var client=jayson[_0xc479('0x20')][_0xc479('0x21')]({'port':0x232c});var client9002=jayson[_0xc479('0x20')][_0xc479('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x23027a,_0x459fec,_0x57ed23,_0x5e6ac1){return new BPromise(function(_0x157f1e,_0x303c2a){var _0x396a3a=_0x5e6ac1||client;return _0x396a3a['request'](_0x23027a,_0x57ed23)[_0xc479('0x22')](function(_0x1c7d19){logger[_0xc479('0x23')](_0xc479('0x24'),_0x459fec,_0xc479('0x25'));logger[_0xc479('0x26')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x459fec,_0xc479('0x25'),JSON[_0xc479('0x27')](_0x1c7d19));if(_0x1c7d19[_0xc479('0x28')]){if(_0x1c7d19[_0xc479('0x28')][_0xc479('0x29')]===0x1f4){logger[_0xc479('0x28')](_0xc479('0x24'),_0x459fec,_0x1c7d19[_0xc479('0x28')][_0xc479('0x2a')]);return _0x303c2a(_0x1c7d19[_0xc479('0x28')][_0xc479('0x2a')]);}logger[_0xc479('0x28')](_0xc479('0x24'),_0x459fec,_0x1c7d19[_0xc479('0x28')]['message']);return _0x157f1e(_0x1c7d19[_0xc479('0x28')][_0xc479('0x2a')]);}else{logger[_0xc479('0x23')](_0xc479('0x24'),_0x459fec,_0xc479('0x25'));_0x157f1e(_0x1c7d19[_0xc479('0x2b')][_0xc479('0x2a')]);}})['catch'](function(_0x7599fa){logger['error'](_0xc479('0x24'),_0x459fec,_0x7599fa);_0x303c2a(_0x7599fa);});});}function respondWithStatusCode(_0x5941b2,_0x4319fa){_0x4319fa=_0x4319fa||0xcc;return function(_0x1c0bb7){if(_0x1c0bb7){return _0x5941b2['sendStatus'](_0x4319fa);}return _0x5941b2[_0xc479('0x2c')](_0x4319fa)[_0xc479('0x2d')]();};}function respondWithResult(_0x4e1c89,_0x4df89a){_0x4df89a=_0x4df89a||0xc8;return function(_0x291e52){if(_0x291e52){return _0x4e1c89[_0xc479('0x2c')](_0x4df89a)[_0xc479('0x2e')](_0x291e52);}};}function respondWithFilteredResult(_0x3bd92d,_0x3fe757){return function(_0x2d67d9){if(_0x2d67d9){var _0x41d357=typeof _0x3fe757[_0xc479('0x2f')]===_0xc479('0x30')&&typeof _0x3fe757[_0xc479('0x31')]==='undefined';var _0x2ac2c5=_0x2d67d9[_0xc479('0x32')];var _0x4a4230=_0x41d357?0x0:_0x3fe757[_0xc479('0x2f')];var _0x8681f6=_0x41d357?_0x2d67d9['count']:_0x3fe757[_0xc479('0x2f')]+_0x3fe757[_0xc479('0x31')];var _0x212cf4;if(_0x8681f6>=_0x2ac2c5){_0x8681f6=_0x2ac2c5;_0x212cf4=0xc8;}else{_0x212cf4=0xce;}_0x3bd92d['status'](_0x212cf4);return _0x3bd92d[_0xc479('0x33')](_0xc479('0x34'),_0x4a4230+'-'+_0x8681f6+'/'+_0x2ac2c5)['json'](_0x2d67d9);}return null;};}function patchUpdates(_0x2fe90f){return function(_0x41be09){try{jsonpatch[_0xc479('0x35')](_0x41be09,_0x2fe90f,!![]);}catch(_0x34d7b7){return BPromise[_0xc479('0x36')](_0x34d7b7);}return _0x41be09[_0xc479('0x37')]();};}function saveUpdates(_0x5ec91a,_0x2aa9ea){return function(_0x487a22){if(_0x487a22){return _0x487a22['update'](_0x5ec91a)['then'](function(_0x3c91e9){return _0x3c91e9;});}return null;};}function removeEntity(_0x541b0d,_0xa4680c){return function(_0x3dec73){if(_0x3dec73){return _0x3dec73[_0xc479('0x38')]()[_0xc479('0x22')](function(){var _0x3edd9f=_0x3dec73[_0xc479('0x39')]({'plain':!![]});var _0x1b1976=_0xc479('0x3a');return db[_0xc479('0x3b')][_0xc479('0x38')]({'where':{'type':_0x1b1976,'resourceId':_0x3edd9f['id']}})[_0xc479('0x22')](function(){return _0x3dec73;});})['then'](function(){_0x541b0d[_0xc479('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x52ebe9,_0x3366cf){return function(_0x23d2ba){if(!_0x23d2ba){_0x52ebe9[_0xc479('0x3c')](0x194);}return _0x23d2ba;};}function handleError(_0x500d71,_0xf74c70){_0xf74c70=_0xf74c70||0x1f4;return function(_0x11ccdf){logger['error'](_0x11ccdf[_0xc479('0x3d')]);if(_0x11ccdf[_0xc479('0x3e')]){delete _0x11ccdf[_0xc479('0x3e')];}_0x500d71[_0xc479('0x2c')](_0xf74c70)[_0xc479('0x3f')](_0x11ccdf);};}exports[_0xc479('0x40')]=function(_0x9d64b,_0x3d7e1b){var _0x5535a7={'include':[{'model':db[_0xc479('0x41')],'as':_0xc479('0x42')}]},_0x10d2b9={},_0x1c5961={'count':0x0,'rows':[]};var _0x1dcea7=_[_0xc479('0x43')](db['FaxAccount']['rawAttributes'],function(_0x35a755){return{'name':_0x35a755[_0xc479('0x44')],'type':_0x35a755['type'][_0xc479('0x45')]};});_0x10d2b9[_0xc479('0x46')]=_[_0xc479('0x43')](_0x1dcea7,_0xc479('0x3e'));_0x10d2b9[_0xc479('0x47')]=_['keys'](_0x9d64b[_0xc479('0x47')]);_0x10d2b9[_0xc479('0x48')]=_['intersection'](_0x10d2b9['model'],_0x10d2b9[_0xc479('0x47')]);_0x5535a7[_0xc479('0x49')]=_[_0xc479('0x4a')](_0x10d2b9[_0xc479('0x46')],qs[_0xc479('0x4b')](_0x9d64b[_0xc479('0x47')][_0xc479('0x4b')]));_0x5535a7[_0xc479('0x49')]=_0x5535a7[_0xc479('0x49')][_0xc479('0x4c')]?_0x5535a7['attributes']:_0x10d2b9[_0xc479('0x46')];if(!_0x9d64b[_0xc479('0x47')][_0xc479('0x4d')](_0xc479('0x4e'))){_0x5535a7[_0xc479('0x31')]=qs[_0xc479('0x31')](_0x9d64b[_0xc479('0x47')][_0xc479('0x31')]);_0x5535a7['offset']=qs[_0xc479('0x2f')](_0x9d64b['query'][_0xc479('0x2f')]);}_0x5535a7[_0xc479('0x4f')]=qs[_0xc479('0x50')](_0x9d64b[_0xc479('0x47')][_0xc479('0x50')]);_0x5535a7[_0xc479('0x51')]=qs[_0xc479('0x48')](_[_0xc479('0x52')](_0x9d64b[_0xc479('0x47')],_0x10d2b9[_0xc479('0x48')]),_0x1dcea7);if(_0x9d64b[_0xc479('0x47')][_0xc479('0x53')]){_0x5535a7[_0xc479('0x51')]=_[_0xc479('0x54')](_0x5535a7[_0xc479('0x51')],{'$or':_['map'](_0x1dcea7,function(_0x5e7478){if(_0x5e7478['type']!==_0xc479('0x55')){var _0x29aec0={};_0x29aec0[_0x5e7478[_0xc479('0x3e')]]={'$like':'%'+_0x9d64b[_0xc479('0x47')][_0xc479('0x53')]+'%'};return _0x29aec0;}})});}_0x5535a7=_['merge']({},_0x5535a7,_0x9d64b['options']);var _0x2312ed={'where':_0x5535a7[_0xc479('0x51')]};return db[_0xc479('0x56')]['count'](_0x2312ed)[_0xc479('0x22')](function(_0x13c240){_0x1c5961[_0xc479('0x32')]=_0x13c240;if(_0x9d64b[_0xc479('0x47')][_0xc479('0x57')]){_0x5535a7[_0xc479('0x58')]=[{'all':!![]}];}return db[_0xc479('0x56')]['findAll'](_0x5535a7);})['then'](function(_0x444543){_0x1c5961['rows']=_0x444543;return _0x1c5961;})[_0xc479('0x22')](respondWithFilteredResult(_0x3d7e1b,_0x5535a7))[_0xc479('0x59')](handleError(_0x3d7e1b,null));};exports[_0xc479('0x5a')]=function(_0x4e5ac2,_0x1dcca8){var _0x3d3145={'raw':![],'where':{'id':_0x4e5ac2[_0xc479('0x5b')]['id']},'include':[{'model':db[_0xc479('0x41')],'as':_0xc479('0x42')}]},_0x440f1e={};_0x440f1e[_0xc479('0x46')]=_[_0xc479('0x5c')](db[_0xc479('0x56')][_0xc479('0x5d')]);_0x440f1e['query']=_['keys'](_0x4e5ac2['query']);_0x440f1e[_0xc479('0x48')]=_[_0xc479('0x4a')](_0x440f1e[_0xc479('0x46')],_0x440f1e[_0xc479('0x47')]);_0x3d3145['attributes']=_['intersection'](_0x440f1e[_0xc479('0x46')],qs[_0xc479('0x4b')](_0x4e5ac2[_0xc479('0x47')][_0xc479('0x4b')]));_0x3d3145[_0xc479('0x49')]=_0x3d3145[_0xc479('0x49')][_0xc479('0x4c')]?_0x3d3145[_0xc479('0x49')]:_0x440f1e[_0xc479('0x46')];if(_0x4e5ac2[_0xc479('0x47')][_0xc479('0x57')]){_0x3d3145[_0xc479('0x58')]=[{'all':!![]}];}_0x3d3145=_[_0xc479('0x54')]({},_0x3d3145,_0x4e5ac2[_0xc479('0x5e')]);return db[_0xc479('0x56')][_0xc479('0x5f')](_0x3d3145)[_0xc479('0x22')](handleEntityNotFound(_0x1dcca8,null))[_0xc479('0x22')](respondWithResult(_0x1dcca8,null))[_0xc479('0x59')](handleError(_0x1dcca8,null));};exports[_0xc479('0x60')]=function(_0x5501cf,_0x23603d){return db[_0xc479('0x56')]['create'](_0x5501cf[_0xc479('0x61')],{})[_0xc479('0x22')](function(_0x477f84){var _0x77ada=_0x5501cf['user']['get']({'plain':!![]});if(!_0x77ada)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x77ada[_0xc479('0x62')]===_0xc479('0x63')){var _0x2f7355=_0x477f84[_0xc479('0x39')]({'plain':!![]});var _0x5253db=_0xc479('0x3a');return db[_0xc479('0x64')][_0xc479('0x5f')]({'where':{'name':_0x5253db,'userProfileId':_0x77ada[_0xc479('0x65')]},'raw':!![]})['then'](function(_0x419da2){if(_0x419da2&&_0x419da2[_0xc479('0x66')]===0x0){return db['UserProfileResource'][_0xc479('0x60')]({'name':_0x2f7355[_0xc479('0x3e')],'resourceId':_0x2f7355['id'],'type':_0x419da2[_0xc479('0x3e')],'sectionId':_0x419da2['id']},{})[_0xc479('0x22')](function(){return _0x477f84;});}else{return _0x477f84;}})[_0xc479('0x59')](function(_0x2be895){logger[_0xc479('0x28')](_0xc479('0x67'),_0x2be895);throw _0x2be895;});}return _0x477f84;})[_0xc479('0x22')](respondWithResult(_0x23603d,0xc9))[_0xc479('0x59')](handleError(_0x23603d,null));};exports['update']=function(_0x2c4aa9,_0x2b48ad){if(_0x2c4aa9[_0xc479('0x61')]['id']){delete _0x2c4aa9[_0xc479('0x61')]['id'];}return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x2c4aa9[_0xc479('0x5b')]['id']},'include':[{'model':db['Pause'],'as':_0xc479('0x42')}]})['then'](handleEntityNotFound(_0x2b48ad,null))[_0xc479('0x22')](saveUpdates(_0x2c4aa9[_0xc479('0x61')],null))[_0xc479('0x22')](respondWithResult(_0x2b48ad,null))[_0xc479('0x59')](handleError(_0x2b48ad,null));};exports[_0xc479('0x38')]=function(_0x530e13,_0x2838df){return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x530e13['params']['id']}})['then'](handleEntityNotFound(_0x2838df,null))[_0xc479('0x22')](removeEntity(_0x2838df,null))['catch'](handleError(_0x2838df,null));};exports[_0xc479('0x68')]=function(_0x59b0c9,_0x1b858c){return db[_0xc479('0x56')]['describe']()[_0xc479('0x22')](respondWithResult(_0x1b858c,null))[_0xc479('0x59')](handleError(_0x1b858c,null));};exports[_0xc479('0x69')]=function(_0x4b9261,_0x420f82,_0x12d889){if(_0x4b9261['body']['id']){delete _0x4b9261[_0xc479('0x61')]['id'];}return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x4b9261[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x420f82,null))[_0xc479('0x22')](function(_0x917ff1){if(_0x917ff1){_0x4b9261[_0xc479('0x61')][_0xc479('0x6a')]=_0x917ff1['id'];return db[_0xc479('0x6b')][_0xc479('0x60')](_0x4b9261[_0xc479('0x61')]);}})[_0xc479('0x22')](respondWithResult(_0x420f82,null))[_0xc479('0x59')](handleError(_0x420f82,null));};exports[_0xc479('0x6c')]=function(_0x57fa85,_0x5daa32,_0x5ebfd4){var _0x3832be={'raw':![],'where':{}};var _0x2da093={};var _0x256b71={'count':0x0,'rows':[]};return db['FaxAccount'][_0xc479('0x6d')]({'where':{'id':_0x57fa85['params']['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x5daa32,null))[_0xc479('0x22')](function(_0x2be9b2){if(_0x2be9b2){_0x2da093[_0xc479('0x46')]=_['keys'](db[_0xc479('0x6b')][_0xc479('0x5d')]);_0x2da093['query']=_['keys'](_0x57fa85[_0xc479('0x47')]);_0x2da093[_0xc479('0x48')]=_[_0xc479('0x4a')](_0x2da093[_0xc479('0x46')],_0x2da093[_0xc479('0x47')]);_0x3832be[_0xc479('0x49')]=_['intersection'](_0x2da093[_0xc479('0x46')],qs[_0xc479('0x4b')](_0x57fa85[_0xc479('0x47')][_0xc479('0x4b')]));_0x3832be[_0xc479('0x49')]=_0x3832be[_0xc479('0x49')][_0xc479('0x4c')]?_0x3832be[_0xc479('0x49')]:_0x2da093[_0xc479('0x46')];if(!_0x57fa85[_0xc479('0x47')][_0xc479('0x4d')](_0xc479('0x4e'))){_0x3832be['limit']=qs[_0xc479('0x31')](_0x57fa85[_0xc479('0x47')][_0xc479('0x31')]);_0x3832be['offset']=qs[_0xc479('0x2f')](_0x57fa85[_0xc479('0x47')][_0xc479('0x2f')]);}_0x3832be[_0xc479('0x4f')]=qs['sort'](_0x57fa85[_0xc479('0x47')][_0xc479('0x50')]);_0x3832be[_0xc479('0x51')]=qs[_0xc479('0x48')](_[_0xc479('0x52')](_0x57fa85[_0xc479('0x47')],_0x2da093[_0xc479('0x48')]));_0x3832be[_0xc479('0x51')][_0xc479('0x6a')]=_0x2be9b2['id'];if(_0x57fa85['query'][_0xc479('0x53')]){_0x3832be[_0xc479('0x51')]=_['merge'](_0x3832be[_0xc479('0x51')],{'$or':_[_0xc479('0x43')](_0x3832be[_0xc479('0x49')],function(_0xdf0c12){var _0x5ee2b6={};_0x5ee2b6[_0xdf0c12]={'$like':'%'+_0x57fa85[_0xc479('0x47')][_0xc479('0x53')]+'%'};return _0x5ee2b6;})});}_0x3832be=_[_0xc479('0x54')]({},_0x3832be,_0x57fa85[_0xc479('0x5e')]);return db[_0xc479('0x6b')][_0xc479('0x32')]({'where':_0x3832be[_0xc479('0x51')]})['then'](function(_0x3f4898){_0x256b71[_0xc479('0x32')]=_0x3f4898;if(_0x57fa85['query']['includeAll']){_0x3832be[_0xc479('0x58')]=[{'all':!![]}];}return db[_0xc479('0x6b')][_0xc479('0x6e')](_0x3832be);})[_0xc479('0x22')](function(_0x2b5fc2){_0x256b71[_0xc479('0x6f')]=_0x2b5fc2;return _0x256b71;});}})['then'](respondWithFilteredResult(_0x5daa32,_0x3832be))['catch'](handleError(_0x5daa32,null));};exports[_0xc479('0x70')]=function(_0x39647c,_0x481f2f,_0x5c4252){return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x39647c['params']['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x481f2f,null))[_0xc479('0x22')](function(_0x5878fd){if(_0x5878fd){return _0x5878fd[_0xc479('0x70')](_0x39647c['query']['ids']);}})['then'](respondWithStatusCode(_0x481f2f,null))[_0xc479('0x59')](handleError(_0x481f2f,null));};exports['addAnswer']=function(_0x2478e7,_0x448ad7,_0x5796cd){if(_0x2478e7[_0xc479('0x61')]['id']){delete _0x2478e7[_0xc479('0x61')]['id'];}return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x2478e7[_0xc479('0x5b')]['id']}})['then'](handleEntityNotFound(_0x448ad7,null))[_0xc479('0x22')](function(_0x64828f){if(_0x64828f){_0x2478e7[_0xc479('0x61')][_0xc479('0x6a')]=_0x64828f['id'];return db[_0xc479('0x71')][_0xc479('0x60')](_0x2478e7[_0xc479('0x61')]);}})['then'](respondWithResult(_0x448ad7,null))[_0xc479('0x59')](handleError(_0x448ad7,null));};exports[_0xc479('0x72')]=function(_0x3753ed,_0x182549,_0x320f3b){var _0x30a20d={'raw':![],'where':{}};var _0x1f25e5={};var _0x425160={'count':0x0,'rows':[]};return db[_0xc479('0x56')]['findOne']({'where':{'id':_0x3753ed[_0xc479('0x5b')]['id']}})['then'](handleEntityNotFound(_0x182549,null))['then'](function(_0x158c85){if(_0x158c85){_0x1f25e5[_0xc479('0x46')]=_['keys'](db['CannedAnswer'][_0xc479('0x5d')]);_0x1f25e5[_0xc479('0x47')]=_['keys'](_0x3753ed[_0xc479('0x47')]);_0x1f25e5[_0xc479('0x48')]=_[_0xc479('0x4a')](_0x1f25e5[_0xc479('0x46')],_0x1f25e5[_0xc479('0x47')]);_0x30a20d['attributes']=_['intersection'](_0x1f25e5['model'],qs['fields'](_0x3753ed[_0xc479('0x47')][_0xc479('0x4b')]));_0x30a20d[_0xc479('0x49')]=_0x30a20d[_0xc479('0x49')]['length']?_0x30a20d[_0xc479('0x49')]:_0x1f25e5[_0xc479('0x46')];if(!_0x3753ed['query'][_0xc479('0x4d')](_0xc479('0x4e'))){_0x30a20d[_0xc479('0x31')]=qs[_0xc479('0x31')](_0x3753ed[_0xc479('0x47')][_0xc479('0x31')]);_0x30a20d[_0xc479('0x2f')]=qs['offset'](_0x3753ed[_0xc479('0x47')][_0xc479('0x2f')]);}_0x30a20d[_0xc479('0x4f')]=qs['sort'](_0x3753ed[_0xc479('0x47')]['sort']);_0x30a20d[_0xc479('0x51')]=qs[_0xc479('0x48')](_[_0xc479('0x52')](_0x3753ed[_0xc479('0x47')],_0x1f25e5['filters']));_0x30a20d[_0xc479('0x51')][_0xc479('0x6a')]=_0x158c85['id'];if(_0x3753ed[_0xc479('0x47')][_0xc479('0x53')]){_0x30a20d['where']=_[_0xc479('0x54')](_0x30a20d[_0xc479('0x51')],{'$or':_['map'](_0x30a20d['attributes'],function(_0x598dff){var _0x2fb49a={};_0x2fb49a[_0x598dff]={'$like':'%'+_0x3753ed['query'][_0xc479('0x53')]+'%'};return _0x2fb49a;})});}_0x30a20d=_[_0xc479('0x54')]({},_0x30a20d,_0x3753ed[_0xc479('0x5e')]);return db[_0xc479('0x71')][_0xc479('0x32')]({'where':_0x30a20d[_0xc479('0x51')]})[_0xc479('0x22')](function(_0x2c3741){_0x425160[_0xc479('0x32')]=_0x2c3741;if(_0x3753ed[_0xc479('0x47')]['includeAll']){_0x30a20d['include']=[{'all':!![]}];}return db[_0xc479('0x71')][_0xc479('0x6e')](_0x30a20d);})[_0xc479('0x22')](function(_0x207552){_0x425160[_0xc479('0x6f')]=_0x207552;return _0x425160;});}})[_0xc479('0x22')](respondWithFilteredResult(_0x182549,_0x30a20d))[_0xc479('0x59')](handleError(_0x182549,null));};exports[_0xc479('0x73')]=function(_0x18333c,_0x256fab,_0x3c3a8b){return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x18333c[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x256fab,null))[_0xc479('0x22')](function(_0x440fbe){if(_0x440fbe){return _0x440fbe['removeAnswers'](_0x18333c[_0xc479('0x47')][_0xc479('0x74')]);}})['then'](respondWithStatusCode(_0x256fab,null))[_0xc479('0x59')](handleError(_0x256fab,null));};exports[_0xc479('0x75')]=function(_0x1a9163,_0x17ad24,_0x459d36){return db[_0xc479('0x76')][_0xc479('0x5f')]({'where':{'id':_0x1a9163[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x17ad24,null))[_0xc479('0x22')](function(_0x2ce3ae){if(_0x2ce3ae){return _0x2ce3ae['addInteraction'](_0x1a9163['body']['ids'],_[_0xc479('0x77')](_0x1a9163[_0xc479('0x61')],[_0xc479('0x74'),'id'])||{});}})['then'](respondWithResult(_0x17ad24,null))[_0xc479('0x59')](handleError(_0x17ad24,null));};exports[_0xc479('0x78')]=function(_0x432cf5,_0x551d52,_0x3454d2){var _0x28871e={'raw':![],'where':{}};var _0xac14c={};var _0x201f30={'count':0x0,'rows':[]};return db[_0xc479('0x56')][_0xc479('0x6d')]({'where':{'id':_0x432cf5[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x551d52,null))[_0xc479('0x22')](function(_0x331822){if(_0x331822){_0xac14c[_0xc479('0x46')]=_['keys'](db[_0xc479('0x76')][_0xc479('0x5d')]);_0xac14c[_0xc479('0x47')]=_[_0xc479('0x5c')](_0x432cf5[_0xc479('0x47')]);_0xac14c[_0xc479('0x48')]=_[_0xc479('0x4a')](_0xac14c['model'],_0xac14c[_0xc479('0x47')]);_0x28871e['attributes']=_['intersection'](_0xac14c[_0xc479('0x46')],qs['fields'](_0x432cf5[_0xc479('0x47')][_0xc479('0x4b')]));_0x28871e[_0xc479('0x49')]=_0x28871e[_0xc479('0x49')][_0xc479('0x4c')]?_0x28871e[_0xc479('0x49')]:_0xac14c[_0xc479('0x46')];if(!_0x432cf5[_0xc479('0x47')][_0xc479('0x4d')](_0xc479('0x4e'))){_0x28871e[_0xc479('0x31')]=qs[_0xc479('0x31')](_0x432cf5[_0xc479('0x47')]['limit']);_0x28871e[_0xc479('0x2f')]=qs['offset'](_0x432cf5[_0xc479('0x47')][_0xc479('0x2f')]);}_0x28871e[_0xc479('0x4f')]=qs[_0xc479('0x50')](_0x432cf5[_0xc479('0x47')][_0xc479('0x50')]);_0x28871e[_0xc479('0x51')]=qs[_0xc479('0x48')](_[_0xc479('0x52')](_0x432cf5['query'],_0xac14c[_0xc479('0x48')]));_0x28871e[_0xc479('0x51')][_0xc479('0x6a')]=_0x331822['id'];if(_0x432cf5['query'][_0xc479('0x53')]){_0x28871e['where']=_[_0xc479('0x54')](_0x28871e[_0xc479('0x51')],{'$or':_['map'](_0x28871e[_0xc479('0x49')],function(_0x371b29){var _0x524d85={};_0x524d85[_0x371b29]={'$like':'%'+_0x432cf5[_0xc479('0x47')][_0xc479('0x53')]+'%'};return _0x524d85;})});}_0x28871e=_[_0xc479('0x54')]({},_0x28871e,_0x432cf5['options']);return db['FaxInteraction']['count']({'where':_0x28871e[_0xc479('0x51')]})['then'](function(_0x2e3bbc){_0x201f30['count']=_0x2e3bbc;if(_0x432cf5['query']['includeAll']){_0x28871e[_0xc479('0x58')]=[{'model':db[_0xc479('0x79')],'as':_0xc479('0x7a'),'required':![]},{'model':db['User'],'as':_0xc479('0x7b'),'attributes':[_0xc479('0x3e'),_0xc479('0x7c'),_0xc479('0x7d')],'required':![]},{'model':db[_0xc479('0x7e')],'as':_0xc479('0x7f'),'attributes':['id',_0xc479('0x3e'),_0xc479('0x80')],'where':_0x432cf5[_0xc479('0x47')][_0xc479('0x81')]?{'id':_0x432cf5[_0xc479('0x47')][_0xc479('0x81')]}:undefined,'required':_0x432cf5[_0xc479('0x47')][_0xc479('0x81')]?!![]:![]}];}return db[_0xc479('0x76')][_0xc479('0x6e')](_0x28871e);})['then'](function(_0x232198){_0x201f30[_0xc479('0x6f')]=_0x232198;return _0x201f30;});}})['then'](respondWithFilteredResult(_0x551d52,_0x28871e))['catch'](handleError(_0x551d52,null));};exports[_0xc479('0x82')]=function(_0x348fe1,_0x16090a,_0x3cbabc){return db['FaxAccount'][_0xc479('0x6d')]({'where':{'id':_0x348fe1[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x16090a,null))[_0xc479('0x22')](function(_0x39f718){if(_0x39f718){return db['sequelize'][_0xc479('0x83')](function(_0x91187b){return db[_0xc479('0x84')][_0xc479('0x38')]({'where':{'FaxAccountId':_0x348fe1['params']['id']},'transaction':_0x91187b})[_0xc479('0x22')](function(_0x58fc48){var _0x15b6d8=_[_0xc479('0x43')](_0x348fe1['body'],function(_0x22c77f){_0x22c77f[_0xc479('0x6a')]=_0x348fe1[_0xc479('0x5b')]['id'];return _0x22c77f;});return db[_0xc479('0x84')][_0xc479('0x85')](_0x15b6d8,{'transaction':_0x91187b});});})[_0xc479('0x22')](function(){return db['FaxApplication'][_0xc479('0x86')]({'where':{'FaxAccountId':_0x348fe1['params']['id']},'order':_0xc479('0x87')});});}})[_0xc479('0x22')](respondWithResult(_0x16090a,null))['catch'](handleError(_0x16090a,null));};exports[_0xc479('0x88')]=function(_0x3ecbd8,_0x17b92e,_0x41e291){var _0x519e7d={};var _0x134b27={};var _0x469cc8;var _0x39f4c0;return db[_0xc479('0x56')][_0xc479('0x6d')]({'where':{'id':_0x3ecbd8['params']['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x17b92e,null))['then'](function(_0x4221d6){if(_0x4221d6){_0x469cc8=_0x4221d6;_0x134b27['model']=_['keys'](db['FaxApplication'][_0xc479('0x5d')]);_0x134b27[_0xc479('0x47')]=_[_0xc479('0x5c')](_0x3ecbd8[_0xc479('0x47')]);_0x134b27[_0xc479('0x48')]=_[_0xc479('0x4a')](_0x134b27[_0xc479('0x46')],_0x134b27[_0xc479('0x47')]);_0x519e7d[_0xc479('0x49')]=_[_0xc479('0x4a')](_0x134b27['model'],qs[_0xc479('0x4b')](_0x3ecbd8['query'][_0xc479('0x4b')]));_0x519e7d[_0xc479('0x49')]=_0x519e7d[_0xc479('0x49')][_0xc479('0x4c')]?_0x519e7d['attributes']:_0x134b27[_0xc479('0x46')];_0x519e7d[_0xc479('0x4f')]=qs[_0xc479('0x50')](_0x3ecbd8['query']['sort']);_0x519e7d[_0xc479('0x51')]=qs[_0xc479('0x48')](_[_0xc479('0x52')](_0x3ecbd8[_0xc479('0x47')],_0x134b27['filters']));if(_0x3ecbd8[_0xc479('0x47')][_0xc479('0x53')]){_0x519e7d[_0xc479('0x51')]=_[_0xc479('0x54')](_0x519e7d[_0xc479('0x51')],{'$or':_[_0xc479('0x43')](_0x519e7d[_0xc479('0x49')],function(_0xe74af4){var _0x51ae51={};_0x51ae51[_0xe74af4]={'$like':'%'+_0x3ecbd8[_0xc479('0x47')][_0xc479('0x53')]+'%'};return _0x51ae51;})});}_0x519e7d=_['merge']({},_0x519e7d,_0x3ecbd8[_0xc479('0x5e')]);return _0x469cc8[_0xc479('0x88')](_0x519e7d);}})[_0xc479('0x22')](function(_0x4dd2c7){if(_0x4dd2c7){_0x39f4c0=_0x4dd2c7[_0xc479('0x4c')];if(!_0x3ecbd8[_0xc479('0x47')][_0xc479('0x4d')](_0xc479('0x4e'))){_0x519e7d['limit']=qs[_0xc479('0x31')](_0x3ecbd8[_0xc479('0x47')]['limit']);_0x519e7d[_0xc479('0x2f')]=qs[_0xc479('0x2f')](_0x3ecbd8[_0xc479('0x47')][_0xc479('0x2f')]);}return _0x469cc8[_0xc479('0x88')](_0x519e7d);}})['then'](function(_0x25486d){if(_0x25486d){return _0x25486d?{'count':_0x39f4c0,'rows':_0x25486d}:null;}})[_0xc479('0x22')](respondWithResult(_0x17b92e,null))['catch'](handleError(_0x17b92e,null));};function Extension(_0x2fdf13,_0x281b7d,_0xbf0eb4,_0xb63cc1){this[_0xc479('0x89')]=_0xc479('0x8a');this[_0xc479('0x8b')]=_0x2fdf13['localstationid'];this[_0xc479('0x8c')]=_0xb63cc1;this[_0xc479('0x8d')]='system';this[_0xc479('0x8e')]=_0xc479('0x8f');this[_0xc479('0x6a')]=_0x2fdf13['id'];this['priority']=_0x281b7d;this[_0xc479('0x90')]=_0xbf0eb4;}function createExtensionsReciveFax(_0x163dc1){var _0x32c0f5=0x1;var _0xe12590=[];_0xe12590[_0xc479('0x91')](new Extension(_0x163dc1,_0x32c0f5,'',_0xc479('0x92')));_0x32c0f5+=0x1;_0xe12590['push'](new Extension(_0x163dc1,_0x32c0f5,_0xc479('0x93'),'Set'));_0x32c0f5+=0x1;for(var _0x409abe in _0x163dc1){if(_0x163dc1[_0xc479('0x4d')](_0x409abe)&&(_0x409abe==='ecm'||_0x409abe===_0xc479('0x94')||_0x409abe===_0xc479('0x95')||_0x409abe===_0xc479('0x96')||_0x409abe===_0xc479('0x97')||_0x409abe===_0xc479('0x98')||_0x409abe===_0xc479('0x99')||_0x409abe===_0xc479('0x9a')||_0x409abe===_0xc479('0x9b'))){_0xe12590['push'](new Extension(_0x163dc1,_0x32c0f5,_0xc479('0x9c')+_0x409abe+')='+_0x163dc1[_0x409abe],_0xc479('0x9d')));_0x32c0f5+=0x1;}}_0xe12590['push'](new Extension(_0x163dc1,_0x32c0f5,'6',_0xc479('0x9e')));_0x32c0f5+=0x1;_0xe12590['push'](new Extension(_0x163dc1,_0x32c0f5,_0xc479('0x9f'),_0xc479('0xa0')));_0x32c0f5=0x0;return _0xe12590;}exports[_0xc479('0xa1')]=function(_0x470e2e,_0x20fcec,_0x445a81){var _0x5a156d;return db[_0xc479('0xa2')][_0xc479('0x83')](function(_0x4d0f47){return db[_0xc479('0x56')][_0xc479('0x60')](_0x470e2e[_0xc479('0x61')],{'transaction':_0x4d0f47})[_0xc479('0x22')](function(_0x47d3f7){_0x5a156d=_0x47d3f7[_0xc479('0x39')]({'plain':!![]});return db[_0xc479('0xa3')][_0xc479('0x85')](createExtensionsReciveFax(_0x5a156d),{'transaction':_0x4d0f47});});})['then'](function(){return _0x5a156d;})[_0xc479('0x22')](respondWithResult(_0x20fcec,null))[_0xc479('0x59')](handleError(_0x20fcec,null));};exports['updateAccountApplications']=function(_0x106010,_0x289a2a,_0x23d312){var _0x1c652b;return db[_0xc479('0xa2')]['transaction'](function(_0x1acfe4){return db[_0xc479('0x56')][_0xc479('0xa4')](_0x106010['body'],{'where':{'id':_0x106010['body']['id']},'transaction':_0x1acfe4})[_0xc479('0x22')](function(_0x5c9a6b){return db[_0xc479('0xa3')][_0xc479('0x38')]({'where':{'FaxAccountId':_0x106010[_0xc479('0x61')]['id']},'transaction':_0x1acfe4})['then'](function(_0x2102a3){return db[_0xc479('0xa3')]['bulkCreate'](createExtensionsReciveFax(_['omit'](_0x106010['body'],[_0xc479('0xa5'),_0xc479('0x45'),'createdAt',_0xc479('0xa6'),_0xc479('0xa7'),'ListId'])),{'transaction':_0x1acfe4});});});})[_0xc479('0x22')](function(){return db['FaxAccount'][_0xc479('0xa8')](_0x106010[_0xc479('0x61')]['id']);})[_0xc479('0x22')](respondWithResult(_0x289a2a,null))['catch'](handleError(_0x289a2a,null));};exports[_0xc479('0xa9')]=function(_0x1e057b,_0x34f425,_0xe5d263){var _0x152c89={'raw':!![],'where':{}};var _0x3a146a={};var _0x2c4456={'count':0x0,'rows':[]};return db[_0xc479('0x56')][_0xc479('0x6d')]({'where':{'id':_0x1e057b[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x34f425,null))[_0xc479('0x22')](function(_0x724335){if(_0x724335){_0x3a146a['model']=_[_0xc479('0x5c')](db[_0xc479('0xaa')][_0xc479('0x5d')]);_0x3a146a['query']=_[_0xc479('0x5c')](_0x1e057b[_0xc479('0x47')]);_0x3a146a[_0xc479('0x48')]=_[_0xc479('0x4a')](_0x3a146a[_0xc479('0x46')],_0x3a146a[_0xc479('0x47')]);_0x152c89['attributes']=_[_0xc479('0x4a')](_0x3a146a[_0xc479('0x46')],qs['fields'](_0x1e057b['query'][_0xc479('0x4b')]));_0x152c89[_0xc479('0x49')]=_0x152c89['attributes'][_0xc479('0x4c')]?_0x152c89[_0xc479('0x49')]:_0x3a146a[_0xc479('0x46')];if(!_0x1e057b[_0xc479('0x47')][_0xc479('0x4d')](_0xc479('0x4e'))){_0x152c89[_0xc479('0x31')]=qs[_0xc479('0x31')](_0x1e057b[_0xc479('0x47')][_0xc479('0x31')]);_0x152c89[_0xc479('0x2f')]=qs['offset'](_0x1e057b['query'][_0xc479('0x2f')]);}_0x152c89['order']=qs[_0xc479('0x50')](_0x1e057b[_0xc479('0x47')][_0xc479('0x50')]);_0x152c89[_0xc479('0x51')]=qs[_0xc479('0x48')](_['pick'](_0x1e057b[_0xc479('0x47')],_0x3a146a[_0xc479('0x48')]));_0x152c89[_0xc479('0x51')]['FaxAccountId']=_0x724335['id'];if(_0x1e057b[_0xc479('0x47')]['filter']){_0x152c89['where']=_['merge'](_0x152c89[_0xc479('0x51')],{'$or':_[_0xc479('0x43')](_0x152c89['attributes'],function(_0x2d3531){var _0x491b76={};_0x491b76[_0x2d3531]={'$like':'%'+_0x1e057b[_0xc479('0x47')][_0xc479('0x53')]+'%'};return _0x491b76;})});}if(_0x1e057b['query']['$gte']){var _0x2c1f9b=_0x1e057b[_0xc479('0x47')]['$gte'][_0xc479('0xab')](',');var _0x30d796={};_0x30d796[_0x2c1f9b[0x0]]={'$gte':moment(_0x2c1f9b[0x1])[_0xc479('0xac')](_0xc479('0xad'))};_0x152c89[_0xc479('0x51')]=_[_0xc479('0x54')](_0x152c89[_0xc479('0x51')],_0x30d796);}_0x152c89=_[_0xc479('0x54')]({},_0x152c89,_0x1e057b['options']);return db['FaxMessage']['count']({'where':_0x152c89['where']})[_0xc479('0x22')](function(_0x2d8dfb){_0x2c4456[_0xc479('0x32')]=_0x2d8dfb;if(_0x1e057b[_0xc479('0x47')][_0xc479('0x57')]){_0x152c89[_0xc479('0x58')]=[{'all':!![]}];}return db[_0xc479('0xaa')]['findAll'](_0x152c89);})['then'](function(_0x33eea2){_0x2c4456[_0xc479('0x6f')]=_0x33eea2;return _0x2c4456;});}})[_0xc479('0x22')](respondWithFilteredResult(_0x34f425,_0x152c89))[_0xc479('0x59')](handleError(_0x34f425,null));};exports['send']=function(_0x51d84c,_0x16188c,_0x5cd03f){var _0xfba69d,_0x265a69={},_0x55d9fa;if(_0x51d84c[_0xc479('0x61')]['to']){_0x55d9fa=_0x51d84c[_0xc479('0x61')]['to'][0x0];}return db['FaxAccount']['find']({'where':{'id':_0x51d84c[_0xc479('0x5b')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db['CmContact'],'as':_0xc479('0xae'),'where':{'fax':_0x55d9fa},'limit':0x1,'order':[[_0xc479('0xa6'),_0xc479('0xaf')]]}]}]})[_0xc479('0x22')](handleEntityNotFound(_0x16188c,null))[_0xc479('0x22')](function(_0x5eab5b){_0xfba69d=_0x5eab5b;if(_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')]&&_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')]['length']){for(var _0x561eb2=0x0;_0x561eb2<_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')]['length'];_0x561eb2+=0x1){_0x51d84c[_0xc479('0x61')]['attachments'][_0x561eb2]={'filename':_0x51d84c[_0xc479('0x61')]['attachments'][_0x561eb2][_0xc479('0x3e')],'id':_0x51d84c['body']['attachments'][_0x561eb2]['id'],'path':path[_0xc479('0xb1')](config['root'],_0xc479('0xb2'),_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')][_0x561eb2][_0xc479('0xb3')])};}}return respondWithRpcPromise(_0xc479('0xb4'),_0xc479('0xb4'),{'FaxAccountId':_['isNil'](_0x51d84c[_0xc479('0x5b')]['id'])?undefined:_0x51d84c['params']['id'],'path':_[_0xc479('0xb5')](_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')][0x0][_0xc479('0xb6')])?undefined:_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')][0x0][_0xc479('0xb6')],'fax':_[_0xc479('0xb5')](_0x51d84c[_0xc479('0x61')]['to'][0x0])?undefined:_0x51d84c[_0xc479('0x61')]['to'][0x0]},client9002);})['then'](function(){if(_0xfba69d){if(_[_0xc479('0xb5')](_0x51d84c[_0xc479('0x61')][_0xc479('0xb7')])){_0x51d84c[_0xc479('0x61')][_0xc479('0xb7')]=util['format'](_0xc479('0xb8'),_0xfba69d[_0xc479('0x3e')],_0xfba69d[_0xc479('0xb9')]);}if(_0xfba69d['List']){if(_0xfba69d['List'][_0xc479('0xae')]['length']){return _0xfba69d[_0xc479('0xba')][_0xc479('0xae')][0x0];}else{return db['CmContact'][_0xc479('0x60')](_[_0xc479('0x1a')](_0x51d84c[_0xc479('0x61')],{'firstName':_0x51d84c[_0xc479('0x61')]['to'][0x0],'phone':_0x51d84c[_0xc479('0x61')]['to'][0x0],'fax':_0x51d84c[_0xc479('0x61')]['to'][0x0],'ListId':_0xfba69d['ListId']}));}}else{throw new Error(_0xc479('0xbb'));}}else{throw new Error(_0xc479('0xbc'));}})['then'](function(_0x34dd4d){if(_0x34dd4d){return db[_0xc479('0x76')][_0xc479('0x5f')]({'where':{'ContactId':_0x34dd4d['id'],'closed':![],'FaxAccountId':_0xfba69d['id']}})[_0xc479('0x22')](function(_0x2534ba){if(_0x2534ba){return[_0x2534ba,![]];}return db[_0xc479('0x76')][_0xc479('0x60')]({'UserId':_0x51d84c[_0xc479('0x63')]['id'],'ContactId':_0x34dd4d['id'],'FaxAccountId':_0xfba69d['id'],'fax':_0x51d84c['body']['to'][0x0],'firstMsgDirection':_0xc479('0xbd'),'Messages':[_[_0xc479('0x54')](_0x51d84c[_0xc479('0x61')],{'read':![],'body':_0x51d84c[_0xc479('0x61')]['attachments'][0x0][_0xc479('0xbe')],'FaxAccountId':_0xfba69d['id'],'UserId':_0x51d84c[_0xc479('0x63')]['id'],'ContactId':_0x34dd4d['id'],'AttachmentId':_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')][0x0]['id']})]},{'include':[{'model':db[_0xc479('0xaa')],'as':_0xc479('0xbf')}]})['then'](function(_0x186c2d){return[_0x186c2d,!![]];});});}else{throw new Error(_0xc479('0xc0'));}})[_0xc479('0xc1')](function(_0x41b898,_0x2271ea){if(_0x2271ea){return _0x41b898;}return db['FaxMessage']['create']({'direction':_0xc479('0xbd'),'read':![],'body':_0x51d84c[_0xc479('0x61')][_0xc479('0xb0')][0x0][_0xc479('0xbe')],'FaxAccountId':_0xfba69d['id'],'FaxInteractionId':_0x41b898['id'],'UserId':_0x51d84c[_0xc479('0x63')]['id'],'ContactId':_0x41b898[_0xc479('0xc2')],'AttachmentId':_0x51d84c['body'][_0xc479('0xb0')][0x0]['id']})[_0xc479('0x22')](function(_0x2916ea){_0x41b898[_0xc479('0xc3')][_0xc479('0xbf')]=[];_0x41b898['dataValues'][_0xc479('0xbf')][_0xc479('0x91')](_0x2916ea[_0xc479('0xc3')]);return _0x41b898;});})[_0xc479('0x22')](function(_0x38d6b4){respondWithRpcPromise(_0xc479('0xc4'),_0xc479('0xc4'),{'FaxAccountId':_[_0xc479('0xb5')](_0x51d84c[_0xc479('0x5b')]['id'])?undefined:_0x51d84c['params']['id'],'path':_[_0xc479('0xb5')](_0x51d84c[_0xc479('0x61')]['attachments'][0x0]['path'])?undefined:_0x51d84c['body'][_0xc479('0xb0')][0x0][_0xc479('0xb6')],'fax':_[_0xc479('0xb5')](_0x51d84c[_0xc479('0x61')]['to'][0x0])?undefined:_0x51d84c['body']['to'][0x0],'AttachmentId':_0x51d84c[_0xc479('0x61')]['attachments'][0x0]['id']},client9002)[_0xc479('0x22')](function(_0x534886){logger[_0xc479('0x23')](_0xc479('0xc5'),_0x534886);})['catch'](function(_0x4c6390){logger[_0xc479('0x23')](_0xc479('0xc5'),_0x4c6390);});return _0x38d6b4;})[_0xc479('0x22')](respondWithResult(_0x16188c,null))[_0xc479('0x59')](handleError(_0x16188c,null));};exports['addAgents']=function(_0xd015ad,_0x20e46c,_0x40196f){return db['FaxAccount'][_0xc479('0x5f')]({'where':{'id':_0xd015ad['params']['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x20e46c,null))['then'](function(_0x5271d2){if(_0x5271d2){return _0x5271d2['addAgents'](_0xd015ad[_0xc479('0x61')]['ids'],_['omit'](_0xd015ad['body'],[_0xc479('0x74'),'id'])||{})[_0xc479('0xc1')](function(_0x2f7dcc){for(var _0x7d82a7=0x0;_0x7d82a7<_0xd015ad[_0xc479('0x61')]['ids'][_0xc479('0x4c')];_0x7d82a7+=0x1){socket['emit']('userFaxAccount:save',{'UserId':Number(_0xd015ad[_0xc479('0x61')][_0xc479('0x74')][_0x7d82a7]),'FaxAccountId':Number(_0xd015ad[_0xc479('0x5b')]['id'])});}return _0x2f7dcc;});}})[_0xc479('0x22')](respondWithResult(_0x20e46c,null))['catch'](handleError(_0x20e46c,null));};exports[_0xc479('0xc6')]=function(_0x16bbe3,_0x55068e,_0x4e3ca8){return db[_0xc479('0x56')][_0xc479('0x5f')]({'where':{'id':_0x16bbe3[_0xc479('0x5b')]['id']}})[_0xc479('0x22')](handleEntityNotFound(_0x55068e,null))['then'](function(_0x2c19ee){if(_0x2c19ee){return _0x2c19ee[_0xc479('0xc6')](_0x16bbe3[_0xc479('0x47')]['ids'])['then'](function(){if(_[_0xc479('0xc7')](_0x16bbe3[_0xc479('0x47')][_0xc479('0x74')])){for(var _0x2ec56f=0x0;_0x2ec56f<_0x16bbe3[_0xc479('0x47')]['ids'][_0xc479('0x4c')];_0x2ec56f+=0x1){socket[_0xc479('0xc8')]('userFaxAccount:remove',{'UserId':Number(_0x16bbe3[_0xc479('0x47')][_0xc479('0x74')][_0x2ec56f]),'FaxAccountId':Number(_0x16bbe3[_0xc479('0x5b')]['id'])});}}else{socket[_0xc479('0xc8')](_0xc479('0xc9'),{'UserId':Number(_0x16bbe3['query'][_0xc479('0x74')]),'FaxAccountId':Number(_0x16bbe3[_0xc479('0x5b')]['id'])});}});}})[_0xc479('0x22')](respondWithStatusCode(_0x55068e,null))[_0xc479('0x59')](handleError(_0x55068e,null));};exports[_0xc479('0xca')]=function(_0x358fb0,_0x4bbbcd,_0x42918c){var _0x51006b={};var _0x1c1945={};var _0x53db99;var _0x4cfb80;return db[_0xc479('0x56')]['findOne']({'where':{'id':_0x358fb0[_0xc479('0x5b')]['id']}})['then'](handleEntityNotFound(_0x4bbbcd,null))['then'](function(_0x5675cf){if(_0x5675cf){_0x53db99=_0x5675cf;_0x1c1945['model']=_[_0xc479('0x5c')](db[_0xc479('0xcb')][_0xc479('0x5d')]);_0x1c1945[_0xc479('0x47')]=_['keys'](_0x358fb0['query']);_0x1c1945[_0xc479('0x48')]=_[_0xc479('0x4a')](_0x1c1945['model'],_0x1c1945[_0xc479('0x47')]);_0x51006b[_0xc479('0x49')]=_[_0xc479('0x4a')](_0x1c1945[_0xc479('0x46')],qs[_0xc479('0x4b')](_0x358fb0[_0xc479('0x47')][_0xc479('0x4b')]));_0x51006b[_0xc479('0x49')]=_0x51006b['attributes']['length']?_0x51006b[_0xc479('0x49')]:_0x1c1945[_0xc479('0x46')];_0x51006b[_0xc479('0x4f')]=qs[_0xc479('0x50')](_0x358fb0[_0xc479('0x47')][_0xc479('0x50')]);_0x51006b[_0xc479('0x51')]=qs[_0xc479('0x48')](_[_0xc479('0x52')](_0x358fb0[_0xc479('0x47')],_0x1c1945['filters']));if(_0x358fb0[_0xc479('0x47')][_0xc479('0x53')]){_0x51006b['where']=_[_0xc479('0x54')](_0x51006b['where'],{'$or':_[_0xc479('0x43')](_0x51006b['attributes'],function(_0x57d3e2){var _0xb85852={};_0xb85852[_0x57d3e2]={'$like':'%'+_0x358fb0['query'][_0xc479('0x53')]+'%'};return _0xb85852;})});}_0x51006b=_[_0xc479('0x54')]({},_0x51006b,_0x358fb0[_0xc479('0x5e')]);return _0x53db99[_0xc479('0xca')](_0x51006b);}})['then'](function(_0x393ee2){if(_0x393ee2){_0x4cfb80=_0x393ee2[_0xc479('0x4c')];if(!_0x358fb0[_0xc479('0x47')][_0xc479('0x4d')](_0xc479('0x4e'))){_0x51006b[_0xc479('0x31')]=qs[_0xc479('0x31')](_0x358fb0[_0xc479('0x47')]['limit']);_0x51006b[_0xc479('0x2f')]=qs['offset'](_0x358fb0['query'][_0xc479('0x2f')]);}return _0x53db99['getAgents'](_0x51006b);}})[_0xc479('0x22')](function(_0x3e6346){if(_0x3e6346){return _0x3e6346?{'count':_0x4cfb80,'rows':_0x3e6346}:null;}})['then'](respondWithResult(_0x4bbbcd,null))[_0xc479('0x59')](handleError(_0x4bbbcd,null));};
\ No newline at end of file
+var _0x4da2=['Set','ecm','localstationid','gateway','faxdetect','headerinfo','modem','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','ReceiveFax','addAccountApplications','sequelize','updateAccountApplications','VoiceExtension','createdAt','updatedAt','ListId','getMessages','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','send','CmList','Contacts','DESC','attachments','join','root','server/files/attachments','basename','CheckAfterSend','isNil','from','List','List\x20not\x20found','Send\x20Fax\x20failed','user','out','Contact\x20not\x20found','spread','filename','ContactId','dataValues','Messages','SendFax','SendFaxRpc,\x20%s','info','addAgents','userFaxAccount:save','removeAgents','isArray','emit','userFaxAccount:remove','getAgents','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','FaxAccount,\x20%s,\x20%s','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','FaxAccounts','UserProfileResource','stack','name','index','Pause','map','FaxAccount','rawAttributes','key','model','keys','query','filters','attributes','fields','length','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','mandatoryDispositionPause','intersection','include','find','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','create','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','addDisposition','FaxAccountId','Disposition','getDispositions','findOne','hasOwnProperty','pick','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','nolimit','removeAnswers','addInteraction','FaxInteraction','omit','getInteractions','CmContact','Contact','User','fullname','internal','Tags','color','tag','addApplications','transaction','FaxApplication','bulkCreate','findAndCountAll','priority','getApplications','context','from-voip-provider','exten','app','description','Fax\x20Extension','appdata','push','CDR(type)=inbound-fax'];(function(_0x14be19,_0x3067bb){var _0x240fb4=function(_0x58a3b9){while(--_0x58a3b9){_0x14be19['push'](_0x14be19['shift']());}};_0x240fb4(++_0x3067bb);}(_0x4da2,0x1c0));var _0x24da=function(_0x4d7f84,_0x2b4309){_0x4d7f84=_0x4d7f84-0x0;var _0x4a516a=_0x4da2[_0x4d7f84];return _0x4a516a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x24da('0x0'));var zipdir=require(_0x24da('0x1'));var jsonpatch=require(_0x24da('0x2'));var rp=require('request-promise');var moment=require(_0x24da('0x3'));var BPromise=require(_0x24da('0x4'));var Mustache=require(_0x24da('0x5'));var util=require(_0x24da('0x6'));var path=require(_0x24da('0x7'));var sox=require(_0x24da('0x8'));var csv=require('to-csv');var ejs=require(_0x24da('0x9'));var fs=require('fs');var fs_extra=require(_0x24da('0xa'));var _=require('lodash');var squel=require(_0x24da('0xb'));var crypto=require(_0x24da('0xc'));var jsforce=require(_0x24da('0xd'));var deskjs=require(_0x24da('0xe'));var toCsv=require(_0x24da('0xf'));var querystring=require(_0x24da('0x10'));var Papa=require(_0x24da('0x11'));var Redis=require(_0x24da('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x24da('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x24da('0x14'));var config=require(_0x24da('0x15'));var licenseUtil=require(_0x24da('0x16'));var db=require(_0x24da('0x17'))['db'];config[_0x24da('0x18')]=_[_0x24da('0x19')](config[_0x24da('0x18')],{'host':_0x24da('0x1a'),'port':0x18eb});var socket=require(_0x24da('0x1b'))(new Redis(config[_0x24da('0x18')]));require('./faxAccount.socket')[_0x24da('0x1c')](socket);var jayson=require(_0x24da('0x1d'));var client=jayson[_0x24da('0x1e')][_0x24da('0x1f')]({'port':0x232c});var client9002=jayson[_0x24da('0x1e')][_0x24da('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x425c33,_0x3dc796,_0xe823aa,_0x1fbf1f){return new BPromise(function(_0x3c0734,_0x1963fc){var _0x29050d=_0x1fbf1f||client;return _0x29050d[_0x24da('0x20')](_0x425c33,_0xe823aa)['then'](function(_0x568283){logger['info'](_0x24da('0x21'),_0x3dc796,_0x24da('0x22'));logger['debug'](_0x24da('0x23'),_0x3dc796,'request\x20sent',JSON[_0x24da('0x24')](_0x568283));if(_0x568283['error']){if(_0x568283[_0x24da('0x25')]['code']===0x1f4){logger[_0x24da('0x25')](_0x24da('0x21'),_0x3dc796,_0x568283[_0x24da('0x25')][_0x24da('0x26')]);return _0x1963fc(_0x568283[_0x24da('0x25')][_0x24da('0x26')]);}logger[_0x24da('0x25')](_0x24da('0x21'),_0x3dc796,_0x568283[_0x24da('0x25')][_0x24da('0x26')]);return _0x3c0734(_0x568283[_0x24da('0x25')][_0x24da('0x26')]);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x3dc796,_0x24da('0x22'));_0x3c0734(_0x568283[_0x24da('0x27')][_0x24da('0x26')]);}})['catch'](function(_0x2b319c){logger[_0x24da('0x25')]('FaxAccount,\x20%s,\x20%s',_0x3dc796,_0x2b319c);_0x1963fc(_0x2b319c);});});}function respondWithStatusCode(_0x44c6df,_0x222be7){_0x222be7=_0x222be7||0xcc;return function(_0x912553){if(_0x912553){return _0x44c6df[_0x24da('0x28')](_0x222be7);}return _0x44c6df[_0x24da('0x29')](_0x222be7)[_0x24da('0x2a')]();};}function respondWithResult(_0x70bf1b,_0x542abf){_0x542abf=_0x542abf||0xc8;return function(_0x4bd9c9){if(_0x4bd9c9){return _0x70bf1b['status'](_0x542abf)[_0x24da('0x2b')](_0x4bd9c9);}};}function respondWithFilteredResult(_0x21a8ed,_0x5837e6){return function(_0x3a4ef9){if(_0x3a4ef9){var _0x5f01c7=typeof _0x5837e6[_0x24da('0x2c')]===_0x24da('0x2d')&&typeof _0x5837e6[_0x24da('0x2e')]===_0x24da('0x2d');var _0x1c6ff7=_0x3a4ef9[_0x24da('0x2f')];var _0xa92510=_0x5f01c7?0x0:_0x5837e6[_0x24da('0x2c')];var _0x262732=_0x5f01c7?_0x3a4ef9[_0x24da('0x2f')]:_0x5837e6[_0x24da('0x2c')]+_0x5837e6[_0x24da('0x2e')];var _0x45e533;if(_0x262732>=_0x1c6ff7){_0x262732=_0x1c6ff7;_0x45e533=0xc8;}else{_0x45e533=0xce;}_0x21a8ed[_0x24da('0x29')](_0x45e533);return _0x21a8ed[_0x24da('0x30')](_0x24da('0x31'),_0xa92510+'-'+_0x262732+'/'+_0x1c6ff7)[_0x24da('0x2b')](_0x3a4ef9);}return null;};}function patchUpdates(_0x4355f6){return function(_0x56c4af){try{jsonpatch['apply'](_0x56c4af,_0x4355f6,!![]);}catch(_0x2ab503){return BPromise[_0x24da('0x32')](_0x2ab503);}return _0x56c4af[_0x24da('0x33')]();};}function saveUpdates(_0x1910d4,_0x290eb8){return function(_0x170428){if(_0x170428){return _0x170428[_0x24da('0x34')](_0x1910d4)[_0x24da('0x35')](function(_0x2f0551){return _0x2f0551;});}return null;};}function removeEntity(_0x1d7afb,_0x5adeb1){return function(_0x4463b8){if(_0x4463b8){return _0x4463b8[_0x24da('0x36')]()[_0x24da('0x35')](function(){var _0xc0e772=_0x4463b8[_0x24da('0x37')]({'plain':!![]});var _0x315cea=_0x24da('0x38');return db[_0x24da('0x39')]['destroy']({'where':{'type':_0x315cea,'resourceId':_0xc0e772['id']}})[_0x24da('0x35')](function(){return _0x4463b8;});})[_0x24da('0x35')](function(){_0x1d7afb['status'](0xcc)[_0x24da('0x2a')]();});}};}function handleEntityNotFound(_0x4b2b82,_0x2efc1c){return function(_0x4fee14){if(!_0x4fee14){_0x4b2b82[_0x24da('0x28')](0x194);}return _0x4fee14;};}function handleError(_0x5a9916,_0x2087d1){_0x2087d1=_0x2087d1||0x1f4;return function(_0x25827e){logger[_0x24da('0x25')](_0x25827e[_0x24da('0x3a')]);if(_0x25827e[_0x24da('0x3b')]){delete _0x25827e[_0x24da('0x3b')];}_0x5a9916['status'](_0x2087d1)['send'](_0x25827e);};}exports[_0x24da('0x3c')]=function(_0x3aaed3,_0x1f1f0e){var _0x8755d6={'include':[{'model':db[_0x24da('0x3d')],'as':'mandatoryDispositionPause'}]},_0x8ce4e8={},_0x85fbf8={'count':0x0,'rows':[]};var _0x4994e8=_[_0x24da('0x3e')](db[_0x24da('0x3f')][_0x24da('0x40')],function(_0x1634f8){return{'name':_0x1634f8['fieldName'],'type':_0x1634f8['type'][_0x24da('0x41')]};});_0x8ce4e8[_0x24da('0x42')]=_[_0x24da('0x3e')](_0x4994e8,_0x24da('0x3b'));_0x8ce4e8['query']=_[_0x24da('0x43')](_0x3aaed3[_0x24da('0x44')]);_0x8ce4e8[_0x24da('0x45')]=_['intersection'](_0x8ce4e8['model'],_0x8ce4e8['query']);_0x8755d6[_0x24da('0x46')]=_['intersection'](_0x8ce4e8[_0x24da('0x42')],qs[_0x24da('0x47')](_0x3aaed3[_0x24da('0x44')]['fields']));_0x8755d6[_0x24da('0x46')]=_0x8755d6[_0x24da('0x46')][_0x24da('0x48')]?_0x8755d6['attributes']:_0x8ce4e8[_0x24da('0x42')];if(!_0x3aaed3[_0x24da('0x44')]['hasOwnProperty']('nolimit')){_0x8755d6[_0x24da('0x2e')]=qs[_0x24da('0x2e')](_0x3aaed3[_0x24da('0x44')]['limit']);_0x8755d6['offset']=qs[_0x24da('0x2c')](_0x3aaed3['query'][_0x24da('0x2c')]);}_0x8755d6[_0x24da('0x49')]=qs[_0x24da('0x4a')](_0x3aaed3[_0x24da('0x44')][_0x24da('0x4a')]);_0x8755d6[_0x24da('0x4b')]=qs[_0x24da('0x45')](_['pick'](_0x3aaed3['query'],_0x8ce4e8[_0x24da('0x45')]),_0x4994e8);if(_0x3aaed3[_0x24da('0x44')][_0x24da('0x4c')]){_0x8755d6[_0x24da('0x4b')]=_[_0x24da('0x4d')](_0x8755d6['where'],{'$or':_[_0x24da('0x3e')](_0x4994e8,function(_0x10eba1){if(_0x10eba1[_0x24da('0x4e')]!==_0x24da('0x4f')){var _0x25caa9={};_0x25caa9[_0x10eba1['name']]={'$like':'%'+_0x3aaed3[_0x24da('0x44')]['filter']+'%'};return _0x25caa9;}})});}_0x8755d6=_[_0x24da('0x4d')]({},_0x8755d6,_0x3aaed3[_0x24da('0x50')]);var _0x5d29eb={'where':_0x8755d6[_0x24da('0x4b')]};return db['FaxAccount'][_0x24da('0x2f')](_0x5d29eb)[_0x24da('0x35')](function(_0x15c6d9){_0x85fbf8[_0x24da('0x2f')]=_0x15c6d9;if(_0x3aaed3[_0x24da('0x44')][_0x24da('0x51')]){_0x8755d6['include']=[{'all':!![]}];}return db['FaxAccount'][_0x24da('0x52')](_0x8755d6);})[_0x24da('0x35')](function(_0x452f48){_0x85fbf8[_0x24da('0x53')]=_0x452f48;return _0x85fbf8;})[_0x24da('0x35')](respondWithFilteredResult(_0x1f1f0e,_0x8755d6))['catch'](handleError(_0x1f1f0e,null));};exports['show']=function(_0x3c8ce0,_0x33fa0b){var _0x144f41={'raw':![],'where':{'id':_0x3c8ce0['params']['id']},'include':[{'model':db['Pause'],'as':_0x24da('0x54')}]},_0x187df8={};_0x187df8[_0x24da('0x42')]=_[_0x24da('0x43')](db[_0x24da('0x3f')][_0x24da('0x40')]);_0x187df8['query']=_[_0x24da('0x43')](_0x3c8ce0['query']);_0x187df8[_0x24da('0x45')]=_['intersection'](_0x187df8[_0x24da('0x42')],_0x187df8[_0x24da('0x44')]);_0x144f41['attributes']=_[_0x24da('0x55')](_0x187df8[_0x24da('0x42')],qs[_0x24da('0x47')](_0x3c8ce0['query']['fields']));_0x144f41[_0x24da('0x46')]=_0x144f41['attributes'][_0x24da('0x48')]?_0x144f41[_0x24da('0x46')]:_0x187df8[_0x24da('0x42')];if(_0x3c8ce0[_0x24da('0x44')][_0x24da('0x51')]){_0x144f41[_0x24da('0x56')]=[{'all':!![]}];}_0x144f41=_[_0x24da('0x4d')]({},_0x144f41,_0x3c8ce0[_0x24da('0x50')]);return db[_0x24da('0x3f')][_0x24da('0x57')](_0x144f41)['then'](handleEntityNotFound(_0x33fa0b,null))['then'](respondWithResult(_0x33fa0b,null))['catch'](handleError(_0x33fa0b,null));};exports['create']=function(_0x55bf72,_0x1ba74b){return db['FaxAccount']['create'](_0x55bf72[_0x24da('0x58')],{})[_0x24da('0x35')](function(_0x2579b9){var _0x415802=_0x55bf72['user'][_0x24da('0x37')]({'plain':!![]});if(!_0x415802)throw new Error(_0x24da('0x59'));if(_0x415802[_0x24da('0x5a')]==='user'){var _0x351801=_0x2579b9[_0x24da('0x37')]({'plain':!![]});var _0x5b044b=_0x24da('0x38');return db[_0x24da('0x5b')][_0x24da('0x57')]({'where':{'name':_0x5b044b,'userProfileId':_0x415802[_0x24da('0x5c')]},'raw':!![]})[_0x24da('0x35')](function(_0x2c98b4){if(_0x2c98b4&&_0x2c98b4['autoAssociation']===0x0){return db['UserProfileResource'][_0x24da('0x5d')]({'name':_0x351801[_0x24da('0x3b')],'resourceId':_0x351801['id'],'type':_0x2c98b4[_0x24da('0x3b')],'sectionId':_0x2c98b4['id']},{})[_0x24da('0x35')](function(){return _0x2579b9;});}else{return _0x2579b9;}})[_0x24da('0x5e')](function(_0x81653e){logger[_0x24da('0x25')](_0x24da('0x5f'),_0x81653e);throw _0x81653e;});}return _0x2579b9;})[_0x24da('0x35')](respondWithResult(_0x1ba74b,0xc9))['catch'](handleError(_0x1ba74b,null));};exports[_0x24da('0x34')]=function(_0x5347cc,_0x5295c6){if(_0x5347cc[_0x24da('0x58')]['id']){delete _0x5347cc[_0x24da('0x58')]['id'];}return db['FaxAccount']['find']({'where':{'id':_0x5347cc[_0x24da('0x60')]['id']},'include':[{'model':db[_0x24da('0x3d')],'as':'mandatoryDispositionPause'}]})[_0x24da('0x35')](handleEntityNotFound(_0x5295c6,null))[_0x24da('0x35')](saveUpdates(_0x5347cc[_0x24da('0x58')],null))[_0x24da('0x35')](respondWithResult(_0x5295c6,null))['catch'](handleError(_0x5295c6,null));};exports['destroy']=function(_0x52c0ed,_0x51e008){return db[_0x24da('0x3f')][_0x24da('0x57')]({'where':{'id':_0x52c0ed[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x51e008,null))[_0x24da('0x35')](removeEntity(_0x51e008,null))['catch'](handleError(_0x51e008,null));};exports[_0x24da('0x61')]=function(_0x31b027,_0x4360e4){return db[_0x24da('0x3f')][_0x24da('0x61')]()[_0x24da('0x35')](respondWithResult(_0x4360e4,null))[_0x24da('0x5e')](handleError(_0x4360e4,null));};exports[_0x24da('0x62')]=function(_0x137e1c,_0x33c172,_0x3e8252){if(_0x137e1c[_0x24da('0x58')]['id']){delete _0x137e1c[_0x24da('0x58')]['id'];}return db[_0x24da('0x3f')][_0x24da('0x57')]({'where':{'id':_0x137e1c['params']['id']}})['then'](handleEntityNotFound(_0x33c172,null))['then'](function(_0x50fd9d){if(_0x50fd9d){_0x137e1c[_0x24da('0x58')][_0x24da('0x63')]=_0x50fd9d['id'];return db[_0x24da('0x64')][_0x24da('0x5d')](_0x137e1c[_0x24da('0x58')]);}})[_0x24da('0x35')](respondWithResult(_0x33c172,null))['catch'](handleError(_0x33c172,null));};exports[_0x24da('0x65')]=function(_0x2cc4ab,_0x2df073,_0x3517a1){var _0x5f050c={'raw':![],'where':{}};var _0x450e12={};var _0x916da0={'count':0x0,'rows':[]};return db['FaxAccount'][_0x24da('0x66')]({'where':{'id':_0x2cc4ab[_0x24da('0x60')]['id']}})['then'](handleEntityNotFound(_0x2df073,null))[_0x24da('0x35')](function(_0x402751){if(_0x402751){_0x450e12[_0x24da('0x42')]=_[_0x24da('0x43')](db[_0x24da('0x64')][_0x24da('0x40')]);_0x450e12['query']=_[_0x24da('0x43')](_0x2cc4ab[_0x24da('0x44')]);_0x450e12[_0x24da('0x45')]=_[_0x24da('0x55')](_0x450e12[_0x24da('0x42')],_0x450e12['query']);_0x5f050c[_0x24da('0x46')]=_['intersection'](_0x450e12[_0x24da('0x42')],qs[_0x24da('0x47')](_0x2cc4ab[_0x24da('0x44')][_0x24da('0x47')]));_0x5f050c[_0x24da('0x46')]=_0x5f050c[_0x24da('0x46')][_0x24da('0x48')]?_0x5f050c[_0x24da('0x46')]:_0x450e12[_0x24da('0x42')];if(!_0x2cc4ab[_0x24da('0x44')][_0x24da('0x67')]('nolimit')){_0x5f050c[_0x24da('0x2e')]=qs[_0x24da('0x2e')](_0x2cc4ab['query'][_0x24da('0x2e')]);_0x5f050c[_0x24da('0x2c')]=qs[_0x24da('0x2c')](_0x2cc4ab[_0x24da('0x44')][_0x24da('0x2c')]);}_0x5f050c['order']=qs[_0x24da('0x4a')](_0x2cc4ab[_0x24da('0x44')]['sort']);_0x5f050c[_0x24da('0x4b')]=qs[_0x24da('0x45')](_[_0x24da('0x68')](_0x2cc4ab[_0x24da('0x44')],_0x450e12[_0x24da('0x45')]));_0x5f050c[_0x24da('0x4b')][_0x24da('0x63')]=_0x402751['id'];if(_0x2cc4ab[_0x24da('0x44')][_0x24da('0x4c')]){_0x5f050c[_0x24da('0x4b')]=_[_0x24da('0x4d')](_0x5f050c[_0x24da('0x4b')],{'$or':_['map'](_0x5f050c[_0x24da('0x46')],function(_0x6f689e){var _0x1109f={};_0x1109f[_0x6f689e]={'$like':'%'+_0x2cc4ab[_0x24da('0x44')][_0x24da('0x4c')]+'%'};return _0x1109f;})});}_0x5f050c=_[_0x24da('0x4d')]({},_0x5f050c,_0x2cc4ab['options']);return db[_0x24da('0x64')][_0x24da('0x2f')]({'where':_0x5f050c[_0x24da('0x4b')]})[_0x24da('0x35')](function(_0x3c9295){_0x916da0[_0x24da('0x2f')]=_0x3c9295;if(_0x2cc4ab[_0x24da('0x44')][_0x24da('0x51')]){_0x5f050c[_0x24da('0x56')]=[{'all':!![]}];}return db[_0x24da('0x64')][_0x24da('0x52')](_0x5f050c);})[_0x24da('0x35')](function(_0x40850f){_0x916da0[_0x24da('0x53')]=_0x40850f;return _0x916da0;});}})[_0x24da('0x35')](respondWithFilteredResult(_0x2df073,_0x5f050c))[_0x24da('0x5e')](handleError(_0x2df073,null));};exports[_0x24da('0x69')]=function(_0x38f5f1,_0x465951,_0x4bc070){return db['FaxAccount'][_0x24da('0x57')]({'where':{'id':_0x38f5f1[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x465951,null))[_0x24da('0x35')](function(_0xbf8982){if(_0xbf8982){return _0xbf8982[_0x24da('0x69')](_0x38f5f1[_0x24da('0x44')][_0x24da('0x6a')]);}})['then'](respondWithStatusCode(_0x465951,null))[_0x24da('0x5e')](handleError(_0x465951,null));};exports[_0x24da('0x6b')]=function(_0x34ac07,_0x17b0a3,_0x5ce38b){if(_0x34ac07['body']['id']){delete _0x34ac07[_0x24da('0x58')]['id'];}return db[_0x24da('0x3f')][_0x24da('0x57')]({'where':{'id':_0x34ac07[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x17b0a3,null))[_0x24da('0x35')](function(_0x42f00b){if(_0x42f00b){_0x34ac07['body'][_0x24da('0x63')]=_0x42f00b['id'];return db[_0x24da('0x6c')]['create'](_0x34ac07['body']);}})[_0x24da('0x35')](respondWithResult(_0x17b0a3,null))['catch'](handleError(_0x17b0a3,null));};exports[_0x24da('0x6d')]=function(_0x687c02,_0x4658de,_0xe22972){var _0xdf4f2b={'raw':![],'where':{}};var _0x424af8={};var _0x32826c={'count':0x0,'rows':[]};return db['FaxAccount'][_0x24da('0x66')]({'where':{'id':_0x687c02[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x4658de,null))[_0x24da('0x35')](function(_0x5b00a4){if(_0x5b00a4){_0x424af8['model']=_['keys'](db[_0x24da('0x6c')]['rawAttributes']);_0x424af8['query']=_[_0x24da('0x43')](_0x687c02['query']);_0x424af8[_0x24da('0x45')]=_[_0x24da('0x55')](_0x424af8[_0x24da('0x42')],_0x424af8['query']);_0xdf4f2b[_0x24da('0x46')]=_['intersection'](_0x424af8[_0x24da('0x42')],qs[_0x24da('0x47')](_0x687c02[_0x24da('0x44')][_0x24da('0x47')]));_0xdf4f2b[_0x24da('0x46')]=_0xdf4f2b[_0x24da('0x46')][_0x24da('0x48')]?_0xdf4f2b[_0x24da('0x46')]:_0x424af8['model'];if(!_0x687c02[_0x24da('0x44')][_0x24da('0x67')](_0x24da('0x6e'))){_0xdf4f2b[_0x24da('0x2e')]=qs[_0x24da('0x2e')](_0x687c02[_0x24da('0x44')][_0x24da('0x2e')]);_0xdf4f2b[_0x24da('0x2c')]=qs['offset'](_0x687c02['query'][_0x24da('0x2c')]);}_0xdf4f2b[_0x24da('0x49')]=qs[_0x24da('0x4a')](_0x687c02['query']['sort']);_0xdf4f2b[_0x24da('0x4b')]=qs['filters'](_[_0x24da('0x68')](_0x687c02[_0x24da('0x44')],_0x424af8[_0x24da('0x45')]));_0xdf4f2b[_0x24da('0x4b')]['FaxAccountId']=_0x5b00a4['id'];if(_0x687c02[_0x24da('0x44')][_0x24da('0x4c')]){_0xdf4f2b[_0x24da('0x4b')]=_[_0x24da('0x4d')](_0xdf4f2b[_0x24da('0x4b')],{'$or':_['map'](_0xdf4f2b['attributes'],function(_0x3c33d6){var _0x4666f5={};_0x4666f5[_0x3c33d6]={'$like':'%'+_0x687c02[_0x24da('0x44')]['filter']+'%'};return _0x4666f5;})});}_0xdf4f2b=_['merge']({},_0xdf4f2b,_0x687c02[_0x24da('0x50')]);return db[_0x24da('0x6c')][_0x24da('0x2f')]({'where':_0xdf4f2b[_0x24da('0x4b')]})[_0x24da('0x35')](function(_0x1537d8){_0x32826c[_0x24da('0x2f')]=_0x1537d8;if(_0x687c02[_0x24da('0x44')]['includeAll']){_0xdf4f2b[_0x24da('0x56')]=[{'all':!![]}];}return db['CannedAnswer'][_0x24da('0x52')](_0xdf4f2b);})['then'](function(_0x1dc146){_0x32826c[_0x24da('0x53')]=_0x1dc146;return _0x32826c;});}})[_0x24da('0x35')](respondWithFilteredResult(_0x4658de,_0xdf4f2b))[_0x24da('0x5e')](handleError(_0x4658de,null));};exports[_0x24da('0x6f')]=function(_0x40943e,_0x273242,_0x3093bb){return db['FaxAccount'][_0x24da('0x57')]({'where':{'id':_0x40943e[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x273242,null))['then'](function(_0x303027){if(_0x303027){return _0x303027[_0x24da('0x6f')](_0x40943e[_0x24da('0x44')][_0x24da('0x6a')]);}})[_0x24da('0x35')](respondWithStatusCode(_0x273242,null))[_0x24da('0x5e')](handleError(_0x273242,null));};exports[_0x24da('0x70')]=function(_0x5f07b3,_0x262c96,_0xb209e){return db[_0x24da('0x71')][_0x24da('0x57')]({'where':{'id':_0x5f07b3[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x262c96,null))[_0x24da('0x35')](function(_0x5ca9a4){if(_0x5ca9a4){return _0x5ca9a4['addInteraction'](_0x5f07b3[_0x24da('0x58')][_0x24da('0x6a')],_[_0x24da('0x72')](_0x5f07b3[_0x24da('0x58')],[_0x24da('0x6a'),'id'])||{});}})[_0x24da('0x35')](respondWithResult(_0x262c96,null))[_0x24da('0x5e')](handleError(_0x262c96,null));};exports[_0x24da('0x73')]=function(_0x26d19a,_0x4f74f2,_0x2b5d97){var _0x2f9ebc={'raw':![],'where':{}};var _0x155226={};var _0x14f61a={'count':0x0,'rows':[]};return db[_0x24da('0x3f')]['findOne']({'where':{'id':_0x26d19a[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x4f74f2,null))[_0x24da('0x35')](function(_0xb70748){if(_0xb70748){_0x155226[_0x24da('0x42')]=_[_0x24da('0x43')](db[_0x24da('0x71')]['rawAttributes']);_0x155226[_0x24da('0x44')]=_[_0x24da('0x43')](_0x26d19a['query']);_0x155226[_0x24da('0x45')]=_[_0x24da('0x55')](_0x155226['model'],_0x155226['query']);_0x2f9ebc[_0x24da('0x46')]=_[_0x24da('0x55')](_0x155226[_0x24da('0x42')],qs[_0x24da('0x47')](_0x26d19a[_0x24da('0x44')][_0x24da('0x47')]));_0x2f9ebc[_0x24da('0x46')]=_0x2f9ebc[_0x24da('0x46')][_0x24da('0x48')]?_0x2f9ebc[_0x24da('0x46')]:_0x155226['model'];if(!_0x26d19a['query'][_0x24da('0x67')](_0x24da('0x6e'))){_0x2f9ebc[_0x24da('0x2e')]=qs[_0x24da('0x2e')](_0x26d19a[_0x24da('0x44')]['limit']);_0x2f9ebc['offset']=qs[_0x24da('0x2c')](_0x26d19a[_0x24da('0x44')][_0x24da('0x2c')]);}_0x2f9ebc[_0x24da('0x49')]=qs[_0x24da('0x4a')](_0x26d19a[_0x24da('0x44')][_0x24da('0x4a')]);_0x2f9ebc[_0x24da('0x4b')]=qs['filters'](_[_0x24da('0x68')](_0x26d19a['query'],_0x155226[_0x24da('0x45')]));_0x2f9ebc['where'][_0x24da('0x63')]=_0xb70748['id'];if(_0x26d19a[_0x24da('0x44')][_0x24da('0x4c')]){_0x2f9ebc['where']=_[_0x24da('0x4d')](_0x2f9ebc[_0x24da('0x4b')],{'$or':_[_0x24da('0x3e')](_0x2f9ebc[_0x24da('0x46')],function(_0x15909d){var _0x9a37b2={};_0x9a37b2[_0x15909d]={'$like':'%'+_0x26d19a['query'][_0x24da('0x4c')]+'%'};return _0x9a37b2;})});}_0x2f9ebc=_[_0x24da('0x4d')]({},_0x2f9ebc,_0x26d19a['options']);return db[_0x24da('0x71')][_0x24da('0x2f')]({'where':_0x2f9ebc[_0x24da('0x4b')]})[_0x24da('0x35')](function(_0x132288){_0x14f61a[_0x24da('0x2f')]=_0x132288;if(_0x26d19a['query'][_0x24da('0x51')]){_0x2f9ebc[_0x24da('0x56')]=[{'model':db[_0x24da('0x74')],'as':_0x24da('0x75'),'required':![]},{'model':db[_0x24da('0x76')],'as':'Owner','attributes':['name',_0x24da('0x77'),_0x24da('0x78')],'required':![]},{'model':db['Tag'],'as':_0x24da('0x79'),'attributes':['id','name',_0x24da('0x7a')],'where':_0x26d19a['query'][_0x24da('0x7b')]?{'id':_0x26d19a[_0x24da('0x44')]['tag']}:undefined,'required':_0x26d19a[_0x24da('0x44')][_0x24da('0x7b')]?!![]:![]}];}return db['FaxInteraction'][_0x24da('0x52')](_0x2f9ebc);})['then'](function(_0x36bc21){_0x14f61a[_0x24da('0x53')]=_0x36bc21;return _0x14f61a;});}})[_0x24da('0x35')](respondWithFilteredResult(_0x4f74f2,_0x2f9ebc))['catch'](handleError(_0x4f74f2,null));};exports[_0x24da('0x7c')]=function(_0x1a03cc,_0x79cbe2,_0x330489){return db[_0x24da('0x3f')]['findOne']({'where':{'id':_0x1a03cc[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x79cbe2,null))[_0x24da('0x35')](function(_0x582d3a){if(_0x582d3a){return db['sequelize'][_0x24da('0x7d')](function(_0x1caa30){return db[_0x24da('0x7e')][_0x24da('0x36')]({'where':{'FaxAccountId':_0x1a03cc[_0x24da('0x60')]['id']},'transaction':_0x1caa30})[_0x24da('0x35')](function(_0xce8a14){var _0x332843=_['map'](_0x1a03cc[_0x24da('0x58')],function(_0x1de9a1){_0x1de9a1['FaxAccountId']=_0x1a03cc[_0x24da('0x60')]['id'];return _0x1de9a1;});return db[_0x24da('0x7e')][_0x24da('0x7f')](_0x332843,{'transaction':_0x1caa30});});})[_0x24da('0x35')](function(){return db['FaxApplication'][_0x24da('0x80')]({'where':{'FaxAccountId':_0x1a03cc[_0x24da('0x60')]['id']},'order':_0x24da('0x81')});});}})[_0x24da('0x35')](respondWithResult(_0x79cbe2,null))[_0x24da('0x5e')](handleError(_0x79cbe2,null));};exports[_0x24da('0x82')]=function(_0x4c37a4,_0x9adbcb,_0x7e1f0a){var _0x3c4cc0={};var _0x5a1f54={};var _0x120fdd;var _0x3d4916;return db[_0x24da('0x3f')][_0x24da('0x66')]({'where':{'id':_0x4c37a4[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x9adbcb,null))[_0x24da('0x35')](function(_0x237f91){if(_0x237f91){_0x120fdd=_0x237f91;_0x5a1f54['model']=_['keys'](db[_0x24da('0x7e')][_0x24da('0x40')]);_0x5a1f54[_0x24da('0x44')]=_['keys'](_0x4c37a4['query']);_0x5a1f54[_0x24da('0x45')]=_[_0x24da('0x55')](_0x5a1f54[_0x24da('0x42')],_0x5a1f54[_0x24da('0x44')]);_0x3c4cc0[_0x24da('0x46')]=_[_0x24da('0x55')](_0x5a1f54[_0x24da('0x42')],qs[_0x24da('0x47')](_0x4c37a4[_0x24da('0x44')][_0x24da('0x47')]));_0x3c4cc0[_0x24da('0x46')]=_0x3c4cc0['attributes'][_0x24da('0x48')]?_0x3c4cc0['attributes']:_0x5a1f54[_0x24da('0x42')];_0x3c4cc0[_0x24da('0x49')]=qs[_0x24da('0x4a')](_0x4c37a4['query']['sort']);_0x3c4cc0[_0x24da('0x4b')]=qs['filters'](_[_0x24da('0x68')](_0x4c37a4[_0x24da('0x44')],_0x5a1f54[_0x24da('0x45')]));if(_0x4c37a4[_0x24da('0x44')][_0x24da('0x4c')]){_0x3c4cc0[_0x24da('0x4b')]=_['merge'](_0x3c4cc0[_0x24da('0x4b')],{'$or':_[_0x24da('0x3e')](_0x3c4cc0['attributes'],function(_0x41414a){var _0x279652={};_0x279652[_0x41414a]={'$like':'%'+_0x4c37a4['query']['filter']+'%'};return _0x279652;})});}_0x3c4cc0=_[_0x24da('0x4d')]({},_0x3c4cc0,_0x4c37a4['options']);return _0x120fdd[_0x24da('0x82')](_0x3c4cc0);}})[_0x24da('0x35')](function(_0x2baf30){if(_0x2baf30){_0x3d4916=_0x2baf30[_0x24da('0x48')];if(!_0x4c37a4[_0x24da('0x44')][_0x24da('0x67')](_0x24da('0x6e'))){_0x3c4cc0['limit']=qs[_0x24da('0x2e')](_0x4c37a4['query'][_0x24da('0x2e')]);_0x3c4cc0['offset']=qs['offset'](_0x4c37a4[_0x24da('0x44')][_0x24da('0x2c')]);}return _0x120fdd[_0x24da('0x82')](_0x3c4cc0);}})[_0x24da('0x35')](function(_0x51f00c){if(_0x51f00c){return _0x51f00c?{'count':_0x3d4916,'rows':_0x51f00c}:null;}})[_0x24da('0x35')](respondWithResult(_0x9adbcb,null))['catch'](handleError(_0x9adbcb,null));};function Extension(_0x15fa32,_0x4011a4,_0x2dd0f3,_0x430dda){this[_0x24da('0x83')]=_0x24da('0x84');this[_0x24da('0x85')]=_0x15fa32['localstationid'];this[_0x24da('0x86')]=_0x430dda;this[_0x24da('0x4e')]='system';this[_0x24da('0x87')]=_0x24da('0x88');this[_0x24da('0x63')]=_0x15fa32['id'];this['priority']=_0x4011a4;this[_0x24da('0x89')]=_0x2dd0f3;}function createExtensionsReciveFax(_0x55e411){var _0x2e4638=0x1;var _0x1261b7=[];_0x1261b7[_0x24da('0x8a')](new Extension(_0x55e411,_0x2e4638,'','Answer'));_0x2e4638+=0x1;_0x1261b7[_0x24da('0x8a')](new Extension(_0x55e411,_0x2e4638,_0x24da('0x8b'),_0x24da('0x8c')));_0x2e4638+=0x1;for(var _0x59c214 in _0x55e411){if(_0x55e411[_0x24da('0x67')](_0x59c214)&&(_0x59c214===_0x24da('0x8d')||_0x59c214===_0x24da('0x8e')||_0x59c214===_0x24da('0x8f')||_0x59c214===_0x24da('0x90')||_0x59c214===_0x24da('0x91')||_0x59c214==='maxrate'||_0x59c214==='minrate'||_0x59c214===_0x24da('0x92')||_0x59c214==='t38timeout')){_0x1261b7[_0x24da('0x8a')](new Extension(_0x55e411,_0x2e4638,_0x24da('0x93')+_0x59c214+')='+_0x55e411[_0x59c214],_0x24da('0x8c')));_0x2e4638+=0x1;}}_0x1261b7['push'](new Extension(_0x55e411,_0x2e4638,'6','Wait'));_0x2e4638+=0x1;_0x1261b7[_0x24da('0x8a')](new Extension(_0x55e411,_0x2e4638,_0x24da('0x94'),_0x24da('0x95')));_0x2e4638=0x0;return _0x1261b7;}exports[_0x24da('0x96')]=function(_0x58c5c1,_0x17497d,_0x180fa4){var _0x26e690;return db[_0x24da('0x97')][_0x24da('0x7d')](function(_0x31116a){return db[_0x24da('0x3f')]['create'](_0x58c5c1[_0x24da('0x58')],{'transaction':_0x31116a})['then'](function(_0x736a4a){_0x26e690=_0x736a4a[_0x24da('0x37')]({'plain':!![]});return db['VoiceExtension'][_0x24da('0x7f')](createExtensionsReciveFax(_0x26e690),{'transaction':_0x31116a});});})[_0x24da('0x35')](function(){return _0x26e690;})['then'](respondWithResult(_0x17497d,null))[_0x24da('0x5e')](handleError(_0x17497d,null));};exports[_0x24da('0x98')]=function(_0x4dc684,_0x239bcc,_0x219996){var _0x449dd8;return db[_0x24da('0x97')][_0x24da('0x7d')](function(_0x89b404){return db[_0x24da('0x3f')][_0x24da('0x34')](_0x4dc684[_0x24da('0x58')],{'where':{'id':_0x4dc684[_0x24da('0x58')]['id']},'transaction':_0x89b404})[_0x24da('0x35')](function(_0x813885){return db['VoiceExtension'][_0x24da('0x36')]({'where':{'FaxAccountId':_0x4dc684[_0x24da('0x58')]['id']},'transaction':_0x89b404})[_0x24da('0x35')](function(_0x402de3){return db[_0x24da('0x99')][_0x24da('0x7f')](createExtensionsReciveFax(_[_0x24da('0x72')](_0x4dc684[_0x24da('0x58')],['tech',_0x24da('0x41'),_0x24da('0x9a'),_0x24da('0x9b'),'TrunkId',_0x24da('0x9c')])),{'transaction':_0x89b404});});});})[_0x24da('0x35')](function(){return db[_0x24da('0x3f')]['findById'](_0x4dc684['body']['id']);})[_0x24da('0x35')](respondWithResult(_0x239bcc,null))['catch'](handleError(_0x239bcc,null));};exports[_0x24da('0x9d')]=function(_0x4b6790,_0x1cf96f,_0x465cff){var _0x2eb8e5={'raw':!![],'where':{}};var _0x12f652={};var _0x3a997d={'count':0x0,'rows':[]};return db[_0x24da('0x3f')]['findOne']({'where':{'id':_0x4b6790[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x1cf96f,null))['then'](function(_0x4b3757){if(_0x4b3757){_0x12f652[_0x24da('0x42')]=_['keys'](db[_0x24da('0x9e')]['rawAttributes']);_0x12f652[_0x24da('0x44')]=_[_0x24da('0x43')](_0x4b6790[_0x24da('0x44')]);_0x12f652[_0x24da('0x45')]=_[_0x24da('0x55')](_0x12f652[_0x24da('0x42')],_0x12f652[_0x24da('0x44')]);_0x2eb8e5[_0x24da('0x46')]=_[_0x24da('0x55')](_0x12f652[_0x24da('0x42')],qs[_0x24da('0x47')](_0x4b6790[_0x24da('0x44')]['fields']));_0x2eb8e5[_0x24da('0x46')]=_0x2eb8e5[_0x24da('0x46')][_0x24da('0x48')]?_0x2eb8e5['attributes']:_0x12f652[_0x24da('0x42')];if(!_0x4b6790[_0x24da('0x44')]['hasOwnProperty'](_0x24da('0x6e'))){_0x2eb8e5['limit']=qs[_0x24da('0x2e')](_0x4b6790[_0x24da('0x44')][_0x24da('0x2e')]);_0x2eb8e5[_0x24da('0x2c')]=qs['offset'](_0x4b6790['query'][_0x24da('0x2c')]);}_0x2eb8e5[_0x24da('0x49')]=qs[_0x24da('0x4a')](_0x4b6790[_0x24da('0x44')]['sort']);_0x2eb8e5[_0x24da('0x4b')]=qs[_0x24da('0x45')](_[_0x24da('0x68')](_0x4b6790[_0x24da('0x44')],_0x12f652['filters']));_0x2eb8e5[_0x24da('0x4b')][_0x24da('0x63')]=_0x4b3757['id'];if(_0x4b6790[_0x24da('0x44')][_0x24da('0x4c')]){_0x2eb8e5[_0x24da('0x4b')]=_[_0x24da('0x4d')](_0x2eb8e5[_0x24da('0x4b')],{'$or':_[_0x24da('0x3e')](_0x2eb8e5['attributes'],function(_0x40d041){var _0x106cc4={};_0x106cc4[_0x40d041]={'$like':'%'+_0x4b6790[_0x24da('0x44')]['filter']+'%'};return _0x106cc4;})});}if(_0x4b6790[_0x24da('0x44')]['$gte']){var _0x2c2578=_0x4b6790['query'][_0x24da('0x9f')][_0x24da('0xa0')](',');var _0x4fec7e={};_0x4fec7e[_0x2c2578[0x0]]={'$gte':moment(_0x2c2578[0x1])[_0x24da('0xa1')](_0x24da('0xa2'))};_0x2eb8e5['where']=_[_0x24da('0x4d')](_0x2eb8e5['where'],_0x4fec7e);}_0x2eb8e5=_[_0x24da('0x4d')]({},_0x2eb8e5,_0x4b6790[_0x24da('0x50')]);return db[_0x24da('0x9e')][_0x24da('0x2f')]({'where':_0x2eb8e5[_0x24da('0x4b')]})[_0x24da('0x35')](function(_0x5adfa9){_0x3a997d['count']=_0x5adfa9;if(_0x4b6790[_0x24da('0x44')]['includeAll']){_0x2eb8e5[_0x24da('0x56')]=[{'all':!![]}];}return db[_0x24da('0x9e')][_0x24da('0x52')](_0x2eb8e5);})[_0x24da('0x35')](function(_0x38df7b){_0x3a997d[_0x24da('0x53')]=_0x38df7b;return _0x3a997d;});}})[_0x24da('0x35')](respondWithFilteredResult(_0x1cf96f,_0x2eb8e5))[_0x24da('0x5e')](handleError(_0x1cf96f,null));};exports[_0x24da('0xa3')]=function(_0x4f37fb,_0x383c30,_0x3b271d){var _0x1dc96a,_0x125c70={},_0x5a83ef;if(_0x4f37fb[_0x24da('0x58')]['to']){_0x5a83ef=_0x4f37fb[_0x24da('0x58')]['to'][0x0];}return db[_0x24da('0x3f')]['find']({'where':{'id':_0x4f37fb[_0x24da('0x60')]['id']},'include':[{'model':db[_0x24da('0xa4')],'as':'List','include':[{'model':db['CmContact'],'as':_0x24da('0xa5'),'where':{'fax':_0x5a83ef},'limit':0x1,'order':[[_0x24da('0x9b'),_0x24da('0xa6')]]}]}]})['then'](handleEntityNotFound(_0x383c30,null))['then'](function(_0x556b48){_0x1dc96a=_0x556b48;if(_0x4f37fb['body'][_0x24da('0xa7')]&&_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][_0x24da('0x48')]){for(var _0x27e5e0=0x0;_0x27e5e0<_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')]['length'];_0x27e5e0+=0x1){_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][_0x27e5e0]={'filename':_0x4f37fb['body'][_0x24da('0xa7')][_0x27e5e0][_0x24da('0x3b')],'id':_0x4f37fb['body']['attachments'][_0x27e5e0]['id'],'path':path[_0x24da('0xa8')](config[_0x24da('0xa9')],_0x24da('0xaa'),_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][_0x27e5e0][_0x24da('0xab')])};}}return respondWithRpcPromise(_0x24da('0xac'),_0x24da('0xac'),{'FaxAccountId':_[_0x24da('0xad')](_0x4f37fb[_0x24da('0x60')]['id'])?undefined:_0x4f37fb['params']['id'],'path':_[_0x24da('0xad')](_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0][_0x24da('0x7')])?undefined:_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0]['path'],'fax':_[_0x24da('0xad')](_0x4f37fb[_0x24da('0x58')]['to'][0x0])?undefined:_0x4f37fb[_0x24da('0x58')]['to'][0x0]},client9002);})[_0x24da('0x35')](function(){if(_0x1dc96a){if(_[_0x24da('0xad')](_0x4f37fb[_0x24da('0x58')][_0x24da('0xae')])){_0x4f37fb[_0x24da('0x58')][_0x24da('0xae')]=util[_0x24da('0xa1')]('\x22%s\x22\x20<%s>',_0x1dc96a[_0x24da('0x3b')],_0x1dc96a['fax']);}if(_0x1dc96a[_0x24da('0xaf')]){if(_0x1dc96a['List'][_0x24da('0xa5')]['length']){return _0x1dc96a['List']['Contacts'][0x0];}else{return db['CmContact']['create'](_[_0x24da('0x19')](_0x4f37fb[_0x24da('0x58')],{'firstName':_0x4f37fb[_0x24da('0x58')]['to'][0x0],'phone':_0x4f37fb['body']['to'][0x0],'fax':_0x4f37fb['body']['to'][0x0],'ListId':_0x1dc96a['ListId']}));}}else{throw new Error(_0x24da('0xb0'));}}else{throw new Error(_0x24da('0xb1'));}})[_0x24da('0x35')](function(_0x244d27){if(_0x244d27){return db['FaxInteraction'][_0x24da('0x57')]({'where':{'ContactId':_0x244d27['id'],'closed':![],'FaxAccountId':_0x1dc96a['id']}})[_0x24da('0x35')](function(_0x142f6e){if(_0x142f6e){return[_0x142f6e,![]];}return db[_0x24da('0x71')][_0x24da('0x5d')]({'UserId':_0x4f37fb[_0x24da('0xb2')]['id'],'ContactId':_0x244d27['id'],'FaxAccountId':_0x1dc96a['id'],'fax':_0x4f37fb[_0x24da('0x58')]['to'][0x0],'firstMsgDirection':_0x24da('0xb3'),'Messages':[_[_0x24da('0x4d')](_0x4f37fb[_0x24da('0x58')],{'read':![],'body':_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0]['filename'],'FaxAccountId':_0x1dc96a['id'],'UserId':_0x4f37fb[_0x24da('0xb2')]['id'],'ContactId':_0x244d27['id'],'AttachmentId':_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0]['id']})]},{'include':[{'model':db[_0x24da('0x9e')],'as':'Messages'}]})[_0x24da('0x35')](function(_0x4b5dfd){return[_0x4b5dfd,!![]];});});}else{throw new Error(_0x24da('0xb4'));}})[_0x24da('0xb5')](function(_0x45dcd0,_0x1cccd5){if(_0x1cccd5){return _0x45dcd0;}return db[_0x24da('0x9e')]['create']({'direction':'out','read':![],'body':_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0][_0x24da('0xb6')],'FaxAccountId':_0x1dc96a['id'],'FaxInteractionId':_0x45dcd0['id'],'UserId':_0x4f37fb[_0x24da('0xb2')]['id'],'ContactId':_0x45dcd0[_0x24da('0xb7')],'AttachmentId':_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0]['id']})['then'](function(_0x1d912b){_0x45dcd0[_0x24da('0xb8')][_0x24da('0xb9')]=[];_0x45dcd0[_0x24da('0xb8')]['Messages'][_0x24da('0x8a')](_0x1d912b[_0x24da('0xb8')]);return _0x45dcd0;});})[_0x24da('0x35')](function(_0x196a82){respondWithRpcPromise('SendFax',_0x24da('0xba'),{'FaxAccountId':_[_0x24da('0xad')](_0x4f37fb['params']['id'])?undefined:_0x4f37fb[_0x24da('0x60')]['id'],'path':_['isNil'](_0x4f37fb['body']['attachments'][0x0][_0x24da('0x7')])?undefined:_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0][_0x24da('0x7')],'fax':_[_0x24da('0xad')](_0x4f37fb[_0x24da('0x58')]['to'][0x0])?undefined:_0x4f37fb[_0x24da('0x58')]['to'][0x0],'AttachmentId':_0x4f37fb[_0x24da('0x58')][_0x24da('0xa7')][0x0]['id']},client9002)[_0x24da('0x35')](function(_0x3cbb98){logger['info'](_0x24da('0xbb'),_0x3cbb98);})[_0x24da('0x5e')](function(_0x4c7bb9){logger[_0x24da('0xbc')](_0x24da('0xbb'),_0x4c7bb9);});return _0x196a82;})[_0x24da('0x35')](respondWithResult(_0x383c30,null))[_0x24da('0x5e')](handleError(_0x383c30,null));};exports['addAgents']=function(_0x43a83b,_0x542928,_0x275655){return db[_0x24da('0x3f')][_0x24da('0x57')]({'where':{'id':_0x43a83b[_0x24da('0x60')]['id']}})['then'](handleEntityNotFound(_0x542928,null))[_0x24da('0x35')](function(_0x2e6ec2){if(_0x2e6ec2){return _0x2e6ec2[_0x24da('0xbd')](_0x43a83b[_0x24da('0x58')][_0x24da('0x6a')],_[_0x24da('0x72')](_0x43a83b['body'],[_0x24da('0x6a'),'id'])||{})['spread'](function(_0x571bc8){for(var _0x1afc40=0x0;_0x1afc40<_0x43a83b[_0x24da('0x58')][_0x24da('0x6a')][_0x24da('0x48')];_0x1afc40+=0x1){socket['emit'](_0x24da('0xbe'),{'UserId':Number(_0x43a83b[_0x24da('0x58')][_0x24da('0x6a')][_0x1afc40]),'FaxAccountId':Number(_0x43a83b[_0x24da('0x60')]['id'])});}return _0x571bc8;});}})[_0x24da('0x35')](respondWithResult(_0x542928,null))[_0x24da('0x5e')](handleError(_0x542928,null));};exports[_0x24da('0xbf')]=function(_0x221e9e,_0x31b7fd,_0x512bc8){return db['FaxAccount'][_0x24da('0x57')]({'where':{'id':_0x221e9e[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x31b7fd,null))[_0x24da('0x35')](function(_0x4ddd35){if(_0x4ddd35){return _0x4ddd35[_0x24da('0xbf')](_0x221e9e[_0x24da('0x44')]['ids'])['then'](function(){if(_[_0x24da('0xc0')](_0x221e9e[_0x24da('0x44')][_0x24da('0x6a')])){for(var _0x2a4230=0x0;_0x2a4230<_0x221e9e[_0x24da('0x44')][_0x24da('0x6a')][_0x24da('0x48')];_0x2a4230+=0x1){socket[_0x24da('0xc1')](_0x24da('0xc2'),{'UserId':Number(_0x221e9e[_0x24da('0x44')][_0x24da('0x6a')][_0x2a4230]),'FaxAccountId':Number(_0x221e9e['params']['id'])});}}else{socket[_0x24da('0xc1')](_0x24da('0xc2'),{'UserId':Number(_0x221e9e[_0x24da('0x44')]['ids']),'FaxAccountId':Number(_0x221e9e[_0x24da('0x60')]['id'])});}});}})[_0x24da('0x35')](respondWithStatusCode(_0x31b7fd,null))[_0x24da('0x5e')](handleError(_0x31b7fd,null));};exports[_0x24da('0xc3')]=function(_0x386f30,_0x3a9b22,_0x5be921){var _0x200c41={};var _0x4a2913={};var _0x191a41;var _0x1f9d83;return db['FaxAccount'][_0x24da('0x66')]({'where':{'id':_0x386f30[_0x24da('0x60')]['id']}})[_0x24da('0x35')](handleEntityNotFound(_0x3a9b22,null))[_0x24da('0x35')](function(_0x1624e5){if(_0x1624e5){_0x191a41=_0x1624e5;_0x4a2913['model']=_['keys'](db[_0x24da('0x76')][_0x24da('0x40')]);_0x4a2913[_0x24da('0x44')]=_[_0x24da('0x43')](_0x386f30['query']);_0x4a2913['filters']=_[_0x24da('0x55')](_0x4a2913['model'],_0x4a2913['query']);_0x200c41[_0x24da('0x46')]=_[_0x24da('0x55')](_0x4a2913[_0x24da('0x42')],qs[_0x24da('0x47')](_0x386f30['query']['fields']));_0x200c41[_0x24da('0x46')]=_0x200c41['attributes'][_0x24da('0x48')]?_0x200c41[_0x24da('0x46')]:_0x4a2913[_0x24da('0x42')];_0x200c41[_0x24da('0x49')]=qs[_0x24da('0x4a')](_0x386f30[_0x24da('0x44')][_0x24da('0x4a')]);_0x200c41[_0x24da('0x4b')]=qs[_0x24da('0x45')](_[_0x24da('0x68')](_0x386f30[_0x24da('0x44')],_0x4a2913[_0x24da('0x45')]));if(_0x386f30[_0x24da('0x44')][_0x24da('0x4c')]){_0x200c41[_0x24da('0x4b')]=_['merge'](_0x200c41['where'],{'$or':_[_0x24da('0x3e')](_0x200c41['attributes'],function(_0x56ccf1){var _0x4da012={};_0x4da012[_0x56ccf1]={'$like':'%'+_0x386f30[_0x24da('0x44')][_0x24da('0x4c')]+'%'};return _0x4da012;})});}_0x200c41=_[_0x24da('0x4d')]({},_0x200c41,_0x386f30[_0x24da('0x50')]);return _0x191a41[_0x24da('0xc3')](_0x200c41);}})[_0x24da('0x35')](function(_0x4eb3ed){if(_0x4eb3ed){_0x1f9d83=_0x4eb3ed['length'];if(!_0x386f30[_0x24da('0x44')][_0x24da('0x67')]('nolimit')){_0x200c41[_0x24da('0x2e')]=qs[_0x24da('0x2e')](_0x386f30[_0x24da('0x44')][_0x24da('0x2e')]);_0x200c41[_0x24da('0x2c')]=qs[_0x24da('0x2c')](_0x386f30[_0x24da('0x44')]['offset']);}return _0x191a41[_0x24da('0xc3')](_0x200c41);}})[_0x24da('0x35')](function(_0x1eb110){if(_0x1eb110){return _0x1eb110?{'count':_0x1f9d83,'rows':_0x1eb110}:null;}})[_0x24da('0x35')](respondWithResult(_0x3a9b22,null))[_0x24da('0x5e')](handleError(_0x3a9b22,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73e4=['exports','events','FaxAccount','setMaxListeners','save','remove','emit','hook'];(function(_0x535f7b,_0x1ea6aa){var _0x4e652b=function(_0x44cd3d){while(--_0x44cd3d){_0x535f7b['push'](_0x535f7b['shift']());}};_0x4e652b(++_0x1ea6aa);}(_0x73e4,0x149));var _0x473e=function(_0x1cd674,_0x8d3638){_0x1cd674=_0x1cd674-0x0;var _0x27928f=_0x73e4[_0x1cd674];return _0x27928f;};'use strict';var EventEmitter=require(_0x473e('0x0'));var FaxAccount=require('../../mysqldb')['db'][_0x473e('0x1')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x473e('0x2')](0x0);var events={'afterCreate':_0x473e('0x3'),'afterUpdate':'update','afterDestroy':_0x473e('0x4')};function emitEvent(_0x1a38bc){return function(_0x1a9a78,_0x50fcfb,_0x243cce){FaxAccountEvents[_0x473e('0x5')](_0x1a38bc+':'+_0x1a9a78['id'],_0x1a9a78);FaxAccountEvents[_0x473e('0x5')](_0x1a38bc,_0x1a9a78);_0x243cce(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxAccount[_0x473e('0x6')](e,emitEvent(event));}}module[_0x473e('0x7')]=FaxAccountEvents;
\ No newline at end of file
+var _0xa4e3=['events','FaxAccount','save','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x2db12b,_0x30ab1d){var _0x20990b=function(_0x589477){while(--_0x589477){_0x2db12b['push'](_0x2db12b['shift']());}};_0x20990b(++_0x30ab1d);}(_0xa4e3,0x129));var _0x3a4e=function(_0x31288a,_0x4466a1){_0x31288a=_0x31288a-0x0;var _0x22317b=_0xa4e3[_0x31288a];return _0x22317b;};'use strict';var EventEmitter=require(_0x3a4e('0x0'));var FaxAccount=require('../../mysqldb')['db'][_0x3a4e('0x1')];var FaxAccountEvents=new EventEmitter();FaxAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3a4e('0x2'),'afterUpdate':_0x3a4e('0x3'),'afterDestroy':_0x3a4e('0x4')};function emitEvent(_0x301311){return function(_0x223215,_0x41591b,_0x15db7d){FaxAccountEvents[_0x3a4e('0x5')](_0x301311+':'+_0x223215['id'],_0x223215);FaxAccountEvents[_0x3a4e('0x5')](_0x301311,_0x223215);_0x15db7d(null);};}for(var e in events){if(events[_0x3a4e('0x6')](e)){var event=events[e];FaxAccount[_0x3a4e('0x7')](e,emitEvent(event));}}module[_0x3a4e('0x8')]=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe223=['request-promise','path','rimraf','../../config/environment','./faxAccount.attributes','exports','FaxAccount','fax_accounts','util','../../config/logger','api','moment','bluebird'];(function(_0x401b81,_0x178810){var _0x508a0e=function(_0x5d3465){while(--_0x5d3465){_0x401b81['push'](_0x401b81['shift']());}};_0x508a0e(++_0x178810);}(_0xe223,0x1cf));var _0x3e22=function(_0x509da2,_0xd2f81a){_0x509da2=_0x509da2-0x0;var _0x277535=_0xe223[_0x509da2];return _0x277535;};'use strict';var _=require('lodash');var util=require(_0x3e22('0x0'));var logger=require(_0x3e22('0x1'))(_0x3e22('0x2'));var moment=require(_0x3e22('0x3'));var BPromise=require(_0x3e22('0x4'));var rp=require(_0x3e22('0x5'));var fs=require('fs');var path=require(_0x3e22('0x6'));var rimraf=require(_0x3e22('0x7'));var config=require(_0x3e22('0x8'));var attributes=require(_0x3e22('0x9'));module[_0x3e22('0xa')]=function(_0x107ca5,_0x58312d){return _0x107ca5['define'](_0x3e22('0xb'),attributes,{'tableName':_0x3e22('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x391a=['rimraf','../../config/environment','exports','define','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x255ac2,_0x13254c){var _0x5ef31b=function(_0x43e109){while(--_0x43e109){_0x255ac2['push'](_0x255ac2['shift']());}};_0x5ef31b(++_0x13254c);}(_0x391a,0x70));var _0xa391=function(_0xced93e,_0x2ae3c2){_0xced93e=_0xced93e-0x0;var _0x116b36=_0x391a[_0xced93e];return _0x116b36;};'use strict';var _=require(_0xa391('0x0'));var util=require(_0xa391('0x1'));var logger=require(_0xa391('0x2'))(_0xa391('0x3'));var moment=require(_0xa391('0x4'));var BPromise=require(_0xa391('0x5'));var rp=require(_0xa391('0x6'));var fs=require('fs');var path=require(_0xa391('0x7'));var rimraf=require(_0xa391('0x8'));var config=require(_0xa391('0x9'));var attributes=require('./faxAccount.attributes');module[_0xa391('0xa')]=function(_0x58a713,_0x4ab7a){return _0x58a713[_0xa391('0xb')]('FaxAccount',attributes,{'tableName':'fax_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf26=['NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','keys','CompanyId','isNil','from','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','find','CmList','List','Contacts','FaxApplication','Applications','get','account','list','applications','orderBy','priority','asc','ListId','create','contact','FaxInteraction','Contact\x20not\x20found','spread','close','unmanaged','*,*,*,*','created','interaction','ContactId','AttachmentId','UserId','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','http','redis','defaults','socket.io-emitter','./faxAccount.socket','register','request','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','GetFaxAccount','FaxAccount','options','raw','where','attributes','limit','include','map','model'];(function(_0x1a61b0,_0x18b1bd){var _0x321a19=function(_0xca1923){while(--_0xca1923){_0x1a61b0['push'](_0x1a61b0['shift']());}};_0x321a19(++_0x18b1bd);}(_0xdf26,0x13c));var _0x6df2=function(_0x176259,_0x30e46f){_0x176259=_0x176259-0x0;var _0x48dc40=_0xdf26[_0x176259];return _0x48dc40;};'use strict';var _=require('lodash');var util=require(_0x6df2('0x0'));var moment=require('moment');var BPromise=require(_0x6df2('0x1'));var rs=require(_0x6df2('0x2'));var fs=require('fs');var Redis=require(_0x6df2('0x3'));var db=require(_0x6df2('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x6df2('0x5'))(_0x6df2('0x6'));var config=require(_0x6df2('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x6df2('0x8')]({'port':0x232c});config[_0x6df2('0x9')]=_[_0x6df2('0xa')](config[_0x6df2('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x6df2('0xb'))(new Redis(config[_0x6df2('0x9')]));require(_0x6df2('0xc'))[_0x6df2('0xd')](socket);function respondWithRpcPromise(_0x536bc1,_0x2adb4a,_0x4e5968){return new BPromise(function(_0x1c8dbe,_0x2729d8){return client[_0x6df2('0xe')](_0x536bc1,_0x4e5968)[_0x6df2('0xf')](function(_0x48fec6){logger['info'](_0x6df2('0x10'),_0x2adb4a,_0x6df2('0x11'));logger[_0x6df2('0x12')](_0x6df2('0x13'),_0x2adb4a,'request\x20sent',JSON[_0x6df2('0x14')](_0x48fec6));if(_0x48fec6[_0x6df2('0x15')]){if(_0x48fec6[_0x6df2('0x15')]['code']===0x1f4){logger[_0x6df2('0x15')]('FaxAccount,\x20%s,\x20%s',_0x2adb4a,_0x48fec6[_0x6df2('0x15')][_0x6df2('0x16')]);return _0x2729d8(_0x48fec6['error'][_0x6df2('0x16')]);}logger['error'](_0x6df2('0x10'),_0x2adb4a,_0x48fec6[_0x6df2('0x15')][_0x6df2('0x16')]);return _0x1c8dbe(_0x48fec6[_0x6df2('0x15')][_0x6df2('0x16')]);}else{logger[_0x6df2('0x17')](_0x6df2('0x10'),_0x2adb4a,_0x6df2('0x11'));_0x1c8dbe(_0x48fec6[_0x6df2('0x18')][_0x6df2('0x16')]);}})[_0x6df2('0x19')](function(_0x14739c){logger[_0x6df2('0x15')](_0x6df2('0x10'),_0x2adb4a,_0x14739c);_0x2729d8(_0x14739c);});});}exports[_0x6df2('0x1a')]=function(_0x1ea39e){var _0x475bdf=this;return new Promise(function(_0x32c546,_0x221220){return db[_0x6df2('0x1b')]['findAll']({'raw':_0x1ea39e[_0x6df2('0x1c')]?_0x1ea39e[_0x6df2('0x1c')][_0x6df2('0x1d')]===undefined?!![]:![]:!![],'where':_0x1ea39e[_0x6df2('0x1c')]?_0x1ea39e[_0x6df2('0x1c')][_0x6df2('0x1e')]||null:null,'attributes':_0x1ea39e['options']?_0x1ea39e[_0x6df2('0x1c')][_0x6df2('0x1f')]||null:null,'limit':_0x1ea39e[_0x6df2('0x1c')]?_0x1ea39e[_0x6df2('0x1c')][_0x6df2('0x20')]||null:null,'include':_0x1ea39e[_0x6df2('0x1c')]?_0x1ea39e[_0x6df2('0x1c')][_0x6df2('0x21')]?_[_0x6df2('0x22')](_0x1ea39e[_0x6df2('0x1c')]['include'],function(_0x2da9ce){return{'model':db[_0x2da9ce[_0x6df2('0x23')]],'as':_0x2da9ce['as'],'attributes':_0x2da9ce[_0x6df2('0x1f')],'include':_0x2da9ce[_0x6df2('0x21')]?_[_0x6df2('0x22')](_0x2da9ce['include'],function(_0x226813){return{'model':db[_0x226813[_0x6df2('0x23')]],'as':_0x226813['as'],'attributes':_0x226813[_0x6df2('0x1f')],'include':_0x226813[_0x6df2('0x21')]?_[_0x6df2('0x22')](_0x226813[_0x6df2('0x21')],function(_0x346a17){return{'model':db[_0x346a17[_0x6df2('0x23')]],'as':_0x346a17['as'],'attributes':_0x346a17[_0x6df2('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x6df2('0xf')](function(_0x398822){logger[_0x6df2('0x17')](_0x6df2('0x1a'),_0x1ea39e);logger[_0x6df2('0x12')](_0x6df2('0x1a'),_0x1ea39e,JSON[_0x6df2('0x14')](_0x398822));_0x32c546(_0x398822);})['catch'](function(_0x417244){logger[_0x6df2('0x15')](_0x6df2('0x1a'),_0x417244[_0x6df2('0x16')],_0x1ea39e);_0x221220(_0x475bdf[_0x6df2('0x15')](0x1f4,_0x417244[_0x6df2('0x16')]));});});};exports[_0x6df2('0x24')]=function(_0x4c63a6,_0x38ebb6,_0x40de7e){var _0x2392e6=this;return new Promise(function(_0x791577,_0x30aa7d){var _0x1fbf80={'body':_0x4c63a6[_0x6df2('0x25')],'channel':_0x6df2('0x26')};var _0x515ad2=[];var _0x2207b1=[];var _0x5db978={};return db[_0x6df2('0x27')][_0x6df2('0x28')]()[_0x6df2('0xf')](function(_0x255d92){if(!_0x255d92){throw new db[(_0x6df2('0x29'))]['ValidationError'](_0x6df2('0x2a'));}_0x515ad2=_[_0x6df2('0x2b')](_['keys'](_0x255d92),[_0x6df2('0x2c'),_0x6df2('0x2d')]);_0x2207b1=_[_0x6df2('0x2b')](_[_0x6df2('0x2e')](_0x255d92),['createdAt',_0x6df2('0x2d'),_0x6df2('0x2f'),'ListId']);if(_0x4c63a6[_0x6df2('0x25')]['id']){delete _0x4c63a6[_0x6df2('0x25')]['id'];}if(_[_0x6df2('0x30')](_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x31')])){throw new db['Sequelize'][(_0x6df2('0x32'))](_0x6df2('0x33'));}if(_[_0x6df2('0x30')](_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x25')])||_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x25')]===''){throw new db[(_0x6df2('0x29'))][(_0x6df2('0x32'))](_0x6df2('0x34'));}if(_['isNil'](_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x35')])){throw new db['Sequelize']['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2207b1);}if(!_[_0x6df2('0x36')](_0x2207b1,_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x35')])){throw new db[(_0x6df2('0x29'))][(_0x6df2('0x32'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2207b1);}_0x5db978[_0x4c63a6[_0x6df2('0x25')]['mapKey']]=_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x31')];})[_0x6df2('0xf')](function(){return db['FaxAccount'][_0x6df2('0x37')]({'where':{'id':_0x4c63a6['account']['id']},'include':[{'model':db[_0x6df2('0x38')],'as':_0x6df2('0x39'),'include':[{'model':db['CmContact'],'as':_0x6df2('0x3a'),'where':_0x5db978,'limit':0x1,'order':[[_0x6df2('0x2d'),'DESC']]}]},{'model':db[_0x6df2('0x3b')],'as':_0x6df2('0x3c')}]});})[_0x6df2('0xf')](function(_0x113005){if(_0x113005&&_0x113005[_0x6df2('0x39')]){var _0xf5bfaf=_0x113005[_0x6df2('0x3d')]({'plain':!![]});_0x1fbf80[_0x6df2('0x3e')]=_0xf5bfaf;_0x1fbf80['applications']=_0xf5bfaf[_0x6df2('0x3c')];_0x1fbf80[_0x6df2('0x3f')]=_0xf5bfaf[_0x6df2('0x39')];_0x1fbf80[_0x6df2('0x40')]=_[_0x6df2('0x41')](_0x1fbf80[_0x6df2('0x40')],[_0x6df2('0x42')],[_0x6df2('0x43')]);if(_0x1fbf80[_0x6df2('0x3e')][_0x6df2('0x3c')]){delete _0x1fbf80[_0x6df2('0x3e')][_0x6df2('0x3c')];}if(_0x1fbf80[_0x6df2('0x3e')][_0x6df2('0x39')]&&_0x1fbf80[_0x6df2('0x3e')][_0x6df2('0x39')][_0x6df2('0x3a')]['length']){return _0x1fbf80[_0x6df2('0x3e')][_0x6df2('0x39')][_0x6df2('0x3a')][0x0];}var _0x536f8e=_[_0x6df2('0xa')](_0x4c63a6[_0x6df2('0x25')],{'firstName':_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x31')],'ListId':_0xf5bfaf[_0x6df2('0x44')]});_0x536f8e[_0x4c63a6[_0x6df2('0x25')]['mapKey']]=_0x4c63a6[_0x6df2('0x25')]['from'];return db['CmContact'][_0x6df2('0x45')](_0x536f8e,{'fields':_0x515ad2,'raw':!![]});}})[_0x6df2('0xf')](function(_0x466bf2){_0x1fbf80[_0x6df2('0x46')]=_0x466bf2;if(_0x466bf2){var _0x2b7c6c={'ContactId':_0x466bf2['id'],'FaxAccountId':_0x4c63a6[_0x6df2('0x3e')]['id'],'fax':_0x466bf2[_0x6df2('0x26')]};return db[_0x6df2('0x47')][_0x6df2('0x37')]({'where':{'ContactId':_0x466bf2['id'],'closed':![],'FaxAccountId':_0x4c63a6['account']['id']}})[_0x6df2('0xf')](function(_0x55cf64){if(_0x55cf64){return[_0x55cf64,![]];}return db[_0x6df2('0x47')]['create'](_0x2b7c6c)[_0x6df2('0xf')](function(_0x23b98a){return[_0x23b98a,!![]];});});}else{throw new Error(_0x6df2('0x48'));}})[_0x6df2('0x49')](function(_0xf73574,_0xd8116){var _0x550177=_0xf73574[_0x6df2('0x3d')]({'plain':!![]});if(_0xd8116){if(_0x1fbf80[_0x6df2('0x3e')]['autoclose']){_0x1fbf80[_0x6df2('0x40')]['push']({'id':0x0,'priority':_0x1fbf80['applications']['length']+0x1,'app':_0x6df2('0x4a'),'appdata':_0x6df2('0x4b'),'interval':_0x6df2('0x4c')});}_0x550177[_0x6df2('0x4d')]=!![];}else{_0x550177[_0x6df2('0x4d')]=![];}_0x1fbf80[_0x6df2('0x4e')]=_0x550177;return db['FaxMessage'][_0x6df2('0x45')]({'body':_0x4c63a6['body'][_0x6df2('0x25')],'FaxAccountId':_0x4c63a6['account']['id'],'FaxInteractionId':_0xf73574['id'],'direction':'in','ContactId':_0xf73574[_0x6df2('0x4f')],'AttachmentId':_0x4c63a6[_0x6df2('0x25')][_0x6df2('0x50')]});})[_0x6df2('0xf')](function(_0x5492f6){_0x1fbf80[_0x6df2('0x16')]=_0x5492f6;if(_0x1fbf80[_0x6df2('0x4e')][_0x6df2('0x51')]){return db['User'][_0x6df2('0x37')]({'attributes':['id',_0x6df2('0x52')],'where':{'id':_0x1fbf80[_0x6df2('0x4e')][_0x6df2('0x51')]}})['then'](function(_0x4a6f85){if(_0x4a6f85){_0x1fbf80[_0x6df2('0x40')][_0x6df2('0x53')]({'id':0x0,'priority':0x0,'app':_0x6df2('0x54'),'appdata':_0x4a6f85[_0x6df2('0x52')]+','+(_0x1fbf80[_0x6df2('0x3e')][_0x6df2('0x55')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x6df2('0x56'),_0x6df2('0x57'),_0x1fbf80);});}return respondWithRpcPromise(_0x6df2('0x56'),'startRouting',_0x1fbf80);})[_0x6df2('0xf')](function(_0x4388f0){_0x791577(_0x4388f0);})[_0x6df2('0x19')](function(_0x2fe7f3){_0x30aa7d(_0x2392e6[_0x6df2('0x15')](0x1f4,_0x2fe7f3[_0x6df2('0x16')]));});});};
\ No newline at end of file
+var _0x927c=['redis','localhost','socket.io-emitter','./faxAccount.socket','register','info','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','limit','include','model','map','then','NotifyFaxAccount','body','fax','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','Contacts','DESC','FaxApplication','Applications','List','get','list','applications','orderBy','priority','create','contact','FaxInteraction','autoclose','push','length','close','unmanaged','*,*,*,*','created','ContactId','AttachmentId','UserId','name','interaction','unshift','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','defaults'];(function(_0x26a341,_0x1fafa1){var _0x26d84d=function(_0xc3eac8){while(--_0xc3eac8){_0x26a341['push'](_0x26a341['shift']());}};_0x26d84d(++_0x1fafa1);}(_0x927c,0xa7));var _0xc927=function(_0x10f4b9,_0x5d39ca){_0x10f4b9=_0x10f4b9-0x0;var _0x1dbd09=_0x927c[_0x10f4b9];return _0x1dbd09;};'use strict';var _=require(_0xc927('0x0'));var util=require(_0xc927('0x1'));var moment=require(_0xc927('0x2'));var BPromise=require(_0xc927('0x3'));var rs=require(_0xc927('0x4'));var fs=require('fs');var Redis=require(_0xc927('0x5'));var db=require(_0xc927('0x6'))['db'];var utils=require(_0xc927('0x7'));var logger=require(_0xc927('0x8'))(_0xc927('0x9'));var config=require('../../config/environment');var jayson=require(_0xc927('0xa'));var client=jayson['client'][_0xc927('0xb')]({'port':0x232c});config['redis']=_[_0xc927('0xc')](config[_0xc927('0xd')],{'host':_0xc927('0xe'),'port':0x18eb});var socket=require(_0xc927('0xf'))(new Redis(config['redis']));require(_0xc927('0x10'))[_0xc927('0x11')](socket);function respondWithRpcPromise(_0x4476f4,_0x596a4c,_0x5eef62){return new BPromise(function(_0x4daf8a,_0x4386fa){return client['request'](_0x4476f4,_0x5eef62)['then'](function(_0xda6d0f){logger[_0xc927('0x12')](_0xc927('0x13'),_0x596a4c,'request\x20sent');logger[_0xc927('0x14')](_0xc927('0x15'),_0x596a4c,_0xc927('0x16'),JSON[_0xc927('0x17')](_0xda6d0f));if(_0xda6d0f[_0xc927('0x18')]){if(_0xda6d0f[_0xc927('0x18')][_0xc927('0x19')]===0x1f4){logger['error'](_0xc927('0x13'),_0x596a4c,_0xda6d0f[_0xc927('0x18')]['message']);return _0x4386fa(_0xda6d0f['error'][_0xc927('0x1a')]);}logger['error']('FaxAccount,\x20%s,\x20%s',_0x596a4c,_0xda6d0f[_0xc927('0x18')][_0xc927('0x1a')]);return _0x4daf8a(_0xda6d0f[_0xc927('0x18')]['message']);}else{logger[_0xc927('0x12')](_0xc927('0x13'),_0x596a4c,_0xc927('0x16'));_0x4daf8a(_0xda6d0f[_0xc927('0x1b')]['message']);}})[_0xc927('0x1c')](function(_0x428453){logger[_0xc927('0x18')]('FaxAccount,\x20%s,\x20%s',_0x596a4c,_0x428453);_0x4386fa(_0x428453);});});}exports[_0xc927('0x1d')]=function(_0x1186f2){var _0x23aac1=this;return new Promise(function(_0x35e6c0,_0x1f542c){return db[_0xc927('0x1e')][_0xc927('0x1f')]({'raw':_0x1186f2[_0xc927('0x20')]?_0x1186f2['options'][_0xc927('0x21')]===undefined?!![]:![]:!![],'where':_0x1186f2[_0xc927('0x20')]?_0x1186f2[_0xc927('0x20')][_0xc927('0x22')]||null:null,'attributes':_0x1186f2[_0xc927('0x20')]?_0x1186f2[_0xc927('0x20')][_0xc927('0x23')]||null:null,'limit':_0x1186f2['options']?_0x1186f2[_0xc927('0x20')][_0xc927('0x24')]||null:null,'include':_0x1186f2[_0xc927('0x20')]?_0x1186f2[_0xc927('0x20')][_0xc927('0x25')]?_['map'](_0x1186f2[_0xc927('0x20')][_0xc927('0x25')],function(_0x565eb0){return{'model':db[_0x565eb0[_0xc927('0x26')]],'as':_0x565eb0['as'],'attributes':_0x565eb0['attributes'],'include':_0x565eb0[_0xc927('0x25')]?_['map'](_0x565eb0[_0xc927('0x25')],function(_0x1693e8){return{'model':db[_0x1693e8[_0xc927('0x26')]],'as':_0x1693e8['as'],'attributes':_0x1693e8[_0xc927('0x23')],'include':_0x1693e8['include']?_[_0xc927('0x27')](_0x1693e8[_0xc927('0x25')],function(_0x1daad2){return{'model':db[_0x1daad2[_0xc927('0x26')]],'as':_0x1daad2['as'],'attributes':_0x1daad2['attributes']};}):[]};}):[]};}):[]:[]})[_0xc927('0x28')](function(_0x383395){logger[_0xc927('0x12')](_0xc927('0x1d'),_0x1186f2);logger[_0xc927('0x14')]('GetFaxAccount',_0x1186f2,JSON[_0xc927('0x17')](_0x383395));_0x35e6c0(_0x383395);})[_0xc927('0x1c')](function(_0x5da6cf){logger[_0xc927('0x18')](_0xc927('0x1d'),_0x5da6cf[_0xc927('0x1a')],_0x1186f2);_0x1f542c(_0x23aac1['error'](0x1f4,_0x5da6cf[_0xc927('0x1a')]));});});};exports[_0xc927('0x29')]=function(_0x59c0a7,_0xe53699,_0x2b9444){var _0x104a41=this;return new Promise(function(_0x3c98e3,_0x5881b4){var _0x348379={'body':_0x59c0a7[_0xc927('0x2a')],'channel':_0xc927('0x2b')};var _0x357a26=[];var _0x3186ea=[];var _0x377453={};return db[_0xc927('0x2c')]['describe']()['then'](function(_0x34c098){if(!_0x34c098){throw new db[(_0xc927('0x2d'))][(_0xc927('0x2e'))](_0xc927('0x2f'));}_0x357a26=_[_0xc927('0x30')](_['keys'](_0x34c098),[_0xc927('0x31'),_0xc927('0x32')]);_0x3186ea=_[_0xc927('0x30')](_['keys'](_0x34c098),[_0xc927('0x31'),'updatedAt',_0xc927('0x33'),_0xc927('0x34')]);if(_0x59c0a7[_0xc927('0x2a')]['id']){delete _0x59c0a7[_0xc927('0x2a')]['id'];}if(_[_0xc927('0x35')](_0x59c0a7[_0xc927('0x2a')][_0xc927('0x36')])){throw new db['Sequelize']['ValidationError'](_0xc927('0x37'));}if(_[_0xc927('0x35')](_0x59c0a7['body'][_0xc927('0x2a')])||_0x59c0a7[_0xc927('0x2a')][_0xc927('0x2a')]===''){throw new db[(_0xc927('0x2d'))]['ValidationError'](_0xc927('0x38'));}if(_[_0xc927('0x35')](_0x59c0a7['body'][_0xc927('0x39')])){throw new db['Sequelize'][(_0xc927('0x2e'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3186ea);}if(!_[_0xc927('0x3a')](_0x3186ea,_0x59c0a7['body'][_0xc927('0x39')])){throw new db[(_0xc927('0x2d'))][(_0xc927('0x2e'))](_0xc927('0x3b')+_0x3186ea);}_0x377453[_0x59c0a7[_0xc927('0x2a')][_0xc927('0x39')]]=_0x59c0a7['body'][_0xc927('0x36')];})[_0xc927('0x28')](function(){return db[_0xc927('0x1e')][_0xc927('0x3c')]({'where':{'id':_0x59c0a7[_0xc927('0x3d')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0xc927('0x2c')],'as':_0xc927('0x3e'),'where':_0x377453,'limit':0x1,'order':[['updatedAt',_0xc927('0x3f')]]}]},{'model':db[_0xc927('0x40')],'as':_0xc927('0x41')}]});})['then'](function(_0x5ce6c8){if(_0x5ce6c8&&_0x5ce6c8[_0xc927('0x42')]){var _0x3c0d52=_0x5ce6c8[_0xc927('0x43')]({'plain':!![]});_0x348379['account']=_0x3c0d52;_0x348379['applications']=_0x3c0d52[_0xc927('0x41')];_0x348379[_0xc927('0x44')]=_0x3c0d52[_0xc927('0x42')];_0x348379[_0xc927('0x45')]=_[_0xc927('0x46')](_0x348379[_0xc927('0x45')],[_0xc927('0x47')],['asc']);if(_0x348379[_0xc927('0x3d')][_0xc927('0x41')]){delete _0x348379[_0xc927('0x3d')][_0xc927('0x41')];}if(_0x348379['account'][_0xc927('0x42')]&&_0x348379[_0xc927('0x3d')]['List']['Contacts']['length']){return _0x348379[_0xc927('0x3d')][_0xc927('0x42')]['Contacts'][0x0];}var _0x501391=_['defaults'](_0x59c0a7[_0xc927('0x2a')],{'firstName':_0x59c0a7[_0xc927('0x2a')][_0xc927('0x36')],'ListId':_0x3c0d52['ListId']});_0x501391[_0x59c0a7[_0xc927('0x2a')]['mapKey']]=_0x59c0a7[_0xc927('0x2a')][_0xc927('0x36')];return db[_0xc927('0x2c')][_0xc927('0x48')](_0x501391,{'fields':_0x357a26,'raw':!![]});}})['then'](function(_0x4c5493){_0x348379[_0xc927('0x49')]=_0x4c5493;if(_0x4c5493){var _0x5e092d={'ContactId':_0x4c5493['id'],'FaxAccountId':_0x59c0a7[_0xc927('0x3d')]['id'],'fax':_0x4c5493[_0xc927('0x2b')]};return db['FaxInteraction'][_0xc927('0x3c')]({'where':{'ContactId':_0x4c5493['id'],'closed':![],'FaxAccountId':_0x59c0a7[_0xc927('0x3d')]['id']}})['then'](function(_0x5c0168){if(_0x5c0168){return[_0x5c0168,![]];}return db[_0xc927('0x4a')][_0xc927('0x48')](_0x5e092d)[_0xc927('0x28')](function(_0x2622c5){return[_0x2622c5,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x2398e2,_0x5e7989){var _0x1af2e8=_0x2398e2[_0xc927('0x43')]({'plain':!![]});if(_0x5e7989){if(_0x348379[_0xc927('0x3d')][_0xc927('0x4b')]){_0x348379[_0xc927('0x45')][_0xc927('0x4c')]({'id':0x0,'priority':_0x348379['applications'][_0xc927('0x4d')]+0x1,'app':_0xc927('0x4e'),'appdata':_0xc927('0x4f'),'interval':_0xc927('0x50')});}_0x1af2e8['created']=!![];}else{_0x1af2e8[_0xc927('0x51')]=![];}_0x348379['interaction']=_0x1af2e8;return db['FaxMessage'][_0xc927('0x48')]({'body':_0x59c0a7[_0xc927('0x2a')][_0xc927('0x2a')],'FaxAccountId':_0x59c0a7[_0xc927('0x3d')]['id'],'FaxInteractionId':_0x2398e2['id'],'direction':'in','ContactId':_0x2398e2[_0xc927('0x52')],'AttachmentId':_0x59c0a7['body'][_0xc927('0x53')]});})['then'](function(_0x272979){_0x348379[_0xc927('0x1a')]=_0x272979;if(_0x348379['interaction'][_0xc927('0x54')]){return db['User'][_0xc927('0x3c')]({'attributes':['id',_0xc927('0x55')],'where':{'id':_0x348379[_0xc927('0x56')][_0xc927('0x54')]}})[_0xc927('0x28')](function(_0x49576f){if(_0x49576f){_0x348379[_0xc927('0x45')][_0xc927('0x57')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x49576f[_0xc927('0x55')]+','+(_0x348379[_0xc927('0x3d')]['waitForTheAssignedAgent']||0xa),'interval':_0xc927('0x50')});}return respondWithRpcPromise(_0xc927('0x58'),'startRouting',_0x348379);});}return respondWithRpcPromise(_0xc927('0x58'),_0xc927('0x59'),_0x348379);})['then'](function(_0x3aaccc){_0x3c98e3(_0x3aaccc);})[_0xc927('0x1c')](function(_0x3a417c){_0x5881b4(_0x104a41[_0xc927('0x18')](0x1f4,_0x3a417c['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa8e=['update','emit','removeListener','length','save'];(function(_0x35a513,_0x422a3a){var _0x1a3596=function(_0x6b6987){while(--_0x6b6987){_0x35a513['push'](_0x35a513['shift']());}};_0x1a3596(++_0x422a3a);}(_0xaa8e,0xf4));var _0xeaa8=function(_0x5294c8,_0x188387){_0x5294c8=_0x5294c8-0x0;var _0x267caa=_0xaa8e[_0x5294c8];return _0x267caa;};'use strict';var FaxAccountEvents=require('./faxAccount.events');var events=[_0xeaa8('0x0'),'remove',_0xeaa8('0x1')];function createListener(_0x3b55ee,_0x1ee92c){return function(_0xfddca2){_0x1ee92c[_0xeaa8('0x2')](_0x3b55ee,_0xfddca2);};}function removeListener(_0x51c70d,_0x963d5e){return function(){FaxAccountEvents[_0xeaa8('0x3')](_0x51c70d,_0x963d5e);};}exports['register']=function(_0x580422){for(var _0x58bbeb=0x0,_0x111c27=events[_0xeaa8('0x4')];_0x58bbeb<_0x111c27;_0x58bbeb++){var _0xd7cded=events[_0x58bbeb];var _0x47472a=createListener('faxAccount:'+_0xd7cded,_0x580422);FaxAccountEvents['on'](_0xd7cded,_0x47472a);}};
\ No newline at end of file
+var _0x5480=['faxAccount:','save','remove','emit','register','length'];(function(_0x596684,_0x3e7a0a){var _0x21d272=function(_0x1223f2){while(--_0x1223f2){_0x596684['push'](_0x596684['shift']());}};_0x21d272(++_0x3e7a0a);}(_0x5480,0x13f));var _0x0548=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0x5480[_0x3635ce];return _0x97ecd0;};'use strict';var FaxAccountEvents=require('./faxAccount.events');var events=[_0x0548('0x0'),_0x0548('0x1'),'update'];function createListener(_0x6c329,_0xf6d998){return function(_0x43afdf){_0xf6d998[_0x0548('0x2')](_0x6c329,_0x43afdf);};}function removeListener(_0x2b52d1,_0xf322d3){return function(){FaxAccountEvents['removeListener'](_0x2b52d1,_0xf322d3);};}exports[_0x0548('0x3')]=function(_0x11ea1e){for(var _0xa982fb=0x0,_0x2287b6=events[_0x0548('0x4')];_0xa982fb<_0x2287b6;_0xa982fb++){var _0x519c08=events[_0xa982fb];var _0x4aa863=createListener(_0x0548('0x5')+_0x519c08,_0x11ea1e);FaxAccountEvents['on'](_0x519c08,_0x4aa863);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x437aed,_0x2faa84){var _0x26575b=function(_0x1af1a1){while(--_0x1af1a1){_0x437aed['push'](_0x437aed['shift']());}};_0x26575b(++_0x2faa84);}(_0xa9e0,0x123));var _0x0a9e=function(_0x220dbb,_0x99328d){_0x220dbb=_0x220dbb-0x0;var _0x2b77de=_0xa9e0[_0x220dbb];return _0x2b77de;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x31e66f,_0xe96570){var _0x1a57b2=function(_0x4528b4){while(--_0x4528b4){_0x31e66f['push'](_0x31e66f['shift']());}};_0x1a57b2(++_0xe96570);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0xa9e0[_0x3e112d];return _0x531c31;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebf1=['sequelize','INTEGER','STRING','noop','TEXT'];(function(_0xfdaeae,_0x5ceddb){var _0x418607=function(_0x583ed4){while(--_0x583ed4){_0xfdaeae['push'](_0xfdaeae['shift']());}};_0x418607(++_0x5ceddb);}(_0xebf1,0x15e));var _0x1ebf=function(_0x2d126e,_0x1e8257){_0x2d126e=_0x2d126e-0x0;var _0xcb04d3=_0xebf1[_0x2d126e];return _0xcb04d3;};'use strict';var Sequelize=require(_0x1ebf('0x0'));module['exports']={'priority':{'type':Sequelize[_0x1ebf('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x1ebf('0x2')],'allowNull':![],'defaultValue':_0x1ebf('0x3')},'appdata':{'type':Sequelize[_0x1ebf('0x4')]()},'description':{'type':Sequelize[_0x1ebf('0x2')]},'interval':{'type':Sequelize[_0x1ebf('0x2')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0x3cf5=['*,*,*,*','STRING','TEXT'];(function(_0x248f88,_0x2f30b0){var _0x5bf559=function(_0x40a2e8){while(--_0x40a2e8){_0x248f88['push'](_0x248f88['shift']());}};_0x5bf559(++_0x2f30b0);}(_0x3cf5,0x97));var _0x53cf=function(_0x59aeb3,_0x32f513){_0x59aeb3=_0x59aeb3-0x0;var _0x3c6521=_0x3cf5[_0x59aeb3];return _0x3c6521;};'use strict';var Sequelize=require('sequelize');module['exports']={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0x53cf('0x0')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x53cf('0x1')]()},'description':{'type':Sequelize[_0x53cf('0x0')]},'interval':{'type':Sequelize['STRING'],'defaultValue':_0x53cf('0x2')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2419=['keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','length','options','create','body','catch','find','rimraf','fast-json-patch','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','apply','reject','update','then','destroy','sendStatus','name','send','index','map','FaxApplication','rawAttributes','fieldName','type','key','query'];(function(_0xc753c8,_0x5627ff){var _0xd02f5c=function(_0xfb552e){while(--_0xfb552e){_0xc753c8['push'](_0xc753c8['shift']());}};_0xd02f5c(++_0x5627ff);}(_0x2419,0x188));var _0x9241=function(_0x442c96,_0x4211b2){_0x442c96=_0x442c96-0x0;var _0x4fadd6=_0x2419[_0x442c96];return _0x4fadd6;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9241('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9241('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x9241('0x2'));var util=require(_0x9241('0x3'));var path=require(_0x9241('0x4'));var sox=require(_0x9241('0x5'));var csv=require(_0x9241('0x6'));var ejs=require(_0x9241('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9241('0x8'));var crypto=require(_0x9241('0x9'));var jsforce=require(_0x9241('0xa'));var deskjs=require(_0x9241('0xb'));var toCsv=require(_0x9241('0x6'));var querystring=require(_0x9241('0xc'));var Papa=require(_0x9241('0xd'));var Redis=require('ioredis');var authService=require(_0x9241('0xe'));var qs=require(_0x9241('0xf'));var as=require(_0x9241('0x10'));var hardwareService=require(_0x9241('0x11'));var logger=require('../../config/logger')(_0x9241('0x12'));var utils=require(_0x9241('0x13'));var config=require(_0x9241('0x14'));var licenseUtil=require(_0x9241('0x15'));var db=require(_0x9241('0x16'))['db'];function respondWithStatusCode(_0x1b2466,_0x1eb3cf){_0x1eb3cf=_0x1eb3cf||0xcc;return function(_0x4b02be){if(_0x4b02be){return _0x1b2466['sendStatus'](_0x1eb3cf);}return _0x1b2466[_0x9241('0x17')](_0x1eb3cf)[_0x9241('0x18')]();};}function respondWithResult(_0x4bf6f1,_0x4e9a55){_0x4e9a55=_0x4e9a55||0xc8;return function(_0x5d9be2){if(_0x5d9be2){return _0x4bf6f1[_0x9241('0x17')](_0x4e9a55)[_0x9241('0x19')](_0x5d9be2);}};}function respondWithFilteredResult(_0x3f2719,_0xfc64f2){return function(_0x289594){if(_0x289594){var _0x3f6a16=typeof _0xfc64f2['offset']===_0x9241('0x1a')&&typeof _0xfc64f2[_0x9241('0x1b')]==='undefined';var _0x1c3cfc=_0x289594[_0x9241('0x1c')];var _0xf641fc=_0x3f6a16?0x0:_0xfc64f2[_0x9241('0x1d')];var _0x2c20e8=_0x3f6a16?_0x289594[_0x9241('0x1c')]:_0xfc64f2[_0x9241('0x1d')]+_0xfc64f2[_0x9241('0x1b')];var _0x53fabb;if(_0x2c20e8>=_0x1c3cfc){_0x2c20e8=_0x1c3cfc;_0x53fabb=0xc8;}else{_0x53fabb=0xce;}_0x3f2719[_0x9241('0x17')](_0x53fabb);return _0x3f2719['set']('Content-Range',_0xf641fc+'-'+_0x2c20e8+'/'+_0x1c3cfc)[_0x9241('0x19')](_0x289594);}return null;};}function patchUpdates(_0x5c675e){return function(_0x259bca){try{jsonpatch[_0x9241('0x1e')](_0x259bca,_0x5c675e,!![]);}catch(_0x937559){return BPromise[_0x9241('0x1f')](_0x937559);}return _0x259bca['save']();};}function saveUpdates(_0x2ff9a9,_0x38973a){return function(_0x225f61){if(_0x225f61){return _0x225f61[_0x9241('0x20')](_0x2ff9a9)[_0x9241('0x21')](function(_0x18a075){return _0x18a075;});}return null;};}function removeEntity(_0x252bf1,_0x1efb28){return function(_0x231fd2){if(_0x231fd2){return _0x231fd2[_0x9241('0x22')]()[_0x9241('0x21')](function(){_0x252bf1[_0x9241('0x17')](0xcc)[_0x9241('0x18')]();});}};}function handleEntityNotFound(_0x2f5715,_0x4c6c74){return function(_0x14c34e){if(!_0x14c34e){_0x2f5715[_0x9241('0x23')](0x194);}return _0x14c34e;};}function handleError(_0xe0c602,_0x29090e){_0x29090e=_0x29090e||0x1f4;return function(_0x3735cd){logger['error'](_0x3735cd['stack']);if(_0x3735cd[_0x9241('0x24')]){delete _0x3735cd[_0x9241('0x24')];}_0xe0c602[_0x9241('0x17')](_0x29090e)[_0x9241('0x25')](_0x3735cd);};}exports[_0x9241('0x26')]=function(_0x6b8b57,_0x33819b){var _0x347465={},_0xaa8e05={},_0x8b23ec={'count':0x0,'rows':[]};var _0x4b782e=_[_0x9241('0x27')](db[_0x9241('0x28')][_0x9241('0x29')],function(_0xb89f5){return{'name':_0xb89f5[_0x9241('0x2a')],'type':_0xb89f5[_0x9241('0x2b')][_0x9241('0x2c')]};});_0xaa8e05['model']=_[_0x9241('0x27')](_0x4b782e,'name');_0xaa8e05[_0x9241('0x2d')]=_[_0x9241('0x2e')](_0x6b8b57[_0x9241('0x2d')]);_0xaa8e05[_0x9241('0x2f')]=_[_0x9241('0x30')](_0xaa8e05[_0x9241('0x31')],_0xaa8e05[_0x9241('0x2d')]);_0x347465[_0x9241('0x32')]=_['intersection'](_0xaa8e05['model'],qs['fields'](_0x6b8b57['query'][_0x9241('0x33')]));_0x347465[_0x9241('0x32')]=_0x347465[_0x9241('0x32')]['length']?_0x347465[_0x9241('0x32')]:_0xaa8e05[_0x9241('0x31')];if(!_0x6b8b57['query'][_0x9241('0x34')](_0x9241('0x35'))){_0x347465['limit']=qs['limit'](_0x6b8b57[_0x9241('0x2d')]['limit']);_0x347465[_0x9241('0x1d')]=qs[_0x9241('0x1d')](_0x6b8b57['query'][_0x9241('0x1d')]);}_0x347465[_0x9241('0x36')]=qs[_0x9241('0x37')](_0x6b8b57[_0x9241('0x2d')][_0x9241('0x37')]);_0x347465[_0x9241('0x38')]=qs[_0x9241('0x2f')](_[_0x9241('0x39')](_0x6b8b57[_0x9241('0x2d')],_0xaa8e05[_0x9241('0x2f')]),_0x4b782e);if(_0x6b8b57[_0x9241('0x2d')][_0x9241('0x3a')]){_0x347465[_0x9241('0x38')]=_[_0x9241('0x3b')](_0x347465[_0x9241('0x38')],{'$or':_[_0x9241('0x27')](_0x4b782e,function(_0x233298){if(_0x233298[_0x9241('0x2b')]!==_0x9241('0x3c')){var _0x54bb83={};_0x54bb83[_0x233298[_0x9241('0x24')]]={'$like':'%'+_0x6b8b57[_0x9241('0x2d')][_0x9241('0x3a')]+'%'};return _0x54bb83;}})});}_0x347465=_[_0x9241('0x3b')]({},_0x347465,_0x6b8b57['options']);var _0x26015e={'where':_0x347465[_0x9241('0x38')]};return db['FaxApplication'][_0x9241('0x1c')](_0x26015e)[_0x9241('0x21')](function(_0x504638){_0x8b23ec[_0x9241('0x1c')]=_0x504638;if(_0x6b8b57['query'][_0x9241('0x3d')]){_0x347465[_0x9241('0x3e')]=[{'all':!![]}];}return db[_0x9241('0x28')][_0x9241('0x3f')](_0x347465);})['then'](function(_0x3ec0b){_0x8b23ec[_0x9241('0x40')]=_0x3ec0b;return _0x8b23ec;})[_0x9241('0x21')](respondWithFilteredResult(_0x33819b,_0x347465))['catch'](handleError(_0x33819b,null));};exports[_0x9241('0x41')]=function(_0x7e2b11,_0xc6b0fc){var _0x1970cb={'raw':!![],'where':{'id':_0x7e2b11[_0x9241('0x42')]['id']}},_0x254c41={};_0x254c41[_0x9241('0x31')]=_['keys'](db['FaxApplication'][_0x9241('0x29')]);_0x254c41['query']=_[_0x9241('0x2e')](_0x7e2b11['query']);_0x254c41[_0x9241('0x2f')]=_['intersection'](_0x254c41[_0x9241('0x31')],_0x254c41[_0x9241('0x2d')]);_0x1970cb[_0x9241('0x32')]=_[_0x9241('0x30')](_0x254c41['model'],qs['fields'](_0x7e2b11[_0x9241('0x2d')][_0x9241('0x33')]));_0x1970cb[_0x9241('0x32')]=_0x1970cb[_0x9241('0x32')][_0x9241('0x43')]?_0x1970cb[_0x9241('0x32')]:_0x254c41[_0x9241('0x31')];if(_0x7e2b11[_0x9241('0x2d')][_0x9241('0x3d')]){_0x1970cb['include']=[{'all':!![]}];}_0x1970cb=_[_0x9241('0x3b')]({},_0x1970cb,_0x7e2b11[_0x9241('0x44')]);return db[_0x9241('0x28')]['find'](_0x1970cb)[_0x9241('0x21')](handleEntityNotFound(_0xc6b0fc,null))['then'](respondWithResult(_0xc6b0fc,null))['catch'](handleError(_0xc6b0fc,null));};exports['create']=function(_0x1ef802,_0x35a2e4){return db[_0x9241('0x28')][_0x9241('0x45')](_0x1ef802[_0x9241('0x46')],{})[_0x9241('0x21')](respondWithResult(_0x35a2e4,0xc9))[_0x9241('0x47')](handleError(_0x35a2e4,null));};exports[_0x9241('0x20')]=function(_0x12bfb2,_0x316bb0){if(_0x12bfb2[_0x9241('0x46')]['id']){delete _0x12bfb2['body']['id'];}return db['FaxApplication']['find']({'where':{'id':_0x12bfb2[_0x9241('0x42')]['id']}})[_0x9241('0x21')](handleEntityNotFound(_0x316bb0,null))[_0x9241('0x21')](saveUpdates(_0x12bfb2[_0x9241('0x46')],null))[_0x9241('0x21')](respondWithResult(_0x316bb0,null))['catch'](handleError(_0x316bb0,null));};exports[_0x9241('0x22')]=function(_0x4c1548,_0x25c104){return db[_0x9241('0x28')][_0x9241('0x48')]({'where':{'id':_0x4c1548['params']['id']}})[_0x9241('0x21')](handleEntityNotFound(_0x25c104,null))[_0x9241('0x21')](removeEntity(_0x25c104,null))['catch'](handleError(_0x25c104,null));};
\ No newline at end of file
+var _0xb566=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','count','apply','update','then','destroy','end','sendStatus','error','stack','name','index','map','FaxApplication','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','params','find','catch','create','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xb566,0x7e));var _0x6b56=function(_0x21aec3,_0x5c97e9){_0x21aec3=_0x21aec3-0x0;var _0x288bbc=_0xb566[_0x21aec3];return _0x288bbc;};'use strict';var emlformat=require(_0x6b56('0x0'));var rimraf=require(_0x6b56('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6b56('0x2'));var rp=require(_0x6b56('0x3'));var moment=require(_0x6b56('0x4'));var BPromise=require(_0x6b56('0x5'));var Mustache=require('mustache');var util=require(_0x6b56('0x6'));var path=require('path');var sox=require(_0x6b56('0x7'));var csv=require(_0x6b56('0x8'));var ejs=require(_0x6b56('0x9'));var fs=require('fs');var fs_extra=require(_0x6b56('0xa'));var _=require(_0x6b56('0xb'));var squel=require(_0x6b56('0xc'));var crypto=require(_0x6b56('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x6b56('0xe'));var toCsv=require(_0x6b56('0x8'));var querystring=require(_0x6b56('0xf'));var Papa=require(_0x6b56('0x10'));var Redis=require(_0x6b56('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x6b56('0x12'));var as=require(_0x6b56('0x13'));var hardwareService=require(_0x6b56('0x14'));var logger=require(_0x6b56('0x15'))(_0x6b56('0x16'));var utils=require('../../config/utils');var config=require(_0x6b56('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x6b56('0x18'))['db'];function respondWithStatusCode(_0x483bf0,_0x31332a){_0x31332a=_0x31332a||0xcc;return function(_0x35244b){if(_0x35244b){return _0x483bf0['sendStatus'](_0x31332a);}return _0x483bf0[_0x6b56('0x19')](_0x31332a)['end']();};}function respondWithResult(_0xc765fb,_0x53e6f4){_0x53e6f4=_0x53e6f4||0xc8;return function(_0x1ed444){if(_0x1ed444){return _0xc765fb['status'](_0x53e6f4)[_0x6b56('0x1a')](_0x1ed444);}};}function respondWithFilteredResult(_0x5db2a8,_0x28be31){return function(_0x43a7e6){if(_0x43a7e6){var _0x136271=typeof _0x28be31[_0x6b56('0x1b')]===_0x6b56('0x1c')&&typeof _0x28be31[_0x6b56('0x1d')]===_0x6b56('0x1c');var _0x1b9d21=_0x43a7e6[_0x6b56('0x1e')];var _0x4911ae=_0x136271?0x0:_0x28be31[_0x6b56('0x1b')];var _0x5e1259=_0x136271?_0x43a7e6[_0x6b56('0x1e')]:_0x28be31[_0x6b56('0x1b')]+_0x28be31[_0x6b56('0x1d')];var _0x2a7b0b;if(_0x5e1259>=_0x1b9d21){_0x5e1259=_0x1b9d21;_0x2a7b0b=0xc8;}else{_0x2a7b0b=0xce;}_0x5db2a8[_0x6b56('0x19')](_0x2a7b0b);return _0x5db2a8['set']('Content-Range',_0x4911ae+'-'+_0x5e1259+'/'+_0x1b9d21)[_0x6b56('0x1a')](_0x43a7e6);}return null;};}function patchUpdates(_0xfe3cfb){return function(_0x5a7ed0){try{jsonpatch[_0x6b56('0x1f')](_0x5a7ed0,_0xfe3cfb,!![]);}catch(_0x44d906){return BPromise['reject'](_0x44d906);}return _0x5a7ed0['save']();};}function saveUpdates(_0x276600,_0x4a1f9a){return function(_0x199329){if(_0x199329){return _0x199329[_0x6b56('0x20')](_0x276600)[_0x6b56('0x21')](function(_0x469b39){return _0x469b39;});}return null;};}function removeEntity(_0x319db8,_0xb2c86c){return function(_0x4df468){if(_0x4df468){return _0x4df468[_0x6b56('0x22')]()[_0x6b56('0x21')](function(){_0x319db8['status'](0xcc)[_0x6b56('0x23')]();});}};}function handleEntityNotFound(_0x4a58d5,_0x44f15c){return function(_0x191892){if(!_0x191892){_0x4a58d5[_0x6b56('0x24')](0x194);}return _0x191892;};}function handleError(_0x1a097c,_0x4c9d4d){_0x4c9d4d=_0x4c9d4d||0x1f4;return function(_0x59be2e){logger[_0x6b56('0x25')](_0x59be2e[_0x6b56('0x26')]);if(_0x59be2e[_0x6b56('0x27')]){delete _0x59be2e['name'];}_0x1a097c[_0x6b56('0x19')](_0x4c9d4d)['send'](_0x59be2e);};}exports[_0x6b56('0x28')]=function(_0x3abf6e,_0x3ea922){var _0x77bda0={},_0x4992ed={},_0x56f309={'count':0x0,'rows':[]};var _0x439162=_[_0x6b56('0x29')](db[_0x6b56('0x2a')][_0x6b56('0x2b')],function(_0x51ecb2){return{'name':_0x51ecb2[_0x6b56('0x2c')],'type':_0x51ecb2['type']['key']};});_0x4992ed[_0x6b56('0x2d')]=_[_0x6b56('0x29')](_0x439162,_0x6b56('0x27'));_0x4992ed[_0x6b56('0x2e')]=_[_0x6b56('0x2f')](_0x3abf6e[_0x6b56('0x2e')]);_0x4992ed[_0x6b56('0x30')]=_[_0x6b56('0x31')](_0x4992ed[_0x6b56('0x2d')],_0x4992ed['query']);_0x77bda0[_0x6b56('0x32')]=_[_0x6b56('0x31')](_0x4992ed['model'],qs[_0x6b56('0x33')](_0x3abf6e['query'][_0x6b56('0x33')]));_0x77bda0[_0x6b56('0x32')]=_0x77bda0[_0x6b56('0x32')][_0x6b56('0x34')]?_0x77bda0['attributes']:_0x4992ed['model'];if(!_0x3abf6e['query'][_0x6b56('0x35')](_0x6b56('0x36'))){_0x77bda0[_0x6b56('0x1d')]=qs['limit'](_0x3abf6e['query'][_0x6b56('0x1d')]);_0x77bda0[_0x6b56('0x1b')]=qs[_0x6b56('0x1b')](_0x3abf6e[_0x6b56('0x2e')][_0x6b56('0x1b')]);}_0x77bda0[_0x6b56('0x37')]=qs['sort'](_0x3abf6e['query']['sort']);_0x77bda0[_0x6b56('0x38')]=qs[_0x6b56('0x30')](_[_0x6b56('0x39')](_0x3abf6e[_0x6b56('0x2e')],_0x4992ed[_0x6b56('0x30')]),_0x439162);if(_0x3abf6e[_0x6b56('0x2e')][_0x6b56('0x3a')]){_0x77bda0['where']=_['merge'](_0x77bda0[_0x6b56('0x38')],{'$or':_['map'](_0x439162,function(_0x3ecc11){if(_0x3ecc11[_0x6b56('0x3b')]!==_0x6b56('0x3c')){var _0x52d77d={};_0x52d77d[_0x3ecc11[_0x6b56('0x27')]]={'$like':'%'+_0x3abf6e[_0x6b56('0x2e')][_0x6b56('0x3a')]+'%'};return _0x52d77d;}})});}_0x77bda0=_[_0x6b56('0x3d')]({},_0x77bda0,_0x3abf6e[_0x6b56('0x3e')]);var _0x3e83ad={'where':_0x77bda0[_0x6b56('0x38')]};return db[_0x6b56('0x2a')]['count'](_0x3e83ad)[_0x6b56('0x21')](function(_0x43b6c7){_0x56f309[_0x6b56('0x1e')]=_0x43b6c7;if(_0x3abf6e[_0x6b56('0x2e')][_0x6b56('0x3f')]){_0x77bda0[_0x6b56('0x40')]=[{'all':!![]}];}return db[_0x6b56('0x2a')][_0x6b56('0x41')](_0x77bda0);})['then'](function(_0x2c2419){_0x56f309[_0x6b56('0x42')]=_0x2c2419;return _0x56f309;})[_0x6b56('0x21')](respondWithFilteredResult(_0x3ea922,_0x77bda0))['catch'](handleError(_0x3ea922,null));};exports['show']=function(_0x45280e,_0xcf72f4){var _0x2bfd80={'raw':!![],'where':{'id':_0x45280e[_0x6b56('0x43')]['id']}},_0x5dcaab={};_0x5dcaab['model']=_[_0x6b56('0x2f')](db[_0x6b56('0x2a')][_0x6b56('0x2b')]);_0x5dcaab[_0x6b56('0x2e')]=_[_0x6b56('0x2f')](_0x45280e[_0x6b56('0x2e')]);_0x5dcaab[_0x6b56('0x30')]=_[_0x6b56('0x31')](_0x5dcaab['model'],_0x5dcaab[_0x6b56('0x2e')]);_0x2bfd80['attributes']=_[_0x6b56('0x31')](_0x5dcaab[_0x6b56('0x2d')],qs[_0x6b56('0x33')](_0x45280e[_0x6b56('0x2e')]['fields']));_0x2bfd80[_0x6b56('0x32')]=_0x2bfd80[_0x6b56('0x32')]['length']?_0x2bfd80[_0x6b56('0x32')]:_0x5dcaab[_0x6b56('0x2d')];if(_0x45280e['query'][_0x6b56('0x3f')]){_0x2bfd80[_0x6b56('0x40')]=[{'all':!![]}];}_0x2bfd80=_[_0x6b56('0x3d')]({},_0x2bfd80,_0x45280e['options']);return db[_0x6b56('0x2a')][_0x6b56('0x44')](_0x2bfd80)[_0x6b56('0x21')](handleEntityNotFound(_0xcf72f4,null))[_0x6b56('0x21')](respondWithResult(_0xcf72f4,null))[_0x6b56('0x45')](handleError(_0xcf72f4,null));};exports['create']=function(_0x5c844e,_0x5224ef){return db[_0x6b56('0x2a')][_0x6b56('0x46')](_0x5c844e['body'],{})[_0x6b56('0x21')](respondWithResult(_0x5224ef,0xc9))[_0x6b56('0x45')](handleError(_0x5224ef,null));};exports[_0x6b56('0x20')]=function(_0x90c2c2,_0x1cc7bd){if(_0x90c2c2['body']['id']){delete _0x90c2c2['body']['id'];}return db[_0x6b56('0x2a')][_0x6b56('0x44')]({'where':{'id':_0x90c2c2[_0x6b56('0x43')]['id']}})[_0x6b56('0x21')](handleEntityNotFound(_0x1cc7bd,null))[_0x6b56('0x21')](saveUpdates(_0x90c2c2[_0x6b56('0x47')],null))[_0x6b56('0x21')](respondWithResult(_0x1cc7bd,null))['catch'](handleError(_0x1cc7bd,null));};exports['destroy']=function(_0xf50005,_0x3db4cb){return db[_0x6b56('0x2a')]['find']({'where':{'id':_0xf50005[_0x6b56('0x43')]['id']}})['then'](handleEntityNotFound(_0x3db4cb,null))['then'](removeEntity(_0x3db4cb,null))[_0x6b56('0x45')](handleError(_0x3db4cb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6571=['./faxApplication.attributes','exports','define','FaxApplication','fax_applications','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x246148,_0x1358ee){var _0x453d94=function(_0x59920e){while(--_0x59920e){_0x246148['push'](_0x246148['shift']());}};_0x453d94(++_0x1358ee);}(_0x6571,0x17e));var _0x1657=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x6571[_0x167cc1];return _0x10bc4b;};'use strict';var _=require('lodash');var util=require(_0x1657('0x0'));var logger=require(_0x1657('0x1'))('api');var moment=require(_0x1657('0x2'));var BPromise=require(_0x1657('0x3'));var rp=require(_0x1657('0x4'));var fs=require('fs');var path=require(_0x1657('0x5'));var rimraf=require(_0x1657('0x6'));var config=require(_0x1657('0x7'));var attributes=require(_0x1657('0x8'));module[_0x1657('0x9')]=function(_0x5c9169,_0x2bcde4){return _0x5c9169[_0x1657('0xa')](_0x1657('0xb'),attributes,{'tableName':_0x1657('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x1657('0xd'),'collate':_0x1657('0xe')});};
\ No newline at end of file
+var _0xa314=['api','bluebird','path','rimraf','../../config/environment','./faxApplication.attributes','define','fax_applications','utf8mb4','utf8mb4_unicode_ci','lodash'];(function(_0x303466,_0x155156){var _0x5e266b=function(_0x3c67dd){while(--_0x3c67dd){_0x303466['push'](_0x303466['shift']());}};_0x5e266b(++_0x155156);}(_0xa314,0x112));var _0x4a31=function(_0x3d5f84,_0x569548){_0x3d5f84=_0x3d5f84-0x0;var _0x1981b8=_0xa314[_0x3d5f84];return _0x1981b8;};'use strict';var _=require(_0x4a31('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x4a31('0x1'));var moment=require('moment');var BPromise=require(_0x4a31('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4a31('0x3'));var rimraf=require(_0x4a31('0x4'));var config=require(_0x4a31('0x5'));var attributes=require(_0x4a31('0x6'));module['exports']=function(_0x1f7c3a,_0x21d463){return _0x1f7c3a[_0x4a31('0x7')]('FaxApplication',attributes,{'tableName':_0x4a31('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x4a31('0x9'),'collate':_0x4a31('0xa')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3379=['catch','FaxApplication','update','options','limit','stringify','UpdateFaxApplication','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','error','code','message','info','result'];(function(_0x50feca,_0x5a9768){var _0x212f81=function(_0x21be9b){while(--_0x21be9b){_0x50feca['push'](_0x50feca['shift']());}};_0x212f81(++_0x5a9768);}(_0x3379,0x115));var _0x9337=function(_0x7cd218,_0x4de4e5){_0x7cd218=_0x7cd218-0x0;var _0x1d4cbb=_0x3379[_0x7cd218];return _0x1d4cbb;};'use strict';var _=require(_0x9337('0x0'));var util=require(_0x9337('0x1'));var moment=require(_0x9337('0x2'));var BPromise=require(_0x9337('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9337('0x4'));var db=require(_0x9337('0x5'))['db'];var utils=require(_0x9337('0x6'));var logger=require(_0x9337('0x7'))('rpc');var config=require(_0x9337('0x8'));var jayson=require(_0x9337('0x9'));var client=jayson[_0x9337('0xa')][_0x9337('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5a59ab,_0x16e2a4,_0x5b1986){return new BPromise(function(_0x268943,_0xdaec59){return client[_0x9337('0xc')](_0x5a59ab,_0x5b1986)[_0x9337('0xd')](function(_0x15c578){logger['info'](_0x9337('0xe'),_0x16e2a4,_0x9337('0xf'));logger[_0x9337('0x10')](_0x9337('0x11'),_0x16e2a4,_0x9337('0xf'),JSON['stringify'](_0x15c578));if(_0x15c578[_0x9337('0x12')]){if(_0x15c578[_0x9337('0x12')][_0x9337('0x13')]===0x1f4){logger[_0x9337('0x12')](_0x9337('0xe'),_0x16e2a4,_0x15c578[_0x9337('0x12')][_0x9337('0x14')]);return _0xdaec59(_0x15c578['error']['message']);}logger[_0x9337('0x12')](_0x9337('0xe'),_0x16e2a4,_0x15c578[_0x9337('0x12')][_0x9337('0x14')]);return _0x268943(_0x15c578['error']['message']);}else{logger[_0x9337('0x15')]('FaxApplication,\x20%s,\x20%s',_0x16e2a4,'request\x20sent');_0x268943(_0x15c578[_0x9337('0x16')][_0x9337('0x14')]);}})[_0x9337('0x17')](function(_0x48644e){logger[_0x9337('0x12')](_0x9337('0xe'),_0x16e2a4,_0x48644e);_0xdaec59(_0x48644e);});});}exports['UpdateFaxApplication']=function(_0x5e49e7){var _0x424f11=this;return new Promise(function(_0x462196,_0x4a27cc){return db[_0x9337('0x18')][_0x9337('0x19')](_0x5e49e7['body'],{'raw':_0x5e49e7[_0x9337('0x1a')]?_0x5e49e7[_0x9337('0x1a')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5e49e7[_0x9337('0x1a')]?_0x5e49e7[_0x9337('0x1a')]['where']||null:null,'attributes':_0x5e49e7['options']?_0x5e49e7[_0x9337('0x1a')]['attributes']||null:null,'limit':_0x5e49e7[_0x9337('0x1a')]?_0x5e49e7['options'][_0x9337('0x1b')]||null:null})['then'](function(_0x571446){logger[_0x9337('0x15')]('UpdateFaxApplication',_0x5e49e7);logger[_0x9337('0x10')]('UpdateFaxApplication',_0x5e49e7,JSON[_0x9337('0x1c')](_0x571446));_0x462196(_0x571446);})[_0x9337('0x17')](function(_0x32d924){logger[_0x9337('0x12')](_0x9337('0x1d'),_0x32d924[_0x9337('0x14')],_0x5e49e7);_0x4a27cc(_0x424f11['error'](0x1f4,_0x32d924['message']));});});};
\ No newline at end of file
+var _0x5719=['request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','stringify','error','FaxApplication,\x20%s,\x20%s','message','result','body','options','raw','where','limit','UpdateFaxApplication','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','request','then','info'];(function(_0x577814,_0x1ce63f){var _0x3fdca3=function(_0xadbdd4){while(--_0xadbdd4){_0x577814['push'](_0x577814['shift']());}};_0x3fdca3(++_0x1ce63f);}(_0x5719,0x101));var _0x9571=function(_0x3d0e93,_0x39644b){_0x3d0e93=_0x3d0e93-0x0;var _0xd6a34f=_0x5719[_0x3d0e93];return _0xd6a34f;};'use strict';var _=require('lodash');var util=require(_0x9571('0x0'));var moment=require(_0x9571('0x1'));var BPromise=require(_0x9571('0x2'));var rs=require(_0x9571('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9571('0x4'))['db'];var utils=require(_0x9571('0x5'));var logger=require('../../config/logger')(_0x9571('0x6'));var config=require('../../config/environment');var jayson=require(_0x9571('0x7'));var client=jayson[_0x9571('0x8')][_0x9571('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x351558,_0x2f369b,_0x185f62){return new BPromise(function(_0x244612,_0x4d071d){return client[_0x9571('0xa')](_0x351558,_0x185f62)[_0x9571('0xb')](function(_0x1f8a7e){logger[_0x9571('0xc')]('FaxApplication,\x20%s,\x20%s',_0x2f369b,_0x9571('0xd'));logger[_0x9571('0xe')](_0x9571('0xf'),_0x2f369b,'request\x20sent',JSON[_0x9571('0x10')](_0x1f8a7e));if(_0x1f8a7e[_0x9571('0x11')]){if(_0x1f8a7e[_0x9571('0x11')]['code']===0x1f4){logger[_0x9571('0x11')](_0x9571('0x12'),_0x2f369b,_0x1f8a7e[_0x9571('0x11')]['message']);return _0x4d071d(_0x1f8a7e[_0x9571('0x11')][_0x9571('0x13')]);}logger[_0x9571('0x11')](_0x9571('0x12'),_0x2f369b,_0x1f8a7e['error']['message']);return _0x244612(_0x1f8a7e['error']['message']);}else{logger['info'](_0x9571('0x12'),_0x2f369b,'request\x20sent');_0x244612(_0x1f8a7e[_0x9571('0x14')][_0x9571('0x13')]);}})['catch'](function(_0x3f3f06){logger[_0x9571('0x11')](_0x9571('0x12'),_0x2f369b,_0x3f3f06);_0x4d071d(_0x3f3f06);});});}exports['UpdateFaxApplication']=function(_0x41a738){var _0x4005da=this;return new Promise(function(_0x3df693,_0x30bc9b){return db['FaxApplication']['update'](_0x41a738[_0x9571('0x15')],{'raw':_0x41a738[_0x9571('0x16')]?_0x41a738[_0x9571('0x16')][_0x9571('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x41a738[_0x9571('0x16')]?_0x41a738[_0x9571('0x16')][_0x9571('0x18')]||null:null,'attributes':_0x41a738[_0x9571('0x16')]?_0x41a738['options']['attributes']||null:null,'limit':_0x41a738[_0x9571('0x16')]?_0x41a738[_0x9571('0x16')][_0x9571('0x19')]||null:null})[_0x9571('0xb')](function(_0x230e90){logger[_0x9571('0xc')](_0x9571('0x1a'),_0x41a738);logger[_0x9571('0xe')](_0x9571('0x1a'),_0x41a738,JSON[_0x9571('0x10')](_0x230e90));_0x3df693(_0x230e90);})['catch'](function(_0x3b192f){logger[_0x9571('0x11')](_0x9571('0x1a'),_0x3b192f[_0x9571('0x13')],_0x41a738);_0x30bc9b(_0x4005da[_0x9571('0x11')](0x1f4,_0x3b192f[_0x9571('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6cb4=['get','/:id','show','post','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./faxApplication.controller','isAuthenticated'];(function(_0x4b7d5c,_0x166fca){var _0x537b18=function(_0x1428b5){while(--_0x1428b5){_0x4b7d5c['push'](_0x4b7d5c['shift']());}};_0x537b18(++_0x166fca);}(_0x6cb4,0xff));var _0x46cb=function(_0x140b24,_0x434cfa){_0x140b24=_0x140b24-0x0;var _0x31f25f=_0x6cb4[_0x140b24];return _0x31f25f;};'use strict';var multer=require(_0x46cb('0x0'));var util=require(_0x46cb('0x1'));var path=require(_0x46cb('0x2'));var timeout=require(_0x46cb('0x3'));var express=require(_0x46cb('0x4'));var router=express[_0x46cb('0x5')]();var fs_extra=require(_0x46cb('0x6'));var auth=require(_0x46cb('0x7'));var interaction=require(_0x46cb('0x8'));var config=require('../../config/environment');var controller=require(_0x46cb('0x9'));router['get']('/',auth[_0x46cb('0xa')](),controller['index']);router[_0x46cb('0xb')](_0x46cb('0xc'),auth[_0x46cb('0xa')](),controller[_0x46cb('0xd')]);router[_0x46cb('0xe')]('/',auth[_0x46cb('0xa')](),controller['create']);router[_0x46cb('0xf')](_0x46cb('0xc'),auth['isAuthenticated'](),controller[_0x46cb('0x10')]);router[_0x46cb('0x11')]('/:id',auth[_0x46cb('0xa')](),controller[_0x46cb('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x9348=['util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./faxApplication.controller','get','isAuthenticated','index','show','post','delete','/:id','destroy','exports','multer'];(function(_0x1c39f0,_0x2faba6){var _0x4d6472=function(_0x5b1f45){while(--_0x5b1f45){_0x1c39f0['push'](_0x1c39f0['shift']());}};_0x4d6472(++_0x2faba6);}(_0x9348,0x10d));var _0x8934=function(_0x28e0c5,_0xae901c){_0x28e0c5=_0x28e0c5-0x0;var _0x154afc=_0x9348[_0x28e0c5];return _0x154afc;};'use strict';var multer=require(_0x8934('0x0'));var util=require(_0x8934('0x1'));var path=require(_0x8934('0x2'));var timeout=require(_0x8934('0x3'));var express=require(_0x8934('0x4'));var router=express['Router']();var fs_extra=require(_0x8934('0x5'));var auth=require(_0x8934('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x8934('0x7'));var controller=require(_0x8934('0x8'));router[_0x8934('0x9')]('/',auth[_0x8934('0xa')](),controller[_0x8934('0xb')]);router[_0x8934('0x9')]('/:id',auth[_0x8934('0xa')](),controller[_0x8934('0xc')]);router[_0x8934('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put']('/:id',auth[_0x8934('0xa')](),controller['update']);router[_0x8934('0xe')](_0x8934('0xf'),auth[_0x8934('0xa')](),controller[_0x8934('0x10')]);module[_0x8934('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8aa7=['STRING','DATE','ENUM','out','sequelize','exports','BOOLEAN'];(function(_0x35dd3b,_0x357613){var _0x3b8f99=function(_0x40ff2a){while(--_0x40ff2a){_0x35dd3b['push'](_0x35dd3b['shift']());}};_0x3b8f99(++_0x357613);}(_0x8aa7,0x1c4));var _0x78aa=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x8aa7[_0x397e5f];return _0x5302b8;};'use strict';var Sequelize=require(_0x78aa('0x0'));module[_0x78aa('0x1')]={'closed':{'type':Sequelize[_0x78aa('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x78aa('0x3')]},'thirdDisposition':{'type':Sequelize[_0x78aa('0x3')]},'note':{'type':Sequelize[_0x78aa('0x3')]},'read1stAt':{'type':Sequelize[_0x78aa('0x4')]},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0x78aa('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x78aa('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x78aa('0x5')]('in',_0x78aa('0x6')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0x3ca4=['out','exports','BOOLEAN','DATE','STRING','ENUM'];(function(_0x25a20,_0x4b2bc1){var _0x4c66ca=function(_0x917020){while(--_0x917020){_0x25a20['push'](_0x25a20['shift']());}};_0x4c66ca(++_0x4b2bc1);}(_0x3ca4,0x73));var _0x43ca=function(_0x12d64b,_0x5f5abf){_0x12d64b=_0x12d64b-0x0;var _0x2870d5=_0x3ca4[_0x12d64b];return _0x2870d5;};'use strict';var Sequelize=require('sequelize');module[_0x43ca('0x0')]={'closed':{'type':Sequelize[_0x43ca('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x43ca('0x2')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x43ca('0x3')]},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize['DATE']},'fax':{'type':Sequelize['STRING']},'firstMsgDirection':{'type':Sequelize[_0x43ca('0x4')]('in',_0x43ca('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x43ca('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x43ca('0x4')]('in',_0x43ca('0x5')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeeb9=['apply','save','update','then','destroy','error','stack','name','send','Users','map','fullname','TagIds','Tags','forEach','push','catch','index','rawAttributes','fieldName','type','model','query','filters','attributes','fields','length','hasOwnProperty','sort','where','pick','field','color','from','tools_tags','select','u.id','u.fullname','ui.FaxInteractionId','user_has_fax_interactions','left_join','users','u.id\x20=\x20ui.UserId','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','fax_accounts','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','having','`\x20>\x200','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','operator','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','some','compact','FaxAccountId','concat','createdAt','$gte','parse','$lte','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','replace','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','isEmpty','t.id\x20IN\x20?','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','agent','user','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','i.FaxAccountId\x20IN\x20?','toString','sequelize','keyBy','merge','FaxInteraction','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','Contact.email','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','FaxInteractionId','all','show','keys','intersection','includeAll','include','options','create','body','params','describe','addMessage','FaxMessage','ids','omit','nolimit','filter','split','format','findAll','rows','addTags','setTags','spread','faxInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','basename','pipe','createWriteStream','log','err','unlinkSync','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range'];(function(_0x56f9a9,_0x834ef1){var _0x4e556e=function(_0x366213){while(--_0x366213){_0x56f9a9['push'](_0x56f9a9['shift']());}};_0x4e556e(++_0x834ef1);}(_0xeeb9,0x185));var _0x9eeb=function(_0xef9dd,_0x341325){_0xef9dd=_0xef9dd-0x0;var _0x4839d0=_0xeeb9[_0xef9dd];return _0x4839d0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9eeb('0x0'));var zipdir=require(_0x9eeb('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9eeb('0x2'));var moment=require(_0x9eeb('0x3'));var BPromise=require(_0x9eeb('0x4'));var Mustache=require(_0x9eeb('0x5'));var util=require(_0x9eeb('0x6'));var path=require(_0x9eeb('0x7'));var sox=require(_0x9eeb('0x8'));var csv=require(_0x9eeb('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9eeb('0xa'));var _=require(_0x9eeb('0xb'));var squel=require('squel');var crypto=require(_0x9eeb('0xc'));var jsforce=require(_0x9eeb('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x9eeb('0x9'));var querystring=require(_0x9eeb('0xe'));var Papa=require('papaparse');var Redis=require(_0x9eeb('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x9eeb('0x10'));var as=require(_0x9eeb('0x11'));var hardwareService=require(_0x9eeb('0x12'));var logger=require('../../config/logger')(_0x9eeb('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9eeb('0x14'));var db=require('../../mysqldb')['db'];config[_0x9eeb('0x15')]=_[_0x9eeb('0x16')](config[_0x9eeb('0x15')],{'host':_0x9eeb('0x17'),'port':0x18eb});var socket=require(_0x9eeb('0x18'))(new Redis(config[_0x9eeb('0x15')]));require(_0x9eeb('0x19'))[_0x9eeb('0x1a')](socket);function respondWithStatusCode(_0x5e4fc8,_0x4ee5d0){_0x4ee5d0=_0x4ee5d0||0xcc;return function(_0x282173){if(_0x282173){return _0x5e4fc8[_0x9eeb('0x1b')](_0x4ee5d0);}return _0x5e4fc8['status'](_0x4ee5d0)[_0x9eeb('0x1c')]();};}function respondWithResult(_0x141e64,_0x220999){_0x220999=_0x220999||0xc8;return function(_0x33ca0f){if(_0x33ca0f){return _0x141e64[_0x9eeb('0x1d')](_0x220999)[_0x9eeb('0x1e')](_0x33ca0f);}};}function respondWithFilteredResult(_0xc696ca,_0x4f063d){return function(_0x4c34bd){if(_0x4c34bd){var _0x1db5bf=typeof _0x4f063d[_0x9eeb('0x1f')]===_0x9eeb('0x20')&&typeof _0x4f063d['limit']===_0x9eeb('0x20');var _0x70a865=_0x4c34bd[_0x9eeb('0x21')];var _0x1827b3=_0x1db5bf?0x0:_0x4f063d[_0x9eeb('0x1f')];var _0x31d35e=_0x1db5bf?_0x4c34bd[_0x9eeb('0x21')]:_0x4f063d[_0x9eeb('0x1f')]+_0x4f063d[_0x9eeb('0x22')];var _0x232e46;if(_0x31d35e>=_0x70a865){_0x31d35e=_0x70a865;_0x232e46=0xc8;}else{_0x232e46=0xce;}_0xc696ca[_0x9eeb('0x1d')](_0x232e46);return _0xc696ca[_0x9eeb('0x23')](_0x9eeb('0x24'),_0x1827b3+'-'+_0x31d35e+'/'+_0x70a865)[_0x9eeb('0x1e')](_0x4c34bd);}return null;};}function patchUpdates(_0x36f3c3){return function(_0x935061){try{jsonpatch[_0x9eeb('0x25')](_0x935061,_0x36f3c3,!![]);}catch(_0x1074c0){return BPromise['reject'](_0x1074c0);}return _0x935061[_0x9eeb('0x26')]();};}function saveUpdates(_0x2878d,_0x48ee91){return function(_0x581d08){if(_0x581d08){return _0x581d08[_0x9eeb('0x27')](_0x2878d)[_0x9eeb('0x28')](function(_0x13a05e){return _0x13a05e;});}return null;};}function removeEntity(_0x47ac7d,_0x3cc920){return function(_0x4bf59e){if(_0x4bf59e){return _0x4bf59e[_0x9eeb('0x29')]()[_0x9eeb('0x28')](function(){_0x47ac7d[_0x9eeb('0x1d')](0xcc)[_0x9eeb('0x1c')]();});}};}function handleEntityNotFound(_0x1ab8af,_0x3d4044){return function(_0x2cf11a){if(!_0x2cf11a){_0x1ab8af[_0x9eeb('0x1b')](0x194);}return _0x2cf11a;};}function handleError(_0x29989f,_0x5a0803){_0x5a0803=_0x5a0803||0x1f4;return function(_0x3965bb){logger[_0x9eeb('0x2a')](_0x3965bb[_0x9eeb('0x2b')]);if(_0x3965bb[_0x9eeb('0x2c')]){delete _0x3965bb[_0x9eeb('0x2c')];}_0x29989f[_0x9eeb('0x1d')](_0x5a0803)[_0x9eeb('0x2d')](_0x3965bb);};}function getInteractionUsers(_0x26aef0,_0x577b38){return new BPromise(function(_0x491e9f,_0x441678){try{if(_0x577b38[_0x26aef0['id']]){_0x26aef0[_0x9eeb('0x2e')]=_[_0x9eeb('0x2f')](_0x577b38[_0x26aef0['id']],function(_0x572762){return{'id':_0x572762['id'],'fullname':_0x572762[_0x9eeb('0x30')]};});}}catch(_0x11f682){_0x441678(_0x11f682);}_0x491e9f(_0x26aef0);});}function getInteractionTags(_0x2f8668,_0x135df8){return new BPromise(function(_0x1c2605,_0x19a942){try{if(_0x2f8668[_0x9eeb('0x31')]){_0x2f8668[_0x9eeb('0x32')]=[];_0x2f8668[_0x9eeb('0x31')]['split'](',')[_0x9eeb('0x33')](function(_0x29f64a){_0x2f8668[_0x9eeb('0x32')][_0x9eeb('0x34')](_0x135df8[_0x29f64a]);});}delete _0x2f8668[_0x9eeb('0x31')];}catch(_0x1f99ca){_0x19a942(_0x1f99ca);}_0x1c2605(_0x2f8668);});}function updateFaxInteraction(_0xc388a1,_0x323907,_0xb09131){return new BPromise(function(_0x26e671,_0x454c81){return getInteractionUsers(_0xc388a1,_0xb09131)['then'](function(_0x53d36a){return getInteractionTags(_0x53d36a,_0x323907);})[_0x9eeb('0x28')](function(_0x4dd28b){_0x26e671(_0x4dd28b);})[_0x9eeb('0x35')](function(_0x25b392){_0x454c81(_0x25b392);});});}exports[_0x9eeb('0x36')]=function(_0xab4da,_0x4b0a25){var _0x25df93={},_0x4cf109={},_0x228bde={'count':0x0,'rows':[]};var _0x48709f=_[_0x9eeb('0x2f')](db['FaxInteraction'][_0x9eeb('0x37')],function(_0x1e7aee){return{'name':_0x1e7aee[_0x9eeb('0x38')],'type':_0x1e7aee[_0x9eeb('0x39')]['key']};});_0x4cf109[_0x9eeb('0x3a')]=_[_0x9eeb('0x2f')](_0x48709f,_0x9eeb('0x2c'));_0x4cf109[_0x9eeb('0x3b')]=_['keys'](_0xab4da['query']);_0x4cf109[_0x9eeb('0x3c')]=_['intersection'](_0x4cf109[_0x9eeb('0x3a')],_0x4cf109[_0x9eeb('0x3b')]);_0x25df93[_0x9eeb('0x3d')]=_['intersection'](_0x4cf109[_0x9eeb('0x3a')],qs[_0x9eeb('0x3e')](_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x3e')]));_0x25df93[_0x9eeb('0x3d')]=_0x25df93['attributes'][_0x9eeb('0x3f')]?_0x25df93[_0x9eeb('0x3d')]:_0x4cf109['model'];if(!_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x40')]('nolimit')){_0x25df93[_0x9eeb('0x22')]=qs[_0x9eeb('0x22')](_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x22')]);_0x25df93[_0x9eeb('0x1f')]=qs['offset'](_0xab4da['query'][_0x9eeb('0x1f')]);}_0x25df93['order']=qs[_0x9eeb('0x41')](_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x41')]);_0x25df93[_0x9eeb('0x42')]=qs['filters'](_[_0x9eeb('0x43')](_0xab4da['query'],_0x4cf109['filters']),_0x48709f);var _0xee0f52=[];var _0x2b7d20=squel['select']()[_0x9eeb('0x44')]('id')[_0x9eeb('0x44')]('name')['field'](_0x9eeb('0x45'))[_0x9eeb('0x46')](_0x9eeb('0x47'));var _0x1d445b=squel[_0x9eeb('0x48')]()[_0x9eeb('0x44')](_0x9eeb('0x49'))[_0x9eeb('0x44')](_0x9eeb('0x4a'))[_0x9eeb('0x44')](_0x9eeb('0x4b'))[_0x9eeb('0x46')](_0x9eeb('0x4c'),'ui')[_0x9eeb('0x4d')](_0x9eeb('0x4e'),'u',_0x9eeb('0x4f'));var _0x3de1bb=squel[_0x9eeb('0x48')]()[_0x9eeb('0x46')]('fax_interactions','i')[_0x9eeb('0x4d')]('cm_contacts','c',_0x9eeb('0x50'))[_0x9eeb('0x4d')](_0x9eeb('0x4e'),'o','o.id\x20=\x20i.UserId')[_0x9eeb('0x4d')](_0x9eeb('0x51'),'a','a.id\x20=\x20i.FaxAccountId')[_0x9eeb('0x4d')]('fax_messages','me','me.FaxInteractionId\x20=\x20i.id')[_0x9eeb('0x4d')](_0x9eeb('0x52'),'it',_0x9eeb('0x53'))[_0x9eeb('0x4d')](_0x9eeb('0x47'),'t',_0x9eeb('0x54'));var _0x400f67=squel['expr']();var _0x16143e=[];var _0x6dd05e=squel[_0x9eeb('0x55')]();var _0x1c5186;if(_0xab4da['query']['search']){_0x1c5186=as['parseSearch'](_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x56')]);var _0x540e36=_0x1c5186[_0x9eeb('0x57')];for(var _0xdc649f=0x0;_0xdc649f<_0x1c5186[_0x9eeb('0x58')]['length'];_0xdc649f++){var _0x1ae1ba=_0x1c5186['conditions'][_0xdc649f];var _0x1565ba='i';var _0x53302c=_[_0x9eeb('0x59')](_0x48709f,['name',_0x1ae1ba[_0x9eeb('0x44')]]);if(!_0x53302c){switch(_0x1ae1ba['field']){case _0x9eeb('0x5a'):if(_0x1ae1ba['value']==0x1){_0x3de1bb[_0x9eeb('0x5b')]('`'+_0x1ae1ba[_0x9eeb('0x44')]+'`\x20=\x200');}else{_0x3de1bb[_0x9eeb('0x5b')]('`'+_0x1ae1ba['field']+_0x9eeb('0x5c'));}break;case'Contact':if(_0x1ae1ba['operator']==='$substring'){if(_0x1ae1ba[_0x9eeb('0x5d')]['split']('\x20')[_0x9eeb('0x3f')]>0x1){_0x400f67[_0x540e36](_0x9eeb('0x5e'),qs[_0x9eeb('0x5f')](_0x1ae1ba[_0x9eeb('0x5d')]),null);}else{var _0x33420e='%'+_0x1ae1ba[_0x9eeb('0x5d')]+'%';_0x400f67[_0x540e36](_0x9eeb('0x60'),_0x33420e,_0x33420e,_0x33420e);}}else{_0x53302c=_['find'](_0x48709f,[_0x9eeb('0x2c'),'ContactId']);_0x1ae1ba['field']=_0x9eeb('0x61');_0x3b8550=as['buildExpression'](_0x1565ba,_0x53302c[_0x9eeb('0x39')],_0x1ae1ba);_0x400f67[_0x540e36](_0x3b8550[_0x9eeb('0x62')],_0x3b8550['value'][_0x9eeb('0x63')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x1c')]);}break;case'Tag':var _0x7ab667=_0x1ae1ba[_0x9eeb('0x5d')]['split'](',')['map'](function(_0x25172b){return Number(_0x25172b);});_0x7ab667[_0x9eeb('0x33')](function(_0x486f09){_0x6dd05e['or'](_0x9eeb('0x64'),'%,'+_0x486f09+',%');});_0x16143e=_[_0x9eeb('0x65')](_0x16143e,_0x7ab667);break;case _0x9eeb('0x66'):if(_0x1ae1ba[_0x9eeb('0x67')]===_0x9eeb('0x68')){_0x400f67[_0x540e36](_0x9eeb('0x69'),'%'+_0x1ae1ba[_0x9eeb('0x5d')]+'%',null);}else{_0x53302c=_[_0x9eeb('0x59')](_0x48709f,[_0x9eeb('0x2c'),'UserId']);_0x1ae1ba[_0x9eeb('0x44')]=_0x9eeb('0x6a');_0x3b8550=as[_0x9eeb('0x6b')](_0x1565ba,_0x53302c['type'],_0x1ae1ba);_0x400f67[_0x540e36](_0x3b8550[_0x9eeb('0x62')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x63')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x1c')]);}break;case'body':_0x3b8550=as[_0x9eeb('0x6b')]('me',null,_0x1ae1ba);_0x400f67[_0x540e36](_0x3b8550[_0x9eeb('0x62')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x63')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x1c')]);break;}}else{var _0x3b8550=as[_0x9eeb('0x6b')](_0x1565ba,_0x53302c['type'],_0x1ae1ba);_0x400f67[_0x540e36](_0x3b8550[_0x9eeb('0x62')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x63')],_0x3b8550[_0x9eeb('0x5d')][_0x9eeb('0x1c')]);}}}else{var _0x268c63=_(_0xab4da[_0x9eeb('0x3b')])['keys']()[_0x9eeb('0x2f')](function(_0x588c86){return _[_0x9eeb('0x6c')](_0x48709f,['name',_0x588c86])?_0x588c86:undefined;})[_0x9eeb('0x6d')]()[_0x9eeb('0x5d')]();if(!_['isEmpty'](_0x268c63)){_0x268c63['forEach'](function(_0x45d8e4){if(_0x45d8e4===_0x9eeb('0x6e')){_0x3de1bb['where']('i.FaxAccountId\x20IN\x20?',[][_0x9eeb('0x6f')](_0xab4da['query'][_0x45d8e4]));}else if(_0x45d8e4===_0x9eeb('0x70')){var _0x5e4d84=JSON['parse'](_0xab4da[_0x9eeb('0x3b')][_0x45d8e4])[_0x9eeb('0x71')];var _0x478c2e=JSON[_0x9eeb('0x72')](_0xab4da[_0x9eeb('0x3b')][_0x45d8e4])[_0x9eeb('0x73')];_0x3de1bb[_0x9eeb('0x42')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x5e4d84,_0x478c2e);}else{if(_0xab4da[_0x9eeb('0x3b')][_0x45d8e4]===_0x9eeb('0x74')){_0x3de1bb[_0x9eeb('0x42')]('i.'+_0x45d8e4+_0x9eeb('0x75'));}else{_0x3de1bb[_0x9eeb('0x42')]('i.'+_0x45d8e4+_0x9eeb('0x76'),_0xab4da[_0x9eeb('0x3b')][_0x45d8e4]);}}});}if(_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x77')]){if(_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x77')]==0x1){_0x3de1bb[_0x9eeb('0x5b')](_0x9eeb('0x78'));}else{_0x3de1bb[_0x9eeb('0x5b')](_0x9eeb('0x79'));}}if(_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x7a')]){_0x16143e=_['isArray'](_0xab4da[_0x9eeb('0x3b')]['tag'])?_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x7a')]:new Array(_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x7a')]);_0x16143e[_0x9eeb('0x33')](function(_0x4c172d){_0x6dd05e['or'](_0x9eeb('0x64'),'%,'+_0x4c172d+',%');});}if(_0xab4da[_0x9eeb('0x3b')]['filter']){var _0x81bea4=_0xab4da['query']['filter'][_0x9eeb('0x7b')]('\x5c','\x5c\x5c')[_0x9eeb('0x7b')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x81bea4)){_0x400f67['or']('i.id\x20LIKE\x20?',_0x81bea4+'%')['or']('i.fax\x20LIKE\x20?',_0x81bea4+'%');}_0x400f67['or'](_0x9eeb('0x7c'),_0x81bea4+'%');}}_0x3de1bb[_0x9eeb('0x42')](_0x400f67);_0x3de1bb[_0x9eeb('0x7d')](_0x9eeb('0x7e'));var _0x366641={'type':db[_0x9eeb('0x7f')][_0x9eeb('0x80')][_0x9eeb('0x81')],'raw':!![]};var _0x12aedb=_0x3de1bb[_0x9eeb('0x82')]();_0x12aedb[_0x9eeb('0x44')](_0x9eeb('0x7e'));_0x12aedb['field'](_0x9eeb('0x83'),_0x9eeb('0x5a'));if(_0x25df93[_0x9eeb('0x84')]){_0x25df93[_0x9eeb('0x84')][_0x9eeb('0x33')](function(_0x28f7af){var _0x5c39bf=_0x28f7af[0x0]===_0x9eeb('0x85')?_0x28f7af[0x0]:'i.'+_0x28f7af[0x0];_0x3de1bb[_0x9eeb('0x84')](_0x5c39bf,_0x28f7af[0x1]==='DESC'?![]:!![]);});}if(!_[_0x9eeb('0x86')](_0x16143e)){_0x3de1bb[_0x9eeb('0x5b')](_0x6dd05e);_0x12aedb[_0x9eeb('0x42')](_0x9eeb('0x87'),_0x16143e);}BPromise[_0x9eeb('0x88')]()[_0x9eeb('0x28')](function(){if(!_0x1c5186){if(_0xab4da['query'][_0x9eeb('0x6e')])return;_0x12aedb[_0x9eeb('0x42')](_0x9eeb('0x89'));_0x3de1bb[_0x9eeb('0x42')](_0x9eeb('0x89'));return;}if(_0xab4da['user']['role']!==_0x9eeb('0x8a'))return;return _0xab4da[_0x9eeb('0x8b')][_0x9eeb('0x8c')]({'attributes':['id'],'raw':!![]})['then'](function(_0x3337aa){if(_[_0x9eeb('0x86')](_0x3337aa)){_0x12aedb[_0x9eeb('0x42')](_0x9eeb('0x8d'));_0x3de1bb[_0x9eeb('0x42')](_0x9eeb('0x8d'));}else{_0x12aedb[_0x9eeb('0x42')](_0x9eeb('0x8e'),_['map'](_0x3337aa,'id'));_0x3de1bb[_0x9eeb('0x42')]('i.FaxAccountId\x20IN\x20?',_[_0x9eeb('0x2f')](_0x3337aa,'id'));}});})[_0x9eeb('0x28')](function(){if(_0xab4da[_0x9eeb('0x8b')]['role']==='agent'&&!_0x1c5186&&!_0xab4da[_0x9eeb('0x3b')][_0x9eeb('0x6e')])return[];return db['sequelize']['query'](_0x12aedb[_0x9eeb('0x8f')](),_0x366641);})[_0x9eeb('0x28')](function(_0x4b544a){_0x228bde[_0x9eeb('0x21')]=_0x4b544a[_0x9eeb('0x3f')];if(_0x228bde[_0x9eeb('0x21')]===0x0)return[];return db[_0x9eeb('0x90')][_0x9eeb('0x3b')](_0x2b7d20[_0x9eeb('0x8f')](),_0x366641)[_0x9eeb('0x28')](function(_0x3b5353){_0xee0f52=_[_0x9eeb('0x91')](_0x3b5353,'id');_0x366641=_[_0x9eeb('0x92')](_0x366641,{'model':db[_0x9eeb('0x93')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xab4da[_0x9eeb('0x3b')]['fields']){_0x25df93['attributes']['forEach'](function(_0x4e9f8f){_0x3de1bb[_0x9eeb('0x44')]('i.'+_0x4e9f8f);});}else{_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0x83'),_0x9eeb('0x5a'));_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0x94'),_0x9eeb('0x95'));_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0x96'),'Account.mandatoryDisposition');_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0x97'),_0x9eeb('0x85'));_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0x98'));_0x3de1bb['field'](_0x9eeb('0x99'),_0x9eeb('0x9a'));_0x3de1bb['field'](_0x9eeb('0x9b'),_0x9eeb('0x9c'));_0x3de1bb['field']('c.email',_0x9eeb('0x9d'));_0x3de1bb[_0x9eeb('0x44')]('c.phone',_0x9eeb('0x9e'));_0x3de1bb[_0x9eeb('0x44')]('c.mobile',_0x9eeb('0x9f'));_0x3de1bb['field'](_0x9eeb('0xa0'),_0x9eeb('0xa1'));_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0xa2'),_0x9eeb('0xa3'));_0x3de1bb['field']('o.internal',_0x9eeb('0xa4'));_0x3de1bb[_0x9eeb('0x44')](_0x9eeb('0xa5'),_0x9eeb('0x31'));}if(_0x25df93[_0x9eeb('0x22')])_0x3de1bb[_0x9eeb('0x22')](_0x25df93[_0x9eeb('0x22')]);if(_0x25df93[_0x9eeb('0x1f')])_0x3de1bb['offset'](_0x25df93[_0x9eeb('0x1f')]);return db[_0x9eeb('0x90')][_0x9eeb('0x3b')](_0x3de1bb[_0x9eeb('0x8f')](),_0x366641);})['then'](function(_0x2ab6dc){if(_0x2ab6dc['length']>0x0)_0x1d445b[_0x9eeb('0x42')]('ui.FaxInteractionId\x20IN\x20?',_[_0x9eeb('0x2f')](_0x2ab6dc,'id'));return db[_0x9eeb('0x90')][_0x9eeb('0x3b')](_0x1d445b[_0x9eeb('0x8f')](),_0x366641)['then'](function(_0x39560e){var _0x6604d6=_[_0x9eeb('0xa6')](_0x39560e,_0x9eeb('0xa7'));var _0x2dd298=[];_0x2ab6dc[_0x9eeb('0x33')](function(_0x38921a){_0x2dd298['push'](updateFaxInteraction(_0x38921a,_0xee0f52,_0x6604d6));});return BPromise[_0x9eeb('0xa8')](_0x2dd298);});});})[_0x9eeb('0x28')](function(_0x5ec237){_0x228bde['rows']=_0x5ec237;return _0x228bde;})[_0x9eeb('0x28')](respondWithFilteredResult(_0x4b0a25,_0x25df93))[_0x9eeb('0x35')](handleError(_0x4b0a25,null));};exports[_0x9eeb('0xa9')]=function(_0x3fc8b9,_0x18daf1){var _0x5bea44={'raw':![],'where':{'id':_0x3fc8b9['params']['id']}},_0x5ee5ed={};_0x5ee5ed['model']=_[_0x9eeb('0xaa')](db[_0x9eeb('0x93')]['rawAttributes']);_0x5ee5ed[_0x9eeb('0x3b')]=_[_0x9eeb('0xaa')](_0x3fc8b9[_0x9eeb('0x3b')]);_0x5ee5ed[_0x9eeb('0x3c')]=_[_0x9eeb('0xab')](_0x5ee5ed[_0x9eeb('0x3a')],_0x5ee5ed[_0x9eeb('0x3b')]);_0x5bea44[_0x9eeb('0x3d')]=_[_0x9eeb('0xab')](_0x5ee5ed[_0x9eeb('0x3a')],qs[_0x9eeb('0x3e')](_0x3fc8b9[_0x9eeb('0x3b')]['fields']));_0x5bea44[_0x9eeb('0x3d')]=_0x5bea44[_0x9eeb('0x3d')][_0x9eeb('0x3f')]?_0x5bea44[_0x9eeb('0x3d')]:_0x5ee5ed[_0x9eeb('0x3a')];if(_0x3fc8b9[_0x9eeb('0x3b')][_0x9eeb('0xac')]){_0x5bea44[_0x9eeb('0xad')]=[{'all':!![]}];}_0x5bea44=_[_0x9eeb('0x92')]({},_0x5bea44,_0x3fc8b9[_0x9eeb('0xae')]);return db[_0x9eeb('0x93')][_0x9eeb('0x59')](_0x5bea44)[_0x9eeb('0x28')](handleEntityNotFound(_0x18daf1,null))[_0x9eeb('0x28')](respondWithResult(_0x18daf1,null))[_0x9eeb('0x35')](handleError(_0x18daf1,null));};exports[_0x9eeb('0xaf')]=function(_0x51d611,_0x29bf4c){return db['FaxInteraction'][_0x9eeb('0xaf')](_0x51d611[_0x9eeb('0xb0')],{})['then'](respondWithResult(_0x29bf4c,0xc9))[_0x9eeb('0x35')](handleError(_0x29bf4c,null));};exports['update']=function(_0x211e82,_0x3e0196){if(_0x211e82[_0x9eeb('0xb0')]['id']){delete _0x211e82[_0x9eeb('0xb0')]['id'];}return db[_0x9eeb('0x93')][_0x9eeb('0x59')]({'where':{'id':_0x211e82[_0x9eeb('0xb1')]['id']}})['then'](handleEntityNotFound(_0x3e0196,null))[_0x9eeb('0x28')](saveUpdates(_0x211e82[_0x9eeb('0xb0')],null))['then'](respondWithResult(_0x3e0196,null))['catch'](handleError(_0x3e0196,null));};exports[_0x9eeb('0x29')]=function(_0x52cc05,_0x4cc41e){return db['FaxInteraction']['find']({'where':{'id':_0x52cc05['params']['id']}})[_0x9eeb('0x28')](handleEntityNotFound(_0x4cc41e,null))[_0x9eeb('0x28')](removeEntity(_0x4cc41e,null))[_0x9eeb('0x35')](handleError(_0x4cc41e,null));};exports[_0x9eeb('0xb2')]=function(_0xd43754,_0x1afe1d){return db['FaxInteraction'][_0x9eeb('0xb2')]()['then'](respondWithResult(_0x1afe1d,null))['catch'](handleError(_0x1afe1d,null));};exports[_0x9eeb('0xb3')]=function(_0x3fd76b,_0x93e5b,_0x178367){return db[_0x9eeb('0xb4')][_0x9eeb('0x59')]({'where':{'id':_0x3fd76b[_0x9eeb('0xb1')]['id']}})[_0x9eeb('0x28')](handleEntityNotFound(_0x93e5b,null))[_0x9eeb('0x28')](function(_0x17452b){if(_0x17452b){return _0x17452b[_0x9eeb('0xb3')](_0x3fd76b[_0x9eeb('0xb0')][_0x9eeb('0xb5')],_[_0x9eeb('0xb6')](_0x3fd76b[_0x9eeb('0xb0')],[_0x9eeb('0xb5'),'id'])||{});}})[_0x9eeb('0x28')](respondWithResult(_0x93e5b,null))['catch'](handleError(_0x93e5b,null));};exports['getMessages']=function(_0x12aaa5,_0xc0cb84,_0x42b40c){var _0x2234af={'raw':![],'where':{}};var _0x57feea={};var _0x5dde56={'count':0x0,'rows':[]};return db[_0x9eeb('0x93')]['findOne']({'where':{'id':_0x12aaa5[_0x9eeb('0xb1')]['id']}})['then'](handleEntityNotFound(_0xc0cb84,null))[_0x9eeb('0x28')](function(_0x12b89c){if(_0x12b89c){_0x57feea[_0x9eeb('0x3a')]=_['keys'](db[_0x9eeb('0xb4')]['rawAttributes']);_0x57feea[_0x9eeb('0x3b')]=_['keys'](_0x12aaa5[_0x9eeb('0x3b')]);_0x57feea[_0x9eeb('0x3c')]=_['intersection'](_0x57feea[_0x9eeb('0x3a')],_0x57feea[_0x9eeb('0x3b')]);_0x2234af[_0x9eeb('0x3d')]=_[_0x9eeb('0xab')](_0x57feea[_0x9eeb('0x3a')],qs[_0x9eeb('0x3e')](_0x12aaa5[_0x9eeb('0x3b')]['fields']));_0x2234af[_0x9eeb('0x3d')]=_0x2234af[_0x9eeb('0x3d')]['length']?_0x2234af[_0x9eeb('0x3d')]:_0x57feea[_0x9eeb('0x3a')];if(!_0x12aaa5['query'][_0x9eeb('0x40')](_0x9eeb('0xb7'))){_0x2234af['limit']=qs['limit'](_0x12aaa5['query'][_0x9eeb('0x22')]);_0x2234af[_0x9eeb('0x1f')]=qs[_0x9eeb('0x1f')](_0x12aaa5[_0x9eeb('0x3b')][_0x9eeb('0x1f')]);}_0x2234af[_0x9eeb('0x84')]=qs[_0x9eeb('0x41')](_0x12aaa5[_0x9eeb('0x3b')]['sort']);_0x2234af[_0x9eeb('0x42')]=qs[_0x9eeb('0x3c')](_[_0x9eeb('0x43')](_0x12aaa5['query'],_0x57feea[_0x9eeb('0x3c')]));_0x2234af[_0x9eeb('0x42')][_0x9eeb('0xa7')]=_0x12b89c['id'];if(_0x12aaa5[_0x9eeb('0x3b')][_0x9eeb('0xb8')]){_0x2234af[_0x9eeb('0x42')]=_[_0x9eeb('0x92')](_0x2234af[_0x9eeb('0x42')],{'$or':_[_0x9eeb('0x2f')](_0x2234af['attributes'],function(_0x5746f6){var _0xec1b98={};_0xec1b98[_0x5746f6]={'$like':'%'+_0x12aaa5['query']['filter']+'%'};return _0xec1b98;})});}if(_0x12aaa5[_0x9eeb('0x3b')][_0x9eeb('0x71')]){var _0x14870d=_0x12aaa5['query'][_0x9eeb('0x71')][_0x9eeb('0xb9')](',');var _0x4a4c42={};_0x4a4c42[_0x14870d[0x0]]={'$gte':moment(_0x14870d[0x1])[_0x9eeb('0xba')]('YYYY-MM-DD\x20HH:mm:ss')};_0x2234af[_0x9eeb('0x42')]=_[_0x9eeb('0x92')](_0x2234af[_0x9eeb('0x42')],_0x4a4c42);}_0x2234af=_['merge']({},_0x2234af,_0x12aaa5[_0x9eeb('0xae')]);return db['FaxMessage'][_0x9eeb('0x21')]({'where':_0x2234af[_0x9eeb('0x42')]})[_0x9eeb('0x28')](function(_0x76d0ea){_0x5dde56[_0x9eeb('0x21')]=_0x76d0ea;if(_0x12aaa5[_0x9eeb('0x3b')]['includeAll']){_0x2234af[_0x9eeb('0xad')]=[{'all':!![]}];}return db[_0x9eeb('0xb4')][_0x9eeb('0xbb')](_0x2234af);})[_0x9eeb('0x28')](function(_0x3c629b){_0x5dde56[_0x9eeb('0xbc')]=_0x3c629b;return _0x5dde56;});}})[_0x9eeb('0x28')](respondWithFilteredResult(_0xc0cb84,_0x2234af))[_0x9eeb('0x35')](handleError(_0xc0cb84,null));};exports[_0x9eeb('0xbd')]=function(_0x5dc4e3,_0x4cac08,_0x438bd1){return db[_0x9eeb('0x93')][_0x9eeb('0x59')]({'where':{'id':_0x5dc4e3[_0x9eeb('0xb1')]['id']}})[_0x9eeb('0x28')](handleEntityNotFound(_0x4cac08,null))['then'](function(_0x3257cb){if(_0x3257cb){return _0x3257cb[_0x9eeb('0xbe')](_0x5dc4e3[_0x9eeb('0xb0')][_0x9eeb('0xb5')],_['omit'](_0x5dc4e3[_0x9eeb('0xb0')],[_0x9eeb('0xb5'),'id'])||{})[_0x9eeb('0xbf')](function(){return db['Tag'][_0x9eeb('0xbb')]({'attributes':['id',_0x9eeb('0x2c'),_0x9eeb('0x45')],'where':{'id':_0x5dc4e3[_0x9eeb('0xb0')][_0x9eeb('0xb5')]}});})[_0x9eeb('0x28')](function(_0x2a3e06){socket['emit'](_0x9eeb('0xc0'),{'id':Number(_0x5dc4e3[_0x9eeb('0xb1')]['id']),'tags':_0x2a3e06||[]});return{'id':Number(_0x5dc4e3[_0x9eeb('0xb1')]['id']),'tags':_0x2a3e06||[]};});}})[_0x9eeb('0x28')](respondWithResult(_0x4cac08,null))[_0x9eeb('0x35')](handleError(_0x4cac08,null));};exports[_0x9eeb('0xc1')]=function(_0x29fa64,_0x4e3f19,_0x2a0c0e){return db[_0x9eeb('0x93')][_0x9eeb('0x59')]({'where':{'id':_0x29fa64[_0x9eeb('0xb1')]['id']}})[_0x9eeb('0x28')](handleEntityNotFound(_0x4e3f19,null))['then'](function(_0x4e8cb8){if(_0x4e8cb8){return _0x4e8cb8[_0x9eeb('0xc1')](_0x29fa64['query'][_0x9eeb('0xb5')]);}})[_0x9eeb('0x28')](respondWithStatusCode(_0x4e3f19,null))[_0x9eeb('0x35')](handleError(_0x4e3f19,null));};exports[_0x9eeb('0xc2')]=function(_0x99275a,_0x7deedb){var _0x50f967=moment()[_0x9eeb('0xc3')]()[_0x9eeb('0x8f')]();var _0x5978ae=path[_0x9eeb('0xc4')](config[_0x9eeb('0xc5')],_0x9eeb('0xc6'),_0x9eeb('0xc7'),_0x9eeb('0xc8'));var _0x4377c6=path['join'](config[_0x9eeb('0xc5')],_0x9eeb('0xc6'),'files',_0x9eeb('0xc9'));var _0x585233=path[_0x9eeb('0xc4')](_0x5978ae,_0x50f967);var _0xfcfcb9=util['format'](_0x9eeb('0xca'),_0x99275a[_0x9eeb('0xb1')]['id'],_0x50f967);var _0x189f4c=path[_0x9eeb('0xc4')](_0x5978ae,_0xfcfcb9);var _0x38c7b3=[];_0x38c7b3[_0x9eeb('0x34')]({'model':db[_0x9eeb('0xcb')],'as':'Attachment','raw':!![]});var _0x3dbdf4=[{'model':db[_0x9eeb('0xb4')],'as':'Messages','attributes':['id',_0x9eeb('0xb0'),_0x9eeb('0x70')],'include':_0x38c7b3}];return db['FaxInteraction'][_0x9eeb('0x59')]({'where':{'id':_0x99275a['params']['id']},'include':_0x3dbdf4})[_0x9eeb('0x28')](handleEntityNotFound(_0x7deedb,null))[_0x9eeb('0x28')](function(_0x1f8dfd){if(_0x1f8dfd&&_0x1f8dfd[_0x9eeb('0xcc')]){var _0x52c015=_0x1f8dfd[_0x9eeb('0xcd')]({'plain':!![]});fs[_0x9eeb('0xce')](_0x585233);for(var _0x3d05f4=0x0;_0x3d05f4<_0x52c015[_0x9eeb('0xcc')]['length'];_0x3d05f4++){var _0x379c0c=_0x52c015[_0x9eeb('0xcc')][_0x3d05f4][_0x9eeb('0xcb')];if(_0x379c0c){var _0x4a067a=path[_0x9eeb('0xc4')](_0x4377c6,_0x379c0c[_0x9eeb('0xcf')]);if(fs['existsSync'](_0x4a067a)){fs['createReadStream'](_0x4a067a)[_0x9eeb('0xd0')](fs[_0x9eeb('0xd1')](path[_0x9eeb('0xc4')](_0x585233,_0x379c0c['basename'])));}}}return BPromise[_0x9eeb('0x88')]()[_0x9eeb('0x28')](function(){return new BPromise(function(_0x10c28a,_0x202dce){zipdir(_0x585233,{'saveTo':_0x189f4c},function(_0x50da48,_0x81e299){if(_0x50da48)return _0x202dce(_0x50da48);return _0x10c28a(_0x81e299);});})['then'](function(){return new BPromise(function(_0x50ed16,_0x5b501d){rimraf(_0x585233,function(_0x2ad1ce){if(_0x2ad1ce)_0x5b501d(_0x2ad1ce);return _0x50ed16();});});})[_0x9eeb('0x28')](function(){return _0x7deedb['download'](_0x189f4c,_0xfcfcb9,function(_0x5316d5){if(_0x5316d5){console[_0x9eeb('0xd2')](_0x9eeb('0xd3'),_0x5316d5);}else{fs[_0x9eeb('0xd4')](_0x189f4c);}});});});}else{return _0x7deedb[_0x9eeb('0x1b')](0xc8);}})[_0x9eeb('0x35')](handleError(_0x7deedb,null));};
\ No newline at end of file
+var _0x8c09=['to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','save','update','then','end','error','stack','name','Users','map','fullname','TagIds','forEach','push','catch','index','FaxInteraction','rawAttributes','fieldName','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','filters','select','field','color','from','tools_tags','u.id','u.fullname','ui.FaxInteractionId','user_has_fax_interactions','users','u.id\x20=\x20ui.UserId','fax_interactions','left_join','cm_contacts','o.id\x20=\x20i.UserId','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','split','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','some','FaxAccountId','i.FaxAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','null','where','\x20IS\x20NULL','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','clone','contactName','DESC','isEmpty','t.id\x20IN\x20?','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','agent','i.FaxAccountId\x20IS\x20NULL','role','toString','sequelize','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','Contact.firstName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','ui.FaxInteractionId\x20IN\x20?','groupBy','FaxInteractionId','all','rows','show','params','includeAll','include','options','create','body','describe','addMessage','FaxMessage','ids','omit','getMessages','findOne','pick','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','faxInteractionTags:save','removeTags','download','join','root','server','tmp','files','attachments','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','log','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8c09,0xd0));var _0x98c0=function(_0xef4c96,_0x52b21d){_0xef4c96=_0xef4c96-0x0;var _0x5a0c32=_0x8c09[_0xef4c96];return _0x5a0c32;};'use strict';var emlformat=require(_0x98c0('0x0'));var rimraf=require(_0x98c0('0x1'));var zipdir=require(_0x98c0('0x2'));var jsonpatch=require(_0x98c0('0x3'));var rp=require(_0x98c0('0x4'));var moment=require(_0x98c0('0x5'));var BPromise=require(_0x98c0('0x6'));var Mustache=require('mustache');var util=require(_0x98c0('0x7'));var path=require(_0x98c0('0x8'));var sox=require('sox');var csv=require(_0x98c0('0x9'));var ejs=require(_0x98c0('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x98c0('0xb'));var squel=require('squel');var crypto=require(_0x98c0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x98c0('0xd'));var toCsv=require('to-csv');var querystring=require(_0x98c0('0xe'));var Papa=require(_0x98c0('0xf'));var Redis=require('ioredis');var authService=require(_0x98c0('0x10'));var qs=require(_0x98c0('0x11'));var as=require(_0x98c0('0x12'));var hardwareService=require(_0x98c0('0x13'));var logger=require(_0x98c0('0x14'))(_0x98c0('0x15'));var utils=require(_0x98c0('0x16'));var config=require(_0x98c0('0x17'));var licenseUtil=require(_0x98c0('0x18'));var db=require(_0x98c0('0x19'))['db'];config['redis']=_[_0x98c0('0x1a')](config[_0x98c0('0x1b')],{'host':_0x98c0('0x1c'),'port':0x18eb});var socket=require(_0x98c0('0x1d'))(new Redis(config['redis']));require(_0x98c0('0x1e'))[_0x98c0('0x1f')](socket);function respondWithStatusCode(_0x5d1e74,_0x427d10){_0x427d10=_0x427d10||0xcc;return function(_0x4f0794){if(_0x4f0794){return _0x5d1e74[_0x98c0('0x20')](_0x427d10);}return _0x5d1e74[_0x98c0('0x21')](_0x427d10)['end']();};}function respondWithResult(_0x3d56a3,_0x19632c){_0x19632c=_0x19632c||0xc8;return function(_0x401e74){if(_0x401e74){return _0x3d56a3[_0x98c0('0x21')](_0x19632c)[_0x98c0('0x22')](_0x401e74);}};}function respondWithFilteredResult(_0x248b60,_0x488efe){return function(_0x36a1b3){if(_0x36a1b3){var _0x126eb8=typeof _0x488efe['offset']===_0x98c0('0x23')&&typeof _0x488efe['limit']===_0x98c0('0x23');var _0x39dcd2=_0x36a1b3[_0x98c0('0x24')];var _0x4584e8=_0x126eb8?0x0:_0x488efe['offset'];var _0x133d4a=_0x126eb8?_0x36a1b3['count']:_0x488efe[_0x98c0('0x25')]+_0x488efe[_0x98c0('0x26')];var _0x22202c;if(_0x133d4a>=_0x39dcd2){_0x133d4a=_0x39dcd2;_0x22202c=0xc8;}else{_0x22202c=0xce;}_0x248b60[_0x98c0('0x21')](_0x22202c);return _0x248b60[_0x98c0('0x27')](_0x98c0('0x28'),_0x4584e8+'-'+_0x133d4a+'/'+_0x39dcd2)[_0x98c0('0x22')](_0x36a1b3);}return null;};}function patchUpdates(_0x395c8b){return function(_0x58fa35){try{jsonpatch['apply'](_0x58fa35,_0x395c8b,!![]);}catch(_0x19b963){return BPromise['reject'](_0x19b963);}return _0x58fa35[_0x98c0('0x29')]();};}function saveUpdates(_0x5a9639,_0x4235d0){return function(_0x35ff79){if(_0x35ff79){return _0x35ff79[_0x98c0('0x2a')](_0x5a9639)[_0x98c0('0x2b')](function(_0x3b1c43){return _0x3b1c43;});}return null;};}function removeEntity(_0x318ea5,_0x2990fb){return function(_0x1a6d24){if(_0x1a6d24){return _0x1a6d24['destroy']()[_0x98c0('0x2b')](function(){_0x318ea5[_0x98c0('0x21')](0xcc)[_0x98c0('0x2c')]();});}};}function handleEntityNotFound(_0x17a641,_0x4d6641){return function(_0x2e57ee){if(!_0x2e57ee){_0x17a641[_0x98c0('0x20')](0x194);}return _0x2e57ee;};}function handleError(_0x42e053,_0x190888){_0x190888=_0x190888||0x1f4;return function(_0x59f10b){logger[_0x98c0('0x2d')](_0x59f10b[_0x98c0('0x2e')]);if(_0x59f10b['name']){delete _0x59f10b[_0x98c0('0x2f')];}_0x42e053[_0x98c0('0x21')](_0x190888)['send'](_0x59f10b);};}function getInteractionUsers(_0x12ac17,_0x427ec4){return new BPromise(function(_0x54b211,_0x596d31){try{if(_0x427ec4[_0x12ac17['id']]){_0x12ac17[_0x98c0('0x30')]=_[_0x98c0('0x31')](_0x427ec4[_0x12ac17['id']],function(_0x257583){return{'id':_0x257583['id'],'fullname':_0x257583[_0x98c0('0x32')]};});}}catch(_0x599c32){_0x596d31(_0x599c32);}_0x54b211(_0x12ac17);});}function getInteractionTags(_0x56672f,_0x394ae9){return new BPromise(function(_0x132df6,_0x55636f){try{if(_0x56672f['TagIds']){_0x56672f['Tags']=[];_0x56672f[_0x98c0('0x33')]['split'](',')[_0x98c0('0x34')](function(_0x235a51){_0x56672f['Tags'][_0x98c0('0x35')](_0x394ae9[_0x235a51]);});}delete _0x56672f['TagIds'];}catch(_0x4db78e){_0x55636f(_0x4db78e);}_0x132df6(_0x56672f);});}function updateFaxInteraction(_0x53f44a,_0x58dd1b,_0x480304){return new BPromise(function(_0x4d3e51,_0x5e78ce){return getInteractionUsers(_0x53f44a,_0x480304)[_0x98c0('0x2b')](function(_0xaf0f21){return getInteractionTags(_0xaf0f21,_0x58dd1b);})[_0x98c0('0x2b')](function(_0x8a85cb){_0x4d3e51(_0x8a85cb);})[_0x98c0('0x36')](function(_0x118312){_0x5e78ce(_0x118312);});});}exports[_0x98c0('0x37')]=function(_0x172688,_0x149265){var _0x477e95={},_0x3be36f={},_0x5d998c={'count':0x0,'rows':[]};var _0x32dbaa=_[_0x98c0('0x31')](db[_0x98c0('0x38')][_0x98c0('0x39')],function(_0x2b9344){return{'name':_0x2b9344[_0x98c0('0x3a')],'type':_0x2b9344['type']['key']};});_0x3be36f['model']=_[_0x98c0('0x31')](_0x32dbaa,_0x98c0('0x2f'));_0x3be36f[_0x98c0('0x3b')]=_[_0x98c0('0x3c')](_0x172688[_0x98c0('0x3b')]);_0x3be36f['filters']=_[_0x98c0('0x3d')](_0x3be36f[_0x98c0('0x3e')],_0x3be36f[_0x98c0('0x3b')]);_0x477e95['attributes']=_['intersection'](_0x3be36f[_0x98c0('0x3e')],qs[_0x98c0('0x3f')](_0x172688[_0x98c0('0x3b')][_0x98c0('0x3f')]));_0x477e95[_0x98c0('0x40')]=_0x477e95[_0x98c0('0x40')][_0x98c0('0x41')]?_0x477e95[_0x98c0('0x40')]:_0x3be36f[_0x98c0('0x3e')];if(!_0x172688['query'][_0x98c0('0x42')](_0x98c0('0x43'))){_0x477e95[_0x98c0('0x26')]=qs[_0x98c0('0x26')](_0x172688[_0x98c0('0x3b')][_0x98c0('0x26')]);_0x477e95['offset']=qs[_0x98c0('0x25')](_0x172688[_0x98c0('0x3b')][_0x98c0('0x25')]);}_0x477e95[_0x98c0('0x44')]=qs[_0x98c0('0x45')](_0x172688[_0x98c0('0x3b')][_0x98c0('0x45')]);_0x477e95['where']=qs[_0x98c0('0x46')](_['pick'](_0x172688[_0x98c0('0x3b')],_0x3be36f[_0x98c0('0x46')]),_0x32dbaa);var _0x966843=[];var _0x2e4792=squel[_0x98c0('0x47')]()['field']('id')[_0x98c0('0x48')](_0x98c0('0x2f'))[_0x98c0('0x48')](_0x98c0('0x49'))[_0x98c0('0x4a')](_0x98c0('0x4b'));var _0x1b902f=squel[_0x98c0('0x47')]()[_0x98c0('0x48')](_0x98c0('0x4c'))[_0x98c0('0x48')](_0x98c0('0x4d'))[_0x98c0('0x48')](_0x98c0('0x4e'))['from'](_0x98c0('0x4f'),'ui')['left_join'](_0x98c0('0x50'),'u',_0x98c0('0x51'));var _0x59955e=squel[_0x98c0('0x47')]()[_0x98c0('0x4a')](_0x98c0('0x52'),'i')[_0x98c0('0x53')](_0x98c0('0x54'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x98c0('0x53')](_0x98c0('0x50'),'o',_0x98c0('0x55'))[_0x98c0('0x53')]('fax_accounts','a',_0x98c0('0x56'))[_0x98c0('0x53')](_0x98c0('0x57'),'me',_0x98c0('0x58'))[_0x98c0('0x53')](_0x98c0('0x59'),'it',_0x98c0('0x5a'))[_0x98c0('0x53')](_0x98c0('0x4b'),'t',_0x98c0('0x5b'));var _0xf5b361=squel[_0x98c0('0x5c')]();var _0x3d87d7=[];var _0x324a57=squel[_0x98c0('0x5c')]();var _0x5b55c4;if(_0x172688[_0x98c0('0x3b')]['search']){_0x5b55c4=as[_0x98c0('0x5d')](_0x172688[_0x98c0('0x3b')]['search']);var _0x11779d=_0x5b55c4['sqlOperator'];for(var _0x5bf2f5=0x0;_0x5bf2f5<_0x5b55c4[_0x98c0('0x5e')][_0x98c0('0x41')];_0x5bf2f5++){var _0x2840be=_0x5b55c4[_0x98c0('0x5e')][_0x5bf2f5];var _0x16bbec='i';var _0x12bb9b=_[_0x98c0('0x5f')](_0x32dbaa,[_0x98c0('0x2f'),_0x2840be[_0x98c0('0x48')]]);if(!_0x12bb9b){switch(_0x2840be['field']){case _0x98c0('0x60'):if(_0x2840be[_0x98c0('0x61')]==0x1){_0x59955e[_0x98c0('0x62')]('`'+_0x2840be[_0x98c0('0x48')]+_0x98c0('0x63'));}else{_0x59955e['having']('`'+_0x2840be['field']+_0x98c0('0x64'));}break;case _0x98c0('0x65'):if(_0x2840be[_0x98c0('0x66')]==='$substring'){if(_0x2840be[_0x98c0('0x61')][_0x98c0('0x67')]('\x20')[_0x98c0('0x41')]>0x1){_0xf5b361[_0x11779d]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x98c0('0x68')](_0x2840be[_0x98c0('0x61')]),null);}else{var _0x4471fb='%'+_0x2840be['value']+'%';_0xf5b361[_0x11779d](_0x98c0('0x69'),_0x4471fb,_0x4471fb,_0x4471fb);}}else{_0x12bb9b=_[_0x98c0('0x5f')](_0x32dbaa,[_0x98c0('0x2f'),_0x98c0('0x6a')]);_0x2840be[_0x98c0('0x48')]='ContactId';_0x48f1f4=as[_0x98c0('0x6b')](_0x16bbec,_0x12bb9b[_0x98c0('0x6c')],_0x2840be);_0xf5b361[_0x11779d](_0x48f1f4[_0x98c0('0x6d')],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x6e')],_0x48f1f4['value'][_0x98c0('0x2c')]);}break;case _0x98c0('0x6f'):var _0x14a209=_0x2840be[_0x98c0('0x61')][_0x98c0('0x67')](',')['map'](function(_0x123f03){return Number(_0x123f03);});_0x14a209['forEach'](function(_0x2a0ecd){_0x324a57['or'](_0x98c0('0x70'),'%,'+_0x2a0ecd+',%');});_0x3d87d7=_[_0x98c0('0x71')](_0x3d87d7,_0x14a209);break;case'User':if(_0x2840be[_0x98c0('0x66')]===_0x98c0('0x72')){_0xf5b361[_0x11779d](_0x98c0('0x73'),'%'+_0x2840be['value']+'%',null);}else{_0x12bb9b=_[_0x98c0('0x5f')](_0x32dbaa,[_0x98c0('0x2f'),'UserId']);_0x2840be[_0x98c0('0x48')]=_0x98c0('0x74');_0x48f1f4=as[_0x98c0('0x6b')](_0x16bbec,_0x12bb9b['type'],_0x2840be);_0xf5b361[_0x11779d](_0x48f1f4[_0x98c0('0x6d')],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x6e')],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x2c')]);}break;case'body':_0x48f1f4=as[_0x98c0('0x6b')]('me',null,_0x2840be);_0xf5b361[_0x11779d](_0x48f1f4['text'],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x6e')],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x2c')]);break;}}else{var _0x48f1f4=as['buildExpression'](_0x16bbec,_0x12bb9b[_0x98c0('0x6c')],_0x2840be);_0xf5b361[_0x11779d](_0x48f1f4[_0x98c0('0x6d')],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x6e')],_0x48f1f4[_0x98c0('0x61')][_0x98c0('0x2c')]);}}}else{var _0x1635c0=_(_0x172688[_0x98c0('0x3b')])['keys']()[_0x98c0('0x31')](function(_0x5c084b){return _[_0x98c0('0x75')](_0x32dbaa,[_0x98c0('0x2f'),_0x5c084b])?_0x5c084b:undefined;})['compact']()['value']();if(!_['isEmpty'](_0x1635c0)){_0x1635c0[_0x98c0('0x34')](function(_0x1c8e03){if(_0x1c8e03===_0x98c0('0x76')){_0x59955e['where'](_0x98c0('0x77'),[][_0x98c0('0x78')](_0x172688[_0x98c0('0x3b')][_0x1c8e03]));}else if(_0x1c8e03===_0x98c0('0x79')){var _0x2b0c6b=JSON[_0x98c0('0x7a')](_0x172688[_0x98c0('0x3b')][_0x1c8e03])[_0x98c0('0x7b')];var _0x3cf5d0=JSON[_0x98c0('0x7a')](_0x172688[_0x98c0('0x3b')][_0x1c8e03])[_0x98c0('0x7c')];_0x59955e['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2b0c6b,_0x3cf5d0);}else{if(_0x172688[_0x98c0('0x3b')][_0x1c8e03]===_0x98c0('0x7d')){_0x59955e[_0x98c0('0x7e')]('i.'+_0x1c8e03+_0x98c0('0x7f'));}else{_0x59955e['where']('i.'+_0x1c8e03+'\x20=\x20?',_0x172688['query'][_0x1c8e03]);}}});}if(_0x172688[_0x98c0('0x3b')]['read']){if(_0x172688['query']['read']==0x1){_0x59955e[_0x98c0('0x62')](_0x98c0('0x80'));}else{_0x59955e['having'](_0x98c0('0x81'));}}if(_0x172688[_0x98c0('0x3b')][_0x98c0('0x82')]){_0x3d87d7=_[_0x98c0('0x83')](_0x172688[_0x98c0('0x3b')][_0x98c0('0x82')])?_0x172688[_0x98c0('0x3b')][_0x98c0('0x82')]:new Array(_0x172688[_0x98c0('0x3b')][_0x98c0('0x82')]);_0x3d87d7[_0x98c0('0x34')](function(_0x5ab77a){_0x324a57['or'](_0x98c0('0x70'),'%,'+_0x5ab77a+',%');});}if(_0x172688[_0x98c0('0x3b')]['filter']){var _0x39d934=_0x172688[_0x98c0('0x3b')][_0x98c0('0x84')]['replace']('\x5c','\x5c\x5c')[_0x98c0('0x85')](/'/g,'\x27\x27');if(qs[_0x98c0('0x86')](_0x39d934)){_0xf5b361['or'](_0x98c0('0x87'),_0x39d934+'%')['or'](_0x98c0('0x88'),_0x39d934+'%');}_0xf5b361['or'](_0x98c0('0x89'),_0x39d934+'%');}}_0x59955e[_0x98c0('0x7e')](_0xf5b361);_0x59955e[_0x98c0('0x8a')](_0x98c0('0x8b'));var _0x3ceb25={'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]};var _0x11ef0f=_0x59955e[_0x98c0('0x8c')]();_0x11ef0f[_0x98c0('0x48')](_0x98c0('0x8b'));_0x11ef0f['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x98c0('0x60'));if(_0x477e95[_0x98c0('0x44')]){_0x477e95['order'][_0x98c0('0x34')](function(_0x569d20){var _0x5e17cc=_0x569d20[0x0]===_0x98c0('0x8d')?_0x569d20[0x0]:'i.'+_0x569d20[0x0];_0x59955e[_0x98c0('0x44')](_0x5e17cc,_0x569d20[0x1]===_0x98c0('0x8e')?![]:!![]);});}if(!_[_0x98c0('0x8f')](_0x3d87d7)){_0x59955e['having'](_0x324a57);_0x11ef0f['where'](_0x98c0('0x90'),_0x3d87d7);}BPromise[_0x98c0('0x91')]()[_0x98c0('0x2b')](function(){if(!_0x5b55c4){if(_0x172688['query']['FaxAccountId'])return;_0x11ef0f['where'](_0x98c0('0x92'));_0x59955e[_0x98c0('0x7e')](_0x98c0('0x92'));return;}if(_0x172688[_0x98c0('0x93')]['role']!==_0x98c0('0x94'))return;return _0x172688['user']['getFaxAccounts']({'attributes':['id'],'raw':!![]})[_0x98c0('0x2b')](function(_0x3891bb){if(_[_0x98c0('0x8f')](_0x3891bb)){_0x11ef0f[_0x98c0('0x7e')](_0x98c0('0x95'));_0x59955e[_0x98c0('0x7e')](_0x98c0('0x95'));}else{_0x11ef0f['where'](_0x98c0('0x77'),_[_0x98c0('0x31')](_0x3891bb,'id'));_0x59955e['where'](_0x98c0('0x77'),_[_0x98c0('0x31')](_0x3891bb,'id'));}});})[_0x98c0('0x2b')](function(){if(_0x172688['user'][_0x98c0('0x96')]===_0x98c0('0x94')&&!_0x5b55c4&&!_0x172688[_0x98c0('0x3b')][_0x98c0('0x76')])return[];return db['sequelize'][_0x98c0('0x3b')](_0x11ef0f[_0x98c0('0x97')](),_0x3ceb25);})[_0x98c0('0x2b')](function(_0xffe3ff){_0x5d998c[_0x98c0('0x24')]=_0xffe3ff['length'];if(_0x5d998c[_0x98c0('0x24')]===0x0)return[];return db[_0x98c0('0x98')][_0x98c0('0x3b')](_0x2e4792[_0x98c0('0x97')](),_0x3ceb25)[_0x98c0('0x2b')](function(_0x10c6a2){_0x966843=_['keyBy'](_0x10c6a2,'id');_0x3ceb25=_[_0x98c0('0x99')](_0x3ceb25,{'model':db[_0x98c0('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x172688[_0x98c0('0x3b')][_0x98c0('0x3f')]){_0x477e95['attributes'][_0x98c0('0x34')](function(_0x398d1a){_0x59955e[_0x98c0('0x48')]('i.'+_0x398d1a);});}else{_0x59955e[_0x98c0('0x48')](_0x98c0('0x9a'),_0x98c0('0x60'));_0x59955e[_0x98c0('0x48')](_0x98c0('0x9b'),_0x98c0('0x9c'));_0x59955e[_0x98c0('0x48')](_0x98c0('0x9d'),_0x98c0('0x9e'));_0x59955e[_0x98c0('0x48')](_0x98c0('0x9f'),_0x98c0('0x8d'));_0x59955e[_0x98c0('0x48')]('i.*');_0x59955e['field']('c.firstName',_0x98c0('0xa0'));_0x59955e[_0x98c0('0x48')]('c.lastName',_0x98c0('0xa1'));_0x59955e[_0x98c0('0x48')](_0x98c0('0xa2'),_0x98c0('0xa3'));_0x59955e[_0x98c0('0x48')](_0x98c0('0xa4'),'Contact.phone');_0x59955e['field'](_0x98c0('0xa5'),_0x98c0('0xa6'));_0x59955e[_0x98c0('0x48')](_0x98c0('0xa7'),_0x98c0('0xa8'));_0x59955e[_0x98c0('0x48')]('o.fullname',_0x98c0('0xa9'));_0x59955e[_0x98c0('0x48')](_0x98c0('0xaa'),_0x98c0('0xab'));_0x59955e[_0x98c0('0x48')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x98c0('0x33'));}if(_0x477e95[_0x98c0('0x26')])_0x59955e[_0x98c0('0x26')](_0x477e95[_0x98c0('0x26')]);if(_0x477e95[_0x98c0('0x25')])_0x59955e[_0x98c0('0x25')](_0x477e95[_0x98c0('0x25')]);return db[_0x98c0('0x98')][_0x98c0('0x3b')](_0x59955e[_0x98c0('0x97')](),_0x3ceb25);})[_0x98c0('0x2b')](function(_0x511355){if(_0x511355['length']>0x0)_0x1b902f[_0x98c0('0x7e')](_0x98c0('0xac'),_[_0x98c0('0x31')](_0x511355,'id'));return db[_0x98c0('0x98')]['query'](_0x1b902f[_0x98c0('0x97')](),_0x3ceb25)['then'](function(_0x423c69){var _0x4cb980=_[_0x98c0('0xad')](_0x423c69,_0x98c0('0xae'));var _0x362945=[];_0x511355[_0x98c0('0x34')](function(_0xada2ef){_0x362945[_0x98c0('0x35')](updateFaxInteraction(_0xada2ef,_0x966843,_0x4cb980));});return BPromise[_0x98c0('0xaf')](_0x362945);});});})[_0x98c0('0x2b')](function(_0x3593c0){_0x5d998c[_0x98c0('0xb0')]=_0x3593c0;return _0x5d998c;})[_0x98c0('0x2b')](respondWithFilteredResult(_0x149265,_0x477e95))[_0x98c0('0x36')](handleError(_0x149265,null));};exports[_0x98c0('0xb1')]=function(_0x4381c7,_0x527f7d){var _0x9317f6={'raw':![],'where':{'id':_0x4381c7[_0x98c0('0xb2')]['id']}},_0x4b2cae={};_0x4b2cae[_0x98c0('0x3e')]=_[_0x98c0('0x3c')](db[_0x98c0('0x38')]['rawAttributes']);_0x4b2cae[_0x98c0('0x3b')]=_[_0x98c0('0x3c')](_0x4381c7[_0x98c0('0x3b')]);_0x4b2cae[_0x98c0('0x46')]=_[_0x98c0('0x3d')](_0x4b2cae[_0x98c0('0x3e')],_0x4b2cae[_0x98c0('0x3b')]);_0x9317f6[_0x98c0('0x40')]=_[_0x98c0('0x3d')](_0x4b2cae[_0x98c0('0x3e')],qs['fields'](_0x4381c7[_0x98c0('0x3b')][_0x98c0('0x3f')]));_0x9317f6['attributes']=_0x9317f6[_0x98c0('0x40')][_0x98c0('0x41')]?_0x9317f6['attributes']:_0x4b2cae[_0x98c0('0x3e')];if(_0x4381c7['query'][_0x98c0('0xb3')]){_0x9317f6[_0x98c0('0xb4')]=[{'all':!![]}];}_0x9317f6=_[_0x98c0('0x99')]({},_0x9317f6,_0x4381c7[_0x98c0('0xb5')]);return db['FaxInteraction'][_0x98c0('0x5f')](_0x9317f6)[_0x98c0('0x2b')](handleEntityNotFound(_0x527f7d,null))['then'](respondWithResult(_0x527f7d,null))[_0x98c0('0x36')](handleError(_0x527f7d,null));};exports[_0x98c0('0xb6')]=function(_0x103ec5,_0x2fad6d){return db['FaxInteraction']['create'](_0x103ec5['body'],{})[_0x98c0('0x2b')](respondWithResult(_0x2fad6d,0xc9))[_0x98c0('0x36')](handleError(_0x2fad6d,null));};exports[_0x98c0('0x2a')]=function(_0x41f351,_0x4a5a2f){if(_0x41f351[_0x98c0('0xb7')]['id']){delete _0x41f351[_0x98c0('0xb7')]['id'];}return db[_0x98c0('0x38')][_0x98c0('0x5f')]({'where':{'id':_0x41f351[_0x98c0('0xb2')]['id']}})[_0x98c0('0x2b')](handleEntityNotFound(_0x4a5a2f,null))[_0x98c0('0x2b')](saveUpdates(_0x41f351[_0x98c0('0xb7')],null))[_0x98c0('0x2b')](respondWithResult(_0x4a5a2f,null))['catch'](handleError(_0x4a5a2f,null));};exports['destroy']=function(_0x5714ef,_0xaa65bf){return db[_0x98c0('0x38')][_0x98c0('0x5f')]({'where':{'id':_0x5714ef[_0x98c0('0xb2')]['id']}})[_0x98c0('0x2b')](handleEntityNotFound(_0xaa65bf,null))['then'](removeEntity(_0xaa65bf,null))['catch'](handleError(_0xaa65bf,null));};exports[_0x98c0('0xb8')]=function(_0x3936ce,_0x2dfff3){return db['FaxInteraction'][_0x98c0('0xb8')]()[_0x98c0('0x2b')](respondWithResult(_0x2dfff3,null))[_0x98c0('0x36')](handleError(_0x2dfff3,null));};exports[_0x98c0('0xb9')]=function(_0x1c2ab8,_0x5265b7,_0x23b14b){return db[_0x98c0('0xba')][_0x98c0('0x5f')]({'where':{'id':_0x1c2ab8[_0x98c0('0xb2')]['id']}})[_0x98c0('0x2b')](handleEntityNotFound(_0x5265b7,null))[_0x98c0('0x2b')](function(_0x4ad8e4){if(_0x4ad8e4){return _0x4ad8e4[_0x98c0('0xb9')](_0x1c2ab8[_0x98c0('0xb7')][_0x98c0('0xbb')],_[_0x98c0('0xbc')](_0x1c2ab8['body'],[_0x98c0('0xbb'),'id'])||{});}})[_0x98c0('0x2b')](respondWithResult(_0x5265b7,null))[_0x98c0('0x36')](handleError(_0x5265b7,null));};exports[_0x98c0('0xbd')]=function(_0x26fe1b,_0x5608eb,_0x52bb65){var _0x179c1f={'raw':![],'where':{}};var _0x1bb3da={};var _0x185e83={'count':0x0,'rows':[]};return db[_0x98c0('0x38')][_0x98c0('0xbe')]({'where':{'id':_0x26fe1b[_0x98c0('0xb2')]['id']}})[_0x98c0('0x2b')](handleEntityNotFound(_0x5608eb,null))[_0x98c0('0x2b')](function(_0x88adfe){if(_0x88adfe){_0x1bb3da[_0x98c0('0x3e')]=_[_0x98c0('0x3c')](db['FaxMessage'][_0x98c0('0x39')]);_0x1bb3da['query']=_[_0x98c0('0x3c')](_0x26fe1b['query']);_0x1bb3da[_0x98c0('0x46')]=_[_0x98c0('0x3d')](_0x1bb3da[_0x98c0('0x3e')],_0x1bb3da[_0x98c0('0x3b')]);_0x179c1f[_0x98c0('0x40')]=_['intersection'](_0x1bb3da['model'],qs[_0x98c0('0x3f')](_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0x3f')]));_0x179c1f[_0x98c0('0x40')]=_0x179c1f[_0x98c0('0x40')][_0x98c0('0x41')]?_0x179c1f[_0x98c0('0x40')]:_0x1bb3da['model'];if(!_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0x42')](_0x98c0('0x43'))){_0x179c1f['limit']=qs[_0x98c0('0x26')](_0x26fe1b['query'][_0x98c0('0x26')]);_0x179c1f[_0x98c0('0x25')]=qs[_0x98c0('0x25')](_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0x25')]);}_0x179c1f[_0x98c0('0x44')]=qs['sort'](_0x26fe1b[_0x98c0('0x3b')]['sort']);_0x179c1f[_0x98c0('0x7e')]=qs[_0x98c0('0x46')](_[_0x98c0('0xbf')](_0x26fe1b[_0x98c0('0x3b')],_0x1bb3da[_0x98c0('0x46')]));_0x179c1f[_0x98c0('0x7e')][_0x98c0('0xae')]=_0x88adfe['id'];if(_0x26fe1b[_0x98c0('0x3b')]['filter']){_0x179c1f[_0x98c0('0x7e')]=_[_0x98c0('0x99')](_0x179c1f[_0x98c0('0x7e')],{'$or':_[_0x98c0('0x31')](_0x179c1f[_0x98c0('0x40')],function(_0x1ed82a){var _0x38982d={};_0x38982d[_0x1ed82a]={'$like':'%'+_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0x84')]+'%'};return _0x38982d;})});}if(_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0x7b')]){var _0x38fa80=_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0x7b')][_0x98c0('0x67')](',');var _0x470be4={};_0x470be4[_0x38fa80[0x0]]={'$gte':moment(_0x38fa80[0x1])[_0x98c0('0xc0')](_0x98c0('0xc1'))};_0x179c1f[_0x98c0('0x7e')]=_[_0x98c0('0x99')](_0x179c1f['where'],_0x470be4);}_0x179c1f=_[_0x98c0('0x99')]({},_0x179c1f,_0x26fe1b[_0x98c0('0xb5')]);return db[_0x98c0('0xba')]['count']({'where':_0x179c1f[_0x98c0('0x7e')]})[_0x98c0('0x2b')](function(_0x78c80c){_0x185e83[_0x98c0('0x24')]=_0x78c80c;if(_0x26fe1b[_0x98c0('0x3b')][_0x98c0('0xb3')]){_0x179c1f[_0x98c0('0xb4')]=[{'all':!![]}];}return db['FaxMessage'][_0x98c0('0xc2')](_0x179c1f);})[_0x98c0('0x2b')](function(_0x4fcfa3){_0x185e83[_0x98c0('0xb0')]=_0x4fcfa3;return _0x185e83;});}})[_0x98c0('0x2b')](respondWithFilteredResult(_0x5608eb,_0x179c1f))[_0x98c0('0x36')](handleError(_0x5608eb,null));};exports[_0x98c0('0xc3')]=function(_0x3be80a,_0x2e0504,_0x199da9){return db[_0x98c0('0x38')]['find']({'where':{'id':_0x3be80a[_0x98c0('0xb2')]['id']}})[_0x98c0('0x2b')](handleEntityNotFound(_0x2e0504,null))[_0x98c0('0x2b')](function(_0x157daa){if(_0x157daa){return _0x157daa['setTags'](_0x3be80a[_0x98c0('0xb7')][_0x98c0('0xbb')],_[_0x98c0('0xbc')](_0x3be80a['body'],[_0x98c0('0xbb'),'id'])||{})['spread'](function(){return db[_0x98c0('0x6f')]['findAll']({'attributes':['id',_0x98c0('0x2f'),'color'],'where':{'id':_0x3be80a[_0x98c0('0xb7')]['ids']}});})[_0x98c0('0x2b')](function(_0x3d21b7){socket['emit'](_0x98c0('0xc4'),{'id':Number(_0x3be80a['params']['id']),'tags':_0x3d21b7||[]});return{'id':Number(_0x3be80a[_0x98c0('0xb2')]['id']),'tags':_0x3d21b7||[]};});}})[_0x98c0('0x2b')](respondWithResult(_0x2e0504,null))[_0x98c0('0x36')](handleError(_0x2e0504,null));};exports[_0x98c0('0xc5')]=function(_0x814f0a,_0x30cd8a,_0x4847f4){return db['FaxInteraction'][_0x98c0('0x5f')]({'where':{'id':_0x814f0a[_0x98c0('0xb2')]['id']}})[_0x98c0('0x2b')](handleEntityNotFound(_0x30cd8a,null))[_0x98c0('0x2b')](function(_0x5042c6){if(_0x5042c6){return _0x5042c6[_0x98c0('0xc5')](_0x814f0a['query'][_0x98c0('0xbb')]);}})[_0x98c0('0x2b')](respondWithStatusCode(_0x30cd8a,null))[_0x98c0('0x36')](handleError(_0x30cd8a,null));};exports[_0x98c0('0xc6')]=function(_0x97e6d9,_0x193d58){var _0x345056=moment()['unix']()[_0x98c0('0x97')]();var _0x2bf083=path[_0x98c0('0xc7')](config[_0x98c0('0xc8')],_0x98c0('0xc9'),'files',_0x98c0('0xca'));var _0x105785=path[_0x98c0('0xc7')](config[_0x98c0('0xc8')],_0x98c0('0xc9'),_0x98c0('0xcb'),_0x98c0('0xcc'));var _0x5a283c=path[_0x98c0('0xc7')](_0x2bf083,_0x345056);var _0x36d03a=util[_0x98c0('0xc0')](_0x98c0('0xcd'),_0x97e6d9[_0x98c0('0xb2')]['id'],_0x345056);var _0x14c10d=path['join'](_0x2bf083,_0x36d03a);var _0x557318=[];_0x557318[_0x98c0('0x35')]({'model':db[_0x98c0('0xce')],'as':_0x98c0('0xce'),'raw':!![]});var _0x117427=[{'model':db['FaxMessage'],'as':'Messages','attributes':['id',_0x98c0('0xb7'),_0x98c0('0x79')],'include':_0x557318}];return db['FaxInteraction'][_0x98c0('0x5f')]({'where':{'id':_0x97e6d9['params']['id']},'include':_0x117427})[_0x98c0('0x2b')](handleEntityNotFound(_0x193d58,null))[_0x98c0('0x2b')](function(_0x2ca73d){if(_0x2ca73d&&_0x2ca73d[_0x98c0('0xcf')]){var _0x4946f2=_0x2ca73d[_0x98c0('0xd0')]({'plain':!![]});fs[_0x98c0('0xd1')](_0x5a283c);for(var _0x28683d=0x0;_0x28683d<_0x4946f2[_0x98c0('0xcf')]['length'];_0x28683d++){var _0xaa53c5=_0x4946f2[_0x98c0('0xcf')][_0x28683d][_0x98c0('0xce')];if(_0xaa53c5){var _0xf3209c=path[_0x98c0('0xc7')](_0x105785,_0xaa53c5[_0x98c0('0xd2')]);if(fs[_0x98c0('0xd3')](_0xf3209c)){fs[_0x98c0('0xd4')](_0xf3209c)[_0x98c0('0xd5')](fs[_0x98c0('0xd6')](path['join'](_0x5a283c,_0xaa53c5[_0x98c0('0xd2')])));}}}return BPromise[_0x98c0('0x91')]()[_0x98c0('0x2b')](function(){return new BPromise(function(_0x49c72d,_0x4fd93e){zipdir(_0x5a283c,{'saveTo':_0x14c10d},function(_0x50c612,_0x51a94a){if(_0x50c612)return _0x4fd93e(_0x50c612);return _0x49c72d(_0x51a94a);});})[_0x98c0('0x2b')](function(){return new BPromise(function(_0x447eed,_0x1e1f9f){rimraf(_0x5a283c,function(_0x16e64a){if(_0x16e64a)_0x1e1f9f(_0x16e64a);return _0x447eed();});});})[_0x98c0('0x2b')](function(){return _0x193d58[_0x98c0('0xc6')](_0x14c10d,_0x36d03a,function(_0x29fcc9){if(_0x29fcc9){console[_0x98c0('0xd7')]('err',_0x29fcc9);}else{fs[_0x98c0('0xd8')](_0x14c10d);}});});});}else{return _0x193d58[_0x98c0('0x20')](0xc8);}})[_0x98c0('0x36')](handleError(_0x193d58,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88c5=['../../mysqldb','FaxMessage','setMaxListeners','save','remove','then','Users','findAll','unreadMessages','length','emit','catch','hook','events','FaxInteraction'];(function(_0xced656,_0x435ec2){var _0x102fe2=function(_0x365211){while(--_0x365211){_0xced656['push'](_0xced656['shift']());}};_0x102fe2(++_0x435ec2);}(_0x88c5,0x67));var _0x588c=function(_0x1ae5ab,_0xc5d441){_0x1ae5ab=_0x1ae5ab-0x0;var _0x1ce001=_0x88c5[_0x1ae5ab];return _0x1ce001;};'use strict';var EventEmitter=require(_0x588c('0x0'));var FaxInteraction=require('../../mysqldb')['db'][_0x588c('0x1')];var FaxMessage=require(_0x588c('0x2'))['db'][_0x588c('0x3')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x588c('0x4')](0x0);var events={'afterCreate':_0x588c('0x5'),'afterUpdate':'update','afterDestroy':_0x588c('0x6')};function emitEvent(_0x3a2faf){return function(_0x3e78b2,_0x3e2cc5,_0x1ae183){_0x3e78b2['getUsers']({'attributes':['id'],'raw':!![]})[_0x588c('0x7')](function(_0x24a1bf){_0x3e78b2['setDataValue'](_0x588c('0x8'),_0x24a1bf['map'](function(_0x56bfb8){return{'id':_0x56bfb8['id']};}));return FaxMessage[_0x588c('0x9')]({'where':{'FaxInteractionId':_0x3e78b2['id'],'direction':'in','read':![]},'raw':!![]});})[_0x588c('0x7')](function(_0x4ff5d8){_0x3e78b2['setDataValue'](_0x588c('0xa'),_0x4ff5d8[_0x588c('0xb')]);FaxInteractionEvents[_0x588c('0xc')](_0x3a2faf+':'+_0x3e78b2['id'],_0x3e78b2);FaxInteractionEvents[_0x588c('0xc')](_0x3a2faf,_0x3e78b2);_0x1ae183(null);})[_0x588c('0xd')](_0x1ae183(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction[_0x588c('0xe')](e,emitEvent(event));}}module['exports']=FaxInteractionEvents;
\ No newline at end of file
+var _0xfeb2=['save','update','remove','then','setDataValue','Users','map','unreadMessages','length','emit','hasOwnProperty','hook','exports','../../mysqldb','FaxInteraction','FaxMessage'];(function(_0x20cae6,_0x893116){var _0x2fb00e=function(_0x2ed5a0){while(--_0x2ed5a0){_0x20cae6['push'](_0x20cae6['shift']());}};_0x2fb00e(++_0x893116);}(_0xfeb2,0xdd));var _0x2feb=function(_0x56608c,_0x29eb74){_0x56608c=_0x56608c-0x0;var _0x3c7fb0=_0xfeb2[_0x56608c];return _0x3c7fb0;};'use strict';var EventEmitter=require('events');var FaxInteraction=require(_0x2feb('0x0'))['db'][_0x2feb('0x1')];var FaxMessage=require(_0x2feb('0x0'))['db'][_0x2feb('0x2')];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2feb('0x3'),'afterUpdate':_0x2feb('0x4'),'afterDestroy':_0x2feb('0x5')};function emitEvent(_0x453de0){return function(_0x1d8606,_0x25d86c,_0x24fa24){_0x1d8606['getUsers']({'attributes':['id'],'raw':!![]})[_0x2feb('0x6')](function(_0x324a35){_0x1d8606[_0x2feb('0x7')](_0x2feb('0x8'),_0x324a35[_0x2feb('0x9')](function(_0x2cc38e){return{'id':_0x2cc38e['id']};}));return FaxMessage['findAll']({'where':{'FaxInteractionId':_0x1d8606['id'],'direction':'in','read':![]},'raw':!![]});})[_0x2feb('0x6')](function(_0x111b9f){_0x1d8606[_0x2feb('0x7')](_0x2feb('0xa'),_0x111b9f[_0x2feb('0xb')]);FaxInteractionEvents[_0x2feb('0xc')](_0x453de0+':'+_0x1d8606['id'],_0x1d8606);FaxInteractionEvents[_0x2feb('0xc')](_0x453de0,_0x1d8606);_0x24fa24(null);})['catch'](_0x24fa24(null));};}for(var e in events){if(events[_0x2feb('0xd')](e)){var event=events[e];FaxInteraction[_0x2feb('0xe')](e,emitEvent(event));}}module[_0x2feb('0xf')]=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9627=['closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','../../config/logger','api','moment','bluebird','path','./faxInteraction.attributes','exports','define','fax_interactions','changed','closed'];(function(_0x3ffadf,_0x47c3b1){var _0x46223d=function(_0x1a3ddd){while(--_0x1a3ddd){_0x3ffadf['push'](_0x3ffadf['shift']());}};_0x46223d(++_0x47c3b1);}(_0x9627,0x8a));var _0x7962=function(_0x25e7cb,_0x3579b7){_0x25e7cb=_0x25e7cb-0x0;var _0x375d92=_0x9627[_0x25e7cb];return _0x375d92;};'use strict';var _=require(_0x7962('0x0'));var util=require('util');var logger=require(_0x7962('0x1'))(_0x7962('0x2'));var moment=require(_0x7962('0x3'));var BPromise=require(_0x7962('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7962('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x7962('0x6'));module[_0x7962('0x7')]=function(_0x13a5b7,_0x10e060){return _0x13a5b7[_0x7962('0x8')]('FaxInteraction',attributes,{'tableName':_0x7962('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x1446d1,_0x27072f,_0x4309c8){if(_0x1446d1[_0x7962('0xa')](_0x7962('0xb'))){_0x1446d1[_0x7962('0xc')]=moment()[_0x7962('0xd')](_0x7962('0xe'));}_0x4309c8(null,_0x1446d1);}}});};
\ No newline at end of file
+var _0x3a90=['changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./faxInteraction.attributes','exports','FaxInteraction','fax_interactions'];(function(_0x589aee,_0x140a03){var _0x2f5ed4=function(_0x3d224f){while(--_0x3d224f){_0x589aee['push'](_0x589aee['shift']());}};_0x2f5ed4(++_0x140a03);}(_0x3a90,0x1f2));var _0x03a9=function(_0x33299b,_0x43437a){_0x33299b=_0x33299b-0x0;var _0x2df205=_0x3a90[_0x33299b];return _0x2df205;};'use strict';var _=require(_0x03a9('0x0'));var util=require('util');var logger=require(_0x03a9('0x1'))(_0x03a9('0x2'));var moment=require(_0x03a9('0x3'));var BPromise=require(_0x03a9('0x4'));var rp=require(_0x03a9('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x03a9('0x6'));var config=require(_0x03a9('0x7'));var attributes=require(_0x03a9('0x8'));module[_0x03a9('0x9')]=function(_0x38f21a,_0x50acb6){return _0x38f21a['define'](_0x03a9('0xa'),attributes,{'tableName':_0x03a9('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x1c99e3,_0x17d87d,_0x5e493c){if(_0x1c99e3[_0x03a9('0xc')](_0x03a9('0xd'))){_0x1c99e3[_0x03a9('0xe')]=moment()[_0x03a9('0xf')](_0x03a9('0x10'));}_0x5e493c(null,_0x1c99e3);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f4b=['moment','bluebird','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./faxInteraction.socket','register','then','info','FaxInteraction,\x20%s,\x20%s','request\x20sent','debug','FaxInteraction,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','UpdateFaxInteraction','FaxInteraction','update','body','options','where','attributes','stringify','AddTagsToFaxInteraction','find','addTags','ids','omit','AddTags','lodash','util'];(function(_0x507965,_0x4944f4){var _0x3608fc=function(_0x14c8d0){while(--_0x14c8d0){_0x507965['push'](_0x507965['shift']());}};_0x3608fc(++_0x4944f4);}(_0x1f4b,0xc6));var _0xb1f4=function(_0x3aec43,_0x1b69b6){_0x3aec43=_0x3aec43-0x0;var _0x49b1ac=_0x1f4b[_0x3aec43];return _0x49b1ac;};'use strict';var _=require(_0xb1f4('0x0'));var util=require(_0xb1f4('0x1'));var moment=require(_0xb1f4('0x2'));var BPromise=require(_0xb1f4('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xb1f4('0x4'))(_0xb1f4('0x5'));var config=require(_0xb1f4('0x6'));var jayson=require(_0xb1f4('0x7'));var client=jayson[_0xb1f4('0x8')][_0xb1f4('0x9')]({'port':0x232a});config[_0xb1f4('0xa')]=_[_0xb1f4('0xb')](config[_0xb1f4('0xa')],{'host':_0xb1f4('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb1f4('0xa')]));require(_0xb1f4('0xd'))[_0xb1f4('0xe')](socket);function respondWithRpcPromise(_0x152fa1,_0x3ba13c,_0x5c83fb){return new BPromise(function(_0x578830,_0xa542c5){return client['request'](_0x152fa1,_0x5c83fb)[_0xb1f4('0xf')](function(_0x3087d9){logger[_0xb1f4('0x10')](_0xb1f4('0x11'),_0x3ba13c,_0xb1f4('0x12'));logger[_0xb1f4('0x13')](_0xb1f4('0x14'),_0x3ba13c,_0xb1f4('0x12'),JSON['stringify'](_0x3087d9));if(_0x3087d9['error']){if(_0x3087d9[_0xb1f4('0x15')][_0xb1f4('0x16')]===0x1f4){logger[_0xb1f4('0x15')](_0xb1f4('0x11'),_0x3ba13c,_0x3087d9[_0xb1f4('0x15')][_0xb1f4('0x17')]);return _0xa542c5(_0x3087d9[_0xb1f4('0x15')]['message']);}logger['error'](_0xb1f4('0x11'),_0x3ba13c,_0x3087d9[_0xb1f4('0x15')]['message']);return _0x578830(_0x3087d9['error'][_0xb1f4('0x17')]);}else{logger[_0xb1f4('0x10')]('FaxInteraction,\x20%s,\x20%s',_0x3ba13c,_0xb1f4('0x12'));_0x578830(_0x3087d9[_0xb1f4('0x18')][_0xb1f4('0x17')]);}})[_0xb1f4('0x19')](function(_0x258c6e){logger['error'](_0xb1f4('0x11'),_0x3ba13c,_0x258c6e);_0xa542c5(_0x258c6e);});});}exports[_0xb1f4('0x1a')]=function(_0x23f55a){var _0x4456fc=this;return new Promise(function(_0x30c935,_0x2875da){return db[_0xb1f4('0x1b')][_0xb1f4('0x1c')](_0x23f55a[_0xb1f4('0x1d')],{'raw':_0x23f55a['options']?_0x23f55a[_0xb1f4('0x1e')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x23f55a[_0xb1f4('0x1e')]?_0x23f55a[_0xb1f4('0x1e')][_0xb1f4('0x1f')]||null:null,'attributes':_0x23f55a[_0xb1f4('0x1e')]?_0x23f55a[_0xb1f4('0x1e')][_0xb1f4('0x20')]||null:null,'limit':_0x23f55a[_0xb1f4('0x1e')]?_0x23f55a[_0xb1f4('0x1e')]['limit']||null:null})[_0xb1f4('0xf')](function(_0x2013ee){logger[_0xb1f4('0x10')](_0xb1f4('0x1a'),_0x23f55a);logger[_0xb1f4('0x13')](_0xb1f4('0x1a'),_0x23f55a,JSON[_0xb1f4('0x21')](_0x2013ee));_0x30c935(_0x2013ee);})['catch'](function(_0x19c860){logger['error'](_0xb1f4('0x1a'),_0x19c860[_0xb1f4('0x17')],_0x23f55a);_0x2875da(_0x4456fc[_0xb1f4('0x15')](0x1f4,_0x19c860[_0xb1f4('0x17')]));});});};exports[_0xb1f4('0x22')]=function(_0x3a637f){return new Promise(function(_0x77dba6,_0x57a2bb){return db[_0xb1f4('0x1b')][_0xb1f4('0x23')]({'where':_0x3a637f['options']?_0x3a637f[_0xb1f4('0x1e')][_0xb1f4('0x1f')]||null:null})[_0xb1f4('0xf')](function(_0x13d81a){if(_0x13d81a){return _0x13d81a[_0xb1f4('0x24')](_0x3a637f[_0xb1f4('0x1d')][_0xb1f4('0x25')],_[_0xb1f4('0x26')](_0x3a637f['body'],[_0xb1f4('0x25'),'id'])||{});}})['spread'](function(_0x166583){logger[_0xb1f4('0x10')](_0xb1f4('0x27'),_0x3a637f);logger[_0xb1f4('0x13')]('AddTags',_0x3a637f,JSON[_0xb1f4('0x21')](_0x166583));_0x77dba6(_0x166583);})[_0xb1f4('0x19')](function(_0x8db9bb){logger[_0xb1f4('0x15')]('AddTags',_0x8db9bb['message'],_0x3a637f);_0x57a2bb(_this['error'](0x1f4,_0x8db9bb[_0xb1f4('0x17')]));});});};
\ No newline at end of file
+var _0x80b1=['info','FaxInteraction,\x20%s,\x20%s','request\x20sent','FaxInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','FaxInteraction','update','raw','options','where','attributes','limit','UpdateFaxInteraction','debug','AddTagsToFaxInteraction','find','addTags','body','ids','omit','spread','AddTags','util','moment','bluebird','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','register','request','then'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x80b1,0x1be));var _0x180b=function(_0x5ab653,_0x2b8dba){_0x5ab653=_0x5ab653-0x0;var _0x37b593=_0x80b1[_0x5ab653];return _0x37b593;};'use strict';var _=require('lodash');var util=require(_0x180b('0x0'));var moment=require(_0x180b('0x1'));var BPromise=require(_0x180b('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x180b('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x180b('0x4'))(_0x180b('0x5'));var config=require(_0x180b('0x6'));var jayson=require(_0x180b('0x7'));var client=jayson['client'][_0x180b('0x8')]({'port':0x232a});config[_0x180b('0x9')]=_[_0x180b('0xa')](config[_0x180b('0x9')],{'host':_0x180b('0xb'),'port':0x18eb});var socket=require(_0x180b('0xc'))(new Redis(config[_0x180b('0x9')]));require('./faxInteraction.socket')[_0x180b('0xd')](socket);function respondWithRpcPromise(_0x5b9005,_0x9149fa,_0x527328){return new BPromise(function(_0x4bf680,_0x55ab10){return client[_0x180b('0xe')](_0x5b9005,_0x527328)[_0x180b('0xf')](function(_0x416809){logger[_0x180b('0x10')](_0x180b('0x11'),_0x9149fa,_0x180b('0x12'));logger['debug'](_0x180b('0x13'),_0x9149fa,_0x180b('0x12'),JSON[_0x180b('0x14')](_0x416809));if(_0x416809[_0x180b('0x15')]){if(_0x416809[_0x180b('0x15')][_0x180b('0x16')]===0x1f4){logger['error'](_0x180b('0x11'),_0x9149fa,_0x416809['error'][_0x180b('0x17')]);return _0x55ab10(_0x416809[_0x180b('0x15')][_0x180b('0x17')]);}logger['error'](_0x180b('0x11'),_0x9149fa,_0x416809[_0x180b('0x15')]['message']);return _0x4bf680(_0x416809[_0x180b('0x15')][_0x180b('0x17')]);}else{logger[_0x180b('0x10')]('FaxInteraction,\x20%s,\x20%s',_0x9149fa,_0x180b('0x12'));_0x4bf680(_0x416809['result']['message']);}})[_0x180b('0x18')](function(_0x15510f){logger[_0x180b('0x15')]('FaxInteraction,\x20%s,\x20%s',_0x9149fa,_0x15510f);_0x55ab10(_0x15510f);});});}exports['UpdateFaxInteraction']=function(_0x4ed7b7){var _0x3cc0ee=this;return new Promise(function(_0xa6b9bb,_0x4b2aab){return db[_0x180b('0x19')][_0x180b('0x1a')](_0x4ed7b7['body'],{'raw':_0x4ed7b7['options']?_0x4ed7b7['options'][_0x180b('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4ed7b7[_0x180b('0x1c')]?_0x4ed7b7[_0x180b('0x1c')][_0x180b('0x1d')]||null:null,'attributes':_0x4ed7b7[_0x180b('0x1c')]?_0x4ed7b7[_0x180b('0x1c')][_0x180b('0x1e')]||null:null,'limit':_0x4ed7b7[_0x180b('0x1c')]?_0x4ed7b7[_0x180b('0x1c')][_0x180b('0x1f')]||null:null})[_0x180b('0xf')](function(_0x2aad8a){logger[_0x180b('0x10')](_0x180b('0x20'),_0x4ed7b7);logger[_0x180b('0x21')](_0x180b('0x20'),_0x4ed7b7,JSON[_0x180b('0x14')](_0x2aad8a));_0xa6b9bb(_0x2aad8a);})[_0x180b('0x18')](function(_0x1fd872){logger[_0x180b('0x15')]('UpdateFaxInteraction',_0x1fd872['message'],_0x4ed7b7);_0x4b2aab(_0x3cc0ee[_0x180b('0x15')](0x1f4,_0x1fd872[_0x180b('0x17')]));});});};exports[_0x180b('0x22')]=function(_0x3f2ded){return new Promise(function(_0x2b1f48,_0x31b53f){return db[_0x180b('0x19')][_0x180b('0x23')]({'where':_0x3f2ded['options']?_0x3f2ded[_0x180b('0x1c')][_0x180b('0x1d')]||null:null})[_0x180b('0xf')](function(_0x577880){if(_0x577880){return _0x577880[_0x180b('0x24')](_0x3f2ded[_0x180b('0x25')][_0x180b('0x26')],_[_0x180b('0x27')](_0x3f2ded[_0x180b('0x25')],[_0x180b('0x26'),'id'])||{});}})[_0x180b('0x28')](function(_0x1575c5){logger['info']('AddTags',_0x3f2ded);logger[_0x180b('0x21')](_0x180b('0x29'),_0x3f2ded,JSON[_0x180b('0x14')](_0x1575c5));_0x2b1f48(_0x1575c5);})[_0x180b('0x18')](function(_0x23b422){logger['error'](_0x180b('0x29'),_0x23b422[_0x180b('0x17')],_0x3f2ded);_0x31b53f(_this[_0x180b('0x15')](0x1f4,_0x23b422[_0x180b('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd96b=['register','length','faxInteraction:','./faxInteraction.events','save','update','removeListener'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xd96b,0xa4));var _0xbd96=function(_0xe9da66,_0x5043bc){_0xe9da66=_0xe9da66-0x0;var _0x6c8ab4=_0xd96b[_0xe9da66];return _0x6c8ab4;};'use strict';var FaxInteractionEvents=require(_0xbd96('0x0'));var events=[_0xbd96('0x1'),'remove',_0xbd96('0x2')];function createListener(_0xc42c52,_0x8fdf69){return function(_0x2176f6){_0x8fdf69['emit'](_0xc42c52,_0x2176f6);};}function removeListener(_0x2735cc,_0x7d98b){return function(){FaxInteractionEvents[_0xbd96('0x3')](_0x2735cc,_0x7d98b);};}exports[_0xbd96('0x4')]=function(_0x1c929f){for(var _0xa57db4=0x0,_0x1a68f7=events[_0xbd96('0x5')];_0xa57db4<_0x1a68f7;_0xa57db4++){var _0x303b60=events[_0xa57db4];var _0x31107c=createListener(_0xbd96('0x6')+_0x303b60,_0x1c929f);FaxInteractionEvents['on'](_0x303b60,_0x31107c);}};
\ No newline at end of file
+var _0x1487=['update','emit','removeListener','register','./faxInteraction.events','save','remove'];(function(_0x62acd5,_0x4ddb49){var _0x227ab4=function(_0x24fb97){while(--_0x24fb97){_0x62acd5['push'](_0x62acd5['shift']());}};_0x227ab4(++_0x4ddb49);}(_0x1487,0x9e));var _0x7148=function(_0x75ce5b,_0x3b582f){_0x75ce5b=_0x75ce5b-0x0;var _0x22195e=_0x1487[_0x75ce5b];return _0x22195e;};'use strict';var FaxInteractionEvents=require(_0x7148('0x0'));var events=[_0x7148('0x1'),_0x7148('0x2'),_0x7148('0x3')];function createListener(_0x124072,_0x1338de){return function(_0x1d5ebe){_0x1338de[_0x7148('0x4')](_0x124072,_0x1d5ebe);};}function removeListener(_0x2e247e,_0x3c0261){return function(){FaxInteractionEvents[_0x7148('0x5')](_0x2e247e,_0x3c0261);};}exports[_0x7148('0x6')]=function(_0x2263f8){for(var _0x17a399=0x0,_0x1f6737=events['length'];_0x17a399<_0x1f6737;_0x17a399++){var _0xb50721=events[_0x17a399];var _0x26135c=createListener('faxInteraction:'+_0xb50721,_0x2263f8);FaxInteractionEvents['on'](_0xb50721,_0x26135c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa675=['faxinteraction:addtags','addTags','put','faxinteraction:update','delete','destroy','removeTags','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','./faxInteraction.controller','isAuthenticated','get','/describe','describe','/:id','show','/:id/messages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','fax'];(function(_0x3046a2,_0x2f712c){var _0x131cce=function(_0x32292d){while(--_0x32292d){_0x3046a2['push'](_0x3046a2['shift']());}};_0x131cce(++_0x2f712c);}(_0xa675,0x17c));var _0x5a67=function(_0x4247e5,_0x30b7bb){_0x4247e5=_0x4247e5-0x0;var _0x5ee3d5=_0xa675[_0x4247e5];return _0x5ee3d5;};'use strict';var multer=require(_0x5a67('0x0'));var util=require(_0x5a67('0x1'));var path=require(_0x5a67('0x2'));var timeout=require(_0x5a67('0x3'));var express=require('express');var router=express[_0x5a67('0x4')]();var fs_extra=require(_0x5a67('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x5a67('0x6'));var config=require('../../config/environment');var controller=require(_0x5a67('0x7'));router['get']('/',auth[_0x5a67('0x8')](),controller['index']);router[_0x5a67('0x9')](_0x5a67('0xa'),auth['isAuthenticated'](),controller[_0x5a67('0xb')]);router['get'](_0x5a67('0xc'),auth[_0x5a67('0x8')](),controller[_0x5a67('0xd')]);router['get'](_0x5a67('0xe'),auth[_0x5a67('0x8')](),controller['getMessages']);router[_0x5a67('0x9')](_0x5a67('0xf'),auth['isAuthenticated'](),controller[_0x5a67('0x10')]);router[_0x5a67('0x11')]('/',auth['isAuthenticated'](),controller[_0x5a67('0x12')]);router[_0x5a67('0x11')](_0x5a67('0xe'),auth[_0x5a67('0x8')](),controller[_0x5a67('0x13')]);router[_0x5a67('0x11')](_0x5a67('0x14'),auth[_0x5a67('0x8')](),interaction[_0x5a67('0x15')](_0x5a67('0x16'),_0x5a67('0x17')),controller[_0x5a67('0x18')]);router[_0x5a67('0x19')](_0x5a67('0xc'),auth[_0x5a67('0x8')](),interaction['tracked'](_0x5a67('0x16'),_0x5a67('0x1a')),controller['update']);router[_0x5a67('0x1b')](_0x5a67('0xc'),auth[_0x5a67('0x8')](),interaction[_0x5a67('0x15')]('fax','faxinteraction:destroy'),controller[_0x5a67('0x1c')]);router[_0x5a67('0x1b')](_0x5a67('0x14'),auth[_0x5a67('0x8')](),controller[_0x5a67('0x1d')]);module[_0x5a67('0x1e')]=router;
\ No newline at end of file
+var _0x408e=['/:id','show','/:id/messages','/:id/download','download','post','create','addMessage','fax','faxinteraction:addtags','put','tracked','faxinteraction:update','update','delete','faxinteraction:destroy','destroy','removeTags','exports','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','/describe','describe','get'];(function(_0x504677,_0x39fc14){var _0x5802fa=function(_0x3db145){while(--_0x3db145){_0x504677['push'](_0x504677['shift']());}};_0x5802fa(++_0x39fc14);}(_0x408e,0x1d3));var _0xe408=function(_0x459b3e,_0x5a0c7a){_0x459b3e=_0x459b3e-0x0;var _0xaf15e4=_0x408e[_0x459b3e];return _0xaf15e4;};'use strict';var multer=require('multer');var util=require(_0xe408('0x0'));var path=require(_0xe408('0x1'));var timeout=require('connect-timeout');var express=require(_0xe408('0x2'));var router=express[_0xe408('0x3')]();var fs_extra=require(_0xe408('0x4'));var auth=require(_0xe408('0x5'));var interaction=require(_0xe408('0x6'));var config=require(_0xe408('0x7'));var controller=require('./faxInteraction.controller');router['get']('/',auth[_0xe408('0x8')](),controller[_0xe408('0x9')]);router['get'](_0xe408('0xa'),auth['isAuthenticated'](),controller[_0xe408('0xb')]);router[_0xe408('0xc')](_0xe408('0xd'),auth[_0xe408('0x8')](),controller[_0xe408('0xe')]);router[_0xe408('0xc')](_0xe408('0xf'),auth['isAuthenticated'](),controller['getMessages']);router['get'](_0xe408('0x10'),auth[_0xe408('0x8')](),controller[_0xe408('0x11')]);router[_0xe408('0x12')]('/',auth['isAuthenticated'](),controller[_0xe408('0x13')]);router[_0xe408('0x12')](_0xe408('0xf'),auth[_0xe408('0x8')](),controller[_0xe408('0x14')]);router[_0xe408('0x12')]('/:id/tags',auth[_0xe408('0x8')](),interaction['tracked'](_0xe408('0x15'),_0xe408('0x16')),controller['addTags']);router[_0xe408('0x17')](_0xe408('0xd'),auth[_0xe408('0x8')](),interaction[_0xe408('0x18')](_0xe408('0x15'),_0xe408('0x19')),controller[_0xe408('0x1a')]);router[_0xe408('0x1b')]('/:id',auth[_0xe408('0x8')](),interaction[_0xe408('0x18')]('fax',_0xe408('0x1c')),controller[_0xe408('0x1d')]);router['delete']('/:id/tags',auth[_0xe408('0x8')](),controller[_0xe408('0x1e')]);module[_0xe408('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9bde=['out','TEXT','DATE','exports','medium','ENUM'];(function(_0x37d92a,_0x5744ac){var _0x152c81=function(_0x13e200){while(--_0x13e200){_0x37d92a['push'](_0x37d92a['shift']());}};_0x152c81(++_0x5744ac);}(_0x9bde,0xe1));var _0xe9bd=function(_0x4b93e7,_0x30bf97){_0x4b93e7=_0x4b93e7-0x0;var _0xdc084c=_0x9bde[_0x4b93e7];return _0xdc084c;};'use strict';var Sequelize=require('sequelize');module[_0xe9bd('0x0')]={'body':{'type':Sequelize['TEXT'](_0xe9bd('0x1')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0xe9bd('0x2')]('in',_0xe9bd('0x3')),'defaultValue':_0xe9bd('0x3'),'allowNull':![]},'failMessage':{'type':Sequelize[_0xe9bd('0x4')],'defaultValue':null},'readAt':{'type':Sequelize[_0xe9bd('0x5')]}};
\ No newline at end of file
+var _0xc3b5=['ENUM','out','DATE','TEXT','medium','BOOLEAN'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xc3b5,0x6f));var _0x5c3b=function(_0x30af6e,_0xa93ffd){_0x30af6e=_0x30af6e-0x0;var _0x386424=_0xc3b5[_0x30af6e];return _0x386424;};'use strict';var Sequelize=require('sequelize');module['exports']={'body':{'type':Sequelize[_0x5c3b('0x0')](_0x5c3b('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0x5c3b('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x5c3b('0x3')]('in',_0x5c3b('0x4')),'defaultValue':_0x5c3b('0x4'),'allowNull':![]},'failMessage':{'type':Sequelize[_0x5c3b('0x0')],'defaultValue':null},'readAt':{'type':Sequelize[_0x5c3b('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb85=['apply','reject','save','stack','name','send','index','map','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','where','merge','VIRTUAL','options','FaxMessage','includeAll','include','rows','show','params','length','find','body','destroy','describe','fax-interactions','accept','fax','read','format','UserId','user','agent','get','FaxInteraction','FaxInteractionId','update','isNil','YYYY-MM-DD\x20HH:mm:ss','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','contact','User','fullname','email','internal','manual','motionChannel','channel','EventManager','acceptmessage','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','stringify','RejectMessage','QueryTypes','interface','SIP/%s','event','rejectmessage','create','CmContact','findOne','AttachmentId','SendFax','FaxAccountId','download','root','Attachment','join','basename','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','FaxMessage,\x20%s,\x20%s','request\x20sent','FaxMessage,\x20%s,\x20%s,\x20%s','error','code','message','info','catch','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range'];(function(_0xcd7a34,_0x4a0b75){var _0x3a0735=function(_0x1ec3d4){while(--_0x1ec3d4){_0xcd7a34['push'](_0xcd7a34['shift']());}};_0x3a0735(++_0x4a0b75);}(_0xfb85,0xe6));var _0x5fb8=function(_0x565c49,_0x54acd0){_0x565c49=_0x565c49-0x0;var _0x20ca34=_0xfb85[_0x565c49];return _0x20ca34;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x5fb8('0x0'));var jsonpatch=require(_0x5fb8('0x1'));var rp=require(_0x5fb8('0x2'));var moment=require(_0x5fb8('0x3'));var BPromise=require(_0x5fb8('0x4'));var Mustache=require(_0x5fb8('0x5'));var util=require(_0x5fb8('0x6'));var path=require(_0x5fb8('0x7'));var sox=require(_0x5fb8('0x8'));var csv=require(_0x5fb8('0x9'));var ejs=require(_0x5fb8('0xa'));var fs=require('fs');var fs_extra=require(_0x5fb8('0xb'));var _=require(_0x5fb8('0xc'));var squel=require(_0x5fb8('0xd'));var crypto=require(_0x5fb8('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x5fb8('0xf'));var toCsv=require(_0x5fb8('0x9'));var querystring=require(_0x5fb8('0x10'));var Papa=require(_0x5fb8('0x11'));var Redis=require('ioredis');var authService=require(_0x5fb8('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5fb8('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5fb8('0x14'))(_0x5fb8('0x15'));var utils=require(_0x5fb8('0x16'));var config=require(_0x5fb8('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x5fb8('0x18'))['db'];config[_0x5fb8('0x19')]=_[_0x5fb8('0x1a')](config[_0x5fb8('0x19')],{'host':_0x5fb8('0x1b'),'port':0x18eb});var socket=require(_0x5fb8('0x1c'))(new Redis(config['redis']));require('./faxMessage.socket')[_0x5fb8('0x1d')](socket);var jayson=require(_0x5fb8('0x1e'));var client=jayson[_0x5fb8('0x1f')][_0x5fb8('0x20')]({'port':0x232c});var client9002=jayson['client'][_0x5fb8('0x20')]({'port':0x232a});function respondWithRpcPromise(_0xf94739,_0x4d08bc,_0x39124e,_0x1f96a3){return new BPromise(function(_0x3c562c,_0x4241c9){var _0x2d2a6e=_0x1f96a3||client;return _0x2d2a6e[_0x5fb8('0x21')](_0xf94739,_0x39124e)[_0x5fb8('0x22')](function(_0x39b6ba){logger['info'](_0x5fb8('0x23'),_0x4d08bc,_0x5fb8('0x24'));logger['debug'](_0x5fb8('0x25'),_0x4d08bc,_0x5fb8('0x24'),JSON['stringify'](_0x39b6ba));if(_0x39b6ba[_0x5fb8('0x26')]){if(_0x39b6ba['error'][_0x5fb8('0x27')]===0x1f4){logger['error']('FaxMessage,\x20%s,\x20%s',_0x4d08bc,_0x39b6ba['error'][_0x5fb8('0x28')]);return _0x4241c9(_0x39b6ba[_0x5fb8('0x26')][_0x5fb8('0x28')]);}logger[_0x5fb8('0x26')](_0x5fb8('0x23'),_0x4d08bc,_0x39b6ba[_0x5fb8('0x26')][_0x5fb8('0x28')]);return _0x3c562c(_0x39b6ba[_0x5fb8('0x26')][_0x5fb8('0x28')]);}else{logger[_0x5fb8('0x29')](_0x5fb8('0x23'),_0x4d08bc,_0x5fb8('0x24'));_0x3c562c(_0x39b6ba['result'][_0x5fb8('0x28')]);}})[_0x5fb8('0x2a')](function(_0x50f15e){logger[_0x5fb8('0x26')](_0x5fb8('0x23'),_0x4d08bc,_0x50f15e);_0x4241c9(_0x50f15e);});});}function respondWithStatusCode(_0x3f683f,_0x49062a){_0x49062a=_0x49062a||0xcc;return function(_0x19f51b){if(_0x19f51b){return _0x3f683f[_0x5fb8('0x2b')](_0x49062a);}return _0x3f683f[_0x5fb8('0x2c')](_0x49062a)[_0x5fb8('0x2d')]();};}function respondWithResult(_0xaa5e31,_0x42f4e0){_0x42f4e0=_0x42f4e0||0xc8;return function(_0x212676){if(_0x212676){return _0xaa5e31[_0x5fb8('0x2c')](_0x42f4e0)[_0x5fb8('0x2e')](_0x212676);}};}function respondWithFilteredResult(_0x30ec0c,_0x27f709){return function(_0x74a734){if(_0x74a734){var _0x3840bd=typeof _0x27f709[_0x5fb8('0x2f')]===_0x5fb8('0x30')&&typeof _0x27f709['limit']===_0x5fb8('0x30');var _0x4c8912=_0x74a734[_0x5fb8('0x31')];var _0x4bc918=_0x3840bd?0x0:_0x27f709[_0x5fb8('0x2f')];var _0x553b4d=_0x3840bd?_0x74a734['count']:_0x27f709[_0x5fb8('0x2f')]+_0x27f709[_0x5fb8('0x32')];var _0x4b92c6;if(_0x553b4d>=_0x4c8912){_0x553b4d=_0x4c8912;_0x4b92c6=0xc8;}else{_0x4b92c6=0xce;}_0x30ec0c['status'](_0x4b92c6);return _0x30ec0c['set'](_0x5fb8('0x33'),_0x4bc918+'-'+_0x553b4d+'/'+_0x4c8912)[_0x5fb8('0x2e')](_0x74a734);}return null;};}function patchUpdates(_0x33447c){return function(_0x456940){try{jsonpatch[_0x5fb8('0x34')](_0x456940,_0x33447c,!![]);}catch(_0x22595e){return BPromise[_0x5fb8('0x35')](_0x22595e);}return _0x456940[_0x5fb8('0x36')]();};}function saveUpdates(_0x4fe027,_0x4ebfa5){return function(_0x45055f){if(_0x45055f){return _0x45055f['update'](_0x4fe027)['then'](function(_0x10ef00){return _0x10ef00;});}return null;};}function removeEntity(_0x3e2a7a,_0x1bc98a){return function(_0x1fc046){if(_0x1fc046){return _0x1fc046['destroy']()[_0x5fb8('0x22')](function(){_0x3e2a7a['status'](0xcc)[_0x5fb8('0x2d')]();});}};}function handleEntityNotFound(_0x137192,_0x360ffb){return function(_0x108c93){if(!_0x108c93){_0x137192['sendStatus'](0x194);}return _0x108c93;};}function handleError(_0x1c11ae,_0x557813){_0x557813=_0x557813||0x1f4;return function(_0x149b0e){logger[_0x5fb8('0x26')](_0x149b0e[_0x5fb8('0x37')]);if(_0x149b0e[_0x5fb8('0x38')]){delete _0x149b0e[_0x5fb8('0x38')];}_0x1c11ae[_0x5fb8('0x2c')](_0x557813)[_0x5fb8('0x39')](_0x149b0e);};}exports[_0x5fb8('0x3a')]=function(_0x56698b,_0x1fca65){var _0x12ec29={},_0x16fe16={},_0x2ecc1e={'count':0x0,'rows':[]};var _0x31aff1=_[_0x5fb8('0x3b')](db['FaxMessage']['rawAttributes'],function(_0x57938b){return{'name':_0x57938b[_0x5fb8('0x3c')],'type':_0x57938b['type']['key']};});_0x16fe16[_0x5fb8('0x3d')]=_['map'](_0x31aff1,_0x5fb8('0x38'));_0x16fe16[_0x5fb8('0x3e')]=_[_0x5fb8('0x3f')](_0x56698b['query']);_0x16fe16[_0x5fb8('0x40')]=_[_0x5fb8('0x41')](_0x16fe16[_0x5fb8('0x3d')],_0x16fe16['query']);_0x12ec29[_0x5fb8('0x42')]=_[_0x5fb8('0x41')](_0x16fe16[_0x5fb8('0x3d')],qs[_0x5fb8('0x43')](_0x56698b[_0x5fb8('0x3e')][_0x5fb8('0x43')]));_0x12ec29[_0x5fb8('0x42')]=_0x12ec29[_0x5fb8('0x42')]['length']?_0x12ec29[_0x5fb8('0x42')]:_0x16fe16[_0x5fb8('0x3d')];if(!_0x56698b[_0x5fb8('0x3e')][_0x5fb8('0x44')](_0x5fb8('0x45'))){_0x12ec29[_0x5fb8('0x32')]=qs[_0x5fb8('0x32')](_0x56698b[_0x5fb8('0x3e')]['limit']);_0x12ec29[_0x5fb8('0x2f')]=qs[_0x5fb8('0x2f')](_0x56698b['query'][_0x5fb8('0x2f')]);}_0x12ec29[_0x5fb8('0x46')]=qs[_0x5fb8('0x47')](_0x56698b[_0x5fb8('0x3e')]['sort']);_0x12ec29['where']=qs[_0x5fb8('0x40')](_[_0x5fb8('0x48')](_0x56698b['query'],_0x16fe16[_0x5fb8('0x40')]),_0x31aff1);if(_0x56698b['query']['filter']){_0x12ec29[_0x5fb8('0x49')]=_[_0x5fb8('0x4a')](_0x12ec29[_0x5fb8('0x49')],{'$or':_[_0x5fb8('0x3b')](_0x31aff1,function(_0x54981f){if(_0x54981f['type']!==_0x5fb8('0x4b')){var _0x20b941={};_0x20b941[_0x54981f[_0x5fb8('0x38')]]={'$like':'%'+_0x56698b[_0x5fb8('0x3e')]['filter']+'%'};return _0x20b941;}})});}_0x12ec29=_[_0x5fb8('0x4a')]({},_0x12ec29,_0x56698b[_0x5fb8('0x4c')]);var _0x24420f={'where':_0x12ec29[_0x5fb8('0x49')]};return db[_0x5fb8('0x4d')][_0x5fb8('0x31')](_0x24420f)['then'](function(_0x4fe73d){_0x2ecc1e[_0x5fb8('0x31')]=_0x4fe73d;if(_0x56698b[_0x5fb8('0x3e')][_0x5fb8('0x4e')]){_0x12ec29[_0x5fb8('0x4f')]=[{'all':!![]}];}return db[_0x5fb8('0x4d')]['findAll'](_0x12ec29);})[_0x5fb8('0x22')](function(_0x165815){_0x2ecc1e[_0x5fb8('0x50')]=_0x165815;return _0x2ecc1e;})[_0x5fb8('0x22')](respondWithFilteredResult(_0x1fca65,_0x12ec29))['catch'](handleError(_0x1fca65,null));};exports[_0x5fb8('0x51')]=function(_0x235561,_0x1ca983){var _0x2b4a50={'raw':!![],'where':{'id':_0x235561[_0x5fb8('0x52')]['id']}},_0x122c1f={};_0x122c1f[_0x5fb8('0x3d')]=_[_0x5fb8('0x3f')](db[_0x5fb8('0x4d')]['rawAttributes']);_0x122c1f[_0x5fb8('0x3e')]=_[_0x5fb8('0x3f')](_0x235561[_0x5fb8('0x3e')]);_0x122c1f[_0x5fb8('0x40')]=_[_0x5fb8('0x41')](_0x122c1f[_0x5fb8('0x3d')],_0x122c1f['query']);_0x2b4a50[_0x5fb8('0x42')]=_[_0x5fb8('0x41')](_0x122c1f[_0x5fb8('0x3d')],qs['fields'](_0x235561[_0x5fb8('0x3e')]['fields']));_0x2b4a50[_0x5fb8('0x42')]=_0x2b4a50[_0x5fb8('0x42')][_0x5fb8('0x53')]?_0x2b4a50[_0x5fb8('0x42')]:_0x122c1f[_0x5fb8('0x3d')];if(_0x235561[_0x5fb8('0x3e')][_0x5fb8('0x4e')]){_0x2b4a50[_0x5fb8('0x4f')]=[{'all':!![]}];}_0x2b4a50=_[_0x5fb8('0x4a')]({},_0x2b4a50,_0x235561[_0x5fb8('0x4c')]);return db[_0x5fb8('0x4d')][_0x5fb8('0x54')](_0x2b4a50)[_0x5fb8('0x22')](handleEntityNotFound(_0x1ca983,null))[_0x5fb8('0x22')](respondWithResult(_0x1ca983,null))[_0x5fb8('0x2a')](handleError(_0x1ca983,null));};exports['update']=function(_0x398a0d,_0x2880c5){if(_0x398a0d[_0x5fb8('0x55')]['id']){delete _0x398a0d[_0x5fb8('0x55')]['id'];}return db[_0x5fb8('0x4d')][_0x5fb8('0x54')]({'where':{'id':_0x398a0d[_0x5fb8('0x52')]['id']}})[_0x5fb8('0x22')](handleEntityNotFound(_0x2880c5,null))[_0x5fb8('0x22')](saveUpdates(_0x398a0d[_0x5fb8('0x55')],null))['then'](respondWithResult(_0x2880c5,null))['catch'](handleError(_0x2880c5,null));};exports[_0x5fb8('0x56')]=function(_0x5644f0,_0x23f261){return db[_0x5fb8('0x4d')]['find']({'where':{'id':_0x5644f0[_0x5fb8('0x52')]['id']}})[_0x5fb8('0x22')](handleEntityNotFound(_0x23f261,null))[_0x5fb8('0x22')](removeEntity(_0x23f261,null))[_0x5fb8('0x2a')](handleError(_0x23f261,null));};exports['describe']=function(_0x7e9b23,_0x5d64cd){return db[_0x5fb8('0x4d')][_0x5fb8('0x57')]()['then'](respondWithResult(_0x5d64cd,null))[_0x5fb8('0x2a')](handleError(_0x5d64cd,null));};var interaction_log=require(_0x5fb8('0x14'))(_0x5fb8('0x58'));exports[_0x5fb8('0x59')]=function(_0x5e7d8e,_0x30b16d,_0x54296f){var _0x597cb0={'agent':{},'channel':_0x5fb8('0x5a')};if(_0x5e7d8e[_0x5fb8('0x55')]['id']){delete _0x5e7d8e[_0x5fb8('0x55')]['id'];}_0x5e7d8e[_0x5fb8('0x55')][_0x5fb8('0x5b')]=!![];_0x5e7d8e[_0x5fb8('0x55')]['readAt']=moment()[_0x5fb8('0x5c')]('YYYY-MM-DD\x20HH:mm:ss');_0x5e7d8e['body'][_0x5fb8('0x5d')]=_0x5e7d8e['body'][_0x5fb8('0x5d')]||_0x5e7d8e[_0x5fb8('0x5e')]['id'];_0x597cb0[_0x5fb8('0x5f')]['id']=_0x5e7d8e[_0x5fb8('0x55')][_0x5fb8('0x5d')];return db['FaxMessage'][_0x5fb8('0x54')]({'where':{'id':_0x5e7d8e[_0x5fb8('0x52')]['id'],'UserId':null}})[_0x5fb8('0x22')](handleEntityNotFound(_0x30b16d,null))[_0x5fb8('0x22')](saveUpdates(_0x5e7d8e[_0x5fb8('0x55')],null))[_0x5fb8('0x22')](function(_0x3b7e5a){if(_0x3b7e5a){_0x597cb0[_0x5fb8('0x28')]=_0x3b7e5a[_0x5fb8('0x60')]({'plain':!![]});return db[_0x5fb8('0x61')][_0x5fb8('0x54')]({'where':{'id':_0x3b7e5a[_0x5fb8('0x62')]}});}return null;})[_0x5fb8('0x22')](handleEntityNotFound(_0x30b16d,null))['then'](function(_0x595833){if(_0x595833){return _0x595833[_0x5fb8('0x63')]({'UserId':_0x5e7d8e[_0x5fb8('0x55')][_0x5fb8('0x5d')],'read1stAt':_[_0x5fb8('0x64')](_0x595833['read1stAt'])?moment()[_0x5fb8('0x5c')](_0x5fb8('0x65')):undefined});}return null;})[_0x5fb8('0x22')](function(_0x5045c9){if(_0x5045c9){_0x597cb0[_0x5fb8('0x66')]=_0x5045c9['get']({'plain':!![]});interaction_log[_0x5fb8('0x29')](_0x5fb8('0x67'),_0x5e7d8e[_0x5fb8('0x5e')]['id'],_0x5e7d8e[_0x5fb8('0x5e')][_0x5fb8('0x38')],_0x5e7d8e[_0x5fb8('0x5e')][_0x5fb8('0x68')],_0x597cb0[_0x5fb8('0x66')]['id'],_0x5e7d8e[_0x5fb8('0x55')]?JSON['stringify'](_0x5e7d8e[_0x5fb8('0x55')]):'null');return respondWithRpcPromise(_0x5fb8('0x69'),_0x5fb8('0x6a'),_0x597cb0);}return null;})[_0x5fb8('0x22')](function(_0x2db131){var _0x509b53=_0x5fb8('0x6b')+_0x2db131[_0x5fb8('0x28')][_0x5fb8('0x6c')];return db[_0x5fb8('0x6d')]['query'](_0x509b53,{'type':db[_0x5fb8('0x6e')]['QueryTypes'][_0x5fb8('0x6f')],'raw':!![]})[_0x5fb8('0x22')](function(_0x36c44c){return _0x36c44c;});})[_0x5fb8('0x22')](function(_0x5efe8f){if(_0x5efe8f){_0x597cb0[_0x5fb8('0x28')][_0x5fb8('0x70')]=_0x5efe8f[0x0];if(!_0x5e7d8e['body'][_0x5fb8('0x5d')])return;return db[_0x5fb8('0x71')][_0x5fb8('0x54')]({'where':{'id':_0x5e7d8e[_0x5fb8('0x55')]['UserId'],'role':_0x5fb8('0x5f')},'attributes':['id',_0x5fb8('0x38'),_0x5fb8('0x72'),_0x5fb8('0x73'),_0x5fb8('0x74')],'raw':!![]});}return null;})[_0x5fb8('0x22')](function(_0x504e9d){if(!_0x504e9d)return null;_0x597cb0['message'][_0x5fb8('0x5f')]=_0x504e9d;return _0x597cb0;})[_0x5fb8('0x22')](function(_0x56152d){if(_0x56152d){if(_0x5e7d8e[_0x5fb8('0x55')][_0x5fb8('0x75')]){_0x597cb0[_0x5fb8('0x28')]['interface']=util[_0x5fb8('0x5c')]('SIP/%s',_0x5e7d8e[_0x5fb8('0x5e')][_0x5fb8('0x38')]);_0x597cb0[_0x5fb8('0x28')]['channel']=_0x597cb0['channel'];_0x597cb0[_0x5fb8('0x28')][_0x5fb8('0x76')]=_0x597cb0[_0x5fb8('0x77')];_0x597cb0[_0x5fb8('0x28')]['event']='accept';return respondWithRpcPromise(_0x5fb8('0x78'),_0x5fb8('0x78'),{'event':_0x5fb8('0x79'),'message':_0x597cb0[_0x5fb8('0x28')]},client9002)[_0x5fb8('0x22')](function(){return _0x597cb0;});}return _0x597cb0;}return null;})[_0x5fb8('0x22')](respondWithResult(_0x30b16d,null))[_0x5fb8('0x2a')](handleError(_0x30b16d,null));};var interaction_log=require(_0x5fb8('0x14'))(_0x5fb8('0x58'));exports['reject']=function(_0x5059ad,_0x24cca2,_0x115aa9){var _0x4788b3={'agent':{},'channel':_0x5fb8('0x5a')};if(_0x5059ad[_0x5fb8('0x55')]['id']){delete _0x5059ad[_0x5fb8('0x55')]['id'];}_0x5059ad[_0x5fb8('0x55')]['UserId']=_0x5059ad[_0x5fb8('0x55')][_0x5fb8('0x5d')]||_0x5059ad[_0x5fb8('0x5e')]['id'];_0x4788b3['agent']['id']=_0x5059ad['body']['UserId'];return db[_0x5fb8('0x4d')][_0x5fb8('0x54')]({'where':{'id':_0x5059ad[_0x5fb8('0x52')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x24cca2,null))[_0x5fb8('0x22')](function(_0xa13426){if(_0xa13426){_0x4788b3[_0x5fb8('0x28')]=_0xa13426[_0x5fb8('0x60')]({'plain':!![]});return db['FaxInteraction'][_0x5fb8('0x54')]({'where':{'id':_0xa13426[_0x5fb8('0x62')]}});}return null;})[_0x5fb8('0x22')](handleEntityNotFound(_0x24cca2,null))[_0x5fb8('0x22')](function(_0x395c76){if(_0x395c76){_0x4788b3[_0x5fb8('0x66')]=_0x395c76[_0x5fb8('0x60')]({'plain':!![]});interaction_log[_0x5fb8('0x29')](_0x5fb8('0x7a'),_0x5059ad['user']['id'],_0x5059ad[_0x5fb8('0x5e')][_0x5fb8('0x38')],_0x5059ad[_0x5fb8('0x5e')][_0x5fb8('0x68')],_0x4788b3[_0x5fb8('0x66')]['id'],_0x5059ad[_0x5fb8('0x55')]?JSON[_0x5fb8('0x7b')](_0x5059ad[_0x5fb8('0x55')]):'null');return respondWithRpcPromise(_0x5fb8('0x7c'),'rejectMessage',_0x4788b3);}return null;})[_0x5fb8('0x22')](function(_0x551cef){var _0x4d329c=_0x5fb8('0x6b')+_0x551cef[_0x5fb8('0x28')][_0x5fb8('0x6c')];return db['sequelize']['query'](_0x4d329c,{'type':db[_0x5fb8('0x6e')][_0x5fb8('0x7d')]['SELECT'],'raw':!![]})[_0x5fb8('0x22')](function(_0x12d1c3){return _0x12d1c3;});})[_0x5fb8('0x22')](function(_0x34f167){if(_0x34f167){_0x4788b3[_0x5fb8('0x28')][_0x5fb8('0x70')]=_0x34f167[0x0];if(!_0x5059ad[_0x5fb8('0x55')][_0x5fb8('0x5d')])return;return db[_0x5fb8('0x71')][_0x5fb8('0x54')]({'where':{'id':_0x5059ad[_0x5fb8('0x55')][_0x5fb8('0x5d')],'role':_0x5fb8('0x5f')},'attributes':['id',_0x5fb8('0x38'),_0x5fb8('0x72'),_0x5fb8('0x73'),_0x5fb8('0x74')],'raw':!![]});}return null;})[_0x5fb8('0x22')](function(_0x3f145b){if(!_0x3f145b)return null;_0x4788b3[_0x5fb8('0x28')]['agent']=_0x3f145b;return _0x4788b3;})[_0x5fb8('0x22')](function(_0xc69b62){if(_0xc69b62){_0xc69b62[_0x5fb8('0x28')][_0x5fb8('0x7e')]=util[_0x5fb8('0x5c')](_0x5fb8('0x7f'),_0x5059ad[_0x5fb8('0x5e')][_0x5fb8('0x38')]);_0xc69b62[_0x5fb8('0x28')][_0x5fb8('0x77')]=_0x4788b3[_0x5fb8('0x77')];_0xc69b62[_0x5fb8('0x28')]['motionChannel']=_0x4788b3[_0x5fb8('0x77')];_0xc69b62[_0x5fb8('0x28')][_0x5fb8('0x80')]='reject';respondWithRpcPromise('EventManager','EventManager',{'event':_0x5fb8('0x81'),'message':_0xc69b62[_0x5fb8('0x28')]},client9002);return _0x4788b3;}return null;})[_0x5fb8('0x22')](respondWithResult(_0x24cca2,null))[_0x5fb8('0x2a')](handleError(_0x24cca2,null));};exports['create']=function(_0x23cf93,_0x1eec0a){var _0x388284;return db[_0x5fb8('0x4d')][_0x5fb8('0x82')](_0x23cf93[_0x5fb8('0x55')],{})[_0x5fb8('0x22')](function(_0x27a969){_0x388284=_0x27a969;return db[_0x5fb8('0x83')][_0x5fb8('0x84')]({'where':{'id':_0x388284[_0x5fb8('0x6c')]}});})['then'](function(_0x8657c6){if(_[_0x5fb8('0x64')](_0x8657c6)){return;}else{_0x388284[_0x5fb8('0x5a')]=_0x8657c6['fax'];return db['Attachment'][_0x5fb8('0x84')]({'where':{'id':_0x388284[_0x5fb8('0x85')]}});}})[_0x5fb8('0x22')](function(_0x216854){return respondWithRpcPromise(_0x5fb8('0x86'),'SendFax',{'FaxAccountId':_['isNil'](_0x23cf93['body'])?undefined:_0x23cf93[_0x5fb8('0x55')][_0x5fb8('0x87')],'path':_[_0x5fb8('0x64')](_0x216854)?undefined:util[_0x5fb8('0x5c')]('/var/opt/motion2/server/files/attachments/%s',_0x216854['basename']),'fax':_[_0x5fb8('0x64')](_0x388284[_0x5fb8('0x5a')])?undefined:_0x388284[_0x5fb8('0x5a')],'AttachmentId':_0x388284[_0x5fb8('0x85')]},client9002);})[_0x5fb8('0x22')](respondWithResult(_0x1eec0a,0xc9))[_0x5fb8('0x2a')](handleError(_0x1eec0a,null));};exports[_0x5fb8('0x88')]=function(_0x1fbf9a,_0x412f1e){var _0x3e575e=path['join'](config[_0x5fb8('0x89')],'server','files','attachments');return db[_0x5fb8('0x4d')][_0x5fb8('0x54')]({'where':{'id':_0x1fbf9a[_0x5fb8('0x52')]['id']},'include':[{'model':db['Attachment'],'as':_0x5fb8('0x8a')}]})[_0x5fb8('0x22')](handleEntityNotFound(_0x412f1e,null))[_0x5fb8('0x22')](function(_0x559651){if(_0x559651){return _0x412f1e[_0x5fb8('0x88')](path[_0x5fb8('0x8b')](_0x3e575e,_0x559651[_0x5fb8('0x8a')][_0x5fb8('0x8c')]));}})['catch'](handleError(_0x412f1e,null));};
\ No newline at end of file
+var _0x880e=['user','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','stringify','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','QueryTypes','SELECT','User','agent','fullname','email','internal','manual','interface','channel','event','EventManager','acceptmessage','fax-interactions','fax','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','Sequelize','contact','SIP/%s','create','CmContact','findOne','Attachment','AttachmentId','SendFax','/var/opt/motion2/server/files/attachments/%s','basename','download','join','root','server','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','register','jayson/promise','http','client','request','then','info','FaxMessage,\x20%s,\x20%s','debug','FaxMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','sendStatus','offset','undefined','count','limit','status','set','Content-Range','json','reject','update','destroy','end','stack','name','send','index','map','FaxMessage','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','sort','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','find','body','describe','accept','readAt','format','UserId'];(function(_0x5b673f,_0x4e69a8){var _0x5d6898=function(_0x273437){while(--_0x273437){_0x5b673f['push'](_0x5b673f['shift']());}};_0x5d6898(++_0x4e69a8);}(_0x880e,0x1df));var _0xe880=function(_0x30f030,_0xd03b7a){_0x30f030=_0x30f030-0x0;var _0xf7614f=_0x880e[_0x30f030];return _0xf7614f;};'use strict';var emlformat=require(_0xe880('0x0'));var rimraf=require(_0xe880('0x1'));var zipdir=require(_0xe880('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe880('0x3'));var moment=require(_0xe880('0x4'));var BPromise=require(_0xe880('0x5'));var Mustache=require(_0xe880('0x6'));var util=require(_0xe880('0x7'));var path=require(_0xe880('0x8'));var sox=require(_0xe880('0x9'));var csv=require(_0xe880('0xa'));var ejs=require(_0xe880('0xb'));var fs=require('fs');var fs_extra=require(_0xe880('0xc'));var _=require(_0xe880('0xd'));var squel=require(_0xe880('0xe'));var crypto=require(_0xe880('0xf'));var jsforce=require(_0xe880('0x10'));var deskjs=require(_0xe880('0x11'));var toCsv=require(_0xe880('0xa'));var querystring=require(_0xe880('0x12'));var Papa=require(_0xe880('0x13'));var Redis=require(_0xe880('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xe880('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe880('0x16'));var logger=require(_0xe880('0x17'))(_0xe880('0x18'));var utils=require('../../config/utils');var config=require(_0xe880('0x19'));var licenseUtil=require(_0xe880('0x1a'));var db=require(_0xe880('0x1b'))['db'];config[_0xe880('0x1c')]=_[_0xe880('0x1d')](config[_0xe880('0x1c')],{'host':_0xe880('0x1e'),'port':0x18eb});var socket=require(_0xe880('0x1f'))(new Redis(config[_0xe880('0x1c')]));require(_0xe880('0x20'))[_0xe880('0x21')](socket);var jayson=require(_0xe880('0x22'));var client=jayson['client'][_0xe880('0x23')]({'port':0x232c});var client9002=jayson[_0xe880('0x24')][_0xe880('0x23')]({'port':0x232a});function respondWithRpcPromise(_0x52cde8,_0x16b06f,_0x55b54a,_0x46fbd5){return new BPromise(function(_0x324cd9,_0x45f1cb){var _0x929635=_0x46fbd5||client;return _0x929635[_0xe880('0x25')](_0x52cde8,_0x55b54a)[_0xe880('0x26')](function(_0x546c72){logger[_0xe880('0x27')](_0xe880('0x28'),_0x16b06f,'request\x20sent');logger[_0xe880('0x29')](_0xe880('0x2a'),_0x16b06f,_0xe880('0x2b'),JSON['stringify'](_0x546c72));if(_0x546c72[_0xe880('0x2c')]){if(_0x546c72[_0xe880('0x2c')][_0xe880('0x2d')]===0x1f4){logger['error']('FaxMessage,\x20%s,\x20%s',_0x16b06f,_0x546c72[_0xe880('0x2c')][_0xe880('0x2e')]);return _0x45f1cb(_0x546c72[_0xe880('0x2c')][_0xe880('0x2e')]);}logger['error'](_0xe880('0x28'),_0x16b06f,_0x546c72[_0xe880('0x2c')]['message']);return _0x324cd9(_0x546c72['error'][_0xe880('0x2e')]);}else{logger[_0xe880('0x27')](_0xe880('0x28'),_0x16b06f,'request\x20sent');_0x324cd9(_0x546c72['result'][_0xe880('0x2e')]);}})['catch'](function(_0x3e10a9){logger[_0xe880('0x2c')](_0xe880('0x28'),_0x16b06f,_0x3e10a9);_0x45f1cb(_0x3e10a9);});});}function respondWithStatusCode(_0x40845a,_0x36bdc9){_0x36bdc9=_0x36bdc9||0xcc;return function(_0xa51335){if(_0xa51335){return _0x40845a[_0xe880('0x2f')](_0x36bdc9);}return _0x40845a['status'](_0x36bdc9)['end']();};}function respondWithResult(_0x45d29c,_0x4eea05){_0x4eea05=_0x4eea05||0xc8;return function(_0x3993a7){if(_0x3993a7){return _0x45d29c['status'](_0x4eea05)['json'](_0x3993a7);}};}function respondWithFilteredResult(_0x54c71f,_0xda10d2){return function(_0x1d6eda){if(_0x1d6eda){var _0x2974cf=typeof _0xda10d2[_0xe880('0x30')]===_0xe880('0x31')&&typeof _0xda10d2['limit']==='undefined';var _0x3bb646=_0x1d6eda['count'];var _0x52d947=_0x2974cf?0x0:_0xda10d2[_0xe880('0x30')];var _0x5074e7=_0x2974cf?_0x1d6eda[_0xe880('0x32')]:_0xda10d2[_0xe880('0x30')]+_0xda10d2[_0xe880('0x33')];var _0x50e4e6;if(_0x5074e7>=_0x3bb646){_0x5074e7=_0x3bb646;_0x50e4e6=0xc8;}else{_0x50e4e6=0xce;}_0x54c71f[_0xe880('0x34')](_0x50e4e6);return _0x54c71f[_0xe880('0x35')](_0xe880('0x36'),_0x52d947+'-'+_0x5074e7+'/'+_0x3bb646)[_0xe880('0x37')](_0x1d6eda);}return null;};}function patchUpdates(_0x226dae){return function(_0x5a88e0){try{jsonpatch['apply'](_0x5a88e0,_0x226dae,!![]);}catch(_0x35cc75){return BPromise[_0xe880('0x38')](_0x35cc75);}return _0x5a88e0['save']();};}function saveUpdates(_0x2a3929,_0x4b4d3d){return function(_0x36769a){if(_0x36769a){return _0x36769a[_0xe880('0x39')](_0x2a3929)[_0xe880('0x26')](function(_0x2efee2){return _0x2efee2;});}return null;};}function removeEntity(_0x8fc4ed,_0x458795){return function(_0x24f049){if(_0x24f049){return _0x24f049[_0xe880('0x3a')]()[_0xe880('0x26')](function(){_0x8fc4ed[_0xe880('0x34')](0xcc)[_0xe880('0x3b')]();});}};}function handleEntityNotFound(_0x206687,_0x1eb6b6){return function(_0xcd0a2){if(!_0xcd0a2){_0x206687[_0xe880('0x2f')](0x194);}return _0xcd0a2;};}function handleError(_0x11033e,_0x695076){_0x695076=_0x695076||0x1f4;return function(_0x26d1bb){logger[_0xe880('0x2c')](_0x26d1bb[_0xe880('0x3c')]);if(_0x26d1bb['name']){delete _0x26d1bb[_0xe880('0x3d')];}_0x11033e['status'](_0x695076)[_0xe880('0x3e')](_0x26d1bb);};}exports[_0xe880('0x3f')]=function(_0x44236d,_0x11b9e9){var _0x213376={},_0x3b55a5={},_0x4341fa={'count':0x0,'rows':[]};var _0x11ce4a=_[_0xe880('0x40')](db[_0xe880('0x41')][_0xe880('0x42')],function(_0xc59401){return{'name':_0xc59401[_0xe880('0x43')],'type':_0xc59401[_0xe880('0x44')]['key']};});_0x3b55a5[_0xe880('0x45')]=_[_0xe880('0x40')](_0x11ce4a,_0xe880('0x3d'));_0x3b55a5['query']=_[_0xe880('0x46')](_0x44236d[_0xe880('0x47')]);_0x3b55a5[_0xe880('0x48')]=_[_0xe880('0x49')](_0x3b55a5[_0xe880('0x45')],_0x3b55a5[_0xe880('0x47')]);_0x213376[_0xe880('0x4a')]=_[_0xe880('0x49')](_0x3b55a5[_0xe880('0x45')],qs[_0xe880('0x4b')](_0x44236d[_0xe880('0x47')][_0xe880('0x4b')]));_0x213376[_0xe880('0x4a')]=_0x213376[_0xe880('0x4a')][_0xe880('0x4c')]?_0x213376['attributes']:_0x3b55a5[_0xe880('0x45')];if(!_0x44236d[_0xe880('0x47')]['hasOwnProperty']('nolimit')){_0x213376['limit']=qs[_0xe880('0x33')](_0x44236d[_0xe880('0x47')]['limit']);_0x213376[_0xe880('0x30')]=qs['offset'](_0x44236d['query'][_0xe880('0x30')]);}_0x213376['order']=qs[_0xe880('0x4d')](_0x44236d['query'][_0xe880('0x4d')]);_0x213376['where']=qs['filters'](_['pick'](_0x44236d[_0xe880('0x47')],_0x3b55a5[_0xe880('0x48')]),_0x11ce4a);if(_0x44236d['query'][_0xe880('0x4e')]){_0x213376[_0xe880('0x4f')]=_[_0xe880('0x50')](_0x213376['where'],{'$or':_[_0xe880('0x40')](_0x11ce4a,function(_0x5dffbb){if(_0x5dffbb['type']!==_0xe880('0x51')){var _0x54679c={};_0x54679c[_0x5dffbb['name']]={'$like':'%'+_0x44236d[_0xe880('0x47')][_0xe880('0x4e')]+'%'};return _0x54679c;}})});}_0x213376=_[_0xe880('0x50')]({},_0x213376,_0x44236d[_0xe880('0x52')]);var _0x56ab39={'where':_0x213376['where']};return db[_0xe880('0x41')][_0xe880('0x32')](_0x56ab39)[_0xe880('0x26')](function(_0x1378c0){_0x4341fa[_0xe880('0x32')]=_0x1378c0;if(_0x44236d[_0xe880('0x47')][_0xe880('0x53')]){_0x213376['include']=[{'all':!![]}];}return db[_0xe880('0x41')][_0xe880('0x54')](_0x213376);})[_0xe880('0x26')](function(_0xb6d7a1){_0x4341fa[_0xe880('0x55')]=_0xb6d7a1;return _0x4341fa;})[_0xe880('0x26')](respondWithFilteredResult(_0x11b9e9,_0x213376))[_0xe880('0x56')](handleError(_0x11b9e9,null));};exports[_0xe880('0x57')]=function(_0x435937,_0x454343){var _0x56c627={'raw':!![],'where':{'id':_0x435937[_0xe880('0x58')]['id']}},_0x42875f={};_0x42875f[_0xe880('0x45')]=_[_0xe880('0x46')](db[_0xe880('0x41')][_0xe880('0x42')]);_0x42875f[_0xe880('0x47')]=_[_0xe880('0x46')](_0x435937[_0xe880('0x47')]);_0x42875f[_0xe880('0x48')]=_[_0xe880('0x49')](_0x42875f[_0xe880('0x45')],_0x42875f[_0xe880('0x47')]);_0x56c627['attributes']=_['intersection'](_0x42875f[_0xe880('0x45')],qs[_0xe880('0x4b')](_0x435937['query'][_0xe880('0x4b')]));_0x56c627[_0xe880('0x4a')]=_0x56c627[_0xe880('0x4a')][_0xe880('0x4c')]?_0x56c627[_0xe880('0x4a')]:_0x42875f['model'];if(_0x435937[_0xe880('0x47')][_0xe880('0x53')]){_0x56c627[_0xe880('0x59')]=[{'all':!![]}];}_0x56c627=_[_0xe880('0x50')]({},_0x56c627,_0x435937['options']);return db[_0xe880('0x41')][_0xe880('0x5a')](_0x56c627)[_0xe880('0x26')](handleEntityNotFound(_0x454343,null))['then'](respondWithResult(_0x454343,null))[_0xe880('0x56')](handleError(_0x454343,null));};exports['update']=function(_0xf277fd,_0x29f831){if(_0xf277fd[_0xe880('0x5b')]['id']){delete _0xf277fd[_0xe880('0x5b')]['id'];}return db[_0xe880('0x41')][_0xe880('0x5a')]({'where':{'id':_0xf277fd[_0xe880('0x58')]['id']}})['then'](handleEntityNotFound(_0x29f831,null))[_0xe880('0x26')](saveUpdates(_0xf277fd[_0xe880('0x5b')],null))[_0xe880('0x26')](respondWithResult(_0x29f831,null))['catch'](handleError(_0x29f831,null));};exports[_0xe880('0x3a')]=function(_0x3cf4a8,_0x274f16){return db[_0xe880('0x41')][_0xe880('0x5a')]({'where':{'id':_0x3cf4a8[_0xe880('0x58')]['id']}})[_0xe880('0x26')](handleEntityNotFound(_0x274f16,null))[_0xe880('0x26')](removeEntity(_0x274f16,null))[_0xe880('0x56')](handleError(_0x274f16,null));};exports[_0xe880('0x5c')]=function(_0x1f3883,_0x26b23d){return db[_0xe880('0x41')][_0xe880('0x5c')]()[_0xe880('0x26')](respondWithResult(_0x26b23d,null))[_0xe880('0x56')](handleError(_0x26b23d,null));};var interaction_log=require('../../config/logger')('fax-interactions');exports[_0xe880('0x5d')]=function(_0x205f4e,_0x1a09e9,_0x30ebd5){var _0x2c5b65={'agent':{},'channel':'fax'};if(_0x205f4e[_0xe880('0x5b')]['id']){delete _0x205f4e[_0xe880('0x5b')]['id'];}_0x205f4e['body']['read']=!![];_0x205f4e['body'][_0xe880('0x5e')]=moment()[_0xe880('0x5f')]('YYYY-MM-DD\x20HH:mm:ss');_0x205f4e['body'][_0xe880('0x60')]=_0x205f4e[_0xe880('0x5b')]['UserId']||_0x205f4e[_0xe880('0x61')]['id'];_0x2c5b65['agent']['id']=_0x205f4e['body'][_0xe880('0x60')];return db[_0xe880('0x41')][_0xe880('0x5a')]({'where':{'id':_0x205f4e[_0xe880('0x58')]['id'],'UserId':null}})[_0xe880('0x26')](handleEntityNotFound(_0x1a09e9,null))[_0xe880('0x26')](saveUpdates(_0x205f4e[_0xe880('0x5b')],null))[_0xe880('0x26')](function(_0x5e683d){if(_0x5e683d){_0x2c5b65[_0xe880('0x2e')]=_0x5e683d[_0xe880('0x62')]({'plain':!![]});return db[_0xe880('0x63')][_0xe880('0x5a')]({'where':{'id':_0x5e683d[_0xe880('0x64')]}});}return null;})[_0xe880('0x26')](handleEntityNotFound(_0x1a09e9,null))[_0xe880('0x26')](function(_0x3d96e8){if(_0x3d96e8){return _0x3d96e8['update']({'UserId':_0x205f4e[_0xe880('0x5b')][_0xe880('0x60')],'read1stAt':_[_0xe880('0x65')](_0x3d96e8[_0xe880('0x66')])?moment()['format'](_0xe880('0x67')):undefined});}return null;})['then'](function(_0x422801){if(_0x422801){_0x2c5b65[_0xe880('0x68')]=_0x422801[_0xe880('0x62')]({'plain':!![]});interaction_log[_0xe880('0x27')]('[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x205f4e[_0xe880('0x61')]['id'],_0x205f4e[_0xe880('0x61')][_0xe880('0x3d')],_0x205f4e[_0xe880('0x61')]['role'],_0x2c5b65['interaction']['id'],_0x205f4e['body']?JSON[_0xe880('0x69')](_0x205f4e[_0xe880('0x5b')]):_0xe880('0x6a'));return respondWithRpcPromise(_0xe880('0x6b'),_0xe880('0x6c'),_0x2c5b65);}return null;})[_0xe880('0x26')](function(_0x738751){var _0x53825d=_0xe880('0x6d')+_0x738751[_0xe880('0x2e')][_0xe880('0x6e')];return db['sequelize']['query'](_0x53825d,{'type':db['Sequelize'][_0xe880('0x6f')][_0xe880('0x70')],'raw':!![]})['then'](function(_0xe47f85){return _0xe47f85;});})['then'](function(_0x34ba02){if(_0x34ba02){_0x2c5b65['message']['contact']=_0x34ba02[0x0];if(!_0x205f4e[_0xe880('0x5b')]['UserId'])return;return db[_0xe880('0x71')][_0xe880('0x5a')]({'where':{'id':_0x205f4e['body'][_0xe880('0x60')],'role':_0xe880('0x72')},'attributes':['id',_0xe880('0x3d'),_0xe880('0x73'),_0xe880('0x74'),_0xe880('0x75')],'raw':!![]});}return null;})[_0xe880('0x26')](function(_0x169163){if(!_0x169163)return null;_0x2c5b65[_0xe880('0x2e')]['agent']=_0x169163;return _0x2c5b65;})['then'](function(_0x56843a){if(_0x56843a){if(_0x205f4e['body'][_0xe880('0x76')]){_0x2c5b65[_0xe880('0x2e')][_0xe880('0x77')]=util[_0xe880('0x5f')]('SIP/%s',_0x205f4e['user'][_0xe880('0x3d')]);_0x2c5b65['message'][_0xe880('0x78')]=_0x2c5b65['channel'];_0x2c5b65[_0xe880('0x2e')][_0xe880('0x79')]=_0xe880('0x5d');return respondWithRpcPromise(_0xe880('0x7a'),_0xe880('0x7a'),{'event':_0xe880('0x7b'),'message':_0x2c5b65[_0xe880('0x2e')]},client9002)['then'](function(){return _0x2c5b65;});}return _0x2c5b65;}return null;})[_0xe880('0x26')](respondWithResult(_0x1a09e9,null))[_0xe880('0x56')](handleError(_0x1a09e9,null));};var interaction_log=require('../../config/logger')(_0xe880('0x7c'));exports[_0xe880('0x38')]=function(_0x559aef,_0x3bdb60,_0x414e34){var _0x13a3d1={'agent':{},'channel':_0xe880('0x7d')};if(_0x559aef['body']['id']){delete _0x559aef[_0xe880('0x5b')]['id'];}_0x559aef[_0xe880('0x5b')]['UserId']=_0x559aef[_0xe880('0x5b')]['UserId']||_0x559aef[_0xe880('0x61')]['id'];_0x13a3d1[_0xe880('0x72')]['id']=_0x559aef[_0xe880('0x5b')][_0xe880('0x60')];return db[_0xe880('0x41')][_0xe880('0x5a')]({'where':{'id':_0x559aef[_0xe880('0x58')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x3bdb60,null))[_0xe880('0x26')](function(_0x1c2cac){if(_0x1c2cac){_0x13a3d1[_0xe880('0x2e')]=_0x1c2cac[_0xe880('0x62')]({'plain':!![]});return db[_0xe880('0x63')][_0xe880('0x5a')]({'where':{'id':_0x1c2cac[_0xe880('0x64')]}});}return null;})['then'](handleEntityNotFound(_0x3bdb60,null))['then'](function(_0x34375a){if(_0x34375a){_0x13a3d1[_0xe880('0x68')]=_0x34375a[_0xe880('0x62')]({'plain':!![]});interaction_log[_0xe880('0x27')](_0xe880('0x7e'),_0x559aef[_0xe880('0x61')]['id'],_0x559aef[_0xe880('0x61')][_0xe880('0x3d')],_0x559aef[_0xe880('0x61')]['role'],_0x13a3d1[_0xe880('0x68')]['id'],_0x559aef[_0xe880('0x5b')]?JSON[_0xe880('0x69')](_0x559aef[_0xe880('0x5b')]):_0xe880('0x6a'));return respondWithRpcPromise(_0xe880('0x7f'),_0xe880('0x80'),_0x13a3d1);}return null;})['then'](function(_0x43caed){var _0x4c0bf9='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x43caed[_0xe880('0x2e')]['ContactId'];return db['sequelize'][_0xe880('0x47')](_0x4c0bf9,{'type':db[_0xe880('0x81')]['QueryTypes'][_0xe880('0x70')],'raw':!![]})[_0xe880('0x26')](function(_0x232aa3){return _0x232aa3;});})[_0xe880('0x26')](function(_0x22d400){if(_0x22d400){_0x13a3d1[_0xe880('0x2e')][_0xe880('0x82')]=_0x22d400[0x0];if(!_0x559aef[_0xe880('0x5b')][_0xe880('0x60')])return;return db[_0xe880('0x71')]['find']({'where':{'id':_0x559aef['body'][_0xe880('0x60')],'role':_0xe880('0x72')},'attributes':['id',_0xe880('0x3d'),_0xe880('0x73'),_0xe880('0x74'),_0xe880('0x75')],'raw':!![]});}return null;})[_0xe880('0x26')](function(_0x2aa63a){if(!_0x2aa63a)return null;_0x13a3d1['message'][_0xe880('0x72')]=_0x2aa63a;return _0x13a3d1;})[_0xe880('0x26')](function(_0x5e7b01){if(_0x5e7b01){_0x5e7b01[_0xe880('0x2e')]['interface']=util[_0xe880('0x5f')](_0xe880('0x83'),_0x559aef[_0xe880('0x61')][_0xe880('0x3d')]);_0x5e7b01[_0xe880('0x2e')][_0xe880('0x78')]=_0x13a3d1[_0xe880('0x78')];_0x5e7b01[_0xe880('0x2e')][_0xe880('0x79')]=_0xe880('0x38');respondWithRpcPromise(_0xe880('0x7a'),'EventManager',{'event':'rejectmessage','message':_0x5e7b01[_0xe880('0x2e')]},client9002);return _0x13a3d1;}return null;})[_0xe880('0x26')](respondWithResult(_0x3bdb60,null))[_0xe880('0x56')](handleError(_0x3bdb60,null));};exports[_0xe880('0x84')]=function(_0x5d2261,_0x4eefd8){var _0xa642bd;return db[_0xe880('0x41')][_0xe880('0x84')](_0x5d2261[_0xe880('0x5b')],{})[_0xe880('0x26')](function(_0x32eb94){_0xa642bd=_0x32eb94;return db[_0xe880('0x85')][_0xe880('0x86')]({'where':{'id':_0xa642bd[_0xe880('0x6e')]}});})[_0xe880('0x26')](function(_0x13b4af){if(_[_0xe880('0x65')](_0x13b4af)){return;}else{_0xa642bd[_0xe880('0x7d')]=_0x13b4af[_0xe880('0x7d')];return db[_0xe880('0x87')][_0xe880('0x86')]({'where':{'id':_0xa642bd[_0xe880('0x88')]}});}})[_0xe880('0x26')](function(_0x4801b2){return respondWithRpcPromise(_0xe880('0x89'),_0xe880('0x89'),{'FaxAccountId':_[_0xe880('0x65')](_0x5d2261[_0xe880('0x5b')])?undefined:_0x5d2261[_0xe880('0x5b')]['FaxAccountId'],'path':_[_0xe880('0x65')](_0x4801b2)?undefined:util[_0xe880('0x5f')](_0xe880('0x8a'),_0x4801b2[_0xe880('0x8b')]),'fax':_[_0xe880('0x65')](_0xa642bd[_0xe880('0x7d')])?undefined:_0xa642bd[_0xe880('0x7d')],'AttachmentId':_0xa642bd[_0xe880('0x88')]},client9002);})[_0xe880('0x26')](respondWithResult(_0x4eefd8,0xc9))[_0xe880('0x56')](handleError(_0x4eefd8,null));};exports[_0xe880('0x8c')]=function(_0x132e6c,_0x60f82d){var _0x367d4b=path[_0xe880('0x8d')](config[_0xe880('0x8e')],_0xe880('0x8f'),'files','attachments');return db[_0xe880('0x41')][_0xe880('0x5a')]({'where':{'id':_0x132e6c['params']['id']},'include':[{'model':db[_0xe880('0x87')],'as':_0xe880('0x87')}]})['then'](handleEntityNotFound(_0x60f82d,null))['then'](function(_0x14484f){if(_0x14484f){return _0x60f82d[_0xe880('0x8c')](path[_0xe880('0x8d')](_0x367d4b,_0x14484f[_0xe880('0x87')][_0xe880('0x8b')]));}})[_0xe880('0x56')](handleError(_0x60f82d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16ce=['exports','../../mysqldb','FaxMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook'];(function(_0x31b95c,_0x338cec){var _0x286168=function(_0x99a742){while(--_0x99a742){_0x31b95c['push'](_0x31b95c['shift']());}};_0x286168(++_0x338cec);}(_0x16ce,0xfb));var _0xe16c=function(_0x3f612e,_0x39f9ce){_0x3f612e=_0x3f612e-0x0;var _0x24ee3a=_0x16ce[_0x3f612e];return _0x24ee3a;};'use strict';var EventEmitter=require('events');var FaxMessage=require(_0xe16c('0x0'))['db'][_0xe16c('0x1')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0xe16c('0x2')](0x0);var events={'afterCreate':_0xe16c('0x3'),'afterUpdate':_0xe16c('0x4'),'afterDestroy':_0xe16c('0x5')};function emitEvent(_0x546ed6){return function(_0x55c37e,_0x4a5fc8,_0x884769){FaxMessageEvents['emit'](_0x546ed6+':'+_0x55c37e['id'],_0x55c37e);FaxMessageEvents[_0xe16c('0x6')](_0x546ed6,_0x55c37e);_0x884769(null);};}for(var e in events){if(events[_0xe16c('0x7')](e)){var event=events[e];FaxMessage[_0xe16c('0x8')](e,emitEvent(event));}}module[_0xe16c('0x9')]=FaxMessageEvents;
\ No newline at end of file
+var _0xf02c=['save','update','remove','emit','hasOwnProperty','hook','events','../../mysqldb','FaxMessage','setMaxListeners'];(function(_0x250d76,_0x4a0cb4){var _0x3abf94=function(_0xd1f371){while(--_0xd1f371){_0x250d76['push'](_0x250d76['shift']());}};_0x3abf94(++_0x4a0cb4);}(_0xf02c,0x92));var _0xcf02=function(_0x2e11f7,_0x37abfb){_0x2e11f7=_0x2e11f7-0x0;var _0xacf573=_0xf02c[_0x2e11f7];return _0xacf573;};'use strict';var EventEmitter=require(_0xcf02('0x0'));var FaxMessage=require(_0xcf02('0x1'))['db'][_0xcf02('0x2')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0xcf02('0x3')](0x0);var events={'afterCreate':_0xcf02('0x4'),'afterUpdate':_0xcf02('0x5'),'afterDestroy':_0xcf02('0x6')};function emitEvent(_0x378e8b){return function(_0x3abde3,_0x354198,_0x3e8829){FaxMessageEvents[_0xcf02('0x7')](_0x378e8b+':'+_0x3abde3['id'],_0x3abde3);FaxMessageEvents[_0xcf02('0x7')](_0x378e8b,_0x3abde3);_0x3e8829(null);};}for(var e in events){if(events[_0xcf02('0x8')](e)){var event=events[e];FaxMessage[_0xcf02('0x9')](e,emitEvent(event));}}module['exports']=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2046=['toLowerCase','out','UserId','FaxInteraction','findOne','FaxInteractionId','then','update','createdAt','catch','error','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxMessage.attributes','fax_messages','fti_fax_messages','body','FULLTEXT','models','get','direction'];(function(_0x587612,_0x55a3a8){var _0x1d9865=function(_0x12e1b9){while(--_0x12e1b9){_0x587612['push'](_0x587612['shift']());}};_0x1d9865(++_0x55a3a8);}(_0x2046,0x11a));var _0x6204=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x2046[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x6204('0x0'));var util=require(_0x6204('0x1'));var logger=require(_0x6204('0x2'))(_0x6204('0x3'));var moment=require(_0x6204('0x4'));var BPromise=require(_0x6204('0x5'));var rp=require(_0x6204('0x6'));var fs=require('fs');var path=require(_0x6204('0x7'));var rimraf=require(_0x6204('0x8'));var config=require(_0x6204('0x9'));var attributes=require(_0x6204('0xa'));module['exports']=function(_0x4aab12,_0x56b3da){return _0x4aab12['define']('FaxMessage',attributes,{'tableName':_0x6204('0xb'),'paranoid':![],'indexes':[{'name':_0x6204('0xc'),'fields':[_0x6204('0xd')],'type':_0x6204('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5c4c80,_0x57b9bf,_0x28b4c7){var _0x2e50dd=_0x4aab12[_0x6204('0xf')];var _0x19bd4d=_0x5c4c80[_0x6204('0x10')]({'plain':!![]});if(_0x19bd4d[_0x6204('0x11')][_0x6204('0x12')]()==='in'||_0x19bd4d[_0x6204('0x11')][_0x6204('0x12')]()===_0x6204('0x13')&&!_0x19bd4d['secret']&&!_['isNil'](_0x19bd4d[_0x6204('0x14')])){_0x2e50dd[_0x6204('0x15')][_0x6204('0x16')]({'where':{'id':_0x19bd4d[_0x6204('0x17')]}})[_0x6204('0x18')](function(_0x54de83){if(_0x54de83){_0x54de83[_0x6204('0x19')]({'lastMsgAt':_0x19bd4d[_0x6204('0x1a')],'lastMsgDirection':_0x19bd4d[_0x6204('0x11')][_0x6204('0x12')]()});}})[_0x6204('0x1b')](function(_0x46139b){console[_0x6204('0x1c')](_0x46139b);});}_0x28b4c7();}},'charset':'utf8mb4','collate':_0x6204('0x1d')});};
\ No newline at end of file
+var _0xbfcd=['FaxMessage','fax_messages','fti_fax_messages','body','FULLTEXT','get','direction','isNil','FaxInteraction','findOne','update','createdAt','toLowerCase','catch','error','utf8mb4','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./faxMessage.attributes','exports'];(function(_0x2dbcf0,_0x1c9ce9){var _0x185a15=function(_0x51b059){while(--_0x51b059){_0x2dbcf0['push'](_0x2dbcf0['shift']());}};_0x185a15(++_0x1c9ce9);}(_0xbfcd,0x10a));var _0xdbfc=function(_0x3a2476,_0x310178){_0x3a2476=_0x3a2476-0x0;var _0xea20f=_0xbfcd[_0x3a2476];return _0xea20f;};'use strict';var _=require('lodash');var util=require(_0xdbfc('0x0'));var logger=require('../../config/logger')(_0xdbfc('0x1'));var moment=require(_0xdbfc('0x2'));var BPromise=require(_0xdbfc('0x3'));var rp=require(_0xdbfc('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdbfc('0x5'));var config=require(_0xdbfc('0x6'));var attributes=require(_0xdbfc('0x7'));module[_0xdbfc('0x8')]=function(_0x2b8432,_0x3f45ee){return _0x2b8432['define'](_0xdbfc('0x9'),attributes,{'tableName':_0xdbfc('0xa'),'paranoid':![],'indexes':[{'name':_0xdbfc('0xb'),'fields':[_0xdbfc('0xc')],'type':_0xdbfc('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x325e3f,_0x2a0aad,_0x5d7b53){var _0x1a67cd=_0x2b8432['models'];var _0x1f6237=_0x325e3f[_0xdbfc('0xe')]({'plain':!![]});if(_0x1f6237[_0xdbfc('0xf')]['toLowerCase']()==='in'||_0x1f6237[_0xdbfc('0xf')]['toLowerCase']()==='out'&&!_0x1f6237['secret']&&!_[_0xdbfc('0x10')](_0x1f6237['UserId'])){_0x1a67cd[_0xdbfc('0x11')][_0xdbfc('0x12')]({'where':{'id':_0x1f6237['FaxInteractionId']}})['then'](function(_0x177757){if(_0x177757){_0x177757[_0xdbfc('0x13')]({'lastMsgAt':_0x1f6237[_0xdbfc('0x14')],'lastMsgDirection':_0x1f6237[_0xdbfc('0xf')][_0xdbfc('0x15')]()});}})[_0xdbfc('0x16')](function(_0x2f1b69){console[_0xdbfc('0x17')](_0x2f1b69);});}_0x5d7b53();}},'charset':_0xdbfc('0x18'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa41a=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','./faxMessage.socket','register','request','info','debug','request\x20sent','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','catch','CreateFaxMessage','body','options','raw','then','FaxMessage','update','where','attributes','UpdateFaxMessage','lodash','util','bluebird','randomstring'];(function(_0x5d403a,_0x206b9f){var _0x2bdd96=function(_0x1ae670){while(--_0x1ae670){_0x5d403a['push'](_0x5d403a['shift']());}};_0x2bdd96(++_0x206b9f);}(_0xa41a,0x6b));var _0xaa41=function(_0x38f2c8,_0x4cac48){_0x38f2c8=_0x38f2c8-0x0;var _0x5a91d5=_0xa41a[_0x38f2c8];return _0x5a91d5;};'use strict';var _=require(_0xaa41('0x0'));var util=require(_0xaa41('0x1'));var moment=require('moment');var BPromise=require(_0xaa41('0x2'));var rs=require(_0xaa41('0x3'));var fs=require('fs');var Redis=require(_0xaa41('0x4'));var db=require(_0xaa41('0x5'))['db'];var utils=require(_0xaa41('0x6'));var logger=require(_0xaa41('0x7'))(_0xaa41('0x8'));var config=require(_0xaa41('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xaa41('0xa')][_0xaa41('0xb')]({'port':0x232a});config['redis']=_['defaults'](config[_0xaa41('0xc')],{'host':_0xaa41('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xaa41('0xc')]));require(_0xaa41('0xe'))[_0xaa41('0xf')](socket);function respondWithRpcPromise(_0x1cc344,_0x4263d6,_0x38d930){return new BPromise(function(_0x806f08,_0x423a19){return client[_0xaa41('0x10')](_0x1cc344,_0x38d930)['then'](function(_0x1d3aac){logger[_0xaa41('0x11')]('FaxMessage,\x20%s,\x20%s',_0x4263d6,'request\x20sent');logger[_0xaa41('0x12')]('FaxMessage,\x20%s,\x20%s,\x20%s',_0x4263d6,_0xaa41('0x13'),JSON[_0xaa41('0x14')](_0x1d3aac));if(_0x1d3aac[_0xaa41('0x15')]){if(_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x16')]===0x1f4){logger['error'](_0xaa41('0x17'),_0x4263d6,_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x18')]);return _0x423a19(_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x18')]);}logger[_0xaa41('0x15')](_0xaa41('0x17'),_0x4263d6,_0x1d3aac['error'][_0xaa41('0x18')]);return _0x806f08(_0x1d3aac[_0xaa41('0x15')][_0xaa41('0x18')]);}else{logger[_0xaa41('0x11')](_0xaa41('0x17'),_0x4263d6,_0xaa41('0x13'));_0x806f08(_0x1d3aac[_0xaa41('0x19')][_0xaa41('0x18')]);}})[_0xaa41('0x1a')](function(_0x4fe1a4){logger['error'](_0xaa41('0x17'),_0x4263d6,_0x4fe1a4);_0x423a19(_0x4fe1a4);});});}exports[_0xaa41('0x1b')]=function(_0x35c753){var _0x54c488=this;return new Promise(function(_0x2bf794,_0x1f692b){return db['FaxMessage']['create'](_0x35c753[_0xaa41('0x1c')],{'raw':_0x35c753['options']?_0x35c753[_0xaa41('0x1d')][_0xaa41('0x1e')]===undefined?!![]:![]:!![]})[_0xaa41('0x1f')](function(_0x1f27f3){logger[_0xaa41('0x11')]('CreateFaxMessage',_0x35c753);logger[_0xaa41('0x12')](_0xaa41('0x1b'),_0x35c753,JSON[_0xaa41('0x14')](_0x1f27f3));_0x2bf794(_0x1f27f3);})[_0xaa41('0x1a')](function(_0x274630){logger[_0xaa41('0x15')]('CreateFaxMessage',_0x274630['message'],_0x35c753);_0x1f692b(_0x54c488[_0xaa41('0x15')](0x1f4,_0x274630['message']));});});};exports['UpdateFaxMessage']=function(_0x12e362){var _0x59707f=this;return new Promise(function(_0x536bed,_0x2d0ac0){return db[_0xaa41('0x20')][_0xaa41('0x21')](_0x12e362[_0xaa41('0x1c')],{'raw':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')][_0xaa41('0x22')]||null:null,'attributes':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')][_0xaa41('0x23')]||null:null,'limit':_0x12e362[_0xaa41('0x1d')]?_0x12e362[_0xaa41('0x1d')]['limit']||null:null})[_0xaa41('0x1f')](function(_0x48b48b){logger['info'](_0xaa41('0x24'),_0x12e362);logger[_0xaa41('0x12')]('UpdateFaxMessage',_0x12e362,JSON[_0xaa41('0x14')](_0x48b48b));_0x536bed(_0x48b48b);})[_0xaa41('0x1a')](function(_0x4e3b44){logger['error']('UpdateFaxMessage',_0x4e3b44[_0xaa41('0x18')],_0x12e362);_0x2d0ac0(_0x59707f[_0xaa41('0x15')](0x1f4,_0x4e3b44[_0xaa41('0x18')]));});});};
\ No newline at end of file
+var _0x5fd1=['debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','CreateFaxMessage','FaxMessage','create','body','raw','catch','UpdateFaxMessage','options','where','attributes','limit','lodash','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','then','info','FaxMessage,\x20%s,\x20%s','request\x20sent'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5fd1,0x155));var _0x15fd=function(_0x34fdfd,_0x12f581){_0x34fdfd=_0x34fdfd-0x0;var _0xa14b59=_0x5fd1[_0x34fdfd];return _0xa14b59;};'use strict';var _=require(_0x15fd('0x0'));var util=require('util');var moment=require(_0x15fd('0x1'));var BPromise=require(_0x15fd('0x2'));var rs=require(_0x15fd('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x15fd('0x4'));var logger=require(_0x15fd('0x5'))(_0x15fd('0x6'));var config=require('../../config/environment');var jayson=require(_0x15fd('0x7'));var client=jayson[_0x15fd('0x8')][_0x15fd('0x9')]({'port':0x232a});config[_0x15fd('0xa')]=_[_0x15fd('0xb')](config['redis'],{'host':_0x15fd('0xc'),'port':0x18eb});var socket=require(_0x15fd('0xd'))(new Redis(config[_0x15fd('0xa')]));require('./faxMessage.socket')[_0x15fd('0xe')](socket);function respondWithRpcPromise(_0x5c9c63,_0x3dfdbb,_0x250457){return new BPromise(function(_0x4c226a,_0x4883fd){return client['request'](_0x5c9c63,_0x250457)[_0x15fd('0xf')](function(_0x2a4d55){logger[_0x15fd('0x10')](_0x15fd('0x11'),_0x3dfdbb,_0x15fd('0x12'));logger[_0x15fd('0x13')](_0x15fd('0x14'),_0x3dfdbb,_0x15fd('0x12'),JSON[_0x15fd('0x15')](_0x2a4d55));if(_0x2a4d55['error']){if(_0x2a4d55['error']['code']===0x1f4){logger[_0x15fd('0x16')](_0x15fd('0x11'),_0x3dfdbb,_0x2a4d55[_0x15fd('0x16')][_0x15fd('0x17')]);return _0x4883fd(_0x2a4d55[_0x15fd('0x16')][_0x15fd('0x17')]);}logger[_0x15fd('0x16')](_0x15fd('0x11'),_0x3dfdbb,_0x2a4d55['error']['message']);return _0x4c226a(_0x2a4d55[_0x15fd('0x16')]['message']);}else{logger[_0x15fd('0x10')]('FaxMessage,\x20%s,\x20%s',_0x3dfdbb,_0x15fd('0x12'));_0x4c226a(_0x2a4d55[_0x15fd('0x18')][_0x15fd('0x17')]);}})['catch'](function(_0x367c36){logger[_0x15fd('0x16')](_0x15fd('0x11'),_0x3dfdbb,_0x367c36);_0x4883fd(_0x367c36);});});}exports[_0x15fd('0x19')]=function(_0x2fb919){var _0x36a90e=this;return new Promise(function(_0x3761db,_0x2f46f1){return db[_0x15fd('0x1a')][_0x15fd('0x1b')](_0x2fb919[_0x15fd('0x1c')],{'raw':_0x2fb919['options']?_0x2fb919['options'][_0x15fd('0x1d')]===undefined?!![]:![]:!![]})[_0x15fd('0xf')](function(_0x252a1c){logger[_0x15fd('0x10')](_0x15fd('0x19'),_0x2fb919);logger[_0x15fd('0x13')](_0x15fd('0x19'),_0x2fb919,JSON['stringify'](_0x252a1c));_0x3761db(_0x252a1c);})[_0x15fd('0x1e')](function(_0x2d19ac){logger[_0x15fd('0x16')]('CreateFaxMessage',_0x2d19ac[_0x15fd('0x17')],_0x2fb919);_0x2f46f1(_0x36a90e['error'](0x1f4,_0x2d19ac[_0x15fd('0x17')]));});});};exports[_0x15fd('0x1f')]=function(_0x21601d){var _0x4c9708=this;return new Promise(function(_0x16b87c,_0x1cbf2c){return db[_0x15fd('0x1a')]['update'](_0x21601d[_0x15fd('0x1c')],{'raw':_0x21601d['options']?_0x21601d[_0x15fd('0x20')][_0x15fd('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x21601d[_0x15fd('0x20')]?_0x21601d[_0x15fd('0x20')][_0x15fd('0x21')]||null:null,'attributes':_0x21601d[_0x15fd('0x20')]?_0x21601d[_0x15fd('0x20')][_0x15fd('0x22')]||null:null,'limit':_0x21601d[_0x15fd('0x20')]?_0x21601d[_0x15fd('0x20')][_0x15fd('0x23')]||null:null})['then'](function(_0x47c22c){logger[_0x15fd('0x10')]('UpdateFaxMessage',_0x21601d);logger[_0x15fd('0x13')](_0x15fd('0x1f'),_0x21601d,JSON['stringify'](_0x47c22c));_0x16b87c(_0x47c22c);})[_0x15fd('0x1e')](function(_0x197d15){logger['error'](_0x15fd('0x1f'),_0x197d15[_0x15fd('0x17')],_0x21601d);_0x1cbf2c(_0x4c9708[_0x15fd('0x16')](0x1f4,_0x197d15[_0x15fd('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ba3=['./faxMessage.events','save','remove','update','removeListener','length','faxMessage:'];(function(_0x2af29a,_0x4f44bc){var _0x5ef02f=function(_0x4349ef){while(--_0x4349ef){_0x2af29a['push'](_0x2af29a['shift']());}};_0x5ef02f(++_0x4f44bc);}(_0x5ba3,0x1b2));var _0x35ba=function(_0x43e379,_0x121c7e){_0x43e379=_0x43e379-0x0;var _0x306c51=_0x5ba3[_0x43e379];return _0x306c51;};'use strict';var FaxMessageEvents=require(_0x35ba('0x0'));var events=[_0x35ba('0x1'),_0x35ba('0x2'),_0x35ba('0x3')];function createListener(_0x15d76e,_0x5f4a96){return function(_0x5870c9){_0x5f4a96['emit'](_0x15d76e,_0x5870c9);};}function removeListener(_0x5f38dd,_0x350b98){return function(){FaxMessageEvents[_0x35ba('0x4')](_0x5f38dd,_0x350b98);};}exports['register']=function(_0x4cff35){for(var _0x52717d=0x0,_0x4a226d=events[_0x35ba('0x5')];_0x52717d<_0x4a226d;_0x52717d++){var _0x2dac64=events[_0x52717d];var _0x50888d=createListener(_0x35ba('0x6')+_0x2dac64,_0x4cff35);FaxMessageEvents['on'](_0x2dac64,_0x50888d);}};
\ No newline at end of file
+var _0x17f5=['save','update','emit','register','length','faxMessage:','./faxMessage.events'];(function(_0x25081f,_0x37701f){var _0x94e60f=function(_0x53f126){while(--_0x53f126){_0x25081f['push'](_0x25081f['shift']());}};_0x94e60f(++_0x37701f);}(_0x17f5,0x18e));var _0x517f=function(_0xdee2f7,_0x5a9c65){_0xdee2f7=_0xdee2f7-0x0;var _0x1bdf62=_0x17f5[_0xdee2f7];return _0x1bdf62;};'use strict';var FaxMessageEvents=require(_0x517f('0x0'));var events=[_0x517f('0x1'),'remove',_0x517f('0x2')];function createListener(_0x4f10ca,_0x11aee9){return function(_0x44d4fa){_0x11aee9[_0x517f('0x3')](_0x4f10ca,_0x44d4fa);};}function removeListener(_0x12decd,_0x5bb11d){return function(){FaxMessageEvents['removeListener'](_0x12decd,_0x5bb11d);};}exports[_0x517f('0x4')]=function(_0xa81c52){for(var _0x206313=0x0,_0x463968=events[_0x517f('0x5')];_0x206313<_0x463968;_0x206313++){var _0xc04cbc=events[_0x206313];var _0x1b4ae1=createListener(_0x517f('0x6')+_0xc04cbc,_0xa81c52);FaxMessageEvents['on'](_0xc04cbc,_0x1b4ae1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76dc=['path','connect-timeout','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','index','describe','show','post','tracked','fax','faxmessage:create','create','put','/:id','update','/:id/accept','accept','/:id/reject','delete','destroy','multer','util'];(function(_0xbb873d,_0x471819){var _0x4973cb=function(_0x41dac3){while(--_0x41dac3){_0xbb873d['push'](_0xbb873d['shift']());}};_0x4973cb(++_0x471819);}(_0x76dc,0x1f2));var _0xc76d=function(_0xb19406,_0x3b515b){_0xb19406=_0xb19406-0x0;var _0xe18c6d=_0x76dc[_0xb19406];return _0xe18c6d;};'use strict';var multer=require(_0xc76d('0x0'));var util=require(_0xc76d('0x1'));var path=require(_0xc76d('0x2'));var timeout=require(_0xc76d('0x3'));var express=require('express');var router=express[_0xc76d('0x4')]();var fs_extra=require(_0xc76d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xc76d('0x6'));var config=require('../../config/environment');var controller=require('./faxMessage.controller');router[_0xc76d('0x7')]('/',auth[_0xc76d('0x8')](),controller[_0xc76d('0x9')]);router['get']('/describe',auth[_0xc76d('0x8')](),controller[_0xc76d('0xa')]);router[_0xc76d('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xc76d('0xb')]);router[_0xc76d('0x7')]('/:id/download',auth[_0xc76d('0x8')](),controller['download']);router[_0xc76d('0xc')]('/',auth[_0xc76d('0x8')](),interaction[_0xc76d('0xd')](_0xc76d('0xe'),_0xc76d('0xf')),controller[_0xc76d('0x10')]);router[_0xc76d('0x11')](_0xc76d('0x12'),auth[_0xc76d('0x8')](),controller[_0xc76d('0x13')]);router[_0xc76d('0x11')](_0xc76d('0x14'),auth[_0xc76d('0x8')](),controller[_0xc76d('0x15')]);router['put'](_0xc76d('0x16'),auth[_0xc76d('0x8')](),controller['reject']);router[_0xc76d('0x17')](_0xc76d('0x12'),auth[_0xc76d('0x8')](),controller[_0xc76d('0x18')]);module['exports']=router;
\ No newline at end of file
+var _0x222f=['/:id/reject','delete','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','isAuthenticated','describe','/:id','show','/:id/download','post','tracked','fax','create','put','update','/:id/accept'];(function(_0x27a8a9,_0x2a2b4d){var _0x8da759=function(_0x21ed81){while(--_0x21ed81){_0x27a8a9['push'](_0x27a8a9['shift']());}};_0x8da759(++_0x2a2b4d);}(_0x222f,0x1a4));var _0xf222=function(_0x4fe496,_0x1d8673){_0x4fe496=_0x4fe496-0x0;var _0x422b24=_0x222f[_0x4fe496];return _0x422b24;};'use strict';var multer=require(_0xf222('0x0'));var util=require(_0xf222('0x1'));var path=require(_0xf222('0x2'));var timeout=require(_0xf222('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf222('0x4'));var auth=require(_0xf222('0x5'));var interaction=require(_0xf222('0x6'));var config=require(_0xf222('0x7'));var controller=require('./faxMessage.controller');router[_0xf222('0x8')]('/',auth['isAuthenticated'](),controller[_0xf222('0x9')]);router[_0xf222('0x8')]('/describe',auth[_0xf222('0xa')](),controller[_0xf222('0xb')]);router['get'](_0xf222('0xc'),auth[_0xf222('0xa')](),controller[_0xf222('0xd')]);router[_0xf222('0x8')](_0xf222('0xe'),auth[_0xf222('0xa')](),controller['download']);router[_0xf222('0xf')]('/',auth[_0xf222('0xa')](),interaction[_0xf222('0x10')](_0xf222('0x11'),'faxmessage:create'),controller[_0xf222('0x12')]);router[_0xf222('0x13')](_0xf222('0xc'),auth[_0xf222('0xa')](),controller[_0xf222('0x14')]);router[_0xf222('0x13')](_0xf222('0x15'),auth[_0xf222('0xa')](),controller['accept']);router['put'](_0xf222('0x16'),auth[_0xf222('0xa')](),controller['reject']);router[_0xf222('0x17')](_0xf222('0xc'),auth[_0xf222('0xa')](),controller[_0xf222('0x18')]);module[_0xf222('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bfc=['beepall','roundrobin','sequelize','STRING','name','INTEGER','ENUM','rrmemory'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x0bfc,0x132));var _0xc0bf=function(_0x4baae2,_0x487ab6){_0x4baae2=_0x4baae2-0x0;var _0x1a2285=_0x0bfc[_0x4baae2];return _0x1a2285;};'use strict';var Sequelize=require(_0xc0bf('0x0'));module['exports']={'name':{'type':Sequelize[_0xc0bf('0x1')],'unique':_0xc0bf('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0xc0bf('0x3')],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xc0bf('0x4')](_0xc0bf('0x5'),_0xc0bf('0x6'),_0xc0bf('0x7')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0xc0bf('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x16e0=['sequelize','STRING','name','ENUM','rrmemory','beepall','INTEGER'];(function(_0x3eaeb5,_0x39ce5e){var _0x48468d=function(_0x3da4e1){while(--_0x3da4e1){_0x3eaeb5['push'](_0x3eaeb5['shift']());}};_0x48468d(++_0x39ce5e);}(_0x16e0,0x1b2));var _0x016e=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x16e0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x016e('0x0'));module['exports']={'name':{'type':Sequelize[_0x016e('0x1')],'unique':_0x016e('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x016e('0x3')](_0x016e('0x4'),_0x016e('0x5'),'roundrobin'),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x016e('0x6')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59e2=['querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','redis','socket.io-emitter','./faxQueue.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','get','UserProfileResource','error','name','send','index','FaxQueue','rawAttributes','fieldName','type','key','map','filters','intersection','attributes','model','fields','length','query','hasOwnProperty','order','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','include','findAll','show','keys','catch','create','body','user','role','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','UserFaxQueue','nolimit','User','findAndCountAll','UserId','faxPause','updatedAt','format','getTeams','findOne','addTeams','ids','Team','Agents','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','emit','userFaxQueue:save','removeTeams','select','tq.TeamId','from','team_has_fax_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','FaxQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','QueryTypes','every','TeamId','includes','all','compact','value','isEmpty','removeAgents','forEach','userFaxQueue:remove','addAgents','omit','spread','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js'];(function(_0x325e35,_0x4fdcfc){var _0x4d2602=function(_0x502e87){while(--_0x502e87){_0x325e35['push'](_0x325e35['shift']());}};_0x4d2602(++_0x4fdcfc);}(_0x59e2,0x7c));var _0x259e=function(_0x239992,_0x207ae4){_0x239992=_0x239992-0x0;var _0x588339=_0x59e2[_0x239992];return _0x588339;};'use strict';var emlformat=require(_0x259e('0x0'));var rimraf=require(_0x259e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x259e('0x2'));var rp=require(_0x259e('0x3'));var moment=require(_0x259e('0x4'));var BPromise=require(_0x259e('0x5'));var Mustache=require('mustache');var util=require(_0x259e('0x6'));var path=require(_0x259e('0x7'));var sox=require(_0x259e('0x8'));var csv=require(_0x259e('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x259e('0xa'));var _=require('lodash');var squel=require(_0x259e('0xb'));var crypto=require(_0x259e('0xc'));var jsforce=require(_0x259e('0xd'));var deskjs=require(_0x259e('0xe'));var toCsv=require(_0x259e('0x9'));var querystring=require(_0x259e('0xf'));var Papa=require('papaparse');var Redis=require(_0x259e('0x10'));var authService=require(_0x259e('0x11'));var qs=require(_0x259e('0x12'));var as=require(_0x259e('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x259e('0x14'))(_0x259e('0x15'));var utils=require('../../config/utils');var config=require(_0x259e('0x16'));var licenseUtil=require(_0x259e('0x17'));var db=require('../../mysqldb')['db'];config[_0x259e('0x18')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x259e('0x19'))(new Redis(config[_0x259e('0x18')]));require(_0x259e('0x1a'))[_0x259e('0x1b')](socket);function respondWithStatusCode(_0x29b01a,_0x1b6e6c){_0x1b6e6c=_0x1b6e6c||0xcc;return function(_0x54f009){if(_0x54f009){return _0x29b01a[_0x259e('0x1c')](_0x1b6e6c);}return _0x29b01a[_0x259e('0x1d')](_0x1b6e6c)[_0x259e('0x1e')]();};}function respondWithResult(_0x35d12b,_0x41549c){_0x41549c=_0x41549c||0xc8;return function(_0x2c22b0){if(_0x2c22b0){return _0x35d12b[_0x259e('0x1d')](_0x41549c)['json'](_0x2c22b0);}};}function respondWithFilteredResult(_0x25568b,_0x4344b1){return function(_0x661bca){if(_0x661bca){var _0x330e13=typeof _0x4344b1[_0x259e('0x1f')]===_0x259e('0x20')&&typeof _0x4344b1[_0x259e('0x21')]==='undefined';var _0x423cc8=_0x661bca[_0x259e('0x22')];var _0x4d4d6f=_0x330e13?0x0:_0x4344b1['offset'];var _0x1e6b97=_0x330e13?_0x661bca[_0x259e('0x22')]:_0x4344b1[_0x259e('0x1f')]+_0x4344b1[_0x259e('0x21')];var _0x512112;if(_0x1e6b97>=_0x423cc8){_0x1e6b97=_0x423cc8;_0x512112=0xc8;}else{_0x512112=0xce;}_0x25568b[_0x259e('0x1d')](_0x512112);return _0x25568b[_0x259e('0x23')](_0x259e('0x24'),_0x4d4d6f+'-'+_0x1e6b97+'/'+_0x423cc8)[_0x259e('0x25')](_0x661bca);}return null;};}function patchUpdates(_0x53bc38){return function(_0x118203){try{jsonpatch[_0x259e('0x26')](_0x118203,_0x53bc38,!![]);}catch(_0xb45a12){return BPromise[_0x259e('0x27')](_0xb45a12);}return _0x118203[_0x259e('0x28')]();};}function saveUpdates(_0x49f8c6,_0x4732f2){return function(_0x1d179d){if(_0x1d179d){return _0x1d179d[_0x259e('0x29')](_0x49f8c6)[_0x259e('0x2a')](function(_0x4edfec){return _0x4edfec;});}return null;};}function removeEntity(_0x429b01,_0x4c54cb){return function(_0x3f4db1){if(_0x3f4db1){return _0x3f4db1[_0x259e('0x2b')]()['then'](function(){var _0x5db586=_0x3f4db1[_0x259e('0x2c')]({'plain':!![]});var _0x11e278='FaxQueues';return db[_0x259e('0x2d')][_0x259e('0x2b')]({'where':{'type':_0x11e278,'resourceId':_0x5db586['id']}})[_0x259e('0x2a')](function(){return _0x3f4db1;});})[_0x259e('0x2a')](function(){_0x429b01['status'](0xcc)[_0x259e('0x1e')]();});}};}function handleEntityNotFound(_0x17c447,_0x3777d1){return function(_0xdbcfe0){if(!_0xdbcfe0){_0x17c447['sendStatus'](0x194);}return _0xdbcfe0;};}function handleError(_0x115bc8,_0x561167){_0x561167=_0x561167||0x1f4;return function(_0x33c9cb){logger[_0x259e('0x2e')](_0x33c9cb['stack']);if(_0x33c9cb[_0x259e('0x2f')]){delete _0x33c9cb[_0x259e('0x2f')];}_0x115bc8[_0x259e('0x1d')](_0x561167)[_0x259e('0x30')](_0x33c9cb);};}exports[_0x259e('0x31')]=function(_0x566529,_0x54c5c7){var _0x40695b={},_0x292e82={},_0x14bdf3={'count':0x0,'rows':[]};var _0x26c0f5=_['map'](db[_0x259e('0x32')][_0x259e('0x33')],function(_0x58f534){return{'name':_0x58f534[_0x259e('0x34')],'type':_0x58f534[_0x259e('0x35')][_0x259e('0x36')]};});_0x292e82['model']=_[_0x259e('0x37')](_0x26c0f5,'name');_0x292e82['query']=_['keys'](_0x566529['query']);_0x292e82[_0x259e('0x38')]=_[_0x259e('0x39')](_0x292e82['model'],_0x292e82['query']);_0x40695b[_0x259e('0x3a')]=_['intersection'](_0x292e82[_0x259e('0x3b')],qs[_0x259e('0x3c')](_0x566529['query'][_0x259e('0x3c')]));_0x40695b[_0x259e('0x3a')]=_0x40695b[_0x259e('0x3a')][_0x259e('0x3d')]?_0x40695b['attributes']:_0x292e82[_0x259e('0x3b')];if(!_0x566529[_0x259e('0x3e')][_0x259e('0x3f')]('nolimit')){_0x40695b[_0x259e('0x21')]=qs[_0x259e('0x21')](_0x566529[_0x259e('0x3e')][_0x259e('0x21')]);_0x40695b[_0x259e('0x1f')]=qs[_0x259e('0x1f')](_0x566529[_0x259e('0x3e')][_0x259e('0x1f')]);}_0x40695b[_0x259e('0x40')]=qs[_0x259e('0x41')](_0x566529[_0x259e('0x3e')][_0x259e('0x41')]);_0x40695b['where']=qs[_0x259e('0x38')](_[_0x259e('0x42')](_0x566529[_0x259e('0x3e')],_0x292e82[_0x259e('0x38')]),_0x26c0f5);if(_0x566529[_0x259e('0x3e')][_0x259e('0x43')]){_0x40695b['where']=_[_0x259e('0x44')](_0x40695b[_0x259e('0x45')],{'$or':_[_0x259e('0x37')](_0x26c0f5,function(_0x125bd7){if(_0x125bd7[_0x259e('0x35')]!==_0x259e('0x46')){var _0x25fca2={};_0x25fca2[_0x125bd7[_0x259e('0x2f')]]={'$like':'%'+_0x566529[_0x259e('0x3e')]['filter']+'%'};return _0x25fca2;}})});}_0x40695b=_[_0x259e('0x44')]({},_0x40695b,_0x566529[_0x259e('0x47')]);var _0x164429={'where':_0x40695b[_0x259e('0x45')]};return db[_0x259e('0x32')][_0x259e('0x22')](_0x164429)['then'](function(_0x184704){_0x14bdf3[_0x259e('0x22')]=_0x184704;if(_0x566529[_0x259e('0x3e')][_0x259e('0x48')]){_0x40695b[_0x259e('0x49')]=[{'all':!![]}];}return db['FaxQueue'][_0x259e('0x4a')](_0x40695b);})[_0x259e('0x2a')](function(_0x114e1b){_0x14bdf3['rows']=_0x114e1b;return _0x14bdf3;})[_0x259e('0x2a')](respondWithFilteredResult(_0x54c5c7,_0x40695b))['catch'](handleError(_0x54c5c7,null));};exports[_0x259e('0x4b')]=function(_0x21cd3c,_0x27b353){var _0x21c838={'raw':!![],'where':{'id':_0x21cd3c['params']['id']}},_0x519e74={};_0x519e74[_0x259e('0x3b')]=_[_0x259e('0x4c')](db[_0x259e('0x32')]['rawAttributes']);_0x519e74['query']=_[_0x259e('0x4c')](_0x21cd3c[_0x259e('0x3e')]);_0x519e74[_0x259e('0x38')]=_[_0x259e('0x39')](_0x519e74[_0x259e('0x3b')],_0x519e74[_0x259e('0x3e')]);_0x21c838[_0x259e('0x3a')]=_[_0x259e('0x39')](_0x519e74[_0x259e('0x3b')],qs[_0x259e('0x3c')](_0x21cd3c['query'][_0x259e('0x3c')]));_0x21c838[_0x259e('0x3a')]=_0x21c838[_0x259e('0x3a')][_0x259e('0x3d')]?_0x21c838[_0x259e('0x3a')]:_0x519e74[_0x259e('0x3b')];if(_0x21cd3c[_0x259e('0x3e')][_0x259e('0x48')]){_0x21c838[_0x259e('0x49')]=[{'all':!![]}];}_0x21c838=_[_0x259e('0x44')]({},_0x21c838,_0x21cd3c[_0x259e('0x47')]);return db['FaxQueue']['find'](_0x21c838)[_0x259e('0x2a')](handleEntityNotFound(_0x27b353,null))[_0x259e('0x2a')](respondWithResult(_0x27b353,null))[_0x259e('0x4d')](handleError(_0x27b353,null));};exports[_0x259e('0x4e')]=function(_0x5c9d22,_0x36af84){return db[_0x259e('0x32')][_0x259e('0x4e')](_0x5c9d22[_0x259e('0x4f')],{})[_0x259e('0x2a')](function(_0x278de8){var _0x1694be=_0x5c9d22[_0x259e('0x50')]['get']({'plain':!![]});if(!_0x1694be)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1694be[_0x259e('0x51')]===_0x259e('0x50')){var _0xb32769=_0x278de8[_0x259e('0x2c')]({'plain':!![]});var _0x413e26='FaxQueues';return db['UserProfileSection'][_0x259e('0x52')]({'where':{'name':_0x413e26,'userProfileId':_0x1694be[_0x259e('0x53')]},'raw':!![]})['then'](function(_0x2b2596){if(_0x2b2596&&_0x2b2596[_0x259e('0x54')]===0x0){return db[_0x259e('0x2d')]['create']({'name':_0xb32769[_0x259e('0x2f')],'resourceId':_0xb32769['id'],'type':_0x2b2596[_0x259e('0x2f')],'sectionId':_0x2b2596['id']},{})[_0x259e('0x2a')](function(){return _0x278de8;});}else{return _0x278de8;}})[_0x259e('0x4d')](function(_0x54dc33){logger['error'](_0x259e('0x55'),_0x54dc33);throw _0x54dc33;});}return _0x278de8;})[_0x259e('0x2a')](respondWithResult(_0x36af84,0xc9))[_0x259e('0x4d')](handleError(_0x36af84,null));};exports[_0x259e('0x29')]=function(_0x458050,_0x4c9268){if(_0x458050['body']['id']){delete _0x458050[_0x259e('0x4f')]['id'];}return db[_0x259e('0x32')][_0x259e('0x52')]({'where':{'id':_0x458050[_0x259e('0x56')]['id']}})['then'](handleEntityNotFound(_0x4c9268,null))[_0x259e('0x2a')](saveUpdates(_0x458050[_0x259e('0x4f')],null))[_0x259e('0x2a')](respondWithResult(_0x4c9268,null))[_0x259e('0x4d')](handleError(_0x4c9268,null));};exports[_0x259e('0x2b')]=function(_0x27ea3c,_0x55a9a0){return db[_0x259e('0x32')]['find']({'where':{'id':_0x27ea3c[_0x259e('0x56')]['id']}})[_0x259e('0x2a')](handleEntityNotFound(_0x55a9a0,null))[_0x259e('0x2a')](removeEntity(_0x55a9a0,null))['catch'](handleError(_0x55a9a0,null));};exports[_0x259e('0x57')]=function(_0x48b79f,_0x32c8ed){return db[_0x259e('0x32')][_0x259e('0x57')]()[_0x259e('0x2a')](respondWithResult(_0x32c8ed,null))[_0x259e('0x4d')](handleError(_0x32c8ed,null));};exports[_0x259e('0x58')]=function(_0x176700,_0x332d7c,_0x44ebc7){var _0x5e88b={'raw':!![],'where':{}},_0x422f7c={},_0x4faf7a;return db[_0x259e('0x32')]['findOne']({'where':{'id':_0x176700['params']['id']}})['then'](handleEntityNotFound(_0x332d7c,null))['then'](function(_0x503f21){if(_0x503f21){_0x4faf7a=_0x503f21[_0x259e('0x2c')]({'plain':!![]});_0x422f7c[_0x259e('0x3b')]=_['keys'](db[_0x259e('0x59')]['rawAttributes']);_0x422f7c['query']=_['keys'](_0x176700['query']);_0x422f7c[_0x259e('0x38')]=_['intersection'](_0x422f7c[_0x259e('0x3b')],_0x422f7c['query']);_0x5e88b[_0x259e('0x3a')]=_[_0x259e('0x39')](_0x422f7c['model'],qs['fields'](_0x176700['query'][_0x259e('0x3c')]));_0x5e88b[_0x259e('0x3a')]=_0x5e88b[_0x259e('0x3a')][_0x259e('0x3d')]?_0x5e88b[_0x259e('0x3a')]:_0x422f7c[_0x259e('0x3b')];if(!_0x176700[_0x259e('0x3e')]['hasOwnProperty'](_0x259e('0x5a'))){_0x5e88b[_0x259e('0x21')]=qs[_0x259e('0x21')](_0x176700[_0x259e('0x3e')][_0x259e('0x21')]);_0x5e88b[_0x259e('0x1f')]=qs[_0x259e('0x1f')](_0x176700['query']['offset']);}_0x5e88b[_0x259e('0x40')]=qs[_0x259e('0x41')](_0x176700[_0x259e('0x3e')][_0x259e('0x41')]);_0x5e88b[_0x259e('0x45')]=qs[_0x259e('0x38')](_[_0x259e('0x42')](_0x176700[_0x259e('0x3e')],_0x422f7c[_0x259e('0x38')]));_0x5e88b[_0x259e('0x45')]['FaxQueueId']=_0x503f21['id'];if(_0x176700['query'][_0x259e('0x43')]){_0x5e88b[_0x259e('0x45')]=_[_0x259e('0x44')](_0x5e88b[_0x259e('0x45')],{'$or':_[_0x259e('0x37')](_0x5e88b[_0x259e('0x3a')],function(_0xe1ce88){var _0x5f4401={};_0x5f4401[_0xe1ce88]={'$like':'%'+_0x176700[_0x259e('0x3e')][_0x259e('0x43')]+'%'};return _0x5f4401;})});}_0x5e88b=_[_0x259e('0x44')]({},_0x5e88b,_0x176700[_0x259e('0x47')]);return db[_0x259e('0x59')]['findAll'](_0x5e88b);}})[_0x259e('0x2a')](function(_0x250a2a){if(_0x250a2a){return db[_0x259e('0x5b')][_0x259e('0x5c')]({'where':{'id':_['map'](_0x250a2a,_0x259e('0x5d')),'role':'agent'},'attributes':['id',_0x259e('0x2f'),_0x259e('0x5e'),_0x259e('0x5f'),'createdAt']});}})[_0x259e('0x2a')](function(_0x333988){if(_0x333988){return{'count':_0x333988[_0x259e('0x22')],'rows':_[_0x259e('0x37')](_0x333988['rows'],function(_0x3607f3){return{'membername':_0x3607f3[_0x259e('0x2f')],'UserId':_0x3607f3['id'],'queue_name':_0x4faf7a['name'],'FaxQueueId':_0x4faf7a['id'],'interface':util[_0x259e('0x60')]('%s/%s','SIP',_0x3607f3['name']),'penalty':0x0,'paused':_0x3607f3[_0x259e('0x5e')],'createdAt':_0x3607f3['createdAt'],'updatedAt':_0x3607f3[_0x259e('0x5f')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x259e('0x2a')](respondWithFilteredResult(_0x332d7c,_0x5e88b))[_0x259e('0x4d')](handleError(_0x332d7c,null));};exports[_0x259e('0x61')]=function(_0x2330be,_0x11c416,_0x43ba46){var _0x4754e2={};var _0x296cf5={};var _0x462174;var _0x20106d;return db['FaxQueue'][_0x259e('0x62')]({'where':{'id':_0x2330be[_0x259e('0x56')]['id']}})[_0x259e('0x2a')](handleEntityNotFound(_0x11c416,null))['then'](function(_0x6f3567){if(_0x6f3567){_0x462174=_0x6f3567;_0x296cf5[_0x259e('0x3b')]=_[_0x259e('0x4c')](db['Team'][_0x259e('0x33')]);_0x296cf5[_0x259e('0x3e')]=_[_0x259e('0x4c')](_0x2330be[_0x259e('0x3e')]);_0x296cf5[_0x259e('0x38')]=_['intersection'](_0x296cf5[_0x259e('0x3b')],_0x296cf5[_0x259e('0x3e')]);_0x4754e2[_0x259e('0x3a')]=_[_0x259e('0x39')](_0x296cf5[_0x259e('0x3b')],qs[_0x259e('0x3c')](_0x2330be[_0x259e('0x3e')][_0x259e('0x3c')]));_0x4754e2['attributes']=_0x4754e2['attributes'][_0x259e('0x3d')]?_0x4754e2[_0x259e('0x3a')]:_0x296cf5[_0x259e('0x3b')];_0x4754e2['order']=qs[_0x259e('0x41')](_0x2330be['query'][_0x259e('0x41')]);_0x4754e2[_0x259e('0x45')]=qs[_0x259e('0x38')](_[_0x259e('0x42')](_0x2330be['query'],_0x296cf5[_0x259e('0x38')]));if(_0x2330be['query'][_0x259e('0x43')]){_0x4754e2[_0x259e('0x45')]=_[_0x259e('0x44')](_0x4754e2[_0x259e('0x45')],{'$or':_[_0x259e('0x37')](_0x4754e2[_0x259e('0x3a')],function(_0x244087){var _0x1db7e3={};_0x1db7e3[_0x244087]={'$like':'%'+_0x2330be[_0x259e('0x3e')][_0x259e('0x43')]+'%'};return _0x1db7e3;})});}_0x4754e2=_[_0x259e('0x44')]({},_0x4754e2,_0x2330be[_0x259e('0x47')]);return _0x462174[_0x259e('0x61')](_0x4754e2);}})[_0x259e('0x2a')](function(_0x217938){if(_0x217938){_0x20106d=_0x217938[_0x259e('0x3d')];if(!_0x2330be[_0x259e('0x3e')]['hasOwnProperty'](_0x259e('0x5a'))){_0x4754e2[_0x259e('0x21')]=qs[_0x259e('0x21')](_0x2330be[_0x259e('0x3e')]['limit']);_0x4754e2[_0x259e('0x1f')]=qs[_0x259e('0x1f')](_0x2330be[_0x259e('0x3e')]['offset']);}return _0x462174[_0x259e('0x61')](_0x4754e2);}})[_0x259e('0x2a')](function(_0x589c80){if(_0x589c80){return _0x589c80?{'count':_0x20106d,'rows':_0x589c80}:null;}})[_0x259e('0x2a')](respondWithResult(_0x11c416,null))['catch'](handleError(_0x11c416,null));};exports[_0x259e('0x63')]=function(_0x1132c9,_0x320dea,_0x1ac9f2){var _0x25c79f=_0x1132c9[_0x259e('0x4f')][_0x259e('0x64')];return db[_0x259e('0x65')]['findAll']({'where':{'id':_0x25c79f},'attributes':['id'],'include':[{'model':db[_0x259e('0x5b')],'as':_0x259e('0x66'),'attributes':['id',_0x259e('0x2f'),'online',_0x259e('0x67'),_0x259e('0x68')],'raw':!![]}]})[_0x259e('0x2a')](function(_0xef8249){if(_0xef8249){var _0x4e26e4=_[_0x259e('0x69')](_0xef8249,function(_0x6ab363){var _0x1c9d23=_0x6ab363[_0x259e('0x2c')]({'plain':!![]});return _0x1c9d23[_0x259e('0x66')];});return db[_0x259e('0x32')][_0x259e('0x52')]({'where':{'id':_0x1132c9[_0x259e('0x56')]['id']}})['then'](function(_0x11b8c9){return db[_0x259e('0x6a')][_0x259e('0x6b')](function(_0x5ce9a9){return _0x11b8c9[_0x259e('0x63')](_0x25c79f,{'transaction':_0x5ce9a9})[_0x259e('0x2a')](function(){return BPromise[_0x259e('0x6c')](_0x4e26e4,function(_0x56c63a){return db[_0x259e('0x59')][_0x259e('0x6d')]({'where':{'UserId':_0x56c63a['id'],'FaxQueueId':_0x1132c9[_0x259e('0x56')]['id']},'transaction':_0x5ce9a9});});})[_0x259e('0x2a')](function(){_0x4e26e4['forEach'](function(_0x39a75e){socket[_0x259e('0x6e')](_0x259e('0x6f'),{'UserId':_0x39a75e['id'],'FaxQueueId':_0x11b8c9['id']});});});});});}})[_0x259e('0x2a')](respondWithStatusCode(_0x320dea,null))[_0x259e('0x4d')](handleError(_0x320dea,null));};exports[_0x259e('0x70')]=function(_0x37f76f,_0x1d146e,_0x52f3b4){return db[_0x259e('0x65')][_0x259e('0x4a')]({'where':{'id':_0x37f76f[_0x259e('0x3e')][_0x259e('0x64')]},'attributes':['id'],'include':[{'model':db[_0x259e('0x5b')],'as':_0x259e('0x66'),'attributes':['id'],'raw':!![]}]})[_0x259e('0x2a')](handleEntityNotFound(_0x1d146e,null))[_0x259e('0x2a')](function(_0x5e1c0d){var _0x839509=_[_0x259e('0x37')](_0x5e1c0d,'id');var _0x31e4b7=[];var _0x365ebd=[];var _0xf0f598=squel[_0x259e('0x71')]();_0xf0f598['field'](_0x259e('0x72'))[_0x259e('0x73')](_0x259e('0x74'),'tq')[_0x259e('0x75')](_0x259e('0x76'),'ut',_0x259e('0x77'))['where'](_0x259e('0x78'),_0x37f76f[_0x259e('0x56')]['id']);for(var _0x2a354b=0x0;_0x2a354b<_0x5e1c0d['length'];_0x2a354b+=0x1){let _0x2234a9=_0x5e1c0d[_0x2a354b];for(var _0x4b970c=0x0;_0x4b970c<_0x2234a9[_0x259e('0x66')][_0x259e('0x3d')];_0x4b970c+=0x1){let _0x5af34a=_0x2234a9[_0x259e('0x66')][_0x4b970c];var _0x5f3ce6=_0xf0f598[_0x259e('0x79')]();_0x5f3ce6[_0x259e('0x45')](_0x259e('0x7a'),_0x5af34a['id']);_0x365ebd[_0x259e('0x7b')](db[_0x259e('0x6a')][_0x259e('0x3e')](_0x5f3ce6['toString'](),{'type':db['sequelize'][_0x259e('0x7c')]['SELECT']})[_0x259e('0x2a')](function(_0x22996f){if(_0x22996f['length']===0x1){return _0x5af34a['id'];}else{var _0x3e964d=_[_0x259e('0x7d')](_[_0x259e('0x37')](_0x22996f,_0x259e('0x7e')),function(_0x862aea){return _[_0x259e('0x7f')](_0x839509,_0x862aea);});if(_0x3e964d){return _0x5af34a['id'];}}}));}}return BPromise[_0x259e('0x80')](_0x365ebd)[_0x259e('0x2a')](function(_0x2ec52d){_0x31e4b7=_(_0x31e4b7)['union'](_0x2ec52d)[_0x259e('0x81')]()[_0x259e('0x82')]();return db[_0x259e('0x32')]['find']({'where':{'id':_0x37f76f[_0x259e('0x56')]['id']}})[_0x259e('0x2a')](function(_0x3c6f2c){return db['sequelize'][_0x259e('0x6b')](function(_0x2f7e8e){return _0x3c6f2c[_0x259e('0x70')](_0x37f76f[_0x259e('0x3e')][_0x259e('0x64')],{'transaction':_0x2f7e8e})['then'](function(){if(!_[_0x259e('0x83')](_0x31e4b7)){return _0x3c6f2c[_0x259e('0x84')](_0x31e4b7,{'transaction':_0x2f7e8e});}})[_0x259e('0x2a')](function(){_0x31e4b7[_0x259e('0x85')](function(_0x4aa21c){socket['emit'](_0x259e('0x86'),{'UserId':_0x4aa21c,'FaxQueueId':_0x3c6f2c['id']});});});});});});})[_0x259e('0x2a')](respondWithStatusCode(_0x1d146e,null))['catch'](handleError(_0x1d146e,null));};exports[_0x259e('0x87')]=function(_0x35f5d1,_0x5e4d7c,_0x4b6bc3){return db[_0x259e('0x32')][_0x259e('0x52')]({'where':{'id':_0x35f5d1[_0x259e('0x56')]['id']}})['then'](handleEntityNotFound(_0x5e4d7c,null))[_0x259e('0x2a')](function(_0xf5227c){if(_0xf5227c){return _0xf5227c[_0x259e('0x87')](_0x35f5d1[_0x259e('0x4f')][_0x259e('0x64')],_[_0x259e('0x88')](_0x35f5d1['body'],[_0x259e('0x64'),'id'])||{})[_0x259e('0x89')](function(_0x3b8fbb){for(var _0x6eb36e=0x0;_0x6eb36e<_0x35f5d1[_0x259e('0x4f')]['ids'][_0x259e('0x3d')];_0x6eb36e+=0x1){socket['emit'](_0x259e('0x6f'),{'UserId':Number(_0x35f5d1[_0x259e('0x4f')][_0x259e('0x64')][_0x6eb36e]),'FaxQueueId':Number(_0x35f5d1[_0x259e('0x56')]['id'])});}return _0x3b8fbb;});}})[_0x259e('0x2a')](respondWithResult(_0x5e4d7c,null))[_0x259e('0x4d')](handleError(_0x5e4d7c,null));};exports[_0x259e('0x84')]=function(_0x90d4ea,_0x4aff34,_0x4b7157){return db[_0x259e('0x32')]['find']({'where':{'id':_0x90d4ea['params']['id']}})['then'](handleEntityNotFound(_0x4aff34,null))[_0x259e('0x2a')](function(_0x4a634e){if(_0x4a634e){return _0x4a634e[_0x259e('0x84')](_0x90d4ea[_0x259e('0x3e')]['ids'])[_0x259e('0x2a')](function(){if(_['isArray'](_0x90d4ea[_0x259e('0x3e')][_0x259e('0x64')])){for(var _0xe42849=0x0;_0xe42849<_0x90d4ea['query'][_0x259e('0x64')][_0x259e('0x3d')];_0xe42849+=0x1){socket[_0x259e('0x6e')]('userFaxQueue:remove',{'UserId':Number(_0x90d4ea[_0x259e('0x3e')][_0x259e('0x64')][_0xe42849]),'FaxQueueId':Number(_0x90d4ea['params']['id'])});}}else{socket['emit'](_0x259e('0x86'),{'UserId':Number(_0x90d4ea[_0x259e('0x3e')]['ids']),'FaxQueueId':Number(_0x90d4ea['params']['id'])});}});}})[_0x259e('0x2a')](respondWithStatusCode(_0x4aff34,null))[_0x259e('0x4d')](handleError(_0x4aff34,null));};exports[_0x259e('0x8a')]=function(_0x403506,_0x241038,_0x3980f3){var _0x9f8e43={};var _0x5b3113={};var _0xc3caff;var _0xec1c6;return db[_0x259e('0x32')][_0x259e('0x62')]({'where':{'id':_0x403506[_0x259e('0x56')]['id']}})[_0x259e('0x2a')](handleEntityNotFound(_0x241038,null))['then'](function(_0x2ac8b8){if(_0x2ac8b8){_0xc3caff=_0x2ac8b8;_0x5b3113[_0x259e('0x3b')]=_['keys'](db[_0x259e('0x5b')][_0x259e('0x33')]);_0x5b3113['query']=_[_0x259e('0x4c')](_0x403506[_0x259e('0x3e')]);_0x5b3113[_0x259e('0x38')]=_[_0x259e('0x39')](_0x5b3113[_0x259e('0x3b')],_0x5b3113['query']);_0x9f8e43[_0x259e('0x3a')]=_[_0x259e('0x39')](_0x5b3113[_0x259e('0x3b')],qs[_0x259e('0x3c')](_0x403506[_0x259e('0x3e')][_0x259e('0x3c')]));_0x9f8e43['attributes']=_0x9f8e43[_0x259e('0x3a')][_0x259e('0x3d')]?_0x9f8e43[_0x259e('0x3a')]:_0x5b3113[_0x259e('0x3b')];_0x9f8e43[_0x259e('0x40')]=qs[_0x259e('0x41')](_0x403506[_0x259e('0x3e')]['sort']);_0x9f8e43[_0x259e('0x45')]=qs[_0x259e('0x38')](_['pick'](_0x403506['query'],_0x5b3113[_0x259e('0x38')]));if(_0x403506[_0x259e('0x3e')][_0x259e('0x43')]){_0x9f8e43['where']=_[_0x259e('0x44')](_0x9f8e43['where'],{'$or':_[_0x259e('0x37')](_0x9f8e43['attributes'],function(_0x4065a5){var _0x591285={};_0x591285[_0x4065a5]={'$like':'%'+_0x403506[_0x259e('0x3e')][_0x259e('0x43')]+'%'};return _0x591285;})});}_0x9f8e43=_[_0x259e('0x44')]({},_0x9f8e43,_0x403506[_0x259e('0x47')]);return _0xc3caff[_0x259e('0x8a')](_0x9f8e43);}})[_0x259e('0x2a')](function(_0x576f1a){if(_0x576f1a){_0xec1c6=_0x576f1a[_0x259e('0x3d')];if(!_0x403506[_0x259e('0x3e')][_0x259e('0x3f')](_0x259e('0x5a'))){_0x9f8e43[_0x259e('0x21')]=qs[_0x259e('0x21')](_0x403506['query'][_0x259e('0x21')]);_0x9f8e43['offset']=qs['offset'](_0x403506[_0x259e('0x3e')]['offset']);}return _0xc3caff[_0x259e('0x8a')](_0x9f8e43);}})[_0x259e('0x2a')](function(_0x597927){if(_0x597927){return _0x597927?{'count':_0xec1c6,'rows':_0x597927}:null;}})[_0x259e('0x2a')](respondWithResult(_0x241038,null))['catch'](handleError(_0x241038,null));};
\ No newline at end of file
+var _0x97f1=['to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','api','../../config/environment','../../mysqldb','redis','localhost','./faxQueue.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','destroy','FaxQueues','UserProfileResource','then','error','stack','name','FaxQueue','fieldName','key','model','map','query','keys','filters','attributes','fields','hasOwnProperty','order','sort','pick','where','merge','type','VIRTUAL','filter','includeAll','include','findAll','rows','catch','show','intersection','options','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','autoAssociation','update','params','describe','getMembers','findOne','UserFaxQueue','rawAttributes','length','nolimit','User','findAndCountAll','faxPause','updatedAt','createdAt','SIP','getTeams','Agents','online','voicePause','interface','flatMap','transaction','addTeams','each','findOrCreate','forEach','emit','removeTeams','ids','select','field','tq.TeamId','from','team_has_fax_queues','join','user_has_teams','FaxQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','sequelize','toString','QueryTypes','includes','all','union','compact','removeAgents','addAgents','omit','userFaxQueue:save','isArray','userFaxQueue:remove','getAgents','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path'];(function(_0x3431d6,_0x19c714){var _0xb63359=function(_0x32936b){while(--_0x32936b){_0x3431d6['push'](_0x3431d6['shift']());}};_0xb63359(++_0x19c714);}(_0x97f1,0x7d));var _0x197f=function(_0x43c640,_0x32cc5a){_0x43c640=_0x43c640-0x0;var _0x355d25=_0x97f1[_0x43c640];return _0x355d25;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x197f('0x0'));var jsonpatch=require(_0x197f('0x1'));var rp=require(_0x197f('0x2'));var moment=require('moment');var BPromise=require(_0x197f('0x3'));var Mustache=require(_0x197f('0x4'));var util=require(_0x197f('0x5'));var path=require(_0x197f('0x6'));var sox=require('sox');var csv=require(_0x197f('0x7'));var ejs=require(_0x197f('0x8'));var fs=require('fs');var fs_extra=require(_0x197f('0x9'));var _=require(_0x197f('0xa'));var squel=require(_0x197f('0xb'));var crypto=require('crypto');var jsforce=require(_0x197f('0xc'));var deskjs=require(_0x197f('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x197f('0xe'));var Redis=require(_0x197f('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x197f('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x197f('0x11'));var utils=require('../../config/utils');var config=require(_0x197f('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x197f('0x13'))['db'];config[_0x197f('0x14')]=_['defaults'](config[_0x197f('0x14')],{'host':_0x197f('0x15'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x197f('0x14')]));require(_0x197f('0x16'))[_0x197f('0x17')](socket);function respondWithStatusCode(_0x29f64b,_0x1a9efc){_0x1a9efc=_0x1a9efc||0xcc;return function(_0x3798bf){if(_0x3798bf){return _0x29f64b[_0x197f('0x18')](_0x1a9efc);}return _0x29f64b[_0x197f('0x19')](_0x1a9efc)[_0x197f('0x1a')]();};}function respondWithResult(_0x2252f1,_0x68c1a1){_0x68c1a1=_0x68c1a1||0xc8;return function(_0x33b8a8){if(_0x33b8a8){return _0x2252f1[_0x197f('0x19')](_0x68c1a1)['json'](_0x33b8a8);}};}function respondWithFilteredResult(_0x44dba9,_0x51dcf8){return function(_0x3c1965){if(_0x3c1965){var _0x2e04e4=typeof _0x51dcf8[_0x197f('0x1b')]===_0x197f('0x1c')&&typeof _0x51dcf8[_0x197f('0x1d')]===_0x197f('0x1c');var _0x4d319d=_0x3c1965['count'];var _0x15d842=_0x2e04e4?0x0:_0x51dcf8['offset'];var _0x2bca2e=_0x2e04e4?_0x3c1965[_0x197f('0x1e')]:_0x51dcf8[_0x197f('0x1b')]+_0x51dcf8[_0x197f('0x1d')];var _0x51bccc;if(_0x2bca2e>=_0x4d319d){_0x2bca2e=_0x4d319d;_0x51bccc=0xc8;}else{_0x51bccc=0xce;}_0x44dba9[_0x197f('0x19')](_0x51bccc);return _0x44dba9[_0x197f('0x1f')](_0x197f('0x20'),_0x15d842+'-'+_0x2bca2e+'/'+_0x4d319d)[_0x197f('0x21')](_0x3c1965);}return null;};}function patchUpdates(_0x3f0b88){return function(_0x4e274c){try{jsonpatch[_0x197f('0x22')](_0x4e274c,_0x3f0b88,!![]);}catch(_0xeef571){return BPromise[_0x197f('0x23')](_0xeef571);}return _0x4e274c[_0x197f('0x24')]();};}function saveUpdates(_0x4c0524,_0x32a7b1){return function(_0xc4758b){if(_0xc4758b){return _0xc4758b['update'](_0x4c0524)['then'](function(_0x28f3a1){return _0x28f3a1;});}return null;};}function removeEntity(_0x39da23,_0x332759){return function(_0x1e5aac){if(_0x1e5aac){return _0x1e5aac[_0x197f('0x25')]()['then'](function(){var _0x3f24e9=_0x1e5aac['get']({'plain':!![]});var _0x6a9bd2=_0x197f('0x26');return db[_0x197f('0x27')]['destroy']({'where':{'type':_0x6a9bd2,'resourceId':_0x3f24e9['id']}})['then'](function(){return _0x1e5aac;});})[_0x197f('0x28')](function(){_0x39da23[_0x197f('0x19')](0xcc)[_0x197f('0x1a')]();});}};}function handleEntityNotFound(_0x14bb6d,_0x4b3733){return function(_0x1778db){if(!_0x1778db){_0x14bb6d[_0x197f('0x18')](0x194);}return _0x1778db;};}function handleError(_0x29916c,_0x565888){_0x565888=_0x565888||0x1f4;return function(_0x5915ae){logger[_0x197f('0x29')](_0x5915ae[_0x197f('0x2a')]);if(_0x5915ae[_0x197f('0x2b')]){delete _0x5915ae[_0x197f('0x2b')];}_0x29916c[_0x197f('0x19')](_0x565888)['send'](_0x5915ae);};}exports['index']=function(_0x5979bf,_0x58b636){var _0x5158be={},_0x212856={},_0x23b81a={'count':0x0,'rows':[]};var _0x3092f3=_['map'](db[_0x197f('0x2c')]['rawAttributes'],function(_0xff0f72){return{'name':_0xff0f72[_0x197f('0x2d')],'type':_0xff0f72['type'][_0x197f('0x2e')]};});_0x212856[_0x197f('0x2f')]=_[_0x197f('0x30')](_0x3092f3,'name');_0x212856[_0x197f('0x31')]=_[_0x197f('0x32')](_0x5979bf[_0x197f('0x31')]);_0x212856[_0x197f('0x33')]=_['intersection'](_0x212856[_0x197f('0x2f')],_0x212856[_0x197f('0x31')]);_0x5158be[_0x197f('0x34')]=_['intersection'](_0x212856[_0x197f('0x2f')],qs[_0x197f('0x35')](_0x5979bf['query'][_0x197f('0x35')]));_0x5158be[_0x197f('0x34')]=_0x5158be[_0x197f('0x34')]['length']?_0x5158be[_0x197f('0x34')]:_0x212856[_0x197f('0x2f')];if(!_0x5979bf[_0x197f('0x31')][_0x197f('0x36')]('nolimit')){_0x5158be['limit']=qs[_0x197f('0x1d')](_0x5979bf['query']['limit']);_0x5158be['offset']=qs[_0x197f('0x1b')](_0x5979bf[_0x197f('0x31')]['offset']);}_0x5158be[_0x197f('0x37')]=qs[_0x197f('0x38')](_0x5979bf[_0x197f('0x31')][_0x197f('0x38')]);_0x5158be['where']=qs[_0x197f('0x33')](_[_0x197f('0x39')](_0x5979bf['query'],_0x212856[_0x197f('0x33')]),_0x3092f3);if(_0x5979bf[_0x197f('0x31')]['filter']){_0x5158be[_0x197f('0x3a')]=_[_0x197f('0x3b')](_0x5158be[_0x197f('0x3a')],{'$or':_[_0x197f('0x30')](_0x3092f3,function(_0x173114){if(_0x173114[_0x197f('0x3c')]!==_0x197f('0x3d')){var _0x288fb7={};_0x288fb7[_0x173114[_0x197f('0x2b')]]={'$like':'%'+_0x5979bf[_0x197f('0x31')][_0x197f('0x3e')]+'%'};return _0x288fb7;}})});}_0x5158be=_[_0x197f('0x3b')]({},_0x5158be,_0x5979bf['options']);var _0x58195a={'where':_0x5158be[_0x197f('0x3a')]};return db[_0x197f('0x2c')]['count'](_0x58195a)[_0x197f('0x28')](function(_0x4c27d1){_0x23b81a[_0x197f('0x1e')]=_0x4c27d1;if(_0x5979bf['query'][_0x197f('0x3f')]){_0x5158be[_0x197f('0x40')]=[{'all':!![]}];}return db[_0x197f('0x2c')][_0x197f('0x41')](_0x5158be);})[_0x197f('0x28')](function(_0x284655){_0x23b81a[_0x197f('0x42')]=_0x284655;return _0x23b81a;})[_0x197f('0x28')](respondWithFilteredResult(_0x58b636,_0x5158be))[_0x197f('0x43')](handleError(_0x58b636,null));};exports[_0x197f('0x44')]=function(_0x19d5e9,_0x496ee8){var _0x19796a={'raw':!![],'where':{'id':_0x19d5e9['params']['id']}},_0x4f8f4e={};_0x4f8f4e[_0x197f('0x2f')]=_['keys'](db[_0x197f('0x2c')]['rawAttributes']);_0x4f8f4e[_0x197f('0x31')]=_[_0x197f('0x32')](_0x19d5e9['query']);_0x4f8f4e[_0x197f('0x33')]=_[_0x197f('0x45')](_0x4f8f4e[_0x197f('0x2f')],_0x4f8f4e[_0x197f('0x31')]);_0x19796a['attributes']=_['intersection'](_0x4f8f4e[_0x197f('0x2f')],qs[_0x197f('0x35')](_0x19d5e9['query']['fields']));_0x19796a[_0x197f('0x34')]=_0x19796a[_0x197f('0x34')]['length']?_0x19796a[_0x197f('0x34')]:_0x4f8f4e[_0x197f('0x2f')];if(_0x19d5e9['query'][_0x197f('0x3f')]){_0x19796a[_0x197f('0x40')]=[{'all':!![]}];}_0x19796a=_[_0x197f('0x3b')]({},_0x19796a,_0x19d5e9[_0x197f('0x46')]);return db['FaxQueue'][_0x197f('0x47')](_0x19796a)['then'](handleEntityNotFound(_0x496ee8,null))['then'](respondWithResult(_0x496ee8,null))[_0x197f('0x43')](handleError(_0x496ee8,null));};exports['create']=function(_0x4567bc,_0x4973ef){return db[_0x197f('0x2c')][_0x197f('0x48')](_0x4567bc[_0x197f('0x49')],{})[_0x197f('0x28')](function(_0x54b9ca){var _0x2a06d3=_0x4567bc['user'][_0x197f('0x4a')]({'plain':!![]});if(!_0x2a06d3)throw new Error(_0x197f('0x4b'));if(_0x2a06d3['role']===_0x197f('0x4c')){var _0x50b975=_0x54b9ca[_0x197f('0x4a')]({'plain':!![]});var _0x143109=_0x197f('0x26');return db[_0x197f('0x4d')][_0x197f('0x47')]({'where':{'name':_0x143109,'userProfileId':_0x2a06d3['userProfileId']},'raw':!![]})[_0x197f('0x28')](function(_0x4cb007){if(_0x4cb007&&_0x4cb007[_0x197f('0x4e')]===0x0){return db[_0x197f('0x27')][_0x197f('0x48')]({'name':_0x50b975[_0x197f('0x2b')],'resourceId':_0x50b975['id'],'type':_0x4cb007[_0x197f('0x2b')],'sectionId':_0x4cb007['id']},{})['then'](function(){return _0x54b9ca;});}else{return _0x54b9ca;}})[_0x197f('0x43')](function(_0x24212a){logger[_0x197f('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x24212a);throw _0x24212a;});}return _0x54b9ca;})[_0x197f('0x28')](respondWithResult(_0x4973ef,0xc9))['catch'](handleError(_0x4973ef,null));};exports[_0x197f('0x4f')]=function(_0x3a2765,_0x2337be){if(_0x3a2765[_0x197f('0x49')]['id']){delete _0x3a2765[_0x197f('0x49')]['id'];}return db[_0x197f('0x2c')][_0x197f('0x47')]({'where':{'id':_0x3a2765[_0x197f('0x50')]['id']}})['then'](handleEntityNotFound(_0x2337be,null))[_0x197f('0x28')](saveUpdates(_0x3a2765[_0x197f('0x49')],null))[_0x197f('0x28')](respondWithResult(_0x2337be,null))['catch'](handleError(_0x2337be,null));};exports[_0x197f('0x25')]=function(_0x3191d0,_0x3221ff){return db['FaxQueue']['find']({'where':{'id':_0x3191d0['params']['id']}})['then'](handleEntityNotFound(_0x3221ff,null))[_0x197f('0x28')](removeEntity(_0x3221ff,null))[_0x197f('0x43')](handleError(_0x3221ff,null));};exports['describe']=function(_0x1af6b9,_0x7badec){return db[_0x197f('0x2c')][_0x197f('0x51')]()[_0x197f('0x28')](respondWithResult(_0x7badec,null))[_0x197f('0x43')](handleError(_0x7badec,null));};exports[_0x197f('0x52')]=function(_0x4eb18d,_0x2b5789,_0x562367){var _0x4c283b={'raw':!![],'where':{}},_0x50dfbc={},_0x57d413;return db[_0x197f('0x2c')][_0x197f('0x53')]({'where':{'id':_0x4eb18d['params']['id']}})[_0x197f('0x28')](handleEntityNotFound(_0x2b5789,null))[_0x197f('0x28')](function(_0x50e2cb){if(_0x50e2cb){_0x57d413=_0x50e2cb['get']({'plain':!![]});_0x50dfbc[_0x197f('0x2f')]=_[_0x197f('0x32')](db[_0x197f('0x54')][_0x197f('0x55')]);_0x50dfbc[_0x197f('0x31')]=_[_0x197f('0x32')](_0x4eb18d[_0x197f('0x31')]);_0x50dfbc[_0x197f('0x33')]=_[_0x197f('0x45')](_0x50dfbc[_0x197f('0x2f')],_0x50dfbc[_0x197f('0x31')]);_0x4c283b['attributes']=_['intersection'](_0x50dfbc[_0x197f('0x2f')],qs[_0x197f('0x35')](_0x4eb18d[_0x197f('0x31')][_0x197f('0x35')]));_0x4c283b[_0x197f('0x34')]=_0x4c283b[_0x197f('0x34')][_0x197f('0x56')]?_0x4c283b[_0x197f('0x34')]:_0x50dfbc[_0x197f('0x2f')];if(!_0x4eb18d['query'][_0x197f('0x36')](_0x197f('0x57'))){_0x4c283b[_0x197f('0x1d')]=qs[_0x197f('0x1d')](_0x4eb18d['query'][_0x197f('0x1d')]);_0x4c283b['offset']=qs[_0x197f('0x1b')](_0x4eb18d['query'][_0x197f('0x1b')]);}_0x4c283b[_0x197f('0x37')]=qs[_0x197f('0x38')](_0x4eb18d[_0x197f('0x31')]['sort']);_0x4c283b[_0x197f('0x3a')]=qs[_0x197f('0x33')](_[_0x197f('0x39')](_0x4eb18d[_0x197f('0x31')],_0x50dfbc['filters']));_0x4c283b[_0x197f('0x3a')]['FaxQueueId']=_0x50e2cb['id'];if(_0x4eb18d[_0x197f('0x31')]['filter']){_0x4c283b[_0x197f('0x3a')]=_[_0x197f('0x3b')](_0x4c283b['where'],{'$or':_[_0x197f('0x30')](_0x4c283b[_0x197f('0x34')],function(_0x1a49ea){var _0x48138c={};_0x48138c[_0x1a49ea]={'$like':'%'+_0x4eb18d[_0x197f('0x31')][_0x197f('0x3e')]+'%'};return _0x48138c;})});}_0x4c283b=_[_0x197f('0x3b')]({},_0x4c283b,_0x4eb18d[_0x197f('0x46')]);return db[_0x197f('0x54')][_0x197f('0x41')](_0x4c283b);}})['then'](function(_0xf6f53c){if(_0xf6f53c){return db[_0x197f('0x58')][_0x197f('0x59')]({'where':{'id':_['map'](_0xf6f53c,'UserId'),'role':'agent'},'attributes':['id',_0x197f('0x2b'),_0x197f('0x5a'),_0x197f('0x5b'),_0x197f('0x5c')]});}})[_0x197f('0x28')](function(_0x2ff36b){if(_0x2ff36b){return{'count':_0x2ff36b[_0x197f('0x1e')],'rows':_[_0x197f('0x30')](_0x2ff36b[_0x197f('0x42')],function(_0x5aa5d8){return{'membername':_0x5aa5d8[_0x197f('0x2b')],'UserId':_0x5aa5d8['id'],'queue_name':_0x57d413[_0x197f('0x2b')],'FaxQueueId':_0x57d413['id'],'interface':util['format']('%s/%s',_0x197f('0x5d'),_0x5aa5d8[_0x197f('0x2b')]),'penalty':0x0,'paused':_0x5aa5d8['faxPause'],'createdAt':_0x5aa5d8[_0x197f('0x5c')],'updatedAt':_0x5aa5d8[_0x197f('0x5b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x197f('0x28')](respondWithFilteredResult(_0x2b5789,_0x4c283b))[_0x197f('0x43')](handleError(_0x2b5789,null));};exports[_0x197f('0x5e')]=function(_0x11a37f,_0x5378a5,_0x26904f){var _0x3a982b={};var _0x4eae91={};var _0x342148;var _0x55261d;return db[_0x197f('0x2c')][_0x197f('0x53')]({'where':{'id':_0x11a37f['params']['id']}})[_0x197f('0x28')](handleEntityNotFound(_0x5378a5,null))[_0x197f('0x28')](function(_0x2718d1){if(_0x2718d1){_0x342148=_0x2718d1;_0x4eae91[_0x197f('0x2f')]=_[_0x197f('0x32')](db['Team'][_0x197f('0x55')]);_0x4eae91[_0x197f('0x31')]=_[_0x197f('0x32')](_0x11a37f[_0x197f('0x31')]);_0x4eae91[_0x197f('0x33')]=_['intersection'](_0x4eae91[_0x197f('0x2f')],_0x4eae91[_0x197f('0x31')]);_0x3a982b['attributes']=_['intersection'](_0x4eae91[_0x197f('0x2f')],qs[_0x197f('0x35')](_0x11a37f[_0x197f('0x31')]['fields']));_0x3a982b[_0x197f('0x34')]=_0x3a982b[_0x197f('0x34')][_0x197f('0x56')]?_0x3a982b['attributes']:_0x4eae91[_0x197f('0x2f')];_0x3a982b[_0x197f('0x37')]=qs[_0x197f('0x38')](_0x11a37f[_0x197f('0x31')][_0x197f('0x38')]);_0x3a982b[_0x197f('0x3a')]=qs[_0x197f('0x33')](_['pick'](_0x11a37f[_0x197f('0x31')],_0x4eae91['filters']));if(_0x11a37f[_0x197f('0x31')]['filter']){_0x3a982b[_0x197f('0x3a')]=_['merge'](_0x3a982b[_0x197f('0x3a')],{'$or':_[_0x197f('0x30')](_0x3a982b['attributes'],function(_0xa278e){var _0x461a96={};_0x461a96[_0xa278e]={'$like':'%'+_0x11a37f[_0x197f('0x31')][_0x197f('0x3e')]+'%'};return _0x461a96;})});}_0x3a982b=_[_0x197f('0x3b')]({},_0x3a982b,_0x11a37f['options']);return _0x342148[_0x197f('0x5e')](_0x3a982b);}})[_0x197f('0x28')](function(_0x320174){if(_0x320174){_0x55261d=_0x320174['length'];if(!_0x11a37f[_0x197f('0x31')]['hasOwnProperty'](_0x197f('0x57'))){_0x3a982b['limit']=qs[_0x197f('0x1d')](_0x11a37f[_0x197f('0x31')][_0x197f('0x1d')]);_0x3a982b[_0x197f('0x1b')]=qs['offset'](_0x11a37f['query']['offset']);}return _0x342148[_0x197f('0x5e')](_0x3a982b);}})[_0x197f('0x28')](function(_0x492849){if(_0x492849){return _0x492849?{'count':_0x55261d,'rows':_0x492849}:null;}})[_0x197f('0x28')](respondWithResult(_0x5378a5,null))[_0x197f('0x43')](handleError(_0x5378a5,null));};exports['addTeams']=function(_0x409d0c,_0x571c16,_0x5a42f7){var _0x3f2527=_0x409d0c[_0x197f('0x49')]['ids'];return db['Team'][_0x197f('0x41')]({'where':{'id':_0x3f2527},'attributes':['id'],'include':[{'model':db[_0x197f('0x58')],'as':_0x197f('0x5f'),'attributes':['id',_0x197f('0x2b'),_0x197f('0x60'),_0x197f('0x61'),_0x197f('0x62')],'raw':!![]}]})[_0x197f('0x28')](function(_0x5d9459){if(_0x5d9459){var _0x3197dc=_[_0x197f('0x63')](_0x5d9459,function(_0x93ecd7){var _0x3bde2a=_0x93ecd7[_0x197f('0x4a')]({'plain':!![]});return _0x3bde2a['Agents'];});return db[_0x197f('0x2c')]['find']({'where':{'id':_0x409d0c[_0x197f('0x50')]['id']}})[_0x197f('0x28')](function(_0xfd0771){return db['sequelize'][_0x197f('0x64')](function(_0x3200c5){return _0xfd0771[_0x197f('0x65')](_0x3f2527,{'transaction':_0x3200c5})[_0x197f('0x28')](function(){return BPromise[_0x197f('0x66')](_0x3197dc,function(_0x12608e){return db[_0x197f('0x54')][_0x197f('0x67')]({'where':{'UserId':_0x12608e['id'],'FaxQueueId':_0x409d0c[_0x197f('0x50')]['id']},'transaction':_0x3200c5});});})[_0x197f('0x28')](function(){_0x3197dc[_0x197f('0x68')](function(_0xb7d1c2){socket[_0x197f('0x69')]('userFaxQueue:save',{'UserId':_0xb7d1c2['id'],'FaxQueueId':_0xfd0771['id']});});});});});}})[_0x197f('0x28')](respondWithStatusCode(_0x571c16,null))[_0x197f('0x43')](handleError(_0x571c16,null));};exports[_0x197f('0x6a')]=function(_0x4baa77,_0xa05f6,_0x2ebae4){return db['Team'][_0x197f('0x41')]({'where':{'id':_0x4baa77[_0x197f('0x31')][_0x197f('0x6b')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x197f('0x5f'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0xa05f6,null))[_0x197f('0x28')](function(_0xabef14){var _0x4cc34a=_[_0x197f('0x30')](_0xabef14,'id');var _0x56fa4d=[];var _0x1fb766=[];var _0x2cb751=squel[_0x197f('0x6c')]();_0x2cb751[_0x197f('0x6d')](_0x197f('0x6e'))[_0x197f('0x6f')](_0x197f('0x70'),'tq')[_0x197f('0x71')](_0x197f('0x72'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x197f('0x73'),_0x4baa77['params']['id']);for(var _0x122e42=0x0;_0x122e42<_0xabef14['length'];_0x122e42+=0x1){let _0x3a2658=_0xabef14[_0x122e42];for(var _0x3ff11c=0x0;_0x3ff11c<_0x3a2658[_0x197f('0x5f')][_0x197f('0x56')];_0x3ff11c+=0x1){let _0xbeac8e=_0x3a2658[_0x197f('0x5f')][_0x3ff11c];var _0x2bbc0a=_0x2cb751[_0x197f('0x74')]();_0x2bbc0a['where'](_0x197f('0x75'),_0xbeac8e['id']);_0x1fb766['push'](db[_0x197f('0x76')][_0x197f('0x31')](_0x2bbc0a[_0x197f('0x77')](),{'type':db[_0x197f('0x76')][_0x197f('0x78')]['SELECT']})[_0x197f('0x28')](function(_0x29708){if(_0x29708[_0x197f('0x56')]===0x1){return _0xbeac8e['id'];}else{var _0x507a9c=_['every'](_[_0x197f('0x30')](_0x29708,'TeamId'),function(_0x1fec4a){return _[_0x197f('0x79')](_0x4cc34a,_0x1fec4a);});if(_0x507a9c){return _0xbeac8e['id'];}}}));}}return BPromise[_0x197f('0x7a')](_0x1fb766)[_0x197f('0x28')](function(_0xefa852){_0x56fa4d=_(_0x56fa4d)[_0x197f('0x7b')](_0xefa852)[_0x197f('0x7c')]()['value']();return db['FaxQueue']['find']({'where':{'id':_0x4baa77[_0x197f('0x50')]['id']}})[_0x197f('0x28')](function(_0x5addd4){return db[_0x197f('0x76')][_0x197f('0x64')](function(_0x3c1958){return _0x5addd4[_0x197f('0x6a')](_0x4baa77['query'][_0x197f('0x6b')],{'transaction':_0x3c1958})[_0x197f('0x28')](function(){if(!_['isEmpty'](_0x56fa4d)){return _0x5addd4[_0x197f('0x7d')](_0x56fa4d,{'transaction':_0x3c1958});}})['then'](function(){_0x56fa4d[_0x197f('0x68')](function(_0x38b3d7){socket[_0x197f('0x69')]('userFaxQueue:remove',{'UserId':_0x38b3d7,'FaxQueueId':_0x5addd4['id']});});});});});});})[_0x197f('0x28')](respondWithStatusCode(_0xa05f6,null))[_0x197f('0x43')](handleError(_0xa05f6,null));};exports[_0x197f('0x7e')]=function(_0x1ad606,_0x22c677,_0x3b9eb7){return db['FaxQueue']['find']({'where':{'id':_0x1ad606['params']['id']}})[_0x197f('0x28')](handleEntityNotFound(_0x22c677,null))[_0x197f('0x28')](function(_0x10f7b6){if(_0x10f7b6){return _0x10f7b6[_0x197f('0x7e')](_0x1ad606[_0x197f('0x49')][_0x197f('0x6b')],_[_0x197f('0x7f')](_0x1ad606[_0x197f('0x49')],[_0x197f('0x6b'),'id'])||{})['spread'](function(_0x53190a){for(var _0x2949d8=0x0;_0x2949d8<_0x1ad606[_0x197f('0x49')]['ids'][_0x197f('0x56')];_0x2949d8+=0x1){socket[_0x197f('0x69')](_0x197f('0x80'),{'UserId':Number(_0x1ad606[_0x197f('0x49')]['ids'][_0x2949d8]),'FaxQueueId':Number(_0x1ad606[_0x197f('0x50')]['id'])});}return _0x53190a;});}})['then'](respondWithResult(_0x22c677,null))[_0x197f('0x43')](handleError(_0x22c677,null));};exports['removeAgents']=function(_0x2e62f3,_0x3403c0,_0x5b0674){return db[_0x197f('0x2c')][_0x197f('0x47')]({'where':{'id':_0x2e62f3[_0x197f('0x50')]['id']}})[_0x197f('0x28')](handleEntityNotFound(_0x3403c0,null))['then'](function(_0x435262){if(_0x435262){return _0x435262[_0x197f('0x7d')](_0x2e62f3[_0x197f('0x31')][_0x197f('0x6b')])['then'](function(){if(_[_0x197f('0x81')](_0x2e62f3['query'][_0x197f('0x6b')])){for(var _0x1d594d=0x0;_0x1d594d<_0x2e62f3[_0x197f('0x31')]['ids']['length'];_0x1d594d+=0x1){socket[_0x197f('0x69')](_0x197f('0x82'),{'UserId':Number(_0x2e62f3[_0x197f('0x31')]['ids'][_0x1d594d]),'FaxQueueId':Number(_0x2e62f3[_0x197f('0x50')]['id'])});}}else{socket[_0x197f('0x69')]('userFaxQueue:remove',{'UserId':Number(_0x2e62f3[_0x197f('0x31')]['ids']),'FaxQueueId':Number(_0x2e62f3[_0x197f('0x50')]['id'])});}});}})[_0x197f('0x28')](respondWithStatusCode(_0x3403c0,null))['catch'](handleError(_0x3403c0,null));};exports[_0x197f('0x83')]=function(_0x29d15d,_0x3d7dd9,_0x557310){var _0x1b45f8={};var _0x3274c1={};var _0x3bbb74;var _0x396a3c;return db[_0x197f('0x2c')][_0x197f('0x53')]({'where':{'id':_0x29d15d['params']['id']}})['then'](handleEntityNotFound(_0x3d7dd9,null))[_0x197f('0x28')](function(_0x3995cc){if(_0x3995cc){_0x3bbb74=_0x3995cc;_0x3274c1[_0x197f('0x2f')]=_[_0x197f('0x32')](db['User'][_0x197f('0x55')]);_0x3274c1['query']=_[_0x197f('0x32')](_0x29d15d[_0x197f('0x31')]);_0x3274c1[_0x197f('0x33')]=_['intersection'](_0x3274c1[_0x197f('0x2f')],_0x3274c1[_0x197f('0x31')]);_0x1b45f8[_0x197f('0x34')]=_['intersection'](_0x3274c1['model'],qs[_0x197f('0x35')](_0x29d15d[_0x197f('0x31')][_0x197f('0x35')]));_0x1b45f8[_0x197f('0x34')]=_0x1b45f8[_0x197f('0x34')][_0x197f('0x56')]?_0x1b45f8[_0x197f('0x34')]:_0x3274c1[_0x197f('0x2f')];_0x1b45f8[_0x197f('0x37')]=qs[_0x197f('0x38')](_0x29d15d[_0x197f('0x31')][_0x197f('0x38')]);_0x1b45f8[_0x197f('0x3a')]=qs[_0x197f('0x33')](_[_0x197f('0x39')](_0x29d15d['query'],_0x3274c1[_0x197f('0x33')]));if(_0x29d15d[_0x197f('0x31')][_0x197f('0x3e')]){_0x1b45f8['where']=_[_0x197f('0x3b')](_0x1b45f8[_0x197f('0x3a')],{'$or':_[_0x197f('0x30')](_0x1b45f8[_0x197f('0x34')],function(_0x4e92f8){var _0x268ce3={};_0x268ce3[_0x4e92f8]={'$like':'%'+_0x29d15d[_0x197f('0x31')][_0x197f('0x3e')]+'%'};return _0x268ce3;})});}_0x1b45f8=_[_0x197f('0x3b')]({},_0x1b45f8,_0x29d15d['options']);return _0x3bbb74[_0x197f('0x83')](_0x1b45f8);}})[_0x197f('0x28')](function(_0x3b456d){if(_0x3b456d){_0x396a3c=_0x3b456d[_0x197f('0x56')];if(!_0x29d15d[_0x197f('0x31')][_0x197f('0x36')](_0x197f('0x57'))){_0x1b45f8[_0x197f('0x1d')]=qs[_0x197f('0x1d')](_0x29d15d[_0x197f('0x31')][_0x197f('0x1d')]);_0x1b45f8[_0x197f('0x1b')]=qs['offset'](_0x29d15d[_0x197f('0x31')]['offset']);}return _0x3bbb74[_0x197f('0x83')](_0x1b45f8);}})[_0x197f('0x28')](function(_0x4b09c3){if(_0x4b09c3){return _0x4b09c3?{'count':_0x396a3c,'rows':_0x4b09c3}:null;}})['then'](respondWithResult(_0x3d7dd9,null))[_0x197f('0x43')](handleError(_0x3d7dd9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x721f=['../../mysqldb','FaxQueue','setMaxListeners','update','emit','hasOwnProperty','hook','exports','events'];(function(_0x5b561d,_0x422b7c){var _0x431060=function(_0x401409){while(--_0x401409){_0x5b561d['push'](_0x5b561d['shift']());}};_0x431060(++_0x422b7c);}(_0x721f,0xfb));var _0xf721=function(_0x2c2375,_0x224a55){_0x2c2375=_0x2c2375-0x0;var _0x42b879=_0x721f[_0x2c2375];return _0x42b879;};'use strict';var EventEmitter=require(_0xf721('0x0'));var FaxQueue=require(_0xf721('0x1'))['db'][_0xf721('0x2')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0xf721('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xf721('0x4'),'afterDestroy':'remove'};function emitEvent(_0x45f4b4){return function(_0x166a1e,_0x221099,_0x2ccc10){FaxQueueEvents['emit'](_0x45f4b4+':'+_0x166a1e['id'],_0x166a1e);FaxQueueEvents[_0xf721('0x5')](_0x45f4b4,_0x166a1e);_0x2ccc10(null);};}for(var e in events){if(events[_0xf721('0x6')](e)){var event=events[e];FaxQueue[_0xf721('0x7')](e,emitEvent(event));}}module[_0xf721('0x8')]=FaxQueueEvents;
\ No newline at end of file
+var _0xd936=['events','FaxQueue','save','update','emit','hasOwnProperty','hook','exports'];(function(_0x461a70,_0x9dc1d1){var _0x17e007=function(_0x10c637){while(--_0x10c637){_0x461a70['push'](_0x461a70['shift']());}};_0x17e007(++_0x9dc1d1);}(_0xd936,0x188));var _0x6d93=function(_0xa459ff,_0x495be7){_0xa459ff=_0xa459ff-0x0;var _0x12d4e1=_0xd936[_0xa459ff];return _0x12d4e1;};'use strict';var EventEmitter=require(_0x6d93('0x0'));var FaxQueue=require('../../mysqldb')['db'][_0x6d93('0x1')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6d93('0x2'),'afterUpdate':_0x6d93('0x3'),'afterDestroy':'remove'};function emitEvent(_0x40b050){return function(_0x60ad42,_0xa8099f,_0x43318f){FaxQueueEvents[_0x6d93('0x4')](_0x40b050+':'+_0x60ad42['id'],_0x60ad42);FaxQueueEvents[_0x6d93('0x4')](_0x40b050,_0x60ad42);_0x43318f(null);};}for(var e in events){if(events[_0x6d93('0x5')](e)){var event=events[e];FaxQueue[_0x6d93('0x6')](e,emitEvent(event));}}module[_0x6d93('0x7')]=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8824=['./faxQueue.attributes','exports','define','FaxQueue','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x75f869,_0x3690d6){var _0x10af8b=function(_0x22d3ff){while(--_0x22d3ff){_0x75f869['push'](_0x75f869['shift']());}};_0x10af8b(++_0x3690d6);}(_0x8824,0x124));var _0x4882=function(_0x2a6d7d,_0x2d361b){_0x2a6d7d=_0x2a6d7d-0x0;var _0x19f785=_0x8824[_0x2a6d7d];return _0x19f785;};'use strict';var _=require(_0x4882('0x0'));var util=require(_0x4882('0x1'));var logger=require(_0x4882('0x2'))(_0x4882('0x3'));var moment=require('moment');var BPromise=require(_0x4882('0x4'));var rp=require(_0x4882('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4882('0x6'));var config=require(_0x4882('0x7'));var attributes=require(_0x4882('0x8'));module[_0x4882('0x9')]=function(_0x589f37,_0x45a801){return _0x589f37[_0x4882('0xa')](_0x4882('0xb'),attributes,{'tableName':'fax_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf5d8=['lodash','util','api','bluebird','path','rimraf','../../config/environment','./faxQueue.attributes','exports','FaxQueue','fax_queues'];(function(_0x449158,_0x44e1b0){var _0x1f3c3a=function(_0x5f1053){while(--_0x5f1053){_0x449158['push'](_0x449158['shift']());}};_0x1f3c3a(++_0x44e1b0);}(_0xf5d8,0x1ce));var _0x8f5d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf5d8[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x8f5d('0x0'));var util=require(_0x8f5d('0x1'));var logger=require('../../config/logger')(_0x8f5d('0x2'));var moment=require('moment');var BPromise=require(_0x8f5d('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8f5d('0x4'));var rimraf=require(_0x8f5d('0x5'));var config=require(_0x8f5d('0x6'));var attributes=require(_0x8f5d('0x7'));module[_0x8f5d('0x8')]=function(_0x2c28c0,_0x35fcf7){return _0x2c28c0['define'](_0x8f5d('0x9'),attributes,{'tableName':_0x8f5d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9199=['ShowFaxQueue','FaxQueue','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./faxQueue.socket','register','request','then','info','FaxQueue,\x20%s,\x20%s','FaxQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetFaxQueue','findAll','raw','options','limit','include','model','attributes','map','debug'];(function(_0x3d2f63,_0x590356){var _0x35979c=function(_0x394a1f){while(--_0x394a1f){_0x3d2f63['push'](_0x3d2f63['shift']());}};_0x35979c(++_0x590356);}(_0x9199,0x14a));var _0x9919=function(_0xbae21b,_0x449cfb){_0xbae21b=_0xbae21b-0x0;var _0x10f16f=_0x9199[_0xbae21b];return _0x10f16f;};'use strict';var _=require(_0x9919('0x0'));var util=require(_0x9919('0x1'));var moment=require(_0x9919('0x2'));var BPromise=require(_0x9919('0x3'));var rs=require(_0x9919('0x4'));var fs=require('fs');var Redis=require(_0x9919('0x5'));var db=require(_0x9919('0x6'))['db'];var utils=require(_0x9919('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x9919('0x8'));var jayson=require(_0x9919('0x9'));var client=jayson[_0x9919('0xa')][_0x9919('0xb')]({'port':0x232a});config['redis']=_['defaults'](config[_0x9919('0xc')],{'host':_0x9919('0xd'),'port':0x18eb});var socket=require(_0x9919('0xe'))(new Redis(config[_0x9919('0xc')]));require(_0x9919('0xf'))[_0x9919('0x10')](socket);function respondWithRpcPromise(_0x10fb2b,_0x446f67,_0x143e1c){return new BPromise(function(_0x3b3958,_0x56170c){return client[_0x9919('0x11')](_0x10fb2b,_0x143e1c)[_0x9919('0x12')](function(_0x47bcdb){logger[_0x9919('0x13')](_0x9919('0x14'),_0x446f67,'request\x20sent');logger['debug'](_0x9919('0x15'),_0x446f67,_0x9919('0x16'),JSON[_0x9919('0x17')](_0x47bcdb));if(_0x47bcdb[_0x9919('0x18')]){if(_0x47bcdb[_0x9919('0x18')][_0x9919('0x19')]===0x1f4){logger[_0x9919('0x18')](_0x9919('0x14'),_0x446f67,_0x47bcdb[_0x9919('0x18')][_0x9919('0x1a')]);return _0x56170c(_0x47bcdb['error']['message']);}logger[_0x9919('0x18')]('FaxQueue,\x20%s,\x20%s',_0x446f67,_0x47bcdb[_0x9919('0x18')][_0x9919('0x1a')]);return _0x3b3958(_0x47bcdb[_0x9919('0x18')]['message']);}else{logger['info']('FaxQueue,\x20%s,\x20%s',_0x446f67,_0x9919('0x16'));_0x3b3958(_0x47bcdb[_0x9919('0x1b')][_0x9919('0x1a')]);}})[_0x9919('0x1c')](function(_0x408fbc){logger[_0x9919('0x18')]('FaxQueue,\x20%s,\x20%s',_0x446f67,_0x408fbc);_0x56170c(_0x408fbc);});});}exports[_0x9919('0x1d')]=function(_0x56348e){var _0x10a1cf=this;return new Promise(function(_0x55c35b,_0x54361d){return db['FaxQueue'][_0x9919('0x1e')]({'raw':_0x56348e['options']?_0x56348e['options'][_0x9919('0x1f')]===undefined?!![]:![]:!![],'where':_0x56348e['options']?_0x56348e[_0x9919('0x20')]['where']||null:null,'attributes':_0x56348e[_0x9919('0x20')]?_0x56348e[_0x9919('0x20')]['attributes']||null:null,'limit':_0x56348e[_0x9919('0x20')]?_0x56348e[_0x9919('0x20')][_0x9919('0x21')]||null:null,'include':_0x56348e[_0x9919('0x20')]?_0x56348e[_0x9919('0x20')]['include']?_['map'](_0x56348e[_0x9919('0x20')][_0x9919('0x22')],function(_0x198b39){return{'model':db[_0x198b39[_0x9919('0x23')]],'as':_0x198b39['as'],'attributes':_0x198b39[_0x9919('0x24')],'include':_0x198b39['include']?_[_0x9919('0x25')](_0x198b39[_0x9919('0x22')],function(_0x45bb67){return{'model':db[_0x45bb67[_0x9919('0x23')]],'as':_0x45bb67['as'],'attributes':_0x45bb67[_0x9919('0x24')],'include':_0x45bb67[_0x9919('0x22')]?_['map'](_0x45bb67[_0x9919('0x22')],function(_0x29693d){return{'model':db[_0x29693d[_0x9919('0x23')]],'as':_0x29693d['as'],'attributes':_0x29693d[_0x9919('0x24')]};}):[]};}):[]};}):[]:[]})[_0x9919('0x12')](function(_0x204bd5){logger[_0x9919('0x13')](_0x9919('0x1d'),_0x56348e);logger[_0x9919('0x26')]('GetFaxQueue',_0x56348e,JSON[_0x9919('0x17')](_0x204bd5));_0x55c35b(_0x204bd5);})['catch'](function(_0x346c6c){logger[_0x9919('0x18')](_0x9919('0x1d'),_0x346c6c[_0x9919('0x1a')],_0x56348e);_0x54361d(_0x10a1cf[_0x9919('0x18')](0x1f4,_0x346c6c[_0x9919('0x1a')]));});});};exports[_0x9919('0x27')]=function(_0x599a15){var _0x5d5e4b=this;return new Promise(function(_0x4851fb,_0x56e141){return db[_0x9919('0x28')]['find']({'raw':_0x599a15[_0x9919('0x20')]?_0x599a15[_0x9919('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0x599a15[_0x9919('0x20')]?_0x599a15[_0x9919('0x20')]['where']||null:null,'attributes':_0x599a15[_0x9919('0x20')]?_0x599a15['options'][_0x9919('0x24')]||null:null,'include':_0x599a15['options']?_0x599a15[_0x9919('0x20')]['include']?_[_0x9919('0x25')](_0x599a15[_0x9919('0x20')]['include'],function(_0x3307fb){return{'model':db[_0x3307fb[_0x9919('0x23')]],'as':_0x3307fb['as'],'attributes':_0x3307fb[_0x9919('0x24')],'include':_0x3307fb['include']?_[_0x9919('0x25')](_0x3307fb[_0x9919('0x22')],function(_0x4aa6f1){return{'model':db[_0x4aa6f1[_0x9919('0x23')]],'as':_0x4aa6f1['as'],'attributes':_0x4aa6f1['attributes'],'include':_0x4aa6f1['include']?_[_0x9919('0x25')](_0x4aa6f1[_0x9919('0x22')],function(_0x5d7443){return{'model':db[_0x5d7443['model']],'as':_0x5d7443['as'],'attributes':_0x5d7443[_0x9919('0x24')]};}):[]};}):[]};}):[]:[]})[_0x9919('0x12')](function(_0x1d0c1d){logger['info'](_0x9919('0x27'),_0x599a15);logger[_0x9919('0x26')]('ShowFaxQueue',_0x599a15,JSON[_0x9919('0x17')](_0x1d0c1d));_0x4851fb(_0x1d0c1d);})[_0x9919('0x1c')](function(_0xa0e572){logger['error'](_0x9919('0x27'),_0xa0e572[_0x9919('0x1a')],_0x599a15);_0x56e141(_0x5d5e4b[_0x9919('0x18')](0x1f4,_0xa0e572['message']));});});};
\ No newline at end of file
+var _0x438c=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./faxQueue.socket','register','request','then','request\x20sent','debug','stringify','error','code','FaxQueue,\x20%s,\x20%s','message','info','catch','FaxQueue','findAll','options','raw','where','limit','include','map','model','attributes','GetFaxQueue','ShowFaxQueue','util','moment','bluebird'];(function(_0x2d0512,_0x181bbd){var _0x4db5ed=function(_0x2caf46){while(--_0x2caf46){_0x2d0512['push'](_0x2d0512['shift']());}};_0x4db5ed(++_0x181bbd);}(_0x438c,0x1c0));var _0xc438=function(_0x372f26,_0x2bfab4){_0x372f26=_0x372f26-0x0;var _0x233c46=_0x438c[_0x372f26];return _0x233c46;};'use strict';var _=require('lodash');var util=require(_0xc438('0x0'));var moment=require(_0xc438('0x1'));var BPromise=require(_0xc438('0x2'));var rs=require(_0xc438('0x3'));var fs=require('fs');var Redis=require(_0xc438('0x4'));var db=require(_0xc438('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xc438('0x6'))(_0xc438('0x7'));var config=require(_0xc438('0x8'));var jayson=require(_0xc438('0x9'));var client=jayson[_0xc438('0xa')][_0xc438('0xb')]({'port':0x232a});config['redis']=_[_0xc438('0xc')](config[_0xc438('0xd')],{'host':_0xc438('0xe'),'port':0x18eb});var socket=require(_0xc438('0xf'))(new Redis(config[_0xc438('0xd')]));require(_0xc438('0x10'))[_0xc438('0x11')](socket);function respondWithRpcPromise(_0x4c4c26,_0x2a8085,_0x3d6e6a){return new BPromise(function(_0x5b4a29,_0x11d17b){return client[_0xc438('0x12')](_0x4c4c26,_0x3d6e6a)[_0xc438('0x13')](function(_0x4ad48e){logger['info']('FaxQueue,\x20%s,\x20%s',_0x2a8085,_0xc438('0x14'));logger[_0xc438('0x15')]('FaxQueue,\x20%s,\x20%s,\x20%s',_0x2a8085,_0xc438('0x14'),JSON[_0xc438('0x16')](_0x4ad48e));if(_0x4ad48e['error']){if(_0x4ad48e[_0xc438('0x17')][_0xc438('0x18')]===0x1f4){logger[_0xc438('0x17')](_0xc438('0x19'),_0x2a8085,_0x4ad48e[_0xc438('0x17')]['message']);return _0x11d17b(_0x4ad48e[_0xc438('0x17')][_0xc438('0x1a')]);}logger['error'](_0xc438('0x19'),_0x2a8085,_0x4ad48e[_0xc438('0x17')][_0xc438('0x1a')]);return _0x5b4a29(_0x4ad48e[_0xc438('0x17')]['message']);}else{logger[_0xc438('0x1b')](_0xc438('0x19'),_0x2a8085,_0xc438('0x14'));_0x5b4a29(_0x4ad48e['result']['message']);}})[_0xc438('0x1c')](function(_0x54a988){logger[_0xc438('0x17')](_0xc438('0x19'),_0x2a8085,_0x54a988);_0x11d17b(_0x54a988);});});}exports['GetFaxQueue']=function(_0x238a72){var _0x5bdc8d=this;return new Promise(function(_0x504a8d,_0xc2e2f0){return db[_0xc438('0x1d')][_0xc438('0x1e')]({'raw':_0x238a72[_0xc438('0x1f')]?_0x238a72[_0xc438('0x1f')][_0xc438('0x20')]===undefined?!![]:![]:!![],'where':_0x238a72[_0xc438('0x1f')]?_0x238a72[_0xc438('0x1f')][_0xc438('0x21')]||null:null,'attributes':_0x238a72[_0xc438('0x1f')]?_0x238a72[_0xc438('0x1f')]['attributes']||null:null,'limit':_0x238a72[_0xc438('0x1f')]?_0x238a72[_0xc438('0x1f')][_0xc438('0x22')]||null:null,'include':_0x238a72['options']?_0x238a72['options'][_0xc438('0x23')]?_[_0xc438('0x24')](_0x238a72[_0xc438('0x1f')][_0xc438('0x23')],function(_0x2a4eac){return{'model':db[_0x2a4eac[_0xc438('0x25')]],'as':_0x2a4eac['as'],'attributes':_0x2a4eac[_0xc438('0x26')],'include':_0x2a4eac['include']?_[_0xc438('0x24')](_0x2a4eac[_0xc438('0x23')],function(_0x442d97){return{'model':db[_0x442d97[_0xc438('0x25')]],'as':_0x442d97['as'],'attributes':_0x442d97[_0xc438('0x26')],'include':_0x442d97['include']?_[_0xc438('0x24')](_0x442d97[_0xc438('0x23')],function(_0x14d9cd){return{'model':db[_0x14d9cd[_0xc438('0x25')]],'as':_0x14d9cd['as'],'attributes':_0x14d9cd[_0xc438('0x26')]};}):[]};}):[]};}):[]:[]})[_0xc438('0x13')](function(_0x4463ac){logger[_0xc438('0x1b')](_0xc438('0x27'),_0x238a72);logger[_0xc438('0x15')](_0xc438('0x27'),_0x238a72,JSON[_0xc438('0x16')](_0x4463ac));_0x504a8d(_0x4463ac);})['catch'](function(_0xb5a2f5){logger[_0xc438('0x17')](_0xc438('0x27'),_0xb5a2f5[_0xc438('0x1a')],_0x238a72);_0xc2e2f0(_0x5bdc8d[_0xc438('0x17')](0x1f4,_0xb5a2f5['message']));});});};exports['ShowFaxQueue']=function(_0x37ffef){var _0x385486=this;return new Promise(function(_0x3c0353,_0x43f21f){return db[_0xc438('0x1d')]['find']({'raw':_0x37ffef[_0xc438('0x1f')]?_0x37ffef[_0xc438('0x1f')][_0xc438('0x20')]===undefined?!![]:![]:!![],'where':_0x37ffef[_0xc438('0x1f')]?_0x37ffef[_0xc438('0x1f')]['where']||null:null,'attributes':_0x37ffef[_0xc438('0x1f')]?_0x37ffef[_0xc438('0x1f')][_0xc438('0x26')]||null:null,'include':_0x37ffef[_0xc438('0x1f')]?_0x37ffef['options']['include']?_[_0xc438('0x24')](_0x37ffef['options'][_0xc438('0x23')],function(_0x192ac8){return{'model':db[_0x192ac8['model']],'as':_0x192ac8['as'],'attributes':_0x192ac8['attributes'],'include':_0x192ac8[_0xc438('0x23')]?_[_0xc438('0x24')](_0x192ac8[_0xc438('0x23')],function(_0xf5c229){return{'model':db[_0xf5c229[_0xc438('0x25')]],'as':_0xf5c229['as'],'attributes':_0xf5c229['attributes'],'include':_0xf5c229[_0xc438('0x23')]?_[_0xc438('0x24')](_0xf5c229[_0xc438('0x23')],function(_0x973e6f){return{'model':db[_0x973e6f[_0xc438('0x25')]],'as':_0x973e6f['as'],'attributes':_0x973e6f['attributes']};}):[]};}):[]};}):[]:[]})[_0xc438('0x13')](function(_0x4eba19){logger[_0xc438('0x1b')](_0xc438('0x28'),_0x37ffef);logger['debug'](_0xc438('0x28'),_0x37ffef,JSON[_0xc438('0x16')](_0x4eba19));_0x3c0353(_0x4eba19);})[_0xc438('0x1c')](function(_0x49dfe9){logger[_0xc438('0x17')](_0xc438('0x28'),_0x49dfe9[_0xc438('0x1a')],_0x37ffef);_0x43f21f(_0x385486[_0xc438('0x17')](0x1f4,_0x49dfe9['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c1f=['save','remove','update','emit','removeListener','register','length','faxQueue:','./faxQueue.events'];(function(_0x4a56de,_0x23a44a){var _0x33cd37=function(_0x228eb9){while(--_0x228eb9){_0x4a56de['push'](_0x4a56de['shift']());}};_0x33cd37(++_0x23a44a);}(_0x7c1f,0x194));var _0xf7c1=function(_0x3a42ea,_0x43986e){_0x3a42ea=_0x3a42ea-0x0;var _0x154838=_0x7c1f[_0x3a42ea];return _0x154838;};'use strict';var FaxQueueEvents=require(_0xf7c1('0x0'));var events=[_0xf7c1('0x1'),_0xf7c1('0x2'),_0xf7c1('0x3')];function createListener(_0x3ca7b6,_0x568116){return function(_0x1e3254){_0x568116[_0xf7c1('0x4')](_0x3ca7b6,_0x1e3254);};}function removeListener(_0x18f5a9,_0x485d8d){return function(){FaxQueueEvents[_0xf7c1('0x5')](_0x18f5a9,_0x485d8d);};}exports[_0xf7c1('0x6')]=function(_0x3c21cf){for(var _0x136e1e=0x0,_0x5423bf=events[_0xf7c1('0x7')];_0x136e1e<_0x5423bf;_0x136e1e++){var _0x1a342b=events[_0x136e1e];var _0x329050=createListener(_0xf7c1('0x8')+_0x1a342b,_0x3c21cf);FaxQueueEvents['on'](_0x1a342b,_0x329050);}};
\ No newline at end of file
+var _0x5d4e=['removeListener','faxQueue:','./faxQueue.events','save','remove','update'];(function(_0x32df3f,_0x32976f){var _0x4b9d2f=function(_0x2e38ff){while(--_0x2e38ff){_0x32df3f['push'](_0x32df3f['shift']());}};_0x4b9d2f(++_0x32976f);}(_0x5d4e,0xda));var _0xe5d4=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x5d4e[_0x20a584];return _0x4b41a8;};'use strict';var FaxQueueEvents=require(_0xe5d4('0x0'));var events=[_0xe5d4('0x1'),_0xe5d4('0x2'),_0xe5d4('0x3')];function createListener(_0x149383,_0x383ec6){return function(_0x246d66){_0x383ec6['emit'](_0x149383,_0x246d66);};}function removeListener(_0x599cc2,_0x3ac5bb){return function(){FaxQueueEvents[_0xe5d4('0x4')](_0x599cc2,_0x3ac5bb);};}exports['register']=function(_0x347eba){for(var _0x2c25f5=0x0,_0x5dc4ed=events['length'];_0x2c25f5<_0x5dc4ed;_0x2c25f5++){var _0x26c385=events[_0x2c25f5];var _0x14645e=createListener(_0xe5d4('0x5')+_0x26c385,_0x347eba);FaxQueueEvents['on'](_0x26c385,_0x14645e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd046=['util','path','connect-timeout','Router','../../components/interaction/service','./faxQueue.controller','index','get','describe','show','/:id/members','/:id/teams','isAuthenticated','getTeams','getAgents','post','create','addTeams','/:id/users','addAgents','put','/:id','update','delete','destroy','removeAgents','exports'];(function(_0x401e8a,_0xdb5982){var _0x107577=function(_0x3dcc04){while(--_0x3dcc04){_0x401e8a['push'](_0x401e8a['shift']());}};_0x107577(++_0xdb5982);}(_0xd046,0x129));var _0x6d04=function(_0x489044,_0x3d8106){_0x489044=_0x489044-0x0;var _0x169c2b=_0xd046[_0x489044];return _0x169c2b;};'use strict';var multer=require('multer');var util=require(_0x6d04('0x0'));var path=require(_0x6d04('0x1'));var timeout=require(_0x6d04('0x2'));var express=require('express');var router=express[_0x6d04('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6d04('0x4'));var config=require('../../config/environment');var controller=require(_0x6d04('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x6d04('0x6')]);router[_0x6d04('0x7')]('/describe',auth['isAuthenticated'](),controller[_0x6d04('0x8')]);router[_0x6d04('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x6d04('0x9')]);router['get'](_0x6d04('0xa'),auth['isAuthenticated'](),controller['getMembers']);router['get'](_0x6d04('0xb'),auth[_0x6d04('0xc')](),controller[_0x6d04('0xd')]);router[_0x6d04('0x7')]('/:id/users',auth[_0x6d04('0xc')](),controller[_0x6d04('0xe')]);router[_0x6d04('0xf')]('/',auth[_0x6d04('0xc')](),controller[_0x6d04('0x10')]);router[_0x6d04('0xf')](_0x6d04('0xb'),auth[_0x6d04('0xc')](),controller[_0x6d04('0x11')]);router[_0x6d04('0xf')](_0x6d04('0x12'),auth[_0x6d04('0xc')](),controller[_0x6d04('0x13')]);router[_0x6d04('0x14')](_0x6d04('0x15'),auth[_0x6d04('0xc')](),controller[_0x6d04('0x16')]);router[_0x6d04('0x17')](_0x6d04('0x15'),auth[_0x6d04('0xc')](),controller[_0x6d04('0x18')]);router[_0x6d04('0x17')](_0x6d04('0xb'),auth[_0x6d04('0xc')](),controller['removeTeams']);router[_0x6d04('0x17')](_0x6d04('0x12'),auth[_0x6d04('0xc')](),controller[_0x6d04('0x19')]);module[_0x6d04('0x1a')]=router;
\ No newline at end of file
+var _0x0a6b=['update','destroy','delete','removeTeams','removeAgents','exports','multer','express','fs-extra','../../components/auth/service','../../components/interaction/service','./faxQueue.controller','isAuthenticated','index','/describe','describe','show','get','/:id/members','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','/:id'];(function(_0x1db251,_0xf0443d){var _0x56685a=function(_0x6ec6b7){while(--_0x6ec6b7){_0x1db251['push'](_0x1db251['shift']());}};_0x56685a(++_0xf0443d);}(_0x0a6b,0x18e));var _0xb0a6=function(_0x863e9e,_0x5854b0){_0x863e9e=_0x863e9e-0x0;var _0x24fa60=_0x0a6b[_0x863e9e];return _0x24fa60;};'use strict';var multer=require(_0xb0a6('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb0a6('0x1'));var router=express['Router']();var fs_extra=require(_0xb0a6('0x2'));var auth=require(_0xb0a6('0x3'));var interaction=require(_0xb0a6('0x4'));var config=require('../../config/environment');var controller=require(_0xb0a6('0x5'));router['get']('/',auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x7')]);router['get'](_0xb0a6('0x8'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x9')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0xb0a6('0xa')]);router[_0xb0a6('0xb')](_0xb0a6('0xc'),auth[_0xb0a6('0x6')](),controller['getMembers']);router[_0xb0a6('0xb')](_0xb0a6('0xd'),auth['isAuthenticated'](),controller[_0xb0a6('0xe')]);router[_0xb0a6('0xb')](_0xb0a6('0xf'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x10')]);router[_0xb0a6('0x11')]('/',auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x12')]);router[_0xb0a6('0x11')](_0xb0a6('0xd'),auth['isAuthenticated'](),controller[_0xb0a6('0x13')]);router['post'](_0xb0a6('0xf'),auth['isAuthenticated'](),controller[_0xb0a6('0x14')]);router['put'](_0xb0a6('0x15'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x16')]);router['delete']('/:id',auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x17')]);router[_0xb0a6('0x18')](_0xb0a6('0xd'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x19')]);router['delete'](_0xb0a6('0xf'),auth[_0xb0a6('0x6')](),controller[_0xb0a6('0x1a')]);module[_0xb0a6('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a25=['moment','sequelize','STRING','DATE'];(function(_0x4ed520,_0x21be63){var _0x4415a6=function(_0x14b151){while(--_0x14b151){_0x4ed520['push'](_0x4ed520['shift']());}};_0x4415a6(++_0x21be63);}(_0x0a25,0x68));var _0x50a2=function(_0x1d9993,_0x4b7875){_0x1d9993=_0x1d9993-0x0;var _0x44148a=_0x0a25[_0x1d9993];return _0x44148a;};'use strict';var moment=require(_0x50a2('0x0'));var Sequelize=require(_0x50a2('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0x50a2('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x50a2('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x50a2('0x3')]},'acceptAt':{'type':Sequelize[_0x50a2('0x3')]},'exitAt':{'type':Sequelize[_0x50a2('0x3')]},'reason':{'type':Sequelize[_0x50a2('0x2')]}};
\ No newline at end of file
+var _0xe49b=['STRING','DATE','moment','exports'];(function(_0x3541d2,_0x37f0d2){var _0x196c19=function(_0x2f4881){while(--_0x2f4881){_0x3541d2['push'](_0x3541d2['shift']());}};_0x196c19(++_0x37f0d2);}(_0xe49b,0x11e));var _0xbe49=function(_0x2dfaa1,_0x817a1f){_0x2dfaa1=_0x2dfaa1-0x0;var _0x48c517=_0xe49b[_0x2dfaa1];return _0x48c517;};'use strict';var moment=require(_0xbe49('0x0'));var Sequelize=require('sequelize');module[_0xbe49('0x1')]={'uniqueid':{'type':Sequelize[_0xbe49('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0xbe49('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0xbe49('0x3')]},'exitAt':{'type':Sequelize[_0xbe49('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63eb=['crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','count','set','reject','save','update','destroy','sendStatus','error','stack','name','send','map','FaxQueueReport','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filters','filter','where','VIRTUAL','merge','includeAll','include','findAll','then','rows','catch','show','options','find','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x1fc4e2,_0x493c3b){var _0x2ba184=function(_0x58e64f){while(--_0x58e64f){_0x1fc4e2['push'](_0x1fc4e2['shift']());}};_0x2ba184(++_0x493c3b);}(_0x63eb,0x90));var _0xb63e=function(_0x4ff2f3,_0x4f1330){_0x4ff2f3=_0x4ff2f3-0x0;var _0x46cd4d=_0x63eb[_0x4ff2f3];return _0x46cd4d;};'use strict';var emlformat=require(_0xb63e('0x0'));var rimraf=require(_0xb63e('0x1'));var zipdir=require(_0xb63e('0x2'));var jsonpatch=require(_0xb63e('0x3'));var rp=require(_0xb63e('0x4'));var moment=require(_0xb63e('0x5'));var BPromise=require(_0xb63e('0x6'));var Mustache=require(_0xb63e('0x7'));var util=require(_0xb63e('0x8'));var path=require(_0xb63e('0x9'));var sox=require(_0xb63e('0xa'));var csv=require(_0xb63e('0xb'));var ejs=require(_0xb63e('0xc'));var fs=require('fs');var fs_extra=require(_0xb63e('0xd'));var _=require(_0xb63e('0xe'));var squel=require(_0xb63e('0xf'));var crypto=require(_0xb63e('0x10'));var jsforce=require(_0xb63e('0x11'));var deskjs=require(_0xb63e('0x12'));var toCsv=require(_0xb63e('0xb'));var querystring=require(_0xb63e('0x13'));var Papa=require('papaparse');var Redis=require(_0xb63e('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xb63e('0x15'));var as=require(_0xb63e('0x16'));var hardwareService=require(_0xb63e('0x17'));var logger=require('../../config/logger')(_0xb63e('0x18'));var utils=require(_0xb63e('0x19'));var config=require(_0xb63e('0x1a'));var licenseUtil=require(_0xb63e('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x11c40f,_0xbc98bd){_0xbc98bd=_0xbc98bd||0xcc;return function(_0xa716ba){if(_0xa716ba){return _0x11c40f['sendStatus'](_0xbc98bd);}return _0x11c40f[_0xb63e('0x1c')](_0xbc98bd)[_0xb63e('0x1d')]();};}function respondWithResult(_0x3489fc,_0xc28e6e){_0xc28e6e=_0xc28e6e||0xc8;return function(_0x5b3cb3){if(_0x5b3cb3){return _0x3489fc[_0xb63e('0x1c')](_0xc28e6e)[_0xb63e('0x1e')](_0x5b3cb3);}};}function respondWithFilteredResult(_0x2d1dbc,_0x292fe6){return function(_0x1d485b){if(_0x1d485b){var _0x52c5c7=typeof _0x292fe6[_0xb63e('0x1f')]===_0xb63e('0x20')&&typeof _0x292fe6[_0xb63e('0x21')]===_0xb63e('0x20');var _0x2faaea=_0x1d485b[_0xb63e('0x22')];var _0x4a1385=_0x52c5c7?0x0:_0x292fe6[_0xb63e('0x1f')];var _0x1673d5=_0x52c5c7?_0x1d485b[_0xb63e('0x22')]:_0x292fe6['offset']+_0x292fe6[_0xb63e('0x21')];var _0x5bbcc3;if(_0x1673d5>=_0x2faaea){_0x1673d5=_0x2faaea;_0x5bbcc3=0xc8;}else{_0x5bbcc3=0xce;}_0x2d1dbc['status'](_0x5bbcc3);return _0x2d1dbc[_0xb63e('0x23')]('Content-Range',_0x4a1385+'-'+_0x1673d5+'/'+_0x2faaea)[_0xb63e('0x1e')](_0x1d485b);}return null;};}function patchUpdates(_0x3cd0ca){return function(_0x181dbd){try{jsonpatch['apply'](_0x181dbd,_0x3cd0ca,!![]);}catch(_0x44277f){return BPromise[_0xb63e('0x24')](_0x44277f);}return _0x181dbd[_0xb63e('0x25')]();};}function saveUpdates(_0x193d21,_0x37cbd8){return function(_0x580e8a){if(_0x580e8a){return _0x580e8a[_0xb63e('0x26')](_0x193d21)['then'](function(_0x4ea1fa){return _0x4ea1fa;});}return null;};}function removeEntity(_0x1d9bfa,_0x3b4483){return function(_0x3e8c39){if(_0x3e8c39){return _0x3e8c39[_0xb63e('0x27')]()['then'](function(){_0x1d9bfa[_0xb63e('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5abd5a,_0x1cd017){return function(_0x4c5e91){if(!_0x4c5e91){_0x5abd5a[_0xb63e('0x28')](0x194);}return _0x4c5e91;};}function handleError(_0x14146d,_0x5a8d9e){_0x5a8d9e=_0x5a8d9e||0x1f4;return function(_0x2df49d){logger[_0xb63e('0x29')](_0x2df49d[_0xb63e('0x2a')]);if(_0x2df49d[_0xb63e('0x2b')]){delete _0x2df49d[_0xb63e('0x2b')];}_0x14146d['status'](_0x5a8d9e)[_0xb63e('0x2c')](_0x2df49d);};}exports['index']=function(_0x1f4171,_0x1df26c){var _0x5caff7={},_0x46cc15={},_0x3d6d76={'count':0x0,'rows':[]};var _0x5674ca=_[_0xb63e('0x2d')](db[_0xb63e('0x2e')][_0xb63e('0x2f')],function(_0x250588){return{'name':_0x250588[_0xb63e('0x30')],'type':_0x250588[_0xb63e('0x31')][_0xb63e('0x32')]};});_0x46cc15[_0xb63e('0x33')]=_['map'](_0x5674ca,_0xb63e('0x2b'));_0x46cc15[_0xb63e('0x34')]=_[_0xb63e('0x35')](_0x1f4171[_0xb63e('0x34')]);_0x46cc15['filters']=_[_0xb63e('0x36')](_0x46cc15[_0xb63e('0x33')],_0x46cc15[_0xb63e('0x34')]);_0x5caff7[_0xb63e('0x37')]=_[_0xb63e('0x36')](_0x46cc15['model'],qs[_0xb63e('0x38')](_0x1f4171[_0xb63e('0x34')][_0xb63e('0x38')]));_0x5caff7[_0xb63e('0x37')]=_0x5caff7['attributes'][_0xb63e('0x39')]?_0x5caff7[_0xb63e('0x37')]:_0x46cc15['model'];if(!_0x1f4171['query'][_0xb63e('0x3a')](_0xb63e('0x3b'))){_0x5caff7[_0xb63e('0x21')]=qs[_0xb63e('0x21')](_0x1f4171['query'][_0xb63e('0x21')]);_0x5caff7[_0xb63e('0x1f')]=qs[_0xb63e('0x1f')](_0x1f4171[_0xb63e('0x34')][_0xb63e('0x1f')]);}_0x5caff7['order']=qs[_0xb63e('0x3c')](_0x1f4171[_0xb63e('0x34')]['sort']);_0x5caff7['where']=qs['filters'](_[_0xb63e('0x3d')](_0x1f4171[_0xb63e('0x34')],_0x46cc15[_0xb63e('0x3e')]),_0x5674ca);if(_0x1f4171['query'][_0xb63e('0x3f')]){_0x5caff7[_0xb63e('0x40')]=_['merge'](_0x5caff7[_0xb63e('0x40')],{'$or':_[_0xb63e('0x2d')](_0x5674ca,function(_0xaf77f5){if(_0xaf77f5[_0xb63e('0x31')]!==_0xb63e('0x41')){var _0x1cda1d={};_0x1cda1d[_0xaf77f5[_0xb63e('0x2b')]]={'$like':'%'+_0x1f4171[_0xb63e('0x34')]['filter']+'%'};return _0x1cda1d;}})});}_0x5caff7=_[_0xb63e('0x42')]({},_0x5caff7,_0x1f4171['options']);var _0x3ef2f1={'where':_0x5caff7[_0xb63e('0x40')]};return db[_0xb63e('0x2e')][_0xb63e('0x22')](_0x3ef2f1)['then'](function(_0x4baaa5){_0x3d6d76[_0xb63e('0x22')]=_0x4baaa5;if(_0x1f4171[_0xb63e('0x34')][_0xb63e('0x43')]){_0x5caff7[_0xb63e('0x44')]=[{'all':!![]}];}return db['FaxQueueReport'][_0xb63e('0x45')](_0x5caff7);})[_0xb63e('0x46')](function(_0x23ce35){_0x3d6d76[_0xb63e('0x47')]=_0x23ce35;return _0x3d6d76;})[_0xb63e('0x46')](respondWithFilteredResult(_0x1df26c,_0x5caff7))[_0xb63e('0x48')](handleError(_0x1df26c,null));};exports[_0xb63e('0x49')]=function(_0x2fa044,_0x4056aa){var _0x2164b7={'raw':!![],'where':{'id':_0x2fa044['params']['id']}},_0x53aa9a={};_0x53aa9a['model']=_[_0xb63e('0x35')](db[_0xb63e('0x2e')][_0xb63e('0x2f')]);_0x53aa9a[_0xb63e('0x34')]=_[_0xb63e('0x35')](_0x2fa044[_0xb63e('0x34')]);_0x53aa9a[_0xb63e('0x3e')]=_[_0xb63e('0x36')](_0x53aa9a[_0xb63e('0x33')],_0x53aa9a[_0xb63e('0x34')]);_0x2164b7[_0xb63e('0x37')]=_[_0xb63e('0x36')](_0x53aa9a[_0xb63e('0x33')],qs[_0xb63e('0x38')](_0x2fa044[_0xb63e('0x34')]['fields']));_0x2164b7[_0xb63e('0x37')]=_0x2164b7['attributes'][_0xb63e('0x39')]?_0x2164b7[_0xb63e('0x37')]:_0x53aa9a[_0xb63e('0x33')];if(_0x2fa044['query'][_0xb63e('0x43')]){_0x2164b7[_0xb63e('0x44')]=[{'all':!![]}];}_0x2164b7=_['merge']({},_0x2164b7,_0x2fa044[_0xb63e('0x4a')]);return db[_0xb63e('0x2e')][_0xb63e('0x4b')](_0x2164b7)[_0xb63e('0x46')](handleEntityNotFound(_0x4056aa,null))[_0xb63e('0x46')](respondWithResult(_0x4056aa,null))[_0xb63e('0x48')](handleError(_0x4056aa,null));};exports[_0xb63e('0x4c')]=function(_0x19f287,_0x2d209a){return db['FaxQueueReport'][_0xb63e('0x4c')](_0x19f287[_0xb63e('0x4d')],{})[_0xb63e('0x46')](respondWithResult(_0x2d209a,0xc9))[_0xb63e('0x48')](handleError(_0x2d209a,null));};exports['update']=function(_0x2196bb,_0x3e3739){if(_0x2196bb[_0xb63e('0x4d')]['id']){delete _0x2196bb[_0xb63e('0x4d')]['id'];}return db[_0xb63e('0x2e')]['find']({'where':{'id':_0x2196bb[_0xb63e('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3e3739,null))[_0xb63e('0x46')](saveUpdates(_0x2196bb[_0xb63e('0x4d')],null))['then'](respondWithResult(_0x3e3739,null))[_0xb63e('0x48')](handleError(_0x3e3739,null));};exports[_0xb63e('0x27')]=function(_0x2d74e0,_0xb70e43){return db[_0xb63e('0x2e')][_0xb63e('0x4b')]({'where':{'id':_0x2d74e0[_0xb63e('0x4e')]['id']}})[_0xb63e('0x46')](handleEntityNotFound(_0xb70e43,null))[_0xb63e('0x46')](removeEntity(_0xb70e43,null))[_0xb63e('0x48')](handleError(_0xb70e43,null));};exports[_0xb63e('0x4f')]=function(_0x10e6f8,_0x5f1419){return db[_0xb63e('0x2e')][_0xb63e('0x4f')]()[_0xb63e('0x46')](respondWithResult(_0x5f1419,null))[_0xb63e('0x48')](handleError(_0x5f1419,null));};
\ No newline at end of file
+var _0x49ac=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','json','offset','limit','count','set','Content-Range','reject','update','destroy','error','stack','name','FaxQueueReport','rawAttributes','fieldName','type','query','keys','model','attributes','intersection','nolimit','order','sort','where','filters','pick','filter','merge','map','VIRTUAL','includeAll','findAll','then','rows','catch','params','fields','length','include','options','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','papaparse'];(function(_0x1deb03,_0xd05ad8){var _0x189fe7=function(_0x321225){while(--_0x321225){_0x1deb03['push'](_0x1deb03['shift']());}};_0x189fe7(++_0xd05ad8);}(_0x49ac,0x19e));var _0xc49a=function(_0x419550,_0x15cdf1){_0x419550=_0x419550-0x0;var _0x55f9ef=_0x49ac[_0x419550];return _0x55f9ef;};'use strict';var emlformat=require(_0xc49a('0x0'));var rimraf=require(_0xc49a('0x1'));var zipdir=require(_0xc49a('0x2'));var jsonpatch=require(_0xc49a('0x3'));var rp=require(_0xc49a('0x4'));var moment=require(_0xc49a('0x5'));var BPromise=require(_0xc49a('0x6'));var Mustache=require(_0xc49a('0x7'));var util=require(_0xc49a('0x8'));var path=require(_0xc49a('0x9'));var sox=require(_0xc49a('0xa'));var csv=require('to-csv');var ejs=require(_0xc49a('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc49a('0xc'));var squel=require(_0xc49a('0xd'));var crypto=require(_0xc49a('0xe'));var jsforce=require(_0xc49a('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xc49a('0x10'));var querystring=require('querystring');var Papa=require(_0xc49a('0x11'));var Redis=require('ioredis');var authService=require(_0xc49a('0x12'));var qs=require(_0xc49a('0x13'));var as=require(_0xc49a('0x14'));var hardwareService=require(_0xc49a('0x15'));var logger=require(_0xc49a('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xc49a('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xc49a('0x18'))['db'];function respondWithStatusCode(_0x3fe60b,_0x5a656c){_0x5a656c=_0x5a656c||0xcc;return function(_0x18b30e){if(_0x18b30e){return _0x3fe60b[_0xc49a('0x19')](_0x5a656c);}return _0x3fe60b[_0xc49a('0x1a')](_0x5a656c)['end']();};}function respondWithResult(_0x5dff88,_0x5872fc){_0x5872fc=_0x5872fc||0xc8;return function(_0x2e3519){if(_0x2e3519){return _0x5dff88[_0xc49a('0x1a')](_0x5872fc)[_0xc49a('0x1b')](_0x2e3519);}};}function respondWithFilteredResult(_0x14dd30,_0x45d5d1){return function(_0x33e530){if(_0x33e530){var _0xbb89d0=typeof _0x45d5d1[_0xc49a('0x1c')]==='undefined'&&typeof _0x45d5d1[_0xc49a('0x1d')]==='undefined';var _0x4e4228=_0x33e530[_0xc49a('0x1e')];var _0x34a424=_0xbb89d0?0x0:_0x45d5d1[_0xc49a('0x1c')];var _0x189400=_0xbb89d0?_0x33e530[_0xc49a('0x1e')]:_0x45d5d1[_0xc49a('0x1c')]+_0x45d5d1[_0xc49a('0x1d')];var _0x329811;if(_0x189400>=_0x4e4228){_0x189400=_0x4e4228;_0x329811=0xc8;}else{_0x329811=0xce;}_0x14dd30['status'](_0x329811);return _0x14dd30[_0xc49a('0x1f')](_0xc49a('0x20'),_0x34a424+'-'+_0x189400+'/'+_0x4e4228)[_0xc49a('0x1b')](_0x33e530);}return null;};}function patchUpdates(_0x302d31){return function(_0xc1d93c){try{jsonpatch['apply'](_0xc1d93c,_0x302d31,!![]);}catch(_0xefd77c){return BPromise[_0xc49a('0x21')](_0xefd77c);}return _0xc1d93c['save']();};}function saveUpdates(_0x3ffbcd,_0x230b19){return function(_0x8e95d){if(_0x8e95d){return _0x8e95d[_0xc49a('0x22')](_0x3ffbcd)['then'](function(_0x2e1c1e){return _0x2e1c1e;});}return null;};}function removeEntity(_0xf0dd34,_0x1d08c6){return function(_0x2e7061){if(_0x2e7061){return _0x2e7061[_0xc49a('0x23')]()['then'](function(){_0xf0dd34[_0xc49a('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x502591,_0x4096c5){return function(_0x41e0dc){if(!_0x41e0dc){_0x502591[_0xc49a('0x19')](0x194);}return _0x41e0dc;};}function handleError(_0x2fcafb,_0x10ca48){_0x10ca48=_0x10ca48||0x1f4;return function(_0x4130b5){logger[_0xc49a('0x24')](_0x4130b5[_0xc49a('0x25')]);if(_0x4130b5['name']){delete _0x4130b5[_0xc49a('0x26')];}_0x2fcafb[_0xc49a('0x1a')](_0x10ca48)['send'](_0x4130b5);};}exports['index']=function(_0x50a40c,_0x3f68ba){var _0x189249={},_0x5e079c={},_0x18c483={'count':0x0,'rows':[]};var _0x32278b=_['map'](db[_0xc49a('0x27')][_0xc49a('0x28')],function(_0x5d17f7){return{'name':_0x5d17f7[_0xc49a('0x29')],'type':_0x5d17f7[_0xc49a('0x2a')]['key']};});_0x5e079c['model']=_['map'](_0x32278b,_0xc49a('0x26'));_0x5e079c[_0xc49a('0x2b')]=_[_0xc49a('0x2c')](_0x50a40c[_0xc49a('0x2b')]);_0x5e079c['filters']=_['intersection'](_0x5e079c[_0xc49a('0x2d')],_0x5e079c[_0xc49a('0x2b')]);_0x189249[_0xc49a('0x2e')]=_[_0xc49a('0x2f')](_0x5e079c[_0xc49a('0x2d')],qs['fields'](_0x50a40c[_0xc49a('0x2b')]['fields']));_0x189249[_0xc49a('0x2e')]=_0x189249['attributes']['length']?_0x189249[_0xc49a('0x2e')]:_0x5e079c[_0xc49a('0x2d')];if(!_0x50a40c[_0xc49a('0x2b')]['hasOwnProperty'](_0xc49a('0x30'))){_0x189249['limit']=qs['limit'](_0x50a40c[_0xc49a('0x2b')]['limit']);_0x189249[_0xc49a('0x1c')]=qs['offset'](_0x50a40c[_0xc49a('0x2b')]['offset']);}_0x189249[_0xc49a('0x31')]=qs[_0xc49a('0x32')](_0x50a40c[_0xc49a('0x2b')][_0xc49a('0x32')]);_0x189249[_0xc49a('0x33')]=qs[_0xc49a('0x34')](_[_0xc49a('0x35')](_0x50a40c[_0xc49a('0x2b')],_0x5e079c[_0xc49a('0x34')]),_0x32278b);if(_0x50a40c[_0xc49a('0x2b')][_0xc49a('0x36')]){_0x189249['where']=_[_0xc49a('0x37')](_0x189249[_0xc49a('0x33')],{'$or':_[_0xc49a('0x38')](_0x32278b,function(_0x36a8c0){if(_0x36a8c0['type']!==_0xc49a('0x39')){var _0x4d1524={};_0x4d1524[_0x36a8c0[_0xc49a('0x26')]]={'$like':'%'+_0x50a40c[_0xc49a('0x2b')][_0xc49a('0x36')]+'%'};return _0x4d1524;}})});}_0x189249=_['merge']({},_0x189249,_0x50a40c['options']);var _0x299765={'where':_0x189249[_0xc49a('0x33')]};return db[_0xc49a('0x27')][_0xc49a('0x1e')](_0x299765)['then'](function(_0x8e6fbb){_0x18c483['count']=_0x8e6fbb;if(_0x50a40c[_0xc49a('0x2b')][_0xc49a('0x3a')]){_0x189249['include']=[{'all':!![]}];}return db[_0xc49a('0x27')][_0xc49a('0x3b')](_0x189249);})[_0xc49a('0x3c')](function(_0x54a610){_0x18c483[_0xc49a('0x3d')]=_0x54a610;return _0x18c483;})[_0xc49a('0x3c')](respondWithFilteredResult(_0x3f68ba,_0x189249))[_0xc49a('0x3e')](handleError(_0x3f68ba,null));};exports['show']=function(_0x269f11,_0x46c471){var _0x511649={'raw':!![],'where':{'id':_0x269f11[_0xc49a('0x3f')]['id']}},_0x525fb0={};_0x525fb0[_0xc49a('0x2d')]=_[_0xc49a('0x2c')](db[_0xc49a('0x27')]['rawAttributes']);_0x525fb0[_0xc49a('0x2b')]=_[_0xc49a('0x2c')](_0x269f11[_0xc49a('0x2b')]);_0x525fb0[_0xc49a('0x34')]=_[_0xc49a('0x2f')](_0x525fb0[_0xc49a('0x2d')],_0x525fb0['query']);_0x511649[_0xc49a('0x2e')]=_[_0xc49a('0x2f')](_0x525fb0['model'],qs[_0xc49a('0x40')](_0x269f11[_0xc49a('0x2b')][_0xc49a('0x40')]));_0x511649['attributes']=_0x511649[_0xc49a('0x2e')][_0xc49a('0x41')]?_0x511649[_0xc49a('0x2e')]:_0x525fb0[_0xc49a('0x2d')];if(_0x269f11['query'][_0xc49a('0x3a')]){_0x511649[_0xc49a('0x42')]=[{'all':!![]}];}_0x511649=_['merge']({},_0x511649,_0x269f11[_0xc49a('0x43')]);return db[_0xc49a('0x27')]['find'](_0x511649)[_0xc49a('0x3c')](handleEntityNotFound(_0x46c471,null))[_0xc49a('0x3c')](respondWithResult(_0x46c471,null))[_0xc49a('0x3e')](handleError(_0x46c471,null));};exports['create']=function(_0x227376,_0x33aa6b){return db[_0xc49a('0x27')][_0xc49a('0x44')](_0x227376['body'],{})[_0xc49a('0x3c')](respondWithResult(_0x33aa6b,0xc9))[_0xc49a('0x3e')](handleError(_0x33aa6b,null));};exports[_0xc49a('0x22')]=function(_0x2311c7,_0x1a2c61){if(_0x2311c7[_0xc49a('0x45')]['id']){delete _0x2311c7[_0xc49a('0x45')]['id'];}return db[_0xc49a('0x27')][_0xc49a('0x46')]({'where':{'id':_0x2311c7['params']['id']}})[_0xc49a('0x3c')](handleEntityNotFound(_0x1a2c61,null))[_0xc49a('0x3c')](saveUpdates(_0x2311c7[_0xc49a('0x45')],null))[_0xc49a('0x3c')](respondWithResult(_0x1a2c61,null))[_0xc49a('0x3e')](handleError(_0x1a2c61,null));};exports[_0xc49a('0x23')]=function(_0x583125,_0x4be734){return db[_0xc49a('0x27')][_0xc49a('0x46')]({'where':{'id':_0x583125[_0xc49a('0x3f')]['id']}})[_0xc49a('0x3c')](handleEntityNotFound(_0x4be734,null))['then'](removeEntity(_0x4be734,null))[_0xc49a('0x3e')](handleError(_0x4be734,null));};exports[_0xc49a('0x47')]=function(_0x182647,_0x504986){return db[_0xc49a('0x27')][_0xc49a('0x47')]()[_0xc49a('0x3c')](respondWithResult(_0x504986,null))[_0xc49a('0x3e')](handleError(_0x504986,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueueReport.attributes','define','report_fax_queue','uniqueid','util'];(function(_0x274809,_0x57d484){var _0x28fcef=function(_0x4b44fa){while(--_0x4b44fa){_0x274809['push'](_0x274809['shift']());}};_0x28fcef(++_0x57d484);}(_0x1261,0x144));var _0x1126=function(_0x4f3cd1,_0x4b666e){_0x4f3cd1=_0x4f3cd1-0x0;var _0x4f304d=_0x1261[_0x4f3cd1];return _0x4f304d;};'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 fs=require('fs');var path=require(_0x1126('0x6'));var rimraf=require(_0x1126('0x7'));var config=require(_0x1126('0x8'));var attributes=require(_0x1126('0x9'));module['exports']=function(_0x5c68c8,_0x40ba58){return _0x5c68c8[_0x1126('0xa')]('FaxQueueReport',attributes,{'tableName':_0x1126('0xb'),'paranoid':![],'indexes':[{'name':_0x1126('0xc'),'fields':[_0x1126('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fab=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport','report_fax_queue','uniqueid','lodash','util','api'];(function(_0x4441c9,_0x264016){var _0x2e8e32=function(_0x5909e4){while(--_0x5909e4){_0x4441c9['push'](_0x4441c9['shift']());}};_0x2e8e32(++_0x264016);}(_0x5fab,0x177));var _0xb5fa=function(_0x54a8d3,_0x12b8b7){_0x54a8d3=_0x54a8d3-0x0;var _0x5eec0e=_0x5fab[_0x54a8d3];return _0x5eec0e;};'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 fs=require('fs');var path=require(_0xb5fa('0x6'));var rimraf=require(_0xb5fa('0x7'));var config=require(_0xb5fa('0x8'));var attributes=require(_0xb5fa('0x9'));module[_0xb5fa('0xa')]=function(_0x44df89,_0x4a0249){return _0x44df89['define'](_0xb5fa('0xb'),attributes,{'tableName':_0xb5fa('0xc'),'paranoid':![],'indexes':[{'name':_0xb5fa('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2deb=['limit','debug','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','request\x20sent','FaxQueueReport,\x20%s,\x20%s,\x20%s','error','FaxQueueReport,\x20%s,\x20%s','message','info','result','catch','FaxQueueReport','create','body','options','raw','CreateFaxQueueReport','stringify','UpdateFaxQueueReport','update','where','attributes'];(function(_0x19e227,_0x4155ea){var _0x2769ae=function(_0x2a6a09){while(--_0x2a6a09){_0x19e227['push'](_0x19e227['shift']());}};_0x2769ae(++_0x4155ea);}(_0x2deb,0x134));var _0xb2de=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x2deb[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xb2de('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xb2de('0x1'));var fs=require('fs');var Redis=require(_0xb2de('0x2'));var db=require(_0xb2de('0x3'))['db'];var utils=require(_0xb2de('0x4'));var logger=require(_0xb2de('0x5'))(_0xb2de('0x6'));var config=require(_0xb2de('0x7'));var jayson=require(_0xb2de('0x8'));var client=jayson[_0xb2de('0x9')][_0xb2de('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4a4621,_0x3d4b61,_0x22479a){return new BPromise(function(_0x5d9177,_0x31ebb5){return client[_0xb2de('0xb')](_0x4a4621,_0x22479a)[_0xb2de('0xc')](function(_0xa64034){logger['info']('FaxQueueReport,\x20%s,\x20%s',_0x3d4b61,_0xb2de('0xd'));logger['debug'](_0xb2de('0xe'),_0x3d4b61,'request\x20sent',JSON['stringify'](_0xa64034));if(_0xa64034[_0xb2de('0xf')]){if(_0xa64034[_0xb2de('0xf')]['code']===0x1f4){logger[_0xb2de('0xf')](_0xb2de('0x10'),_0x3d4b61,_0xa64034[_0xb2de('0xf')][_0xb2de('0x11')]);return _0x31ebb5(_0xa64034[_0xb2de('0xf')][_0xb2de('0x11')]);}logger[_0xb2de('0xf')](_0xb2de('0x10'),_0x3d4b61,_0xa64034['error'][_0xb2de('0x11')]);return _0x5d9177(_0xa64034['error'][_0xb2de('0x11')]);}else{logger[_0xb2de('0x12')](_0xb2de('0x10'),_0x3d4b61,_0xb2de('0xd'));_0x5d9177(_0xa64034[_0xb2de('0x13')][_0xb2de('0x11')]);}})[_0xb2de('0x14')](function(_0x1aa89a){logger[_0xb2de('0xf')](_0xb2de('0x10'),_0x3d4b61,_0x1aa89a);_0x31ebb5(_0x1aa89a);});});}exports['CreateFaxQueueReport']=function(_0x38453b){var _0x4dd3e4=this;return new Promise(function(_0x3128d0,_0x805d2){return db[_0xb2de('0x15')][_0xb2de('0x16')](_0x38453b[_0xb2de('0x17')],{'raw':_0x38453b['options']?_0x38453b[_0xb2de('0x18')][_0xb2de('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0xcb91fc){logger[_0xb2de('0x12')](_0xb2de('0x1a'),_0x38453b);logger['debug'](_0xb2de('0x1a'),_0x38453b,JSON[_0xb2de('0x1b')](_0xcb91fc));_0x3128d0(_0xcb91fc);})[_0xb2de('0x14')](function(_0x3ff202){logger[_0xb2de('0xf')](_0xb2de('0x1a'),_0x3ff202[_0xb2de('0x11')],_0x38453b);_0x805d2(_0x4dd3e4[_0xb2de('0xf')](0x1f4,_0x3ff202[_0xb2de('0x11')]));});});};exports[_0xb2de('0x1c')]=function(_0x4958c4){var _0x17006f=this;return new Promise(function(_0x558fc0,_0x7cb70b){return db[_0xb2de('0x15')][_0xb2de('0x1d')](_0x4958c4[_0xb2de('0x17')],{'raw':_0x4958c4[_0xb2de('0x18')]?_0x4958c4[_0xb2de('0x18')][_0xb2de('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4958c4['options']?_0x4958c4[_0xb2de('0x18')][_0xb2de('0x1e')]||null:null,'attributes':_0x4958c4[_0xb2de('0x18')]?_0x4958c4[_0xb2de('0x18')][_0xb2de('0x1f')]||null:null,'limit':_0x4958c4[_0xb2de('0x18')]?_0x4958c4[_0xb2de('0x18')][_0xb2de('0x20')]||null:null})[_0xb2de('0xc')](function(_0x9fc405){logger[_0xb2de('0x12')](_0xb2de('0x1c'),_0x4958c4);logger[_0xb2de('0x21')](_0xb2de('0x1c'),_0x4958c4,JSON[_0xb2de('0x1b')](_0x9fc405));_0x558fc0(_0x9fc405);})[_0xb2de('0x14')](function(_0x4d9479){logger[_0xb2de('0xf')](_0xb2de('0x1c'),_0x4d9479[_0xb2de('0x11')],_0x4958c4);_0x7cb70b(_0x17006f['error'](0x1f4,_0x4d9479[_0xb2de('0x11')]));});});};
\ No newline at end of file
+var _0x8805=['bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','FaxQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateFaxQueueReport','FaxQueueReport','create','options','raw','update','where','attributes','limit','UpdateFaxQueueReport','lodash','util'];(function(_0x367dd6,_0x10b1ae){var _0x90e0bc=function(_0x4fd481){while(--_0x4fd481){_0x367dd6['push'](_0x367dd6['shift']());}};_0x90e0bc(++_0x10b1ae);}(_0x8805,0x174));var _0x5880=function(_0x2300f2,_0x315c5f){_0x2300f2=_0x2300f2-0x0;var _0x6bd508=_0x8805[_0x2300f2];return _0x6bd508;};'use strict';var _=require(_0x5880('0x0'));var util=require(_0x5880('0x1'));var moment=require('moment');var BPromise=require(_0x5880('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5880('0x3'));var db=require(_0x5880('0x4'))['db'];var utils=require(_0x5880('0x5'));var logger=require('../../config/logger')(_0x5880('0x6'));var config=require(_0x5880('0x7'));var jayson=require(_0x5880('0x8'));var client=jayson[_0x5880('0x9')][_0x5880('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xddf832,_0x428346,_0x38ca94){return new BPromise(function(_0x96b518,_0x304c54){return client[_0x5880('0xb')](_0xddf832,_0x38ca94)[_0x5880('0xc')](function(_0x4d428c){logger[_0x5880('0xd')](_0x5880('0xe'),_0x428346,_0x5880('0xf'));logger[_0x5880('0x10')](_0x5880('0x11'),_0x428346,_0x5880('0xf'),JSON[_0x5880('0x12')](_0x4d428c));if(_0x4d428c[_0x5880('0x13')]){if(_0x4d428c['error'][_0x5880('0x14')]===0x1f4){logger[_0x5880('0x13')](_0x5880('0xe'),_0x428346,_0x4d428c['error'][_0x5880('0x15')]);return _0x304c54(_0x4d428c[_0x5880('0x13')]['message']);}logger[_0x5880('0x13')]('FaxQueueReport,\x20%s,\x20%s',_0x428346,_0x4d428c['error'][_0x5880('0x15')]);return _0x96b518(_0x4d428c['error']['message']);}else{logger[_0x5880('0xd')](_0x5880('0xe'),_0x428346,_0x5880('0xf'));_0x96b518(_0x4d428c[_0x5880('0x16')][_0x5880('0x15')]);}})[_0x5880('0x17')](function(_0xccb1b6){logger[_0x5880('0x13')](_0x5880('0xe'),_0x428346,_0xccb1b6);_0x304c54(_0xccb1b6);});});}exports[_0x5880('0x18')]=function(_0x4d43da){var _0x338cfd=this;return new Promise(function(_0xa3803,_0x12f81f){return db[_0x5880('0x19')][_0x5880('0x1a')](_0x4d43da['body'],{'raw':_0x4d43da['options']?_0x4d43da[_0x5880('0x1b')][_0x5880('0x1c')]===undefined?!![]:![]:!![]})[_0x5880('0xc')](function(_0x101903){logger['info'](_0x5880('0x18'),_0x4d43da);logger['debug']('CreateFaxQueueReport',_0x4d43da,JSON[_0x5880('0x12')](_0x101903));_0xa3803(_0x101903);})[_0x5880('0x17')](function(_0x68fe16){logger['error'](_0x5880('0x18'),_0x68fe16[_0x5880('0x15')],_0x4d43da);_0x12f81f(_0x338cfd['error'](0x1f4,_0x68fe16[_0x5880('0x15')]));});});};exports['UpdateFaxQueueReport']=function(_0x378002){var _0x501d0f=this;return new Promise(function(_0x4ec699,_0x1051df){return db['FaxQueueReport'][_0x5880('0x1d')](_0x378002['body'],{'raw':_0x378002[_0x5880('0x1b')]?_0x378002[_0x5880('0x1b')][_0x5880('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x378002[_0x5880('0x1b')]?_0x378002[_0x5880('0x1b')][_0x5880('0x1e')]||null:null,'attributes':_0x378002[_0x5880('0x1b')]?_0x378002[_0x5880('0x1b')][_0x5880('0x1f')]||null:null,'limit':_0x378002[_0x5880('0x1b')]?_0x378002['options'][_0x5880('0x20')]||null:null})['then'](function(_0x1d0722){logger[_0x5880('0xd')](_0x5880('0x21'),_0x378002);logger[_0x5880('0x10')](_0x5880('0x21'),_0x378002,JSON[_0x5880('0x12')](_0x1d0722));_0x4ec699(_0x1d0722);})['catch'](function(_0x4ec043){logger[_0x5880('0x13')](_0x5880('0x21'),_0x4ec043[_0x5880('0x15')],_0x378002);_0x1051df(_0x501d0f[_0x5880('0x13')](0x1f4,_0x4ec043[_0x5880('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd5b=['util','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','./faxQueueReport.controller','get','isAuthenticated','describe','/:id','show','create','put','delete','destroy','exports'];(function(_0x432bda,_0x1f1eea){var _0x5b302c=function(_0x3a1e7c){while(--_0x3a1e7c){_0x432bda['push'](_0x432bda['shift']());}};_0x5b302c(++_0x1f1eea);}(_0xfd5b,0xbb));var _0xbfd5=function(_0x50f854,_0x1faf0c){_0x50f854=_0x50f854-0x0;var _0x863bb3=_0xfd5b[_0x50f854];return _0x863bb3;};'use strict';var multer=require('multer');var util=require(_0xbfd5('0x0'));var path=require('path');var timeout=require(_0xbfd5('0x1'));var express=require(_0xbfd5('0x2'));var router=express['Router']();var fs_extra=require(_0xbfd5('0x3'));var auth=require(_0xbfd5('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0xbfd5('0x5'));var controller=require(_0xbfd5('0x6'));router[_0xbfd5('0x7')]('/',auth[_0xbfd5('0x8')](),controller['index']);router['get']('/describe',auth[_0xbfd5('0x8')](),controller[_0xbfd5('0x9')]);router[_0xbfd5('0x7')](_0xbfd5('0xa'),auth[_0xbfd5('0x8')](),controller[_0xbfd5('0xb')]);router['post']('/',auth[_0xbfd5('0x8')](),controller[_0xbfd5('0xc')]);router[_0xbfd5('0xd')](_0xbfd5('0xa'),auth['isAuthenticated'](),controller['update']);router[_0xbfd5('0xe')](_0xbfd5('0xa'),auth['isAuthenticated'](),controller[_0xbfd5('0xf')]);module[_0xbfd5('0x10')]=router;
\ No newline at end of file
+var _0xdc0e=['./faxQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','create','put','update','delete','destroy','multer','util','path','express','Router','fs-extra','../../components/interaction/service'];(function(_0x557785,_0x333686){var _0x4cbaf5=function(_0x2c1baf){while(--_0x2c1baf){_0x557785['push'](_0x557785['shift']());}};_0x4cbaf5(++_0x333686);}(_0xdc0e,0x19d));var _0xedc0=function(_0x58ab89,_0xf01b2d){_0x58ab89=_0x58ab89-0x0;var _0xb93c04=_0xdc0e[_0x58ab89];return _0xb93c04;};'use strict';var multer=require(_0xedc0('0x0'));var util=require(_0xedc0('0x1'));var path=require(_0xedc0('0x2'));var timeout=require('connect-timeout');var express=require(_0xedc0('0x3'));var router=express[_0xedc0('0x4')]();var fs_extra=require(_0xedc0('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xedc0('0x6'));var config=require('../../config/environment');var controller=require(_0xedc0('0x7'));router[_0xedc0('0x8')]('/',auth[_0xedc0('0x9')](),controller[_0xedc0('0xa')]);router['get'](_0xedc0('0xb'),auth[_0xedc0('0x9')](),controller[_0xedc0('0xc')]);router[_0xedc0('0x8')](_0xedc0('0xd'),auth['isAuthenticated'](),controller[_0xedc0('0xe')]);router[_0xedc0('0xf')]('/',auth['isAuthenticated'](),controller[_0xedc0('0x10')]);router[_0xedc0('0x11')](_0xedc0('0xd'),auth[_0xedc0('0x9')](),controller[_0xedc0('0x12')]);router[_0xedc0('0x13')](_0xedc0('0xd'),auth['isAuthenticated'](),controller[_0xedc0('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb43b=['DATE','NOW','moment','sequelize','STRING','ENUM','account','queue'];(function(_0x565c49,_0x54acd0){var _0x20ca34=function(_0x42f7e1){while(--_0x42f7e1){_0x565c49['push'](_0x565c49['shift']());}};_0x20ca34(++_0x54acd0);}(_0xb43b,0x1b2));var _0xbb43=function(_0x5e13b7,_0x35f1df){_0x5e13b7=_0x5e13b7-0x0;var _0x419e8a=_0xb43b[_0x5e13b7];return _0x419e8a;};'use strict';var moment=require(_0xbb43('0x0'));var Sequelize=require(_0xbb43('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0xbb43('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xbb43('0x3')](_0xbb43('0x4'),'agent',_0xbb43('0x5')),'allowNull':![],'defaultValue':_0xbb43('0x5')},'transferredAt':{'type':Sequelize[_0xbb43('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xbb43('0x7')]}};
\ No newline at end of file
+var _0xf4eb=['NOW','moment','account','queue','DATE'];(function(_0x3a9e14,_0x2f1fd8){var _0x147919=function(_0x505529){while(--_0x505529){_0x3a9e14['push'](_0x3a9e14['shift']());}};_0x147919(++_0x2f1fd8);}(_0xf4eb,0xec));var _0xbf4e=function(_0xcec05f,_0x372a6d){_0xcec05f=_0xcec05f-0x0;var _0xff6fbe=_0xf4eb[_0xcec05f];return _0xff6fbe;};'use strict';var moment=require(_0xbf4e('0x0'));var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xbf4e('0x1'),'agent','queue'),'allowNull':![],'defaultValue':_0xbf4e('0x2')},'transferredAt':{'type':Sequelize[_0xbf4e('0x3')],'allowNull':![],'defaultValue':Sequelize[_0xbf4e('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb01=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','send','map','FaxTransferReport','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','ejs','fs-extra','crypto','jsforce','to-csv','querystring','papaparse'];(function(_0x2d34d6,_0x397ff9){var _0x1d3d12=function(_0x558800){while(--_0x558800){_0x2d34d6['push'](_0x2d34d6['shift']());}};_0x1d3d12(++_0x397ff9);}(_0xeb01,0x168));var _0x1eb0=function(_0x397eff,_0x2a7b48){_0x397eff=_0x397eff-0x0;var _0x56ea09=_0xeb01[_0x397eff];return _0x56ea09;};'use strict';var emlformat=require(_0x1eb0('0x0'));var rimraf=require(_0x1eb0('0x1'));var zipdir=require(_0x1eb0('0x2'));var jsonpatch=require(_0x1eb0('0x3'));var rp=require('request-promise');var moment=require(_0x1eb0('0x4'));var BPromise=require(_0x1eb0('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1eb0('0x6'));var sox=require(_0x1eb0('0x7'));var csv=require('to-csv');var ejs=require(_0x1eb0('0x8'));var fs=require('fs');var fs_extra=require(_0x1eb0('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x1eb0('0xa'));var jsforce=require(_0x1eb0('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x1eb0('0xc'));var querystring=require(_0x1eb0('0xd'));var Papa=require(_0x1eb0('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x1eb0('0xf'));var as=require(_0x1eb0('0x10'));var hardwareService=require(_0x1eb0('0x11'));var logger=require(_0x1eb0('0x12'))(_0x1eb0('0x13'));var utils=require('../../config/utils');var config=require(_0x1eb0('0x14'));var licenseUtil=require(_0x1eb0('0x15'));var db=require(_0x1eb0('0x16'))['db'];function respondWithStatusCode(_0xb996cd,_0x10729f){_0x10729f=_0x10729f||0xcc;return function(_0x3b2818){if(_0x3b2818){return _0xb996cd[_0x1eb0('0x17')](_0x10729f);}return _0xb996cd[_0x1eb0('0x18')](_0x10729f)[_0x1eb0('0x19')]();};}function respondWithResult(_0x1b0d3f,_0x2817ed){_0x2817ed=_0x2817ed||0xc8;return function(_0x12b171){if(_0x12b171){return _0x1b0d3f['status'](_0x2817ed)[_0x1eb0('0x1a')](_0x12b171);}};}function respondWithFilteredResult(_0x58369d,_0x1d6869){return function(_0x22ccfc){if(_0x22ccfc){var _0x2a3e4a=typeof _0x1d6869[_0x1eb0('0x1b')]===_0x1eb0('0x1c')&&typeof _0x1d6869[_0x1eb0('0x1d')]===_0x1eb0('0x1c');var _0x4340f=_0x22ccfc[_0x1eb0('0x1e')];var _0x1bcdc0=_0x2a3e4a?0x0:_0x1d6869[_0x1eb0('0x1b')];var _0x3e8f8f=_0x2a3e4a?_0x22ccfc[_0x1eb0('0x1e')]:_0x1d6869[_0x1eb0('0x1b')]+_0x1d6869[_0x1eb0('0x1d')];var _0x60658e;if(_0x3e8f8f>=_0x4340f){_0x3e8f8f=_0x4340f;_0x60658e=0xc8;}else{_0x60658e=0xce;}_0x58369d[_0x1eb0('0x18')](_0x60658e);return _0x58369d[_0x1eb0('0x1f')](_0x1eb0('0x20'),_0x1bcdc0+'-'+_0x3e8f8f+'/'+_0x4340f)[_0x1eb0('0x1a')](_0x22ccfc);}return null;};}function patchUpdates(_0x47922a){return function(_0x2cbcc4){try{jsonpatch[_0x1eb0('0x21')](_0x2cbcc4,_0x47922a,!![]);}catch(_0x18e96f){return BPromise[_0x1eb0('0x22')](_0x18e96f);}return _0x2cbcc4[_0x1eb0('0x23')]();};}function saveUpdates(_0xf5c618,_0x3fc8ae){return function(_0x402990){if(_0x402990){return _0x402990[_0x1eb0('0x24')](_0xf5c618)['then'](function(_0xf3c365){return _0xf3c365;});}return null;};}function removeEntity(_0x122a8a,_0x5ad291){return function(_0x394062){if(_0x394062){return _0x394062[_0x1eb0('0x25')]()[_0x1eb0('0x26')](function(){_0x122a8a[_0x1eb0('0x18')](0xcc)[_0x1eb0('0x19')]();});}};}function handleEntityNotFound(_0x1abd0a,_0x4bcec4){return function(_0x1a73b8){if(!_0x1a73b8){_0x1abd0a['sendStatus'](0x194);}return _0x1a73b8;};}function handleError(_0x52ed11,_0x259166){_0x259166=_0x259166||0x1f4;return function(_0x246e9f){logger[_0x1eb0('0x27')](_0x246e9f[_0x1eb0('0x28')]);if(_0x246e9f[_0x1eb0('0x29')]){delete _0x246e9f[_0x1eb0('0x29')];}_0x52ed11[_0x1eb0('0x18')](_0x259166)[_0x1eb0('0x2a')](_0x246e9f);};}exports['index']=function(_0x2719d6,_0x3e7fc5){var _0x50fa87={},_0x5c4d47={},_0x2b9930={'count':0x0,'rows':[]};var _0x2f8dc3=_[_0x1eb0('0x2b')](db[_0x1eb0('0x2c')][_0x1eb0('0x2d')],function(_0x57d8a7){return{'name':_0x57d8a7[_0x1eb0('0x2e')],'type':_0x57d8a7[_0x1eb0('0x2f')]['key']};});_0x5c4d47[_0x1eb0('0x30')]=_[_0x1eb0('0x2b')](_0x2f8dc3,'name');_0x5c4d47[_0x1eb0('0x31')]=_[_0x1eb0('0x32')](_0x2719d6[_0x1eb0('0x31')]);_0x5c4d47[_0x1eb0('0x33')]=_[_0x1eb0('0x34')](_0x5c4d47[_0x1eb0('0x30')],_0x5c4d47[_0x1eb0('0x31')]);_0x50fa87['attributes']=_[_0x1eb0('0x34')](_0x5c4d47['model'],qs[_0x1eb0('0x35')](_0x2719d6[_0x1eb0('0x31')][_0x1eb0('0x35')]));_0x50fa87[_0x1eb0('0x36')]=_0x50fa87[_0x1eb0('0x36')]['length']?_0x50fa87[_0x1eb0('0x36')]:_0x5c4d47[_0x1eb0('0x30')];if(!_0x2719d6[_0x1eb0('0x31')]['hasOwnProperty']('nolimit')){_0x50fa87[_0x1eb0('0x1d')]=qs[_0x1eb0('0x1d')](_0x2719d6[_0x1eb0('0x31')]['limit']);_0x50fa87[_0x1eb0('0x1b')]=qs['offset'](_0x2719d6[_0x1eb0('0x31')][_0x1eb0('0x1b')]);}_0x50fa87[_0x1eb0('0x37')]=qs[_0x1eb0('0x38')](_0x2719d6[_0x1eb0('0x31')][_0x1eb0('0x38')]);_0x50fa87[_0x1eb0('0x39')]=qs[_0x1eb0('0x33')](_[_0x1eb0('0x3a')](_0x2719d6[_0x1eb0('0x31')],_0x5c4d47[_0x1eb0('0x33')]),_0x2f8dc3);if(_0x2719d6[_0x1eb0('0x31')][_0x1eb0('0x3b')]){_0x50fa87[_0x1eb0('0x39')]=_[_0x1eb0('0x3c')](_0x50fa87[_0x1eb0('0x39')],{'$or':_[_0x1eb0('0x2b')](_0x2f8dc3,function(_0x1a84d7){if(_0x1a84d7[_0x1eb0('0x2f')]!==_0x1eb0('0x3d')){var _0x41e5a6={};_0x41e5a6[_0x1a84d7[_0x1eb0('0x29')]]={'$like':'%'+_0x2719d6[_0x1eb0('0x31')][_0x1eb0('0x3b')]+'%'};return _0x41e5a6;}})});}_0x50fa87=_[_0x1eb0('0x3c')]({},_0x50fa87,_0x2719d6[_0x1eb0('0x3e')]);var _0x8c6653={'where':_0x50fa87[_0x1eb0('0x39')]};return db[_0x1eb0('0x2c')][_0x1eb0('0x1e')](_0x8c6653)[_0x1eb0('0x26')](function(_0x184e15){_0x2b9930[_0x1eb0('0x1e')]=_0x184e15;if(_0x2719d6[_0x1eb0('0x31')][_0x1eb0('0x3f')]){_0x50fa87[_0x1eb0('0x40')]=[{'all':!![]}];}return db['FaxTransferReport'][_0x1eb0('0x41')](_0x50fa87);})[_0x1eb0('0x26')](function(_0x239c1a){_0x2b9930[_0x1eb0('0x42')]=_0x239c1a;return _0x2b9930;})[_0x1eb0('0x26')](respondWithFilteredResult(_0x3e7fc5,_0x50fa87))[_0x1eb0('0x43')](handleError(_0x3e7fc5,null));};exports[_0x1eb0('0x44')]=function(_0x17a3cf,_0x3a9aaf){var _0x348d19={'raw':!![],'where':{'id':_0x17a3cf[_0x1eb0('0x45')]['id']}},_0x41a020={};_0x41a020['model']=_[_0x1eb0('0x32')](db[_0x1eb0('0x2c')]['rawAttributes']);_0x41a020['query']=_[_0x1eb0('0x32')](_0x17a3cf[_0x1eb0('0x31')]);_0x41a020[_0x1eb0('0x33')]=_[_0x1eb0('0x34')](_0x41a020['model'],_0x41a020[_0x1eb0('0x31')]);_0x348d19[_0x1eb0('0x36')]=_[_0x1eb0('0x34')](_0x41a020[_0x1eb0('0x30')],qs[_0x1eb0('0x35')](_0x17a3cf[_0x1eb0('0x31')][_0x1eb0('0x35')]));_0x348d19[_0x1eb0('0x36')]=_0x348d19['attributes'][_0x1eb0('0x46')]?_0x348d19['attributes']:_0x41a020[_0x1eb0('0x30')];if(_0x17a3cf['query']['includeAll']){_0x348d19[_0x1eb0('0x40')]=[{'all':!![]}];}_0x348d19=_[_0x1eb0('0x3c')]({},_0x348d19,_0x17a3cf['options']);return db[_0x1eb0('0x2c')][_0x1eb0('0x47')](_0x348d19)['then'](handleEntityNotFound(_0x3a9aaf,null))['then'](respondWithResult(_0x3a9aaf,null))['catch'](handleError(_0x3a9aaf,null));};exports[_0x1eb0('0x48')]=function(_0x21c7af,_0x5bd6ff){return db['FaxTransferReport'][_0x1eb0('0x48')](_0x21c7af[_0x1eb0('0x49')],{})['then'](respondWithResult(_0x5bd6ff,0xc9))[_0x1eb0('0x43')](handleError(_0x5bd6ff,null));};exports[_0x1eb0('0x24')]=function(_0x443313,_0x4c0792){if(_0x443313[_0x1eb0('0x49')]['id']){delete _0x443313[_0x1eb0('0x49')]['id'];}return db[_0x1eb0('0x2c')][_0x1eb0('0x47')]({'where':{'id':_0x443313['params']['id']}})[_0x1eb0('0x26')](handleEntityNotFound(_0x4c0792,null))['then'](saveUpdates(_0x443313['body'],null))[_0x1eb0('0x26')](respondWithResult(_0x4c0792,null))[_0x1eb0('0x43')](handleError(_0x4c0792,null));};exports[_0x1eb0('0x25')]=function(_0x2def65,_0x4df162){return db['FaxTransferReport']['find']({'where':{'id':_0x2def65[_0x1eb0('0x45')]['id']}})[_0x1eb0('0x26')](handleEntityNotFound(_0x4df162,null))[_0x1eb0('0x26')](removeEntity(_0x4df162,null))['catch'](handleError(_0x4df162,null));};exports[_0x1eb0('0x4a')]=function(_0x4cbe12,_0xc97155){return db[_0x1eb0('0x2c')][_0x1eb0('0x4a')]()['then'](respondWithResult(_0xc97155,null))[_0x1eb0('0x43')](handleError(_0xc97155,null));};
\ No newline at end of file
+var _0x5b9d=['json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','FaxTransferReport','includeAll','include','findAll','catch','params','options','create','body','find','destroy','describe','eml-format','rimraf','request-promise','util','path','sox','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x1fffcc,_0xb258ec){var _0xa83ea3=function(_0x327fcc){while(--_0x327fcc){_0x1fffcc['push'](_0x1fffcc['shift']());}};_0xa83ea3(++_0xb258ec);}(_0x5b9d,0x14b));var _0xd5b9=function(_0x2a14a5,_0x3783ff){_0x2a14a5=_0x2a14a5-0x0;var _0x4d4da6=_0x5b9d[_0x2a14a5];return _0x4d4da6;};'use strict';var emlformat=require(_0xd5b9('0x0'));var rimraf=require(_0xd5b9('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xd5b9('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xd5b9('0x3'));var path=require(_0xd5b9('0x4'));var sox=require(_0xd5b9('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd5b9('0x6'));var _=require('lodash');var squel=require(_0xd5b9('0x7'));var crypto=require(_0xd5b9('0x8'));var jsforce=require('jsforce');var deskjs=require(_0xd5b9('0x9'));var toCsv=require(_0xd5b9('0xa'));var querystring=require(_0xd5b9('0xb'));var Papa=require(_0xd5b9('0xc'));var Redis=require(_0xd5b9('0xd'));var authService=require(_0xd5b9('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xd5b9('0xf'));var hardwareService=require(_0xd5b9('0x10'));var logger=require(_0xd5b9('0x11'))(_0xd5b9('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xd5b9('0x13'));var db=require(_0xd5b9('0x14'))['db'];function respondWithStatusCode(_0x1ea3d1,_0x544306){_0x544306=_0x544306||0xcc;return function(_0x5bd928){if(_0x5bd928){return _0x1ea3d1[_0xd5b9('0x15')](_0x544306);}return _0x1ea3d1[_0xd5b9('0x16')](_0x544306)[_0xd5b9('0x17')]();};}function respondWithResult(_0x54a7c0,_0x3ffbf2){_0x3ffbf2=_0x3ffbf2||0xc8;return function(_0x2689fd){if(_0x2689fd){return _0x54a7c0[_0xd5b9('0x16')](_0x3ffbf2)[_0xd5b9('0x18')](_0x2689fd);}};}function respondWithFilteredResult(_0x56f45d,_0xbb8cd5){return function(_0x5751e4){if(_0x5751e4){var _0x4ae0e4=typeof _0xbb8cd5[_0xd5b9('0x19')]===_0xd5b9('0x1a')&&typeof _0xbb8cd5[_0xd5b9('0x1b')]===_0xd5b9('0x1a');var _0x2e20ed=_0x5751e4[_0xd5b9('0x1c')];var _0x24d31d=_0x4ae0e4?0x0:_0xbb8cd5[_0xd5b9('0x19')];var _0x2c0187=_0x4ae0e4?_0x5751e4[_0xd5b9('0x1c')]:_0xbb8cd5['offset']+_0xbb8cd5[_0xd5b9('0x1b')];var _0x4c7d6b;if(_0x2c0187>=_0x2e20ed){_0x2c0187=_0x2e20ed;_0x4c7d6b=0xc8;}else{_0x4c7d6b=0xce;}_0x56f45d[_0xd5b9('0x16')](_0x4c7d6b);return _0x56f45d[_0xd5b9('0x1d')](_0xd5b9('0x1e'),_0x24d31d+'-'+_0x2c0187+'/'+_0x2e20ed)[_0xd5b9('0x18')](_0x5751e4);}return null;};}function patchUpdates(_0x44a781){return function(_0x4f0c6b){try{jsonpatch['apply'](_0x4f0c6b,_0x44a781,!![]);}catch(_0x501ded){return BPromise[_0xd5b9('0x1f')](_0x501ded);}return _0x4f0c6b[_0xd5b9('0x20')]();};}function saveUpdates(_0x16cfdc,_0x286f81){return function(_0x1dd814){if(_0x1dd814){return _0x1dd814[_0xd5b9('0x21')](_0x16cfdc)['then'](function(_0x2817f9){return _0x2817f9;});}return null;};}function removeEntity(_0x578f4b,_0x2dc268){return function(_0x25169f){if(_0x25169f){return _0x25169f['destroy']()[_0xd5b9('0x22')](function(){_0x578f4b[_0xd5b9('0x16')](0xcc)[_0xd5b9('0x17')]();});}};}function handleEntityNotFound(_0x218147,_0x5a058d){return function(_0x153b56){if(!_0x153b56){_0x218147[_0xd5b9('0x15')](0x194);}return _0x153b56;};}function handleError(_0x36e961,_0x5ae735){_0x5ae735=_0x5ae735||0x1f4;return function(_0x2585a6){logger['error'](_0x2585a6['stack']);if(_0x2585a6[_0xd5b9('0x23')]){delete _0x2585a6[_0xd5b9('0x23')];}_0x36e961[_0xd5b9('0x16')](_0x5ae735)[_0xd5b9('0x24')](_0x2585a6);};}exports[_0xd5b9('0x25')]=function(_0x37013f,_0x3d600d){var _0x242457={},_0x231f0e={},_0x58ba61={'count':0x0,'rows':[]};var _0x1edd32=_[_0xd5b9('0x26')](db['FaxTransferReport'][_0xd5b9('0x27')],function(_0x2246bc){return{'name':_0x2246bc[_0xd5b9('0x28')],'type':_0x2246bc[_0xd5b9('0x29')][_0xd5b9('0x2a')]};});_0x231f0e[_0xd5b9('0x2b')]=_[_0xd5b9('0x26')](_0x1edd32,_0xd5b9('0x23'));_0x231f0e[_0xd5b9('0x2c')]=_[_0xd5b9('0x2d')](_0x37013f[_0xd5b9('0x2c')]);_0x231f0e[_0xd5b9('0x2e')]=_[_0xd5b9('0x2f')](_0x231f0e['model'],_0x231f0e[_0xd5b9('0x2c')]);_0x242457[_0xd5b9('0x30')]=_[_0xd5b9('0x2f')](_0x231f0e[_0xd5b9('0x2b')],qs[_0xd5b9('0x31')](_0x37013f[_0xd5b9('0x2c')][_0xd5b9('0x31')]));_0x242457['attributes']=_0x242457[_0xd5b9('0x30')][_0xd5b9('0x32')]?_0x242457['attributes']:_0x231f0e[_0xd5b9('0x2b')];if(!_0x37013f['query'][_0xd5b9('0x33')](_0xd5b9('0x34'))){_0x242457[_0xd5b9('0x1b')]=qs[_0xd5b9('0x1b')](_0x37013f['query']['limit']);_0x242457[_0xd5b9('0x19')]=qs[_0xd5b9('0x19')](_0x37013f['query'][_0xd5b9('0x19')]);}_0x242457[_0xd5b9('0x35')]=qs[_0xd5b9('0x36')](_0x37013f['query'][_0xd5b9('0x36')]);_0x242457[_0xd5b9('0x37')]=qs[_0xd5b9('0x2e')](_['pick'](_0x37013f[_0xd5b9('0x2c')],_0x231f0e[_0xd5b9('0x2e')]),_0x1edd32);if(_0x37013f[_0xd5b9('0x2c')][_0xd5b9('0x38')]){_0x242457[_0xd5b9('0x37')]=_[_0xd5b9('0x39')](_0x242457[_0xd5b9('0x37')],{'$or':_[_0xd5b9('0x26')](_0x1edd32,function(_0x2be2ff){if(_0x2be2ff['type']!==_0xd5b9('0x3a')){var _0x3de1c2={};_0x3de1c2[_0x2be2ff[_0xd5b9('0x23')]]={'$like':'%'+_0x37013f[_0xd5b9('0x2c')][_0xd5b9('0x38')]+'%'};return _0x3de1c2;}})});}_0x242457=_[_0xd5b9('0x39')]({},_0x242457,_0x37013f['options']);var _0x3f2576={'where':_0x242457[_0xd5b9('0x37')]};return db[_0xd5b9('0x3b')]['count'](_0x3f2576)[_0xd5b9('0x22')](function(_0x198149){_0x58ba61[_0xd5b9('0x1c')]=_0x198149;if(_0x37013f[_0xd5b9('0x2c')][_0xd5b9('0x3c')]){_0x242457[_0xd5b9('0x3d')]=[{'all':!![]}];}return db[_0xd5b9('0x3b')][_0xd5b9('0x3e')](_0x242457);})[_0xd5b9('0x22')](function(_0x55892e){_0x58ba61['rows']=_0x55892e;return _0x58ba61;})[_0xd5b9('0x22')](respondWithFilteredResult(_0x3d600d,_0x242457))[_0xd5b9('0x3f')](handleError(_0x3d600d,null));};exports['show']=function(_0x54295c,_0x148df2){var _0x79da14={'raw':!![],'where':{'id':_0x54295c[_0xd5b9('0x40')]['id']}},_0x43fa59={};_0x43fa59[_0xd5b9('0x2b')]=_[_0xd5b9('0x2d')](db['FaxTransferReport'][_0xd5b9('0x27')]);_0x43fa59['query']=_[_0xd5b9('0x2d')](_0x54295c[_0xd5b9('0x2c')]);_0x43fa59[_0xd5b9('0x2e')]=_[_0xd5b9('0x2f')](_0x43fa59['model'],_0x43fa59[_0xd5b9('0x2c')]);_0x79da14['attributes']=_[_0xd5b9('0x2f')](_0x43fa59['model'],qs[_0xd5b9('0x31')](_0x54295c[_0xd5b9('0x2c')][_0xd5b9('0x31')]));_0x79da14['attributes']=_0x79da14[_0xd5b9('0x30')][_0xd5b9('0x32')]?_0x79da14[_0xd5b9('0x30')]:_0x43fa59[_0xd5b9('0x2b')];if(_0x54295c[_0xd5b9('0x2c')][_0xd5b9('0x3c')]){_0x79da14[_0xd5b9('0x3d')]=[{'all':!![]}];}_0x79da14=_[_0xd5b9('0x39')]({},_0x79da14,_0x54295c[_0xd5b9('0x41')]);return db[_0xd5b9('0x3b')]['find'](_0x79da14)[_0xd5b9('0x22')](handleEntityNotFound(_0x148df2,null))[_0xd5b9('0x22')](respondWithResult(_0x148df2,null))[_0xd5b9('0x3f')](handleError(_0x148df2,null));};exports[_0xd5b9('0x42')]=function(_0x5d1887,_0x2f6a21){return db['FaxTransferReport'][_0xd5b9('0x42')](_0x5d1887[_0xd5b9('0x43')],{})[_0xd5b9('0x22')](respondWithResult(_0x2f6a21,0xc9))[_0xd5b9('0x3f')](handleError(_0x2f6a21,null));};exports[_0xd5b9('0x21')]=function(_0x15ffc7,_0x4bfca5){if(_0x15ffc7[_0xd5b9('0x43')]['id']){delete _0x15ffc7['body']['id'];}return db[_0xd5b9('0x3b')][_0xd5b9('0x44')]({'where':{'id':_0x15ffc7[_0xd5b9('0x40')]['id']}})[_0xd5b9('0x22')](handleEntityNotFound(_0x4bfca5,null))[_0xd5b9('0x22')](saveUpdates(_0x15ffc7[_0xd5b9('0x43')],null))[_0xd5b9('0x22')](respondWithResult(_0x4bfca5,null))[_0xd5b9('0x3f')](handleError(_0x4bfca5,null));};exports[_0xd5b9('0x45')]=function(_0x49f10a,_0x2f697a){return db['FaxTransferReport'][_0xd5b9('0x44')]({'where':{'id':_0x49f10a[_0xd5b9('0x40')]['id']}})['then'](handleEntityNotFound(_0x2f697a,null))['then'](removeEntity(_0x2f697a,null))[_0xd5b9('0x3f')](handleError(_0x2f697a,null));};exports[_0xd5b9('0x46')]=function(_0x183d79,_0xcdbe03){return db[_0xd5b9('0x3b')][_0xd5b9('0x46')]()['then'](respondWithResult(_0xcdbe03,null))['catch'](handleError(_0xcdbe03,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1874=['uniqueid','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','./faxTransferReport.attributes','exports','define','FaxTransferReport','report_fax_transfer'];(function(_0x320ebd,_0x2ba333){var _0x4bd7fc=function(_0x1fe6a0){while(--_0x1fe6a0){_0x320ebd['push'](_0x320ebd['shift']());}};_0x4bd7fc(++_0x2ba333);}(_0x1874,0x10b));var _0x4187=function(_0x2569a1,_0x1bfbe6){_0x2569a1=_0x2569a1-0x0;var _0x4d3885=_0x1874[_0x2569a1];return _0x4d3885;};'use strict';var _=require(_0x4187('0x0'));var util=require(_0x4187('0x1'));var logger=require(_0x4187('0x2'))(_0x4187('0x3'));var moment=require(_0x4187('0x4'));var BPromise=require('bluebird');var rp=require(_0x4187('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4187('0x6'));var config=require(_0x4187('0x7'));var attributes=require(_0x4187('0x8'));module[_0x4187('0x9')]=function(_0x3a46b7,_0x1826a0){return _0x3a46b7[_0x4187('0xa')](_0x4187('0xb'),attributes,{'tableName':_0x4187('0xc'),'paranoid':![],'indexes':[{'name':_0x4187('0xd'),'fields':[_0x4187('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa724=['api','bluebird','path','rimraf','../../config/environment','./faxTransferReport.attributes','define','FaxTransferReport','report_fax_transfer','uniqueid','lodash'];(function(_0x5d8018,_0x588592){var _0x151ac4=function(_0x548679){while(--_0x548679){_0x5d8018['push'](_0x5d8018['shift']());}};_0x151ac4(++_0x588592);}(_0xa724,0xf1));var _0x4a72=function(_0x3b38e5,_0x1f625d){_0x3b38e5=_0x3b38e5-0x0;var _0x496518=_0xa724[_0x3b38e5];return _0x496518;};'use strict';var _=require(_0x4a72('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x4a72('0x1'));var moment=require('moment');var BPromise=require(_0x4a72('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4a72('0x3'));var rimraf=require(_0x4a72('0x4'));var config=require(_0x4a72('0x5'));var attributes=require(_0x4a72('0x6'));module['exports']=function(_0xe22fb9,_0x4aaccb){return _0xe22fb9[_0x4a72('0x7')](_0x4a72('0x8'),attributes,{'tableName':_0x4a72('0x9'),'paranoid':![],'indexes':[{'name':_0x4a72('0xa'),'fields':[_0x4a72('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90ba=['ioredis','../../config/logger','rpc','jayson/promise','client','http','then','FaxTransferReport,\x20%s,\x20%s','request\x20sent','debug','FaxTransferReport,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','lodash','util','moment','bluebird','randomstring'];(function(_0x10bd3d,_0x478dfb){var _0x48d6fd=function(_0xdf597f){while(--_0xdf597f){_0x10bd3d['push'](_0x10bd3d['shift']());}};_0x48d6fd(++_0x478dfb);}(_0x90ba,0xa3));var _0xa90b=function(_0x5411d6,_0x2fac44){_0x5411d6=_0x5411d6-0x0;var _0x1d7a86=_0x90ba[_0x5411d6];return _0x1d7a86;};'use strict';var _=require(_0xa90b('0x0'));var util=require(_0xa90b('0x1'));var moment=require(_0xa90b('0x2'));var BPromise=require(_0xa90b('0x3'));var rs=require(_0xa90b('0x4'));var fs=require('fs');var Redis=require(_0xa90b('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa90b('0x6'))(_0xa90b('0x7'));var config=require('../../config/environment');var jayson=require(_0xa90b('0x8'));var client=jayson[_0xa90b('0x9')][_0xa90b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x29938b,_0x5acdd1,_0x5752a5){return new BPromise(function(_0x59cd48,_0x7e2480){return client['request'](_0x29938b,_0x5752a5)[_0xa90b('0xb')](function(_0x3376ec){logger['info'](_0xa90b('0xc'),_0x5acdd1,_0xa90b('0xd'));logger[_0xa90b('0xe')](_0xa90b('0xf'),_0x5acdd1,_0xa90b('0xd'),JSON['stringify'](_0x3376ec));if(_0x3376ec[_0xa90b('0x10')]){if(_0x3376ec[_0xa90b('0x10')]['code']===0x1f4){logger['error'](_0xa90b('0xc'),_0x5acdd1,_0x3376ec[_0xa90b('0x10')][_0xa90b('0x11')]);return _0x7e2480(_0x3376ec[_0xa90b('0x10')][_0xa90b('0x11')]);}logger[_0xa90b('0x10')](_0xa90b('0xc'),_0x5acdd1,_0x3376ec[_0xa90b('0x10')][_0xa90b('0x11')]);return _0x59cd48(_0x3376ec[_0xa90b('0x10')][_0xa90b('0x11')]);}else{logger[_0xa90b('0x12')](_0xa90b('0xc'),_0x5acdd1,'request\x20sent');_0x59cd48(_0x3376ec[_0xa90b('0x13')][_0xa90b('0x11')]);}})[_0xa90b('0x14')](function(_0x2a1683){logger[_0xa90b('0x10')](_0xa90b('0xc'),_0x5acdd1,_0x2a1683);_0x7e2480(_0x2a1683);});});}
\ No newline at end of file
+var _0xa784=['http','then','info','request\x20sent','debug','FaxTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxTransferReport,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client'];(function(_0x10df6d,_0x30ea63){var _0x39198b=function(_0x33b965){while(--_0x33b965){_0x10df6d['push'](_0x10df6d['shift']());}};_0x39198b(++_0x30ea63);}(_0xa784,0x152));var _0x4a78=function(_0x1fd041,_0x5b17dc){_0x1fd041=_0x1fd041-0x0;var _0x4d33e0=_0xa784[_0x1fd041];return _0x4d33e0;};'use strict';var _=require(_0x4a78('0x0'));var util=require(_0x4a78('0x1'));var moment=require(_0x4a78('0x2'));var BPromise=require(_0x4a78('0x3'));var rs=require(_0x4a78('0x4'));var fs=require('fs');var Redis=require(_0x4a78('0x5'));var db=require(_0x4a78('0x6'))['db'];var utils=require(_0x4a78('0x7'));var logger=require('../../config/logger')(_0x4a78('0x8'));var config=require(_0x4a78('0x9'));var jayson=require(_0x4a78('0xa'));var client=jayson[_0x4a78('0xb')][_0x4a78('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x103d5c,_0x2038eb,_0x3bf039){return new BPromise(function(_0x4a3803,_0x3abb63){return client['request'](_0x103d5c,_0x3bf039)[_0x4a78('0xd')](function(_0x4f6240){logger[_0x4a78('0xe')]('FaxTransferReport,\x20%s,\x20%s',_0x2038eb,_0x4a78('0xf'));logger[_0x4a78('0x10')](_0x4a78('0x11'),_0x2038eb,_0x4a78('0xf'),JSON[_0x4a78('0x12')](_0x4f6240));if(_0x4f6240[_0x4a78('0x13')]){if(_0x4f6240['error'][_0x4a78('0x14')]===0x1f4){logger['error'](_0x4a78('0x15'),_0x2038eb,_0x4f6240[_0x4a78('0x13')][_0x4a78('0x16')]);return _0x3abb63(_0x4f6240[_0x4a78('0x13')][_0x4a78('0x16')]);}logger['error'](_0x4a78('0x15'),_0x2038eb,_0x4f6240[_0x4a78('0x13')][_0x4a78('0x16')]);return _0x4a3803(_0x4f6240[_0x4a78('0x13')][_0x4a78('0x16')]);}else{logger[_0x4a78('0xe')](_0x4a78('0x15'),_0x2038eb,_0x4a78('0xf'));_0x4a3803(_0x4f6240[_0x4a78('0x17')][_0x4a78('0x16')]);}})[_0x4a78('0x18')](function(_0x430186){logger[_0x4a78('0x13')](_0x4a78('0x15'),_0x2038eb,_0x430186);_0x3abb63(_0x430186);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x749c=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','isAuthenticated','index','get','/describe','describe','/:id','show','create','put','update','delete','exports','multer','util','path','connect-timeout'];(function(_0x25a28e,_0x23f8ca){var _0x4ee04c=function(_0x23f8b5){while(--_0x23f8b5){_0x25a28e['push'](_0x25a28e['shift']());}};_0x4ee04c(++_0x23f8ca);}(_0x749c,0x1df));var _0xc749=function(_0x17928f,_0x4ad33f){_0x17928f=_0x17928f-0x0;var _0x500b63=_0x749c[_0x17928f];return _0x500b63;};'use strict';var multer=require(_0xc749('0x0'));var util=require(_0xc749('0x1'));var path=require(_0xc749('0x2'));var timeout=require(_0xc749('0x3'));var express=require(_0xc749('0x4'));var router=express[_0xc749('0x5')]();var fs_extra=require(_0xc749('0x6'));var auth=require(_0xc749('0x7'));var interaction=require(_0xc749('0x8'));var config=require(_0xc749('0x9'));var controller=require(_0xc749('0xa'));router['get']('/',auth[_0xc749('0xb')](),controller[_0xc749('0xc')]);router[_0xc749('0xd')](_0xc749('0xe'),auth['isAuthenticated'](),controller[_0xc749('0xf')]);router['get'](_0xc749('0x10'),auth['isAuthenticated'](),controller[_0xc749('0x11')]);router['post']('/',auth['isAuthenticated'](),controller[_0xc749('0x12')]);router[_0xc749('0x13')](_0xc749('0x10'),auth[_0xc749('0xb')](),controller[_0xc749('0x14')]);router[_0xc749('0x15')](_0xc749('0x10'),auth['isAuthenticated'](),controller['destroy']);module[_0xc749('0x16')]=router;
\ No newline at end of file
+var _0x47ad=['util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','isAuthenticated','index','get','/describe','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer'];(function(_0x1c3386,_0x2868c0){var _0x2cc8e9=function(_0x556aa2){while(--_0x556aa2){_0x1c3386['push'](_0x1c3386['shift']());}};_0x2cc8e9(++_0x2868c0);}(_0x47ad,0x15f));var _0xd47a=function(_0x631a3c,_0x1b61b6){_0x631a3c=_0x631a3c-0x0;var _0x2bdfa3=_0x47ad[_0x631a3c];return _0x2bdfa3;};'use strict';var multer=require(_0xd47a('0x0'));var util=require(_0xd47a('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xd47a('0x2')]();var fs_extra=require(_0xd47a('0x3'));var auth=require(_0xd47a('0x4'));var interaction=require(_0xd47a('0x5'));var config=require(_0xd47a('0x6'));var controller=require(_0xd47a('0x7'));router['get']('/',auth[_0xd47a('0x8')](),controller[_0xd47a('0x9')]);router[_0xd47a('0xa')](_0xd47a('0xb'),auth[_0xd47a('0x8')](),controller[_0xd47a('0xc')]);router[_0xd47a('0xa')](_0xd47a('0xd'),auth[_0xd47a('0x8')](),controller[_0xd47a('0xe')]);router[_0xd47a('0xf')]('/',auth['isAuthenticated'](),controller[_0xd47a('0x10')]);router[_0xd47a('0x11')]('/:id',auth[_0xd47a('0x8')](),controller[_0xd47a('0x12')]);router[_0xd47a('0x13')](_0xd47a('0xd'),auth['isAuthenticated'](),controller[_0xd47a('0x14')]);module[_0xd47a('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab1c=['destroy','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated','index','/:id','show','/:id/configurations','/:id/fields','create','put','delete'];(function(_0x553f4b,_0x48c94e){var _0x329299=function(_0x34564f){while(--_0x34564f){_0x553f4b['push'](_0x553f4b['shift']());}};_0x329299(++_0x48c94e);}(_0xab1c,0x151));var _0xcab1=function(_0x3f9468,_0xcc59db){_0x3f9468=_0x3f9468-0x0;var _0x7bdb01=_0xab1c[_0x3f9468];return _0x7bdb01;};'use strict';var multer=require(_0xcab1('0x0'));var util=require(_0xcab1('0x1'));var path=require(_0xcab1('0x2'));var timeout=require(_0xcab1('0x3'));var express=require(_0xcab1('0x4'));var router=express['Router']();var fs_extra=require(_0xcab1('0x5'));var auth=require(_0xcab1('0x6'));var interaction=require(_0xcab1('0x7'));var config=require(_0xcab1('0x8'));var controller=require(_0xcab1('0x9'));router[_0xcab1('0xa')]('/',auth[_0xcab1('0xb')](),controller[_0xcab1('0xc')]);router[_0xcab1('0xa')](_0xcab1('0xd'),auth[_0xcab1('0xb')](),controller[_0xcab1('0xe')]);router['get'](_0xcab1('0xf'),auth[_0xcab1('0xb')](),controller['getConfigurations']);router[_0xcab1('0xa')](_0xcab1('0x10'),auth[_0xcab1('0xb')](),controller['getFields']);router['post']('/',auth[_0xcab1('0xb')](),controller[_0xcab1('0x11')]);router['post']('/:id/configurations',auth['isAuthenticated'](),controller['addConfiguration']);router[_0xcab1('0x12')](_0xcab1('0xd'),auth['isAuthenticated'](),controller['update']);router[_0xcab1('0x13')](_0xcab1('0xd'),auth[_0xcab1('0xb')](),controller[_0xcab1('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x3512=['delete','exports','multer','util','path','express','fs-extra','../../config/environment','./intDeskAccount.controller','isAuthenticated','index','get','/:id','show','/:id/configurations','/:id/fields','getFields','post','update'];(function(_0x245c70,_0x17903c){var _0x2f53ae=function(_0x3116d6){while(--_0x3116d6){_0x245c70['push'](_0x245c70['shift']());}};_0x2f53ae(++_0x17903c);}(_0x3512,0x74));var _0x2351=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x3512[_0x4565bf];return _0x5610ba;};'use strict';var multer=require(_0x2351('0x0'));var util=require(_0x2351('0x1'));var path=require(_0x2351('0x2'));var timeout=require('connect-timeout');var express=require(_0x2351('0x3'));var router=express['Router']();var fs_extra=require(_0x2351('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x2351('0x5'));var controller=require(_0x2351('0x6'));router['get']('/',auth[_0x2351('0x7')](),controller[_0x2351('0x8')]);router[_0x2351('0x9')](_0x2351('0xa'),auth['isAuthenticated'](),controller[_0x2351('0xb')]);router[_0x2351('0x9')](_0x2351('0xc'),auth[_0x2351('0x7')](),controller['getConfigurations']);router[_0x2351('0x9')](_0x2351('0xd'),auth[_0x2351('0x7')](),controller[_0x2351('0xe')]);router[_0x2351('0xf')]('/',auth[_0x2351('0x7')](),controller['create']);router[_0x2351('0xf')](_0x2351('0xc'),auth['isAuthenticated'](),controller['addConfiguration']);router['put']('/:id',auth['isAuthenticated'](),controller[_0x2351('0x10')]);router[_0x2351('0x11')](_0x2351('0xa'),auth[_0x2351('0x7')](),controller['destroy']);module[_0x2351('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5bdd=['exports','STRING','ENUM','basic','integrationTab','newTab','sequelize'];(function(_0xfa634c,_0x414e0e){var _0x73e478=function(_0xac2a51){while(--_0xac2a51){_0xfa634c['push'](_0xfa634c['shift']());}};_0x73e478(++_0x414e0e);}(_0x5bdd,0x76));var _0xd5bd=function(_0x226545,_0x518172){_0x226545=_0x226545-0x0;var _0x47c04d=_0x5bdd[_0x226545];return _0x47c04d;};'use strict';var Sequelize=require(_0xd5bd('0x0'));module[_0xd5bd('0x1')]={'name':{'type':Sequelize[_0xd5bd('0x2')]},'description':{'type':Sequelize[_0xd5bd('0x2')]},'username':{'type':Sequelize[_0xd5bd('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'authType':{'type':Sequelize[_0xd5bd('0x3')](_0xd5bd('0x4')),'defaultValue':'basic'},'password':{'type':Sequelize[_0xd5bd('0x2')]},'consumerKey':{'type':Sequelize[_0xd5bd('0x2')]},'consumerSecret':{'type':Sequelize[_0xd5bd('0x2')]},'token':{'type':Sequelize[_0xd5bd('0x2')]},'tokenSecret':{'type':Sequelize[_0xd5bd('0x2')]},'serverUrl':{'type':Sequelize[_0xd5bd('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xd5bd('0x3')](_0xd5bd('0x5'),_0xd5bd('0x6')),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0xd09b=['STRING','ENUM','newTab','integrationTab','sequelize'];(function(_0x18fb16,_0x45edbc){var _0x147b0d=function(_0x5b1b00){while(--_0x5b1b00){_0x18fb16['push'](_0x18fb16['shift']());}};_0x147b0d(++_0x45edbc);}(_0xd09b,0x1cb));var _0xbd09=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0xd09b[_0x1694f5];return _0x5b4321;};'use strict';var Sequelize=require(_0xbd09('0x0'));module['exports']={'name':{'type':Sequelize[_0xbd09('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0xbd09('0x1')]},'remoteUri':{'type':Sequelize['STRING']},'authType':{'type':Sequelize[_0xbd09('0x2')]('basic'),'defaultValue':'basic'},'password':{'type':Sequelize[_0xbd09('0x1')]},'consumerKey':{'type':Sequelize[_0xbd09('0x1')]},'consumerSecret':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0xbd09('0x1')]},'tokenSecret':{'type':Sequelize[_0xbd09('0x1')]},'serverUrl':{'type':Sequelize[_0xbd09('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xbd09('0x2')]('integrationTab',_0xbd09('0x3')),'defaultValue':_0xbd09('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68a3=['basic','format','Basic\x20%s','%s:%s','username','base64','concat','_embedded','entries','active','label','test','error','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','fast-json-patch','request-promise','moment','util','path','ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','offset','limit','undefined','count','set','apply','reject','save','then','stack','name','send','index','DeskAccount','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','merge','find','create','update','body','destroy','getConfigurations','findOne','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','DeskField','getFields','priority','authType','password','consumerKey','consumerSecret','token','tokenSecret','substring','GET','%s/custom_fields','application/json'];(function(_0x3dff57,_0x49300a){var _0x2d7133=function(_0x18595a){while(--_0x18595a){_0x3dff57['push'](_0x3dff57['shift']());}};_0x2d7133(++_0x49300a);}(_0x68a3,0xf4));var _0x368a=function(_0xdf5f51,_0x2e32d1){_0xdf5f51=_0xdf5f51-0x0;var _0x18b69f=_0x68a3[_0xdf5f51];return _0x18b69f;};'use strict';var emlformat=require(_0x368a('0x0'));var rimraf=require(_0x368a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x368a('0x2'));var rp=require(_0x368a('0x3'));var moment=require(_0x368a('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x368a('0x5'));var path=require(_0x368a('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x368a('0x7'));var fs=require('fs');var fs_extra=require(_0x368a('0x8'));var _=require('lodash');var squel=require(_0x368a('0x9'));var crypto=require(_0x368a('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x368a('0xb'));var toCsv=require(_0x368a('0xc'));var querystring=require(_0x368a('0xd'));var Papa=require(_0x368a('0xe'));var Redis=require(_0x368a('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x368a('0x10'));var as=require(_0x368a('0x11'));var hardwareService=require(_0x368a('0x12'));var logger=require(_0x368a('0x13'))(_0x368a('0x14'));var utils=require(_0x368a('0x15'));var config=require(_0x368a('0x16'));var licenseUtil=require(_0x368a('0x17'));var db=require(_0x368a('0x18'))['db'];var integrations=require(_0x368a('0x19'));function respondWithStatusCode(_0x3de164,_0x5dab07){_0x5dab07=_0x5dab07||0xcc;return function(_0x3cd168){if(_0x3cd168){return _0x3de164[_0x368a('0x1a')](_0x5dab07);}return _0x3de164['status'](_0x5dab07)[_0x368a('0x1b')]();};}function respondWithResult(_0x9579b5,_0x2f8247){_0x2f8247=_0x2f8247||0xc8;return function(_0x5c9201){if(_0x5c9201){return _0x9579b5[_0x368a('0x1c')](_0x2f8247)['json'](_0x5c9201);}};}function respondWithFilteredResult(_0x4bddbb,_0x570231){return function(_0x23a36c){if(_0x23a36c){var _0x425694=typeof _0x570231[_0x368a('0x1d')]==='undefined'&&typeof _0x570231[_0x368a('0x1e')]===_0x368a('0x1f');var _0x18a833=_0x23a36c[_0x368a('0x20')];var _0x22435d=_0x425694?0x0:_0x570231[_0x368a('0x1d')];var _0x3d033c=_0x425694?_0x23a36c[_0x368a('0x20')]:_0x570231[_0x368a('0x1d')]+_0x570231[_0x368a('0x1e')];var _0x2629ee;if(_0x3d033c>=_0x18a833){_0x3d033c=_0x18a833;_0x2629ee=0xc8;}else{_0x2629ee=0xce;}_0x4bddbb[_0x368a('0x1c')](_0x2629ee);return _0x4bddbb[_0x368a('0x21')]('Content-Range',_0x22435d+'-'+_0x3d033c+'/'+_0x18a833)['json'](_0x23a36c);}return null;};}function patchUpdates(_0x522d0b){return function(_0x2e7fab){try{jsonpatch[_0x368a('0x22')](_0x2e7fab,_0x522d0b,!![]);}catch(_0x180ff4){return BPromise[_0x368a('0x23')](_0x180ff4);}return _0x2e7fab[_0x368a('0x24')]();};}function saveUpdates(_0x2bae06,_0x4fdd1b){return function(_0x337cc6){if(_0x337cc6){return _0x337cc6['update'](_0x2bae06)[_0x368a('0x25')](function(_0x9ca5ab){return _0x9ca5ab;});}return null;};}function removeEntity(_0x56f559,_0x59fccc){return function(_0x1adc6d){if(_0x1adc6d){return _0x1adc6d['destroy']()['then'](function(){_0x56f559[_0x368a('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0xb69689,_0x560c42){return function(_0x5a6534){if(!_0x5a6534){_0xb69689[_0x368a('0x1a')](0x194);}return _0x5a6534;};}function handleError(_0x12f072,_0x2a5462){_0x2a5462=_0x2a5462||0x1f4;return function(_0x16a9d8){logger['error'](_0x16a9d8[_0x368a('0x26')]);if(_0x16a9d8[_0x368a('0x27')]){delete _0x16a9d8[_0x368a('0x27')];}_0x12f072[_0x368a('0x1c')](_0x2a5462)[_0x368a('0x28')](_0x16a9d8);};}exports[_0x368a('0x29')]=function(_0x3a83a5,_0x1febec){var _0x4d3ba9={},_0x3f6dc2={},_0x36b4a6={'count':0x0,'rows':[]};var _0x154aa6=_['map'](db[_0x368a('0x2a')][_0x368a('0x2b')],function(_0x212539){return{'name':_0x212539['fieldName'],'type':_0x212539[_0x368a('0x2c')][_0x368a('0x2d')]};});_0x3f6dc2[_0x368a('0x2e')]=_['map'](_0x154aa6,_0x368a('0x27'));_0x3f6dc2[_0x368a('0x2f')]=_[_0x368a('0x30')](_0x3a83a5['query']);_0x3f6dc2[_0x368a('0x31')]=_[_0x368a('0x32')](_0x3f6dc2[_0x368a('0x2e')],_0x3f6dc2[_0x368a('0x2f')]);_0x4d3ba9['attributes']=_[_0x368a('0x32')](_0x3f6dc2['model'],qs[_0x368a('0x33')](_0x3a83a5[_0x368a('0x2f')][_0x368a('0x33')]));_0x4d3ba9['attributes']=_0x4d3ba9[_0x368a('0x34')]['length']?_0x4d3ba9[_0x368a('0x34')]:_0x3f6dc2['model'];if(!_0x3a83a5[_0x368a('0x2f')][_0x368a('0x35')](_0x368a('0x36'))){_0x4d3ba9[_0x368a('0x1e')]=qs[_0x368a('0x1e')](_0x3a83a5[_0x368a('0x2f')][_0x368a('0x1e')]);_0x4d3ba9[_0x368a('0x1d')]=qs[_0x368a('0x1d')](_0x3a83a5[_0x368a('0x2f')][_0x368a('0x1d')]);}_0x4d3ba9[_0x368a('0x37')]=qs[_0x368a('0x38')](_0x3a83a5[_0x368a('0x2f')]['sort']);_0x4d3ba9[_0x368a('0x39')]=qs[_0x368a('0x31')](_[_0x368a('0x3a')](_0x3a83a5[_0x368a('0x2f')],_0x3f6dc2[_0x368a('0x31')]),_0x154aa6);if(_0x3a83a5[_0x368a('0x2f')][_0x368a('0x3b')]){_0x4d3ba9[_0x368a('0x39')]=_['merge'](_0x4d3ba9[_0x368a('0x39')],{'$or':_[_0x368a('0x3c')](_0x154aa6,function(_0x19cf95){if(_0x19cf95[_0x368a('0x2c')]!==_0x368a('0x3d')){var _0x1bbeb2={};_0x1bbeb2[_0x19cf95[_0x368a('0x27')]]={'$like':'%'+_0x3a83a5['query']['filter']+'%'};return _0x1bbeb2;}})});}_0x4d3ba9=_['merge']({},_0x4d3ba9,_0x3a83a5[_0x368a('0x3e')]);var _0x2904c7={'where':_0x4d3ba9[_0x368a('0x39')]};return db[_0x368a('0x2a')]['count'](_0x2904c7)['then'](function(_0x2ce58f){_0x36b4a6['count']=_0x2ce58f;if(_0x3a83a5[_0x368a('0x2f')][_0x368a('0x3f')]){_0x4d3ba9[_0x368a('0x40')]=[{'all':!![]}];}return db[_0x368a('0x2a')][_0x368a('0x41')](_0x4d3ba9);})[_0x368a('0x25')](function(_0x486f8e){_0x36b4a6[_0x368a('0x42')]=_0x486f8e;return _0x36b4a6;})[_0x368a('0x25')](respondWithFilteredResult(_0x1febec,_0x4d3ba9))[_0x368a('0x43')](handleError(_0x1febec,null));};exports[_0x368a('0x44')]=function(_0x1483b1,_0x592f1a){var _0xa81b7={'raw':![],'where':{'id':_0x1483b1[_0x368a('0x45')]['id']}},_0xd9b13c={};_0xd9b13c[_0x368a('0x2e')]=_[_0x368a('0x30')](db[_0x368a('0x2a')][_0x368a('0x2b')]);_0xd9b13c[_0x368a('0x2f')]=_[_0x368a('0x30')](_0x1483b1[_0x368a('0x2f')]);_0xd9b13c['filters']=_[_0x368a('0x32')](_0xd9b13c[_0x368a('0x2e')],_0xd9b13c[_0x368a('0x2f')]);_0xa81b7[_0x368a('0x34')]=_[_0x368a('0x32')](_0xd9b13c[_0x368a('0x2e')],qs['fields'](_0x1483b1[_0x368a('0x2f')][_0x368a('0x33')]));_0xa81b7['attributes']=_0xa81b7[_0x368a('0x34')][_0x368a('0x46')]?_0xa81b7[_0x368a('0x34')]:_0xd9b13c[_0x368a('0x2e')];if(_0x1483b1[_0x368a('0x2f')][_0x368a('0x3f')]){_0xa81b7[_0x368a('0x40')]=[{'all':!![]}];}_0xa81b7=_[_0x368a('0x47')]({},_0xa81b7,_0x1483b1[_0x368a('0x3e')]);return db[_0x368a('0x2a')][_0x368a('0x48')](_0xa81b7)[_0x368a('0x25')](handleEntityNotFound(_0x592f1a,null))['then'](respondWithResult(_0x592f1a,null))[_0x368a('0x43')](handleError(_0x592f1a,null));};exports[_0x368a('0x49')]=function(_0x20b0c7,_0x25c004){return db[_0x368a('0x2a')][_0x368a('0x49')](_0x20b0c7['body'],{})[_0x368a('0x25')](respondWithResult(_0x25c004,0xc9))['catch'](handleError(_0x25c004,null));};exports[_0x368a('0x4a')]=function(_0x4268c5,_0x5a9cec){if(_0x4268c5[_0x368a('0x4b')]['id']){delete _0x4268c5[_0x368a('0x4b')]['id'];}return db[_0x368a('0x2a')][_0x368a('0x48')]({'where':{'id':_0x4268c5[_0x368a('0x45')]['id']}})['then'](handleEntityNotFound(_0x5a9cec,null))[_0x368a('0x25')](saveUpdates(_0x4268c5[_0x368a('0x4b')],null))[_0x368a('0x25')](respondWithResult(_0x5a9cec,null))[_0x368a('0x43')](handleError(_0x5a9cec,null));};exports[_0x368a('0x4c')]=function(_0x46c520,_0x52c9d9){return db['DeskAccount'][_0x368a('0x48')]({'where':{'id':_0x46c520[_0x368a('0x45')]['id']}})[_0x368a('0x25')](handleEntityNotFound(_0x52c9d9,null))[_0x368a('0x25')](removeEntity(_0x52c9d9,null))[_0x368a('0x43')](handleError(_0x52c9d9,null));};exports[_0x368a('0x4d')]=function(_0x2b12b6,_0x5b6ac0,_0x3a1e57){var _0x4082db={};var _0x2660f2={};var _0x1bd3cb;var _0x1fdbd4;return db[_0x368a('0x2a')][_0x368a('0x4e')]({'where':{'id':_0x2b12b6['params']['id']}})[_0x368a('0x25')](handleEntityNotFound(_0x5b6ac0,null))[_0x368a('0x25')](function(_0x3f71c4){if(_0x3f71c4){_0x1bd3cb=_0x3f71c4;_0x2660f2[_0x368a('0x2e')]=_[_0x368a('0x30')](db['DeskConfiguration']['rawAttributes']);_0x2660f2[_0x368a('0x2f')]=_[_0x368a('0x30')](_0x2b12b6[_0x368a('0x2f')]);_0x2660f2[_0x368a('0x31')]=_[_0x368a('0x32')](_0x2660f2['model'],_0x2660f2[_0x368a('0x2f')]);_0x4082db[_0x368a('0x34')]=_[_0x368a('0x32')](_0x2660f2[_0x368a('0x2e')],qs[_0x368a('0x33')](_0x2b12b6[_0x368a('0x2f')]['fields']));_0x4082db[_0x368a('0x34')]=_0x4082db[_0x368a('0x34')][_0x368a('0x46')]?_0x4082db[_0x368a('0x34')]:_0x2660f2[_0x368a('0x2e')];_0x4082db[_0x368a('0x37')]=qs[_0x368a('0x38')](_0x2b12b6['query']['sort']);_0x4082db[_0x368a('0x39')]=qs[_0x368a('0x31')](_[_0x368a('0x3a')](_0x2b12b6[_0x368a('0x2f')],_0x2660f2[_0x368a('0x31')]));if(_0x2b12b6[_0x368a('0x2f')]['filter']){_0x4082db[_0x368a('0x39')]=_[_0x368a('0x47')](_0x4082db[_0x368a('0x39')],{'$or':_[_0x368a('0x3c')](_0x4082db['attributes'],function(_0x2dd6fa){var _0x148145={};_0x148145[_0x2dd6fa]={'$like':'%'+_0x2b12b6[_0x368a('0x2f')][_0x368a('0x3b')]+'%'};return _0x148145;})});}_0x4082db=_[_0x368a('0x47')]({},_0x4082db,_0x2b12b6['options']);return _0x1bd3cb['getConfigurations'](_0x4082db);}})['then'](function(_0x3e25b1){if(_0x3e25b1){_0x1fdbd4=_0x3e25b1[_0x368a('0x46')];if(!_0x2b12b6[_0x368a('0x2f')][_0x368a('0x35')](_0x368a('0x36'))){_0x4082db[_0x368a('0x1e')]=qs['limit'](_0x2b12b6[_0x368a('0x2f')][_0x368a('0x1e')]);_0x4082db['offset']=qs[_0x368a('0x1d')](_0x2b12b6[_0x368a('0x2f')][_0x368a('0x1d')]);}return _0x1bd3cb['getConfigurations'](_0x4082db);}})[_0x368a('0x25')](function(_0x2041c2){if(_0x2041c2){return _0x2041c2?{'count':_0x1fdbd4,'rows':_0x2041c2}:null;}})[_0x368a('0x25')](respondWithResult(_0x5b6ac0,null))[_0x368a('0x43')](handleError(_0x5b6ac0,null));};exports[_0x368a('0x4f')]=function(_0x45d51d,_0x5dd80f,_0x3bbaee){if(_0x45d51d[_0x368a('0x4b')]['id']){delete _0x45d51d['body']['id'];}return db['DeskAccount'][_0x368a('0x4e')]({'where':{'id':_0x45d51d['params']['id']}})[_0x368a('0x25')](handleEntityNotFound(_0x5dd80f,null))[_0x368a('0x25')](function(_0x413b56){if(_0x413b56){_0x45d51d['body'][_0x368a('0x50')]=_0x413b56['id'];_0x45d51d[_0x368a('0x4b')]['Subjects']=integrations[_0x368a('0x51')](_0x45d51d['body'][_0x368a('0x52')],_0x45d51d[_0x368a('0x4b')][_0x368a('0x2c')]);_0x45d51d[_0x368a('0x4b')][_0x368a('0x53')]=integrations[_0x368a('0x54')](_0x45d51d[_0x368a('0x4b')][_0x368a('0x52')],_0x45d51d[_0x368a('0x4b')]['type']);return db['DeskConfiguration'][_0x368a('0x49')](_0x45d51d[_0x368a('0x4b')],{'include':[{'model':db[_0x368a('0x55')],'as':'Subjects'},{'model':db[_0x368a('0x55')],'as':_0x368a('0x53')}]});}return null;})[_0x368a('0x25')](respondWithResult(_0x5dd80f,null))[_0x368a('0x43')](handleError(_0x5dd80f,null));};exports[_0x368a('0x56')]=function(_0x27c230,_0x2c3a98,_0x346157){var _0x3ffb55=[{'name':_0x368a('0x57'),'label':'priority','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}]}];var _0x97ecc8='';return db[_0x368a('0x2a')][_0x368a('0x4e')]({'where':{'id':_0x27c230[_0x368a('0x45')]['id']},'attributes':['id','remoteUri',_0x368a('0x58'),'username',_0x368a('0x59'),_0x368a('0x5a'),_0x368a('0x5b'),_0x368a('0x5c'),_0x368a('0x5d')]})[_0x368a('0x25')](handleEntityNotFound(_0x2c3a98,null))[_0x368a('0x25')](function(_0x2bf15e){if(_0x2bf15e){_0x97ecc8=_0x2bf15e['remoteUri'];var _0xa7306d=_0x97ecc8['slice'](-0x1);if(_0xa7306d==='/'){_0x97ecc8=_0x97ecc8[_0x368a('0x5e')](0x0,_0x97ecc8['lastIndexOf'](_0xa7306d));}var _0x264b7c={'method':_0x368a('0x5f'),'uri':util['format'](_0x368a('0x60'),_0x97ecc8),'headers':{'Content-Type':_0x368a('0x61'),'Accept':_0x368a('0x61')},'json':!![]};if(_0x2bf15e[_0x368a('0x58')]===_0x368a('0x62')){_0x264b7c['headers']['Authorization']=util[_0x368a('0x63')](_0x368a('0x64'),new Buffer(util[_0x368a('0x63')](_0x368a('0x65'),_0x2bf15e[_0x368a('0x66')],_0x2bf15e[_0x368a('0x59')]))['toString'](_0x368a('0x67')));}return rp(_0x264b7c)[_0x368a('0x25')](function(_0x4487d4){return _0x3ffb55[_0x368a('0x68')](_[_0x368a('0x3c')](_0x4487d4[_0x368a('0x69')][_0x368a('0x6a')],function(_0x2458c6){return{'id':_0x2458c6[_0x368a('0x27')],'name':_0x2458c6[_0x368a('0x27')],'type':_0x2458c6[_0x368a('0x2c')],'active':_0x2458c6[_0x368a('0x6b')],'label':_0x2458c6[_0x368a('0x6c')],'custom':!![]};}));});}})[_0x368a('0x25')](function(_0x531ef7){return{'count':_0x531ef7['length'],'rows':_0x531ef7};})[_0x368a('0x25')](respondWithResult(_0x2c3a98,null))[_0x368a('0x43')](function(_0x2f1af){var _0x4584a7=_0x27c230[_0x368a('0x2f')][_0x368a('0x6d')]?0x1f4:_0x2f1af['statusCode']||0x1f4;logger[_0x368a('0x6e')]('getFields,\x20%s,\x20%s,\x20%s',_0x368a('0x56'),_0x4584a7,JSON[_0x368a('0x6f')](_0x2f1af));delete _0x2f1af['name'];if(_0x4584a7===0x191){_0x4584a7=0x190;}_0x2c3a98[_0x368a('0x1c')](_0x4584a7)['send'](_0x27c230['query'][_0x368a('0x6d')]?{'message':_0x368a('0x70'),'statusCode':_0x2f1af[_0x368a('0x71')]}:_0x2f1af);});};
\ No newline at end of file
+var _0xa75a=['merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','getConfigurations','DeskConfiguration','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','DeskField','priority','remoteUri','authType','username','password','consumerSecret','token','tokenSecret','slice','substring','lastIndexOf','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','toString','base64','concat','active','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','rimraf','fast-json-patch','moment','mustache','util','path','sox','to-csv','lodash','squel','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','offset','undefined','limit','count','json','apply','reject','update','then','destroy','sendStatus','error','name','send','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter'];(function(_0x49ca18,_0x5e6d05){var _0x145d54=function(_0x30b9be){while(--_0x30b9be){_0x49ca18['push'](_0x49ca18['shift']());}};_0x145d54(++_0x5e6d05);}(_0xa75a,0x1f3));var _0xaa75=function(_0x41f745,_0x4b5c4a){_0x41f745=_0x41f745-0x0;var _0x2cbbcb=_0xa75a[_0x41f745];return _0x2cbbcb;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaa75('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xaa75('0x1'));var rp=require('request-promise');var moment=require(_0xaa75('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xaa75('0x3'));var util=require(_0xaa75('0x4'));var path=require(_0xaa75('0x5'));var sox=require(_0xaa75('0x6'));var csv=require(_0xaa75('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaa75('0x8'));var squel=require(_0xaa75('0x9'));var crypto=require('crypto');var jsforce=require(_0xaa75('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xaa75('0x7'));var querystring=require(_0xaa75('0xb'));var Papa=require('papaparse');var Redis=require(_0xaa75('0xc'));var authService=require(_0xaa75('0xd'));var qs=require(_0xaa75('0xe'));var as=require(_0xaa75('0xf'));var hardwareService=require(_0xaa75('0x10'));var logger=require(_0xaa75('0x11'))(_0xaa75('0x12'));var utils=require(_0xaa75('0x13'));var config=require(_0xaa75('0x14'));var licenseUtil=require(_0xaa75('0x15'));var db=require(_0xaa75('0x16'))['db'];var integrations=require(_0xaa75('0x17'));function respondWithStatusCode(_0x37c2f7,_0x4caf80){_0x4caf80=_0x4caf80||0xcc;return function(_0x5f3fdc){if(_0x5f3fdc){return _0x37c2f7['sendStatus'](_0x4caf80);}return _0x37c2f7[_0xaa75('0x18')](_0x4caf80)[_0xaa75('0x19')]();};}function respondWithResult(_0x53365f,_0x578fc1){_0x578fc1=_0x578fc1||0xc8;return function(_0xd0d2f9){if(_0xd0d2f9){return _0x53365f[_0xaa75('0x18')](_0x578fc1)['json'](_0xd0d2f9);}};}function respondWithFilteredResult(_0x413b2b,_0x200e48){return function(_0x29c0f4){if(_0x29c0f4){var _0x11ba7b=typeof _0x200e48[_0xaa75('0x1a')]===_0xaa75('0x1b')&&typeof _0x200e48[_0xaa75('0x1c')]===_0xaa75('0x1b');var _0xc65d48=_0x29c0f4[_0xaa75('0x1d')];var _0x858a71=_0x11ba7b?0x0:_0x200e48[_0xaa75('0x1a')];var _0x57c3c6=_0x11ba7b?_0x29c0f4[_0xaa75('0x1d')]:_0x200e48[_0xaa75('0x1a')]+_0x200e48['limit'];var _0x59f00f;if(_0x57c3c6>=_0xc65d48){_0x57c3c6=_0xc65d48;_0x59f00f=0xc8;}else{_0x59f00f=0xce;}_0x413b2b[_0xaa75('0x18')](_0x59f00f);return _0x413b2b['set']('Content-Range',_0x858a71+'-'+_0x57c3c6+'/'+_0xc65d48)[_0xaa75('0x1e')](_0x29c0f4);}return null;};}function patchUpdates(_0x1954f0){return function(_0x32b865){try{jsonpatch[_0xaa75('0x1f')](_0x32b865,_0x1954f0,!![]);}catch(_0x44ad4b){return BPromise[_0xaa75('0x20')](_0x44ad4b);}return _0x32b865['save']();};}function saveUpdates(_0x628b60,_0x2ec6bd){return function(_0x1c81aa){if(_0x1c81aa){return _0x1c81aa[_0xaa75('0x21')](_0x628b60)[_0xaa75('0x22')](function(_0x3ddf5b){return _0x3ddf5b;});}return null;};}function removeEntity(_0x37fb5a,_0x14f9b5){return function(_0x42f245){if(_0x42f245){return _0x42f245[_0xaa75('0x23')]()[_0xaa75('0x22')](function(){_0x37fb5a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x381ea6,_0x14f248){return function(_0x1ab841){if(!_0x1ab841){_0x381ea6[_0xaa75('0x24')](0x194);}return _0x1ab841;};}function handleError(_0xe2bd84,_0x28c849){_0x28c849=_0x28c849||0x1f4;return function(_0x17776d){logger[_0xaa75('0x25')](_0x17776d['stack']);if(_0x17776d['name']){delete _0x17776d[_0xaa75('0x26')];}_0xe2bd84['status'](_0x28c849)[_0xaa75('0x27')](_0x17776d);};}exports['index']=function(_0x3df418,_0x1b1a8c){var _0x37b159={},_0x3ffeb1={},_0x29a4a6={'count':0x0,'rows':[]};var _0x2fa52e=_[_0xaa75('0x28')](db[_0xaa75('0x29')][_0xaa75('0x2a')],function(_0x4470f6){return{'name':_0x4470f6[_0xaa75('0x2b')],'type':_0x4470f6[_0xaa75('0x2c')][_0xaa75('0x2d')]};});_0x3ffeb1[_0xaa75('0x2e')]=_['map'](_0x2fa52e,_0xaa75('0x26'));_0x3ffeb1[_0xaa75('0x2f')]=_[_0xaa75('0x30')](_0x3df418[_0xaa75('0x2f')]);_0x3ffeb1[_0xaa75('0x31')]=_[_0xaa75('0x32')](_0x3ffeb1['model'],_0x3ffeb1[_0xaa75('0x2f')]);_0x37b159[_0xaa75('0x33')]=_[_0xaa75('0x32')](_0x3ffeb1['model'],qs[_0xaa75('0x34')](_0x3df418['query'][_0xaa75('0x34')]));_0x37b159[_0xaa75('0x33')]=_0x37b159[_0xaa75('0x33')][_0xaa75('0x35')]?_0x37b159[_0xaa75('0x33')]:_0x3ffeb1[_0xaa75('0x2e')];if(!_0x3df418[_0xaa75('0x2f')][_0xaa75('0x36')](_0xaa75('0x37'))){_0x37b159[_0xaa75('0x1c')]=qs[_0xaa75('0x1c')](_0x3df418['query'][_0xaa75('0x1c')]);_0x37b159[_0xaa75('0x1a')]=qs[_0xaa75('0x1a')](_0x3df418['query'][_0xaa75('0x1a')]);}_0x37b159[_0xaa75('0x38')]=qs[_0xaa75('0x39')](_0x3df418[_0xaa75('0x2f')][_0xaa75('0x39')]);_0x37b159[_0xaa75('0x3a')]=qs[_0xaa75('0x31')](_[_0xaa75('0x3b')](_0x3df418[_0xaa75('0x2f')],_0x3ffeb1[_0xaa75('0x31')]),_0x2fa52e);if(_0x3df418['query'][_0xaa75('0x3c')]){_0x37b159[_0xaa75('0x3a')]=_[_0xaa75('0x3d')](_0x37b159[_0xaa75('0x3a')],{'$or':_[_0xaa75('0x28')](_0x2fa52e,function(_0x4ae279){if(_0x4ae279[_0xaa75('0x2c')]!==_0xaa75('0x3e')){var _0x17b8f2={};_0x17b8f2[_0x4ae279[_0xaa75('0x26')]]={'$like':'%'+_0x3df418[_0xaa75('0x2f')][_0xaa75('0x3c')]+'%'};return _0x17b8f2;}})});}_0x37b159=_[_0xaa75('0x3d')]({},_0x37b159,_0x3df418[_0xaa75('0x3f')]);var _0x3e1650={'where':_0x37b159['where']};return db[_0xaa75('0x29')][_0xaa75('0x1d')](_0x3e1650)[_0xaa75('0x22')](function(_0x53cd98){_0x29a4a6[_0xaa75('0x1d')]=_0x53cd98;if(_0x3df418[_0xaa75('0x2f')][_0xaa75('0x40')]){_0x37b159[_0xaa75('0x41')]=[{'all':!![]}];}return db[_0xaa75('0x29')][_0xaa75('0x42')](_0x37b159);})[_0xaa75('0x22')](function(_0x2ed098){_0x29a4a6[_0xaa75('0x43')]=_0x2ed098;return _0x29a4a6;})[_0xaa75('0x22')](respondWithFilteredResult(_0x1b1a8c,_0x37b159))[_0xaa75('0x44')](handleError(_0x1b1a8c,null));};exports[_0xaa75('0x45')]=function(_0x305c3f,_0x5171d4){var _0x2f07d7={'raw':![],'where':{'id':_0x305c3f[_0xaa75('0x46')]['id']}},_0x3199b4={};_0x3199b4[_0xaa75('0x2e')]=_['keys'](db['DeskAccount'][_0xaa75('0x2a')]);_0x3199b4[_0xaa75('0x2f')]=_[_0xaa75('0x30')](_0x305c3f['query']);_0x3199b4[_0xaa75('0x31')]=_[_0xaa75('0x32')](_0x3199b4[_0xaa75('0x2e')],_0x3199b4['query']);_0x2f07d7['attributes']=_['intersection'](_0x3199b4[_0xaa75('0x2e')],qs[_0xaa75('0x34')](_0x305c3f[_0xaa75('0x2f')][_0xaa75('0x34')]));_0x2f07d7[_0xaa75('0x33')]=_0x2f07d7[_0xaa75('0x33')][_0xaa75('0x35')]?_0x2f07d7[_0xaa75('0x33')]:_0x3199b4[_0xaa75('0x2e')];if(_0x305c3f[_0xaa75('0x2f')][_0xaa75('0x40')]){_0x2f07d7['include']=[{'all':!![]}];}_0x2f07d7=_[_0xaa75('0x3d')]({},_0x2f07d7,_0x305c3f['options']);return db[_0xaa75('0x29')]['find'](_0x2f07d7)[_0xaa75('0x22')](handleEntityNotFound(_0x5171d4,null))['then'](respondWithResult(_0x5171d4,null))[_0xaa75('0x44')](handleError(_0x5171d4,null));};exports['create']=function(_0x15d8b0,_0x196bde){return db['DeskAccount'][_0xaa75('0x47')](_0x15d8b0[_0xaa75('0x48')],{})[_0xaa75('0x22')](respondWithResult(_0x196bde,0xc9))[_0xaa75('0x44')](handleError(_0x196bde,null));};exports['update']=function(_0x5a75f4,_0x52cc2c){if(_0x5a75f4[_0xaa75('0x48')]['id']){delete _0x5a75f4[_0xaa75('0x48')]['id'];}return db[_0xaa75('0x29')][_0xaa75('0x49')]({'where':{'id':_0x5a75f4[_0xaa75('0x46')]['id']}})[_0xaa75('0x22')](handleEntityNotFound(_0x52cc2c,null))[_0xaa75('0x22')](saveUpdates(_0x5a75f4[_0xaa75('0x48')],null))[_0xaa75('0x22')](respondWithResult(_0x52cc2c,null))[_0xaa75('0x44')](handleError(_0x52cc2c,null));};exports['destroy']=function(_0x387f0b,_0x46a307){return db[_0xaa75('0x29')][_0xaa75('0x49')]({'where':{'id':_0x387f0b[_0xaa75('0x46')]['id']}})[_0xaa75('0x22')](handleEntityNotFound(_0x46a307,null))[_0xaa75('0x22')](removeEntity(_0x46a307,null))[_0xaa75('0x44')](handleError(_0x46a307,null));};exports[_0xaa75('0x4a')]=function(_0x5636c2,_0x31af8f,_0x43a864){var _0x3896f7={};var _0x43d3a7={};var _0x4fd3e6;var _0x446779;return db['DeskAccount']['findOne']({'where':{'id':_0x5636c2['params']['id']}})[_0xaa75('0x22')](handleEntityNotFound(_0x31af8f,null))['then'](function(_0x48ecf9){if(_0x48ecf9){_0x4fd3e6=_0x48ecf9;_0x43d3a7[_0xaa75('0x2e')]=_['keys'](db[_0xaa75('0x4b')][_0xaa75('0x2a')]);_0x43d3a7[_0xaa75('0x2f')]=_[_0xaa75('0x30')](_0x5636c2[_0xaa75('0x2f')]);_0x43d3a7['filters']=_[_0xaa75('0x32')](_0x43d3a7[_0xaa75('0x2e')],_0x43d3a7['query']);_0x3896f7['attributes']=_[_0xaa75('0x32')](_0x43d3a7['model'],qs['fields'](_0x5636c2[_0xaa75('0x2f')][_0xaa75('0x34')]));_0x3896f7[_0xaa75('0x33')]=_0x3896f7[_0xaa75('0x33')][_0xaa75('0x35')]?_0x3896f7['attributes']:_0x43d3a7[_0xaa75('0x2e')];_0x3896f7[_0xaa75('0x38')]=qs['sort'](_0x5636c2['query'][_0xaa75('0x39')]);_0x3896f7[_0xaa75('0x3a')]=qs[_0xaa75('0x31')](_[_0xaa75('0x3b')](_0x5636c2[_0xaa75('0x2f')],_0x43d3a7['filters']));if(_0x5636c2['query'][_0xaa75('0x3c')]){_0x3896f7[_0xaa75('0x3a')]=_[_0xaa75('0x3d')](_0x3896f7[_0xaa75('0x3a')],{'$or':_[_0xaa75('0x28')](_0x3896f7[_0xaa75('0x33')],function(_0x36485d){var _0x28a755={};_0x28a755[_0x36485d]={'$like':'%'+_0x5636c2[_0xaa75('0x2f')][_0xaa75('0x3c')]+'%'};return _0x28a755;})});}_0x3896f7=_[_0xaa75('0x3d')]({},_0x3896f7,_0x5636c2[_0xaa75('0x3f')]);return _0x4fd3e6[_0xaa75('0x4a')](_0x3896f7);}})[_0xaa75('0x22')](function(_0x192365){if(_0x192365){_0x446779=_0x192365[_0xaa75('0x35')];if(!_0x5636c2['query'][_0xaa75('0x36')](_0xaa75('0x37'))){_0x3896f7[_0xaa75('0x1c')]=qs[_0xaa75('0x1c')](_0x5636c2[_0xaa75('0x2f')][_0xaa75('0x1c')]);_0x3896f7['offset']=qs[_0xaa75('0x1a')](_0x5636c2[_0xaa75('0x2f')][_0xaa75('0x1a')]);}return _0x4fd3e6[_0xaa75('0x4a')](_0x3896f7);}})[_0xaa75('0x22')](function(_0x43405e){if(_0x43405e){return _0x43405e?{'count':_0x446779,'rows':_0x43405e}:null;}})['then'](respondWithResult(_0x31af8f,null))['catch'](handleError(_0x31af8f,null));};exports[_0xaa75('0x4c')]=function(_0x1486a3,_0x29adbb,_0x428c29){if(_0x1486a3['body']['id']){delete _0x1486a3[_0xaa75('0x48')]['id'];}return db[_0xaa75('0x29')][_0xaa75('0x4d')]({'where':{'id':_0x1486a3[_0xaa75('0x46')]['id']}})[_0xaa75('0x22')](handleEntityNotFound(_0x29adbb,null))[_0xaa75('0x22')](function(_0x5d2005){if(_0x5d2005){_0x1486a3[_0xaa75('0x48')][_0xaa75('0x4e')]=_0x5d2005['id'];_0x1486a3[_0xaa75('0x48')][_0xaa75('0x4f')]=integrations[_0xaa75('0x50')](_0x1486a3['body'][_0xaa75('0x51')],_0x1486a3['body'][_0xaa75('0x2c')]);_0x1486a3[_0xaa75('0x48')][_0xaa75('0x52')]=integrations['getDescriptions'](_0x1486a3[_0xaa75('0x48')][_0xaa75('0x51')],_0x1486a3[_0xaa75('0x48')][_0xaa75('0x2c')]);return db[_0xaa75('0x4b')][_0xaa75('0x47')](_0x1486a3[_0xaa75('0x48')],{'include':[{'model':db[_0xaa75('0x53')],'as':'Subjects'},{'model':db[_0xaa75('0x53')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x29adbb,null))[_0xaa75('0x44')](handleError(_0x29adbb,null));};exports['getFields']=function(_0x5c64e1,_0x49a840,_0x46516d){var _0x31734e=[{'name':_0xaa75('0x54'),'label':_0xaa75('0x54'),'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}]}];var _0x43d904='';return db[_0xaa75('0x29')][_0xaa75('0x4d')]({'where':{'id':_0x5c64e1[_0xaa75('0x46')]['id']},'attributes':['id',_0xaa75('0x55'),_0xaa75('0x56'),_0xaa75('0x57'),_0xaa75('0x58'),'consumerKey',_0xaa75('0x59'),_0xaa75('0x5a'),_0xaa75('0x5b')]})[_0xaa75('0x22')](handleEntityNotFound(_0x49a840,null))[_0xaa75('0x22')](function(_0x23946c){if(_0x23946c){_0x43d904=_0x23946c[_0xaa75('0x55')];var _0x422f45=_0x43d904[_0xaa75('0x5c')](-0x1);if(_0x422f45==='/'){_0x43d904=_0x43d904[_0xaa75('0x5d')](0x0,_0x43d904[_0xaa75('0x5e')](_0x422f45));}var _0xa0ed90={'method':'GET','uri':util[_0xaa75('0x5f')](_0xaa75('0x60'),_0x43d904),'headers':{'Content-Type':_0xaa75('0x61'),'Accept':_0xaa75('0x61')},'json':!![]};if(_0x23946c[_0xaa75('0x56')]===_0xaa75('0x62')){_0xa0ed90[_0xaa75('0x63')][_0xaa75('0x64')]=util['format'](_0xaa75('0x65'),new Buffer(util[_0xaa75('0x5f')]('%s:%s',_0x23946c['username'],_0x23946c[_0xaa75('0x58')]))[_0xaa75('0x66')](_0xaa75('0x67')));}return rp(_0xa0ed90)['then'](function(_0x5518a9){return _0x31734e[_0xaa75('0x68')](_[_0xaa75('0x28')](_0x5518a9['_embedded']['entries'],function(_0x167822){return{'id':_0x167822['name'],'name':_0x167822[_0xaa75('0x26')],'type':_0x167822['type'],'active':_0x167822[_0xaa75('0x69')],'label':_0x167822['label'],'custom':!![]};}));});}})['then'](function(_0x55ed06){return{'count':_0x55ed06['length'],'rows':_0x55ed06};})[_0xaa75('0x22')](respondWithResult(_0x49a840,null))['catch'](function(_0xfe5a7f){var _0x2289ac=_0x5c64e1[_0xaa75('0x2f')][_0xaa75('0x6a')]?0x1f4:_0xfe5a7f[_0xaa75('0x6b')]||0x1f4;logger['error'](_0xaa75('0x6c'),_0xaa75('0x6d'),_0x2289ac,JSON[_0xaa75('0x6e')](_0xfe5a7f));delete _0xfe5a7f[_0xaa75('0x26')];if(_0x2289ac===0x191){_0x2289ac=0x190;}_0x49a840[_0xaa75('0x18')](_0x2289ac)[_0xaa75('0x27')](_0x5c64e1['query'][_0xaa75('0x6a')]?{'message':_0xaa75('0x6f'),'statusCode':_0xfe5a7f[_0xaa75('0x6b')]}:_0xfe5a7f);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a99=['bluebird','path','../../config/environment','./intDeskAccount.attributes','exports','define','int_desk_accounts','lodash','util','../../config/logger','moment'];(function(_0x159b43,_0x1699e3){var _0x5dc418=function(_0x2ae300){while(--_0x2ae300){_0x159b43['push'](_0x159b43['shift']());}};_0x5dc418(++_0x1699e3);}(_0x7a99,0xc2));var _0x97a9=function(_0x447a12,_0x1adf0a){_0x447a12=_0x447a12-0x0;var _0x44e8e6=_0x7a99[_0x447a12];return _0x44e8e6;};'use strict';var _=require(_0x97a9('0x0'));var util=require(_0x97a9('0x1'));var logger=require(_0x97a9('0x2'))('api');var moment=require(_0x97a9('0x3'));var BPromise=require(_0x97a9('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x97a9('0x5'));var rimraf=require('rimraf');var config=require(_0x97a9('0x6'));var attributes=require(_0x97a9('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x97a9('0x8')]=function(_0x550d4b,_0x43e475){return _0x550d4b[_0x97a9('0x9')]('DeskAccount',attributes,{'tableName':_0x97a9('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4639=['exports','define','DeskAccount','int_desk_accounts','lodash','api','moment','bluebird','rimraf','../../config/environment','./intDeskAccount.attributes'];(function(_0x157f06,_0xdb358){var _0x3b8d5e=function(_0x49e810){while(--_0x49e810){_0x157f06['push'](_0x157f06['shift']());}};_0x3b8d5e(++_0xdb358);}(_0x4639,0x16f));var _0x9463=function(_0x456200,_0x3d4c03){_0x456200=_0x456200-0x0;var _0x551f2e=_0x4639[_0x456200];return _0x551f2e;};'use strict';var _=require(_0x9463('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x9463('0x1'));var moment=require(_0x9463('0x2'));var BPromise=require(_0x9463('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x9463('0x4'));var config=require(_0x9463('0x5'));var attributes=require(_0x9463('0x6'));var integrations=require('../../components/integrations/configuration');module[_0x9463('0x7')]=function(_0x22e30e,_0x100940){return _0x22e30e[_0x9463('0x8')](_0x9463('0x9'),attributes,{'tableName':_0x9463('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6be9=['where','attributes','limit','include','map','model','ShowDeskAccount','find','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','http','request','then','info','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','error','DeskAccount,\x20%s,\x20%s','message','catch','GetDeskAccount','DeskAccount','findAll','options','raw'];(function(_0x25e657,_0x5b8726){var _0x250a56=function(_0x43516f){while(--_0x43516f){_0x25e657['push'](_0x25e657['shift']());}};_0x250a56(++_0x5b8726);}(_0x6be9,0x1e8));var _0x96be=function(_0x1863fb,_0x3304d3){_0x1863fb=_0x1863fb-0x0;var _0x3c7735=_0x6be9[_0x1863fb];return _0x3c7735;};'use strict';var _=require(_0x96be('0x0'));var util=require(_0x96be('0x1'));var moment=require(_0x96be('0x2'));var BPromise=require('bluebird');var rs=require(_0x96be('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x96be('0x4'))['db'];var utils=require(_0x96be('0x5'));var logger=require('../../config/logger')(_0x96be('0x6'));var config=require('../../config/environment');var jayson=require(_0x96be('0x7'));var client=jayson['client'][_0x96be('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x6fed46,_0x2a278c,_0x30c955){return new BPromise(function(_0x21e310,_0x2d45ad){return client[_0x96be('0x9')](_0x6fed46,_0x30c955)[_0x96be('0xa')](function(_0x52e7a1){logger[_0x96be('0xb')]('DeskAccount,\x20%s,\x20%s',_0x2a278c,_0x96be('0xc'));logger[_0x96be('0xd')](_0x96be('0xe'),_0x2a278c,_0x96be('0xc'),JSON['stringify'](_0x52e7a1));if(_0x52e7a1[_0x96be('0xf')]){if(_0x52e7a1[_0x96be('0xf')]['code']===0x1f4){logger[_0x96be('0xf')](_0x96be('0x10'),_0x2a278c,_0x52e7a1[_0x96be('0xf')][_0x96be('0x11')]);return _0x2d45ad(_0x52e7a1[_0x96be('0xf')]['message']);}logger[_0x96be('0xf')](_0x96be('0x10'),_0x2a278c,_0x52e7a1['error'][_0x96be('0x11')]);return _0x21e310(_0x52e7a1[_0x96be('0xf')][_0x96be('0x11')]);}else{logger['info'](_0x96be('0x10'),_0x2a278c,'request\x20sent');_0x21e310(_0x52e7a1['result'][_0x96be('0x11')]);}})[_0x96be('0x12')](function(_0x297f8e){logger[_0x96be('0xf')](_0x96be('0x10'),_0x2a278c,_0x297f8e);_0x2d45ad(_0x297f8e);});});}exports[_0x96be('0x13')]=function(_0x5efca9){var _0x3b0ef0=this;return new Promise(function(_0x2464a4,_0x2741c3){return db[_0x96be('0x14')][_0x96be('0x15')]({'raw':_0x5efca9[_0x96be('0x16')]?_0x5efca9[_0x96be('0x16')][_0x96be('0x17')]===undefined?!![]:![]:!![],'where':_0x5efca9[_0x96be('0x16')]?_0x5efca9[_0x96be('0x16')][_0x96be('0x18')]||null:null,'attributes':_0x5efca9['options']?_0x5efca9[_0x96be('0x16')][_0x96be('0x19')]||null:null,'limit':_0x5efca9['options']?_0x5efca9['options'][_0x96be('0x1a')]||null:null,'include':_0x5efca9[_0x96be('0x16')]?_0x5efca9['options'][_0x96be('0x1b')]?_[_0x96be('0x1c')](_0x5efca9['options'][_0x96be('0x1b')],function(_0x514fee){return{'model':db[_0x514fee[_0x96be('0x1d')]],'as':_0x514fee['as'],'attributes':_0x514fee[_0x96be('0x19')],'include':_0x514fee[_0x96be('0x1b')]?_[_0x96be('0x1c')](_0x514fee['include'],function(_0x11ceb1){return{'model':db[_0x11ceb1['model']],'as':_0x11ceb1['as'],'attributes':_0x11ceb1[_0x96be('0x19')],'include':_0x11ceb1[_0x96be('0x1b')]?_[_0x96be('0x1c')](_0x11ceb1['include'],function(_0x35fc45){return{'model':db[_0x35fc45[_0x96be('0x1d')]],'as':_0x35fc45['as'],'attributes':_0x35fc45[_0x96be('0x19')]};}):[]};}):[]};}):[]:[]})[_0x96be('0xa')](function(_0x51f31e){logger[_0x96be('0xb')]('GetDeskAccount',_0x5efca9);logger[_0x96be('0xd')]('GetDeskAccount',_0x5efca9,JSON['stringify'](_0x51f31e));_0x2464a4(_0x51f31e);})[_0x96be('0x12')](function(_0x40d6bf){logger[_0x96be('0xf')](_0x96be('0x13'),_0x40d6bf[_0x96be('0x11')],_0x5efca9);_0x2741c3(_0x3b0ef0[_0x96be('0xf')](0x1f4,_0x40d6bf[_0x96be('0x11')]));});});};exports[_0x96be('0x1e')]=function(_0x10c4f0){var _0x5aac96=this;return new Promise(function(_0x24f380,_0x57fd83){return db[_0x96be('0x14')][_0x96be('0x1f')]({'raw':_0x10c4f0[_0x96be('0x16')]?_0x10c4f0[_0x96be('0x16')][_0x96be('0x17')]===undefined?!![]:![]:!![],'where':_0x10c4f0['options']?_0x10c4f0[_0x96be('0x16')][_0x96be('0x18')]||null:null,'attributes':_0x10c4f0[_0x96be('0x16')]?_0x10c4f0[_0x96be('0x16')]['attributes']||null:null,'include':_0x10c4f0[_0x96be('0x16')]?_0x10c4f0['options']['include']?_['map'](_0x10c4f0[_0x96be('0x16')][_0x96be('0x1b')],function(_0x54f73d){return{'model':db[_0x54f73d[_0x96be('0x1d')]],'as':_0x54f73d['as'],'attributes':_0x54f73d['attributes'],'include':_0x54f73d[_0x96be('0x1b')]?_['map'](_0x54f73d[_0x96be('0x1b')],function(_0x123194){return{'model':db[_0x123194[_0x96be('0x1d')]],'as':_0x123194['as'],'attributes':_0x123194[_0x96be('0x19')],'include':_0x123194[_0x96be('0x1b')]?_[_0x96be('0x1c')](_0x123194[_0x96be('0x1b')],function(_0x5a4fc2){return{'model':db[_0x5a4fc2[_0x96be('0x1d')]],'as':_0x5a4fc2['as'],'attributes':_0x5a4fc2[_0x96be('0x19')]};}):[]};}):[]};}):[]:[]})[_0x96be('0xa')](function(_0x5bbc6c){logger[_0x96be('0xb')](_0x96be('0x1e'),_0x10c4f0);logger[_0x96be('0xd')](_0x96be('0x1e'),_0x10c4f0,JSON['stringify'](_0x5bbc6c));_0x24f380(_0x5bbc6c);})['catch'](function(_0xcfa682){logger[_0x96be('0xf')]('ShowDeskAccount',_0xcfa682[_0x96be('0x11')],_0x10c4f0);_0x57fd83(_0x5aac96['error'](0x1f4,_0xcfa682[_0x96be('0x11')]));});});};
\ No newline at end of file
+var _0x33f5=['request','then','info','DeskAccount,\x20%s,\x20%s','debug','DeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','catch','DeskAccount','findAll','options','raw','where','attributes','limit','include','model','map','stringify','GetDeskAccount','ShowDeskAccount','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http'];(function(_0x4a1f4b,_0x5abacb){var _0x6fe8a8=function(_0xce889e){while(--_0xce889e){_0x4a1f4b['push'](_0x4a1f4b['shift']());}};_0x6fe8a8(++_0x5abacb);}(_0x33f5,0x1f4));var _0x533f=function(_0xfbe9d9,_0xf858f0){_0xfbe9d9=_0xfbe9d9-0x0;var _0x2fc180=_0x33f5[_0xfbe9d9];return _0x2fc180;};'use strict';var _=require(_0x533f('0x0'));var util=require('util');var moment=require(_0x533f('0x1'));var BPromise=require('bluebird');var rs=require(_0x533f('0x2'));var fs=require('fs');var Redis=require(_0x533f('0x3'));var db=require(_0x533f('0x4'))['db'];var utils=require(_0x533f('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x533f('0x6'));var jayson=require(_0x533f('0x7'));var client=jayson[_0x533f('0x8')][_0x533f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x13ed66,_0x1b7e57,_0x369b1a){return new BPromise(function(_0x2b0734,_0x5ee069){return client[_0x533f('0xa')](_0x13ed66,_0x369b1a)[_0x533f('0xb')](function(_0x17f258){logger[_0x533f('0xc')](_0x533f('0xd'),_0x1b7e57,'request\x20sent');logger[_0x533f('0xe')](_0x533f('0xf'),_0x1b7e57,_0x533f('0x10'),JSON['stringify'](_0x17f258));if(_0x17f258[_0x533f('0x11')]){if(_0x17f258['error'][_0x533f('0x12')]===0x1f4){logger[_0x533f('0x11')]('DeskAccount,\x20%s,\x20%s',_0x1b7e57,_0x17f258[_0x533f('0x11')]['message']);return _0x5ee069(_0x17f258[_0x533f('0x11')][_0x533f('0x13')]);}logger[_0x533f('0x11')](_0x533f('0xd'),_0x1b7e57,_0x17f258['error']['message']);return _0x2b0734(_0x17f258[_0x533f('0x11')][_0x533f('0x13')]);}else{logger[_0x533f('0xc')](_0x533f('0xd'),_0x1b7e57,'request\x20sent');_0x2b0734(_0x17f258['result'][_0x533f('0x13')]);}})[_0x533f('0x14')](function(_0x3e0b09){logger[_0x533f('0x11')](_0x533f('0xd'),_0x1b7e57,_0x3e0b09);_0x5ee069(_0x3e0b09);});});}exports['GetDeskAccount']=function(_0xf2185){var _0x5aab72=this;return new Promise(function(_0x556c80,_0x477c55){return db[_0x533f('0x15')][_0x533f('0x16')]({'raw':_0xf2185[_0x533f('0x17')]?_0xf2185[_0x533f('0x17')][_0x533f('0x18')]===undefined?!![]:![]:!![],'where':_0xf2185[_0x533f('0x17')]?_0xf2185['options'][_0x533f('0x19')]||null:null,'attributes':_0xf2185['options']?_0xf2185[_0x533f('0x17')][_0x533f('0x1a')]||null:null,'limit':_0xf2185[_0x533f('0x17')]?_0xf2185[_0x533f('0x17')][_0x533f('0x1b')]||null:null,'include':_0xf2185[_0x533f('0x17')]?_0xf2185[_0x533f('0x17')][_0x533f('0x1c')]?_['map'](_0xf2185['options'][_0x533f('0x1c')],function(_0x22c00f){return{'model':db[_0x22c00f[_0x533f('0x1d')]],'as':_0x22c00f['as'],'attributes':_0x22c00f['attributes'],'include':_0x22c00f[_0x533f('0x1c')]?_[_0x533f('0x1e')](_0x22c00f[_0x533f('0x1c')],function(_0x17b014){return{'model':db[_0x17b014[_0x533f('0x1d')]],'as':_0x17b014['as'],'attributes':_0x17b014[_0x533f('0x1a')],'include':_0x17b014[_0x533f('0x1c')]?_['map'](_0x17b014[_0x533f('0x1c')],function(_0x4dbb0e){return{'model':db[_0x4dbb0e[_0x533f('0x1d')]],'as':_0x4dbb0e['as'],'attributes':_0x4dbb0e['attributes']};}):[]};}):[]};}):[]:[]})[_0x533f('0xb')](function(_0x1401cd){logger[_0x533f('0xc')]('GetDeskAccount',_0xf2185);logger['debug']('GetDeskAccount',_0xf2185,JSON[_0x533f('0x1f')](_0x1401cd));_0x556c80(_0x1401cd);})['catch'](function(_0x5994b0){logger[_0x533f('0x11')](_0x533f('0x20'),_0x5994b0[_0x533f('0x13')],_0xf2185);_0x477c55(_0x5aab72[_0x533f('0x11')](0x1f4,_0x5994b0['message']));});});};exports[_0x533f('0x21')]=function(_0x5937ba){var _0x14dcde=this;return new Promise(function(_0x225b77,_0x24a1b5){return db['DeskAccount']['find']({'raw':_0x5937ba[_0x533f('0x17')]?_0x5937ba[_0x533f('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x5937ba['options']?_0x5937ba[_0x533f('0x17')][_0x533f('0x19')]||null:null,'attributes':_0x5937ba[_0x533f('0x17')]?_0x5937ba[_0x533f('0x17')][_0x533f('0x1a')]||null:null,'include':_0x5937ba[_0x533f('0x17')]?_0x5937ba['options']['include']?_[_0x533f('0x1e')](_0x5937ba[_0x533f('0x17')]['include'],function(_0x4b0b66){return{'model':db[_0x4b0b66[_0x533f('0x1d')]],'as':_0x4b0b66['as'],'attributes':_0x4b0b66[_0x533f('0x1a')],'include':_0x4b0b66['include']?_[_0x533f('0x1e')](_0x4b0b66[_0x533f('0x1c')],function(_0x32ac13){return{'model':db[_0x32ac13[_0x533f('0x1d')]],'as':_0x32ac13['as'],'attributes':_0x32ac13['attributes'],'include':_0x32ac13[_0x533f('0x1c')]?_[_0x533f('0x1e')](_0x32ac13[_0x533f('0x1c')],function(_0x207827){return{'model':db[_0x207827[_0x533f('0x1d')]],'as':_0x207827['as'],'attributes':_0x207827[_0x533f('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4dc115){logger['info'](_0x533f('0x21'),_0x5937ba);logger['debug'](_0x533f('0x21'),_0x5937ba,JSON['stringify'](_0x4dc115));_0x225b77(_0x4dc115);})[_0x533f('0x14')](function(_0x1b5055){logger[_0x533f('0x11')](_0x533f('0x21'),_0x1b5055['message'],_0x5937ba);_0x24a1b5(_0x14dcde[_0x533f('0x11')](0x1f4,_0x1b5055[_0x533f('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['/:id/subjects','getSubjects','getDescriptions','/:id/tags','getTags','post','create','setTags','put','update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intDeskConfiguration.controller','get','isAuthenticated','index','/:id','show','getFields'];(function(_0x59b143,_0x4be233){var _0x22519e=function(_0x211da6){while(--_0x211da6){_0x59b143['push'](_0x59b143['shift']());}};_0x22519e(++_0x4be233);}(_0x9957,0x93));var _0x7995=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x9957[_0x4cf98e];return _0x1623ac;};'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 fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/fields',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x9')]('/:id/descriptions',auth[_0x7995('0xa')](),controller[_0x7995('0x11')]);router['get'](_0x7995('0x12'),auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x14')]('/:id/tags',auth['isAuthenticated'](),controller[_0x7995('0x16')]);router[_0x7995('0x17')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x18')]);router[_0x7995('0x19')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller['destroy']);module[_0x7995('0x1a')]=router;
\ No newline at end of file
+var _0x9c44=['destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./intDeskConfiguration.controller','isAuthenticated','index','get','/:id','/:id/fields','getFields','getSubjects','/:id/descriptions','/:id/tags','post','setTags','put','update'];(function(_0x3486e3,_0x4aa5f3){var _0x497a88=function(_0x289504){while(--_0x289504){_0x3486e3['push'](_0x3486e3['shift']());}};_0x497a88(++_0x4aa5f3);}(_0x9c44,0x178));var _0x49c4=function(_0x255d5b,_0x4f6f35){_0x255d5b=_0x255d5b-0x0;var _0x3e141a=_0x9c44[_0x255d5b];return _0x3e141a;};'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 fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x49c4('0x6'));router['get']('/',auth[_0x49c4('0x7')](),controller[_0x49c4('0x8')]);router[_0x49c4('0x9')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller['show']);router[_0x49c4('0x9')](_0x49c4('0xb'),auth[_0x49c4('0x7')](),controller[_0x49c4('0xc')]);router['get']('/:id/subjects',auth[_0x49c4('0x7')](),controller[_0x49c4('0xd')]);router['get'](_0x49c4('0xe'),auth[_0x49c4('0x7')](),controller['getDescriptions']);router['get'](_0x49c4('0xf'),auth[_0x49c4('0x7')](),controller['getTags']);router[_0x49c4('0x10')]('/',auth[_0x49c4('0x7')](),controller['create']);router[_0x49c4('0x10')](_0x49c4('0xf'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x11')]);router[_0x49c4('0x12')](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x13')]);router['delete'](_0x49c4('0xa'),auth[_0x49c4('0x7')](),controller[_0x49c4('0x14')]);module[_0x49c4('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41dc=['STRING','sequelize'];(function(_0x1c7d93,_0x3c5644){var _0x2b51aa=function(_0x5c0d10){while(--_0x5c0d10){_0x1c7d93['push'](_0x1c7d93['shift']());}};_0x2b51aa(++_0x3c5644);}(_0x41dc,0x6f));var _0xc41d=function(_0x2d7f0e,_0x3e6fbd){_0x2d7f0e=_0x2d7f0e-0x0;var _0x110b07=_0x41dc[_0x2d7f0e];return _0x110b07;};'use strict';var Sequelize=require(_0xc41d('0x0'));module['exports']={'name':{'type':Sequelize[_0xc41d('0x1')]},'description':{'type':Sequelize[_0xc41d('0x1')]}};
\ No newline at end of file
+var _0xb6c3=['sequelize','exports','STRING'];(function(_0xcd9cd7,_0x4db42b){var _0x2fba9f=function(_0x2cf775){while(--_0x2cf775){_0xcd9cd7['push'](_0xcd9cd7['shift']());}};_0x2fba9f(++_0x4db42b);}(_0xb6c3,0xe1));var _0x3b6c=function(_0x267d92,_0x121afd){_0x267d92=_0x267d92-0x0;var _0x2503b2=_0xb6c3[_0x267d92];return _0x2503b2;};'use strict';var Sequelize=require(_0x3b6c('0x0'));module[_0x3b6c('0x1')]={'name':{'type':Sequelize[_0x3b6c('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc83=['keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','getFields','DeskField','order','getSubjects','findOne','getDescriptions','getTags','Tag','setTags','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','error','stack','name','send','map','DeskConfiguration','rawAttributes','key','model','query'];(function(_0x120ab8,_0x577eb9){var _0x597e51=function(_0x165bf4){while(--_0x165bf4){_0x120ab8['push'](_0x120ab8['shift']());}};_0x597e51(++_0x577eb9);}(_0xfc83,0x116));var _0x3fc8=function(_0x20faa3,_0x1d29d3){_0x20faa3=_0x20faa3-0x0;var _0x504bbc=_0xfc83[_0x20faa3];return _0x504bbc;};'use strict';var emlformat=require(_0x3fc8('0x0'));var rimraf=require(_0x3fc8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x3fc8('0x2'));var BPromise=require(_0x3fc8('0x3'));var Mustache=require('mustache');var util=require(_0x3fc8('0x4'));var path=require(_0x3fc8('0x5'));var sox=require(_0x3fc8('0x6'));var csv=require(_0x3fc8('0x7'));var ejs=require(_0x3fc8('0x8'));var fs=require('fs');var fs_extra=require(_0x3fc8('0x9'));var _=require(_0x3fc8('0xa'));var squel=require(_0x3fc8('0xb'));var crypto=require(_0x3fc8('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x3fc8('0x7'));var querystring=require(_0x3fc8('0xd'));var Papa=require('papaparse');var Redis=require(_0x3fc8('0xe'));var authService=require(_0x3fc8('0xf'));var qs=require(_0x3fc8('0x10'));var as=require(_0x3fc8('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3fc8('0x12'))(_0x3fc8('0x13'));var utils=require(_0x3fc8('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3fc8('0x15'))['db'];function respondWithStatusCode(_0x142148,_0x5c23ec){_0x5c23ec=_0x5c23ec||0xcc;return function(_0x8221af){if(_0x8221af){return _0x142148[_0x3fc8('0x16')](_0x5c23ec);}return _0x142148[_0x3fc8('0x17')](_0x5c23ec)[_0x3fc8('0x18')]();};}function respondWithResult(_0x567d16,_0x1d6247){_0x1d6247=_0x1d6247||0xc8;return function(_0x436b7b){if(_0x436b7b){return _0x567d16['status'](_0x1d6247)[_0x3fc8('0x19')](_0x436b7b);}};}function respondWithFilteredResult(_0x8eeeef,_0x579248){return function(_0x4fbe81){if(_0x4fbe81){var _0x4dd717=typeof _0x579248[_0x3fc8('0x1a')]===_0x3fc8('0x1b')&&typeof _0x579248['limit']===_0x3fc8('0x1b');var _0x2af4ef=_0x4fbe81['count'];var _0x3ecd84=_0x4dd717?0x0:_0x579248[_0x3fc8('0x1a')];var _0x1a7a96=_0x4dd717?_0x4fbe81[_0x3fc8('0x1c')]:_0x579248['offset']+_0x579248[_0x3fc8('0x1d')];var _0x55e3c6;if(_0x1a7a96>=_0x2af4ef){_0x1a7a96=_0x2af4ef;_0x55e3c6=0xc8;}else{_0x55e3c6=0xce;}_0x8eeeef['status'](_0x55e3c6);return _0x8eeeef['set'](_0x3fc8('0x1e'),_0x3ecd84+'-'+_0x1a7a96+'/'+_0x2af4ef)[_0x3fc8('0x19')](_0x4fbe81);}return null;};}function patchUpdates(_0x343946){return function(_0x417ea3){try{jsonpatch[_0x3fc8('0x1f')](_0x417ea3,_0x343946,!![]);}catch(_0x5a602d){return BPromise[_0x3fc8('0x20')](_0x5a602d);}return _0x417ea3[_0x3fc8('0x21')]();};}function saveUpdates(_0x14f1f5,_0x466b31){return function(_0x35b409){if(_0x35b409){return _0x35b409[_0x3fc8('0x22')](_0x14f1f5)['then'](function(_0x5e4910){return _0x5e4910;});}return null;};}function removeEntity(_0x295b45,_0x5ee658){return function(_0xfe40ff){if(_0xfe40ff){return _0xfe40ff['destroy']()[_0x3fc8('0x23')](function(){_0x295b45[_0x3fc8('0x17')](0xcc)[_0x3fc8('0x18')]();});}};}function handleEntityNotFound(_0x7550e,_0x5227f2){return function(_0xf85646){if(!_0xf85646){_0x7550e[_0x3fc8('0x16')](0x194);}return _0xf85646;};}function handleError(_0x4395f0,_0x1382eb){_0x1382eb=_0x1382eb||0x1f4;return function(_0x437d30){logger[_0x3fc8('0x24')](_0x437d30[_0x3fc8('0x25')]);if(_0x437d30[_0x3fc8('0x26')]){delete _0x437d30[_0x3fc8('0x26')];}_0x4395f0[_0x3fc8('0x17')](_0x1382eb)[_0x3fc8('0x27')](_0x437d30);};}exports['index']=function(_0x17a142,_0x4663b5){var _0x2fb7ed={},_0x10aa83={},_0xeb03b5={'count':0x0,'rows':[]};var _0x1db05c=_[_0x3fc8('0x28')](db[_0x3fc8('0x29')][_0x3fc8('0x2a')],function(_0x5b8249){return{'name':_0x5b8249['fieldName'],'type':_0x5b8249['type'][_0x3fc8('0x2b')]};});_0x10aa83[_0x3fc8('0x2c')]=_[_0x3fc8('0x28')](_0x1db05c,_0x3fc8('0x26'));_0x10aa83[_0x3fc8('0x2d')]=_[_0x3fc8('0x2e')](_0x17a142[_0x3fc8('0x2d')]);_0x10aa83['filters']=_[_0x3fc8('0x2f')](_0x10aa83[_0x3fc8('0x2c')],_0x10aa83['query']);_0x2fb7ed['attributes']=_['intersection'](_0x10aa83['model'],qs['fields'](_0x17a142[_0x3fc8('0x2d')][_0x3fc8('0x30')]));_0x2fb7ed[_0x3fc8('0x31')]=_0x2fb7ed['attributes'][_0x3fc8('0x32')]?_0x2fb7ed['attributes']:_0x10aa83[_0x3fc8('0x2c')];if(!_0x17a142[_0x3fc8('0x2d')][_0x3fc8('0x33')](_0x3fc8('0x34'))){_0x2fb7ed[_0x3fc8('0x1d')]=qs['limit'](_0x17a142['query'][_0x3fc8('0x1d')]);_0x2fb7ed[_0x3fc8('0x1a')]=qs[_0x3fc8('0x1a')](_0x17a142['query'][_0x3fc8('0x1a')]);}_0x2fb7ed['order']=qs[_0x3fc8('0x35')](_0x17a142[_0x3fc8('0x2d')][_0x3fc8('0x35')]);_0x2fb7ed[_0x3fc8('0x36')]=qs[_0x3fc8('0x37')](_[_0x3fc8('0x38')](_0x17a142[_0x3fc8('0x2d')],_0x10aa83[_0x3fc8('0x37')]),_0x1db05c);if(_0x17a142[_0x3fc8('0x2d')][_0x3fc8('0x39')]){_0x2fb7ed[_0x3fc8('0x36')]=_[_0x3fc8('0x3a')](_0x2fb7ed['where'],{'$or':_[_0x3fc8('0x28')](_0x1db05c,function(_0x2c996c){if(_0x2c996c[_0x3fc8('0x3b')]!==_0x3fc8('0x3c')){var _0x2850bb={};_0x2850bb[_0x2c996c['name']]={'$like':'%'+_0x17a142['query'][_0x3fc8('0x39')]+'%'};return _0x2850bb;}})});}_0x2fb7ed=_[_0x3fc8('0x3a')]({},_0x2fb7ed,_0x17a142[_0x3fc8('0x3d')]);var _0xe5e90e={'where':_0x2fb7ed[_0x3fc8('0x36')]};return db[_0x3fc8('0x29')]['count'](_0xe5e90e)['then'](function(_0x5a0306){_0xeb03b5[_0x3fc8('0x1c')]=_0x5a0306;if(_0x17a142[_0x3fc8('0x2d')][_0x3fc8('0x3e')]){_0x2fb7ed[_0x3fc8('0x3f')]=[{'all':!![]}];}return db[_0x3fc8('0x29')][_0x3fc8('0x40')](_0x2fb7ed);})[_0x3fc8('0x23')](function(_0x325a5b){_0xeb03b5[_0x3fc8('0x41')]=_0x325a5b;return _0xeb03b5;})['then'](respondWithFilteredResult(_0x4663b5,_0x2fb7ed))[_0x3fc8('0x42')](handleError(_0x4663b5,null));};exports[_0x3fc8('0x43')]=function(_0xf2513b,_0x11f399){var _0x58d4a5={'raw':![],'where':{'id':_0xf2513b[_0x3fc8('0x44')]['id']}},_0x3416c2={};_0x3416c2['model']=_['keys'](db['DeskConfiguration']['rawAttributes']);_0x3416c2[_0x3fc8('0x2d')]=_[_0x3fc8('0x2e')](_0xf2513b[_0x3fc8('0x2d')]);_0x3416c2['filters']=_[_0x3fc8('0x2f')](_0x3416c2[_0x3fc8('0x2c')],_0x3416c2[_0x3fc8('0x2d')]);_0x58d4a5[_0x3fc8('0x31')]=_[_0x3fc8('0x2f')](_0x3416c2[_0x3fc8('0x2c')],qs[_0x3fc8('0x30')](_0xf2513b[_0x3fc8('0x2d')][_0x3fc8('0x30')]));_0x58d4a5['attributes']=_0x58d4a5['attributes'][_0x3fc8('0x32')]?_0x58d4a5[_0x3fc8('0x31')]:_0x3416c2[_0x3fc8('0x2c')];if(_0xf2513b[_0x3fc8('0x2d')]['includeAll']){_0x58d4a5[_0x3fc8('0x3f')]=[{'all':!![]}];}_0x58d4a5=_[_0x3fc8('0x3a')]({},_0x58d4a5,_0xf2513b[_0x3fc8('0x3d')]);return db['DeskConfiguration']['find'](_0x58d4a5)[_0x3fc8('0x23')](handleEntityNotFound(_0x11f399,null))[_0x3fc8('0x23')](respondWithResult(_0x11f399,null))[_0x3fc8('0x42')](handleError(_0x11f399,null));};exports[_0x3fc8('0x45')]=function(_0x2436c5,_0xa19a1f){return db[_0x3fc8('0x29')][_0x3fc8('0x45')](_0x2436c5[_0x3fc8('0x46')],{})[_0x3fc8('0x23')](respondWithResult(_0xa19a1f,0xc9))[_0x3fc8('0x42')](handleError(_0xa19a1f,null));};exports[_0x3fc8('0x22')]=function(_0x26e3df,_0x52949e){if(_0x26e3df[_0x3fc8('0x46')]['id']){delete _0x26e3df[_0x3fc8('0x46')]['id'];}return db[_0x3fc8('0x29')][_0x3fc8('0x47')]({'where':{'id':_0x26e3df[_0x3fc8('0x44')]['id']}})[_0x3fc8('0x23')](handleEntityNotFound(_0x52949e,null))['then'](saveUpdates(_0x26e3df[_0x3fc8('0x46')],null))[_0x3fc8('0x23')](respondWithResult(_0x52949e,null))['catch'](handleError(_0x52949e,null));};exports['destroy']=function(_0x752c8e,_0x3e0062){return db[_0x3fc8('0x29')][_0x3fc8('0x47')]({'where':{'id':_0x752c8e['params']['id']}})['then'](handleEntityNotFound(_0x3e0062,null))['then'](removeEntity(_0x3e0062,null))[_0x3fc8('0x42')](handleError(_0x3e0062,null));};exports[_0x3fc8('0x48')]=function(_0x3babb8,_0x36a01a,_0x56c482){var _0x340779={};var _0x195b78={};var _0x558351;var _0xb3c68c;return db[_0x3fc8('0x29')]['findOne']({'where':{'id':_0x3babb8[_0x3fc8('0x44')]['id']}})[_0x3fc8('0x23')](handleEntityNotFound(_0x36a01a,null))[_0x3fc8('0x23')](function(_0x2c2192){if(_0x2c2192){_0x558351=_0x2c2192;_0x195b78[_0x3fc8('0x2c')]=_[_0x3fc8('0x2e')](db[_0x3fc8('0x49')][_0x3fc8('0x2a')]);_0x195b78[_0x3fc8('0x2d')]=_[_0x3fc8('0x2e')](_0x3babb8[_0x3fc8('0x2d')]);_0x195b78[_0x3fc8('0x37')]=_[_0x3fc8('0x2f')](_0x195b78[_0x3fc8('0x2c')],_0x195b78[_0x3fc8('0x2d')]);_0x340779[_0x3fc8('0x31')]=_['intersection'](_0x195b78[_0x3fc8('0x2c')],qs['fields'](_0x3babb8[_0x3fc8('0x2d')][_0x3fc8('0x30')]));_0x340779[_0x3fc8('0x31')]=_0x340779['attributes'][_0x3fc8('0x32')]?_0x340779[_0x3fc8('0x31')]:_0x195b78[_0x3fc8('0x2c')];_0x340779[_0x3fc8('0x4a')]=qs[_0x3fc8('0x35')](_0x3babb8[_0x3fc8('0x2d')]['sort']);_0x340779[_0x3fc8('0x36')]=qs[_0x3fc8('0x37')](_[_0x3fc8('0x38')](_0x3babb8[_0x3fc8('0x2d')],_0x195b78[_0x3fc8('0x37')]));if(_0x3babb8['query'][_0x3fc8('0x39')]){_0x340779['where']=_['merge'](_0x340779['where'],{'$or':_['map'](_0x340779[_0x3fc8('0x31')],function(_0xd2d7f1){var _0x38ec7f={};_0x38ec7f[_0xd2d7f1]={'$like':'%'+_0x3babb8[_0x3fc8('0x2d')][_0x3fc8('0x39')]+'%'};return _0x38ec7f;})});}_0x340779=_[_0x3fc8('0x3a')]({},_0x340779,_0x3babb8['options']);return _0x558351[_0x3fc8('0x48')](_0x340779);}})[_0x3fc8('0x23')](function(_0x12152d){if(_0x12152d){_0xb3c68c=_0x12152d[_0x3fc8('0x32')];if(!_0x3babb8[_0x3fc8('0x2d')]['hasOwnProperty']('nolimit')){_0x340779['limit']=qs[_0x3fc8('0x1d')](_0x3babb8[_0x3fc8('0x2d')][_0x3fc8('0x1d')]);_0x340779[_0x3fc8('0x1a')]=qs[_0x3fc8('0x1a')](_0x3babb8['query']['offset']);}return _0x558351['getFields'](_0x340779);}})[_0x3fc8('0x23')](function(_0x1e41c7){if(_0x1e41c7){return _0x1e41c7?{'count':_0xb3c68c,'rows':_0x1e41c7}:null;}})[_0x3fc8('0x23')](respondWithResult(_0x36a01a,null))[_0x3fc8('0x42')](handleError(_0x36a01a,null));};exports[_0x3fc8('0x4b')]=function(_0xe145aa,_0x10d039,_0x2ec98d){var _0x29c1d1={};var _0x5ea0ed={};var _0x40ee3d;var _0x8a3cbb;return db[_0x3fc8('0x29')][_0x3fc8('0x4c')]({'where':{'id':_0xe145aa[_0x3fc8('0x44')]['id']}})[_0x3fc8('0x23')](handleEntityNotFound(_0x10d039,null))[_0x3fc8('0x23')](function(_0x21f048){if(_0x21f048){_0x40ee3d=_0x21f048;_0x5ea0ed[_0x3fc8('0x2c')]=_['keys'](db[_0x3fc8('0x49')][_0x3fc8('0x2a')]);_0x5ea0ed['query']=_[_0x3fc8('0x2e')](_0xe145aa[_0x3fc8('0x2d')]);_0x5ea0ed[_0x3fc8('0x37')]=_[_0x3fc8('0x2f')](_0x5ea0ed[_0x3fc8('0x2c')],_0x5ea0ed[_0x3fc8('0x2d')]);_0x29c1d1[_0x3fc8('0x31')]=_[_0x3fc8('0x2f')](_0x5ea0ed['model'],qs[_0x3fc8('0x30')](_0xe145aa[_0x3fc8('0x2d')][_0x3fc8('0x30')]));_0x29c1d1['attributes']=_0x29c1d1[_0x3fc8('0x31')]['length']?_0x29c1d1[_0x3fc8('0x31')]:_0x5ea0ed['model'];_0x29c1d1[_0x3fc8('0x4a')]=qs[_0x3fc8('0x35')](_0xe145aa[_0x3fc8('0x2d')]['sort']);_0x29c1d1['where']=qs[_0x3fc8('0x37')](_['pick'](_0xe145aa[_0x3fc8('0x2d')],_0x5ea0ed[_0x3fc8('0x37')]));if(_0xe145aa[_0x3fc8('0x2d')][_0x3fc8('0x39')]){_0x29c1d1[_0x3fc8('0x36')]=_[_0x3fc8('0x3a')](_0x29c1d1[_0x3fc8('0x36')],{'$or':_['map'](_0x29c1d1[_0x3fc8('0x31')],function(_0x5f2115){var _0x2292cf={};_0x2292cf[_0x5f2115]={'$like':'%'+_0xe145aa[_0x3fc8('0x2d')][_0x3fc8('0x39')]+'%'};return _0x2292cf;})});}_0x29c1d1=_[_0x3fc8('0x3a')]({},_0x29c1d1,_0xe145aa['options']);return _0x40ee3d['getSubjects'](_0x29c1d1);}})['then'](function(_0x2dbf4c){if(_0x2dbf4c){_0x8a3cbb=_0x2dbf4c[_0x3fc8('0x32')];if(!_0xe145aa[_0x3fc8('0x2d')][_0x3fc8('0x33')]('nolimit')){_0x29c1d1[_0x3fc8('0x1d')]=qs[_0x3fc8('0x1d')](_0xe145aa[_0x3fc8('0x2d')][_0x3fc8('0x1d')]);_0x29c1d1[_0x3fc8('0x1a')]=qs[_0x3fc8('0x1a')](_0xe145aa['query'][_0x3fc8('0x1a')]);}return _0x40ee3d[_0x3fc8('0x4b')](_0x29c1d1);}})['then'](function(_0x49509e){if(_0x49509e){return _0x49509e?{'count':_0x8a3cbb,'rows':_0x49509e}:null;}})[_0x3fc8('0x23')](respondWithResult(_0x10d039,null))['catch'](handleError(_0x10d039,null));};exports[_0x3fc8('0x4d')]=function(_0x2994bc,_0x4d610a,_0x1f3ae0){var _0xe893c3={};var _0x2fd1e3={};var _0x3f6782;var _0x27f541;return db[_0x3fc8('0x29')][_0x3fc8('0x4c')]({'where':{'id':_0x2994bc[_0x3fc8('0x44')]['id']}})[_0x3fc8('0x23')](handleEntityNotFound(_0x4d610a,null))[_0x3fc8('0x23')](function(_0x494b9a){if(_0x494b9a){_0x3f6782=_0x494b9a;_0x2fd1e3[_0x3fc8('0x2c')]=_['keys'](db[_0x3fc8('0x49')][_0x3fc8('0x2a')]);_0x2fd1e3[_0x3fc8('0x2d')]=_[_0x3fc8('0x2e')](_0x2994bc[_0x3fc8('0x2d')]);_0x2fd1e3[_0x3fc8('0x37')]=_[_0x3fc8('0x2f')](_0x2fd1e3['model'],_0x2fd1e3[_0x3fc8('0x2d')]);_0xe893c3[_0x3fc8('0x31')]=_[_0x3fc8('0x2f')](_0x2fd1e3[_0x3fc8('0x2c')],qs[_0x3fc8('0x30')](_0x2994bc[_0x3fc8('0x2d')][_0x3fc8('0x30')]));_0xe893c3[_0x3fc8('0x31')]=_0xe893c3[_0x3fc8('0x31')][_0x3fc8('0x32')]?_0xe893c3[_0x3fc8('0x31')]:_0x2fd1e3['model'];_0xe893c3[_0x3fc8('0x4a')]=qs[_0x3fc8('0x35')](_0x2994bc['query']['sort']);_0xe893c3['where']=qs[_0x3fc8('0x37')](_[_0x3fc8('0x38')](_0x2994bc[_0x3fc8('0x2d')],_0x2fd1e3['filters']));if(_0x2994bc[_0x3fc8('0x2d')][_0x3fc8('0x39')]){_0xe893c3['where']=_[_0x3fc8('0x3a')](_0xe893c3[_0x3fc8('0x36')],{'$or':_[_0x3fc8('0x28')](_0xe893c3[_0x3fc8('0x31')],function(_0x199aba){var _0x145206={};_0x145206[_0x199aba]={'$like':'%'+_0x2994bc[_0x3fc8('0x2d')][_0x3fc8('0x39')]+'%'};return _0x145206;})});}_0xe893c3=_[_0x3fc8('0x3a')]({},_0xe893c3,_0x2994bc['options']);return _0x3f6782['getDescriptions'](_0xe893c3);}})[_0x3fc8('0x23')](function(_0x3bcd31){if(_0x3bcd31){_0x27f541=_0x3bcd31[_0x3fc8('0x32')];if(!_0x2994bc[_0x3fc8('0x2d')]['hasOwnProperty'](_0x3fc8('0x34'))){_0xe893c3[_0x3fc8('0x1d')]=qs[_0x3fc8('0x1d')](_0x2994bc[_0x3fc8('0x2d')][_0x3fc8('0x1d')]);_0xe893c3[_0x3fc8('0x1a')]=qs[_0x3fc8('0x1a')](_0x2994bc['query'][_0x3fc8('0x1a')]);}return _0x3f6782['getDescriptions'](_0xe893c3);}})[_0x3fc8('0x23')](function(_0x59684c){if(_0x59684c){return _0x59684c?{'count':_0x27f541,'rows':_0x59684c}:null;}})[_0x3fc8('0x23')](respondWithResult(_0x4d610a,null))[_0x3fc8('0x42')](handleError(_0x4d610a,null));};exports[_0x3fc8('0x4e')]=function(_0x3bdb55,_0xb5829c,_0x12bb4f){var _0x3f0145={};var _0x1da252={};var _0x29833c;var _0x44b160;return db['DeskConfiguration'][_0x3fc8('0x4c')]({'where':{'id':_0x3bdb55['params']['id']}})[_0x3fc8('0x23')](handleEntityNotFound(_0xb5829c,null))[_0x3fc8('0x23')](function(_0x104214){if(_0x104214){_0x29833c=_0x104214;_0x1da252[_0x3fc8('0x2c')]=_['keys'](db[_0x3fc8('0x4f')]['rawAttributes']);_0x1da252['query']=_[_0x3fc8('0x2e')](_0x3bdb55['query']);_0x1da252[_0x3fc8('0x37')]=_[_0x3fc8('0x2f')](_0x1da252['model'],_0x1da252[_0x3fc8('0x2d')]);_0x3f0145['attributes']=_['intersection'](_0x1da252[_0x3fc8('0x2c')],qs[_0x3fc8('0x30')](_0x3bdb55[_0x3fc8('0x2d')][_0x3fc8('0x30')]));_0x3f0145[_0x3fc8('0x31')]=_0x3f0145[_0x3fc8('0x31')][_0x3fc8('0x32')]?_0x3f0145[_0x3fc8('0x31')]:_0x1da252[_0x3fc8('0x2c')];_0x3f0145['order']=qs[_0x3fc8('0x35')](_0x3bdb55['query'][_0x3fc8('0x35')]);_0x3f0145['where']=qs[_0x3fc8('0x37')](_[_0x3fc8('0x38')](_0x3bdb55[_0x3fc8('0x2d')],_0x1da252[_0x3fc8('0x37')]));if(_0x3bdb55['query']['filter']){_0x3f0145[_0x3fc8('0x36')]=_[_0x3fc8('0x3a')](_0x3f0145[_0x3fc8('0x36')],{'$or':_[_0x3fc8('0x28')](_0x3f0145['attributes'],function(_0x3f2f7e){var _0x3edfd9={};_0x3edfd9[_0x3f2f7e]={'$like':'%'+_0x3bdb55[_0x3fc8('0x2d')][_0x3fc8('0x39')]+'%'};return _0x3edfd9;})});}_0x3f0145=_['merge']({},_0x3f0145,_0x3bdb55[_0x3fc8('0x3d')]);return _0x29833c[_0x3fc8('0x4e')](_0x3f0145);}})['then'](function(_0x31b89b){if(_0x31b89b){_0x44b160=_0x31b89b[_0x3fc8('0x32')];if(!_0x3bdb55['query'][_0x3fc8('0x33')](_0x3fc8('0x34'))){_0x3f0145['limit']=qs['limit'](_0x3bdb55[_0x3fc8('0x2d')]['limit']);_0x3f0145['offset']=qs['offset'](_0x3bdb55[_0x3fc8('0x2d')]['offset']);}return _0x29833c[_0x3fc8('0x4e')](_0x3f0145);}})[_0x3fc8('0x23')](function(_0x1478bd){if(_0x1478bd){return _0x1478bd?{'count':_0x44b160,'rows':_0x1478bd}:null;}})[_0x3fc8('0x23')](respondWithResult(_0xb5829c,null))[_0x3fc8('0x42')](handleError(_0xb5829c,null));};exports[_0x3fc8('0x50')]=function(_0x1730a1,_0x370e64,_0xf86ef2){if(_0x1730a1[_0x3fc8('0x46')]['id']){delete _0x1730a1[_0x3fc8('0x46')]['id'];}return db[_0x3fc8('0x29')]['findOne']({'where':{'id':_0x1730a1['params']['id']}})['then'](handleEntityNotFound(_0x370e64,null))['then'](function(_0x52e167){if(_0x52e167){return _0x52e167['setTags'](_0x1730a1[_0x3fc8('0x46')]['ids']||[]);}return null;})['then'](respondWithResult(_0x370e64,null))[_0x3fc8('0x42')](handleError(_0x370e64,null));};
\ No newline at end of file
+var _0x13bc=['then','destroy','error','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','DeskConfiguration','includeAll','include','findAll','rows','show','params','find','create','catch','body','getFields','findOne','DeskField','hasOwnProperty','getSubjects','getDescriptions','Tag','getTags','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','squel','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','limit','undefined','count','Content-Range','json','apply','reject','update'];(function(_0x3fba9f,_0x3b7b9b){var _0x192cf1=function(_0x557290){while(--_0x557290){_0x3fba9f['push'](_0x3fba9f['shift']());}};_0x192cf1(++_0x3b7b9b);}(_0x13bc,0xe0));var _0xc13b=function(_0x42b678,_0x38ee8b){_0x42b678=_0x42b678-0x0;var _0x102def=_0x13bc[_0x42b678];return _0x102def;};'use strict';var emlformat=require(_0xc13b('0x0'));var rimraf=require(_0xc13b('0x1'));var zipdir=require(_0xc13b('0x2'));var jsonpatch=require(_0xc13b('0x3'));var rp=require(_0xc13b('0x4'));var moment=require(_0xc13b('0x5'));var BPromise=require(_0xc13b('0x6'));var Mustache=require(_0xc13b('0x7'));var util=require(_0xc13b('0x8'));var path=require(_0xc13b('0x9'));var sox=require(_0xc13b('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc13b('0xb'));var _=require('lodash');var squel=require(_0xc13b('0xc'));var crypto=require('crypto');var jsforce=require(_0xc13b('0xd'));var deskjs=require(_0xc13b('0xe'));var toCsv=require(_0xc13b('0xf'));var querystring=require('querystring');var Papa=require(_0xc13b('0x10'));var Redis=require(_0xc13b('0x11'));var authService=require(_0xc13b('0x12'));var qs=require(_0xc13b('0x13'));var as=require(_0xc13b('0x14'));var hardwareService=require(_0xc13b('0x15'));var logger=require(_0xc13b('0x16'))(_0xc13b('0x17'));var utils=require(_0xc13b('0x18'));var config=require(_0xc13b('0x19'));var licenseUtil=require(_0xc13b('0x1a'));var db=require(_0xc13b('0x1b'))['db'];function respondWithStatusCode(_0x7f82d3,_0x3a6388){_0x3a6388=_0x3a6388||0xcc;return function(_0x578e42){if(_0x578e42){return _0x7f82d3[_0xc13b('0x1c')](_0x3a6388);}return _0x7f82d3['status'](_0x3a6388)[_0xc13b('0x1d')]();};}function respondWithResult(_0x1d3a04,_0x323ff2){_0x323ff2=_0x323ff2||0xc8;return function(_0x213802){if(_0x213802){return _0x1d3a04[_0xc13b('0x1e')](_0x323ff2)['json'](_0x213802);}};}function respondWithFilteredResult(_0x51112f,_0x251321){return function(_0x4348fb){if(_0x4348fb){var _0x485a17=typeof _0x251321[_0xc13b('0x1f')]==='undefined'&&typeof _0x251321[_0xc13b('0x20')]===_0xc13b('0x21');var _0x5245af=_0x4348fb[_0xc13b('0x22')];var _0x35ea78=_0x485a17?0x0:_0x251321[_0xc13b('0x1f')];var _0x50e033=_0x485a17?_0x4348fb['count']:_0x251321[_0xc13b('0x1f')]+_0x251321[_0xc13b('0x20')];var _0x53a9f5;if(_0x50e033>=_0x5245af){_0x50e033=_0x5245af;_0x53a9f5=0xc8;}else{_0x53a9f5=0xce;}_0x51112f[_0xc13b('0x1e')](_0x53a9f5);return _0x51112f['set'](_0xc13b('0x23'),_0x35ea78+'-'+_0x50e033+'/'+_0x5245af)[_0xc13b('0x24')](_0x4348fb);}return null;};}function patchUpdates(_0x3dd124){return function(_0x5bed48){try{jsonpatch[_0xc13b('0x25')](_0x5bed48,_0x3dd124,!![]);}catch(_0x6ff231){return BPromise[_0xc13b('0x26')](_0x6ff231);}return _0x5bed48['save']();};}function saveUpdates(_0x20193e,_0x2079a2){return function(_0x420109){if(_0x420109){return _0x420109[_0xc13b('0x27')](_0x20193e)[_0xc13b('0x28')](function(_0x2ac9aa){return _0x2ac9aa;});}return null;};}function removeEntity(_0x316cb2,_0x29cec0){return function(_0x3c3235){if(_0x3c3235){return _0x3c3235[_0xc13b('0x29')]()[_0xc13b('0x28')](function(){_0x316cb2[_0xc13b('0x1e')](0xcc)[_0xc13b('0x1d')]();});}};}function handleEntityNotFound(_0x316e1f,_0x296621){return function(_0x6c533d){if(!_0x6c533d){_0x316e1f[_0xc13b('0x1c')](0x194);}return _0x6c533d;};}function handleError(_0x5e5029,_0x349cef){_0x349cef=_0x349cef||0x1f4;return function(_0x2b834f){logger[_0xc13b('0x2a')](_0x2b834f['stack']);if(_0x2b834f[_0xc13b('0x2b')]){delete _0x2b834f[_0xc13b('0x2b')];}_0x5e5029[_0xc13b('0x1e')](_0x349cef)[_0xc13b('0x2c')](_0x2b834f);};}exports[_0xc13b('0x2d')]=function(_0x1feba9,_0xde98a){var _0x4259d1={},_0x3930ac={},_0x598bf9={'count':0x0,'rows':[]};var _0x2df36a=_[_0xc13b('0x2e')](db['DeskConfiguration'][_0xc13b('0x2f')],function(_0x32c6aa){return{'name':_0x32c6aa[_0xc13b('0x30')],'type':_0x32c6aa[_0xc13b('0x31')]['key']};});_0x3930ac[_0xc13b('0x32')]=_[_0xc13b('0x2e')](_0x2df36a,_0xc13b('0x2b'));_0x3930ac[_0xc13b('0x33')]=_[_0xc13b('0x34')](_0x1feba9[_0xc13b('0x33')]);_0x3930ac['filters']=_[_0xc13b('0x35')](_0x3930ac[_0xc13b('0x32')],_0x3930ac[_0xc13b('0x33')]);_0x4259d1[_0xc13b('0x36')]=_[_0xc13b('0x35')](_0x3930ac[_0xc13b('0x32')],qs[_0xc13b('0x37')](_0x1feba9[_0xc13b('0x33')][_0xc13b('0x37')]));_0x4259d1[_0xc13b('0x36')]=_0x4259d1[_0xc13b('0x36')][_0xc13b('0x38')]?_0x4259d1[_0xc13b('0x36')]:_0x3930ac[_0xc13b('0x32')];if(!_0x1feba9[_0xc13b('0x33')]['hasOwnProperty'](_0xc13b('0x39'))){_0x4259d1[_0xc13b('0x20')]=qs[_0xc13b('0x20')](_0x1feba9[_0xc13b('0x33')][_0xc13b('0x20')]);_0x4259d1[_0xc13b('0x1f')]=qs['offset'](_0x1feba9[_0xc13b('0x33')]['offset']);}_0x4259d1[_0xc13b('0x3a')]=qs[_0xc13b('0x3b')](_0x1feba9[_0xc13b('0x33')]['sort']);_0x4259d1[_0xc13b('0x3c')]=qs[_0xc13b('0x3d')](_[_0xc13b('0x3e')](_0x1feba9[_0xc13b('0x33')],_0x3930ac[_0xc13b('0x3d')]),_0x2df36a);if(_0x1feba9[_0xc13b('0x33')][_0xc13b('0x3f')]){_0x4259d1[_0xc13b('0x3c')]=_['merge'](_0x4259d1[_0xc13b('0x3c')],{'$or':_[_0xc13b('0x2e')](_0x2df36a,function(_0x46124f){if(_0x46124f[_0xc13b('0x31')]!==_0xc13b('0x40')){var _0xe58b94={};_0xe58b94[_0x46124f[_0xc13b('0x2b')]]={'$like':'%'+_0x1feba9['query'][_0xc13b('0x3f')]+'%'};return _0xe58b94;}})});}_0x4259d1=_[_0xc13b('0x41')]({},_0x4259d1,_0x1feba9[_0xc13b('0x42')]);var _0x34852a={'where':_0x4259d1[_0xc13b('0x3c')]};return db[_0xc13b('0x43')][_0xc13b('0x22')](_0x34852a)[_0xc13b('0x28')](function(_0x327c97){_0x598bf9[_0xc13b('0x22')]=_0x327c97;if(_0x1feba9['query'][_0xc13b('0x44')]){_0x4259d1[_0xc13b('0x45')]=[{'all':!![]}];}return db[_0xc13b('0x43')][_0xc13b('0x46')](_0x4259d1);})[_0xc13b('0x28')](function(_0x214c58){_0x598bf9[_0xc13b('0x47')]=_0x214c58;return _0x598bf9;})[_0xc13b('0x28')](respondWithFilteredResult(_0xde98a,_0x4259d1))['catch'](handleError(_0xde98a,null));};exports[_0xc13b('0x48')]=function(_0x241cc4,_0x3a531c){var _0x3b8296={'raw':![],'where':{'id':_0x241cc4[_0xc13b('0x49')]['id']}},_0x11382e={};_0x11382e[_0xc13b('0x32')]=_[_0xc13b('0x34')](db[_0xc13b('0x43')][_0xc13b('0x2f')]);_0x11382e[_0xc13b('0x33')]=_[_0xc13b('0x34')](_0x241cc4[_0xc13b('0x33')]);_0x11382e[_0xc13b('0x3d')]=_[_0xc13b('0x35')](_0x11382e['model'],_0x11382e[_0xc13b('0x33')]);_0x3b8296[_0xc13b('0x36')]=_[_0xc13b('0x35')](_0x11382e[_0xc13b('0x32')],qs[_0xc13b('0x37')](_0x241cc4[_0xc13b('0x33')][_0xc13b('0x37')]));_0x3b8296['attributes']=_0x3b8296[_0xc13b('0x36')]['length']?_0x3b8296[_0xc13b('0x36')]:_0x11382e['model'];if(_0x241cc4[_0xc13b('0x33')]['includeAll']){_0x3b8296[_0xc13b('0x45')]=[{'all':!![]}];}_0x3b8296=_[_0xc13b('0x41')]({},_0x3b8296,_0x241cc4[_0xc13b('0x42')]);return db[_0xc13b('0x43')][_0xc13b('0x4a')](_0x3b8296)[_0xc13b('0x28')](handleEntityNotFound(_0x3a531c,null))[_0xc13b('0x28')](respondWithResult(_0x3a531c,null))['catch'](handleError(_0x3a531c,null));};exports['create']=function(_0x43a513,_0x2896e7){return db['DeskConfiguration'][_0xc13b('0x4b')](_0x43a513['body'],{})[_0xc13b('0x28')](respondWithResult(_0x2896e7,0xc9))[_0xc13b('0x4c')](handleError(_0x2896e7,null));};exports[_0xc13b('0x27')]=function(_0x38ba64,_0x17f3be){if(_0x38ba64[_0xc13b('0x4d')]['id']){delete _0x38ba64[_0xc13b('0x4d')]['id'];}return db['DeskConfiguration'][_0xc13b('0x4a')]({'where':{'id':_0x38ba64[_0xc13b('0x49')]['id']}})[_0xc13b('0x28')](handleEntityNotFound(_0x17f3be,null))[_0xc13b('0x28')](saveUpdates(_0x38ba64[_0xc13b('0x4d')],null))[_0xc13b('0x28')](respondWithResult(_0x17f3be,null))[_0xc13b('0x4c')](handleError(_0x17f3be,null));};exports[_0xc13b('0x29')]=function(_0x320c3d,_0x5d231d){return db[_0xc13b('0x43')]['find']({'where':{'id':_0x320c3d[_0xc13b('0x49')]['id']}})[_0xc13b('0x28')](handleEntityNotFound(_0x5d231d,null))[_0xc13b('0x28')](removeEntity(_0x5d231d,null))['catch'](handleError(_0x5d231d,null));};exports[_0xc13b('0x4e')]=function(_0x1b7c2d,_0x2587c1,_0x41b17a){var _0x382189={};var _0x21ea37={};var _0x3d4971;var _0x56ae73;return db[_0xc13b('0x43')][_0xc13b('0x4f')]({'where':{'id':_0x1b7c2d[_0xc13b('0x49')]['id']}})[_0xc13b('0x28')](handleEntityNotFound(_0x2587c1,null))[_0xc13b('0x28')](function(_0x3dd6c0){if(_0x3dd6c0){_0x3d4971=_0x3dd6c0;_0x21ea37['model']=_[_0xc13b('0x34')](db[_0xc13b('0x50')]['rawAttributes']);_0x21ea37[_0xc13b('0x33')]=_['keys'](_0x1b7c2d[_0xc13b('0x33')]);_0x21ea37[_0xc13b('0x3d')]=_[_0xc13b('0x35')](_0x21ea37['model'],_0x21ea37[_0xc13b('0x33')]);_0x382189[_0xc13b('0x36')]=_[_0xc13b('0x35')](_0x21ea37['model'],qs['fields'](_0x1b7c2d[_0xc13b('0x33')][_0xc13b('0x37')]));_0x382189[_0xc13b('0x36')]=_0x382189[_0xc13b('0x36')]['length']?_0x382189[_0xc13b('0x36')]:_0x21ea37['model'];_0x382189['order']=qs['sort'](_0x1b7c2d[_0xc13b('0x33')]['sort']);_0x382189[_0xc13b('0x3c')]=qs[_0xc13b('0x3d')](_[_0xc13b('0x3e')](_0x1b7c2d['query'],_0x21ea37[_0xc13b('0x3d')]));if(_0x1b7c2d[_0xc13b('0x33')][_0xc13b('0x3f')]){_0x382189[_0xc13b('0x3c')]=_[_0xc13b('0x41')](_0x382189[_0xc13b('0x3c')],{'$or':_['map'](_0x382189[_0xc13b('0x36')],function(_0x5174c2){var _0x37e0f7={};_0x37e0f7[_0x5174c2]={'$like':'%'+_0x1b7c2d[_0xc13b('0x33')]['filter']+'%'};return _0x37e0f7;})});}_0x382189=_[_0xc13b('0x41')]({},_0x382189,_0x1b7c2d[_0xc13b('0x42')]);return _0x3d4971[_0xc13b('0x4e')](_0x382189);}})[_0xc13b('0x28')](function(_0x4583bf){if(_0x4583bf){_0x56ae73=_0x4583bf[_0xc13b('0x38')];if(!_0x1b7c2d[_0xc13b('0x33')][_0xc13b('0x51')](_0xc13b('0x39'))){_0x382189['limit']=qs[_0xc13b('0x20')](_0x1b7c2d[_0xc13b('0x33')][_0xc13b('0x20')]);_0x382189[_0xc13b('0x1f')]=qs[_0xc13b('0x1f')](_0x1b7c2d[_0xc13b('0x33')][_0xc13b('0x1f')]);}return _0x3d4971['getFields'](_0x382189);}})[_0xc13b('0x28')](function(_0x2147e5){if(_0x2147e5){return _0x2147e5?{'count':_0x56ae73,'rows':_0x2147e5}:null;}})['then'](respondWithResult(_0x2587c1,null))[_0xc13b('0x4c')](handleError(_0x2587c1,null));};exports[_0xc13b('0x52')]=function(_0xa8ed1c,_0x286890,_0x3fc8aa){var _0xa7c102={};var _0x5ebaa1={};var _0x26580b;var _0x302b27;return db[_0xc13b('0x43')]['findOne']({'where':{'id':_0xa8ed1c[_0xc13b('0x49')]['id']}})[_0xc13b('0x28')](handleEntityNotFound(_0x286890,null))['then'](function(_0x4c4c5c){if(_0x4c4c5c){_0x26580b=_0x4c4c5c;_0x5ebaa1['model']=_[_0xc13b('0x34')](db[_0xc13b('0x50')]['rawAttributes']);_0x5ebaa1[_0xc13b('0x33')]=_[_0xc13b('0x34')](_0xa8ed1c['query']);_0x5ebaa1[_0xc13b('0x3d')]=_[_0xc13b('0x35')](_0x5ebaa1['model'],_0x5ebaa1['query']);_0xa7c102[_0xc13b('0x36')]=_[_0xc13b('0x35')](_0x5ebaa1[_0xc13b('0x32')],qs[_0xc13b('0x37')](_0xa8ed1c[_0xc13b('0x33')][_0xc13b('0x37')]));_0xa7c102[_0xc13b('0x36')]=_0xa7c102['attributes']['length']?_0xa7c102[_0xc13b('0x36')]:_0x5ebaa1['model'];_0xa7c102[_0xc13b('0x3a')]=qs[_0xc13b('0x3b')](_0xa8ed1c[_0xc13b('0x33')][_0xc13b('0x3b')]);_0xa7c102[_0xc13b('0x3c')]=qs[_0xc13b('0x3d')](_['pick'](_0xa8ed1c['query'],_0x5ebaa1[_0xc13b('0x3d')]));if(_0xa8ed1c[_0xc13b('0x33')][_0xc13b('0x3f')]){_0xa7c102['where']=_['merge'](_0xa7c102[_0xc13b('0x3c')],{'$or':_[_0xc13b('0x2e')](_0xa7c102[_0xc13b('0x36')],function(_0x35b50d){var _0x4f7970={};_0x4f7970[_0x35b50d]={'$like':'%'+_0xa8ed1c['query'][_0xc13b('0x3f')]+'%'};return _0x4f7970;})});}_0xa7c102=_[_0xc13b('0x41')]({},_0xa7c102,_0xa8ed1c[_0xc13b('0x42')]);return _0x26580b[_0xc13b('0x52')](_0xa7c102);}})[_0xc13b('0x28')](function(_0x3a48f1){if(_0x3a48f1){_0x302b27=_0x3a48f1['length'];if(!_0xa8ed1c[_0xc13b('0x33')][_0xc13b('0x51')](_0xc13b('0x39'))){_0xa7c102[_0xc13b('0x20')]=qs['limit'](_0xa8ed1c[_0xc13b('0x33')]['limit']);_0xa7c102[_0xc13b('0x1f')]=qs[_0xc13b('0x1f')](_0xa8ed1c[_0xc13b('0x33')][_0xc13b('0x1f')]);}return _0x26580b['getSubjects'](_0xa7c102);}})[_0xc13b('0x28')](function(_0x1dfee5){if(_0x1dfee5){return _0x1dfee5?{'count':_0x302b27,'rows':_0x1dfee5}:null;}})['then'](respondWithResult(_0x286890,null))[_0xc13b('0x4c')](handleError(_0x286890,null));};exports[_0xc13b('0x53')]=function(_0x5ec399,_0x1bea89,_0x55bdb9){var _0x43b1f4={};var _0x5de99b={};var _0x3cb8a5;var _0x77e911;return db[_0xc13b('0x43')][_0xc13b('0x4f')]({'where':{'id':_0x5ec399[_0xc13b('0x49')]['id']}})[_0xc13b('0x28')](handleEntityNotFound(_0x1bea89,null))[_0xc13b('0x28')](function(_0x2a8d0a){if(_0x2a8d0a){_0x3cb8a5=_0x2a8d0a;_0x5de99b[_0xc13b('0x32')]=_[_0xc13b('0x34')](db[_0xc13b('0x50')][_0xc13b('0x2f')]);_0x5de99b[_0xc13b('0x33')]=_[_0xc13b('0x34')](_0x5ec399[_0xc13b('0x33')]);_0x5de99b['filters']=_[_0xc13b('0x35')](_0x5de99b[_0xc13b('0x32')],_0x5de99b[_0xc13b('0x33')]);_0x43b1f4[_0xc13b('0x36')]=_[_0xc13b('0x35')](_0x5de99b[_0xc13b('0x32')],qs[_0xc13b('0x37')](_0x5ec399[_0xc13b('0x33')][_0xc13b('0x37')]));_0x43b1f4[_0xc13b('0x36')]=_0x43b1f4[_0xc13b('0x36')][_0xc13b('0x38')]?_0x43b1f4[_0xc13b('0x36')]:_0x5de99b[_0xc13b('0x32')];_0x43b1f4['order']=qs[_0xc13b('0x3b')](_0x5ec399['query'][_0xc13b('0x3b')]);_0x43b1f4['where']=qs[_0xc13b('0x3d')](_[_0xc13b('0x3e')](_0x5ec399[_0xc13b('0x33')],_0x5de99b[_0xc13b('0x3d')]));if(_0x5ec399[_0xc13b('0x33')]['filter']){_0x43b1f4[_0xc13b('0x3c')]=_[_0xc13b('0x41')](_0x43b1f4[_0xc13b('0x3c')],{'$or':_[_0xc13b('0x2e')](_0x43b1f4['attributes'],function(_0x270b19){var _0x4bf2eb={};_0x4bf2eb[_0x270b19]={'$like':'%'+_0x5ec399[_0xc13b('0x33')][_0xc13b('0x3f')]+'%'};return _0x4bf2eb;})});}_0x43b1f4=_[_0xc13b('0x41')]({},_0x43b1f4,_0x5ec399[_0xc13b('0x42')]);return _0x3cb8a5[_0xc13b('0x53')](_0x43b1f4);}})['then'](function(_0x29d42c){if(_0x29d42c){_0x77e911=_0x29d42c[_0xc13b('0x38')];if(!_0x5ec399[_0xc13b('0x33')]['hasOwnProperty']('nolimit')){_0x43b1f4[_0xc13b('0x20')]=qs[_0xc13b('0x20')](_0x5ec399[_0xc13b('0x33')][_0xc13b('0x20')]);_0x43b1f4[_0xc13b('0x1f')]=qs[_0xc13b('0x1f')](_0x5ec399[_0xc13b('0x33')][_0xc13b('0x1f')]);}return _0x3cb8a5['getDescriptions'](_0x43b1f4);}})[_0xc13b('0x28')](function(_0x1c7dbf){if(_0x1c7dbf){return _0x1c7dbf?{'count':_0x77e911,'rows':_0x1c7dbf}:null;}})[_0xc13b('0x28')](respondWithResult(_0x1bea89,null))[_0xc13b('0x4c')](handleError(_0x1bea89,null));};exports['getTags']=function(_0x4d09c6,_0x218e0e,_0x509147){var _0x5a6371={};var _0xddaa80={};var _0x20040f;var _0x54d397;return db['DeskConfiguration'][_0xc13b('0x4f')]({'where':{'id':_0x4d09c6[_0xc13b('0x49')]['id']}})['then'](handleEntityNotFound(_0x218e0e,null))[_0xc13b('0x28')](function(_0x38dc8a){if(_0x38dc8a){_0x20040f=_0x38dc8a;_0xddaa80[_0xc13b('0x32')]=_[_0xc13b('0x34')](db[_0xc13b('0x54')][_0xc13b('0x2f')]);_0xddaa80[_0xc13b('0x33')]=_[_0xc13b('0x34')](_0x4d09c6['query']);_0xddaa80[_0xc13b('0x3d')]=_['intersection'](_0xddaa80[_0xc13b('0x32')],_0xddaa80[_0xc13b('0x33')]);_0x5a6371[_0xc13b('0x36')]=_['intersection'](_0xddaa80[_0xc13b('0x32')],qs[_0xc13b('0x37')](_0x4d09c6[_0xc13b('0x33')][_0xc13b('0x37')]));_0x5a6371['attributes']=_0x5a6371[_0xc13b('0x36')][_0xc13b('0x38')]?_0x5a6371[_0xc13b('0x36')]:_0xddaa80[_0xc13b('0x32')];_0x5a6371['order']=qs[_0xc13b('0x3b')](_0x4d09c6['query'][_0xc13b('0x3b')]);_0x5a6371[_0xc13b('0x3c')]=qs[_0xc13b('0x3d')](_[_0xc13b('0x3e')](_0x4d09c6[_0xc13b('0x33')],_0xddaa80[_0xc13b('0x3d')]));if(_0x4d09c6[_0xc13b('0x33')][_0xc13b('0x3f')]){_0x5a6371[_0xc13b('0x3c')]=_[_0xc13b('0x41')](_0x5a6371['where'],{'$or':_[_0xc13b('0x2e')](_0x5a6371['attributes'],function(_0x32d26e){var _0x37e5c6={};_0x37e5c6[_0x32d26e]={'$like':'%'+_0x4d09c6[_0xc13b('0x33')]['filter']+'%'};return _0x37e5c6;})});}_0x5a6371=_[_0xc13b('0x41')]({},_0x5a6371,_0x4d09c6[_0xc13b('0x42')]);return _0x20040f[_0xc13b('0x55')](_0x5a6371);}})[_0xc13b('0x28')](function(_0x575572){if(_0x575572){_0x54d397=_0x575572[_0xc13b('0x38')];if(!_0x4d09c6['query'][_0xc13b('0x51')]('nolimit')){_0x5a6371[_0xc13b('0x20')]=qs[_0xc13b('0x20')](_0x4d09c6[_0xc13b('0x33')][_0xc13b('0x20')]);_0x5a6371['offset']=qs[_0xc13b('0x1f')](_0x4d09c6[_0xc13b('0x33')][_0xc13b('0x1f')]);}return _0x20040f[_0xc13b('0x55')](_0x5a6371);}})[_0xc13b('0x28')](function(_0x599d68){if(_0x599d68){return _0x599d68?{'count':_0x54d397,'rows':_0x599d68}:null;}})[_0xc13b('0x28')](respondWithResult(_0x218e0e,null))[_0xc13b('0x4c')](handleError(_0x218e0e,null));};exports[_0xc13b('0x56')]=function(_0x4fba59,_0x238048,_0x10885a){if(_0x4fba59[_0xc13b('0x4d')]['id']){delete _0x4fba59['body']['id'];}return db[_0xc13b('0x43')][_0xc13b('0x4f')]({'where':{'id':_0x4fba59['params']['id']}})[_0xc13b('0x28')](handleEntityNotFound(_0x238048,null))[_0xc13b('0x28')](function(_0x3ff97d){if(_0x3ff97d){return _0x3ff97d[_0xc13b('0x56')](_0x4fba59[_0xc13b('0x4d')][_0xc13b('0x57')]||[]);}return null;})['then'](respondWithResult(_0x238048,null))[_0xc13b('0x4c')](handleError(_0x238048,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee04=['define','DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports'];(function(_0x1a3e48,_0xeec9fb){var _0x58f09e=function(_0x4e2695){while(--_0x4e2695){_0x1a3e48['push'](_0x1a3e48['shift']());}};_0x58f09e(++_0xeec9fb);}(_0xee04,0x16f));var _0x4ee0=function(_0x214465,_0xea04fb){_0x214465=_0x214465-0x0;var _0x37f8eb=_0xee04[_0x214465];return _0x37f8eb;};'use strict';var _=require(_0x4ee0('0x0'));var util=require(_0x4ee0('0x1'));var logger=require(_0x4ee0('0x2'))(_0x4ee0('0x3'));var moment=require(_0x4ee0('0x4'));var BPromise=require(_0x4ee0('0x5'));var rp=require(_0x4ee0('0x6'));var fs=require('fs');var path=require(_0x4ee0('0x7'));var rimraf=require(_0x4ee0('0x8'));var config=require(_0x4ee0('0x9'));var attributes=require('./intDeskConfiguration.attributes');module[_0x4ee0('0xa')]=function(_0x2692b8,_0x2b7c87){return _0x2692b8[_0x4ee0('0xb')](_0x4ee0('0xc'),attributes,{'tableName':_0x4ee0('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3527=['bluebird','request-promise','path','rimraf','../../config/environment','DeskConfiguration','util','../../config/logger','moment'];(function(_0x539e26,_0x7e8591){var _0x55398e=function(_0x4da9ab){while(--_0x4da9ab){_0x539e26['push'](_0x539e26['shift']());}};_0x55398e(++_0x7e8591);}(_0x3527,0xd5));var _0x7352=function(_0x5317b5,_0x4dfd6e){_0x5317b5=_0x5317b5-0x0;var _0x3b7ce2=_0x3527[_0x5317b5];return _0x3b7ce2;};'use strict';var _=require('lodash');var util=require(_0x7352('0x0'));var logger=require(_0x7352('0x1'))('api');var moment=require(_0x7352('0x2'));var BPromise=require(_0x7352('0x3'));var rp=require(_0x7352('0x4'));var fs=require('fs');var path=require(_0x7352('0x5'));var rimraf=require(_0x7352('0x6'));var config=require(_0x7352('0x7'));var attributes=require('./intDeskConfiguration.attributes');module['exports']=function(_0x5bfc52,_0x1bf23e){return _0x5bfc52['define'](_0x7352('0x8'),attributes,{'tableName':'int_desk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d08=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','request','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment'];(function(_0x4cbf20,_0x1bfa66){var _0x582ae4=function(_0x5eca38){while(--_0x5eca38){_0x4cbf20['push'](_0x4cbf20['shift']());}};_0x582ae4(++_0x1bfa66);}(_0x2d08,0x129));var _0x82d0=function(_0x21774b,_0x4a6d2b){_0x21774b=_0x21774b-0x0;var _0x4675b2=_0x2d08[_0x21774b];return _0x4675b2;};'use strict';var _=require(_0x82d0('0x0'));var util=require(_0x82d0('0x1'));var moment=require(_0x82d0('0x2'));var BPromise=require(_0x82d0('0x3'));var rs=require(_0x82d0('0x4'));var fs=require('fs');var Redis=require(_0x82d0('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x82d0('0x6'));var logger=require(_0x82d0('0x7'))('rpc');var config=require(_0x82d0('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2715c7,_0x38d8bf,_0x4ef5ec){return new BPromise(function(_0x503cc3,_0x259f8f){return client[_0x82d0('0x9')](_0x2715c7,_0x4ef5ec)['then'](function(_0x1bb0ca){logger[_0x82d0('0xa')](_0x82d0('0xb'),_0x38d8bf,_0x82d0('0xc'));logger[_0x82d0('0xd')](_0x82d0('0xe'),_0x38d8bf,_0x82d0('0xc'),JSON[_0x82d0('0xf')](_0x1bb0ca));if(_0x1bb0ca[_0x82d0('0x10')]){if(_0x1bb0ca['error']['code']===0x1f4){logger[_0x82d0('0x10')]('DeskConfiguration,\x20%s,\x20%s',_0x38d8bf,_0x1bb0ca[_0x82d0('0x10')]['message']);return _0x259f8f(_0x1bb0ca['error'][_0x82d0('0x11')]);}logger[_0x82d0('0x10')](_0x82d0('0xb'),_0x38d8bf,_0x1bb0ca[_0x82d0('0x10')]['message']);return _0x503cc3(_0x1bb0ca[_0x82d0('0x10')][_0x82d0('0x11')]);}else{logger['info'](_0x82d0('0xb'),_0x38d8bf,_0x82d0('0xc'));_0x503cc3(_0x1bb0ca[_0x82d0('0x12')]['message']);}})[_0x82d0('0x13')](function(_0x59e46d){logger[_0x82d0('0x10')]('DeskConfiguration,\x20%s,\x20%s',_0x38d8bf,_0x59e46d);_0x259f8f(_0x59e46d);});});}
\ No newline at end of file
+var _0x9f0e=['debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','request','then','info','DeskConfiguration,\x20%s,\x20%s'];(function(_0x5c2092,_0x1f699c){var _0x13aa9d=function(_0x50c84a){while(--_0x50c84a){_0x5c2092['push'](_0x5c2092['shift']());}};_0x13aa9d(++_0x1f699c);}(_0x9f0e,0x8d));var _0xe9f0=function(_0x470e37,_0x123d4b){_0x470e37=_0x470e37-0x0;var _0x12f059=_0x9f0e[_0x470e37];return _0x12f059;};'use strict';var _=require(_0xe9f0('0x0'));var util=require('util');var moment=require(_0xe9f0('0x1'));var BPromise=require(_0xe9f0('0x2'));var rs=require(_0xe9f0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe9f0('0x4'))['db'];var utils=require(_0xe9f0('0x5'));var logger=require(_0xe9f0('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0xe9f0('0x7'));var client=jayson[_0xe9f0('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x554383,_0x3829ef,_0xf31581){return new BPromise(function(_0x404707,_0x19afa8){return client[_0xe9f0('0x9')](_0x554383,_0xf31581)[_0xe9f0('0xa')](function(_0xebf170){logger[_0xe9f0('0xb')](_0xe9f0('0xc'),_0x3829ef,'request\x20sent');logger[_0xe9f0('0xd')](_0xe9f0('0xe'),_0x3829ef,_0xe9f0('0xf'),JSON[_0xe9f0('0x10')](_0xebf170));if(_0xebf170['error']){if(_0xebf170[_0xe9f0('0x11')][_0xe9f0('0x12')]===0x1f4){logger['error'](_0xe9f0('0xc'),_0x3829ef,_0xebf170[_0xe9f0('0x11')][_0xe9f0('0x13')]);return _0x19afa8(_0xebf170[_0xe9f0('0x11')][_0xe9f0('0x13')]);}logger[_0xe9f0('0x11')](_0xe9f0('0xc'),_0x3829ef,_0xebf170[_0xe9f0('0x11')][_0xe9f0('0x13')]);return _0x404707(_0xebf170[_0xe9f0('0x11')][_0xe9f0('0x13')]);}else{logger[_0xe9f0('0xb')](_0xe9f0('0xc'),_0x3829ef,_0xe9f0('0xf'));_0x404707(_0xebf170[_0xe9f0('0x14')][_0xe9f0('0x13')]);}})[_0xe9f0('0x15')](function(_0x1f2c79){logger['error'](_0xe9f0('0xc'),_0x3829ef,_0x1f2c79);_0x19afa8(_0x1f2c79);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59b3=['./intDeskField.controller','isAuthenticated','index','get','/:id','put','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x47bd6,_0x4734be){var _0x75d60c=function(_0x210d40){while(--_0x210d40){_0x47bd6['push'](_0x47bd6['shift']());}};_0x75d60c(++_0x4734be);}(_0x59b3,0x14e));var _0x359b=function(_0x4aaee3,_0x197d84){_0x4aaee3=_0x4aaee3-0x0;var _0x2c0791=_0x59b3[_0x4aaee3];return _0x2c0791;};'use strict';var multer=require(_0x359b('0x0'));var util=require(_0x359b('0x1'));var path=require(_0x359b('0x2'));var timeout=require('connect-timeout');var express=require(_0x359b('0x3'));var router=express[_0x359b('0x4')]();var fs_extra=require(_0x359b('0x5'));var auth=require(_0x359b('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x359b('0x7'));var controller=require(_0x359b('0x8'));router['get']('/',auth[_0x359b('0x9')](),controller[_0x359b('0xa')]);router[_0x359b('0xb')](_0x359b('0xc'),auth[_0x359b('0x9')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x359b('0xd')]('/:id',auth[_0x359b('0x9')](),controller[_0x359b('0xe')]);router[_0x359b('0xf')](_0x359b('0xc'),auth[_0x359b('0x9')](),controller[_0x359b('0x10')]);module[_0x359b('0x11')]=router;
\ No newline at end of file
+var _0x567a=['connect-timeout','express','Router','fs-extra','../../components/interaction/service','./intDeskField.controller','get','isAuthenticated','index','/:id','show','create','delete','destroy','exports','multer','util','path'];(function(_0x47b58b,_0x41a189){var _0x46bebe=function(_0x22bbfa){while(--_0x22bbfa){_0x47b58b['push'](_0x47b58b['shift']());}};_0x46bebe(++_0x41a189);}(_0x567a,0x8d));var _0xa567=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x567a[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0xa567('0x0'));var util=require(_0xa567('0x1'));var path=require(_0xa567('0x2'));var timeout=require(_0xa567('0x3'));var express=require(_0xa567('0x4'));var router=express[_0xa567('0x5')]();var fs_extra=require(_0xa567('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xa567('0x7'));var config=require('../../config/environment');var controller=require(_0xa567('0x8'));router[_0xa567('0x9')]('/',auth[_0xa567('0xa')](),controller[_0xa567('0xb')]);router[_0xa567('0x9')](_0xa567('0xc'),auth[_0xa567('0xa')](),controller[_0xa567('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0xa567('0xe')]);router['put'](_0xa567('0xc'),auth['isAuthenticated'](),controller['update']);router[_0xa567('0xf')]('/:id',auth[_0xa567('0xa')](),controller[_0xa567('0x10')]);module[_0xa567('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c5c=['variable','customVariable','keyValue','picklist','STRING','BOOLEAN','sequelize','ENUM','string'];(function(_0x68ee8b,_0x3cc6c5){var _0x5148f7=function(_0x5dcbd5){while(--_0x5dcbd5){_0x68ee8b['push'](_0x68ee8b['shift']());}};_0x5148f7(++_0x3cc6c5);}(_0x5c5c,0x126));var _0xc5c5=function(_0x53935f,_0xab8c3d){_0x53935f=_0x53935f-0x0;var _0xd4774e=_0x5c5c[_0x53935f];return _0xd4774e;};'use strict';var Sequelize=require(_0xc5c5('0x0'));module['exports']={'type':{'type':Sequelize[_0xc5c5('0x1')](_0xc5c5('0x2'),_0xc5c5('0x3'),_0xc5c5('0x4'),_0xc5c5('0x5'),_0xc5c5('0x6')),'defaultValue':_0xc5c5('0x2')},'content':{'type':Sequelize[_0xc5c5('0x7')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize['ENUM'](_0xc5c5('0x2'),_0xc5c5('0x3'),_0xc5c5('0x4'))},'keyContent':{'type':Sequelize[_0xc5c5('0x7')]},'idField':{'type':Sequelize[_0xc5c5('0x7')]},'nameField':{'type':Sequelize[_0xc5c5('0x7')]},'customField':{'type':Sequelize[_0xc5c5('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x64f8=['sequelize','string','STRING','ENUM','variable','customVariable','BOOLEAN'];(function(_0x3eca5a,_0x20d490){var _0x15470e=function(_0x219cc6){while(--_0x219cc6){_0x3eca5a['push'](_0x3eca5a['shift']());}};_0x15470e(++_0x20d490);}(_0x64f8,0x9a));var _0x864f=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x64f8[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x864f('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0x864f('0x1'),'variable','customVariable','keyValue','picklist'),'defaultValue':_0x864f('0x1')},'content':{'type':Sequelize[_0x864f('0x2')]},'key':{'type':Sequelize[_0x864f('0x2')]},'keyType':{'type':Sequelize[_0x864f('0x3')]('string',_0x864f('0x4'),_0x864f('0x5'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x864f('0x2')]},'nameField':{'type':Sequelize[_0x864f('0x2')]},'customField':{'type':Sequelize[_0x864f('0x6')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x864f('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c84=['create','body','eml-format','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','update','then','destroy','error','stack','name','send','map','DeskField','type','key','query','keys','filters','intersection','model','fields','attributes','length','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find'];(function(_0x37cd22,_0x810335){var _0x12aed3=function(_0xe0ed52){while(--_0xe0ed52){_0x37cd22['push'](_0x37cd22['shift']());}};_0x12aed3(++_0x810335);}(_0x5c84,0x1ca));var _0x45c8=function(_0x8fccbc,_0x400fb1){_0x8fccbc=_0x8fccbc-0x0;var _0xf27bd6=_0x5c84[_0x8fccbc];return _0xf27bd6;};'use strict';var emlformat=require(_0x45c8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x45c8('0x1'));var jsonpatch=require(_0x45c8('0x2'));var rp=require('request-promise');var moment=require(_0x45c8('0x3'));var BPromise=require(_0x45c8('0x4'));var Mustache=require('mustache');var util=require(_0x45c8('0x5'));var path=require('path');var sox=require(_0x45c8('0x6'));var csv=require(_0x45c8('0x7'));var ejs=require(_0x45c8('0x8'));var fs=require('fs');var fs_extra=require(_0x45c8('0x9'));var _=require(_0x45c8('0xa'));var squel=require(_0x45c8('0xb'));var crypto=require(_0x45c8('0xc'));var jsforce=require(_0x45c8('0xd'));var deskjs=require(_0x45c8('0xe'));var toCsv=require(_0x45c8('0x7'));var querystring=require(_0x45c8('0xf'));var Papa=require(_0x45c8('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x45c8('0x11'));var as=require(_0x45c8('0x12'));var hardwareService=require(_0x45c8('0x13'));var logger=require(_0x45c8('0x14'))(_0x45c8('0x15'));var utils=require(_0x45c8('0x16'));var config=require(_0x45c8('0x17'));var licenseUtil=require(_0x45c8('0x18'));var db=require(_0x45c8('0x19'))['db'];function respondWithStatusCode(_0x33ebab,_0x463981){_0x463981=_0x463981||0xcc;return function(_0x50bb34){if(_0x50bb34){return _0x33ebab[_0x45c8('0x1a')](_0x463981);}return _0x33ebab[_0x45c8('0x1b')](_0x463981)[_0x45c8('0x1c')]();};}function respondWithResult(_0x393b74,_0xa910e1){_0xa910e1=_0xa910e1||0xc8;return function(_0x3d5dff){if(_0x3d5dff){return _0x393b74[_0x45c8('0x1b')](_0xa910e1)[_0x45c8('0x1d')](_0x3d5dff);}};}function respondWithFilteredResult(_0x2eb2ea,_0x417d51){return function(_0x15acd5){if(_0x15acd5){var _0x4f7283=typeof _0x417d51['offset']===_0x45c8('0x1e')&&typeof _0x417d51[_0x45c8('0x1f')]===_0x45c8('0x1e');var _0x41b4e0=_0x15acd5['count'];var _0x58e19b=_0x4f7283?0x0:_0x417d51['offset'];var _0xf76e44=_0x4f7283?_0x15acd5[_0x45c8('0x20')]:_0x417d51[_0x45c8('0x21')]+_0x417d51[_0x45c8('0x1f')];var _0x3853ab;if(_0xf76e44>=_0x41b4e0){_0xf76e44=_0x41b4e0;_0x3853ab=0xc8;}else{_0x3853ab=0xce;}_0x2eb2ea[_0x45c8('0x1b')](_0x3853ab);return _0x2eb2ea[_0x45c8('0x22')]('Content-Range',_0x58e19b+'-'+_0xf76e44+'/'+_0x41b4e0)[_0x45c8('0x1d')](_0x15acd5);}return null;};}function patchUpdates(_0x4cfa8){return function(_0x4ec40c){try{jsonpatch[_0x45c8('0x23')](_0x4ec40c,_0x4cfa8,!![]);}catch(_0x461bde){return BPromise[_0x45c8('0x24')](_0x461bde);}return _0x4ec40c['save']();};}function saveUpdates(_0x38f51d,_0x591842){return function(_0x44d7a8){if(_0x44d7a8){return _0x44d7a8[_0x45c8('0x25')](_0x38f51d)[_0x45c8('0x26')](function(_0x146147){return _0x146147;});}return null;};}function removeEntity(_0x4e4eab,_0x3fe54f){return function(_0x1d9e87){if(_0x1d9e87){return _0x1d9e87[_0x45c8('0x27')]()[_0x45c8('0x26')](function(){_0x4e4eab[_0x45c8('0x1b')](0xcc)[_0x45c8('0x1c')]();});}};}function handleEntityNotFound(_0x3cb8cc,_0x1a42c7){return function(_0x3927c6){if(!_0x3927c6){_0x3cb8cc['sendStatus'](0x194);}return _0x3927c6;};}function handleError(_0xc7fa66,_0x84d25){_0x84d25=_0x84d25||0x1f4;return function(_0x5b8fa5){logger[_0x45c8('0x28')](_0x5b8fa5[_0x45c8('0x29')]);if(_0x5b8fa5[_0x45c8('0x2a')]){delete _0x5b8fa5[_0x45c8('0x2a')];}_0xc7fa66[_0x45c8('0x1b')](_0x84d25)[_0x45c8('0x2b')](_0x5b8fa5);};}exports['index']=function(_0x1b6a55,_0x34f7b1){var _0x241f2d={},_0x25723e={},_0x20cef6={'count':0x0,'rows':[]};var _0x51d3b9=_[_0x45c8('0x2c')](db[_0x45c8('0x2d')]['rawAttributes'],function(_0x279821){return{'name':_0x279821['fieldName'],'type':_0x279821[_0x45c8('0x2e')][_0x45c8('0x2f')]};});_0x25723e['model']=_['map'](_0x51d3b9,_0x45c8('0x2a'));_0x25723e[_0x45c8('0x30')]=_[_0x45c8('0x31')](_0x1b6a55[_0x45c8('0x30')]);_0x25723e[_0x45c8('0x32')]=_[_0x45c8('0x33')](_0x25723e[_0x45c8('0x34')],_0x25723e[_0x45c8('0x30')]);_0x241f2d['attributes']=_[_0x45c8('0x33')](_0x25723e[_0x45c8('0x34')],qs[_0x45c8('0x35')](_0x1b6a55[_0x45c8('0x30')]['fields']));_0x241f2d['attributes']=_0x241f2d[_0x45c8('0x36')][_0x45c8('0x37')]?_0x241f2d[_0x45c8('0x36')]:_0x25723e[_0x45c8('0x34')];if(!_0x1b6a55[_0x45c8('0x30')]['hasOwnProperty'](_0x45c8('0x38'))){_0x241f2d['limit']=qs[_0x45c8('0x1f')](_0x1b6a55[_0x45c8('0x30')][_0x45c8('0x1f')]);_0x241f2d['offset']=qs[_0x45c8('0x21')](_0x1b6a55['query'][_0x45c8('0x21')]);}_0x241f2d[_0x45c8('0x39')]=qs[_0x45c8('0x3a')](_0x1b6a55[_0x45c8('0x30')][_0x45c8('0x3a')]);_0x241f2d[_0x45c8('0x3b')]=qs[_0x45c8('0x32')](_[_0x45c8('0x3c')](_0x1b6a55[_0x45c8('0x30')],_0x25723e[_0x45c8('0x32')]),_0x51d3b9);if(_0x1b6a55['query'][_0x45c8('0x3d')]){_0x241f2d[_0x45c8('0x3b')]=_['merge'](_0x241f2d[_0x45c8('0x3b')],{'$or':_['map'](_0x51d3b9,function(_0x50a6f6){if(_0x50a6f6['type']!==_0x45c8('0x3e')){var _0x535159={};_0x535159[_0x50a6f6[_0x45c8('0x2a')]]={'$like':'%'+_0x1b6a55['query'][_0x45c8('0x3d')]+'%'};return _0x535159;}})});}_0x241f2d=_[_0x45c8('0x3f')]({},_0x241f2d,_0x1b6a55[_0x45c8('0x40')]);var _0x4e01cd={'where':_0x241f2d[_0x45c8('0x3b')]};return db['DeskField'][_0x45c8('0x20')](_0x4e01cd)[_0x45c8('0x26')](function(_0x192067){_0x20cef6[_0x45c8('0x20')]=_0x192067;if(_0x1b6a55['query']['includeAll']){_0x241f2d[_0x45c8('0x41')]=[{'all':!![]}];}return db[_0x45c8('0x2d')][_0x45c8('0x42')](_0x241f2d);})[_0x45c8('0x26')](function(_0x543a70){_0x20cef6[_0x45c8('0x43')]=_0x543a70;return _0x20cef6;})[_0x45c8('0x26')](respondWithFilteredResult(_0x34f7b1,_0x241f2d))[_0x45c8('0x44')](handleError(_0x34f7b1,null));};exports[_0x45c8('0x45')]=function(_0x35936b,_0x2e84b1){var _0x2542da={'raw':!![],'where':{'id':_0x35936b[_0x45c8('0x46')]['id']}},_0x46a69b={};_0x46a69b[_0x45c8('0x34')]=_[_0x45c8('0x31')](db['DeskField'][_0x45c8('0x47')]);_0x46a69b[_0x45c8('0x30')]=_[_0x45c8('0x31')](_0x35936b[_0x45c8('0x30')]);_0x46a69b[_0x45c8('0x32')]=_[_0x45c8('0x33')](_0x46a69b[_0x45c8('0x34')],_0x46a69b[_0x45c8('0x30')]);_0x2542da['attributes']=_[_0x45c8('0x33')](_0x46a69b[_0x45c8('0x34')],qs['fields'](_0x35936b['query'][_0x45c8('0x35')]));_0x2542da[_0x45c8('0x36')]=_0x2542da[_0x45c8('0x36')][_0x45c8('0x37')]?_0x2542da['attributes']:_0x46a69b['model'];if(_0x35936b[_0x45c8('0x30')][_0x45c8('0x48')]){_0x2542da[_0x45c8('0x41')]=[{'all':!![]}];}_0x2542da=_['merge']({},_0x2542da,_0x35936b[_0x45c8('0x40')]);return db[_0x45c8('0x2d')][_0x45c8('0x49')](_0x2542da)[_0x45c8('0x26')](handleEntityNotFound(_0x2e84b1,null))['then'](respondWithResult(_0x2e84b1,null))[_0x45c8('0x44')](handleError(_0x2e84b1,null));};exports[_0x45c8('0x4a')]=function(_0x1c5f0d,_0x329e05){return db[_0x45c8('0x2d')][_0x45c8('0x4a')](_0x1c5f0d[_0x45c8('0x4b')],{})[_0x45c8('0x26')](respondWithResult(_0x329e05,0xc9))[_0x45c8('0x44')](handleError(_0x329e05,null));};exports[_0x45c8('0x25')]=function(_0x12cb3a,_0x49a906){if(_0x12cb3a[_0x45c8('0x4b')]['id']){delete _0x12cb3a['body']['id'];}return db[_0x45c8('0x2d')]['find']({'where':{'id':_0x12cb3a[_0x45c8('0x46')]['id']}})[_0x45c8('0x26')](handleEntityNotFound(_0x49a906,null))['then'](saveUpdates(_0x12cb3a[_0x45c8('0x4b')],null))[_0x45c8('0x26')](respondWithResult(_0x49a906,null))[_0x45c8('0x44')](handleError(_0x49a906,null));};exports[_0x45c8('0x27')]=function(_0x540ba9,_0x5d10d2){return db['DeskField'][_0x45c8('0x49')]({'where':{'id':_0x540ba9[_0x45c8('0x46')]['id']}})[_0x45c8('0x26')](handleEntityNotFound(_0x5d10d2,null))[_0x45c8('0x26')](removeEntity(_0x5d10d2,null))[_0x45c8('0x44')](handleError(_0x5d10d2,null));};
\ No newline at end of file
+var _0x2842=['options','find','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','save','update','destroy','stack','name','send','index','map','DeskField','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','then','include','rows','catch','params','rawAttributes','includeAll'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2842,0x1ba));var _0x2284=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2842[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2284('0x0'));var zipdir=require(_0x2284('0x1'));var jsonpatch=require(_0x2284('0x2'));var rp=require(_0x2284('0x3'));var moment=require(_0x2284('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x2284('0x5'));var util=require(_0x2284('0x6'));var path=require('path');var sox=require(_0x2284('0x7'));var csv=require(_0x2284('0x8'));var ejs=require(_0x2284('0x9'));var fs=require('fs');var fs_extra=require(_0x2284('0xa'));var _=require(_0x2284('0xb'));var squel=require(_0x2284('0xc'));var crypto=require('crypto');var jsforce=require(_0x2284('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x2284('0x8'));var querystring=require(_0x2284('0xe'));var Papa=require(_0x2284('0xf'));var Redis=require('ioredis');var authService=require(_0x2284('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x2284('0x11'));var hardwareService=require(_0x2284('0x12'));var logger=require(_0x2284('0x13'))(_0x2284('0x14'));var utils=require(_0x2284('0x15'));var config=require(_0x2284('0x16'));var licenseUtil=require(_0x2284('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3523ef,_0x554894){_0x554894=_0x554894||0xcc;return function(_0xf35d2c){if(_0xf35d2c){return _0x3523ef[_0x2284('0x18')](_0x554894);}return _0x3523ef[_0x2284('0x19')](_0x554894)[_0x2284('0x1a')]();};}function respondWithResult(_0x56b45b,_0xe9f93d){_0xe9f93d=_0xe9f93d||0xc8;return function(_0x281dd5){if(_0x281dd5){return _0x56b45b['status'](_0xe9f93d)[_0x2284('0x1b')](_0x281dd5);}};}function respondWithFilteredResult(_0x5cb2a7,_0x4e09ba){return function(_0x390719){if(_0x390719){var _0x18b7a0=typeof _0x4e09ba[_0x2284('0x1c')]===_0x2284('0x1d')&&typeof _0x4e09ba[_0x2284('0x1e')]==='undefined';var _0xfa1008=_0x390719[_0x2284('0x1f')];var _0xb7935d=_0x18b7a0?0x0:_0x4e09ba['offset'];var _0x2e688c=_0x18b7a0?_0x390719[_0x2284('0x1f')]:_0x4e09ba[_0x2284('0x1c')]+_0x4e09ba[_0x2284('0x1e')];var _0x499a9a;if(_0x2e688c>=_0xfa1008){_0x2e688c=_0xfa1008;_0x499a9a=0xc8;}else{_0x499a9a=0xce;}_0x5cb2a7[_0x2284('0x19')](_0x499a9a);return _0x5cb2a7[_0x2284('0x20')]('Content-Range',_0xb7935d+'-'+_0x2e688c+'/'+_0xfa1008)[_0x2284('0x1b')](_0x390719);}return null;};}function patchUpdates(_0x55733f){return function(_0x367527){try{jsonpatch['apply'](_0x367527,_0x55733f,!![]);}catch(_0x34f1d4){return BPromise['reject'](_0x34f1d4);}return _0x367527[_0x2284('0x21')]();};}function saveUpdates(_0x132b87,_0x9ba6fc){return function(_0x428231){if(_0x428231){return _0x428231[_0x2284('0x22')](_0x132b87)['then'](function(_0x3e8f59){return _0x3e8f59;});}return null;};}function removeEntity(_0x43b99d,_0x173303){return function(_0x3bf787){if(_0x3bf787){return _0x3bf787[_0x2284('0x23')]()['then'](function(){_0x43b99d[_0x2284('0x19')](0xcc)[_0x2284('0x1a')]();});}};}function handleEntityNotFound(_0x2ee84c,_0x26e87d){return function(_0x11aede){if(!_0x11aede){_0x2ee84c[_0x2284('0x18')](0x194);}return _0x11aede;};}function handleError(_0x1976c4,_0xe1e5e3){_0xe1e5e3=_0xe1e5e3||0x1f4;return function(_0x3aa78d){logger['error'](_0x3aa78d[_0x2284('0x24')]);if(_0x3aa78d[_0x2284('0x25')]){delete _0x3aa78d[_0x2284('0x25')];}_0x1976c4[_0x2284('0x19')](_0xe1e5e3)[_0x2284('0x26')](_0x3aa78d);};}exports[_0x2284('0x27')]=function(_0x4e0e0b,_0x16c5a5){var _0x31e2bc={},_0x515276={},_0x58afe8={'count':0x0,'rows':[]};var _0x3ade9c=_[_0x2284('0x28')](db[_0x2284('0x29')]['rawAttributes'],function(_0x2299f0){return{'name':_0x2299f0[_0x2284('0x2a')],'type':_0x2299f0[_0x2284('0x2b')][_0x2284('0x2c')]};});_0x515276[_0x2284('0x2d')]=_['map'](_0x3ade9c,_0x2284('0x25'));_0x515276[_0x2284('0x2e')]=_[_0x2284('0x2f')](_0x4e0e0b[_0x2284('0x2e')]);_0x515276[_0x2284('0x30')]=_[_0x2284('0x31')](_0x515276[_0x2284('0x2d')],_0x515276[_0x2284('0x2e')]);_0x31e2bc[_0x2284('0x32')]=_[_0x2284('0x31')](_0x515276['model'],qs[_0x2284('0x33')](_0x4e0e0b['query'][_0x2284('0x33')]));_0x31e2bc['attributes']=_0x31e2bc[_0x2284('0x32')][_0x2284('0x34')]?_0x31e2bc[_0x2284('0x32')]:_0x515276[_0x2284('0x2d')];if(!_0x4e0e0b[_0x2284('0x2e')][_0x2284('0x35')](_0x2284('0x36'))){_0x31e2bc[_0x2284('0x1e')]=qs[_0x2284('0x1e')](_0x4e0e0b[_0x2284('0x2e')][_0x2284('0x1e')]);_0x31e2bc[_0x2284('0x1c')]=qs[_0x2284('0x1c')](_0x4e0e0b[_0x2284('0x2e')]['offset']);}_0x31e2bc[_0x2284('0x37')]=qs[_0x2284('0x38')](_0x4e0e0b['query'][_0x2284('0x38')]);_0x31e2bc[_0x2284('0x39')]=qs['filters'](_[_0x2284('0x3a')](_0x4e0e0b[_0x2284('0x2e')],_0x515276[_0x2284('0x30')]),_0x3ade9c);if(_0x4e0e0b['query'][_0x2284('0x3b')]){_0x31e2bc[_0x2284('0x39')]=_[_0x2284('0x3c')](_0x31e2bc[_0x2284('0x39')],{'$or':_[_0x2284('0x28')](_0x3ade9c,function(_0x3601c1){if(_0x3601c1[_0x2284('0x2b')]!==_0x2284('0x3d')){var _0x47c4b4={};_0x47c4b4[_0x3601c1[_0x2284('0x25')]]={'$like':'%'+_0x4e0e0b[_0x2284('0x2e')]['filter']+'%'};return _0x47c4b4;}})});}_0x31e2bc=_[_0x2284('0x3c')]({},_0x31e2bc,_0x4e0e0b['options']);var _0x475bf9={'where':_0x31e2bc[_0x2284('0x39')]};return db[_0x2284('0x29')]['count'](_0x475bf9)[_0x2284('0x3e')](function(_0x542dd2){_0x58afe8[_0x2284('0x1f')]=_0x542dd2;if(_0x4e0e0b[_0x2284('0x2e')]['includeAll']){_0x31e2bc[_0x2284('0x3f')]=[{'all':!![]}];}return db['DeskField']['findAll'](_0x31e2bc);})[_0x2284('0x3e')](function(_0x40dec3){_0x58afe8[_0x2284('0x40')]=_0x40dec3;return _0x58afe8;})[_0x2284('0x3e')](respondWithFilteredResult(_0x16c5a5,_0x31e2bc))[_0x2284('0x41')](handleError(_0x16c5a5,null));};exports['show']=function(_0x554351,_0x4776d4){var _0x6c5e60={'raw':!![],'where':{'id':_0x554351[_0x2284('0x42')]['id']}},_0x22b420={};_0x22b420[_0x2284('0x2d')]=_[_0x2284('0x2f')](db[_0x2284('0x29')][_0x2284('0x43')]);_0x22b420['query']=_[_0x2284('0x2f')](_0x554351['query']);_0x22b420[_0x2284('0x30')]=_[_0x2284('0x31')](_0x22b420[_0x2284('0x2d')],_0x22b420[_0x2284('0x2e')]);_0x6c5e60[_0x2284('0x32')]=_[_0x2284('0x31')](_0x22b420['model'],qs[_0x2284('0x33')](_0x554351['query'][_0x2284('0x33')]));_0x6c5e60[_0x2284('0x32')]=_0x6c5e60[_0x2284('0x32')][_0x2284('0x34')]?_0x6c5e60['attributes']:_0x22b420[_0x2284('0x2d')];if(_0x554351[_0x2284('0x2e')][_0x2284('0x44')]){_0x6c5e60['include']=[{'all':!![]}];}_0x6c5e60=_[_0x2284('0x3c')]({},_0x6c5e60,_0x554351[_0x2284('0x45')]);return db['DeskField'][_0x2284('0x46')](_0x6c5e60)['then'](handleEntityNotFound(_0x4776d4,null))[_0x2284('0x3e')](respondWithResult(_0x4776d4,null))['catch'](handleError(_0x4776d4,null));};exports[_0x2284('0x47')]=function(_0x4b324b,_0x33ca34){return db[_0x2284('0x29')]['create'](_0x4b324b[_0x2284('0x48')],{})['then'](respondWithResult(_0x33ca34,0xc9))['catch'](handleError(_0x33ca34,null));};exports[_0x2284('0x22')]=function(_0x59fbb6,_0x5178cb){if(_0x59fbb6[_0x2284('0x48')]['id']){delete _0x59fbb6[_0x2284('0x48')]['id'];}return db[_0x2284('0x29')][_0x2284('0x46')]({'where':{'id':_0x59fbb6[_0x2284('0x42')]['id']}})['then'](handleEntityNotFound(_0x5178cb,null))[_0x2284('0x3e')](saveUpdates(_0x59fbb6[_0x2284('0x48')],null))[_0x2284('0x3e')](respondWithResult(_0x5178cb,null))[_0x2284('0x41')](handleError(_0x5178cb,null));};exports['destroy']=function(_0x24964e,_0x58bea3){return db[_0x2284('0x29')]['find']({'where':{'id':_0x24964e['params']['id']}})[_0x2284('0x3e')](handleEntityNotFound(_0x58bea3,null))['then'](removeEntity(_0x58bea3,null))['catch'](handleError(_0x58bea3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe656=['../../config/logger','api','request-promise','path','rimraf','../../config/environment','./intDeskField.attributes','exports','define','DeskField','int_desk_fields','idField','FieldId','lodash','util'];(function(_0x4017a7,_0xafd375){var _0x29ec57=function(_0x1728e2){while(--_0x1728e2){_0x4017a7['push'](_0x4017a7['shift']());}};_0x29ec57(++_0xafd375);}(_0xe656,0x184));var _0x6e65=function(_0x1d8f86,_0x412bc9){_0x1d8f86=_0x1d8f86-0x0;var _0x54de89=_0xe656[_0x1d8f86];return _0x54de89;};'use strict';var _=require(_0x6e65('0x0'));var util=require(_0x6e65('0x1'));var logger=require(_0x6e65('0x2'))(_0x6e65('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x6e65('0x4'));var fs=require('fs');var path=require(_0x6e65('0x5'));var rimraf=require(_0x6e65('0x6'));var config=require(_0x6e65('0x7'));var attributes=require(_0x6e65('0x8'));module[_0x6e65('0x9')]=function(_0x3aaf6b,_0x3bce39){return _0x3aaf6b[_0x6e65('0xa')](_0x6e65('0xb'),attributes,{'tableName':_0x6e65('0xc'),'paranoid':![],'indexes':[{'name':'desk_unique_index','fields':[_0x6e65('0xd'),_0x6e65('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x36dd=['./intDeskField.attributes','exports','define','int_desk_fields','desk_unique_index','FieldId','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x36e1e1,_0x57958d){var _0x4640d6=function(_0x2ace87){while(--_0x2ace87){_0x36e1e1['push'](_0x36e1e1['shift']());}};_0x4640d6(++_0x57958d);}(_0x36dd,0x18e));var _0xd36d=function(_0xdd82b4,_0x5cd8b8){_0xdd82b4=_0xdd82b4-0x0;var _0x549bb2=_0x36dd[_0xdd82b4];return _0x549bb2;};'use strict';var _=require('lodash');var util=require(_0xd36d('0x0'));var logger=require('../../config/logger')(_0xd36d('0x1'));var moment=require(_0xd36d('0x2'));var BPromise=require(_0xd36d('0x3'));var rp=require(_0xd36d('0x4'));var fs=require('fs');var path=require(_0xd36d('0x5'));var rimraf=require(_0xd36d('0x6'));var config=require(_0xd36d('0x7'));var attributes=require(_0xd36d('0x8'));module[_0xd36d('0x9')]=function(_0x2fb688,_0x1ca40c){return _0x2fb688[_0xd36d('0xa')]('DeskField',attributes,{'tableName':_0xd36d('0xb'),'paranoid':![],'indexes':[{'name':_0xd36d('0xc'),'fields':['idField',_0xd36d('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa426=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','request','info','DeskField,\x20%s,\x20%s','request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xa426,0x68));var _0x6a42=function(_0x2d2c16,_0x4e88b6){_0x2d2c16=_0x2d2c16-0x0;var _0x53f2fb=_0xa426[_0x2d2c16];return _0x53f2fb;};'use strict';var _=require(_0x6a42('0x0'));var util=require('util');var moment=require(_0x6a42('0x1'));var BPromise=require(_0x6a42('0x2'));var rs=require(_0x6a42('0x3'));var fs=require('fs');var Redis=require(_0x6a42('0x4'));var db=require(_0x6a42('0x5'))['db'];var utils=require(_0x6a42('0x6'));var logger=require(_0x6a42('0x7'))(_0x6a42('0x8'));var config=require(_0x6a42('0x9'));var jayson=require(_0x6a42('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x10a98f,_0x369ffa,_0x24845f){return new BPromise(function(_0x5932f,_0x4a9c94){return client[_0x6a42('0xb')](_0x10a98f,_0x24845f)['then'](function(_0x2249f8){logger[_0x6a42('0xc')](_0x6a42('0xd'),_0x369ffa,_0x6a42('0xe'));logger[_0x6a42('0xf')](_0x6a42('0x10'),_0x369ffa,_0x6a42('0xe'),JSON[_0x6a42('0x11')](_0x2249f8));if(_0x2249f8[_0x6a42('0x12')]){if(_0x2249f8[_0x6a42('0x12')][_0x6a42('0x13')]===0x1f4){logger[_0x6a42('0x12')](_0x6a42('0xd'),_0x369ffa,_0x2249f8['error'][_0x6a42('0x14')]);return _0x4a9c94(_0x2249f8[_0x6a42('0x12')]['message']);}logger['error'](_0x6a42('0xd'),_0x369ffa,_0x2249f8[_0x6a42('0x12')]['message']);return _0x5932f(_0x2249f8[_0x6a42('0x12')][_0x6a42('0x14')]);}else{logger[_0x6a42('0xc')](_0x6a42('0xd'),_0x369ffa,_0x6a42('0xe'));_0x5932f(_0x2249f8['result'][_0x6a42('0x14')]);}})[_0x6a42('0x15')](function(_0x39284c){logger[_0x6a42('0x12')]('DeskField,\x20%s,\x20%s',_0x369ffa,_0x39284c);_0x4a9c94(_0x39284c);});});}
\ No newline at end of file
+var _0x9a1d=['util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','DeskField,\x20%s,\x20%s','request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result'];(function(_0x192447,_0x3de82c){var _0x26074f=function(_0x216c9a){while(--_0x216c9a){_0x192447['push'](_0x192447['shift']());}};_0x26074f(++_0x3de82c);}(_0x9a1d,0x1a2));var _0xd9a1=function(_0x326ff9,_0x436c7f){_0x326ff9=_0x326ff9-0x0;var _0x23d315=_0x9a1d[_0x326ff9];return _0x23d315;};'use strict';var _=require('lodash');var util=require(_0xd9a1('0x0'));var moment=require(_0xd9a1('0x1'));var BPromise=require(_0xd9a1('0x2'));var rs=require(_0xd9a1('0x3'));var fs=require('fs');var Redis=require(_0xd9a1('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xd9a1('0x5'));var logger=require(_0xd9a1('0x6'))('rpc');var config=require(_0xd9a1('0x7'));var jayson=require(_0xd9a1('0x8'));var client=jayson[_0xd9a1('0x9')][_0xd9a1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4b4e96,_0x340414,_0x3aaf72){return new BPromise(function(_0x2d4354,_0x370386){return client[_0xd9a1('0xb')](_0x4b4e96,_0x3aaf72)['then'](function(_0x40061c){logger[_0xd9a1('0xc')](_0xd9a1('0xd'),_0x340414,_0xd9a1('0xe'));logger[_0xd9a1('0xf')](_0xd9a1('0x10'),_0x340414,_0xd9a1('0xe'),JSON[_0xd9a1('0x11')](_0x40061c));if(_0x40061c['error']){if(_0x40061c['error'][_0xd9a1('0x12')]===0x1f4){logger[_0xd9a1('0x13')]('DeskField,\x20%s,\x20%s',_0x340414,_0x40061c[_0xd9a1('0x13')]['message']);return _0x370386(_0x40061c['error'][_0xd9a1('0x14')]);}logger['error']('DeskField,\x20%s,\x20%s',_0x340414,_0x40061c[_0xd9a1('0x13')][_0xd9a1('0x14')]);return _0x2d4354(_0x40061c[_0xd9a1('0x13')][_0xd9a1('0x14')]);}else{logger[_0xd9a1('0xc')](_0xd9a1('0xd'),_0x340414,_0xd9a1('0xe'));_0x2d4354(_0x40061c[_0xd9a1('0x15')][_0xd9a1('0x14')]);}})['catch'](function(_0x27fb7a){logger[_0xd9a1('0x13')]('DeskField,\x20%s,\x20%s',_0x340414,_0x27fb7a);_0x370386(_0x27fb7a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf03=['destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','put'];(function(_0x585daf,_0x126b49){var _0x29d2e0=function(_0xef3424){while(--_0xef3424){_0x585daf['push'](_0x585daf['shift']());}};_0x29d2e0(++_0x126b49);}(_0xcf03,0x142));var _0x3cf0=function(_0x16aa34,_0x272c90){_0x16aa34=_0x16aa34-0x0;var _0xef4215=_0xcf03[_0x16aa34];return _0xef4215;};'use strict';var multer=require(_0x3cf0('0x0'));var util=require(_0x3cf0('0x1'));var path=require('path');var timeout=require(_0x3cf0('0x2'));var express=require(_0x3cf0('0x3'));var router=express[_0x3cf0('0x4')]();var fs_extra=require(_0x3cf0('0x5'));var auth=require(_0x3cf0('0x6'));var interaction=require(_0x3cf0('0x7'));var config=require('../../config/environment');var controller=require('./intDynamics365Account.controller');router[_0x3cf0('0x8')]('/',auth[_0x3cf0('0x9')](),controller[_0x3cf0('0xa')]);router[_0x3cf0('0x8')](_0x3cf0('0xb'),auth[_0x3cf0('0x9')](),controller[_0x3cf0('0xc')]);router[_0x3cf0('0x8')]('/:id/configurations',auth[_0x3cf0('0x9')](),controller[_0x3cf0('0xd')]);router[_0x3cf0('0x8')](_0x3cf0('0xe'),auth[_0x3cf0('0x9')](),controller[_0x3cf0('0xf')]);router[_0x3cf0('0x10')]('/',auth[_0x3cf0('0x9')](),controller['create']);router[_0x3cf0('0x10')]('/:id/configurations',auth['isAuthenticated'](),controller['addConfiguration']);router[_0x3cf0('0x11')](_0x3cf0('0xb'),auth[_0x3cf0('0x9')](),controller['update']);router['delete'](_0x3cf0('0xb'),auth[_0x3cf0('0x9')](),controller[_0x3cf0('0x12')]);module[_0x3cf0('0x13')]=router;
\ No newline at end of file
+var _0x9f2e=['update','delete','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','./intDynamics365Account.controller','get','isAuthenticated','show','getConfigurations','getFields','post','create','/:id/configurations','addConfiguration','/:id'];(function(_0x4afe85,_0x289392){var _0x2df80e=function(_0x132d53){while(--_0x132d53){_0x4afe85['push'](_0x4afe85['shift']());}};_0x2df80e(++_0x289392);}(_0x9f2e,0x82));var _0xe9f2=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x9f2e[_0x1d1779];return _0x2377e9;};'use strict';var multer=require(_0xe9f2('0x0'));var util=require(_0xe9f2('0x1'));var path=require(_0xe9f2('0x2'));var timeout=require('connect-timeout');var express=require(_0xe9f2('0x3'));var router=express['Router']();var fs_extra=require(_0xe9f2('0x4'));var auth=require(_0xe9f2('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xe9f2('0x6'));router[_0xe9f2('0x7')]('/',auth[_0xe9f2('0x8')](),controller['index']);router[_0xe9f2('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xe9f2('0x9')]);router[_0xe9f2('0x7')]('/:id/configurations',auth[_0xe9f2('0x8')](),controller[_0xe9f2('0xa')]);router[_0xe9f2('0x7')]('/:id/fields',auth[_0xe9f2('0x8')](),controller[_0xe9f2('0xb')]);router[_0xe9f2('0xc')]('/',auth[_0xe9f2('0x8')](),controller[_0xe9f2('0xd')]);router[_0xe9f2('0xc')](_0xe9f2('0xe'),auth[_0xe9f2('0x8')](),controller[_0xe9f2('0xf')]);router['put'](_0xe9f2('0x10'),auth[_0xe9f2('0x8')](),controller[_0xe9f2('0x11')]);router[_0xe9f2('0x12')](_0xe9f2('0x10'),auth[_0xe9f2('0x8')](),controller[_0xe9f2('0x13')]);module[_0xe9f2('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x802a=['STRING','sequelize','exports'];(function(_0x379e46,_0x17b2e2){var _0x5ba269=function(_0x406b7c){while(--_0x406b7c){_0x379e46['push'](_0x379e46['shift']());}};_0x5ba269(++_0x17b2e2);}(_0x802a,0xe5));var _0xa802=function(_0x26f702,_0x3919bf){_0x26f702=_0x26f702-0x0;var _0x11417d=_0x802a[_0x26f702];return _0x11417d;};'use strict';var Sequelize=require(_0xa802('0x0'));module[_0xa802('0x1')]={'name':{'type':Sequelize[_0xa802('0x2')]},'username':{'type':Sequelize[_0xa802('0x2')]},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0xa802('0x2')]},'tenantId':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize[_0xa802('0x2')]},'serverUrl':{'type':Sequelize[_0xa802('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xa802('0x2')]}};
\ No newline at end of file
+var _0x7510=['STRING','exports'];(function(_0x4fffac,_0x33b868){var _0x221f32=function(_0x211e78){while(--_0x211e78){_0x4fffac['push'](_0x4fffac['shift']());}};_0x221f32(++_0x33b868);}(_0x7510,0xa9));var _0x0751=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x7510[_0x3947c9];return _0x2e7871;};'use strict';var Sequelize=require('sequelize');module[_0x0751('0x0')]={'name':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x0751('0x1')]},'password':{'type':Sequelize[_0x0751('0x1')]},'remoteUri':{'type':Sequelize[_0x0751('0x1')]},'tenantId':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0x0751('0x1')]},'clientSecret':{'type':Sequelize[_0x0751('0x1')]},'serverUrl':{'type':Sequelize[_0x0751('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4876=['show','keys','options','find','create','body','params','getConfigurations','findOne','Dynamics365Configuration','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','Dynamics365Field','ticketType','incident','Incident','PhoneCall','title','customerid','caseorigincode','subject','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','accountidyominame','billedserviceunits','contractdetailidname','contractidname','createdbyexternalpartyyominame','createdbyname','createdon','createdonbehalfbyname','createdonbehalfbyyominame','customeridname','customeridyominame','entitlementidname','entityimage_url','exchangerate','firstresponsebykpiidname','importsequencenumber','influencescore','kbarticleidname','masteridname','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyyominame','modifiedon','modifiedonbehalfbyname','modifiedonbehalfbyyominame','msdyn_incidenttypename','msdyn_iotalertname','numberofchildincidents','overriddencreatedon','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','prioritycodename','productidname','productserialnumber','resolveby','responseby','responsiblecontactidyominame','sentimentvalue','slaname','socialprofileidname','statuscode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','traversedpath','versionnumber','username','password','remoteUri','tenantId','clientSecret','substring','format','https://login.microsoftonline.com/','/oauth2/token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','MetadataId',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','4.0','Attributes','remove','includes','LogicalName','@odata.type','lastIndexOf','PicklistAttributeMetadata','push','isNil','forEach','StringAttributeMetadata','DoubleAttributeMetadata','IntegerAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','concat','statusCode','EntityDefinitions(',')/Attributes(',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','OptionSet','Options','Label','UserLocalizedLabel','Value','DisplayName',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','TrueOption','false',')/Microsoft.Dynamics.CRM.','?$select=DisplayName,LogicalName','zip-dir','moment','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','limit','count','status','set','Content-Range','json','apply','reject','save','update','destroy','then','error','name','send','Dynamics365Account','rawAttributes','fieldName','type','key','model','map','query','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filters','filter','merge','includeAll','include','findAll','rows','catch'];(function(_0x4b6f67,_0x1e6ba6){var _0x10008c=function(_0x303c81){while(--_0x303c81){_0x4b6f67['push'](_0x4b6f67['shift']());}};_0x10008c(++_0x1e6ba6);}(_0x4876,0x84));var _0x6487=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4876[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6487('0x0'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x6487('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x6487('0x2'));var util=require(_0x6487('0x3'));var path=require(_0x6487('0x4'));var sox=require(_0x6487('0x5'));var csv=require('to-csv');var ejs=require(_0x6487('0x6'));var fs=require('fs');var fs_extra=require(_0x6487('0x7'));var _=require('lodash');var squel=require(_0x6487('0x8'));var crypto=require(_0x6487('0x9'));var jsforce=require(_0x6487('0xa'));var deskjs=require(_0x6487('0xb'));var toCsv=require(_0x6487('0xc'));var querystring=require(_0x6487('0xd'));var Papa=require(_0x6487('0xe'));var Redis=require(_0x6487('0xf'));var authService=require(_0x6487('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x6487('0x11'));var hardwareService=require(_0x6487('0x12'));var logger=require(_0x6487('0x13'))(_0x6487('0x14'));var utils=require(_0x6487('0x15'));var config=require(_0x6487('0x16'));var licenseUtil=require(_0x6487('0x17'));var db=require(_0x6487('0x18'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x30227d,_0x22596a){_0x22596a=_0x22596a||0xcc;return function(_0x3ffa96){if(_0x3ffa96){return _0x30227d[_0x6487('0x19')](_0x22596a);}return _0x30227d['status'](_0x22596a)[_0x6487('0x1a')]();};}function respondWithResult(_0x10f2e1,_0x1ac263){_0x1ac263=_0x1ac263||0xc8;return function(_0x24af11){if(_0x24af11){return _0x10f2e1['status'](_0x1ac263)['json'](_0x24af11);}};}function respondWithFilteredResult(_0x1dde46,_0x552f2d){return function(_0x2fdfc3){if(_0x2fdfc3){var _0x583f04=typeof _0x552f2d[_0x6487('0x1b')]===_0x6487('0x1c')&&typeof _0x552f2d[_0x6487('0x1d')]===_0x6487('0x1c');var _0x18c6cf=_0x2fdfc3['count'];var _0x4cedf9=_0x583f04?0x0:_0x552f2d['offset'];var _0x38a585=_0x583f04?_0x2fdfc3[_0x6487('0x1e')]:_0x552f2d[_0x6487('0x1b')]+_0x552f2d[_0x6487('0x1d')];var _0x30abdc;if(_0x38a585>=_0x18c6cf){_0x38a585=_0x18c6cf;_0x30abdc=0xc8;}else{_0x30abdc=0xce;}_0x1dde46[_0x6487('0x1f')](_0x30abdc);return _0x1dde46[_0x6487('0x20')](_0x6487('0x21'),_0x4cedf9+'-'+_0x38a585+'/'+_0x18c6cf)[_0x6487('0x22')](_0x2fdfc3);}return null;};}function patchUpdates(_0x30ed2e){return function(_0xee261d){try{jsonpatch[_0x6487('0x23')](_0xee261d,_0x30ed2e,!![]);}catch(_0x3efa5e){return BPromise[_0x6487('0x24')](_0x3efa5e);}return _0xee261d[_0x6487('0x25')]();};}function saveUpdates(_0x21050d,_0x3affe7){return function(_0x9fcd3e){if(_0x9fcd3e){return _0x9fcd3e[_0x6487('0x26')](_0x21050d)['then'](function(_0x58d269){return _0x58d269;});}return null;};}function removeEntity(_0x234485,_0x4e8ec8){return function(_0x57a2c4){if(_0x57a2c4){return _0x57a2c4[_0x6487('0x27')]()[_0x6487('0x28')](function(){_0x234485['status'](0xcc)[_0x6487('0x1a')]();});}};}function handleEntityNotFound(_0x38ac56,_0x2f4190){return function(_0x3afdc6){if(!_0x3afdc6){_0x38ac56[_0x6487('0x19')](0x194);}return _0x3afdc6;};}function handleError(_0x5439f7,_0x44bb48){_0x44bb48=_0x44bb48||0x1f4;return function(_0x5ab526){logger[_0x6487('0x29')](_0x5ab526['stack']);if(_0x5ab526['name']){delete _0x5ab526[_0x6487('0x2a')];}_0x5439f7[_0x6487('0x1f')](_0x44bb48)[_0x6487('0x2b')](_0x5ab526);};}exports['index']=function(_0x39581d,_0x3c4411){var _0x33085b={},_0x63ddc7={},_0x35b089={'count':0x0,'rows':[]};var _0x8b42e5=_['map'](db[_0x6487('0x2c')][_0x6487('0x2d')],function(_0x5df993){return{'name':_0x5df993[_0x6487('0x2e')],'type':_0x5df993[_0x6487('0x2f')][_0x6487('0x30')]};});_0x63ddc7[_0x6487('0x31')]=_[_0x6487('0x32')](_0x8b42e5,_0x6487('0x2a'));_0x63ddc7[_0x6487('0x33')]=_['keys'](_0x39581d[_0x6487('0x33')]);_0x63ddc7['filters']=_[_0x6487('0x34')](_0x63ddc7['model'],_0x63ddc7['query']);_0x33085b['attributes']=_['intersection'](_0x63ddc7[_0x6487('0x31')],qs[_0x6487('0x35')](_0x39581d[_0x6487('0x33')]['fields']));_0x33085b[_0x6487('0x36')]=_0x33085b['attributes'][_0x6487('0x37')]?_0x33085b[_0x6487('0x36')]:_0x63ddc7[_0x6487('0x31')];if(!_0x39581d[_0x6487('0x33')][_0x6487('0x38')]('nolimit')){_0x33085b[_0x6487('0x1d')]=qs['limit'](_0x39581d[_0x6487('0x33')][_0x6487('0x1d')]);_0x33085b[_0x6487('0x1b')]=qs[_0x6487('0x1b')](_0x39581d['query'][_0x6487('0x1b')]);}_0x33085b[_0x6487('0x39')]=qs[_0x6487('0x3a')](_0x39581d['query']['sort']);_0x33085b[_0x6487('0x3b')]=qs['filters'](_[_0x6487('0x3c')](_0x39581d[_0x6487('0x33')],_0x63ddc7[_0x6487('0x3d')]),_0x8b42e5);if(_0x39581d['query'][_0x6487('0x3e')]){_0x33085b[_0x6487('0x3b')]=_[_0x6487('0x3f')](_0x33085b[_0x6487('0x3b')],{'$or':_[_0x6487('0x32')](_0x8b42e5,function(_0x1348c2){if(_0x1348c2[_0x6487('0x2f')]!=='VIRTUAL'){var _0xa2a8dc={};_0xa2a8dc[_0x1348c2[_0x6487('0x2a')]]={'$like':'%'+_0x39581d[_0x6487('0x33')]['filter']+'%'};return _0xa2a8dc;}})});}_0x33085b=_[_0x6487('0x3f')]({},_0x33085b,_0x39581d['options']);var _0x3671f6={'where':_0x33085b['where']};return db[_0x6487('0x2c')]['count'](_0x3671f6)[_0x6487('0x28')](function(_0x33a783){_0x35b089[_0x6487('0x1e')]=_0x33a783;if(_0x39581d[_0x6487('0x33')][_0x6487('0x40')]){_0x33085b[_0x6487('0x41')]=[{'all':!![]}];}return db[_0x6487('0x2c')][_0x6487('0x42')](_0x33085b);})['then'](function(_0x3e6af0){_0x35b089[_0x6487('0x43')]=_0x3e6af0;return _0x35b089;})[_0x6487('0x28')](respondWithFilteredResult(_0x3c4411,_0x33085b))[_0x6487('0x44')](handleError(_0x3c4411,null));};exports[_0x6487('0x45')]=function(_0x12f7f5,_0x594b42){var _0x56452e={'raw':![],'where':{'id':_0x12f7f5['params']['id']}},_0x404417={};_0x404417[_0x6487('0x31')]=_[_0x6487('0x46')](db[_0x6487('0x2c')][_0x6487('0x2d')]);_0x404417[_0x6487('0x33')]=_[_0x6487('0x46')](_0x12f7f5[_0x6487('0x33')]);_0x404417[_0x6487('0x3d')]=_[_0x6487('0x34')](_0x404417['model'],_0x404417[_0x6487('0x33')]);_0x56452e[_0x6487('0x36')]=_[_0x6487('0x34')](_0x404417['model'],qs['fields'](_0x12f7f5[_0x6487('0x33')][_0x6487('0x35')]));_0x56452e[_0x6487('0x36')]=_0x56452e[_0x6487('0x36')][_0x6487('0x37')]?_0x56452e[_0x6487('0x36')]:_0x404417['model'];if(_0x12f7f5[_0x6487('0x33')]['includeAll']){_0x56452e[_0x6487('0x41')]=[{'all':!![]}];}_0x56452e=_[_0x6487('0x3f')]({},_0x56452e,_0x12f7f5[_0x6487('0x47')]);return db[_0x6487('0x2c')][_0x6487('0x48')](_0x56452e)[_0x6487('0x28')](handleEntityNotFound(_0x594b42,null))[_0x6487('0x28')](respondWithResult(_0x594b42,null))[_0x6487('0x44')](handleError(_0x594b42,null));};exports[_0x6487('0x49')]=function(_0x1e8ae7,_0x12e864){return db[_0x6487('0x2c')]['create'](_0x1e8ae7[_0x6487('0x4a')],{})['then'](respondWithResult(_0x12e864,0xc9))[_0x6487('0x44')](handleError(_0x12e864,null));};exports[_0x6487('0x26')]=function(_0x46c3dd,_0x41cc43){if(_0x46c3dd[_0x6487('0x4a')]['id']){delete _0x46c3dd[_0x6487('0x4a')]['id'];}return db[_0x6487('0x2c')][_0x6487('0x48')]({'where':{'id':_0x46c3dd[_0x6487('0x4b')]['id']}})[_0x6487('0x28')](handleEntityNotFound(_0x41cc43,null))[_0x6487('0x28')](saveUpdates(_0x46c3dd[_0x6487('0x4a')],null))[_0x6487('0x28')](respondWithResult(_0x41cc43,null))[_0x6487('0x44')](handleError(_0x41cc43,null));};exports[_0x6487('0x27')]=function(_0x2dde3c,_0x298284){return db[_0x6487('0x2c')][_0x6487('0x48')]({'where':{'id':_0x2dde3c['params']['id']}})[_0x6487('0x28')](handleEntityNotFound(_0x298284,null))[_0x6487('0x28')](removeEntity(_0x298284,null))['catch'](handleError(_0x298284,null));};exports[_0x6487('0x4c')]=function(_0x38a94b,_0x128700,_0x4287b9){var _0x5c11fb={};var _0x3506fc={};var _0x430230;var _0x45aa18;return db[_0x6487('0x2c')][_0x6487('0x4d')]({'where':{'id':_0x38a94b[_0x6487('0x4b')]['id']}})[_0x6487('0x28')](handleEntityNotFound(_0x128700,null))['then'](function(_0x42c3d2){if(_0x42c3d2){_0x430230=_0x42c3d2;_0x3506fc[_0x6487('0x31')]=_[_0x6487('0x46')](db[_0x6487('0x4e')][_0x6487('0x2d')]);_0x3506fc[_0x6487('0x33')]=_[_0x6487('0x46')](_0x38a94b[_0x6487('0x33')]);_0x3506fc[_0x6487('0x3d')]=_[_0x6487('0x34')](_0x3506fc[_0x6487('0x31')],_0x3506fc['query']);_0x5c11fb[_0x6487('0x36')]=_['intersection'](_0x3506fc[_0x6487('0x31')],qs[_0x6487('0x35')](_0x38a94b[_0x6487('0x33')][_0x6487('0x35')]));_0x5c11fb[_0x6487('0x36')]=_0x5c11fb[_0x6487('0x36')][_0x6487('0x37')]?_0x5c11fb[_0x6487('0x36')]:_0x3506fc['model'];_0x5c11fb['order']=qs[_0x6487('0x3a')](_0x38a94b[_0x6487('0x33')]['sort']);_0x5c11fb[_0x6487('0x3b')]=qs[_0x6487('0x3d')](_[_0x6487('0x3c')](_0x38a94b[_0x6487('0x33')],_0x3506fc[_0x6487('0x3d')]));if(_0x38a94b[_0x6487('0x33')][_0x6487('0x3e')]){_0x5c11fb['where']=_['merge'](_0x5c11fb['where'],{'$or':_['map'](_0x5c11fb['attributes'],function(_0x3b7a9a){var _0x342bdb={};_0x342bdb[_0x3b7a9a]={'$like':'%'+_0x38a94b[_0x6487('0x33')][_0x6487('0x3e')]+'%'};return _0x342bdb;})});}_0x5c11fb=_[_0x6487('0x3f')]({},_0x5c11fb,_0x38a94b[_0x6487('0x47')]);return _0x430230[_0x6487('0x4c')](_0x5c11fb);}})[_0x6487('0x28')](function(_0x4c9799){if(_0x4c9799){_0x45aa18=_0x4c9799['length'];if(!_0x38a94b[_0x6487('0x33')][_0x6487('0x38')](_0x6487('0x4f'))){_0x5c11fb[_0x6487('0x1d')]=qs[_0x6487('0x1d')](_0x38a94b[_0x6487('0x33')][_0x6487('0x1d')]);_0x5c11fb[_0x6487('0x1b')]=qs['offset'](_0x38a94b[_0x6487('0x33')][_0x6487('0x1b')]);}return _0x430230[_0x6487('0x4c')](_0x5c11fb);}})[_0x6487('0x28')](function(_0x5dffeb){if(_0x5dffeb){return _0x5dffeb?{'count':_0x45aa18,'rows':_0x5dffeb}:null;}})[_0x6487('0x28')](respondWithResult(_0x128700,null))[_0x6487('0x44')](handleError(_0x128700,null));};exports[_0x6487('0x50')]=function(_0x4ad9f4,_0x492284,_0x324c18){if(_0x4ad9f4[_0x6487('0x4a')]['id']){delete _0x4ad9f4[_0x6487('0x4a')]['id'];}return db[_0x6487('0x2c')]['findOne']({'where':{'id':_0x4ad9f4['params']['id']}})[_0x6487('0x28')](handleEntityNotFound(_0x492284,null))[_0x6487('0x28')](function(_0x4691e4){if(_0x4691e4){_0x4ad9f4[_0x6487('0x4a')][_0x6487('0x51')]=_0x4691e4['id'];_0x4ad9f4[_0x6487('0x4a')][_0x6487('0x52')]=integrations[_0x6487('0x53')](_0x4ad9f4[_0x6487('0x4a')][_0x6487('0x54')],_0x4ad9f4['body'][_0x6487('0x2f')]);_0x4ad9f4[_0x6487('0x4a')][_0x6487('0x55')]=integrations[_0x6487('0x56')](_0x4ad9f4[_0x6487('0x4a')][_0x6487('0x54')],_0x4ad9f4[_0x6487('0x4a')][_0x6487('0x2f')]);return db['Dynamics365Configuration'][_0x6487('0x49')](_0x4ad9f4['body'],{'include':[{'model':db[_0x6487('0x57')],'as':_0x6487('0x52')},{'model':db[_0x6487('0x57')],'as':_0x6487('0x55')}]});}return null;})[_0x6487('0x28')](respondWithResult(_0x492284,null))['catch'](handleError(_0x492284,null));};exports['getFields']=function(_0x3882c8,_0x79acd2,_0x4743d1){var _0x43168f=_0x3882c8[_0x6487('0x33')][_0x6487('0x58')];var _0x550af9=_0x43168f===_0x6487('0x59')?_0x6487('0x5a'):_0x6487('0x5b');var _0x2db80a='';var _0x122c06='';var _0x2bedfe='';var _0x168a70='';var _0x2bcbbb='';var _0x49fe2c='';var _0x374135='';var _0xc5c718='';var _0x10d931=[_0x6487('0x5c'),'description',_0x6487('0x5d'),'ownerid',_0x6487('0x5e'),_0x6487('0x5f'),_0x6487('0x60'),_0x6487('0x61'),_0x6487('0x62'),_0x6487('0x63')];var _0x1fa737=[_0x6487('0x64'),_0x6487('0x65'),'actualserviceunits',_0x6487('0x66'),'contactidname','contactidyominame',_0x6487('0x67'),_0x6487('0x68'),'createdbyexternalpartyname',_0x6487('0x69'),_0x6487('0x6a'),'createdbyyominame',_0x6487('0x6b'),_0x6487('0x6c'),_0x6487('0x6d'),_0x6487('0x6e'),'customeridtype',_0x6487('0x6f'),'emailaddress',_0x6487('0x70'),'entityimage_timestamp',_0x6487('0x71'),'escalatedon',_0x6487('0x72'),_0x6487('0x73'),'followupby',_0x6487('0x74'),_0x6487('0x75'),_0x6487('0x76'),'lastonholdtime',_0x6487('0x77'),_0x6487('0x78'),_0x6487('0x79'),'modifiedbyname',_0x6487('0x7a'),_0x6487('0x7b'),_0x6487('0x7c'),_0x6487('0x7d'),_0x6487('0x7e'),_0x6487('0x7f'),_0x6487('0x80'),'onholdtime',_0x6487('0x81'),'owneridname',_0x6487('0x82'),_0x6487('0x83'),_0x6487('0x84'),_0x6487('0x85'),_0x6487('0x86'),_0x6487('0x87'),_0x6487('0x88'),_0x6487('0x89'),_0x6487('0x8a'),'resolvebykpiidname',_0x6487('0x8b'),'responsiblecontactidname',_0x6487('0x8c'),_0x6487('0x8d'),'slainvokedidname',_0x6487('0x8e'),_0x6487('0x8f'),'statecode',_0x6487('0x90'),_0x6487('0x91'),_0x6487('0x92'),_0x6487('0x93'),_0x6487('0x94'),_0x6487('0x95'),'utcconversiontimezonecode',_0x6487('0x96')];var _0x41853b=_0x10d931['concat'](_0x1fa737);return db['Dynamics365Account']['findOne']({'where':{'id':_0x3882c8['params']['id']},'attributes':['id',_0x6487('0x97'),_0x6487('0x98'),_0x6487('0x99'),_0x6487('0x9a'),'clientId',_0x6487('0x9b')]})[_0x6487('0x28')](handleEntityNotFound(_0x79acd2,null))['then'](function(_0x3d2234){if(_0x3d2234){_0xc5c718=_0x3d2234['remoteUri'];var _0x5118f0=_0xc5c718['slice'](-0x1);if(_0x5118f0==='/'){_0xc5c718=_0xc5c718[_0x6487('0x9c')](0x0,_0xc5c718['lastIndexOf'](_0x5118f0));}_0x374135=util[_0x6487('0x9d')]('%s/api/data/v9.0/',_0xc5c718);var _0x136761={'method':'POST','uri':_0x6487('0x9e')+_0x3d2234[_0x6487('0x9a')]+_0x6487('0x9f'),'form':{'client_id':_0x3d2234['clientId'],'resource':_0xc5c718,'username':_0x3d2234[_0x6487('0x97')],'password':_0x3d2234[_0x6487('0x98')],'grant_type':'password','client_secret':_0x3d2234[_0x6487('0x9b')]},'json':!![]};return rp(_0x136761);}})['then'](function(_0xc33b6d){_0x49fe2c=_0xc33b6d['access_token'];var _0x2140b7={'method':_0x6487('0xa0'),'uri':encodeURI(_0x374135+_0x6487('0xa1')+_0x550af9+'\x27'),'headers':{'Authorization':_0x6487('0xa2')+_0x49fe2c,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x2140b7);})[_0x6487('0x28')](function(_0xc81be4){var _0x3b4f3a=_0xc81be4['value'][0x0];var _0x5a2a88=_0x3b4f3a[_0x6487('0xa3')];var _0x1f558b={'method':_0x6487('0xa0'),'uri':_0x374135+'EntityDefinitions('+_0x5a2a88+_0x6487('0xa4'),'headers':{'Authorization':_0x6487('0xa2')+_0x49fe2c,'If-None-Match':null,'OData-Version':_0x6487('0xa5')},'json':!![]};return rp(_0x1f558b);})['then'](function(_0xf58737){_0x2db80a=_0xf58737;_0x122c06=_0x2db80a[_0x6487('0xa6')];_0x122c06=_[_0x6487('0xa7')](_0x122c06,function(_0x3d1cea){return!_0x41853b[_0x6487('0xa8')](_0x3d1cea[_0x6487('0xa9')]);});var _0x36ee9c=[];var _0x3b70dc=[];_0x122c06['forEach'](function(_0x14c2ee){if(_0x14c2ee['@odata.type']){var _0x323a0d=_0x14c2ee[_0x6487('0xaa')][_0x6487('0x9c')](_0x14c2ee['@odata.type'][_0x6487('0xab')]('.')+0x1);if(_0x323a0d===_0x6487('0xac')){_0x36ee9c[_0x6487('0xad')](getSelectList(_0x374135,_0x43168f,_0x3b70dc,_0x2db80a[_0x6487('0xa3')],_0x14c2ee['MetadataId'],_0x49fe2c));}}});return Promise['all'](_0x36ee9c);})['then'](function(_0x463cce){_0x2bedfe=_0x463cce[0x0];var _0x68b920=[];var _0x5c0b55=[];_0x122c06['forEach'](function(_0x34de13){if(!_[_0x6487('0xae')](_0x34de13[_0x6487('0xaa')])){var _0x41a97b=_0x34de13['@odata.type'][_0x6487('0x9c')](_0x34de13['@odata.type'][_0x6487('0xab')]('.')+0x1);if(_0x41a97b==='BooleanAttributeMetadata'){_0x68b920[_0x6487('0xad')](getBooleanList(_0x374135,_0x43168f,_0x5c0b55,_0x2db80a['MetadataId'],_0x34de13[_0x6487('0xa3')],_0x49fe2c));}}});return Promise['all'](_0x68b920);})['then'](function(_0x32b4e2){_0x168a70=_0x32b4e2[0x0];var _0x2c9b78=[];var _0x10b3a8=[];_0x122c06[_0x6487('0xaf')](function(_0x246c12){if(_0x246c12[_0x6487('0xaa')]){var _0x3b69bc=_0x246c12[_0x6487('0xaa')][_0x6487('0x9c')](_0x246c12[_0x6487('0xaa')]['lastIndexOf']('.')+0x1);if(_0x3b69bc===_0x6487('0xb0')||_0x3b69bc===_0x6487('0xb1')||_0x3b69bc==='BigIntAttributeMetadata'||_0x3b69bc===_0x6487('0xb2')||_0x3b69bc==='MemoAttributeMetadata'||_0x3b69bc===_0x6487('0xb3')||_0x3b69bc===_0x6487('0xb4')||_0x3b69bc===_0x6487('0xb5')||_0x3b69bc===_0x6487('0xb6')||_0x3b69bc===_0x6487('0xb7')){_0x2c9b78[_0x6487('0xad')](getInputList(_0x374135,_0x43168f,_0x3b69bc,_0x10b3a8,_0x2db80a[_0x6487('0xa3')],_0x246c12[_0x6487('0xa3')],_0x49fe2c));}}});return Promise['all'](_0x2c9b78);})[_0x6487('0x28')](function(_0xfa575f){_0x2bcbbb=_0xfa575f[0x0];var _0xa95160=_0x2bedfe[_0x6487('0xb8')](_0x168a70)[_0x6487('0xb8')](_0x2bcbbb);var _0x1d6a34={'count':_0xa95160[_0x6487('0x37')],'rows':_0xa95160};return _0x1d6a34;})['then'](respondWithResult(_0x79acd2,null))[_0x6487('0x44')](function(_0x22c1f6){var _0x565e78=_0x3882c8['query']['test']?0x1f4:_0x22c1f6[_0x6487('0xb9')]||0x1f4;logger['error'](_0x22c1f6['stack']);delete _0x22c1f6[_0x6487('0x2a')];if(_0x565e78===0x191){_0x565e78=0x190;}_0x79acd2['status'](_0x565e78)[_0x6487('0x2b')](_0x3882c8[_0x6487('0x33')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x22c1f6[_0x6487('0xb9')]}:_0x22c1f6);});};function getSelectList(_0x996d9d,_0xdfe7d8,_0x120986,_0x59ae8c,_0x2f9729,_0x157680){var _0x57f10f={'method':'GET','uri':_0x996d9d+_0x6487('0xba')+_0x59ae8c+_0x6487('0xbb')+_0x2f9729+_0x6487('0xbc')+_0x6487('0xbd'),'headers':{'Authorization':'Bearer\x20'+_0x157680,'If-None-Match':null,'OData-Version':_0x6487('0xa5')},'json':!![]};return rp(_0x57f10f)[_0x6487('0x28')](function(_0x323f9f){var _0x483a49=[];var _0x29ba21=_0x323f9f[_0x6487('0xbe')][_0x6487('0xbf')];_0x29ba21[_0x6487('0xaf')](function(_0x1037df){_0x483a49[_0x6487('0xad')]({'name':_0x1037df[_0x6487('0xc0')][_0x6487('0xc1')][_0x6487('0xc0')],'value':String(_0x1037df[_0x6487('0xc2')])});});var _0x13f304={'id':_0xdfe7d8+'_'+_0x323f9f[_0x6487('0xa9')],'name':_0x323f9f[_0x6487('0xc3')]['UserLocalizedLabel'][_0x6487('0xc0')],'custom':![],'options':_0x483a49};_0x120986['push'](_0x13f304);return _0x120986;});}function getBooleanList(_0x1c9b20,_0x440661,_0x30897d,_0x470c1a,_0x30058e,_0x509d84){var _0x36930e={'method':_0x6487('0xa0'),'uri':_0x1c9b20+'EntityDefinitions('+_0x470c1a+_0x6487('0xbb')+_0x30058e+_0x6487('0xc4'),'headers':{'Authorization':_0x6487('0xa2')+_0x509d84,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x36930e)[_0x6487('0x28')](function(_0x3bb2b4){var _0x588cd2=[];_0x588cd2['push']({'name':_0x3bb2b4[_0x6487('0xbe')][_0x6487('0xc5')][_0x6487('0xc0')]['UserLocalizedLabel'][_0x6487('0xc0')],'value':'true'},{'name':_0x3bb2b4[_0x6487('0xbe')]['FalseOption'][_0x6487('0xc0')][_0x6487('0xc1')][_0x6487('0xc0')],'value':_0x6487('0xc6')});var _0x40b601={'id':_0x440661+'_'+_0x3bb2b4[_0x6487('0xa9')],'name':_0x3bb2b4['DisplayName']['UserLocalizedLabel'][_0x6487('0xc0')],'custom':![],'options':_0x588cd2};_0x30897d['push'](_0x40b601);return _0x30897d;});}function getInputList(_0x3b4db0,_0x43094e,_0x4bc88e,_0x356636,_0x150599,_0x42465d,_0x496669){var _0x3dd4b3={'method':_0x6487('0xa0'),'uri':_0x3b4db0+'EntityDefinitions('+_0x150599+_0x6487('0xbb')+_0x42465d+_0x6487('0xc7')+_0x4bc88e+_0x6487('0xc8'),'headers':{'Authorization':_0x6487('0xa2')+_0x496669,'If-None-Match':null,'OData-Version':_0x6487('0xa5')},'json':!![]};return rp(_0x3dd4b3)[_0x6487('0x28')](function(_0x58a313){var _0x842aee={'id':_0x43094e+'_'+_0x58a313['LogicalName'],'name':_0x58a313[_0x6487('0xc3')][_0x6487('0xc1')]?_0x58a313[_0x6487('0xc3')][_0x6487('0xc1')]['Label']:_0x58a313[_0x6487('0xa9')],'custom':![],'options':[]};_0x356636[_0x6487('0xad')](_0x842aee);return _0x356636;});}
\ No newline at end of file
+var _0x046b=['Descriptions','getDescriptions','Dynamics365Field','Subjects','getFields','ticketType','incident','PhoneCall','title','description','customerid','caseorigincode','subject','phonenumber','regardingobjectid','phonecall_activity_parties','accountidname','actualserviceunits','billedserviceunits','contactidname','contactidyominame','createdbyexternalpartyname','createdbyexternalpartyyominame','createdbyname','createdbyyominame','createdon','createdonbehalfbyname','createdonbehalfbyyominame','customeridname','emailaddress','entitlementidname','entityimage_timestamp','escalatedon','followupby','influencescore','kbarticleidname','lastonholdtime','masteridname','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyname','modifiedbyyominame','modifiedon','modifiedonbehalfbyname','modifiedonbehalfbyyominame','msdyn_iotalertname','onholdtime','overriddencreatedon','owneridname','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','resolveby','resolvebykpiidname','responseby','responsiblecontactidyominame','slaname','socialprofileidname','statuscode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','traversedpath','concat','username','password','remoteUri','tenantId','clientId','clientSecret','slice','lastIndexOf','format','POST','/oauth2/token','access_token','GET','Bearer\x20','4.0','value','MetadataId','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','Attributes','remove','includes','LogicalName','forEach','@odata.type','substring','all','isNil','BooleanAttributeMetadata','StringAttributeMetadata','BigIntAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','test','statusCode','Wrong\x20credentials',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','OptionSet','Options','Label','UserLocalizedLabel','Value','push',')/Attributes(',')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','TrueOption','true','FalseOption','false',')/Microsoft.Dynamics.CRM.','?$select=DisplayName,LogicalName','DisplayName','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','sendStatus','error','stack','name','send','index','Dynamics365Account','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','filter','options','includeAll','include','findAll','rows','show','params','catch','create','body','find','destroy','findOne','Dynamics365Configuration','getConfigurations','addConfiguration','AccountId','getSubjects','channel'];(function(_0x1014c9,_0x5541ee){var _0x52c226=function(_0x581687){while(--_0x581687){_0x1014c9['push'](_0x1014c9['shift']());}};_0x52c226(++_0x5541ee);}(_0x046b,0x147));var _0xb046=function(_0x2d555b,_0x14fc35){_0x2d555b=_0x2d555b-0x0;var _0x5081be=_0x046b[_0x2d555b];return _0x5081be;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb046('0x0'));var zipdir=require(_0xb046('0x1'));var jsonpatch=require(_0xb046('0x2'));var rp=require(_0xb046('0x3'));var moment=require(_0xb046('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb046('0x5'));var util=require(_0xb046('0x6'));var path=require(_0xb046('0x7'));var sox=require(_0xb046('0x8'));var csv=require(_0xb046('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb046('0xa'));var squel=require(_0xb046('0xb'));var crypto=require(_0xb046('0xc'));var jsforce=require(_0xb046('0xd'));var deskjs=require(_0xb046('0xe'));var toCsv=require(_0xb046('0x9'));var querystring=require(_0xb046('0xf'));var Papa=require(_0xb046('0x10'));var Redis=require('ioredis');var authService=require(_0xb046('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb046('0x12'));var hardwareService=require(_0xb046('0x13'));var logger=require(_0xb046('0x14'))(_0xb046('0x15'));var utils=require(_0xb046('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require(_0xb046('0x17'));function respondWithStatusCode(_0x1f6f1e,_0x55ba2a){_0x55ba2a=_0x55ba2a||0xcc;return function(_0x1fed52){if(_0x1fed52){return _0x1f6f1e['sendStatus'](_0x55ba2a);}return _0x1f6f1e[_0xb046('0x18')](_0x55ba2a)[_0xb046('0x19')]();};}function respondWithResult(_0x4e8899,_0xa34e5d){_0xa34e5d=_0xa34e5d||0xc8;return function(_0x29f3b2){if(_0x29f3b2){return _0x4e8899[_0xb046('0x18')](_0xa34e5d)[_0xb046('0x1a')](_0x29f3b2);}};}function respondWithFilteredResult(_0x12776b,_0x5e66fe){return function(_0x3d2282){if(_0x3d2282){var _0xd041d2=typeof _0x5e66fe[_0xb046('0x1b')]===_0xb046('0x1c')&&typeof _0x5e66fe[_0xb046('0x1d')]===_0xb046('0x1c');var _0x271613=_0x3d2282[_0xb046('0x1e')];var _0x48e3e6=_0xd041d2?0x0:_0x5e66fe[_0xb046('0x1b')];var _0x22ddca=_0xd041d2?_0x3d2282['count']:_0x5e66fe[_0xb046('0x1b')]+_0x5e66fe['limit'];var _0x5804c5;if(_0x22ddca>=_0x271613){_0x22ddca=_0x271613;_0x5804c5=0xc8;}else{_0x5804c5=0xce;}_0x12776b['status'](_0x5804c5);return _0x12776b[_0xb046('0x1f')]('Content-Range',_0x48e3e6+'-'+_0x22ddca+'/'+_0x271613)['json'](_0x3d2282);}return null;};}function patchUpdates(_0x363412){return function(_0x35ac05){try{jsonpatch[_0xb046('0x20')](_0x35ac05,_0x363412,!![]);}catch(_0x500d3e){return BPromise['reject'](_0x500d3e);}return _0x35ac05[_0xb046('0x21')]();};}function saveUpdates(_0x2b9de2,_0x568c43){return function(_0x3d145e){if(_0x3d145e){return _0x3d145e[_0xb046('0x22')](_0x2b9de2)[_0xb046('0x23')](function(_0x388d05){return _0x388d05;});}return null;};}function removeEntity(_0x30b1fa,_0x9a232){return function(_0x4da0fe){if(_0x4da0fe){return _0x4da0fe['destroy']()[_0xb046('0x23')](function(){_0x30b1fa[_0xb046('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2fa3de,_0x1d4c9a){return function(_0x3eed17){if(!_0x3eed17){_0x2fa3de[_0xb046('0x24')](0x194);}return _0x3eed17;};}function handleError(_0x306a72,_0x24a17e){_0x24a17e=_0x24a17e||0x1f4;return function(_0x84c64){logger[_0xb046('0x25')](_0x84c64[_0xb046('0x26')]);if(_0x84c64[_0xb046('0x27')]){delete _0x84c64['name'];}_0x306a72[_0xb046('0x18')](_0x24a17e)[_0xb046('0x28')](_0x84c64);};}exports[_0xb046('0x29')]=function(_0xeaadf,_0x86ab9e){var _0x939e76={},_0x4f0107={},_0x52cba6={'count':0x0,'rows':[]};var _0x23b029=_['map'](db[_0xb046('0x2a')][_0xb046('0x2b')],function(_0x5946e3){return{'name':_0x5946e3[_0xb046('0x2c')],'type':_0x5946e3[_0xb046('0x2d')][_0xb046('0x2e')]};});_0x4f0107[_0xb046('0x2f')]=_['map'](_0x23b029,_0xb046('0x27'));_0x4f0107[_0xb046('0x30')]=_[_0xb046('0x31')](_0xeaadf[_0xb046('0x30')]);_0x4f0107[_0xb046('0x32')]=_[_0xb046('0x33')](_0x4f0107[_0xb046('0x2f')],_0x4f0107[_0xb046('0x30')]);_0x939e76[_0xb046('0x34')]=_[_0xb046('0x33')](_0x4f0107[_0xb046('0x2f')],qs[_0xb046('0x35')](_0xeaadf[_0xb046('0x30')][_0xb046('0x35')]));_0x939e76[_0xb046('0x34')]=_0x939e76[_0xb046('0x34')][_0xb046('0x36')]?_0x939e76[_0xb046('0x34')]:_0x4f0107['model'];if(!_0xeaadf['query'][_0xb046('0x37')](_0xb046('0x38'))){_0x939e76[_0xb046('0x1d')]=qs['limit'](_0xeaadf[_0xb046('0x30')][_0xb046('0x1d')]);_0x939e76[_0xb046('0x1b')]=qs['offset'](_0xeaadf['query'][_0xb046('0x1b')]);}_0x939e76[_0xb046('0x39')]=qs[_0xb046('0x3a')](_0xeaadf[_0xb046('0x30')]['sort']);_0x939e76[_0xb046('0x3b')]=qs[_0xb046('0x32')](_[_0xb046('0x3c')](_0xeaadf[_0xb046('0x30')],_0x4f0107[_0xb046('0x32')]),_0x23b029);if(_0xeaadf['query']['filter']){_0x939e76['where']=_[_0xb046('0x3d')](_0x939e76[_0xb046('0x3b')],{'$or':_[_0xb046('0x3e')](_0x23b029,function(_0x45ed2f){if(_0x45ed2f['type']!=='VIRTUAL'){var _0x229f5f={};_0x229f5f[_0x45ed2f[_0xb046('0x27')]]={'$like':'%'+_0xeaadf[_0xb046('0x30')][_0xb046('0x3f')]+'%'};return _0x229f5f;}})});}_0x939e76=_[_0xb046('0x3d')]({},_0x939e76,_0xeaadf[_0xb046('0x40')]);var _0x264ad0={'where':_0x939e76[_0xb046('0x3b')]};return db[_0xb046('0x2a')][_0xb046('0x1e')](_0x264ad0)[_0xb046('0x23')](function(_0x469dc9){_0x52cba6[_0xb046('0x1e')]=_0x469dc9;if(_0xeaadf[_0xb046('0x30')][_0xb046('0x41')]){_0x939e76[_0xb046('0x42')]=[{'all':!![]}];}return db[_0xb046('0x2a')][_0xb046('0x43')](_0x939e76);})['then'](function(_0x513ad4){_0x52cba6[_0xb046('0x44')]=_0x513ad4;return _0x52cba6;})[_0xb046('0x23')](respondWithFilteredResult(_0x86ab9e,_0x939e76))['catch'](handleError(_0x86ab9e,null));};exports[_0xb046('0x45')]=function(_0x1e1d5e,_0x2cb6c6){var _0x2ab14f={'raw':![],'where':{'id':_0x1e1d5e[_0xb046('0x46')]['id']}},_0xdcfb16={};_0xdcfb16[_0xb046('0x2f')]=_[_0xb046('0x31')](db[_0xb046('0x2a')]['rawAttributes']);_0xdcfb16[_0xb046('0x30')]=_[_0xb046('0x31')](_0x1e1d5e['query']);_0xdcfb16[_0xb046('0x32')]=_[_0xb046('0x33')](_0xdcfb16[_0xb046('0x2f')],_0xdcfb16['query']);_0x2ab14f['attributes']=_['intersection'](_0xdcfb16[_0xb046('0x2f')],qs[_0xb046('0x35')](_0x1e1d5e[_0xb046('0x30')][_0xb046('0x35')]));_0x2ab14f[_0xb046('0x34')]=_0x2ab14f['attributes']['length']?_0x2ab14f[_0xb046('0x34')]:_0xdcfb16[_0xb046('0x2f')];if(_0x1e1d5e[_0xb046('0x30')][_0xb046('0x41')]){_0x2ab14f[_0xb046('0x42')]=[{'all':!![]}];}_0x2ab14f=_[_0xb046('0x3d')]({},_0x2ab14f,_0x1e1d5e[_0xb046('0x40')]);return db[_0xb046('0x2a')]['find'](_0x2ab14f)[_0xb046('0x23')](handleEntityNotFound(_0x2cb6c6,null))['then'](respondWithResult(_0x2cb6c6,null))[_0xb046('0x47')](handleError(_0x2cb6c6,null));};exports['create']=function(_0x44e152,_0x799d61){return db[_0xb046('0x2a')][_0xb046('0x48')](_0x44e152[_0xb046('0x49')],{})['then'](respondWithResult(_0x799d61,0xc9))['catch'](handleError(_0x799d61,null));};exports[_0xb046('0x22')]=function(_0x972aa7,_0x3587a5){if(_0x972aa7[_0xb046('0x49')]['id']){delete _0x972aa7['body']['id'];}return db[_0xb046('0x2a')][_0xb046('0x4a')]({'where':{'id':_0x972aa7[_0xb046('0x46')]['id']}})[_0xb046('0x23')](handleEntityNotFound(_0x3587a5,null))[_0xb046('0x23')](saveUpdates(_0x972aa7['body'],null))[_0xb046('0x23')](respondWithResult(_0x3587a5,null))[_0xb046('0x47')](handleError(_0x3587a5,null));};exports[_0xb046('0x4b')]=function(_0x5d98c3,_0x35fd10){return db[_0xb046('0x2a')][_0xb046('0x4a')]({'where':{'id':_0x5d98c3[_0xb046('0x46')]['id']}})[_0xb046('0x23')](handleEntityNotFound(_0x35fd10,null))[_0xb046('0x23')](removeEntity(_0x35fd10,null))[_0xb046('0x47')](handleError(_0x35fd10,null));};exports['getConfigurations']=function(_0x3e4fea,_0x2a6b2a,_0x239120){var _0xb24a97={};var _0x4cb0d7={};var _0x41d018;var _0x191537;return db[_0xb046('0x2a')][_0xb046('0x4c')]({'where':{'id':_0x3e4fea[_0xb046('0x46')]['id']}})[_0xb046('0x23')](handleEntityNotFound(_0x2a6b2a,null))[_0xb046('0x23')](function(_0x122151){if(_0x122151){_0x41d018=_0x122151;_0x4cb0d7[_0xb046('0x2f')]=_[_0xb046('0x31')](db[_0xb046('0x4d')]['rawAttributes']);_0x4cb0d7[_0xb046('0x30')]=_[_0xb046('0x31')](_0x3e4fea[_0xb046('0x30')]);_0x4cb0d7[_0xb046('0x32')]=_[_0xb046('0x33')](_0x4cb0d7[_0xb046('0x2f')],_0x4cb0d7[_0xb046('0x30')]);_0xb24a97[_0xb046('0x34')]=_[_0xb046('0x33')](_0x4cb0d7[_0xb046('0x2f')],qs[_0xb046('0x35')](_0x3e4fea[_0xb046('0x30')][_0xb046('0x35')]));_0xb24a97['attributes']=_0xb24a97[_0xb046('0x34')]['length']?_0xb24a97[_0xb046('0x34')]:_0x4cb0d7['model'];_0xb24a97[_0xb046('0x39')]=qs[_0xb046('0x3a')](_0x3e4fea[_0xb046('0x30')]['sort']);_0xb24a97['where']=qs[_0xb046('0x32')](_['pick'](_0x3e4fea[_0xb046('0x30')],_0x4cb0d7[_0xb046('0x32')]));if(_0x3e4fea[_0xb046('0x30')][_0xb046('0x3f')]){_0xb24a97[_0xb046('0x3b')]=_[_0xb046('0x3d')](_0xb24a97[_0xb046('0x3b')],{'$or':_[_0xb046('0x3e')](_0xb24a97['attributes'],function(_0x5e07a0){var _0x5b1b7={};_0x5b1b7[_0x5e07a0]={'$like':'%'+_0x3e4fea[_0xb046('0x30')][_0xb046('0x3f')]+'%'};return _0x5b1b7;})});}_0xb24a97=_['merge']({},_0xb24a97,_0x3e4fea[_0xb046('0x40')]);return _0x41d018[_0xb046('0x4e')](_0xb24a97);}})[_0xb046('0x23')](function(_0x4602f3){if(_0x4602f3){_0x191537=_0x4602f3[_0xb046('0x36')];if(!_0x3e4fea['query'][_0xb046('0x37')](_0xb046('0x38'))){_0xb24a97[_0xb046('0x1d')]=qs[_0xb046('0x1d')](_0x3e4fea[_0xb046('0x30')]['limit']);_0xb24a97[_0xb046('0x1b')]=qs[_0xb046('0x1b')](_0x3e4fea[_0xb046('0x30')][_0xb046('0x1b')]);}return _0x41d018[_0xb046('0x4e')](_0xb24a97);}})[_0xb046('0x23')](function(_0x1497b5){if(_0x1497b5){return _0x1497b5?{'count':_0x191537,'rows':_0x1497b5}:null;}})[_0xb046('0x23')](respondWithResult(_0x2a6b2a,null))['catch'](handleError(_0x2a6b2a,null));};exports[_0xb046('0x4f')]=function(_0x2f5fab,_0x4ba676,_0x270755){if(_0x2f5fab[_0xb046('0x49')]['id']){delete _0x2f5fab[_0xb046('0x49')]['id'];}return db[_0xb046('0x2a')][_0xb046('0x4c')]({'where':{'id':_0x2f5fab[_0xb046('0x46')]['id']}})[_0xb046('0x23')](handleEntityNotFound(_0x4ba676,null))[_0xb046('0x23')](function(_0x1d40a8){if(_0x1d40a8){_0x2f5fab[_0xb046('0x49')][_0xb046('0x50')]=_0x1d40a8['id'];_0x2f5fab[_0xb046('0x49')]['Subjects']=integrations[_0xb046('0x51')](_0x2f5fab[_0xb046('0x49')][_0xb046('0x52')],_0x2f5fab[_0xb046('0x49')][_0xb046('0x2d')]);_0x2f5fab[_0xb046('0x49')][_0xb046('0x53')]=integrations[_0xb046('0x54')](_0x2f5fab[_0xb046('0x49')][_0xb046('0x52')],_0x2f5fab[_0xb046('0x49')][_0xb046('0x2d')]);return db['Dynamics365Configuration'][_0xb046('0x48')](_0x2f5fab[_0xb046('0x49')],{'include':[{'model':db[_0xb046('0x55')],'as':_0xb046('0x56')},{'model':db[_0xb046('0x55')],'as':_0xb046('0x53')}]});}return null;})['then'](respondWithResult(_0x4ba676,null))[_0xb046('0x47')](handleError(_0x4ba676,null));};exports[_0xb046('0x57')]=function(_0x49f096,_0x10f9b2,_0xe40bde){var _0x341885=_0x49f096['query'][_0xb046('0x58')];var _0x441210=_0x341885===_0xb046('0x59')?'Incident':_0xb046('0x5a');var _0x5a29f1='';var _0x429501='';var _0x47b06b='';var _0x47194c='';var _0x1a2c4b='';var _0xc5156e='';var _0x2dc542='';var _0x391fca='';var _0x162031=[_0xb046('0x5b'),_0xb046('0x5c'),_0xb046('0x5d'),'ownerid',_0xb046('0x5e'),_0xb046('0x5f'),_0xb046('0x60'),_0xb046('0x61'),'directioncode',_0xb046('0x62')];var _0x239b2a=[_0xb046('0x63'),'accountidyominame',_0xb046('0x64'),_0xb046('0x65'),_0xb046('0x66'),_0xb046('0x67'),'contractdetailidname','contractidname',_0xb046('0x68'),_0xb046('0x69'),_0xb046('0x6a'),_0xb046('0x6b'),_0xb046('0x6c'),_0xb046('0x6d'),_0xb046('0x6e'),_0xb046('0x6f'),'customeridtype','customeridyominame',_0xb046('0x70'),_0xb046('0x71'),_0xb046('0x72'),'entityimage_url',_0xb046('0x73'),'exchangerate','firstresponsebykpiidname',_0xb046('0x74'),'importsequencenumber',_0xb046('0x75'),_0xb046('0x76'),_0xb046('0x77'),_0xb046('0x78'),_0xb046('0x79'),_0xb046('0x7a'),_0xb046('0x7b'),_0xb046('0x7c'),_0xb046('0x7d'),_0xb046('0x7e'),_0xb046('0x7f'),'msdyn_incidenttypename',_0xb046('0x80'),'numberofchildincidents',_0xb046('0x81'),_0xb046('0x82'),_0xb046('0x83'),'owneridtype',_0xb046('0x84'),_0xb046('0x85'),_0xb046('0x86'),_0xb046('0x87'),'prioritycodename','productidname','productserialnumber',_0xb046('0x88'),_0xb046('0x89'),_0xb046('0x8a'),'responsiblecontactidname',_0xb046('0x8b'),'sentimentvalue','slainvokedidname',_0xb046('0x8c'),_0xb046('0x8d'),'statecode',_0xb046('0x8e'),_0xb046('0x8f'),_0xb046('0x90'),_0xb046('0x91'),_0xb046('0x92'),_0xb046('0x93'),'utcconversiontimezonecode','versionnumber'];var _0x58d4f7=_0x162031[_0xb046('0x94')](_0x239b2a);return db[_0xb046('0x2a')][_0xb046('0x4c')]({'where':{'id':_0x49f096[_0xb046('0x46')]['id']},'attributes':['id',_0xb046('0x95'),_0xb046('0x96'),_0xb046('0x97'),_0xb046('0x98'),_0xb046('0x99'),_0xb046('0x9a')]})[_0xb046('0x23')](handleEntityNotFound(_0x10f9b2,null))[_0xb046('0x23')](function(_0x4bea5a){if(_0x4bea5a){_0x391fca=_0x4bea5a[_0xb046('0x97')];var _0x55b8d7=_0x391fca[_0xb046('0x9b')](-0x1);if(_0x55b8d7==='/'){_0x391fca=_0x391fca['substring'](0x0,_0x391fca[_0xb046('0x9c')](_0x55b8d7));}_0x2dc542=util[_0xb046('0x9d')]('%s/api/data/v9.0/',_0x391fca);var _0x7093df={'method':_0xb046('0x9e'),'uri':'https://login.microsoftonline.com/'+_0x4bea5a[_0xb046('0x98')]+_0xb046('0x9f'),'form':{'client_id':_0x4bea5a[_0xb046('0x99')],'resource':_0x391fca,'username':_0x4bea5a['username'],'password':_0x4bea5a[_0xb046('0x96')],'grant_type':_0xb046('0x96'),'client_secret':_0x4bea5a['clientSecret']},'json':!![]};return rp(_0x7093df);}})[_0xb046('0x23')](function(_0x580162){_0xc5156e=_0x580162[_0xb046('0xa0')];var _0x35a097={'method':_0xb046('0xa1'),'uri':encodeURI(_0x2dc542+'EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27'+_0x441210+'\x27'),'headers':{'Authorization':_0xb046('0xa2')+_0xc5156e,'If-None-Match':null,'OData-Version':_0xb046('0xa3')},'json':!![]};return rp(_0x35a097);})[_0xb046('0x23')](function(_0x46542b){var _0x3067df=_0x46542b[_0xb046('0xa4')][0x0];var _0x2def2a=_0x3067df[_0xb046('0xa5')];var _0xd3e3ad={'method':_0xb046('0xa1'),'uri':_0x2dc542+_0xb046('0xa6')+_0x2def2a+_0xb046('0xa7'),'headers':{'Authorization':_0xb046('0xa2')+_0xc5156e,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0xd3e3ad);})[_0xb046('0x23')](function(_0x44590d){_0x5a29f1=_0x44590d;_0x429501=_0x5a29f1[_0xb046('0xa8')];_0x429501=_[_0xb046('0xa9')](_0x429501,function(_0x33546f){return!_0x58d4f7[_0xb046('0xaa')](_0x33546f[_0xb046('0xab')]);});var _0x801a2d=[];var _0x389fe8=[];_0x429501[_0xb046('0xac')](function(_0x433aa3){if(_0x433aa3[_0xb046('0xad')]){var _0xe17e4a=_0x433aa3[_0xb046('0xad')][_0xb046('0xae')](_0x433aa3[_0xb046('0xad')][_0xb046('0x9c')]('.')+0x1);if(_0xe17e4a==='PicklistAttributeMetadata'){_0x801a2d['push'](getSelectList(_0x2dc542,_0x341885,_0x389fe8,_0x5a29f1['MetadataId'],_0x433aa3[_0xb046('0xa5')],_0xc5156e));}}});return Promise[_0xb046('0xaf')](_0x801a2d);})[_0xb046('0x23')](function(_0x418ae4){_0x47b06b=_0x418ae4[0x0];var _0x35a7e7=[];var _0x58f08c=[];_0x429501['forEach'](function(_0x239d1f){if(!_[_0xb046('0xb0')](_0x239d1f[_0xb046('0xad')])){var _0x5f1613=_0x239d1f[_0xb046('0xad')][_0xb046('0xae')](_0x239d1f[_0xb046('0xad')][_0xb046('0x9c')]('.')+0x1);if(_0x5f1613===_0xb046('0xb1')){_0x35a7e7['push'](getBooleanList(_0x2dc542,_0x341885,_0x58f08c,_0x5a29f1['MetadataId'],_0x239d1f[_0xb046('0xa5')],_0xc5156e));}}});return Promise[_0xb046('0xaf')](_0x35a7e7);})[_0xb046('0x23')](function(_0x1504e5){_0x47194c=_0x1504e5[0x0];var _0xc35539=[];var _0x21cfcc=[];_0x429501[_0xb046('0xac')](function(_0x77a6fd){if(_0x77a6fd[_0xb046('0xad')]){var _0xb0d50c=_0x77a6fd['@odata.type']['substring'](_0x77a6fd['@odata.type'][_0xb046('0x9c')]('.')+0x1);if(_0xb0d50c===_0xb046('0xb2')||_0xb0d50c==='DoubleAttributeMetadata'||_0xb0d50c===_0xb046('0xb3')||_0xb0d50c==='IntegerAttributeMetadata'||_0xb0d50c==='MemoAttributeMetadata'||_0xb0d50c===_0xb046('0xb4')||_0xb0d50c===_0xb046('0xb5')||_0xb0d50c===_0xb046('0xb6')||_0xb0d50c===_0xb046('0xb7')||_0xb0d50c===_0xb046('0xb8')){_0xc35539['push'](getInputList(_0x2dc542,_0x341885,_0xb0d50c,_0x21cfcc,_0x5a29f1['MetadataId'],_0x77a6fd[_0xb046('0xa5')],_0xc5156e));}}});return Promise[_0xb046('0xaf')](_0xc35539);})[_0xb046('0x23')](function(_0x22f4ad){_0x1a2c4b=_0x22f4ad[0x0];var _0x5ce3c7=_0x47b06b[_0xb046('0x94')](_0x47194c)[_0xb046('0x94')](_0x1a2c4b);var _0x355a82={'count':_0x5ce3c7[_0xb046('0x36')],'rows':_0x5ce3c7};return _0x355a82;})[_0xb046('0x23')](respondWithResult(_0x10f9b2,null))[_0xb046('0x47')](function(_0x4edf10){var _0x2595e8=_0x49f096[_0xb046('0x30')][_0xb046('0xb9')]?0x1f4:_0x4edf10[_0xb046('0xba')]||0x1f4;logger['error'](_0x4edf10[_0xb046('0x26')]);delete _0x4edf10[_0xb046('0x27')];if(_0x2595e8===0x191){_0x2595e8=0x190;}_0x10f9b2[_0xb046('0x18')](_0x2595e8)['send'](_0x49f096[_0xb046('0x30')]['test']?{'message':_0xb046('0xbb'),'statusCode':_0x4edf10[_0xb046('0xba')]}:_0x4edf10);});};function getSelectList(_0x2353ad,_0x47a5ad,_0x32580a,_0x24d2fe,_0x1d6c5b,_0x4ffa9a){var _0x2b47d4={'method':_0xb046('0xa1'),'uri':_0x2353ad+_0xb046('0xa6')+_0x24d2fe+')/Attributes('+_0x1d6c5b+_0xb046('0xbc')+_0xb046('0xbd'),'headers':{'Authorization':'Bearer\x20'+_0x4ffa9a,'If-None-Match':null,'OData-Version':_0xb046('0xa3')},'json':!![]};return rp(_0x2b47d4)[_0xb046('0x23')](function(_0x1e5cf){var _0x913348=[];var _0x1ab2ea=_0x1e5cf[_0xb046('0xbe')][_0xb046('0xbf')];_0x1ab2ea[_0xb046('0xac')](function(_0x13adf9){_0x913348['push']({'name':_0x13adf9[_0xb046('0xc0')][_0xb046('0xc1')]['Label'],'value':String(_0x13adf9[_0xb046('0xc2')])});});var _0x4af3fa={'id':_0x47a5ad+'_'+_0x1e5cf[_0xb046('0xab')],'name':_0x1e5cf['DisplayName'][_0xb046('0xc1')]['Label'],'custom':![],'options':_0x913348};_0x32580a[_0xb046('0xc3')](_0x4af3fa);return _0x32580a;});}function getBooleanList(_0x45267c,_0xb0c657,_0xc7fa75,_0x59662a,_0x5b202f,_0x52c319){var _0x4ff739={'method':'GET','uri':_0x45267c+_0xb046('0xa6')+_0x59662a+_0xb046('0xc4')+_0x5b202f+_0xb046('0xc5'),'headers':{'Authorization':_0xb046('0xa2')+_0x52c319,'If-None-Match':null,'OData-Version':_0xb046('0xa3')},'json':!![]};return rp(_0x4ff739)[_0xb046('0x23')](function(_0x1e7378){var _0xb741e7=[];_0xb741e7[_0xb046('0xc3')]({'name':_0x1e7378['OptionSet'][_0xb046('0xc6')][_0xb046('0xc0')]['UserLocalizedLabel'][_0xb046('0xc0')],'value':_0xb046('0xc7')},{'name':_0x1e7378['OptionSet'][_0xb046('0xc8')][_0xb046('0xc0')][_0xb046('0xc1')]['Label'],'value':_0xb046('0xc9')});var _0x2d8fec={'id':_0xb0c657+'_'+_0x1e7378['LogicalName'],'name':_0x1e7378['DisplayName'][_0xb046('0xc1')][_0xb046('0xc0')],'custom':![],'options':_0xb741e7};_0xc7fa75[_0xb046('0xc3')](_0x2d8fec);return _0xc7fa75;});}function getInputList(_0x433d5a,_0x33b660,_0x3308b8,_0x152e41,_0x4bb54d,_0x588890,_0x3ed2e8){var _0x3895e7={'method':'GET','uri':_0x433d5a+_0xb046('0xa6')+_0x4bb54d+')/Attributes('+_0x588890+_0xb046('0xca')+_0x3308b8+_0xb046('0xcb'),'headers':{'Authorization':_0xb046('0xa2')+_0x3ed2e8,'If-None-Match':null,'OData-Version':_0xb046('0xa3')},'json':!![]};return rp(_0x3895e7)['then'](function(_0x326ffb){var _0xdb148d={'id':_0x33b660+'_'+_0x326ffb[_0xb046('0xab')],'name':_0x326ffb[_0xb046('0xcc')]['UserLocalizedLabel']?_0x326ffb[_0xb046('0xcc')][_0xb046('0xc1')]['Label']:_0x326ffb[_0xb046('0xab')],'custom':![],'options':[]};_0x152e41[_0xb046('0xc3')](_0xdb148d);return _0x152e41;});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['int_dynamics365_accounts','lodash','../../config/logger','moment','request-promise','rimraf','../../config/environment','./intDynamics365Account.attributes','define'];(function(_0x586d81,_0x2eae8d){var _0x49313c=function(_0xaee909){while(--_0xaee909){_0x586d81['push'](_0x586d81['shift']());}};_0x49313c(++_0x2eae8d);}(_0xb7e7,0x121));var _0x7b7e=function(_0x2f3848,_0x48564d){_0x2f3848=_0x2f3848-0x0;var _0x102668=_0xb7e7[_0x2f3848];return _0x102668;};'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 fs=require('fs');var path=require('path');var rimraf=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var attributes=require(_0x7b7e('0x6'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x333fa4,_0x372bde){return _0x333fa4[_0x7b7e('0x7')]('Dynamics365Account',attributes,{'tableName':_0x7b7e('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x757a=['Dynamics365Account','int_dynamics365_accounts','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./intDynamics365Account.attributes','../../components/integrations/configuration'];(function(_0x474e8d,_0x70c913){var _0xf938f8=function(_0xc92253){while(--_0xc92253){_0x474e8d['push'](_0x474e8d['shift']());}};_0xf938f8(++_0x70c913);}(_0x757a,0xde));var _0xa757=function(_0x5309a3,_0x299111){_0x5309a3=_0x5309a3-0x0;var _0x5ae675=_0x757a[_0x5309a3];return _0x5ae675;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var logger=require(_0xa757('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa757('0x2'));var fs=require('fs');var path=require(_0xa757('0x3'));var rimraf=require(_0xa757('0x4'));var config=require(_0xa757('0x5'));var attributes=require(_0xa757('0x6'));var integrations=require(_0xa757('0x7'));module['exports']=function(_0xae0e7c,_0x4343b6){return _0xae0e7c['define'](_0xa757('0x8'),attributes,{'tableName':_0xa757('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6b3=['request\x20sent','result','catch','Dynamics365Account','findAll','options','raw','where','attributes','limit','include','model','map','then','GetDynamics365Account','ShowDynamics365Account','lodash','util','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','info','Dynamics365Account,\x20%s,\x20%s','debug','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x26462a,_0x197993){var _0x45716c=function(_0xf66f2f){while(--_0xf66f2f){_0x26462a['push'](_0x26462a['shift']());}};_0x45716c(++_0x197993);}(_0xf6b3,0x79));var _0x3f6b=function(_0x25abbe,_0x53b462){_0x25abbe=_0x25abbe-0x0;var _0x55c770=_0xf6b3[_0x25abbe];return _0x55c770;};'use strict';var _=require(_0x3f6b('0x0'));var util=require(_0x3f6b('0x1'));var moment=require('moment');var BPromise=require(_0x3f6b('0x2'));var rs=require(_0x3f6b('0x3'));var fs=require('fs');var Redis=require(_0x3f6b('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x3f6b('0x5'));var logger=require('../../config/logger')(_0x3f6b('0x6'));var config=require(_0x3f6b('0x7'));var jayson=require(_0x3f6b('0x8'));var client=jayson[_0x3f6b('0x9')][_0x3f6b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x319b54,_0x474632,_0x2f05d1){return new BPromise(function(_0xfc341e,_0xc595db){return client['request'](_0x319b54,_0x2f05d1)['then'](function(_0x576f5e){logger[_0x3f6b('0xb')](_0x3f6b('0xc'),_0x474632,'request\x20sent');logger[_0x3f6b('0xd')](_0x3f6b('0xe'),_0x474632,'request\x20sent',JSON[_0x3f6b('0xf')](_0x576f5e));if(_0x576f5e[_0x3f6b('0x10')]){if(_0x576f5e[_0x3f6b('0x10')][_0x3f6b('0x11')]===0x1f4){logger[_0x3f6b('0x10')](_0x3f6b('0xc'),_0x474632,_0x576f5e['error']['message']);return _0xc595db(_0x576f5e[_0x3f6b('0x10')][_0x3f6b('0x12')]);}logger[_0x3f6b('0x10')](_0x3f6b('0xc'),_0x474632,_0x576f5e['error'][_0x3f6b('0x12')]);return _0xfc341e(_0x576f5e['error'][_0x3f6b('0x12')]);}else{logger[_0x3f6b('0xb')]('Dynamics365Account,\x20%s,\x20%s',_0x474632,_0x3f6b('0x13'));_0xfc341e(_0x576f5e[_0x3f6b('0x14')][_0x3f6b('0x12')]);}})[_0x3f6b('0x15')](function(_0x33e755){logger[_0x3f6b('0x10')](_0x3f6b('0xc'),_0x474632,_0x33e755);_0xc595db(_0x33e755);});});}exports['GetDynamics365Account']=function(_0x11b59a){var _0x4a4328=this;return new Promise(function(_0x391869,_0x242430){return db[_0x3f6b('0x16')][_0x3f6b('0x17')]({'raw':_0x11b59a['options']?_0x11b59a[_0x3f6b('0x18')][_0x3f6b('0x19')]===undefined?!![]:![]:!![],'where':_0x11b59a[_0x3f6b('0x18')]?_0x11b59a[_0x3f6b('0x18')][_0x3f6b('0x1a')]||null:null,'attributes':_0x11b59a['options']?_0x11b59a[_0x3f6b('0x18')][_0x3f6b('0x1b')]||null:null,'limit':_0x11b59a[_0x3f6b('0x18')]?_0x11b59a[_0x3f6b('0x18')][_0x3f6b('0x1c')]||null:null,'include':_0x11b59a[_0x3f6b('0x18')]?_0x11b59a['options'][_0x3f6b('0x1d')]?_['map'](_0x11b59a[_0x3f6b('0x18')][_0x3f6b('0x1d')],function(_0x2d7214){return{'model':db[_0x2d7214['model']],'as':_0x2d7214['as'],'attributes':_0x2d7214[_0x3f6b('0x1b')],'include':_0x2d7214[_0x3f6b('0x1d')]?_['map'](_0x2d7214[_0x3f6b('0x1d')],function(_0x400138){return{'model':db[_0x400138[_0x3f6b('0x1e')]],'as':_0x400138['as'],'attributes':_0x400138[_0x3f6b('0x1b')],'include':_0x400138[_0x3f6b('0x1d')]?_[_0x3f6b('0x1f')](_0x400138[_0x3f6b('0x1d')],function(_0x45c9cd){return{'model':db[_0x45c9cd[_0x3f6b('0x1e')]],'as':_0x45c9cd['as'],'attributes':_0x45c9cd['attributes']};}):[]};}):[]};}):[]:[]})[_0x3f6b('0x20')](function(_0x14b047){logger['info'](_0x3f6b('0x21'),_0x11b59a);logger['debug']('GetDynamics365Account',_0x11b59a,JSON[_0x3f6b('0xf')](_0x14b047));_0x391869(_0x14b047);})['catch'](function(_0x9b13f6){logger['error'](_0x3f6b('0x21'),_0x9b13f6['message'],_0x11b59a);_0x242430(_0x4a4328[_0x3f6b('0x10')](0x1f4,_0x9b13f6[_0x3f6b('0x12')]));});});};exports['ShowDynamics365Account']=function(_0x5a159b){var _0x4f3ffb=this;return new Promise(function(_0x264aa8,_0x305a32){return db[_0x3f6b('0x16')]['find']({'raw':_0x5a159b[_0x3f6b('0x18')]?_0x5a159b['options'][_0x3f6b('0x19')]===undefined?!![]:![]:!![],'where':_0x5a159b[_0x3f6b('0x18')]?_0x5a159b['options'][_0x3f6b('0x1a')]||null:null,'attributes':_0x5a159b[_0x3f6b('0x18')]?_0x5a159b['options']['attributes']||null:null,'include':_0x5a159b['options']?_0x5a159b['options'][_0x3f6b('0x1d')]?_[_0x3f6b('0x1f')](_0x5a159b['options'][_0x3f6b('0x1d')],function(_0xa5b293){return{'model':db[_0xa5b293['model']],'as':_0xa5b293['as'],'attributes':_0xa5b293[_0x3f6b('0x1b')],'include':_0xa5b293[_0x3f6b('0x1d')]?_[_0x3f6b('0x1f')](_0xa5b293['include'],function(_0x120380){return{'model':db[_0x120380[_0x3f6b('0x1e')]],'as':_0x120380['as'],'attributes':_0x120380[_0x3f6b('0x1b')],'include':_0x120380[_0x3f6b('0x1d')]?_[_0x3f6b('0x1f')](_0x120380[_0x3f6b('0x1d')],function(_0x511bd4){return{'model':db[_0x511bd4['model']],'as':_0x511bd4['as'],'attributes':_0x511bd4[_0x3f6b('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x3f6b('0x20')](function(_0x14102){logger[_0x3f6b('0xb')](_0x3f6b('0x22'),_0x5a159b);logger[_0x3f6b('0xd')](_0x3f6b('0x22'),_0x5a159b,JSON[_0x3f6b('0xf')](_0x14102));_0x264aa8(_0x14102);})[_0x3f6b('0x15')](function(_0x33407c){logger[_0x3f6b('0x10')](_0x3f6b('0x22'),_0x33407c[_0x3f6b('0x12')],_0x5a159b);_0x305a32(_0x4f3ffb[_0x3f6b('0x10')](0x1f4,_0x33407c[_0x3f6b('0x12')]));});});};
\ No newline at end of file
+var _0x40dc=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','Dynamics365Account,\x20%s,\x20%s','request\x20sent','Dynamics365Account,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetDynamics365Account','Dynamics365Account','findAll','options','raw','where','attributes','limit','include','model','map','debug','stringify','ShowDynamics365Account','info','lodash','util','moment','ioredis'];(function(_0x338f82,_0x1d8247){var _0x5123d1=function(_0xf35d5){while(--_0xf35d5){_0x338f82['push'](_0x338f82['shift']());}};_0x5123d1(++_0x1d8247);}(_0x40dc,0x188));var _0xc40d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x40dc[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc40d('0x0'));var util=require(_0xc40d('0x1'));var moment=require(_0xc40d('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc40d('0x3'));var db=require(_0xc40d('0x4'))['db'];var utils=require(_0xc40d('0x5'));var logger=require(_0xc40d('0x6'))(_0xc40d('0x7'));var config=require(_0xc40d('0x8'));var jayson=require(_0xc40d('0x9'));var client=jayson[_0xc40d('0xa')][_0xc40d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4c8d7f,_0x491cfb,_0x512bbf){return new BPromise(function(_0x43624d,_0x5e0431){return client['request'](_0x4c8d7f,_0x512bbf)[_0xc40d('0xc')](function(_0x5bf24b){logger['info'](_0xc40d('0xd'),_0x491cfb,_0xc40d('0xe'));logger['debug'](_0xc40d('0xf'),_0x491cfb,_0xc40d('0xe'),JSON['stringify'](_0x5bf24b));if(_0x5bf24b[_0xc40d('0x10')]){if(_0x5bf24b[_0xc40d('0x10')][_0xc40d('0x11')]===0x1f4){logger[_0xc40d('0x10')]('Dynamics365Account,\x20%s,\x20%s',_0x491cfb,_0x5bf24b['error']['message']);return _0x5e0431(_0x5bf24b[_0xc40d('0x10')][_0xc40d('0x12')]);}logger['error']('Dynamics365Account,\x20%s,\x20%s',_0x491cfb,_0x5bf24b[_0xc40d('0x10')]['message']);return _0x43624d(_0x5bf24b[_0xc40d('0x10')][_0xc40d('0x12')]);}else{logger['info'](_0xc40d('0xd'),_0x491cfb,_0xc40d('0xe'));_0x43624d(_0x5bf24b[_0xc40d('0x13')]['message']);}})[_0xc40d('0x14')](function(_0x32370b){logger[_0xc40d('0x10')](_0xc40d('0xd'),_0x491cfb,_0x32370b);_0x5e0431(_0x32370b);});});}exports[_0xc40d('0x15')]=function(_0x2b33d2){var _0x5748cb=this;return new Promise(function(_0x2c3c35,_0x522a22){return db[_0xc40d('0x16')][_0xc40d('0x17')]({'raw':_0x2b33d2[_0xc40d('0x18')]?_0x2b33d2[_0xc40d('0x18')][_0xc40d('0x19')]===undefined?!![]:![]:!![],'where':_0x2b33d2[_0xc40d('0x18')]?_0x2b33d2[_0xc40d('0x18')][_0xc40d('0x1a')]||null:null,'attributes':_0x2b33d2[_0xc40d('0x18')]?_0x2b33d2['options'][_0xc40d('0x1b')]||null:null,'limit':_0x2b33d2[_0xc40d('0x18')]?_0x2b33d2[_0xc40d('0x18')][_0xc40d('0x1c')]||null:null,'include':_0x2b33d2[_0xc40d('0x18')]?_0x2b33d2[_0xc40d('0x18')][_0xc40d('0x1d')]?_['map'](_0x2b33d2[_0xc40d('0x18')][_0xc40d('0x1d')],function(_0x443262){return{'model':db[_0x443262[_0xc40d('0x1e')]],'as':_0x443262['as'],'attributes':_0x443262[_0xc40d('0x1b')],'include':_0x443262[_0xc40d('0x1d')]?_['map'](_0x443262['include'],function(_0x187c37){return{'model':db[_0x187c37[_0xc40d('0x1e')]],'as':_0x187c37['as'],'attributes':_0x187c37[_0xc40d('0x1b')],'include':_0x187c37[_0xc40d('0x1d')]?_[_0xc40d('0x1f')](_0x187c37[_0xc40d('0x1d')],function(_0x76edae){return{'model':db[_0x76edae['model']],'as':_0x76edae['as'],'attributes':_0x76edae['attributes']};}):[]};}):[]};}):[]:[]})[_0xc40d('0xc')](function(_0x457ee0){logger['info'](_0xc40d('0x15'),_0x2b33d2);logger[_0xc40d('0x20')](_0xc40d('0x15'),_0x2b33d2,JSON[_0xc40d('0x21')](_0x457ee0));_0x2c3c35(_0x457ee0);})['catch'](function(_0x1eed06){logger[_0xc40d('0x10')](_0xc40d('0x15'),_0x1eed06['message'],_0x2b33d2);_0x522a22(_0x5748cb[_0xc40d('0x10')](0x1f4,_0x1eed06['message']));});});};exports[_0xc40d('0x22')]=function(_0x5ce34a){var _0xad3448=this;return new Promise(function(_0x392650,_0x21de30){return db['Dynamics365Account']['find']({'raw':_0x5ce34a[_0xc40d('0x18')]?_0x5ce34a[_0xc40d('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x5ce34a[_0xc40d('0x18')]?_0x5ce34a[_0xc40d('0x18')]['where']||null:null,'attributes':_0x5ce34a['options']?_0x5ce34a[_0xc40d('0x18')]['attributes']||null:null,'include':_0x5ce34a[_0xc40d('0x18')]?_0x5ce34a[_0xc40d('0x18')][_0xc40d('0x1d')]?_[_0xc40d('0x1f')](_0x5ce34a[_0xc40d('0x18')][_0xc40d('0x1d')],function(_0x3126eb){return{'model':db[_0x3126eb[_0xc40d('0x1e')]],'as':_0x3126eb['as'],'attributes':_0x3126eb['attributes'],'include':_0x3126eb[_0xc40d('0x1d')]?_[_0xc40d('0x1f')](_0x3126eb[_0xc40d('0x1d')],function(_0x2e0cbf){return{'model':db[_0x2e0cbf['model']],'as':_0x2e0cbf['as'],'attributes':_0x2e0cbf[_0xc40d('0x1b')],'include':_0x2e0cbf[_0xc40d('0x1d')]?_[_0xc40d('0x1f')](_0x2e0cbf[_0xc40d('0x1d')],function(_0x211589){return{'model':db[_0x211589[_0xc40d('0x1e')]],'as':_0x211589['as'],'attributes':_0x211589[_0xc40d('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xc40d('0xc')](function(_0x360a1){logger[_0xc40d('0x23')]('ShowDynamics365Account',_0x5ce34a);logger[_0xc40d('0x20')](_0xc40d('0x22'),_0x5ce34a,JSON[_0xc40d('0x21')](_0x360a1));_0x392650(_0x360a1);})[_0xc40d('0x14')](function(_0x78b91e){logger['error'](_0xc40d('0x22'),_0x78b91e[_0xc40d('0x12')],_0x5ce34a);_0x21de30(_0xad3448['error'](0x1f4,_0x78b91e[_0xc40d('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98d8=['/:id/descriptions','getDescriptions','post','create','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','isAuthenticated','get','/:id/fields','getFields','/:id/subjects','getSubjects'];(function(_0x2b34e5,_0x4a87dc){var _0x5e406f=function(_0x13e3ef){while(--_0x13e3ef){_0x2b34e5['push'](_0x2b34e5['shift']());}};_0x5e406f(++_0x4a87dc);}(_0x98d8,0xce));var _0x898d=function(_0x48d218,_0x38ae7b){_0x48d218=_0x48d218-0x0;var _0x5d86c7=_0x98d8[_0x48d218];return _0x5d86c7;};'use strict';var multer=require(_0x898d('0x0'));var util=require(_0x898d('0x1'));var path=require(_0x898d('0x2'));var timeout=require(_0x898d('0x3'));var express=require(_0x898d('0x4'));var router=express[_0x898d('0x5')]();var fs_extra=require(_0x898d('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x898d('0x7'));var controller=require('./intDynamics365Configuration.controller');router['get']('/',auth[_0x898d('0x8')](),controller['index']);router[_0x898d('0x9')]('/:id',auth[_0x898d('0x8')](),controller['show']);router[_0x898d('0x9')](_0x898d('0xa'),auth[_0x898d('0x8')](),controller[_0x898d('0xb')]);router[_0x898d('0x9')](_0x898d('0xc'),auth[_0x898d('0x8')](),controller[_0x898d('0xd')]);router[_0x898d('0x9')](_0x898d('0xe'),auth[_0x898d('0x8')](),controller[_0x898d('0xf')]);router[_0x898d('0x10')]('/',auth[_0x898d('0x8')](),controller[_0x898d('0x11')]);router['put'](_0x898d('0x12'),auth[_0x898d('0x8')](),controller['update']);router[_0x898d('0x13')](_0x898d('0x12'),auth[_0x898d('0x8')](),controller[_0x898d('0x14')]);module[_0x898d('0x15')]=router;
\ No newline at end of file
+var _0x1516=['./intDynamics365Configuration.controller','isAuthenticated','index','get','/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','update','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5b2c8c,_0x1d704d){var _0x1e347f=function(_0x5dde3e){while(--_0x5dde3e){_0x5b2c8c['push'](_0x5b2c8c['shift']());}};_0x1e347f(++_0x1d704d);}(_0x1516,0xb0));var _0x6151=function(_0xeebfaa,_0x1ff1aa){_0xeebfaa=_0xeebfaa-0x0;var _0x3935b1=_0x1516[_0xeebfaa];return _0x3935b1;};'use strict';var multer=require(_0x6151('0x0'));var util=require(_0x6151('0x1'));var path=require(_0x6151('0x2'));var timeout=require('connect-timeout');var express=require(_0x6151('0x3'));var router=express[_0x6151('0x4')]();var fs_extra=require(_0x6151('0x5'));var auth=require(_0x6151('0x6'));var interaction=require(_0x6151('0x7'));var config=require('../../config/environment');var controller=require(_0x6151('0x8'));router['get']('/',auth[_0x6151('0x9')](),controller[_0x6151('0xa')]);router[_0x6151('0xb')](_0x6151('0xc'),auth[_0x6151('0x9')](),controller[_0x6151('0xd')]);router[_0x6151('0xb')](_0x6151('0xe'),auth[_0x6151('0x9')](),controller['getFields']);router['get'](_0x6151('0xf'),auth[_0x6151('0x9')](),controller[_0x6151('0x10')]);router[_0x6151('0xb')](_0x6151('0x11'),auth[_0x6151('0x9')](),controller[_0x6151('0x12')]);router[_0x6151('0x13')]('/',auth[_0x6151('0x9')](),controller['create']);router['put'](_0x6151('0xc'),auth[_0x6151('0x9')](),controller[_0x6151('0x14')]);router['delete'](_0x6151('0xc'),auth[_0x6151('0x9')](),controller[_0x6151('0x15')]);module[_0x6151('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x170a=['ENUM','incident','phonecall','sequelize','STRING'];(function(_0xf0656c,_0x29062c){var _0xae59c1=function(_0x4479c0){while(--_0x4479c0){_0xf0656c['push'](_0xf0656c['shift']());}};_0xae59c1(++_0x29062c);}(_0x170a,0x193));var _0xa170=function(_0x1b5472,_0x584a93){_0x1b5472=_0x1b5472-0x0;var _0x2d3cef=_0x170a[_0x1b5472];return _0x2d3cef;};'use strict';var Sequelize=require(_0xa170('0x0'));module['exports']={'name':{'type':Sequelize[_0xa170('0x1')]},'description':{'type':Sequelize['STRING']},'ticketType':{'type':Sequelize[_0xa170('0x2')](_0xa170('0x3'),_0xa170('0x4')),'defaultValue':_0xa170('0x3')}};
\ No newline at end of file
+var _0x24db=['incident','sequelize','exports','STRING','ENUM'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0x24db,0xbf));var _0xb24d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x24db[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xb24d('0x0'));module[_0xb24d('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xb24d('0x2')]},'ticketType':{'type':Sequelize[_0xb24d('0x3')](_0xb24d('0x4'),'phonecall'),'defaultValue':_0xb24d('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8178=['crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','name','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','show','find','catch','create','body','params','getFields','findOne','Dynamics365Field','getSubjects','getDescriptions','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel'];(function(_0x36e88b,_0x1aff1b){var _0x5df45c=function(_0x555b78){while(--_0x555b78){_0x36e88b['push'](_0x36e88b['shift']());}};_0x5df45c(++_0x1aff1b);}(_0x8178,0x91));var _0x8817=function(_0x2a42c4,_0xa9a3a){_0x2a42c4=_0x2a42c4-0x0;var _0x554802=_0x8178[_0x2a42c4];return _0x554802;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8817('0x0'));var zipdir=require(_0x8817('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8817('0x2'));var moment=require(_0x8817('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8817('0x4'));var util=require(_0x8817('0x5'));var path=require(_0x8817('0x6'));var sox=require(_0x8817('0x7'));var csv=require(_0x8817('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8817('0x9'));var _=require('lodash');var squel=require(_0x8817('0xa'));var crypto=require(_0x8817('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x8817('0xc'));var toCsv=require(_0x8817('0x8'));var querystring=require('querystring');var Papa=require(_0x8817('0xd'));var Redis=require(_0x8817('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x8817('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x8817('0x10'))(_0x8817('0x11'));var utils=require(_0x8817('0x12'));var config=require(_0x8817('0x13'));var licenseUtil=require(_0x8817('0x14'));var db=require(_0x8817('0x15'))['db'];function respondWithStatusCode(_0x45c5a0,_0x55edf0){_0x55edf0=_0x55edf0||0xcc;return function(_0xa303c1){if(_0xa303c1){return _0x45c5a0[_0x8817('0x16')](_0x55edf0);}return _0x45c5a0[_0x8817('0x17')](_0x55edf0)[_0x8817('0x18')]();};}function respondWithResult(_0x2359c1,_0x29b560){_0x29b560=_0x29b560||0xc8;return function(_0x1396aa){if(_0x1396aa){return _0x2359c1[_0x8817('0x17')](_0x29b560)[_0x8817('0x19')](_0x1396aa);}};}function respondWithFilteredResult(_0x1239e0,_0x4f58c8){return function(_0x149e2b){if(_0x149e2b){var _0x1e166f=typeof _0x4f58c8[_0x8817('0x1a')]==='undefined'&&typeof _0x4f58c8[_0x8817('0x1b')]===_0x8817('0x1c');var _0x4a8028=_0x149e2b[_0x8817('0x1d')];var _0x352145=_0x1e166f?0x0:_0x4f58c8[_0x8817('0x1a')];var _0x500eed=_0x1e166f?_0x149e2b[_0x8817('0x1d')]:_0x4f58c8[_0x8817('0x1a')]+_0x4f58c8[_0x8817('0x1b')];var _0x3938c2;if(_0x500eed>=_0x4a8028){_0x500eed=_0x4a8028;_0x3938c2=0xc8;}else{_0x3938c2=0xce;}_0x1239e0[_0x8817('0x17')](_0x3938c2);return _0x1239e0[_0x8817('0x1e')](_0x8817('0x1f'),_0x352145+'-'+_0x500eed+'/'+_0x4a8028)[_0x8817('0x19')](_0x149e2b);}return null;};}function patchUpdates(_0x4ab011){return function(_0x4eb0f2){try{jsonpatch[_0x8817('0x20')](_0x4eb0f2,_0x4ab011,!![]);}catch(_0x5d11f9){return BPromise[_0x8817('0x21')](_0x5d11f9);}return _0x4eb0f2[_0x8817('0x22')]();};}function saveUpdates(_0x41fa05,_0x132b4b){return function(_0x38d6ec){if(_0x38d6ec){return _0x38d6ec[_0x8817('0x23')](_0x41fa05)[_0x8817('0x24')](function(_0x3ff927){return _0x3ff927;});}return null;};}function removeEntity(_0x3ffcb5,_0x614482){return function(_0x18f499){if(_0x18f499){return _0x18f499[_0x8817('0x25')]()[_0x8817('0x24')](function(){_0x3ffcb5['status'](0xcc)[_0x8817('0x18')]();});}};}function handleEntityNotFound(_0x368d2c,_0x21fe6f){return function(_0x10daa5){if(!_0x10daa5){_0x368d2c['sendStatus'](0x194);}return _0x10daa5;};}function handleError(_0x3192fd,_0x4720d3){_0x4720d3=_0x4720d3||0x1f4;return function(_0x3affb2){logger['error'](_0x3affb2['stack']);if(_0x3affb2['name']){delete _0x3affb2[_0x8817('0x26')];}_0x3192fd[_0x8817('0x17')](_0x4720d3)['send'](_0x3affb2);};}exports['index']=function(_0x2328aa,_0x5baa06){var _0x355faf={},_0xc46ee0={},_0x3a1505={'count':0x0,'rows':[]};var _0x32ad35=_[_0x8817('0x27')](db[_0x8817('0x28')][_0x8817('0x29')],function(_0x329cc1){return{'name':_0x329cc1[_0x8817('0x2a')],'type':_0x329cc1[_0x8817('0x2b')][_0x8817('0x2c')]};});_0xc46ee0[_0x8817('0x2d')]=_[_0x8817('0x27')](_0x32ad35,_0x8817('0x26'));_0xc46ee0[_0x8817('0x2e')]=_[_0x8817('0x2f')](_0x2328aa['query']);_0xc46ee0[_0x8817('0x30')]=_[_0x8817('0x31')](_0xc46ee0[_0x8817('0x2d')],_0xc46ee0['query']);_0x355faf[_0x8817('0x32')]=_[_0x8817('0x31')](_0xc46ee0[_0x8817('0x2d')],qs[_0x8817('0x33')](_0x2328aa['query'][_0x8817('0x33')]));_0x355faf[_0x8817('0x32')]=_0x355faf[_0x8817('0x32')][_0x8817('0x34')]?_0x355faf['attributes']:_0xc46ee0['model'];if(!_0x2328aa[_0x8817('0x2e')][_0x8817('0x35')](_0x8817('0x36'))){_0x355faf[_0x8817('0x1b')]=qs[_0x8817('0x1b')](_0x2328aa[_0x8817('0x2e')]['limit']);_0x355faf['offset']=qs['offset'](_0x2328aa[_0x8817('0x2e')][_0x8817('0x1a')]);}_0x355faf[_0x8817('0x37')]=qs[_0x8817('0x38')](_0x2328aa['query']['sort']);_0x355faf[_0x8817('0x39')]=qs[_0x8817('0x30')](_[_0x8817('0x3a')](_0x2328aa[_0x8817('0x2e')],_0xc46ee0[_0x8817('0x30')]),_0x32ad35);if(_0x2328aa['query']['filter']){_0x355faf['where']=_['merge'](_0x355faf[_0x8817('0x39')],{'$or':_['map'](_0x32ad35,function(_0x3644b0){if(_0x3644b0[_0x8817('0x2b')]!==_0x8817('0x3b')){var _0x28acd1={};_0x28acd1[_0x3644b0[_0x8817('0x26')]]={'$like':'%'+_0x2328aa[_0x8817('0x2e')][_0x8817('0x3c')]+'%'};return _0x28acd1;}})});}_0x355faf=_[_0x8817('0x3d')]({},_0x355faf,_0x2328aa[_0x8817('0x3e')]);var _0x14fd7e={'where':_0x355faf['where']};return db[_0x8817('0x28')]['count'](_0x14fd7e)[_0x8817('0x24')](function(_0x22532f){_0x3a1505[_0x8817('0x1d')]=_0x22532f;if(_0x2328aa['query'][_0x8817('0x3f')]){_0x355faf[_0x8817('0x40')]=[{'all':!![]}];}return db[_0x8817('0x28')][_0x8817('0x41')](_0x355faf);})[_0x8817('0x24')](function(_0x297f69){_0x3a1505[_0x8817('0x42')]=_0x297f69;return _0x3a1505;})['then'](respondWithFilteredResult(_0x5baa06,_0x355faf))['catch'](handleError(_0x5baa06,null));};exports[_0x8817('0x43')]=function(_0x54f2be,_0x4177da){var _0x2d9517={'raw':![],'where':{'id':_0x54f2be['params']['id']}},_0x521ff={};_0x521ff[_0x8817('0x2d')]=_[_0x8817('0x2f')](db[_0x8817('0x28')][_0x8817('0x29')]);_0x521ff[_0x8817('0x2e')]=_['keys'](_0x54f2be[_0x8817('0x2e')]);_0x521ff[_0x8817('0x30')]=_[_0x8817('0x31')](_0x521ff[_0x8817('0x2d')],_0x521ff[_0x8817('0x2e')]);_0x2d9517[_0x8817('0x32')]=_[_0x8817('0x31')](_0x521ff[_0x8817('0x2d')],qs[_0x8817('0x33')](_0x54f2be[_0x8817('0x2e')][_0x8817('0x33')]));_0x2d9517[_0x8817('0x32')]=_0x2d9517[_0x8817('0x32')][_0x8817('0x34')]?_0x2d9517[_0x8817('0x32')]:_0x521ff['model'];if(_0x54f2be[_0x8817('0x2e')][_0x8817('0x3f')]){_0x2d9517[_0x8817('0x40')]=[{'all':!![]}];}_0x2d9517=_[_0x8817('0x3d')]({},_0x2d9517,_0x54f2be['options']);return db[_0x8817('0x28')][_0x8817('0x44')](_0x2d9517)[_0x8817('0x24')](handleEntityNotFound(_0x4177da,null))[_0x8817('0x24')](respondWithResult(_0x4177da,null))[_0x8817('0x45')](handleError(_0x4177da,null));};exports[_0x8817('0x46')]=function(_0x477ae7,_0x2d341a){return db[_0x8817('0x28')]['create'](_0x477ae7[_0x8817('0x47')],{})[_0x8817('0x24')](respondWithResult(_0x2d341a,0xc9))[_0x8817('0x45')](handleError(_0x2d341a,null));};exports[_0x8817('0x23')]=function(_0x5c31e3,_0x2710c6){if(_0x5c31e3[_0x8817('0x47')]['id']){delete _0x5c31e3[_0x8817('0x47')]['id'];}return db[_0x8817('0x28')][_0x8817('0x44')]({'where':{'id':_0x5c31e3['params']['id']}})[_0x8817('0x24')](handleEntityNotFound(_0x2710c6,null))[_0x8817('0x24')](saveUpdates(_0x5c31e3[_0x8817('0x47')],null))[_0x8817('0x24')](respondWithResult(_0x2710c6,null))[_0x8817('0x45')](handleError(_0x2710c6,null));};exports[_0x8817('0x25')]=function(_0x35a4f7,_0x41d3a8){return db[_0x8817('0x28')][_0x8817('0x44')]({'where':{'id':_0x35a4f7[_0x8817('0x48')]['id']}})[_0x8817('0x24')](handleEntityNotFound(_0x41d3a8,null))[_0x8817('0x24')](removeEntity(_0x41d3a8,null))[_0x8817('0x45')](handleError(_0x41d3a8,null));};exports[_0x8817('0x49')]=function(_0x53d9d9,_0x465591,_0x436b0f){var _0x6272e1={};var _0xcbd16e={};var _0x538ea2;var _0xead281;return db[_0x8817('0x28')][_0x8817('0x4a')]({'where':{'id':_0x53d9d9[_0x8817('0x48')]['id']}})[_0x8817('0x24')](handleEntityNotFound(_0x465591,null))[_0x8817('0x24')](function(_0x2721f6){if(_0x2721f6){_0x538ea2=_0x2721f6;_0xcbd16e[_0x8817('0x2d')]=_['keys'](db[_0x8817('0x4b')]['rawAttributes']);_0xcbd16e[_0x8817('0x2e')]=_[_0x8817('0x2f')](_0x53d9d9[_0x8817('0x2e')]);_0xcbd16e[_0x8817('0x30')]=_[_0x8817('0x31')](_0xcbd16e[_0x8817('0x2d')],_0xcbd16e[_0x8817('0x2e')]);_0x6272e1['attributes']=_[_0x8817('0x31')](_0xcbd16e[_0x8817('0x2d')],qs[_0x8817('0x33')](_0x53d9d9['query'][_0x8817('0x33')]));_0x6272e1[_0x8817('0x32')]=_0x6272e1[_0x8817('0x32')]['length']?_0x6272e1[_0x8817('0x32')]:_0xcbd16e[_0x8817('0x2d')];_0x6272e1[_0x8817('0x37')]=qs['sort'](_0x53d9d9[_0x8817('0x2e')]['sort']);_0x6272e1[_0x8817('0x39')]=qs[_0x8817('0x30')](_[_0x8817('0x3a')](_0x53d9d9['query'],_0xcbd16e[_0x8817('0x30')]));if(_0x53d9d9[_0x8817('0x2e')][_0x8817('0x3c')]){_0x6272e1['where']=_[_0x8817('0x3d')](_0x6272e1[_0x8817('0x39')],{'$or':_['map'](_0x6272e1[_0x8817('0x32')],function(_0x35a67f){var _0x5e29e8={};_0x5e29e8[_0x35a67f]={'$like':'%'+_0x53d9d9[_0x8817('0x2e')][_0x8817('0x3c')]+'%'};return _0x5e29e8;})});}_0x6272e1=_[_0x8817('0x3d')]({},_0x6272e1,_0x53d9d9['options']);return _0x538ea2[_0x8817('0x49')](_0x6272e1);}})[_0x8817('0x24')](function(_0x58069e){if(_0x58069e){_0xead281=_0x58069e['length'];if(!_0x53d9d9[_0x8817('0x2e')][_0x8817('0x35')]('nolimit')){_0x6272e1['limit']=qs[_0x8817('0x1b')](_0x53d9d9[_0x8817('0x2e')]['limit']);_0x6272e1[_0x8817('0x1a')]=qs[_0x8817('0x1a')](_0x53d9d9[_0x8817('0x2e')][_0x8817('0x1a')]);}return _0x538ea2[_0x8817('0x49')](_0x6272e1);}})['then'](function(_0x549048){if(_0x549048){return _0x549048?{'count':_0xead281,'rows':_0x549048}:null;}})[_0x8817('0x24')](respondWithResult(_0x465591,null))[_0x8817('0x45')](handleError(_0x465591,null));};exports[_0x8817('0x4c')]=function(_0x1f6a4f,_0x39d2d1,_0x540e7a){var _0x17e3a2={};var _0x5e2269={};var _0x237ca1;var _0x385dba;return db['Dynamics365Configuration']['findOne']({'where':{'id':_0x1f6a4f['params']['id']}})[_0x8817('0x24')](handleEntityNotFound(_0x39d2d1,null))['then'](function(_0xbe2461){if(_0xbe2461){_0x237ca1=_0xbe2461;_0x5e2269[_0x8817('0x2d')]=_['keys'](db[_0x8817('0x4b')]['rawAttributes']);_0x5e2269[_0x8817('0x2e')]=_['keys'](_0x1f6a4f['query']);_0x5e2269[_0x8817('0x30')]=_[_0x8817('0x31')](_0x5e2269[_0x8817('0x2d')],_0x5e2269[_0x8817('0x2e')]);_0x17e3a2[_0x8817('0x32')]=_['intersection'](_0x5e2269[_0x8817('0x2d')],qs['fields'](_0x1f6a4f['query'][_0x8817('0x33')]));_0x17e3a2[_0x8817('0x32')]=_0x17e3a2[_0x8817('0x32')][_0x8817('0x34')]?_0x17e3a2['attributes']:_0x5e2269[_0x8817('0x2d')];_0x17e3a2[_0x8817('0x37')]=qs[_0x8817('0x38')](_0x1f6a4f[_0x8817('0x2e')][_0x8817('0x38')]);_0x17e3a2['where']=qs['filters'](_[_0x8817('0x3a')](_0x1f6a4f[_0x8817('0x2e')],_0x5e2269[_0x8817('0x30')]));if(_0x1f6a4f[_0x8817('0x2e')][_0x8817('0x3c')]){_0x17e3a2[_0x8817('0x39')]=_['merge'](_0x17e3a2[_0x8817('0x39')],{'$or':_[_0x8817('0x27')](_0x17e3a2[_0x8817('0x32')],function(_0x24aa6f){var _0xc74f27={};_0xc74f27[_0x24aa6f]={'$like':'%'+_0x1f6a4f['query'][_0x8817('0x3c')]+'%'};return _0xc74f27;})});}_0x17e3a2=_[_0x8817('0x3d')]({},_0x17e3a2,_0x1f6a4f[_0x8817('0x3e')]);return _0x237ca1[_0x8817('0x4c')](_0x17e3a2);}})[_0x8817('0x24')](function(_0x1ba917){if(_0x1ba917){_0x385dba=_0x1ba917[_0x8817('0x34')];if(!_0x1f6a4f[_0x8817('0x2e')][_0x8817('0x35')](_0x8817('0x36'))){_0x17e3a2[_0x8817('0x1b')]=qs[_0x8817('0x1b')](_0x1f6a4f[_0x8817('0x2e')]['limit']);_0x17e3a2[_0x8817('0x1a')]=qs[_0x8817('0x1a')](_0x1f6a4f[_0x8817('0x2e')]['offset']);}return _0x237ca1[_0x8817('0x4c')](_0x17e3a2);}})[_0x8817('0x24')](function(_0x56810d){if(_0x56810d){return _0x56810d?{'count':_0x385dba,'rows':_0x56810d}:null;}})['then'](respondWithResult(_0x39d2d1,null))[_0x8817('0x45')](handleError(_0x39d2d1,null));};exports[_0x8817('0x4d')]=function(_0x31d027,_0x4135b6,_0x48ddbd){var _0x3879c5={};var _0x152cb6={};var _0x4872db;var _0x297f74;return db['Dynamics365Configuration'][_0x8817('0x4a')]({'where':{'id':_0x31d027[_0x8817('0x48')]['id']}})[_0x8817('0x24')](handleEntityNotFound(_0x4135b6,null))[_0x8817('0x24')](function(_0x5bed46){if(_0x5bed46){_0x4872db=_0x5bed46;_0x152cb6[_0x8817('0x2d')]=_['keys'](db['Dynamics365Field'][_0x8817('0x29')]);_0x152cb6[_0x8817('0x2e')]=_[_0x8817('0x2f')](_0x31d027['query']);_0x152cb6[_0x8817('0x30')]=_[_0x8817('0x31')](_0x152cb6[_0x8817('0x2d')],_0x152cb6[_0x8817('0x2e')]);_0x3879c5[_0x8817('0x32')]=_[_0x8817('0x31')](_0x152cb6['model'],qs[_0x8817('0x33')](_0x31d027[_0x8817('0x2e')][_0x8817('0x33')]));_0x3879c5['attributes']=_0x3879c5['attributes'][_0x8817('0x34')]?_0x3879c5[_0x8817('0x32')]:_0x152cb6[_0x8817('0x2d')];_0x3879c5[_0x8817('0x37')]=qs['sort'](_0x31d027[_0x8817('0x2e')][_0x8817('0x38')]);_0x3879c5[_0x8817('0x39')]=qs[_0x8817('0x30')](_[_0x8817('0x3a')](_0x31d027[_0x8817('0x2e')],_0x152cb6[_0x8817('0x30')]));if(_0x31d027[_0x8817('0x2e')][_0x8817('0x3c')]){_0x3879c5[_0x8817('0x39')]=_[_0x8817('0x3d')](_0x3879c5[_0x8817('0x39')],{'$or':_[_0x8817('0x27')](_0x3879c5[_0x8817('0x32')],function(_0x4bc4e9){var _0x3ea389={};_0x3ea389[_0x4bc4e9]={'$like':'%'+_0x31d027['query'][_0x8817('0x3c')]+'%'};return _0x3ea389;})});}_0x3879c5=_[_0x8817('0x3d')]({},_0x3879c5,_0x31d027[_0x8817('0x3e')]);return _0x4872db[_0x8817('0x4d')](_0x3879c5);}})[_0x8817('0x24')](function(_0x11b3c5){if(_0x11b3c5){_0x297f74=_0x11b3c5['length'];if(!_0x31d027[_0x8817('0x2e')][_0x8817('0x35')](_0x8817('0x36'))){_0x3879c5[_0x8817('0x1b')]=qs[_0x8817('0x1b')](_0x31d027[_0x8817('0x2e')]['limit']);_0x3879c5['offset']=qs['offset'](_0x31d027[_0x8817('0x2e')][_0x8817('0x1a')]);}return _0x4872db[_0x8817('0x4d')](_0x3879c5);}})[_0x8817('0x24')](function(_0x471a3e){if(_0x471a3e){return _0x471a3e?{'count':_0x297f74,'rows':_0x471a3e}:null;}})[_0x8817('0x24')](respondWithResult(_0x4135b6,null))[_0x8817('0x45')](handleError(_0x4135b6,null));};
\ No newline at end of file
+var _0x7fcb=['sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','create','body','getFields','findOne','Dynamics365Field','order','nolimit','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','map','Dynamics365Configuration','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty'];(function(_0xc9396b,_0x734ceb){var _0x56d6ee=function(_0x2456c0){while(--_0x2456c0){_0xc9396b['push'](_0xc9396b['shift']());}};_0x56d6ee(++_0x734ceb);}(_0x7fcb,0xbd));var _0xb7fc=function(_0x1855de,_0x15a076){_0x1855de=_0x1855de-0x0;var _0x16b75a=_0x7fcb[_0x1855de];return _0x16b75a;};'use strict';var emlformat=require(_0xb7fc('0x0'));var rimraf=require(_0xb7fc('0x1'));var zipdir=require(_0xb7fc('0x2'));var jsonpatch=require(_0xb7fc('0x3'));var rp=require(_0xb7fc('0x4'));var moment=require('moment');var BPromise=require(_0xb7fc('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xb7fc('0x6'));var ejs=require(_0xb7fc('0x7'));var fs=require('fs');var fs_extra=require(_0xb7fc('0x8'));var _=require(_0xb7fc('0x9'));var squel=require(_0xb7fc('0xa'));var crypto=require(_0xb7fc('0xb'));var jsforce=require(_0xb7fc('0xc'));var deskjs=require(_0xb7fc('0xd'));var toCsv=require(_0xb7fc('0x6'));var querystring=require(_0xb7fc('0xe'));var Papa=require(_0xb7fc('0xf'));var Redis=require(_0xb7fc('0x10'));var authService=require(_0xb7fc('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xb7fc('0x12'));var hardwareService=require(_0xb7fc('0x13'));var logger=require(_0xb7fc('0x14'))(_0xb7fc('0x15'));var utils=require(_0xb7fc('0x16'));var config=require(_0xb7fc('0x17'));var licenseUtil=require(_0xb7fc('0x18'));var db=require(_0xb7fc('0x19'))['db'];function respondWithStatusCode(_0x15d2bb,_0x62e37b){_0x62e37b=_0x62e37b||0xcc;return function(_0x36fba6){if(_0x36fba6){return _0x15d2bb['sendStatus'](_0x62e37b);}return _0x15d2bb[_0xb7fc('0x1a')](_0x62e37b)[_0xb7fc('0x1b')]();};}function respondWithResult(_0x857ecc,_0x3b592a){_0x3b592a=_0x3b592a||0xc8;return function(_0x4ed515){if(_0x4ed515){return _0x857ecc[_0xb7fc('0x1a')](_0x3b592a)[_0xb7fc('0x1c')](_0x4ed515);}};}function respondWithFilteredResult(_0x44570a,_0x2188c4){return function(_0x204e71){if(_0x204e71){var _0x4a9c00=typeof _0x2188c4[_0xb7fc('0x1d')]===_0xb7fc('0x1e')&&typeof _0x2188c4[_0xb7fc('0x1f')]==='undefined';var _0x163346=_0x204e71[_0xb7fc('0x20')];var _0x2b13a1=_0x4a9c00?0x0:_0x2188c4[_0xb7fc('0x1d')];var _0x4de171=_0x4a9c00?_0x204e71['count']:_0x2188c4['offset']+_0x2188c4['limit'];var _0x5b8eeb;if(_0x4de171>=_0x163346){_0x4de171=_0x163346;_0x5b8eeb=0xc8;}else{_0x5b8eeb=0xce;}_0x44570a['status'](_0x5b8eeb);return _0x44570a[_0xb7fc('0x21')](_0xb7fc('0x22'),_0x2b13a1+'-'+_0x4de171+'/'+_0x163346)['json'](_0x204e71);}return null;};}function patchUpdates(_0x392176){return function(_0x3f69fa){try{jsonpatch[_0xb7fc('0x23')](_0x3f69fa,_0x392176,!![]);}catch(_0x1f366e){return BPromise[_0xb7fc('0x24')](_0x1f366e);}return _0x3f69fa['save']();};}function saveUpdates(_0x114175,_0x503648){return function(_0xb69f50){if(_0xb69f50){return _0xb69f50[_0xb7fc('0x25')](_0x114175)[_0xb7fc('0x26')](function(_0x51a482){return _0x51a482;});}return null;};}function removeEntity(_0x54555a,_0x16cd73){return function(_0x231c23){if(_0x231c23){return _0x231c23[_0xb7fc('0x27')]()[_0xb7fc('0x26')](function(){_0x54555a[_0xb7fc('0x1a')](0xcc)[_0xb7fc('0x1b')]();});}};}function handleEntityNotFound(_0x4f622c,_0x58795a){return function(_0x259c50){if(!_0x259c50){_0x4f622c[_0xb7fc('0x28')](0x194);}return _0x259c50;};}function handleError(_0x5b9fc9,_0x1b013f){_0x1b013f=_0x1b013f||0x1f4;return function(_0x202650){logger[_0xb7fc('0x29')](_0x202650[_0xb7fc('0x2a')]);if(_0x202650[_0xb7fc('0x2b')]){delete _0x202650[_0xb7fc('0x2b')];}_0x5b9fc9[_0xb7fc('0x1a')](_0x1b013f)[_0xb7fc('0x2c')](_0x202650);};}exports['index']=function(_0x5672ba,_0x16fe8a){var _0x42ea3e={},_0x55286d={},_0x3f76e9={'count':0x0,'rows':[]};var _0x2611c9=_[_0xb7fc('0x2d')](db[_0xb7fc('0x2e')][_0xb7fc('0x2f')],function(_0x4bb15e){return{'name':_0x4bb15e[_0xb7fc('0x30')],'type':_0x4bb15e[_0xb7fc('0x31')][_0xb7fc('0x32')]};});_0x55286d[_0xb7fc('0x33')]=_[_0xb7fc('0x2d')](_0x2611c9,_0xb7fc('0x2b'));_0x55286d[_0xb7fc('0x34')]=_[_0xb7fc('0x35')](_0x5672ba[_0xb7fc('0x34')]);_0x55286d[_0xb7fc('0x36')]=_[_0xb7fc('0x37')](_0x55286d[_0xb7fc('0x33')],_0x55286d['query']);_0x42ea3e['attributes']=_[_0xb7fc('0x37')](_0x55286d[_0xb7fc('0x33')],qs[_0xb7fc('0x38')](_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x38')]));_0x42ea3e[_0xb7fc('0x39')]=_0x42ea3e['attributes'][_0xb7fc('0x3a')]?_0x42ea3e['attributes']:_0x55286d[_0xb7fc('0x33')];if(!_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x3b')]('nolimit')){_0x42ea3e['limit']=qs[_0xb7fc('0x1f')](_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x1f')]);_0x42ea3e['offset']=qs[_0xb7fc('0x1d')](_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x1d')]);}_0x42ea3e['order']=qs['sort'](_0x5672ba['query'][_0xb7fc('0x3c')]);_0x42ea3e[_0xb7fc('0x3d')]=qs[_0xb7fc('0x36')](_[_0xb7fc('0x3e')](_0x5672ba[_0xb7fc('0x34')],_0x55286d['filters']),_0x2611c9);if(_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x3f')]){_0x42ea3e['where']=_[_0xb7fc('0x40')](_0x42ea3e['where'],{'$or':_[_0xb7fc('0x2d')](_0x2611c9,function(_0x13cd3a){if(_0x13cd3a['type']!==_0xb7fc('0x41')){var _0x1a7fa3={};_0x1a7fa3[_0x13cd3a[_0xb7fc('0x2b')]]={'$like':'%'+_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x3f')]+'%'};return _0x1a7fa3;}})});}_0x42ea3e=_['merge']({},_0x42ea3e,_0x5672ba[_0xb7fc('0x42')]);var _0x4dc1ae={'where':_0x42ea3e['where']};return db[_0xb7fc('0x2e')][_0xb7fc('0x20')](_0x4dc1ae)[_0xb7fc('0x26')](function(_0x457092){_0x3f76e9[_0xb7fc('0x20')]=_0x457092;if(_0x5672ba[_0xb7fc('0x34')][_0xb7fc('0x43')]){_0x42ea3e[_0xb7fc('0x44')]=[{'all':!![]}];}return db['Dynamics365Configuration']['findAll'](_0x42ea3e);})['then'](function(_0x59e3a7){_0x3f76e9[_0xb7fc('0x45')]=_0x59e3a7;return _0x3f76e9;})[_0xb7fc('0x26')](respondWithFilteredResult(_0x16fe8a,_0x42ea3e))[_0xb7fc('0x46')](handleError(_0x16fe8a,null));};exports[_0xb7fc('0x47')]=function(_0xb5b773,_0x3f10b5){var _0x525aa9={'raw':![],'where':{'id':_0xb5b773[_0xb7fc('0x48')]['id']}},_0x8a9de2={};_0x8a9de2[_0xb7fc('0x33')]=_[_0xb7fc('0x35')](db['Dynamics365Configuration'][_0xb7fc('0x2f')]);_0x8a9de2[_0xb7fc('0x34')]=_[_0xb7fc('0x35')](_0xb5b773[_0xb7fc('0x34')]);_0x8a9de2[_0xb7fc('0x36')]=_['intersection'](_0x8a9de2['model'],_0x8a9de2[_0xb7fc('0x34')]);_0x525aa9[_0xb7fc('0x39')]=_[_0xb7fc('0x37')](_0x8a9de2[_0xb7fc('0x33')],qs[_0xb7fc('0x38')](_0xb5b773['query'][_0xb7fc('0x38')]));_0x525aa9[_0xb7fc('0x39')]=_0x525aa9[_0xb7fc('0x39')][_0xb7fc('0x3a')]?_0x525aa9['attributes']:_0x8a9de2[_0xb7fc('0x33')];if(_0xb5b773[_0xb7fc('0x34')]['includeAll']){_0x525aa9['include']=[{'all':!![]}];}_0x525aa9=_[_0xb7fc('0x40')]({},_0x525aa9,_0xb5b773[_0xb7fc('0x42')]);return db['Dynamics365Configuration'][_0xb7fc('0x49')](_0x525aa9)[_0xb7fc('0x26')](handleEntityNotFound(_0x3f10b5,null))[_0xb7fc('0x26')](respondWithResult(_0x3f10b5,null))[_0xb7fc('0x46')](handleError(_0x3f10b5,null));};exports[_0xb7fc('0x4a')]=function(_0x5e3962,_0x8e2a5a){return db[_0xb7fc('0x2e')][_0xb7fc('0x4a')](_0x5e3962[_0xb7fc('0x4b')],{})[_0xb7fc('0x26')](respondWithResult(_0x8e2a5a,0xc9))[_0xb7fc('0x46')](handleError(_0x8e2a5a,null));};exports['update']=function(_0x1c15dc,_0x34be43){if(_0x1c15dc[_0xb7fc('0x4b')]['id']){delete _0x1c15dc['body']['id'];}return db['Dynamics365Configuration'][_0xb7fc('0x49')]({'where':{'id':_0x1c15dc['params']['id']}})[_0xb7fc('0x26')](handleEntityNotFound(_0x34be43,null))[_0xb7fc('0x26')](saveUpdates(_0x1c15dc[_0xb7fc('0x4b')],null))[_0xb7fc('0x26')](respondWithResult(_0x34be43,null))[_0xb7fc('0x46')](handleError(_0x34be43,null));};exports['destroy']=function(_0x54ab40,_0x3e8448){return db[_0xb7fc('0x2e')][_0xb7fc('0x49')]({'where':{'id':_0x54ab40[_0xb7fc('0x48')]['id']}})[_0xb7fc('0x26')](handleEntityNotFound(_0x3e8448,null))[_0xb7fc('0x26')](removeEntity(_0x3e8448,null))[_0xb7fc('0x46')](handleError(_0x3e8448,null));};exports[_0xb7fc('0x4c')]=function(_0x242744,_0x3c2f72,_0x2ef015){var _0x589ef9={};var _0x543a16={};var _0x17e630;var _0x14dcd5;return db[_0xb7fc('0x2e')][_0xb7fc('0x4d')]({'where':{'id':_0x242744[_0xb7fc('0x48')]['id']}})[_0xb7fc('0x26')](handleEntityNotFound(_0x3c2f72,null))['then'](function(_0xed988f){if(_0xed988f){_0x17e630=_0xed988f;_0x543a16['model']=_[_0xb7fc('0x35')](db[_0xb7fc('0x4e')][_0xb7fc('0x2f')]);_0x543a16[_0xb7fc('0x34')]=_['keys'](_0x242744[_0xb7fc('0x34')]);_0x543a16[_0xb7fc('0x36')]=_[_0xb7fc('0x37')](_0x543a16[_0xb7fc('0x33')],_0x543a16['query']);_0x589ef9['attributes']=_['intersection'](_0x543a16[_0xb7fc('0x33')],qs[_0xb7fc('0x38')](_0x242744['query'][_0xb7fc('0x38')]));_0x589ef9[_0xb7fc('0x39')]=_0x589ef9[_0xb7fc('0x39')]['length']?_0x589ef9[_0xb7fc('0x39')]:_0x543a16[_0xb7fc('0x33')];_0x589ef9[_0xb7fc('0x4f')]=qs[_0xb7fc('0x3c')](_0x242744[_0xb7fc('0x34')][_0xb7fc('0x3c')]);_0x589ef9[_0xb7fc('0x3d')]=qs[_0xb7fc('0x36')](_[_0xb7fc('0x3e')](_0x242744['query'],_0x543a16[_0xb7fc('0x36')]));if(_0x242744[_0xb7fc('0x34')][_0xb7fc('0x3f')]){_0x589ef9[_0xb7fc('0x3d')]=_['merge'](_0x589ef9[_0xb7fc('0x3d')],{'$or':_[_0xb7fc('0x2d')](_0x589ef9[_0xb7fc('0x39')],function(_0x29916f){var _0x20d84a={};_0x20d84a[_0x29916f]={'$like':'%'+_0x242744[_0xb7fc('0x34')]['filter']+'%'};return _0x20d84a;})});}_0x589ef9=_[_0xb7fc('0x40')]({},_0x589ef9,_0x242744[_0xb7fc('0x42')]);return _0x17e630[_0xb7fc('0x4c')](_0x589ef9);}})[_0xb7fc('0x26')](function(_0x30867e){if(_0x30867e){_0x14dcd5=_0x30867e['length'];if(!_0x242744[_0xb7fc('0x34')][_0xb7fc('0x3b')](_0xb7fc('0x50'))){_0x589ef9['limit']=qs[_0xb7fc('0x1f')](_0x242744['query'][_0xb7fc('0x1f')]);_0x589ef9[_0xb7fc('0x1d')]=qs[_0xb7fc('0x1d')](_0x242744[_0xb7fc('0x34')][_0xb7fc('0x1d')]);}return _0x17e630[_0xb7fc('0x4c')](_0x589ef9);}})['then'](function(_0x3e996f){if(_0x3e996f){return _0x3e996f?{'count':_0x14dcd5,'rows':_0x3e996f}:null;}})[_0xb7fc('0x26')](respondWithResult(_0x3c2f72,null))['catch'](handleError(_0x3c2f72,null));};exports[_0xb7fc('0x51')]=function(_0x3473ad,_0x5926d7,_0xe6c860){var _0x2f033d={};var _0x5acbb1={};var _0x364071;var _0x3dcadc;return db[_0xb7fc('0x2e')][_0xb7fc('0x4d')]({'where':{'id':_0x3473ad[_0xb7fc('0x48')]['id']}})[_0xb7fc('0x26')](handleEntityNotFound(_0x5926d7,null))['then'](function(_0xe1a0ef){if(_0xe1a0ef){_0x364071=_0xe1a0ef;_0x5acbb1[_0xb7fc('0x33')]=_[_0xb7fc('0x35')](db['Dynamics365Field'][_0xb7fc('0x2f')]);_0x5acbb1[_0xb7fc('0x34')]=_[_0xb7fc('0x35')](_0x3473ad[_0xb7fc('0x34')]);_0x5acbb1['filters']=_[_0xb7fc('0x37')](_0x5acbb1[_0xb7fc('0x33')],_0x5acbb1[_0xb7fc('0x34')]);_0x2f033d['attributes']=_[_0xb7fc('0x37')](_0x5acbb1[_0xb7fc('0x33')],qs['fields'](_0x3473ad[_0xb7fc('0x34')][_0xb7fc('0x38')]));_0x2f033d[_0xb7fc('0x39')]=_0x2f033d[_0xb7fc('0x39')]['length']?_0x2f033d[_0xb7fc('0x39')]:_0x5acbb1[_0xb7fc('0x33')];_0x2f033d[_0xb7fc('0x4f')]=qs['sort'](_0x3473ad[_0xb7fc('0x34')][_0xb7fc('0x3c')]);_0x2f033d[_0xb7fc('0x3d')]=qs[_0xb7fc('0x36')](_['pick'](_0x3473ad[_0xb7fc('0x34')],_0x5acbb1[_0xb7fc('0x36')]));if(_0x3473ad['query'][_0xb7fc('0x3f')]){_0x2f033d[_0xb7fc('0x3d')]=_[_0xb7fc('0x40')](_0x2f033d[_0xb7fc('0x3d')],{'$or':_[_0xb7fc('0x2d')](_0x2f033d[_0xb7fc('0x39')],function(_0x46dc27){var _0x4f9c46={};_0x4f9c46[_0x46dc27]={'$like':'%'+_0x3473ad[_0xb7fc('0x34')][_0xb7fc('0x3f')]+'%'};return _0x4f9c46;})});}_0x2f033d=_[_0xb7fc('0x40')]({},_0x2f033d,_0x3473ad['options']);return _0x364071[_0xb7fc('0x51')](_0x2f033d);}})[_0xb7fc('0x26')](function(_0x155483){if(_0x155483){_0x3dcadc=_0x155483[_0xb7fc('0x3a')];if(!_0x3473ad[_0xb7fc('0x34')][_0xb7fc('0x3b')](_0xb7fc('0x50'))){_0x2f033d[_0xb7fc('0x1f')]=qs[_0xb7fc('0x1f')](_0x3473ad['query'][_0xb7fc('0x1f')]);_0x2f033d[_0xb7fc('0x1d')]=qs[_0xb7fc('0x1d')](_0x3473ad[_0xb7fc('0x34')][_0xb7fc('0x1d')]);}return _0x364071[_0xb7fc('0x51')](_0x2f033d);}})[_0xb7fc('0x26')](function(_0x369b35){if(_0x369b35){return _0x369b35?{'count':_0x3dcadc,'rows':_0x369b35}:null;}})[_0xb7fc('0x26')](respondWithResult(_0x5926d7,null))[_0xb7fc('0x46')](handleError(_0x5926d7,null));};exports[_0xb7fc('0x52')]=function(_0x26d438,_0x43df0d,_0x392dd1){var _0x2a6ff0={};var _0x69b11a={};var _0x47229e;var _0x36abc9;return db[_0xb7fc('0x2e')][_0xb7fc('0x4d')]({'where':{'id':_0x26d438['params']['id']}})['then'](handleEntityNotFound(_0x43df0d,null))[_0xb7fc('0x26')](function(_0x36f163){if(_0x36f163){_0x47229e=_0x36f163;_0x69b11a[_0xb7fc('0x33')]=_[_0xb7fc('0x35')](db[_0xb7fc('0x4e')][_0xb7fc('0x2f')]);_0x69b11a['query']=_[_0xb7fc('0x35')](_0x26d438['query']);_0x69b11a[_0xb7fc('0x36')]=_[_0xb7fc('0x37')](_0x69b11a[_0xb7fc('0x33')],_0x69b11a['query']);_0x2a6ff0[_0xb7fc('0x39')]=_[_0xb7fc('0x37')](_0x69b11a[_0xb7fc('0x33')],qs['fields'](_0x26d438[_0xb7fc('0x34')][_0xb7fc('0x38')]));_0x2a6ff0[_0xb7fc('0x39')]=_0x2a6ff0[_0xb7fc('0x39')]['length']?_0x2a6ff0[_0xb7fc('0x39')]:_0x69b11a[_0xb7fc('0x33')];_0x2a6ff0[_0xb7fc('0x4f')]=qs[_0xb7fc('0x3c')](_0x26d438[_0xb7fc('0x34')][_0xb7fc('0x3c')]);_0x2a6ff0[_0xb7fc('0x3d')]=qs['filters'](_[_0xb7fc('0x3e')](_0x26d438[_0xb7fc('0x34')],_0x69b11a[_0xb7fc('0x36')]));if(_0x26d438[_0xb7fc('0x34')][_0xb7fc('0x3f')]){_0x2a6ff0['where']=_[_0xb7fc('0x40')](_0x2a6ff0[_0xb7fc('0x3d')],{'$or':_[_0xb7fc('0x2d')](_0x2a6ff0[_0xb7fc('0x39')],function(_0x38d676){var _0x23a225={};_0x23a225[_0x38d676]={'$like':'%'+_0x26d438[_0xb7fc('0x34')]['filter']+'%'};return _0x23a225;})});}_0x2a6ff0=_[_0xb7fc('0x40')]({},_0x2a6ff0,_0x26d438[_0xb7fc('0x42')]);return _0x47229e[_0xb7fc('0x52')](_0x2a6ff0);}})[_0xb7fc('0x26')](function(_0x5958fd){if(_0x5958fd){_0x36abc9=_0x5958fd['length'];if(!_0x26d438['query'][_0xb7fc('0x3b')](_0xb7fc('0x50'))){_0x2a6ff0[_0xb7fc('0x1f')]=qs[_0xb7fc('0x1f')](_0x26d438[_0xb7fc('0x34')]['limit']);_0x2a6ff0[_0xb7fc('0x1d')]=qs['offset'](_0x26d438[_0xb7fc('0x34')][_0xb7fc('0x1d')]);}return _0x47229e['getDescriptions'](_0x2a6ff0);}})[_0xb7fc('0x26')](function(_0x3f908c){if(_0x3f908c){return _0x3f908c?{'count':_0x36abc9,'rows':_0x3f908c}:null;}})[_0xb7fc('0x26')](respondWithResult(_0x43df0d,null))[_0xb7fc('0x46')](handleError(_0x43df0d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['exports','Dynamics365Configuration','int_dynamics365_configurations','lodash','../../config/logger','api','moment','path','../../config/environment','./intDynamics365Configuration.attributes'];(function(_0x3f0752,_0x49c7ce){var _0x3d2d59=function(_0x1c4137){while(--_0x1c4137){_0x3f0752['push'](_0x3f0752['shift']());}};_0x3d2d59(++_0x49c7ce);}(_0x3e74,0x175));var _0x43e7=function(_0x4c3491,_0x21f57b){_0x4c3491=_0x4c3491-0x0;var _0x46ccda=_0x3e74[_0x4c3491];return _0x46ccda;};'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 fs=require('fs');var path=require(_0x43e7('0x4'));var rimraf=require('rimraf');var config=require(_0x43e7('0x5'));var attributes=require(_0x43e7('0x6'));module[_0x43e7('0x7')]=function(_0x1c503b,_0xc98b9c){return _0x1c503b['define'](_0x43e7('0x8'),attributes,{'tableName':_0x43e7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x00bb=['util','../../config/logger','moment','request-promise','path','../../config/environment','./intDynamics365Configuration.attributes','define','Dynamics365Configuration','int_dynamics365_configurations','lodash'];(function(_0x29d449,_0x8ae281){var _0x93ea94=function(_0x39c346){while(--_0x39c346){_0x29d449['push'](_0x29d449['shift']());}};_0x93ea94(++_0x8ae281);}(_0x00bb,0x1d8));var _0xb00b=function(_0x47b58b,_0x41a189){_0x47b58b=_0x47b58b-0x0;var _0x46bebe=_0x00bb[_0x47b58b];return _0x46bebe;};'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 fs=require('fs');var path=require(_0xb00b('0x5'));var rimraf=require('rimraf');var config=require(_0xb00b('0x6'));var attributes=require(_0xb00b('0x7'));module['exports']=function(_0x574cf8,_0x532ffb){return _0x574cf8[_0xb00b('0x8')](_0xb00b('0x9'),attributes,{'tableName':_0xb00b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27c9=['error','code','message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','Dynamics365Configuration,\x20%s,\x20%s','debug','stringify'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x27c9,0x1e8));var _0x927c=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x27c9[_0x2f5ac5];return _0x37c9a8;};'use strict';var _=require('lodash');var util=require(_0x927c('0x0'));var moment=require(_0x927c('0x1'));var BPromise=require(_0x927c('0x2'));var rs=require(_0x927c('0x3'));var fs=require('fs');var Redis=require(_0x927c('0x4'));var db=require(_0x927c('0x5'))['db'];var utils=require(_0x927c('0x6'));var logger=require(_0x927c('0x7'))(_0x927c('0x8'));var config=require(_0x927c('0x9'));var jayson=require(_0x927c('0xa'));var client=jayson[_0x927c('0xb')][_0x927c('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x47b621,_0x43d5fa,_0x12e036){return new BPromise(function(_0x3bc217,_0x4ca0ff){return client['request'](_0x47b621,_0x12e036)[_0x927c('0xd')](function(_0xbc5c8){logger[_0x927c('0xe')](_0x927c('0xf'),_0x43d5fa,'request\x20sent');logger[_0x927c('0x10')]('Dynamics365Configuration,\x20%s,\x20%s,\x20%s',_0x43d5fa,'request\x20sent',JSON[_0x927c('0x11')](_0xbc5c8));if(_0xbc5c8[_0x927c('0x12')]){if(_0xbc5c8[_0x927c('0x12')][_0x927c('0x13')]===0x1f4){logger[_0x927c('0x12')]('Dynamics365Configuration,\x20%s,\x20%s',_0x43d5fa,_0xbc5c8[_0x927c('0x12')]['message']);return _0x4ca0ff(_0xbc5c8['error'][_0x927c('0x14')]);}logger['error'](_0x927c('0xf'),_0x43d5fa,_0xbc5c8[_0x927c('0x12')]['message']);return _0x3bc217(_0xbc5c8['error'][_0x927c('0x14')]);}else{logger[_0x927c('0xe')](_0x927c('0xf'),_0x43d5fa,'request\x20sent');_0x3bc217(_0xbc5c8['result'][_0x927c('0x14')]);}})[_0x927c('0x15')](function(_0x562a76){logger[_0x927c('0x12')]('Dynamics365Configuration,\x20%s,\x20%s',_0x43d5fa,_0x562a76);_0x4ca0ff(_0x562a76);});});}
\ No newline at end of file
+var _0xc805=['../../config/environment','jayson/promise','http','request','info','Dynamics365Configuration,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc'];(function(_0x392237,_0x367f35){var _0x3ae087=function(_0x3b9291){while(--_0x3b9291){_0x392237['push'](_0x392237['shift']());}};_0x3ae087(++_0x367f35);}(_0xc805,0xb7));var _0x5c80=function(_0x21d7a2,_0x5aecda){_0x21d7a2=_0x21d7a2-0x0;var _0x1da981=_0xc805[_0x21d7a2];return _0x1da981;};'use strict';var _=require(_0x5c80('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5c80('0x1'));var rs=require(_0x5c80('0x2'));var fs=require('fs');var Redis=require(_0x5c80('0x3'));var db=require(_0x5c80('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x5c80('0x5'))(_0x5c80('0x6'));var config=require(_0x5c80('0x7'));var jayson=require(_0x5c80('0x8'));var client=jayson['client'][_0x5c80('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x46cca8,_0xad9ae2,_0x5cd8c3){return new BPromise(function(_0x5b4ff3,_0x5e1b34){return client[_0x5c80('0xa')](_0x46cca8,_0x5cd8c3)['then'](function(_0x422200){logger[_0x5c80('0xb')](_0x5c80('0xc'),_0xad9ae2,_0x5c80('0xd'));logger['debug']('Dynamics365Configuration,\x20%s,\x20%s,\x20%s',_0xad9ae2,_0x5c80('0xd'),JSON[_0x5c80('0xe')](_0x422200));if(_0x422200[_0x5c80('0xf')]){if(_0x422200[_0x5c80('0xf')][_0x5c80('0x10')]===0x1f4){logger[_0x5c80('0xf')](_0x5c80('0xc'),_0xad9ae2,_0x422200[_0x5c80('0xf')][_0x5c80('0x11')]);return _0x5e1b34(_0x422200['error'][_0x5c80('0x11')]);}logger[_0x5c80('0xf')](_0x5c80('0xc'),_0xad9ae2,_0x422200['error'][_0x5c80('0x11')]);return _0x5b4ff3(_0x422200[_0x5c80('0xf')][_0x5c80('0x11')]);}else{logger[_0x5c80('0xb')](_0x5c80('0xc'),_0xad9ae2,_0x5c80('0xd'));_0x5b4ff3(_0x422200['result']['message']);}})[_0x5c80('0x12')](function(_0x1088a3){logger[_0x5c80('0xf')](_0x5c80('0xc'),_0xad9ae2,_0x1088a3);_0x5e1b34(_0x1088a3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5a9=['../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','post','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra'];(function(_0xb9fde0,_0xefff88){var _0x5b2fe2=function(_0x438257){while(--_0x438257){_0xb9fde0['push'](_0xb9fde0['shift']());}};_0x5b2fe2(++_0xefff88);}(_0xb5a9,0x11a));var _0x9b5a=function(_0x15ca11,_0x20c92b){_0x15ca11=_0x15ca11-0x0;var _0x30784f=_0xb5a9[_0x15ca11];return _0x30784f;};'use strict';var multer=require(_0x9b5a('0x0'));var util=require('util');var path=require(_0x9b5a('0x1'));var timeout=require(_0x9b5a('0x2'));var express=require(_0x9b5a('0x3'));var router=express[_0x9b5a('0x4')]();var fs_extra=require(_0x9b5a('0x5'));var auth=require(_0x9b5a('0x6'));var interaction=require(_0x9b5a('0x7'));var config=require('../../config/environment');var controller=require('./intDynamics365Field.controller');router[_0x9b5a('0x8')]('/',auth[_0x9b5a('0x9')](),controller[_0x9b5a('0xa')]);router['get'](_0x9b5a('0xb'),auth[_0x9b5a('0x9')](),controller['show']);router[_0x9b5a('0xc')]('/',auth['isAuthenticated'](),controller['create']);router[_0x9b5a('0xd')](_0x9b5a('0xb'),auth[_0x9b5a('0x9')](),controller[_0x9b5a('0xe')]);router[_0x9b5a('0xf')](_0x9b5a('0xb'),auth[_0x9b5a('0x9')](),controller[_0x9b5a('0x10')]);module[_0x9b5a('0x11')]=router;
\ No newline at end of file
+var _0xd2a9=['put','update','delete','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','post','create'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xd2a9,0x193));var _0x9d2a=function(_0x5f4b67,_0x23b961){_0x5f4b67=_0x5f4b67-0x0;var _0x4f4fcb=_0xd2a9[_0x5f4b67];return _0x4f4fcb;};'use strict';var multer=require(_0x9d2a('0x0'));var util=require(_0x9d2a('0x1'));var path=require('path');var timeout=require(_0x9d2a('0x2'));var express=require(_0x9d2a('0x3'));var router=express[_0x9d2a('0x4')]();var fs_extra=require(_0x9d2a('0x5'));var auth=require(_0x9d2a('0x6'));var interaction=require(_0x9d2a('0x7'));var config=require(_0x9d2a('0x8'));var controller=require('./intDynamics365Field.controller');router['get']('/',auth[_0x9d2a('0x9')](),controller[_0x9d2a('0xa')]);router[_0x9d2a('0xb')](_0x9d2a('0xc'),auth[_0x9d2a('0x9')](),controller['show']);router[_0x9d2a('0xd')]('/',auth[_0x9d2a('0x9')](),controller[_0x9d2a('0xe')]);router[_0x9d2a('0xf')](_0x9d2a('0xc'),auth[_0x9d2a('0x9')](),controller[_0x9d2a('0x10')]);router[_0x9d2a('0x11')]('/:id',auth[_0x9d2a('0x9')](),controller[_0x9d2a('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7342=['exports','string','picklist','STRING','ENUM','customVariable','BOOLEAN','sequelize'];(function(_0x5ba2c8,_0x5826ef){var _0x6c177f=function(_0x15ee42){while(--_0x15ee42){_0x5ba2c8['push'](_0x5ba2c8['shift']());}};_0x6c177f(++_0x5826ef);}(_0x7342,0x87));var _0x2734=function(_0x48a82c,_0xa5c5a6){_0x48a82c=_0x48a82c-0x0;var _0x336292=_0x7342[_0x48a82c];return _0x336292;};'use strict';var Sequelize=require(_0x2734('0x0'));module[_0x2734('0x1')]={'type':{'type':Sequelize['ENUM'](_0x2734('0x2'),'variable','customVariable','keyValue',_0x2734('0x3')),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x2734('0x4')]},'keyType':{'type':Sequelize[_0x2734('0x5')](_0x2734('0x2'),'variable',_0x2734('0x6'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x2734('0x4')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x2734('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xfb43=['exports','ENUM','string','variable','customVariable','picklist','STRING','BOOLEAN'];(function(_0x5c3ae9,_0x450f9a){var _0x3f5950=function(_0x594c1f){while(--_0x594c1f){_0x5c3ae9['push'](_0x5c3ae9['shift']());}};_0x3f5950(++_0x450f9a);}(_0xfb43,0x108));var _0x3fb4=function(_0x328b37,_0x43ec8b){_0x328b37=_0x328b37-0x0;var _0x727126=_0xfb43[_0x328b37];return _0x727126;};'use strict';var Sequelize=require('sequelize');module[_0x3fb4('0x0')]={'type':{'type':Sequelize[_0x3fb4('0x1')](_0x3fb4('0x2'),_0x3fb4('0x3'),_0x3fb4('0x4'),'keyValue',_0x3fb4('0x5')),'defaultValue':_0x3fb4('0x2')},'content':{'type':Sequelize[_0x3fb4('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x3fb4('0x1')](_0x3fb4('0x2'),_0x3fb4('0x3'),_0x3fb4('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x3fb4('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x3fb4('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x3fb4('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f41=['length','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','include','create','body','find','eml-format','fast-json-patch','request-promise','moment','bluebird','util','sox','ejs','fs-extra','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','destroy','error','name','send','index','map','Dynamics365Field','fieldName','type','key','model','query','keys','intersection','attributes','fields'];(function(_0x4b91c4,_0x23f35f){var _0x25cb80=function(_0x48e283){while(--_0x48e283){_0x4b91c4['push'](_0x4b91c4['shift']());}};_0x25cb80(++_0x23f35f);}(_0x4f41,0xac));var _0x14f4=function(_0x530985,_0x5f9c26){_0x530985=_0x530985-0x0;var _0x3e4448=_0x4f41[_0x530985];return _0x3e4448;};'use strict';var emlformat=require(_0x14f4('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x14f4('0x1'));var rp=require(_0x14f4('0x2'));var moment=require(_0x14f4('0x3'));var BPromise=require(_0x14f4('0x4'));var Mustache=require('mustache');var util=require(_0x14f4('0x5'));var path=require('path');var sox=require(_0x14f4('0x6'));var csv=require('to-csv');var ejs=require(_0x14f4('0x7'));var fs=require('fs');var fs_extra=require(_0x14f4('0x8'));var _=require('lodash');var squel=require(_0x14f4('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x14f4('0xa'));var toCsv=require(_0x14f4('0xb'));var querystring=require(_0x14f4('0xc'));var Papa=require(_0x14f4('0xd'));var Redis=require(_0x14f4('0xe'));var authService=require(_0x14f4('0xf'));var qs=require(_0x14f4('0x10'));var as=require(_0x14f4('0x11'));var hardwareService=require(_0x14f4('0x12'));var logger=require('../../config/logger')(_0x14f4('0x13'));var utils=require('../../config/utils');var config=require(_0x14f4('0x14'));var licenseUtil=require(_0x14f4('0x15'));var db=require(_0x14f4('0x16'))['db'];function respondWithStatusCode(_0x7a533e,_0x49e30f){_0x49e30f=_0x49e30f||0xcc;return function(_0x24b10f){if(_0x24b10f){return _0x7a533e[_0x14f4('0x17')](_0x49e30f);}return _0x7a533e[_0x14f4('0x18')](_0x49e30f)[_0x14f4('0x19')]();};}function respondWithResult(_0xe0f48,_0x228dbc){_0x228dbc=_0x228dbc||0xc8;return function(_0x180a2d){if(_0x180a2d){return _0xe0f48[_0x14f4('0x18')](_0x228dbc)[_0x14f4('0x1a')](_0x180a2d);}};}function respondWithFilteredResult(_0x36fa39,_0x179489){return function(_0x2b29d8){if(_0x2b29d8){var _0x3dec6b=typeof _0x179489[_0x14f4('0x1b')]==='undefined'&&typeof _0x179489[_0x14f4('0x1c')]===_0x14f4('0x1d');var _0x102857=_0x2b29d8['count'];var _0x310a5a=_0x3dec6b?0x0:_0x179489['offset'];var _0x25436f=_0x3dec6b?_0x2b29d8[_0x14f4('0x1e')]:_0x179489[_0x14f4('0x1b')]+_0x179489['limit'];var _0x4c7d9a;if(_0x25436f>=_0x102857){_0x25436f=_0x102857;_0x4c7d9a=0xc8;}else{_0x4c7d9a=0xce;}_0x36fa39[_0x14f4('0x18')](_0x4c7d9a);return _0x36fa39[_0x14f4('0x1f')]('Content-Range',_0x310a5a+'-'+_0x25436f+'/'+_0x102857)[_0x14f4('0x1a')](_0x2b29d8);}return null;};}function patchUpdates(_0x2ba0ec){return function(_0x13d8cf){try{jsonpatch[_0x14f4('0x20')](_0x13d8cf,_0x2ba0ec,!![]);}catch(_0x3bd5aa){return BPromise[_0x14f4('0x21')](_0x3bd5aa);}return _0x13d8cf[_0x14f4('0x22')]();};}function saveUpdates(_0x2e26d8,_0x39d451){return function(_0x152c5c){if(_0x152c5c){return _0x152c5c[_0x14f4('0x23')](_0x2e26d8)[_0x14f4('0x24')](function(_0x4606ae){return _0x4606ae;});}return null;};}function removeEntity(_0x423b3b,_0x3db90c){return function(_0x7e8759){if(_0x7e8759){return _0x7e8759[_0x14f4('0x25')]()[_0x14f4('0x24')](function(){_0x423b3b[_0x14f4('0x18')](0xcc)[_0x14f4('0x19')]();});}};}function handleEntityNotFound(_0x15a7d5,_0x57ef5e){return function(_0x1e1455){if(!_0x1e1455){_0x15a7d5[_0x14f4('0x17')](0x194);}return _0x1e1455;};}function handleError(_0x3f0639,_0x53827c){_0x53827c=_0x53827c||0x1f4;return function(_0x5238a5){logger[_0x14f4('0x26')](_0x5238a5['stack']);if(_0x5238a5[_0x14f4('0x27')]){delete _0x5238a5[_0x14f4('0x27')];}_0x3f0639['status'](_0x53827c)[_0x14f4('0x28')](_0x5238a5);};}exports[_0x14f4('0x29')]=function(_0x1a8432,_0xc265e0){var _0xbfe0ee={},_0x3d2a64={},_0x35d154={'count':0x0,'rows':[]};var _0x320f41=_[_0x14f4('0x2a')](db[_0x14f4('0x2b')]['rawAttributes'],function(_0x573063){return{'name':_0x573063[_0x14f4('0x2c')],'type':_0x573063[_0x14f4('0x2d')][_0x14f4('0x2e')]};});_0x3d2a64[_0x14f4('0x2f')]=_['map'](_0x320f41,_0x14f4('0x27'));_0x3d2a64[_0x14f4('0x30')]=_[_0x14f4('0x31')](_0x1a8432[_0x14f4('0x30')]);_0x3d2a64['filters']=_[_0x14f4('0x32')](_0x3d2a64[_0x14f4('0x2f')],_0x3d2a64[_0x14f4('0x30')]);_0xbfe0ee[_0x14f4('0x33')]=_['intersection'](_0x3d2a64[_0x14f4('0x2f')],qs[_0x14f4('0x34')](_0x1a8432[_0x14f4('0x30')][_0x14f4('0x34')]));_0xbfe0ee['attributes']=_0xbfe0ee[_0x14f4('0x33')][_0x14f4('0x35')]?_0xbfe0ee[_0x14f4('0x33')]:_0x3d2a64['model'];if(!_0x1a8432[_0x14f4('0x30')]['hasOwnProperty'](_0x14f4('0x36'))){_0xbfe0ee[_0x14f4('0x1c')]=qs[_0x14f4('0x1c')](_0x1a8432[_0x14f4('0x30')][_0x14f4('0x1c')]);_0xbfe0ee[_0x14f4('0x1b')]=qs[_0x14f4('0x1b')](_0x1a8432[_0x14f4('0x30')][_0x14f4('0x1b')]);}_0xbfe0ee[_0x14f4('0x37')]=qs['sort'](_0x1a8432[_0x14f4('0x30')][_0x14f4('0x38')]);_0xbfe0ee[_0x14f4('0x39')]=qs[_0x14f4('0x3a')](_[_0x14f4('0x3b')](_0x1a8432[_0x14f4('0x30')],_0x3d2a64[_0x14f4('0x3a')]),_0x320f41);if(_0x1a8432['query'][_0x14f4('0x3c')]){_0xbfe0ee['where']=_['merge'](_0xbfe0ee[_0x14f4('0x39')],{'$or':_[_0x14f4('0x2a')](_0x320f41,function(_0x6bc566){if(_0x6bc566[_0x14f4('0x2d')]!==_0x14f4('0x3d')){var _0x1953f9={};_0x1953f9[_0x6bc566[_0x14f4('0x27')]]={'$like':'%'+_0x1a8432[_0x14f4('0x30')][_0x14f4('0x3c')]+'%'};return _0x1953f9;}})});}_0xbfe0ee=_[_0x14f4('0x3e')]({},_0xbfe0ee,_0x1a8432[_0x14f4('0x3f')]);var _0x2f1a9c={'where':_0xbfe0ee[_0x14f4('0x39')]};return db[_0x14f4('0x2b')][_0x14f4('0x1e')](_0x2f1a9c)[_0x14f4('0x24')](function(_0x503638){_0x35d154[_0x14f4('0x1e')]=_0x503638;if(_0x1a8432[_0x14f4('0x30')][_0x14f4('0x40')]){_0xbfe0ee['include']=[{'all':!![]}];}return db[_0x14f4('0x2b')][_0x14f4('0x41')](_0xbfe0ee);})[_0x14f4('0x24')](function(_0x3c6779){_0x35d154[_0x14f4('0x42')]=_0x3c6779;return _0x35d154;})['then'](respondWithFilteredResult(_0xc265e0,_0xbfe0ee))[_0x14f4('0x43')](handleError(_0xc265e0,null));};exports[_0x14f4('0x44')]=function(_0x4fc464,_0x27661f){var _0x40a06c={'raw':!![],'where':{'id':_0x4fc464[_0x14f4('0x45')]['id']}},_0x18f2f7={};_0x18f2f7[_0x14f4('0x2f')]=_['keys'](db[_0x14f4('0x2b')][_0x14f4('0x46')]);_0x18f2f7[_0x14f4('0x30')]=_[_0x14f4('0x31')](_0x4fc464[_0x14f4('0x30')]);_0x18f2f7[_0x14f4('0x3a')]=_[_0x14f4('0x32')](_0x18f2f7[_0x14f4('0x2f')],_0x18f2f7[_0x14f4('0x30')]);_0x40a06c[_0x14f4('0x33')]=_[_0x14f4('0x32')](_0x18f2f7[_0x14f4('0x2f')],qs[_0x14f4('0x34')](_0x4fc464[_0x14f4('0x30')][_0x14f4('0x34')]));_0x40a06c[_0x14f4('0x33')]=_0x40a06c[_0x14f4('0x33')][_0x14f4('0x35')]?_0x40a06c[_0x14f4('0x33')]:_0x18f2f7[_0x14f4('0x2f')];if(_0x4fc464[_0x14f4('0x30')]['includeAll']){_0x40a06c[_0x14f4('0x47')]=[{'all':!![]}];}_0x40a06c=_[_0x14f4('0x3e')]({},_0x40a06c,_0x4fc464[_0x14f4('0x3f')]);return db['Dynamics365Field']['find'](_0x40a06c)[_0x14f4('0x24')](handleEntityNotFound(_0x27661f,null))[_0x14f4('0x24')](respondWithResult(_0x27661f,null))[_0x14f4('0x43')](handleError(_0x27661f,null));};exports['create']=function(_0x14185d,_0xfcdc78){return db['Dynamics365Field'][_0x14f4('0x48')](_0x14185d[_0x14f4('0x49')],{})['then'](respondWithResult(_0xfcdc78,0xc9))['catch'](handleError(_0xfcdc78,null));};exports[_0x14f4('0x23')]=function(_0x50bd93,_0x33bb03){if(_0x50bd93[_0x14f4('0x49')]['id']){delete _0x50bd93[_0x14f4('0x49')]['id'];}return db[_0x14f4('0x2b')][_0x14f4('0x4a')]({'where':{'id':_0x50bd93[_0x14f4('0x45')]['id']}})[_0x14f4('0x24')](handleEntityNotFound(_0x33bb03,null))[_0x14f4('0x24')](saveUpdates(_0x50bd93[_0x14f4('0x49')],null))[_0x14f4('0x24')](respondWithResult(_0x33bb03,null))[_0x14f4('0x43')](handleError(_0x33bb03,null));};exports['destroy']=function(_0x3e7f36,_0x24ba0a){return db[_0x14f4('0x2b')][_0x14f4('0x4a')]({'where':{'id':_0x3e7f36[_0x14f4('0x45')]['id']}})[_0x14f4('0x24')](handleEntityNotFound(_0x24ba0a,null))[_0x14f4('0x24')](removeEntity(_0x24ba0a,null))[_0x14f4('0x43')](handleError(_0x24ba0a,null));};
\ No newline at end of file
+var _0x9b35=['path','sox','to-csv','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','undefined','limit','count','offset','set','apply','reject','save','then','destroy','stack','name','send','map','Dynamics365Field','key','model','query','keys','filters','attributes','intersection','fields','length','nolimit','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','rawAttributes','create','update','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache'];(function(_0x226c11,_0x14c0a4){var _0x4dc73e=function(_0x17e242){while(--_0x17e242){_0x226c11['push'](_0x226c11['shift']());}};_0x4dc73e(++_0x14c0a4);}(_0x9b35,0x85));var _0x59b3=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x9b35[_0x432682];return _0x463d05;};'use strict';var emlformat=require(_0x59b3('0x0'));var rimraf=require(_0x59b3('0x1'));var zipdir=require(_0x59b3('0x2'));var jsonpatch=require(_0x59b3('0x3'));var rp=require(_0x59b3('0x4'));var moment=require('moment');var BPromise=require(_0x59b3('0x5'));var Mustache=require(_0x59b3('0x6'));var util=require('util');var path=require(_0x59b3('0x7'));var sox=require(_0x59b3('0x8'));var csv=require(_0x59b3('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x59b3('0xa'));var jsforce=require(_0x59b3('0xb'));var deskjs=require(_0x59b3('0xc'));var toCsv=require('to-csv');var querystring=require(_0x59b3('0xd'));var Papa=require(_0x59b3('0xe'));var Redis=require(_0x59b3('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x59b3('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x59b3('0x11'))(_0x59b3('0x12'));var utils=require(_0x59b3('0x13'));var config=require(_0x59b3('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x258848,_0x30f98c){_0x30f98c=_0x30f98c||0xcc;return function(_0x53b1de){if(_0x53b1de){return _0x258848[_0x59b3('0x15')](_0x30f98c);}return _0x258848['status'](_0x30f98c)[_0x59b3('0x16')]();};}function respondWithResult(_0x280a9e,_0x2cbd41){_0x2cbd41=_0x2cbd41||0xc8;return function(_0x40329a){if(_0x40329a){return _0x280a9e[_0x59b3('0x17')](_0x2cbd41)[_0x59b3('0x18')](_0x40329a);}};}function respondWithFilteredResult(_0x4ddb8a,_0x1d9098){return function(_0x55b77c){if(_0x55b77c){var _0x6c062f=typeof _0x1d9098['offset']===_0x59b3('0x19')&&typeof _0x1d9098[_0x59b3('0x1a')]===_0x59b3('0x19');var _0x2c9f4e=_0x55b77c[_0x59b3('0x1b')];var _0x15fa69=_0x6c062f?0x0:_0x1d9098[_0x59b3('0x1c')];var _0x1a891e=_0x6c062f?_0x55b77c['count']:_0x1d9098[_0x59b3('0x1c')]+_0x1d9098['limit'];var _0x3e0213;if(_0x1a891e>=_0x2c9f4e){_0x1a891e=_0x2c9f4e;_0x3e0213=0xc8;}else{_0x3e0213=0xce;}_0x4ddb8a[_0x59b3('0x17')](_0x3e0213);return _0x4ddb8a[_0x59b3('0x1d')]('Content-Range',_0x15fa69+'-'+_0x1a891e+'/'+_0x2c9f4e)[_0x59b3('0x18')](_0x55b77c);}return null;};}function patchUpdates(_0x4277a7){return function(_0x3f4d00){try{jsonpatch[_0x59b3('0x1e')](_0x3f4d00,_0x4277a7,!![]);}catch(_0x1010ea){return BPromise[_0x59b3('0x1f')](_0x1010ea);}return _0x3f4d00[_0x59b3('0x20')]();};}function saveUpdates(_0x48de08,_0x3a23e5){return function(_0x38f7f6){if(_0x38f7f6){return _0x38f7f6['update'](_0x48de08)[_0x59b3('0x21')](function(_0x216cf3){return _0x216cf3;});}return null;};}function removeEntity(_0x5a99ba,_0xb31043){return function(_0x177e84){if(_0x177e84){return _0x177e84[_0x59b3('0x22')]()[_0x59b3('0x21')](function(){_0x5a99ba['status'](0xcc)[_0x59b3('0x16')]();});}};}function handleEntityNotFound(_0x5e3a15,_0x47e29c){return function(_0x469d32){if(!_0x469d32){_0x5e3a15[_0x59b3('0x15')](0x194);}return _0x469d32;};}function handleError(_0x259c7d,_0x40ee64){_0x40ee64=_0x40ee64||0x1f4;return function(_0x4ee9ce){logger['error'](_0x4ee9ce[_0x59b3('0x23')]);if(_0x4ee9ce[_0x59b3('0x24')]){delete _0x4ee9ce[_0x59b3('0x24')];}_0x259c7d['status'](_0x40ee64)[_0x59b3('0x25')](_0x4ee9ce);};}exports['index']=function(_0x5c69ee,_0x2b8331){var _0x324a5d={},_0x403e7d={},_0x4645c5={'count':0x0,'rows':[]};var _0x38df84=_[_0x59b3('0x26')](db[_0x59b3('0x27')]['rawAttributes'],function(_0x429409){return{'name':_0x429409['fieldName'],'type':_0x429409['type'][_0x59b3('0x28')]};});_0x403e7d[_0x59b3('0x29')]=_['map'](_0x38df84,_0x59b3('0x24'));_0x403e7d[_0x59b3('0x2a')]=_[_0x59b3('0x2b')](_0x5c69ee['query']);_0x403e7d[_0x59b3('0x2c')]=_['intersection'](_0x403e7d['model'],_0x403e7d['query']);_0x324a5d[_0x59b3('0x2d')]=_[_0x59b3('0x2e')](_0x403e7d[_0x59b3('0x29')],qs['fields'](_0x5c69ee['query'][_0x59b3('0x2f')]));_0x324a5d[_0x59b3('0x2d')]=_0x324a5d[_0x59b3('0x2d')][_0x59b3('0x30')]?_0x324a5d['attributes']:_0x403e7d[_0x59b3('0x29')];if(!_0x5c69ee[_0x59b3('0x2a')]['hasOwnProperty'](_0x59b3('0x31'))){_0x324a5d['limit']=qs['limit'](_0x5c69ee['query']['limit']);_0x324a5d['offset']=qs[_0x59b3('0x1c')](_0x5c69ee[_0x59b3('0x2a')][_0x59b3('0x1c')]);}_0x324a5d[_0x59b3('0x32')]=qs[_0x59b3('0x33')](_0x5c69ee[_0x59b3('0x2a')][_0x59b3('0x33')]);_0x324a5d[_0x59b3('0x34')]=qs['filters'](_[_0x59b3('0x35')](_0x5c69ee[_0x59b3('0x2a')],_0x403e7d[_0x59b3('0x2c')]),_0x38df84);if(_0x5c69ee['query'][_0x59b3('0x36')]){_0x324a5d[_0x59b3('0x34')]=_['merge'](_0x324a5d[_0x59b3('0x34')],{'$or':_[_0x59b3('0x26')](_0x38df84,function(_0x4d8add){if(_0x4d8add[_0x59b3('0x37')]!==_0x59b3('0x38')){var _0x543d8e={};_0x543d8e[_0x4d8add['name']]={'$like':'%'+_0x5c69ee[_0x59b3('0x2a')]['filter']+'%'};return _0x543d8e;}})});}_0x324a5d=_[_0x59b3('0x39')]({},_0x324a5d,_0x5c69ee[_0x59b3('0x3a')]);var _0xdabe51={'where':_0x324a5d[_0x59b3('0x34')]};return db[_0x59b3('0x27')][_0x59b3('0x1b')](_0xdabe51)['then'](function(_0x27f2fd){_0x4645c5[_0x59b3('0x1b')]=_0x27f2fd;if(_0x5c69ee['query'][_0x59b3('0x3b')]){_0x324a5d[_0x59b3('0x3c')]=[{'all':!![]}];}return db[_0x59b3('0x27')][_0x59b3('0x3d')](_0x324a5d);})[_0x59b3('0x21')](function(_0x5b2fa7){_0x4645c5[_0x59b3('0x3e')]=_0x5b2fa7;return _0x4645c5;})[_0x59b3('0x21')](respondWithFilteredResult(_0x2b8331,_0x324a5d))[_0x59b3('0x3f')](handleError(_0x2b8331,null));};exports[_0x59b3('0x40')]=function(_0x2814bd,_0x8508d9){var _0x188241={'raw':!![],'where':{'id':_0x2814bd['params']['id']}},_0x4da7a5={};_0x4da7a5[_0x59b3('0x29')]=_[_0x59b3('0x2b')](db[_0x59b3('0x27')][_0x59b3('0x41')]);_0x4da7a5[_0x59b3('0x2a')]=_[_0x59b3('0x2b')](_0x2814bd[_0x59b3('0x2a')]);_0x4da7a5[_0x59b3('0x2c')]=_[_0x59b3('0x2e')](_0x4da7a5['model'],_0x4da7a5[_0x59b3('0x2a')]);_0x188241[_0x59b3('0x2d')]=_['intersection'](_0x4da7a5[_0x59b3('0x29')],qs[_0x59b3('0x2f')](_0x2814bd['query'][_0x59b3('0x2f')]));_0x188241['attributes']=_0x188241[_0x59b3('0x2d')][_0x59b3('0x30')]?_0x188241[_0x59b3('0x2d')]:_0x4da7a5[_0x59b3('0x29')];if(_0x2814bd[_0x59b3('0x2a')][_0x59b3('0x3b')]){_0x188241[_0x59b3('0x3c')]=[{'all':!![]}];}_0x188241=_[_0x59b3('0x39')]({},_0x188241,_0x2814bd[_0x59b3('0x3a')]);return db[_0x59b3('0x27')]['find'](_0x188241)[_0x59b3('0x21')](handleEntityNotFound(_0x8508d9,null))[_0x59b3('0x21')](respondWithResult(_0x8508d9,null))[_0x59b3('0x3f')](handleError(_0x8508d9,null));};exports[_0x59b3('0x42')]=function(_0x137001,_0x7e5c03){return db[_0x59b3('0x27')][_0x59b3('0x42')](_0x137001['body'],{})['then'](respondWithResult(_0x7e5c03,0xc9))['catch'](handleError(_0x7e5c03,null));};exports[_0x59b3('0x43')]=function(_0x394c66,_0x49aa3c){if(_0x394c66[_0x59b3('0x44')]['id']){delete _0x394c66[_0x59b3('0x44')]['id'];}return db[_0x59b3('0x27')][_0x59b3('0x45')]({'where':{'id':_0x394c66['params']['id']}})[_0x59b3('0x21')](handleEntityNotFound(_0x49aa3c,null))[_0x59b3('0x21')](saveUpdates(_0x394c66[_0x59b3('0x44')],null))[_0x59b3('0x21')](respondWithResult(_0x49aa3c,null))[_0x59b3('0x3f')](handleError(_0x49aa3c,null));};exports[_0x59b3('0x22')]=function(_0x18c3c6,_0xbc2188){return db[_0x59b3('0x27')][_0x59b3('0x45')]({'where':{'id':_0x18c3c6['params']['id']}})[_0x59b3('0x21')](handleEntityNotFound(_0xbc2188,null))[_0x59b3('0x21')](removeEntity(_0xbc2188,null))[_0x59b3('0x3f')](handleError(_0xbc2188,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffe3=['../../config/environment','exports','define','Dynamics365Field','int_dynamics365_fields','dynamics365_unique_index','idField','util','moment','bluebird','request-promise','rimraf'];(function(_0x3511d3,_0x4107ae){var _0x5d6321=function(_0x1a23da){while(--_0x1a23da){_0x3511d3['push'](_0x3511d3['shift']());}};_0x5d6321(++_0x4107ae);}(_0xffe3,0xc7));var _0x3ffe=function(_0x15c2ce,_0xe8075a){_0x15c2ce=_0x15c2ce-0x0;var _0x23699e=_0xffe3[_0x15c2ce];return _0x23699e;};'use strict';var _=require('lodash');var util=require(_0x3ffe('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x3ffe('0x1'));var BPromise=require(_0x3ffe('0x2'));var rp=require(_0x3ffe('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3ffe('0x4'));var config=require(_0x3ffe('0x5'));var attributes=require('./intDynamics365Field.attributes');module[_0x3ffe('0x6')]=function(_0x2df2c5,_0x572184){return _0x2df2c5[_0x3ffe('0x7')](_0x3ffe('0x8'),attributes,{'tableName':_0x3ffe('0x9'),'paranoid':![],'indexes':[{'name':_0x3ffe('0xa'),'fields':[_0x3ffe('0xb'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6316=['lodash','util','../../config/logger','api','path','../../config/environment','./intDynamics365Field.attributes','exports','define','Dynamics365Field','dynamics365_unique_index','FieldId'];(function(_0x2c405c,_0x5b158a){var _0xb77730=function(_0x3bf171){while(--_0x3bf171){_0x2c405c['push'](_0x2c405c['shift']());}};_0xb77730(++_0x5b158a);}(_0x6316,0xd8));var _0x6631=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x6316[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x6631('0x0'));var util=require(_0x6631('0x1'));var logger=require(_0x6631('0x2'))(_0x6631('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6631('0x4'));var rimraf=require('rimraf');var config=require(_0x6631('0x5'));var attributes=require(_0x6631('0x6'));module[_0x6631('0x7')]=function(_0x350a05,_0x125153){return _0x350a05[_0x6631('0x8')](_0x6631('0x9'),attributes,{'tableName':'int_dynamics365_fields','paranoid':![],'indexes':[{'name':_0x6631('0xa'),'fields':['idField',_0x6631('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb04e=['request\x20sent','Dynamics365Field,\x20%s,\x20%s,\x20%s','error','code','message','Dynamics365Field,\x20%s,\x20%s','result','lodash','util','moment','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','request','then','info'];(function(_0x5c1925,_0x2d4735){var _0x573328=function(_0x234cb3){while(--_0x234cb3){_0x5c1925['push'](_0x5c1925['shift']());}};_0x573328(++_0x2d4735);}(_0xb04e,0xcf));var _0xeb04=function(_0x2bbf4d,_0xe5c8bb){_0x2bbf4d=_0x2bbf4d-0x0;var _0x8dd663=_0xb04e[_0x2bbf4d];return _0x8dd663;};'use strict';var _=require(_0xeb04('0x0'));var util=require(_0xeb04('0x1'));var moment=require(_0xeb04('0x2'));var BPromise=require('bluebird');var rs=require(_0xeb04('0x3'));var fs=require('fs');var Redis=require(_0xeb04('0x4'));var db=require(_0xeb04('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xeb04('0x6'));var config=require(_0xeb04('0x7'));var jayson=require(_0xeb04('0x8'));var client=jayson[_0xeb04('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0xa23b60,_0x51cece,_0x45718e){return new BPromise(function(_0x4dbb3e,_0xff90a0){return client[_0xeb04('0xa')](_0xa23b60,_0x45718e)[_0xeb04('0xb')](function(_0x4b521b){logger[_0xeb04('0xc')]('Dynamics365Field,\x20%s,\x20%s',_0x51cece,_0xeb04('0xd'));logger['debug'](_0xeb04('0xe'),_0x51cece,_0xeb04('0xd'),JSON['stringify'](_0x4b521b));if(_0x4b521b[_0xeb04('0xf')]){if(_0x4b521b[_0xeb04('0xf')][_0xeb04('0x10')]===0x1f4){logger[_0xeb04('0xf')]('Dynamics365Field,\x20%s,\x20%s',_0x51cece,_0x4b521b[_0xeb04('0xf')]['message']);return _0xff90a0(_0x4b521b[_0xeb04('0xf')][_0xeb04('0x11')]);}logger[_0xeb04('0xf')](_0xeb04('0x12'),_0x51cece,_0x4b521b[_0xeb04('0xf')][_0xeb04('0x11')]);return _0x4dbb3e(_0x4b521b[_0xeb04('0xf')]['message']);}else{logger['info'](_0xeb04('0x12'),_0x51cece,_0xeb04('0xd'));_0x4dbb3e(_0x4b521b[_0xeb04('0x13')][_0xeb04('0x11')]);}})['catch'](function(_0x17b5e5){logger['error'](_0xeb04('0x12'),_0x51cece,_0x17b5e5);_0xff90a0(_0x17b5e5);});});}
\ No newline at end of file
+var _0xe48d=['bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','then','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','stringify','error','code','Dynamics365Field,\x20%s,\x20%s','message','info','request\x20sent','catch','lodash'];(function(_0x3301a7,_0x113a70){var _0x4e9e5b=function(_0x50e133){while(--_0x50e133){_0x3301a7['push'](_0x3301a7['shift']());}};_0x4e9e5b(++_0x113a70);}(_0xe48d,0x9f));var _0xde48=function(_0x1f5386,_0x41280c){_0x1f5386=_0x1f5386-0x0;var _0x4a5768=_0xe48d[_0x1f5386];return _0x4a5768;};'use strict';var _=require(_0xde48('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xde48('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xde48('0x2'))['db'];var utils=require(_0xde48('0x3'));var logger=require(_0xde48('0x4'))(_0xde48('0x5'));var config=require(_0xde48('0x6'));var jayson=require(_0xde48('0x7'));var client=jayson['client'][_0xde48('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x7e4b19,_0xb0c6a3,_0x3e9192){return new BPromise(function(_0x1fa12d,_0x2922be){return client['request'](_0x7e4b19,_0x3e9192)[_0xde48('0x9')](function(_0x450d40){logger['info']('Dynamics365Field,\x20%s,\x20%s',_0xb0c6a3,'request\x20sent');logger[_0xde48('0xa')](_0xde48('0xb'),_0xb0c6a3,'request\x20sent',JSON[_0xde48('0xc')](_0x450d40));if(_0x450d40[_0xde48('0xd')]){if(_0x450d40[_0xde48('0xd')][_0xde48('0xe')]===0x1f4){logger[_0xde48('0xd')](_0xde48('0xf'),_0xb0c6a3,_0x450d40[_0xde48('0xd')][_0xde48('0x10')]);return _0x2922be(_0x450d40[_0xde48('0xd')][_0xde48('0x10')]);}logger[_0xde48('0xd')]('Dynamics365Field,\x20%s,\x20%s',_0xb0c6a3,_0x450d40[_0xde48('0xd')]['message']);return _0x1fa12d(_0x450d40[_0xde48('0xd')][_0xde48('0x10')]);}else{logger[_0xde48('0x11')]('Dynamics365Field,\x20%s,\x20%s',_0xb0c6a3,_0xde48('0x12'));_0x1fa12d(_0x450d40['result'][_0xde48('0x10')]);}})[_0xde48('0x13')](function(_0x56a2d5){logger[_0xde48('0xd')](_0xde48('0xf'),_0xb0c6a3,_0x56a2d5);_0x2922be(_0x56a2d5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a11=['../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','index','/:id/configurations','isAuthenticated','getConfigurations','getFields','create','post','addConfiguration','put','/:id','update','delete','exports','multer','util','path','express','Router','fs-extra'];(function(_0x44b3e5,_0x1492d3){var _0x36726d=function(_0x1a43d8){while(--_0x1a43d8){_0x44b3e5['push'](_0x44b3e5['shift']());}};_0x36726d(++_0x1492d3);}(_0x3a11,0x1da));var _0x13a1=function(_0x2ac4af,_0x288c53){_0x2ac4af=_0x2ac4af-0x0;var _0x3a36df=_0x3a11[_0x2ac4af];return _0x3a36df;};'use strict';var multer=require(_0x13a1('0x0'));var util=require(_0x13a1('0x1'));var path=require(_0x13a1('0x2'));var timeout=require('connect-timeout');var express=require(_0x13a1('0x3'));var router=express[_0x13a1('0x4')]();var fs_extra=require(_0x13a1('0x5'));var auth=require(_0x13a1('0x6'));var interaction=require(_0x13a1('0x7'));var config=require(_0x13a1('0x8'));var controller=require(_0x13a1('0x9'));router[_0x13a1('0xa')]('/',auth['isAuthenticated'](),controller[_0x13a1('0xb')]);router[_0x13a1('0xa')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x13a1('0xa')](_0x13a1('0xc'),auth[_0x13a1('0xd')](),controller[_0x13a1('0xe')]);router[_0x13a1('0xa')]('/:id/fields',auth[_0x13a1('0xd')](),controller[_0x13a1('0xf')]);router['post']('/',auth[_0x13a1('0xd')](),controller[_0x13a1('0x10')]);router[_0x13a1('0x11')](_0x13a1('0xc'),auth[_0x13a1('0xd')](),controller[_0x13a1('0x12')]);router[_0x13a1('0x13')](_0x13a1('0x14'),auth[_0x13a1('0xd')](),controller[_0x13a1('0x15')]);router[_0x13a1('0x16')](_0x13a1('0x14'),auth['isAuthenticated'](),controller['destroy']);module[_0x13a1('0x17')]=router;
\ No newline at end of file
+var _0x3022=['post','create','addConfiguration','update','destroy','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','/:id/configurations','getConfigurations','/:id/fields','getFields'];(function(_0x13f980,_0x1e1c56){var _0x27153c=function(_0x3953d5){while(--_0x3953d5){_0x13f980['push'](_0x13f980['shift']());}};_0x27153c(++_0x1e1c56);}(_0x3022,0x181));var _0x2302=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x3022[_0x1d1779];return _0x2377e9;};'use strict';var multer=require('multer');var util=require(_0x2302('0x0'));var path=require(_0x2302('0x1'));var timeout=require(_0x2302('0x2'));var express=require(_0x2302('0x3'));var router=express['Router']();var fs_extra=require(_0x2302('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2302('0x5'));var config=require(_0x2302('0x6'));var controller=require('./intFreshdeskAccount.controller');router[_0x2302('0x7')]('/',auth['isAuthenticated'](),controller[_0x2302('0x8')]);router[_0x2302('0x7')](_0x2302('0x9'),auth[_0x2302('0xa')](),controller['show']);router[_0x2302('0x7')](_0x2302('0xb'),auth['isAuthenticated'](),controller[_0x2302('0xc')]);router['get'](_0x2302('0xd'),auth[_0x2302('0xa')](),controller[_0x2302('0xe')]);router[_0x2302('0xf')]('/',auth['isAuthenticated'](),controller[_0x2302('0x10')]);router[_0x2302('0xf')](_0x2302('0xb'),auth[_0x2302('0xa')](),controller[_0x2302('0x11')]);router['put'](_0x2302('0x9'),auth[_0x2302('0xa')](),controller[_0x2302('0x12')]);router['delete'](_0x2302('0x9'),auth['isAuthenticated'](),controller[_0x2302('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x627e=['STRING','remoteUri','sequelize','exports'];(function(_0x16a4c4,_0x360223){var _0xe61083=function(_0x7c08e6){while(--_0x7c08e6){_0x16a4c4['push'](_0x16a4c4['shift']());}};_0xe61083(++_0x360223);}(_0x627e,0x14a));var _0xe627=function(_0x27e9b8,_0x28e7b4){_0x27e9b8=_0x27e9b8-0x0;var _0x5c7037=_0x627e[_0x27e9b8];return _0x5c7037;};'use strict';var Sequelize=require(_0xe627('0x0'));module[_0xe627('0x1')]={'name':{'type':Sequelize[_0xe627('0x2')]},'description':{'type':Sequelize[_0xe627('0x2')]},'username':{'type':Sequelize[_0xe627('0x2')],'unique':'username'},'apiKey':{'type':Sequelize[_0xe627('0x2')]},'remoteUri':{'type':Sequelize[_0xe627('0x2')],'unique':_0xe627('0x3')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0xcf2f=['exports','STRING','remoteUri','sequelize'];(function(_0x2f9cd5,_0x1acdde){var _0x34fdb2=function(_0x244688){while(--_0x244688){_0x2f9cd5['push'](_0x2f9cd5['shift']());}};_0x34fdb2(++_0x1acdde);}(_0xcf2f,0xa7));var _0xfcf2=function(_0x3907e6,_0x370e69){_0x3907e6=_0x3907e6-0x0;var _0x432c0f=_0xcf2f[_0x3907e6];return _0x432c0f;};'use strict';var Sequelize=require(_0xfcf2('0x0'));module[_0xfcf2('0x1')]={'name':{'type':Sequelize[_0xfcf2('0x2')]},'description':{'type':Sequelize[_0xfcf2('0x2')]},'username':{'type':Sequelize[_0xfcf2('0x2')],'unique':'username'},'apiKey':{'type':Sequelize[_0xfcf2('0x2')]},'remoteUri':{'type':Sequelize[_0xfcf2('0x2')],'unique':_0xfcf2('0x3')},'serverUrl':{'type':Sequelize[_0xfcf2('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe812=['options','find','create','body','destroy','params','findOne','getConfigurations','length','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','FreshdeskConfiguration','FreshdeskField','getFields','apiKey','slice','substring','GET','format','%s:X','toString','subject','description','group','source','ticket_type','company','remove','includes','default','custom_dropdown','label','choices','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','rimraf','zip-dir','moment','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','undefined','offset','count','limit','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show'];(function(_0x307086,_0x3bfe4e){var _0x699043=function(_0x1a7677){while(--_0x1a7677){_0x307086['push'](_0x307086['shift']());}};_0x699043(++_0x3bfe4e);}(_0xe812,0x1f2));var _0x2e81=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xe812[_0x2641f9];return _0x585741;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2e81('0x0'));var zipdir=require(_0x2e81('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2e81('0x2'));var BPromise=require(_0x2e81('0x3'));var Mustache=require('mustache');var util=require(_0x2e81('0x4'));var path=require(_0x2e81('0x5'));var sox=require('sox');var csv=require(_0x2e81('0x6'));var ejs=require(_0x2e81('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2e81('0x8'));var squel=require(_0x2e81('0x9'));var crypto=require(_0x2e81('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x2e81('0xb'));var toCsv=require(_0x2e81('0x6'));var querystring=require(_0x2e81('0xc'));var Papa=require(_0x2e81('0xd'));var Redis=require('ioredis');var authService=require(_0x2e81('0xe'));var qs=require(_0x2e81('0xf'));var as=require(_0x2e81('0x10'));var hardwareService=require(_0x2e81('0x11'));var logger=require(_0x2e81('0x12'))(_0x2e81('0x13'));var utils=require(_0x2e81('0x14'));var config=require(_0x2e81('0x15'));var licenseUtil=require(_0x2e81('0x16'));var db=require(_0x2e81('0x17'))['db'];var integrations=require(_0x2e81('0x18'));function respondWithStatusCode(_0x5c58a2,_0x30a730){_0x30a730=_0x30a730||0xcc;return function(_0x225802){if(_0x225802){return _0x5c58a2['sendStatus'](_0x30a730);}return _0x5c58a2[_0x2e81('0x19')](_0x30a730)['end']();};}function respondWithResult(_0x2a4411,_0x2b24f0){_0x2b24f0=_0x2b24f0||0xc8;return function(_0x14f9b0){if(_0x14f9b0){return _0x2a4411[_0x2e81('0x19')](_0x2b24f0)[_0x2e81('0x1a')](_0x14f9b0);}};}function respondWithFilteredResult(_0x3a8c05,_0x53da62){return function(_0xc4d315){if(_0xc4d315){var _0x258749=typeof _0x53da62['offset']===_0x2e81('0x1b')&&typeof _0x53da62['limit']===_0x2e81('0x1b');var _0xaa8034=_0xc4d315['count'];var _0x402992=_0x258749?0x0:_0x53da62[_0x2e81('0x1c')];var _0xbb61a4=_0x258749?_0xc4d315[_0x2e81('0x1d')]:_0x53da62[_0x2e81('0x1c')]+_0x53da62[_0x2e81('0x1e')];var _0x1f5419;if(_0xbb61a4>=_0xaa8034){_0xbb61a4=_0xaa8034;_0x1f5419=0xc8;}else{_0x1f5419=0xce;}_0x3a8c05[_0x2e81('0x19')](_0x1f5419);return _0x3a8c05[_0x2e81('0x1f')](_0x2e81('0x20'),_0x402992+'-'+_0xbb61a4+'/'+_0xaa8034)['json'](_0xc4d315);}return null;};}function patchUpdates(_0x10b77e){return function(_0x23957a){try{jsonpatch[_0x2e81('0x21')](_0x23957a,_0x10b77e,!![]);}catch(_0x65be57){return BPromise[_0x2e81('0x22')](_0x65be57);}return _0x23957a[_0x2e81('0x23')]();};}function saveUpdates(_0x18b9be,_0x39ffa8){return function(_0x5eabae){if(_0x5eabae){return _0x5eabae[_0x2e81('0x24')](_0x18b9be)['then'](function(_0x2d50af){return _0x2d50af;});}return null;};}function removeEntity(_0x4fe130,_0x1d09cb){return function(_0x59117d){if(_0x59117d){return _0x59117d['destroy']()[_0x2e81('0x25')](function(){_0x4fe130[_0x2e81('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39e8c0,_0x19b1a9){return function(_0x1c4547){if(!_0x1c4547){_0x39e8c0[_0x2e81('0x26')](0x194);}return _0x1c4547;};}function handleError(_0x2b66f9,_0x3d13fc){_0x3d13fc=_0x3d13fc||0x1f4;return function(_0x25ef4b){logger[_0x2e81('0x27')](_0x25ef4b[_0x2e81('0x28')]);if(_0x25ef4b[_0x2e81('0x29')]){delete _0x25ef4b[_0x2e81('0x29')];}_0x2b66f9[_0x2e81('0x19')](_0x3d13fc)[_0x2e81('0x2a')](_0x25ef4b);};}exports[_0x2e81('0x2b')]=function(_0x4d195d,_0x4e9aa5){var _0xfc7ce3={},_0x38cbc2={},_0x20ef21={'count':0x0,'rows':[]};var _0x1eb8f6=_[_0x2e81('0x2c')](db[_0x2e81('0x2d')][_0x2e81('0x2e')],function(_0x13612b){return{'name':_0x13612b[_0x2e81('0x2f')],'type':_0x13612b[_0x2e81('0x30')][_0x2e81('0x31')]};});_0x38cbc2['model']=_[_0x2e81('0x2c')](_0x1eb8f6,_0x2e81('0x29'));_0x38cbc2[_0x2e81('0x32')]=_[_0x2e81('0x33')](_0x4d195d[_0x2e81('0x32')]);_0x38cbc2[_0x2e81('0x34')]=_[_0x2e81('0x35')](_0x38cbc2[_0x2e81('0x36')],_0x38cbc2[_0x2e81('0x32')]);_0xfc7ce3[_0x2e81('0x37')]=_[_0x2e81('0x35')](_0x38cbc2[_0x2e81('0x36')],qs[_0x2e81('0x38')](_0x4d195d[_0x2e81('0x32')][_0x2e81('0x38')]));_0xfc7ce3[_0x2e81('0x37')]=_0xfc7ce3[_0x2e81('0x37')]['length']?_0xfc7ce3[_0x2e81('0x37')]:_0x38cbc2[_0x2e81('0x36')];if(!_0x4d195d['query'][_0x2e81('0x39')](_0x2e81('0x3a'))){_0xfc7ce3['limit']=qs[_0x2e81('0x1e')](_0x4d195d[_0x2e81('0x32')][_0x2e81('0x1e')]);_0xfc7ce3['offset']=qs[_0x2e81('0x1c')](_0x4d195d[_0x2e81('0x32')][_0x2e81('0x1c')]);}_0xfc7ce3[_0x2e81('0x3b')]=qs[_0x2e81('0x3c')](_0x4d195d['query']['sort']);_0xfc7ce3['where']=qs['filters'](_[_0x2e81('0x3d')](_0x4d195d['query'],_0x38cbc2['filters']),_0x1eb8f6);if(_0x4d195d[_0x2e81('0x32')][_0x2e81('0x3e')]){_0xfc7ce3[_0x2e81('0x3f')]=_['merge'](_0xfc7ce3[_0x2e81('0x3f')],{'$or':_[_0x2e81('0x2c')](_0x1eb8f6,function(_0x411e2a){if(_0x411e2a[_0x2e81('0x30')]!==_0x2e81('0x40')){var _0x4b0a7f={};_0x4b0a7f[_0x411e2a['name']]={'$like':'%'+_0x4d195d[_0x2e81('0x32')][_0x2e81('0x3e')]+'%'};return _0x4b0a7f;}})});}_0xfc7ce3=_[_0x2e81('0x41')]({},_0xfc7ce3,_0x4d195d['options']);var _0x34abc9={'where':_0xfc7ce3[_0x2e81('0x3f')]};return db[_0x2e81('0x2d')]['count'](_0x34abc9)[_0x2e81('0x25')](function(_0x2293ed){_0x20ef21[_0x2e81('0x1d')]=_0x2293ed;if(_0x4d195d[_0x2e81('0x32')][_0x2e81('0x42')]){_0xfc7ce3[_0x2e81('0x43')]=[{'all':!![]}];}return db[_0x2e81('0x2d')][_0x2e81('0x44')](_0xfc7ce3);})['then'](function(_0x4f0aa4){_0x20ef21[_0x2e81('0x45')]=_0x4f0aa4;return _0x20ef21;})['then'](respondWithFilteredResult(_0x4e9aa5,_0xfc7ce3))[_0x2e81('0x46')](handleError(_0x4e9aa5,null));};exports[_0x2e81('0x47')]=function(_0xf3d7a5,_0x42154f){var _0x3c5fbb={'raw':![],'where':{'id':_0xf3d7a5['params']['id']}},_0x2994c2={};_0x2994c2['model']=_[_0x2e81('0x33')](db[_0x2e81('0x2d')][_0x2e81('0x2e')]);_0x2994c2['query']=_[_0x2e81('0x33')](_0xf3d7a5[_0x2e81('0x32')]);_0x2994c2['filters']=_[_0x2e81('0x35')](_0x2994c2['model'],_0x2994c2[_0x2e81('0x32')]);_0x3c5fbb[_0x2e81('0x37')]=_[_0x2e81('0x35')](_0x2994c2[_0x2e81('0x36')],qs['fields'](_0xf3d7a5[_0x2e81('0x32')]['fields']));_0x3c5fbb[_0x2e81('0x37')]=_0x3c5fbb[_0x2e81('0x37')]['length']?_0x3c5fbb[_0x2e81('0x37')]:_0x2994c2[_0x2e81('0x36')];if(_0xf3d7a5[_0x2e81('0x32')][_0x2e81('0x42')]){_0x3c5fbb[_0x2e81('0x43')]=[{'all':!![]}];}_0x3c5fbb=_[_0x2e81('0x41')]({},_0x3c5fbb,_0xf3d7a5[_0x2e81('0x48')]);return db['FreshdeskAccount'][_0x2e81('0x49')](_0x3c5fbb)['then'](handleEntityNotFound(_0x42154f,null))['then'](respondWithResult(_0x42154f,null))[_0x2e81('0x46')](handleError(_0x42154f,null));};exports['create']=function(_0x551ad0,_0x297796){return db[_0x2e81('0x2d')][_0x2e81('0x4a')](_0x551ad0['body'],{})['then'](respondWithResult(_0x297796,0xc9))[_0x2e81('0x46')](handleError(_0x297796,null));};exports[_0x2e81('0x24')]=function(_0x16ed11,_0x27e113){if(_0x16ed11['body']['id']){delete _0x16ed11['body']['id'];}return db[_0x2e81('0x2d')][_0x2e81('0x49')]({'where':{'id':_0x16ed11['params']['id']}})['then'](handleEntityNotFound(_0x27e113,null))[_0x2e81('0x25')](saveUpdates(_0x16ed11[_0x2e81('0x4b')],null))['then'](respondWithResult(_0x27e113,null))[_0x2e81('0x46')](handleError(_0x27e113,null));};exports[_0x2e81('0x4c')]=function(_0x25b243,_0x3402b3){return db[_0x2e81('0x2d')]['find']({'where':{'id':_0x25b243[_0x2e81('0x4d')]['id']}})[_0x2e81('0x25')](handleEntityNotFound(_0x3402b3,null))[_0x2e81('0x25')](removeEntity(_0x3402b3,null))[_0x2e81('0x46')](handleError(_0x3402b3,null));};exports['getConfigurations']=function(_0x5c64b6,_0x1f5024,_0x2dc0e4){var _0x292774={};var _0x127d1b={};var _0x147a21;var _0x482888;return db[_0x2e81('0x2d')][_0x2e81('0x4e')]({'where':{'id':_0x5c64b6[_0x2e81('0x4d')]['id']}})[_0x2e81('0x25')](handleEntityNotFound(_0x1f5024,null))[_0x2e81('0x25')](function(_0x4aa5e5){if(_0x4aa5e5){_0x147a21=_0x4aa5e5;_0x127d1b[_0x2e81('0x36')]=_[_0x2e81('0x33')](db['FreshdeskConfiguration']['rawAttributes']);_0x127d1b[_0x2e81('0x32')]=_['keys'](_0x5c64b6[_0x2e81('0x32')]);_0x127d1b[_0x2e81('0x34')]=_[_0x2e81('0x35')](_0x127d1b[_0x2e81('0x36')],_0x127d1b[_0x2e81('0x32')]);_0x292774[_0x2e81('0x37')]=_[_0x2e81('0x35')](_0x127d1b[_0x2e81('0x36')],qs['fields'](_0x5c64b6[_0x2e81('0x32')]['fields']));_0x292774[_0x2e81('0x37')]=_0x292774[_0x2e81('0x37')]['length']?_0x292774[_0x2e81('0x37')]:_0x127d1b[_0x2e81('0x36')];_0x292774['order']=qs[_0x2e81('0x3c')](_0x5c64b6['query'][_0x2e81('0x3c')]);_0x292774[_0x2e81('0x3f')]=qs[_0x2e81('0x34')](_[_0x2e81('0x3d')](_0x5c64b6[_0x2e81('0x32')],_0x127d1b[_0x2e81('0x34')]));if(_0x5c64b6[_0x2e81('0x32')][_0x2e81('0x3e')]){_0x292774['where']=_[_0x2e81('0x41')](_0x292774[_0x2e81('0x3f')],{'$or':_[_0x2e81('0x2c')](_0x292774[_0x2e81('0x37')],function(_0xfefe30){var _0x2f431c={};_0x2f431c[_0xfefe30]={'$like':'%'+_0x5c64b6[_0x2e81('0x32')][_0x2e81('0x3e')]+'%'};return _0x2f431c;})});}_0x292774=_[_0x2e81('0x41')]({},_0x292774,_0x5c64b6[_0x2e81('0x48')]);return _0x147a21[_0x2e81('0x4f')](_0x292774);}})[_0x2e81('0x25')](function(_0x395156){if(_0x395156){_0x482888=_0x395156[_0x2e81('0x50')];if(!_0x5c64b6[_0x2e81('0x32')]['hasOwnProperty']('nolimit')){_0x292774[_0x2e81('0x1e')]=qs[_0x2e81('0x1e')](_0x5c64b6[_0x2e81('0x32')][_0x2e81('0x1e')]);_0x292774[_0x2e81('0x1c')]=qs[_0x2e81('0x1c')](_0x5c64b6[_0x2e81('0x32')][_0x2e81('0x1c')]);}return _0x147a21['getConfigurations'](_0x292774);}})['then'](function(_0x1e9c94){if(_0x1e9c94){return _0x1e9c94?{'count':_0x482888,'rows':_0x1e9c94}:null;}})[_0x2e81('0x25')](respondWithResult(_0x1f5024,null))['catch'](handleError(_0x1f5024,null));};exports[_0x2e81('0x51')]=function(_0x10a1a8,_0x80e205,_0x101064){if(_0x10a1a8[_0x2e81('0x4b')]['id']){delete _0x10a1a8[_0x2e81('0x4b')]['id'];}return db[_0x2e81('0x2d')][_0x2e81('0x4e')]({'where':{'id':_0x10a1a8['params']['id']}})[_0x2e81('0x25')](handleEntityNotFound(_0x80e205,null))['then'](function(_0x3de86f){if(_0x3de86f){_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x52')]=_0x3de86f['id'];_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x53')]=integrations[_0x2e81('0x54')](_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x55')],_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x30')]);_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x56')]=integrations['getDescriptions'](_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x55')],_0x10a1a8[_0x2e81('0x4b')][_0x2e81('0x30')]);return db[_0x2e81('0x57')]['create'](_0x10a1a8[_0x2e81('0x4b')],{'include':[{'model':db[_0x2e81('0x58')],'as':'Subjects'},{'model':db[_0x2e81('0x58')],'as':_0x2e81('0x56')}]});}return null;})[_0x2e81('0x25')](respondWithResult(_0x80e205,null))[_0x2e81('0x46')](handleError(_0x80e205,null));};exports[_0x2e81('0x59')]=function(_0x2e289a,_0x27bb80,_0x17c345){var _0x217242='';return db[_0x2e81('0x2d')]['findOne']({'where':{'id':_0x2e289a['params']['id']},'attributes':['id','remoteUri',_0x2e81('0x5a')]})[_0x2e81('0x25')](handleEntityNotFound(_0x27bb80,null))[_0x2e81('0x25')](function(_0xa2cf6f){if(_0xa2cf6f){_0x217242=_0xa2cf6f['remoteUri'];var _0x28a472=_0x217242[_0x2e81('0x5b')](-0x1);if(_0x28a472==='/'){_0x217242=_0x217242[_0x2e81('0x5c')](0x0,_0x217242['lastIndexOf'](_0x28a472));}return rp({'method':_0x2e81('0x5d'),'uri':util[_0x2e81('0x5e')]('%s/%s',_0x217242,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0x2e81('0x5e')]('Basic\x20%s',new Buffer(util[_0x2e81('0x5e')](_0x2e81('0x5f'),_0xa2cf6f['apiKey']))[_0x2e81('0x60')]('base64'))},'json':!![]});}})[_0x2e81('0x25')](function(_0x4df8b3){if(_0x4df8b3){var _0x59bf7e=['requester',_0x2e81('0x61'),'agent',_0x2e81('0x62'),_0x2e81('0x19'),'priority',_0x2e81('0x63'),_0x2e81('0x64'),_0x2e81('0x65'),_0x2e81('0x63'),_0x2e81('0x66')];_[_0x2e81('0x67')](_0x4df8b3,function(_0x2f3787){return _0x59bf7e[_0x2e81('0x68')](_0x2f3787[_0x2e81('0x29')])||!_0x2f3787[_0x2e81('0x69')]&&_0x2f3787['type']!=='custom_text'&&_0x2f3787[_0x2e81('0x30')]!==_0x2e81('0x6a');});return{'count':_0x4df8b3['length'],'rows':_[_0x2e81('0x2c')](_0x4df8b3,function(_0x24074c){return{'id':_0x24074c[_0x2e81('0x29')],'name':_0x24074c[_0x2e81('0x6b')],'custom':!_0x24074c[_0x2e81('0x69')],'options':_0x24074c['choices']?_[_0x2e81('0x2c')](_0x24074c[_0x2e81('0x6c')],function(_0x14e9ba){return{'name':_['capitalize'](_0x14e9ba),'value':_0x14e9ba};}):[]};})};}})[_0x2e81('0x25')](respondWithResult(_0x27bb80,null))[_0x2e81('0x46')](function(_0x275402){var _0xf3777e=_0x2e289a[_0x2e81('0x32')]['test']?0x1f4:_0x275402[_0x2e81('0x6d')]||0x1f4;logger['error'](_0x2e81('0x6e'),_0x2e81('0x59'),_0xf3777e,JSON[_0x2e81('0x6f')](_0x275402));delete _0x275402[_0x2e81('0x29')];if(_0xf3777e===0x191){_0xf3777e=0x190;}_0x27bb80[_0x2e81('0x19')](_0xf3777e)[_0x2e81('0x2a')](_0x2e289a[_0x2e81('0x32')][_0x2e81('0x70')]?{'message':_0x2e81('0x71'),'statusCode':_0x275402[_0x2e81('0x6d')]}:_0x275402);});};
\ No newline at end of file
+var _0xa446=['offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','FreshdeskAccount','rawAttributes','type','model','map','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','includeAll','include','params','options','catch','create','find','body','getConfigurations','FreshdeskConfiguration','order','pick','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','remoteUri','apiKey','slice','substring','lastIndexOf','GET','format','api/v2/ticket_fields','Basic\x20%s','toString','base64','subject','agent','description','priority','group','ticket_type','remove','includes','default','custom_text','custom_dropdown','choices','capitalize','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end'];(function(_0x2519d5,_0x523469){var _0x37d0a0=function(_0x3a7452){while(--_0x3a7452){_0x2519d5['push'](_0x2519d5['shift']());}};_0x37d0a0(++_0x523469);}(_0xa446,0xc6));var _0x6a44=function(_0x1d651c,_0x44338b){_0x1d651c=_0x1d651c-0x0;var _0x387c28=_0xa446[_0x1d651c];return _0x387c28;};'use strict';var emlformat=require(_0x6a44('0x0'));var rimraf=require(_0x6a44('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6a44('0x2'));var rp=require('request-promise');var moment=require(_0x6a44('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x6a44('0x4'));var util=require('util');var path=require(_0x6a44('0x5'));var sox=require(_0x6a44('0x6'));var csv=require(_0x6a44('0x7'));var ejs=require(_0x6a44('0x8'));var fs=require('fs');var fs_extra=require(_0x6a44('0x9'));var _=require(_0x6a44('0xa'));var squel=require('squel');var crypto=require(_0x6a44('0xb'));var jsforce=require(_0x6a44('0xc'));var deskjs=require(_0x6a44('0xd'));var toCsv=require(_0x6a44('0x7'));var querystring=require(_0x6a44('0xe'));var Papa=require('papaparse');var Redis=require(_0x6a44('0xf'));var authService=require(_0x6a44('0x10'));var qs=require(_0x6a44('0x11'));var as=require(_0x6a44('0x12'));var hardwareService=require(_0x6a44('0x13'));var logger=require(_0x6a44('0x14'))(_0x6a44('0x15'));var utils=require('../../config/utils');var config=require(_0x6a44('0x16'));var licenseUtil=require(_0x6a44('0x17'));var db=require('../../mysqldb')['db'];var integrations=require(_0x6a44('0x18'));function respondWithStatusCode(_0x1e0639,_0x21ce4a){_0x21ce4a=_0x21ce4a||0xcc;return function(_0x491c1c){if(_0x491c1c){return _0x1e0639[_0x6a44('0x19')](_0x21ce4a);}return _0x1e0639[_0x6a44('0x1a')](_0x21ce4a)[_0x6a44('0x1b')]();};}function respondWithResult(_0xb1d987,_0x156a27){_0x156a27=_0x156a27||0xc8;return function(_0x1481ed){if(_0x1481ed){return _0xb1d987['status'](_0x156a27)['json'](_0x1481ed);}};}function respondWithFilteredResult(_0x260be6,_0x973938){return function(_0x577275){if(_0x577275){var _0xa665c0=typeof _0x973938[_0x6a44('0x1c')]===_0x6a44('0x1d')&&typeof _0x973938[_0x6a44('0x1e')]===_0x6a44('0x1d');var _0x1e1de0=_0x577275[_0x6a44('0x1f')];var _0x6054d3=_0xa665c0?0x0:_0x973938[_0x6a44('0x1c')];var _0x25a47c=_0xa665c0?_0x577275[_0x6a44('0x1f')]:_0x973938[_0x6a44('0x1c')]+_0x973938[_0x6a44('0x1e')];var _0x108c4b;if(_0x25a47c>=_0x1e1de0){_0x25a47c=_0x1e1de0;_0x108c4b=0xc8;}else{_0x108c4b=0xce;}_0x260be6['status'](_0x108c4b);return _0x260be6['set']('Content-Range',_0x6054d3+'-'+_0x25a47c+'/'+_0x1e1de0)[_0x6a44('0x20')](_0x577275);}return null;};}function patchUpdates(_0x19410f){return function(_0x2ef3cf){try{jsonpatch[_0x6a44('0x21')](_0x2ef3cf,_0x19410f,!![]);}catch(_0x4bde4d){return BPromise[_0x6a44('0x22')](_0x4bde4d);}return _0x2ef3cf[_0x6a44('0x23')]();};}function saveUpdates(_0x528afe,_0xebf7d6){return function(_0x24c04a){if(_0x24c04a){return _0x24c04a[_0x6a44('0x24')](_0x528afe)[_0x6a44('0x25')](function(_0x21a25c){return _0x21a25c;});}return null;};}function removeEntity(_0x12e6fb,_0x178b35){return function(_0x1650fe){if(_0x1650fe){return _0x1650fe[_0x6a44('0x26')]()['then'](function(){_0x12e6fb[_0x6a44('0x1a')](0xcc)[_0x6a44('0x1b')]();});}};}function handleEntityNotFound(_0x466c54,_0x36b027){return function(_0x499e87){if(!_0x499e87){_0x466c54[_0x6a44('0x19')](0x194);}return _0x499e87;};}function handleError(_0x4ee88c,_0x3ad23e){_0x3ad23e=_0x3ad23e||0x1f4;return function(_0x596a12){logger[_0x6a44('0x27')](_0x596a12[_0x6a44('0x28')]);if(_0x596a12[_0x6a44('0x29')]){delete _0x596a12[_0x6a44('0x29')];}_0x4ee88c[_0x6a44('0x1a')](_0x3ad23e)[_0x6a44('0x2a')](_0x596a12);};}exports[_0x6a44('0x2b')]=function(_0x5b81ce,_0x4a5eab){var _0x265f9d={},_0x5abc23={},_0xaef746={'count':0x0,'rows':[]};var _0x5b46cd=_['map'](db[_0x6a44('0x2c')][_0x6a44('0x2d')],function(_0x3454a7){return{'name':_0x3454a7['fieldName'],'type':_0x3454a7[_0x6a44('0x2e')]['key']};});_0x5abc23[_0x6a44('0x2f')]=_[_0x6a44('0x30')](_0x5b46cd,'name');_0x5abc23['query']=_[_0x6a44('0x31')](_0x5b81ce[_0x6a44('0x32')]);_0x5abc23[_0x6a44('0x33')]=_['intersection'](_0x5abc23['model'],_0x5abc23[_0x6a44('0x32')]);_0x265f9d[_0x6a44('0x34')]=_[_0x6a44('0x35')](_0x5abc23['model'],qs[_0x6a44('0x36')](_0x5b81ce[_0x6a44('0x32')][_0x6a44('0x36')]));_0x265f9d[_0x6a44('0x34')]=_0x265f9d[_0x6a44('0x34')][_0x6a44('0x37')]?_0x265f9d[_0x6a44('0x34')]:_0x5abc23[_0x6a44('0x2f')];if(!_0x5b81ce[_0x6a44('0x32')][_0x6a44('0x38')](_0x6a44('0x39'))){_0x265f9d[_0x6a44('0x1e')]=qs['limit'](_0x5b81ce[_0x6a44('0x32')]['limit']);_0x265f9d['offset']=qs['offset'](_0x5b81ce['query'][_0x6a44('0x1c')]);}_0x265f9d['order']=qs[_0x6a44('0x3a')](_0x5b81ce['query'][_0x6a44('0x3a')]);_0x265f9d[_0x6a44('0x3b')]=qs['filters'](_['pick'](_0x5b81ce[_0x6a44('0x32')],_0x5abc23[_0x6a44('0x33')]),_0x5b46cd);if(_0x5b81ce[_0x6a44('0x32')][_0x6a44('0x3c')]){_0x265f9d['where']=_[_0x6a44('0x3d')](_0x265f9d[_0x6a44('0x3b')],{'$or':_[_0x6a44('0x30')](_0x5b46cd,function(_0x4738cb){if(_0x4738cb[_0x6a44('0x2e')]!==_0x6a44('0x3e')){var _0x56c05c={};_0x56c05c[_0x4738cb[_0x6a44('0x29')]]={'$like':'%'+_0x5b81ce[_0x6a44('0x32')]['filter']+'%'};return _0x56c05c;}})});}_0x265f9d=_[_0x6a44('0x3d')]({},_0x265f9d,_0x5b81ce['options']);var _0xcd852f={'where':_0x265f9d['where']};return db[_0x6a44('0x2c')][_0x6a44('0x1f')](_0xcd852f)[_0x6a44('0x25')](function(_0x7b1ca6){_0xaef746[_0x6a44('0x1f')]=_0x7b1ca6;if(_0x5b81ce['query'][_0x6a44('0x3f')]){_0x265f9d[_0x6a44('0x40')]=[{'all':!![]}];}return db[_0x6a44('0x2c')]['findAll'](_0x265f9d);})[_0x6a44('0x25')](function(_0x2cf9cb){_0xaef746['rows']=_0x2cf9cb;return _0xaef746;})['then'](respondWithFilteredResult(_0x4a5eab,_0x265f9d))['catch'](handleError(_0x4a5eab,null));};exports['show']=function(_0xea4abf,_0xcdb39){var _0x21ba45={'raw':![],'where':{'id':_0xea4abf[_0x6a44('0x41')]['id']}},_0x18315e={};_0x18315e['model']=_['keys'](db[_0x6a44('0x2c')][_0x6a44('0x2d')]);_0x18315e[_0x6a44('0x32')]=_['keys'](_0xea4abf[_0x6a44('0x32')]);_0x18315e[_0x6a44('0x33')]=_[_0x6a44('0x35')](_0x18315e['model'],_0x18315e[_0x6a44('0x32')]);_0x21ba45[_0x6a44('0x34')]=_[_0x6a44('0x35')](_0x18315e[_0x6a44('0x2f')],qs[_0x6a44('0x36')](_0xea4abf[_0x6a44('0x32')][_0x6a44('0x36')]));_0x21ba45[_0x6a44('0x34')]=_0x21ba45['attributes'][_0x6a44('0x37')]?_0x21ba45[_0x6a44('0x34')]:_0x18315e[_0x6a44('0x2f')];if(_0xea4abf[_0x6a44('0x32')][_0x6a44('0x3f')]){_0x21ba45[_0x6a44('0x40')]=[{'all':!![]}];}_0x21ba45=_[_0x6a44('0x3d')]({},_0x21ba45,_0xea4abf[_0x6a44('0x42')]);return db[_0x6a44('0x2c')]['find'](_0x21ba45)[_0x6a44('0x25')](handleEntityNotFound(_0xcdb39,null))[_0x6a44('0x25')](respondWithResult(_0xcdb39,null))[_0x6a44('0x43')](handleError(_0xcdb39,null));};exports[_0x6a44('0x44')]=function(_0x620eb6,_0x215b77){return db[_0x6a44('0x2c')][_0x6a44('0x44')](_0x620eb6['body'],{})[_0x6a44('0x25')](respondWithResult(_0x215b77,0xc9))[_0x6a44('0x43')](handleError(_0x215b77,null));};exports[_0x6a44('0x24')]=function(_0x4dce0f,_0x151681){if(_0x4dce0f['body']['id']){delete _0x4dce0f['body']['id'];}return db[_0x6a44('0x2c')][_0x6a44('0x45')]({'where':{'id':_0x4dce0f['params']['id']}})['then'](handleEntityNotFound(_0x151681,null))[_0x6a44('0x25')](saveUpdates(_0x4dce0f[_0x6a44('0x46')],null))['then'](respondWithResult(_0x151681,null))[_0x6a44('0x43')](handleError(_0x151681,null));};exports['destroy']=function(_0x18f09a,_0x434ded){return db[_0x6a44('0x2c')]['find']({'where':{'id':_0x18f09a['params']['id']}})['then'](handleEntityNotFound(_0x434ded,null))['then'](removeEntity(_0x434ded,null))[_0x6a44('0x43')](handleError(_0x434ded,null));};exports[_0x6a44('0x47')]=function(_0x428a08,_0x21b457,_0x213478){var _0x598d7a={};var _0x288224={};var _0x560ab2;var _0x28855c;return db[_0x6a44('0x2c')]['findOne']({'where':{'id':_0x428a08[_0x6a44('0x41')]['id']}})[_0x6a44('0x25')](handleEntityNotFound(_0x21b457,null))['then'](function(_0x39774a){if(_0x39774a){_0x560ab2=_0x39774a;_0x288224[_0x6a44('0x2f')]=_[_0x6a44('0x31')](db[_0x6a44('0x48')][_0x6a44('0x2d')]);_0x288224[_0x6a44('0x32')]=_[_0x6a44('0x31')](_0x428a08[_0x6a44('0x32')]);_0x288224[_0x6a44('0x33')]=_[_0x6a44('0x35')](_0x288224['model'],_0x288224[_0x6a44('0x32')]);_0x598d7a['attributes']=_[_0x6a44('0x35')](_0x288224[_0x6a44('0x2f')],qs[_0x6a44('0x36')](_0x428a08[_0x6a44('0x32')][_0x6a44('0x36')]));_0x598d7a['attributes']=_0x598d7a[_0x6a44('0x34')][_0x6a44('0x37')]?_0x598d7a[_0x6a44('0x34')]:_0x288224[_0x6a44('0x2f')];_0x598d7a[_0x6a44('0x49')]=qs[_0x6a44('0x3a')](_0x428a08[_0x6a44('0x32')][_0x6a44('0x3a')]);_0x598d7a[_0x6a44('0x3b')]=qs[_0x6a44('0x33')](_[_0x6a44('0x4a')](_0x428a08['query'],_0x288224[_0x6a44('0x33')]));if(_0x428a08[_0x6a44('0x32')][_0x6a44('0x3c')]){_0x598d7a[_0x6a44('0x3b')]=_[_0x6a44('0x3d')](_0x598d7a[_0x6a44('0x3b')],{'$or':_[_0x6a44('0x30')](_0x598d7a[_0x6a44('0x34')],function(_0x276625){var _0x4fabb8={};_0x4fabb8[_0x276625]={'$like':'%'+_0x428a08[_0x6a44('0x32')][_0x6a44('0x3c')]+'%'};return _0x4fabb8;})});}_0x598d7a=_[_0x6a44('0x3d')]({},_0x598d7a,_0x428a08[_0x6a44('0x42')]);return _0x560ab2['getConfigurations'](_0x598d7a);}})[_0x6a44('0x25')](function(_0x1c3350){if(_0x1c3350){_0x28855c=_0x1c3350[_0x6a44('0x37')];if(!_0x428a08['query'][_0x6a44('0x38')]('nolimit')){_0x598d7a['limit']=qs[_0x6a44('0x1e')](_0x428a08[_0x6a44('0x32')][_0x6a44('0x1e')]);_0x598d7a[_0x6a44('0x1c')]=qs[_0x6a44('0x1c')](_0x428a08['query'][_0x6a44('0x1c')]);}return _0x560ab2[_0x6a44('0x47')](_0x598d7a);}})['then'](function(_0x4abebd){if(_0x4abebd){return _0x4abebd?{'count':_0x28855c,'rows':_0x4abebd}:null;}})[_0x6a44('0x25')](respondWithResult(_0x21b457,null))[_0x6a44('0x43')](handleError(_0x21b457,null));};exports[_0x6a44('0x4b')]=function(_0x2aaea3,_0x5e02ed,_0x214529){if(_0x2aaea3[_0x6a44('0x46')]['id']){delete _0x2aaea3['body']['id'];}return db['FreshdeskAccount'][_0x6a44('0x4c')]({'where':{'id':_0x2aaea3[_0x6a44('0x41')]['id']}})[_0x6a44('0x25')](handleEntityNotFound(_0x5e02ed,null))['then'](function(_0x252ea4){if(_0x252ea4){_0x2aaea3[_0x6a44('0x46')][_0x6a44('0x4d')]=_0x252ea4['id'];_0x2aaea3[_0x6a44('0x46')][_0x6a44('0x4e')]=integrations[_0x6a44('0x4f')](_0x2aaea3['body'][_0x6a44('0x50')],_0x2aaea3[_0x6a44('0x46')]['type']);_0x2aaea3[_0x6a44('0x46')][_0x6a44('0x51')]=integrations[_0x6a44('0x52')](_0x2aaea3['body']['channel'],_0x2aaea3[_0x6a44('0x46')][_0x6a44('0x2e')]);return db['FreshdeskConfiguration'][_0x6a44('0x44')](_0x2aaea3['body'],{'include':[{'model':db[_0x6a44('0x53')],'as':_0x6a44('0x4e')},{'model':db[_0x6a44('0x53')],'as':_0x6a44('0x51')}]});}return null;})['then'](respondWithResult(_0x5e02ed,null))['catch'](handleError(_0x5e02ed,null));};exports[_0x6a44('0x54')]=function(_0x46dbe5,_0x46a77a,_0x229bc4){var _0x230932='';return db[_0x6a44('0x2c')][_0x6a44('0x4c')]({'where':{'id':_0x46dbe5[_0x6a44('0x41')]['id']},'attributes':['id',_0x6a44('0x55'),_0x6a44('0x56')]})[_0x6a44('0x25')](handleEntityNotFound(_0x46a77a,null))[_0x6a44('0x25')](function(_0x19de84){if(_0x19de84){_0x230932=_0x19de84[_0x6a44('0x55')];var _0x1490be=_0x230932[_0x6a44('0x57')](-0x1);if(_0x1490be==='/'){_0x230932=_0x230932[_0x6a44('0x58')](0x0,_0x230932[_0x6a44('0x59')](_0x1490be));}return rp({'method':_0x6a44('0x5a'),'uri':util[_0x6a44('0x5b')]('%s/%s',_0x230932,_0x6a44('0x5c')),'headers':{'Authorization':util[_0x6a44('0x5b')](_0x6a44('0x5d'),new Buffer(util[_0x6a44('0x5b')]('%s:X',_0x19de84[_0x6a44('0x56')]))[_0x6a44('0x5e')](_0x6a44('0x5f')))},'json':!![]});}})[_0x6a44('0x25')](function(_0x436833){if(_0x436833){var _0x3c1561=['requester',_0x6a44('0x60'),_0x6a44('0x61'),_0x6a44('0x62'),_0x6a44('0x1a'),_0x6a44('0x63'),_0x6a44('0x64'),'source',_0x6a44('0x65'),_0x6a44('0x64'),'company'];_[_0x6a44('0x66')](_0x436833,function(_0x463126){return _0x3c1561[_0x6a44('0x67')](_0x463126['name'])||!_0x463126[_0x6a44('0x68')]&&_0x463126['type']!==_0x6a44('0x69')&&_0x463126['type']!==_0x6a44('0x6a');});return{'count':_0x436833['length'],'rows':_[_0x6a44('0x30')](_0x436833,function(_0x457d9e){return{'id':_0x457d9e[_0x6a44('0x29')],'name':_0x457d9e['label'],'custom':!_0x457d9e['default'],'options':_0x457d9e[_0x6a44('0x6b')]?_[_0x6a44('0x30')](_0x457d9e[_0x6a44('0x6b')],function(_0x414c7){return{'name':_[_0x6a44('0x6c')](_0x414c7),'value':_0x414c7};}):[]};})};}})['then'](respondWithResult(_0x46a77a,null))[_0x6a44('0x43')](function(_0x40e621){var _0x26e3b2=_0x46dbe5[_0x6a44('0x32')][_0x6a44('0x6d')]?0x1f4:_0x40e621[_0x6a44('0x6e')]||0x1f4;logger[_0x6a44('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0x6a44('0x54'),_0x26e3b2,JSON[_0x6a44('0x6f')](_0x40e621));delete _0x40e621[_0x6a44('0x29')];if(_0x26e3b2===0x191){_0x26e3b2=0x190;}_0x46a77a[_0x6a44('0x1a')](_0x26e3b2)[_0x6a44('0x2a')](_0x46dbe5[_0x6a44('0x32')][_0x6a44('0x6d')]?{'message':_0x6a44('0x70'),'statusCode':_0x40e621[_0x6a44('0x6e')]}:_0x40e621);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e7b=['define','FreshdeskAccount','int_freshdesk_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./intFreshdeskAccount.attributes','../../components/integrations/configuration','exports'];(function(_0x128b11,_0x375473){var _0x2dd3b0=function(_0x45c93f){while(--_0x45c93f){_0x128b11['push'](_0x128b11['shift']());}};_0x2dd3b0(++_0x375473);}(_0x1e7b,0x199));var _0xb1e7=function(_0x12b1a6,_0x22df2d){_0x12b1a6=_0x12b1a6-0x0;var _0x5813d3=_0x1e7b[_0x12b1a6];return _0x5813d3;};'use strict';var _=require(_0xb1e7('0x0'));var util=require(_0xb1e7('0x1'));var logger=require(_0xb1e7('0x2'))(_0xb1e7('0x3'));var moment=require(_0xb1e7('0x4'));var BPromise=require(_0xb1e7('0x5'));var rp=require(_0xb1e7('0x6'));var fs=require('fs');var path=require(_0xb1e7('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xb1e7('0x8'));var integrations=require(_0xb1e7('0x9'));module[_0xb1e7('0xa')]=function(_0x4ae4e9,_0x5f573b){return _0x4ae4e9[_0xb1e7('0xb')](_0xb1e7('0xc'),attributes,{'tableName':_0xb1e7('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xaf5e=['../../config/environment','../../components/integrations/configuration','define','FreshdeskAccount','int_freshdesk_accounts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x3a8697,_0x4e39e8){var _0xa4c873=function(_0x3479aa){while(--_0x3479aa){_0x3a8697['push'](_0x3a8697['shift']());}};_0xa4c873(++_0x4e39e8);}(_0xaf5e,0x116));var _0xeaf5=function(_0x490da9,_0x43753d){_0x490da9=_0x490da9-0x0;var _0x20593d=_0xaf5e[_0x490da9];return _0x20593d;};'use strict';var _=require(_0xeaf5('0x0'));var util=require(_0xeaf5('0x1'));var logger=require(_0xeaf5('0x2'))(_0xeaf5('0x3'));var moment=require(_0xeaf5('0x4'));var BPromise=require(_0xeaf5('0x5'));var rp=require(_0xeaf5('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xeaf5('0x7'));var config=require(_0xeaf5('0x8'));var attributes=require('./intFreshdeskAccount.attributes');var integrations=require(_0xeaf5('0x9'));module['exports']=function(_0x5be828,_0x57cdcd){return _0x5be828[_0xeaf5('0xa')](_0xeaf5('0xb'),attributes,{'tableName':_0xeaf5('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefc9=['error','FreshdeskAccount,\x20%s,\x20%s','message','result','GetFreshdeskAccount','FreshdeskAccount','findAll','options','raw','where','limit','include','model','map','catch','ShowFreshdeskAccount','find','attributes','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','then','info','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x420f2a,_0x2cc58d){var _0x28f802=function(_0x3329cc){while(--_0x3329cc){_0x420f2a['push'](_0x420f2a['shift']());}};_0x28f802(++_0x2cc58d);}(_0xefc9,0x9a));var _0x9efc=function(_0xe99f0e,_0x4ff814){_0xe99f0e=_0xe99f0e-0x0;var _0x4076ab=_0xefc9[_0xe99f0e];return _0x4076ab;};'use strict';var _=require(_0x9efc('0x0'));var util=require(_0x9efc('0x1'));var moment=require(_0x9efc('0x2'));var BPromise=require(_0x9efc('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9efc('0x4'))['db'];var utils=require(_0x9efc('0x5'));var logger=require('../../config/logger')(_0x9efc('0x6'));var config=require(_0x9efc('0x7'));var jayson=require(_0x9efc('0x8'));var client=jayson['client'][_0x9efc('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x57bdc2,_0x25dabc,_0x5e6163){return new BPromise(function(_0x27f001,_0x2c1b39){return client['request'](_0x57bdc2,_0x5e6163)[_0x9efc('0xa')](function(_0x5c8a66){logger[_0x9efc('0xb')]('FreshdeskAccount,\x20%s,\x20%s',_0x25dabc,_0x9efc('0xc'));logger[_0x9efc('0xd')](_0x9efc('0xe'),_0x25dabc,_0x9efc('0xc'),JSON[_0x9efc('0xf')](_0x5c8a66));if(_0x5c8a66[_0x9efc('0x10')]){if(_0x5c8a66['error']['code']===0x1f4){logger[_0x9efc('0x10')](_0x9efc('0x11'),_0x25dabc,_0x5c8a66['error'][_0x9efc('0x12')]);return _0x2c1b39(_0x5c8a66[_0x9efc('0x10')][_0x9efc('0x12')]);}logger[_0x9efc('0x10')]('FreshdeskAccount,\x20%s,\x20%s',_0x25dabc,_0x5c8a66[_0x9efc('0x10')][_0x9efc('0x12')]);return _0x27f001(_0x5c8a66[_0x9efc('0x10')][_0x9efc('0x12')]);}else{logger[_0x9efc('0xb')]('FreshdeskAccount,\x20%s,\x20%s',_0x25dabc,_0x9efc('0xc'));_0x27f001(_0x5c8a66[_0x9efc('0x13')][_0x9efc('0x12')]);}})['catch'](function(_0x1301d9){logger[_0x9efc('0x10')](_0x9efc('0x11'),_0x25dabc,_0x1301d9);_0x2c1b39(_0x1301d9);});});}exports[_0x9efc('0x14')]=function(_0x250a5a){var _0x17e9b4=this;return new Promise(function(_0x5ce864,_0x233acb){return db[_0x9efc('0x15')][_0x9efc('0x16')]({'raw':_0x250a5a[_0x9efc('0x17')]?_0x250a5a['options'][_0x9efc('0x18')]===undefined?!![]:![]:!![],'where':_0x250a5a[_0x9efc('0x17')]?_0x250a5a[_0x9efc('0x17')][_0x9efc('0x19')]||null:null,'attributes':_0x250a5a[_0x9efc('0x17')]?_0x250a5a[_0x9efc('0x17')]['attributes']||null:null,'limit':_0x250a5a[_0x9efc('0x17')]?_0x250a5a[_0x9efc('0x17')][_0x9efc('0x1a')]||null:null,'include':_0x250a5a['options']?_0x250a5a[_0x9efc('0x17')]['include']?_['map'](_0x250a5a[_0x9efc('0x17')][_0x9efc('0x1b')],function(_0xdae81){return{'model':db[_0xdae81[_0x9efc('0x1c')]],'as':_0xdae81['as'],'attributes':_0xdae81['attributes'],'include':_0xdae81[_0x9efc('0x1b')]?_[_0x9efc('0x1d')](_0xdae81[_0x9efc('0x1b')],function(_0x201138){return{'model':db[_0x201138['model']],'as':_0x201138['as'],'attributes':_0x201138['attributes'],'include':_0x201138[_0x9efc('0x1b')]?_['map'](_0x201138[_0x9efc('0x1b')],function(_0x3224df){return{'model':db[_0x3224df[_0x9efc('0x1c')]],'as':_0x3224df['as'],'attributes':_0x3224df['attributes']};}):[]};}):[]};}):[]:[]})[_0x9efc('0xa')](function(_0x15298d){logger[_0x9efc('0xb')](_0x9efc('0x14'),_0x250a5a);logger[_0x9efc('0xd')](_0x9efc('0x14'),_0x250a5a,JSON[_0x9efc('0xf')](_0x15298d));_0x5ce864(_0x15298d);})[_0x9efc('0x1e')](function(_0x564f46){logger[_0x9efc('0x10')](_0x9efc('0x14'),_0x564f46[_0x9efc('0x12')],_0x250a5a);_0x233acb(_0x17e9b4[_0x9efc('0x10')](0x1f4,_0x564f46[_0x9efc('0x12')]));});});};exports[_0x9efc('0x1f')]=function(_0x57eaf2){var _0x6cfb3c=this;return new Promise(function(_0x50bc54,_0xf84562){return db[_0x9efc('0x15')][_0x9efc('0x20')]({'raw':_0x57eaf2[_0x9efc('0x17')]?_0x57eaf2[_0x9efc('0x17')][_0x9efc('0x18')]===undefined?!![]:![]:!![],'where':_0x57eaf2['options']?_0x57eaf2['options'][_0x9efc('0x19')]||null:null,'attributes':_0x57eaf2[_0x9efc('0x17')]?_0x57eaf2[_0x9efc('0x17')][_0x9efc('0x21')]||null:null,'include':_0x57eaf2[_0x9efc('0x17')]?_0x57eaf2[_0x9efc('0x17')][_0x9efc('0x1b')]?_[_0x9efc('0x1d')](_0x57eaf2[_0x9efc('0x17')][_0x9efc('0x1b')],function(_0x16eb9c){return{'model':db[_0x16eb9c[_0x9efc('0x1c')]],'as':_0x16eb9c['as'],'attributes':_0x16eb9c['attributes'],'include':_0x16eb9c[_0x9efc('0x1b')]?_[_0x9efc('0x1d')](_0x16eb9c[_0x9efc('0x1b')],function(_0x1103b){return{'model':db[_0x1103b['model']],'as':_0x1103b['as'],'attributes':_0x1103b[_0x9efc('0x21')],'include':_0x1103b['include']?_[_0x9efc('0x1d')](_0x1103b['include'],function(_0x88570f){return{'model':db[_0x88570f['model']],'as':_0x88570f['as'],'attributes':_0x88570f[_0x9efc('0x21')]};}):[]};}):[]};}):[]:[]})[_0x9efc('0xa')](function(_0x308066){logger['info'](_0x9efc('0x1f'),_0x57eaf2);logger[_0x9efc('0xd')]('ShowFreshdeskAccount',_0x57eaf2,JSON[_0x9efc('0xf')](_0x308066));_0x50bc54(_0x308066);})['catch'](function(_0x4e0272){logger[_0x9efc('0x10')]('ShowFreshdeskAccount',_0x4e0272[_0x9efc('0x12')],_0x57eaf2);_0xf84562(_0x6cfb3c[_0x9efc('0x10')](0x1f4,_0x4e0272[_0x9efc('0x12')]));});});};
\ No newline at end of file
+var _0x69b4=['findAll','options','raw','where','attributes','limit','include','map','model','stringify','ShowFreshdeskAccount','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','catch','GetFreshdeskAccount','FreshdeskAccount'];(function(_0x4fd71e,_0x3ec6d5){var _0x7cf1dc=function(_0x132589){while(--_0x132589){_0x4fd71e['push'](_0x4fd71e['shift']());}};_0x7cf1dc(++_0x3ec6d5);}(_0x69b4,0x133));var _0x469b=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x69b4[_0x126558];return _0x1f6d14;};'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']('FreshdeskAccount,\x20%s,\x20%s',_0x5e3dad,_0x459230[_0x469b('0x13')][_0x469b('0x15')]);return _0x5c3975(_0x459230['error'][_0x469b('0x15')]);}else{logger[_0x469b('0x16')]('FreshdeskAccount,\x20%s,\x20%s',_0x5e3dad,'request\x20sent');_0x5c3975(_0x459230['result']['message']);}})[_0x469b('0x17')](function(_0xcf18b9){logger[_0x469b('0x13')](_0x469b('0xf'),_0x5e3dad,_0xcf18b9);_0x72f6f4(_0xcf18b9);});});}exports[_0x469b('0x18')]=function(_0x1b4a87){var _0x4cb5f8=this;return new Promise(function(_0x45d8e2,_0x1e6527){return db[_0x469b('0x19')][_0x469b('0x1a')]({'raw':_0x1b4a87[_0x469b('0x1b')]?_0x1b4a87['options'][_0x469b('0x1c')]===undefined?!![]:![]:!![],'where':_0x1b4a87[_0x469b('0x1b')]?_0x1b4a87[_0x469b('0x1b')][_0x469b('0x1d')]||null:null,'attributes':_0x1b4a87['options']?_0x1b4a87[_0x469b('0x1b')][_0x469b('0x1e')]||null:null,'limit':_0x1b4a87[_0x469b('0x1b')]?_0x1b4a87[_0x469b('0x1b')][_0x469b('0x1f')]||null:null,'include':_0x1b4a87['options']?_0x1b4a87[_0x469b('0x1b')][_0x469b('0x20')]?_[_0x469b('0x21')](_0x1b4a87[_0x469b('0x1b')][_0x469b('0x20')],function(_0x488058){return{'model':db[_0x488058['model']],'as':_0x488058['as'],'attributes':_0x488058[_0x469b('0x1e')],'include':_0x488058[_0x469b('0x20')]?_[_0x469b('0x21')](_0x488058[_0x469b('0x20')],function(_0x1f44a1){return{'model':db[_0x1f44a1[_0x469b('0x22')]],'as':_0x1f44a1['as'],'attributes':_0x1f44a1[_0x469b('0x1e')],'include':_0x1f44a1[_0x469b('0x20')]?_['map'](_0x1f44a1[_0x469b('0x20')],function(_0x220b69){return{'model':db[_0x220b69[_0x469b('0x22')]],'as':_0x220b69['as'],'attributes':_0x220b69[_0x469b('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x469b('0xe')](function(_0x70bdc0){logger[_0x469b('0x16')]('GetFreshdeskAccount',_0x1b4a87);logger[_0x469b('0x11')](_0x469b('0x18'),_0x1b4a87,JSON[_0x469b('0x23')](_0x70bdc0));_0x45d8e2(_0x70bdc0);})[_0x469b('0x17')](function(_0x2569f8){logger[_0x469b('0x13')](_0x469b('0x18'),_0x2569f8[_0x469b('0x15')],_0x1b4a87);_0x1e6527(_0x4cb5f8[_0x469b('0x13')](0x1f4,_0x2569f8['message']));});});};exports[_0x469b('0x24')]=function(_0x4a2fda){var _0x3af0de=this;return new Promise(function(_0x2aba99,_0x292f53){return db['FreshdeskAccount']['find']({'raw':_0x4a2fda[_0x469b('0x1b')]?_0x4a2fda[_0x469b('0x1b')][_0x469b('0x1c')]===undefined?!![]:![]:!![],'where':_0x4a2fda[_0x469b('0x1b')]?_0x4a2fda[_0x469b('0x1b')][_0x469b('0x1d')]||null:null,'attributes':_0x4a2fda[_0x469b('0x1b')]?_0x4a2fda[_0x469b('0x1b')][_0x469b('0x1e')]||null:null,'include':_0x4a2fda[_0x469b('0x1b')]?_0x4a2fda[_0x469b('0x1b')][_0x469b('0x20')]?_['map'](_0x4a2fda['options'][_0x469b('0x20')],function(_0x4d3539){return{'model':db[_0x4d3539['model']],'as':_0x4d3539['as'],'attributes':_0x4d3539[_0x469b('0x1e')],'include':_0x4d3539[_0x469b('0x20')]?_[_0x469b('0x21')](_0x4d3539[_0x469b('0x20')],function(_0xa3be40){return{'model':db[_0xa3be40[_0x469b('0x22')]],'as':_0xa3be40['as'],'attributes':_0xa3be40[_0x469b('0x1e')],'include':_0xa3be40[_0x469b('0x20')]?_['map'](_0xa3be40[_0x469b('0x20')],function(_0x1f90e0){return{'model':db[_0x1f90e0[_0x469b('0x22')]],'as':_0x1f90e0['as'],'attributes':_0x1f90e0['attributes']};}):[]};}):[]};}):[]:[]})[_0x469b('0xe')](function(_0x52b34b){logger[_0x469b('0x16')]('ShowFreshdeskAccount',_0x4a2fda);logger[_0x469b('0x11')](_0x469b('0x24'),_0x4a2fda,JSON[_0x469b('0x23')](_0x52b34b));_0x2aba99(_0x52b34b);})[_0x469b('0x17')](function(_0xd2a8b0){logger[_0x469b('0x13')](_0x469b('0x24'),_0xd2a8b0['message'],_0x4a2fda);_0x292f53(_0x3af0de[_0x469b('0x13')](0x1f4,_0xd2a8b0[_0x469b('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b0e=['show','getFields','/:id/subjects','getSubjects','/:id/descriptions','/:id/tags','getTags','post','create','setTags','put','update','delete','exports','multer','util','connect-timeout','fs-extra','../../config/environment','./intFreshdeskConfiguration.controller','get','isAuthenticated','/:id'];(function(_0x39a64f,_0x3bf801){var _0x314715=function(_0x4c6356){while(--_0x4c6356){_0x39a64f['push'](_0x39a64f['shift']());}};_0x314715(++_0x3bf801);}(_0x3b0e,0x6a));var _0xe3b0=function(_0x28554c,_0x2b88ac){_0x28554c=_0x28554c-0x0;var _0x3a9dde=_0x3b0e[_0x28554c];return _0x3a9dde;};'use strict';var multer=require(_0xe3b0('0x0'));var util=require(_0xe3b0('0x1'));var path=require('path');var timeout=require(_0xe3b0('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xe3b0('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xe3b0('0x4'));var controller=require(_0xe3b0('0x5'));router[_0xe3b0('0x6')]('/',auth[_0xe3b0('0x7')](),controller['index']);router[_0xe3b0('0x6')](_0xe3b0('0x8'),auth[_0xe3b0('0x7')](),controller[_0xe3b0('0x9')]);router[_0xe3b0('0x6')]('/:id/fields',auth['isAuthenticated'](),controller[_0xe3b0('0xa')]);router[_0xe3b0('0x6')](_0xe3b0('0xb'),auth[_0xe3b0('0x7')](),controller[_0xe3b0('0xc')]);router['get'](_0xe3b0('0xd'),auth[_0xe3b0('0x7')](),controller['getDescriptions']);router[_0xe3b0('0x6')](_0xe3b0('0xe'),auth[_0xe3b0('0x7')](),controller[_0xe3b0('0xf')]);router[_0xe3b0('0x10')]('/',auth[_0xe3b0('0x7')](),controller[_0xe3b0('0x11')]);router[_0xe3b0('0x10')](_0xe3b0('0xe'),auth['isAuthenticated'](),controller[_0xe3b0('0x12')]);router[_0xe3b0('0x13')](_0xe3b0('0x8'),auth[_0xe3b0('0x7')](),controller[_0xe3b0('0x14')]);router[_0xe3b0('0x15')](_0xe3b0('0x8'),auth[_0xe3b0('0x7')](),controller['destroy']);module[_0xe3b0('0x16')]=router;
\ No newline at end of file
+var _0x3206=['../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects','getSubjects','getDescriptions','/:id/tags','getTags','post','setTags','put','update','delete','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service'];(function(_0x4c86b2,_0x29089a){var _0x2901c0=function(_0x30aa2c){while(--_0x30aa2c){_0x4c86b2['push'](_0x4c86b2['shift']());}};_0x2901c0(++_0x29089a);}(_0x3206,0x1e0));var _0x6320=function(_0x233b2a,_0x440cd1){_0x233b2a=_0x233b2a-0x0;var _0x4e828a=_0x3206[_0x233b2a];return _0x4e828a;};'use strict';var multer=require(_0x6320('0x0'));var util=require(_0x6320('0x1'));var path=require(_0x6320('0x2'));var timeout=require('connect-timeout');var express=require(_0x6320('0x3'));var router=express['Router']();var fs_extra=require(_0x6320('0x4'));var auth=require(_0x6320('0x5'));var interaction=require(_0x6320('0x6'));var config=require(_0x6320('0x7'));var controller=require('./intFreshdeskConfiguration.controller');router[_0x6320('0x8')]('/',auth['isAuthenticated'](),controller[_0x6320('0x9')]);router['get'](_0x6320('0xa'),auth[_0x6320('0xb')](),controller[_0x6320('0xc')]);router[_0x6320('0x8')](_0x6320('0xd'),auth[_0x6320('0xb')](),controller[_0x6320('0xe')]);router['get'](_0x6320('0xf'),auth[_0x6320('0xb')](),controller[_0x6320('0x10')]);router[_0x6320('0x8')]('/:id/descriptions',auth[_0x6320('0xb')](),controller[_0x6320('0x11')]);router[_0x6320('0x8')](_0x6320('0x12'),auth[_0x6320('0xb')](),controller[_0x6320('0x13')]);router[_0x6320('0x14')]('/',auth[_0x6320('0xb')](),controller['create']);router[_0x6320('0x14')](_0x6320('0x12'),auth['isAuthenticated'](),controller[_0x6320('0x15')]);router[_0x6320('0x16')](_0x6320('0xa'),auth[_0x6320('0xb')](),controller[_0x6320('0x17')]);router[_0x6320('0x18')]('/:id',auth[_0x6320('0xb')](),controller[_0x6320('0x19')]);module[_0x6320('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e1b=['sequelize','exports','STRING'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0x5e1b,0x126));var _0xb5e1=function(_0x97c6ea,_0x4cffce){_0x97c6ea=_0x97c6ea-0x0;var _0x2d7f50=_0x5e1b[_0x97c6ea];return _0x2d7f50;};'use strict';var Sequelize=require(_0xb5e1('0x0'));module[_0xb5e1('0x1')]={'name':{'type':Sequelize[_0xb5e1('0x2')]},'description':{'type':Sequelize[_0xb5e1('0x2')]}};
\ No newline at end of file
+var _0x43e8=['sequelize','exports','STRING'];(function(_0x3eb4c2,_0x53dabb){var _0xb3751f=function(_0x373874){while(--_0x373874){_0x3eb4c2['push'](_0x3eb4c2['shift']());}};_0xb3751f(++_0x53dabb);}(_0x43e8,0x8a));var _0x843e=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0x43e8[_0x491a7f];return _0x3d8f44;};'use strict';var Sequelize=require(_0x843e('0x0'));module[_0x843e('0x1')]={'name':{'type':Sequelize[_0x843e('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb40=['type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','options','includeAll','catch','params','find','create','body','getFields','FreshdeskField','order','getSubjects','getDescriptions','findOne','getTags','setTags','rimraf','zip-dir','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','apply','reject','update','destroy','then','stack','name','send','index','FreshdeskConfiguration','rawAttributes','fieldName'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0xeb40,0xba));var _0x0eb4=function(_0x487b0c,_0x14ff74){_0x487b0c=_0x487b0c-0x0;var _0x1adbdc=_0xeb40[_0x487b0c];return _0x1adbdc;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0eb4('0x0'));var zipdir=require(_0x0eb4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x0eb4('0x2'));var util=require(_0x0eb4('0x3'));var path=require(_0x0eb4('0x4'));var sox=require(_0x0eb4('0x5'));var csv=require(_0x0eb4('0x6'));var ejs=require(_0x0eb4('0x7'));var fs=require('fs');var fs_extra=require(_0x0eb4('0x8'));var _=require(_0x0eb4('0x9'));var squel=require(_0x0eb4('0xa'));var crypto=require(_0x0eb4('0xb'));var jsforce=require(_0x0eb4('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x0eb4('0x6'));var querystring=require(_0x0eb4('0xd'));var Papa=require(_0x0eb4('0xe'));var Redis=require(_0x0eb4('0xf'));var authService=require(_0x0eb4('0x10'));var qs=require(_0x0eb4('0x11'));var as=require(_0x0eb4('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0eb4('0x13'))(_0x0eb4('0x14'));var utils=require(_0x0eb4('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0eb4('0x16'))['db'];function respondWithStatusCode(_0x17731f,_0x42062b){_0x42062b=_0x42062b||0xcc;return function(_0x5958a4){if(_0x5958a4){return _0x17731f[_0x0eb4('0x17')](_0x42062b);}return _0x17731f[_0x0eb4('0x18')](_0x42062b)[_0x0eb4('0x19')]();};}function respondWithResult(_0x1d7544,_0xf265bc){_0xf265bc=_0xf265bc||0xc8;return function(_0x1a8bff){if(_0x1a8bff){return _0x1d7544[_0x0eb4('0x18')](_0xf265bc)[_0x0eb4('0x1a')](_0x1a8bff);}};}function respondWithFilteredResult(_0x38a2e7,_0x12d4cd){return function(_0x13bf30){if(_0x13bf30){var _0x5b7f50=typeof _0x12d4cd[_0x0eb4('0x1b')]===_0x0eb4('0x1c')&&typeof _0x12d4cd['limit']===_0x0eb4('0x1c');var _0x35ad36=_0x13bf30[_0x0eb4('0x1d')];var _0x19354d=_0x5b7f50?0x0:_0x12d4cd['offset'];var _0x1f7f8e=_0x5b7f50?_0x13bf30[_0x0eb4('0x1d')]:_0x12d4cd['offset']+_0x12d4cd['limit'];var _0x1653ac;if(_0x1f7f8e>=_0x35ad36){_0x1f7f8e=_0x35ad36;_0x1653ac=0xc8;}else{_0x1653ac=0xce;}_0x38a2e7[_0x0eb4('0x18')](_0x1653ac);return _0x38a2e7['set']('Content-Range',_0x19354d+'-'+_0x1f7f8e+'/'+_0x35ad36)['json'](_0x13bf30);}return null;};}function patchUpdates(_0x917862){return function(_0x13bd9c){try{jsonpatch[_0x0eb4('0x1e')](_0x13bd9c,_0x917862,!![]);}catch(_0x53e38e){return BPromise[_0x0eb4('0x1f')](_0x53e38e);}return _0x13bd9c['save']();};}function saveUpdates(_0x5803e7,_0x978560){return function(_0x425420){if(_0x425420){return _0x425420[_0x0eb4('0x20')](_0x5803e7)['then'](function(_0xe71634){return _0xe71634;});}return null;};}function removeEntity(_0x1673af,_0x2c58ee){return function(_0x481cf3){if(_0x481cf3){return _0x481cf3[_0x0eb4('0x21')]()[_0x0eb4('0x22')](function(){_0x1673af['status'](0xcc)[_0x0eb4('0x19')]();});}};}function handleEntityNotFound(_0x1aa44d,_0x18c7c5){return function(_0x17f335){if(!_0x17f335){_0x1aa44d[_0x0eb4('0x17')](0x194);}return _0x17f335;};}function handleError(_0x898868,_0x58d054){_0x58d054=_0x58d054||0x1f4;return function(_0x1906e2){logger['error'](_0x1906e2[_0x0eb4('0x23')]);if(_0x1906e2[_0x0eb4('0x24')]){delete _0x1906e2[_0x0eb4('0x24')];}_0x898868['status'](_0x58d054)[_0x0eb4('0x25')](_0x1906e2);};}exports[_0x0eb4('0x26')]=function(_0x4e37c7,_0x51a2a6){var _0x10d2f0={},_0x104b10={},_0x4f939c={'count':0x0,'rows':[]};var _0x1a4f54=_['map'](db[_0x0eb4('0x27')][_0x0eb4('0x28')],function(_0x5cfe1c){return{'name':_0x5cfe1c[_0x0eb4('0x29')],'type':_0x5cfe1c[_0x0eb4('0x2a')][_0x0eb4('0x2b')]};});_0x104b10[_0x0eb4('0x2c')]=_[_0x0eb4('0x2d')](_0x1a4f54,_0x0eb4('0x24'));_0x104b10[_0x0eb4('0x2e')]=_[_0x0eb4('0x2f')](_0x4e37c7[_0x0eb4('0x2e')]);_0x104b10[_0x0eb4('0x30')]=_[_0x0eb4('0x31')](_0x104b10[_0x0eb4('0x2c')],_0x104b10['query']);_0x10d2f0['attributes']=_[_0x0eb4('0x31')](_0x104b10[_0x0eb4('0x2c')],qs[_0x0eb4('0x32')](_0x4e37c7['query'][_0x0eb4('0x32')]));_0x10d2f0[_0x0eb4('0x33')]=_0x10d2f0[_0x0eb4('0x33')][_0x0eb4('0x34')]?_0x10d2f0[_0x0eb4('0x33')]:_0x104b10[_0x0eb4('0x2c')];if(!_0x4e37c7[_0x0eb4('0x2e')][_0x0eb4('0x35')](_0x0eb4('0x36'))){_0x10d2f0[_0x0eb4('0x37')]=qs['limit'](_0x4e37c7[_0x0eb4('0x2e')][_0x0eb4('0x37')]);_0x10d2f0[_0x0eb4('0x1b')]=qs[_0x0eb4('0x1b')](_0x4e37c7[_0x0eb4('0x2e')][_0x0eb4('0x1b')]);}_0x10d2f0['order']=qs[_0x0eb4('0x38')](_0x4e37c7['query']['sort']);_0x10d2f0[_0x0eb4('0x39')]=qs[_0x0eb4('0x30')](_[_0x0eb4('0x3a')](_0x4e37c7['query'],_0x104b10[_0x0eb4('0x30')]),_0x1a4f54);if(_0x4e37c7['query'][_0x0eb4('0x3b')]){_0x10d2f0[_0x0eb4('0x39')]=_[_0x0eb4('0x3c')](_0x10d2f0[_0x0eb4('0x39')],{'$or':_['map'](_0x1a4f54,function(_0x403f5f){if(_0x403f5f['type']!=='VIRTUAL'){var _0x197204={};_0x197204[_0x403f5f[_0x0eb4('0x24')]]={'$like':'%'+_0x4e37c7[_0x0eb4('0x2e')]['filter']+'%'};return _0x197204;}})});}_0x10d2f0=_[_0x0eb4('0x3c')]({},_0x10d2f0,_0x4e37c7[_0x0eb4('0x3d')]);var _0x4101b6={'where':_0x10d2f0[_0x0eb4('0x39')]};return db['FreshdeskConfiguration'][_0x0eb4('0x1d')](_0x4101b6)['then'](function(_0x939d0c){_0x4f939c[_0x0eb4('0x1d')]=_0x939d0c;if(_0x4e37c7['query'][_0x0eb4('0x3e')]){_0x10d2f0['include']=[{'all':!![]}];}return db[_0x0eb4('0x27')]['findAll'](_0x10d2f0);})['then'](function(_0x3cae61){_0x4f939c['rows']=_0x3cae61;return _0x4f939c;})[_0x0eb4('0x22')](respondWithFilteredResult(_0x51a2a6,_0x10d2f0))[_0x0eb4('0x3f')](handleError(_0x51a2a6,null));};exports['show']=function(_0x5ccce1,_0x3ca824){var _0x40eb90={'raw':![],'where':{'id':_0x5ccce1[_0x0eb4('0x40')]['id']}},_0x4fc8e9={};_0x4fc8e9['model']=_[_0x0eb4('0x2f')](db[_0x0eb4('0x27')][_0x0eb4('0x28')]);_0x4fc8e9[_0x0eb4('0x2e')]=_[_0x0eb4('0x2f')](_0x5ccce1[_0x0eb4('0x2e')]);_0x4fc8e9[_0x0eb4('0x30')]=_[_0x0eb4('0x31')](_0x4fc8e9['model'],_0x4fc8e9[_0x0eb4('0x2e')]);_0x40eb90[_0x0eb4('0x33')]=_[_0x0eb4('0x31')](_0x4fc8e9[_0x0eb4('0x2c')],qs[_0x0eb4('0x32')](_0x5ccce1['query'][_0x0eb4('0x32')]));_0x40eb90['attributes']=_0x40eb90[_0x0eb4('0x33')][_0x0eb4('0x34')]?_0x40eb90[_0x0eb4('0x33')]:_0x4fc8e9[_0x0eb4('0x2c')];if(_0x5ccce1['query'][_0x0eb4('0x3e')]){_0x40eb90['include']=[{'all':!![]}];}_0x40eb90=_['merge']({},_0x40eb90,_0x5ccce1[_0x0eb4('0x3d')]);return db['FreshdeskConfiguration'][_0x0eb4('0x41')](_0x40eb90)[_0x0eb4('0x22')](handleEntityNotFound(_0x3ca824,null))[_0x0eb4('0x22')](respondWithResult(_0x3ca824,null))[_0x0eb4('0x3f')](handleError(_0x3ca824,null));};exports[_0x0eb4('0x42')]=function(_0x16049b,_0x23d195){return db[_0x0eb4('0x27')]['create'](_0x16049b[_0x0eb4('0x43')],{})[_0x0eb4('0x22')](respondWithResult(_0x23d195,0xc9))[_0x0eb4('0x3f')](handleError(_0x23d195,null));};exports[_0x0eb4('0x20')]=function(_0x153a0c,_0xb59258){if(_0x153a0c[_0x0eb4('0x43')]['id']){delete _0x153a0c['body']['id'];}return db[_0x0eb4('0x27')][_0x0eb4('0x41')]({'where':{'id':_0x153a0c['params']['id']}})[_0x0eb4('0x22')](handleEntityNotFound(_0xb59258,null))[_0x0eb4('0x22')](saveUpdates(_0x153a0c['body'],null))[_0x0eb4('0x22')](respondWithResult(_0xb59258,null))['catch'](handleError(_0xb59258,null));};exports['destroy']=function(_0x537a8f,_0x1ee88f){return db[_0x0eb4('0x27')][_0x0eb4('0x41')]({'where':{'id':_0x537a8f[_0x0eb4('0x40')]['id']}})[_0x0eb4('0x22')](handleEntityNotFound(_0x1ee88f,null))[_0x0eb4('0x22')](removeEntity(_0x1ee88f,null))['catch'](handleError(_0x1ee88f,null));};exports[_0x0eb4('0x44')]=function(_0xf3a093,_0x277028,_0x4a2c81){var _0x2a6ec4={};var _0xf9bd0c={};var _0x13ba33;var _0x374181;return db[_0x0eb4('0x27')]['findOne']({'where':{'id':_0xf3a093[_0x0eb4('0x40')]['id']}})['then'](handleEntityNotFound(_0x277028,null))[_0x0eb4('0x22')](function(_0x3db64f){if(_0x3db64f){_0x13ba33=_0x3db64f;_0xf9bd0c['model']=_['keys'](db[_0x0eb4('0x45')][_0x0eb4('0x28')]);_0xf9bd0c[_0x0eb4('0x2e')]=_[_0x0eb4('0x2f')](_0xf3a093['query']);_0xf9bd0c['filters']=_[_0x0eb4('0x31')](_0xf9bd0c[_0x0eb4('0x2c')],_0xf9bd0c[_0x0eb4('0x2e')]);_0x2a6ec4[_0x0eb4('0x33')]=_['intersection'](_0xf9bd0c[_0x0eb4('0x2c')],qs['fields'](_0xf3a093[_0x0eb4('0x2e')][_0x0eb4('0x32')]));_0x2a6ec4[_0x0eb4('0x33')]=_0x2a6ec4[_0x0eb4('0x33')][_0x0eb4('0x34')]?_0x2a6ec4['attributes']:_0xf9bd0c['model'];_0x2a6ec4['order']=qs[_0x0eb4('0x38')](_0xf3a093[_0x0eb4('0x2e')][_0x0eb4('0x38')]);_0x2a6ec4[_0x0eb4('0x39')]=qs[_0x0eb4('0x30')](_[_0x0eb4('0x3a')](_0xf3a093['query'],_0xf9bd0c[_0x0eb4('0x30')]));if(_0xf3a093[_0x0eb4('0x2e')]['filter']){_0x2a6ec4[_0x0eb4('0x39')]=_['merge'](_0x2a6ec4['where'],{'$or':_[_0x0eb4('0x2d')](_0x2a6ec4[_0x0eb4('0x33')],function(_0x1d3f82){var _0x16c114={};_0x16c114[_0x1d3f82]={'$like':'%'+_0xf3a093[_0x0eb4('0x2e')][_0x0eb4('0x3b')]+'%'};return _0x16c114;})});}_0x2a6ec4=_[_0x0eb4('0x3c')]({},_0x2a6ec4,_0xf3a093[_0x0eb4('0x3d')]);return _0x13ba33['getFields'](_0x2a6ec4);}})[_0x0eb4('0x22')](function(_0x19d3f0){if(_0x19d3f0){_0x374181=_0x19d3f0['length'];if(!_0xf3a093[_0x0eb4('0x2e')]['hasOwnProperty'](_0x0eb4('0x36'))){_0x2a6ec4['limit']=qs[_0x0eb4('0x37')](_0xf3a093[_0x0eb4('0x2e')]['limit']);_0x2a6ec4['offset']=qs[_0x0eb4('0x1b')](_0xf3a093[_0x0eb4('0x2e')][_0x0eb4('0x1b')]);}return _0x13ba33['getFields'](_0x2a6ec4);}})['then'](function(_0x441e28){if(_0x441e28){return _0x441e28?{'count':_0x374181,'rows':_0x441e28}:null;}})[_0x0eb4('0x22')](respondWithResult(_0x277028,null))[_0x0eb4('0x3f')](handleError(_0x277028,null));};exports['getSubjects']=function(_0x159a99,_0x3592f9,_0x32157e){var _0x1abb2f={};var _0x1d0127={};var _0x21eb3c;var _0x49d1d1;return db[_0x0eb4('0x27')]['findOne']({'where':{'id':_0x159a99[_0x0eb4('0x40')]['id']}})[_0x0eb4('0x22')](handleEntityNotFound(_0x3592f9,null))[_0x0eb4('0x22')](function(_0x38fa1d){if(_0x38fa1d){_0x21eb3c=_0x38fa1d;_0x1d0127['model']=_[_0x0eb4('0x2f')](db[_0x0eb4('0x45')]['rawAttributes']);_0x1d0127[_0x0eb4('0x2e')]=_[_0x0eb4('0x2f')](_0x159a99[_0x0eb4('0x2e')]);_0x1d0127['filters']=_['intersection'](_0x1d0127[_0x0eb4('0x2c')],_0x1d0127[_0x0eb4('0x2e')]);_0x1abb2f['attributes']=_[_0x0eb4('0x31')](_0x1d0127[_0x0eb4('0x2c')],qs[_0x0eb4('0x32')](_0x159a99['query'][_0x0eb4('0x32')]));_0x1abb2f[_0x0eb4('0x33')]=_0x1abb2f[_0x0eb4('0x33')][_0x0eb4('0x34')]?_0x1abb2f[_0x0eb4('0x33')]:_0x1d0127[_0x0eb4('0x2c')];_0x1abb2f[_0x0eb4('0x46')]=qs['sort'](_0x159a99[_0x0eb4('0x2e')][_0x0eb4('0x38')]);_0x1abb2f[_0x0eb4('0x39')]=qs[_0x0eb4('0x30')](_[_0x0eb4('0x3a')](_0x159a99[_0x0eb4('0x2e')],_0x1d0127['filters']));if(_0x159a99[_0x0eb4('0x2e')][_0x0eb4('0x3b')]){_0x1abb2f[_0x0eb4('0x39')]=_[_0x0eb4('0x3c')](_0x1abb2f[_0x0eb4('0x39')],{'$or':_['map'](_0x1abb2f[_0x0eb4('0x33')],function(_0x3b60d5){var _0x15c1b1={};_0x15c1b1[_0x3b60d5]={'$like':'%'+_0x159a99[_0x0eb4('0x2e')][_0x0eb4('0x3b')]+'%'};return _0x15c1b1;})});}_0x1abb2f=_[_0x0eb4('0x3c')]({},_0x1abb2f,_0x159a99[_0x0eb4('0x3d')]);return _0x21eb3c['getSubjects'](_0x1abb2f);}})[_0x0eb4('0x22')](function(_0x41ad50){if(_0x41ad50){_0x49d1d1=_0x41ad50[_0x0eb4('0x34')];if(!_0x159a99[_0x0eb4('0x2e')][_0x0eb4('0x35')](_0x0eb4('0x36'))){_0x1abb2f[_0x0eb4('0x37')]=qs['limit'](_0x159a99[_0x0eb4('0x2e')][_0x0eb4('0x37')]);_0x1abb2f[_0x0eb4('0x1b')]=qs[_0x0eb4('0x1b')](_0x159a99[_0x0eb4('0x2e')][_0x0eb4('0x1b')]);}return _0x21eb3c[_0x0eb4('0x47')](_0x1abb2f);}})[_0x0eb4('0x22')](function(_0x578d11){if(_0x578d11){return _0x578d11?{'count':_0x49d1d1,'rows':_0x578d11}:null;}})[_0x0eb4('0x22')](respondWithResult(_0x3592f9,null))[_0x0eb4('0x3f')](handleError(_0x3592f9,null));};exports[_0x0eb4('0x48')]=function(_0x1c99f7,_0x2a6fa1,_0x246b07){var _0x2695ca={};var _0x23c192={};var _0x4db805;var _0xa7d31d;return db[_0x0eb4('0x27')][_0x0eb4('0x49')]({'where':{'id':_0x1c99f7[_0x0eb4('0x40')]['id']}})[_0x0eb4('0x22')](handleEntityNotFound(_0x2a6fa1,null))['then'](function(_0x5a0ebf){if(_0x5a0ebf){_0x4db805=_0x5a0ebf;_0x23c192['model']=_[_0x0eb4('0x2f')](db['FreshdeskField']['rawAttributes']);_0x23c192['query']=_['keys'](_0x1c99f7[_0x0eb4('0x2e')]);_0x23c192[_0x0eb4('0x30')]=_[_0x0eb4('0x31')](_0x23c192[_0x0eb4('0x2c')],_0x23c192[_0x0eb4('0x2e')]);_0x2695ca[_0x0eb4('0x33')]=_[_0x0eb4('0x31')](_0x23c192[_0x0eb4('0x2c')],qs['fields'](_0x1c99f7['query'][_0x0eb4('0x32')]));_0x2695ca[_0x0eb4('0x33')]=_0x2695ca[_0x0eb4('0x33')]['length']?_0x2695ca[_0x0eb4('0x33')]:_0x23c192[_0x0eb4('0x2c')];_0x2695ca[_0x0eb4('0x46')]=qs['sort'](_0x1c99f7[_0x0eb4('0x2e')]['sort']);_0x2695ca[_0x0eb4('0x39')]=qs[_0x0eb4('0x30')](_[_0x0eb4('0x3a')](_0x1c99f7[_0x0eb4('0x2e')],_0x23c192['filters']));if(_0x1c99f7[_0x0eb4('0x2e')][_0x0eb4('0x3b')]){_0x2695ca[_0x0eb4('0x39')]=_[_0x0eb4('0x3c')](_0x2695ca['where'],{'$or':_['map'](_0x2695ca['attributes'],function(_0x1a5928){var _0x296027={};_0x296027[_0x1a5928]={'$like':'%'+_0x1c99f7[_0x0eb4('0x2e')][_0x0eb4('0x3b')]+'%'};return _0x296027;})});}_0x2695ca=_[_0x0eb4('0x3c')]({},_0x2695ca,_0x1c99f7['options']);return _0x4db805[_0x0eb4('0x48')](_0x2695ca);}})[_0x0eb4('0x22')](function(_0x382c5b){if(_0x382c5b){_0xa7d31d=_0x382c5b['length'];if(!_0x1c99f7[_0x0eb4('0x2e')]['hasOwnProperty'](_0x0eb4('0x36'))){_0x2695ca[_0x0eb4('0x37')]=qs['limit'](_0x1c99f7[_0x0eb4('0x2e')][_0x0eb4('0x37')]);_0x2695ca['offset']=qs[_0x0eb4('0x1b')](_0x1c99f7['query']['offset']);}return _0x4db805[_0x0eb4('0x48')](_0x2695ca);}})[_0x0eb4('0x22')](function(_0x3de762){if(_0x3de762){return _0x3de762?{'count':_0xa7d31d,'rows':_0x3de762}:null;}})[_0x0eb4('0x22')](respondWithResult(_0x2a6fa1,null))['catch'](handleError(_0x2a6fa1,null));};exports[_0x0eb4('0x4a')]=function(_0x411a42,_0x52f80c,_0x340f9a){var _0x569904={};var _0xf7c818={};var _0xefbfd8;var _0x165320;return db['FreshdeskConfiguration'][_0x0eb4('0x49')]({'where':{'id':_0x411a42[_0x0eb4('0x40')]['id']}})[_0x0eb4('0x22')](handleEntityNotFound(_0x52f80c,null))[_0x0eb4('0x22')](function(_0x10a4ba){if(_0x10a4ba){_0xefbfd8=_0x10a4ba;_0xf7c818['model']=_['keys'](db['Tag']['rawAttributes']);_0xf7c818[_0x0eb4('0x2e')]=_[_0x0eb4('0x2f')](_0x411a42[_0x0eb4('0x2e')]);_0xf7c818[_0x0eb4('0x30')]=_[_0x0eb4('0x31')](_0xf7c818['model'],_0xf7c818['query']);_0x569904[_0x0eb4('0x33')]=_[_0x0eb4('0x31')](_0xf7c818[_0x0eb4('0x2c')],qs[_0x0eb4('0x32')](_0x411a42[_0x0eb4('0x2e')][_0x0eb4('0x32')]));_0x569904['attributes']=_0x569904[_0x0eb4('0x33')][_0x0eb4('0x34')]?_0x569904['attributes']:_0xf7c818['model'];_0x569904[_0x0eb4('0x46')]=qs[_0x0eb4('0x38')](_0x411a42[_0x0eb4('0x2e')]['sort']);_0x569904[_0x0eb4('0x39')]=qs[_0x0eb4('0x30')](_[_0x0eb4('0x3a')](_0x411a42[_0x0eb4('0x2e')],_0xf7c818[_0x0eb4('0x30')]));if(_0x411a42[_0x0eb4('0x2e')][_0x0eb4('0x3b')]){_0x569904[_0x0eb4('0x39')]=_[_0x0eb4('0x3c')](_0x569904[_0x0eb4('0x39')],{'$or':_[_0x0eb4('0x2d')](_0x569904[_0x0eb4('0x33')],function(_0x2b5925){var _0x284090={};_0x284090[_0x2b5925]={'$like':'%'+_0x411a42[_0x0eb4('0x2e')][_0x0eb4('0x3b')]+'%'};return _0x284090;})});}_0x569904=_[_0x0eb4('0x3c')]({},_0x569904,_0x411a42['options']);return _0xefbfd8[_0x0eb4('0x4a')](_0x569904);}})[_0x0eb4('0x22')](function(_0x13bf72){if(_0x13bf72){_0x165320=_0x13bf72[_0x0eb4('0x34')];if(!_0x411a42['query'][_0x0eb4('0x35')](_0x0eb4('0x36'))){_0x569904[_0x0eb4('0x37')]=qs['limit'](_0x411a42[_0x0eb4('0x2e')][_0x0eb4('0x37')]);_0x569904['offset']=qs[_0x0eb4('0x1b')](_0x411a42[_0x0eb4('0x2e')]['offset']);}return _0xefbfd8[_0x0eb4('0x4a')](_0x569904);}})['then'](function(_0x80313a){if(_0x80313a){return _0x80313a?{'count':_0x165320,'rows':_0x80313a}:null;}})[_0x0eb4('0x22')](respondWithResult(_0x52f80c,null))[_0x0eb4('0x3f')](handleError(_0x52f80c,null));};exports['setTags']=function(_0x1d618c,_0x3e7b67,_0x7e8d8f){if(_0x1d618c[_0x0eb4('0x43')]['id']){delete _0x1d618c['body']['id'];}return db['FreshdeskConfiguration']['findOne']({'where':{'id':_0x1d618c[_0x0eb4('0x40')]['id']}})['then'](handleEntityNotFound(_0x3e7b67,null))[_0x0eb4('0x22')](function(_0x1a6656){if(_0x1a6656){return _0x1a6656[_0x0eb4('0x4b')](_0x1d618c['body']['ids']||[]);}return null;})[_0x0eb4('0x22')](respondWithResult(_0x3e7b67,null))[_0x0eb4('0x3f')](handleError(_0x3e7b67,null));};
\ No newline at end of file
+var _0x8484=['fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','limit','undefined','set','Content-Range','reject','save','update','destroy','then','error','name','send','index','FreshdeskConfiguration','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','length','model','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','find','body','params','findOne','FreshdeskField','order','getFields','getSubjects','getDescriptions','Tag','setTags','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv'];(function(_0x5099dc,_0x1c89e8){var _0x22f03c=function(_0x5533bf){while(--_0x5533bf){_0x5099dc['push'](_0x5099dc['shift']());}};_0x22f03c(++_0x1c89e8);}(_0x8484,0x1e4));var _0x4848=function(_0x5acfde,_0x3596d4){_0x5acfde=_0x5acfde-0x0;var _0x123d61=_0x8484[_0x5acfde];return _0x123d61;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4848('0x0'));var jsonpatch=require(_0x4848('0x1'));var rp=require(_0x4848('0x2'));var moment=require(_0x4848('0x3'));var BPromise=require(_0x4848('0x4'));var Mustache=require('mustache');var util=require(_0x4848('0x5'));var path=require(_0x4848('0x6'));var sox=require('sox');var csv=require(_0x4848('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4848('0x8'));var _=require(_0x4848('0x9'));var squel=require(_0x4848('0xa'));var crypto=require('crypto');var jsforce=require(_0x4848('0xb'));var deskjs=require(_0x4848('0xc'));var toCsv=require(_0x4848('0x7'));var querystring=require(_0x4848('0xd'));var Papa=require(_0x4848('0xe'));var Redis=require(_0x4848('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x4848('0x10'));var as=require(_0x4848('0x11'));var hardwareService=require(_0x4848('0x12'));var logger=require(_0x4848('0x13'))('api');var utils=require(_0x4848('0x14'));var config=require(_0x4848('0x15'));var licenseUtil=require(_0x4848('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x370119,_0x31ed19){_0x31ed19=_0x31ed19||0xcc;return function(_0xd08e9f){if(_0xd08e9f){return _0x370119[_0x4848('0x17')](_0x31ed19);}return _0x370119[_0x4848('0x18')](_0x31ed19)[_0x4848('0x19')]();};}function respondWithResult(_0x1bf6d1,_0x5f5ca2){_0x5f5ca2=_0x5f5ca2||0xc8;return function(_0x2b4174){if(_0x2b4174){return _0x1bf6d1[_0x4848('0x18')](_0x5f5ca2)[_0x4848('0x1a')](_0x2b4174);}};}function respondWithFilteredResult(_0x551892,_0x516837){return function(_0x35e0ac){if(_0x35e0ac){var _0x419d94=typeof _0x516837[_0x4848('0x1b')]==='undefined'&&typeof _0x516837[_0x4848('0x1c')]===_0x4848('0x1d');var _0x3c54c3=_0x35e0ac['count'];var _0x3522a9=_0x419d94?0x0:_0x516837[_0x4848('0x1b')];var _0x99541e=_0x419d94?_0x35e0ac['count']:_0x516837['offset']+_0x516837['limit'];var _0xfad690;if(_0x99541e>=_0x3c54c3){_0x99541e=_0x3c54c3;_0xfad690=0xc8;}else{_0xfad690=0xce;}_0x551892[_0x4848('0x18')](_0xfad690);return _0x551892[_0x4848('0x1e')](_0x4848('0x1f'),_0x3522a9+'-'+_0x99541e+'/'+_0x3c54c3)[_0x4848('0x1a')](_0x35e0ac);}return null;};}function patchUpdates(_0x2611ce){return function(_0x152510){try{jsonpatch['apply'](_0x152510,_0x2611ce,!![]);}catch(_0x51dd43){return BPromise[_0x4848('0x20')](_0x51dd43);}return _0x152510[_0x4848('0x21')]();};}function saveUpdates(_0x4470f2,_0x38a152){return function(_0x3b8191){if(_0x3b8191){return _0x3b8191[_0x4848('0x22')](_0x4470f2)['then'](function(_0x5cac99){return _0x5cac99;});}return null;};}function removeEntity(_0x13ac62,_0x13f53f){return function(_0x2bedfb){if(_0x2bedfb){return _0x2bedfb[_0x4848('0x23')]()[_0x4848('0x24')](function(){_0x13ac62[_0x4848('0x18')](0xcc)[_0x4848('0x19')]();});}};}function handleEntityNotFound(_0x5ee1b4,_0x27a2dc){return function(_0x54d5b9){if(!_0x54d5b9){_0x5ee1b4['sendStatus'](0x194);}return _0x54d5b9;};}function handleError(_0x4843df,_0x4f07f7){_0x4f07f7=_0x4f07f7||0x1f4;return function(_0x171584){logger[_0x4848('0x25')](_0x171584['stack']);if(_0x171584[_0x4848('0x26')]){delete _0x171584[_0x4848('0x26')];}_0x4843df[_0x4848('0x18')](_0x4f07f7)[_0x4848('0x27')](_0x171584);};}exports[_0x4848('0x28')]=function(_0x468871,_0xa56a27){var _0x5c05f4={},_0x48e486={},_0x188005={'count':0x0,'rows':[]};var _0x263bb4=_['map'](db[_0x4848('0x29')][_0x4848('0x2a')],function(_0x227d08){return{'name':_0x227d08[_0x4848('0x2b')],'type':_0x227d08[_0x4848('0x2c')][_0x4848('0x2d')]};});_0x48e486['model']=_['map'](_0x263bb4,_0x4848('0x26'));_0x48e486[_0x4848('0x2e')]=_[_0x4848('0x2f')](_0x468871[_0x4848('0x2e')]);_0x48e486[_0x4848('0x30')]=_[_0x4848('0x31')](_0x48e486['model'],_0x48e486[_0x4848('0x2e')]);_0x5c05f4[_0x4848('0x32')]=_[_0x4848('0x31')](_0x48e486['model'],qs[_0x4848('0x33')](_0x468871[_0x4848('0x2e')][_0x4848('0x33')]));_0x5c05f4[_0x4848('0x32')]=_0x5c05f4[_0x4848('0x32')][_0x4848('0x34')]?_0x5c05f4['attributes']:_0x48e486[_0x4848('0x35')];if(!_0x468871[_0x4848('0x2e')][_0x4848('0x36')](_0x4848('0x37'))){_0x5c05f4[_0x4848('0x1c')]=qs['limit'](_0x468871[_0x4848('0x2e')][_0x4848('0x1c')]);_0x5c05f4[_0x4848('0x1b')]=qs[_0x4848('0x1b')](_0x468871[_0x4848('0x2e')][_0x4848('0x1b')]);}_0x5c05f4['order']=qs[_0x4848('0x38')](_0x468871[_0x4848('0x2e')]['sort']);_0x5c05f4[_0x4848('0x39')]=qs[_0x4848('0x30')](_[_0x4848('0x3a')](_0x468871[_0x4848('0x2e')],_0x48e486['filters']),_0x263bb4);if(_0x468871[_0x4848('0x2e')][_0x4848('0x3b')]){_0x5c05f4[_0x4848('0x39')]=_[_0x4848('0x3c')](_0x5c05f4[_0x4848('0x39')],{'$or':_[_0x4848('0x3d')](_0x263bb4,function(_0x596cbe){if(_0x596cbe[_0x4848('0x2c')]!==_0x4848('0x3e')){var _0x618082={};_0x618082[_0x596cbe[_0x4848('0x26')]]={'$like':'%'+_0x468871['query'][_0x4848('0x3b')]+'%'};return _0x618082;}})});}_0x5c05f4=_[_0x4848('0x3c')]({},_0x5c05f4,_0x468871[_0x4848('0x3f')]);var _0x2cd4e2={'where':_0x5c05f4[_0x4848('0x39')]};return db['FreshdeskConfiguration']['count'](_0x2cd4e2)[_0x4848('0x24')](function(_0x25e783){_0x188005[_0x4848('0x40')]=_0x25e783;if(_0x468871['query'][_0x4848('0x41')]){_0x5c05f4[_0x4848('0x42')]=[{'all':!![]}];}return db['FreshdeskConfiguration'][_0x4848('0x43')](_0x5c05f4);})[_0x4848('0x24')](function(_0x1e9d81){_0x188005[_0x4848('0x44')]=_0x1e9d81;return _0x188005;})[_0x4848('0x24')](respondWithFilteredResult(_0xa56a27,_0x5c05f4))[_0x4848('0x45')](handleError(_0xa56a27,null));};exports[_0x4848('0x46')]=function(_0x5ea6dd,_0x39d53c){var _0x19e480={'raw':![],'where':{'id':_0x5ea6dd['params']['id']}},_0x346b35={};_0x346b35[_0x4848('0x35')]=_[_0x4848('0x2f')](db['FreshdeskConfiguration'][_0x4848('0x2a')]);_0x346b35[_0x4848('0x2e')]=_['keys'](_0x5ea6dd[_0x4848('0x2e')]);_0x346b35[_0x4848('0x30')]=_[_0x4848('0x31')](_0x346b35['model'],_0x346b35[_0x4848('0x2e')]);_0x19e480[_0x4848('0x32')]=_[_0x4848('0x31')](_0x346b35[_0x4848('0x35')],qs[_0x4848('0x33')](_0x5ea6dd['query'][_0x4848('0x33')]));_0x19e480['attributes']=_0x19e480['attributes'][_0x4848('0x34')]?_0x19e480[_0x4848('0x32')]:_0x346b35[_0x4848('0x35')];if(_0x5ea6dd['query'][_0x4848('0x41')]){_0x19e480[_0x4848('0x42')]=[{'all':!![]}];}_0x19e480=_[_0x4848('0x3c')]({},_0x19e480,_0x5ea6dd[_0x4848('0x3f')]);return db['FreshdeskConfiguration'][_0x4848('0x47')](_0x19e480)['then'](handleEntityNotFound(_0x39d53c,null))[_0x4848('0x24')](respondWithResult(_0x39d53c,null))[_0x4848('0x45')](handleError(_0x39d53c,null));};exports['create']=function(_0x3c15c5,_0x19d432){return db['FreshdeskConfiguration']['create'](_0x3c15c5[_0x4848('0x48')],{})[_0x4848('0x24')](respondWithResult(_0x19d432,0xc9))[_0x4848('0x45')](handleError(_0x19d432,null));};exports[_0x4848('0x22')]=function(_0x4e649c,_0x61e014){if(_0x4e649c[_0x4848('0x48')]['id']){delete _0x4e649c[_0x4848('0x48')]['id'];}return db[_0x4848('0x29')][_0x4848('0x47')]({'where':{'id':_0x4e649c[_0x4848('0x49')]['id']}})[_0x4848('0x24')](handleEntityNotFound(_0x61e014,null))[_0x4848('0x24')](saveUpdates(_0x4e649c['body'],null))['then'](respondWithResult(_0x61e014,null))[_0x4848('0x45')](handleError(_0x61e014,null));};exports[_0x4848('0x23')]=function(_0x25c860,_0x1bdc15){return db[_0x4848('0x29')][_0x4848('0x47')]({'where':{'id':_0x25c860['params']['id']}})[_0x4848('0x24')](handleEntityNotFound(_0x1bdc15,null))['then'](removeEntity(_0x1bdc15,null))[_0x4848('0x45')](handleError(_0x1bdc15,null));};exports['getFields']=function(_0x5e2d2c,_0x221f79,_0x20c5a7){var _0x3158ed={};var _0x5c5f8c={};var _0x382c39;var _0x1a3999;return db[_0x4848('0x29')][_0x4848('0x4a')]({'where':{'id':_0x5e2d2c[_0x4848('0x49')]['id']}})[_0x4848('0x24')](handleEntityNotFound(_0x221f79,null))[_0x4848('0x24')](function(_0x442fa7){if(_0x442fa7){_0x382c39=_0x442fa7;_0x5c5f8c[_0x4848('0x35')]=_[_0x4848('0x2f')](db[_0x4848('0x4b')]['rawAttributes']);_0x5c5f8c[_0x4848('0x2e')]=_[_0x4848('0x2f')](_0x5e2d2c[_0x4848('0x2e')]);_0x5c5f8c[_0x4848('0x30')]=_[_0x4848('0x31')](_0x5c5f8c['model'],_0x5c5f8c[_0x4848('0x2e')]);_0x3158ed[_0x4848('0x32')]=_[_0x4848('0x31')](_0x5c5f8c['model'],qs[_0x4848('0x33')](_0x5e2d2c[_0x4848('0x2e')][_0x4848('0x33')]));_0x3158ed['attributes']=_0x3158ed['attributes'][_0x4848('0x34')]?_0x3158ed['attributes']:_0x5c5f8c[_0x4848('0x35')];_0x3158ed[_0x4848('0x4c')]=qs[_0x4848('0x38')](_0x5e2d2c['query'][_0x4848('0x38')]);_0x3158ed[_0x4848('0x39')]=qs[_0x4848('0x30')](_['pick'](_0x5e2d2c[_0x4848('0x2e')],_0x5c5f8c['filters']));if(_0x5e2d2c[_0x4848('0x2e')][_0x4848('0x3b')]){_0x3158ed[_0x4848('0x39')]=_[_0x4848('0x3c')](_0x3158ed[_0x4848('0x39')],{'$or':_[_0x4848('0x3d')](_0x3158ed[_0x4848('0x32')],function(_0xca621e){var _0xc6d939={};_0xc6d939[_0xca621e]={'$like':'%'+_0x5e2d2c['query'][_0x4848('0x3b')]+'%'};return _0xc6d939;})});}_0x3158ed=_[_0x4848('0x3c')]({},_0x3158ed,_0x5e2d2c['options']);return _0x382c39[_0x4848('0x4d')](_0x3158ed);}})[_0x4848('0x24')](function(_0x4929fe){if(_0x4929fe){_0x1a3999=_0x4929fe['length'];if(!_0x5e2d2c['query'][_0x4848('0x36')](_0x4848('0x37'))){_0x3158ed[_0x4848('0x1c')]=qs[_0x4848('0x1c')](_0x5e2d2c[_0x4848('0x2e')][_0x4848('0x1c')]);_0x3158ed['offset']=qs['offset'](_0x5e2d2c[_0x4848('0x2e')][_0x4848('0x1b')]);}return _0x382c39[_0x4848('0x4d')](_0x3158ed);}})[_0x4848('0x24')](function(_0x4f2f49){if(_0x4f2f49){return _0x4f2f49?{'count':_0x1a3999,'rows':_0x4f2f49}:null;}})['then'](respondWithResult(_0x221f79,null))['catch'](handleError(_0x221f79,null));};exports[_0x4848('0x4e')]=function(_0x576f14,_0x4ba5dc,_0x395eae){var _0x419dea={};var _0x433b1b={};var _0x4a519d;var _0x5171f2;return db[_0x4848('0x29')][_0x4848('0x4a')]({'where':{'id':_0x576f14[_0x4848('0x49')]['id']}})[_0x4848('0x24')](handleEntityNotFound(_0x4ba5dc,null))[_0x4848('0x24')](function(_0x4b670e){if(_0x4b670e){_0x4a519d=_0x4b670e;_0x433b1b['model']=_[_0x4848('0x2f')](db['FreshdeskField']['rawAttributes']);_0x433b1b[_0x4848('0x2e')]=_[_0x4848('0x2f')](_0x576f14[_0x4848('0x2e')]);_0x433b1b[_0x4848('0x30')]=_[_0x4848('0x31')](_0x433b1b[_0x4848('0x35')],_0x433b1b['query']);_0x419dea['attributes']=_[_0x4848('0x31')](_0x433b1b[_0x4848('0x35')],qs[_0x4848('0x33')](_0x576f14['query'][_0x4848('0x33')]));_0x419dea[_0x4848('0x32')]=_0x419dea[_0x4848('0x32')][_0x4848('0x34')]?_0x419dea[_0x4848('0x32')]:_0x433b1b['model'];_0x419dea[_0x4848('0x4c')]=qs[_0x4848('0x38')](_0x576f14['query']['sort']);_0x419dea[_0x4848('0x39')]=qs[_0x4848('0x30')](_[_0x4848('0x3a')](_0x576f14[_0x4848('0x2e')],_0x433b1b[_0x4848('0x30')]));if(_0x576f14[_0x4848('0x2e')][_0x4848('0x3b')]){_0x419dea[_0x4848('0x39')]=_[_0x4848('0x3c')](_0x419dea[_0x4848('0x39')],{'$or':_['map'](_0x419dea[_0x4848('0x32')],function(_0x4b148f){var _0x4551a2={};_0x4551a2[_0x4b148f]={'$like':'%'+_0x576f14['query'][_0x4848('0x3b')]+'%'};return _0x4551a2;})});}_0x419dea=_[_0x4848('0x3c')]({},_0x419dea,_0x576f14[_0x4848('0x3f')]);return _0x4a519d[_0x4848('0x4e')](_0x419dea);}})['then'](function(_0x4b7d8f){if(_0x4b7d8f){_0x5171f2=_0x4b7d8f[_0x4848('0x34')];if(!_0x576f14['query'][_0x4848('0x36')](_0x4848('0x37'))){_0x419dea[_0x4848('0x1c')]=qs[_0x4848('0x1c')](_0x576f14[_0x4848('0x2e')][_0x4848('0x1c')]);_0x419dea['offset']=qs[_0x4848('0x1b')](_0x576f14[_0x4848('0x2e')][_0x4848('0x1b')]);}return _0x4a519d[_0x4848('0x4e')](_0x419dea);}})['then'](function(_0x1d11de){if(_0x1d11de){return _0x1d11de?{'count':_0x5171f2,'rows':_0x1d11de}:null;}})[_0x4848('0x24')](respondWithResult(_0x4ba5dc,null))[_0x4848('0x45')](handleError(_0x4ba5dc,null));};exports[_0x4848('0x4f')]=function(_0xf0e158,_0x1042b3,_0x235ea3){var _0xc7df61={};var _0x58b40a={};var _0x227676;var _0x15a589;return db[_0x4848('0x29')][_0x4848('0x4a')]({'where':{'id':_0xf0e158[_0x4848('0x49')]['id']}})['then'](handleEntityNotFound(_0x1042b3,null))[_0x4848('0x24')](function(_0x271455){if(_0x271455){_0x227676=_0x271455;_0x58b40a['model']=_[_0x4848('0x2f')](db[_0x4848('0x4b')][_0x4848('0x2a')]);_0x58b40a[_0x4848('0x2e')]=_[_0x4848('0x2f')](_0xf0e158[_0x4848('0x2e')]);_0x58b40a[_0x4848('0x30')]=_['intersection'](_0x58b40a[_0x4848('0x35')],_0x58b40a[_0x4848('0x2e')]);_0xc7df61[_0x4848('0x32')]=_[_0x4848('0x31')](_0x58b40a[_0x4848('0x35')],qs['fields'](_0xf0e158['query'][_0x4848('0x33')]));_0xc7df61[_0x4848('0x32')]=_0xc7df61[_0x4848('0x32')][_0x4848('0x34')]?_0xc7df61[_0x4848('0x32')]:_0x58b40a['model'];_0xc7df61['order']=qs['sort'](_0xf0e158[_0x4848('0x2e')][_0x4848('0x38')]);_0xc7df61[_0x4848('0x39')]=qs[_0x4848('0x30')](_[_0x4848('0x3a')](_0xf0e158[_0x4848('0x2e')],_0x58b40a[_0x4848('0x30')]));if(_0xf0e158[_0x4848('0x2e')][_0x4848('0x3b')]){_0xc7df61[_0x4848('0x39')]=_[_0x4848('0x3c')](_0xc7df61[_0x4848('0x39')],{'$or':_['map'](_0xc7df61[_0x4848('0x32')],function(_0x56ed09){var _0x41e97b={};_0x41e97b[_0x56ed09]={'$like':'%'+_0xf0e158['query'][_0x4848('0x3b')]+'%'};return _0x41e97b;})});}_0xc7df61=_[_0x4848('0x3c')]({},_0xc7df61,_0xf0e158['options']);return _0x227676[_0x4848('0x4f')](_0xc7df61);}})['then'](function(_0x40c53c){if(_0x40c53c){_0x15a589=_0x40c53c[_0x4848('0x34')];if(!_0xf0e158['query']['hasOwnProperty']('nolimit')){_0xc7df61['limit']=qs['limit'](_0xf0e158[_0x4848('0x2e')][_0x4848('0x1c')]);_0xc7df61[_0x4848('0x1b')]=qs['offset'](_0xf0e158['query'][_0x4848('0x1b')]);}return _0x227676['getDescriptions'](_0xc7df61);}})[_0x4848('0x24')](function(_0x3500a2){if(_0x3500a2){return _0x3500a2?{'count':_0x15a589,'rows':_0x3500a2}:null;}})[_0x4848('0x24')](respondWithResult(_0x1042b3,null))[_0x4848('0x45')](handleError(_0x1042b3,null));};exports['getTags']=function(_0x5ea685,_0x755f5c,_0x595cb6){var _0x45652f={};var _0x587742={};var _0x1efd8a;var _0x1b6f33;return db['FreshdeskConfiguration'][_0x4848('0x4a')]({'where':{'id':_0x5ea685[_0x4848('0x49')]['id']}})[_0x4848('0x24')](handleEntityNotFound(_0x755f5c,null))[_0x4848('0x24')](function(_0xb4f1a1){if(_0xb4f1a1){_0x1efd8a=_0xb4f1a1;_0x587742['model']=_[_0x4848('0x2f')](db[_0x4848('0x50')]['rawAttributes']);_0x587742[_0x4848('0x2e')]=_['keys'](_0x5ea685[_0x4848('0x2e')]);_0x587742['filters']=_[_0x4848('0x31')](_0x587742[_0x4848('0x35')],_0x587742['query']);_0x45652f[_0x4848('0x32')]=_[_0x4848('0x31')](_0x587742['model'],qs['fields'](_0x5ea685[_0x4848('0x2e')][_0x4848('0x33')]));_0x45652f['attributes']=_0x45652f[_0x4848('0x32')]['length']?_0x45652f[_0x4848('0x32')]:_0x587742[_0x4848('0x35')];_0x45652f[_0x4848('0x4c')]=qs['sort'](_0x5ea685[_0x4848('0x2e')]['sort']);_0x45652f[_0x4848('0x39')]=qs[_0x4848('0x30')](_['pick'](_0x5ea685[_0x4848('0x2e')],_0x587742[_0x4848('0x30')]));if(_0x5ea685['query'][_0x4848('0x3b')]){_0x45652f[_0x4848('0x39')]=_[_0x4848('0x3c')](_0x45652f[_0x4848('0x39')],{'$or':_['map'](_0x45652f['attributes'],function(_0x551a7d){var _0x3270e2={};_0x3270e2[_0x551a7d]={'$like':'%'+_0x5ea685[_0x4848('0x2e')][_0x4848('0x3b')]+'%'};return _0x3270e2;})});}_0x45652f=_['merge']({},_0x45652f,_0x5ea685[_0x4848('0x3f')]);return _0x1efd8a['getTags'](_0x45652f);}})[_0x4848('0x24')](function(_0x17bf58){if(_0x17bf58){_0x1b6f33=_0x17bf58[_0x4848('0x34')];if(!_0x5ea685[_0x4848('0x2e')]['hasOwnProperty'](_0x4848('0x37'))){_0x45652f[_0x4848('0x1c')]=qs['limit'](_0x5ea685[_0x4848('0x2e')][_0x4848('0x1c')]);_0x45652f['offset']=qs[_0x4848('0x1b')](_0x5ea685[_0x4848('0x2e')]['offset']);}return _0x1efd8a['getTags'](_0x45652f);}})[_0x4848('0x24')](function(_0x179e23){if(_0x179e23){return _0x179e23?{'count':_0x1b6f33,'rows':_0x179e23}:null;}})[_0x4848('0x24')](respondWithResult(_0x755f5c,null))[_0x4848('0x45')](handleError(_0x755f5c,null));};exports['setTags']=function(_0x287ef8,_0x2e8279,_0x2bc1f4){if(_0x287ef8['body']['id']){delete _0x287ef8[_0x4848('0x48')]['id'];}return db[_0x4848('0x29')]['findOne']({'where':{'id':_0x287ef8['params']['id']}})[_0x4848('0x24')](handleEntityNotFound(_0x2e8279,null))[_0x4848('0x24')](function(_0x1c865f){if(_0x1c865f){return _0x1c865f[_0x4848('0x51')](_0x287ef8[_0x4848('0x48')]['ids']||[]);}return null;})[_0x4848('0x24')](respondWithResult(_0x2e8279,null))['catch'](handleError(_0x2e8279,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d09=['../../config/environment','exports','define','FreshdeskConfiguration','int_freshdesk_configurations','lodash','../../config/logger','api','bluebird','request-promise','rimraf'];(function(_0x525af9,_0x4edd23){var _0x129fbf=function(_0x4f44fe){while(--_0x4f44fe){_0x525af9['push'](_0x525af9['shift']());}};_0x129fbf(++_0x4edd23);}(_0x7d09,0x165));var _0x97d0=function(_0xf55e73,_0x3fecc5){_0xf55e73=_0xf55e73-0x0;var _0x116b99=_0x7d09[_0xf55e73];return _0x116b99;};'use strict';var _=require(_0x97d0('0x0'));var util=require('util');var logger=require(_0x97d0('0x1'))(_0x97d0('0x2'));var moment=require('moment');var BPromise=require(_0x97d0('0x3'));var rp=require(_0x97d0('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x97d0('0x5'));var config=require(_0x97d0('0x6'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0x97d0('0x7')]=function(_0x14325f,_0x1b3c28){return _0x14325f[_0x97d0('0x8')](_0x97d0('0x9'),attributes,{'tableName':_0x97d0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeb64=['bluebird','request-promise','path','rimraf','./intFreshdeskConfiguration.attributes','exports','define','FreshdeskConfiguration','int_freshdesk_configurations','lodash','util','../../config/logger','moment'];(function(_0x30ae81,_0x1e8be1){var _0x34b4f1=function(_0x567fa4){while(--_0x567fa4){_0x30ae81['push'](_0x30ae81['shift']());}};_0x34b4f1(++_0x1e8be1);}(_0xeb64,0x1ea));var _0x4eb6=function(_0x401a6d,_0x4cd80a){_0x401a6d=_0x401a6d-0x0;var _0x7b1b5f=_0xeb64[_0x401a6d];return _0x7b1b5f;};'use strict';var _=require(_0x4eb6('0x0'));var util=require(_0x4eb6('0x1'));var logger=require(_0x4eb6('0x2'))('api');var moment=require(_0x4eb6('0x3'));var BPromise=require(_0x4eb6('0x4'));var rp=require(_0x4eb6('0x5'));var fs=require('fs');var path=require(_0x4eb6('0x6'));var rimraf=require(_0x4eb6('0x7'));var config=require('../../config/environment');var attributes=require(_0x4eb6('0x8'));module[_0x4eb6('0x9')]=function(_0x92db67,_0x5eee55){return _0x92db67[_0x4eb6('0xa')](_0x4eb6('0xb'),attributes,{'tableName':_0x4eb6('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f50=['client','http','request','then','info','FreshdeskConfiguration,\x20%s,\x20%s','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x1b0595,_0x1769c7){var _0x26652a=function(_0x4eeec1){while(--_0x4eeec1){_0x1b0595['push'](_0x1b0595['shift']());}};_0x26652a(++_0x1769c7);}(_0x7f50,0x11e));var _0x07f5=function(_0x484198,_0x383467){_0x484198=_0x484198-0x0;var _0x255492=_0x7f50[_0x484198];return _0x255492;};'use strict';var _=require(_0x07f5('0x0'));var util=require('util');var moment=require(_0x07f5('0x1'));var BPromise=require(_0x07f5('0x2'));var rs=require(_0x07f5('0x3'));var fs=require('fs');var Redis=require(_0x07f5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x07f5('0x5'));var logger=require(_0x07f5('0x6'))(_0x07f5('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x07f5('0x8')][_0x07f5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x35b98c,_0x18624b,_0x9b07c5){return new BPromise(function(_0x4bcad7,_0xcd5e63){return client[_0x07f5('0xa')](_0x35b98c,_0x9b07c5)[_0x07f5('0xb')](function(_0x4b9b10){logger[_0x07f5('0xc')](_0x07f5('0xd'),_0x18624b,'request\x20sent');logger['debug'](_0x07f5('0xe'),_0x18624b,_0x07f5('0xf'),JSON[_0x07f5('0x10')](_0x4b9b10));if(_0x4b9b10[_0x07f5('0x11')]){if(_0x4b9b10['error'][_0x07f5('0x12')]===0x1f4){logger[_0x07f5('0x11')](_0x07f5('0xd'),_0x18624b,_0x4b9b10['error']['message']);return _0xcd5e63(_0x4b9b10[_0x07f5('0x11')][_0x07f5('0x13')]);}logger[_0x07f5('0x11')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x18624b,_0x4b9b10['error'][_0x07f5('0x13')]);return _0x4bcad7(_0x4b9b10[_0x07f5('0x11')][_0x07f5('0x13')]);}else{logger[_0x07f5('0xc')](_0x07f5('0xd'),_0x18624b,_0x07f5('0xf'));_0x4bcad7(_0x4b9b10[_0x07f5('0x14')][_0x07f5('0x13')]);}})['catch'](function(_0x554e8a){logger[_0x07f5('0x11')](_0x07f5('0xd'),_0x18624b,_0x554e8a);_0xcd5e63(_0x554e8a);});});}
\ No newline at end of file
+var _0x32ce=['../../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','message','catch','lodash','randomstring','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x32ce,0xdf));var _0xe32c=function(_0x4ddf68,_0x34d642){_0x4ddf68=_0x4ddf68-0x0;var _0x2819b5=_0x32ce[_0x4ddf68];return _0x2819b5;};'use strict';var _=require(_0xe32c('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe32c('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe32c('0x2'))['db'];var utils=require(_0xe32c('0x3'));var logger=require(_0xe32c('0x4'))('rpc');var config=require(_0xe32c('0x5'));var jayson=require(_0xe32c('0x6'));var client=jayson[_0xe32c('0x7')][_0xe32c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1c30f3,_0x2b2edf,_0x35f90f){return new BPromise(function(_0x56a2f1,_0x3665bf){return client[_0xe32c('0x9')](_0x1c30f3,_0x35f90f)[_0xe32c('0xa')](function(_0x2d0669){logger[_0xe32c('0xb')](_0xe32c('0xc'),_0x2b2edf,_0xe32c('0xd'));logger[_0xe32c('0xe')](_0xe32c('0xf'),_0x2b2edf,_0xe32c('0xd'),JSON['stringify'](_0x2d0669));if(_0x2d0669['error']){if(_0x2d0669[_0xe32c('0x10')]['code']===0x1f4){logger[_0xe32c('0x10')](_0xe32c('0xc'),_0x2b2edf,_0x2d0669['error']['message']);return _0x3665bf(_0x2d0669[_0xe32c('0x10')][_0xe32c('0x11')]);}logger[_0xe32c('0x10')](_0xe32c('0xc'),_0x2b2edf,_0x2d0669[_0xe32c('0x10')][_0xe32c('0x11')]);return _0x56a2f1(_0x2d0669['error'][_0xe32c('0x11')]);}else{logger[_0xe32c('0xb')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x2b2edf,_0xe32c('0xd'));_0x56a2f1(_0x2d0669['result'][_0xe32c('0x11')]);}})[_0xe32c('0x12')](function(_0x3dce2f){logger[_0xe32c('0x10')](_0xe32c('0xc'),_0x2b2edf,_0x3dce2f);_0x3665bf(_0x3dce2f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e27=['../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskField.controller','get','isAuthenticated','index','/:id','show','post','put','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra'];(function(_0x3ee966,_0x40cebc){var _0x54232e=function(_0x1897d9){while(--_0x1897d9){_0x3ee966['push'](_0x3ee966['shift']());}};_0x54232e(++_0x40cebc);}(_0x0e27,0x1dd));var _0x70e2=function(_0x43f566,_0x31b49c){_0x43f566=_0x43f566-0x0;var _0x2b7a90=_0x0e27[_0x43f566];return _0x2b7a90;};'use strict';var multer=require(_0x70e2('0x0'));var util=require(_0x70e2('0x1'));var path=require(_0x70e2('0x2'));var timeout=require('connect-timeout');var express=require(_0x70e2('0x3'));var router=express[_0x70e2('0x4')]();var fs_extra=require(_0x70e2('0x5'));var auth=require(_0x70e2('0x6'));var interaction=require(_0x70e2('0x7'));var config=require(_0x70e2('0x8'));var controller=require(_0x70e2('0x9'));router[_0x70e2('0xa')]('/',auth[_0x70e2('0xb')](),controller[_0x70e2('0xc')]);router['get'](_0x70e2('0xd'),auth[_0x70e2('0xb')](),controller[_0x70e2('0xe')]);router[_0x70e2('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0x70e2('0x10')](_0x70e2('0xd'),auth[_0x70e2('0xb')](),controller[_0x70e2('0x11')]);router[_0x70e2('0x12')](_0x70e2('0xd'),auth['isAuthenticated'](),controller[_0x70e2('0x13')]);module[_0x70e2('0x14')]=router;
\ No newline at end of file
+var _0xea73=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express'];(function(_0x4f1c92,_0x259090){var _0x5570b5=function(_0x36b3e0){while(--_0x36b3e0){_0x4f1c92['push'](_0x4f1c92['shift']());}};_0x5570b5(++_0x259090);}(_0xea73,0x79));var _0x3ea7=function(_0x375ac5,_0x438d55){_0x375ac5=_0x375ac5-0x0;var _0x3e6c42=_0xea73[_0x375ac5];return _0x3e6c42;};'use strict';var multer=require(_0x3ea7('0x0'));var util=require(_0x3ea7('0x1'));var path=require(_0x3ea7('0x2'));var timeout=require(_0x3ea7('0x3'));var express=require(_0x3ea7('0x4'));var router=express[_0x3ea7('0x5')]();var fs_extra=require(_0x3ea7('0x6'));var auth=require(_0x3ea7('0x7'));var interaction=require(_0x3ea7('0x8'));var config=require(_0x3ea7('0x9'));var controller=require('./intFreshdeskField.controller');router[_0x3ea7('0xa')]('/',auth[_0x3ea7('0xb')](),controller[_0x3ea7('0xc')]);router['get'](_0x3ea7('0xd'),auth[_0x3ea7('0xb')](),controller[_0x3ea7('0xe')]);router[_0x3ea7('0xf')]('/',auth[_0x3ea7('0xb')](),controller[_0x3ea7('0x10')]);router[_0x3ea7('0x11')](_0x3ea7('0xd'),auth[_0x3ea7('0xb')](),controller[_0x3ea7('0x12')]);router[_0x3ea7('0x13')](_0x3ea7('0xd'),auth[_0x3ea7('0xb')](),controller['destroy']);module[_0x3ea7('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc090=['exports','string','variable','customVariable','picklist','STRING','BOOLEAN','sequelize'];(function(_0x22bf25,_0xb20d75){var _0x555bef=function(_0x593fbd){while(--_0x593fbd){_0x22bf25['push'](_0x22bf25['shift']());}};_0x555bef(++_0xb20d75);}(_0xc090,0x16f));var _0x0c09=function(_0x52f570,_0x3a686f){_0x52f570=_0x52f570-0x0;var _0x35c7b6=_0xc090[_0x52f570];return _0x35c7b6;};'use strict';var Sequelize=require(_0x0c09('0x0'));module[_0x0c09('0x1')]={'type':{'type':Sequelize['ENUM'](_0x0c09('0x2'),_0x0c09('0x3'),_0x0c09('0x4'),'keyValue',_0x0c09('0x5')),'defaultValue':_0x0c09('0x2')},'content':{'type':Sequelize[_0x0c09('0x6')]},'key':{'type':Sequelize[_0x0c09('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0x0c09('0x2'),_0x0c09('0x3'),_0x0c09('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x0c09('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x0c09('0x6')]}};
\ No newline at end of file
+var _0xf04e=['exports','ENUM','variable','customVariable','string','STRING','BOOLEAN','sequelize'];(function(_0x9cca29,_0x3a39b7){var _0x4819b5=function(_0x4a4563){while(--_0x4a4563){_0x9cca29['push'](_0x9cca29['shift']());}};_0x4819b5(++_0x3a39b7);}(_0xf04e,0x1bf));var _0xef04=function(_0x4b7d73,_0x300a32){_0x4b7d73=_0x4b7d73-0x0;var _0x35fad4=_0xf04e[_0x4b7d73];return _0x35fad4;};'use strict';var Sequelize=require(_0xef04('0x0'));module[_0xef04('0x1')]={'type':{'type':Sequelize[_0xef04('0x2')]('string',_0xef04('0x3'),_0xef04('0x4'),'keyValue','picklist'),'defaultValue':_0xef04('0x5')},'content':{'type':Sequelize[_0xef04('0x6')]},'key':{'type':Sequelize[_0xef04('0x6')]},'keyType':{'type':Sequelize['ENUM']('string','variable',_0xef04('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xef04('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xef04('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6d8=['params','find','create','body','update','eml-format','zip-dir','request-promise','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','apply','reject','destroy','error','stack','name','index','map','FreshdeskField','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','type','options','then','includeAll','include','findAll','catch','show'];(function(_0x5220b5,_0x259336){var _0x40ebba=function(_0x4a54fc){while(--_0x4a54fc){_0x5220b5['push'](_0x5220b5['shift']());}};_0x40ebba(++_0x259336);}(_0xc6d8,0xd7));var _0x8c6d=function(_0x591053,_0x523072){_0x591053=_0x591053-0x0;var _0x31ab80=_0xc6d8[_0x591053];return _0x31ab80;};'use strict';var emlformat=require(_0x8c6d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8c6d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x8c6d('0x2'));var moment=require('moment');var BPromise=require(_0x8c6d('0x3'));var Mustache=require('mustache');var util=require('util');var path=require(_0x8c6d('0x4'));var sox=require(_0x8c6d('0x5'));var csv=require(_0x8c6d('0x6'));var ejs=require(_0x8c6d('0x7'));var fs=require('fs');var fs_extra=require(_0x8c6d('0x8'));var _=require(_0x8c6d('0x9'));var squel=require(_0x8c6d('0xa'));var crypto=require('crypto');var jsforce=require(_0x8c6d('0xb'));var deskjs=require(_0x8c6d('0xc'));var toCsv=require(_0x8c6d('0x6'));var querystring=require('querystring');var Papa=require(_0x8c6d('0xd'));var Redis=require(_0x8c6d('0xe'));var authService=require(_0x8c6d('0xf'));var qs=require(_0x8c6d('0x10'));var as=require(_0x8c6d('0x11'));var hardwareService=require(_0x8c6d('0x12'));var logger=require(_0x8c6d('0x13'))(_0x8c6d('0x14'));var utils=require('../../config/utils');var config=require(_0x8c6d('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x22d0fb,_0x890e85){_0x890e85=_0x890e85||0xcc;return function(_0x131d97){if(_0x131d97){return _0x22d0fb[_0x8c6d('0x16')](_0x890e85);}return _0x22d0fb[_0x8c6d('0x17')](_0x890e85)[_0x8c6d('0x18')]();};}function respondWithResult(_0x42d746,_0x103699){_0x103699=_0x103699||0xc8;return function(_0x14c1ee){if(_0x14c1ee){return _0x42d746[_0x8c6d('0x17')](_0x103699)['json'](_0x14c1ee);}};}function respondWithFilteredResult(_0x16c6b5,_0x4b2bb1){return function(_0x16af06){if(_0x16af06){var _0x4dd4b6=typeof _0x4b2bb1[_0x8c6d('0x19')]===_0x8c6d('0x1a')&&typeof _0x4b2bb1['limit']===_0x8c6d('0x1a');var _0x2b8a26=_0x16af06['count'];var _0x3e5495=_0x4dd4b6?0x0:_0x4b2bb1['offset'];var _0x4c2f8d=_0x4dd4b6?_0x16af06[_0x8c6d('0x1b')]:_0x4b2bb1['offset']+_0x4b2bb1[_0x8c6d('0x1c')];var _0x174a4f;if(_0x4c2f8d>=_0x2b8a26){_0x4c2f8d=_0x2b8a26;_0x174a4f=0xc8;}else{_0x174a4f=0xce;}_0x16c6b5[_0x8c6d('0x17')](_0x174a4f);return _0x16c6b5[_0x8c6d('0x1d')](_0x8c6d('0x1e'),_0x3e5495+'-'+_0x4c2f8d+'/'+_0x2b8a26)['json'](_0x16af06);}return null;};}function patchUpdates(_0x5512be){return function(_0x550079){try{jsonpatch[_0x8c6d('0x1f')](_0x550079,_0x5512be,!![]);}catch(_0x507e0c){return BPromise[_0x8c6d('0x20')](_0x507e0c);}return _0x550079['save']();};}function saveUpdates(_0x4c378b,_0x37fd7c){return function(_0x8cebeb){if(_0x8cebeb){return _0x8cebeb['update'](_0x4c378b)['then'](function(_0x51bb08){return _0x51bb08;});}return null;};}function removeEntity(_0x47d3a0,_0x2a85b5){return function(_0xd16c91){if(_0xd16c91){return _0xd16c91[_0x8c6d('0x21')]()['then'](function(){_0x47d3a0[_0x8c6d('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x15a9c4,_0x490b46){return function(_0x23c893){if(!_0x23c893){_0x15a9c4[_0x8c6d('0x16')](0x194);}return _0x23c893;};}function handleError(_0x353ba5,_0x2b6d18){_0x2b6d18=_0x2b6d18||0x1f4;return function(_0x1e6755){logger[_0x8c6d('0x22')](_0x1e6755[_0x8c6d('0x23')]);if(_0x1e6755[_0x8c6d('0x24')]){delete _0x1e6755[_0x8c6d('0x24')];}_0x353ba5['status'](_0x2b6d18)['send'](_0x1e6755);};}exports[_0x8c6d('0x25')]=function(_0x93a094,_0xfc6000){var _0x42a7db={},_0x370626={},_0x316ca7={'count':0x0,'rows':[]};var _0x2bc94a=_[_0x8c6d('0x26')](db[_0x8c6d('0x27')][_0x8c6d('0x28')],function(_0x3375dd){return{'name':_0x3375dd[_0x8c6d('0x29')],'type':_0x3375dd['type'][_0x8c6d('0x2a')]};});_0x370626[_0x8c6d('0x2b')]=_[_0x8c6d('0x26')](_0x2bc94a,_0x8c6d('0x24'));_0x370626[_0x8c6d('0x2c')]=_[_0x8c6d('0x2d')](_0x93a094[_0x8c6d('0x2c')]);_0x370626[_0x8c6d('0x2e')]=_[_0x8c6d('0x2f')](_0x370626['model'],_0x370626[_0x8c6d('0x2c')]);_0x42a7db['attributes']=_[_0x8c6d('0x2f')](_0x370626[_0x8c6d('0x2b')],qs[_0x8c6d('0x30')](_0x93a094[_0x8c6d('0x2c')][_0x8c6d('0x30')]));_0x42a7db[_0x8c6d('0x31')]=_0x42a7db['attributes']['length']?_0x42a7db[_0x8c6d('0x31')]:_0x370626[_0x8c6d('0x2b')];if(!_0x93a094[_0x8c6d('0x2c')][_0x8c6d('0x32')]('nolimit')){_0x42a7db[_0x8c6d('0x1c')]=qs[_0x8c6d('0x1c')](_0x93a094[_0x8c6d('0x2c')][_0x8c6d('0x1c')]);_0x42a7db[_0x8c6d('0x19')]=qs[_0x8c6d('0x19')](_0x93a094['query'][_0x8c6d('0x19')]);}_0x42a7db[_0x8c6d('0x33')]=qs[_0x8c6d('0x34')](_0x93a094[_0x8c6d('0x2c')][_0x8c6d('0x34')]);_0x42a7db[_0x8c6d('0x35')]=qs[_0x8c6d('0x2e')](_[_0x8c6d('0x36')](_0x93a094[_0x8c6d('0x2c')],_0x370626[_0x8c6d('0x2e')]),_0x2bc94a);if(_0x93a094[_0x8c6d('0x2c')][_0x8c6d('0x37')]){_0x42a7db['where']=_[_0x8c6d('0x38')](_0x42a7db[_0x8c6d('0x35')],{'$or':_[_0x8c6d('0x26')](_0x2bc94a,function(_0x454e96){if(_0x454e96[_0x8c6d('0x39')]!=='VIRTUAL'){var _0x26027f={};_0x26027f[_0x454e96[_0x8c6d('0x24')]]={'$like':'%'+_0x93a094['query'][_0x8c6d('0x37')]+'%'};return _0x26027f;}})});}_0x42a7db=_[_0x8c6d('0x38')]({},_0x42a7db,_0x93a094[_0x8c6d('0x3a')]);var _0x4869dc={'where':_0x42a7db[_0x8c6d('0x35')]};return db[_0x8c6d('0x27')][_0x8c6d('0x1b')](_0x4869dc)[_0x8c6d('0x3b')](function(_0x2f54a2){_0x316ca7[_0x8c6d('0x1b')]=_0x2f54a2;if(_0x93a094[_0x8c6d('0x2c')][_0x8c6d('0x3c')]){_0x42a7db[_0x8c6d('0x3d')]=[{'all':!![]}];}return db[_0x8c6d('0x27')][_0x8c6d('0x3e')](_0x42a7db);})['then'](function(_0x58af06){_0x316ca7['rows']=_0x58af06;return _0x316ca7;})[_0x8c6d('0x3b')](respondWithFilteredResult(_0xfc6000,_0x42a7db))[_0x8c6d('0x3f')](handleError(_0xfc6000,null));};exports[_0x8c6d('0x40')]=function(_0x3d69c3,_0x3409eb){var _0x546f04={'raw':!![],'where':{'id':_0x3d69c3[_0x8c6d('0x41')]['id']}},_0x274d01={};_0x274d01[_0x8c6d('0x2b')]=_['keys'](db[_0x8c6d('0x27')][_0x8c6d('0x28')]);_0x274d01['query']=_['keys'](_0x3d69c3['query']);_0x274d01['filters']=_['intersection'](_0x274d01[_0x8c6d('0x2b')],_0x274d01[_0x8c6d('0x2c')]);_0x546f04[_0x8c6d('0x31')]=_[_0x8c6d('0x2f')](_0x274d01[_0x8c6d('0x2b')],qs['fields'](_0x3d69c3['query']['fields']));_0x546f04['attributes']=_0x546f04[_0x8c6d('0x31')]['length']?_0x546f04[_0x8c6d('0x31')]:_0x274d01[_0x8c6d('0x2b')];if(_0x3d69c3[_0x8c6d('0x2c')][_0x8c6d('0x3c')]){_0x546f04[_0x8c6d('0x3d')]=[{'all':!![]}];}_0x546f04=_[_0x8c6d('0x38')]({},_0x546f04,_0x3d69c3['options']);return db[_0x8c6d('0x27')][_0x8c6d('0x42')](_0x546f04)['then'](handleEntityNotFound(_0x3409eb,null))[_0x8c6d('0x3b')](respondWithResult(_0x3409eb,null))[_0x8c6d('0x3f')](handleError(_0x3409eb,null));};exports['create']=function(_0x2fd4ea,_0xb6e94){return db[_0x8c6d('0x27')][_0x8c6d('0x43')](_0x2fd4ea[_0x8c6d('0x44')],{})[_0x8c6d('0x3b')](respondWithResult(_0xb6e94,0xc9))[_0x8c6d('0x3f')](handleError(_0xb6e94,null));};exports[_0x8c6d('0x45')]=function(_0x1f1609,_0x1d6c29){if(_0x1f1609[_0x8c6d('0x44')]['id']){delete _0x1f1609[_0x8c6d('0x44')]['id'];}return db[_0x8c6d('0x27')][_0x8c6d('0x42')]({'where':{'id':_0x1f1609[_0x8c6d('0x41')]['id']}})[_0x8c6d('0x3b')](handleEntityNotFound(_0x1d6c29,null))['then'](saveUpdates(_0x1f1609['body'],null))['then'](respondWithResult(_0x1d6c29,null))[_0x8c6d('0x3f')](handleError(_0x1d6c29,null));};exports[_0x8c6d('0x21')]=function(_0x4919b8,_0x574b08){return db['FreshdeskField'][_0x8c6d('0x42')]({'where':{'id':_0x4919b8['params']['id']}})[_0x8c6d('0x3b')](handleEntityNotFound(_0x574b08,null))[_0x8c6d('0x3b')](removeEntity(_0x574b08,null))[_0x8c6d('0x3f')](handleError(_0x574b08,null));};
\ No newline at end of file
+var _0x4522=['querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','error','stack','name','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','filter','where','type','merge','options','FreshdeskField','includeAll','include','findAll','rows','show','params','length','find','create','body','catch','destroy','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js'];(function(_0x47de3c,_0x58d9c7){var _0x3fbb51=function(_0x5ea074){while(--_0x5ea074){_0x47de3c['push'](_0x47de3c['shift']());}};_0x3fbb51(++_0x58d9c7);}(_0x4522,0x1a0));var _0x2452=function(_0x37036c,_0x5e9c10){_0x37036c=_0x37036c-0x0;var _0x3402c1=_0x4522[_0x37036c];return _0x3402c1;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2452('0x0'));var jsonpatch=require(_0x2452('0x1'));var rp=require(_0x2452('0x2'));var moment=require('moment');var BPromise=require(_0x2452('0x3'));var Mustache=require(_0x2452('0x4'));var util=require(_0x2452('0x5'));var path=require(_0x2452('0x6'));var sox=require(_0x2452('0x7'));var csv=require(_0x2452('0x8'));var ejs=require(_0x2452('0x9'));var fs=require('fs');var fs_extra=require(_0x2452('0xa'));var _=require(_0x2452('0xb'));var squel=require(_0x2452('0xc'));var crypto=require(_0x2452('0xd'));var jsforce=require(_0x2452('0xe'));var deskjs=require(_0x2452('0xf'));var toCsv=require(_0x2452('0x8'));var querystring=require(_0x2452('0x10'));var Papa=require(_0x2452('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x2452('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x2452('0x13'))(_0x2452('0x14'));var utils=require(_0x2452('0x15'));var config=require(_0x2452('0x16'));var licenseUtil=require(_0x2452('0x17'));var db=require(_0x2452('0x18'))['db'];function respondWithStatusCode(_0x2c1e0f,_0x2377b9){_0x2377b9=_0x2377b9||0xcc;return function(_0x4968e8){if(_0x4968e8){return _0x2c1e0f['sendStatus'](_0x2377b9);}return _0x2c1e0f['status'](_0x2377b9)[_0x2452('0x19')]();};}function respondWithResult(_0x4fafa0,_0x33e592){_0x33e592=_0x33e592||0xc8;return function(_0x506cd4){if(_0x506cd4){return _0x4fafa0[_0x2452('0x1a')](_0x33e592)[_0x2452('0x1b')](_0x506cd4);}};}function respondWithFilteredResult(_0x5d0438,_0x1dbadf){return function(_0x47930c){if(_0x47930c){var _0x3dd8cc=typeof _0x1dbadf[_0x2452('0x1c')]===_0x2452('0x1d')&&typeof _0x1dbadf[_0x2452('0x1e')]==='undefined';var _0x2108e4=_0x47930c[_0x2452('0x1f')];var _0x59d89a=_0x3dd8cc?0x0:_0x1dbadf['offset'];var _0x1bfb44=_0x3dd8cc?_0x47930c[_0x2452('0x1f')]:_0x1dbadf[_0x2452('0x1c')]+_0x1dbadf['limit'];var _0x914d2b;if(_0x1bfb44>=_0x2108e4){_0x1bfb44=_0x2108e4;_0x914d2b=0xc8;}else{_0x914d2b=0xce;}_0x5d0438[_0x2452('0x1a')](_0x914d2b);return _0x5d0438[_0x2452('0x20')](_0x2452('0x21'),_0x59d89a+'-'+_0x1bfb44+'/'+_0x2108e4)[_0x2452('0x1b')](_0x47930c);}return null;};}function patchUpdates(_0x1c70cb){return function(_0x3f48c2){try{jsonpatch[_0x2452('0x22')](_0x3f48c2,_0x1c70cb,!![]);}catch(_0x5e921d){return BPromise['reject'](_0x5e921d);}return _0x3f48c2[_0x2452('0x23')]();};}function saveUpdates(_0x32dfe7,_0x4bb3ff){return function(_0x17d0a0){if(_0x17d0a0){return _0x17d0a0[_0x2452('0x24')](_0x32dfe7)[_0x2452('0x25')](function(_0x617ba7){return _0x617ba7;});}return null;};}function removeEntity(_0x285281,_0x397f21){return function(_0x155caa){if(_0x155caa){return _0x155caa['destroy']()[_0x2452('0x25')](function(){_0x285281[_0x2452('0x1a')](0xcc)[_0x2452('0x19')]();});}};}function handleEntityNotFound(_0x231410,_0x3a4326){return function(_0x516fcf){if(!_0x516fcf){_0x231410['sendStatus'](0x194);}return _0x516fcf;};}function handleError(_0x295be0,_0x159ba1){_0x159ba1=_0x159ba1||0x1f4;return function(_0x46fcbb){logger[_0x2452('0x26')](_0x46fcbb[_0x2452('0x27')]);if(_0x46fcbb['name']){delete _0x46fcbb[_0x2452('0x28')];}_0x295be0[_0x2452('0x1a')](_0x159ba1)['send'](_0x46fcbb);};}exports['index']=function(_0x332878,_0xe8d39b){var _0x36cb6c={},_0x28e6ea={},_0x43fde0={'count':0x0,'rows':[]};var _0x258fa6=_['map'](db['FreshdeskField'][_0x2452('0x29')],function(_0x454e0a){return{'name':_0x454e0a[_0x2452('0x2a')],'type':_0x454e0a['type'][_0x2452('0x2b')]};});_0x28e6ea[_0x2452('0x2c')]=_['map'](_0x258fa6,_0x2452('0x28'));_0x28e6ea[_0x2452('0x2d')]=_[_0x2452('0x2e')](_0x332878[_0x2452('0x2d')]);_0x28e6ea[_0x2452('0x2f')]=_[_0x2452('0x30')](_0x28e6ea[_0x2452('0x2c')],_0x28e6ea[_0x2452('0x2d')]);_0x36cb6c[_0x2452('0x31')]=_[_0x2452('0x30')](_0x28e6ea[_0x2452('0x2c')],qs[_0x2452('0x32')](_0x332878[_0x2452('0x2d')]['fields']));_0x36cb6c[_0x2452('0x31')]=_0x36cb6c[_0x2452('0x31')]['length']?_0x36cb6c[_0x2452('0x31')]:_0x28e6ea['model'];if(!_0x332878[_0x2452('0x2d')][_0x2452('0x33')]('nolimit')){_0x36cb6c[_0x2452('0x1e')]=qs[_0x2452('0x1e')](_0x332878[_0x2452('0x2d')]['limit']);_0x36cb6c[_0x2452('0x1c')]=qs[_0x2452('0x1c')](_0x332878['query'][_0x2452('0x1c')]);}_0x36cb6c[_0x2452('0x34')]=qs[_0x2452('0x35')](_0x332878[_0x2452('0x2d')][_0x2452('0x35')]);_0x36cb6c['where']=qs['filters'](_['pick'](_0x332878[_0x2452('0x2d')],_0x28e6ea[_0x2452('0x2f')]),_0x258fa6);if(_0x332878[_0x2452('0x2d')][_0x2452('0x36')]){_0x36cb6c[_0x2452('0x37')]=_['merge'](_0x36cb6c[_0x2452('0x37')],{'$or':_['map'](_0x258fa6,function(_0x5be9b4){if(_0x5be9b4[_0x2452('0x38')]!=='VIRTUAL'){var _0x44ef50={};_0x44ef50[_0x5be9b4[_0x2452('0x28')]]={'$like':'%'+_0x332878['query'][_0x2452('0x36')]+'%'};return _0x44ef50;}})});}_0x36cb6c=_[_0x2452('0x39')]({},_0x36cb6c,_0x332878[_0x2452('0x3a')]);var _0x34d7f9={'where':_0x36cb6c[_0x2452('0x37')]};return db[_0x2452('0x3b')][_0x2452('0x1f')](_0x34d7f9)[_0x2452('0x25')](function(_0x5b864e){_0x43fde0[_0x2452('0x1f')]=_0x5b864e;if(_0x332878['query'][_0x2452('0x3c')]){_0x36cb6c[_0x2452('0x3d')]=[{'all':!![]}];}return db['FreshdeskField'][_0x2452('0x3e')](_0x36cb6c);})[_0x2452('0x25')](function(_0xb4e3f5){_0x43fde0[_0x2452('0x3f')]=_0xb4e3f5;return _0x43fde0;})[_0x2452('0x25')](respondWithFilteredResult(_0xe8d39b,_0x36cb6c))['catch'](handleError(_0xe8d39b,null));};exports[_0x2452('0x40')]=function(_0x29910e,_0x5379a9){var _0xfabbd8={'raw':!![],'where':{'id':_0x29910e[_0x2452('0x41')]['id']}},_0x449b89={};_0x449b89[_0x2452('0x2c')]=_['keys'](db[_0x2452('0x3b')][_0x2452('0x29')]);_0x449b89[_0x2452('0x2d')]=_[_0x2452('0x2e')](_0x29910e[_0x2452('0x2d')]);_0x449b89[_0x2452('0x2f')]=_['intersection'](_0x449b89[_0x2452('0x2c')],_0x449b89['query']);_0xfabbd8[_0x2452('0x31')]=_[_0x2452('0x30')](_0x449b89['model'],qs['fields'](_0x29910e['query']['fields']));_0xfabbd8[_0x2452('0x31')]=_0xfabbd8['attributes'][_0x2452('0x42')]?_0xfabbd8['attributes']:_0x449b89[_0x2452('0x2c')];if(_0x29910e[_0x2452('0x2d')]['includeAll']){_0xfabbd8['include']=[{'all':!![]}];}_0xfabbd8=_[_0x2452('0x39')]({},_0xfabbd8,_0x29910e['options']);return db[_0x2452('0x3b')][_0x2452('0x43')](_0xfabbd8)[_0x2452('0x25')](handleEntityNotFound(_0x5379a9,null))[_0x2452('0x25')](respondWithResult(_0x5379a9,null))['catch'](handleError(_0x5379a9,null));};exports['create']=function(_0x3e4a8b,_0x38615e){return db[_0x2452('0x3b')][_0x2452('0x44')](_0x3e4a8b[_0x2452('0x45')],{})['then'](respondWithResult(_0x38615e,0xc9))[_0x2452('0x46')](handleError(_0x38615e,null));};exports['update']=function(_0x3634f7,_0x53fd05){if(_0x3634f7[_0x2452('0x45')]['id']){delete _0x3634f7[_0x2452('0x45')]['id'];}return db['FreshdeskField'][_0x2452('0x43')]({'where':{'id':_0x3634f7['params']['id']}})[_0x2452('0x25')](handleEntityNotFound(_0x53fd05,null))['then'](saveUpdates(_0x3634f7['body'],null))['then'](respondWithResult(_0x53fd05,null))[_0x2452('0x46')](handleError(_0x53fd05,null));};exports[_0x2452('0x47')]=function(_0x36ebcb,_0x4b705f){return db[_0x2452('0x3b')][_0x2452('0x43')]({'where':{'id':_0x36ebcb[_0x2452('0x41')]['id']}})[_0x2452('0x25')](handleEntityNotFound(_0x4b705f,null))[_0x2452('0x25')](removeEntity(_0x4b705f,null))['catch'](handleError(_0x4b705f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30ea=['int_freshdesk_fields','FieldId','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./intFreshdeskField.attributes','exports','define','FreshdeskField'];(function(_0x24dfd2,_0x504fac){var _0x3abda1=function(_0x55bc85){while(--_0x55bc85){_0x24dfd2['push'](_0x24dfd2['shift']());}};_0x3abda1(++_0x504fac);}(_0x30ea,0x13a));var _0xa30e=function(_0x2ca423,_0x252767){_0x2ca423=_0x2ca423-0x0;var _0x3ee0e1=_0x30ea[_0x2ca423];return _0x3ee0e1;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xa30e('0x0'))(_0xa30e('0x1'));var moment=require('moment');var BPromise=require(_0xa30e('0x2'));var rp=require(_0xa30e('0x3'));var fs=require('fs');var path=require(_0xa30e('0x4'));var rimraf=require('rimraf');var config=require(_0xa30e('0x5'));var attributes=require(_0xa30e('0x6'));module[_0xa30e('0x7')]=function(_0x659686,_0x2c3dd1){return _0x659686[_0xa30e('0x8')](_0xa30e('0x9'),attributes,{'tableName':_0xa30e('0xa'),'paranoid':![],'indexes':[{'name':'freshdesk_unique_index','fields':['idField',_0xa30e('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x9e25=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','../../config/environment','./intFreshdeskField.attributes','FreshdeskField','int_freshdesk_fields','idField','FieldId'];(function(_0x20b2bc,_0x5bf994){var _0x1d3584=function(_0x28cca2){while(--_0x28cca2){_0x20b2bc['push'](_0x20b2bc['shift']());}};_0x1d3584(++_0x5bf994);}(_0x9e25,0x82));var _0x59e2=function(_0x1e040e,_0x37b86e){_0x1e040e=_0x1e040e-0x0;var _0x5b9bc3=_0x9e25[_0x1e040e];return _0x5b9bc3;};'use strict';var _=require(_0x59e2('0x0'));var util=require(_0x59e2('0x1'));var logger=require(_0x59e2('0x2'))(_0x59e2('0x3'));var moment=require(_0x59e2('0x4'));var BPromise=require(_0x59e2('0x5'));var rp=require(_0x59e2('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x59e2('0x7'));var attributes=require(_0x59e2('0x8'));module['exports']=function(_0x4acab3,_0x7f1155){return _0x4acab3['define'](_0x59e2('0x9'),attributes,{'tableName':_0x59e2('0xa'),'paranoid':![],'indexes':[{'name':'freshdesk_unique_index','fields':[_0x59e2('0xb'),_0x59e2('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55da=['info','FreshdeskField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x5ab29a,_0x53a9){var _0x5e4f09=function(_0x913e54){while(--_0x913e54){_0x5ab29a['push'](_0x5ab29a['shift']());}};_0x5e4f09(++_0x53a9);}(_0x55da,0x13c));var _0xa55d=function(_0x26cd17,_0x1faa73){_0x26cd17=_0x26cd17-0x0;var _0x3f9e21=_0x55da[_0x26cd17];return _0x3f9e21;};'use strict';var _=require(_0xa55d('0x0'));var util=require(_0xa55d('0x1'));var moment=require(_0xa55d('0x2'));var BPromise=require('bluebird');var rs=require(_0xa55d('0x3'));var fs=require('fs');var Redis=require(_0xa55d('0x4'));var db=require(_0xa55d('0x5'))['db'];var utils=require(_0xa55d('0x6'));var logger=require(_0xa55d('0x7'))('rpc');var config=require(_0xa55d('0x8'));var jayson=require(_0xa55d('0x9'));var client=jayson[_0xa55d('0xa')][_0xa55d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x22f3d2,_0x345ca4,_0x6047bd){return new BPromise(function(_0x2e567e,_0x1f4221){return client[_0xa55d('0xc')](_0x22f3d2,_0x6047bd)[_0xa55d('0xd')](function(_0x2078b2){logger[_0xa55d('0xe')](_0xa55d('0xf'),_0x345ca4,'request\x20sent');logger[_0xa55d('0x10')]('FreshdeskField,\x20%s,\x20%s,\x20%s',_0x345ca4,_0xa55d('0x11'),JSON[_0xa55d('0x12')](_0x2078b2));if(_0x2078b2['error']){if(_0x2078b2['error']['code']===0x1f4){logger['error'](_0xa55d('0xf'),_0x345ca4,_0x2078b2[_0xa55d('0x13')][_0xa55d('0x14')]);return _0x1f4221(_0x2078b2[_0xa55d('0x13')]['message']);}logger[_0xa55d('0x13')](_0xa55d('0xf'),_0x345ca4,_0x2078b2[_0xa55d('0x13')][_0xa55d('0x14')]);return _0x2e567e(_0x2078b2[_0xa55d('0x13')][_0xa55d('0x14')]);}else{logger[_0xa55d('0xe')](_0xa55d('0xf'),_0x345ca4,'request\x20sent');_0x2e567e(_0x2078b2['result'][_0xa55d('0x14')]);}})[_0xa55d('0x15')](function(_0x29f49d){logger[_0xa55d('0x13')](_0xa55d('0xf'),_0x345ca4,_0x29f49d);_0x1f4221(_0x29f49d);});});}
\ No newline at end of file
+var _0x32e3=['info','result','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','request\x20sent','stringify','error','FreshdeskField,\x20%s,\x20%s','message'];(function(_0x184be8,_0x2a62fb){var _0x25671b=function(_0x2a2720){while(--_0x2a2720){_0x184be8['push'](_0x184be8['shift']());}};_0x25671b(++_0x2a62fb);}(_0x32e3,0x16a));var _0x332e=function(_0x2daae2,_0x4af2c7){_0x2daae2=_0x2daae2-0x0;var _0x6382d5=_0x32e3[_0x2daae2];return _0x6382d5;};'use strict';var _=require(_0x332e('0x0'));var util=require('util');var moment=require(_0x332e('0x1'));var BPromise=require(_0x332e('0x2'));var rs=require(_0x332e('0x3'));var fs=require('fs');var Redis=require(_0x332e('0x4'));var db=require(_0x332e('0x5'))['db'];var utils=require(_0x332e('0x6'));var logger=require(_0x332e('0x7'))(_0x332e('0x8'));var config=require('../../config/environment');var jayson=require(_0x332e('0x9'));var client=jayson[_0x332e('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x485df3,_0xd7faa0,_0x1ab097){return new BPromise(function(_0x1b8ed2,_0xa8d3c0){return client[_0x332e('0xb')](_0x485df3,_0x1ab097)[_0x332e('0xc')](function(_0x1a7f0a){logger['info']('FreshdeskField,\x20%s,\x20%s',_0xd7faa0,'request\x20sent');logger['debug']('FreshdeskField,\x20%s,\x20%s,\x20%s',_0xd7faa0,_0x332e('0xd'),JSON[_0x332e('0xe')](_0x1a7f0a));if(_0x1a7f0a[_0x332e('0xf')]){if(_0x1a7f0a[_0x332e('0xf')]['code']===0x1f4){logger[_0x332e('0xf')](_0x332e('0x10'),_0xd7faa0,_0x1a7f0a[_0x332e('0xf')][_0x332e('0x11')]);return _0xa8d3c0(_0x1a7f0a['error'][_0x332e('0x11')]);}logger[_0x332e('0xf')](_0x332e('0x10'),_0xd7faa0,_0x1a7f0a[_0x332e('0xf')][_0x332e('0x11')]);return _0x1b8ed2(_0x1a7f0a['error'][_0x332e('0x11')]);}else{logger[_0x332e('0x12')](_0x332e('0x10'),_0xd7faa0,_0x332e('0xd'));_0x1b8ed2(_0x1a7f0a[_0x332e('0x13')]['message']);}})['catch'](function(_0x5c4470){logger[_0x332e('0xf')](_0x332e('0x10'),_0xd7faa0,_0x5c4470);_0xa8d3c0(_0x5c4470);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa902=['../../config/environment','./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','/:id','update','delete','multer','util','path','connect-timeout','express','fs-extra'];(function(_0x17158c,_0x58cb92){var _0x734f31=function(_0x2a7a84){while(--_0x2a7a84){_0x17158c['push'](_0x17158c['shift']());}};_0x734f31(++_0x58cb92);}(_0xa902,0x8d));var _0x2a90=function(_0x5c0c65,_0xb46b2d){_0x5c0c65=_0x5c0c65-0x0;var _0x37ff5c=_0xa902[_0x5c0c65];return _0x37ff5c;};'use strict';var multer=require(_0x2a90('0x0'));var util=require(_0x2a90('0x1'));var path=require(_0x2a90('0x2'));var timeout=require(_0x2a90('0x3'));var express=require(_0x2a90('0x4'));var router=express['Router']();var fs_extra=require(_0x2a90('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x2a90('0x6'));var controller=require(_0x2a90('0x7'));router[_0x2a90('0x8')]('/',auth[_0x2a90('0x9')](),controller[_0x2a90('0xa')]);router[_0x2a90('0x8')]('/:id',auth[_0x2a90('0x9')](),controller['show']);router['get'](_0x2a90('0xb'),auth[_0x2a90('0x9')](),controller[_0x2a90('0xc')]);router[_0x2a90('0x8')](_0x2a90('0xd'),auth['isAuthenticated'](),controller[_0x2a90('0xe')]);router[_0x2a90('0xf')]('/',auth[_0x2a90('0x9')](),controller[_0x2a90('0x10')]);router['post'](_0x2a90('0xb'),auth['isAuthenticated'](),controller[_0x2a90('0x11')]);router['put'](_0x2a90('0x12'),auth['isAuthenticated'](),controller[_0x2a90('0x13')]);router[_0x2a90('0x14')](_0x2a90('0x12'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x1c7c=['./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x150792,_0x187824){var _0x5f2974=function(_0x2791d5){while(--_0x2791d5){_0x150792['push'](_0x150792['shift']());}};_0x5f2974(++_0x187824);}(_0x1c7c,0x164));var _0xc1c7=function(_0x5ce5e1,_0x4487e6){_0x5ce5e1=_0x5ce5e1-0x0;var _0x33929d=_0x1c7c[_0x5ce5e1];return _0x33929d;};'use strict';var multer=require(_0xc1c7('0x0'));var util=require(_0xc1c7('0x1'));var path=require(_0xc1c7('0x2'));var timeout=require(_0xc1c7('0x3'));var express=require('express');var router=express[_0xc1c7('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xc1c7('0x5'));var interaction=require(_0xc1c7('0x6'));var config=require(_0xc1c7('0x7'));var controller=require(_0xc1c7('0x8'));router[_0xc1c7('0x9')]('/',auth[_0xc1c7('0xa')](),controller[_0xc1c7('0xb')]);router[_0xc1c7('0x9')](_0xc1c7('0xc'),auth[_0xc1c7('0xa')](),controller[_0xc1c7('0xd')]);router[_0xc1c7('0x9')](_0xc1c7('0xe'),auth[_0xc1c7('0xa')](),controller[_0xc1c7('0xf')]);router[_0xc1c7('0x9')](_0xc1c7('0x10'),auth['isAuthenticated'](),controller[_0xc1c7('0x11')]);router[_0xc1c7('0x12')]('/',auth['isAuthenticated'](),controller[_0xc1c7('0x13')]);router[_0xc1c7('0x12')](_0xc1c7('0xe'),auth['isAuthenticated'](),controller[_0xc1c7('0x14')]);router[_0xc1c7('0x15')](_0xc1c7('0xc'),auth[_0xc1c7('0xa')](),controller[_0xc1c7('0x16')]);router[_0xc1c7('0x17')](_0xc1c7('0xc'),auth[_0xc1c7('0xa')](),controller[_0xc1c7('0x18')]);module[_0xc1c7('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1399=['exports','STRING','username','remoteUri','sequelize'];(function(_0x254b22,_0x27159f){var _0x1279db=function(_0x3ca06f){while(--_0x3ca06f){_0x254b22['push'](_0x254b22['shift']());}};_0x1279db(++_0x27159f);}(_0x1399,0x16c));var _0x9139=function(_0xd6ca7,_0xf8aca2){_0xd6ca7=_0xd6ca7-0x0;var _0x5f269f=_0x1399[_0xd6ca7];return _0x5f269f;};'use strict';var Sequelize=require(_0x9139('0x0'));module[_0x9139('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x9139('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x9139('0x3')},'apiKey':{'type':Sequelize[_0x9139('0x2')]},'remoteUri':{'type':Sequelize[_0x9139('0x2')],'unique':_0x9139('0x4')},'serverUrl':{'type':Sequelize[_0x9139('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x0b0e=['STRING','username','remoteUri','sequelize'];(function(_0x41e7d4,_0x4ea0dc){var _0x4f2771=function(_0x12b189){while(--_0x12b189){_0x41e7d4['push'](_0x41e7d4['shift']());}};_0x4f2771(++_0x4ea0dc);}(_0x0b0e,0x187));var _0xe0b0=function(_0x11d684,_0x4d4123){_0x11d684=_0x11d684-0x0;var _0x78a301=_0x0b0e[_0x11d684];return _0x78a301;};'use strict';var Sequelize=require(_0xe0b0('0x0'));module['exports']={'name':{'type':Sequelize[_0xe0b0('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0xe0b0('0x1')],'unique':_0xe0b0('0x2')},'apiKey':{'type':Sequelize[_0xe0b0('0x1')]},'remoteUri':{'type':Sequelize[_0xe0b0('0x1')],'unique':_0xe0b0('0x3')},'serverUrl':{'type':Sequelize[_0xe0b0('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6d2=['attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','keys','find','create','body','params','getConfigurations','findOne','FreshsalesConfiguration','length','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','getFields','apiKey','username','remoteUri','lastIndexOf','GET','format','%s%s','Token\x20token=','email','Requested\x20Resource\x20not\x20Found','test','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','filters','intersection','query','fields'];(function(_0x185763,_0x3b5cb3){var _0x5572e3=function(_0x1585a1){while(--_0x1585a1){_0x185763['push'](_0x185763['shift']());}};_0x5572e3(++_0x3b5cb3);}(_0xf6d2,0x94));var _0x2f6d=function(_0x44a086,_0x30bdcd){_0x44a086=_0x44a086-0x0;var _0x24e1ab=_0xf6d2[_0x44a086];return _0x24e1ab;};'use strict';var emlformat=require(_0x2f6d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2f6d('0x1'));var rp=require(_0x2f6d('0x2'));var moment=require(_0x2f6d('0x3'));var BPromise=require(_0x2f6d('0x4'));var Mustache=require(_0x2f6d('0x5'));var util=require(_0x2f6d('0x6'));var path=require(_0x2f6d('0x7'));var sox=require(_0x2f6d('0x8'));var csv=require(_0x2f6d('0x9'));var ejs=require(_0x2f6d('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2f6d('0xb'));var squel=require(_0x2f6d('0xc'));var crypto=require(_0x2f6d('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x2f6d('0x9'));var querystring=require(_0x2f6d('0xe'));var Papa=require(_0x2f6d('0xf'));var Redis=require(_0x2f6d('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2f6d('0x11'));var logger=require('../../config/logger')(_0x2f6d('0x12'));var utils=require(_0x2f6d('0x13'));var config=require(_0x2f6d('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x2f6d('0x15'))['db'];var integrations=require(_0x2f6d('0x16'));function respondWithStatusCode(_0x12eefd,_0x120d3b){_0x120d3b=_0x120d3b||0xcc;return function(_0x4b981d){if(_0x4b981d){return _0x12eefd[_0x2f6d('0x17')](_0x120d3b);}return _0x12eefd[_0x2f6d('0x18')](_0x120d3b)[_0x2f6d('0x19')]();};}function respondWithResult(_0x354d0f,_0x420d35){_0x420d35=_0x420d35||0xc8;return function(_0xc88fa9){if(_0xc88fa9){return _0x354d0f['status'](_0x420d35)[_0x2f6d('0x1a')](_0xc88fa9);}};}function respondWithFilteredResult(_0x272ab3,_0x290c04){return function(_0x21034f){if(_0x21034f){var _0xb67dc9=typeof _0x290c04[_0x2f6d('0x1b')]===_0x2f6d('0x1c')&&typeof _0x290c04['limit']==='undefined';var _0x1af309=_0x21034f[_0x2f6d('0x1d')];var _0x263efd=_0xb67dc9?0x0:_0x290c04['offset'];var _0x3787c5=_0xb67dc9?_0x21034f[_0x2f6d('0x1d')]:_0x290c04[_0x2f6d('0x1b')]+_0x290c04[_0x2f6d('0x1e')];var _0x11bd92;if(_0x3787c5>=_0x1af309){_0x3787c5=_0x1af309;_0x11bd92=0xc8;}else{_0x11bd92=0xce;}_0x272ab3['status'](_0x11bd92);return _0x272ab3[_0x2f6d('0x1f')](_0x2f6d('0x20'),_0x263efd+'-'+_0x3787c5+'/'+_0x1af309)['json'](_0x21034f);}return null;};}function patchUpdates(_0x12afc1){return function(_0x40761d){try{jsonpatch[_0x2f6d('0x21')](_0x40761d,_0x12afc1,!![]);}catch(_0x3dc3ea){return BPromise[_0x2f6d('0x22')](_0x3dc3ea);}return _0x40761d['save']();};}function saveUpdates(_0xb3849a,_0x288d18){return function(_0x507cf6){if(_0x507cf6){return _0x507cf6[_0x2f6d('0x23')](_0xb3849a)[_0x2f6d('0x24')](function(_0x5139d7){return _0x5139d7;});}return null;};}function removeEntity(_0x2e21b8,_0x4d681e){return function(_0x4f6d80){if(_0x4f6d80){return _0x4f6d80[_0x2f6d('0x25')]()[_0x2f6d('0x24')](function(){_0x2e21b8[_0x2f6d('0x18')](0xcc)[_0x2f6d('0x19')]();});}};}function handleEntityNotFound(_0xec682b,_0x25ef25){return function(_0x1a11eb){if(!_0x1a11eb){_0xec682b[_0x2f6d('0x17')](0x194);}return _0x1a11eb;};}function handleError(_0x5ecb31,_0x3143d2){_0x3143d2=_0x3143d2||0x1f4;return function(_0x35fc90){logger[_0x2f6d('0x26')](_0x35fc90[_0x2f6d('0x27')]);if(_0x35fc90[_0x2f6d('0x28')]){delete _0x35fc90[_0x2f6d('0x28')];}_0x5ecb31[_0x2f6d('0x18')](_0x3143d2)[_0x2f6d('0x29')](_0x35fc90);};}exports[_0x2f6d('0x2a')]=function(_0x2483ef,_0x18f914){var _0x44e6c4={},_0x1b9ac0={},_0x260259={'count':0x0,'rows':[]};var _0x1a9a47=_[_0x2f6d('0x2b')](db[_0x2f6d('0x2c')][_0x2f6d('0x2d')],function(_0x493079){return{'name':_0x493079[_0x2f6d('0x2e')],'type':_0x493079[_0x2f6d('0x2f')][_0x2f6d('0x30')]};});_0x1b9ac0[_0x2f6d('0x31')]=_[_0x2f6d('0x2b')](_0x1a9a47,_0x2f6d('0x28'));_0x1b9ac0['query']=_['keys'](_0x2483ef['query']);_0x1b9ac0[_0x2f6d('0x32')]=_[_0x2f6d('0x33')](_0x1b9ac0['model'],_0x1b9ac0[_0x2f6d('0x34')]);_0x44e6c4['attributes']=_['intersection'](_0x1b9ac0['model'],qs['fields'](_0x2483ef['query'][_0x2f6d('0x35')]));_0x44e6c4[_0x2f6d('0x36')]=_0x44e6c4[_0x2f6d('0x36')]['length']?_0x44e6c4[_0x2f6d('0x36')]:_0x1b9ac0['model'];if(!_0x2483ef[_0x2f6d('0x34')][_0x2f6d('0x37')](_0x2f6d('0x38'))){_0x44e6c4[_0x2f6d('0x1e')]=qs[_0x2f6d('0x1e')](_0x2483ef['query']['limit']);_0x44e6c4[_0x2f6d('0x1b')]=qs[_0x2f6d('0x1b')](_0x2483ef[_0x2f6d('0x34')][_0x2f6d('0x1b')]);}_0x44e6c4['order']=qs[_0x2f6d('0x39')](_0x2483ef[_0x2f6d('0x34')][_0x2f6d('0x39')]);_0x44e6c4[_0x2f6d('0x3a')]=qs['filters'](_[_0x2f6d('0x3b')](_0x2483ef[_0x2f6d('0x34')],_0x1b9ac0[_0x2f6d('0x32')]),_0x1a9a47);if(_0x2483ef[_0x2f6d('0x34')][_0x2f6d('0x3c')]){_0x44e6c4[_0x2f6d('0x3a')]=_[_0x2f6d('0x3d')](_0x44e6c4[_0x2f6d('0x3a')],{'$or':_[_0x2f6d('0x2b')](_0x1a9a47,function(_0x594170){if(_0x594170[_0x2f6d('0x2f')]!==_0x2f6d('0x3e')){var _0x4b8943={};_0x4b8943[_0x594170['name']]={'$like':'%'+_0x2483ef[_0x2f6d('0x34')][_0x2f6d('0x3c')]+'%'};return _0x4b8943;}})});}_0x44e6c4=_[_0x2f6d('0x3d')]({},_0x44e6c4,_0x2483ef[_0x2f6d('0x3f')]);var _0x4dd838={'where':_0x44e6c4[_0x2f6d('0x3a')]};return db['FreshsalesAccount'][_0x2f6d('0x1d')](_0x4dd838)['then'](function(_0x3b9e98){_0x260259['count']=_0x3b9e98;if(_0x2483ef[_0x2f6d('0x34')][_0x2f6d('0x40')]){_0x44e6c4['include']=[{'all':!![]}];}return db[_0x2f6d('0x2c')][_0x2f6d('0x41')](_0x44e6c4);})['then'](function(_0x16baee){_0x260259[_0x2f6d('0x42')]=_0x16baee;return _0x260259;})['then'](respondWithFilteredResult(_0x18f914,_0x44e6c4))[_0x2f6d('0x43')](handleError(_0x18f914,null));};exports[_0x2f6d('0x44')]=function(_0x1a824b,_0x1c4e02){var _0x24d61f={'raw':![],'where':{'id':_0x1a824b['params']['id']}},_0x279680={};_0x279680[_0x2f6d('0x31')]=_[_0x2f6d('0x45')](db[_0x2f6d('0x2c')][_0x2f6d('0x2d')]);_0x279680['query']=_[_0x2f6d('0x45')](_0x1a824b['query']);_0x279680[_0x2f6d('0x32')]=_[_0x2f6d('0x33')](_0x279680['model'],_0x279680[_0x2f6d('0x34')]);_0x24d61f[_0x2f6d('0x36')]=_[_0x2f6d('0x33')](_0x279680[_0x2f6d('0x31')],qs['fields'](_0x1a824b[_0x2f6d('0x34')]['fields']));_0x24d61f[_0x2f6d('0x36')]=_0x24d61f[_0x2f6d('0x36')]['length']?_0x24d61f[_0x2f6d('0x36')]:_0x279680[_0x2f6d('0x31')];if(_0x1a824b[_0x2f6d('0x34')][_0x2f6d('0x40')]){_0x24d61f['include']=[{'all':!![]}];}_0x24d61f=_[_0x2f6d('0x3d')]({},_0x24d61f,_0x1a824b[_0x2f6d('0x3f')]);return db[_0x2f6d('0x2c')][_0x2f6d('0x46')](_0x24d61f)['then'](handleEntityNotFound(_0x1c4e02,null))[_0x2f6d('0x24')](respondWithResult(_0x1c4e02,null))['catch'](handleError(_0x1c4e02,null));};exports['create']=function(_0x272aaa,_0x2702a2){return db['FreshsalesAccount'][_0x2f6d('0x47')](_0x272aaa[_0x2f6d('0x48')],{})[_0x2f6d('0x24')](respondWithResult(_0x2702a2,0xc9))[_0x2f6d('0x43')](handleError(_0x2702a2,null));};exports[_0x2f6d('0x23')]=function(_0x477f11,_0xb11db4){if(_0x477f11[_0x2f6d('0x48')]['id']){delete _0x477f11[_0x2f6d('0x48')]['id'];}return db[_0x2f6d('0x2c')]['find']({'where':{'id':_0x477f11[_0x2f6d('0x49')]['id']}})[_0x2f6d('0x24')](handleEntityNotFound(_0xb11db4,null))['then'](saveUpdates(_0x477f11[_0x2f6d('0x48')],null))[_0x2f6d('0x24')](respondWithResult(_0xb11db4,null))[_0x2f6d('0x43')](handleError(_0xb11db4,null));};exports[_0x2f6d('0x25')]=function(_0x361761,_0x2ba3a5){return db[_0x2f6d('0x2c')][_0x2f6d('0x46')]({'where':{'id':_0x361761[_0x2f6d('0x49')]['id']}})[_0x2f6d('0x24')](handleEntityNotFound(_0x2ba3a5,null))[_0x2f6d('0x24')](removeEntity(_0x2ba3a5,null))[_0x2f6d('0x43')](handleError(_0x2ba3a5,null));};exports[_0x2f6d('0x4a')]=function(_0x15fce4,_0x18be63,_0x1df28b){var _0x4661a7={};var _0x8ee925={};var _0x4b7581;var _0x1530e4;return db[_0x2f6d('0x2c')][_0x2f6d('0x4b')]({'where':{'id':_0x15fce4[_0x2f6d('0x49')]['id']}})[_0x2f6d('0x24')](handleEntityNotFound(_0x18be63,null))[_0x2f6d('0x24')](function(_0x41ccf7){if(_0x41ccf7){_0x4b7581=_0x41ccf7;_0x8ee925[_0x2f6d('0x31')]=_[_0x2f6d('0x45')](db[_0x2f6d('0x4c')][_0x2f6d('0x2d')]);_0x8ee925[_0x2f6d('0x34')]=_[_0x2f6d('0x45')](_0x15fce4['query']);_0x8ee925[_0x2f6d('0x32')]=_[_0x2f6d('0x33')](_0x8ee925['model'],_0x8ee925['query']);_0x4661a7[_0x2f6d('0x36')]=_[_0x2f6d('0x33')](_0x8ee925[_0x2f6d('0x31')],qs['fields'](_0x15fce4[_0x2f6d('0x34')][_0x2f6d('0x35')]));_0x4661a7[_0x2f6d('0x36')]=_0x4661a7[_0x2f6d('0x36')][_0x2f6d('0x4d')]?_0x4661a7[_0x2f6d('0x36')]:_0x8ee925[_0x2f6d('0x31')];_0x4661a7['order']=qs[_0x2f6d('0x39')](_0x15fce4['query']['sort']);_0x4661a7['where']=qs[_0x2f6d('0x32')](_[_0x2f6d('0x3b')](_0x15fce4[_0x2f6d('0x34')],_0x8ee925[_0x2f6d('0x32')]));if(_0x15fce4['query'][_0x2f6d('0x3c')]){_0x4661a7['where']=_[_0x2f6d('0x3d')](_0x4661a7[_0x2f6d('0x3a')],{'$or':_[_0x2f6d('0x2b')](_0x4661a7[_0x2f6d('0x36')],function(_0x29c159){var _0x1d161c={};_0x1d161c[_0x29c159]={'$like':'%'+_0x15fce4[_0x2f6d('0x34')][_0x2f6d('0x3c')]+'%'};return _0x1d161c;})});}_0x4661a7=_[_0x2f6d('0x3d')]({},_0x4661a7,_0x15fce4[_0x2f6d('0x3f')]);return _0x4b7581[_0x2f6d('0x4a')](_0x4661a7);}})[_0x2f6d('0x24')](function(_0x30c7ff){if(_0x30c7ff){_0x1530e4=_0x30c7ff[_0x2f6d('0x4d')];if(!_0x15fce4[_0x2f6d('0x34')][_0x2f6d('0x37')](_0x2f6d('0x38'))){_0x4661a7[_0x2f6d('0x1e')]=qs[_0x2f6d('0x1e')](_0x15fce4[_0x2f6d('0x34')][_0x2f6d('0x1e')]);_0x4661a7[_0x2f6d('0x1b')]=qs['offset'](_0x15fce4[_0x2f6d('0x34')][_0x2f6d('0x1b')]);}return _0x4b7581[_0x2f6d('0x4a')](_0x4661a7);}})['then'](function(_0x38e97d){if(_0x38e97d){return _0x38e97d?{'count':_0x1530e4,'rows':_0x38e97d}:null;}})['then'](respondWithResult(_0x18be63,null))[_0x2f6d('0x43')](handleError(_0x18be63,null));};exports[_0x2f6d('0x4e')]=function(_0x59444b,_0x2e0ac4,_0x4cb712){if(_0x59444b[_0x2f6d('0x48')]['id']){delete _0x59444b[_0x2f6d('0x48')]['id'];}return db[_0x2f6d('0x2c')][_0x2f6d('0x4b')]({'where':{'id':_0x59444b[_0x2f6d('0x49')]['id']}})[_0x2f6d('0x24')](handleEntityNotFound(_0x2e0ac4,null))[_0x2f6d('0x24')](function(_0x52e8f8){if(_0x52e8f8){_0x59444b['body'][_0x2f6d('0x4f')]=_0x52e8f8['id'];_0x59444b[_0x2f6d('0x48')][_0x2f6d('0x50')]=integrations[_0x2f6d('0x51')](_0x59444b[_0x2f6d('0x48')][_0x2f6d('0x52')],_0x59444b['body'][_0x2f6d('0x2f')]);_0x59444b[_0x2f6d('0x48')][_0x2f6d('0x53')]=integrations[_0x2f6d('0x54')](_0x59444b[_0x2f6d('0x48')][_0x2f6d('0x52')],_0x59444b[_0x2f6d('0x48')][_0x2f6d('0x2f')]);return db[_0x2f6d('0x4c')][_0x2f6d('0x47')](_0x59444b['body'],{'include':[{'model':db['FreshsalesField'],'as':_0x2f6d('0x50')},{'model':db[_0x2f6d('0x55')],'as':'Descriptions'}]});}return null;})['then'](respondWithResult(_0x2e0ac4,null))[_0x2f6d('0x43')](handleError(_0x2e0ac4,null));};exports[_0x2f6d('0x56')]=function(_0xf05fd0,_0x1528c6,_0xe2c25a){var _0x4b3794='';var _0x1b309f='';return db['FreshsalesAccount']['findOne']({'where':{'id':_0xf05fd0[_0x2f6d('0x49')]['id']},'attributes':['id','username','remoteUri',_0x2f6d('0x57')]})[_0x2f6d('0x24')](handleEntityNotFound(_0x1528c6,null))[_0x2f6d('0x24')](function(_0x57ea67){if(_0x57ea67){_0x1b309f=_0x57ea67[_0x2f6d('0x58')];_0x4b3794=_0x57ea67[_0x2f6d('0x59')];var _0x6913a9=_0x57ea67[_0x2f6d('0x59')]['slice'](-0x1);if(_0x6913a9==='/'){_0x4b3794=_0x4b3794['substring'](0x0,_0x4b3794[_0x2f6d('0x5a')](_0x6913a9));}return rp({'method':_0x2f6d('0x5b'),'uri':util[_0x2f6d('0x5c')](_0x2f6d('0x5d'),_0x4b3794,'/api/selector/owners'),'headers':{'Authorization':_0x2f6d('0x5e')+_0x57ea67['apiKey']},'json':!![]});}})[_0x2f6d('0x24')](function(_0x588b25){if(_0x588b25){var _0x5efb47=_0x588b25['users'];var _0x35bee3=![];var _0x2c1237=null;for(_0x2c1237=0x0;_0x2c1237<_0x5efb47['length'];_0x2c1237++){if(_0x5efb47[_0x2c1237][_0x2f6d('0x5f')]===_0x1b309f){_0x35bee3=!![];}}if(_0x35bee3){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x2f6d('0x60')});}}})[_0x2f6d('0x24')](respondWithResult(_0x1528c6,null))[_0x2f6d('0x43')](function(_0x23b3b3){var _0x481895=_0xf05fd0[_0x2f6d('0x34')][_0x2f6d('0x61')]?0x1f4:_0x23b3b3['statusCode']||0x1f4;logger[_0x2f6d('0x26')](_0x2f6d('0x62'),'getFields',_0x481895,JSON[_0x2f6d('0x63')](_0x23b3b3));delete _0x23b3b3[_0x2f6d('0x28')];if(_0x481895===0x191){_0x481895=0x190;}_0x1528c6[_0x2f6d('0x18')](_0x481895)['send'](_0xf05fd0[_0x2f6d('0x34')][_0x2f6d('0x61')]?{'message':'Wrong\x20credentials','statusCode':_0x23b3b3[_0x2f6d('0x64')]}:_0x23b3b3);});};
\ No newline at end of file
+var _0x064e=['status','json','offset','limit','count','set','apply','save','update','then','destroy','end','error','stack','name','index','map','FreshsalesAccount','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','rawAttributes','find','catch','create','body','getConfigurations','findOne','order','addConfiguration','Subjects','channel','Descriptions','getDescriptions','FreshsalesConfiguration','FreshsalesField','getFields','username','remoteUri','apiKey','substring','format','%s%s','/api/selector/owners','Token\x20token=','users','email','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus'];(function(_0x2690be,_0x44b266){var _0x202c8d=function(_0x2a3bb3){while(--_0x2a3bb3){_0x2690be['push'](_0x2690be['shift']());}};_0x202c8d(++_0x44b266);}(_0x064e,0x110));var _0xe064=function(_0x5646f2,_0x12641d){_0x5646f2=_0x5646f2-0x0;var _0x130102=_0x064e[_0x5646f2];return _0x130102;};'use strict';var emlformat=require(_0xe064('0x0'));var rimraf=require(_0xe064('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe064('0x2'));var rp=require(_0xe064('0x3'));var moment=require('moment');var BPromise=require(_0xe064('0x4'));var Mustache=require(_0xe064('0x5'));var util=require(_0xe064('0x6'));var path=require(_0xe064('0x7'));var sox=require(_0xe064('0x8'));var csv=require(_0xe064('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe064('0xa'));var _=require(_0xe064('0xb'));var squel=require(_0xe064('0xc'));var crypto=require('crypto');var jsforce=require(_0xe064('0xd'));var deskjs=require(_0xe064('0xe'));var toCsv=require(_0xe064('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xe064('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe064('0x10'));var hardwareService=require(_0xe064('0x11'));var logger=require(_0xe064('0x12'))('api');var utils=require(_0xe064('0x13'));var config=require(_0xe064('0x14'));var licenseUtil=require(_0xe064('0x15'));var db=require(_0xe064('0x16'))['db'];var integrations=require(_0xe064('0x17'));function respondWithStatusCode(_0x48a08a,_0x832d01){_0x832d01=_0x832d01||0xcc;return function(_0x59915d){if(_0x59915d){return _0x48a08a[_0xe064('0x18')](_0x832d01);}return _0x48a08a[_0xe064('0x19')](_0x832d01)['end']();};}function respondWithResult(_0xf59bf1,_0x1800ab){_0x1800ab=_0x1800ab||0xc8;return function(_0xfabd8d){if(_0xfabd8d){return _0xf59bf1['status'](_0x1800ab)[_0xe064('0x1a')](_0xfabd8d);}};}function respondWithFilteredResult(_0x461479,_0x21e224){return function(_0xbadb9c){if(_0xbadb9c){var _0x588d75=typeof _0x21e224[_0xe064('0x1b')]==='undefined'&&typeof _0x21e224[_0xe064('0x1c')]==='undefined';var _0xba02f4=_0xbadb9c[_0xe064('0x1d')];var _0x33b124=_0x588d75?0x0:_0x21e224[_0xe064('0x1b')];var _0x4a22a6=_0x588d75?_0xbadb9c[_0xe064('0x1d')]:_0x21e224[_0xe064('0x1b')]+_0x21e224[_0xe064('0x1c')];var _0x138f40;if(_0x4a22a6>=_0xba02f4){_0x4a22a6=_0xba02f4;_0x138f40=0xc8;}else{_0x138f40=0xce;}_0x461479[_0xe064('0x19')](_0x138f40);return _0x461479[_0xe064('0x1e')]('Content-Range',_0x33b124+'-'+_0x4a22a6+'/'+_0xba02f4)['json'](_0xbadb9c);}return null;};}function patchUpdates(_0x1f169c){return function(_0x21b326){try{jsonpatch[_0xe064('0x1f')](_0x21b326,_0x1f169c,!![]);}catch(_0xf6839c){return BPromise['reject'](_0xf6839c);}return _0x21b326[_0xe064('0x20')]();};}function saveUpdates(_0x5b0d59,_0x3c0f43){return function(_0x4dc708){if(_0x4dc708){return _0x4dc708[_0xe064('0x21')](_0x5b0d59)[_0xe064('0x22')](function(_0x18efe7){return _0x18efe7;});}return null;};}function removeEntity(_0x1fa142,_0x208309){return function(_0x178759){if(_0x178759){return _0x178759[_0xe064('0x23')]()[_0xe064('0x22')](function(){_0x1fa142[_0xe064('0x19')](0xcc)[_0xe064('0x24')]();});}};}function handleEntityNotFound(_0xcc4a6b,_0x2dab07){return function(_0x21b3ab){if(!_0x21b3ab){_0xcc4a6b[_0xe064('0x18')](0x194);}return _0x21b3ab;};}function handleError(_0x510b94,_0x3bd68f){_0x3bd68f=_0x3bd68f||0x1f4;return function(_0x54d825){logger[_0xe064('0x25')](_0x54d825[_0xe064('0x26')]);if(_0x54d825[_0xe064('0x27')]){delete _0x54d825['name'];}_0x510b94[_0xe064('0x19')](_0x3bd68f)['send'](_0x54d825);};}exports[_0xe064('0x28')]=function(_0x3aea94,_0x51f5cc){var _0x259f26={},_0x4f075d={},_0x1ba919={'count':0x0,'rows':[]};var _0x62148a=_[_0xe064('0x29')](db[_0xe064('0x2a')]['rawAttributes'],function(_0x5aa3e6){return{'name':_0x5aa3e6[_0xe064('0x2b')],'type':_0x5aa3e6[_0xe064('0x2c')]['key']};});_0x4f075d[_0xe064('0x2d')]=_[_0xe064('0x29')](_0x62148a,'name');_0x4f075d[_0xe064('0x2e')]=_[_0xe064('0x2f')](_0x3aea94['query']);_0x4f075d[_0xe064('0x30')]=_[_0xe064('0x31')](_0x4f075d[_0xe064('0x2d')],_0x4f075d[_0xe064('0x2e')]);_0x259f26[_0xe064('0x32')]=_[_0xe064('0x31')](_0x4f075d['model'],qs[_0xe064('0x33')](_0x3aea94['query'][_0xe064('0x33')]));_0x259f26[_0xe064('0x32')]=_0x259f26['attributes'][_0xe064('0x34')]?_0x259f26[_0xe064('0x32')]:_0x4f075d[_0xe064('0x2d')];if(!_0x3aea94[_0xe064('0x2e')][_0xe064('0x35')](_0xe064('0x36'))){_0x259f26[_0xe064('0x1c')]=qs['limit'](_0x3aea94[_0xe064('0x2e')][_0xe064('0x1c')]);_0x259f26[_0xe064('0x1b')]=qs[_0xe064('0x1b')](_0x3aea94[_0xe064('0x2e')]['offset']);}_0x259f26['order']=qs['sort'](_0x3aea94['query'][_0xe064('0x37')]);_0x259f26[_0xe064('0x38')]=qs[_0xe064('0x30')](_[_0xe064('0x39')](_0x3aea94[_0xe064('0x2e')],_0x4f075d[_0xe064('0x30')]),_0x62148a);if(_0x3aea94['query'][_0xe064('0x3a')]){_0x259f26[_0xe064('0x38')]=_['merge'](_0x259f26[_0xe064('0x38')],{'$or':_[_0xe064('0x29')](_0x62148a,function(_0x372091){if(_0x372091[_0xe064('0x2c')]!==_0xe064('0x3b')){var _0x307b99={};_0x307b99[_0x372091[_0xe064('0x27')]]={'$like':'%'+_0x3aea94[_0xe064('0x2e')][_0xe064('0x3a')]+'%'};return _0x307b99;}})});}_0x259f26=_[_0xe064('0x3c')]({},_0x259f26,_0x3aea94[_0xe064('0x3d')]);var _0x3019df={'where':_0x259f26[_0xe064('0x38')]};return db['FreshsalesAccount']['count'](_0x3019df)[_0xe064('0x22')](function(_0x3a9b32){_0x1ba919[_0xe064('0x1d')]=_0x3a9b32;if(_0x3aea94['query'][_0xe064('0x3e')]){_0x259f26[_0xe064('0x3f')]=[{'all':!![]}];}return db[_0xe064('0x2a')][_0xe064('0x40')](_0x259f26);})[_0xe064('0x22')](function(_0x8ef9f1){_0x1ba919[_0xe064('0x41')]=_0x8ef9f1;return _0x1ba919;})['then'](respondWithFilteredResult(_0x51f5cc,_0x259f26))['catch'](handleError(_0x51f5cc,null));};exports[_0xe064('0x42')]=function(_0x152a8c,_0x167733){var _0x28802c={'raw':![],'where':{'id':_0x152a8c[_0xe064('0x43')]['id']}},_0x3e84d2={};_0x3e84d2['model']=_[_0xe064('0x2f')](db['FreshsalesAccount'][_0xe064('0x44')]);_0x3e84d2[_0xe064('0x2e')]=_[_0xe064('0x2f')](_0x152a8c[_0xe064('0x2e')]);_0x3e84d2[_0xe064('0x30')]=_[_0xe064('0x31')](_0x3e84d2[_0xe064('0x2d')],_0x3e84d2[_0xe064('0x2e')]);_0x28802c[_0xe064('0x32')]=_[_0xe064('0x31')](_0x3e84d2['model'],qs[_0xe064('0x33')](_0x152a8c[_0xe064('0x2e')]['fields']));_0x28802c[_0xe064('0x32')]=_0x28802c[_0xe064('0x32')][_0xe064('0x34')]?_0x28802c[_0xe064('0x32')]:_0x3e84d2[_0xe064('0x2d')];if(_0x152a8c['query'][_0xe064('0x3e')]){_0x28802c[_0xe064('0x3f')]=[{'all':!![]}];}_0x28802c=_[_0xe064('0x3c')]({},_0x28802c,_0x152a8c[_0xe064('0x3d')]);return db[_0xe064('0x2a')][_0xe064('0x45')](_0x28802c)[_0xe064('0x22')](handleEntityNotFound(_0x167733,null))[_0xe064('0x22')](respondWithResult(_0x167733,null))[_0xe064('0x46')](handleError(_0x167733,null));};exports[_0xe064('0x47')]=function(_0x5a6ced,_0x34d6f4){return db[_0xe064('0x2a')][_0xe064('0x47')](_0x5a6ced['body'],{})['then'](respondWithResult(_0x34d6f4,0xc9))['catch'](handleError(_0x34d6f4,null));};exports['update']=function(_0x3e96e9,_0x257a5b){if(_0x3e96e9['body']['id']){delete _0x3e96e9['body']['id'];}return db[_0xe064('0x2a')][_0xe064('0x45')]({'where':{'id':_0x3e96e9['params']['id']}})[_0xe064('0x22')](handleEntityNotFound(_0x257a5b,null))[_0xe064('0x22')](saveUpdates(_0x3e96e9[_0xe064('0x48')],null))[_0xe064('0x22')](respondWithResult(_0x257a5b,null))[_0xe064('0x46')](handleError(_0x257a5b,null));};exports[_0xe064('0x23')]=function(_0x1c48dd,_0x1661f9){return db['FreshsalesAccount'][_0xe064('0x45')]({'where':{'id':_0x1c48dd[_0xe064('0x43')]['id']}})[_0xe064('0x22')](handleEntityNotFound(_0x1661f9,null))['then'](removeEntity(_0x1661f9,null))[_0xe064('0x46')](handleError(_0x1661f9,null));};exports[_0xe064('0x49')]=function(_0x3a9f36,_0x3d5e99,_0x1085e0){var _0x49677a={};var _0x31e5fa={};var _0x2fa851;var _0x19a506;return db[_0xe064('0x2a')][_0xe064('0x4a')]({'where':{'id':_0x3a9f36[_0xe064('0x43')]['id']}})[_0xe064('0x22')](handleEntityNotFound(_0x3d5e99,null))[_0xe064('0x22')](function(_0x4bdad7){if(_0x4bdad7){_0x2fa851=_0x4bdad7;_0x31e5fa['model']=_[_0xe064('0x2f')](db['FreshsalesConfiguration'][_0xe064('0x44')]);_0x31e5fa[_0xe064('0x2e')]=_[_0xe064('0x2f')](_0x3a9f36['query']);_0x31e5fa[_0xe064('0x30')]=_[_0xe064('0x31')](_0x31e5fa[_0xe064('0x2d')],_0x31e5fa[_0xe064('0x2e')]);_0x49677a['attributes']=_['intersection'](_0x31e5fa[_0xe064('0x2d')],qs[_0xe064('0x33')](_0x3a9f36[_0xe064('0x2e')][_0xe064('0x33')]));_0x49677a['attributes']=_0x49677a[_0xe064('0x32')][_0xe064('0x34')]?_0x49677a[_0xe064('0x32')]:_0x31e5fa['model'];_0x49677a[_0xe064('0x4b')]=qs[_0xe064('0x37')](_0x3a9f36[_0xe064('0x2e')][_0xe064('0x37')]);_0x49677a[_0xe064('0x38')]=qs[_0xe064('0x30')](_[_0xe064('0x39')](_0x3a9f36[_0xe064('0x2e')],_0x31e5fa[_0xe064('0x30')]));if(_0x3a9f36[_0xe064('0x2e')][_0xe064('0x3a')]){_0x49677a[_0xe064('0x38')]=_[_0xe064('0x3c')](_0x49677a[_0xe064('0x38')],{'$or':_[_0xe064('0x29')](_0x49677a[_0xe064('0x32')],function(_0x317c4a){var _0x3c403e={};_0x3c403e[_0x317c4a]={'$like':'%'+_0x3a9f36['query'][_0xe064('0x3a')]+'%'};return _0x3c403e;})});}_0x49677a=_[_0xe064('0x3c')]({},_0x49677a,_0x3a9f36[_0xe064('0x3d')]);return _0x2fa851[_0xe064('0x49')](_0x49677a);}})[_0xe064('0x22')](function(_0xb34c51){if(_0xb34c51){_0x19a506=_0xb34c51[_0xe064('0x34')];if(!_0x3a9f36[_0xe064('0x2e')][_0xe064('0x35')](_0xe064('0x36'))){_0x49677a[_0xe064('0x1c')]=qs[_0xe064('0x1c')](_0x3a9f36['query'][_0xe064('0x1c')]);_0x49677a[_0xe064('0x1b')]=qs[_0xe064('0x1b')](_0x3a9f36['query'][_0xe064('0x1b')]);}return _0x2fa851[_0xe064('0x49')](_0x49677a);}})[_0xe064('0x22')](function(_0x1bb24f){if(_0x1bb24f){return _0x1bb24f?{'count':_0x19a506,'rows':_0x1bb24f}:null;}})['then'](respondWithResult(_0x3d5e99,null))[_0xe064('0x46')](handleError(_0x3d5e99,null));};exports[_0xe064('0x4c')]=function(_0x40df02,_0x48486b,_0x19337e){if(_0x40df02[_0xe064('0x48')]['id']){delete _0x40df02[_0xe064('0x48')]['id'];}return db[_0xe064('0x2a')]['findOne']({'where':{'id':_0x40df02[_0xe064('0x43')]['id']}})[_0xe064('0x22')](handleEntityNotFound(_0x48486b,null))[_0xe064('0x22')](function(_0x530bda){if(_0x530bda){_0x40df02[_0xe064('0x48')]['AccountId']=_0x530bda['id'];_0x40df02['body'][_0xe064('0x4d')]=integrations['getSubjects'](_0x40df02[_0xe064('0x48')][_0xe064('0x4e')],_0x40df02[_0xe064('0x48')][_0xe064('0x2c')]);_0x40df02['body'][_0xe064('0x4f')]=integrations[_0xe064('0x50')](_0x40df02[_0xe064('0x48')][_0xe064('0x4e')],_0x40df02[_0xe064('0x48')]['type']);return db[_0xe064('0x51')][_0xe064('0x47')](_0x40df02['body'],{'include':[{'model':db[_0xe064('0x52')],'as':_0xe064('0x4d')},{'model':db[_0xe064('0x52')],'as':_0xe064('0x4f')}]});}return null;})['then'](respondWithResult(_0x48486b,null))[_0xe064('0x46')](handleError(_0x48486b,null));};exports[_0xe064('0x53')]=function(_0x3b5995,_0x324b51,_0xccaef){var _0x2ce185='';var _0x43b54e='';return db['FreshsalesAccount'][_0xe064('0x4a')]({'where':{'id':_0x3b5995[_0xe064('0x43')]['id']},'attributes':['id',_0xe064('0x54'),_0xe064('0x55'),_0xe064('0x56')]})['then'](handleEntityNotFound(_0x324b51,null))[_0xe064('0x22')](function(_0x31b0f4){if(_0x31b0f4){_0x43b54e=_0x31b0f4[_0xe064('0x54')];_0x2ce185=_0x31b0f4[_0xe064('0x55')];var _0x55ba51=_0x31b0f4[_0xe064('0x55')]['slice'](-0x1);if(_0x55ba51==='/'){_0x2ce185=_0x2ce185[_0xe064('0x57')](0x0,_0x2ce185['lastIndexOf'](_0x55ba51));}return rp({'method':'GET','uri':util[_0xe064('0x58')](_0xe064('0x59'),_0x2ce185,_0xe064('0x5a')),'headers':{'Authorization':_0xe064('0x5b')+_0x31b0f4[_0xe064('0x56')]},'json':!![]});}})[_0xe064('0x22')](function(_0x115678){if(_0x115678){var _0x50dbe8=_0x115678[_0xe064('0x5c')];var _0x4ee0fd=![];var _0x6e0dc1=null;for(_0x6e0dc1=0x0;_0x6e0dc1<_0x50dbe8['length'];_0x6e0dc1++){if(_0x50dbe8[_0x6e0dc1][_0xe064('0x5d')]===_0x43b54e){_0x4ee0fd=!![];}}if(_0x4ee0fd){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0xe064('0x22')](respondWithResult(_0x324b51,null))['catch'](function(_0x432f99){var _0x4f2b92=_0x3b5995['query'][_0xe064('0x5e')]?0x1f4:_0x432f99[_0xe064('0x5f')]||0x1f4;logger[_0xe064('0x25')](_0xe064('0x60'),_0xe064('0x53'),_0x4f2b92,JSON[_0xe064('0x61')](_0x432f99));delete _0x432f99[_0xe064('0x27')];if(_0x4f2b92===0x191){_0x4f2b92=0x190;}_0x324b51[_0xe064('0x19')](_0x4f2b92)['send'](_0x3b5995[_0xe064('0x2e')][_0xe064('0x5e')]?{'message':_0xe064('0x62'),'statusCode':_0x432f99[_0xe064('0x5f')]}:_0x432f99);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1893=['./intFreshsalesAccount.attributes','../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x2a0247,_0x55b75d){var _0x26b7be=function(_0x51569a){while(--_0x51569a){_0x2a0247['push'](_0x2a0247['shift']());}};_0x26b7be(++_0x55b75d);}(_0x1893,0xa2));var _0x3189=function(_0x284a61,_0x231686){_0x284a61=_0x284a61-0x0;var _0x220e3c=_0x1893[_0x284a61];return _0x220e3c;};'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 fs=require('fs');var path=require(_0x3189('0x5'));var rimraf=require(_0x3189('0x6'));var config=require('../../config/environment');var attributes=require(_0x3189('0x7'));var integrations=require(_0x3189('0x8'));module[_0x3189('0x9')]=function(_0x4080a9,_0x77c566){return _0x4080a9[_0x3189('0xa')](_0x3189('0xb'),attributes,{'tableName':_0x3189('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfcf0=['lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration','exports','define','int_freshsales_accounts'];(function(_0x4d613c,_0x55f220){var _0x301fe3=function(_0x5eec0b){while(--_0x5eec0b){_0x4d613c['push'](_0x4d613c['shift']());}};_0x301fe3(++_0x55f220);}(_0xfcf0,0x138));var _0x0fcf=function(_0x3d2d6f,_0x368872){_0x3d2d6f=_0x3d2d6f-0x0;var _0x5c0022=_0xfcf0[_0x3d2d6f];return _0x5c0022;};'use strict';var _=require(_0x0fcf('0x0'));var util=require(_0x0fcf('0x1'));var logger=require('../../config/logger')(_0x0fcf('0x2'));var moment=require(_0x0fcf('0x3'));var BPromise=require(_0x0fcf('0x4'));var rp=require(_0x0fcf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0fcf('0x6'));var config=require(_0x0fcf('0x7'));var attributes=require(_0x0fcf('0x8'));var integrations=require(_0x0fcf('0x9'));module[_0x0fcf('0xa')]=function(_0x1a7b03,_0x61bbb9){return _0x1a7b03[_0x0fcf('0xb')]('FreshsalesAccount',attributes,{'tableName':_0x0fcf('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['jayson/promise','http','request','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','FreshsalesAccount','findAll','options','raw','where','attributes','include','map','model','GetFreshsalesAccount','ShowFreshsalesAccount','find','then','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4975,0x86));var _0x5497=function(_0x69983,_0x1c8f37){_0x69983=_0x69983-0x0;var _0x50e231=_0x4975[_0x69983];return _0x50e231;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var moment=require(_0x5497('0x1'));var BPromise=require(_0x5497('0x2'));var rs=require(_0x5497('0x3'));var fs=require('fs');var Redis=require(_0x5497('0x4'));var db=require(_0x5497('0x5'))['db'];var utils=require(_0x5497('0x6'));var logger=require(_0x5497('0x7'))(_0x5497('0x8'));var config=require(_0x5497('0x9'));var jayson=require(_0x5497('0xa'));var client=jayson['client'][_0x5497('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4f563d,_0x1d0019,_0x674a2a){return new BPromise(function(_0x368e8b,_0x57f930){return client[_0x5497('0xc')](_0x4f563d,_0x674a2a)['then'](function(_0x1f63d8){logger[_0x5497('0xd')](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));logger[_0x5497('0x10')](_0x5497('0x11'),_0x1d0019,_0x5497('0xf'),JSON[_0x5497('0x12')](_0x1f63d8));if(_0x1f63d8['error']){if(_0x1f63d8['error']['code']===0x1f4){logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x57f930(_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);}logger[_0x5497('0x13')](_0x5497('0xe'),_0x1d0019,_0x1f63d8[_0x5497('0x13')][_0x5497('0x14')]);return _0x368e8b(_0x1f63d8['error'][_0x5497('0x14')]);}else{logger['info'](_0x5497('0xe'),_0x1d0019,_0x5497('0xf'));_0x368e8b(_0x1f63d8[_0x5497('0x15')][_0x5497('0x14')]);}})[_0x5497('0x16')](function(_0x4073e6){logger[_0x5497('0x13')]('FreshsalesAccount,\x20%s,\x20%s',_0x1d0019,_0x4073e6);_0x57f930(_0x4073e6);});});}exports['GetFreshsalesAccount']=function(_0x3f4d20){var _0x1bf442=this;return new Promise(function(_0x3a47fd,_0x5d9e24){return db[_0x5497('0x17')][_0x5497('0x18')]({'raw':_0x3f4d20[_0x5497('0x19')]?_0x3f4d20[_0x5497('0x19')][_0x5497('0x1a')]===undefined?!![]:![]:!![],'where':_0x3f4d20[_0x5497('0x19')]?_0x3f4d20[_0x5497('0x19')][_0x5497('0x1b')]||null:null,'attributes':_0x3f4d20[_0x5497('0x19')]?_0x3f4d20[_0x5497('0x19')][_0x5497('0x1c')]||null:null,'limit':_0x3f4d20['options']?_0x3f4d20[_0x5497('0x19')]['limit']||null:null,'include':_0x3f4d20[_0x5497('0x19')]?_0x3f4d20[_0x5497('0x19')][_0x5497('0x1d')]?_[_0x5497('0x1e')](_0x3f4d20[_0x5497('0x19')][_0x5497('0x1d')],function(_0x5018fa){return{'model':db[_0x5018fa['model']],'as':_0x5018fa['as'],'attributes':_0x5018fa[_0x5497('0x1c')],'include':_0x5018fa[_0x5497('0x1d')]?_[_0x5497('0x1e')](_0x5018fa[_0x5497('0x1d')],function(_0x5223b5){return{'model':db[_0x5223b5[_0x5497('0x1f')]],'as':_0x5223b5['as'],'attributes':_0x5223b5['attributes'],'include':_0x5223b5[_0x5497('0x1d')]?_[_0x5497('0x1e')](_0x5223b5[_0x5497('0x1d')],function(_0x34a1a5){return{'model':db[_0x34a1a5[_0x5497('0x1f')]],'as':_0x34a1a5['as'],'attributes':_0x34a1a5[_0x5497('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4af5f4){logger['info']('GetFreshsalesAccount',_0x3f4d20);logger['debug'](_0x5497('0x20'),_0x3f4d20,JSON['stringify'](_0x4af5f4));_0x3a47fd(_0x4af5f4);})['catch'](function(_0xc3465){logger[_0x5497('0x13')](_0x5497('0x20'),_0xc3465['message'],_0x3f4d20);_0x5d9e24(_0x1bf442['error'](0x1f4,_0xc3465['message']));});});};exports[_0x5497('0x21')]=function(_0x471e0b){var _0xf4c117=this;return new Promise(function(_0x5b8f79,_0x489f71){return db['FreshsalesAccount'][_0x5497('0x22')]({'raw':_0x471e0b['options']?_0x471e0b[_0x5497('0x19')][_0x5497('0x1a')]===undefined?!![]:![]:!![],'where':_0x471e0b[_0x5497('0x19')]?_0x471e0b['options'][_0x5497('0x1b')]||null:null,'attributes':_0x471e0b[_0x5497('0x19')]?_0x471e0b['options'][_0x5497('0x1c')]||null:null,'include':_0x471e0b[_0x5497('0x19')]?_0x471e0b[_0x5497('0x19')]['include']?_[_0x5497('0x1e')](_0x471e0b[_0x5497('0x19')][_0x5497('0x1d')],function(_0x362b96){return{'model':db[_0x362b96[_0x5497('0x1f')]],'as':_0x362b96['as'],'attributes':_0x362b96['attributes'],'include':_0x362b96[_0x5497('0x1d')]?_[_0x5497('0x1e')](_0x362b96['include'],function(_0x1ffc9b){return{'model':db[_0x1ffc9b[_0x5497('0x1f')]],'as':_0x1ffc9b['as'],'attributes':_0x1ffc9b[_0x5497('0x1c')],'include':_0x1ffc9b[_0x5497('0x1d')]?_[_0x5497('0x1e')](_0x1ffc9b[_0x5497('0x1d')],function(_0x580e86){return{'model':db[_0x580e86[_0x5497('0x1f')]],'as':_0x580e86['as'],'attributes':_0x580e86['attributes']};}):[]};}):[]};}):[]:[]})[_0x5497('0x23')](function(_0x212199){logger[_0x5497('0xd')]('ShowFreshsalesAccount',_0x471e0b);logger['debug'](_0x5497('0x21'),_0x471e0b,JSON[_0x5497('0x12')](_0x212199));_0x5b8f79(_0x212199);})[_0x5497('0x16')](function(_0x429cbf){logger[_0x5497('0x13')](_0x5497('0x21'),_0x429cbf['message'],_0x471e0b);_0x489f71(_0xf4c117[_0x5497('0x13')](0x1f4,_0x429cbf[_0x5497('0x14')]));});});};
\ No newline at end of file
+var _0x1893=['request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','GetFreshsalesAccount','FreshsalesAccount','findAll','options','raw','where','attributes','include','map','model','catch','ShowFreshsalesAccount','find','then','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','FreshsalesAccount,\x20%s,\x20%s'];(function(_0xbb2ac6,_0xda29c9){var _0x13dc19=function(_0x14e40f){while(--_0x14e40f){_0xbb2ac6['push'](_0xbb2ac6['shift']());}};_0x13dc19(++_0xda29c9);}(_0x1893,0xa2));var _0x3189=function(_0x503d48,_0x42e5a9){_0x503d48=_0x503d48-0x0;var _0x59743e=_0x1893[_0x503d48];return _0x59743e;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x3189('0x0'));var BPromise=require(_0x3189('0x1'));var rs=require(_0x3189('0x2'));var fs=require('fs');var Redis=require(_0x3189('0x3'));var db=require(_0x3189('0x4'))['db'];var utils=require(_0x3189('0x5'));var logger=require(_0x3189('0x6'))('rpc');var config=require(_0x3189('0x7'));var jayson=require(_0x3189('0x8'));var client=jayson[_0x3189('0x9')][_0x3189('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x77c566,_0x118970,_0x14d84b){return new BPromise(function(_0x1f6764,_0x5312a3){return client[_0x3189('0xb')](_0x77c566,_0x14d84b)['then'](function(_0x127449){logger['info'](_0x3189('0xc'),_0x118970,_0x3189('0xd'));logger[_0x3189('0xe')](_0x3189('0xf'),_0x118970,'request\x20sent',JSON[_0x3189('0x10')](_0x127449));if(_0x127449[_0x3189('0x11')]){if(_0x127449[_0x3189('0x11')][_0x3189('0x12')]===0x1f4){logger[_0x3189('0x11')]('FreshsalesAccount,\x20%s,\x20%s',_0x118970,_0x127449[_0x3189('0x11')][_0x3189('0x13')]);return _0x5312a3(_0x127449[_0x3189('0x11')][_0x3189('0x13')]);}logger[_0x3189('0x11')](_0x3189('0xc'),_0x118970,_0x127449[_0x3189('0x11')][_0x3189('0x13')]);return _0x1f6764(_0x127449['error'][_0x3189('0x13')]);}else{logger[_0x3189('0x14')](_0x3189('0xc'),_0x118970,_0x3189('0xd'));_0x1f6764(_0x127449['result'][_0x3189('0x13')]);}})['catch'](function(_0x55f432){logger[_0x3189('0x11')]('FreshsalesAccount,\x20%s,\x20%s',_0x118970,_0x55f432);_0x5312a3(_0x55f432);});});}exports[_0x3189('0x15')]=function(_0xf8aed7){var _0x22c7ba=this;return new Promise(function(_0x9905c4,_0x4c4d9b){return db[_0x3189('0x16')][_0x3189('0x17')]({'raw':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x19')]===undefined?!![]:![]:!![],'where':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7[_0x3189('0x18')][_0x3189('0x1a')]||null:null,'attributes':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x1b')]||null:null,'limit':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7[_0x3189('0x18')]['limit']||null:null,'include':_0xf8aed7[_0x3189('0x18')]?_0xf8aed7['options'][_0x3189('0x1c')]?_[_0x3189('0x1d')](_0xf8aed7[_0x3189('0x18')][_0x3189('0x1c')],function(_0x1cbe33){return{'model':db[_0x1cbe33[_0x3189('0x1e')]],'as':_0x1cbe33['as'],'attributes':_0x1cbe33['attributes'],'include':_0x1cbe33['include']?_[_0x3189('0x1d')](_0x1cbe33[_0x3189('0x1c')],function(_0x1dc1c8){return{'model':db[_0x1dc1c8[_0x3189('0x1e')]],'as':_0x1dc1c8['as'],'attributes':_0x1dc1c8[_0x3189('0x1b')],'include':_0x1dc1c8[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x1dc1c8[_0x3189('0x1c')],function(_0x17b540){return{'model':db[_0x17b540[_0x3189('0x1e')]],'as':_0x17b540['as'],'attributes':_0x17b540['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5aa34a){logger[_0x3189('0x14')](_0x3189('0x15'),_0xf8aed7);logger[_0x3189('0xe')](_0x3189('0x15'),_0xf8aed7,JSON[_0x3189('0x10')](_0x5aa34a));_0x9905c4(_0x5aa34a);})[_0x3189('0x1f')](function(_0x4d453a){logger[_0x3189('0x11')](_0x3189('0x15'),_0x4d453a['message'],_0xf8aed7);_0x4c4d9b(_0x22c7ba[_0x3189('0x11')](0x1f4,_0x4d453a[_0x3189('0x13')]));});});};exports[_0x3189('0x20')]=function(_0x5c7a36){var _0x168dc2=this;return new Promise(function(_0x32bba1,_0x23798e){return db['FreshsalesAccount'][_0x3189('0x21')]({'raw':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options'][_0x3189('0x19')]===undefined?!![]:![]:!![],'where':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36[_0x3189('0x18')][_0x3189('0x1a')]||null:null,'attributes':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options']['attributes']||null:null,'include':_0x5c7a36[_0x3189('0x18')]?_0x5c7a36['options'][_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x5c7a36[_0x3189('0x18')][_0x3189('0x1c')],function(_0x231d72){return{'model':db[_0x231d72[_0x3189('0x1e')]],'as':_0x231d72['as'],'attributes':_0x231d72[_0x3189('0x1b')],'include':_0x231d72[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x231d72['include'],function(_0x453e4b){return{'model':db[_0x453e4b[_0x3189('0x1e')]],'as':_0x453e4b['as'],'attributes':_0x453e4b[_0x3189('0x1b')],'include':_0x453e4b[_0x3189('0x1c')]?_[_0x3189('0x1d')](_0x453e4b[_0x3189('0x1c')],function(_0xd1ee0){return{'model':db[_0xd1ee0['model']],'as':_0xd1ee0['as'],'attributes':_0xd1ee0['attributes']};}):[]};}):[]};}):[]:[]})[_0x3189('0x22')](function(_0x580064){logger[_0x3189('0x14')](_0x3189('0x20'),_0x5c7a36);logger['debug'](_0x3189('0x20'),_0x5c7a36,JSON[_0x3189('0x10')](_0x580064));_0x32bba1(_0x580064);})[_0x3189('0x1f')](function(_0x254135){logger['error'](_0x3189('0x20'),_0x254135['message'],_0x5c7a36);_0x23798e(_0x168dc2['error'](0x1f4,_0x254135[_0x3189('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf067=['util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./intFreshsalesConfiguration.controller','get','index','/:id','isAuthenticated','/:id/subjects','getSubjects','getDescriptions','/:id/fields','getFields','post','put','update','destroy'];(function(_0x431a1c,_0x40aa4f){var _0x52afba=function(_0x47ae1f){while(--_0x47ae1f){_0x431a1c['push'](_0x431a1c['shift']());}};_0x52afba(++_0x40aa4f);}(_0xf067,0x17a));var _0x7f06=function(_0x23087f,_0x20a520){_0x23087f=_0x23087f-0x0;var _0x1b63ea=_0xf067[_0x23087f];return _0x1b63ea;};'use strict';var multer=require('multer');var util=require(_0x7f06('0x0'));var path=require(_0x7f06('0x1'));var timeout=require(_0x7f06('0x2'));var express=require(_0x7f06('0x3'));var router=express[_0x7f06('0x4')]();var fs_extra=require(_0x7f06('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7f06('0x6'));var controller=require(_0x7f06('0x7'));router[_0x7f06('0x8')]('/',auth['isAuthenticated'](),controller[_0x7f06('0x9')]);router[_0x7f06('0x8')](_0x7f06('0xa'),auth[_0x7f06('0xb')](),controller['show']);router[_0x7f06('0x8')](_0x7f06('0xc'),auth[_0x7f06('0xb')](),controller[_0x7f06('0xd')]);router['get']('/:id/descriptions',auth[_0x7f06('0xb')](),controller[_0x7f06('0xe')]);router['get'](_0x7f06('0xf'),auth[_0x7f06('0xb')](),controller[_0x7f06('0x10')]);router[_0x7f06('0x11')]('/',auth['isAuthenticated'](),controller['create']);router[_0x7f06('0x12')]('/:id',auth[_0x7f06('0xb')](),controller[_0x7f06('0x13')]);router['delete'](_0x7f06('0xa'),auth['isAuthenticated'](),controller[_0x7f06('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xaf7b=['update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesConfiguration.controller','index','get','isAuthenticated','getSubjects','/:id/descriptions','/:id/fields','getFields','create','put'];(function(_0x3302c2,_0x4a60e5){var _0x258145=function(_0x30d0d0){while(--_0x30d0d0){_0x3302c2['push'](_0x3302c2['shift']());}};_0x258145(++_0x4a60e5);}(_0xaf7b,0xb3));var _0xbaf7=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xaf7b[_0x2dafbe];return _0x58a45a;};'use strict';var multer=require('multer');var util=require(_0xbaf7('0x0'));var path=require(_0xbaf7('0x1'));var timeout=require(_0xbaf7('0x2'));var express=require(_0xbaf7('0x3'));var router=express[_0xbaf7('0x4')]();var fs_extra=require(_0xbaf7('0x5'));var auth=require(_0xbaf7('0x6'));var interaction=require(_0xbaf7('0x7'));var config=require(_0xbaf7('0x8'));var controller=require(_0xbaf7('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0xbaf7('0xa')]);router[_0xbaf7('0xb')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0xbaf7('0xb')]('/:id/subjects',auth[_0xbaf7('0xc')](),controller[_0xbaf7('0xd')]);router['get'](_0xbaf7('0xe'),auth['isAuthenticated'](),controller['getDescriptions']);router[_0xbaf7('0xb')](_0xbaf7('0xf'),auth['isAuthenticated'](),controller[_0xbaf7('0x10')]);router['post']('/',auth[_0xbaf7('0xc')](),controller[_0xbaf7('0x11')]);router[_0xbaf7('0x12')]('/:id',auth[_0xbaf7('0xc')](),controller[_0xbaf7('0x13')]);router[_0xbaf7('0x14')]('/:id',auth[_0xbaf7('0xc')](),controller['destroy']);module[_0xbaf7('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2dbd=['exports','STRING','sequelize'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2dbd,0x1a3));var _0xd2db=function(_0x1976b6,_0x25cc86){_0x1976b6=_0x1976b6-0x0;var _0xf4b704=_0x2dbd[_0x1976b6];return _0xf4b704;};'use strict';var Sequelize=require(_0xd2db('0x0'));module[_0xd2db('0x1')]={'name':{'type':Sequelize[_0xd2db('0x2')]},'description':{'type':Sequelize[_0xd2db('0x2')]}};
\ No newline at end of file
+var _0x2aaf=['STRING','exports'];(function(_0x43f20d,_0x8eaaef){var _0x5b0f9b=function(_0x4c3302){while(--_0x4c3302){_0x43f20d['push'](_0x43f20d['shift']());}};_0x5b0f9b(++_0x8eaaef);}(_0x2aaf,0x141));var _0xf2aa=function(_0xcf2cac,_0x3d74ae){_0xcf2cac=_0xcf2cac-0x0;var _0xe03eaf=_0x2aaf[_0xcf2cac];return _0xe03eaf;};'use strict';var Sequelize=require('sequelize');module[_0xf2aa('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xf2aa('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa537=['ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','destroy','error','stack','name','send','index','map','FreshsalesConfiguration','rawAttributes','fieldName','type','key','keys','intersection','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','then','rows','params','create','catch','update','body','find','getSubjects','findOne','options','getDescriptions','getFields','FreshsalesField','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','papaparse'];(function(_0x334e53,_0x142ce6){var _0x49ace2=function(_0x12968b){while(--_0x12968b){_0x334e53['push'](_0x334e53['shift']());}};_0x49ace2(++_0x142ce6);}(_0xa537,0x18b));var _0x7a53=function(_0x114886,_0x503f0a){_0x114886=_0x114886-0x0;var _0x560878=_0xa537[_0x114886];return _0x560878;};'use strict';var emlformat=require(_0x7a53('0x0'));var rimraf=require(_0x7a53('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7a53('0x2'));var rp=require(_0x7a53('0x3'));var moment=require('moment');var BPromise=require(_0x7a53('0x4'));var Mustache=require(_0x7a53('0x5'));var util=require(_0x7a53('0x6'));var path=require(_0x7a53('0x7'));var sox=require('sox');var csv=require(_0x7a53('0x8'));var ejs=require(_0x7a53('0x9'));var fs=require('fs');var fs_extra=require(_0x7a53('0xa'));var _=require(_0x7a53('0xb'));var squel=require(_0x7a53('0xc'));var crypto=require(_0x7a53('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7a53('0xe'));var Redis=require(_0x7a53('0xf'));var authService=require(_0x7a53('0x10'));var qs=require(_0x7a53('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7a53('0x12'));var logger=require(_0x7a53('0x13'))(_0x7a53('0x14'));var utils=require(_0x7a53('0x15'));var config=require(_0x7a53('0x16'));var licenseUtil=require(_0x7a53('0x17'));var db=require(_0x7a53('0x18'))['db'];function respondWithStatusCode(_0x21466d,_0x40b483){_0x40b483=_0x40b483||0xcc;return function(_0x1f41d6){if(_0x1f41d6){return _0x21466d[_0x7a53('0x19')](_0x40b483);}return _0x21466d[_0x7a53('0x1a')](_0x40b483)[_0x7a53('0x1b')]();};}function respondWithResult(_0x4fb435,_0x1343bb){_0x1343bb=_0x1343bb||0xc8;return function(_0x3930ce){if(_0x3930ce){return _0x4fb435[_0x7a53('0x1a')](_0x1343bb)['json'](_0x3930ce);}};}function respondWithFilteredResult(_0x392d41,_0x1fad9a){return function(_0x496125){if(_0x496125){var _0xb5a43=typeof _0x1fad9a[_0x7a53('0x1c')]===_0x7a53('0x1d')&&typeof _0x1fad9a[_0x7a53('0x1e')]===_0x7a53('0x1d');var _0x320b37=_0x496125[_0x7a53('0x1f')];var _0x1a8ca0=_0xb5a43?0x0:_0x1fad9a[_0x7a53('0x1c')];var _0x341c40=_0xb5a43?_0x496125[_0x7a53('0x1f')]:_0x1fad9a['offset']+_0x1fad9a[_0x7a53('0x1e')];var _0xed9a9a;if(_0x341c40>=_0x320b37){_0x341c40=_0x320b37;_0xed9a9a=0xc8;}else{_0xed9a9a=0xce;}_0x392d41['status'](_0xed9a9a);return _0x392d41[_0x7a53('0x20')](_0x7a53('0x21'),_0x1a8ca0+'-'+_0x341c40+'/'+_0x320b37)[_0x7a53('0x22')](_0x496125);}return null;};}function patchUpdates(_0xaeec70){return function(_0x54b1d8){try{jsonpatch['apply'](_0x54b1d8,_0xaeec70,!![]);}catch(_0x2f2f05){return BPromise[_0x7a53('0x23')](_0x2f2f05);}return _0x54b1d8['save']();};}function saveUpdates(_0xcee2b5,_0x169463){return function(_0x59065c){if(_0x59065c){return _0x59065c['update'](_0xcee2b5)['then'](function(_0x177d30){return _0x177d30;});}return null;};}function removeEntity(_0x5b1996,_0x2f93b8){return function(_0x93f56d){if(_0x93f56d){return _0x93f56d[_0x7a53('0x24')]()['then'](function(){_0x5b1996[_0x7a53('0x1a')](0xcc)[_0x7a53('0x1b')]();});}};}function handleEntityNotFound(_0x1effe7,_0x1b48de){return function(_0x5cd658){if(!_0x5cd658){_0x1effe7[_0x7a53('0x19')](0x194);}return _0x5cd658;};}function handleError(_0x2aa10b,_0x2fedee){_0x2fedee=_0x2fedee||0x1f4;return function(_0x197cf7){logger[_0x7a53('0x25')](_0x197cf7[_0x7a53('0x26')]);if(_0x197cf7['name']){delete _0x197cf7[_0x7a53('0x27')];}_0x2aa10b[_0x7a53('0x1a')](_0x2fedee)[_0x7a53('0x28')](_0x197cf7);};}exports[_0x7a53('0x29')]=function(_0x221cc4,_0x53aed2){var _0x40f9fb={},_0x5c108b={},_0x172894={'count':0x0,'rows':[]};var _0x91009a=_[_0x7a53('0x2a')](db[_0x7a53('0x2b')][_0x7a53('0x2c')],function(_0x54e577){return{'name':_0x54e577[_0x7a53('0x2d')],'type':_0x54e577[_0x7a53('0x2e')][_0x7a53('0x2f')]};});_0x5c108b['model']=_['map'](_0x91009a,_0x7a53('0x27'));_0x5c108b['query']=_[_0x7a53('0x30')](_0x221cc4['query']);_0x5c108b['filters']=_[_0x7a53('0x31')](_0x5c108b[_0x7a53('0x32')],_0x5c108b[_0x7a53('0x33')]);_0x40f9fb[_0x7a53('0x34')]=_[_0x7a53('0x31')](_0x5c108b[_0x7a53('0x32')],qs[_0x7a53('0x35')](_0x221cc4[_0x7a53('0x33')][_0x7a53('0x35')]));_0x40f9fb['attributes']=_0x40f9fb[_0x7a53('0x34')][_0x7a53('0x36')]?_0x40f9fb[_0x7a53('0x34')]:_0x5c108b[_0x7a53('0x32')];if(!_0x221cc4[_0x7a53('0x33')][_0x7a53('0x37')](_0x7a53('0x38'))){_0x40f9fb[_0x7a53('0x1e')]=qs[_0x7a53('0x1e')](_0x221cc4[_0x7a53('0x33')][_0x7a53('0x1e')]);_0x40f9fb[_0x7a53('0x1c')]=qs[_0x7a53('0x1c')](_0x221cc4[_0x7a53('0x33')][_0x7a53('0x1c')]);}_0x40f9fb[_0x7a53('0x39')]=qs[_0x7a53('0x3a')](_0x221cc4[_0x7a53('0x33')]['sort']);_0x40f9fb['where']=qs[_0x7a53('0x3b')](_[_0x7a53('0x3c')](_0x221cc4[_0x7a53('0x33')],_0x5c108b[_0x7a53('0x3b')]),_0x91009a);if(_0x221cc4['query'][_0x7a53('0x3d')]){_0x40f9fb[_0x7a53('0x3e')]=_[_0x7a53('0x3f')](_0x40f9fb['where'],{'$or':_[_0x7a53('0x2a')](_0x91009a,function(_0x3ab4d3){if(_0x3ab4d3['type']!==_0x7a53('0x40')){var _0x2ec707={};_0x2ec707[_0x3ab4d3[_0x7a53('0x27')]]={'$like':'%'+_0x221cc4[_0x7a53('0x33')]['filter']+'%'};return _0x2ec707;}})});}_0x40f9fb=_[_0x7a53('0x3f')]({},_0x40f9fb,_0x221cc4['options']);var _0x375289={'where':_0x40f9fb[_0x7a53('0x3e')]};return db['FreshsalesConfiguration'][_0x7a53('0x1f')](_0x375289)['then'](function(_0x4e101e){_0x172894['count']=_0x4e101e;if(_0x221cc4[_0x7a53('0x33')][_0x7a53('0x41')]){_0x40f9fb[_0x7a53('0x42')]=[{'all':!![]}];}return db['FreshsalesConfiguration'][_0x7a53('0x43')](_0x40f9fb);})[_0x7a53('0x44')](function(_0x23c2e5){_0x172894[_0x7a53('0x45')]=_0x23c2e5;return _0x172894;})[_0x7a53('0x44')](respondWithFilteredResult(_0x53aed2,_0x40f9fb))['catch'](handleError(_0x53aed2,null));};exports['show']=function(_0x2d0f00,_0x59cc81){var _0x48c837={'raw':![],'where':{'id':_0x2d0f00[_0x7a53('0x46')]['id']}},_0x1f12bd={};_0x1f12bd[_0x7a53('0x32')]=_[_0x7a53('0x30')](db['FreshsalesConfiguration']['rawAttributes']);_0x1f12bd[_0x7a53('0x33')]=_[_0x7a53('0x30')](_0x2d0f00[_0x7a53('0x33')]);_0x1f12bd[_0x7a53('0x3b')]=_[_0x7a53('0x31')](_0x1f12bd[_0x7a53('0x32')],_0x1f12bd[_0x7a53('0x33')]);_0x48c837[_0x7a53('0x34')]=_['intersection'](_0x1f12bd[_0x7a53('0x32')],qs[_0x7a53('0x35')](_0x2d0f00[_0x7a53('0x33')]['fields']));_0x48c837['attributes']=_0x48c837['attributes'][_0x7a53('0x36')]?_0x48c837[_0x7a53('0x34')]:_0x1f12bd[_0x7a53('0x32')];if(_0x2d0f00[_0x7a53('0x33')][_0x7a53('0x41')]){_0x48c837[_0x7a53('0x42')]=[{'all':!![]}];}_0x48c837=_[_0x7a53('0x3f')]({},_0x48c837,_0x2d0f00['options']);return db[_0x7a53('0x2b')]['find'](_0x48c837)['then'](handleEntityNotFound(_0x59cc81,null))[_0x7a53('0x44')](respondWithResult(_0x59cc81,null))['catch'](handleError(_0x59cc81,null));};exports[_0x7a53('0x47')]=function(_0x4e4307,_0x4dbfcf){return db[_0x7a53('0x2b')][_0x7a53('0x47')](_0x4e4307['body'],{})[_0x7a53('0x44')](respondWithResult(_0x4dbfcf,0xc9))[_0x7a53('0x48')](handleError(_0x4dbfcf,null));};exports[_0x7a53('0x49')]=function(_0x507371,_0x55f0c7){if(_0x507371[_0x7a53('0x4a')]['id']){delete _0x507371['body']['id'];}return db[_0x7a53('0x2b')][_0x7a53('0x4b')]({'where':{'id':_0x507371[_0x7a53('0x46')]['id']}})[_0x7a53('0x44')](handleEntityNotFound(_0x55f0c7,null))[_0x7a53('0x44')](saveUpdates(_0x507371[_0x7a53('0x4a')],null))[_0x7a53('0x44')](respondWithResult(_0x55f0c7,null))[_0x7a53('0x48')](handleError(_0x55f0c7,null));};exports[_0x7a53('0x24')]=function(_0x44bb76,_0x508a5d){return db[_0x7a53('0x2b')][_0x7a53('0x4b')]({'where':{'id':_0x44bb76['params']['id']}})[_0x7a53('0x44')](handleEntityNotFound(_0x508a5d,null))['then'](removeEntity(_0x508a5d,null))['catch'](handleError(_0x508a5d,null));};exports[_0x7a53('0x4c')]=function(_0x5401d6,_0x43de58,_0x6424f8){var _0xb8c64a={};var _0x1849e1={};var _0x357944;var _0x2a6fa0;return db[_0x7a53('0x2b')][_0x7a53('0x4d')]({'where':{'id':_0x5401d6[_0x7a53('0x46')]['id']}})[_0x7a53('0x44')](handleEntityNotFound(_0x43de58,null))[_0x7a53('0x44')](function(_0x140ab2){if(_0x140ab2){_0x357944=_0x140ab2;_0x1849e1[_0x7a53('0x32')]=_[_0x7a53('0x30')](db['FreshsalesField']['rawAttributes']);_0x1849e1[_0x7a53('0x33')]=_['keys'](_0x5401d6[_0x7a53('0x33')]);_0x1849e1['filters']=_[_0x7a53('0x31')](_0x1849e1[_0x7a53('0x32')],_0x1849e1[_0x7a53('0x33')]);_0xb8c64a[_0x7a53('0x34')]=_[_0x7a53('0x31')](_0x1849e1[_0x7a53('0x32')],qs[_0x7a53('0x35')](_0x5401d6['query'][_0x7a53('0x35')]));_0xb8c64a[_0x7a53('0x34')]=_0xb8c64a[_0x7a53('0x34')][_0x7a53('0x36')]?_0xb8c64a[_0x7a53('0x34')]:_0x1849e1[_0x7a53('0x32')];_0xb8c64a[_0x7a53('0x39')]=qs[_0x7a53('0x3a')](_0x5401d6[_0x7a53('0x33')][_0x7a53('0x3a')]);_0xb8c64a['where']=qs[_0x7a53('0x3b')](_[_0x7a53('0x3c')](_0x5401d6['query'],_0x1849e1['filters']));if(_0x5401d6['query'][_0x7a53('0x3d')]){_0xb8c64a[_0x7a53('0x3e')]=_['merge'](_0xb8c64a[_0x7a53('0x3e')],{'$or':_[_0x7a53('0x2a')](_0xb8c64a['attributes'],function(_0x106975){var _0x3057ed={};_0x3057ed[_0x106975]={'$like':'%'+_0x5401d6['query'][_0x7a53('0x3d')]+'%'};return _0x3057ed;})});}_0xb8c64a=_['merge']({},_0xb8c64a,_0x5401d6[_0x7a53('0x4e')]);return _0x357944[_0x7a53('0x4c')](_0xb8c64a);}})['then'](function(_0x1ed064){if(_0x1ed064){_0x2a6fa0=_0x1ed064['length'];if(!_0x5401d6[_0x7a53('0x33')][_0x7a53('0x37')](_0x7a53('0x38'))){_0xb8c64a[_0x7a53('0x1e')]=qs[_0x7a53('0x1e')](_0x5401d6[_0x7a53('0x33')][_0x7a53('0x1e')]);_0xb8c64a['offset']=qs[_0x7a53('0x1c')](_0x5401d6[_0x7a53('0x33')][_0x7a53('0x1c')]);}return _0x357944[_0x7a53('0x4c')](_0xb8c64a);}})[_0x7a53('0x44')](function(_0x3f377c){if(_0x3f377c){return _0x3f377c?{'count':_0x2a6fa0,'rows':_0x3f377c}:null;}})[_0x7a53('0x44')](respondWithResult(_0x43de58,null))['catch'](handleError(_0x43de58,null));};exports['getDescriptions']=function(_0x57b4e3,_0x508223,_0x32b4bd){var _0x2a9a34={};var _0x27ed6={};var _0x226724;var _0xf5c33;return db[_0x7a53('0x2b')]['findOne']({'where':{'id':_0x57b4e3['params']['id']}})['then'](handleEntityNotFound(_0x508223,null))['then'](function(_0x30eb09){if(_0x30eb09){_0x226724=_0x30eb09;_0x27ed6[_0x7a53('0x32')]=_[_0x7a53('0x30')](db['FreshsalesField'][_0x7a53('0x2c')]);_0x27ed6[_0x7a53('0x33')]=_[_0x7a53('0x30')](_0x57b4e3[_0x7a53('0x33')]);_0x27ed6[_0x7a53('0x3b')]=_[_0x7a53('0x31')](_0x27ed6[_0x7a53('0x32')],_0x27ed6['query']);_0x2a9a34[_0x7a53('0x34')]=_[_0x7a53('0x31')](_0x27ed6[_0x7a53('0x32')],qs[_0x7a53('0x35')](_0x57b4e3[_0x7a53('0x33')][_0x7a53('0x35')]));_0x2a9a34[_0x7a53('0x34')]=_0x2a9a34['attributes'][_0x7a53('0x36')]?_0x2a9a34[_0x7a53('0x34')]:_0x27ed6[_0x7a53('0x32')];_0x2a9a34[_0x7a53('0x39')]=qs['sort'](_0x57b4e3['query'][_0x7a53('0x3a')]);_0x2a9a34[_0x7a53('0x3e')]=qs[_0x7a53('0x3b')](_[_0x7a53('0x3c')](_0x57b4e3[_0x7a53('0x33')],_0x27ed6['filters']));if(_0x57b4e3[_0x7a53('0x33')][_0x7a53('0x3d')]){_0x2a9a34[_0x7a53('0x3e')]=_[_0x7a53('0x3f')](_0x2a9a34[_0x7a53('0x3e')],{'$or':_[_0x7a53('0x2a')](_0x2a9a34[_0x7a53('0x34')],function(_0x55d819){var _0x5ce8d5={};_0x5ce8d5[_0x55d819]={'$like':'%'+_0x57b4e3[_0x7a53('0x33')]['filter']+'%'};return _0x5ce8d5;})});}_0x2a9a34=_[_0x7a53('0x3f')]({},_0x2a9a34,_0x57b4e3['options']);return _0x226724[_0x7a53('0x4f')](_0x2a9a34);}})[_0x7a53('0x44')](function(_0x4c4227){if(_0x4c4227){_0xf5c33=_0x4c4227[_0x7a53('0x36')];if(!_0x57b4e3[_0x7a53('0x33')][_0x7a53('0x37')](_0x7a53('0x38'))){_0x2a9a34['limit']=qs[_0x7a53('0x1e')](_0x57b4e3[_0x7a53('0x33')]['limit']);_0x2a9a34[_0x7a53('0x1c')]=qs['offset'](_0x57b4e3[_0x7a53('0x33')][_0x7a53('0x1c')]);}return _0x226724[_0x7a53('0x4f')](_0x2a9a34);}})[_0x7a53('0x44')](function(_0x5e0ad0){if(_0x5e0ad0){return _0x5e0ad0?{'count':_0xf5c33,'rows':_0x5e0ad0}:null;}})[_0x7a53('0x44')](respondWithResult(_0x508223,null))['catch'](handleError(_0x508223,null));};exports[_0x7a53('0x50')]=function(_0x3c0100,_0x21720d,_0x3201ce){var _0x47a797={};var _0x5a71f1={};var _0x1ede30;var _0x5aa253;return db['FreshsalesConfiguration'][_0x7a53('0x4d')]({'where':{'id':_0x3c0100[_0x7a53('0x46')]['id']}})['then'](handleEntityNotFound(_0x21720d,null))['then'](function(_0x51ea97){if(_0x51ea97){_0x1ede30=_0x51ea97;_0x5a71f1['model']=_['keys'](db[_0x7a53('0x51')][_0x7a53('0x2c')]);_0x5a71f1[_0x7a53('0x33')]=_[_0x7a53('0x30')](_0x3c0100[_0x7a53('0x33')]);_0x5a71f1[_0x7a53('0x3b')]=_['intersection'](_0x5a71f1[_0x7a53('0x32')],_0x5a71f1[_0x7a53('0x33')]);_0x47a797['attributes']=_['intersection'](_0x5a71f1[_0x7a53('0x32')],qs[_0x7a53('0x35')](_0x3c0100['query'][_0x7a53('0x35')]));_0x47a797[_0x7a53('0x34')]=_0x47a797[_0x7a53('0x34')][_0x7a53('0x36')]?_0x47a797[_0x7a53('0x34')]:_0x5a71f1[_0x7a53('0x32')];_0x47a797[_0x7a53('0x39')]=qs[_0x7a53('0x3a')](_0x3c0100[_0x7a53('0x33')][_0x7a53('0x3a')]);_0x47a797['where']=qs[_0x7a53('0x3b')](_[_0x7a53('0x3c')](_0x3c0100['query'],_0x5a71f1[_0x7a53('0x3b')]));if(_0x3c0100['query'][_0x7a53('0x3d')]){_0x47a797[_0x7a53('0x3e')]=_[_0x7a53('0x3f')](_0x47a797[_0x7a53('0x3e')],{'$or':_[_0x7a53('0x2a')](_0x47a797['attributes'],function(_0x2da4a0){var _0xfae5b3={};_0xfae5b3[_0x2da4a0]={'$like':'%'+_0x3c0100[_0x7a53('0x33')][_0x7a53('0x3d')]+'%'};return _0xfae5b3;})});}_0x47a797=_[_0x7a53('0x3f')]({},_0x47a797,_0x3c0100[_0x7a53('0x4e')]);return _0x1ede30[_0x7a53('0x50')](_0x47a797);}})[_0x7a53('0x44')](function(_0x2ac93f){if(_0x2ac93f){_0x5aa253=_0x2ac93f[_0x7a53('0x36')];if(!_0x3c0100[_0x7a53('0x33')][_0x7a53('0x37')](_0x7a53('0x38'))){_0x47a797[_0x7a53('0x1e')]=qs[_0x7a53('0x1e')](_0x3c0100[_0x7a53('0x33')]['limit']);_0x47a797['offset']=qs['offset'](_0x3c0100['query'][_0x7a53('0x1c')]);}return _0x1ede30['getFields'](_0x47a797);}})[_0x7a53('0x44')](function(_0x271e9f){if(_0x271e9f){return _0x271e9f?{'count':_0x5aa253,'rows':_0x271e9f}:null;}})['then'](respondWithResult(_0x21720d,null))[_0x7a53('0x48')](handleError(_0x21720d,null));};
\ No newline at end of file
+var _0x6973=['then','destroy','end','error','stack','name','send','map','FreshsalesConfiguration','fieldName','key','query','keys','intersection','model','attributes','fields','hasOwnProperty','order','sort','filters','merge','type','VIRTUAL','filter','options','where','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','getSubjects','findOne','FreshsalesField','length','pick','nolimit','getDescriptions','getFields','eml-format','zip-dir','fast-json-patch','bluebird','util','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update'];(function(_0x5550b3,_0x2d0ee0){var _0x4b8fc4=function(_0x22393a){while(--_0x22393a){_0x5550b3['push'](_0x5550b3['shift']());}};_0x4b8fc4(++_0x2d0ee0);}(_0x6973,0x17a));var _0x3697=function(_0x4b42b3,_0x287970){_0x4b42b3=_0x4b42b3-0x0;var _0x23dc19=_0x6973[_0x4b42b3];return _0x23dc19;};'use strict';var emlformat=require(_0x3697('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3697('0x1'));var jsonpatch=require(_0x3697('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3697('0x3'));var Mustache=require('mustache');var util=require(_0x3697('0x4'));var path=require(_0x3697('0x5'));var sox=require(_0x3697('0x6'));var csv=require(_0x3697('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3697('0x8'));var _=require('lodash');var squel=require(_0x3697('0x9'));var crypto=require('crypto');var jsforce=require(_0x3697('0xa'));var deskjs=require(_0x3697('0xb'));var toCsv=require(_0x3697('0x7'));var querystring=require(_0x3697('0xc'));var Papa=require(_0x3697('0xd'));var Redis=require(_0x3697('0xe'));var authService=require(_0x3697('0xf'));var qs=require(_0x3697('0x10'));var as=require(_0x3697('0x11'));var hardwareService=require(_0x3697('0x12'));var logger=require(_0x3697('0x13'))('api');var utils=require(_0x3697('0x14'));var config=require(_0x3697('0x15'));var licenseUtil=require(_0x3697('0x16'));var db=require(_0x3697('0x17'))['db'];function respondWithStatusCode(_0x3d7e5f,_0x3bd2cd){_0x3bd2cd=_0x3bd2cd||0xcc;return function(_0x31d00f){if(_0x31d00f){return _0x3d7e5f[_0x3697('0x18')](_0x3bd2cd);}return _0x3d7e5f['status'](_0x3bd2cd)['end']();};}function respondWithResult(_0x23eec9,_0x5f586a){_0x5f586a=_0x5f586a||0xc8;return function(_0x4740c1){if(_0x4740c1){return _0x23eec9[_0x3697('0x19')](_0x5f586a)[_0x3697('0x1a')](_0x4740c1);}};}function respondWithFilteredResult(_0x1435ba,_0x4fcce2){return function(_0x52f42c){if(_0x52f42c){var _0x1ee971=typeof _0x4fcce2[_0x3697('0x1b')]===_0x3697('0x1c')&&typeof _0x4fcce2[_0x3697('0x1d')]===_0x3697('0x1c');var _0x3c3c01=_0x52f42c[_0x3697('0x1e')];var _0x33043c=_0x1ee971?0x0:_0x4fcce2[_0x3697('0x1b')];var _0x40d17=_0x1ee971?_0x52f42c[_0x3697('0x1e')]:_0x4fcce2[_0x3697('0x1b')]+_0x4fcce2[_0x3697('0x1d')];var _0x4cb2ad;if(_0x40d17>=_0x3c3c01){_0x40d17=_0x3c3c01;_0x4cb2ad=0xc8;}else{_0x4cb2ad=0xce;}_0x1435ba['status'](_0x4cb2ad);return _0x1435ba[_0x3697('0x1f')](_0x3697('0x20'),_0x33043c+'-'+_0x40d17+'/'+_0x3c3c01)[_0x3697('0x1a')](_0x52f42c);}return null;};}function patchUpdates(_0x3c8419){return function(_0x5cac00){try{jsonpatch[_0x3697('0x21')](_0x5cac00,_0x3c8419,!![]);}catch(_0x31bc5d){return BPromise[_0x3697('0x22')](_0x31bc5d);}return _0x5cac00[_0x3697('0x23')]();};}function saveUpdates(_0x40918a,_0xb75054){return function(_0x7ec302){if(_0x7ec302){return _0x7ec302[_0x3697('0x24')](_0x40918a)[_0x3697('0x25')](function(_0x4c5ab){return _0x4c5ab;});}return null;};}function removeEntity(_0x186dea,_0x3b7088){return function(_0x4793ab){if(_0x4793ab){return _0x4793ab[_0x3697('0x26')]()['then'](function(){_0x186dea['status'](0xcc)[_0x3697('0x27')]();});}};}function handleEntityNotFound(_0xf8558,_0x187697){return function(_0x35ccb8){if(!_0x35ccb8){_0xf8558['sendStatus'](0x194);}return _0x35ccb8;};}function handleError(_0x2ccef1,_0x5f0f51){_0x5f0f51=_0x5f0f51||0x1f4;return function(_0x3b87a1){logger[_0x3697('0x28')](_0x3b87a1[_0x3697('0x29')]);if(_0x3b87a1[_0x3697('0x2a')]){delete _0x3b87a1[_0x3697('0x2a')];}_0x2ccef1['status'](_0x5f0f51)[_0x3697('0x2b')](_0x3b87a1);};}exports['index']=function(_0x5c1ca0,_0x120186){var _0x29177a={},_0xa2eda2={},_0x537b33={'count':0x0,'rows':[]};var _0x1dca9e=_[_0x3697('0x2c')](db[_0x3697('0x2d')]['rawAttributes'],function(_0x4fe88d){return{'name':_0x4fe88d[_0x3697('0x2e')],'type':_0x4fe88d['type'][_0x3697('0x2f')]};});_0xa2eda2['model']=_['map'](_0x1dca9e,_0x3697('0x2a'));_0xa2eda2[_0x3697('0x30')]=_[_0x3697('0x31')](_0x5c1ca0['query']);_0xa2eda2['filters']=_[_0x3697('0x32')](_0xa2eda2[_0x3697('0x33')],_0xa2eda2[_0x3697('0x30')]);_0x29177a[_0x3697('0x34')]=_[_0x3697('0x32')](_0xa2eda2[_0x3697('0x33')],qs[_0x3697('0x35')](_0x5c1ca0[_0x3697('0x30')][_0x3697('0x35')]));_0x29177a[_0x3697('0x34')]=_0x29177a[_0x3697('0x34')]['length']?_0x29177a['attributes']:_0xa2eda2['model'];if(!_0x5c1ca0['query'][_0x3697('0x36')]('nolimit')){_0x29177a[_0x3697('0x1d')]=qs['limit'](_0x5c1ca0[_0x3697('0x30')]['limit']);_0x29177a[_0x3697('0x1b')]=qs[_0x3697('0x1b')](_0x5c1ca0[_0x3697('0x30')][_0x3697('0x1b')]);}_0x29177a[_0x3697('0x37')]=qs['sort'](_0x5c1ca0['query'][_0x3697('0x38')]);_0x29177a['where']=qs[_0x3697('0x39')](_['pick'](_0x5c1ca0[_0x3697('0x30')],_0xa2eda2['filters']),_0x1dca9e);if(_0x5c1ca0[_0x3697('0x30')]['filter']){_0x29177a['where']=_[_0x3697('0x3a')](_0x29177a['where'],{'$or':_['map'](_0x1dca9e,function(_0x2de8e2){if(_0x2de8e2[_0x3697('0x3b')]!==_0x3697('0x3c')){var _0x3ccc6f={};_0x3ccc6f[_0x2de8e2[_0x3697('0x2a')]]={'$like':'%'+_0x5c1ca0[_0x3697('0x30')][_0x3697('0x3d')]+'%'};return _0x3ccc6f;}})});}_0x29177a=_[_0x3697('0x3a')]({},_0x29177a,_0x5c1ca0[_0x3697('0x3e')]);var _0xd19408={'where':_0x29177a[_0x3697('0x3f')]};return db[_0x3697('0x2d')]['count'](_0xd19408)[_0x3697('0x25')](function(_0x278e31){_0x537b33['count']=_0x278e31;if(_0x5c1ca0['query'][_0x3697('0x40')]){_0x29177a[_0x3697('0x41')]=[{'all':!![]}];}return db[_0x3697('0x2d')][_0x3697('0x42')](_0x29177a);})['then'](function(_0x36b3b){_0x537b33[_0x3697('0x43')]=_0x36b3b;return _0x537b33;})[_0x3697('0x25')](respondWithFilteredResult(_0x120186,_0x29177a))[_0x3697('0x44')](handleError(_0x120186,null));};exports[_0x3697('0x45')]=function(_0x20e6a0,_0x2a60cb){var _0x3f07a5={'raw':![],'where':{'id':_0x20e6a0[_0x3697('0x46')]['id']}},_0x3c83e3={};_0x3c83e3[_0x3697('0x33')]=_[_0x3697('0x31')](db[_0x3697('0x2d')][_0x3697('0x47')]);_0x3c83e3[_0x3697('0x30')]=_['keys'](_0x20e6a0[_0x3697('0x30')]);_0x3c83e3[_0x3697('0x39')]=_[_0x3697('0x32')](_0x3c83e3[_0x3697('0x33')],_0x3c83e3[_0x3697('0x30')]);_0x3f07a5[_0x3697('0x34')]=_[_0x3697('0x32')](_0x3c83e3[_0x3697('0x33')],qs[_0x3697('0x35')](_0x20e6a0['query']['fields']));_0x3f07a5[_0x3697('0x34')]=_0x3f07a5['attributes']['length']?_0x3f07a5[_0x3697('0x34')]:_0x3c83e3['model'];if(_0x20e6a0[_0x3697('0x30')][_0x3697('0x40')]){_0x3f07a5[_0x3697('0x41')]=[{'all':!![]}];}_0x3f07a5=_['merge']({},_0x3f07a5,_0x20e6a0[_0x3697('0x3e')]);return db['FreshsalesConfiguration'][_0x3697('0x48')](_0x3f07a5)[_0x3697('0x25')](handleEntityNotFound(_0x2a60cb,null))[_0x3697('0x25')](respondWithResult(_0x2a60cb,null))[_0x3697('0x44')](handleError(_0x2a60cb,null));};exports[_0x3697('0x49')]=function(_0x43234f,_0xea443f){return db['FreshsalesConfiguration']['create'](_0x43234f[_0x3697('0x4a')],{})[_0x3697('0x25')](respondWithResult(_0xea443f,0xc9))[_0x3697('0x44')](handleError(_0xea443f,null));};exports[_0x3697('0x24')]=function(_0x38574b,_0x481c31){if(_0x38574b[_0x3697('0x4a')]['id']){delete _0x38574b[_0x3697('0x4a')]['id'];}return db[_0x3697('0x2d')][_0x3697('0x48')]({'where':{'id':_0x38574b[_0x3697('0x46')]['id']}})['then'](handleEntityNotFound(_0x481c31,null))[_0x3697('0x25')](saveUpdates(_0x38574b[_0x3697('0x4a')],null))[_0x3697('0x25')](respondWithResult(_0x481c31,null))[_0x3697('0x44')](handleError(_0x481c31,null));};exports[_0x3697('0x26')]=function(_0x1c93b6,_0x17ed57){return db[_0x3697('0x2d')][_0x3697('0x48')]({'where':{'id':_0x1c93b6[_0x3697('0x46')]['id']}})['then'](handleEntityNotFound(_0x17ed57,null))['then'](removeEntity(_0x17ed57,null))[_0x3697('0x44')](handleError(_0x17ed57,null));};exports[_0x3697('0x4b')]=function(_0x82cb91,_0x2a4bab,_0x5a2b42){var _0x5ab455={};var _0x425020={};var _0x384991;var _0x10ca31;return db[_0x3697('0x2d')][_0x3697('0x4c')]({'where':{'id':_0x82cb91[_0x3697('0x46')]['id']}})[_0x3697('0x25')](handleEntityNotFound(_0x2a4bab,null))[_0x3697('0x25')](function(_0x1e61d5){if(_0x1e61d5){_0x384991=_0x1e61d5;_0x425020[_0x3697('0x33')]=_['keys'](db[_0x3697('0x4d')]['rawAttributes']);_0x425020[_0x3697('0x30')]=_['keys'](_0x82cb91[_0x3697('0x30')]);_0x425020[_0x3697('0x39')]=_['intersection'](_0x425020['model'],_0x425020[_0x3697('0x30')]);_0x5ab455[_0x3697('0x34')]=_[_0x3697('0x32')](_0x425020['model'],qs[_0x3697('0x35')](_0x82cb91['query']['fields']));_0x5ab455[_0x3697('0x34')]=_0x5ab455[_0x3697('0x34')][_0x3697('0x4e')]?_0x5ab455[_0x3697('0x34')]:_0x425020[_0x3697('0x33')];_0x5ab455[_0x3697('0x37')]=qs[_0x3697('0x38')](_0x82cb91[_0x3697('0x30')][_0x3697('0x38')]);_0x5ab455[_0x3697('0x3f')]=qs[_0x3697('0x39')](_[_0x3697('0x4f')](_0x82cb91[_0x3697('0x30')],_0x425020[_0x3697('0x39')]));if(_0x82cb91[_0x3697('0x30')]['filter']){_0x5ab455['where']=_[_0x3697('0x3a')](_0x5ab455[_0x3697('0x3f')],{'$or':_[_0x3697('0x2c')](_0x5ab455[_0x3697('0x34')],function(_0x18fa51){var _0x290d52={};_0x290d52[_0x18fa51]={'$like':'%'+_0x82cb91[_0x3697('0x30')][_0x3697('0x3d')]+'%'};return _0x290d52;})});}_0x5ab455=_[_0x3697('0x3a')]({},_0x5ab455,_0x82cb91[_0x3697('0x3e')]);return _0x384991[_0x3697('0x4b')](_0x5ab455);}})[_0x3697('0x25')](function(_0x3f54b1){if(_0x3f54b1){_0x10ca31=_0x3f54b1[_0x3697('0x4e')];if(!_0x82cb91['query'][_0x3697('0x36')](_0x3697('0x50'))){_0x5ab455[_0x3697('0x1d')]=qs[_0x3697('0x1d')](_0x82cb91[_0x3697('0x30')][_0x3697('0x1d')]);_0x5ab455[_0x3697('0x1b')]=qs[_0x3697('0x1b')](_0x82cb91[_0x3697('0x30')][_0x3697('0x1b')]);}return _0x384991['getSubjects'](_0x5ab455);}})['then'](function(_0x1a3d16){if(_0x1a3d16){return _0x1a3d16?{'count':_0x10ca31,'rows':_0x1a3d16}:null;}})[_0x3697('0x25')](respondWithResult(_0x2a4bab,null))['catch'](handleError(_0x2a4bab,null));};exports['getDescriptions']=function(_0x4c954a,_0x3d2809,_0x1daf50){var _0x5eb573={};var _0x2bd4cb={};var _0x459177;var _0x3fe754;return db[_0x3697('0x2d')]['findOne']({'where':{'id':_0x4c954a['params']['id']}})[_0x3697('0x25')](handleEntityNotFound(_0x3d2809,null))[_0x3697('0x25')](function(_0x15194b){if(_0x15194b){_0x459177=_0x15194b;_0x2bd4cb[_0x3697('0x33')]=_[_0x3697('0x31')](db[_0x3697('0x4d')][_0x3697('0x47')]);_0x2bd4cb[_0x3697('0x30')]=_[_0x3697('0x31')](_0x4c954a['query']);_0x2bd4cb[_0x3697('0x39')]=_['intersection'](_0x2bd4cb[_0x3697('0x33')],_0x2bd4cb[_0x3697('0x30')]);_0x5eb573[_0x3697('0x34')]=_[_0x3697('0x32')](_0x2bd4cb[_0x3697('0x33')],qs[_0x3697('0x35')](_0x4c954a[_0x3697('0x30')][_0x3697('0x35')]));_0x5eb573[_0x3697('0x34')]=_0x5eb573[_0x3697('0x34')][_0x3697('0x4e')]?_0x5eb573[_0x3697('0x34')]:_0x2bd4cb[_0x3697('0x33')];_0x5eb573[_0x3697('0x37')]=qs[_0x3697('0x38')](_0x4c954a[_0x3697('0x30')][_0x3697('0x38')]);_0x5eb573[_0x3697('0x3f')]=qs[_0x3697('0x39')](_['pick'](_0x4c954a[_0x3697('0x30')],_0x2bd4cb[_0x3697('0x39')]));if(_0x4c954a['query']['filter']){_0x5eb573[_0x3697('0x3f')]=_['merge'](_0x5eb573[_0x3697('0x3f')],{'$or':_[_0x3697('0x2c')](_0x5eb573[_0x3697('0x34')],function(_0x194457){var _0x5068aa={};_0x5068aa[_0x194457]={'$like':'%'+_0x4c954a[_0x3697('0x30')]['filter']+'%'};return _0x5068aa;})});}_0x5eb573=_[_0x3697('0x3a')]({},_0x5eb573,_0x4c954a[_0x3697('0x3e')]);return _0x459177[_0x3697('0x51')](_0x5eb573);}})[_0x3697('0x25')](function(_0x2552ac){if(_0x2552ac){_0x3fe754=_0x2552ac[_0x3697('0x4e')];if(!_0x4c954a[_0x3697('0x30')][_0x3697('0x36')](_0x3697('0x50'))){_0x5eb573['limit']=qs['limit'](_0x4c954a[_0x3697('0x30')][_0x3697('0x1d')]);_0x5eb573[_0x3697('0x1b')]=qs['offset'](_0x4c954a[_0x3697('0x30')][_0x3697('0x1b')]);}return _0x459177[_0x3697('0x51')](_0x5eb573);}})['then'](function(_0x23f5f1){if(_0x23f5f1){return _0x23f5f1?{'count':_0x3fe754,'rows':_0x23f5f1}:null;}})[_0x3697('0x25')](respondWithResult(_0x3d2809,null))[_0x3697('0x44')](handleError(_0x3d2809,null));};exports[_0x3697('0x52')]=function(_0x13f4f8,_0x5cb22a,_0x28ed3c){var _0x319948={};var _0x4a6977={};var _0x598686;var _0x3debbb;return db[_0x3697('0x2d')]['findOne']({'where':{'id':_0x13f4f8[_0x3697('0x46')]['id']}})[_0x3697('0x25')](handleEntityNotFound(_0x5cb22a,null))['then'](function(_0x5e820e){if(_0x5e820e){_0x598686=_0x5e820e;_0x4a6977[_0x3697('0x33')]=_[_0x3697('0x31')](db[_0x3697('0x4d')][_0x3697('0x47')]);_0x4a6977[_0x3697('0x30')]=_[_0x3697('0x31')](_0x13f4f8[_0x3697('0x30')]);_0x4a6977[_0x3697('0x39')]=_[_0x3697('0x32')](_0x4a6977[_0x3697('0x33')],_0x4a6977['query']);_0x319948['attributes']=_[_0x3697('0x32')](_0x4a6977[_0x3697('0x33')],qs[_0x3697('0x35')](_0x13f4f8[_0x3697('0x30')][_0x3697('0x35')]));_0x319948['attributes']=_0x319948['attributes']['length']?_0x319948[_0x3697('0x34')]:_0x4a6977['model'];_0x319948[_0x3697('0x37')]=qs['sort'](_0x13f4f8[_0x3697('0x30')][_0x3697('0x38')]);_0x319948[_0x3697('0x3f')]=qs[_0x3697('0x39')](_[_0x3697('0x4f')](_0x13f4f8[_0x3697('0x30')],_0x4a6977[_0x3697('0x39')]));if(_0x13f4f8[_0x3697('0x30')][_0x3697('0x3d')]){_0x319948[_0x3697('0x3f')]=_[_0x3697('0x3a')](_0x319948[_0x3697('0x3f')],{'$or':_[_0x3697('0x2c')](_0x319948['attributes'],function(_0xa29647){var _0x3a69de={};_0x3a69de[_0xa29647]={'$like':'%'+_0x13f4f8[_0x3697('0x30')][_0x3697('0x3d')]+'%'};return _0x3a69de;})});}_0x319948=_[_0x3697('0x3a')]({},_0x319948,_0x13f4f8[_0x3697('0x3e')]);return _0x598686[_0x3697('0x52')](_0x319948);}})['then'](function(_0x3e9046){if(_0x3e9046){_0x3debbb=_0x3e9046[_0x3697('0x4e')];if(!_0x13f4f8[_0x3697('0x30')][_0x3697('0x36')](_0x3697('0x50'))){_0x319948['limit']=qs[_0x3697('0x1d')](_0x13f4f8[_0x3697('0x30')][_0x3697('0x1d')]);_0x319948[_0x3697('0x1b')]=qs[_0x3697('0x1b')](_0x13f4f8[_0x3697('0x30')][_0x3697('0x1b')]);}return _0x598686[_0x3697('0x52')](_0x319948);}})[_0x3697('0x25')](function(_0xef7adf){if(_0xef7adf){return _0xef7adf?{'count':_0x3debbb,'rows':_0xef7adf}:null;}})[_0x3697('0x25')](respondWithResult(_0x5cb22a,null))[_0x3697('0x44')](handleError(_0x5cb22a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0b7=['int_freshsales_configurations','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intFreshsalesConfiguration.attributes','exports','define'];(function(_0x3941ff,_0x49cd01){var _0x3b635b=function(_0x44a30f){while(--_0x44a30f){_0x3941ff['push'](_0x3941ff['shift']());}};_0x3b635b(++_0x49cd01);}(_0xb0b7,0x69));var _0x7b0b=function(_0x4b505a,_0x1bffc6){_0x4b505a=_0x4b505a-0x0;var _0x4a09f7=_0xb0b7[_0x4b505a];return _0x4a09f7;};'use strict';var _=require(_0x7b0b('0x0'));var util=require(_0x7b0b('0x1'));var logger=require(_0x7b0b('0x2'))(_0x7b0b('0x3'));var moment=require(_0x7b0b('0x4'));var BPromise=require(_0x7b0b('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x7b0b('0x6'));var rimraf=require(_0x7b0b('0x7'));var config=require(_0x7b0b('0x8'));var attributes=require(_0x7b0b('0x9'));module[_0x7b0b('0xa')]=function(_0x4d8fa9,_0x5d96ae){return _0x4d8fa9[_0x7b0b('0xb')]('FreshsalesConfiguration',attributes,{'tableName':_0x7b0b('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x56a2=['../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./intFreshsalesConfiguration.attributes','exports','define','int_freshsales_configurations','lodash','util'];(function(_0x261e29,_0x10fffd){var _0x25ef43=function(_0x21b8e7){while(--_0x21b8e7){_0x261e29['push'](_0x261e29['shift']());}};_0x25ef43(++_0x10fffd);}(_0x56a2,0x10f));var _0x256a=function(_0x3bb5b4,_0x128455){_0x3bb5b4=_0x3bb5b4-0x0;var _0x586c60=_0x56a2[_0x3bb5b4];return _0x586c60;};'use strict';var _=require(_0x256a('0x0'));var util=require(_0x256a('0x1'));var logger=require(_0x256a('0x2'))(_0x256a('0x3'));var moment=require(_0x256a('0x4'));var BPromise=require('bluebird');var rp=require(_0x256a('0x5'));var fs=require('fs');var path=require(_0x256a('0x6'));var rimraf=require(_0x256a('0x7'));var config=require(_0x256a('0x8'));var attributes=require(_0x256a('0x9'));module[_0x256a('0xa')]=function(_0x1bd591,_0x3f5597){return _0x1bd591[_0x256a('0xb')]('FreshsalesConfiguration',attributes,{'tableName':_0x256a('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd69f=['result','catch','lodash','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','error','code','FreshsalesConfiguration,\x20%s,\x20%s','message'];(function(_0x10c9d2,_0x218676){var _0x1fd0b7=function(_0x453c19){while(--_0x453c19){_0x10c9d2['push'](_0x10c9d2['shift']());}};_0x1fd0b7(++_0x218676);}(_0xd69f,0x144));var _0xfd69=function(_0x458dd7,_0x499019){_0x458dd7=_0x458dd7-0x0;var _0x5d8935=_0xd69f[_0x458dd7];return _0x5d8935;};'use strict';var _=require(_0xfd69('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xfd69('0x1'));var rs=require(_0xfd69('0x2'));var fs=require('fs');var Redis=require(_0xfd69('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xfd69('0x4'));var logger=require(_0xfd69('0x5'))(_0xfd69('0x6'));var config=require(_0xfd69('0x7'));var jayson=require(_0xfd69('0x8'));var client=jayson[_0xfd69('0x9')][_0xfd69('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xad2277,_0x758837,_0x6365f3){return new BPromise(function(_0x204408,_0x3bf32b){return client[_0xfd69('0xb')](_0xad2277,_0x6365f3)[_0xfd69('0xc')](function(_0x5355cc){logger[_0xfd69('0xd')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x758837,_0xfd69('0xe'));logger[_0xfd69('0xf')](_0xfd69('0x10'),_0x758837,_0xfd69('0xe'),JSON['stringify'](_0x5355cc));if(_0x5355cc[_0xfd69('0x11')]){if(_0x5355cc[_0xfd69('0x11')][_0xfd69('0x12')]===0x1f4){logger['error'](_0xfd69('0x13'),_0x758837,_0x5355cc['error'][_0xfd69('0x14')]);return _0x3bf32b(_0x5355cc[_0xfd69('0x11')][_0xfd69('0x14')]);}logger[_0xfd69('0x11')](_0xfd69('0x13'),_0x758837,_0x5355cc[_0xfd69('0x11')][_0xfd69('0x14')]);return _0x204408(_0x5355cc[_0xfd69('0x11')][_0xfd69('0x14')]);}else{logger['info'](_0xfd69('0x13'),_0x758837,'request\x20sent');_0x204408(_0x5355cc[_0xfd69('0x15')][_0xfd69('0x14')]);}})[_0xfd69('0x16')](function(_0x242554){logger[_0xfd69('0x11')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x758837,_0x242554);_0x3bf32b(_0x242554);});});}
\ No newline at end of file
+var _0xc20f=['../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','FreshsalesConfiguration,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x500534,_0x3cf687){var _0x15f560=function(_0x2e96bf){while(--_0x2e96bf){_0x500534['push'](_0x500534['shift']());}};_0x15f560(++_0x3cf687);}(_0xc20f,0x1a2));var _0xfc20=function(_0x4d4990,_0x42d2d8){_0x4d4990=_0x4d4990-0x0;var _0x3ab7e1=_0xc20f[_0x4d4990];return _0x3ab7e1;};'use strict';var _=require(_0xfc20('0x0'));var util=require(_0xfc20('0x1'));var moment=require(_0xfc20('0x2'));var BPromise=require(_0xfc20('0x3'));var rs=require(_0xfc20('0x4'));var fs=require('fs');var Redis=require(_0xfc20('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xfc20('0x6'));var logger=require(_0xfc20('0x7'))(_0xfc20('0x8'));var config=require('../../config/environment');var jayson=require(_0xfc20('0x9'));var client=jayson[_0xfc20('0xa')][_0xfc20('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x438d54,_0x10b8b1,_0x47b0d4){return new BPromise(function(_0xffd23e,_0x189d1e){return client[_0xfc20('0xc')](_0x438d54,_0x47b0d4)[_0xfc20('0xd')](function(_0x113fde){logger[_0xfc20('0xe')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x10b8b1,_0xfc20('0xf'));logger[_0xfc20('0x10')](_0xfc20('0x11'),_0x10b8b1,_0xfc20('0xf'),JSON[_0xfc20('0x12')](_0x113fde));if(_0x113fde['error']){if(_0x113fde[_0xfc20('0x13')][_0xfc20('0x14')]===0x1f4){logger[_0xfc20('0x13')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x10b8b1,_0x113fde[_0xfc20('0x13')][_0xfc20('0x15')]);return _0x189d1e(_0x113fde['error'][_0xfc20('0x15')]);}logger[_0xfc20('0x13')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x10b8b1,_0x113fde[_0xfc20('0x13')]['message']);return _0xffd23e(_0x113fde['error'][_0xfc20('0x15')]);}else{logger['info'](_0xfc20('0x16'),_0x10b8b1,_0xfc20('0xf'));_0xffd23e(_0x113fde[_0xfc20('0x17')]['message']);}})[_0xfc20('0x18')](function(_0x315ad5){logger['error'](_0xfc20('0x16'),_0x10b8b1,_0x315ad5);_0x189d1e(_0x315ad5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa25c=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intFreshsalesField.controller','index','/:id','isAuthenticated','show','post','update','delete','util'];(function(_0x536246,_0x37c0ab){var _0x430700=function(_0x17d345){while(--_0x17d345){_0x536246['push'](_0x536246['shift']());}};_0x430700(++_0x37c0ab);}(_0xa25c,0x13f));var _0xca25=function(_0x57c4ff,_0x102e4e){_0x57c4ff=_0x57c4ff-0x0;var _0x21649c=_0xa25c[_0x57c4ff];return _0x21649c;};'use strict';var multer=require('multer');var util=require(_0xca25('0x0'));var path=require(_0xca25('0x1'));var timeout=require(_0xca25('0x2'));var express=require(_0xca25('0x3'));var router=express[_0xca25('0x4')]();var fs_extra=require(_0xca25('0x5'));var auth=require(_0xca25('0x6'));var interaction=require(_0xca25('0x7'));var config=require('../../config/environment');var controller=require(_0xca25('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0xca25('0x9')]);router['get'](_0xca25('0xa'),auth[_0xca25('0xb')](),controller[_0xca25('0xc')]);router[_0xca25('0xd')]('/',auth[_0xca25('0xb')](),controller['create']);router['put'](_0xca25('0xa'),auth['isAuthenticated'](),controller[_0xca25('0xe')]);router[_0xca25('0xf')](_0xca25('0xa'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xb26e=['../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','index','/:id','show','post','put','update','delete','exports','multer','express','Router','../../components/auth/service'];(function(_0x3f753e,_0x3fa961){var _0x32b975=function(_0x3ea1ee){while(--_0x3ea1ee){_0x3f753e['push'](_0x3f753e['shift']());}};_0x32b975(++_0x3fa961);}(_0xb26e,0x11d));var _0xeb26=function(_0x4c825d,_0x10ec2b){_0x4c825d=_0x4c825d-0x0;var _0x43de87=_0xb26e[_0x4c825d];return _0x43de87;};'use strict';var multer=require(_0xeb26('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xeb26('0x1'));var router=express[_0xeb26('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0xeb26('0x3'));var interaction=require(_0xeb26('0x4'));var config=require(_0xeb26('0x5'));var controller=require(_0xeb26('0x6'));router[_0xeb26('0x7')]('/',auth[_0xeb26('0x8')](),controller[_0xeb26('0x9')]);router[_0xeb26('0x7')](_0xeb26('0xa'),auth[_0xeb26('0x8')](),controller[_0xeb26('0xb')]);router[_0xeb26('0xc')]('/',auth[_0xeb26('0x8')](),controller['create']);router[_0xeb26('0xd')]('/:id',auth['isAuthenticated'](),controller[_0xeb26('0xe')]);router[_0xeb26('0xf')]('/:id',auth[_0xeb26('0x8')](),controller['destroy']);module[_0xeb26('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ab5=['ENUM','sequelize','exports','string','variable','STRING'];(function(_0x4aa75a,_0x10c5cd){var _0x4396d7=function(_0x8c851c){while(--_0x8c851c){_0x4aa75a['push'](_0x4aa75a['shift']());}};_0x4396d7(++_0x10c5cd);}(_0x7ab5,0x169));var _0x57ab=function(_0x23f9e2,_0x4de31d){_0x23f9e2=_0x23f9e2-0x0;var _0xe2b2fc=_0x7ab5[_0x23f9e2];return _0xe2b2fc;};'use strict';var Sequelize=require(_0x57ab('0x0'));module[_0x57ab('0x1')]={'type':{'type':Sequelize['ENUM'](_0x57ab('0x2'),_0x57ab('0x3'),'customVariable','keyValue','picklist'),'defaultValue':_0x57ab('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x57ab('0x4')]},'keyType':{'type':Sequelize[_0x57ab('0x5')]('string',_0x57ab('0x3'),'customVariable')},'keyContent':{'type':Sequelize[_0x57ab('0x4')]},'idField':{'type':Sequelize[_0x57ab('0x4')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6362=['string','variable','customVariable','picklist','STRING','BOOLEAN','exports','ENUM'];(function(_0x3a8e71,_0x44ff2f){var _0x3ab65a=function(_0x404701){while(--_0x404701){_0x3a8e71['push'](_0x3a8e71['shift']());}};_0x3ab65a(++_0x44ff2f);}(_0x6362,0x7e));var _0x2636=function(_0x49fa1b,_0x259ce8){_0x49fa1b=_0x49fa1b-0x0;var _0x154649=_0x6362[_0x49fa1b];return _0x154649;};'use strict';var Sequelize=require('sequelize');module[_0x2636('0x0')]={'type':{'type':Sequelize[_0x2636('0x1')](_0x2636('0x2'),_0x2636('0x3'),_0x2636('0x4'),'keyValue',_0x2636('0x5')),'defaultValue':_0x2636('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x2636('0x6')]},'keyType':{'type':Sequelize[_0x2636('0x1')](_0x2636('0x2'),_0x2636('0x3'),_0x2636('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x2636('0x6')]},'customField':{'type':Sequelize[_0x2636('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7219=['key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','options','FreshsalesField','includeAll','include','findAll','rows','catch','show','params','keys','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x7219,0x14c));var _0x9721=function(_0x170455,_0x551bd6){_0x170455=_0x170455-0x0;var _0x4ec92e=_0x7219[_0x170455];return _0x4ec92e;};'use strict';var emlformat=require(_0x9721('0x0'));var rimraf=require(_0x9721('0x1'));var zipdir=require(_0x9721('0x2'));var jsonpatch=require(_0x9721('0x3'));var rp=require('request-promise');var moment=require(_0x9721('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9721('0x5'));var util=require(_0x9721('0x6'));var path=require(_0x9721('0x7'));var sox=require(_0x9721('0x8'));var csv=require(_0x9721('0x9'));var ejs=require(_0x9721('0xa'));var fs=require('fs');var fs_extra=require(_0x9721('0xb'));var _=require(_0x9721('0xc'));var squel=require('squel');var crypto=require(_0x9721('0xd'));var jsforce=require(_0x9721('0xe'));var deskjs=require(_0x9721('0xf'));var toCsv=require(_0x9721('0x9'));var querystring=require(_0x9721('0x10'));var Papa=require(_0x9721('0x11'));var Redis=require(_0x9721('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x9721('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x9721('0x14'))(_0x9721('0x15'));var utils=require(_0x9721('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9721('0x17'))['db'];function respondWithStatusCode(_0x49881d,_0x384e6a){_0x384e6a=_0x384e6a||0xcc;return function(_0x58dc64){if(_0x58dc64){return _0x49881d[_0x9721('0x18')](_0x384e6a);}return _0x49881d[_0x9721('0x19')](_0x384e6a)[_0x9721('0x1a')]();};}function respondWithResult(_0x54b632,_0x7227b7){_0x7227b7=_0x7227b7||0xc8;return function(_0x21f897){if(_0x21f897){return _0x54b632[_0x9721('0x19')](_0x7227b7)[_0x9721('0x1b')](_0x21f897);}};}function respondWithFilteredResult(_0x6990cb,_0x432054){return function(_0x286d44){if(_0x286d44){var _0x303c6b=typeof _0x432054[_0x9721('0x1c')]===_0x9721('0x1d')&&typeof _0x432054['limit']===_0x9721('0x1d');var _0x84f900=_0x286d44[_0x9721('0x1e')];var _0x58092a=_0x303c6b?0x0:_0x432054[_0x9721('0x1c')];var _0xaa0bf5=_0x303c6b?_0x286d44[_0x9721('0x1e')]:_0x432054['offset']+_0x432054[_0x9721('0x1f')];var _0x2b1436;if(_0xaa0bf5>=_0x84f900){_0xaa0bf5=_0x84f900;_0x2b1436=0xc8;}else{_0x2b1436=0xce;}_0x6990cb['status'](_0x2b1436);return _0x6990cb[_0x9721('0x20')](_0x9721('0x21'),_0x58092a+'-'+_0xaa0bf5+'/'+_0x84f900)[_0x9721('0x1b')](_0x286d44);}return null;};}function patchUpdates(_0x291a25){return function(_0x464b77){try{jsonpatch[_0x9721('0x22')](_0x464b77,_0x291a25,!![]);}catch(_0x58d407){return BPromise[_0x9721('0x23')](_0x58d407);}return _0x464b77['save']();};}function saveUpdates(_0xdf23e7,_0x12dcca){return function(_0x393014){if(_0x393014){return _0x393014[_0x9721('0x24')](_0xdf23e7)[_0x9721('0x25')](function(_0xee3442){return _0xee3442;});}return null;};}function removeEntity(_0x53789a,_0x529b50){return function(_0x1e2362){if(_0x1e2362){return _0x1e2362[_0x9721('0x26')]()[_0x9721('0x25')](function(){_0x53789a[_0x9721('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1356d2,_0xad29a5){return function(_0x1818fb){if(!_0x1818fb){_0x1356d2[_0x9721('0x18')](0x194);}return _0x1818fb;};}function handleError(_0xd18475,_0xf6b997){_0xf6b997=_0xf6b997||0x1f4;return function(_0x5dff85){logger[_0x9721('0x27')](_0x5dff85[_0x9721('0x28')]);if(_0x5dff85['name']){delete _0x5dff85[_0x9721('0x29')];}_0xd18475['status'](_0xf6b997)[_0x9721('0x2a')](_0x5dff85);};}exports[_0x9721('0x2b')]=function(_0x490af4,_0x3631fa){var _0xe14437={},_0x3e823d={},_0x2ff5ed={'count':0x0,'rows':[]};var _0x12ac05=_[_0x9721('0x2c')](db['FreshsalesField'][_0x9721('0x2d')],function(_0x1f53bf){return{'name':_0x1f53bf[_0x9721('0x2e')],'type':_0x1f53bf[_0x9721('0x2f')][_0x9721('0x30')]};});_0x3e823d[_0x9721('0x31')]=_['map'](_0x12ac05,_0x9721('0x29'));_0x3e823d[_0x9721('0x32')]=_['keys'](_0x490af4[_0x9721('0x32')]);_0x3e823d[_0x9721('0x33')]=_[_0x9721('0x34')](_0x3e823d[_0x9721('0x31')],_0x3e823d[_0x9721('0x32')]);_0xe14437['attributes']=_[_0x9721('0x34')](_0x3e823d['model'],qs[_0x9721('0x35')](_0x490af4['query']['fields']));_0xe14437['attributes']=_0xe14437[_0x9721('0x36')][_0x9721('0x37')]?_0xe14437['attributes']:_0x3e823d[_0x9721('0x31')];if(!_0x490af4[_0x9721('0x32')][_0x9721('0x38')](_0x9721('0x39'))){_0xe14437[_0x9721('0x1f')]=qs[_0x9721('0x1f')](_0x490af4[_0x9721('0x32')][_0x9721('0x1f')]);_0xe14437[_0x9721('0x1c')]=qs[_0x9721('0x1c')](_0x490af4[_0x9721('0x32')]['offset']);}_0xe14437[_0x9721('0x3a')]=qs[_0x9721('0x3b')](_0x490af4[_0x9721('0x32')][_0x9721('0x3b')]);_0xe14437['where']=qs['filters'](_[_0x9721('0x3c')](_0x490af4[_0x9721('0x32')],_0x3e823d[_0x9721('0x33')]),_0x12ac05);if(_0x490af4[_0x9721('0x32')][_0x9721('0x3d')]){_0xe14437[_0x9721('0x3e')]=_['merge'](_0xe14437[_0x9721('0x3e')],{'$or':_[_0x9721('0x2c')](_0x12ac05,function(_0x2f96d3){if(_0x2f96d3[_0x9721('0x2f')]!=='VIRTUAL'){var _0x3baae7={};_0x3baae7[_0x2f96d3[_0x9721('0x29')]]={'$like':'%'+_0x490af4[_0x9721('0x32')][_0x9721('0x3d')]+'%'};return _0x3baae7;}})});}_0xe14437=_['merge']({},_0xe14437,_0x490af4[_0x9721('0x3f')]);var _0x2b02a3={'where':_0xe14437[_0x9721('0x3e')]};return db[_0x9721('0x40')][_0x9721('0x1e')](_0x2b02a3)[_0x9721('0x25')](function(_0x2289f3){_0x2ff5ed[_0x9721('0x1e')]=_0x2289f3;if(_0x490af4['query'][_0x9721('0x41')]){_0xe14437[_0x9721('0x42')]=[{'all':!![]}];}return db[_0x9721('0x40')][_0x9721('0x43')](_0xe14437);})[_0x9721('0x25')](function(_0x1c8d52){_0x2ff5ed[_0x9721('0x44')]=_0x1c8d52;return _0x2ff5ed;})[_0x9721('0x25')](respondWithFilteredResult(_0x3631fa,_0xe14437))[_0x9721('0x45')](handleError(_0x3631fa,null));};exports[_0x9721('0x46')]=function(_0x49247e,_0x5e9dd8){var _0x4e5f28={'raw':!![],'where':{'id':_0x49247e[_0x9721('0x47')]['id']}},_0x1d45c8={};_0x1d45c8[_0x9721('0x31')]=_[_0x9721('0x48')](db[_0x9721('0x40')][_0x9721('0x2d')]);_0x1d45c8[_0x9721('0x32')]=_[_0x9721('0x48')](_0x49247e[_0x9721('0x32')]);_0x1d45c8[_0x9721('0x33')]=_[_0x9721('0x34')](_0x1d45c8['model'],_0x1d45c8[_0x9721('0x32')]);_0x4e5f28[_0x9721('0x36')]=_[_0x9721('0x34')](_0x1d45c8['model'],qs['fields'](_0x49247e['query'][_0x9721('0x35')]));_0x4e5f28[_0x9721('0x36')]=_0x4e5f28['attributes'][_0x9721('0x37')]?_0x4e5f28[_0x9721('0x36')]:_0x1d45c8['model'];if(_0x49247e[_0x9721('0x32')]['includeAll']){_0x4e5f28[_0x9721('0x42')]=[{'all':!![]}];}_0x4e5f28=_['merge']({},_0x4e5f28,_0x49247e[_0x9721('0x3f')]);return db[_0x9721('0x40')]['find'](_0x4e5f28)[_0x9721('0x25')](handleEntityNotFound(_0x5e9dd8,null))[_0x9721('0x25')](respondWithResult(_0x5e9dd8,null))[_0x9721('0x45')](handleError(_0x5e9dd8,null));};exports[_0x9721('0x49')]=function(_0x48b42e,_0x57faca){return db['FreshsalesField']['create'](_0x48b42e[_0x9721('0x4a')],{})[_0x9721('0x25')](respondWithResult(_0x57faca,0xc9))[_0x9721('0x45')](handleError(_0x57faca,null));};exports[_0x9721('0x24')]=function(_0x46d89d,_0x412470){if(_0x46d89d[_0x9721('0x4a')]['id']){delete _0x46d89d[_0x9721('0x4a')]['id'];}return db['FreshsalesField']['find']({'where':{'id':_0x46d89d[_0x9721('0x47')]['id']}})['then'](handleEntityNotFound(_0x412470,null))[_0x9721('0x25')](saveUpdates(_0x46d89d['body'],null))[_0x9721('0x25')](respondWithResult(_0x412470,null))[_0x9721('0x45')](handleError(_0x412470,null));};exports[_0x9721('0x26')]=function(_0x469f3d,_0x329135){return db[_0x9721('0x40')][_0x9721('0x4b')]({'where':{'id':_0x469f3d[_0x9721('0x47')]['id']}})[_0x9721('0x25')](handleEntityNotFound(_0x329135,null))[_0x9721('0x25')](removeEntity(_0x329135,null))['catch'](handleError(_0x329135,null));};
\ No newline at end of file
+var _0xf986=['includeAll','include','findAll','catch','find','create','body','params','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','save','update','then','error','stack','name','index','FreshsalesField','rawAttributes','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options'];(function(_0x2c0ff7,_0x5dd45e){var _0x57742=function(_0x5562ce){while(--_0x5562ce){_0x2c0ff7['push'](_0x2c0ff7['shift']());}};_0x57742(++_0x5dd45e);}(_0xf986,0x12d));var _0x6f98=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xf986[_0xa464c9];return _0x3d73c4;};'use strict';var emlformat=require(_0x6f98('0x0'));var rimraf=require(_0x6f98('0x1'));var zipdir=require(_0x6f98('0x2'));var jsonpatch=require(_0x6f98('0x3'));var rp=require(_0x6f98('0x4'));var moment=require('moment');var BPromise=require(_0x6f98('0x5'));var Mustache=require(_0x6f98('0x6'));var util=require(_0x6f98('0x7'));var path=require(_0x6f98('0x8'));var sox=require(_0x6f98('0x9'));var csv=require(_0x6f98('0xa'));var ejs=require(_0x6f98('0xb'));var fs=require('fs');var fs_extra=require(_0x6f98('0xc'));var _=require(_0x6f98('0xd'));var squel=require(_0x6f98('0xe'));var crypto=require(_0x6f98('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x6f98('0xa'));var querystring=require(_0x6f98('0x10'));var Papa=require(_0x6f98('0x11'));var Redis=require(_0x6f98('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x6f98('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x6f98('0x14'))('api');var utils=require(_0x6f98('0x15'));var config=require(_0x6f98('0x16'));var licenseUtil=require(_0x6f98('0x17'));var db=require(_0x6f98('0x18'))['db'];function respondWithStatusCode(_0x5cc2ca,_0x4a40c1){_0x4a40c1=_0x4a40c1||0xcc;return function(_0x3f97a6){if(_0x3f97a6){return _0x5cc2ca['sendStatus'](_0x4a40c1);}return _0x5cc2ca[_0x6f98('0x19')](_0x4a40c1)[_0x6f98('0x1a')]();};}function respondWithResult(_0x3ab784,_0x2dd5fc){_0x2dd5fc=_0x2dd5fc||0xc8;return function(_0x582736){if(_0x582736){return _0x3ab784[_0x6f98('0x19')](_0x2dd5fc)[_0x6f98('0x1b')](_0x582736);}};}function respondWithFilteredResult(_0x10f4b4,_0xba2f9d){return function(_0x5961d6){if(_0x5961d6){var _0x1c91c3=typeof _0xba2f9d[_0x6f98('0x1c')]===_0x6f98('0x1d')&&typeof _0xba2f9d[_0x6f98('0x1e')]===_0x6f98('0x1d');var _0x356f37=_0x5961d6[_0x6f98('0x1f')];var _0x1092b1=_0x1c91c3?0x0:_0xba2f9d[_0x6f98('0x1c')];var _0x2675e0=_0x1c91c3?_0x5961d6['count']:_0xba2f9d['offset']+_0xba2f9d[_0x6f98('0x1e')];var _0x5650ee;if(_0x2675e0>=_0x356f37){_0x2675e0=_0x356f37;_0x5650ee=0xc8;}else{_0x5650ee=0xce;}_0x10f4b4[_0x6f98('0x19')](_0x5650ee);return _0x10f4b4[_0x6f98('0x20')]('Content-Range',_0x1092b1+'-'+_0x2675e0+'/'+_0x356f37)[_0x6f98('0x1b')](_0x5961d6);}return null;};}function patchUpdates(_0xb8028e){return function(_0x120994){try{jsonpatch[_0x6f98('0x21')](_0x120994,_0xb8028e,!![]);}catch(_0xa05cdf){return BPromise['reject'](_0xa05cdf);}return _0x120994[_0x6f98('0x22')]();};}function saveUpdates(_0xee869b,_0x46c391){return function(_0x838261){if(_0x838261){return _0x838261[_0x6f98('0x23')](_0xee869b)[_0x6f98('0x24')](function(_0x5095c9){return _0x5095c9;});}return null;};}function removeEntity(_0x2ed0d4,_0x4d1385){return function(_0x192ac5){if(_0x192ac5){return _0x192ac5['destroy']()['then'](function(){_0x2ed0d4['status'](0xcc)[_0x6f98('0x1a')]();});}};}function handleEntityNotFound(_0x2a8260,_0x25dfe1){return function(_0xc29687){if(!_0xc29687){_0x2a8260['sendStatus'](0x194);}return _0xc29687;};}function handleError(_0x10d1c5,_0x4143c9){_0x4143c9=_0x4143c9||0x1f4;return function(_0x3ae180){logger[_0x6f98('0x25')](_0x3ae180[_0x6f98('0x26')]);if(_0x3ae180[_0x6f98('0x27')]){delete _0x3ae180['name'];}_0x10d1c5['status'](_0x4143c9)['send'](_0x3ae180);};}exports[_0x6f98('0x28')]=function(_0x38cdbf,_0x5ecced){var _0x4e627b={},_0x3eef6b={},_0x4a1c85={'count':0x0,'rows':[]};var _0x52b4ce=_['map'](db[_0x6f98('0x29')][_0x6f98('0x2a')],function(_0x32ae0e){return{'name':_0x32ae0e['fieldName'],'type':_0x32ae0e[_0x6f98('0x2b')][_0x6f98('0x2c')]};});_0x3eef6b[_0x6f98('0x2d')]=_[_0x6f98('0x2e')](_0x52b4ce,'name');_0x3eef6b[_0x6f98('0x2f')]=_[_0x6f98('0x30')](_0x38cdbf['query']);_0x3eef6b[_0x6f98('0x31')]=_[_0x6f98('0x32')](_0x3eef6b[_0x6f98('0x2d')],_0x3eef6b[_0x6f98('0x2f')]);_0x4e627b['attributes']=_[_0x6f98('0x32')](_0x3eef6b[_0x6f98('0x2d')],qs[_0x6f98('0x33')](_0x38cdbf['query'][_0x6f98('0x33')]));_0x4e627b[_0x6f98('0x34')]=_0x4e627b[_0x6f98('0x34')][_0x6f98('0x35')]?_0x4e627b['attributes']:_0x3eef6b['model'];if(!_0x38cdbf[_0x6f98('0x2f')][_0x6f98('0x36')](_0x6f98('0x37'))){_0x4e627b['limit']=qs[_0x6f98('0x1e')](_0x38cdbf[_0x6f98('0x2f')]['limit']);_0x4e627b[_0x6f98('0x1c')]=qs[_0x6f98('0x1c')](_0x38cdbf[_0x6f98('0x2f')][_0x6f98('0x1c')]);}_0x4e627b[_0x6f98('0x38')]=qs['sort'](_0x38cdbf[_0x6f98('0x2f')][_0x6f98('0x39')]);_0x4e627b[_0x6f98('0x3a')]=qs[_0x6f98('0x31')](_[_0x6f98('0x3b')](_0x38cdbf[_0x6f98('0x2f')],_0x3eef6b['filters']),_0x52b4ce);if(_0x38cdbf[_0x6f98('0x2f')]['filter']){_0x4e627b[_0x6f98('0x3a')]=_[_0x6f98('0x3c')](_0x4e627b[_0x6f98('0x3a')],{'$or':_[_0x6f98('0x2e')](_0x52b4ce,function(_0x5a3f43){if(_0x5a3f43[_0x6f98('0x2b')]!==_0x6f98('0x3d')){var _0x21f9a1={};_0x21f9a1[_0x5a3f43[_0x6f98('0x27')]]={'$like':'%'+_0x38cdbf['query'][_0x6f98('0x3e')]+'%'};return _0x21f9a1;}})});}_0x4e627b=_[_0x6f98('0x3c')]({},_0x4e627b,_0x38cdbf[_0x6f98('0x3f')]);var _0x570f6d={'where':_0x4e627b['where']};return db[_0x6f98('0x29')]['count'](_0x570f6d)[_0x6f98('0x24')](function(_0x18176f){_0x4a1c85['count']=_0x18176f;if(_0x38cdbf[_0x6f98('0x2f')][_0x6f98('0x40')]){_0x4e627b[_0x6f98('0x41')]=[{'all':!![]}];}return db[_0x6f98('0x29')][_0x6f98('0x42')](_0x4e627b);})['then'](function(_0x743747){_0x4a1c85['rows']=_0x743747;return _0x4a1c85;})[_0x6f98('0x24')](respondWithFilteredResult(_0x5ecced,_0x4e627b))[_0x6f98('0x43')](handleError(_0x5ecced,null));};exports['show']=function(_0x15fc15,_0x5a1370){var _0x4f0a96={'raw':!![],'where':{'id':_0x15fc15['params']['id']}},_0x5edf3c={};_0x5edf3c['model']=_['keys'](db['FreshsalesField'][_0x6f98('0x2a')]);_0x5edf3c['query']=_[_0x6f98('0x30')](_0x15fc15['query']);_0x5edf3c['filters']=_['intersection'](_0x5edf3c[_0x6f98('0x2d')],_0x5edf3c[_0x6f98('0x2f')]);_0x4f0a96[_0x6f98('0x34')]=_[_0x6f98('0x32')](_0x5edf3c[_0x6f98('0x2d')],qs[_0x6f98('0x33')](_0x15fc15['query']['fields']));_0x4f0a96[_0x6f98('0x34')]=_0x4f0a96[_0x6f98('0x34')]['length']?_0x4f0a96[_0x6f98('0x34')]:_0x5edf3c['model'];if(_0x15fc15['query'][_0x6f98('0x40')]){_0x4f0a96[_0x6f98('0x41')]=[{'all':!![]}];}_0x4f0a96=_['merge']({},_0x4f0a96,_0x15fc15[_0x6f98('0x3f')]);return db[_0x6f98('0x29')][_0x6f98('0x44')](_0x4f0a96)[_0x6f98('0x24')](handleEntityNotFound(_0x5a1370,null))[_0x6f98('0x24')](respondWithResult(_0x5a1370,null))[_0x6f98('0x43')](handleError(_0x5a1370,null));};exports[_0x6f98('0x45')]=function(_0x2c13b7,_0x7e316e){return db[_0x6f98('0x29')][_0x6f98('0x45')](_0x2c13b7[_0x6f98('0x46')],{})['then'](respondWithResult(_0x7e316e,0xc9))[_0x6f98('0x43')](handleError(_0x7e316e,null));};exports['update']=function(_0x267a7c,_0x23e35d){if(_0x267a7c[_0x6f98('0x46')]['id']){delete _0x267a7c['body']['id'];}return db[_0x6f98('0x29')][_0x6f98('0x44')]({'where':{'id':_0x267a7c[_0x6f98('0x47')]['id']}})[_0x6f98('0x24')](handleEntityNotFound(_0x23e35d,null))['then'](saveUpdates(_0x267a7c[_0x6f98('0x46')],null))[_0x6f98('0x24')](respondWithResult(_0x23e35d,null))[_0x6f98('0x43')](handleError(_0x23e35d,null));};exports[_0x6f98('0x48')]=function(_0x255183,_0x44fee5){return db[_0x6f98('0x29')][_0x6f98('0x44')]({'where':{'id':_0x255183[_0x6f98('0x47')]['id']}})['then'](handleEntityNotFound(_0x44fee5,null))[_0x6f98('0x24')](removeEntity(_0x44fee5,null))[_0x6f98('0x43')](handleError(_0x44fee5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab54=['FieldId','util','../../config/logger','api','moment','bluebird','path','exports','define','int_freshsales_fields','freshsales_unique_index','idField'];(function(_0x4fe6b9,_0x2c2fdc){var _0x56c7b7=function(_0x43f674){while(--_0x43f674){_0x4fe6b9['push'](_0x4fe6b9['shift']());}};_0x56c7b7(++_0x2c2fdc);}(_0xab54,0x115));var _0x4ab5=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xab54[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var util=require(_0x4ab5('0x0'));var logger=require(_0x4ab5('0x1'))(_0x4ab5('0x2'));var moment=require(_0x4ab5('0x3'));var BPromise=require(_0x4ab5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4ab5('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./intFreshsalesField.attributes');module[_0x4ab5('0x6')]=function(_0x2a1a6a,_0x5f1b80){return _0x2a1a6a[_0x4ab5('0x7')]('FreshsalesField',attributes,{'tableName':_0x4ab5('0x8'),'paranoid':![],'indexes':[{'name':_0x4ab5('0x9'),'fields':[_0x4ab5('0xa'),_0x4ab5('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xbee0=['idField','FieldId','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','define','FreshsalesField','freshsales_unique_index'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0xbee0,0x147));var _0x0bee=function(_0x4f5fb9,_0x59bcff){_0x4f5fb9=_0x4f5fb9-0x0;var _0x2450b6=_0xbee0[_0x4f5fb9];return _0x2450b6;};'use strict';var _=require('lodash');var util=require(_0x0bee('0x0'));var logger=require(_0x0bee('0x1'))(_0x0bee('0x2'));var moment=require(_0x0bee('0x3'));var BPromise=require(_0x0bee('0x4'));var rp=require(_0x0bee('0x5'));var fs=require('fs');var path=require(_0x0bee('0x6'));var rimraf=require(_0x0bee('0x7'));var config=require('../../config/environment');var attributes=require('./intFreshsalesField.attributes');module['exports']=function(_0xd0c8f,_0xa3a091){return _0xd0c8f[_0x0bee('0x8')](_0x0bee('0x9'),attributes,{'tableName':'int_freshsales_fields','paranoid':![],'indexes':[{'name':_0x0bee('0xa'),'fields':[_0x0bee('0xb'),_0x0bee('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafc4=['error','code','message','request\x20sent','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','jayson/promise','client','http','request','then','info','FreshsalesField,\x20%s,\x20%s','FreshsalesField,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x3a40bb,_0x4cfca4){var _0x11ad2f=function(_0x561102){while(--_0x561102){_0x3a40bb['push'](_0x3a40bb['shift']());}};_0x11ad2f(++_0x4cfca4);}(_0xafc4,0x69));var _0x4afc=function(_0x4a88f8,_0x4a8742){_0x4a88f8=_0x4a88f8-0x0;var _0x2fc63c=_0xafc4[_0x4a88f8];return _0x2fc63c;};'use strict';var _=require(_0x4afc('0x0'));var util=require('util');var moment=require(_0x4afc('0x1'));var BPromise=require('bluebird');var rs=require(_0x4afc('0x2'));var fs=require('fs');var Redis=require(_0x4afc('0x3'));var db=require(_0x4afc('0x4'))['db'];var utils=require(_0x4afc('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x4afc('0x6'));var client=jayson[_0x4afc('0x7')][_0x4afc('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1bb281,_0xc828d9,_0xaf053d){return new BPromise(function(_0x5e1e29,_0x31e165){return client[_0x4afc('0x9')](_0x1bb281,_0xaf053d)[_0x4afc('0xa')](function(_0x1e6bf5){logger[_0x4afc('0xb')](_0x4afc('0xc'),_0xc828d9,'request\x20sent');logger['debug'](_0x4afc('0xd'),_0xc828d9,'request\x20sent',JSON[_0x4afc('0xe')](_0x1e6bf5));if(_0x1e6bf5[_0x4afc('0xf')]){if(_0x1e6bf5['error'][_0x4afc('0x10')]===0x1f4){logger[_0x4afc('0xf')](_0x4afc('0xc'),_0xc828d9,_0x1e6bf5[_0x4afc('0xf')][_0x4afc('0x11')]);return _0x31e165(_0x1e6bf5[_0x4afc('0xf')][_0x4afc('0x11')]);}logger[_0x4afc('0xf')]('FreshsalesField,\x20%s,\x20%s',_0xc828d9,_0x1e6bf5[_0x4afc('0xf')][_0x4afc('0x11')]);return _0x5e1e29(_0x1e6bf5[_0x4afc('0xf')][_0x4afc('0x11')]);}else{logger['info']('FreshsalesField,\x20%s,\x20%s',_0xc828d9,_0x4afc('0x12'));_0x5e1e29(_0x1e6bf5['result'][_0x4afc('0x11')]);}})[_0x4afc('0x13')](function(_0x2b928b){logger[_0x4afc('0xf')](_0x4afc('0xc'),_0xc828d9,_0x2b928b);_0x31e165(_0x2b928b);});});}
\ No newline at end of file
+var _0x814b=['info','FreshsalesField,\x20%s,\x20%s','request\x20sent','debug','FreshsalesField,\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(_0x4bfac3,_0x58324d){var _0x15f0f2=function(_0xf0c511){while(--_0xf0c511){_0x4bfac3['push'](_0x4bfac3['shift']());}};_0x15f0f2(++_0x58324d);}(_0x814b,0x1a2));var _0xb814=function(_0x6148ee,_0x4d2fca){_0x6148ee=_0x6148ee-0x0;var _0x5afc74=_0x814b[_0x6148ee];return _0x5afc74;};'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')]('FreshsalesField,\x20%s,\x20%s',_0x2e6272,_0x21b73f);_0x2913a6(_0x21b73f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x2b70b4,_0x44531d){var _0xbc5ce4=function(_0x1e230a){while(--_0x1e230a){_0x2b70b4['push'](_0x2b70b4['shift']());}};_0xbc5ce4(++_0x44531d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x12d033,_0x25fa2f){_0x12d033=_0x12d033-0x0;var _0x3b4e80=_0xa9e0[_0x12d033];return _0x3b4e80;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
+var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSalesforceAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x5cb3ab,_0x3dde3e){var _0x21336e=function(_0x1d606b){while(--_0x1d606b){_0x5cb3ab['push'](_0x5cb3ab['shift']());}};_0x21336e(++_0x3dde3e);}(_0x9957,0x93));var _0x7995=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0x9957[_0x4cf98e];return _0x1623ac;};'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 fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21ab=['STRING','username','ENUM','integrationTab','exports'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x21ab,0x16c));var _0xb21a=function(_0x43b5a7,_0xf5e3d6){_0x43b5a7=_0x43b5a7-0x0;var _0x5461fe=_0x21ab[_0x43b5a7];return _0x5461fe;};'use strict';var Sequelize=require('sequelize');module[_0xb21a('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xb21a('0x1')]},'username':{'type':Sequelize[_0xb21a('0x1')],'unique':_0xb21a('0x2')},'remoteUri':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0xb21a('0x1')]},'clientId':{'type':Sequelize[_0xb21a('0x1')]},'clientSecret':{'type':Sequelize[_0xb21a('0x1')]},'securityToken':{'type':Sequelize[_0xb21a('0x1')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xb21a('0x3')](_0xb21a('0x4'),'newTab'),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0x32c3=['username','ENUM','integrationTab','newTab','sequelize','exports','STRING'];(function(_0x52ea08,_0x15d935){var _0x28d546=function(_0x4a3aa7){while(--_0x4a3aa7){_0x52ea08['push'](_0x52ea08['shift']());}};_0x28d546(++_0x15d935);}(_0x32c3,0x1a8));var _0x332c=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x32c3[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x332c('0x0'));module[_0x332c('0x1')]={'name':{'type':Sequelize[_0x332c('0x2')]},'description':{'type':Sequelize[_0x332c('0x2')]},'username':{'type':Sequelize[_0x332c('0x2')],'unique':_0x332c('0x3')},'remoteUri':{'type':Sequelize[_0x332c('0x2')]},'password':{'type':Sequelize[_0x332c('0x2')]},'clientId':{'type':Sequelize[_0x332c('0x2')]},'clientSecret':{'type':Sequelize[_0x332c('0x2')]},'securityToken':{'type':Sequelize[_0x332c('0x2')]},'serverUrl':{'type':Sequelize[_0x332c('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x332c('0x4')](_0x332c('0x5'),_0x332c('0x6')),'defaultValue':'integrationTab'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x587e=['getDescriptions','SalesforceField','getFields','remoteUri','clientId','clientSecret','password','securityToken','slice','substring','lastIndexOf','Connection','login','username','concat','isNil','ticketType','sobject','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','int','picklist','textarea','phone','remove','includes','type','label','custom','picklistValues','value','boolean','True','true','False','false','error','getFields,\x20%s,\x20%s,\x20%s','stringify','test','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','sendStatus','name','send','index','SalesforceAccount','rawAttributes','keys','query','filters','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','filter','map','VIRTUAL','merge','includeAll','findAll','show','params','intersection','include','options','find','catch','create','body','getConfigurations','SalesforceConfiguration','order','pick','findOne','Subjects','getSubjects','channel','Descriptions'];(function(_0xce4206,_0xda4759){var _0xa7ff45=function(_0x340844){while(--_0x340844){_0xce4206['push'](_0xce4206['shift']());}};_0xa7ff45(++_0xda4759);}(_0x587e,0x1aa));var _0xe587=function(_0x33f4bf,_0x47e924){_0x33f4bf=_0x33f4bf-0x0;var _0x828f1f=_0x587e[_0x33f4bf];return _0x828f1f;};'use strict';var emlformat=require(_0xe587('0x0'));var rimraf=require(_0xe587('0x1'));var zipdir=require(_0xe587('0x2'));var jsonpatch=require(_0xe587('0x3'));var rp=require(_0xe587('0x4'));var moment=require(_0xe587('0x5'));var BPromise=require(_0xe587('0x6'));var Mustache=require(_0xe587('0x7'));var util=require(_0xe587('0x8'));var path=require(_0xe587('0x9'));var sox=require(_0xe587('0xa'));var csv=require(_0xe587('0xb'));var ejs=require(_0xe587('0xc'));var fs=require('fs');var fs_extra=require(_0xe587('0xd'));var _=require('lodash');var squel=require(_0xe587('0xe'));var crypto=require(_0xe587('0xf'));var jsforce=require(_0xe587('0x10'));var deskjs=require(_0xe587('0x11'));var toCsv=require(_0xe587('0xb'));var querystring=require(_0xe587('0x12'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe587('0x13'));var qs=require(_0xe587('0x14'));var as=require(_0xe587('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xe587('0x16'));var utils=require('../../config/utils');var config=require(_0xe587('0x17'));var licenseUtil=require(_0xe587('0x18'));var db=require(_0xe587('0x19'))['db'];var integrations=require(_0xe587('0x1a'));function respondWithStatusCode(_0x1ebe9d,_0x29d16){_0x29d16=_0x29d16||0xcc;return function(_0x16b43e){if(_0x16b43e){return _0x1ebe9d['sendStatus'](_0x29d16);}return _0x1ebe9d[_0xe587('0x1b')](_0x29d16)[_0xe587('0x1c')]();};}function respondWithResult(_0x489ce9,_0x123411){_0x123411=_0x123411||0xc8;return function(_0x30c27e){if(_0x30c27e){return _0x489ce9[_0xe587('0x1b')](_0x123411)[_0xe587('0x1d')](_0x30c27e);}};}function respondWithFilteredResult(_0x8520a0,_0x56a352){return function(_0xfe3e54){if(_0xfe3e54){var _0x1a3505=typeof _0x56a352[_0xe587('0x1e')]===_0xe587('0x1f')&&typeof _0x56a352[_0xe587('0x20')]===_0xe587('0x1f');var _0x4d9553=_0xfe3e54[_0xe587('0x21')];var _0x897cfb=_0x1a3505?0x0:_0x56a352[_0xe587('0x1e')];var _0xcacbf6=_0x1a3505?_0xfe3e54['count']:_0x56a352[_0xe587('0x1e')]+_0x56a352[_0xe587('0x20')];var _0x301b32;if(_0xcacbf6>=_0x4d9553){_0xcacbf6=_0x4d9553;_0x301b32=0xc8;}else{_0x301b32=0xce;}_0x8520a0[_0xe587('0x1b')](_0x301b32);return _0x8520a0[_0xe587('0x22')](_0xe587('0x23'),_0x897cfb+'-'+_0xcacbf6+'/'+_0x4d9553)[_0xe587('0x1d')](_0xfe3e54);}return null;};}function patchUpdates(_0x131c8e){return function(_0x43cbd1){try{jsonpatch[_0xe587('0x24')](_0x43cbd1,_0x131c8e,!![]);}catch(_0x1d06e5){return BPromise['reject'](_0x1d06e5);}return _0x43cbd1[_0xe587('0x25')]();};}function saveUpdates(_0x3b178a,_0x471dac){return function(_0x1b6afa){if(_0x1b6afa){return _0x1b6afa[_0xe587('0x26')](_0x3b178a)[_0xe587('0x27')](function(_0x4a6328){return _0x4a6328;});}return null;};}function removeEntity(_0x187be8,_0x38035c){return function(_0x24da85){if(_0x24da85){return _0x24da85[_0xe587('0x28')]()[_0xe587('0x27')](function(){_0x187be8[_0xe587('0x1b')](0xcc)[_0xe587('0x1c')]();});}};}function handleEntityNotFound(_0x4a3964,_0x9543c8){return function(_0x2042ee){if(!_0x2042ee){_0x4a3964[_0xe587('0x29')](0x194);}return _0x2042ee;};}function handleError(_0xeca1cc,_0x531ebc){_0x531ebc=_0x531ebc||0x1f4;return function(_0x1a345d){logger['error'](_0x1a345d['stack']);if(_0x1a345d[_0xe587('0x2a')]){delete _0x1a345d[_0xe587('0x2a')];}_0xeca1cc[_0xe587('0x1b')](_0x531ebc)[_0xe587('0x2b')](_0x1a345d);};}exports[_0xe587('0x2c')]=function(_0x107143,_0x896b92){var _0x4481c2={},_0x5c70a4={},_0x3f16a1={'count':0x0,'rows':[]};var _0x3dd7a7=_['map'](db[_0xe587('0x2d')][_0xe587('0x2e')],function(_0x496d1c){return{'name':_0x496d1c['fieldName'],'type':_0x496d1c['type']['key']};});_0x5c70a4['model']=_['map'](_0x3dd7a7,'name');_0x5c70a4['query']=_[_0xe587('0x2f')](_0x107143[_0xe587('0x30')]);_0x5c70a4[_0xe587('0x31')]=_['intersection'](_0x5c70a4['model'],_0x5c70a4[_0xe587('0x30')]);_0x4481c2[_0xe587('0x32')]=_['intersection'](_0x5c70a4[_0xe587('0x33')],qs[_0xe587('0x34')](_0x107143[_0xe587('0x30')][_0xe587('0x34')]));_0x4481c2[_0xe587('0x32')]=_0x4481c2[_0xe587('0x32')][_0xe587('0x35')]?_0x4481c2[_0xe587('0x32')]:_0x5c70a4[_0xe587('0x33')];if(!_0x107143[_0xe587('0x30')][_0xe587('0x36')](_0xe587('0x37'))){_0x4481c2['limit']=qs[_0xe587('0x20')](_0x107143[_0xe587('0x30')][_0xe587('0x20')]);_0x4481c2[_0xe587('0x1e')]=qs['offset'](_0x107143[_0xe587('0x30')][_0xe587('0x1e')]);}_0x4481c2['order']=qs[_0xe587('0x38')](_0x107143[_0xe587('0x30')][_0xe587('0x38')]);_0x4481c2[_0xe587('0x39')]=qs['filters'](_['pick'](_0x107143['query'],_0x5c70a4['filters']),_0x3dd7a7);if(_0x107143['query'][_0xe587('0x3a')]){_0x4481c2[_0xe587('0x39')]=_['merge'](_0x4481c2[_0xe587('0x39')],{'$or':_[_0xe587('0x3b')](_0x3dd7a7,function(_0x388ca7){if(_0x388ca7['type']!==_0xe587('0x3c')){var _0xd66cb5={};_0xd66cb5[_0x388ca7[_0xe587('0x2a')]]={'$like':'%'+_0x107143['query'][_0xe587('0x3a')]+'%'};return _0xd66cb5;}})});}_0x4481c2=_[_0xe587('0x3d')]({},_0x4481c2,_0x107143['options']);var _0x421135={'where':_0x4481c2[_0xe587('0x39')]};return db[_0xe587('0x2d')][_0xe587('0x21')](_0x421135)['then'](function(_0x5e876b){_0x3f16a1[_0xe587('0x21')]=_0x5e876b;if(_0x107143['query'][_0xe587('0x3e')]){_0x4481c2['include']=[{'all':!![]}];}return db[_0xe587('0x2d')][_0xe587('0x3f')](_0x4481c2);})[_0xe587('0x27')](function(_0x8ff72c){_0x3f16a1['rows']=_0x8ff72c;return _0x3f16a1;})['then'](respondWithFilteredResult(_0x896b92,_0x4481c2))['catch'](handleError(_0x896b92,null));};exports[_0xe587('0x40')]=function(_0x301ebd,_0x2909e3){var _0xdc096e={'raw':![],'where':{'id':_0x301ebd[_0xe587('0x41')]['id']}},_0xfba91e={};_0xfba91e[_0xe587('0x33')]=_[_0xe587('0x2f')](db['SalesforceAccount']['rawAttributes']);_0xfba91e['query']=_[_0xe587('0x2f')](_0x301ebd[_0xe587('0x30')]);_0xfba91e[_0xe587('0x31')]=_[_0xe587('0x42')](_0xfba91e['model'],_0xfba91e['query']);_0xdc096e[_0xe587('0x32')]=_['intersection'](_0xfba91e[_0xe587('0x33')],qs[_0xe587('0x34')](_0x301ebd[_0xe587('0x30')]['fields']));_0xdc096e[_0xe587('0x32')]=_0xdc096e[_0xe587('0x32')]['length']?_0xdc096e[_0xe587('0x32')]:_0xfba91e[_0xe587('0x33')];if(_0x301ebd[_0xe587('0x30')][_0xe587('0x3e')]){_0xdc096e[_0xe587('0x43')]=[{'all':!![]}];}_0xdc096e=_['merge']({},_0xdc096e,_0x301ebd[_0xe587('0x44')]);return db['SalesforceAccount'][_0xe587('0x45')](_0xdc096e)[_0xe587('0x27')](handleEntityNotFound(_0x2909e3,null))[_0xe587('0x27')](respondWithResult(_0x2909e3,null))[_0xe587('0x46')](handleError(_0x2909e3,null));};exports[_0xe587('0x47')]=function(_0x208a46,_0x5a20ae){return db[_0xe587('0x2d')]['create'](_0x208a46[_0xe587('0x48')],{})[_0xe587('0x27')](respondWithResult(_0x5a20ae,0xc9))[_0xe587('0x46')](handleError(_0x5a20ae,null));};exports[_0xe587('0x26')]=function(_0x29fd93,_0xe128da){if(_0x29fd93[_0xe587('0x48')]['id']){delete _0x29fd93[_0xe587('0x48')]['id'];}return db[_0xe587('0x2d')][_0xe587('0x45')]({'where':{'id':_0x29fd93['params']['id']}})[_0xe587('0x27')](handleEntityNotFound(_0xe128da,null))[_0xe587('0x27')](saveUpdates(_0x29fd93[_0xe587('0x48')],null))[_0xe587('0x27')](respondWithResult(_0xe128da,null))[_0xe587('0x46')](handleError(_0xe128da,null));};exports[_0xe587('0x28')]=function(_0x101fba,_0x1c6e67){return db['SalesforceAccount'][_0xe587('0x45')]({'where':{'id':_0x101fba[_0xe587('0x41')]['id']}})['then'](handleEntityNotFound(_0x1c6e67,null))[_0xe587('0x27')](removeEntity(_0x1c6e67,null))[_0xe587('0x46')](handleError(_0x1c6e67,null));};exports[_0xe587('0x49')]=function(_0xd54fb0,_0x5a1817,_0x682461){var _0x50d831={};var _0x321cc8={};var _0x1a9386;var _0x36e762;return db[_0xe587('0x2d')]['findOne']({'where':{'id':_0xd54fb0[_0xe587('0x41')]['id']}})[_0xe587('0x27')](handleEntityNotFound(_0x5a1817,null))[_0xe587('0x27')](function(_0x242588){if(_0x242588){_0x1a9386=_0x242588;_0x321cc8[_0xe587('0x33')]=_[_0xe587('0x2f')](db[_0xe587('0x4a')][_0xe587('0x2e')]);_0x321cc8[_0xe587('0x30')]=_[_0xe587('0x2f')](_0xd54fb0[_0xe587('0x30')]);_0x321cc8['filters']=_['intersection'](_0x321cc8[_0xe587('0x33')],_0x321cc8[_0xe587('0x30')]);_0x50d831['attributes']=_[_0xe587('0x42')](_0x321cc8[_0xe587('0x33')],qs['fields'](_0xd54fb0[_0xe587('0x30')][_0xe587('0x34')]));_0x50d831[_0xe587('0x32')]=_0x50d831[_0xe587('0x32')][_0xe587('0x35')]?_0x50d831[_0xe587('0x32')]:_0x321cc8['model'];_0x50d831[_0xe587('0x4b')]=qs['sort'](_0xd54fb0[_0xe587('0x30')]['sort']);_0x50d831[_0xe587('0x39')]=qs['filters'](_[_0xe587('0x4c')](_0xd54fb0[_0xe587('0x30')],_0x321cc8[_0xe587('0x31')]));if(_0xd54fb0['query'][_0xe587('0x3a')]){_0x50d831[_0xe587('0x39')]=_[_0xe587('0x3d')](_0x50d831['where'],{'$or':_[_0xe587('0x3b')](_0x50d831['attributes'],function(_0x10c236){var _0x29f026={};_0x29f026[_0x10c236]={'$like':'%'+_0xd54fb0[_0xe587('0x30')][_0xe587('0x3a')]+'%'};return _0x29f026;})});}_0x50d831=_[_0xe587('0x3d')]({},_0x50d831,_0xd54fb0[_0xe587('0x44')]);return _0x1a9386[_0xe587('0x49')](_0x50d831);}})[_0xe587('0x27')](function(_0x3c08ec){if(_0x3c08ec){_0x36e762=_0x3c08ec[_0xe587('0x35')];if(!_0xd54fb0['query'][_0xe587('0x36')](_0xe587('0x37'))){_0x50d831[_0xe587('0x20')]=qs[_0xe587('0x20')](_0xd54fb0[_0xe587('0x30')][_0xe587('0x20')]);_0x50d831[_0xe587('0x1e')]=qs['offset'](_0xd54fb0[_0xe587('0x30')][_0xe587('0x1e')]);}return _0x1a9386[_0xe587('0x49')](_0x50d831);}})[_0xe587('0x27')](function(_0x379c60){if(_0x379c60){return _0x379c60?{'count':_0x36e762,'rows':_0x379c60}:null;}})[_0xe587('0x27')](respondWithResult(_0x5a1817,null))[_0xe587('0x46')](handleError(_0x5a1817,null));};exports['addConfiguration']=function(_0x427546,_0x1390af,_0x422be1){if(_0x427546['body']['id']){delete _0x427546[_0xe587('0x48')]['id'];}return db[_0xe587('0x2d')][_0xe587('0x4d')]({'where':{'id':_0x427546['params']['id']}})[_0xe587('0x27')](handleEntityNotFound(_0x1390af,null))['then'](function(_0x3ad752){if(_0x3ad752){_0x427546['body']['AccountId']=_0x3ad752['id'];_0x427546['body'][_0xe587('0x4e')]=integrations[_0xe587('0x4f')](_0x427546[_0xe587('0x48')][_0xe587('0x50')],_0x427546[_0xe587('0x48')]['type']);_0x427546[_0xe587('0x48')][_0xe587('0x51')]=integrations[_0xe587('0x52')](_0x427546['body']['channel'],_0x427546[_0xe587('0x48')]['type']);return db[_0xe587('0x4a')][_0xe587('0x47')](_0x427546['body'],{'include':[{'model':db[_0xe587('0x53')],'as':_0xe587('0x4e')},{'model':db[_0xe587('0x53')],'as':_0xe587('0x51')}]});}return null;})[_0xe587('0x27')](respondWithResult(_0x1390af,null))[_0xe587('0x46')](handleError(_0x1390af,null));};exports[_0xe587('0x54')]=function(_0x2a9845,_0x39e0ba,_0x8e7586){var _0x4f2733;var _0x57a7e6='';var _0x12256c='Task';return db['SalesforceAccount'][_0xe587('0x4d')]({'where':{'id':_0x2a9845[_0xe587('0x41')]['id']},'attributes':['id',_0xe587('0x55'),_0xe587('0x56'),_0xe587('0x57'),'username',_0xe587('0x58'),_0xe587('0x59')]})[_0xe587('0x27')](handleEntityNotFound(_0x39e0ba,null))[_0xe587('0x27')](function(_0x31213a){if(_0x31213a){_0x57a7e6=_0x31213a[_0xe587('0x55')];var _0x20431e=_0x57a7e6[_0xe587('0x5a')](-0x1);if(_0x20431e==='/'){_0x57a7e6=_0x57a7e6[_0xe587('0x5b')](0x0,_0x57a7e6[_0xe587('0x5c')](_0x20431e));}_0x4f2733=new jsforce[(_0xe587('0x5d'))]({'oauth2':{'loginUrl':_0x57a7e6,'clientId':_0x31213a[_0xe587('0x56')],'clientSecret':_0x31213a['clientSecret']}});return _0x4f2733[_0xe587('0x5e')](_0x31213a[_0xe587('0x5f')],_0x31213a[_0xe587('0x58')][_0xe587('0x60')](_0x31213a['securityToken']));}})['then'](function(_0x47eb26){if(_0x47eb26){if(!_[_0xe587('0x61')](_0x2a9845['query'][_0xe587('0x62')])){_0x12256c=_0x2a9845[_0xe587('0x30')][_0xe587('0x62')];}return _0x4f2733[_0xe587('0x63')](_0x12256c)['describe']();}})['then'](function(_0x25af71){var _0x4585d5=[_0xe587('0x64'),_0xe587('0x65'),_0xe587('0x66'),_0xe587('0x67'),_0xe587('0x68'),_0xe587('0x69')];var _0xa002e7=['string',_0xe587('0x6a'),_0xe587('0x6b'),'boolean','email',_0xe587('0x6c'),_0xe587('0x6d')];if(_0x25af71){_[_0xe587('0x6e')](_0x25af71[_0xe587('0x34')],function(_0x3c1c9e){return _0x4585d5[_0xe587('0x6f')](_0x3c1c9e[_0xe587('0x2a')])||!_0xa002e7['includes'](_0x3c1c9e[_0xe587('0x70')]);});return{'count':_0x25af71['fields'][_0xe587('0x35')],'rows':_[_0xe587('0x3b')](_0x25af71[_0xe587('0x34')],function(_0x3b6e59){return{'id':_0x3b6e59[_0xe587('0x2a')],'name':_0x3b6e59[_0xe587('0x71')],'custom':_0x3b6e59[_0xe587('0x72')],'options':_0x3b6e59[_0xe587('0x73')][_0xe587('0x35')]>0x0?_[_0xe587('0x3b')](_0x3b6e59[_0xe587('0x73')],function(_0x1818a7){return{'name':_0x1818a7[_0xe587('0x71')],'value':_0x1818a7[_0xe587('0x74')]};}):_0x3b6e59[_0xe587('0x70')]==_0xe587('0x75')?[{'name':_0xe587('0x76'),'value':_0xe587('0x77')},{'name':_0xe587('0x78'),'value':_0xe587('0x79')}]:[]};})};}})[_0xe587('0x27')](respondWithResult(_0x39e0ba,null))[_0xe587('0x46')](function(_0x42a657){var _0x2b19a6=_0x2a9845['query']['test']?0x1f4:_0x42a657['statusCode']||0x1f4;logger[_0xe587('0x7a')](_0xe587('0x7b'),_0xe587('0x54'),_0x2b19a6,JSON[_0xe587('0x7c')](_0x42a657));delete _0x42a657['name'];if(_0x2b19a6===0x191){_0x2b19a6=0x190;}_0x39e0ba['status'](_0x2b19a6)['send'](_0x2a9845[_0xe587('0x30')][_0xe587('0x7d')]?{'message':_0xe587('0x7e'),'statusCode':_0x42a657['statusCode']}:_0x42a657);});};
\ No newline at end of file
+var _0x4a3c=['sort','where','pick','filter','merge','type','options','includeAll','findAll','catch','show','params','include','find','create','body','findOne','SalesforceConfiguration','getConfigurations','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','slice','login','concat','isNil','ticketType','sobject','describe','OwnerId','ActivityDate','IsRecurrence','Subject','string','int','picklist','boolean','email','textarea','phone','remove','includes','label','custom','picklistValues','True','true','false','getFields,\x20%s,\x20%s,\x20%s','stringify','send','test','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','moment','util','to-csv','ejs','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','destroy','then','error','stack','name','index','SalesforceAccount','rawAttributes','fieldName','key','map','query','keys','filters','intersection','model','fields','attributes','length','nolimit','order'];(function(_0x23570f,_0x50c9ce){var _0x538419=function(_0x5d7cb7){while(--_0x5d7cb7){_0x23570f['push'](_0x23570f['shift']());}};_0x538419(++_0x50c9ce);}(_0x4a3c,0xbe));var _0xc4a3=function(_0x45552c,_0x57b370){_0x45552c=_0x45552c-0x0;var _0xd4c1d7=_0x4a3c[_0x45552c];return _0xd4c1d7;};'use strict';var emlformat=require(_0xc4a3('0x0'));var rimraf=require(_0xc4a3('0x1'));var zipdir=require(_0xc4a3('0x2'));var jsonpatch=require(_0xc4a3('0x3'));var rp=require('request-promise');var moment=require(_0xc4a3('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xc4a3('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xc4a3('0x6'));var ejs=require(_0xc4a3('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc4a3('0x8'));var squel=require(_0xc4a3('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xc4a3('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc4a3('0xb'));var Redis=require(_0xc4a3('0xc'));var authService=require(_0xc4a3('0xd'));var qs=require(_0xc4a3('0xe'));var as=require(_0xc4a3('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc4a3('0x10'))(_0xc4a3('0x11'));var utils=require('../../config/utils');var config=require(_0xc4a3('0x12'));var licenseUtil=require(_0xc4a3('0x13'));var db=require(_0xc4a3('0x14'))['db'];var integrations=require(_0xc4a3('0x15'));function respondWithStatusCode(_0x9a7ee3,_0x2adc37){_0x2adc37=_0x2adc37||0xcc;return function(_0x55e8a2){if(_0x55e8a2){return _0x9a7ee3[_0xc4a3('0x16')](_0x2adc37);}return _0x9a7ee3[_0xc4a3('0x17')](_0x2adc37)[_0xc4a3('0x18')]();};}function respondWithResult(_0x400f24,_0x179842){_0x179842=_0x179842||0xc8;return function(_0x517c75){if(_0x517c75){return _0x400f24['status'](_0x179842)[_0xc4a3('0x19')](_0x517c75);}};}function respondWithFilteredResult(_0x5a1d0f,_0x283254){return function(_0x222751){if(_0x222751){var _0x4e3195=typeof _0x283254[_0xc4a3('0x1a')]===_0xc4a3('0x1b')&&typeof _0x283254[_0xc4a3('0x1c')]===_0xc4a3('0x1b');var _0x5c3a38=_0x222751['count'];var _0xd13be4=_0x4e3195?0x0:_0x283254['offset'];var _0x2949b=_0x4e3195?_0x222751[_0xc4a3('0x1d')]:_0x283254['offset']+_0x283254[_0xc4a3('0x1c')];var _0x90bb28;if(_0x2949b>=_0x5c3a38){_0x2949b=_0x5c3a38;_0x90bb28=0xc8;}else{_0x90bb28=0xce;}_0x5a1d0f['status'](_0x90bb28);return _0x5a1d0f[_0xc4a3('0x1e')](_0xc4a3('0x1f'),_0xd13be4+'-'+_0x2949b+'/'+_0x5c3a38)[_0xc4a3('0x19')](_0x222751);}return null;};}function patchUpdates(_0x3b6930){return function(_0x17be3e){try{jsonpatch['apply'](_0x17be3e,_0x3b6930,!![]);}catch(_0x18cf7e){return BPromise['reject'](_0x18cf7e);}return _0x17be3e[_0xc4a3('0x20')]();};}function saveUpdates(_0x2b14da,_0x3afe0f){return function(_0x1c8f04){if(_0x1c8f04){return _0x1c8f04['update'](_0x2b14da)['then'](function(_0x3c63e7){return _0x3c63e7;});}return null;};}function removeEntity(_0x2b43a2,_0x4e15a4){return function(_0x43f729){if(_0x43f729){return _0x43f729[_0xc4a3('0x21')]()[_0xc4a3('0x22')](function(){_0x2b43a2[_0xc4a3('0x17')](0xcc)[_0xc4a3('0x18')]();});}};}function handleEntityNotFound(_0xeb14b4,_0x4e7396){return function(_0xe3adb3){if(!_0xe3adb3){_0xeb14b4[_0xc4a3('0x16')](0x194);}return _0xe3adb3;};}function handleError(_0x34e08f,_0x7fe5b2){_0x7fe5b2=_0x7fe5b2||0x1f4;return function(_0x1fa04b){logger[_0xc4a3('0x23')](_0x1fa04b[_0xc4a3('0x24')]);if(_0x1fa04b[_0xc4a3('0x25')]){delete _0x1fa04b['name'];}_0x34e08f[_0xc4a3('0x17')](_0x7fe5b2)['send'](_0x1fa04b);};}exports[_0xc4a3('0x26')]=function(_0x5cc606,_0x5b4f4b){var _0x44cdc5={},_0x38b23f={},_0x495671={'count':0x0,'rows':[]};var _0x44bc2e=_['map'](db[_0xc4a3('0x27')][_0xc4a3('0x28')],function(_0x8148a3){return{'name':_0x8148a3[_0xc4a3('0x29')],'type':_0x8148a3['type'][_0xc4a3('0x2a')]};});_0x38b23f['model']=_[_0xc4a3('0x2b')](_0x44bc2e,_0xc4a3('0x25'));_0x38b23f[_0xc4a3('0x2c')]=_[_0xc4a3('0x2d')](_0x5cc606[_0xc4a3('0x2c')]);_0x38b23f[_0xc4a3('0x2e')]=_[_0xc4a3('0x2f')](_0x38b23f[_0xc4a3('0x30')],_0x38b23f[_0xc4a3('0x2c')]);_0x44cdc5['attributes']=_['intersection'](_0x38b23f[_0xc4a3('0x30')],qs['fields'](_0x5cc606[_0xc4a3('0x2c')][_0xc4a3('0x31')]));_0x44cdc5[_0xc4a3('0x32')]=_0x44cdc5[_0xc4a3('0x32')][_0xc4a3('0x33')]?_0x44cdc5['attributes']:_0x38b23f[_0xc4a3('0x30')];if(!_0x5cc606[_0xc4a3('0x2c')]['hasOwnProperty'](_0xc4a3('0x34'))){_0x44cdc5[_0xc4a3('0x1c')]=qs[_0xc4a3('0x1c')](_0x5cc606[_0xc4a3('0x2c')]['limit']);_0x44cdc5['offset']=qs['offset'](_0x5cc606[_0xc4a3('0x2c')][_0xc4a3('0x1a')]);}_0x44cdc5[_0xc4a3('0x35')]=qs[_0xc4a3('0x36')](_0x5cc606[_0xc4a3('0x2c')][_0xc4a3('0x36')]);_0x44cdc5[_0xc4a3('0x37')]=qs[_0xc4a3('0x2e')](_[_0xc4a3('0x38')](_0x5cc606['query'],_0x38b23f['filters']),_0x44bc2e);if(_0x5cc606[_0xc4a3('0x2c')][_0xc4a3('0x39')]){_0x44cdc5[_0xc4a3('0x37')]=_[_0xc4a3('0x3a')](_0x44cdc5[_0xc4a3('0x37')],{'$or':_[_0xc4a3('0x2b')](_0x44bc2e,function(_0x57f443){if(_0x57f443[_0xc4a3('0x3b')]!=='VIRTUAL'){var _0x2ebf4a={};_0x2ebf4a[_0x57f443[_0xc4a3('0x25')]]={'$like':'%'+_0x5cc606['query'][_0xc4a3('0x39')]+'%'};return _0x2ebf4a;}})});}_0x44cdc5=_[_0xc4a3('0x3a')]({},_0x44cdc5,_0x5cc606[_0xc4a3('0x3c')]);var _0x26608a={'where':_0x44cdc5[_0xc4a3('0x37')]};return db['SalesforceAccount'][_0xc4a3('0x1d')](_0x26608a)[_0xc4a3('0x22')](function(_0x27e8bd){_0x495671['count']=_0x27e8bd;if(_0x5cc606[_0xc4a3('0x2c')][_0xc4a3('0x3d')]){_0x44cdc5['include']=[{'all':!![]}];}return db[_0xc4a3('0x27')][_0xc4a3('0x3e')](_0x44cdc5);})[_0xc4a3('0x22')](function(_0x5d5cfb){_0x495671['rows']=_0x5d5cfb;return _0x495671;})[_0xc4a3('0x22')](respondWithFilteredResult(_0x5b4f4b,_0x44cdc5))[_0xc4a3('0x3f')](handleError(_0x5b4f4b,null));};exports[_0xc4a3('0x40')]=function(_0x3c4a90,_0x56d2cb){var _0x487e7e={'raw':![],'where':{'id':_0x3c4a90[_0xc4a3('0x41')]['id']}},_0x131274={};_0x131274['model']=_[_0xc4a3('0x2d')](db[_0xc4a3('0x27')][_0xc4a3('0x28')]);_0x131274[_0xc4a3('0x2c')]=_[_0xc4a3('0x2d')](_0x3c4a90[_0xc4a3('0x2c')]);_0x131274[_0xc4a3('0x2e')]=_['intersection'](_0x131274[_0xc4a3('0x30')],_0x131274[_0xc4a3('0x2c')]);_0x487e7e[_0xc4a3('0x32')]=_[_0xc4a3('0x2f')](_0x131274[_0xc4a3('0x30')],qs[_0xc4a3('0x31')](_0x3c4a90[_0xc4a3('0x2c')][_0xc4a3('0x31')]));_0x487e7e[_0xc4a3('0x32')]=_0x487e7e[_0xc4a3('0x32')][_0xc4a3('0x33')]?_0x487e7e[_0xc4a3('0x32')]:_0x131274[_0xc4a3('0x30')];if(_0x3c4a90['query'][_0xc4a3('0x3d')]){_0x487e7e[_0xc4a3('0x42')]=[{'all':!![]}];}_0x487e7e=_[_0xc4a3('0x3a')]({},_0x487e7e,_0x3c4a90[_0xc4a3('0x3c')]);return db[_0xc4a3('0x27')][_0xc4a3('0x43')](_0x487e7e)[_0xc4a3('0x22')](handleEntityNotFound(_0x56d2cb,null))[_0xc4a3('0x22')](respondWithResult(_0x56d2cb,null))[_0xc4a3('0x3f')](handleError(_0x56d2cb,null));};exports['create']=function(_0x376192,_0xafbd4e){return db[_0xc4a3('0x27')][_0xc4a3('0x44')](_0x376192[_0xc4a3('0x45')],{})['then'](respondWithResult(_0xafbd4e,0xc9))[_0xc4a3('0x3f')](handleError(_0xafbd4e,null));};exports['update']=function(_0x4a8854,_0x227e30){if(_0x4a8854[_0xc4a3('0x45')]['id']){delete _0x4a8854['body']['id'];}return db[_0xc4a3('0x27')][_0xc4a3('0x43')]({'where':{'id':_0x4a8854[_0xc4a3('0x41')]['id']}})[_0xc4a3('0x22')](handleEntityNotFound(_0x227e30,null))['then'](saveUpdates(_0x4a8854[_0xc4a3('0x45')],null))[_0xc4a3('0x22')](respondWithResult(_0x227e30,null))[_0xc4a3('0x3f')](handleError(_0x227e30,null));};exports['destroy']=function(_0x2da64e,_0x138b29){return db[_0xc4a3('0x27')]['find']({'where':{'id':_0x2da64e['params']['id']}})[_0xc4a3('0x22')](handleEntityNotFound(_0x138b29,null))['then'](removeEntity(_0x138b29,null))['catch'](handleError(_0x138b29,null));};exports['getConfigurations']=function(_0x554be4,_0x5e5c13,_0x4481f1){var _0x38aa34={};var _0x38a62b={};var _0xf7174;var _0x233d0c;return db[_0xc4a3('0x27')][_0xc4a3('0x46')]({'where':{'id':_0x554be4[_0xc4a3('0x41')]['id']}})[_0xc4a3('0x22')](handleEntityNotFound(_0x5e5c13,null))[_0xc4a3('0x22')](function(_0x332839){if(_0x332839){_0xf7174=_0x332839;_0x38a62b[_0xc4a3('0x30')]=_[_0xc4a3('0x2d')](db[_0xc4a3('0x47')][_0xc4a3('0x28')]);_0x38a62b[_0xc4a3('0x2c')]=_[_0xc4a3('0x2d')](_0x554be4[_0xc4a3('0x2c')]);_0x38a62b[_0xc4a3('0x2e')]=_[_0xc4a3('0x2f')](_0x38a62b[_0xc4a3('0x30')],_0x38a62b[_0xc4a3('0x2c')]);_0x38aa34[_0xc4a3('0x32')]=_[_0xc4a3('0x2f')](_0x38a62b['model'],qs[_0xc4a3('0x31')](_0x554be4[_0xc4a3('0x2c')][_0xc4a3('0x31')]));_0x38aa34[_0xc4a3('0x32')]=_0x38aa34[_0xc4a3('0x32')][_0xc4a3('0x33')]?_0x38aa34['attributes']:_0x38a62b[_0xc4a3('0x30')];_0x38aa34[_0xc4a3('0x35')]=qs[_0xc4a3('0x36')](_0x554be4['query'][_0xc4a3('0x36')]);_0x38aa34[_0xc4a3('0x37')]=qs[_0xc4a3('0x2e')](_[_0xc4a3('0x38')](_0x554be4[_0xc4a3('0x2c')],_0x38a62b[_0xc4a3('0x2e')]));if(_0x554be4[_0xc4a3('0x2c')][_0xc4a3('0x39')]){_0x38aa34['where']=_[_0xc4a3('0x3a')](_0x38aa34[_0xc4a3('0x37')],{'$or':_[_0xc4a3('0x2b')](_0x38aa34[_0xc4a3('0x32')],function(_0xb89ec){var _0x1df33c={};_0x1df33c[_0xb89ec]={'$like':'%'+_0x554be4[_0xc4a3('0x2c')][_0xc4a3('0x39')]+'%'};return _0x1df33c;})});}_0x38aa34=_[_0xc4a3('0x3a')]({},_0x38aa34,_0x554be4[_0xc4a3('0x3c')]);return _0xf7174[_0xc4a3('0x48')](_0x38aa34);}})[_0xc4a3('0x22')](function(_0x5891aa){if(_0x5891aa){_0x233d0c=_0x5891aa[_0xc4a3('0x33')];if(!_0x554be4[_0xc4a3('0x2c')][_0xc4a3('0x49')](_0xc4a3('0x34'))){_0x38aa34['limit']=qs[_0xc4a3('0x1c')](_0x554be4['query'][_0xc4a3('0x1c')]);_0x38aa34[_0xc4a3('0x1a')]=qs['offset'](_0x554be4[_0xc4a3('0x2c')][_0xc4a3('0x1a')]);}return _0xf7174['getConfigurations'](_0x38aa34);}})[_0xc4a3('0x22')](function(_0x309053){if(_0x309053){return _0x309053?{'count':_0x233d0c,'rows':_0x309053}:null;}})['then'](respondWithResult(_0x5e5c13,null))[_0xc4a3('0x3f')](handleError(_0x5e5c13,null));};exports[_0xc4a3('0x4a')]=function(_0x6c3f7e,_0x463341,_0x345f4c){if(_0x6c3f7e['body']['id']){delete _0x6c3f7e[_0xc4a3('0x45')]['id'];}return db[_0xc4a3('0x27')]['findOne']({'where':{'id':_0x6c3f7e['params']['id']}})['then'](handleEntityNotFound(_0x463341,null))['then'](function(_0x4d3e2b){if(_0x4d3e2b){_0x6c3f7e[_0xc4a3('0x45')][_0xc4a3('0x4b')]=_0x4d3e2b['id'];_0x6c3f7e[_0xc4a3('0x45')][_0xc4a3('0x4c')]=integrations[_0xc4a3('0x4d')](_0x6c3f7e['body'][_0xc4a3('0x4e')],_0x6c3f7e[_0xc4a3('0x45')][_0xc4a3('0x3b')]);_0x6c3f7e[_0xc4a3('0x45')][_0xc4a3('0x4f')]=integrations[_0xc4a3('0x50')](_0x6c3f7e[_0xc4a3('0x45')]['channel'],_0x6c3f7e[_0xc4a3('0x45')][_0xc4a3('0x3b')]);return db['SalesforceConfiguration'][_0xc4a3('0x44')](_0x6c3f7e[_0xc4a3('0x45')],{'include':[{'model':db[_0xc4a3('0x51')],'as':'Subjects'},{'model':db[_0xc4a3('0x51')],'as':_0xc4a3('0x4f')}]});}return null;})[_0xc4a3('0x22')](respondWithResult(_0x463341,null))[_0xc4a3('0x3f')](handleError(_0x463341,null));};exports[_0xc4a3('0x52')]=function(_0x4cc91d,_0x5669e6,_0x3734da){var _0x235159;var _0x2ee5a1='';var _0x2c22a9=_0xc4a3('0x53');return db[_0xc4a3('0x27')][_0xc4a3('0x46')]({'where':{'id':_0x4cc91d[_0xc4a3('0x41')]['id']},'attributes':['id',_0xc4a3('0x54'),_0xc4a3('0x55'),_0xc4a3('0x56'),_0xc4a3('0x57'),_0xc4a3('0x58'),_0xc4a3('0x59')]})[_0xc4a3('0x22')](handleEntityNotFound(_0x5669e6,null))[_0xc4a3('0x22')](function(_0x46fa7a){if(_0x46fa7a){_0x2ee5a1=_0x46fa7a[_0xc4a3('0x54')];var _0x5c97c2=_0x2ee5a1[_0xc4a3('0x5a')](-0x1);if(_0x5c97c2==='/'){_0x2ee5a1=_0x2ee5a1['substring'](0x0,_0x2ee5a1['lastIndexOf'](_0x5c97c2));}_0x235159=new jsforce['Connection']({'oauth2':{'loginUrl':_0x2ee5a1,'clientId':_0x46fa7a[_0xc4a3('0x55')],'clientSecret':_0x46fa7a[_0xc4a3('0x56')]}});return _0x235159[_0xc4a3('0x5b')](_0x46fa7a[_0xc4a3('0x57')],_0x46fa7a['password'][_0xc4a3('0x5c')](_0x46fa7a[_0xc4a3('0x59')]));}})[_0xc4a3('0x22')](function(_0xaf61a){if(_0xaf61a){if(!_[_0xc4a3('0x5d')](_0x4cc91d[_0xc4a3('0x2c')][_0xc4a3('0x5e')])){_0x2c22a9=_0x4cc91d[_0xc4a3('0x2c')][_0xc4a3('0x5e')];}return _0x235159[_0xc4a3('0x5f')](_0x2c22a9)[_0xc4a3('0x60')]();}})[_0xc4a3('0x22')](function(_0x36da67){var _0xbc8b4d=[_0xc4a3('0x61'),_0xc4a3('0x62'),'IsReminderSet',_0xc4a3('0x63'),_0xc4a3('0x64'),'Description'];var _0x2fe74f=[_0xc4a3('0x65'),_0xc4a3('0x66'),_0xc4a3('0x67'),_0xc4a3('0x68'),_0xc4a3('0x69'),_0xc4a3('0x6a'),_0xc4a3('0x6b')];if(_0x36da67){_[_0xc4a3('0x6c')](_0x36da67[_0xc4a3('0x31')],function(_0x20ac0d){return _0xbc8b4d[_0xc4a3('0x6d')](_0x20ac0d[_0xc4a3('0x25')])||!_0x2fe74f[_0xc4a3('0x6d')](_0x20ac0d['type']);});return{'count':_0x36da67['fields'][_0xc4a3('0x33')],'rows':_[_0xc4a3('0x2b')](_0x36da67[_0xc4a3('0x31')],function(_0xb0821c){return{'id':_0xb0821c[_0xc4a3('0x25')],'name':_0xb0821c[_0xc4a3('0x6e')],'custom':_0xb0821c[_0xc4a3('0x6f')],'options':_0xb0821c[_0xc4a3('0x70')][_0xc4a3('0x33')]>0x0?_[_0xc4a3('0x2b')](_0xb0821c['picklistValues'],function(_0xa439f0){return{'name':_0xa439f0[_0xc4a3('0x6e')],'value':_0xa439f0['value']};}):_0xb0821c[_0xc4a3('0x3b')]=='boolean'?[{'name':_0xc4a3('0x71'),'value':_0xc4a3('0x72')},{'name':'False','value':_0xc4a3('0x73')}]:[]};})};}})[_0xc4a3('0x22')](respondWithResult(_0x5669e6,null))[_0xc4a3('0x3f')](function(_0x223c76){var _0x5a3f63=_0x4cc91d[_0xc4a3('0x2c')]['test']?0x1f4:_0x223c76['statusCode']||0x1f4;logger['error'](_0xc4a3('0x74'),_0xc4a3('0x52'),_0x5a3f63,JSON[_0xc4a3('0x75')](_0x223c76));delete _0x223c76[_0xc4a3('0x25')];if(_0x5a3f63===0x191){_0x5a3f63=0x190;}_0x5669e6[_0xc4a3('0x17')](_0x5a3f63)[_0xc4a3('0x76')](_0x4cc91d['query'][_0xc4a3('0x77')]?{'message':_0xc4a3('0x78'),'statusCode':_0x223c76[_0xc4a3('0x79')]}:_0x223c76);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3773=['request-promise','path','rimraf','../../config/environment','./intSalesforceAccount.attributes','exports','int_salesforce_accounts','util','../../config/logger','moment','bluebird'];(function(_0x30c649,_0x2ebbac){var _0x3edfb9=function(_0xab82f5){while(--_0xab82f5){_0x30c649['push'](_0x30c649['shift']());}};_0x3edfb9(++_0x2ebbac);}(_0x3773,0x1a9));var _0x3377=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x3773[_0x167cc1];return _0x10bc4b;};'use strict';var _=require('lodash');var util=require(_0x3377('0x0'));var logger=require(_0x3377('0x1'))('api');var moment=require(_0x3377('0x2'));var BPromise=require(_0x3377('0x3'));var rp=require(_0x3377('0x4'));var fs=require('fs');var path=require(_0x3377('0x5'));var rimraf=require(_0x3377('0x6'));var config=require(_0x3377('0x7'));var attributes=require(_0x3377('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x3377('0x9')]=function(_0x1795c4,_0xeeb188){return _0x1795c4['define']('SalesforceAccount',attributes,{'tableName':_0x3377('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x27d3=['define','SalesforceAccount','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x69a23c,_0x386b96){var _0x1975a5=function(_0x485419){while(--_0x485419){_0x69a23c['push'](_0x69a23c['shift']());}};_0x1975a5(++_0x386b96);}(_0x27d3,0xca));var _0x327d=function(_0x2112d4,_0x3c863c){_0x2112d4=_0x2112d4-0x0;var _0x434972=_0x27d3[_0x2112d4];return _0x434972;};'use strict';var _=require(_0x327d('0x0'));var util=require('util');var logger=require(_0x327d('0x1'))('api');var moment=require(_0x327d('0x2'));var BPromise=require(_0x327d('0x3'));var rp=require(_0x327d('0x4'));var fs=require('fs');var path=require(_0x327d('0x5'));var rimraf=require(_0x327d('0x6'));var config=require(_0x327d('0x7'));var attributes=require('./intSalesforceAccount.attributes');var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x583cd8,_0x275ee3){return _0x583cd8[_0x327d('0x8')](_0x327d('0x9'),attributes,{'tableName':'int_salesforce_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc19a=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','SalesforceAccount','options','raw','attributes','limit','include','map','model','GetSalesforceAccount','ShowSalesforceAccount','find','where','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x580576,_0x2f107d){var _0x3f55a0=function(_0x2e180b){while(--_0x2e180b){_0x580576['push'](_0x580576['shift']());}};_0x3f55a0(++_0x2f107d);}(_0xc19a,0x135));var _0xac19=function(_0x3b6839,_0x4f2fb1){_0x3b6839=_0x3b6839-0x0;var _0x248862=_0xc19a[_0x3b6839];return _0x248862;};'use strict';var _=require(_0xac19('0x0'));var util=require('util');var moment=require(_0xac19('0x1'));var BPromise=require(_0xac19('0x2'));var rs=require(_0xac19('0x3'));var fs=require('fs');var Redis=require(_0xac19('0x4'));var db=require(_0xac19('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xac19('0x6'))(_0xac19('0x7'));var config=require(_0xac19('0x8'));var jayson=require(_0xac19('0x9'));var client=jayson[_0xac19('0xa')][_0xac19('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2a74f9,_0x4cc94a,_0x28745e){return new BPromise(function(_0x11bb20,_0x2bc66e){return client['request'](_0x2a74f9,_0x28745e)[_0xac19('0xc')](function(_0xb96288){logger[_0xac19('0xd')](_0xac19('0xe'),_0x4cc94a,_0xac19('0xf'));logger[_0xac19('0x10')](_0xac19('0x11'),_0x4cc94a,_0xac19('0xf'),JSON[_0xac19('0x12')](_0xb96288));if(_0xb96288[_0xac19('0x13')]){if(_0xb96288[_0xac19('0x13')][_0xac19('0x14')]===0x1f4){logger[_0xac19('0x13')](_0xac19('0xe'),_0x4cc94a,_0xb96288[_0xac19('0x13')][_0xac19('0x15')]);return _0x2bc66e(_0xb96288[_0xac19('0x13')]['message']);}logger[_0xac19('0x13')](_0xac19('0xe'),_0x4cc94a,_0xb96288['error']['message']);return _0x11bb20(_0xb96288['error'][_0xac19('0x15')]);}else{logger['info'](_0xac19('0xe'),_0x4cc94a,_0xac19('0xf'));_0x11bb20(_0xb96288['result']['message']);}})[_0xac19('0x16')](function(_0x58dba2){logger['error'](_0xac19('0xe'),_0x4cc94a,_0x58dba2);_0x2bc66e(_0x58dba2);});});}exports['GetSalesforceAccount']=function(_0x2ac25f){var _0x11c1cd=this;return new Promise(function(_0x1334f2,_0x34669e){return db[_0xac19('0x17')]['findAll']({'raw':_0x2ac25f[_0xac19('0x18')]?_0x2ac25f[_0xac19('0x18')][_0xac19('0x19')]===undefined?!![]:![]:!![],'where':_0x2ac25f[_0xac19('0x18')]?_0x2ac25f[_0xac19('0x18')]['where']||null:null,'attributes':_0x2ac25f[_0xac19('0x18')]?_0x2ac25f[_0xac19('0x18')][_0xac19('0x1a')]||null:null,'limit':_0x2ac25f['options']?_0x2ac25f['options'][_0xac19('0x1b')]||null:null,'include':_0x2ac25f['options']?_0x2ac25f[_0xac19('0x18')][_0xac19('0x1c')]?_[_0xac19('0x1d')](_0x2ac25f['options']['include'],function(_0x470879){return{'model':db[_0x470879[_0xac19('0x1e')]],'as':_0x470879['as'],'attributes':_0x470879[_0xac19('0x1a')],'include':_0x470879[_0xac19('0x1c')]?_[_0xac19('0x1d')](_0x470879[_0xac19('0x1c')],function(_0x714f94){return{'model':db[_0x714f94['model']],'as':_0x714f94['as'],'attributes':_0x714f94[_0xac19('0x1a')],'include':_0x714f94[_0xac19('0x1c')]?_[_0xac19('0x1d')](_0x714f94['include'],function(_0x1dd94d){return{'model':db[_0x1dd94d['model']],'as':_0x1dd94d['as'],'attributes':_0x1dd94d[_0xac19('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5c35fb){logger[_0xac19('0xd')](_0xac19('0x1f'),_0x2ac25f);logger[_0xac19('0x10')](_0xac19('0x1f'),_0x2ac25f,JSON[_0xac19('0x12')](_0x5c35fb));_0x1334f2(_0x5c35fb);})[_0xac19('0x16')](function(_0x11ec03){logger['error'](_0xac19('0x1f'),_0x11ec03[_0xac19('0x15')],_0x2ac25f);_0x34669e(_0x11c1cd['error'](0x1f4,_0x11ec03[_0xac19('0x15')]));});});};exports[_0xac19('0x20')]=function(_0x4c617f){var _0x55c391=this;return new Promise(function(_0x434adc,_0x1f00d7){return db['SalesforceAccount'][_0xac19('0x21')]({'raw':_0x4c617f['options']?_0x4c617f[_0xac19('0x18')][_0xac19('0x19')]===undefined?!![]:![]:!![],'where':_0x4c617f[_0xac19('0x18')]?_0x4c617f[_0xac19('0x18')][_0xac19('0x22')]||null:null,'attributes':_0x4c617f['options']?_0x4c617f['options'][_0xac19('0x1a')]||null:null,'include':_0x4c617f['options']?_0x4c617f[_0xac19('0x18')][_0xac19('0x1c')]?_[_0xac19('0x1d')](_0x4c617f[_0xac19('0x18')][_0xac19('0x1c')],function(_0x55e2ac){return{'model':db[_0x55e2ac[_0xac19('0x1e')]],'as':_0x55e2ac['as'],'attributes':_0x55e2ac[_0xac19('0x1a')],'include':_0x55e2ac['include']?_[_0xac19('0x1d')](_0x55e2ac['include'],function(_0x178f79){return{'model':db[_0x178f79[_0xac19('0x1e')]],'as':_0x178f79['as'],'attributes':_0x178f79['attributes'],'include':_0x178f79[_0xac19('0x1c')]?_['map'](_0x178f79[_0xac19('0x1c')],function(_0x52ac95){return{'model':db[_0x52ac95[_0xac19('0x1e')]],'as':_0x52ac95['as'],'attributes':_0x52ac95[_0xac19('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xac19('0xc')](function(_0x59d3f2){logger[_0xac19('0xd')](_0xac19('0x20'),_0x4c617f);logger[_0xac19('0x10')](_0xac19('0x20'),_0x4c617f,JSON[_0xac19('0x12')](_0x59d3f2));_0x434adc(_0x59d3f2);})['catch'](function(_0x25cee3){logger[_0xac19('0x13')](_0xac19('0x20'),_0x25cee3[_0xac19('0x15')],_0x4c617f);_0x1f00d7(_0x55c391['error'](0x1f4,_0x25cee3[_0xac19('0x15')]));});});};
\ No newline at end of file
+var _0x96cf=['request','then','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','SalesforceAccount,\x20%s,\x20%s,\x20%s','code','message','error','result','catch','GetSalesforceAccount','SalesforceAccount','findAll','options','raw','where','attributes','limit','include','map','model','stringify','ShowSalesforceAccount','find','lodash','util','ioredis','../../config/utils','rpc','../../config/environment','client'];(function(_0x375bec,_0x2f32d9){var _0x3cb1f1=function(_0x45fff8){while(--_0x45fff8){_0x375bec['push'](_0x375bec['shift']());}};_0x3cb1f1(++_0x2f32d9);}(_0x96cf,0x143));var _0xf96c=function(_0x22151c,_0x5d44f8){_0x22151c=_0x22151c-0x0;var _0x4f5c87=_0x96cf[_0x22151c];return _0x4f5c87;};'use strict';var _=require(_0xf96c('0x0'));var util=require(_0xf96c('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf96c('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xf96c('0x3'));var logger=require('../../config/logger')(_0xf96c('0x4'));var config=require(_0xf96c('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xf96c('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x31a171,_0x3bd1e5,_0x3c0f15){return new BPromise(function(_0x3ba7e7,_0x15711d){return client[_0xf96c('0x7')](_0x31a171,_0x3c0f15)[_0xf96c('0x8')](function(_0x4a7a7e){logger[_0xf96c('0x9')](_0xf96c('0xa'),_0x3bd1e5,_0xf96c('0xb'));logger[_0xf96c('0xc')](_0xf96c('0xd'),_0x3bd1e5,_0xf96c('0xb'),JSON['stringify'](_0x4a7a7e));if(_0x4a7a7e['error']){if(_0x4a7a7e['error'][_0xf96c('0xe')]===0x1f4){logger['error'](_0xf96c('0xa'),_0x3bd1e5,_0x4a7a7e['error'][_0xf96c('0xf')]);return _0x15711d(_0x4a7a7e[_0xf96c('0x10')][_0xf96c('0xf')]);}logger[_0xf96c('0x10')](_0xf96c('0xa'),_0x3bd1e5,_0x4a7a7e['error']['message']);return _0x3ba7e7(_0x4a7a7e['error'][_0xf96c('0xf')]);}else{logger[_0xf96c('0x9')](_0xf96c('0xa'),_0x3bd1e5,_0xf96c('0xb'));_0x3ba7e7(_0x4a7a7e[_0xf96c('0x11')][_0xf96c('0xf')]);}})[_0xf96c('0x12')](function(_0x13a9f6){logger[_0xf96c('0x10')]('SalesforceAccount,\x20%s,\x20%s',_0x3bd1e5,_0x13a9f6);_0x15711d(_0x13a9f6);});});}exports[_0xf96c('0x13')]=function(_0x50f76e){var _0x553b5e=this;return new Promise(function(_0xfffcad,_0x10ab39){return db[_0xf96c('0x14')][_0xf96c('0x15')]({'raw':_0x50f76e['options']?_0x50f76e[_0xf96c('0x16')][_0xf96c('0x17')]===undefined?!![]:![]:!![],'where':_0x50f76e[_0xf96c('0x16')]?_0x50f76e[_0xf96c('0x16')][_0xf96c('0x18')]||null:null,'attributes':_0x50f76e['options']?_0x50f76e[_0xf96c('0x16')][_0xf96c('0x19')]||null:null,'limit':_0x50f76e[_0xf96c('0x16')]?_0x50f76e[_0xf96c('0x16')][_0xf96c('0x1a')]||null:null,'include':_0x50f76e[_0xf96c('0x16')]?_0x50f76e[_0xf96c('0x16')][_0xf96c('0x1b')]?_[_0xf96c('0x1c')](_0x50f76e[_0xf96c('0x16')][_0xf96c('0x1b')],function(_0x877ffe){return{'model':db[_0x877ffe['model']],'as':_0x877ffe['as'],'attributes':_0x877ffe[_0xf96c('0x19')],'include':_0x877ffe[_0xf96c('0x1b')]?_['map'](_0x877ffe[_0xf96c('0x1b')],function(_0x4c3533){return{'model':db[_0x4c3533[_0xf96c('0x1d')]],'as':_0x4c3533['as'],'attributes':_0x4c3533[_0xf96c('0x19')],'include':_0x4c3533['include']?_[_0xf96c('0x1c')](_0x4c3533[_0xf96c('0x1b')],function(_0x1d12b5){return{'model':db[_0x1d12b5['model']],'as':_0x1d12b5['as'],'attributes':_0x1d12b5[_0xf96c('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xe22f5){logger[_0xf96c('0x9')]('GetSalesforceAccount',_0x50f76e);logger[_0xf96c('0xc')](_0xf96c('0x13'),_0x50f76e,JSON[_0xf96c('0x1e')](_0xe22f5));_0xfffcad(_0xe22f5);})[_0xf96c('0x12')](function(_0x49af6f){logger[_0xf96c('0x10')]('GetSalesforceAccount',_0x49af6f[_0xf96c('0xf')],_0x50f76e);_0x10ab39(_0x553b5e[_0xf96c('0x10')](0x1f4,_0x49af6f[_0xf96c('0xf')]));});});};exports[_0xf96c('0x1f')]=function(_0x2200c6){var _0x4c43a9=this;return new Promise(function(_0x274bb2,_0x13a000){return db[_0xf96c('0x14')][_0xf96c('0x20')]({'raw':_0x2200c6['options']?_0x2200c6['options'][_0xf96c('0x17')]===undefined?!![]:![]:!![],'where':_0x2200c6['options']?_0x2200c6[_0xf96c('0x16')][_0xf96c('0x18')]||null:null,'attributes':_0x2200c6['options']?_0x2200c6[_0xf96c('0x16')]['attributes']||null:null,'include':_0x2200c6[_0xf96c('0x16')]?_0x2200c6[_0xf96c('0x16')]['include']?_[_0xf96c('0x1c')](_0x2200c6['options'][_0xf96c('0x1b')],function(_0x928a8d){return{'model':db[_0x928a8d['model']],'as':_0x928a8d['as'],'attributes':_0x928a8d[_0xf96c('0x19')],'include':_0x928a8d[_0xf96c('0x1b')]?_[_0xf96c('0x1c')](_0x928a8d['include'],function(_0x3e8c4a){return{'model':db[_0x3e8c4a['model']],'as':_0x3e8c4a['as'],'attributes':_0x3e8c4a[_0xf96c('0x19')],'include':_0x3e8c4a['include']?_[_0xf96c('0x1c')](_0x3e8c4a[_0xf96c('0x1b')],function(_0x14d338){return{'model':db[_0x14d338[_0xf96c('0x1d')]],'as':_0x14d338['as'],'attributes':_0x14d338[_0xf96c('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x93da29){logger['info'](_0xf96c('0x1f'),_0x2200c6);logger[_0xf96c('0xc')](_0xf96c('0x1f'),_0x2200c6,JSON['stringify'](_0x93da29));_0x274bb2(_0x93da29);})[_0xf96c('0x12')](function(_0x3dd9ea){logger[_0xf96c('0x10')](_0xf96c('0x1f'),_0x3dd9ea['message'],_0x2200c6);_0x13a000(_0x4c43a9[_0xf96c('0x10')](0x1f4,_0x3dd9ea[_0xf96c('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','put','update','delete','destroy','exports','util','connect-timeout','express'];(function(_0x5c0114,_0x47972d){var _0x31affd=function(_0x1c0bc5){while(--_0x1c0bc5){_0x5c0114['push'](_0x5c0114['shift']());}};_0x31affd(++_0x47972d);}(_0xadb5,0xad));var _0x5adb=function(_0x581106,_0xa69aa5){_0x581106=_0x581106-0x0;var _0x2e7ca1=_0xadb5[_0x581106];return _0x2e7ca1;};'use strict';var multer=require('multer');var util=require(_0x5adb('0x0'));var path=require('path');var timeout=require(_0x5adb('0x1'));var express=require(_0x5adb('0x2'));var router=express[_0x5adb('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x5adb('0x4'));var interaction=require(_0x5adb('0x5'));var config=require(_0x5adb('0x6'));var controller=require('./intSalesforceConfiguration.controller');router[_0x5adb('0x7')]('/',auth[_0x5adb('0x8')](),controller[_0x5adb('0x9')]);router[_0x5adb('0x7')](_0x5adb('0xa'),auth[_0x5adb('0x8')](),controller[_0x5adb('0xb')]);router[_0x5adb('0x7')](_0x5adb('0xc'),auth[_0x5adb('0x8')](),controller[_0x5adb('0xd')]);router[_0x5adb('0x7')](_0x5adb('0xe'),auth[_0x5adb('0x8')](),controller['getSubjects']);router['get'](_0x5adb('0xf'),auth[_0x5adb('0x8')](),controller[_0x5adb('0x10')]);router['post']('/',auth[_0x5adb('0x8')](),controller['create']);router[_0x5adb('0x11')]('/:id',auth[_0x5adb('0x8')](),controller[_0x5adb('0x12')]);router[_0x5adb('0x13')]('/:id',auth[_0x5adb('0x8')](),controller[_0x5adb('0x14')]);module[_0x5adb('0x15')]=router;
\ No newline at end of file
+var _0xadb5=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','put','update','delete','destroy','exports','util','connect-timeout','express'];(function(_0x276852,_0x142d6e){var _0x53e28a=function(_0xc206b6){while(--_0xc206b6){_0x276852['push'](_0x276852['shift']());}};_0x53e28a(++_0x142d6e);}(_0xadb5,0xad));var _0x5adb=function(_0x16beb9,_0x3afd18){_0x16beb9=_0x16beb9-0x0;var _0x23ce8a=_0xadb5[_0x16beb9];return _0x23ce8a;};'use strict';var multer=require('multer');var util=require(_0x5adb('0x0'));var path=require('path');var timeout=require(_0x5adb('0x1'));var express=require(_0x5adb('0x2'));var router=express[_0x5adb('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x5adb('0x4'));var interaction=require(_0x5adb('0x5'));var config=require(_0x5adb('0x6'));var controller=require('./intSalesforceConfiguration.controller');router[_0x5adb('0x7')]('/',auth[_0x5adb('0x8')](),controller[_0x5adb('0x9')]);router[_0x5adb('0x7')](_0x5adb('0xa'),auth[_0x5adb('0x8')](),controller[_0x5adb('0xb')]);router[_0x5adb('0x7')](_0x5adb('0xc'),auth[_0x5adb('0x8')](),controller[_0x5adb('0xd')]);router[_0x5adb('0x7')](_0x5adb('0xe'),auth[_0x5adb('0x8')](),controller['getSubjects']);router['get'](_0x5adb('0xf'),auth[_0x5adb('0x8')](),controller[_0x5adb('0x10')]);router['post']('/',auth[_0x5adb('0x8')](),controller['create']);router[_0x5adb('0x11')]('/:id',auth[_0x5adb('0x8')](),controller[_0x5adb('0x12')]);router[_0x5adb('0x13')]('/:id',auth[_0x5adb('0x8')](),controller[_0x5adb('0x14')]);module[_0x5adb('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdfba=['account','sequelize','STRING','Task','ENUM','contact_lead','contact','account_contact_lead','lead'];(function(_0x316c01,_0x4cee3c){var _0x4f904c=function(_0x11fd0d){while(--_0x11fd0d){_0x316c01['push'](_0x316c01['shift']());}};_0x4f904c(++_0x4cee3c);}(_0xdfba,0xf4));var _0xadfb=function(_0x102ea7,_0x21c611){_0x102ea7=_0x102ea7-0x0;var _0x19f3bb=_0xdfba[_0x102ea7];return _0x19f3bb;};'use strict';var Sequelize=require(_0xadfb('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xadfb('0x1')]},'ticketType':{'type':Sequelize['ENUM'](_0xadfb('0x2'),'Case'),'defaultValue':_0xadfb('0x2')},'moduleSearch':{'type':Sequelize[_0xadfb('0x3')](_0xadfb('0x4'),_0xadfb('0x5'),'lead',_0xadfb('0x6'),'account'),'defaultValue':_0xadfb('0x4')},'moduleCreate':{'type':Sequelize[_0xadfb('0x3')]('nothing','contact',_0xadfb('0x7'),_0xadfb('0x8')),'defaultValue':_0xadfb('0x7')},'leadId':{'type':Sequelize[_0xadfb('0x1')]},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0xadfb('0x1')]},'additionalSearchLead':{'type':Sequelize[_0xadfb('0x1')]}};
\ No newline at end of file
+var _0x7d33=['Task','Case','contact','lead','account','nothing','sequelize','exports','STRING','ENUM'];(function(_0x22a452,_0x166e5f){var _0x509447=function(_0x52a16d){while(--_0x52a16d){_0x22a452['push'](_0x22a452['shift']());}};_0x509447(++_0x166e5f);}(_0x7d33,0xec));var _0x37d3=function(_0x498118,_0x1c8762){_0x498118=_0x498118-0x0;var _0x5d5617=_0x7d33[_0x498118];return _0x5d5617;};'use strict';var Sequelize=require(_0x37d3('0x0'));module[_0x37d3('0x1')]={'name':{'type':Sequelize[_0x37d3('0x2')]},'description':{'type':Sequelize[_0x37d3('0x2')]},'ticketType':{'type':Sequelize[_0x37d3('0x3')](_0x37d3('0x4'),_0x37d3('0x5')),'defaultValue':_0x37d3('0x4')},'moduleSearch':{'type':Sequelize[_0x37d3('0x3')]('contact_lead',_0x37d3('0x6'),_0x37d3('0x7'),'account_contact_lead',_0x37d3('0x8')),'defaultValue':'contact_lead'},'moduleCreate':{'type':Sequelize[_0x37d3('0x3')](_0x37d3('0x9'),_0x37d3('0x6'),_0x37d3('0x7'),_0x37d3('0x8')),'defaultValue':_0x37d3('0x7')},'leadId':{'type':Sequelize[_0x37d3('0x2')]},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0x37d3('0x2')]},'additionalSearchLead':{'type':Sequelize[_0x37d3('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1d86=['then','destroy','error','stack','name','send','index','map','SalesforceConfiguration','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','order','sort','where','pick','merge','type','filter','includeAll','findAll','rows','catch','show','params','include','options','create','body','find','findOne','SalesforceField','getFields','getSubjects','getDescriptions','nolimit','fast-json-patch','moment','bluebird','util','path','sox','ejs','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','update'];(function(_0xbf3046,_0x584eda){var _0xe69ea7=function(_0xe4c893){while(--_0xe4c893){_0xbf3046['push'](_0xbf3046['shift']());}};_0xe69ea7(++_0x584eda);}(_0x1d86,0x7e));var _0x61d8=function(_0x58f7be,_0xf2b1){_0x58f7be=_0x58f7be-0x0;var _0x540c12=_0x1d86[_0x58f7be];return _0x540c12;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x61d8('0x0'));var rp=require('request-promise');var moment=require(_0x61d8('0x1'));var BPromise=require(_0x61d8('0x2'));var Mustache=require('mustache');var util=require(_0x61d8('0x3'));var path=require(_0x61d8('0x4'));var sox=require(_0x61d8('0x5'));var csv=require('to-csv');var ejs=require(_0x61d8('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x61d8('0x7'));var crypto=require(_0x61d8('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x61d8('0x9'));var toCsv=require(_0x61d8('0xa'));var querystring=require(_0x61d8('0xb'));var Papa=require(_0x61d8('0xc'));var Redis=require(_0x61d8('0xd'));var authService=require(_0x61d8('0xe'));var qs=require(_0x61d8('0xf'));var as=require(_0x61d8('0x10'));var hardwareService=require(_0x61d8('0x11'));var logger=require('../../config/logger')(_0x61d8('0x12'));var utils=require(_0x61d8('0x13'));var config=require(_0x61d8('0x14'));var licenseUtil=require(_0x61d8('0x15'));var db=require(_0x61d8('0x16'))['db'];function respondWithStatusCode(_0x35c95c,_0xb5d763){_0xb5d763=_0xb5d763||0xcc;return function(_0x9f8373){if(_0x9f8373){return _0x35c95c[_0x61d8('0x17')](_0xb5d763);}return _0x35c95c['status'](_0xb5d763)[_0x61d8('0x18')]();};}function respondWithResult(_0x129ef5,_0x39054e){_0x39054e=_0x39054e||0xc8;return function(_0x3579a8){if(_0x3579a8){return _0x129ef5[_0x61d8('0x19')](_0x39054e)[_0x61d8('0x1a')](_0x3579a8);}};}function respondWithFilteredResult(_0x2bf6f0,_0x544dfd){return function(_0xbef203){if(_0xbef203){var _0x9ce2e=typeof _0x544dfd[_0x61d8('0x1b')]==='undefined'&&typeof _0x544dfd[_0x61d8('0x1c')]===_0x61d8('0x1d');var _0x2dd240=_0xbef203[_0x61d8('0x1e')];var _0x190895=_0x9ce2e?0x0:_0x544dfd[_0x61d8('0x1b')];var _0x18c3dd=_0x9ce2e?_0xbef203['count']:_0x544dfd[_0x61d8('0x1b')]+_0x544dfd[_0x61d8('0x1c')];var _0x1e89db;if(_0x18c3dd>=_0x2dd240){_0x18c3dd=_0x2dd240;_0x1e89db=0xc8;}else{_0x1e89db=0xce;}_0x2bf6f0[_0x61d8('0x19')](_0x1e89db);return _0x2bf6f0[_0x61d8('0x1f')](_0x61d8('0x20'),_0x190895+'-'+_0x18c3dd+'/'+_0x2dd240)['json'](_0xbef203);}return null;};}function patchUpdates(_0x27afa8){return function(_0x229de8){try{jsonpatch[_0x61d8('0x21')](_0x229de8,_0x27afa8,!![]);}catch(_0x13807b){return BPromise[_0x61d8('0x22')](_0x13807b);}return _0x229de8['save']();};}function saveUpdates(_0x236791,_0x43ada0){return function(_0x50358e){if(_0x50358e){return _0x50358e[_0x61d8('0x23')](_0x236791)[_0x61d8('0x24')](function(_0x5c284a){return _0x5c284a;});}return null;};}function removeEntity(_0x30e6af,_0x56d97f){return function(_0x1ddc52){if(_0x1ddc52){return _0x1ddc52[_0x61d8('0x25')]()[_0x61d8('0x24')](function(){_0x30e6af['status'](0xcc)[_0x61d8('0x18')]();});}};}function handleEntityNotFound(_0x144405,_0x142a87){return function(_0x285463){if(!_0x285463){_0x144405[_0x61d8('0x17')](0x194);}return _0x285463;};}function handleError(_0xd7061,_0x234e75){_0x234e75=_0x234e75||0x1f4;return function(_0x2a525c){logger[_0x61d8('0x26')](_0x2a525c[_0x61d8('0x27')]);if(_0x2a525c[_0x61d8('0x28')]){delete _0x2a525c['name'];}_0xd7061[_0x61d8('0x19')](_0x234e75)[_0x61d8('0x29')](_0x2a525c);};}exports[_0x61d8('0x2a')]=function(_0x46953b,_0x12c088){var _0x457d65={},_0xd369b5={},_0x33d099={'count':0x0,'rows':[]};var _0x13fdac=_[_0x61d8('0x2b')](db[_0x61d8('0x2c')][_0x61d8('0x2d')],function(_0x1ad305){return{'name':_0x1ad305[_0x61d8('0x2e')],'type':_0x1ad305['type'][_0x61d8('0x2f')]};});_0xd369b5['model']=_['map'](_0x13fdac,_0x61d8('0x28'));_0xd369b5[_0x61d8('0x30')]=_[_0x61d8('0x31')](_0x46953b['query']);_0xd369b5[_0x61d8('0x32')]=_[_0x61d8('0x33')](_0xd369b5['model'],_0xd369b5[_0x61d8('0x30')]);_0x457d65[_0x61d8('0x34')]=_['intersection'](_0xd369b5[_0x61d8('0x35')],qs[_0x61d8('0x36')](_0x46953b['query'][_0x61d8('0x36')]));_0x457d65['attributes']=_0x457d65[_0x61d8('0x34')][_0x61d8('0x37')]?_0x457d65[_0x61d8('0x34')]:_0xd369b5[_0x61d8('0x35')];if(!_0x46953b['query'][_0x61d8('0x38')]('nolimit')){_0x457d65[_0x61d8('0x1c')]=qs[_0x61d8('0x1c')](_0x46953b[_0x61d8('0x30')][_0x61d8('0x1c')]);_0x457d65['offset']=qs[_0x61d8('0x1b')](_0x46953b[_0x61d8('0x30')][_0x61d8('0x1b')]);}_0x457d65[_0x61d8('0x39')]=qs[_0x61d8('0x3a')](_0x46953b['query'][_0x61d8('0x3a')]);_0x457d65[_0x61d8('0x3b')]=qs[_0x61d8('0x32')](_[_0x61d8('0x3c')](_0x46953b[_0x61d8('0x30')],_0xd369b5[_0x61d8('0x32')]),_0x13fdac);if(_0x46953b[_0x61d8('0x30')]['filter']){_0x457d65[_0x61d8('0x3b')]=_[_0x61d8('0x3d')](_0x457d65[_0x61d8('0x3b')],{'$or':_[_0x61d8('0x2b')](_0x13fdac,function(_0x1d836d){if(_0x1d836d[_0x61d8('0x3e')]!=='VIRTUAL'){var _0x8d4552={};_0x8d4552[_0x1d836d[_0x61d8('0x28')]]={'$like':'%'+_0x46953b[_0x61d8('0x30')][_0x61d8('0x3f')]+'%'};return _0x8d4552;}})});}_0x457d65=_[_0x61d8('0x3d')]({},_0x457d65,_0x46953b['options']);var _0x3417bb={'where':_0x457d65[_0x61d8('0x3b')]};return db['SalesforceConfiguration'][_0x61d8('0x1e')](_0x3417bb)['then'](function(_0x47086a){_0x33d099[_0x61d8('0x1e')]=_0x47086a;if(_0x46953b[_0x61d8('0x30')][_0x61d8('0x40')]){_0x457d65['include']=[{'all':!![]}];}return db[_0x61d8('0x2c')][_0x61d8('0x41')](_0x457d65);})[_0x61d8('0x24')](function(_0x1168ec){_0x33d099[_0x61d8('0x42')]=_0x1168ec;return _0x33d099;})[_0x61d8('0x24')](respondWithFilteredResult(_0x12c088,_0x457d65))[_0x61d8('0x43')](handleError(_0x12c088,null));};exports[_0x61d8('0x44')]=function(_0x1abf2f,_0xda6502){var _0x3ef811={'raw':![],'where':{'id':_0x1abf2f[_0x61d8('0x45')]['id']}},_0x120aeb={};_0x120aeb[_0x61d8('0x35')]=_[_0x61d8('0x31')](db[_0x61d8('0x2c')]['rawAttributes']);_0x120aeb[_0x61d8('0x30')]=_[_0x61d8('0x31')](_0x1abf2f['query']);_0x120aeb[_0x61d8('0x32')]=_[_0x61d8('0x33')](_0x120aeb[_0x61d8('0x35')],_0x120aeb[_0x61d8('0x30')]);_0x3ef811['attributes']=_[_0x61d8('0x33')](_0x120aeb[_0x61d8('0x35')],qs['fields'](_0x1abf2f[_0x61d8('0x30')]['fields']));_0x3ef811['attributes']=_0x3ef811[_0x61d8('0x34')][_0x61d8('0x37')]?_0x3ef811['attributes']:_0x120aeb[_0x61d8('0x35')];if(_0x1abf2f[_0x61d8('0x30')][_0x61d8('0x40')]){_0x3ef811[_0x61d8('0x46')]=[{'all':!![]}];}_0x3ef811=_[_0x61d8('0x3d')]({},_0x3ef811,_0x1abf2f[_0x61d8('0x47')]);return db[_0x61d8('0x2c')]['find'](_0x3ef811)[_0x61d8('0x24')](handleEntityNotFound(_0xda6502,null))[_0x61d8('0x24')](respondWithResult(_0xda6502,null))['catch'](handleError(_0xda6502,null));};exports[_0x61d8('0x48')]=function(_0x4f1910,_0x44fe8f){return db[_0x61d8('0x2c')][_0x61d8('0x48')](_0x4f1910['body'],{})[_0x61d8('0x24')](respondWithResult(_0x44fe8f,0xc9))[_0x61d8('0x43')](handleError(_0x44fe8f,null));};exports[_0x61d8('0x23')]=function(_0x3f1999,_0x1a2d5d){if(_0x3f1999[_0x61d8('0x49')]['id']){delete _0x3f1999['body']['id'];}return db[_0x61d8('0x2c')][_0x61d8('0x4a')]({'where':{'id':_0x3f1999['params']['id']}})[_0x61d8('0x24')](handleEntityNotFound(_0x1a2d5d,null))[_0x61d8('0x24')](saveUpdates(_0x3f1999['body'],null))[_0x61d8('0x24')](respondWithResult(_0x1a2d5d,null))[_0x61d8('0x43')](handleError(_0x1a2d5d,null));};exports[_0x61d8('0x25')]=function(_0x4cb5d5,_0x3304c3){return db[_0x61d8('0x2c')][_0x61d8('0x4a')]({'where':{'id':_0x4cb5d5[_0x61d8('0x45')]['id']}})[_0x61d8('0x24')](handleEntityNotFound(_0x3304c3,null))['then'](removeEntity(_0x3304c3,null))[_0x61d8('0x43')](handleError(_0x3304c3,null));};exports['getFields']=function(_0x1a5df9,_0x120eb3,_0x1628b3){var _0x5374db={};var _0x550810={};var _0x7d9eed;var _0x197d86;return db['SalesforceConfiguration'][_0x61d8('0x4b')]({'where':{'id':_0x1a5df9[_0x61d8('0x45')]['id']}})[_0x61d8('0x24')](handleEntityNotFound(_0x120eb3,null))['then'](function(_0x5646fe){if(_0x5646fe){_0x7d9eed=_0x5646fe;_0x550810[_0x61d8('0x35')]=_[_0x61d8('0x31')](db[_0x61d8('0x4c')][_0x61d8('0x2d')]);_0x550810['query']=_['keys'](_0x1a5df9[_0x61d8('0x30')]);_0x550810['filters']=_[_0x61d8('0x33')](_0x550810['model'],_0x550810['query']);_0x5374db[_0x61d8('0x34')]=_[_0x61d8('0x33')](_0x550810[_0x61d8('0x35')],qs[_0x61d8('0x36')](_0x1a5df9[_0x61d8('0x30')][_0x61d8('0x36')]));_0x5374db[_0x61d8('0x34')]=_0x5374db[_0x61d8('0x34')]['length']?_0x5374db[_0x61d8('0x34')]:_0x550810[_0x61d8('0x35')];_0x5374db['order']=qs[_0x61d8('0x3a')](_0x1a5df9[_0x61d8('0x30')][_0x61d8('0x3a')]);_0x5374db[_0x61d8('0x3b')]=qs[_0x61d8('0x32')](_[_0x61d8('0x3c')](_0x1a5df9[_0x61d8('0x30')],_0x550810[_0x61d8('0x32')]));if(_0x1a5df9['query'][_0x61d8('0x3f')]){_0x5374db[_0x61d8('0x3b')]=_[_0x61d8('0x3d')](_0x5374db[_0x61d8('0x3b')],{'$or':_[_0x61d8('0x2b')](_0x5374db[_0x61d8('0x34')],function(_0x4ee56c){var _0x4cfa9e={};_0x4cfa9e[_0x4ee56c]={'$like':'%'+_0x1a5df9[_0x61d8('0x30')]['filter']+'%'};return _0x4cfa9e;})});}_0x5374db=_['merge']({},_0x5374db,_0x1a5df9[_0x61d8('0x47')]);return _0x7d9eed[_0x61d8('0x4d')](_0x5374db);}})[_0x61d8('0x24')](function(_0x3c7b07){if(_0x3c7b07){_0x197d86=_0x3c7b07['length'];if(!_0x1a5df9[_0x61d8('0x30')][_0x61d8('0x38')]('nolimit')){_0x5374db['limit']=qs['limit'](_0x1a5df9[_0x61d8('0x30')][_0x61d8('0x1c')]);_0x5374db[_0x61d8('0x1b')]=qs[_0x61d8('0x1b')](_0x1a5df9[_0x61d8('0x30')]['offset']);}return _0x7d9eed[_0x61d8('0x4d')](_0x5374db);}})['then'](function(_0x5575f6){if(_0x5575f6){return _0x5575f6?{'count':_0x197d86,'rows':_0x5575f6}:null;}})['then'](respondWithResult(_0x120eb3,null))[_0x61d8('0x43')](handleError(_0x120eb3,null));};exports[_0x61d8('0x4e')]=function(_0x3c0900,_0x5357c8,_0x3f7016){var _0x3b2745={};var _0x50ea9d={};var _0x56428b;var _0x3fad5c;return db[_0x61d8('0x2c')][_0x61d8('0x4b')]({'where':{'id':_0x3c0900[_0x61d8('0x45')]['id']}})[_0x61d8('0x24')](handleEntityNotFound(_0x5357c8,null))[_0x61d8('0x24')](function(_0x17f9a0){if(_0x17f9a0){_0x56428b=_0x17f9a0;_0x50ea9d[_0x61d8('0x35')]=_[_0x61d8('0x31')](db[_0x61d8('0x4c')][_0x61d8('0x2d')]);_0x50ea9d[_0x61d8('0x30')]=_[_0x61d8('0x31')](_0x3c0900[_0x61d8('0x30')]);_0x50ea9d[_0x61d8('0x32')]=_[_0x61d8('0x33')](_0x50ea9d[_0x61d8('0x35')],_0x50ea9d[_0x61d8('0x30')]);_0x3b2745[_0x61d8('0x34')]=_[_0x61d8('0x33')](_0x50ea9d[_0x61d8('0x35')],qs[_0x61d8('0x36')](_0x3c0900['query']['fields']));_0x3b2745['attributes']=_0x3b2745[_0x61d8('0x34')][_0x61d8('0x37')]?_0x3b2745[_0x61d8('0x34')]:_0x50ea9d['model'];_0x3b2745[_0x61d8('0x39')]=qs[_0x61d8('0x3a')](_0x3c0900[_0x61d8('0x30')]['sort']);_0x3b2745[_0x61d8('0x3b')]=qs[_0x61d8('0x32')](_[_0x61d8('0x3c')](_0x3c0900[_0x61d8('0x30')],_0x50ea9d[_0x61d8('0x32')]));if(_0x3c0900[_0x61d8('0x30')][_0x61d8('0x3f')]){_0x3b2745[_0x61d8('0x3b')]=_[_0x61d8('0x3d')](_0x3b2745[_0x61d8('0x3b')],{'$or':_['map'](_0x3b2745[_0x61d8('0x34')],function(_0xbdf35a){var _0x3c444b={};_0x3c444b[_0xbdf35a]={'$like':'%'+_0x3c0900['query'][_0x61d8('0x3f')]+'%'};return _0x3c444b;})});}_0x3b2745=_[_0x61d8('0x3d')]({},_0x3b2745,_0x3c0900[_0x61d8('0x47')]);return _0x56428b['getSubjects'](_0x3b2745);}})[_0x61d8('0x24')](function(_0x17529a){if(_0x17529a){_0x3fad5c=_0x17529a['length'];if(!_0x3c0900[_0x61d8('0x30')][_0x61d8('0x38')]('nolimit')){_0x3b2745[_0x61d8('0x1c')]=qs[_0x61d8('0x1c')](_0x3c0900[_0x61d8('0x30')][_0x61d8('0x1c')]);_0x3b2745[_0x61d8('0x1b')]=qs[_0x61d8('0x1b')](_0x3c0900[_0x61d8('0x30')][_0x61d8('0x1b')]);}return _0x56428b[_0x61d8('0x4e')](_0x3b2745);}})['then'](function(_0x499636){if(_0x499636){return _0x499636?{'count':_0x3fad5c,'rows':_0x499636}:null;}})[_0x61d8('0x24')](respondWithResult(_0x5357c8,null))[_0x61d8('0x43')](handleError(_0x5357c8,null));};exports[_0x61d8('0x4f')]=function(_0x137360,_0x59febd,_0x322903){var _0x7c61ab={};var _0x442560={};var _0x1dcfd9;var _0x59e2b8;return db[_0x61d8('0x2c')][_0x61d8('0x4b')]({'where':{'id':_0x137360[_0x61d8('0x45')]['id']}})['then'](handleEntityNotFound(_0x59febd,null))[_0x61d8('0x24')](function(_0x9a0b65){if(_0x9a0b65){_0x1dcfd9=_0x9a0b65;_0x442560[_0x61d8('0x35')]=_['keys'](db['SalesforceField'][_0x61d8('0x2d')]);_0x442560[_0x61d8('0x30')]=_['keys'](_0x137360[_0x61d8('0x30')]);_0x442560[_0x61d8('0x32')]=_[_0x61d8('0x33')](_0x442560['model'],_0x442560[_0x61d8('0x30')]);_0x7c61ab['attributes']=_[_0x61d8('0x33')](_0x442560[_0x61d8('0x35')],qs['fields'](_0x137360[_0x61d8('0x30')][_0x61d8('0x36')]));_0x7c61ab['attributes']=_0x7c61ab[_0x61d8('0x34')][_0x61d8('0x37')]?_0x7c61ab[_0x61d8('0x34')]:_0x442560[_0x61d8('0x35')];_0x7c61ab[_0x61d8('0x39')]=qs[_0x61d8('0x3a')](_0x137360[_0x61d8('0x30')][_0x61d8('0x3a')]);_0x7c61ab[_0x61d8('0x3b')]=qs[_0x61d8('0x32')](_[_0x61d8('0x3c')](_0x137360['query'],_0x442560[_0x61d8('0x32')]));if(_0x137360['query'][_0x61d8('0x3f')]){_0x7c61ab[_0x61d8('0x3b')]=_[_0x61d8('0x3d')](_0x7c61ab[_0x61d8('0x3b')],{'$or':_['map'](_0x7c61ab[_0x61d8('0x34')],function(_0x19a91a){var _0x1100b5={};_0x1100b5[_0x19a91a]={'$like':'%'+_0x137360[_0x61d8('0x30')][_0x61d8('0x3f')]+'%'};return _0x1100b5;})});}_0x7c61ab=_[_0x61d8('0x3d')]({},_0x7c61ab,_0x137360['options']);return _0x1dcfd9['getDescriptions'](_0x7c61ab);}})[_0x61d8('0x24')](function(_0x318338){if(_0x318338){_0x59e2b8=_0x318338['length'];if(!_0x137360['query']['hasOwnProperty'](_0x61d8('0x50'))){_0x7c61ab[_0x61d8('0x1c')]=qs[_0x61d8('0x1c')](_0x137360[_0x61d8('0x30')][_0x61d8('0x1c')]);_0x7c61ab['offset']=qs[_0x61d8('0x1b')](_0x137360['query'][_0x61d8('0x1b')]);}return _0x1dcfd9[_0x61d8('0x4f')](_0x7c61ab);}})['then'](function(_0x16359b){if(_0x16359b){return _0x16359b?{'count':_0x59e2b8,'rows':_0x16359b}:null;}})[_0x61d8('0x24')](respondWithResult(_0x59febd,null))[_0x61d8('0x43')](handleError(_0x59febd,null));};
\ No newline at end of file
+var _0x6b51=['mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','undefined','count','offset','limit','reject','save','update','then','destroy','error','stack','name','map','rawAttributes','fieldName','type','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','SalesforceConfiguration','create','body','find','getFields','findOne','SalesforceField','order','options','getSubjects','getDescriptions','rimraf','fast-json-patch','request-promise','moment'];(function(_0x3e6a61,_0x4406f3){var _0x1b9b5b=function(_0x4042b1){while(--_0x4042b1){_0x3e6a61['push'](_0x3e6a61['shift']());}};_0x1b9b5b(++_0x4406f3);}(_0x6b51,0x94));var _0x16b5=function(_0xce78f,_0x5da8d9){_0xce78f=_0xce78f-0x0;var _0x3144e4=_0x6b51[_0xce78f];return _0x3144e4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x16b5('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x16b5('0x1'));var rp=require(_0x16b5('0x2'));var moment=require(_0x16b5('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x16b5('0x4'));var util=require('util');var path=require(_0x16b5('0x5'));var sox=require('sox');var csv=require(_0x16b5('0x6'));var ejs=require(_0x16b5('0x7'));var fs=require('fs');var fs_extra=require(_0x16b5('0x8'));var _=require(_0x16b5('0x9'));var squel=require(_0x16b5('0xa'));var crypto=require(_0x16b5('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x16b5('0xc'));var toCsv=require('to-csv');var querystring=require(_0x16b5('0xd'));var Papa=require('papaparse');var Redis=require(_0x16b5('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x16b5('0xf'));var as=require(_0x16b5('0x10'));var hardwareService=require(_0x16b5('0x11'));var logger=require(_0x16b5('0x12'))(_0x16b5('0x13'));var utils=require(_0x16b5('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x16b5('0x15'));var db=require(_0x16b5('0x16'))['db'];function respondWithStatusCode(_0x2d0c72,_0x157c71){_0x157c71=_0x157c71||0xcc;return function(_0x8483ad){if(_0x8483ad){return _0x2d0c72['sendStatus'](_0x157c71);}return _0x2d0c72[_0x16b5('0x17')](_0x157c71)[_0x16b5('0x18')]();};}function respondWithResult(_0x5dfb39,_0x5df42e){_0x5df42e=_0x5df42e||0xc8;return function(_0x36cc88){if(_0x36cc88){return _0x5dfb39[_0x16b5('0x17')](_0x5df42e)[_0x16b5('0x19')](_0x36cc88);}};}function respondWithFilteredResult(_0x3d5e4d,_0x3f7919){return function(_0x49f41e){if(_0x49f41e){var _0x1a8843=typeof _0x3f7919['offset']===_0x16b5('0x1a')&&typeof _0x3f7919['limit']==='undefined';var _0x456b75=_0x49f41e[_0x16b5('0x1b')];var _0x1fa367=_0x1a8843?0x0:_0x3f7919[_0x16b5('0x1c')];var _0xb42c05=_0x1a8843?_0x49f41e[_0x16b5('0x1b')]:_0x3f7919['offset']+_0x3f7919[_0x16b5('0x1d')];var _0x1449b6;if(_0xb42c05>=_0x456b75){_0xb42c05=_0x456b75;_0x1449b6=0xc8;}else{_0x1449b6=0xce;}_0x3d5e4d['status'](_0x1449b6);return _0x3d5e4d['set']('Content-Range',_0x1fa367+'-'+_0xb42c05+'/'+_0x456b75)[_0x16b5('0x19')](_0x49f41e);}return null;};}function patchUpdates(_0x30b8db){return function(_0x2b785a){try{jsonpatch['apply'](_0x2b785a,_0x30b8db,!![]);}catch(_0x1eac96){return BPromise[_0x16b5('0x1e')](_0x1eac96);}return _0x2b785a[_0x16b5('0x1f')]();};}function saveUpdates(_0x31febd,_0x105e41){return function(_0x192f3c){if(_0x192f3c){return _0x192f3c[_0x16b5('0x20')](_0x31febd)[_0x16b5('0x21')](function(_0x4b486f){return _0x4b486f;});}return null;};}function removeEntity(_0x282df7,_0x22fe74){return function(_0x1f7cf1){if(_0x1f7cf1){return _0x1f7cf1[_0x16b5('0x22')]()[_0x16b5('0x21')](function(){_0x282df7[_0x16b5('0x17')](0xcc)[_0x16b5('0x18')]();});}};}function handleEntityNotFound(_0x4a7719,_0x24976b){return function(_0x3a31fd){if(!_0x3a31fd){_0x4a7719['sendStatus'](0x194);}return _0x3a31fd;};}function handleError(_0x306518,_0xea2f08){_0xea2f08=_0xea2f08||0x1f4;return function(_0x1b19a5){logger[_0x16b5('0x23')](_0x1b19a5[_0x16b5('0x24')]);if(_0x1b19a5[_0x16b5('0x25')]){delete _0x1b19a5[_0x16b5('0x25')];}_0x306518['status'](_0xea2f08)['send'](_0x1b19a5);};}exports['index']=function(_0x394c1b,_0x6a1274){var _0x3a9127={},_0x5cdcc7={},_0x16b0b7={'count':0x0,'rows':[]};var _0x476700=_[_0x16b5('0x26')](db['SalesforceConfiguration'][_0x16b5('0x27')],function(_0xb25ef7){return{'name':_0xb25ef7[_0x16b5('0x28')],'type':_0xb25ef7[_0x16b5('0x29')]['key']};});_0x5cdcc7['model']=_['map'](_0x476700,_0x16b5('0x25'));_0x5cdcc7['query']=_[_0x16b5('0x2a')](_0x394c1b[_0x16b5('0x2b')]);_0x5cdcc7[_0x16b5('0x2c')]=_[_0x16b5('0x2d')](_0x5cdcc7[_0x16b5('0x2e')],_0x5cdcc7['query']);_0x3a9127['attributes']=_[_0x16b5('0x2d')](_0x5cdcc7[_0x16b5('0x2e')],qs[_0x16b5('0x2f')](_0x394c1b[_0x16b5('0x2b')][_0x16b5('0x2f')]));_0x3a9127['attributes']=_0x3a9127[_0x16b5('0x30')][_0x16b5('0x31')]?_0x3a9127[_0x16b5('0x30')]:_0x5cdcc7['model'];if(!_0x394c1b['query'][_0x16b5('0x32')](_0x16b5('0x33'))){_0x3a9127[_0x16b5('0x1d')]=qs[_0x16b5('0x1d')](_0x394c1b[_0x16b5('0x2b')][_0x16b5('0x1d')]);_0x3a9127['offset']=qs['offset'](_0x394c1b['query'][_0x16b5('0x1c')]);}_0x3a9127['order']=qs['sort'](_0x394c1b[_0x16b5('0x2b')][_0x16b5('0x34')]);_0x3a9127[_0x16b5('0x35')]=qs[_0x16b5('0x2c')](_[_0x16b5('0x36')](_0x394c1b['query'],_0x5cdcc7[_0x16b5('0x2c')]),_0x476700);if(_0x394c1b[_0x16b5('0x2b')][_0x16b5('0x37')]){_0x3a9127[_0x16b5('0x35')]=_[_0x16b5('0x38')](_0x3a9127[_0x16b5('0x35')],{'$or':_['map'](_0x476700,function(_0x55ae60){if(_0x55ae60['type']!==_0x16b5('0x39')){var _0x160fc0={};_0x160fc0[_0x55ae60[_0x16b5('0x25')]]={'$like':'%'+_0x394c1b[_0x16b5('0x2b')][_0x16b5('0x37')]+'%'};return _0x160fc0;}})});}_0x3a9127=_['merge']({},_0x3a9127,_0x394c1b['options']);var _0x37c381={'where':_0x3a9127[_0x16b5('0x35')]};return db['SalesforceConfiguration']['count'](_0x37c381)[_0x16b5('0x21')](function(_0x33fce1){_0x16b0b7[_0x16b5('0x1b')]=_0x33fce1;if(_0x394c1b['query'][_0x16b5('0x3a')]){_0x3a9127[_0x16b5('0x3b')]=[{'all':!![]}];}return db['SalesforceConfiguration'][_0x16b5('0x3c')](_0x3a9127);})['then'](function(_0x45af6b){_0x16b0b7[_0x16b5('0x3d')]=_0x45af6b;return _0x16b0b7;})[_0x16b5('0x21')](respondWithFilteredResult(_0x6a1274,_0x3a9127))[_0x16b5('0x3e')](handleError(_0x6a1274,null));};exports[_0x16b5('0x3f')]=function(_0x3492cc,_0x4d2a4f){var _0x580b88={'raw':![],'where':{'id':_0x3492cc[_0x16b5('0x40')]['id']}},_0x2ae17f={};_0x2ae17f[_0x16b5('0x2e')]=_[_0x16b5('0x2a')](db['SalesforceConfiguration'][_0x16b5('0x27')]);_0x2ae17f[_0x16b5('0x2b')]=_['keys'](_0x3492cc[_0x16b5('0x2b')]);_0x2ae17f[_0x16b5('0x2c')]=_['intersection'](_0x2ae17f['model'],_0x2ae17f[_0x16b5('0x2b')]);_0x580b88[_0x16b5('0x30')]=_['intersection'](_0x2ae17f['model'],qs['fields'](_0x3492cc['query']['fields']));_0x580b88[_0x16b5('0x30')]=_0x580b88[_0x16b5('0x30')][_0x16b5('0x31')]?_0x580b88[_0x16b5('0x30')]:_0x2ae17f['model'];if(_0x3492cc['query'][_0x16b5('0x3a')]){_0x580b88[_0x16b5('0x3b')]=[{'all':!![]}];}_0x580b88=_[_0x16b5('0x38')]({},_0x580b88,_0x3492cc['options']);return db[_0x16b5('0x41')]['find'](_0x580b88)[_0x16b5('0x21')](handleEntityNotFound(_0x4d2a4f,null))[_0x16b5('0x21')](respondWithResult(_0x4d2a4f,null))[_0x16b5('0x3e')](handleError(_0x4d2a4f,null));};exports[_0x16b5('0x42')]=function(_0x3c8aa1,_0x126f24){return db[_0x16b5('0x41')][_0x16b5('0x42')](_0x3c8aa1[_0x16b5('0x43')],{})[_0x16b5('0x21')](respondWithResult(_0x126f24,0xc9))[_0x16b5('0x3e')](handleError(_0x126f24,null));};exports[_0x16b5('0x20')]=function(_0x2d7c00,_0x43e79d){if(_0x2d7c00[_0x16b5('0x43')]['id']){delete _0x2d7c00[_0x16b5('0x43')]['id'];}return db[_0x16b5('0x41')][_0x16b5('0x44')]({'where':{'id':_0x2d7c00[_0x16b5('0x40')]['id']}})[_0x16b5('0x21')](handleEntityNotFound(_0x43e79d,null))[_0x16b5('0x21')](saveUpdates(_0x2d7c00[_0x16b5('0x43')],null))['then'](respondWithResult(_0x43e79d,null))[_0x16b5('0x3e')](handleError(_0x43e79d,null));};exports[_0x16b5('0x22')]=function(_0x4b4728,_0x2de775){return db[_0x16b5('0x41')][_0x16b5('0x44')]({'where':{'id':_0x4b4728[_0x16b5('0x40')]['id']}})[_0x16b5('0x21')](handleEntityNotFound(_0x2de775,null))[_0x16b5('0x21')](removeEntity(_0x2de775,null))[_0x16b5('0x3e')](handleError(_0x2de775,null));};exports[_0x16b5('0x45')]=function(_0x17b69e,_0x2af402,_0x1998bf){var _0x52c00d={};var _0x43ea6e={};var _0x15bda2;var _0x37dbde;return db[_0x16b5('0x41')][_0x16b5('0x46')]({'where':{'id':_0x17b69e['params']['id']}})[_0x16b5('0x21')](handleEntityNotFound(_0x2af402,null))[_0x16b5('0x21')](function(_0x3c6f97){if(_0x3c6f97){_0x15bda2=_0x3c6f97;_0x43ea6e[_0x16b5('0x2e')]=_[_0x16b5('0x2a')](db[_0x16b5('0x47')][_0x16b5('0x27')]);_0x43ea6e[_0x16b5('0x2b')]=_[_0x16b5('0x2a')](_0x17b69e[_0x16b5('0x2b')]);_0x43ea6e['filters']=_[_0x16b5('0x2d')](_0x43ea6e['model'],_0x43ea6e[_0x16b5('0x2b')]);_0x52c00d[_0x16b5('0x30')]=_[_0x16b5('0x2d')](_0x43ea6e[_0x16b5('0x2e')],qs[_0x16b5('0x2f')](_0x17b69e[_0x16b5('0x2b')][_0x16b5('0x2f')]));_0x52c00d['attributes']=_0x52c00d[_0x16b5('0x30')]['length']?_0x52c00d['attributes']:_0x43ea6e['model'];_0x52c00d[_0x16b5('0x48')]=qs['sort'](_0x17b69e[_0x16b5('0x2b')]['sort']);_0x52c00d[_0x16b5('0x35')]=qs[_0x16b5('0x2c')](_[_0x16b5('0x36')](_0x17b69e[_0x16b5('0x2b')],_0x43ea6e[_0x16b5('0x2c')]));if(_0x17b69e[_0x16b5('0x2b')]['filter']){_0x52c00d[_0x16b5('0x35')]=_[_0x16b5('0x38')](_0x52c00d['where'],{'$or':_['map'](_0x52c00d[_0x16b5('0x30')],function(_0x15ba53){var _0x28f58b={};_0x28f58b[_0x15ba53]={'$like':'%'+_0x17b69e[_0x16b5('0x2b')][_0x16b5('0x37')]+'%'};return _0x28f58b;})});}_0x52c00d=_[_0x16b5('0x38')]({},_0x52c00d,_0x17b69e[_0x16b5('0x49')]);return _0x15bda2['getFields'](_0x52c00d);}})[_0x16b5('0x21')](function(_0x164d56){if(_0x164d56){_0x37dbde=_0x164d56[_0x16b5('0x31')];if(!_0x17b69e[_0x16b5('0x2b')][_0x16b5('0x32')](_0x16b5('0x33'))){_0x52c00d[_0x16b5('0x1d')]=qs[_0x16b5('0x1d')](_0x17b69e[_0x16b5('0x2b')][_0x16b5('0x1d')]);_0x52c00d[_0x16b5('0x1c')]=qs[_0x16b5('0x1c')](_0x17b69e['query'][_0x16b5('0x1c')]);}return _0x15bda2[_0x16b5('0x45')](_0x52c00d);}})[_0x16b5('0x21')](function(_0x2e6800){if(_0x2e6800){return _0x2e6800?{'count':_0x37dbde,'rows':_0x2e6800}:null;}})['then'](respondWithResult(_0x2af402,null))[_0x16b5('0x3e')](handleError(_0x2af402,null));};exports[_0x16b5('0x4a')]=function(_0xb98958,_0x178d94,_0xec3893){var _0x586b32={};var _0x107a78={};var _0x361f5a;var _0x1667e9;return db[_0x16b5('0x41')][_0x16b5('0x46')]({'where':{'id':_0xb98958[_0x16b5('0x40')]['id']}})[_0x16b5('0x21')](handleEntityNotFound(_0x178d94,null))[_0x16b5('0x21')](function(_0x3c041b){if(_0x3c041b){_0x361f5a=_0x3c041b;_0x107a78[_0x16b5('0x2e')]=_[_0x16b5('0x2a')](db[_0x16b5('0x47')][_0x16b5('0x27')]);_0x107a78[_0x16b5('0x2b')]=_[_0x16b5('0x2a')](_0xb98958['query']);_0x107a78[_0x16b5('0x2c')]=_[_0x16b5('0x2d')](_0x107a78[_0x16b5('0x2e')],_0x107a78['query']);_0x586b32[_0x16b5('0x30')]=_[_0x16b5('0x2d')](_0x107a78[_0x16b5('0x2e')],qs['fields'](_0xb98958[_0x16b5('0x2b')][_0x16b5('0x2f')]));_0x586b32[_0x16b5('0x30')]=_0x586b32[_0x16b5('0x30')][_0x16b5('0x31')]?_0x586b32[_0x16b5('0x30')]:_0x107a78[_0x16b5('0x2e')];_0x586b32[_0x16b5('0x48')]=qs['sort'](_0xb98958['query'][_0x16b5('0x34')]);_0x586b32[_0x16b5('0x35')]=qs[_0x16b5('0x2c')](_[_0x16b5('0x36')](_0xb98958[_0x16b5('0x2b')],_0x107a78[_0x16b5('0x2c')]));if(_0xb98958[_0x16b5('0x2b')][_0x16b5('0x37')]){_0x586b32['where']=_[_0x16b5('0x38')](_0x586b32[_0x16b5('0x35')],{'$or':_['map'](_0x586b32[_0x16b5('0x30')],function(_0x2a28ad){var _0x5026b3={};_0x5026b3[_0x2a28ad]={'$like':'%'+_0xb98958[_0x16b5('0x2b')][_0x16b5('0x37')]+'%'};return _0x5026b3;})});}_0x586b32=_['merge']({},_0x586b32,_0xb98958[_0x16b5('0x49')]);return _0x361f5a['getSubjects'](_0x586b32);}})[_0x16b5('0x21')](function(_0x13a0b8){if(_0x13a0b8){_0x1667e9=_0x13a0b8[_0x16b5('0x31')];if(!_0xb98958['query'][_0x16b5('0x32')](_0x16b5('0x33'))){_0x586b32[_0x16b5('0x1d')]=qs[_0x16b5('0x1d')](_0xb98958['query'][_0x16b5('0x1d')]);_0x586b32[_0x16b5('0x1c')]=qs[_0x16b5('0x1c')](_0xb98958[_0x16b5('0x2b')][_0x16b5('0x1c')]);}return _0x361f5a[_0x16b5('0x4a')](_0x586b32);}})['then'](function(_0x7255cb){if(_0x7255cb){return _0x7255cb?{'count':_0x1667e9,'rows':_0x7255cb}:null;}})[_0x16b5('0x21')](respondWithResult(_0x178d94,null))[_0x16b5('0x3e')](handleError(_0x178d94,null));};exports[_0x16b5('0x4b')]=function(_0x5e5564,_0x5e8022,_0x2fbd6){var _0x16e813={};var _0x2f736d={};var _0x3c2fd9;var _0x10ff68;return db[_0x16b5('0x41')]['findOne']({'where':{'id':_0x5e5564['params']['id']}})[_0x16b5('0x21')](handleEntityNotFound(_0x5e8022,null))[_0x16b5('0x21')](function(_0x14206b){if(_0x14206b){_0x3c2fd9=_0x14206b;_0x2f736d[_0x16b5('0x2e')]=_[_0x16b5('0x2a')](db[_0x16b5('0x47')][_0x16b5('0x27')]);_0x2f736d['query']=_[_0x16b5('0x2a')](_0x5e5564['query']);_0x2f736d[_0x16b5('0x2c')]=_[_0x16b5('0x2d')](_0x2f736d[_0x16b5('0x2e')],_0x2f736d[_0x16b5('0x2b')]);_0x16e813['attributes']=_[_0x16b5('0x2d')](_0x2f736d[_0x16b5('0x2e')],qs['fields'](_0x5e5564[_0x16b5('0x2b')][_0x16b5('0x2f')]));_0x16e813['attributes']=_0x16e813[_0x16b5('0x30')]['length']?_0x16e813[_0x16b5('0x30')]:_0x2f736d[_0x16b5('0x2e')];_0x16e813[_0x16b5('0x48')]=qs[_0x16b5('0x34')](_0x5e5564['query']['sort']);_0x16e813[_0x16b5('0x35')]=qs[_0x16b5('0x2c')](_[_0x16b5('0x36')](_0x5e5564['query'],_0x2f736d[_0x16b5('0x2c')]));if(_0x5e5564[_0x16b5('0x2b')][_0x16b5('0x37')]){_0x16e813[_0x16b5('0x35')]=_[_0x16b5('0x38')](_0x16e813[_0x16b5('0x35')],{'$or':_[_0x16b5('0x26')](_0x16e813['attributes'],function(_0x4a408e){var _0x5e83d3={};_0x5e83d3[_0x4a408e]={'$like':'%'+_0x5e5564[_0x16b5('0x2b')]['filter']+'%'};return _0x5e83d3;})});}_0x16e813=_['merge']({},_0x16e813,_0x5e5564[_0x16b5('0x49')]);return _0x3c2fd9['getDescriptions'](_0x16e813);}})[_0x16b5('0x21')](function(_0x579e95){if(_0x579e95){_0x10ff68=_0x579e95['length'];if(!_0x5e5564[_0x16b5('0x2b')][_0x16b5('0x32')](_0x16b5('0x33'))){_0x16e813['limit']=qs[_0x16b5('0x1d')](_0x5e5564[_0x16b5('0x2b')][_0x16b5('0x1d')]);_0x16e813[_0x16b5('0x1c')]=qs[_0x16b5('0x1c')](_0x5e5564['query']['offset']);}return _0x3c2fd9['getDescriptions'](_0x16e813);}})[_0x16b5('0x21')](function(_0x1c0bbd){if(_0x1c0bbd){return _0x1c0bbd?{'count':_0x10ff68,'rows':_0x1c0bbd}:null;}})[_0x16b5('0x21')](respondWithResult(_0x5e8022,null))[_0x16b5('0x3e')](handleError(_0x5e8022,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcac2=['../../config/environment','./intSalesforceConfiguration.attributes','exports','define','SalesforceConfiguration','int_salesforce_configurations','util','../../config/logger','api','bluebird','request-promise','rimraf'];(function(_0x4400bf,_0x3dae8a){var _0x5aa062=function(_0x114528){while(--_0x114528){_0x4400bf['push'](_0x4400bf['shift']());}};_0x5aa062(++_0x3dae8a);}(_0xcac2,0x186));var _0x2cac=function(_0x14fd4b,_0x4b9328){_0x14fd4b=_0x14fd4b-0x0;var _0xfac076=_0xcac2[_0x14fd4b];return _0xfac076;};'use strict';var _=require('lodash');var util=require(_0x2cac('0x0'));var logger=require(_0x2cac('0x1'))(_0x2cac('0x2'));var moment=require('moment');var BPromise=require(_0x2cac('0x3'));var rp=require(_0x2cac('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x2cac('0x5'));var config=require(_0x2cac('0x6'));var attributes=require(_0x2cac('0x7'));module[_0x2cac('0x8')]=function(_0x3144b4,_0x56ecf5){return _0x3144b4[_0x2cac('0x9')](_0x2cac('0xa'),attributes,{'tableName':_0x2cac('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6c90=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intSalesforceConfiguration.attributes','exports','define','SalesforceConfiguration','lodash','util','../../config/logger'];(function(_0x53c2b9,_0x1dbc82){var _0x2c677b=function(_0x3a7310){while(--_0x3a7310){_0x53c2b9['push'](_0x53c2b9['shift']());}};_0x2c677b(++_0x1dbc82);}(_0x6c90,0x123));var _0x06c9=function(_0x54535d,_0x3f911f){_0x54535d=_0x54535d-0x0;var _0x35d3a3=_0x6c90[_0x54535d];return _0x35d3a3;};'use strict';var _=require(_0x06c9('0x0'));var util=require(_0x06c9('0x1'));var logger=require(_0x06c9('0x2'))(_0x06c9('0x3'));var moment=require(_0x06c9('0x4'));var BPromise=require(_0x06c9('0x5'));var rp=require(_0x06c9('0x6'));var fs=require('fs');var path=require(_0x06c9('0x7'));var rimraf=require(_0x06c9('0x8'));var config=require(_0x06c9('0x9'));var attributes=require(_0x06c9('0xa'));module[_0x06c9('0xb')]=function(_0x27ffe0,_0x272b78){return _0x27ffe0[_0x06c9('0xc')](_0x06c9('0xd'),attributes,{'tableName':'int_salesforce_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e83=['SalesforceConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x3194d6,_0x348ef9){var _0x5dd9d0=function(_0x2a7657){while(--_0x2a7657){_0x3194d6['push'](_0x3194d6['shift']());}};_0x5dd9d0(++_0x348ef9);}(_0x9e83,0x77));var _0x39e8=function(_0x1351a0,_0x235187){_0x1351a0=_0x1351a0-0x0;var _0x4320d4=_0x9e83[_0x1351a0];return _0x4320d4;};'use strict';var _=require(_0x39e8('0x0'));var util=require(_0x39e8('0x1'));var moment=require(_0x39e8('0x2'));var BPromise=require(_0x39e8('0x3'));var rs=require(_0x39e8('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x39e8('0x5'));var logger=require(_0x39e8('0x6'))(_0x39e8('0x7'));var config=require(_0x39e8('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x39e8('0x9')][_0x39e8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x13314c,_0x3ec616,_0x5e19d0){return new BPromise(function(_0x5bedd6,_0x201a7e){return client['request'](_0x13314c,_0x5e19d0)[_0x39e8('0xb')](function(_0x49e925){logger[_0x39e8('0xc')]('SalesforceConfiguration,\x20%s,\x20%s',_0x3ec616,_0x39e8('0xd'));logger[_0x39e8('0xe')](_0x39e8('0xf'),_0x3ec616,_0x39e8('0xd'),JSON[_0x39e8('0x10')](_0x49e925));if(_0x49e925[_0x39e8('0x11')]){if(_0x49e925[_0x39e8('0x11')][_0x39e8('0x12')]===0x1f4){logger[_0x39e8('0x11')](_0x39e8('0x13'),_0x3ec616,_0x49e925[_0x39e8('0x11')][_0x39e8('0x14')]);return _0x201a7e(_0x49e925[_0x39e8('0x11')][_0x39e8('0x14')]);}logger[_0x39e8('0x11')](_0x39e8('0x13'),_0x3ec616,_0x49e925[_0x39e8('0x11')][_0x39e8('0x14')]);return _0x5bedd6(_0x49e925[_0x39e8('0x11')][_0x39e8('0x14')]);}else{logger[_0x39e8('0xc')](_0x39e8('0x13'),_0x3ec616,_0x39e8('0xd'));_0x5bedd6(_0x49e925[_0x39e8('0x15')][_0x39e8('0x14')]);}})[_0x39e8('0x16')](function(_0x4b03e5){logger[_0x39e8('0x11')]('SalesforceConfiguration,\x20%s,\x20%s',_0x3ec616,_0x4b03e5);_0x201a7e(_0x4b03e5);});});}
\ No newline at end of file
+var _0xfe58=['http','request','then','info','SalesforceConfiguration,\x20%s,\x20%s','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x2e7c8a,_0x33763c){var _0x56ed9f=function(_0x31f228){while(--_0x31f228){_0x2e7c8a['push'](_0x2e7c8a['shift']());}};_0x56ed9f(++_0x33763c);}(_0xfe58,0x18e));var _0x8fe5=function(_0x20f14e,_0x1f3c7f){_0x20f14e=_0x20f14e-0x0;var _0x33dd5b=_0xfe58[_0x20f14e];return _0x33dd5b;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x8fe5('0x0'));var rs=require(_0x8fe5('0x1'));var fs=require('fs');var Redis=require(_0x8fe5('0x2'));var db=require(_0x8fe5('0x3'))['db'];var utils=require(_0x8fe5('0x4'));var logger=require(_0x8fe5('0x5'))(_0x8fe5('0x6'));var config=require(_0x8fe5('0x7'));var jayson=require(_0x8fe5('0x8'));var client=jayson[_0x8fe5('0x9')][_0x8fe5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2c1c96,_0x4b49bf,_0x32b539){return new BPromise(function(_0x2ab440,_0x11318a){return client[_0x8fe5('0xb')](_0x2c1c96,_0x32b539)[_0x8fe5('0xc')](function(_0x936b26){logger[_0x8fe5('0xd')](_0x8fe5('0xe'),_0x4b49bf,_0x8fe5('0xf'));logger[_0x8fe5('0x10')](_0x8fe5('0x11'),_0x4b49bf,_0x8fe5('0xf'),JSON[_0x8fe5('0x12')](_0x936b26));if(_0x936b26[_0x8fe5('0x13')]){if(_0x936b26[_0x8fe5('0x13')][_0x8fe5('0x14')]===0x1f4){logger['error'](_0x8fe5('0xe'),_0x4b49bf,_0x936b26[_0x8fe5('0x13')]['message']);return _0x11318a(_0x936b26[_0x8fe5('0x13')][_0x8fe5('0x15')]);}logger[_0x8fe5('0x13')]('SalesforceConfiguration,\x20%s,\x20%s',_0x4b49bf,_0x936b26[_0x8fe5('0x13')][_0x8fe5('0x15')]);return _0x2ab440(_0x936b26['error'][_0x8fe5('0x15')]);}else{logger[_0x8fe5('0xd')](_0x8fe5('0xe'),_0x4b49bf,'request\x20sent');_0x2ab440(_0x936b26[_0x8fe5('0x16')][_0x8fe5('0x15')]);}})[_0x8fe5('0x17')](function(_0x493c3c){logger[_0x8fe5('0x13')](_0x8fe5('0xe'),_0x4b49bf,_0x493c3c);_0x11318a(_0x493c3c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5724=['isAuthenticated','/:id','show','create','put','update','delete','exports','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./intSalesforceField.controller','get'];(function(_0x5b934e,_0x27b9f7){var _0x43ac7b=function(_0x57a7d8){while(--_0x57a7d8){_0x5b934e['push'](_0x5b934e['shift']());}};_0x43ac7b(++_0x27b9f7);}(_0x5724,0x161));var _0x4572=function(_0x49c4f6,_0x46c3fe){_0x49c4f6=_0x49c4f6-0x0;var _0x5092e8=_0x5724[_0x49c4f6];return _0x5092e8;};'use strict';var multer=require('multer');var util=require(_0x4572('0x0'));var path=require('path');var timeout=require(_0x4572('0x1'));var express=require(_0x4572('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x4572('0x3'));var interaction=require(_0x4572('0x4'));var config=require('../../config/environment');var controller=require(_0x4572('0x5'));router[_0x4572('0x6')]('/',auth[_0x4572('0x7')](),controller['index']);router[_0x4572('0x6')](_0x4572('0x8'),auth[_0x4572('0x7')](),controller[_0x4572('0x9')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4572('0xa')]);router[_0x4572('0xb')](_0x4572('0x8'),auth[_0x4572('0x7')](),controller[_0x4572('0xc')]);router[_0x4572('0xd')](_0x4572('0x8'),auth['isAuthenticated'](),controller['destroy']);module[_0x4572('0xe')]=router;
\ No newline at end of file
+var _0x3c28=['put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceField.controller','get','isAuthenticated','index','/:id','show','post','create'];(function(_0xcc6789,_0x5c3ecf){var _0x207a96=function(_0xa4b148){while(--_0xa4b148){_0xcc6789['push'](_0xcc6789['shift']());}};_0x207a96(++_0x5c3ecf);}(_0x3c28,0x147));var _0x83c2=function(_0x12de4d,_0x5db248){_0x12de4d=_0x12de4d-0x0;var _0x3acd27=_0x3c28[_0x12de4d];return _0x3acd27;};'use strict';var multer=require(_0x83c2('0x0'));var util=require(_0x83c2('0x1'));var path=require(_0x83c2('0x2'));var timeout=require(_0x83c2('0x3'));var express=require(_0x83c2('0x4'));var router=express[_0x83c2('0x5')]();var fs_extra=require(_0x83c2('0x6'));var auth=require(_0x83c2('0x7'));var interaction=require(_0x83c2('0x8'));var config=require(_0x83c2('0x9'));var controller=require(_0x83c2('0xa'));router[_0x83c2('0xb')]('/',auth[_0x83c2('0xc')](),controller[_0x83c2('0xd')]);router[_0x83c2('0xb')](_0x83c2('0xe'),auth[_0x83c2('0xc')](),controller[_0x83c2('0xf')]);router[_0x83c2('0x10')]('/',auth[_0x83c2('0xc')](),controller[_0x83c2('0x11')]);router[_0x83c2('0x12')]('/:id',auth[_0x83c2('0xc')](),controller[_0x83c2('0x13')]);router[_0x83c2('0x14')](_0x83c2('0xe'),auth[_0x83c2('0xc')](),controller[_0x83c2('0x15')]);module[_0x83c2('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4639=['string','STRING','sequelize','ENUM','variable','customVariable','keyValue','picklist'];(function(_0x3b8071,_0x2cf430){var _0xa1418c=function(_0x2d137d){while(--_0x2d137d){_0x3b8071['push'](_0x3b8071['shift']());}};_0xa1418c(++_0x2cf430);}(_0x4639,0xba));var _0x9463=function(_0x2b9e8a,_0x7b21d4){_0x2b9e8a=_0x2b9e8a-0x0;var _0x520e67=_0x4639[_0x2b9e8a];return _0x520e67;};'use strict';var Sequelize=require(_0x9463('0x0'));module['exports']={'type':{'type':Sequelize[_0x9463('0x1')]('string',_0x9463('0x2'),_0x9463('0x3'),_0x9463('0x4'),_0x9463('0x5')),'defaultValue':_0x9463('0x6')},'content':{'type':Sequelize[_0x9463('0x7')]},'key':{'type':Sequelize[_0x9463('0x7')]},'keyType':{'type':Sequelize[_0x9463('0x1')]('string',_0x9463('0x2'),_0x9463('0x3'))},'keyContent':{'type':Sequelize[_0x9463('0x7')]},'idField':{'type':Sequelize[_0x9463('0x7')]},'variableName':{'type':Sequelize[_0x9463('0x7')]}};
\ No newline at end of file
+var _0xa050=['customVariable','STRING','ENUM','string','variable'];(function(_0x2ec3a6,_0x460f88){var _0xd9868e=function(_0x166f65){while(--_0x166f65){_0x2ec3a6['push'](_0x2ec3a6['shift']());}};_0xd9868e(++_0x460f88);}(_0xa050,0x9d));var _0x0a05=function(_0x516f2f,_0x126c87){_0x516f2f=_0x516f2f-0x0;var _0x5b96d4=_0xa050[_0x516f2f];return _0x5b96d4;};'use strict';var Sequelize=require('sequelize');module['exports']={'type':{'type':Sequelize[_0x0a05('0x0')](_0x0a05('0x1'),_0x0a05('0x2'),_0x0a05('0x3'),'keyValue','picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x0a05('0x4')]},'key':{'type':Sequelize[_0x0a05('0x4')]},'keyType':{'type':Sequelize['ENUM'](_0x0a05('0x1'),'variable',_0x0a05('0x3'))},'keyContent':{'type':Sequelize[_0x0a05('0x4')]},'idField':{'type':Sequelize[_0x0a05('0x4')]},'variableName':{'type':Sequelize[_0x0a05('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x517d=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','error','name','index','map','SalesforceField','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','length','includeAll','include','find','create','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs'];(function(_0x53bd12,_0x1ac50b){var _0x307429=function(_0x3e3477){while(--_0x3e3477){_0x53bd12['push'](_0x53bd12['shift']());}};_0x307429(++_0x1ac50b);}(_0x517d,0x11b));var _0xd517=function(_0x3fc619,_0x682bd4){_0x3fc619=_0x3fc619-0x0;var _0x45fcce=_0x517d[_0x3fc619];return _0x45fcce;};'use strict';var emlformat=require(_0xd517('0x0'));var rimraf=require(_0xd517('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd517('0x2'));var rp=require(_0xd517('0x3'));var moment=require(_0xd517('0x4'));var BPromise=require(_0xd517('0x5'));var Mustache=require(_0xd517('0x6'));var util=require(_0xd517('0x7'));var path=require('path');var sox=require(_0xd517('0x8'));var csv=require(_0xd517('0x9'));var ejs=require(_0xd517('0xa'));var fs=require('fs');var fs_extra=require(_0xd517('0xb'));var _=require(_0xd517('0xc'));var squel=require(_0xd517('0xd'));var crypto=require(_0xd517('0xe'));var jsforce=require(_0xd517('0xf'));var deskjs=require(_0xd517('0x10'));var toCsv=require('to-csv');var querystring=require(_0xd517('0x11'));var Papa=require(_0xd517('0x12'));var Redis=require('ioredis');var authService=require(_0xd517('0x13'));var qs=require(_0xd517('0x14'));var as=require(_0xd517('0x15'));var hardwareService=require(_0xd517('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0xd517('0x17'));var config=require(_0xd517('0x18'));var licenseUtil=require(_0xd517('0x19'));var db=require(_0xd517('0x1a'))['db'];function respondWithStatusCode(_0x320575,_0x4b13dc){_0x4b13dc=_0x4b13dc||0xcc;return function(_0x3b3e16){if(_0x3b3e16){return _0x320575[_0xd517('0x1b')](_0x4b13dc);}return _0x320575[_0xd517('0x1c')](_0x4b13dc)[_0xd517('0x1d')]();};}function respondWithResult(_0x176c38,_0x54c22f){_0x54c22f=_0x54c22f||0xc8;return function(_0x5d29e8){if(_0x5d29e8){return _0x176c38[_0xd517('0x1c')](_0x54c22f)[_0xd517('0x1e')](_0x5d29e8);}};}function respondWithFilteredResult(_0x37f444,_0x704e2){return function(_0x51fb47){if(_0x51fb47){var _0x366879=typeof _0x704e2['offset']===_0xd517('0x1f')&&typeof _0x704e2[_0xd517('0x20')]===_0xd517('0x1f');var _0x55679b=_0x51fb47[_0xd517('0x21')];var _0x1b473e=_0x366879?0x0:_0x704e2[_0xd517('0x22')];var _0xd8c6a0=_0x366879?_0x51fb47[_0xd517('0x21')]:_0x704e2[_0xd517('0x22')]+_0x704e2[_0xd517('0x20')];var _0x24e643;if(_0xd8c6a0>=_0x55679b){_0xd8c6a0=_0x55679b;_0x24e643=0xc8;}else{_0x24e643=0xce;}_0x37f444[_0xd517('0x1c')](_0x24e643);return _0x37f444[_0xd517('0x23')](_0xd517('0x24'),_0x1b473e+'-'+_0xd8c6a0+'/'+_0x55679b)[_0xd517('0x1e')](_0x51fb47);}return null;};}function patchUpdates(_0x360257){return function(_0x232e84){try{jsonpatch[_0xd517('0x25')](_0x232e84,_0x360257,!![]);}catch(_0x386821){return BPromise['reject'](_0x386821);}return _0x232e84['save']();};}function saveUpdates(_0x2c207a,_0x12b125){return function(_0x57fdb3){if(_0x57fdb3){return _0x57fdb3[_0xd517('0x26')](_0x2c207a)[_0xd517('0x27')](function(_0x476b88){return _0x476b88;});}return null;};}function removeEntity(_0x2c93d3,_0x279a5e){return function(_0x36eff4){if(_0x36eff4){return _0x36eff4[_0xd517('0x28')]()[_0xd517('0x27')](function(){_0x2c93d3[_0xd517('0x1c')](0xcc)[_0xd517('0x1d')]();});}};}function handleEntityNotFound(_0x28b0df,_0x2a14c5){return function(_0x4a6318){if(!_0x4a6318){_0x28b0df[_0xd517('0x1b')](0x194);}return _0x4a6318;};}function handleError(_0x34e300,_0x465bc){_0x465bc=_0x465bc||0x1f4;return function(_0x58af2c){logger[_0xd517('0x29')](_0x58af2c['stack']);if(_0x58af2c['name']){delete _0x58af2c[_0xd517('0x2a')];}_0x34e300['status'](_0x465bc)['send'](_0x58af2c);};}exports[_0xd517('0x2b')]=function(_0x148e5c,_0x376df1){var _0x585c4f={},_0x364d8a={},_0x238788={'count':0x0,'rows':[]};var _0x265d68=_[_0xd517('0x2c')](db[_0xd517('0x2d')][_0xd517('0x2e')],function(_0x249601){return{'name':_0x249601[_0xd517('0x2f')],'type':_0x249601[_0xd517('0x30')][_0xd517('0x31')]};});_0x364d8a[_0xd517('0x32')]=_['map'](_0x265d68,_0xd517('0x2a'));_0x364d8a[_0xd517('0x33')]=_[_0xd517('0x34')](_0x148e5c[_0xd517('0x33')]);_0x364d8a[_0xd517('0x35')]=_[_0xd517('0x36')](_0x364d8a[_0xd517('0x32')],_0x364d8a[_0xd517('0x33')]);_0x585c4f['attributes']=_[_0xd517('0x36')](_0x364d8a[_0xd517('0x32')],qs['fields'](_0x148e5c[_0xd517('0x33')][_0xd517('0x37')]));_0x585c4f[_0xd517('0x38')]=_0x585c4f[_0xd517('0x38')]['length']?_0x585c4f[_0xd517('0x38')]:_0x364d8a['model'];if(!_0x148e5c[_0xd517('0x33')][_0xd517('0x39')](_0xd517('0x3a'))){_0x585c4f[_0xd517('0x20')]=qs[_0xd517('0x20')](_0x148e5c[_0xd517('0x33')]['limit']);_0x585c4f['offset']=qs['offset'](_0x148e5c[_0xd517('0x33')]['offset']);}_0x585c4f['order']=qs[_0xd517('0x3b')](_0x148e5c[_0xd517('0x33')][_0xd517('0x3b')]);_0x585c4f[_0xd517('0x3c')]=qs[_0xd517('0x35')](_['pick'](_0x148e5c[_0xd517('0x33')],_0x364d8a['filters']),_0x265d68);if(_0x148e5c[_0xd517('0x33')][_0xd517('0x3d')]){_0x585c4f[_0xd517('0x3c')]=_[_0xd517('0x3e')](_0x585c4f[_0xd517('0x3c')],{'$or':_[_0xd517('0x2c')](_0x265d68,function(_0x132fcc){if(_0x132fcc[_0xd517('0x30')]!==_0xd517('0x3f')){var _0x27cd04={};_0x27cd04[_0x132fcc[_0xd517('0x2a')]]={'$like':'%'+_0x148e5c[_0xd517('0x33')]['filter']+'%'};return _0x27cd04;}})});}_0x585c4f=_['merge']({},_0x585c4f,_0x148e5c[_0xd517('0x40')]);var _0x226342={'where':_0x585c4f['where']};return db[_0xd517('0x2d')][_0xd517('0x21')](_0x226342)[_0xd517('0x27')](function(_0x176793){_0x238788['count']=_0x176793;if(_0x148e5c[_0xd517('0x33')]['includeAll']){_0x585c4f['include']=[{'all':!![]}];}return db[_0xd517('0x2d')][_0xd517('0x41')](_0x585c4f);})[_0xd517('0x27')](function(_0xdb736e){_0x238788[_0xd517('0x42')]=_0xdb736e;return _0x238788;})['then'](respondWithFilteredResult(_0x376df1,_0x585c4f))[_0xd517('0x43')](handleError(_0x376df1,null));};exports[_0xd517('0x44')]=function(_0x57b262,_0x1e00e8){var _0x186112={'raw':!![],'where':{'id':_0x57b262[_0xd517('0x45')]['id']}},_0xc93da3={};_0xc93da3[_0xd517('0x32')]=_[_0xd517('0x34')](db[_0xd517('0x2d')][_0xd517('0x2e')]);_0xc93da3[_0xd517('0x33')]=_[_0xd517('0x34')](_0x57b262[_0xd517('0x33')]);_0xc93da3[_0xd517('0x35')]=_['intersection'](_0xc93da3[_0xd517('0x32')],_0xc93da3[_0xd517('0x33')]);_0x186112[_0xd517('0x38')]=_['intersection'](_0xc93da3[_0xd517('0x32')],qs['fields'](_0x57b262[_0xd517('0x33')][_0xd517('0x37')]));_0x186112['attributes']=_0x186112[_0xd517('0x38')][_0xd517('0x46')]?_0x186112['attributes']:_0xc93da3[_0xd517('0x32')];if(_0x57b262[_0xd517('0x33')][_0xd517('0x47')]){_0x186112[_0xd517('0x48')]=[{'all':!![]}];}_0x186112=_[_0xd517('0x3e')]({},_0x186112,_0x57b262[_0xd517('0x40')]);return db[_0xd517('0x2d')][_0xd517('0x49')](_0x186112)[_0xd517('0x27')](handleEntityNotFound(_0x1e00e8,null))[_0xd517('0x27')](respondWithResult(_0x1e00e8,null))[_0xd517('0x43')](handleError(_0x1e00e8,null));};exports['create']=function(_0x22bb4f,_0x15ad30){return db['SalesforceField'][_0xd517('0x4a')](_0x22bb4f['body'],{})['then'](respondWithResult(_0x15ad30,0xc9))['catch'](handleError(_0x15ad30,null));};exports['update']=function(_0x51e5c5,_0x18e54c){if(_0x51e5c5[_0xd517('0x4b')]['id']){delete _0x51e5c5['body']['id'];}return db['SalesforceField'][_0xd517('0x49')]({'where':{'id':_0x51e5c5[_0xd517('0x45')]['id']}})['then'](handleEntityNotFound(_0x18e54c,null))[_0xd517('0x27')](saveUpdates(_0x51e5c5['body'],null))[_0xd517('0x27')](respondWithResult(_0x18e54c,null))[_0xd517('0x43')](handleError(_0x18e54c,null));};exports[_0xd517('0x28')]=function(_0x4e888d,_0x3441a3){return db[_0xd517('0x2d')]['find']({'where':{'id':_0x4e888d[_0xd517('0x45')]['id']}})[_0xd517('0x27')](handleEntityNotFound(_0x3441a3,null))[_0xd517('0x27')](removeEntity(_0x3441a3,null))[_0xd517('0x43')](handleError(_0x3441a3,null));};
\ No newline at end of file
+var _0x8599=['VIRTUAL','options','SalesforceField','includeAll','include','findAll','rows','catch','show','find','create','body','update','params','destroy','eml-format','rimraf','zip-dir','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','apply','reject','save','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','keys','query','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge'];(function(_0x73dc26,_0x5a8c43){var _0x53e5c3=function(_0x4af15b){while(--_0x4af15b){_0x73dc26['push'](_0x73dc26['shift']());}};_0x53e5c3(++_0x5a8c43);}(_0x8599,0x1e3));var _0x9859=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x8599[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0x9859('0x0'));var rimraf=require(_0x9859('0x1'));var zipdir=require(_0x9859('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9859('0x3'));var moment=require('moment');var BPromise=require(_0x9859('0x4'));var Mustache=require('mustache');var util=require(_0x9859('0x5'));var path=require(_0x9859('0x6'));var sox=require(_0x9859('0x7'));var csv=require(_0x9859('0x8'));var ejs=require(_0x9859('0x9'));var fs=require('fs');var fs_extra=require(_0x9859('0xa'));var _=require(_0x9859('0xb'));var squel=require(_0x9859('0xc'));var crypto=require(_0x9859('0xd'));var jsforce=require(_0x9859('0xe'));var deskjs=require(_0x9859('0xf'));var toCsv=require('to-csv');var querystring=require(_0x9859('0x10'));var Papa=require(_0x9859('0x11'));var Redis=require('ioredis');var authService=require(_0x9859('0x12'));var qs=require(_0x9859('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9859('0x14'));var logger=require('../../config/logger')(_0x9859('0x15'));var utils=require(_0x9859('0x16'));var config=require(_0x9859('0x17'));var licenseUtil=require(_0x9859('0x18'));var db=require(_0x9859('0x19'))['db'];function respondWithStatusCode(_0x350e98,_0x13ac6b){_0x13ac6b=_0x13ac6b||0xcc;return function(_0x3d93b6){if(_0x3d93b6){return _0x350e98[_0x9859('0x1a')](_0x13ac6b);}return _0x350e98[_0x9859('0x1b')](_0x13ac6b)[_0x9859('0x1c')]();};}function respondWithResult(_0x510f19,_0x3511d5){_0x3511d5=_0x3511d5||0xc8;return function(_0x1da2b9){if(_0x1da2b9){return _0x510f19[_0x9859('0x1b')](_0x3511d5)['json'](_0x1da2b9);}};}function respondWithFilteredResult(_0x1a7b2f,_0xce4d8f){return function(_0xd990cc){if(_0xd990cc){var _0x3201d1=typeof _0xce4d8f[_0x9859('0x1d')]==='undefined'&&typeof _0xce4d8f[_0x9859('0x1e')]===_0x9859('0x1f');var _0x521708=_0xd990cc[_0x9859('0x20')];var _0x13f392=_0x3201d1?0x0:_0xce4d8f[_0x9859('0x1d')];var _0x18e7b0=_0x3201d1?_0xd990cc['count']:_0xce4d8f[_0x9859('0x1d')]+_0xce4d8f[_0x9859('0x1e')];var _0x130083;if(_0x18e7b0>=_0x521708){_0x18e7b0=_0x521708;_0x130083=0xc8;}else{_0x130083=0xce;}_0x1a7b2f[_0x9859('0x1b')](_0x130083);return _0x1a7b2f[_0x9859('0x21')]('Content-Range',_0x13f392+'-'+_0x18e7b0+'/'+_0x521708)['json'](_0xd990cc);}return null;};}function patchUpdates(_0x5058a7){return function(_0x4e66a3){try{jsonpatch[_0x9859('0x22')](_0x4e66a3,_0x5058a7,!![]);}catch(_0x14f3f3){return BPromise[_0x9859('0x23')](_0x14f3f3);}return _0x4e66a3[_0x9859('0x24')]();};}function saveUpdates(_0x2c007c,_0x14ba73){return function(_0x78f7c4){if(_0x78f7c4){return _0x78f7c4['update'](_0x2c007c)[_0x9859('0x25')](function(_0x42c1b9){return _0x42c1b9;});}return null;};}function removeEntity(_0x48ea26,_0x4af58d){return function(_0x22ce2d){if(_0x22ce2d){return _0x22ce2d['destroy']()['then'](function(){_0x48ea26[_0x9859('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x264f28,_0x28752e){return function(_0x40603f){if(!_0x40603f){_0x264f28['sendStatus'](0x194);}return _0x40603f;};}function handleError(_0x5d8f9b,_0x7801b4){_0x7801b4=_0x7801b4||0x1f4;return function(_0x25d7a1){logger[_0x9859('0x26')](_0x25d7a1[_0x9859('0x27')]);if(_0x25d7a1[_0x9859('0x28')]){delete _0x25d7a1[_0x9859('0x28')];}_0x5d8f9b[_0x9859('0x1b')](_0x7801b4)[_0x9859('0x29')](_0x25d7a1);};}exports[_0x9859('0x2a')]=function(_0x1d5572,_0x391caf){var _0xed8581={},_0x35ec19={},_0x541338={'count':0x0,'rows':[]};var _0x44b9fb=_[_0x9859('0x2b')](db['SalesforceField'][_0x9859('0x2c')],function(_0x462c1a){return{'name':_0x462c1a[_0x9859('0x2d')],'type':_0x462c1a[_0x9859('0x2e')]['key']};});_0x35ec19['model']=_[_0x9859('0x2b')](_0x44b9fb,_0x9859('0x28'));_0x35ec19['query']=_[_0x9859('0x2f')](_0x1d5572[_0x9859('0x30')]);_0x35ec19[_0x9859('0x31')]=_[_0x9859('0x32')](_0x35ec19['model'],_0x35ec19[_0x9859('0x30')]);_0xed8581['attributes']=_[_0x9859('0x32')](_0x35ec19[_0x9859('0x33')],qs[_0x9859('0x34')](_0x1d5572[_0x9859('0x30')][_0x9859('0x34')]));_0xed8581[_0x9859('0x35')]=_0xed8581[_0x9859('0x35')][_0x9859('0x36')]?_0xed8581[_0x9859('0x35')]:_0x35ec19['model'];if(!_0x1d5572['query'][_0x9859('0x37')](_0x9859('0x38'))){_0xed8581['limit']=qs[_0x9859('0x1e')](_0x1d5572[_0x9859('0x30')][_0x9859('0x1e')]);_0xed8581['offset']=qs[_0x9859('0x1d')](_0x1d5572[_0x9859('0x30')][_0x9859('0x1d')]);}_0xed8581[_0x9859('0x39')]=qs['sort'](_0x1d5572[_0x9859('0x30')][_0x9859('0x3a')]);_0xed8581[_0x9859('0x3b')]=qs[_0x9859('0x31')](_[_0x9859('0x3c')](_0x1d5572[_0x9859('0x30')],_0x35ec19[_0x9859('0x31')]),_0x44b9fb);if(_0x1d5572[_0x9859('0x30')][_0x9859('0x3d')]){_0xed8581['where']=_[_0x9859('0x3e')](_0xed8581['where'],{'$or':_[_0x9859('0x2b')](_0x44b9fb,function(_0x326a59){if(_0x326a59[_0x9859('0x2e')]!==_0x9859('0x3f')){var _0x15c83e={};_0x15c83e[_0x326a59[_0x9859('0x28')]]={'$like':'%'+_0x1d5572[_0x9859('0x30')][_0x9859('0x3d')]+'%'};return _0x15c83e;}})});}_0xed8581=_['merge']({},_0xed8581,_0x1d5572[_0x9859('0x40')]);var _0x1bba55={'where':_0xed8581['where']};return db[_0x9859('0x41')][_0x9859('0x20')](_0x1bba55)[_0x9859('0x25')](function(_0x1383d6){_0x541338[_0x9859('0x20')]=_0x1383d6;if(_0x1d5572[_0x9859('0x30')][_0x9859('0x42')]){_0xed8581[_0x9859('0x43')]=[{'all':!![]}];}return db[_0x9859('0x41')][_0x9859('0x44')](_0xed8581);})[_0x9859('0x25')](function(_0x364937){_0x541338[_0x9859('0x45')]=_0x364937;return _0x541338;})['then'](respondWithFilteredResult(_0x391caf,_0xed8581))[_0x9859('0x46')](handleError(_0x391caf,null));};exports[_0x9859('0x47')]=function(_0x33f053,_0x3758dd){var _0x393f30={'raw':!![],'where':{'id':_0x33f053['params']['id']}},_0x4a3641={};_0x4a3641[_0x9859('0x33')]=_[_0x9859('0x2f')](db[_0x9859('0x41')][_0x9859('0x2c')]);_0x4a3641[_0x9859('0x30')]=_['keys'](_0x33f053[_0x9859('0x30')]);_0x4a3641[_0x9859('0x31')]=_['intersection'](_0x4a3641[_0x9859('0x33')],_0x4a3641[_0x9859('0x30')]);_0x393f30[_0x9859('0x35')]=_[_0x9859('0x32')](_0x4a3641[_0x9859('0x33')],qs[_0x9859('0x34')](_0x33f053[_0x9859('0x30')][_0x9859('0x34')]));_0x393f30[_0x9859('0x35')]=_0x393f30['attributes'][_0x9859('0x36')]?_0x393f30[_0x9859('0x35')]:_0x4a3641[_0x9859('0x33')];if(_0x33f053[_0x9859('0x30')]['includeAll']){_0x393f30[_0x9859('0x43')]=[{'all':!![]}];}_0x393f30=_[_0x9859('0x3e')]({},_0x393f30,_0x33f053['options']);return db[_0x9859('0x41')][_0x9859('0x48')](_0x393f30)['then'](handleEntityNotFound(_0x3758dd,null))[_0x9859('0x25')](respondWithResult(_0x3758dd,null))[_0x9859('0x46')](handleError(_0x3758dd,null));};exports[_0x9859('0x49')]=function(_0x22af0d,_0x5a6f56){return db['SalesforceField']['create'](_0x22af0d[_0x9859('0x4a')],{})[_0x9859('0x25')](respondWithResult(_0x5a6f56,0xc9))['catch'](handleError(_0x5a6f56,null));};exports[_0x9859('0x4b')]=function(_0x3dffae,_0x3cc3fc){if(_0x3dffae['body']['id']){delete _0x3dffae['body']['id'];}return db[_0x9859('0x41')][_0x9859('0x48')]({'where':{'id':_0x3dffae[_0x9859('0x4c')]['id']}})[_0x9859('0x25')](handleEntityNotFound(_0x3cc3fc,null))[_0x9859('0x25')](saveUpdates(_0x3dffae['body'],null))[_0x9859('0x25')](respondWithResult(_0x3cc3fc,null))[_0x9859('0x46')](handleError(_0x3cc3fc,null));};exports[_0x9859('0x4d')]=function(_0x4b3bf6,_0x1b99f2){return db['SalesforceField'][_0x9859('0x48')]({'where':{'id':_0x4b3bf6[_0x9859('0x4c')]['id']}})[_0x9859('0x25')](handleEntityNotFound(_0x1b99f2,null))[_0x9859('0x25')](removeEntity(_0x1b99f2,null))[_0x9859('0x46')](handleError(_0x1b99f2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x384b=['define','SalesforceField','int_salesforce_fields','salesforce_unique_index','idField','FieldId','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./intSalesforceField.attributes'];(function(_0x13ac10,_0x46e79e){var _0x28eda2=function(_0x169ef0){while(--_0x169ef0){_0x13ac10['push'](_0x13ac10['shift']());}};_0x28eda2(++_0x46e79e);}(_0x384b,0xbc));var _0xb384=function(_0x4a7555,_0x2933bf){_0x4a7555=_0x4a7555-0x0;var _0xd58dfa=_0x384b[_0x4a7555];return _0xd58dfa;};'use strict';var _=require('lodash');var util=require(_0xb384('0x0'));var logger=require(_0xb384('0x1'))('api');var moment=require(_0xb384('0x2'));var BPromise=require('bluebird');var rp=require(_0xb384('0x3'));var fs=require('fs');var path=require(_0xb384('0x4'));var rimraf=require(_0xb384('0x5'));var config=require(_0xb384('0x6'));var attributes=require(_0xb384('0x7'));module['exports']=function(_0x24acc0,_0x2cabb7){return _0x24acc0[_0xb384('0x8')](_0xb384('0x9'),attributes,{'tableName':_0xb384('0xa'),'paranoid':![],'indexes':[{'name':_0xb384('0xb'),'fields':[_0xb384('0xc'),_0xb384('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x48e0=['./intSalesforceField.attributes','exports','int_salesforce_fields','salesforce_unique_index','idField','FieldId','lodash','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0x48e0,0xf6));var _0x048e=function(_0x55a6bc,_0x9f507c){_0x55a6bc=_0x55a6bc-0x0;var _0x145d2b=_0x48e0[_0x55a6bc];return _0x145d2b;};'use strict';var _=require(_0x048e('0x0'));var util=require('util');var logger=require(_0x048e('0x1'))('api');var moment=require(_0x048e('0x2'));var BPromise=require(_0x048e('0x3'));var rp=require(_0x048e('0x4'));var fs=require('fs');var path=require(_0x048e('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x048e('0x6'));module[_0x048e('0x7')]=function(_0x3301de,_0x555d39){return _0x3301de['define']('SalesforceField',attributes,{'tableName':_0x048e('0x8'),'paranoid':![],'indexes':[{'name':_0x048e('0x9'),'fields':[_0x048e('0xa'),_0x048e('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb053=['request','then','info','request\x20sent','debug','SalesforceField,\x20%s,\x20%s,\x20%s','stringify','error','code','SalesforceField,\x20%s,\x20%s','message','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x3728c3,_0x277263){var _0x4dee76=function(_0x51645e){while(--_0x51645e){_0x3728c3['push'](_0x3728c3['shift']());}};_0x4dee76(++_0x277263);}(_0xb053,0x68));var _0x3b05=function(_0x4561ef,_0x3924f3){_0x4561ef=_0x4561ef-0x0;var _0x247bd7=_0xb053[_0x4561ef];return _0x247bd7;};'use strict';var _=require(_0x3b05('0x0'));var util=require(_0x3b05('0x1'));var moment=require('moment');var BPromise=require(_0x3b05('0x2'));var rs=require(_0x3b05('0x3'));var fs=require('fs');var Redis=require(_0x3b05('0x4'));var db=require(_0x3b05('0x5'))['db'];var utils=require(_0x3b05('0x6'));var logger=require(_0x3b05('0x7'))('rpc');var config=require(_0x3b05('0x8'));var jayson=require(_0x3b05('0x9'));var client=jayson[_0x3b05('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xd41c4,_0x17803b,_0x28bc89){return new BPromise(function(_0xf0f012,_0x39d98a){return client[_0x3b05('0xb')](_0xd41c4,_0x28bc89)[_0x3b05('0xc')](function(_0x58cc62){logger[_0x3b05('0xd')]('SalesforceField,\x20%s,\x20%s',_0x17803b,_0x3b05('0xe'));logger[_0x3b05('0xf')](_0x3b05('0x10'),_0x17803b,_0x3b05('0xe'),JSON[_0x3b05('0x11')](_0x58cc62));if(_0x58cc62[_0x3b05('0x12')]){if(_0x58cc62[_0x3b05('0x12')][_0x3b05('0x13')]===0x1f4){logger['error'](_0x3b05('0x14'),_0x17803b,_0x58cc62['error'][_0x3b05('0x15')]);return _0x39d98a(_0x58cc62[_0x3b05('0x12')][_0x3b05('0x15')]);}logger['error'](_0x3b05('0x14'),_0x17803b,_0x58cc62[_0x3b05('0x12')][_0x3b05('0x15')]);return _0xf0f012(_0x58cc62['error']['message']);}else{logger[_0x3b05('0xd')](_0x3b05('0x14'),_0x17803b,_0x3b05('0xe'));_0xf0f012(_0x58cc62['result'][_0x3b05('0x15')]);}})[_0x3b05('0x16')](function(_0x122d33){logger[_0x3b05('0x12')](_0x3b05('0x14'),_0x17803b,_0x122d33);_0x39d98a(_0x122d33);});});}
\ No newline at end of file
+var _0xeca5=['../../config/environment','client','http','request','then','SalesforceField,\x20%s,\x20%s','request\x20sent','debug','SalesforceField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc'];(function(_0x589989,_0x2cfd1f){var _0x50584f=function(_0x22ec4c){while(--_0x22ec4c){_0x589989['push'](_0x589989['shift']());}};_0x50584f(++_0x2cfd1f);}(_0xeca5,0x1d8));var _0x5eca=function(_0x8c2457,_0x39edc5){_0x8c2457=_0x8c2457-0x0;var _0x37b632=_0xeca5[_0x8c2457];return _0x37b632;};'use strict';var _=require(_0x5eca('0x0'));var util=require(_0x5eca('0x1'));var moment=require(_0x5eca('0x2'));var BPromise=require(_0x5eca('0x3'));var rs=require(_0x5eca('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5eca('0x5'))['db'];var utils=require(_0x5eca('0x6'));var logger=require('../../config/logger')(_0x5eca('0x7'));var config=require(_0x5eca('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5eca('0x9')][_0x5eca('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x306315,_0xf57f24,_0x419ff9){return new BPromise(function(_0x1a5890,_0x48fd8e){return client[_0x5eca('0xb')](_0x306315,_0x419ff9)[_0x5eca('0xc')](function(_0x436176){logger['info'](_0x5eca('0xd'),_0xf57f24,_0x5eca('0xe'));logger[_0x5eca('0xf')](_0x5eca('0x10'),_0xf57f24,_0x5eca('0xe'),JSON[_0x5eca('0x11')](_0x436176));if(_0x436176[_0x5eca('0x12')]){if(_0x436176['error'][_0x5eca('0x13')]===0x1f4){logger[_0x5eca('0x12')](_0x5eca('0xd'),_0xf57f24,_0x436176['error'][_0x5eca('0x14')]);return _0x48fd8e(_0x436176['error']['message']);}logger['error']('SalesforceField,\x20%s,\x20%s',_0xf57f24,_0x436176[_0x5eca('0x12')][_0x5eca('0x14')]);return _0x1a5890(_0x436176[_0x5eca('0x12')][_0x5eca('0x14')]);}else{logger[_0x5eca('0x15')]('SalesforceField,\x20%s,\x20%s',_0xf57f24,_0x5eca('0xe'));_0x1a5890(_0x436176[_0x5eca('0x16')]['message']);}})[_0x5eca('0x17')](function(_0x332361){logger[_0x5eca('0x12')](_0x5eca('0xd'),_0xf57f24,_0x332361);_0x48fd8e(_0x332361);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed0b=['../../components/interaction/service','../../config/environment','./intServicenowAccount.controller','get','isAuthenticated','index','/:id','/:id/configurations','getFields','post','addConfiguration','put','delete','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x5989df,_0x50629e){var _0x3a6465=function(_0x37e794){while(--_0x37e794){_0x5989df['push'](_0x5989df['shift']());}};_0x3a6465(++_0x50629e);}(_0xed0b,0x1c8));var _0xbed0=function(_0x836465,_0x5442ae){_0x836465=_0x836465-0x0;var _0x2150ea=_0xed0b[_0x836465];return _0x2150ea;};'use strict';var multer=require(_0xbed0('0x0'));var util=require('util');var path=require(_0xbed0('0x1'));var timeout=require('connect-timeout');var express=require(_0xbed0('0x2'));var router=express[_0xbed0('0x3')]();var fs_extra=require(_0xbed0('0x4'));var auth=require(_0xbed0('0x5'));var interaction=require(_0xbed0('0x6'));var config=require(_0xbed0('0x7'));var controller=require(_0xbed0('0x8'));router[_0xbed0('0x9')]('/',auth[_0xbed0('0xa')](),controller[_0xbed0('0xb')]);router[_0xbed0('0x9')](_0xbed0('0xc'),auth['isAuthenticated'](),controller['show']);router[_0xbed0('0x9')](_0xbed0('0xd'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0xbed0('0x9')]('/:id/fields',auth[_0xbed0('0xa')](),controller[_0xbed0('0xe')]);router[_0xbed0('0xf')]('/',auth[_0xbed0('0xa')](),controller['create']);router['post'](_0xbed0('0xd'),auth[_0xbed0('0xa')](),controller[_0xbed0('0x10')]);router[_0xbed0('0x11')]('/:id',auth[_0xbed0('0xa')](),controller['update']);router[_0xbed0('0x12')](_0xbed0('0xc'),auth[_0xbed0('0xa')](),controller[_0xbed0('0x13')]);module[_0xbed0('0x14')]=router;
\ No newline at end of file
+var _0xae11=['isAuthenticated','index','show','/:id/configurations','/:id/fields','getFields','post','put','/:id','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get'];(function(_0x35050f,_0x47a6e3){var _0x61a820=function(_0x4d6671){while(--_0x4d6671){_0x35050f['push'](_0x35050f['shift']());}};_0x61a820(++_0x47a6e3);}(_0xae11,0x1c1));var _0x1ae1=function(_0x188a93,_0xaf57db){_0x188a93=_0x188a93-0x0;var _0x23b40d=_0xae11[_0x188a93];return _0x23b40d;};'use strict';var multer=require(_0x1ae1('0x0'));var util=require(_0x1ae1('0x1'));var path=require(_0x1ae1('0x2'));var timeout=require(_0x1ae1('0x3'));var express=require(_0x1ae1('0x4'));var router=express[_0x1ae1('0x5')]();var fs_extra=require(_0x1ae1('0x6'));var auth=require(_0x1ae1('0x7'));var interaction=require(_0x1ae1('0x8'));var config=require(_0x1ae1('0x9'));var controller=require('./intServicenowAccount.controller');router[_0x1ae1('0xa')]('/',auth[_0x1ae1('0xb')](),controller[_0x1ae1('0xc')]);router[_0x1ae1('0xa')]('/:id',auth[_0x1ae1('0xb')](),controller[_0x1ae1('0xd')]);router[_0x1ae1('0xa')](_0x1ae1('0xe'),auth[_0x1ae1('0xb')](),controller['getConfigurations']);router['get'](_0x1ae1('0xf'),auth['isAuthenticated'](),controller[_0x1ae1('0x10')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x1ae1('0x11')](_0x1ae1('0xe'),auth['isAuthenticated'](),controller['addConfiguration']);router[_0x1ae1('0x12')](_0x1ae1('0x13'),auth[_0x1ae1('0xb')](),controller[_0x1ae1('0x14')]);router[_0x1ae1('0x15')]('/:id',auth[_0x1ae1('0xb')](),controller[_0x1ae1('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9394=['sequelize','STRING'];(function(_0x18ea34,_0x56f064){var _0x27437c=function(_0x44e164){while(--_0x44e164){_0x18ea34['push'](_0x18ea34['shift']());}};_0x27437c(++_0x56f064);}(_0x9394,0x1f4));var _0x4939=function(_0x25d386,_0x108d0d){_0x25d386=_0x25d386-0x0;var _0x857f4a=_0x9394[_0x25d386];return _0x857f4a;};'use strict';var Sequelize=require(_0x4939('0x0'));module['exports']={'name':{'type':Sequelize[_0x4939('0x1')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x4939('0x1')],'unique':'username'},'password':{'type':Sequelize[_0x4939('0x1')]},'email':{'type':Sequelize[_0x4939('0x1')]},'remoteUri':{'type':Sequelize[_0x4939('0x1')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x1fe7=['STRING','username','remoteUri','sequelize','exports'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x1fe7,0xe4));var _0x71fe=function(_0x33237e,_0x5c86ee){_0x33237e=_0x33237e-0x0;var _0x366b35=_0x1fe7[_0x33237e];return _0x366b35;};'use strict';var Sequelize=require(_0x71fe('0x0'));module[_0x71fe('0x1')]={'name':{'type':Sequelize[_0x71fe('0x2')]},'description':{'type':Sequelize[_0x71fe('0x2')]},'username':{'type':Sequelize[_0x71fe('0x2')],'unique':_0x71fe('0x3')},'password':{'type':Sequelize[_0x71fe('0x2')]},'email':{'type':Sequelize[_0x71fe('0x2')]},'remoteUri':{'type':Sequelize[_0x71fe('0x2')],'unique':_0x71fe('0x4')},'serverUrl':{'type':Sequelize[_0x71fe('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c5b=['../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','destroy','then','stack','name','index','map','rawAttributes','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','filter','merge','where','ServicenowAccount','include','findAll','rows','catch','show','params','includeAll','options','find','create','body','update','getConfigurations','findOne','pick','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ServicenowConfiguration','ServicenowField','made_sla','hold_reason','knowledge','subcategory','close_code','notify','category','parent','caused_by','watch_list','upon_reject','sys_updated_on','child_incidents','approval_history','resolved_by','sys_updated_by','opened_by','user_input','sys_created_on','state','calendar_stc','closed_at','cmdb_ci','delivery_plan','impact','work_notes_list','business_service','priority','sys_domain_path','rfc','time_worked','expected_start','business_duration','work_end','reopened_time','caller_id','approval_set','work_notes','short_description','correlation_display','delivery_task','work_start','assignment_group','business_stc','additional_assignee_list','description','calendar_duration','close_notes','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','incident_state','urgency','problem_id','reassignment_count','activity_due','severity','comments','approval','comments_and_work_notes','due_date','sys_mod_count','escalation','correlation_id','location','email','remoteUri','slice','substring','lastIndexOf','format','%s/api/now/doc/table/schema/','%s/api/now/table/','username','password','GET','incident?sysparm_display_value=all','result','log','incident\x20table\x20objects','assign','remove','includes','internalType','push','TCL:\x20_object','concat','statusCode','error','send','Wrong\x20credentials','True','true','False','false','sys_choice?sysparm_query=name=incident^element=','forEach','inactive','label','value','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util'];(function(_0xbbe49d,_0x1fd0f0){var _0x55ed11=function(_0x3c57d7){while(--_0x3c57d7){_0xbbe49d['push'](_0xbbe49d['shift']());}};_0x55ed11(++_0x1fd0f0);}(_0x1c5b,0xa6));var _0xb1c5=function(_0x40cbbc,_0x404664){_0x40cbbc=_0x40cbbc-0x0;var _0x49a06f=_0x1c5b[_0x40cbbc];return _0x49a06f;};'use strict';var emlformat=require(_0xb1c5('0x0'));var rimraf=require(_0xb1c5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb1c5('0x2'));var rp=require(_0xb1c5('0x3'));var moment=require('moment');var BPromise=require(_0xb1c5('0x4'));var Mustache=require(_0xb1c5('0x5'));var util=require(_0xb1c5('0x6'));var path=require(_0xb1c5('0x7'));var sox=require(_0xb1c5('0x8'));var csv=require(_0xb1c5('0x9'));var ejs=require(_0xb1c5('0xa'));var fs=require('fs');var fs_extra=require(_0xb1c5('0xb'));var _=require(_0xb1c5('0xc'));var squel=require('squel');var crypto=require(_0xb1c5('0xd'));var jsforce=require(_0xb1c5('0xe'));var deskjs=require(_0xb1c5('0xf'));var toCsv=require(_0xb1c5('0x9'));var querystring=require(_0xb1c5('0x10'));var Papa=require(_0xb1c5('0x11'));var Redis=require(_0xb1c5('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xb1c5('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb1c5('0x14'));var logger=require(_0xb1c5('0x15'))(_0xb1c5('0x16'));var utils=require('../../config/utils');var config=require(_0xb1c5('0x17'));var licenseUtil=require(_0xb1c5('0x18'));var db=require(_0xb1c5('0x19'))['db'];var integrations=require(_0xb1c5('0x1a'));function respondWithStatusCode(_0x10836d,_0x3f07e7){_0x3f07e7=_0x3f07e7||0xcc;return function(_0x55a156){if(_0x55a156){return _0x10836d[_0xb1c5('0x1b')](_0x3f07e7);}return _0x10836d[_0xb1c5('0x1c')](_0x3f07e7)[_0xb1c5('0x1d')]();};}function respondWithResult(_0x31057d,_0x7481dd){_0x7481dd=_0x7481dd||0xc8;return function(_0x32033a){if(_0x32033a){return _0x31057d[_0xb1c5('0x1c')](_0x7481dd)[_0xb1c5('0x1e')](_0x32033a);}};}function respondWithFilteredResult(_0x528336,_0x5c937e){return function(_0x572c0a){if(_0x572c0a){var _0x1df9ba=typeof _0x5c937e[_0xb1c5('0x1f')]===_0xb1c5('0x20')&&typeof _0x5c937e[_0xb1c5('0x21')]===_0xb1c5('0x20');var _0x1f7730=_0x572c0a[_0xb1c5('0x22')];var _0x1f41b3=_0x1df9ba?0x0:_0x5c937e[_0xb1c5('0x1f')];var _0x382562=_0x1df9ba?_0x572c0a[_0xb1c5('0x22')]:_0x5c937e[_0xb1c5('0x1f')]+_0x5c937e['limit'];var _0x1c5f45;if(_0x382562>=_0x1f7730){_0x382562=_0x1f7730;_0x1c5f45=0xc8;}else{_0x1c5f45=0xce;}_0x528336[_0xb1c5('0x1c')](_0x1c5f45);return _0x528336[_0xb1c5('0x23')]('Content-Range',_0x1f41b3+'-'+_0x382562+'/'+_0x1f7730)[_0xb1c5('0x1e')](_0x572c0a);}return null;};}function patchUpdates(_0x15c11e){return function(_0x11f3fa){try{jsonpatch[_0xb1c5('0x24')](_0x11f3fa,_0x15c11e,!![]);}catch(_0x22de67){return BPromise[_0xb1c5('0x25')](_0x22de67);}return _0x11f3fa[_0xb1c5('0x26')]();};}function saveUpdates(_0x1913d3,_0x21152f){return function(_0x2d8c40){if(_0x2d8c40){return _0x2d8c40['update'](_0x1913d3)['then'](function(_0x71899b){return _0x71899b;});}return null;};}function removeEntity(_0x490940,_0x26a01e){return function(_0x1298e2){if(_0x1298e2){return _0x1298e2[_0xb1c5('0x27')]()[_0xb1c5('0x28')](function(){_0x490940[_0xb1c5('0x1c')](0xcc)[_0xb1c5('0x1d')]();});}};}function handleEntityNotFound(_0x11375e,_0x26d61c){return function(_0x204c51){if(!_0x204c51){_0x11375e[_0xb1c5('0x1b')](0x194);}return _0x204c51;};}function handleError(_0xf15aeb,_0x4040c9){_0x4040c9=_0x4040c9||0x1f4;return function(_0x41db6f){logger['error'](_0x41db6f[_0xb1c5('0x29')]);if(_0x41db6f[_0xb1c5('0x2a')]){delete _0x41db6f[_0xb1c5('0x2a')];}_0xf15aeb[_0xb1c5('0x1c')](_0x4040c9)['send'](_0x41db6f);};}exports[_0xb1c5('0x2b')]=function(_0x349f47,_0x43ac85){var _0x28f3c4={},_0x45032e={},_0x1bf285={'count':0x0,'rows':[]};var _0xcd96ea=_[_0xb1c5('0x2c')](db['ServicenowAccount'][_0xb1c5('0x2d')],function(_0x16659a){return{'name':_0x16659a['fieldName'],'type':_0x16659a[_0xb1c5('0x2e')][_0xb1c5('0x2f')]};});_0x45032e[_0xb1c5('0x30')]=_[_0xb1c5('0x2c')](_0xcd96ea,_0xb1c5('0x2a'));_0x45032e['query']=_[_0xb1c5('0x31')](_0x349f47[_0xb1c5('0x32')]);_0x45032e[_0xb1c5('0x33')]=_[_0xb1c5('0x34')](_0x45032e[_0xb1c5('0x30')],_0x45032e[_0xb1c5('0x32')]);_0x28f3c4[_0xb1c5('0x35')]=_[_0xb1c5('0x34')](_0x45032e[_0xb1c5('0x30')],qs[_0xb1c5('0x36')](_0x349f47['query'][_0xb1c5('0x36')]));_0x28f3c4['attributes']=_0x28f3c4[_0xb1c5('0x35')][_0xb1c5('0x37')]?_0x28f3c4[_0xb1c5('0x35')]:_0x45032e['model'];if(!_0x349f47[_0xb1c5('0x32')][_0xb1c5('0x38')]('nolimit')){_0x28f3c4[_0xb1c5('0x21')]=qs['limit'](_0x349f47['query'][_0xb1c5('0x21')]);_0x28f3c4['offset']=qs[_0xb1c5('0x1f')](_0x349f47[_0xb1c5('0x32')][_0xb1c5('0x1f')]);}_0x28f3c4[_0xb1c5('0x39')]=qs[_0xb1c5('0x3a')](_0x349f47[_0xb1c5('0x32')]['sort']);_0x28f3c4['where']=qs[_0xb1c5('0x33')](_['pick'](_0x349f47[_0xb1c5('0x32')],_0x45032e[_0xb1c5('0x33')]),_0xcd96ea);if(_0x349f47[_0xb1c5('0x32')][_0xb1c5('0x3b')]){_0x28f3c4['where']=_[_0xb1c5('0x3c')](_0x28f3c4[_0xb1c5('0x3d')],{'$or':_[_0xb1c5('0x2c')](_0xcd96ea,function(_0x510083){if(_0x510083['type']!=='VIRTUAL'){var _0x11c01a={};_0x11c01a[_0x510083[_0xb1c5('0x2a')]]={'$like':'%'+_0x349f47[_0xb1c5('0x32')]['filter']+'%'};return _0x11c01a;}})});}_0x28f3c4=_[_0xb1c5('0x3c')]({},_0x28f3c4,_0x349f47['options']);var _0xf4e155={'where':_0x28f3c4['where']};return db[_0xb1c5('0x3e')][_0xb1c5('0x22')](_0xf4e155)[_0xb1c5('0x28')](function(_0xd0c4f8){_0x1bf285[_0xb1c5('0x22')]=_0xd0c4f8;if(_0x349f47[_0xb1c5('0x32')]['includeAll']){_0x28f3c4[_0xb1c5('0x3f')]=[{'all':!![]}];}return db[_0xb1c5('0x3e')][_0xb1c5('0x40')](_0x28f3c4);})['then'](function(_0x3e98f7){_0x1bf285[_0xb1c5('0x41')]=_0x3e98f7;return _0x1bf285;})[_0xb1c5('0x28')](respondWithFilteredResult(_0x43ac85,_0x28f3c4))[_0xb1c5('0x42')](handleError(_0x43ac85,null));};exports[_0xb1c5('0x43')]=function(_0x425569,_0x3e01b0){var _0x14eb1f={'raw':![],'where':{'id':_0x425569[_0xb1c5('0x44')]['id']}},_0x19c3c2={};_0x19c3c2[_0xb1c5('0x30')]=_[_0xb1c5('0x31')](db[_0xb1c5('0x3e')][_0xb1c5('0x2d')]);_0x19c3c2[_0xb1c5('0x32')]=_[_0xb1c5('0x31')](_0x425569[_0xb1c5('0x32')]);_0x19c3c2[_0xb1c5('0x33')]=_[_0xb1c5('0x34')](_0x19c3c2[_0xb1c5('0x30')],_0x19c3c2[_0xb1c5('0x32')]);_0x14eb1f['attributes']=_[_0xb1c5('0x34')](_0x19c3c2[_0xb1c5('0x30')],qs[_0xb1c5('0x36')](_0x425569['query'][_0xb1c5('0x36')]));_0x14eb1f[_0xb1c5('0x35')]=_0x14eb1f['attributes'][_0xb1c5('0x37')]?_0x14eb1f[_0xb1c5('0x35')]:_0x19c3c2[_0xb1c5('0x30')];if(_0x425569[_0xb1c5('0x32')][_0xb1c5('0x45')]){_0x14eb1f[_0xb1c5('0x3f')]=[{'all':!![]}];}_0x14eb1f=_[_0xb1c5('0x3c')]({},_0x14eb1f,_0x425569[_0xb1c5('0x46')]);return db[_0xb1c5('0x3e')][_0xb1c5('0x47')](_0x14eb1f)[_0xb1c5('0x28')](handleEntityNotFound(_0x3e01b0,null))[_0xb1c5('0x28')](respondWithResult(_0x3e01b0,null))[_0xb1c5('0x42')](handleError(_0x3e01b0,null));};exports[_0xb1c5('0x48')]=function(_0x2e7a29,_0x3296df){return db['ServicenowAccount'][_0xb1c5('0x48')](_0x2e7a29[_0xb1c5('0x49')],{})['then'](respondWithResult(_0x3296df,0xc9))[_0xb1c5('0x42')](handleError(_0x3296df,null));};exports[_0xb1c5('0x4a')]=function(_0x4a12c8,_0x330c87){if(_0x4a12c8[_0xb1c5('0x49')]['id']){delete _0x4a12c8[_0xb1c5('0x49')]['id'];}return db['ServicenowAccount'][_0xb1c5('0x47')]({'where':{'id':_0x4a12c8[_0xb1c5('0x44')]['id']}})[_0xb1c5('0x28')](handleEntityNotFound(_0x330c87,null))[_0xb1c5('0x28')](saveUpdates(_0x4a12c8[_0xb1c5('0x49')],null))['then'](respondWithResult(_0x330c87,null))[_0xb1c5('0x42')](handleError(_0x330c87,null));};exports['destroy']=function(_0x5d933d,_0x1f6082){return db['ServicenowAccount'][_0xb1c5('0x47')]({'where':{'id':_0x5d933d[_0xb1c5('0x44')]['id']}})[_0xb1c5('0x28')](handleEntityNotFound(_0x1f6082,null))['then'](removeEntity(_0x1f6082,null))[_0xb1c5('0x42')](handleError(_0x1f6082,null));};exports[_0xb1c5('0x4b')]=function(_0x4c1e41,_0x9ae851,_0x5e8ada){var _0x5e8c86={};var _0x119917={};var _0x4b16b5;var _0x41c770;return db[_0xb1c5('0x3e')][_0xb1c5('0x4c')]({'where':{'id':_0x4c1e41[_0xb1c5('0x44')]['id']}})[_0xb1c5('0x28')](handleEntityNotFound(_0x9ae851,null))[_0xb1c5('0x28')](function(_0x5f4d42){if(_0x5f4d42){_0x4b16b5=_0x5f4d42;_0x119917[_0xb1c5('0x30')]=_[_0xb1c5('0x31')](db['ServicenowConfiguration'][_0xb1c5('0x2d')]);_0x119917['query']=_[_0xb1c5('0x31')](_0x4c1e41['query']);_0x119917['filters']=_[_0xb1c5('0x34')](_0x119917[_0xb1c5('0x30')],_0x119917[_0xb1c5('0x32')]);_0x5e8c86[_0xb1c5('0x35')]=_[_0xb1c5('0x34')](_0x119917[_0xb1c5('0x30')],qs['fields'](_0x4c1e41[_0xb1c5('0x32')][_0xb1c5('0x36')]));_0x5e8c86[_0xb1c5('0x35')]=_0x5e8c86[_0xb1c5('0x35')]['length']?_0x5e8c86[_0xb1c5('0x35')]:_0x119917[_0xb1c5('0x30')];_0x5e8c86[_0xb1c5('0x39')]=qs['sort'](_0x4c1e41[_0xb1c5('0x32')][_0xb1c5('0x3a')]);_0x5e8c86[_0xb1c5('0x3d')]=qs[_0xb1c5('0x33')](_[_0xb1c5('0x4d')](_0x4c1e41['query'],_0x119917['filters']));if(_0x4c1e41[_0xb1c5('0x32')]['filter']){_0x5e8c86['where']=_[_0xb1c5('0x3c')](_0x5e8c86[_0xb1c5('0x3d')],{'$or':_[_0xb1c5('0x2c')](_0x5e8c86['attributes'],function(_0x222d7d){var _0x58b0b7={};_0x58b0b7[_0x222d7d]={'$like':'%'+_0x4c1e41[_0xb1c5('0x32')][_0xb1c5('0x3b')]+'%'};return _0x58b0b7;})});}_0x5e8c86=_['merge']({},_0x5e8c86,_0x4c1e41[_0xb1c5('0x46')]);return _0x4b16b5[_0xb1c5('0x4b')](_0x5e8c86);}})[_0xb1c5('0x28')](function(_0xc4ad5){if(_0xc4ad5){_0x41c770=_0xc4ad5['length'];if(!_0x4c1e41['query']['hasOwnProperty'](_0xb1c5('0x4e'))){_0x5e8c86['limit']=qs[_0xb1c5('0x21')](_0x4c1e41[_0xb1c5('0x32')]['limit']);_0x5e8c86[_0xb1c5('0x1f')]=qs[_0xb1c5('0x1f')](_0x4c1e41[_0xb1c5('0x32')][_0xb1c5('0x1f')]);}return _0x4b16b5[_0xb1c5('0x4b')](_0x5e8c86);}})[_0xb1c5('0x28')](function(_0xda290e){if(_0xda290e){return _0xda290e?{'count':_0x41c770,'rows':_0xda290e}:null;}})[_0xb1c5('0x28')](respondWithResult(_0x9ae851,null))[_0xb1c5('0x42')](handleError(_0x9ae851,null));};exports[_0xb1c5('0x4f')]=function(_0x5c911a,_0x48d65d,_0x46d9ff){if(_0x5c911a[_0xb1c5('0x49')]['id']){delete _0x5c911a['body']['id'];}return db[_0xb1c5('0x3e')][_0xb1c5('0x4c')]({'where':{'id':_0x5c911a[_0xb1c5('0x44')]['id']}})[_0xb1c5('0x28')](handleEntityNotFound(_0x48d65d,null))['then'](function(_0x119477){if(_0x119477){_0x5c911a[_0xb1c5('0x49')][_0xb1c5('0x50')]=_0x119477['id'];_0x5c911a[_0xb1c5('0x49')][_0xb1c5('0x51')]=integrations[_0xb1c5('0x52')](_0x5c911a[_0xb1c5('0x49')][_0xb1c5('0x53')],_0x5c911a[_0xb1c5('0x49')][_0xb1c5('0x2e')]);_0x5c911a['body'][_0xb1c5('0x54')]=integrations[_0xb1c5('0x55')](_0x5c911a[_0xb1c5('0x49')][_0xb1c5('0x53')],_0x5c911a[_0xb1c5('0x49')][_0xb1c5('0x2e')]);return db[_0xb1c5('0x56')]['create'](_0x5c911a[_0xb1c5('0x49')],{'include':[{'model':db[_0xb1c5('0x57')],'as':_0xb1c5('0x51')},{'model':db[_0xb1c5('0x57')],'as':'Descriptions'}]});}return null;})[_0xb1c5('0x28')](respondWithResult(_0x48d65d,null))[_0xb1c5('0x42')](handleError(_0x48d65d,null));};exports['getFields']=function(_0x32e190,_0x573602,_0x5b7ee9){var _0x19117a=[_0xb1c5('0x58'),_0xb1c5('0x59'),_0xb1c5('0x5a'),_0xb1c5('0x5b'),_0xb1c5('0x5c'),_0xb1c5('0x5d'),'incident_state','severity',_0xb1c5('0x5e')];var _0x2ddbac=[_0xb1c5('0x5f'),_0xb1c5('0x58'),_0xb1c5('0x60'),_0xb1c5('0x61'),_0xb1c5('0x62'),_0xb1c5('0x63'),_0xb1c5('0x64'),'hold_reason',_0xb1c5('0x65'),'number',_0xb1c5('0x66'),_0xb1c5('0x67'),_0xb1c5('0x68'),_0xb1c5('0x69'),_0xb1c5('0x6a'),'sys_domain',_0xb1c5('0x6b'),'sys_created_by',_0xb1c5('0x5a'),_0xb1c5('0x39'),_0xb1c5('0x6c'),_0xb1c5('0x6d'),_0xb1c5('0x6e'),_0xb1c5('0x6f'),_0xb1c5('0x70'),'active',_0xb1c5('0x71'),_0xb1c5('0x72'),_0xb1c5('0x73'),_0xb1c5('0x74'),_0xb1c5('0x75'),_0xb1c5('0x76'),_0xb1c5('0x77'),'opened_at',_0xb1c5('0x78'),'group_list',_0xb1c5('0x79'),_0xb1c5('0x7a'),'resolved_at',_0xb1c5('0x7b'),_0xb1c5('0x7c'),'subcategory',_0xb1c5('0x7d'),_0xb1c5('0x7e'),_0xb1c5('0x5c'),_0xb1c5('0x7f'),_0xb1c5('0x80'),_0xb1c5('0x81'),_0xb1c5('0x82'),_0xb1c5('0x83'),_0xb1c5('0x84'),_0xb1c5('0x85'),_0xb1c5('0x86'),_0xb1c5('0x5d'),'sys_class_name',_0xb1c5('0x87'),_0xb1c5('0x88'),_0xb1c5('0x89'),_0xb1c5('0x8a'),_0xb1c5('0x8b'),_0xb1c5('0x8c'),_0xb1c5('0x8d'),_0xb1c5('0x8e'),_0xb1c5('0x8f'),_0xb1c5('0x90'),'company',_0xb1c5('0x91'),_0xb1c5('0x92'),'assigned_to',_0xb1c5('0x93'),_0xb1c5('0x94'),'sla_due',_0xb1c5('0x95'),_0xb1c5('0x96'),_0xb1c5('0x97'),_0xb1c5('0x98'),'reopen_count','sys_tags',_0xb1c5('0x99'),'upon_approval',_0xb1c5('0x9a'),_0xb1c5('0x9b'),'category'];var _0x529e20='';var _0x212d6b='';var _0x185f72=[];var _0x4c2eea='';var _0x56af13='';var _0x378731=[];var _0x9c904f='';var _0x5c35b1='';var _0x368b6b={};var _0x20fc5a='';return db[_0xb1c5('0x3e')]['findOne']({'where':{'id':_0x32e190[_0xb1c5('0x44')]['id']},'attributes':['id','username','password',_0xb1c5('0x9c'),_0xb1c5('0x9d'),'serverUrl']})[_0xb1c5('0x28')](handleEntityNotFound(_0x573602,null))['then'](function(_0x41edfa){if(_0x41edfa){_0x20fc5a=_0x41edfa[_0xb1c5('0x9d')];var _0x4d7888=_0x20fc5a[_0xb1c5('0x9e')](-0x1);if(_0x4d7888==='/'){_0x20fc5a=_0x20fc5a[_0xb1c5('0x9f')](0x0,_0x20fc5a[_0xb1c5('0xa0')](_0x4d7888));}_0x5c35b1=util[_0xb1c5('0xa1')](_0xb1c5('0xa2'),_0x20fc5a);_0x9c904f=util[_0xb1c5('0xa1')](_0xb1c5('0xa3'),_0x20fc5a);_0x368b6b={'user':_0x41edfa[_0xb1c5('0xa4')],'pass':_0x41edfa[_0xb1c5('0xa5')]};var _0x294954={'method':_0xb1c5('0xa6'),'uri':_0x5c35b1+_0xb1c5('0xa7'),'auth':_0x368b6b,'json':!![]};return rp(_0x294954);}})[_0xb1c5('0x28')](function(_0x2053ae){if(_0x2053ae[_0xb1c5('0xa8')][_0xb1c5('0x37')]>0x0){_0x529e20=_0x2053ae['result'];}console[_0xb1c5('0xa9')](_0xb1c5('0xaa'),_0x529e20);_0x378731=[];_0x212d6b=Object[_0xb1c5('0xab')]([],_0x529e20);_[_0xb1c5('0xac')](_0x212d6b,function(_0x5c391b){return!_0x19117a[_0xb1c5('0xad')](_0x5c391b[_0xb1c5('0x2a')]);});_0x212d6b['forEach'](function(_0x8a234f){var _0x45872b=createFieldObject(_0x9c904f,_0x368b6b,_0x8a234f[_0xb1c5('0xae')],_0x8a234f['name'],_0x8a234f['label'],![]);_0x378731[_0xb1c5('0xaf')](_0x45872b);});return Promise['all'](_0x378731);})[_0xb1c5('0x28')](function(_0x58e827){_0x185f72=_0x58e827;_0x4c2eea=Object[_0xb1c5('0xab')]([],_0x529e20);console[_0xb1c5('0xa9')](_0xb1c5('0xb0'),_0x529e20);_['remove'](_0x4c2eea,function(_0x5bb17e){return _0x2ddbac['includes'](_0x5bb17e[_0xb1c5('0x2a')]);});console[_0xb1c5('0xa9')]('TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom',_0x4c2eea);_0x378731=[];_0x4c2eea['forEach'](function(_0xec5811){var _0x38f6de=createFieldObject(_0x9c904f,_0x368b6b,_0xec5811[_0xb1c5('0xae')],_0xec5811[_0xb1c5('0x2a')],_0xec5811['label'],!![]);_0x378731[_0xb1c5('0xaf')](_0x38f6de);});return Promise['all'](_0x378731);})['then'](function(_0x240f78){_0x56af13=_0x240f78;var _0x32ecdd=_0x185f72[_0xb1c5('0xb1')](_0x56af13);return{'count':_0x32ecdd['length'],'rows':_0x32ecdd};})[_0xb1c5('0x28')](respondWithResult(_0x573602,null))[_0xb1c5('0x42')](function(_0x5b8d26){console['log']('ServiceNow\x20error:\x20'+_0x5b8d26);var _0x2519c2=_0x32e190[_0xb1c5('0x32')]['test']?0x1f4:_0x5b8d26[_0xb1c5('0xb2')]||0x1f4;logger[_0xb1c5('0xb3')](_0x5b8d26['stack']);delete _0x5b8d26[_0xb1c5('0x2a')];if(_0x2519c2===0x191){_0x2519c2=0x190;}_0x573602[_0xb1c5('0x1c')](_0x2519c2)[_0xb1c5('0xb4')](_0x32e190['query']['test']?{'message':_0xb1c5('0xb5'),'statusCode':_0x5b8d26[_0xb1c5('0xb2')]}:_0x5b8d26);});};function createFieldObject(_0x45ddb4,_0x46d9c4,_0xa9337c,_0x3c4a46,_0x38e1be,_0x4b78b8){return new Promise(function(_0x34dd85,_0x4b2e2e){var _0x2a0e78={'id':_0x3c4a46,'name':_0x38e1be,'custom':_0x4b78b8};if(_0xa9337c==='boolean'){_0x2a0e78[_0xb1c5('0x46')]=[{'name':_0xb1c5('0xb6'),'value':_0xb1c5('0xb7')},{'name':_0xb1c5('0xb8'),'value':_0xb1c5('0xb9')}];_0x34dd85(_0x2a0e78);}else{var _0x223ed1={'method':_0xb1c5('0xa6'),'uri':_0x45ddb4+_0xb1c5('0xba')+_0x3c4a46,'auth':_0x46d9c4,'json':!![]};return rp(_0x223ed1)[_0xb1c5('0x28')](function(_0x3dda8a){var _0x5723bb=[];if(_0x3dda8a['result'][_0xb1c5('0x37')]>0x0){_0x3dda8a[_0xb1c5('0xa8')][_0xb1c5('0xbb')](function(_0x121c07){if(_0x121c07[_0xb1c5('0xbc')]===_0xb1c5('0xb9')){var _0x55f528={'name':_0x121c07[_0xb1c5('0xbd')],'value':_0x121c07[_0xb1c5('0xbe')]};_0x5723bb[_0xb1c5('0xaf')](_0x55f528);}});}_0x2a0e78['options']=_0x5723bb;if(_0x2a0e78[_0xb1c5('0x46')]['length']>0x0){_0x34dd85(_0x2a0e78);}else{if(_0x4b78b8==![]){_0x34dd85();}else{_0x34dd85(_0x2a0e78);}}});}});}
\ No newline at end of file
+var _0x3474=['notify','incident_state','category','parent','caused_by','watch_list','upon_reject','sys_updated_on','approval_history','resolved_by','sys_updated_by','sys_created_on','sys_domain','state','calendar_stc','delivery_plan','impact','active','business_service','priority','sys_domain_path','time_worked','expected_start','opened_at','business_duration','group_list','work_end','reopened_time','resolved_at','caller_id','short_description','correlation_display','delivery_task','work_start','assignment_group','business_stc','additional_assignee_list','calendar_duration','close_notes','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','urgency','problem_id','company','assigned_to','sla_due','approval','comments_and_work_notes','due_date','sys_mod_count','reopen_count','escalation','upon_approval','correlation_id','location','password','substring','lastIndexOf','format','%s/api/now/doc/table/schema/','%s/api/now/table/','incident?sysparm_display_value=all','log','incident\x20table\x20objects','assign','remove','includes','forEach','label','push','TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom','internalType','concat','ServiceNow\x20error:\x20','test','Wrong\x20credentials','statusCode','False','false','GET','sys_choice?sysparm_query=name=incident^element=','result','inactive','value','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','end','json','offset','undefined','limit','count','apply','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','sort','where','pick','filters','filter','merge','options','ServicenowAccount','includeAll','include','findAll','rows','show','params','find','create','update','body','catch','getConfigurations','findOne','ServicenowConfiguration','order','nolimit','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ServicenowField','made_sla','hold_reason','knowledge','subcategory','close_code'];(function(_0x1f64a1,_0x37ba82){var _0x3889ad=function(_0x48eaee){while(--_0x48eaee){_0x1f64a1['push'](_0x1f64a1['shift']());}};_0x3889ad(++_0x37ba82);}(_0x3474,0x10b));var _0x4347=function(_0xd64692,_0x28e445){_0xd64692=_0xd64692-0x0;var _0x201668=_0x3474[_0xd64692];return _0x201668;};'use strict';var emlformat=require(_0x4347('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4347('0x1'));var jsonpatch=require(_0x4347('0x2'));var rp=require(_0x4347('0x3'));var moment=require('moment');var BPromise=require(_0x4347('0x4'));var Mustache=require(_0x4347('0x5'));var util=require(_0x4347('0x6'));var path=require(_0x4347('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4347('0x8'));var fs=require('fs');var fs_extra=require(_0x4347('0x9'));var _=require(_0x4347('0xa'));var squel=require(_0x4347('0xb'));var crypto=require(_0x4347('0xc'));var jsforce=require(_0x4347('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x4347('0xe'));var querystring=require(_0x4347('0xf'));var Papa=require('papaparse');var Redis=require(_0x4347('0x10'));var authService=require(_0x4347('0x11'));var qs=require(_0x4347('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4347('0x13'));var logger=require('../../config/logger')(_0x4347('0x14'));var utils=require('../../config/utils');var config=require(_0x4347('0x15'));var licenseUtil=require(_0x4347('0x16'));var db=require(_0x4347('0x17'))['db'];var integrations=require(_0x4347('0x18'));function respondWithStatusCode(_0x231302,_0x1fb61f){_0x1fb61f=_0x1fb61f||0xcc;return function(_0x25f91f){if(_0x25f91f){return _0x231302['sendStatus'](_0x1fb61f);}return _0x231302[_0x4347('0x19')](_0x1fb61f)[_0x4347('0x1a')]();};}function respondWithResult(_0x5c3f25,_0x59ef3c){_0x59ef3c=_0x59ef3c||0xc8;return function(_0x1983ab){if(_0x1983ab){return _0x5c3f25[_0x4347('0x19')](_0x59ef3c)[_0x4347('0x1b')](_0x1983ab);}};}function respondWithFilteredResult(_0x52ff71,_0x7550e2){return function(_0xcc6a59){if(_0xcc6a59){var _0x58dabf=typeof _0x7550e2[_0x4347('0x1c')]===_0x4347('0x1d')&&typeof _0x7550e2[_0x4347('0x1e')]==='undefined';var _0x193fab=_0xcc6a59['count'];var _0xb63606=_0x58dabf?0x0:_0x7550e2[_0x4347('0x1c')];var _0x493072=_0x58dabf?_0xcc6a59[_0x4347('0x1f')]:_0x7550e2['offset']+_0x7550e2[_0x4347('0x1e')];var _0x7dd0d6;if(_0x493072>=_0x193fab){_0x493072=_0x193fab;_0x7dd0d6=0xc8;}else{_0x7dd0d6=0xce;}_0x52ff71[_0x4347('0x19')](_0x7dd0d6);return _0x52ff71['set']('Content-Range',_0xb63606+'-'+_0x493072+'/'+_0x193fab)[_0x4347('0x1b')](_0xcc6a59);}return null;};}function patchUpdates(_0xfc1cd6){return function(_0x17a805){try{jsonpatch[_0x4347('0x20')](_0x17a805,_0xfc1cd6,!![]);}catch(_0x171fa1){return BPromise['reject'](_0x171fa1);}return _0x17a805[_0x4347('0x21')]();};}function saveUpdates(_0x1aacf3,_0x3f660f){return function(_0x4ff6e9){if(_0x4ff6e9){return _0x4ff6e9['update'](_0x1aacf3)[_0x4347('0x22')](function(_0xbe88f5){return _0xbe88f5;});}return null;};}function removeEntity(_0x15af82,_0x2a360c){return function(_0x1ebffc){if(_0x1ebffc){return _0x1ebffc[_0x4347('0x23')]()[_0x4347('0x22')](function(){_0x15af82['status'](0xcc)[_0x4347('0x1a')]();});}};}function handleEntityNotFound(_0x432d6e,_0x35dcb9){return function(_0x39a19c){if(!_0x39a19c){_0x432d6e['sendStatus'](0x194);}return _0x39a19c;};}function handleError(_0x5bb0a7,_0x412f75){_0x412f75=_0x412f75||0x1f4;return function(_0x4cce55){logger[_0x4347('0x24')](_0x4cce55[_0x4347('0x25')]);if(_0x4cce55[_0x4347('0x26')]){delete _0x4cce55[_0x4347('0x26')];}_0x5bb0a7[_0x4347('0x19')](_0x412f75)[_0x4347('0x27')](_0x4cce55);};}exports[_0x4347('0x28')]=function(_0x4b4d18,_0x3816cc){var _0x17edd6={},_0x25178e={},_0x50e976={'count':0x0,'rows':[]};var _0x3fe992=_[_0x4347('0x29')](db['ServicenowAccount'][_0x4347('0x2a')],function(_0x156cc1){return{'name':_0x156cc1[_0x4347('0x2b')],'type':_0x156cc1[_0x4347('0x2c')][_0x4347('0x2d')]};});_0x25178e['model']=_[_0x4347('0x29')](_0x3fe992,'name');_0x25178e[_0x4347('0x2e')]=_[_0x4347('0x2f')](_0x4b4d18[_0x4347('0x2e')]);_0x25178e['filters']=_[_0x4347('0x30')](_0x25178e[_0x4347('0x31')],_0x25178e['query']);_0x17edd6[_0x4347('0x32')]=_[_0x4347('0x30')](_0x25178e[_0x4347('0x31')],qs[_0x4347('0x33')](_0x4b4d18[_0x4347('0x2e')][_0x4347('0x33')]));_0x17edd6[_0x4347('0x32')]=_0x17edd6[_0x4347('0x32')][_0x4347('0x34')]?_0x17edd6[_0x4347('0x32')]:_0x25178e[_0x4347('0x31')];if(!_0x4b4d18[_0x4347('0x2e')][_0x4347('0x35')]('nolimit')){_0x17edd6[_0x4347('0x1e')]=qs[_0x4347('0x1e')](_0x4b4d18[_0x4347('0x2e')][_0x4347('0x1e')]);_0x17edd6[_0x4347('0x1c')]=qs[_0x4347('0x1c')](_0x4b4d18[_0x4347('0x2e')][_0x4347('0x1c')]);}_0x17edd6['order']=qs[_0x4347('0x36')](_0x4b4d18['query'][_0x4347('0x36')]);_0x17edd6[_0x4347('0x37')]=qs['filters'](_[_0x4347('0x38')](_0x4b4d18[_0x4347('0x2e')],_0x25178e[_0x4347('0x39')]),_0x3fe992);if(_0x4b4d18[_0x4347('0x2e')][_0x4347('0x3a')]){_0x17edd6[_0x4347('0x37')]=_['merge'](_0x17edd6[_0x4347('0x37')],{'$or':_['map'](_0x3fe992,function(_0x414394){if(_0x414394[_0x4347('0x2c')]!=='VIRTUAL'){var _0x3aa075={};_0x3aa075[_0x414394['name']]={'$like':'%'+_0x4b4d18[_0x4347('0x2e')][_0x4347('0x3a')]+'%'};return _0x3aa075;}})});}_0x17edd6=_[_0x4347('0x3b')]({},_0x17edd6,_0x4b4d18[_0x4347('0x3c')]);var _0x41d076={'where':_0x17edd6[_0x4347('0x37')]};return db[_0x4347('0x3d')][_0x4347('0x1f')](_0x41d076)[_0x4347('0x22')](function(_0x4aa769){_0x50e976['count']=_0x4aa769;if(_0x4b4d18['query'][_0x4347('0x3e')]){_0x17edd6[_0x4347('0x3f')]=[{'all':!![]}];}return db['ServicenowAccount'][_0x4347('0x40')](_0x17edd6);})[_0x4347('0x22')](function(_0x39d2be){_0x50e976[_0x4347('0x41')]=_0x39d2be;return _0x50e976;})[_0x4347('0x22')](respondWithFilteredResult(_0x3816cc,_0x17edd6))['catch'](handleError(_0x3816cc,null));};exports[_0x4347('0x42')]=function(_0x57fa76,_0x45833a){var _0x23e897={'raw':![],'where':{'id':_0x57fa76[_0x4347('0x43')]['id']}},_0x595d24={};_0x595d24[_0x4347('0x31')]=_['keys'](db['ServicenowAccount'][_0x4347('0x2a')]);_0x595d24[_0x4347('0x2e')]=_[_0x4347('0x2f')](_0x57fa76[_0x4347('0x2e')]);_0x595d24[_0x4347('0x39')]=_[_0x4347('0x30')](_0x595d24[_0x4347('0x31')],_0x595d24[_0x4347('0x2e')]);_0x23e897[_0x4347('0x32')]=_[_0x4347('0x30')](_0x595d24[_0x4347('0x31')],qs[_0x4347('0x33')](_0x57fa76['query'][_0x4347('0x33')]));_0x23e897[_0x4347('0x32')]=_0x23e897['attributes'][_0x4347('0x34')]?_0x23e897[_0x4347('0x32')]:_0x595d24[_0x4347('0x31')];if(_0x57fa76['query'][_0x4347('0x3e')]){_0x23e897[_0x4347('0x3f')]=[{'all':!![]}];}_0x23e897=_[_0x4347('0x3b')]({},_0x23e897,_0x57fa76[_0x4347('0x3c')]);return db[_0x4347('0x3d')][_0x4347('0x44')](_0x23e897)[_0x4347('0x22')](handleEntityNotFound(_0x45833a,null))[_0x4347('0x22')](respondWithResult(_0x45833a,null))['catch'](handleError(_0x45833a,null));};exports['create']=function(_0x426a6c,_0x510463){return db[_0x4347('0x3d')][_0x4347('0x45')](_0x426a6c['body'],{})['then'](respondWithResult(_0x510463,0xc9))['catch'](handleError(_0x510463,null));};exports[_0x4347('0x46')]=function(_0x26826a,_0x398bd6){if(_0x26826a[_0x4347('0x47')]['id']){delete _0x26826a[_0x4347('0x47')]['id'];}return db[_0x4347('0x3d')][_0x4347('0x44')]({'where':{'id':_0x26826a[_0x4347('0x43')]['id']}})[_0x4347('0x22')](handleEntityNotFound(_0x398bd6,null))['then'](saveUpdates(_0x26826a[_0x4347('0x47')],null))['then'](respondWithResult(_0x398bd6,null))[_0x4347('0x48')](handleError(_0x398bd6,null));};exports['destroy']=function(_0x4e251d,_0x54ba2f){return db[_0x4347('0x3d')]['find']({'where':{'id':_0x4e251d[_0x4347('0x43')]['id']}})[_0x4347('0x22')](handleEntityNotFound(_0x54ba2f,null))[_0x4347('0x22')](removeEntity(_0x54ba2f,null))['catch'](handleError(_0x54ba2f,null));};exports[_0x4347('0x49')]=function(_0x301cb3,_0x450f32,_0x474130){var _0x169778={};var _0x334767={};var _0x48c0bf;var _0x310ebc;return db[_0x4347('0x3d')][_0x4347('0x4a')]({'where':{'id':_0x301cb3[_0x4347('0x43')]['id']}})[_0x4347('0x22')](handleEntityNotFound(_0x450f32,null))[_0x4347('0x22')](function(_0x3d7a86){if(_0x3d7a86){_0x48c0bf=_0x3d7a86;_0x334767['model']=_[_0x4347('0x2f')](db[_0x4347('0x4b')][_0x4347('0x2a')]);_0x334767[_0x4347('0x2e')]=_[_0x4347('0x2f')](_0x301cb3['query']);_0x334767[_0x4347('0x39')]=_[_0x4347('0x30')](_0x334767['model'],_0x334767[_0x4347('0x2e')]);_0x169778[_0x4347('0x32')]=_['intersection'](_0x334767[_0x4347('0x31')],qs['fields'](_0x301cb3['query'][_0x4347('0x33')]));_0x169778[_0x4347('0x32')]=_0x169778[_0x4347('0x32')][_0x4347('0x34')]?_0x169778['attributes']:_0x334767[_0x4347('0x31')];_0x169778[_0x4347('0x4c')]=qs[_0x4347('0x36')](_0x301cb3[_0x4347('0x2e')][_0x4347('0x36')]);_0x169778[_0x4347('0x37')]=qs['filters'](_['pick'](_0x301cb3[_0x4347('0x2e')],_0x334767[_0x4347('0x39')]));if(_0x301cb3['query'][_0x4347('0x3a')]){_0x169778[_0x4347('0x37')]=_['merge'](_0x169778[_0x4347('0x37')],{'$or':_[_0x4347('0x29')](_0x169778['attributes'],function(_0x1bfd3d){var _0x3710a8={};_0x3710a8[_0x1bfd3d]={'$like':'%'+_0x301cb3[_0x4347('0x2e')][_0x4347('0x3a')]+'%'};return _0x3710a8;})});}_0x169778=_[_0x4347('0x3b')]({},_0x169778,_0x301cb3['options']);return _0x48c0bf[_0x4347('0x49')](_0x169778);}})['then'](function(_0x2edc2b){if(_0x2edc2b){_0x310ebc=_0x2edc2b[_0x4347('0x34')];if(!_0x301cb3[_0x4347('0x2e')]['hasOwnProperty'](_0x4347('0x4d'))){_0x169778['limit']=qs[_0x4347('0x1e')](_0x301cb3[_0x4347('0x2e')][_0x4347('0x1e')]);_0x169778[_0x4347('0x1c')]=qs[_0x4347('0x1c')](_0x301cb3[_0x4347('0x2e')][_0x4347('0x1c')]);}return _0x48c0bf['getConfigurations'](_0x169778);}})[_0x4347('0x22')](function(_0x362441){if(_0x362441){return _0x362441?{'count':_0x310ebc,'rows':_0x362441}:null;}})[_0x4347('0x22')](respondWithResult(_0x450f32,null))['catch'](handleError(_0x450f32,null));};exports[_0x4347('0x4e')]=function(_0x5e0b81,_0x1939d7,_0x18d62e){if(_0x5e0b81['body']['id']){delete _0x5e0b81['body']['id'];}return db[_0x4347('0x3d')][_0x4347('0x4a')]({'where':{'id':_0x5e0b81[_0x4347('0x43')]['id']}})[_0x4347('0x22')](handleEntityNotFound(_0x1939d7,null))['then'](function(_0x316be7){if(_0x316be7){_0x5e0b81[_0x4347('0x47')][_0x4347('0x4f')]=_0x316be7['id'];_0x5e0b81['body'][_0x4347('0x50')]=integrations[_0x4347('0x51')](_0x5e0b81[_0x4347('0x47')][_0x4347('0x52')],_0x5e0b81['body'][_0x4347('0x2c')]);_0x5e0b81[_0x4347('0x47')][_0x4347('0x53')]=integrations[_0x4347('0x54')](_0x5e0b81['body']['channel'],_0x5e0b81[_0x4347('0x47')]['type']);return db['ServicenowConfiguration'][_0x4347('0x45')](_0x5e0b81[_0x4347('0x47')],{'include':[{'model':db[_0x4347('0x55')],'as':_0x4347('0x50')},{'model':db[_0x4347('0x55')],'as':_0x4347('0x53')}]});}return null;})[_0x4347('0x22')](respondWithResult(_0x1939d7,null))[_0x4347('0x48')](handleError(_0x1939d7,null));};exports['getFields']=function(_0x21f32,_0x4422ea,_0x1f9a37){var _0x16e916=[_0x4347('0x56'),_0x4347('0x57'),_0x4347('0x58'),_0x4347('0x59'),_0x4347('0x5a'),_0x4347('0x5b'),_0x4347('0x5c'),'severity',_0x4347('0x5d')];var _0x5ad269=[_0x4347('0x5e'),_0x4347('0x56'),_0x4347('0x5f'),_0x4347('0x60'),_0x4347('0x61'),_0x4347('0x62'),'child_incidents',_0x4347('0x57'),_0x4347('0x63'),'number',_0x4347('0x64'),_0x4347('0x65'),'opened_by','user_input',_0x4347('0x66'),_0x4347('0x67'),_0x4347('0x68'),'sys_created_by',_0x4347('0x58'),_0x4347('0x4c'),_0x4347('0x69'),'closed_at','cmdb_ci',_0x4347('0x6a'),_0x4347('0x6b'),_0x4347('0x6c'),'work_notes_list',_0x4347('0x6d'),_0x4347('0x6e'),_0x4347('0x6f'),'rfc',_0x4347('0x70'),_0x4347('0x71'),_0x4347('0x72'),_0x4347('0x73'),_0x4347('0x74'),_0x4347('0x75'),_0x4347('0x76'),_0x4347('0x77'),_0x4347('0x78'),'approval_set',_0x4347('0x59'),'work_notes',_0x4347('0x79'),_0x4347('0x5a'),_0x4347('0x7a'),_0x4347('0x7b'),_0x4347('0x7c'),_0x4347('0x7d'),_0x4347('0x7e'),_0x4347('0x7f'),'description',_0x4347('0x80'),_0x4347('0x5b'),'sys_class_name',_0x4347('0x81'),_0x4347('0x82'),_0x4347('0x83'),_0x4347('0x84'),_0x4347('0x85'),_0x4347('0x86'),_0x4347('0x87'),_0x4347('0x5c'),_0x4347('0x88'),_0x4347('0x89'),_0x4347('0x8a'),'reassignment_count','activity_due',_0x4347('0x8b'),'severity','comments',_0x4347('0x8c'),_0x4347('0x8d'),_0x4347('0x8e'),_0x4347('0x8f'),_0x4347('0x90'),_0x4347('0x91'),'sys_tags',_0x4347('0x92'),_0x4347('0x93'),_0x4347('0x94'),_0x4347('0x95'),_0x4347('0x5d')];var _0x1efd66='';var _0x1ab506='';var _0x59b4a2=[];var _0x238561='';var _0x125da2='';var _0x32ee4b=[];var _0x30efb7='';var _0x3b5013='';var _0xae64d5={};var _0x601306='';return db[_0x4347('0x3d')]['findOne']({'where':{'id':_0x21f32[_0x4347('0x43')]['id']},'attributes':['id','username',_0x4347('0x96'),'email','remoteUri','serverUrl']})[_0x4347('0x22')](handleEntityNotFound(_0x4422ea,null))[_0x4347('0x22')](function(_0x41825d){if(_0x41825d){_0x601306=_0x41825d['remoteUri'];var _0x5ed165=_0x601306['slice'](-0x1);if(_0x5ed165==='/'){_0x601306=_0x601306[_0x4347('0x97')](0x0,_0x601306[_0x4347('0x98')](_0x5ed165));}_0x3b5013=util[_0x4347('0x99')](_0x4347('0x9a'),_0x601306);_0x30efb7=util[_0x4347('0x99')](_0x4347('0x9b'),_0x601306);_0xae64d5={'user':_0x41825d['username'],'pass':_0x41825d[_0x4347('0x96')]};var _0x3cce3a={'method':'GET','uri':_0x3b5013+_0x4347('0x9c'),'auth':_0xae64d5,'json':!![]};return rp(_0x3cce3a);}})[_0x4347('0x22')](function(_0x4e801b){if(_0x4e801b['result'][_0x4347('0x34')]>0x0){_0x1efd66=_0x4e801b['result'];}console[_0x4347('0x9d')](_0x4347('0x9e'),_0x1efd66);_0x32ee4b=[];_0x1ab506=Object[_0x4347('0x9f')]([],_0x1efd66);_[_0x4347('0xa0')](_0x1ab506,function(_0x188c7d){return!_0x16e916[_0x4347('0xa1')](_0x188c7d['name']);});_0x1ab506[_0x4347('0xa2')](function(_0x51bdad){var _0x4e29c6=createFieldObject(_0x30efb7,_0xae64d5,_0x51bdad['internalType'],_0x51bdad[_0x4347('0x26')],_0x51bdad[_0x4347('0xa3')],![]);_0x32ee4b[_0x4347('0xa4')](_0x4e29c6);});return Promise['all'](_0x32ee4b);})[_0x4347('0x22')](function(_0x20bfbe){_0x59b4a2=_0x20bfbe;_0x238561=Object[_0x4347('0x9f')]([],_0x1efd66);console[_0x4347('0x9d')]('TCL:\x20_object',_0x1efd66);_[_0x4347('0xa0')](_0x238561,function(_0x4818c7){return _0x5ad269[_0x4347('0xa1')](_0x4818c7[_0x4347('0x26')]);});console[_0x4347('0x9d')](_0x4347('0xa5'),_0x238561);_0x32ee4b=[];_0x238561['forEach'](function(_0x5b66ea){var _0x79d00d=createFieldObject(_0x30efb7,_0xae64d5,_0x5b66ea[_0x4347('0xa6')],_0x5b66ea[_0x4347('0x26')],_0x5b66ea[_0x4347('0xa3')],!![]);_0x32ee4b['push'](_0x79d00d);});return Promise['all'](_0x32ee4b);})[_0x4347('0x22')](function(_0x3f2e48){_0x125da2=_0x3f2e48;var _0x87f5ab=_0x59b4a2[_0x4347('0xa7')](_0x125da2);return{'count':_0x87f5ab[_0x4347('0x34')],'rows':_0x87f5ab};})['then'](respondWithResult(_0x4422ea,null))[_0x4347('0x48')](function(_0x453d8b){console['log'](_0x4347('0xa8')+_0x453d8b);var _0x1a579c=_0x21f32[_0x4347('0x2e')][_0x4347('0xa9')]?0x1f4:_0x453d8b['statusCode']||0x1f4;logger[_0x4347('0x24')](_0x453d8b[_0x4347('0x25')]);delete _0x453d8b[_0x4347('0x26')];if(_0x1a579c===0x191){_0x1a579c=0x190;}_0x4422ea[_0x4347('0x19')](_0x1a579c)[_0x4347('0x27')](_0x21f32[_0x4347('0x2e')][_0x4347('0xa9')]?{'message':_0x4347('0xaa'),'statusCode':_0x453d8b[_0x4347('0xab')]}:_0x453d8b);});};function createFieldObject(_0x1ee15e,_0xfa9264,_0x18c2c7,_0x637632,_0x946c49,_0x128143){return new Promise(function(_0x5197fb,_0x23a95d){var _0xb8daa4={'id':_0x637632,'name':_0x946c49,'custom':_0x128143};if(_0x18c2c7==='boolean'){_0xb8daa4['options']=[{'name':'True','value':'true'},{'name':_0x4347('0xac'),'value':_0x4347('0xad')}];_0x5197fb(_0xb8daa4);}else{var _0x27e421={'method':_0x4347('0xae'),'uri':_0x1ee15e+_0x4347('0xaf')+_0x637632,'auth':_0xfa9264,'json':!![]};return rp(_0x27e421)[_0x4347('0x22')](function(_0x361635){var _0x3c7b01=[];if(_0x361635[_0x4347('0xb0')][_0x4347('0x34')]>0x0){_0x361635['result']['forEach'](function(_0x541281){if(_0x541281[_0x4347('0xb1')]==='false'){var _0x4f6467={'name':_0x541281[_0x4347('0xa3')],'value':_0x541281[_0x4347('0xb2')]};_0x3c7b01[_0x4347('0xa4')](_0x4f6467);}});}_0xb8daa4[_0x4347('0x3c')]=_0x3c7b01;if(_0xb8daa4[_0x4347('0x3c')][_0x4347('0x34')]>0x0){_0x5197fb(_0xb8daa4);}else{if(_0x128143==![]){_0x5197fb();}else{_0x5197fb(_0xb8daa4);}}});}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53ec=['path','../../config/environment','./intServicenowAccount.attributes','exports','define','int_servicenow_accounts','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x53ec,0x192));var _0xc53e=function(_0x19a72c,_0x2229cb){_0x19a72c=_0x19a72c-0x0;var _0x3c6199=_0x53ec[_0x19a72c];return _0x3c6199;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var logger=require(_0xc53e('0x2'))(_0xc53e('0x3'));var moment=require(_0xc53e('0x4'));var BPromise=require(_0xc53e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc53e('0x6'));var rimraf=require('rimraf');var config=require(_0xc53e('0x7'));var attributes=require(_0xc53e('0x8'));var integrations=require('../../components/integrations/configuration');module[_0xc53e('0x9')]=function(_0x4f989b,_0x41a9e8){return _0x4f989b[_0xc53e('0xa')]('ServicenowAccount',attributes,{'tableName':_0xc53e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fc3=['lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','ServicenowAccount','int_servicenow_accounts'];(function(_0x445c98,_0x132bf7){var _0x2fe913=function(_0x32e864){while(--_0x32e864){_0x445c98['push'](_0x445c98['shift']());}};_0x2fe913(++_0x132bf7);}(_0x5fc3,0xa8));var _0x35fc=function(_0x381589,_0x27a707){_0x381589=_0x381589-0x0;var _0x2a075d=_0x5fc3[_0x381589];return _0x2a075d;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));var integrations=require(_0x35fc('0x9'));module['exports']=function(_0x5754be,_0x19a0d1){return _0x5754be['define'](_0x35fc('0xa'),attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f64=['../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','ServicenowAccount,\x20%s,\x20%s','request\x20sent','debug','ServicenowAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetServicenowAccount','ServicenowAccount','findAll','options','where','attributes','include','map','model','find','raw','then','ShowServicenowAccount','lodash','moment','bluebird','randomstring'];(function(_0x1bfedc,_0x1e16ca){var _0x4b8d6b=function(_0x4928b2){while(--_0x4928b2){_0x1bfedc['push'](_0x1bfedc['shift']());}};_0x4b8d6b(++_0x1e16ca);}(_0x6f64,0x88));var _0x46f6=function(_0x8a565b,_0x49df9f){_0x8a565b=_0x8a565b-0x0;var _0x231c1d=_0x6f64[_0x8a565b];return _0x231c1d;};'use strict';var _=require(_0x46f6('0x0'));var util=require('util');var moment=require(_0x46f6('0x1'));var BPromise=require(_0x46f6('0x2'));var rs=require(_0x46f6('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x46f6('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x46f6('0x5'))(_0x46f6('0x6'));var config=require(_0x46f6('0x7'));var jayson=require(_0x46f6('0x8'));var client=jayson[_0x46f6('0x9')][_0x46f6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x22fea2,_0x45ef86,_0x231abb){return new BPromise(function(_0x1a156f,_0x4b143){return client[_0x46f6('0xb')](_0x22fea2,_0x231abb)['then'](function(_0x5e02f3){logger[_0x46f6('0xc')](_0x46f6('0xd'),_0x45ef86,_0x46f6('0xe'));logger[_0x46f6('0xf')](_0x46f6('0x10'),_0x45ef86,_0x46f6('0xe'),JSON[_0x46f6('0x11')](_0x5e02f3));if(_0x5e02f3[_0x46f6('0x12')]){if(_0x5e02f3[_0x46f6('0x12')][_0x46f6('0x13')]===0x1f4){logger[_0x46f6('0x12')]('ServicenowAccount,\x20%s,\x20%s',_0x45ef86,_0x5e02f3['error'][_0x46f6('0x14')]);return _0x4b143(_0x5e02f3[_0x46f6('0x12')][_0x46f6('0x14')]);}logger['error']('ServicenowAccount,\x20%s,\x20%s',_0x45ef86,_0x5e02f3['error'][_0x46f6('0x14')]);return _0x1a156f(_0x5e02f3['error'][_0x46f6('0x14')]);}else{logger[_0x46f6('0xc')](_0x46f6('0xd'),_0x45ef86,_0x46f6('0xe'));_0x1a156f(_0x5e02f3['result'][_0x46f6('0x14')]);}})[_0x46f6('0x15')](function(_0x27a7b7){logger[_0x46f6('0x12')]('ServicenowAccount,\x20%s,\x20%s',_0x45ef86,_0x27a7b7);_0x4b143(_0x27a7b7);});});}exports[_0x46f6('0x16')]=function(_0x2b5590){var _0x1ba079=this;return new Promise(function(_0x29f3d1,_0x399152){return db[_0x46f6('0x17')][_0x46f6('0x18')]({'raw':_0x2b5590['options']?_0x2b5590[_0x46f6('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x2b5590[_0x46f6('0x19')]?_0x2b5590[_0x46f6('0x19')][_0x46f6('0x1a')]||null:null,'attributes':_0x2b5590['options']?_0x2b5590[_0x46f6('0x19')][_0x46f6('0x1b')]||null:null,'limit':_0x2b5590[_0x46f6('0x19')]?_0x2b5590[_0x46f6('0x19')]['limit']||null:null,'include':_0x2b5590[_0x46f6('0x19')]?_0x2b5590['options'][_0x46f6('0x1c')]?_[_0x46f6('0x1d')](_0x2b5590['options']['include'],function(_0x301469){return{'model':db[_0x301469['model']],'as':_0x301469['as'],'attributes':_0x301469[_0x46f6('0x1b')],'include':_0x301469[_0x46f6('0x1c')]?_[_0x46f6('0x1d')](_0x301469[_0x46f6('0x1c')],function(_0x1e2343){return{'model':db[_0x1e2343[_0x46f6('0x1e')]],'as':_0x1e2343['as'],'attributes':_0x1e2343[_0x46f6('0x1b')],'include':_0x1e2343[_0x46f6('0x1c')]?_[_0x46f6('0x1d')](_0x1e2343[_0x46f6('0x1c')],function(_0x3d1f08){return{'model':db[_0x3d1f08[_0x46f6('0x1e')]],'as':_0x3d1f08['as'],'attributes':_0x3d1f08['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x37a96c){logger[_0x46f6('0xc')](_0x46f6('0x16'),_0x2b5590);logger[_0x46f6('0xf')]('GetServicenowAccount',_0x2b5590,JSON['stringify'](_0x37a96c));_0x29f3d1(_0x37a96c);})['catch'](function(_0x2c4130){logger[_0x46f6('0x12')](_0x46f6('0x16'),_0x2c4130[_0x46f6('0x14')],_0x2b5590);_0x399152(_0x1ba079[_0x46f6('0x12')](0x1f4,_0x2c4130[_0x46f6('0x14')]));});});};exports['ShowServicenowAccount']=function(_0x58e84c){var _0xee74bc=this;return new Promise(function(_0xd1639f,_0x1ce49f){return db[_0x46f6('0x17')][_0x46f6('0x1f')]({'raw':_0x58e84c[_0x46f6('0x19')]?_0x58e84c[_0x46f6('0x19')][_0x46f6('0x20')]===undefined?!![]:![]:!![],'where':_0x58e84c[_0x46f6('0x19')]?_0x58e84c['options']['where']||null:null,'attributes':_0x58e84c['options']?_0x58e84c[_0x46f6('0x19')][_0x46f6('0x1b')]||null:null,'include':_0x58e84c['options']?_0x58e84c[_0x46f6('0x19')][_0x46f6('0x1c')]?_[_0x46f6('0x1d')](_0x58e84c[_0x46f6('0x19')][_0x46f6('0x1c')],function(_0x46caba){return{'model':db[_0x46caba[_0x46f6('0x1e')]],'as':_0x46caba['as'],'attributes':_0x46caba['attributes'],'include':_0x46caba[_0x46f6('0x1c')]?_[_0x46f6('0x1d')](_0x46caba[_0x46f6('0x1c')],function(_0x16bfa5){return{'model':db[_0x16bfa5[_0x46f6('0x1e')]],'as':_0x16bfa5['as'],'attributes':_0x16bfa5[_0x46f6('0x1b')],'include':_0x16bfa5['include']?_['map'](_0x16bfa5[_0x46f6('0x1c')],function(_0xe58428){return{'model':db[_0xe58428[_0x46f6('0x1e')]],'as':_0xe58428['as'],'attributes':_0xe58428[_0x46f6('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x46f6('0x21')](function(_0x1e252c){logger[_0x46f6('0xc')]('ShowServicenowAccount',_0x58e84c);logger[_0x46f6('0xf')]('ShowServicenowAccount',_0x58e84c,JSON[_0x46f6('0x11')](_0x1e252c));_0xd1639f(_0x1e252c);})[_0x46f6('0x15')](function(_0x36686f){logger[_0x46f6('0x12')](_0x46f6('0x22'),_0x36686f['message'],_0x58e84c);_0x1ce49f(_0xee74bc[_0x46f6('0x12')](0x1f4,_0x36686f[_0x46f6('0x14')]));});});};
\ No newline at end of file
+var _0xb5f9=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','request','then','ServicenowAccount,\x20%s,\x20%s','request\x20sent','debug','ServicenowAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','ServicenowAccount','findAll','options','raw','where','limit','include','map','model','attributes','GetServicenowAccount','ShowServicenowAccount','util'];(function(_0x2a8add,_0x25357c){var _0x8f61bb=function(_0x5416a3){while(--_0x5416a3){_0x2a8add['push'](_0x2a8add['shift']());}};_0x8f61bb(++_0x25357c);}(_0xb5f9,0xcb));var _0x9b5f=function(_0x4468b2,_0x42f390){_0x4468b2=_0x4468b2-0x0;var _0x3e84b7=_0xb5f9[_0x4468b2];return _0x3e84b7;};'use strict';var _=require('lodash');var util=require(_0x9b5f('0x0'));var moment=require(_0x9b5f('0x1'));var BPromise=require(_0x9b5f('0x2'));var rs=require(_0x9b5f('0x3'));var fs=require('fs');var Redis=require(_0x9b5f('0x4'));var db=require(_0x9b5f('0x5'))['db'];var utils=require(_0x9b5f('0x6'));var logger=require(_0x9b5f('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x9b5f('0x8'));var client=jayson['client'][_0x9b5f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1c78e3,_0x18c401,_0x2b56d6){return new BPromise(function(_0x483683,_0xea47c3){return client[_0x9b5f('0xa')](_0x1c78e3,_0x2b56d6)[_0x9b5f('0xb')](function(_0x82e340){logger['info'](_0x9b5f('0xc'),_0x18c401,_0x9b5f('0xd'));logger[_0x9b5f('0xe')](_0x9b5f('0xf'),_0x18c401,_0x9b5f('0xd'),JSON[_0x9b5f('0x10')](_0x82e340));if(_0x82e340[_0x9b5f('0x11')]){if(_0x82e340[_0x9b5f('0x11')]['code']===0x1f4){logger[_0x9b5f('0x11')]('ServicenowAccount,\x20%s,\x20%s',_0x18c401,_0x82e340[_0x9b5f('0x11')][_0x9b5f('0x12')]);return _0xea47c3(_0x82e340[_0x9b5f('0x11')][_0x9b5f('0x12')]);}logger[_0x9b5f('0x11')](_0x9b5f('0xc'),_0x18c401,_0x82e340['error'][_0x9b5f('0x12')]);return _0x483683(_0x82e340[_0x9b5f('0x11')][_0x9b5f('0x12')]);}else{logger[_0x9b5f('0x13')](_0x9b5f('0xc'),_0x18c401,_0x9b5f('0xd'));_0x483683(_0x82e340[_0x9b5f('0x14')]['message']);}})[_0x9b5f('0x15')](function(_0x2ddbf2){logger['error']('ServicenowAccount,\x20%s,\x20%s',_0x18c401,_0x2ddbf2);_0xea47c3(_0x2ddbf2);});});}exports['GetServicenowAccount']=function(_0x1deb98){var _0x1c17a6=this;return new Promise(function(_0x320543,_0x3eaf3f){return db[_0x9b5f('0x16')][_0x9b5f('0x17')]({'raw':_0x1deb98[_0x9b5f('0x18')]?_0x1deb98[_0x9b5f('0x18')][_0x9b5f('0x19')]===undefined?!![]:![]:!![],'where':_0x1deb98[_0x9b5f('0x18')]?_0x1deb98[_0x9b5f('0x18')][_0x9b5f('0x1a')]||null:null,'attributes':_0x1deb98[_0x9b5f('0x18')]?_0x1deb98[_0x9b5f('0x18')]['attributes']||null:null,'limit':_0x1deb98[_0x9b5f('0x18')]?_0x1deb98[_0x9b5f('0x18')][_0x9b5f('0x1b')]||null:null,'include':_0x1deb98['options']?_0x1deb98[_0x9b5f('0x18')][_0x9b5f('0x1c')]?_[_0x9b5f('0x1d')](_0x1deb98['options'][_0x9b5f('0x1c')],function(_0x37965b){return{'model':db[_0x37965b[_0x9b5f('0x1e')]],'as':_0x37965b['as'],'attributes':_0x37965b[_0x9b5f('0x1f')],'include':_0x37965b[_0x9b5f('0x1c')]?_[_0x9b5f('0x1d')](_0x37965b[_0x9b5f('0x1c')],function(_0x42199f){return{'model':db[_0x42199f[_0x9b5f('0x1e')]],'as':_0x42199f['as'],'attributes':_0x42199f['attributes'],'include':_0x42199f[_0x9b5f('0x1c')]?_[_0x9b5f('0x1d')](_0x42199f[_0x9b5f('0x1c')],function(_0x436365){return{'model':db[_0x436365[_0x9b5f('0x1e')]],'as':_0x436365['as'],'attributes':_0x436365[_0x9b5f('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x9b5f('0xb')](function(_0x3dcaa2){logger[_0x9b5f('0x13')](_0x9b5f('0x20'),_0x1deb98);logger[_0x9b5f('0xe')]('GetServicenowAccount',_0x1deb98,JSON[_0x9b5f('0x10')](_0x3dcaa2));_0x320543(_0x3dcaa2);})[_0x9b5f('0x15')](function(_0x1e4ce2){logger['error']('GetServicenowAccount',_0x1e4ce2['message'],_0x1deb98);_0x3eaf3f(_0x1c17a6['error'](0x1f4,_0x1e4ce2[_0x9b5f('0x12')]));});});};exports[_0x9b5f('0x21')]=function(_0x1e236b){var _0x3e0b1b=this;return new Promise(function(_0xf3eca2,_0x32ee4d){return db[_0x9b5f('0x16')]['find']({'raw':_0x1e236b['options']?_0x1e236b[_0x9b5f('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x1e236b[_0x9b5f('0x18')]?_0x1e236b['options'][_0x9b5f('0x1a')]||null:null,'attributes':_0x1e236b[_0x9b5f('0x18')]?_0x1e236b[_0x9b5f('0x18')][_0x9b5f('0x1f')]||null:null,'include':_0x1e236b[_0x9b5f('0x18')]?_0x1e236b[_0x9b5f('0x18')][_0x9b5f('0x1c')]?_[_0x9b5f('0x1d')](_0x1e236b['options'][_0x9b5f('0x1c')],function(_0x3f5896){return{'model':db[_0x3f5896[_0x9b5f('0x1e')]],'as':_0x3f5896['as'],'attributes':_0x3f5896[_0x9b5f('0x1f')],'include':_0x3f5896['include']?_[_0x9b5f('0x1d')](_0x3f5896['include'],function(_0x5679b6){return{'model':db[_0x5679b6[_0x9b5f('0x1e')]],'as':_0x5679b6['as'],'attributes':_0x5679b6[_0x9b5f('0x1f')],'include':_0x5679b6[_0x9b5f('0x1c')]?_[_0x9b5f('0x1d')](_0x5679b6[_0x9b5f('0x1c')],function(_0x3289d){return{'model':db[_0x3289d[_0x9b5f('0x1e')]],'as':_0x3289d['as'],'attributes':_0x3289d[_0x9b5f('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x9b5f('0xb')](function(_0x96998e){logger['info']('ShowServicenowAccount',_0x1e236b);logger[_0x9b5f('0xe')](_0x9b5f('0x21'),_0x1e236b,JSON['stringify'](_0x96998e));_0xf3eca2(_0x96998e);})['catch'](function(_0x567fdb){logger['error'](_0x9b5f('0x21'),_0x567fdb['message'],_0x1e236b);_0x32ee4d(_0x3e0b1b[_0x9b5f('0x11')](0x1f4,_0x567fdb[_0x9b5f('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0d8=['express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','update','delete','exports','multer','util','path','connect-timeout'];(function(_0xd6dc4d,_0x417d75){var _0x4848f7=function(_0x36b3fe){while(--_0x36b3fe){_0xd6dc4d['push'](_0xd6dc4d['shift']());}};_0x4848f7(++_0x417d75);}(_0xf0d8,0x164));var _0x8f0d=function(_0x56f920,_0x3fa87f){_0x56f920=_0x56f920-0x0;var _0x3d86d4=_0xf0d8[_0x56f920];return _0x3d86d4;};'use strict';var multer=require(_0x8f0d('0x0'));var util=require(_0x8f0d('0x1'));var path=require(_0x8f0d('0x2'));var timeout=require(_0x8f0d('0x3'));var express=require(_0x8f0d('0x4'));var router=express[_0x8f0d('0x5')]();var fs_extra=require(_0x8f0d('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x8f0d('0x7'));var config=require(_0x8f0d('0x8'));var controller=require(_0x8f0d('0x9'));router[_0x8f0d('0xa')]('/',auth[_0x8f0d('0xb')](),controller[_0x8f0d('0xc')]);router[_0x8f0d('0xa')](_0x8f0d('0xd'),auth['isAuthenticated'](),controller[_0x8f0d('0xe')]);router[_0x8f0d('0xa')](_0x8f0d('0xf'),auth[_0x8f0d('0xb')](),controller['getFields']);router[_0x8f0d('0xa')](_0x8f0d('0x10'),auth[_0x8f0d('0xb')](),controller[_0x8f0d('0x11')]);router[_0x8f0d('0xa')](_0x8f0d('0x12'),auth[_0x8f0d('0xb')](),controller[_0x8f0d('0x13')]);router[_0x8f0d('0x14')]('/',auth[_0x8f0d('0xb')](),controller['create']);router['put'](_0x8f0d('0xd'),auth['isAuthenticated'](),controller[_0x8f0d('0x15')]);router[_0x8f0d('0x16')](_0x8f0d('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0x8f0d('0x17')]=router;
\ No newline at end of file
+var _0x72e1=['/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','destroy','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowConfiguration.controller','index','get','/:id','isAuthenticated','show','/:id/fields','getFields'];(function(_0xce3c00,_0xc66c51){var _0x44ea6e=function(_0x20f356){while(--_0x20f356){_0xce3c00['push'](_0xce3c00['shift']());}};_0x44ea6e(++_0xc66c51);}(_0x72e1,0x140));var _0x172e=function(_0x5c15a5,_0x1b2af1){_0x5c15a5=_0x5c15a5-0x0;var _0x4693f9=_0x72e1[_0x5c15a5];return _0x4693f9;};'use strict';var multer=require(_0x172e('0x0'));var util=require(_0x172e('0x1'));var path=require(_0x172e('0x2'));var timeout=require('connect-timeout');var express=require(_0x172e('0x3'));var router=express['Router']();var fs_extra=require(_0x172e('0x4'));var auth=require(_0x172e('0x5'));var interaction=require(_0x172e('0x6'));var config=require(_0x172e('0x7'));var controller=require(_0x172e('0x8'));router['get']('/',auth['isAuthenticated'](),controller[_0x172e('0x9')]);router[_0x172e('0xa')](_0x172e('0xb'),auth[_0x172e('0xc')](),controller[_0x172e('0xd')]);router[_0x172e('0xa')](_0x172e('0xe'),auth['isAuthenticated'](),controller[_0x172e('0xf')]);router[_0x172e('0xa')](_0x172e('0x10'),auth[_0x172e('0xc')](),controller[_0x172e('0x11')]);router[_0x172e('0xa')](_0x172e('0x12'),auth[_0x172e('0xc')](),controller[_0x172e('0x13')]);router[_0x172e('0x14')]('/',auth['isAuthenticated'](),controller[_0x172e('0x15')]);router[_0x172e('0x16')](_0x172e('0xb'),auth[_0x172e('0xc')](),controller['update']);router['delete'](_0x172e('0xb'),auth['isAuthenticated'](),controller[_0x172e('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe8ca=['exports','STRING'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0xe8ca,0x16e));var _0xae8c=function(_0x468c71,_0x157aea){_0x468c71=_0x468c71-0x0;var _0x35e7d6=_0xe8ca[_0x468c71];return _0x35e7d6;};'use strict';var Sequelize=require('sequelize');module[_0xae8c('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xae8c('0x1')]}};
\ No newline at end of file
+var _0xa182=['sequelize','exports','STRING'];(function(_0x2dd688,_0x22a2b9){var _0x4bd6c3=function(_0xc0f9b){while(--_0xc0f9b){_0x2dd688['push'](_0x2dd688['shift']());}};_0x4bd6c3(++_0x22a2b9);}(_0xa182,0x1ef));var _0x2a18=function(_0x54f16b,_0x16d2a0){_0x54f16b=_0x54f16b-0x0;var _0x575e81=_0xa182[_0x54f16b];return _0x575e81;};'use strict';var Sequelize=require(_0x2a18('0x0'));module[_0x2a18('0x1')]={'name':{'type':Sequelize[_0x2a18('0x2')]},'description':{'type':Sequelize[_0x2a18('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c78=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','apply','update','then','destroy','error','name','send','ServicenowConfiguration','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','nolimit','order','sort','where','filters','filter','merge','findAll','catch','show','params','length','include','create','body','find','getFields','ServicenowField','options','getSubjects','findOne','hasOwnProperty','getDescriptions','pick','rimraf','fast-json-patch','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','desk.js'];(function(_0x37da69,_0x3f6e3d){var _0x199c56=function(_0x228a09){while(--_0x228a09){_0x37da69['push'](_0x37da69['shift']());}};_0x199c56(++_0x3f6e3d);}(_0x2c78,0x124));var _0x82c7=function(_0x52949d,_0x5750ec){_0x52949d=_0x52949d-0x0;var _0x570250=_0x2c78[_0x52949d];return _0x570250;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x82c7('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x82c7('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x82c7('0x2'));var Mustache=require(_0x82c7('0x3'));var util=require(_0x82c7('0x4'));var path=require('path');var sox=require(_0x82c7('0x5'));var csv=require('to-csv');var ejs=require(_0x82c7('0x6'));var fs=require('fs');var fs_extra=require(_0x82c7('0x7'));var _=require(_0x82c7('0x8'));var squel=require(_0x82c7('0x9'));var crypto=require(_0x82c7('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x82c7('0xb'));var toCsv=require('to-csv');var querystring=require(_0x82c7('0xc'));var Papa=require(_0x82c7('0xd'));var Redis=require(_0x82c7('0xe'));var authService=require(_0x82c7('0xf'));var qs=require(_0x82c7('0x10'));var as=require(_0x82c7('0x11'));var hardwareService=require(_0x82c7('0x12'));var logger=require(_0x82c7('0x13'))(_0x82c7('0x14'));var utils=require('../../config/utils');var config=require(_0x82c7('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x82c7('0x16'))['db'];function respondWithStatusCode(_0x9ca524,_0x4fb579){_0x4fb579=_0x4fb579||0xcc;return function(_0x479211){if(_0x479211){return _0x9ca524[_0x82c7('0x17')](_0x4fb579);}return _0x9ca524[_0x82c7('0x18')](_0x4fb579)[_0x82c7('0x19')]();};}function respondWithResult(_0x1c3796,_0x5df3fc){_0x5df3fc=_0x5df3fc||0xc8;return function(_0x54c787){if(_0x54c787){return _0x1c3796['status'](_0x5df3fc)['json'](_0x54c787);}};}function respondWithFilteredResult(_0x33b954,_0x171489){return function(_0x43dc41){if(_0x43dc41){var _0x4ba9d2=typeof _0x171489[_0x82c7('0x1a')]==='undefined'&&typeof _0x171489[_0x82c7('0x1b')]===_0x82c7('0x1c');var _0x4338d6=_0x43dc41[_0x82c7('0x1d')];var _0x1bd10c=_0x4ba9d2?0x0:_0x171489[_0x82c7('0x1a')];var _0x3f4010=_0x4ba9d2?_0x43dc41['count']:_0x171489['offset']+_0x171489[_0x82c7('0x1b')];var _0x4339cc;if(_0x3f4010>=_0x4338d6){_0x3f4010=_0x4338d6;_0x4339cc=0xc8;}else{_0x4339cc=0xce;}_0x33b954[_0x82c7('0x18')](_0x4339cc);return _0x33b954[_0x82c7('0x1e')](_0x82c7('0x1f'),_0x1bd10c+'-'+_0x3f4010+'/'+_0x4338d6)[_0x82c7('0x20')](_0x43dc41);}return null;};}function patchUpdates(_0x33d1a9){return function(_0x4d2243){try{jsonpatch[_0x82c7('0x21')](_0x4d2243,_0x33d1a9,!![]);}catch(_0x31c8e4){return BPromise['reject'](_0x31c8e4);}return _0x4d2243['save']();};}function saveUpdates(_0x305d03,_0x347cf4){return function(_0xc793ed){if(_0xc793ed){return _0xc793ed[_0x82c7('0x22')](_0x305d03)[_0x82c7('0x23')](function(_0x213ac4){return _0x213ac4;});}return null;};}function removeEntity(_0x209019,_0x125302){return function(_0x1d0b83){if(_0x1d0b83){return _0x1d0b83[_0x82c7('0x24')]()[_0x82c7('0x23')](function(){_0x209019[_0x82c7('0x18')](0xcc)[_0x82c7('0x19')]();});}};}function handleEntityNotFound(_0x3dd3af,_0x56dd09){return function(_0x544559){if(!_0x544559){_0x3dd3af['sendStatus'](0x194);}return _0x544559;};}function handleError(_0x4b0a18,_0x3433cb){_0x3433cb=_0x3433cb||0x1f4;return function(_0x403345){logger[_0x82c7('0x25')](_0x403345['stack']);if(_0x403345[_0x82c7('0x26')]){delete _0x403345[_0x82c7('0x26')];}_0x4b0a18[_0x82c7('0x18')](_0x3433cb)[_0x82c7('0x27')](_0x403345);};}exports['index']=function(_0x31841f,_0x3de985){var _0x377e5f={},_0x55bddf={},_0xb42736={'count':0x0,'rows':[]};var _0x4d0a6d=_['map'](db[_0x82c7('0x28')][_0x82c7('0x29')],function(_0x3929e6){return{'name':_0x3929e6[_0x82c7('0x2a')],'type':_0x3929e6[_0x82c7('0x2b')][_0x82c7('0x2c')]};});_0x55bddf[_0x82c7('0x2d')]=_[_0x82c7('0x2e')](_0x4d0a6d,'name');_0x55bddf[_0x82c7('0x2f')]=_[_0x82c7('0x30')](_0x31841f[_0x82c7('0x2f')]);_0x55bddf['filters']=_[_0x82c7('0x31')](_0x55bddf['model'],_0x55bddf['query']);_0x377e5f[_0x82c7('0x32')]=_[_0x82c7('0x31')](_0x55bddf[_0x82c7('0x2d')],qs[_0x82c7('0x33')](_0x31841f[_0x82c7('0x2f')][_0x82c7('0x33')]));_0x377e5f[_0x82c7('0x32')]=_0x377e5f[_0x82c7('0x32')]['length']?_0x377e5f[_0x82c7('0x32')]:_0x55bddf[_0x82c7('0x2d')];if(!_0x31841f[_0x82c7('0x2f')]['hasOwnProperty'](_0x82c7('0x34'))){_0x377e5f[_0x82c7('0x1b')]=qs[_0x82c7('0x1b')](_0x31841f[_0x82c7('0x2f')][_0x82c7('0x1b')]);_0x377e5f[_0x82c7('0x1a')]=qs[_0x82c7('0x1a')](_0x31841f[_0x82c7('0x2f')][_0x82c7('0x1a')]);}_0x377e5f[_0x82c7('0x35')]=qs['sort'](_0x31841f[_0x82c7('0x2f')][_0x82c7('0x36')]);_0x377e5f[_0x82c7('0x37')]=qs[_0x82c7('0x38')](_['pick'](_0x31841f[_0x82c7('0x2f')],_0x55bddf[_0x82c7('0x38')]),_0x4d0a6d);if(_0x31841f[_0x82c7('0x2f')][_0x82c7('0x39')]){_0x377e5f['where']=_[_0x82c7('0x3a')](_0x377e5f[_0x82c7('0x37')],{'$or':_[_0x82c7('0x2e')](_0x4d0a6d,function(_0x5bf762){if(_0x5bf762[_0x82c7('0x2b')]!=='VIRTUAL'){var _0xaf1096={};_0xaf1096[_0x5bf762['name']]={'$like':'%'+_0x31841f[_0x82c7('0x2f')][_0x82c7('0x39')]+'%'};return _0xaf1096;}})});}_0x377e5f=_[_0x82c7('0x3a')]({},_0x377e5f,_0x31841f['options']);var _0x580e08={'where':_0x377e5f['where']};return db[_0x82c7('0x28')]['count'](_0x580e08)['then'](function(_0x371714){_0xb42736[_0x82c7('0x1d')]=_0x371714;if(_0x31841f[_0x82c7('0x2f')]['includeAll']){_0x377e5f['include']=[{'all':!![]}];}return db['ServicenowConfiguration'][_0x82c7('0x3b')](_0x377e5f);})['then'](function(_0xa9dcb7){_0xb42736['rows']=_0xa9dcb7;return _0xb42736;})['then'](respondWithFilteredResult(_0x3de985,_0x377e5f))[_0x82c7('0x3c')](handleError(_0x3de985,null));};exports[_0x82c7('0x3d')]=function(_0x101130,_0x35ab52){var _0x1f858c={'raw':![],'where':{'id':_0x101130[_0x82c7('0x3e')]['id']}},_0x3f45e7={};_0x3f45e7[_0x82c7('0x2d')]=_['keys'](db['ServicenowConfiguration'][_0x82c7('0x29')]);_0x3f45e7[_0x82c7('0x2f')]=_[_0x82c7('0x30')](_0x101130[_0x82c7('0x2f')]);_0x3f45e7[_0x82c7('0x38')]=_[_0x82c7('0x31')](_0x3f45e7[_0x82c7('0x2d')],_0x3f45e7[_0x82c7('0x2f')]);_0x1f858c[_0x82c7('0x32')]=_[_0x82c7('0x31')](_0x3f45e7[_0x82c7('0x2d')],qs['fields'](_0x101130[_0x82c7('0x2f')][_0x82c7('0x33')]));_0x1f858c[_0x82c7('0x32')]=_0x1f858c[_0x82c7('0x32')][_0x82c7('0x3f')]?_0x1f858c[_0x82c7('0x32')]:_0x3f45e7[_0x82c7('0x2d')];if(_0x101130[_0x82c7('0x2f')]['includeAll']){_0x1f858c[_0x82c7('0x40')]=[{'all':!![]}];}_0x1f858c=_[_0x82c7('0x3a')]({},_0x1f858c,_0x101130['options']);return db[_0x82c7('0x28')]['find'](_0x1f858c)[_0x82c7('0x23')](handleEntityNotFound(_0x35ab52,null))[_0x82c7('0x23')](respondWithResult(_0x35ab52,null))[_0x82c7('0x3c')](handleError(_0x35ab52,null));};exports[_0x82c7('0x41')]=function(_0x3014e9,_0x4eb839){return db[_0x82c7('0x28')][_0x82c7('0x41')](_0x3014e9[_0x82c7('0x42')],{})[_0x82c7('0x23')](respondWithResult(_0x4eb839,0xc9))['catch'](handleError(_0x4eb839,null));};exports['update']=function(_0x5ab34c,_0x3cf197){if(_0x5ab34c[_0x82c7('0x42')]['id']){delete _0x5ab34c[_0x82c7('0x42')]['id'];}return db[_0x82c7('0x28')][_0x82c7('0x43')]({'where':{'id':_0x5ab34c['params']['id']}})['then'](handleEntityNotFound(_0x3cf197,null))[_0x82c7('0x23')](saveUpdates(_0x5ab34c['body'],null))[_0x82c7('0x23')](respondWithResult(_0x3cf197,null))[_0x82c7('0x3c')](handleError(_0x3cf197,null));};exports[_0x82c7('0x24')]=function(_0x2595df,_0x1374d6){return db[_0x82c7('0x28')][_0x82c7('0x43')]({'where':{'id':_0x2595df[_0x82c7('0x3e')]['id']}})[_0x82c7('0x23')](handleEntityNotFound(_0x1374d6,null))[_0x82c7('0x23')](removeEntity(_0x1374d6,null))[_0x82c7('0x3c')](handleError(_0x1374d6,null));};exports[_0x82c7('0x44')]=function(_0x4a1cae,_0x59f8ce,_0x534819){var _0x1cbd91={};var _0x20890d={};var _0x2f8ef8;var _0x4b8300;return db[_0x82c7('0x28')]['findOne']({'where':{'id':_0x4a1cae[_0x82c7('0x3e')]['id']}})['then'](handleEntityNotFound(_0x59f8ce,null))[_0x82c7('0x23')](function(_0x573819){if(_0x573819){_0x2f8ef8=_0x573819;_0x20890d['model']=_[_0x82c7('0x30')](db[_0x82c7('0x45')][_0x82c7('0x29')]);_0x20890d[_0x82c7('0x2f')]=_[_0x82c7('0x30')](_0x4a1cae[_0x82c7('0x2f')]);_0x20890d[_0x82c7('0x38')]=_[_0x82c7('0x31')](_0x20890d[_0x82c7('0x2d')],_0x20890d[_0x82c7('0x2f')]);_0x1cbd91[_0x82c7('0x32')]=_[_0x82c7('0x31')](_0x20890d[_0x82c7('0x2d')],qs[_0x82c7('0x33')](_0x4a1cae['query']['fields']));_0x1cbd91[_0x82c7('0x32')]=_0x1cbd91[_0x82c7('0x32')][_0x82c7('0x3f')]?_0x1cbd91[_0x82c7('0x32')]:_0x20890d['model'];_0x1cbd91['order']=qs[_0x82c7('0x36')](_0x4a1cae[_0x82c7('0x2f')][_0x82c7('0x36')]);_0x1cbd91[_0x82c7('0x37')]=qs[_0x82c7('0x38')](_['pick'](_0x4a1cae['query'],_0x20890d['filters']));if(_0x4a1cae[_0x82c7('0x2f')][_0x82c7('0x39')]){_0x1cbd91[_0x82c7('0x37')]=_[_0x82c7('0x3a')](_0x1cbd91['where'],{'$or':_['map'](_0x1cbd91['attributes'],function(_0x3788b6){var _0x444067={};_0x444067[_0x3788b6]={'$like':'%'+_0x4a1cae[_0x82c7('0x2f')][_0x82c7('0x39')]+'%'};return _0x444067;})});}_0x1cbd91=_[_0x82c7('0x3a')]({},_0x1cbd91,_0x4a1cae[_0x82c7('0x46')]);return _0x2f8ef8[_0x82c7('0x44')](_0x1cbd91);}})[_0x82c7('0x23')](function(_0x13956d){if(_0x13956d){_0x4b8300=_0x13956d[_0x82c7('0x3f')];if(!_0x4a1cae['query']['hasOwnProperty'](_0x82c7('0x34'))){_0x1cbd91[_0x82c7('0x1b')]=qs[_0x82c7('0x1b')](_0x4a1cae[_0x82c7('0x2f')][_0x82c7('0x1b')]);_0x1cbd91['offset']=qs[_0x82c7('0x1a')](_0x4a1cae[_0x82c7('0x2f')][_0x82c7('0x1a')]);}return _0x2f8ef8['getFields'](_0x1cbd91);}})[_0x82c7('0x23')](function(_0x4afc2){if(_0x4afc2){return _0x4afc2?{'count':_0x4b8300,'rows':_0x4afc2}:null;}})[_0x82c7('0x23')](respondWithResult(_0x59f8ce,null))[_0x82c7('0x3c')](handleError(_0x59f8ce,null));};exports[_0x82c7('0x47')]=function(_0x1935f9,_0x51d03a,_0x4ca7ed){var _0x203bed={};var _0x51a79a={};var _0x470fe9;var _0x222e1d;return db[_0x82c7('0x28')][_0x82c7('0x48')]({'where':{'id':_0x1935f9[_0x82c7('0x3e')]['id']}})[_0x82c7('0x23')](handleEntityNotFound(_0x51d03a,null))[_0x82c7('0x23')](function(_0x505913){if(_0x505913){_0x470fe9=_0x505913;_0x51a79a[_0x82c7('0x2d')]=_[_0x82c7('0x30')](db[_0x82c7('0x45')][_0x82c7('0x29')]);_0x51a79a[_0x82c7('0x2f')]=_['keys'](_0x1935f9[_0x82c7('0x2f')]);_0x51a79a[_0x82c7('0x38')]=_[_0x82c7('0x31')](_0x51a79a[_0x82c7('0x2d')],_0x51a79a[_0x82c7('0x2f')]);_0x203bed[_0x82c7('0x32')]=_[_0x82c7('0x31')](_0x51a79a[_0x82c7('0x2d')],qs[_0x82c7('0x33')](_0x1935f9[_0x82c7('0x2f')]['fields']));_0x203bed[_0x82c7('0x32')]=_0x203bed['attributes']['length']?_0x203bed[_0x82c7('0x32')]:_0x51a79a[_0x82c7('0x2d')];_0x203bed[_0x82c7('0x35')]=qs[_0x82c7('0x36')](_0x1935f9[_0x82c7('0x2f')][_0x82c7('0x36')]);_0x203bed['where']=qs[_0x82c7('0x38')](_['pick'](_0x1935f9[_0x82c7('0x2f')],_0x51a79a[_0x82c7('0x38')]));if(_0x1935f9[_0x82c7('0x2f')][_0x82c7('0x39')]){_0x203bed[_0x82c7('0x37')]=_['merge'](_0x203bed[_0x82c7('0x37')],{'$or':_[_0x82c7('0x2e')](_0x203bed[_0x82c7('0x32')],function(_0x3064de){var _0x22f2e3={};_0x22f2e3[_0x3064de]={'$like':'%'+_0x1935f9[_0x82c7('0x2f')][_0x82c7('0x39')]+'%'};return _0x22f2e3;})});}_0x203bed=_[_0x82c7('0x3a')]({},_0x203bed,_0x1935f9[_0x82c7('0x46')]);return _0x470fe9[_0x82c7('0x47')](_0x203bed);}})[_0x82c7('0x23')](function(_0xd9c0c){if(_0xd9c0c){_0x222e1d=_0xd9c0c['length'];if(!_0x1935f9['query'][_0x82c7('0x49')](_0x82c7('0x34'))){_0x203bed[_0x82c7('0x1b')]=qs['limit'](_0x1935f9[_0x82c7('0x2f')][_0x82c7('0x1b')]);_0x203bed[_0x82c7('0x1a')]=qs[_0x82c7('0x1a')](_0x1935f9[_0x82c7('0x2f')]['offset']);}return _0x470fe9[_0x82c7('0x47')](_0x203bed);}})[_0x82c7('0x23')](function(_0x20f4c5){if(_0x20f4c5){return _0x20f4c5?{'count':_0x222e1d,'rows':_0x20f4c5}:null;}})[_0x82c7('0x23')](respondWithResult(_0x51d03a,null))[_0x82c7('0x3c')](handleError(_0x51d03a,null));};exports[_0x82c7('0x4a')]=function(_0x15e6e1,_0x1af392,_0x24b13){var _0x4e8684={};var _0x15abd3={};var _0x14648d;var _0x14b50d;return db['ServicenowConfiguration'][_0x82c7('0x48')]({'where':{'id':_0x15e6e1[_0x82c7('0x3e')]['id']}})[_0x82c7('0x23')](handleEntityNotFound(_0x1af392,null))['then'](function(_0x406d15){if(_0x406d15){_0x14648d=_0x406d15;_0x15abd3[_0x82c7('0x2d')]=_['keys'](db[_0x82c7('0x45')][_0x82c7('0x29')]);_0x15abd3[_0x82c7('0x2f')]=_[_0x82c7('0x30')](_0x15e6e1['query']);_0x15abd3[_0x82c7('0x38')]=_[_0x82c7('0x31')](_0x15abd3['model'],_0x15abd3[_0x82c7('0x2f')]);_0x4e8684[_0x82c7('0x32')]=_[_0x82c7('0x31')](_0x15abd3[_0x82c7('0x2d')],qs[_0x82c7('0x33')](_0x15e6e1['query']['fields']));_0x4e8684[_0x82c7('0x32')]=_0x4e8684[_0x82c7('0x32')][_0x82c7('0x3f')]?_0x4e8684[_0x82c7('0x32')]:_0x15abd3[_0x82c7('0x2d')];_0x4e8684[_0x82c7('0x35')]=qs[_0x82c7('0x36')](_0x15e6e1[_0x82c7('0x2f')][_0x82c7('0x36')]);_0x4e8684[_0x82c7('0x37')]=qs['filters'](_[_0x82c7('0x4b')](_0x15e6e1[_0x82c7('0x2f')],_0x15abd3[_0x82c7('0x38')]));if(_0x15e6e1[_0x82c7('0x2f')][_0x82c7('0x39')]){_0x4e8684[_0x82c7('0x37')]=_[_0x82c7('0x3a')](_0x4e8684[_0x82c7('0x37')],{'$or':_[_0x82c7('0x2e')](_0x4e8684[_0x82c7('0x32')],function(_0x1cbd67){var _0x4872ac={};_0x4872ac[_0x1cbd67]={'$like':'%'+_0x15e6e1[_0x82c7('0x2f')][_0x82c7('0x39')]+'%'};return _0x4872ac;})});}_0x4e8684=_['merge']({},_0x4e8684,_0x15e6e1[_0x82c7('0x46')]);return _0x14648d[_0x82c7('0x4a')](_0x4e8684);}})[_0x82c7('0x23')](function(_0x65dac9){if(_0x65dac9){_0x14b50d=_0x65dac9[_0x82c7('0x3f')];if(!_0x15e6e1[_0x82c7('0x2f')][_0x82c7('0x49')](_0x82c7('0x34'))){_0x4e8684[_0x82c7('0x1b')]=qs[_0x82c7('0x1b')](_0x15e6e1[_0x82c7('0x2f')][_0x82c7('0x1b')]);_0x4e8684[_0x82c7('0x1a')]=qs['offset'](_0x15e6e1[_0x82c7('0x2f')][_0x82c7('0x1a')]);}return _0x14648d[_0x82c7('0x4a')](_0x4e8684);}})[_0x82c7('0x23')](function(_0x16c0a0){if(_0x16c0a0){return _0x16c0a0?{'count':_0x14b50d,'rows':_0x16c0a0}:null;}})[_0x82c7('0x23')](respondWithResult(_0x1af392,null))[_0x82c7('0x3c')](handleError(_0x1af392,null));};
\ No newline at end of file
+var _0x6dc7=['set','apply','save','update','then','error','name','send','map','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','nolimit','limit','order','sort','where','filters','filter','merge','type','VIRTUAL','options','includeAll','include','ServicenowConfiguration','findAll','rows','catch','show','length','find','create','body','params','destroy','getFields','findOne','pick','getSubjects','ServicenowField','hasOwnProperty','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset'];(function(_0x16938f,_0x35e57f){var _0x5c66e9=function(_0x5167d7){while(--_0x5167d7){_0x16938f['push'](_0x16938f['shift']());}};_0x5c66e9(++_0x35e57f);}(_0x6dc7,0x80));var _0x76dc=function(_0xa1de8d,_0x1399a8){_0xa1de8d=_0xa1de8d-0x0;var _0x478b44=_0x6dc7[_0xa1de8d];return _0x478b44;};'use strict';var emlformat=require(_0x76dc('0x0'));var rimraf=require(_0x76dc('0x1'));var zipdir=require(_0x76dc('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x76dc('0x3'));var moment=require(_0x76dc('0x4'));var BPromise=require(_0x76dc('0x5'));var Mustache=require('mustache');var util=require(_0x76dc('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x76dc('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x76dc('0x8'));var squel=require(_0x76dc('0x9'));var crypto=require(_0x76dc('0xa'));var jsforce=require(_0x76dc('0xb'));var deskjs=require(_0x76dc('0xc'));var toCsv=require(_0x76dc('0xd'));var querystring=require(_0x76dc('0xe'));var Papa=require(_0x76dc('0xf'));var Redis=require(_0x76dc('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x76dc('0x11'));var as=require(_0x76dc('0x12'));var hardwareService=require(_0x76dc('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x76dc('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x76dc('0x15'));var db=require(_0x76dc('0x16'))['db'];function respondWithStatusCode(_0x14d7d9,_0xab8183){_0xab8183=_0xab8183||0xcc;return function(_0x2cfbcf){if(_0x2cfbcf){return _0x14d7d9[_0x76dc('0x17')](_0xab8183);}return _0x14d7d9[_0x76dc('0x18')](_0xab8183)[_0x76dc('0x19')]();};}function respondWithResult(_0xc441af,_0xc18f39){_0xc18f39=_0xc18f39||0xc8;return function(_0x38fd9a){if(_0x38fd9a){return _0xc441af[_0x76dc('0x18')](_0xc18f39)[_0x76dc('0x1a')](_0x38fd9a);}};}function respondWithFilteredResult(_0xb37f2a,_0xf31a8f){return function(_0x111837){if(_0x111837){var _0x2a5e6e=typeof _0xf31a8f['offset']==='undefined'&&typeof _0xf31a8f['limit']===_0x76dc('0x1b');var _0x3db2c0=_0x111837[_0x76dc('0x1c')];var _0x2e00cc=_0x2a5e6e?0x0:_0xf31a8f['offset'];var _0x5159d1=_0x2a5e6e?_0x111837[_0x76dc('0x1c')]:_0xf31a8f[_0x76dc('0x1d')]+_0xf31a8f['limit'];var _0x2dad6f;if(_0x5159d1>=_0x3db2c0){_0x5159d1=_0x3db2c0;_0x2dad6f=0xc8;}else{_0x2dad6f=0xce;}_0xb37f2a[_0x76dc('0x18')](_0x2dad6f);return _0xb37f2a[_0x76dc('0x1e')]('Content-Range',_0x2e00cc+'-'+_0x5159d1+'/'+_0x3db2c0)[_0x76dc('0x1a')](_0x111837);}return null;};}function patchUpdates(_0x1167ba){return function(_0x55e797){try{jsonpatch[_0x76dc('0x1f')](_0x55e797,_0x1167ba,!![]);}catch(_0xf54c51){return BPromise['reject'](_0xf54c51);}return _0x55e797[_0x76dc('0x20')]();};}function saveUpdates(_0x136edf,_0x333d44){return function(_0x1350e8){if(_0x1350e8){return _0x1350e8[_0x76dc('0x21')](_0x136edf)[_0x76dc('0x22')](function(_0x467033){return _0x467033;});}return null;};}function removeEntity(_0x2e0451,_0x353c43){return function(_0x504d58){if(_0x504d58){return _0x504d58['destroy']()[_0x76dc('0x22')](function(){_0x2e0451[_0x76dc('0x18')](0xcc)[_0x76dc('0x19')]();});}};}function handleEntityNotFound(_0x416ebb,_0x5d1b33){return function(_0x35a009){if(!_0x35a009){_0x416ebb[_0x76dc('0x17')](0x194);}return _0x35a009;};}function handleError(_0x44eb7a,_0x5d16e6){_0x5d16e6=_0x5d16e6||0x1f4;return function(_0x507ceb){logger[_0x76dc('0x23')](_0x507ceb['stack']);if(_0x507ceb[_0x76dc('0x24')]){delete _0x507ceb[_0x76dc('0x24')];}_0x44eb7a['status'](_0x5d16e6)[_0x76dc('0x25')](_0x507ceb);};}exports['index']=function(_0x1c162e,_0x5a5634){var _0x2d896b={},_0x4904af={},_0x21f3e4={'count':0x0,'rows':[]};var _0x25c7f9=_[_0x76dc('0x26')](db['ServicenowConfiguration'][_0x76dc('0x27')],function(_0xc1a656){return{'name':_0xc1a656[_0x76dc('0x28')],'type':_0xc1a656['type'][_0x76dc('0x29')]};});_0x4904af[_0x76dc('0x2a')]=_[_0x76dc('0x26')](_0x25c7f9,'name');_0x4904af[_0x76dc('0x2b')]=_[_0x76dc('0x2c')](_0x1c162e['query']);_0x4904af['filters']=_[_0x76dc('0x2d')](_0x4904af[_0x76dc('0x2a')],_0x4904af['query']);_0x2d896b[_0x76dc('0x2e')]=_[_0x76dc('0x2d')](_0x4904af[_0x76dc('0x2a')],qs['fields'](_0x1c162e[_0x76dc('0x2b')][_0x76dc('0x2f')]));_0x2d896b[_0x76dc('0x2e')]=_0x2d896b[_0x76dc('0x2e')]['length']?_0x2d896b[_0x76dc('0x2e')]:_0x4904af[_0x76dc('0x2a')];if(!_0x1c162e[_0x76dc('0x2b')]['hasOwnProperty'](_0x76dc('0x30'))){_0x2d896b['limit']=qs[_0x76dc('0x31')](_0x1c162e[_0x76dc('0x2b')][_0x76dc('0x31')]);_0x2d896b['offset']=qs['offset'](_0x1c162e[_0x76dc('0x2b')][_0x76dc('0x1d')]);}_0x2d896b[_0x76dc('0x32')]=qs[_0x76dc('0x33')](_0x1c162e[_0x76dc('0x2b')][_0x76dc('0x33')]);_0x2d896b[_0x76dc('0x34')]=qs[_0x76dc('0x35')](_['pick'](_0x1c162e['query'],_0x4904af[_0x76dc('0x35')]),_0x25c7f9);if(_0x1c162e[_0x76dc('0x2b')][_0x76dc('0x36')]){_0x2d896b[_0x76dc('0x34')]=_[_0x76dc('0x37')](_0x2d896b[_0x76dc('0x34')],{'$or':_[_0x76dc('0x26')](_0x25c7f9,function(_0x4ac967){if(_0x4ac967[_0x76dc('0x38')]!==_0x76dc('0x39')){var _0x610138={};_0x610138[_0x4ac967[_0x76dc('0x24')]]={'$like':'%'+_0x1c162e[_0x76dc('0x2b')][_0x76dc('0x36')]+'%'};return _0x610138;}})});}_0x2d896b=_[_0x76dc('0x37')]({},_0x2d896b,_0x1c162e[_0x76dc('0x3a')]);var _0x54d61c={'where':_0x2d896b['where']};return db['ServicenowConfiguration'][_0x76dc('0x1c')](_0x54d61c)[_0x76dc('0x22')](function(_0x1df6b9){_0x21f3e4[_0x76dc('0x1c')]=_0x1df6b9;if(_0x1c162e['query'][_0x76dc('0x3b')]){_0x2d896b[_0x76dc('0x3c')]=[{'all':!![]}];}return db[_0x76dc('0x3d')][_0x76dc('0x3e')](_0x2d896b);})[_0x76dc('0x22')](function(_0x9f40e5){_0x21f3e4[_0x76dc('0x3f')]=_0x9f40e5;return _0x21f3e4;})[_0x76dc('0x22')](respondWithFilteredResult(_0x5a5634,_0x2d896b))[_0x76dc('0x40')](handleError(_0x5a5634,null));};exports[_0x76dc('0x41')]=function(_0x62cf1d,_0x4d18ef){var _0x3f1a0b={'raw':![],'where':{'id':_0x62cf1d['params']['id']}},_0x16a7dd={};_0x16a7dd['model']=_['keys'](db[_0x76dc('0x3d')]['rawAttributes']);_0x16a7dd[_0x76dc('0x2b')]=_[_0x76dc('0x2c')](_0x62cf1d['query']);_0x16a7dd['filters']=_[_0x76dc('0x2d')](_0x16a7dd[_0x76dc('0x2a')],_0x16a7dd[_0x76dc('0x2b')]);_0x3f1a0b[_0x76dc('0x2e')]=_[_0x76dc('0x2d')](_0x16a7dd['model'],qs['fields'](_0x62cf1d[_0x76dc('0x2b')]['fields']));_0x3f1a0b[_0x76dc('0x2e')]=_0x3f1a0b[_0x76dc('0x2e')][_0x76dc('0x42')]?_0x3f1a0b[_0x76dc('0x2e')]:_0x16a7dd[_0x76dc('0x2a')];if(_0x62cf1d['query'][_0x76dc('0x3b')]){_0x3f1a0b[_0x76dc('0x3c')]=[{'all':!![]}];}_0x3f1a0b=_[_0x76dc('0x37')]({},_0x3f1a0b,_0x62cf1d['options']);return db['ServicenowConfiguration'][_0x76dc('0x43')](_0x3f1a0b)[_0x76dc('0x22')](handleEntityNotFound(_0x4d18ef,null))[_0x76dc('0x22')](respondWithResult(_0x4d18ef,null))['catch'](handleError(_0x4d18ef,null));};exports[_0x76dc('0x44')]=function(_0x3877c6,_0x4f5098){return db[_0x76dc('0x3d')][_0x76dc('0x44')](_0x3877c6[_0x76dc('0x45')],{})[_0x76dc('0x22')](respondWithResult(_0x4f5098,0xc9))[_0x76dc('0x40')](handleError(_0x4f5098,null));};exports[_0x76dc('0x21')]=function(_0x240c1b,_0x4128f6){if(_0x240c1b['body']['id']){delete _0x240c1b['body']['id'];}return db[_0x76dc('0x3d')][_0x76dc('0x43')]({'where':{'id':_0x240c1b[_0x76dc('0x46')]['id']}})[_0x76dc('0x22')](handleEntityNotFound(_0x4128f6,null))[_0x76dc('0x22')](saveUpdates(_0x240c1b[_0x76dc('0x45')],null))[_0x76dc('0x22')](respondWithResult(_0x4128f6,null))['catch'](handleError(_0x4128f6,null));};exports[_0x76dc('0x47')]=function(_0x3e4f0b,_0xbc3167){return db[_0x76dc('0x3d')][_0x76dc('0x43')]({'where':{'id':_0x3e4f0b[_0x76dc('0x46')]['id']}})[_0x76dc('0x22')](handleEntityNotFound(_0xbc3167,null))[_0x76dc('0x22')](removeEntity(_0xbc3167,null))[_0x76dc('0x40')](handleError(_0xbc3167,null));};exports[_0x76dc('0x48')]=function(_0x5f0818,_0x3ba2b3,_0x27edf9){var _0x145482={};var _0x22bd2d={};var _0xd87567;var _0x52006b;return db['ServicenowConfiguration'][_0x76dc('0x49')]({'where':{'id':_0x5f0818[_0x76dc('0x46')]['id']}})[_0x76dc('0x22')](handleEntityNotFound(_0x3ba2b3,null))[_0x76dc('0x22')](function(_0x10d663){if(_0x10d663){_0xd87567=_0x10d663;_0x22bd2d['model']=_[_0x76dc('0x2c')](db['ServicenowField'][_0x76dc('0x27')]);_0x22bd2d['query']=_['keys'](_0x5f0818[_0x76dc('0x2b')]);_0x22bd2d[_0x76dc('0x35')]=_[_0x76dc('0x2d')](_0x22bd2d['model'],_0x22bd2d[_0x76dc('0x2b')]);_0x145482[_0x76dc('0x2e')]=_[_0x76dc('0x2d')](_0x22bd2d[_0x76dc('0x2a')],qs[_0x76dc('0x2f')](_0x5f0818[_0x76dc('0x2b')]['fields']));_0x145482['attributes']=_0x145482[_0x76dc('0x2e')][_0x76dc('0x42')]?_0x145482[_0x76dc('0x2e')]:_0x22bd2d[_0x76dc('0x2a')];_0x145482[_0x76dc('0x32')]=qs[_0x76dc('0x33')](_0x5f0818[_0x76dc('0x2b')][_0x76dc('0x33')]);_0x145482[_0x76dc('0x34')]=qs['filters'](_[_0x76dc('0x4a')](_0x5f0818[_0x76dc('0x2b')],_0x22bd2d['filters']));if(_0x5f0818[_0x76dc('0x2b')]['filter']){_0x145482['where']=_['merge'](_0x145482['where'],{'$or':_[_0x76dc('0x26')](_0x145482[_0x76dc('0x2e')],function(_0x42fb7e){var _0x53cae9={};_0x53cae9[_0x42fb7e]={'$like':'%'+_0x5f0818[_0x76dc('0x2b')][_0x76dc('0x36')]+'%'};return _0x53cae9;})});}_0x145482=_[_0x76dc('0x37')]({},_0x145482,_0x5f0818[_0x76dc('0x3a')]);return _0xd87567[_0x76dc('0x48')](_0x145482);}})[_0x76dc('0x22')](function(_0x442d23){if(_0x442d23){_0x52006b=_0x442d23[_0x76dc('0x42')];if(!_0x5f0818[_0x76dc('0x2b')]['hasOwnProperty'](_0x76dc('0x30'))){_0x145482[_0x76dc('0x31')]=qs[_0x76dc('0x31')](_0x5f0818[_0x76dc('0x2b')]['limit']);_0x145482[_0x76dc('0x1d')]=qs[_0x76dc('0x1d')](_0x5f0818['query']['offset']);}return _0xd87567['getFields'](_0x145482);}})[_0x76dc('0x22')](function(_0x48ef04){if(_0x48ef04){return _0x48ef04?{'count':_0x52006b,'rows':_0x48ef04}:null;}})['then'](respondWithResult(_0x3ba2b3,null))[_0x76dc('0x40')](handleError(_0x3ba2b3,null));};exports[_0x76dc('0x4b')]=function(_0x361813,_0x4facf5,_0x2cd7d3){var _0x299345={};var _0x3c8344={};var _0x14cf71;var _0x220b34;return db[_0x76dc('0x3d')]['findOne']({'where':{'id':_0x361813[_0x76dc('0x46')]['id']}})[_0x76dc('0x22')](handleEntityNotFound(_0x4facf5,null))['then'](function(_0x34e131){if(_0x34e131){_0x14cf71=_0x34e131;_0x3c8344[_0x76dc('0x2a')]=_[_0x76dc('0x2c')](db[_0x76dc('0x4c')]['rawAttributes']);_0x3c8344[_0x76dc('0x2b')]=_[_0x76dc('0x2c')](_0x361813[_0x76dc('0x2b')]);_0x3c8344[_0x76dc('0x35')]=_[_0x76dc('0x2d')](_0x3c8344['model'],_0x3c8344[_0x76dc('0x2b')]);_0x299345['attributes']=_['intersection'](_0x3c8344[_0x76dc('0x2a')],qs[_0x76dc('0x2f')](_0x361813['query'][_0x76dc('0x2f')]));_0x299345['attributes']=_0x299345[_0x76dc('0x2e')][_0x76dc('0x42')]?_0x299345[_0x76dc('0x2e')]:_0x3c8344[_0x76dc('0x2a')];_0x299345[_0x76dc('0x32')]=qs[_0x76dc('0x33')](_0x361813[_0x76dc('0x2b')][_0x76dc('0x33')]);_0x299345['where']=qs[_0x76dc('0x35')](_[_0x76dc('0x4a')](_0x361813[_0x76dc('0x2b')],_0x3c8344[_0x76dc('0x35')]));if(_0x361813[_0x76dc('0x2b')][_0x76dc('0x36')]){_0x299345[_0x76dc('0x34')]=_[_0x76dc('0x37')](_0x299345[_0x76dc('0x34')],{'$or':_['map'](_0x299345[_0x76dc('0x2e')],function(_0x4bafb4){var _0x204758={};_0x204758[_0x4bafb4]={'$like':'%'+_0x361813[_0x76dc('0x2b')]['filter']+'%'};return _0x204758;})});}_0x299345=_[_0x76dc('0x37')]({},_0x299345,_0x361813['options']);return _0x14cf71[_0x76dc('0x4b')](_0x299345);}})[_0x76dc('0x22')](function(_0x147566){if(_0x147566){_0x220b34=_0x147566['length'];if(!_0x361813[_0x76dc('0x2b')][_0x76dc('0x4d')]('nolimit')){_0x299345[_0x76dc('0x31')]=qs[_0x76dc('0x31')](_0x361813['query'][_0x76dc('0x31')]);_0x299345[_0x76dc('0x1d')]=qs[_0x76dc('0x1d')](_0x361813['query'][_0x76dc('0x1d')]);}return _0x14cf71['getSubjects'](_0x299345);}})[_0x76dc('0x22')](function(_0x442a3a){if(_0x442a3a){return _0x442a3a?{'count':_0x220b34,'rows':_0x442a3a}:null;}})[_0x76dc('0x22')](respondWithResult(_0x4facf5,null))['catch'](handleError(_0x4facf5,null));};exports[_0x76dc('0x4e')]=function(_0x469391,_0x5f14b6,_0x28660a){var _0x4dabe2={};var _0x5b5250={};var _0x43be19;var _0x1afc37;return db['ServicenowConfiguration'][_0x76dc('0x49')]({'where':{'id':_0x469391['params']['id']}})[_0x76dc('0x22')](handleEntityNotFound(_0x5f14b6,null))['then'](function(_0x26ee7a){if(_0x26ee7a){_0x43be19=_0x26ee7a;_0x5b5250[_0x76dc('0x2a')]=_['keys'](db[_0x76dc('0x4c')][_0x76dc('0x27')]);_0x5b5250[_0x76dc('0x2b')]=_['keys'](_0x469391[_0x76dc('0x2b')]);_0x5b5250['filters']=_['intersection'](_0x5b5250['model'],_0x5b5250[_0x76dc('0x2b')]);_0x4dabe2[_0x76dc('0x2e')]=_[_0x76dc('0x2d')](_0x5b5250[_0x76dc('0x2a')],qs['fields'](_0x469391[_0x76dc('0x2b')][_0x76dc('0x2f')]));_0x4dabe2[_0x76dc('0x2e')]=_0x4dabe2[_0x76dc('0x2e')][_0x76dc('0x42')]?_0x4dabe2[_0x76dc('0x2e')]:_0x5b5250[_0x76dc('0x2a')];_0x4dabe2['order']=qs[_0x76dc('0x33')](_0x469391[_0x76dc('0x2b')][_0x76dc('0x33')]);_0x4dabe2['where']=qs[_0x76dc('0x35')](_['pick'](_0x469391[_0x76dc('0x2b')],_0x5b5250[_0x76dc('0x35')]));if(_0x469391[_0x76dc('0x2b')][_0x76dc('0x36')]){_0x4dabe2['where']=_[_0x76dc('0x37')](_0x4dabe2[_0x76dc('0x34')],{'$or':_[_0x76dc('0x26')](_0x4dabe2[_0x76dc('0x2e')],function(_0x21dd35){var _0x1154e7={};_0x1154e7[_0x21dd35]={'$like':'%'+_0x469391[_0x76dc('0x2b')]['filter']+'%'};return _0x1154e7;})});}_0x4dabe2=_[_0x76dc('0x37')]({},_0x4dabe2,_0x469391[_0x76dc('0x3a')]);return _0x43be19[_0x76dc('0x4e')](_0x4dabe2);}})[_0x76dc('0x22')](function(_0x48e822){if(_0x48e822){_0x1afc37=_0x48e822[_0x76dc('0x42')];if(!_0x469391[_0x76dc('0x2b')]['hasOwnProperty'](_0x76dc('0x30'))){_0x4dabe2[_0x76dc('0x31')]=qs['limit'](_0x469391[_0x76dc('0x2b')][_0x76dc('0x31')]);_0x4dabe2[_0x76dc('0x1d')]=qs[_0x76dc('0x1d')](_0x469391['query'][_0x76dc('0x1d')]);}return _0x43be19[_0x76dc('0x4e')](_0x4dabe2);}})[_0x76dc('0x22')](function(_0x325190){if(_0x325190){return _0x325190?{'count':_0x1afc37,'rows':_0x325190}:null;}})[_0x76dc('0x22')](respondWithResult(_0x5f14b6,null))[_0x76dc('0x40')](handleError(_0x5f14b6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0901=['moment','bluebird','rimraf','../../config/environment','./intServicenowConfiguration.attributes','exports','ServicenowConfiguration','int_servicenow_configurations','lodash','util','../../config/logger','api'];(function(_0x1918c5,_0x49f8ca){var _0x5143f2=function(_0x541fd3){while(--_0x541fd3){_0x1918c5['push'](_0x1918c5['shift']());}};_0x5143f2(++_0x49f8ca);}(_0x0901,0x134));var _0x1090=function(_0x432f53,_0x29c004){_0x432f53=_0x432f53-0x0;var _0x395a09=_0x0901[_0x432f53];return _0x395a09;};'use strict';var _=require(_0x1090('0x0'));var util=require(_0x1090('0x1'));var logger=require(_0x1090('0x2'))(_0x1090('0x3'));var moment=require(_0x1090('0x4'));var BPromise=require(_0x1090('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x1090('0x6'));var config=require(_0x1090('0x7'));var attributes=require(_0x1090('0x8'));module[_0x1090('0x9')]=function(_0x9a1121,_0x395921){return _0x9a1121['define'](_0x1090('0xa'),attributes,{'tableName':_0x1090('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2547=['rimraf','./intServicenowConfiguration.attributes','exports','ServicenowConfiguration','int_servicenow_configurations','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x4e2d3e,_0x59578a){var _0x3596bc=function(_0x5528e3){while(--_0x5528e3){_0x4e2d3e['push'](_0x4e2d3e['shift']());}};_0x3596bc(++_0x59578a);}(_0x2547,0x1cd));var _0x7254=function(_0x45a41f,_0x56c1e0){_0x45a41f=_0x45a41f-0x0;var _0x58e7e0=_0x2547[_0x45a41f];return _0x58e7e0;};'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 fs=require('fs');var path=require(_0x7254('0x6'));var rimraf=require(_0x7254('0x7'));var config=require('../../config/environment');var attributes=require(_0x7254('0x8'));module[_0x7254('0x9')]=function(_0x67f427,_0x119f66){return _0x67f427['define'](_0x7254('0xa'),attributes,{'tableName':_0x7254('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb754=['../../config/environment','jayson/promise','client','request','then','info','ServicenowConfiguration,\x20%s,\x20%s','request\x20sent','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xb754,0x1f2));var _0x4b75=function(_0x27e811,_0x20137c){_0x27e811=_0x27e811-0x0;var _0x1627fa=_0xb754[_0x27e811];return _0x1627fa;};'use strict';var _=require(_0x4b75('0x0'));var util=require(_0x4b75('0x1'));var moment=require(_0x4b75('0x2'));var BPromise=require(_0x4b75('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4b75('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4b75('0x5'));var logger=require(_0x4b75('0x6'))(_0x4b75('0x7'));var config=require(_0x4b75('0x8'));var jayson=require(_0x4b75('0x9'));var client=jayson[_0x4b75('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2fd38c,_0x34a275,_0xde6b2b){return new BPromise(function(_0x4aef39,_0x1573cc){return client[_0x4b75('0xb')](_0x2fd38c,_0xde6b2b)[_0x4b75('0xc')](function(_0x14dd71){logger[_0x4b75('0xd')](_0x4b75('0xe'),_0x34a275,_0x4b75('0xf'));logger['debug'](_0x4b75('0x10'),_0x34a275,_0x4b75('0xf'),JSON[_0x4b75('0x11')](_0x14dd71));if(_0x14dd71[_0x4b75('0x12')]){if(_0x14dd71[_0x4b75('0x12')][_0x4b75('0x13')]===0x1f4){logger[_0x4b75('0x12')](_0x4b75('0xe'),_0x34a275,_0x14dd71[_0x4b75('0x12')][_0x4b75('0x14')]);return _0x1573cc(_0x14dd71[_0x4b75('0x12')]['message']);}logger[_0x4b75('0x12')](_0x4b75('0xe'),_0x34a275,_0x14dd71['error']['message']);return _0x4aef39(_0x14dd71[_0x4b75('0x12')][_0x4b75('0x14')]);}else{logger[_0x4b75('0xd')](_0x4b75('0xe'),_0x34a275,_0x4b75('0xf'));_0x4aef39(_0x14dd71[_0x4b75('0x15')][_0x4b75('0x14')]);}})[_0x4b75('0x16')](function(_0x505c8d){logger[_0x4b75('0x12')](_0x4b75('0xe'),_0x34a275,_0x505c8d);_0x1573cc(_0x505c8d);});});}
\ No newline at end of file
+var _0xdf83=['info','result','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','request\x20sent','error','ServicenowConfiguration,\x20%s,\x20%s','message'];(function(_0x1e5755,_0x5e0d48){var _0x38975b=function(_0x1ec4a2){while(--_0x1ec4a2){_0x1e5755['push'](_0x1e5755['shift']());}};_0x38975b(++_0x5e0d48);}(_0xdf83,0x120));var _0x3df8=function(_0x65f505,_0xaad51d){_0x65f505=_0x65f505-0x0;var _0x33cee5=_0xdf83[_0x65f505];return _0x33cee5;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x3df8('0x0'));var rs=require(_0x3df8('0x1'));var fs=require('fs');var Redis=require(_0x3df8('0x2'));var db=require(_0x3df8('0x3'))['db'];var utils=require(_0x3df8('0x4'));var logger=require(_0x3df8('0x5'))(_0x3df8('0x6'));var config=require(_0x3df8('0x7'));var jayson=require(_0x3df8('0x8'));var client=jayson[_0x3df8('0x9')][_0x3df8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2d8572,_0x4f6bcc,_0x44c5fc){return new BPromise(function(_0x2e5d8b,_0x58e408){return client[_0x3df8('0xb')](_0x2d8572,_0x44c5fc)['then'](function(_0x4a1e7c){logger['info']('ServicenowConfiguration,\x20%s,\x20%s',_0x4f6bcc,_0x3df8('0xc'));logger['debug']('ServicenowConfiguration,\x20%s,\x20%s,\x20%s',_0x4f6bcc,'request\x20sent',JSON['stringify'](_0x4a1e7c));if(_0x4a1e7c[_0x3df8('0xd')]){if(_0x4a1e7c[_0x3df8('0xd')]['code']===0x1f4){logger[_0x3df8('0xd')](_0x3df8('0xe'),_0x4f6bcc,_0x4a1e7c[_0x3df8('0xd')][_0x3df8('0xf')]);return _0x58e408(_0x4a1e7c[_0x3df8('0xd')][_0x3df8('0xf')]);}logger[_0x3df8('0xd')]('ServicenowConfiguration,\x20%s,\x20%s',_0x4f6bcc,_0x4a1e7c['error'][_0x3df8('0xf')]);return _0x2e5d8b(_0x4a1e7c[_0x3df8('0xd')]['message']);}else{logger[_0x3df8('0x10')](_0x3df8('0xe'),_0x4f6bcc,_0x3df8('0xc'));_0x2e5d8b(_0x4a1e7c[_0x3df8('0x11')][_0x3df8('0xf')]);}})[_0x3df8('0x12')](function(_0x4665cf){logger[_0x3df8('0xd')](_0x3df8('0xe'),_0x4f6bcc,_0x4665cf);_0x58e408(_0x4665cf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd50a=['./intServicenowField.controller','get','index','/:id','create','put','isAuthenticated','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0xdba5af,_0x3a43bb){var _0x27b9da=function(_0x49d6be){while(--_0x49d6be){_0xdba5af['push'](_0xdba5af['shift']());}};_0x27b9da(++_0x3a43bb);}(_0xd50a,0xd2));var _0xad50=function(_0x39cd7f,_0x513110){_0x39cd7f=_0x39cd7f-0x0;var _0x598033=_0xd50a[_0x39cd7f];return _0x598033;};'use strict';var multer=require(_0xad50('0x0'));var util=require(_0xad50('0x1'));var path=require(_0xad50('0x2'));var timeout=require(_0xad50('0x3'));var express=require(_0xad50('0x4'));var router=express[_0xad50('0x5')]();var fs_extra=require(_0xad50('0x6'));var auth=require(_0xad50('0x7'));var interaction=require(_0xad50('0x8'));var config=require(_0xad50('0x9'));var controller=require(_0xad50('0xa'));router[_0xad50('0xb')]('/',auth['isAuthenticated'](),controller[_0xad50('0xc')]);router[_0xad50('0xb')](_0xad50('0xd'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0xad50('0xe')]);router[_0xad50('0xf')](_0xad50('0xd'),auth[_0xad50('0x10')](),controller['update']);router[_0xad50('0x11')](_0xad50('0xd'),auth['isAuthenticated'](),controller[_0xad50('0x12')]);module[_0xad50('0x13')]=router;
\ No newline at end of file
+var _0x97d0=['post','isAuthenticated','create','update','destroy','util','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowField.controller','get','index','/:id','show'];(function(_0x2b9cf5,_0x2a7804){var _0xd0cf15=function(_0x92a896){while(--_0x92a896){_0x2b9cf5['push'](_0x2b9cf5['shift']());}};_0xd0cf15(++_0x2a7804);}(_0x97d0,0x1e5));var _0x097d=function(_0x3595f3,_0x21cea1){_0x3595f3=_0x3595f3-0x0;var _0x4833d8=_0x97d0[_0x3595f3];return _0x4833d8;};'use strict';var multer=require('multer');var util=require(_0x097d('0x0'));var path=require('path');var timeout=require(_0x097d('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x097d('0x2'));var interaction=require(_0x097d('0x3'));var config=require(_0x097d('0x4'));var controller=require(_0x097d('0x5'));router[_0x097d('0x6')]('/',auth['isAuthenticated'](),controller[_0x097d('0x7')]);router['get'](_0x097d('0x8'),auth['isAuthenticated'](),controller[_0x097d('0x9')]);router[_0x097d('0xa')]('/',auth[_0x097d('0xb')](),controller[_0x097d('0xc')]);router['put']('/:id',auth[_0x097d('0xb')](),controller[_0x097d('0xd')]);router['delete'](_0x097d('0x8'),auth[_0x097d('0xb')](),controller[_0x097d('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1410=['ENUM','string','STRING','variable','BOOLEAN','sequelize'];(function(_0x2c206e,_0x1bf292){var _0x229e44=function(_0x3f288e){while(--_0x3f288e){_0x2c206e['push'](_0x2c206e['shift']());}};_0x229e44(++_0x1bf292);}(_0x1410,0xf5));var _0x0141=function(_0xa28150,_0x13d0b1){_0xa28150=_0xa28150-0x0;var _0x5f2a58=_0x1410[_0xa28150];return _0x5f2a58;};'use strict';var Sequelize=require(_0x0141('0x0'));module['exports']={'type':{'type':Sequelize[_0x0141('0x1')](_0x0141('0x2'),'variable','customVariable','keyValue','picklist'),'defaultValue':_0x0141('0x2')},'content':{'type':Sequelize[_0x0141('0x3')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x0141('0x1')](_0x0141('0x2'),_0x0141('0x4'),'customVariable')},'keyContent':{'type':Sequelize[_0x0141('0x3')]},'idField':{'type':Sequelize[_0x0141('0x3')]},'nameField':{'type':Sequelize[_0x0141('0x3')]},'customField':{'type':Sequelize[_0x0141('0x5')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x0141('0x3')]}};
\ No newline at end of file
+var _0x9678=['ENUM','keyValue','picklist','string','STRING','BOOLEAN','sequelize','exports'];(function(_0x5844c1,_0xd4ac08){var _0x19a54d=function(_0x54e2b9){while(--_0x54e2b9){_0x5844c1['push'](_0x5844c1['shift']());}};_0x19a54d(++_0xd4ac08);}(_0x9678,0xae));var _0x8967=function(_0x288c67,_0x5a72c0){_0x288c67=_0x288c67-0x0;var _0x5b6ece=_0x9678[_0x288c67];return _0x5b6ece;};'use strict';var Sequelize=require(_0x8967('0x0'));module[_0x8967('0x1')]={'type':{'type':Sequelize[_0x8967('0x2')]('string','variable','customVariable',_0x8967('0x3'),_0x8967('0x4')),'defaultValue':_0x8967('0x5')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0x8967('0x6')]},'keyType':{'type':Sequelize[_0x8967('0x2')](_0x8967('0x5'),'variable','customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x8967('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0x8967('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x8967('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1694=['stack','name','send','map','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','type','VIRTUAL','merge','options','includeAll','ServicenowField','rows','show','params','include','catch','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','update','then','destroy','sendStatus'];(function(_0x4020fc,_0x2a5a03){var _0x25ad5f=function(_0x53a313){while(--_0x53a313){_0x4020fc['push'](_0x4020fc['shift']());}};_0x25ad5f(++_0x2a5a03);}(_0x1694,0x19a));var _0x4169=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0x1694[_0x5783f4];return _0x28e380;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4169('0x0'));var zipdir=require(_0x4169('0x1'));var jsonpatch=require(_0x4169('0x2'));var rp=require(_0x4169('0x3'));var moment=require(_0x4169('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4169('0x5'));var path=require(_0x4169('0x6'));var sox=require(_0x4169('0x7'));var csv=require('to-csv');var ejs=require(_0x4169('0x8'));var fs=require('fs');var fs_extra=require(_0x4169('0x9'));var _=require(_0x4169('0xa'));var squel=require(_0x4169('0xb'));var crypto=require('crypto');var jsforce=require(_0x4169('0xc'));var deskjs=require(_0x4169('0xd'));var toCsv=require(_0x4169('0xe'));var querystring=require(_0x4169('0xf'));var Papa=require(_0x4169('0x10'));var Redis=require(_0x4169('0x11'));var authService=require(_0x4169('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x4169('0x13'));var hardwareService=require(_0x4169('0x14'));var logger=require(_0x4169('0x15'))(_0x4169('0x16'));var utils=require(_0x4169('0x17'));var config=require(_0x4169('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x4169('0x19'))['db'];function respondWithStatusCode(_0xcc8e60,_0x44bb87){_0x44bb87=_0x44bb87||0xcc;return function(_0x471723){if(_0x471723){return _0xcc8e60['sendStatus'](_0x44bb87);}return _0xcc8e60[_0x4169('0x1a')](_0x44bb87)[_0x4169('0x1b')]();};}function respondWithResult(_0x5a9009,_0x191378){_0x191378=_0x191378||0xc8;return function(_0x3eae7d){if(_0x3eae7d){return _0x5a9009[_0x4169('0x1a')](_0x191378)['json'](_0x3eae7d);}};}function respondWithFilteredResult(_0x166ec3,_0xec6b87){return function(_0x4e02de){if(_0x4e02de){var _0x579823=typeof _0xec6b87[_0x4169('0x1c')]===_0x4169('0x1d')&&typeof _0xec6b87[_0x4169('0x1e')]==='undefined';var _0x25c3e3=_0x4e02de[_0x4169('0x1f')];var _0x46afeb=_0x579823?0x0:_0xec6b87[_0x4169('0x1c')];var _0x3aa15c=_0x579823?_0x4e02de[_0x4169('0x1f')]:_0xec6b87[_0x4169('0x1c')]+_0xec6b87[_0x4169('0x1e')];var _0x183fc2;if(_0x3aa15c>=_0x25c3e3){_0x3aa15c=_0x25c3e3;_0x183fc2=0xc8;}else{_0x183fc2=0xce;}_0x166ec3['status'](_0x183fc2);return _0x166ec3[_0x4169('0x20')](_0x4169('0x21'),_0x46afeb+'-'+_0x3aa15c+'/'+_0x25c3e3)[_0x4169('0x22')](_0x4e02de);}return null;};}function patchUpdates(_0xfb9460){return function(_0x50ad7e){try{jsonpatch['apply'](_0x50ad7e,_0xfb9460,!![]);}catch(_0x4f6b07){return BPromise[_0x4169('0x23')](_0x4f6b07);}return _0x50ad7e['save']();};}function saveUpdates(_0x4cd9d8,_0xd01552){return function(_0x5fcef6){if(_0x5fcef6){return _0x5fcef6[_0x4169('0x24')](_0x4cd9d8)[_0x4169('0x25')](function(_0x359d85){return _0x359d85;});}return null;};}function removeEntity(_0x53ff5f,_0x1a6ffa){return function(_0x4ea641){if(_0x4ea641){return _0x4ea641[_0x4169('0x26')]()['then'](function(){_0x53ff5f[_0x4169('0x1a')](0xcc)[_0x4169('0x1b')]();});}};}function handleEntityNotFound(_0xa0347e,_0x47bc3f){return function(_0x38ccaa){if(!_0x38ccaa){_0xa0347e[_0x4169('0x27')](0x194);}return _0x38ccaa;};}function handleError(_0x2f70d9,_0x35f512){_0x35f512=_0x35f512||0x1f4;return function(_0x117900){logger['error'](_0x117900[_0x4169('0x28')]);if(_0x117900['name']){delete _0x117900[_0x4169('0x29')];}_0x2f70d9[_0x4169('0x1a')](_0x35f512)[_0x4169('0x2a')](_0x117900);};}exports['index']=function(_0x3f357d,_0x22858f){var _0x4e4031={},_0x53fe1e={},_0x4b3a9f={'count':0x0,'rows':[]};var _0x31db68=_[_0x4169('0x2b')](db['ServicenowField'][_0x4169('0x2c')],function(_0x4d2912){return{'name':_0x4d2912[_0x4169('0x2d')],'type':_0x4d2912['type'][_0x4169('0x2e')]};});_0x53fe1e[_0x4169('0x2f')]=_[_0x4169('0x2b')](_0x31db68,'name');_0x53fe1e[_0x4169('0x30')]=_[_0x4169('0x31')](_0x3f357d[_0x4169('0x30')]);_0x53fe1e['filters']=_[_0x4169('0x32')](_0x53fe1e['model'],_0x53fe1e['query']);_0x4e4031[_0x4169('0x33')]=_[_0x4169('0x32')](_0x53fe1e[_0x4169('0x2f')],qs[_0x4169('0x34')](_0x3f357d['query'][_0x4169('0x34')]));_0x4e4031[_0x4169('0x33')]=_0x4e4031[_0x4169('0x33')][_0x4169('0x35')]?_0x4e4031[_0x4169('0x33')]:_0x53fe1e[_0x4169('0x2f')];if(!_0x3f357d['query'][_0x4169('0x36')](_0x4169('0x37'))){_0x4e4031[_0x4169('0x1e')]=qs[_0x4169('0x1e')](_0x3f357d[_0x4169('0x30')][_0x4169('0x1e')]);_0x4e4031[_0x4169('0x1c')]=qs[_0x4169('0x1c')](_0x3f357d[_0x4169('0x30')][_0x4169('0x1c')]);}_0x4e4031[_0x4169('0x38')]=qs['sort'](_0x3f357d[_0x4169('0x30')][_0x4169('0x39')]);_0x4e4031[_0x4169('0x3a')]=qs[_0x4169('0x3b')](_[_0x4169('0x3c')](_0x3f357d[_0x4169('0x30')],_0x53fe1e['filters']),_0x31db68);if(_0x3f357d['query'][_0x4169('0x3d')]){_0x4e4031[_0x4169('0x3a')]=_['merge'](_0x4e4031[_0x4169('0x3a')],{'$or':_[_0x4169('0x2b')](_0x31db68,function(_0x15bd99){if(_0x15bd99[_0x4169('0x3e')]!==_0x4169('0x3f')){var _0x58a864={};_0x58a864[_0x15bd99['name']]={'$like':'%'+_0x3f357d[_0x4169('0x30')][_0x4169('0x3d')]+'%'};return _0x58a864;}})});}_0x4e4031=_[_0x4169('0x40')]({},_0x4e4031,_0x3f357d[_0x4169('0x41')]);var _0xdb19d1={'where':_0x4e4031[_0x4169('0x3a')]};return db['ServicenowField'][_0x4169('0x1f')](_0xdb19d1)[_0x4169('0x25')](function(_0x3cee1a){_0x4b3a9f['count']=_0x3cee1a;if(_0x3f357d[_0x4169('0x30')][_0x4169('0x42')]){_0x4e4031['include']=[{'all':!![]}];}return db[_0x4169('0x43')]['findAll'](_0x4e4031);})[_0x4169('0x25')](function(_0x3ca2ca){_0x4b3a9f[_0x4169('0x44')]=_0x3ca2ca;return _0x4b3a9f;})[_0x4169('0x25')](respondWithFilteredResult(_0x22858f,_0x4e4031))['catch'](handleError(_0x22858f,null));};exports[_0x4169('0x45')]=function(_0xd1b9c3,_0x2ccdc8){var _0x4325ca={'raw':!![],'where':{'id':_0xd1b9c3[_0x4169('0x46')]['id']}},_0x419367={};_0x419367[_0x4169('0x2f')]=_[_0x4169('0x31')](db[_0x4169('0x43')][_0x4169('0x2c')]);_0x419367[_0x4169('0x30')]=_['keys'](_0xd1b9c3[_0x4169('0x30')]);_0x419367[_0x4169('0x3b')]=_[_0x4169('0x32')](_0x419367[_0x4169('0x2f')],_0x419367[_0x4169('0x30')]);_0x4325ca['attributes']=_[_0x4169('0x32')](_0x419367[_0x4169('0x2f')],qs[_0x4169('0x34')](_0xd1b9c3[_0x4169('0x30')][_0x4169('0x34')]));_0x4325ca[_0x4169('0x33')]=_0x4325ca[_0x4169('0x33')][_0x4169('0x35')]?_0x4325ca[_0x4169('0x33')]:_0x419367[_0x4169('0x2f')];if(_0xd1b9c3[_0x4169('0x30')]['includeAll']){_0x4325ca[_0x4169('0x47')]=[{'all':!![]}];}_0x4325ca=_[_0x4169('0x40')]({},_0x4325ca,_0xd1b9c3[_0x4169('0x41')]);return db[_0x4169('0x43')]['find'](_0x4325ca)[_0x4169('0x25')](handleEntityNotFound(_0x2ccdc8,null))['then'](respondWithResult(_0x2ccdc8,null))[_0x4169('0x48')](handleError(_0x2ccdc8,null));};exports[_0x4169('0x49')]=function(_0x530e5d,_0x1910f3){return db[_0x4169('0x43')][_0x4169('0x49')](_0x530e5d[_0x4169('0x4a')],{})['then'](respondWithResult(_0x1910f3,0xc9))[_0x4169('0x48')](handleError(_0x1910f3,null));};exports['update']=function(_0xe0c0a5,_0x125e75){if(_0xe0c0a5[_0x4169('0x4a')]['id']){delete _0xe0c0a5[_0x4169('0x4a')]['id'];}return db[_0x4169('0x43')]['find']({'where':{'id':_0xe0c0a5[_0x4169('0x46')]['id']}})[_0x4169('0x25')](handleEntityNotFound(_0x125e75,null))['then'](saveUpdates(_0xe0c0a5[_0x4169('0x4a')],null))[_0x4169('0x25')](respondWithResult(_0x125e75,null))['catch'](handleError(_0x125e75,null));};exports[_0x4169('0x26')]=function(_0x473bca,_0x10d9bc){return db[_0x4169('0x43')]['find']({'where':{'id':_0x473bca['params']['id']}})[_0x4169('0x25')](handleEntityNotFound(_0x10d9bc,null))[_0x4169('0x25')](removeEntity(_0x10d9bc,null))[_0x4169('0x48')](handleError(_0x10d9bc,null));};
\ No newline at end of file
+var _0xb44a=['body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/license/util','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','then','end','stack','name','send','index','map','fieldName','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','options','ServicenowField','includeAll','include','findAll','catch','show','params','rawAttributes','keys','length','find','create'];(function(_0x549996,_0xd04634){var _0x4de5d1=function(_0x1883a7){while(--_0x1883a7){_0x549996['push'](_0x549996['shift']());}};_0x4de5d1(++_0xd04634);}(_0xb44a,0x93));var _0xab44=function(_0x56ee15,_0x1effd1){_0x56ee15=_0x56ee15-0x0;var _0x94991f=_0xb44a[_0x56ee15];return _0x94991f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xab44('0x0'));var zipdir=require(_0xab44('0x1'));var jsonpatch=require(_0xab44('0x2'));var rp=require(_0xab44('0x3'));var moment=require(_0xab44('0x4'));var BPromise=require(_0xab44('0x5'));var Mustache=require(_0xab44('0x6'));var util=require('util');var path=require(_0xab44('0x7'));var sox=require(_0xab44('0x8'));var csv=require(_0xab44('0x9'));var ejs=require(_0xab44('0xa'));var fs=require('fs');var fs_extra=require(_0xab44('0xb'));var _=require(_0xab44('0xc'));var squel=require('squel');var crypto=require(_0xab44('0xd'));var jsforce=require(_0xab44('0xe'));var deskjs=require(_0xab44('0xf'));var toCsv=require(_0xab44('0x9'));var querystring=require(_0xab44('0x10'));var Papa=require(_0xab44('0x11'));var Redis=require(_0xab44('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xab44('0x13'));var as=require(_0xab44('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xab44('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xab44('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x566f8f,_0x335064){_0x335064=_0x335064||0xcc;return function(_0xfa9175){if(_0xfa9175){return _0x566f8f[_0xab44('0x17')](_0x335064);}return _0x566f8f[_0xab44('0x18')](_0x335064)['end']();};}function respondWithResult(_0x1a26c3,_0x2d401e){_0x2d401e=_0x2d401e||0xc8;return function(_0x561762){if(_0x561762){return _0x1a26c3[_0xab44('0x18')](_0x2d401e)[_0xab44('0x19')](_0x561762);}};}function respondWithFilteredResult(_0x161009,_0x1f5aa2){return function(_0x4b534b){if(_0x4b534b){var _0x67f672=typeof _0x1f5aa2['offset']===_0xab44('0x1a')&&typeof _0x1f5aa2[_0xab44('0x1b')]===_0xab44('0x1a');var _0x32354d=_0x4b534b[_0xab44('0x1c')];var _0x4a3c45=_0x67f672?0x0:_0x1f5aa2['offset'];var _0x46eab8=_0x67f672?_0x4b534b[_0xab44('0x1c')]:_0x1f5aa2[_0xab44('0x1d')]+_0x1f5aa2[_0xab44('0x1b')];var _0x555705;if(_0x46eab8>=_0x32354d){_0x46eab8=_0x32354d;_0x555705=0xc8;}else{_0x555705=0xce;}_0x161009[_0xab44('0x18')](_0x555705);return _0x161009[_0xab44('0x1e')](_0xab44('0x1f'),_0x4a3c45+'-'+_0x46eab8+'/'+_0x32354d)['json'](_0x4b534b);}return null;};}function patchUpdates(_0x272d09){return function(_0x3d8231){try{jsonpatch[_0xab44('0x20')](_0x3d8231,_0x272d09,!![]);}catch(_0x1a3b44){return BPromise['reject'](_0x1a3b44);}return _0x3d8231[_0xab44('0x21')]();};}function saveUpdates(_0x1d54a9,_0x51260a){return function(_0x12059a){if(_0x12059a){return _0x12059a[_0xab44('0x22')](_0x1d54a9)[_0xab44('0x23')](function(_0x12644a){return _0x12644a;});}return null;};}function removeEntity(_0x378284,_0x2b60c8){return function(_0x1b1373){if(_0x1b1373){return _0x1b1373['destroy']()[_0xab44('0x23')](function(){_0x378284['status'](0xcc)[_0xab44('0x24')]();});}};}function handleEntityNotFound(_0x47e8c8,_0x168d0f){return function(_0x44e508){if(!_0x44e508){_0x47e8c8[_0xab44('0x17')](0x194);}return _0x44e508;};}function handleError(_0x5de630,_0x2cd8a2){_0x2cd8a2=_0x2cd8a2||0x1f4;return function(_0x4ba27c){logger['error'](_0x4ba27c[_0xab44('0x25')]);if(_0x4ba27c[_0xab44('0x26')]){delete _0x4ba27c['name'];}_0x5de630[_0xab44('0x18')](_0x2cd8a2)[_0xab44('0x27')](_0x4ba27c);};}exports[_0xab44('0x28')]=function(_0x39d47c,_0x189d2a){var _0x20664c={},_0x279ca7={},_0x47ca4c={'count':0x0,'rows':[]};var _0x3206c8=_[_0xab44('0x29')](db['ServicenowField']['rawAttributes'],function(_0x1f890d){return{'name':_0x1f890d[_0xab44('0x2a')],'type':_0x1f890d['type'][_0xab44('0x2b')]};});_0x279ca7[_0xab44('0x2c')]=_[_0xab44('0x29')](_0x3206c8,'name');_0x279ca7['query']=_['keys'](_0x39d47c[_0xab44('0x2d')]);_0x279ca7[_0xab44('0x2e')]=_[_0xab44('0x2f')](_0x279ca7[_0xab44('0x2c')],_0x279ca7['query']);_0x20664c['attributes']=_['intersection'](_0x279ca7['model'],qs['fields'](_0x39d47c[_0xab44('0x2d')][_0xab44('0x30')]));_0x20664c[_0xab44('0x31')]=_0x20664c[_0xab44('0x31')]['length']?_0x20664c[_0xab44('0x31')]:_0x279ca7[_0xab44('0x2c')];if(!_0x39d47c['query'][_0xab44('0x32')](_0xab44('0x33'))){_0x20664c[_0xab44('0x1b')]=qs[_0xab44('0x1b')](_0x39d47c['query']['limit']);_0x20664c[_0xab44('0x1d')]=qs[_0xab44('0x1d')](_0x39d47c[_0xab44('0x2d')][_0xab44('0x1d')]);}_0x20664c[_0xab44('0x34')]=qs[_0xab44('0x35')](_0x39d47c[_0xab44('0x2d')][_0xab44('0x35')]);_0x20664c[_0xab44('0x36')]=qs[_0xab44('0x2e')](_[_0xab44('0x37')](_0x39d47c[_0xab44('0x2d')],_0x279ca7[_0xab44('0x2e')]),_0x3206c8);if(_0x39d47c[_0xab44('0x2d')]['filter']){_0x20664c['where']=_[_0xab44('0x38')](_0x20664c['where'],{'$or':_[_0xab44('0x29')](_0x3206c8,function(_0x11fca7){if(_0x11fca7[_0xab44('0x39')]!==_0xab44('0x3a')){var _0xe1d017={};_0xe1d017[_0x11fca7['name']]={'$like':'%'+_0x39d47c['query']['filter']+'%'};return _0xe1d017;}})});}_0x20664c=_[_0xab44('0x38')]({},_0x20664c,_0x39d47c[_0xab44('0x3b')]);var _0x3e1398={'where':_0x20664c[_0xab44('0x36')]};return db[_0xab44('0x3c')][_0xab44('0x1c')](_0x3e1398)[_0xab44('0x23')](function(_0x5e8005){_0x47ca4c['count']=_0x5e8005;if(_0x39d47c[_0xab44('0x2d')][_0xab44('0x3d')]){_0x20664c[_0xab44('0x3e')]=[{'all':!![]}];}return db['ServicenowField'][_0xab44('0x3f')](_0x20664c);})[_0xab44('0x23')](function(_0x2d5c27){_0x47ca4c['rows']=_0x2d5c27;return _0x47ca4c;})[_0xab44('0x23')](respondWithFilteredResult(_0x189d2a,_0x20664c))[_0xab44('0x40')](handleError(_0x189d2a,null));};exports[_0xab44('0x41')]=function(_0x53a1e4,_0x11bcea){var _0x4be9b8={'raw':!![],'where':{'id':_0x53a1e4[_0xab44('0x42')]['id']}},_0x5a5edc={};_0x5a5edc[_0xab44('0x2c')]=_['keys'](db[_0xab44('0x3c')][_0xab44('0x43')]);_0x5a5edc[_0xab44('0x2d')]=_[_0xab44('0x44')](_0x53a1e4['query']);_0x5a5edc[_0xab44('0x2e')]=_[_0xab44('0x2f')](_0x5a5edc['model'],_0x5a5edc[_0xab44('0x2d')]);_0x4be9b8[_0xab44('0x31')]=_['intersection'](_0x5a5edc[_0xab44('0x2c')],qs[_0xab44('0x30')](_0x53a1e4['query'][_0xab44('0x30')]));_0x4be9b8[_0xab44('0x31')]=_0x4be9b8['attributes'][_0xab44('0x45')]?_0x4be9b8[_0xab44('0x31')]:_0x5a5edc[_0xab44('0x2c')];if(_0x53a1e4[_0xab44('0x2d')][_0xab44('0x3d')]){_0x4be9b8['include']=[{'all':!![]}];}_0x4be9b8=_[_0xab44('0x38')]({},_0x4be9b8,_0x53a1e4[_0xab44('0x3b')]);return db[_0xab44('0x3c')][_0xab44('0x46')](_0x4be9b8)['then'](handleEntityNotFound(_0x11bcea,null))[_0xab44('0x23')](respondWithResult(_0x11bcea,null))[_0xab44('0x40')](handleError(_0x11bcea,null));};exports[_0xab44('0x47')]=function(_0xaa1fbc,_0x36e4d4){return db[_0xab44('0x3c')][_0xab44('0x47')](_0xaa1fbc[_0xab44('0x48')],{})[_0xab44('0x23')](respondWithResult(_0x36e4d4,0xc9))['catch'](handleError(_0x36e4d4,null));};exports[_0xab44('0x22')]=function(_0x31c0bc,_0x4a73a5){if(_0x31c0bc[_0xab44('0x48')]['id']){delete _0x31c0bc['body']['id'];}return db[_0xab44('0x3c')][_0xab44('0x46')]({'where':{'id':_0x31c0bc[_0xab44('0x42')]['id']}})[_0xab44('0x23')](handleEntityNotFound(_0x4a73a5,null))[_0xab44('0x23')](saveUpdates(_0x31c0bc[_0xab44('0x48')],null))['then'](respondWithResult(_0x4a73a5,null))[_0xab44('0x40')](handleError(_0x4a73a5,null));};exports['destroy']=function(_0x4e038f,_0x5ea3ca){return db[_0xab44('0x3c')][_0xab44('0x46')]({'where':{'id':_0x4e038f[_0xab44('0x42')]['id']}})['then'](handleEntityNotFound(_0x5ea3ca,null))[_0xab44('0x23')](removeEntity(_0x5ea3ca,null))[_0xab44('0x40')](handleError(_0x5ea3ca,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbadf=['define','servicenow_unique_index','idField','FieldId','lodash','util','api','moment','path','../../config/environment','exports'];(function(_0x141dd8,_0x48363d){var _0x348080=function(_0x3beb35){while(--_0x3beb35){_0x141dd8['push'](_0x141dd8['shift']());}};_0x348080(++_0x48363d);}(_0xbadf,0xca));var _0xfbad=function(_0x505df9,_0x14138e){_0x505df9=_0x505df9-0x0;var _0x1cc025=_0xbadf[_0x505df9];return _0x1cc025;};'use strict';var _=require(_0xfbad('0x0'));var util=require(_0xfbad('0x1'));var logger=require('../../config/logger')(_0xfbad('0x2'));var moment=require(_0xfbad('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xfbad('0x4'));var rimraf=require('rimraf');var config=require(_0xfbad('0x5'));var attributes=require('./intServicenowField.attributes');module[_0xfbad('0x6')]=function(_0x4df3e8,_0x1e183b){return _0x4df3e8[_0xfbad('0x7')]('ServicenowField',attributes,{'tableName':'int_servicenow_fields','paranoid':![],'indexes':[{'name':_0xfbad('0x8'),'fields':[_0xfbad('0x9'),_0xfbad('0xa')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5292=['rimraf','../../config/environment','./intServicenowField.attributes','exports','ServicenowField','int_servicenow_fields','idField','FieldId','util','../../config/logger','api','moment','bluebird'];(function(_0x7c008b,_0x149cd4){var _0x43b711=function(_0x44cb93){while(--_0x44cb93){_0x7c008b['push'](_0x7c008b['shift']());}};_0x43b711(++_0x149cd4);}(_0x5292,0x10c));var _0x2529=function(_0x6823e,_0xc66f0e){_0x6823e=_0x6823e-0x0;var _0x5a2be8=_0x5292[_0x6823e];return _0x5a2be8;};'use strict';var _=require('lodash');var util=require(_0x2529('0x0'));var logger=require(_0x2529('0x1'))(_0x2529('0x2'));var moment=require(_0x2529('0x3'));var BPromise=require(_0x2529('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2529('0x5'));var config=require(_0x2529('0x6'));var attributes=require(_0x2529('0x7'));module[_0x2529('0x8')]=function(_0x481cf6,_0xcb2724){return _0x481cf6['define'](_0x2529('0x9'),attributes,{'tableName':_0x2529('0xa'),'paranoid':![],'indexes':[{'name':'servicenow_unique_index','fields':[_0x2529('0xb'),_0x2529('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['rpc','jayson/promise','client','request','then','info','ServicenowField,\x20%s,\x20%s','request\x20sent','debug','ServicenowField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger'];(function(_0x2d8d69,_0x8e47ff){var _0x39ae22=function(_0xd7935e){while(--_0xd7935e){_0x2d8d69['push'](_0x2d8d69['shift']());}};_0x39ae22(++_0x8e47ff);}(_0xda3f,0xec));var _0xfda3=function(_0x4c60c5,_0x3af7d9){_0x4c60c5=_0x4c60c5-0x0;var _0x4cc897=_0xda3f[_0x4c60c5];return _0x4cc897;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var moment=require(_0xfda3('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfda3('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xfda3('0x3'))(_0xfda3('0x4'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x5'));var client=jayson[_0xfda3('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e72d1,_0x316792,_0x42476a){return new BPromise(function(_0x125e2a,_0x4018c0){return client[_0xfda3('0x7')](_0x4e72d1,_0x42476a)[_0xfda3('0x8')](function(_0x46655c){logger[_0xfda3('0x9')](_0xfda3('0xa'),_0x316792,_0xfda3('0xb'));logger[_0xfda3('0xc')](_0xfda3('0xd'),_0x316792,'request\x20sent',JSON[_0xfda3('0xe')](_0x46655c));if(_0x46655c[_0xfda3('0xf')]){if(_0x46655c[_0xfda3('0xf')][_0xfda3('0x10')]===0x1f4){logger[_0xfda3('0xf')]('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c[_0xfda3('0xf')]['message']);return _0x4018c0(_0x46655c[_0xfda3('0xf')][_0xfda3('0x11')]);}logger['error']('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c['error'][_0xfda3('0x11')]);return _0x125e2a(_0x46655c[_0xfda3('0xf')]['message']);}else{logger['info']('ServicenowField,\x20%s,\x20%s',_0x316792,_0xfda3('0xb'));_0x125e2a(_0x46655c[_0xfda3('0x12')][_0xfda3('0x11')]);}})[_0xfda3('0x13')](function(_0x34900d){logger[_0xfda3('0xf')](_0xfda3('0xa'),_0x316792,_0x34900d);_0x4018c0(_0x34900d);});});}
\ No newline at end of file
+var _0x9bde=['code','message','ServicenowField,\x20%s,\x20%s','result','catch','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','debug','ServicenowField,\x20%s,\x20%s,\x20%s','request\x20sent','error'];(function(_0x5ab13b,_0x35127f){var _0x16bb60=function(_0x81f050){while(--_0x81f050){_0x5ab13b['push'](_0x5ab13b['shift']());}};_0x16bb60(++_0x35127f);}(_0x9bde,0xe1));var _0xe9bd=function(_0xea0959,_0x534467){_0xea0959=_0xea0959-0x0;var _0x5f22b4=_0x9bde[_0xea0959];return _0x5f22b4;};'use strict';var _=require('lodash');var util=require(_0xe9bd('0x0'));var moment=require('moment');var BPromise=require(_0xe9bd('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe9bd('0x2'));var db=require(_0xe9bd('0x3'))['db'];var utils=require(_0xe9bd('0x4'));var logger=require(_0xe9bd('0x5'))(_0xe9bd('0x6'));var config=require(_0xe9bd('0x7'));var jayson=require(_0xe9bd('0x8'));var client=jayson['client'][_0xe9bd('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5f18fe,_0x22a438,_0xa66ae2){return new BPromise(function(_0x2d5c75,_0x3ef9e3){return client[_0xe9bd('0xa')](_0x5f18fe,_0xa66ae2)[_0xe9bd('0xb')](function(_0x439abc){logger[_0xe9bd('0xc')]('ServicenowField,\x20%s,\x20%s',_0x22a438,'request\x20sent');logger[_0xe9bd('0xd')](_0xe9bd('0xe'),_0x22a438,_0xe9bd('0xf'),JSON['stringify'](_0x439abc));if(_0x439abc[_0xe9bd('0x10')]){if(_0x439abc[_0xe9bd('0x10')][_0xe9bd('0x11')]===0x1f4){logger[_0xe9bd('0x10')]('ServicenowField,\x20%s,\x20%s',_0x22a438,_0x439abc[_0xe9bd('0x10')]['message']);return _0x3ef9e3(_0x439abc[_0xe9bd('0x10')][_0xe9bd('0x12')]);}logger[_0xe9bd('0x10')]('ServicenowField,\x20%s,\x20%s',_0x22a438,_0x439abc['error'][_0xe9bd('0x12')]);return _0x2d5c75(_0x439abc[_0xe9bd('0x10')][_0xe9bd('0x12')]);}else{logger[_0xe9bd('0xc')](_0xe9bd('0x13'),_0x22a438,_0xe9bd('0xf'));_0x2d5c75(_0x439abc[_0xe9bd('0x14')]['message']);}})[_0xe9bd('0x15')](function(_0x464a1b){logger[_0xe9bd('0x10')]('ServicenowField,\x20%s,\x20%s',_0x22a438,_0x464a1b);_0x3ef9e3(_0x464a1b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x3a4758,_0x522a96){var _0x5720d1=function(_0x3c007d){while(--_0x3c007d){_0x3a4758['push'](_0x3a4758['shift']());}};_0x5720d1(++_0x522a96);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x1538d1,_0x3eab18){var _0xe84c01=function(_0x403400){while(--_0x403400){_0x1538d1['push'](_0x1538d1['shift']());}};_0xe84c01(++_0x3eab18);}(_0xa9e0,0x123));var _0x0a9e=function(_0x373dee,_0x1a8c45){_0x373dee=_0x373dee-0x0;var _0x46798f=_0xa9e0[_0x373dee];return _0x46798f;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0xc715d0,_0xac66ac){var _0x5bf4a9=function(_0x42fbdd){while(--_0x42fbdd){_0xc715d0['push'](_0xc715d0['shift']());}};_0x5bf4a9(++_0xac66ac);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2d8fc2,_0x1c461d){_0x2d8fc2=_0x2d8fc2-0x0;var _0x3a9e53=_0xa9e0[_0x2d8fc2];return _0x3a9e53;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x3124f5,_0x2555d8){var _0x291342=function(_0x446a47){while(--_0x446a47){_0x3124f5['push'](_0x3124f5['shift']());}};_0x291342(++_0x2555d8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d39=['keys','find','create','body','update','findOne','SugarcrmConfiguration','rawAttributes','order','getConfigurations','hasOwnProperty','nolimit','addConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','Subjects','getFields','assigned_user_id','created_by','description','parent_type','direction','username','password','remoteUri','slice','substring','POST','format','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','get_module_fields','remove','includes','label','endsWith','test','statusCode','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','offset','undefined','count','set','json','apply','reject','save','then','destroy','end','error','stack','send','index','SugarcrmAccount','fieldName','type','key','model','map','name','query','filters','intersection','fields','attributes','length','limit','sort','pick','filter','where','merge','options','includeAll','include','findAll','catch','show','params'];(function(_0x3d6db1,_0x4358f8){var _0x5e1cc3=function(_0x3ad5af){while(--_0x3ad5af){_0x3d6db1['push'](_0x3d6db1['shift']());}};_0x5e1cc3(++_0x4358f8);}(_0x4d39,0x18f));var _0x94d3=function(_0x2fb4af,_0xbe901b){_0x2fb4af=_0x2fb4af-0x0;var _0x255941=_0x4d39[_0x2fb4af];return _0x255941;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x94d3('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x94d3('0x1'));var rp=require(_0x94d3('0x2'));var moment=require(_0x94d3('0x3'));var BPromise=require(_0x94d3('0x4'));var Mustache=require(_0x94d3('0x5'));var util=require(_0x94d3('0x6'));var path=require(_0x94d3('0x7'));var sox=require(_0x94d3('0x8'));var csv=require(_0x94d3('0x9'));var ejs=require(_0x94d3('0xa'));var fs=require('fs');var fs_extra=require(_0x94d3('0xb'));var _=require('lodash');var squel=require(_0x94d3('0xc'));var crypto=require(_0x94d3('0xd'));var jsforce=require(_0x94d3('0xe'));var deskjs=require(_0x94d3('0xf'));var toCsv=require('to-csv');var querystring=require(_0x94d3('0x10'));var Papa=require('papaparse');var Redis=require(_0x94d3('0x11'));var authService=require(_0x94d3('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x94d3('0x13'));var hardwareService=require(_0x94d3('0x14'));var logger=require(_0x94d3('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x94d3('0x16'));var licenseUtil=require(_0x94d3('0x17'));var db=require(_0x94d3('0x18'))['db'];var integrations=require(_0x94d3('0x19'));function respondWithStatusCode(_0x153a97,_0x3c62ee){_0x3c62ee=_0x3c62ee||0xcc;return function(_0x722b4e){if(_0x722b4e){return _0x153a97[_0x94d3('0x1a')](_0x3c62ee);}return _0x153a97[_0x94d3('0x1b')](_0x3c62ee)['end']();};}function respondWithResult(_0x402267,_0x328522){_0x328522=_0x328522||0xc8;return function(_0x3d69e2){if(_0x3d69e2){return _0x402267[_0x94d3('0x1b')](_0x328522)['json'](_0x3d69e2);}};}function respondWithFilteredResult(_0x3977cf,_0x11d563){return function(_0x5ced87){if(_0x5ced87){var _0x282d68=typeof _0x11d563[_0x94d3('0x1c')]==='undefined'&&typeof _0x11d563['limit']===_0x94d3('0x1d');var _0x691cfe=_0x5ced87['count'];var _0x5b9431=_0x282d68?0x0:_0x11d563[_0x94d3('0x1c')];var _0x2ffd21=_0x282d68?_0x5ced87[_0x94d3('0x1e')]:_0x11d563[_0x94d3('0x1c')]+_0x11d563['limit'];var _0x4148f0;if(_0x2ffd21>=_0x691cfe){_0x2ffd21=_0x691cfe;_0x4148f0=0xc8;}else{_0x4148f0=0xce;}_0x3977cf['status'](_0x4148f0);return _0x3977cf[_0x94d3('0x1f')]('Content-Range',_0x5b9431+'-'+_0x2ffd21+'/'+_0x691cfe)[_0x94d3('0x20')](_0x5ced87);}return null;};}function patchUpdates(_0x3c1748){return function(_0x53d5f9){try{jsonpatch[_0x94d3('0x21')](_0x53d5f9,_0x3c1748,!![]);}catch(_0x304421){return BPromise[_0x94d3('0x22')](_0x304421);}return _0x53d5f9[_0x94d3('0x23')]();};}function saveUpdates(_0x556401,_0x299b04){return function(_0x2ecc0b){if(_0x2ecc0b){return _0x2ecc0b['update'](_0x556401)[_0x94d3('0x24')](function(_0x57f4be){return _0x57f4be;});}return null;};}function removeEntity(_0x42f355,_0x1934ef){return function(_0x470a83){if(_0x470a83){return _0x470a83[_0x94d3('0x25')]()[_0x94d3('0x24')](function(){_0x42f355['status'](0xcc)[_0x94d3('0x26')]();});}};}function handleEntityNotFound(_0xb60281,_0x4ef522){return function(_0x2bd7d9){if(!_0x2bd7d9){_0xb60281['sendStatus'](0x194);}return _0x2bd7d9;};}function handleError(_0x2bf766,_0x30b57b){_0x30b57b=_0x30b57b||0x1f4;return function(_0x5681cb){logger[_0x94d3('0x27')](_0x5681cb[_0x94d3('0x28')]);if(_0x5681cb['name']){delete _0x5681cb['name'];}_0x2bf766[_0x94d3('0x1b')](_0x30b57b)[_0x94d3('0x29')](_0x5681cb);};}exports[_0x94d3('0x2a')]=function(_0x149823,_0x158058){var _0x46c488={},_0x1c6907={},_0x19d612={'count':0x0,'rows':[]};var _0x27621d=_['map'](db[_0x94d3('0x2b')]['rawAttributes'],function(_0xf29638){return{'name':_0xf29638[_0x94d3('0x2c')],'type':_0xf29638[_0x94d3('0x2d')][_0x94d3('0x2e')]};});_0x1c6907[_0x94d3('0x2f')]=_[_0x94d3('0x30')](_0x27621d,_0x94d3('0x31'));_0x1c6907[_0x94d3('0x32')]=_['keys'](_0x149823['query']);_0x1c6907[_0x94d3('0x33')]=_[_0x94d3('0x34')](_0x1c6907[_0x94d3('0x2f')],_0x1c6907['query']);_0x46c488['attributes']=_[_0x94d3('0x34')](_0x1c6907['model'],qs['fields'](_0x149823[_0x94d3('0x32')][_0x94d3('0x35')]));_0x46c488[_0x94d3('0x36')]=_0x46c488[_0x94d3('0x36')][_0x94d3('0x37')]?_0x46c488[_0x94d3('0x36')]:_0x1c6907[_0x94d3('0x2f')];if(!_0x149823[_0x94d3('0x32')]['hasOwnProperty']('nolimit')){_0x46c488[_0x94d3('0x38')]=qs[_0x94d3('0x38')](_0x149823['query'][_0x94d3('0x38')]);_0x46c488[_0x94d3('0x1c')]=qs[_0x94d3('0x1c')](_0x149823[_0x94d3('0x32')][_0x94d3('0x1c')]);}_0x46c488['order']=qs[_0x94d3('0x39')](_0x149823['query']['sort']);_0x46c488['where']=qs['filters'](_[_0x94d3('0x3a')](_0x149823[_0x94d3('0x32')],_0x1c6907['filters']),_0x27621d);if(_0x149823[_0x94d3('0x32')][_0x94d3('0x3b')]){_0x46c488[_0x94d3('0x3c')]=_[_0x94d3('0x3d')](_0x46c488['where'],{'$or':_[_0x94d3('0x30')](_0x27621d,function(_0x56456c){if(_0x56456c['type']!=='VIRTUAL'){var _0x1b6572={};_0x1b6572[_0x56456c['name']]={'$like':'%'+_0x149823['query'][_0x94d3('0x3b')]+'%'};return _0x1b6572;}})});}_0x46c488=_[_0x94d3('0x3d')]({},_0x46c488,_0x149823[_0x94d3('0x3e')]);var _0x40021a={'where':_0x46c488['where']};return db[_0x94d3('0x2b')]['count'](_0x40021a)[_0x94d3('0x24')](function(_0x401f81){_0x19d612[_0x94d3('0x1e')]=_0x401f81;if(_0x149823[_0x94d3('0x32')][_0x94d3('0x3f')]){_0x46c488[_0x94d3('0x40')]=[{'all':!![]}];}return db[_0x94d3('0x2b')][_0x94d3('0x41')](_0x46c488);})[_0x94d3('0x24')](function(_0x5648c4){_0x19d612['rows']=_0x5648c4;return _0x19d612;})['then'](respondWithFilteredResult(_0x158058,_0x46c488))[_0x94d3('0x42')](handleError(_0x158058,null));};exports[_0x94d3('0x43')]=function(_0x25a26a,_0x8dc8a4){var _0x568a73={'raw':![],'where':{'id':_0x25a26a[_0x94d3('0x44')]['id']}},_0x140594={};_0x140594['model']=_[_0x94d3('0x45')](db[_0x94d3('0x2b')]['rawAttributes']);_0x140594[_0x94d3('0x32')]=_['keys'](_0x25a26a[_0x94d3('0x32')]);_0x140594['filters']=_[_0x94d3('0x34')](_0x140594[_0x94d3('0x2f')],_0x140594[_0x94d3('0x32')]);_0x568a73[_0x94d3('0x36')]=_[_0x94d3('0x34')](_0x140594[_0x94d3('0x2f')],qs['fields'](_0x25a26a['query'][_0x94d3('0x35')]));_0x568a73['attributes']=_0x568a73[_0x94d3('0x36')][_0x94d3('0x37')]?_0x568a73[_0x94d3('0x36')]:_0x140594[_0x94d3('0x2f')];if(_0x25a26a[_0x94d3('0x32')][_0x94d3('0x3f')]){_0x568a73[_0x94d3('0x40')]=[{'all':!![]}];}_0x568a73=_[_0x94d3('0x3d')]({},_0x568a73,_0x25a26a[_0x94d3('0x3e')]);return db['SugarcrmAccount'][_0x94d3('0x46')](_0x568a73)[_0x94d3('0x24')](handleEntityNotFound(_0x8dc8a4,null))[_0x94d3('0x24')](respondWithResult(_0x8dc8a4,null))[_0x94d3('0x42')](handleError(_0x8dc8a4,null));};exports[_0x94d3('0x47')]=function(_0x3d7699,_0x446d47){return db['SugarcrmAccount'][_0x94d3('0x47')](_0x3d7699[_0x94d3('0x48')],{})[_0x94d3('0x24')](respondWithResult(_0x446d47,0xc9))[_0x94d3('0x42')](handleError(_0x446d47,null));};exports[_0x94d3('0x49')]=function(_0x1339d3,_0x7faa0f){if(_0x1339d3[_0x94d3('0x48')]['id']){delete _0x1339d3[_0x94d3('0x48')]['id'];}return db[_0x94d3('0x2b')][_0x94d3('0x46')]({'where':{'id':_0x1339d3[_0x94d3('0x44')]['id']}})[_0x94d3('0x24')](handleEntityNotFound(_0x7faa0f,null))[_0x94d3('0x24')](saveUpdates(_0x1339d3[_0x94d3('0x48')],null))[_0x94d3('0x24')](respondWithResult(_0x7faa0f,null))[_0x94d3('0x42')](handleError(_0x7faa0f,null));};exports['destroy']=function(_0x5b10c1,_0x2ba4ab){return db['SugarcrmAccount']['find']({'where':{'id':_0x5b10c1[_0x94d3('0x44')]['id']}})[_0x94d3('0x24')](handleEntityNotFound(_0x2ba4ab,null))[_0x94d3('0x24')](removeEntity(_0x2ba4ab,null))['catch'](handleError(_0x2ba4ab,null));};exports['getConfigurations']=function(_0x312653,_0x3b358d,_0x2ed23e){var _0x1e94fc={};var _0x455eca={};var _0x57fcde;var _0x415db6;return db['SugarcrmAccount'][_0x94d3('0x4a')]({'where':{'id':_0x312653[_0x94d3('0x44')]['id']}})[_0x94d3('0x24')](handleEntityNotFound(_0x3b358d,null))[_0x94d3('0x24')](function(_0x9516ee){if(_0x9516ee){_0x57fcde=_0x9516ee;_0x455eca['model']=_[_0x94d3('0x45')](db[_0x94d3('0x4b')][_0x94d3('0x4c')]);_0x455eca[_0x94d3('0x32')]=_[_0x94d3('0x45')](_0x312653[_0x94d3('0x32')]);_0x455eca[_0x94d3('0x33')]=_['intersection'](_0x455eca[_0x94d3('0x2f')],_0x455eca[_0x94d3('0x32')]);_0x1e94fc[_0x94d3('0x36')]=_['intersection'](_0x455eca[_0x94d3('0x2f')],qs[_0x94d3('0x35')](_0x312653['query']['fields']));_0x1e94fc[_0x94d3('0x36')]=_0x1e94fc['attributes'][_0x94d3('0x37')]?_0x1e94fc[_0x94d3('0x36')]:_0x455eca[_0x94d3('0x2f')];_0x1e94fc[_0x94d3('0x4d')]=qs[_0x94d3('0x39')](_0x312653[_0x94d3('0x32')][_0x94d3('0x39')]);_0x1e94fc[_0x94d3('0x3c')]=qs[_0x94d3('0x33')](_['pick'](_0x312653[_0x94d3('0x32')],_0x455eca[_0x94d3('0x33')]));if(_0x312653['query'][_0x94d3('0x3b')]){_0x1e94fc['where']=_['merge'](_0x1e94fc[_0x94d3('0x3c')],{'$or':_[_0x94d3('0x30')](_0x1e94fc[_0x94d3('0x36')],function(_0x1606fc){var _0x5d1e44={};_0x5d1e44[_0x1606fc]={'$like':'%'+_0x312653[_0x94d3('0x32')][_0x94d3('0x3b')]+'%'};return _0x5d1e44;})});}_0x1e94fc=_[_0x94d3('0x3d')]({},_0x1e94fc,_0x312653[_0x94d3('0x3e')]);return _0x57fcde[_0x94d3('0x4e')](_0x1e94fc);}})[_0x94d3('0x24')](function(_0x384590){if(_0x384590){_0x415db6=_0x384590[_0x94d3('0x37')];if(!_0x312653['query'][_0x94d3('0x4f')](_0x94d3('0x50'))){_0x1e94fc['limit']=qs[_0x94d3('0x38')](_0x312653[_0x94d3('0x32')][_0x94d3('0x38')]);_0x1e94fc[_0x94d3('0x1c')]=qs[_0x94d3('0x1c')](_0x312653[_0x94d3('0x32')][_0x94d3('0x1c')]);}return _0x57fcde['getConfigurations'](_0x1e94fc);}})['then'](function(_0x1845ff){if(_0x1845ff){return _0x1845ff?{'count':_0x415db6,'rows':_0x1845ff}:null;}})[_0x94d3('0x24')](respondWithResult(_0x3b358d,null))[_0x94d3('0x42')](handleError(_0x3b358d,null));};exports[_0x94d3('0x51')]=function(_0x381983,_0x451899,_0x357044){if(_0x381983[_0x94d3('0x48')]['id']){delete _0x381983[_0x94d3('0x48')]['id'];}return db['SugarcrmAccount'][_0x94d3('0x4a')]({'where':{'id':_0x381983[_0x94d3('0x44')]['id']}})[_0x94d3('0x24')](handleEntityNotFound(_0x451899,null))[_0x94d3('0x24')](function(_0x104842){if(_0x104842){_0x381983[_0x94d3('0x48')][_0x94d3('0x52')]=_0x104842['id'];_0x381983[_0x94d3('0x48')]['Subjects']=integrations[_0x94d3('0x53')](_0x381983[_0x94d3('0x48')][_0x94d3('0x54')],_0x381983[_0x94d3('0x48')][_0x94d3('0x2d')]);_0x381983[_0x94d3('0x48')][_0x94d3('0x55')]=integrations[_0x94d3('0x56')](_0x381983[_0x94d3('0x48')]['channel'],_0x381983[_0x94d3('0x48')][_0x94d3('0x2d')]);return db[_0x94d3('0x4b')][_0x94d3('0x47')](_0x381983[_0x94d3('0x48')],{'include':[{'model':db[_0x94d3('0x57')],'as':_0x94d3('0x58')},{'model':db[_0x94d3('0x57')],'as':'Descriptions'}]});}return null;})[_0x94d3('0x24')](respondWithResult(_0x451899,null))['catch'](handleError(_0x451899,null));};exports[_0x94d3('0x59')]=function(_0x30f91d,_0x27ae15,_0x229148){var _0x5d31d4='';var _0x249e68=['id',_0x94d3('0x31'),_0x94d3('0x5a'),_0x94d3('0x5b'),_0x94d3('0x5c'),'date_start','duration_hours','duration_minutes','parent_id',_0x94d3('0x5d'),'parent_name',_0x94d3('0x5e')];return db[_0x94d3('0x2b')][_0x94d3('0x4a')]({'where':{'id':_0x30f91d[_0x94d3('0x44')]['id']},'attributes':['id',_0x94d3('0x5f'),_0x94d3('0x60'),_0x94d3('0x61')]})[_0x94d3('0x24')](handleEntityNotFound(_0x27ae15,null))['then'](function(_0x4687d1){if(_0x4687d1){_0x5d31d4=_0x4687d1['remoteUri'];var _0x1b3608=_0x5d31d4[_0x94d3('0x62')](-0x1);if(_0x1b3608==='/'){_0x5d31d4=_0x5d31d4[_0x94d3('0x63')](0x0,_0x5d31d4['lastIndexOf'](_0x1b3608));}return rp({'method':_0x94d3('0x64'),'uri':util[_0x94d3('0x65')]('%s%s',_0x5d31d4,_0x94d3('0x66')),'json':!![],'form':{'method':_0x94d3('0x67'),'input_type':'JSON','response_type':_0x94d3('0x68'),'rest_data':JSON[_0x94d3('0x69')]({'user_auth':{'user_name':_0x4687d1[_0x94d3('0x5f')],'password':_0x4687d1[_0x94d3('0x60')],'encryption':_0x94d3('0x6a')},'application':_0x94d3('0x6b')})}});}})[_0x94d3('0x24')](function(_0x36572f){if(_0x36572f&&_0x36572f[_0x94d3('0x31')]!==_0x94d3('0x6c')&&_0x36572f['name']!=='Password\x20Expired'){return rp({'method':'POST','uri':util[_0x94d3('0x65')]('%s%s',_0x5d31d4,_0x94d3('0x66')),'json':!![],'form':{'method':_0x94d3('0x6d'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0x94d3('0x69')]({'session':_0x36572f['id'],'module_name':'Calls'})}})[_0x94d3('0x24')](function(_0x179c31){if(_0x179c31){var _0x2e40ca=_['values'](_0x179c31['module_fields']);_[_0x94d3('0x6e')](_0x2e40ca,function(_0x1ce1a8){return _0x249e68[_0x94d3('0x6f')](_0x1ce1a8[_0x94d3('0x31')]);});return{'count':_0x2e40ca['length'],'rows':_[_0x94d3('0x30')](_0x2e40ca,function(_0x2f7964){return{'id':_0x2f7964[_0x94d3('0x31')],'name':_0x2f7964[_0x94d3('0x70')],'custom':_[_0x94d3('0x71')](_0x2f7964[_0x94d3('0x31')],'_c')?!![]:![],'options':_0x2f7964[_0x94d3('0x3e')]?_[_0x94d3('0x30')](_['values'](_0x2f7964[_0x94d3('0x3e')]),function(_0x2ec50c){return{'name':_0x2ec50c['value'],'value':_0x2ec50c[_0x94d3('0x31')]};}):[]};})};}})[_0x94d3('0x24')](respondWithResult(_0x27ae15,null))[_0x94d3('0x42')](function(_0x5c3eaa){var _0x1ae13d=_0x30f91d['query'][_0x94d3('0x72')]?0x1f4:_0x5c3eaa[_0x94d3('0x73')]||0x1f4;logger[_0x94d3('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0x94d3('0x59'),_0x1ae13d,JSON['stringify'](_0x5c3eaa));delete _0x5c3eaa[_0x94d3('0x31')];if(_0x1ae13d===0x191){_0x1ae13d=0x190;}_0x27ae15[_0x94d3('0x1b')](_0x1ae13d)[_0x94d3('0x29')](_0x30f91d[_0x94d3('0x32')][_0x94d3('0x72')]?{'message':'Wrong\x20credentials','statusCode':_0x5c3eaa['statusCode']}:_0x5c3eaa);});}else{var _0x290fce=0x1f4;_0x27ae15[_0x94d3('0x1b')](_0x290fce)[_0x94d3('0x29')]({'message':_0x94d3('0x74'),'statusCode':0x190});}});};
\ No newline at end of file
+var _0x7deb=['assigned_user_id','created_by','description','date_start','duration_hours','parent_id','parent_type','parent_name','username','password','remoteUri','slice','substring','lastIndexOf','format','%s%s','/service/v4_1/rest.php','login','JSON','PLAIN','xCALLY\x20Motion\x20Integration','Invalid\x20Login','Password\x20Expired','POST','get_module_fields','Calls','values','module_fields','remove','includes','endsWith','value','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','limit','count','status','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','map','SugarcrmAccount','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','include','findAll','rows','catch','params','includeAll','options','find','create','body','getConfigurations','nolimit','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','getDescriptions','SugarcrmConfiguration','SugarcrmField','Descriptions','getFields'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x7deb,0x11f));var _0xb7de=function(_0x2c3255,_0x4e00ae){_0x2c3255=_0x2c3255-0x0;var _0x282aba=_0x7deb[_0x2c3255];return _0x282aba;};'use strict';var emlformat=require(_0xb7de('0x0'));var rimraf=require(_0xb7de('0x1'));var zipdir=require(_0xb7de('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xb7de('0x3'));var util=require(_0xb7de('0x4'));var path=require(_0xb7de('0x5'));var sox=require(_0xb7de('0x6'));var csv=require(_0xb7de('0x7'));var ejs=require(_0xb7de('0x8'));var fs=require('fs');var fs_extra=require(_0xb7de('0x9'));var _=require(_0xb7de('0xa'));var squel=require(_0xb7de('0xb'));var crypto=require(_0xb7de('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb7de('0xd'));var toCsv=require(_0xb7de('0x7'));var querystring=require(_0xb7de('0xe'));var Papa=require(_0xb7de('0xf'));var Redis=require('ioredis');var authService=require(_0xb7de('0x10'));var qs=require(_0xb7de('0x11'));var as=require(_0xb7de('0x12'));var hardwareService=require(_0xb7de('0x13'));var logger=require(_0xb7de('0x14'))(_0xb7de('0x15'));var utils=require(_0xb7de('0x16'));var config=require(_0xb7de('0x17'));var licenseUtil=require(_0xb7de('0x18'));var db=require(_0xb7de('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x52060a,_0x1ff575){_0x1ff575=_0x1ff575||0xcc;return function(_0x2c33cb){if(_0x2c33cb){return _0x52060a[_0xb7de('0x1a')](_0x1ff575);}return _0x52060a['status'](_0x1ff575)[_0xb7de('0x1b')]();};}function respondWithResult(_0x175e58,_0x42eb18){_0x42eb18=_0x42eb18||0xc8;return function(_0x571aae){if(_0x571aae){return _0x175e58['status'](_0x42eb18)['json'](_0x571aae);}};}function respondWithFilteredResult(_0x52c34e,_0x1f94d1){return function(_0x5a4af3){if(_0x5a4af3){var _0x3e8c89=typeof _0x1f94d1[_0xb7de('0x1c')]===_0xb7de('0x1d')&&typeof _0x1f94d1[_0xb7de('0x1e')]===_0xb7de('0x1d');var _0x545e0d=_0x5a4af3[_0xb7de('0x1f')];var _0x279621=_0x3e8c89?0x0:_0x1f94d1[_0xb7de('0x1c')];var _0x3c8b70=_0x3e8c89?_0x5a4af3[_0xb7de('0x1f')]:_0x1f94d1[_0xb7de('0x1c')]+_0x1f94d1['limit'];var _0xd893f7;if(_0x3c8b70>=_0x545e0d){_0x3c8b70=_0x545e0d;_0xd893f7=0xc8;}else{_0xd893f7=0xce;}_0x52c34e[_0xb7de('0x20')](_0xd893f7);return _0x52c34e[_0xb7de('0x21')](_0xb7de('0x22'),_0x279621+'-'+_0x3c8b70+'/'+_0x545e0d)[_0xb7de('0x23')](_0x5a4af3);}return null;};}function patchUpdates(_0x379fc7){return function(_0x17323e){try{jsonpatch[_0xb7de('0x24')](_0x17323e,_0x379fc7,!![]);}catch(_0x40ada5){return BPromise[_0xb7de('0x25')](_0x40ada5);}return _0x17323e[_0xb7de('0x26')]();};}function saveUpdates(_0x527e1b,_0x282d98){return function(_0x350afe){if(_0x350afe){return _0x350afe[_0xb7de('0x27')](_0x527e1b)[_0xb7de('0x28')](function(_0x39ddd6){return _0x39ddd6;});}return null;};}function removeEntity(_0x15049f,_0x2f0fbe){return function(_0x3279a4){if(_0x3279a4){return _0x3279a4[_0xb7de('0x29')]()[_0xb7de('0x28')](function(){_0x15049f[_0xb7de('0x20')](0xcc)[_0xb7de('0x1b')]();});}};}function handleEntityNotFound(_0x8c5e92,_0x599fa7){return function(_0x1b4471){if(!_0x1b4471){_0x8c5e92['sendStatus'](0x194);}return _0x1b4471;};}function handleError(_0x2db41a,_0x10767e){_0x10767e=_0x10767e||0x1f4;return function(_0x23b6e4){logger[_0xb7de('0x2a')](_0x23b6e4[_0xb7de('0x2b')]);if(_0x23b6e4[_0xb7de('0x2c')]){delete _0x23b6e4['name'];}_0x2db41a[_0xb7de('0x20')](_0x10767e)[_0xb7de('0x2d')](_0x23b6e4);};}exports['index']=function(_0x4007b5,_0x474017){var _0x2c02d8={},_0x1ad84a={},_0x4ffe63={'count':0x0,'rows':[]};var _0x4c7fb4=_[_0xb7de('0x2e')](db[_0xb7de('0x2f')][_0xb7de('0x30')],function(_0x30d5f5){return{'name':_0x30d5f5[_0xb7de('0x31')],'type':_0x30d5f5[_0xb7de('0x32')][_0xb7de('0x33')]};});_0x1ad84a[_0xb7de('0x34')]=_[_0xb7de('0x2e')](_0x4c7fb4,'name');_0x1ad84a[_0xb7de('0x35')]=_[_0xb7de('0x36')](_0x4007b5[_0xb7de('0x35')]);_0x1ad84a[_0xb7de('0x37')]=_[_0xb7de('0x38')](_0x1ad84a[_0xb7de('0x34')],_0x1ad84a[_0xb7de('0x35')]);_0x2c02d8[_0xb7de('0x39')]=_[_0xb7de('0x38')](_0x1ad84a['model'],qs['fields'](_0x4007b5['query'][_0xb7de('0x3a')]));_0x2c02d8['attributes']=_0x2c02d8['attributes'][_0xb7de('0x3b')]?_0x2c02d8[_0xb7de('0x39')]:_0x1ad84a[_0xb7de('0x34')];if(!_0x4007b5[_0xb7de('0x35')][_0xb7de('0x3c')]('nolimit')){_0x2c02d8['limit']=qs[_0xb7de('0x1e')](_0x4007b5['query'][_0xb7de('0x1e')]);_0x2c02d8[_0xb7de('0x1c')]=qs[_0xb7de('0x1c')](_0x4007b5[_0xb7de('0x35')][_0xb7de('0x1c')]);}_0x2c02d8[_0xb7de('0x3d')]=qs[_0xb7de('0x3e')](_0x4007b5['query'][_0xb7de('0x3e')]);_0x2c02d8['where']=qs[_0xb7de('0x37')](_[_0xb7de('0x3f')](_0x4007b5[_0xb7de('0x35')],_0x1ad84a[_0xb7de('0x37')]),_0x4c7fb4);if(_0x4007b5[_0xb7de('0x35')][_0xb7de('0x40')]){_0x2c02d8[_0xb7de('0x41')]=_[_0xb7de('0x42')](_0x2c02d8[_0xb7de('0x41')],{'$or':_[_0xb7de('0x2e')](_0x4c7fb4,function(_0x5c223b){if(_0x5c223b[_0xb7de('0x32')]!==_0xb7de('0x43')){var _0x486f16={};_0x486f16[_0x5c223b[_0xb7de('0x2c')]]={'$like':'%'+_0x4007b5[_0xb7de('0x35')][_0xb7de('0x40')]+'%'};return _0x486f16;}})});}_0x2c02d8=_[_0xb7de('0x42')]({},_0x2c02d8,_0x4007b5['options']);var _0x64d7ff={'where':_0x2c02d8[_0xb7de('0x41')]};return db[_0xb7de('0x2f')][_0xb7de('0x1f')](_0x64d7ff)[_0xb7de('0x28')](function(_0x2d0f9f){_0x4ffe63[_0xb7de('0x1f')]=_0x2d0f9f;if(_0x4007b5[_0xb7de('0x35')]['includeAll']){_0x2c02d8[_0xb7de('0x44')]=[{'all':!![]}];}return db['SugarcrmAccount'][_0xb7de('0x45')](_0x2c02d8);})[_0xb7de('0x28')](function(_0x14743d){_0x4ffe63[_0xb7de('0x46')]=_0x14743d;return _0x4ffe63;})[_0xb7de('0x28')](respondWithFilteredResult(_0x474017,_0x2c02d8))[_0xb7de('0x47')](handleError(_0x474017,null));};exports['show']=function(_0x18fde8,_0x4d60e0){var _0x3cc52e={'raw':![],'where':{'id':_0x18fde8[_0xb7de('0x48')]['id']}},_0x1cab95={};_0x1cab95['model']=_[_0xb7de('0x36')](db[_0xb7de('0x2f')][_0xb7de('0x30')]);_0x1cab95['query']=_[_0xb7de('0x36')](_0x18fde8[_0xb7de('0x35')]);_0x1cab95[_0xb7de('0x37')]=_['intersection'](_0x1cab95[_0xb7de('0x34')],_0x1cab95[_0xb7de('0x35')]);_0x3cc52e[_0xb7de('0x39')]=_[_0xb7de('0x38')](_0x1cab95['model'],qs[_0xb7de('0x3a')](_0x18fde8[_0xb7de('0x35')][_0xb7de('0x3a')]));_0x3cc52e[_0xb7de('0x39')]=_0x3cc52e[_0xb7de('0x39')][_0xb7de('0x3b')]?_0x3cc52e['attributes']:_0x1cab95['model'];if(_0x18fde8[_0xb7de('0x35')][_0xb7de('0x49')]){_0x3cc52e[_0xb7de('0x44')]=[{'all':!![]}];}_0x3cc52e=_[_0xb7de('0x42')]({},_0x3cc52e,_0x18fde8[_0xb7de('0x4a')]);return db['SugarcrmAccount'][_0xb7de('0x4b')](_0x3cc52e)[_0xb7de('0x28')](handleEntityNotFound(_0x4d60e0,null))[_0xb7de('0x28')](respondWithResult(_0x4d60e0,null))[_0xb7de('0x47')](handleError(_0x4d60e0,null));};exports[_0xb7de('0x4c')]=function(_0x997dcb,_0x5c6e4b){return db[_0xb7de('0x2f')][_0xb7de('0x4c')](_0x997dcb[_0xb7de('0x4d')],{})[_0xb7de('0x28')](respondWithResult(_0x5c6e4b,0xc9))[_0xb7de('0x47')](handleError(_0x5c6e4b,null));};exports[_0xb7de('0x27')]=function(_0x22ff48,_0x1e541e){if(_0x22ff48['body']['id']){delete _0x22ff48[_0xb7de('0x4d')]['id'];}return db[_0xb7de('0x2f')][_0xb7de('0x4b')]({'where':{'id':_0x22ff48[_0xb7de('0x48')]['id']}})[_0xb7de('0x28')](handleEntityNotFound(_0x1e541e,null))['then'](saveUpdates(_0x22ff48['body'],null))[_0xb7de('0x28')](respondWithResult(_0x1e541e,null))['catch'](handleError(_0x1e541e,null));};exports['destroy']=function(_0x452cad,_0x2def2d){return db[_0xb7de('0x2f')]['find']({'where':{'id':_0x452cad['params']['id']}})[_0xb7de('0x28')](handleEntityNotFound(_0x2def2d,null))[_0xb7de('0x28')](removeEntity(_0x2def2d,null))[_0xb7de('0x47')](handleError(_0x2def2d,null));};exports['getConfigurations']=function(_0x2b8b97,_0x18eae,_0x1c1821){var _0x29be53={};var _0x5a095b={};var _0x4cbf28;var _0xd52658;return db['SugarcrmAccount']['findOne']({'where':{'id':_0x2b8b97[_0xb7de('0x48')]['id']}})[_0xb7de('0x28')](handleEntityNotFound(_0x18eae,null))[_0xb7de('0x28')](function(_0x2bb19f){if(_0x2bb19f){_0x4cbf28=_0x2bb19f;_0x5a095b[_0xb7de('0x34')]=_[_0xb7de('0x36')](db['SugarcrmConfiguration'][_0xb7de('0x30')]);_0x5a095b[_0xb7de('0x35')]=_[_0xb7de('0x36')](_0x2b8b97['query']);_0x5a095b[_0xb7de('0x37')]=_['intersection'](_0x5a095b['model'],_0x5a095b[_0xb7de('0x35')]);_0x29be53[_0xb7de('0x39')]=_[_0xb7de('0x38')](_0x5a095b['model'],qs[_0xb7de('0x3a')](_0x2b8b97[_0xb7de('0x35')][_0xb7de('0x3a')]));_0x29be53[_0xb7de('0x39')]=_0x29be53[_0xb7de('0x39')][_0xb7de('0x3b')]?_0x29be53[_0xb7de('0x39')]:_0x5a095b[_0xb7de('0x34')];_0x29be53[_0xb7de('0x3d')]=qs[_0xb7de('0x3e')](_0x2b8b97[_0xb7de('0x35')][_0xb7de('0x3e')]);_0x29be53[_0xb7de('0x41')]=qs['filters'](_[_0xb7de('0x3f')](_0x2b8b97[_0xb7de('0x35')],_0x5a095b[_0xb7de('0x37')]));if(_0x2b8b97[_0xb7de('0x35')]['filter']){_0x29be53[_0xb7de('0x41')]=_[_0xb7de('0x42')](_0x29be53[_0xb7de('0x41')],{'$or':_[_0xb7de('0x2e')](_0x29be53[_0xb7de('0x39')],function(_0x1bb2e9){var _0x168666={};_0x168666[_0x1bb2e9]={'$like':'%'+_0x2b8b97[_0xb7de('0x35')][_0xb7de('0x40')]+'%'};return _0x168666;})});}_0x29be53=_[_0xb7de('0x42')]({},_0x29be53,_0x2b8b97[_0xb7de('0x4a')]);return _0x4cbf28[_0xb7de('0x4e')](_0x29be53);}})[_0xb7de('0x28')](function(_0x3dbca9){if(_0x3dbca9){_0xd52658=_0x3dbca9[_0xb7de('0x3b')];if(!_0x2b8b97[_0xb7de('0x35')][_0xb7de('0x3c')](_0xb7de('0x4f'))){_0x29be53[_0xb7de('0x1e')]=qs['limit'](_0x2b8b97[_0xb7de('0x35')][_0xb7de('0x1e')]);_0x29be53[_0xb7de('0x1c')]=qs[_0xb7de('0x1c')](_0x2b8b97[_0xb7de('0x35')]['offset']);}return _0x4cbf28[_0xb7de('0x4e')](_0x29be53);}})['then'](function(_0x199975){if(_0x199975){return _0x199975?{'count':_0xd52658,'rows':_0x199975}:null;}})[_0xb7de('0x28')](respondWithResult(_0x18eae,null))[_0xb7de('0x47')](handleError(_0x18eae,null));};exports[_0xb7de('0x50')]=function(_0x7039d6,_0x2d0f5b,_0x431c93){if(_0x7039d6[_0xb7de('0x4d')]['id']){delete _0x7039d6[_0xb7de('0x4d')]['id'];}return db[_0xb7de('0x2f')][_0xb7de('0x51')]({'where':{'id':_0x7039d6['params']['id']}})['then'](handleEntityNotFound(_0x2d0f5b,null))[_0xb7de('0x28')](function(_0x1257eb){if(_0x1257eb){_0x7039d6['body'][_0xb7de('0x52')]=_0x1257eb['id'];_0x7039d6[_0xb7de('0x4d')][_0xb7de('0x53')]=integrations[_0xb7de('0x54')](_0x7039d6[_0xb7de('0x4d')][_0xb7de('0x55')],_0x7039d6[_0xb7de('0x4d')][_0xb7de('0x32')]);_0x7039d6[_0xb7de('0x4d')]['Descriptions']=integrations[_0xb7de('0x56')](_0x7039d6[_0xb7de('0x4d')][_0xb7de('0x55')],_0x7039d6[_0xb7de('0x4d')][_0xb7de('0x32')]);return db[_0xb7de('0x57')][_0xb7de('0x4c')](_0x7039d6[_0xb7de('0x4d')],{'include':[{'model':db[_0xb7de('0x58')],'as':'Subjects'},{'model':db['SugarcrmField'],'as':_0xb7de('0x59')}]});}return null;})[_0xb7de('0x28')](respondWithResult(_0x2d0f5b,null))[_0xb7de('0x47')](handleError(_0x2d0f5b,null));};exports[_0xb7de('0x5a')]=function(_0x266a83,_0x1c6cbe,_0x4831b9){var _0xff5a41='';var _0x4c81b9=['id',_0xb7de('0x2c'),_0xb7de('0x5b'),_0xb7de('0x5c'),_0xb7de('0x5d'),_0xb7de('0x5e'),_0xb7de('0x5f'),'duration_minutes',_0xb7de('0x60'),_0xb7de('0x61'),_0xb7de('0x62'),'direction'];return db[_0xb7de('0x2f')]['findOne']({'where':{'id':_0x266a83[_0xb7de('0x48')]['id']},'attributes':['id',_0xb7de('0x63'),_0xb7de('0x64'),_0xb7de('0x65')]})[_0xb7de('0x28')](handleEntityNotFound(_0x1c6cbe,null))['then'](function(_0x2f17c6){if(_0x2f17c6){_0xff5a41=_0x2f17c6[_0xb7de('0x65')];var _0x2254dd=_0xff5a41[_0xb7de('0x66')](-0x1);if(_0x2254dd==='/'){_0xff5a41=_0xff5a41[_0xb7de('0x67')](0x0,_0xff5a41[_0xb7de('0x68')](_0x2254dd));}return rp({'method':'POST','uri':util[_0xb7de('0x69')](_0xb7de('0x6a'),_0xff5a41,_0xb7de('0x6b')),'json':!![],'form':{'method':_0xb7de('0x6c'),'input_type':'JSON','response_type':_0xb7de('0x6d'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x2f17c6[_0xb7de('0x63')],'password':_0x2f17c6[_0xb7de('0x64')],'encryption':_0xb7de('0x6e')},'application':_0xb7de('0x6f')})}});}})[_0xb7de('0x28')](function(_0x2be493){if(_0x2be493&&_0x2be493[_0xb7de('0x2c')]!==_0xb7de('0x70')&&_0x2be493[_0xb7de('0x2c')]!==_0xb7de('0x71')){return rp({'method':_0xb7de('0x72'),'uri':util[_0xb7de('0x69')](_0xb7de('0x6a'),_0xff5a41,'/service/v4_1/rest.php'),'json':!![],'form':{'method':_0xb7de('0x73'),'input_type':_0xb7de('0x6d'),'response_type':_0xb7de('0x6d'),'rest_data':JSON['stringify']({'session':_0x2be493['id'],'module_name':_0xb7de('0x74')})}})[_0xb7de('0x28')](function(_0x2fbd68){if(_0x2fbd68){var _0x2d3eb0=_[_0xb7de('0x75')](_0x2fbd68[_0xb7de('0x76')]);_[_0xb7de('0x77')](_0x2d3eb0,function(_0x543f98){return _0x4c81b9[_0xb7de('0x78')](_0x543f98[_0xb7de('0x2c')]);});return{'count':_0x2d3eb0[_0xb7de('0x3b')],'rows':_['map'](_0x2d3eb0,function(_0x2a60a1){return{'id':_0x2a60a1[_0xb7de('0x2c')],'name':_0x2a60a1['label'],'custom':_[_0xb7de('0x79')](_0x2a60a1['name'],'_c')?!![]:![],'options':_0x2a60a1[_0xb7de('0x4a')]?_[_0xb7de('0x2e')](_[_0xb7de('0x75')](_0x2a60a1['options']),function(_0xf982b9){return{'name':_0xf982b9[_0xb7de('0x7a')],'value':_0xf982b9['name']};}):[]};})};}})[_0xb7de('0x28')](respondWithResult(_0x1c6cbe,null))['catch'](function(_0xd2127e){var _0x453c8f=_0x266a83['query']['test']?0x1f4:_0xd2127e[_0xb7de('0x7b')]||0x1f4;logger[_0xb7de('0x2a')](_0xb7de('0x7c'),_0xb7de('0x5a'),_0x453c8f,JSON['stringify'](_0xd2127e));delete _0xd2127e[_0xb7de('0x2c')];if(_0x453c8f===0x191){_0x453c8f=0x190;}_0x1c6cbe[_0xb7de('0x20')](_0x453c8f)[_0xb7de('0x2d')](_0x266a83[_0xb7de('0x35')]['test']?{'message':_0xb7de('0x7d'),'statusCode':_0xd2127e['statusCode']}:_0xd2127e);});}else{var _0x1405cf=0x1f4;_0x1c6cbe[_0xb7de('0x20')](_0x1405cf)[_0xb7de('0x2d')]({'message':_0xb7de('0x7d'),'statusCode':0x190});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb43=['path','rimraf','../../components/integrations/configuration','exports','SugarcrmAccount','lodash','util','../../config/logger','moment'];(function(_0x5abe5a,_0x5747c0){var _0x5abba2=function(_0x36c001){while(--_0x36c001){_0x5abe5a['push'](_0x5abe5a['shift']());}};_0x5abba2(++_0x5747c0);}(_0xeb43,0x149));var _0x3eb4=function(_0x16a637,_0x5eb627){_0x16a637=_0x16a637-0x0;var _0x25126d=_0xeb43[_0x16a637];return _0x25126d;};'use strict';var _=require(_0x3eb4('0x0'));var util=require(_0x3eb4('0x1'));var logger=require(_0x3eb4('0x2'))('api');var moment=require(_0x3eb4('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x3eb4('0x4'));var rimraf=require(_0x3eb4('0x5'));var config=require('../../config/environment');var attributes=require('./intSugarcrmAccount.attributes');var integrations=require(_0x3eb4('0x6'));module[_0x3eb4('0x7')]=function(_0x4efd8a,_0x45b9b8){return _0x4efd8a['define'](_0x3eb4('0x8'),attributes,{'tableName':'int_sugarcrm_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6d5e=['request-promise','path','rimraf','../../config/environment','./intSugarcrmAccount.attributes','../../components/integrations/configuration','define','lodash','util','../../config/logger','api','bluebird'];(function(_0xc3083f,_0x5ac664){var _0x8e45bb=function(_0x466769){while(--_0x466769){_0xc3083f['push'](_0xc3083f['shift']());}};_0x8e45bb(++_0x5ac664);}(_0x6d5e,0x103));var _0xe6d5=function(_0x44516f,_0x5aa94b){_0x44516f=_0x44516f-0x0;var _0x1adf13=_0x6d5e[_0x44516f];return _0x1adf13;};'use strict';var _=require(_0xe6d5('0x0'));var util=require(_0xe6d5('0x1'));var logger=require(_0xe6d5('0x2'))(_0xe6d5('0x3'));var moment=require('moment');var BPromise=require(_0xe6d5('0x4'));var rp=require(_0xe6d5('0x5'));var fs=require('fs');var path=require(_0xe6d5('0x6'));var rimraf=require(_0xe6d5('0x7'));var config=require(_0xe6d5('0x8'));var attributes=require(_0xe6d5('0x9'));var integrations=require(_0xe6d5('0xa'));module['exports']=function(_0x13411d,_0x4c0f87){return _0x13411d[_0xe6d5('0xb')]('SugarcrmAccount',attributes,{'tableName':'int_sugarcrm_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2430=['ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','request','then','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','GetSugarcrmAccount','SugarcrmAccount','findAll','options','raw','attributes','limit','include','map','model','ShowSugarcrmAccount','find','lodash'];(function(_0x336df4,_0x52c1dc){var _0x580d8c=function(_0x2febf1){while(--_0x2febf1){_0x336df4['push'](_0x336df4['shift']());}};_0x580d8c(++_0x52c1dc);}(_0x2430,0x1ef));var _0x0243=function(_0x4bf96c,_0x4d24fd){_0x4bf96c=_0x4bf96c-0x0;var _0x281d09=_0x2430[_0x4bf96c];return _0x281d09;};'use strict';var _=require(_0x0243('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0243('0x1'));var db=require(_0x0243('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x0243('0x3'))('rpc');var config=require(_0x0243('0x4'));var jayson=require(_0x0243('0x5'));var client=jayson[_0x0243('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x46c335,_0x3bf406,_0xf6c532){return new BPromise(function(_0x2cb872,_0x281f46){return client[_0x0243('0x7')](_0x46c335,_0xf6c532)[_0x0243('0x8')](function(_0x282479){logger['info'](_0x0243('0x9'),_0x3bf406,_0x0243('0xa'));logger[_0x0243('0xb')]('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x3bf406,_0x0243('0xa'),JSON[_0x0243('0xc')](_0x282479));if(_0x282479[_0x0243('0xd')]){if(_0x282479['error'][_0x0243('0xe')]===0x1f4){logger[_0x0243('0xd')](_0x0243('0x9'),_0x3bf406,_0x282479['error'][_0x0243('0xf')]);return _0x281f46(_0x282479[_0x0243('0xd')][_0x0243('0xf')]);}logger[_0x0243('0xd')](_0x0243('0x9'),_0x3bf406,_0x282479[_0x0243('0xd')][_0x0243('0xf')]);return _0x2cb872(_0x282479[_0x0243('0xd')][_0x0243('0xf')]);}else{logger[_0x0243('0x10')](_0x0243('0x9'),_0x3bf406,_0x0243('0xa'));_0x2cb872(_0x282479[_0x0243('0x11')]['message']);}})[_0x0243('0x12')](function(_0x1c9525){logger['error']('SugarcrmAccount,\x20%s,\x20%s',_0x3bf406,_0x1c9525);_0x281f46(_0x1c9525);});});}exports[_0x0243('0x13')]=function(_0x1b02c0){var _0x4b351c=this;return new Promise(function(_0x2c8cb5,_0x2f9e42){return db[_0x0243('0x14')][_0x0243('0x15')]({'raw':_0x1b02c0[_0x0243('0x16')]?_0x1b02c0['options'][_0x0243('0x17')]===undefined?!![]:![]:!![],'where':_0x1b02c0[_0x0243('0x16')]?_0x1b02c0[_0x0243('0x16')]['where']||null:null,'attributes':_0x1b02c0[_0x0243('0x16')]?_0x1b02c0[_0x0243('0x16')][_0x0243('0x18')]||null:null,'limit':_0x1b02c0[_0x0243('0x16')]?_0x1b02c0['options'][_0x0243('0x19')]||null:null,'include':_0x1b02c0[_0x0243('0x16')]?_0x1b02c0['options'][_0x0243('0x1a')]?_[_0x0243('0x1b')](_0x1b02c0['options'][_0x0243('0x1a')],function(_0x311a2d){return{'model':db[_0x311a2d['model']],'as':_0x311a2d['as'],'attributes':_0x311a2d['attributes'],'include':_0x311a2d[_0x0243('0x1a')]?_[_0x0243('0x1b')](_0x311a2d[_0x0243('0x1a')],function(_0x56d088){return{'model':db[_0x56d088[_0x0243('0x1c')]],'as':_0x56d088['as'],'attributes':_0x56d088[_0x0243('0x18')],'include':_0x56d088[_0x0243('0x1a')]?_['map'](_0x56d088[_0x0243('0x1a')],function(_0x587dee){return{'model':db[_0x587dee['model']],'as':_0x587dee['as'],'attributes':_0x587dee[_0x0243('0x18')]};}):[]};}):[]};}):[]:[]})[_0x0243('0x8')](function(_0x99b7a6){logger['info'](_0x0243('0x13'),_0x1b02c0);logger[_0x0243('0xb')]('GetSugarcrmAccount',_0x1b02c0,JSON[_0x0243('0xc')](_0x99b7a6));_0x2c8cb5(_0x99b7a6);})[_0x0243('0x12')](function(_0x4bb7de){logger[_0x0243('0xd')](_0x0243('0x13'),_0x4bb7de[_0x0243('0xf')],_0x1b02c0);_0x2f9e42(_0x4b351c[_0x0243('0xd')](0x1f4,_0x4bb7de[_0x0243('0xf')]));});});};exports[_0x0243('0x1d')]=function(_0x345801){var _0x31fcc5=this;return new Promise(function(_0x464150,_0x341124){return db[_0x0243('0x14')][_0x0243('0x1e')]({'raw':_0x345801['options']?_0x345801['options']['raw']===undefined?!![]:![]:!![],'where':_0x345801[_0x0243('0x16')]?_0x345801[_0x0243('0x16')]['where']||null:null,'attributes':_0x345801[_0x0243('0x16')]?_0x345801[_0x0243('0x16')][_0x0243('0x18')]||null:null,'include':_0x345801[_0x0243('0x16')]?_0x345801['options'][_0x0243('0x1a')]?_[_0x0243('0x1b')](_0x345801[_0x0243('0x16')][_0x0243('0x1a')],function(_0xbfa794){return{'model':db[_0xbfa794['model']],'as':_0xbfa794['as'],'attributes':_0xbfa794[_0x0243('0x18')],'include':_0xbfa794[_0x0243('0x1a')]?_[_0x0243('0x1b')](_0xbfa794['include'],function(_0x1690c9){return{'model':db[_0x1690c9[_0x0243('0x1c')]],'as':_0x1690c9['as'],'attributes':_0x1690c9[_0x0243('0x18')],'include':_0x1690c9[_0x0243('0x1a')]?_['map'](_0x1690c9[_0x0243('0x1a')],function(_0x1fdcdf){return{'model':db[_0x1fdcdf['model']],'as':_0x1fdcdf['as'],'attributes':_0x1fdcdf[_0x0243('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2c4ad6){logger[_0x0243('0x10')](_0x0243('0x1d'),_0x345801);logger[_0x0243('0xb')](_0x0243('0x1d'),_0x345801,JSON[_0x0243('0xc')](_0x2c4ad6));_0x464150(_0x2c4ad6);})[_0x0243('0x12')](function(_0x5a8f59){logger[_0x0243('0xd')](_0x0243('0x1d'),_0x5a8f59['message'],_0x345801);_0x341124(_0x31fcc5[_0x0243('0xd')](0x1f4,_0x5a8f59['message']));});});};
\ No newline at end of file
+var _0xf92f=['debug','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','GetSugarcrmAccount','SugarcrmAccount','options','raw','where','attributes','limit','map','include','model','ShowSugarcrmAccount','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent'];(function(_0x392250,_0x25fdb9){var _0x2c5f1a=function(_0x372d69){while(--_0x372d69){_0x392250['push'](_0x392250['shift']());}};_0x2c5f1a(++_0x25fdb9);}(_0xf92f,0x191));var _0xff92=function(_0x37bc54,_0x16a284){_0x37bc54=_0x37bc54-0x0;var _0x3300b4=_0xf92f[_0x37bc54];return _0x3300b4;};'use strict';var _=require('lodash');var util=require(_0xff92('0x0'));var moment=require(_0xff92('0x1'));var BPromise=require(_0xff92('0x2'));var rs=require(_0xff92('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xff92('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xff92('0x5'))(_0xff92('0x6'));var config=require(_0xff92('0x7'));var jayson=require(_0xff92('0x8'));var client=jayson[_0xff92('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x95903b,_0x346faf,_0x46c2c6){return new BPromise(function(_0x1e357c,_0x4dfdd4){return client[_0xff92('0xa')](_0x95903b,_0x46c2c6)[_0xff92('0xb')](function(_0x1b6e5e){logger[_0xff92('0xc')](_0xff92('0xd'),_0x346faf,_0xff92('0xe'));logger[_0xff92('0xf')](_0xff92('0x10'),_0x346faf,_0xff92('0xe'),JSON[_0xff92('0x11')](_0x1b6e5e));if(_0x1b6e5e['error']){if(_0x1b6e5e[_0xff92('0x12')]['code']===0x1f4){logger[_0xff92('0x12')](_0xff92('0xd'),_0x346faf,_0x1b6e5e[_0xff92('0x12')][_0xff92('0x13')]);return _0x4dfdd4(_0x1b6e5e[_0xff92('0x12')][_0xff92('0x13')]);}logger[_0xff92('0x12')]('SugarcrmAccount,\x20%s,\x20%s',_0x346faf,_0x1b6e5e[_0xff92('0x12')][_0xff92('0x13')]);return _0x1e357c(_0x1b6e5e[_0xff92('0x12')][_0xff92('0x13')]);}else{logger[_0xff92('0xc')](_0xff92('0xd'),_0x346faf,_0xff92('0xe'));_0x1e357c(_0x1b6e5e['result'][_0xff92('0x13')]);}})[_0xff92('0x14')](function(_0x53f185){logger['error'](_0xff92('0xd'),_0x346faf,_0x53f185);_0x4dfdd4(_0x53f185);});});}exports[_0xff92('0x15')]=function(_0x183c97){var _0x325b7b=this;return new Promise(function(_0x4f5707,_0x14f1e4){return db[_0xff92('0x16')]['findAll']({'raw':_0x183c97[_0xff92('0x17')]?_0x183c97['options'][_0xff92('0x18')]===undefined?!![]:![]:!![],'where':_0x183c97[_0xff92('0x17')]?_0x183c97['options'][_0xff92('0x19')]||null:null,'attributes':_0x183c97[_0xff92('0x17')]?_0x183c97[_0xff92('0x17')][_0xff92('0x1a')]||null:null,'limit':_0x183c97[_0xff92('0x17')]?_0x183c97['options'][_0xff92('0x1b')]||null:null,'include':_0x183c97[_0xff92('0x17')]?_0x183c97[_0xff92('0x17')]['include']?_[_0xff92('0x1c')](_0x183c97['options']['include'],function(_0x398f3e){return{'model':db[_0x398f3e['model']],'as':_0x398f3e['as'],'attributes':_0x398f3e[_0xff92('0x1a')],'include':_0x398f3e['include']?_[_0xff92('0x1c')](_0x398f3e[_0xff92('0x1d')],function(_0x5ec05d){return{'model':db[_0x5ec05d['model']],'as':_0x5ec05d['as'],'attributes':_0x5ec05d['attributes'],'include':_0x5ec05d[_0xff92('0x1d')]?_['map'](_0x5ec05d[_0xff92('0x1d')],function(_0x165357){return{'model':db[_0x165357[_0xff92('0x1e')]],'as':_0x165357['as'],'attributes':_0x165357['attributes']};}):[]};}):[]};}):[]:[]})[_0xff92('0xb')](function(_0x1ef83b){logger['info'](_0xff92('0x15'),_0x183c97);logger[_0xff92('0xf')](_0xff92('0x15'),_0x183c97,JSON[_0xff92('0x11')](_0x1ef83b));_0x4f5707(_0x1ef83b);})['catch'](function(_0xe3f3db){logger[_0xff92('0x12')]('GetSugarcrmAccount',_0xe3f3db[_0xff92('0x13')],_0x183c97);_0x14f1e4(_0x325b7b['error'](0x1f4,_0xe3f3db['message']));});});};exports[_0xff92('0x1f')]=function(_0x5b32a4){var _0x301180=this;return new Promise(function(_0xc8a035,_0x1e2dab){return db[_0xff92('0x16')]['find']({'raw':_0x5b32a4[_0xff92('0x17')]?_0x5b32a4['options'][_0xff92('0x18')]===undefined?!![]:![]:!![],'where':_0x5b32a4[_0xff92('0x17')]?_0x5b32a4[_0xff92('0x17')][_0xff92('0x19')]||null:null,'attributes':_0x5b32a4[_0xff92('0x17')]?_0x5b32a4[_0xff92('0x17')][_0xff92('0x1a')]||null:null,'include':_0x5b32a4[_0xff92('0x17')]?_0x5b32a4[_0xff92('0x17')][_0xff92('0x1d')]?_[_0xff92('0x1c')](_0x5b32a4[_0xff92('0x17')][_0xff92('0x1d')],function(_0x1b8bf8){return{'model':db[_0x1b8bf8[_0xff92('0x1e')]],'as':_0x1b8bf8['as'],'attributes':_0x1b8bf8[_0xff92('0x1a')],'include':_0x1b8bf8[_0xff92('0x1d')]?_['map'](_0x1b8bf8[_0xff92('0x1d')],function(_0xf55f0){return{'model':db[_0xf55f0[_0xff92('0x1e')]],'as':_0xf55f0['as'],'attributes':_0xf55f0[_0xff92('0x1a')],'include':_0xf55f0['include']?_[_0xff92('0x1c')](_0xf55f0[_0xff92('0x1d')],function(_0x3f1ca5){return{'model':db[_0x3f1ca5[_0xff92('0x1e')]],'as':_0x3f1ca5['as'],'attributes':_0x3f1ca5['attributes']};}):[]};}):[]};}):[]:[]})[_0xff92('0xb')](function(_0x1dca66){logger[_0xff92('0xc')](_0xff92('0x1f'),_0x5b32a4);logger['debug'](_0xff92('0x1f'),_0x5b32a4,JSON[_0xff92('0x11')](_0x1dca66));_0xc8a035(_0x1dca66);})[_0xff92('0x14')](function(_0x2d567f){logger[_0xff92('0x12')](_0xff92('0x1f'),_0x2d567f[_0xff92('0x13')],_0x5b32a4);_0x1e2dab(_0x301180[_0xff92('0x12')](0x1f4,_0x2d567f[_0xff92('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x036e=['create','put','update','destroy','multer','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','/:id','isAuthenticated','getFields','/:id/subjects','getSubjects','getDescriptions'];(function(_0x366fcc,_0x5b5f0d){var _0x30686c=function(_0x309245){while(--_0x309245){_0x366fcc['push'](_0x366fcc['shift']());}};_0x30686c(++_0x5b5f0d);}(_0x036e,0x100));var _0xe036=function(_0x5b4bee,_0x272800){_0x5b4bee=_0x5b4bee-0x0;var _0x34f9f2=_0x036e[_0x5b4bee];return _0x34f9f2;};'use strict';var multer=require(_0xe036('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xe036('0x1'));var express=require(_0xe036('0x2'));var router=express['Router']();var fs_extra=require(_0xe036('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xe036('0x4'));var config=require(_0xe036('0x5'));var controller=require(_0xe036('0x6'));router[_0xe036('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0xe036('0x7')](_0xe036('0x8'),auth[_0xe036('0x9')](),controller['show']);router[_0xe036('0x7')]('/:id/fields',auth[_0xe036('0x9')](),controller[_0xe036('0xa')]);router[_0xe036('0x7')](_0xe036('0xb'),auth['isAuthenticated'](),controller[_0xe036('0xc')]);router['get']('/:id/descriptions',auth['isAuthenticated'](),controller[_0xe036('0xd')]);router['post']('/',auth[_0xe036('0x9')](),controller[_0xe036('0xe')]);router[_0xe036('0xf')](_0xe036('0x8'),auth[_0xe036('0x9')](),controller[_0xe036('0x10')]);router['delete'](_0xe036('0x8'),auth[_0xe036('0x9')](),controller[_0xe036('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x108f=['/:id/descriptions','getDescriptions','post','create','put','update','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./intSugarcrmConfiguration.controller','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/subjects'];(function(_0x3ddce0,_0x22274b){var _0x4ac3ea=function(_0x3e4692){while(--_0x3e4692){_0x3ddce0['push'](_0x3ddce0['shift']());}};_0x4ac3ea(++_0x22274b);}(_0x108f,0x110));var _0xf108=function(_0x3a68c5,_0x339fd2){_0x3a68c5=_0x3a68c5-0x0;var _0x1e93d3=_0x108f[_0x3a68c5];return _0x1e93d3;};'use strict';var multer=require(_0xf108('0x0'));var util=require(_0xf108('0x1'));var path=require(_0xf108('0x2'));var timeout=require(_0xf108('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf108('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xf108('0x5'));var config=require(_0xf108('0x6'));var controller=require(_0xf108('0x7'));router[_0xf108('0x8')]('/',auth['isAuthenticated'](),controller[_0xf108('0x9')]);router['get'](_0xf108('0xa'),auth[_0xf108('0xb')](),controller[_0xf108('0xc')]);router[_0xf108('0x8')](_0xf108('0xd'),auth[_0xf108('0xb')](),controller[_0xf108('0xe')]);router[_0xf108('0x8')](_0xf108('0xf'),auth[_0xf108('0xb')](),controller['getSubjects']);router[_0xf108('0x8')](_0xf108('0x10'),auth[_0xf108('0xb')](),controller[_0xf108('0x11')]);router[_0xf108('0x12')]('/',auth[_0xf108('0xb')](),controller[_0xf108('0x13')]);router[_0xf108('0x14')](_0xf108('0xa'),auth[_0xf108('0xb')](),controller[_0xf108('0x15')]);router['delete']('/:id',auth[_0xf108('0xb')](),controller[_0xf108('0x16')]);module[_0xf108('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fcd=['STRING','sequelize'];(function(_0x5e80a1,_0x5558fa){var _0x2290fc=function(_0x28f829){while(--_0x28f829){_0x5e80a1['push'](_0x5e80a1['shift']());}};_0x2290fc(++_0x5558fa);}(_0x8fcd,0xcf));var _0xd8fc=function(_0x1a7ad3,_0x3a61fc){_0x1a7ad3=_0x1a7ad3-0x0;var _0x38e6f9=_0x8fcd[_0x1a7ad3];return _0x38e6f9;};'use strict';var Sequelize=require(_0xd8fc('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xd8fc('0x1')]}};
\ No newline at end of file
+var _0xc349=['sequelize','exports','STRING'];(function(_0x2a03b3,_0x3328a4){var _0x170e08=function(_0x48232c){while(--_0x48232c){_0x2a03b3['push'](_0x2a03b3['shift']());}};_0x170e08(++_0x3328a4);}(_0xc349,0x141));var _0x9c34=function(_0x587bb4,_0xa1c6bc){_0x587bb4=_0x587bb4-0x0;var _0x12ef96=_0xc349[_0x587bb4];return _0x12ef96;};'use strict';var Sequelize=require(_0x9c34('0x0'));module[_0x9c34('0x1')]={'name':{'type':Sequelize[_0x9c34('0x2')]},'description':{'type':Sequelize[_0x9c34('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37e6=['hasOwnProperty','nolimit','order','sort','where','pick','merge','filter','options','SugarcrmConfiguration','includeAll','include','findAll','catch','show','find','create','body','params','findOne','SugarcrmField','length','getFields','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','update','then','destroy','error','stack','name','send','index','rawAttributes','fieldName','type','key','model','map','keys','query','filters','attributes','intersection','fields'];(function(_0x57f114,_0x5378a1){var _0x3cbc26=function(_0x3bfd40){while(--_0x3bfd40){_0x57f114['push'](_0x57f114['shift']());}};_0x3cbc26(++_0x5378a1);}(_0x37e6,0x161));var _0x637e=function(_0x4621db,_0x33d5f2){_0x4621db=_0x4621db-0x0;var _0x3630dd=_0x37e6[_0x4621db];return _0x3630dd;};'use strict';var emlformat=require(_0x637e('0x0'));var rimraf=require(_0x637e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x637e('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x637e('0x3'));var Mustache=require(_0x637e('0x4'));var util=require(_0x637e('0x5'));var path=require(_0x637e('0x6'));var sox=require(_0x637e('0x7'));var csv=require(_0x637e('0x8'));var ejs=require(_0x637e('0x9'));var fs=require('fs');var fs_extra=require(_0x637e('0xa'));var _=require(_0x637e('0xb'));var squel=require(_0x637e('0xc'));var crypto=require(_0x637e('0xd'));var jsforce=require(_0x637e('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x637e('0x8'));var querystring=require(_0x637e('0xf'));var Papa=require(_0x637e('0x10'));var Redis=require('ioredis');var authService=require(_0x637e('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x637e('0x12'));var hardwareService=require(_0x637e('0x13'));var logger=require(_0x637e('0x14'))(_0x637e('0x15'));var utils=require(_0x637e('0x16'));var config=require(_0x637e('0x17'));var licenseUtil=require(_0x637e('0x18'));var db=require(_0x637e('0x19'))['db'];function respondWithStatusCode(_0x564cfa,_0x429ecc){_0x429ecc=_0x429ecc||0xcc;return function(_0x1ba7f7){if(_0x1ba7f7){return _0x564cfa[_0x637e('0x1a')](_0x429ecc);}return _0x564cfa[_0x637e('0x1b')](_0x429ecc)[_0x637e('0x1c')]();};}function respondWithResult(_0x5601ac,_0x2efe38){_0x2efe38=_0x2efe38||0xc8;return function(_0x56681a){if(_0x56681a){return _0x5601ac['status'](_0x2efe38)[_0x637e('0x1d')](_0x56681a);}};}function respondWithFilteredResult(_0x265a8a,_0x1af1cf){return function(_0x18d4ba){if(_0x18d4ba){var _0x1845f6=typeof _0x1af1cf['offset']===_0x637e('0x1e')&&typeof _0x1af1cf[_0x637e('0x1f')]===_0x637e('0x1e');var _0x1ab5cb=_0x18d4ba[_0x637e('0x20')];var _0x1dbabf=_0x1845f6?0x0:_0x1af1cf['offset'];var _0x5eba22=_0x1845f6?_0x18d4ba[_0x637e('0x20')]:_0x1af1cf[_0x637e('0x21')]+_0x1af1cf['limit'];var _0x4334be;if(_0x5eba22>=_0x1ab5cb){_0x5eba22=_0x1ab5cb;_0x4334be=0xc8;}else{_0x4334be=0xce;}_0x265a8a[_0x637e('0x1b')](_0x4334be);return _0x265a8a[_0x637e('0x22')]('Content-Range',_0x1dbabf+'-'+_0x5eba22+'/'+_0x1ab5cb)['json'](_0x18d4ba);}return null;};}function patchUpdates(_0x484dee){return function(_0x582110){try{jsonpatch[_0x637e('0x23')](_0x582110,_0x484dee,!![]);}catch(_0x2e563c){return BPromise[_0x637e('0x24')](_0x2e563c);}return _0x582110['save']();};}function saveUpdates(_0x22a67a,_0x2bb10c){return function(_0x4e3656){if(_0x4e3656){return _0x4e3656[_0x637e('0x25')](_0x22a67a)[_0x637e('0x26')](function(_0x2d6daf){return _0x2d6daf;});}return null;};}function removeEntity(_0x45aa78,_0xc90f02){return function(_0x3ea6eb){if(_0x3ea6eb){return _0x3ea6eb[_0x637e('0x27')]()['then'](function(){_0x45aa78[_0x637e('0x1b')](0xcc)[_0x637e('0x1c')]();});}};}function handleEntityNotFound(_0x4430e2,_0x5f3856){return function(_0x1e63ff){if(!_0x1e63ff){_0x4430e2['sendStatus'](0x194);}return _0x1e63ff;};}function handleError(_0x16269c,_0x5a3907){_0x5a3907=_0x5a3907||0x1f4;return function(_0x522fc){logger[_0x637e('0x28')](_0x522fc[_0x637e('0x29')]);if(_0x522fc['name']){delete _0x522fc[_0x637e('0x2a')];}_0x16269c[_0x637e('0x1b')](_0x5a3907)[_0x637e('0x2b')](_0x522fc);};}exports[_0x637e('0x2c')]=function(_0x4ee1ff,_0x7df825){var _0x5d7dc1={},_0x205c3e={},_0x10984d={'count':0x0,'rows':[]};var _0x1b956d=_['map'](db['SugarcrmConfiguration'][_0x637e('0x2d')],function(_0x2ecf60){return{'name':_0x2ecf60[_0x637e('0x2e')],'type':_0x2ecf60[_0x637e('0x2f')][_0x637e('0x30')]};});_0x205c3e[_0x637e('0x31')]=_[_0x637e('0x32')](_0x1b956d,_0x637e('0x2a'));_0x205c3e['query']=_[_0x637e('0x33')](_0x4ee1ff[_0x637e('0x34')]);_0x205c3e[_0x637e('0x35')]=_['intersection'](_0x205c3e[_0x637e('0x31')],_0x205c3e[_0x637e('0x34')]);_0x5d7dc1[_0x637e('0x36')]=_[_0x637e('0x37')](_0x205c3e[_0x637e('0x31')],qs[_0x637e('0x38')](_0x4ee1ff['query'][_0x637e('0x38')]));_0x5d7dc1[_0x637e('0x36')]=_0x5d7dc1['attributes']['length']?_0x5d7dc1[_0x637e('0x36')]:_0x205c3e[_0x637e('0x31')];if(!_0x4ee1ff[_0x637e('0x34')][_0x637e('0x39')](_0x637e('0x3a'))){_0x5d7dc1[_0x637e('0x1f')]=qs[_0x637e('0x1f')](_0x4ee1ff[_0x637e('0x34')][_0x637e('0x1f')]);_0x5d7dc1[_0x637e('0x21')]=qs[_0x637e('0x21')](_0x4ee1ff[_0x637e('0x34')][_0x637e('0x21')]);}_0x5d7dc1[_0x637e('0x3b')]=qs[_0x637e('0x3c')](_0x4ee1ff[_0x637e('0x34')][_0x637e('0x3c')]);_0x5d7dc1[_0x637e('0x3d')]=qs[_0x637e('0x35')](_[_0x637e('0x3e')](_0x4ee1ff[_0x637e('0x34')],_0x205c3e[_0x637e('0x35')]),_0x1b956d);if(_0x4ee1ff[_0x637e('0x34')]['filter']){_0x5d7dc1[_0x637e('0x3d')]=_[_0x637e('0x3f')](_0x5d7dc1[_0x637e('0x3d')],{'$or':_[_0x637e('0x32')](_0x1b956d,function(_0x21892b){if(_0x21892b[_0x637e('0x2f')]!=='VIRTUAL'){var _0x198e07={};_0x198e07[_0x21892b[_0x637e('0x2a')]]={'$like':'%'+_0x4ee1ff[_0x637e('0x34')][_0x637e('0x40')]+'%'};return _0x198e07;}})});}_0x5d7dc1=_['merge']({},_0x5d7dc1,_0x4ee1ff[_0x637e('0x41')]);var _0x4b4189={'where':_0x5d7dc1['where']};return db[_0x637e('0x42')][_0x637e('0x20')](_0x4b4189)[_0x637e('0x26')](function(_0x32f963){_0x10984d['count']=_0x32f963;if(_0x4ee1ff['query'][_0x637e('0x43')]){_0x5d7dc1[_0x637e('0x44')]=[{'all':!![]}];}return db[_0x637e('0x42')][_0x637e('0x45')](_0x5d7dc1);})['then'](function(_0x5b566d){_0x10984d['rows']=_0x5b566d;return _0x10984d;})[_0x637e('0x26')](respondWithFilteredResult(_0x7df825,_0x5d7dc1))[_0x637e('0x46')](handleError(_0x7df825,null));};exports[_0x637e('0x47')]=function(_0x49bc84,_0x2eff32){var _0x47ab93={'raw':![],'where':{'id':_0x49bc84['params']['id']}},_0x5c7fd7={};_0x5c7fd7[_0x637e('0x31')]=_[_0x637e('0x33')](db['SugarcrmConfiguration']['rawAttributes']);_0x5c7fd7['query']=_[_0x637e('0x33')](_0x49bc84[_0x637e('0x34')]);_0x5c7fd7['filters']=_[_0x637e('0x37')](_0x5c7fd7['model'],_0x5c7fd7[_0x637e('0x34')]);_0x47ab93[_0x637e('0x36')]=_[_0x637e('0x37')](_0x5c7fd7['model'],qs[_0x637e('0x38')](_0x49bc84[_0x637e('0x34')][_0x637e('0x38')]));_0x47ab93[_0x637e('0x36')]=_0x47ab93['attributes']['length']?_0x47ab93[_0x637e('0x36')]:_0x5c7fd7[_0x637e('0x31')];if(_0x49bc84['query']['includeAll']){_0x47ab93[_0x637e('0x44')]=[{'all':!![]}];}_0x47ab93=_['merge']({},_0x47ab93,_0x49bc84[_0x637e('0x41')]);return db[_0x637e('0x42')][_0x637e('0x48')](_0x47ab93)[_0x637e('0x26')](handleEntityNotFound(_0x2eff32,null))[_0x637e('0x26')](respondWithResult(_0x2eff32,null))[_0x637e('0x46')](handleError(_0x2eff32,null));};exports[_0x637e('0x49')]=function(_0x2a55a6,_0x2b4ce4){return db[_0x637e('0x42')][_0x637e('0x49')](_0x2a55a6['body'],{})['then'](respondWithResult(_0x2b4ce4,0xc9))[_0x637e('0x46')](handleError(_0x2b4ce4,null));};exports[_0x637e('0x25')]=function(_0x3ec5a8,_0x62f9bf){if(_0x3ec5a8[_0x637e('0x4a')]['id']){delete _0x3ec5a8['body']['id'];}return db[_0x637e('0x42')]['find']({'where':{'id':_0x3ec5a8[_0x637e('0x4b')]['id']}})['then'](handleEntityNotFound(_0x62f9bf,null))[_0x637e('0x26')](saveUpdates(_0x3ec5a8['body'],null))[_0x637e('0x26')](respondWithResult(_0x62f9bf,null))[_0x637e('0x46')](handleError(_0x62f9bf,null));};exports[_0x637e('0x27')]=function(_0xa0a580,_0xa2dafc){return db[_0x637e('0x42')][_0x637e('0x48')]({'where':{'id':_0xa0a580[_0x637e('0x4b')]['id']}})[_0x637e('0x26')](handleEntityNotFound(_0xa2dafc,null))[_0x637e('0x26')](removeEntity(_0xa2dafc,null))[_0x637e('0x46')](handleError(_0xa2dafc,null));};exports['getFields']=function(_0x325c5f,_0x232ebb,_0x4e0dec){var _0x59c323={};var _0x105053={};var _0x3f7e25;var _0x3ae4fd;return db[_0x637e('0x42')][_0x637e('0x4c')]({'where':{'id':_0x325c5f['params']['id']}})['then'](handleEntityNotFound(_0x232ebb,null))[_0x637e('0x26')](function(_0xe88c89){if(_0xe88c89){_0x3f7e25=_0xe88c89;_0x105053[_0x637e('0x31')]=_[_0x637e('0x33')](db[_0x637e('0x4d')][_0x637e('0x2d')]);_0x105053[_0x637e('0x34')]=_[_0x637e('0x33')](_0x325c5f['query']);_0x105053[_0x637e('0x35')]=_[_0x637e('0x37')](_0x105053[_0x637e('0x31')],_0x105053['query']);_0x59c323[_0x637e('0x36')]=_[_0x637e('0x37')](_0x105053['model'],qs['fields'](_0x325c5f[_0x637e('0x34')]['fields']));_0x59c323[_0x637e('0x36')]=_0x59c323[_0x637e('0x36')][_0x637e('0x4e')]?_0x59c323[_0x637e('0x36')]:_0x105053[_0x637e('0x31')];_0x59c323['order']=qs[_0x637e('0x3c')](_0x325c5f[_0x637e('0x34')]['sort']);_0x59c323[_0x637e('0x3d')]=qs[_0x637e('0x35')](_[_0x637e('0x3e')](_0x325c5f['query'],_0x105053[_0x637e('0x35')]));if(_0x325c5f[_0x637e('0x34')][_0x637e('0x40')]){_0x59c323[_0x637e('0x3d')]=_[_0x637e('0x3f')](_0x59c323['where'],{'$or':_[_0x637e('0x32')](_0x59c323['attributes'],function(_0x5cafbc){var _0x21497e={};_0x21497e[_0x5cafbc]={'$like':'%'+_0x325c5f[_0x637e('0x34')]['filter']+'%'};return _0x21497e;})});}_0x59c323=_[_0x637e('0x3f')]({},_0x59c323,_0x325c5f[_0x637e('0x41')]);return _0x3f7e25[_0x637e('0x4f')](_0x59c323);}})[_0x637e('0x26')](function(_0x3410dc){if(_0x3410dc){_0x3ae4fd=_0x3410dc[_0x637e('0x4e')];if(!_0x325c5f[_0x637e('0x34')][_0x637e('0x39')]('nolimit')){_0x59c323['limit']=qs[_0x637e('0x1f')](_0x325c5f[_0x637e('0x34')]['limit']);_0x59c323['offset']=qs['offset'](_0x325c5f[_0x637e('0x34')][_0x637e('0x21')]);}return _0x3f7e25[_0x637e('0x4f')](_0x59c323);}})[_0x637e('0x26')](function(_0x596893){if(_0x596893){return _0x596893?{'count':_0x3ae4fd,'rows':_0x596893}:null;}})[_0x637e('0x26')](respondWithResult(_0x232ebb,null))[_0x637e('0x46')](handleError(_0x232ebb,null));};exports[_0x637e('0x50')]=function(_0x6e75d,_0x5977bf,_0x4eee2a){var _0x5caf90={};var _0x32e7da={};var _0x3034df;var _0x29f750;return db[_0x637e('0x42')][_0x637e('0x4c')]({'where':{'id':_0x6e75d['params']['id']}})[_0x637e('0x26')](handleEntityNotFound(_0x5977bf,null))[_0x637e('0x26')](function(_0x8c5314){if(_0x8c5314){_0x3034df=_0x8c5314;_0x32e7da[_0x637e('0x31')]=_[_0x637e('0x33')](db['SugarcrmField'][_0x637e('0x2d')]);_0x32e7da[_0x637e('0x34')]=_[_0x637e('0x33')](_0x6e75d[_0x637e('0x34')]);_0x32e7da[_0x637e('0x35')]=_['intersection'](_0x32e7da[_0x637e('0x31')],_0x32e7da['query']);_0x5caf90[_0x637e('0x36')]=_[_0x637e('0x37')](_0x32e7da[_0x637e('0x31')],qs[_0x637e('0x38')](_0x6e75d['query'][_0x637e('0x38')]));_0x5caf90['attributes']=_0x5caf90[_0x637e('0x36')][_0x637e('0x4e')]?_0x5caf90['attributes']:_0x32e7da[_0x637e('0x31')];_0x5caf90[_0x637e('0x3b')]=qs[_0x637e('0x3c')](_0x6e75d[_0x637e('0x34')][_0x637e('0x3c')]);_0x5caf90[_0x637e('0x3d')]=qs[_0x637e('0x35')](_[_0x637e('0x3e')](_0x6e75d[_0x637e('0x34')],_0x32e7da[_0x637e('0x35')]));if(_0x6e75d[_0x637e('0x34')][_0x637e('0x40')]){_0x5caf90[_0x637e('0x3d')]=_[_0x637e('0x3f')](_0x5caf90[_0x637e('0x3d')],{'$or':_['map'](_0x5caf90[_0x637e('0x36')],function(_0x127fa7){var _0x30a803={};_0x30a803[_0x127fa7]={'$like':'%'+_0x6e75d[_0x637e('0x34')][_0x637e('0x40')]+'%'};return _0x30a803;})});}_0x5caf90=_[_0x637e('0x3f')]({},_0x5caf90,_0x6e75d[_0x637e('0x41')]);return _0x3034df[_0x637e('0x50')](_0x5caf90);}})[_0x637e('0x26')](function(_0x25274f){if(_0x25274f){_0x29f750=_0x25274f[_0x637e('0x4e')];if(!_0x6e75d[_0x637e('0x34')][_0x637e('0x39')](_0x637e('0x3a'))){_0x5caf90[_0x637e('0x1f')]=qs[_0x637e('0x1f')](_0x6e75d['query'][_0x637e('0x1f')]);_0x5caf90[_0x637e('0x21')]=qs[_0x637e('0x21')](_0x6e75d[_0x637e('0x34')][_0x637e('0x21')]);}return _0x3034df[_0x637e('0x50')](_0x5caf90);}})[_0x637e('0x26')](function(_0x2ea61d){if(_0x2ea61d){return _0x2ea61d?{'count':_0x29f750,'rows':_0x2ea61d}:null;}})[_0x637e('0x26')](respondWithResult(_0x5977bf,null))['catch'](handleError(_0x5977bf,null));};exports[_0x637e('0x51')]=function(_0x17d28a,_0x423e03,_0x20d886){var _0x1f35f2={};var _0x5222c0={};var _0x5db275;var _0x4bb5f0;return db['SugarcrmConfiguration'][_0x637e('0x4c')]({'where':{'id':_0x17d28a[_0x637e('0x4b')]['id']}})[_0x637e('0x26')](handleEntityNotFound(_0x423e03,null))[_0x637e('0x26')](function(_0x2ae5a9){if(_0x2ae5a9){_0x5db275=_0x2ae5a9;_0x5222c0[_0x637e('0x31')]=_['keys'](db['SugarcrmField'][_0x637e('0x2d')]);_0x5222c0[_0x637e('0x34')]=_[_0x637e('0x33')](_0x17d28a[_0x637e('0x34')]);_0x5222c0[_0x637e('0x35')]=_[_0x637e('0x37')](_0x5222c0[_0x637e('0x31')],_0x5222c0[_0x637e('0x34')]);_0x1f35f2[_0x637e('0x36')]=_[_0x637e('0x37')](_0x5222c0['model'],qs[_0x637e('0x38')](_0x17d28a[_0x637e('0x34')]['fields']));_0x1f35f2[_0x637e('0x36')]=_0x1f35f2[_0x637e('0x36')][_0x637e('0x4e')]?_0x1f35f2[_0x637e('0x36')]:_0x5222c0[_0x637e('0x31')];_0x1f35f2['order']=qs['sort'](_0x17d28a[_0x637e('0x34')][_0x637e('0x3c')]);_0x1f35f2[_0x637e('0x3d')]=qs['filters'](_[_0x637e('0x3e')](_0x17d28a[_0x637e('0x34')],_0x5222c0[_0x637e('0x35')]));if(_0x17d28a['query'][_0x637e('0x40')]){_0x1f35f2[_0x637e('0x3d')]=_['merge'](_0x1f35f2[_0x637e('0x3d')],{'$or':_[_0x637e('0x32')](_0x1f35f2[_0x637e('0x36')],function(_0x5146bd){var _0x4bea99={};_0x4bea99[_0x5146bd]={'$like':'%'+_0x17d28a['query'][_0x637e('0x40')]+'%'};return _0x4bea99;})});}_0x1f35f2=_[_0x637e('0x3f')]({},_0x1f35f2,_0x17d28a[_0x637e('0x41')]);return _0x5db275['getDescriptions'](_0x1f35f2);}})[_0x637e('0x26')](function(_0x1942c7){if(_0x1942c7){_0x4bb5f0=_0x1942c7[_0x637e('0x4e')];if(!_0x17d28a[_0x637e('0x34')][_0x637e('0x39')](_0x637e('0x3a'))){_0x1f35f2['limit']=qs[_0x637e('0x1f')](_0x17d28a['query'][_0x637e('0x1f')]);_0x1f35f2[_0x637e('0x21')]=qs[_0x637e('0x21')](_0x17d28a['query'][_0x637e('0x21')]);}return _0x5db275[_0x637e('0x51')](_0x1f35f2);}})['then'](function(_0x28191d){if(_0x28191d){return _0x28191d?{'count':_0x4bb5f0,'rows':_0x28191d}:null;}})['then'](respondWithResult(_0x423e03,null))[_0x637e('0x46')](handleError(_0x423e03,null));};
\ No newline at end of file
+var _0x8968=['order','pick','getSubjects','getDescriptions','SugarcrmField','rimraf','fast-json-patch','request-promise','moment','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','end','status','offset','undefined','count','limit','set','apply','reject','save','update','destroy','then','error','stack','name','send','SugarcrmConfiguration','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','getFields','findOne'];(function(_0x5de237,_0x2058e8){var _0x3b3d4d=function(_0x3debe1){while(--_0x3debe1){_0x5de237['push'](_0x5de237['shift']());}};_0x3b3d4d(++_0x2058e8);}(_0x8968,0xe6));var _0x8896=function(_0x484e36,_0x4482d8){_0x484e36=_0x484e36-0x0;var _0xafc85d=_0x8968[_0x484e36];return _0xafc85d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8896('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8896('0x1'));var rp=require(_0x8896('0x2'));var moment=require(_0x8896('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x8896('0x4'));var path=require('path');var sox=require(_0x8896('0x5'));var csv=require(_0x8896('0x6'));var ejs=require(_0x8896('0x7'));var fs=require('fs');var fs_extra=require(_0x8896('0x8'));var _=require(_0x8896('0x9'));var squel=require(_0x8896('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x8896('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x8896('0xc'));var Redis=require(_0x8896('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x8896('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8896('0xf'));var logger=require(_0x8896('0x10'))(_0x8896('0x11'));var utils=require('../../config/utils');var config=require(_0x8896('0x12'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3fcb7e,_0x49539f){_0x49539f=_0x49539f||0xcc;return function(_0x3077af){if(_0x3077af){return _0x3fcb7e[_0x8896('0x13')](_0x49539f);}return _0x3fcb7e['status'](_0x49539f)[_0x8896('0x14')]();};}function respondWithResult(_0x2d1e77,_0x449d7a){_0x449d7a=_0x449d7a||0xc8;return function(_0x497cde){if(_0x497cde){return _0x2d1e77[_0x8896('0x15')](_0x449d7a)['json'](_0x497cde);}};}function respondWithFilteredResult(_0x1bd03e,_0x279542){return function(_0x3f757c){if(_0x3f757c){var _0x14029f=typeof _0x279542[_0x8896('0x16')]===_0x8896('0x17')&&typeof _0x279542['limit']===_0x8896('0x17');var _0x2d16c7=_0x3f757c[_0x8896('0x18')];var _0x538a3a=_0x14029f?0x0:_0x279542[_0x8896('0x16')];var _0x4041ce=_0x14029f?_0x3f757c[_0x8896('0x18')]:_0x279542[_0x8896('0x16')]+_0x279542[_0x8896('0x19')];var _0x267478;if(_0x4041ce>=_0x2d16c7){_0x4041ce=_0x2d16c7;_0x267478=0xc8;}else{_0x267478=0xce;}_0x1bd03e[_0x8896('0x15')](_0x267478);return _0x1bd03e[_0x8896('0x1a')]('Content-Range',_0x538a3a+'-'+_0x4041ce+'/'+_0x2d16c7)['json'](_0x3f757c);}return null;};}function patchUpdates(_0x79ef68){return function(_0x1b1668){try{jsonpatch[_0x8896('0x1b')](_0x1b1668,_0x79ef68,!![]);}catch(_0x21b03c){return BPromise[_0x8896('0x1c')](_0x21b03c);}return _0x1b1668[_0x8896('0x1d')]();};}function saveUpdates(_0xa8eda6,_0x5bbc2b){return function(_0x504f7c){if(_0x504f7c){return _0x504f7c[_0x8896('0x1e')](_0xa8eda6)['then'](function(_0x2abb66){return _0x2abb66;});}return null;};}function removeEntity(_0x3eed47,_0xd9027b){return function(_0x50d2f5){if(_0x50d2f5){return _0x50d2f5[_0x8896('0x1f')]()[_0x8896('0x20')](function(){_0x3eed47['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x111a08,_0x305194){return function(_0x44375b){if(!_0x44375b){_0x111a08['sendStatus'](0x194);}return _0x44375b;};}function handleError(_0x77e603,_0x226485){_0x226485=_0x226485||0x1f4;return function(_0x548617){logger[_0x8896('0x21')](_0x548617[_0x8896('0x22')]);if(_0x548617[_0x8896('0x23')]){delete _0x548617[_0x8896('0x23')];}_0x77e603[_0x8896('0x15')](_0x226485)[_0x8896('0x24')](_0x548617);};}exports['index']=function(_0x3d1923,_0x3f785f){var _0x4627e8={},_0x12e3c5={},_0x1a7ccd={'count':0x0,'rows':[]};var _0x25b7d8=_['map'](db[_0x8896('0x25')][_0x8896('0x26')],function(_0x3bb729){return{'name':_0x3bb729[_0x8896('0x27')],'type':_0x3bb729[_0x8896('0x28')]['key']};});_0x12e3c5['model']=_[_0x8896('0x29')](_0x25b7d8,'name');_0x12e3c5[_0x8896('0x2a')]=_[_0x8896('0x2b')](_0x3d1923[_0x8896('0x2a')]);_0x12e3c5[_0x8896('0x2c')]=_[_0x8896('0x2d')](_0x12e3c5[_0x8896('0x2e')],_0x12e3c5['query']);_0x4627e8[_0x8896('0x2f')]=_[_0x8896('0x2d')](_0x12e3c5[_0x8896('0x2e')],qs[_0x8896('0x30')](_0x3d1923['query'][_0x8896('0x30')]));_0x4627e8[_0x8896('0x2f')]=_0x4627e8[_0x8896('0x2f')][_0x8896('0x31')]?_0x4627e8[_0x8896('0x2f')]:_0x12e3c5[_0x8896('0x2e')];if(!_0x3d1923[_0x8896('0x2a')][_0x8896('0x32')](_0x8896('0x33'))){_0x4627e8['limit']=qs[_0x8896('0x19')](_0x3d1923[_0x8896('0x2a')][_0x8896('0x19')]);_0x4627e8[_0x8896('0x16')]=qs[_0x8896('0x16')](_0x3d1923[_0x8896('0x2a')][_0x8896('0x16')]);}_0x4627e8['order']=qs[_0x8896('0x34')](_0x3d1923['query'][_0x8896('0x34')]);_0x4627e8[_0x8896('0x35')]=qs[_0x8896('0x2c')](_['pick'](_0x3d1923[_0x8896('0x2a')],_0x12e3c5[_0x8896('0x2c')]),_0x25b7d8);if(_0x3d1923[_0x8896('0x2a')][_0x8896('0x36')]){_0x4627e8['where']=_[_0x8896('0x37')](_0x4627e8['where'],{'$or':_['map'](_0x25b7d8,function(_0x4144bd){if(_0x4144bd[_0x8896('0x28')]!==_0x8896('0x38')){var _0x7b0364={};_0x7b0364[_0x4144bd[_0x8896('0x23')]]={'$like':'%'+_0x3d1923['query'][_0x8896('0x36')]+'%'};return _0x7b0364;}})});}_0x4627e8=_[_0x8896('0x37')]({},_0x4627e8,_0x3d1923[_0x8896('0x39')]);var _0x1946d6={'where':_0x4627e8['where']};return db[_0x8896('0x25')][_0x8896('0x18')](_0x1946d6)[_0x8896('0x20')](function(_0x5ea791){_0x1a7ccd[_0x8896('0x18')]=_0x5ea791;if(_0x3d1923[_0x8896('0x2a')][_0x8896('0x3a')]){_0x4627e8[_0x8896('0x3b')]=[{'all':!![]}];}return db['SugarcrmConfiguration'][_0x8896('0x3c')](_0x4627e8);})[_0x8896('0x20')](function(_0x48ef00){_0x1a7ccd[_0x8896('0x3d')]=_0x48ef00;return _0x1a7ccd;})[_0x8896('0x20')](respondWithFilteredResult(_0x3f785f,_0x4627e8))[_0x8896('0x3e')](handleError(_0x3f785f,null));};exports[_0x8896('0x3f')]=function(_0x40837e,_0x5cd6e8){var _0x466238={'raw':![],'where':{'id':_0x40837e[_0x8896('0x40')]['id']}},_0x137e41={};_0x137e41[_0x8896('0x2e')]=_[_0x8896('0x2b')](db[_0x8896('0x25')][_0x8896('0x26')]);_0x137e41[_0x8896('0x2a')]=_[_0x8896('0x2b')](_0x40837e[_0x8896('0x2a')]);_0x137e41[_0x8896('0x2c')]=_[_0x8896('0x2d')](_0x137e41['model'],_0x137e41[_0x8896('0x2a')]);_0x466238[_0x8896('0x2f')]=_[_0x8896('0x2d')](_0x137e41[_0x8896('0x2e')],qs[_0x8896('0x30')](_0x40837e['query'][_0x8896('0x30')]));_0x466238[_0x8896('0x2f')]=_0x466238['attributes'][_0x8896('0x31')]?_0x466238[_0x8896('0x2f')]:_0x137e41[_0x8896('0x2e')];if(_0x40837e[_0x8896('0x2a')][_0x8896('0x3a')]){_0x466238[_0x8896('0x3b')]=[{'all':!![]}];}_0x466238=_[_0x8896('0x37')]({},_0x466238,_0x40837e[_0x8896('0x39')]);return db[_0x8896('0x25')]['find'](_0x466238)[_0x8896('0x20')](handleEntityNotFound(_0x5cd6e8,null))[_0x8896('0x20')](respondWithResult(_0x5cd6e8,null))[_0x8896('0x3e')](handleError(_0x5cd6e8,null));};exports[_0x8896('0x41')]=function(_0x6e025b,_0x752a5a){return db[_0x8896('0x25')][_0x8896('0x41')](_0x6e025b[_0x8896('0x42')],{})[_0x8896('0x20')](respondWithResult(_0x752a5a,0xc9))[_0x8896('0x3e')](handleError(_0x752a5a,null));};exports[_0x8896('0x1e')]=function(_0x39be0a,_0x1e60b9){if(_0x39be0a[_0x8896('0x42')]['id']){delete _0x39be0a[_0x8896('0x42')]['id'];}return db[_0x8896('0x25')][_0x8896('0x43')]({'where':{'id':_0x39be0a['params']['id']}})['then'](handleEntityNotFound(_0x1e60b9,null))['then'](saveUpdates(_0x39be0a[_0x8896('0x42')],null))[_0x8896('0x20')](respondWithResult(_0x1e60b9,null))[_0x8896('0x3e')](handleError(_0x1e60b9,null));};exports[_0x8896('0x1f')]=function(_0x558ace,_0x52edb4){return db[_0x8896('0x25')][_0x8896('0x43')]({'where':{'id':_0x558ace[_0x8896('0x40')]['id']}})['then'](handleEntityNotFound(_0x52edb4,null))[_0x8896('0x20')](removeEntity(_0x52edb4,null))[_0x8896('0x3e')](handleError(_0x52edb4,null));};exports[_0x8896('0x44')]=function(_0x3ea7ed,_0x1d206b,_0xef1da7){var _0x87ea78={};var _0x43593e={};var _0x439608;var _0x330512;return db[_0x8896('0x25')][_0x8896('0x45')]({'where':{'id':_0x3ea7ed[_0x8896('0x40')]['id']}})[_0x8896('0x20')](handleEntityNotFound(_0x1d206b,null))[_0x8896('0x20')](function(_0xf6cd0){if(_0xf6cd0){_0x439608=_0xf6cd0;_0x43593e[_0x8896('0x2e')]=_[_0x8896('0x2b')](db['SugarcrmField'][_0x8896('0x26')]);_0x43593e[_0x8896('0x2a')]=_['keys'](_0x3ea7ed[_0x8896('0x2a')]);_0x43593e['filters']=_[_0x8896('0x2d')](_0x43593e[_0x8896('0x2e')],_0x43593e[_0x8896('0x2a')]);_0x87ea78[_0x8896('0x2f')]=_['intersection'](_0x43593e[_0x8896('0x2e')],qs[_0x8896('0x30')](_0x3ea7ed[_0x8896('0x2a')][_0x8896('0x30')]));_0x87ea78[_0x8896('0x2f')]=_0x87ea78['attributes'][_0x8896('0x31')]?_0x87ea78[_0x8896('0x2f')]:_0x43593e['model'];_0x87ea78[_0x8896('0x46')]=qs[_0x8896('0x34')](_0x3ea7ed[_0x8896('0x2a')]['sort']);_0x87ea78[_0x8896('0x35')]=qs[_0x8896('0x2c')](_[_0x8896('0x47')](_0x3ea7ed[_0x8896('0x2a')],_0x43593e['filters']));if(_0x3ea7ed[_0x8896('0x2a')]['filter']){_0x87ea78[_0x8896('0x35')]=_[_0x8896('0x37')](_0x87ea78['where'],{'$or':_[_0x8896('0x29')](_0x87ea78[_0x8896('0x2f')],function(_0x582bc9){var _0xbd45cd={};_0xbd45cd[_0x582bc9]={'$like':'%'+_0x3ea7ed[_0x8896('0x2a')][_0x8896('0x36')]+'%'};return _0xbd45cd;})});}_0x87ea78=_[_0x8896('0x37')]({},_0x87ea78,_0x3ea7ed[_0x8896('0x39')]);return _0x439608['getFields'](_0x87ea78);}})[_0x8896('0x20')](function(_0x5ecb8d){if(_0x5ecb8d){_0x330512=_0x5ecb8d['length'];if(!_0x3ea7ed[_0x8896('0x2a')][_0x8896('0x32')](_0x8896('0x33'))){_0x87ea78[_0x8896('0x19')]=qs['limit'](_0x3ea7ed[_0x8896('0x2a')]['limit']);_0x87ea78[_0x8896('0x16')]=qs[_0x8896('0x16')](_0x3ea7ed[_0x8896('0x2a')][_0x8896('0x16')]);}return _0x439608[_0x8896('0x44')](_0x87ea78);}})[_0x8896('0x20')](function(_0x2d64a7){if(_0x2d64a7){return _0x2d64a7?{'count':_0x330512,'rows':_0x2d64a7}:null;}})[_0x8896('0x20')](respondWithResult(_0x1d206b,null))['catch'](handleError(_0x1d206b,null));};exports[_0x8896('0x48')]=function(_0x483c29,_0xdbc23e,_0x22dcae){var _0x256aed={};var _0xd9b909={};var _0x3baa43;var _0x582747;return db['SugarcrmConfiguration'][_0x8896('0x45')]({'where':{'id':_0x483c29[_0x8896('0x40')]['id']}})['then'](handleEntityNotFound(_0xdbc23e,null))[_0x8896('0x20')](function(_0x53b89e){if(_0x53b89e){_0x3baa43=_0x53b89e;_0xd9b909[_0x8896('0x2e')]=_[_0x8896('0x2b')](db['SugarcrmField'][_0x8896('0x26')]);_0xd9b909[_0x8896('0x2a')]=_[_0x8896('0x2b')](_0x483c29['query']);_0xd9b909[_0x8896('0x2c')]=_[_0x8896('0x2d')](_0xd9b909[_0x8896('0x2e')],_0xd9b909[_0x8896('0x2a')]);_0x256aed['attributes']=_[_0x8896('0x2d')](_0xd9b909[_0x8896('0x2e')],qs[_0x8896('0x30')](_0x483c29[_0x8896('0x2a')][_0x8896('0x30')]));_0x256aed[_0x8896('0x2f')]=_0x256aed[_0x8896('0x2f')][_0x8896('0x31')]?_0x256aed[_0x8896('0x2f')]:_0xd9b909[_0x8896('0x2e')];_0x256aed['order']=qs[_0x8896('0x34')](_0x483c29[_0x8896('0x2a')]['sort']);_0x256aed[_0x8896('0x35')]=qs[_0x8896('0x2c')](_[_0x8896('0x47')](_0x483c29['query'],_0xd9b909['filters']));if(_0x483c29[_0x8896('0x2a')]['filter']){_0x256aed[_0x8896('0x35')]=_['merge'](_0x256aed[_0x8896('0x35')],{'$or':_[_0x8896('0x29')](_0x256aed[_0x8896('0x2f')],function(_0x2a6e36){var _0x2df02f={};_0x2df02f[_0x2a6e36]={'$like':'%'+_0x483c29['query'][_0x8896('0x36')]+'%'};return _0x2df02f;})});}_0x256aed=_[_0x8896('0x37')]({},_0x256aed,_0x483c29[_0x8896('0x39')]);return _0x3baa43['getSubjects'](_0x256aed);}})[_0x8896('0x20')](function(_0x32c36f){if(_0x32c36f){_0x582747=_0x32c36f['length'];if(!_0x483c29['query'][_0x8896('0x32')](_0x8896('0x33'))){_0x256aed['limit']=qs['limit'](_0x483c29[_0x8896('0x2a')][_0x8896('0x19')]);_0x256aed['offset']=qs['offset'](_0x483c29[_0x8896('0x2a')][_0x8896('0x16')]);}return _0x3baa43[_0x8896('0x48')](_0x256aed);}})[_0x8896('0x20')](function(_0xa6381b){if(_0xa6381b){return _0xa6381b?{'count':_0x582747,'rows':_0xa6381b}:null;}})['then'](respondWithResult(_0xdbc23e,null))[_0x8896('0x3e')](handleError(_0xdbc23e,null));};exports[_0x8896('0x49')]=function(_0x4386f6,_0x189ed3,_0xd9f16f){var _0x1c48ad={};var _0x4534d2={};var _0x3a7a28;var _0x22f5e9;return db[_0x8896('0x25')]['findOne']({'where':{'id':_0x4386f6['params']['id']}})[_0x8896('0x20')](handleEntityNotFound(_0x189ed3,null))['then'](function(_0x1e73ad){if(_0x1e73ad){_0x3a7a28=_0x1e73ad;_0x4534d2[_0x8896('0x2e')]=_['keys'](db[_0x8896('0x4a')][_0x8896('0x26')]);_0x4534d2[_0x8896('0x2a')]=_[_0x8896('0x2b')](_0x4386f6[_0x8896('0x2a')]);_0x4534d2[_0x8896('0x2c')]=_[_0x8896('0x2d')](_0x4534d2[_0x8896('0x2e')],_0x4534d2[_0x8896('0x2a')]);_0x1c48ad[_0x8896('0x2f')]=_[_0x8896('0x2d')](_0x4534d2[_0x8896('0x2e')],qs[_0x8896('0x30')](_0x4386f6[_0x8896('0x2a')][_0x8896('0x30')]));_0x1c48ad[_0x8896('0x2f')]=_0x1c48ad[_0x8896('0x2f')][_0x8896('0x31')]?_0x1c48ad[_0x8896('0x2f')]:_0x4534d2['model'];_0x1c48ad[_0x8896('0x46')]=qs[_0x8896('0x34')](_0x4386f6[_0x8896('0x2a')][_0x8896('0x34')]);_0x1c48ad[_0x8896('0x35')]=qs['filters'](_['pick'](_0x4386f6[_0x8896('0x2a')],_0x4534d2[_0x8896('0x2c')]));if(_0x4386f6[_0x8896('0x2a')][_0x8896('0x36')]){_0x1c48ad['where']=_[_0x8896('0x37')](_0x1c48ad[_0x8896('0x35')],{'$or':_[_0x8896('0x29')](_0x1c48ad[_0x8896('0x2f')],function(_0x48b212){var _0x164a53={};_0x164a53[_0x48b212]={'$like':'%'+_0x4386f6[_0x8896('0x2a')][_0x8896('0x36')]+'%'};return _0x164a53;})});}_0x1c48ad=_[_0x8896('0x37')]({},_0x1c48ad,_0x4386f6[_0x8896('0x39')]);return _0x3a7a28[_0x8896('0x49')](_0x1c48ad);}})[_0x8896('0x20')](function(_0x263813){if(_0x263813){_0x22f5e9=_0x263813['length'];if(!_0x4386f6[_0x8896('0x2a')]['hasOwnProperty'](_0x8896('0x33'))){_0x1c48ad[_0x8896('0x19')]=qs[_0x8896('0x19')](_0x4386f6['query'][_0x8896('0x19')]);_0x1c48ad['offset']=qs['offset'](_0x4386f6[_0x8896('0x2a')]['offset']);}return _0x3a7a28[_0x8896('0x49')](_0x1c48ad);}})[_0x8896('0x20')](function(_0x4f5d2a){if(_0x4f5d2a){return _0x4f5d2a?{'count':_0x22f5e9,'rows':_0x4f5d2a}:null;}})[_0x8896('0x20')](respondWithResult(_0x189ed3,null))[_0x8896('0x3e')](handleError(_0x189ed3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6eaa=['./intSugarcrmConfiguration.attributes','exports','int_sugarcrm_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x278994,_0x2ab28e){var _0x16625a=function(_0x133607){while(--_0x133607){_0x278994['push'](_0x278994['shift']());}};_0x16625a(++_0x2ab28e);}(_0x6eaa,0x92));var _0xa6ea=function(_0x33080e,_0x1c600a){_0x33080e=_0x33080e-0x0;var _0x407395=_0x6eaa[_0x33080e];return _0x407395;};'use strict';var _=require(_0xa6ea('0x0'));var util=require(_0xa6ea('0x1'));var logger=require(_0xa6ea('0x2'))(_0xa6ea('0x3'));var moment=require(_0xa6ea('0x4'));var BPromise=require(_0xa6ea('0x5'));var rp=require(_0xa6ea('0x6'));var fs=require('fs');var path=require(_0xa6ea('0x7'));var rimraf=require(_0xa6ea('0x8'));var config=require(_0xa6ea('0x9'));var attributes=require(_0xa6ea('0xa'));module[_0xa6ea('0xb')]=function(_0x57d88a,_0x2ca568){return _0x57d88a['define']('SugarcrmConfiguration',attributes,{'tableName':_0xa6ea('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x35d0=['util','../../config/logger','moment','request-promise','rimraf','../../config/environment','define','SugarcrmConfiguration','int_sugarcrm_configurations','lodash'];(function(_0x37a3f3,_0x663b49){var _0x4da923=function(_0x47713f){while(--_0x47713f){_0x37a3f3['push'](_0x37a3f3['shift']());}};_0x4da923(++_0x663b49);}(_0x35d0,0x9f));var _0x035d=function(_0x3e32a8,_0x255953){_0x3e32a8=_0x3e32a8-0x0;var _0x2997b0=_0x35d0[_0x3e32a8];return _0x2997b0;};'use strict';var _=require(_0x035d('0x0'));var util=require(_0x035d('0x1'));var logger=require(_0x035d('0x2'))('api');var moment=require(_0x035d('0x3'));var BPromise=require('bluebird');var rp=require(_0x035d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x035d('0x5'));var config=require(_0x035d('0x6'));var attributes=require('./intSugarcrmConfiguration.attributes');module['exports']=function(_0x28c40e,_0x1f0121){return _0x28c40e[_0x035d('0x7')](_0x035d('0x8'),attributes,{'tableName':_0x035d('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75f0=['rpc','../../config/environment','jayson/promise','client','http','request','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x75f0,0x6f));var _0x075f=function(_0x3413ef,_0x12e04a){_0x3413ef=_0x3413ef-0x0;var _0x4a9212=_0x75f0[_0x3413ef];return _0x4a9212;};'use strict';var _=require(_0x075f('0x0'));var util=require(_0x075f('0x1'));var moment=require(_0x075f('0x2'));var BPromise=require(_0x075f('0x3'));var rs=require(_0x075f('0x4'));var fs=require('fs');var Redis=require(_0x075f('0x5'));var db=require(_0x075f('0x6'))['db'];var utils=require(_0x075f('0x7'));var logger=require(_0x075f('0x8'))(_0x075f('0x9'));var config=require(_0x075f('0xa'));var jayson=require(_0x075f('0xb'));var client=jayson[_0x075f('0xc')][_0x075f('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x40de38,_0x33a8eb,_0xfef6c2){return new BPromise(function(_0x57b6c7,_0x5ad686){return client[_0x075f('0xe')](_0x40de38,_0xfef6c2)['then'](function(_0x524147){logger[_0x075f('0xf')](_0x075f('0x10'),_0x33a8eb,_0x075f('0x11'));logger[_0x075f('0x12')](_0x075f('0x13'),_0x33a8eb,_0x075f('0x11'),JSON[_0x075f('0x14')](_0x524147));if(_0x524147['error']){if(_0x524147[_0x075f('0x15')]['code']===0x1f4){logger[_0x075f('0x15')](_0x075f('0x10'),_0x33a8eb,_0x524147[_0x075f('0x15')]['message']);return _0x5ad686(_0x524147[_0x075f('0x15')][_0x075f('0x16')]);}logger[_0x075f('0x15')](_0x075f('0x10'),_0x33a8eb,_0x524147['error'][_0x075f('0x16')]);return _0x57b6c7(_0x524147[_0x075f('0x15')][_0x075f('0x16')]);}else{logger[_0x075f('0xf')](_0x075f('0x10'),_0x33a8eb,_0x075f('0x11'));_0x57b6c7(_0x524147[_0x075f('0x17')]['message']);}})['catch'](function(_0xd3f77d){logger[_0x075f('0x15')](_0x075f('0x10'),_0x33a8eb,_0xd3f77d);_0x5ad686(_0xd3f77d);});});}
\ No newline at end of file
+var _0x7488=['code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','jayson/promise','client','http','then','info','SugarcrmConfiguration,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x4dcdf8,_0x2c7aab){var _0x5f0590=function(_0x30baa5){while(--_0x30baa5){_0x4dcdf8['push'](_0x4dcdf8['shift']());}};_0x5f0590(++_0x2c7aab);}(_0x7488,0x82));var _0x8748=function(_0x439660,_0x3e13d3){_0x439660=_0x439660-0x0;var _0x2fa049=_0x7488[_0x439660];return _0x2fa049;};'use strict';var _=require(_0x8748('0x0'));var util=require(_0x8748('0x1'));var moment=require(_0x8748('0x2'));var BPromise=require(_0x8748('0x3'));var rs=require(_0x8748('0x4'));var fs=require('fs');var Redis=require(_0x8748('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x8748('0x6'))(_0x8748('0x7'));var config=require('../../config/environment');var jayson=require(_0x8748('0x8'));var client=jayson[_0x8748('0x9')][_0x8748('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x321360,_0x820217,_0x467053){return new BPromise(function(_0x5ab813,_0x1a3506){return client['request'](_0x321360,_0x467053)[_0x8748('0xb')](function(_0x3bf5b7){logger[_0x8748('0xc')](_0x8748('0xd'),_0x820217,_0x8748('0xe'));logger['debug']('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x820217,_0x8748('0xe'),JSON[_0x8748('0xf')](_0x3bf5b7));if(_0x3bf5b7[_0x8748('0x10')]){if(_0x3bf5b7[_0x8748('0x10')][_0x8748('0x11')]===0x1f4){logger[_0x8748('0x10')](_0x8748('0xd'),_0x820217,_0x3bf5b7[_0x8748('0x10')][_0x8748('0x12')]);return _0x1a3506(_0x3bf5b7[_0x8748('0x10')]['message']);}logger[_0x8748('0x10')](_0x8748('0xd'),_0x820217,_0x3bf5b7['error']['message']);return _0x5ab813(_0x3bf5b7[_0x8748('0x10')]['message']);}else{logger[_0x8748('0xc')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x820217,_0x8748('0xe'));_0x5ab813(_0x3bf5b7[_0x8748('0x13')][_0x8748('0x12')]);}})[_0x8748('0x14')](function(_0x9aecc2){logger['error'](_0x8748('0xd'),_0x820217,_0x9aecc2);_0x1a3506(_0x9aecc2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea52=['../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','get','index','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','util','path','../../components/auth/service'];(function(_0x2379b5,_0x1a8e82){var _0x1bb6d8=function(_0x1e8cbc){while(--_0x1e8cbc){_0x2379b5['push'](_0x2379b5['shift']());}};_0x1bb6d8(++_0x1a8e82);}(_0xea52,0x162));var _0x2ea5=function(_0x161aaf,_0x5bb6ce){_0x161aaf=_0x161aaf-0x0;var _0x3354e6=_0xea52[_0x161aaf];return _0x3354e6;};'use strict';var multer=require('multer');var util=require(_0x2ea5('0x0'));var path=require(_0x2ea5('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x2ea5('0x2'));var interaction=require(_0x2ea5('0x3'));var config=require(_0x2ea5('0x4'));var controller=require(_0x2ea5('0x5'));router[_0x2ea5('0x6')]('/',auth['isAuthenticated'](),controller[_0x2ea5('0x7')]);router[_0x2ea5('0x6')](_0x2ea5('0x8'),auth[_0x2ea5('0x9')](),controller[_0x2ea5('0xa')]);router[_0x2ea5('0xb')]('/',auth['isAuthenticated'](),controller[_0x2ea5('0xc')]);router[_0x2ea5('0xd')](_0x2ea5('0x8'),auth[_0x2ea5('0x9')](),controller[_0x2ea5('0xe')]);router[_0x2ea5('0xf')](_0x2ea5('0x8'),auth[_0x2ea5('0x9')](),controller[_0x2ea5('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x43a2=['../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','get','isAuthenticated','/:id','show','post','create','update','delete','exports','multer','path','connect-timeout','express','Router','fs-extra'];(function(_0x2f66bf,_0x18758f){var _0x52e014=function(_0xe6c6d4){while(--_0xe6c6d4){_0x2f66bf['push'](_0x2f66bf['shift']());}};_0x52e014(++_0x18758f);}(_0x43a2,0x162));var _0x243a=function(_0x3e44bb,_0x4f32af){_0x3e44bb=_0x3e44bb-0x0;var _0x6bd5a7=_0x43a2[_0x3e44bb];return _0x6bd5a7;};'use strict';var multer=require(_0x243a('0x0'));var util=require('util');var path=require(_0x243a('0x1'));var timeout=require(_0x243a('0x2'));var express=require(_0x243a('0x3'));var router=express[_0x243a('0x4')]();var fs_extra=require(_0x243a('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x243a('0x6'));var config=require(_0x243a('0x7'));var controller=require(_0x243a('0x8'));router[_0x243a('0x9')]('/',auth[_0x243a('0xa')](),controller['index']);router['get'](_0x243a('0xb'),auth[_0x243a('0xa')](),controller[_0x243a('0xc')]);router[_0x243a('0xd')]('/',auth[_0x243a('0xa')](),controller[_0x243a('0xe')]);router['put'](_0x243a('0xb'),auth['isAuthenticated'](),controller[_0x243a('0xf')]);router[_0x243a('0x10')](_0x243a('0xb'),auth[_0x243a('0xa')](),controller['destroy']);module[_0x243a('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x088d=['sequelize','exports','ENUM','string','variable','customVariable','keyValue','picklist','STRING','BOOLEAN'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x088d,0x96));var _0xd088=function(_0x3e2d18,_0x267265){_0x3e2d18=_0x3e2d18-0x0;var _0x5ab57b=_0x088d[_0x3e2d18];return _0x5ab57b;};'use strict';var Sequelize=require(_0xd088('0x0'));module[_0xd088('0x1')]={'type':{'type':Sequelize[_0xd088('0x2')](_0xd088('0x3'),_0xd088('0x4'),_0xd088('0x5'),_0xd088('0x6'),_0xd088('0x7')),'defaultValue':_0xd088('0x3')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0xd088('0x8')]},'keyType':{'type':Sequelize[_0xd088('0x2')](_0xd088('0x3'),_0xd088('0x4'),_0xd088('0x5'))},'keyContent':{'type':Sequelize[_0xd088('0x8')]},'idField':{'type':Sequelize[_0xd088('0x8')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xd088('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xd088('0x8')]}};
\ No newline at end of file
+var _0x4c4f=['ENUM','string','customVariable','keyValue','picklist','STRING','variable','exports'];(function(_0x2f1651,_0x10b559){var _0xedeb1=function(_0x3f8e4b){while(--_0x3f8e4b){_0x2f1651['push'](_0x2f1651['shift']());}};_0xedeb1(++_0x10b559);}(_0x4c4f,0x11f));var _0xf4c4=function(_0x39df70,_0x243fab){_0x39df70=_0x39df70-0x0;var _0x23f793=_0x4c4f[_0x39df70];return _0x23f793;};'use strict';var Sequelize=require('sequelize');module[_0xf4c4('0x0')]={'type':{'type':Sequelize[_0xf4c4('0x1')](_0xf4c4('0x2'),'variable',_0xf4c4('0x3'),_0xf4c4('0x4'),_0xf4c4('0x5')),'defaultValue':_0xf4c4('0x2')},'content':{'type':Sequelize[_0xf4c4('0x6')]},'key':{'type':Sequelize[_0xf4c4('0x6')]},'keyType':{'type':Sequelize['ENUM'](_0xf4c4('0x2'),_0xf4c4('0x7'),_0xf4c4('0x3'))},'keyContent':{'type':Sequelize[_0xf4c4('0x6')]},'idField':{'type':Sequelize[_0xf4c4('0x6')]},'nameField':{'type':Sequelize[_0xf4c4('0x6')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xf4c4('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3211=['squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','count','limit','Content-Range','json','apply','reject','save','update','then','error','stack','send','index','SugarcrmField','rawAttributes','fieldName','key','model','name','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','map','type','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','destroy','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra'];(function(_0x381449,_0x3470c1){var _0x19a49b=function(_0x4875e5){while(--_0x4875e5){_0x381449['push'](_0x381449['shift']());}};_0x19a49b(++_0x3470c1);}(_0x3211,0x122));var _0x1321=function(_0x5722f8,_0x49ff70){_0x5722f8=_0x5722f8-0x0;var _0x199af2=_0x3211[_0x5722f8];return _0x199af2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1321('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1321('0x1'));var rp=require(_0x1321('0x2'));var moment=require('moment');var BPromise=require(_0x1321('0x3'));var Mustache=require(_0x1321('0x4'));var util=require(_0x1321('0x5'));var path=require(_0x1321('0x6'));var sox=require(_0x1321('0x7'));var csv=require(_0x1321('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1321('0x9'));var _=require('lodash');var squel=require(_0x1321('0xa'));var crypto=require(_0x1321('0xb'));var jsforce=require(_0x1321('0xc'));var deskjs=require(_0x1321('0xd'));var toCsv=require(_0x1321('0x8'));var querystring=require(_0x1321('0xe'));var Papa=require(_0x1321('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1321('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1321('0x11'))(_0x1321('0x12'));var utils=require(_0x1321('0x13'));var config=require(_0x1321('0x14'));var licenseUtil=require(_0x1321('0x15'));var db=require(_0x1321('0x16'))['db'];function respondWithStatusCode(_0x3c63b2,_0x5c6341){_0x5c6341=_0x5c6341||0xcc;return function(_0x36fda0){if(_0x36fda0){return _0x3c63b2[_0x1321('0x17')](_0x5c6341);}return _0x3c63b2['status'](_0x5c6341)[_0x1321('0x18')]();};}function respondWithResult(_0x107c4d,_0x1cd7d5){_0x1cd7d5=_0x1cd7d5||0xc8;return function(_0x41add3){if(_0x41add3){return _0x107c4d[_0x1321('0x19')](_0x1cd7d5)['json'](_0x41add3);}};}function respondWithFilteredResult(_0x183371,_0x832792){return function(_0x39ab21){if(_0x39ab21){var _0x2d4121=typeof _0x832792[_0x1321('0x1a')]==='undefined'&&typeof _0x832792['limit']==='undefined';var _0xcffb0d=_0x39ab21[_0x1321('0x1b')];var _0xb98af6=_0x2d4121?0x0:_0x832792[_0x1321('0x1a')];var _0x2cd71a=_0x2d4121?_0x39ab21[_0x1321('0x1b')]:_0x832792[_0x1321('0x1a')]+_0x832792[_0x1321('0x1c')];var _0x2106bc;if(_0x2cd71a>=_0xcffb0d){_0x2cd71a=_0xcffb0d;_0x2106bc=0xc8;}else{_0x2106bc=0xce;}_0x183371[_0x1321('0x19')](_0x2106bc);return _0x183371['set'](_0x1321('0x1d'),_0xb98af6+'-'+_0x2cd71a+'/'+_0xcffb0d)[_0x1321('0x1e')](_0x39ab21);}return null;};}function patchUpdates(_0x27f64c){return function(_0x36abb0){try{jsonpatch[_0x1321('0x1f')](_0x36abb0,_0x27f64c,!![]);}catch(_0x3bea06){return BPromise[_0x1321('0x20')](_0x3bea06);}return _0x36abb0[_0x1321('0x21')]();};}function saveUpdates(_0x4b89b1,_0x5d9d92){return function(_0x392e87){if(_0x392e87){return _0x392e87[_0x1321('0x22')](_0x4b89b1)[_0x1321('0x23')](function(_0x524b74){return _0x524b74;});}return null;};}function removeEntity(_0x55b89b,_0x18101b){return function(_0xd627f4){if(_0xd627f4){return _0xd627f4['destroy']()[_0x1321('0x23')](function(){_0x55b89b[_0x1321('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3c3d27,_0x241474){return function(_0x10809c){if(!_0x10809c){_0x3c3d27[_0x1321('0x17')](0x194);}return _0x10809c;};}function handleError(_0x36a36c,_0x2b584a){_0x2b584a=_0x2b584a||0x1f4;return function(_0x595907){logger[_0x1321('0x24')](_0x595907[_0x1321('0x25')]);if(_0x595907['name']){delete _0x595907['name'];}_0x36a36c['status'](_0x2b584a)[_0x1321('0x26')](_0x595907);};}exports[_0x1321('0x27')]=function(_0x4d649a,_0x236604){var _0x8f3911={},_0x2385bd={},_0x2c1730={'count':0x0,'rows':[]};var _0x235e07=_['map'](db[_0x1321('0x28')][_0x1321('0x29')],function(_0x4ff8fb){return{'name':_0x4ff8fb[_0x1321('0x2a')],'type':_0x4ff8fb['type'][_0x1321('0x2b')]};});_0x2385bd[_0x1321('0x2c')]=_['map'](_0x235e07,_0x1321('0x2d'));_0x2385bd[_0x1321('0x2e')]=_[_0x1321('0x2f')](_0x4d649a[_0x1321('0x2e')]);_0x2385bd[_0x1321('0x30')]=_['intersection'](_0x2385bd['model'],_0x2385bd['query']);_0x8f3911[_0x1321('0x31')]=_[_0x1321('0x32')](_0x2385bd['model'],qs[_0x1321('0x33')](_0x4d649a[_0x1321('0x2e')]['fields']));_0x8f3911[_0x1321('0x31')]=_0x8f3911[_0x1321('0x31')][_0x1321('0x34')]?_0x8f3911[_0x1321('0x31')]:_0x2385bd['model'];if(!_0x4d649a[_0x1321('0x2e')][_0x1321('0x35')]('nolimit')){_0x8f3911[_0x1321('0x1c')]=qs[_0x1321('0x1c')](_0x4d649a[_0x1321('0x2e')][_0x1321('0x1c')]);_0x8f3911['offset']=qs[_0x1321('0x1a')](_0x4d649a[_0x1321('0x2e')][_0x1321('0x1a')]);}_0x8f3911[_0x1321('0x36')]=qs[_0x1321('0x37')](_0x4d649a['query'][_0x1321('0x37')]);_0x8f3911[_0x1321('0x38')]=qs['filters'](_[_0x1321('0x39')](_0x4d649a[_0x1321('0x2e')],_0x2385bd[_0x1321('0x30')]),_0x235e07);if(_0x4d649a['query'][_0x1321('0x3a')]){_0x8f3911['where']=_[_0x1321('0x3b')](_0x8f3911['where'],{'$or':_[_0x1321('0x3c')](_0x235e07,function(_0x2fe15c){if(_0x2fe15c[_0x1321('0x3d')]!==_0x1321('0x3e')){var _0x19fd09={};_0x19fd09[_0x2fe15c[_0x1321('0x2d')]]={'$like':'%'+_0x4d649a[_0x1321('0x2e')][_0x1321('0x3a')]+'%'};return _0x19fd09;}})});}_0x8f3911=_[_0x1321('0x3b')]({},_0x8f3911,_0x4d649a['options']);var _0x5286f3={'where':_0x8f3911['where']};return db[_0x1321('0x28')][_0x1321('0x1b')](_0x5286f3)[_0x1321('0x23')](function(_0x5f5321){_0x2c1730[_0x1321('0x1b')]=_0x5f5321;if(_0x4d649a[_0x1321('0x2e')][_0x1321('0x3f')]){_0x8f3911[_0x1321('0x40')]=[{'all':!![]}];}return db[_0x1321('0x28')][_0x1321('0x41')](_0x8f3911);})['then'](function(_0x2a7f90){_0x2c1730[_0x1321('0x42')]=_0x2a7f90;return _0x2c1730;})[_0x1321('0x23')](respondWithFilteredResult(_0x236604,_0x8f3911))['catch'](handleError(_0x236604,null));};exports[_0x1321('0x43')]=function(_0x1ae069,_0x331e46){var _0x180f87={'raw':!![],'where':{'id':_0x1ae069[_0x1321('0x44')]['id']}},_0x28b6f8={};_0x28b6f8[_0x1321('0x2c')]=_[_0x1321('0x2f')](db[_0x1321('0x28')][_0x1321('0x29')]);_0x28b6f8[_0x1321('0x2e')]=_[_0x1321('0x2f')](_0x1ae069[_0x1321('0x2e')]);_0x28b6f8[_0x1321('0x30')]=_[_0x1321('0x32')](_0x28b6f8[_0x1321('0x2c')],_0x28b6f8[_0x1321('0x2e')]);_0x180f87[_0x1321('0x31')]=_[_0x1321('0x32')](_0x28b6f8[_0x1321('0x2c')],qs['fields'](_0x1ae069[_0x1321('0x2e')][_0x1321('0x33')]));_0x180f87['attributes']=_0x180f87[_0x1321('0x31')]['length']?_0x180f87[_0x1321('0x31')]:_0x28b6f8[_0x1321('0x2c')];if(_0x1ae069[_0x1321('0x2e')]['includeAll']){_0x180f87[_0x1321('0x40')]=[{'all':!![]}];}_0x180f87=_[_0x1321('0x3b')]({},_0x180f87,_0x1ae069[_0x1321('0x45')]);return db[_0x1321('0x28')][_0x1321('0x46')](_0x180f87)['then'](handleEntityNotFound(_0x331e46,null))[_0x1321('0x23')](respondWithResult(_0x331e46,null))[_0x1321('0x47')](handleError(_0x331e46,null));};exports[_0x1321('0x48')]=function(_0x31b888,_0x5d4a29){return db['SugarcrmField'][_0x1321('0x48')](_0x31b888['body'],{})['then'](respondWithResult(_0x5d4a29,0xc9))['catch'](handleError(_0x5d4a29,null));};exports[_0x1321('0x22')]=function(_0x4a7d08,_0x564927){if(_0x4a7d08[_0x1321('0x49')]['id']){delete _0x4a7d08[_0x1321('0x49')]['id'];}return db['SugarcrmField']['find']({'where':{'id':_0x4a7d08[_0x1321('0x44')]['id']}})[_0x1321('0x23')](handleEntityNotFound(_0x564927,null))[_0x1321('0x23')](saveUpdates(_0x4a7d08[_0x1321('0x49')],null))['then'](respondWithResult(_0x564927,null))[_0x1321('0x47')](handleError(_0x564927,null));};exports[_0x1321('0x4a')]=function(_0x55b865,_0x1395d9){return db['SugarcrmField'][_0x1321('0x46')]({'where':{'id':_0x55b865[_0x1321('0x44')]['id']}})[_0x1321('0x23')](handleEntityNotFound(_0x1395d9,null))[_0x1321('0x23')](removeEntity(_0x1395d9,null))[_0x1321('0x47')](handleError(_0x1395d9,null));};
\ No newline at end of file
+var _0xd5cc=['bluebird','mustache','util','sox','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','json','limit','count','offset','status','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','map','fieldName','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','type','options','SugarcrmField','includeAll','include','findAll','rows','catch','find','create','body','params','eml-format','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x38af78,_0x41cdf6){var _0x12b3eb=function(_0x4d212f){while(--_0x4d212f){_0x38af78['push'](_0x38af78['shift']());}};_0x12b3eb(++_0x41cdf6);}(_0xd5cc,0x10b));var _0xcd5c=function(_0xad8f8c,_0x30298b){_0xad8f8c=_0xad8f8c-0x0;var _0x2ef37b=_0xd5cc[_0xad8f8c];return _0x2ef37b;};'use strict';var emlformat=require(_0xcd5c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xcd5c('0x1'));var jsonpatch=require(_0xcd5c('0x2'));var rp=require(_0xcd5c('0x3'));var moment=require(_0xcd5c('0x4'));var BPromise=require(_0xcd5c('0x5'));var Mustache=require(_0xcd5c('0x6'));var util=require(_0xcd5c('0x7'));var path=require('path');var sox=require(_0xcd5c('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xcd5c('0x9'));var squel=require(_0xcd5c('0xa'));var crypto=require(_0xcd5c('0xb'));var jsforce=require(_0xcd5c('0xc'));var deskjs=require(_0xcd5c('0xd'));var toCsv=require('to-csv');var querystring=require(_0xcd5c('0xe'));var Papa=require(_0xcd5c('0xf'));var Redis=require('ioredis');var authService=require(_0xcd5c('0x10'));var qs=require(_0xcd5c('0x11'));var as=require(_0xcd5c('0x12'));var hardwareService=require(_0xcd5c('0x13'));var logger=require('../../config/logger')(_0xcd5c('0x14'));var utils=require(_0xcd5c('0x15'));var config=require(_0xcd5c('0x16'));var licenseUtil=require(_0xcd5c('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5c84a5,_0x4174da){_0x4174da=_0x4174da||0xcc;return function(_0x492d8b){if(_0x492d8b){return _0x5c84a5[_0xcd5c('0x18')](_0x4174da);}return _0x5c84a5['status'](_0x4174da)['end']();};}function respondWithResult(_0x449c49,_0x7bfa24){_0x7bfa24=_0x7bfa24||0xc8;return function(_0x22d82f){if(_0x22d82f){return _0x449c49['status'](_0x7bfa24)[_0xcd5c('0x19')](_0x22d82f);}};}function respondWithFilteredResult(_0x127015,_0x401e9c){return function(_0x37e594){if(_0x37e594){var _0x305be2=typeof _0x401e9c['offset']==='undefined'&&typeof _0x401e9c[_0xcd5c('0x1a')]==='undefined';var _0x339b05=_0x37e594[_0xcd5c('0x1b')];var _0x3f9bd7=_0x305be2?0x0:_0x401e9c[_0xcd5c('0x1c')];var _0x3512c2=_0x305be2?_0x37e594['count']:_0x401e9c[_0xcd5c('0x1c')]+_0x401e9c['limit'];var _0x386105;if(_0x3512c2>=_0x339b05){_0x3512c2=_0x339b05;_0x386105=0xc8;}else{_0x386105=0xce;}_0x127015[_0xcd5c('0x1d')](_0x386105);return _0x127015['set'](_0xcd5c('0x1e'),_0x3f9bd7+'-'+_0x3512c2+'/'+_0x339b05)[_0xcd5c('0x19')](_0x37e594);}return null;};}function patchUpdates(_0x483ebe){return function(_0x1dcf64){try{jsonpatch[_0xcd5c('0x1f')](_0x1dcf64,_0x483ebe,!![]);}catch(_0x100daa){return BPromise['reject'](_0x100daa);}return _0x1dcf64[_0xcd5c('0x20')]();};}function saveUpdates(_0x12dacf,_0x22765c){return function(_0x27fdf8){if(_0x27fdf8){return _0x27fdf8[_0xcd5c('0x21')](_0x12dacf)[_0xcd5c('0x22')](function(_0x4fac56){return _0x4fac56;});}return null;};}function removeEntity(_0x312128,_0x5c0380){return function(_0xc12ffd){if(_0xc12ffd){return _0xc12ffd[_0xcd5c('0x23')]()[_0xcd5c('0x22')](function(){_0x312128[_0xcd5c('0x1d')](0xcc)[_0xcd5c('0x24')]();});}};}function handleEntityNotFound(_0x19ba45,_0x882ec){return function(_0x127bc7){if(!_0x127bc7){_0x19ba45[_0xcd5c('0x18')](0x194);}return _0x127bc7;};}function handleError(_0x241c5d,_0x1eba2a){_0x1eba2a=_0x1eba2a||0x1f4;return function(_0x5490ed){logger[_0xcd5c('0x25')](_0x5490ed[_0xcd5c('0x26')]);if(_0x5490ed[_0xcd5c('0x27')]){delete _0x5490ed[_0xcd5c('0x27')];}_0x241c5d[_0xcd5c('0x1d')](_0x1eba2a)[_0xcd5c('0x28')](_0x5490ed);};}exports['index']=function(_0x5cec63,_0x5b20c7){var _0x24e4b2={},_0x280d0a={},_0x3e160f={'count':0x0,'rows':[]};var _0x3a6251=_[_0xcd5c('0x29')](db['SugarcrmField']['rawAttributes'],function(_0x57f31a){return{'name':_0x57f31a[_0xcd5c('0x2a')],'type':_0x57f31a['type']['key']};});_0x280d0a[_0xcd5c('0x2b')]=_[_0xcd5c('0x29')](_0x3a6251,_0xcd5c('0x27'));_0x280d0a[_0xcd5c('0x2c')]=_['keys'](_0x5cec63[_0xcd5c('0x2c')]);_0x280d0a[_0xcd5c('0x2d')]=_[_0xcd5c('0x2e')](_0x280d0a[_0xcd5c('0x2b')],_0x280d0a[_0xcd5c('0x2c')]);_0x24e4b2[_0xcd5c('0x2f')]=_[_0xcd5c('0x2e')](_0x280d0a[_0xcd5c('0x2b')],qs[_0xcd5c('0x30')](_0x5cec63[_0xcd5c('0x2c')][_0xcd5c('0x30')]));_0x24e4b2[_0xcd5c('0x2f')]=_0x24e4b2[_0xcd5c('0x2f')][_0xcd5c('0x31')]?_0x24e4b2['attributes']:_0x280d0a[_0xcd5c('0x2b')];if(!_0x5cec63[_0xcd5c('0x2c')][_0xcd5c('0x32')](_0xcd5c('0x33'))){_0x24e4b2['limit']=qs[_0xcd5c('0x1a')](_0x5cec63[_0xcd5c('0x2c')]['limit']);_0x24e4b2[_0xcd5c('0x1c')]=qs[_0xcd5c('0x1c')](_0x5cec63[_0xcd5c('0x2c')][_0xcd5c('0x1c')]);}_0x24e4b2[_0xcd5c('0x34')]=qs[_0xcd5c('0x35')](_0x5cec63['query'][_0xcd5c('0x35')]);_0x24e4b2[_0xcd5c('0x36')]=qs['filters'](_['pick'](_0x5cec63[_0xcd5c('0x2c')],_0x280d0a[_0xcd5c('0x2d')]),_0x3a6251);if(_0x5cec63[_0xcd5c('0x2c')][_0xcd5c('0x37')]){_0x24e4b2[_0xcd5c('0x36')]=_['merge'](_0x24e4b2[_0xcd5c('0x36')],{'$or':_[_0xcd5c('0x29')](_0x3a6251,function(_0x730cda){if(_0x730cda[_0xcd5c('0x38')]!=='VIRTUAL'){var _0x18e121={};_0x18e121[_0x730cda[_0xcd5c('0x27')]]={'$like':'%'+_0x5cec63[_0xcd5c('0x2c')][_0xcd5c('0x37')]+'%'};return _0x18e121;}})});}_0x24e4b2=_['merge']({},_0x24e4b2,_0x5cec63[_0xcd5c('0x39')]);var _0x4727d0={'where':_0x24e4b2['where']};return db[_0xcd5c('0x3a')][_0xcd5c('0x1b')](_0x4727d0)[_0xcd5c('0x22')](function(_0x2abd47){_0x3e160f[_0xcd5c('0x1b')]=_0x2abd47;if(_0x5cec63[_0xcd5c('0x2c')][_0xcd5c('0x3b')]){_0x24e4b2[_0xcd5c('0x3c')]=[{'all':!![]}];}return db[_0xcd5c('0x3a')][_0xcd5c('0x3d')](_0x24e4b2);})['then'](function(_0x409dcc){_0x3e160f[_0xcd5c('0x3e')]=_0x409dcc;return _0x3e160f;})[_0xcd5c('0x22')](respondWithFilteredResult(_0x5b20c7,_0x24e4b2))[_0xcd5c('0x3f')](handleError(_0x5b20c7,null));};exports['show']=function(_0x2fe4a6,_0x494e06){var _0x81a324={'raw':!![],'where':{'id':_0x2fe4a6['params']['id']}},_0x1173fa={};_0x1173fa['model']=_['keys'](db[_0xcd5c('0x3a')]['rawAttributes']);_0x1173fa[_0xcd5c('0x2c')]=_['keys'](_0x2fe4a6[_0xcd5c('0x2c')]);_0x1173fa[_0xcd5c('0x2d')]=_[_0xcd5c('0x2e')](_0x1173fa[_0xcd5c('0x2b')],_0x1173fa[_0xcd5c('0x2c')]);_0x81a324['attributes']=_[_0xcd5c('0x2e')](_0x1173fa[_0xcd5c('0x2b')],qs[_0xcd5c('0x30')](_0x2fe4a6[_0xcd5c('0x2c')][_0xcd5c('0x30')]));_0x81a324['attributes']=_0x81a324['attributes'][_0xcd5c('0x31')]?_0x81a324[_0xcd5c('0x2f')]:_0x1173fa[_0xcd5c('0x2b')];if(_0x2fe4a6['query']['includeAll']){_0x81a324[_0xcd5c('0x3c')]=[{'all':!![]}];}_0x81a324=_['merge']({},_0x81a324,_0x2fe4a6[_0xcd5c('0x39')]);return db[_0xcd5c('0x3a')][_0xcd5c('0x40')](_0x81a324)[_0xcd5c('0x22')](handleEntityNotFound(_0x494e06,null))[_0xcd5c('0x22')](respondWithResult(_0x494e06,null))[_0xcd5c('0x3f')](handleError(_0x494e06,null));};exports[_0xcd5c('0x41')]=function(_0x7ff62,_0x10d035){return db[_0xcd5c('0x3a')][_0xcd5c('0x41')](_0x7ff62['body'],{})[_0xcd5c('0x22')](respondWithResult(_0x10d035,0xc9))[_0xcd5c('0x3f')](handleError(_0x10d035,null));};exports['update']=function(_0x1eb734,_0x3c49c5){if(_0x1eb734['body']['id']){delete _0x1eb734[_0xcd5c('0x42')]['id'];}return db[_0xcd5c('0x3a')][_0xcd5c('0x40')]({'where':{'id':_0x1eb734[_0xcd5c('0x43')]['id']}})[_0xcd5c('0x22')](handleEntityNotFound(_0x3c49c5,null))[_0xcd5c('0x22')](saveUpdates(_0x1eb734[_0xcd5c('0x42')],null))[_0xcd5c('0x22')](respondWithResult(_0x3c49c5,null))[_0xcd5c('0x3f')](handleError(_0x3c49c5,null));};exports[_0xcd5c('0x23')]=function(_0x2254b4,_0x56de22){return db[_0xcd5c('0x3a')]['find']({'where':{'id':_0x2254b4[_0xcd5c('0x43')]['id']}})[_0xcd5c('0x22')](handleEntityNotFound(_0x56de22,null))[_0xcd5c('0x22')](removeEntity(_0x56de22,null))['catch'](handleError(_0x56de22,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a6c=['SugarcrmField','int_sugarcrm_fields','sugarcrm_unique_index','idField','FieldId','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define'];(function(_0x28fe48,_0x33827e){var _0x19ea37=function(_0x315194){while(--_0x315194){_0x28fe48['push'](_0x28fe48['shift']());}};_0x19ea37(++_0x33827e);}(_0x9a6c,0x145));var _0xc9a6=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0x9a6c[_0xa1e3e3];return _0xc980e9;};'use strict';var _=require(_0xc9a6('0x0'));var util=require(_0xc9a6('0x1'));var logger=require(_0xc9a6('0x2'))('api');var moment=require(_0xc9a6('0x3'));var BPromise=require(_0xc9a6('0x4'));var rp=require(_0xc9a6('0x5'));var fs=require('fs');var path=require(_0xc9a6('0x6'));var rimraf=require(_0xc9a6('0x7'));var config=require(_0xc9a6('0x8'));var attributes=require('./intSugarcrmField.attributes');module[_0xc9a6('0x9')]=function(_0x505326,_0x3ab40a){return _0x505326[_0xc9a6('0xa')](_0xc9a6('0xb'),attributes,{'tableName':_0xc9a6('0xc'),'paranoid':![],'indexes':[{'name':_0xc9a6('0xd'),'fields':[_0xc9a6('0xe'),_0xc9a6('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x4e66=['moment','rimraf','../../config/environment','./intSugarcrmField.attributes','exports','define','sugarcrm_unique_index','FieldId','lodash','util','api'];(function(_0x3a99f4,_0x2a81c1){var _0xea0b42=function(_0x41f533){while(--_0x41f533){_0x3a99f4['push'](_0x3a99f4['shift']());}};_0xea0b42(++_0x2a81c1);}(_0x4e66,0xfa));var _0x64e6=function(_0x15121d,_0x3e8fee){_0x15121d=_0x15121d-0x0;var _0x32740d=_0x4e66[_0x15121d];return _0x32740d;};'use strict';var _=require(_0x64e6('0x0'));var util=require(_0x64e6('0x1'));var logger=require('../../config/logger')(_0x64e6('0x2'));var moment=require(_0x64e6('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x64e6('0x4'));var config=require(_0x64e6('0x5'));var attributes=require(_0x64e6('0x6'));module[_0x64e6('0x7')]=function(_0x169a85,_0x507d14){return _0x169a85[_0x64e6('0x8')]('SugarcrmField',attributes,{'tableName':'int_sugarcrm_fields','paranoid':![],'indexes':[{'name':_0x64e6('0x9'),'fields':['idField',_0x64e6('0xa')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6000=['lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','../../config/environment','client','http','request','SugarcrmField,\x20%s,\x20%s','request\x20sent','debug','SugarcrmField,\x20%s,\x20%s,\x20%s','error','code','message','info','result'];(function(_0x1bd0c7,_0x58dcd4){var _0x2bf96b=function(_0x48dbfe){while(--_0x48dbfe){_0x1bd0c7['push'](_0x1bd0c7['shift']());}};_0x2bf96b(++_0x58dcd4);}(_0x6000,0xd1));var _0x0600=function(_0x12d5a1,_0x2b8e8d){_0x12d5a1=_0x12d5a1-0x0;var _0x31ca0f=_0x6000[_0x12d5a1];return _0x31ca0f;};'use strict';var _=require(_0x0600('0x0'));var util=require(_0x0600('0x1'));var moment=require('moment');var BPromise=require(_0x0600('0x2'));var rs=require(_0x0600('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0600('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x0600('0x5'))('rpc');var config=require(_0x0600('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x0600('0x7')][_0x0600('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x49132d,_0x3366d5,_0x5df2f2){return new BPromise(function(_0x4e6fec,_0x4a41d4){return client[_0x0600('0x9')](_0x49132d,_0x5df2f2)['then'](function(_0x16535d){logger['info'](_0x0600('0xa'),_0x3366d5,_0x0600('0xb'));logger[_0x0600('0xc')](_0x0600('0xd'),_0x3366d5,'request\x20sent',JSON['stringify'](_0x16535d));if(_0x16535d[_0x0600('0xe')]){if(_0x16535d['error'][_0x0600('0xf')]===0x1f4){logger[_0x0600('0xe')](_0x0600('0xa'),_0x3366d5,_0x16535d[_0x0600('0xe')][_0x0600('0x10')]);return _0x4a41d4(_0x16535d[_0x0600('0xe')]['message']);}logger['error'](_0x0600('0xa'),_0x3366d5,_0x16535d[_0x0600('0xe')]['message']);return _0x4e6fec(_0x16535d[_0x0600('0xe')]['message']);}else{logger[_0x0600('0x11')](_0x0600('0xa'),_0x3366d5,_0x0600('0xb'));_0x4e6fec(_0x16535d[_0x0600('0x12')]['message']);}})['catch'](function(_0x3aa778){logger[_0x0600('0xe')](_0x0600('0xa'),_0x3366d5,_0x3aa778);_0x4a41d4(_0x3aa778);});});}
\ No newline at end of file
+var _0xb9df=['message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','info','SugarcrmField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code'];(function(_0x2c87e0,_0x3b9c6){var _0x506af4=function(_0x4681bc){while(--_0x4681bc){_0x2c87e0['push'](_0x2c87e0['shift']());}};_0x506af4(++_0x3b9c6);}(_0xb9df,0x144));var _0xfb9d=function(_0x44fbf7,_0x14c5ca){_0x44fbf7=_0x44fbf7-0x0;var _0x309508=_0xb9df[_0x44fbf7];return _0x309508;};'use strict';var _=require(_0xfb9d('0x0'));var util=require(_0xfb9d('0x1'));var moment=require(_0xfb9d('0x2'));var BPromise=require(_0xfb9d('0x3'));var rs=require(_0xfb9d('0x4'));var fs=require('fs');var Redis=require(_0xfb9d('0x5'));var db=require(_0xfb9d('0x6'))['db'];var utils=require(_0xfb9d('0x7'));var logger=require(_0xfb9d('0x8'))(_0xfb9d('0x9'));var config=require('../../config/environment');var jayson=require(_0xfb9d('0xa'));var client=jayson[_0xfb9d('0xb')][_0xfb9d('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x5ece7b,_0x481a7c,_0x1e8e0d){return new BPromise(function(_0x461f6a,_0x47451f){return client[_0xfb9d('0xd')](_0x5ece7b,_0x1e8e0d)['then'](function(_0xf1fc31){logger[_0xfb9d('0xe')](_0xfb9d('0xf'),_0x481a7c,_0xfb9d('0x10'));logger[_0xfb9d('0x11')]('SugarcrmField,\x20%s,\x20%s,\x20%s',_0x481a7c,'request\x20sent',JSON[_0xfb9d('0x12')](_0xf1fc31));if(_0xf1fc31[_0xfb9d('0x13')]){if(_0xf1fc31[_0xfb9d('0x13')][_0xfb9d('0x14')]===0x1f4){logger[_0xfb9d('0x13')](_0xfb9d('0xf'),_0x481a7c,_0xf1fc31[_0xfb9d('0x13')][_0xfb9d('0x15')]);return _0x47451f(_0xf1fc31[_0xfb9d('0x13')][_0xfb9d('0x15')]);}logger['error'](_0xfb9d('0xf'),_0x481a7c,_0xf1fc31[_0xfb9d('0x13')][_0xfb9d('0x15')]);return _0x461f6a(_0xf1fc31[_0xfb9d('0x13')][_0xfb9d('0x15')]);}else{logger['info'](_0xfb9d('0xf'),_0x481a7c,_0xfb9d('0x10'));_0x461f6a(_0xf1fc31[_0xfb9d('0x16')]['message']);}})['catch'](function(_0x525212){logger['error']('SugarcrmField,\x20%s,\x20%s',_0x481a7c,_0x525212);_0x47451f(_0x525212);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa631=['./intVtigerAccount.controller','/:id','isAuthenticated','show','getConfigurations','get','/:id/fields','post','create','addConfiguration','put','delete','util','path','connect-timeout','Router','../../components/interaction/service','../../config/environment'];(function(_0x287c03,_0x53ed0a){var _0x34fb42=function(_0x496bca){while(--_0x496bca){_0x287c03['push'](_0x287c03['shift']());}};_0x34fb42(++_0x53ed0a);}(_0xa631,0xe4));var _0x1a63=function(_0x4d02c2,_0x4c3f15){_0x4d02c2=_0x4d02c2-0x0;var _0x2e09a7=_0xa631[_0x4d02c2];return _0x2e09a7;};'use strict';var multer=require('multer');var util=require(_0x1a63('0x0'));var path=require(_0x1a63('0x1'));var timeout=require(_0x1a63('0x2'));var express=require('express');var router=express[_0x1a63('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x1a63('0x4'));var config=require(_0x1a63('0x5'));var controller=require(_0x1a63('0x6'));router['get']('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x1a63('0x7'),auth[_0x1a63('0x8')](),controller[_0x1a63('0x9')]);router['get']('/:id/configurations',auth[_0x1a63('0x8')](),controller[_0x1a63('0xa')]);router[_0x1a63('0xb')](_0x1a63('0xc'),auth[_0x1a63('0x8')](),controller['getFields']);router[_0x1a63('0xd')]('/',auth[_0x1a63('0x8')](),controller[_0x1a63('0xe')]);router[_0x1a63('0xd')]('/:id/configurations',auth[_0x1a63('0x8')](),controller[_0x1a63('0xf')]);router[_0x1a63('0x10')]('/:id',auth[_0x1a63('0x8')](),controller['update']);router[_0x1a63('0x11')](_0x1a63('0x7'),auth[_0x1a63('0x8')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x207c=['addConfiguration','put','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','index','get','/:id','show','/:id/configurations','getConfigurations','/:id/fields','isAuthenticated','getFields','post'];(function(_0xfb199c,_0x53d475){var _0x4b6b2a=function(_0x4e771e){while(--_0x4e771e){_0xfb199c['push'](_0xfb199c['shift']());}};_0x4b6b2a(++_0x53d475);}(_0x207c,0x1e8));var _0xc207=function(_0x2f8255,_0x44ff85){_0x2f8255=_0x2f8255-0x0;var _0x2207f6=_0x207c[_0x2f8255];return _0x2207f6;};'use strict';var multer=require('multer');var util=require(_0xc207('0x0'));var path=require(_0xc207('0x1'));var timeout=require(_0xc207('0x2'));var express=require(_0xc207('0x3'));var router=express[_0xc207('0x4')]();var fs_extra=require(_0xc207('0x5'));var auth=require(_0xc207('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xc207('0x7'));var controller=require('./intVtigerAccount.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xc207('0x8')]);router[_0xc207('0x9')](_0xc207('0xa'),auth['isAuthenticated'](),controller[_0xc207('0xb')]);router[_0xc207('0x9')](_0xc207('0xc'),auth['isAuthenticated'](),controller[_0xc207('0xd')]);router[_0xc207('0x9')](_0xc207('0xe'),auth[_0xc207('0xf')](),controller[_0xc207('0x10')]);router[_0xc207('0x11')]('/',auth['isAuthenticated'](),controller['create']);router['post'](_0xc207('0xc'),auth['isAuthenticated'](),controller[_0xc207('0x12')]);router[_0xc207('0x13')]('/:id',auth[_0xc207('0xf')](),controller[_0xc207('0x14')]);router[_0xc207('0x15')](_0xc207('0xa'),auth[_0xc207('0xf')](),controller['destroy']);module[_0xc207('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc001=['sequelize','exports','STRING','HelpDesk'];(function(_0x36058f,_0x3b6b1b){var _0x3bae41=function(_0x41ade1){while(--_0x41ade1){_0x36058f['push'](_0x36058f['shift']());}};_0x3bae41(++_0x3b6b1b);}(_0xc001,0x1d0));var _0x1c00=function(_0x2784cc,_0x35ef10){_0x2784cc=_0x2784cc-0x0;var _0x3d787f=_0xc001[_0x2784cc];return _0x3d787f;};'use strict';var Sequelize=require(_0x1c00('0x0'));module[_0x1c00('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x1c00('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x1c00('0x3')},'remoteUri':{'type':Sequelize[_0x1c00('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x1c00('0x2')],'allowNull':![]},'accessKey':{'type':Sequelize[_0x1c00('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x0217=['HelpDesk','sequelize','exports','STRING'];(function(_0x692813,_0x166322){var _0x43e4f8=function(_0xc51e9d){while(--_0xc51e9d){_0x692813['push'](_0x692813['shift']());}};_0x43e4f8(++_0x166322);}(_0x0217,0x175));var _0x7021=function(_0x5baefc,_0x39b64c){_0x5baefc=_0x5baefc-0x0;var _0x3f43e7=_0x0217[_0x5baefc];return _0x3f43e7;};'use strict';var Sequelize=require(_0x7021('0x0'));module[_0x7021('0x1')]={'name':{'type':Sequelize[_0x7021('0x2')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x7021('0x2')],'allowNull':![]},'moduleName':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x7021('0x3')},'remoteUri':{'type':Sequelize[_0x7021('0x2')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x7021('0x2')],'allowNull':![]},'accessKey':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa832=['where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','params','length','find','catch','create','body','update','destroy','getConfigurations','findOne','nolimit','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','channel','type','VtigerConfiguration','VtigerField','md5','username','description','moduleName','accessKey','remoteUri','slice','substring','lastIndexOf','%s/webservice.php','GET','getchallenge','success','login','result','token','describe','sessionName','autogenerated','reference','includes','remove','false','startsWith','picklist','picklistValues','label','value','log','statusCode','getFields','stringify','test','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','path','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','error','stack','name','send','index','VtigerAccount','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xa832,0xb8));var _0x2a83=function(_0x3a7d80,_0x1eb364){_0x3a7d80=_0x3a7d80-0x0;var _0xfafa55=_0xa832[_0x3a7d80];return _0xfafa55;};'use strict';var emlformat=require(_0x2a83('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2a83('0x1'));var jsonpatch=require(_0x2a83('0x2'));var rp=require(_0x2a83('0x3'));var moment=require('moment');var BPromise=require(_0x2a83('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x2a83('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x2a83('0x6'));var fs=require('fs');var fs_extra=require(_0x2a83('0x7'));var _=require(_0x2a83('0x8'));var squel=require('squel');var crypto=require(_0x2a83('0x9'));var jsforce=require(_0x2a83('0xa'));var deskjs=require(_0x2a83('0xb'));var toCsv=require(_0x2a83('0xc'));var querystring=require(_0x2a83('0xd'));var Papa=require('papaparse');var Redis=require(_0x2a83('0xe'));var authService=require(_0x2a83('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x2a83('0x10'));var hardwareService=require(_0x2a83('0x11'));var logger=require(_0x2a83('0x12'))(_0x2a83('0x13'));var utils=require(_0x2a83('0x14'));var config=require(_0x2a83('0x15'));var licenseUtil=require(_0x2a83('0x16'));var db=require(_0x2a83('0x17'))['db'];var integrations=require(_0x2a83('0x18'));function respondWithStatusCode(_0x46154b,_0xe10415){_0xe10415=_0xe10415||0xcc;return function(_0xafccc8){if(_0xafccc8){return _0x46154b[_0x2a83('0x19')](_0xe10415);}return _0x46154b[_0x2a83('0x1a')](_0xe10415)[_0x2a83('0x1b')]();};}function respondWithResult(_0x48b1b0,_0x506634){_0x506634=_0x506634||0xc8;return function(_0x35f6d6){if(_0x35f6d6){return _0x48b1b0[_0x2a83('0x1a')](_0x506634)[_0x2a83('0x1c')](_0x35f6d6);}};}function respondWithFilteredResult(_0x4566c2,_0x38128c){return function(_0x2d6b32){if(_0x2d6b32){var _0x45438f=typeof _0x38128c[_0x2a83('0x1d')]===_0x2a83('0x1e')&&typeof _0x38128c[_0x2a83('0x1f')]==='undefined';var _0x41bb12=_0x2d6b32[_0x2a83('0x20')];var _0x1434c5=_0x45438f?0x0:_0x38128c[_0x2a83('0x1d')];var _0x97b26=_0x45438f?_0x2d6b32[_0x2a83('0x20')]:_0x38128c['offset']+_0x38128c[_0x2a83('0x1f')];var _0x2b6e51;if(_0x97b26>=_0x41bb12){_0x97b26=_0x41bb12;_0x2b6e51=0xc8;}else{_0x2b6e51=0xce;}_0x4566c2[_0x2a83('0x1a')](_0x2b6e51);return _0x4566c2[_0x2a83('0x21')](_0x2a83('0x22'),_0x1434c5+'-'+_0x97b26+'/'+_0x41bb12)[_0x2a83('0x1c')](_0x2d6b32);}return null;};}function patchUpdates(_0x46c27f){return function(_0x5b2409){try{jsonpatch[_0x2a83('0x23')](_0x5b2409,_0x46c27f,!![]);}catch(_0x4b027d){return BPromise['reject'](_0x4b027d);}return _0x5b2409[_0x2a83('0x24')]();};}function saveUpdates(_0x401270,_0x3d5de5){return function(_0x184859){if(_0x184859){return _0x184859['update'](_0x401270)[_0x2a83('0x25')](function(_0xd54290){return _0xd54290;});}return null;};}function removeEntity(_0x2520cf,_0x2b7f66){return function(_0x34e565){if(_0x34e565){return _0x34e565['destroy']()['then'](function(){_0x2520cf[_0x2a83('0x1a')](0xcc)[_0x2a83('0x1b')]();});}};}function handleEntityNotFound(_0xf539db,_0x18cb87){return function(_0x568d91){if(!_0x568d91){_0xf539db[_0x2a83('0x19')](0x194);}return _0x568d91;};}function handleError(_0x50fba0,_0x470e10){_0x470e10=_0x470e10||0x1f4;return function(_0x1bdfad){logger[_0x2a83('0x26')](_0x1bdfad[_0x2a83('0x27')]);if(_0x1bdfad[_0x2a83('0x28')]){delete _0x1bdfad[_0x2a83('0x28')];}_0x50fba0[_0x2a83('0x1a')](_0x470e10)[_0x2a83('0x29')](_0x1bdfad);};}exports[_0x2a83('0x2a')]=function(_0x453d6d,_0x2bdd5f){var _0x14b4d3={},_0x50e143={},_0x457356={'count':0x0,'rows':[]};var _0x576165=_['map'](db[_0x2a83('0x2b')][_0x2a83('0x2c')],function(_0x1b1882){return{'name':_0x1b1882[_0x2a83('0x2d')],'type':_0x1b1882['type'][_0x2a83('0x2e')]};});_0x50e143[_0x2a83('0x2f')]=_[_0x2a83('0x30')](_0x576165,_0x2a83('0x28'));_0x50e143[_0x2a83('0x31')]=_[_0x2a83('0x32')](_0x453d6d[_0x2a83('0x31')]);_0x50e143[_0x2a83('0x33')]=_[_0x2a83('0x34')](_0x50e143['model'],_0x50e143[_0x2a83('0x31')]);_0x14b4d3[_0x2a83('0x35')]=_[_0x2a83('0x34')](_0x50e143[_0x2a83('0x2f')],qs[_0x2a83('0x36')](_0x453d6d[_0x2a83('0x31')][_0x2a83('0x36')]));_0x14b4d3[_0x2a83('0x35')]=_0x14b4d3[_0x2a83('0x35')]['length']?_0x14b4d3[_0x2a83('0x35')]:_0x50e143['model'];if(!_0x453d6d[_0x2a83('0x31')][_0x2a83('0x37')]('nolimit')){_0x14b4d3[_0x2a83('0x1f')]=qs[_0x2a83('0x1f')](_0x453d6d['query'][_0x2a83('0x1f')]);_0x14b4d3[_0x2a83('0x1d')]=qs[_0x2a83('0x1d')](_0x453d6d['query'][_0x2a83('0x1d')]);}_0x14b4d3[_0x2a83('0x38')]=qs['sort'](_0x453d6d[_0x2a83('0x31')][_0x2a83('0x39')]);_0x14b4d3[_0x2a83('0x3a')]=qs['filters'](_[_0x2a83('0x3b')](_0x453d6d[_0x2a83('0x31')],_0x50e143['filters']),_0x576165);if(_0x453d6d[_0x2a83('0x31')][_0x2a83('0x3c')]){_0x14b4d3['where']=_['merge'](_0x14b4d3[_0x2a83('0x3a')],{'$or':_[_0x2a83('0x30')](_0x576165,function(_0x343816){if(_0x343816['type']!==_0x2a83('0x3d')){var _0x1be954={};_0x1be954[_0x343816[_0x2a83('0x28')]]={'$like':'%'+_0x453d6d[_0x2a83('0x31')]['filter']+'%'};return _0x1be954;}})});}_0x14b4d3=_[_0x2a83('0x3e')]({},_0x14b4d3,_0x453d6d[_0x2a83('0x3f')]);var _0x1e298d={'where':_0x14b4d3['where']};return db['VtigerAccount'][_0x2a83('0x20')](_0x1e298d)[_0x2a83('0x25')](function(_0x57bcf0){_0x457356['count']=_0x57bcf0;if(_0x453d6d['query'][_0x2a83('0x40')]){_0x14b4d3[_0x2a83('0x41')]=[{'all':!![]}];}return db[_0x2a83('0x2b')][_0x2a83('0x42')](_0x14b4d3);})[_0x2a83('0x25')](function(_0x1b507d){_0x457356[_0x2a83('0x43')]=_0x1b507d;return _0x457356;})[_0x2a83('0x25')](respondWithFilteredResult(_0x2bdd5f,_0x14b4d3))['catch'](handleError(_0x2bdd5f,null));};exports['show']=function(_0x460dba,_0x3efd2d){var _0x31ed5b={'raw':![],'where':{'id':_0x460dba[_0x2a83('0x44')]['id']}},_0x5eb7b4={};_0x5eb7b4['model']=_['keys'](db[_0x2a83('0x2b')][_0x2a83('0x2c')]);_0x5eb7b4[_0x2a83('0x31')]=_['keys'](_0x460dba[_0x2a83('0x31')]);_0x5eb7b4[_0x2a83('0x33')]=_['intersection'](_0x5eb7b4[_0x2a83('0x2f')],_0x5eb7b4['query']);_0x31ed5b[_0x2a83('0x35')]=_['intersection'](_0x5eb7b4[_0x2a83('0x2f')],qs[_0x2a83('0x36')](_0x460dba['query']['fields']));_0x31ed5b[_0x2a83('0x35')]=_0x31ed5b[_0x2a83('0x35')][_0x2a83('0x45')]?_0x31ed5b['attributes']:_0x5eb7b4[_0x2a83('0x2f')];if(_0x460dba['query']['includeAll']){_0x31ed5b[_0x2a83('0x41')]=[{'all':!![]}];}_0x31ed5b=_[_0x2a83('0x3e')]({},_0x31ed5b,_0x460dba[_0x2a83('0x3f')]);return db[_0x2a83('0x2b')][_0x2a83('0x46')](_0x31ed5b)[_0x2a83('0x25')](handleEntityNotFound(_0x3efd2d,null))[_0x2a83('0x25')](respondWithResult(_0x3efd2d,null))[_0x2a83('0x47')](handleError(_0x3efd2d,null));};exports[_0x2a83('0x48')]=function(_0x44ffff,_0x12a4aa){return db[_0x2a83('0x2b')][_0x2a83('0x48')](_0x44ffff[_0x2a83('0x49')],{})[_0x2a83('0x25')](respondWithResult(_0x12a4aa,0xc9))[_0x2a83('0x47')](handleError(_0x12a4aa,null));};exports[_0x2a83('0x4a')]=function(_0x201cac,_0x21e736){if(_0x201cac[_0x2a83('0x49')]['id']){delete _0x201cac[_0x2a83('0x49')]['id'];}return db[_0x2a83('0x2b')][_0x2a83('0x46')]({'where':{'id':_0x201cac[_0x2a83('0x44')]['id']}})[_0x2a83('0x25')](handleEntityNotFound(_0x21e736,null))['then'](saveUpdates(_0x201cac[_0x2a83('0x49')],null))[_0x2a83('0x25')](respondWithResult(_0x21e736,null))[_0x2a83('0x47')](handleError(_0x21e736,null));};exports[_0x2a83('0x4b')]=function(_0x30fdb6,_0xcbe9f0){return db[_0x2a83('0x2b')][_0x2a83('0x46')]({'where':{'id':_0x30fdb6[_0x2a83('0x44')]['id']}})[_0x2a83('0x25')](handleEntityNotFound(_0xcbe9f0,null))[_0x2a83('0x25')](removeEntity(_0xcbe9f0,null))[_0x2a83('0x47')](handleError(_0xcbe9f0,null));};exports[_0x2a83('0x4c')]=function(_0x58ff04,_0x2c17ab,_0x3a63a2){var _0x1069fd={};var _0x11fe86={};var _0x2c7d50;var _0x240d79;return db[_0x2a83('0x2b')][_0x2a83('0x4d')]({'where':{'id':_0x58ff04[_0x2a83('0x44')]['id']}})[_0x2a83('0x25')](handleEntityNotFound(_0x2c17ab,null))[_0x2a83('0x25')](function(_0x472cb4){if(_0x472cb4){_0x2c7d50=_0x472cb4;_0x11fe86['model']=_[_0x2a83('0x32')](db['VtigerConfiguration'][_0x2a83('0x2c')]);_0x11fe86['query']=_['keys'](_0x58ff04[_0x2a83('0x31')]);_0x11fe86['filters']=_[_0x2a83('0x34')](_0x11fe86[_0x2a83('0x2f')],_0x11fe86[_0x2a83('0x31')]);_0x1069fd['attributes']=_['intersection'](_0x11fe86[_0x2a83('0x2f')],qs[_0x2a83('0x36')](_0x58ff04['query'][_0x2a83('0x36')]));_0x1069fd[_0x2a83('0x35')]=_0x1069fd[_0x2a83('0x35')]['length']?_0x1069fd[_0x2a83('0x35')]:_0x11fe86[_0x2a83('0x2f')];_0x1069fd[_0x2a83('0x38')]=qs[_0x2a83('0x39')](_0x58ff04[_0x2a83('0x31')][_0x2a83('0x39')]);_0x1069fd[_0x2a83('0x3a')]=qs['filters'](_['pick'](_0x58ff04['query'],_0x11fe86[_0x2a83('0x33')]));if(_0x58ff04[_0x2a83('0x31')]['filter']){_0x1069fd[_0x2a83('0x3a')]=_[_0x2a83('0x3e')](_0x1069fd[_0x2a83('0x3a')],{'$or':_['map'](_0x1069fd[_0x2a83('0x35')],function(_0x1c5423){var _0x197f33={};_0x197f33[_0x1c5423]={'$like':'%'+_0x58ff04[_0x2a83('0x31')][_0x2a83('0x3c')]+'%'};return _0x197f33;})});}_0x1069fd=_['merge']({},_0x1069fd,_0x58ff04['options']);return _0x2c7d50[_0x2a83('0x4c')](_0x1069fd);}})['then'](function(_0x5b229e){if(_0x5b229e){_0x240d79=_0x5b229e[_0x2a83('0x45')];if(!_0x58ff04[_0x2a83('0x31')][_0x2a83('0x37')](_0x2a83('0x4e'))){_0x1069fd[_0x2a83('0x1f')]=qs['limit'](_0x58ff04[_0x2a83('0x31')][_0x2a83('0x1f')]);_0x1069fd[_0x2a83('0x1d')]=qs['offset'](_0x58ff04[_0x2a83('0x31')][_0x2a83('0x1d')]);}return _0x2c7d50[_0x2a83('0x4c')](_0x1069fd);}})[_0x2a83('0x25')](function(_0x25a999){if(_0x25a999){return _0x25a999?{'count':_0x240d79,'rows':_0x25a999}:null;}})[_0x2a83('0x25')](respondWithResult(_0x2c17ab,null))['catch'](handleError(_0x2c17ab,null));};exports[_0x2a83('0x4f')]=function(_0xf2e4b3,_0x22e373,_0x56daa4){if(_0xf2e4b3['body']['id']){delete _0xf2e4b3[_0x2a83('0x49')]['id'];}return db[_0x2a83('0x2b')][_0x2a83('0x4d')]({'where':{'id':_0xf2e4b3[_0x2a83('0x44')]['id']}})[_0x2a83('0x25')](handleEntityNotFound(_0x22e373,null))[_0x2a83('0x25')](function(_0x58c077){if(_0x58c077){_0xf2e4b3[_0x2a83('0x49')][_0x2a83('0x50')]=_0x58c077['id'];_0xf2e4b3[_0x2a83('0x49')][_0x2a83('0x51')]=integrations[_0x2a83('0x52')](_0xf2e4b3['body']['channel'],_0xf2e4b3[_0x2a83('0x49')]['type']);_0xf2e4b3[_0x2a83('0x49')][_0x2a83('0x53')]=integrations['getDescriptions'](_0xf2e4b3['body'][_0x2a83('0x54')],_0xf2e4b3[_0x2a83('0x49')][_0x2a83('0x55')]);return db[_0x2a83('0x56')][_0x2a83('0x48')](_0xf2e4b3[_0x2a83('0x49')],{'include':[{'model':db[_0x2a83('0x57')],'as':_0x2a83('0x51')},{'model':db[_0x2a83('0x57')],'as':_0x2a83('0x53')}]});}return null;})[_0x2a83('0x25')](respondWithResult(_0x22e373,null))['catch'](handleError(_0x22e373,null));};var md5=require(_0x2a83('0x58'));exports['getFields']=function(_0x37b140,_0x59e90f,_0x4fa683){var _0x327d3f=null;var _0x23cc8e=null;var _0x34b64c=null;var _0x3d0aa7=null;var _0x194812='';return db['VtigerAccount']['findOne']({'where':{'id':_0x37b140[_0x2a83('0x44')]['id']},'attributes':['id',_0x2a83('0x28'),_0x2a83('0x59'),_0x2a83('0x5a'),_0x2a83('0x5b'),'remoteUri','serverUrl',_0x2a83('0x5c')]})[_0x2a83('0x25')](handleEntityNotFound(_0x59e90f,null))[_0x2a83('0x25')](function(_0x37b1f8){if(_0x37b1f8){_0x327d3f=_0x37b1f8[_0x2a83('0x59')];_0x23cc8e=_0x37b1f8[_0x2a83('0x5c')];_0x34b64c=_0x37b1f8[_0x2a83('0x5b')];_0x194812=_0x37b1f8[_0x2a83('0x5d')];var _0xebd7cd=_0x194812[_0x2a83('0x5e')](-0x1);if(_0xebd7cd==='/'){_0x194812=_0x194812[_0x2a83('0x5f')](0x0,_0x194812[_0x2a83('0x60')](_0xebd7cd));}_0x3d0aa7=util['format'](_0x2a83('0x61'),_0x194812);var _0xa8c2ee={'method':_0x2a83('0x62'),'uri':_0x3d0aa7,'qs':{'operation':_0x2a83('0x63'),'username':_0x37b1f8['username']},'json':!![]};return rp(_0xa8c2ee);}})[_0x2a83('0x25')](function(_0x2454ad){if(_0x2454ad[_0x2a83('0x64')]){var _0x30d1e7={'method':'POST','uri':_0x3d0aa7,'form':{'operation':_0x2a83('0x65'),'username':_0x327d3f,'accessKey':md5(_0x2454ad[_0x2a83('0x66')][_0x2a83('0x67')]+_0x23cc8e)},'json':!![]};return rp(_0x30d1e7);}})[_0x2a83('0x25')](function(_0xb55c08){if(_0xb55c08['success']){var _0x2ae672={'method':'GET','uri':_0x3d0aa7,'qs':{'operation':_0x2a83('0x68'),'username':_0x327d3f,'sessionName':_0xb55c08[_0x2a83('0x66')][_0x2a83('0x69')],'elementType':_0x34b64c},'json':!![]};return rp(_0x2ae672);}})[_0x2a83('0x25')](function(_0x390f7a){if(_0x390f7a[_0x2a83('0x64')]){var _0x192f9e=[_0x2a83('0x6a'),_0x2a83('0x6b'),'owner'];_['remove'](_0x390f7a['result'][_0x2a83('0x36')],function(_0x71c900){return _0x192f9e[_0x2a83('0x6c')](_0x71c900[_0x2a83('0x55')][_0x2a83('0x28')]);});_[_0x2a83('0x6d')](_0x390f7a[_0x2a83('0x66')][_0x2a83('0x36')],function(_0x4fb014){return _0x4fb014['editable']===_0x2a83('0x6e');});return{'count':_0x390f7a['result'][_0x2a83('0x36')][_0x2a83('0x45')],'rows':_['map'](_0x390f7a[_0x2a83('0x66')][_0x2a83('0x36')],function(_0x135cd9){return{'id':_0x135cd9['name'],'name':_0x135cd9['label'],'custom':_[_0x2a83('0x6f')](_0x135cd9[_0x2a83('0x28')],'cf_')?!![]:![],'options':_0x135cd9[_0x2a83('0x55')][_0x2a83('0x28')]===_0x2a83('0x70')&&_0x135cd9[_0x2a83('0x55')][_0x2a83('0x71')][_0x2a83('0x45')]>0x0?_[_0x2a83('0x30')](_0x135cd9[_0x2a83('0x55')][_0x2a83('0x71')],function(_0x3ec558){return{'name':_0x3ec558[_0x2a83('0x72')],'value':_0x3ec558[_0x2a83('0x73')]};}):[]};})};}})[_0x2a83('0x25')](respondWithResult(_0x59e90f,null))[_0x2a83('0x47')](function(_0x31e441){console[_0x2a83('0x74')]('vTiger\x20error:\x20'+_0x31e441);var _0xb8764b=_0x37b140[_0x2a83('0x31')]['test']?0x1f4:_0x31e441[_0x2a83('0x75')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s',_0x2a83('0x76'),_0xb8764b,JSON[_0x2a83('0x77')](_0x31e441));delete _0x31e441[_0x2a83('0x28')];if(_0xb8764b===0x191){_0xb8764b=0x190;}_0x59e90f[_0x2a83('0x1a')](_0xb8764b)[_0x2a83('0x29')](_0x37b140[_0x2a83('0x31')][_0x2a83('0x78')]?{'message':'Wrong\x20credentials','statusCode':_0x31e441['statusCode']}:_0x31e441);});};
\ No newline at end of file
+var _0xc797=['fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','VtigerAccount','include','findAll','show','params','includeAll','create','catch','body','find','VtigerConfiguration','order','getConfigurations','addConfiguration','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','VtigerField','getFields','description','remoteUri','serverUrl','username','accessKey','substring','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','POST','login','result','token','describe','sessionName','autogenerated','remove','includes','editable','false','label','startsWith','cf_','picklist','picklistValues','value','test','statusCode','error','Wrong\x20credentials','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','undefined','limit','count','set','apply','save','update','then','destroy','end','stack','name','send','index','map','rawAttributes'];(function(_0x26033f,_0x9dbe5f){var _0x428a27=function(_0x545930){while(--_0x545930){_0x26033f['push'](_0x26033f['shift']());}};_0x428a27(++_0x9dbe5f);}(_0xc797,0x1ba));var _0x7c79=function(_0x11417f,_0x2abc8c){_0x11417f=_0x11417f-0x0;var _0xfb6fb7=_0xc797[_0x11417f];return _0xfb6fb7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7c79('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7c79('0x1'));var rp=require(_0x7c79('0x2'));var moment=require(_0x7c79('0x3'));var BPromise=require(_0x7c79('0x4'));var Mustache=require(_0x7c79('0x5'));var util=require(_0x7c79('0x6'));var path=require(_0x7c79('0x7'));var sox=require(_0x7c79('0x8'));var csv=require(_0x7c79('0x9'));var ejs=require(_0x7c79('0xa'));var fs=require('fs');var fs_extra=require(_0x7c79('0xb'));var _=require(_0x7c79('0xc'));var squel=require('squel');var crypto=require(_0x7c79('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x7c79('0xe'));var toCsv=require(_0x7c79('0x9'));var querystring=require(_0x7c79('0xf'));var Papa=require(_0x7c79('0x10'));var Redis=require(_0x7c79('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x7c79('0x12'));var as=require(_0x7c79('0x13'));var hardwareService=require(_0x7c79('0x14'));var logger=require('../../config/logger')(_0x7c79('0x15'));var utils=require(_0x7c79('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x7c79('0x17'));var db=require(_0x7c79('0x18'))['db'];var integrations=require(_0x7c79('0x19'));function respondWithStatusCode(_0x1ce8bb,_0x4748db){_0x4748db=_0x4748db||0xcc;return function(_0x1364e2){if(_0x1364e2){return _0x1ce8bb[_0x7c79('0x1a')](_0x4748db);}return _0x1ce8bb['status'](_0x4748db)['end']();};}function respondWithResult(_0x43af30,_0x5e32c0){_0x5e32c0=_0x5e32c0||0xc8;return function(_0x5a217d){if(_0x5a217d){return _0x43af30[_0x7c79('0x1b')](_0x5e32c0)[_0x7c79('0x1c')](_0x5a217d);}};}function respondWithFilteredResult(_0x206617,_0x59ba00){return function(_0x32a9a0){if(_0x32a9a0){var _0x365372=typeof _0x59ba00[_0x7c79('0x1d')]===_0x7c79('0x1e')&&typeof _0x59ba00[_0x7c79('0x1f')]===_0x7c79('0x1e');var _0x489e1a=_0x32a9a0[_0x7c79('0x20')];var _0x17ce16=_0x365372?0x0:_0x59ba00[_0x7c79('0x1d')];var _0x3b277d=_0x365372?_0x32a9a0[_0x7c79('0x20')]:_0x59ba00[_0x7c79('0x1d')]+_0x59ba00['limit'];var _0x3585c0;if(_0x3b277d>=_0x489e1a){_0x3b277d=_0x489e1a;_0x3585c0=0xc8;}else{_0x3585c0=0xce;}_0x206617['status'](_0x3585c0);return _0x206617[_0x7c79('0x21')]('Content-Range',_0x17ce16+'-'+_0x3b277d+'/'+_0x489e1a)[_0x7c79('0x1c')](_0x32a9a0);}return null;};}function patchUpdates(_0xd56865){return function(_0x597abc){try{jsonpatch[_0x7c79('0x22')](_0x597abc,_0xd56865,!![]);}catch(_0x30616d){return BPromise['reject'](_0x30616d);}return _0x597abc[_0x7c79('0x23')]();};}function saveUpdates(_0x3567d3,_0x559cfc){return function(_0x4e0e8a){if(_0x4e0e8a){return _0x4e0e8a[_0x7c79('0x24')](_0x3567d3)[_0x7c79('0x25')](function(_0x1fa358){return _0x1fa358;});}return null;};}function removeEntity(_0xcb2ea4,_0x4051c3){return function(_0x285d45){if(_0x285d45){return _0x285d45[_0x7c79('0x26')]()['then'](function(){_0xcb2ea4[_0x7c79('0x1b')](0xcc)[_0x7c79('0x27')]();});}};}function handleEntityNotFound(_0x1f0e5e,_0x303fbe){return function(_0x5778e1){if(!_0x5778e1){_0x1f0e5e[_0x7c79('0x1a')](0x194);}return _0x5778e1;};}function handleError(_0x524430,_0x2b1ace){_0x2b1ace=_0x2b1ace||0x1f4;return function(_0x1a06c8){logger['error'](_0x1a06c8[_0x7c79('0x28')]);if(_0x1a06c8[_0x7c79('0x29')]){delete _0x1a06c8[_0x7c79('0x29')];}_0x524430[_0x7c79('0x1b')](_0x2b1ace)[_0x7c79('0x2a')](_0x1a06c8);};}exports[_0x7c79('0x2b')]=function(_0x53a6a8,_0x4d1732){var _0xc2d7b0={},_0x409fb4={},_0x5b5448={'count':0x0,'rows':[]};var _0x15109a=_[_0x7c79('0x2c')](db['VtigerAccount'][_0x7c79('0x2d')],function(_0x3d71f8){return{'name':_0x3d71f8[_0x7c79('0x2e')],'type':_0x3d71f8[_0x7c79('0x2f')][_0x7c79('0x30')]};});_0x409fb4[_0x7c79('0x31')]=_[_0x7c79('0x2c')](_0x15109a,_0x7c79('0x29'));_0x409fb4['query']=_[_0x7c79('0x32')](_0x53a6a8[_0x7c79('0x33')]);_0x409fb4[_0x7c79('0x34')]=_[_0x7c79('0x35')](_0x409fb4[_0x7c79('0x31')],_0x409fb4['query']);_0xc2d7b0[_0x7c79('0x36')]=_[_0x7c79('0x35')](_0x409fb4[_0x7c79('0x31')],qs['fields'](_0x53a6a8['query'][_0x7c79('0x37')]));_0xc2d7b0['attributes']=_0xc2d7b0[_0x7c79('0x36')][_0x7c79('0x38')]?_0xc2d7b0['attributes']:_0x409fb4[_0x7c79('0x31')];if(!_0x53a6a8['query'][_0x7c79('0x39')](_0x7c79('0x3a'))){_0xc2d7b0[_0x7c79('0x1f')]=qs[_0x7c79('0x1f')](_0x53a6a8[_0x7c79('0x33')][_0x7c79('0x1f')]);_0xc2d7b0[_0x7c79('0x1d')]=qs[_0x7c79('0x1d')](_0x53a6a8[_0x7c79('0x33')][_0x7c79('0x1d')]);}_0xc2d7b0['order']=qs[_0x7c79('0x3b')](_0x53a6a8[_0x7c79('0x33')][_0x7c79('0x3b')]);_0xc2d7b0[_0x7c79('0x3c')]=qs[_0x7c79('0x34')](_[_0x7c79('0x3d')](_0x53a6a8[_0x7c79('0x33')],_0x409fb4[_0x7c79('0x34')]),_0x15109a);if(_0x53a6a8[_0x7c79('0x33')][_0x7c79('0x3e')]){_0xc2d7b0[_0x7c79('0x3c')]=_[_0x7c79('0x3f')](_0xc2d7b0[_0x7c79('0x3c')],{'$or':_[_0x7c79('0x2c')](_0x15109a,function(_0x185a53){if(_0x185a53['type']!==_0x7c79('0x40')){var _0x53108f={};_0x53108f[_0x185a53['name']]={'$like':'%'+_0x53a6a8['query'][_0x7c79('0x3e')]+'%'};return _0x53108f;}})});}_0xc2d7b0=_['merge']({},_0xc2d7b0,_0x53a6a8[_0x7c79('0x41')]);var _0x4261e7={'where':_0xc2d7b0[_0x7c79('0x3c')]};return db[_0x7c79('0x42')][_0x7c79('0x20')](_0x4261e7)[_0x7c79('0x25')](function(_0x18811e){_0x5b5448['count']=_0x18811e;if(_0x53a6a8[_0x7c79('0x33')]['includeAll']){_0xc2d7b0[_0x7c79('0x43')]=[{'all':!![]}];}return db['VtigerAccount'][_0x7c79('0x44')](_0xc2d7b0);})[_0x7c79('0x25')](function(_0x497202){_0x5b5448['rows']=_0x497202;return _0x5b5448;})[_0x7c79('0x25')](respondWithFilteredResult(_0x4d1732,_0xc2d7b0))['catch'](handleError(_0x4d1732,null));};exports[_0x7c79('0x45')]=function(_0x16eb99,_0x439ec4){var _0x287c36={'raw':![],'where':{'id':_0x16eb99[_0x7c79('0x46')]['id']}},_0x4fe789={};_0x4fe789[_0x7c79('0x31')]=_[_0x7c79('0x32')](db[_0x7c79('0x42')]['rawAttributes']);_0x4fe789[_0x7c79('0x33')]=_[_0x7c79('0x32')](_0x16eb99[_0x7c79('0x33')]);_0x4fe789['filters']=_[_0x7c79('0x35')](_0x4fe789['model'],_0x4fe789[_0x7c79('0x33')]);_0x287c36[_0x7c79('0x36')]=_[_0x7c79('0x35')](_0x4fe789[_0x7c79('0x31')],qs['fields'](_0x16eb99[_0x7c79('0x33')][_0x7c79('0x37')]));_0x287c36[_0x7c79('0x36')]=_0x287c36[_0x7c79('0x36')]['length']?_0x287c36[_0x7c79('0x36')]:_0x4fe789[_0x7c79('0x31')];if(_0x16eb99[_0x7c79('0x33')][_0x7c79('0x47')]){_0x287c36['include']=[{'all':!![]}];}_0x287c36=_['merge']({},_0x287c36,_0x16eb99[_0x7c79('0x41')]);return db['VtigerAccount']['find'](_0x287c36)[_0x7c79('0x25')](handleEntityNotFound(_0x439ec4,null))[_0x7c79('0x25')](respondWithResult(_0x439ec4,null))['catch'](handleError(_0x439ec4,null));};exports['create']=function(_0x20615c,_0x582999){return db[_0x7c79('0x42')][_0x7c79('0x48')](_0x20615c['body'],{})['then'](respondWithResult(_0x582999,0xc9))[_0x7c79('0x49')](handleError(_0x582999,null));};exports[_0x7c79('0x24')]=function(_0x468669,_0x314a51){if(_0x468669['body']['id']){delete _0x468669[_0x7c79('0x4a')]['id'];}return db[_0x7c79('0x42')][_0x7c79('0x4b')]({'where':{'id':_0x468669['params']['id']}})['then'](handleEntityNotFound(_0x314a51,null))['then'](saveUpdates(_0x468669[_0x7c79('0x4a')],null))[_0x7c79('0x25')](respondWithResult(_0x314a51,null))[_0x7c79('0x49')](handleError(_0x314a51,null));};exports[_0x7c79('0x26')]=function(_0x5a7bf7,_0x38ddc8){return db[_0x7c79('0x42')][_0x7c79('0x4b')]({'where':{'id':_0x5a7bf7[_0x7c79('0x46')]['id']}})[_0x7c79('0x25')](handleEntityNotFound(_0x38ddc8,null))[_0x7c79('0x25')](removeEntity(_0x38ddc8,null))[_0x7c79('0x49')](handleError(_0x38ddc8,null));};exports['getConfigurations']=function(_0x450d7f,_0x603311,_0x4419db){var _0x31f794={};var _0x506da2={};var _0x114cc1;var _0x337f60;return db[_0x7c79('0x42')]['findOne']({'where':{'id':_0x450d7f[_0x7c79('0x46')]['id']}})[_0x7c79('0x25')](handleEntityNotFound(_0x603311,null))['then'](function(_0x7a8ab1){if(_0x7a8ab1){_0x114cc1=_0x7a8ab1;_0x506da2[_0x7c79('0x31')]=_[_0x7c79('0x32')](db[_0x7c79('0x4c')][_0x7c79('0x2d')]);_0x506da2['query']=_[_0x7c79('0x32')](_0x450d7f['query']);_0x506da2['filters']=_[_0x7c79('0x35')](_0x506da2[_0x7c79('0x31')],_0x506da2[_0x7c79('0x33')]);_0x31f794[_0x7c79('0x36')]=_[_0x7c79('0x35')](_0x506da2['model'],qs[_0x7c79('0x37')](_0x450d7f[_0x7c79('0x33')]['fields']));_0x31f794[_0x7c79('0x36')]=_0x31f794[_0x7c79('0x36')][_0x7c79('0x38')]?_0x31f794[_0x7c79('0x36')]:_0x506da2['model'];_0x31f794[_0x7c79('0x4d')]=qs['sort'](_0x450d7f[_0x7c79('0x33')][_0x7c79('0x3b')]);_0x31f794[_0x7c79('0x3c')]=qs['filters'](_[_0x7c79('0x3d')](_0x450d7f[_0x7c79('0x33')],_0x506da2[_0x7c79('0x34')]));if(_0x450d7f[_0x7c79('0x33')][_0x7c79('0x3e')]){_0x31f794[_0x7c79('0x3c')]=_[_0x7c79('0x3f')](_0x31f794['where'],{'$or':_[_0x7c79('0x2c')](_0x31f794[_0x7c79('0x36')],function(_0x314c7d){var _0x3e81fb={};_0x3e81fb[_0x314c7d]={'$like':'%'+_0x450d7f['query'][_0x7c79('0x3e')]+'%'};return _0x3e81fb;})});}_0x31f794=_[_0x7c79('0x3f')]({},_0x31f794,_0x450d7f[_0x7c79('0x41')]);return _0x114cc1['getConfigurations'](_0x31f794);}})[_0x7c79('0x25')](function(_0x3b5999){if(_0x3b5999){_0x337f60=_0x3b5999[_0x7c79('0x38')];if(!_0x450d7f[_0x7c79('0x33')][_0x7c79('0x39')](_0x7c79('0x3a'))){_0x31f794['limit']=qs[_0x7c79('0x1f')](_0x450d7f[_0x7c79('0x33')][_0x7c79('0x1f')]);_0x31f794[_0x7c79('0x1d')]=qs['offset'](_0x450d7f['query'][_0x7c79('0x1d')]);}return _0x114cc1[_0x7c79('0x4e')](_0x31f794);}})['then'](function(_0x410135){if(_0x410135){return _0x410135?{'count':_0x337f60,'rows':_0x410135}:null;}})['then'](respondWithResult(_0x603311,null))[_0x7c79('0x49')](handleError(_0x603311,null));};exports[_0x7c79('0x4f')]=function(_0x2961cb,_0x420fc6,_0x3f30ec){if(_0x2961cb['body']['id']){delete _0x2961cb['body']['id'];}return db[_0x7c79('0x42')][_0x7c79('0x50')]({'where':{'id':_0x2961cb['params']['id']}})['then'](handleEntityNotFound(_0x420fc6,null))[_0x7c79('0x25')](function(_0x2cc28e){if(_0x2cc28e){_0x2961cb[_0x7c79('0x4a')][_0x7c79('0x51')]=_0x2cc28e['id'];_0x2961cb[_0x7c79('0x4a')][_0x7c79('0x52')]=integrations[_0x7c79('0x53')](_0x2961cb['body'][_0x7c79('0x54')],_0x2961cb['body'][_0x7c79('0x2f')]);_0x2961cb[_0x7c79('0x4a')][_0x7c79('0x55')]=integrations[_0x7c79('0x56')](_0x2961cb[_0x7c79('0x4a')][_0x7c79('0x54')],_0x2961cb[_0x7c79('0x4a')]['type']);return db[_0x7c79('0x4c')][_0x7c79('0x48')](_0x2961cb[_0x7c79('0x4a')],{'include':[{'model':db[_0x7c79('0x57')],'as':_0x7c79('0x52')},{'model':db[_0x7c79('0x57')],'as':_0x7c79('0x55')}]});}return null;})['then'](respondWithResult(_0x420fc6,null))[_0x7c79('0x49')](handleError(_0x420fc6,null));};var md5=require('md5');exports[_0x7c79('0x58')]=function(_0x32ea69,_0x38b2c0,_0x5eedb6){var _0x417a17=null;var _0x233478=null;var _0x43023e=null;var _0x4b2002=null;var _0x4da2ad='';return db[_0x7c79('0x42')][_0x7c79('0x50')]({'where':{'id':_0x32ea69[_0x7c79('0x46')]['id']},'attributes':['id','name','username',_0x7c79('0x59'),'moduleName',_0x7c79('0x5a'),_0x7c79('0x5b'),'accessKey']})[_0x7c79('0x25')](handleEntityNotFound(_0x38b2c0,null))[_0x7c79('0x25')](function(_0x349813){if(_0x349813){_0x417a17=_0x349813[_0x7c79('0x5c')];_0x233478=_0x349813[_0x7c79('0x5d')];_0x43023e=_0x349813['moduleName'];_0x4da2ad=_0x349813['remoteUri'];var _0x480347=_0x4da2ad['slice'](-0x1);if(_0x480347==='/'){_0x4da2ad=_0x4da2ad[_0x7c79('0x5e')](0x0,_0x4da2ad[_0x7c79('0x5f')](_0x480347));}_0x4b2002=util[_0x7c79('0x60')](_0x7c79('0x61'),_0x4da2ad);var _0x70c807={'method':_0x7c79('0x62'),'uri':_0x4b2002,'qs':{'operation':_0x7c79('0x63'),'username':_0x349813[_0x7c79('0x5c')]},'json':!![]};return rp(_0x70c807);}})[_0x7c79('0x25')](function(_0x1bbb26){if(_0x1bbb26[_0x7c79('0x64')]){var _0x1d4c24={'method':_0x7c79('0x65'),'uri':_0x4b2002,'form':{'operation':_0x7c79('0x66'),'username':_0x417a17,'accessKey':md5(_0x1bbb26[_0x7c79('0x67')][_0x7c79('0x68')]+_0x233478)},'json':!![]};return rp(_0x1d4c24);}})[_0x7c79('0x25')](function(_0x5efd2b){if(_0x5efd2b[_0x7c79('0x64')]){var _0x554ac2={'method':_0x7c79('0x62'),'uri':_0x4b2002,'qs':{'operation':_0x7c79('0x69'),'username':_0x417a17,'sessionName':_0x5efd2b[_0x7c79('0x67')][_0x7c79('0x6a')],'elementType':_0x43023e},'json':!![]};return rp(_0x554ac2);}})['then'](function(_0x425a4c){if(_0x425a4c['success']){var _0x31b499=[_0x7c79('0x6b'),'reference','owner'];_[_0x7c79('0x6c')](_0x425a4c['result'][_0x7c79('0x37')],function(_0x4da3b8){return _0x31b499[_0x7c79('0x6d')](_0x4da3b8[_0x7c79('0x2f')]['name']);});_[_0x7c79('0x6c')](_0x425a4c['result'][_0x7c79('0x37')],function(_0x214a13){return _0x214a13[_0x7c79('0x6e')]===_0x7c79('0x6f');});return{'count':_0x425a4c[_0x7c79('0x67')][_0x7c79('0x37')][_0x7c79('0x38')],'rows':_[_0x7c79('0x2c')](_0x425a4c['result'][_0x7c79('0x37')],function(_0x3d5cf8){return{'id':_0x3d5cf8[_0x7c79('0x29')],'name':_0x3d5cf8[_0x7c79('0x70')],'custom':_[_0x7c79('0x71')](_0x3d5cf8[_0x7c79('0x29')],_0x7c79('0x72'))?!![]:![],'options':_0x3d5cf8[_0x7c79('0x2f')][_0x7c79('0x29')]===_0x7c79('0x73')&&_0x3d5cf8[_0x7c79('0x2f')][_0x7c79('0x74')]['length']>0x0?_[_0x7c79('0x2c')](_0x3d5cf8['type'][_0x7c79('0x74')],function(_0x30f6bd){return{'name':_0x30f6bd[_0x7c79('0x70')],'value':_0x30f6bd[_0x7c79('0x75')]};}):[]};})};}})[_0x7c79('0x25')](respondWithResult(_0x38b2c0,null))['catch'](function(_0x12804d){console['log']('vTiger\x20error:\x20'+_0x12804d);var _0x527ef6=_0x32ea69[_0x7c79('0x33')][_0x7c79('0x76')]?0x1f4:_0x12804d[_0x7c79('0x77')]||0x1f4;logger[_0x7c79('0x78')]('getFields,\x20%s,\x20%s,\x20%s',_0x7c79('0x58'),_0x527ef6,JSON['stringify'](_0x12804d));delete _0x12804d['name'];if(_0x527ef6===0x191){_0x527ef6=0x190;}_0x38b2c0[_0x7c79('0x1b')](_0x527ef6)[_0x7c79('0x2a')](_0x32ea69[_0x7c79('0x33')]['test']?{'message':_0x7c79('0x79'),'statusCode':_0x12804d[_0x7c79('0x77')]}:_0x12804d);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe95d=['lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','exports','define','VtigerAccount','int_vtiger_accounts'];(function(_0x3ab353,_0x5d5283){var _0x1e2285=function(_0x55804f){while(--_0x55804f){_0x3ab353['push'](_0x3ab353['shift']());}};_0x1e2285(++_0x5d5283);}(_0xe95d,0x9c));var _0xde95=function(_0x2a1b33,_0x409f50){_0x2a1b33=_0x2a1b33-0x0;var _0x4c50e7=_0xe95d[_0x2a1b33];return _0x4c50e7;};'use strict';var _=require(_0xde95('0x0'));var util=require(_0xde95('0x1'));var logger=require('../../config/logger')(_0xde95('0x2'));var moment=require(_0xde95('0x3'));var BPromise=require(_0xde95('0x4'));var rp=require(_0xde95('0x5'));var fs=require('fs');var path=require(_0xde95('0x6'));var rimraf=require('rimraf');var config=require(_0xde95('0x7'));var attributes=require('./intVtigerAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0xde95('0x8')]=function(_0x56a799,_0x483839){return _0x56a799[_0xde95('0x9')](_0xde95('0xa'),attributes,{'tableName':_0xde95('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9416=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerAccount.attributes','../../components/integrations/configuration','exports','define','VtigerAccount','int_vtiger_accounts','lodash','util'];(function(_0x54fc38,_0x18b950){var _0x435fd2=function(_0x533bd6){while(--_0x533bd6){_0x54fc38['push'](_0x54fc38['shift']());}};_0x435fd2(++_0x18b950);}(_0x9416,0xde));var _0x6941=function(_0x505598,_0x479db5){_0x505598=_0x505598-0x0;var _0x140049=_0x9416[_0x505598];return _0x140049;};'use strict';var _=require(_0x6941('0x0'));var util=require(_0x6941('0x1'));var logger=require(_0x6941('0x2'))(_0x6941('0x3'));var moment=require(_0x6941('0x4'));var BPromise=require(_0x6941('0x5'));var rp=require(_0x6941('0x6'));var fs=require('fs');var path=require(_0x6941('0x7'));var rimraf=require(_0x6941('0x8'));var config=require(_0x6941('0x9'));var attributes=require(_0x6941('0xa'));var integrations=require(_0x6941('0xb'));module[_0x6941('0xc')]=function(_0x28f5b4,_0x104025){return _0x28f5b4[_0x6941('0xd')](_0x6941('0xe'),attributes,{'tableName':_0x6941('0xf'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetVtigerAccount','VtigerAccount','findAll','options','raw','attributes','include','map','model','then','ShowVtigerAccount','find','where','moment','bluebird','randomstring','ioredis'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x367361,_0x311488){_0x367361=_0x367361-0x0;var _0x195d2d=_0xcb91[_0x367361];return _0x195d2d;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1cb9('0x0'));var BPromise=require(_0x1cb9('0x1'));var rs=require(_0x1cb9('0x2'));var fs=require('fs');var Redis=require(_0x1cb9('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x1cb9('0x4'));var logger=require(_0x1cb9('0x5'))('rpc');var config=require(_0x1cb9('0x6'));var jayson=require(_0x1cb9('0x7'));var client=jayson['client'][_0x1cb9('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3f7deb,_0x4ffe20,_0x38737d){return new BPromise(function(_0x12567c,_0x59d1be){return client[_0x1cb9('0x9')](_0x3f7deb,_0x38737d)['then'](function(_0x567139){logger[_0x1cb9('0xa')](_0x1cb9('0xb'),_0x4ffe20,_0x1cb9('0xc'));logger[_0x1cb9('0xd')](_0x1cb9('0xe'),_0x4ffe20,'request\x20sent',JSON[_0x1cb9('0xf')](_0x567139));if(_0x567139[_0x1cb9('0x10')]){if(_0x567139[_0x1cb9('0x10')][_0x1cb9('0x11')]===0x1f4){logger[_0x1cb9('0x10')]('VtigerAccount,\x20%s,\x20%s',_0x4ffe20,_0x567139['error']['message']);return _0x59d1be(_0x567139[_0x1cb9('0x10')][_0x1cb9('0x12')]);}logger[_0x1cb9('0x10')](_0x1cb9('0xb'),_0x4ffe20,_0x567139['error'][_0x1cb9('0x12')]);return _0x12567c(_0x567139[_0x1cb9('0x10')][_0x1cb9('0x12')]);}else{logger[_0x1cb9('0xa')](_0x1cb9('0xb'),_0x4ffe20,'request\x20sent');_0x12567c(_0x567139['result'][_0x1cb9('0x12')]);}})[_0x1cb9('0x13')](function(_0x3904b7){logger[_0x1cb9('0x10')](_0x1cb9('0xb'),_0x4ffe20,_0x3904b7);_0x59d1be(_0x3904b7);});});}exports[_0x1cb9('0x14')]=function(_0x23d3a9){var _0x4e1340=this;return new Promise(function(_0x479d43,_0x1b2fa6){return db[_0x1cb9('0x15')][_0x1cb9('0x16')]({'raw':_0x23d3a9[_0x1cb9('0x17')]?_0x23d3a9[_0x1cb9('0x17')][_0x1cb9('0x18')]===undefined?!![]:![]:!![],'where':_0x23d3a9[_0x1cb9('0x17')]?_0x23d3a9['options']['where']||null:null,'attributes':_0x23d3a9[_0x1cb9('0x17')]?_0x23d3a9['options'][_0x1cb9('0x19')]||null:null,'limit':_0x23d3a9[_0x1cb9('0x17')]?_0x23d3a9['options']['limit']||null:null,'include':_0x23d3a9[_0x1cb9('0x17')]?_0x23d3a9[_0x1cb9('0x17')][_0x1cb9('0x1a')]?_[_0x1cb9('0x1b')](_0x23d3a9[_0x1cb9('0x17')][_0x1cb9('0x1a')],function(_0x59ebea){return{'model':db[_0x59ebea['model']],'as':_0x59ebea['as'],'attributes':_0x59ebea[_0x1cb9('0x19')],'include':_0x59ebea['include']?_[_0x1cb9('0x1b')](_0x59ebea[_0x1cb9('0x1a')],function(_0x69b4c8){return{'model':db[_0x69b4c8[_0x1cb9('0x1c')]],'as':_0x69b4c8['as'],'attributes':_0x69b4c8[_0x1cb9('0x19')],'include':_0x69b4c8['include']?_[_0x1cb9('0x1b')](_0x69b4c8[_0x1cb9('0x1a')],function(_0x4c8d76){return{'model':db[_0x4c8d76[_0x1cb9('0x1c')]],'as':_0x4c8d76['as'],'attributes':_0x4c8d76[_0x1cb9('0x19')]};}):[]};}):[]};}):[]:[]})[_0x1cb9('0x1d')](function(_0x1804fd){logger[_0x1cb9('0xa')](_0x1cb9('0x14'),_0x23d3a9);logger[_0x1cb9('0xd')](_0x1cb9('0x14'),_0x23d3a9,JSON[_0x1cb9('0xf')](_0x1804fd));_0x479d43(_0x1804fd);})[_0x1cb9('0x13')](function(_0x48888d){logger[_0x1cb9('0x10')]('GetVtigerAccount',_0x48888d[_0x1cb9('0x12')],_0x23d3a9);_0x1b2fa6(_0x4e1340['error'](0x1f4,_0x48888d[_0x1cb9('0x12')]));});});};exports[_0x1cb9('0x1e')]=function(_0x3cd7f5){var _0x2038aa=this;return new Promise(function(_0x561d89,_0x1c701f){return db['VtigerAccount'][_0x1cb9('0x1f')]({'raw':_0x3cd7f5[_0x1cb9('0x17')]?_0x3cd7f5[_0x1cb9('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x3cd7f5[_0x1cb9('0x17')]?_0x3cd7f5['options'][_0x1cb9('0x20')]||null:null,'attributes':_0x3cd7f5['options']?_0x3cd7f5[_0x1cb9('0x17')][_0x1cb9('0x19')]||null:null,'include':_0x3cd7f5[_0x1cb9('0x17')]?_0x3cd7f5[_0x1cb9('0x17')]['include']?_[_0x1cb9('0x1b')](_0x3cd7f5[_0x1cb9('0x17')][_0x1cb9('0x1a')],function(_0x91a1db){return{'model':db[_0x91a1db[_0x1cb9('0x1c')]],'as':_0x91a1db['as'],'attributes':_0x91a1db[_0x1cb9('0x19')],'include':_0x91a1db[_0x1cb9('0x1a')]?_[_0x1cb9('0x1b')](_0x91a1db[_0x1cb9('0x1a')],function(_0x1de287){return{'model':db[_0x1de287[_0x1cb9('0x1c')]],'as':_0x1de287['as'],'attributes':_0x1de287[_0x1cb9('0x19')],'include':_0x1de287[_0x1cb9('0x1a')]?_['map'](_0x1de287['include'],function(_0x299ff8){return{'model':db[_0x299ff8[_0x1cb9('0x1c')]],'as':_0x299ff8['as'],'attributes':_0x299ff8[_0x1cb9('0x19')]};}):[]};}):[]};}):[]:[]})[_0x1cb9('0x1d')](function(_0x385daa){logger[_0x1cb9('0xa')](_0x1cb9('0x1e'),_0x3cd7f5);logger[_0x1cb9('0xd')]('ShowVtigerAccount',_0x3cd7f5,JSON[_0x1cb9('0xf')](_0x385daa));_0x561d89(_0x385daa);})[_0x1cb9('0x13')](function(_0xefe136){logger['error'](_0x1cb9('0x1e'),_0xefe136['message'],_0x3cd7f5);_0x1c701f(_0x2038aa[_0x1cb9('0x10')](0x1f4,_0xefe136['message']));});});};
\ No newline at end of file
+var _0xbaf0=['VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','GetVtigerAccount','VtigerAccount','findAll','options','where','attributes','limit','include','model','map','ShowVtigerAccount','find','raw','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x24b852,_0x2bad67){var _0x180ad2=function(_0x454562){while(--_0x454562){_0x24b852['push'](_0x24b852['shift']());}};_0x180ad2(++_0x2bad67);}(_0xbaf0,0x12a));var _0x0baf=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xbaf0[_0x432682];return _0x463d05;};'use strict';var _=require('lodash');var util=require(_0x0baf('0x0'));var moment=require(_0x0baf('0x1'));var BPromise=require(_0x0baf('0x2'));var rs=require(_0x0baf('0x3'));var fs=require('fs');var Redis=require(_0x0baf('0x4'));var db=require(_0x0baf('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x0baf('0x6'))(_0x0baf('0x7'));var config=require(_0x0baf('0x8'));var jayson=require(_0x0baf('0x9'));var client=jayson[_0x0baf('0xa')][_0x0baf('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1a10b1,_0x2dcaac,_0x1d0a0d){return new BPromise(function(_0x5f5030,_0x11b947){return client['request'](_0x1a10b1,_0x1d0a0d)[_0x0baf('0xc')](function(_0x2c7442){logger[_0x0baf('0xd')](_0x0baf('0xe'),_0x2dcaac,_0x0baf('0xf'));logger[_0x0baf('0x10')](_0x0baf('0x11'),_0x2dcaac,_0x0baf('0xf'),JSON[_0x0baf('0x12')](_0x2c7442));if(_0x2c7442[_0x0baf('0x13')]){if(_0x2c7442[_0x0baf('0x13')]['code']===0x1f4){logger['error'](_0x0baf('0xe'),_0x2dcaac,_0x2c7442[_0x0baf('0x13')][_0x0baf('0x14')]);return _0x11b947(_0x2c7442[_0x0baf('0x13')]['message']);}logger[_0x0baf('0x13')]('VtigerAccount,\x20%s,\x20%s',_0x2dcaac,_0x2c7442[_0x0baf('0x13')][_0x0baf('0x14')]);return _0x5f5030(_0x2c7442[_0x0baf('0x13')][_0x0baf('0x14')]);}else{logger[_0x0baf('0xd')](_0x0baf('0xe'),_0x2dcaac,'request\x20sent');_0x5f5030(_0x2c7442['result'][_0x0baf('0x14')]);}})[_0x0baf('0x15')](function(_0x283408){logger[_0x0baf('0x13')](_0x0baf('0xe'),_0x2dcaac,_0x283408);_0x11b947(_0x283408);});});}exports[_0x0baf('0x16')]=function(_0x53c338){var _0x63c820=this;return new Promise(function(_0xfbecec,_0x1ef0e5){return db[_0x0baf('0x17')][_0x0baf('0x18')]({'raw':_0x53c338[_0x0baf('0x19')]?_0x53c338['options']['raw']===undefined?!![]:![]:!![],'where':_0x53c338[_0x0baf('0x19')]?_0x53c338[_0x0baf('0x19')][_0x0baf('0x1a')]||null:null,'attributes':_0x53c338[_0x0baf('0x19')]?_0x53c338[_0x0baf('0x19')][_0x0baf('0x1b')]||null:null,'limit':_0x53c338[_0x0baf('0x19')]?_0x53c338[_0x0baf('0x19')][_0x0baf('0x1c')]||null:null,'include':_0x53c338[_0x0baf('0x19')]?_0x53c338['options'][_0x0baf('0x1d')]?_['map'](_0x53c338[_0x0baf('0x19')]['include'],function(_0x4de74c){return{'model':db[_0x4de74c[_0x0baf('0x1e')]],'as':_0x4de74c['as'],'attributes':_0x4de74c['attributes'],'include':_0x4de74c['include']?_[_0x0baf('0x1f')](_0x4de74c[_0x0baf('0x1d')],function(_0x34e264){return{'model':db[_0x34e264[_0x0baf('0x1e')]],'as':_0x34e264['as'],'attributes':_0x34e264[_0x0baf('0x1b')],'include':_0x34e264['include']?_[_0x0baf('0x1f')](_0x34e264[_0x0baf('0x1d')],function(_0x1ca35a){return{'model':db[_0x1ca35a[_0x0baf('0x1e')]],'as':_0x1ca35a['as'],'attributes':_0x1ca35a[_0x0baf('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x0baf('0xc')](function(_0x453525){logger['info'](_0x0baf('0x16'),_0x53c338);logger[_0x0baf('0x10')](_0x0baf('0x16'),_0x53c338,JSON[_0x0baf('0x12')](_0x453525));_0xfbecec(_0x453525);})['catch'](function(_0x29dbdf){logger[_0x0baf('0x13')]('GetVtigerAccount',_0x29dbdf[_0x0baf('0x14')],_0x53c338);_0x1ef0e5(_0x63c820[_0x0baf('0x13')](0x1f4,_0x29dbdf[_0x0baf('0x14')]));});});};exports[_0x0baf('0x20')]=function(_0xd14f0f){var _0x366924=this;return new Promise(function(_0x213a6a,_0x57476f){return db[_0x0baf('0x17')][_0x0baf('0x21')]({'raw':_0xd14f0f[_0x0baf('0x19')]?_0xd14f0f[_0x0baf('0x19')][_0x0baf('0x22')]===undefined?!![]:![]:!![],'where':_0xd14f0f[_0x0baf('0x19')]?_0xd14f0f[_0x0baf('0x19')][_0x0baf('0x1a')]||null:null,'attributes':_0xd14f0f[_0x0baf('0x19')]?_0xd14f0f[_0x0baf('0x19')][_0x0baf('0x1b')]||null:null,'include':_0xd14f0f[_0x0baf('0x19')]?_0xd14f0f[_0x0baf('0x19')][_0x0baf('0x1d')]?_['map'](_0xd14f0f[_0x0baf('0x19')]['include'],function(_0x1aa474){return{'model':db[_0x1aa474[_0x0baf('0x1e')]],'as':_0x1aa474['as'],'attributes':_0x1aa474[_0x0baf('0x1b')],'include':_0x1aa474[_0x0baf('0x1d')]?_['map'](_0x1aa474[_0x0baf('0x1d')],function(_0x1d6575){return{'model':db[_0x1d6575['model']],'as':_0x1d6575['as'],'attributes':_0x1d6575[_0x0baf('0x1b')],'include':_0x1d6575[_0x0baf('0x1d')]?_[_0x0baf('0x1f')](_0x1d6575[_0x0baf('0x1d')],function(_0x1f60bd){return{'model':db[_0x1f60bd[_0x0baf('0x1e')]],'as':_0x1f60bd['as'],'attributes':_0x1f60bd[_0x0baf('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x0baf('0xc')](function(_0x4aa6ed){logger[_0x0baf('0xd')](_0x0baf('0x20'),_0xd14f0f);logger['debug'](_0x0baf('0x20'),_0xd14f0f,JSON['stringify'](_0x4aa6ed));_0x213a6a(_0x4aa6ed);})['catch'](function(_0x11bc49){logger[_0x0baf('0x13')]('ShowVtigerAccount',_0x11bc49['message'],_0xd14f0f);_0x57476f(_0x366924[_0x0baf('0x13')](0x1f4,_0x11bc49[_0x0baf('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfec3=['exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intVtigerConfiguration.controller','get','isAuthenticated','show','getFields','getSubjects','/:id/descriptions','post','put','/:id','update','destroy'];(function(_0x5354bb,_0x5f4f98){var _0x5a463f=function(_0x358539){while(--_0x358539){_0x5354bb['push'](_0x5354bb['shift']());}};_0x5a463f(++_0x5f4f98);}(_0xfec3,0x1ba));var _0x3fec=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xfec3[_0x19950b];return _0x3c6b41;};'use strict';var multer=require('multer');var util=require(_0x3fec('0x0'));var path=require('path');var timeout=require(_0x3fec('0x1'));var express=require(_0x3fec('0x2'));var router=express[_0x3fec('0x3')]();var fs_extra=require(_0x3fec('0x4'));var auth=require(_0x3fec('0x5'));var interaction=require(_0x3fec('0x6'));var config=require(_0x3fec('0x7'));var controller=require(_0x3fec('0x8'));router[_0x3fec('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x3fec('0x9')]('/:id',auth[_0x3fec('0xa')](),controller[_0x3fec('0xb')]);router[_0x3fec('0x9')]('/:id/fields',auth['isAuthenticated'](),controller[_0x3fec('0xc')]);router[_0x3fec('0x9')]('/:id/subjects',auth[_0x3fec('0xa')](),controller[_0x3fec('0xd')]);router[_0x3fec('0x9')](_0x3fec('0xe'),auth[_0x3fec('0xa')](),controller['getDescriptions']);router[_0x3fec('0xf')]('/',auth[_0x3fec('0xa')](),controller['create']);router[_0x3fec('0x10')](_0x3fec('0x11'),auth['isAuthenticated'](),controller[_0x3fec('0x12')]);router['delete'](_0x3fec('0x11'),auth[_0x3fec('0xa')](),controller[_0x3fec('0x13')]);module[_0x3fec('0x14')]=router;
\ No newline at end of file
+var _0x3ed7=['show','/:id/fields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','/:id','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intVtigerConfiguration.controller','isAuthenticated','get'];(function(_0x29d94e,_0xf386d6){var _0x106237=function(_0x327501){while(--_0x327501){_0x29d94e['push'](_0x29d94e['shift']());}};_0x106237(++_0xf386d6);}(_0x3ed7,0x1b6));var _0x73ed=function(_0x2008c0,_0x583df7){_0x2008c0=_0x2008c0-0x0;var _0x21dec2=_0x3ed7[_0x2008c0];return _0x21dec2;};'use strict';var multer=require(_0x73ed('0x0'));var util=require(_0x73ed('0x1'));var path=require(_0x73ed('0x2'));var timeout=require(_0x73ed('0x3'));var express=require(_0x73ed('0x4'));var router=express[_0x73ed('0x5')]();var fs_extra=require(_0x73ed('0x6'));var auth=require(_0x73ed('0x7'));var interaction=require(_0x73ed('0x8'));var config=require('../../config/environment');var controller=require(_0x73ed('0x9'));router['get']('/',auth[_0x73ed('0xa')](),controller['index']);router[_0x73ed('0xb')]('/:id',auth[_0x73ed('0xa')](),controller[_0x73ed('0xc')]);router['get'](_0x73ed('0xd'),auth[_0x73ed('0xa')](),controller['getFields']);router[_0x73ed('0xb')](_0x73ed('0xe'),auth[_0x73ed('0xa')](),controller[_0x73ed('0xf')]);router[_0x73ed('0xb')](_0x73ed('0x10'),auth[_0x73ed('0xa')](),controller[_0x73ed('0x11')]);router[_0x73ed('0x12')]('/',auth['isAuthenticated'](),controller[_0x73ed('0x13')]);router[_0x73ed('0x14')](_0x73ed('0x15'),auth['isAuthenticated'](),controller[_0x73ed('0x16')]);router['delete'](_0x73ed('0x15'),auth[_0x73ed('0xa')](),controller[_0x73ed('0x17')]);module[_0x73ed('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x02ae=['exports','STRING','sequelize'];(function(_0x392da7,_0x5d4eba){var _0x4ad96b=function(_0x18c63e){while(--_0x18c63e){_0x392da7['push'](_0x392da7['shift']());}};_0x4ad96b(++_0x5d4eba);}(_0x02ae,0xda));var _0xe02a=function(_0x35ad9d,_0x41b7b7){_0x35ad9d=_0x35ad9d-0x0;var _0x3f6ca3=_0x02ae[_0x35ad9d];return _0x3f6ca3;};'use strict';var Sequelize=require(_0xe02a('0x0'));module[_0xe02a('0x1')]={'name':{'type':Sequelize[_0xe02a('0x2')]},'description':{'type':Sequelize[_0xe02a('0x2')]}};
\ No newline at end of file
+var _0xc59c=['STRING','exports'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xc59c,0x17d));var _0xcc59=function(_0x9d304e,_0x571739){_0x9d304e=_0x9d304e-0x0;var _0x13f2c9=_0xc59c[_0x9d304e];return _0x13f2c9;};'use strict';var Sequelize=require('sequelize');module[_0xcc59('0x0')]={'name':{'type':Sequelize[_0xcc59('0x1')]},'description':{'type':Sequelize[_0xcc59('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb56f=['name','send','map','VtigerConfiguration','rawAttributes','type','key','model','query','filters','intersection','fields','length','attributes','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','create','body','params','destroy','find','getFields','VtigerField','pick','nolimit','findOne','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','save','update','then','end','error'];(function(_0x5d74e1,_0x44cd81){var _0x5b6e3=function(_0x2dd898){while(--_0x2dd898){_0x5d74e1['push'](_0x5d74e1['shift']());}};_0x5b6e3(++_0x44cd81);}(_0xb56f,0x113));var _0xfb56=function(_0x28c51b,_0x329fff){_0x28c51b=_0x28c51b-0x0;var _0x1e7d04=_0xb56f[_0x28c51b];return _0x1e7d04;};'use strict';var emlformat=require(_0xfb56('0x0'));var rimraf=require(_0xfb56('0x1'));var zipdir=require(_0xfb56('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfb56('0x3'));var moment=require(_0xfb56('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xfb56('0x5'));var util=require(_0xfb56('0x6'));var path=require('path');var sox=require(_0xfb56('0x7'));var csv=require(_0xfb56('0x8'));var ejs=require(_0xfb56('0x9'));var fs=require('fs');var fs_extra=require(_0xfb56('0xa'));var _=require(_0xfb56('0xb'));var squel=require(_0xfb56('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xfb56('0xd'));var toCsv=require(_0xfb56('0x8'));var querystring=require(_0xfb56('0xe'));var Papa=require(_0xfb56('0xf'));var Redis=require(_0xfb56('0x10'));var authService=require(_0xfb56('0x11'));var qs=require(_0xfb56('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xfb56('0x13'));var utils=require('../../config/utils');var config=require(_0xfb56('0x14'));var licenseUtil=require(_0xfb56('0x15'));var db=require(_0xfb56('0x16'))['db'];function respondWithStatusCode(_0x1c3d74,_0x52159b){_0x52159b=_0x52159b||0xcc;return function(_0x95b3eb){if(_0x95b3eb){return _0x1c3d74[_0xfb56('0x17')](_0x52159b);}return _0x1c3d74[_0xfb56('0x18')](_0x52159b)['end']();};}function respondWithResult(_0x1a9f3c,_0x4d2602){_0x4d2602=_0x4d2602||0xc8;return function(_0x550930){if(_0x550930){return _0x1a9f3c[_0xfb56('0x18')](_0x4d2602)[_0xfb56('0x19')](_0x550930);}};}function respondWithFilteredResult(_0xc1e894,_0xed4a16){return function(_0x1c1f80){if(_0x1c1f80){var _0x3664ac=typeof _0xed4a16[_0xfb56('0x1a')]===_0xfb56('0x1b')&&typeof _0xed4a16[_0xfb56('0x1c')]===_0xfb56('0x1b');var _0x355016=_0x1c1f80[_0xfb56('0x1d')];var _0xaa69ef=_0x3664ac?0x0:_0xed4a16[_0xfb56('0x1a')];var _0x11c7fa=_0x3664ac?_0x1c1f80[_0xfb56('0x1d')]:_0xed4a16['offset']+_0xed4a16['limit'];var _0x262672;if(_0x11c7fa>=_0x355016){_0x11c7fa=_0x355016;_0x262672=0xc8;}else{_0x262672=0xce;}_0xc1e894[_0xfb56('0x18')](_0x262672);return _0xc1e894[_0xfb56('0x1e')](_0xfb56('0x1f'),_0xaa69ef+'-'+_0x11c7fa+'/'+_0x355016)[_0xfb56('0x19')](_0x1c1f80);}return null;};}function patchUpdates(_0x116bef){return function(_0x2f64c7){try{jsonpatch['apply'](_0x2f64c7,_0x116bef,!![]);}catch(_0x2d9327){return BPromise['reject'](_0x2d9327);}return _0x2f64c7[_0xfb56('0x20')]();};}function saveUpdates(_0x999533,_0x3a1e6c){return function(_0x340d47){if(_0x340d47){return _0x340d47[_0xfb56('0x21')](_0x999533)[_0xfb56('0x22')](function(_0xb7076d){return _0xb7076d;});}return null;};}function removeEntity(_0x18d1fe,_0x189269){return function(_0x2c924c){if(_0x2c924c){return _0x2c924c['destroy']()[_0xfb56('0x22')](function(){_0x18d1fe[_0xfb56('0x18')](0xcc)[_0xfb56('0x23')]();});}};}function handleEntityNotFound(_0x158869,_0x14b6bc){return function(_0x57b4a8){if(!_0x57b4a8){_0x158869[_0xfb56('0x17')](0x194);}return _0x57b4a8;};}function handleError(_0x478c76,_0x135a43){_0x135a43=_0x135a43||0x1f4;return function(_0x4cda28){logger[_0xfb56('0x24')](_0x4cda28['stack']);if(_0x4cda28[_0xfb56('0x25')]){delete _0x4cda28[_0xfb56('0x25')];}_0x478c76[_0xfb56('0x18')](_0x135a43)[_0xfb56('0x26')](_0x4cda28);};}exports['index']=function(_0x41c6f4,_0x42fa40){var _0x589e3c={},_0x2b5eb9={},_0x41ab0d={'count':0x0,'rows':[]};var _0x15ec05=_[_0xfb56('0x27')](db[_0xfb56('0x28')][_0xfb56('0x29')],function(_0x4ead45){return{'name':_0x4ead45['fieldName'],'type':_0x4ead45[_0xfb56('0x2a')][_0xfb56('0x2b')]};});_0x2b5eb9[_0xfb56('0x2c')]=_[_0xfb56('0x27')](_0x15ec05,_0xfb56('0x25'));_0x2b5eb9[_0xfb56('0x2d')]=_['keys'](_0x41c6f4[_0xfb56('0x2d')]);_0x2b5eb9[_0xfb56('0x2e')]=_[_0xfb56('0x2f')](_0x2b5eb9['model'],_0x2b5eb9[_0xfb56('0x2d')]);_0x589e3c['attributes']=_[_0xfb56('0x2f')](_0x2b5eb9[_0xfb56('0x2c')],qs['fields'](_0x41c6f4['query'][_0xfb56('0x30')]));_0x589e3c['attributes']=_0x589e3c['attributes'][_0xfb56('0x31')]?_0x589e3c[_0xfb56('0x32')]:_0x2b5eb9['model'];if(!_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x33')]('nolimit')){_0x589e3c[_0xfb56('0x1c')]=qs[_0xfb56('0x1c')](_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x1c')]);_0x589e3c[_0xfb56('0x1a')]=qs[_0xfb56('0x1a')](_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x1a')]);}_0x589e3c[_0xfb56('0x34')]=qs[_0xfb56('0x35')](_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x35')]);_0x589e3c[_0xfb56('0x36')]=qs['filters'](_['pick'](_0x41c6f4['query'],_0x2b5eb9['filters']),_0x15ec05);if(_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x37')]){_0x589e3c['where']=_[_0xfb56('0x38')](_0x589e3c[_0xfb56('0x36')],{'$or':_[_0xfb56('0x27')](_0x15ec05,function(_0x366ad9){if(_0x366ad9['type']!==_0xfb56('0x39')){var _0x5723ff={};_0x5723ff[_0x366ad9[_0xfb56('0x25')]]={'$like':'%'+_0x41c6f4['query'][_0xfb56('0x37')]+'%'};return _0x5723ff;}})});}_0x589e3c=_[_0xfb56('0x38')]({},_0x589e3c,_0x41c6f4[_0xfb56('0x3a')]);var _0x40bdff={'where':_0x589e3c[_0xfb56('0x36')]};return db[_0xfb56('0x28')][_0xfb56('0x1d')](_0x40bdff)[_0xfb56('0x22')](function(_0xb5f36b){_0x41ab0d[_0xfb56('0x1d')]=_0xb5f36b;if(_0x41c6f4[_0xfb56('0x2d')][_0xfb56('0x3b')]){_0x589e3c[_0xfb56('0x3c')]=[{'all':!![]}];}return db[_0xfb56('0x28')][_0xfb56('0x3d')](_0x589e3c);})['then'](function(_0x370a98){_0x41ab0d[_0xfb56('0x3e')]=_0x370a98;return _0x41ab0d;})[_0xfb56('0x22')](respondWithFilteredResult(_0x42fa40,_0x589e3c))[_0xfb56('0x3f')](handleError(_0x42fa40,null));};exports[_0xfb56('0x40')]=function(_0x4f342e,_0x16b2bf){var _0x48152b={'raw':![],'where':{'id':_0x4f342e['params']['id']}},_0x32b4e5={};_0x32b4e5[_0xfb56('0x2c')]=_[_0xfb56('0x41')](db[_0xfb56('0x28')]['rawAttributes']);_0x32b4e5[_0xfb56('0x2d')]=_[_0xfb56('0x41')](_0x4f342e[_0xfb56('0x2d')]);_0x32b4e5[_0xfb56('0x2e')]=_[_0xfb56('0x2f')](_0x32b4e5[_0xfb56('0x2c')],_0x32b4e5[_0xfb56('0x2d')]);_0x48152b[_0xfb56('0x32')]=_['intersection'](_0x32b4e5['model'],qs[_0xfb56('0x30')](_0x4f342e[_0xfb56('0x2d')][_0xfb56('0x30')]));_0x48152b[_0xfb56('0x32')]=_0x48152b[_0xfb56('0x32')]['length']?_0x48152b[_0xfb56('0x32')]:_0x32b4e5['model'];if(_0x4f342e['query']['includeAll']){_0x48152b[_0xfb56('0x3c')]=[{'all':!![]}];}_0x48152b=_[_0xfb56('0x38')]({},_0x48152b,_0x4f342e[_0xfb56('0x3a')]);return db[_0xfb56('0x28')]['find'](_0x48152b)['then'](handleEntityNotFound(_0x16b2bf,null))['then'](respondWithResult(_0x16b2bf,null))['catch'](handleError(_0x16b2bf,null));};exports[_0xfb56('0x42')]=function(_0x252681,_0x3f1986){return db[_0xfb56('0x28')][_0xfb56('0x42')](_0x252681[_0xfb56('0x43')],{})['then'](respondWithResult(_0x3f1986,0xc9))[_0xfb56('0x3f')](handleError(_0x3f1986,null));};exports[_0xfb56('0x21')]=function(_0x1450fc,_0xd6a975){if(_0x1450fc[_0xfb56('0x43')]['id']){delete _0x1450fc[_0xfb56('0x43')]['id'];}return db[_0xfb56('0x28')]['find']({'where':{'id':_0x1450fc[_0xfb56('0x44')]['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0xd6a975,null))['then'](saveUpdates(_0x1450fc[_0xfb56('0x43')],null))['then'](respondWithResult(_0xd6a975,null))[_0xfb56('0x3f')](handleError(_0xd6a975,null));};exports[_0xfb56('0x45')]=function(_0x59de40,_0x46088f){return db[_0xfb56('0x28')][_0xfb56('0x46')]({'where':{'id':_0x59de40['params']['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0x46088f,null))[_0xfb56('0x22')](removeEntity(_0x46088f,null))[_0xfb56('0x3f')](handleError(_0x46088f,null));};exports[_0xfb56('0x47')]=function(_0x9ade77,_0x3c0714,_0xed224e){var _0x11a122={};var _0x729d23={};var _0x26d9db;var _0x4106f5;return db[_0xfb56('0x28')]['findOne']({'where':{'id':_0x9ade77[_0xfb56('0x44')]['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0x3c0714,null))[_0xfb56('0x22')](function(_0x2db6e2){if(_0x2db6e2){_0x26d9db=_0x2db6e2;_0x729d23[_0xfb56('0x2c')]=_[_0xfb56('0x41')](db[_0xfb56('0x48')]['rawAttributes']);_0x729d23[_0xfb56('0x2d')]=_[_0xfb56('0x41')](_0x9ade77['query']);_0x729d23['filters']=_['intersection'](_0x729d23[_0xfb56('0x2c')],_0x729d23[_0xfb56('0x2d')]);_0x11a122[_0xfb56('0x32')]=_[_0xfb56('0x2f')](_0x729d23[_0xfb56('0x2c')],qs['fields'](_0x9ade77[_0xfb56('0x2d')]['fields']));_0x11a122[_0xfb56('0x32')]=_0x11a122[_0xfb56('0x32')][_0xfb56('0x31')]?_0x11a122[_0xfb56('0x32')]:_0x729d23[_0xfb56('0x2c')];_0x11a122['order']=qs['sort'](_0x9ade77['query'][_0xfb56('0x35')]);_0x11a122['where']=qs[_0xfb56('0x2e')](_[_0xfb56('0x49')](_0x9ade77[_0xfb56('0x2d')],_0x729d23[_0xfb56('0x2e')]));if(_0x9ade77[_0xfb56('0x2d')][_0xfb56('0x37')]){_0x11a122[_0xfb56('0x36')]=_[_0xfb56('0x38')](_0x11a122['where'],{'$or':_[_0xfb56('0x27')](_0x11a122[_0xfb56('0x32')],function(_0x302a45){var _0x26fa98={};_0x26fa98[_0x302a45]={'$like':'%'+_0x9ade77[_0xfb56('0x2d')][_0xfb56('0x37')]+'%'};return _0x26fa98;})});}_0x11a122=_[_0xfb56('0x38')]({},_0x11a122,_0x9ade77[_0xfb56('0x3a')]);return _0x26d9db[_0xfb56('0x47')](_0x11a122);}})[_0xfb56('0x22')](function(_0x323fa9){if(_0x323fa9){_0x4106f5=_0x323fa9[_0xfb56('0x31')];if(!_0x9ade77[_0xfb56('0x2d')]['hasOwnProperty'](_0xfb56('0x4a'))){_0x11a122['limit']=qs[_0xfb56('0x1c')](_0x9ade77[_0xfb56('0x2d')]['limit']);_0x11a122['offset']=qs[_0xfb56('0x1a')](_0x9ade77[_0xfb56('0x2d')]['offset']);}return _0x26d9db['getFields'](_0x11a122);}})[_0xfb56('0x22')](function(_0x427e59){if(_0x427e59){return _0x427e59?{'count':_0x4106f5,'rows':_0x427e59}:null;}})['then'](respondWithResult(_0x3c0714,null))[_0xfb56('0x3f')](handleError(_0x3c0714,null));};exports['getSubjects']=function(_0x3b901f,_0x5af012,_0x17dc28){var _0x5cd46d={};var _0x2240d2={};var _0x5a0d02;var _0x33311b;return db[_0xfb56('0x28')][_0xfb56('0x4b')]({'where':{'id':_0x3b901f[_0xfb56('0x44')]['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0x5af012,null))[_0xfb56('0x22')](function(_0x547eec){if(_0x547eec){_0x5a0d02=_0x547eec;_0x2240d2['model']=_[_0xfb56('0x41')](db[_0xfb56('0x48')][_0xfb56('0x29')]);_0x2240d2[_0xfb56('0x2d')]=_[_0xfb56('0x41')](_0x3b901f[_0xfb56('0x2d')]);_0x2240d2['filters']=_[_0xfb56('0x2f')](_0x2240d2[_0xfb56('0x2c')],_0x2240d2[_0xfb56('0x2d')]);_0x5cd46d[_0xfb56('0x32')]=_[_0xfb56('0x2f')](_0x2240d2[_0xfb56('0x2c')],qs[_0xfb56('0x30')](_0x3b901f['query'][_0xfb56('0x30')]));_0x5cd46d[_0xfb56('0x32')]=_0x5cd46d[_0xfb56('0x32')][_0xfb56('0x31')]?_0x5cd46d[_0xfb56('0x32')]:_0x2240d2[_0xfb56('0x2c')];_0x5cd46d[_0xfb56('0x34')]=qs[_0xfb56('0x35')](_0x3b901f[_0xfb56('0x2d')][_0xfb56('0x35')]);_0x5cd46d[_0xfb56('0x36')]=qs[_0xfb56('0x2e')](_[_0xfb56('0x49')](_0x3b901f[_0xfb56('0x2d')],_0x2240d2[_0xfb56('0x2e')]));if(_0x3b901f[_0xfb56('0x2d')][_0xfb56('0x37')]){_0x5cd46d[_0xfb56('0x36')]=_['merge'](_0x5cd46d['where'],{'$or':_['map'](_0x5cd46d['attributes'],function(_0x23b48b){var _0x1a2a1a={};_0x1a2a1a[_0x23b48b]={'$like':'%'+_0x3b901f['query'][_0xfb56('0x37')]+'%'};return _0x1a2a1a;})});}_0x5cd46d=_[_0xfb56('0x38')]({},_0x5cd46d,_0x3b901f[_0xfb56('0x3a')]);return _0x5a0d02[_0xfb56('0x4c')](_0x5cd46d);}})[_0xfb56('0x22')](function(_0x1a77ea){if(_0x1a77ea){_0x33311b=_0x1a77ea[_0xfb56('0x31')];if(!_0x3b901f['query']['hasOwnProperty'](_0xfb56('0x4a'))){_0x5cd46d[_0xfb56('0x1c')]=qs['limit'](_0x3b901f[_0xfb56('0x2d')][_0xfb56('0x1c')]);_0x5cd46d[_0xfb56('0x1a')]=qs['offset'](_0x3b901f[_0xfb56('0x2d')][_0xfb56('0x1a')]);}return _0x5a0d02[_0xfb56('0x4c')](_0x5cd46d);}})[_0xfb56('0x22')](function(_0x49531c){if(_0x49531c){return _0x49531c?{'count':_0x33311b,'rows':_0x49531c}:null;}})[_0xfb56('0x22')](respondWithResult(_0x5af012,null))['catch'](handleError(_0x5af012,null));};exports[_0xfb56('0x4d')]=function(_0x3ba429,_0x16c752,_0x4d672d){var _0x4275b3={};var _0x5e08a3={};var _0x2a7512;var _0x2f85d5;return db[_0xfb56('0x28')]['findOne']({'where':{'id':_0x3ba429[_0xfb56('0x44')]['id']}})[_0xfb56('0x22')](handleEntityNotFound(_0x16c752,null))[_0xfb56('0x22')](function(_0x3395a8){if(_0x3395a8){_0x2a7512=_0x3395a8;_0x5e08a3['model']=_[_0xfb56('0x41')](db[_0xfb56('0x48')][_0xfb56('0x29')]);_0x5e08a3[_0xfb56('0x2d')]=_[_0xfb56('0x41')](_0x3ba429[_0xfb56('0x2d')]);_0x5e08a3['filters']=_[_0xfb56('0x2f')](_0x5e08a3['model'],_0x5e08a3[_0xfb56('0x2d')]);_0x4275b3[_0xfb56('0x32')]=_[_0xfb56('0x2f')](_0x5e08a3[_0xfb56('0x2c')],qs['fields'](_0x3ba429[_0xfb56('0x2d')]['fields']));_0x4275b3['attributes']=_0x4275b3[_0xfb56('0x32')]['length']?_0x4275b3[_0xfb56('0x32')]:_0x5e08a3['model'];_0x4275b3[_0xfb56('0x34')]=qs[_0xfb56('0x35')](_0x3ba429[_0xfb56('0x2d')][_0xfb56('0x35')]);_0x4275b3[_0xfb56('0x36')]=qs[_0xfb56('0x2e')](_[_0xfb56('0x49')](_0x3ba429['query'],_0x5e08a3['filters']));if(_0x3ba429[_0xfb56('0x2d')][_0xfb56('0x37')]){_0x4275b3[_0xfb56('0x36')]=_[_0xfb56('0x38')](_0x4275b3[_0xfb56('0x36')],{'$or':_[_0xfb56('0x27')](_0x4275b3[_0xfb56('0x32')],function(_0x2511bf){var _0xf4cac0={};_0xf4cac0[_0x2511bf]={'$like':'%'+_0x3ba429[_0xfb56('0x2d')][_0xfb56('0x37')]+'%'};return _0xf4cac0;})});}_0x4275b3=_[_0xfb56('0x38')]({},_0x4275b3,_0x3ba429[_0xfb56('0x3a')]);return _0x2a7512[_0xfb56('0x4d')](_0x4275b3);}})[_0xfb56('0x22')](function(_0x53d416){if(_0x53d416){_0x2f85d5=_0x53d416[_0xfb56('0x31')];if(!_0x3ba429[_0xfb56('0x2d')][_0xfb56('0x33')]('nolimit')){_0x4275b3[_0xfb56('0x1c')]=qs[_0xfb56('0x1c')](_0x3ba429['query'][_0xfb56('0x1c')]);_0x4275b3[_0xfb56('0x1a')]=qs[_0xfb56('0x1a')](_0x3ba429[_0xfb56('0x2d')]['offset']);}return _0x2a7512[_0xfb56('0x4d')](_0x4275b3);}})[_0xfb56('0x22')](function(_0x582e84){if(_0x582e84){return _0x582e84?{'count':_0x2f85d5,'rows':_0x582e84}:null;}})[_0xfb56('0x22')](respondWithResult(_0x16c752,null))['catch'](handleError(_0x16c752,null));};
\ No newline at end of file
+var _0xecb6=['findOne','VtigerField','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','VtigerConfiguration','rawAttributes','fieldName','key','filters','intersection','model','query','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','includeAll','include','findAll','rows','catch','show','keys','options','create','body','find','params','getFields'];(function(_0xff8595,_0x39341d){var _0x31e49e=function(_0x23ee7b){while(--_0x23ee7b){_0xff8595['push'](_0xff8595['shift']());}};_0x31e49e(++_0x39341d);}(_0xecb6,0xaa));var _0x6ecb=function(_0x2b0a92,_0x1caa3a){_0x2b0a92=_0x2b0a92-0x0;var _0x721f18=_0xecb6[_0x2b0a92];return _0x721f18;};'use strict';var emlformat=require(_0x6ecb('0x0'));var rimraf=require(_0x6ecb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6ecb('0x2'));var rp=require(_0x6ecb('0x3'));var moment=require(_0x6ecb('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x6ecb('0x5'));var util=require('util');var path=require(_0x6ecb('0x6'));var sox=require('sox');var csv=require(_0x6ecb('0x7'));var ejs=require(_0x6ecb('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6ecb('0x9'));var squel=require(_0x6ecb('0xa'));var crypto=require(_0x6ecb('0xb'));var jsforce=require(_0x6ecb('0xc'));var deskjs=require(_0x6ecb('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6ecb('0xe'));var Papa=require(_0x6ecb('0xf'));var Redis=require(_0x6ecb('0x10'));var authService=require(_0x6ecb('0x11'));var qs=require(_0x6ecb('0x12'));var as=require(_0x6ecb('0x13'));var hardwareService=require(_0x6ecb('0x14'));var logger=require('../../config/logger')(_0x6ecb('0x15'));var utils=require(_0x6ecb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x6ecb('0x17'));var db=require(_0x6ecb('0x18'))['db'];function respondWithStatusCode(_0xe559a4,_0x1336bc){_0x1336bc=_0x1336bc||0xcc;return function(_0x5dc9b6){if(_0x5dc9b6){return _0xe559a4[_0x6ecb('0x19')](_0x1336bc);}return _0xe559a4[_0x6ecb('0x1a')](_0x1336bc)[_0x6ecb('0x1b')]();};}function respondWithResult(_0x2d6b35,_0x2c0ffa){_0x2c0ffa=_0x2c0ffa||0xc8;return function(_0x3b1c36){if(_0x3b1c36){return _0x2d6b35[_0x6ecb('0x1a')](_0x2c0ffa)[_0x6ecb('0x1c')](_0x3b1c36);}};}function respondWithFilteredResult(_0x5cbad2,_0x4d544f){return function(_0xea1bbd){if(_0xea1bbd){var _0x4e04fe=typeof _0x4d544f[_0x6ecb('0x1d')]===_0x6ecb('0x1e')&&typeof _0x4d544f[_0x6ecb('0x1f')]===_0x6ecb('0x1e');var _0x3527b1=_0xea1bbd[_0x6ecb('0x20')];var _0xa27b80=_0x4e04fe?0x0:_0x4d544f[_0x6ecb('0x1d')];var _0x1adae7=_0x4e04fe?_0xea1bbd[_0x6ecb('0x20')]:_0x4d544f[_0x6ecb('0x1d')]+_0x4d544f['limit'];var _0x3fc65f;if(_0x1adae7>=_0x3527b1){_0x1adae7=_0x3527b1;_0x3fc65f=0xc8;}else{_0x3fc65f=0xce;}_0x5cbad2[_0x6ecb('0x1a')](_0x3fc65f);return _0x5cbad2[_0x6ecb('0x21')](_0x6ecb('0x22'),_0xa27b80+'-'+_0x1adae7+'/'+_0x3527b1)[_0x6ecb('0x1c')](_0xea1bbd);}return null;};}function patchUpdates(_0x28bf63){return function(_0x32c1cb){try{jsonpatch[_0x6ecb('0x23')](_0x32c1cb,_0x28bf63,!![]);}catch(_0x363688){return BPromise[_0x6ecb('0x24')](_0x363688);}return _0x32c1cb[_0x6ecb('0x25')]();};}function saveUpdates(_0x5496ae,_0x4673f0){return function(_0x371884){if(_0x371884){return _0x371884[_0x6ecb('0x26')](_0x5496ae)[_0x6ecb('0x27')](function(_0x4a067c){return _0x4a067c;});}return null;};}function removeEntity(_0x3f929a,_0x4a160d){return function(_0x16e52e){if(_0x16e52e){return _0x16e52e[_0x6ecb('0x28')]()[_0x6ecb('0x27')](function(){_0x3f929a[_0x6ecb('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1756d8,_0x3ad739){return function(_0x1517cc){if(!_0x1517cc){_0x1756d8['sendStatus'](0x194);}return _0x1517cc;};}function handleError(_0x28e236,_0x4b758d){_0x4b758d=_0x4b758d||0x1f4;return function(_0x54b1cd){logger[_0x6ecb('0x29')](_0x54b1cd['stack']);if(_0x54b1cd[_0x6ecb('0x2a')]){delete _0x54b1cd[_0x6ecb('0x2a')];}_0x28e236['status'](_0x4b758d)[_0x6ecb('0x2b')](_0x54b1cd);};}exports[_0x6ecb('0x2c')]=function(_0xd54d4f,_0x3995cb){var _0x3125a5={},_0x4906a9={},_0x5304be={'count':0x0,'rows':[]};var _0x4e3ada=_[_0x6ecb('0x2d')](db[_0x6ecb('0x2e')][_0x6ecb('0x2f')],function(_0x45d3ba){return{'name':_0x45d3ba[_0x6ecb('0x30')],'type':_0x45d3ba['type'][_0x6ecb('0x31')]};});_0x4906a9['model']=_[_0x6ecb('0x2d')](_0x4e3ada,_0x6ecb('0x2a'));_0x4906a9['query']=_['keys'](_0xd54d4f['query']);_0x4906a9[_0x6ecb('0x32')]=_[_0x6ecb('0x33')](_0x4906a9[_0x6ecb('0x34')],_0x4906a9[_0x6ecb('0x35')]);_0x3125a5['attributes']=_['intersection'](_0x4906a9['model'],qs[_0x6ecb('0x36')](_0xd54d4f[_0x6ecb('0x35')][_0x6ecb('0x36')]));_0x3125a5[_0x6ecb('0x37')]=_0x3125a5[_0x6ecb('0x37')][_0x6ecb('0x38')]?_0x3125a5[_0x6ecb('0x37')]:_0x4906a9[_0x6ecb('0x34')];if(!_0xd54d4f[_0x6ecb('0x35')][_0x6ecb('0x39')](_0x6ecb('0x3a'))){_0x3125a5['limit']=qs['limit'](_0xd54d4f[_0x6ecb('0x35')][_0x6ecb('0x1f')]);_0x3125a5[_0x6ecb('0x1d')]=qs[_0x6ecb('0x1d')](_0xd54d4f[_0x6ecb('0x35')][_0x6ecb('0x1d')]);}_0x3125a5[_0x6ecb('0x3b')]=qs['sort'](_0xd54d4f[_0x6ecb('0x35')][_0x6ecb('0x3c')]);_0x3125a5[_0x6ecb('0x3d')]=qs[_0x6ecb('0x32')](_[_0x6ecb('0x3e')](_0xd54d4f[_0x6ecb('0x35')],_0x4906a9[_0x6ecb('0x32')]),_0x4e3ada);if(_0xd54d4f['query'][_0x6ecb('0x3f')]){_0x3125a5[_0x6ecb('0x3d')]=_[_0x6ecb('0x40')](_0x3125a5[_0x6ecb('0x3d')],{'$or':_[_0x6ecb('0x2d')](_0x4e3ada,function(_0x289e62){if(_0x289e62[_0x6ecb('0x41')]!=='VIRTUAL'){var _0x5395e8={};_0x5395e8[_0x289e62[_0x6ecb('0x2a')]]={'$like':'%'+_0xd54d4f['query'][_0x6ecb('0x3f')]+'%'};return _0x5395e8;}})});}_0x3125a5=_[_0x6ecb('0x40')]({},_0x3125a5,_0xd54d4f['options']);var _0x1a1df0={'where':_0x3125a5[_0x6ecb('0x3d')]};return db['VtigerConfiguration']['count'](_0x1a1df0)[_0x6ecb('0x27')](function(_0x20f8c4){_0x5304be['count']=_0x20f8c4;if(_0xd54d4f[_0x6ecb('0x35')][_0x6ecb('0x42')]){_0x3125a5[_0x6ecb('0x43')]=[{'all':!![]}];}return db[_0x6ecb('0x2e')][_0x6ecb('0x44')](_0x3125a5);})[_0x6ecb('0x27')](function(_0x2d777a){_0x5304be[_0x6ecb('0x45')]=_0x2d777a;return _0x5304be;})[_0x6ecb('0x27')](respondWithFilteredResult(_0x3995cb,_0x3125a5))[_0x6ecb('0x46')](handleError(_0x3995cb,null));};exports[_0x6ecb('0x47')]=function(_0x142af0,_0x25ae59){var _0x41f5ae={'raw':![],'where':{'id':_0x142af0['params']['id']}},_0x2507f1={};_0x2507f1[_0x6ecb('0x34')]=_[_0x6ecb('0x48')](db['VtigerConfiguration'][_0x6ecb('0x2f')]);_0x2507f1[_0x6ecb('0x35')]=_['keys'](_0x142af0['query']);_0x2507f1[_0x6ecb('0x32')]=_[_0x6ecb('0x33')](_0x2507f1[_0x6ecb('0x34')],_0x2507f1['query']);_0x41f5ae['attributes']=_[_0x6ecb('0x33')](_0x2507f1[_0x6ecb('0x34')],qs[_0x6ecb('0x36')](_0x142af0[_0x6ecb('0x35')][_0x6ecb('0x36')]));_0x41f5ae['attributes']=_0x41f5ae[_0x6ecb('0x37')][_0x6ecb('0x38')]?_0x41f5ae['attributes']:_0x2507f1[_0x6ecb('0x34')];if(_0x142af0[_0x6ecb('0x35')][_0x6ecb('0x42')]){_0x41f5ae[_0x6ecb('0x43')]=[{'all':!![]}];}_0x41f5ae=_[_0x6ecb('0x40')]({},_0x41f5ae,_0x142af0[_0x6ecb('0x49')]);return db['VtigerConfiguration']['find'](_0x41f5ae)[_0x6ecb('0x27')](handleEntityNotFound(_0x25ae59,null))[_0x6ecb('0x27')](respondWithResult(_0x25ae59,null))['catch'](handleError(_0x25ae59,null));};exports['create']=function(_0x333602,_0x5852bd){return db[_0x6ecb('0x2e')][_0x6ecb('0x4a')](_0x333602[_0x6ecb('0x4b')],{})[_0x6ecb('0x27')](respondWithResult(_0x5852bd,0xc9))['catch'](handleError(_0x5852bd,null));};exports['update']=function(_0x8099f7,_0x3020a9){if(_0x8099f7[_0x6ecb('0x4b')]['id']){delete _0x8099f7[_0x6ecb('0x4b')]['id'];}return db['VtigerConfiguration'][_0x6ecb('0x4c')]({'where':{'id':_0x8099f7[_0x6ecb('0x4d')]['id']}})['then'](handleEntityNotFound(_0x3020a9,null))['then'](saveUpdates(_0x8099f7['body'],null))[_0x6ecb('0x27')](respondWithResult(_0x3020a9,null))[_0x6ecb('0x46')](handleError(_0x3020a9,null));};exports[_0x6ecb('0x28')]=function(_0x5628b7,_0x38bd1d){return db[_0x6ecb('0x2e')][_0x6ecb('0x4c')]({'where':{'id':_0x5628b7[_0x6ecb('0x4d')]['id']}})['then'](handleEntityNotFound(_0x38bd1d,null))[_0x6ecb('0x27')](removeEntity(_0x38bd1d,null))[_0x6ecb('0x46')](handleError(_0x38bd1d,null));};exports[_0x6ecb('0x4e')]=function(_0x255d7b,_0x2d83ef,_0x3c81cb){var _0x34ecc8={};var _0x110d7c={};var _0x24f874;var _0x38d433;return db['VtigerConfiguration'][_0x6ecb('0x4f')]({'where':{'id':_0x255d7b[_0x6ecb('0x4d')]['id']}})[_0x6ecb('0x27')](handleEntityNotFound(_0x2d83ef,null))[_0x6ecb('0x27')](function(_0x4c4b5c){if(_0x4c4b5c){_0x24f874=_0x4c4b5c;_0x110d7c['model']=_[_0x6ecb('0x48')](db[_0x6ecb('0x50')]['rawAttributes']);_0x110d7c[_0x6ecb('0x35')]=_[_0x6ecb('0x48')](_0x255d7b['query']);_0x110d7c[_0x6ecb('0x32')]=_[_0x6ecb('0x33')](_0x110d7c['model'],_0x110d7c[_0x6ecb('0x35')]);_0x34ecc8['attributes']=_['intersection'](_0x110d7c[_0x6ecb('0x34')],qs[_0x6ecb('0x36')](_0x255d7b[_0x6ecb('0x35')][_0x6ecb('0x36')]));_0x34ecc8['attributes']=_0x34ecc8[_0x6ecb('0x37')][_0x6ecb('0x38')]?_0x34ecc8['attributes']:_0x110d7c[_0x6ecb('0x34')];_0x34ecc8[_0x6ecb('0x3b')]=qs[_0x6ecb('0x3c')](_0x255d7b['query']['sort']);_0x34ecc8[_0x6ecb('0x3d')]=qs[_0x6ecb('0x32')](_[_0x6ecb('0x3e')](_0x255d7b[_0x6ecb('0x35')],_0x110d7c[_0x6ecb('0x32')]));if(_0x255d7b[_0x6ecb('0x35')][_0x6ecb('0x3f')]){_0x34ecc8['where']=_[_0x6ecb('0x40')](_0x34ecc8['where'],{'$or':_['map'](_0x34ecc8[_0x6ecb('0x37')],function(_0x7cb158){var _0x59004b={};_0x59004b[_0x7cb158]={'$like':'%'+_0x255d7b[_0x6ecb('0x35')][_0x6ecb('0x3f')]+'%'};return _0x59004b;})});}_0x34ecc8=_['merge']({},_0x34ecc8,_0x255d7b['options']);return _0x24f874[_0x6ecb('0x4e')](_0x34ecc8);}})[_0x6ecb('0x27')](function(_0x2543c9){if(_0x2543c9){_0x38d433=_0x2543c9[_0x6ecb('0x38')];if(!_0x255d7b[_0x6ecb('0x35')][_0x6ecb('0x39')](_0x6ecb('0x3a'))){_0x34ecc8['limit']=qs['limit'](_0x255d7b[_0x6ecb('0x35')][_0x6ecb('0x1f')]);_0x34ecc8[_0x6ecb('0x1d')]=qs[_0x6ecb('0x1d')](_0x255d7b[_0x6ecb('0x35')][_0x6ecb('0x1d')]);}return _0x24f874[_0x6ecb('0x4e')](_0x34ecc8);}})[_0x6ecb('0x27')](function(_0x34110e){if(_0x34110e){return _0x34110e?{'count':_0x38d433,'rows':_0x34110e}:null;}})['then'](respondWithResult(_0x2d83ef,null))['catch'](handleError(_0x2d83ef,null));};exports[_0x6ecb('0x51')]=function(_0x38d55d,_0x5237de,_0x3570c8){var _0x2a2266={};var _0x33762a={};var _0x5a7477;var _0x4cf3f5;return db[_0x6ecb('0x2e')]['findOne']({'where':{'id':_0x38d55d[_0x6ecb('0x4d')]['id']}})[_0x6ecb('0x27')](handleEntityNotFound(_0x5237de,null))['then'](function(_0x49edcd){if(_0x49edcd){_0x5a7477=_0x49edcd;_0x33762a[_0x6ecb('0x34')]=_[_0x6ecb('0x48')](db[_0x6ecb('0x50')][_0x6ecb('0x2f')]);_0x33762a[_0x6ecb('0x35')]=_['keys'](_0x38d55d[_0x6ecb('0x35')]);_0x33762a[_0x6ecb('0x32')]=_['intersection'](_0x33762a[_0x6ecb('0x34')],_0x33762a[_0x6ecb('0x35')]);_0x2a2266[_0x6ecb('0x37')]=_[_0x6ecb('0x33')](_0x33762a[_0x6ecb('0x34')],qs[_0x6ecb('0x36')](_0x38d55d['query']['fields']));_0x2a2266[_0x6ecb('0x37')]=_0x2a2266['attributes'][_0x6ecb('0x38')]?_0x2a2266['attributes']:_0x33762a[_0x6ecb('0x34')];_0x2a2266[_0x6ecb('0x3b')]=qs[_0x6ecb('0x3c')](_0x38d55d[_0x6ecb('0x35')][_0x6ecb('0x3c')]);_0x2a2266[_0x6ecb('0x3d')]=qs[_0x6ecb('0x32')](_['pick'](_0x38d55d['query'],_0x33762a['filters']));if(_0x38d55d['query'][_0x6ecb('0x3f')]){_0x2a2266[_0x6ecb('0x3d')]=_[_0x6ecb('0x40')](_0x2a2266['where'],{'$or':_[_0x6ecb('0x2d')](_0x2a2266[_0x6ecb('0x37')],function(_0x486962){var _0x2662df={};_0x2662df[_0x486962]={'$like':'%'+_0x38d55d[_0x6ecb('0x35')]['filter']+'%'};return _0x2662df;})});}_0x2a2266=_[_0x6ecb('0x40')]({},_0x2a2266,_0x38d55d[_0x6ecb('0x49')]);return _0x5a7477[_0x6ecb('0x51')](_0x2a2266);}})[_0x6ecb('0x27')](function(_0x4dd01b){if(_0x4dd01b){_0x4cf3f5=_0x4dd01b['length'];if(!_0x38d55d['query'][_0x6ecb('0x39')]('nolimit')){_0x2a2266['limit']=qs['limit'](_0x38d55d[_0x6ecb('0x35')]['limit']);_0x2a2266[_0x6ecb('0x1d')]=qs[_0x6ecb('0x1d')](_0x38d55d['query'][_0x6ecb('0x1d')]);}return _0x5a7477[_0x6ecb('0x51')](_0x2a2266);}})[_0x6ecb('0x27')](function(_0x544f12){if(_0x544f12){return _0x544f12?{'count':_0x4cf3f5,'rows':_0x544f12}:null;}})['then'](respondWithResult(_0x5237de,null))[_0x6ecb('0x46')](handleError(_0x5237de,null));};exports[_0x6ecb('0x52')]=function(_0x2942f0,_0x4eed16,_0xc34e21){var _0x48031a={};var _0x5264d9={};var _0x3fe17b;var _0x7160a2;return db[_0x6ecb('0x2e')][_0x6ecb('0x4f')]({'where':{'id':_0x2942f0[_0x6ecb('0x4d')]['id']}})['then'](handleEntityNotFound(_0x4eed16,null))[_0x6ecb('0x27')](function(_0x1c9479){if(_0x1c9479){_0x3fe17b=_0x1c9479;_0x5264d9[_0x6ecb('0x34')]=_[_0x6ecb('0x48')](db[_0x6ecb('0x50')][_0x6ecb('0x2f')]);_0x5264d9[_0x6ecb('0x35')]=_[_0x6ecb('0x48')](_0x2942f0[_0x6ecb('0x35')]);_0x5264d9[_0x6ecb('0x32')]=_['intersection'](_0x5264d9['model'],_0x5264d9['query']);_0x48031a[_0x6ecb('0x37')]=_[_0x6ecb('0x33')](_0x5264d9[_0x6ecb('0x34')],qs[_0x6ecb('0x36')](_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x36')]));_0x48031a[_0x6ecb('0x37')]=_0x48031a[_0x6ecb('0x37')][_0x6ecb('0x38')]?_0x48031a[_0x6ecb('0x37')]:_0x5264d9[_0x6ecb('0x34')];_0x48031a['order']=qs[_0x6ecb('0x3c')](_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x3c')]);_0x48031a[_0x6ecb('0x3d')]=qs[_0x6ecb('0x32')](_['pick'](_0x2942f0[_0x6ecb('0x35')],_0x5264d9[_0x6ecb('0x32')]));if(_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x3f')]){_0x48031a['where']=_['merge'](_0x48031a[_0x6ecb('0x3d')],{'$or':_[_0x6ecb('0x2d')](_0x48031a[_0x6ecb('0x37')],function(_0x5c0d70){var _0x1a1255={};_0x1a1255[_0x5c0d70]={'$like':'%'+_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x3f')]+'%'};return _0x1a1255;})});}_0x48031a=_[_0x6ecb('0x40')]({},_0x48031a,_0x2942f0[_0x6ecb('0x49')]);return _0x3fe17b[_0x6ecb('0x52')](_0x48031a);}})[_0x6ecb('0x27')](function(_0x1a9858){if(_0x1a9858){_0x7160a2=_0x1a9858[_0x6ecb('0x38')];if(!_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x39')](_0x6ecb('0x3a'))){_0x48031a[_0x6ecb('0x1f')]=qs[_0x6ecb('0x1f')](_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x1f')]);_0x48031a[_0x6ecb('0x1d')]=qs['offset'](_0x2942f0[_0x6ecb('0x35')][_0x6ecb('0x1d')]);}return _0x3fe17b[_0x6ecb('0x52')](_0x48031a);}})[_0x6ecb('0x27')](function(_0x4164c4){if(_0x4164c4){return _0x4164c4?{'count':_0x7160a2,'rows':_0x4164c4}:null;}})[_0x6ecb('0x27')](respondWithResult(_0x4eed16,null))['catch'](handleError(_0x4eed16,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31fa=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerConfiguration.attributes','exports','define','VtigerConfiguration','int_vtiger_configurations','lodash','util','../../config/logger'];(function(_0x1f6feb,_0x49d07f){var _0x5c2053=function(_0x99e452){while(--_0x99e452){_0x1f6feb['push'](_0x1f6feb['shift']());}};_0x5c2053(++_0x49d07f);}(_0x31fa,0x1cb));var _0xa31f=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x31fa[_0x1d1779];return _0x2377e9;};'use strict';var _=require(_0xa31f('0x0'));var util=require(_0xa31f('0x1'));var logger=require(_0xa31f('0x2'))('api');var moment=require(_0xa31f('0x3'));var BPromise=require(_0xa31f('0x4'));var rp=require(_0xa31f('0x5'));var fs=require('fs');var path=require(_0xa31f('0x6'));var rimraf=require(_0xa31f('0x7'));var config=require(_0xa31f('0x8'));var attributes=require(_0xa31f('0x9'));module[_0xa31f('0xa')]=function(_0x31a73d,_0x14d72f){return _0x31a73d[_0xa31f('0xb')](_0xa31f('0xc'),attributes,{'tableName':_0xa31f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4f10=['../../config/environment','./intVtigerConfiguration.attributes','exports','define','VtigerConfiguration','int_vtiger_configurations','lodash','moment','request-promise','path'];(function(_0x24f964,_0x2276f0){var _0x327009=function(_0xcf3094){while(--_0xcf3094){_0x24f964['push'](_0x24f964['shift']());}};_0x327009(++_0x2276f0);}(_0x4f10,0x92));var _0x04f1=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x4f10[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x04f1('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x04f1('0x1'));var BPromise=require('bluebird');var rp=require(_0x04f1('0x2'));var fs=require('fs');var path=require(_0x04f1('0x3'));var rimraf=require('rimraf');var config=require(_0x04f1('0x4'));var attributes=require(_0x04f1('0x5'));module[_0x04f1('0x6')]=function(_0xc8f2c5,_0x104023){return _0xc8f2c5[_0x04f1('0x7')](_0x04f1('0x8'),attributes,{'tableName':_0x04f1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98f1=['request\x20sent','stringify','error','code','message','VtigerConfiguration,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0xa9869f,_0x2a5b99){var _0x2ab488=function(_0x4013bc){while(--_0x4013bc){_0xa9869f['push'](_0xa9869f['shift']());}};_0x2ab488(++_0x2a5b99);}(_0x98f1,0xd7));var _0x198f=function(_0x17b23c,_0x423472){_0x17b23c=_0x17b23c-0x0;var _0x3af1b4=_0x98f1[_0x17b23c];return _0x3af1b4;};'use strict';var _=require(_0x198f('0x0'));var util=require(_0x198f('0x1'));var moment=require(_0x198f('0x2'));var BPromise=require(_0x198f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x198f('0x4'))['db'];var utils=require(_0x198f('0x5'));var logger=require(_0x198f('0x6'))(_0x198f('0x7'));var config=require(_0x198f('0x8'));var jayson=require(_0x198f('0x9'));var client=jayson[_0x198f('0xa')][_0x198f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2346fc,_0x3ddd04,_0x5d787a){return new BPromise(function(_0x2d2825,_0xd13b7b){return client[_0x198f('0xc')](_0x2346fc,_0x5d787a)[_0x198f('0xd')](function(_0x535ea8){logger[_0x198f('0xe')]('VtigerConfiguration,\x20%s,\x20%s',_0x3ddd04,_0x198f('0xf'));logger['debug']('VtigerConfiguration,\x20%s,\x20%s,\x20%s',_0x3ddd04,_0x198f('0xf'),JSON[_0x198f('0x10')](_0x535ea8));if(_0x535ea8[_0x198f('0x11')]){if(_0x535ea8[_0x198f('0x11')][_0x198f('0x12')]===0x1f4){logger[_0x198f('0x11')]('VtigerConfiguration,\x20%s,\x20%s',_0x3ddd04,_0x535ea8[_0x198f('0x11')][_0x198f('0x13')]);return _0xd13b7b(_0x535ea8['error'][_0x198f('0x13')]);}logger[_0x198f('0x11')]('VtigerConfiguration,\x20%s,\x20%s',_0x3ddd04,_0x535ea8['error'][_0x198f('0x13')]);return _0x2d2825(_0x535ea8['error'][_0x198f('0x13')]);}else{logger[_0x198f('0xe')](_0x198f('0x14'),_0x3ddd04,'request\x20sent');_0x2d2825(_0x535ea8[_0x198f('0x15')][_0x198f('0x13')]);}})[_0x198f('0x16')](function(_0x3729ab){logger[_0x198f('0x11')](_0x198f('0x14'),_0x3ddd04,_0x3729ab);_0xd13b7b(_0x3729ab);});});}
\ No newline at end of file
+var _0xf7a7=['request','then','info','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','VtigerConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','client','http'];(function(_0x687ddc,_0x2092fa){var _0x441991=function(_0x49c6a6){while(--_0x49c6a6){_0x687ddc['push'](_0x687ddc['shift']());}};_0x441991(++_0x2092fa);}(_0xf7a7,0x15f));var _0x7f7a=function(_0x530cd9,_0x5f3cc4){_0x530cd9=_0x530cd9-0x0;var _0x3ebeda=_0xf7a7[_0x530cd9];return _0x3ebeda;};'use strict';var _=require('lodash');var util=require(_0x7f7a('0x0'));var moment=require(_0x7f7a('0x1'));var BPromise=require(_0x7f7a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7f7a('0x3'));var db=require(_0x7f7a('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x7f7a('0x5'))(_0x7f7a('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x7f7a('0x7')][_0x7f7a('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x82d0d7,_0x9a8a42,_0x8c17db){return new BPromise(function(_0x5b0fed,_0x4e0e6b){return client[_0x7f7a('0x9')](_0x82d0d7,_0x8c17db)[_0x7f7a('0xa')](function(_0x41f39e){logger[_0x7f7a('0xb')](_0x7f7a('0xc'),_0x9a8a42,_0x7f7a('0xd'));logger['debug'](_0x7f7a('0xe'),_0x9a8a42,'request\x20sent',JSON[_0x7f7a('0xf')](_0x41f39e));if(_0x41f39e[_0x7f7a('0x10')]){if(_0x41f39e[_0x7f7a('0x10')][_0x7f7a('0x11')]===0x1f4){logger[_0x7f7a('0x10')](_0x7f7a('0xc'),_0x9a8a42,_0x41f39e[_0x7f7a('0x10')][_0x7f7a('0x12')]);return _0x4e0e6b(_0x41f39e[_0x7f7a('0x10')][_0x7f7a('0x12')]);}logger[_0x7f7a('0x10')](_0x7f7a('0xc'),_0x9a8a42,_0x41f39e[_0x7f7a('0x10')][_0x7f7a('0x12')]);return _0x5b0fed(_0x41f39e[_0x7f7a('0x10')][_0x7f7a('0x12')]);}else{logger[_0x7f7a('0xb')](_0x7f7a('0xc'),_0x9a8a42,_0x7f7a('0xd'));_0x5b0fed(_0x41f39e['result']['message']);}})[_0x7f7a('0x13')](function(_0x3336a6){logger[_0x7f7a('0x10')](_0x7f7a('0xc'),_0x9a8a42,_0x3336a6);_0x4e0e6b(_0x3336a6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1d2=['../../config/environment','isAuthenticated','index','get','/:id','show','post','create','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1a1b6e,_0x3a07a9){var _0x571e2c=function(_0x6cea62){while(--_0x6cea62){_0x1a1b6e['push'](_0x1a1b6e['shift']());}};_0x571e2c(++_0x3a07a9);}(_0xc1d2,0x1af));var _0x2c1d=function(_0x218596,_0x435444){_0x218596=_0x218596-0x0;var _0x40b995=_0xc1d2[_0x218596];return _0x40b995;};'use strict';var multer=require(_0x2c1d('0x0'));var util=require(_0x2c1d('0x1'));var path=require(_0x2c1d('0x2'));var timeout=require(_0x2c1d('0x3'));var express=require(_0x2c1d('0x4'));var router=express[_0x2c1d('0x5')]();var fs_extra=require(_0x2c1d('0x6'));var auth=require(_0x2c1d('0x7'));var interaction=require(_0x2c1d('0x8'));var config=require(_0x2c1d('0x9'));var controller=require('./intVtigerField.controller');router['get']('/',auth[_0x2c1d('0xa')](),controller[_0x2c1d('0xb')]);router[_0x2c1d('0xc')](_0x2c1d('0xd'),auth[_0x2c1d('0xa')](),controller[_0x2c1d('0xe')]);router[_0x2c1d('0xf')]('/',auth[_0x2c1d('0xa')](),controller[_0x2c1d('0x10')]);router['put'](_0x2c1d('0xd'),auth[_0x2c1d('0xa')](),controller['update']);router[_0x2c1d('0x11')](_0x2c1d('0xd'),auth[_0x2c1d('0xa')](),controller[_0x2c1d('0x12')]);module[_0x2c1d('0x13')]=router;
\ No newline at end of file
+var _0x07e7=['destroy','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intVtigerField.controller','get','isAuthenticated','index','show','post','create','put','update','/:id'];(function(_0x2e986d,_0x4b6b63){var _0x351c79=function(_0xf178c7){while(--_0xf178c7){_0x2e986d['push'](_0x2e986d['shift']());}};_0x351c79(++_0x4b6b63);}(_0x07e7,0x9a));var _0x707e=function(_0x405735,_0x18d0cc){_0x405735=_0x405735-0x0;var _0x1ecc09=_0x07e7[_0x405735];return _0x1ecc09;};'use strict';var multer=require(_0x707e('0x0'));var util=require(_0x707e('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x707e('0x2'));var router=express[_0x707e('0x3')]();var fs_extra=require(_0x707e('0x4'));var auth=require(_0x707e('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x707e('0x6'));var controller=require(_0x707e('0x7'));router[_0x707e('0x8')]('/',auth[_0x707e('0x9')](),controller[_0x707e('0xa')]);router[_0x707e('0x8')]('/:id',auth[_0x707e('0x9')](),controller[_0x707e('0xb')]);router[_0x707e('0xc')]('/',auth[_0x707e('0x9')](),controller[_0x707e('0xd')]);router[_0x707e('0xe')]('/:id',auth[_0x707e('0x9')](),controller[_0x707e('0xf')]);router['delete'](_0x707e('0x10'),auth[_0x707e('0x9')](),controller[_0x707e('0x11')]);module[_0x707e('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0979=['BOOLEAN','sequelize','ENUM','string','customVariable','keyValue','picklist','STRING','variable'];(function(_0x4e99b,_0x3ae645){var _0x2bccfa=function(_0x5214eb){while(--_0x5214eb){_0x4e99b['push'](_0x4e99b['shift']());}};_0x2bccfa(++_0x3ae645);}(_0x0979,0x76));var _0x9097=function(_0x6942e0,_0x131e6d){_0x6942e0=_0x6942e0-0x0;var _0xb86490=_0x0979[_0x6942e0];return _0xb86490;};'use strict';var Sequelize=require(_0x9097('0x0'));module['exports']={'type':{'type':Sequelize[_0x9097('0x1')](_0x9097('0x2'),'variable',_0x9097('0x3'),_0x9097('0x4'),_0x9097('0x5')),'defaultValue':_0x9097('0x2')},'content':{'type':Sequelize[_0x9097('0x6')]},'key':{'type':Sequelize[_0x9097('0x6')]},'keyType':{'type':Sequelize[_0x9097('0x1')]('string',_0x9097('0x7'),'customVariable')},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x9097('0x6')]},'nameField':{'type':Sequelize[_0x9097('0x6')]},'customField':{'type':Sequelize[_0x9097('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9097('0x6')]}};
\ No newline at end of file
+var _0x2f04=['picklist','string','STRING','variable','BOOLEAN','sequelize','exports','ENUM','customVariable','keyValue'];(function(_0x29b826,_0xf3f837){var _0x2b33dc=function(_0x51c646){while(--_0x51c646){_0x29b826['push'](_0x29b826['shift']());}};_0x2b33dc(++_0xf3f837);}(_0x2f04,0x1db));var _0x42f0=function(_0x565ed7,_0x398228){_0x565ed7=_0x565ed7-0x0;var _0x183ad7=_0x2f04[_0x565ed7];return _0x183ad7;};'use strict';var Sequelize=require(_0x42f0('0x0'));module[_0x42f0('0x1')]={'type':{'type':Sequelize[_0x42f0('0x2')]('string','variable',_0x42f0('0x3'),_0x42f0('0x4'),_0x42f0('0x5')),'defaultValue':_0x42f0('0x6')},'content':{'type':Sequelize[_0x42f0('0x7')]},'key':{'type':Sequelize[_0x42f0('0x7')]},'keyType':{'type':Sequelize[_0x42f0('0x2')](_0x42f0('0x6'),_0x42f0('0x8'),_0x42f0('0x3'))},'keyContent':{'type':Sequelize[_0x42f0('0x7')]},'idField':{'type':Sequelize[_0x42f0('0x7')]},'nameField':{'type':Sequelize[_0x42f0('0x7')]},'customField':{'type':Sequelize[_0x42f0('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x42f0('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cd6=['find','create','body','update','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','destroy','then','error','stack','name','send','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','VtigerField','includeAll','include','findAll','catch','show','params','keys','length'];(function(_0x478414,_0xcf142d){var _0x5eb6b9=function(_0x10e6fe){while(--_0x10e6fe){_0x478414['push'](_0x478414['shift']());}};_0x5eb6b9(++_0xcf142d);}(_0x8cd6,0x12c));var _0x68cd=function(_0x27a1d3,_0x3406c3){_0x27a1d3=_0x27a1d3-0x0;var _0x1f3c5a=_0x8cd6[_0x27a1d3];return _0x1f3c5a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x68cd('0x0'));var zipdir=require(_0x68cd('0x1'));var jsonpatch=require(_0x68cd('0x2'));var rp=require(_0x68cd('0x3'));var moment=require(_0x68cd('0x4'));var BPromise=require(_0x68cd('0x5'));var Mustache=require(_0x68cd('0x6'));var util=require(_0x68cd('0x7'));var path=require(_0x68cd('0x8'));var sox=require(_0x68cd('0x9'));var csv=require(_0x68cd('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x68cd('0xb'));var _=require(_0x68cd('0xc'));var squel=require(_0x68cd('0xd'));var crypto=require(_0x68cd('0xe'));var jsforce=require(_0x68cd('0xf'));var deskjs=require(_0x68cd('0x10'));var toCsv=require(_0x68cd('0xa'));var querystring=require(_0x68cd('0x11'));var Papa=require(_0x68cd('0x12'));var Redis=require('ioredis');var authService=require(_0x68cd('0x13'));var qs=require(_0x68cd('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x68cd('0x15'));var logger=require('../../config/logger')(_0x68cd('0x16'));var utils=require('../../config/utils');var config=require(_0x68cd('0x17'));var licenseUtil=require(_0x68cd('0x18'));var db=require(_0x68cd('0x19'))['db'];function respondWithStatusCode(_0xee4a3e,_0x17bb45){_0x17bb45=_0x17bb45||0xcc;return function(_0x32b734){if(_0x32b734){return _0xee4a3e[_0x68cd('0x1a')](_0x17bb45);}return _0xee4a3e[_0x68cd('0x1b')](_0x17bb45)[_0x68cd('0x1c')]();};}function respondWithResult(_0x2761f4,_0x40ecce){_0x40ecce=_0x40ecce||0xc8;return function(_0x75d150){if(_0x75d150){return _0x2761f4['status'](_0x40ecce)[_0x68cd('0x1d')](_0x75d150);}};}function respondWithFilteredResult(_0x4f2c06,_0x475fff){return function(_0x44507b){if(_0x44507b){var _0x13f7bc=typeof _0x475fff[_0x68cd('0x1e')]==='undefined'&&typeof _0x475fff[_0x68cd('0x1f')]==='undefined';var _0x353284=_0x44507b[_0x68cd('0x20')];var _0x15231d=_0x13f7bc?0x0:_0x475fff[_0x68cd('0x1e')];var _0x4cae4e=_0x13f7bc?_0x44507b[_0x68cd('0x20')]:_0x475fff['offset']+_0x475fff[_0x68cd('0x1f')];var _0x191fad;if(_0x4cae4e>=_0x353284){_0x4cae4e=_0x353284;_0x191fad=0xc8;}else{_0x191fad=0xce;}_0x4f2c06[_0x68cd('0x1b')](_0x191fad);return _0x4f2c06[_0x68cd('0x21')]('Content-Range',_0x15231d+'-'+_0x4cae4e+'/'+_0x353284)[_0x68cd('0x1d')](_0x44507b);}return null;};}function patchUpdates(_0x4e6c48){return function(_0x58e194){try{jsonpatch[_0x68cd('0x22')](_0x58e194,_0x4e6c48,!![]);}catch(_0x51e803){return BPromise[_0x68cd('0x23')](_0x51e803);}return _0x58e194[_0x68cd('0x24')]();};}function saveUpdates(_0x5f07f4,_0x3eb3b7){return function(_0x59fd07){if(_0x59fd07){return _0x59fd07['update'](_0x5f07f4)['then'](function(_0x373880){return _0x373880;});}return null;};}function removeEntity(_0x578880,_0x439d5b){return function(_0x44c819){if(_0x44c819){return _0x44c819[_0x68cd('0x25')]()[_0x68cd('0x26')](function(){_0x578880[_0x68cd('0x1b')](0xcc)[_0x68cd('0x1c')]();});}};}function handleEntityNotFound(_0x362e66,_0x1f2fd2){return function(_0x25b671){if(!_0x25b671){_0x362e66[_0x68cd('0x1a')](0x194);}return _0x25b671;};}function handleError(_0xda39bf,_0x339e8b){_0x339e8b=_0x339e8b||0x1f4;return function(_0x3aaabe){logger[_0x68cd('0x27')](_0x3aaabe[_0x68cd('0x28')]);if(_0x3aaabe[_0x68cd('0x29')]){delete _0x3aaabe[_0x68cd('0x29')];}_0xda39bf[_0x68cd('0x1b')](_0x339e8b)[_0x68cd('0x2a')](_0x3aaabe);};}exports['index']=function(_0x4e4f5d,_0x9b544){var _0x50a4bb={},_0x2583f2={},_0x399608={'count':0x0,'rows':[]};var _0x3dbab4=_['map'](db['VtigerField']['rawAttributes'],function(_0x24974f){return{'name':_0x24974f['fieldName'],'type':_0x24974f[_0x68cd('0x2b')]['key']};});_0x2583f2[_0x68cd('0x2c')]=_[_0x68cd('0x2d')](_0x3dbab4,'name');_0x2583f2['query']=_['keys'](_0x4e4f5d[_0x68cd('0x2e')]);_0x2583f2[_0x68cd('0x2f')]=_[_0x68cd('0x30')](_0x2583f2[_0x68cd('0x2c')],_0x2583f2[_0x68cd('0x2e')]);_0x50a4bb[_0x68cd('0x31')]=_[_0x68cd('0x30')](_0x2583f2[_0x68cd('0x2c')],qs[_0x68cd('0x32')](_0x4e4f5d[_0x68cd('0x2e')][_0x68cd('0x32')]));_0x50a4bb[_0x68cd('0x31')]=_0x50a4bb[_0x68cd('0x31')]['length']?_0x50a4bb[_0x68cd('0x31')]:_0x2583f2['model'];if(!_0x4e4f5d[_0x68cd('0x2e')][_0x68cd('0x33')](_0x68cd('0x34'))){_0x50a4bb[_0x68cd('0x1f')]=qs[_0x68cd('0x1f')](_0x4e4f5d[_0x68cd('0x2e')]['limit']);_0x50a4bb['offset']=qs[_0x68cd('0x1e')](_0x4e4f5d[_0x68cd('0x2e')][_0x68cd('0x1e')]);}_0x50a4bb[_0x68cd('0x35')]=qs[_0x68cd('0x36')](_0x4e4f5d[_0x68cd('0x2e')]['sort']);_0x50a4bb[_0x68cd('0x37')]=qs['filters'](_[_0x68cd('0x38')](_0x4e4f5d[_0x68cd('0x2e')],_0x2583f2[_0x68cd('0x2f')]),_0x3dbab4);if(_0x4e4f5d[_0x68cd('0x2e')][_0x68cd('0x39')]){_0x50a4bb[_0x68cd('0x37')]=_['merge'](_0x50a4bb[_0x68cd('0x37')],{'$or':_['map'](_0x3dbab4,function(_0x4b0440){if(_0x4b0440[_0x68cd('0x2b')]!==_0x68cd('0x3a')){var _0x64d6a6={};_0x64d6a6[_0x4b0440[_0x68cd('0x29')]]={'$like':'%'+_0x4e4f5d[_0x68cd('0x2e')][_0x68cd('0x39')]+'%'};return _0x64d6a6;}})});}_0x50a4bb=_[_0x68cd('0x3b')]({},_0x50a4bb,_0x4e4f5d[_0x68cd('0x3c')]);var _0x72263d={'where':_0x50a4bb[_0x68cd('0x37')]};return db[_0x68cd('0x3d')][_0x68cd('0x20')](_0x72263d)[_0x68cd('0x26')](function(_0x2f233e){_0x399608[_0x68cd('0x20')]=_0x2f233e;if(_0x4e4f5d[_0x68cd('0x2e')][_0x68cd('0x3e')]){_0x50a4bb[_0x68cd('0x3f')]=[{'all':!![]}];}return db[_0x68cd('0x3d')][_0x68cd('0x40')](_0x50a4bb);})['then'](function(_0xbb42d8){_0x399608['rows']=_0xbb42d8;return _0x399608;})['then'](respondWithFilteredResult(_0x9b544,_0x50a4bb))[_0x68cd('0x41')](handleError(_0x9b544,null));};exports[_0x68cd('0x42')]=function(_0x59409a,_0x52e30f){var _0x93cc7d={'raw':!![],'where':{'id':_0x59409a[_0x68cd('0x43')]['id']}},_0x324739={};_0x324739[_0x68cd('0x2c')]=_['keys'](db['VtigerField']['rawAttributes']);_0x324739[_0x68cd('0x2e')]=_[_0x68cd('0x44')](_0x59409a['query']);_0x324739[_0x68cd('0x2f')]=_['intersection'](_0x324739[_0x68cd('0x2c')],_0x324739[_0x68cd('0x2e')]);_0x93cc7d[_0x68cd('0x31')]=_[_0x68cd('0x30')](_0x324739['model'],qs[_0x68cd('0x32')](_0x59409a[_0x68cd('0x2e')]['fields']));_0x93cc7d[_0x68cd('0x31')]=_0x93cc7d[_0x68cd('0x31')][_0x68cd('0x45')]?_0x93cc7d[_0x68cd('0x31')]:_0x324739[_0x68cd('0x2c')];if(_0x59409a[_0x68cd('0x2e')][_0x68cd('0x3e')]){_0x93cc7d[_0x68cd('0x3f')]=[{'all':!![]}];}_0x93cc7d=_[_0x68cd('0x3b')]({},_0x93cc7d,_0x59409a[_0x68cd('0x3c')]);return db['VtigerField'][_0x68cd('0x46')](_0x93cc7d)[_0x68cd('0x26')](handleEntityNotFound(_0x52e30f,null))[_0x68cd('0x26')](respondWithResult(_0x52e30f,null))['catch'](handleError(_0x52e30f,null));};exports[_0x68cd('0x47')]=function(_0x268f7a,_0x192d03){return db['VtigerField'][_0x68cd('0x47')](_0x268f7a[_0x68cd('0x48')],{})[_0x68cd('0x26')](respondWithResult(_0x192d03,0xc9))[_0x68cd('0x41')](handleError(_0x192d03,null));};exports[_0x68cd('0x49')]=function(_0x130d25,_0x14b4d5){if(_0x130d25['body']['id']){delete _0x130d25['body']['id'];}return db['VtigerField']['find']({'where':{'id':_0x130d25[_0x68cd('0x43')]['id']}})[_0x68cd('0x26')](handleEntityNotFound(_0x14b4d5,null))['then'](saveUpdates(_0x130d25[_0x68cd('0x48')],null))[_0x68cd('0x26')](respondWithResult(_0x14b4d5,null))[_0x68cd('0x41')](handleError(_0x14b4d5,null));};exports[_0x68cd('0x25')]=function(_0x10d8a9,_0x458957){return db['VtigerField'][_0x68cd('0x46')]({'where':{'id':_0x10d8a9[_0x68cd('0x43')]['id']}})[_0x68cd('0x26')](handleEntityNotFound(_0x458957,null))[_0x68cd('0x26')](removeEntity(_0x458957,null))[_0x68cd('0x41')](handleError(_0x458957,null));};
\ No newline at end of file
+var _0x0ae4=['send','index','VtigerField','rawAttributes','type','key','map','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','options','includeAll','include','rows','catch','show','params','find','create','body','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','Content-Range','json','apply','save','update','then','destroy','error','stack','name'];(function(_0x2c86ba,_0x4d1914){var _0x3ffbf7=function(_0x5a4672){while(--_0x5a4672){_0x2c86ba['push'](_0x2c86ba['shift']());}};_0x3ffbf7(++_0x4d1914);}(_0x0ae4,0xf7));var _0x40ae=function(_0x2d8208,_0x21dfc8){_0x2d8208=_0x2d8208-0x0;var _0x293814=_0x0ae4[_0x2d8208];return _0x293814;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x40ae('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x40ae('0x1'));var rp=require(_0x40ae('0x2'));var moment=require(_0x40ae('0x3'));var BPromise=require(_0x40ae('0x4'));var Mustache=require(_0x40ae('0x5'));var util=require(_0x40ae('0x6'));var path=require(_0x40ae('0x7'));var sox=require(_0x40ae('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x40ae('0x9'));var squel=require(_0x40ae('0xa'));var crypto=require(_0x40ae('0xb'));var jsforce=require(_0x40ae('0xc'));var deskjs=require(_0x40ae('0xd'));var toCsv=require('to-csv');var querystring=require(_0x40ae('0xe'));var Papa=require(_0x40ae('0xf'));var Redis=require('ioredis');var authService=require(_0x40ae('0x10'));var qs=require(_0x40ae('0x11'));var as=require(_0x40ae('0x12'));var hardwareService=require(_0x40ae('0x13'));var logger=require(_0x40ae('0x14'))(_0x40ae('0x15'));var utils=require('../../config/utils');var config=require(_0x40ae('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x40ae('0x17'))['db'];function respondWithStatusCode(_0x37449c,_0x2b2f4e){_0x2b2f4e=_0x2b2f4e||0xcc;return function(_0x518eec){if(_0x518eec){return _0x37449c[_0x40ae('0x18')](_0x2b2f4e);}return _0x37449c[_0x40ae('0x19')](_0x2b2f4e)[_0x40ae('0x1a')]();};}function respondWithResult(_0x410f89,_0x19cb9f){_0x19cb9f=_0x19cb9f||0xc8;return function(_0x4ac729){if(_0x4ac729){return _0x410f89[_0x40ae('0x19')](_0x19cb9f)['json'](_0x4ac729);}};}function respondWithFilteredResult(_0xb44747,_0x51542e){return function(_0x9c356a){if(_0x9c356a){var _0x3768c2=typeof _0x51542e[_0x40ae('0x1b')]===_0x40ae('0x1c')&&typeof _0x51542e['limit']===_0x40ae('0x1c');var _0xbf6ea2=_0x9c356a[_0x40ae('0x1d')];var _0x256266=_0x3768c2?0x0:_0x51542e['offset'];var _0x2d6fc0=_0x3768c2?_0x9c356a['count']:_0x51542e[_0x40ae('0x1b')]+_0x51542e[_0x40ae('0x1e')];var _0x137c73;if(_0x2d6fc0>=_0xbf6ea2){_0x2d6fc0=_0xbf6ea2;_0x137c73=0xc8;}else{_0x137c73=0xce;}_0xb44747[_0x40ae('0x19')](_0x137c73);return _0xb44747['set'](_0x40ae('0x1f'),_0x256266+'-'+_0x2d6fc0+'/'+_0xbf6ea2)[_0x40ae('0x20')](_0x9c356a);}return null;};}function patchUpdates(_0x1e77d2){return function(_0x491764){try{jsonpatch[_0x40ae('0x21')](_0x491764,_0x1e77d2,!![]);}catch(_0x367624){return BPromise['reject'](_0x367624);}return _0x491764[_0x40ae('0x22')]();};}function saveUpdates(_0x1887d1,_0x19fb5f){return function(_0x4f601a){if(_0x4f601a){return _0x4f601a[_0x40ae('0x23')](_0x1887d1)[_0x40ae('0x24')](function(_0x53066a){return _0x53066a;});}return null;};}function removeEntity(_0x5854ed,_0xb488ba){return function(_0xdb372d){if(_0xdb372d){return _0xdb372d[_0x40ae('0x25')]()[_0x40ae('0x24')](function(){_0x5854ed[_0x40ae('0x19')](0xcc)[_0x40ae('0x1a')]();});}};}function handleEntityNotFound(_0x4ba6a5,_0x5db942){return function(_0x36028f){if(!_0x36028f){_0x4ba6a5[_0x40ae('0x18')](0x194);}return _0x36028f;};}function handleError(_0x3d7295,_0x25fdcf){_0x25fdcf=_0x25fdcf||0x1f4;return function(_0x3cb6a0){logger[_0x40ae('0x26')](_0x3cb6a0[_0x40ae('0x27')]);if(_0x3cb6a0[_0x40ae('0x28')]){delete _0x3cb6a0[_0x40ae('0x28')];}_0x3d7295[_0x40ae('0x19')](_0x25fdcf)[_0x40ae('0x29')](_0x3cb6a0);};}exports[_0x40ae('0x2a')]=function(_0x1d626e,_0x281aef){var _0x4df682={},_0xa10838={},_0x55931c={'count':0x0,'rows':[]};var _0x2fd601=_['map'](db[_0x40ae('0x2b')][_0x40ae('0x2c')],function(_0x460683){return{'name':_0x460683['fieldName'],'type':_0x460683[_0x40ae('0x2d')][_0x40ae('0x2e')]};});_0xa10838['model']=_[_0x40ae('0x2f')](_0x2fd601,_0x40ae('0x28'));_0xa10838['query']=_[_0x40ae('0x30')](_0x1d626e[_0x40ae('0x31')]);_0xa10838[_0x40ae('0x32')]=_[_0x40ae('0x33')](_0xa10838[_0x40ae('0x34')],_0xa10838[_0x40ae('0x31')]);_0x4df682[_0x40ae('0x35')]=_[_0x40ae('0x33')](_0xa10838[_0x40ae('0x34')],qs[_0x40ae('0x36')](_0x1d626e[_0x40ae('0x31')][_0x40ae('0x36')]));_0x4df682['attributes']=_0x4df682[_0x40ae('0x35')][_0x40ae('0x37')]?_0x4df682[_0x40ae('0x35')]:_0xa10838[_0x40ae('0x34')];if(!_0x1d626e[_0x40ae('0x31')][_0x40ae('0x38')](_0x40ae('0x39'))){_0x4df682[_0x40ae('0x1e')]=qs[_0x40ae('0x1e')](_0x1d626e[_0x40ae('0x31')][_0x40ae('0x1e')]);_0x4df682[_0x40ae('0x1b')]=qs[_0x40ae('0x1b')](_0x1d626e[_0x40ae('0x31')][_0x40ae('0x1b')]);}_0x4df682['order']=qs[_0x40ae('0x3a')](_0x1d626e[_0x40ae('0x31')]['sort']);_0x4df682[_0x40ae('0x3b')]=qs[_0x40ae('0x32')](_['pick'](_0x1d626e[_0x40ae('0x31')],_0xa10838[_0x40ae('0x32')]),_0x2fd601);if(_0x1d626e[_0x40ae('0x31')][_0x40ae('0x3c')]){_0x4df682[_0x40ae('0x3b')]=_[_0x40ae('0x3d')](_0x4df682['where'],{'$or':_['map'](_0x2fd601,function(_0x346207){if(_0x346207['type']!=='VIRTUAL'){var _0x376ee3={};_0x376ee3[_0x346207[_0x40ae('0x28')]]={'$like':'%'+_0x1d626e[_0x40ae('0x31')]['filter']+'%'};return _0x376ee3;}})});}_0x4df682=_[_0x40ae('0x3d')]({},_0x4df682,_0x1d626e[_0x40ae('0x3e')]);var _0x71c57c={'where':_0x4df682['where']};return db[_0x40ae('0x2b')][_0x40ae('0x1d')](_0x71c57c)[_0x40ae('0x24')](function(_0x44fd6f){_0x55931c[_0x40ae('0x1d')]=_0x44fd6f;if(_0x1d626e[_0x40ae('0x31')][_0x40ae('0x3f')]){_0x4df682[_0x40ae('0x40')]=[{'all':!![]}];}return db[_0x40ae('0x2b')]['findAll'](_0x4df682);})[_0x40ae('0x24')](function(_0x28b493){_0x55931c[_0x40ae('0x41')]=_0x28b493;return _0x55931c;})[_0x40ae('0x24')](respondWithFilteredResult(_0x281aef,_0x4df682))[_0x40ae('0x42')](handleError(_0x281aef,null));};exports[_0x40ae('0x43')]=function(_0x4872d2,_0x416bf7){var _0x473395={'raw':!![],'where':{'id':_0x4872d2[_0x40ae('0x44')]['id']}},_0x136ea5={};_0x136ea5['model']=_[_0x40ae('0x30')](db['VtigerField'][_0x40ae('0x2c')]);_0x136ea5[_0x40ae('0x31')]=_[_0x40ae('0x30')](_0x4872d2[_0x40ae('0x31')]);_0x136ea5['filters']=_[_0x40ae('0x33')](_0x136ea5[_0x40ae('0x34')],_0x136ea5[_0x40ae('0x31')]);_0x473395[_0x40ae('0x35')]=_[_0x40ae('0x33')](_0x136ea5[_0x40ae('0x34')],qs['fields'](_0x4872d2[_0x40ae('0x31')][_0x40ae('0x36')]));_0x473395['attributes']=_0x473395[_0x40ae('0x35')]['length']?_0x473395[_0x40ae('0x35')]:_0x136ea5[_0x40ae('0x34')];if(_0x4872d2['query'][_0x40ae('0x3f')]){_0x473395[_0x40ae('0x40')]=[{'all':!![]}];}_0x473395=_['merge']({},_0x473395,_0x4872d2[_0x40ae('0x3e')]);return db[_0x40ae('0x2b')][_0x40ae('0x45')](_0x473395)[_0x40ae('0x24')](handleEntityNotFound(_0x416bf7,null))['then'](respondWithResult(_0x416bf7,null))[_0x40ae('0x42')](handleError(_0x416bf7,null));};exports[_0x40ae('0x46')]=function(_0x3bd6fe,_0x19797c){return db[_0x40ae('0x2b')][_0x40ae('0x46')](_0x3bd6fe[_0x40ae('0x47')],{})[_0x40ae('0x24')](respondWithResult(_0x19797c,0xc9))[_0x40ae('0x42')](handleError(_0x19797c,null));};exports['update']=function(_0x1e4810,_0x47a18f){if(_0x1e4810[_0x40ae('0x47')]['id']){delete _0x1e4810['body']['id'];}return db['VtigerField'][_0x40ae('0x45')]({'where':{'id':_0x1e4810[_0x40ae('0x44')]['id']}})[_0x40ae('0x24')](handleEntityNotFound(_0x47a18f,null))[_0x40ae('0x24')](saveUpdates(_0x1e4810['body'],null))[_0x40ae('0x24')](respondWithResult(_0x47a18f,null))[_0x40ae('0x42')](handleError(_0x47a18f,null));};exports[_0x40ae('0x25')]=function(_0x252aa7,_0x41268c){return db[_0x40ae('0x2b')]['find']({'where':{'id':_0x252aa7[_0x40ae('0x44')]['id']}})[_0x40ae('0x24')](handleEntityNotFound(_0x41268c,null))[_0x40ae('0x24')](removeEntity(_0x41268c,null))['catch'](handleError(_0x41268c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x173f=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','VtigerField','int_vtiger_fields','vtiger_unique_index','lodash'];(function(_0x31bab3,_0x44554f){var _0x4fd382=function(_0x42b336){while(--_0x42b336){_0x31bab3['push'](_0x31bab3['shift']());}};_0x4fd382(++_0x44554f);}(_0x173f,0x1db));var _0xf173=function(_0x36ed3c,_0x44a00a){_0x36ed3c=_0x36ed3c-0x0;var _0x52a2e0=_0x173f[_0x36ed3c];return _0x52a2e0;};'use strict';var _=require(_0xf173('0x0'));var util=require(_0xf173('0x1'));var logger=require(_0xf173('0x2'))(_0xf173('0x3'));var moment=require(_0xf173('0x4'));var BPromise=require(_0xf173('0x5'));var rp=require(_0xf173('0x6'));var fs=require('fs');var path=require(_0xf173('0x7'));var rimraf=require(_0xf173('0x8'));var config=require(_0xf173('0x9'));var attributes=require('./intVtigerField.attributes');module[_0xf173('0xa')]=function(_0xe746b9,_0x1b7bfa){return _0xe746b9['define'](_0xf173('0xb'),attributes,{'tableName':_0xf173('0xc'),'paranoid':![],'indexes':[{'name':_0xf173('0xd'),'fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x426c=['../../config/environment','./intVtigerField.attributes','exports','VtigerField','vtiger_unique_index','idField','FieldId','lodash','util','../../config/logger','request-promise','path','rimraf'];(function(_0x3088dc,_0x3d44bd){var _0x92d987=function(_0x32d338){while(--_0x32d338){_0x3088dc['push'](_0x3088dc['shift']());}};_0x92d987(++_0x3d44bd);}(_0x426c,0x180));var _0xc426=function(_0x47761d,_0x3f8494){_0x47761d=_0x47761d-0x0;var _0x3d1c05=_0x426c[_0x47761d];return _0x3d1c05;};'use strict';var _=require(_0xc426('0x0'));var util=require(_0xc426('0x1'));var logger=require(_0xc426('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xc426('0x3'));var fs=require('fs');var path=require(_0xc426('0x4'));var rimraf=require(_0xc426('0x5'));var config=require(_0xc426('0x6'));var attributes=require(_0xc426('0x7'));module[_0xc426('0x8')]=function(_0x5dde93,_0x4239f6){return _0x5dde93['define'](_0xc426('0x9'),attributes,{'tableName':'int_vtiger_fields','paranoid':![],'indexes':[{'name':_0xc426('0xa'),'fields':[_0xc426('0xb'),_0xc426('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7884=['rpc','jayson/promise','client','http','request','VtigerField,\x20%s,\x20%s','debug','VtigerField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x181d63,_0x4c5932){var _0x2b32c3=function(_0x2b14aa){while(--_0x2b14aa){_0x181d63['push'](_0x181d63['shift']());}};_0x2b32c3(++_0x4c5932);}(_0x7884,0x10d));var _0x4788=function(_0x5bae0f,_0x44d842){_0x5bae0f=_0x5bae0f-0x0;var _0x589663=_0x7884[_0x5bae0f];return _0x589663;};'use strict';var _=require(_0x4788('0x0'));var util=require(_0x4788('0x1'));var moment=require(_0x4788('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4788('0x3'));var db=require(_0x4788('0x4'))['db'];var utils=require(_0x4788('0x5'));var logger=require(_0x4788('0x6'))(_0x4788('0x7'));var config=require('../../config/environment');var jayson=require(_0x4788('0x8'));var client=jayson[_0x4788('0x9')][_0x4788('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x37c182,_0x47916e,_0x796e6f){return new BPromise(function(_0x4e910b,_0xfdc0fc){return client[_0x4788('0xb')](_0x37c182,_0x796e6f)['then'](function(_0x1564a0){logger['info'](_0x4788('0xc'),_0x47916e,'request\x20sent');logger[_0x4788('0xd')](_0x4788('0xe'),_0x47916e,'request\x20sent',JSON[_0x4788('0xf')](_0x1564a0));if(_0x1564a0[_0x4788('0x10')]){if(_0x1564a0[_0x4788('0x10')][_0x4788('0x11')]===0x1f4){logger[_0x4788('0x10')](_0x4788('0xc'),_0x47916e,_0x1564a0[_0x4788('0x10')][_0x4788('0x12')]);return _0xfdc0fc(_0x1564a0[_0x4788('0x10')][_0x4788('0x12')]);}logger[_0x4788('0x10')](_0x4788('0xc'),_0x47916e,_0x1564a0[_0x4788('0x10')]['message']);return _0x4e910b(_0x1564a0[_0x4788('0x10')][_0x4788('0x12')]);}else{logger[_0x4788('0x13')]('VtigerField,\x20%s,\x20%s',_0x47916e,_0x4788('0x14'));_0x4e910b(_0x1564a0[_0x4788('0x15')][_0x4788('0x12')]);}})[_0x4788('0x16')](function(_0x5e2ecc){logger['error'](_0x4788('0xc'),_0x47916e,_0x5e2ecc);_0xfdc0fc(_0x5e2ecc);});});}
\ No newline at end of file
+var _0xf199=['lodash','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','VtigerField,\x20%s,\x20%s','request\x20sent','debug','VtigerField,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xf199,0x168));var _0x9f19=function(_0x443246,_0x199405){_0x443246=_0x443246-0x0;var _0xf91625=_0xf199[_0x443246];return _0xf91625;};'use strict';var _=require(_0x9f19('0x0'));var util=require('util');var moment=require(_0x9f19('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9f19('0x2'));var db=require(_0x9f19('0x3'))['db'];var utils=require(_0x9f19('0x4'));var logger=require(_0x9f19('0x5'))('rpc');var config=require(_0x9f19('0x6'));var jayson=require(_0x9f19('0x7'));var client=jayson[_0x9f19('0x8')][_0x9f19('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3914b8,_0x1d7a58,_0x584dad){return new BPromise(function(_0x37b29d,_0x15900a){return client[_0x9f19('0xa')](_0x3914b8,_0x584dad)[_0x9f19('0xb')](function(_0x5cc152){logger[_0x9f19('0xc')](_0x9f19('0xd'),_0x1d7a58,_0x9f19('0xe'));logger[_0x9f19('0xf')](_0x9f19('0x10'),_0x1d7a58,_0x9f19('0xe'),JSON[_0x9f19('0x11')](_0x5cc152));if(_0x5cc152[_0x9f19('0x12')]){if(_0x5cc152[_0x9f19('0x12')]['code']===0x1f4){logger[_0x9f19('0x12')](_0x9f19('0xd'),_0x1d7a58,_0x5cc152['error'][_0x9f19('0x13')]);return _0x15900a(_0x5cc152['error']['message']);}logger[_0x9f19('0x12')](_0x9f19('0xd'),_0x1d7a58,_0x5cc152['error']['message']);return _0x37b29d(_0x5cc152[_0x9f19('0x12')][_0x9f19('0x13')]);}else{logger[_0x9f19('0xc')](_0x9f19('0xd'),_0x1d7a58,'request\x20sent');_0x37b29d(_0x5cc152['result']['message']);}})['catch'](function(_0x74db8a){logger[_0x9f19('0x12')](_0x9f19('0xd'),_0x1d7a58,_0x74db8a);_0x15900a(_0x74db8a);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5bda=['connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','get','isAuthenticated','index','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','/:id','delete','exports','multer','util','path'];(function(_0x39a1f7,_0x4fa0a8){var _0x265952=function(_0x2895b7){while(--_0x2895b7){_0x39a1f7['push'](_0x39a1f7['shift']());}};_0x265952(++_0x4fa0a8);}(_0x5bda,0x162));var _0xa5bd=function(_0x257bbc,_0x1101e9){_0x257bbc=_0x257bbc-0x0;var _0x13a941=_0x5bda[_0x257bbc];return _0x13a941;};'use strict';var multer=require(_0xa5bd('0x0'));var util=require(_0xa5bd('0x1'));var path=require(_0xa5bd('0x2'));var timeout=require(_0xa5bd('0x3'));var express=require(_0xa5bd('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xa5bd('0x5'));var interaction=require(_0xa5bd('0x6'));var config=require(_0xa5bd('0x7'));var controller=require(_0xa5bd('0x8'));router[_0xa5bd('0x9')]('/',auth[_0xa5bd('0xa')](),controller[_0xa5bd('0xb')]);router['get']('/:id',auth[_0xa5bd('0xa')](),controller['show']);router[_0xa5bd('0x9')](_0xa5bd('0xc'),auth['isAuthenticated'](),controller[_0xa5bd('0xd')]);router[_0xa5bd('0x9')](_0xa5bd('0xe'),auth['isAuthenticated'](),controller[_0xa5bd('0xf')]);router[_0xa5bd('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0xa5bd('0x10')]('/:id/configurations',auth[_0xa5bd('0xa')](),controller[_0xa5bd('0x11')]);router['put'](_0xa5bd('0x12'),auth[_0xa5bd('0xa')](),controller['update']);router[_0xa5bd('0x13')](_0xa5bd('0x12'),auth[_0xa5bd('0xa')](),controller['destroy']);module[_0xa5bd('0x14')]=router;
\ No newline at end of file
+var _0x398b=['path','connect-timeout','fs-extra','../../components/auth/service','../../config/environment','./intZendeskAccount.controller','index','isAuthenticated','show','get','/:id/configurations','getConfigurations','getFields','create','post','put','/:id','update','delete','exports','multer','util'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0x398b,0x1b6));var _0xb398=function(_0x4b7fdc,_0x3e29ce){_0x4b7fdc=_0x4b7fdc-0x0;var _0x32a791=_0x398b[_0x4b7fdc];return _0x32a791;};'use strict';var multer=require(_0xb398('0x0'));var util=require(_0xb398('0x1'));var path=require(_0xb398('0x2'));var timeout=require(_0xb398('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xb398('0x4'));var auth=require(_0xb398('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xb398('0x6'));var controller=require(_0xb398('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0xb398('0x8')]);router['get']('/:id',auth[_0xb398('0x9')](),controller[_0xb398('0xa')]);router[_0xb398('0xb')](_0xb398('0xc'),auth['isAuthenticated'](),controller[_0xb398('0xd')]);router['get']('/:id/fields',auth[_0xb398('0x9')](),controller[_0xb398('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0xb398('0xf')]);router[_0xb398('0x10')](_0xb398('0xc'),auth[_0xb398('0x9')](),controller['addConfiguration']);router[_0xb398('0x11')](_0xb398('0x12'),auth['isAuthenticated'](),controller[_0xb398('0x13')]);router[_0xb398('0x14')](_0xb398('0x12'),auth[_0xb398('0x9')](),controller['destroy']);module[_0xb398('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9666=['sequelize','exports','STRING','username','ENUM','password','token','newTab','integrationTab'];(function(_0x4eab8a,_0x10bbb8){var _0x3a98be=function(_0x348ed5){while(--_0x348ed5){_0x4eab8a['push'](_0x4eab8a['shift']());}};_0x3a98be(++_0x10bbb8);}(_0x9666,0x17a));var _0x6966=function(_0x28d250,_0x368776){_0x28d250=_0x28d250-0x0;var _0x49e1a4=_0x9666[_0x28d250];return _0x49e1a4;};'use strict';var Sequelize=require(_0x6966('0x0'));module[_0x6966('0x1')]={'name':{'type':Sequelize[_0x6966('0x2')]},'description':{'type':Sequelize[_0x6966('0x2')]},'username':{'type':Sequelize['STRING'],'unique':_0x6966('0x3')},'password':{'type':Sequelize[_0x6966('0x2')]},'token':{'type':Sequelize[_0x6966('0x2')]},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'authType':{'type':Sequelize[_0x6966('0x4')](_0x6966('0x5'),_0x6966('0x6')),'defaultValue':_0x6966('0x5')},'serverUrl':{'type':Sequelize[_0x6966('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x6966('0x4')]('integrationTab',_0x6966('0x7')),'defaultValue':_0x6966('0x8')}};
\ No newline at end of file
+var _0x4d68=['newTab','sequelize','exports','STRING','username','remoteUri','password','token','integrationTab'];(function(_0x187283,_0x4246d2){var _0x4aca7f=function(_0x44b8e1){while(--_0x44b8e1){_0x187283['push'](_0x187283['shift']());}};_0x4aca7f(++_0x4246d2);}(_0x4d68,0x1c3));var _0x84d6=function(_0x8ba19a,_0x1d2b2b){_0x8ba19a=_0x8ba19a-0x0;var _0x2bd8b4=_0x4d68[_0x8ba19a];return _0x2bd8b4;};'use strict';var Sequelize=require(_0x84d6('0x0'));module[_0x84d6('0x1')]={'name':{'type':Sequelize[_0x84d6('0x2')]},'description':{'type':Sequelize[_0x84d6('0x2')]},'username':{'type':Sequelize[_0x84d6('0x2')],'unique':_0x84d6('0x3')},'password':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0x84d6('0x2')]},'remoteUri':{'type':Sequelize['STRING'],'unique':_0x84d6('0x4')},'authType':{'type':Sequelize['ENUM'](_0x84d6('0x5'),_0x84d6('0x6')),'defaultValue':_0x84d6('0x5')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x84d6('0x7'),_0x84d6('0x8')),'defaultValue':_0x84d6('0x7')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe605=['password','token','authType','remoteUri','slice','GET','format','headers','Basic\x20%s','toString','base64','Sequelize','Unknown\x20authentication\x20type','subject','description','assignee','remove','ticket_fields','includes','position','title','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','undefined','limit','offset','count','set','Content-Range','json','apply','reject','update','then','destroy','end','error','name','send','index','map','ZendeskAccount','fieldName','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','findAll','rows','catch','show','params','length','include','options','find','create','body','getConfigurations','findOne','ZendeskConfiguration','rawAttributes','addConfiguration','Subjects','channel','Descriptions','getDescriptions','ZendeskField','getFields','username'];(function(_0x1ebce2,_0x10e903){var _0x4a330c=function(_0x4fd810){while(--_0x4fd810){_0x1ebce2['push'](_0x1ebce2['shift']());}};_0x4a330c(++_0x10e903);}(_0xe605,0x92));var _0x5e60=function(_0x24cfc2,_0x19bcd9){_0x24cfc2=_0x24cfc2-0x0;var _0x2003b2=_0xe605[_0x24cfc2];return _0x2003b2;};'use strict';var emlformat=require(_0x5e60('0x0'));var rimraf=require(_0x5e60('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5e60('0x2'));var rp=require(_0x5e60('0x3'));var moment=require(_0x5e60('0x4'));var BPromise=require(_0x5e60('0x5'));var Mustache=require(_0x5e60('0x6'));var util=require(_0x5e60('0x7'));var path=require(_0x5e60('0x8'));var sox=require(_0x5e60('0x9'));var csv=require(_0x5e60('0xa'));var ejs=require(_0x5e60('0xb'));var fs=require('fs');var fs_extra=require(_0x5e60('0xc'));var _=require(_0x5e60('0xd'));var squel=require('squel');var crypto=require(_0x5e60('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5e60('0xf'));var Papa=require(_0x5e60('0x10'));var Redis=require(_0x5e60('0x11'));var authService=require(_0x5e60('0x12'));var qs=require(_0x5e60('0x13'));var as=require(_0x5e60('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5e60('0x15'))('api');var utils=require(_0x5e60('0x16'));var config=require(_0x5e60('0x17'));var licenseUtil=require(_0x5e60('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x5e60('0x19'));function respondWithStatusCode(_0x178782,_0x1f4e14){_0x1f4e14=_0x1f4e14||0xcc;return function(_0xe039de){if(_0xe039de){return _0x178782[_0x5e60('0x1a')](_0x1f4e14);}return _0x178782[_0x5e60('0x1b')](_0x1f4e14)['end']();};}function respondWithResult(_0x209adb,_0x45304f){_0x45304f=_0x45304f||0xc8;return function(_0x21e3c8){if(_0x21e3c8){return _0x209adb[_0x5e60('0x1b')](_0x45304f)['json'](_0x21e3c8);}};}function respondWithFilteredResult(_0x20af5f,_0x529ffe){return function(_0x1ffd77){if(_0x1ffd77){var _0x3bc7d8=typeof _0x529ffe['offset']===_0x5e60('0x1c')&&typeof _0x529ffe[_0x5e60('0x1d')]===_0x5e60('0x1c');var _0x43045a=_0x1ffd77['count'];var _0xdd0a71=_0x3bc7d8?0x0:_0x529ffe[_0x5e60('0x1e')];var _0x52cc15=_0x3bc7d8?_0x1ffd77[_0x5e60('0x1f')]:_0x529ffe[_0x5e60('0x1e')]+_0x529ffe[_0x5e60('0x1d')];var _0x311fef;if(_0x52cc15>=_0x43045a){_0x52cc15=_0x43045a;_0x311fef=0xc8;}else{_0x311fef=0xce;}_0x20af5f[_0x5e60('0x1b')](_0x311fef);return _0x20af5f[_0x5e60('0x20')](_0x5e60('0x21'),_0xdd0a71+'-'+_0x52cc15+'/'+_0x43045a)[_0x5e60('0x22')](_0x1ffd77);}return null;};}function patchUpdates(_0x3282e4){return function(_0x45f1a6){try{jsonpatch[_0x5e60('0x23')](_0x45f1a6,_0x3282e4,!![]);}catch(_0x578437){return BPromise[_0x5e60('0x24')](_0x578437);}return _0x45f1a6['save']();};}function saveUpdates(_0x376069,_0x1a44e5){return function(_0x2b0bae){if(_0x2b0bae){return _0x2b0bae[_0x5e60('0x25')](_0x376069)[_0x5e60('0x26')](function(_0x2a499e){return _0x2a499e;});}return null;};}function removeEntity(_0x2636f1,_0x5d2c03){return function(_0x18d527){if(_0x18d527){return _0x18d527[_0x5e60('0x27')]()[_0x5e60('0x26')](function(){_0x2636f1['status'](0xcc)[_0x5e60('0x28')]();});}};}function handleEntityNotFound(_0x56e3a5,_0x2d8aac){return function(_0x153459){if(!_0x153459){_0x56e3a5['sendStatus'](0x194);}return _0x153459;};}function handleError(_0x3bedea,_0x5712f7){_0x5712f7=_0x5712f7||0x1f4;return function(_0x23d187){logger[_0x5e60('0x29')](_0x23d187['stack']);if(_0x23d187[_0x5e60('0x2a')]){delete _0x23d187[_0x5e60('0x2a')];}_0x3bedea['status'](_0x5712f7)[_0x5e60('0x2b')](_0x23d187);};}exports[_0x5e60('0x2c')]=function(_0x52c97c,_0x5431a8){var _0x52f668={},_0xf25956={},_0x235cc7={'count':0x0,'rows':[]};var _0x2e8e9e=_[_0x5e60('0x2d')](db[_0x5e60('0x2e')]['rawAttributes'],function(_0x168ce6){return{'name':_0x168ce6[_0x5e60('0x2f')],'type':_0x168ce6['type'][_0x5e60('0x30')]};});_0xf25956['model']=_['map'](_0x2e8e9e,_0x5e60('0x2a'));_0xf25956[_0x5e60('0x31')]=_[_0x5e60('0x32')](_0x52c97c[_0x5e60('0x31')]);_0xf25956[_0x5e60('0x33')]=_[_0x5e60('0x34')](_0xf25956[_0x5e60('0x35')],_0xf25956[_0x5e60('0x31')]);_0x52f668[_0x5e60('0x36')]=_[_0x5e60('0x34')](_0xf25956['model'],qs[_0x5e60('0x37')](_0x52c97c['query']['fields']));_0x52f668[_0x5e60('0x36')]=_0x52f668[_0x5e60('0x36')]['length']?_0x52f668[_0x5e60('0x36')]:_0xf25956['model'];if(!_0x52c97c[_0x5e60('0x31')][_0x5e60('0x38')](_0x5e60('0x39'))){_0x52f668[_0x5e60('0x1d')]=qs[_0x5e60('0x1d')](_0x52c97c[_0x5e60('0x31')][_0x5e60('0x1d')]);_0x52f668[_0x5e60('0x1e')]=qs['offset'](_0x52c97c[_0x5e60('0x31')][_0x5e60('0x1e')]);}_0x52f668[_0x5e60('0x3a')]=qs[_0x5e60('0x3b')](_0x52c97c[_0x5e60('0x31')][_0x5e60('0x3b')]);_0x52f668[_0x5e60('0x3c')]=qs['filters'](_[_0x5e60('0x3d')](_0x52c97c[_0x5e60('0x31')],_0xf25956['filters']),_0x2e8e9e);if(_0x52c97c['query'][_0x5e60('0x3e')]){_0x52f668[_0x5e60('0x3c')]=_[_0x5e60('0x3f')](_0x52f668[_0x5e60('0x3c')],{'$or':_[_0x5e60('0x2d')](_0x2e8e9e,function(_0x4d2cd0){if(_0x4d2cd0[_0x5e60('0x40')]!==_0x5e60('0x41')){var _0x415208={};_0x415208[_0x4d2cd0[_0x5e60('0x2a')]]={'$like':'%'+_0x52c97c[_0x5e60('0x31')][_0x5e60('0x3e')]+'%'};return _0x415208;}})});}_0x52f668=_[_0x5e60('0x3f')]({},_0x52f668,_0x52c97c['options']);var _0x401bf1={'where':_0x52f668[_0x5e60('0x3c')]};return db['ZendeskAccount']['count'](_0x401bf1)['then'](function(_0x15a97b){_0x235cc7[_0x5e60('0x1f')]=_0x15a97b;if(_0x52c97c[_0x5e60('0x31')][_0x5e60('0x42')]){_0x52f668['include']=[{'all':!![]}];}return db[_0x5e60('0x2e')][_0x5e60('0x43')](_0x52f668);})['then'](function(_0x5bda22){_0x235cc7[_0x5e60('0x44')]=_0x5bda22;return _0x235cc7;})[_0x5e60('0x26')](respondWithFilteredResult(_0x5431a8,_0x52f668))[_0x5e60('0x45')](handleError(_0x5431a8,null));};exports[_0x5e60('0x46')]=function(_0x39ab09,_0x3899ae){var _0x2522d2={'raw':![],'where':{'id':_0x39ab09[_0x5e60('0x47')]['id']}},_0x2812e1={};_0x2812e1['model']=_[_0x5e60('0x32')](db[_0x5e60('0x2e')]['rawAttributes']);_0x2812e1[_0x5e60('0x31')]=_[_0x5e60('0x32')](_0x39ab09[_0x5e60('0x31')]);_0x2812e1[_0x5e60('0x33')]=_[_0x5e60('0x34')](_0x2812e1['model'],_0x2812e1[_0x5e60('0x31')]);_0x2522d2[_0x5e60('0x36')]=_[_0x5e60('0x34')](_0x2812e1[_0x5e60('0x35')],qs['fields'](_0x39ab09['query']['fields']));_0x2522d2[_0x5e60('0x36')]=_0x2522d2[_0x5e60('0x36')][_0x5e60('0x48')]?_0x2522d2[_0x5e60('0x36')]:_0x2812e1[_0x5e60('0x35')];if(_0x39ab09[_0x5e60('0x31')]['includeAll']){_0x2522d2[_0x5e60('0x49')]=[{'all':!![]}];}_0x2522d2=_[_0x5e60('0x3f')]({},_0x2522d2,_0x39ab09[_0x5e60('0x4a')]);return db[_0x5e60('0x2e')][_0x5e60('0x4b')](_0x2522d2)[_0x5e60('0x26')](handleEntityNotFound(_0x3899ae,null))[_0x5e60('0x26')](respondWithResult(_0x3899ae,null))['catch'](handleError(_0x3899ae,null));};exports[_0x5e60('0x4c')]=function(_0x3ed45d,_0x21a116){return db[_0x5e60('0x2e')][_0x5e60('0x4c')](_0x3ed45d[_0x5e60('0x4d')],{})[_0x5e60('0x26')](respondWithResult(_0x21a116,0xc9))[_0x5e60('0x45')](handleError(_0x21a116,null));};exports[_0x5e60('0x25')]=function(_0x350d6d,_0xe5e675){if(_0x350d6d[_0x5e60('0x4d')]['id']){delete _0x350d6d[_0x5e60('0x4d')]['id'];}return db[_0x5e60('0x2e')][_0x5e60('0x4b')]({'where':{'id':_0x350d6d[_0x5e60('0x47')]['id']}})[_0x5e60('0x26')](handleEntityNotFound(_0xe5e675,null))[_0x5e60('0x26')](saveUpdates(_0x350d6d['body'],null))['then'](respondWithResult(_0xe5e675,null))[_0x5e60('0x45')](handleError(_0xe5e675,null));};exports['destroy']=function(_0x3525d,_0x1d247e){return db[_0x5e60('0x2e')][_0x5e60('0x4b')]({'where':{'id':_0x3525d[_0x5e60('0x47')]['id']}})[_0x5e60('0x26')](handleEntityNotFound(_0x1d247e,null))['then'](removeEntity(_0x1d247e,null))['catch'](handleError(_0x1d247e,null));};exports[_0x5e60('0x4e')]=function(_0x1e4e41,_0x457c37,_0x4a2d67){var _0x594068={};var _0x31ced8={};var _0x46f3ba;var _0x179cc6;return db['ZendeskAccount'][_0x5e60('0x4f')]({'where':{'id':_0x1e4e41[_0x5e60('0x47')]['id']}})[_0x5e60('0x26')](handleEntityNotFound(_0x457c37,null))[_0x5e60('0x26')](function(_0x17d002){if(_0x17d002){_0x46f3ba=_0x17d002;_0x31ced8[_0x5e60('0x35')]=_['keys'](db[_0x5e60('0x50')][_0x5e60('0x51')]);_0x31ced8['query']=_[_0x5e60('0x32')](_0x1e4e41[_0x5e60('0x31')]);_0x31ced8[_0x5e60('0x33')]=_['intersection'](_0x31ced8[_0x5e60('0x35')],_0x31ced8[_0x5e60('0x31')]);_0x594068['attributes']=_[_0x5e60('0x34')](_0x31ced8[_0x5e60('0x35')],qs[_0x5e60('0x37')](_0x1e4e41[_0x5e60('0x31')]['fields']));_0x594068[_0x5e60('0x36')]=_0x594068[_0x5e60('0x36')]['length']?_0x594068[_0x5e60('0x36')]:_0x31ced8['model'];_0x594068[_0x5e60('0x3a')]=qs['sort'](_0x1e4e41[_0x5e60('0x31')][_0x5e60('0x3b')]);_0x594068['where']=qs[_0x5e60('0x33')](_['pick'](_0x1e4e41[_0x5e60('0x31')],_0x31ced8['filters']));if(_0x1e4e41[_0x5e60('0x31')]['filter']){_0x594068[_0x5e60('0x3c')]=_[_0x5e60('0x3f')](_0x594068[_0x5e60('0x3c')],{'$or':_[_0x5e60('0x2d')](_0x594068[_0x5e60('0x36')],function(_0x2b8343){var _0x3d1e35={};_0x3d1e35[_0x2b8343]={'$like':'%'+_0x1e4e41['query'][_0x5e60('0x3e')]+'%'};return _0x3d1e35;})});}_0x594068=_[_0x5e60('0x3f')]({},_0x594068,_0x1e4e41[_0x5e60('0x4a')]);return _0x46f3ba[_0x5e60('0x4e')](_0x594068);}})[_0x5e60('0x26')](function(_0x35aad7){if(_0x35aad7){_0x179cc6=_0x35aad7['length'];if(!_0x1e4e41['query']['hasOwnProperty'](_0x5e60('0x39'))){_0x594068[_0x5e60('0x1d')]=qs['limit'](_0x1e4e41[_0x5e60('0x31')][_0x5e60('0x1d')]);_0x594068['offset']=qs[_0x5e60('0x1e')](_0x1e4e41[_0x5e60('0x31')][_0x5e60('0x1e')]);}return _0x46f3ba[_0x5e60('0x4e')](_0x594068);}})[_0x5e60('0x26')](function(_0xcd2232){if(_0xcd2232){return _0xcd2232?{'count':_0x179cc6,'rows':_0xcd2232}:null;}})[_0x5e60('0x26')](respondWithResult(_0x457c37,null))[_0x5e60('0x45')](handleError(_0x457c37,null));};exports[_0x5e60('0x52')]=function(_0x406c3a,_0x157aad,_0x15921d){if(_0x406c3a[_0x5e60('0x4d')]['id']){delete _0x406c3a[_0x5e60('0x4d')]['id'];}return db[_0x5e60('0x2e')][_0x5e60('0x4f')]({'where':{'id':_0x406c3a[_0x5e60('0x47')]['id']}})['then'](handleEntityNotFound(_0x157aad,null))[_0x5e60('0x26')](function(_0x1706d6){if(_0x1706d6){_0x406c3a[_0x5e60('0x4d')]['AccountId']=_0x1706d6['id'];_0x406c3a[_0x5e60('0x4d')][_0x5e60('0x53')]=integrations['getSubjects'](_0x406c3a[_0x5e60('0x4d')][_0x5e60('0x54')],_0x406c3a['body'][_0x5e60('0x40')]);_0x406c3a[_0x5e60('0x4d')][_0x5e60('0x55')]=integrations[_0x5e60('0x56')](_0x406c3a[_0x5e60('0x4d')][_0x5e60('0x54')],_0x406c3a[_0x5e60('0x4d')][_0x5e60('0x40')]);return db[_0x5e60('0x50')]['create'](_0x406c3a[_0x5e60('0x4d')],{'include':[{'model':db[_0x5e60('0x57')],'as':_0x5e60('0x53')},{'model':db['ZendeskField'],'as':_0x5e60('0x55')}]});}return null;})[_0x5e60('0x26')](respondWithResult(_0x157aad,null))[_0x5e60('0x45')](handleError(_0x157aad,null));};exports[_0x5e60('0x58')]=function(_0x3e85fe,_0x559f8c,_0x4560e1){var _0x213c7e='';return db[_0x5e60('0x2e')]['findOne']({'where':{'id':_0x3e85fe['params']['id']},'attributes':['id',_0x5e60('0x59'),_0x5e60('0x5a'),_0x5e60('0x5b'),_0x5e60('0x5c'),_0x5e60('0x5d')]})[_0x5e60('0x26')](handleEntityNotFound(_0x559f8c,null))[_0x5e60('0x26')](function(_0x563e69){if(_0x563e69){_0x213c7e=_0x563e69[_0x5e60('0x5d')];var _0x199edd=_0x213c7e[_0x5e60('0x5e')](-0x1);if(_0x199edd==='/'){_0x213c7e=_0x213c7e['substring'](0x0,_0x213c7e['lastIndexOf'](_0x199edd));}var _0x447bd3={'method':_0x5e60('0x5f'),'uri':util[_0x5e60('0x60')]('%s/%s',_0x213c7e,'ticket_fields'),'json':!![]};switch(_0x563e69[_0x5e60('0x5c')]){case _0x5e60('0x5a'):_0x447bd3[_0x5e60('0x61')]={'Authorization':util[_0x5e60('0x60')](_0x5e60('0x62'),new Buffer(util[_0x5e60('0x60')]('%s:%s',_0x563e69[_0x5e60('0x59')],_0x563e69[_0x5e60('0x5a')]))[_0x5e60('0x63')](_0x5e60('0x64')))};break;case _0x5e60('0x5b'):_0x447bd3[_0x5e60('0x61')]={'Authorization':util[_0x5e60('0x60')](_0x5e60('0x62'),new Buffer(util[_0x5e60('0x60')]('%s/token:%s',_0x563e69[_0x5e60('0x59')],_0x563e69[_0x5e60('0x5b')]))['toString'](_0x5e60('0x64')))};break;default:throw new db[(_0x5e60('0x65'))]['ValidationError'](_0x5e60('0x66'));}return rp(_0x447bd3);}})[_0x5e60('0x26')](function(_0x391505){if(_0x391505){var _0x1b4aee=[_0x5e60('0x67'),_0x5e60('0x68'),'group',_0x5e60('0x69')];_[_0x5e60('0x6a')](_0x391505[_0x5e60('0x6b')],function(_0x222d94){return _0x1b4aee[_0x5e60('0x6c')](_0x222d94[_0x5e60('0x40')]);});return{'count':_0x391505[_0x5e60('0x6b')][_0x5e60('0x48')],'rows':_[_0x5e60('0x2d')](_0x391505['ticket_fields'],function(_0x10b77b){return{'id':_0x10b77b['id'],'name':_0x10b77b[_0x5e60('0x6d')]>0x7?_0x10b77b[_0x5e60('0x6e')]:_0x10b77b[_0x5e60('0x40')],'custom':_0x10b77b[_0x5e60('0x6d')]>0x7?!![]:![],'options':_0x10b77b[_0x5e60('0x6f')]?_0x10b77b[_0x5e60('0x6f')]:_0x10b77b[_0x5e60('0x70')]?_0x10b77b[_0x5e60('0x70')]:[]};})};}})[_0x5e60('0x26')](respondWithResult(_0x559f8c,null))['catch'](function(_0x5ab78f){var _0x5d2839=_0x3e85fe[_0x5e60('0x31')][_0x5e60('0x71')]?0x1f4:_0x5ab78f[_0x5e60('0x72')]||0x1f4;logger[_0x5e60('0x29')](_0x5e60('0x73'),_0x5e60('0x58'),_0x5d2839,JSON[_0x5e60('0x74')](_0x5ab78f));delete _0x5ab78f[_0x5e60('0x2a')];if(_0x5d2839===0x191){_0x5d2839=0x190;}_0x559f8c[_0x5e60('0x1b')](_0x5d2839)['send'](_0x3e85fe[_0x5e60('0x31')][_0x5e60('0x71')]?{'message':_0x5e60('0x75'),'statusCode':_0x5ab78f['statusCode']}:_0x5ab78f);});};
\ No newline at end of file
+var _0xe1e3=['assignee','remove','includes','position','title','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','fast-json-patch','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','end','json','undefined','count','offset','status','set','apply','save','then','destroy','name','send','ZendeskAccount','type','map','query','keys','attributes','intersection','model','fields','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','VIRTUAL','includeAll','findAll','rows','catch','show','params','rawAttributes','merge','find','create','body','update','ZendeskConfiguration','length','getConfigurations','AccountId','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','Subjects','getFields','findOne','password','token','authType','remoteUri','slice','substring','lastIndexOf','GET','format','%s/%s','ticket_fields','Basic\x20%s','%s:%s','username','base64','headers','%s/token:%s','ValidationError','Unknown\x20authentication\x20type','subject','group'];(function(_0x35b48e,_0x239b57){var _0x1ea91=function(_0x4c9850){while(--_0x4c9850){_0x35b48e['push'](_0x35b48e['shift']());}};_0x1ea91(++_0x239b57);}(_0xe1e3,0x1bb));var _0x3e1e=function(_0x4ef658,_0x298555){_0x4ef658=_0x4ef658-0x0;var _0x1ed4ff=_0xe1e3[_0x4ef658];return _0x1ed4ff;};'use strict';var emlformat=require(_0x3e1e('0x0'));var rimraf=require(_0x3e1e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3e1e('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3e1e('0x3'));var Mustache=require('mustache');var util=require(_0x3e1e('0x4'));var path=require(_0x3e1e('0x5'));var sox=require(_0x3e1e('0x6'));var csv=require(_0x3e1e('0x7'));var ejs=require(_0x3e1e('0x8'));var fs=require('fs');var fs_extra=require(_0x3e1e('0x9'));var _=require('lodash');var squel=require(_0x3e1e('0xa'));var crypto=require(_0x3e1e('0xb'));var jsforce=require(_0x3e1e('0xc'));var deskjs=require(_0x3e1e('0xd'));var toCsv=require(_0x3e1e('0x7'));var querystring=require(_0x3e1e('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3e1e('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3e1e('0x10'));var logger=require(_0x3e1e('0x11'))(_0x3e1e('0x12'));var utils=require('../../config/utils');var config=require(_0x3e1e('0x13'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x536129,_0x5c09a2){_0x5c09a2=_0x5c09a2||0xcc;return function(_0x14ad58){if(_0x14ad58){return _0x536129['sendStatus'](_0x5c09a2);}return _0x536129['status'](_0x5c09a2)[_0x3e1e('0x14')]();};}function respondWithResult(_0x8bd4cd,_0x78ee54){_0x78ee54=_0x78ee54||0xc8;return function(_0x50f221){if(_0x50f221){return _0x8bd4cd['status'](_0x78ee54)[_0x3e1e('0x15')](_0x50f221);}};}function respondWithFilteredResult(_0x1b62e6,_0x4dca60){return function(_0x26cb35){if(_0x26cb35){var _0x1f0af9=typeof _0x4dca60['offset']===_0x3e1e('0x16')&&typeof _0x4dca60['limit']===_0x3e1e('0x16');var _0x247daa=_0x26cb35[_0x3e1e('0x17')];var _0x39eaa7=_0x1f0af9?0x0:_0x4dca60[_0x3e1e('0x18')];var _0x1c181b=_0x1f0af9?_0x26cb35['count']:_0x4dca60['offset']+_0x4dca60['limit'];var _0x428e4e;if(_0x1c181b>=_0x247daa){_0x1c181b=_0x247daa;_0x428e4e=0xc8;}else{_0x428e4e=0xce;}_0x1b62e6[_0x3e1e('0x19')](_0x428e4e);return _0x1b62e6[_0x3e1e('0x1a')]('Content-Range',_0x39eaa7+'-'+_0x1c181b+'/'+_0x247daa)[_0x3e1e('0x15')](_0x26cb35);}return null;};}function patchUpdates(_0x530815){return function(_0x228991){try{jsonpatch[_0x3e1e('0x1b')](_0x228991,_0x530815,!![]);}catch(_0x474085){return BPromise['reject'](_0x474085);}return _0x228991[_0x3e1e('0x1c')]();};}function saveUpdates(_0x96396,_0xefa098){return function(_0x55dc62){if(_0x55dc62){return _0x55dc62['update'](_0x96396)[_0x3e1e('0x1d')](function(_0x1b5097){return _0x1b5097;});}return null;};}function removeEntity(_0x488f9f,_0x60e6bc){return function(_0x56ae51){if(_0x56ae51){return _0x56ae51[_0x3e1e('0x1e')]()[_0x3e1e('0x1d')](function(){_0x488f9f[_0x3e1e('0x19')](0xcc)[_0x3e1e('0x14')]();});}};}function handleEntityNotFound(_0x43d583,_0x21c898){return function(_0x4ee2b5){if(!_0x4ee2b5){_0x43d583['sendStatus'](0x194);}return _0x4ee2b5;};}function handleError(_0x44e419,_0x541ef1){_0x541ef1=_0x541ef1||0x1f4;return function(_0x55db8f){logger['error'](_0x55db8f['stack']);if(_0x55db8f[_0x3e1e('0x1f')]){delete _0x55db8f[_0x3e1e('0x1f')];}_0x44e419['status'](_0x541ef1)[_0x3e1e('0x20')](_0x55db8f);};}exports['index']=function(_0xdfcd93,_0x176bb4){var _0x53a6ff={},_0x43e029={},_0x210a84={'count':0x0,'rows':[]};var _0x45ed0e=_['map'](db[_0x3e1e('0x21')]['rawAttributes'],function(_0x591c36){return{'name':_0x591c36['fieldName'],'type':_0x591c36[_0x3e1e('0x22')]['key']};});_0x43e029['model']=_[_0x3e1e('0x23')](_0x45ed0e,_0x3e1e('0x1f'));_0x43e029[_0x3e1e('0x24')]=_[_0x3e1e('0x25')](_0xdfcd93[_0x3e1e('0x24')]);_0x43e029['filters']=_['intersection'](_0x43e029['model'],_0x43e029['query']);_0x53a6ff[_0x3e1e('0x26')]=_[_0x3e1e('0x27')](_0x43e029[_0x3e1e('0x28')],qs[_0x3e1e('0x29')](_0xdfcd93[_0x3e1e('0x24')][_0x3e1e('0x29')]));_0x53a6ff[_0x3e1e('0x26')]=_0x53a6ff[_0x3e1e('0x26')]['length']?_0x53a6ff[_0x3e1e('0x26')]:_0x43e029[_0x3e1e('0x28')];if(!_0xdfcd93['query'][_0x3e1e('0x2a')](_0x3e1e('0x2b'))){_0x53a6ff[_0x3e1e('0x2c')]=qs[_0x3e1e('0x2c')](_0xdfcd93['query']['limit']);_0x53a6ff[_0x3e1e('0x18')]=qs[_0x3e1e('0x18')](_0xdfcd93['query'][_0x3e1e('0x18')]);}_0x53a6ff[_0x3e1e('0x2d')]=qs['sort'](_0xdfcd93[_0x3e1e('0x24')][_0x3e1e('0x2e')]);_0x53a6ff[_0x3e1e('0x2f')]=qs[_0x3e1e('0x30')](_[_0x3e1e('0x31')](_0xdfcd93['query'],_0x43e029[_0x3e1e('0x30')]),_0x45ed0e);if(_0xdfcd93[_0x3e1e('0x24')][_0x3e1e('0x32')]){_0x53a6ff[_0x3e1e('0x2f')]=_['merge'](_0x53a6ff[_0x3e1e('0x2f')],{'$or':_[_0x3e1e('0x23')](_0x45ed0e,function(_0x111da4){if(_0x111da4[_0x3e1e('0x22')]!==_0x3e1e('0x33')){var _0x25a95b={};_0x25a95b[_0x111da4[_0x3e1e('0x1f')]]={'$like':'%'+_0xdfcd93['query'][_0x3e1e('0x32')]+'%'};return _0x25a95b;}})});}_0x53a6ff=_['merge']({},_0x53a6ff,_0xdfcd93['options']);var _0x4f598e={'where':_0x53a6ff[_0x3e1e('0x2f')]};return db[_0x3e1e('0x21')]['count'](_0x4f598e)[_0x3e1e('0x1d')](function(_0xb030eb){_0x210a84['count']=_0xb030eb;if(_0xdfcd93[_0x3e1e('0x24')][_0x3e1e('0x34')]){_0x53a6ff['include']=[{'all':!![]}];}return db['ZendeskAccount'][_0x3e1e('0x35')](_0x53a6ff);})['then'](function(_0x4ff868){_0x210a84[_0x3e1e('0x36')]=_0x4ff868;return _0x210a84;})[_0x3e1e('0x1d')](respondWithFilteredResult(_0x176bb4,_0x53a6ff))[_0x3e1e('0x37')](handleError(_0x176bb4,null));};exports[_0x3e1e('0x38')]=function(_0x377a06,_0x55ea1d){var _0x5b32ad={'raw':![],'where':{'id':_0x377a06[_0x3e1e('0x39')]['id']}},_0x24b2ad={};_0x24b2ad[_0x3e1e('0x28')]=_['keys'](db[_0x3e1e('0x21')][_0x3e1e('0x3a')]);_0x24b2ad[_0x3e1e('0x24')]=_['keys'](_0x377a06[_0x3e1e('0x24')]);_0x24b2ad['filters']=_['intersection'](_0x24b2ad[_0x3e1e('0x28')],_0x24b2ad[_0x3e1e('0x24')]);_0x5b32ad[_0x3e1e('0x26')]=_[_0x3e1e('0x27')](_0x24b2ad['model'],qs['fields'](_0x377a06['query']['fields']));_0x5b32ad[_0x3e1e('0x26')]=_0x5b32ad[_0x3e1e('0x26')]['length']?_0x5b32ad['attributes']:_0x24b2ad[_0x3e1e('0x28')];if(_0x377a06[_0x3e1e('0x24')][_0x3e1e('0x34')]){_0x5b32ad['include']=[{'all':!![]}];}_0x5b32ad=_[_0x3e1e('0x3b')]({},_0x5b32ad,_0x377a06['options']);return db[_0x3e1e('0x21')][_0x3e1e('0x3c')](_0x5b32ad)[_0x3e1e('0x1d')](handleEntityNotFound(_0x55ea1d,null))[_0x3e1e('0x1d')](respondWithResult(_0x55ea1d,null))[_0x3e1e('0x37')](handleError(_0x55ea1d,null));};exports[_0x3e1e('0x3d')]=function(_0x53d32b,_0x2f14b3){return db[_0x3e1e('0x21')]['create'](_0x53d32b[_0x3e1e('0x3e')],{})[_0x3e1e('0x1d')](respondWithResult(_0x2f14b3,0xc9))['catch'](handleError(_0x2f14b3,null));};exports[_0x3e1e('0x3f')]=function(_0x347b3f,_0x2e286f){if(_0x347b3f[_0x3e1e('0x3e')]['id']){delete _0x347b3f['body']['id'];}return db[_0x3e1e('0x21')][_0x3e1e('0x3c')]({'where':{'id':_0x347b3f[_0x3e1e('0x39')]['id']}})[_0x3e1e('0x1d')](handleEntityNotFound(_0x2e286f,null))['then'](saveUpdates(_0x347b3f[_0x3e1e('0x3e')],null))[_0x3e1e('0x1d')](respondWithResult(_0x2e286f,null))[_0x3e1e('0x37')](handleError(_0x2e286f,null));};exports[_0x3e1e('0x1e')]=function(_0xe2516c,_0x1df5a8){return db[_0x3e1e('0x21')][_0x3e1e('0x3c')]({'where':{'id':_0xe2516c['params']['id']}})[_0x3e1e('0x1d')](handleEntityNotFound(_0x1df5a8,null))['then'](removeEntity(_0x1df5a8,null))['catch'](handleError(_0x1df5a8,null));};exports['getConfigurations']=function(_0x1c4269,_0x17641c,_0x5147a2){var _0x13b076={};var _0x592733={};var _0x5b2416;var _0x3eaf76;return db['ZendeskAccount']['findOne']({'where':{'id':_0x1c4269['params']['id']}})[_0x3e1e('0x1d')](handleEntityNotFound(_0x17641c,null))[_0x3e1e('0x1d')](function(_0x1334c8){if(_0x1334c8){_0x5b2416=_0x1334c8;_0x592733[_0x3e1e('0x28')]=_[_0x3e1e('0x25')](db[_0x3e1e('0x40')][_0x3e1e('0x3a')]);_0x592733['query']=_[_0x3e1e('0x25')](_0x1c4269['query']);_0x592733[_0x3e1e('0x30')]=_[_0x3e1e('0x27')](_0x592733[_0x3e1e('0x28')],_0x592733['query']);_0x13b076['attributes']=_[_0x3e1e('0x27')](_0x592733[_0x3e1e('0x28')],qs['fields'](_0x1c4269[_0x3e1e('0x24')]['fields']));_0x13b076['attributes']=_0x13b076[_0x3e1e('0x26')][_0x3e1e('0x41')]?_0x13b076['attributes']:_0x592733[_0x3e1e('0x28')];_0x13b076['order']=qs['sort'](_0x1c4269[_0x3e1e('0x24')]['sort']);_0x13b076[_0x3e1e('0x2f')]=qs['filters'](_[_0x3e1e('0x31')](_0x1c4269['query'],_0x592733[_0x3e1e('0x30')]));if(_0x1c4269[_0x3e1e('0x24')]['filter']){_0x13b076['where']=_['merge'](_0x13b076[_0x3e1e('0x2f')],{'$or':_[_0x3e1e('0x23')](_0x13b076[_0x3e1e('0x26')],function(_0x588189){var _0x1b04ce={};_0x1b04ce[_0x588189]={'$like':'%'+_0x1c4269[_0x3e1e('0x24')][_0x3e1e('0x32')]+'%'};return _0x1b04ce;})});}_0x13b076=_['merge']({},_0x13b076,_0x1c4269['options']);return _0x5b2416[_0x3e1e('0x42')](_0x13b076);}})['then'](function(_0x3b97a2){if(_0x3b97a2){_0x3eaf76=_0x3b97a2[_0x3e1e('0x41')];if(!_0x1c4269[_0x3e1e('0x24')]['hasOwnProperty'](_0x3e1e('0x2b'))){_0x13b076['limit']=qs[_0x3e1e('0x2c')](_0x1c4269[_0x3e1e('0x24')]['limit']);_0x13b076[_0x3e1e('0x18')]=qs['offset'](_0x1c4269[_0x3e1e('0x24')]['offset']);}return _0x5b2416[_0x3e1e('0x42')](_0x13b076);}})['then'](function(_0x31062e){if(_0x31062e){return _0x31062e?{'count':_0x3eaf76,'rows':_0x31062e}:null;}})[_0x3e1e('0x1d')](respondWithResult(_0x17641c,null))[_0x3e1e('0x37')](handleError(_0x17641c,null));};exports['addConfiguration']=function(_0x11cab1,_0x1fbcfc,_0x4e6957){if(_0x11cab1[_0x3e1e('0x3e')]['id']){delete _0x11cab1['body']['id'];}return db['ZendeskAccount']['findOne']({'where':{'id':_0x11cab1[_0x3e1e('0x39')]['id']}})[_0x3e1e('0x1d')](handleEntityNotFound(_0x1fbcfc,null))[_0x3e1e('0x1d')](function(_0x4b0944){if(_0x4b0944){_0x11cab1[_0x3e1e('0x3e')][_0x3e1e('0x43')]=_0x4b0944['id'];_0x11cab1[_0x3e1e('0x3e')]['Subjects']=integrations[_0x3e1e('0x44')](_0x11cab1[_0x3e1e('0x3e')][_0x3e1e('0x45')],_0x11cab1[_0x3e1e('0x3e')][_0x3e1e('0x22')]);_0x11cab1[_0x3e1e('0x3e')][_0x3e1e('0x46')]=integrations[_0x3e1e('0x47')](_0x11cab1['body']['channel'],_0x11cab1[_0x3e1e('0x3e')][_0x3e1e('0x22')]);return db[_0x3e1e('0x40')][_0x3e1e('0x3d')](_0x11cab1[_0x3e1e('0x3e')],{'include':[{'model':db[_0x3e1e('0x48')],'as':_0x3e1e('0x49')},{'model':db[_0x3e1e('0x48')],'as':_0x3e1e('0x46')}]});}return null;})[_0x3e1e('0x1d')](respondWithResult(_0x1fbcfc,null))[_0x3e1e('0x37')](handleError(_0x1fbcfc,null));};exports[_0x3e1e('0x4a')]=function(_0x5e148e,_0x5581ee,_0x20bc4d){var _0x29ddc4='';return db[_0x3e1e('0x21')][_0x3e1e('0x4b')]({'where':{'id':_0x5e148e[_0x3e1e('0x39')]['id']},'attributes':['id','username',_0x3e1e('0x4c'),_0x3e1e('0x4d'),_0x3e1e('0x4e'),_0x3e1e('0x4f')]})[_0x3e1e('0x1d')](handleEntityNotFound(_0x5581ee,null))['then'](function(_0x8b6b28){if(_0x8b6b28){_0x29ddc4=_0x8b6b28[_0x3e1e('0x4f')];var _0xc60340=_0x29ddc4[_0x3e1e('0x50')](-0x1);if(_0xc60340==='/'){_0x29ddc4=_0x29ddc4[_0x3e1e('0x51')](0x0,_0x29ddc4[_0x3e1e('0x52')](_0xc60340));}var _0x4d0854={'method':_0x3e1e('0x53'),'uri':util[_0x3e1e('0x54')](_0x3e1e('0x55'),_0x29ddc4,_0x3e1e('0x56')),'json':!![]};switch(_0x8b6b28[_0x3e1e('0x4e')]){case _0x3e1e('0x4c'):_0x4d0854['headers']={'Authorization':util[_0x3e1e('0x54')](_0x3e1e('0x57'),new Buffer(util[_0x3e1e('0x54')](_0x3e1e('0x58'),_0x8b6b28[_0x3e1e('0x59')],_0x8b6b28[_0x3e1e('0x4c')]))['toString'](_0x3e1e('0x5a')))};break;case'token':_0x4d0854[_0x3e1e('0x5b')]={'Authorization':util[_0x3e1e('0x54')]('Basic\x20%s',new Buffer(util[_0x3e1e('0x54')](_0x3e1e('0x5c'),_0x8b6b28[_0x3e1e('0x59')],_0x8b6b28[_0x3e1e('0x4d')]))['toString'](_0x3e1e('0x5a')))};break;default:throw new db['Sequelize'][(_0x3e1e('0x5d'))](_0x3e1e('0x5e'));}return rp(_0x4d0854);}})[_0x3e1e('0x1d')](function(_0x632f99){if(_0x632f99){var _0x2ef476=[_0x3e1e('0x5f'),'description',_0x3e1e('0x60'),_0x3e1e('0x61')];_[_0x3e1e('0x62')](_0x632f99[_0x3e1e('0x56')],function(_0x4b4fd4){return _0x2ef476[_0x3e1e('0x63')](_0x4b4fd4[_0x3e1e('0x22')]);});return{'count':_0x632f99[_0x3e1e('0x56')][_0x3e1e('0x41')],'rows':_['map'](_0x632f99[_0x3e1e('0x56')],function(_0x41d98f){return{'id':_0x41d98f['id'],'name':_0x41d98f[_0x3e1e('0x64')]>0x7?_0x41d98f[_0x3e1e('0x65')]:_0x41d98f[_0x3e1e('0x22')],'custom':_0x41d98f[_0x3e1e('0x64')]>0x7?!![]:![],'options':_0x41d98f['system_field_options']?_0x41d98f['system_field_options']:_0x41d98f['custom_field_options']?_0x41d98f[_0x3e1e('0x66')]:[]};})};}})['then'](respondWithResult(_0x5581ee,null))[_0x3e1e('0x37')](function(_0x5f436f){var _0x32b5ef=_0x5e148e[_0x3e1e('0x24')][_0x3e1e('0x67')]?0x1f4:_0x5f436f[_0x3e1e('0x68')]||0x1f4;logger['error'](_0x3e1e('0x69'),'getFields',_0x32b5ef,JSON[_0x3e1e('0x6a')](_0x5f436f));delete _0x5f436f['name'];if(_0x32b5ef===0x191){_0x32b5ef=0x190;}_0x5581ee[_0x3e1e('0x19')](_0x32b5ef)[_0x3e1e('0x20')](_0x5e148e['query'][_0x3e1e('0x67')]?{'message':_0x3e1e('0x6b'),'statusCode':_0x5f436f[_0x3e1e('0x68')]}:_0x5f436f);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b83=['int_zendesk_accounts','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','./intZendeskAccount.attributes','../../components/integrations/configuration','ZendeskAccount'];(function(_0x1ce1e2,_0x50159c){var _0x233fb7=function(_0x270030){while(--_0x270030){_0x1ce1e2['push'](_0x1ce1e2['shift']());}};_0x233fb7(++_0x50159c);}(_0x3b83,0x156));var _0x33b8=function(_0x1f9f37,_0x18776e){_0x1f9f37=_0x1f9f37-0x0;var _0x21c080=_0x3b83[_0x1f9f37];return _0x21c080;};'use strict';var _=require('lodash');var util=require(_0x33b8('0x0'));var logger=require(_0x33b8('0x1'))(_0x33b8('0x2'));var moment=require(_0x33b8('0x3'));var BPromise=require(_0x33b8('0x4'));var rp=require(_0x33b8('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x33b8('0x6'));var config=require('../../config/environment');var attributes=require(_0x33b8('0x7'));var integrations=require(_0x33b8('0x8'));module['exports']=function(_0x37618e,_0x17e094){return _0x37618e['define'](_0x33b8('0x9'),attributes,{'tableName':_0x33b8('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdbb3=['request-promise','path','rimraf','./intZendeskAccount.attributes','../../components/integrations/configuration','define','int_zendesk_accounts','util','api','moment','bluebird'];(function(_0x33eca7,_0x1d65b9){var _0x98f72b=function(_0x1bfa5b){while(--_0x1bfa5b){_0x33eca7['push'](_0x33eca7['shift']());}};_0x98f72b(++_0x1d65b9);}(_0xdbb3,0x19e));var _0x3dbb=function(_0x4d07cc,_0x587613){_0x4d07cc=_0x4d07cc-0x0;var _0x42de3b=_0xdbb3[_0x4d07cc];return _0x42de3b;};'use strict';var _=require('lodash');var util=require(_0x3dbb('0x0'));var logger=require('../../config/logger')(_0x3dbb('0x1'));var moment=require(_0x3dbb('0x2'));var BPromise=require(_0x3dbb('0x3'));var rp=require(_0x3dbb('0x4'));var fs=require('fs');var path=require(_0x3dbb('0x5'));var rimraf=require(_0x3dbb('0x6'));var config=require('../../config/environment');var attributes=require(_0x3dbb('0x7'));var integrations=require(_0x3dbb('0x8'));module['exports']=function(_0x2567bc,_0xc3009f){return _0x2567bc[_0x3dbb('0x9')]('ZendeskAccount',attributes,{'tableName':_0x3dbb('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73d7=['ZendeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','ZendeskAccount,\x20%s,\x20%s','message','catch','GetZendeskAccount','ZendeskAccount','options','raw','where','attributes','map','include','model','ShowZendeskAccount','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','debug'];(function(_0x483aa8,_0x1a72b7){var _0x3033b8=function(_0x4b28ef){while(--_0x4b28ef){_0x483aa8['push'](_0x483aa8['shift']());}};_0x3033b8(++_0x1a72b7);}(_0x73d7,0x109));var _0x773d=function(_0x445286,_0x3db2e6){_0x445286=_0x445286-0x0;var _0x2f0922=_0x73d7[_0x445286];return _0x2f0922;};'use strict';var _=require(_0x773d('0x0'));var util=require(_0x773d('0x1'));var moment=require(_0x773d('0x2'));var BPromise=require(_0x773d('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x773d('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x773d('0x5'));var logger=require(_0x773d('0x6'))('rpc');var config=require(_0x773d('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x773d('0x8')][_0x773d('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x37f0e3,_0x269fb4,_0x51be7d){return new BPromise(function(_0x1250c8,_0x4b19b2){return client[_0x773d('0xa')](_0x37f0e3,_0x51be7d)[_0x773d('0xb')](function(_0xa6686c){logger[_0x773d('0xc')]('ZendeskAccount,\x20%s,\x20%s',_0x269fb4,'request\x20sent');logger[_0x773d('0xd')](_0x773d('0xe'),_0x269fb4,_0x773d('0xf'),JSON[_0x773d('0x10')](_0xa6686c));if(_0xa6686c['error']){if(_0xa6686c[_0x773d('0x11')]['code']===0x1f4){logger[_0x773d('0x11')](_0x773d('0x12'),_0x269fb4,_0xa6686c[_0x773d('0x11')][_0x773d('0x13')]);return _0x4b19b2(_0xa6686c[_0x773d('0x11')][_0x773d('0x13')]);}logger[_0x773d('0x11')](_0x773d('0x12'),_0x269fb4,_0xa6686c['error']['message']);return _0x1250c8(_0xa6686c['error'][_0x773d('0x13')]);}else{logger[_0x773d('0xc')]('ZendeskAccount,\x20%s,\x20%s',_0x269fb4,_0x773d('0xf'));_0x1250c8(_0xa6686c['result']['message']);}})[_0x773d('0x14')](function(_0x4beaa3){logger['error']('ZendeskAccount,\x20%s,\x20%s',_0x269fb4,_0x4beaa3);_0x4b19b2(_0x4beaa3);});});}exports[_0x773d('0x15')]=function(_0x160b70){var _0xbc38a6=this;return new Promise(function(_0xa58cbd,_0x35863c){return db[_0x773d('0x16')]['findAll']({'raw':_0x160b70[_0x773d('0x17')]?_0x160b70[_0x773d('0x17')][_0x773d('0x18')]===undefined?!![]:![]:!![],'where':_0x160b70[_0x773d('0x17')]?_0x160b70['options'][_0x773d('0x19')]||null:null,'attributes':_0x160b70[_0x773d('0x17')]?_0x160b70[_0x773d('0x17')][_0x773d('0x1a')]||null:null,'limit':_0x160b70[_0x773d('0x17')]?_0x160b70[_0x773d('0x17')]['limit']||null:null,'include':_0x160b70[_0x773d('0x17')]?_0x160b70['options']['include']?_[_0x773d('0x1b')](_0x160b70[_0x773d('0x17')][_0x773d('0x1c')],function(_0x2ee5f2){return{'model':db[_0x2ee5f2[_0x773d('0x1d')]],'as':_0x2ee5f2['as'],'attributes':_0x2ee5f2[_0x773d('0x1a')],'include':_0x2ee5f2[_0x773d('0x1c')]?_[_0x773d('0x1b')](_0x2ee5f2[_0x773d('0x1c')],function(_0x17a019){return{'model':db[_0x17a019[_0x773d('0x1d')]],'as':_0x17a019['as'],'attributes':_0x17a019[_0x773d('0x1a')],'include':_0x17a019['include']?_[_0x773d('0x1b')](_0x17a019[_0x773d('0x1c')],function(_0x5d94d4){return{'model':db[_0x5d94d4[_0x773d('0x1d')]],'as':_0x5d94d4['as'],'attributes':_0x5d94d4[_0x773d('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x14dd19){logger[_0x773d('0xc')](_0x773d('0x15'),_0x160b70);logger[_0x773d('0xd')](_0x773d('0x15'),_0x160b70,JSON[_0x773d('0x10')](_0x14dd19));_0xa58cbd(_0x14dd19);})['catch'](function(_0x4ecce4){logger['error'](_0x773d('0x15'),_0x4ecce4[_0x773d('0x13')],_0x160b70);_0x35863c(_0xbc38a6[_0x773d('0x11')](0x1f4,_0x4ecce4[_0x773d('0x13')]));});});};exports[_0x773d('0x1e')]=function(_0x2d7554){var _0x386918=this;return new Promise(function(_0x2deef0,_0x51cb3e){return db[_0x773d('0x16')]['find']({'raw':_0x2d7554['options']?_0x2d7554['options'][_0x773d('0x18')]===undefined?!![]:![]:!![],'where':_0x2d7554[_0x773d('0x17')]?_0x2d7554[_0x773d('0x17')][_0x773d('0x19')]||null:null,'attributes':_0x2d7554['options']?_0x2d7554[_0x773d('0x17')][_0x773d('0x1a')]||null:null,'include':_0x2d7554['options']?_0x2d7554[_0x773d('0x17')][_0x773d('0x1c')]?_['map'](_0x2d7554[_0x773d('0x17')][_0x773d('0x1c')],function(_0x26dfd0){return{'model':db[_0x26dfd0[_0x773d('0x1d')]],'as':_0x26dfd0['as'],'attributes':_0x26dfd0[_0x773d('0x1a')],'include':_0x26dfd0[_0x773d('0x1c')]?_[_0x773d('0x1b')](_0x26dfd0['include'],function(_0x19d78b){return{'model':db[_0x19d78b['model']],'as':_0x19d78b['as'],'attributes':_0x19d78b[_0x773d('0x1a')],'include':_0x19d78b[_0x773d('0x1c')]?_[_0x773d('0x1b')](_0x19d78b[_0x773d('0x1c')],function(_0x5c272d){return{'model':db[_0x5c272d[_0x773d('0x1d')]],'as':_0x5c272d['as'],'attributes':_0x5c272d[_0x773d('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x773d('0xb')](function(_0x3b4acf){logger['info'](_0x773d('0x1e'),_0x2d7554);logger[_0x773d('0xd')](_0x773d('0x1e'),_0x2d7554,JSON[_0x773d('0x10')](_0x3b4acf));_0x2deef0(_0x3b4acf);})[_0x773d('0x14')](function(_0x25edf1){logger['error']('ShowZendeskAccount',_0x25edf1[_0x773d('0x13')],_0x2d7554);_0x51cb3e(_0x386918['error'](0x1f4,_0x25edf1[_0x773d('0x13')]));});});};
\ No newline at end of file
+var _0x9cc6=['util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','request','then','info','request\x20sent','ZendeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','ZendeskAccount,\x20%s,\x20%s','message','result','ZendeskAccount','findAll','options','where','attributes','limit','map','model','include','GetZendeskAccount','debug','catch','find','raw','ShowZendeskAccount','lodash'];(function(_0x31eb96,_0x1ce1d6){var _0x2984ca=function(_0x1eef00){while(--_0x1eef00){_0x31eb96['push'](_0x31eb96['shift']());}};_0x2984ca(++_0x1ce1d6);}(_0x9cc6,0x1af));var _0x69cc=function(_0x3a3c17,_0x5b7b7e){_0x3a3c17=_0x3a3c17-0x0;var _0xd07f21=_0x9cc6[_0x3a3c17];return _0xd07f21;};'use strict';var _=require(_0x69cc('0x0'));var util=require(_0x69cc('0x1'));var moment=require(_0x69cc('0x2'));var BPromise=require(_0x69cc('0x3'));var rs=require(_0x69cc('0x4'));var fs=require('fs');var Redis=require(_0x69cc('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x69cc('0x6'));var logger=require(_0x69cc('0x7'))(_0x69cc('0x8'));var config=require('../../config/environment');var jayson=require(_0x69cc('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x54df18,_0x49c2c2,_0xc2b03e){return new BPromise(function(_0x570bc6,_0x16a1dc){return client[_0x69cc('0xa')](_0x54df18,_0xc2b03e)[_0x69cc('0xb')](function(_0x27a4e3){logger[_0x69cc('0xc')]('ZendeskAccount,\x20%s,\x20%s',_0x49c2c2,_0x69cc('0xd'));logger['debug'](_0x69cc('0xe'),_0x49c2c2,_0x69cc('0xd'),JSON[_0x69cc('0xf')](_0x27a4e3));if(_0x27a4e3['error']){if(_0x27a4e3[_0x69cc('0x10')][_0x69cc('0x11')]===0x1f4){logger[_0x69cc('0x10')](_0x69cc('0x12'),_0x49c2c2,_0x27a4e3[_0x69cc('0x10')][_0x69cc('0x13')]);return _0x16a1dc(_0x27a4e3['error'][_0x69cc('0x13')]);}logger[_0x69cc('0x10')](_0x69cc('0x12'),_0x49c2c2,_0x27a4e3[_0x69cc('0x10')][_0x69cc('0x13')]);return _0x570bc6(_0x27a4e3[_0x69cc('0x10')][_0x69cc('0x13')]);}else{logger[_0x69cc('0xc')](_0x69cc('0x12'),_0x49c2c2,'request\x20sent');_0x570bc6(_0x27a4e3[_0x69cc('0x14')][_0x69cc('0x13')]);}})['catch'](function(_0x309a8c){logger[_0x69cc('0x10')]('ZendeskAccount,\x20%s,\x20%s',_0x49c2c2,_0x309a8c);_0x16a1dc(_0x309a8c);});});}exports['GetZendeskAccount']=function(_0x3ebe5c){var _0x18cae3=this;return new Promise(function(_0x1afb96,_0x27ade7){return db[_0x69cc('0x15')][_0x69cc('0x16')]({'raw':_0x3ebe5c['options']?_0x3ebe5c[_0x69cc('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x3ebe5c[_0x69cc('0x17')]?_0x3ebe5c[_0x69cc('0x17')][_0x69cc('0x18')]||null:null,'attributes':_0x3ebe5c[_0x69cc('0x17')]?_0x3ebe5c[_0x69cc('0x17')][_0x69cc('0x19')]||null:null,'limit':_0x3ebe5c[_0x69cc('0x17')]?_0x3ebe5c['options'][_0x69cc('0x1a')]||null:null,'include':_0x3ebe5c['options']?_0x3ebe5c['options']['include']?_[_0x69cc('0x1b')](_0x3ebe5c[_0x69cc('0x17')]['include'],function(_0xe3dce2){return{'model':db[_0xe3dce2[_0x69cc('0x1c')]],'as':_0xe3dce2['as'],'attributes':_0xe3dce2[_0x69cc('0x19')],'include':_0xe3dce2[_0x69cc('0x1d')]?_[_0x69cc('0x1b')](_0xe3dce2['include'],function(_0x4a24b1){return{'model':db[_0x4a24b1[_0x69cc('0x1c')]],'as':_0x4a24b1['as'],'attributes':_0x4a24b1[_0x69cc('0x19')],'include':_0x4a24b1[_0x69cc('0x1d')]?_['map'](_0x4a24b1[_0x69cc('0x1d')],function(_0x73b3ef){return{'model':db[_0x73b3ef[_0x69cc('0x1c')]],'as':_0x73b3ef['as'],'attributes':_0x73b3ef['attributes']};}):[]};}):[]};}):[]:[]})[_0x69cc('0xb')](function(_0xa3dfdc){logger[_0x69cc('0xc')](_0x69cc('0x1e'),_0x3ebe5c);logger[_0x69cc('0x1f')](_0x69cc('0x1e'),_0x3ebe5c,JSON['stringify'](_0xa3dfdc));_0x1afb96(_0xa3dfdc);})[_0x69cc('0x20')](function(_0x5ed2db){logger[_0x69cc('0x10')]('GetZendeskAccount',_0x5ed2db[_0x69cc('0x13')],_0x3ebe5c);_0x27ade7(_0x18cae3['error'](0x1f4,_0x5ed2db[_0x69cc('0x13')]));});});};exports['ShowZendeskAccount']=function(_0x332366){var _0x443d8f=this;return new Promise(function(_0x5c82a9,_0xa495ac){return db[_0x69cc('0x15')][_0x69cc('0x21')]({'raw':_0x332366['options']?_0x332366[_0x69cc('0x17')][_0x69cc('0x22')]===undefined?!![]:![]:!![],'where':_0x332366[_0x69cc('0x17')]?_0x332366[_0x69cc('0x17')]['where']||null:null,'attributes':_0x332366[_0x69cc('0x17')]?_0x332366[_0x69cc('0x17')][_0x69cc('0x19')]||null:null,'include':_0x332366[_0x69cc('0x17')]?_0x332366[_0x69cc('0x17')][_0x69cc('0x1d')]?_['map'](_0x332366[_0x69cc('0x17')]['include'],function(_0x2ee7d9){return{'model':db[_0x2ee7d9[_0x69cc('0x1c')]],'as':_0x2ee7d9['as'],'attributes':_0x2ee7d9['attributes'],'include':_0x2ee7d9[_0x69cc('0x1d')]?_[_0x69cc('0x1b')](_0x2ee7d9[_0x69cc('0x1d')],function(_0x5e00ab){return{'model':db[_0x5e00ab['model']],'as':_0x5e00ab['as'],'attributes':_0x5e00ab[_0x69cc('0x19')],'include':_0x5e00ab['include']?_[_0x69cc('0x1b')](_0x5e00ab['include'],function(_0x4668d0){return{'model':db[_0x4668d0[_0x69cc('0x1c')]],'as':_0x4668d0['as'],'attributes':_0x4668d0[_0x69cc('0x19')]};}):[]};}):[]};}):[]:[]})[_0x69cc('0xb')](function(_0x54f08a){logger[_0x69cc('0xc')]('ShowZendeskAccount',_0x332366);logger['debug']('ShowZendeskAccount',_0x332366,JSON[_0x69cc('0xf')](_0x54f08a));_0x5c82a9(_0x54f08a);})['catch'](function(_0x5810c1){logger[_0x69cc('0x10')](_0x69cc('0x23'),_0x5810c1[_0x69cc('0x13')],_0x332366);_0xa495ac(_0x443d8f[_0x69cc('0x10')](0x1f4,_0x5810c1['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4483=['getSubjects','/:id/descriptions','getDescriptions','getTags','post','create','/:id/tags','setTags','put','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','show','getFields','/:id/subjects'];(function(_0x41bd0d,_0x283017){var _0x5a4f5d=function(_0xf49ac4){while(--_0xf49ac4){_0x41bd0d['push'](_0x41bd0d['shift']());}};_0x5a4f5d(++_0x283017);}(_0x4483,0x1a3));var _0x3448=function(_0x132eda,_0x299f92){_0x132eda=_0x132eda-0x0;var _0x55b501=_0x4483[_0x132eda];return _0x55b501;};'use strict';var multer=require(_0x3448('0x0'));var util=require(_0x3448('0x1'));var path=require(_0x3448('0x2'));var timeout=require('connect-timeout');var express=require(_0x3448('0x3'));var router=express[_0x3448('0x4')]();var fs_extra=require(_0x3448('0x5'));var auth=require(_0x3448('0x6'));var interaction=require(_0x3448('0x7'));var config=require('../../config/environment');var controller=require(_0x3448('0x8'));router[_0x3448('0x9')]('/',auth[_0x3448('0xa')](),controller[_0x3448('0xb')]);router[_0x3448('0x9')](_0x3448('0xc'),auth[_0x3448('0xa')](),controller[_0x3448('0xd')]);router['get']('/:id/fields',auth[_0x3448('0xa')](),controller[_0x3448('0xe')]);router[_0x3448('0x9')](_0x3448('0xf'),auth[_0x3448('0xa')](),controller[_0x3448('0x10')]);router[_0x3448('0x9')](_0x3448('0x11'),auth[_0x3448('0xa')](),controller[_0x3448('0x12')]);router[_0x3448('0x9')]('/:id/tags',auth['isAuthenticated'](),controller[_0x3448('0x13')]);router[_0x3448('0x14')]('/',auth['isAuthenticated'](),controller[_0x3448('0x15')]);router[_0x3448('0x14')](_0x3448('0x16'),auth['isAuthenticated'](),controller[_0x3448('0x17')]);router[_0x3448('0x18')]('/:id',auth[_0x3448('0xa')](),controller[_0x3448('0x19')]);router[_0x3448('0x1a')]('/:id',auth[_0x3448('0xa')](),controller[_0x3448('0x1b')]);module[_0x3448('0x1c')]=router;
\ No newline at end of file
+var _0xb7e7=['delete','destroy','exports','multer','path','express','fs-extra','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','index','get','/:id','show','/:id/fields','isAuthenticated','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','create','put','update'];(function(_0x1b7368,_0x3286ed){var _0x25d54c=function(_0x2366da){while(--_0x2366da){_0x1b7368['push'](_0x1b7368['shift']());}};_0x25d54c(++_0x3286ed);}(_0xb7e7,0x121));var _0x7b7e=function(_0x42bc91,_0x41f40a){_0x42bc91=_0x42bc91-0x0;var _0x3f5507=_0xb7e7[_0x42bc91];return _0x3f5507;};'use strict';var multer=require(_0x7b7e('0x0'));var util=require('util');var path=require(_0x7b7e('0x1'));var timeout=require('connect-timeout');var express=require(_0x7b7e('0x2'));var router=express['Router']();var fs_extra=require(_0x7b7e('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var controller=require(_0x7b7e('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x7b7e('0x7')]);router[_0x7b7e('0x8')](_0x7b7e('0x9'),auth['isAuthenticated'](),controller[_0x7b7e('0xa')]);router[_0x7b7e('0x8')](_0x7b7e('0xb'),auth[_0x7b7e('0xc')](),controller[_0x7b7e('0xd')]);router[_0x7b7e('0x8')](_0x7b7e('0xe'),auth['isAuthenticated'](),controller[_0x7b7e('0xf')]);router[_0x7b7e('0x8')](_0x7b7e('0x10'),auth[_0x7b7e('0xc')](),controller[_0x7b7e('0x11')]);router[_0x7b7e('0x8')](_0x7b7e('0x12'),auth[_0x7b7e('0xc')](),controller[_0x7b7e('0x13')]);router['post']('/',auth[_0x7b7e('0xc')](),controller[_0x7b7e('0x14')]);router['post'](_0x7b7e('0x12'),auth['isAuthenticated'](),controller['setTags']);router[_0x7b7e('0x15')](_0x7b7e('0x9'),auth[_0x7b7e('0xc')](),controller[_0x7b7e('0x16')]);router[_0x7b7e('0x17')]('/:id',auth['isAuthenticated'](),controller[_0x7b7e('0x18')]);module[_0x7b7e('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77cd=['STRING'];(function(_0xee0a6f,_0x651dbb){var _0xdd8dc4=function(_0x26b545){while(--_0x26b545){_0xee0a6f['push'](_0xee0a6f['shift']());}};_0xdd8dc4(++_0x651dbb);}(_0x77cd,0x15b));var _0xd77c=function(_0x4d5954,_0x28ecd6){_0x4d5954=_0x4d5954-0x0;var _0x42dcb3=_0x77cd[_0x4d5954];return _0x42dcb3;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xd77c('0x0')]},'description':{'type':Sequelize[_0xd77c('0x0')]}};
\ No newline at end of file
+var _0xa580=['STRING','sequelize','exports'];(function(_0x9cfb64,_0x142c4c){var _0x52872a=function(_0x5a9fa1){while(--_0x5a9fa1){_0x9cfb64['push'](_0x9cfb64['shift']());}};_0x52872a(++_0x142c4c);}(_0xa580,0x1c9));var _0x0a58=function(_0x3f58d3,_0x29b359){_0x3f58d3=_0x3f58d3-0x0;var _0x51155e=_0xa580[_0x3f58d3];return _0x51155e;};'use strict';var Sequelize=require(_0x0a58('0x0'));module[_0x0a58('0x1')]={'name':{'type':Sequelize[_0x0a58('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe103=['../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','status','json','limit','undefined','count','offset','set','Content-Range','apply','save','then','destroy','end','sendStatus','error','stack','name','send','index','map','ZendeskConfiguration','rawAttributes','fieldName','type','key','model','query','keys','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','merge','filter','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','update','getFields','findOne','ZendeskField','getSubjects','hasOwnProperty','getDescriptions','getTags','setTags','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs'];(function(_0x9eead2,_0x3b94f9){var _0x571bd7=function(_0x376140){while(--_0x376140){_0x9eead2['push'](_0x9eead2['shift']());}};_0x571bd7(++_0x3b94f9);}(_0xe103,0x1e5));var _0x3e10=function(_0xd0ca34,_0xac7823){_0xd0ca34=_0xd0ca34-0x0;var _0x3a0919=_0xe103[_0xd0ca34];return _0x3a0919;};'use strict';var emlformat=require(_0x3e10('0x0'));var rimraf=require(_0x3e10('0x1'));var zipdir=require(_0x3e10('0x2'));var jsonpatch=require(_0x3e10('0x3'));var rp=require(_0x3e10('0x4'));var moment=require('moment');var BPromise=require(_0x3e10('0x5'));var Mustache=require(_0x3e10('0x6'));var util=require(_0x3e10('0x7'));var path=require('path');var sox=require(_0x3e10('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3e10('0x9'));var _=require(_0x3e10('0xa'));var squel=require(_0x3e10('0xb'));var crypto=require(_0x3e10('0xc'));var jsforce=require(_0x3e10('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x3e10('0xe'));var querystring=require(_0x3e10('0xf'));var Papa=require(_0x3e10('0x10'));var Redis=require('ioredis');var authService=require(_0x3e10('0x11'));var qs=require(_0x3e10('0x12'));var as=require(_0x3e10('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x3e10('0x14'));var utils=require('../../config/utils');var config=require(_0x3e10('0x15'));var licenseUtil=require(_0x3e10('0x16'));var db=require(_0x3e10('0x17'))['db'];function respondWithStatusCode(_0x212666,_0x2a9a4c){_0x2a9a4c=_0x2a9a4c||0xcc;return function(_0x911be6){if(_0x911be6){return _0x212666['sendStatus'](_0x2a9a4c);}return _0x212666[_0x3e10('0x18')](_0x2a9a4c)['end']();};}function respondWithResult(_0x586a00,_0x3e572d){_0x3e572d=_0x3e572d||0xc8;return function(_0x28ea67){if(_0x28ea67){return _0x586a00[_0x3e10('0x18')](_0x3e572d)[_0x3e10('0x19')](_0x28ea67);}};}function respondWithFilteredResult(_0xe1bb02,_0x915426){return function(_0x43ca76){if(_0x43ca76){var _0x4dbd1c=typeof _0x915426['offset']==='undefined'&&typeof _0x915426[_0x3e10('0x1a')]===_0x3e10('0x1b');var _0x29e6c2=_0x43ca76['count'];var _0x5408ea=_0x4dbd1c?0x0:_0x915426['offset'];var _0x41ffcd=_0x4dbd1c?_0x43ca76[_0x3e10('0x1c')]:_0x915426[_0x3e10('0x1d')]+_0x915426['limit'];var _0x827d;if(_0x41ffcd>=_0x29e6c2){_0x41ffcd=_0x29e6c2;_0x827d=0xc8;}else{_0x827d=0xce;}_0xe1bb02[_0x3e10('0x18')](_0x827d);return _0xe1bb02[_0x3e10('0x1e')](_0x3e10('0x1f'),_0x5408ea+'-'+_0x41ffcd+'/'+_0x29e6c2)[_0x3e10('0x19')](_0x43ca76);}return null;};}function patchUpdates(_0x46201a){return function(_0x24f184){try{jsonpatch[_0x3e10('0x20')](_0x24f184,_0x46201a,!![]);}catch(_0x41add2){return BPromise['reject'](_0x41add2);}return _0x24f184[_0x3e10('0x21')]();};}function saveUpdates(_0x43e664,_0x4aa251){return function(_0x15f723){if(_0x15f723){return _0x15f723['update'](_0x43e664)[_0x3e10('0x22')](function(_0x55226e){return _0x55226e;});}return null;};}function removeEntity(_0x393f90,_0x4ade55){return function(_0x593b21){if(_0x593b21){return _0x593b21[_0x3e10('0x23')]()[_0x3e10('0x22')](function(){_0x393f90[_0x3e10('0x18')](0xcc)[_0x3e10('0x24')]();});}};}function handleEntityNotFound(_0x3e00d2,_0xf42bab){return function(_0x306a40){if(!_0x306a40){_0x3e00d2[_0x3e10('0x25')](0x194);}return _0x306a40;};}function handleError(_0xe71b13,_0x3ed28f){_0x3ed28f=_0x3ed28f||0x1f4;return function(_0x1f604d){logger[_0x3e10('0x26')](_0x1f604d[_0x3e10('0x27')]);if(_0x1f604d[_0x3e10('0x28')]){delete _0x1f604d[_0x3e10('0x28')];}_0xe71b13[_0x3e10('0x18')](_0x3ed28f)[_0x3e10('0x29')](_0x1f604d);};}exports[_0x3e10('0x2a')]=function(_0x254aed,_0x30ed63){var _0x3896ef={},_0x412127={},_0x5af7f4={'count':0x0,'rows':[]};var _0x4a452d=_[_0x3e10('0x2b')](db[_0x3e10('0x2c')][_0x3e10('0x2d')],function(_0x5021f5){return{'name':_0x5021f5[_0x3e10('0x2e')],'type':_0x5021f5[_0x3e10('0x2f')][_0x3e10('0x30')]};});_0x412127[_0x3e10('0x31')]=_[_0x3e10('0x2b')](_0x4a452d,_0x3e10('0x28'));_0x412127[_0x3e10('0x32')]=_[_0x3e10('0x33')](_0x254aed[_0x3e10('0x32')]);_0x412127['filters']=_['intersection'](_0x412127[_0x3e10('0x31')],_0x412127['query']);_0x3896ef[_0x3e10('0x34')]=_[_0x3e10('0x35')](_0x412127[_0x3e10('0x31')],qs[_0x3e10('0x36')](_0x254aed[_0x3e10('0x32')]['fields']));_0x3896ef[_0x3e10('0x34')]=_0x3896ef[_0x3e10('0x34')][_0x3e10('0x37')]?_0x3896ef[_0x3e10('0x34')]:_0x412127['model'];if(!_0x254aed[_0x3e10('0x32')]['hasOwnProperty'](_0x3e10('0x38'))){_0x3896ef[_0x3e10('0x1a')]=qs[_0x3e10('0x1a')](_0x254aed['query']['limit']);_0x3896ef[_0x3e10('0x1d')]=qs[_0x3e10('0x1d')](_0x254aed[_0x3e10('0x32')][_0x3e10('0x1d')]);}_0x3896ef[_0x3e10('0x39')]=qs[_0x3e10('0x3a')](_0x254aed[_0x3e10('0x32')]['sort']);_0x3896ef[_0x3e10('0x3b')]=qs[_0x3e10('0x3c')](_[_0x3e10('0x3d')](_0x254aed[_0x3e10('0x32')],_0x412127['filters']),_0x4a452d);if(_0x254aed['query']['filter']){_0x3896ef[_0x3e10('0x3b')]=_[_0x3e10('0x3e')](_0x3896ef[_0x3e10('0x3b')],{'$or':_[_0x3e10('0x2b')](_0x4a452d,function(_0x107cd3){if(_0x107cd3[_0x3e10('0x2f')]!=='VIRTUAL'){var _0x57def7={};_0x57def7[_0x107cd3[_0x3e10('0x28')]]={'$like':'%'+_0x254aed[_0x3e10('0x32')][_0x3e10('0x3f')]+'%'};return _0x57def7;}})});}_0x3896ef=_[_0x3e10('0x3e')]({},_0x3896ef,_0x254aed['options']);var _0x99995a={'where':_0x3896ef['where']};return db[_0x3e10('0x2c')][_0x3e10('0x1c')](_0x99995a)[_0x3e10('0x22')](function(_0x5c52aa){_0x5af7f4[_0x3e10('0x1c')]=_0x5c52aa;if(_0x254aed[_0x3e10('0x32')][_0x3e10('0x40')]){_0x3896ef[_0x3e10('0x41')]=[{'all':!![]}];}return db['ZendeskConfiguration'][_0x3e10('0x42')](_0x3896ef);})[_0x3e10('0x22')](function(_0x10e011){_0x5af7f4[_0x3e10('0x43')]=_0x10e011;return _0x5af7f4;})[_0x3e10('0x22')](respondWithFilteredResult(_0x30ed63,_0x3896ef))['catch'](handleError(_0x30ed63,null));};exports[_0x3e10('0x44')]=function(_0x188f27,_0x22dcde){var _0x46484c={'raw':![],'where':{'id':_0x188f27[_0x3e10('0x45')]['id']}},_0x452162={};_0x452162[_0x3e10('0x31')]=_[_0x3e10('0x33')](db[_0x3e10('0x2c')][_0x3e10('0x2d')]);_0x452162[_0x3e10('0x32')]=_[_0x3e10('0x33')](_0x188f27['query']);_0x452162[_0x3e10('0x3c')]=_['intersection'](_0x452162['model'],_0x452162[_0x3e10('0x32')]);_0x46484c[_0x3e10('0x34')]=_[_0x3e10('0x35')](_0x452162[_0x3e10('0x31')],qs[_0x3e10('0x36')](_0x188f27[_0x3e10('0x32')][_0x3e10('0x36')]));_0x46484c[_0x3e10('0x34')]=_0x46484c[_0x3e10('0x34')][_0x3e10('0x37')]?_0x46484c[_0x3e10('0x34')]:_0x452162[_0x3e10('0x31')];if(_0x188f27['query']['includeAll']){_0x46484c[_0x3e10('0x41')]=[{'all':!![]}];}_0x46484c=_['merge']({},_0x46484c,_0x188f27[_0x3e10('0x46')]);return db[_0x3e10('0x2c')][_0x3e10('0x47')](_0x46484c)[_0x3e10('0x22')](handleEntityNotFound(_0x22dcde,null))['then'](respondWithResult(_0x22dcde,null))[_0x3e10('0x48')](handleError(_0x22dcde,null));};exports['create']=function(_0x35bdeb,_0x275042){return db[_0x3e10('0x2c')][_0x3e10('0x49')](_0x35bdeb[_0x3e10('0x4a')],{})[_0x3e10('0x22')](respondWithResult(_0x275042,0xc9))[_0x3e10('0x48')](handleError(_0x275042,null));};exports[_0x3e10('0x4b')]=function(_0x36a33b,_0x43c5f0){if(_0x36a33b['body']['id']){delete _0x36a33b[_0x3e10('0x4a')]['id'];}return db[_0x3e10('0x2c')][_0x3e10('0x47')]({'where':{'id':_0x36a33b[_0x3e10('0x45')]['id']}})[_0x3e10('0x22')](handleEntityNotFound(_0x43c5f0,null))[_0x3e10('0x22')](saveUpdates(_0x36a33b[_0x3e10('0x4a')],null))[_0x3e10('0x22')](respondWithResult(_0x43c5f0,null))[_0x3e10('0x48')](handleError(_0x43c5f0,null));};exports[_0x3e10('0x23')]=function(_0x3c9ef1,_0xe73dc3){return db[_0x3e10('0x2c')][_0x3e10('0x47')]({'where':{'id':_0x3c9ef1[_0x3e10('0x45')]['id']}})['then'](handleEntityNotFound(_0xe73dc3,null))[_0x3e10('0x22')](removeEntity(_0xe73dc3,null))['catch'](handleError(_0xe73dc3,null));};exports[_0x3e10('0x4c')]=function(_0x3dc309,_0x262d37,_0x3de3b1){var _0x2d0a0e={};var _0x1476fa={};var _0x45f72c;var _0x3ce8a5;return db[_0x3e10('0x2c')][_0x3e10('0x4d')]({'where':{'id':_0x3dc309[_0x3e10('0x45')]['id']}})[_0x3e10('0x22')](handleEntityNotFound(_0x262d37,null))[_0x3e10('0x22')](function(_0x39b990){if(_0x39b990){_0x45f72c=_0x39b990;_0x1476fa[_0x3e10('0x31')]=_[_0x3e10('0x33')](db[_0x3e10('0x4e')][_0x3e10('0x2d')]);_0x1476fa[_0x3e10('0x32')]=_['keys'](_0x3dc309[_0x3e10('0x32')]);_0x1476fa[_0x3e10('0x3c')]=_[_0x3e10('0x35')](_0x1476fa['model'],_0x1476fa[_0x3e10('0x32')]);_0x2d0a0e['attributes']=_[_0x3e10('0x35')](_0x1476fa[_0x3e10('0x31')],qs[_0x3e10('0x36')](_0x3dc309['query'][_0x3e10('0x36')]));_0x2d0a0e['attributes']=_0x2d0a0e[_0x3e10('0x34')][_0x3e10('0x37')]?_0x2d0a0e[_0x3e10('0x34')]:_0x1476fa['model'];_0x2d0a0e['order']=qs[_0x3e10('0x3a')](_0x3dc309[_0x3e10('0x32')][_0x3e10('0x3a')]);_0x2d0a0e['where']=qs['filters'](_[_0x3e10('0x3d')](_0x3dc309[_0x3e10('0x32')],_0x1476fa[_0x3e10('0x3c')]));if(_0x3dc309[_0x3e10('0x32')][_0x3e10('0x3f')]){_0x2d0a0e[_0x3e10('0x3b')]=_[_0x3e10('0x3e')](_0x2d0a0e[_0x3e10('0x3b')],{'$or':_['map'](_0x2d0a0e[_0x3e10('0x34')],function(_0x273db3){var _0x19ea15={};_0x19ea15[_0x273db3]={'$like':'%'+_0x3dc309[_0x3e10('0x32')]['filter']+'%'};return _0x19ea15;})});}_0x2d0a0e=_[_0x3e10('0x3e')]({},_0x2d0a0e,_0x3dc309[_0x3e10('0x46')]);return _0x45f72c[_0x3e10('0x4c')](_0x2d0a0e);}})[_0x3e10('0x22')](function(_0x5b3524){if(_0x5b3524){_0x3ce8a5=_0x5b3524[_0x3e10('0x37')];if(!_0x3dc309['query']['hasOwnProperty'](_0x3e10('0x38'))){_0x2d0a0e['limit']=qs[_0x3e10('0x1a')](_0x3dc309[_0x3e10('0x32')][_0x3e10('0x1a')]);_0x2d0a0e['offset']=qs[_0x3e10('0x1d')](_0x3dc309[_0x3e10('0x32')][_0x3e10('0x1d')]);}return _0x45f72c[_0x3e10('0x4c')](_0x2d0a0e);}})[_0x3e10('0x22')](function(_0x40d45c){if(_0x40d45c){return _0x40d45c?{'count':_0x3ce8a5,'rows':_0x40d45c}:null;}})[_0x3e10('0x22')](respondWithResult(_0x262d37,null))[_0x3e10('0x48')](handleError(_0x262d37,null));};exports[_0x3e10('0x4f')]=function(_0x126b14,_0x507536,_0xfe991b){var _0xacdaa6={};var _0x3ae0e1={};var _0x24c3a5;var _0x37266f;return db['ZendeskConfiguration']['findOne']({'where':{'id':_0x126b14[_0x3e10('0x45')]['id']}})[_0x3e10('0x22')](handleEntityNotFound(_0x507536,null))[_0x3e10('0x22')](function(_0x5ed686){if(_0x5ed686){_0x24c3a5=_0x5ed686;_0x3ae0e1['model']=_[_0x3e10('0x33')](db[_0x3e10('0x4e')][_0x3e10('0x2d')]);_0x3ae0e1[_0x3e10('0x32')]=_[_0x3e10('0x33')](_0x126b14[_0x3e10('0x32')]);_0x3ae0e1[_0x3e10('0x3c')]=_['intersection'](_0x3ae0e1[_0x3e10('0x31')],_0x3ae0e1[_0x3e10('0x32')]);_0xacdaa6[_0x3e10('0x34')]=_[_0x3e10('0x35')](_0x3ae0e1[_0x3e10('0x31')],qs[_0x3e10('0x36')](_0x126b14['query']['fields']));_0xacdaa6[_0x3e10('0x34')]=_0xacdaa6['attributes'][_0x3e10('0x37')]?_0xacdaa6[_0x3e10('0x34')]:_0x3ae0e1[_0x3e10('0x31')];_0xacdaa6['order']=qs[_0x3e10('0x3a')](_0x126b14[_0x3e10('0x32')]['sort']);_0xacdaa6[_0x3e10('0x3b')]=qs['filters'](_[_0x3e10('0x3d')](_0x126b14[_0x3e10('0x32')],_0x3ae0e1[_0x3e10('0x3c')]));if(_0x126b14[_0x3e10('0x32')][_0x3e10('0x3f')]){_0xacdaa6[_0x3e10('0x3b')]=_[_0x3e10('0x3e')](_0xacdaa6[_0x3e10('0x3b')],{'$or':_[_0x3e10('0x2b')](_0xacdaa6['attributes'],function(_0x189bb9){var _0x509f65={};_0x509f65[_0x189bb9]={'$like':'%'+_0x126b14[_0x3e10('0x32')][_0x3e10('0x3f')]+'%'};return _0x509f65;})});}_0xacdaa6=_[_0x3e10('0x3e')]({},_0xacdaa6,_0x126b14[_0x3e10('0x46')]);return _0x24c3a5[_0x3e10('0x4f')](_0xacdaa6);}})[_0x3e10('0x22')](function(_0x3e4c6d){if(_0x3e4c6d){_0x37266f=_0x3e4c6d['length'];if(!_0x126b14['query'][_0x3e10('0x50')](_0x3e10('0x38'))){_0xacdaa6['limit']=qs[_0x3e10('0x1a')](_0x126b14[_0x3e10('0x32')][_0x3e10('0x1a')]);_0xacdaa6[_0x3e10('0x1d')]=qs[_0x3e10('0x1d')](_0x126b14[_0x3e10('0x32')]['offset']);}return _0x24c3a5[_0x3e10('0x4f')](_0xacdaa6);}})['then'](function(_0x5d0c6e){if(_0x5d0c6e){return _0x5d0c6e?{'count':_0x37266f,'rows':_0x5d0c6e}:null;}})['then'](respondWithResult(_0x507536,null))[_0x3e10('0x48')](handleError(_0x507536,null));};exports['getDescriptions']=function(_0x23eee5,_0x48b65d,_0x3db887){var _0x57d794={};var _0x2e3d11={};var _0x116ede;var _0xd85f9f;return db[_0x3e10('0x2c')][_0x3e10('0x4d')]({'where':{'id':_0x23eee5[_0x3e10('0x45')]['id']}})[_0x3e10('0x22')](handleEntityNotFound(_0x48b65d,null))[_0x3e10('0x22')](function(_0x775834){if(_0x775834){_0x116ede=_0x775834;_0x2e3d11[_0x3e10('0x31')]=_[_0x3e10('0x33')](db[_0x3e10('0x4e')][_0x3e10('0x2d')]);_0x2e3d11[_0x3e10('0x32')]=_['keys'](_0x23eee5[_0x3e10('0x32')]);_0x2e3d11[_0x3e10('0x3c')]=_[_0x3e10('0x35')](_0x2e3d11[_0x3e10('0x31')],_0x2e3d11[_0x3e10('0x32')]);_0x57d794[_0x3e10('0x34')]=_[_0x3e10('0x35')](_0x2e3d11[_0x3e10('0x31')],qs[_0x3e10('0x36')](_0x23eee5[_0x3e10('0x32')][_0x3e10('0x36')]));_0x57d794[_0x3e10('0x34')]=_0x57d794[_0x3e10('0x34')][_0x3e10('0x37')]?_0x57d794[_0x3e10('0x34')]:_0x2e3d11[_0x3e10('0x31')];_0x57d794[_0x3e10('0x39')]=qs['sort'](_0x23eee5[_0x3e10('0x32')][_0x3e10('0x3a')]);_0x57d794['where']=qs[_0x3e10('0x3c')](_[_0x3e10('0x3d')](_0x23eee5[_0x3e10('0x32')],_0x2e3d11[_0x3e10('0x3c')]));if(_0x23eee5[_0x3e10('0x32')][_0x3e10('0x3f')]){_0x57d794['where']=_[_0x3e10('0x3e')](_0x57d794[_0x3e10('0x3b')],{'$or':_['map'](_0x57d794[_0x3e10('0x34')],function(_0x424cb6){var _0x223a90={};_0x223a90[_0x424cb6]={'$like':'%'+_0x23eee5[_0x3e10('0x32')][_0x3e10('0x3f')]+'%'};return _0x223a90;})});}_0x57d794=_['merge']({},_0x57d794,_0x23eee5[_0x3e10('0x46')]);return _0x116ede[_0x3e10('0x51')](_0x57d794);}})[_0x3e10('0x22')](function(_0x498453){if(_0x498453){_0xd85f9f=_0x498453['length'];if(!_0x23eee5[_0x3e10('0x32')][_0x3e10('0x50')](_0x3e10('0x38'))){_0x57d794[_0x3e10('0x1a')]=qs[_0x3e10('0x1a')](_0x23eee5[_0x3e10('0x32')][_0x3e10('0x1a')]);_0x57d794[_0x3e10('0x1d')]=qs['offset'](_0x23eee5['query'][_0x3e10('0x1d')]);}return _0x116ede[_0x3e10('0x51')](_0x57d794);}})['then'](function(_0x43d685){if(_0x43d685){return _0x43d685?{'count':_0xd85f9f,'rows':_0x43d685}:null;}})[_0x3e10('0x22')](respondWithResult(_0x48b65d,null))[_0x3e10('0x48')](handleError(_0x48b65d,null));};exports[_0x3e10('0x52')]=function(_0x42dd84,_0xcb141d,_0x2378f2){var _0x3b6951={};var _0x167d64={};var _0x343a8f;var _0x2359ef;return db['ZendeskConfiguration'][_0x3e10('0x4d')]({'where':{'id':_0x42dd84['params']['id']}})[_0x3e10('0x22')](handleEntityNotFound(_0xcb141d,null))[_0x3e10('0x22')](function(_0x1d17e4){if(_0x1d17e4){_0x343a8f=_0x1d17e4;_0x167d64[_0x3e10('0x31')]=_[_0x3e10('0x33')](db['Tag'][_0x3e10('0x2d')]);_0x167d64[_0x3e10('0x32')]=_[_0x3e10('0x33')](_0x42dd84[_0x3e10('0x32')]);_0x167d64[_0x3e10('0x3c')]=_[_0x3e10('0x35')](_0x167d64[_0x3e10('0x31')],_0x167d64[_0x3e10('0x32')]);_0x3b6951[_0x3e10('0x34')]=_[_0x3e10('0x35')](_0x167d64[_0x3e10('0x31')],qs[_0x3e10('0x36')](_0x42dd84[_0x3e10('0x32')][_0x3e10('0x36')]));_0x3b6951[_0x3e10('0x34')]=_0x3b6951['attributes'][_0x3e10('0x37')]?_0x3b6951[_0x3e10('0x34')]:_0x167d64['model'];_0x3b6951[_0x3e10('0x39')]=qs[_0x3e10('0x3a')](_0x42dd84[_0x3e10('0x32')][_0x3e10('0x3a')]);_0x3b6951['where']=qs['filters'](_['pick'](_0x42dd84[_0x3e10('0x32')],_0x167d64[_0x3e10('0x3c')]));if(_0x42dd84[_0x3e10('0x32')][_0x3e10('0x3f')]){_0x3b6951[_0x3e10('0x3b')]=_[_0x3e10('0x3e')](_0x3b6951[_0x3e10('0x3b')],{'$or':_['map'](_0x3b6951[_0x3e10('0x34')],function(_0x180e3a){var _0xa02201={};_0xa02201[_0x180e3a]={'$like':'%'+_0x42dd84[_0x3e10('0x32')][_0x3e10('0x3f')]+'%'};return _0xa02201;})});}_0x3b6951=_['merge']({},_0x3b6951,_0x42dd84[_0x3e10('0x46')]);return _0x343a8f[_0x3e10('0x52')](_0x3b6951);}})[_0x3e10('0x22')](function(_0x21b45e){if(_0x21b45e){_0x2359ef=_0x21b45e['length'];if(!_0x42dd84['query'][_0x3e10('0x50')](_0x3e10('0x38'))){_0x3b6951[_0x3e10('0x1a')]=qs[_0x3e10('0x1a')](_0x42dd84[_0x3e10('0x32')][_0x3e10('0x1a')]);_0x3b6951[_0x3e10('0x1d')]=qs[_0x3e10('0x1d')](_0x42dd84['query'][_0x3e10('0x1d')]);}return _0x343a8f[_0x3e10('0x52')](_0x3b6951);}})[_0x3e10('0x22')](function(_0x3cd18c){if(_0x3cd18c){return _0x3cd18c?{'count':_0x2359ef,'rows':_0x3cd18c}:null;}})[_0x3e10('0x22')](respondWithResult(_0xcb141d,null))[_0x3e10('0x48')](handleError(_0xcb141d,null));};exports[_0x3e10('0x53')]=function(_0x1b5116,_0x1ae045,_0x44193){if(_0x1b5116[_0x3e10('0x4a')]['id']){delete _0x1b5116[_0x3e10('0x4a')]['id'];}return db[_0x3e10('0x2c')][_0x3e10('0x4d')]({'where':{'id':_0x1b5116[_0x3e10('0x45')]['id']}})[_0x3e10('0x22')](handleEntityNotFound(_0x1ae045,null))['then'](function(_0x4d64b2){if(_0x4d64b2){return _0x4d64b2[_0x3e10('0x53')](_0x1b5116[_0x3e10('0x4a')]['ids']||[]);}return null;})[_0x3e10('0x22')](respondWithResult(_0x1ae045,null))[_0x3e10('0x48')](handleError(_0x1ae045,null));};
\ No newline at end of file
+var _0x364b=['where','merge','options','includeAll','include','findAll','rows','catch','params','intersection','create','body','find','findOne','ZendeskField','getFields','getSubjects','nolimit','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','offset','undefined','limit','count','status','set','Content-Range','json','apply','save','then','destroy','error','stack','name','index','map','ZendeskConfiguration','rawAttributes','fieldName','type','key','model','query','keys','attributes','fields','length','hasOwnProperty','order','sort','pick','filters','filter'];(function(_0x166a72,_0x3a865b){var _0x374300=function(_0x1e6162){while(--_0x1e6162){_0x166a72['push'](_0x166a72['shift']());}};_0x374300(++_0x3a865b);}(_0x364b,0x15f));var _0xb364=function(_0xa0476f,_0x1a2267){_0xa0476f=_0xa0476f-0x0;var _0x5e95a9=_0x364b[_0xa0476f];return _0x5e95a9;};'use strict';var emlformat=require(_0xb364('0x0'));var rimraf=require(_0xb364('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb364('0x2'));var rp=require(_0xb364('0x3'));var moment=require('moment');var BPromise=require(_0xb364('0x4'));var Mustache=require(_0xb364('0x5'));var util=require(_0xb364('0x6'));var path=require(_0xb364('0x7'));var sox=require(_0xb364('0x8'));var csv=require('to-csv');var ejs=require(_0xb364('0x9'));var fs=require('fs');var fs_extra=require(_0xb364('0xa'));var _=require(_0xb364('0xb'));var squel=require(_0xb364('0xc'));var crypto=require('crypto');var jsforce=require(_0xb364('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xb364('0xe'));var Papa=require(_0xb364('0xf'));var Redis=require(_0xb364('0x10'));var authService=require(_0xb364('0x11'));var qs=require(_0xb364('0x12'));var as=require(_0xb364('0x13'));var hardwareService=require(_0xb364('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xb364('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xb364('0x16'));var db=require(_0xb364('0x17'))['db'];function respondWithStatusCode(_0x5208d1,_0x5956e9){_0x5956e9=_0x5956e9||0xcc;return function(_0x321b2a){if(_0x321b2a){return _0x5208d1[_0xb364('0x18')](_0x5956e9);}return _0x5208d1['status'](_0x5956e9)['end']();};}function respondWithResult(_0x1662c4,_0x3e405a){_0x3e405a=_0x3e405a||0xc8;return function(_0x34974f){if(_0x34974f){return _0x1662c4['status'](_0x3e405a)['json'](_0x34974f);}};}function respondWithFilteredResult(_0x3155cc,_0x3653c7){return function(_0x18b158){if(_0x18b158){var _0x448b0a=typeof _0x3653c7[_0xb364('0x19')]===_0xb364('0x1a')&&typeof _0x3653c7[_0xb364('0x1b')]==='undefined';var _0x80a472=_0x18b158[_0xb364('0x1c')];var _0x3c03ac=_0x448b0a?0x0:_0x3653c7['offset'];var _0x377d71=_0x448b0a?_0x18b158[_0xb364('0x1c')]:_0x3653c7['offset']+_0x3653c7[_0xb364('0x1b')];var _0x3e1b04;if(_0x377d71>=_0x80a472){_0x377d71=_0x80a472;_0x3e1b04=0xc8;}else{_0x3e1b04=0xce;}_0x3155cc[_0xb364('0x1d')](_0x3e1b04);return _0x3155cc[_0xb364('0x1e')](_0xb364('0x1f'),_0x3c03ac+'-'+_0x377d71+'/'+_0x80a472)[_0xb364('0x20')](_0x18b158);}return null;};}function patchUpdates(_0x21908c){return function(_0x3bec01){try{jsonpatch[_0xb364('0x21')](_0x3bec01,_0x21908c,!![]);}catch(_0x2258e8){return BPromise['reject'](_0x2258e8);}return _0x3bec01[_0xb364('0x22')]();};}function saveUpdates(_0x4dc286,_0x51318c){return function(_0x29746f){if(_0x29746f){return _0x29746f['update'](_0x4dc286)[_0xb364('0x23')](function(_0x1696e9){return _0x1696e9;});}return null;};}function removeEntity(_0x32221c,_0x1041a4){return function(_0x351849){if(_0x351849){return _0x351849[_0xb364('0x24')]()[_0xb364('0x23')](function(){_0x32221c[_0xb364('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x395f62,_0xb65370){return function(_0x4d7f03){if(!_0x4d7f03){_0x395f62[_0xb364('0x18')](0x194);}return _0x4d7f03;};}function handleError(_0x102f99,_0x50377e){_0x50377e=_0x50377e||0x1f4;return function(_0x20322f){logger[_0xb364('0x25')](_0x20322f[_0xb364('0x26')]);if(_0x20322f[_0xb364('0x27')]){delete _0x20322f[_0xb364('0x27')];}_0x102f99[_0xb364('0x1d')](_0x50377e)['send'](_0x20322f);};}exports[_0xb364('0x28')]=function(_0x20b02c,_0x5f7da6){var _0x3d65d6={},_0x4eaeeb={},_0x3d6c79={'count':0x0,'rows':[]};var _0x241ba3=_[_0xb364('0x29')](db[_0xb364('0x2a')][_0xb364('0x2b')],function(_0x3fe109){return{'name':_0x3fe109[_0xb364('0x2c')],'type':_0x3fe109[_0xb364('0x2d')][_0xb364('0x2e')]};});_0x4eaeeb[_0xb364('0x2f')]=_[_0xb364('0x29')](_0x241ba3,_0xb364('0x27'));_0x4eaeeb[_0xb364('0x30')]=_[_0xb364('0x31')](_0x20b02c[_0xb364('0x30')]);_0x4eaeeb['filters']=_['intersection'](_0x4eaeeb['model'],_0x4eaeeb[_0xb364('0x30')]);_0x3d65d6[_0xb364('0x32')]=_['intersection'](_0x4eaeeb['model'],qs[_0xb364('0x33')](_0x20b02c[_0xb364('0x30')][_0xb364('0x33')]));_0x3d65d6[_0xb364('0x32')]=_0x3d65d6[_0xb364('0x32')][_0xb364('0x34')]?_0x3d65d6[_0xb364('0x32')]:_0x4eaeeb['model'];if(!_0x20b02c[_0xb364('0x30')][_0xb364('0x35')]('nolimit')){_0x3d65d6[_0xb364('0x1b')]=qs[_0xb364('0x1b')](_0x20b02c['query'][_0xb364('0x1b')]);_0x3d65d6['offset']=qs[_0xb364('0x19')](_0x20b02c[_0xb364('0x30')][_0xb364('0x19')]);}_0x3d65d6[_0xb364('0x36')]=qs['sort'](_0x20b02c[_0xb364('0x30')][_0xb364('0x37')]);_0x3d65d6['where']=qs['filters'](_[_0xb364('0x38')](_0x20b02c[_0xb364('0x30')],_0x4eaeeb[_0xb364('0x39')]),_0x241ba3);if(_0x20b02c[_0xb364('0x30')][_0xb364('0x3a')]){_0x3d65d6[_0xb364('0x3b')]=_[_0xb364('0x3c')](_0x3d65d6[_0xb364('0x3b')],{'$or':_[_0xb364('0x29')](_0x241ba3,function(_0x4acc26){if(_0x4acc26[_0xb364('0x2d')]!=='VIRTUAL'){var _0x5c0367={};_0x5c0367[_0x4acc26[_0xb364('0x27')]]={'$like':'%'+_0x20b02c[_0xb364('0x30')][_0xb364('0x3a')]+'%'};return _0x5c0367;}})});}_0x3d65d6=_[_0xb364('0x3c')]({},_0x3d65d6,_0x20b02c[_0xb364('0x3d')]);var _0x483e46={'where':_0x3d65d6[_0xb364('0x3b')]};return db[_0xb364('0x2a')][_0xb364('0x1c')](_0x483e46)[_0xb364('0x23')](function(_0x5ee525){_0x3d6c79[_0xb364('0x1c')]=_0x5ee525;if(_0x20b02c[_0xb364('0x30')][_0xb364('0x3e')]){_0x3d65d6[_0xb364('0x3f')]=[{'all':!![]}];}return db[_0xb364('0x2a')][_0xb364('0x40')](_0x3d65d6);})[_0xb364('0x23')](function(_0x126069){_0x3d6c79[_0xb364('0x41')]=_0x126069;return _0x3d6c79;})[_0xb364('0x23')](respondWithFilteredResult(_0x5f7da6,_0x3d65d6))[_0xb364('0x42')](handleError(_0x5f7da6,null));};exports['show']=function(_0x36f8a8,_0xc92619){var _0x506f2a={'raw':![],'where':{'id':_0x36f8a8[_0xb364('0x43')]['id']}},_0x38f531={};_0x38f531['model']=_[_0xb364('0x31')](db[_0xb364('0x2a')][_0xb364('0x2b')]);_0x38f531[_0xb364('0x30')]=_['keys'](_0x36f8a8['query']);_0x38f531[_0xb364('0x39')]=_[_0xb364('0x44')](_0x38f531[_0xb364('0x2f')],_0x38f531[_0xb364('0x30')]);_0x506f2a[_0xb364('0x32')]=_[_0xb364('0x44')](_0x38f531[_0xb364('0x2f')],qs[_0xb364('0x33')](_0x36f8a8[_0xb364('0x30')][_0xb364('0x33')]));_0x506f2a['attributes']=_0x506f2a[_0xb364('0x32')][_0xb364('0x34')]?_0x506f2a['attributes']:_0x38f531[_0xb364('0x2f')];if(_0x36f8a8[_0xb364('0x30')][_0xb364('0x3e')]){_0x506f2a['include']=[{'all':!![]}];}_0x506f2a=_[_0xb364('0x3c')]({},_0x506f2a,_0x36f8a8[_0xb364('0x3d')]);return db[_0xb364('0x2a')]['find'](_0x506f2a)[_0xb364('0x23')](handleEntityNotFound(_0xc92619,null))[_0xb364('0x23')](respondWithResult(_0xc92619,null))[_0xb364('0x42')](handleError(_0xc92619,null));};exports[_0xb364('0x45')]=function(_0x2fd770,_0x3754b6){return db['ZendeskConfiguration']['create'](_0x2fd770[_0xb364('0x46')],{})[_0xb364('0x23')](respondWithResult(_0x3754b6,0xc9))[_0xb364('0x42')](handleError(_0x3754b6,null));};exports['update']=function(_0xfedeb,_0x36a00e){if(_0xfedeb[_0xb364('0x46')]['id']){delete _0xfedeb[_0xb364('0x46')]['id'];}return db[_0xb364('0x2a')][_0xb364('0x47')]({'where':{'id':_0xfedeb['params']['id']}})[_0xb364('0x23')](handleEntityNotFound(_0x36a00e,null))['then'](saveUpdates(_0xfedeb[_0xb364('0x46')],null))[_0xb364('0x23')](respondWithResult(_0x36a00e,null))['catch'](handleError(_0x36a00e,null));};exports[_0xb364('0x24')]=function(_0x293904,_0x495307){return db[_0xb364('0x2a')]['find']({'where':{'id':_0x293904['params']['id']}})['then'](handleEntityNotFound(_0x495307,null))[_0xb364('0x23')](removeEntity(_0x495307,null))['catch'](handleError(_0x495307,null));};exports['getFields']=function(_0x1b9070,_0x25f02a,_0x36fd0f){var _0x10a5f5={};var _0x50e245={};var _0x462e34;var _0x4130e7;return db[_0xb364('0x2a')][_0xb364('0x48')]({'where':{'id':_0x1b9070[_0xb364('0x43')]['id']}})['then'](handleEntityNotFound(_0x25f02a,null))[_0xb364('0x23')](function(_0x239891){if(_0x239891){_0x462e34=_0x239891;_0x50e245[_0xb364('0x2f')]=_[_0xb364('0x31')](db[_0xb364('0x49')]['rawAttributes']);_0x50e245[_0xb364('0x30')]=_[_0xb364('0x31')](_0x1b9070[_0xb364('0x30')]);_0x50e245[_0xb364('0x39')]=_[_0xb364('0x44')](_0x50e245['model'],_0x50e245[_0xb364('0x30')]);_0x10a5f5['attributes']=_[_0xb364('0x44')](_0x50e245['model'],qs[_0xb364('0x33')](_0x1b9070[_0xb364('0x30')][_0xb364('0x33')]));_0x10a5f5[_0xb364('0x32')]=_0x10a5f5[_0xb364('0x32')][_0xb364('0x34')]?_0x10a5f5[_0xb364('0x32')]:_0x50e245['model'];_0x10a5f5[_0xb364('0x36')]=qs[_0xb364('0x37')](_0x1b9070[_0xb364('0x30')][_0xb364('0x37')]);_0x10a5f5[_0xb364('0x3b')]=qs[_0xb364('0x39')](_['pick'](_0x1b9070[_0xb364('0x30')],_0x50e245[_0xb364('0x39')]));if(_0x1b9070[_0xb364('0x30')]['filter']){_0x10a5f5[_0xb364('0x3b')]=_['merge'](_0x10a5f5[_0xb364('0x3b')],{'$or':_[_0xb364('0x29')](_0x10a5f5[_0xb364('0x32')],function(_0x419c47){var _0x247ba0={};_0x247ba0[_0x419c47]={'$like':'%'+_0x1b9070['query'][_0xb364('0x3a')]+'%'};return _0x247ba0;})});}_0x10a5f5=_[_0xb364('0x3c')]({},_0x10a5f5,_0x1b9070[_0xb364('0x3d')]);return _0x462e34[_0xb364('0x4a')](_0x10a5f5);}})['then'](function(_0x323072){if(_0x323072){_0x4130e7=_0x323072[_0xb364('0x34')];if(!_0x1b9070[_0xb364('0x30')][_0xb364('0x35')]('nolimit')){_0x10a5f5['limit']=qs[_0xb364('0x1b')](_0x1b9070[_0xb364('0x30')]['limit']);_0x10a5f5[_0xb364('0x19')]=qs['offset'](_0x1b9070['query']['offset']);}return _0x462e34[_0xb364('0x4a')](_0x10a5f5);}})['then'](function(_0x454d38){if(_0x454d38){return _0x454d38?{'count':_0x4130e7,'rows':_0x454d38}:null;}})[_0xb364('0x23')](respondWithResult(_0x25f02a,null))[_0xb364('0x42')](handleError(_0x25f02a,null));};exports[_0xb364('0x4b')]=function(_0x58d1a4,_0x34232e,_0x26e156){var _0x5114c3={};var _0x85c33d={};var _0x1b0f5d;var _0x5ce280;return db[_0xb364('0x2a')][_0xb364('0x48')]({'where':{'id':_0x58d1a4[_0xb364('0x43')]['id']}})[_0xb364('0x23')](handleEntityNotFound(_0x34232e,null))[_0xb364('0x23')](function(_0x1a5fb){if(_0x1a5fb){_0x1b0f5d=_0x1a5fb;_0x85c33d[_0xb364('0x2f')]=_[_0xb364('0x31')](db['ZendeskField'][_0xb364('0x2b')]);_0x85c33d[_0xb364('0x30')]=_[_0xb364('0x31')](_0x58d1a4[_0xb364('0x30')]);_0x85c33d[_0xb364('0x39')]=_[_0xb364('0x44')](_0x85c33d[_0xb364('0x2f')],_0x85c33d[_0xb364('0x30')]);_0x5114c3[_0xb364('0x32')]=_[_0xb364('0x44')](_0x85c33d[_0xb364('0x2f')],qs[_0xb364('0x33')](_0x58d1a4[_0xb364('0x30')]['fields']));_0x5114c3[_0xb364('0x32')]=_0x5114c3['attributes'][_0xb364('0x34')]?_0x5114c3[_0xb364('0x32')]:_0x85c33d[_0xb364('0x2f')];_0x5114c3[_0xb364('0x36')]=qs[_0xb364('0x37')](_0x58d1a4[_0xb364('0x30')]['sort']);_0x5114c3[_0xb364('0x3b')]=qs['filters'](_[_0xb364('0x38')](_0x58d1a4[_0xb364('0x30')],_0x85c33d[_0xb364('0x39')]));if(_0x58d1a4[_0xb364('0x30')]['filter']){_0x5114c3[_0xb364('0x3b')]=_[_0xb364('0x3c')](_0x5114c3[_0xb364('0x3b')],{'$or':_[_0xb364('0x29')](_0x5114c3[_0xb364('0x32')],function(_0x4cbb92){var _0x3911f7={};_0x3911f7[_0x4cbb92]={'$like':'%'+_0x58d1a4[_0xb364('0x30')][_0xb364('0x3a')]+'%'};return _0x3911f7;})});}_0x5114c3=_[_0xb364('0x3c')]({},_0x5114c3,_0x58d1a4[_0xb364('0x3d')]);return _0x1b0f5d[_0xb364('0x4b')](_0x5114c3);}})['then'](function(_0x2e87bc){if(_0x2e87bc){_0x5ce280=_0x2e87bc[_0xb364('0x34')];if(!_0x58d1a4[_0xb364('0x30')][_0xb364('0x35')](_0xb364('0x4c'))){_0x5114c3[_0xb364('0x1b')]=qs[_0xb364('0x1b')](_0x58d1a4['query'][_0xb364('0x1b')]);_0x5114c3[_0xb364('0x19')]=qs['offset'](_0x58d1a4[_0xb364('0x30')][_0xb364('0x19')]);}return _0x1b0f5d[_0xb364('0x4b')](_0x5114c3);}})[_0xb364('0x23')](function(_0x3367ea){if(_0x3367ea){return _0x3367ea?{'count':_0x5ce280,'rows':_0x3367ea}:null;}})['then'](respondWithResult(_0x34232e,null))[_0xb364('0x42')](handleError(_0x34232e,null));};exports[_0xb364('0x4d')]=function(_0x4cf4ab,_0x47b035,_0x3adf37){var _0xa4eb34={};var _0x1c3257={};var _0x293a11;var _0x5a067b;return db[_0xb364('0x2a')][_0xb364('0x48')]({'where':{'id':_0x4cf4ab['params']['id']}})[_0xb364('0x23')](handleEntityNotFound(_0x47b035,null))[_0xb364('0x23')](function(_0x51ea1e){if(_0x51ea1e){_0x293a11=_0x51ea1e;_0x1c3257[_0xb364('0x2f')]=_[_0xb364('0x31')](db[_0xb364('0x49')][_0xb364('0x2b')]);_0x1c3257[_0xb364('0x30')]=_['keys'](_0x4cf4ab[_0xb364('0x30')]);_0x1c3257['filters']=_['intersection'](_0x1c3257[_0xb364('0x2f')],_0x1c3257[_0xb364('0x30')]);_0xa4eb34['attributes']=_[_0xb364('0x44')](_0x1c3257[_0xb364('0x2f')],qs[_0xb364('0x33')](_0x4cf4ab[_0xb364('0x30')]['fields']));_0xa4eb34[_0xb364('0x32')]=_0xa4eb34[_0xb364('0x32')][_0xb364('0x34')]?_0xa4eb34['attributes']:_0x1c3257['model'];_0xa4eb34[_0xb364('0x36')]=qs[_0xb364('0x37')](_0x4cf4ab[_0xb364('0x30')][_0xb364('0x37')]);_0xa4eb34['where']=qs[_0xb364('0x39')](_[_0xb364('0x38')](_0x4cf4ab[_0xb364('0x30')],_0x1c3257[_0xb364('0x39')]));if(_0x4cf4ab[_0xb364('0x30')]['filter']){_0xa4eb34['where']=_[_0xb364('0x3c')](_0xa4eb34[_0xb364('0x3b')],{'$or':_[_0xb364('0x29')](_0xa4eb34[_0xb364('0x32')],function(_0x277e54){var _0x11f04e={};_0x11f04e[_0x277e54]={'$like':'%'+_0x4cf4ab[_0xb364('0x30')]['filter']+'%'};return _0x11f04e;})});}_0xa4eb34=_['merge']({},_0xa4eb34,_0x4cf4ab['options']);return _0x293a11[_0xb364('0x4d')](_0xa4eb34);}})['then'](function(_0x659ae8){if(_0x659ae8){_0x5a067b=_0x659ae8[_0xb364('0x34')];if(!_0x4cf4ab[_0xb364('0x30')][_0xb364('0x35')](_0xb364('0x4c'))){_0xa4eb34[_0xb364('0x1b')]=qs[_0xb364('0x1b')](_0x4cf4ab[_0xb364('0x30')][_0xb364('0x1b')]);_0xa4eb34[_0xb364('0x19')]=qs[_0xb364('0x19')](_0x4cf4ab[_0xb364('0x30')][_0xb364('0x19')]);}return _0x293a11[_0xb364('0x4d')](_0xa4eb34);}})[_0xb364('0x23')](function(_0x25554c){if(_0x25554c){return _0x25554c?{'count':_0x5a067b,'rows':_0x25554c}:null;}})[_0xb364('0x23')](respondWithResult(_0x47b035,null))[_0xb364('0x42')](handleError(_0x47b035,null));};exports[_0xb364('0x4e')]=function(_0x37009f,_0x174532,_0x45ccf8){var _0x4524f9={};var _0x108302={};var _0x14671e;var _0x11fc94;return db[_0xb364('0x2a')][_0xb364('0x48')]({'where':{'id':_0x37009f[_0xb364('0x43')]['id']}})[_0xb364('0x23')](handleEntityNotFound(_0x174532,null))[_0xb364('0x23')](function(_0x2a4a3d){if(_0x2a4a3d){_0x14671e=_0x2a4a3d;_0x108302[_0xb364('0x2f')]=_[_0xb364('0x31')](db[_0xb364('0x4f')][_0xb364('0x2b')]);_0x108302[_0xb364('0x30')]=_[_0xb364('0x31')](_0x37009f[_0xb364('0x30')]);_0x108302['filters']=_[_0xb364('0x44')](_0x108302[_0xb364('0x2f')],_0x108302[_0xb364('0x30')]);_0x4524f9[_0xb364('0x32')]=_['intersection'](_0x108302[_0xb364('0x2f')],qs[_0xb364('0x33')](_0x37009f['query']['fields']));_0x4524f9[_0xb364('0x32')]=_0x4524f9[_0xb364('0x32')][_0xb364('0x34')]?_0x4524f9['attributes']:_0x108302[_0xb364('0x2f')];_0x4524f9[_0xb364('0x36')]=qs['sort'](_0x37009f[_0xb364('0x30')][_0xb364('0x37')]);_0x4524f9[_0xb364('0x3b')]=qs['filters'](_[_0xb364('0x38')](_0x37009f[_0xb364('0x30')],_0x108302['filters']));if(_0x37009f[_0xb364('0x30')][_0xb364('0x3a')]){_0x4524f9[_0xb364('0x3b')]=_['merge'](_0x4524f9[_0xb364('0x3b')],{'$or':_[_0xb364('0x29')](_0x4524f9[_0xb364('0x32')],function(_0x5d2ee4){var _0x427bba={};_0x427bba[_0x5d2ee4]={'$like':'%'+_0x37009f['query'][_0xb364('0x3a')]+'%'};return _0x427bba;})});}_0x4524f9=_['merge']({},_0x4524f9,_0x37009f[_0xb364('0x3d')]);return _0x14671e['getTags'](_0x4524f9);}})[_0xb364('0x23')](function(_0x525877){if(_0x525877){_0x11fc94=_0x525877['length'];if(!_0x37009f[_0xb364('0x30')][_0xb364('0x35')](_0xb364('0x4c'))){_0x4524f9['limit']=qs[_0xb364('0x1b')](_0x37009f[_0xb364('0x30')][_0xb364('0x1b')]);_0x4524f9[_0xb364('0x19')]=qs[_0xb364('0x19')](_0x37009f['query']['offset']);}return _0x14671e[_0xb364('0x4e')](_0x4524f9);}})[_0xb364('0x23')](function(_0x41d104){if(_0x41d104){return _0x41d104?{'count':_0x11fc94,'rows':_0x41d104}:null;}})[_0xb364('0x23')](respondWithResult(_0x174532,null))[_0xb364('0x42')](handleError(_0x174532,null));};exports[_0xb364('0x50')]=function(_0x1a95b2,_0x82ead1,_0x3f1be8){if(_0x1a95b2[_0xb364('0x46')]['id']){delete _0x1a95b2[_0xb364('0x46')]['id'];}return db[_0xb364('0x2a')][_0xb364('0x48')]({'where':{'id':_0x1a95b2[_0xb364('0x43')]['id']}})[_0xb364('0x23')](handleEntityNotFound(_0x82ead1,null))[_0xb364('0x23')](function(_0x4e6e01){if(_0x4e6e01){return _0x4e6e01[_0xb364('0x50')](_0x1a95b2['body'][_0xb364('0x51')]||[]);}return null;})['then'](respondWithResult(_0x82ead1,null))['catch'](handleError(_0x82ead1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaebd=['moment','bluebird','request-promise','rimraf','../../config/environment','./intZendeskConfiguration.attributes','exports','define','ZendeskConfiguration','lodash','../../config/logger','api'];(function(_0x2cd6c9,_0xe6598){var _0x11ad0f=function(_0x1adf72){while(--_0x1adf72){_0x2cd6c9['push'](_0x2cd6c9['shift']());}};_0x11ad0f(++_0xe6598);}(_0xaebd,0x1e9));var _0xdaeb=function(_0xd328b1,_0x6306fd){_0xd328b1=_0xd328b1-0x0;var _0x11b7e6=_0xaebd[_0xd328b1];return _0x11b7e6;};'use strict';var _=require(_0xdaeb('0x0'));var util=require('util');var logger=require(_0xdaeb('0x1'))(_0xdaeb('0x2'));var moment=require(_0xdaeb('0x3'));var BPromise=require(_0xdaeb('0x4'));var rp=require(_0xdaeb('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdaeb('0x6'));var config=require(_0xdaeb('0x7'));var attributes=require(_0xdaeb('0x8'));module[_0xdaeb('0x9')]=function(_0xee94f9,_0x4b7255){return _0xee94f9[_0xdaeb('0xa')](_0xdaeb('0xb'),attributes,{'tableName':'int_zendesk_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8e3f=['request-promise','rimraf','../../config/environment','exports','define','int_zendesk_configurations','lodash','util','../../config/logger','moment','bluebird'];(function(_0x3f64cc,_0x434cab){var _0x5a728d=function(_0x10ea28){while(--_0x10ea28){_0x3f64cc['push'](_0x3f64cc['shift']());}};_0x5a728d(++_0x434cab);}(_0x8e3f,0xc1));var _0xf8e3=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x8e3f[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0xf8e3('0x0'));var util=require(_0xf8e3('0x1'));var logger=require(_0xf8e3('0x2'))('api');var moment=require(_0xf8e3('0x3'));var BPromise=require(_0xf8e3('0x4'));var rp=require(_0xf8e3('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf8e3('0x6'));var config=require(_0xf8e3('0x7'));var attributes=require('./intZendeskConfiguration.attributes');module[_0xf8e3('0x8')]=function(_0xb21f8d,_0x2621c5){return _0xb21f8d[_0xf8e3('0x9')]('ZendeskConfiguration',attributes,{'tableName':_0xf8e3('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc53=['then','request\x20sent','stringify','error','code','ZendeskConfiguration,\x20%s,\x20%s','message','info','lodash','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0x7c9fba,_0x10b015){var _0x5cceed=function(_0x4ae29a){while(--_0x4ae29a){_0x7c9fba['push'](_0x7c9fba['shift']());}};_0x5cceed(++_0x10b015);}(_0xfc53,0xff));var _0x3fc5=function(_0x39f2d5,_0x38cc5d){_0x39f2d5=_0x39f2d5-0x0;var _0x425d3b=_0xfc53[_0x39f2d5];return _0x425d3b;};'use strict';var _=require(_0x3fc5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x3fc5('0x1'));var fs=require('fs');var Redis=require(_0x3fc5('0x2'));var db=require(_0x3fc5('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x3fc5('0x4'))(_0x3fc5('0x5'));var config=require(_0x3fc5('0x6'));var jayson=require(_0x3fc5('0x7'));var client=jayson[_0x3fc5('0x8')][_0x3fc5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3731cb,_0x4c125c,_0x568062){return new BPromise(function(_0xb8d348,_0x26d844){return client[_0x3fc5('0xa')](_0x3731cb,_0x568062)[_0x3fc5('0xb')](function(_0x561ae0){logger['info']('ZendeskConfiguration,\x20%s,\x20%s',_0x4c125c,_0x3fc5('0xc'));logger['debug']('ZendeskConfiguration,\x20%s,\x20%s,\x20%s',_0x4c125c,_0x3fc5('0xc'),JSON[_0x3fc5('0xd')](_0x561ae0));if(_0x561ae0[_0x3fc5('0xe')]){if(_0x561ae0[_0x3fc5('0xe')][_0x3fc5('0xf')]===0x1f4){logger[_0x3fc5('0xe')](_0x3fc5('0x10'),_0x4c125c,_0x561ae0[_0x3fc5('0xe')][_0x3fc5('0x11')]);return _0x26d844(_0x561ae0[_0x3fc5('0xe')][_0x3fc5('0x11')]);}logger[_0x3fc5('0xe')](_0x3fc5('0x10'),_0x4c125c,_0x561ae0[_0x3fc5('0xe')][_0x3fc5('0x11')]);return _0xb8d348(_0x561ae0[_0x3fc5('0xe')][_0x3fc5('0x11')]);}else{logger[_0x3fc5('0x12')](_0x3fc5('0x10'),_0x4c125c,_0x3fc5('0xc'));_0xb8d348(_0x561ae0['result'][_0x3fc5('0x11')]);}})['catch'](function(_0x5beb3f){logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x4c125c,_0x5beb3f);_0x26d844(_0x5beb3f);});});}
\ No newline at end of file
+var _0x500e=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request','then','info','debug','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','ZendeskConfiguration,\x20%s,\x20%s','message','request\x20sent','result','catch','lodash','util','bluebird'];(function(_0x54df10,_0x596791){var _0x33255f=function(_0x512681){while(--_0x512681){_0x54df10['push'](_0x54df10['shift']());}};_0x33255f(++_0x596791);}(_0x500e,0x1dd));var _0xe500=function(_0x12bcf7,_0xc11103){_0x12bcf7=_0x12bcf7-0x0;var _0x2825a=_0x500e[_0x12bcf7];return _0x2825a;};'use strict';var _=require(_0xe500('0x0'));var util=require(_0xe500('0x1'));var moment=require('moment');var BPromise=require(_0xe500('0x2'));var rs=require(_0xe500('0x3'));var fs=require('fs');var Redis=require(_0xe500('0x4'));var db=require(_0xe500('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe500('0x6'))(_0xe500('0x7'));var config=require('../../config/environment');var jayson=require(_0xe500('0x8'));var client=jayson[_0xe500('0x9')][_0xe500('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x94d48f,_0x3eb49f,_0x33ae92){return new BPromise(function(_0x175abf,_0x38bf68){return client[_0xe500('0xb')](_0x94d48f,_0x33ae92)[_0xe500('0xc')](function(_0x18de45){logger[_0xe500('0xd')]('ZendeskConfiguration,\x20%s,\x20%s',_0x3eb49f,'request\x20sent');logger[_0xe500('0xe')](_0xe500('0xf'),_0x3eb49f,'request\x20sent',JSON[_0xe500('0x10')](_0x18de45));if(_0x18de45[_0xe500('0x11')]){if(_0x18de45['error'][_0xe500('0x12')]===0x1f4){logger[_0xe500('0x11')](_0xe500('0x13'),_0x3eb49f,_0x18de45[_0xe500('0x11')]['message']);return _0x38bf68(_0x18de45['error']['message']);}logger['error'](_0xe500('0x13'),_0x3eb49f,_0x18de45[_0xe500('0x11')][_0xe500('0x14')]);return _0x175abf(_0x18de45[_0xe500('0x11')][_0xe500('0x14')]);}else{logger[_0xe500('0xd')](_0xe500('0x13'),_0x3eb49f,_0xe500('0x15'));_0x175abf(_0x18de45[_0xe500('0x16')][_0xe500('0x14')]);}})[_0xe500('0x17')](function(_0x45a959){logger[_0xe500('0x11')](_0xe500('0x13'),_0x3eb49f,_0x45a959);_0x38bf68(_0x45a959);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd2e=['./intZendeskField.controller','get','isAuthenticated','/:id','post','create','put','destroy','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x1a0c59,_0x3b4dcc){var _0xed67c9=function(_0x247698){while(--_0x247698){_0x1a0c59['push'](_0x1a0c59['shift']());}};_0xed67c9(++_0x3b4dcc);}(_0xfd2e,0x125));var _0xefd2=function(_0xa16cd0,_0x449240){_0xa16cd0=_0xa16cd0-0x0;var _0x5821a0=_0xfd2e[_0xa16cd0];return _0x5821a0;};'use strict';var multer=require(_0xefd2('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xefd2('0x1'));var express=require(_0xefd2('0x2'));var router=express[_0xefd2('0x3')]();var fs_extra=require(_0xefd2('0x4'));var auth=require(_0xefd2('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xefd2('0x6'));var controller=require(_0xefd2('0x7'));router[_0xefd2('0x8')]('/',auth[_0xefd2('0x9')](),controller['index']);router[_0xefd2('0x8')](_0xefd2('0xa'),auth[_0xefd2('0x9')](),controller['show']);router[_0xefd2('0xb')]('/',auth[_0xefd2('0x9')](),controller[_0xefd2('0xc')]);router[_0xefd2('0xd')](_0xefd2('0xa'),auth[_0xefd2('0x9')](),controller['update']);router['delete'](_0xefd2('0xa'),auth[_0xefd2('0x9')](),controller[_0xefd2('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0x9085=['express','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0xfa6863,_0x3ae724){var _0x1fb967=function(_0x465dad){while(--_0x465dad){_0xfa6863['push'](_0xfa6863['shift']());}};_0x1fb967(++_0x3ae724);}(_0x9085,0xf3));var _0x5908=function(_0x346df7,_0x3404ad){_0x346df7=_0x346df7-0x0;var _0x504fd8=_0x9085[_0x346df7];return _0x504fd8;};'use strict';var multer=require(_0x5908('0x0'));var util=require(_0x5908('0x1'));var path=require(_0x5908('0x2'));var timeout=require(_0x5908('0x3'));var express=require(_0x5908('0x4'));var router=express['Router']();var fs_extra=require(_0x5908('0x5'));var auth=require(_0x5908('0x6'));var interaction=require(_0x5908('0x7'));var config=require('../../config/environment');var controller=require('./intZendeskField.controller');router[_0x5908('0x8')]('/',auth[_0x5908('0x9')](),controller[_0x5908('0xa')]);router['get'](_0x5908('0xb'),auth['isAuthenticated'](),controller[_0x5908('0xc')]);router[_0x5908('0xd')]('/',auth[_0x5908('0x9')](),controller[_0x5908('0xe')]);router[_0x5908('0xf')](_0x5908('0xb'),auth[_0x5908('0x9')](),controller['update']);router[_0x5908('0x10')](_0x5908('0xb'),auth[_0x5908('0x9')](),controller[_0x5908('0x11')]);module[_0x5908('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ceb=['keyValue','STRING','variable','BOOLEAN','sequelize','ENUM','string','customVariable'];(function(_0x5a5848,_0x24a5a8){var _0x5a35c2=function(_0x3089ed){while(--_0x3089ed){_0x5a5848['push'](_0x5a5848['shift']());}};_0x5a35c2(++_0x24a5a8);}(_0x4ceb,0x104));var _0xb4ce=function(_0x2bf141,_0x31eac7){_0x2bf141=_0x2bf141-0x0;var _0x48277b=_0x4ceb[_0x2bf141];return _0x48277b;};'use strict';var Sequelize=require(_0xb4ce('0x0'));module['exports']={'type':{'type':Sequelize[_0xb4ce('0x1')](_0xb4ce('0x2'),'variable',_0xb4ce('0x3'),_0xb4ce('0x4'),'picklist'),'defaultValue':_0xb4ce('0x2')},'content':{'type':Sequelize[_0xb4ce('0x5')]},'key':{'type':Sequelize[_0xb4ce('0x5')]},'keyType':{'type':Sequelize['ENUM'](_0xb4ce('0x2'),_0xb4ce('0x6'),_0xb4ce('0x3'))},'keyContent':{'type':Sequelize[_0xb4ce('0x5')]},'idField':{'type':Sequelize[_0xb4ce('0x5')]},'nameField':{'type':Sequelize[_0xb4ce('0x5')]},'customField':{'type':Sequelize[_0xb4ce('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x36ff=['sequelize','exports','string','variable','customVariable','keyValue','picklist','STRING','ENUM','BOOLEAN'];(function(_0x1486e6,_0x403e17){var _0x2f4a2a=function(_0x1692e4){while(--_0x1692e4){_0x1486e6['push'](_0x1486e6['shift']());}};_0x2f4a2a(++_0x403e17);}(_0x36ff,0x78));var _0xf36f=function(_0x4709c0,_0x3396c7){_0x4709c0=_0x4709c0-0x0;var _0x13348b=_0x36ff[_0x4709c0];return _0x13348b;};'use strict';var Sequelize=require(_0xf36f('0x0'));module[_0xf36f('0x1')]={'type':{'type':Sequelize['ENUM'](_0xf36f('0x2'),_0xf36f('0x3'),_0xf36f('0x4'),_0xf36f('0x5'),_0xf36f('0x6')),'defaultValue':'string'},'content':{'type':Sequelize[_0xf36f('0x7')]},'key':{'type':Sequelize[_0xf36f('0x7')]},'keyType':{'type':Sequelize[_0xf36f('0x8')](_0xf36f('0x2'),_0xf36f('0x3'),_0xf36f('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0xf36f('0x7')]},'nameField':{'type':Sequelize[_0xf36f('0x7')]},'customField':{'type':Sequelize[_0xf36f('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xf36f('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3572=['moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','Content-Range','update','then','destroy','sendStatus','error','stack','name','index','ZendeskField','rawAttributes','fieldName','type','map','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','includeAll','include','findAll','catch','params','keys','fields','options','create','body','find','eml-format','rimraf','fast-json-patch','request-promise'];(function(_0x5e1c18,_0x4350fe){var _0x44f9e6=function(_0x5ded27){while(--_0x5ded27){_0x5e1c18['push'](_0x5e1c18['shift']());}};_0x44f9e6(++_0x4350fe);}(_0x3572,0x8a));var _0x2357=function(_0x3a3d90,_0xb2924a){_0x3a3d90=_0x3a3d90-0x0;var _0x381da2=_0x3572[_0x3a3d90];return _0x381da2;};'use strict';var emlformat=require(_0x2357('0x0'));var rimraf=require(_0x2357('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2357('0x2'));var rp=require(_0x2357('0x3'));var moment=require(_0x2357('0x4'));var BPromise=require(_0x2357('0x5'));var Mustache=require(_0x2357('0x6'));var util=require(_0x2357('0x7'));var path=require(_0x2357('0x8'));var sox=require('sox');var csv=require(_0x2357('0x9'));var ejs=require(_0x2357('0xa'));var fs=require('fs');var fs_extra=require(_0x2357('0xb'));var _=require(_0x2357('0xc'));var squel=require(_0x2357('0xd'));var crypto=require(_0x2357('0xe'));var jsforce=require(_0x2357('0xf'));var deskjs=require(_0x2357('0x10'));var toCsv=require(_0x2357('0x9'));var querystring=require(_0x2357('0x11'));var Papa=require(_0x2357('0x12'));var Redis=require(_0x2357('0x13'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2357('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2357('0x15'))('api');var utils=require(_0x2357('0x16'));var config=require(_0x2357('0x17'));var licenseUtil=require(_0x2357('0x18'));var db=require(_0x2357('0x19'))['db'];function respondWithStatusCode(_0x3bf98a,_0x34e147){_0x34e147=_0x34e147||0xcc;return function(_0x20e9e3){if(_0x20e9e3){return _0x3bf98a['sendStatus'](_0x34e147);}return _0x3bf98a[_0x2357('0x1a')](_0x34e147)['end']();};}function respondWithResult(_0x45b6e4,_0x308a1c){_0x308a1c=_0x308a1c||0xc8;return function(_0x2a322d){if(_0x2a322d){return _0x45b6e4[_0x2357('0x1a')](_0x308a1c)[_0x2357('0x1b')](_0x2a322d);}};}function respondWithFilteredResult(_0x121989,_0x3f7a03){return function(_0x11b01b){if(_0x11b01b){var _0x3e1acf=typeof _0x3f7a03[_0x2357('0x1c')]===_0x2357('0x1d')&&typeof _0x3f7a03['limit']==='undefined';var _0x4a05c3=_0x11b01b[_0x2357('0x1e')];var _0x10600e=_0x3e1acf?0x0:_0x3f7a03[_0x2357('0x1c')];var _0x51b6fb=_0x3e1acf?_0x11b01b['count']:_0x3f7a03[_0x2357('0x1c')]+_0x3f7a03[_0x2357('0x1f')];var _0x442d8a;if(_0x51b6fb>=_0x4a05c3){_0x51b6fb=_0x4a05c3;_0x442d8a=0xc8;}else{_0x442d8a=0xce;}_0x121989[_0x2357('0x1a')](_0x442d8a);return _0x121989['set'](_0x2357('0x20'),_0x10600e+'-'+_0x51b6fb+'/'+_0x4a05c3)[_0x2357('0x1b')](_0x11b01b);}return null;};}function patchUpdates(_0x1e8a49){return function(_0x432c49){try{jsonpatch['apply'](_0x432c49,_0x1e8a49,!![]);}catch(_0x38e3d9){return BPromise['reject'](_0x38e3d9);}return _0x432c49['save']();};}function saveUpdates(_0x4d1030,_0x4d1249){return function(_0x387490){if(_0x387490){return _0x387490[_0x2357('0x21')](_0x4d1030)[_0x2357('0x22')](function(_0x45cf9c){return _0x45cf9c;});}return null;};}function removeEntity(_0x11de1,_0x1f87c8){return function(_0x27f41a){if(_0x27f41a){return _0x27f41a[_0x2357('0x23')]()[_0x2357('0x22')](function(){_0x11de1['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d1182,_0x1dee63){return function(_0x3fd65c){if(!_0x3fd65c){_0x1d1182[_0x2357('0x24')](0x194);}return _0x3fd65c;};}function handleError(_0x34a100,_0xb61dc1){_0xb61dc1=_0xb61dc1||0x1f4;return function(_0x2f03a4){logger[_0x2357('0x25')](_0x2f03a4[_0x2357('0x26')]);if(_0x2f03a4['name']){delete _0x2f03a4[_0x2357('0x27')];}_0x34a100[_0x2357('0x1a')](_0xb61dc1)['send'](_0x2f03a4);};}exports[_0x2357('0x28')]=function(_0x570849,_0x312aa1){var _0x2fa58d={},_0x55a2a8={},_0x993fa9={'count':0x0,'rows':[]};var _0x149376=_['map'](db[_0x2357('0x29')][_0x2357('0x2a')],function(_0x1def21){return{'name':_0x1def21[_0x2357('0x2b')],'type':_0x1def21[_0x2357('0x2c')]['key']};});_0x55a2a8['model']=_[_0x2357('0x2d')](_0x149376,_0x2357('0x27'));_0x55a2a8['query']=_['keys'](_0x570849[_0x2357('0x2e')]);_0x55a2a8[_0x2357('0x2f')]=_[_0x2357('0x30')](_0x55a2a8[_0x2357('0x31')],_0x55a2a8['query']);_0x2fa58d[_0x2357('0x32')]=_[_0x2357('0x30')](_0x55a2a8[_0x2357('0x31')],qs['fields'](_0x570849['query']['fields']));_0x2fa58d[_0x2357('0x32')]=_0x2fa58d[_0x2357('0x32')][_0x2357('0x33')]?_0x2fa58d[_0x2357('0x32')]:_0x55a2a8[_0x2357('0x31')];if(!_0x570849['query'][_0x2357('0x34')](_0x2357('0x35'))){_0x2fa58d[_0x2357('0x1f')]=qs[_0x2357('0x1f')](_0x570849[_0x2357('0x2e')]['limit']);_0x2fa58d[_0x2357('0x1c')]=qs[_0x2357('0x1c')](_0x570849[_0x2357('0x2e')][_0x2357('0x1c')]);}_0x2fa58d[_0x2357('0x36')]=qs['sort'](_0x570849['query'][_0x2357('0x37')]);_0x2fa58d['where']=qs[_0x2357('0x2f')](_[_0x2357('0x38')](_0x570849['query'],_0x55a2a8[_0x2357('0x2f')]),_0x149376);if(_0x570849[_0x2357('0x2e')][_0x2357('0x39')]){_0x2fa58d[_0x2357('0x3a')]=_['merge'](_0x2fa58d[_0x2357('0x3a')],{'$or':_[_0x2357('0x2d')](_0x149376,function(_0x42a4a3){if(_0x42a4a3[_0x2357('0x2c')]!=='VIRTUAL'){var _0x232944={};_0x232944[_0x42a4a3[_0x2357('0x27')]]={'$like':'%'+_0x570849[_0x2357('0x2e')]['filter']+'%'};return _0x232944;}})});}_0x2fa58d=_[_0x2357('0x3b')]({},_0x2fa58d,_0x570849['options']);var _0x495bb1={'where':_0x2fa58d['where']};return db[_0x2357('0x29')][_0x2357('0x1e')](_0x495bb1)[_0x2357('0x22')](function(_0x42f2a8){_0x993fa9[_0x2357('0x1e')]=_0x42f2a8;if(_0x570849['query'][_0x2357('0x3c')]){_0x2fa58d[_0x2357('0x3d')]=[{'all':!![]}];}return db[_0x2357('0x29')][_0x2357('0x3e')](_0x2fa58d);})[_0x2357('0x22')](function(_0x2d4cd6){_0x993fa9['rows']=_0x2d4cd6;return _0x993fa9;})['then'](respondWithFilteredResult(_0x312aa1,_0x2fa58d))[_0x2357('0x3f')](handleError(_0x312aa1,null));};exports['show']=function(_0x5d2a26,_0x571ce3){var _0x4cfa68={'raw':!![],'where':{'id':_0x5d2a26[_0x2357('0x40')]['id']}},_0x53f892={};_0x53f892[_0x2357('0x31')]=_['keys'](db[_0x2357('0x29')][_0x2357('0x2a')]);_0x53f892[_0x2357('0x2e')]=_[_0x2357('0x41')](_0x5d2a26[_0x2357('0x2e')]);_0x53f892['filters']=_[_0x2357('0x30')](_0x53f892[_0x2357('0x31')],_0x53f892['query']);_0x4cfa68[_0x2357('0x32')]=_['intersection'](_0x53f892[_0x2357('0x31')],qs['fields'](_0x5d2a26[_0x2357('0x2e')][_0x2357('0x42')]));_0x4cfa68['attributes']=_0x4cfa68[_0x2357('0x32')][_0x2357('0x33')]?_0x4cfa68[_0x2357('0x32')]:_0x53f892['model'];if(_0x5d2a26[_0x2357('0x2e')][_0x2357('0x3c')]){_0x4cfa68[_0x2357('0x3d')]=[{'all':!![]}];}_0x4cfa68=_[_0x2357('0x3b')]({},_0x4cfa68,_0x5d2a26[_0x2357('0x43')]);return db[_0x2357('0x29')]['find'](_0x4cfa68)[_0x2357('0x22')](handleEntityNotFound(_0x571ce3,null))[_0x2357('0x22')](respondWithResult(_0x571ce3,null))[_0x2357('0x3f')](handleError(_0x571ce3,null));};exports[_0x2357('0x44')]=function(_0x102a87,_0xac8899){return db[_0x2357('0x29')][_0x2357('0x44')](_0x102a87[_0x2357('0x45')],{})[_0x2357('0x22')](respondWithResult(_0xac8899,0xc9))[_0x2357('0x3f')](handleError(_0xac8899,null));};exports[_0x2357('0x21')]=function(_0x24ac79,_0x708903){if(_0x24ac79[_0x2357('0x45')]['id']){delete _0x24ac79['body']['id'];}return db[_0x2357('0x29')][_0x2357('0x46')]({'where':{'id':_0x24ac79[_0x2357('0x40')]['id']}})[_0x2357('0x22')](handleEntityNotFound(_0x708903,null))[_0x2357('0x22')](saveUpdates(_0x24ac79['body'],null))[_0x2357('0x22')](respondWithResult(_0x708903,null))['catch'](handleError(_0x708903,null));};exports['destroy']=function(_0x2db04e,_0x2c0a3a){return db[_0x2357('0x29')][_0x2357('0x46')]({'where':{'id':_0x2db04e[_0x2357('0x40')]['id']}})[_0x2357('0x22')](handleEntityNotFound(_0x2c0a3a,null))['then'](removeEntity(_0x2c0a3a,null))['catch'](handleError(_0x2c0a3a,null));};
\ No newline at end of file
+var _0xa216=['keys','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','filter','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','intersection','include','create','body','find','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','then','destroy','sendStatus','error','stack','name','send','index','map','ZendeskField','rawAttributes','fieldName','type','model'];(function(_0x2be577,_0x4821cb){var _0x37b80=function(_0x456920){while(--_0x456920){_0x2be577['push'](_0x2be577['shift']());}};_0x37b80(++_0x4821cb);}(_0xa216,0xf4));var _0x6a21=function(_0x211219,_0x1c7e0d){_0x211219=_0x211219-0x0;var _0x2f39b1=_0xa216[_0x211219];return _0x2f39b1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6a21('0x0'));var zipdir=require(_0x6a21('0x1'));var jsonpatch=require(_0x6a21('0x2'));var rp=require(_0x6a21('0x3'));var moment=require(_0x6a21('0x4'));var BPromise=require(_0x6a21('0x5'));var Mustache=require(_0x6a21('0x6'));var util=require(_0x6a21('0x7'));var path=require(_0x6a21('0x8'));var sox=require('sox');var csv=require(_0x6a21('0x9'));var ejs=require(_0x6a21('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x6a21('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x6a21('0x9'));var querystring=require(_0x6a21('0xc'));var Papa=require(_0x6a21('0xd'));var Redis=require(_0x6a21('0xe'));var authService=require(_0x6a21('0xf'));var qs=require(_0x6a21('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6a21('0x11'));var logger=require(_0x6a21('0x12'))(_0x6a21('0x13'));var utils=require(_0x6a21('0x14'));var config=require(_0x6a21('0x15'));var licenseUtil=require(_0x6a21('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xabe87b,_0x850cd0){_0x850cd0=_0x850cd0||0xcc;return function(_0x4ffb65){if(_0x4ffb65){return _0xabe87b['sendStatus'](_0x850cd0);}return _0xabe87b[_0x6a21('0x17')](_0x850cd0)[_0x6a21('0x18')]();};}function respondWithResult(_0x1391df,_0x2d4ffc){_0x2d4ffc=_0x2d4ffc||0xc8;return function(_0x3b274a){if(_0x3b274a){return _0x1391df[_0x6a21('0x17')](_0x2d4ffc)[_0x6a21('0x19')](_0x3b274a);}};}function respondWithFilteredResult(_0x360e2e,_0x2448c8){return function(_0xf878f6){if(_0xf878f6){var _0x3fb700=typeof _0x2448c8[_0x6a21('0x1a')]===_0x6a21('0x1b')&&typeof _0x2448c8['limit']===_0x6a21('0x1b');var _0x3e21ca=_0xf878f6[_0x6a21('0x1c')];var _0xf55225=_0x3fb700?0x0:_0x2448c8[_0x6a21('0x1a')];var _0x37e3dd=_0x3fb700?_0xf878f6[_0x6a21('0x1c')]:_0x2448c8[_0x6a21('0x1a')]+_0x2448c8[_0x6a21('0x1d')];var _0xea53d;if(_0x37e3dd>=_0x3e21ca){_0x37e3dd=_0x3e21ca;_0xea53d=0xc8;}else{_0xea53d=0xce;}_0x360e2e[_0x6a21('0x17')](_0xea53d);return _0x360e2e['set'](_0x6a21('0x1e'),_0xf55225+'-'+_0x37e3dd+'/'+_0x3e21ca)[_0x6a21('0x19')](_0xf878f6);}return null;};}function patchUpdates(_0x201ed3){return function(_0x797587){try{jsonpatch[_0x6a21('0x1f')](_0x797587,_0x201ed3,!![]);}catch(_0x31c45d){return BPromise[_0x6a21('0x20')](_0x31c45d);}return _0x797587[_0x6a21('0x21')]();};}function saveUpdates(_0x15cfab,_0x1467b7){return function(_0x5da564){if(_0x5da564){return _0x5da564['update'](_0x15cfab)[_0x6a21('0x22')](function(_0x55e5df){return _0x55e5df;});}return null;};}function removeEntity(_0x4625ef,_0x2da595){return function(_0x325c38){if(_0x325c38){return _0x325c38[_0x6a21('0x23')]()[_0x6a21('0x22')](function(){_0x4625ef[_0x6a21('0x17')](0xcc)[_0x6a21('0x18')]();});}};}function handleEntityNotFound(_0x2d8dce,_0x3d69f9){return function(_0x3d445e){if(!_0x3d445e){_0x2d8dce[_0x6a21('0x24')](0x194);}return _0x3d445e;};}function handleError(_0x4e4e32,_0x419f3c){_0x419f3c=_0x419f3c||0x1f4;return function(_0x20b8b5){logger[_0x6a21('0x25')](_0x20b8b5[_0x6a21('0x26')]);if(_0x20b8b5[_0x6a21('0x27')]){delete _0x20b8b5[_0x6a21('0x27')];}_0x4e4e32[_0x6a21('0x17')](_0x419f3c)[_0x6a21('0x28')](_0x20b8b5);};}exports[_0x6a21('0x29')]=function(_0x2e886e,_0x1284cb){var _0x2f1ac0={},_0x8cc2ed={},_0x1014a9={'count':0x0,'rows':[]};var _0x185b29=_[_0x6a21('0x2a')](db[_0x6a21('0x2b')][_0x6a21('0x2c')],function(_0x42775d){return{'name':_0x42775d[_0x6a21('0x2d')],'type':_0x42775d[_0x6a21('0x2e')]['key']};});_0x8cc2ed[_0x6a21('0x2f')]=_['map'](_0x185b29,_0x6a21('0x27'));_0x8cc2ed['query']=_[_0x6a21('0x30')](_0x2e886e[_0x6a21('0x31')]);_0x8cc2ed['filters']=_['intersection'](_0x8cc2ed[_0x6a21('0x2f')],_0x8cc2ed['query']);_0x2f1ac0[_0x6a21('0x32')]=_['intersection'](_0x8cc2ed[_0x6a21('0x2f')],qs[_0x6a21('0x33')](_0x2e886e[_0x6a21('0x31')][_0x6a21('0x33')]));_0x2f1ac0['attributes']=_0x2f1ac0[_0x6a21('0x32')][_0x6a21('0x34')]?_0x2f1ac0[_0x6a21('0x32')]:_0x8cc2ed[_0x6a21('0x2f')];if(!_0x2e886e[_0x6a21('0x31')][_0x6a21('0x35')](_0x6a21('0x36'))){_0x2f1ac0['limit']=qs[_0x6a21('0x1d')](_0x2e886e[_0x6a21('0x31')][_0x6a21('0x1d')]);_0x2f1ac0[_0x6a21('0x1a')]=qs[_0x6a21('0x1a')](_0x2e886e[_0x6a21('0x31')][_0x6a21('0x1a')]);}_0x2f1ac0['order']=qs[_0x6a21('0x37')](_0x2e886e[_0x6a21('0x31')]['sort']);_0x2f1ac0[_0x6a21('0x38')]=qs['filters'](_[_0x6a21('0x39')](_0x2e886e[_0x6a21('0x31')],_0x8cc2ed[_0x6a21('0x3a')]),_0x185b29);if(_0x2e886e[_0x6a21('0x31')][_0x6a21('0x3b')]){_0x2f1ac0['where']=_['merge'](_0x2f1ac0['where'],{'$or':_[_0x6a21('0x2a')](_0x185b29,function(_0x445513){if(_0x445513['type']!==_0x6a21('0x3c')){var _0x1c06f6={};_0x1c06f6[_0x445513[_0x6a21('0x27')]]={'$like':'%'+_0x2e886e['query'][_0x6a21('0x3b')]+'%'};return _0x1c06f6;}})});}_0x2f1ac0=_['merge']({},_0x2f1ac0,_0x2e886e[_0x6a21('0x3d')]);var _0x3b7754={'where':_0x2f1ac0[_0x6a21('0x38')]};return db[_0x6a21('0x2b')][_0x6a21('0x1c')](_0x3b7754)[_0x6a21('0x22')](function(_0x1897b8){_0x1014a9[_0x6a21('0x1c')]=_0x1897b8;if(_0x2e886e['query'][_0x6a21('0x3e')]){_0x2f1ac0['include']=[{'all':!![]}];}return db[_0x6a21('0x2b')][_0x6a21('0x3f')](_0x2f1ac0);})[_0x6a21('0x22')](function(_0xece6c5){_0x1014a9[_0x6a21('0x40')]=_0xece6c5;return _0x1014a9;})['then'](respondWithFilteredResult(_0x1284cb,_0x2f1ac0))[_0x6a21('0x41')](handleError(_0x1284cb,null));};exports[_0x6a21('0x42')]=function(_0x319a64,_0x221cb6){var _0x2bd7e6={'raw':!![],'where':{'id':_0x319a64[_0x6a21('0x43')]['id']}},_0x24bfaa={};_0x24bfaa[_0x6a21('0x2f')]=_[_0x6a21('0x30')](db[_0x6a21('0x2b')][_0x6a21('0x2c')]);_0x24bfaa[_0x6a21('0x31')]=_['keys'](_0x319a64[_0x6a21('0x31')]);_0x24bfaa['filters']=_['intersection'](_0x24bfaa['model'],_0x24bfaa[_0x6a21('0x31')]);_0x2bd7e6[_0x6a21('0x32')]=_[_0x6a21('0x44')](_0x24bfaa['model'],qs[_0x6a21('0x33')](_0x319a64[_0x6a21('0x31')][_0x6a21('0x33')]));_0x2bd7e6[_0x6a21('0x32')]=_0x2bd7e6[_0x6a21('0x32')][_0x6a21('0x34')]?_0x2bd7e6[_0x6a21('0x32')]:_0x24bfaa['model'];if(_0x319a64['query'][_0x6a21('0x3e')]){_0x2bd7e6[_0x6a21('0x45')]=[{'all':!![]}];}_0x2bd7e6=_['merge']({},_0x2bd7e6,_0x319a64[_0x6a21('0x3d')]);return db[_0x6a21('0x2b')]['find'](_0x2bd7e6)[_0x6a21('0x22')](handleEntityNotFound(_0x221cb6,null))['then'](respondWithResult(_0x221cb6,null))[_0x6a21('0x41')](handleError(_0x221cb6,null));};exports[_0x6a21('0x46')]=function(_0x246004,_0x4cf5b1){return db[_0x6a21('0x2b')][_0x6a21('0x46')](_0x246004[_0x6a21('0x47')],{})[_0x6a21('0x22')](respondWithResult(_0x4cf5b1,0xc9))[_0x6a21('0x41')](handleError(_0x4cf5b1,null));};exports['update']=function(_0x538087,_0x4d3444){if(_0x538087[_0x6a21('0x47')]['id']){delete _0x538087[_0x6a21('0x47')]['id'];}return db['ZendeskField']['find']({'where':{'id':_0x538087[_0x6a21('0x43')]['id']}})[_0x6a21('0x22')](handleEntityNotFound(_0x4d3444,null))['then'](saveUpdates(_0x538087['body'],null))[_0x6a21('0x22')](respondWithResult(_0x4d3444,null))[_0x6a21('0x41')](handleError(_0x4d3444,null));};exports[_0x6a21('0x23')]=function(_0x2ea223,_0x75c1a){return db[_0x6a21('0x2b')][_0x6a21('0x48')]({'where':{'id':_0x2ea223[_0x6a21('0x43')]['id']}})[_0x6a21('0x22')](handleEntityNotFound(_0x75c1a,null))[_0x6a21('0x22')](removeEntity(_0x75c1a,null))[_0x6a21('0x41')](handleError(_0x75c1a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa961=['util','../../config/logger','api','moment','path','rimraf','../../config/environment','./intZendeskField.attributes','exports','define','ZendeskField','int_zendesk_fields','zendesk_unique_index','idField','FieldId','lodash'];(function(_0x298024,_0x4a0817){var _0xf3fac7=function(_0x301784){while(--_0x301784){_0x298024['push'](_0x298024['shift']());}};_0xf3fac7(++_0x4a0817);}(_0xa961,0xaf));var _0x1a96=function(_0x2faddb,_0xc18b78){_0x2faddb=_0x2faddb-0x0;var _0x273c05=_0xa961[_0x2faddb];return _0x273c05;};'use strict';var _=require(_0x1a96('0x0'));var util=require(_0x1a96('0x1'));var logger=require(_0x1a96('0x2'))(_0x1a96('0x3'));var moment=require(_0x1a96('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x1a96('0x5'));var rimraf=require(_0x1a96('0x6'));var config=require(_0x1a96('0x7'));var attributes=require(_0x1a96('0x8'));module[_0x1a96('0x9')]=function(_0x3d651e,_0x38be2f){return _0x3d651e[_0x1a96('0xa')](_0x1a96('0xb'),attributes,{'tableName':_0x1a96('0xc'),'paranoid':![],'indexes':[{'name':_0x1a96('0xd'),'fields':[_0x1a96('0xe'),_0x1a96('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x203a=['define','zendesk_unique_index','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./intZendeskField.attributes','exports'];(function(_0x4195dc,_0x3ec874){var _0x13281d=function(_0x18547f){while(--_0x18547f){_0x4195dc['push'](_0x4195dc['shift']());}};_0x13281d(++_0x3ec874);}(_0x203a,0x16e));var _0xa203=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x203a[_0x59ee6f];return _0x4c0979;};'use strict';var _=require(_0xa203('0x0'));var util=require(_0xa203('0x1'));var logger=require(_0xa203('0x2'))(_0xa203('0x3'));var moment=require(_0xa203('0x4'));var BPromise=require(_0xa203('0x5'));var rp=require(_0xa203('0x6'));var fs=require('fs');var path=require(_0xa203('0x7'));var rimraf=require(_0xa203('0x8'));var config=require('../../config/environment');var attributes=require(_0xa203('0x9'));module[_0xa203('0xa')]=function(_0x13aed6,_0x26a3ce){return _0x13aed6[_0xa203('0xb')]('ZendeskField',attributes,{'tableName':'int_zendesk_fields','paranoid':![],'indexes':[{'name':_0xa203('0xc'),'fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe550=['request\x20sent','debug','ZendeskField,\x20%s,\x20%s,\x20%s','error','code','ZendeskField,\x20%s,\x20%s','message','info','lodash','util','bluebird','ioredis','rpc','../../config/environment','jayson/promise','client','http','request','then'];(function(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0xe550,0xb3));var _0x0e55=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe550[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x0e55('0x0'));var util=require(_0x0e55('0x1'));var moment=require('moment');var BPromise=require(_0x0e55('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0e55('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x0e55('0x4'));var config=require(_0x0e55('0x5'));var jayson=require(_0x0e55('0x6'));var client=jayson[_0x0e55('0x7')][_0x0e55('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x58480d,_0x11c401,_0x29e779){return new BPromise(function(_0x172316,_0x17b396){return client[_0x0e55('0x9')](_0x58480d,_0x29e779)[_0x0e55('0xa')](function(_0x4549f8){logger['info']('ZendeskField,\x20%s,\x20%s',_0x11c401,_0x0e55('0xb'));logger[_0x0e55('0xc')](_0x0e55('0xd'),_0x11c401,_0x0e55('0xb'),JSON['stringify'](_0x4549f8));if(_0x4549f8[_0x0e55('0xe')]){if(_0x4549f8[_0x0e55('0xe')][_0x0e55('0xf')]===0x1f4){logger[_0x0e55('0xe')](_0x0e55('0x10'),_0x11c401,_0x4549f8[_0x0e55('0xe')][_0x0e55('0x11')]);return _0x17b396(_0x4549f8[_0x0e55('0xe')][_0x0e55('0x11')]);}logger[_0x0e55('0xe')](_0x0e55('0x10'),_0x11c401,_0x4549f8[_0x0e55('0xe')][_0x0e55('0x11')]);return _0x172316(_0x4549f8[_0x0e55('0xe')][_0x0e55('0x11')]);}else{logger[_0x0e55('0x12')](_0x0e55('0x10'),_0x11c401,_0x0e55('0xb'));_0x172316(_0x4549f8['result'][_0x0e55('0x11')]);}})['catch'](function(_0x391d93){logger['error'](_0x0e55('0x10'),_0x11c401,_0x391d93);_0x17b396(_0x391d93);});});}
\ No newline at end of file
+var _0xe64c=['../../config/logger','rpc','jayson/promise','client','http','then','ZendeskField,\x20%s,\x20%s','request\x20sent','error','message','info','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe64c,0x1d5));var _0xce64=function(_0x27c7b7,_0x3bdd75){_0x27c7b7=_0x27c7b7-0x0;var _0x4a8edf=_0xe64c[_0x27c7b7];return _0x4a8edf;};'use strict';var _=require(_0xce64('0x0'));var util=require(_0xce64('0x1'));var moment=require('moment');var BPromise=require(_0xce64('0x2'));var rs=require(_0xce64('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xce64('0x4'))['db'];var utils=require(_0xce64('0x5'));var logger=require(_0xce64('0x6'))(_0xce64('0x7'));var config=require('../../config/environment');var jayson=require(_0xce64('0x8'));var client=jayson[_0xce64('0x9')][_0xce64('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2878a9,_0x37fcc2,_0x32b2e0){return new BPromise(function(_0x55da74,_0x56f55e){return client['request'](_0x2878a9,_0x32b2e0)[_0xce64('0xb')](function(_0x28d08f){logger['info'](_0xce64('0xc'),_0x37fcc2,_0xce64('0xd'));logger['debug']('ZendeskField,\x20%s,\x20%s,\x20%s',_0x37fcc2,'request\x20sent',JSON['stringify'](_0x28d08f));if(_0x28d08f[_0xce64('0xe')]){if(_0x28d08f['error']['code']===0x1f4){logger[_0xce64('0xe')](_0xce64('0xc'),_0x37fcc2,_0x28d08f[_0xce64('0xe')][_0xce64('0xf')]);return _0x56f55e(_0x28d08f[_0xce64('0xe')][_0xce64('0xf')]);}logger['error'](_0xce64('0xc'),_0x37fcc2,_0x28d08f[_0xce64('0xe')][_0xce64('0xf')]);return _0x55da74(_0x28d08f[_0xce64('0xe')]['message']);}else{logger[_0xce64('0x10')]('ZendeskField,\x20%s,\x20%s',_0x37fcc2,_0xce64('0xd'));_0x55da74(_0x28d08f[_0xce64('0x11')][_0xce64('0xf')]);}})[_0xce64('0x12')](function(_0x4c79ac){logger[_0xce64('0xe')](_0xce64('0xc'),_0x37fcc2,_0x4c79ac);_0x56f55e(_0x4c79ac);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefde=['multer','express','fs-extra','../../components/auth/service','./intZohoAccount.controller','get','isAuthenticated','/:id','show','getConfigurations','getFields','post','create','addConfiguration','delete','destroy','exports'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xefde,0x143));var _0xeefd=function(_0x3568b7,_0x551261){_0x3568b7=_0x3568b7-0x0;var _0x1a95f6=_0xefde[_0x3568b7];return _0x1a95f6;};'use strict';var multer=require(_0xeefd('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xeefd('0x1'));var router=express['Router']();var fs_extra=require(_0xeefd('0x2'));var auth=require(_0xeefd('0x3'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xeefd('0x4'));router[_0xeefd('0x5')]('/',auth[_0xeefd('0x6')](),controller['index']);router[_0xeefd('0x5')](_0xeefd('0x7'),auth[_0xeefd('0x6')](),controller[_0xeefd('0x8')]);router[_0xeefd('0x5')]('/:id/configurations',auth[_0xeefd('0x6')](),controller[_0xeefd('0x9')]);router['get']('/:id/fields',auth[_0xeefd('0x6')](),controller[_0xeefd('0xa')]);router[_0xeefd('0xb')]('/',auth[_0xeefd('0x6')](),controller[_0xeefd('0xc')]);router[_0xeefd('0xb')]('/:id/configurations',auth['isAuthenticated'](),controller[_0xeefd('0xd')]);router['put'](_0xeefd('0x7'),auth['isAuthenticated'](),controller['update']);router[_0xeefd('0xe')](_0xeefd('0x7'),auth[_0xeefd('0x6')](),controller[_0xeefd('0xf')]);module[_0xeefd('0x10')]=router;
\ No newline at end of file
+var _0xafdb=['show','/:id/configurations','/:id/fields','getFields','post','create','addConfiguration','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoAccount.controller','isAuthenticated','index','get','/:id'];(function(_0x5c0773,_0x5ba61b){var _0x51f829=function(_0x4c7c9e){while(--_0x4c7c9e){_0x5c0773['push'](_0x5c0773['shift']());}};_0x51f829(++_0x5ba61b);}(_0xafdb,0x88));var _0xbafd=function(_0x166742,_0x55520c){_0x166742=_0x166742-0x0;var _0xb7814a=_0xafdb[_0x166742];return _0xb7814a;};'use strict';var multer=require(_0xbafd('0x0'));var util=require(_0xbafd('0x1'));var path=require(_0xbafd('0x2'));var timeout=require(_0xbafd('0x3'));var express=require(_0xbafd('0x4'));var router=express[_0xbafd('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xbafd('0x6'));var interaction=require(_0xbafd('0x7'));var config=require(_0xbafd('0x8'));var controller=require(_0xbafd('0x9'));router['get']('/',auth[_0xbafd('0xa')](),controller[_0xbafd('0xb')]);router[_0xbafd('0xc')](_0xbafd('0xd'),auth[_0xbafd('0xa')](),controller[_0xbafd('0xe')]);router[_0xbafd('0xc')](_0xbafd('0xf'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0xbafd('0xc')](_0xbafd('0x10'),auth[_0xbafd('0xa')](),controller[_0xbafd('0x11')]);router[_0xbafd('0x12')]('/',auth[_0xbafd('0xa')](),controller[_0xbafd('0x13')]);router[_0xbafd('0x12')](_0xbafd('0xf'),auth[_0xbafd('0xa')](),controller[_0xbafd('0x14')]);router['put'](_0xbafd('0xd'),auth[_0xbafd('0xa')](),controller[_0xbafd('0x15')]);router[_0xbafd('0x16')](_0xbafd('0xd'),auth[_0xbafd('0xa')](),controller[_0xbafd('0x17')]);module[_0xbafd('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['exports','STRING','sequelize'];(function(_0x31bc72,_0x2aef23){var _0x20cb43=function(_0x4666e8){while(--_0x4666e8){_0x31bc72['push'](_0x31bc72['shift']());}};_0x20cb43(++_0x2aef23);}(_0xaa88,0x137));var _0x8aa8=function(_0x5c4e16,_0x113035){_0x5c4e16=_0x5c4e16-0x0;var _0x36044a=_0xaa88[_0x5c4e16];return _0x36044a;};'use strict';var Sequelize=require(_0x8aa8('0x0'));module[_0x8aa8('0x1')]={'name':{'type':Sequelize[_0x8aa8('0x2')]},'description':{'type':Sequelize[_0x8aa8('0x2')]},'host':{'type':Sequelize['STRING']},'zone':{'type':Sequelize[_0x8aa8('0x2')]},'clientId':{'type':Sequelize[_0x8aa8('0x2')]},'clientSecret':{'type':Sequelize[_0x8aa8('0x2')]},'serverUrl':{'type':Sequelize[_0x8aa8('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0x8aa8('0x2')]},'refreshToken':{'type':Sequelize[_0x8aa8('0x2')]}};
\ No newline at end of file
+var _0x54ef=['STRING','sequelize','exports'];(function(_0x1ca4cc,_0x402c23){var _0x108010=function(_0x4c5082){while(--_0x4c5082){_0x1ca4cc['push'](_0x1ca4cc['shift']());}};_0x108010(++_0x402c23);}(_0x54ef,0x112));var _0xf54e=function(_0x58e0a4,_0x1c49e4){_0x58e0a4=_0x58e0a4-0x0;var _0xb6225d=_0x54ef[_0x58e0a4];return _0xb6225d;};'use strict';var Sequelize=require(_0xf54e('0x0'));module[_0xf54e('0x1')]={'name':{'type':Sequelize[_0xf54e('0x2')]},'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0xf54e('0x2')]},'zone':{'type':Sequelize[_0xf54e('0x2')]},'clientId':{'type':Sequelize[_0xf54e('0x2')]},'clientSecret':{'type':Sequelize[_0xf54e('0x2')]},'serverUrl':{'type':Sequelize[_0xf54e('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0xf54e('0x2')]},'refreshToken':{'type':Sequelize[_0xf54e('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31f1=['sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','then','destroy','error','stack','name','send','index','fieldName','key','map','query','filters','intersection','model','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','ZohoAccount','rows','show','params','rawAttributes','fields','length','find','catch','create','body','update','getConfigurations','findOne','keys','ZohoConfiguration','nolimit','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','ZohoField','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','/oauth/v2/token','clientId','clientSecret','refresh_token','access_token','getFields','host','zone','serverUrl','code','zoho.eu','com','slice','substring','refreshToken','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','format','https://www.zohoapis.%s/crm/v2/settings/fields','Calls','Zoho-oauthtoken\x20','response','message','Owner','Subject','Description','WhoId','Call_Result','Call_Start_Time','Call_Type','remove','includes','api_name','system_mandatory','push','display_label','custom_field','data_type','picklist','pick_list_values','test','statusCode','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../components/integrations/configuration'];(function(_0x1ecd54,_0x51def8){var _0x55b75e=function(_0xf32211){while(--_0xf32211){_0x1ecd54['push'](_0x1ecd54['shift']());}};_0x55b75e(++_0x51def8);}(_0x31f1,0x6f));var _0x131f=function(_0x39019d,_0x9c068d){_0x39019d=_0x39019d-0x0;var _0x39a56c=_0x31f1[_0x39019d];return _0x39a56c;};'use strict';var emlformat=require(_0x131f('0x0'));var rimraf=require(_0x131f('0x1'));var zipdir=require(_0x131f('0x2'));var jsonpatch=require(_0x131f('0x3'));var rp=require(_0x131f('0x4'));var moment=require('moment');var BPromise=require(_0x131f('0x5'));var Mustache=require(_0x131f('0x6'));var util=require(_0x131f('0x7'));var path=require(_0x131f('0x8'));var sox=require(_0x131f('0x9'));var csv=require(_0x131f('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x131f('0xb'));var squel=require(_0x131f('0xc'));var crypto=require(_0x131f('0xd'));var jsforce=require(_0x131f('0xe'));var deskjs=require(_0x131f('0xf'));var toCsv=require('to-csv');var querystring=require(_0x131f('0x10'));var Papa=require(_0x131f('0x11'));var Redis=require(_0x131f('0x12'));var authService=require(_0x131f('0x13'));var qs=require(_0x131f('0x14'));var as=require(_0x131f('0x15'));var hardwareService=require(_0x131f('0x16'));var logger=require(_0x131f('0x17'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x131f('0x18'));var db=require('../../mysqldb')['db'];var integrations=require(_0x131f('0x19'));function respondWithStatusCode(_0x21ebfb,_0x310b43){_0x310b43=_0x310b43||0xcc;return function(_0x5cbe9b){if(_0x5cbe9b){return _0x21ebfb[_0x131f('0x1a')](_0x310b43);}return _0x21ebfb['status'](_0x310b43)[_0x131f('0x1b')]();};}function respondWithResult(_0x1e2335,_0xef2173){_0xef2173=_0xef2173||0xc8;return function(_0x31fb3b){if(_0x31fb3b){return _0x1e2335[_0x131f('0x1c')](_0xef2173)[_0x131f('0x1d')](_0x31fb3b);}};}function respondWithFilteredResult(_0x133d82,_0x3bf2f7){return function(_0xf97294){if(_0xf97294){var _0x26f0bd=typeof _0x3bf2f7['offset']===_0x131f('0x1e')&&typeof _0x3bf2f7[_0x131f('0x1f')]===_0x131f('0x1e');var _0x7e839d=_0xf97294[_0x131f('0x20')];var _0x23ef60=_0x26f0bd?0x0:_0x3bf2f7[_0x131f('0x21')];var _0xab98cc=_0x26f0bd?_0xf97294[_0x131f('0x20')]:_0x3bf2f7[_0x131f('0x21')]+_0x3bf2f7['limit'];var _0x1316c6;if(_0xab98cc>=_0x7e839d){_0xab98cc=_0x7e839d;_0x1316c6=0xc8;}else{_0x1316c6=0xce;}_0x133d82[_0x131f('0x1c')](_0x1316c6);return _0x133d82[_0x131f('0x22')](_0x131f('0x23'),_0x23ef60+'-'+_0xab98cc+'/'+_0x7e839d)[_0x131f('0x1d')](_0xf97294);}return null;};}function patchUpdates(_0x3a7b4d){return function(_0x37b7a4){try{jsonpatch[_0x131f('0x24')](_0x37b7a4,_0x3a7b4d,!![]);}catch(_0x3d23ad){return BPromise[_0x131f('0x25')](_0x3d23ad);}return _0x37b7a4['save']();};}function saveUpdates(_0x5ed293,_0x42d18b){return function(_0x15395b){if(_0x15395b){return _0x15395b['update'](_0x5ed293)[_0x131f('0x26')](function(_0x291767){return _0x291767;});}return null;};}function removeEntity(_0x196e06,_0x15f9eb){return function(_0x32f198){if(_0x32f198){return _0x32f198[_0x131f('0x27')]()[_0x131f('0x26')](function(){_0x196e06[_0x131f('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe65681,_0x33a4ff){return function(_0x4e3cfc){if(!_0x4e3cfc){_0xe65681['sendStatus'](0x194);}return _0x4e3cfc;};}function handleError(_0x377921,_0x37b2a2){_0x37b2a2=_0x37b2a2||0x1f4;return function(_0x5988b4){logger[_0x131f('0x28')](_0x5988b4[_0x131f('0x29')]);if(_0x5988b4[_0x131f('0x2a')]){delete _0x5988b4[_0x131f('0x2a')];}_0x377921['status'](_0x37b2a2)[_0x131f('0x2b')](_0x5988b4);};}exports[_0x131f('0x2c')]=function(_0x1f5ae1,_0x2f3258){var _0x4da3e3={},_0x40c5f2={},_0xf0c000={'count':0x0,'rows':[]};var _0x4104b8=_['map'](db['ZohoAccount']['rawAttributes'],function(_0x4ab074){return{'name':_0x4ab074[_0x131f('0x2d')],'type':_0x4ab074['type'][_0x131f('0x2e')]};});_0x40c5f2['model']=_[_0x131f('0x2f')](_0x4104b8,_0x131f('0x2a'));_0x40c5f2[_0x131f('0x30')]=_['keys'](_0x1f5ae1[_0x131f('0x30')]);_0x40c5f2[_0x131f('0x31')]=_[_0x131f('0x32')](_0x40c5f2[_0x131f('0x33')],_0x40c5f2[_0x131f('0x30')]);_0x4da3e3[_0x131f('0x34')]=_[_0x131f('0x32')](_0x40c5f2[_0x131f('0x33')],qs['fields'](_0x1f5ae1['query']['fields']));_0x4da3e3[_0x131f('0x34')]=_0x4da3e3[_0x131f('0x34')]['length']?_0x4da3e3[_0x131f('0x34')]:_0x40c5f2[_0x131f('0x33')];if(!_0x1f5ae1[_0x131f('0x30')][_0x131f('0x35')]('nolimit')){_0x4da3e3[_0x131f('0x1f')]=qs['limit'](_0x1f5ae1[_0x131f('0x30')][_0x131f('0x1f')]);_0x4da3e3[_0x131f('0x21')]=qs[_0x131f('0x21')](_0x1f5ae1[_0x131f('0x30')]['offset']);}_0x4da3e3[_0x131f('0x36')]=qs[_0x131f('0x37')](_0x1f5ae1[_0x131f('0x30')][_0x131f('0x37')]);_0x4da3e3[_0x131f('0x38')]=qs['filters'](_[_0x131f('0x39')](_0x1f5ae1['query'],_0x40c5f2[_0x131f('0x31')]),_0x4104b8);if(_0x1f5ae1['query'][_0x131f('0x3a')]){_0x4da3e3[_0x131f('0x38')]=_[_0x131f('0x3b')](_0x4da3e3[_0x131f('0x38')],{'$or':_['map'](_0x4104b8,function(_0x250b2a){if(_0x250b2a[_0x131f('0x3c')]!==_0x131f('0x3d')){var _0x43b34c={};_0x43b34c[_0x250b2a[_0x131f('0x2a')]]={'$like':'%'+_0x1f5ae1[_0x131f('0x30')][_0x131f('0x3a')]+'%'};return _0x43b34c;}})});}_0x4da3e3=_['merge']({},_0x4da3e3,_0x1f5ae1[_0x131f('0x3e')]);var _0x205055={'where':_0x4da3e3['where']};return db['ZohoAccount'][_0x131f('0x20')](_0x205055)[_0x131f('0x26')](function(_0xe47775){_0xf0c000[_0x131f('0x20')]=_0xe47775;if(_0x1f5ae1[_0x131f('0x30')][_0x131f('0x3f')]){_0x4da3e3[_0x131f('0x40')]=[{'all':!![]}];}return db[_0x131f('0x41')]['findAll'](_0x4da3e3);})[_0x131f('0x26')](function(_0x140760){_0xf0c000[_0x131f('0x42')]=_0x140760;return _0xf0c000;})[_0x131f('0x26')](respondWithFilteredResult(_0x2f3258,_0x4da3e3))['catch'](handleError(_0x2f3258,null));};exports[_0x131f('0x43')]=function(_0x58eb99,_0x24416e){var _0x14f28a={'raw':![],'where':{'id':_0x58eb99[_0x131f('0x44')]['id']}},_0x4f8285={};_0x4f8285[_0x131f('0x33')]=_['keys'](db['ZohoAccount'][_0x131f('0x45')]);_0x4f8285[_0x131f('0x30')]=_['keys'](_0x58eb99[_0x131f('0x30')]);_0x4f8285['filters']=_['intersection'](_0x4f8285[_0x131f('0x33')],_0x4f8285[_0x131f('0x30')]);_0x14f28a[_0x131f('0x34')]=_[_0x131f('0x32')](_0x4f8285['model'],qs[_0x131f('0x46')](_0x58eb99['query']['fields']));_0x14f28a[_0x131f('0x34')]=_0x14f28a[_0x131f('0x34')][_0x131f('0x47')]?_0x14f28a['attributes']:_0x4f8285['model'];if(_0x58eb99[_0x131f('0x30')][_0x131f('0x3f')]){_0x14f28a[_0x131f('0x40')]=[{'all':!![]}];}_0x14f28a=_[_0x131f('0x3b')]({},_0x14f28a,_0x58eb99[_0x131f('0x3e')]);return db['ZohoAccount'][_0x131f('0x48')](_0x14f28a)[_0x131f('0x26')](handleEntityNotFound(_0x24416e,null))['then'](respondWithResult(_0x24416e,null))[_0x131f('0x49')](handleError(_0x24416e,null));};exports[_0x131f('0x4a')]=function(_0x5d8dc3,_0x110da0){return db[_0x131f('0x41')][_0x131f('0x4a')](_0x5d8dc3[_0x131f('0x4b')],{})['then'](respondWithResult(_0x110da0,0xc9))[_0x131f('0x49')](handleError(_0x110da0,null));};exports[_0x131f('0x4c')]=function(_0x3f1079,_0x5abc6d){if(_0x3f1079[_0x131f('0x4b')]['id']){delete _0x3f1079[_0x131f('0x4b')]['id'];}return db['ZohoAccount'][_0x131f('0x48')]({'where':{'id':_0x3f1079[_0x131f('0x44')]['id']}})[_0x131f('0x26')](handleEntityNotFound(_0x5abc6d,null))[_0x131f('0x26')](saveUpdates(_0x3f1079[_0x131f('0x4b')],null))[_0x131f('0x26')](respondWithResult(_0x5abc6d,null))[_0x131f('0x49')](handleError(_0x5abc6d,null));};exports['destroy']=function(_0x21959c,_0xa47b4){return db['ZohoAccount'][_0x131f('0x48')]({'where':{'id':_0x21959c['params']['id']}})[_0x131f('0x26')](handleEntityNotFound(_0xa47b4,null))['then'](removeEntity(_0xa47b4,null))['catch'](handleError(_0xa47b4,null));};exports[_0x131f('0x4d')]=function(_0x127937,_0x465283,_0x16c2a0){var _0x3acff9={};var _0x4c1fed={};var _0x4d752c;var _0x4d8be2;return db['ZohoAccount'][_0x131f('0x4e')]({'where':{'id':_0x127937[_0x131f('0x44')]['id']}})['then'](handleEntityNotFound(_0x465283,null))['then'](function(_0x8bae98){if(_0x8bae98){_0x4d752c=_0x8bae98;_0x4c1fed['model']=_[_0x131f('0x4f')](db[_0x131f('0x50')][_0x131f('0x45')]);_0x4c1fed['query']=_[_0x131f('0x4f')](_0x127937[_0x131f('0x30')]);_0x4c1fed[_0x131f('0x31')]=_[_0x131f('0x32')](_0x4c1fed[_0x131f('0x33')],_0x4c1fed['query']);_0x3acff9[_0x131f('0x34')]=_[_0x131f('0x32')](_0x4c1fed[_0x131f('0x33')],qs[_0x131f('0x46')](_0x127937[_0x131f('0x30')][_0x131f('0x46')]));_0x3acff9[_0x131f('0x34')]=_0x3acff9[_0x131f('0x34')][_0x131f('0x47')]?_0x3acff9[_0x131f('0x34')]:_0x4c1fed[_0x131f('0x33')];_0x3acff9['order']=qs[_0x131f('0x37')](_0x127937[_0x131f('0x30')][_0x131f('0x37')]);_0x3acff9[_0x131f('0x38')]=qs[_0x131f('0x31')](_['pick'](_0x127937['query'],_0x4c1fed[_0x131f('0x31')]));if(_0x127937[_0x131f('0x30')][_0x131f('0x3a')]){_0x3acff9[_0x131f('0x38')]=_['merge'](_0x3acff9['where'],{'$or':_[_0x131f('0x2f')](_0x3acff9[_0x131f('0x34')],function(_0x4eba87){var _0xc3658c={};_0xc3658c[_0x4eba87]={'$like':'%'+_0x127937['query'][_0x131f('0x3a')]+'%'};return _0xc3658c;})});}_0x3acff9=_['merge']({},_0x3acff9,_0x127937[_0x131f('0x3e')]);return _0x4d752c[_0x131f('0x4d')](_0x3acff9);}})[_0x131f('0x26')](function(_0x1f6a36){if(_0x1f6a36){_0x4d8be2=_0x1f6a36[_0x131f('0x47')];if(!_0x127937[_0x131f('0x30')]['hasOwnProperty'](_0x131f('0x51'))){_0x3acff9['limit']=qs[_0x131f('0x1f')](_0x127937[_0x131f('0x30')][_0x131f('0x1f')]);_0x3acff9['offset']=qs[_0x131f('0x21')](_0x127937[_0x131f('0x30')][_0x131f('0x21')]);}return _0x4d752c[_0x131f('0x4d')](_0x3acff9);}})[_0x131f('0x26')](function(_0x4d7916){if(_0x4d7916){return _0x4d7916?{'count':_0x4d8be2,'rows':_0x4d7916}:null;}})[_0x131f('0x26')](respondWithResult(_0x465283,null))[_0x131f('0x49')](handleError(_0x465283,null));};exports[_0x131f('0x52')]=function(_0x47849b,_0x3d2416,_0x35cb6b){if(_0x47849b[_0x131f('0x4b')]['id']){delete _0x47849b[_0x131f('0x4b')]['id'];}return db['ZohoAccount']['findOne']({'where':{'id':_0x47849b[_0x131f('0x44')]['id']}})[_0x131f('0x26')](handleEntityNotFound(_0x3d2416,null))[_0x131f('0x26')](function(_0x1d8ab4){if(_0x1d8ab4){_0x47849b[_0x131f('0x4b')]['AccountId']=_0x1d8ab4['id'];_0x47849b[_0x131f('0x4b')]['Subjects']=integrations[_0x131f('0x53')](_0x47849b[_0x131f('0x4b')][_0x131f('0x54')],_0x47849b['body'][_0x131f('0x3c')]);_0x47849b[_0x131f('0x4b')][_0x131f('0x55')]=integrations[_0x131f('0x56')](_0x47849b[_0x131f('0x4b')][_0x131f('0x54')],_0x47849b['body'][_0x131f('0x3c')]);return db[_0x131f('0x50')][_0x131f('0x4a')](_0x47849b['body'],{'include':[{'model':db['ZohoField'],'as':'Subjects'},{'model':db[_0x131f('0x57')],'as':_0x131f('0x55')}]});}return null;})[_0x131f('0x26')](respondWithResult(_0x3d2416,null))['catch'](handleError(_0x3d2416,null));};function getAccessToken(_0x42b0b0){return new Promise(function(_0x3921c7,_0x3d3bca){var _0x27f713;switch(_0x42b0b0['zone']){case'US':_0x27f713=_0x131f('0x58');break;case'AU':_0x27f713=_0x131f('0x59');break;case'EU':_0x27f713=_0x131f('0x5a');break;case'IN':_0x27f713=_0x131f('0x5b');break;case'CN':_0x27f713=_0x131f('0x5c');break;default:_0x27f713=_0x131f('0x5a');break;}var _0x2074ef={'method':_0x131f('0x5d'),'uri':_0x27f713+_0x131f('0x5e'),'qs':{'refresh_token':_0x42b0b0['refreshToken'],'client_id':_0x42b0b0[_0x131f('0x5f')],'client_secret':_0x42b0b0[_0x131f('0x60')],'grant_type':_0x131f('0x61')},'json':!![]};return rp(_0x2074ef)[_0x131f('0x26')](function(_0x588b6b){if(_0x588b6b['access_token']){_0x3921c7(_0x588b6b[_0x131f('0x62')]);}else{_0x3d3bca('Unable\x20to\x20retrieve\x20the\x20access\x20token');}})['catch'](function(_0x332ba5){_0x3d3bca(_0x332ba5);});});}exports[_0x131f('0x63')]=function(_0x1eb79a,_0x3fa4d1,_0x121d2c){var _0x119936,_0x1d0762,_0x56a009,_0x3bebbf,_0x4ce154;return db[_0x131f('0x41')][_0x131f('0x4e')]({'where':{'id':_0x1eb79a[_0x131f('0x44')]['id']},'attributes':['id',_0x131f('0x64'),_0x131f('0x65'),_0x131f('0x5f'),'clientSecret',_0x131f('0x66'),_0x131f('0x67'),'refreshToken']})[_0x131f('0x26')](handleEntityNotFound(_0x3fa4d1,null))['then'](function(_0xe3406b){_0x4ce154=_0xe3406b;_0x119936=_0x4ce154[_0x131f('0x64')];_0x1d0762=_0x119936===_0x131f('0x68')?'eu':_0x131f('0x69');_0x56a009=_0x4ce154[_0x131f('0x66')];var _0x394e43=_0x56a009[_0x131f('0x6a')](-0x1);if(_0x394e43==='/'||_0x394e43==='\x5c'||_0x394e43===':'){_0x56a009=_0x56a009[_0x131f('0x6b')](0x0,_0x56a009['lastIndexOf'](_0x394e43));}if(!_0x4ce154[_0x131f('0x6c')]){throw new Error(_0x131f('0x6d'));}return getAccessToken(_0x4ce154);})[_0x131f('0x26')](function(_0x5d1af8){if(_0x5d1af8){return rp({'method':_0x131f('0x6e'),'uri':util[_0x131f('0x6f')](_0x131f('0x70'),_0x1d0762),'qs':{'module':_0x131f('0x71')},'headers':{'Authorization':_0x131f('0x72')+_0x5d1af8},'json':!![]});}})['then'](function(_0xe00716){if(_0xe00716){if(_0xe00716[_0x131f('0x73')]&&_0xe00716['response'][_0x131f('0x28')]){throw new Error(_0xe00716['response'][_0x131f('0x28')][_0x131f('0x74')]);}var _0x117bab=[];var _0x296dd7=[];var _0x16e6ac=[_0x131f('0x75'),_0x131f('0x76'),_0x131f('0x77'),_0x131f('0x78'),'Call_Duration',_0x131f('0x79'),_0x131f('0x7a'),_0x131f('0x7b')];_0x296dd7=_[_0x131f('0x7c')](_0xe00716[_0x131f('0x46')],function(_0x1d30d4){return _0x16e6ac[_0x131f('0x7d')](_0x1d30d4[_0x131f('0x7e')]);});for(var _0x38475c=0x0;_0x38475c<_0x296dd7[_0x131f('0x47')];_0x38475c++){if(_0x296dd7[_0x38475c][_0x131f('0x7f')]===![]){_0x117bab[_0x131f('0x80')]({'id':_0x296dd7[_0x38475c]['id'],'name':_0x296dd7[_0x38475c][_0x131f('0x81')],'custom':_0x296dd7[_0x38475c][_0x131f('0x82')],'options':_0x296dd7[_0x38475c][_0x131f('0x83')]===_0x131f('0x84')&&_0x296dd7[_0x38475c][_0x131f('0x85')][_0x131f('0x47')]>-0x1?_['map'](_0x296dd7[_0x38475c][_0x131f('0x85')],function(_0xac2bf6){return{'name':_0xac2bf6,'value':_0xac2bf6};}):[]});}}return{'count':_0x117bab[_0x131f('0x47')],'rows':_0x117bab};}else{return{'count':0x0,'rows':[]};}})[_0x131f('0x26')](respondWithResult(_0x3fa4d1,null))[_0x131f('0x49')](function(_0x31777f){var _0x5d88d7=_0x1eb79a[_0x131f('0x30')][_0x131f('0x86')]?0x1f4:_0x31777f[_0x131f('0x87')]||0x1f4;logger[_0x131f('0x28')]('getFields,\x20%s,\x20%s,\x20%s',_0x131f('0x63'),_0x5d88d7,JSON['stringify'](_0x31777f));delete _0x31777f['name'];if(_0x5d88d7===0x191){_0x5d88d7=0x190;}_0x3fa4d1['status'](_0x5d88d7)[_0x131f('0x2b')](_0x1eb79a[_0x131f('0x30')][_0x131f('0x86')]?{'message':_0x131f('0x88'),'statusCode':_0x31777f[_0x131f('0x87')]}:_0x31777f);});};
\ No newline at end of file
+var _0x3eec=['api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','then','error','stack','name','map','rawAttributes','fieldName','type','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','ZohoAccount','findAll','rows','catch','show','params','length','create','body','update','find','destroy','getConfigurations','findOne','ZohoConfiguration','AccountId','getSubjects','channel','Descriptions','getDescriptions','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','refreshToken','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','host','serverUrl','code','zoho.eu','com','substring','lastIndexOf','GET','format','Calls','response','message','Owner','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','remove','includes','api_name','push','custom_field','data_type','pick_list_values','test','stringify','send','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x12833e,_0x302abb){var _0xe6208a=function(_0x1ca6bc){while(--_0x1ca6bc){_0x12833e['push'](_0x12833e['shift']());}};_0xe6208a(++_0x302abb);}(_0x3eec,0xf0));var _0xc3ee=function(_0x248da7,_0x51de38){_0x248da7=_0x248da7-0x0;var _0x25b6ab=_0x3eec[_0x248da7];return _0x25b6ab;};'use strict';var emlformat=require(_0xc3ee('0x0'));var rimraf=require(_0xc3ee('0x1'));var zipdir=require(_0xc3ee('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc3ee('0x3'));var moment=require('moment');var BPromise=require(_0xc3ee('0x4'));var Mustache=require(_0xc3ee('0x5'));var util=require(_0xc3ee('0x6'));var path=require(_0xc3ee('0x7'));var sox=require(_0xc3ee('0x8'));var csv=require(_0xc3ee('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xc3ee('0xa'));var squel=require('squel');var crypto=require(_0xc3ee('0xb'));var jsforce=require(_0xc3ee('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xc3ee('0x9'));var querystring=require(_0xc3ee('0xd'));var Papa=require(_0xc3ee('0xe'));var Redis=require(_0xc3ee('0xf'));var authService=require(_0xc3ee('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xc3ee('0x11'));var hardwareService=require(_0xc3ee('0x12'));var logger=require(_0xc3ee('0x13'))(_0xc3ee('0x14'));var utils=require(_0xc3ee('0x15'));var config=require(_0xc3ee('0x16'));var licenseUtil=require(_0xc3ee('0x17'));var db=require(_0xc3ee('0x18'))['db'];var integrations=require(_0xc3ee('0x19'));function respondWithStatusCode(_0x5c9ad8,_0x4f7906){_0x4f7906=_0x4f7906||0xcc;return function(_0x5a27b1){if(_0x5a27b1){return _0x5c9ad8[_0xc3ee('0x1a')](_0x4f7906);}return _0x5c9ad8[_0xc3ee('0x1b')](_0x4f7906)[_0xc3ee('0x1c')]();};}function respondWithResult(_0x11701c,_0x2a398f){_0x2a398f=_0x2a398f||0xc8;return function(_0xa088a3){if(_0xa088a3){return _0x11701c['status'](_0x2a398f)[_0xc3ee('0x1d')](_0xa088a3);}};}function respondWithFilteredResult(_0xceb7c,_0x4aaa0f){return function(_0xb278cd){if(_0xb278cd){var _0x592a64=typeof _0x4aaa0f[_0xc3ee('0x1e')]===_0xc3ee('0x1f')&&typeof _0x4aaa0f[_0xc3ee('0x20')]==='undefined';var _0x5c80e9=_0xb278cd[_0xc3ee('0x21')];var _0x296487=_0x592a64?0x0:_0x4aaa0f['offset'];var _0x27ac08=_0x592a64?_0xb278cd[_0xc3ee('0x21')]:_0x4aaa0f['offset']+_0x4aaa0f[_0xc3ee('0x20')];var _0x1ff73f;if(_0x27ac08>=_0x5c80e9){_0x27ac08=_0x5c80e9;_0x1ff73f=0xc8;}else{_0x1ff73f=0xce;}_0xceb7c[_0xc3ee('0x1b')](_0x1ff73f);return _0xceb7c[_0xc3ee('0x22')](_0xc3ee('0x23'),_0x296487+'-'+_0x27ac08+'/'+_0x5c80e9)['json'](_0xb278cd);}return null;};}function patchUpdates(_0x24c1c0){return function(_0x324c28){try{jsonpatch['apply'](_0x324c28,_0x24c1c0,!![]);}catch(_0x57ae38){return BPromise['reject'](_0x57ae38);}return _0x324c28[_0xc3ee('0x24')]();};}function saveUpdates(_0x2b38ef,_0x1c59fd){return function(_0x829c1c){if(_0x829c1c){return _0x829c1c['update'](_0x2b38ef)[_0xc3ee('0x25')](function(_0x36e6a8){return _0x36e6a8;});}return null;};}function removeEntity(_0x2a43fb,_0x322076){return function(_0x47256f){if(_0x47256f){return _0x47256f['destroy']()[_0xc3ee('0x25')](function(){_0x2a43fb[_0xc3ee('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x459c5a,_0x157489){return function(_0xc45f3f){if(!_0xc45f3f){_0x459c5a[_0xc3ee('0x1a')](0x194);}return _0xc45f3f;};}function handleError(_0xb4ffff,_0x45747d){_0x45747d=_0x45747d||0x1f4;return function(_0xe275b){logger[_0xc3ee('0x26')](_0xe275b[_0xc3ee('0x27')]);if(_0xe275b[_0xc3ee('0x28')]){delete _0xe275b['name'];}_0xb4ffff[_0xc3ee('0x1b')](_0x45747d)['send'](_0xe275b);};}exports['index']=function(_0x425555,_0x4613ba){var _0x3c43a3={},_0x4dfa53={},_0x18de1a={'count':0x0,'rows':[]};var _0x4d4d8e=_[_0xc3ee('0x29')](db['ZohoAccount'][_0xc3ee('0x2a')],function(_0xef1e7c){return{'name':_0xef1e7c[_0xc3ee('0x2b')],'type':_0xef1e7c[_0xc3ee('0x2c')]['key']};});_0x4dfa53[_0xc3ee('0x2d')]=_['map'](_0x4d4d8e,_0xc3ee('0x28'));_0x4dfa53[_0xc3ee('0x2e')]=_[_0xc3ee('0x2f')](_0x425555[_0xc3ee('0x2e')]);_0x4dfa53['filters']=_[_0xc3ee('0x30')](_0x4dfa53['model'],_0x4dfa53[_0xc3ee('0x2e')]);_0x3c43a3['attributes']=_[_0xc3ee('0x30')](_0x4dfa53[_0xc3ee('0x2d')],qs['fields'](_0x425555['query'][_0xc3ee('0x31')]));_0x3c43a3[_0xc3ee('0x32')]=_0x3c43a3[_0xc3ee('0x32')]['length']?_0x3c43a3[_0xc3ee('0x32')]:_0x4dfa53[_0xc3ee('0x2d')];if(!_0x425555['query'][_0xc3ee('0x33')](_0xc3ee('0x34'))){_0x3c43a3[_0xc3ee('0x20')]=qs[_0xc3ee('0x20')](_0x425555['query'][_0xc3ee('0x20')]);_0x3c43a3['offset']=qs['offset'](_0x425555[_0xc3ee('0x2e')][_0xc3ee('0x1e')]);}_0x3c43a3[_0xc3ee('0x35')]=qs[_0xc3ee('0x36')](_0x425555[_0xc3ee('0x2e')]['sort']);_0x3c43a3[_0xc3ee('0x37')]=qs[_0xc3ee('0x38')](_[_0xc3ee('0x39')](_0x425555[_0xc3ee('0x2e')],_0x4dfa53[_0xc3ee('0x38')]),_0x4d4d8e);if(_0x425555[_0xc3ee('0x2e')][_0xc3ee('0x3a')]){_0x3c43a3[_0xc3ee('0x37')]=_[_0xc3ee('0x3b')](_0x3c43a3[_0xc3ee('0x37')],{'$or':_[_0xc3ee('0x29')](_0x4d4d8e,function(_0x3a23ad){if(_0x3a23ad[_0xc3ee('0x2c')]!==_0xc3ee('0x3c')){var _0x29a25a={};_0x29a25a[_0x3a23ad[_0xc3ee('0x28')]]={'$like':'%'+_0x425555['query'][_0xc3ee('0x3a')]+'%'};return _0x29a25a;}})});}_0x3c43a3=_[_0xc3ee('0x3b')]({},_0x3c43a3,_0x425555[_0xc3ee('0x3d')]);var _0x5a9caf={'where':_0x3c43a3[_0xc3ee('0x37')]};return db['ZohoAccount'][_0xc3ee('0x21')](_0x5a9caf)[_0xc3ee('0x25')](function(_0x10f5b9){_0x18de1a['count']=_0x10f5b9;if(_0x425555[_0xc3ee('0x2e')][_0xc3ee('0x3e')]){_0x3c43a3[_0xc3ee('0x3f')]=[{'all':!![]}];}return db[_0xc3ee('0x40')][_0xc3ee('0x41')](_0x3c43a3);})['then'](function(_0x1fb563){_0x18de1a[_0xc3ee('0x42')]=_0x1fb563;return _0x18de1a;})['then'](respondWithFilteredResult(_0x4613ba,_0x3c43a3))[_0xc3ee('0x43')](handleError(_0x4613ba,null));};exports[_0xc3ee('0x44')]=function(_0x41fa0e,_0x44801c){var _0x2c8cce={'raw':![],'where':{'id':_0x41fa0e[_0xc3ee('0x45')]['id']}},_0x28161f={};_0x28161f['model']=_[_0xc3ee('0x2f')](db['ZohoAccount'][_0xc3ee('0x2a')]);_0x28161f[_0xc3ee('0x2e')]=_['keys'](_0x41fa0e[_0xc3ee('0x2e')]);_0x28161f[_0xc3ee('0x38')]=_[_0xc3ee('0x30')](_0x28161f[_0xc3ee('0x2d')],_0x28161f['query']);_0x2c8cce[_0xc3ee('0x32')]=_[_0xc3ee('0x30')](_0x28161f[_0xc3ee('0x2d')],qs[_0xc3ee('0x31')](_0x41fa0e[_0xc3ee('0x2e')][_0xc3ee('0x31')]));_0x2c8cce[_0xc3ee('0x32')]=_0x2c8cce[_0xc3ee('0x32')][_0xc3ee('0x46')]?_0x2c8cce[_0xc3ee('0x32')]:_0x28161f[_0xc3ee('0x2d')];if(_0x41fa0e[_0xc3ee('0x2e')][_0xc3ee('0x3e')]){_0x2c8cce[_0xc3ee('0x3f')]=[{'all':!![]}];}_0x2c8cce=_['merge']({},_0x2c8cce,_0x41fa0e[_0xc3ee('0x3d')]);return db[_0xc3ee('0x40')]['find'](_0x2c8cce)['then'](handleEntityNotFound(_0x44801c,null))[_0xc3ee('0x25')](respondWithResult(_0x44801c,null))['catch'](handleError(_0x44801c,null));};exports[_0xc3ee('0x47')]=function(_0x5d4b78,_0x284ec6){return db[_0xc3ee('0x40')][_0xc3ee('0x47')](_0x5d4b78[_0xc3ee('0x48')],{})[_0xc3ee('0x25')](respondWithResult(_0x284ec6,0xc9))[_0xc3ee('0x43')](handleError(_0x284ec6,null));};exports[_0xc3ee('0x49')]=function(_0xb70a5b,_0x427f62){if(_0xb70a5b[_0xc3ee('0x48')]['id']){delete _0xb70a5b[_0xc3ee('0x48')]['id'];}return db[_0xc3ee('0x40')][_0xc3ee('0x4a')]({'where':{'id':_0xb70a5b['params']['id']}})['then'](handleEntityNotFound(_0x427f62,null))[_0xc3ee('0x25')](saveUpdates(_0xb70a5b['body'],null))[_0xc3ee('0x25')](respondWithResult(_0x427f62,null))[_0xc3ee('0x43')](handleError(_0x427f62,null));};exports[_0xc3ee('0x4b')]=function(_0x3f5a3c,_0x429754){return db[_0xc3ee('0x40')][_0xc3ee('0x4a')]({'where':{'id':_0x3f5a3c[_0xc3ee('0x45')]['id']}})[_0xc3ee('0x25')](handleEntityNotFound(_0x429754,null))[_0xc3ee('0x25')](removeEntity(_0x429754,null))[_0xc3ee('0x43')](handleError(_0x429754,null));};exports[_0xc3ee('0x4c')]=function(_0x1970d1,_0x1f6191,_0x461f84){var _0xccebcb={};var _0x364a42={};var _0x12fde4;var _0x49c467;return db['ZohoAccount'][_0xc3ee('0x4d')]({'where':{'id':_0x1970d1[_0xc3ee('0x45')]['id']}})['then'](handleEntityNotFound(_0x1f6191,null))[_0xc3ee('0x25')](function(_0x41be0b){if(_0x41be0b){_0x12fde4=_0x41be0b;_0x364a42[_0xc3ee('0x2d')]=_['keys'](db[_0xc3ee('0x4e')][_0xc3ee('0x2a')]);_0x364a42[_0xc3ee('0x2e')]=_[_0xc3ee('0x2f')](_0x1970d1[_0xc3ee('0x2e')]);_0x364a42[_0xc3ee('0x38')]=_[_0xc3ee('0x30')](_0x364a42[_0xc3ee('0x2d')],_0x364a42[_0xc3ee('0x2e')]);_0xccebcb[_0xc3ee('0x32')]=_[_0xc3ee('0x30')](_0x364a42['model'],qs['fields'](_0x1970d1[_0xc3ee('0x2e')]['fields']));_0xccebcb[_0xc3ee('0x32')]=_0xccebcb[_0xc3ee('0x32')][_0xc3ee('0x46')]?_0xccebcb['attributes']:_0x364a42[_0xc3ee('0x2d')];_0xccebcb[_0xc3ee('0x35')]=qs[_0xc3ee('0x36')](_0x1970d1[_0xc3ee('0x2e')][_0xc3ee('0x36')]);_0xccebcb[_0xc3ee('0x37')]=qs[_0xc3ee('0x38')](_[_0xc3ee('0x39')](_0x1970d1[_0xc3ee('0x2e')],_0x364a42[_0xc3ee('0x38')]));if(_0x1970d1['query']['filter']){_0xccebcb['where']=_[_0xc3ee('0x3b')](_0xccebcb[_0xc3ee('0x37')],{'$or':_[_0xc3ee('0x29')](_0xccebcb['attributes'],function(_0xac170b){var _0x54c851={};_0x54c851[_0xac170b]={'$like':'%'+_0x1970d1[_0xc3ee('0x2e')][_0xc3ee('0x3a')]+'%'};return _0x54c851;})});}_0xccebcb=_['merge']({},_0xccebcb,_0x1970d1[_0xc3ee('0x3d')]);return _0x12fde4[_0xc3ee('0x4c')](_0xccebcb);}})[_0xc3ee('0x25')](function(_0x324686){if(_0x324686){_0x49c467=_0x324686['length'];if(!_0x1970d1['query'][_0xc3ee('0x33')](_0xc3ee('0x34'))){_0xccebcb[_0xc3ee('0x20')]=qs[_0xc3ee('0x20')](_0x1970d1[_0xc3ee('0x2e')][_0xc3ee('0x20')]);_0xccebcb[_0xc3ee('0x1e')]=qs[_0xc3ee('0x1e')](_0x1970d1[_0xc3ee('0x2e')][_0xc3ee('0x1e')]);}return _0x12fde4[_0xc3ee('0x4c')](_0xccebcb);}})['then'](function(_0x1ee437){if(_0x1ee437){return _0x1ee437?{'count':_0x49c467,'rows':_0x1ee437}:null;}})[_0xc3ee('0x25')](respondWithResult(_0x1f6191,null))['catch'](handleError(_0x1f6191,null));};exports['addConfiguration']=function(_0x390beb,_0x2284b2,_0x42ab11){if(_0x390beb[_0xc3ee('0x48')]['id']){delete _0x390beb[_0xc3ee('0x48')]['id'];}return db[_0xc3ee('0x40')][_0xc3ee('0x4d')]({'where':{'id':_0x390beb['params']['id']}})[_0xc3ee('0x25')](handleEntityNotFound(_0x2284b2,null))[_0xc3ee('0x25')](function(_0x32bb7e){if(_0x32bb7e){_0x390beb['body'][_0xc3ee('0x4f')]=_0x32bb7e['id'];_0x390beb['body']['Subjects']=integrations[_0xc3ee('0x50')](_0x390beb[_0xc3ee('0x48')][_0xc3ee('0x51')],_0x390beb[_0xc3ee('0x48')]['type']);_0x390beb[_0xc3ee('0x48')][_0xc3ee('0x52')]=integrations[_0xc3ee('0x53')](_0x390beb[_0xc3ee('0x48')]['channel'],_0x390beb[_0xc3ee('0x48')][_0xc3ee('0x2c')]);return db[_0xc3ee('0x4e')][_0xc3ee('0x47')](_0x390beb['body'],{'include':[{'model':db['ZohoField'],'as':'Subjects'},{'model':db[_0xc3ee('0x54')],'as':'Descriptions'}]});}return null;})[_0xc3ee('0x25')](respondWithResult(_0x2284b2,null))[_0xc3ee('0x43')](handleError(_0x2284b2,null));};function getAccessToken(_0xc678a2){return new Promise(function(_0x10f17a,_0x492646){var _0x5dd922;switch(_0xc678a2[_0xc3ee('0x55')]){case'US':_0x5dd922=_0xc3ee('0x56');break;case'AU':_0x5dd922='https://accounts.zoho.com.au';break;case'EU':_0x5dd922=_0xc3ee('0x57');break;case'IN':_0x5dd922=_0xc3ee('0x58');break;case'CN':_0x5dd922=_0xc3ee('0x59');break;default:_0x5dd922=_0xc3ee('0x57');break;}var _0x4883bf={'method':_0xc3ee('0x5a'),'uri':_0x5dd922+'/oauth/v2/token','qs':{'refresh_token':_0xc678a2[_0xc3ee('0x5b')],'client_id':_0xc678a2[_0xc3ee('0x5c')],'client_secret':_0xc678a2[_0xc3ee('0x5d')],'grant_type':_0xc3ee('0x5e')},'json':!![]};return rp(_0x4883bf)[_0xc3ee('0x25')](function(_0xcef306){if(_0xcef306[_0xc3ee('0x5f')]){_0x10f17a(_0xcef306[_0xc3ee('0x5f')]);}else{_0x492646(_0xc3ee('0x60'));}})['catch'](function(_0x2d6b0c){_0x492646(_0x2d6b0c);});});}exports[_0xc3ee('0x61')]=function(_0x4a8e24,_0x407375,_0x782a83){var _0x135971,_0x31f7e6,_0x1065b3,_0x1d9f74,_0x3defcf;return db[_0xc3ee('0x40')]['findOne']({'where':{'id':_0x4a8e24[_0xc3ee('0x45')]['id']},'attributes':['id',_0xc3ee('0x62'),_0xc3ee('0x55'),_0xc3ee('0x5c'),'clientSecret',_0xc3ee('0x63'),_0xc3ee('0x64'),_0xc3ee('0x5b')]})[_0xc3ee('0x25')](handleEntityNotFound(_0x407375,null))[_0xc3ee('0x25')](function(_0x3bcc0c){_0x3defcf=_0x3bcc0c;_0x135971=_0x3defcf['host'];_0x31f7e6=_0x135971===_0xc3ee('0x65')?'eu':_0xc3ee('0x66');_0x1065b3=_0x3defcf[_0xc3ee('0x63')];var _0x5cee37=_0x1065b3['slice'](-0x1);if(_0x5cee37==='/'||_0x5cee37==='\x5c'||_0x5cee37===':'){_0x1065b3=_0x1065b3[_0xc3ee('0x67')](0x0,_0x1065b3[_0xc3ee('0x68')](_0x5cee37));}if(!_0x3defcf['refreshToken']){throw new Error('Refresh\x20Token\x20not\x20available\x20for\x20the\x20account');}return getAccessToken(_0x3defcf);})['then'](function(_0x203190){if(_0x203190){return rp({'method':_0xc3ee('0x69'),'uri':util[_0xc3ee('0x6a')]('https://www.zohoapis.%s/crm/v2/settings/fields',_0x31f7e6),'qs':{'module':_0xc3ee('0x6b')},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x203190},'json':!![]});}})[_0xc3ee('0x25')](function(_0x58269c){if(_0x58269c){if(_0x58269c[_0xc3ee('0x6c')]&&_0x58269c[_0xc3ee('0x6c')][_0xc3ee('0x26')]){throw new Error(_0x58269c[_0xc3ee('0x6c')]['error'][_0xc3ee('0x6d')]);}var _0x53601b=[];var _0x5b0df0=[];var _0x5e4f72=[_0xc3ee('0x6e'),_0xc3ee('0x6f'),_0xc3ee('0x70'),_0xc3ee('0x71'),_0xc3ee('0x72'),_0xc3ee('0x73'),_0xc3ee('0x74'),_0xc3ee('0x75')];_0x5b0df0=_[_0xc3ee('0x76')](_0x58269c[_0xc3ee('0x31')],function(_0x2f791c){return _0x5e4f72[_0xc3ee('0x77')](_0x2f791c[_0xc3ee('0x78')]);});for(var _0x256bbf=0x0;_0x256bbf<_0x5b0df0['length'];_0x256bbf++){if(_0x5b0df0[_0x256bbf]['system_mandatory']===![]){_0x53601b[_0xc3ee('0x79')]({'id':_0x5b0df0[_0x256bbf]['id'],'name':_0x5b0df0[_0x256bbf]['display_label'],'custom':_0x5b0df0[_0x256bbf][_0xc3ee('0x7a')],'options':_0x5b0df0[_0x256bbf][_0xc3ee('0x7b')]==='picklist'&&_0x5b0df0[_0x256bbf]['pick_list_values'][_0xc3ee('0x46')]>-0x1?_[_0xc3ee('0x29')](_0x5b0df0[_0x256bbf][_0xc3ee('0x7c')],function(_0xe15f63){return{'name':_0xe15f63,'value':_0xe15f63};}):[]});}}return{'count':_0x53601b[_0xc3ee('0x46')],'rows':_0x53601b};}else{return{'count':0x0,'rows':[]};}})[_0xc3ee('0x25')](respondWithResult(_0x407375,null))['catch'](function(_0x382aa0){var _0x56de21=_0x4a8e24[_0xc3ee('0x2e')][_0xc3ee('0x7d')]?0x1f4:_0x382aa0['statusCode']||0x1f4;logger[_0xc3ee('0x26')]('getFields,\x20%s,\x20%s,\x20%s',_0xc3ee('0x61'),_0x56de21,JSON[_0xc3ee('0x7e')](_0x382aa0));delete _0x382aa0[_0xc3ee('0x28')];if(_0x56de21===0x191){_0x56de21=0x190;}_0x407375[_0xc3ee('0x1b')](_0x56de21)[_0xc3ee('0x7f')](_0x4a8e24[_0xc3ee('0x2e')][_0xc3ee('0x7d')]?{'message':_0xc3ee('0x80'),'statusCode':_0x382aa0[_0xc3ee('0x81')]}:_0x382aa0);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32bf=['/oauth/v2/token','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','util','api','bluebird','path','rimraf','../../config/environment','../../components/integrations/configuration','exports','int_zoho_accounts','changed','clientSecret','serverUrl','slice','substring','lastIndexOf','zone','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','info','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','catch','inspect','clientId','code','host','https://accounts.zoho.com.au'];(function(_0x4aea37,_0x5e110f){var _0x6a8f9f=function(_0x5c8dcb){while(--_0x5c8dcb){_0x4aea37['push'](_0x4aea37['shift']());}};_0x6a8f9f(++_0x5e110f);}(_0x32bf,0xf9));var _0xf32b=function(_0xe29769,_0x3f12cd){_0xe29769=_0xe29769-0x0;var _0x43d1b8=_0x32bf[_0xe29769];return _0x43d1b8;};'use strict';var _=require(_0xf32b('0x0'));var util=require(_0xf32b('0x1'));var logger=require('../../config/logger')(_0xf32b('0x2'));var moment=require('moment');var BPromise=require(_0xf32b('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf32b('0x4'));var rimraf=require(_0xf32b('0x5'));var config=require(_0xf32b('0x6'));var attributes=require('./intZohoAccount.attributes');var integrations=require(_0xf32b('0x7'));module[_0xf32b('0x8')]=function(_0x597478,_0x2a0b70){return _0x597478['define']('ZohoAccount',attributes,{'tableName':_0xf32b('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5b7c41,_0xca6203,_0x53f2d5){if(_0x5b7c41[_0xf32b('0xa')]('zone')||_0x5b7c41[_0xf32b('0xa')]('serverUrl')||_0x5b7c41[_0xf32b('0xa')]('clientId')||_0x5b7c41[_0xf32b('0xa')](_0xf32b('0xb'))||_0x5b7c41[_0xf32b('0xa')]('code')||_0x5b7c41['changed']('host')){var _0x1eb94a,_0x1b4cb7;_0x1eb94a=_0x5b7c41[_0xf32b('0xc')];var _0x772d68=_0x1eb94a[_0xf32b('0xd')](-0x1);if(_0x772d68==='/'||_0x772d68==='\x5c'||_0x772d68===':'){_0x1eb94a=_0x1eb94a[_0xf32b('0xe')](0x0,_0x1eb94a[_0xf32b('0xf')](_0x772d68));}switch(_0x5b7c41[_0xf32b('0x10')]){case'US':_0x1b4cb7=_0xf32b('0x11');break;case'AU':_0x1b4cb7='https://accounts.zoho.com.au';break;case'IN':_0x1b4cb7=_0xf32b('0x12');break;case'CN':_0x1b4cb7=_0xf32b('0x13');break;default:_0x1b4cb7=_0xf32b('0x14');break;}var _0x19ddde={'method':_0xf32b('0x15'),'uri':_0x1b4cb7+'/oauth/v2/token','form':{'grant_type':_0xf32b('0x16'),'client_id':_0x5b7c41['clientId'],'client_secret':_0x5b7c41[_0xf32b('0xb')],'redirect_uri':_0x5b7c41[_0xf32b('0xc')],'code':_0x5b7c41['code']},'headers':{'Content-Type':_0xf32b('0x17')}};return rp(_0x19ddde)[_0xf32b('0x18')](function(_0x761c08){var _0x1f9170=JSON[_0xf32b('0x19')](_0x761c08);if(_0x1f9170[_0xf32b('0x1a')]){_0x5b7c41[_0xf32b('0x1b')]=_0x1f9170[_0xf32b('0x1a')];logger[_0xf32b('0x1c')](util[_0xf32b('0x1d')](_0xf32b('0x1e'),_0x5b7c41[_0xf32b('0x1f')],_0x5b7c41['id']));}else{logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x5b7c41[_0xf32b('0x1f')],_0x5b7c41['id']),util['inspect'](_0x1f9170,{'showHidden':![],'depth':null}));}return _0x53f2d5(null,_0xca6203);})[_0xf32b('0x20')](function(_0x3a3798){logger['error'](util['format']('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x5b7c41[_0xf32b('0x1f')],_0x5b7c41['id']),util[_0xf32b('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x53f2d5(_0x3a3798);});}else{return _0x53f2d5(null,_0xca6203);}},'beforeUpdate':function(_0x2815b2,_0x1e943f,_0x9744ff){if(_0x2815b2['changed'](_0xf32b('0x10'))||_0x2815b2[_0xf32b('0xa')](_0xf32b('0xc'))||_0x2815b2[_0xf32b('0xa')](_0xf32b('0x22'))||_0x2815b2[_0xf32b('0xa')](_0xf32b('0xb'))||_0x2815b2['changed'](_0xf32b('0x23'))||_0x2815b2[_0xf32b('0xa')](_0xf32b('0x24'))){var _0x5bf780,_0x485f43;_0x5bf780=_0x2815b2[_0xf32b('0xc')];var _0x57566c=_0x5bf780[_0xf32b('0xd')](-0x1);if(_0x57566c==='/'||_0x57566c==='\x5c'||_0x57566c===':'){_0x5bf780=_0x5bf780['substring'](0x0,_0x5bf780[_0xf32b('0xf')](_0x57566c));}switch(_0x2815b2['zone']){case'US':_0x485f43='https://accounts.zoho.com';break;case'AU':_0x485f43=_0xf32b('0x25');break;case'IN':_0x485f43=_0xf32b('0x12');break;case'CN':_0x485f43='https://accounts.zoho.com.cn';break;default:_0x485f43=_0xf32b('0x14');break;}var _0x307852={'method':_0xf32b('0x15'),'uri':_0x485f43+_0xf32b('0x26'),'form':{'grant_type':_0xf32b('0x16'),'client_id':_0x2815b2[_0xf32b('0x22')],'client_secret':_0x2815b2[_0xf32b('0xb')],'redirect_uri':_0x2815b2['serverUrl'],'code':_0x2815b2[_0xf32b('0x23')]},'headers':{'Content-Type':'application/x-www-form-urlencoded'}};return rp(_0x307852)[_0xf32b('0x18')](function(_0x1454db){var _0x39132d=JSON[_0xf32b('0x19')](_0x1454db);if(_0x39132d[_0xf32b('0x1a')]){_0x2815b2[_0xf32b('0x1b')]=_0x39132d[_0xf32b('0x1a')];logger[_0xf32b('0x1c')](util[_0xf32b('0x1d')](_0xf32b('0x1e'),_0x2815b2[_0xf32b('0x1f')],_0x2815b2['id']));}else{logger[_0xf32b('0x27')](util[_0xf32b('0x1d')](_0xf32b('0x28'),_0x2815b2['name'],_0x2815b2['id']),util[_0xf32b('0x21')](_0x39132d,{'showHidden':![],'depth':null}));}return _0x9744ff(null,_0x1e943f);})[_0xf32b('0x20')](function(_0x4e0578){logger[_0xf32b('0x27')](util[_0xf32b('0x1d')](_0xf32b('0x28'),_0x2815b2['name'],_0x2815b2['id']),util[_0xf32b('0x21')](parsedResult,{'showHidden':![],'depth':null}));return _0x9744ff(_0x4e0578);});}else{return _0x9744ff(null,_0x1e943f);}}}});};
\ No newline at end of file
+var _0x754e=['lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','application/x-www-form-urlencoded','then','parse','refresh_token','refreshToken','format','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','inspect','clientSecret','https://accounts.zoho.com.au','authorization_code','info','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intZohoAccount.attributes','exports','define','ZohoAccount','int_zoho_accounts','changed','zone','serverUrl','clientId','code','host','slice','substring'];(function(_0x2bd385,_0xa82360){var _0x3b778d=function(_0x1a109b){while(--_0x1a109b){_0x2bd385['push'](_0x2bd385['shift']());}};_0x3b778d(++_0xa82360);}(_0x754e,0x118));var _0xe754=function(_0x17546e,_0x398a9e){_0x17546e=_0x17546e-0x0;var _0x3dde58=_0x754e[_0x17546e];return _0x3dde58;};'use strict';var _=require(_0xe754('0x0'));var util=require(_0xe754('0x1'));var logger=require('../../config/logger')(_0xe754('0x2'));var moment=require(_0xe754('0x3'));var BPromise=require(_0xe754('0x4'));var rp=require(_0xe754('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xe754('0x6'));var config=require(_0xe754('0x7'));var attributes=require(_0xe754('0x8'));var integrations=require('../../components/integrations/configuration');module[_0xe754('0x9')]=function(_0x4f43d6,_0x4ee22a){return _0x4f43d6[_0xe754('0xa')](_0xe754('0xb'),attributes,{'tableName':_0xe754('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x184b92,_0x2308fa,_0xab91fb){if(_0x184b92[_0xe754('0xd')](_0xe754('0xe'))||_0x184b92[_0xe754('0xd')](_0xe754('0xf'))||_0x184b92[_0xe754('0xd')](_0xe754('0x10'))||_0x184b92[_0xe754('0xd')]('clientSecret')||_0x184b92[_0xe754('0xd')](_0xe754('0x11'))||_0x184b92[_0xe754('0xd')](_0xe754('0x12'))){var _0x4681f9,_0x4e7e93;_0x4681f9=_0x184b92[_0xe754('0xf')];var _0x34fe7e=_0x4681f9[_0xe754('0x13')](-0x1);if(_0x34fe7e==='/'||_0x34fe7e==='\x5c'||_0x34fe7e===':'){_0x4681f9=_0x4681f9[_0xe754('0x14')](0x0,_0x4681f9[_0xe754('0x15')](_0x34fe7e));}switch(_0x184b92[_0xe754('0xe')]){case'US':_0x4e7e93=_0xe754('0x16');break;case'AU':_0x4e7e93='https://accounts.zoho.com.au';break;case'IN':_0x4e7e93=_0xe754('0x17');break;case'CN':_0x4e7e93=_0xe754('0x18');break;default:_0x4e7e93=_0xe754('0x19');break;}var _0x29b7fc={'method':_0xe754('0x1a'),'uri':_0x4e7e93+_0xe754('0x1b'),'form':{'grant_type':'authorization_code','client_id':_0x184b92[_0xe754('0x10')],'client_secret':_0x184b92['clientSecret'],'redirect_uri':_0x184b92['serverUrl'],'code':_0x184b92['code']},'headers':{'Content-Type':_0xe754('0x1c')}};return rp(_0x29b7fc)[_0xe754('0x1d')](function(_0x16f42e){var _0xc6424f=JSON[_0xe754('0x1e')](_0x16f42e);if(_0xc6424f[_0xe754('0x1f')]){_0x184b92[_0xe754('0x20')]=_0xc6424f[_0xe754('0x1f')];logger['info'](util[_0xe754('0x21')](_0xe754('0x22'),_0x184b92[_0xe754('0x23')],_0x184b92['id']));}else{logger[_0xe754('0x24')](util[_0xe754('0x21')](_0xe754('0x25'),_0x184b92[_0xe754('0x23')],_0x184b92['id']),util[_0xe754('0x26')](_0xc6424f,{'showHidden':![],'depth':null}));}return _0xab91fb(null,_0x2308fa);})['catch'](function(_0x3945d9){logger[_0xe754('0x24')](util[_0xe754('0x21')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x184b92[_0xe754('0x23')],_0x184b92['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0xab91fb(_0x3945d9);});}else{return _0xab91fb(null,_0x2308fa);}},'beforeUpdate':function(_0x123dec,_0x21ae02,_0x1271d5){if(_0x123dec[_0xe754('0xd')](_0xe754('0xe'))||_0x123dec['changed'](_0xe754('0xf'))||_0x123dec[_0xe754('0xd')](_0xe754('0x10'))||_0x123dec[_0xe754('0xd')](_0xe754('0x27'))||_0x123dec[_0xe754('0xd')](_0xe754('0x11'))||_0x123dec[_0xe754('0xd')](_0xe754('0x12'))){var _0x3ba570,_0x447bc8;_0x3ba570=_0x123dec['serverUrl'];var _0x41508a=_0x3ba570['slice'](-0x1);if(_0x41508a==='/'||_0x41508a==='\x5c'||_0x41508a===':'){_0x3ba570=_0x3ba570[_0xe754('0x14')](0x0,_0x3ba570['lastIndexOf'](_0x41508a));}switch(_0x123dec[_0xe754('0xe')]){case'US':_0x447bc8=_0xe754('0x16');break;case'AU':_0x447bc8=_0xe754('0x28');break;case'IN':_0x447bc8=_0xe754('0x17');break;case'CN':_0x447bc8=_0xe754('0x18');break;default:_0x447bc8='https://accounts.zoho.eu';break;}var _0x1cdb08={'method':_0xe754('0x1a'),'uri':_0x447bc8+_0xe754('0x1b'),'form':{'grant_type':_0xe754('0x29'),'client_id':_0x123dec[_0xe754('0x10')],'client_secret':_0x123dec['clientSecret'],'redirect_uri':_0x123dec['serverUrl'],'code':_0x123dec[_0xe754('0x11')]},'headers':{'Content-Type':_0xe754('0x1c')}};return rp(_0x1cdb08)['then'](function(_0x889431){var _0x274e92=JSON['parse'](_0x889431);if(_0x274e92[_0xe754('0x1f')]){_0x123dec[_0xe754('0x20')]=_0x274e92[_0xe754('0x1f')];logger[_0xe754('0x2a')](util[_0xe754('0x21')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x123dec['name'],_0x123dec['id']));}else{logger[_0xe754('0x24')](util[_0xe754('0x21')](_0xe754('0x25'),_0x123dec[_0xe754('0x23')],_0x123dec['id']),util[_0xe754('0x26')](_0x274e92,{'showHidden':![],'depth':null}));}return _0x1271d5(null,_0x21ae02);})['catch'](function(_0x22f6e0){logger[_0xe754('0x24')](util[_0xe754('0x21')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x123dec['name'],_0x123dec['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x1271d5(_0x22f6e0);});}else{return _0x1271d5(null,_0x21ae02);}}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8561=['util','moment','randomstring','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','info','ZohoAccount,\x20%s,\x20%s','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','findAll','options','raw','attributes','limit','map','include','model','GetZohoAccount','debug','ZohoAccount','find','where','then','ShowZohoAccount'];(function(_0x576266,_0x4002b0){var _0x18234f=function(_0x4e9ad5){while(--_0x4e9ad5){_0x576266['push'](_0x576266['shift']());}};_0x18234f(++_0x4002b0);}(_0x8561,0x1b2));var _0x1856=function(_0x38175c,_0x2de69b){_0x38175c=_0x38175c-0x0;var _0x1566ad=_0x8561[_0x38175c];return _0x1566ad;};'use strict';var _=require('lodash');var util=require(_0x1856('0x0'));var moment=require(_0x1856('0x1'));var BPromise=require('bluebird');var rs=require(_0x1856('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1856('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x1856('0x4'))('rpc');var config=require(_0x1856('0x5'));var jayson=require(_0x1856('0x6'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xe76f7e,_0x56a214,_0x598eba){return new BPromise(function(_0x1c79b0,_0x567852){return client['request'](_0xe76f7e,_0x598eba)['then'](function(_0x5c3bc5){logger[_0x1856('0x7')](_0x1856('0x8'),_0x56a214,'request\x20sent');logger['debug'](_0x1856('0x9'),_0x56a214,'request\x20sent',JSON[_0x1856('0xa')](_0x5c3bc5));if(_0x5c3bc5[_0x1856('0xb')]){if(_0x5c3bc5[_0x1856('0xb')]['code']===0x1f4){logger[_0x1856('0xb')](_0x1856('0x8'),_0x56a214,_0x5c3bc5['error'][_0x1856('0xc')]);return _0x567852(_0x5c3bc5[_0x1856('0xb')][_0x1856('0xc')]);}logger['error'](_0x1856('0x8'),_0x56a214,_0x5c3bc5[_0x1856('0xb')][_0x1856('0xc')]);return _0x1c79b0(_0x5c3bc5['error'][_0x1856('0xc')]);}else{logger[_0x1856('0x7')](_0x1856('0x8'),_0x56a214,_0x1856('0xd'));_0x1c79b0(_0x5c3bc5[_0x1856('0xe')][_0x1856('0xc')]);}})[_0x1856('0xf')](function(_0x51ed04){logger['error'](_0x1856('0x8'),_0x56a214,_0x51ed04);_0x567852(_0x51ed04);});});}exports['GetZohoAccount']=function(_0x4ccc42){var _0x1de74a=this;return new Promise(function(_0x2346f6,_0x5b12d0){return db['ZohoAccount'][_0x1856('0x10')]({'raw':_0x4ccc42[_0x1856('0x11')]?_0x4ccc42[_0x1856('0x11')][_0x1856('0x12')]===undefined?!![]:![]:!![],'where':_0x4ccc42[_0x1856('0x11')]?_0x4ccc42[_0x1856('0x11')]['where']||null:null,'attributes':_0x4ccc42[_0x1856('0x11')]?_0x4ccc42[_0x1856('0x11')][_0x1856('0x13')]||null:null,'limit':_0x4ccc42[_0x1856('0x11')]?_0x4ccc42[_0x1856('0x11')][_0x1856('0x14')]||null:null,'include':_0x4ccc42[_0x1856('0x11')]?_0x4ccc42['options']['include']?_[_0x1856('0x15')](_0x4ccc42[_0x1856('0x11')][_0x1856('0x16')],function(_0x4b867e){return{'model':db[_0x4b867e[_0x1856('0x17')]],'as':_0x4b867e['as'],'attributes':_0x4b867e[_0x1856('0x13')],'include':_0x4b867e[_0x1856('0x16')]?_[_0x1856('0x15')](_0x4b867e['include'],function(_0xfd069f){return{'model':db[_0xfd069f[_0x1856('0x17')]],'as':_0xfd069f['as'],'attributes':_0xfd069f[_0x1856('0x13')],'include':_0xfd069f[_0x1856('0x16')]?_['map'](_0xfd069f[_0x1856('0x16')],function(_0x4022e8){return{'model':db[_0x4022e8['model']],'as':_0x4022e8['as'],'attributes':_0x4022e8[_0x1856('0x13')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x46d381){logger['info'](_0x1856('0x18'),_0x4ccc42);logger[_0x1856('0x19')](_0x1856('0x18'),_0x4ccc42,JSON[_0x1856('0xa')](_0x46d381));_0x2346f6(_0x46d381);})['catch'](function(_0x2f3d8f){logger[_0x1856('0xb')](_0x1856('0x18'),_0x2f3d8f[_0x1856('0xc')],_0x4ccc42);_0x5b12d0(_0x1de74a[_0x1856('0xb')](0x1f4,_0x2f3d8f[_0x1856('0xc')]));});});};exports['ShowZohoAccount']=function(_0x2fbe7b){var _0x16ca12=this;return new Promise(function(_0x35428a,_0x48e78f){return db[_0x1856('0x1a')][_0x1856('0x1b')]({'raw':_0x2fbe7b[_0x1856('0x11')]?_0x2fbe7b['options'][_0x1856('0x12')]===undefined?!![]:![]:!![],'where':_0x2fbe7b['options']?_0x2fbe7b[_0x1856('0x11')][_0x1856('0x1c')]||null:null,'attributes':_0x2fbe7b[_0x1856('0x11')]?_0x2fbe7b[_0x1856('0x11')][_0x1856('0x13')]||null:null,'include':_0x2fbe7b[_0x1856('0x11')]?_0x2fbe7b[_0x1856('0x11')]['include']?_[_0x1856('0x15')](_0x2fbe7b[_0x1856('0x11')][_0x1856('0x16')],function(_0x1ab4c6){return{'model':db[_0x1ab4c6[_0x1856('0x17')]],'as':_0x1ab4c6['as'],'attributes':_0x1ab4c6['attributes'],'include':_0x1ab4c6[_0x1856('0x16')]?_[_0x1856('0x15')](_0x1ab4c6[_0x1856('0x16')],function(_0x4b2fca){return{'model':db[_0x4b2fca[_0x1856('0x17')]],'as':_0x4b2fca['as'],'attributes':_0x4b2fca[_0x1856('0x13')],'include':_0x4b2fca[_0x1856('0x16')]?_[_0x1856('0x15')](_0x4b2fca[_0x1856('0x16')],function(_0x5aa0e4){return{'model':db[_0x5aa0e4['model']],'as':_0x5aa0e4['as'],'attributes':_0x5aa0e4['attributes']};}):[]};}):[]};}):[]:[]})[_0x1856('0x1d')](function(_0x588865){logger[_0x1856('0x7')](_0x1856('0x1e'),_0x2fbe7b);logger['debug']('ShowZohoAccount',_0x2fbe7b,JSON[_0x1856('0xa')](_0x588865));_0x35428a(_0x588865);})[_0x1856('0xf')](function(_0x14b930){logger[_0x1856('0xb')]('ShowZohoAccount',_0x14b930[_0x1856('0xc')],_0x2fbe7b);_0x48e78f(_0x16ca12[_0x1856('0xb')](0x1f4,_0x14b930[_0x1856('0xc')]));});});};
\ No newline at end of file
+var _0x3445=['bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','then','info','request\x20sent','debug','ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ZohoAccount,\x20%s,\x20%s','result','catch','GetZohoAccount','ZohoAccount','options','where','attributes','limit','map','include','model','ShowZohoAccount','find','lodash','util','moment'];(function(_0xffd864,_0x3dc29d){var _0x121790=function(_0xc4bad7){while(--_0xc4bad7){_0xffd864['push'](_0xffd864['shift']());}};_0x121790(++_0x3dc29d);}(_0x3445,0x1b7));var _0x5344=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3445[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x5344('0x0'));var util=require(_0x5344('0x1'));var moment=require(_0x5344('0x2'));var BPromise=require(_0x5344('0x3'));var rs=require(_0x5344('0x4'));var fs=require('fs');var Redis=require(_0x5344('0x5'));var db=require(_0x5344('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x5344('0x7'));var config=require(_0x5344('0x8'));var jayson=require(_0x5344('0x9'));var client=jayson[_0x5344('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4ffe5f,_0x5642cb,_0x5a4f52){return new BPromise(function(_0x3f638c,_0x4adb8a){return client['request'](_0x4ffe5f,_0x5a4f52)[_0x5344('0xb')](function(_0xbc5346){logger[_0x5344('0xc')]('ZohoAccount,\x20%s,\x20%s',_0x5642cb,_0x5344('0xd'));logger[_0x5344('0xe')](_0x5344('0xf'),_0x5642cb,_0x5344('0xd'),JSON[_0x5344('0x10')](_0xbc5346));if(_0xbc5346[_0x5344('0x11')]){if(_0xbc5346['error'][_0x5344('0x12')]===0x1f4){logger[_0x5344('0x11')]('ZohoAccount,\x20%s,\x20%s',_0x5642cb,_0xbc5346[_0x5344('0x11')]['message']);return _0x4adb8a(_0xbc5346[_0x5344('0x11')]['message']);}logger['error']('ZohoAccount,\x20%s,\x20%s',_0x5642cb,_0xbc5346[_0x5344('0x11')][_0x5344('0x13')]);return _0x3f638c(_0xbc5346[_0x5344('0x11')][_0x5344('0x13')]);}else{logger[_0x5344('0xc')](_0x5344('0x14'),_0x5642cb,_0x5344('0xd'));_0x3f638c(_0xbc5346[_0x5344('0x15')][_0x5344('0x13')]);}})[_0x5344('0x16')](function(_0x4ae241){logger[_0x5344('0x11')](_0x5344('0x14'),_0x5642cb,_0x4ae241);_0x4adb8a(_0x4ae241);});});}exports[_0x5344('0x17')]=function(_0x215fbd){var _0x517b16=this;return new Promise(function(_0x4fb036,_0x508e34){return db[_0x5344('0x18')]['findAll']({'raw':_0x215fbd['options']?_0x215fbd['options']['raw']===undefined?!![]:![]:!![],'where':_0x215fbd[_0x5344('0x19')]?_0x215fbd[_0x5344('0x19')][_0x5344('0x1a')]||null:null,'attributes':_0x215fbd[_0x5344('0x19')]?_0x215fbd[_0x5344('0x19')][_0x5344('0x1b')]||null:null,'limit':_0x215fbd[_0x5344('0x19')]?_0x215fbd[_0x5344('0x19')][_0x5344('0x1c')]||null:null,'include':_0x215fbd[_0x5344('0x19')]?_0x215fbd['options']['include']?_[_0x5344('0x1d')](_0x215fbd[_0x5344('0x19')][_0x5344('0x1e')],function(_0x434e0d){return{'model':db[_0x434e0d[_0x5344('0x1f')]],'as':_0x434e0d['as'],'attributes':_0x434e0d['attributes'],'include':_0x434e0d[_0x5344('0x1e')]?_[_0x5344('0x1d')](_0x434e0d[_0x5344('0x1e')],function(_0x477c0a){return{'model':db[_0x477c0a['model']],'as':_0x477c0a['as'],'attributes':_0x477c0a[_0x5344('0x1b')],'include':_0x477c0a[_0x5344('0x1e')]?_[_0x5344('0x1d')](_0x477c0a[_0x5344('0x1e')],function(_0x4c120c){return{'model':db[_0x4c120c['model']],'as':_0x4c120c['as'],'attributes':_0x4c120c[_0x5344('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x5344('0xb')](function(_0x3471a9){logger[_0x5344('0xc')]('GetZohoAccount',_0x215fbd);logger[_0x5344('0xe')](_0x5344('0x17'),_0x215fbd,JSON[_0x5344('0x10')](_0x3471a9));_0x4fb036(_0x3471a9);})[_0x5344('0x16')](function(_0x1867d6){logger[_0x5344('0x11')](_0x5344('0x17'),_0x1867d6['message'],_0x215fbd);_0x508e34(_0x517b16[_0x5344('0x11')](0x1f4,_0x1867d6['message']));});});};exports[_0x5344('0x20')]=function(_0x2ad28e){var _0x3dbb4e=this;return new Promise(function(_0xdaa060,_0x43a1e2){return db[_0x5344('0x18')][_0x5344('0x21')]({'raw':_0x2ad28e[_0x5344('0x19')]?_0x2ad28e[_0x5344('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x2ad28e[_0x5344('0x19')]?_0x2ad28e[_0x5344('0x19')][_0x5344('0x1a')]||null:null,'attributes':_0x2ad28e[_0x5344('0x19')]?_0x2ad28e['options'][_0x5344('0x1b')]||null:null,'include':_0x2ad28e[_0x5344('0x19')]?_0x2ad28e['options'][_0x5344('0x1e')]?_[_0x5344('0x1d')](_0x2ad28e['options'][_0x5344('0x1e')],function(_0x3c0988){return{'model':db[_0x3c0988['model']],'as':_0x3c0988['as'],'attributes':_0x3c0988[_0x5344('0x1b')],'include':_0x3c0988[_0x5344('0x1e')]?_['map'](_0x3c0988[_0x5344('0x1e')],function(_0x332a1d){return{'model':db[_0x332a1d[_0x5344('0x1f')]],'as':_0x332a1d['as'],'attributes':_0x332a1d[_0x5344('0x1b')],'include':_0x332a1d[_0x5344('0x1e')]?_['map'](_0x332a1d['include'],function(_0x3fafb1){return{'model':db[_0x3fafb1['model']],'as':_0x3fafb1['as'],'attributes':_0x3fafb1['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a430){logger[_0x5344('0xc')](_0x5344('0x20'),_0x2ad28e);logger['debug'](_0x5344('0x20'),_0x2ad28e,JSON['stringify'](_0x45a430));_0xdaa060(_0x45a430);})['catch'](function(_0x5e812f){logger[_0x5344('0x11')](_0x5344('0x20'),_0x5e812f[_0x5344('0x13')],_0x2ad28e);_0x43a1e2(_0x3dbb4e[_0x5344('0x11')](0x1f4,_0x5e812f[_0x5344('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcc3=['getSubjects','/:id/descriptions','getDescriptions','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../config/environment','./intZohoConfiguration.controller','index','/:id','isAuthenticated','/:id/fields','get'];(function(_0x138836,_0x229129){var _0x322688=function(_0x54b101){while(--_0x54b101){_0x138836['push'](_0x138836['shift']());}};_0x322688(++_0x229129);}(_0xbcc3,0xcf));var _0x3bcc=function(_0x86b219,_0x43038f){_0x86b219=_0x86b219-0x0;var _0x1f320c=_0xbcc3[_0x86b219];return _0x1f320c;};'use strict';var multer=require(_0x3bcc('0x0'));var util=require(_0x3bcc('0x1'));var path=require(_0x3bcc('0x2'));var timeout=require(_0x3bcc('0x3'));var express=require('express');var router=express[_0x3bcc('0x4')]();var fs_extra=require(_0x3bcc('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x3bcc('0x6'));var controller=require(_0x3bcc('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x3bcc('0x8')]);router['get'](_0x3bcc('0x9'),auth[_0x3bcc('0xa')](),controller['show']);router['get'](_0x3bcc('0xb'),auth[_0x3bcc('0xa')](),controller['getFields']);router[_0x3bcc('0xc')]('/:id/subjects',auth[_0x3bcc('0xa')](),controller[_0x3bcc('0xd')]);router['get'](_0x3bcc('0xe'),auth[_0x3bcc('0xa')](),controller[_0x3bcc('0xf')]);router['post']('/',auth[_0x3bcc('0xa')](),controller[_0x3bcc('0x10')]);router[_0x3bcc('0x11')](_0x3bcc('0x9'),auth[_0x3bcc('0xa')](),controller[_0x3bcc('0x12')]);router[_0x3bcc('0x13')](_0x3bcc('0x9'),auth[_0x3bcc('0xa')](),controller[_0x3bcc('0x14')]);module[_0x3bcc('0x15')]=router;
\ No newline at end of file
+var _0x0fc2=['delete','destroy','exports','multer','util','connect-timeout','Router','../../config/environment','./intZohoConfiguration.controller','get','index','/:id','isAuthenticated','show','/:id/fields','getFields','/:id/descriptions','getDescriptions','create'];(function(_0x416468,_0x2e7a72){var _0x2ee9b7=function(_0xf354ce){while(--_0xf354ce){_0x416468['push'](_0x416468['shift']());}};_0x2ee9b7(++_0x2e7a72);}(_0x0fc2,0x88));var _0x20fc=function(_0x3ff0e0,_0x1efa24){_0x3ff0e0=_0x3ff0e0-0x0;var _0xb9e8ee=_0x0fc2[_0x3ff0e0];return _0xb9e8ee;};'use strict';var multer=require(_0x20fc('0x0'));var util=require(_0x20fc('0x1'));var path=require('path');var timeout=require(_0x20fc('0x2'));var express=require('express');var router=express[_0x20fc('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x20fc('0x4'));var controller=require(_0x20fc('0x5'));router[_0x20fc('0x6')]('/',auth['isAuthenticated'](),controller[_0x20fc('0x7')]);router[_0x20fc('0x6')](_0x20fc('0x8'),auth[_0x20fc('0x9')](),controller[_0x20fc('0xa')]);router['get'](_0x20fc('0xb'),auth[_0x20fc('0x9')](),controller[_0x20fc('0xc')]);router['get']('/:id/subjects',auth[_0x20fc('0x9')](),controller['getSubjects']);router[_0x20fc('0x6')](_0x20fc('0xd'),auth['isAuthenticated'](),controller[_0x20fc('0xe')]);router['post']('/',auth[_0x20fc('0x9')](),controller[_0x20fc('0xf')]);router['put'](_0x20fc('0x8'),auth[_0x20fc('0x9')](),controller['update']);router[_0x20fc('0x10')]('/:id',auth[_0x20fc('0x9')](),controller[_0x20fc('0x11')]);module[_0x20fc('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4ba=['ENUM','lead','nothing','contact_lead','contact','exports','STRING'];(function(_0x3a16d4,_0x23ecda){var _0x31ea9c=function(_0x35fea8){while(--_0x35fea8){_0x3a16d4['push'](_0x3a16d4['shift']());}};_0x31ea9c(++_0x23ecda);}(_0xa4ba,0x1b7));var _0xaa4b=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0xa4ba[_0x68c979];return _0x4f0001;};'use strict';var Sequelize=require('sequelize');module[_0xaa4b('0x0')]={'name':{'type':Sequelize[_0xaa4b('0x1')]},'moduleCreate':{'type':Sequelize[_0xaa4b('0x2')](_0xaa4b('0x3'),'contact',_0xaa4b('0x4')),'defaultValue':'lead'},'moduleSearch':{'type':Sequelize['ENUM'](_0xaa4b('0x5'),_0xaa4b('0x6'),_0xaa4b('0x3')),'defaultValue':_0xaa4b('0x5')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xb2e1=['lead','contact','nothing','contact_lead','sequelize','exports','STRING','ENUM'];(function(_0x14d930,_0x4539be){var _0x7667de=function(_0x1ee5d8){while(--_0x1ee5d8){_0x14d930['push'](_0x14d930['shift']());}};_0x7667de(++_0x4539be);}(_0xb2e1,0xd4));var _0x1b2e=function(_0x1f6e37,_0x560390){_0x1f6e37=_0x1f6e37-0x0;var _0x3d17ad=_0xb2e1[_0x1f6e37];return _0x3d17ad;};'use strict';var Sequelize=require(_0x1b2e('0x0'));module[_0x1b2e('0x1')]={'name':{'type':Sequelize[_0x1b2e('0x2')]},'moduleCreate':{'type':Sequelize[_0x1b2e('0x3')](_0x1b2e('0x4'),_0x1b2e('0x5'),_0x1b2e('0x6')),'defaultValue':_0x1b2e('0x4')},'moduleSearch':{'type':Sequelize['ENUM'](_0x1b2e('0x7'),'contact',_0x1b2e('0x4')),'defaultValue':_0x1b2e('0x7')},'description':{'type':Sequelize[_0x1b2e('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9af2=['update','getFields','findOne','ZohoField','hasOwnProperty','getSubjects','pick','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','then','destroy','error','name','ZohoConfiguration','rawAttributes','fieldName','type','model','map','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','options','findAll','rows','catch','show','params','includeAll','include','find','create','body'];(function(_0x820843,_0x4b6f7e){var _0x2077c2=function(_0x26e103){while(--_0x26e103){_0x820843['push'](_0x820843['shift']());}};_0x2077c2(++_0x4b6f7e);}(_0x9af2,0x1ee));var _0x29af=function(_0x5f335b,_0x4e048b){_0x5f335b=_0x5f335b-0x0;var _0x1c7c17=_0x9af2[_0x5f335b];return _0x1c7c17;};'use strict';var emlformat=require(_0x29af('0x0'));var rimraf=require(_0x29af('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x29af('0x2'));var rp=require(_0x29af('0x3'));var moment=require(_0x29af('0x4'));var BPromise=require(_0x29af('0x5'));var Mustache=require(_0x29af('0x6'));var util=require(_0x29af('0x7'));var path=require('path');var sox=require(_0x29af('0x8'));var csv=require(_0x29af('0x9'));var ejs=require(_0x29af('0xa'));var fs=require('fs');var fs_extra=require(_0x29af('0xb'));var _=require('lodash');var squel=require(_0x29af('0xc'));var crypto=require('crypto');var jsforce=require(_0x29af('0xd'));var deskjs=require(_0x29af('0xe'));var toCsv=require(_0x29af('0x9'));var querystring=require(_0x29af('0xf'));var Papa=require(_0x29af('0x10'));var Redis=require(_0x29af('0x11'));var authService=require(_0x29af('0x12'));var qs=require(_0x29af('0x13'));var as=require(_0x29af('0x14'));var hardwareService=require(_0x29af('0x15'));var logger=require('../../config/logger')(_0x29af('0x16'));var utils=require(_0x29af('0x17'));var config=require(_0x29af('0x18'));var licenseUtil=require(_0x29af('0x19'));var db=require(_0x29af('0x1a'))['db'];function respondWithStatusCode(_0x2a045a,_0x4c98cf){_0x4c98cf=_0x4c98cf||0xcc;return function(_0x4189f3){if(_0x4189f3){return _0x2a045a[_0x29af('0x1b')](_0x4c98cf);}return _0x2a045a['status'](_0x4c98cf)[_0x29af('0x1c')]();};}function respondWithResult(_0x110abc,_0x5759e6){_0x5759e6=_0x5759e6||0xc8;return function(_0x3811a7){if(_0x3811a7){return _0x110abc[_0x29af('0x1d')](_0x5759e6)[_0x29af('0x1e')](_0x3811a7);}};}function respondWithFilteredResult(_0x97227e,_0x3ee73f){return function(_0x5d78b0){if(_0x5d78b0){var _0x4d98b4=typeof _0x3ee73f[_0x29af('0x1f')]===_0x29af('0x20')&&typeof _0x3ee73f[_0x29af('0x21')]===_0x29af('0x20');var _0x292e63=_0x5d78b0[_0x29af('0x22')];var _0x76d405=_0x4d98b4?0x0:_0x3ee73f[_0x29af('0x1f')];var _0x2b0046=_0x4d98b4?_0x5d78b0[_0x29af('0x22')]:_0x3ee73f[_0x29af('0x1f')]+_0x3ee73f['limit'];var _0x269c7c;if(_0x2b0046>=_0x292e63){_0x2b0046=_0x292e63;_0x269c7c=0xc8;}else{_0x269c7c=0xce;}_0x97227e['status'](_0x269c7c);return _0x97227e[_0x29af('0x23')](_0x29af('0x24'),_0x76d405+'-'+_0x2b0046+'/'+_0x292e63)[_0x29af('0x1e')](_0x5d78b0);}return null;};}function patchUpdates(_0x20eda5){return function(_0x5a5656){try{jsonpatch['apply'](_0x5a5656,_0x20eda5,!![]);}catch(_0xe81a5e){return BPromise[_0x29af('0x25')](_0xe81a5e);}return _0x5a5656['save']();};}function saveUpdates(_0x3a2c88,_0x1761a4){return function(_0x415db0){if(_0x415db0){return _0x415db0['update'](_0x3a2c88)[_0x29af('0x26')](function(_0x1e126e){return _0x1e126e;});}return null;};}function removeEntity(_0x243d12,_0x2669b2){return function(_0x6a7023){if(_0x6a7023){return _0x6a7023[_0x29af('0x27')]()[_0x29af('0x26')](function(){_0x243d12[_0x29af('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x45cb18,_0x4c1b92){return function(_0x958271){if(!_0x958271){_0x45cb18[_0x29af('0x1b')](0x194);}return _0x958271;};}function handleError(_0x3692a3,_0x56ad99){_0x56ad99=_0x56ad99||0x1f4;return function(_0x229aa5){logger[_0x29af('0x28')](_0x229aa5['stack']);if(_0x229aa5[_0x29af('0x29')]){delete _0x229aa5['name'];}_0x3692a3[_0x29af('0x1d')](_0x56ad99)['send'](_0x229aa5);};}exports['index']=function(_0x15fd4d,_0x1c3ae4){var _0x5a730d={},_0xa1f50f={},_0xaad32d={'count':0x0,'rows':[]};var _0x12559e=_['map'](db[_0x29af('0x2a')][_0x29af('0x2b')],function(_0x5e4175){return{'name':_0x5e4175[_0x29af('0x2c')],'type':_0x5e4175[_0x29af('0x2d')]['key']};});_0xa1f50f[_0x29af('0x2e')]=_[_0x29af('0x2f')](_0x12559e,'name');_0xa1f50f['query']=_[_0x29af('0x30')](_0x15fd4d[_0x29af('0x31')]);_0xa1f50f[_0x29af('0x32')]=_[_0x29af('0x33')](_0xa1f50f[_0x29af('0x2e')],_0xa1f50f[_0x29af('0x31')]);_0x5a730d[_0x29af('0x34')]=_['intersection'](_0xa1f50f[_0x29af('0x2e')],qs[_0x29af('0x35')](_0x15fd4d['query']['fields']));_0x5a730d['attributes']=_0x5a730d[_0x29af('0x34')][_0x29af('0x36')]?_0x5a730d['attributes']:_0xa1f50f[_0x29af('0x2e')];if(!_0x15fd4d['query']['hasOwnProperty'](_0x29af('0x37'))){_0x5a730d[_0x29af('0x21')]=qs[_0x29af('0x21')](_0x15fd4d[_0x29af('0x31')][_0x29af('0x21')]);_0x5a730d[_0x29af('0x1f')]=qs[_0x29af('0x1f')](_0x15fd4d['query']['offset']);}_0x5a730d[_0x29af('0x38')]=qs[_0x29af('0x39')](_0x15fd4d['query'][_0x29af('0x39')]);_0x5a730d[_0x29af('0x3a')]=qs[_0x29af('0x32')](_['pick'](_0x15fd4d['query'],_0xa1f50f['filters']),_0x12559e);if(_0x15fd4d['query'][_0x29af('0x3b')]){_0x5a730d['where']=_[_0x29af('0x3c')](_0x5a730d[_0x29af('0x3a')],{'$or':_['map'](_0x12559e,function(_0x1d97da){if(_0x1d97da[_0x29af('0x2d')]!==_0x29af('0x3d')){var _0x3df3e4={};_0x3df3e4[_0x1d97da['name']]={'$like':'%'+_0x15fd4d[_0x29af('0x31')][_0x29af('0x3b')]+'%'};return _0x3df3e4;}})});}_0x5a730d=_[_0x29af('0x3c')]({},_0x5a730d,_0x15fd4d[_0x29af('0x3e')]);var _0x9db060={'where':_0x5a730d['where']};return db['ZohoConfiguration'][_0x29af('0x22')](_0x9db060)['then'](function(_0x13913d){_0xaad32d[_0x29af('0x22')]=_0x13913d;if(_0x15fd4d[_0x29af('0x31')]['includeAll']){_0x5a730d['include']=[{'all':!![]}];}return db[_0x29af('0x2a')][_0x29af('0x3f')](_0x5a730d);})[_0x29af('0x26')](function(_0x10e3ac){_0xaad32d[_0x29af('0x40')]=_0x10e3ac;return _0xaad32d;})['then'](respondWithFilteredResult(_0x1c3ae4,_0x5a730d))[_0x29af('0x41')](handleError(_0x1c3ae4,null));};exports[_0x29af('0x42')]=function(_0x165d43,_0x1e6de6){var _0x2c0ffc={'raw':![],'where':{'id':_0x165d43[_0x29af('0x43')]['id']}},_0x230ee1={};_0x230ee1['model']=_[_0x29af('0x30')](db[_0x29af('0x2a')][_0x29af('0x2b')]);_0x230ee1['query']=_[_0x29af('0x30')](_0x165d43[_0x29af('0x31')]);_0x230ee1['filters']=_[_0x29af('0x33')](_0x230ee1[_0x29af('0x2e')],_0x230ee1[_0x29af('0x31')]);_0x2c0ffc[_0x29af('0x34')]=_[_0x29af('0x33')](_0x230ee1['model'],qs['fields'](_0x165d43[_0x29af('0x31')][_0x29af('0x35')]));_0x2c0ffc[_0x29af('0x34')]=_0x2c0ffc[_0x29af('0x34')]['length']?_0x2c0ffc['attributes']:_0x230ee1[_0x29af('0x2e')];if(_0x165d43['query'][_0x29af('0x44')]){_0x2c0ffc[_0x29af('0x45')]=[{'all':!![]}];}_0x2c0ffc=_[_0x29af('0x3c')]({},_0x2c0ffc,_0x165d43[_0x29af('0x3e')]);return db['ZohoConfiguration'][_0x29af('0x46')](_0x2c0ffc)[_0x29af('0x26')](handleEntityNotFound(_0x1e6de6,null))[_0x29af('0x26')](respondWithResult(_0x1e6de6,null))[_0x29af('0x41')](handleError(_0x1e6de6,null));};exports['create']=function(_0x1c7059,_0x397d78){return db[_0x29af('0x2a')][_0x29af('0x47')](_0x1c7059[_0x29af('0x48')],{})[_0x29af('0x26')](respondWithResult(_0x397d78,0xc9))['catch'](handleError(_0x397d78,null));};exports[_0x29af('0x49')]=function(_0x1a1363,_0x24d61b){if(_0x1a1363[_0x29af('0x48')]['id']){delete _0x1a1363[_0x29af('0x48')]['id'];}return db['ZohoConfiguration'][_0x29af('0x46')]({'where':{'id':_0x1a1363[_0x29af('0x43')]['id']}})[_0x29af('0x26')](handleEntityNotFound(_0x24d61b,null))[_0x29af('0x26')](saveUpdates(_0x1a1363[_0x29af('0x48')],null))[_0x29af('0x26')](respondWithResult(_0x24d61b,null))[_0x29af('0x41')](handleError(_0x24d61b,null));};exports['destroy']=function(_0x6c8091,_0x285495){return db['ZohoConfiguration'][_0x29af('0x46')]({'where':{'id':_0x6c8091[_0x29af('0x43')]['id']}})['then'](handleEntityNotFound(_0x285495,null))[_0x29af('0x26')](removeEntity(_0x285495,null))[_0x29af('0x41')](handleError(_0x285495,null));};exports[_0x29af('0x4a')]=function(_0x29ce3c,_0xea84fe,_0x481c5f){var _0xe610c5={};var _0x431f50={};var _0x2ab424;var _0x14b391;return db[_0x29af('0x2a')][_0x29af('0x4b')]({'where':{'id':_0x29ce3c[_0x29af('0x43')]['id']}})['then'](handleEntityNotFound(_0xea84fe,null))[_0x29af('0x26')](function(_0x2e6e1f){if(_0x2e6e1f){_0x2ab424=_0x2e6e1f;_0x431f50[_0x29af('0x2e')]=_[_0x29af('0x30')](db[_0x29af('0x4c')][_0x29af('0x2b')]);_0x431f50['query']=_[_0x29af('0x30')](_0x29ce3c['query']);_0x431f50[_0x29af('0x32')]=_[_0x29af('0x33')](_0x431f50[_0x29af('0x2e')],_0x431f50['query']);_0xe610c5['attributes']=_[_0x29af('0x33')](_0x431f50[_0x29af('0x2e')],qs[_0x29af('0x35')](_0x29ce3c[_0x29af('0x31')][_0x29af('0x35')]));_0xe610c5['attributes']=_0xe610c5[_0x29af('0x34')][_0x29af('0x36')]?_0xe610c5[_0x29af('0x34')]:_0x431f50['model'];_0xe610c5[_0x29af('0x38')]=qs[_0x29af('0x39')](_0x29ce3c[_0x29af('0x31')][_0x29af('0x39')]);_0xe610c5[_0x29af('0x3a')]=qs[_0x29af('0x32')](_['pick'](_0x29ce3c[_0x29af('0x31')],_0x431f50[_0x29af('0x32')]));if(_0x29ce3c['query'][_0x29af('0x3b')]){_0xe610c5[_0x29af('0x3a')]=_[_0x29af('0x3c')](_0xe610c5[_0x29af('0x3a')],{'$or':_[_0x29af('0x2f')](_0xe610c5[_0x29af('0x34')],function(_0x3ac75e){var _0x3befc3={};_0x3befc3[_0x3ac75e]={'$like':'%'+_0x29ce3c[_0x29af('0x31')][_0x29af('0x3b')]+'%'};return _0x3befc3;})});}_0xe610c5=_[_0x29af('0x3c')]({},_0xe610c5,_0x29ce3c[_0x29af('0x3e')]);return _0x2ab424[_0x29af('0x4a')](_0xe610c5);}})['then'](function(_0x4c51e9){if(_0x4c51e9){_0x14b391=_0x4c51e9[_0x29af('0x36')];if(!_0x29ce3c['query'][_0x29af('0x4d')](_0x29af('0x37'))){_0xe610c5[_0x29af('0x21')]=qs[_0x29af('0x21')](_0x29ce3c[_0x29af('0x31')][_0x29af('0x21')]);_0xe610c5[_0x29af('0x1f')]=qs[_0x29af('0x1f')](_0x29ce3c['query']['offset']);}return _0x2ab424['getFields'](_0xe610c5);}})[_0x29af('0x26')](function(_0xa93ce1){if(_0xa93ce1){return _0xa93ce1?{'count':_0x14b391,'rows':_0xa93ce1}:null;}})[_0x29af('0x26')](respondWithResult(_0xea84fe,null))[_0x29af('0x41')](handleError(_0xea84fe,null));};exports[_0x29af('0x4e')]=function(_0x2ad82b,_0x374ebb,_0xaaa5b4){var _0x149c98={};var _0x185bd1={};var _0x39569b;var _0x4ddf21;return db[_0x29af('0x2a')][_0x29af('0x4b')]({'where':{'id':_0x2ad82b[_0x29af('0x43')]['id']}})[_0x29af('0x26')](handleEntityNotFound(_0x374ebb,null))[_0x29af('0x26')](function(_0x13ceeb){if(_0x13ceeb){_0x39569b=_0x13ceeb;_0x185bd1[_0x29af('0x2e')]=_[_0x29af('0x30')](db[_0x29af('0x4c')][_0x29af('0x2b')]);_0x185bd1['query']=_[_0x29af('0x30')](_0x2ad82b[_0x29af('0x31')]);_0x185bd1['filters']=_[_0x29af('0x33')](_0x185bd1[_0x29af('0x2e')],_0x185bd1[_0x29af('0x31')]);_0x149c98[_0x29af('0x34')]=_[_0x29af('0x33')](_0x185bd1[_0x29af('0x2e')],qs[_0x29af('0x35')](_0x2ad82b[_0x29af('0x31')][_0x29af('0x35')]));_0x149c98['attributes']=_0x149c98[_0x29af('0x34')][_0x29af('0x36')]?_0x149c98[_0x29af('0x34')]:_0x185bd1[_0x29af('0x2e')];_0x149c98[_0x29af('0x38')]=qs[_0x29af('0x39')](_0x2ad82b[_0x29af('0x31')][_0x29af('0x39')]);_0x149c98[_0x29af('0x3a')]=qs['filters'](_[_0x29af('0x4f')](_0x2ad82b[_0x29af('0x31')],_0x185bd1[_0x29af('0x32')]));if(_0x2ad82b[_0x29af('0x31')][_0x29af('0x3b')]){_0x149c98['where']=_[_0x29af('0x3c')](_0x149c98['where'],{'$or':_['map'](_0x149c98['attributes'],function(_0x3cdeae){var _0x1f9cd9={};_0x1f9cd9[_0x3cdeae]={'$like':'%'+_0x2ad82b[_0x29af('0x31')]['filter']+'%'};return _0x1f9cd9;})});}_0x149c98=_[_0x29af('0x3c')]({},_0x149c98,_0x2ad82b['options']);return _0x39569b[_0x29af('0x4e')](_0x149c98);}})['then'](function(_0x3c7edf){if(_0x3c7edf){_0x4ddf21=_0x3c7edf['length'];if(!_0x2ad82b[_0x29af('0x31')]['hasOwnProperty'](_0x29af('0x37'))){_0x149c98[_0x29af('0x21')]=qs[_0x29af('0x21')](_0x2ad82b['query']['limit']);_0x149c98[_0x29af('0x1f')]=qs[_0x29af('0x1f')](_0x2ad82b[_0x29af('0x31')][_0x29af('0x1f')]);}return _0x39569b[_0x29af('0x4e')](_0x149c98);}})[_0x29af('0x26')](function(_0x55bfc8){if(_0x55bfc8){return _0x55bfc8?{'count':_0x4ddf21,'rows':_0x55bfc8}:null;}})[_0x29af('0x26')](respondWithResult(_0x374ebb,null))[_0x29af('0x41')](handleError(_0x374ebb,null));};exports['getDescriptions']=function(_0x43c116,_0x52a9a3,_0x2f3d08){var _0x3bb9ed={};var _0x5bcef8={};var _0x1494bd;var _0xbc5a60;return db[_0x29af('0x2a')][_0x29af('0x4b')]({'where':{'id':_0x43c116[_0x29af('0x43')]['id']}})[_0x29af('0x26')](handleEntityNotFound(_0x52a9a3,null))[_0x29af('0x26')](function(_0x21a969){if(_0x21a969){_0x1494bd=_0x21a969;_0x5bcef8[_0x29af('0x2e')]=_[_0x29af('0x30')](db[_0x29af('0x4c')][_0x29af('0x2b')]);_0x5bcef8['query']=_[_0x29af('0x30')](_0x43c116[_0x29af('0x31')]);_0x5bcef8[_0x29af('0x32')]=_[_0x29af('0x33')](_0x5bcef8[_0x29af('0x2e')],_0x5bcef8['query']);_0x3bb9ed['attributes']=_[_0x29af('0x33')](_0x5bcef8[_0x29af('0x2e')],qs[_0x29af('0x35')](_0x43c116[_0x29af('0x31')][_0x29af('0x35')]));_0x3bb9ed[_0x29af('0x34')]=_0x3bb9ed[_0x29af('0x34')]['length']?_0x3bb9ed[_0x29af('0x34')]:_0x5bcef8['model'];_0x3bb9ed[_0x29af('0x38')]=qs[_0x29af('0x39')](_0x43c116['query'][_0x29af('0x39')]);_0x3bb9ed[_0x29af('0x3a')]=qs['filters'](_[_0x29af('0x4f')](_0x43c116['query'],_0x5bcef8['filters']));if(_0x43c116[_0x29af('0x31')][_0x29af('0x3b')]){_0x3bb9ed[_0x29af('0x3a')]=_[_0x29af('0x3c')](_0x3bb9ed[_0x29af('0x3a')],{'$or':_[_0x29af('0x2f')](_0x3bb9ed[_0x29af('0x34')],function(_0x350f1a){var _0x5a179d={};_0x5a179d[_0x350f1a]={'$like':'%'+_0x43c116[_0x29af('0x31')][_0x29af('0x3b')]+'%'};return _0x5a179d;})});}_0x3bb9ed=_[_0x29af('0x3c')]({},_0x3bb9ed,_0x43c116[_0x29af('0x3e')]);return _0x1494bd[_0x29af('0x50')](_0x3bb9ed);}})[_0x29af('0x26')](function(_0x2cbd13){if(_0x2cbd13){_0xbc5a60=_0x2cbd13[_0x29af('0x36')];if(!_0x43c116['query'][_0x29af('0x4d')](_0x29af('0x37'))){_0x3bb9ed['limit']=qs['limit'](_0x43c116[_0x29af('0x31')]['limit']);_0x3bb9ed[_0x29af('0x1f')]=qs['offset'](_0x43c116[_0x29af('0x31')][_0x29af('0x1f')]);}return _0x1494bd[_0x29af('0x50')](_0x3bb9ed);}})[_0x29af('0x26')](function(_0x16ed81){if(_0x16ed81){return _0x16ed81?{'count':_0xbc5a60,'rows':_0x16ed81}:null;}})[_0x29af('0x26')](respondWithResult(_0x52a9a3,null))[_0x29af('0x41')](handleError(_0x52a9a3,null));};
\ No newline at end of file
+var _0xe769=['reject','save','then','stack','name','send','index','map','fieldName','type','key','model','keys','query','intersection','attributes','fields','nolimit','where','pick','filters','merge','VIRTUAL','filter','options','ZohoConfiguration','includeAll','include','rows','catch','params','length','find','create','body','update','destroy','getFields','findOne','ZohoField','order','sort','getSubjects','rawAttributes','getDescriptions','hasOwnProperty','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','apply'];(function(_0x1a3276,_0xfddeaf){var _0xe10349=function(_0x38fd3e){while(--_0x38fd3e){_0x1a3276['push'](_0x1a3276['shift']());}};_0xe10349(++_0xfddeaf);}(_0xe769,0x127));var _0x9e76=function(_0x461c41,_0x2e6d1c){_0x461c41=_0x461c41-0x0;var _0x509e12=_0xe769[_0x461c41];return _0x509e12;};'use strict';var emlformat=require(_0x9e76('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9e76('0x1'));var jsonpatch=require(_0x9e76('0x2'));var rp=require('request-promise');var moment=require(_0x9e76('0x3'));var BPromise=require(_0x9e76('0x4'));var Mustache=require(_0x9e76('0x5'));var util=require(_0x9e76('0x6'));var path=require(_0x9e76('0x7'));var sox=require(_0x9e76('0x8'));var csv=require(_0x9e76('0x9'));var ejs=require(_0x9e76('0xa'));var fs=require('fs');var fs_extra=require(_0x9e76('0xb'));var _=require(_0x9e76('0xc'));var squel=require('squel');var crypto=require(_0x9e76('0xd'));var jsforce=require(_0x9e76('0xe'));var deskjs=require(_0x9e76('0xf'));var toCsv=require(_0x9e76('0x9'));var querystring=require(_0x9e76('0x10'));var Papa=require(_0x9e76('0x11'));var Redis=require(_0x9e76('0x12'));var authService=require(_0x9e76('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x9e76('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9e76('0x15'))(_0x9e76('0x16'));var utils=require(_0x9e76('0x17'));var config=require(_0x9e76('0x18'));var licenseUtil=require(_0x9e76('0x19'));var db=require(_0x9e76('0x1a'))['db'];function respondWithStatusCode(_0x3329c9,_0x52f21c){_0x52f21c=_0x52f21c||0xcc;return function(_0x6a9a2c){if(_0x6a9a2c){return _0x3329c9[_0x9e76('0x1b')](_0x52f21c);}return _0x3329c9[_0x9e76('0x1c')](_0x52f21c)[_0x9e76('0x1d')]();};}function respondWithResult(_0x33deac,_0x10870f){_0x10870f=_0x10870f||0xc8;return function(_0x700169){if(_0x700169){return _0x33deac[_0x9e76('0x1c')](_0x10870f)[_0x9e76('0x1e')](_0x700169);}};}function respondWithFilteredResult(_0x1a868c,_0x3599e4){return function(_0x34cd60){if(_0x34cd60){var _0x45ff1c=typeof _0x3599e4['offset']===_0x9e76('0x1f')&&typeof _0x3599e4[_0x9e76('0x20')]===_0x9e76('0x1f');var _0x2cd949=_0x34cd60[_0x9e76('0x21')];var _0x789ad9=_0x45ff1c?0x0:_0x3599e4[_0x9e76('0x22')];var _0x54e76a=_0x45ff1c?_0x34cd60['count']:_0x3599e4['offset']+_0x3599e4[_0x9e76('0x20')];var _0x175098;if(_0x54e76a>=_0x2cd949){_0x54e76a=_0x2cd949;_0x175098=0xc8;}else{_0x175098=0xce;}_0x1a868c[_0x9e76('0x1c')](_0x175098);return _0x1a868c[_0x9e76('0x23')]('Content-Range',_0x789ad9+'-'+_0x54e76a+'/'+_0x2cd949)[_0x9e76('0x1e')](_0x34cd60);}return null;};}function patchUpdates(_0x3407f4){return function(_0xd6591c){try{jsonpatch[_0x9e76('0x24')](_0xd6591c,_0x3407f4,!![]);}catch(_0x4ca9d3){return BPromise[_0x9e76('0x25')](_0x4ca9d3);}return _0xd6591c[_0x9e76('0x26')]();};}function saveUpdates(_0x3450b9,_0x21eccf){return function(_0x448f61){if(_0x448f61){return _0x448f61['update'](_0x3450b9)[_0x9e76('0x27')](function(_0x5f21d6){return _0x5f21d6;});}return null;};}function removeEntity(_0x4a670a,_0x2ad76f){return function(_0x19326e){if(_0x19326e){return _0x19326e['destroy']()[_0x9e76('0x27')](function(){_0x4a670a[_0x9e76('0x1c')](0xcc)[_0x9e76('0x1d')]();});}};}function handleEntityNotFound(_0x82d8f9,_0x4324de){return function(_0x20f218){if(!_0x20f218){_0x82d8f9['sendStatus'](0x194);}return _0x20f218;};}function handleError(_0x3a7309,_0x3ecf19){_0x3ecf19=_0x3ecf19||0x1f4;return function(_0x7e3f9a){logger['error'](_0x7e3f9a[_0x9e76('0x28')]);if(_0x7e3f9a[_0x9e76('0x29')]){delete _0x7e3f9a[_0x9e76('0x29')];}_0x3a7309[_0x9e76('0x1c')](_0x3ecf19)[_0x9e76('0x2a')](_0x7e3f9a);};}exports[_0x9e76('0x2b')]=function(_0x460a01,_0x3b3a7c){var _0x13bcd3={},_0x20ce7f={},_0x39ca2d={'count':0x0,'rows':[]};var _0x284147=_[_0x9e76('0x2c')](db['ZohoConfiguration']['rawAttributes'],function(_0xef3a37){return{'name':_0xef3a37[_0x9e76('0x2d')],'type':_0xef3a37[_0x9e76('0x2e')][_0x9e76('0x2f')]};});_0x20ce7f[_0x9e76('0x30')]=_[_0x9e76('0x2c')](_0x284147,_0x9e76('0x29'));_0x20ce7f['query']=_[_0x9e76('0x31')](_0x460a01[_0x9e76('0x32')]);_0x20ce7f['filters']=_[_0x9e76('0x33')](_0x20ce7f[_0x9e76('0x30')],_0x20ce7f['query']);_0x13bcd3[_0x9e76('0x34')]=_[_0x9e76('0x33')](_0x20ce7f['model'],qs['fields'](_0x460a01[_0x9e76('0x32')][_0x9e76('0x35')]));_0x13bcd3[_0x9e76('0x34')]=_0x13bcd3['attributes']['length']?_0x13bcd3[_0x9e76('0x34')]:_0x20ce7f[_0x9e76('0x30')];if(!_0x460a01[_0x9e76('0x32')]['hasOwnProperty'](_0x9e76('0x36'))){_0x13bcd3[_0x9e76('0x20')]=qs[_0x9e76('0x20')](_0x460a01[_0x9e76('0x32')][_0x9e76('0x20')]);_0x13bcd3[_0x9e76('0x22')]=qs[_0x9e76('0x22')](_0x460a01[_0x9e76('0x32')][_0x9e76('0x22')]);}_0x13bcd3['order']=qs['sort'](_0x460a01[_0x9e76('0x32')]['sort']);_0x13bcd3[_0x9e76('0x37')]=qs['filters'](_[_0x9e76('0x38')](_0x460a01['query'],_0x20ce7f[_0x9e76('0x39')]),_0x284147);if(_0x460a01[_0x9e76('0x32')]['filter']){_0x13bcd3[_0x9e76('0x37')]=_[_0x9e76('0x3a')](_0x13bcd3[_0x9e76('0x37')],{'$or':_[_0x9e76('0x2c')](_0x284147,function(_0x1e2ff7){if(_0x1e2ff7[_0x9e76('0x2e')]!==_0x9e76('0x3b')){var _0x8e9a1e={};_0x8e9a1e[_0x1e2ff7[_0x9e76('0x29')]]={'$like':'%'+_0x460a01[_0x9e76('0x32')][_0x9e76('0x3c')]+'%'};return _0x8e9a1e;}})});}_0x13bcd3=_[_0x9e76('0x3a')]({},_0x13bcd3,_0x460a01[_0x9e76('0x3d')]);var _0x2c3b69={'where':_0x13bcd3[_0x9e76('0x37')]};return db[_0x9e76('0x3e')][_0x9e76('0x21')](_0x2c3b69)[_0x9e76('0x27')](function(_0x5c137b){_0x39ca2d['count']=_0x5c137b;if(_0x460a01[_0x9e76('0x32')][_0x9e76('0x3f')]){_0x13bcd3[_0x9e76('0x40')]=[{'all':!![]}];}return db[_0x9e76('0x3e')]['findAll'](_0x13bcd3);})['then'](function(_0x53141a){_0x39ca2d[_0x9e76('0x41')]=_0x53141a;return _0x39ca2d;})['then'](respondWithFilteredResult(_0x3b3a7c,_0x13bcd3))[_0x9e76('0x42')](handleError(_0x3b3a7c,null));};exports['show']=function(_0x93f778,_0x8e6eb0){var _0x2702b6={'raw':![],'where':{'id':_0x93f778[_0x9e76('0x43')]['id']}},_0x229619={};_0x229619[_0x9e76('0x30')]=_[_0x9e76('0x31')](db[_0x9e76('0x3e')]['rawAttributes']);_0x229619['query']=_['keys'](_0x93f778[_0x9e76('0x32')]);_0x229619[_0x9e76('0x39')]=_[_0x9e76('0x33')](_0x229619[_0x9e76('0x30')],_0x229619[_0x9e76('0x32')]);_0x2702b6['attributes']=_['intersection'](_0x229619['model'],qs[_0x9e76('0x35')](_0x93f778[_0x9e76('0x32')][_0x9e76('0x35')]));_0x2702b6[_0x9e76('0x34')]=_0x2702b6[_0x9e76('0x34')][_0x9e76('0x44')]?_0x2702b6[_0x9e76('0x34')]:_0x229619[_0x9e76('0x30')];if(_0x93f778[_0x9e76('0x32')]['includeAll']){_0x2702b6[_0x9e76('0x40')]=[{'all':!![]}];}_0x2702b6=_[_0x9e76('0x3a')]({},_0x2702b6,_0x93f778[_0x9e76('0x3d')]);return db[_0x9e76('0x3e')][_0x9e76('0x45')](_0x2702b6)['then'](handleEntityNotFound(_0x8e6eb0,null))['then'](respondWithResult(_0x8e6eb0,null))[_0x9e76('0x42')](handleError(_0x8e6eb0,null));};exports[_0x9e76('0x46')]=function(_0xb572ff,_0x1e7913){return db[_0x9e76('0x3e')][_0x9e76('0x46')](_0xb572ff[_0x9e76('0x47')],{})[_0x9e76('0x27')](respondWithResult(_0x1e7913,0xc9))['catch'](handleError(_0x1e7913,null));};exports[_0x9e76('0x48')]=function(_0x2b87d8,_0x3ef886){if(_0x2b87d8['body']['id']){delete _0x2b87d8[_0x9e76('0x47')]['id'];}return db['ZohoConfiguration']['find']({'where':{'id':_0x2b87d8['params']['id']}})[_0x9e76('0x27')](handleEntityNotFound(_0x3ef886,null))[_0x9e76('0x27')](saveUpdates(_0x2b87d8[_0x9e76('0x47')],null))[_0x9e76('0x27')](respondWithResult(_0x3ef886,null))[_0x9e76('0x42')](handleError(_0x3ef886,null));};exports[_0x9e76('0x49')]=function(_0x1f935d,_0x311d9d){return db[_0x9e76('0x3e')]['find']({'where':{'id':_0x1f935d[_0x9e76('0x43')]['id']}})[_0x9e76('0x27')](handleEntityNotFound(_0x311d9d,null))[_0x9e76('0x27')](removeEntity(_0x311d9d,null))[_0x9e76('0x42')](handleError(_0x311d9d,null));};exports[_0x9e76('0x4a')]=function(_0xc2e108,_0x434087,_0x35e29c){var _0x1943fa={};var _0x14c4b1={};var _0x4afe1d;var _0x2ced22;return db[_0x9e76('0x3e')][_0x9e76('0x4b')]({'where':{'id':_0xc2e108['params']['id']}})[_0x9e76('0x27')](handleEntityNotFound(_0x434087,null))[_0x9e76('0x27')](function(_0x5bbe03){if(_0x5bbe03){_0x4afe1d=_0x5bbe03;_0x14c4b1['model']=_[_0x9e76('0x31')](db[_0x9e76('0x4c')]['rawAttributes']);_0x14c4b1[_0x9e76('0x32')]=_[_0x9e76('0x31')](_0xc2e108[_0x9e76('0x32')]);_0x14c4b1[_0x9e76('0x39')]=_[_0x9e76('0x33')](_0x14c4b1[_0x9e76('0x30')],_0x14c4b1[_0x9e76('0x32')]);_0x1943fa[_0x9e76('0x34')]=_[_0x9e76('0x33')](_0x14c4b1['model'],qs[_0x9e76('0x35')](_0xc2e108[_0x9e76('0x32')]['fields']));_0x1943fa['attributes']=_0x1943fa[_0x9e76('0x34')][_0x9e76('0x44')]?_0x1943fa[_0x9e76('0x34')]:_0x14c4b1[_0x9e76('0x30')];_0x1943fa[_0x9e76('0x4d')]=qs[_0x9e76('0x4e')](_0xc2e108[_0x9e76('0x32')][_0x9e76('0x4e')]);_0x1943fa[_0x9e76('0x37')]=qs[_0x9e76('0x39')](_[_0x9e76('0x38')](_0xc2e108[_0x9e76('0x32')],_0x14c4b1['filters']));if(_0xc2e108[_0x9e76('0x32')][_0x9e76('0x3c')]){_0x1943fa[_0x9e76('0x37')]=_['merge'](_0x1943fa[_0x9e76('0x37')],{'$or':_['map'](_0x1943fa[_0x9e76('0x34')],function(_0x3d2796){var _0x42b81a={};_0x42b81a[_0x3d2796]={'$like':'%'+_0xc2e108[_0x9e76('0x32')]['filter']+'%'};return _0x42b81a;})});}_0x1943fa=_['merge']({},_0x1943fa,_0xc2e108[_0x9e76('0x3d')]);return _0x4afe1d[_0x9e76('0x4a')](_0x1943fa);}})['then'](function(_0x99b46c){if(_0x99b46c){_0x2ced22=_0x99b46c['length'];if(!_0xc2e108[_0x9e76('0x32')]['hasOwnProperty']('nolimit')){_0x1943fa[_0x9e76('0x20')]=qs[_0x9e76('0x20')](_0xc2e108['query']['limit']);_0x1943fa[_0x9e76('0x22')]=qs[_0x9e76('0x22')](_0xc2e108[_0x9e76('0x32')][_0x9e76('0x22')]);}return _0x4afe1d[_0x9e76('0x4a')](_0x1943fa);}})[_0x9e76('0x27')](function(_0x3b51a8){if(_0x3b51a8){return _0x3b51a8?{'count':_0x2ced22,'rows':_0x3b51a8}:null;}})[_0x9e76('0x27')](respondWithResult(_0x434087,null))[_0x9e76('0x42')](handleError(_0x434087,null));};exports[_0x9e76('0x4f')]=function(_0x224d9b,_0x28ca16,_0x5dc699){var _0x22db78={};var _0x2f194e={};var _0x2c3d02;var _0x74d53a;return db[_0x9e76('0x3e')][_0x9e76('0x4b')]({'where':{'id':_0x224d9b[_0x9e76('0x43')]['id']}})[_0x9e76('0x27')](handleEntityNotFound(_0x28ca16,null))[_0x9e76('0x27')](function(_0x52592d){if(_0x52592d){_0x2c3d02=_0x52592d;_0x2f194e['model']=_['keys'](db['ZohoField'][_0x9e76('0x50')]);_0x2f194e[_0x9e76('0x32')]=_[_0x9e76('0x31')](_0x224d9b[_0x9e76('0x32')]);_0x2f194e[_0x9e76('0x39')]=_['intersection'](_0x2f194e['model'],_0x2f194e[_0x9e76('0x32')]);_0x22db78[_0x9e76('0x34')]=_['intersection'](_0x2f194e[_0x9e76('0x30')],qs[_0x9e76('0x35')](_0x224d9b[_0x9e76('0x32')][_0x9e76('0x35')]));_0x22db78[_0x9e76('0x34')]=_0x22db78[_0x9e76('0x34')][_0x9e76('0x44')]?_0x22db78[_0x9e76('0x34')]:_0x2f194e[_0x9e76('0x30')];_0x22db78['order']=qs[_0x9e76('0x4e')](_0x224d9b[_0x9e76('0x32')]['sort']);_0x22db78[_0x9e76('0x37')]=qs[_0x9e76('0x39')](_['pick'](_0x224d9b['query'],_0x2f194e['filters']));if(_0x224d9b[_0x9e76('0x32')][_0x9e76('0x3c')]){_0x22db78[_0x9e76('0x37')]=_['merge'](_0x22db78[_0x9e76('0x37')],{'$or':_['map'](_0x22db78['attributes'],function(_0x5ca627){var _0x5a1cf2={};_0x5a1cf2[_0x5ca627]={'$like':'%'+_0x224d9b[_0x9e76('0x32')][_0x9e76('0x3c')]+'%'};return _0x5a1cf2;})});}_0x22db78=_[_0x9e76('0x3a')]({},_0x22db78,_0x224d9b[_0x9e76('0x3d')]);return _0x2c3d02[_0x9e76('0x4f')](_0x22db78);}})[_0x9e76('0x27')](function(_0x55b0bb){if(_0x55b0bb){_0x74d53a=_0x55b0bb[_0x9e76('0x44')];if(!_0x224d9b[_0x9e76('0x32')]['hasOwnProperty']('nolimit')){_0x22db78['limit']=qs[_0x9e76('0x20')](_0x224d9b[_0x9e76('0x32')][_0x9e76('0x20')]);_0x22db78['offset']=qs[_0x9e76('0x22')](_0x224d9b[_0x9e76('0x32')]['offset']);}return _0x2c3d02['getSubjects'](_0x22db78);}})[_0x9e76('0x27')](function(_0xa9e0f1){if(_0xa9e0f1){return _0xa9e0f1?{'count':_0x74d53a,'rows':_0xa9e0f1}:null;}})[_0x9e76('0x27')](respondWithResult(_0x28ca16,null))[_0x9e76('0x42')](handleError(_0x28ca16,null));};exports[_0x9e76('0x51')]=function(_0x3a6877,_0x17524d,_0x4cb6fa){var _0x1212eb={};var _0x20ed66={};var _0x1804f0;var _0x1c47fc;return db[_0x9e76('0x3e')][_0x9e76('0x4b')]({'where':{'id':_0x3a6877[_0x9e76('0x43')]['id']}})[_0x9e76('0x27')](handleEntityNotFound(_0x17524d,null))[_0x9e76('0x27')](function(_0x48718e){if(_0x48718e){_0x1804f0=_0x48718e;_0x20ed66[_0x9e76('0x30')]=_[_0x9e76('0x31')](db[_0x9e76('0x4c')][_0x9e76('0x50')]);_0x20ed66[_0x9e76('0x32')]=_[_0x9e76('0x31')](_0x3a6877['query']);_0x20ed66[_0x9e76('0x39')]=_[_0x9e76('0x33')](_0x20ed66['model'],_0x20ed66[_0x9e76('0x32')]);_0x1212eb[_0x9e76('0x34')]=_[_0x9e76('0x33')](_0x20ed66[_0x9e76('0x30')],qs[_0x9e76('0x35')](_0x3a6877[_0x9e76('0x32')][_0x9e76('0x35')]));_0x1212eb['attributes']=_0x1212eb[_0x9e76('0x34')][_0x9e76('0x44')]?_0x1212eb[_0x9e76('0x34')]:_0x20ed66[_0x9e76('0x30')];_0x1212eb[_0x9e76('0x4d')]=qs[_0x9e76('0x4e')](_0x3a6877[_0x9e76('0x32')]['sort']);_0x1212eb['where']=qs[_0x9e76('0x39')](_[_0x9e76('0x38')](_0x3a6877[_0x9e76('0x32')],_0x20ed66['filters']));if(_0x3a6877['query'][_0x9e76('0x3c')]){_0x1212eb[_0x9e76('0x37')]=_[_0x9e76('0x3a')](_0x1212eb[_0x9e76('0x37')],{'$or':_['map'](_0x1212eb[_0x9e76('0x34')],function(_0x1da5c6){var _0x1ab0cb={};_0x1ab0cb[_0x1da5c6]={'$like':'%'+_0x3a6877[_0x9e76('0x32')][_0x9e76('0x3c')]+'%'};return _0x1ab0cb;})});}_0x1212eb=_[_0x9e76('0x3a')]({},_0x1212eb,_0x3a6877['options']);return _0x1804f0[_0x9e76('0x51')](_0x1212eb);}})[_0x9e76('0x27')](function(_0x5e10ce){if(_0x5e10ce){_0x1c47fc=_0x5e10ce['length'];if(!_0x3a6877[_0x9e76('0x32')][_0x9e76('0x52')](_0x9e76('0x36'))){_0x1212eb['limit']=qs[_0x9e76('0x20')](_0x3a6877[_0x9e76('0x32')]['limit']);_0x1212eb[_0x9e76('0x22')]=qs[_0x9e76('0x22')](_0x3a6877[_0x9e76('0x32')][_0x9e76('0x22')]);}return _0x1804f0[_0x9e76('0x51')](_0x1212eb);}})[_0x9e76('0x27')](function(_0x2eb8f4){if(_0x2eb8f4){return _0x2eb8f4?{'count':_0x1c47fc,'rows':_0x2eb8f4}:null;}})[_0x9e76('0x27')](respondWithResult(_0x17524d,null))[_0x9e76('0x42')](handleError(_0x17524d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc98a=['api','moment','bluebird','path','rimraf','../../config/environment','./intZohoConfiguration.attributes','define','ZohoConfiguration','lodash','util'];(function(_0x1b7b39,_0x3c0a3e){var _0x3c070d=function(_0x45d78c){while(--_0x45d78c){_0x1b7b39['push'](_0x1b7b39['shift']());}};_0x3c070d(++_0x3c0a3e);}(_0xc98a,0x1b6));var _0xac98=function(_0x141bfa,_0x32ec65){_0x141bfa=_0x141bfa-0x0;var _0x4254fa=_0xc98a[_0x141bfa];return _0x4254fa;};'use strict';var _=require(_0xac98('0x0'));var util=require(_0xac98('0x1'));var logger=require('../../config/logger')(_0xac98('0x2'));var moment=require(_0xac98('0x3'));var BPromise=require(_0xac98('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xac98('0x5'));var rimraf=require(_0xac98('0x6'));var config=require(_0xac98('0x7'));var attributes=require(_0xac98('0x8'));module['exports']=function(_0x3d54c9,_0x1854c5){return _0x3d54c9[_0xac98('0x9')](_0xac98('0xa'),attributes,{'tableName':'int_zoho_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x55d9=['./intZohoConfiguration.attributes','define','ZohoConfiguration','int_zoho_configurations','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x12ca5f,_0x223d98){var _0xfc3ae9=function(_0x1928fb){while(--_0x1928fb){_0x12ca5f['push'](_0x12ca5f['shift']());}};_0xfc3ae9(++_0x223d98);}(_0x55d9,0xeb));var _0x955d=function(_0x2f1172,_0x5f5b26){_0x2f1172=_0x2f1172-0x0;var _0x58e374=_0x55d9[_0x2f1172];return _0x58e374;};'use strict';var _=require(_0x955d('0x0'));var util=require('util');var logger=require(_0x955d('0x1'))(_0x955d('0x2'));var moment=require(_0x955d('0x3'));var BPromise=require(_0x955d('0x4'));var rp=require(_0x955d('0x5'));var fs=require('fs');var path=require(_0x955d('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x955d('0x7'));module['exports']=function(_0x27f87d,_0x4c8739){return _0x27f87d[_0x955d('0x8')](_0x955d('0x9'),attributes,{'tableName':_0x955d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe44e=['ZohoConfiguration,\x20%s,\x20%s','request\x20sent','debug','error','message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','info'];(function(_0x548adf,_0x4111cf){var _0x1d3ef2=function(_0x518216){while(--_0x518216){_0x548adf['push'](_0x548adf['shift']());}};_0x1d3ef2(++_0x4111cf);}(_0xe44e,0x1bb));var _0xee44=function(_0x5d78ed,_0x587729){_0x5d78ed=_0x5d78ed-0x0;var _0x1bab1c=_0xe44e[_0x5d78ed];return _0x1bab1c;};'use strict';var _=require('lodash');var util=require(_0xee44('0x0'));var moment=require(_0xee44('0x1'));var BPromise=require(_0xee44('0x2'));var rs=require(_0xee44('0x3'));var fs=require('fs');var Redis=require(_0xee44('0x4'));var db=require(_0xee44('0x5'))['db'];var utils=require(_0xee44('0x6'));var logger=require(_0xee44('0x7'))(_0xee44('0x8'));var config=require(_0xee44('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xee44('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x22cc2a,_0x32b18a,_0x4a9ecf){return new BPromise(function(_0x553728,_0x5f22da){return client[_0xee44('0xb')](_0x22cc2a,_0x4a9ecf)['then'](function(_0x58552b){logger[_0xee44('0xc')](_0xee44('0xd'),_0x32b18a,_0xee44('0xe'));logger[_0xee44('0xf')]('ZohoConfiguration,\x20%s,\x20%s,\x20%s',_0x32b18a,_0xee44('0xe'),JSON['stringify'](_0x58552b));if(_0x58552b[_0xee44('0x10')]){if(_0x58552b[_0xee44('0x10')]['code']===0x1f4){logger[_0xee44('0x10')](_0xee44('0xd'),_0x32b18a,_0x58552b['error'][_0xee44('0x11')]);return _0x5f22da(_0x58552b['error'][_0xee44('0x11')]);}logger[_0xee44('0x10')](_0xee44('0xd'),_0x32b18a,_0x58552b[_0xee44('0x10')][_0xee44('0x11')]);return _0x553728(_0x58552b['error'][_0xee44('0x11')]);}else{logger[_0xee44('0xc')]('ZohoConfiguration,\x20%s,\x20%s',_0x32b18a,'request\x20sent');_0x553728(_0x58552b['result'][_0xee44('0x11')]);}})[_0xee44('0x12')](function(_0x2487d9){logger[_0xee44('0x10')]('ZohoConfiguration,\x20%s,\x20%s',_0x32b18a,_0x2487d9);_0x5f22da(_0x2487d9);});});}
\ No newline at end of file
+var _0xcb94=['jayson/promise','client','http','request','then','info','debug','ZohoConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','ZohoConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x46ad9e,_0x203184){var _0x5727cb=function(_0x32a93e){while(--_0x32a93e){_0x46ad9e['push'](_0x46ad9e['shift']());}};_0x5727cb(++_0x203184);}(_0xcb94,0x92));var _0x4cb9=function(_0x497161,_0x413161){_0x497161=_0x497161-0x0;var _0x3b6172=_0xcb94[_0x497161];return _0x3b6172;};'use strict';var _=require(_0x4cb9('0x0'));var util=require(_0x4cb9('0x1'));var moment=require('moment');var BPromise=require(_0x4cb9('0x2'));var rs=require(_0x4cb9('0x3'));var fs=require('fs');var Redis=require(_0x4cb9('0x4'));var db=require(_0x4cb9('0x5'))['db'];var utils=require(_0x4cb9('0x6'));var logger=require(_0x4cb9('0x7'))(_0x4cb9('0x8'));var config=require(_0x4cb9('0x9'));var jayson=require(_0x4cb9('0xa'));var client=jayson[_0x4cb9('0xb')][_0x4cb9('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x2aaffd,_0x593594,_0x5b05d3){return new BPromise(function(_0x55b192,_0x354b31){return client[_0x4cb9('0xd')](_0x2aaffd,_0x5b05d3)[_0x4cb9('0xe')](function(_0x5ef5fc){logger[_0x4cb9('0xf')]('ZohoConfiguration,\x20%s,\x20%s',_0x593594,'request\x20sent');logger[_0x4cb9('0x10')](_0x4cb9('0x11'),_0x593594,_0x4cb9('0x12'),JSON[_0x4cb9('0x13')](_0x5ef5fc));if(_0x5ef5fc['error']){if(_0x5ef5fc[_0x4cb9('0x14')][_0x4cb9('0x15')]===0x1f4){logger[_0x4cb9('0x14')](_0x4cb9('0x16'),_0x593594,_0x5ef5fc[_0x4cb9('0x14')][_0x4cb9('0x17')]);return _0x354b31(_0x5ef5fc[_0x4cb9('0x14')][_0x4cb9('0x17')]);}logger[_0x4cb9('0x14')]('ZohoConfiguration,\x20%s,\x20%s',_0x593594,_0x5ef5fc[_0x4cb9('0x14')][_0x4cb9('0x17')]);return _0x55b192(_0x5ef5fc[_0x4cb9('0x14')][_0x4cb9('0x17')]);}else{logger[_0x4cb9('0xf')]('ZohoConfiguration,\x20%s,\x20%s',_0x593594,_0x4cb9('0x12'));_0x55b192(_0x5ef5fc[_0x4cb9('0x18')][_0x4cb9('0x17')]);}})[_0x4cb9('0x19')](function(_0x3cf3a9){logger['error']('ZohoConfiguration,\x20%s,\x20%s',_0x593594,_0x3cf3a9);_0x354b31(_0x3cf3a9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabea=['show','post','create','/:id','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./intZohoField.controller','get','isAuthenticated'];(function(_0xfee5ba,_0x5d723d){var _0x383f9e=function(_0xd03646){while(--_0xd03646){_0xfee5ba['push'](_0xfee5ba['shift']());}};_0x383f9e(++_0x5d723d);}(_0xabea,0x1c6));var _0xaabe=function(_0x5f3d8c,_0x386b87){_0x5f3d8c=_0x5f3d8c-0x0;var _0x12ff98=_0xabea[_0x5f3d8c];return _0x12ff98;};'use strict';var multer=require(_0xaabe('0x0'));var util=require(_0xaabe('0x1'));var path=require('path');var timeout=require(_0xaabe('0x2'));var express=require(_0xaabe('0x3'));var router=express[_0xaabe('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xaabe('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xaabe('0x6'));var controller=require(_0xaabe('0x7'));router[_0xaabe('0x8')]('/',auth[_0xaabe('0x9')](),controller['index']);router[_0xaabe('0x8')]('/:id',auth[_0xaabe('0x9')](),controller[_0xaabe('0xa')]);router[_0xaabe('0xb')]('/',auth[_0xaabe('0x9')](),controller[_0xaabe('0xc')]);router['put'](_0xaabe('0xd'),auth[_0xaabe('0x9')](),controller['update']);router['delete'](_0xaabe('0xd'),auth[_0xaabe('0x9')](),controller[_0xaabe('0xe')]);module[_0xaabe('0xf')]=router;
\ No newline at end of file
+var _0xacdb=['express','Router','../../components/auth/service','../../components/interaction/service','./intZohoField.controller','isAuthenticated','index','get','/:id','show','post','create','put','update','destroy','exports','util','path','connect-timeout'];(function(_0x315aea,_0x318a80){var _0x4a4bdb=function(_0x7c049c){while(--_0x7c049c){_0x315aea['push'](_0x315aea['shift']());}};_0x4a4bdb(++_0x318a80);}(_0xacdb,0x11a));var _0xbacd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xacdb[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require(_0xbacd('0x0'));var path=require(_0xbacd('0x1'));var timeout=require(_0xbacd('0x2'));var express=require(_0xbacd('0x3'));var router=express[_0xbacd('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xbacd('0x5'));var interaction=require(_0xbacd('0x6'));var config=require('../../config/environment');var controller=require(_0xbacd('0x7'));router['get']('/',auth[_0xbacd('0x8')](),controller[_0xbacd('0x9')]);router[_0xbacd('0xa')](_0xbacd('0xb'),auth['isAuthenticated'](),controller[_0xbacd('0xc')]);router[_0xbacd('0xd')]('/',auth[_0xbacd('0x8')](),controller[_0xbacd('0xe')]);router[_0xbacd('0xf')](_0xbacd('0xb'),auth[_0xbacd('0x8')](),controller[_0xbacd('0x10')]);router['delete'](_0xbacd('0xb'),auth[_0xbacd('0x8')](),controller[_0xbacd('0x11')]);module[_0xbacd('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x20cd=['picklist','STRING','string','BOOLEAN','sequelize','exports','ENUM','customVariable','keyValue'];(function(_0x347110,_0x5b9c49){var _0x1f146b=function(_0x5249fe){while(--_0x5249fe){_0x347110['push'](_0x347110['shift']());}};_0x1f146b(++_0x5b9c49);}(_0x20cd,0x79));var _0xd20c=function(_0x2e4eb4,_0x57e736){_0x2e4eb4=_0x2e4eb4-0x0;var _0x46cec1=_0x20cd[_0x2e4eb4];return _0x46cec1;};'use strict';var Sequelize=require(_0xd20c('0x0'));module[_0xd20c('0x1')]={'type':{'type':Sequelize[_0xd20c('0x2')]('string','variable',_0xd20c('0x3'),_0xd20c('0x4'),_0xd20c('0x5')),'defaultValue':'string'},'content':{'type':Sequelize[_0xd20c('0x6')]},'key':{'type':Sequelize[_0xd20c('0x6')]},'keyType':{'type':Sequelize[_0xd20c('0x2')](_0xd20c('0x7'),'variable',_0xd20c('0x3'))},'keyContent':{'type':Sequelize[_0xd20c('0x6')]},'idField':{'type':Sequelize[_0xd20c('0x6')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize[_0xd20c('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x4259=['variable','keyValue','picklist','STRING','sequelize','exports','ENUM','string'];(function(_0x40be86,_0x5c67d7){var _0x2512a5=function(_0x3f8d2b){while(--_0x3f8d2b){_0x40be86['push'](_0x40be86['shift']());}};_0x2512a5(++_0x5c67d7);}(_0x4259,0x124));var _0x9425=function(_0x11c61c,_0x203f6f){_0x11c61c=_0x11c61c-0x0;var _0x142782=_0x4259[_0x11c61c];return _0x142782;};'use strict';var Sequelize=require(_0x9425('0x0'));module[_0x9425('0x1')]={'type':{'type':Sequelize[_0x9425('0x2')](_0x9425('0x3'),_0x9425('0x4'),'customVariable',_0x9425('0x5'),_0x9425('0x6')),'defaultValue':_0x9425('0x3')},'content':{'type':Sequelize[_0x9425('0x7')]},'key':{'type':Sequelize[_0x9425('0x7')]},'keyType':{'type':Sequelize[_0x9425('0x2')](_0x9425('0x3'),_0x9425('0x4'),'customVariable')},'keyContent':{'type':Sequelize[_0x9425('0x7')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x9425('0x7')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9425('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabfc=['order','sort','where','merge','VIRTUAL','filter','ZohoField','include','findAll','rows','catch','rawAttributes','includeAll','options','find','create','body','params','destroy','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty'];(function(_0x450bf9,_0x1895de){var _0x268350=function(_0xebafa7){while(--_0xebafa7){_0x450bf9['push'](_0x450bf9['shift']());}};_0x268350(++_0x1895de);}(_0xabfc,0x137));var _0xcabf=function(_0x52684f,_0xff73fc){_0x52684f=_0x52684f-0x0;var _0x4a55f0=_0xabfc[_0x52684f];return _0x4a55f0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xcabf('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcabf('0x1'));var moment=require(_0xcabf('0x2'));var BPromise=require(_0xcabf('0x3'));var Mustache=require(_0xcabf('0x4'));var util=require(_0xcabf('0x5'));var path=require(_0xcabf('0x6'));var sox=require(_0xcabf('0x7'));var csv=require('to-csv');var ejs=require(_0xcabf('0x8'));var fs=require('fs');var fs_extra=require(_0xcabf('0x9'));var _=require('lodash');var squel=require(_0xcabf('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xcabf('0xb'));var toCsv=require('to-csv');var querystring=require(_0xcabf('0xc'));var Papa=require(_0xcabf('0xd'));var Redis=require(_0xcabf('0xe'));var authService=require(_0xcabf('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xcabf('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcabf('0x11'))(_0xcabf('0x12'));var utils=require(_0xcabf('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xcabf('0x14'))['db'];function respondWithStatusCode(_0x3cb57a,_0x5bc5c0){_0x5bc5c0=_0x5bc5c0||0xcc;return function(_0x204535){if(_0x204535){return _0x3cb57a[_0xcabf('0x15')](_0x5bc5c0);}return _0x3cb57a[_0xcabf('0x16')](_0x5bc5c0)[_0xcabf('0x17')]();};}function respondWithResult(_0x1e8591,_0x328e4f){_0x328e4f=_0x328e4f||0xc8;return function(_0xb5aa46){if(_0xb5aa46){return _0x1e8591[_0xcabf('0x16')](_0x328e4f)[_0xcabf('0x18')](_0xb5aa46);}};}function respondWithFilteredResult(_0x346342,_0x303114){return function(_0x21edf3){if(_0x21edf3){var _0x4893a=typeof _0x303114['offset']==='undefined'&&typeof _0x303114[_0xcabf('0x19')]===_0xcabf('0x1a');var _0x588af7=_0x21edf3[_0xcabf('0x1b')];var _0x299413=_0x4893a?0x0:_0x303114[_0xcabf('0x1c')];var _0x3bd3a4=_0x4893a?_0x21edf3['count']:_0x303114[_0xcabf('0x1c')]+_0x303114[_0xcabf('0x19')];var _0x59fa5a;if(_0x3bd3a4>=_0x588af7){_0x3bd3a4=_0x588af7;_0x59fa5a=0xc8;}else{_0x59fa5a=0xce;}_0x346342[_0xcabf('0x16')](_0x59fa5a);return _0x346342[_0xcabf('0x1d')](_0xcabf('0x1e'),_0x299413+'-'+_0x3bd3a4+'/'+_0x588af7)[_0xcabf('0x18')](_0x21edf3);}return null;};}function patchUpdates(_0x2f06cc){return function(_0x50dbb1){try{jsonpatch[_0xcabf('0x1f')](_0x50dbb1,_0x2f06cc,!![]);}catch(_0x509d7e){return BPromise[_0xcabf('0x20')](_0x509d7e);}return _0x50dbb1[_0xcabf('0x21')]();};}function saveUpdates(_0x261cbf,_0x3057cc){return function(_0x51b709){if(_0x51b709){return _0x51b709[_0xcabf('0x22')](_0x261cbf)[_0xcabf('0x23')](function(_0x485327){return _0x485327;});}return null;};}function removeEntity(_0xeed85b,_0x4ba4d4){return function(_0x21236e){if(_0x21236e){return _0x21236e['destroy']()[_0xcabf('0x23')](function(){_0xeed85b['status'](0xcc)[_0xcabf('0x17')]();});}};}function handleEntityNotFound(_0x5cd137,_0x33317a){return function(_0x249170){if(!_0x249170){_0x5cd137[_0xcabf('0x15')](0x194);}return _0x249170;};}function handleError(_0x1a60e9,_0x15b902){_0x15b902=_0x15b902||0x1f4;return function(_0x2f3688){logger[_0xcabf('0x24')](_0x2f3688[_0xcabf('0x25')]);if(_0x2f3688[_0xcabf('0x26')]){delete _0x2f3688['name'];}_0x1a60e9[_0xcabf('0x16')](_0x15b902)[_0xcabf('0x27')](_0x2f3688);};}exports[_0xcabf('0x28')]=function(_0x5475f4,_0x5eed16){var _0x20be5c={},_0x5b23a2={},_0x22cb95={'count':0x0,'rows':[]};var _0x34d36c=_[_0xcabf('0x29')](db['ZohoField']['rawAttributes'],function(_0x351402){return{'name':_0x351402[_0xcabf('0x2a')],'type':_0x351402[_0xcabf('0x2b')][_0xcabf('0x2c')]};});_0x5b23a2[_0xcabf('0x2d')]=_[_0xcabf('0x29')](_0x34d36c,_0xcabf('0x26'));_0x5b23a2['query']=_[_0xcabf('0x2e')](_0x5475f4[_0xcabf('0x2f')]);_0x5b23a2[_0xcabf('0x30')]=_[_0xcabf('0x31')](_0x5b23a2[_0xcabf('0x2d')],_0x5b23a2[_0xcabf('0x2f')]);_0x20be5c[_0xcabf('0x32')]=_[_0xcabf('0x31')](_0x5b23a2[_0xcabf('0x2d')],qs[_0xcabf('0x33')](_0x5475f4['query']['fields']));_0x20be5c['attributes']=_0x20be5c[_0xcabf('0x32')][_0xcabf('0x34')]?_0x20be5c[_0xcabf('0x32')]:_0x5b23a2[_0xcabf('0x2d')];if(!_0x5475f4[_0xcabf('0x2f')][_0xcabf('0x35')]('nolimit')){_0x20be5c[_0xcabf('0x19')]=qs[_0xcabf('0x19')](_0x5475f4['query'][_0xcabf('0x19')]);_0x20be5c['offset']=qs[_0xcabf('0x1c')](_0x5475f4[_0xcabf('0x2f')]['offset']);}_0x20be5c[_0xcabf('0x36')]=qs[_0xcabf('0x37')](_0x5475f4[_0xcabf('0x2f')][_0xcabf('0x37')]);_0x20be5c['where']=qs[_0xcabf('0x30')](_['pick'](_0x5475f4[_0xcabf('0x2f')],_0x5b23a2[_0xcabf('0x30')]),_0x34d36c);if(_0x5475f4[_0xcabf('0x2f')]['filter']){_0x20be5c[_0xcabf('0x38')]=_[_0xcabf('0x39')](_0x20be5c[_0xcabf('0x38')],{'$or':_[_0xcabf('0x29')](_0x34d36c,function(_0xc2689e){if(_0xc2689e[_0xcabf('0x2b')]!==_0xcabf('0x3a')){var _0x4a6643={};_0x4a6643[_0xc2689e['name']]={'$like':'%'+_0x5475f4[_0xcabf('0x2f')][_0xcabf('0x3b')]+'%'};return _0x4a6643;}})});}_0x20be5c=_[_0xcabf('0x39')]({},_0x20be5c,_0x5475f4['options']);var _0x33833a={'where':_0x20be5c['where']};return db[_0xcabf('0x3c')][_0xcabf('0x1b')](_0x33833a)[_0xcabf('0x23')](function(_0x5ecac5){_0x22cb95[_0xcabf('0x1b')]=_0x5ecac5;if(_0x5475f4['query']['includeAll']){_0x20be5c[_0xcabf('0x3d')]=[{'all':!![]}];}return db[_0xcabf('0x3c')][_0xcabf('0x3e')](_0x20be5c);})[_0xcabf('0x23')](function(_0x33b6a1){_0x22cb95[_0xcabf('0x3f')]=_0x33b6a1;return _0x22cb95;})[_0xcabf('0x23')](respondWithFilteredResult(_0x5eed16,_0x20be5c))[_0xcabf('0x40')](handleError(_0x5eed16,null));};exports['show']=function(_0x5729ac,_0x172755){var _0x367a2d={'raw':!![],'where':{'id':_0x5729ac['params']['id']}},_0x211873={};_0x211873[_0xcabf('0x2d')]=_[_0xcabf('0x2e')](db['ZohoField'][_0xcabf('0x41')]);_0x211873[_0xcabf('0x2f')]=_[_0xcabf('0x2e')](_0x5729ac[_0xcabf('0x2f')]);_0x211873[_0xcabf('0x30')]=_[_0xcabf('0x31')](_0x211873[_0xcabf('0x2d')],_0x211873['query']);_0x367a2d[_0xcabf('0x32')]=_[_0xcabf('0x31')](_0x211873[_0xcabf('0x2d')],qs[_0xcabf('0x33')](_0x5729ac['query'][_0xcabf('0x33')]));_0x367a2d[_0xcabf('0x32')]=_0x367a2d[_0xcabf('0x32')][_0xcabf('0x34')]?_0x367a2d[_0xcabf('0x32')]:_0x211873[_0xcabf('0x2d')];if(_0x5729ac['query'][_0xcabf('0x42')]){_0x367a2d[_0xcabf('0x3d')]=[{'all':!![]}];}_0x367a2d=_['merge']({},_0x367a2d,_0x5729ac[_0xcabf('0x43')]);return db[_0xcabf('0x3c')][_0xcabf('0x44')](_0x367a2d)['then'](handleEntityNotFound(_0x172755,null))[_0xcabf('0x23')](respondWithResult(_0x172755,null))[_0xcabf('0x40')](handleError(_0x172755,null));};exports[_0xcabf('0x45')]=function(_0x9b270d,_0x3a7153){return db[_0xcabf('0x3c')]['create'](_0x9b270d[_0xcabf('0x46')],{})[_0xcabf('0x23')](respondWithResult(_0x3a7153,0xc9))['catch'](handleError(_0x3a7153,null));};exports[_0xcabf('0x22')]=function(_0x12c82e,_0x3276c6){if(_0x12c82e[_0xcabf('0x46')]['id']){delete _0x12c82e[_0xcabf('0x46')]['id'];}return db[_0xcabf('0x3c')][_0xcabf('0x44')]({'where':{'id':_0x12c82e[_0xcabf('0x47')]['id']}})[_0xcabf('0x23')](handleEntityNotFound(_0x3276c6,null))[_0xcabf('0x23')](saveUpdates(_0x12c82e[_0xcabf('0x46')],null))[_0xcabf('0x23')](respondWithResult(_0x3276c6,null))[_0xcabf('0x40')](handleError(_0x3276c6,null));};exports[_0xcabf('0x48')]=function(_0x50eff9,_0x4dfdf8){return db[_0xcabf('0x3c')][_0xcabf('0x44')]({'where':{'id':_0x50eff9[_0xcabf('0x47')]['id']}})[_0xcabf('0x23')](handleEntityNotFound(_0x4dfdf8,null))[_0xcabf('0x23')](removeEntity(_0x4dfdf8,null))[_0xcabf('0x40')](handleError(_0x4dfdf8,null));};
\ No newline at end of file
+var _0x10df=['bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','status','end','limit','count','offset','set','Content-Range','json','apply','save','update','then','destroy','sendStatus','error','name','send','map','ZohoField','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','keys','includeAll','find','catch','create','body','eml-format','rimraf','fast-json-patch','moment'];(function(_0x4d8a59,_0x4a283f){var _0x2606ef=function(_0x109ea7){while(--_0x109ea7){_0x4d8a59['push'](_0x4d8a59['shift']());}};_0x2606ef(++_0x4a283f);}(_0x10df,0x178));var _0xf10d=function(_0x57cc16,_0x444378){_0x57cc16=_0x57cc16-0x0;var _0x5421e5=_0x10df[_0x57cc16];return _0x5421e5;};'use strict';var emlformat=require(_0xf10d('0x0'));var rimraf=require(_0xf10d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf10d('0x2'));var rp=require('request-promise');var moment=require(_0xf10d('0x3'));var BPromise=require(_0xf10d('0x4'));var Mustache=require('mustache');var util=require(_0xf10d('0x5'));var path=require(_0xf10d('0x6'));var sox=require(_0xf10d('0x7'));var csv=require(_0xf10d('0x8'));var ejs=require(_0xf10d('0x9'));var fs=require('fs');var fs_extra=require(_0xf10d('0xa'));var _=require(_0xf10d('0xb'));var squel=require(_0xf10d('0xc'));var crypto=require(_0xf10d('0xd'));var jsforce=require(_0xf10d('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xf10d('0x8'));var querystring=require(_0xf10d('0xf'));var Papa=require(_0xf10d('0x10'));var Redis=require(_0xf10d('0x11'));var authService=require(_0xf10d('0x12'));var qs=require(_0xf10d('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf10d('0x14'));var logger=require(_0xf10d('0x15'))(_0xf10d('0x16'));var utils=require('../../config/utils');var config=require(_0xf10d('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xf10d('0x18'))['db'];function respondWithStatusCode(_0x4b4827,_0x2ba287){_0x2ba287=_0x2ba287||0xcc;return function(_0x3e8adf){if(_0x3e8adf){return _0x4b4827['sendStatus'](_0x2ba287);}return _0x4b4827[_0xf10d('0x19')](_0x2ba287)[_0xf10d('0x1a')]();};}function respondWithResult(_0x2118e1,_0x5930b3){_0x5930b3=_0x5930b3||0xc8;return function(_0x440a3d){if(_0x440a3d){return _0x2118e1[_0xf10d('0x19')](_0x5930b3)['json'](_0x440a3d);}};}function respondWithFilteredResult(_0x1eacf6,_0x5f259c){return function(_0xd30c16){if(_0xd30c16){var _0x5590c3=typeof _0x5f259c['offset']==='undefined'&&typeof _0x5f259c[_0xf10d('0x1b')]==='undefined';var _0x9a539f=_0xd30c16[_0xf10d('0x1c')];var _0x1e235a=_0x5590c3?0x0:_0x5f259c[_0xf10d('0x1d')];var _0x3ad44a=_0x5590c3?_0xd30c16[_0xf10d('0x1c')]:_0x5f259c[_0xf10d('0x1d')]+_0x5f259c['limit'];var _0x459edc;if(_0x3ad44a>=_0x9a539f){_0x3ad44a=_0x9a539f;_0x459edc=0xc8;}else{_0x459edc=0xce;}_0x1eacf6[_0xf10d('0x19')](_0x459edc);return _0x1eacf6[_0xf10d('0x1e')](_0xf10d('0x1f'),_0x1e235a+'-'+_0x3ad44a+'/'+_0x9a539f)[_0xf10d('0x20')](_0xd30c16);}return null;};}function patchUpdates(_0x4a539a){return function(_0x2c41bd){try{jsonpatch[_0xf10d('0x21')](_0x2c41bd,_0x4a539a,!![]);}catch(_0x1b15ba){return BPromise['reject'](_0x1b15ba);}return _0x2c41bd[_0xf10d('0x22')]();};}function saveUpdates(_0x29795d,_0x5fea4b){return function(_0x3c6637){if(_0x3c6637){return _0x3c6637[_0xf10d('0x23')](_0x29795d)[_0xf10d('0x24')](function(_0x4a4319){return _0x4a4319;});}return null;};}function removeEntity(_0x272b82,_0x5f03b5){return function(_0x1ad6a6){if(_0x1ad6a6){return _0x1ad6a6[_0xf10d('0x25')]()[_0xf10d('0x24')](function(){_0x272b82[_0xf10d('0x19')](0xcc)[_0xf10d('0x1a')]();});}};}function handleEntityNotFound(_0x10c163,_0x1bc244){return function(_0x52dcb8){if(!_0x52dcb8){_0x10c163[_0xf10d('0x26')](0x194);}return _0x52dcb8;};}function handleError(_0x9bfa1a,_0x29f459){_0x29f459=_0x29f459||0x1f4;return function(_0x490fec){logger[_0xf10d('0x27')](_0x490fec['stack']);if(_0x490fec[_0xf10d('0x28')]){delete _0x490fec[_0xf10d('0x28')];}_0x9bfa1a[_0xf10d('0x19')](_0x29f459)[_0xf10d('0x29')](_0x490fec);};}exports['index']=function(_0x5442e2,_0x13ac5b){var _0x32b133={},_0x24efdf={},_0x23ca47={'count':0x0,'rows':[]};var _0x4612b5=_[_0xf10d('0x2a')](db[_0xf10d('0x2b')][_0xf10d('0x2c')],function(_0xba9ec0){return{'name':_0xba9ec0[_0xf10d('0x2d')],'type':_0xba9ec0[_0xf10d('0x2e')][_0xf10d('0x2f')]};});_0x24efdf['model']=_[_0xf10d('0x2a')](_0x4612b5,_0xf10d('0x28'));_0x24efdf[_0xf10d('0x30')]=_['keys'](_0x5442e2[_0xf10d('0x30')]);_0x24efdf[_0xf10d('0x31')]=_[_0xf10d('0x32')](_0x24efdf[_0xf10d('0x33')],_0x24efdf[_0xf10d('0x30')]);_0x32b133[_0xf10d('0x34')]=_[_0xf10d('0x32')](_0x24efdf[_0xf10d('0x33')],qs[_0xf10d('0x35')](_0x5442e2[_0xf10d('0x30')][_0xf10d('0x35')]));_0x32b133[_0xf10d('0x34')]=_0x32b133[_0xf10d('0x34')][_0xf10d('0x36')]?_0x32b133[_0xf10d('0x34')]:_0x24efdf['model'];if(!_0x5442e2['query'][_0xf10d('0x37')](_0xf10d('0x38'))){_0x32b133['limit']=qs[_0xf10d('0x1b')](_0x5442e2[_0xf10d('0x30')][_0xf10d('0x1b')]);_0x32b133[_0xf10d('0x1d')]=qs[_0xf10d('0x1d')](_0x5442e2['query'][_0xf10d('0x1d')]);}_0x32b133[_0xf10d('0x39')]=qs[_0xf10d('0x3a')](_0x5442e2[_0xf10d('0x30')][_0xf10d('0x3a')]);_0x32b133[_0xf10d('0x3b')]=qs[_0xf10d('0x31')](_[_0xf10d('0x3c')](_0x5442e2[_0xf10d('0x30')],_0x24efdf['filters']),_0x4612b5);if(_0x5442e2[_0xf10d('0x30')][_0xf10d('0x3d')]){_0x32b133['where']=_[_0xf10d('0x3e')](_0x32b133[_0xf10d('0x3b')],{'$or':_[_0xf10d('0x2a')](_0x4612b5,function(_0x257150){if(_0x257150['type']!==_0xf10d('0x3f')){var _0x47891c={};_0x47891c[_0x257150[_0xf10d('0x28')]]={'$like':'%'+_0x5442e2[_0xf10d('0x30')]['filter']+'%'};return _0x47891c;}})});}_0x32b133=_[_0xf10d('0x3e')]({},_0x32b133,_0x5442e2[_0xf10d('0x40')]);var _0xc32568={'where':_0x32b133[_0xf10d('0x3b')]};return db[_0xf10d('0x2b')]['count'](_0xc32568)[_0xf10d('0x24')](function(_0x4d15b3){_0x23ca47[_0xf10d('0x1c')]=_0x4d15b3;if(_0x5442e2[_0xf10d('0x30')]['includeAll']){_0x32b133[_0xf10d('0x41')]=[{'all':!![]}];}return db[_0xf10d('0x2b')][_0xf10d('0x42')](_0x32b133);})[_0xf10d('0x24')](function(_0x5487fe){_0x23ca47[_0xf10d('0x43')]=_0x5487fe;return _0x23ca47;})['then'](respondWithFilteredResult(_0x13ac5b,_0x32b133))['catch'](handleError(_0x13ac5b,null));};exports[_0xf10d('0x44')]=function(_0x168827,_0x5ae7c4){var _0x331803={'raw':!![],'where':{'id':_0x168827[_0xf10d('0x45')]['id']}},_0x2d7987={};_0x2d7987['model']=_[_0xf10d('0x46')](db['ZohoField'][_0xf10d('0x2c')]);_0x2d7987[_0xf10d('0x30')]=_[_0xf10d('0x46')](_0x168827['query']);_0x2d7987[_0xf10d('0x31')]=_['intersection'](_0x2d7987[_0xf10d('0x33')],_0x2d7987[_0xf10d('0x30')]);_0x331803[_0xf10d('0x34')]=_['intersection'](_0x2d7987[_0xf10d('0x33')],qs['fields'](_0x168827[_0xf10d('0x30')]['fields']));_0x331803['attributes']=_0x331803['attributes'][_0xf10d('0x36')]?_0x331803[_0xf10d('0x34')]:_0x2d7987[_0xf10d('0x33')];if(_0x168827['query'][_0xf10d('0x47')]){_0x331803[_0xf10d('0x41')]=[{'all':!![]}];}_0x331803=_[_0xf10d('0x3e')]({},_0x331803,_0x168827[_0xf10d('0x40')]);return db[_0xf10d('0x2b')][_0xf10d('0x48')](_0x331803)['then'](handleEntityNotFound(_0x5ae7c4,null))['then'](respondWithResult(_0x5ae7c4,null))[_0xf10d('0x49')](handleError(_0x5ae7c4,null));};exports[_0xf10d('0x4a')]=function(_0x3b1cbb,_0x1d85b6){return db['ZohoField']['create'](_0x3b1cbb[_0xf10d('0x4b')],{})[_0xf10d('0x24')](respondWithResult(_0x1d85b6,0xc9))['catch'](handleError(_0x1d85b6,null));};exports[_0xf10d('0x23')]=function(_0x19a347,_0x260530){if(_0x19a347[_0xf10d('0x4b')]['id']){delete _0x19a347[_0xf10d('0x4b')]['id'];}return db['ZohoField']['find']({'where':{'id':_0x19a347[_0xf10d('0x45')]['id']}})[_0xf10d('0x24')](handleEntityNotFound(_0x260530,null))['then'](saveUpdates(_0x19a347[_0xf10d('0x4b')],null))[_0xf10d('0x24')](respondWithResult(_0x260530,null))[_0xf10d('0x49')](handleError(_0x260530,null));};exports[_0xf10d('0x25')]=function(_0x24070f,_0x55f3fe){return db[_0xf10d('0x2b')][_0xf10d('0x48')]({'where':{'id':_0x24070f[_0xf10d('0x45')]['id']}})[_0xf10d('0x24')](handleEntityNotFound(_0x55f3fe,null))[_0xf10d('0x24')](removeEntity(_0x55f3fe,null))[_0xf10d('0x49')](handleError(_0x55f3fe,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9582=['util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZohoField.attributes','exports','define','ZohoField','int_zoho_fields','FieldId','lodash'];(function(_0x27821c,_0x5631e9){var _0xf6d5a7=function(_0x39d106){while(--_0x39d106){_0x27821c['push'](_0x27821c['shift']());}};_0xf6d5a7(++_0x5631e9);}(_0x9582,0x95));var _0x2958=function(_0x3b50a7,_0x34ee8f){_0x3b50a7=_0x3b50a7-0x0;var _0x82f5f8=_0x9582[_0x3b50a7];return _0x82f5f8;};'use strict';var _=require(_0x2958('0x0'));var util=require(_0x2958('0x1'));var logger=require(_0x2958('0x2'))(_0x2958('0x3'));var moment=require(_0x2958('0x4'));var BPromise=require(_0x2958('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2958('0x6'));var rimraf=require(_0x2958('0x7'));var config=require(_0x2958('0x8'));var attributes=require(_0x2958('0x9'));module[_0x2958('0xa')]=function(_0xbde128,_0x88ffaa){return _0xbde128[_0x2958('0xb')](_0x2958('0xc'),attributes,{'tableName':_0x2958('0xd'),'paranoid':![],'indexes':[{'name':'zoho_unique_index','fields':['idField',_0x2958('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x4975=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoField.attributes','exports','ZohoField','int_zoho_fields','zoho_unique_index','FieldId','lodash'];(function(_0x4ace32,_0x113bc5){var _0x15c563=function(_0x217c05){while(--_0x217c05){_0x4ace32['push'](_0x4ace32['shift']());}};_0x15c563(++_0x113bc5);}(_0x4975,0x86));var _0x5497=function(_0x57ad5d,_0x12b239){_0x57ad5d=_0x57ad5d-0x0;var _0x158e04=_0x4975[_0x57ad5d];return _0x158e04;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var logger=require(_0x5497('0x1'))(_0x5497('0x2'));var moment=require(_0x5497('0x3'));var BPromise=require(_0x5497('0x4'));var rp=require(_0x5497('0x5'));var fs=require('fs');var path=require(_0x5497('0x6'));var rimraf=require(_0x5497('0x7'));var config=require(_0x5497('0x8'));var attributes=require(_0x5497('0x9'));module[_0x5497('0xa')]=function(_0x539a27,_0x37e48d){return _0x539a27['define'](_0x5497('0xb'),attributes,{'tableName':_0x5497('0xc'),'paranoid':![],'indexes':[{'name':_0x5497('0xd'),'fields':['idField',_0x5497('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d2b=['util','moment','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','ZohoField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','info','result','catch','lodash'];(function(_0x3dce5b,_0x498d34){var _0x2b61ad=function(_0x360337){while(--_0x360337){_0x3dce5b['push'](_0x3dce5b['shift']());}};_0x2b61ad(++_0x498d34);}(_0x4d2b,0x133));var _0xb4d2=function(_0x2e7e94,_0x163ba6){_0x2e7e94=_0x2e7e94-0x0;var _0x4e5ee6=_0x4d2b[_0x2e7e94];return _0x4e5ee6;};'use strict';var _=require(_0xb4d2('0x0'));var util=require(_0xb4d2('0x1'));var moment=require(_0xb4d2('0x2'));var BPromise=require(_0xb4d2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xb4d2('0x4'));var logger=require(_0xb4d2('0x5'))(_0xb4d2('0x6'));var config=require(_0xb4d2('0x7'));var jayson=require(_0xb4d2('0x8'));var client=jayson[_0xb4d2('0x9')][_0xb4d2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x25a906,_0x1b38d2,_0x102429){return new BPromise(function(_0xd490c9,_0x17d5be){return client[_0xb4d2('0xb')](_0x25a906,_0x102429)[_0xb4d2('0xc')](function(_0x419e29){logger['info'](_0xb4d2('0xd'),_0x1b38d2,'request\x20sent');logger[_0xb4d2('0xe')]('ZohoField,\x20%s,\x20%s,\x20%s',_0x1b38d2,_0xb4d2('0xf'),JSON[_0xb4d2('0x10')](_0x419e29));if(_0x419e29[_0xb4d2('0x11')]){if(_0x419e29['error']['code']===0x1f4){logger[_0xb4d2('0x11')](_0xb4d2('0xd'),_0x1b38d2,_0x419e29[_0xb4d2('0x11')]['message']);return _0x17d5be(_0x419e29[_0xb4d2('0x11')][_0xb4d2('0x12')]);}logger['error'](_0xb4d2('0xd'),_0x1b38d2,_0x419e29[_0xb4d2('0x11')]['message']);return _0xd490c9(_0x419e29[_0xb4d2('0x11')][_0xb4d2('0x12')]);}else{logger[_0xb4d2('0x13')](_0xb4d2('0xd'),_0x1b38d2,'request\x20sent');_0xd490c9(_0x419e29[_0xb4d2('0x14')][_0xb4d2('0x12')]);}})[_0xb4d2('0x15')](function(_0x19b5f3){logger[_0xb4d2('0x11')](_0xb4d2('0xd'),_0x1b38d2,_0x19b5f3);_0x17d5be(_0x19b5f3);});});}
\ No newline at end of file
+var _0xc555=['catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','http','request','then','info','ZohoField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message'];(function(_0x4af23c,_0x50e294){var _0x194b63=function(_0x44f871){while(--_0x44f871){_0x4af23c['push'](_0x4af23c['shift']());}};_0x194b63(++_0x50e294);}(_0xc555,0x1e7));var _0x5c55=function(_0x173441,_0x26b0d9){_0x173441=_0x173441-0x0;var _0x2423a8=_0xc555[_0x173441];return _0x2423a8;};'use strict';var _=require('lodash');var util=require(_0x5c55('0x0'));var moment=require('moment');var BPromise=require(_0x5c55('0x1'));var rs=require(_0x5c55('0x2'));var fs=require('fs');var Redis=require(_0x5c55('0x3'));var db=require(_0x5c55('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x5c55('0x5'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x5c55('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x2263c5,_0x465110,_0x5c7590){return new BPromise(function(_0x2bcaf4,_0x2de58c){return client[_0x5c55('0x7')](_0x2263c5,_0x5c7590)[_0x5c55('0x8')](function(_0x35e239){logger[_0x5c55('0x9')](_0x5c55('0xa'),_0x465110,_0x5c55('0xb'));logger[_0x5c55('0xc')]('ZohoField,\x20%s,\x20%s,\x20%s',_0x465110,'request\x20sent',JSON[_0x5c55('0xd')](_0x35e239));if(_0x35e239[_0x5c55('0xe')]){if(_0x35e239[_0x5c55('0xe')][_0x5c55('0xf')]===0x1f4){logger[_0x5c55('0xe')](_0x5c55('0xa'),_0x465110,_0x35e239['error'][_0x5c55('0x10')]);return _0x2de58c(_0x35e239[_0x5c55('0xe')][_0x5c55('0x10')]);}logger['error'](_0x5c55('0xa'),_0x465110,_0x35e239['error'][_0x5c55('0x10')]);return _0x2bcaf4(_0x35e239[_0x5c55('0xe')][_0x5c55('0x10')]);}else{logger[_0x5c55('0x9')](_0x5c55('0xa'),_0x465110,_0x5c55('0xb'));_0x2bcaf4(_0x35e239['result'][_0x5c55('0x10')]);}})[_0x5c55('0x11')](function(_0x2a640c){logger[_0x5c55('0xe')](_0x5c55('0xa'),_0x465110,_0x2a640c);_0x2de58c(_0x2a640c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x3f943e,_0x780865){var _0x2e5177=function(_0x55b461){while(--_0x55b461){_0x3f943e['push'](_0x3f943e['shift']());}};_0x2e5177(++_0x780865);}(_0x70e0,0x17b));var _0x070e=function(_0x5763c1,_0x1f4fee){_0x5763c1=_0x5763c1-0x0;var _0x4ee5ef=_0x70e0[_0x5763c1];return _0x4ee5ef;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x245073,_0x206130){var _0x4bdf92=function(_0x3866b0){while(--_0x3866b0){_0x245073['push'](_0x245073['shift']());}};_0x4bdf92(++_0x206130);}(_0xe706,0xa3));var _0x6e70=function(_0x110ea8,_0xacb6fa){_0x110ea8=_0x110ea8-0x0;var _0x4073cf=_0xe706[_0x110ea8];return _0x4073cf;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaef4=['exports','STRING','unique_name_and_version','app.js','BOOLEAN','state','sequelize'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0xaef4,0xfb));var _0x4aef=function(_0x47dc09,_0x45f8d1){_0x47dc09=_0x47dc09-0x0;var _0x4c6999=_0xaef4[_0x47dc09];return _0x4c6999;};'use strict';var Sequelize=require(_0x4aef('0x0'));module[_0x4aef('0x1')]={'name':{'type':Sequelize[_0x4aef('0x2')],'allowNull':![],'unique':'unique_name_and_version'},'version':{'type':Sequelize[_0x4aef('0x2')],'allowNull':![],'unique':_0x4aef('0x3')},'main':{'type':Sequelize[_0x4aef('0x2')],'defaultValue':_0x4aef('0x4')},'filename':{'type':Sequelize['STRING']},'path':{'type':Sequelize[_0x4aef('0x2')]},'type':{'type':Sequelize[_0x4aef('0x2')]},'size':{'type':Sequelize['INTEGER']},'active':{'type':Sequelize[_0x4aef('0x5')],'defaultValue':![]},'author':{'type':Sequelize['STRING']},'logo':{'type':Sequelize[_0x4aef('0x2')]},'state':{'type':Sequelize[_0x4aef('0x2')],'unique':_0x4aef('0x6')},'description':{'type':Sequelize[_0x4aef('0x2')]},'title':{'type':Sequelize[_0x4aef('0x2')]},'remoteUri':{'type':Sequelize[_0x4aef('0x2')]},'link':{'type':Sequelize[_0x4aef('0x2')],'defaultValue':'#'}};
\ No newline at end of file
+var _0xd023=['state','sequelize','STRING','unique_name_and_version','app.js','INTEGER','BOOLEAN'];(function(_0x45f951,_0x2750c8){var _0x24756c=function(_0x31c931){while(--_0x31c931){_0x45f951['push'](_0x45f951['shift']());}};_0x24756c(++_0x2750c8);}(_0xd023,0x94));var _0x3d02=function(_0x501ca1,_0x6c6edc){_0x501ca1=_0x501ca1-0x0;var _0x2a99c4=_0xd023[_0x501ca1];return _0x2a99c4;};'use strict';var Sequelize=require(_0x3d02('0x0'));module['exports']={'name':{'type':Sequelize[_0x3d02('0x1')],'allowNull':![],'unique':_0x3d02('0x2')},'version':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x3d02('0x2')},'main':{'type':Sequelize[_0x3d02('0x1')],'defaultValue':_0x3d02('0x3')},'filename':{'type':Sequelize['STRING']},'path':{'type':Sequelize[_0x3d02('0x1')]},'type':{'type':Sequelize[_0x3d02('0x1')]},'size':{'type':Sequelize[_0x3d02('0x4')]},'active':{'type':Sequelize[_0x3d02('0x5')],'defaultValue':![]},'author':{'type':Sequelize[_0x3d02('0x1')]},'logo':{'type':Sequelize[_0x3d02('0x1')]},'state':{'type':Sequelize['STRING'],'unique':_0x3d02('0x6')},'description':{'type':Sequelize[_0x3d02('0x1')]},'title':{'type':Sequelize[_0x3d02('0x1')]},'remoteUri':{'type':Sequelize[_0x3d02('0x1')]},'link':{'type':Sequelize[_0x3d02('0x1')],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57ca=['bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','set','apply','save','update','then','destroy','end','sendStatus','error','stack','name','index','map','Integration','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','options','includeAll','include','findAll','params','find','catch','create','body','rimraf','zip-dir','request-promise','moment'];(function(_0x26c247,_0x7232c6){var _0x36b34f=function(_0x117a17){while(--_0x117a17){_0x26c247['push'](_0x26c247['shift']());}};_0x36b34f(++_0x7232c6);}(_0x57ca,0x108));var _0xa57c=function(_0x594607,_0x298f9d){_0x594607=_0x594607-0x0;var _0x551ed3=_0x57ca[_0x594607];return _0x551ed3;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa57c('0x0'));var zipdir=require(_0xa57c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa57c('0x2'));var moment=require(_0xa57c('0x3'));var BPromise=require(_0xa57c('0x4'));var Mustache=require(_0xa57c('0x5'));var util=require(_0xa57c('0x6'));var path=require('path');var sox=require(_0xa57c('0x7'));var csv=require(_0xa57c('0x8'));var ejs=require(_0xa57c('0x9'));var fs=require('fs');var fs_extra=require(_0xa57c('0xa'));var _=require(_0xa57c('0xb'));var squel=require(_0xa57c('0xc'));var crypto=require(_0xa57c('0xd'));var jsforce=require(_0xa57c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa57c('0x8'));var querystring=require('querystring');var Papa=require(_0xa57c('0xf'));var Redis=require(_0xa57c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xa57c('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa57c('0x12'));var logger=require(_0xa57c('0x13'))('api');var utils=require(_0xa57c('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa57c('0x15'));var db=require(_0xa57c('0x16'))['db'];function respondWithStatusCode(_0x1f2bb5,_0x9e25bf){_0x9e25bf=_0x9e25bf||0xcc;return function(_0x205e72){if(_0x205e72){return _0x1f2bb5['sendStatus'](_0x9e25bf);}return _0x1f2bb5[_0xa57c('0x17')](_0x9e25bf)['end']();};}function respondWithResult(_0x30d23d,_0x3d5995){_0x3d5995=_0x3d5995||0xc8;return function(_0x30940d){if(_0x30940d){return _0x30d23d[_0xa57c('0x17')](_0x3d5995)[_0xa57c('0x18')](_0x30940d);}};}function respondWithFilteredResult(_0x37a323,_0x3f900a){return function(_0x4b4bdb){if(_0x4b4bdb){var _0x26607a=typeof _0x3f900a[_0xa57c('0x19')]===_0xa57c('0x1a')&&typeof _0x3f900a['limit']===_0xa57c('0x1a');var _0x5f33f1=_0x4b4bdb[_0xa57c('0x1b')];var _0x3d781d=_0x26607a?0x0:_0x3f900a[_0xa57c('0x19')];var _0xe3d505=_0x26607a?_0x4b4bdb[_0xa57c('0x1b')]:_0x3f900a[_0xa57c('0x19')]+_0x3f900a[_0xa57c('0x1c')];var _0x595c7a;if(_0xe3d505>=_0x5f33f1){_0xe3d505=_0x5f33f1;_0x595c7a=0xc8;}else{_0x595c7a=0xce;}_0x37a323['status'](_0x595c7a);return _0x37a323[_0xa57c('0x1d')]('Content-Range',_0x3d781d+'-'+_0xe3d505+'/'+_0x5f33f1)['json'](_0x4b4bdb);}return null;};}function patchUpdates(_0x418415){return function(_0xa5b314){try{jsonpatch[_0xa57c('0x1e')](_0xa5b314,_0x418415,!![]);}catch(_0x23bec0){return BPromise['reject'](_0x23bec0);}return _0xa5b314[_0xa57c('0x1f')]();};}function saveUpdates(_0x25715f,_0x34d1bc){return function(_0x2213b2){if(_0x2213b2){return _0x2213b2[_0xa57c('0x20')](_0x25715f)[_0xa57c('0x21')](function(_0x1e0192){return _0x1e0192;});}return null;};}function removeEntity(_0x42038e,_0x2e99ed){return function(_0xdf65dd){if(_0xdf65dd){return _0xdf65dd[_0xa57c('0x22')]()[_0xa57c('0x21')](function(){_0x42038e[_0xa57c('0x17')](0xcc)[_0xa57c('0x23')]();});}};}function handleEntityNotFound(_0x431bec,_0x511a26){return function(_0x2db443){if(!_0x2db443){_0x431bec[_0xa57c('0x24')](0x194);}return _0x2db443;};}function handleError(_0x27884d,_0x5228b9){_0x5228b9=_0x5228b9||0x1f4;return function(_0x315ad7){logger[_0xa57c('0x25')](_0x315ad7[_0xa57c('0x26')]);if(_0x315ad7[_0xa57c('0x27')]){delete _0x315ad7[_0xa57c('0x27')];}_0x27884d[_0xa57c('0x17')](_0x5228b9)['send'](_0x315ad7);};}exports[_0xa57c('0x28')]=function(_0x4c1478,_0x54a18b){var _0x257661={},_0x7d10ec={},_0x5a3e03={'count':0x0,'rows':[]};var _0x12898b=_[_0xa57c('0x29')](db[_0xa57c('0x2a')]['rawAttributes'],function(_0xd779f1){return{'name':_0xd779f1['fieldName'],'type':_0xd779f1[_0xa57c('0x2b')]['key']};});_0x7d10ec[_0xa57c('0x2c')]=_['map'](_0x12898b,_0xa57c('0x27'));_0x7d10ec['query']=_[_0xa57c('0x2d')](_0x4c1478[_0xa57c('0x2e')]);_0x7d10ec[_0xa57c('0x2f')]=_[_0xa57c('0x30')](_0x7d10ec[_0xa57c('0x2c')],_0x7d10ec[_0xa57c('0x2e')]);_0x257661[_0xa57c('0x31')]=_['intersection'](_0x7d10ec[_0xa57c('0x2c')],qs['fields'](_0x4c1478[_0xa57c('0x2e')][_0xa57c('0x32')]));_0x257661[_0xa57c('0x31')]=_0x257661['attributes'][_0xa57c('0x33')]?_0x257661['attributes']:_0x7d10ec[_0xa57c('0x2c')];if(!_0x4c1478['query'][_0xa57c('0x34')]('nolimit')){_0x257661[_0xa57c('0x1c')]=qs[_0xa57c('0x1c')](_0x4c1478['query'][_0xa57c('0x1c')]);_0x257661['offset']=qs[_0xa57c('0x19')](_0x4c1478['query'][_0xa57c('0x19')]);}_0x257661[_0xa57c('0x35')]=qs[_0xa57c('0x36')](_0x4c1478[_0xa57c('0x2e')][_0xa57c('0x36')]);_0x257661[_0xa57c('0x37')]=qs['filters'](_['pick'](_0x4c1478[_0xa57c('0x2e')],_0x7d10ec[_0xa57c('0x2f')]),_0x12898b);if(_0x4c1478[_0xa57c('0x2e')]['filter']){_0x257661[_0xa57c('0x37')]=_['merge'](_0x257661[_0xa57c('0x37')],{'$or':_[_0xa57c('0x29')](_0x12898b,function(_0x5c8256){if(_0x5c8256['type']!=='VIRTUAL'){var _0x3be888={};_0x3be888[_0x5c8256[_0xa57c('0x27')]]={'$like':'%'+_0x4c1478[_0xa57c('0x2e')][_0xa57c('0x38')]+'%'};return _0x3be888;}})});}_0x257661=_[_0xa57c('0x39')]({},_0x257661,_0x4c1478[_0xa57c('0x3a')]);var _0x5a444a={'where':_0x257661[_0xa57c('0x37')]};return db[_0xa57c('0x2a')]['count'](_0x5a444a)['then'](function(_0x5e10b){_0x5a3e03[_0xa57c('0x1b')]=_0x5e10b;if(_0x4c1478['query'][_0xa57c('0x3b')]){_0x257661[_0xa57c('0x3c')]=[{'all':!![]}];}return db[_0xa57c('0x2a')][_0xa57c('0x3d')](_0x257661);})[_0xa57c('0x21')](function(_0x43c1d7){_0x5a3e03['rows']=_0x43c1d7;return _0x5a3e03;})[_0xa57c('0x21')](respondWithFilteredResult(_0x54a18b,_0x257661))['catch'](handleError(_0x54a18b,null));};exports['show']=function(_0x5b3300,_0x520383){var _0x588199={'raw':![],'where':{'id':_0x5b3300[_0xa57c('0x3e')]['id']}},_0x39b20f={};_0x39b20f[_0xa57c('0x2c')]=_['keys'](db['Integration']['rawAttributes']);_0x39b20f[_0xa57c('0x2e')]=_[_0xa57c('0x2d')](_0x5b3300[_0xa57c('0x2e')]);_0x39b20f[_0xa57c('0x2f')]=_[_0xa57c('0x30')](_0x39b20f[_0xa57c('0x2c')],_0x39b20f['query']);_0x588199[_0xa57c('0x31')]=_[_0xa57c('0x30')](_0x39b20f[_0xa57c('0x2c')],qs[_0xa57c('0x32')](_0x5b3300[_0xa57c('0x2e')][_0xa57c('0x32')]));_0x588199['attributes']=_0x588199[_0xa57c('0x31')][_0xa57c('0x33')]?_0x588199[_0xa57c('0x31')]:_0x39b20f[_0xa57c('0x2c')];if(_0x5b3300[_0xa57c('0x2e')]['includeAll']){_0x588199[_0xa57c('0x3c')]=[{'all':!![]}];}_0x588199=_[_0xa57c('0x39')]({},_0x588199,_0x5b3300[_0xa57c('0x3a')]);return db[_0xa57c('0x2a')][_0xa57c('0x3f')](_0x588199)[_0xa57c('0x21')](handleEntityNotFound(_0x520383,null))['then'](respondWithResult(_0x520383,null))[_0xa57c('0x40')](handleError(_0x520383,null));};exports[_0xa57c('0x41')]=function(_0x247906,_0x44ea0a){return db[_0xa57c('0x2a')][_0xa57c('0x41')](_0x247906['body'],{})['then'](respondWithResult(_0x44ea0a,0xc9))['catch'](handleError(_0x44ea0a,null));};exports['update']=function(_0x232675,_0x49492f){if(_0x232675[_0xa57c('0x42')]['id']){delete _0x232675[_0xa57c('0x42')]['id'];}return db['Integration'][_0xa57c('0x3f')]({'where':{'id':_0x232675[_0xa57c('0x3e')]['id']}})[_0xa57c('0x21')](handleEntityNotFound(_0x49492f,null))[_0xa57c('0x21')](saveUpdates(_0x232675[_0xa57c('0x42')],null))['then'](respondWithResult(_0x49492f,null))[_0xa57c('0x40')](handleError(_0x49492f,null));};exports[_0xa57c('0x22')]=function(_0x4584e8,_0xd57bac){return db[_0xa57c('0x2a')]['find']({'where':{'id':_0x4584e8[_0xa57c('0x3e')]['id']}})['then'](handleEntityNotFound(_0xd57bac,null))['then'](removeEntity(_0xd57bac,null))[_0xa57c('0x40')](handleError(_0xd57bac,null));};
\ No newline at end of file
+var _0x781d=['../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','update','destroy','then','error','name','send','index','map','Integration','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','nolimit','order','where','filters','filter','merge','VIRTUAL','includeAll','catch','show','params','rawAttributes','options','body','find','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch'];(function(_0x33466a,_0x77acf9){var _0x173332=function(_0x297a6c){while(--_0x297a6c){_0x33466a['push'](_0x33466a['shift']());}};_0x173332(++_0x77acf9);}(_0x781d,0x14a));var _0xd781=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x781d[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require(_0xd781('0x0'));var rimraf=require(_0xd781('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xd781('0x2'));var moment=require(_0xd781('0x3'));var BPromise=require(_0xd781('0x4'));var Mustache=require(_0xd781('0x5'));var util=require(_0xd781('0x6'));var path=require(_0xd781('0x7'));var sox=require(_0xd781('0x8'));var csv=require(_0xd781('0x9'));var ejs=require(_0xd781('0xa'));var fs=require('fs');var fs_extra=require(_0xd781('0xb'));var _=require('lodash');var squel=require(_0xd781('0xc'));var crypto=require(_0xd781('0xd'));var jsforce=require(_0xd781('0xe'));var deskjs=require(_0xd781('0xf'));var toCsv=require('to-csv');var querystring=require(_0xd781('0x10'));var Papa=require('papaparse');var Redis=require(_0xd781('0x11'));var authService=require(_0xd781('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xd781('0x13'));var hardwareService=require(_0xd781('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0xd781('0x15'));var config=require(_0xd781('0x16'));var licenseUtil=require(_0xd781('0x17'));var db=require(_0xd781('0x18'))['db'];function respondWithStatusCode(_0xbea78b,_0x1f2f1e){_0x1f2f1e=_0x1f2f1e||0xcc;return function(_0xc7758f){if(_0xc7758f){return _0xbea78b[_0xd781('0x19')](_0x1f2f1e);}return _0xbea78b[_0xd781('0x1a')](_0x1f2f1e)[_0xd781('0x1b')]();};}function respondWithResult(_0xd454e7,_0x587953){_0x587953=_0x587953||0xc8;return function(_0x477bdc){if(_0x477bdc){return _0xd454e7[_0xd781('0x1a')](_0x587953)['json'](_0x477bdc);}};}function respondWithFilteredResult(_0x3a1f48,_0x48bffc){return function(_0x294e5a){if(_0x294e5a){var _0x22d787=typeof _0x48bffc[_0xd781('0x1c')]===_0xd781('0x1d')&&typeof _0x48bffc[_0xd781('0x1e')]===_0xd781('0x1d');var _0x501b0d=_0x294e5a['count'];var _0x1407fc=_0x22d787?0x0:_0x48bffc[_0xd781('0x1c')];var _0x395d9c=_0x22d787?_0x294e5a[_0xd781('0x1f')]:_0x48bffc[_0xd781('0x1c')]+_0x48bffc[_0xd781('0x1e')];var _0x260aa8;if(_0x395d9c>=_0x501b0d){_0x395d9c=_0x501b0d;_0x260aa8=0xc8;}else{_0x260aa8=0xce;}_0x3a1f48[_0xd781('0x1a')](_0x260aa8);return _0x3a1f48['set'](_0xd781('0x20'),_0x1407fc+'-'+_0x395d9c+'/'+_0x501b0d)[_0xd781('0x21')](_0x294e5a);}return null;};}function patchUpdates(_0x1036d3){return function(_0x103758){try{jsonpatch[_0xd781('0x22')](_0x103758,_0x1036d3,!![]);}catch(_0x274665){return BPromise[_0xd781('0x23')](_0x274665);}return _0x103758['save']();};}function saveUpdates(_0xe0c65f,_0x4e2c56){return function(_0x567fdf){if(_0x567fdf){return _0x567fdf[_0xd781('0x24')](_0xe0c65f)['then'](function(_0x175ba6){return _0x175ba6;});}return null;};}function removeEntity(_0x101480,_0x395087){return function(_0x31bf57){if(_0x31bf57){return _0x31bf57[_0xd781('0x25')]()[_0xd781('0x26')](function(){_0x101480[_0xd781('0x1a')](0xcc)[_0xd781('0x1b')]();});}};}function handleEntityNotFound(_0x10940b,_0x5662db){return function(_0x529ca1){if(!_0x529ca1){_0x10940b[_0xd781('0x19')](0x194);}return _0x529ca1;};}function handleError(_0x849587,_0xdad0b1){_0xdad0b1=_0xdad0b1||0x1f4;return function(_0x57b41e){logger[_0xd781('0x27')](_0x57b41e['stack']);if(_0x57b41e['name']){delete _0x57b41e[_0xd781('0x28')];}_0x849587['status'](_0xdad0b1)[_0xd781('0x29')](_0x57b41e);};}exports[_0xd781('0x2a')]=function(_0x5c3848,_0x5b6b9d){var _0x43cc74={},_0x5b0464={},_0x296a0b={'count':0x0,'rows':[]};var _0x4a3bd3=_[_0xd781('0x2b')](db[_0xd781('0x2c')]['rawAttributes'],function(_0x54521e){return{'name':_0x54521e[_0xd781('0x2d')],'type':_0x54521e[_0xd781('0x2e')][_0xd781('0x2f')]};});_0x5b0464['model']=_['map'](_0x4a3bd3,_0xd781('0x28'));_0x5b0464[_0xd781('0x30')]=_[_0xd781('0x31')](_0x5c3848['query']);_0x5b0464['filters']=_[_0xd781('0x32')](_0x5b0464[_0xd781('0x33')],_0x5b0464['query']);_0x43cc74[_0xd781('0x34')]=_[_0xd781('0x32')](_0x5b0464['model'],qs[_0xd781('0x35')](_0x5c3848[_0xd781('0x30')][_0xd781('0x35')]));_0x43cc74[_0xd781('0x34')]=_0x43cc74['attributes'][_0xd781('0x36')]?_0x43cc74[_0xd781('0x34')]:_0x5b0464[_0xd781('0x33')];if(!_0x5c3848[_0xd781('0x30')]['hasOwnProperty'](_0xd781('0x37'))){_0x43cc74[_0xd781('0x1e')]=qs['limit'](_0x5c3848[_0xd781('0x30')]['limit']);_0x43cc74[_0xd781('0x1c')]=qs[_0xd781('0x1c')](_0x5c3848['query'][_0xd781('0x1c')]);}_0x43cc74[_0xd781('0x38')]=qs['sort'](_0x5c3848[_0xd781('0x30')]['sort']);_0x43cc74[_0xd781('0x39')]=qs[_0xd781('0x3a')](_['pick'](_0x5c3848[_0xd781('0x30')],_0x5b0464[_0xd781('0x3a')]),_0x4a3bd3);if(_0x5c3848['query'][_0xd781('0x3b')]){_0x43cc74[_0xd781('0x39')]=_[_0xd781('0x3c')](_0x43cc74['where'],{'$or':_[_0xd781('0x2b')](_0x4a3bd3,function(_0x22b94e){if(_0x22b94e[_0xd781('0x2e')]!==_0xd781('0x3d')){var _0x2e8218={};_0x2e8218[_0x22b94e[_0xd781('0x28')]]={'$like':'%'+_0x5c3848[_0xd781('0x30')][_0xd781('0x3b')]+'%'};return _0x2e8218;}})});}_0x43cc74=_[_0xd781('0x3c')]({},_0x43cc74,_0x5c3848['options']);var _0x2a60d6={'where':_0x43cc74['where']};return db[_0xd781('0x2c')][_0xd781('0x1f')](_0x2a60d6)['then'](function(_0x1a5833){_0x296a0b[_0xd781('0x1f')]=_0x1a5833;if(_0x5c3848[_0xd781('0x30')][_0xd781('0x3e')]){_0x43cc74['include']=[{'all':!![]}];}return db[_0xd781('0x2c')]['findAll'](_0x43cc74);})[_0xd781('0x26')](function(_0xcdaacf){_0x296a0b['rows']=_0xcdaacf;return _0x296a0b;})['then'](respondWithFilteredResult(_0x5b6b9d,_0x43cc74))[_0xd781('0x3f')](handleError(_0x5b6b9d,null));};exports[_0xd781('0x40')]=function(_0x15b49d,_0x23bbab){var _0x53aba6={'raw':![],'where':{'id':_0x15b49d[_0xd781('0x41')]['id']}},_0x46e7f6={};_0x46e7f6['model']=_['keys'](db[_0xd781('0x2c')][_0xd781('0x42')]);_0x46e7f6[_0xd781('0x30')]=_['keys'](_0x15b49d['query']);_0x46e7f6[_0xd781('0x3a')]=_[_0xd781('0x32')](_0x46e7f6[_0xd781('0x33')],_0x46e7f6[_0xd781('0x30')]);_0x53aba6[_0xd781('0x34')]=_[_0xd781('0x32')](_0x46e7f6['model'],qs['fields'](_0x15b49d[_0xd781('0x30')][_0xd781('0x35')]));_0x53aba6[_0xd781('0x34')]=_0x53aba6[_0xd781('0x34')][_0xd781('0x36')]?_0x53aba6['attributes']:_0x46e7f6[_0xd781('0x33')];if(_0x15b49d[_0xd781('0x30')][_0xd781('0x3e')]){_0x53aba6['include']=[{'all':!![]}];}_0x53aba6=_[_0xd781('0x3c')]({},_0x53aba6,_0x15b49d[_0xd781('0x43')]);return db[_0xd781('0x2c')]['find'](_0x53aba6)[_0xd781('0x26')](handleEntityNotFound(_0x23bbab,null))[_0xd781('0x26')](respondWithResult(_0x23bbab,null))['catch'](handleError(_0x23bbab,null));};exports['create']=function(_0x13a907,_0x16d16e){return db[_0xd781('0x2c')]['create'](_0x13a907[_0xd781('0x44')],{})[_0xd781('0x26')](respondWithResult(_0x16d16e,0xc9))[_0xd781('0x3f')](handleError(_0x16d16e,null));};exports[_0xd781('0x24')]=function(_0x336d30,_0x3828ad){if(_0x336d30[_0xd781('0x44')]['id']){delete _0x336d30['body']['id'];}return db[_0xd781('0x2c')][_0xd781('0x45')]({'where':{'id':_0x336d30[_0xd781('0x41')]['id']}})['then'](handleEntityNotFound(_0x3828ad,null))[_0xd781('0x26')](saveUpdates(_0x336d30[_0xd781('0x44')],null))['then'](respondWithResult(_0x3828ad,null))[_0xd781('0x3f')](handleError(_0x3828ad,null));};exports[_0xd781('0x25')]=function(_0x41caac,_0x207546){return db[_0xd781('0x2c')]['find']({'where':{'id':_0x41caac[_0xd781('0x41')]['id']}})['then'](handleEntityNotFound(_0x207546,null))[_0xd781('0x26')](removeEntity(_0x207546,null))['catch'](handleError(_0x207546,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c82=['moment','bluebird','request-promise','path','../../config/environment','./integration.attributes','exports','define','Integration','lodash','util','../../config/logger','api'];(function(_0x3d7645,_0x115f06){var _0x35e589=function(_0x1a1739){while(--_0x1a1739){_0x3d7645['push'](_0x3d7645['shift']());}};_0x35e589(++_0x115f06);}(_0x9c82,0x100));var _0x29c8=function(_0x41bef2,_0x5791bd){_0x41bef2=_0x41bef2-0x0;var _0x3535a2=_0x9c82[_0x41bef2];return _0x3535a2;};'use strict';var _=require(_0x29c8('0x0'));var util=require(_0x29c8('0x1'));var logger=require(_0x29c8('0x2'))(_0x29c8('0x3'));var moment=require(_0x29c8('0x4'));var BPromise=require(_0x29c8('0x5'));var rp=require(_0x29c8('0x6'));var fs=require('fs');var path=require(_0x29c8('0x7'));var rimraf=require('rimraf');var config=require(_0x29c8('0x8'));var attributes=require(_0x29c8('0x9'));module[_0x29c8('0xa')]=function(_0x1deff6,_0x3449b8){return _0x1deff6[_0x29c8('0xb')](_0x29c8('0xc'),attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7428=['path','../../config/environment','./integration.attributes','exports','define','Integration','lodash','util','../../config/logger','moment','bluebird'];(function(_0x8f7825,_0xaa0ca0){var _0x29a7c9=function(_0x43f1eb){while(--_0x43f1eb){_0x8f7825['push'](_0x8f7825['shift']());}};_0x29a7c9(++_0xaa0ca0);}(_0x7428,0x187));var _0x8742=function(_0x39241c,_0x2217bb){_0x39241c=_0x39241c-0x0;var _0x19df74=_0x7428[_0x39241c];return _0x19df74;};'use strict';var _=require(_0x8742('0x0'));var util=require(_0x8742('0x1'));var logger=require(_0x8742('0x2'))('api');var moment=require(_0x8742('0x3'));var BPromise=require(_0x8742('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8742('0x5'));var rimraf=require('rimraf');var config=require(_0x8742('0x6'));var attributes=require(_0x8742('0x7'));module[_0x8742('0x8')]=function(_0x3ec63f,_0x3dd6b3){return _0x3ec63f[_0x8742('0x9')](_0x8742('0xa'),attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4137=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','request\x20sent','debug','Integration,\x20%s,\x20%s,\x20%s','stringify','error','code','Integration,\x20%s,\x20%s','message','lodash','util','moment','bluebird','randomstring'];(function(_0x457b64,_0x49a219){var _0x437111=function(_0x3dad3d){while(--_0x3dad3d){_0x457b64['push'](_0x457b64['shift']());}};_0x437111(++_0x49a219);}(_0x4137,0xf8));var _0x7413=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x4137[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x7413('0x0'));var util=require(_0x7413('0x1'));var moment=require(_0x7413('0x2'));var BPromise=require(_0x7413('0x3'));var rs=require(_0x7413('0x4'));var fs=require('fs');var Redis=require(_0x7413('0x5'));var db=require(_0x7413('0x6'))['db'];var utils=require(_0x7413('0x7'));var logger=require(_0x7413('0x8'))(_0x7413('0x9'));var config=require(_0x7413('0xa'));var jayson=require(_0x7413('0xb'));var client=jayson['client'][_0x7413('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x188d89,_0x5b39ac,_0x15af0d){return new BPromise(function(_0x5f4cd0,_0x3236ec){return client[_0x7413('0xd')](_0x188d89,_0x15af0d)['then'](function(_0x422bf5){logger[_0x7413('0xe')]('Integration,\x20%s,\x20%s',_0x5b39ac,_0x7413('0xf'));logger[_0x7413('0x10')](_0x7413('0x11'),_0x5b39ac,_0x7413('0xf'),JSON[_0x7413('0x12')](_0x422bf5));if(_0x422bf5['error']){if(_0x422bf5[_0x7413('0x13')][_0x7413('0x14')]===0x1f4){logger['error'](_0x7413('0x15'),_0x5b39ac,_0x422bf5[_0x7413('0x13')][_0x7413('0x16')]);return _0x3236ec(_0x422bf5['error']['message']);}logger['error'](_0x7413('0x15'),_0x5b39ac,_0x422bf5[_0x7413('0x13')]['message']);return _0x5f4cd0(_0x422bf5[_0x7413('0x13')][_0x7413('0x16')]);}else{logger['info'](_0x7413('0x15'),_0x5b39ac,'request\x20sent');_0x5f4cd0(_0x422bf5['result'][_0x7413('0x16')]);}})['catch'](function(_0x195c72){logger['error'](_0x7413('0x15'),_0x5b39ac,_0x195c72);_0x3236ec(_0x195c72);});});}
\ No newline at end of file
+var _0x896e=['Integration,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then'];(function(_0x3b8aab,_0x5237db){var _0x47e1ef=function(_0x2ddf68){while(--_0x2ddf68){_0x3b8aab['push'](_0x3b8aab['shift']());}};_0x47e1ef(++_0x5237db);}(_0x896e,0x1e9));var _0xe896=function(_0x58f464,_0x2dae5d){_0x58f464=_0x58f464-0x0;var _0x3e72b7=_0x896e[_0x58f464];return _0x3e72b7;};'use strict';var _=require(_0xe896('0x0'));var util=require(_0xe896('0x1'));var moment=require(_0xe896('0x2'));var BPromise=require(_0xe896('0x3'));var rs=require(_0xe896('0x4'));var fs=require('fs');var Redis=require(_0xe896('0x5'));var db=require(_0xe896('0x6'))['db'];var utils=require(_0xe896('0x7'));var logger=require(_0xe896('0x8'))(_0xe896('0x9'));var config=require(_0xe896('0xa'));var jayson=require(_0xe896('0xb'));var client=jayson['client'][_0xe896('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x7a0721,_0x3b902c,_0x264eeb){return new BPromise(function(_0x43c619,_0x5a1909){return client[_0xe896('0xd')](_0x7a0721,_0x264eeb)[_0xe896('0xe')](function(_0x37a90d){logger['info'](_0xe896('0xf'),_0x3b902c,'request\x20sent');logger[_0xe896('0x10')]('Integration,\x20%s,\x20%s,\x20%s',_0x3b902c,_0xe896('0x11'),JSON[_0xe896('0x12')](_0x37a90d));if(_0x37a90d[_0xe896('0x13')]){if(_0x37a90d['error'][_0xe896('0x14')]===0x1f4){logger[_0xe896('0x13')](_0xe896('0xf'),_0x3b902c,_0x37a90d['error'][_0xe896('0x15')]);return _0x5a1909(_0x37a90d[_0xe896('0x13')][_0xe896('0x15')]);}logger['error'](_0xe896('0xf'),_0x3b902c,_0x37a90d[_0xe896('0x13')][_0xe896('0x15')]);return _0x43c619(_0x37a90d['error']['message']);}else{logger[_0xe896('0x16')](_0xe896('0xf'),_0x3b902c,'request\x20sent');_0x43c619(_0x37a90d['result'][_0xe896('0x15')]);}})[_0xe896('0x17')](function(_0x57f04b){logger[_0xe896('0x13')]('Integration,\x20%s,\x20%s',_0x3b902c,_0x57f04b);_0x5a1909(_0x57f04b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./integrationReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x5f2f,0x73));var _0xf5f2=function(_0x1c6eea,_0x19a204){_0x1c6eea=_0x1c6eea-0x0;var _0x19e1a1=_0x5f2f[_0x1c6eea];return _0x19e1a1;};'use strict';var multer=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var path=require(_0xf5f2('0x2'));var timeout=require(_0xf5f2('0x3'));var express=require(_0xf5f2('0x4'));var router=express[_0xf5f2('0x5')]();var fs_extra=require(_0xf5f2('0x6'));var auth=require(_0xf5f2('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf5f2('0x8'));router[_0xf5f2('0x9')]('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0xb')]);router[_0xf5f2('0x9')](_0xf5f2('0xc'),auth['isAuthenticated'](),controller[_0xf5f2('0xd')]);router[_0xf5f2('0x9')](_0xf5f2('0xe'),auth['isAuthenticated'](),controller[_0xf5f2('0xf')]);router[_0xf5f2('0x10')]('/',auth[_0xf5f2('0xa')](),controller['create']);router[_0xf5f2('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xf5f2('0x12')]);router[_0xf5f2('0x13')]('/:id',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x14')]);module[_0xf5f2('0x15')]=router;
\ No newline at end of file
+var _0x5f66=['util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','/describe','describe','/:id','create','put','update','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5f66,0x1a0));var _0x65f6=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0x5f66[_0x4154a6];return _0x3b2786;};'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 fs_extra=require(_0x65f6('0x4'));var auth=require(_0x65f6('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x65f6('0x6'));var controller=require('./integrationReport.controller');router[_0x65f6('0x7')]('/',auth[_0x65f6('0x8')](),controller['index']);router['get'](_0x65f6('0x9'),auth[_0x65f6('0x8')](),controller[_0x65f6('0xa')]);router[_0x65f6('0x7')](_0x65f6('0xb'),auth[_0x65f6('0x8')](),controller['show']);router['post']('/',auth[_0x65f6('0x8')](),controller[_0x65f6('0xc')]);router[_0x65f6('0xd')](_0x65f6('0xb'),auth['isAuthenticated'](),controller[_0x65f6('0xe')]);router['delete']('/:id',auth[_0x65f6('0x8')](),controller['destroy']);module[_0x65f6('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf696=['DATE','TEXT','ENUM','SENDING','RECEIVED','FAILED','sequelize','exports','STRING','INTEGER','BOOLEAN'];(function(_0x28af5d,_0x8897e6){var _0x235eb7=function(_0x523d2a){while(--_0x523d2a){_0x28af5d['push'](_0x28af5d['shift']());}};_0x235eb7(++_0x8897e6);}(_0xf696,0x17c));var _0x6f69=function(_0x10cac5,_0x5d0723){_0x10cac5=_0x10cac5-0x0;var _0x46c408=_0xf696[_0x10cac5];return _0x46c408;};'use strict';var Sequelize=require(_0x6f69('0x0'));module[_0x6f69('0x1')]={'integration':{'type':Sequelize[_0x6f69('0x2')]},'eventChannel':{'type':Sequelize['STRING']},'exitStatus':{'type':Sequelize[_0x6f69('0x2')]},'ticketId':{'type':Sequelize[_0x6f69('0x2')]},'integrationId':{'type':Sequelize[_0x6f69('0x3')]},'contacts':{'type':Sequelize[_0x6f69('0x2')]},'uniqueid':{'type':Sequelize[_0x6f69('0x2')]},'calleridnum':{'type':Sequelize[_0x6f69('0x2')]},'calleridname':{'type':Sequelize[_0x6f69('0x2')]},'queue':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0x6f69('0x2')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0x6f69('0x3')]},'agentcomplete':{'type':Sequelize[_0x6f69('0x4')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x6f69('0x5')]},'talktime':{'type':Sequelize[_0x6f69('0x3')]},'agentacw':{'type':Sequelize[_0x6f69('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x6f69('0x3')]},'reason':{'type':Sequelize[_0x6f69('0x2')]},'agentringnoanswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x6f69('0x5')]},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x6f69('0x5')]},'lastevent':{'type':Sequelize[_0x6f69('0x2')]},'channel':{'type':Sequelize[_0x6f69('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x6f69('0x2')]},'connectedlinenum':{'type':Sequelize[_0x6f69('0x2')]},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x6f69('0x2')]},'context':{'type':Sequelize[_0x6f69('0x2')]},'exten':{'type':Sequelize[_0x6f69('0x2')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0x6f69('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0x6f69('0x2')]},'destcalleridnum':{'type':Sequelize[_0x6f69('0x2')]},'destcalleridname':{'type':Sequelize[_0x6f69('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0x6f69('0x2')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0x6f69('0x2')]},'destexten':{'type':Sequelize[_0x6f69('0x2')]},'destpriority':{'type':Sequelize[_0x6f69('0x2')]},'destuniqueid':{'type':Sequelize[_0x6f69('0x2')]},'messageId':{'type':Sequelize[_0x6f69('0x2')]},'inReplyTo':{'type':Sequelize[_0x6f69('0x2')]},'subject':{'type':Sequelize['STRING']},'from':{'type':Sequelize[_0x6f69('0x2')]},'to':{'type':Sequelize[_0x6f69('0x2')]},'cc':{'type':Sequelize['STRING']},'attachment':{'type':Sequelize['TEXT']},'html':{'type':Sequelize['TEXT']},'text':{'type':Sequelize[_0x6f69('0x6')]},'status':{'type':Sequelize[_0x6f69('0x7')]('SENT',_0x6f69('0x8'),_0x6f69('0x9'),_0x6f69('0xa'))},'url':{'type':Sequelize['STRING']},'app':{'type':Sequelize[_0x6f69('0x2')]},'appdata':{'type':Sequelize[_0x6f69('0x2')]},'projectId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0xeef1=['BOOLEAN','TEXT','ENUM','SENT','RECEIVED','sequelize','exports','STRING','INTEGER','DATE'];(function(_0x41aaff,_0x492197){var _0x4f0890=function(_0x595a44){while(--_0x595a44){_0x41aaff['push'](_0x41aaff['shift']());}};_0x4f0890(++_0x492197);}(_0xeef1,0x1e5));var _0x1eef=function(_0x580cb0,_0x37e9f6){_0x580cb0=_0x580cb0-0x0;var _0x4f50bd=_0xeef1[_0x580cb0];return _0x4f50bd;};'use strict';var Sequelize=require(_0x1eef('0x0'));module[_0x1eef('0x1')]={'integration':{'type':Sequelize['STRING']},'eventChannel':{'type':Sequelize[_0x1eef('0x2')]},'exitStatus':{'type':Sequelize[_0x1eef('0x2')]},'ticketId':{'type':Sequelize[_0x1eef('0x2')]},'integrationId':{'type':Sequelize[_0x1eef('0x3')]},'contacts':{'type':Sequelize[_0x1eef('0x2')]},'uniqueid':{'type':Sequelize[_0x1eef('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x1eef('0x2')]},'queue':{'type':Sequelize[_0x1eef('0x2')]},'interface':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x1eef('0x2')]},'agentcalledAt':{'type':Sequelize[_0x1eef('0x4')]},'agentconnectAt':{'type':Sequelize[_0x1eef('0x4')]},'holdtime':{'type':Sequelize[_0x1eef('0x3')]},'agentcomplete':{'type':Sequelize[_0x1eef('0x5')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x1eef('0x4')]},'talktime':{'type':Sequelize['INTEGER']},'agentacw':{'type':Sequelize[_0x1eef('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize[_0x1eef('0x2')]},'agentringnoanswer':{'type':Sequelize[_0x1eef('0x5')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x1eef('0x4')]},'agentdump':{'type':Sequelize[_0x1eef('0x5')],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x1eef('0x4')]},'lastevent':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x1eef('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x1eef('0x2')]},'connectedlinenum':{'type':Sequelize[_0x1eef('0x2')]},'connectedlinename':{'type':Sequelize[_0x1eef('0x2')]},'language':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x1eef('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x1eef('0x2')]},'priority':{'type':Sequelize[_0x1eef('0x2')]},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0x1eef('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x1eef('0x2')]},'destcalleridnum':{'type':Sequelize[_0x1eef('0x2')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x1eef('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x1eef('0x2')]},'destlanguage':{'type':Sequelize[_0x1eef('0x2')]},'destaccountcode':{'type':Sequelize[_0x1eef('0x2')]},'destcontext':{'type':Sequelize[_0x1eef('0x2')]},'destexten':{'type':Sequelize[_0x1eef('0x2')]},'destpriority':{'type':Sequelize[_0x1eef('0x2')]},'destuniqueid':{'type':Sequelize['STRING']},'messageId':{'type':Sequelize[_0x1eef('0x2')]},'inReplyTo':{'type':Sequelize['STRING']},'subject':{'type':Sequelize[_0x1eef('0x2')]},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x1eef('0x2')]},'cc':{'type':Sequelize[_0x1eef('0x2')]},'attachment':{'type':Sequelize[_0x1eef('0x6')]},'html':{'type':Sequelize[_0x1eef('0x6')]},'text':{'type':Sequelize[_0x1eef('0x6')]},'status':{'type':Sequelize[_0x1eef('0x7')](_0x1eef('0x8'),'SENDING',_0x1eef('0x9'),'FAILED')},'url':{'type':Sequelize['STRING']},'app':{'type':Sequelize[_0x1eef('0x2')]},'appdata':{'type':Sequelize[_0x1eef('0x2')]},'projectId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60b9=['params','rawAttributes','length','includeAll','find','catch','create','body','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','reject','save','update','destroy','then','error','stack','name','map','IntegrationReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll'];(function(_0x5704b8,_0x1f8629){var _0x58e76a=function(_0x1c31bf){while(--_0x1c31bf){_0x5704b8['push'](_0x5704b8['shift']());}};_0x58e76a(++_0x1f8629);}(_0x60b9,0x171));var _0x960b=function(_0xefd94d,_0x59dddc){_0xefd94d=_0xefd94d-0x0;var _0x4036e8=_0x60b9[_0xefd94d];return _0x4036e8;};'use strict';var emlformat=require(_0x960b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x960b('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x960b('0x2'));var moment=require(_0x960b('0x3'));var BPromise=require(_0x960b('0x4'));var Mustache=require(_0x960b('0x5'));var util=require('util');var path=require(_0x960b('0x6'));var sox=require(_0x960b('0x7'));var csv=require('to-csv');var ejs=require(_0x960b('0x8'));var fs=require('fs');var fs_extra=require(_0x960b('0x9'));var _=require('lodash');var squel=require(_0x960b('0xa'));var crypto=require(_0x960b('0xb'));var jsforce=require(_0x960b('0xc'));var deskjs=require(_0x960b('0xd'));var toCsv=require('to-csv');var querystring=require(_0x960b('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x960b('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x960b('0x10'));var hardwareService=require(_0x960b('0x11'));var logger=require(_0x960b('0x12'))(_0x960b('0x13'));var utils=require('../../config/utils');var config=require(_0x960b('0x14'));var licenseUtil=require(_0x960b('0x15'));var db=require(_0x960b('0x16'))['db'];function respondWithStatusCode(_0x408c13,_0x12c968){_0x12c968=_0x12c968||0xcc;return function(_0x593bca){if(_0x593bca){return _0x408c13[_0x960b('0x17')](_0x12c968);}return _0x408c13['status'](_0x12c968)[_0x960b('0x18')]();};}function respondWithResult(_0x53d236,_0x770c00){_0x770c00=_0x770c00||0xc8;return function(_0x2549bb){if(_0x2549bb){return _0x53d236[_0x960b('0x19')](_0x770c00)[_0x960b('0x1a')](_0x2549bb);}};}function respondWithFilteredResult(_0x358613,_0x58ceb0){return function(_0xf14435){if(_0xf14435){var _0x300a11=typeof _0x58ceb0[_0x960b('0x1b')]===_0x960b('0x1c')&&typeof _0x58ceb0[_0x960b('0x1d')]===_0x960b('0x1c');var _0x1b7110=_0xf14435['count'];var _0x297f4d=_0x300a11?0x0:_0x58ceb0[_0x960b('0x1b')];var _0x277903=_0x300a11?_0xf14435[_0x960b('0x1e')]:_0x58ceb0[_0x960b('0x1b')]+_0x58ceb0[_0x960b('0x1d')];var _0x4d655a;if(_0x277903>=_0x1b7110){_0x277903=_0x1b7110;_0x4d655a=0xc8;}else{_0x4d655a=0xce;}_0x358613['status'](_0x4d655a);return _0x358613[_0x960b('0x1f')]('Content-Range',_0x297f4d+'-'+_0x277903+'/'+_0x1b7110)[_0x960b('0x1a')](_0xf14435);}return null;};}function patchUpdates(_0x1592c8){return function(_0x3843bf){try{jsonpatch['apply'](_0x3843bf,_0x1592c8,!![]);}catch(_0x8f88e4){return BPromise[_0x960b('0x20')](_0x8f88e4);}return _0x3843bf[_0x960b('0x21')]();};}function saveUpdates(_0x1cd866,_0x405a06){return function(_0x5eb2da){if(_0x5eb2da){return _0x5eb2da[_0x960b('0x22')](_0x1cd866)['then'](function(_0x56cafa){return _0x56cafa;});}return null;};}function removeEntity(_0x594346,_0x55d9ab){return function(_0x5d20f0){if(_0x5d20f0){return _0x5d20f0[_0x960b('0x23')]()[_0x960b('0x24')](function(){_0x594346[_0x960b('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x181055,_0x3d8cbf){return function(_0x386dc2){if(!_0x386dc2){_0x181055[_0x960b('0x17')](0x194);}return _0x386dc2;};}function handleError(_0x2ae88a,_0x35c2bb){_0x35c2bb=_0x35c2bb||0x1f4;return function(_0x31053d){logger[_0x960b('0x25')](_0x31053d[_0x960b('0x26')]);if(_0x31053d['name']){delete _0x31053d[_0x960b('0x27')];}_0x2ae88a[_0x960b('0x19')](_0x35c2bb)['send'](_0x31053d);};}exports['index']=function(_0x45097a,_0x2a0eb7){var _0x2ea88c={},_0x1954a5={},_0x406667={'count':0x0,'rows':[]};var _0x36a505=_[_0x960b('0x28')](db[_0x960b('0x29')]['rawAttributes'],function(_0x43c72e){return{'name':_0x43c72e[_0x960b('0x2a')],'type':_0x43c72e[_0x960b('0x2b')][_0x960b('0x2c')]};});_0x1954a5[_0x960b('0x2d')]=_[_0x960b('0x28')](_0x36a505,_0x960b('0x27'));_0x1954a5[_0x960b('0x2e')]=_[_0x960b('0x2f')](_0x45097a['query']);_0x1954a5[_0x960b('0x30')]=_['intersection'](_0x1954a5[_0x960b('0x2d')],_0x1954a5['query']);_0x2ea88c['attributes']=_[_0x960b('0x31')](_0x1954a5['model'],qs['fields'](_0x45097a[_0x960b('0x2e')][_0x960b('0x32')]));_0x2ea88c[_0x960b('0x33')]=_0x2ea88c[_0x960b('0x33')]['length']?_0x2ea88c[_0x960b('0x33')]:_0x1954a5[_0x960b('0x2d')];if(!_0x45097a['query'][_0x960b('0x34')]('nolimit')){_0x2ea88c['limit']=qs[_0x960b('0x1d')](_0x45097a[_0x960b('0x2e')]['limit']);_0x2ea88c[_0x960b('0x1b')]=qs['offset'](_0x45097a[_0x960b('0x2e')][_0x960b('0x1b')]);}_0x2ea88c[_0x960b('0x35')]=qs[_0x960b('0x36')](_0x45097a[_0x960b('0x2e')][_0x960b('0x36')]);_0x2ea88c[_0x960b('0x37')]=qs[_0x960b('0x30')](_[_0x960b('0x38')](_0x45097a[_0x960b('0x2e')],_0x1954a5[_0x960b('0x30')]),_0x36a505);if(_0x45097a[_0x960b('0x2e')]['filter']){_0x2ea88c[_0x960b('0x37')]=_[_0x960b('0x39')](_0x2ea88c[_0x960b('0x37')],{'$or':_['map'](_0x36a505,function(_0x3a71da){if(_0x3a71da['type']!==_0x960b('0x3a')){var _0x3ed296={};_0x3ed296[_0x3a71da['name']]={'$like':'%'+_0x45097a[_0x960b('0x2e')][_0x960b('0x3b')]+'%'};return _0x3ed296;}})});}_0x2ea88c=_[_0x960b('0x39')]({},_0x2ea88c,_0x45097a[_0x960b('0x3c')]);var _0x3379d8={'where':_0x2ea88c[_0x960b('0x37')]};return db['IntegrationReport']['count'](_0x3379d8)[_0x960b('0x24')](function(_0x202811){_0x406667['count']=_0x202811;if(_0x45097a[_0x960b('0x2e')]['includeAll']){_0x2ea88c[_0x960b('0x3d')]=[{'all':!![]}];}return db[_0x960b('0x29')][_0x960b('0x3e')](_0x2ea88c);})['then'](function(_0x4b81dd){_0x406667['rows']=_0x4b81dd;return _0x406667;})[_0x960b('0x24')](respondWithFilteredResult(_0x2a0eb7,_0x2ea88c))['catch'](handleError(_0x2a0eb7,null));};exports['show']=function(_0x4ca86b,_0x184472){var _0x4088f0={'raw':![],'where':{'id':_0x4ca86b[_0x960b('0x3f')]['id']}},_0x836d93={};_0x836d93[_0x960b('0x2d')]=_[_0x960b('0x2f')](db[_0x960b('0x29')][_0x960b('0x40')]);_0x836d93['query']=_['keys'](_0x4ca86b[_0x960b('0x2e')]);_0x836d93['filters']=_[_0x960b('0x31')](_0x836d93[_0x960b('0x2d')],_0x836d93['query']);_0x4088f0[_0x960b('0x33')]=_[_0x960b('0x31')](_0x836d93[_0x960b('0x2d')],qs[_0x960b('0x32')](_0x4ca86b[_0x960b('0x2e')]['fields']));_0x4088f0['attributes']=_0x4088f0[_0x960b('0x33')][_0x960b('0x41')]?_0x4088f0[_0x960b('0x33')]:_0x836d93[_0x960b('0x2d')];if(_0x4ca86b[_0x960b('0x2e')][_0x960b('0x42')]){_0x4088f0[_0x960b('0x3d')]=[{'all':!![]}];}_0x4088f0=_[_0x960b('0x39')]({},_0x4088f0,_0x4ca86b['options']);return db[_0x960b('0x29')][_0x960b('0x43')](_0x4088f0)[_0x960b('0x24')](handleEntityNotFound(_0x184472,null))[_0x960b('0x24')](respondWithResult(_0x184472,null))[_0x960b('0x44')](handleError(_0x184472,null));};exports[_0x960b('0x45')]=function(_0x2a9c33,_0x3befa6){return db[_0x960b('0x29')][_0x960b('0x45')](_0x2a9c33[_0x960b('0x46')],{})[_0x960b('0x24')](respondWithResult(_0x3befa6,0xc9))['catch'](handleError(_0x3befa6,null));};exports['update']=function(_0x46310a,_0x1a0308){if(_0x46310a[_0x960b('0x46')]['id']){delete _0x46310a['body']['id'];}return db[_0x960b('0x29')]['find']({'where':{'id':_0x46310a[_0x960b('0x3f')]['id']}})['then'](handleEntityNotFound(_0x1a0308,null))[_0x960b('0x24')](saveUpdates(_0x46310a[_0x960b('0x46')],null))['then'](respondWithResult(_0x1a0308,null))[_0x960b('0x44')](handleError(_0x1a0308,null));};exports[_0x960b('0x23')]=function(_0x33e4e6,_0x2f1470){return db[_0x960b('0x29')][_0x960b('0x43')]({'where':{'id':_0x33e4e6[_0x960b('0x3f')]['id']}})[_0x960b('0x24')](handleEntityNotFound(_0x2f1470,null))[_0x960b('0x24')](removeEntity(_0x2f1470,null))[_0x960b('0x44')](handleError(_0x2f1470,null));};exports[_0x960b('0x47')]=function(_0xfccbfa,_0x3bec02){return db[_0x960b('0x29')][_0x960b('0x47')]()['then'](respondWithResult(_0x3bec02,null))[_0x960b('0x44')](handleError(_0x3bec02,null));};
\ No newline at end of file
+var _0x51b7=['error','stack','name','send','index','map','IntegrationReport','rawAttributes','type','model','query','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filters','merge','VIRTUAL','filter','includeAll','include','findAll','show','params','keys','find','create','body','catch','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','util','path','sox','to-csv','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x51b7,0xad));var _0x751b=function(_0x54e76c,_0x3f0761){_0x54e76c=_0x54e76c-0x0;var _0x59120c=_0x51b7[_0x54e76c];return _0x59120c;};'use strict';var emlformat=require(_0x751b('0x0'));var rimraf=require(_0x751b('0x1'));var zipdir=require(_0x751b('0x2'));var jsonpatch=require(_0x751b('0x3'));var rp=require(_0x751b('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x751b('0x5'));var path=require(_0x751b('0x6'));var sox=require(_0x751b('0x7'));var csv=require(_0x751b('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x751b('0x9'));var squel=require(_0x751b('0xa'));var crypto=require(_0x751b('0xb'));var jsforce=require(_0x751b('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x751b('0xd'));var Papa=require('papaparse');var Redis=require(_0x751b('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x751b('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x751b('0x10'));var logger=require(_0x751b('0x11'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x751b('0x12'))['db'];function respondWithStatusCode(_0x121dd7,_0x2db18c){_0x2db18c=_0x2db18c||0xcc;return function(_0x97f39e){if(_0x97f39e){return _0x121dd7[_0x751b('0x13')](_0x2db18c);}return _0x121dd7['status'](_0x2db18c)[_0x751b('0x14')]();};}function respondWithResult(_0x54e2a8,_0x3e8c1f){_0x3e8c1f=_0x3e8c1f||0xc8;return function(_0x287753){if(_0x287753){return _0x54e2a8[_0x751b('0x15')](_0x3e8c1f)[_0x751b('0x16')](_0x287753);}};}function respondWithFilteredResult(_0x11782b,_0x5d04b4){return function(_0xffcbb8){if(_0xffcbb8){var _0x232fdd=typeof _0x5d04b4[_0x751b('0x17')]===_0x751b('0x18')&&typeof _0x5d04b4[_0x751b('0x19')]===_0x751b('0x18');var _0x516617=_0xffcbb8[_0x751b('0x1a')];var _0x588dbb=_0x232fdd?0x0:_0x5d04b4[_0x751b('0x17')];var _0x5df2d5=_0x232fdd?_0xffcbb8[_0x751b('0x1a')]:_0x5d04b4[_0x751b('0x17')]+_0x5d04b4[_0x751b('0x19')];var _0xad96f9;if(_0x5df2d5>=_0x516617){_0x5df2d5=_0x516617;_0xad96f9=0xc8;}else{_0xad96f9=0xce;}_0x11782b[_0x751b('0x15')](_0xad96f9);return _0x11782b[_0x751b('0x1b')](_0x751b('0x1c'),_0x588dbb+'-'+_0x5df2d5+'/'+_0x516617)[_0x751b('0x16')](_0xffcbb8);}return null;};}function patchUpdates(_0x58d7aa){return function(_0x4fb8af){try{jsonpatch[_0x751b('0x1d')](_0x4fb8af,_0x58d7aa,!![]);}catch(_0x52cef3){return BPromise[_0x751b('0x1e')](_0x52cef3);}return _0x4fb8af['save']();};}function saveUpdates(_0x4577ae,_0x7dafe1){return function(_0x22515d){if(_0x22515d){return _0x22515d[_0x751b('0x1f')](_0x4577ae)[_0x751b('0x20')](function(_0x4d191d){return _0x4d191d;});}return null;};}function removeEntity(_0xf46c95,_0x800b11){return function(_0x19dbdf){if(_0x19dbdf){return _0x19dbdf[_0x751b('0x21')]()[_0x751b('0x20')](function(){_0xf46c95[_0x751b('0x15')](0xcc)[_0x751b('0x14')]();});}};}function handleEntityNotFound(_0x1998e0,_0x5ac33a){return function(_0x574ed4){if(!_0x574ed4){_0x1998e0[_0x751b('0x13')](0x194);}return _0x574ed4;};}function handleError(_0x5b68d3,_0x496b02){_0x496b02=_0x496b02||0x1f4;return function(_0x2fc6d0){logger[_0x751b('0x22')](_0x2fc6d0[_0x751b('0x23')]);if(_0x2fc6d0[_0x751b('0x24')]){delete _0x2fc6d0[_0x751b('0x24')];}_0x5b68d3[_0x751b('0x15')](_0x496b02)[_0x751b('0x25')](_0x2fc6d0);};}exports[_0x751b('0x26')]=function(_0x18a330,_0x598128){var _0x5894e2={},_0x3a6f1a={},_0x51a774={'count':0x0,'rows':[]};var _0x6d0774=_[_0x751b('0x27')](db[_0x751b('0x28')][_0x751b('0x29')],function(_0x3f7f50){return{'name':_0x3f7f50['fieldName'],'type':_0x3f7f50[_0x751b('0x2a')]['key']};});_0x3a6f1a[_0x751b('0x2b')]=_[_0x751b('0x27')](_0x6d0774,_0x751b('0x24'));_0x3a6f1a[_0x751b('0x2c')]=_['keys'](_0x18a330[_0x751b('0x2c')]);_0x3a6f1a['filters']=_[_0x751b('0x2d')](_0x3a6f1a[_0x751b('0x2b')],_0x3a6f1a[_0x751b('0x2c')]);_0x5894e2[_0x751b('0x2e')]=_['intersection'](_0x3a6f1a[_0x751b('0x2b')],qs[_0x751b('0x2f')](_0x18a330['query']['fields']));_0x5894e2[_0x751b('0x2e')]=_0x5894e2[_0x751b('0x2e')][_0x751b('0x30')]?_0x5894e2[_0x751b('0x2e')]:_0x3a6f1a[_0x751b('0x2b')];if(!_0x18a330[_0x751b('0x2c')]['hasOwnProperty'](_0x751b('0x31'))){_0x5894e2[_0x751b('0x19')]=qs['limit'](_0x18a330['query'][_0x751b('0x19')]);_0x5894e2[_0x751b('0x17')]=qs[_0x751b('0x17')](_0x18a330[_0x751b('0x2c')][_0x751b('0x17')]);}_0x5894e2[_0x751b('0x32')]=qs[_0x751b('0x33')](_0x18a330[_0x751b('0x2c')]['sort']);_0x5894e2[_0x751b('0x34')]=qs['filters'](_[_0x751b('0x35')](_0x18a330[_0x751b('0x2c')],_0x3a6f1a[_0x751b('0x36')]),_0x6d0774);if(_0x18a330[_0x751b('0x2c')]['filter']){_0x5894e2[_0x751b('0x34')]=_[_0x751b('0x37')](_0x5894e2[_0x751b('0x34')],{'$or':_['map'](_0x6d0774,function(_0x78220d){if(_0x78220d[_0x751b('0x2a')]!==_0x751b('0x38')){var _0x275f6e={};_0x275f6e[_0x78220d[_0x751b('0x24')]]={'$like':'%'+_0x18a330[_0x751b('0x2c')][_0x751b('0x39')]+'%'};return _0x275f6e;}})});}_0x5894e2=_['merge']({},_0x5894e2,_0x18a330['options']);var _0x3a25ad={'where':_0x5894e2[_0x751b('0x34')]};return db[_0x751b('0x28')][_0x751b('0x1a')](_0x3a25ad)[_0x751b('0x20')](function(_0x5878bf){_0x51a774[_0x751b('0x1a')]=_0x5878bf;if(_0x18a330[_0x751b('0x2c')][_0x751b('0x3a')]){_0x5894e2[_0x751b('0x3b')]=[{'all':!![]}];}return db[_0x751b('0x28')][_0x751b('0x3c')](_0x5894e2);})[_0x751b('0x20')](function(_0x35c6ae){_0x51a774['rows']=_0x35c6ae;return _0x51a774;})[_0x751b('0x20')](respondWithFilteredResult(_0x598128,_0x5894e2))['catch'](handleError(_0x598128,null));};exports[_0x751b('0x3d')]=function(_0x1ce78e,_0x524355){var _0x7289d={'raw':![],'where':{'id':_0x1ce78e[_0x751b('0x3e')]['id']}},_0x5b92c7={};_0x5b92c7[_0x751b('0x2b')]=_[_0x751b('0x3f')](db['IntegrationReport'][_0x751b('0x29')]);_0x5b92c7[_0x751b('0x2c')]=_['keys'](_0x1ce78e['query']);_0x5b92c7['filters']=_[_0x751b('0x2d')](_0x5b92c7['model'],_0x5b92c7['query']);_0x7289d[_0x751b('0x2e')]=_['intersection'](_0x5b92c7['model'],qs[_0x751b('0x2f')](_0x1ce78e[_0x751b('0x2c')][_0x751b('0x2f')]));_0x7289d['attributes']=_0x7289d[_0x751b('0x2e')][_0x751b('0x30')]?_0x7289d[_0x751b('0x2e')]:_0x5b92c7[_0x751b('0x2b')];if(_0x1ce78e['query']['includeAll']){_0x7289d[_0x751b('0x3b')]=[{'all':!![]}];}_0x7289d=_[_0x751b('0x37')]({},_0x7289d,_0x1ce78e['options']);return db[_0x751b('0x28')][_0x751b('0x40')](_0x7289d)[_0x751b('0x20')](handleEntityNotFound(_0x524355,null))[_0x751b('0x20')](respondWithResult(_0x524355,null))['catch'](handleError(_0x524355,null));};exports[_0x751b('0x41')]=function(_0x2b5d02,_0x75d4a0){return db['IntegrationReport'][_0x751b('0x41')](_0x2b5d02[_0x751b('0x42')],{})[_0x751b('0x20')](respondWithResult(_0x75d4a0,0xc9))[_0x751b('0x43')](handleError(_0x75d4a0,null));};exports['update']=function(_0x3c05c3,_0x11377b){if(_0x3c05c3[_0x751b('0x42')]['id']){delete _0x3c05c3['body']['id'];}return db[_0x751b('0x28')]['find']({'where':{'id':_0x3c05c3[_0x751b('0x3e')]['id']}})[_0x751b('0x20')](handleEntityNotFound(_0x11377b,null))[_0x751b('0x20')](saveUpdates(_0x3c05c3['body'],null))[_0x751b('0x20')](respondWithResult(_0x11377b,null))[_0x751b('0x43')](handleError(_0x11377b,null));};exports[_0x751b('0x21')]=function(_0x250540,_0x507aa0){return db[_0x751b('0x28')][_0x751b('0x40')]({'where':{'id':_0x250540[_0x751b('0x3e')]['id']}})[_0x751b('0x20')](handleEntityNotFound(_0x507aa0,null))[_0x751b('0x20')](removeEntity(_0x507aa0,null))[_0x751b('0x43')](handleError(_0x507aa0,null));};exports[_0x751b('0x44')]=function(_0x1b89b4,_0x1eb34b){return db[_0x751b('0x28')][_0x751b('0x44')]()[_0x751b('0x20')](respondWithResult(_0x1eb34b,null))[_0x751b('0x43')](handleError(_0x1eb34b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd986=['./integrationReport.attributes','exports','define','IntegrationReport','report_integration','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0xfb89e6,_0x3a56f4){var _0x3c3040=function(_0x43f1ef){while(--_0x43f1ef){_0xfb89e6['push'](_0xfb89e6['shift']());}};_0x3c3040(++_0x3a56f4);}(_0xd986,0xd7));var _0x6d98=function(_0x21a022,_0x4b9206){_0x21a022=_0x21a022-0x0;var _0x255fa9=_0xd986[_0x21a022];return _0x255fa9;};'use strict';var _=require(_0x6d98('0x0'));var util=require(_0x6d98('0x1'));var logger=require('../../config/logger')(_0x6d98('0x2'));var moment=require(_0x6d98('0x3'));var BPromise=require(_0x6d98('0x4'));var rp=require(_0x6d98('0x5'));var fs=require('fs');var path=require(_0x6d98('0x6'));var rimraf=require(_0x6d98('0x7'));var config=require(_0x6d98('0x8'));var attributes=require(_0x6d98('0x9'));module[_0x6d98('0xa')]=function(_0x5dda91,_0x57c504){return _0x5dda91[_0x6d98('0xb')](_0x6d98('0xc'),attributes,{'tableName':_0x6d98('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6d3f=['lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./integrationReport.attributes','exports','IntegrationReport','report_integration'];(function(_0x1fcc6d,_0x2c233f){var _0x2c1e98=function(_0x7f3974){while(--_0x7f3974){_0x1fcc6d['push'](_0x1fcc6d['shift']());}};_0x2c1e98(++_0x2c233f);}(_0x6d3f,0xa9));var _0xf6d3=function(_0x1b93ce,_0x59fdb2){_0x1b93ce=_0x1b93ce-0x0;var _0x193f0a=_0x6d3f[_0x1b93ce];return _0x193f0a;};'use strict';var _=require(_0xf6d3('0x0'));var util=require('util');var logger=require(_0xf6d3('0x1'))(_0xf6d3('0x2'));var moment=require(_0xf6d3('0x3'));var BPromise=require(_0xf6d3('0x4'));var rp=require(_0xf6d3('0x5'));var fs=require('fs');var path=require(_0xf6d3('0x6'));var rimraf=require(_0xf6d3('0x7'));var config=require(_0xf6d3('0x8'));var attributes=require(_0xf6d3('0x9'));module[_0xf6d3('0xa')]=function(_0x50a8a9,_0x335f88){return _0x50a8a9['define'](_0xf6d3('0xb'),attributes,{'tableName':_0xf6d3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2c7=['../../config/logger','jayson/promise','client','http','request','then','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x4b7895,_0x3c4f5d){var _0x264180=function(_0xe0e861){while(--_0xe0e861){_0x4b7895['push'](_0x4b7895['shift']());}};_0x264180(++_0x3c4f5d);}(_0xc2c7,0x134));var _0x7c2c=function(_0x15288f,_0x622f28){_0x15288f=_0x15288f-0x0;var _0x2dbe16=_0xc2c7[_0x15288f];return _0x2dbe16;};'use strict';var _=require('lodash');var util=require(_0x7c2c('0x0'));var moment=require(_0x7c2c('0x1'));var BPromise=require(_0x7c2c('0x2'));var rs=require(_0x7c2c('0x3'));var fs=require('fs');var Redis=require(_0x7c2c('0x4'));var db=require(_0x7c2c('0x5'))['db'];var utils=require(_0x7c2c('0x6'));var logger=require(_0x7c2c('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x7c2c('0x8'));var client=jayson[_0x7c2c('0x9')][_0x7c2c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x54f027,_0x4abe93,_0x5a1027){return new BPromise(function(_0x2274cd,_0x29638d){return client[_0x7c2c('0xb')](_0x54f027,_0x5a1027)[_0x7c2c('0xc')](function(_0x279cff){logger['info'](_0x7c2c('0xd'),_0x4abe93,_0x7c2c('0xe'));logger[_0x7c2c('0xf')](_0x7c2c('0x10'),_0x4abe93,_0x7c2c('0xe'),JSON[_0x7c2c('0x11')](_0x279cff));if(_0x279cff[_0x7c2c('0x12')]){if(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x13')]===0x1f4){logger[_0x7c2c('0x12')](_0x7c2c('0xd'),_0x4abe93,_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);return _0x29638d(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);}logger[_0x7c2c('0x12')]('IntegrationReport,\x20%s,\x20%s',_0x4abe93,_0x279cff['error'][_0x7c2c('0x14')]);return _0x2274cd(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);}else{logger['info'](_0x7c2c('0xd'),_0x4abe93,_0x7c2c('0xe'));_0x2274cd(_0x279cff['result'][_0x7c2c('0x14')]);}})['catch'](function(_0x1aa355){logger['error'](_0x7c2c('0xd'),_0x4abe93,_0x1aa355);_0x29638d(_0x1aa355);});});}
\ No newline at end of file
+var _0xadb5=['error','code','message','result','catch','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','IntegrationReport,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x39c65b,_0x4b5a02){var _0x487fee=function(_0x5d3a6b){while(--_0x5d3a6b){_0x39c65b['push'](_0x39c65b['shift']());}};_0x487fee(++_0x4b5a02);}(_0xadb5,0xad));var _0x5adb=function(_0x339ed9,_0x375907){_0x339ed9=_0x339ed9-0x0;var _0x1beca2=_0xadb5[_0x339ed9];return _0x1beca2;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var moment=require('moment');var BPromise=require(_0x5adb('0x1'));var rs=require(_0x5adb('0x2'));var fs=require('fs');var Redis=require(_0x5adb('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x5adb('0x4'));var logger=require(_0x5adb('0x5'))(_0x5adb('0x6'));var config=require('../../config/environment');var jayson=require(_0x5adb('0x7'));var client=jayson[_0x5adb('0x8')][_0x5adb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3213e8,_0xdf3776,_0x353885){return new BPromise(function(_0x47228a,_0x6d1b45){return client[_0x5adb('0xa')](_0x3213e8,_0x353885)[_0x5adb('0xb')](function(_0x34f59d){logger[_0x5adb('0xc')](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));logger['debug']('IntegrationReport,\x20%s,\x20%s,\x20%s',_0xdf3776,_0x5adb('0xe'),JSON[_0x5adb('0xf')](_0x34f59d));if(_0x34f59d[_0x5adb('0x10')]){if(_0x34f59d['error'][_0x5adb('0x11')]===0x1f4){logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d['error'][_0x5adb('0x12')]);return _0x6d1b45(_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);}logger['error'](_0x5adb('0xd'),_0xdf3776,_0x34f59d[_0x5adb('0x10')][_0x5adb('0x12')]);return _0x47228a(_0x34f59d['error'][_0x5adb('0x12')]);}else{logger['info'](_0x5adb('0xd'),_0xdf3776,_0x5adb('0xe'));_0x47228a(_0x34f59d[_0x5adb('0x13')][_0x5adb('0x12')]);}})[_0x5adb('0x14')](function(_0x39d24d){logger[_0x5adb('0x10')](_0x5adb('0xd'),_0xdf3776,_0x39d24d);_0x6d1b45(_0x39d24d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6797=['../../components/interaction/service','./interval.controller','get','index','/:id','isAuthenticated','show','/:id/sub_intervals','getIntervals','post','create','addInterval','/:id/sub_intervals/create_many','addIntervals','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x1f0ca7,_0x403fe9){var _0x107ec2=function(_0x12f7af){while(--_0x12f7af){_0x1f0ca7['push'](_0x1f0ca7['shift']());}};_0x107ec2(++_0x403fe9);}(_0x6797,0x94));var _0x7679=function(_0x121dcb,_0x1a1347){_0x121dcb=_0x121dcb-0x0;var _0x522d12=_0x6797[_0x121dcb];return _0x522d12;};'use strict';var multer=require(_0x7679('0x0'));var util=require(_0x7679('0x1'));var path=require(_0x7679('0x2'));var timeout=require(_0x7679('0x3'));var express=require(_0x7679('0x4'));var router=express[_0x7679('0x5')]();var fs_extra=require(_0x7679('0x6'));var auth=require(_0x7679('0x7'));var interaction=require(_0x7679('0x8'));var config=require('../../config/environment');var controller=require(_0x7679('0x9'));router[_0x7679('0xa')]('/',auth['isAuthenticated'](),controller[_0x7679('0xb')]);router['get'](_0x7679('0xc'),auth[_0x7679('0xd')](),controller[_0x7679('0xe')]);router['get'](_0x7679('0xf'),auth[_0x7679('0xd')](),controller[_0x7679('0x10')]);router[_0x7679('0x11')]('/',auth[_0x7679('0xd')](),controller[_0x7679('0x12')]);router[_0x7679('0x11')]('/:id/sub_intervals',auth[_0x7679('0xd')](),controller[_0x7679('0x13')]);router[_0x7679('0x11')](_0x7679('0x14'),auth[_0x7679('0xd')](),controller[_0x7679('0x15')]);router[_0x7679('0x16')](_0x7679('0xc'),auth['isAuthenticated'](),controller[_0x7679('0x17')]);router[_0x7679('0x18')](_0x7679('0xc'),auth[_0x7679('0xd')](),controller['destroy']);module[_0x7679('0x19')]=router;
\ No newline at end of file
+var _0x9d76=['update','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./interval.controller','get','isAuthenticated','index','/:id','show','/:id/sub_intervals','getIntervals','post','create','addInterval','addIntervals','put'];(function(_0x581c13,_0x5b2049){var _0xa9783d=function(_0x597f2d){while(--_0x597f2d){_0x581c13['push'](_0x581c13['shift']());}};_0xa9783d(++_0x5b2049);}(_0x9d76,0x76));var _0x69d7=function(_0x17a1e0,_0x25a3e8){_0x17a1e0=_0x17a1e0-0x0;var _0x1f1163=_0x9d76[_0x17a1e0];return _0x1f1163;};'use strict';var multer=require(_0x69d7('0x0'));var util=require('util');var path=require(_0x69d7('0x1'));var timeout=require(_0x69d7('0x2'));var express=require(_0x69d7('0x3'));var router=express[_0x69d7('0x4')]();var fs_extra=require(_0x69d7('0x5'));var auth=require(_0x69d7('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x69d7('0x7'));router[_0x69d7('0x8')]('/',auth[_0x69d7('0x9')](),controller[_0x69d7('0xa')]);router['get'](_0x69d7('0xb'),auth[_0x69d7('0x9')](),controller[_0x69d7('0xc')]);router[_0x69d7('0x8')](_0x69d7('0xd'),auth[_0x69d7('0x9')](),controller[_0x69d7('0xe')]);router[_0x69d7('0xf')]('/',auth['isAuthenticated'](),controller[_0x69d7('0x10')]);router[_0x69d7('0xf')](_0x69d7('0xd'),auth[_0x69d7('0x9')](),controller[_0x69d7('0x11')]);router[_0x69d7('0xf')]('/:id/sub_intervals/create_many',auth['isAuthenticated'](),controller[_0x69d7('0x12')]);router[_0x69d7('0x13')]('/:id',auth[_0x69d7('0x9')](),controller[_0x69d7('0x14')]);router[_0x69d7('0x15')](_0x69d7('0xb'),auth[_0x69d7('0x9')](),controller[_0x69d7('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7742=['exports','STRING'];(function(_0x46361e,_0x243aaf){var _0x14e302=function(_0x9ebecf){while(--_0x9ebecf){_0x46361e['push'](_0x46361e['shift']());}};_0x14e302(++_0x243aaf);}(_0x7742,0x80));var _0x2774=function(_0x2d9897,_0x3a3e28){_0x2d9897=_0x2d9897-0x0;var _0x30cd48=_0x7742[_0x2d9897];return _0x30cd48;};'use strict';var Sequelize=require('sequelize');module[_0x2774('0x0')]={'name':{'type':Sequelize[_0x2774('0x1')]},'description':{'type':Sequelize[_0x2774('0x1')]},'interval':{'type':Sequelize[_0x2774('0x1')],'allowNull':!![]}};
\ No newline at end of file
+var _0xe6ec=['sequelize','STRING'];(function(_0x243b2f,_0x30aa15){var _0xcb3c2d=function(_0x213bb2){while(--_0x213bb2){_0x243b2f['push'](_0x243b2f['shift']());}};_0xcb3c2d(++_0x30aa15);}(_0xe6ec,0x7a));var _0xce6e=function(_0x16f515,_0x403a35){_0x16f515=_0x16f515-0x0;var _0x20659c=_0xe6ec[_0x16f515];return _0x20659c;};'use strict';var Sequelize=require(_0xce6e('0x0'));module['exports']={'name':{'type':Sequelize[_0xce6e('0x1')]},'description':{'type':Sequelize[_0xce6e('0x1')]},'interval':{'type':Sequelize['STRING'],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae7f=['intersection','fields','length','hasOwnProperty','nolimit','order','where','filters','pick','filter','VIRTUAL','merge','options','count','includeAll','findAll','show','params','rawAttributes','keys','include','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addInterval','IntervalId','findOne','sort','getIntervals','addIntervals','transaction','bulkCreate','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../components/extensions/rewrite','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','apply','save','update','destroy','get','Intervals','UserProfileResource','then','error','stack','name','send','index','map','Interval','fieldName','key','model','query','attributes'];(function(_0x51e9a4,_0x126aed){var _0x3f15d6=function(_0x48878d){while(--_0x48878d){_0x51e9a4['push'](_0x51e9a4['shift']());}};_0x3f15d6(++_0x126aed);}(_0xae7f,0x136));var _0xfae7=function(_0x285579,_0x21c776){_0x285579=_0x285579-0x0;var _0x4de42f=_0xae7f[_0x285579];return _0x4de42f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfae7('0x0'));var zipdir=require(_0xfae7('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xfae7('0x2'));var moment=require(_0xfae7('0x3'));var BPromise=require(_0xfae7('0x4'));var Mustache=require(_0xfae7('0x5'));var util=require(_0xfae7('0x6'));var path=require(_0xfae7('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xfae7('0x8'));var fs=require('fs');var fs_extra=require(_0xfae7('0x9'));var _=require(_0xfae7('0xa'));var squel=require(_0xfae7('0xb'));var crypto=require(_0xfae7('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xfae7('0xd'));var toCsv=require(_0xfae7('0xe'));var querystring=require(_0xfae7('0xf'));var Papa=require('papaparse');var Redis=require(_0xfae7('0x10'));var authService=require(_0xfae7('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xfae7('0x12'));var hardwareService=require(_0xfae7('0x13'));var logger=require(_0xfae7('0x14'))(_0xfae7('0x15'));var utils=require(_0xfae7('0x16'));var config=require(_0xfae7('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var extensions=require(_0xfae7('0x18'));function respondWithStatusCode(_0x1bf1af,_0x3c1ed6){_0x3c1ed6=_0x3c1ed6||0xcc;return function(_0x1a19f9){if(_0x1a19f9){return _0x1bf1af[_0xfae7('0x19')](_0x3c1ed6);}return _0x1bf1af[_0xfae7('0x1a')](_0x3c1ed6)[_0xfae7('0x1b')]();};}function respondWithResult(_0x2afa91,_0x1847cd){_0x1847cd=_0x1847cd||0xc8;return function(_0x4de96c){if(_0x4de96c){return _0x2afa91['status'](_0x1847cd)['json'](_0x4de96c);}};}function respondWithFilteredResult(_0x5df33e,_0x41cdbb){return function(_0x4fe190){if(_0x4fe190){var _0x31b0c7=typeof _0x41cdbb[_0xfae7('0x1c')]===_0xfae7('0x1d')&&typeof _0x41cdbb['limit']==='undefined';var _0x3c0d13=_0x4fe190['count'];var _0x2928dd=_0x31b0c7?0x0:_0x41cdbb[_0xfae7('0x1c')];var _0x2e5481=_0x31b0c7?_0x4fe190['count']:_0x41cdbb['offset']+_0x41cdbb[_0xfae7('0x1e')];var _0x1e7fbd;if(_0x2e5481>=_0x3c0d13){_0x2e5481=_0x3c0d13;_0x1e7fbd=0xc8;}else{_0x1e7fbd=0xce;}_0x5df33e['status'](_0x1e7fbd);return _0x5df33e[_0xfae7('0x1f')](_0xfae7('0x20'),_0x2928dd+'-'+_0x2e5481+'/'+_0x3c0d13)[_0xfae7('0x21')](_0x4fe190);}return null;};}function patchUpdates(_0x25bbdc){return function(_0x244186){try{jsonpatch[_0xfae7('0x22')](_0x244186,_0x25bbdc,!![]);}catch(_0x185dfd){return BPromise['reject'](_0x185dfd);}return _0x244186[_0xfae7('0x23')]();};}function saveUpdates(_0x2058cf,_0x421423){return function(_0x226896){if(_0x226896){return _0x226896[_0xfae7('0x24')](_0x2058cf)['then'](function(_0x333cb5){return _0x333cb5;});}return null;};}function removeEntity(_0x50b3b8,_0x27de8c){return function(_0x13d2bf){if(_0x13d2bf){return _0x13d2bf[_0xfae7('0x25')]()['then'](function(){var _0x41dc88=_0x13d2bf[_0xfae7('0x26')]({'plain':!![]});var _0xbf35ee=_0xfae7('0x27');return db[_0xfae7('0x28')][_0xfae7('0x25')]({'where':{'type':_0xbf35ee,'resourceId':_0x41dc88['id']}})[_0xfae7('0x29')](function(){return _0x13d2bf;});})[_0xfae7('0x29')](function(){_0x50b3b8[_0xfae7('0x1a')](0xcc)[_0xfae7('0x1b')]();});}};}function handleEntityNotFound(_0x390805,_0x49faf6){return function(_0x30fa3d){if(!_0x30fa3d){_0x390805['sendStatus'](0x194);}return _0x30fa3d;};}function handleError(_0x391fa6,_0x295914){_0x295914=_0x295914||0x1f4;return function(_0x52db37){logger[_0xfae7('0x2a')](_0x52db37[_0xfae7('0x2b')]);if(_0x52db37['name']){delete _0x52db37[_0xfae7('0x2c')];}_0x391fa6[_0xfae7('0x1a')](_0x295914)[_0xfae7('0x2d')](_0x52db37);};}exports[_0xfae7('0x2e')]=function(_0x37bd2f,_0x1f6a7c){var _0x391dc3={},_0x588127={},_0x340d1a={'count':0x0,'rows':[]};var _0x37842d=_[_0xfae7('0x2f')](db[_0xfae7('0x30')]['rawAttributes'],function(_0xff7b34){return{'name':_0xff7b34[_0xfae7('0x31')],'type':_0xff7b34['type'][_0xfae7('0x32')]};});_0x588127[_0xfae7('0x33')]=_[_0xfae7('0x2f')](_0x37842d,_0xfae7('0x2c'));_0x588127[_0xfae7('0x34')]=_['keys'](_0x37bd2f['query']);_0x588127['filters']=_['intersection'](_0x588127[_0xfae7('0x33')],_0x588127[_0xfae7('0x34')]);_0x391dc3[_0xfae7('0x35')]=_[_0xfae7('0x36')](_0x588127[_0xfae7('0x33')],qs[_0xfae7('0x37')](_0x37bd2f[_0xfae7('0x34')][_0xfae7('0x37')]));_0x391dc3[_0xfae7('0x35')]=_0x391dc3[_0xfae7('0x35')][_0xfae7('0x38')]?_0x391dc3[_0xfae7('0x35')]:_0x588127[_0xfae7('0x33')];if(!_0x37bd2f[_0xfae7('0x34')][_0xfae7('0x39')](_0xfae7('0x3a'))){_0x391dc3[_0xfae7('0x1e')]=qs[_0xfae7('0x1e')](_0x37bd2f[_0xfae7('0x34')][_0xfae7('0x1e')]);_0x391dc3[_0xfae7('0x1c')]=qs[_0xfae7('0x1c')](_0x37bd2f[_0xfae7('0x34')][_0xfae7('0x1c')]);}_0x391dc3[_0xfae7('0x3b')]=qs['sort'](_0x37bd2f['query']['sort']);_0x391dc3[_0xfae7('0x3c')]=qs[_0xfae7('0x3d')](_[_0xfae7('0x3e')](_0x37bd2f[_0xfae7('0x34')],_0x588127[_0xfae7('0x3d')]),_0x37842d);if(_0x37bd2f['query'][_0xfae7('0x3f')]){_0x391dc3['where']=_['merge'](_0x391dc3[_0xfae7('0x3c')],{'$or':_[_0xfae7('0x2f')](_0x37842d,function(_0x30d464){if(_0x30d464['type']!==_0xfae7('0x40')){var _0x649f12={};_0x649f12[_0x30d464[_0xfae7('0x2c')]]={'$like':'%'+_0x37bd2f[_0xfae7('0x34')][_0xfae7('0x3f')]+'%'};return _0x649f12;}})});}_0x391dc3=_[_0xfae7('0x41')]({},_0x391dc3,_0x37bd2f[_0xfae7('0x42')]);var _0x3f6c47={'where':_0x391dc3[_0xfae7('0x3c')]};return db['Interval'][_0xfae7('0x43')](_0x3f6c47)[_0xfae7('0x29')](function(_0x58cd45){_0x340d1a[_0xfae7('0x43')]=_0x58cd45;if(_0x37bd2f[_0xfae7('0x34')][_0xfae7('0x44')]){_0x391dc3['include']=[{'all':!![]}];}return db[_0xfae7('0x30')][_0xfae7('0x45')](_0x391dc3);})['then'](function(_0x381552){_0x340d1a['rows']=_0x381552;return _0x340d1a;})[_0xfae7('0x29')](respondWithFilteredResult(_0x1f6a7c,_0x391dc3))['catch'](handleError(_0x1f6a7c,null));};exports[_0xfae7('0x46')]=function(_0x23df4c,_0x35d1e3){var _0x2931ed={'raw':!![],'where':{'id':_0x23df4c[_0xfae7('0x47')]['id']}},_0x48da6a={};_0x48da6a[_0xfae7('0x33')]=_['keys'](db[_0xfae7('0x30')][_0xfae7('0x48')]);_0x48da6a[_0xfae7('0x34')]=_[_0xfae7('0x49')](_0x23df4c['query']);_0x48da6a[_0xfae7('0x3d')]=_[_0xfae7('0x36')](_0x48da6a[_0xfae7('0x33')],_0x48da6a[_0xfae7('0x34')]);_0x2931ed[_0xfae7('0x35')]=_[_0xfae7('0x36')](_0x48da6a['model'],qs[_0xfae7('0x37')](_0x23df4c[_0xfae7('0x34')][_0xfae7('0x37')]));_0x2931ed[_0xfae7('0x35')]=_0x2931ed[_0xfae7('0x35')][_0xfae7('0x38')]?_0x2931ed[_0xfae7('0x35')]:_0x48da6a['model'];if(_0x23df4c['query'][_0xfae7('0x44')]){_0x2931ed[_0xfae7('0x4a')]=[{'all':!![]}];}_0x2931ed=_[_0xfae7('0x41')]({},_0x2931ed,_0x23df4c[_0xfae7('0x42')]);return db[_0xfae7('0x30')][_0xfae7('0x4b')](_0x2931ed)['then'](handleEntityNotFound(_0x35d1e3,null))[_0xfae7('0x29')](respondWithResult(_0x35d1e3,null))['catch'](handleError(_0x35d1e3,null));};exports['create']=function(_0x17264d,_0x4ddf3f){return db[_0xfae7('0x30')][_0xfae7('0x4c')](_0x17264d['body'],{})[_0xfae7('0x29')](function(_0x5a5d2a){var _0x5f227b=_0x17264d['user'][_0xfae7('0x26')]({'plain':!![]});if(!_0x5f227b)throw new Error(_0xfae7('0x4d'));if(_0x5f227b['role']===_0xfae7('0x4e')){var _0x6b7ca8=_0x5a5d2a[_0xfae7('0x26')]({'plain':!![]});var _0x4133b9=_0xfae7('0x27');return db[_0xfae7('0x4f')][_0xfae7('0x4b')]({'where':{'name':_0x4133b9,'userProfileId':_0x5f227b['userProfileId']},'raw':!![]})[_0xfae7('0x29')](function(_0x4c89fe){if(_0x4c89fe&&_0x4c89fe['autoAssociation']===0x0){return db[_0xfae7('0x28')]['create']({'name':_0x6b7ca8[_0xfae7('0x2c')],'resourceId':_0x6b7ca8['id'],'type':_0x4c89fe[_0xfae7('0x2c')],'sectionId':_0x4c89fe['id']},{})['then'](function(){return _0x5a5d2a;});}else{return _0x5a5d2a;}})[_0xfae7('0x50')](function(_0x5aff0b){logger[_0xfae7('0x2a')](_0xfae7('0x51'),_0x5aff0b);throw _0x5aff0b;});}return _0x5a5d2a;})['then'](respondWithResult(_0x4ddf3f,0xc9))[_0xfae7('0x50')](handleError(_0x4ddf3f,null));};exports[_0xfae7('0x24')]=function(_0x35f52a,_0x4344d0){if(_0x35f52a[_0xfae7('0x52')]['id']){delete _0x35f52a[_0xfae7('0x52')]['id'];}return db[_0xfae7('0x30')]['find']({'where':{'id':_0x35f52a['params']['id']}})[_0xfae7('0x29')](handleEntityNotFound(_0x4344d0,null))[_0xfae7('0x29')](saveUpdates(_0x35f52a[_0xfae7('0x52')],null))[_0xfae7('0x29')](respondWithResult(_0x4344d0,null))['catch'](handleError(_0x4344d0,null));};exports[_0xfae7('0x25')]=function(_0x56a0c8,_0x4d169e){return db['Interval'][_0xfae7('0x4b')]({'where':{'id':_0x56a0c8[_0xfae7('0x47')]['id']}})[_0xfae7('0x29')](handleEntityNotFound(_0x4d169e,null))[_0xfae7('0x29')](removeEntity(_0x4d169e,null))[_0xfae7('0x50')](handleError(_0x4d169e,null));};exports[_0xfae7('0x53')]=function(_0x146cb7,_0x3ff0cc,_0x5e7879){if(_0x146cb7[_0xfae7('0x52')]['id']){delete _0x146cb7[_0xfae7('0x52')]['id'];}return db['Interval'][_0xfae7('0x4b')]({'where':{'id':_0x146cb7['params']['id']}})['then'](handleEntityNotFound(_0x3ff0cc,null))[_0xfae7('0x29')](function(_0x5de2d7){if(_0x5de2d7){_0x146cb7['body'][_0xfae7('0x54')]=_0x5de2d7['id'];return db[_0xfae7('0x30')][_0xfae7('0x4c')](_0x146cb7['body']);}})[_0xfae7('0x29')](respondWithResult(_0x3ff0cc,null))[_0xfae7('0x50')](handleError(_0x3ff0cc,null));};exports['getIntervals']=function(_0x33ffb1,_0x1da431,_0x438c67){var _0x4f9ac3={};var _0x831636={};var _0x587420;var _0x2d529b;return db[_0xfae7('0x30')][_0xfae7('0x55')]({'where':{'id':_0x33ffb1[_0xfae7('0x47')]['id']}})[_0xfae7('0x29')](handleEntityNotFound(_0x1da431,null))[_0xfae7('0x29')](function(_0x5759e0){if(_0x5759e0){_0x587420=_0x5759e0;_0x831636[_0xfae7('0x33')]=_[_0xfae7('0x49')](db[_0xfae7('0x30')]['rawAttributes']);_0x831636[_0xfae7('0x34')]=_[_0xfae7('0x49')](_0x33ffb1[_0xfae7('0x34')]);_0x831636[_0xfae7('0x3d')]=_[_0xfae7('0x36')](_0x831636[_0xfae7('0x33')],_0x831636['query']);_0x4f9ac3['attributes']=_[_0xfae7('0x36')](_0x831636['model'],qs[_0xfae7('0x37')](_0x33ffb1['query'][_0xfae7('0x37')]));_0x4f9ac3[_0xfae7('0x35')]=_0x4f9ac3[_0xfae7('0x35')][_0xfae7('0x38')]?_0x4f9ac3[_0xfae7('0x35')]:_0x831636['model'];_0x4f9ac3[_0xfae7('0x3b')]=qs['sort'](_0x33ffb1[_0xfae7('0x34')][_0xfae7('0x56')]);_0x4f9ac3[_0xfae7('0x3c')]=qs[_0xfae7('0x3d')](_['pick'](_0x33ffb1[_0xfae7('0x34')],_0x831636[_0xfae7('0x3d')]));if(_0x33ffb1[_0xfae7('0x34')][_0xfae7('0x3f')]){_0x4f9ac3[_0xfae7('0x3c')]=_[_0xfae7('0x41')](_0x4f9ac3['where'],{'$or':_[_0xfae7('0x2f')](_0x4f9ac3[_0xfae7('0x35')],function(_0x2f853b){var _0x514544={};_0x514544[_0x2f853b]={'$like':'%'+_0x33ffb1['query']['filter']+'%'};return _0x514544;})});}_0x4f9ac3=_[_0xfae7('0x41')]({},_0x4f9ac3,_0x33ffb1[_0xfae7('0x42')]);return _0x587420[_0xfae7('0x57')](_0x4f9ac3);}})[_0xfae7('0x29')](function(_0x11ff65){if(_0x11ff65){_0x2d529b=_0x11ff65[_0xfae7('0x38')];if(!_0x33ffb1[_0xfae7('0x34')][_0xfae7('0x39')]('nolimit')){_0x4f9ac3[_0xfae7('0x1e')]=qs[_0xfae7('0x1e')](_0x33ffb1[_0xfae7('0x34')][_0xfae7('0x1e')]);_0x4f9ac3[_0xfae7('0x1c')]=qs[_0xfae7('0x1c')](_0x33ffb1[_0xfae7('0x34')][_0xfae7('0x1c')]);}return _0x587420['getIntervals'](_0x4f9ac3);}})['then'](function(_0x392253){if(_0x392253){return _0x392253?{'count':_0x2d529b,'rows':_0x392253}:null;}})['then'](respondWithResult(_0x1da431,null))['catch'](handleError(_0x1da431,null));};exports[_0xfae7('0x58')]=function(_0x473ccb,_0x56ba05,_0x4ca913){return db[_0xfae7('0x30')][_0xfae7('0x55')]({'where':{'id':_0x473ccb[_0xfae7('0x47')]['id']}})[_0xfae7('0x29')](handleEntityNotFound(_0x56ba05,null))[_0xfae7('0x29')](function(_0xa54ad8){if(_0xa54ad8){return db['sequelize'][_0xfae7('0x59')](function(_0x43a61c){return db['Interval'][_0xfae7('0x25')]({'where':{'IntervalId':_0x473ccb['params']['id']},'transaction':_0x43a61c})['then'](function(_0x347497){var _0x44c8c1=_[_0xfae7('0x2f')](_0x473ccb[_0xfae7('0x52')],function(_0x123243){delete _0x123243['id'];_0x123243[_0xfae7('0x54')]=_0x473ccb[_0xfae7('0x47')]['id'];return _0x123243;});return db['Interval'][_0xfae7('0x5a')](_0x44c8c1,{'transaction':_0x43a61c});});})[_0xfae7('0x29')](function(){return db[_0xfae7('0x30')][_0xfae7('0x45')]({'where':{'IntervalId':_0x473ccb[_0xfae7('0x47')]['id']}});});}})['then'](respondWithResult(_0x56ba05,null))['catch'](handleError(_0x56ba05,null));};
\ No newline at end of file
+var _0x323e=['../../components/extensions/rewrite','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','get','Intervals','UserProfileResource','destroy','sendStatus','error','stack','name','send','map','Interval','type','key','model','keys','intersection','query','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','options','include','findAll','show','params','length','includeAll','create','body','UserProfileSection','userProfileId','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','addInterval','getIntervals','rawAttributes','addIntervals','findOne','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb'];(function(_0x25b217,_0x5bb647){var _0x11ac67=function(_0x2e5d6a){while(--_0x2e5d6a){_0x25b217['push'](_0x25b217['shift']());}};_0x11ac67(++_0x5bb647);}(_0x323e,0x14b));var _0xe323=function(_0x21df2b,_0x556721){_0x21df2b=_0x21df2b-0x0;var _0x4c03c2=_0x323e[_0x21df2b];return _0x4c03c2;};'use strict';var emlformat=require(_0xe323('0x0'));var rimraf=require(_0xe323('0x1'));var zipdir=require(_0xe323('0x2'));var jsonpatch=require(_0xe323('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe323('0x4'));var util=require(_0xe323('0x5'));var path=require(_0xe323('0x6'));var sox=require(_0xe323('0x7'));var csv=require(_0xe323('0x8'));var ejs=require(_0xe323('0x9'));var fs=require('fs');var fs_extra=require(_0xe323('0xa'));var _=require(_0xe323('0xb'));var squel=require('squel');var crypto=require(_0xe323('0xc'));var jsforce=require(_0xe323('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xe323('0x8'));var querystring=require(_0xe323('0xe'));var Papa=require(_0xe323('0xf'));var Redis=require('ioredis');var authService=require(_0xe323('0x10'));var qs=require(_0xe323('0x11'));var as=require(_0xe323('0x12'));var hardwareService=require(_0xe323('0x13'));var logger=require(_0xe323('0x14'))(_0xe323('0x15'));var utils=require(_0xe323('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xe323('0x17'));var db=require(_0xe323('0x18'))['db'];var extensions=require(_0xe323('0x19'));function respondWithStatusCode(_0x2e1ca7,_0xdfebb3){_0xdfebb3=_0xdfebb3||0xcc;return function(_0xa6b371){if(_0xa6b371){return _0x2e1ca7['sendStatus'](_0xdfebb3);}return _0x2e1ca7[_0xe323('0x1a')](_0xdfebb3)[_0xe323('0x1b')]();};}function respondWithResult(_0x133e02,_0x46a5f0){_0x46a5f0=_0x46a5f0||0xc8;return function(_0x2faecb){if(_0x2faecb){return _0x133e02[_0xe323('0x1a')](_0x46a5f0)[_0xe323('0x1c')](_0x2faecb);}};}function respondWithFilteredResult(_0x4555fd,_0x30886e){return function(_0x559868){if(_0x559868){var _0x499c52=typeof _0x30886e[_0xe323('0x1d')]===_0xe323('0x1e')&&typeof _0x30886e[_0xe323('0x1f')]===_0xe323('0x1e');var _0x2eb5ea=_0x559868['count'];var _0x4bd6aa=_0x499c52?0x0:_0x30886e[_0xe323('0x1d')];var _0x34c575=_0x499c52?_0x559868[_0xe323('0x20')]:_0x30886e['offset']+_0x30886e[_0xe323('0x1f')];var _0x1c3b7c;if(_0x34c575>=_0x2eb5ea){_0x34c575=_0x2eb5ea;_0x1c3b7c=0xc8;}else{_0x1c3b7c=0xce;}_0x4555fd[_0xe323('0x1a')](_0x1c3b7c);return _0x4555fd[_0xe323('0x21')](_0xe323('0x22'),_0x4bd6aa+'-'+_0x34c575+'/'+_0x2eb5ea)[_0xe323('0x1c')](_0x559868);}return null;};}function patchUpdates(_0x58618e){return function(_0x12d7bd){try{jsonpatch[_0xe323('0x23')](_0x12d7bd,_0x58618e,!![]);}catch(_0x33fa6e){return BPromise[_0xe323('0x24')](_0x33fa6e);}return _0x12d7bd['save']();};}function saveUpdates(_0x394acc,_0x56d819){return function(_0x318f13){if(_0x318f13){return _0x318f13[_0xe323('0x25')](_0x394acc)[_0xe323('0x26')](function(_0x53d543){return _0x53d543;});}return null;};}function removeEntity(_0x3aa745,_0x2553e4){return function(_0xebac7f){if(_0xebac7f){return _0xebac7f['destroy']()[_0xe323('0x26')](function(){var _0x3d3f62=_0xebac7f[_0xe323('0x27')]({'plain':!![]});var _0x5c4114=_0xe323('0x28');return db[_0xe323('0x29')][_0xe323('0x2a')]({'where':{'type':_0x5c4114,'resourceId':_0x3d3f62['id']}})[_0xe323('0x26')](function(){return _0xebac7f;});})[_0xe323('0x26')](function(){_0x3aa745['status'](0xcc)[_0xe323('0x1b')]();});}};}function handleEntityNotFound(_0x470633,_0x5d4c1a){return function(_0x94eddb){if(!_0x94eddb){_0x470633[_0xe323('0x2b')](0x194);}return _0x94eddb;};}function handleError(_0x1b9180,_0x81bf8f){_0x81bf8f=_0x81bf8f||0x1f4;return function(_0x45b224){logger[_0xe323('0x2c')](_0x45b224[_0xe323('0x2d')]);if(_0x45b224[_0xe323('0x2e')]){delete _0x45b224['name'];}_0x1b9180[_0xe323('0x1a')](_0x81bf8f)[_0xe323('0x2f')](_0x45b224);};}exports['index']=function(_0x338bd1,_0xf73731){var _0x59e8e1={},_0x5e2f8f={},_0x444680={'count':0x0,'rows':[]};var _0x5ed14d=_[_0xe323('0x30')](db[_0xe323('0x31')]['rawAttributes'],function(_0x1191be){return{'name':_0x1191be['fieldName'],'type':_0x1191be[_0xe323('0x32')][_0xe323('0x33')]};});_0x5e2f8f[_0xe323('0x34')]=_[_0xe323('0x30')](_0x5ed14d,_0xe323('0x2e'));_0x5e2f8f['query']=_[_0xe323('0x35')](_0x338bd1['query']);_0x5e2f8f['filters']=_[_0xe323('0x36')](_0x5e2f8f[_0xe323('0x34')],_0x5e2f8f[_0xe323('0x37')]);_0x59e8e1[_0xe323('0x38')]=_[_0xe323('0x36')](_0x5e2f8f['model'],qs[_0xe323('0x39')](_0x338bd1['query'][_0xe323('0x39')]));_0x59e8e1['attributes']=_0x59e8e1['attributes']['length']?_0x59e8e1[_0xe323('0x38')]:_0x5e2f8f[_0xe323('0x34')];if(!_0x338bd1[_0xe323('0x37')][_0xe323('0x3a')](_0xe323('0x3b'))){_0x59e8e1[_0xe323('0x1f')]=qs['limit'](_0x338bd1[_0xe323('0x37')][_0xe323('0x1f')]);_0x59e8e1[_0xe323('0x1d')]=qs[_0xe323('0x1d')](_0x338bd1['query'][_0xe323('0x1d')]);}_0x59e8e1[_0xe323('0x3c')]=qs[_0xe323('0x3d')](_0x338bd1[_0xe323('0x37')][_0xe323('0x3d')]);_0x59e8e1['where']=qs[_0xe323('0x3e')](_[_0xe323('0x3f')](_0x338bd1[_0xe323('0x37')],_0x5e2f8f[_0xe323('0x3e')]),_0x5ed14d);if(_0x338bd1[_0xe323('0x37')][_0xe323('0x40')]){_0x59e8e1[_0xe323('0x41')]=_[_0xe323('0x42')](_0x59e8e1['where'],{'$or':_[_0xe323('0x30')](_0x5ed14d,function(_0x26458f){if(_0x26458f[_0xe323('0x32')]!=='VIRTUAL'){var _0x3c8010={};_0x3c8010[_0x26458f[_0xe323('0x2e')]]={'$like':'%'+_0x338bd1['query'][_0xe323('0x40')]+'%'};return _0x3c8010;}})});}_0x59e8e1=_[_0xe323('0x42')]({},_0x59e8e1,_0x338bd1[_0xe323('0x43')]);var _0x266415={'where':_0x59e8e1['where']};return db[_0xe323('0x31')][_0xe323('0x20')](_0x266415)[_0xe323('0x26')](function(_0x4901d4){_0x444680[_0xe323('0x20')]=_0x4901d4;if(_0x338bd1[_0xe323('0x37')]['includeAll']){_0x59e8e1[_0xe323('0x44')]=[{'all':!![]}];}return db['Interval'][_0xe323('0x45')](_0x59e8e1);})[_0xe323('0x26')](function(_0x5674ea){_0x444680['rows']=_0x5674ea;return _0x444680;})[_0xe323('0x26')](respondWithFilteredResult(_0xf73731,_0x59e8e1))['catch'](handleError(_0xf73731,null));};exports[_0xe323('0x46')]=function(_0x4f45c2,_0x3e07ef){var _0x30e0d2={'raw':!![],'where':{'id':_0x4f45c2[_0xe323('0x47')]['id']}},_0x4cff57={};_0x4cff57['model']=_['keys'](db[_0xe323('0x31')]['rawAttributes']);_0x4cff57[_0xe323('0x37')]=_['keys'](_0x4f45c2[_0xe323('0x37')]);_0x4cff57[_0xe323('0x3e')]=_[_0xe323('0x36')](_0x4cff57[_0xe323('0x34')],_0x4cff57[_0xe323('0x37')]);_0x30e0d2[_0xe323('0x38')]=_['intersection'](_0x4cff57[_0xe323('0x34')],qs[_0xe323('0x39')](_0x4f45c2[_0xe323('0x37')][_0xe323('0x39')]));_0x30e0d2[_0xe323('0x38')]=_0x30e0d2[_0xe323('0x38')][_0xe323('0x48')]?_0x30e0d2[_0xe323('0x38')]:_0x4cff57[_0xe323('0x34')];if(_0x4f45c2[_0xe323('0x37')][_0xe323('0x49')]){_0x30e0d2[_0xe323('0x44')]=[{'all':!![]}];}_0x30e0d2=_['merge']({},_0x30e0d2,_0x4f45c2[_0xe323('0x43')]);return db[_0xe323('0x31')]['find'](_0x30e0d2)['then'](handleEntityNotFound(_0x3e07ef,null))[_0xe323('0x26')](respondWithResult(_0x3e07ef,null))['catch'](handleError(_0x3e07ef,null));};exports[_0xe323('0x4a')]=function(_0xa06d06,_0x2e34e3){return db[_0xe323('0x31')][_0xe323('0x4a')](_0xa06d06[_0xe323('0x4b')],{})[_0xe323('0x26')](function(_0x440d1b){var _0x4dc2b1=_0xa06d06['user'][_0xe323('0x27')]({'plain':!![]});if(!_0x4dc2b1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4dc2b1['role']==='user'){var _0xa65c07=_0x440d1b[_0xe323('0x27')]({'plain':!![]});var _0x2b853a=_0xe323('0x28');return db[_0xe323('0x4c')]['find']({'where':{'name':_0x2b853a,'userProfileId':_0x4dc2b1[_0xe323('0x4d')]},'raw':!![]})[_0xe323('0x26')](function(_0xa3362a){if(_0xa3362a&&_0xa3362a['autoAssociation']===0x0){return db['UserProfileResource'][_0xe323('0x4a')]({'name':_0xa65c07[_0xe323('0x2e')],'resourceId':_0xa65c07['id'],'type':_0xa3362a[_0xe323('0x2e')],'sectionId':_0xa3362a['id']},{})['then'](function(){return _0x440d1b;});}else{return _0x440d1b;}})[_0xe323('0x4e')](function(_0x180a11){logger[_0xe323('0x2c')](_0xe323('0x4f'),_0x180a11);throw _0x180a11;});}return _0x440d1b;})[_0xe323('0x26')](respondWithResult(_0x2e34e3,0xc9))['catch'](handleError(_0x2e34e3,null));};exports[_0xe323('0x25')]=function(_0x45c402,_0x4a61d8){if(_0x45c402[_0xe323('0x4b')]['id']){delete _0x45c402[_0xe323('0x4b')]['id'];}return db[_0xe323('0x31')][_0xe323('0x50')]({'where':{'id':_0x45c402[_0xe323('0x47')]['id']}})[_0xe323('0x26')](handleEntityNotFound(_0x4a61d8,null))['then'](saveUpdates(_0x45c402['body'],null))[_0xe323('0x26')](respondWithResult(_0x4a61d8,null))[_0xe323('0x4e')](handleError(_0x4a61d8,null));};exports[_0xe323('0x2a')]=function(_0x2ad290,_0x1fa348){return db[_0xe323('0x31')]['find']({'where':{'id':_0x2ad290[_0xe323('0x47')]['id']}})['then'](handleEntityNotFound(_0x1fa348,null))['then'](removeEntity(_0x1fa348,null))[_0xe323('0x4e')](handleError(_0x1fa348,null));};exports[_0xe323('0x51')]=function(_0x177bf3,_0x47f91d,_0x45b8ee){if(_0x177bf3[_0xe323('0x4b')]['id']){delete _0x177bf3[_0xe323('0x4b')]['id'];}return db['Interval'][_0xe323('0x50')]({'where':{'id':_0x177bf3[_0xe323('0x47')]['id']}})[_0xe323('0x26')](handleEntityNotFound(_0x47f91d,null))[_0xe323('0x26')](function(_0x5e4bf5){if(_0x5e4bf5){_0x177bf3['body']['IntervalId']=_0x5e4bf5['id'];return db[_0xe323('0x31')][_0xe323('0x4a')](_0x177bf3[_0xe323('0x4b')]);}})[_0xe323('0x26')](respondWithResult(_0x47f91d,null))['catch'](handleError(_0x47f91d,null));};exports[_0xe323('0x52')]=function(_0x5c2b15,_0x34edd6,_0x5aa47f){var _0x2be651={};var _0x2170e7={};var _0x45b280;var _0x57df61;return db[_0xe323('0x31')]['findOne']({'where':{'id':_0x5c2b15[_0xe323('0x47')]['id']}})[_0xe323('0x26')](handleEntityNotFound(_0x34edd6,null))[_0xe323('0x26')](function(_0x20fb0f){if(_0x20fb0f){_0x45b280=_0x20fb0f;_0x2170e7[_0xe323('0x34')]=_[_0xe323('0x35')](db[_0xe323('0x31')][_0xe323('0x53')]);_0x2170e7[_0xe323('0x37')]=_[_0xe323('0x35')](_0x5c2b15[_0xe323('0x37')]);_0x2170e7[_0xe323('0x3e')]=_[_0xe323('0x36')](_0x2170e7[_0xe323('0x34')],_0x2170e7[_0xe323('0x37')]);_0x2be651[_0xe323('0x38')]=_[_0xe323('0x36')](_0x2170e7['model'],qs[_0xe323('0x39')](_0x5c2b15['query'][_0xe323('0x39')]));_0x2be651['attributes']=_0x2be651[_0xe323('0x38')][_0xe323('0x48')]?_0x2be651[_0xe323('0x38')]:_0x2170e7['model'];_0x2be651[_0xe323('0x3c')]=qs[_0xe323('0x3d')](_0x5c2b15['query'][_0xe323('0x3d')]);_0x2be651[_0xe323('0x41')]=qs['filters'](_[_0xe323('0x3f')](_0x5c2b15[_0xe323('0x37')],_0x2170e7[_0xe323('0x3e')]));if(_0x5c2b15[_0xe323('0x37')][_0xe323('0x40')]){_0x2be651[_0xe323('0x41')]=_['merge'](_0x2be651['where'],{'$or':_[_0xe323('0x30')](_0x2be651['attributes'],function(_0x1df879){var _0x465ef5={};_0x465ef5[_0x1df879]={'$like':'%'+_0x5c2b15[_0xe323('0x37')][_0xe323('0x40')]+'%'};return _0x465ef5;})});}_0x2be651=_[_0xe323('0x42')]({},_0x2be651,_0x5c2b15[_0xe323('0x43')]);return _0x45b280[_0xe323('0x52')](_0x2be651);}})[_0xe323('0x26')](function(_0x1b86c0){if(_0x1b86c0){_0x57df61=_0x1b86c0[_0xe323('0x48')];if(!_0x5c2b15[_0xe323('0x37')][_0xe323('0x3a')]('nolimit')){_0x2be651['limit']=qs[_0xe323('0x1f')](_0x5c2b15[_0xe323('0x37')][_0xe323('0x1f')]);_0x2be651[_0xe323('0x1d')]=qs[_0xe323('0x1d')](_0x5c2b15[_0xe323('0x37')][_0xe323('0x1d')]);}return _0x45b280[_0xe323('0x52')](_0x2be651);}})['then'](function(_0x55b492){if(_0x55b492){return _0x55b492?{'count':_0x57df61,'rows':_0x55b492}:null;}})[_0xe323('0x26')](respondWithResult(_0x34edd6,null))[_0xe323('0x4e')](handleError(_0x34edd6,null));};exports[_0xe323('0x54')]=function(_0x53d369,_0x5d4300,_0x53520c){return db['Interval'][_0xe323('0x55')]({'where':{'id':_0x53d369['params']['id']}})[_0xe323('0x26')](handleEntityNotFound(_0x5d4300,null))[_0xe323('0x26')](function(_0x255e6d){if(_0x255e6d){return db[_0xe323('0x56')][_0xe323('0x57')](function(_0x10cfba){return db[_0xe323('0x31')][_0xe323('0x2a')]({'where':{'IntervalId':_0x53d369['params']['id']},'transaction':_0x10cfba})[_0xe323('0x26')](function(_0x1beb0b){var _0x1bae1c=_['map'](_0x53d369[_0xe323('0x4b')],function(_0x549320){delete _0x549320['id'];_0x549320['IntervalId']=_0x53d369[_0xe323('0x47')]['id'];return _0x549320;});return db['Interval'][_0xe323('0x58')](_0x1bae1c,{'transaction':_0x10cfba});});})[_0xe323('0x26')](function(){return db[_0xe323('0x31')][_0xe323('0x45')]({'where':{'IntervalId':_0x53d369[_0xe323('0x47')]['id']}});});}})[_0xe323('0x26')](respondWithResult(_0x5d4300,null))[_0xe323('0x4e')](handleError(_0x5d4300,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdec1=['rewrite','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','./interval.attributes','../../components/extensions/rewrite','tools_intervals'];(function(_0x1a6f53,_0x5d84a5){var _0x445ce1=function(_0x32cff7){while(--_0x32cff7){_0x1a6f53['push'](_0x1a6f53['shift']());}};_0x445ce1(++_0x5d84a5);}(_0xdec1,0x11f));var _0x1dec=function(_0x214441,_0x553bcf){_0x214441=_0x214441-0x0;var _0x6b10e7=_0xdec1[_0x214441];return _0x6b10e7;};'use strict';var _=require(_0x1dec('0x0'));var util=require('util');var logger=require(_0x1dec('0x1'))(_0x1dec('0x2'));var moment=require(_0x1dec('0x3'));var BPromise=require(_0x1dec('0x4'));var rp=require(_0x1dec('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1dec('0x6'));var config=require('../../config/environment');var attributes=require(_0x1dec('0x7'));var extensions=require(_0x1dec('0x8'));module['exports']=function(_0x14cb62,_0x41a1f5){return _0x14cb62['define']('Interval',attributes,{'tableName':_0x1dec('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x44290c,_0x4b9384){extensions[_0x1dec('0xa')](_0x14cb62,_0x44290c);},'afterBulkCreate':function(_0x30dca1,_0x5adf30,_0x42bb80){_0x42bb80();extensions['rewrite'](_0x14cb62,_0x30dca1[0x0]);},'afterUpdate':function(_0x16985a,_0x119425){extensions[_0x1dec('0xa')](_0x14cb62,_0x16985a);},'afterDestroy':function(_0x399b3e,_0x102491){extensions[_0x1dec('0xa')](_0x14cb62,_0x399b3e);}}});};
\ No newline at end of file
+var _0xe254=['util','../../config/logger','api','bluebird','path','rimraf','./interval.attributes','../../components/extensions/rewrite','exports','define','tools_intervals','rewrite','lodash'];(function(_0x55107e,_0x210c83){var _0x118ef9=function(_0x3f5282){while(--_0x3f5282){_0x55107e['push'](_0x55107e['shift']());}};_0x118ef9(++_0x210c83);}(_0xe254,0xa8));var _0x4e25=function(_0x302e6c,_0x33fcc1){_0x302e6c=_0x302e6c-0x0;var _0x3650a0=_0xe254[_0x302e6c];return _0x3650a0;};'use strict';var _=require(_0x4e25('0x0'));var util=require(_0x4e25('0x1'));var logger=require(_0x4e25('0x2'))(_0x4e25('0x3'));var moment=require('moment');var BPromise=require(_0x4e25('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4e25('0x5'));var rimraf=require(_0x4e25('0x6'));var config=require('../../config/environment');var attributes=require(_0x4e25('0x7'));var extensions=require(_0x4e25('0x8'));module[_0x4e25('0x9')]=function(_0x34634a,_0x592195){return _0x34634a[_0x4e25('0xa')]('Interval',attributes,{'tableName':_0x4e25('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x33d554,_0x958701){extensions[_0x4e25('0xc')](_0x34634a,_0x33d554);},'afterBulkCreate':function(_0x30c158,_0x44be34,_0x236ad7){_0x236ad7();extensions['rewrite'](_0x34634a,_0x30c158[0x0]);},'afterUpdate':function(_0x1e9280,_0x3e8005){extensions['rewrite'](_0x34634a,_0x1e9280);},'afterDestroy':function(_0x5613d2,_0x1de445){extensions['rewrite'](_0x34634a,_0x5613d2);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x585d09,_0x1274bc){var _0x7d9a14=function(_0x343d4e){while(--_0x343d4e){_0x585d09['push'](_0x585d09['shift']());}};_0x7d9a14(++_0x1274bc);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0xa9e0[_0x5b561d];return _0x431060;};'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);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
+var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x47df54,_0x1aeb61){var _0x261b87=function(_0x54bc77){while(--_0x54bc77){_0x47df54['push'](_0x47df54['shift']());}};_0x261b87(++_0x1aeb61);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3054be,_0x1bdc8b){_0x3054be=_0x3054be-0x0;var _0x3df150=_0xa9e0[_0x3054be];return _0x3df150;};'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);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['isAuthenticated','send','exports','express','Router','../../components/auth/service','./jira.controller','post'];(function(_0x34b948,_0x39c51a){var _0x4fe19d=function(_0x57ec44){while(--_0x57ec44){_0x34b948['push'](_0x34b948['shift']());}};_0x4fe19d(++_0x39c51a);}(_0x5f2f,0x73));var _0xf5f2=function(_0x4cf021,_0x25550e){_0x4cf021=_0x4cf021-0x0;var _0x23f9a5=_0x5f2f[_0x4cf021];return _0x23f9a5;};'use strict';var express=require(_0xf5f2('0x0'));var router=express[_0xf5f2('0x1')]();var auth=require(_0xf5f2('0x2'));var controller=require(_0xf5f2('0x3'));router[_0xf5f2('0x4')]('/',auth[_0xf5f2('0x5')](),controller[_0xf5f2('0x6')]);module[_0xf5f2('0x7')]=router;
\ No newline at end of file
+var _0x5f66=['send','exports','Router','./jira.controller','post','isAuthenticated'];(function(_0x55821d,_0x27a22e){var _0x58ea8a=function(_0x5bdd3d){while(--_0x5bdd3d){_0x55821d['push'](_0x55821d['shift']());}};_0x58ea8a(++_0x27a22e);}(_0x5f66,0x1a0));var _0x65f6=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x5f66[_0x502c7d];return _0x30b7ed;};'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
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4db9=['x-forwarded-for','connection','remoteAddress','socket','bluebird','https','../../config/logger','api','support','key','MOTGUI','summary','\x20from\x20','description','stringify','issuetype','customfield_11500','email','fields','oldToken','customfield_11503','name','customfield_11504','track.xcallymotion.com','/rest/api/2/issue','POST','Basic\x20','base64','setEncoding','utf8','data','status','statusCode','json','parse','error','api.jira','openIssue','send','body','headers'];(function(_0x526417,_0x6b99f0){var _0x20c50e=function(_0x328379){while(--_0x328379){_0x526417['push'](_0x526417['shift']());}};_0x20c50e(++_0x6b99f0);}(_0x4db9,0x1f0));var _0x94db=function(_0x3f55de,_0x3ae98f){_0x3f55de=_0x3f55de-0x0;var _0x2698de=_0x4db9[_0x3f55de];return _0x2698de;};'use strict';var BPromise=require(_0x94db('0x0'));var https=require(_0x94db('0x1'));var logger=require(_0x94db('0x2'))(_0x94db('0x3'));var USERNAME=_0x94db('0x4');var PASSWORD='3eAmWpBVP0';function openIssue(_0x369a13,_0x567acc){var _0x13dd34={'fields':{'project':{'key':_0x369a13[_0x94db('0x5')]||_0x94db('0x6')},'summary':(_0x369a13[_0x94db('0x7')]||'Report')+_0x94db('0x8')+_0x369a13['ip'],'description':_0x369a13[_0x94db('0x9')]||JSON[_0x94db('0xa')](_0x369a13),'issuetype':{'name':_0x369a13[_0x94db('0xb')]||'Bug'}}};_0x13dd34['fields'][_0x94db('0xc')]=_0x369a13[_0x94db('0xd')];_0x13dd34[_0x94db('0xe')]['customfield_11501']=_0x369a13[_0x94db('0xf')];_0x13dd34[_0x94db('0xe')]['customfield_11502']=_0x369a13['newToken'];_0x13dd34['fields'][_0x94db('0x10')]=_0x369a13[_0x94db('0x11')];_0x13dd34[_0x94db('0xe')][_0x94db('0x12')]=_0x369a13['reason'];_0x13dd34[_0x94db('0xe')]['customfield_10102']=_0x369a13['ip'];var _0x577632={'host':_0x94db('0x13'),'port':0x1bb,'path':_0x94db('0x14'),'method':_0x94db('0x15'),'timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':_0x94db('0x16')+new Buffer(USERNAME+':'+PASSWORD)['toString'](_0x94db('0x17'))}};var _0x481bd0=JSON['stringify'](_0x13dd34);var _0x19d1e9=https['request'](_0x577632,function(_0x4c0fa3){_0x4c0fa3[_0x94db('0x18')](_0x94db('0x19'));var _0x3008fe='';_0x4c0fa3['on'](_0x94db('0x1a'),function(_0x22ef0f){_0x3008fe+=_0x22ef0f;});_0x4c0fa3['on']('end',function(){if(_0x567acc){return _0x567acc[_0x94db('0x1b')](_0x4c0fa3[_0x94db('0x1c')])[_0x94db('0x1d')](JSON[_0x94db('0x1e')](_0x3008fe));}});});_0x19d1e9['on'](_0x94db('0x1f'),function(_0x51f585){if(_0x567acc){return _0x567acc[_0x94db('0x1b')](0x1f4)[_0x94db('0x1d')]({'errors':[{'message':'Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','type':_0x94db('0x20')}]});}});_0x19d1e9['write'](_0x481bd0);_0x19d1e9['end']();}exports[_0x94db('0x21')]=openIssue;exports[_0x94db('0x22')]=function(_0x84a740,_0xf672c0){_0x84a740[_0x94db('0x23')]['ip']=_0x84a740[_0x94db('0x24')][_0x94db('0x25')]||_0x84a740[_0x94db('0x26')][_0x94db('0x27')]||_0x84a740[_0x94db('0x28')]['remoteAddress']||_0x84a740[_0x94db('0x26')][_0x94db('0x28')][_0x94db('0x27')];return openIssue(_0x84a740[_0x94db('0x23')],_0xf672c0);};
\ No newline at end of file
+var _0x48b8=['oldToken','customfield_11502','newToken','name','reason','track.xcallymotion.com','/rest/api/2/issue','POST','application/json','Basic\x20','toString','base64','request','setEncoding','utf8','data','end','statusCode','json','parse','status','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','write','send','body','headers','x-forwarded-for','connection','remoteAddress','socket','bluebird','https','../../config/logger','api','support','3eAmWpBVP0','key','MOTGUI','Report','\x20from\x20','description','stringify','issuetype','Bug','fields','customfield_11500','email','customfield_11501'];(function(_0x4f96e2,_0x27f60e){var _0x19d6d3=function(_0x21b51e){while(--_0x21b51e){_0x4f96e2['push'](_0x4f96e2['shift']());}};_0x19d6d3(++_0x27f60e);}(_0x48b8,0x19e));var _0x848b=function(_0x139dfc,_0x46e4c0){_0x139dfc=_0x139dfc-0x0;var _0x13599a=_0x48b8[_0x139dfc];return _0x13599a;};'use strict';var BPromise=require(_0x848b('0x0'));var https=require(_0x848b('0x1'));var logger=require(_0x848b('0x2'))(_0x848b('0x3'));var USERNAME=_0x848b('0x4');var PASSWORD=_0x848b('0x5');function openIssue(_0xa25943,_0x5b381b){var _0x4a23b4={'fields':{'project':{'key':_0xa25943[_0x848b('0x6')]||_0x848b('0x7')},'summary':(_0xa25943['summary']||_0x848b('0x8'))+_0x848b('0x9')+_0xa25943['ip'],'description':_0xa25943[_0x848b('0xa')]||JSON[_0x848b('0xb')](_0xa25943),'issuetype':{'name':_0xa25943[_0x848b('0xc')]||_0x848b('0xd')}}};_0x4a23b4[_0x848b('0xe')][_0x848b('0xf')]=_0xa25943[_0x848b('0x10')];_0x4a23b4[_0x848b('0xe')][_0x848b('0x11')]=_0xa25943[_0x848b('0x12')];_0x4a23b4[_0x848b('0xe')][_0x848b('0x13')]=_0xa25943[_0x848b('0x14')];_0x4a23b4[_0x848b('0xe')]['customfield_11503']=_0xa25943[_0x848b('0x15')];_0x4a23b4[_0x848b('0xe')]['customfield_11504']=_0xa25943[_0x848b('0x16')];_0x4a23b4[_0x848b('0xe')]['customfield_10102']=_0xa25943['ip'];var _0x2d3e07={'host':_0x848b('0x17'),'port':0x1bb,'path':_0x848b('0x18'),'method':_0x848b('0x19'),'timeout':0x4e20,'headers':{'Content-Type':_0x848b('0x1a'),'Authorization':_0x848b('0x1b')+new Buffer(USERNAME+':'+PASSWORD)[_0x848b('0x1c')](_0x848b('0x1d'))}};var _0x192175=JSON[_0x848b('0xb')](_0x4a23b4);var _0x4eaddc=https[_0x848b('0x1e')](_0x2d3e07,function(_0x51ddcd){_0x51ddcd[_0x848b('0x1f')](_0x848b('0x20'));var _0x3984f8='';_0x51ddcd['on'](_0x848b('0x21'),function(_0x535715){_0x3984f8+=_0x535715;});_0x51ddcd['on'](_0x848b('0x22'),function(){if(_0x5b381b){return _0x5b381b['status'](_0x51ddcd[_0x848b('0x23')])[_0x848b('0x24')](JSON[_0x848b('0x25')](_0x3984f8));}});});_0x4eaddc['on']('error',function(_0x516da3){if(_0x5b381b){return _0x5b381b[_0x848b('0x26')](0x1f4)[_0x848b('0x24')]({'errors':[{'message':_0x848b('0x27'),'type':'api.jira'}]});}});_0x4eaddc[_0x848b('0x28')](_0x192175);_0x4eaddc[_0x848b('0x22')]();}exports['openIssue']=openIssue;exports[_0x848b('0x29')]=function(_0x4c1424,_0x2cdb41){_0x4c1424[_0x848b('0x2a')]['ip']=_0x4c1424[_0x848b('0x2b')][_0x848b('0x2c')]||_0x4c1424[_0x848b('0x2d')][_0x848b('0x2e')]||_0x4c1424[_0x848b('0x2f')][_0x848b('0x2e')]||_0x4c1424['connection'][_0x848b('0x2f')]['remoteAddress'];return openIssue(_0x4c1424[_0x848b('0x2a')],_0x2cdb41);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cd=['delete','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','show','post','create','put','/:id','update'];(function(_0x3232a9,_0x1395d7){var _0x227e9d=function(_0x5e6124){while(--_0x5e6124){_0x3232a9['push'](_0x3232a9['shift']());}};_0x227e9d(++_0x1395d7);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x531e48,_0x4bb96b){_0x531e48=_0x531e48-0x0;var _0x202971=_0xf3cd[_0x531e48];return _0x202971;};'use strict';var multer=require(_0xdf3c('0x0'));var util=require(_0xdf3c('0x1'));var path=require(_0xdf3c('0x2'));var timeout=require(_0xdf3c('0x3'));var express=require(_0xdf3c('0x4'));var router=express[_0xdf3c('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xdf3c('0x6'));var interaction=require(_0xdf3c('0x7'));var config=require(_0xdf3c('0x8'));var controller=require('./jscriptyAnswerReport.controller');router[_0xdf3c('0x9')]('/',auth[_0xdf3c('0xa')](),controller[_0xdf3c('0xb')]);router[_0xdf3c('0x9')](_0xdf3c('0xc'),auth[_0xdf3c('0xa')](),controller['describe']);router[_0xdf3c('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xdf3c('0xd')]);router[_0xdf3c('0xe')]('/',auth['isAuthenticated'](),controller[_0xdf3c('0xf')]);router[_0xdf3c('0x10')](_0xdf3c('0x11'),auth[_0xdf3c('0xa')](),controller[_0xdf3c('0x12')]);router[_0xdf3c('0x13')](_0xdf3c('0x11'),auth[_0xdf3c('0xa')](),controller['destroy']);module[_0xdf3c('0x14')]=router;
\ No newline at end of file
+var _0x3c81=['index','/describe','describe','/:id','show','post','create','put','update','delete','destroy','multer','util','connect-timeout','express','../../config/environment','./jscriptyAnswerReport.controller','get','isAuthenticated'];(function(_0x2ca515,_0x2f0654){var _0x2f7701=function(_0x20b48b){while(--_0x20b48b){_0x2ca515['push'](_0x2ca515['shift']());}};_0x2f7701(++_0x2f0654);}(_0x3c81,0x102));var _0x13c8=function(_0x3ccb78,_0x3e886c){_0x3ccb78=_0x3ccb78-0x0;var _0x5be230=_0x3c81[_0x3ccb78];return _0x5be230;};'use strict';var multer=require(_0x13c8('0x0'));var util=require(_0x13c8('0x1'));var path=require('path');var timeout=require(_0x13c8('0x2'));var express=require(_0x13c8('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x13c8('0x4'));var controller=require(_0x13c8('0x5'));router[_0x13c8('0x6')]('/',auth[_0x13c8('0x7')](),controller[_0x13c8('0x8')]);router[_0x13c8('0x6')](_0x13c8('0x9'),auth['isAuthenticated'](),controller[_0x13c8('0xa')]);router['get'](_0x13c8('0xb'),auth[_0x13c8('0x7')](),controller[_0x13c8('0xc')]);router[_0x13c8('0xd')]('/',auth[_0x13c8('0x7')](),controller[_0x13c8('0xe')]);router[_0x13c8('0xf')](_0x13c8('0xb'),auth[_0x13c8('0x7')](),controller[_0x13c8('0x10')]);router[_0x13c8('0x11')](_0x13c8('0xb'),auth[_0x13c8('0x7')](),controller[_0x13c8('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x4f9b18,_0x2cb5ca){var _0x29f20c=function(_0x268b3d){while(--_0x268b3d){_0x4f9b18['push'](_0x4f9b18['shift']());}};_0x29f20c(++_0x2cb5ca);}(_0x7a54,0x106));var _0x47a5=function(_0x1d094c,_0x1f36b1){_0x1d094c=_0x1d094c-0x0;var _0x2593f6=_0x7a54[_0x1d094c];return _0x2593f6;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x1caf6a,_0x26a5bf){var _0x1bf493=function(_0x3982f5){while(--_0x3982f5){_0x1caf6a['push'](_0x1caf6a['shift']());}};_0x1bf493(++_0x26a5bf);}(_0x7a54,0x106));var _0x47a5=function(_0x12db02,_0x87f27d){_0x12db02=_0x12db02-0x0;var _0x4339f4=_0x7a54[_0x12db02];return _0x4339f4;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9e7=['to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','json','undefined','limit','count','offset','apply','reject','save','update','then','destroy','end','stack','name','index','map','JscriptyAnswerReport','rawAttributes','type','model','keys','query','attributes','intersection','fields','length','nolimit','order','sort','pick','filters','where','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','desk.js'];(function(_0x54701c,_0x58c957){var _0x5c7e38=function(_0x90e71e){while(--_0x90e71e){_0x54701c['push'](_0x54701c['shift']());}};_0x5c7e38(++_0x58c957);}(_0xe9e7,0x1f0));var _0x7e9e=function(_0x1350ce,_0xf7e2d0){_0x1350ce=_0x1350ce-0x0;var _0xbde7b3=_0xe9e7[_0x1350ce];return _0xbde7b3;};'use strict';var emlformat=require(_0x7e9e('0x0'));var rimraf=require(_0x7e9e('0x1'));var zipdir=require(_0x7e9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7e9e('0x3'));var moment=require(_0x7e9e('0x4'));var BPromise=require(_0x7e9e('0x5'));var Mustache=require(_0x7e9e('0x6'));var util=require(_0x7e9e('0x7'));var path=require(_0x7e9e('0x8'));var sox=require(_0x7e9e('0x9'));var csv=require('to-csv');var ejs=require(_0x7e9e('0xa'));var fs=require('fs');var fs_extra=require(_0x7e9e('0xb'));var _=require(_0x7e9e('0xc'));var squel=require('squel');var crypto=require(_0x7e9e('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x7e9e('0xe'));var toCsv=require(_0x7e9e('0xf'));var querystring=require(_0x7e9e('0x10'));var Papa=require(_0x7e9e('0x11'));var Redis=require(_0x7e9e('0x12'));var authService=require(_0x7e9e('0x13'));var qs=require(_0x7e9e('0x14'));var as=require(_0x7e9e('0x15'));var hardwareService=require(_0x7e9e('0x16'));var logger=require(_0x7e9e('0x17'))(_0x7e9e('0x18'));var utils=require(_0x7e9e('0x19'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xa5db58,_0x356d5c){_0x356d5c=_0x356d5c||0xcc;return function(_0x245c50){if(_0x245c50){return _0xa5db58[_0x7e9e('0x1a')](_0x356d5c);}return _0xa5db58['status'](_0x356d5c)['end']();};}function respondWithResult(_0x2d8de4,_0x46f30d){_0x46f30d=_0x46f30d||0xc8;return function(_0x1b59d1){if(_0x1b59d1){return _0x2d8de4[_0x7e9e('0x1b')](_0x46f30d)[_0x7e9e('0x1c')](_0x1b59d1);}};}function respondWithFilteredResult(_0x89bb24,_0x2cf803){return function(_0x5bf42b){if(_0x5bf42b){var _0x428312=typeof _0x2cf803['offset']===_0x7e9e('0x1d')&&typeof _0x2cf803[_0x7e9e('0x1e')]===_0x7e9e('0x1d');var _0x1d973c=_0x5bf42b[_0x7e9e('0x1f')];var _0x11f414=_0x428312?0x0:_0x2cf803[_0x7e9e('0x20')];var _0x5a2a77=_0x428312?_0x5bf42b[_0x7e9e('0x1f')]:_0x2cf803[_0x7e9e('0x20')]+_0x2cf803['limit'];var _0x52358b;if(_0x5a2a77>=_0x1d973c){_0x5a2a77=_0x1d973c;_0x52358b=0xc8;}else{_0x52358b=0xce;}_0x89bb24[_0x7e9e('0x1b')](_0x52358b);return _0x89bb24['set']('Content-Range',_0x11f414+'-'+_0x5a2a77+'/'+_0x1d973c)[_0x7e9e('0x1c')](_0x5bf42b);}return null;};}function patchUpdates(_0x5f554d){return function(_0x35914e){try{jsonpatch[_0x7e9e('0x21')](_0x35914e,_0x5f554d,!![]);}catch(_0x2654d3){return BPromise[_0x7e9e('0x22')](_0x2654d3);}return _0x35914e[_0x7e9e('0x23')]();};}function saveUpdates(_0x206062,_0x18c975){return function(_0x5206df){if(_0x5206df){return _0x5206df[_0x7e9e('0x24')](_0x206062)[_0x7e9e('0x25')](function(_0x1dc4c9){return _0x1dc4c9;});}return null;};}function removeEntity(_0x46bc6c,_0x523e5f){return function(_0x15bb40){if(_0x15bb40){return _0x15bb40[_0x7e9e('0x26')]()[_0x7e9e('0x25')](function(){_0x46bc6c[_0x7e9e('0x1b')](0xcc)[_0x7e9e('0x27')]();});}};}function handleEntityNotFound(_0xeaa799,_0x3df586){return function(_0x54f7b5){if(!_0x54f7b5){_0xeaa799[_0x7e9e('0x1a')](0x194);}return _0x54f7b5;};}function handleError(_0x1e1b1d,_0x1eff4d){_0x1eff4d=_0x1eff4d||0x1f4;return function(_0x3ca0b5){logger['error'](_0x3ca0b5[_0x7e9e('0x28')]);if(_0x3ca0b5[_0x7e9e('0x29')]){delete _0x3ca0b5[_0x7e9e('0x29')];}_0x1e1b1d[_0x7e9e('0x1b')](_0x1eff4d)['send'](_0x3ca0b5);};}exports[_0x7e9e('0x2a')]=function(_0x5da39e,_0xe5b8ef){var _0x266b4a={},_0x1726e9={},_0x203415={'count':0x0,'rows':[]};var _0x12de96=_[_0x7e9e('0x2b')](db[_0x7e9e('0x2c')][_0x7e9e('0x2d')],function(_0x52634e){return{'name':_0x52634e['fieldName'],'type':_0x52634e[_0x7e9e('0x2e')]['key']};});_0x1726e9[_0x7e9e('0x2f')]=_[_0x7e9e('0x2b')](_0x12de96,'name');_0x1726e9['query']=_[_0x7e9e('0x30')](_0x5da39e[_0x7e9e('0x31')]);_0x1726e9['filters']=_['intersection'](_0x1726e9[_0x7e9e('0x2f')],_0x1726e9['query']);_0x266b4a[_0x7e9e('0x32')]=_[_0x7e9e('0x33')](_0x1726e9['model'],qs[_0x7e9e('0x34')](_0x5da39e[_0x7e9e('0x31')]['fields']));_0x266b4a[_0x7e9e('0x32')]=_0x266b4a[_0x7e9e('0x32')][_0x7e9e('0x35')]?_0x266b4a[_0x7e9e('0x32')]:_0x1726e9['model'];if(!_0x5da39e[_0x7e9e('0x31')]['hasOwnProperty'](_0x7e9e('0x36'))){_0x266b4a[_0x7e9e('0x1e')]=qs[_0x7e9e('0x1e')](_0x5da39e[_0x7e9e('0x31')][_0x7e9e('0x1e')]);_0x266b4a[_0x7e9e('0x20')]=qs['offset'](_0x5da39e[_0x7e9e('0x31')]['offset']);}_0x266b4a[_0x7e9e('0x37')]=qs[_0x7e9e('0x38')](_0x5da39e[_0x7e9e('0x31')]['sort']);_0x266b4a['where']=qs['filters'](_[_0x7e9e('0x39')](_0x5da39e[_0x7e9e('0x31')],_0x1726e9[_0x7e9e('0x3a')]),_0x12de96);if(_0x5da39e[_0x7e9e('0x31')]['filter']){_0x266b4a[_0x7e9e('0x3b')]=_['merge'](_0x266b4a['where'],{'$or':_[_0x7e9e('0x2b')](_0x12de96,function(_0xf1ae0f){if(_0xf1ae0f[_0x7e9e('0x2e')]!=='VIRTUAL'){var _0x46fe7e={};_0x46fe7e[_0xf1ae0f[_0x7e9e('0x29')]]={'$like':'%'+_0x5da39e[_0x7e9e('0x31')]['filter']+'%'};return _0x46fe7e;}})});}_0x266b4a=_[_0x7e9e('0x3c')]({},_0x266b4a,_0x5da39e[_0x7e9e('0x3d')]);var _0x2651b2={'where':_0x266b4a[_0x7e9e('0x3b')]};return db[_0x7e9e('0x2c')]['count'](_0x2651b2)['then'](function(_0x229ecf){_0x203415[_0x7e9e('0x1f')]=_0x229ecf;if(_0x5da39e['query'][_0x7e9e('0x3e')]){_0x266b4a[_0x7e9e('0x3f')]=[{'all':!![]}];}return db[_0x7e9e('0x2c')][_0x7e9e('0x40')](_0x266b4a);})['then'](function(_0x11af9f){_0x203415[_0x7e9e('0x41')]=_0x11af9f;return _0x203415;})['then'](respondWithFilteredResult(_0xe5b8ef,_0x266b4a))[_0x7e9e('0x42')](handleError(_0xe5b8ef,null));};exports[_0x7e9e('0x43')]=function(_0x65e8cc,_0x1f8c78){var _0x4e8ef3={'raw':!![],'where':{'id':_0x65e8cc[_0x7e9e('0x44')]['id']}},_0x5337a8={};_0x5337a8[_0x7e9e('0x2f')]=_[_0x7e9e('0x30')](db[_0x7e9e('0x2c')]['rawAttributes']);_0x5337a8[_0x7e9e('0x31')]=_[_0x7e9e('0x30')](_0x65e8cc[_0x7e9e('0x31')]);_0x5337a8[_0x7e9e('0x3a')]=_['intersection'](_0x5337a8['model'],_0x5337a8['query']);_0x4e8ef3[_0x7e9e('0x32')]=_[_0x7e9e('0x33')](_0x5337a8[_0x7e9e('0x2f')],qs[_0x7e9e('0x34')](_0x65e8cc[_0x7e9e('0x31')][_0x7e9e('0x34')]));_0x4e8ef3[_0x7e9e('0x32')]=_0x4e8ef3['attributes'][_0x7e9e('0x35')]?_0x4e8ef3[_0x7e9e('0x32')]:_0x5337a8[_0x7e9e('0x2f')];if(_0x65e8cc['query']['includeAll']){_0x4e8ef3[_0x7e9e('0x3f')]=[{'all':!![]}];}_0x4e8ef3=_[_0x7e9e('0x3c')]({},_0x4e8ef3,_0x65e8cc[_0x7e9e('0x3d')]);return db[_0x7e9e('0x2c')][_0x7e9e('0x45')](_0x4e8ef3)[_0x7e9e('0x25')](handleEntityNotFound(_0x1f8c78,null))[_0x7e9e('0x25')](respondWithResult(_0x1f8c78,null))[_0x7e9e('0x42')](handleError(_0x1f8c78,null));};exports[_0x7e9e('0x46')]=function(_0x383f75,_0x27941c){return db[_0x7e9e('0x2c')][_0x7e9e('0x46')](_0x383f75['body'],{})[_0x7e9e('0x25')](respondWithResult(_0x27941c,0xc9))[_0x7e9e('0x42')](handleError(_0x27941c,null));};exports[_0x7e9e('0x24')]=function(_0x26dc29,_0x284750){if(_0x26dc29[_0x7e9e('0x47')]['id']){delete _0x26dc29[_0x7e9e('0x47')]['id'];}return db[_0x7e9e('0x2c')][_0x7e9e('0x45')]({'where':{'id':_0x26dc29[_0x7e9e('0x44')]['id']}})['then'](handleEntityNotFound(_0x284750,null))[_0x7e9e('0x25')](saveUpdates(_0x26dc29[_0x7e9e('0x47')],null))['then'](respondWithResult(_0x284750,null))[_0x7e9e('0x42')](handleError(_0x284750,null));};exports[_0x7e9e('0x26')]=function(_0x23f476,_0x36c782){return db[_0x7e9e('0x2c')][_0x7e9e('0x45')]({'where':{'id':_0x23f476[_0x7e9e('0x44')]['id']}})[_0x7e9e('0x25')](handleEntityNotFound(_0x36c782,null))[_0x7e9e('0x25')](removeEntity(_0x36c782,null))[_0x7e9e('0x42')](handleError(_0x36c782,null));};exports[_0x7e9e('0x48')]=function(_0x568b50,_0x355ad4){return db[_0x7e9e('0x2c')][_0x7e9e('0x48')]()['then'](respondWithResult(_0x355ad4,null))[_0x7e9e('0x42')](handleError(_0x355ad4,null));};
\ No newline at end of file
+var _0x425d=['mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','error','name','send','index','map','JscriptyAnswerReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','fields','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x425d,0x1e0));var _0xd425=function(_0x10d07b,_0xa771c5){_0x10d07b=_0x10d07b-0x0;var _0x2c880e=_0x425d[_0x10d07b];return _0x2c880e;};'use strict';var emlformat=require(_0xd425('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd425('0x1'));var jsonpatch=require(_0xd425('0x2'));var rp=require(_0xd425('0x3'));var moment=require(_0xd425('0x4'));var BPromise=require(_0xd425('0x5'));var Mustache=require(_0xd425('0x6'));var util=require(_0xd425('0x7'));var path=require('path');var sox=require(_0xd425('0x8'));var csv=require(_0xd425('0x9'));var ejs=require(_0xd425('0xa'));var fs=require('fs');var fs_extra=require(_0xd425('0xb'));var _=require(_0xd425('0xc'));var squel=require(_0xd425('0xd'));var crypto=require('crypto');var jsforce=require(_0xd425('0xe'));var deskjs=require(_0xd425('0xf'));var toCsv=require(_0xd425('0x9'));var querystring=require(_0xd425('0x10'));var Papa=require(_0xd425('0x11'));var Redis=require(_0xd425('0x12'));var authService=require(_0xd425('0x13'));var qs=require(_0xd425('0x14'));var as=require(_0xd425('0x15'));var hardwareService=require(_0xd425('0x16'));var logger=require(_0xd425('0x17'))(_0xd425('0x18'));var utils=require(_0xd425('0x19'));var config=require(_0xd425('0x1a'));var licenseUtil=require(_0xd425('0x1b'));var db=require(_0xd425('0x1c'))['db'];function respondWithStatusCode(_0x9bb611,_0x3cacf7){_0x3cacf7=_0x3cacf7||0xcc;return function(_0x3b5de8){if(_0x3b5de8){return _0x9bb611[_0xd425('0x1d')](_0x3cacf7);}return _0x9bb611['status'](_0x3cacf7)[_0xd425('0x1e')]();};}function respondWithResult(_0x17a498,_0x336dc3){_0x336dc3=_0x336dc3||0xc8;return function(_0x5d3d60){if(_0x5d3d60){return _0x17a498[_0xd425('0x1f')](_0x336dc3)[_0xd425('0x20')](_0x5d3d60);}};}function respondWithFilteredResult(_0x643fd2,_0x41f34d){return function(_0x1fc822){if(_0x1fc822){var _0x538a0a=typeof _0x41f34d[_0xd425('0x21')]===_0xd425('0x22')&&typeof _0x41f34d[_0xd425('0x23')]===_0xd425('0x22');var _0x5d6585=_0x1fc822[_0xd425('0x24')];var _0x434d97=_0x538a0a?0x0:_0x41f34d[_0xd425('0x21')];var _0x1155bc=_0x538a0a?_0x1fc822['count']:_0x41f34d['offset']+_0x41f34d['limit'];var _0x4b293a;if(_0x1155bc>=_0x5d6585){_0x1155bc=_0x5d6585;_0x4b293a=0xc8;}else{_0x4b293a=0xce;}_0x643fd2[_0xd425('0x1f')](_0x4b293a);return _0x643fd2[_0xd425('0x25')](_0xd425('0x26'),_0x434d97+'-'+_0x1155bc+'/'+_0x5d6585)['json'](_0x1fc822);}return null;};}function patchUpdates(_0x355af0){return function(_0x7e982e){try{jsonpatch['apply'](_0x7e982e,_0x355af0,!![]);}catch(_0x2e1ec4){return BPromise[_0xd425('0x27')](_0x2e1ec4);}return _0x7e982e[_0xd425('0x28')]();};}function saveUpdates(_0x1d3fc0,_0x3e93db){return function(_0xb240c4){if(_0xb240c4){return _0xb240c4[_0xd425('0x29')](_0x1d3fc0)[_0xd425('0x2a')](function(_0x314201){return _0x314201;});}return null;};}function removeEntity(_0x2b030b,_0x151ad9){return function(_0x40e84b){if(_0x40e84b){return _0x40e84b['destroy']()[_0xd425('0x2a')](function(){_0x2b030b[_0xd425('0x1f')](0xcc)[_0xd425('0x1e')]();});}};}function handleEntityNotFound(_0x1908a5,_0x2afcdb){return function(_0x400dd7){if(!_0x400dd7){_0x1908a5[_0xd425('0x1d')](0x194);}return _0x400dd7;};}function handleError(_0x577e4b,_0x12f951){_0x12f951=_0x12f951||0x1f4;return function(_0x177de2){logger[_0xd425('0x2b')](_0x177de2['stack']);if(_0x177de2[_0xd425('0x2c')]){delete _0x177de2[_0xd425('0x2c')];}_0x577e4b[_0xd425('0x1f')](_0x12f951)[_0xd425('0x2d')](_0x177de2);};}exports[_0xd425('0x2e')]=function(_0x185d7e,_0x2fd17a){var _0x37b63c={},_0x24da23={},_0x1cac61={'count':0x0,'rows':[]};var _0x482ba6=_[_0xd425('0x2f')](db[_0xd425('0x30')][_0xd425('0x31')],function(_0x3695dd){return{'name':_0x3695dd[_0xd425('0x32')],'type':_0x3695dd[_0xd425('0x33')][_0xd425('0x34')]};});_0x24da23[_0xd425('0x35')]=_[_0xd425('0x2f')](_0x482ba6,_0xd425('0x2c'));_0x24da23[_0xd425('0x36')]=_['keys'](_0x185d7e[_0xd425('0x36')]);_0x24da23[_0xd425('0x37')]=_[_0xd425('0x38')](_0x24da23[_0xd425('0x35')],_0x24da23[_0xd425('0x36')]);_0x37b63c['attributes']=_[_0xd425('0x38')](_0x24da23[_0xd425('0x35')],qs['fields'](_0x185d7e['query']['fields']));_0x37b63c[_0xd425('0x39')]=_0x37b63c[_0xd425('0x39')][_0xd425('0x3a')]?_0x37b63c[_0xd425('0x39')]:_0x24da23['model'];if(!_0x185d7e[_0xd425('0x36')][_0xd425('0x3b')](_0xd425('0x3c'))){_0x37b63c[_0xd425('0x23')]=qs[_0xd425('0x23')](_0x185d7e[_0xd425('0x36')][_0xd425('0x23')]);_0x37b63c['offset']=qs[_0xd425('0x21')](_0x185d7e['query'][_0xd425('0x21')]);}_0x37b63c[_0xd425('0x3d')]=qs[_0xd425('0x3e')](_0x185d7e['query'][_0xd425('0x3e')]);_0x37b63c[_0xd425('0x3f')]=qs[_0xd425('0x37')](_[_0xd425('0x40')](_0x185d7e['query'],_0x24da23[_0xd425('0x37')]),_0x482ba6);if(_0x185d7e[_0xd425('0x36')]['filter']){_0x37b63c['where']=_['merge'](_0x37b63c[_0xd425('0x3f')],{'$or':_[_0xd425('0x2f')](_0x482ba6,function(_0x1f30c1){if(_0x1f30c1['type']!=='VIRTUAL'){var _0x58ebb1={};_0x58ebb1[_0x1f30c1[_0xd425('0x2c')]]={'$like':'%'+_0x185d7e[_0xd425('0x36')][_0xd425('0x41')]+'%'};return _0x58ebb1;}})});}_0x37b63c=_[_0xd425('0x42')]({},_0x37b63c,_0x185d7e[_0xd425('0x43')]);var _0x14f3be={'where':_0x37b63c[_0xd425('0x3f')]};return db['JscriptyAnswerReport'][_0xd425('0x24')](_0x14f3be)[_0xd425('0x2a')](function(_0x1d82ec){_0x1cac61['count']=_0x1d82ec;if(_0x185d7e[_0xd425('0x36')][_0xd425('0x44')]){_0x37b63c[_0xd425('0x45')]=[{'all':!![]}];}return db['JscriptyAnswerReport'][_0xd425('0x46')](_0x37b63c);})[_0xd425('0x2a')](function(_0x1c5ba6){_0x1cac61[_0xd425('0x47')]=_0x1c5ba6;return _0x1cac61;})['then'](respondWithFilteredResult(_0x2fd17a,_0x37b63c))[_0xd425('0x48')](handleError(_0x2fd17a,null));};exports[_0xd425('0x49')]=function(_0x2b1149,_0x41b25e){var _0x3f24fb={'raw':!![],'where':{'id':_0x2b1149[_0xd425('0x4a')]['id']}},_0x2f6bf7={};_0x2f6bf7['model']=_[_0xd425('0x4b')](db[_0xd425('0x30')]['rawAttributes']);_0x2f6bf7[_0xd425('0x36')]=_['keys'](_0x2b1149['query']);_0x2f6bf7[_0xd425('0x37')]=_['intersection'](_0x2f6bf7[_0xd425('0x35')],_0x2f6bf7['query']);_0x3f24fb[_0xd425('0x39')]=_[_0xd425('0x38')](_0x2f6bf7[_0xd425('0x35')],qs[_0xd425('0x4c')](_0x2b1149[_0xd425('0x36')]['fields']));_0x3f24fb[_0xd425('0x39')]=_0x3f24fb['attributes'][_0xd425('0x3a')]?_0x3f24fb['attributes']:_0x2f6bf7[_0xd425('0x35')];if(_0x2b1149[_0xd425('0x36')][_0xd425('0x44')]){_0x3f24fb[_0xd425('0x45')]=[{'all':!![]}];}_0x3f24fb=_[_0xd425('0x42')]({},_0x3f24fb,_0x2b1149['options']);return db[_0xd425('0x30')][_0xd425('0x4d')](_0x3f24fb)[_0xd425('0x2a')](handleEntityNotFound(_0x41b25e,null))[_0xd425('0x2a')](respondWithResult(_0x41b25e,null))[_0xd425('0x48')](handleError(_0x41b25e,null));};exports['create']=function(_0x440dc5,_0x177704){return db[_0xd425('0x30')][_0xd425('0x4e')](_0x440dc5[_0xd425('0x4f')],{})[_0xd425('0x2a')](respondWithResult(_0x177704,0xc9))['catch'](handleError(_0x177704,null));};exports[_0xd425('0x29')]=function(_0x128cb3,_0x5bfac6){if(_0x128cb3[_0xd425('0x4f')]['id']){delete _0x128cb3[_0xd425('0x4f')]['id'];}return db[_0xd425('0x30')][_0xd425('0x4d')]({'where':{'id':_0x128cb3['params']['id']}})[_0xd425('0x2a')](handleEntityNotFound(_0x5bfac6,null))[_0xd425('0x2a')](saveUpdates(_0x128cb3[_0xd425('0x4f')],null))[_0xd425('0x2a')](respondWithResult(_0x5bfac6,null))[_0xd425('0x48')](handleError(_0x5bfac6,null));};exports['destroy']=function(_0x4be6fa,_0x381bdb){return db['JscriptyAnswerReport'][_0xd425('0x4d')]({'where':{'id':_0x4be6fa[_0xd425('0x4a')]['id']}})['then'](handleEntityNotFound(_0x381bdb,null))[_0xd425('0x2a')](removeEntity(_0x381bdb,null))['catch'](handleError(_0x381bdb,null));};exports['describe']=function(_0x39f588,_0x111905){return db[_0xd425('0x30')][_0xd425('0x50')]()[_0xd425('0x2a')](respondWithResult(_0x111905,null))[_0xd425('0x48')](handleError(_0x111905,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7713=['exports','define','JscriptyAnswerReport','report_jscripty_answers','lodash','util','../../config/logger','request-promise','path','rimraf','./jscriptyAnswerReport.attributes'];(function(_0x1d0348,_0x11c427){var _0x3e9de9=function(_0x497d20){while(--_0x497d20){_0x1d0348['push'](_0x1d0348['shift']());}};_0x3e9de9(++_0x11c427);}(_0x7713,0x122));var _0x3771=function(_0x332d21,_0x2f1f7f){_0x332d21=_0x332d21-0x0;var _0x545838=_0x7713[_0x332d21];return _0x545838;};'use strict';var _=require(_0x3771('0x0'));var util=require(_0x3771('0x1'));var logger=require(_0x3771('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x3771('0x3'));var fs=require('fs');var path=require(_0x3771('0x4'));var rimraf=require(_0x3771('0x5'));var config=require('../../config/environment');var attributes=require(_0x3771('0x6'));module[_0x3771('0x7')]=function(_0x397142,_0x4153df){return _0x397142[_0x3771('0x8')](_0x3771('0x9'),attributes,{'tableName':_0x3771('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3b6c=['./jscriptyAnswerReport.attributes','exports','define','JscriptyAnswerReport','lodash','util','../../config/logger','api','moment','bluebird','request-promise','../../config/environment'];(function(_0x10a5f7,_0x4bdc94){var _0x4b9f99=function(_0x50a738){while(--_0x50a738){_0x10a5f7['push'](_0x10a5f7['shift']());}};_0x4b9f99(++_0x4bdc94);}(_0x3b6c,0xe8));var _0xc3b6=function(_0x1144a7,_0x439dd1){_0x1144a7=_0x1144a7-0x0;var _0x401d24=_0x3b6c[_0x1144a7];return _0x401d24;};'use strict';var _=require(_0xc3b6('0x0'));var util=require(_0xc3b6('0x1'));var logger=require(_0xc3b6('0x2'))(_0xc3b6('0x3'));var moment=require(_0xc3b6('0x4'));var BPromise=require(_0xc3b6('0x5'));var rp=require(_0xc3b6('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xc3b6('0x7'));var attributes=require(_0xc3b6('0x8'));module[_0xc3b6('0x9')]=function(_0x32196f,_0x23cc9e){return _0x32196f[_0xc3b6('0xa')](_0xc3b6('0xb'),attributes,{'tableName':'report_jscripty_answers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf18c=['result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','JscriptyAnswerReport,\x20%s,\x20%s','stringify','error','code','message','request\x20sent'];(function(_0x64e5d9,_0x955ebf){var _0x5b1578=function(_0x24da3e){while(--_0x24da3e){_0x64e5d9['push'](_0x64e5d9['shift']());}};_0x5b1578(++_0x955ebf);}(_0xf18c,0x1a4));var _0xcf18=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0xf18c[_0x3511d3];return _0x5d6321;};'use strict';var _=require('lodash');var util=require(_0xcf18('0x0'));var moment=require(_0xcf18('0x1'));var BPromise=require(_0xcf18('0x2'));var rs=require(_0xcf18('0x3'));var fs=require('fs');var Redis=require(_0xcf18('0x4'));var db=require(_0xcf18('0x5'))['db'];var utils=require(_0xcf18('0x6'));var logger=require(_0xcf18('0x7'))('rpc');var config=require(_0xcf18('0x8'));var jayson=require(_0xcf18('0x9'));var client=jayson[_0xcf18('0xa')][_0xcf18('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x53e4aa,_0xe48881,_0x2a2fc1){return new BPromise(function(_0x3aa738,_0x73481a){return client['request'](_0x53e4aa,_0x2a2fc1)[_0xcf18('0xc')](function(_0x2c3718){logger[_0xcf18('0xd')](_0xcf18('0xe'),_0xe48881,'request\x20sent');logger['debug']('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0xe48881,'request\x20sent',JSON[_0xcf18('0xf')](_0x2c3718));if(_0x2c3718[_0xcf18('0x10')]){if(_0x2c3718[_0xcf18('0x10')][_0xcf18('0x11')]===0x1f4){logger[_0xcf18('0x10')](_0xcf18('0xe'),_0xe48881,_0x2c3718[_0xcf18('0x10')][_0xcf18('0x12')]);return _0x73481a(_0x2c3718['error'][_0xcf18('0x12')]);}logger[_0xcf18('0x10')](_0xcf18('0xe'),_0xe48881,_0x2c3718['error'][_0xcf18('0x12')]);return _0x3aa738(_0x2c3718[_0xcf18('0x10')][_0xcf18('0x12')]);}else{logger[_0xcf18('0xd')](_0xcf18('0xe'),_0xe48881,_0xcf18('0x13'));_0x3aa738(_0x2c3718[_0xcf18('0x14')][_0xcf18('0x12')]);}})[_0xcf18('0x15')](function(_0xfc1245){logger[_0xcf18('0x10')](_0xcf18('0xe'),_0xe48881,_0xfc1245);_0x73481a(_0xfc1245);});});}
\ No newline at end of file
+var _0x644a=['../../config/environment','jayson/promise','client','http','then','info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x53afa6,_0x59e786){var _0x51f86a=function(_0x368385){while(--_0x368385){_0x53afa6['push'](_0x53afa6['shift']());}};_0x51f86a(++_0x59e786);}(_0x644a,0xae));var _0xa644=function(_0x3572b3,_0x593ffe){_0x3572b3=_0x3572b3-0x0;var _0x55e4aa=_0x644a[_0x3572b3];return _0x55e4aa;};'use strict';var _=require('lodash');var util=require(_0xa644('0x0'));var moment=require(_0xa644('0x1'));var BPromise=require(_0xa644('0x2'));var rs=require(_0xa644('0x3'));var fs=require('fs');var Redis=require(_0xa644('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xa644('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xa644('0x6'));var jayson=require(_0xa644('0x7'));var client=jayson[_0xa644('0x8')][_0xa644('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4681d7,_0x4ed7c8,_0x2cd3da){return new BPromise(function(_0x4e7ee3,_0x5a6b87){return client['request'](_0x4681d7,_0x2cd3da)[_0xa644('0xa')](function(_0x3e82a7){logger[_0xa644('0xb')](_0xa644('0xc'),_0x4ed7c8,_0xa644('0xd'));logger[_0xa644('0xe')]('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0x4ed7c8,'request\x20sent',JSON[_0xa644('0xf')](_0x3e82a7));if(_0x3e82a7['error']){if(_0x3e82a7[_0xa644('0x10')]['code']===0x1f4){logger[_0xa644('0x10')](_0xa644('0xc'),_0x4ed7c8,_0x3e82a7['error'][_0xa644('0x11')]);return _0x5a6b87(_0x3e82a7[_0xa644('0x10')]['message']);}logger[_0xa644('0x10')](_0xa644('0xc'),_0x4ed7c8,_0x3e82a7['error'][_0xa644('0x11')]);return _0x4e7ee3(_0x3e82a7[_0xa644('0x10')][_0xa644('0x11')]);}else{logger['info'](_0xa644('0xc'),_0x4ed7c8,'request\x20sent');_0x4e7ee3(_0x3e82a7[_0xa644('0x12')][_0xa644('0x11')]);}})[_0xa644('0x13')](function(_0x3000b0){logger[_0xa644('0x10')](_0xa644('0xc'),_0x4ed7c8,_0x3000b0);_0x5a6b87(_0x3000b0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6aef=['../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/answers','getAnswers','/:id/summary','getSummary','/:id/clone','put','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra'];(function(_0x122e9b,_0x391bf4){var _0x22c247=function(_0x1b2c65){while(--_0x1b2c65){_0x122e9b['push'](_0x122e9b['shift']());}};_0x22c247(++_0x391bf4);}(_0x6aef,0x17a));var _0xf6ae=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6aef[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xf6ae('0x0'));var util=require(_0xf6ae('0x1'));var path=require('path');var timeout=require(_0xf6ae('0x2'));var express=require(_0xf6ae('0x3'));var router=express[_0xf6ae('0x4')]();var fs_extra=require(_0xf6ae('0x5'));var auth=require(_0xf6ae('0x6'));var interaction=require(_0xf6ae('0x7'));var config=require(_0xf6ae('0x8'));var controller=require('./jscriptyProject.controller');router[_0xf6ae('0x9')]('/',auth[_0xf6ae('0xa')](),controller[_0xf6ae('0xb')]);router[_0xf6ae('0x9')](_0xf6ae('0xc'),auth[_0xf6ae('0xa')](),controller[_0xf6ae('0xd')]);router[_0xf6ae('0x9')]('/:id/sessions',auth[_0xf6ae('0xa')](),controller['getSessions']);router[_0xf6ae('0x9')](_0xf6ae('0xe'),auth[_0xf6ae('0xa')](),controller[_0xf6ae('0xf')]);router[_0xf6ae('0x9')](_0xf6ae('0x10'),auth[_0xf6ae('0xa')](),timeout('30s'),controller[_0xf6ae('0x11')]);router['post']('/',auth[_0xf6ae('0xa')](),controller['create']);router['post'](_0xf6ae('0x12'),auth[_0xf6ae('0xa')](),controller['clone']);router[_0xf6ae('0x13')]('/:id',auth[_0xf6ae('0xa')](),controller[_0xf6ae('0x14')]);router[_0xf6ae('0x15')](_0xf6ae('0xc'),auth[_0xf6ae('0xa')](),controller[_0xf6ae('0x16')]);module[_0xf6ae('0x17')]=router;
\ No newline at end of file
+var _0xb7bd=['multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./jscriptyProject.controller','get','isAuthenticated','/:id','show','/:id/sessions','getSessions','/:id/answers','/:id/summary','30s','post','create','/:id/clone','put','update','delete','destroy','exports'];(function(_0x2e914,_0x1c7566){var _0x936e45=function(_0x1b22e4){while(--_0x1b22e4){_0x2e914['push'](_0x2e914['shift']());}};_0x936e45(++_0x1c7566);}(_0xb7bd,0x9c));var _0xdb7b=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xb7bd[_0x2641f9];return _0x585741;};'use strict';var multer=require(_0xdb7b('0x0'));var util=require(_0xdb7b('0x1'));var path=require(_0xdb7b('0x2'));var timeout=require('connect-timeout');var express=require(_0xdb7b('0x3'));var router=express[_0xdb7b('0x4')]();var fs_extra=require(_0xdb7b('0x5'));var auth=require(_0xdb7b('0x6'));var interaction=require(_0xdb7b('0x7'));var config=require('../../config/environment');var controller=require(_0xdb7b('0x8'));router[_0xdb7b('0x9')]('/',auth[_0xdb7b('0xa')](),controller['index']);router[_0xdb7b('0x9')](_0xdb7b('0xb'),auth[_0xdb7b('0xa')](),controller[_0xdb7b('0xc')]);router[_0xdb7b('0x9')](_0xdb7b('0xd'),auth['isAuthenticated'](),controller[_0xdb7b('0xe')]);router[_0xdb7b('0x9')](_0xdb7b('0xf'),auth[_0xdb7b('0xa')](),controller['getAnswers']);router['get'](_0xdb7b('0x10'),auth[_0xdb7b('0xa')](),timeout(_0xdb7b('0x11')),controller['getSummary']);router[_0xdb7b('0x12')]('/',auth[_0xdb7b('0xa')](),controller[_0xdb7b('0x13')]);router[_0xdb7b('0x12')](_0xdb7b('0x14'),auth[_0xdb7b('0xa')](),controller['clone']);router[_0xdb7b('0x15')]('/:id',auth[_0xdb7b('0xa')](),controller[_0xdb7b('0x16')]);router[_0xdb7b('0x17')](_0xdb7b('0xb'),auth[_0xdb7b('0xa')](),controller[_0xdb7b('0x18')]);module[_0xdb7b('0x19')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8a4=['util','exports','STRING','name','TEXT','long','isObjectLike','setDataValue','formData','stringify','isString','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','description','BOOLEAN','sequelize','lodash'];(function(_0x5a9f22,_0xbadf84){var _0x4489f8=function(_0x5de8b5){while(--_0x5de8b5){_0x5a9f22['push'](_0x5a9f22['shift']());}};_0x4489f8(++_0xbadf84);}(_0xc8a4,0x18a));var _0x4c8a=function(_0x5cbe5b,_0x504932){_0x5cbe5b=_0x5cbe5b-0x0;var _0x5a039f=_0xc8a4[_0x5cbe5b];return _0x5a039f;};'use strict';var Sequelize=require(_0x4c8a('0x0'));var _=require(_0x4c8a('0x1'));var util=require(_0x4c8a('0x2'));module[_0x4c8a('0x3')]={'name':{'type':Sequelize[_0x4c8a('0x4')],'unique':_0x4c8a('0x5')},'description':{'type':Sequelize[_0x4c8a('0x4')]},'formData':{'type':Sequelize[_0x4c8a('0x6')](_0x4c8a('0x7')),'set':function(_0x6d7f57){if(_[_0x4c8a('0x8')](_0x6d7f57)){this[_0x4c8a('0x9')](_0x4c8a('0xa'),JSON[_0x4c8a('0xb')](_0x6d7f57));}else if(_[_0x4c8a('0xc')](_0x6d7f57)){this[_0x4c8a('0x9')]('formData',_0x6d7f57);}else{this[_0x4c8a('0x9')](_0x4c8a('0xa'),util[_0x4c8a('0xd')](_0x4c8a('0xe'),this[_0x4c8a('0xf')](_0x4c8a('0x5'))||'',this['getDataValue'](_0x4c8a('0x10'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x4c8a('0x11')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x3cb6=['setDataValue','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','description','BOOLEAN','sequelize','lodash','util','exports','name','STRING','TEXT','isObjectLike','isString'];(function(_0x4dd30d,_0x52cf9d){var _0x294701=function(_0x179d15){while(--_0x179d15){_0x4dd30d['push'](_0x4dd30d['shift']());}};_0x294701(++_0x52cf9d);}(_0x3cb6,0x6f));var _0x63cb=function(_0x483e0b,_0x344244){_0x483e0b=_0x483e0b-0x0;var _0x157365=_0x3cb6[_0x483e0b];return _0x157365;};'use strict';var Sequelize=require(_0x63cb('0x0'));var _=require(_0x63cb('0x1'));var util=require(_0x63cb('0x2'));module[_0x63cb('0x3')]={'name':{'type':Sequelize['STRING'],'unique':_0x63cb('0x4')},'description':{'type':Sequelize[_0x63cb('0x5')]},'formData':{'type':Sequelize[_0x63cb('0x6')]('long'),'set':function(_0xdc1f00){if(_[_0x63cb('0x7')](_0xdc1f00)){this['setDataValue']('formData',JSON['stringify'](_0xdc1f00));}else if(_[_0x63cb('0x8')](_0xdc1f00)){this[_0x63cb('0x9')]('formData',_0xdc1f00);}else{this[_0x63cb('0x9')]('formData',util[_0x63cb('0xa')](_0x63cb('0xb'),this[_0x63cb('0xc')]('name')||'',this[_0x63cb('0xc')](_0x63cb('0xd'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x63cb('0xe')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x63cb('0xe')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc6d=['zip-dir','fast-json-patch','bluebird','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','get','Projects','UserProfileResource','then','error','stack','name','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','options','JscriptyProject','includeAll','findAll','catch','show','params','include','find','create','body','user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','getSessions','findOne','JscriptySessionReport','pick','ProjectId','rows','getAnswers','JscriptyAnswerReport','toString','indexOf','replace','getSummary','startTime','starttime','parse','-createdAt','question','YYYY-MM-DD\x20HH:mm:ss','SessionId','questionId','answer','push','isEmpty','now','format','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','eml-format','rimraf'];(function(_0x4c1e11,_0x543747){var _0xd4540a=function(_0x29a3af){while(--_0x29a3af){_0x4c1e11['push'](_0x4c1e11['shift']());}};_0xd4540a(++_0x543747);}(_0xfc6d,0x1e6));var _0xdfc6=function(_0x18b600,_0x52d2aa){_0x18b600=_0x18b600-0x0;var _0x70c47=_0xfc6d[_0x18b600];return _0x70c47;};'use strict';var emlformat=require(_0xdfc6('0x0'));var rimraf=require(_0xdfc6('0x1'));var zipdir=require(_0xdfc6('0x2'));var jsonpatch=require(_0xdfc6('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xdfc6('0x4'));var Mustache=require('mustache');var util=require(_0xdfc6('0x5'));var path=require(_0xdfc6('0x6'));var sox=require('sox');var csv=require(_0xdfc6('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xdfc6('0x8'));var _=require(_0xdfc6('0x9'));var squel=require(_0xdfc6('0xa'));var crypto=require(_0xdfc6('0xb'));var jsforce=require(_0xdfc6('0xc'));var deskjs=require(_0xdfc6('0xd'));var toCsv=require(_0xdfc6('0x7'));var querystring=require(_0xdfc6('0xe'));var Papa=require(_0xdfc6('0xf'));var Redis=require(_0xdfc6('0x10'));var authService=require(_0xdfc6('0x11'));var qs=require(_0xdfc6('0x12'));var as=require(_0xdfc6('0x13'));var hardwareService=require(_0xdfc6('0x14'));var logger=require(_0xdfc6('0x15'))('api');var utils=require(_0xdfc6('0x16'));var config=require(_0xdfc6('0x17'));var licenseUtil=require(_0xdfc6('0x18'));var db=require(_0xdfc6('0x19'))['db'];function respondWithStatusCode(_0x4c1cf8,_0x40f810){_0x40f810=_0x40f810||0xcc;return function(_0x1d6533){if(_0x1d6533){return _0x4c1cf8[_0xdfc6('0x1a')](_0x40f810);}return _0x4c1cf8[_0xdfc6('0x1b')](_0x40f810)[_0xdfc6('0x1c')]();};}function respondWithResult(_0x213496,_0x1f8fd0){_0x1f8fd0=_0x1f8fd0||0xc8;return function(_0x195fdf){if(_0x195fdf){return _0x213496[_0xdfc6('0x1b')](_0x1f8fd0)[_0xdfc6('0x1d')](_0x195fdf);}};}function respondWithFilteredResult(_0x376309,_0x9ff209){return function(_0x5b9873){if(_0x5b9873){var _0x40472a=typeof _0x9ff209[_0xdfc6('0x1e')]===_0xdfc6('0x1f')&&typeof _0x9ff209[_0xdfc6('0x20')]===_0xdfc6('0x1f');var _0x39f856=_0x5b9873[_0xdfc6('0x21')];var _0x1762b5=_0x40472a?0x0:_0x9ff209[_0xdfc6('0x1e')];var _0xde1571=_0x40472a?_0x5b9873['count']:_0x9ff209[_0xdfc6('0x1e')]+_0x9ff209['limit'];var _0x111852;if(_0xde1571>=_0x39f856){_0xde1571=_0x39f856;_0x111852=0xc8;}else{_0x111852=0xce;}_0x376309[_0xdfc6('0x1b')](_0x111852);return _0x376309[_0xdfc6('0x22')]('Content-Range',_0x1762b5+'-'+_0xde1571+'/'+_0x39f856)[_0xdfc6('0x1d')](_0x5b9873);}return null;};}function patchUpdates(_0x2a283d){return function(_0x48f04a){try{jsonpatch[_0xdfc6('0x23')](_0x48f04a,_0x2a283d,!![]);}catch(_0x21faba){return BPromise[_0xdfc6('0x24')](_0x21faba);}return _0x48f04a[_0xdfc6('0x25')]();};}function saveUpdates(_0x443992,_0x389bb6){return function(_0x5e614c){if(_0x5e614c){return _0x5e614c[_0xdfc6('0x26')](_0x443992)['then'](function(_0x233cc5){return _0x233cc5;});}return null;};}function removeEntity(_0x1b532f,_0x240fa6){return function(_0x231e6f){if(_0x231e6f){return _0x231e6f[_0xdfc6('0x27')]()['then'](function(){var _0xb421c8=_0x231e6f[_0xdfc6('0x28')]({'plain':!![]});var _0x393d0f=_0xdfc6('0x29');return db[_0xdfc6('0x2a')]['destroy']({'where':{'type':_0x393d0f,'resourceId':_0xb421c8['id']}})[_0xdfc6('0x2b')](function(){return _0x231e6f;});})['then'](function(){_0x1b532f['status'](0xcc)[_0xdfc6('0x1c')]();});}};}function handleEntityNotFound(_0x4e8566,_0x53ce6c){return function(_0x7bc143){if(!_0x7bc143){_0x4e8566[_0xdfc6('0x1a')](0x194);}return _0x7bc143;};}function handleError(_0x57df3f,_0x45d59f){_0x45d59f=_0x45d59f||0x1f4;return function(_0x4a9d6c){logger[_0xdfc6('0x2c')](_0x4a9d6c[_0xdfc6('0x2d')]);if(_0x4a9d6c['name']){delete _0x4a9d6c[_0xdfc6('0x2e')];}_0x57df3f['status'](_0x45d59f)['send'](_0x4a9d6c);};}exports[_0xdfc6('0x2f')]=function(_0x4b3777,_0x26ced3){var _0x2f6993={},_0x5e337b={},_0x1677ff={'count':0x0,'rows':[]};var _0x55badc=_[_0xdfc6('0x30')](db['JscriptyProject'][_0xdfc6('0x31')],function(_0x10fab0){return{'name':_0x10fab0[_0xdfc6('0x32')],'type':_0x10fab0[_0xdfc6('0x33')]['key']};});_0x5e337b[_0xdfc6('0x34')]=_[_0xdfc6('0x30')](_0x55badc,_0xdfc6('0x2e'));_0x5e337b[_0xdfc6('0x35')]=_[_0xdfc6('0x36')](_0x4b3777[_0xdfc6('0x35')]);_0x5e337b[_0xdfc6('0x37')]=_[_0xdfc6('0x38')](_0x5e337b[_0xdfc6('0x34')],_0x5e337b['query']);_0x2f6993['attributes']=_[_0xdfc6('0x38')](_0x5e337b['model'],qs[_0xdfc6('0x39')](_0x4b3777[_0xdfc6('0x35')][_0xdfc6('0x39')]));_0x2f6993[_0xdfc6('0x3a')]=_0x2f6993[_0xdfc6('0x3a')][_0xdfc6('0x3b')]?_0x2f6993[_0xdfc6('0x3a')]:_0x5e337b[_0xdfc6('0x34')];if(!_0x4b3777[_0xdfc6('0x35')][_0xdfc6('0x3c')](_0xdfc6('0x3d'))){_0x2f6993[_0xdfc6('0x20')]=qs[_0xdfc6('0x20')](_0x4b3777[_0xdfc6('0x35')]['limit']);_0x2f6993['offset']=qs[_0xdfc6('0x1e')](_0x4b3777[_0xdfc6('0x35')][_0xdfc6('0x1e')]);}_0x2f6993[_0xdfc6('0x3e')]=qs['sort'](_0x4b3777[_0xdfc6('0x35')][_0xdfc6('0x3f')]);_0x2f6993[_0xdfc6('0x40')]=qs[_0xdfc6('0x37')](_['pick'](_0x4b3777[_0xdfc6('0x35')],_0x5e337b['filters']),_0x55badc);if(_0x4b3777[_0xdfc6('0x35')][_0xdfc6('0x41')]){_0x2f6993['where']=_['merge'](_0x2f6993[_0xdfc6('0x40')],{'$or':_[_0xdfc6('0x30')](_0x55badc,function(_0x302b13){if(_0x302b13[_0xdfc6('0x33')]!==_0xdfc6('0x42')){var _0x54a790={};_0x54a790[_0x302b13[_0xdfc6('0x2e')]]={'$like':'%'+_0x4b3777['query'][_0xdfc6('0x41')]+'%'};return _0x54a790;}})});}_0x2f6993=_[_0xdfc6('0x43')]({},_0x2f6993,_0x4b3777[_0xdfc6('0x44')]);var _0x5587ad={'where':_0x2f6993[_0xdfc6('0x40')]};return db[_0xdfc6('0x45')][_0xdfc6('0x21')](_0x5587ad)[_0xdfc6('0x2b')](function(_0x1c7342){_0x1677ff[_0xdfc6('0x21')]=_0x1c7342;if(_0x4b3777[_0xdfc6('0x35')][_0xdfc6('0x46')]){_0x2f6993['include']=[{'all':!![]}];}return db[_0xdfc6('0x45')][_0xdfc6('0x47')](_0x2f6993);})[_0xdfc6('0x2b')](function(_0x25aa69){_0x1677ff['rows']=_0x25aa69;return _0x1677ff;})[_0xdfc6('0x2b')](respondWithFilteredResult(_0x26ced3,_0x2f6993))[_0xdfc6('0x48')](handleError(_0x26ced3,null));};exports[_0xdfc6('0x49')]=function(_0x260d1f,_0x1662b8){var _0x355a20={'raw':![],'where':{'id':_0x260d1f[_0xdfc6('0x4a')]['id']}},_0x442714={};_0x442714['model']=_[_0xdfc6('0x36')](db['JscriptyProject']['rawAttributes']);_0x442714[_0xdfc6('0x35')]=_[_0xdfc6('0x36')](_0x260d1f['query']);_0x442714[_0xdfc6('0x37')]=_[_0xdfc6('0x38')](_0x442714[_0xdfc6('0x34')],_0x442714[_0xdfc6('0x35')]);_0x355a20[_0xdfc6('0x3a')]=_['intersection'](_0x442714[_0xdfc6('0x34')],qs['fields'](_0x260d1f[_0xdfc6('0x35')][_0xdfc6('0x39')]));_0x355a20['attributes']=_0x355a20[_0xdfc6('0x3a')][_0xdfc6('0x3b')]?_0x355a20[_0xdfc6('0x3a')]:_0x442714[_0xdfc6('0x34')];if(_0x260d1f['query'][_0xdfc6('0x46')]){_0x355a20[_0xdfc6('0x4b')]=[{'all':!![]}];}_0x355a20=_[_0xdfc6('0x43')]({},_0x355a20,_0x260d1f[_0xdfc6('0x44')]);return db[_0xdfc6('0x45')][_0xdfc6('0x4c')](_0x355a20)[_0xdfc6('0x2b')](handleEntityNotFound(_0x1662b8,null))['then'](respondWithResult(_0x1662b8,null))['catch'](handleError(_0x1662b8,null));};exports[_0xdfc6('0x4d')]=function(_0x9734d,_0x144e02){return db['JscriptyProject'][_0xdfc6('0x4d')](_0x9734d[_0xdfc6('0x4e')],{})[_0xdfc6('0x2b')](function(_0x7917bb){var _0x3850d3=_0x9734d[_0xdfc6('0x4f')][_0xdfc6('0x28')]({'plain':!![]});if(!_0x3850d3)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3850d3[_0xdfc6('0x50')]===_0xdfc6('0x4f')){var _0x2fc65b=_0x7917bb[_0xdfc6('0x28')]({'plain':!![]});var _0x10132f=_0xdfc6('0x29');return db[_0xdfc6('0x51')][_0xdfc6('0x4c')]({'where':{'name':_0x10132f,'userProfileId':_0x3850d3[_0xdfc6('0x52')]},'raw':!![]})['then'](function(_0x34b25a){if(_0x34b25a&&_0x34b25a[_0xdfc6('0x53')]===0x0){return db[_0xdfc6('0x2a')][_0xdfc6('0x4d')]({'name':_0x2fc65b[_0xdfc6('0x2e')],'resourceId':_0x2fc65b['id'],'type':_0x34b25a[_0xdfc6('0x2e')],'sectionId':_0x34b25a['id']},{})[_0xdfc6('0x2b')](function(){return _0x7917bb;});}else{return _0x7917bb;}})[_0xdfc6('0x48')](function(_0x10f8bc){logger[_0xdfc6('0x2c')](_0xdfc6('0x54'),_0x10f8bc);throw _0x10f8bc;});}return _0x7917bb;})[_0xdfc6('0x2b')](respondWithResult(_0x144e02,0xc9))[_0xdfc6('0x48')](handleError(_0x144e02,null));};exports[_0xdfc6('0x55')]=function(_0x3f0aa9,_0xe94724){var _0x143424={'where':{'id':_0x3f0aa9[_0xdfc6('0x4a')]['id']}},_0x37e791={};_0x37e791[_0xdfc6('0x34')]=_['keys'](db[_0xdfc6('0x45')][_0xdfc6('0x31')]);_0x143424[_0xdfc6('0x3a')]=_[_0xdfc6('0x38')](_0x37e791[_0xdfc6('0x34')],qs[_0xdfc6('0x39')](_0x3f0aa9[_0xdfc6('0x35')][_0xdfc6('0x39')]));_0x143424[_0xdfc6('0x3a')]=_0x143424['attributes']['length']?_0x143424[_0xdfc6('0x3a')]:_0x37e791[_0xdfc6('0x34')];if(_0x3f0aa9['query'][_0xdfc6('0x46')]){_0x143424[_0xdfc6('0x4b')]=[{'all':!![]}];}_0x143424=_['merge']({},_0x143424,_0x3f0aa9['options']);return db['JscriptyProject']['find'](_0x143424)[_0xdfc6('0x2b')](handleEntityNotFound(_0xe94724,null))[_0xdfc6('0x2b')](function(_0x2f6e90){if(_0x2f6e90){var _0x1db45c=_0x2f6e90[_0xdfc6('0x28')]({'plain':!![]});_0x1db45c=qs[_0xdfc6('0x56')](_0x1db45c,['id',_0xdfc6('0x57'),_0xdfc6('0x58')]);_0x3f0aa9[_0xdfc6('0x4e')]=_[_0xdfc6('0x56')](_0x3f0aa9[_0xdfc6('0x4e')],['id','createdAt','updatedAt']);return db[_0xdfc6('0x45')]['create'](_['merge'](_0x1db45c,_0x3f0aa9[_0xdfc6('0x4e')]),{'include':_0x3f0aa9['query'][_0xdfc6('0x46')]?[{'all':!![]}]:undefined})['then'](function(_0x5040e2){var _0x3489bb=_0x3f0aa9[_0xdfc6('0x4f')][_0xdfc6('0x28')]({'plain':!![]});if(!_0x3489bb)throw new Error(_0xdfc6('0x59'));if(_0x3489bb[_0xdfc6('0x50')]===_0xdfc6('0x4f')){var _0xdeec3=_0x5040e2[_0xdfc6('0x28')]({'plain':!![]});var _0x2b54ff=_0xdfc6('0x29');return db[_0xdfc6('0x51')][_0xdfc6('0x4c')]({'where':{'name':_0x2b54ff,'userProfileId':_0x3489bb[_0xdfc6('0x52')]},'raw':!![]})[_0xdfc6('0x2b')](function(_0xdd661d){if(_0xdd661d&&_0xdd661d[_0xdfc6('0x53')]===0x0){return db[_0xdfc6('0x2a')][_0xdfc6('0x4d')]({'name':_0xdeec3[_0xdfc6('0x2e')],'resourceId':_0xdeec3['id'],'type':_0xdd661d['name'],'sectionId':_0xdd661d['id']},{})[_0xdfc6('0x2b')](function(){return _0x5040e2;});}else{return _0x5040e2;}})[_0xdfc6('0x48')](function(_0x54e74d){logger[_0xdfc6('0x2c')](_0xdfc6('0x54'),_0x54e74d);throw _0x54e74d;});}return _0x5040e2;});}})['then'](respondWithResult(_0xe94724,0xc9))[_0xdfc6('0x48')](handleError(_0xe94724,null));};exports[_0xdfc6('0x26')]=function(_0x4022a8,_0x17d69){if(_0x4022a8[_0xdfc6('0x4e')]['id']){delete _0x4022a8['body']['id'];}return db[_0xdfc6('0x45')][_0xdfc6('0x4c')]({'where':{'id':_0x4022a8[_0xdfc6('0x4a')]['id']}})[_0xdfc6('0x2b')](handleEntityNotFound(_0x17d69,null))['then'](saveUpdates(_0x4022a8[_0xdfc6('0x4e')],null))[_0xdfc6('0x2b')](respondWithResult(_0x17d69,null))['catch'](handleError(_0x17d69,null));};exports[_0xdfc6('0x27')]=function(_0x4dda6,_0x2389ea){return db[_0xdfc6('0x45')][_0xdfc6('0x4c')]({'where':{'id':_0x4dda6[_0xdfc6('0x4a')]['id']}})[_0xdfc6('0x2b')](handleEntityNotFound(_0x2389ea,null))[_0xdfc6('0x2b')](removeEntity(_0x2389ea,null))['catch'](handleError(_0x2389ea,null));};exports[_0xdfc6('0x5a')]=function(_0x229a39,_0x3d7d32,_0x2d791f){var _0x4e58d6={'raw':!![],'where':{}};var _0xa0b24c={};var _0xd63c3d={'count':0x0,'rows':[]};return db[_0xdfc6('0x45')][_0xdfc6('0x5b')]({'where':{'id':_0x229a39[_0xdfc6('0x4a')]['id']}})[_0xdfc6('0x2b')](handleEntityNotFound(_0x3d7d32,null))[_0xdfc6('0x2b')](function(_0x9d37f5){if(_0x9d37f5){_0xa0b24c['model']=_['keys'](db[_0xdfc6('0x5c')]['rawAttributes']);_0xa0b24c[_0xdfc6('0x35')]=_['keys'](_0x229a39[_0xdfc6('0x35')]);_0xa0b24c[_0xdfc6('0x37')]=_[_0xdfc6('0x38')](_0xa0b24c['model'],_0xa0b24c['query']);_0x4e58d6[_0xdfc6('0x3a')]=_[_0xdfc6('0x38')](_0xa0b24c[_0xdfc6('0x34')],qs[_0xdfc6('0x39')](_0x229a39['query'][_0xdfc6('0x39')]));_0x4e58d6['attributes']=_0x4e58d6[_0xdfc6('0x3a')][_0xdfc6('0x3b')]?_0x4e58d6[_0xdfc6('0x3a')]:_0xa0b24c[_0xdfc6('0x34')];if(!_0x229a39[_0xdfc6('0x35')]['hasOwnProperty']('nolimit')){_0x4e58d6['limit']=qs[_0xdfc6('0x20')](_0x229a39[_0xdfc6('0x35')]['limit']);_0x4e58d6[_0xdfc6('0x1e')]=qs[_0xdfc6('0x1e')](_0x229a39[_0xdfc6('0x35')][_0xdfc6('0x1e')]);}_0x4e58d6[_0xdfc6('0x3e')]=qs[_0xdfc6('0x3f')](_0x229a39[_0xdfc6('0x35')][_0xdfc6('0x3f')]);_0x4e58d6[_0xdfc6('0x40')]=qs[_0xdfc6('0x37')](_[_0xdfc6('0x5d')](_0x229a39[_0xdfc6('0x35')],_0xa0b24c['filters']));_0x4e58d6[_0xdfc6('0x40')][_0xdfc6('0x5e')]=_0x9d37f5['id'];if(_0x229a39[_0xdfc6('0x35')]['filter']){_0x4e58d6['where']=_['merge'](_0x4e58d6[_0xdfc6('0x40')],{'$or':_['map'](_0x4e58d6[_0xdfc6('0x3a')],function(_0x4d588d){var _0x2f8d1d={};_0x2f8d1d[_0x4d588d]={'$like':'%'+_0x229a39['query'][_0xdfc6('0x41')]+'%'};return _0x2f8d1d;})});}_0x4e58d6=_['merge']({},_0x4e58d6,_0x229a39[_0xdfc6('0x44')]);return db['JscriptySessionReport'][_0xdfc6('0x21')]({'where':_0x4e58d6['where']})[_0xdfc6('0x2b')](function(_0x5708bb){_0xd63c3d[_0xdfc6('0x21')]=_0x5708bb;if(_0x229a39[_0xdfc6('0x35')][_0xdfc6('0x46')]){_0x4e58d6[_0xdfc6('0x4b')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0xdfc6('0x47')](_0x4e58d6);})['then'](function(_0x364fae){_0xd63c3d[_0xdfc6('0x5f')]=_0x364fae;return _0xd63c3d;});}})[_0xdfc6('0x2b')](respondWithFilteredResult(_0x3d7d32,_0x4e58d6))[_0xdfc6('0x48')](handleError(_0x3d7d32,null));};exports[_0xdfc6('0x60')]=function(_0x26a2f6,_0x2c15ed,_0x19a049){var _0x3c02b3={'raw':!![],'where':{}};var _0x534af5={};var _0x4e244d={'count':0x0,'rows':[]};return db[_0xdfc6('0x45')][_0xdfc6('0x5b')]({'where':{'id':_0x26a2f6[_0xdfc6('0x4a')]['id']}})[_0xdfc6('0x2b')](handleEntityNotFound(_0x2c15ed,null))['then'](function(_0x1b1454){if(_0x1b1454){_0x534af5[_0xdfc6('0x34')]=_[_0xdfc6('0x36')](db[_0xdfc6('0x61')][_0xdfc6('0x31')]);_0x534af5[_0xdfc6('0x35')]=_[_0xdfc6('0x36')](_0x26a2f6[_0xdfc6('0x35')]);_0x534af5[_0xdfc6('0x37')]=_[_0xdfc6('0x38')](_0x534af5['model'],_0x534af5[_0xdfc6('0x35')]);_0x3c02b3['attributes']=_['intersection'](_0x534af5[_0xdfc6('0x34')],qs[_0xdfc6('0x39')](_0x26a2f6[_0xdfc6('0x35')][_0xdfc6('0x39')]));_0x3c02b3[_0xdfc6('0x3a')]=_0x3c02b3[_0xdfc6('0x3a')][_0xdfc6('0x3b')]?_0x3c02b3[_0xdfc6('0x3a')]:_0x534af5[_0xdfc6('0x34')];if(!_0x26a2f6[_0xdfc6('0x35')]['hasOwnProperty']('nolimit')){_0x3c02b3[_0xdfc6('0x20')]=qs[_0xdfc6('0x20')](_0x26a2f6[_0xdfc6('0x35')][_0xdfc6('0x20')]);_0x3c02b3[_0xdfc6('0x1e')]=qs[_0xdfc6('0x1e')](_0x26a2f6[_0xdfc6('0x35')][_0xdfc6('0x1e')]);}_0x3c02b3[_0xdfc6('0x3e')]=qs['sort'](_0x26a2f6[_0xdfc6('0x35')][_0xdfc6('0x3f')]);_0x3c02b3['where']=qs[_0xdfc6('0x37')](_['pick'](_0x26a2f6['query'],_0x534af5[_0xdfc6('0x37')]));_0x3c02b3['where'][_0xdfc6('0x5e')]=_0x1b1454['id'];if(_0x26a2f6[_0xdfc6('0x35')][_0xdfc6('0x41')]){_0x3c02b3[_0xdfc6('0x40')]=_[_0xdfc6('0x43')](_0x3c02b3[_0xdfc6('0x40')],{'$or':_['map'](_0x3c02b3[_0xdfc6('0x3a')],function(_0x350a79){var _0x474496={};_0x474496[_0x350a79]={'$like':'%'+_0x26a2f6[_0xdfc6('0x35')][_0xdfc6('0x41')]+'%'};return _0x474496;})});}_0x3c02b3=_[_0xdfc6('0x43')]({},_0x3c02b3,_0x26a2f6[_0xdfc6('0x44')]);return db[_0xdfc6('0x61')]['count']({'where':_0x3c02b3[_0xdfc6('0x40')]})[_0xdfc6('0x2b')](function(_0x2774f8){_0x4e244d[_0xdfc6('0x21')]=_0x2774f8;if(_0x26a2f6['query']['includeAll']){_0x3c02b3[_0xdfc6('0x4b')]=[{'all':!![]}];}return db['JscriptyAnswerReport'][_0xdfc6('0x47')](_0x3c02b3);})[_0xdfc6('0x2b')](function(_0x527a27){_0x4e244d[_0xdfc6('0x5f')]=_0x527a27;return _0x4e244d;});}})[_0xdfc6('0x2b')](respondWithFilteredResult(_0x2c15ed,_0x3c02b3))['catch'](handleError(_0x2c15ed,null));};function char(_0x51e414){return'number'===typeof _0x51e414?String['fromCharCode'][_0xdfc6('0x23')](null,arguments):_0x51e414;}function needsEncapsulation(_0x35f4bc){return!!_0x35f4bc&&(_0x35f4bc[_0xdfc6('0x62')]()['indexOf'](char(0xd))>=0x0||_0x35f4bc[_0xdfc6('0x62')]()['indexOf'](char(0xa))>=0x0||_0x35f4bc[_0xdfc6('0x62')]()['indexOf'](char(0x2c))>=0x0||_0x35f4bc[_0xdfc6('0x62')]()[_0xdfc6('0x63')](char(0x22))>=0x0);}function encapsulate(_0x40352d){var _0x2b8c7c=char(0x22),_0x29dfb2='\x5c'+char(0x22),_0x2536dd=_0x40352d[_0xdfc6('0x62')]()[_0xdfc6('0x64')](new RegExp(_0x2b8c7c,'g'),_0x29dfb2);return _0x2b8c7c+_0x2536dd+_0x2b8c7c;}exports[_0xdfc6('0x65')]=function(_0x5362e7,_0x3359d,_0x4d5614){var _0x5bad7c,_0x8550d6;var _0x3ef86f={'where':{'ProjectId':_0x5362e7[_0xdfc6('0x4a')]['id']}};if(_0x5362e7['query'][_0xdfc6('0x66')]){_0x3ef86f[_0xdfc6('0x40')][_0xdfc6('0x67')]=JSON[_0xdfc6('0x68')](_0x5362e7['query']['startTime']);}return db['JscriptySessionReport'][_0xdfc6('0x47')](_0x3ef86f)[_0xdfc6('0x2b')](handleEntityNotFound(_0x3359d,null))[_0xdfc6('0x2b')](function(_0x23dc2c){if(_0x23dc2c){_0x5bad7c=_0x23dc2c;return db['JscriptyQuestionReport'][_0xdfc6('0x47')]({'where':{'SessionId':{'$in':_[_0xdfc6('0x30')](_0x5bad7c,'id')},'ProjectId':_0x5362e7['params']['id']},'order':_0xdfc6('0x69')});}})[_0xdfc6('0x2b')](handleEntityNotFound(_0x3359d,null))[_0xdfc6('0x2b')](function(_0x4a837d){if(_0x4a837d){_0x8550d6=_0x4a837d;var _0x5dcd3e={};for(var _0x214e3f=0x0,_0x4e5b3a=_0x8550d6['length'];_0x214e3f<_0x4e5b3a;_0x214e3f++){if(!_0x5dcd3e['hasOwnProperty'](_0x8550d6[_0x214e3f]['questionId'])){_0x5dcd3e[_0x8550d6[_0x214e3f]['questionId']]=needsEncapsulation(_0x8550d6[_0x214e3f]['question'])?encapsulate(_0x8550d6[_0x214e3f]['question']):_0x8550d6[_0x214e3f][_0xdfc6('0x6a')];}}var _0x7ad4d1=[],_0xfcb60a={};for(var _0xf18510=0x0,_0x386994=_0x5bad7c[_0xdfc6('0x3b')];_0xf18510<_0x386994;_0xf18510++){_0xfcb60a={'ProjectId':_0x5362e7[_0xdfc6('0x4a')]['id'],'SessionId':_0x5bad7c[_0xf18510]['id'],'StartTime':moment(_0x5bad7c[_0xf18510][_0xdfc6('0x67')])['format'](_0xdfc6('0x6b'))};for(var _0x40513b=0x0,_0x9524f5=_0x8550d6[_0xdfc6('0x3b')];_0x40513b<_0x9524f5;_0x40513b++){if(_0x8550d6[_0x40513b][_0xdfc6('0x6c')]==_0x5bad7c[_0xf18510]['id']&&_0x5dcd3e['hasOwnProperty'](_0x8550d6[_0x40513b][_0xdfc6('0x6d')])){_0xfcb60a[_0x5dcd3e[_0x8550d6[_0x40513b][_0xdfc6('0x6d')]]]=_0x8550d6[_0x40513b][_0xdfc6('0x6e')];}}for(var _0x1bb1fe in _0x5dcd3e){if(!_0xfcb60a[_0xdfc6('0x3c')](_0x5dcd3e[_0x1bb1fe])){_0xfcb60a[_0x5dcd3e[_0x1bb1fe]]=null;}}_0x7ad4d1[_0xdfc6('0x6f')](_0xfcb60a);}return _0x7ad4d1;}})[_0xdfc6('0x2b')](function(_0xc60e76){if(!_[_0xdfc6('0x70')](_0xc60e76)){var _0x4d021d=toCsv(_0xc60e76);var _0x3701f3=Date[_0xdfc6('0x71')]();fs['writeFileSync'](util[_0xdfc6('0x72')](_0xdfc6('0x73'),_0x5362e7[_0xdfc6('0x4a')]['id'],_0x3701f3),_0x4d021d);_0x3359d[_0xdfc6('0x74')](_0xdfc6('0x75'),_0xdfc6('0x76')+util[_0xdfc6('0x72')](_0xdfc6('0x77'),_0x5362e7[_0xdfc6('0x4a')]['id'],_0x3701f3));_0x3359d['setHeader'](_0xdfc6('0x78'),_0xdfc6('0x79'));return _0x3359d['download'](util[_0xdfc6('0x72')](_0xdfc6('0x73'),_0x5362e7[_0xdfc6('0x4a')]['id'],_0x3701f3));}else{return _0x3359d[_0xdfc6('0x1a')](0xcc);}})[_0xdfc6('0x48')](handleError(_0x3359d,null));};
\ No newline at end of file
+var _0xdac7=['findAll','rows','catch','show','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','createdAt','updatedAt','omit','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getSessions','findOne','JscriptySessionReport','ProjectId','JscriptyAnswerReport','hasOwnProperty','number','fromCharCode','toString','indexOf','getSummary','starttime','parse','JscriptyQuestionReport','question','format','YYYY-MM-DD\x20HH:mm:ss','questionId','push','isEmpty','now','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','download','eml-format','rimraf','moment','bluebird','mustache','util','ejs','fs-extra','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','update','destroy','then','get','Projects','error','stack','name','index','map','rawAttributes','fieldName','type','key','query','keys','filters','attributes','intersection','model','fields','length','nolimit','order','sort','where','pick','merge','filter','options','JscriptyProject','include'];(function(_0x480f4a,_0x2ea3f8){var _0xdccb7d=function(_0x151258){while(--_0x151258){_0x480f4a['push'](_0x480f4a['shift']());}};_0xdccb7d(++_0x2ea3f8);}(_0xdac7,0x180));var _0x7dac=function(_0xce5f09,_0x3ca5b6){_0xce5f09=_0xce5f09-0x0;var _0x2e403a=_0xdac7[_0xce5f09];return _0x2e403a;};'use strict';var emlformat=require(_0x7dac('0x0'));var rimraf=require(_0x7dac('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7dac('0x2'));var BPromise=require(_0x7dac('0x3'));var Mustache=require(_0x7dac('0x4'));var util=require(_0x7dac('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x7dac('0x6'));var fs=require('fs');var fs_extra=require(_0x7dac('0x7'));var _=require('lodash');var squel=require(_0x7dac('0x8'));var crypto=require('crypto');var jsforce=require(_0x7dac('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x7dac('0xa'));var querystring=require(_0x7dac('0xb'));var Papa=require(_0x7dac('0xc'));var Redis=require(_0x7dac('0xd'));var authService=require(_0x7dac('0xe'));var qs=require(_0x7dac('0xf'));var as=require(_0x7dac('0x10'));var hardwareService=require(_0x7dac('0x11'));var logger=require(_0x7dac('0x12'))(_0x7dac('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7dac('0x14'))['db'];function respondWithStatusCode(_0x5dd35a,_0x42fbe3){_0x42fbe3=_0x42fbe3||0xcc;return function(_0x4e5e65){if(_0x4e5e65){return _0x5dd35a[_0x7dac('0x15')](_0x42fbe3);}return _0x5dd35a[_0x7dac('0x16')](_0x42fbe3)[_0x7dac('0x17')]();};}function respondWithResult(_0x168ea6,_0x1efd1b){_0x1efd1b=_0x1efd1b||0xc8;return function(_0x2c5dae){if(_0x2c5dae){return _0x168ea6[_0x7dac('0x16')](_0x1efd1b)['json'](_0x2c5dae);}};}function respondWithFilteredResult(_0x17442e,_0x5171e4){return function(_0x507951){if(_0x507951){var _0x218a2a=typeof _0x5171e4[_0x7dac('0x18')]===_0x7dac('0x19')&&typeof _0x5171e4[_0x7dac('0x1a')]===_0x7dac('0x19');var _0x48f97c=_0x507951[_0x7dac('0x1b')];var _0x4c1f4f=_0x218a2a?0x0:_0x5171e4[_0x7dac('0x18')];var _0x4639e2=_0x218a2a?_0x507951[_0x7dac('0x1b')]:_0x5171e4[_0x7dac('0x18')]+_0x5171e4[_0x7dac('0x1a')];var _0x3b403f;if(_0x4639e2>=_0x48f97c){_0x4639e2=_0x48f97c;_0x3b403f=0xc8;}else{_0x3b403f=0xce;}_0x17442e[_0x7dac('0x16')](_0x3b403f);return _0x17442e[_0x7dac('0x1c')](_0x7dac('0x1d'),_0x4c1f4f+'-'+_0x4639e2+'/'+_0x48f97c)[_0x7dac('0x1e')](_0x507951);}return null;};}function patchUpdates(_0x18f993){return function(_0xb095bb){try{jsonpatch[_0x7dac('0x1f')](_0xb095bb,_0x18f993,!![]);}catch(_0x356d93){return BPromise['reject'](_0x356d93);}return _0xb095bb['save']();};}function saveUpdates(_0x12cd84,_0x4c9fda){return function(_0x137c18){if(_0x137c18){return _0x137c18[_0x7dac('0x20')](_0x12cd84)['then'](function(_0x41f1a2){return _0x41f1a2;});}return null;};}function removeEntity(_0x417172,_0x4f4664){return function(_0xbdabba){if(_0xbdabba){return _0xbdabba[_0x7dac('0x21')]()[_0x7dac('0x22')](function(){var _0x179881=_0xbdabba[_0x7dac('0x23')]({'plain':!![]});var _0x3c9967=_0x7dac('0x24');return db['UserProfileResource'][_0x7dac('0x21')]({'where':{'type':_0x3c9967,'resourceId':_0x179881['id']}})[_0x7dac('0x22')](function(){return _0xbdabba;});})[_0x7dac('0x22')](function(){_0x417172['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x456264,_0xaa5aae){return function(_0x7ac43c){if(!_0x7ac43c){_0x456264[_0x7dac('0x15')](0x194);}return _0x7ac43c;};}function handleError(_0xbad8a1,_0x3d47e9){_0x3d47e9=_0x3d47e9||0x1f4;return function(_0x3f76fd){logger[_0x7dac('0x25')](_0x3f76fd[_0x7dac('0x26')]);if(_0x3f76fd[_0x7dac('0x27')]){delete _0x3f76fd[_0x7dac('0x27')];}_0xbad8a1['status'](_0x3d47e9)['send'](_0x3f76fd);};}exports[_0x7dac('0x28')]=function(_0xa92c4b,_0x1647be){var _0x4e6680={},_0x4396f2={},_0x823620={'count':0x0,'rows':[]};var _0x3efddf=_[_0x7dac('0x29')](db['JscriptyProject'][_0x7dac('0x2a')],function(_0x50fdfa){return{'name':_0x50fdfa[_0x7dac('0x2b')],'type':_0x50fdfa[_0x7dac('0x2c')][_0x7dac('0x2d')]};});_0x4396f2['model']=_[_0x7dac('0x29')](_0x3efddf,_0x7dac('0x27'));_0x4396f2[_0x7dac('0x2e')]=_[_0x7dac('0x2f')](_0xa92c4b[_0x7dac('0x2e')]);_0x4396f2[_0x7dac('0x30')]=_['intersection'](_0x4396f2['model'],_0x4396f2['query']);_0x4e6680[_0x7dac('0x31')]=_[_0x7dac('0x32')](_0x4396f2[_0x7dac('0x33')],qs['fields'](_0xa92c4b[_0x7dac('0x2e')][_0x7dac('0x34')]));_0x4e6680[_0x7dac('0x31')]=_0x4e6680['attributes'][_0x7dac('0x35')]?_0x4e6680[_0x7dac('0x31')]:_0x4396f2[_0x7dac('0x33')];if(!_0xa92c4b[_0x7dac('0x2e')]['hasOwnProperty'](_0x7dac('0x36'))){_0x4e6680[_0x7dac('0x1a')]=qs[_0x7dac('0x1a')](_0xa92c4b[_0x7dac('0x2e')][_0x7dac('0x1a')]);_0x4e6680[_0x7dac('0x18')]=qs['offset'](_0xa92c4b[_0x7dac('0x2e')]['offset']);}_0x4e6680[_0x7dac('0x37')]=qs['sort'](_0xa92c4b[_0x7dac('0x2e')][_0x7dac('0x38')]);_0x4e6680[_0x7dac('0x39')]=qs[_0x7dac('0x30')](_[_0x7dac('0x3a')](_0xa92c4b['query'],_0x4396f2['filters']),_0x3efddf);if(_0xa92c4b[_0x7dac('0x2e')]['filter']){_0x4e6680[_0x7dac('0x39')]=_[_0x7dac('0x3b')](_0x4e6680[_0x7dac('0x39')],{'$or':_[_0x7dac('0x29')](_0x3efddf,function(_0x20bd55){if(_0x20bd55[_0x7dac('0x2c')]!=='VIRTUAL'){var _0x57baf2={};_0x57baf2[_0x20bd55[_0x7dac('0x27')]]={'$like':'%'+_0xa92c4b[_0x7dac('0x2e')][_0x7dac('0x3c')]+'%'};return _0x57baf2;}})});}_0x4e6680=_[_0x7dac('0x3b')]({},_0x4e6680,_0xa92c4b[_0x7dac('0x3d')]);var _0x186894={'where':_0x4e6680['where']};return db[_0x7dac('0x3e')][_0x7dac('0x1b')](_0x186894)[_0x7dac('0x22')](function(_0x20346f){_0x823620['count']=_0x20346f;if(_0xa92c4b[_0x7dac('0x2e')]['includeAll']){_0x4e6680[_0x7dac('0x3f')]=[{'all':!![]}];}return db[_0x7dac('0x3e')][_0x7dac('0x40')](_0x4e6680);})[_0x7dac('0x22')](function(_0x1ccf40){_0x823620[_0x7dac('0x41')]=_0x1ccf40;return _0x823620;})['then'](respondWithFilteredResult(_0x1647be,_0x4e6680))[_0x7dac('0x42')](handleError(_0x1647be,null));};exports[_0x7dac('0x43')]=function(_0x12e250,_0x10c30c){var _0x261d11={'raw':![],'where':{'id':_0x12e250[_0x7dac('0x44')]['id']}},_0x310654={};_0x310654[_0x7dac('0x33')]=_[_0x7dac('0x2f')](db[_0x7dac('0x3e')][_0x7dac('0x2a')]);_0x310654['query']=_['keys'](_0x12e250[_0x7dac('0x2e')]);_0x310654[_0x7dac('0x30')]=_['intersection'](_0x310654[_0x7dac('0x33')],_0x310654[_0x7dac('0x2e')]);_0x261d11[_0x7dac('0x31')]=_[_0x7dac('0x32')](_0x310654[_0x7dac('0x33')],qs['fields'](_0x12e250[_0x7dac('0x2e')][_0x7dac('0x34')]));_0x261d11['attributes']=_0x261d11[_0x7dac('0x31')][_0x7dac('0x35')]?_0x261d11['attributes']:_0x310654[_0x7dac('0x33')];if(_0x12e250[_0x7dac('0x2e')][_0x7dac('0x45')]){_0x261d11[_0x7dac('0x3f')]=[{'all':!![]}];}_0x261d11=_[_0x7dac('0x3b')]({},_0x261d11,_0x12e250[_0x7dac('0x3d')]);return db[_0x7dac('0x3e')][_0x7dac('0x46')](_0x261d11)[_0x7dac('0x22')](handleEntityNotFound(_0x10c30c,null))['then'](respondWithResult(_0x10c30c,null))[_0x7dac('0x42')](handleError(_0x10c30c,null));};exports[_0x7dac('0x47')]=function(_0x49804d,_0x8ae242){return db[_0x7dac('0x3e')][_0x7dac('0x47')](_0x49804d[_0x7dac('0x48')],{})[_0x7dac('0x22')](function(_0x14a97a){var _0x3efdc2=_0x49804d[_0x7dac('0x49')][_0x7dac('0x23')]({'plain':!![]});if(!_0x3efdc2)throw new Error(_0x7dac('0x4a'));if(_0x3efdc2[_0x7dac('0x4b')]===_0x7dac('0x49')){var _0x1da157=_0x14a97a[_0x7dac('0x23')]({'plain':!![]});var _0xc1e154='Projects';return db[_0x7dac('0x4c')]['find']({'where':{'name':_0xc1e154,'userProfileId':_0x3efdc2[_0x7dac('0x4d')]},'raw':!![]})[_0x7dac('0x22')](function(_0x4dcd63){if(_0x4dcd63&&_0x4dcd63[_0x7dac('0x4e')]===0x0){return db[_0x7dac('0x4f')][_0x7dac('0x47')]({'name':_0x1da157['name'],'resourceId':_0x1da157['id'],'type':_0x4dcd63[_0x7dac('0x27')],'sectionId':_0x4dcd63['id']},{})[_0x7dac('0x22')](function(){return _0x14a97a;});}else{return _0x14a97a;}})[_0x7dac('0x42')](function(_0x33909c){logger[_0x7dac('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x33909c);throw _0x33909c;});}return _0x14a97a;})[_0x7dac('0x22')](respondWithResult(_0x8ae242,0xc9))[_0x7dac('0x42')](handleError(_0x8ae242,null));};exports['clone']=function(_0x23671f,_0x16df9b){var _0x41a842={'where':{'id':_0x23671f[_0x7dac('0x44')]['id']}},_0x5cd59c={};_0x5cd59c[_0x7dac('0x33')]=_[_0x7dac('0x2f')](db[_0x7dac('0x3e')][_0x7dac('0x2a')]);_0x41a842[_0x7dac('0x31')]=_[_0x7dac('0x32')](_0x5cd59c['model'],qs['fields'](_0x23671f['query'][_0x7dac('0x34')]));_0x41a842[_0x7dac('0x31')]=_0x41a842['attributes'][_0x7dac('0x35')]?_0x41a842[_0x7dac('0x31')]:_0x5cd59c[_0x7dac('0x33')];if(_0x23671f[_0x7dac('0x2e')][_0x7dac('0x45')]){_0x41a842[_0x7dac('0x3f')]=[{'all':!![]}];}_0x41a842=_[_0x7dac('0x3b')]({},_0x41a842,_0x23671f[_0x7dac('0x3d')]);return db[_0x7dac('0x3e')][_0x7dac('0x46')](_0x41a842)[_0x7dac('0x22')](handleEntityNotFound(_0x16df9b,null))[_0x7dac('0x22')](function(_0x54b37d){if(_0x54b37d){var _0x3f85a9=_0x54b37d[_0x7dac('0x23')]({'plain':!![]});_0x3f85a9=qs['omit'](_0x3f85a9,['id',_0x7dac('0x50'),_0x7dac('0x51')]);_0x23671f[_0x7dac('0x48')]=_[_0x7dac('0x52')](_0x23671f['body'],['id',_0x7dac('0x50'),_0x7dac('0x51')]);return db[_0x7dac('0x3e')][_0x7dac('0x47')](_[_0x7dac('0x3b')](_0x3f85a9,_0x23671f['body']),{'include':_0x23671f[_0x7dac('0x2e')][_0x7dac('0x45')]?[{'all':!![]}]:undefined})[_0x7dac('0x22')](function(_0x5c4229){var _0x5bc558=_0x23671f[_0x7dac('0x49')][_0x7dac('0x23')]({'plain':!![]});if(!_0x5bc558)throw new Error(_0x7dac('0x4a'));if(_0x5bc558[_0x7dac('0x4b')]===_0x7dac('0x49')){var _0x49c004=_0x5c4229['get']({'plain':!![]});var _0x4b3d12=_0x7dac('0x24');return db[_0x7dac('0x4c')][_0x7dac('0x46')]({'where':{'name':_0x4b3d12,'userProfileId':_0x5bc558[_0x7dac('0x4d')]},'raw':!![]})[_0x7dac('0x22')](function(_0x4a7a49){if(_0x4a7a49&&_0x4a7a49['autoAssociation']===0x0){return db[_0x7dac('0x4f')]['create']({'name':_0x49c004['name'],'resourceId':_0x49c004['id'],'type':_0x4a7a49[_0x7dac('0x27')],'sectionId':_0x4a7a49['id']},{})[_0x7dac('0x22')](function(){return _0x5c4229;});}else{return _0x5c4229;}})[_0x7dac('0x42')](function(_0x1bc2eb){logger['error'](_0x7dac('0x53'),_0x1bc2eb);throw _0x1bc2eb;});}return _0x5c4229;});}})['then'](respondWithResult(_0x16df9b,0xc9))[_0x7dac('0x42')](handleError(_0x16df9b,null));};exports[_0x7dac('0x20')]=function(_0x3ed600,_0x3e281f){if(_0x3ed600[_0x7dac('0x48')]['id']){delete _0x3ed600[_0x7dac('0x48')]['id'];}return db['JscriptyProject']['find']({'where':{'id':_0x3ed600[_0x7dac('0x44')]['id']}})[_0x7dac('0x22')](handleEntityNotFound(_0x3e281f,null))[_0x7dac('0x22')](saveUpdates(_0x3ed600[_0x7dac('0x48')],null))[_0x7dac('0x22')](respondWithResult(_0x3e281f,null))[_0x7dac('0x42')](handleError(_0x3e281f,null));};exports[_0x7dac('0x21')]=function(_0x5dc5d6,_0x3ed1f8){return db[_0x7dac('0x3e')][_0x7dac('0x46')]({'where':{'id':_0x5dc5d6[_0x7dac('0x44')]['id']}})['then'](handleEntityNotFound(_0x3ed1f8,null))[_0x7dac('0x22')](removeEntity(_0x3ed1f8,null))[_0x7dac('0x42')](handleError(_0x3ed1f8,null));};exports[_0x7dac('0x54')]=function(_0x1d1c6e,_0x3830c3,_0x215972){var _0x4a02a8={'raw':!![],'where':{}};var _0xf25c={};var _0x498b07={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x7dac('0x55')]({'where':{'id':_0x1d1c6e['params']['id']}})[_0x7dac('0x22')](handleEntityNotFound(_0x3830c3,null))['then'](function(_0x561f07){if(_0x561f07){_0xf25c[_0x7dac('0x33')]=_[_0x7dac('0x2f')](db[_0x7dac('0x56')][_0x7dac('0x2a')]);_0xf25c[_0x7dac('0x2e')]=_['keys'](_0x1d1c6e[_0x7dac('0x2e')]);_0xf25c[_0x7dac('0x30')]=_[_0x7dac('0x32')](_0xf25c['model'],_0xf25c[_0x7dac('0x2e')]);_0x4a02a8[_0x7dac('0x31')]=_[_0x7dac('0x32')](_0xf25c[_0x7dac('0x33')],qs['fields'](_0x1d1c6e[_0x7dac('0x2e')][_0x7dac('0x34')]));_0x4a02a8[_0x7dac('0x31')]=_0x4a02a8[_0x7dac('0x31')][_0x7dac('0x35')]?_0x4a02a8[_0x7dac('0x31')]:_0xf25c[_0x7dac('0x33')];if(!_0x1d1c6e[_0x7dac('0x2e')]['hasOwnProperty'](_0x7dac('0x36'))){_0x4a02a8[_0x7dac('0x1a')]=qs[_0x7dac('0x1a')](_0x1d1c6e[_0x7dac('0x2e')][_0x7dac('0x1a')]);_0x4a02a8[_0x7dac('0x18')]=qs['offset'](_0x1d1c6e['query'][_0x7dac('0x18')]);}_0x4a02a8[_0x7dac('0x37')]=qs[_0x7dac('0x38')](_0x1d1c6e['query'][_0x7dac('0x38')]);_0x4a02a8['where']=qs['filters'](_[_0x7dac('0x3a')](_0x1d1c6e[_0x7dac('0x2e')],_0xf25c[_0x7dac('0x30')]));_0x4a02a8[_0x7dac('0x39')][_0x7dac('0x57')]=_0x561f07['id'];if(_0x1d1c6e[_0x7dac('0x2e')][_0x7dac('0x3c')]){_0x4a02a8['where']=_[_0x7dac('0x3b')](_0x4a02a8[_0x7dac('0x39')],{'$or':_[_0x7dac('0x29')](_0x4a02a8['attributes'],function(_0x28a772){var _0x5376fd={};_0x5376fd[_0x28a772]={'$like':'%'+_0x1d1c6e['query'][_0x7dac('0x3c')]+'%'};return _0x5376fd;})});}_0x4a02a8=_[_0x7dac('0x3b')]({},_0x4a02a8,_0x1d1c6e[_0x7dac('0x3d')]);return db[_0x7dac('0x56')][_0x7dac('0x1b')]({'where':_0x4a02a8[_0x7dac('0x39')]})['then'](function(_0x3f9297){_0x498b07[_0x7dac('0x1b')]=_0x3f9297;if(_0x1d1c6e[_0x7dac('0x2e')][_0x7dac('0x45')]){_0x4a02a8[_0x7dac('0x3f')]=[{'all':!![]}];}return db[_0x7dac('0x56')][_0x7dac('0x40')](_0x4a02a8);})[_0x7dac('0x22')](function(_0x2227ac){_0x498b07[_0x7dac('0x41')]=_0x2227ac;return _0x498b07;});}})[_0x7dac('0x22')](respondWithFilteredResult(_0x3830c3,_0x4a02a8))[_0x7dac('0x42')](handleError(_0x3830c3,null));};exports['getAnswers']=function(_0x1d3f22,_0xfe57b7,_0xd0cd73){var _0x2243ce={'raw':!![],'where':{}};var _0x191df7={};var _0x2df4ad={'count':0x0,'rows':[]};return db[_0x7dac('0x3e')][_0x7dac('0x55')]({'where':{'id':_0x1d3f22['params']['id']}})[_0x7dac('0x22')](handleEntityNotFound(_0xfe57b7,null))['then'](function(_0x5b3c64){if(_0x5b3c64){_0x191df7['model']=_[_0x7dac('0x2f')](db[_0x7dac('0x58')][_0x7dac('0x2a')]);_0x191df7[_0x7dac('0x2e')]=_[_0x7dac('0x2f')](_0x1d3f22[_0x7dac('0x2e')]);_0x191df7[_0x7dac('0x30')]=_[_0x7dac('0x32')](_0x191df7['model'],_0x191df7[_0x7dac('0x2e')]);_0x2243ce[_0x7dac('0x31')]=_['intersection'](_0x191df7[_0x7dac('0x33')],qs[_0x7dac('0x34')](_0x1d3f22[_0x7dac('0x2e')][_0x7dac('0x34')]));_0x2243ce[_0x7dac('0x31')]=_0x2243ce[_0x7dac('0x31')][_0x7dac('0x35')]?_0x2243ce['attributes']:_0x191df7[_0x7dac('0x33')];if(!_0x1d3f22[_0x7dac('0x2e')][_0x7dac('0x59')](_0x7dac('0x36'))){_0x2243ce['limit']=qs[_0x7dac('0x1a')](_0x1d3f22[_0x7dac('0x2e')]['limit']);_0x2243ce[_0x7dac('0x18')]=qs['offset'](_0x1d3f22[_0x7dac('0x2e')][_0x7dac('0x18')]);}_0x2243ce[_0x7dac('0x37')]=qs['sort'](_0x1d3f22[_0x7dac('0x2e')][_0x7dac('0x38')]);_0x2243ce[_0x7dac('0x39')]=qs['filters'](_['pick'](_0x1d3f22[_0x7dac('0x2e')],_0x191df7[_0x7dac('0x30')]));_0x2243ce[_0x7dac('0x39')]['ProjectId']=_0x5b3c64['id'];if(_0x1d3f22[_0x7dac('0x2e')]['filter']){_0x2243ce[_0x7dac('0x39')]=_[_0x7dac('0x3b')](_0x2243ce[_0x7dac('0x39')],{'$or':_[_0x7dac('0x29')](_0x2243ce[_0x7dac('0x31')],function(_0x44f40a){var _0x15fef4={};_0x15fef4[_0x44f40a]={'$like':'%'+_0x1d3f22[_0x7dac('0x2e')][_0x7dac('0x3c')]+'%'};return _0x15fef4;})});}_0x2243ce=_[_0x7dac('0x3b')]({},_0x2243ce,_0x1d3f22[_0x7dac('0x3d')]);return db['JscriptyAnswerReport'][_0x7dac('0x1b')]({'where':_0x2243ce[_0x7dac('0x39')]})[_0x7dac('0x22')](function(_0xe458fb){_0x2df4ad[_0x7dac('0x1b')]=_0xe458fb;if(_0x1d3f22['query'][_0x7dac('0x45')]){_0x2243ce[_0x7dac('0x3f')]=[{'all':!![]}];}return db[_0x7dac('0x58')][_0x7dac('0x40')](_0x2243ce);})[_0x7dac('0x22')](function(_0x34983b){_0x2df4ad[_0x7dac('0x41')]=_0x34983b;return _0x2df4ad;});}})[_0x7dac('0x22')](respondWithFilteredResult(_0xfe57b7,_0x2243ce))[_0x7dac('0x42')](handleError(_0xfe57b7,null));};function char(_0x4c3803){return _0x7dac('0x5a')===typeof _0x4c3803?String[_0x7dac('0x5b')]['apply'](null,arguments):_0x4c3803;}function needsEncapsulation(_0x15ed4f){return!!_0x15ed4f&&(_0x15ed4f[_0x7dac('0x5c')]()[_0x7dac('0x5d')](char(0xd))>=0x0||_0x15ed4f['toString']()[_0x7dac('0x5d')](char(0xa))>=0x0||_0x15ed4f[_0x7dac('0x5c')]()[_0x7dac('0x5d')](char(0x2c))>=0x0||_0x15ed4f['toString']()[_0x7dac('0x5d')](char(0x22))>=0x0);}function encapsulate(_0x5310a7){var _0xd1f06f=char(0x22),_0x13c27c='\x5c'+char(0x22),_0xa45efc=_0x5310a7[_0x7dac('0x5c')]()['replace'](new RegExp(_0xd1f06f,'g'),_0x13c27c);return _0xd1f06f+_0xa45efc+_0xd1f06f;}exports[_0x7dac('0x5e')]=function(_0x26fd04,_0x25366a,_0x192957){var _0x1d8e55,_0x39160c;var _0x601b79={'where':{'ProjectId':_0x26fd04[_0x7dac('0x44')]['id']}};if(_0x26fd04[_0x7dac('0x2e')]['startTime']){_0x601b79[_0x7dac('0x39')][_0x7dac('0x5f')]=JSON[_0x7dac('0x60')](_0x26fd04[_0x7dac('0x2e')]['startTime']);}return db['JscriptySessionReport'][_0x7dac('0x40')](_0x601b79)['then'](handleEntityNotFound(_0x25366a,null))[_0x7dac('0x22')](function(_0xf04e4a){if(_0xf04e4a){_0x1d8e55=_0xf04e4a;return db[_0x7dac('0x61')][_0x7dac('0x40')]({'where':{'SessionId':{'$in':_[_0x7dac('0x29')](_0x1d8e55,'id')},'ProjectId':_0x26fd04[_0x7dac('0x44')]['id']},'order':'-createdAt'});}})[_0x7dac('0x22')](handleEntityNotFound(_0x25366a,null))[_0x7dac('0x22')](function(_0x184289){if(_0x184289){_0x39160c=_0x184289;var _0x519578={};for(var _0x596aa5=0x0,_0x462554=_0x39160c[_0x7dac('0x35')];_0x596aa5<_0x462554;_0x596aa5++){if(!_0x519578[_0x7dac('0x59')](_0x39160c[_0x596aa5]['questionId'])){_0x519578[_0x39160c[_0x596aa5]['questionId']]=needsEncapsulation(_0x39160c[_0x596aa5][_0x7dac('0x62')])?encapsulate(_0x39160c[_0x596aa5][_0x7dac('0x62')]):_0x39160c[_0x596aa5]['question'];}}var _0x104d64=[],_0x213703={};for(var _0x4e47f9=0x0,_0x62042d=_0x1d8e55['length'];_0x4e47f9<_0x62042d;_0x4e47f9++){_0x213703={'ProjectId':_0x26fd04[_0x7dac('0x44')]['id'],'SessionId':_0x1d8e55[_0x4e47f9]['id'],'StartTime':moment(_0x1d8e55[_0x4e47f9][_0x7dac('0x5f')])[_0x7dac('0x63')](_0x7dac('0x64'))};for(var _0x4207eb=0x0,_0x2ec0e6=_0x39160c[_0x7dac('0x35')];_0x4207eb<_0x2ec0e6;_0x4207eb++){if(_0x39160c[_0x4207eb]['SessionId']==_0x1d8e55[_0x4e47f9]['id']&&_0x519578[_0x7dac('0x59')](_0x39160c[_0x4207eb][_0x7dac('0x65')])){_0x213703[_0x519578[_0x39160c[_0x4207eb][_0x7dac('0x65')]]]=_0x39160c[_0x4207eb]['answer'];}}for(var _0x545f06 in _0x519578){if(!_0x213703['hasOwnProperty'](_0x519578[_0x545f06])){_0x213703[_0x519578[_0x545f06]]=null;}}_0x104d64[_0x7dac('0x66')](_0x213703);}return _0x104d64;}})[_0x7dac('0x22')](function(_0x37229b){if(!_[_0x7dac('0x67')](_0x37229b)){var _0x31226e=toCsv(_0x37229b);var _0x3ba205=Date[_0x7dac('0x68')]();fs['writeFileSync'](util[_0x7dac('0x63')](_0x7dac('0x69'),_0x26fd04[_0x7dac('0x44')]['id'],_0x3ba205),_0x31226e);_0x25366a[_0x7dac('0x6a')](_0x7dac('0x6b'),_0x7dac('0x6c')+util[_0x7dac('0x63')](_0x7dac('0x6d'),_0x26fd04[_0x7dac('0x44')]['id'],_0x3ba205));_0x25366a[_0x7dac('0x6a')](_0x7dac('0x6e'),'text/csv');return _0x25366a[_0x7dac('0x6f')](util[_0x7dac('0x63')](_0x7dac('0x69'),_0x26fd04['params']['id'],_0x3ba205));}else{return _0x25366a[_0x7dac('0x15')](0xcc);}})[_0x7dac('0x42')](handleError(_0x25366a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43fd=['JscriptyProject','jscripty_projects','util','moment','bluebird','path','../../config/environment','./jscriptyProject.attributes','exports','define'];(function(_0x2312fd,_0x5d80e6){var _0x3c4db6=function(_0x2df7c9){while(--_0x2df7c9){_0x2312fd['push'](_0x2312fd['shift']());}};_0x3c4db6(++_0x5d80e6);}(_0x43fd,0x1ec));var _0xd43f=function(_0x59cb47,_0x4a5e58){_0x59cb47=_0x59cb47-0x0;var _0x453f0f=_0x43fd[_0x59cb47];return _0x453f0f;};'use strict';var _=require('lodash');var util=require(_0xd43f('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xd43f('0x1'));var BPromise=require(_0xd43f('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd43f('0x3'));var rimraf=require('rimraf');var config=require(_0xd43f('0x4'));var attributes=require(_0xd43f('0x5'));module[_0xd43f('0x6')]=function(_0x33ddff,_0x52e75f){return _0x33ddff[_0xd43f('0x7')](_0xd43f('0x8'),attributes,{'tableName':_0xd43f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1061=['request-promise','path','rimraf','../../config/environment','./jscriptyProject.attributes','exports','define','lodash','moment','bluebird'];(function(_0x168450,_0x57242c){var _0x4b68c2=function(_0x4553a9){while(--_0x4553a9){_0x168450['push'](_0x168450['shift']());}};_0x4b68c2(++_0x57242c);}(_0x1061,0x1b5));var _0x1106=function(_0x3e0862,_0x20d9c6){_0x3e0862=_0x3e0862-0x0;var _0x413849=_0x1061[_0x3e0862];return _0x413849;};'use strict';var _=require(_0x1106('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x1106('0x1'));var BPromise=require(_0x1106('0x2'));var rp=require(_0x1106('0x3'));var fs=require('fs');var path=require(_0x1106('0x4'));var rimraf=require(_0x1106('0x5'));var config=require(_0x1106('0x6'));var attributes=require(_0x1106('0x7'));module[_0x1106('0x8')]=function(_0x5120c6,_0x1f098a){return _0x5120c6[_0x1106('0x9')]('JscriptyProject',attributes,{'tableName':'jscripty_projects','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','http','info','JscriptyProject,\x20%s,\x20%s'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x480d67,_0x3110a9){_0x480d67=_0x480d67-0x0;var _0x32752b=_0xbdb7[_0x480d67];return _0x32752b;};'use strict';var _=require(_0x7bdb('0x0'));var util=require(_0x7bdb('0x1'));var moment=require(_0x7bdb('0x2'));var BPromise=require(_0x7bdb('0x3'));var rs=require(_0x7bdb('0x4'));var fs=require('fs');var Redis=require(_0x7bdb('0x5'));var db=require(_0x7bdb('0x6'))['db'];var utils=require(_0x7bdb('0x7'));var logger=require(_0x7bdb('0x8'))('rpc');var config=require(_0x7bdb('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x7bdb('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1e23a3,_0x493bde,_0x513cba){return new BPromise(function(_0x468041,_0x11a877){return client['request'](_0x1e23a3,_0x513cba)['then'](function(_0xdc2ffc){logger[_0x7bdb('0xb')](_0x7bdb('0xc'),_0x493bde,_0x7bdb('0xd'));logger[_0x7bdb('0xe')](_0x7bdb('0xf'),_0x493bde,_0x7bdb('0xd'),JSON[_0x7bdb('0x10')](_0xdc2ffc));if(_0xdc2ffc['error']){if(_0xdc2ffc['error']['code']===0x1f4){logger[_0x7bdb('0x11')](_0x7bdb('0xc'),_0x493bde,_0xdc2ffc['error'][_0x7bdb('0x12')]);return _0x11a877(_0xdc2ffc['error']['message']);}logger[_0x7bdb('0x11')](_0x7bdb('0xc'),_0x493bde,_0xdc2ffc['error']['message']);return _0x468041(_0xdc2ffc['error'][_0x7bdb('0x12')]);}else{logger[_0x7bdb('0xb')](_0x7bdb('0xc'),_0x493bde,_0x7bdb('0xd'));_0x468041(_0xdc2ffc[_0x7bdb('0x13')][_0x7bdb('0x12')]);}})[_0x7bdb('0x14')](function(_0x1b2d9b){logger['error'](_0x7bdb('0xc'),_0x493bde,_0x1b2d9b);_0x11a877(_0x1b2d9b);});});}
\ No newline at end of file
+var _0xaa88=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','then','info','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','error','JscriptyProject,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird'];(function(_0x33ff0c,_0x448c2a){var _0x44bdc2=function(_0x4f8652){while(--_0x4f8652){_0x33ff0c['push'](_0x33ff0c['shift']());}};_0x44bdc2(++_0x448c2a);}(_0xaa88,0x137));var _0x8aa8=function(_0x4953da,_0x5adaca){_0x4953da=_0x4953da-0x0;var _0x2d3780=_0xaa88[_0x4953da];return _0x2d3780;};'use strict';var _=require(_0x8aa8('0x0'));var util=require(_0x8aa8('0x1'));var moment=require(_0x8aa8('0x2'));var BPromise=require(_0x8aa8('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8aa8('0x4'));var db=require(_0x8aa8('0x5'))['db'];var utils=require(_0x8aa8('0x6'));var logger=require(_0x8aa8('0x7'))(_0x8aa8('0x8'));var config=require(_0x8aa8('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x8aa8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5264ff,_0x449d2d,_0x1ed84d){return new BPromise(function(_0x27c08d,_0x40826f){return client['request'](_0x5264ff,_0x1ed84d)[_0x8aa8('0xb')](function(_0x2d974c){logger[_0x8aa8('0xc')]('JscriptyProject,\x20%s,\x20%s',_0x449d2d,_0x8aa8('0xd'));logger[_0x8aa8('0xe')](_0x8aa8('0xf'),_0x449d2d,_0x8aa8('0xd'),JSON['stringify'](_0x2d974c));if(_0x2d974c[_0x8aa8('0x10')]){if(_0x2d974c[_0x8aa8('0x10')]['code']===0x1f4){logger[_0x8aa8('0x10')](_0x8aa8('0x11'),_0x449d2d,_0x2d974c[_0x8aa8('0x10')]['message']);return _0x40826f(_0x2d974c[_0x8aa8('0x10')][_0x8aa8('0x12')]);}logger[_0x8aa8('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x449d2d,_0x2d974c[_0x8aa8('0x10')]['message']);return _0x27c08d(_0x2d974c['error'][_0x8aa8('0x12')]);}else{logger[_0x8aa8('0xc')](_0x8aa8('0x11'),_0x449d2d,_0x8aa8('0xd'));_0x27c08d(_0x2d974c[_0x8aa8('0x13')][_0x8aa8('0x12')]);}})[_0x8aa8('0x14')](function(_0xd59fb8){logger[_0x8aa8('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x449d2d,_0xd59fb8);_0x40826f(_0xd59fb8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaad4=['create','put','/:id','update','delete','destroy','exports','multer','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','get','isAuthenticated','index','describe','show','post'];(function(_0x28aea5,_0x3bb12e){var _0x6a55f9=function(_0xf6ece8){while(--_0xf6ece8){_0x28aea5['push'](_0x28aea5['shift']());}};_0x6a55f9(++_0x3bb12e);}(_0xaad4,0x1bf));var _0x4aad=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xaad4[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0x4aad('0x0'));var util=require('util');var path=require(_0x4aad('0x1'));var timeout=require(_0x4aad('0x2'));var express=require(_0x4aad('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x4aad('0x4'));var config=require(_0x4aad('0x5'));var controller=require(_0x4aad('0x6'));router[_0x4aad('0x7')]('/',auth[_0x4aad('0x8')](),controller[_0x4aad('0x9')]);router[_0x4aad('0x7')]('/describe',auth[_0x4aad('0x8')](),controller[_0x4aad('0xa')]);router[_0x4aad('0x7')]('/:id',auth[_0x4aad('0x8')](),controller[_0x4aad('0xb')]);router[_0x4aad('0xc')]('/',auth['isAuthenticated'](),controller[_0x4aad('0xd')]);router[_0x4aad('0xe')](_0x4aad('0xf'),auth[_0x4aad('0x8')](),controller[_0x4aad('0x10')]);router[_0x4aad('0x11')](_0x4aad('0xf'),auth['isAuthenticated'](),controller[_0x4aad('0x12')]);module[_0x4aad('0x13')]=router;
\ No newline at end of file
+var _0x9a4a=['exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','get','index','/describe','describe','/:id','isAuthenticated','show','post','create','put','update','delete','destroy'];(function(_0x39096d,_0x51f8a0){var _0x13da4f=function(_0x11e6b2){while(--_0x11e6b2){_0x39096d['push'](_0x39096d['shift']());}};_0x13da4f(++_0x51f8a0);}(_0x9a4a,0x8b));var _0xa9a4=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x9a4a[_0x2641f9];return _0x585741;};'use strict';var multer=require(_0xa9a4('0x0'));var util=require(_0xa9a4('0x1'));var path=require(_0xa9a4('0x2'));var timeout=require(_0xa9a4('0x3'));var express=require('express');var router=express[_0xa9a4('0x4')]();var fs_extra=require(_0xa9a4('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xa9a4('0x6'));var config=require(_0xa9a4('0x7'));var controller=require(_0xa9a4('0x8'));router[_0xa9a4('0x9')]('/',auth['isAuthenticated'](),controller[_0xa9a4('0xa')]);router['get'](_0xa9a4('0xb'),auth['isAuthenticated'](),controller[_0xa9a4('0xc')]);router[_0xa9a4('0x9')](_0xa9a4('0xd'),auth[_0xa9a4('0xe')](),controller[_0xa9a4('0xf')]);router[_0xa9a4('0x10')]('/',auth[_0xa9a4('0xe')](),controller[_0xa9a4('0x11')]);router[_0xa9a4('0x12')](_0xa9a4('0xd'),auth[_0xa9a4('0xe')](),controller[_0xa9a4('0x13')]);router[_0xa9a4('0x14')](_0xa9a4('0xd'),auth['isAuthenticated'](),controller[_0xa9a4('0x15')]);module[_0xa9a4('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x36884e,_0x48008f){var _0x1cc367=function(_0x388a78){while(--_0x388a78){_0x36884e['push'](_0x36884e['shift']());}};_0x1cc367(++_0x48008f);}(_0x7a54,0x106));var _0x47a5=function(_0x316585,_0x188e55){_0x316585=_0x316585-0x0;var _0x45150a=_0x7a54[_0x316585];return _0x45150a;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x36884e,_0x48008f){var _0x1cc367=function(_0x388a78){while(--_0x388a78){_0x36884e['push'](_0x36884e['shift']());}};_0x1cc367(++_0x48008f);}(_0x7a54,0x106));var _0x47a5=function(_0x1140a9,_0x10ac5c){_0x1140a9=_0x1140a9-0x0;var _0x22b1f6=_0x7a54[_0x1140a9];return _0x22b1f6;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb135=['where','filter','VIRTUAL','merge','options','includeAll','include','findAll','show','params','catch','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','sendStatus','error','stack','name','send','JscriptyQuestionReport','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xb135,0xf3));var _0x5b13=function(_0x979b56,_0x45740d){_0x979b56=_0x979b56-0x0;var _0x437d97=_0xb135[_0x979b56];return _0x437d97;};'use strict';var emlformat=require(_0x5b13('0x0'));var rimraf=require(_0x5b13('0x1'));var zipdir=require(_0x5b13('0x2'));var jsonpatch=require(_0x5b13('0x3'));var rp=require(_0x5b13('0x4'));var moment=require(_0x5b13('0x5'));var BPromise=require(_0x5b13('0x6'));var Mustache=require('mustache');var util=require(_0x5b13('0x7'));var path=require(_0x5b13('0x8'));var sox=require(_0x5b13('0x9'));var csv=require(_0x5b13('0xa'));var ejs=require(_0x5b13('0xb'));var fs=require('fs');var fs_extra=require(_0x5b13('0xc'));var _=require('lodash');var squel=require(_0x5b13('0xd'));var crypto=require(_0x5b13('0xe'));var jsforce=require(_0x5b13('0xf'));var deskjs=require(_0x5b13('0x10'));var toCsv=require('to-csv');var querystring=require(_0x5b13('0x11'));var Papa=require(_0x5b13('0x12'));var Redis=require('ioredis');var authService=require(_0x5b13('0x13'));var qs=require(_0x5b13('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5b13('0x15'));var logger=require(_0x5b13('0x16'))('api');var utils=require(_0x5b13('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x5b13('0x18'));var db=require(_0x5b13('0x19'))['db'];function respondWithStatusCode(_0x680104,_0x459bb1){_0x459bb1=_0x459bb1||0xcc;return function(_0x9277d9){if(_0x9277d9){return _0x680104['sendStatus'](_0x459bb1);}return _0x680104[_0x5b13('0x1a')](_0x459bb1)[_0x5b13('0x1b')]();};}function respondWithResult(_0xe8ddfc,_0x1b9f29){_0x1b9f29=_0x1b9f29||0xc8;return function(_0x18b464){if(_0x18b464){return _0xe8ddfc[_0x5b13('0x1a')](_0x1b9f29)[_0x5b13('0x1c')](_0x18b464);}};}function respondWithFilteredResult(_0x570403,_0x483480){return function(_0x3cc8e0){if(_0x3cc8e0){var _0x25ed40=typeof _0x483480[_0x5b13('0x1d')]===_0x5b13('0x1e')&&typeof _0x483480[_0x5b13('0x1f')]===_0x5b13('0x1e');var _0x136042=_0x3cc8e0[_0x5b13('0x20')];var _0x4394d5=_0x25ed40?0x0:_0x483480[_0x5b13('0x1d')];var _0x271012=_0x25ed40?_0x3cc8e0[_0x5b13('0x20')]:_0x483480['offset']+_0x483480[_0x5b13('0x1f')];var _0x33085d;if(_0x271012>=_0x136042){_0x271012=_0x136042;_0x33085d=0xc8;}else{_0x33085d=0xce;}_0x570403[_0x5b13('0x1a')](_0x33085d);return _0x570403[_0x5b13('0x21')](_0x5b13('0x22'),_0x4394d5+'-'+_0x271012+'/'+_0x136042)[_0x5b13('0x1c')](_0x3cc8e0);}return null;};}function patchUpdates(_0x5e6214){return function(_0x2fc70a){try{jsonpatch[_0x5b13('0x23')](_0x2fc70a,_0x5e6214,!![]);}catch(_0x16f239){return BPromise['reject'](_0x16f239);}return _0x2fc70a['save']();};}function saveUpdates(_0x3b52bc,_0x3d68ad){return function(_0x191c24){if(_0x191c24){return _0x191c24[_0x5b13('0x24')](_0x3b52bc)[_0x5b13('0x25')](function(_0x56e3d1){return _0x56e3d1;});}return null;};}function removeEntity(_0x34d21f,_0x2bd35b){return function(_0x499a82){if(_0x499a82){return _0x499a82[_0x5b13('0x26')]()[_0x5b13('0x25')](function(){_0x34d21f[_0x5b13('0x1a')](0xcc)[_0x5b13('0x1b')]();});}};}function handleEntityNotFound(_0xbde27,_0xc1108c){return function(_0x35edeb){if(!_0x35edeb){_0xbde27[_0x5b13('0x27')](0x194);}return _0x35edeb;};}function handleError(_0x55f4ee,_0x2c3b54){_0x2c3b54=_0x2c3b54||0x1f4;return function(_0x3d5866){logger[_0x5b13('0x28')](_0x3d5866[_0x5b13('0x29')]);if(_0x3d5866[_0x5b13('0x2a')]){delete _0x3d5866[_0x5b13('0x2a')];}_0x55f4ee[_0x5b13('0x1a')](_0x2c3b54)[_0x5b13('0x2b')](_0x3d5866);};}exports['index']=function(_0x3dbd8b,_0x3c3861){var _0x561af3={},_0x26ddaa={},_0x49c286={'count':0x0,'rows':[]};var _0x10516b=_['map'](db[_0x5b13('0x2c')][_0x5b13('0x2d')],function(_0x325ad0){return{'name':_0x325ad0[_0x5b13('0x2e')],'type':_0x325ad0[_0x5b13('0x2f')][_0x5b13('0x30')]};});_0x26ddaa[_0x5b13('0x31')]=_[_0x5b13('0x32')](_0x10516b,_0x5b13('0x2a'));_0x26ddaa[_0x5b13('0x33')]=_[_0x5b13('0x34')](_0x3dbd8b[_0x5b13('0x33')]);_0x26ddaa[_0x5b13('0x35')]=_[_0x5b13('0x36')](_0x26ddaa['model'],_0x26ddaa['query']);_0x561af3[_0x5b13('0x37')]=_[_0x5b13('0x36')](_0x26ddaa['model'],qs[_0x5b13('0x38')](_0x3dbd8b[_0x5b13('0x33')][_0x5b13('0x38')]));_0x561af3[_0x5b13('0x37')]=_0x561af3[_0x5b13('0x37')][_0x5b13('0x39')]?_0x561af3['attributes']:_0x26ddaa[_0x5b13('0x31')];if(!_0x3dbd8b['query'][_0x5b13('0x3a')]('nolimit')){_0x561af3['limit']=qs[_0x5b13('0x1f')](_0x3dbd8b['query'][_0x5b13('0x1f')]);_0x561af3[_0x5b13('0x1d')]=qs['offset'](_0x3dbd8b[_0x5b13('0x33')][_0x5b13('0x1d')]);}_0x561af3[_0x5b13('0x3b')]=qs[_0x5b13('0x3c')](_0x3dbd8b['query'][_0x5b13('0x3c')]);_0x561af3[_0x5b13('0x3d')]=qs['filters'](_['pick'](_0x3dbd8b['query'],_0x26ddaa[_0x5b13('0x35')]),_0x10516b);if(_0x3dbd8b['query'][_0x5b13('0x3e')]){_0x561af3['where']=_['merge'](_0x561af3[_0x5b13('0x3d')],{'$or':_[_0x5b13('0x32')](_0x10516b,function(_0x4b4db8){if(_0x4b4db8[_0x5b13('0x2f')]!==_0x5b13('0x3f')){var _0x3e91c5={};_0x3e91c5[_0x4b4db8[_0x5b13('0x2a')]]={'$like':'%'+_0x3dbd8b[_0x5b13('0x33')][_0x5b13('0x3e')]+'%'};return _0x3e91c5;}})});}_0x561af3=_[_0x5b13('0x40')]({},_0x561af3,_0x3dbd8b[_0x5b13('0x41')]);var _0xac0c22={'where':_0x561af3[_0x5b13('0x3d')]};return db[_0x5b13('0x2c')]['count'](_0xac0c22)[_0x5b13('0x25')](function(_0x3955c1){_0x49c286[_0x5b13('0x20')]=_0x3955c1;if(_0x3dbd8b['query'][_0x5b13('0x42')]){_0x561af3[_0x5b13('0x43')]=[{'all':!![]}];}return db['JscriptyQuestionReport'][_0x5b13('0x44')](_0x561af3);})[_0x5b13('0x25')](function(_0x4ddb5f){_0x49c286['rows']=_0x4ddb5f;return _0x49c286;})[_0x5b13('0x25')](respondWithFilteredResult(_0x3c3861,_0x561af3))['catch'](handleError(_0x3c3861,null));};exports[_0x5b13('0x45')]=function(_0x55313a,_0x4bf38e){var _0x195550={'raw':!![],'where':{'id':_0x55313a[_0x5b13('0x46')]['id']}},_0x28d4f8={};_0x28d4f8[_0x5b13('0x31')]=_[_0x5b13('0x34')](db[_0x5b13('0x2c')][_0x5b13('0x2d')]);_0x28d4f8[_0x5b13('0x33')]=_[_0x5b13('0x34')](_0x55313a[_0x5b13('0x33')]);_0x28d4f8['filters']=_[_0x5b13('0x36')](_0x28d4f8[_0x5b13('0x31')],_0x28d4f8[_0x5b13('0x33')]);_0x195550[_0x5b13('0x37')]=_[_0x5b13('0x36')](_0x28d4f8['model'],qs[_0x5b13('0x38')](_0x55313a[_0x5b13('0x33')][_0x5b13('0x38')]));_0x195550[_0x5b13('0x37')]=_0x195550[_0x5b13('0x37')][_0x5b13('0x39')]?_0x195550[_0x5b13('0x37')]:_0x28d4f8[_0x5b13('0x31')];if(_0x55313a[_0x5b13('0x33')][_0x5b13('0x42')]){_0x195550['include']=[{'all':!![]}];}_0x195550=_[_0x5b13('0x40')]({},_0x195550,_0x55313a['options']);return db[_0x5b13('0x2c')]['find'](_0x195550)[_0x5b13('0x25')](handleEntityNotFound(_0x4bf38e,null))[_0x5b13('0x25')](respondWithResult(_0x4bf38e,null))[_0x5b13('0x47')](handleError(_0x4bf38e,null));};exports[_0x5b13('0x48')]=function(_0x5b3fcd,_0x1e37f2){return db[_0x5b13('0x2c')][_0x5b13('0x48')](_0x5b3fcd[_0x5b13('0x49')],{})[_0x5b13('0x25')](respondWithResult(_0x1e37f2,0xc9))[_0x5b13('0x47')](handleError(_0x1e37f2,null));};exports[_0x5b13('0x24')]=function(_0x3c3f96,_0x5966b8){if(_0x3c3f96[_0x5b13('0x49')]['id']){delete _0x3c3f96['body']['id'];}return db[_0x5b13('0x2c')][_0x5b13('0x4a')]({'where':{'id':_0x3c3f96[_0x5b13('0x46')]['id']}})[_0x5b13('0x25')](handleEntityNotFound(_0x5966b8,null))[_0x5b13('0x25')](saveUpdates(_0x3c3f96[_0x5b13('0x49')],null))[_0x5b13('0x25')](respondWithResult(_0x5966b8,null))[_0x5b13('0x47')](handleError(_0x5966b8,null));};exports[_0x5b13('0x26')]=function(_0xb0ea9e,_0x5f2a0f){return db[_0x5b13('0x2c')][_0x5b13('0x4a')]({'where':{'id':_0xb0ea9e[_0x5b13('0x46')]['id']}})['then'](handleEntityNotFound(_0x5f2a0f,null))[_0x5b13('0x25')](removeEntity(_0x5f2a0f,null))[_0x5b13('0x47')](handleError(_0x5f2a0f,null));};exports[_0x5b13('0x4b')]=function(_0x1dcd95,_0x366514){return db[_0x5b13('0x2c')][_0x5b13('0x4b')]()[_0x5b13('0x25')](respondWithResult(_0x366514,null))[_0x5b13('0x47')](handleError(_0x366514,null));};
\ No newline at end of file
+var _0xbfe0=['then','destroy','error','name','map','JscriptyQuestionReport','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','options','find','create','body','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update'];(function(_0x3da707,_0x30c36d){var _0x342ee7=function(_0x175135){while(--_0x175135){_0x3da707['push'](_0x3da707['shift']());}};_0x342ee7(++_0x30c36d);}(_0xbfe0,0x1ed));var _0x0bfe=function(_0xffa198,_0x5a8940){_0xffa198=_0xffa198-0x0;var _0x1e4b50=_0xbfe0[_0xffa198];return _0x1e4b50;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0bfe('0x0'));var jsonpatch=require(_0x0bfe('0x1'));var rp=require(_0x0bfe('0x2'));var moment=require(_0x0bfe('0x3'));var BPromise=require(_0x0bfe('0x4'));var Mustache=require(_0x0bfe('0x5'));var util=require(_0x0bfe('0x6'));var path=require(_0x0bfe('0x7'));var sox=require(_0x0bfe('0x8'));var csv=require(_0x0bfe('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0bfe('0xa'));var _=require(_0x0bfe('0xb'));var squel=require(_0x0bfe('0xc'));var crypto=require(_0x0bfe('0xd'));var jsforce=require(_0x0bfe('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x0bfe('0xf'));var Papa=require('papaparse');var Redis=require(_0x0bfe('0x10'));var authService=require(_0x0bfe('0x11'));var qs=require(_0x0bfe('0x12'));var as=require(_0x0bfe('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0bfe('0x14'))(_0x0bfe('0x15'));var utils=require(_0x0bfe('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x0bfe('0x17'));var db=require(_0x0bfe('0x18'))['db'];function respondWithStatusCode(_0x3abe0b,_0x3a8088){_0x3a8088=_0x3a8088||0xcc;return function(_0xb77201){if(_0xb77201){return _0x3abe0b[_0x0bfe('0x19')](_0x3a8088);}return _0x3abe0b[_0x0bfe('0x1a')](_0x3a8088)[_0x0bfe('0x1b')]();};}function respondWithResult(_0x33bd87,_0x51622e){_0x51622e=_0x51622e||0xc8;return function(_0x242c8d){if(_0x242c8d){return _0x33bd87[_0x0bfe('0x1a')](_0x51622e)[_0x0bfe('0x1c')](_0x242c8d);}};}function respondWithFilteredResult(_0x1eaf06,_0x252a8f){return function(_0x20b74d){if(_0x20b74d){var _0xeb4d5a=typeof _0x252a8f[_0x0bfe('0x1d')]==='undefined'&&typeof _0x252a8f[_0x0bfe('0x1e')]===_0x0bfe('0x1f');var _0x223192=_0x20b74d[_0x0bfe('0x20')];var _0x4db956=_0xeb4d5a?0x0:_0x252a8f[_0x0bfe('0x1d')];var _0x1c9c6c=_0xeb4d5a?_0x20b74d[_0x0bfe('0x20')]:_0x252a8f[_0x0bfe('0x1d')]+_0x252a8f[_0x0bfe('0x1e')];var _0x2d4372;if(_0x1c9c6c>=_0x223192){_0x1c9c6c=_0x223192;_0x2d4372=0xc8;}else{_0x2d4372=0xce;}_0x1eaf06[_0x0bfe('0x1a')](_0x2d4372);return _0x1eaf06[_0x0bfe('0x21')](_0x0bfe('0x22'),_0x4db956+'-'+_0x1c9c6c+'/'+_0x223192)[_0x0bfe('0x1c')](_0x20b74d);}return null;};}function patchUpdates(_0x3f8c7){return function(_0x56f696){try{jsonpatch[_0x0bfe('0x23')](_0x56f696,_0x3f8c7,!![]);}catch(_0xc432ae){return BPromise[_0x0bfe('0x24')](_0xc432ae);}return _0x56f696[_0x0bfe('0x25')]();};}function saveUpdates(_0x4cfb62,_0x814fb2){return function(_0xc594bd){if(_0xc594bd){return _0xc594bd[_0x0bfe('0x26')](_0x4cfb62)[_0x0bfe('0x27')](function(_0x548fa0){return _0x548fa0;});}return null;};}function removeEntity(_0x5d488d,_0x18d7da){return function(_0x4fe8f7){if(_0x4fe8f7){return _0x4fe8f7[_0x0bfe('0x28')]()['then'](function(){_0x5d488d[_0x0bfe('0x1a')](0xcc)[_0x0bfe('0x1b')]();});}};}function handleEntityNotFound(_0x4aabbe,_0x3e0c19){return function(_0x4064b4){if(!_0x4064b4){_0x4aabbe[_0x0bfe('0x19')](0x194);}return _0x4064b4;};}function handleError(_0xe59975,_0x19284a){_0x19284a=_0x19284a||0x1f4;return function(_0x2010fe){logger[_0x0bfe('0x29')](_0x2010fe['stack']);if(_0x2010fe[_0x0bfe('0x2a')]){delete _0x2010fe['name'];}_0xe59975[_0x0bfe('0x1a')](_0x19284a)['send'](_0x2010fe);};}exports['index']=function(_0xfc2738,_0x179580){var _0x329f89={},_0x59aee8={},_0x2bbeb9={'count':0x0,'rows':[]};var _0x1cc1c5=_[_0x0bfe('0x2b')](db[_0x0bfe('0x2c')][_0x0bfe('0x2d')],function(_0x4e3db8){return{'name':_0x4e3db8[_0x0bfe('0x2e')],'type':_0x4e3db8[_0x0bfe('0x2f')]['key']};});_0x59aee8['model']=_['map'](_0x1cc1c5,_0x0bfe('0x2a'));_0x59aee8[_0x0bfe('0x30')]=_[_0x0bfe('0x31')](_0xfc2738[_0x0bfe('0x30')]);_0x59aee8['filters']=_[_0x0bfe('0x32')](_0x59aee8[_0x0bfe('0x33')],_0x59aee8['query']);_0x329f89[_0x0bfe('0x34')]=_[_0x0bfe('0x32')](_0x59aee8['model'],qs[_0x0bfe('0x35')](_0xfc2738['query'][_0x0bfe('0x35')]));_0x329f89[_0x0bfe('0x34')]=_0x329f89['attributes']['length']?_0x329f89[_0x0bfe('0x34')]:_0x59aee8[_0x0bfe('0x33')];if(!_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x36')](_0x0bfe('0x37'))){_0x329f89[_0x0bfe('0x1e')]=qs[_0x0bfe('0x1e')](_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x1e')]);_0x329f89[_0x0bfe('0x1d')]=qs[_0x0bfe('0x1d')](_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x1d')]);}_0x329f89['order']=qs[_0x0bfe('0x38')](_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x38')]);_0x329f89[_0x0bfe('0x39')]=qs[_0x0bfe('0x3a')](_[_0x0bfe('0x3b')](_0xfc2738[_0x0bfe('0x30')],_0x59aee8[_0x0bfe('0x3a')]),_0x1cc1c5);if(_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x3c')]){_0x329f89[_0x0bfe('0x39')]=_[_0x0bfe('0x3d')](_0x329f89[_0x0bfe('0x39')],{'$or':_['map'](_0x1cc1c5,function(_0x706ff9){if(_0x706ff9['type']!==_0x0bfe('0x3e')){var _0x52968d={};_0x52968d[_0x706ff9[_0x0bfe('0x2a')]]={'$like':'%'+_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x3c')]+'%'};return _0x52968d;}})});}_0x329f89=_[_0x0bfe('0x3d')]({},_0x329f89,_0xfc2738['options']);var _0x2a0a67={'where':_0x329f89[_0x0bfe('0x39')]};return db[_0x0bfe('0x2c')][_0x0bfe('0x20')](_0x2a0a67)['then'](function(_0x5e6bd1){_0x2bbeb9['count']=_0x5e6bd1;if(_0xfc2738[_0x0bfe('0x30')][_0x0bfe('0x3f')]){_0x329f89[_0x0bfe('0x40')]=[{'all':!![]}];}return db[_0x0bfe('0x2c')][_0x0bfe('0x41')](_0x329f89);})[_0x0bfe('0x27')](function(_0xf75883){_0x2bbeb9[_0x0bfe('0x42')]=_0xf75883;return _0x2bbeb9;})[_0x0bfe('0x27')](respondWithFilteredResult(_0x179580,_0x329f89))[_0x0bfe('0x43')](handleError(_0x179580,null));};exports[_0x0bfe('0x44')]=function(_0x46a1b5,_0xf7db94){var _0x5b3f88={'raw':!![],'where':{'id':_0x46a1b5[_0x0bfe('0x45')]['id']}},_0x4242cd={};_0x4242cd[_0x0bfe('0x33')]=_[_0x0bfe('0x31')](db[_0x0bfe('0x2c')][_0x0bfe('0x2d')]);_0x4242cd[_0x0bfe('0x30')]=_[_0x0bfe('0x31')](_0x46a1b5['query']);_0x4242cd[_0x0bfe('0x3a')]=_[_0x0bfe('0x32')](_0x4242cd[_0x0bfe('0x33')],_0x4242cd[_0x0bfe('0x30')]);_0x5b3f88['attributes']=_[_0x0bfe('0x32')](_0x4242cd[_0x0bfe('0x33')],qs['fields'](_0x46a1b5[_0x0bfe('0x30')][_0x0bfe('0x35')]));_0x5b3f88[_0x0bfe('0x34')]=_0x5b3f88['attributes'][_0x0bfe('0x46')]?_0x5b3f88[_0x0bfe('0x34')]:_0x4242cd[_0x0bfe('0x33')];if(_0x46a1b5[_0x0bfe('0x30')][_0x0bfe('0x3f')]){_0x5b3f88['include']=[{'all':!![]}];}_0x5b3f88=_[_0x0bfe('0x3d')]({},_0x5b3f88,_0x46a1b5[_0x0bfe('0x47')]);return db[_0x0bfe('0x2c')][_0x0bfe('0x48')](_0x5b3f88)[_0x0bfe('0x27')](handleEntityNotFound(_0xf7db94,null))[_0x0bfe('0x27')](respondWithResult(_0xf7db94,null))[_0x0bfe('0x43')](handleError(_0xf7db94,null));};exports['create']=function(_0x1ece79,_0x134cc1){return db[_0x0bfe('0x2c')][_0x0bfe('0x49')](_0x1ece79[_0x0bfe('0x4a')],{})['then'](respondWithResult(_0x134cc1,0xc9))[_0x0bfe('0x43')](handleError(_0x134cc1,null));};exports[_0x0bfe('0x26')]=function(_0x1e8311,_0x4f7eed){if(_0x1e8311[_0x0bfe('0x4a')]['id']){delete _0x1e8311['body']['id'];}return db[_0x0bfe('0x2c')][_0x0bfe('0x48')]({'where':{'id':_0x1e8311[_0x0bfe('0x45')]['id']}})[_0x0bfe('0x27')](handleEntityNotFound(_0x4f7eed,null))[_0x0bfe('0x27')](saveUpdates(_0x1e8311['body'],null))['then'](respondWithResult(_0x4f7eed,null))[_0x0bfe('0x43')](handleError(_0x4f7eed,null));};exports['destroy']=function(_0xc44efa,_0x41ca01){return db[_0x0bfe('0x2c')][_0x0bfe('0x48')]({'where':{'id':_0xc44efa[_0x0bfe('0x45')]['id']}})['then'](handleEntityNotFound(_0x41ca01,null))[_0x0bfe('0x27')](removeEntity(_0x41ca01,null))[_0x0bfe('0x43')](handleError(_0x41ca01,null));};exports[_0x0bfe('0x4b')]=function(_0x2b79d1,_0x41d258){return db[_0x0bfe('0x2c')][_0x0bfe('0x4b')]()[_0x0bfe('0x27')](respondWithResult(_0x41d258,null))['catch'](handleError(_0x41d258,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x237c=['./jscriptyQuestionReport.attributes','define','JscriptyQuestionReport','lodash','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0x237c,0x71));var _0xc237=function(_0xc6642f,_0x48e09b){_0xc6642f=_0xc6642f-0x0;var _0x2dba85=_0x237c[_0xc6642f];return _0x2dba85;};'use strict';var _=require(_0xc237('0x0'));var util=require('util');var logger=require(_0xc237('0x1'))(_0xc237('0x2'));var moment=require('moment');var BPromise=require(_0xc237('0x3'));var rp=require(_0xc237('0x4'));var fs=require('fs');var path=require(_0xc237('0x5'));var rimraf=require(_0xc237('0x6'));var config=require(_0xc237('0x7'));var attributes=require(_0xc237('0x8'));module['exports']=function(_0x35b67c,_0x52a592){return _0x35b67c[_0xc237('0x9')](_0xc237('0xa'),attributes,{'tableName':'report_jscripty_questions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x710f=['JscriptyQuestionReport','lodash','util','api','bluebird','path','rimraf','../../config/environment','./jscriptyQuestionReport.attributes','exports'];(function(_0x4640f8,_0x4e1564){var _0x4d4bd3=function(_0x10dffc){while(--_0x10dffc){_0x4640f8['push'](_0x4640f8['shift']());}};_0x4d4bd3(++_0x4e1564);}(_0x710f,0xbf));var _0xf710=function(_0x587b16,_0x4c00a0){_0x587b16=_0x587b16-0x0;var _0x464e9d=_0x710f[_0x587b16];return _0x464e9d;};'use strict';var _=require(_0xf710('0x0'));var util=require(_0xf710('0x1'));var logger=require('../../config/logger')(_0xf710('0x2'));var moment=require('moment');var BPromise=require(_0xf710('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf710('0x4'));var rimraf=require(_0xf710('0x5'));var config=require(_0xf710('0x6'));var attributes=require(_0xf710('0x7'));module[_0xf710('0x8')]=function(_0x4cc453,_0x45165c){return _0x4cc453['define'](_0xf710('0x9'),attributes,{'tableName':'report_jscripty_questions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x646b=['client','http','request','then','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x323d87,_0x4ef3f9){var _0x5e8f74=function(_0x185735){while(--_0x185735){_0x323d87['push'](_0x323d87['shift']());}};_0x5e8f74(++_0x4ef3f9);}(_0x646b,0x1c5));var _0xb646=function(_0x407461,_0x1cf61c){_0x407461=_0x407461-0x0;var _0x2b3ffa=_0x646b[_0x407461];return _0x2b3ffa;};'use strict';var _=require(_0xb646('0x0'));var util=require(_0xb646('0x1'));var moment=require(_0xb646('0x2'));var BPromise=require('bluebird');var rs=require(_0xb646('0x3'));var fs=require('fs');var Redis=require(_0xb646('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xb646('0x5'));var logger=require(_0xb646('0x6'))(_0xb646('0x7'));var config=require(_0xb646('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb646('0x9')][_0xb646('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x12c836,_0x59e511,_0x4c5934){return new BPromise(function(_0x553f02,_0x40cad0){return client[_0xb646('0xb')](_0x12c836,_0x4c5934)[_0xb646('0xc')](function(_0x36d13c){logger['info'](_0xb646('0xd'),_0x59e511,_0xb646('0xe'));logger[_0xb646('0xf')](_0xb646('0x10'),_0x59e511,_0xb646('0xe'),JSON[_0xb646('0x11')](_0x36d13c));if(_0x36d13c[_0xb646('0x12')]){if(_0x36d13c[_0xb646('0x12')][_0xb646('0x13')]===0x1f4){logger[_0xb646('0x12')](_0xb646('0xd'),_0x59e511,_0x36d13c[_0xb646('0x12')][_0xb646('0x14')]);return _0x40cad0(_0x36d13c[_0xb646('0x12')][_0xb646('0x14')]);}logger[_0xb646('0x12')](_0xb646('0xd'),_0x59e511,_0x36d13c[_0xb646('0x12')][_0xb646('0x14')]);return _0x553f02(_0x36d13c[_0xb646('0x12')][_0xb646('0x14')]);}else{logger['info']('JscriptyQuestionReport,\x20%s,\x20%s',_0x59e511,_0xb646('0xe'));_0x553f02(_0x36d13c['result'][_0xb646('0x14')]);}})[_0xb646('0x15')](function(_0x48179e){logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x59e511,_0x48179e);_0x40cad0(_0x48179e);});});}
\ No newline at end of file
+var _0x33b9=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','info','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0xa46b86,_0x5c1465){var _0x417360=function(_0x4800d1){while(--_0x4800d1){_0xa46b86['push'](_0xa46b86['shift']());}};_0x417360(++_0x5c1465);}(_0x33b9,0x1c2));var _0x933b=function(_0x33b8d7,_0x2cd1cb){_0x33b8d7=_0x33b8d7-0x0;var _0x45ee71=_0x33b9[_0x33b8d7];return _0x45ee71;};'use strict';var _=require(_0x933b('0x0'));var util=require(_0x933b('0x1'));var moment=require(_0x933b('0x2'));var BPromise=require(_0x933b('0x3'));var rs=require(_0x933b('0x4'));var fs=require('fs');var Redis=require(_0x933b('0x5'));var db=require(_0x933b('0x6'))['db'];var utils=require(_0x933b('0x7'));var logger=require(_0x933b('0x8'))(_0x933b('0x9'));var config=require(_0x933b('0xa'));var jayson=require(_0x933b('0xb'));var client=jayson['client'][_0x933b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x15d848,_0x43d0d1,_0xeaf455){return new BPromise(function(_0x21b522,_0xf9bda2){return client[_0x933b('0xd')](_0x15d848,_0xeaf455)['then'](function(_0x3f876f){logger[_0x933b('0xe')](_0x933b('0xf'),_0x43d0d1,_0x933b('0x10'));logger[_0x933b('0x11')](_0x933b('0x12'),_0x43d0d1,_0x933b('0x10'),JSON[_0x933b('0x13')](_0x3f876f));if(_0x3f876f[_0x933b('0x14')]){if(_0x3f876f['error']['code']===0x1f4){logger[_0x933b('0x14')](_0x933b('0xf'),_0x43d0d1,_0x3f876f[_0x933b('0x14')][_0x933b('0x15')]);return _0xf9bda2(_0x3f876f[_0x933b('0x14')][_0x933b('0x15')]);}logger[_0x933b('0x14')](_0x933b('0xf'),_0x43d0d1,_0x3f876f[_0x933b('0x14')][_0x933b('0x15')]);return _0x21b522(_0x3f876f[_0x933b('0x14')]['message']);}else{logger[_0x933b('0xe')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x43d0d1,_0x933b('0x10'));_0x21b522(_0x3f876f[_0x933b('0x16')][_0x933b('0x15')]);}})[_0x933b('0x17')](function(_0x44ec40){logger['error'](_0x933b('0xf'),_0x43d0d1,_0x44ec40);_0xf9bda2(_0x44ec40);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef41=['path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptySessionReport.controller','get','isAuthenticated','index','/describe','describe','/:id','getQuestions','create','put','update','delete','destroy','exports','multer','util'];(function(_0x187de5,_0x13887d){var _0x18e8c8=function(_0x3c5564){while(--_0x3c5564){_0x187de5['push'](_0x187de5['shift']());}};_0x18e8c8(++_0x13887d);}(_0xef41,0x185));var _0x1ef4=function(_0xaf25ae,_0x2001c1){_0xaf25ae=_0xaf25ae-0x0;var _0x49732d=_0xef41[_0xaf25ae];return _0x49732d;};'use strict';var multer=require(_0x1ef4('0x0'));var util=require(_0x1ef4('0x1'));var path=require(_0x1ef4('0x2'));var timeout=require(_0x1ef4('0x3'));var express=require('express');var router=express[_0x1ef4('0x4')]();var fs_extra=require(_0x1ef4('0x5'));var auth=require(_0x1ef4('0x6'));var interaction=require(_0x1ef4('0x7'));var config=require(_0x1ef4('0x8'));var controller=require(_0x1ef4('0x9'));router[_0x1ef4('0xa')]('/',auth[_0x1ef4('0xb')](),controller[_0x1ef4('0xc')]);router[_0x1ef4('0xa')](_0x1ef4('0xd'),auth[_0x1ef4('0xb')](),controller[_0x1ef4('0xe')]);router['get'](_0x1ef4('0xf'),auth['isAuthenticated'](),controller['show']);router['get']('/:id/questions',auth['isAuthenticated'](),controller[_0x1ef4('0x10')]);router['post']('/',auth[_0x1ef4('0xb')](),controller[_0x1ef4('0x11')]);router[_0x1ef4('0x12')](_0x1ef4('0xf'),auth[_0x1ef4('0xb')](),controller[_0x1ef4('0x13')]);router[_0x1ef4('0x14')](_0x1ef4('0xf'),auth[_0x1ef4('0xb')](),controller[_0x1ef4('0x15')]);module[_0x1ef4('0x16')]=router;
\ No newline at end of file
+var _0x3db7=['/:id','update','delete','destroy','exports','multer','util','express','Router','fs-extra','../../components/interaction/service','./jscriptySessionReport.controller','isAuthenticated','index','get','/describe','describe','/:id/questions','getQuestions','create','put'];(function(_0x241336,_0x69290c){var _0x58073d=function(_0x412404){while(--_0x412404){_0x241336['push'](_0x241336['shift']());}};_0x58073d(++_0x69290c);}(_0x3db7,0x116));var _0x73db=function(_0x235de5,_0x15f2b0){_0x235de5=_0x235de5-0x0;var _0xffac28=_0x3db7[_0x235de5];return _0xffac28;};'use strict';var multer=require(_0x73db('0x0'));var util=require(_0x73db('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x73db('0x2'));var router=express[_0x73db('0x3')]();var fs_extra=require(_0x73db('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x73db('0x5'));var config=require('../../config/environment');var controller=require(_0x73db('0x6'));router['get']('/',auth[_0x73db('0x7')](),controller[_0x73db('0x8')]);router[_0x73db('0x9')](_0x73db('0xa'),auth[_0x73db('0x7')](),controller[_0x73db('0xb')]);router[_0x73db('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x73db('0x9')](_0x73db('0xc'),auth[_0x73db('0x7')](),controller[_0x73db('0xd')]);router['post']('/',auth[_0x73db('0x7')](),controller[_0x73db('0xe')]);router[_0x73db('0xf')](_0x73db('0x10'),auth[_0x73db('0x7')](),controller[_0x73db('0x11')]);router[_0x73db('0x12')](_0x73db('0x10'),auth[_0x73db('0x7')](),controller[_0x73db('0x13')]);module[_0x73db('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x46e3=['sequelize','DATE','starttime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','STRING','BOOLEAN','moment'];(function(_0xaac3e0,_0x538142){var _0x46aae7=function(_0x3caef5){while(--_0x3caef5){_0xaac3e0['push'](_0xaac3e0['shift']());}};_0x46aae7(++_0x538142);}(_0x46e3,0x128));var _0x346e=function(_0x51d80b,_0x40cafa){_0x51d80b=_0x51d80b-0x0;var _0x54c8e9=_0x46e3[_0x51d80b];return _0x54c8e9;};'use strict';var moment=require(_0x346e('0x0'));var Sequelize=require(_0x346e('0x1'));module['exports']={'starttime':{'type':Sequelize[_0x346e('0x2')],'set':function(_0x123cb0){this['setDataValue'](_0x346e('0x3'),_0x123cb0);this['setDataValue'](_0x346e('0x4'),moment()[_0x346e('0x5')](_0x346e('0x6')));}},'endtime':{'type':Sequelize[_0x346e('0x2')]},'membername':{'type':Sequelize['STRING']},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x346e('0x7')]},'calleridname':{'type':Sequelize[_0x346e('0x7')]},'calleridnum':{'type':Sequelize[_0x346e('0x7')]},'completed':{'type':Sequelize[_0x346e('0x8')],'defaultValue':![]}};
\ No newline at end of file
+var _0xb0ca=['STRING','BOOLEAN','sequelize','DATE','setDataValue','starttime','endtime','format'];(function(_0x319b24,_0x1b6b90){var _0x13fe1f=function(_0x8a7199){while(--_0x8a7199){_0x319b24['push'](_0x319b24['shift']());}};_0x13fe1f(++_0x1b6b90);}(_0xb0ca,0x1b2));var _0xab0c=function(_0x1a0b3d,_0x2ae5a6){_0x1a0b3d=_0x1a0b3d-0x0;var _0x3830a8=_0xb0ca[_0x1a0b3d];return _0x3830a8;};'use strict';var moment=require('moment');var Sequelize=require(_0xab0c('0x0'));module['exports']={'starttime':{'type':Sequelize[_0xab0c('0x1')],'set':function(_0x19c01b){this[_0xab0c('0x2')](_0xab0c('0x3'),_0x19c01b);this[_0xab0c('0x2')](_0xab0c('0x4'),moment()[_0xab0c('0x5')]('YYYY-MM-DD\x20HH:mm:ss'));}},'endtime':{'type':Sequelize[_0xab0c('0x1')]},'membername':{'type':Sequelize[_0xab0c('0x6')]},'projectname':{'type':Sequelize[_0xab0c('0x6')]},'queue':{'type':Sequelize[_0xab0c('0x6')]},'uniqueid':{'type':Sequelize[_0xab0c('0x6')]},'calleridname':{'type':Sequelize[_0xab0c('0x6')]},'calleridnum':{'type':Sequelize[_0xab0c('0x6')]},'completed':{'type':Sequelize[_0xab0c('0x7')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7462=['crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','stack','name','send','index','map','JscriptySessionReport','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','where','filter','merge','includeAll','include','findAll','catch','show','params','rawAttributes','options','find','create','body','destroy','describe','getQuestions','nolimit','sort','SessionId','rows','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel'];(function(_0x3f6781,_0x1b05d8){var _0x740c70=function(_0x2c4de6){while(--_0x2c4de6){_0x3f6781['push'](_0x3f6781['shift']());}};_0x740c70(++_0x1b05d8);}(_0x7462,0x122));var _0x2746=function(_0x34eb31,_0x8f0f70){_0x34eb31=_0x34eb31-0x0;var _0x254994=_0x7462[_0x34eb31];return _0x254994;};'use strict';var emlformat=require(_0x2746('0x0'));var rimraf=require(_0x2746('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x2746('0x2'));var rp=require(_0x2746('0x3'));var moment=require(_0x2746('0x4'));var BPromise=require(_0x2746('0x5'));var Mustache=require(_0x2746('0x6'));var util=require('util');var path=require(_0x2746('0x7'));var sox=require(_0x2746('0x8'));var csv=require(_0x2746('0x9'));var ejs=require(_0x2746('0xa'));var fs=require('fs');var fs_extra=require(_0x2746('0xb'));var _=require(_0x2746('0xc'));var squel=require(_0x2746('0xd'));var crypto=require(_0x2746('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x2746('0xf'));var toCsv=require(_0x2746('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x2746('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x2746('0x11'));var as=require(_0x2746('0x12'));var hardwareService=require(_0x2746('0x13'));var logger=require(_0x2746('0x14'))(_0x2746('0x15'));var utils=require('../../config/utils');var config=require(_0x2746('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1ca071,_0x58cfce){_0x58cfce=_0x58cfce||0xcc;return function(_0x19096e){if(_0x19096e){return _0x1ca071[_0x2746('0x17')](_0x58cfce);}return _0x1ca071['status'](_0x58cfce)[_0x2746('0x18')]();};}function respondWithResult(_0x118619,_0x3c15dd){_0x3c15dd=_0x3c15dd||0xc8;return function(_0x21e0a3){if(_0x21e0a3){return _0x118619[_0x2746('0x19')](_0x3c15dd)[_0x2746('0x1a')](_0x21e0a3);}};}function respondWithFilteredResult(_0x264fe2,_0xbaf3e4){return function(_0x3b61d3){if(_0x3b61d3){var _0x423082=typeof _0xbaf3e4[_0x2746('0x1b')]===_0x2746('0x1c')&&typeof _0xbaf3e4[_0x2746('0x1d')]===_0x2746('0x1c');var _0x4bc1e2=_0x3b61d3[_0x2746('0x1e')];var _0x171294=_0x423082?0x0:_0xbaf3e4[_0x2746('0x1b')];var _0x5dc29e=_0x423082?_0x3b61d3[_0x2746('0x1e')]:_0xbaf3e4[_0x2746('0x1b')]+_0xbaf3e4['limit'];var _0xb80d3e;if(_0x5dc29e>=_0x4bc1e2){_0x5dc29e=_0x4bc1e2;_0xb80d3e=0xc8;}else{_0xb80d3e=0xce;}_0x264fe2[_0x2746('0x19')](_0xb80d3e);return _0x264fe2[_0x2746('0x1f')](_0x2746('0x20'),_0x171294+'-'+_0x5dc29e+'/'+_0x4bc1e2)[_0x2746('0x1a')](_0x3b61d3);}return null;};}function patchUpdates(_0x3ab77f){return function(_0x4930d5){try{jsonpatch[_0x2746('0x21')](_0x4930d5,_0x3ab77f,!![]);}catch(_0x496437){return BPromise[_0x2746('0x22')](_0x496437);}return _0x4930d5[_0x2746('0x23')]();};}function saveUpdates(_0xb7435d,_0x3d3c3d){return function(_0x1030a9){if(_0x1030a9){return _0x1030a9[_0x2746('0x24')](_0xb7435d)[_0x2746('0x25')](function(_0x34f49f){return _0x34f49f;});}return null;};}function removeEntity(_0xd8b1b5,_0x14b80a){return function(_0x51b951){if(_0x51b951){return _0x51b951['destroy']()[_0x2746('0x25')](function(){_0xd8b1b5[_0x2746('0x19')](0xcc)[_0x2746('0x18')]();});}};}function handleEntityNotFound(_0x115dbc,_0x27dd99){return function(_0x442551){if(!_0x442551){_0x115dbc[_0x2746('0x17')](0x194);}return _0x442551;};}function handleError(_0x29820b,_0x385536){_0x385536=_0x385536||0x1f4;return function(_0x33b3cb){logger['error'](_0x33b3cb[_0x2746('0x26')]);if(_0x33b3cb['name']){delete _0x33b3cb[_0x2746('0x27')];}_0x29820b[_0x2746('0x19')](_0x385536)[_0x2746('0x28')](_0x33b3cb);};}exports[_0x2746('0x29')]=function(_0x104c3f,_0x16b64e){var _0x22c170={},_0x39ec9a={},_0x1c7138={'count':0x0,'rows':[]};var _0x1ff8e8=_[_0x2746('0x2a')](db[_0x2746('0x2b')]['rawAttributes'],function(_0x3bd727){return{'name':_0x3bd727['fieldName'],'type':_0x3bd727['type'][_0x2746('0x2c')]};});_0x39ec9a['model']=_[_0x2746('0x2a')](_0x1ff8e8,_0x2746('0x27'));_0x39ec9a[_0x2746('0x2d')]=_[_0x2746('0x2e')](_0x104c3f[_0x2746('0x2d')]);_0x39ec9a[_0x2746('0x2f')]=_[_0x2746('0x30')](_0x39ec9a[_0x2746('0x31')],_0x39ec9a[_0x2746('0x2d')]);_0x22c170[_0x2746('0x32')]=_[_0x2746('0x30')](_0x39ec9a[_0x2746('0x31')],qs[_0x2746('0x33')](_0x104c3f[_0x2746('0x2d')][_0x2746('0x33')]));_0x22c170[_0x2746('0x32')]=_0x22c170[_0x2746('0x32')][_0x2746('0x34')]?_0x22c170[_0x2746('0x32')]:_0x39ec9a['model'];if(!_0x104c3f[_0x2746('0x2d')][_0x2746('0x35')]('nolimit')){_0x22c170['limit']=qs[_0x2746('0x1d')](_0x104c3f['query'][_0x2746('0x1d')]);_0x22c170['offset']=qs[_0x2746('0x1b')](_0x104c3f[_0x2746('0x2d')][_0x2746('0x1b')]);}_0x22c170[_0x2746('0x36')]=qs['sort'](_0x104c3f[_0x2746('0x2d')]['sort']);_0x22c170[_0x2746('0x37')]=qs[_0x2746('0x2f')](_['pick'](_0x104c3f['query'],_0x39ec9a[_0x2746('0x2f')]),_0x1ff8e8);if(_0x104c3f['query'][_0x2746('0x38')]){_0x22c170[_0x2746('0x37')]=_[_0x2746('0x39')](_0x22c170['where'],{'$or':_[_0x2746('0x2a')](_0x1ff8e8,function(_0x327de5){if(_0x327de5['type']!=='VIRTUAL'){var _0xcbba7a={};_0xcbba7a[_0x327de5['name']]={'$like':'%'+_0x104c3f[_0x2746('0x2d')][_0x2746('0x38')]+'%'};return _0xcbba7a;}})});}_0x22c170=_[_0x2746('0x39')]({},_0x22c170,_0x104c3f['options']);var _0x3c4d3f={'where':_0x22c170['where']};return db[_0x2746('0x2b')][_0x2746('0x1e')](_0x3c4d3f)[_0x2746('0x25')](function(_0x13fcf2){_0x1c7138['count']=_0x13fcf2;if(_0x104c3f[_0x2746('0x2d')][_0x2746('0x3a')]){_0x22c170[_0x2746('0x3b')]=[{'all':!![]}];}return db[_0x2746('0x2b')][_0x2746('0x3c')](_0x22c170);})[_0x2746('0x25')](function(_0x124030){_0x1c7138['rows']=_0x124030;return _0x1c7138;})[_0x2746('0x25')](respondWithFilteredResult(_0x16b64e,_0x22c170))[_0x2746('0x3d')](handleError(_0x16b64e,null));};exports[_0x2746('0x3e')]=function(_0x4408f7,_0x443169){var _0x1a971c={'raw':!![],'where':{'id':_0x4408f7[_0x2746('0x3f')]['id']}},_0x3c49df={};_0x3c49df[_0x2746('0x31')]=_[_0x2746('0x2e')](db[_0x2746('0x2b')][_0x2746('0x40')]);_0x3c49df[_0x2746('0x2d')]=_[_0x2746('0x2e')](_0x4408f7['query']);_0x3c49df[_0x2746('0x2f')]=_[_0x2746('0x30')](_0x3c49df[_0x2746('0x31')],_0x3c49df[_0x2746('0x2d')]);_0x1a971c[_0x2746('0x32')]=_[_0x2746('0x30')](_0x3c49df['model'],qs['fields'](_0x4408f7[_0x2746('0x2d')][_0x2746('0x33')]));_0x1a971c[_0x2746('0x32')]=_0x1a971c[_0x2746('0x32')][_0x2746('0x34')]?_0x1a971c['attributes']:_0x3c49df[_0x2746('0x31')];if(_0x4408f7['query']['includeAll']){_0x1a971c['include']=[{'all':!![]}];}_0x1a971c=_[_0x2746('0x39')]({},_0x1a971c,_0x4408f7[_0x2746('0x41')]);return db[_0x2746('0x2b')][_0x2746('0x42')](_0x1a971c)[_0x2746('0x25')](handleEntityNotFound(_0x443169,null))[_0x2746('0x25')](respondWithResult(_0x443169,null))[_0x2746('0x3d')](handleError(_0x443169,null));};exports[_0x2746('0x43')]=function(_0x344b0b,_0x4786f3){return db[_0x2746('0x2b')][_0x2746('0x43')](_0x344b0b[_0x2746('0x44')],{})['then'](respondWithResult(_0x4786f3,0xc9))['catch'](handleError(_0x4786f3,null));};exports['update']=function(_0x5b0cd3,_0x32b6ff){if(_0x5b0cd3[_0x2746('0x44')]['id']){delete _0x5b0cd3['body']['id'];}return db[_0x2746('0x2b')][_0x2746('0x42')]({'where':{'id':_0x5b0cd3[_0x2746('0x3f')]['id']}})[_0x2746('0x25')](handleEntityNotFound(_0x32b6ff,null))['then'](saveUpdates(_0x5b0cd3[_0x2746('0x44')],null))[_0x2746('0x25')](respondWithResult(_0x32b6ff,null))['catch'](handleError(_0x32b6ff,null));};exports[_0x2746('0x45')]=function(_0x16c791,_0x68af95){return db[_0x2746('0x2b')][_0x2746('0x42')]({'where':{'id':_0x16c791[_0x2746('0x3f')]['id']}})[_0x2746('0x25')](handleEntityNotFound(_0x68af95,null))[_0x2746('0x25')](removeEntity(_0x68af95,null))[_0x2746('0x3d')](handleError(_0x68af95,null));};exports[_0x2746('0x46')]=function(_0x2e6942,_0x4394b9){return db[_0x2746('0x2b')][_0x2746('0x46')]()[_0x2746('0x25')](respondWithResult(_0x4394b9,null))[_0x2746('0x3d')](handleError(_0x4394b9,null));};exports[_0x2746('0x47')]=function(_0xb1df0e,_0x383db9,_0x2d6728){var _0x5d4600={'raw':!![],'where':{}};var _0x17ade7={};var _0x46af92={'count':0x0,'rows':[]};return db[_0x2746('0x2b')]['findOne']({'where':{'id':_0xb1df0e[_0x2746('0x3f')]['id']}})['then'](handleEntityNotFound(_0x383db9,null))[_0x2746('0x25')](function(_0x8ba97a){if(_0x8ba97a){_0x17ade7['model']=_['keys'](db['JscriptyQuestionReport'][_0x2746('0x40')]);_0x17ade7[_0x2746('0x2d')]=_['keys'](_0xb1df0e[_0x2746('0x2d')]);_0x17ade7[_0x2746('0x2f')]=_[_0x2746('0x30')](_0x17ade7['model'],_0x17ade7[_0x2746('0x2d')]);_0x5d4600[_0x2746('0x32')]=_[_0x2746('0x30')](_0x17ade7[_0x2746('0x31')],qs[_0x2746('0x33')](_0xb1df0e[_0x2746('0x2d')][_0x2746('0x33')]));_0x5d4600[_0x2746('0x32')]=_0x5d4600['attributes'][_0x2746('0x34')]?_0x5d4600[_0x2746('0x32')]:_0x17ade7[_0x2746('0x31')];if(!_0xb1df0e[_0x2746('0x2d')][_0x2746('0x35')](_0x2746('0x48'))){_0x5d4600['limit']=qs[_0x2746('0x1d')](_0xb1df0e[_0x2746('0x2d')]['limit']);_0x5d4600[_0x2746('0x1b')]=qs['offset'](_0xb1df0e[_0x2746('0x2d')][_0x2746('0x1b')]);}_0x5d4600[_0x2746('0x36')]=qs['sort'](_0xb1df0e[_0x2746('0x2d')][_0x2746('0x49')]);_0x5d4600[_0x2746('0x37')]=qs[_0x2746('0x2f')](_['pick'](_0xb1df0e[_0x2746('0x2d')],_0x17ade7[_0x2746('0x2f')]));_0x5d4600['where'][_0x2746('0x4a')]=_0x8ba97a['id'];if(_0xb1df0e[_0x2746('0x2d')][_0x2746('0x38')]){_0x5d4600['where']=_[_0x2746('0x39')](_0x5d4600[_0x2746('0x37')],{'$or':_['map'](_0x5d4600[_0x2746('0x32')],function(_0x1564f9){var _0x66f60c={};_0x66f60c[_0x1564f9]={'$like':'%'+_0xb1df0e['query']['filter']+'%'};return _0x66f60c;})});}_0x5d4600=_['merge']({},_0x5d4600,_0xb1df0e[_0x2746('0x41')]);return db['JscriptyQuestionReport'][_0x2746('0x1e')]({'where':_0x5d4600[_0x2746('0x37')]})['then'](function(_0x54ae3e){_0x46af92[_0x2746('0x1e')]=_0x54ae3e;if(_0xb1df0e[_0x2746('0x2d')][_0x2746('0x3a')]){_0x5d4600[_0x2746('0x3b')]=[{'all':!![]}];}return db['JscriptyQuestionReport']['findAll'](_0x5d4600);})[_0x2746('0x25')](function(_0x550ea2){_0x46af92[_0x2746('0x4b')]=_0x550ea2;return _0x46af92;});}})[_0x2746('0x25')](respondWithFilteredResult(_0x383db9,_0x5d4600))[_0x2746('0x3d')](handleError(_0x383db9,null));};
\ No newline at end of file
+var _0x74d4=['JscriptySessionReport','rawAttributes','fieldName','type','keys','query','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','filter','options','include','findAll','catch','show','params','includeAll','find','create','body','update','destroy','describe','SessionId','JscriptyQuestionReport','rows','rimraf','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','error','stack','name','send','index','map'];(function(_0x30e225,_0x669769){var _0x489d21=function(_0x217b13){while(--_0x217b13){_0x30e225['push'](_0x30e225['shift']());}};_0x489d21(++_0x669769);}(_0x74d4,0x72));var _0x474d=function(_0x3ac5c4,_0x4dbbdc){_0x3ac5c4=_0x3ac5c4-0x0;var _0x1cad17=_0x74d4[_0x3ac5c4];return _0x1cad17;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x474d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x474d('0x1'));var moment=require(_0x474d('0x2'));var BPromise=require(_0x474d('0x3'));var Mustache=require('mustache');var util=require(_0x474d('0x4'));var path=require(_0x474d('0x5'));var sox=require(_0x474d('0x6'));var csv=require(_0x474d('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x474d('0x8'));var _=require(_0x474d('0x9'));var squel=require(_0x474d('0xa'));var crypto=require(_0x474d('0xb'));var jsforce=require(_0x474d('0xc'));var deskjs=require(_0x474d('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x474d('0xe'));var authService=require(_0x474d('0xf'));var qs=require(_0x474d('0x10'));var as=require(_0x474d('0x11'));var hardwareService=require(_0x474d('0x12'));var logger=require(_0x474d('0x13'))('api');var utils=require('../../config/utils');var config=require(_0x474d('0x14'));var licenseUtil=require(_0x474d('0x15'));var db=require(_0x474d('0x16'))['db'];function respondWithStatusCode(_0x4dc711,_0x1e7be7){_0x1e7be7=_0x1e7be7||0xcc;return function(_0x67852b){if(_0x67852b){return _0x4dc711[_0x474d('0x17')](_0x1e7be7);}return _0x4dc711[_0x474d('0x18')](_0x1e7be7)['end']();};}function respondWithResult(_0x2ff3fa,_0x50d517){_0x50d517=_0x50d517||0xc8;return function(_0x2d3882){if(_0x2d3882){return _0x2ff3fa[_0x474d('0x18')](_0x50d517)[_0x474d('0x19')](_0x2d3882);}};}function respondWithFilteredResult(_0x3e8999,_0x41b8e5){return function(_0x3e37a7){if(_0x3e37a7){var _0x8944c6=typeof _0x41b8e5[_0x474d('0x1a')]===_0x474d('0x1b')&&typeof _0x41b8e5[_0x474d('0x1c')]===_0x474d('0x1b');var _0x68e2a8=_0x3e37a7[_0x474d('0x1d')];var _0x258bb4=_0x8944c6?0x0:_0x41b8e5[_0x474d('0x1a')];var _0x18effe=_0x8944c6?_0x3e37a7[_0x474d('0x1d')]:_0x41b8e5[_0x474d('0x1a')]+_0x41b8e5[_0x474d('0x1c')];var _0x26da48;if(_0x18effe>=_0x68e2a8){_0x18effe=_0x68e2a8;_0x26da48=0xc8;}else{_0x26da48=0xce;}_0x3e8999['status'](_0x26da48);return _0x3e8999[_0x474d('0x1e')](_0x474d('0x1f'),_0x258bb4+'-'+_0x18effe+'/'+_0x68e2a8)[_0x474d('0x19')](_0x3e37a7);}return null;};}function patchUpdates(_0x344776){return function(_0x1b38ab){try{jsonpatch[_0x474d('0x20')](_0x1b38ab,_0x344776,!![]);}catch(_0x4029fe){return BPromise[_0x474d('0x21')](_0x4029fe);}return _0x1b38ab[_0x474d('0x22')]();};}function saveUpdates(_0x17cfd5,_0x192426){return function(_0x2bf308){if(_0x2bf308){return _0x2bf308['update'](_0x17cfd5)[_0x474d('0x23')](function(_0x3157f2){return _0x3157f2;});}return null;};}function removeEntity(_0x2b3c9b,_0x4c5d6c){return function(_0xd1b37d){if(_0xd1b37d){return _0xd1b37d['destroy']()[_0x474d('0x23')](function(){_0x2b3c9b[_0x474d('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x471b01,_0xef6af7){return function(_0xb38b32){if(!_0xb38b32){_0x471b01[_0x474d('0x17')](0x194);}return _0xb38b32;};}function handleError(_0x1ff8d9,_0x14b900){_0x14b900=_0x14b900||0x1f4;return function(_0x1ba766){logger[_0x474d('0x24')](_0x1ba766[_0x474d('0x25')]);if(_0x1ba766[_0x474d('0x26')]){delete _0x1ba766[_0x474d('0x26')];}_0x1ff8d9[_0x474d('0x18')](_0x14b900)[_0x474d('0x27')](_0x1ba766);};}exports[_0x474d('0x28')]=function(_0xf9290b,_0x3b1fe4){var _0x356851={},_0x26e8a4={},_0xa622c7={'count':0x0,'rows':[]};var _0x1be8a5=_[_0x474d('0x29')](db[_0x474d('0x2a')][_0x474d('0x2b')],function(_0x3de8b2){return{'name':_0x3de8b2[_0x474d('0x2c')],'type':_0x3de8b2[_0x474d('0x2d')]['key']};});_0x26e8a4['model']=_[_0x474d('0x29')](_0x1be8a5,'name');_0x26e8a4['query']=_[_0x474d('0x2e')](_0xf9290b[_0x474d('0x2f')]);_0x26e8a4['filters']=_[_0x474d('0x30')](_0x26e8a4['model'],_0x26e8a4[_0x474d('0x2f')]);_0x356851[_0x474d('0x31')]=_[_0x474d('0x30')](_0x26e8a4[_0x474d('0x32')],qs[_0x474d('0x33')](_0xf9290b[_0x474d('0x2f')][_0x474d('0x33')]));_0x356851[_0x474d('0x31')]=_0x356851['attributes'][_0x474d('0x34')]?_0x356851['attributes']:_0x26e8a4[_0x474d('0x32')];if(!_0xf9290b[_0x474d('0x2f')][_0x474d('0x35')](_0x474d('0x36'))){_0x356851[_0x474d('0x1c')]=qs['limit'](_0xf9290b[_0x474d('0x2f')][_0x474d('0x1c')]);_0x356851[_0x474d('0x1a')]=qs[_0x474d('0x1a')](_0xf9290b[_0x474d('0x2f')]['offset']);}_0x356851[_0x474d('0x37')]=qs[_0x474d('0x38')](_0xf9290b[_0x474d('0x2f')]['sort']);_0x356851[_0x474d('0x39')]=qs[_0x474d('0x3a')](_[_0x474d('0x3b')](_0xf9290b[_0x474d('0x2f')],_0x26e8a4['filters']),_0x1be8a5);if(_0xf9290b[_0x474d('0x2f')]['filter']){_0x356851[_0x474d('0x39')]=_[_0x474d('0x3c')](_0x356851['where'],{'$or':_[_0x474d('0x29')](_0x1be8a5,function(_0x2d341a){if(_0x2d341a[_0x474d('0x2d')]!=='VIRTUAL'){var _0x536f80={};_0x536f80[_0x2d341a[_0x474d('0x26')]]={'$like':'%'+_0xf9290b['query'][_0x474d('0x3d')]+'%'};return _0x536f80;}})});}_0x356851=_['merge']({},_0x356851,_0xf9290b[_0x474d('0x3e')]);var _0xf5d082={'where':_0x356851[_0x474d('0x39')]};return db[_0x474d('0x2a')][_0x474d('0x1d')](_0xf5d082)[_0x474d('0x23')](function(_0x314613){_0xa622c7[_0x474d('0x1d')]=_0x314613;if(_0xf9290b[_0x474d('0x2f')]['includeAll']){_0x356851[_0x474d('0x3f')]=[{'all':!![]}];}return db[_0x474d('0x2a')][_0x474d('0x40')](_0x356851);})[_0x474d('0x23')](function(_0x7b5bf2){_0xa622c7['rows']=_0x7b5bf2;return _0xa622c7;})['then'](respondWithFilteredResult(_0x3b1fe4,_0x356851))[_0x474d('0x41')](handleError(_0x3b1fe4,null));};exports[_0x474d('0x42')]=function(_0xc9dcbd,_0x564cc7){var _0x5f296b={'raw':!![],'where':{'id':_0xc9dcbd[_0x474d('0x43')]['id']}},_0x3c7852={};_0x3c7852[_0x474d('0x32')]=_[_0x474d('0x2e')](db[_0x474d('0x2a')][_0x474d('0x2b')]);_0x3c7852[_0x474d('0x2f')]=_[_0x474d('0x2e')](_0xc9dcbd[_0x474d('0x2f')]);_0x3c7852[_0x474d('0x3a')]=_[_0x474d('0x30')](_0x3c7852[_0x474d('0x32')],_0x3c7852['query']);_0x5f296b[_0x474d('0x31')]=_[_0x474d('0x30')](_0x3c7852[_0x474d('0x32')],qs['fields'](_0xc9dcbd[_0x474d('0x2f')]['fields']));_0x5f296b[_0x474d('0x31')]=_0x5f296b[_0x474d('0x31')][_0x474d('0x34')]?_0x5f296b['attributes']:_0x3c7852[_0x474d('0x32')];if(_0xc9dcbd[_0x474d('0x2f')][_0x474d('0x44')]){_0x5f296b[_0x474d('0x3f')]=[{'all':!![]}];}_0x5f296b=_[_0x474d('0x3c')]({},_0x5f296b,_0xc9dcbd[_0x474d('0x3e')]);return db[_0x474d('0x2a')][_0x474d('0x45')](_0x5f296b)['then'](handleEntityNotFound(_0x564cc7,null))['then'](respondWithResult(_0x564cc7,null))[_0x474d('0x41')](handleError(_0x564cc7,null));};exports[_0x474d('0x46')]=function(_0x31bd68,_0x22ccdd){return db[_0x474d('0x2a')][_0x474d('0x46')](_0x31bd68[_0x474d('0x47')],{})[_0x474d('0x23')](respondWithResult(_0x22ccdd,0xc9))[_0x474d('0x41')](handleError(_0x22ccdd,null));};exports[_0x474d('0x48')]=function(_0x26196f,_0x50658d){if(_0x26196f['body']['id']){delete _0x26196f[_0x474d('0x47')]['id'];}return db[_0x474d('0x2a')][_0x474d('0x45')]({'where':{'id':_0x26196f[_0x474d('0x43')]['id']}})[_0x474d('0x23')](handleEntityNotFound(_0x50658d,null))['then'](saveUpdates(_0x26196f['body'],null))['then'](respondWithResult(_0x50658d,null))[_0x474d('0x41')](handleError(_0x50658d,null));};exports[_0x474d('0x49')]=function(_0x17b603,_0x1f1d14){return db['JscriptySessionReport'][_0x474d('0x45')]({'where':{'id':_0x17b603[_0x474d('0x43')]['id']}})['then'](handleEntityNotFound(_0x1f1d14,null))['then'](removeEntity(_0x1f1d14,null))[_0x474d('0x41')](handleError(_0x1f1d14,null));};exports[_0x474d('0x4a')]=function(_0x366e15,_0x14b62f){return db[_0x474d('0x2a')][_0x474d('0x4a')]()[_0x474d('0x23')](respondWithResult(_0x14b62f,null))['catch'](handleError(_0x14b62f,null));};exports['getQuestions']=function(_0x3e850e,_0x19c01d,_0x5a6acc){var _0x7210de={'raw':!![],'where':{}};var _0x1d4a55={};var _0x2b050e={'count':0x0,'rows':[]};return db[_0x474d('0x2a')]['findOne']({'where':{'id':_0x3e850e[_0x474d('0x43')]['id']}})[_0x474d('0x23')](handleEntityNotFound(_0x19c01d,null))[_0x474d('0x23')](function(_0x19becc){if(_0x19becc){_0x1d4a55['model']=_[_0x474d('0x2e')](db['JscriptyQuestionReport'][_0x474d('0x2b')]);_0x1d4a55[_0x474d('0x2f')]=_['keys'](_0x3e850e[_0x474d('0x2f')]);_0x1d4a55[_0x474d('0x3a')]=_[_0x474d('0x30')](_0x1d4a55[_0x474d('0x32')],_0x1d4a55[_0x474d('0x2f')]);_0x7210de[_0x474d('0x31')]=_[_0x474d('0x30')](_0x1d4a55[_0x474d('0x32')],qs['fields'](_0x3e850e[_0x474d('0x2f')][_0x474d('0x33')]));_0x7210de[_0x474d('0x31')]=_0x7210de[_0x474d('0x31')][_0x474d('0x34')]?_0x7210de[_0x474d('0x31')]:_0x1d4a55[_0x474d('0x32')];if(!_0x3e850e[_0x474d('0x2f')]['hasOwnProperty'](_0x474d('0x36'))){_0x7210de[_0x474d('0x1c')]=qs[_0x474d('0x1c')](_0x3e850e[_0x474d('0x2f')][_0x474d('0x1c')]);_0x7210de[_0x474d('0x1a')]=qs[_0x474d('0x1a')](_0x3e850e['query']['offset']);}_0x7210de[_0x474d('0x37')]=qs['sort'](_0x3e850e[_0x474d('0x2f')][_0x474d('0x38')]);_0x7210de['where']=qs[_0x474d('0x3a')](_[_0x474d('0x3b')](_0x3e850e['query'],_0x1d4a55[_0x474d('0x3a')]));_0x7210de[_0x474d('0x39')][_0x474d('0x4b')]=_0x19becc['id'];if(_0x3e850e['query'][_0x474d('0x3d')]){_0x7210de['where']=_[_0x474d('0x3c')](_0x7210de['where'],{'$or':_['map'](_0x7210de[_0x474d('0x31')],function(_0x2e7425){var _0x1a005c={};_0x1a005c[_0x2e7425]={'$like':'%'+_0x3e850e[_0x474d('0x2f')][_0x474d('0x3d')]+'%'};return _0x1a005c;})});}_0x7210de=_[_0x474d('0x3c')]({},_0x7210de,_0x3e850e[_0x474d('0x3e')]);return db[_0x474d('0x4c')]['count']({'where':_0x7210de['where']})['then'](function(_0x4df597){_0x2b050e[_0x474d('0x1d')]=_0x4df597;if(_0x3e850e['query'][_0x474d('0x44')]){_0x7210de['include']=[{'all':!![]}];}return db[_0x474d('0x4c')][_0x474d('0x40')](_0x7210de);})[_0x474d('0x23')](function(_0x950532){_0x2b050e[_0x474d('0x4d')]=_0x950532;return _0x2b050e;});}})['then'](respondWithFilteredResult(_0x19c01d,_0x7210de))[_0x474d('0x41')](handleError(_0x19c01d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1883=['../../config/environment','./jscriptySessionReport.attributes','exports','define','JscriptySessionReport','report_jscripty_sessions','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x4f96b0,_0x4b2175){var _0x49025b=function(_0x18449e){while(--_0x18449e){_0x4f96b0['push'](_0x4f96b0['shift']());}};_0x49025b(++_0x4b2175);}(_0x1883,0xab));var _0x3188=function(_0x9b3b5f,_0x5d89a1){_0x9b3b5f=_0x9b3b5f-0x0;var _0x19023b=_0x1883[_0x9b3b5f];return _0x19023b;};'use strict';var _=require(_0x3188('0x0'));var util=require(_0x3188('0x1'));var logger=require(_0x3188('0x2'))(_0x3188('0x3'));var moment=require(_0x3188('0x4'));var BPromise=require(_0x3188('0x5'));var rp=require(_0x3188('0x6'));var fs=require('fs');var path=require(_0x3188('0x7'));var rimraf=require(_0x3188('0x8'));var config=require(_0x3188('0x9'));var attributes=require(_0x3188('0xa'));module[_0x3188('0xb')]=function(_0x408ae0,_0x33b62d){return _0x408ae0[_0x3188('0xc')](_0x3188('0xd'),attributes,{'tableName':_0x3188('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x814b=['define','JscriptySessionReport','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./jscriptySessionReport.attributes','exports'];(function(_0x3a8ee3,_0x6b3f6a){var _0x4c8532=function(_0x4d4929){while(--_0x4d4929){_0x3a8ee3['push'](_0x3a8ee3['shift']());}};_0x4c8532(++_0x6b3f6a);}(_0x814b,0x1a2));var _0xb814=function(_0x15fc3c,_0x35665b){_0x15fc3c=_0x15fc3c-0x0;var _0x94c5c8=_0x814b[_0x15fc3c];return _0x94c5c8;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var logger=require(_0xb814('0x2'))(_0xb814('0x3'));var moment=require(_0xb814('0x4'));var BPromise=require(_0xb814('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb814('0x6'));var rimraf=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var attributes=require(_0xb814('0x9'));module[_0xb814('0xa')]=function(_0x322a70,_0x53e507){return _0x322a70[_0xb814('0xb')](_0xb814('0xc'),attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8aad=['stringify','error','code','message','result','catch','lodash','util','bluebird','ioredis','../../mysqldb','rpc','client','http','request','info','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s'];(function(_0x4e7fcd,_0x5eaa94){var _0x1cded2=function(_0xc7d629){while(--_0xc7d629){_0x4e7fcd['push'](_0x4e7fcd['shift']());}};_0x1cded2(++_0x5eaa94);}(_0x8aad,0x146));var _0xd8aa=function(_0x5accc2,_0x15482b){_0x5accc2=_0x5accc2-0x0;var _0x2ae52f=_0x8aad[_0x5accc2];return _0x2ae52f;};'use strict';var _=require(_0xd8aa('0x0'));var util=require(_0xd8aa('0x1'));var moment=require('moment');var BPromise=require(_0xd8aa('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd8aa('0x3'));var db=require(_0xd8aa('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xd8aa('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd8aa('0x6')][_0xd8aa('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x16ea12,_0x4a4b10,_0x2a559d){return new BPromise(function(_0x1da411,_0x2a23b5){return client[_0xd8aa('0x8')](_0x16ea12,_0x2a559d)['then'](function(_0x5de228){logger[_0xd8aa('0x9')](_0xd8aa('0xa'),_0x4a4b10,_0xd8aa('0xb'));logger[_0xd8aa('0xc')](_0xd8aa('0xd'),_0x4a4b10,'request\x20sent',JSON[_0xd8aa('0xe')](_0x5de228));if(_0x5de228[_0xd8aa('0xf')]){if(_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x10')]===0x1f4){logger[_0xd8aa('0xf')](_0xd8aa('0xa'),_0x4a4b10,_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x11')]);return _0x2a23b5(_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x11')]);}logger['error']('JscriptySessionReport,\x20%s,\x20%s',_0x4a4b10,_0x5de228[_0xd8aa('0xf')][_0xd8aa('0x11')]);return _0x1da411(_0x5de228[_0xd8aa('0xf')]['message']);}else{logger[_0xd8aa('0x9')](_0xd8aa('0xa'),_0x4a4b10,_0xd8aa('0xb'));_0x1da411(_0x5de228[_0xd8aa('0x12')]['message']);}})[_0xd8aa('0x13')](function(_0xa9ba1b){logger['error'](_0xd8aa('0xa'),_0x4a4b10,_0xa9ba1b);_0x2a23b5(_0xa9ba1b);});});}
\ No newline at end of file
+var _0x9f0e=['../../config/environment','jayson/promise','request','then','info','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','JscriptySessionReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc'];(function(_0xc24be2,_0x89a7d2){var _0x1ecf71=function(_0x6920c6){while(--_0x6920c6){_0xc24be2['push'](_0xc24be2['shift']());}};_0x1ecf71(++_0x89a7d2);}(_0x9f0e,0x116));var _0xe9f0=function(_0x269132,_0x10f9aa){_0x269132=_0x269132-0x0;var _0x5488ec=_0x9f0e[_0x269132];return _0x5488ec;};'use strict';var _=require(_0xe9f0('0x0'));var util=require(_0xe9f0('0x1'));var moment=require(_0xe9f0('0x2'));var BPromise=require(_0xe9f0('0x3'));var rs=require(_0xe9f0('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xe9f0('0x5'));var logger=require(_0xe9f0('0x6'))(_0xe9f0('0x7'));var config=require(_0xe9f0('0x8'));var jayson=require(_0xe9f0('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3a17b3,_0x167198,_0xe64a79){return new BPromise(function(_0x4be6a6,_0xf4a256){return client[_0xe9f0('0xa')](_0x3a17b3,_0xe64a79)[_0xe9f0('0xb')](function(_0x3386a8){logger[_0xe9f0('0xc')](_0xe9f0('0xd'),_0x167198,_0xe9f0('0xe'));logger[_0xe9f0('0xf')](_0xe9f0('0x10'),_0x167198,'request\x20sent',JSON[_0xe9f0('0x11')](_0x3386a8));if(_0x3386a8[_0xe9f0('0x12')]){if(_0x3386a8[_0xe9f0('0x12')]['code']===0x1f4){logger[_0xe9f0('0x12')]('JscriptySessionReport,\x20%s,\x20%s',_0x167198,_0x3386a8[_0xe9f0('0x12')][_0xe9f0('0x13')]);return _0xf4a256(_0x3386a8[_0xe9f0('0x12')][_0xe9f0('0x13')]);}logger['error'](_0xe9f0('0xd'),_0x167198,_0x3386a8['error'][_0xe9f0('0x13')]);return _0x4be6a6(_0x3386a8[_0xe9f0('0x12')][_0xe9f0('0x13')]);}else{logger['info'](_0xe9f0('0xd'),_0x167198,_0xe9f0('0xe'));_0x4be6a6(_0x3386a8[_0xe9f0('0x14')]['message']);}})[_0xe9f0('0x15')](function(_0x1e16e0){logger[_0xe9f0('0x12')](_0xe9f0('0xd'),_0x167198,_0x1e16e0);_0xf4a256(_0x1e16e0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe157=['../../config/environment','./license.controller','get','index','put','/:id','update','exports','multer','util','path','connect-timeout','../../components/auth/service','../../components/interaction/service'];(function(_0x31f020,_0x3195f2){var _0x41f161=function(_0x5b69bf){while(--_0x5b69bf){_0x31f020['push'](_0x31f020['shift']());}};_0x41f161(++_0x3195f2);}(_0xe157,0x13c));var _0x7e15=function(_0x3fd71f,_0xf5856d){_0x3fd71f=_0x3fd71f-0x0;var _0x3e36fb=_0xe157[_0x3fd71f];return _0x3e36fb;};'use strict';var multer=require(_0x7e15('0x0'));var util=require(_0x7e15('0x1'));var path=require(_0x7e15('0x2'));var timeout=require(_0x7e15('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x7e15('0x4'));var interaction=require(_0x7e15('0x5'));var config=require(_0x7e15('0x6'));var controller=require(_0x7e15('0x7'));router[_0x7e15('0x8')]('/',controller[_0x7e15('0x9')]);router[_0x7e15('0xa')](_0x7e15('0xb'),auth['isAuthenticated'](),controller[_0x7e15('0xc')]);module[_0x7e15('0xd')]=router;
\ No newline at end of file
+var _0x4403=['../../components/auth/service','../../components/interaction/service','./license.controller','put','/:id','isAuthenticated','exports','connect-timeout','Router','fs-extra'];(function(_0x1cef1d,_0x13210a){var _0x5c5fee=function(_0x21c94f){while(--_0x21c94f){_0x1cef1d['push'](_0x1cef1d['shift']());}};_0x5c5fee(++_0x13210a);}(_0x4403,0x179));var _0x3440=function(_0xe9f235,_0x3385ce){_0xe9f235=_0xe9f235-0x0;var _0x151875=_0x4403[_0xe9f235];return _0x151875;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x3440('0x0'));var express=require('express');var router=express[_0x3440('0x1')]();var fs_extra=require(_0x3440('0x2'));var auth=require(_0x3440('0x3'));var interaction=require(_0x3440('0x4'));var config=require('../../config/environment');var controller=require(_0x3440('0x5'));router['get']('/',controller['index']);router[_0x3440('0x6')](_0x3440('0x7'),auth[_0x3440('0x8')](),controller['update']);module[_0x3440('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f81=['STRING','sequelize','exports','TEXT'];(function(_0x57eaa0,_0x32aae5){var _0x9d53d2=function(_0x3c6ccd){while(--_0x3c6ccd){_0x57eaa0['push'](_0x57eaa0['shift']());}};_0x9d53d2(++_0x32aae5);}(_0x2f81,0xb1));var _0x12f8=function(_0x3bb51c,_0x57b35b){_0x3bb51c=_0x3bb51c-0x0;var _0x9cb9af=_0x2f81[_0x3bb51c];return _0x9cb9af;};'use strict';var Sequelize=require(_0x12f8('0x0'));module[_0x12f8('0x1')]={'license':{'type':Sequelize[_0x12f8('0x2')]},'data1':{'type':Sequelize[_0x12f8('0x3')]},'data2':{'type':Sequelize[_0x12f8('0x3')]},'chatLicenseExceeded':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x7e8e=['exports','TEXT','INTEGER'];(function(_0x4e4c62,_0x2a0b62){var _0x148cc3=function(_0x1f180b){while(--_0x1f180b){_0x4e4c62['push'](_0x4e4c62['shift']());}};_0x148cc3(++_0x2a0b62);}(_0x7e8e,0x117));var _0xe7e8=function(_0x360585,_0x2284ce){_0x360585=_0x360585-0x0;var _0x5371e4=_0x7e8e[_0x360585];return _0x5371e4;};'use strict';var Sequelize=require('sequelize');module[_0xe7e8('0x0')]={'license':{'type':Sequelize[_0xe7e8('0x1')]},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize['STRING']},'chatLicenseExceeded':{'type':Sequelize[_0xe7e8('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1967=['params','checkLicense','key','demo','catch','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count','set','apply','save','update','then','status','error','name','send','index','model','keys','rawAttributes','query','intersection','attributes','fields','merge','getLicense','body','find'];(function(_0x451fa1,_0x4696c2){var _0x4168de=function(_0x390360){while(--_0x390360){_0x451fa1['push'](_0x451fa1['shift']());}};_0x4168de(++_0x4696c2);}(_0x1967,0x173));var _0x7196=function(_0x2fb910,_0x374830){_0x2fb910=_0x2fb910-0x0;var _0xc726e7=_0x1967[_0x2fb910];return _0xc726e7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7196('0x0'));var zipdir=require(_0x7196('0x1'));var jsonpatch=require(_0x7196('0x2'));var rp=require(_0x7196('0x3'));var moment=require(_0x7196('0x4'));var BPromise=require(_0x7196('0x5'));var Mustache=require(_0x7196('0x6'));var util=require(_0x7196('0x7'));var path=require(_0x7196('0x8'));var sox=require(_0x7196('0x9'));var csv=require('to-csv');var ejs=require(_0x7196('0xa'));var fs=require('fs');var fs_extra=require(_0x7196('0xb'));var _=require(_0x7196('0xc'));var squel=require(_0x7196('0xd'));var crypto=require(_0x7196('0xe'));var jsforce=require(_0x7196('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x7196('0x10'));var querystring=require(_0x7196('0x11'));var Papa=require(_0x7196('0x12'));var Redis=require(_0x7196('0x13'));var authService=require(_0x7196('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7196('0x15'));var logger=require(_0x7196('0x16'))(_0x7196('0x17'));var utils=require(_0x7196('0x18'));var config=require(_0x7196('0x19'));var licenseUtil=require(_0x7196('0x1a'));var db=require(_0x7196('0x1b'))['db'];function respondWithStatusCode(_0x325641,_0x24f1c3){_0x24f1c3=_0x24f1c3||0xcc;return function(_0xba707b){if(_0xba707b){return _0x325641[_0x7196('0x1c')](_0x24f1c3);}return _0x325641['status'](_0x24f1c3)[_0x7196('0x1d')]();};}function respondWithResult(_0x3feccd,_0x3545aa){_0x3545aa=_0x3545aa||0xc8;return function(_0xf098c1){if(_0xf098c1){return _0x3feccd['status'](_0x3545aa)[_0x7196('0x1e')](_0xf098c1);}};}function respondWithFilteredResult(_0x539414,_0xe32933){return function(_0x2590a6){if(_0x2590a6){var _0xf7e97=typeof _0xe32933[_0x7196('0x1f')]===_0x7196('0x20')&&typeof _0xe32933[_0x7196('0x21')]===_0x7196('0x20');var _0x1ed296=_0x2590a6[_0x7196('0x22')];var _0x32fe2b=_0xf7e97?0x0:_0xe32933[_0x7196('0x1f')];var _0x5b716a=_0xf7e97?_0x2590a6['count']:_0xe32933[_0x7196('0x1f')]+_0xe32933[_0x7196('0x21')];var _0x40418d;if(_0x5b716a>=_0x1ed296){_0x5b716a=_0x1ed296;_0x40418d=0xc8;}else{_0x40418d=0xce;}_0x539414['status'](_0x40418d);return _0x539414[_0x7196('0x23')]('Content-Range',_0x32fe2b+'-'+_0x5b716a+'/'+_0x1ed296)['json'](_0x2590a6);}return null;};}function patchUpdates(_0x296e07){return function(_0x627223){try{jsonpatch[_0x7196('0x24')](_0x627223,_0x296e07,!![]);}catch(_0x4ddf78){return BPromise['reject'](_0x4ddf78);}return _0x627223[_0x7196('0x25')]();};}function saveUpdates(_0x3cd8ff,_0x598a26){return function(_0x18649b){if(_0x18649b){return _0x18649b[_0x7196('0x26')](_0x3cd8ff)[_0x7196('0x27')](function(_0x18d389){return _0x18d389;});}return null;};}function removeEntity(_0x38b3d6,_0x549f34){return function(_0x3f8178){if(_0x3f8178){return _0x3f8178['destroy']()[_0x7196('0x27')](function(){_0x38b3d6[_0x7196('0x28')](0xcc)[_0x7196('0x1d')]();});}};}function handleEntityNotFound(_0xa69810,_0x70aa65){return function(_0x43f6a2){if(!_0x43f6a2){_0xa69810['sendStatus'](0x194);}return _0x43f6a2;};}function handleError(_0x57c404,_0x1482e5){_0x1482e5=_0x1482e5||0x1f4;return function(_0x2d284f){logger[_0x7196('0x29')](_0x2d284f['stack']);if(_0x2d284f['name']){delete _0x2d284f[_0x7196('0x2a')];}_0x57c404[_0x7196('0x28')](_0x1482e5)[_0x7196('0x2b')](_0x2d284f);};}var utilLicense=require('../../config/license/util');exports[_0x7196('0x2c')]=function(_0x4ecea1,_0x4fd339){var _0x59d79d={'raw':!![],'where':{'id':0x1}},_0x30151f={};_0x30151f[_0x7196('0x2d')]=_[_0x7196('0x2e')](db['License'][_0x7196('0x2f')]);_0x30151f[_0x7196('0x30')]=_[_0x7196('0x2e')](_0x4ecea1[_0x7196('0x30')]);_0x30151f['filters']=_[_0x7196('0x31')](_0x30151f[_0x7196('0x2d')],_0x30151f[_0x7196('0x30')]);_0x59d79d[_0x7196('0x32')]=_[_0x7196('0x31')](_0x30151f[_0x7196('0x2d')],qs[_0x7196('0x33')](_0x4ecea1[_0x7196('0x30')][_0x7196('0x33')]));_0x59d79d[_0x7196('0x32')]=_0x59d79d[_0x7196('0x32')]['length']?_0x59d79d[_0x7196('0x32')]:_0x30151f['model'];_0x59d79d=_[_0x7196('0x34')]({},_0x59d79d,_0x4ecea1['options']);return utilLicense[_0x7196('0x35')](_0x59d79d)[_0x7196('0x27')](respondWithResult(_0x4fd339,null))['catch'](handleError(_0x4fd339,null));};exports[_0x7196('0x26')]=function(_0x2bcadd,_0x4531d7){if(_0x2bcadd[_0x7196('0x36')]['id']){delete _0x2bcadd[_0x7196('0x36')]['id'];}return db['License'][_0x7196('0x37')]({'where':{'id':_0x2bcadd[_0x7196('0x38')]['id']}})[_0x7196('0x27')](handleEntityNotFound(_0x4531d7,null))[_0x7196('0x27')](function(_0x3e8f98){var _0x123cad=_0x3e8f98['get']({'plain':!![]});return utilLicense[_0x7196('0x39')](_0x123cad,_0x2bcadd[_0x7196('0x36')][_0x7196('0x3a')]);})['then'](function(_0x33831a){if(!_0x33831a[_0x7196('0x3b')]){return saveUpdates(_0x2bcadd[_0x7196('0x36')],null);}return _0x33831a;})[_0x7196('0x27')](respondWithResult(_0x4531d7,null))[_0x7196('0x3c')](handleError(_0x4531d7,null));};
\ No newline at end of file
+var _0x57ca=['ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','undefined','count','limit','set','apply','save','update','then','destroy','end','sendStatus','error','stack','name','model','keys','License','query','intersection','fields','attributes','merge','options','getLicense','catch','body','find','get','checkLicense','key','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x57ca,0x108));var _0xa57c=function(_0x3f594a,_0x182647){_0x3f594a=_0x3f594a-0x0;var _0xe19e44=_0x57ca[_0x3f594a];return _0xe19e44;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa57c('0x0'));var zipdir=require(_0xa57c('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa57c('0x2'));var moment=require(_0xa57c('0x3'));var BPromise=require(_0xa57c('0x4'));var Mustache=require(_0xa57c('0x5'));var util=require(_0xa57c('0x6'));var path=require('path');var sox=require(_0xa57c('0x7'));var csv=require(_0xa57c('0x8'));var ejs=require(_0xa57c('0x9'));var fs=require('fs');var fs_extra=require(_0xa57c('0xa'));var _=require(_0xa57c('0xb'));var squel=require(_0xa57c('0xc'));var crypto=require(_0xa57c('0xd'));var jsforce=require(_0xa57c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xa57c('0x8'));var querystring=require('querystring');var Papa=require(_0xa57c('0xf'));var Redis=require(_0xa57c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xa57c('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa57c('0x12'));var logger=require(_0xa57c('0x13'))('api');var utils=require(_0xa57c('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xa57c('0x15'));var db=require(_0xa57c('0x16'))['db'];function respondWithStatusCode(_0x1f2bb5,_0x9e25bf){_0x9e25bf=_0x9e25bf||0xcc;return function(_0x205e72){if(_0x205e72){return _0x1f2bb5['sendStatus'](_0x9e25bf);}return _0x1f2bb5[_0xa57c('0x17')](_0x9e25bf)['end']();};}function respondWithResult(_0x30d23d,_0x3d5995){_0x3d5995=_0x3d5995||0xc8;return function(_0x30940d){if(_0x30940d){return _0x30d23d[_0xa57c('0x17')](_0x3d5995)[_0xa57c('0x18')](_0x30940d);}};}function respondWithFilteredResult(_0x37a323,_0x3f900a){return function(_0x4b4bdb){if(_0x4b4bdb){var _0x26607a=typeof _0x3f900a[_0xa57c('0x19')]===_0xa57c('0x1a')&&typeof _0x3f900a['limit']===_0xa57c('0x1a');var _0x5f33f1=_0x4b4bdb[_0xa57c('0x1b')];var _0x3d781d=_0x26607a?0x0:_0x3f900a[_0xa57c('0x19')];var _0xe3d505=_0x26607a?_0x4b4bdb[_0xa57c('0x1b')]:_0x3f900a[_0xa57c('0x19')]+_0x3f900a[_0xa57c('0x1c')];var _0x595c7a;if(_0xe3d505>=_0x5f33f1){_0xe3d505=_0x5f33f1;_0x595c7a=0xc8;}else{_0x595c7a=0xce;}_0x37a323['status'](_0x595c7a);return _0x37a323[_0xa57c('0x1d')]('Content-Range',_0x3d781d+'-'+_0xe3d505+'/'+_0x5f33f1)['json'](_0x4b4bdb);}return null;};}function patchUpdates(_0x418415){return function(_0xa5b314){try{jsonpatch[_0xa57c('0x1e')](_0xa5b314,_0x418415,!![]);}catch(_0x23bec0){return BPromise['reject'](_0x23bec0);}return _0xa5b314[_0xa57c('0x1f')]();};}function saveUpdates(_0x25715f,_0x34d1bc){return function(_0x2213b2){if(_0x2213b2){return _0x2213b2[_0xa57c('0x20')](_0x25715f)[_0xa57c('0x21')](function(_0x1e0192){return _0x1e0192;});}return null;};}function removeEntity(_0x42038e,_0x2e99ed){return function(_0xdf65dd){if(_0xdf65dd){return _0xdf65dd[_0xa57c('0x22')]()[_0xa57c('0x21')](function(){_0x42038e[_0xa57c('0x17')](0xcc)[_0xa57c('0x23')]();});}};}function handleEntityNotFound(_0x431bec,_0x511a26){return function(_0x2db443){if(!_0x2db443){_0x431bec[_0xa57c('0x24')](0x194);}return _0x2db443;};}function handleError(_0x27884d,_0x5228b9){_0x5228b9=_0x5228b9||0x1f4;return function(_0x315ad7){logger[_0xa57c('0x25')](_0x315ad7[_0xa57c('0x26')]);if(_0x315ad7[_0xa57c('0x27')]){delete _0x315ad7[_0xa57c('0x27')];}_0x27884d[_0xa57c('0x17')](_0x5228b9)['send'](_0x315ad7);};}var utilLicense=require(_0xa57c('0x15'));exports['index']=function(_0x54a18b,_0x257661){var _0x7d10ec={'raw':!![],'where':{'id':0x1}},_0x5a3e03={};_0x5a3e03[_0xa57c('0x28')]=_[_0xa57c('0x29')](db[_0xa57c('0x2a')]['rawAttributes']);_0x5a3e03[_0xa57c('0x2b')]=_['keys'](_0x54a18b[_0xa57c('0x2b')]);_0x5a3e03['filters']=_[_0xa57c('0x2c')](_0x5a3e03['model'],_0x5a3e03[_0xa57c('0x2b')]);_0x7d10ec['attributes']=_[_0xa57c('0x2c')](_0x5a3e03[_0xa57c('0x28')],qs[_0xa57c('0x2d')](_0x54a18b[_0xa57c('0x2b')][_0xa57c('0x2d')]));_0x7d10ec[_0xa57c('0x2e')]=_0x7d10ec[_0xa57c('0x2e')]['length']?_0x7d10ec[_0xa57c('0x2e')]:_0x5a3e03['model'];_0x7d10ec=_[_0xa57c('0x2f')]({},_0x7d10ec,_0x54a18b[_0xa57c('0x30')]);return utilLicense[_0xa57c('0x31')](_0x7d10ec)['then'](respondWithResult(_0x257661,null))[_0xa57c('0x32')](handleError(_0x257661,null));};exports['update']=function(_0x24a087,_0x501a4c){if(_0x24a087[_0xa57c('0x33')]['id']){delete _0x24a087['body']['id'];}return db[_0xa57c('0x2a')][_0xa57c('0x34')]({'where':{'id':_0x24a087['params']['id']}})[_0xa57c('0x21')](handleEntityNotFound(_0x501a4c,null))['then'](function(_0x1eeeb8){var _0x5c56d3=_0x1eeeb8[_0xa57c('0x35')]({'plain':!![]});return utilLicense[_0xa57c('0x36')](_0x5c56d3,_0x24a087[_0xa57c('0x33')][_0xa57c('0x37')]);})[_0xa57c('0x21')](function(_0x44350f){if(!_0x44350f['demo']){return saveUpdates(_0x24a087['body'],null);}return _0x44350f;})[_0xa57c('0x21')](respondWithResult(_0x501a4c,null))[_0xa57c('0x32')](handleError(_0x501a4c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb1d=['bluebird','request-promise','path','../../config/environment','./license.attributes','define','License','license','moment'];(function(_0x28beb3,_0x1625d9){var _0x547d37=function(_0x254b7e){while(--_0x254b7e){_0x28beb3['push'](_0x28beb3['shift']());}};_0x547d37(++_0x1625d9);}(_0xfb1d,0x179));var _0xdfb1=function(_0x527981,_0x3c111b){_0x527981=_0x527981-0x0;var _0x2b5dfe=_0xfb1d[_0x527981];return _0x2b5dfe;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xdfb1('0x0'));var BPromise=require(_0xdfb1('0x1'));var rp=require(_0xdfb1('0x2'));var fs=require('fs');var path=require(_0xdfb1('0x3'));var rimraf=require('rimraf');var config=require(_0xdfb1('0x4'));var attributes=require(_0xdfb1('0x5'));module['exports']=function(_0x27b7d8,_0x45e90d){return _0x27b7d8[_0xdfb1('0x6')](_0xdfb1('0x7'),attributes,{'tableName':_0xdfb1('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfb66=['util','api','bluebird','path','../../config/environment','./license.attributes','exports','License','license','lodash'];(function(_0x58270d,_0x1a3752){var _0x41d8cb=function(_0x3d31a8){while(--_0x3d31a8){_0x58270d['push'](_0x58270d['shift']());}};_0x41d8cb(++_0x1a3752);}(_0xfb66,0x1f3));var _0x6fb6=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xfb66[_0x465028];return _0xb783d4;};'use strict';var _=require(_0x6fb6('0x0'));var util=require(_0x6fb6('0x1'));var logger=require('../../config/logger')(_0x6fb6('0x2'));var moment=require('moment');var BPromise=require(_0x6fb6('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6fb6('0x4'));var rimraf=require('rimraf');var config=require(_0x6fb6('0x5'));var attributes=require(_0x6fb6('0x6'));module[_0x6fb6('0x7')]=function(_0x1117e8,_0x529f61){return _0x1117e8['define'](_0x6fb6('0x8'),attributes,{'tableName':_0x6fb6('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf81a=['code','License,\x20%s,\x20%s','message','info','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','debug','License,\x20%s,\x20%s,\x20%s','request\x20sent','error'];(function(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0xf81a,0x1ea));var _0xaf81=function(_0x1c022e,_0x5b3390){_0x1c022e=_0x1c022e-0x0;var _0x17ee4d=_0xf81a[_0x1c022e];return _0x17ee4d;};'use strict';var _=require(_0xaf81('0x0'));var util=require(_0xaf81('0x1'));var moment=require(_0xaf81('0x2'));var BPromise=require(_0xaf81('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xaf81('0x4'));var db=require(_0xaf81('0x5'))['db'];var utils=require(_0xaf81('0x6'));var logger=require(_0xaf81('0x7'))(_0xaf81('0x8'));var config=require(_0xaf81('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xaf81('0xa')][_0xaf81('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2d29d1,_0x23cf08,_0x40c5bc){return new BPromise(function(_0x5a8c09,_0x2736aa){return client['request'](_0x2d29d1,_0x40c5bc)['then'](function(_0x15dfbc){logger['info']('License,\x20%s,\x20%s',_0x23cf08,'request\x20sent');logger[_0xaf81('0xc')](_0xaf81('0xd'),_0x23cf08,_0xaf81('0xe'),JSON['stringify'](_0x15dfbc));if(_0x15dfbc[_0xaf81('0xf')]){if(_0x15dfbc[_0xaf81('0xf')][_0xaf81('0x10')]===0x1f4){logger[_0xaf81('0xf')](_0xaf81('0x11'),_0x23cf08,_0x15dfbc[_0xaf81('0xf')][_0xaf81('0x12')]);return _0x2736aa(_0x15dfbc[_0xaf81('0xf')][_0xaf81('0x12')]);}logger[_0xaf81('0xf')](_0xaf81('0x11'),_0x23cf08,_0x15dfbc[_0xaf81('0xf')][_0xaf81('0x12')]);return _0x5a8c09(_0x15dfbc[_0xaf81('0xf')][_0xaf81('0x12')]);}else{logger[_0xaf81('0x13')](_0xaf81('0x11'),_0x23cf08,'request\x20sent');_0x5a8c09(_0x15dfbc[_0xaf81('0x14')][_0xaf81('0x12')]);}})[_0xaf81('0x15')](function(_0x514170){logger['error'](_0xaf81('0x11'),_0x23cf08,_0x514170);_0x2736aa(_0x514170);});});}
\ No newline at end of file
+var _0x7a66=['request\x20sent','stringify','error','code','License,\x20%s,\x20%s','message','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','info','debug'];(function(_0x2047b4,_0x5151a2){var _0x3e0b97=function(_0x2adbb7){while(--_0x2adbb7){_0x2047b4['push'](_0x2047b4['shift']());}};_0x3e0b97(++_0x5151a2);}(_0x7a66,0x78));var _0x67a6=function(_0x35e24b,_0x6eb583){_0x35e24b=_0x35e24b-0x0;var _0x193ca0=_0x7a66[_0x35e24b];return _0x193ca0;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x67a6('0x0'));var rs=require(_0x67a6('0x1'));var fs=require('fs');var Redis=require(_0x67a6('0x2'));var db=require(_0x67a6('0x3'))['db'];var utils=require(_0x67a6('0x4'));var logger=require('../../config/logger')(_0x67a6('0x5'));var config=require(_0x67a6('0x6'));var jayson=require(_0x67a6('0x7'));var client=jayson[_0x67a6('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3bca76,_0x490845,_0x2c8c27){return new BPromise(function(_0x4f5ccd,_0x1613b3){return client[_0x67a6('0x9')](_0x3bca76,_0x2c8c27)[_0x67a6('0xa')](function(_0x30195b){logger[_0x67a6('0xb')]('License,\x20%s,\x20%s',_0x490845,'request\x20sent');logger[_0x67a6('0xc')]('License,\x20%s,\x20%s,\x20%s',_0x490845,_0x67a6('0xd'),JSON[_0x67a6('0xe')](_0x30195b));if(_0x30195b[_0x67a6('0xf')]){if(_0x30195b['error'][_0x67a6('0x10')]===0x1f4){logger['error'](_0x67a6('0x11'),_0x490845,_0x30195b[_0x67a6('0xf')][_0x67a6('0x12')]);return _0x1613b3(_0x30195b[_0x67a6('0xf')][_0x67a6('0x12')]);}logger[_0x67a6('0xf')]('License,\x20%s,\x20%s',_0x490845,_0x30195b['error'][_0x67a6('0x12')]);return _0x4f5ccd(_0x30195b['error'][_0x67a6('0x12')]);}else{logger[_0x67a6('0xb')](_0x67a6('0x11'),_0x490845,'request\x20sent');_0x4f5ccd(_0x30195b['result'][_0x67a6('0x12')]);}})['catch'](function(_0x468937){logger[_0x67a6('0xf')](_0x67a6('0x11'),_0x490845,_0x468937);_0x1613b3(_0x468937);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b2c=['/:id/out_servers','addInteraction','addApplications','update','removeDispositions','delete','removeAnswers','destroy','removeAgents','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','./mailAccount.controller','get','isAuthenticated','index','/describe','/:id','/:id/dispositions','getDispositions','getAnswers','/:id/in_servers','getImap','getSmtp','/:id/interactions','getInteractions','/:id/applications','/:id/messages','/:id/verify','verifySmtp','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','create','addImap'];(function(_0x188e33,_0x171e57){var _0x2a43e9=function(_0x38448e){while(--_0x38448e){_0x188e33['push'](_0x188e33['shift']());}};_0x2a43e9(++_0x171e57);}(_0x9b2c,0x1ad));var _0xc9b2=function(_0x2fcf18,_0x10009a){_0x2fcf18=_0x2fcf18-0x0;var _0x4c68cc=_0x9b2c[_0x2fcf18];return _0x4c68cc;};'use strict';var multer=require(_0xc9b2('0x0'));var util=require(_0xc9b2('0x1'));var path=require(_0xc9b2('0x2'));var timeout=require(_0xc9b2('0x3'));var express=require('express');var router=express[_0xc9b2('0x4')]();var fs_extra=require(_0xc9b2('0x5'));var auth=require(_0xc9b2('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xc9b2('0x7'));router[_0xc9b2('0x8')]('/',auth[_0xc9b2('0x9')](),controller[_0xc9b2('0xa')]);router['get'](_0xc9b2('0xb'),auth['isAuthenticated'](),controller['describe']);router[_0xc9b2('0x8')](_0xc9b2('0xc'),auth['isAuthenticated'](),controller['show']);router[_0xc9b2('0x8')](_0xc9b2('0xd'),auth['isAuthenticated'](),controller[_0xc9b2('0xe')]);router[_0xc9b2('0x8')]('/:id/canned_answers',auth[_0xc9b2('0x9')](),controller[_0xc9b2('0xf')]);router[_0xc9b2('0x8')](_0xc9b2('0x10'),auth['isAuthenticated'](),controller[_0xc9b2('0x11')]);router['get']('/:id/out_servers',auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x12')]);router[_0xc9b2('0x8')](_0xc9b2('0x13'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x14')]);router[_0xc9b2('0x8')](_0xc9b2('0x15'),auth['isAuthenticated'](),controller['getApplications']);router[_0xc9b2('0x8')](_0xc9b2('0x16'),auth[_0xc9b2('0x9')](),controller['getMessages']);router[_0xc9b2('0x8')](_0xc9b2('0x17'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x18')]);router['get'](_0xc9b2('0x19'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x1a')]);router[_0xc9b2('0x1b')](_0xc9b2('0xd'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x1c')]);router[_0xc9b2('0x1b')](_0xc9b2('0x1d'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x1e')]);router[_0xc9b2('0x1b')]('/',auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x1f')]);router[_0xc9b2('0x1b')](_0xc9b2('0x10'),auth['isAuthenticated'](),controller[_0xc9b2('0x20')]);router['post'](_0xc9b2('0x21'),auth[_0xc9b2('0x9')](),controller['addSmtp']);router[_0xc9b2('0x1b')](_0xc9b2('0x13'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x22')]);router[_0xc9b2('0x1b')](_0xc9b2('0x15'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x23')]);router[_0xc9b2('0x1b')]('/:id/send',auth[_0xc9b2('0x9')](),controller['send']);router[_0xc9b2('0x1b')](_0xc9b2('0x19'),auth[_0xc9b2('0x9')](),controller['addAgents']);router['put'](_0xc9b2('0xc'),auth['isAuthenticated'](),controller[_0xc9b2('0x24')]);router['delete'](_0xc9b2('0xd'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x25')]);router[_0xc9b2('0x26')](_0xc9b2('0x1d'),auth['isAuthenticated'](),controller[_0xc9b2('0x27')]);router[_0xc9b2('0x26')]('/:id/in_servers',auth[_0xc9b2('0x9')](),controller['removeImap']);router['delete'](_0xc9b2('0x21'),auth['isAuthenticated'](),controller['removeSmtp']);router['delete'](_0xc9b2('0xc'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x28')]);router['delete'](_0xc9b2('0x19'),auth[_0xc9b2('0x9')](),controller[_0xc9b2('0x29')]);module['exports']=router;
\ No newline at end of file
+var _0x9887=['removeSmtp','removeAgents','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./mailAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','/:id/out_servers','getSmtp','getInteractions','getApplications','/:id/verify','verifySmtp','/:id/users','getAgents','post','addDisposition','addAnswer','create','addSmtp','/:id/interactions','addInteraction','/:id/applications','/:id/send','send','addAgents','put','update','removeDispositions','delete','removeAnswers','/:id/in_servers'];(function(_0x5c6310,_0x57afac){var _0x3e6db4=function(_0x5a88e3){while(--_0x5a88e3){_0x5c6310['push'](_0x5c6310['shift']());}};_0x3e6db4(++_0x57afac);}(_0x9887,0x11d));var _0x7988=function(_0x442b30,_0x58cdaa){_0x442b30=_0x442b30-0x0;var _0x3fe84d=_0x9887[_0x442b30];return _0x3fe84d;};'use strict';var multer=require('multer');var util=require(_0x7988('0x0'));var path=require(_0x7988('0x1'));var timeout=require(_0x7988('0x2'));var express=require(_0x7988('0x3'));var router=express[_0x7988('0x4')]();var fs_extra=require(_0x7988('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7988('0x6'));var config=require(_0x7988('0x7'));var controller=require(_0x7988('0x8'));router[_0x7988('0x9')]('/',auth[_0x7988('0xa')](),controller[_0x7988('0xb')]);router[_0x7988('0x9')](_0x7988('0xc'),auth['isAuthenticated'](),controller[_0x7988('0xd')]);router[_0x7988('0x9')](_0x7988('0xe'),auth[_0x7988('0xa')](),controller[_0x7988('0xf')]);router[_0x7988('0x9')](_0x7988('0x10'),auth[_0x7988('0xa')](),controller[_0x7988('0x11')]);router[_0x7988('0x9')](_0x7988('0x12'),auth['isAuthenticated'](),controller['getAnswers']);router[_0x7988('0x9')]('/:id/in_servers',auth[_0x7988('0xa')](),controller['getImap']);router['get'](_0x7988('0x13'),auth[_0x7988('0xa')](),controller[_0x7988('0x14')]);router['get']('/:id/interactions',auth[_0x7988('0xa')](),controller[_0x7988('0x15')]);router[_0x7988('0x9')]('/:id/applications',auth[_0x7988('0xa')](),controller[_0x7988('0x16')]);router[_0x7988('0x9')]('/:id/messages',auth[_0x7988('0xa')](),controller['getMessages']);router[_0x7988('0x9')](_0x7988('0x17'),auth[_0x7988('0xa')](),controller[_0x7988('0x18')]);router[_0x7988('0x9')](_0x7988('0x19'),auth['isAuthenticated'](),controller[_0x7988('0x1a')]);router[_0x7988('0x1b')](_0x7988('0x10'),auth[_0x7988('0xa')](),controller[_0x7988('0x1c')]);router[_0x7988('0x1b')]('/:id/canned_answers',auth[_0x7988('0xa')](),controller[_0x7988('0x1d')]);router[_0x7988('0x1b')]('/',auth[_0x7988('0xa')](),controller[_0x7988('0x1e')]);router[_0x7988('0x1b')]('/:id/in_servers',auth[_0x7988('0xa')](),controller['addImap']);router[_0x7988('0x1b')](_0x7988('0x13'),auth[_0x7988('0xa')](),controller[_0x7988('0x1f')]);router[_0x7988('0x1b')](_0x7988('0x20'),auth[_0x7988('0xa')](),controller[_0x7988('0x21')]);router[_0x7988('0x1b')](_0x7988('0x22'),auth[_0x7988('0xa')](),controller['addApplications']);router['post'](_0x7988('0x23'),auth[_0x7988('0xa')](),controller[_0x7988('0x24')]);router['post']('/:id/users',auth[_0x7988('0xa')](),controller[_0x7988('0x25')]);router[_0x7988('0x26')]('/:id',auth['isAuthenticated'](),controller[_0x7988('0x27')]);router['delete'](_0x7988('0x10'),auth[_0x7988('0xa')](),controller[_0x7988('0x28')]);router[_0x7988('0x29')](_0x7988('0x12'),auth['isAuthenticated'](),controller[_0x7988('0x2a')]);router[_0x7988('0x29')](_0x7988('0x2b'),auth['isAuthenticated'](),controller['removeImap']);router[_0x7988('0x29')](_0x7988('0x13'),auth[_0x7988('0xa')](),controller[_0x7988('0x2c')]);router[_0x7988('0x29')](_0x7988('0xe'),auth[_0x7988('0xa')](),controller['destroy']);router[_0x7988('0x29')](_0x7988('0x19'),auth[_0x7988('0xa')](),controller[_0x7988('0x2d')]);module[_0x7988('0x2e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x089f=['STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDisposition','exports'];(function(_0x40ddcf,_0x46a05b){var _0x24a008=function(_0x1d02e5){while(--_0x1d02e5){_0x40ddcf['push'](_0x40ddcf['shift']());}};_0x24a008(++_0x46a05b);}(_0x089f,0x1c7));var _0xf089=function(_0x4486bb,_0xd2d18a){_0x4486bb=_0x4486bb-0x0;var _0x1155ac=_0x089f[_0x4486bb];return _0x1155ac;};'use strict';var Sequelize=require('sequelize');module[_0xf089('0x0')]={'description':{'type':Sequelize[_0xf089('0x1')]},'name':{'type':Sequelize[_0xf089('0x1')],'allowNull':![]},'service':{'type':Sequelize[_0xf089('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0xf089('0x1')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'key':{'type':Sequelize[_0xf089('0x1')],'allowNull':![]},'template':{'type':Sequelize[_0xf089('0x3')]},'markAsUnread':{'type':Sequelize[_0xf089('0x2')],'defaultValue':![]},'fontFamily':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf089('0x4')},'fontSize':{'type':Sequelize[_0xf089('0x5')](0x2)[_0xf089('0x6')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0xf089('0x7');}},'notificationSound':{'type':Sequelize[_0xf089('0x2')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf089('0x2')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xf089('0x2')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xf089('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xf089('0x2')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xf089('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf089('0x5')],'allowNull':!![],'defaultValue':null,'comment':_0xf089('0x8')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0xf089('0x9'),'set':function(_0x2221a4){if(!_0x2221a4)this[_0xf089('0xa')]('mandatoryDispositionPauseId',null);this[_0xf089('0xa')](_0xf089('0xb'),_0x2221a4);}}};
\ No newline at end of file
+var _0xf2ca=['STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition','sequelize','exports'];(function(_0x3dc1a0,_0xb49eae){var _0x573b60=function(_0x91986b){while(--_0x91986b){_0x3dc1a0['push'](_0x3dc1a0['shift']());}};_0x573b60(++_0xb49eae);}(_0xf2ca,0x16a));var _0xaf2c=function(_0x254081,_0x20731a){_0x254081=_0x254081-0x0;var _0x5d1e2a=_0xf2ca[_0x254081];return _0x5d1e2a;};'use strict';var Sequelize=require(_0xaf2c('0x0'));module[_0xaf2c('0x1')]={'description':{'type':Sequelize[_0xaf2c('0x2')]},'name':{'type':Sequelize['STRING'],'allowNull':![]},'service':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':![]},'email':{'type':Sequelize[_0xaf2c('0x2')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':!![]},'key':{'type':Sequelize[_0xaf2c('0x2')],'allowNull':![]},'template':{'type':Sequelize[_0xaf2c('0x4')]},'markAsUnread':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':![]},'fontFamily':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xaf2c('0x5')},'fontSize':{'type':Sequelize[_0xaf2c('0x6')](0x2)[_0xaf2c('0x7')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0xaf2c('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[_0xaf2c('0x3')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xaf2c('0x6')],'allowNull':!![],'defaultValue':null,'comment':_0xaf2c('0x8')},'mandatoryDisposition':{'type':Sequelize[_0xaf2c('0x3')],'defaultValue':![],'comment':_0xaf2c('0x9'),'set':function(_0x5ad9b0){if(!_0x5ad9b0)this['setDataValue'](_0xaf2c('0xa'),null);this[_0xaf2c('0xb')](_0xaf2c('0xc'),_0x5ad9b0);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x900f=['getInteractions','MailInteraction','nolimit','CmContact','Contact','User','Owner','fullname','internal','Tag','color','tag','addApplications','sequelize','MailApplication','findAndCountAll','priority','getApplications','$gte','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inlineCss','split','List','Contacts','updatedAt','DESC','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','auth','secure','ListId','List\x20not\x20found','messageId','attach','out','Interaction','Messages','VerifySmtp','verifySmtp','Sequelize','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','fs-extra','squel','jsforce','desk.js','to-csv','querystring','papaparse','html-to-text','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','jayson/promise','client','http','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','sendStatus','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','update','destroy','get','UserProfileResource','stack','name','send','index','MailServerIn','Imap','MailServerOut','Pause','mandatoryDispositionPause','map','rawAttributes','fieldName','type','key','keys','query','intersection','attributes','model','fields','hasOwnProperty','sort','filters','filter','where','merge','options','count','include','MailAccount','findAll','rows','catch','show','params','includeAll','find','body','Smtp','describe','addDisposition','MailAccountId','create','getDispositions','findOne','length','order','pick','Disposition','removeDispositions','addAnswer','CannedAnswer','getAnswers','removeAnswers','email','isNil','active','description','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','MailAccounts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','setImap','getSmtp','addSmtp','removeSmtp','setSmtp','addInteraction','ids','omit'];(function(_0x2d2326,_0x37c765){var _0xe0854e=function(_0x1e18cf){while(--_0x1e18cf){_0x2d2326['push'](_0x2d2326['shift']());}};_0xe0854e(++_0x37c765);}(_0x900f,0x100));var _0xf900=function(_0x379ee5,_0x336c42){_0x379ee5=_0x379ee5-0x0;var _0x114694=_0x900f[_0x379ee5];return _0x114694;};'use strict';var emlformat=require(_0xf900('0x0'));var rimraf=require(_0xf900('0x1'));var zipdir=require(_0xf900('0x2'));var jsonpatch=require(_0xf900('0x3'));var rp=require(_0xf900('0x4'));var moment=require(_0xf900('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xf900('0x6'));var path=require(_0xf900('0x7'));var sox=require(_0xf900('0x8'));var csv=require('to-csv');var ejs=require(_0xf900('0x9'));var fs=require('fs');var fs_extra=require(_0xf900('0xa'));var _=require('lodash');var squel=require(_0xf900('0xb'));var crypto=require('crypto');var jsforce=require(_0xf900('0xc'));var deskjs=require(_0xf900('0xd'));var toCsv=require(_0xf900('0xe'));var querystring=require(_0xf900('0xf'));var Papa=require(_0xf900('0x10'));var htmlToText=require(_0xf900('0x11'));var juice=require('juice');var Redis=require('ioredis');var authService=require(_0xf900('0x12'));var qs=require(_0xf900('0x13'));var as=require(_0xf900('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf900('0x15'))('api');var utils=require(_0xf900('0x16'));var config=require(_0xf900('0x17'));var licenseUtil=require(_0xf900('0x18'));var db=require(_0xf900('0x19'))['db'];config[_0xf900('0x1a')]=_[_0xf900('0x1b')](config[_0xf900('0x1a')],{'host':_0xf900('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf900('0x1a')]));require('./mailAccount.socket')[_0xf900('0x1d')](socket);var jayson=require(_0xf900('0x1e'));var client=jayson[_0xf900('0x1f')][_0xf900('0x20')]({'port':0x232b});function respondWithRpcPromise(_0x48c58b,_0x3e83b3,_0x4443e0,_0x2c2123){return new BPromise(function(_0x39b912,_0x715d90){var _0x458159=_0x2c2123||client;return _0x458159[_0xf900('0x21')](_0x48c58b,_0x4443e0)[_0xf900('0x22')](function(_0x4b2bb7){logger['info'](_0xf900('0x23'),_0x3e83b3,_0xf900('0x24'));logger[_0xf900('0x25')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x3e83b3,_0xf900('0x24'),JSON[_0xf900('0x26')](_0x4b2bb7));if(_0x4b2bb7[_0xf900('0x27')]){if(_0x4b2bb7[_0xf900('0x27')][_0xf900('0x28')]===0x1f4){logger[_0xf900('0x27')](_0xf900('0x23'),_0x3e83b3,_0x4b2bb7[_0xf900('0x27')]['message']);return _0x715d90(_0x4b2bb7[_0xf900('0x27')][_0xf900('0x29')]);}logger[_0xf900('0x27')](_0xf900('0x23'),_0x3e83b3,_0x4b2bb7[_0xf900('0x27')][_0xf900('0x29')]);return _0x39b912(_0x4b2bb7['error'][_0xf900('0x29')]);}else{logger[_0xf900('0x2a')](_0xf900('0x23'),_0x3e83b3,_0xf900('0x24'));_0x39b912(_0x4b2bb7[_0xf900('0x2b')][_0xf900('0x29')]);}})['catch'](function(_0x4fbe74){logger[_0xf900('0x27')](_0xf900('0x23'),_0x3e83b3,_0x4fbe74);_0x715d90(_0x4fbe74);});});}function respondWithStatusCode(_0x5d8fad,_0x20168a){_0x20168a=_0x20168a||0xcc;return function(_0x17db9b){if(_0x17db9b){return _0x5d8fad[_0xf900('0x2c')](_0x20168a);}return _0x5d8fad[_0xf900('0x2d')](_0x20168a)[_0xf900('0x2e')]();};}function respondWithResult(_0x2999c9,_0x4bc1c1){_0x4bc1c1=_0x4bc1c1||0xc8;return function(_0x3906e6){if(_0x3906e6){return _0x2999c9[_0xf900('0x2d')](_0x4bc1c1)[_0xf900('0x2f')](_0x3906e6);}};}function respondWithFilteredResult(_0x49ee32,_0xbdf876){return function(_0xa7af3f){if(_0xa7af3f){var _0x4bac75=typeof _0xbdf876[_0xf900('0x30')]===_0xf900('0x31')&&typeof _0xbdf876[_0xf900('0x32')]===_0xf900('0x31');var _0x3c9db5=_0xa7af3f['count'];var _0x1ecc24=_0x4bac75?0x0:_0xbdf876[_0xf900('0x30')];var _0x5bc067=_0x4bac75?_0xa7af3f['count']:_0xbdf876[_0xf900('0x30')]+_0xbdf876[_0xf900('0x32')];var _0x155ed8;if(_0x5bc067>=_0x3c9db5){_0x5bc067=_0x3c9db5;_0x155ed8=0xc8;}else{_0x155ed8=0xce;}_0x49ee32[_0xf900('0x2d')](_0x155ed8);return _0x49ee32[_0xf900('0x33')](_0xf900('0x34'),_0x1ecc24+'-'+_0x5bc067+'/'+_0x3c9db5)[_0xf900('0x2f')](_0xa7af3f);}return null;};}function patchUpdates(_0x28aae9){return function(_0x3f8bff){try{jsonpatch[_0xf900('0x35')](_0x3f8bff,_0x28aae9,!![]);}catch(_0xd4144c){return BPromise[_0xf900('0x36')](_0xd4144c);}return _0x3f8bff[_0xf900('0x37')]();};}function saveUpdates(_0x34db9f,_0x3e42a5){return function(_0x3d61ea){if(_0x3d61ea){return _0x3d61ea[_0xf900('0x38')](_0x34db9f)[_0xf900('0x22')](function(_0xfa1927){return _0xfa1927;});}return null;};}function removeEntity(_0x2afa79,_0x5a3a33){return function(_0x384307){if(_0x384307){return _0x384307[_0xf900('0x39')]()['then'](function(){var _0x4fcc73=_0x384307[_0xf900('0x3a')]({'plain':!![]});var _0x5a7d23='MailAccounts';return db[_0xf900('0x3b')][_0xf900('0x39')]({'where':{'type':_0x5a7d23,'resourceId':_0x4fcc73['id']}})[_0xf900('0x22')](function(){return _0x384307;});})['then'](function(){_0x2afa79['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e89fb,_0x3ed1c4){return function(_0x54ddac){if(!_0x54ddac){_0x4e89fb[_0xf900('0x2c')](0x194);}return _0x54ddac;};}function handleError(_0x4da5ef,_0x5bf41c){_0x5bf41c=_0x5bf41c||0x1f4;return function(_0x2a285b){logger[_0xf900('0x27')](_0x2a285b[_0xf900('0x3c')]);if(_0x2a285b['name']){delete _0x2a285b[_0xf900('0x3d')];}_0x4da5ef[_0xf900('0x2d')](_0x5bf41c)[_0xf900('0x3e')](_0x2a285b);};}exports[_0xf900('0x3f')]=function(_0x54ffdd,_0x1908e3){var _0x54dfbd={'include':[{'model':db[_0xf900('0x40')],'as':_0xf900('0x41')},{'model':db[_0xf900('0x42')],'as':'Smtp'},{'model':db[_0xf900('0x43')],'as':_0xf900('0x44')}]},_0x50292b={},_0xdc4b18={'count':0x0,'rows':[]};var _0x15652c=_[_0xf900('0x45')](db['MailAccount'][_0xf900('0x46')],function(_0x27f9f2){return{'name':_0x27f9f2[_0xf900('0x47')],'type':_0x27f9f2[_0xf900('0x48')][_0xf900('0x49')]};});_0x50292b['model']=_['map'](_0x15652c,'name');_0x50292b['query']=_[_0xf900('0x4a')](_0x54ffdd[_0xf900('0x4b')]);_0x50292b['filters']=_[_0xf900('0x4c')](_0x50292b['model'],_0x50292b['query']);_0x54dfbd[_0xf900('0x4d')]=_[_0xf900('0x4c')](_0x50292b[_0xf900('0x4e')],qs['fields'](_0x54ffdd[_0xf900('0x4b')][_0xf900('0x4f')]));_0x54dfbd['attributes']=_0x54dfbd[_0xf900('0x4d')]['length']?_0x54dfbd[_0xf900('0x4d')]:_0x50292b['model'];if(!_0x54ffdd[_0xf900('0x4b')][_0xf900('0x50')]('nolimit')){_0x54dfbd[_0xf900('0x32')]=qs[_0xf900('0x32')](_0x54ffdd['query'][_0xf900('0x32')]);_0x54dfbd[_0xf900('0x30')]=qs['offset'](_0x54ffdd[_0xf900('0x4b')][_0xf900('0x30')]);}_0x54dfbd['order']=qs[_0xf900('0x51')](_0x54ffdd[_0xf900('0x4b')][_0xf900('0x51')]);_0x54dfbd['where']=qs[_0xf900('0x52')](_['pick'](_0x54ffdd[_0xf900('0x4b')],_0x50292b['filters']),_0x15652c);if(_0x54ffdd[_0xf900('0x4b')][_0xf900('0x53')]){_0x54dfbd[_0xf900('0x54')]=_[_0xf900('0x55')](_0x54dfbd[_0xf900('0x54')],{'$or':_[_0xf900('0x45')](_0x15652c,function(_0x470fc2){if(_0x470fc2[_0xf900('0x48')]!=='VIRTUAL'){var _0x2f36bb={};_0x2f36bb[_0x470fc2['name']]={'$like':'%'+_0x54ffdd[_0xf900('0x4b')]['filter']+'%'};return _0x2f36bb;}})});}_0x54dfbd=_[_0xf900('0x55')]({},_0x54dfbd,_0x54ffdd[_0xf900('0x56')]);var _0x31213e={'where':_0x54dfbd[_0xf900('0x54')]};return db['MailAccount'][_0xf900('0x57')](_0x31213e)[_0xf900('0x22')](function(_0x323df6){_0xdc4b18[_0xf900('0x57')]=_0x323df6;if(_0x54ffdd['query']['includeAll']){_0x54dfbd[_0xf900('0x58')]=[{'all':!![]}];}return db[_0xf900('0x59')][_0xf900('0x5a')](_0x54dfbd);})[_0xf900('0x22')](function(_0x1fa6f6){_0xdc4b18[_0xf900('0x5b')]=_0x1fa6f6;return _0xdc4b18;})[_0xf900('0x22')](respondWithFilteredResult(_0x1908e3,_0x54dfbd))[_0xf900('0x5c')](handleError(_0x1908e3,null));};exports[_0xf900('0x5d')]=function(_0x50910e,_0x3e9f8b){var _0x42c98a={'raw':![],'where':{'id':_0x50910e[_0xf900('0x5e')]['id']},'include':[{'model':db['MailServerIn'],'as':'Imap'},{'model':db['MailServerOut'],'as':'Smtp'},{'model':db[_0xf900('0x43')],'as':_0xf900('0x44')}]},_0x385c99={};_0x385c99['model']=_[_0xf900('0x4a')](db[_0xf900('0x59')][_0xf900('0x46')]);_0x385c99[_0xf900('0x4b')]=_['keys'](_0x50910e['query']);_0x385c99['filters']=_['intersection'](_0x385c99['model'],_0x385c99[_0xf900('0x4b')]);_0x42c98a[_0xf900('0x4d')]=_[_0xf900('0x4c')](_0x385c99[_0xf900('0x4e')],qs['fields'](_0x50910e['query'][_0xf900('0x4f')]));_0x42c98a[_0xf900('0x4d')]=_0x42c98a[_0xf900('0x4d')]['length']?_0x42c98a[_0xf900('0x4d')]:_0x385c99[_0xf900('0x4e')];if(_0x50910e[_0xf900('0x4b')][_0xf900('0x5f')]){_0x42c98a['include']=[{'all':!![]}];}_0x42c98a=_[_0xf900('0x55')]({},_0x42c98a,_0x50910e[_0xf900('0x56')]);return db[_0xf900('0x59')][_0xf900('0x60')](_0x42c98a)['then'](handleEntityNotFound(_0x3e9f8b,null))['then'](respondWithResult(_0x3e9f8b,null))[_0xf900('0x5c')](handleError(_0x3e9f8b,null));};exports[_0xf900('0x38')]=function(_0x552dee,_0x3413c9){if(_0x552dee[_0xf900('0x61')]['id']){delete _0x552dee[_0xf900('0x61')]['id'];}return db[_0xf900('0x59')][_0xf900('0x60')]({'where':{'id':_0x552dee[_0xf900('0x5e')]['id']},'include':[{'model':db[_0xf900('0x40')],'as':_0xf900('0x41')},{'model':db[_0xf900('0x42')],'as':_0xf900('0x62')},{'model':db[_0xf900('0x43')],'as':'mandatoryDispositionPause'}]})[_0xf900('0x22')](handleEntityNotFound(_0x3413c9,null))[_0xf900('0x22')](saveUpdates(_0x552dee[_0xf900('0x61')],null))[_0xf900('0x22')](function(_0x533067){if(_0x533067&&_0x552dee[_0xf900('0x61')][_0xf900('0x41')]){return db['MailServerIn']['update'](_0x552dee['body'][_0xf900('0x41')],{'where':{'MailAccountId':_0x533067['id']}})[_0xf900('0x22')](function(){return _0x533067;});}return _0x533067;})[_0xf900('0x22')](function(_0x2f516e){if(_0x2f516e&&_0x552dee[_0xf900('0x61')][_0xf900('0x62')]){return db['MailServerOut'][_0xf900('0x38')](_0x552dee[_0xf900('0x61')][_0xf900('0x62')],{'where':{'MailAccountId':_0x2f516e['id']}})['then'](function(){return _0x2f516e;});}return _0x2f516e;})[_0xf900('0x22')](respondWithResult(_0x3413c9,null))[_0xf900('0x5c')](handleError(_0x3413c9,null));};exports[_0xf900('0x63')]=function(_0x52107b,_0x2bdcb0){return db[_0xf900('0x59')]['describe']()[_0xf900('0x22')](respondWithResult(_0x2bdcb0,null))[_0xf900('0x5c')](handleError(_0x2bdcb0,null));};exports[_0xf900('0x64')]=function(_0xb48356,_0x1c2d26,_0xd4acf4){if(_0xb48356[_0xf900('0x61')]['id']){delete _0xb48356[_0xf900('0x61')]['id'];}return db['MailAccount']['find']({'where':{'id':_0xb48356[_0xf900('0x5e')]['id']}})['then'](handleEntityNotFound(_0x1c2d26,null))[_0xf900('0x22')](function(_0x413675){if(_0x413675){_0xb48356[_0xf900('0x61')][_0xf900('0x65')]=_0x413675['id'];return db['Disposition'][_0xf900('0x66')](_0xb48356[_0xf900('0x61')]);}})['then'](respondWithResult(_0x1c2d26,null))['catch'](handleError(_0x1c2d26,null));};exports[_0xf900('0x67')]=function(_0x5ee0ff,_0x138137,_0x50dbb4){var _0x5b51a3={'raw':![],'where':{}};var _0x459d30={};var _0x44a0a5={'count':0x0,'rows':[]};return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x5ee0ff['params']['id']}})['then'](handleEntityNotFound(_0x138137,null))['then'](function(_0x466b03){if(_0x466b03){_0x459d30[_0xf900('0x4e')]=_['keys'](db['Disposition'][_0xf900('0x46')]);_0x459d30[_0xf900('0x4b')]=_[_0xf900('0x4a')](_0x5ee0ff[_0xf900('0x4b')]);_0x459d30[_0xf900('0x52')]=_[_0xf900('0x4c')](_0x459d30[_0xf900('0x4e')],_0x459d30['query']);_0x5b51a3[_0xf900('0x4d')]=_['intersection'](_0x459d30[_0xf900('0x4e')],qs[_0xf900('0x4f')](_0x5ee0ff[_0xf900('0x4b')][_0xf900('0x4f')]));_0x5b51a3[_0xf900('0x4d')]=_0x5b51a3[_0xf900('0x4d')][_0xf900('0x69')]?_0x5b51a3[_0xf900('0x4d')]:_0x459d30['model'];if(!_0x5ee0ff['query'][_0xf900('0x50')]('nolimit')){_0x5b51a3[_0xf900('0x32')]=qs[_0xf900('0x32')](_0x5ee0ff[_0xf900('0x4b')][_0xf900('0x32')]);_0x5b51a3[_0xf900('0x30')]=qs['offset'](_0x5ee0ff['query'][_0xf900('0x30')]);}_0x5b51a3[_0xf900('0x6a')]=qs[_0xf900('0x51')](_0x5ee0ff[_0xf900('0x4b')][_0xf900('0x51')]);_0x5b51a3[_0xf900('0x54')]=qs[_0xf900('0x52')](_[_0xf900('0x6b')](_0x5ee0ff[_0xf900('0x4b')],_0x459d30[_0xf900('0x52')]));_0x5b51a3['where'][_0xf900('0x65')]=_0x466b03['id'];if(_0x5ee0ff[_0xf900('0x4b')][_0xf900('0x53')]){_0x5b51a3[_0xf900('0x54')]=_[_0xf900('0x55')](_0x5b51a3['where'],{'$or':_[_0xf900('0x45')](_0x5b51a3[_0xf900('0x4d')],function(_0x599808){var _0x1677f1={};_0x1677f1[_0x599808]={'$like':'%'+_0x5ee0ff[_0xf900('0x4b')][_0xf900('0x53')]+'%'};return _0x1677f1;})});}_0x5b51a3=_['merge']({},_0x5b51a3,_0x5ee0ff[_0xf900('0x56')]);return db['Disposition'][_0xf900('0x57')]({'where':_0x5b51a3['where']})[_0xf900('0x22')](function(_0x529846){_0x44a0a5['count']=_0x529846;if(_0x5ee0ff[_0xf900('0x4b')][_0xf900('0x5f')]){_0x5b51a3[_0xf900('0x58')]=[{'all':!![]}];}return db[_0xf900('0x6c')]['findAll'](_0x5b51a3);})[_0xf900('0x22')](function(_0x2f10bf){_0x44a0a5[_0xf900('0x5b')]=_0x2f10bf;return _0x44a0a5;});}})[_0xf900('0x22')](respondWithFilteredResult(_0x138137,_0x5b51a3))['catch'](handleError(_0x138137,null));};exports['removeDispositions']=function(_0x3f10e0,_0x9f91cf,_0x4b96ba){return db[_0xf900('0x59')][_0xf900('0x60')]({'where':{'id':_0x3f10e0[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x9f91cf,null))[_0xf900('0x22')](function(_0x573d0c){if(_0x573d0c){return _0x573d0c[_0xf900('0x6d')](_0x3f10e0['query']['ids']);}})[_0xf900('0x22')](respondWithStatusCode(_0x9f91cf,null))[_0xf900('0x5c')](handleError(_0x9f91cf,null));};exports[_0xf900('0x6e')]=function(_0x289f79,_0x53231c,_0x531104){if(_0x289f79['body']['id']){delete _0x289f79['body']['id'];}return db['MailAccount']['find']({'where':{'id':_0x289f79[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x53231c,null))[_0xf900('0x22')](function(_0x38887c){if(_0x38887c){_0x289f79[_0xf900('0x61')]['MailAccountId']=_0x38887c['id'];return db[_0xf900('0x6f')][_0xf900('0x66')](_0x289f79['body']);}})[_0xf900('0x22')](respondWithResult(_0x53231c,null))[_0xf900('0x5c')](handleError(_0x53231c,null));};exports[_0xf900('0x70')]=function(_0x4827a6,_0xeff2d0,_0xfa6a87){var _0x2c6501={'raw':![],'where':{}};var _0x5d5f93={};var _0x140aa9={'count':0x0,'rows':[]};return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x4827a6['params']['id']}})[_0xf900('0x22')](handleEntityNotFound(_0xeff2d0,null))[_0xf900('0x22')](function(_0x18089f){if(_0x18089f){_0x5d5f93[_0xf900('0x4e')]=_[_0xf900('0x4a')](db['CannedAnswer']['rawAttributes']);_0x5d5f93['query']=_['keys'](_0x4827a6[_0xf900('0x4b')]);_0x5d5f93[_0xf900('0x52')]=_[_0xf900('0x4c')](_0x5d5f93[_0xf900('0x4e')],_0x5d5f93[_0xf900('0x4b')]);_0x2c6501[_0xf900('0x4d')]=_[_0xf900('0x4c')](_0x5d5f93[_0xf900('0x4e')],qs['fields'](_0x4827a6[_0xf900('0x4b')][_0xf900('0x4f')]));_0x2c6501[_0xf900('0x4d')]=_0x2c6501['attributes']['length']?_0x2c6501[_0xf900('0x4d')]:_0x5d5f93[_0xf900('0x4e')];if(!_0x4827a6[_0xf900('0x4b')][_0xf900('0x50')]('nolimit')){_0x2c6501[_0xf900('0x32')]=qs[_0xf900('0x32')](_0x4827a6[_0xf900('0x4b')][_0xf900('0x32')]);_0x2c6501[_0xf900('0x30')]=qs[_0xf900('0x30')](_0x4827a6[_0xf900('0x4b')][_0xf900('0x30')]);}_0x2c6501[_0xf900('0x6a')]=qs[_0xf900('0x51')](_0x4827a6[_0xf900('0x4b')][_0xf900('0x51')]);_0x2c6501[_0xf900('0x54')]=qs[_0xf900('0x52')](_['pick'](_0x4827a6[_0xf900('0x4b')],_0x5d5f93['filters']));_0x2c6501[_0xf900('0x54')][_0xf900('0x65')]=_0x18089f['id'];if(_0x4827a6[_0xf900('0x4b')]['filter']){_0x2c6501[_0xf900('0x54')]=_[_0xf900('0x55')](_0x2c6501[_0xf900('0x54')],{'$or':_[_0xf900('0x45')](_0x2c6501[_0xf900('0x4d')],function(_0x593c1b){var _0x170309={};_0x170309[_0x593c1b]={'$like':'%'+_0x4827a6[_0xf900('0x4b')][_0xf900('0x53')]+'%'};return _0x170309;})});}_0x2c6501=_[_0xf900('0x55')]({},_0x2c6501,_0x4827a6[_0xf900('0x56')]);return db[_0xf900('0x6f')]['count']({'where':_0x2c6501[_0xf900('0x54')]})[_0xf900('0x22')](function(_0x8dba68){_0x140aa9[_0xf900('0x57')]=_0x8dba68;if(_0x4827a6[_0xf900('0x4b')]['includeAll']){_0x2c6501['include']=[{'all':!![]}];}return db[_0xf900('0x6f')][_0xf900('0x5a')](_0x2c6501);})[_0xf900('0x22')](function(_0x14d541){_0x140aa9['rows']=_0x14d541;return _0x140aa9;});}})[_0xf900('0x22')](respondWithFilteredResult(_0xeff2d0,_0x2c6501))[_0xf900('0x5c')](handleError(_0xeff2d0,null));};exports['removeAnswers']=function(_0x285df8,_0x734b60,_0x26d506){return db[_0xf900('0x59')][_0xf900('0x60')]({'where':{'id':_0x285df8[_0xf900('0x5e')]['id']}})['then'](handleEntityNotFound(_0x734b60,null))[_0xf900('0x22')](function(_0x12902f){if(_0x12902f){return _0x12902f[_0xf900('0x71')](_0x285df8['query']['ids']);}})[_0xf900('0x22')](respondWithStatusCode(_0x734b60,null))[_0xf900('0x5c')](handleError(_0x734b60,null));};exports[_0xf900('0x66')]=function(_0x209884,_0x5979ea){var _0x1b2b86={'name':_0x209884[_0xf900('0x61')]['name'],'key':_0x209884[_0xf900('0x61')]['key'],'email':_0x209884[_0xf900('0x61')][_0xf900('0x72')],'ListId':_0x209884[_0xf900('0x61')]['ListId'],'active':!_[_0xf900('0x73')](_0x209884[_0xf900('0x61')][_0xf900('0x74')])?_0x209884[_0xf900('0x61')][_0xf900('0x74')]:!![],'description':_0x209884['body'][_0xf900('0x75')]||null,'Imap':{},'Smtp':{}};if(_[_0xf900('0x73')](_0x209884['body'][_0xf900('0x76')])){if(_0x209884[_0xf900('0x61')][_0xf900('0x77')]){_0x1b2b86[_0xf900('0x41')]['user']=_0x1b2b86[_0xf900('0x62')][_0xf900('0x78')]=_0x209884['body'][_0xf900('0x79')];_0x1b2b86['Imap'][_0xf900('0x7a')]=_0x1b2b86['Smtp'][_0xf900('0x7b')]=_0x209884[_0xf900('0x61')][_0xf900('0x7c')];}else{_0x1b2b86['Imap'][_0xf900('0x7d')]=_0x1b2b86[_0xf900('0x62')][_0xf900('0x7d')]=![];}_0x1b2b86[_0xf900('0x41')][_0xf900('0x7e')]=_0x209884[_0xf900('0x61')][_0xf900('0x41')][_0xf900('0x7e')];_0x1b2b86[_0xf900('0x41')][_0xf900('0x7f')]=_0x209884[_0xf900('0x61')][_0xf900('0x41')][_0xf900('0x7f')];_0x1b2b86[_0xf900('0x62')][_0xf900('0x7e')]=_0x209884[_0xf900('0x61')]['Smtp'][_0xf900('0x7e')];_0x1b2b86['Smtp'][_0xf900('0x7f')]=_0x209884[_0xf900('0x61')][_0xf900('0x62')]['port'];}else{_0x1b2b86[_0xf900('0x41')]['service']=_0x1b2b86['Smtp'][_0xf900('0x80')]=_0x209884[_0xf900('0x61')][_0xf900('0x76')];_0x1b2b86[_0xf900('0x41')][_0xf900('0x78')]=_0x1b2b86[_0xf900('0x62')][_0xf900('0x78')]=_0x209884[_0xf900('0x61')][_0xf900('0x79')];_0x1b2b86['Imap']['password']=_0x1b2b86[_0xf900('0x62')][_0xf900('0x7b')]=_0x209884[_0xf900('0x61')][_0xf900('0x7c')];}return db['MailAccount'][_0xf900('0x66')](_0x1b2b86,{'include':[{'model':db[_0xf900('0x42')],'as':'Smtp'},{'model':db[_0xf900('0x40')],'as':_0xf900('0x41')}]})[_0xf900('0x22')](function(_0x1ceac8){var _0x3d9f84=_0x209884[_0xf900('0x78')][_0xf900('0x3a')]({'plain':!![]});if(!_0x3d9f84)throw new Error(_0xf900('0x81'));if(_0x3d9f84[_0xf900('0x82')]===_0xf900('0x78')){var _0x5a2cc4=_0x1ceac8[_0xf900('0x3a')]({'plain':!![]});return db['UserProfileSection']['find']({'where':{'name':_0xf900('0x83'),'userProfileId':_0x3d9f84[_0xf900('0x84')]},'raw':!![]})[_0xf900('0x22')](function(_0x49b7aa){if(_0x49b7aa&&_0x49b7aa[_0xf900('0x85')]===0x0){return db[_0xf900('0x3b')][_0xf900('0x66')]({'name':_0x5a2cc4[_0xf900('0x3d')],'resourceId':_0x5a2cc4['id'],'type':_0x49b7aa['name'],'sectionId':_0x49b7aa['id']},{})[_0xf900('0x22')](function(){return _0x1ceac8;});}else{return _0x1ceac8;}})[_0xf900('0x5c')](function(_0x1adeec){logger[_0xf900('0x27')](_0xf900('0x86'),_0x1adeec);throw _0x1adeec;});}return _0x1ceac8;})['then'](respondWithResult(_0x5979ea,0xc9))[_0xf900('0x5c')](handleError(_0x5979ea,null));};exports[_0xf900('0x87')]=function(_0x37741f,_0x460d72,_0x2d7e48){return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x37741f[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x460d72,null))['then'](function(_0x190c8a){if(_0x190c8a){return _0x190c8a[_0xf900('0x87')]();}return null;})[_0xf900('0x22')](respondWithResult(_0x460d72,null))[_0xf900('0x5c')](handleError(_0x460d72,null));};exports[_0xf900('0x88')]=function(_0x205c05,_0x1d9012,_0x1f172f){if(_0x205c05[_0xf900('0x61')]['id']){delete _0x205c05[_0xf900('0x61')]['id'];}return db[_0xf900('0x59')]['find']({'where':{'id':_0x205c05['params']['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x1d9012,null))['then'](function(_0xa1aeb3){if(_0xa1aeb3){_0x205c05[_0xf900('0x61')][_0xf900('0x65')]=_0xa1aeb3['id'];return db[_0xf900('0x40')][_0xf900('0x66')](_0x205c05['body']);}})[_0xf900('0x22')](respondWithResult(_0x1d9012,null))['catch'](handleError(_0x1d9012,null));};exports[_0xf900('0x89')]=function(_0x5b9ee0,_0xf2e41d,_0x15ddab){return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x5b9ee0['params']['id']}})['then'](handleEntityNotFound(_0xf2e41d,null))[_0xf900('0x22')](function(_0x570222){if(_0x570222){return _0x570222[_0xf900('0x8a')](null);}return null;})['then'](respondWithStatusCode(_0xf2e41d,null))[_0xf900('0x5c')](handleError(_0xf2e41d,null));};exports[_0xf900('0x8b')]=function(_0xfcf2af,_0x58ffd3,_0x1725ee){return db['MailAccount'][_0xf900('0x68')]({'where':{'id':_0xfcf2af[_0xf900('0x5e')]['id']}})['then'](handleEntityNotFound(_0x58ffd3,null))[_0xf900('0x22')](function(_0x123244){if(_0x123244){return _0x123244[_0xf900('0x8b')]();}return null;})['then'](respondWithResult(_0x58ffd3,null))['catch'](handleError(_0x58ffd3,null));};exports[_0xf900('0x8c')]=function(_0x1f7113,_0x402352,_0x4395f4){if(_0x1f7113['body']['id']){delete _0x1f7113[_0xf900('0x61')]['id'];}return db[_0xf900('0x59')][_0xf900('0x60')]({'where':{'id':_0x1f7113[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x402352,null))['then'](function(_0x26d6e9){if(_0x26d6e9){_0x1f7113[_0xf900('0x61')][_0xf900('0x65')]=_0x26d6e9['id'];return db[_0xf900('0x42')][_0xf900('0x66')](_0x1f7113[_0xf900('0x61')]);}})['then'](respondWithResult(_0x402352,null))[_0xf900('0x5c')](handleError(_0x402352,null));};exports[_0xf900('0x8d')]=function(_0x33f3d5,_0x31ed4e,_0x56ef4f){return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x33f3d5[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x31ed4e,null))[_0xf900('0x22')](function(_0x12dbaa){if(_0x12dbaa){return _0x12dbaa[_0xf900('0x8e')](null);}return null;})[_0xf900('0x22')](respondWithStatusCode(_0x31ed4e,null))[_0xf900('0x5c')](handleError(_0x31ed4e,null));};exports[_0xf900('0x8f')]=function(_0x3cb551,_0x36629b,_0x2bcf4e){return db['MailInteraction'][_0xf900('0x60')]({'where':{'id':_0x3cb551[_0xf900('0x5e')]['id']}})['then'](handleEntityNotFound(_0x36629b,null))[_0xf900('0x22')](function(_0x5e17a3){if(_0x5e17a3){return _0x5e17a3[_0xf900('0x8f')](_0x3cb551[_0xf900('0x61')][_0xf900('0x90')],_[_0xf900('0x91')](_0x3cb551['body'],[_0xf900('0x90'),'id'])||{});}})[_0xf900('0x22')](respondWithResult(_0x36629b,null))[_0xf900('0x5c')](handleError(_0x36629b,null));};exports[_0xf900('0x92')]=function(_0x13dc0f,_0x2faa65,_0x32bcdc){var _0x568c7a={'raw':![],'where':{}};var _0x43db2c={};var _0x108727={'count':0x0,'rows':[]};return db['MailAccount'][_0xf900('0x68')]({'where':{'id':_0x13dc0f[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x2faa65,null))[_0xf900('0x22')](function(_0x412fc4){if(_0x412fc4){_0x43db2c['model']=_[_0xf900('0x4a')](db[_0xf900('0x93')][_0xf900('0x46')]);_0x43db2c['query']=_[_0xf900('0x4a')](_0x13dc0f[_0xf900('0x4b')]);_0x43db2c[_0xf900('0x52')]=_[_0xf900('0x4c')](_0x43db2c[_0xf900('0x4e')],_0x43db2c['query']);_0x568c7a['attributes']=_[_0xf900('0x4c')](_0x43db2c[_0xf900('0x4e')],qs['fields'](_0x13dc0f[_0xf900('0x4b')][_0xf900('0x4f')]));_0x568c7a['attributes']=_0x568c7a[_0xf900('0x4d')]['length']?_0x568c7a[_0xf900('0x4d')]:_0x43db2c['model'];if(!_0x13dc0f['query'][_0xf900('0x50')](_0xf900('0x94'))){_0x568c7a[_0xf900('0x32')]=qs[_0xf900('0x32')](_0x13dc0f['query'][_0xf900('0x32')]);_0x568c7a['offset']=qs[_0xf900('0x30')](_0x13dc0f[_0xf900('0x4b')]['offset']);}_0x568c7a[_0xf900('0x6a')]=qs[_0xf900('0x51')](_0x13dc0f[_0xf900('0x4b')][_0xf900('0x51')]);_0x568c7a[_0xf900('0x54')]=qs[_0xf900('0x52')](_[_0xf900('0x6b')](_0x13dc0f[_0xf900('0x4b')],_0x43db2c[_0xf900('0x52')]));_0x568c7a[_0xf900('0x54')][_0xf900('0x65')]=_0x412fc4['id'];if(_0x13dc0f['query'][_0xf900('0x53')]){_0x568c7a[_0xf900('0x54')]=_[_0xf900('0x55')](_0x568c7a[_0xf900('0x54')],{'$or':_[_0xf900('0x45')](_0x568c7a[_0xf900('0x4d')],function(_0x23ed19){var _0x74ec91={};_0x74ec91[_0x23ed19]={'$like':'%'+_0x13dc0f[_0xf900('0x4b')]['filter']+'%'};return _0x74ec91;})});}_0x568c7a=_['merge']({},_0x568c7a,_0x13dc0f[_0xf900('0x56')]);return db[_0xf900('0x93')][_0xf900('0x57')]({'where':_0x568c7a[_0xf900('0x54')]})[_0xf900('0x22')](function(_0x157dd7){_0x108727[_0xf900('0x57')]=_0x157dd7;if(_0x13dc0f[_0xf900('0x4b')][_0xf900('0x5f')]){_0x568c7a['include']=[{'model':db[_0xf900('0x95')],'as':_0xf900('0x96'),'required':![]},{'model':db[_0xf900('0x97')],'as':_0xf900('0x98'),'attributes':[_0xf900('0x3d'),_0xf900('0x99'),_0xf900('0x9a')],'required':![]},{'model':db[_0xf900('0x9b')],'as':'Tags','attributes':['id',_0xf900('0x3d'),_0xf900('0x9c')],'where':_0x13dc0f[_0xf900('0x4b')]['tag']?{'id':_0x13dc0f[_0xf900('0x4b')][_0xf900('0x9d')]}:undefined,'required':_0x13dc0f[_0xf900('0x4b')][_0xf900('0x9d')]?!![]:![]}];}return db[_0xf900('0x93')][_0xf900('0x5a')](_0x568c7a);})[_0xf900('0x22')](function(_0x530173){_0x108727[_0xf900('0x5b')]=_0x530173;return _0x108727;});}})['then'](respondWithFilteredResult(_0x2faa65,_0x568c7a))[_0xf900('0x5c')](handleError(_0x2faa65,null));};exports[_0xf900('0x9e')]=function(_0x4bae74,_0x3459c8,_0x45c568){return db['MailAccount'][_0xf900('0x68')]({'where':{'id':_0x4bae74[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x3459c8,null))[_0xf900('0x22')](function(_0x142198){if(_0x142198){return db[_0xf900('0x9f')]['transaction'](function(_0x4d2e26){return db[_0xf900('0xa0')]['destroy']({'where':{'MailAccountId':_0x4bae74[_0xf900('0x5e')]['id']},'transaction':_0x4d2e26})[_0xf900('0x22')](function(_0x41c9c3){var _0x186043=_['map'](_0x4bae74[_0xf900('0x61')],function(_0x390591){_0x390591[_0xf900('0x65')]=_0x4bae74[_0xf900('0x5e')]['id'];return _0x390591;});return db[_0xf900('0xa0')]['bulkCreate'](_0x186043,{'transaction':_0x4d2e26});});})[_0xf900('0x22')](function(){return db[_0xf900('0xa0')][_0xf900('0xa1')]({'where':{'MailAccountId':_0x4bae74[_0xf900('0x5e')]['id']},'order':_0xf900('0xa2')});});}})[_0xf900('0x22')](respondWithResult(_0x3459c8,null))[_0xf900('0x5c')](handleError(_0x3459c8,null));};exports[_0xf900('0xa3')]=function(_0x1aabd1,_0x432d58,_0x4a5aee){var _0x48f6d4={};var _0x30cd2c={};var _0x50a1e5;var _0x514722;return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x1aabd1[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x432d58,null))['then'](function(_0x57436b){if(_0x57436b){_0x50a1e5=_0x57436b;_0x30cd2c[_0xf900('0x4e')]=_[_0xf900('0x4a')](db['MailApplication'][_0xf900('0x46')]);_0x30cd2c[_0xf900('0x4b')]=_[_0xf900('0x4a')](_0x1aabd1[_0xf900('0x4b')]);_0x30cd2c[_0xf900('0x52')]=_[_0xf900('0x4c')](_0x30cd2c['model'],_0x30cd2c[_0xf900('0x4b')]);_0x48f6d4[_0xf900('0x4d')]=_[_0xf900('0x4c')](_0x30cd2c['model'],qs[_0xf900('0x4f')](_0x1aabd1['query'][_0xf900('0x4f')]));_0x48f6d4[_0xf900('0x4d')]=_0x48f6d4[_0xf900('0x4d')][_0xf900('0x69')]?_0x48f6d4['attributes']:_0x30cd2c[_0xf900('0x4e')];_0x48f6d4[_0xf900('0x6a')]=qs[_0xf900('0x51')](_0x1aabd1[_0xf900('0x4b')]['sort']);_0x48f6d4[_0xf900('0x54')]=qs[_0xf900('0x52')](_['pick'](_0x1aabd1[_0xf900('0x4b')],_0x30cd2c[_0xf900('0x52')]));if(_0x1aabd1['query'][_0xf900('0x53')]){_0x48f6d4['where']=_['merge'](_0x48f6d4[_0xf900('0x54')],{'$or':_[_0xf900('0x45')](_0x48f6d4[_0xf900('0x4d')],function(_0x17f957){var _0x25cd2a={};_0x25cd2a[_0x17f957]={'$like':'%'+_0x1aabd1[_0xf900('0x4b')][_0xf900('0x53')]+'%'};return _0x25cd2a;})});}_0x48f6d4=_[_0xf900('0x55')]({},_0x48f6d4,_0x1aabd1[_0xf900('0x56')]);return _0x50a1e5['getApplications'](_0x48f6d4);}})[_0xf900('0x22')](function(_0x252841){if(_0x252841){_0x514722=_0x252841[_0xf900('0x69')];if(!_0x1aabd1[_0xf900('0x4b')][_0xf900('0x50')](_0xf900('0x94'))){_0x48f6d4[_0xf900('0x32')]=qs[_0xf900('0x32')](_0x1aabd1[_0xf900('0x4b')]['limit']);_0x48f6d4[_0xf900('0x30')]=qs[_0xf900('0x30')](_0x1aabd1[_0xf900('0x4b')][_0xf900('0x30')]);}return _0x50a1e5[_0xf900('0xa3')](_0x48f6d4);}})[_0xf900('0x22')](function(_0x19ed78){if(_0x19ed78){return _0x19ed78?{'count':_0x514722,'rows':_0x19ed78}:null;}})[_0xf900('0x22')](respondWithResult(_0x432d58,null))[_0xf900('0x5c')](handleError(_0x432d58,null));};exports['getMessages']=function(_0x27f06d,_0x57c885,_0x31ae7d){var _0x5eccea={'raw':!![],'where':{}};var _0x3251b9={};var _0x450fd4={'count':0x0,'rows':[]};return db[_0xf900('0x59')][_0xf900('0x68')]({'where':{'id':_0x27f06d[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x57c885,null))[_0xf900('0x22')](function(_0x1ff18e){if(_0x1ff18e){_0x3251b9[_0xf900('0x4e')]=_[_0xf900('0x4a')](db['MailMessage'][_0xf900('0x46')]);_0x3251b9[_0xf900('0x4b')]=_[_0xf900('0x4a')](_0x27f06d['query']);_0x3251b9[_0xf900('0x52')]=_[_0xf900('0x4c')](_0x3251b9[_0xf900('0x4e')],_0x3251b9[_0xf900('0x4b')]);_0x5eccea[_0xf900('0x4d')]=_['intersection'](_0x3251b9[_0xf900('0x4e')],qs[_0xf900('0x4f')](_0x27f06d[_0xf900('0x4b')][_0xf900('0x4f')]));_0x5eccea[_0xf900('0x4d')]=_0x5eccea[_0xf900('0x4d')][_0xf900('0x69')]?_0x5eccea[_0xf900('0x4d')]:_0x3251b9[_0xf900('0x4e')];if(!_0x27f06d[_0xf900('0x4b')][_0xf900('0x50')](_0xf900('0x94'))){_0x5eccea[_0xf900('0x32')]=qs['limit'](_0x27f06d[_0xf900('0x4b')]['limit']);_0x5eccea[_0xf900('0x30')]=qs['offset'](_0x27f06d[_0xf900('0x4b')]['offset']);}_0x5eccea['order']=qs[_0xf900('0x51')](_0x27f06d[_0xf900('0x4b')]['sort']);_0x5eccea[_0xf900('0x54')]=qs[_0xf900('0x52')](_[_0xf900('0x6b')](_0x27f06d[_0xf900('0x4b')],_0x3251b9[_0xf900('0x52')]));_0x5eccea[_0xf900('0x54')]['MailAccountId']=_0x1ff18e['id'];if(_0x27f06d[_0xf900('0x4b')][_0xf900('0x53')]){_0x5eccea[_0xf900('0x54')]=_[_0xf900('0x55')](_0x5eccea[_0xf900('0x54')],{'$or':_[_0xf900('0x45')](_0x5eccea[_0xf900('0x4d')],function(_0x1c8f09){var _0x367002={};_0x367002[_0x1c8f09]={'$like':'%'+_0x27f06d['query'][_0xf900('0x53')]+'%'};return _0x367002;})});}if(_0x27f06d[_0xf900('0x4b')][_0xf900('0xa4')]){var _0x47f0bf=_0x27f06d[_0xf900('0x4b')][_0xf900('0xa4')]['split'](',');var _0x40151f={};_0x40151f[_0x47f0bf[0x0]]={'$gte':moment(_0x47f0bf[0x1])[_0xf900('0xa5')](_0xf900('0xa6'))};_0x5eccea[_0xf900('0x54')]=_[_0xf900('0x55')](_0x5eccea['where'],_0x40151f);}_0x5eccea=_[_0xf900('0x55')]({},_0x5eccea,_0x27f06d['options']);return db[_0xf900('0xa7')][_0xf900('0x57')]({'where':_0x5eccea['where']})[_0xf900('0x22')](function(_0x3309f3){_0x450fd4[_0xf900('0x57')]=_0x3309f3;if(_0x27f06d[_0xf900('0x4b')][_0xf900('0x5f')]){_0x5eccea[_0xf900('0x58')]=[{'all':!![]}];}return db[_0xf900('0xa7')][_0xf900('0x5a')](_0x5eccea);})[_0xf900('0x22')](function(_0x2f6dcf){if(_0x27f06d[_0xf900('0x4b')][_0xf900('0xa8')]==='true'){for(var _0x52e2fc=0x0;_0x52e2fc<_0x2f6dcf[_0xf900('0x69')];_0x52e2fc++){_0x2f6dcf[_0x52e2fc][_0xf900('0x61')]=juice(_0x2f6dcf[_0x52e2fc]['body']);}}_0x450fd4[_0xf900('0x5b')]=_0x2f6dcf;return _0x450fd4;});}})['then'](respondWithFilteredResult(_0x57c885,_0x5eccea))[_0xf900('0x5c')](handleError(_0x57c885,null));};exports['send']=function(_0x424d52,_0x1e241a,_0x1c0127){var _0x49447a,_0x4c817b={},_0x22ea2e;if(_0x424d52[_0xf900('0x61')]['to']){_0x22ea2e=_0x424d52[_0xf900('0x61')]['to'][_0xf900('0xa9')](',')[0x0];}return db['MailAccount'][_0xf900('0x60')]({'where':{'id':_0x424d52[_0xf900('0x5e')]['id']},'include':[{'model':db['CmList'],'as':_0xf900('0xaa'),'include':[{'model':db[_0xf900('0x95')],'as':_0xf900('0xab'),'where':{'email':_0x22ea2e},'limit':0x1,'order':[[_0xf900('0xac'),_0xf900('0xad')]]}]},{'model':db[_0xf900('0x42')],'as':_0xf900('0x62'),'raw':!![]}]})['then'](handleEntityNotFound(_0x1e241a,null))['then'](function(_0x58eec4){if(_0x58eec4){_0x49447a=_0x58eec4;if(_0x58eec4['Smtp']){if(_[_0xf900('0x73')](_0x424d52[_0xf900('0x61')]['from'])){_0x424d52['body'][_0xf900('0xae')]=util[_0xf900('0xa5')](_0xf900('0xaf'),_0x58eec4[_0xf900('0x3d')],_0x58eec4[_0xf900('0x72')]||_0x58eec4[_0xf900('0x62')][_0xf900('0x78')]);}if(_0x424d52[_0xf900('0x61')][_0xf900('0xb0')]&&_0x424d52[_0xf900('0x61')][_0xf900('0xb0')][_0xf900('0x69')]){for(var _0x4beb14=0x0;_0x4beb14<_0x424d52[_0xf900('0x61')][_0xf900('0xb0')][_0xf900('0x69')];_0x4beb14+=0x1){_0x424d52[_0xf900('0x61')][_0xf900('0xb0')][_0x4beb14]={'filename':_0x424d52[_0xf900('0x61')][_0xf900('0xb0')][_0x4beb14][_0xf900('0x3d')],'path':path[_0xf900('0xb1')](config[_0xf900('0xb2')],_0xf900('0xb3'),_0x424d52[_0xf900('0x61')]['attachments'][_0x4beb14][_0xf900('0xb4')])};}}var _0x2123d0={'tls':{'rejectUnauthorized':![]}};if(_[_0xf900('0x73')](_0x58eec4[_0xf900('0x62')]['service'])){if(_0x58eec4[_0xf900('0x62')][_0xf900('0x7d')]){_0x2123d0[_0xf900('0xb5')]={'user':_0x58eec4[_0xf900('0x62')]['user'],'pass':_0x58eec4[_0xf900('0x62')][_0xf900('0x7b')]};}_0x2123d0[_0xf900('0x7e')]=_0x58eec4[_0xf900('0x62')][_0xf900('0x7e')];_0x2123d0['port']=_0x58eec4[_0xf900('0x62')][_0xf900('0x7f')];_0x2123d0[_0xf900('0xb6')]=_0x58eec4['Smtp'][_0xf900('0xb6')];}else{_0x2123d0[_0xf900('0x80')]=_0x58eec4[_0xf900('0x62')][_0xf900('0x80')];_0x2123d0[_0xf900('0xb5')]={'user':_0x58eec4[_0xf900('0x62')][_0xf900('0x78')],'pass':_0x58eec4[_0xf900('0x62')][_0xf900('0x7b')]};}return respondWithRpcPromise('SendMail','sendMail',{'account':_0x2123d0,'message':_0x424d52['body']});}else{throw new Error('List\x20not\x20found');}}})[_0xf900('0x22')](function(_0x599f8){if(_0x599f8){_0x4c817b=_0x599f8;if(_0x49447a[_0xf900('0xaa')]){if(_0x49447a[_0xf900('0xaa')][_0xf900('0xab')][_0xf900('0x69')]){return _0x49447a[_0xf900('0xaa')]['Contacts'][0x0];}else{return db[_0xf900('0x95')][_0xf900('0x66')](_['defaults'](_0x424d52[_0xf900('0x61')],{'firstName':_0x424d52[_0xf900('0x61')]['to'],'email':_0x424d52[_0xf900('0x61')]['to'],'phone':_0x424d52[_0xf900('0x61')]['to'],'ListId':_0x49447a[_0xf900('0xb7')]}));}}else{throw new Error(_0xf900('0xb8'));}}})['then'](function(_0x4851b2){if(_0x4851b2){var _0x7cb47f={'UserId':_0x424d52[_0xf900('0x78')]['id'],'ContactId':_0x4851b2['id'],'MailAccountId':_0x49447a['id'],'inReplyTo':_0x4c817b[_0xf900('0xb9')],'to':_0x424d52[_0xf900('0x61')][_0xf900('0xae')],'cc':_0x424d52['body']['cc'],'subject':_0x424d52['body']['subject'],'attach':_0x424d52['body'][_0xf900('0xba')],'firstMsgDirection':_0xf900('0xbb'),'lastMsgAt':moment()[_0xf900('0xa5')](_0xf900('0xa6')),'lastMsgDirection':_0xf900('0xbb'),'Messages':[_[_0xf900('0x55')](_0x424d52[_0xf900('0x61')],{'messageId':_0x4c817b[_0xf900('0xb9')],'sentAt':moment()[_0xf900('0xa5')](_0xf900('0xa6')),'read':!![],'MailAccountId':_0x49447a['id'],'UserId':_0x424d52['user']['id'],'ContactId':_0x4851b2['id']})]};if(_0x424d52['body'][_0xf900('0xbc')]){_0x7cb47f=_[_0xf900('0x55')](_0x7cb47f,_0x424d52[_0xf900('0x61')]['Interaction']);}return db[_0xf900('0x93')][_0xf900('0x66')](_0x7cb47f,{'include':[{'model':db['MailMessage'],'as':_0xf900('0xbd')}]});}})[_0xf900('0x22')](respondWithResult(_0x1e241a,null))['catch'](handleError(_0x1e241a,null));};exports['verifySmtp']=function(_0x3470a7,_0x4335b5,_0x495075){return db['MailAccount'][_0xf900('0x60')]({'where':{'id':_0x3470a7[_0xf900('0x5e')]['id']},'include':[{'model':db[_0xf900('0x42')],'as':_0xf900('0x62'),'raw':!![]}]})['then'](handleEntityNotFound(_0x4335b5,null))[_0xf900('0x22')](function(_0xca537a){if(_0xca537a&&_0xca537a[_0xf900('0x62')]){var _0x402413={'id':_0xca537a['id'],'tls':{'rejectUnauthorized':![]}};if(_0xca537a[_0xf900('0x62')][_0xf900('0x80')]){_0x402413[_0xf900('0x80')]=_0xca537a[_0xf900('0x62')][_0xf900('0x80')];}else{_0x402413[_0xf900('0x7e')]=_0xca537a[_0xf900('0x62')]['host'];_0x402413[_0xf900('0x7f')]=_0xca537a[_0xf900('0x62')][_0xf900('0x7f')];_0x402413[_0xf900('0xb6')]=_0xca537a[_0xf900('0x62')][_0xf900('0xb6')];}if(_0xca537a[_0xf900('0x62')][_0xf900('0x7d')]){_0x402413['auth']={'user':_0xca537a[_0xf900('0x62')][_0xf900('0x78')],'pass':_0xca537a['Smtp'][_0xf900('0x7b')]};}return respondWithRpcPromise(_0xf900('0xbe'),_0xf900('0xbf'),{'account':_0x402413});}})['then'](respondWithResult(_0x4335b5,null))[_0xf900('0x5c')](handleError(_0x4335b5,null));};exports[_0xf900('0x39')]=function(_0x33a1b8,_0x1d5984){return db[_0xf900('0x59')]['find']({'where':{'id':_0x33a1b8[_0xf900('0x5e')]['id']}})['then'](handleEntityNotFound(_0x1d5984,null))[_0xf900('0x22')](function(_0x5a04d3){if(_0x5a04d3&&_0x5a04d3[_0xf900('0x80')]){throw new db[(_0xf900('0xc0'))]['ValidationError'](_0xf900('0xc1'));}return _0x5a04d3;})[_0xf900('0x22')](removeEntity(_0x1d5984,null))[_0xf900('0x5c')](handleError(_0x1d5984,null));};exports[_0xf900('0xc2')]=function(_0x2cde19,_0x492cd3,_0x222d49){return db[_0xf900('0x59')]['find']({'where':{'id':_0x2cde19['params']['id']}})['then'](handleEntityNotFound(_0x492cd3,null))[_0xf900('0x22')](function(_0x1dc640){if(_0x1dc640){return _0x1dc640[_0xf900('0xc2')](_0x2cde19[_0xf900('0x61')][_0xf900('0x90')],_['omit'](_0x2cde19[_0xf900('0x61')],[_0xf900('0x90'),'id'])||{})[_0xf900('0xc3')](function(_0x41a73b){for(var _0x4830e1=0x0;_0x4830e1<_0x2cde19[_0xf900('0x61')][_0xf900('0x90')][_0xf900('0x69')];_0x4830e1+=0x1){socket[_0xf900('0xc4')](_0xf900('0xc5'),{'UserId':Number(_0x2cde19[_0xf900('0x61')][_0xf900('0x90')][_0x4830e1]),'MailAccountId':Number(_0x2cde19[_0xf900('0x5e')]['id'])});}return _0x41a73b;});}})[_0xf900('0x22')](respondWithResult(_0x492cd3,null))[_0xf900('0x5c')](handleError(_0x492cd3,null));};exports[_0xf900('0xc6')]=function(_0x304719,_0x447977,_0x31866f){return db[_0xf900('0x59')][_0xf900('0x60')]({'where':{'id':_0x304719[_0xf900('0x5e')]['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x447977,null))[_0xf900('0x22')](function(_0x46f1e9){if(_0x46f1e9){return _0x46f1e9['removeAgents'](_0x304719[_0xf900('0x4b')][_0xf900('0x90')])[_0xf900('0x22')](function(){if(_['isArray'](_0x304719['query']['ids'])){for(var _0x3bfaad=0x0;_0x3bfaad<_0x304719['query'][_0xf900('0x90')][_0xf900('0x69')];_0x3bfaad+=0x1){socket[_0xf900('0xc4')](_0xf900('0xc7'),{'UserId':Number(_0x304719[_0xf900('0x4b')][_0xf900('0x90')][_0x3bfaad]),'MailAccountId':Number(_0x304719[_0xf900('0x5e')]['id'])});}}else{socket['emit']('userMailAccount:remove',{'UserId':Number(_0x304719[_0xf900('0x4b')][_0xf900('0x90')]),'MailAccountId':Number(_0x304719[_0xf900('0x5e')]['id'])});}});}})[_0xf900('0x22')](respondWithStatusCode(_0x447977,null))[_0xf900('0x5c')](handleError(_0x447977,null));};exports[_0xf900('0xc8')]=function(_0x192b6f,_0x2acef5,_0x28b85a){var _0x183ae5={};var _0x29ea9e={};var _0x38c90f;var _0x540abe;return db['MailAccount'][_0xf900('0x68')]({'where':{'id':_0x192b6f['params']['id']}})[_0xf900('0x22')](handleEntityNotFound(_0x2acef5,null))['then'](function(_0x48a9e1){if(_0x48a9e1){_0x38c90f=_0x48a9e1;_0x29ea9e[_0xf900('0x4e')]=_[_0xf900('0x4a')](db[_0xf900('0x97')][_0xf900('0x46')]);_0x29ea9e[_0xf900('0x4b')]=_[_0xf900('0x4a')](_0x192b6f[_0xf900('0x4b')]);_0x29ea9e['filters']=_[_0xf900('0x4c')](_0x29ea9e[_0xf900('0x4e')],_0x29ea9e[_0xf900('0x4b')]);_0x183ae5[_0xf900('0x4d')]=_[_0xf900('0x4c')](_0x29ea9e[_0xf900('0x4e')],qs[_0xf900('0x4f')](_0x192b6f[_0xf900('0x4b')][_0xf900('0x4f')]));_0x183ae5[_0xf900('0x4d')]=_0x183ae5['attributes']['length']?_0x183ae5[_0xf900('0x4d')]:_0x29ea9e[_0xf900('0x4e')];_0x183ae5[_0xf900('0x6a')]=qs[_0xf900('0x51')](_0x192b6f['query'][_0xf900('0x51')]);_0x183ae5['where']=qs[_0xf900('0x52')](_[_0xf900('0x6b')](_0x192b6f[_0xf900('0x4b')],_0x29ea9e[_0xf900('0x52')]));if(_0x192b6f[_0xf900('0x4b')][_0xf900('0x53')]){_0x183ae5[_0xf900('0x54')]=_['merge'](_0x183ae5[_0xf900('0x54')],{'$or':_[_0xf900('0x45')](_0x183ae5[_0xf900('0x4d')],function(_0xf79753){var _0x1770a9={};_0x1770a9[_0xf79753]={'$like':'%'+_0x192b6f[_0xf900('0x4b')][_0xf900('0x53')]+'%'};return _0x1770a9;})});}_0x183ae5=_[_0xf900('0x55')]({},_0x183ae5,_0x192b6f[_0xf900('0x56')]);return _0x38c90f[_0xf900('0xc8')](_0x183ae5);}})[_0xf900('0x22')](function(_0x155c6d){if(_0x155c6d){_0x540abe=_0x155c6d[_0xf900('0x69')];if(!_0x192b6f[_0xf900('0x4b')]['hasOwnProperty'](_0xf900('0x94'))){_0x183ae5[_0xf900('0x32')]=qs[_0xf900('0x32')](_0x192b6f[_0xf900('0x4b')][_0xf900('0x32')]);_0x183ae5['offset']=qs[_0xf900('0x30')](_0x192b6f[_0xf900('0x4b')][_0xf900('0x30')]);}return _0x38c90f['getAgents'](_0x183ae5);}})['then'](function(_0x288a4d){if(_0x288a4d){return _0x288a4d?{'count':_0x540abe,'rows':_0x288a4d}:null;}})['then'](respondWithResult(_0x2acef5,null))[_0xf900('0x5c')](handleError(_0x2acef5,null));};
\ No newline at end of file
+var _0x15fc=['rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','http','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','save','update','destroy','get','UserProfileResource','stack','name','send','index','MailServerIn','Imap','MailServerOut','Smtp','Pause','mandatoryDispositionPause','map','MailAccount','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','rows','show','options','body','find','describe','addDisposition','params','MailAccountId','Disposition','findOne','hasOwnProperty','findAll','removeDispositions','addAnswer','CannedAnswer','create','removeAnswers','ids','email','description','isNil','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','host','port','service','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','MailAccounts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','addImap','removeImap','getSmtp','addSmtp','addInteraction','MailInteraction','omit','CmContact','Contact','Owner','fullname','internal','Tag','Tags','color','tag','addApplications','sequelize','transaction','MailApplication','findAndCountAll','priority','getApplications','getMessages','MailMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','CmList','Contacts','updatedAt','DESC','from','%s\x20<%s>','attachments','join','root','server/files/attachments','basename','auth','secure','sendMail','List\x20not\x20found','List','messageId','subject','attach','out','Messages','verifySmtp','Sequelize','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','addAgents','emit','userMailAccount:save','removeAgents','isArray','userMailAccount:remove','getAgents','User','eml-format'];(function(_0x4f2094,_0x5e31ae){var _0x188e9a=function(_0x440ed5){while(--_0x440ed5){_0x4f2094['push'](_0x4f2094['shift']());}};_0x188e9a(++_0x5e31ae);}(_0x15fc,0x183));var _0xc15f=function(_0x566c5a,_0x42e09c){_0x566c5a=_0x566c5a-0x0;var _0x3c4abe=_0x15fc[_0x566c5a];return _0x3c4abe;};'use strict';var emlformat=require(_0xc15f('0x0'));var rimraf=require(_0xc15f('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xc15f('0x2'));var moment=require(_0xc15f('0x3'));var BPromise=require(_0xc15f('0x4'));var Mustache=require(_0xc15f('0x5'));var util=require(_0xc15f('0x6'));var path=require('path');var sox=require(_0xc15f('0x7'));var csv=require(_0xc15f('0x8'));var ejs=require(_0xc15f('0x9'));var fs=require('fs');var fs_extra=require(_0xc15f('0xa'));var _=require(_0xc15f('0xb'));var squel=require(_0xc15f('0xc'));var crypto=require(_0xc15f('0xd'));var jsforce=require(_0xc15f('0xe'));var deskjs=require(_0xc15f('0xf'));var toCsv=require(_0xc15f('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var htmlToText=require(_0xc15f('0x10'));var juice=require(_0xc15f('0x11'));var Redis=require(_0xc15f('0x12'));var authService=require(_0xc15f('0x13'));var qs=require(_0xc15f('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc15f('0x15'));var logger=require(_0xc15f('0x16'))(_0xc15f('0x17'));var utils=require(_0xc15f('0x18'));var config=require(_0xc15f('0x19'));var licenseUtil=require(_0xc15f('0x1a'));var db=require('../../mysqldb')['db'];config[_0xc15f('0x1b')]=_[_0xc15f('0x1c')](config['redis'],{'host':_0xc15f('0x1d'),'port':0x18eb});var socket=require(_0xc15f('0x1e'))(new Redis(config[_0xc15f('0x1b')]));require(_0xc15f('0x1f'))[_0xc15f('0x20')](socket);var jayson=require(_0xc15f('0x21'));var client=jayson['client'][_0xc15f('0x22')]({'port':0x232b});function respondWithRpcPromise(_0x1cc98c,_0x198701,_0x20f31c,_0x444b36){return new BPromise(function(_0x2f8142,_0x131dfb){var _0x2b0926=_0x444b36||client;return _0x2b0926[_0xc15f('0x23')](_0x1cc98c,_0x20f31c)[_0xc15f('0x24')](function(_0xe8ecd4){logger[_0xc15f('0x25')](_0xc15f('0x26'),_0x198701,_0xc15f('0x27'));logger['debug'](_0xc15f('0x28'),_0x198701,_0xc15f('0x27'),JSON['stringify'](_0xe8ecd4));if(_0xe8ecd4[_0xc15f('0x29')]){if(_0xe8ecd4[_0xc15f('0x29')][_0xc15f('0x2a')]===0x1f4){logger[_0xc15f('0x29')](_0xc15f('0x26'),_0x198701,_0xe8ecd4[_0xc15f('0x29')][_0xc15f('0x2b')]);return _0x131dfb(_0xe8ecd4['error'][_0xc15f('0x2b')]);}logger['error'](_0xc15f('0x26'),_0x198701,_0xe8ecd4['error']['message']);return _0x2f8142(_0xe8ecd4['error'][_0xc15f('0x2b')]);}else{logger[_0xc15f('0x25')](_0xc15f('0x26'),_0x198701,_0xc15f('0x27'));_0x2f8142(_0xe8ecd4[_0xc15f('0x2c')]['message']);}})[_0xc15f('0x2d')](function(_0x3cc8a7){logger[_0xc15f('0x29')](_0xc15f('0x26'),_0x198701,_0x3cc8a7);_0x131dfb(_0x3cc8a7);});});}function respondWithStatusCode(_0x51ff3e,_0x470474){_0x470474=_0x470474||0xcc;return function(_0x47ef6b){if(_0x47ef6b){return _0x51ff3e[_0xc15f('0x2e')](_0x470474);}return _0x51ff3e[_0xc15f('0x2f')](_0x470474)['end']();};}function respondWithResult(_0x53a844,_0x5c3ccd){_0x5c3ccd=_0x5c3ccd||0xc8;return function(_0x380f18){if(_0x380f18){return _0x53a844['status'](_0x5c3ccd)[_0xc15f('0x30')](_0x380f18);}};}function respondWithFilteredResult(_0x58e197,_0xc85848){return function(_0xef762f){if(_0xef762f){var _0x558230=typeof _0xc85848[_0xc15f('0x31')]===_0xc15f('0x32')&&typeof _0xc85848['limit']==='undefined';var _0x46c58e=_0xef762f[_0xc15f('0x33')];var _0x3ad74f=_0x558230?0x0:_0xc85848[_0xc15f('0x31')];var _0x23036d=_0x558230?_0xef762f[_0xc15f('0x33')]:_0xc85848[_0xc15f('0x31')]+_0xc85848[_0xc15f('0x34')];var _0x5dc398;if(_0x23036d>=_0x46c58e){_0x23036d=_0x46c58e;_0x5dc398=0xc8;}else{_0x5dc398=0xce;}_0x58e197[_0xc15f('0x2f')](_0x5dc398);return _0x58e197[_0xc15f('0x35')](_0xc15f('0x36'),_0x3ad74f+'-'+_0x23036d+'/'+_0x46c58e)[_0xc15f('0x30')](_0xef762f);}return null;};}function patchUpdates(_0x2cf806){return function(_0x40c58c){try{jsonpatch['apply'](_0x40c58c,_0x2cf806,!![]);}catch(_0x44c35e){return BPromise['reject'](_0x44c35e);}return _0x40c58c[_0xc15f('0x37')]();};}function saveUpdates(_0x2abfd4,_0x27bbc4){return function(_0x5a7413){if(_0x5a7413){return _0x5a7413[_0xc15f('0x38')](_0x2abfd4)[_0xc15f('0x24')](function(_0x34b720){return _0x34b720;});}return null;};}function removeEntity(_0x1bbb94,_0x408b8e){return function(_0x5c5111){if(_0x5c5111){return _0x5c5111[_0xc15f('0x39')]()[_0xc15f('0x24')](function(){var _0x642ae8=_0x5c5111[_0xc15f('0x3a')]({'plain':!![]});var _0x558509='MailAccounts';return db[_0xc15f('0x3b')][_0xc15f('0x39')]({'where':{'type':_0x558509,'resourceId':_0x642ae8['id']}})[_0xc15f('0x24')](function(){return _0x5c5111;});})['then'](function(){_0x1bbb94[_0xc15f('0x2f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x438dc9,_0xbdccbf){return function(_0x348ccc){if(!_0x348ccc){_0x438dc9[_0xc15f('0x2e')](0x194);}return _0x348ccc;};}function handleError(_0x47f432,_0x1bd043){_0x1bd043=_0x1bd043||0x1f4;return function(_0x387ac0){logger[_0xc15f('0x29')](_0x387ac0[_0xc15f('0x3c')]);if(_0x387ac0[_0xc15f('0x3d')]){delete _0x387ac0[_0xc15f('0x3d')];}_0x47f432[_0xc15f('0x2f')](_0x1bd043)[_0xc15f('0x3e')](_0x387ac0);};}exports[_0xc15f('0x3f')]=function(_0x50ae9b,_0x17fdf9){var _0x4398c4={'include':[{'model':db[_0xc15f('0x40')],'as':_0xc15f('0x41')},{'model':db[_0xc15f('0x42')],'as':_0xc15f('0x43')},{'model':db[_0xc15f('0x44')],'as':_0xc15f('0x45')}]},_0x4c5a8a={},_0x15ca4c={'count':0x0,'rows':[]};var _0x2403bb=_[_0xc15f('0x46')](db[_0xc15f('0x47')][_0xc15f('0x48')],function(_0x513ebb){return{'name':_0x513ebb[_0xc15f('0x49')],'type':_0x513ebb[_0xc15f('0x4a')]['key']};});_0x4c5a8a[_0xc15f('0x4b')]=_['map'](_0x2403bb,_0xc15f('0x3d'));_0x4c5a8a[_0xc15f('0x4c')]=_[_0xc15f('0x4d')](_0x50ae9b['query']);_0x4c5a8a[_0xc15f('0x4e')]=_[_0xc15f('0x4f')](_0x4c5a8a[_0xc15f('0x4b')],_0x4c5a8a[_0xc15f('0x4c')]);_0x4398c4[_0xc15f('0x50')]=_['intersection'](_0x4c5a8a[_0xc15f('0x4b')],qs[_0xc15f('0x51')](_0x50ae9b[_0xc15f('0x4c')]['fields']));_0x4398c4[_0xc15f('0x50')]=_0x4398c4[_0xc15f('0x50')][_0xc15f('0x52')]?_0x4398c4[_0xc15f('0x50')]:_0x4c5a8a[_0xc15f('0x4b')];if(!_0x50ae9b[_0xc15f('0x4c')]['hasOwnProperty'](_0xc15f('0x53'))){_0x4398c4[_0xc15f('0x34')]=qs[_0xc15f('0x34')](_0x50ae9b[_0xc15f('0x4c')][_0xc15f('0x34')]);_0x4398c4['offset']=qs[_0xc15f('0x31')](_0x50ae9b[_0xc15f('0x4c')][_0xc15f('0x31')]);}_0x4398c4[_0xc15f('0x54')]=qs[_0xc15f('0x55')](_0x50ae9b[_0xc15f('0x4c')][_0xc15f('0x55')]);_0x4398c4[_0xc15f('0x56')]=qs[_0xc15f('0x4e')](_[_0xc15f('0x57')](_0x50ae9b[_0xc15f('0x4c')],_0x4c5a8a[_0xc15f('0x4e')]),_0x2403bb);if(_0x50ae9b[_0xc15f('0x4c')][_0xc15f('0x58')]){_0x4398c4[_0xc15f('0x56')]=_[_0xc15f('0x59')](_0x4398c4[_0xc15f('0x56')],{'$or':_[_0xc15f('0x46')](_0x2403bb,function(_0x48656b){if(_0x48656b[_0xc15f('0x4a')]!==_0xc15f('0x5a')){var _0x486b6a={};_0x486b6a[_0x48656b['name']]={'$like':'%'+_0x50ae9b[_0xc15f('0x4c')][_0xc15f('0x58')]+'%'};return _0x486b6a;}})});}_0x4398c4=_[_0xc15f('0x59')]({},_0x4398c4,_0x50ae9b['options']);var _0xb47145={'where':_0x4398c4[_0xc15f('0x56')]};return db[_0xc15f('0x47')]['count'](_0xb47145)[_0xc15f('0x24')](function(_0x162a06){_0x15ca4c[_0xc15f('0x33')]=_0x162a06;if(_0x50ae9b[_0xc15f('0x4c')][_0xc15f('0x5b')]){_0x4398c4[_0xc15f('0x5c')]=[{'all':!![]}];}return db[_0xc15f('0x47')]['findAll'](_0x4398c4);})['then'](function(_0x40b05e){_0x15ca4c[_0xc15f('0x5d')]=_0x40b05e;return _0x15ca4c;})['then'](respondWithFilteredResult(_0x17fdf9,_0x4398c4))[_0xc15f('0x2d')](handleError(_0x17fdf9,null));};exports[_0xc15f('0x5e')]=function(_0x15ca3f,_0x59d9b4){var _0x365f87={'raw':![],'where':{'id':_0x15ca3f['params']['id']},'include':[{'model':db[_0xc15f('0x40')],'as':_0xc15f('0x41')},{'model':db[_0xc15f('0x42')],'as':_0xc15f('0x43')},{'model':db[_0xc15f('0x44')],'as':'mandatoryDispositionPause'}]},_0x2b2d08={};_0x2b2d08[_0xc15f('0x4b')]=_[_0xc15f('0x4d')](db[_0xc15f('0x47')][_0xc15f('0x48')]);_0x2b2d08[_0xc15f('0x4c')]=_['keys'](_0x15ca3f[_0xc15f('0x4c')]);_0x2b2d08[_0xc15f('0x4e')]=_[_0xc15f('0x4f')](_0x2b2d08['model'],_0x2b2d08[_0xc15f('0x4c')]);_0x365f87['attributes']=_[_0xc15f('0x4f')](_0x2b2d08[_0xc15f('0x4b')],qs['fields'](_0x15ca3f['query'][_0xc15f('0x51')]));_0x365f87[_0xc15f('0x50')]=_0x365f87[_0xc15f('0x50')][_0xc15f('0x52')]?_0x365f87[_0xc15f('0x50')]:_0x2b2d08[_0xc15f('0x4b')];if(_0x15ca3f[_0xc15f('0x4c')][_0xc15f('0x5b')]){_0x365f87[_0xc15f('0x5c')]=[{'all':!![]}];}_0x365f87=_['merge']({},_0x365f87,_0x15ca3f[_0xc15f('0x5f')]);return db[_0xc15f('0x47')]['find'](_0x365f87)['then'](handleEntityNotFound(_0x59d9b4,null))['then'](respondWithResult(_0x59d9b4,null))[_0xc15f('0x2d')](handleError(_0x59d9b4,null));};exports[_0xc15f('0x38')]=function(_0x360ba8,_0x3106a3){if(_0x360ba8[_0xc15f('0x60')]['id']){delete _0x360ba8[_0xc15f('0x60')]['id'];}return db[_0xc15f('0x47')][_0xc15f('0x61')]({'where':{'id':_0x360ba8['params']['id']},'include':[{'model':db[_0xc15f('0x40')],'as':_0xc15f('0x41')},{'model':db[_0xc15f('0x42')],'as':'Smtp'},{'model':db[_0xc15f('0x44')],'as':'mandatoryDispositionPause'}]})[_0xc15f('0x24')](handleEntityNotFound(_0x3106a3,null))[_0xc15f('0x24')](saveUpdates(_0x360ba8[_0xc15f('0x60')],null))[_0xc15f('0x24')](function(_0xbb8fd0){if(_0xbb8fd0&&_0x360ba8[_0xc15f('0x60')]['Imap']){return db[_0xc15f('0x40')][_0xc15f('0x38')](_0x360ba8[_0xc15f('0x60')][_0xc15f('0x41')],{'where':{'MailAccountId':_0xbb8fd0['id']}})[_0xc15f('0x24')](function(){return _0xbb8fd0;});}return _0xbb8fd0;})[_0xc15f('0x24')](function(_0x20b167){if(_0x20b167&&_0x360ba8[_0xc15f('0x60')][_0xc15f('0x43')]){return db[_0xc15f('0x42')][_0xc15f('0x38')](_0x360ba8[_0xc15f('0x60')][_0xc15f('0x43')],{'where':{'MailAccountId':_0x20b167['id']}})[_0xc15f('0x24')](function(){return _0x20b167;});}return _0x20b167;})['then'](respondWithResult(_0x3106a3,null))[_0xc15f('0x2d')](handleError(_0x3106a3,null));};exports[_0xc15f('0x62')]=function(_0x131af3,_0x136d97){return db[_0xc15f('0x47')]['describe']()[_0xc15f('0x24')](respondWithResult(_0x136d97,null))['catch'](handleError(_0x136d97,null));};exports[_0xc15f('0x63')]=function(_0x27cb5b,_0x211d63,_0x3f0ed2){if(_0x27cb5b[_0xc15f('0x60')]['id']){delete _0x27cb5b[_0xc15f('0x60')]['id'];}return db[_0xc15f('0x47')][_0xc15f('0x61')]({'where':{'id':_0x27cb5b[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x211d63,null))[_0xc15f('0x24')](function(_0x373d2f){if(_0x373d2f){_0x27cb5b[_0xc15f('0x60')][_0xc15f('0x65')]=_0x373d2f['id'];return db[_0xc15f('0x66')]['create'](_0x27cb5b[_0xc15f('0x60')]);}})[_0xc15f('0x24')](respondWithResult(_0x211d63,null))[_0xc15f('0x2d')](handleError(_0x211d63,null));};exports['getDispositions']=function(_0x1d543b,_0x1ea578,_0x24110d){var _0x23d887={'raw':![],'where':{}};var _0x516929={};var _0x516566={'count':0x0,'rows':[]};return db[_0xc15f('0x47')][_0xc15f('0x67')]({'where':{'id':_0x1d543b[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x1ea578,null))[_0xc15f('0x24')](function(_0x189a27){if(_0x189a27){_0x516929['model']=_[_0xc15f('0x4d')](db['Disposition'][_0xc15f('0x48')]);_0x516929[_0xc15f('0x4c')]=_[_0xc15f('0x4d')](_0x1d543b['query']);_0x516929[_0xc15f('0x4e')]=_[_0xc15f('0x4f')](_0x516929['model'],_0x516929[_0xc15f('0x4c')]);_0x23d887[_0xc15f('0x50')]=_[_0xc15f('0x4f')](_0x516929[_0xc15f('0x4b')],qs[_0xc15f('0x51')](_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x51')]));_0x23d887[_0xc15f('0x50')]=_0x23d887[_0xc15f('0x50')][_0xc15f('0x52')]?_0x23d887[_0xc15f('0x50')]:_0x516929[_0xc15f('0x4b')];if(!_0x1d543b['query'][_0xc15f('0x68')]('nolimit')){_0x23d887[_0xc15f('0x34')]=qs[_0xc15f('0x34')](_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x34')]);_0x23d887[_0xc15f('0x31')]=qs[_0xc15f('0x31')](_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x31')]);}_0x23d887[_0xc15f('0x54')]=qs[_0xc15f('0x55')](_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x55')]);_0x23d887['where']=qs['filters'](_['pick'](_0x1d543b[_0xc15f('0x4c')],_0x516929[_0xc15f('0x4e')]));_0x23d887[_0xc15f('0x56')][_0xc15f('0x65')]=_0x189a27['id'];if(_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x58')]){_0x23d887['where']=_[_0xc15f('0x59')](_0x23d887['where'],{'$or':_['map'](_0x23d887[_0xc15f('0x50')],function(_0x3d2c3d){var _0x3ffd31={};_0x3ffd31[_0x3d2c3d]={'$like':'%'+_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x58')]+'%'};return _0x3ffd31;})});}_0x23d887=_[_0xc15f('0x59')]({},_0x23d887,_0x1d543b['options']);return db['Disposition'][_0xc15f('0x33')]({'where':_0x23d887['where']})['then'](function(_0x220bbb){_0x516566[_0xc15f('0x33')]=_0x220bbb;if(_0x1d543b[_0xc15f('0x4c')][_0xc15f('0x5b')]){_0x23d887[_0xc15f('0x5c')]=[{'all':!![]}];}return db[_0xc15f('0x66')][_0xc15f('0x69')](_0x23d887);})[_0xc15f('0x24')](function(_0x50b4d6){_0x516566[_0xc15f('0x5d')]=_0x50b4d6;return _0x516566;});}})[_0xc15f('0x24')](respondWithFilteredResult(_0x1ea578,_0x23d887))['catch'](handleError(_0x1ea578,null));};exports[_0xc15f('0x6a')]=function(_0x34c11d,_0x1d8759,_0xe24e55){return db['MailAccount'][_0xc15f('0x61')]({'where':{'id':_0x34c11d[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x1d8759,null))['then'](function(_0x2266ab){if(_0x2266ab){return _0x2266ab[_0xc15f('0x6a')](_0x34c11d[_0xc15f('0x4c')]['ids']);}})[_0xc15f('0x24')](respondWithStatusCode(_0x1d8759,null))[_0xc15f('0x2d')](handleError(_0x1d8759,null));};exports[_0xc15f('0x6b')]=function(_0xe7bd9e,_0x11c98c,_0x368ecd){if(_0xe7bd9e[_0xc15f('0x60')]['id']){delete _0xe7bd9e[_0xc15f('0x60')]['id'];}return db[_0xc15f('0x47')][_0xc15f('0x61')]({'where':{'id':_0xe7bd9e['params']['id']}})['then'](handleEntityNotFound(_0x11c98c,null))[_0xc15f('0x24')](function(_0x124667){if(_0x124667){_0xe7bd9e[_0xc15f('0x60')][_0xc15f('0x65')]=_0x124667['id'];return db[_0xc15f('0x6c')][_0xc15f('0x6d')](_0xe7bd9e[_0xc15f('0x60')]);}})[_0xc15f('0x24')](respondWithResult(_0x11c98c,null))[_0xc15f('0x2d')](handleError(_0x11c98c,null));};exports['getAnswers']=function(_0x5de9cf,_0x17122c,_0x1a4494){var _0xcfbe83={'raw':![],'where':{}};var _0x31a686={};var _0x16a5a6={'count':0x0,'rows':[]};return db['MailAccount'][_0xc15f('0x67')]({'where':{'id':_0x5de9cf[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x17122c,null))[_0xc15f('0x24')](function(_0x1f93b4){if(_0x1f93b4){_0x31a686[_0xc15f('0x4b')]=_[_0xc15f('0x4d')](db[_0xc15f('0x6c')][_0xc15f('0x48')]);_0x31a686[_0xc15f('0x4c')]=_['keys'](_0x5de9cf[_0xc15f('0x4c')]);_0x31a686[_0xc15f('0x4e')]=_[_0xc15f('0x4f')](_0x31a686[_0xc15f('0x4b')],_0x31a686[_0xc15f('0x4c')]);_0xcfbe83[_0xc15f('0x50')]=_[_0xc15f('0x4f')](_0x31a686[_0xc15f('0x4b')],qs[_0xc15f('0x51')](_0x5de9cf['query'][_0xc15f('0x51')]));_0xcfbe83['attributes']=_0xcfbe83[_0xc15f('0x50')][_0xc15f('0x52')]?_0xcfbe83[_0xc15f('0x50')]:_0x31a686[_0xc15f('0x4b')];if(!_0x5de9cf[_0xc15f('0x4c')]['hasOwnProperty'](_0xc15f('0x53'))){_0xcfbe83[_0xc15f('0x34')]=qs[_0xc15f('0x34')](_0x5de9cf[_0xc15f('0x4c')][_0xc15f('0x34')]);_0xcfbe83[_0xc15f('0x31')]=qs[_0xc15f('0x31')](_0x5de9cf[_0xc15f('0x4c')][_0xc15f('0x31')]);}_0xcfbe83[_0xc15f('0x54')]=qs['sort'](_0x5de9cf[_0xc15f('0x4c')][_0xc15f('0x55')]);_0xcfbe83[_0xc15f('0x56')]=qs[_0xc15f('0x4e')](_['pick'](_0x5de9cf[_0xc15f('0x4c')],_0x31a686[_0xc15f('0x4e')]));_0xcfbe83[_0xc15f('0x56')][_0xc15f('0x65')]=_0x1f93b4['id'];if(_0x5de9cf[_0xc15f('0x4c')][_0xc15f('0x58')]){_0xcfbe83[_0xc15f('0x56')]=_[_0xc15f('0x59')](_0xcfbe83[_0xc15f('0x56')],{'$or':_[_0xc15f('0x46')](_0xcfbe83['attributes'],function(_0x5b4488){var _0x383a42={};_0x383a42[_0x5b4488]={'$like':'%'+_0x5de9cf['query'][_0xc15f('0x58')]+'%'};return _0x383a42;})});}_0xcfbe83=_[_0xc15f('0x59')]({},_0xcfbe83,_0x5de9cf[_0xc15f('0x5f')]);return db[_0xc15f('0x6c')][_0xc15f('0x33')]({'where':_0xcfbe83[_0xc15f('0x56')]})[_0xc15f('0x24')](function(_0x26196e){_0x16a5a6['count']=_0x26196e;if(_0x5de9cf['query']['includeAll']){_0xcfbe83[_0xc15f('0x5c')]=[{'all':!![]}];}return db['CannedAnswer'][_0xc15f('0x69')](_0xcfbe83);})[_0xc15f('0x24')](function(_0x1ae697){_0x16a5a6['rows']=_0x1ae697;return _0x16a5a6;});}})[_0xc15f('0x24')](respondWithFilteredResult(_0x17122c,_0xcfbe83))[_0xc15f('0x2d')](handleError(_0x17122c,null));};exports[_0xc15f('0x6e')]=function(_0xaca4cb,_0x551a85,_0x33098e){return db[_0xc15f('0x47')]['find']({'where':{'id':_0xaca4cb[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x551a85,null))[_0xc15f('0x24')](function(_0x2d382d){if(_0x2d382d){return _0x2d382d[_0xc15f('0x6e')](_0xaca4cb[_0xc15f('0x4c')][_0xc15f('0x6f')]);}})[_0xc15f('0x24')](respondWithStatusCode(_0x551a85,null))[_0xc15f('0x2d')](handleError(_0x551a85,null));};exports[_0xc15f('0x6d')]=function(_0x7ff98f,_0x471b41){var _0x1ad7bd={'name':_0x7ff98f['body'][_0xc15f('0x3d')],'key':_0x7ff98f[_0xc15f('0x60')]['key'],'email':_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x70')],'ListId':_0x7ff98f['body']['ListId'],'active':!_['isNil'](_0x7ff98f[_0xc15f('0x60')]['active'])?_0x7ff98f['body']['active']:!![],'description':_0x7ff98f['body'][_0xc15f('0x71')]||null,'Imap':{},'Smtp':{}};if(_[_0xc15f('0x72')](_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x73')])){if(_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x74')]){_0x1ad7bd[_0xc15f('0x41')]['user']=_0x1ad7bd[_0xc15f('0x43')][_0xc15f('0x75')]=_0x7ff98f['body'][_0xc15f('0x76')];_0x1ad7bd[_0xc15f('0x41')][_0xc15f('0x77')]=_0x1ad7bd[_0xc15f('0x43')][_0xc15f('0x78')]=_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x79')];}else{_0x1ad7bd['Imap'][_0xc15f('0x7a')]=_0x1ad7bd[_0xc15f('0x43')][_0xc15f('0x7a')]=![];}_0x1ad7bd[_0xc15f('0x41')][_0xc15f('0x7b')]=_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x41')][_0xc15f('0x7b')];_0x1ad7bd[_0xc15f('0x41')]['port']=_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x41')][_0xc15f('0x7c')];_0x1ad7bd[_0xc15f('0x43')][_0xc15f('0x7b')]=_0x7ff98f['body'][_0xc15f('0x43')]['host'];_0x1ad7bd[_0xc15f('0x43')][_0xc15f('0x7c')]=_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x43')][_0xc15f('0x7c')];}else{_0x1ad7bd[_0xc15f('0x41')][_0xc15f('0x7d')]=_0x1ad7bd[_0xc15f('0x43')][_0xc15f('0x7d')]=_0x7ff98f['body'][_0xc15f('0x73')];_0x1ad7bd['Imap'][_0xc15f('0x75')]=_0x1ad7bd['Smtp'][_0xc15f('0x75')]=_0x7ff98f[_0xc15f('0x60')][_0xc15f('0x76')];_0x1ad7bd[_0xc15f('0x41')][_0xc15f('0x77')]=_0x1ad7bd['Smtp']['pass']=_0x7ff98f['body'][_0xc15f('0x79')];}return db[_0xc15f('0x47')][_0xc15f('0x6d')](_0x1ad7bd,{'include':[{'model':db[_0xc15f('0x42')],'as':_0xc15f('0x43')},{'model':db[_0xc15f('0x40')],'as':_0xc15f('0x41')}]})[_0xc15f('0x24')](function(_0x57b759){var _0x2c8e7b=_0x7ff98f[_0xc15f('0x75')][_0xc15f('0x3a')]({'plain':!![]});if(!_0x2c8e7b)throw new Error(_0xc15f('0x7e'));if(_0x2c8e7b['role']===_0xc15f('0x75')){var _0x2c5283=_0x57b759['get']({'plain':!![]});return db[_0xc15f('0x7f')][_0xc15f('0x61')]({'where':{'name':_0xc15f('0x80'),'userProfileId':_0x2c8e7b[_0xc15f('0x81')]},'raw':!![]})['then'](function(_0x1f3bdd){if(_0x1f3bdd&&_0x1f3bdd[_0xc15f('0x82')]===0x0){return db[_0xc15f('0x3b')][_0xc15f('0x6d')]({'name':_0x2c5283[_0xc15f('0x3d')],'resourceId':_0x2c5283['id'],'type':_0x1f3bdd['name'],'sectionId':_0x1f3bdd['id']},{})['then'](function(){return _0x57b759;});}else{return _0x57b759;}})['catch'](function(_0x3baf95){logger[_0xc15f('0x29')](_0xc15f('0x83'),_0x3baf95);throw _0x3baf95;});}return _0x57b759;})['then'](respondWithResult(_0x471b41,0xc9))[_0xc15f('0x2d')](handleError(_0x471b41,null));};exports[_0xc15f('0x84')]=function(_0x5d640a,_0x5cc973,_0x83d4a0){return db[_0xc15f('0x47')]['findOne']({'where':{'id':_0x5d640a['params']['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x5cc973,null))[_0xc15f('0x24')](function(_0x4a1a08){if(_0x4a1a08){return _0x4a1a08[_0xc15f('0x84')]();}return null;})['then'](respondWithResult(_0x5cc973,null))['catch'](handleError(_0x5cc973,null));};exports[_0xc15f('0x85')]=function(_0x503dcd,_0x5bb270,_0x1f74ab){if(_0x503dcd[_0xc15f('0x60')]['id']){delete _0x503dcd['body']['id'];}return db[_0xc15f('0x47')][_0xc15f('0x61')]({'where':{'id':_0x503dcd[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x5bb270,null))[_0xc15f('0x24')](function(_0x11a719){if(_0x11a719){_0x503dcd[_0xc15f('0x60')]['MailAccountId']=_0x11a719['id'];return db[_0xc15f('0x40')][_0xc15f('0x6d')](_0x503dcd['body']);}})[_0xc15f('0x24')](respondWithResult(_0x5bb270,null))[_0xc15f('0x2d')](handleError(_0x5bb270,null));};exports[_0xc15f('0x86')]=function(_0x57acf4,_0x242171,_0x426a9c){return db[_0xc15f('0x47')][_0xc15f('0x67')]({'where':{'id':_0x57acf4['params']['id']}})['then'](handleEntityNotFound(_0x242171,null))[_0xc15f('0x24')](function(_0x494c75){if(_0x494c75){return _0x494c75['setImap'](null);}return null;})[_0xc15f('0x24')](respondWithStatusCode(_0x242171,null))[_0xc15f('0x2d')](handleError(_0x242171,null));};exports['getSmtp']=function(_0x4bd2e4,_0x412d68,_0xe0eff5){return db[_0xc15f('0x47')]['findOne']({'where':{'id':_0x4bd2e4[_0xc15f('0x64')]['id']}})['then'](handleEntityNotFound(_0x412d68,null))[_0xc15f('0x24')](function(_0x249440){if(_0x249440){return _0x249440[_0xc15f('0x87')]();}return null;})[_0xc15f('0x24')](respondWithResult(_0x412d68,null))[_0xc15f('0x2d')](handleError(_0x412d68,null));};exports[_0xc15f('0x88')]=function(_0x3f4c42,_0x1e8dcb,_0x2da685){if(_0x3f4c42[_0xc15f('0x60')]['id']){delete _0x3f4c42[_0xc15f('0x60')]['id'];}return db[_0xc15f('0x47')]['find']({'where':{'id':_0x3f4c42[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x1e8dcb,null))[_0xc15f('0x24')](function(_0x5edb29){if(_0x5edb29){_0x3f4c42[_0xc15f('0x60')]['MailAccountId']=_0x5edb29['id'];return db[_0xc15f('0x42')][_0xc15f('0x6d')](_0x3f4c42[_0xc15f('0x60')]);}})[_0xc15f('0x24')](respondWithResult(_0x1e8dcb,null))[_0xc15f('0x2d')](handleError(_0x1e8dcb,null));};exports['removeSmtp']=function(_0x263a11,_0x18291c,_0x5bb56b){return db[_0xc15f('0x47')][_0xc15f('0x67')]({'where':{'id':_0x263a11[_0xc15f('0x64')]['id']}})['then'](handleEntityNotFound(_0x18291c,null))[_0xc15f('0x24')](function(_0x2f0387){if(_0x2f0387){return _0x2f0387['setSmtp'](null);}return null;})['then'](respondWithStatusCode(_0x18291c,null))['catch'](handleError(_0x18291c,null));};exports[_0xc15f('0x89')]=function(_0x4ad7a7,_0x102d8e,_0x67d7d7){return db[_0xc15f('0x8a')][_0xc15f('0x61')]({'where':{'id':_0x4ad7a7[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x102d8e,null))[_0xc15f('0x24')](function(_0x4d6d8f){if(_0x4d6d8f){return _0x4d6d8f[_0xc15f('0x89')](_0x4ad7a7[_0xc15f('0x60')][_0xc15f('0x6f')],_[_0xc15f('0x8b')](_0x4ad7a7['body'],['ids','id'])||{});}})[_0xc15f('0x24')](respondWithResult(_0x102d8e,null))[_0xc15f('0x2d')](handleError(_0x102d8e,null));};exports['getInteractions']=function(_0x586fa8,_0x1ba842,_0x55f8a4){var _0x321078={'raw':![],'where':{}};var _0x15cbb1={};var _0x2ee783={'count':0x0,'rows':[]};return db[_0xc15f('0x47')][_0xc15f('0x67')]({'where':{'id':_0x586fa8['params']['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x1ba842,null))[_0xc15f('0x24')](function(_0x29c53e){if(_0x29c53e){_0x15cbb1[_0xc15f('0x4b')]=_['keys'](db[_0xc15f('0x8a')][_0xc15f('0x48')]);_0x15cbb1[_0xc15f('0x4c')]=_[_0xc15f('0x4d')](_0x586fa8[_0xc15f('0x4c')]);_0x15cbb1['filters']=_[_0xc15f('0x4f')](_0x15cbb1['model'],_0x15cbb1[_0xc15f('0x4c')]);_0x321078[_0xc15f('0x50')]=_[_0xc15f('0x4f')](_0x15cbb1[_0xc15f('0x4b')],qs[_0xc15f('0x51')](_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x51')]));_0x321078[_0xc15f('0x50')]=_0x321078[_0xc15f('0x50')][_0xc15f('0x52')]?_0x321078['attributes']:_0x15cbb1[_0xc15f('0x4b')];if(!_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x68')](_0xc15f('0x53'))){_0x321078[_0xc15f('0x34')]=qs[_0xc15f('0x34')](_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x34')]);_0x321078[_0xc15f('0x31')]=qs['offset'](_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x31')]);}_0x321078[_0xc15f('0x54')]=qs[_0xc15f('0x55')](_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x55')]);_0x321078['where']=qs['filters'](_[_0xc15f('0x57')](_0x586fa8[_0xc15f('0x4c')],_0x15cbb1[_0xc15f('0x4e')]));_0x321078[_0xc15f('0x56')]['MailAccountId']=_0x29c53e['id'];if(_0x586fa8['query']['filter']){_0x321078[_0xc15f('0x56')]=_[_0xc15f('0x59')](_0x321078['where'],{'$or':_[_0xc15f('0x46')](_0x321078[_0xc15f('0x50')],function(_0x19f079){var _0x50ae40={};_0x50ae40[_0x19f079]={'$like':'%'+_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x58')]+'%'};return _0x50ae40;})});}_0x321078=_[_0xc15f('0x59')]({},_0x321078,_0x586fa8[_0xc15f('0x5f')]);return db[_0xc15f('0x8a')][_0xc15f('0x33')]({'where':_0x321078['where']})[_0xc15f('0x24')](function(_0xea9264){_0x2ee783[_0xc15f('0x33')]=_0xea9264;if(_0x586fa8['query'][_0xc15f('0x5b')]){_0x321078['include']=[{'model':db[_0xc15f('0x8c')],'as':_0xc15f('0x8d'),'required':![]},{'model':db['User'],'as':_0xc15f('0x8e'),'attributes':[_0xc15f('0x3d'),_0xc15f('0x8f'),_0xc15f('0x90')],'required':![]},{'model':db[_0xc15f('0x91')],'as':_0xc15f('0x92'),'attributes':['id',_0xc15f('0x3d'),_0xc15f('0x93')],'where':_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x94')]?{'id':_0x586fa8['query']['tag']}:undefined,'required':_0x586fa8[_0xc15f('0x4c')][_0xc15f('0x94')]?!![]:![]}];}return db[_0xc15f('0x8a')][_0xc15f('0x69')](_0x321078);})[_0xc15f('0x24')](function(_0x19d5b5){_0x2ee783[_0xc15f('0x5d')]=_0x19d5b5;return _0x2ee783;});}})['then'](respondWithFilteredResult(_0x1ba842,_0x321078))[_0xc15f('0x2d')](handleError(_0x1ba842,null));};exports[_0xc15f('0x95')]=function(_0x303544,_0x58e75c,_0x4570bf){return db['MailAccount']['findOne']({'where':{'id':_0x303544[_0xc15f('0x64')]['id']}})['then'](handleEntityNotFound(_0x58e75c,null))['then'](function(_0x11f187){if(_0x11f187){return db[_0xc15f('0x96')][_0xc15f('0x97')](function(_0x4dba29){return db[_0xc15f('0x98')][_0xc15f('0x39')]({'where':{'MailAccountId':_0x303544['params']['id']},'transaction':_0x4dba29})[_0xc15f('0x24')](function(_0x44efac){var _0x524a63=_[_0xc15f('0x46')](_0x303544['body'],function(_0x214208){_0x214208[_0xc15f('0x65')]=_0x303544[_0xc15f('0x64')]['id'];return _0x214208;});return db[_0xc15f('0x98')]['bulkCreate'](_0x524a63,{'transaction':_0x4dba29});});})['then'](function(){return db[_0xc15f('0x98')][_0xc15f('0x99')]({'where':{'MailAccountId':_0x303544['params']['id']},'order':_0xc15f('0x9a')});});}})[_0xc15f('0x24')](respondWithResult(_0x58e75c,null))[_0xc15f('0x2d')](handleError(_0x58e75c,null));};exports[_0xc15f('0x9b')]=function(_0x5ef789,_0x4fc474,_0x1e4348){var _0x22b3f4={};var _0x4cf236={};var _0x443fc6;var _0x2c8c2c;return db['MailAccount'][_0xc15f('0x67')]({'where':{'id':_0x5ef789['params']['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x4fc474,null))[_0xc15f('0x24')](function(_0x4b9a9f){if(_0x4b9a9f){_0x443fc6=_0x4b9a9f;_0x4cf236[_0xc15f('0x4b')]=_[_0xc15f('0x4d')](db['MailApplication']['rawAttributes']);_0x4cf236[_0xc15f('0x4c')]=_[_0xc15f('0x4d')](_0x5ef789[_0xc15f('0x4c')]);_0x4cf236[_0xc15f('0x4e')]=_[_0xc15f('0x4f')](_0x4cf236[_0xc15f('0x4b')],_0x4cf236[_0xc15f('0x4c')]);_0x22b3f4[_0xc15f('0x50')]=_[_0xc15f('0x4f')](_0x4cf236[_0xc15f('0x4b')],qs[_0xc15f('0x51')](_0x5ef789['query'][_0xc15f('0x51')]));_0x22b3f4['attributes']=_0x22b3f4['attributes'][_0xc15f('0x52')]?_0x22b3f4[_0xc15f('0x50')]:_0x4cf236['model'];_0x22b3f4[_0xc15f('0x54')]=qs['sort'](_0x5ef789['query'][_0xc15f('0x55')]);_0x22b3f4[_0xc15f('0x56')]=qs[_0xc15f('0x4e')](_[_0xc15f('0x57')](_0x5ef789[_0xc15f('0x4c')],_0x4cf236[_0xc15f('0x4e')]));if(_0x5ef789[_0xc15f('0x4c')][_0xc15f('0x58')]){_0x22b3f4['where']=_['merge'](_0x22b3f4[_0xc15f('0x56')],{'$or':_[_0xc15f('0x46')](_0x22b3f4[_0xc15f('0x50')],function(_0x2a1a90){var _0x27c231={};_0x27c231[_0x2a1a90]={'$like':'%'+_0x5ef789[_0xc15f('0x4c')][_0xc15f('0x58')]+'%'};return _0x27c231;})});}_0x22b3f4=_[_0xc15f('0x59')]({},_0x22b3f4,_0x5ef789['options']);return _0x443fc6[_0xc15f('0x9b')](_0x22b3f4);}})[_0xc15f('0x24')](function(_0x337095){if(_0x337095){_0x2c8c2c=_0x337095[_0xc15f('0x52')];if(!_0x5ef789[_0xc15f('0x4c')][_0xc15f('0x68')](_0xc15f('0x53'))){_0x22b3f4['limit']=qs['limit'](_0x5ef789[_0xc15f('0x4c')]['limit']);_0x22b3f4[_0xc15f('0x31')]=qs[_0xc15f('0x31')](_0x5ef789[_0xc15f('0x4c')][_0xc15f('0x31')]);}return _0x443fc6[_0xc15f('0x9b')](_0x22b3f4);}})['then'](function(_0x4dfb3c){if(_0x4dfb3c){return _0x4dfb3c?{'count':_0x2c8c2c,'rows':_0x4dfb3c}:null;}})['then'](respondWithResult(_0x4fc474,null))['catch'](handleError(_0x4fc474,null));};exports[_0xc15f('0x9c')]=function(_0x4b25f8,_0x428766,_0x29916f){var _0x51163e={'raw':!![],'where':{}};var _0x2596bb={};var _0x348953={'count':0x0,'rows':[]};return db[_0xc15f('0x47')]['findOne']({'where':{'id':_0x4b25f8['params']['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x428766,null))[_0xc15f('0x24')](function(_0x180477){if(_0x180477){_0x2596bb[_0xc15f('0x4b')]=_['keys'](db[_0xc15f('0x9d')][_0xc15f('0x48')]);_0x2596bb[_0xc15f('0x4c')]=_[_0xc15f('0x4d')](_0x4b25f8['query']);_0x2596bb[_0xc15f('0x4e')]=_[_0xc15f('0x4f')](_0x2596bb[_0xc15f('0x4b')],_0x2596bb[_0xc15f('0x4c')]);_0x51163e[_0xc15f('0x50')]=_[_0xc15f('0x4f')](_0x2596bb[_0xc15f('0x4b')],qs['fields'](_0x4b25f8[_0xc15f('0x4c')]['fields']));_0x51163e[_0xc15f('0x50')]=_0x51163e[_0xc15f('0x50')][_0xc15f('0x52')]?_0x51163e[_0xc15f('0x50')]:_0x2596bb['model'];if(!_0x4b25f8[_0xc15f('0x4c')][_0xc15f('0x68')](_0xc15f('0x53'))){_0x51163e[_0xc15f('0x34')]=qs[_0xc15f('0x34')](_0x4b25f8['query']['limit']);_0x51163e['offset']=qs[_0xc15f('0x31')](_0x4b25f8[_0xc15f('0x4c')]['offset']);}_0x51163e[_0xc15f('0x54')]=qs[_0xc15f('0x55')](_0x4b25f8[_0xc15f('0x4c')][_0xc15f('0x55')]);_0x51163e['where']=qs[_0xc15f('0x4e')](_[_0xc15f('0x57')](_0x4b25f8['query'],_0x2596bb[_0xc15f('0x4e')]));_0x51163e['where'][_0xc15f('0x65')]=_0x180477['id'];if(_0x4b25f8[_0xc15f('0x4c')][_0xc15f('0x58')]){_0x51163e[_0xc15f('0x56')]=_[_0xc15f('0x59')](_0x51163e[_0xc15f('0x56')],{'$or':_[_0xc15f('0x46')](_0x51163e[_0xc15f('0x50')],function(_0x1b1837){var _0x160470={};_0x160470[_0x1b1837]={'$like':'%'+_0x4b25f8['query'][_0xc15f('0x58')]+'%'};return _0x160470;})});}if(_0x4b25f8[_0xc15f('0x4c')][_0xc15f('0x9e')]){var _0x2a61db=_0x4b25f8[_0xc15f('0x4c')]['$gte'][_0xc15f('0x9f')](',');var _0x27d512={};_0x27d512[_0x2a61db[0x0]]={'$gte':moment(_0x2a61db[0x1])[_0xc15f('0xa0')](_0xc15f('0xa1'))};_0x51163e[_0xc15f('0x56')]=_[_0xc15f('0x59')](_0x51163e['where'],_0x27d512);}_0x51163e=_[_0xc15f('0x59')]({},_0x51163e,_0x4b25f8[_0xc15f('0x5f')]);return db[_0xc15f('0x9d')][_0xc15f('0x33')]({'where':_0x51163e[_0xc15f('0x56')]})['then'](function(_0x1381c2){_0x348953['count']=_0x1381c2;if(_0x4b25f8['query']['includeAll']){_0x51163e[_0xc15f('0x5c')]=[{'all':!![]}];}return db[_0xc15f('0x9d')][_0xc15f('0x69')](_0x51163e);})[_0xc15f('0x24')](function(_0x37ac1f){if(_0x4b25f8[_0xc15f('0x4c')]['inlineCss']==='true'){for(var _0x5c812b=0x0;_0x5c812b<_0x37ac1f[_0xc15f('0x52')];_0x5c812b++){_0x37ac1f[_0x5c812b][_0xc15f('0x60')]=juice(_0x37ac1f[_0x5c812b]['body']);}}_0x348953[_0xc15f('0x5d')]=_0x37ac1f;return _0x348953;});}})[_0xc15f('0x24')](respondWithFilteredResult(_0x428766,_0x51163e))['catch'](handleError(_0x428766,null));};exports[_0xc15f('0x3e')]=function(_0xd52234,_0x71b87e,_0x3fe6b4){var _0x46011e,_0x5e302c={},_0x223e2e;if(_0xd52234[_0xc15f('0x60')]['to']){_0x223e2e=_0xd52234[_0xc15f('0x60')]['to'][_0xc15f('0x9f')](',')[0x0];}return db[_0xc15f('0x47')][_0xc15f('0x61')]({'where':{'id':_0xd52234[_0xc15f('0x64')]['id']},'include':[{'model':db[_0xc15f('0xa2')],'as':'List','include':[{'model':db[_0xc15f('0x8c')],'as':_0xc15f('0xa3'),'where':{'email':_0x223e2e},'limit':0x1,'order':[[_0xc15f('0xa4'),_0xc15f('0xa5')]]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})[_0xc15f('0x24')](handleEntityNotFound(_0x71b87e,null))[_0xc15f('0x24')](function(_0x9bd172){if(_0x9bd172){_0x46011e=_0x9bd172;if(_0x9bd172[_0xc15f('0x43')]){if(_['isNil'](_0xd52234[_0xc15f('0x60')][_0xc15f('0xa6')])){_0xd52234[_0xc15f('0x60')][_0xc15f('0xa6')]=util[_0xc15f('0xa0')](_0xc15f('0xa7'),_0x9bd172[_0xc15f('0x3d')],_0x9bd172[_0xc15f('0x70')]||_0x9bd172[_0xc15f('0x43')][_0xc15f('0x75')]);}if(_0xd52234['body'][_0xc15f('0xa8')]&&_0xd52234[_0xc15f('0x60')][_0xc15f('0xa8')][_0xc15f('0x52')]){for(var _0x59dbe8=0x0;_0x59dbe8<_0xd52234['body']['attachments']['length'];_0x59dbe8+=0x1){_0xd52234['body'][_0xc15f('0xa8')][_0x59dbe8]={'filename':_0xd52234[_0xc15f('0x60')][_0xc15f('0xa8')][_0x59dbe8][_0xc15f('0x3d')],'path':path[_0xc15f('0xa9')](config[_0xc15f('0xaa')],_0xc15f('0xab'),_0xd52234['body'][_0xc15f('0xa8')][_0x59dbe8][_0xc15f('0xac')])};}}var _0x1558f2={'tls':{'rejectUnauthorized':![]}};if(_[_0xc15f('0x72')](_0x9bd172[_0xc15f('0x43')][_0xc15f('0x7d')])){if(_0x9bd172[_0xc15f('0x43')][_0xc15f('0x7a')]){_0x1558f2[_0xc15f('0xad')]={'user':_0x9bd172[_0xc15f('0x43')][_0xc15f('0x75')],'pass':_0x9bd172[_0xc15f('0x43')][_0xc15f('0x78')]};}_0x1558f2['host']=_0x9bd172[_0xc15f('0x43')][_0xc15f('0x7b')];_0x1558f2[_0xc15f('0x7c')]=_0x9bd172['Smtp'][_0xc15f('0x7c')];_0x1558f2['secure']=_0x9bd172[_0xc15f('0x43')][_0xc15f('0xae')];}else{_0x1558f2[_0xc15f('0x7d')]=_0x9bd172[_0xc15f('0x43')][_0xc15f('0x7d')];_0x1558f2[_0xc15f('0xad')]={'user':_0x9bd172['Smtp'][_0xc15f('0x75')],'pass':_0x9bd172[_0xc15f('0x43')][_0xc15f('0x78')]};}return respondWithRpcPromise('SendMail',_0xc15f('0xaf'),{'account':_0x1558f2,'message':_0xd52234['body']});}else{throw new Error(_0xc15f('0xb0'));}}})[_0xc15f('0x24')](function(_0x1ecee8){if(_0x1ecee8){_0x5e302c=_0x1ecee8;if(_0x46011e['List']){if(_0x46011e['List'][_0xc15f('0xa3')][_0xc15f('0x52')]){return _0x46011e[_0xc15f('0xb1')][_0xc15f('0xa3')][0x0];}else{return db[_0xc15f('0x8c')][_0xc15f('0x6d')](_[_0xc15f('0x1c')](_0xd52234[_0xc15f('0x60')],{'firstName':_0xd52234[_0xc15f('0x60')]['to'],'email':_0xd52234[_0xc15f('0x60')]['to'],'phone':_0xd52234['body']['to'],'ListId':_0x46011e['ListId']}));}}else{throw new Error(_0xc15f('0xb0'));}}})[_0xc15f('0x24')](function(_0x36c68e){if(_0x36c68e){var _0x420d8={'UserId':_0xd52234['user']['id'],'ContactId':_0x36c68e['id'],'MailAccountId':_0x46011e['id'],'inReplyTo':_0x5e302c[_0xc15f('0xb2')],'to':_0xd52234[_0xc15f('0x60')][_0xc15f('0xa6')],'cc':_0xd52234['body']['cc'],'subject':_0xd52234[_0xc15f('0x60')][_0xc15f('0xb3')],'attach':_0xd52234[_0xc15f('0x60')][_0xc15f('0xb4')],'firstMsgDirection':'out','lastMsgAt':moment()[_0xc15f('0xa0')](_0xc15f('0xa1')),'lastMsgDirection':_0xc15f('0xb5'),'Messages':[_[_0xc15f('0x59')](_0xd52234['body'],{'messageId':_0x5e302c[_0xc15f('0xb2')],'sentAt':moment()[_0xc15f('0xa0')](_0xc15f('0xa1')),'read':!![],'MailAccountId':_0x46011e['id'],'UserId':_0xd52234[_0xc15f('0x75')]['id'],'ContactId':_0x36c68e['id']})]};if(_0xd52234[_0xc15f('0x60')]['Interaction']){_0x420d8=_[_0xc15f('0x59')](_0x420d8,_0xd52234['body']['Interaction']);}return db[_0xc15f('0x8a')]['create'](_0x420d8,{'include':[{'model':db[_0xc15f('0x9d')],'as':_0xc15f('0xb6')}]});}})['then'](respondWithResult(_0x71b87e,null))['catch'](handleError(_0x71b87e,null));};exports[_0xc15f('0xb7')]=function(_0x32075c,_0x592408,_0x2a52da){return db[_0xc15f('0x47')][_0xc15f('0x61')]({'where':{'id':_0x32075c[_0xc15f('0x64')]['id']},'include':[{'model':db['MailServerOut'],'as':_0xc15f('0x43'),'raw':!![]}]})['then'](handleEntityNotFound(_0x592408,null))[_0xc15f('0x24')](function(_0xef4ea8){if(_0xef4ea8&&_0xef4ea8[_0xc15f('0x43')]){var _0x3aea54={'id':_0xef4ea8['id'],'tls':{'rejectUnauthorized':![]}};if(_0xef4ea8['Smtp']['service']){_0x3aea54[_0xc15f('0x7d')]=_0xef4ea8[_0xc15f('0x43')][_0xc15f('0x7d')];}else{_0x3aea54[_0xc15f('0x7b')]=_0xef4ea8['Smtp'][_0xc15f('0x7b')];_0x3aea54['port']=_0xef4ea8['Smtp'][_0xc15f('0x7c')];_0x3aea54[_0xc15f('0xae')]=_0xef4ea8[_0xc15f('0x43')][_0xc15f('0xae')];}if(_0xef4ea8['Smtp']['authentication']){_0x3aea54[_0xc15f('0xad')]={'user':_0xef4ea8[_0xc15f('0x43')][_0xc15f('0x75')],'pass':_0xef4ea8[_0xc15f('0x43')][_0xc15f('0x78')]};}return respondWithRpcPromise('VerifySmtp',_0xc15f('0xb7'),{'account':_0x3aea54});}})[_0xc15f('0x24')](respondWithResult(_0x592408,null))[_0xc15f('0x2d')](handleError(_0x592408,null));};exports[_0xc15f('0x39')]=function(_0x4aa576,_0x16ee38){return db['MailAccount'][_0xc15f('0x61')]({'where':{'id':_0x4aa576['params']['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x16ee38,null))[_0xc15f('0x24')](function(_0x40cf83){if(_0x40cf83&&_0x40cf83[_0xc15f('0x7d')]){throw new db[(_0xc15f('0xb8'))]['ValidationError'](_0xc15f('0xb9'));}return _0x40cf83;})[_0xc15f('0x24')](removeEntity(_0x16ee38,null))['catch'](handleError(_0x16ee38,null));};exports[_0xc15f('0xba')]=function(_0x25379c,_0x33a25d,_0xfcf00b){return db['MailAccount'][_0xc15f('0x61')]({'where':{'id':_0x25379c['params']['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x33a25d,null))['then'](function(_0x460b07){if(_0x460b07){return _0x460b07[_0xc15f('0xba')](_0x25379c[_0xc15f('0x60')]['ids'],_[_0xc15f('0x8b')](_0x25379c['body'],[_0xc15f('0x6f'),'id'])||{})['spread'](function(_0xc1226e){for(var _0x2f4b37=0x0;_0x2f4b37<_0x25379c[_0xc15f('0x60')]['ids'][_0xc15f('0x52')];_0x2f4b37+=0x1){socket[_0xc15f('0xbb')](_0xc15f('0xbc'),{'UserId':Number(_0x25379c['body'][_0xc15f('0x6f')][_0x2f4b37]),'MailAccountId':Number(_0x25379c['params']['id'])});}return _0xc1226e;});}})[_0xc15f('0x24')](respondWithResult(_0x33a25d,null))[_0xc15f('0x2d')](handleError(_0x33a25d,null));};exports[_0xc15f('0xbd')]=function(_0x3fc5f3,_0x25376a,_0x195809){return db[_0xc15f('0x47')]['find']({'where':{'id':_0x3fc5f3[_0xc15f('0x64')]['id']}})[_0xc15f('0x24')](handleEntityNotFound(_0x25376a,null))['then'](function(_0x1d05f1){if(_0x1d05f1){return _0x1d05f1[_0xc15f('0xbd')](_0x3fc5f3[_0xc15f('0x4c')]['ids'])[_0xc15f('0x24')](function(){if(_[_0xc15f('0xbe')](_0x3fc5f3[_0xc15f('0x4c')][_0xc15f('0x6f')])){for(var _0x51ce10=0x0;_0x51ce10<_0x3fc5f3[_0xc15f('0x4c')][_0xc15f('0x6f')][_0xc15f('0x52')];_0x51ce10+=0x1){socket['emit'](_0xc15f('0xbf'),{'UserId':Number(_0x3fc5f3['query']['ids'][_0x51ce10]),'MailAccountId':Number(_0x3fc5f3['params']['id'])});}}else{socket['emit'](_0xc15f('0xbf'),{'UserId':Number(_0x3fc5f3['query'][_0xc15f('0x6f')]),'MailAccountId':Number(_0x3fc5f3[_0xc15f('0x64')]['id'])});}});}})[_0xc15f('0x24')](respondWithStatusCode(_0x25376a,null))['catch'](handleError(_0x25376a,null));};exports[_0xc15f('0xc0')]=function(_0x2217b7,_0x41ceec,_0x5a163e){var _0x2b6423={};var _0x21faac={};var _0x4cacf9;var _0x5873a0;return db[_0xc15f('0x47')][_0xc15f('0x67')]({'where':{'id':_0x2217b7[_0xc15f('0x64')]['id']}})['then'](handleEntityNotFound(_0x41ceec,null))[_0xc15f('0x24')](function(_0x201257){if(_0x201257){_0x4cacf9=_0x201257;_0x21faac[_0xc15f('0x4b')]=_['keys'](db[_0xc15f('0xc1')][_0xc15f('0x48')]);_0x21faac[_0xc15f('0x4c')]=_[_0xc15f('0x4d')](_0x2217b7[_0xc15f('0x4c')]);_0x21faac['filters']=_[_0xc15f('0x4f')](_0x21faac['model'],_0x21faac[_0xc15f('0x4c')]);_0x2b6423[_0xc15f('0x50')]=_[_0xc15f('0x4f')](_0x21faac['model'],qs['fields'](_0x2217b7[_0xc15f('0x4c')]['fields']));_0x2b6423[_0xc15f('0x50')]=_0x2b6423[_0xc15f('0x50')][_0xc15f('0x52')]?_0x2b6423[_0xc15f('0x50')]:_0x21faac[_0xc15f('0x4b')];_0x2b6423[_0xc15f('0x54')]=qs[_0xc15f('0x55')](_0x2217b7[_0xc15f('0x4c')][_0xc15f('0x55')]);_0x2b6423['where']=qs['filters'](_[_0xc15f('0x57')](_0x2217b7['query'],_0x21faac['filters']));if(_0x2217b7[_0xc15f('0x4c')][_0xc15f('0x58')]){_0x2b6423[_0xc15f('0x56')]=_[_0xc15f('0x59')](_0x2b6423[_0xc15f('0x56')],{'$or':_[_0xc15f('0x46')](_0x2b6423[_0xc15f('0x50')],function(_0x19175d){var _0x5f60d8={};_0x5f60d8[_0x19175d]={'$like':'%'+_0x2217b7['query'][_0xc15f('0x58')]+'%'};return _0x5f60d8;})});}_0x2b6423=_[_0xc15f('0x59')]({},_0x2b6423,_0x2217b7[_0xc15f('0x5f')]);return _0x4cacf9[_0xc15f('0xc0')](_0x2b6423);}})[_0xc15f('0x24')](function(_0x29bebe){if(_0x29bebe){_0x5873a0=_0x29bebe[_0xc15f('0x52')];if(!_0x2217b7[_0xc15f('0x4c')][_0xc15f('0x68')]('nolimit')){_0x2b6423[_0xc15f('0x34')]=qs[_0xc15f('0x34')](_0x2217b7[_0xc15f('0x4c')][_0xc15f('0x34')]);_0x2b6423[_0xc15f('0x31')]=qs[_0xc15f('0x31')](_0x2217b7[_0xc15f('0x4c')]['offset']);}return _0x4cacf9[_0xc15f('0xc0')](_0x2b6423);}})[_0xc15f('0x24')](function(_0x12d0d2){if(_0x12d0d2){return _0x12d0d2?{'count':_0x5873a0,'rows':_0x12d0d2}:null;}})[_0xc15f('0x24')](respondWithResult(_0x41ceec,null))[_0xc15f('0x2d')](handleError(_0x41ceec,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0954=['exports','events','MailAccount','setMaxListeners','update','remove','hook'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0954,0x135));var _0x4095=function(_0x2a238a,_0x1d5054){_0x2a238a=_0x2a238a-0x0;var _0xeef802=_0x0954[_0x2a238a];return _0xeef802;};'use strict';var EventEmitter=require(_0x4095('0x0'));var MailAccount=require('../../mysqldb')['db'][_0x4095('0x1')];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x4095('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x4095('0x3'),'afterDestroy':_0x4095('0x4')};function emitEvent(_0xee98e){return function(_0x88c144,_0x173fd4,_0x6832ca){MailAccountEvents['emit'](_0xee98e+':'+_0x88c144['id'],_0x88c144);MailAccountEvents['emit'](_0xee98e,_0x88c144);_0x6832ca(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailAccount[_0x4095('0x5')](e,emitEvent(event));}}module[_0x4095('0x6')]=MailAccountEvents;
\ No newline at end of file
+var _0x3618=['../../mysqldb','MailAccount','save','update','remove','emit','hasOwnProperty','exports','events'];(function(_0x257642,_0x270a80){var _0x3d813b=function(_0x2a1c8a){while(--_0x2a1c8a){_0x257642['push'](_0x257642['shift']());}};_0x3d813b(++_0x270a80);}(_0x3618,0x10d));var _0x8361=function(_0x279d37,_0x14de3f){_0x279d37=_0x279d37-0x0;var _0x530173=_0x3618[_0x279d37];return _0x530173;};'use strict';var EventEmitter=require(_0x8361('0x0'));var MailAccount=require(_0x8361('0x1'))['db'][_0x8361('0x2')];var MailAccountEvents=new EventEmitter();MailAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x8361('0x3'),'afterUpdate':_0x8361('0x4'),'afterDestroy':_0x8361('0x5')};function emitEvent(_0x4e5bb9){return function(_0x53bd78,_0x27ef3e,_0x322214){MailAccountEvents[_0x8361('0x6')](_0x4e5bb9+':'+_0x53bd78['id'],_0x53bd78);MailAccountEvents[_0x8361('0x6')](_0x4e5bb9,_0x53bd78);_0x322214(null);};}for(var e in events){if(events[_0x8361('0x7')](e)){var event=events[e];MailAccount['hook'](e,emitEvent(event));}}module[_0x8361('0x8')]=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ff2=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailAccount.attributes','define','MailAccount','mail_accounts','lodash','util','api'];(function(_0x5a95fa,_0x4a2fc9){var _0x1a61b8=function(_0x59f119){while(--_0x59f119){_0x5a95fa['push'](_0x5a95fa['shift']());}};_0x1a61b8(++_0x4a2fc9);}(_0x7ff2,0x14f));var _0x27ff=function(_0x9f7c26,_0x56d88f){_0x9f7c26=_0x9f7c26-0x0;var _0x134c35=_0x7ff2[_0x9f7c26];return _0x134c35;};'use strict';var _=require(_0x27ff('0x0'));var util=require(_0x27ff('0x1'));var logger=require('../../config/logger')(_0x27ff('0x2'));var moment=require(_0x27ff('0x3'));var BPromise=require(_0x27ff('0x4'));var rp=require(_0x27ff('0x5'));var fs=require('fs');var path=require(_0x27ff('0x6'));var rimraf=require(_0x27ff('0x7'));var config=require(_0x27ff('0x8'));var attributes=require(_0x27ff('0x9'));module['exports']=function(_0x36e955,_0x1dbf79){return _0x36e955[_0x27ff('0xa')](_0x27ff('0xb'),attributes,{'tableName':_0x27ff('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1582=['util','../../config/logger','moment','rimraf','../../config/environment','./mailAccount.attributes','exports','define','MailAccount','mail_accounts','lodash'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x1582,0xfc));var _0x2158=function(_0x2e9d8e,_0x3a377e){_0x2e9d8e=_0x2e9d8e-0x0;var _0x4dfc9b=_0x1582[_0x2e9d8e];return _0x4dfc9b;};'use strict';var _=require(_0x2158('0x0'));var util=require(_0x2158('0x1'));var logger=require(_0x2158('0x2'))('api');var moment=require(_0x2158('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2158('0x4'));var config=require(_0x2158('0x5'));var attributes=require(_0x2158('0x6'));module[_0x2158('0x7')]=function(_0x11d4b5,_0x43acd0){return _0x11d4b5[_0x2158('0x8')](_0x2158('0x9'),attributes,{'tableName':_0x2158('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd59b=['then','info','MailAccount,\x20%s,\x20%s','debug','request\x20sent','error','code','message','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','stringify','ShowMailAccount','find','NotifyMailAccount','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','body','isNil','from','from\x20is\x20mandatory','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','account','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','applications','list','orderBy','priority','autoclose','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inReplyTo','MailInteraction','Contact\x20not\x20found','update','interaction','get','created','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','UserId','User','name','unshift','agent','Start','startRouting','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request'];(function(_0x55ce08,_0x3e1f3a){var _0x547956=function(_0x197967){while(--_0x197967){_0x55ce08['push'](_0x55ce08['shift']());}};_0x547956(++_0x3e1f3a);}(_0xd59b,0xc4));var _0xbd59=function(_0x46f006,_0x22f9b5){_0x46f006=_0x46f006-0x0;var _0x2f0a2f=_0xd59b[_0x46f006];return _0x2f0a2f;};'use strict';var _=require('lodash');var util=require(_0xbd59('0x0'));var moment=require(_0xbd59('0x1'));var BPromise=require(_0xbd59('0x2'));var rs=require(_0xbd59('0x3'));var fs=require('fs');var Redis=require(_0xbd59('0x4'));var db=require(_0xbd59('0x5'))['db'];var utils=require(_0xbd59('0x6'));var logger=require(_0xbd59('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xbd59('0x8'));var client=jayson['client']['http']({'port':0x232c});config[_0xbd59('0x9')]=_[_0xbd59('0xa')](config[_0xbd59('0x9')],{'host':_0xbd59('0xb'),'port':0x18eb});var socket=require(_0xbd59('0xc'))(new Redis(config[_0xbd59('0x9')]));require(_0xbd59('0xd'))[_0xbd59('0xe')](socket);function respondWithRpcPromise(_0xbe4cce,_0x43f65c,_0x350651){return new BPromise(function(_0x49d2db,_0x2724de){return client[_0xbd59('0xf')](_0xbe4cce,_0x350651)[_0xbd59('0x10')](function(_0x50e6fa){logger[_0xbd59('0x11')](_0xbd59('0x12'),_0x43f65c,'request\x20sent');logger[_0xbd59('0x13')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x43f65c,_0xbd59('0x14'),JSON['stringify'](_0x50e6fa));if(_0x50e6fa[_0xbd59('0x15')]){if(_0x50e6fa[_0xbd59('0x15')][_0xbd59('0x16')]===0x1f4){logger[_0xbd59('0x15')](_0xbd59('0x12'),_0x43f65c,_0x50e6fa['error'][_0xbd59('0x17')]);return _0x2724de(_0x50e6fa[_0xbd59('0x15')][_0xbd59('0x17')]);}logger[_0xbd59('0x15')](_0xbd59('0x12'),_0x43f65c,_0x50e6fa['error'][_0xbd59('0x17')]);return _0x49d2db(_0x50e6fa[_0xbd59('0x15')]['message']);}else{logger['info'](_0xbd59('0x12'),_0x43f65c,_0xbd59('0x14'));_0x49d2db(_0x50e6fa['result'][_0xbd59('0x17')]);}})[_0xbd59('0x18')](function(_0x20ac46){logger[_0xbd59('0x15')](_0xbd59('0x12'),_0x43f65c,_0x20ac46);_0x2724de(_0x20ac46);});});}exports[_0xbd59('0x19')]=function(_0x43bb6c){var _0x505c4f=this;return new Promise(function(_0x336b3b,_0x52929e){return db[_0xbd59('0x1a')][_0xbd59('0x1b')]({'raw':_0x43bb6c[_0xbd59('0x1c')]?_0x43bb6c[_0xbd59('0x1c')][_0xbd59('0x1d')]===undefined?!![]:![]:!![],'where':_0x43bb6c['options']?_0x43bb6c['options'][_0xbd59('0x1e')]||null:null,'attributes':_0x43bb6c[_0xbd59('0x1c')]?_0x43bb6c[_0xbd59('0x1c')][_0xbd59('0x1f')]||null:null,'limit':_0x43bb6c[_0xbd59('0x1c')]?_0x43bb6c[_0xbd59('0x1c')][_0xbd59('0x20')]||null:null,'include':_0x43bb6c[_0xbd59('0x1c')]?_0x43bb6c[_0xbd59('0x1c')][_0xbd59('0x21')]?_[_0xbd59('0x22')](_0x43bb6c[_0xbd59('0x1c')][_0xbd59('0x21')],function(_0x3bbbbc){return{'model':db[_0x3bbbbc[_0xbd59('0x23')]],'as':_0x3bbbbc['as'],'attributes':_0x3bbbbc[_0xbd59('0x1f')],'include':_0x3bbbbc['include']?_['map'](_0x3bbbbc[_0xbd59('0x21')],function(_0x3ab447){return{'model':db[_0x3ab447[_0xbd59('0x23')]],'as':_0x3ab447['as'],'attributes':_0x3ab447[_0xbd59('0x1f')],'include':_0x3ab447[_0xbd59('0x21')]?_['map'](_0x3ab447['include'],function(_0x502615){return{'model':db[_0x502615[_0xbd59('0x23')]],'as':_0x502615['as'],'attributes':_0x502615[_0xbd59('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xbd59('0x10')](function(_0x11c915){logger[_0xbd59('0x11')](_0xbd59('0x19'),_0x43bb6c);logger['debug'](_0xbd59('0x19'),_0x43bb6c,JSON[_0xbd59('0x24')](_0x11c915));_0x336b3b(_0x11c915);})[_0xbd59('0x18')](function(_0x5872a7){logger[_0xbd59('0x15')](_0xbd59('0x19'),_0x5872a7[_0xbd59('0x17')],_0x43bb6c);_0x52929e(_0x505c4f['error'](0x1f4,_0x5872a7[_0xbd59('0x17')]));});});};exports[_0xbd59('0x25')]=function(_0x55e024){var _0x1868f7=this;return new Promise(function(_0x79b867,_0x147ec2){return db[_0xbd59('0x1a')][_0xbd59('0x26')]({'raw':_0x55e024[_0xbd59('0x1c')]?_0x55e024[_0xbd59('0x1c')][_0xbd59('0x1d')]===undefined?!![]:![]:!![],'where':_0x55e024[_0xbd59('0x1c')]?_0x55e024[_0xbd59('0x1c')][_0xbd59('0x1e')]||null:null,'attributes':_0x55e024['options']?_0x55e024[_0xbd59('0x1c')]['attributes']||null:null,'include':_0x55e024[_0xbd59('0x1c')]?_0x55e024[_0xbd59('0x1c')][_0xbd59('0x21')]?_[_0xbd59('0x22')](_0x55e024[_0xbd59('0x1c')][_0xbd59('0x21')],function(_0x3597ef){return{'model':db[_0x3597ef[_0xbd59('0x23')]],'as':_0x3597ef['as'],'attributes':_0x3597ef['attributes'],'include':_0x3597ef[_0xbd59('0x21')]?_[_0xbd59('0x22')](_0x3597ef[_0xbd59('0x21')],function(_0x20c9eb){return{'model':db[_0x20c9eb[_0xbd59('0x23')]],'as':_0x20c9eb['as'],'attributes':_0x20c9eb[_0xbd59('0x1f')],'include':_0x20c9eb[_0xbd59('0x21')]?_[_0xbd59('0x22')](_0x20c9eb[_0xbd59('0x21')],function(_0x5b874f){return{'model':db[_0x5b874f[_0xbd59('0x23')]],'as':_0x5b874f['as'],'attributes':_0x5b874f[_0xbd59('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x36b5f9){logger[_0xbd59('0x11')](_0xbd59('0x25'),_0x55e024);logger['debug'](_0xbd59('0x25'),_0x55e024,JSON[_0xbd59('0x24')](_0x36b5f9));_0x79b867(_0x36b5f9);})[_0xbd59('0x18')](function(_0xef6707){logger[_0xbd59('0x15')](_0xbd59('0x25'),_0xef6707[_0xbd59('0x17')],_0x55e024);_0x147ec2(_0x1868f7[_0xbd59('0x15')](0x1f4,_0xef6707[_0xbd59('0x17')]));});});};exports[_0xbd59('0x27')]=function(_0x2ef077){var _0x44ff1a=this;return new Promise(function(_0x337c1e,_0x4e37a3){var _0x43afbb={'body':_0x2ef077['body'],'channel':'mail'};var _0x398a78=_[_0xbd59('0x28')](_[_0xbd59('0x29')](db[_0xbd59('0x2a')][_0xbd59('0x2b')]),[_0xbd59('0x2c'),_0xbd59('0x2d'),_0xbd59('0x2e'),_0xbd59('0x2f')]);var _0x505398=![];if(_0x2ef077[_0xbd59('0x30')]['id']){delete _0x2ef077[_0xbd59('0x30')]['id'];}if(_[_0xbd59('0x31')](_0x2ef077[_0xbd59('0x30')][_0xbd59('0x32')])){return _0x4e37a3(_0x44ff1a['error'](0x1f4,_0xbd59('0x33')));}if(_[_0xbd59('0x31')](_0x2ef077[_0xbd59('0x30')]['body'])||_0x2ef077[_0xbd59('0x30')][_0xbd59('0x30')]===''){return _0x4e37a3(_0x44ff1a[_0xbd59('0x15')](0x1f4,_0xbd59('0x34')));}if(_['isNil'](_0x2ef077[_0xbd59('0x30')][_0xbd59('0x35')])){return _0x4e37a3(_0x44ff1a[_0xbd59('0x15')](0x1f4,_0xbd59('0x36')+_0x398a78));}if(!_[_0xbd59('0x37')](_0x398a78,_0x2ef077[_0xbd59('0x30')]['mapKey'])){return _0x4e37a3(_0x44ff1a[_0xbd59('0x15')](0x1f4,_0xbd59('0x38')+_0x398a78));}var _0x142553={};_0x142553[_0x2ef077[_0xbd59('0x30')][_0xbd59('0x35')]]=_0x2ef077[_0xbd59('0x30')]['from'];return db[_0xbd59('0x1a')][_0xbd59('0x26')]({'where':{'id':_0x2ef077[_0xbd59('0x39')]['id']},'include':[{'model':db['CmList'],'as':_0xbd59('0x3a'),'include':[{'model':db[_0xbd59('0x2a')],'as':_0xbd59('0x3b'),'where':_0x142553,'limit':0x1,'order':[['updatedAt',_0xbd59('0x3c')]]}]},{'model':db[_0xbd59('0x3d')],'as':_0xbd59('0x3e')},{'model':db[_0xbd59('0x3f')],'as':_0xbd59('0x40')}]})[_0xbd59('0x10')](function(_0x2d6dda){if(_0x2d6dda&&_0x2d6dda[_0xbd59('0x3a')]){var _0x455828=_0x2d6dda['get']({'plain':!![]});_0x43afbb[_0xbd59('0x39')]=_['omit'](_0x455828,[_0xbd59('0x3e'),_0xbd59('0x3a')]);_0x43afbb[_0xbd59('0x41')]=_0x455828[_0xbd59('0x3e')];_0x43afbb[_0xbd59('0x42')]=_0x455828[_0xbd59('0x3a')];_0x43afbb[_0xbd59('0x41')]=_[_0xbd59('0x43')](_0x43afbb[_0xbd59('0x41')],[_0xbd59('0x44')],['asc']);if(_0x43afbb['account']&&_0x43afbb[_0xbd59('0x39')][_0xbd59('0x45')]){_0x43afbb[_0xbd59('0x41')]['push']({'id':0x0,'priority':_0x43afbb[_0xbd59('0x41')]['length']+0x1,'app':_0xbd59('0x46'),'appdata':_0xbd59('0x45'),'interval':_0xbd59('0x47')});}if(_0x43afbb[_0xbd59('0x39')][_0xbd59('0x3e')]){delete _0x43afbb[_0xbd59('0x39')][_0xbd59('0x3e')];}if(_0x43afbb[_0xbd59('0x39')][_0xbd59('0x3a')]){delete _0x43afbb[_0xbd59('0x39')][_0xbd59('0x3a')];}if(_0x455828[_0xbd59('0x3a')][_0xbd59('0x3b')]['length']){return _0x455828[_0xbd59('0x3a')][_0xbd59('0x3b')][0x0];}var _0xc63e37=_[_0xbd59('0xa')](_0x2ef077[_0xbd59('0x30')],{'firstName':_0x2ef077['body']['from'],'ListId':_0x455828['ListId']});_0xc63e37[_0x2ef077['body'][_0xbd59('0x35')]]=_0x2ef077[_0xbd59('0x30')]['from'];return db['CmContact'][_0xbd59('0x48')](_0xc63e37);}else{throw new Error(_0xbd59('0x49'));}})[_0xbd59('0x10')](function(_0x54f109){_0x43afbb[_0xbd59('0x4a')]=_0x54f109;if(_0x54f109){if(!_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4b')]){_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4b')]=rs[_0xbd59('0x4c')]()+'\x20'+_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')]['from'];}var _0x3a8b5e={'ContactId':_0x54f109['id'],'MailAccountId':_0x2ef077[_0xbd59('0x39')]['id'],'inReplyTo':_0x2ef077['body'][_0xbd59('0x17')][_0xbd59('0x4b')],'to':_0x2ef077['body']['message'][_0xbd59('0x32')],'cc':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')]['cc'],'subject':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4d')],'attach':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4e')],'lastMsgAt':moment()[_0xbd59('0x4f')](_0xbd59('0x50')),'lastMsgDirection':'in'};return db['MailInteraction'][_0xbd59('0x26')]({'where':{'closed':![],'MailAccountId':_0x2ef077[_0xbd59('0x39')]['id']},'include':[{'model':db[_0xbd59('0x51')],'as':'Messages','attributes':[_0xbd59('0x4b')],'where':{'messageId':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x52')]}}]})[_0xbd59('0x10')](function(_0x3357fa){if(_0x3357fa){return[_0x3357fa,![]];}return db[_0xbd59('0x53')][_0xbd59('0x48')](_0x3a8b5e)[_0xbd59('0x10')](function(_0x5a39a3){return[_0x5a39a3,!![]];});});}else{throw new Error(_0xbd59('0x54'));}})['spread'](function(_0x7438e,_0xbf9879){if(_0x7438e){_0x505398=_0xbf9879;if(!_0xbf9879){return _0x7438e[_0xbd59('0x55')]({'inReplyTo':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4b')],'to':_0x2ef077[_0xbd59('0x30')]['message'][_0xbd59('0x32')],'cc':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')]['cc'],'subject':_0x2ef077['body']['message'][_0xbd59('0x4d')],'attach':_0x7438e[_0xbd59('0x4e')]?_0x7438e[_0xbd59('0x4e')]:_0x2ef077['body'][_0xbd59('0x17')][_0xbd59('0x4e')],'substatus':null,'substatusAt':moment()[_0xbd59('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0xbd59('0x4f')](_0xbd59('0x50')),'lastMsgDirection':'in'});}else{return _0x7438e;}}})[_0xbd59('0x10')](function(_0x52352f){_0x43afbb[_0xbd59('0x56')]=_0x52352f[_0xbd59('0x57')]({'plain':!![]});_0x43afbb[_0xbd59('0x56')][_0xbd59('0x58')]=_0x505398;return db[_0xbd59('0x51')][_0xbd59('0x48')]({'body':_0x2ef077['body'][_0xbd59('0x30')],'MailAccountId':_0x2ef077[_0xbd59('0x39')]['id'],'MailInteractionId':_0x52352f['id'],'direction':'in','ContactId':_0x43afbb[_0xbd59('0x4a')]['id'],'messageId':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4b')],'from':_0x2ef077[_0xbd59('0x30')]['message'][_0xbd59('0x32')],'to':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')]['to'],'cc':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')]['cc'],'subject':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x4d')],'attach':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')]['attach'],'Attachments':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x59')],'originTo':_0x2ef077['body']['message'][_0xbd59('0x5a')],'originCc':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x5b')],'bcc':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x5c')],'ChatWebsiteId':_0x2ef077[_0xbd59('0x30')]['message'][_0xbd59('0x5d')]||null,'originChannel':_0x2ef077[_0xbd59('0x30')][_0xbd59('0x17')][_0xbd59('0x5e')]||_0xbd59('0x5f'),'ChatOfflineMessageId':_0x2ef077['body']['message'][_0xbd59('0x60')]||null},{'include':[{'model':db[_0xbd59('0x61')],'as':_0xbd59('0x62')}]});})[_0xbd59('0x10')](function(_0x5df550){_0x43afbb[_0xbd59('0x17')]=_0x5df550;if(_0x43afbb[_0xbd59('0x56')][_0xbd59('0x63')]){return db[_0xbd59('0x64')][_0xbd59('0x26')]({'attributes':['id',_0xbd59('0x65')],'where':{'id':_0x43afbb[_0xbd59('0x56')][_0xbd59('0x63')]}})['then'](function(_0x5878d9){if(_0x5878d9){_0x43afbb[_0xbd59('0x41')][_0xbd59('0x66')]({'id':0x0,'priority':0x0,'app':_0xbd59('0x67'),'appdata':_0x5878d9[_0xbd59('0x65')]+','+(_0x43afbb[_0xbd59('0x39')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0xbd59('0x68'),_0xbd59('0x69'),_0x43afbb);});}return respondWithRpcPromise(_0xbd59('0x68'),_0xbd59('0x69'),_0x43afbb);})[_0xbd59('0x10')](function(_0x59d3cc){_0x337c1e(_0x59d3cc);})[_0xbd59('0x18')](function(_0x2f4cb6){_0x4e37a3(_0x44ff1a[_0xbd59('0x15')](0x1f4,_0x2f4cb6[_0xbd59('0x17')]));});});};
\ No newline at end of file
+var _0xdc2a=['MailInteraction','Contact\x20not\x20found','update','YYYY-MM-DD\x20HH:mm:ss','interaction','created','MailMessage','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','ChatOfflineMessageId','Attachment','Attachments','UserId','User','unshift','waitForTheAssignedAgent','Start','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','redis','defaults','register','request','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','include','map','model','then','ShowMailAccount','find','NotifyMailAccount','body','mail','difference','createdAt','updatedAt','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','get','omit','asc','account','autoclose','applications','push','length','*,*,*,*','create','contact','messageId','attach','format','Messages','inReplyTo'];(function(_0x45ff73,_0x539b2e){var _0x33fef9=function(_0x3110ff){while(--_0x3110ff){_0x45ff73['push'](_0x45ff73['shift']());}};_0x33fef9(++_0x539b2e);}(_0xdc2a,0xd7));var _0xadc2=function(_0xf8c640,_0x390d1c){_0xf8c640=_0xf8c640-0x0;var _0x845ae0=_0xdc2a[_0xf8c640];return _0x845ae0;};'use strict';var _=require(_0xadc2('0x0'));var util=require(_0xadc2('0x1'));var moment=require('moment');var BPromise=require(_0xadc2('0x2'));var rs=require(_0xadc2('0x3'));var fs=require('fs');var Redis=require(_0xadc2('0x4'));var db=require(_0xadc2('0x5'))['db'];var utils=require(_0xadc2('0x6'));var logger=require('../../config/logger')(_0xadc2('0x7'));var config=require(_0xadc2('0x8'));var jayson=require(_0xadc2('0x9'));var client=jayson['client'][_0xadc2('0xa')]({'port':0x232c});config[_0xadc2('0xb')]=_[_0xadc2('0xc')](config[_0xadc2('0xb')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./mailAccount.socket')[_0xadc2('0xd')](socket);function respondWithRpcPromise(_0x4fa846,_0x2c24fb,_0x2cf91e){return new BPromise(function(_0x20c5ac,_0x1b0e04){return client[_0xadc2('0xe')](_0x4fa846,_0x2cf91e)['then'](function(_0x549800){logger['info'](_0xadc2('0xf'),_0x2c24fb,_0xadc2('0x10'));logger[_0xadc2('0x11')](_0xadc2('0x12'),_0x2c24fb,_0xadc2('0x10'),JSON[_0xadc2('0x13')](_0x549800));if(_0x549800[_0xadc2('0x14')]){if(_0x549800[_0xadc2('0x14')][_0xadc2('0x15')]===0x1f4){logger['error'](_0xadc2('0xf'),_0x2c24fb,_0x549800[_0xadc2('0x14')][_0xadc2('0x16')]);return _0x1b0e04(_0x549800[_0xadc2('0x14')][_0xadc2('0x16')]);}logger[_0xadc2('0x14')](_0xadc2('0xf'),_0x2c24fb,_0x549800[_0xadc2('0x14')][_0xadc2('0x16')]);return _0x20c5ac(_0x549800['error']['message']);}else{logger[_0xadc2('0x17')](_0xadc2('0xf'),_0x2c24fb,_0xadc2('0x10'));_0x20c5ac(_0x549800['result']['message']);}})[_0xadc2('0x18')](function(_0x5a41bd){logger[_0xadc2('0x14')](_0xadc2('0xf'),_0x2c24fb,_0x5a41bd);_0x1b0e04(_0x5a41bd);});});}exports[_0xadc2('0x19')]=function(_0x3e199f){var _0x471aad=this;return new Promise(function(_0x5ee897,_0xf2a625){return db[_0xadc2('0x1a')][_0xadc2('0x1b')]({'raw':_0x3e199f[_0xadc2('0x1c')]?_0x3e199f['options'][_0xadc2('0x1d')]===undefined?!![]:![]:!![],'where':_0x3e199f[_0xadc2('0x1c')]?_0x3e199f[_0xadc2('0x1c')][_0xadc2('0x1e')]||null:null,'attributes':_0x3e199f[_0xadc2('0x1c')]?_0x3e199f[_0xadc2('0x1c')][_0xadc2('0x1f')]||null:null,'limit':_0x3e199f[_0xadc2('0x1c')]?_0x3e199f[_0xadc2('0x1c')]['limit']||null:null,'include':_0x3e199f[_0xadc2('0x1c')]?_0x3e199f[_0xadc2('0x1c')][_0xadc2('0x20')]?_[_0xadc2('0x21')](_0x3e199f['options'][_0xadc2('0x20')],function(_0x3a52db){return{'model':db[_0x3a52db[_0xadc2('0x22')]],'as':_0x3a52db['as'],'attributes':_0x3a52db[_0xadc2('0x1f')],'include':_0x3a52db[_0xadc2('0x20')]?_[_0xadc2('0x21')](_0x3a52db[_0xadc2('0x20')],function(_0xc335cd){return{'model':db[_0xc335cd[_0xadc2('0x22')]],'as':_0xc335cd['as'],'attributes':_0xc335cd[_0xadc2('0x1f')],'include':_0xc335cd[_0xadc2('0x20')]?_[_0xadc2('0x21')](_0xc335cd['include'],function(_0x184bab){return{'model':db[_0x184bab[_0xadc2('0x22')]],'as':_0x184bab['as'],'attributes':_0x184bab[_0xadc2('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xadc2('0x23')](function(_0x178738){logger[_0xadc2('0x17')]('GetMailAccount',_0x3e199f);logger[_0xadc2('0x11')]('GetMailAccount',_0x3e199f,JSON[_0xadc2('0x13')](_0x178738));_0x5ee897(_0x178738);})[_0xadc2('0x18')](function(_0x8f9041){logger['error'](_0xadc2('0x19'),_0x8f9041[_0xadc2('0x16')],_0x3e199f);_0xf2a625(_0x471aad['error'](0x1f4,_0x8f9041['message']));});});};exports[_0xadc2('0x24')]=function(_0x7a9356){var _0x51cdc3=this;return new Promise(function(_0x267bd7,_0x34c601){return db[_0xadc2('0x1a')][_0xadc2('0x25')]({'raw':_0x7a9356[_0xadc2('0x1c')]?_0x7a9356[_0xadc2('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x7a9356[_0xadc2('0x1c')]?_0x7a9356[_0xadc2('0x1c')]['where']||null:null,'attributes':_0x7a9356[_0xadc2('0x1c')]?_0x7a9356[_0xadc2('0x1c')]['attributes']||null:null,'include':_0x7a9356[_0xadc2('0x1c')]?_0x7a9356[_0xadc2('0x1c')][_0xadc2('0x20')]?_[_0xadc2('0x21')](_0x7a9356[_0xadc2('0x1c')]['include'],function(_0x51d973){return{'model':db[_0x51d973[_0xadc2('0x22')]],'as':_0x51d973['as'],'attributes':_0x51d973[_0xadc2('0x1f')],'include':_0x51d973['include']?_['map'](_0x51d973[_0xadc2('0x20')],function(_0x1a0463){return{'model':db[_0x1a0463[_0xadc2('0x22')]],'as':_0x1a0463['as'],'attributes':_0x1a0463[_0xadc2('0x1f')],'include':_0x1a0463[_0xadc2('0x20')]?_['map'](_0x1a0463[_0xadc2('0x20')],function(_0x4c04c0){return{'model':db[_0x4c04c0[_0xadc2('0x22')]],'as':_0x4c04c0['as'],'attributes':_0x4c04c0[_0xadc2('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xadc2('0x23')](function(_0x1051dc){logger[_0xadc2('0x17')](_0xadc2('0x24'),_0x7a9356);logger[_0xadc2('0x11')](_0xadc2('0x24'),_0x7a9356,JSON[_0xadc2('0x13')](_0x1051dc));_0x267bd7(_0x1051dc);})['catch'](function(_0x4f788e){logger[_0xadc2('0x14')]('ShowMailAccount',_0x4f788e[_0xadc2('0x16')],_0x7a9356);_0x34c601(_0x51cdc3[_0xadc2('0x14')](0x1f4,_0x4f788e['message']));});});};exports[_0xadc2('0x26')]=function(_0x48fbf7){var _0x494877=this;return new Promise(function(_0x23a852,_0x50972a){var _0x18f1b4={'body':_0x48fbf7[_0xadc2('0x27')],'channel':_0xadc2('0x28')};var _0x22d49c=_[_0xadc2('0x29')](_['keys'](db['CmContact']['rawAttributes']),[_0xadc2('0x2a'),_0xadc2('0x2b'),'CompanyId',_0xadc2('0x2c')]);var _0x17db5f=![];if(_0x48fbf7[_0xadc2('0x27')]['id']){delete _0x48fbf7[_0xadc2('0x27')]['id'];}if(_[_0xadc2('0x2d')](_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x2e')])){return _0x50972a(_0x494877['error'](0x1f4,_0xadc2('0x2f')));}if(_['isNil'](_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x27')])||_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x27')]===''){return _0x50972a(_0x494877[_0xadc2('0x14')](0x1f4,_0xadc2('0x30')));}if(_['isNil'](_0x48fbf7['body'][_0xadc2('0x31')])){return _0x50972a(_0x494877[_0xadc2('0x14')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x22d49c));}if(!_[_0xadc2('0x32')](_0x22d49c,_0x48fbf7['body'][_0xadc2('0x31')])){return _0x50972a(_0x494877[_0xadc2('0x14')](0x1f4,_0xadc2('0x33')+_0x22d49c));}var _0xafbd0a={};_0xafbd0a[_0x48fbf7['body'][_0xadc2('0x31')]]=_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x2e')];return db[_0xadc2('0x1a')][_0xadc2('0x25')]({'where':{'id':_0x48fbf7['account']['id']},'include':[{'model':db[_0xadc2('0x34')],'as':_0xadc2('0x35'),'include':[{'model':db['CmContact'],'as':_0xadc2('0x36'),'where':_0xafbd0a,'limit':0x1,'order':[[_0xadc2('0x2b'),_0xadc2('0x37')]]}]},{'model':db[_0xadc2('0x38')],'as':_0xadc2('0x39')},{'model':db[_0xadc2('0x3a')],'as':_0xadc2('0x3b')}]})['then'](function(_0x4facc6){if(_0x4facc6&&_0x4facc6[_0xadc2('0x35')]){var _0x2ac5eb=_0x4facc6[_0xadc2('0x3c')]({'plain':!![]});_0x18f1b4['account']=_[_0xadc2('0x3d')](_0x2ac5eb,[_0xadc2('0x39'),_0xadc2('0x35')]);_0x18f1b4['applications']=_0x2ac5eb[_0xadc2('0x39')];_0x18f1b4['list']=_0x2ac5eb[_0xadc2('0x35')];_0x18f1b4['applications']=_['orderBy'](_0x18f1b4['applications'],['priority'],[_0xadc2('0x3e')]);if(_0x18f1b4[_0xadc2('0x3f')]&&_0x18f1b4[_0xadc2('0x3f')][_0xadc2('0x40')]){_0x18f1b4[_0xadc2('0x41')][_0xadc2('0x42')]({'id':0x0,'priority':_0x18f1b4[_0xadc2('0x41')][_0xadc2('0x43')]+0x1,'app':'close','appdata':_0xadc2('0x40'),'interval':_0xadc2('0x44')});}if(_0x18f1b4[_0xadc2('0x3f')][_0xadc2('0x39')]){delete _0x18f1b4['account'][_0xadc2('0x39')];}if(_0x18f1b4['account'][_0xadc2('0x35')]){delete _0x18f1b4[_0xadc2('0x3f')]['List'];}if(_0x2ac5eb[_0xadc2('0x35')]['Contacts'][_0xadc2('0x43')]){return _0x2ac5eb[_0xadc2('0x35')][_0xadc2('0x36')][0x0];}var _0x2b33eb=_[_0xadc2('0xc')](_0x48fbf7[_0xadc2('0x27')],{'firstName':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x2e')],'ListId':_0x2ac5eb['ListId']});_0x2b33eb[_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x31')]]=_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x2e')];return db['CmContact'][_0xadc2('0x45')](_0x2b33eb);}else{throw new Error('List\x20not\x20found');}})[_0xadc2('0x23')](function(_0xa5a0a0){_0x18f1b4[_0xadc2('0x46')]=_0xa5a0a0;if(_0xa5a0a0){if(!_0x48fbf7['body'][_0xadc2('0x16')]['messageId']){_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')]['messageId']=rs['generate']()+'\x20'+_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x2e')];}var _0xcb499d={'ContactId':_0xa5a0a0['id'],'MailAccountId':_0x48fbf7[_0xadc2('0x3f')]['id'],'inReplyTo':_0x48fbf7['body'][_0xadc2('0x16')][_0xadc2('0x47')],'to':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')]['from'],'cc':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')]['cc'],'subject':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')]['subject'],'attach':_0x48fbf7[_0xadc2('0x27')]['message'][_0xadc2('0x48')],'lastMsgAt':moment()[_0xadc2('0x49')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db['MailInteraction'][_0xadc2('0x25')]({'where':{'closed':![],'MailAccountId':_0x48fbf7[_0xadc2('0x3f')]['id']},'include':[{'model':db['MailMessage'],'as':_0xadc2('0x4a'),'attributes':['messageId'],'where':{'messageId':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x4b')]}}]})[_0xadc2('0x23')](function(_0x5debe6){if(_0x5debe6){return[_0x5debe6,![]];}return db[_0xadc2('0x4c')]['create'](_0xcb499d)[_0xadc2('0x23')](function(_0x3ff533){return[_0x3ff533,!![]];});});}else{throw new Error(_0xadc2('0x4d'));}})['spread'](function(_0x3c5098,_0x6680ab){if(_0x3c5098){_0x17db5f=_0x6680ab;if(!_0x6680ab){return _0x3c5098[_0xadc2('0x4e')]({'inReplyTo':_0x48fbf7['body']['message'][_0xadc2('0x47')],'to':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x2e')],'cc':_0x48fbf7['body']['message']['cc'],'subject':_0x48fbf7['body'][_0xadc2('0x16')]['subject'],'attach':_0x3c5098[_0xadc2('0x48')]?_0x3c5098[_0xadc2('0x48')]:_0x48fbf7['body'][_0xadc2('0x16')]['attach'],'substatus':null,'substatusAt':moment()[_0xadc2('0x49')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()['format'](_0xadc2('0x4f')),'lastMsgDirection':'in'});}else{return _0x3c5098;}}})['then'](function(_0x1ea1b0){_0x18f1b4[_0xadc2('0x50')]=_0x1ea1b0[_0xadc2('0x3c')]({'plain':!![]});_0x18f1b4['interaction'][_0xadc2('0x51')]=_0x17db5f;return db[_0xadc2('0x52')][_0xadc2('0x45')]({'body':_0x48fbf7['body']['body'],'MailAccountId':_0x48fbf7[_0xadc2('0x3f')]['id'],'MailInteractionId':_0x1ea1b0['id'],'direction':'in','ContactId':_0x18f1b4[_0xadc2('0x46')]['id'],'messageId':_0x48fbf7['body']['message'][_0xadc2('0x47')],'from':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x2e')],'to':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')]['to'],'cc':_0x48fbf7['body'][_0xadc2('0x16')]['cc'],'subject':_0x48fbf7['body'][_0xadc2('0x16')]['subject'],'attach':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x48')],'Attachments':_0x48fbf7['body'][_0xadc2('0x16')][_0xadc2('0x53')],'originTo':_0x48fbf7['body'][_0xadc2('0x16')][_0xadc2('0x54')],'originCc':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x55')],'bcc':_0x48fbf7['body'][_0xadc2('0x16')][_0xadc2('0x56')],'ChatWebsiteId':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x57')]||null,'originChannel':_0x48fbf7[_0xadc2('0x27')][_0xadc2('0x16')][_0xadc2('0x58')]||'Email','ChatOfflineMessageId':_0x48fbf7['body'][_0xadc2('0x16')][_0xadc2('0x59')]||null},{'include':[{'model':db[_0xadc2('0x5a')],'as':_0xadc2('0x5b')}]});})[_0xadc2('0x23')](function(_0x4f723d){_0x18f1b4[_0xadc2('0x16')]=_0x4f723d;if(_0x18f1b4[_0xadc2('0x50')][_0xadc2('0x5c')]){return db[_0xadc2('0x5d')][_0xadc2('0x25')]({'attributes':['id','name'],'where':{'id':_0x18f1b4[_0xadc2('0x50')]['UserId']}})['then'](function(_0x1c92b1){if(_0x1c92b1){_0x18f1b4[_0xadc2('0x41')][_0xadc2('0x5e')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x1c92b1['name']+','+(_0x18f1b4[_0xadc2('0x3f')][_0xadc2('0x5f')]||0xa),'interval':_0xadc2('0x44')});}return respondWithRpcPromise(_0xadc2('0x60'),'startRouting',_0x18f1b4);});}return respondWithRpcPromise(_0xadc2('0x60'),'startRouting',_0x18f1b4);})['then'](function(_0x2243ae){_0x23a852(_0x2243ae);})[_0xadc2('0x18')](function(_0x3246ff){_0x50972a(_0x494877[_0xadc2('0x14')](0x1f4,_0x3246ff[_0xadc2('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8de5=['save','remove','update','emit','register','length','mailAccount:','./mailAccount.events'];(function(_0x37c883,_0x2e45a6){var _0xa75ce8=function(_0x246a91){while(--_0x246a91){_0x37c883['push'](_0x37c883['shift']());}};_0xa75ce8(++_0x2e45a6);}(_0x8de5,0xd7));var _0x58de=function(_0x222147,_0x429212){_0x222147=_0x222147-0x0;var _0x360e5b=_0x8de5[_0x222147];return _0x360e5b;};'use strict';var MailAccountEvents=require(_0x58de('0x0'));var events=[_0x58de('0x1'),_0x58de('0x2'),_0x58de('0x3')];function createListener(_0x364c63,_0x3aa6f1){return function(_0x4ffce2){_0x3aa6f1[_0x58de('0x4')](_0x364c63,_0x4ffce2);};}function removeListener(_0x462ce0,_0xf1b9d9){return function(){MailAccountEvents['removeListener'](_0x462ce0,_0xf1b9d9);};}exports[_0x58de('0x5')]=function(_0x465e76){for(var _0x1a830b=0x0,_0x2e3ff2=events[_0x58de('0x6')];_0x1a830b<_0x2e3ff2;_0x1a830b++){var _0x2e55bf=events[_0x1a830b];var _0x800f86=createListener(_0x58de('0x7')+_0x2e55bf,_0x465e76);MailAccountEvents['on'](_0x2e55bf,_0x800f86);}};
\ No newline at end of file
+var _0xc932=['update','removeListener','register','mailAccount:','./mailAccount.events'];(function(_0x5f09c5,_0x2bfca0){var _0x426ad9=function(_0x18fe5f){while(--_0x18fe5f){_0x5f09c5['push'](_0x5f09c5['shift']());}};_0x426ad9(++_0x2bfca0);}(_0xc932,0x18f));var _0x2c93=function(_0xca04ff,_0xcb449f){_0xca04ff=_0xca04ff-0x0;var _0x6b547=_0xc932[_0xca04ff];return _0x6b547;};'use strict';var MailAccountEvents=require(_0x2c93('0x0'));var events=['save','remove',_0x2c93('0x1')];function createListener(_0x20bab5,_0x4ffe16){return function(_0x22d149){_0x4ffe16['emit'](_0x20bab5,_0x22d149);};}function removeListener(_0x1687b1,_0x3e695a){return function(){MailAccountEvents[_0x2c93('0x2')](_0x1687b1,_0x3e695a);};}exports[_0x2c93('0x3')]=function(_0x527776){for(var _0x5ae1a3=0x0,_0x55a5c1=events['length'];_0x5ae1a3<_0x55a5c1;_0x5ae1a3++){var _0xe205e3=events[_0x5ae1a3];var _0x10a55b=createListener(_0x2c93('0x4')+_0xe205e3,_0x527776);MailAccountEvents['on'](_0xe205e3,_0x10a55b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a04=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./mailApplication.controller','get','/:id','isAuthenticated','show','put','update','destroy','multer','util'];(function(_0x5783c4,_0x2c053c){var _0x7a9746=function(_0x1d6fbd){while(--_0x1d6fbd){_0x5783c4['push'](_0x5783c4['shift']());}};_0x7a9746(++_0x2c053c);}(_0x9a04,0x10e));var _0x49a0=function(_0xe4f0af,_0x3d0d6b){_0xe4f0af=_0xe4f0af-0x0;var _0x597fa2=_0x9a04[_0xe4f0af];return _0x597fa2;};'use strict';var multer=require(_0x49a0('0x0'));var util=require(_0x49a0('0x1'));var path=require(_0x49a0('0x2'));var timeout=require(_0x49a0('0x3'));var express=require(_0x49a0('0x4'));var router=express[_0x49a0('0x5')]();var fs_extra=require(_0x49a0('0x6'));var auth=require(_0x49a0('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x49a0('0x8'));router[_0x49a0('0x9')](_0x49a0('0xa'),auth[_0x49a0('0xb')](),controller[_0x49a0('0xc')]);router[_0x49a0('0xd')]('/:id',auth[_0x49a0('0xb')](),controller[_0x49a0('0xe')]);router['delete']('/:id',auth[_0x49a0('0xb')](),controller[_0x49a0('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0xae10=['../../components/auth/service','../../components/interaction/service','../../config/environment','./mailApplication.controller','get','/:id','isAuthenticated','put','delete','exports','util','express','fs-extra'];(function(_0x3970d8,_0x4a5477){var _0x440e19=function(_0x469e3b){while(--_0x469e3b){_0x3970d8['push'](_0x3970d8['shift']());}};_0x440e19(++_0x4a5477);}(_0xae10,0x11b));var _0x0ae1=function(_0x530331,_0x325d9f){_0x530331=_0x530331-0x0;var _0x212ed2=_0xae10[_0x530331];return _0x212ed2;};'use strict';var multer=require('multer');var util=require(_0x0ae1('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x0ae1('0x1'));var router=express['Router']();var fs_extra=require(_0x0ae1('0x2'));var auth=require(_0x0ae1('0x3'));var interaction=require(_0x0ae1('0x4'));var config=require(_0x0ae1('0x5'));var controller=require(_0x0ae1('0x6'));router[_0x0ae1('0x7')](_0x0ae1('0x8'),auth[_0x0ae1('0x9')](),controller['show']);router[_0x0ae1('0xa')](_0x0ae1('0x8'),auth[_0x0ae1('0x9')](),controller['update']);router[_0x0ae1('0xb')]('/:id',auth[_0x0ae1('0x9')](),controller['destroy']);module[_0x0ae1('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0427=['TEXT','sequelize','exports','INTEGER','STRING','noop'];(function(_0x2d4879,_0xa11f7e){var _0x34d7c2=function(_0x5d530e){while(--_0x5d530e){_0x2d4879['push'](_0x2d4879['shift']());}};_0x34d7c2(++_0xa11f7e);}(_0x0427,0xd3));var _0x7042=function(_0x242716,_0xa6e4ba){_0x242716=_0x242716-0x0;var _0x396ec7=_0x0427[_0x242716];return _0x396ec7;};'use strict';var Sequelize=require(_0x7042('0x0'));module[_0x7042('0x1')]={'priority':{'type':Sequelize[_0x7042('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x7042('0x3')],'allowNull':![],'defaultValue':_0x7042('0x4')},'appdata':{'type':Sequelize[_0x7042('0x5')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x7042('0x3')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0x1923=['STRING','*,*,*,*','exports','TEXT'];(function(_0x127a60,_0x37f33a){var _0xc1f6a3=function(_0x8ed035){while(--_0x8ed035){_0x127a60['push'](_0x127a60['shift']());}};_0xc1f6a3(++_0x37f33a);}(_0x1923,0x12e));var _0x3192=function(_0x218f79,_0x2bc65d){_0x218f79=_0x218f79-0x0;var _0x51fbf4=_0x1923[_0x218f79];return _0x51fbf4;};'use strict';var Sequelize=require('sequelize');module[_0x3192('0x0')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize[_0x3192('0x1')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x3192('0x2')],'defaultValue':_0x3192('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbdb7=['update','error','stack','name','send','show','params','model','keys','MailApplication','query','filters','intersection','attributes','length','includeAll','merge','find','then','body','catch','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../mysqldb','end','json','offset','undefined','limit','count','status','set','Content-Range','apply','save'];(function(_0x3616bb,_0x86fe00){var _0x1c0994=function(_0x46a1d4){while(--_0x46a1d4){_0x3616bb['push'](_0x3616bb['shift']());}};_0x1c0994(++_0x86fe00);}(_0xbdb7,0x12e));var _0x7bdb=function(_0x460666,_0x24bfa0){_0x460666=_0x460666-0x0;var _0x555cbf=_0xbdb7[_0x460666];return _0x555cbf;};'use strict';var emlformat=require(_0x7bdb('0x0'));var rimraf=require(_0x7bdb('0x1'));var zipdir=require(_0x7bdb('0x2'));var jsonpatch=require(_0x7bdb('0x3'));var rp=require(_0x7bdb('0x4'));var moment=require(_0x7bdb('0x5'));var BPromise=require(_0x7bdb('0x6'));var Mustache=require(_0x7bdb('0x7'));var util=require(_0x7bdb('0x8'));var path=require('path');var sox=require(_0x7bdb('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7bdb('0xa'));var _=require(_0x7bdb('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7bdb('0xc'));var deskjs=require(_0x7bdb('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7bdb('0xe'));var Redis=require(_0x7bdb('0xf'));var authService=require(_0x7bdb('0x10'));var qs=require(_0x7bdb('0x11'));var as=require(_0x7bdb('0x12'));var hardwareService=require(_0x7bdb('0x13'));var logger=require(_0x7bdb('0x14'))(_0x7bdb('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x7bdb('0x16'))['db'];function respondWithStatusCode(_0x25e3cb,_0x496613){_0x496613=_0x496613||0xcc;return function(_0x8d74ff){if(_0x8d74ff){return _0x25e3cb['sendStatus'](_0x496613);}return _0x25e3cb['status'](_0x496613)[_0x7bdb('0x17')]();};}function respondWithResult(_0x46dd4a,_0x4fd91a){_0x4fd91a=_0x4fd91a||0xc8;return function(_0x50eeca){if(_0x50eeca){return _0x46dd4a['status'](_0x4fd91a)[_0x7bdb('0x18')](_0x50eeca);}};}function respondWithFilteredResult(_0x195b2e,_0xe9919f){return function(_0x25d417){if(_0x25d417){var _0x31c909=typeof _0xe9919f[_0x7bdb('0x19')]===_0x7bdb('0x1a')&&typeof _0xe9919f[_0x7bdb('0x1b')]==='undefined';var _0x1c5750=_0x25d417[_0x7bdb('0x1c')];var _0x5723f4=_0x31c909?0x0:_0xe9919f[_0x7bdb('0x19')];var _0x4ffd4b=_0x31c909?_0x25d417[_0x7bdb('0x1c')]:_0xe9919f[_0x7bdb('0x19')]+_0xe9919f['limit'];var _0x3e5f8e;if(_0x4ffd4b>=_0x1c5750){_0x4ffd4b=_0x1c5750;_0x3e5f8e=0xc8;}else{_0x3e5f8e=0xce;}_0x195b2e[_0x7bdb('0x1d')](_0x3e5f8e);return _0x195b2e[_0x7bdb('0x1e')](_0x7bdb('0x1f'),_0x5723f4+'-'+_0x4ffd4b+'/'+_0x1c5750)[_0x7bdb('0x18')](_0x25d417);}return null;};}function patchUpdates(_0x5bfc35){return function(_0x49f353){try{jsonpatch[_0x7bdb('0x20')](_0x49f353,_0x5bfc35,!![]);}catch(_0xcb25f2){return BPromise['reject'](_0xcb25f2);}return _0x49f353[_0x7bdb('0x21')]();};}function saveUpdates(_0x118ea1,_0x346c72){return function(_0x3f53e7){if(_0x3f53e7){return _0x3f53e7[_0x7bdb('0x22')](_0x118ea1)['then'](function(_0x1d37ac){return _0x1d37ac;});}return null;};}function removeEntity(_0xdad53d,_0x40c447){return function(_0x3a456f){if(_0x3a456f){return _0x3a456f['destroy']()['then'](function(){_0xdad53d[_0x7bdb('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x47abaf,_0x4a9e02){return function(_0x2abef6){if(!_0x2abef6){_0x47abaf['sendStatus'](0x194);}return _0x2abef6;};}function handleError(_0x2b14bc,_0x72ba69){_0x72ba69=_0x72ba69||0x1f4;return function(_0x3ec129){logger[_0x7bdb('0x23')](_0x3ec129[_0x7bdb('0x24')]);if(_0x3ec129['name']){delete _0x3ec129[_0x7bdb('0x25')];}_0x2b14bc[_0x7bdb('0x1d')](_0x72ba69)[_0x7bdb('0x26')](_0x3ec129);};}exports[_0x7bdb('0x27')]=function(_0x371e8a,_0x2e8e65){var _0x1e9996={'raw':!![],'where':{'id':_0x371e8a[_0x7bdb('0x28')]['id']}},_0xd2d7be={};_0xd2d7be[_0x7bdb('0x29')]=_[_0x7bdb('0x2a')](db[_0x7bdb('0x2b')]['rawAttributes']);_0xd2d7be[_0x7bdb('0x2c')]=_[_0x7bdb('0x2a')](_0x371e8a[_0x7bdb('0x2c')]);_0xd2d7be[_0x7bdb('0x2d')]=_[_0x7bdb('0x2e')](_0xd2d7be['model'],_0xd2d7be[_0x7bdb('0x2c')]);_0x1e9996[_0x7bdb('0x2f')]=_[_0x7bdb('0x2e')](_0xd2d7be[_0x7bdb('0x29')],qs['fields'](_0x371e8a['query']['fields']));_0x1e9996[_0x7bdb('0x2f')]=_0x1e9996['attributes'][_0x7bdb('0x30')]?_0x1e9996['attributes']:_0xd2d7be[_0x7bdb('0x29')];if(_0x371e8a[_0x7bdb('0x2c')][_0x7bdb('0x31')]){_0x1e9996['include']=[{'all':!![]}];}_0x1e9996=_[_0x7bdb('0x32')]({},_0x1e9996,_0x371e8a['options']);return db['MailApplication'][_0x7bdb('0x33')](_0x1e9996)['then'](handleEntityNotFound(_0x2e8e65,null))[_0x7bdb('0x34')](respondWithResult(_0x2e8e65,null))['catch'](handleError(_0x2e8e65,null));};exports['update']=function(_0x206c26,_0x353b26){if(_0x206c26[_0x7bdb('0x35')]['id']){delete _0x206c26[_0x7bdb('0x35')]['id'];}return db[_0x7bdb('0x2b')][_0x7bdb('0x33')]({'where':{'id':_0x206c26['params']['id']}})[_0x7bdb('0x34')](handleEntityNotFound(_0x353b26,null))[_0x7bdb('0x34')](saveUpdates(_0x206c26[_0x7bdb('0x35')],null))[_0x7bdb('0x34')](respondWithResult(_0x353b26,null))[_0x7bdb('0x36')](handleError(_0x353b26,null));};exports[_0x7bdb('0x37')]=function(_0x228340,_0x2587af){return db[_0x7bdb('0x2b')]['find']({'where':{'id':_0x228340['params']['id']}})[_0x7bdb('0x34')](handleEntityNotFound(_0x2587af,null))[_0x7bdb('0x34')](removeEntity(_0x2587af,null))[_0x7bdb('0x36')](handleError(_0x2587af,null));};
\ No newline at end of file
+var _0xb43b=['name','status','send','show','params','keys','MailApplication','rawAttributes','query','intersection','model','fields','attributes','length','includeAll','merge','options','find','then','catch','body','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','sox','fs-extra','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','undefined','count','offset','limit','set','Content-Range','json','apply','reject','update','destroy','sendStatus'];(function(_0x50acd1,_0x5f19a7){var _0x19cd8f=function(_0x57f166){while(--_0x57f166){_0x50acd1['push'](_0x50acd1['shift']());}};_0x19cd8f(++_0x5f19a7);}(_0xb43b,0x1b2));var _0xbb43=function(_0x53c98d,_0x3f7f98){_0x53c98d=_0x53c98d-0x0;var _0x3390d9=_0xb43b[_0x53c98d];return _0x3390d9;};'use strict';var emlformat=require(_0xbb43('0x0'));var rimraf=require(_0xbb43('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbb43('0x2'));var rp=require(_0xbb43('0x3'));var moment=require(_0xbb43('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xbb43('0x5'));var util=require(_0xbb43('0x6'));var path=require(_0xbb43('0x7'));var sox=require(_0xbb43('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbb43('0x9'));var _=require('lodash');var squel=require(_0xbb43('0xa'));var crypto=require(_0xbb43('0xb'));var jsforce=require(_0xbb43('0xc'));var deskjs=require(_0xbb43('0xd'));var toCsv=require(_0xbb43('0xe'));var querystring=require('querystring');var Papa=require(_0xbb43('0xf'));var Redis=require(_0xbb43('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xbb43('0x11'));var as=require(_0xbb43('0x12'));var hardwareService=require(_0xbb43('0x13'));var logger=require(_0xbb43('0x14'))(_0xbb43('0x15'));var utils=require(_0xbb43('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xbb43('0x17'));var db=require(_0xbb43('0x18'))['db'];function respondWithStatusCode(_0x50e2c0,_0x578392){_0x578392=_0x578392||0xcc;return function(_0x41e7e5){if(_0x41e7e5){return _0x50e2c0['sendStatus'](_0x578392);}return _0x50e2c0['status'](_0x578392)[_0xbb43('0x19')]();};}function respondWithResult(_0x5a509f,_0x68d45d){_0x68d45d=_0x68d45d||0xc8;return function(_0x43021d){if(_0x43021d){return _0x5a509f['status'](_0x68d45d)['json'](_0x43021d);}};}function respondWithFilteredResult(_0x4d5bcf,_0x338120){return function(_0x2abce0){if(_0x2abce0){var _0x57bd1d=typeof _0x338120['offset']===_0xbb43('0x1a')&&typeof _0x338120['limit']==='undefined';var _0x2b0797=_0x2abce0[_0xbb43('0x1b')];var _0x2e3b43=_0x57bd1d?0x0:_0x338120['offset'];var _0x1c16d7=_0x57bd1d?_0x2abce0['count']:_0x338120[_0xbb43('0x1c')]+_0x338120[_0xbb43('0x1d')];var _0x4dfc54;if(_0x1c16d7>=_0x2b0797){_0x1c16d7=_0x2b0797;_0x4dfc54=0xc8;}else{_0x4dfc54=0xce;}_0x4d5bcf['status'](_0x4dfc54);return _0x4d5bcf[_0xbb43('0x1e')](_0xbb43('0x1f'),_0x2e3b43+'-'+_0x1c16d7+'/'+_0x2b0797)[_0xbb43('0x20')](_0x2abce0);}return null;};}function patchUpdates(_0x2bf2d4){return function(_0x5bcce7){try{jsonpatch[_0xbb43('0x21')](_0x5bcce7,_0x2bf2d4,!![]);}catch(_0x5f4416){return BPromise[_0xbb43('0x22')](_0x5f4416);}return _0x5bcce7['save']();};}function saveUpdates(_0x2f5e31,_0x565256){return function(_0x3f323e){if(_0x3f323e){return _0x3f323e[_0xbb43('0x23')](_0x2f5e31)['then'](function(_0x1d0768){return _0x1d0768;});}return null;};}function removeEntity(_0x4dfb7f,_0xf24e60){return function(_0x298ce2){if(_0x298ce2){return _0x298ce2[_0xbb43('0x24')]()['then'](function(){_0x4dfb7f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x269ca5,_0x32d7f0){return function(_0x5d8310){if(!_0x5d8310){_0x269ca5[_0xbb43('0x25')](0x194);}return _0x5d8310;};}function handleError(_0x2da653,_0x226827){_0x226827=_0x226827||0x1f4;return function(_0x3874fb){logger['error'](_0x3874fb['stack']);if(_0x3874fb[_0xbb43('0x26')]){delete _0x3874fb[_0xbb43('0x26')];}_0x2da653[_0xbb43('0x27')](_0x226827)[_0xbb43('0x28')](_0x3874fb);};}exports[_0xbb43('0x29')]=function(_0x40b04b,_0x21d386){var _0x473828={'raw':!![],'where':{'id':_0x40b04b[_0xbb43('0x2a')]['id']}},_0x539730={};_0x539730['model']=_[_0xbb43('0x2b')](db[_0xbb43('0x2c')][_0xbb43('0x2d')]);_0x539730[_0xbb43('0x2e')]=_['keys'](_0x40b04b[_0xbb43('0x2e')]);_0x539730['filters']=_['intersection'](_0x539730['model'],_0x539730[_0xbb43('0x2e')]);_0x473828['attributes']=_[_0xbb43('0x2f')](_0x539730[_0xbb43('0x30')],qs[_0xbb43('0x31')](_0x40b04b['query'][_0xbb43('0x31')]));_0x473828[_0xbb43('0x32')]=_0x473828[_0xbb43('0x32')][_0xbb43('0x33')]?_0x473828[_0xbb43('0x32')]:_0x539730[_0xbb43('0x30')];if(_0x40b04b[_0xbb43('0x2e')][_0xbb43('0x34')]){_0x473828['include']=[{'all':!![]}];}_0x473828=_[_0xbb43('0x35')]({},_0x473828,_0x40b04b[_0xbb43('0x36')]);return db[_0xbb43('0x2c')][_0xbb43('0x37')](_0x473828)[_0xbb43('0x38')](handleEntityNotFound(_0x21d386,null))[_0xbb43('0x38')](respondWithResult(_0x21d386,null))[_0xbb43('0x39')](handleError(_0x21d386,null));};exports[_0xbb43('0x23')]=function(_0x349a83,_0x57105c){if(_0x349a83[_0xbb43('0x3a')]['id']){delete _0x349a83[_0xbb43('0x3a')]['id'];}return db[_0xbb43('0x2c')][_0xbb43('0x37')]({'where':{'id':_0x349a83[_0xbb43('0x2a')]['id']}})[_0xbb43('0x38')](handleEntityNotFound(_0x57105c,null))['then'](saveUpdates(_0x349a83[_0xbb43('0x3a')],null))[_0xbb43('0x38')](respondWithResult(_0x57105c,null))['catch'](handleError(_0x57105c,null));};exports[_0xbb43('0x24')]=function(_0x2c9a7c,_0x11d384){return db['MailApplication']['find']({'where':{'id':_0x2c9a7c['params']['id']}})[_0xbb43('0x38')](handleEntityNotFound(_0x11d384,null))[_0xbb43('0x38')](removeEntity(_0x11d384,null))['catch'](handleError(_0x11d384,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe372=['rimraf','../../config/environment','./mailApplication.attributes','exports','define','MailApplication','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','path'];(function(_0x3758d6,_0x94c5e){var _0x12bb24=function(_0xcd9a49){while(--_0xcd9a49){_0x3758d6['push'](_0x3758d6['shift']());}};_0x12bb24(++_0x94c5e);}(_0xe372,0x182));var _0x2e37=function(_0x4e681d,_0x22fa7e){_0x4e681d=_0x4e681d-0x0;var _0x56c535=_0xe372[_0x4e681d];return _0x56c535;};'use strict';var _=require(_0x2e37('0x0'));var util=require(_0x2e37('0x1'));var logger=require(_0x2e37('0x2'))(_0x2e37('0x3'));var moment=require(_0x2e37('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x2e37('0x5'));var rimraf=require(_0x2e37('0x6'));var config=require(_0x2e37('0x7'));var attributes=require(_0x2e37('0x8'));module[_0x2e37('0x9')]=function(_0x9e94ee,_0x644cb4){return _0x9e94ee[_0x2e37('0xa')](_0x2e37('0xb'),attributes,{'tableName':'mail_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x2e37('0xc'),'collate':_0x2e37('0xd')});};
\ No newline at end of file
+var _0xad8d=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailApplication.attributes','exports','define','MailApplication','mail_applications','utf8mb4_unicode_ci','lodash'];(function(_0x5e4974,_0x272287){var _0x56720c=function(_0x2c51f9){while(--_0x2c51f9){_0x5e4974['push'](_0x5e4974['shift']());}};_0x56720c(++_0x272287);}(_0xad8d,0x1ef));var _0xdad8=function(_0x29228b,_0x4801be){_0x29228b=_0x29228b-0x0;var _0x2acdce=_0xad8d[_0x29228b];return _0x2acdce;};'use strict';var _=require(_0xdad8('0x0'));var util=require(_0xdad8('0x1'));var logger=require(_0xdad8('0x2'))(_0xdad8('0x3'));var moment=require(_0xdad8('0x4'));var BPromise=require(_0xdad8('0x5'));var rp=require(_0xdad8('0x6'));var fs=require('fs');var path=require(_0xdad8('0x7'));var rimraf=require(_0xdad8('0x8'));var config=require(_0xdad8('0x9'));var attributes=require(_0xdad8('0xa'));module[_0xdad8('0xb')]=function(_0x11fb39,_0x502728){return _0x11fb39[_0xdad8('0xc')](_0xdad8('0xd'),attributes,{'tableName':_0xdad8('0xe'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xdad8('0xf')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe17e=['request\x20sent','MailApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','UpdateMailApplication','MailApplication','body','options','raw','where','debug','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','MailApplication,\x20%s,\x20%s'];(function(_0x485f35,_0x45a0fc){var _0x2ad118=function(_0x296650){while(--_0x296650){_0x485f35['push'](_0x485f35['shift']());}};_0x2ad118(++_0x45a0fc);}(_0xe17e,0xc9));var _0xee17=function(_0x484fed,_0x4c243f){_0x484fed=_0x484fed-0x0;var _0x5954eb=_0xe17e[_0x484fed];return _0x5954eb;};'use strict';var _=require(_0xee17('0x0'));var util=require(_0xee17('0x1'));var moment=require(_0xee17('0x2'));var BPromise=require('bluebird');var rs=require(_0xee17('0x3'));var fs=require('fs');var Redis=require(_0xee17('0x4'));var db=require(_0xee17('0x5'))['db'];var utils=require(_0xee17('0x6'));var logger=require(_0xee17('0x7'))('rpc');var config=require(_0xee17('0x8'));var jayson=require(_0xee17('0x9'));var client=jayson[_0xee17('0xa')][_0xee17('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3307ac,_0x55abf3,_0x5f4ccc){return new BPromise(function(_0x47c05e,_0x1aaefd){return client[_0xee17('0xc')](_0x3307ac,_0x5f4ccc)[_0xee17('0xd')](function(_0x18dc21){logger[_0xee17('0xe')](_0xee17('0xf'),_0x55abf3,_0xee17('0x10'));logger['debug'](_0xee17('0x11'),_0x55abf3,'request\x20sent',JSON[_0xee17('0x12')](_0x18dc21));if(_0x18dc21[_0xee17('0x13')]){if(_0x18dc21[_0xee17('0x13')][_0xee17('0x14')]===0x1f4){logger[_0xee17('0x13')]('MailApplication,\x20%s,\x20%s',_0x55abf3,_0x18dc21['error'][_0xee17('0x15')]);return _0x1aaefd(_0x18dc21[_0xee17('0x13')]['message']);}logger[_0xee17('0x13')]('MailApplication,\x20%s,\x20%s',_0x55abf3,_0x18dc21[_0xee17('0x13')][_0xee17('0x15')]);return _0x47c05e(_0x18dc21[_0xee17('0x13')][_0xee17('0x15')]);}else{logger[_0xee17('0xe')](_0xee17('0xf'),_0x55abf3,_0xee17('0x10'));_0x47c05e(_0x18dc21[_0xee17('0x16')][_0xee17('0x15')]);}})['catch'](function(_0xfb48fa){logger['error'](_0xee17('0xf'),_0x55abf3,_0xfb48fa);_0x1aaefd(_0xfb48fa);});});}exports[_0xee17('0x17')]=function(_0x2b78ea){var _0x1bf1c3=this;return new Promise(function(_0x51f623,_0x94caa9){return db[_0xee17('0x18')]['update'](_0x2b78ea[_0xee17('0x19')],{'raw':_0x2b78ea[_0xee17('0x1a')]?_0x2b78ea[_0xee17('0x1a')][_0xee17('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2b78ea['options']?_0x2b78ea[_0xee17('0x1a')][_0xee17('0x1c')]||null:null,'attributes':_0x2b78ea[_0xee17('0x1a')]?_0x2b78ea[_0xee17('0x1a')]['attributes']||null:null,'limit':_0x2b78ea[_0xee17('0x1a')]?_0x2b78ea['options']['limit']||null:null})['then'](function(_0x39f5cb){logger[_0xee17('0xe')](_0xee17('0x17'),_0x2b78ea);logger[_0xee17('0x1d')](_0xee17('0x17'),_0x2b78ea,JSON[_0xee17('0x12')](_0x39f5cb));_0x51f623(_0x39f5cb);})[_0xee17('0x1e')](function(_0x155745){logger['error']('UpdateMailApplication',_0x155745['message'],_0x2b78ea);_0x94caa9(_0x1bf1c3[_0xee17('0x13')](0x1f4,_0x155745['message']));});});};
\ No newline at end of file
+var _0x7e17=['ioredis','../../config/utils','../../config/logger','rpc','http','request','info','MailApplication,\x20%s,\x20%s','request\x20sent','debug','MailApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','MailApplication','update','body','options','raw','attributes','limit','then','UpdateMailApplication','catch','util','moment','bluebird','randomstring'];(function(_0x128b64,_0x2b53fa){var _0x488564=function(_0x21b54e){while(--_0x21b54e){_0x128b64['push'](_0x128b64['shift']());}};_0x488564(++_0x2b53fa);}(_0x7e17,0xaa));var _0x77e1=function(_0x3f4098,_0x3365b2){_0x3f4098=_0x3f4098-0x0;var _0x3d5d0c=_0x7e17[_0x3f4098];return _0x3d5d0c;};'use strict';var _=require('lodash');var util=require(_0x77e1('0x0'));var moment=require(_0x77e1('0x1'));var BPromise=require(_0x77e1('0x2'));var rs=require(_0x77e1('0x3'));var fs=require('fs');var Redis=require(_0x77e1('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x77e1('0x5'));var logger=require(_0x77e1('0x6'))(_0x77e1('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x77e1('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5d79d1,_0x1e2fa2,_0x49505b){return new BPromise(function(_0x2dbb21,_0x2f6f3b){return client[_0x77e1('0x9')](_0x5d79d1,_0x49505b)['then'](function(_0x201c49){logger[_0x77e1('0xa')](_0x77e1('0xb'),_0x1e2fa2,_0x77e1('0xc'));logger[_0x77e1('0xd')](_0x77e1('0xe'),_0x1e2fa2,'request\x20sent',JSON[_0x77e1('0xf')](_0x201c49));if(_0x201c49[_0x77e1('0x10')]){if(_0x201c49[_0x77e1('0x10')][_0x77e1('0x11')]===0x1f4){logger[_0x77e1('0x10')](_0x77e1('0xb'),_0x1e2fa2,_0x201c49[_0x77e1('0x10')][_0x77e1('0x12')]);return _0x2f6f3b(_0x201c49['error'][_0x77e1('0x12')]);}logger['error']('MailApplication,\x20%s,\x20%s',_0x1e2fa2,_0x201c49[_0x77e1('0x10')][_0x77e1('0x12')]);return _0x2dbb21(_0x201c49[_0x77e1('0x10')][_0x77e1('0x12')]);}else{logger[_0x77e1('0xa')](_0x77e1('0xb'),_0x1e2fa2,_0x77e1('0xc'));_0x2dbb21(_0x201c49['result'][_0x77e1('0x12')]);}})['catch'](function(_0x4bbefe){logger[_0x77e1('0x10')]('MailApplication,\x20%s,\x20%s',_0x1e2fa2,_0x4bbefe);_0x2f6f3b(_0x4bbefe);});});}exports['UpdateMailApplication']=function(_0x3f5734){var _0x2c5f73=this;return new Promise(function(_0x392d32,_0x443d3d){return db[_0x77e1('0x13')][_0x77e1('0x14')](_0x3f5734[_0x77e1('0x15')],{'raw':_0x3f5734[_0x77e1('0x16')]?_0x3f5734[_0x77e1('0x16')][_0x77e1('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3f5734[_0x77e1('0x16')]?_0x3f5734['options']['where']||null:null,'attributes':_0x3f5734[_0x77e1('0x16')]?_0x3f5734[_0x77e1('0x16')][_0x77e1('0x18')]||null:null,'limit':_0x3f5734[_0x77e1('0x16')]?_0x3f5734[_0x77e1('0x16')][_0x77e1('0x19')]||null:null})[_0x77e1('0x1a')](function(_0x2d59da){logger[_0x77e1('0xa')](_0x77e1('0x1b'),_0x3f5734);logger[_0x77e1('0xd')](_0x77e1('0x1b'),_0x3f5734,JSON[_0x77e1('0xf')](_0x2d59da));_0x392d32(_0x2d59da);})[_0x77e1('0x1c')](function(_0x5be236){logger[_0x77e1('0x10')]('UpdateMailApplication',_0x5be236['message'],_0x3f5734);_0x443d3d(_0x2c5f73['error'](0x1f4,_0x5be236[_0x77e1('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa921=['mail','mailinteraction:addtags','addTags','put','mailinteraction:update','update','delete','destroy','exports','express','Router','../../components/auth/service','../../components/interaction/service','./mailInteraction.controller','get','index','/describe','describe','/:id','isAuthenticated','/:id/messages','/:id/download','download','post','create','/:id/tags','tracked'];(function(_0x18ebf7,_0x571503){var _0x9cd215=function(_0x1b26d1){while(--_0x1b26d1){_0x18ebf7['push'](_0x18ebf7['shift']());}};_0x9cd215(++_0x571503);}(_0xa921,0x14d));var _0x1a92=function(_0x3bafa5,_0x24ac72){_0x3bafa5=_0x3bafa5-0x0;var _0x86357d=_0xa921[_0x3bafa5];return _0x86357d;};'use strict';var express=require(_0x1a92('0x0'));var router=express[_0x1a92('0x1')]();var auth=require(_0x1a92('0x2'));var interaction=require(_0x1a92('0x3'));var controller=require(_0x1a92('0x4'));router[_0x1a92('0x5')]('/',auth['isAuthenticated'](),controller[_0x1a92('0x6')]);router[_0x1a92('0x5')](_0x1a92('0x7'),auth['isAuthenticated'](),controller[_0x1a92('0x8')]);router[_0x1a92('0x5')](_0x1a92('0x9'),auth[_0x1a92('0xa')](),controller['show']);router[_0x1a92('0x5')](_0x1a92('0xb'),auth[_0x1a92('0xa')](),controller['getMessages']);router[_0x1a92('0x5')](_0x1a92('0xc'),auth[_0x1a92('0xa')](),controller[_0x1a92('0xd')]);router[_0x1a92('0xe')]('/',auth[_0x1a92('0xa')](),controller[_0x1a92('0xf')]);router[_0x1a92('0xe')](_0x1a92('0xb'),auth[_0x1a92('0xa')](),controller['addMessage']);router['post'](_0x1a92('0x10'),auth[_0x1a92('0xa')](),interaction[_0x1a92('0x11')](_0x1a92('0x12'),_0x1a92('0x13')),controller[_0x1a92('0x14')]);router[_0x1a92('0x15')](_0x1a92('0x9'),auth[_0x1a92('0xa')](),interaction['tracked'](_0x1a92('0x12'),_0x1a92('0x16')),controller[_0x1a92('0x17')]);router[_0x1a92('0x18')](_0x1a92('0x9'),auth[_0x1a92('0xa')](),interaction[_0x1a92('0x11')](_0x1a92('0x12'),'mailinteraction:destroy'),controller[_0x1a92('0x19')]);router['delete']('/:id/tags',auth[_0x1a92('0xa')](),controller['removeTags']);module[_0x1a92('0x1a')]=router;
\ No newline at end of file
+var _0x2cc8=['/:id','show','/:id/messages','getMessages','/:id/download','download','post','addMessage','/:id/tags','tracked','mail','mailinteraction:addtags','addTags','put','mailinteraction:update','update','delete','mailinteraction:destroy','destroy','removeTags','exports','express','Router','../../components/auth/service','./mailInteraction.controller','get','index','/describe','isAuthenticated','describe'];(function(_0x5375e6,_0x35ae3c){var _0x3b80a0=function(_0x1f4685){while(--_0x1f4685){_0x5375e6['push'](_0x5375e6['shift']());}};_0x3b80a0(++_0x35ae3c);}(_0x2cc8,0x1d7));var _0x82cc=function(_0x45b034,_0x3a57dd){_0x45b034=_0x45b034-0x0;var _0x509cb0=_0x2cc8[_0x45b034];return _0x509cb0;};'use strict';var express=require(_0x82cc('0x0'));var router=express[_0x82cc('0x1')]();var auth=require(_0x82cc('0x2'));var interaction=require('../../components/interaction/service');var controller=require(_0x82cc('0x3'));router[_0x82cc('0x4')]('/',auth['isAuthenticated'](),controller[_0x82cc('0x5')]);router['get'](_0x82cc('0x6'),auth[_0x82cc('0x7')](),controller[_0x82cc('0x8')]);router[_0x82cc('0x4')](_0x82cc('0x9'),auth['isAuthenticated'](),controller[_0x82cc('0xa')]);router[_0x82cc('0x4')](_0x82cc('0xb'),auth[_0x82cc('0x7')](),controller[_0x82cc('0xc')]);router[_0x82cc('0x4')](_0x82cc('0xd'),auth[_0x82cc('0x7')](),controller[_0x82cc('0xe')]);router[_0x82cc('0xf')]('/',auth[_0x82cc('0x7')](),controller['create']);router['post']('/:id/messages',auth[_0x82cc('0x7')](),controller[_0x82cc('0x10')]);router[_0x82cc('0xf')](_0x82cc('0x11'),auth['isAuthenticated'](),interaction[_0x82cc('0x12')](_0x82cc('0x13'),_0x82cc('0x14')),controller[_0x82cc('0x15')]);router[_0x82cc('0x16')](_0x82cc('0x9'),auth[_0x82cc('0x7')](),interaction[_0x82cc('0x12')]('mail',_0x82cc('0x17')),controller[_0x82cc('0x18')]);router[_0x82cc('0x19')](_0x82cc('0x9'),auth[_0x82cc('0x7')](),interaction[_0x82cc('0x12')](_0x82cc('0x13'),_0x82cc('0x1a')),controller[_0x82cc('0x1b')]);router[_0x82cc('0x19')](_0x82cc('0x11'),auth[_0x82cc('0x7')](),controller[_0x82cc('0x1c')]);module[_0x82cc('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3865=['long','BOOLEAN','ENUM','out','sequelize','exports','DATE','STRING','TEXT'];(function(_0xb3d93f,_0x170e7b){var _0x4719f4=function(_0x3aa918){while(--_0x3aa918){_0xb3d93f['push'](_0xb3d93f['shift']());}};_0x4719f4(++_0x170e7b);}(_0x3865,0x151));var _0x5386=function(_0x521b4e,_0x3bd46b){_0x521b4e=_0x521b4e-0x0;var _0x5598be=_0x3865[_0x521b4e];return _0x5598be;};'use strict';var Sequelize=require(_0x5386('0x0'));var iconv=require('iconv');module[_0x5386('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x5386('0x2')]},'disposition':{'type':Sequelize[_0x5386('0x3')]},'secondDisposition':{'type':Sequelize[_0x5386('0x3')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x5386('0x3')]},'inReplyTo':{'type':Sequelize[_0x5386('0x3')](0x1fe)},'to':{'type':Sequelize[_0x5386('0x3')]},'cc':{'type':Sequelize[_0x5386('0x4')](_0x5386('0x5'))},'subject':{'type':Sequelize['TEXT']()},'attach':{'type':Sequelize[_0x5386('0x6')],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0x5386('0x2')]},'substatus':{'type':Sequelize[_0x5386('0x3')](0x3c)},'substatusAt':{'type':Sequelize[_0x5386('0x2')]},'firstMsgDirection':{'type':Sequelize[_0x5386('0x7')]('in',_0x5386('0x8')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x5386('0x2')]},'lastMsgDirection':{'type':Sequelize[_0x5386('0x7')]('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x5386('0x6')],'defaultValue':![]}};
\ No newline at end of file
+var _0x44f1=['out','sequelize','iconv','exports','BOOLEAN','DATE','STRING','long','TEXT','ENUM'];(function(_0x468b0f,_0x408566){var _0x3e74d9=function(_0x27a545){while(--_0x27a545){_0x468b0f['push'](_0x468b0f['shift']());}};_0x3e74d9(++_0x408566);}(_0x44f1,0x169));var _0x144f=function(_0x13ea00,_0x12f610){_0x13ea00=_0x13ea00-0x0;var _0x1f7347=_0x44f1[_0x13ea00];return _0x1f7347;};'use strict';var Sequelize=require(_0x144f('0x0'));var iconv=require(_0x144f('0x1'));module[_0x144f('0x2')]={'closed':{'type':Sequelize[_0x144f('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x144f('0x4')]},'disposition':{'type':Sequelize[_0x144f('0x5')]},'secondDisposition':{'type':Sequelize[_0x144f('0x5')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'inReplyTo':{'type':Sequelize[_0x144f('0x5')](0x1fe)},'to':{'type':Sequelize[_0x144f('0x5')]},'cc':{'type':Sequelize['TEXT'](_0x144f('0x6'))},'subject':{'type':Sequelize[_0x144f('0x7')]()},'attach':{'type':Sequelize[_0x144f('0x3')],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0x144f('0x4')]},'substatus':{'type':Sequelize[_0x144f('0x5')](0x3c)},'substatusAt':{'type':Sequelize[_0x144f('0x4')]},'firstMsgDirection':{'type':Sequelize[_0x144f('0x8')]('in',_0x144f('0x9')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x144f('0x8')]('in',_0x144f('0x9')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f28=['concat','createdAt','$gte','$lte','\x20IS\x20NULL','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','i.id\x20LIKE\x20?','isEmail','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SELECT','clone','DESC','t.id\x20IN\x20?','resolve','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.disposition','i.secondDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','rows','show','params','includeAll','include','merge','options','create','body','describe','addMessage','ids','omit','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','true','spread','emit','removeTags','download','unix','join','server','files','tmp','root','attachments','transcript-%d-%s.zip','Attachment','Attachments','Messages','bcc','subject','get','each','decode','headers','Bcc','basename','existsSync','readFileSync','build','writeFileSync','message%d.eml','eml-format','rimraf','zip-dir','bluebird','util','path','lodash','squel','juice','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','html-entities','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','json','offset','undefined','count','limit','Content-Range','update','destroy','end','error','stack','send','Users','map','fullname','TagIds','split','forEach','Tags','push','MailMessage','findOne','out','plainBody','then','trimStart','catch','MailInteraction','rawAttributes','type','key','model','name','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions','length','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','text','some','compact','isEmpty','i.MailAccountId\x20IN\x20?'];(function(_0x52f542,_0x212f67){var _0x1871fb=function(_0x2cd202){while(--_0x2cd202){_0x52f542['push'](_0x52f542['shift']());}};_0x1871fb(++_0x212f67);}(_0x5f28,0x78));var _0x85f2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5f28[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x85f2('0x0'));var rimraf=require(_0x85f2('0x1'));var zipdir=require(_0x85f2('0x2'));var moment=require('moment');var BPromise=require(_0x85f2('0x3'));var util=require(_0x85f2('0x4'));var path=require(_0x85f2('0x5'));var fs=require('fs');var _=require(_0x85f2('0x6'));var squel=require(_0x85f2('0x7'));var juice=require(_0x85f2('0x8'));var Redis=require(_0x85f2('0x9'));var qs=require('../../components/parsers/qs');var as=require(_0x85f2('0xa'));var logger=require(_0x85f2('0xb'))(_0x85f2('0xc'));var config=require(_0x85f2('0xd'));var db=require(_0x85f2('0xe'))['db'];var htmlEntities=require(_0x85f2('0xf'));config[_0x85f2('0x10')]=_[_0x85f2('0x11')](config[_0x85f2('0x10')],{'host':_0x85f2('0x12'),'port':0x18eb});var socket=require(_0x85f2('0x13'))(new Redis(config['redis']));require(_0x85f2('0x14'))[_0x85f2('0x15')](socket);function respondWithStatusCode(_0x4cb283,_0x441059){_0x441059=_0x441059||0xcc;return function(_0x21c864){if(_0x21c864){return _0x4cb283[_0x85f2('0x16')](_0x441059);}return _0x4cb283[_0x85f2('0x17')](_0x441059)['end']();};}function respondWithResult(_0x41a0de,_0x11d646){_0x11d646=_0x11d646||0xc8;return function(_0x25d9f2){if(_0x25d9f2){return _0x41a0de['status'](_0x11d646)[_0x85f2('0x18')](_0x25d9f2);}};}function respondWithFilteredResult(_0x4cf318,_0x522047){return function(_0xc03695){if(_0xc03695){var _0x338f32=typeof _0x522047[_0x85f2('0x19')]===_0x85f2('0x1a')&&typeof _0x522047['limit']===_0x85f2('0x1a');var _0x13d477=_0xc03695[_0x85f2('0x1b')];var _0x1b5b09=_0x338f32?0x0:_0x522047[_0x85f2('0x19')];var _0x56d2fc=_0x338f32?_0xc03695['count']:_0x522047['offset']+_0x522047[_0x85f2('0x1c')];var _0x4f0c52;if(_0x56d2fc>=_0x13d477){_0x56d2fc=_0x13d477;_0x4f0c52=0xc8;}else{_0x4f0c52=0xce;}_0x4cf318[_0x85f2('0x17')](_0x4f0c52);return _0x4cf318['set'](_0x85f2('0x1d'),_0x1b5b09+'-'+_0x56d2fc+'/'+_0x13d477)[_0x85f2('0x18')](_0xc03695);}return null;};}function saveUpdates(_0x5cc9fa){return function(_0x1e9be3){if(_0x1e9be3){return _0x1e9be3[_0x85f2('0x1e')](_0x5cc9fa)['then'](function(_0x1e7c21){return _0x1e7c21;});}return null;};}function removeEntity(_0x365410){return function(_0x3a197f){if(_0x3a197f){return _0x3a197f[_0x85f2('0x1f')]()['then'](function(){_0x365410['status'](0xcc)[_0x85f2('0x20')]();});}};}function handleEntityNotFound(_0x22d81c){return function(_0xf10efc){if(!_0xf10efc){_0x22d81c[_0x85f2('0x16')](0x194);}return _0xf10efc;};}function handleError(_0x11d1ed,_0x12fb66){_0x12fb66=_0x12fb66||0x1f4;return function(_0x3dd7d8){logger[_0x85f2('0x21')](_0x3dd7d8[_0x85f2('0x22')]);if(_0x3dd7d8['name']){delete _0x3dd7d8['name'];}_0x11d1ed[_0x85f2('0x17')](_0x12fb66)[_0x85f2('0x23')](_0x3dd7d8);};}function getInteractionUsers(_0xac1581,_0x1d8359){return new BPromise(function(_0x1ab5b3,_0x25c71a){try{if(_0x1d8359[_0xac1581['id']]){_0xac1581[_0x85f2('0x24')]=_[_0x85f2('0x25')](_0x1d8359[_0xac1581['id']],function(_0x179ff2){return{'id':_0x179ff2['id'],'fullname':_0x179ff2[_0x85f2('0x26')]};});}}catch(_0x3cba20){_0x25c71a(_0x3cba20);}_0x1ab5b3(_0xac1581);});}function getInteractionTags(_0x2db63b,_0x1675aa){return new BPromise(function(_0x3008be,_0x1b3cd4){try{if(_0x2db63b[_0x85f2('0x27')]){_0x2db63b['Tags']=[];_0x2db63b[_0x85f2('0x27')][_0x85f2('0x28')](',')[_0x85f2('0x29')](function(_0x74fac9){_0x2db63b[_0x85f2('0x2a')][_0x85f2('0x2b')](_0x1675aa[_0x74fac9]);});}delete _0x2db63b[_0x85f2('0x27')];}catch(_0x31e3f3){_0x1b3cd4(_0x31e3f3);}_0x3008be(_0x2db63b);});}function getLastMessageText(_0x385dbb){return new BPromise(function(_0x2e37a8,_0x585970){return db[_0x85f2('0x2c')][_0x85f2('0x2d')]({'where':{'$and':[{'MailInteractionId':_0x385dbb['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x85f2('0x2e')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x85f2('0x2f')],'order':'-id','raw':!![]})[_0x85f2('0x30')](function(_0x54c32d){if(_0x54c32d&&_0x54c32d[_0x85f2('0x2f')]){_0x385dbb['lastMsgText']=_[_0x85f2('0x31')](_0x54c32d[_0x85f2('0x2f')]);}_0x2e37a8(_0x385dbb);})['catch'](function(_0x1c0bdc){_0x585970(_0x1c0bdc);});});}function updateMailInteraction(_0x44a527,_0x186f62,_0x512969,_0x2220fb){return new BPromise(function(_0x367bdc,_0x3b9d9e){return getInteractionUsers(_0x44a527,_0x512969)['then'](function(_0x1fe568){return getInteractionTags(_0x1fe568,_0x186f62);})[_0x85f2('0x30')](function(_0x2824b4){if(_0x2220fb){_0x367bdc(getLastMessageText(_0x2824b4));}else{_0x367bdc(_0x2824b4);}})[_0x85f2('0x32')](function(_0x3b9387){_0x3b9d9e(_0x3b9387);});});}exports['index']=function(_0x240fdd,_0x552655){var _0x820944={},_0x535a0d={},_0x52d4ed={'count':0x0,'rows':[]};var _0x374b37=_[_0x85f2('0x25')](db[_0x85f2('0x33')][_0x85f2('0x34')],function(_0x5078d9){return{'name':_0x5078d9['fieldName'],'type':_0x5078d9[_0x85f2('0x35')][_0x85f2('0x36')]};});_0x535a0d[_0x85f2('0x37')]=_[_0x85f2('0x25')](_0x374b37,_0x85f2('0x38'));_0x535a0d[_0x85f2('0x39')]=_[_0x85f2('0x3a')](_0x240fdd[_0x85f2('0x39')]);_0x535a0d['filters']=_[_0x85f2('0x3b')](_0x535a0d[_0x85f2('0x37')],_0x535a0d[_0x85f2('0x39')]);_0x820944[_0x85f2('0x3c')]=_[_0x85f2('0x3b')](_0x535a0d[_0x85f2('0x37')],qs[_0x85f2('0x3d')](_0x240fdd[_0x85f2('0x39')][_0x85f2('0x3d')]));_0x820944[_0x85f2('0x3c')]=_0x820944[_0x85f2('0x3c')]['length']?_0x820944[_0x85f2('0x3c')]:_0x535a0d['model'];if(!_0x240fdd['query'][_0x85f2('0x3e')](_0x85f2('0x3f'))){_0x820944[_0x85f2('0x1c')]=qs[_0x85f2('0x1c')](_0x240fdd[_0x85f2('0x39')]['limit']);_0x820944[_0x85f2('0x19')]=qs[_0x85f2('0x19')](_0x240fdd[_0x85f2('0x39')][_0x85f2('0x19')]);}_0x820944[_0x85f2('0x40')]=qs['sort'](_0x240fdd[_0x85f2('0x39')][_0x85f2('0x41')]);_0x820944[_0x85f2('0x42')]=qs[_0x85f2('0x43')](_[_0x85f2('0x44')](_0x240fdd[_0x85f2('0x39')],_0x535a0d['filters']),_0x374b37);var _0x4625a4=[];var _0x570a53=squel[_0x85f2('0x45')]()['field']('id')[_0x85f2('0x46')]('name')[_0x85f2('0x46')](_0x85f2('0x47'))[_0x85f2('0x48')](_0x85f2('0x49'));var _0x2acd9a=squel['select']()[_0x85f2('0x46')](_0x85f2('0x4a'))[_0x85f2('0x46')](_0x85f2('0x4b'))['field'](_0x85f2('0x4c'))['from'](_0x85f2('0x4d'),'ui')[_0x85f2('0x4e')]('users','u','u.id\x20=\x20ui.UserId');var _0x1fea66=squel[_0x85f2('0x45')]()['from'](_0x85f2('0x4f'),'i')[_0x85f2('0x4e')](_0x85f2('0x50'),'c',_0x85f2('0x51'))[_0x85f2('0x4e')](_0x85f2('0x52'),'o','o.id\x20=\x20i.UserId')[_0x85f2('0x4e')](_0x85f2('0x53'),'a',_0x85f2('0x54'))['left_join'](_0x85f2('0x55'),'me',_0x85f2('0x56'))[_0x85f2('0x4e')]('mail_interaction_has_tags','it',_0x85f2('0x57'))[_0x85f2('0x4e')](_0x85f2('0x49'),'t',_0x85f2('0x58'));var _0x186be6=squel[_0x85f2('0x59')]();var _0x2e74d8=[];var _0x19f986=squel[_0x85f2('0x59')]();var _0x23c154;if(_0x240fdd[_0x85f2('0x39')][_0x85f2('0x5a')]){_0x23c154=as[_0x85f2('0x5b')](_0x240fdd[_0x85f2('0x39')]['search']);var _0x564343=_0x23c154['sqlOperator'];for(var _0x1b5206=0x0;_0x1b5206<_0x23c154[_0x85f2('0x5c')][_0x85f2('0x5d')];_0x1b5206++){var _0x446929=_0x23c154[_0x85f2('0x5c')][_0x1b5206];var _0x2908d9='i';var _0x58862d=_[_0x85f2('0x5e')](_0x374b37,['name',_0x446929['field']]);if(!_0x58862d){switch(_0x446929['field']){case _0x85f2('0x5f'):if(_0x446929[_0x85f2('0x60')]==0x1){_0x1fea66[_0x85f2('0x61')]('`'+_0x446929[_0x85f2('0x46')]+_0x85f2('0x62'));}else{_0x1fea66[_0x85f2('0x61')]('`'+_0x446929[_0x85f2('0x46')]+_0x85f2('0x63'));}break;case'Contact':if(_0x446929[_0x85f2('0x64')]===_0x85f2('0x65')){if(_0x446929[_0x85f2('0x60')][_0x85f2('0x28')]('\x20')['length']>0x1){_0x186be6[_0x564343]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x85f2('0x66')](_0x446929['value']),null);}else{var _0x1f0019='%'+_0x446929[_0x85f2('0x60')]+'%';_0x186be6[_0x564343](_0x85f2('0x67'),_0x1f0019,_0x1f0019,_0x1f0019);}}else{_0x58862d=_['find'](_0x374b37,[_0x85f2('0x38'),_0x85f2('0x68')]);_0x446929[_0x85f2('0x46')]=_0x85f2('0x68');_0x249b20=as[_0x85f2('0x69')](_0x2908d9,_0x58862d[_0x85f2('0x35')],_0x446929);_0x186be6[_0x564343](_0x249b20['text'],_0x249b20['value']['start'],_0x249b20[_0x85f2('0x60')][_0x85f2('0x20')]);}break;case _0x85f2('0x6a'):var _0xd078b6=_0x446929[_0x85f2('0x60')][_0x85f2('0x28')](',')['map'](function(_0x55ba02){return Number(_0x55ba02);});_0xd078b6[_0x85f2('0x29')](function(_0x2eb69c){_0x19f986['or'](_0x85f2('0x6b'),'%,'+_0x2eb69c+',%');});_0x2e74d8=_[_0x85f2('0x6c')](_0x2e74d8,_0xd078b6);break;case'User':if(_0x446929['operator']===_0x85f2('0x65')){_0x186be6[_0x564343]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x446929['value']+'%',null);}else{_0x58862d=_[_0x85f2('0x5e')](_0x374b37,[_0x85f2('0x38'),'UserId']);_0x446929[_0x85f2('0x46')]='UserId';_0x249b20=as['buildExpression'](_0x2908d9,_0x58862d[_0x85f2('0x35')],_0x446929);_0x186be6[_0x564343](_0x249b20[_0x85f2('0x6d')],_0x249b20[_0x85f2('0x60')]['start'],_0x249b20[_0x85f2('0x60')]['end']);}break;case _0x85f2('0x2f'):_0x249b20=as[_0x85f2('0x69')]('me',null,_0x446929);_0x186be6[_0x564343](_0x249b20[_0x85f2('0x6d')],_0x249b20['value']['start'],_0x249b20['value'][_0x85f2('0x20')]);break;}}else{var _0x249b20=as['buildExpression'](_0x2908d9,_0x58862d[_0x85f2('0x35')],_0x446929);_0x186be6[_0x564343](_0x249b20['text'],_0x249b20[_0x85f2('0x60')]['start'],_0x249b20[_0x85f2('0x60')][_0x85f2('0x20')]);}}}else{var _0xad567=_(_0x240fdd[_0x85f2('0x39')])['keys']()[_0x85f2('0x25')](function(_0x33b33d){return _[_0x85f2('0x6e')](_0x374b37,[_0x85f2('0x38'),_0x33b33d])?_0x33b33d:undefined;})[_0x85f2('0x6f')]()[_0x85f2('0x60')]();if(!_[_0x85f2('0x70')](_0xad567)){_0xad567[_0x85f2('0x29')](function(_0x5cefbd){if(_0x5cefbd==='MailAccountId'){_0x1fea66[_0x85f2('0x42')](_0x85f2('0x71'),[][_0x85f2('0x72')](_0x240fdd['query'][_0x5cefbd]));}else if(_0x5cefbd===_0x85f2('0x73')){var _0x504a65=JSON['parse'](_0x240fdd[_0x85f2('0x39')][_0x5cefbd])[_0x85f2('0x74')];var _0x431d36=JSON['parse'](_0x240fdd[_0x85f2('0x39')][_0x5cefbd])[_0x85f2('0x75')];_0x1fea66[_0x85f2('0x42')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x504a65,_0x431d36);}else{if(_0x240fdd[_0x85f2('0x39')][_0x5cefbd]==='null'){_0x1fea66[_0x85f2('0x42')]('i.'+_0x5cefbd+_0x85f2('0x76'));}else{_0x1fea66[_0x85f2('0x42')]('i.'+_0x5cefbd+'\x20=\x20?',_0x240fdd[_0x85f2('0x39')][_0x5cefbd]);}}});}if(_0x240fdd[_0x85f2('0x39')][_0x85f2('0x77')]){if(_0x240fdd[_0x85f2('0x39')][_0x85f2('0x77')]==0x1){_0x1fea66['having']('`unreadMessages`\x20=\x200');}else{_0x1fea66[_0x85f2('0x61')](_0x85f2('0x78'));}}if(_0x240fdd[_0x85f2('0x39')][_0x85f2('0x79')]){_0x2e74d8=_[_0x85f2('0x7a')](_0x240fdd[_0x85f2('0x39')]['tag'])?_0x240fdd[_0x85f2('0x39')][_0x85f2('0x79')]:new Array(_0x240fdd[_0x85f2('0x39')][_0x85f2('0x79')]);_0x2e74d8[_0x85f2('0x29')](function(_0x197e68){_0x19f986['or'](_0x85f2('0x6b'),'%,'+_0x197e68+',%');});}if(_0x240fdd[_0x85f2('0x39')][_0x85f2('0x7b')]){var _0x411d7e=_0x240fdd[_0x85f2('0x39')][_0x85f2('0x7b')][_0x85f2('0x7c')]('\x5c','\x5c\x5c')[_0x85f2('0x7c')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x411d7e)){_0x186be6['or'](_0x85f2('0x7d'),_0x411d7e+'%');}else if(qs[_0x85f2('0x7e')](_0x411d7e)){_0x186be6['or']('c.email\x20LIKE\x20?',_0x411d7e+'%');}else{_0x186be6['or'](_0x85f2('0x7f'),qs[_0x85f2('0x66')](_0x411d7e))['or'](_0x85f2('0x80'),qs[_0x85f2('0x66')](_0x411d7e));}}}_0x1fea66[_0x85f2('0x42')](_0x186be6);_0x1fea66[_0x85f2('0x81')](_0x85f2('0x82'));var _0x17aa4e={'type':db[_0x85f2('0x83')][_0x85f2('0x84')][_0x85f2('0x85')],'raw':!![]};var _0x57cf38=_0x1fea66[_0x85f2('0x86')]();_0x57cf38[_0x85f2('0x46')](_0x85f2('0x82'));_0x57cf38['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');if(_0x820944[_0x85f2('0x40')]){_0x820944[_0x85f2('0x40')][_0x85f2('0x29')](function(_0x542dc7){var _0x1590bc=_0x542dc7[0x0]==='contactName'?_0x542dc7[0x0]:'i.'+_0x542dc7[0x0];_0x1fea66[_0x85f2('0x40')](_0x1590bc,_0x542dc7[0x1]===_0x85f2('0x87')?![]:!![]);});}if(!_[_0x85f2('0x70')](_0x2e74d8)){_0x1fea66[_0x85f2('0x61')](_0x19f986);_0x57cf38[_0x85f2('0x42')](_0x85f2('0x88'),_0x2e74d8);}BPromise[_0x85f2('0x89')]()['then'](function(){if(!_0x23c154){if(_0x240fdd['query'][_0x85f2('0x8a')])return;_0x57cf38['where'](_0x85f2('0x8b'));_0x1fea66['where'](_0x85f2('0x8b'));return;}if(_0x240fdd[_0x85f2('0x8c')][_0x85f2('0x8d')]!==_0x85f2('0x8e'))return;return _0x240fdd[_0x85f2('0x8c')][_0x85f2('0x8f')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5f20e6){if(_[_0x85f2('0x70')](_0x5f20e6)){_0x57cf38[_0x85f2('0x42')]('i.MailAccountId\x20IS\x20NULL');_0x1fea66[_0x85f2('0x42')](_0x85f2('0x90'));}else{_0x57cf38['where']('i.MailAccountId\x20IN\x20?',_['map'](_0x5f20e6,'id'));_0x1fea66[_0x85f2('0x42')](_0x85f2('0x71'),_[_0x85f2('0x25')](_0x5f20e6,'id'));}});})[_0x85f2('0x30')](function(){if(_0x240fdd[_0x85f2('0x8c')][_0x85f2('0x8d')]===_0x85f2('0x8e')&&!_0x23c154&&!_0x240fdd['query'][_0x85f2('0x8a')])return[];return db[_0x85f2('0x91')][_0x85f2('0x39')](_0x57cf38[_0x85f2('0x92')](),_0x17aa4e);})[_0x85f2('0x30')](function(_0x39f71a){_0x52d4ed[_0x85f2('0x1b')]=_0x39f71a[_0x85f2('0x5d')];if(_0x52d4ed['count']===0x0)return[];return db[_0x85f2('0x91')]['query'](_0x570a53['toString'](),_0x17aa4e)[_0x85f2('0x30')](function(_0x369fea){_0x4625a4=_[_0x85f2('0x93')](_0x369fea,'id');_0x17aa4e=_['merge'](_0x17aa4e,{'model':db[_0x85f2('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x240fdd['query'][_0x85f2('0x3d')]){_0x820944['attributes'][_0x85f2('0x29')](function(_0xd9ef97){_0x1fea66[_0x85f2('0x46')]('i.'+_0xd9ef97);});}else{_0x1fea66[_0x85f2('0x46')](_0x85f2('0x94'),'unreadMessages');_0x1fea66[_0x85f2('0x46')](_0x85f2('0x95'),_0x85f2('0x96'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x97'),_0x85f2('0x98'));_0x1fea66[_0x85f2('0x46')]('CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0x85f2('0x99'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x82'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x9a'));_0x1fea66['field'](_0x85f2('0x9b'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x9c'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x9d'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x9e'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0x9f'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa0'));_0x1fea66[_0x85f2('0x46')]('i.subject');_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa1'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa2'));_0x1fea66[_0x85f2('0x46')]('i.thirdDisposition');_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa3'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa4'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa5'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa6'));_0x1fea66['field'](_0x85f2('0xa7'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xa8'),_0x85f2('0xa9'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xaa'),_0x85f2('0xab'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xac'),'Contact.email');_0x1fea66[_0x85f2('0x46')](_0x85f2('0xad'),_0x85f2('0xae'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xaf'),_0x85f2('0xb0'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xb1'),_0x85f2('0xb2'));_0x1fea66[_0x85f2('0x46')](_0x85f2('0xb3'),_0x85f2('0xb4'));_0x1fea66['field'](_0x85f2('0xb5'),'Owner.internal');_0x1fea66[_0x85f2('0x46')](_0x85f2('0xb6'),_0x85f2('0x27'));}if(_0x820944[_0x85f2('0x1c')])_0x1fea66[_0x85f2('0x1c')](_0x820944['limit']);if(_0x820944['offset'])_0x1fea66['offset'](_0x820944['offset']);return db['sequelize'][_0x85f2('0x39')](_0x1fea66['toString'](),_0x17aa4e);})[_0x85f2('0x30')](function(_0xb086){if(_0xb086['length']>0x0)_0x2acd9a[_0x85f2('0x42')](_0x85f2('0xb7'),_[_0x85f2('0x25')](_0xb086,'id'));return db[_0x85f2('0x91')][_0x85f2('0x39')](_0x2acd9a[_0x85f2('0x92')](),_0x17aa4e)['then'](function(_0x30c660){var _0x141ddc=_[_0x85f2('0xb8')](_0x30c660,_0x85f2('0xb9'));var _0xddd7fe=[];return db[_0x85f2('0xba')]['findOne']({'attributes':[_0x85f2('0xbb')],'raw':!![]})['then'](function(_0x407260){var _0x192713=_0x407260['enableEmailPreview'];_0xb086[_0x85f2('0x29')](function(_0x24c2b1){_0xddd7fe['push'](updateMailInteraction(_0x24c2b1,_0x4625a4,_0x141ddc,_0x192713));});return BPromise['all'](_0xddd7fe);});});});})[_0x85f2('0x30')](function(_0x58e367){_0x52d4ed[_0x85f2('0xbc')]=_0x58e367;return _0x52d4ed;})[_0x85f2('0x30')](respondWithFilteredResult(_0x552655,_0x820944))[_0x85f2('0x32')](handleError(_0x552655,null));};exports[_0x85f2('0xbd')]=function(_0x274822,_0x25830d){var _0x3c6f75={'raw':![],'where':{'id':_0x274822[_0x85f2('0xbe')]['id']}},_0x41e457={};_0x41e457[_0x85f2('0x37')]=_[_0x85f2('0x3a')](db['MailInteraction'][_0x85f2('0x34')]);_0x41e457['query']=_[_0x85f2('0x3a')](_0x274822[_0x85f2('0x39')]);_0x41e457[_0x85f2('0x43')]=_['intersection'](_0x41e457[_0x85f2('0x37')],_0x41e457[_0x85f2('0x39')]);_0x3c6f75[_0x85f2('0x3c')]=_[_0x85f2('0x3b')](_0x41e457[_0x85f2('0x37')],qs[_0x85f2('0x3d')](_0x274822[_0x85f2('0x39')][_0x85f2('0x3d')]));_0x3c6f75['attributes']=_0x3c6f75['attributes']['length']?_0x3c6f75[_0x85f2('0x3c')]:_0x41e457['model'];if(_0x274822[_0x85f2('0x39')][_0x85f2('0xbf')]){_0x3c6f75[_0x85f2('0xc0')]=[{'all':!![]}];}_0x3c6f75=_[_0x85f2('0xc1')]({},_0x3c6f75,_0x274822[_0x85f2('0xc2')]);return db[_0x85f2('0x33')][_0x85f2('0x5e')](_0x3c6f75)[_0x85f2('0x30')](handleEntityNotFound(_0x25830d,null))[_0x85f2('0x30')](respondWithResult(_0x25830d,null))['catch'](handleError(_0x25830d,null));};exports[_0x85f2('0xc3')]=function(_0x2f6a9a,_0x1e4bd1){return db[_0x85f2('0x33')][_0x85f2('0xc3')](_0x2f6a9a[_0x85f2('0xc4')],{})[_0x85f2('0x30')](respondWithResult(_0x1e4bd1,0xc9))['catch'](handleError(_0x1e4bd1,null));};exports['update']=function(_0x25325f,_0x381527){if(_0x25325f['body']['id']){delete _0x25325f[_0x85f2('0xc4')]['id'];}return db[_0x85f2('0x33')][_0x85f2('0x5e')]({'where':{'id':_0x25325f[_0x85f2('0xbe')]['id']}})[_0x85f2('0x30')](handleEntityNotFound(_0x381527,null))[_0x85f2('0x30')](saveUpdates(_0x25325f[_0x85f2('0xc4')],null))[_0x85f2('0x30')](respondWithResult(_0x381527,null))[_0x85f2('0x32')](handleError(_0x381527,null));};exports[_0x85f2('0x1f')]=function(_0x13efe9,_0x5b00c6){return db['MailInteraction']['find']({'where':{'id':_0x13efe9[_0x85f2('0xbe')]['id']}})[_0x85f2('0x30')](handleEntityNotFound(_0x5b00c6,null))[_0x85f2('0x30')](removeEntity(_0x5b00c6,null))[_0x85f2('0x32')](handleError(_0x5b00c6,null));};exports[_0x85f2('0xc5')]=function(_0x3f3838,_0x189905){return db[_0x85f2('0x33')][_0x85f2('0xc5')]()[_0x85f2('0x30')](respondWithResult(_0x189905,null))[_0x85f2('0x32')](handleError(_0x189905,null));};exports[_0x85f2('0xc6')]=function(_0x572f43,_0x5aacba){return db[_0x85f2('0x2c')][_0x85f2('0x5e')]({'where':{'id':_0x572f43[_0x85f2('0xbe')]['id']}})[_0x85f2('0x30')](handleEntityNotFound(_0x5aacba,null))[_0x85f2('0x30')](function(_0x3bf36b){if(_0x3bf36b){return _0x3bf36b['addMessage'](_0x572f43[_0x85f2('0xc4')][_0x85f2('0xc7')],_[_0x85f2('0xc8')](_0x572f43[_0x85f2('0xc4')],[_0x85f2('0xc7'),'id'])||{});}})[_0x85f2('0x30')](respondWithResult(_0x5aacba,null))[_0x85f2('0x32')](handleError(_0x5aacba,null));};exports['getMessages']=function(_0x506356,_0x37be8e){var _0xfcec16={'raw':![],'where':{}};var _0x50390b={};var _0x3e7628={'count':0x0,'rows':[]};return db['MailInteraction']['findOne']({'where':{'id':_0x506356[_0x85f2('0xbe')]['id']}})['then'](handleEntityNotFound(_0x37be8e,null))[_0x85f2('0x30')](function(_0x26fc55){if(_0x26fc55){_0x50390b[_0x85f2('0x37')]=_[_0x85f2('0x3a')](db[_0x85f2('0x2c')][_0x85f2('0x34')]);_0x50390b[_0x85f2('0x39')]=_[_0x85f2('0x3a')](_0x506356[_0x85f2('0x39')]);_0x50390b[_0x85f2('0x43')]=_['intersection'](_0x50390b[_0x85f2('0x37')],_0x50390b[_0x85f2('0x39')]);_0xfcec16[_0x85f2('0x3c')]=_[_0x85f2('0x3b')](_0x50390b[_0x85f2('0x37')],qs['fields'](_0x506356[_0x85f2('0x39')]['fields']));_0xfcec16[_0x85f2('0x3c')]=_0xfcec16[_0x85f2('0x3c')][_0x85f2('0x5d')]?_0xfcec16['attributes']:_0x50390b[_0x85f2('0x37')];if(!_0x506356[_0x85f2('0x39')][_0x85f2('0x3e')](_0x85f2('0x3f'))){_0xfcec16['limit']=qs[_0x85f2('0x1c')](_0x506356[_0x85f2('0x39')][_0x85f2('0x1c')]);_0xfcec16[_0x85f2('0x19')]=qs['offset'](_0x506356[_0x85f2('0x39')][_0x85f2('0x19')]);}_0xfcec16[_0x85f2('0x40')]=qs['sort'](_0x506356[_0x85f2('0x39')][_0x85f2('0x41')]);_0xfcec16[_0x85f2('0x42')]=qs[_0x85f2('0x43')](_[_0x85f2('0x44')](_0x506356[_0x85f2('0x39')],_0x50390b['filters']));_0xfcec16[_0x85f2('0x42')][_0x85f2('0xb9')]=_0x26fc55['id'];if(_0x506356[_0x85f2('0x39')][_0x85f2('0x7b')]){_0xfcec16['where']=_[_0x85f2('0xc1')](_0xfcec16['where'],{'$or':_['map'](_0xfcec16[_0x85f2('0x3c')],function(_0x500b3b){var _0x1ffa94={};_0x1ffa94[_0x500b3b]={'$like':'%'+_0x506356[_0x85f2('0x39')]['filter']+'%'};return _0x1ffa94;})});}if(_0x506356[_0x85f2('0x39')][_0x85f2('0x74')]){var _0x4165ca=_0x506356[_0x85f2('0x39')][_0x85f2('0x74')][_0x85f2('0x28')](',');var _0x187167={};_0x187167[_0x4165ca[0x0]]={'$gte':moment(_0x4165ca[0x1])[_0x85f2('0xc9')](_0x85f2('0xca'))};_0xfcec16[_0x85f2('0x42')]=_['merge'](_0xfcec16[_0x85f2('0x42')],_0x187167);}_0xfcec16=_['merge']({},_0xfcec16,_0x506356['options']);return db[_0x85f2('0x2c')]['count']({'where':_0xfcec16[_0x85f2('0x42')]})[_0x85f2('0x30')](function(_0x120078){_0x3e7628[_0x85f2('0x1b')]=_0x120078;if(_0x506356['query'][_0x85f2('0xbf')]){_0xfcec16[_0x85f2('0xc0')]=[{'all':!![]}];}return db[_0x85f2('0x2c')][_0x85f2('0xcb')](_0xfcec16);})[_0x85f2('0x30')](function(_0x46d485){if(_0x506356['query'][_0x85f2('0xcc')]===_0x85f2('0xcd')){for(var _0x3c4edc=0x0;_0x3c4edc<_0x46d485[_0x85f2('0x5d')];_0x3c4edc++){_0x46d485[_0x3c4edc][_0x85f2('0xc4')]=juice(_0x46d485[_0x3c4edc][_0x85f2('0xc4')]);}}_0x3e7628[_0x85f2('0xbc')]=_0x46d485;return _0x3e7628;});}})[_0x85f2('0x30')](respondWithFilteredResult(_0x37be8e,_0xfcec16))[_0x85f2('0x32')](handleError(_0x37be8e,null));};exports['addTags']=function(_0x1d490d,_0x1a5932){return db[_0x85f2('0x33')]['find']({'where':{'id':_0x1d490d[_0x85f2('0xbe')]['id']}})[_0x85f2('0x30')](handleEntityNotFound(_0x1a5932,null))[_0x85f2('0x30')](function(_0x3f1a97){if(_0x3f1a97){return _0x3f1a97['setTags'](_0x1d490d[_0x85f2('0xc4')][_0x85f2('0xc7')],_[_0x85f2('0xc8')](_0x1d490d[_0x85f2('0xc4')],[_0x85f2('0xc7'),'id'])||{})[_0x85f2('0xce')](function(){return db[_0x85f2('0x6a')][_0x85f2('0xcb')]({'attributes':['id',_0x85f2('0x38'),_0x85f2('0x47')],'where':{'id':_0x1d490d[_0x85f2('0xc4')][_0x85f2('0xc7')]}});})[_0x85f2('0x30')](function(_0x4fdc8e){socket[_0x85f2('0xcf')]('mailInteractionTags:save',{'id':Number(_0x1d490d[_0x85f2('0xbe')]['id']),'tags':_0x4fdc8e||[]});return{'id':Number(_0x1d490d[_0x85f2('0xbe')]['id']),'tags':_0x4fdc8e||[]};});}})[_0x85f2('0x30')](respondWithResult(_0x1a5932,null))[_0x85f2('0x32')](handleError(_0x1a5932,null));};exports[_0x85f2('0xd0')]=function(_0x2f6aa1,_0x128ac4){return db[_0x85f2('0x33')]['find']({'where':{'id':_0x2f6aa1[_0x85f2('0xbe')]['id']}})[_0x85f2('0x30')](handleEntityNotFound(_0x128ac4,null))[_0x85f2('0x30')](function(_0x54e9b8){if(_0x54e9b8){return _0x54e9b8[_0x85f2('0xd0')](_0x2f6aa1[_0x85f2('0x39')][_0x85f2('0xc7')]);}})['then'](respondWithStatusCode(_0x128ac4,null))[_0x85f2('0x32')](handleError(_0x128ac4,null));};exports[_0x85f2('0xd1')]=function(_0x5d1099,_0x315a1a){var _0x1ddde0=moment()[_0x85f2('0xd2')]()[_0x85f2('0x92')]();var _0x51b8a4=path[_0x85f2('0xd3')](config['root'],_0x85f2('0xd4'),_0x85f2('0xd5'),_0x85f2('0xd6'));var _0x5f5831=path[_0x85f2('0xd3')](config[_0x85f2('0xd7')],'server',_0x85f2('0xd5'),_0x85f2('0xd8'));var _0x3af8ab=path[_0x85f2('0xd3')](_0x51b8a4,_0x1ddde0);var _0xba6ce1=util['format'](_0x85f2('0xd9'),_0x5d1099[_0x85f2('0xbe')]['id'],_0x1ddde0);var _0x4bd849=path[_0x85f2('0xd3')](_0x51b8a4,_0xba6ce1);var _0x105bf9=[];if(_0x5d1099['query'][_0x85f2('0xd8')]){_0x105bf9['push']({'model':db[_0x85f2('0xda')],'as':_0x85f2('0xdb'),'raw':!![]});}var _0x470d68=[{'model':db[_0x85f2('0x2c')],'as':_0x85f2('0xdc'),'attributes':['id',_0x85f2('0xc4'),_0x85f2('0x48'),'to','cc',_0x85f2('0xdd'),_0x85f2('0xde'),_0x85f2('0x73')],'where':{'secret':![]},'order':qs[_0x85f2('0x41')]('id'),'include':_0x105bf9}];return db[_0x85f2('0x33')][_0x85f2('0x5e')]({'where':{'id':_0x5d1099[_0x85f2('0xbe')]['id']},'include':_0x470d68})[_0x85f2('0x30')](handleEntityNotFound(_0x315a1a,null))[_0x85f2('0x30')](function(_0x28ccc4){if(_0x28ccc4&&_0x28ccc4[_0x85f2('0xdc')]){var _0x5583a4=_0x28ccc4[_0x85f2('0xdf')]({'plain':!![]});fs['mkdirSync'](_0x3af8ab);return BPromise[_0x85f2('0xe0')](_0x5583a4[_0x85f2('0xdc')],function(_0x4fec8f,_0x343c17){var _0x1e0a8d={'from':_0x4fec8f['from'],'to':_0x4fec8f['to'],'subject':_0x4fec8f['subject'],'html':htmlEntities[_0x85f2('0xe1')](_0x4fec8f[_0x85f2('0xc4')]),'headers':{'Date':moment(_0x4fec8f['createdAt'])[_0x85f2('0xc9')]('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x4fec8f['cc']){_0x1e0a8d['headers']['Cc']=_0x4fec8f['cc'];}if(_0x4fec8f['bcc']){_0x1e0a8d[_0x85f2('0xe2')][_0x85f2('0xe3')]=_0x4fec8f['bcc'];}return new BPromise(function(_0x5a19d5,_0x3ea729){if(_0x4fec8f[_0x85f2('0xdb')]){for(var _0x5e8c10=0x0;_0x5e8c10<_0x4fec8f[_0x85f2('0xdb')][_0x85f2('0x5d')];_0x5e8c10++){var _0x357a18=_0x4fec8f['Attachments'][_0x5e8c10];var _0x198e21=path[_0x85f2('0xd3')](_0x5f5831,_0x357a18[_0x85f2('0xe4')]);if(fs[_0x85f2('0xe5')](_0x198e21)){_0x1e0a8d[_0x85f2('0xd8')]['push']({'name':_0x357a18[_0x85f2('0x38')],'contentType':_0x357a18[_0x85f2('0x35')],'data':fs[_0x85f2('0xe6')](_0x198e21)});}}}emlformat[_0x85f2('0xe7')](_0x1e0a8d,function(_0x4d89ca,_0x254888){if(_0x4d89ca)return _0x3ea729(_0x4d89ca);fs[_0x85f2('0xe8')](path[_0x85f2('0xd3')](_0x3af8ab,util['format'](_0x85f2('0xe9'),_0x343c17)),_0x254888);return _0x5a19d5(_0x254888);});});})[_0x85f2('0x30')](function(){return new BPromise(function(_0x19858d,_0x4aa53c){zipdir(_0x3af8ab,{'saveTo':_0x4bd849},function(_0x511c58,_0x162df2){if(_0x511c58)return _0x4aa53c(_0x511c58);return _0x19858d(_0x162df2);});})[_0x85f2('0x30')](function(){return new BPromise(function(_0x571338,_0x2f5bc4){rimraf(_0x3af8ab,function(_0x34ea54){if(_0x34ea54)_0x2f5bc4(_0x34ea54);return _0x571338();});});})['then'](function(){return _0x315a1a[_0x85f2('0xd1')](_0x4bd849,_0xba6ce1,function(_0x276ae1){if(!_0x276ae1)fs['unlinkSync'](_0x4bd849);});});});}else{return _0x315a1a[_0x85f2('0x16')](0xc8);}})['catch'](handleError(_0x315a1a,null));};
\ No newline at end of file
+var _0xb10b=['Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','findOne','enableEmailPreview','show','params','rawAttributes','includeAll','include','merge','options','create','body','describe','addMessage','ids','omit','getMessages','nolimit','pick','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','rows','spread','emit','mailInteractionTags:save','removeTags','download','unix','join','server','tmp','root','files','attachments','transcript-%d-%s.zip','Attachment','Attachments','Messages','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','basename','existsSync','build','message%d.eml','unlinkSync','eml-format','zip-dir','moment','bluebird','path','lodash','squel','juice','ioredis','../../components/parsers/qs','../../config/logger','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','error','stack','name','send','fullname','TagIds','Tags','split','forEach','push','MailMessage','out','-id','trimStart','plainBody','catch','index','map','MailInteraction','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','order','sort','where','field','color','tools_tags','u.id','ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','select','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','expr','search','parseSearch','conditions','length','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','isEmail','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','role','getMailAccounts','i.MailAccountId\x20IS\x20NULL','agent','toString','sequelize','keyBy','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.createdAt','i.updatedAt','i.closed','i.attach','i.lastMsgAt','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.ContactId','i.MailAccountId','Contact.firstName','c.email'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xb10b,0x12a));var _0xbb10=function(_0x278679,_0x1eb219){_0x278679=_0x278679-0x0;var _0x4874aa=_0xb10b[_0x278679];return _0x4874aa;};'use strict';var emlformat=require(_0xbb10('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbb10('0x1'));var moment=require(_0xbb10('0x2'));var BPromise=require(_0xbb10('0x3'));var util=require('util');var path=require(_0xbb10('0x4'));var fs=require('fs');var _=require(_0xbb10('0x5'));var squel=require(_0xbb10('0x6'));var juice=require(_0xbb10('0x7'));var Redis=require(_0xbb10('0x8'));var qs=require(_0xbb10('0x9'));var as=require('../../components/parsers/advancedSearch');var logger=require(_0xbb10('0xa'))(_0xbb10('0xb'));var config=require('../../config/environment');var db=require(_0xbb10('0xc'))['db'];config[_0xbb10('0xd')]=_[_0xbb10('0xe')](config[_0xbb10('0xd')],{'host':_0xbb10('0xf'),'port':0x18eb});var socket=require(_0xbb10('0x10'))(new Redis(config[_0xbb10('0xd')]));require(_0xbb10('0x11'))['register'](socket);function respondWithStatusCode(_0x4e47f8,_0x20bd61){_0x20bd61=_0x20bd61||0xcc;return function(_0x118a74){if(_0x118a74){return _0x4e47f8[_0xbb10('0x12')](_0x20bd61);}return _0x4e47f8['status'](_0x20bd61)[_0xbb10('0x13')]();};}function respondWithResult(_0x5be7e0,_0x44fb19){_0x44fb19=_0x44fb19||0xc8;return function(_0x916a32){if(_0x916a32){return _0x5be7e0[_0xbb10('0x14')](_0x44fb19)[_0xbb10('0x15')](_0x916a32);}};}function respondWithFilteredResult(_0x442548,_0x147230){return function(_0x58a612){if(_0x58a612){var _0x26e021=typeof _0x147230[_0xbb10('0x16')]===_0xbb10('0x17')&&typeof _0x147230[_0xbb10('0x18')]===_0xbb10('0x17');var _0x2f2ebf=_0x58a612[_0xbb10('0x19')];var _0x36b5e8=_0x26e021?0x0:_0x147230[_0xbb10('0x16')];var _0x2b184e=_0x26e021?_0x58a612['count']:_0x147230[_0xbb10('0x16')]+_0x147230[_0xbb10('0x18')];var _0x133ac2;if(_0x2b184e>=_0x2f2ebf){_0x2b184e=_0x2f2ebf;_0x133ac2=0xc8;}else{_0x133ac2=0xce;}_0x442548[_0xbb10('0x14')](_0x133ac2);return _0x442548[_0xbb10('0x1a')](_0xbb10('0x1b'),_0x36b5e8+'-'+_0x2b184e+'/'+_0x2f2ebf)[_0xbb10('0x15')](_0x58a612);}return null;};}function saveUpdates(_0x30efc6){return function(_0xbf2906){if(_0xbf2906){return _0xbf2906[_0xbb10('0x1c')](_0x30efc6)['then'](function(_0x5ff0cf){return _0x5ff0cf;});}return null;};}function removeEntity(_0x19f48d){return function(_0x388fab){if(_0x388fab){return _0x388fab[_0xbb10('0x1d')]()[_0xbb10('0x1e')](function(){_0x19f48d[_0xbb10('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12f888){return function(_0x12ef77){if(!_0x12ef77){_0x12f888['sendStatus'](0x194);}return _0x12ef77;};}function handleError(_0x4c4b0d,_0x8e2b97){_0x8e2b97=_0x8e2b97||0x1f4;return function(_0x311abe){logger[_0xbb10('0x1f')](_0x311abe[_0xbb10('0x20')]);if(_0x311abe[_0xbb10('0x21')]){delete _0x311abe[_0xbb10('0x21')];}_0x4c4b0d[_0xbb10('0x14')](_0x8e2b97)[_0xbb10('0x22')](_0x311abe);};}function getInteractionUsers(_0x7f2377,_0x395404){return new BPromise(function(_0x3ba6cd,_0x26ad93){try{if(_0x395404[_0x7f2377['id']]){_0x7f2377['Users']=_['map'](_0x395404[_0x7f2377['id']],function(_0x4fb5e0){return{'id':_0x4fb5e0['id'],'fullname':_0x4fb5e0[_0xbb10('0x23')]};});}}catch(_0x3c5ae7){_0x26ad93(_0x3c5ae7);}_0x3ba6cd(_0x7f2377);});}function getInteractionTags(_0x2c89b9,_0x4e25ff){return new BPromise(function(_0x2fdde9,_0x24d586){try{if(_0x2c89b9[_0xbb10('0x24')]){_0x2c89b9[_0xbb10('0x25')]=[];_0x2c89b9[_0xbb10('0x24')][_0xbb10('0x26')](',')[_0xbb10('0x27')](function(_0x4aabb9){_0x2c89b9[_0xbb10('0x25')][_0xbb10('0x28')](_0x4e25ff[_0x4aabb9]);});}delete _0x2c89b9[_0xbb10('0x24')];}catch(_0x2e0249){_0x24d586(_0x2e0249);}_0x2fdde9(_0x2c89b9);});}function getLastMessageText(_0x1d30aa){return new BPromise(function(_0x2ff4c1,_0x5d5c80){return db[_0xbb10('0x29')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x1d30aa['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xbb10('0x2a')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0xbb10('0x2b'),'raw':!![]})[_0xbb10('0x1e')](function(_0x1b59f9){if(_0x1b59f9&&_0x1b59f9['plainBody']){_0x1d30aa['lastMsgText']=_[_0xbb10('0x2c')](_0x1b59f9[_0xbb10('0x2d')]);}_0x2ff4c1(_0x1d30aa);})['catch'](function(_0x359ad4){_0x5d5c80(_0x359ad4);});});}function updateMailInteraction(_0x37dde7,_0x2f653f,_0x1c0b57,_0x37a83f){return new BPromise(function(_0x138bc6,_0xf85197){return getInteractionUsers(_0x37dde7,_0x1c0b57)['then'](function(_0x25acb3){return getInteractionTags(_0x25acb3,_0x2f653f);})[_0xbb10('0x1e')](function(_0x441d15){if(_0x37a83f){_0x138bc6(getLastMessageText(_0x441d15));}else{_0x138bc6(_0x441d15);}})[_0xbb10('0x2e')](function(_0xfb2c5e){_0xf85197(_0xfb2c5e);});});}exports[_0xbb10('0x2f')]=function(_0x188cbd,_0x10202c){var _0x3c8d7d={},_0x56943c={},_0x2b5352={'count':0x0,'rows':[]};var _0x150107=_[_0xbb10('0x30')](db[_0xbb10('0x31')]['rawAttributes'],function(_0x111762){return{'name':_0x111762['fieldName'],'type':_0x111762['type'][_0xbb10('0x32')]};});_0x56943c[_0xbb10('0x33')]=_[_0xbb10('0x30')](_0x150107,_0xbb10('0x21'));_0x56943c[_0xbb10('0x34')]=_[_0xbb10('0x35')](_0x188cbd['query']);_0x56943c[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x56943c['model'],_0x56943c['query']);_0x3c8d7d['attributes']=_[_0xbb10('0x37')](_0x56943c[_0xbb10('0x33')],qs[_0xbb10('0x38')](_0x188cbd['query'][_0xbb10('0x38')]));_0x3c8d7d[_0xbb10('0x39')]=_0x3c8d7d[_0xbb10('0x39')]['length']?_0x3c8d7d[_0xbb10('0x39')]:_0x56943c[_0xbb10('0x33')];if(!_0x188cbd[_0xbb10('0x34')][_0xbb10('0x3a')]('nolimit')){_0x3c8d7d[_0xbb10('0x18')]=qs[_0xbb10('0x18')](_0x188cbd['query'][_0xbb10('0x18')]);_0x3c8d7d[_0xbb10('0x16')]=qs[_0xbb10('0x16')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x16')]);}_0x3c8d7d[_0xbb10('0x3b')]=qs['sort'](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x3c')]);_0x3c8d7d[_0xbb10('0x3d')]=qs[_0xbb10('0x36')](_['pick'](_0x188cbd[_0xbb10('0x34')],_0x56943c[_0xbb10('0x36')]),_0x150107);var _0x23dc18=[];var _0x403beb=squel['select']()[_0xbb10('0x3e')]('id')[_0xbb10('0x3e')]('name')['field'](_0xbb10('0x3f'))['from'](_0xbb10('0x40'));var _0x180933=squel['select']()[_0xbb10('0x3e')](_0xbb10('0x41'))[_0xbb10('0x3e')]('u.fullname')[_0xbb10('0x3e')](_0xbb10('0x42'))[_0xbb10('0x43')](_0xbb10('0x44'),'ui')[_0xbb10('0x45')](_0xbb10('0x46'),'u',_0xbb10('0x47'));var _0x3efa96=squel[_0xbb10('0x48')]()[_0xbb10('0x43')](_0xbb10('0x49'),'i')[_0xbb10('0x45')]('cm_contacts','c',_0xbb10('0x4a'))[_0xbb10('0x45')]('users','o',_0xbb10('0x4b'))[_0xbb10('0x45')](_0xbb10('0x4c'),'a',_0xbb10('0x4d'))[_0xbb10('0x45')](_0xbb10('0x4e'),'me',_0xbb10('0x4f'))['left_join']('mail_interaction_has_tags','it',_0xbb10('0x50'))[_0xbb10('0x45')](_0xbb10('0x40'),'t','t.id\x20=\x20it.TagId');var _0x5f0c12=squel[_0xbb10('0x51')]();var _0x34cf4e=[];var _0x1bd054=squel[_0xbb10('0x51')]();var _0x10159b;if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x52')]){_0x10159b=as[_0xbb10('0x53')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x52')]);var _0x550111=_0x10159b['sqlOperator'];for(var _0x412e13=0x0;_0x412e13<_0x10159b[_0xbb10('0x54')][_0xbb10('0x55')];_0x412e13++){var _0xb014b0=_0x10159b[_0xbb10('0x54')][_0x412e13];var _0x440f9e='i';var _0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),_0xb014b0[_0xbb10('0x3e')]]);if(!_0x358e7e){switch(_0xb014b0[_0xbb10('0x3e')]){case _0xbb10('0x57'):if(_0xb014b0[_0xbb10('0x58')]==0x1){_0x3efa96[_0xbb10('0x59')]('`'+_0xb014b0[_0xbb10('0x3e')]+'`\x20=\x200');}else{_0x3efa96[_0xbb10('0x59')]('`'+_0xb014b0['field']+_0xbb10('0x5a'));}break;case _0xbb10('0x5b'):if(_0xb014b0[_0xbb10('0x5c')]===_0xbb10('0x5d')){if(_0xb014b0[_0xbb10('0x58')][_0xbb10('0x26')]('\x20')[_0xbb10('0x55')]>0x1){_0x5f0c12[_0x550111](_0xbb10('0x5e'),qs[_0xbb10('0x5f')](_0xb014b0[_0xbb10('0x58')]),null);}else{var _0x44a056='%'+_0xb014b0[_0xbb10('0x58')]+'%';_0x5f0c12[_0x550111](_0xbb10('0x60'),_0x44a056,_0x44a056,_0x44a056);}}else{_0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),'ContactId']);_0xb014b0[_0xbb10('0x3e')]=_0xbb10('0x61');_0x155dc5=as[_0xbb10('0x62')](_0x440f9e,_0x358e7e[_0xbb10('0x63')],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5[_0xbb10('0x64')],_0x155dc5[_0xbb10('0x58')]['start'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x13')]);}break;case _0xbb10('0x65'):var _0x14fed3=_0xb014b0[_0xbb10('0x58')][_0xbb10('0x26')](',')[_0xbb10('0x30')](function(_0x12ec18){return Number(_0x12ec18);});_0x14fed3[_0xbb10('0x27')](function(_0x40c4fb){_0x1bd054['or'](_0xbb10('0x66'),'%,'+_0x40c4fb+',%');});_0x34cf4e=_[_0xbb10('0x67')](_0x34cf4e,_0x14fed3);break;case _0xbb10('0x68'):if(_0xb014b0['operator']==='$substring'){_0x5f0c12[_0x550111](_0xbb10('0x69'),'%'+_0xb014b0[_0xbb10('0x58')]+'%',null);}else{_0x358e7e=_[_0xbb10('0x56')](_0x150107,[_0xbb10('0x21'),'UserId']);_0xb014b0['field']=_0xbb10('0x6a');_0x155dc5=as[_0xbb10('0x62')](_0x440f9e,_0x358e7e[_0xbb10('0x63')],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5[_0xbb10('0x64')],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x6b')],_0x155dc5[_0xbb10('0x58')]['end']);}break;case _0xbb10('0x2d'):_0x155dc5=as[_0xbb10('0x62')]('me',null,_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5['text'],_0x155dc5['value']['start'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x13')]);break;}}else{var _0x155dc5=as['buildExpression'](_0x440f9e,_0x358e7e['type'],_0xb014b0);_0x5f0c12[_0x550111](_0x155dc5['text'],_0x155dc5[_0xbb10('0x58')][_0xbb10('0x6b')],_0x155dc5[_0xbb10('0x58')]['end']);}}}else{var _0xa1bbd9=_(_0x188cbd[_0xbb10('0x34')])['keys']()['map'](function(_0x27d7b9){return _[_0xbb10('0x6c')](_0x150107,[_0xbb10('0x21'),_0x27d7b9])?_0x27d7b9:undefined;})[_0xbb10('0x6d')]()['value']();if(!_[_0xbb10('0x6e')](_0xa1bbd9)){_0xa1bbd9[_0xbb10('0x27')](function(_0xa7179d){if(_0xa7179d==='MailAccountId'){_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x6f'),[][_0xbb10('0x70')](_0x188cbd['query'][_0xa7179d]));}else if(_0xa7179d===_0xbb10('0x71')){var _0x31e85e=JSON[_0xbb10('0x72')](_0x188cbd[_0xbb10('0x34')][_0xa7179d])['$gte'];var _0x251417=JSON[_0xbb10('0x72')](_0x188cbd[_0xbb10('0x34')][_0xa7179d])[_0xbb10('0x73')];_0x3efa96['where'](_0xbb10('0x74'),_0x31e85e,_0x251417);}else{if(_0x188cbd[_0xbb10('0x34')][_0xa7179d]===_0xbb10('0x75')){_0x3efa96[_0xbb10('0x3d')]('i.'+_0xa7179d+_0xbb10('0x76'));}else{_0x3efa96[_0xbb10('0x3d')]('i.'+_0xa7179d+_0xbb10('0x77'),_0x188cbd['query'][_0xa7179d]);}}});}if(_0x188cbd['query']['read']){if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x78')]==0x1){_0x3efa96[_0xbb10('0x59')]('`unreadMessages`\x20=\x200');}else{_0x3efa96['having'](_0xbb10('0x79'));}}if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')]){_0x34cf4e=_[_0xbb10('0x7b')](_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')])?_0x188cbd['query'][_0xbb10('0x7a')]:new Array(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7a')]);_0x34cf4e[_0xbb10('0x27')](function(_0x2aaaa6){_0x1bd054['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2aaaa6+',%');});}if(_0x188cbd['query']['filter']){var _0x329da7=_0x188cbd[_0xbb10('0x34')][_0xbb10('0x7c')][_0xbb10('0x7d')]('\x5c','\x5c\x5c')[_0xbb10('0x7d')](/'/g,'\x27\x27');if(qs[_0xbb10('0x7e')](_0x329da7)){_0x5f0c12['or']('i.id\x20LIKE\x20?',_0x329da7+'%');}else if(qs[_0xbb10('0x7f')](_0x329da7)){_0x5f0c12['or']('c.email\x20LIKE\x20?',_0x329da7+'%');}else{_0x5f0c12['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x329da7))['or'](_0xbb10('0x80'),qs[_0xbb10('0x5f')](_0x329da7));}}}_0x3efa96[_0xbb10('0x3d')](_0x5f0c12);_0x3efa96[_0xbb10('0x81')]('i.id');var _0x122d38={'type':db['Sequelize']['QueryTypes'][_0xbb10('0x82')],'raw':!![]};var _0xfe3db0=_0x3efa96[_0xbb10('0x83')]();_0xfe3db0[_0xbb10('0x3e')](_0xbb10('0x84'));_0xfe3db0['field'](_0xbb10('0x85'),_0xbb10('0x57'));if(_0x3c8d7d[_0xbb10('0x3b')]){_0x3c8d7d[_0xbb10('0x3b')][_0xbb10('0x27')](function(_0x27f42f){var _0x174395=_0x27f42f[0x0]==='contactName'?_0x27f42f[0x0]:'i.'+_0x27f42f[0x0];_0x3efa96[_0xbb10('0x3b')](_0x174395,_0x27f42f[0x1]===_0xbb10('0x86')?![]:!![]);});}if(!_[_0xbb10('0x6e')](_0x34cf4e)){_0x3efa96[_0xbb10('0x59')](_0x1bd054);_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x87'),_0x34cf4e);}BPromise[_0xbb10('0x88')]()[_0xbb10('0x1e')](function(){if(!_0x10159b){if(_0x188cbd['query'][_0xbb10('0x89')])return;_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x8a'));_0x3efa96['where']('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x188cbd['user'][_0xbb10('0x8b')]!=='agent')return;return _0x188cbd['user'][_0xbb10('0x8c')]({'attributes':['id'],'raw':!![]})[_0xbb10('0x1e')](function(_0x33ff06){if(_[_0xbb10('0x6e')](_0x33ff06)){_0xfe3db0[_0xbb10('0x3d')](_0xbb10('0x8d'));_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x8d'));}else{_0xfe3db0[_0xbb10('0x3d')]('i.MailAccountId\x20IN\x20?',_[_0xbb10('0x30')](_0x33ff06,'id'));_0x3efa96[_0xbb10('0x3d')](_0xbb10('0x6f'),_[_0xbb10('0x30')](_0x33ff06,'id'));}});})['then'](function(){if(_0x188cbd['user'][_0xbb10('0x8b')]===_0xbb10('0x8e')&&!_0x10159b&&!_0x188cbd[_0xbb10('0x34')][_0xbb10('0x89')])return[];return db['sequelize'][_0xbb10('0x34')](_0xfe3db0[_0xbb10('0x8f')](),_0x122d38);})[_0xbb10('0x1e')](function(_0xf7b3e1){_0x2b5352[_0xbb10('0x19')]=_0xf7b3e1['length'];if(_0x2b5352['count']===0x0)return[];return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x403beb[_0xbb10('0x8f')](),_0x122d38)['then'](function(_0x256b35){_0x23dc18=_[_0xbb10('0x91')](_0x256b35,'id');_0x122d38=_['merge'](_0x122d38,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x188cbd[_0xbb10('0x34')][_0xbb10('0x38')]){_0x3c8d7d[_0xbb10('0x39')]['forEach'](function(_0x32d5a5){_0x3efa96[_0xbb10('0x3e')]('i.'+_0x32d5a5);});}else{_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x85'),_0xbb10('0x57'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x92'),_0xbb10('0x93'));_0x3efa96[_0xbb10('0x3e')]('a.mandatoryDisposition',_0xbb10('0x94'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x95'),_0xbb10('0x96'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x84'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x97'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x98'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x99'));_0x3efa96['field']('i.closedAt');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9a'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9b'));_0x3efa96[_0xbb10('0x3e')]('i.lastMsgDirection');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9c'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9d'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0x9e'));_0x3efa96['field'](_0xbb10('0x9f'));_0x3efa96[_0xbb10('0x3e')]('i.substatus');_0x3efa96[_0xbb10('0x3e')]('i.to');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa0'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa1'));_0x3efa96[_0xbb10('0x3e')]('i.UserId');_0x3efa96[_0xbb10('0x3e')]('c.firstName',_0xbb10('0xa2'));_0x3efa96[_0xbb10('0x3e')]('c.lastName','Contact.lastName');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa3'),_0xbb10('0xa4'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa5'),_0xbb10('0xa6'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa7'),_0xbb10('0xa8'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xa9'),'Contact.fax');_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xaa'),_0xbb10('0xab'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xac'),_0xbb10('0xad'));_0x3efa96[_0xbb10('0x3e')](_0xbb10('0xae'),_0xbb10('0x24'));}if(_0x3c8d7d[_0xbb10('0x18')])_0x3efa96[_0xbb10('0x18')](_0x3c8d7d[_0xbb10('0x18')]);if(_0x3c8d7d['offset'])_0x3efa96[_0xbb10('0x16')](_0x3c8d7d['offset']);return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x3efa96[_0xbb10('0x8f')](),_0x122d38);})[_0xbb10('0x1e')](function(_0x38d369){if(_0x38d369['length']>0x0)_0x180933[_0xbb10('0x3d')](_0xbb10('0xaf'),_[_0xbb10('0x30')](_0x38d369,'id'));return db[_0xbb10('0x90')][_0xbb10('0x34')](_0x180933[_0xbb10('0x8f')](),_0x122d38)['then'](function(_0x4bd470){var _0x5cc9d7=_[_0xbb10('0xb0')](_0x4bd470,_0xbb10('0xb1'));var _0x57d5a1=[];return db[_0xbb10('0xb2')][_0xbb10('0xb3')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0xbb10('0x1e')](function(_0xaede56){var _0x5642c3=_0xaede56[_0xbb10('0xb4')];_0x38d369['forEach'](function(_0x34cec7){_0x57d5a1[_0xbb10('0x28')](updateMailInteraction(_0x34cec7,_0x23dc18,_0x5cc9d7,_0x5642c3));});return BPromise['all'](_0x57d5a1);});});});})[_0xbb10('0x1e')](function(_0x28cc74){_0x2b5352['rows']=_0x28cc74;return _0x2b5352;})['then'](respondWithFilteredResult(_0x10202c,_0x3c8d7d))[_0xbb10('0x2e')](handleError(_0x10202c,null));};exports[_0xbb10('0xb5')]=function(_0x3e0e34,_0x3299bc){var _0x3ceb77={'raw':![],'where':{'id':_0x3e0e34[_0xbb10('0xb6')]['id']}},_0x4c3bdc={};_0x4c3bdc[_0xbb10('0x33')]=_[_0xbb10('0x35')](db['MailInteraction'][_0xbb10('0xb7')]);_0x4c3bdc[_0xbb10('0x34')]=_[_0xbb10('0x35')](_0x3e0e34[_0xbb10('0x34')]);_0x4c3bdc[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x4c3bdc[_0xbb10('0x33')],_0x4c3bdc[_0xbb10('0x34')]);_0x3ceb77[_0xbb10('0x39')]=_['intersection'](_0x4c3bdc['model'],qs[_0xbb10('0x38')](_0x3e0e34[_0xbb10('0x34')][_0xbb10('0x38')]));_0x3ceb77[_0xbb10('0x39')]=_0x3ceb77[_0xbb10('0x39')][_0xbb10('0x55')]?_0x3ceb77[_0xbb10('0x39')]:_0x4c3bdc[_0xbb10('0x33')];if(_0x3e0e34[_0xbb10('0x34')][_0xbb10('0xb8')]){_0x3ceb77[_0xbb10('0xb9')]=[{'all':!![]}];}_0x3ceb77=_[_0xbb10('0xba')]({},_0x3ceb77,_0x3e0e34[_0xbb10('0xbb')]);return db['MailInteraction'][_0xbb10('0x56')](_0x3ceb77)[_0xbb10('0x1e')](handleEntityNotFound(_0x3299bc,null))[_0xbb10('0x1e')](respondWithResult(_0x3299bc,null))[_0xbb10('0x2e')](handleError(_0x3299bc,null));};exports[_0xbb10('0xbc')]=function(_0xd9284e,_0x4258fc){return db[_0xbb10('0x31')][_0xbb10('0xbc')](_0xd9284e[_0xbb10('0xbd')],{})[_0xbb10('0x1e')](respondWithResult(_0x4258fc,0xc9))['catch'](handleError(_0x4258fc,null));};exports[_0xbb10('0x1c')]=function(_0x5e1ac5,_0x3faaca){if(_0x5e1ac5[_0xbb10('0xbd')]['id']){delete _0x5e1ac5[_0xbb10('0xbd')]['id'];}return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x5e1ac5[_0xbb10('0xb6')]['id']}})['then'](handleEntityNotFound(_0x3faaca,null))[_0xbb10('0x1e')](saveUpdates(_0x5e1ac5['body'],null))[_0xbb10('0x1e')](respondWithResult(_0x3faaca,null))[_0xbb10('0x2e')](handleError(_0x3faaca,null));};exports[_0xbb10('0x1d')]=function(_0x576bb6,_0x2b652c){return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x576bb6[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x2b652c,null))[_0xbb10('0x1e')](removeEntity(_0x2b652c,null))[_0xbb10('0x2e')](handleError(_0x2b652c,null));};exports[_0xbb10('0xbe')]=function(_0x589565,_0x3696b3){return db['MailInteraction'][_0xbb10('0xbe')]()[_0xbb10('0x1e')](respondWithResult(_0x3696b3,null))[_0xbb10('0x2e')](handleError(_0x3696b3,null));};exports[_0xbb10('0xbf')]=function(_0x44c229,_0x40271f){return db[_0xbb10('0x29')]['find']({'where':{'id':_0x44c229[_0xbb10('0xb6')]['id']}})['then'](handleEntityNotFound(_0x40271f,null))['then'](function(_0x1513e0){if(_0x1513e0){return _0x1513e0[_0xbb10('0xbf')](_0x44c229[_0xbb10('0xbd')][_0xbb10('0xc0')],_[_0xbb10('0xc1')](_0x44c229[_0xbb10('0xbd')],['ids','id'])||{});}})[_0xbb10('0x1e')](respondWithResult(_0x40271f,null))[_0xbb10('0x2e')](handleError(_0x40271f,null));};exports[_0xbb10('0xc2')]=function(_0xb1b7c8,_0x136520){var _0x28127c={'raw':![],'where':{}};var _0x528aff={};var _0xdfdc42={'count':0x0,'rows':[]};return db[_0xbb10('0x31')][_0xbb10('0xb3')]({'where':{'id':_0xb1b7c8[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x136520,null))[_0xbb10('0x1e')](function(_0x2764e1){if(_0x2764e1){_0x528aff['model']=_[_0xbb10('0x35')](db['MailMessage'][_0xbb10('0xb7')]);_0x528aff['query']=_['keys'](_0xb1b7c8[_0xbb10('0x34')]);_0x528aff[_0xbb10('0x36')]=_[_0xbb10('0x37')](_0x528aff[_0xbb10('0x33')],_0x528aff[_0xbb10('0x34')]);_0x28127c['attributes']=_[_0xbb10('0x37')](_0x528aff['model'],qs['fields'](_0xb1b7c8['query'][_0xbb10('0x38')]));_0x28127c[_0xbb10('0x39')]=_0x28127c[_0xbb10('0x39')][_0xbb10('0x55')]?_0x28127c[_0xbb10('0x39')]:_0x528aff['model'];if(!_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x3a')](_0xbb10('0xc3'))){_0x28127c[_0xbb10('0x18')]=qs[_0xbb10('0x18')](_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x18')]);_0x28127c['offset']=qs['offset'](_0xb1b7c8['query'][_0xbb10('0x16')]);}_0x28127c[_0xbb10('0x3b')]=qs[_0xbb10('0x3c')](_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x3c')]);_0x28127c[_0xbb10('0x3d')]=qs[_0xbb10('0x36')](_[_0xbb10('0xc4')](_0xb1b7c8[_0xbb10('0x34')],_0x528aff[_0xbb10('0x36')]));_0x28127c['where']['MailInteractionId']=_0x2764e1['id'];if(_0xb1b7c8['query'][_0xbb10('0x7c')]){_0x28127c[_0xbb10('0x3d')]=_[_0xbb10('0xba')](_0x28127c['where'],{'$or':_[_0xbb10('0x30')](_0x28127c[_0xbb10('0x39')],function(_0x2c638d){var _0x290280={};_0x290280[_0x2c638d]={'$like':'%'+_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0x7c')]+'%'};return _0x290280;})});}if(_0xb1b7c8['query']['$gte']){var _0x356660=_0xb1b7c8['query'][_0xbb10('0xc5')][_0xbb10('0x26')](',');var _0x152ca9={};_0x152ca9[_0x356660[0x0]]={'$gte':moment(_0x356660[0x1])[_0xbb10('0xc6')](_0xbb10('0xc7'))};_0x28127c[_0xbb10('0x3d')]=_[_0xbb10('0xba')](_0x28127c[_0xbb10('0x3d')],_0x152ca9);}_0x28127c=_[_0xbb10('0xba')]({},_0x28127c,_0xb1b7c8[_0xbb10('0xbb')]);return db['MailMessage'][_0xbb10('0x19')]({'where':_0x28127c['where']})[_0xbb10('0x1e')](function(_0x5547fa){_0xdfdc42[_0xbb10('0x19')]=_0x5547fa;if(_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0xb8')]){_0x28127c[_0xbb10('0xb9')]=[{'all':!![]}];}return db['MailMessage'][_0xbb10('0xc8')](_0x28127c);})['then'](function(_0xfe1154){if(_0xb1b7c8[_0xbb10('0x34')][_0xbb10('0xc9')]==='true'){for(var _0x298167=0x0;_0x298167<_0xfe1154[_0xbb10('0x55')];_0x298167++){_0xfe1154[_0x298167][_0xbb10('0xbd')]=juice(_0xfe1154[_0x298167][_0xbb10('0xbd')]);}}_0xdfdc42[_0xbb10('0xca')]=_0xfe1154;return _0xdfdc42;});}})[_0xbb10('0x1e')](respondWithFilteredResult(_0x136520,_0x28127c))['catch'](handleError(_0x136520,null));};exports['addTags']=function(_0x522a88,_0x26a752){return db['MailInteraction'][_0xbb10('0x56')]({'where':{'id':_0x522a88['params']['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x26a752,null))[_0xbb10('0x1e')](function(_0x385ad3){if(_0x385ad3){return _0x385ad3['setTags'](_0x522a88['body'][_0xbb10('0xc0')],_[_0xbb10('0xc1')](_0x522a88[_0xbb10('0xbd')],['ids','id'])||{})[_0xbb10('0xcb')](function(){return db[_0xbb10('0x65')][_0xbb10('0xc8')]({'attributes':['id','name','color'],'where':{'id':_0x522a88['body'][_0xbb10('0xc0')]}});})['then'](function(_0x3dfbcd){socket[_0xbb10('0xcc')](_0xbb10('0xcd'),{'id':Number(_0x522a88[_0xbb10('0xb6')]['id']),'tags':_0x3dfbcd||[]});return{'id':Number(_0x522a88[_0xbb10('0xb6')]['id']),'tags':_0x3dfbcd||[]};});}})[_0xbb10('0x1e')](respondWithResult(_0x26a752,null))[_0xbb10('0x2e')](handleError(_0x26a752,null));};exports[_0xbb10('0xce')]=function(_0x2746eb,_0x431792){return db[_0xbb10('0x31')]['find']({'where':{'id':_0x2746eb[_0xbb10('0xb6')]['id']}})[_0xbb10('0x1e')](handleEntityNotFound(_0x431792,null))['then'](function(_0x14ef50){if(_0x14ef50){return _0x14ef50['removeTags'](_0x2746eb['query'][_0xbb10('0xc0')]);}})[_0xbb10('0x1e')](respondWithStatusCode(_0x431792,null))[_0xbb10('0x2e')](handleError(_0x431792,null));};exports[_0xbb10('0xcf')]=function(_0x99c4,_0x4ca4ce){var _0x161171=moment()[_0xbb10('0xd0')]()['toString']();var _0xa45726=path[_0xbb10('0xd1')](config['root'],_0xbb10('0xd2'),'files',_0xbb10('0xd3'));var _0x8e8049=path[_0xbb10('0xd1')](config[_0xbb10('0xd4')],_0xbb10('0xd2'),_0xbb10('0xd5'),_0xbb10('0xd6'));var _0x56f902=path[_0xbb10('0xd1')](_0xa45726,_0x161171);var _0x4720a1=util[_0xbb10('0xc6')](_0xbb10('0xd7'),_0x99c4[_0xbb10('0xb6')]['id'],_0x161171);var _0x1301e3=path['join'](_0xa45726,_0x4720a1);var _0x550301=[];if(_0x99c4['query'][_0xbb10('0xd6')]){_0x550301[_0xbb10('0x28')]({'model':db[_0xbb10('0xd8')],'as':_0xbb10('0xd9'),'raw':!![]});}var _0x57700b=[{'model':db[_0xbb10('0x29')],'as':_0xbb10('0xda'),'attributes':['id',_0xbb10('0xbd'),'from','to','cc','bcc',_0xbb10('0xdb'),'createdAt'],'where':{'secret':![]},'order':qs[_0xbb10('0x3c')]('id'),'include':_0x550301}];return db[_0xbb10('0x31')][_0xbb10('0x56')]({'where':{'id':_0x99c4[_0xbb10('0xb6')]['id']},'include':_0x57700b})[_0xbb10('0x1e')](handleEntityNotFound(_0x4ca4ce,null))[_0xbb10('0x1e')](function(_0x1fe250){if(_0x1fe250&&_0x1fe250['Messages']){var _0x424371=_0x1fe250[_0xbb10('0xdc')]({'plain':!![]});fs['mkdirSync'](_0x56f902);return BPromise[_0xbb10('0xdd')](_0x424371[_0xbb10('0xda')],function(_0x32f261,_0x5b11a2){var _0x4b490a={'from':_0x32f261['from'],'to':_0x32f261['to'],'subject':_0x32f261[_0xbb10('0xdb')],'html':_0x32f261[_0xbb10('0xbd')],'headers':{'Date':moment(_0x32f261['createdAt'])[_0xbb10('0xc6')](_0xbb10('0xde'))},'attachments':[]};if(_0x32f261['cc']){_0x4b490a[_0xbb10('0xdf')]['Cc']=_0x32f261['cc'];}if(_0x32f261[_0xbb10('0xe0')]){_0x4b490a[_0xbb10('0xdf')][_0xbb10('0xe1')]=_0x32f261[_0xbb10('0xe0')];}return new BPromise(function(_0x48f0eb,_0x304603){if(_0x32f261['Attachments']){for(var _0x5a7c4e=0x0;_0x5a7c4e<_0x32f261['Attachments'][_0xbb10('0x55')];_0x5a7c4e++){var _0x572d73=_0x32f261['Attachments'][_0x5a7c4e];var _0x1f09f1=path['join'](_0x8e8049,_0x572d73[_0xbb10('0xe2')]);if(fs[_0xbb10('0xe3')](_0x1f09f1)){_0x4b490a[_0xbb10('0xd6')]['push']({'name':_0x572d73['name'],'contentType':_0x572d73[_0xbb10('0x63')],'data':fs['readFileSync'](_0x1f09f1)});}}}emlformat[_0xbb10('0xe4')](_0x4b490a,function(_0x211172,_0x589ecb){if(_0x211172)return _0x304603(_0x211172);fs['writeFileSync'](path[_0xbb10('0xd1')](_0x56f902,util[_0xbb10('0xc6')](_0xbb10('0xe5'),_0x5b11a2)),_0x589ecb);return _0x48f0eb(_0x589ecb);});});})['then'](function(){return new BPromise(function(_0x4f4aa8,_0x426a4f){zipdir(_0x56f902,{'saveTo':_0x1301e3},function(_0x22f153,_0x4d47cc){if(_0x22f153)return _0x426a4f(_0x22f153);return _0x4f4aa8(_0x4d47cc);});})[_0xbb10('0x1e')](function(){return new BPromise(function(_0x203e5a,_0xe88e90){rimraf(_0x56f902,function(_0x4845b5){if(_0x4845b5)_0xe88e90(_0x4845b5);return _0x203e5a();});});})[_0xbb10('0x1e')](function(){return _0x4ca4ce[_0xbb10('0xcf')](_0x1301e3,_0x4720a1,function(_0x166f4f){if(!_0x166f4f)fs[_0xbb10('0xe6')](_0x1301e3);});});});}else{return _0x4ca4ce[_0xbb10('0x12')](0xc8);}})[_0xbb10('0x2e')](handleError(_0x4ca4ce,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4337=['setDataValue','unreadMessages','length','emit','hook','events','../../mysqldb','MailInteraction','MailMessage','setMaxListeners','save','update','remove','getUsers','findAll','then'];(function(_0x2bafb0,_0x583102){var _0x130ff2=function(_0xd0526a){while(--_0xd0526a){_0x2bafb0['push'](_0x2bafb0['shift']());}};_0x130ff2(++_0x583102);}(_0x4337,0x135));var _0x7433=function(_0x3a3ddd,_0x1741b7){_0x3a3ddd=_0x3a3ddd-0x0;var _0x226125=_0x4337[_0x3a3ddd];return _0x226125;};'use strict';var EventEmitter=require(_0x7433('0x0'));var MailInteraction=require(_0x7433('0x1'))['db'][_0x7433('0x2')];var MailMessage=require('../../mysqldb')['db'][_0x7433('0x3')];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0x7433('0x4')](0x0);var events={'afterCreate':_0x7433('0x5'),'afterUpdate':_0x7433('0x6'),'afterDestroy':_0x7433('0x7')};function emitEvent(_0x24faa4){return function(_0x382646,_0x5a9ba6,_0x3db7d9){_0x382646[_0x7433('0x8')]({'attributes':['id'],'raw':!![]})['then'](function(_0x42d2b2){_0x382646['setDataValue']('Users',_0x42d2b2['map'](function(_0x5490bc){return{'id':_0x5490bc['id']};}));return MailMessage[_0x7433('0x9')]({'where':{'MailInteractionId':_0x382646['id'],'direction':'in','read':![]},'raw':!![]});})[_0x7433('0xa')](function(_0x166f27){_0x382646[_0x7433('0xb')](_0x7433('0xc'),_0x166f27[_0x7433('0xd')]);MailInteractionEvents[_0x7433('0xe')](_0x24faa4+':'+_0x382646['id'],_0x382646);MailInteractionEvents[_0x7433('0xe')](_0x24faa4,_0x382646);_0x3db7d9(null);})['catch'](_0x3db7d9(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailInteraction[_0x7433('0xf')](e,emitEvent(event));}}module['exports']=MailInteractionEvents;
\ No newline at end of file
+var _0x508f=['setDataValue','map','findAll','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports','events','../../mysqldb','MailInteraction','save','update','remove','then'];(function(_0x45f84d,_0x31e790){var _0x5efe23=function(_0xde91a3){while(--_0xde91a3){_0x45f84d['push'](_0x45f84d['shift']());}};_0x5efe23(++_0x31e790);}(_0x508f,0x15e));var _0xf508=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x508f[_0x2641f9];return _0x585741;};'use strict';var EventEmitter=require(_0xf508('0x0'));var MailInteraction=require(_0xf508('0x1'))['db'][_0xf508('0x2')];var MailMessage=require(_0xf508('0x1'))['db']['MailMessage'];var MailInteractionEvents=new EventEmitter();MailInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xf508('0x3'),'afterUpdate':_0xf508('0x4'),'afterDestroy':_0xf508('0x5')};function emitEvent(_0x1bd3d3){return function(_0x1b6d03,_0x1b3321,_0x1156da){_0x1b6d03['getUsers']({'attributes':['id'],'raw':!![]})[_0xf508('0x6')](function(_0x52677c){_0x1b6d03[_0xf508('0x7')]('Users',_0x52677c[_0xf508('0x8')](function(_0x229ac2){return{'id':_0x229ac2['id']};}));return MailMessage[_0xf508('0x9')]({'where':{'MailInteractionId':_0x1b6d03['id'],'direction':'in','read':![]},'raw':!![]});})[_0xf508('0x6')](function(_0x30fd1f){_0x1b6d03[_0xf508('0x7')](_0xf508('0xa'),_0x30fd1f[_0xf508('0xb')]);MailInteractionEvents[_0xf508('0xc')](_0x1bd3d3+':'+_0x1b6d03['id'],_0x1b6d03);MailInteractionEvents[_0xf508('0xc')](_0x1bd3d3,_0x1b6d03);_0x1156da(null);})[_0xf508('0xd')](_0x1156da(null));};}for(var e in events){if(events[_0xf508('0xe')](e)){var event=events[e];MailInteraction[_0xf508('0xf')](e,emitEvent(event));}}module[_0xf508('0x10')]=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe961=['closedAt','changed','get','then','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','path','rimraf','../../config/environment','define','MailInteraction','mail_interactions','fti_mail_interactions','subject','FULLTEXT','substatus','substatusAt','format','YYYY-MM-DD\x20HH:mm:ss','closed'];(function(_0x23f1a3,_0x483074){var _0x52bf1d=function(_0x351a76){while(--_0x351a76){_0x23f1a3['push'](_0x23f1a3['shift']());}};_0x52bf1d(++_0x483074);}(_0xe961,0x173));var _0x1e96=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xe961[_0x6c993a];return _0x27f547;};'use strict';var _=require(_0x1e96('0x0'));var util=require(_0x1e96('0x1'));var logger=require(_0x1e96('0x2'))(_0x1e96('0x3'));var moment=require(_0x1e96('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x1e96('0x5'));var rimraf=require(_0x1e96('0x6'));var config=require(_0x1e96('0x7'));var attributes=require('./mailInteraction.attributes');module['exports']=function(_0x197a48,_0x54deee){return _0x197a48[_0x1e96('0x8')](_0x1e96('0x9'),attributes,{'tableName':_0x1e96('0xa'),'paranoid':![],'indexes':[{'name':_0x1e96('0xb'),'fields':[_0x1e96('0xc'),'to'],'type':_0x1e96('0xd')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x187b84,_0x227cf0,_0x8fcfb6){if(_0x187b84[_0x1e96('0xe')]){_0x187b84[_0x1e96('0xf')]=moment()[_0x1e96('0x10')](_0x1e96('0x11'));}if(_0x187b84[_0x1e96('0x12')]){_0x187b84[_0x1e96('0x13')]=moment()['format'](_0x1e96('0x11'));}_0x8fcfb6(null,_0x227cf0);},'beforeUpdate':function(_0x241c2a,_0x1bbdf6,_0x81304){if(_0x241c2a['changed'](_0x1e96('0xe'))){_0x241c2a['substatusAt']=_0x241c2a[_0x1e96('0xe')]?moment()['format'](_0x1e96('0x11')):null;}if(_0x241c2a[_0x1e96('0x14')](_0x1e96('0x12'))){_0x241c2a[_0x1e96('0x13')]=moment()[_0x1e96('0x10')](_0x1e96('0x11'));_0x241c2a[_0x1e96('0xe')]=null;_0x241c2a[_0x1e96('0xf')]=null;}_0x81304(null,_0x241c2a);},'afterUpdate':function(_0x51a939,_0x238802,_0x201e44){var _0x50d09b=_0x197a48['models'];var _0x2dbc0a=_0x51a939[_0x1e96('0x15')]({'plain':!![]});if(_0x2dbc0a['closed']){return _0x50d09b['MailMessage']['update']({'read':!![]},{'where':{'MailInteractionId':_0x2dbc0a['id']}})[_0x1e96('0x16')](function(){_0x201e44();})[_0x1e96('0x17')](function(_0x3b14c7){_0x201e44(_0x3b14c7);});}else{_0x201e44();}}},'charset':_0x1e96('0x18'),'collate':_0x1e96('0x19')});};
\ No newline at end of file
+var _0x4a60=['rimraf','../../config/environment','./mailInteraction.attributes','define','MailInteraction','mail_interactions','fti_mail_interactions','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','changed','substatus','substatusAt','models','get','update','then','catch','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x5a9bb8,_0x549f35){var _0x5f4e17=function(_0x37b51a){while(--_0x37b51a){_0x5a9bb8['push'](_0x5a9bb8['shift']());}};_0x5f4e17(++_0x549f35);}(_0x4a60,0x174));var _0x04a6=function(_0x15bb39,_0x42bd41){_0x15bb39=_0x15bb39-0x0;var _0x88fadc=_0x4a60[_0x15bb39];return _0x88fadc;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x04a6('0x0'))(_0x04a6('0x1'));var moment=require(_0x04a6('0x2'));var BPromise=require(_0x04a6('0x3'));var rp=require(_0x04a6('0x4'));var fs=require('fs');var path=require(_0x04a6('0x5'));var rimraf=require(_0x04a6('0x6'));var config=require(_0x04a6('0x7'));var attributes=require(_0x04a6('0x8'));module['exports']=function(_0x3a46a2,_0x4dde9f){return _0x3a46a2[_0x04a6('0x9')](_0x04a6('0xa'),attributes,{'tableName':_0x04a6('0xb'),'paranoid':![],'indexes':[{'name':_0x04a6('0xc'),'fields':['subject','to'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x3a2332,_0x45af7b,_0xa7d224){if(_0x3a2332['substatus']){_0x3a2332['substatusAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x3a2332[_0x04a6('0xd')]){_0x3a2332[_0x04a6('0xe')]=moment()[_0x04a6('0xf')](_0x04a6('0x10'));}_0xa7d224(null,_0x45af7b);},'beforeUpdate':function(_0x67725c,_0x418d37,_0x594865){if(_0x67725c[_0x04a6('0x11')](_0x04a6('0x12'))){_0x67725c['substatusAt']=_0x67725c[_0x04a6('0x12')]?moment()[_0x04a6('0xf')]('YYYY-MM-DD\x20HH:mm:ss'):null;}if(_0x67725c['changed']('closed')){_0x67725c['closedAt']=moment()[_0x04a6('0xf')](_0x04a6('0x10'));_0x67725c['substatus']=null;_0x67725c[_0x04a6('0x13')]=null;}_0x594865(null,_0x67725c);},'afterUpdate':function(_0x5c5fca,_0x312a5d,_0x209218){var _0x14cb3e=_0x3a46a2[_0x04a6('0x14')];var _0x2e3afa=_0x5c5fca[_0x04a6('0x15')]({'plain':!![]});if(_0x2e3afa['closed']){return _0x14cb3e['MailMessage'][_0x04a6('0x16')]({'read':!![]},{'where':{'MailInteractionId':_0x2e3afa['id']}})[_0x04a6('0x17')](function(){_0x209218();})[_0x04a6('0x18')](function(_0x2fe42e){_0x209218(_0x2fe42e);});}else{_0x209218();}}},'charset':_0x04a6('0x19'),'collate':_0x04a6('0x1a')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e7b=['stringify','error','message','result','catch','UpdateMailInteraction','body','options','raw','attributes','AddTagsToMailInteraction','MailInteraction','find','where','addTags','ids','omit','spread','AddTags','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./mailInteraction.socket','register','request','then','info','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s'];(function(_0x3fcc20,_0x57c31b){var _0x15d3ce=function(_0x575619){while(--_0x575619){_0x3fcc20['push'](_0x3fcc20['shift']());}};_0x15d3ce(++_0x57c31b);}(_0x8e7b,0x184));var _0xb8e7=function(_0x1203f,_0x554bbc){_0x1203f=_0x1203f-0x0;var _0x365f0a=_0x8e7b[_0x1203f];return _0x365f0a;};'use strict';var _=require(_0xb8e7('0x0'));var util=require('util');var moment=require(_0xb8e7('0x1'));var BPromise=require(_0xb8e7('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb8e7('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xb8e7('0x4'));var logger=require(_0xb8e7('0x5'))(_0xb8e7('0x6'));var config=require(_0xb8e7('0x7'));var jayson=require(_0xb8e7('0x8'));var client=jayson['client'][_0xb8e7('0x9')]({'port':0x232a});config[_0xb8e7('0xa')]=_['defaults'](config[_0xb8e7('0xa')],{'host':_0xb8e7('0xb'),'port':0x18eb});var socket=require(_0xb8e7('0xc'))(new Redis(config[_0xb8e7('0xa')]));require(_0xb8e7('0xd'))[_0xb8e7('0xe')](socket);function respondWithRpcPromise(_0x3f743a,_0xd84d8e,_0x4369a6){return new BPromise(function(_0x1d2692,_0x467f7c){return client[_0xb8e7('0xf')](_0x3f743a,_0x4369a6)[_0xb8e7('0x10')](function(_0x52861b){logger[_0xb8e7('0x11')](_0xb8e7('0x12'),_0xd84d8e,_0xb8e7('0x13'));logger[_0xb8e7('0x14')](_0xb8e7('0x15'),_0xd84d8e,'request\x20sent',JSON[_0xb8e7('0x16')](_0x52861b));if(_0x52861b[_0xb8e7('0x17')]){if(_0x52861b[_0xb8e7('0x17')]['code']===0x1f4){logger[_0xb8e7('0x17')](_0xb8e7('0x12'),_0xd84d8e,_0x52861b[_0xb8e7('0x17')][_0xb8e7('0x18')]);return _0x467f7c(_0x52861b[_0xb8e7('0x17')][_0xb8e7('0x18')]);}logger[_0xb8e7('0x17')](_0xb8e7('0x12'),_0xd84d8e,_0x52861b['error']['message']);return _0x1d2692(_0x52861b[_0xb8e7('0x17')][_0xb8e7('0x18')]);}else{logger[_0xb8e7('0x11')]('MailInteraction,\x20%s,\x20%s',_0xd84d8e,_0xb8e7('0x13'));_0x1d2692(_0x52861b[_0xb8e7('0x19')][_0xb8e7('0x18')]);}})[_0xb8e7('0x1a')](function(_0x44de46){logger[_0xb8e7('0x17')]('MailInteraction,\x20%s,\x20%s',_0xd84d8e,_0x44de46);_0x467f7c(_0x44de46);});});}exports[_0xb8e7('0x1b')]=function(_0x184702){var _0x23b99b=this;return new Promise(function(_0x159363,_0x376916){return db['MailInteraction']['update'](_0x184702[_0xb8e7('0x1c')],{'raw':_0x184702['options']?_0x184702[_0xb8e7('0x1d')][_0xb8e7('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x184702[_0xb8e7('0x1d')]?_0x184702[_0xb8e7('0x1d')]['where']||null:null,'attributes':_0x184702[_0xb8e7('0x1d')]?_0x184702[_0xb8e7('0x1d')][_0xb8e7('0x1f')]||null:null,'limit':_0x184702['options']?_0x184702['options']['limit']||null:null})[_0xb8e7('0x10')](function(_0x26a6d6){logger[_0xb8e7('0x11')](_0xb8e7('0x1b'),_0x184702);logger[_0xb8e7('0x14')]('UpdateMailInteraction',_0x184702,JSON['stringify'](_0x26a6d6));_0x159363(_0x26a6d6);})[_0xb8e7('0x1a')](function(_0x9fbeb5){logger[_0xb8e7('0x17')](_0xb8e7('0x1b'),_0x9fbeb5[_0xb8e7('0x18')],_0x184702);_0x376916(_0x23b99b[_0xb8e7('0x17')](0x1f4,_0x9fbeb5['message']));});});};exports[_0xb8e7('0x20')]=function(_0xc226a4){return new Promise(function(_0x1c71a6,_0x4809c2){return db[_0xb8e7('0x21')][_0xb8e7('0x22')]({'where':_0xc226a4[_0xb8e7('0x1d')]?_0xc226a4[_0xb8e7('0x1d')][_0xb8e7('0x23')]||null:null})[_0xb8e7('0x10')](function(_0x144fa9){if(_0x144fa9){return _0x144fa9[_0xb8e7('0x24')](_0xc226a4[_0xb8e7('0x1c')][_0xb8e7('0x25')],_[_0xb8e7('0x26')](_0xc226a4[_0xb8e7('0x1c')],['ids','id'])||{});}})[_0xb8e7('0x27')](function(_0x177f89){logger[_0xb8e7('0x11')](_0xb8e7('0x28'),_0xc226a4);logger[_0xb8e7('0x14')]('AddTags',_0xc226a4,JSON['stringify'](_0x177f89));_0x1c71a6(_0x177f89);})[_0xb8e7('0x1a')](function(_0x307c9c){logger[_0xb8e7('0x17')](_0xb8e7('0x28'),_0x307c9c[_0xb8e7('0x18')],_0xc226a4);_0x4809c2(_this[_0xb8e7('0x17')](0x1f4,_0x307c9c['message']));});});};
\ No newline at end of file
+var _0x7ea9=['body','ids','omit','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./mailInteraction.socket','register','request','then','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','update','options','raw','attributes','limit','info','UpdateMailInteraction','catch','MailInteraction','find'];(function(_0x814c4,_0xad4af){var _0x21d1dd=function(_0x512711){while(--_0x512711){_0x814c4['push'](_0x814c4['shift']());}};_0x21d1dd(++_0xad4af);}(_0x7ea9,0x10d));var _0x97ea=function(_0x544d38,_0x53381f){_0x544d38=_0x544d38-0x0;var _0x3322d7=_0x7ea9[_0x544d38];return _0x3322d7;};'use strict';var _=require('lodash');var util=require(_0x97ea('0x0'));var moment=require(_0x97ea('0x1'));var BPromise=require(_0x97ea('0x2'));var rs=require(_0x97ea('0x3'));var fs=require('fs');var Redis=require(_0x97ea('0x4'));var db=require(_0x97ea('0x5'))['db'];var utils=require(_0x97ea('0x6'));var logger=require(_0x97ea('0x7'))(_0x97ea('0x8'));var config=require('../../config/environment');var jayson=require(_0x97ea('0x9'));var client=jayson[_0x97ea('0xa')][_0x97ea('0xb')]({'port':0x232a});config['redis']=_[_0x97ea('0xc')](config[_0x97ea('0xd')],{'host':_0x97ea('0xe'),'port':0x18eb});var socket=require(_0x97ea('0xf'))(new Redis(config['redis']));require(_0x97ea('0x10'))[_0x97ea('0x11')](socket);function respondWithRpcPromise(_0x1af22a,_0xfc94bd,_0x16cd5b){return new BPromise(function(_0x46a05c,_0x4ab054){return client[_0x97ea('0x12')](_0x1af22a,_0x16cd5b)[_0x97ea('0x13')](function(_0x12c439){logger['info'](_0x97ea('0x14'),_0xfc94bd,_0x97ea('0x15'));logger[_0x97ea('0x16')](_0x97ea('0x17'),_0xfc94bd,'request\x20sent',JSON[_0x97ea('0x18')](_0x12c439));if(_0x12c439['error']){if(_0x12c439[_0x97ea('0x19')][_0x97ea('0x1a')]===0x1f4){logger[_0x97ea('0x19')](_0x97ea('0x14'),_0xfc94bd,_0x12c439['error']['message']);return _0x4ab054(_0x12c439[_0x97ea('0x19')][_0x97ea('0x1b')]);}logger['error']('MailInteraction,\x20%s,\x20%s',_0xfc94bd,_0x12c439[_0x97ea('0x19')][_0x97ea('0x1b')]);return _0x46a05c(_0x12c439[_0x97ea('0x19')][_0x97ea('0x1b')]);}else{logger['info'](_0x97ea('0x14'),_0xfc94bd,_0x97ea('0x15'));_0x46a05c(_0x12c439[_0x97ea('0x1c')]['message']);}})['catch'](function(_0x119379){logger[_0x97ea('0x19')](_0x97ea('0x14'),_0xfc94bd,_0x119379);_0x4ab054(_0x119379);});});}exports['UpdateMailInteraction']=function(_0x363cbb){var _0x12d20c=this;return new Promise(function(_0x31096a,_0x23ff3d){return db['MailInteraction'][_0x97ea('0x1d')](_0x363cbb['body'],{'raw':_0x363cbb[_0x97ea('0x1e')]?_0x363cbb[_0x97ea('0x1e')][_0x97ea('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x363cbb['options']?_0x363cbb[_0x97ea('0x1e')]['where']||null:null,'attributes':_0x363cbb['options']?_0x363cbb[_0x97ea('0x1e')][_0x97ea('0x20')]||null:null,'limit':_0x363cbb[_0x97ea('0x1e')]?_0x363cbb[_0x97ea('0x1e')][_0x97ea('0x21')]||null:null})[_0x97ea('0x13')](function(_0x59502a){logger[_0x97ea('0x22')](_0x97ea('0x23'),_0x363cbb);logger[_0x97ea('0x16')]('UpdateMailInteraction',_0x363cbb,JSON[_0x97ea('0x18')](_0x59502a));_0x31096a(_0x59502a);})[_0x97ea('0x24')](function(_0x55506d){logger[_0x97ea('0x19')](_0x97ea('0x23'),_0x55506d[_0x97ea('0x1b')],_0x363cbb);_0x23ff3d(_0x12d20c[_0x97ea('0x19')](0x1f4,_0x55506d[_0x97ea('0x1b')]));});});};exports['AddTagsToMailInteraction']=function(_0x1a1f44){return new Promise(function(_0xf212bb,_0x1e045c){return db[_0x97ea('0x25')][_0x97ea('0x26')]({'where':_0x1a1f44['options']?_0x1a1f44['options']['where']||null:null})['then'](function(_0x661454){if(_0x661454){return _0x661454['addTags'](_0x1a1f44[_0x97ea('0x27')][_0x97ea('0x28')],_[_0x97ea('0x29')](_0x1a1f44[_0x97ea('0x27')],[_0x97ea('0x28'),'id'])||{});}})[_0x97ea('0x2a')](function(_0x55c5c7){logger['info'](_0x97ea('0x2b'),_0x1a1f44);logger[_0x97ea('0x16')]('AddTags',_0x1a1f44,JSON[_0x97ea('0x18')](_0x55c5c7));_0xf212bb(_0x55c5c7);})['catch'](function(_0x36b2b6){logger['error'](_0x97ea('0x2b'),_0x36b2b6[_0x97ea('0x1b')],_0x1a1f44);_0x1e045c(_this[_0x97ea('0x19')](0x1f4,_0x36b2b6[_0x97ea('0x1b')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd55f=['update','emit','register','length','./mailInteraction.events','save'];(function(_0x2df2d0,_0x1d6ea8){var _0x3c4438=function(_0x456da2){while(--_0x456da2){_0x2df2d0['push'](_0x2df2d0['shift']());}};_0x3c4438(++_0x1d6ea8);}(_0xd55f,0x124));var _0xfd55=function(_0x135167,_0x507102){_0x135167=_0x135167-0x0;var _0x501e31=_0xd55f[_0x135167];return _0x501e31;};'use strict';var MailInteractionEvents=require(_0xfd55('0x0'));var events=[_0xfd55('0x1'),'remove',_0xfd55('0x2')];function createListener(_0x117422,_0x2ccfed){return function(_0x39ece5){_0x2ccfed[_0xfd55('0x3')](_0x117422,_0x39ece5);};}function removeListener(_0x1b34b5,_0x634ad){return function(){MailInteractionEvents['removeListener'](_0x1b34b5,_0x634ad);};}exports[_0xfd55('0x4')]=function(_0x1a3db0){for(var _0x8428a=0x0,_0x3ec864=events[_0xfd55('0x5')];_0x8428a<_0x3ec864;_0x8428a++){var _0xdf6319=events[_0x8428a];var _0x5ddd55=createListener('mailInteraction:'+_0xdf6319,_0x1a3db0);MailInteractionEvents['on'](_0xdf6319,_0x5ddd55);}};
\ No newline at end of file
+var _0xd645=['register','length','./mailInteraction.events','save','update','removeListener'];(function(_0x10d670,_0x178996){var _0x20d6f8=function(_0x4a4b87){while(--_0x4a4b87){_0x10d670['push'](_0x10d670['shift']());}};_0x20d6f8(++_0x178996);}(_0xd645,0xda));var _0x5d64=function(_0x5a950c,_0x5c2cac){_0x5a950c=_0x5a950c-0x0;var _0x5b8d8c=_0xd645[_0x5a950c];return _0x5b8d8c;};'use strict';var MailInteractionEvents=require(_0x5d64('0x0'));var events=[_0x5d64('0x1'),'remove',_0x5d64('0x2')];function createListener(_0x2003d3,_0x4d4c28){return function(_0x34be96){_0x4d4c28['emit'](_0x2003d3,_0x34be96);};}function removeListener(_0x1aba5f,_0x2f7e79){return function(){MailInteractionEvents[_0x5d64('0x3')](_0x1aba5f,_0x2f7e79);};}exports[_0x5d64('0x4')]=function(_0x2d296d){for(var _0x44d2fa=0x0,_0x2ddd75=events[_0x5d64('0x5')];_0x44d2fa<_0x2ddd75;_0x44d2fa++){var _0x363443=events[_0x44d2fa];var _0x35a427=createListener('mailInteraction:'+_0x363443,_0x2d296d);MailInteractionEvents['on'](_0x363443,_0x35a427);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1599=['/:id/accept','accept','/:id/reject','reject','delete','/:id','destroy','exports','multer','util','connect-timeout','Router','../../components/auth/service','./mailMessage.controller','get','/describe','isAuthenticated','describe','show','/:id/download','download','post','tracked','mail','mailmessage:create','update','put'];(function(_0x267860,_0x541d9b){var _0x5ebd88=function(_0x3f24f1){while(--_0x3f24f1){_0x267860['push'](_0x267860['shift']());}};_0x5ebd88(++_0x541d9b);}(_0x1599,0xaa));var _0x9159=function(_0x4c3a68,_0x3c8959){_0x4c3a68=_0x4c3a68-0x0;var _0x570e8b=_0x1599[_0x4c3a68];return _0x570e8b;};'use strict';var multer=require(_0x9159('0x0'));var util=require(_0x9159('0x1'));var path=require('path');var timeout=require(_0x9159('0x2'));var express=require('express');var router=express[_0x9159('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x9159('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x9159('0x5'));router[_0x9159('0x6')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x9159('0x7'),auth[_0x9159('0x8')](),controller[_0x9159('0x9')]);router[_0x9159('0x6')]('/:id',auth[_0x9159('0x8')](),controller[_0x9159('0xa')]);router[_0x9159('0x6')](_0x9159('0xb'),auth['isAuthenticated'](),controller[_0x9159('0xc')]);router[_0x9159('0xd')]('/',auth['isAuthenticated'](),interaction[_0x9159('0xe')](_0x9159('0xf'),_0x9159('0x10')),controller['create']);router['put']('/:id',auth['isAuthenticated'](),controller[_0x9159('0x11')]);router[_0x9159('0x12')](_0x9159('0x13'),auth[_0x9159('0x8')](),controller[_0x9159('0x14')]);router['put'](_0x9159('0x15'),auth[_0x9159('0x8')](),controller[_0x9159('0x16')]);router[_0x9159('0x17')](_0x9159('0x18'),auth['isAuthenticated'](),controller[_0x9159('0x19')]);module[_0x9159('0x1a')]=router;
\ No newline at end of file
+var _0x4e70=['show','download','post','mail','mailmessage:create','create','put','update','/:id/accept','accept','/:id/reject','reject','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailMessage.controller','get','isAuthenticated','index','describe','/:id'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x4e70,0x69));var _0x04e7=function(_0x2f45ea,_0x15c656){_0x2f45ea=_0x2f45ea-0x0;var _0x485a84=_0x4e70[_0x2f45ea];return _0x485a84;};'use strict';var multer=require(_0x04e7('0x0'));var util=require(_0x04e7('0x1'));var path=require(_0x04e7('0x2'));var timeout=require(_0x04e7('0x3'));var express=require('express');var router=express[_0x04e7('0x4')]();var fs_extra=require(_0x04e7('0x5'));var auth=require(_0x04e7('0x6'));var interaction=require(_0x04e7('0x7'));var config=require(_0x04e7('0x8'));var controller=require(_0x04e7('0x9'));router[_0x04e7('0xa')]('/',auth[_0x04e7('0xb')](),controller[_0x04e7('0xc')]);router[_0x04e7('0xa')]('/describe',auth[_0x04e7('0xb')](),controller[_0x04e7('0xd')]);router[_0x04e7('0xa')](_0x04e7('0xe'),auth[_0x04e7('0xb')](),controller[_0x04e7('0xf')]);router[_0x04e7('0xa')]('/:id/download',auth['isAuthenticated'](),controller[_0x04e7('0x10')]);router[_0x04e7('0x11')]('/',auth[_0x04e7('0xb')](),interaction['tracked'](_0x04e7('0x12'),_0x04e7('0x13')),controller[_0x04e7('0x14')]);router[_0x04e7('0x15')]('/:id',auth[_0x04e7('0xb')](),controller[_0x04e7('0x16')]);router['put'](_0x04e7('0x17'),auth['isAuthenticated'](),controller[_0x04e7('0x18')]);router[_0x04e7('0x15')](_0x04e7('0x19'),auth[_0x04e7('0xb')](),controller[_0x04e7('0x1a')]);router[_0x04e7('0x1b')](_0x04e7('0xe'),auth[_0x04e7('0xb')](),controller[_0x04e7('0x1c')]);module[_0x04e7('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0db9=['out','BOOLEAN','Email','sequelize','lodash','TEXT','long','medium','ENUM'];(function(_0x557dfd,_0x309570){var _0x275ce2=function(_0x3a60e6){while(--_0x3a60e6){_0x557dfd['push'](_0x557dfd['shift']());}};_0x275ce2(++_0x309570);}(_0x0db9,0xe4));var _0x90db=function(_0x1b8d87,_0x4168fb){_0x1b8d87=_0x1b8d87-0x0;var _0x182b74=_0x0db9[_0x1b8d87];return _0x182b74;};'use strict';var Sequelize=require(_0x90db('0x0'));var _=require(_0x90db('0x1'));module['exports']={'body':{'type':Sequelize[_0x90db('0x2')](_0x90db('0x3')),'allowNull':![]},'plainBody':{'type':Sequelize[_0x90db('0x2')](_0x90db('0x4'))},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x90db('0x5')]('in',_0x90db('0x6')),'defaultValue':_0x90db('0x6'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0x1fe)},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x90db('0x2')](_0x90db('0x3'))},'cc':{'type':Sequelize[_0x90db('0x2')](_0x90db('0x3'))},'bcc':{'type':Sequelize[_0x90db('0x2')]('long')},'subject':{'type':Sequelize[_0x90db('0x2')]},'sentAt':{'type':Sequelize['DATE']},'attach':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'secret':{'type':Sequelize[_0x90db('0x7')],'defaultValue':![]},'readAt':{'type':Sequelize['DATE']},'originTo':{'type':Sequelize[_0x90db('0x2')]('long')},'originCc':{'type':Sequelize[_0x90db('0x2')](_0x90db('0x3'))},'originChannel':{'type':Sequelize[_0x90db('0x5')](_0x90db('0x8'),'Chat'),'defaultValue':'Email','allowNull':![]}};
\ No newline at end of file
+var _0x6af3=['Chat','sequelize','lodash','long','TEXT','medium','BOOLEAN','ENUM','out','STRING','DATE','INTEGER','Email'];(function(_0x4f11cb,_0x14e174){var _0x491488=function(_0x2904a9){while(--_0x2904a9){_0x4f11cb['push'](_0x4f11cb['shift']());}};_0x491488(++_0x14e174);}(_0x6af3,0x194));var _0x36af=function(_0x35367a,_0x578e2e){_0x35367a=_0x35367a-0x0;var _0x847153=_0x6af3[_0x35367a];return _0x847153;};'use strict';var Sequelize=require(_0x36af('0x0'));var _=require(_0x36af('0x1'));module['exports']={'body':{'type':Sequelize['TEXT'](_0x36af('0x2')),'allowNull':![]},'plainBody':{'type':Sequelize[_0x36af('0x3')](_0x36af('0x4'))},'read':{'type':Sequelize[_0x36af('0x5')],'defaultValue':![]},'direction':{'type':Sequelize[_0x36af('0x6')]('in',_0x36af('0x7')),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize[_0x36af('0x8')](0x1fe)},'from':{'type':Sequelize[_0x36af('0x8')]},'to':{'type':Sequelize['TEXT'](_0x36af('0x2'))},'cc':{'type':Sequelize[_0x36af('0x3')](_0x36af('0x2'))},'bcc':{'type':Sequelize[_0x36af('0x3')](_0x36af('0x2'))},'subject':{'type':Sequelize[_0x36af('0x3')]},'sentAt':{'type':Sequelize[_0x36af('0x9')]},'attach':{'type':Sequelize[_0x36af('0xa')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x36af('0x5')],'defaultValue':![]},'readAt':{'type':Sequelize[_0x36af('0x9')]},'originTo':{'type':Sequelize[_0x36af('0x3')]('long')},'originCc':{'type':Sequelize[_0x36af('0x3')]('long')},'originChannel':{'type':Sequelize[_0x36af('0x6')](_0x36af('0xb'),_0x36af('0xc')),'defaultValue':_0x36af('0xb'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c34=['map','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','MailMessage','include','rows','show','params','rawAttributes','includeAll','find','body','describe','create','direction','out','secret','split','MailAccount','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','host','port','secure','authentication','auth','user','pass','service','attachments','join','root','server/files/attachments','ContactId','List\x20not\x20found','SendMail','sendMail','format','accept','mail','read','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','MailInteraction','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','QueryTypes','SELECT','contact','User','fullname','email','interface','SIP/%s','channel','event','EventManager','acceptmessage','reject','MailInteractionId','rejectMessage','motionChannel','rejectmessage','files','tmp','server','message-%s.eml','from','bcc','subject','createdAt','Attachments','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','push','readFileSync','build','download','unlinkSync','moment','util','path','lodash','ioredis','html-to-text','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','html-entities','./mailMessage.socket','register','jayson/promise','client','http','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','end','sendStatus','name','send','index'];(function(_0x31de62,_0x33cc7d){var _0x114ecc=function(_0x21186c){while(--_0x21186c){_0x31de62['push'](_0x31de62['shift']());}};_0x114ecc(++_0x33cc7d);}(_0x8c34,0x75));var _0x48c3=function(_0x4e3b43,_0x1833ed){_0x4e3b43=_0x4e3b43-0x0;var _0x34e900=_0x8c34[_0x4e3b43];return _0x34e900;};'use strict';var emlformat=require('eml-format');var moment=require(_0x48c3('0x0'));var BPromise=require('bluebird');var util=require(_0x48c3('0x1'));var path=require(_0x48c3('0x2'));var fs=require('fs');var _=require(_0x48c3('0x3'));var Redis=require(_0x48c3('0x4'));var htmlToText=require(_0x48c3('0x5'));var qs=require('../../components/parsers/qs');var logger=require(_0x48c3('0x6'))(_0x48c3('0x7'));var interaction_log=require('../../config/logger')(_0x48c3('0x8'));var config=require(_0x48c3('0x9'));var db=require(_0x48c3('0xa'))['db'];config[_0x48c3('0xb')]=_[_0x48c3('0xc')](config[_0x48c3('0xb')],{'host':_0x48c3('0xd'),'port':0x18eb});var socket=require(_0x48c3('0xe'))(new Redis(config[_0x48c3('0xb')]));var htmlEntities=require(_0x48c3('0xf'));require(_0x48c3('0x10'))[_0x48c3('0x11')](socket);var jayson=require(_0x48c3('0x12'));var client=jayson[_0x48c3('0x13')][_0x48c3('0x14')]({'port':0x232c});var client9003=jayson[_0x48c3('0x13')][_0x48c3('0x14')]({'port':0x232b});var client9002=jayson[_0x48c3('0x13')][_0x48c3('0x14')]({'port':0x232a});function respondWithRpcPromise(_0x2f00de,_0x31e403,_0x2dbedd,_0x2f52f7){return new BPromise(function(_0x15bb74,_0x40c17e){var _0x5bff96=_0x2f52f7||client;return _0x5bff96[_0x48c3('0x15')](_0x2f00de,_0x2dbedd)[_0x48c3('0x16')](function(_0x12ee36){logger['info'](_0x48c3('0x17'),_0x31e403,_0x48c3('0x18'));logger['debug'](_0x48c3('0x19'),_0x31e403,_0x48c3('0x18'),JSON[_0x48c3('0x1a')](_0x12ee36));if(_0x12ee36[_0x48c3('0x1b')]){if(_0x12ee36[_0x48c3('0x1b')]['code']===0x1f4){logger[_0x48c3('0x1b')](_0x48c3('0x17'),_0x31e403,_0x12ee36[_0x48c3('0x1b')]['message']);return _0x40c17e(_0x12ee36[_0x48c3('0x1b')][_0x48c3('0x1c')]);}logger[_0x48c3('0x1b')](_0x48c3('0x17'),_0x31e403,_0x12ee36[_0x48c3('0x1b')][_0x48c3('0x1c')]);return _0x15bb74(_0x12ee36[_0x48c3('0x1b')]['message']);}else{logger[_0x48c3('0x1d')]('MailMessage,\x20%s,\x20%s',_0x31e403,'request\x20sent');_0x15bb74(_0x12ee36[_0x48c3('0x1e')][_0x48c3('0x1c')]);}})[_0x48c3('0x1f')](function(_0x640321){logger['error']('MailMessage,\x20%s,\x20%s',_0x31e403,_0x640321);_0x40c17e(_0x640321);});});}function respondWithResult(_0x543bcb,_0x3c1866){_0x3c1866=_0x3c1866||0xc8;return function(_0x3364c4){if(_0x3364c4){return _0x543bcb[_0x48c3('0x20')](_0x3c1866)[_0x48c3('0x21')](_0x3364c4);}};}function respondWithFilteredResult(_0x33ec92,_0x157484){return function(_0x4df968){if(_0x4df968){var _0x4337e9=typeof _0x157484[_0x48c3('0x22')]===_0x48c3('0x23')&&typeof _0x157484[_0x48c3('0x24')]==='undefined';var _0x486d7c=_0x4df968[_0x48c3('0x25')];var _0x2d37e5=_0x4337e9?0x0:_0x157484[_0x48c3('0x22')];var _0x5085ef=_0x4337e9?_0x4df968[_0x48c3('0x25')]:_0x157484['offset']+_0x157484[_0x48c3('0x24')];var _0x3cb9ca;if(_0x5085ef>=_0x486d7c){_0x5085ef=_0x486d7c;_0x3cb9ca=0xc8;}else{_0x3cb9ca=0xce;}_0x33ec92[_0x48c3('0x20')](_0x3cb9ca);return _0x33ec92[_0x48c3('0x26')](_0x48c3('0x27'),_0x2d37e5+'-'+_0x5085ef+'/'+_0x486d7c)[_0x48c3('0x21')](_0x4df968);}return null;};}function saveUpdates(_0x38f049){return function(_0x3813b8){if(_0x3813b8){return _0x3813b8[_0x48c3('0x28')](_0x38f049)[_0x48c3('0x16')](function(_0x33ad54){return _0x33ad54;});}return null;};}function removeEntity(_0x1c0384){return function(_0x323c98){if(_0x323c98){return _0x323c98[_0x48c3('0x29')]()[_0x48c3('0x16')](function(){_0x1c0384[_0x48c3('0x20')](0xcc)[_0x48c3('0x2a')]();});}};}function handleEntityNotFound(_0x2bc9a6){return function(_0x2b4f01){if(!_0x2b4f01){_0x2bc9a6[_0x48c3('0x2b')](0x194);}return _0x2b4f01;};}function handleError(_0x2d251e,_0x10ed64){_0x10ed64=_0x10ed64||0x1f4;return function(_0x1fccbe){logger[_0x48c3('0x1b')](_0x1fccbe['stack']);if(_0x1fccbe[_0x48c3('0x2c')]){delete _0x1fccbe[_0x48c3('0x2c')];}_0x2d251e[_0x48c3('0x20')](_0x10ed64)[_0x48c3('0x2d')](_0x1fccbe);};}exports[_0x48c3('0x2e')]=function(_0x480fda,_0x35e1df){var _0x473824={},_0x4981e9={},_0x318fd3={'count':0x0,'rows':[]};var _0x5e3049=_[_0x48c3('0x2f')](db['MailMessage']['rawAttributes'],function(_0x559ebe){return{'name':_0x559ebe[_0x48c3('0x30')],'type':_0x559ebe[_0x48c3('0x31')][_0x48c3('0x32')]};});_0x4981e9['model']=_[_0x48c3('0x2f')](_0x5e3049,_0x48c3('0x2c'));_0x4981e9[_0x48c3('0x33')]=_[_0x48c3('0x34')](_0x480fda['query']);_0x4981e9[_0x48c3('0x35')]=_[_0x48c3('0x36')](_0x4981e9[_0x48c3('0x37')],_0x4981e9[_0x48c3('0x33')]);_0x473824[_0x48c3('0x38')]=_[_0x48c3('0x36')](_0x4981e9[_0x48c3('0x37')],qs[_0x48c3('0x39')](_0x480fda[_0x48c3('0x33')]['fields']));_0x473824[_0x48c3('0x38')]=_0x473824[_0x48c3('0x38')][_0x48c3('0x3a')]?_0x473824[_0x48c3('0x38')]:_0x4981e9[_0x48c3('0x37')];if(!_0x480fda[_0x48c3('0x33')][_0x48c3('0x3b')](_0x48c3('0x3c'))){_0x473824['limit']=qs['limit'](_0x480fda[_0x48c3('0x33')][_0x48c3('0x24')]);_0x473824[_0x48c3('0x22')]=qs[_0x48c3('0x22')](_0x480fda['query'][_0x48c3('0x22')]);}_0x473824[_0x48c3('0x3d')]=qs[_0x48c3('0x3e')](_0x480fda['query'][_0x48c3('0x3e')]);_0x473824['where']=qs[_0x48c3('0x35')](_[_0x48c3('0x3f')](_0x480fda['query'],_0x4981e9[_0x48c3('0x35')]),_0x5e3049);if(_0x480fda[_0x48c3('0x33')][_0x48c3('0x40')]){_0x473824[_0x48c3('0x41')]=_['merge'](_0x473824[_0x48c3('0x41')],{'$or':_[_0x48c3('0x2f')](_0x5e3049,function(_0x24b5d6){if(_0x24b5d6[_0x48c3('0x31')]!=='VIRTUAL'){var _0xee5076={};_0xee5076[_0x24b5d6[_0x48c3('0x2c')]]={'$like':'%'+_0x480fda['query'][_0x48c3('0x40')]+'%'};return _0xee5076;}})});}_0x473824=_[_0x48c3('0x42')]({},_0x473824,_0x480fda[_0x48c3('0x43')]);var _0x5a9dea={'where':_0x473824['where']};return db[_0x48c3('0x44')][_0x48c3('0x25')](_0x5a9dea)['then'](function(_0x2c8e03){_0x318fd3[_0x48c3('0x25')]=_0x2c8e03;if(_0x480fda[_0x48c3('0x33')]['includeAll']){_0x473824[_0x48c3('0x45')]=[{'all':!![]}];}return db[_0x48c3('0x44')]['findAll'](_0x473824);})['then'](function(_0x99535e){_0x318fd3[_0x48c3('0x46')]=_0x99535e;return _0x318fd3;})['then'](respondWithFilteredResult(_0x35e1df,_0x473824))['catch'](handleError(_0x35e1df,null));};exports[_0x48c3('0x47')]=function(_0x48ef65,_0x46eec5){var _0x4113a0={'raw':!![],'where':{'id':_0x48ef65[_0x48c3('0x48')]['id']}},_0x2834c3={};_0x2834c3[_0x48c3('0x37')]=_[_0x48c3('0x34')](db['MailMessage'][_0x48c3('0x49')]);_0x2834c3[_0x48c3('0x33')]=_[_0x48c3('0x34')](_0x48ef65[_0x48c3('0x33')]);_0x2834c3[_0x48c3('0x35')]=_[_0x48c3('0x36')](_0x2834c3[_0x48c3('0x37')],_0x2834c3[_0x48c3('0x33')]);_0x4113a0[_0x48c3('0x38')]=_[_0x48c3('0x36')](_0x2834c3[_0x48c3('0x37')],qs['fields'](_0x48ef65[_0x48c3('0x33')][_0x48c3('0x39')]));_0x4113a0['attributes']=_0x4113a0[_0x48c3('0x38')][_0x48c3('0x3a')]?_0x4113a0[_0x48c3('0x38')]:_0x2834c3[_0x48c3('0x37')];if(_0x48ef65[_0x48c3('0x33')][_0x48c3('0x4a')]){_0x4113a0['include']=[{'all':!![]}];}_0x4113a0=_[_0x48c3('0x42')]({},_0x4113a0,_0x48ef65['options']);return db[_0x48c3('0x44')][_0x48c3('0x4b')](_0x4113a0)[_0x48c3('0x16')](handleEntityNotFound(_0x46eec5,null))[_0x48c3('0x16')](respondWithResult(_0x46eec5,null))[_0x48c3('0x1f')](handleError(_0x46eec5,null));};exports[_0x48c3('0x28')]=function(_0x18e98d,_0x411682){if(_0x18e98d['body']['id']){delete _0x18e98d[_0x48c3('0x4c')]['id'];}return db[_0x48c3('0x44')][_0x48c3('0x4b')]({'where':{'id':_0x18e98d[_0x48c3('0x48')]['id']}})[_0x48c3('0x16')](handleEntityNotFound(_0x411682,null))[_0x48c3('0x16')](saveUpdates(_0x18e98d['body'],null))[_0x48c3('0x16')](respondWithResult(_0x411682,null))[_0x48c3('0x1f')](handleError(_0x411682,null));};exports[_0x48c3('0x29')]=function(_0x53a60b,_0xac3c7e){return db[_0x48c3('0x44')][_0x48c3('0x4b')]({'where':{'id':_0x53a60b[_0x48c3('0x48')]['id']}})[_0x48c3('0x16')](handleEntityNotFound(_0xac3c7e,null))[_0x48c3('0x16')](removeEntity(_0xac3c7e,null))[_0x48c3('0x1f')](handleError(_0xac3c7e,null));};exports[_0x48c3('0x4d')]=function(_0x5543a2,_0x3ed04c){return db[_0x48c3('0x44')][_0x48c3('0x4d')]()[_0x48c3('0x16')](respondWithResult(_0x3ed04c,null))[_0x48c3('0x1f')](handleError(_0x3ed04c,null));};exports[_0x48c3('0x4e')]=function(_0xf815ce,_0x570d05){return db[_0x48c3('0x44')]['create'](_0xf815ce['body'])[_0x48c3('0x16')](function(_0x26f21f){if(_0x26f21f){if(_0x26f21f[_0x48c3('0x4f')]===_0x48c3('0x50')&&!_0x26f21f[_0x48c3('0x51')]){var _0x2f8150,_0x251d31,_0x46a2b0;if(_0xf815ce[_0x48c3('0x4c')]['to']){_0x251d31=_0xf815ce[_0x48c3('0x4c')]['to'][_0x48c3('0x52')](',')[0x0];}return db[_0x48c3('0x53')]['findOne']({'where':{'id':_0x26f21f[_0x48c3('0x54')]},'include':[{'model':db[_0x48c3('0x55')],'as':_0x48c3('0x56'),'include':[{'model':db[_0x48c3('0x57')],'as':_0x48c3('0x58'),'where':{'email':_0x251d31},'limit':0x1,'order':[[_0x48c3('0x59'),_0x48c3('0x5a')]]}]},{'model':db[_0x48c3('0x5b')],'as':_0x48c3('0x5c'),'raw':!![]}]})[_0x48c3('0x16')](function(_0x509664){_0x2f8150=_0x509664;if(_0x2f8150&&_0x2f8150[_0x48c3('0x5c')]){var _0x25468e={'tls':{'rejectUnauthorized':![]}};if(_[_0x48c3('0x5d')](_0x2f8150[_0x48c3('0x5c')]['service'])){_0x25468e[_0x48c3('0x5e')]=_0x2f8150[_0x48c3('0x5c')][_0x48c3('0x5e')];_0x25468e['port']=_0x2f8150['Smtp'][_0x48c3('0x5f')];_0x25468e[_0x48c3('0x60')]=_0x2f8150[_0x48c3('0x5c')][_0x48c3('0x60')];if(_0x2f8150['Smtp'][_0x48c3('0x61')]){_0x25468e[_0x48c3('0x62')]={'user':_0x2f8150[_0x48c3('0x5c')][_0x48c3('0x63')],'pass':_0x2f8150[_0x48c3('0x5c')][_0x48c3('0x64')]};}}else{_0x25468e[_0x48c3('0x65')]=_0x2f8150[_0x48c3('0x5c')]['service'];_0x25468e[_0x48c3('0x62')]={'user':_0x2f8150[_0x48c3('0x5c')][_0x48c3('0x63')],'pass':_0x2f8150[_0x48c3('0x5c')]['pass']};_0x25468e[_0x48c3('0x60')]=_0x2f8150[_0x48c3('0x5c')][_0x48c3('0x60')];}if(_0xf815ce[_0x48c3('0x4c')][_0x48c3('0x66')]&&_0xf815ce[_0x48c3('0x4c')][_0x48c3('0x66')][_0x48c3('0x3a')]){for(var _0x2ce822=0x0;_0x2ce822<_0xf815ce['body'][_0x48c3('0x66')]['length'];_0x2ce822+=0x1){_0xf815ce[_0x48c3('0x4c')][_0x48c3('0x66')][_0x2ce822]={'filename':_0xf815ce[_0x48c3('0x4c')]['attachments'][_0x2ce822]['name'],'path':path[_0x48c3('0x67')](config[_0x48c3('0x68')],_0x48c3('0x69'),_0xf815ce['body'][_0x48c3('0x66')][_0x2ce822]['basename'])};}}_0x46a2b0={'account':_0x25468e,'message':_0xf815ce[_0x48c3('0x4c')]};return;}})[_0x48c3('0x16')](function(){if(_0x2f8150[_0x48c3('0x56')]){if(_0x2f8150[_0x48c3('0x56')]['Contacts'][_0x48c3('0x3a')]){_0x46a2b0[_0x48c3('0x1c')][_0x48c3('0x6a')]=_0x2f8150[_0x48c3('0x56')][_0x48c3('0x58')][0x0]['id'];return _0x2f8150['List'][_0x48c3('0x58')][0x0];}else{return db[_0x48c3('0x57')][_0x48c3('0x4e')](_[_0x48c3('0xc')](_0xf815ce[_0x48c3('0x4c')],{'firstName':_0xf815ce[_0x48c3('0x4c')]['to'],'email':_0xf815ce[_0x48c3('0x4c')]['to'],'phone':_0xf815ce[_0x48c3('0x4c')]['to'],'ListId':_0x2f8150['ListId']}))[_0x48c3('0x16')](function(_0x2a5284){_0x46a2b0[_0x48c3('0x1c')][_0x48c3('0x6a')]=_0x2a5284['id'];return;});}}else{throw new Error(_0x48c3('0x6b'));}})[_0x48c3('0x16')](function(){if(_0x46a2b0){return respondWithRpcPromise(_0x48c3('0x6c'),_0x48c3('0x6d'),_0x46a2b0,client9003)['then'](function(_0x5a70f4){return _0x26f21f[_0x48c3('0x28')]({'read':!![],'messageId':_0x5a70f4['messageId'],'ContactId':_0x46a2b0['message'][_0x48c3('0x6a')],'sentAt':moment()[_0x48c3('0x6e')]('YYYY-MM-DD\x20HH:mm:ss')});})[_0x48c3('0x1f')](function(_0x3a9aa5){logger[_0x48c3('0x1b')]('%s',JSON[_0x48c3('0x1a')](_0x3a9aa5));return _0x26f21f;});}return _0x26f21f;});}return _0x26f21f;}})['then'](respondWithResult(_0x570d05,0xc9))[_0x48c3('0x1f')](handleError(_0x570d05,null));};exports[_0x48c3('0x6f')]=function(_0x1dd01f,_0x41a9aa){var _0x17e286={'agent':{},'channel':_0x48c3('0x70')};if(_0x1dd01f[_0x48c3('0x4c')]['id']){delete _0x1dd01f[_0x48c3('0x4c')]['id'];}_0x1dd01f[_0x48c3('0x4c')][_0x48c3('0x71')]=!![];_0x1dd01f[_0x48c3('0x4c')]['readAt']=moment()[_0x48c3('0x6e')](_0x48c3('0x72'));_0x1dd01f['body']['UserId']=_0x1dd01f[_0x48c3('0x4c')][_0x48c3('0x73')]||_0x1dd01f[_0x48c3('0x63')]['id'];_0x17e286[_0x48c3('0x74')]['id']=_0x1dd01f['body']['UserId'];return db['MailMessage'][_0x48c3('0x4b')]({'where':{'id':_0x1dd01f[_0x48c3('0x48')]['id'],'UserId':null}})[_0x48c3('0x16')](handleEntityNotFound(_0x41a9aa,null))[_0x48c3('0x16')](saveUpdates(_0x1dd01f[_0x48c3('0x4c')],null))[_0x48c3('0x16')](function(_0x498560){if(_0x498560){_0x17e286['message']=_0x498560[_0x48c3('0x75')]({'plain':!![]});return db[_0x48c3('0x76')]['find']({'where':{'id':_0x498560['MailInteractionId']}});}return null;})[_0x48c3('0x16')](handleEntityNotFound(_0x41a9aa,null))[_0x48c3('0x16')](function(_0x49b06d){if(_0x49b06d){return _0x49b06d[_0x48c3('0x28')]({'UserId':_0x1dd01f[_0x48c3('0x4c')]['UserId'],'read1stAt':_[_0x48c3('0x5d')](_0x49b06d[_0x48c3('0x77')])?moment()['format'](_0x48c3('0x72')):undefined});}return null;})[_0x48c3('0x16')](function(_0x4e6883){if(_0x4e6883){_0x17e286[_0x48c3('0x78')]=_0x4e6883[_0x48c3('0x75')]({'plain':!![]});interaction_log[_0x48c3('0x1d')](_0x48c3('0x79'),_0x1dd01f[_0x48c3('0x63')]['id'],_0x1dd01f[_0x48c3('0x63')][_0x48c3('0x2c')],_0x1dd01f[_0x48c3('0x63')][_0x48c3('0x7a')],_0x17e286[_0x48c3('0x78')]['id'],_0x1dd01f[_0x48c3('0x4c')]?JSON[_0x48c3('0x1a')](_0x1dd01f['body']):_0x48c3('0x7b'));return respondWithRpcPromise(_0x48c3('0x7c'),_0x48c3('0x7d'),_0x17e286);}return null;})[_0x48c3('0x16')](function(_0x42bebf){var _0x507cdf=_0x48c3('0x7e')+_0x42bebf['message'][_0x48c3('0x6a')];return db[_0x48c3('0x7f')][_0x48c3('0x33')](_0x507cdf,{'type':db['Sequelize'][_0x48c3('0x80')][_0x48c3('0x81')],'raw':!![]})[_0x48c3('0x16')](function(_0x573170){return _0x573170;});})[_0x48c3('0x16')](function(_0x2a97c0){if(_0x2a97c0){_0x17e286['message'][_0x48c3('0x82')]=_0x2a97c0[0x0];if(!_0x1dd01f[_0x48c3('0x4c')]['UserId'])return;return db[_0x48c3('0x83')]['find']({'where':{'id':_0x1dd01f[_0x48c3('0x4c')]['UserId'],'role':_0x48c3('0x74')},'attributes':['id',_0x48c3('0x2c'),_0x48c3('0x84'),_0x48c3('0x85'),'internal'],'raw':!![]});}return null;})['then'](function(_0x2ad36){if(!_0x2ad36)return null;_0x17e286[_0x48c3('0x1c')][_0x48c3('0x74')]=_0x2ad36;return _0x17e286;})[_0x48c3('0x16')](function(_0x4878c4){if(_0x4878c4){if(_0x1dd01f['body']['manual']){_0x17e286[_0x48c3('0x1c')][_0x48c3('0x86')]=util[_0x48c3('0x6e')](_0x48c3('0x87'),_0x1dd01f[_0x48c3('0x63')][_0x48c3('0x2c')]);_0x17e286['message'][_0x48c3('0x88')]=_0x17e286['channel'];_0x17e286['message']['motionChannel']=_0x17e286['channel'];_0x17e286[_0x48c3('0x1c')][_0x48c3('0x89')]=_0x48c3('0x6f');_0x17e286['message'][_0x48c3('0x4c')]=htmlToText['fromString'](_0x17e286[_0x48c3('0x1c')]['body']);return respondWithRpcPromise(_0x48c3('0x8a'),'EventManager',{'event':_0x48c3('0x8b'),'message':_0x17e286[_0x48c3('0x1c')]},client9002)['then'](function(){return _0x17e286;});}return _0x17e286;}return null;})[_0x48c3('0x16')](respondWithResult(_0x41a9aa,null))['catch'](handleError(_0x41a9aa,null));};exports[_0x48c3('0x8c')]=function(_0x4d9404,_0xd3aa6d){var _0x5b6edd={'agent':{},'channel':_0x48c3('0x70')};if(_0x4d9404[_0x48c3('0x4c')]['id']){delete _0x4d9404[_0x48c3('0x4c')]['id'];}_0x4d9404[_0x48c3('0x4c')]['UserId']=_0x4d9404['body'][_0x48c3('0x73')]||_0x4d9404['user']['id'];_0x5b6edd[_0x48c3('0x74')]['id']=_0x4d9404[_0x48c3('0x4c')][_0x48c3('0x73')];return db[_0x48c3('0x44')][_0x48c3('0x4b')]({'where':{'id':_0x4d9404[_0x48c3('0x48')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0xd3aa6d,null))[_0x48c3('0x16')](function(_0x1a629c){if(_0x1a629c){_0x5b6edd[_0x48c3('0x1c')]=_0x1a629c[_0x48c3('0x75')]({'plain':!![]});return db[_0x48c3('0x76')][_0x48c3('0x4b')]({'where':{'id':_0x1a629c[_0x48c3('0x8d')]}});}return null;})['then'](handleEntityNotFound(_0xd3aa6d,null))[_0x48c3('0x16')](function(_0x37ba9a){if(_0x37ba9a){_0x5b6edd[_0x48c3('0x78')]=_0x37ba9a[_0x48c3('0x75')]({'plain':!![]});interaction_log[_0x48c3('0x1d')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x4d9404[_0x48c3('0x63')]['id'],_0x4d9404[_0x48c3('0x63')]['name'],_0x4d9404['user'][_0x48c3('0x7a')],_0x5b6edd[_0x48c3('0x78')]['id'],_0x4d9404[_0x48c3('0x4c')]?JSON[_0x48c3('0x1a')](_0x4d9404[_0x48c3('0x4c')]):_0x48c3('0x7b'));return respondWithRpcPromise('RejectMessage',_0x48c3('0x8e'),_0x5b6edd);}return null;})[_0x48c3('0x16')](function(_0x1ca601){var _0x467495='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x1ca601[_0x48c3('0x1c')]['ContactId'];return db[_0x48c3('0x7f')]['query'](_0x467495,{'type':db['Sequelize'][_0x48c3('0x80')][_0x48c3('0x81')],'raw':!![]})[_0x48c3('0x16')](function(_0x5e48fb){return _0x5e48fb;});})[_0x48c3('0x16')](function(_0xc46c27){if(_0xc46c27){_0x5b6edd['message'][_0x48c3('0x82')]=_0xc46c27[0x0];if(!_0x4d9404[_0x48c3('0x4c')]['UserId'])return;return db[_0x48c3('0x83')]['find']({'where':{'id':_0x4d9404[_0x48c3('0x4c')]['UserId'],'role':'agent'},'attributes':['id','name','fullname','email','internal'],'raw':!![]});}return null;})[_0x48c3('0x16')](function(_0x58f0ea){if(!_0x58f0ea)return null;_0x5b6edd[_0x48c3('0x1c')][_0x48c3('0x74')]=_0x58f0ea;return _0x5b6edd;})[_0x48c3('0x16')](function(_0x346f98){if(_0x346f98){_0x346f98[_0x48c3('0x1c')][_0x48c3('0x86')]=util[_0x48c3('0x6e')](_0x48c3('0x87'),_0x4d9404['user'][_0x48c3('0x2c')]);_0x346f98[_0x48c3('0x1c')]['channel']=_0x5b6edd[_0x48c3('0x88')];_0x346f98[_0x48c3('0x1c')][_0x48c3('0x8f')]=_0x5b6edd[_0x48c3('0x88')];_0x346f98[_0x48c3('0x1c')]['event']=_0x48c3('0x8c');_0x346f98['message'][_0x48c3('0x4c')]=htmlToText['fromString'](_0x5b6edd['message'][_0x48c3('0x4c')]);respondWithRpcPromise(_0x48c3('0x8a'),_0x48c3('0x8a'),{'event':_0x48c3('0x90'),'message':_0x346f98['message']},client9002);return _0x5b6edd;}return null;})['then'](respondWithResult(_0xd3aa6d,null))[_0x48c3('0x1f')](handleError(_0xd3aa6d,null));};exports['download']=function(_0x823600,_0x3f487c){var _0x270522=moment()['unix']()['toString']();var _0x2150df=path[_0x48c3('0x67')](config[_0x48c3('0x68')],'server',_0x48c3('0x91'),_0x48c3('0x92'));var _0x121582=path[_0x48c3('0x67')](config[_0x48c3('0x68')],_0x48c3('0x93'),'files',_0x48c3('0x66'));var _0x42d057=util[_0x48c3('0x6e')](_0x48c3('0x94'),_0x270522);return db['MailMessage'][_0x48c3('0x4b')]({'where':{'id':_0x823600[_0x48c3('0x48')]['id']},'attributes':['id',_0x48c3('0x4c'),_0x48c3('0x95'),'to','cc',_0x48c3('0x96'),_0x48c3('0x97'),_0x48c3('0x98')],'include':_0x823600[_0x48c3('0x33')][_0x48c3('0x66')]?[{'model':db['Attachment'],'as':_0x48c3('0x99')}]:undefined})[_0x48c3('0x16')](handleEntityNotFound(_0x3f487c,null))[_0x48c3('0x16')](function(_0x340529){if(_0x340529){var _0x32c59f=_0x340529;var _0x2f562c={'from':_0x32c59f[_0x48c3('0x95')],'to':_0x32c59f['to'],'subject':_0x32c59f[_0x48c3('0x97')],'html':htmlEntities[_0x48c3('0x9a')](_0x32c59f['body']),'headers':{'Date':moment(_0x32c59f['createdAt'])['format'](_0x48c3('0x9b'))},'attachments':[]};if(_0x340529['cc']){_0x2f562c[_0x48c3('0x9c')]['Cc']=_0x340529['cc'];}if(_0x340529[_0x48c3('0x96')]){_0x2f562c[_0x48c3('0x9c')][_0x48c3('0x9d')]=_0x340529[_0x48c3('0x96')];}return new BPromise(function(_0x1f860d,_0x5a4592){if(_0x340529['Attachments']){for(var _0x24a49c=0x0;_0x24a49c<_0x340529[_0x48c3('0x99')][_0x48c3('0x3a')];_0x24a49c++){var _0x4b9577=_0x340529[_0x48c3('0x99')][_0x24a49c];var _0x90cd09=path[_0x48c3('0x67')](_0x121582,_0x4b9577[_0x48c3('0x9e')]);if(fs['existsSync'](_0x90cd09)){_0x2f562c[_0x48c3('0x66')][_0x48c3('0x9f')]({'name':_0x4b9577['name'],'contentType':_0x4b9577[_0x48c3('0x31')],'data':fs[_0x48c3('0xa0')](_0x90cd09)});}}}emlformat[_0x48c3('0xa1')](_0x2f562c,function(_0x1a9c30,_0xfde3b8){if(_0x1a9c30)return _0x5a4592(_0x1a9c30);fs['writeFileSync'](path[_0x48c3('0x67')](_0x2150df,_0x42d057),_0xfde3b8);return _0x1f860d(_0xfde3b8);});});}})['then'](function(_0x373422){if(_0x373422){return _0x3f487c[_0x48c3('0xa2')](path[_0x48c3('0x67')](_0x2150df,_0x42d057),_0x42d057,function(_0x5f4244){if(!_0x5f4244)fs[_0x48c3('0xa3')](path[_0x48c3('0x67')](_0x2150df,_0x42d057));});}})[_0x48c3('0x1f')](handleError(_0x3f487c,null));};
\ No newline at end of file
+var _0x9957=['../../config/logger','mail-interactions','../../config/environment','../../mysqldb','redis','localhost','./mailMessage.socket','register','jayson/promise','client','http','request','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','json','offset','undefined','limit','count','status','set','Content-Range','update','end','sendStatus','stack','name','send','index','MailMessage','rawAttributes','fieldName','key','model','map','keys','intersection','attributes','fields','query','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','then','includeAll','include','findAll','rows','catch','options','find','params','body','destroy','describe','create','direction','out','secret','split','MailAccount','findOne','List','CmContact','Contacts','updatedAt','MailServerOut','Smtp','isNil','service','host','port','secure','authentication','user','auth','attachments','join','basename','defaults','List\x20not\x20found','SendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','mail','readAt','UserId','get','MailInteraction','MailInteractionId','read1stAt','interaction','role','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','contact','User','email','internal','interface','SIP/%s','channel','event','accept','fromString','EventManager','reject','agent','rejectMessage','rejectmessage','download','toString','root','server','files','tmp','message-%s.eml','from','bcc','subject','createdAt','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','push','build','eml-format','moment','bluebird','util','lodash','ioredis','html-to-text','../../components/parsers/qs','api'];(function(_0x36c041,_0x266f6b){var _0x37d15f=function(_0x62d917){while(--_0x62d917){_0x36c041['push'](_0x36c041['shift']());}};_0x37d15f(++_0x266f6b);}(_0x9957,0x93));var _0x7995=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x9957[_0x6131cd];return _0x47e916;};'use strict';var emlformat=require(_0x7995('0x0'));var moment=require(_0x7995('0x1'));var BPromise=require(_0x7995('0x2'));var util=require(_0x7995('0x3'));var path=require('path');var fs=require('fs');var _=require(_0x7995('0x4'));var Redis=require(_0x7995('0x5'));var htmlToText=require(_0x7995('0x6'));var qs=require(_0x7995('0x7'));var logger=require('../../config/logger')(_0x7995('0x8'));var interaction_log=require(_0x7995('0x9'))(_0x7995('0xa'));var config=require(_0x7995('0xb'));var db=require(_0x7995('0xc'))['db'];config[_0x7995('0xd')]=_['defaults'](config[_0x7995('0xd')],{'host':_0x7995('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7995('0xd')]));require(_0x7995('0xf'))[_0x7995('0x10')](socket);var jayson=require(_0x7995('0x11'));var client=jayson[_0x7995('0x12')][_0x7995('0x13')]({'port':0x232c});var client9003=jayson[_0x7995('0x12')]['http']({'port':0x232b});var client9002=jayson[_0x7995('0x12')][_0x7995('0x13')]({'port':0x232a});function respondWithRpcPromise(_0x581f22,_0xb0c872,_0x2cb37a,_0x19a27e){return new BPromise(function(_0x385f00,_0x281576){var _0x23999f=_0x19a27e||client;return _0x23999f[_0x7995('0x14')](_0x581f22,_0x2cb37a)['then'](function(_0x58f5ad){logger[_0x7995('0x15')](_0x7995('0x16'),_0xb0c872,_0x7995('0x17'));logger[_0x7995('0x18')](_0x7995('0x19'),_0xb0c872,_0x7995('0x17'),JSON[_0x7995('0x1a')](_0x58f5ad));if(_0x58f5ad[_0x7995('0x1b')]){if(_0x58f5ad['error'][_0x7995('0x1c')]===0x1f4){logger['error'](_0x7995('0x16'),_0xb0c872,_0x58f5ad[_0x7995('0x1b')][_0x7995('0x1d')]);return _0x281576(_0x58f5ad[_0x7995('0x1b')][_0x7995('0x1d')]);}logger[_0x7995('0x1b')]('MailMessage,\x20%s,\x20%s',_0xb0c872,_0x58f5ad['error'][_0x7995('0x1d')]);return _0x385f00(_0x58f5ad['error']['message']);}else{logger[_0x7995('0x15')](_0x7995('0x16'),_0xb0c872,'request\x20sent');_0x385f00(_0x58f5ad[_0x7995('0x1e')]['message']);}})['catch'](function(_0x3e4c54){logger[_0x7995('0x1b')](_0x7995('0x16'),_0xb0c872,_0x3e4c54);_0x281576(_0x3e4c54);});});}function respondWithResult(_0x1a8568,_0x460924){_0x460924=_0x460924||0xc8;return function(_0x1c278a){if(_0x1c278a){return _0x1a8568['status'](_0x460924)[_0x7995('0x1f')](_0x1c278a);}};}function respondWithFilteredResult(_0x46ee4b,_0x204507){return function(_0x285437){if(_0x285437){var _0x563799=typeof _0x204507[_0x7995('0x20')]===_0x7995('0x21')&&typeof _0x204507[_0x7995('0x22')]==='undefined';var _0x39df42=_0x285437[_0x7995('0x23')];var _0x401dc3=_0x563799?0x0:_0x204507[_0x7995('0x20')];var _0x3a3fcf=_0x563799?_0x285437[_0x7995('0x23')]:_0x204507['offset']+_0x204507[_0x7995('0x22')];var _0x5911c3;if(_0x3a3fcf>=_0x39df42){_0x3a3fcf=_0x39df42;_0x5911c3=0xc8;}else{_0x5911c3=0xce;}_0x46ee4b[_0x7995('0x24')](_0x5911c3);return _0x46ee4b[_0x7995('0x25')](_0x7995('0x26'),_0x401dc3+'-'+_0x3a3fcf+'/'+_0x39df42)[_0x7995('0x1f')](_0x285437);}return null;};}function saveUpdates(_0x11c1eb){return function(_0x4b6f99){if(_0x4b6f99){return _0x4b6f99[_0x7995('0x27')](_0x11c1eb)['then'](function(_0x456a28){return _0x456a28;});}return null;};}function removeEntity(_0x3250e0){return function(_0x4253e5){if(_0x4253e5){return _0x4253e5['destroy']()['then'](function(){_0x3250e0['status'](0xcc)[_0x7995('0x28')]();});}};}function handleEntityNotFound(_0xe6b0b3){return function(_0x327a81){if(!_0x327a81){_0xe6b0b3[_0x7995('0x29')](0x194);}return _0x327a81;};}function handleError(_0x2e3493,_0x1ca460){_0x1ca460=_0x1ca460||0x1f4;return function(_0x538841){logger['error'](_0x538841[_0x7995('0x2a')]);if(_0x538841['name']){delete _0x538841[_0x7995('0x2b')];}_0x2e3493[_0x7995('0x24')](_0x1ca460)[_0x7995('0x2c')](_0x538841);};}exports[_0x7995('0x2d')]=function(_0x1f7d27,_0x510841){var _0x44309d={},_0x33e24e={},_0x5dd802={'count':0x0,'rows':[]};var _0x48db25=_['map'](db[_0x7995('0x2e')][_0x7995('0x2f')],function(_0x4a176f){return{'name':_0x4a176f[_0x7995('0x30')],'type':_0x4a176f['type'][_0x7995('0x31')]};});_0x33e24e[_0x7995('0x32')]=_[_0x7995('0x33')](_0x48db25,'name');_0x33e24e['query']=_[_0x7995('0x34')](_0x1f7d27['query']);_0x33e24e['filters']=_[_0x7995('0x35')](_0x33e24e[_0x7995('0x32')],_0x33e24e['query']);_0x44309d[_0x7995('0x36')]=_[_0x7995('0x35')](_0x33e24e[_0x7995('0x32')],qs[_0x7995('0x37')](_0x1f7d27[_0x7995('0x38')]['fields']));_0x44309d[_0x7995('0x36')]=_0x44309d[_0x7995('0x36')][_0x7995('0x39')]?_0x44309d[_0x7995('0x36')]:_0x33e24e['model'];if(!_0x1f7d27[_0x7995('0x38')][_0x7995('0x3a')](_0x7995('0x3b'))){_0x44309d[_0x7995('0x22')]=qs[_0x7995('0x22')](_0x1f7d27[_0x7995('0x38')]['limit']);_0x44309d[_0x7995('0x20')]=qs[_0x7995('0x20')](_0x1f7d27[_0x7995('0x38')][_0x7995('0x20')]);}_0x44309d[_0x7995('0x3c')]=qs[_0x7995('0x3d')](_0x1f7d27[_0x7995('0x38')][_0x7995('0x3d')]);_0x44309d[_0x7995('0x3e')]=qs[_0x7995('0x3f')](_[_0x7995('0x40')](_0x1f7d27[_0x7995('0x38')],_0x33e24e[_0x7995('0x3f')]),_0x48db25);if(_0x1f7d27['query']['filter']){_0x44309d[_0x7995('0x3e')]=_[_0x7995('0x41')](_0x44309d['where'],{'$or':_['map'](_0x48db25,function(_0x3f8522){if(_0x3f8522['type']!=='VIRTUAL'){var _0x23da6b={};_0x23da6b[_0x3f8522[_0x7995('0x2b')]]={'$like':'%'+_0x1f7d27[_0x7995('0x38')]['filter']+'%'};return _0x23da6b;}})});}_0x44309d=_[_0x7995('0x41')]({},_0x44309d,_0x1f7d27['options']);var _0x3993b5={'where':_0x44309d['where']};return db['MailMessage'][_0x7995('0x23')](_0x3993b5)[_0x7995('0x42')](function(_0xc04e5){_0x5dd802[_0x7995('0x23')]=_0xc04e5;if(_0x1f7d27['query'][_0x7995('0x43')]){_0x44309d[_0x7995('0x44')]=[{'all':!![]}];}return db[_0x7995('0x2e')][_0x7995('0x45')](_0x44309d);})['then'](function(_0x5f28e7){_0x5dd802[_0x7995('0x46')]=_0x5f28e7;return _0x5dd802;})['then'](respondWithFilteredResult(_0x510841,_0x44309d))[_0x7995('0x47')](handleError(_0x510841,null));};exports['show']=function(_0x2f435e,_0x4c1127){var _0x1e795e={'raw':!![],'where':{'id':_0x2f435e['params']['id']}},_0x1b0373={};_0x1b0373[_0x7995('0x32')]=_[_0x7995('0x34')](db[_0x7995('0x2e')][_0x7995('0x2f')]);_0x1b0373['query']=_[_0x7995('0x34')](_0x2f435e[_0x7995('0x38')]);_0x1b0373[_0x7995('0x3f')]=_['intersection'](_0x1b0373[_0x7995('0x32')],_0x1b0373[_0x7995('0x38')]);_0x1e795e[_0x7995('0x36')]=_[_0x7995('0x35')](_0x1b0373[_0x7995('0x32')],qs['fields'](_0x2f435e[_0x7995('0x38')][_0x7995('0x37')]));_0x1e795e['attributes']=_0x1e795e[_0x7995('0x36')]['length']?_0x1e795e[_0x7995('0x36')]:_0x1b0373[_0x7995('0x32')];if(_0x2f435e[_0x7995('0x38')][_0x7995('0x43')]){_0x1e795e[_0x7995('0x44')]=[{'all':!![]}];}_0x1e795e=_[_0x7995('0x41')]({},_0x1e795e,_0x2f435e[_0x7995('0x48')]);return db['MailMessage'][_0x7995('0x49')](_0x1e795e)[_0x7995('0x42')](handleEntityNotFound(_0x4c1127,null))[_0x7995('0x42')](respondWithResult(_0x4c1127,null))['catch'](handleError(_0x4c1127,null));};exports[_0x7995('0x27')]=function(_0x1fe77e,_0x12d4b8){if(_0x1fe77e['body']['id']){delete _0x1fe77e['body']['id'];}return db['MailMessage'][_0x7995('0x49')]({'where':{'id':_0x1fe77e[_0x7995('0x4a')]['id']}})['then'](handleEntityNotFound(_0x12d4b8,null))[_0x7995('0x42')](saveUpdates(_0x1fe77e[_0x7995('0x4b')],null))[_0x7995('0x42')](respondWithResult(_0x12d4b8,null))[_0x7995('0x47')](handleError(_0x12d4b8,null));};exports[_0x7995('0x4c')]=function(_0x528c8e,_0x29ee32){return db['MailMessage'][_0x7995('0x49')]({'where':{'id':_0x528c8e[_0x7995('0x4a')]['id']}})[_0x7995('0x42')](handleEntityNotFound(_0x29ee32,null))['then'](removeEntity(_0x29ee32,null))['catch'](handleError(_0x29ee32,null));};exports['describe']=function(_0x563f8e,_0x2e13b0){return db[_0x7995('0x2e')][_0x7995('0x4d')]()[_0x7995('0x42')](respondWithResult(_0x2e13b0,null))[_0x7995('0x47')](handleError(_0x2e13b0,null));};exports[_0x7995('0x4e')]=function(_0x1f4270,_0xda6ce8){return db[_0x7995('0x2e')][_0x7995('0x4e')](_0x1f4270[_0x7995('0x4b')])[_0x7995('0x42')](function(_0x3da72b){if(_0x3da72b){if(_0x3da72b[_0x7995('0x4f')]===_0x7995('0x50')&&!_0x3da72b[_0x7995('0x51')]){var _0x447a2b,_0x223e08,_0x45e86e;if(_0x1f4270['body']['to']){_0x223e08=_0x1f4270[_0x7995('0x4b')]['to'][_0x7995('0x52')](',')[0x0];}return db[_0x7995('0x53')][_0x7995('0x54')]({'where':{'id':_0x3da72b['MailAccountId']},'include':[{'model':db['CmList'],'as':_0x7995('0x55'),'include':[{'model':db[_0x7995('0x56')],'as':_0x7995('0x57'),'where':{'email':_0x223e08},'limit':0x1,'order':[[_0x7995('0x58'),'DESC']]}]},{'model':db[_0x7995('0x59')],'as':_0x7995('0x5a'),'raw':!![]}]})[_0x7995('0x42')](function(_0x33c49c){_0x447a2b=_0x33c49c;if(_0x447a2b&&_0x447a2b['Smtp']){var _0x5e2d97={'tls':{'rejectUnauthorized':![]}};if(_[_0x7995('0x5b')](_0x447a2b[_0x7995('0x5a')][_0x7995('0x5c')])){_0x5e2d97[_0x7995('0x5d')]=_0x447a2b[_0x7995('0x5a')][_0x7995('0x5d')];_0x5e2d97[_0x7995('0x5e')]=_0x447a2b[_0x7995('0x5a')][_0x7995('0x5e')];_0x5e2d97['secure']=_0x447a2b[_0x7995('0x5a')][_0x7995('0x5f')];if(_0x447a2b[_0x7995('0x5a')][_0x7995('0x60')]){_0x5e2d97['auth']={'user':_0x447a2b['Smtp'][_0x7995('0x61')],'pass':_0x447a2b[_0x7995('0x5a')]['pass']};}}else{_0x5e2d97[_0x7995('0x5c')]=_0x447a2b[_0x7995('0x5a')][_0x7995('0x5c')];_0x5e2d97[_0x7995('0x62')]={'user':_0x447a2b[_0x7995('0x5a')]['user'],'pass':_0x447a2b[_0x7995('0x5a')]['pass']};_0x5e2d97[_0x7995('0x5f')]=_0x447a2b[_0x7995('0x5a')][_0x7995('0x5f')];}if(_0x1f4270[_0x7995('0x4b')][_0x7995('0x63')]&&_0x1f4270[_0x7995('0x4b')][_0x7995('0x63')][_0x7995('0x39')]){for(var _0x10f012=0x0;_0x10f012<_0x1f4270[_0x7995('0x4b')][_0x7995('0x63')][_0x7995('0x39')];_0x10f012+=0x1){_0x1f4270['body'][_0x7995('0x63')][_0x10f012]={'filename':_0x1f4270[_0x7995('0x4b')][_0x7995('0x63')][_0x10f012][_0x7995('0x2b')],'path':path[_0x7995('0x64')](config['root'],'server/files/attachments',_0x1f4270[_0x7995('0x4b')][_0x7995('0x63')][_0x10f012][_0x7995('0x65')])};}}_0x45e86e={'account':_0x5e2d97,'message':_0x1f4270[_0x7995('0x4b')]};return;}})['then'](function(){if(_0x447a2b[_0x7995('0x55')]){if(_0x447a2b['List']['Contacts'][_0x7995('0x39')]){return _0x447a2b[_0x7995('0x55')][_0x7995('0x57')][0x0];}else{return db[_0x7995('0x56')][_0x7995('0x4e')](_[_0x7995('0x66')](_0x1f4270[_0x7995('0x4b')],{'firstName':_0x1f4270[_0x7995('0x4b')]['to'],'email':_0x1f4270[_0x7995('0x4b')]['to'],'phone':_0x1f4270[_0x7995('0x4b')]['to'],'ListId':_0x447a2b['ListId']}));}}else{throw new Error(_0x7995('0x67'));}})[_0x7995('0x42')](function(){if(_0x45e86e){return respondWithRpcPromise(_0x7995('0x68'),'sendMail',_0x45e86e,client9003)[_0x7995('0x42')](function(_0x1d2f9d){return _0x3da72b[_0x7995('0x27')]({'read':!![],'messageId':_0x1d2f9d[_0x7995('0x69')],'sentAt':moment()[_0x7995('0x6a')](_0x7995('0x6b'))});})[_0x7995('0x47')](function(_0x3adfd2){logger[_0x7995('0x1b')]('%s',JSON[_0x7995('0x1a')](_0x3adfd2));return _0x3da72b;});}return _0x3da72b;});}return _0x3da72b;}})[_0x7995('0x42')](respondWithResult(_0xda6ce8,0xc9))['catch'](handleError(_0xda6ce8,null));};exports['accept']=function(_0xd07c1c,_0xfe1105){var _0x39ebb6={'agent':{},'channel':_0x7995('0x6c')};if(_0xd07c1c['body']['id']){delete _0xd07c1c[_0x7995('0x4b')]['id'];}_0xd07c1c[_0x7995('0x4b')]['read']=!![];_0xd07c1c['body'][_0x7995('0x6d')]=moment()[_0x7995('0x6a')]('YYYY-MM-DD\x20HH:mm:ss');_0xd07c1c[_0x7995('0x4b')]['UserId']=_0xd07c1c[_0x7995('0x4b')][_0x7995('0x6e')]||_0xd07c1c['user']['id'];_0x39ebb6['agent']['id']=_0xd07c1c[_0x7995('0x4b')]['UserId'];return db[_0x7995('0x2e')][_0x7995('0x49')]({'where':{'id':_0xd07c1c[_0x7995('0x4a')]['id'],'UserId':null}})[_0x7995('0x42')](handleEntityNotFound(_0xfe1105,null))[_0x7995('0x42')](saveUpdates(_0xd07c1c[_0x7995('0x4b')],null))[_0x7995('0x42')](function(_0x14cb17){if(_0x14cb17){_0x39ebb6[_0x7995('0x1d')]=_0x14cb17[_0x7995('0x6f')]({'plain':!![]});return db[_0x7995('0x70')][_0x7995('0x49')]({'where':{'id':_0x14cb17[_0x7995('0x71')]}});}return null;})[_0x7995('0x42')](handleEntityNotFound(_0xfe1105,null))[_0x7995('0x42')](function(_0x3773de){if(_0x3773de){return _0x3773de[_0x7995('0x27')]({'UserId':_0xd07c1c[_0x7995('0x4b')][_0x7995('0x6e')],'read1stAt':_[_0x7995('0x5b')](_0x3773de[_0x7995('0x72')])?moment()[_0x7995('0x6a')](_0x7995('0x6b')):undefined});}return null;})[_0x7995('0x42')](function(_0x260ef1){if(_0x260ef1){_0x39ebb6[_0x7995('0x73')]=_0x260ef1[_0x7995('0x6f')]({'plain':!![]});interaction_log[_0x7995('0x15')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0xd07c1c[_0x7995('0x61')]['id'],_0xd07c1c[_0x7995('0x61')]['name'],_0xd07c1c['user'][_0x7995('0x74')],_0x39ebb6[_0x7995('0x73')]['id'],_0xd07c1c[_0x7995('0x4b')]?JSON[_0x7995('0x1a')](_0xd07c1c[_0x7995('0x4b')]):_0x7995('0x75'));return respondWithRpcPromise('AcceptMessage',_0x7995('0x76'),_0x39ebb6);}return null;})[_0x7995('0x42')](function(_0x3fea6a){var _0x77b03f=_0x7995('0x77')+_0x3fea6a[_0x7995('0x1d')][_0x7995('0x78')];return db[_0x7995('0x79')]['query'](_0x77b03f,{'type':db[_0x7995('0x7a')][_0x7995('0x7b')]['SELECT'],'raw':!![]})['then'](function(_0xd24c64){return _0xd24c64;});})[_0x7995('0x42')](function(_0x18e1a2){if(_0x18e1a2){_0x39ebb6[_0x7995('0x1d')][_0x7995('0x7c')]=_0x18e1a2[0x0];if(!_0xd07c1c['body'][_0x7995('0x6e')])return;return db[_0x7995('0x7d')]['find']({'where':{'id':_0xd07c1c[_0x7995('0x4b')][_0x7995('0x6e')],'role':'agent'},'attributes':['id',_0x7995('0x2b'),'fullname',_0x7995('0x7e'),_0x7995('0x7f')],'raw':!![]});}return null;})[_0x7995('0x42')](function(_0x428a1b){if(!_0x428a1b)return null;_0x39ebb6[_0x7995('0x1d')]['agent']=_0x428a1b;return _0x39ebb6;})[_0x7995('0x42')](function(_0x345080){if(_0x345080){if(_0xd07c1c[_0x7995('0x4b')]['manual']){_0x39ebb6[_0x7995('0x1d')][_0x7995('0x80')]=util[_0x7995('0x6a')](_0x7995('0x81'),_0xd07c1c['user'][_0x7995('0x2b')]);_0x39ebb6[_0x7995('0x1d')][_0x7995('0x82')]=_0x39ebb6['channel'];_0x39ebb6['message'][_0x7995('0x83')]=_0x7995('0x84');_0x39ebb6['message']['body']=htmlToText[_0x7995('0x85')](_0x39ebb6[_0x7995('0x1d')][_0x7995('0x4b')]);return respondWithRpcPromise(_0x7995('0x86'),_0x7995('0x86'),{'event':'acceptmessage','message':_0x39ebb6['message']},client9002)[_0x7995('0x42')](function(){return _0x39ebb6;});}return _0x39ebb6;}return null;})['then'](respondWithResult(_0xfe1105,null))['catch'](handleError(_0xfe1105,null));};exports[_0x7995('0x87')]=function(_0x3b731e,_0x3192b8){var _0x5eb360={'agent':{},'channel':_0x7995('0x6c')};if(_0x3b731e[_0x7995('0x4b')]['id']){delete _0x3b731e[_0x7995('0x4b')]['id'];}_0x3b731e[_0x7995('0x4b')][_0x7995('0x6e')]=_0x3b731e['body'][_0x7995('0x6e')]||_0x3b731e[_0x7995('0x61')]['id'];_0x5eb360[_0x7995('0x88')]['id']=_0x3b731e[_0x7995('0x4b')]['UserId'];return db[_0x7995('0x2e')][_0x7995('0x49')]({'where':{'id':_0x3b731e['params']['id'],'UserId':null}})[_0x7995('0x42')](handleEntityNotFound(_0x3192b8,null))[_0x7995('0x42')](function(_0x5b1528){if(_0x5b1528){_0x5eb360[_0x7995('0x1d')]=_0x5b1528['get']({'plain':!![]});return db[_0x7995('0x70')]['find']({'where':{'id':_0x5b1528[_0x7995('0x71')]}});}return null;})['then'](handleEntityNotFound(_0x3192b8,null))[_0x7995('0x42')](function(_0x20f48c){if(_0x20f48c){_0x5eb360['interaction']=_0x20f48c[_0x7995('0x6f')]({'plain':!![]});interaction_log['info']('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x3b731e[_0x7995('0x61')]['id'],_0x3b731e[_0x7995('0x61')][_0x7995('0x2b')],_0x3b731e[_0x7995('0x61')]['role'],_0x5eb360[_0x7995('0x73')]['id'],_0x3b731e[_0x7995('0x4b')]?JSON['stringify'](_0x3b731e['body']):_0x7995('0x75'));return respondWithRpcPromise('RejectMessage',_0x7995('0x89'),_0x5eb360);}return null;})[_0x7995('0x42')](function(_0xfb4479){var _0x5b42be='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0xfb4479[_0x7995('0x1d')]['ContactId'];return db[_0x7995('0x79')][_0x7995('0x38')](_0x5b42be,{'type':db[_0x7995('0x7a')][_0x7995('0x7b')]['SELECT'],'raw':!![]})['then'](function(_0x50f880){return _0x50f880;});})[_0x7995('0x42')](function(_0x340a57){if(_0x340a57){_0x5eb360[_0x7995('0x1d')][_0x7995('0x7c')]=_0x340a57[0x0];if(!_0x3b731e[_0x7995('0x4b')][_0x7995('0x6e')])return;return db['User']['find']({'where':{'id':_0x3b731e[_0x7995('0x4b')]['UserId'],'role':'agent'},'attributes':['id',_0x7995('0x2b'),'fullname','email',_0x7995('0x7f')],'raw':!![]});}return null;})[_0x7995('0x42')](function(_0x3873f3){if(!_0x3873f3)return null;_0x5eb360['message'][_0x7995('0x88')]=_0x3873f3;return _0x5eb360;})[_0x7995('0x42')](function(_0x1c4d23){if(_0x1c4d23){_0x1c4d23[_0x7995('0x1d')][_0x7995('0x80')]=util[_0x7995('0x6a')](_0x7995('0x81'),_0x3b731e[_0x7995('0x61')][_0x7995('0x2b')]);_0x1c4d23['message'][_0x7995('0x82')]=_0x5eb360[_0x7995('0x82')];_0x1c4d23[_0x7995('0x1d')][_0x7995('0x83')]=_0x7995('0x87');_0x1c4d23['message'][_0x7995('0x4b')]=htmlToText[_0x7995('0x85')](_0x5eb360[_0x7995('0x1d')]['body']);respondWithRpcPromise('EventManager','EventManager',{'event':_0x7995('0x8a'),'message':_0x1c4d23[_0x7995('0x1d')]},client9002);return _0x5eb360;}return null;})[_0x7995('0x42')](respondWithResult(_0x3192b8,null))[_0x7995('0x47')](handleError(_0x3192b8,null));};exports[_0x7995('0x8b')]=function(_0x3ad47c,_0x4dd64a){var _0x46d263=moment()['unix']()[_0x7995('0x8c')]();var _0xa2baa9=path[_0x7995('0x64')](config[_0x7995('0x8d')],_0x7995('0x8e'),_0x7995('0x8f'),_0x7995('0x90'));var _0x24a0e6=path[_0x7995('0x64')](config[_0x7995('0x8d')],_0x7995('0x8e'),'files',_0x7995('0x63'));var _0x57f875=util[_0x7995('0x6a')](_0x7995('0x91'),_0x46d263);return db['MailMessage']['find']({'where':{'id':_0x3ad47c[_0x7995('0x4a')]['id']},'attributes':['id',_0x7995('0x4b'),_0x7995('0x92'),'to','cc',_0x7995('0x93'),_0x7995('0x94'),_0x7995('0x95')],'include':_0x3ad47c[_0x7995('0x38')][_0x7995('0x63')]?[{'model':db[_0x7995('0x96')],'as':_0x7995('0x97')}]:undefined})[_0x7995('0x42')](handleEntityNotFound(_0x4dd64a,null))[_0x7995('0x42')](function(_0x5eb2d9){if(_0x5eb2d9){var _0x5380e6=_0x5eb2d9;var _0x41b0d5={'from':_0x5380e6[_0x7995('0x92')],'to':_0x5380e6['to'],'subject':_0x5380e6[_0x7995('0x94')],'html':_0x5380e6[_0x7995('0x4b')],'headers':{'Date':moment(_0x5380e6[_0x7995('0x95')])['format'](_0x7995('0x98'))},'attachments':[]};if(_0x5eb2d9['cc']){_0x41b0d5[_0x7995('0x99')]['Cc']=_0x5eb2d9['cc'];}if(_0x5eb2d9['bcc']){_0x41b0d5[_0x7995('0x99')]['Bcc']=_0x5eb2d9[_0x7995('0x93')];}return new BPromise(function(_0x30cda5,_0x234a40){if(_0x5eb2d9['Attachments']){for(var _0x3501ac=0x0;_0x3501ac<_0x5eb2d9[_0x7995('0x97')][_0x7995('0x39')];_0x3501ac++){var _0x15ca94=_0x5eb2d9[_0x7995('0x97')][_0x3501ac];var _0x8a5aa8=path[_0x7995('0x64')](_0x24a0e6,_0x15ca94['basename']);if(fs['existsSync'](_0x8a5aa8)){_0x41b0d5['attachments'][_0x7995('0x9a')]({'name':_0x15ca94[_0x7995('0x2b')],'contentType':_0x15ca94['type'],'data':fs['readFileSync'](_0x8a5aa8)});}}}emlformat[_0x7995('0x9b')](_0x41b0d5,function(_0xe4389c,_0x48d4a7){if(_0xe4389c)return _0x234a40(_0xe4389c);fs['writeFileSync'](path['join'](_0xa2baa9,_0x57f875),_0x48d4a7);return _0x30cda5(_0x48d4a7);});});}})['then'](function(_0x1c4af5){if(_0x1c4af5){return _0x4dd64a[_0x7995('0x8b')](path[_0x7995('0x64')](_0xa2baa9,_0x57f875),_0x57f875,function(_0x421e44){if(!_0x421e44)fs['unlinkSync'](path[_0x7995('0x64')](_0xa2baa9,_0x57f875));});}})[_0x7995('0x47')](handleError(_0x4dd64a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6c5=['emit','exports','events','../../mysqldb','MailMessage','setMaxListeners','save','update','remove'];(function(_0x2af053,_0x4f6d28){var _0x4b4001=function(_0x9200c1){while(--_0x9200c1){_0x2af053['push'](_0x2af053['shift']());}};_0x4b4001(++_0x4f6d28);}(_0xd6c5,0x158));var _0x5d6c=function(_0x498ca8,_0x1e1331){_0x498ca8=_0x498ca8-0x0;var _0x3ca59c=_0xd6c5[_0x498ca8];return _0x3ca59c;};'use strict';var EventEmitter=require(_0x5d6c('0x0'));var MailMessage=require(_0x5d6c('0x1'))['db'][_0x5d6c('0x2')];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0x5d6c('0x3')](0x0);var events={'afterCreate':_0x5d6c('0x4'),'afterUpdate':_0x5d6c('0x5'),'afterDestroy':_0x5d6c('0x6')};function emitEvent(_0x3b190d){return function(_0x2d0d7d,_0x43edeb,_0x42b740){MailMessageEvents['emit'](_0x3b190d+':'+_0x2d0d7d['id'],_0x2d0d7d);MailMessageEvents[_0x5d6c('0x7')](_0x3b190d,_0x2d0d7d);_0x42b740(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailMessage['hook'](e,emitEvent(event));}}module[_0x5d6c('0x8')]=MailMessageEvents;
\ No newline at end of file
+var _0x5e2f=['update','hasOwnProperty','hook','exports','../../mysqldb','save'];(function(_0x56dd3a,_0x4890c3){var _0x26755a=function(_0x376e34){while(--_0x376e34){_0x56dd3a['push'](_0x56dd3a['shift']());}};_0x26755a(++_0x4890c3);}(_0x5e2f,0x112));var _0xf5e2=function(_0xa355ee,_0x4b6360){_0xa355ee=_0xa355ee-0x0;var _0x44307e=_0x5e2f[_0xa355ee];return _0x44307e;};'use strict';var EventEmitter=require('events');var MailMessage=require(_0xf5e2('0x0'))['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xf5e2('0x1'),'afterUpdate':_0xf5e2('0x2'),'afterDestroy':'remove'};function emitEvent(_0x12a27d){return function(_0x527a75,_0x328410,_0x1ff204){MailMessageEvents['emit'](_0x12a27d+':'+_0x527a75['id'],_0x527a75);MailMessageEvents['emit'](_0x12a27d,_0x527a75);_0x1ff204(null);};}for(var e in events){if(events[_0xf5e2('0x3')](e)){var event=events[e];MailMessage[_0xf5e2('0x4')](e,emitEvent(event));}}module[_0xf5e2('0x5')]=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabe4=['moment','request-promise','html-to-text','../../config/environment','./mailMessage.attributes','exports','define','messageId','fti_mail_messages','plainBody','subject','FULLTEXT','body','models','direction','toLowerCase','secret','UserId','MailInteraction','findOne','then','update','createdAt','catch','error','utf8mb4_unicode_ci','lodash','util','api'];(function(_0x4edb3d,_0x24f2e9){var _0x466084=function(_0x514ae5){while(--_0x514ae5){_0x4edb3d['push'](_0x4edb3d['shift']());}};_0x466084(++_0x24f2e9);}(_0xabe4,0x1b0));var _0x4abe=function(_0x262957,_0x34c699){_0x262957=_0x262957-0x0;var _0x27e221=_0xabe4[_0x262957];return _0x27e221;};'use strict';var _=require(_0x4abe('0x0'));var util=require(_0x4abe('0x1'));var logger=require('../../config/logger')(_0x4abe('0x2'));var moment=require(_0x4abe('0x3'));var BPromise=require('bluebird');var rp=require(_0x4abe('0x4'));var htmlToText=require(_0x4abe('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x4abe('0x6'));var attributes=require(_0x4abe('0x7'));module[_0x4abe('0x8')]=function(_0x902ab,_0xcf34c1){return _0x902ab[_0x4abe('0x9')]('MailMessage',attributes,{'tableName':'mail_messages','paranoid':![],'indexes':[{'name':_0x4abe('0xa'),'fields':[_0x4abe('0xa')]},{'name':_0x4abe('0xb'),'fields':[_0x4abe('0xc'),_0x4abe('0xd')],'type':_0x4abe('0xe')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x2ce49e,_0x6a2e29,_0x207f33){if(_0x2ce49e[_0x4abe('0xf')]){_0x2ce49e[_0x4abe('0xc')]=htmlToText['fromString'](_0x2ce49e[_0x4abe('0xf')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x207f33(null,_0x6a2e29);},'afterCreate':function(_0x1faf03,_0x324f41,_0x2f6bfd){var _0x4980d3=_0x902ab[_0x4abe('0x10')];var _0x35aa59=_0x1faf03['get']({'plain':!![]});if(_0x35aa59[_0x4abe('0x11')][_0x4abe('0x12')]()==='in'||_0x35aa59[_0x4abe('0x11')]['toLowerCase']()==='out'&&!_0x35aa59[_0x4abe('0x13')]&&!_['isNil'](_0x35aa59[_0x4abe('0x14')])){_0x4980d3[_0x4abe('0x15')][_0x4abe('0x16')]({'where':{'id':_0x35aa59['MailInteractionId']}})[_0x4abe('0x17')](function(_0x3e555b){if(_0x3e555b){_0x3e555b[_0x4abe('0x18')]({'lastMsgAt':_0x35aa59[_0x4abe('0x19')],'lastMsgDirection':_0x35aa59[_0x4abe('0x11')][_0x4abe('0x12')]()});}})[_0x4abe('0x1a')](function(_0x29a669){console[_0x4abe('0x1b')](_0x29a669);});}_0x2f6bfd();}},'charset':'utf8mb4','collate':_0x4abe('0x1c')});};
\ No newline at end of file
+var _0x7399=['utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','html-to-text','path','rimraf','../../config/environment','./mailMessage.attributes','exports','define','messageId','fti_mail_messages','plainBody','subject','FULLTEXT','body','fromString','models','toLowerCase','direction','secret','isNil','findOne','MailInteractionId','update','createdAt','catch','error'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7399,0xe8));var _0x9739=function(_0xc07b1e,_0x41559a){_0xc07b1e=_0xc07b1e-0x0;var _0x38bf62=_0x7399[_0xc07b1e];return _0x38bf62;};'use strict';var _=require(_0x9739('0x0'));var util=require(_0x9739('0x1'));var logger=require(_0x9739('0x2'))(_0x9739('0x3'));var moment=require(_0x9739('0x4'));var BPromise=require(_0x9739('0x5'));var rp=require(_0x9739('0x6'));var htmlToText=require(_0x9739('0x7'));var fs=require('fs');var path=require(_0x9739('0x8'));var rimraf=require(_0x9739('0x9'));var config=require(_0x9739('0xa'));var attributes=require(_0x9739('0xb'));module[_0x9739('0xc')]=function(_0x12f889,_0x1bfaf7){return _0x12f889[_0x9739('0xd')]('MailMessage',attributes,{'tableName':'mail_messages','paranoid':![],'indexes':[{'name':_0x9739('0xe'),'fields':[_0x9739('0xe')]},{'name':_0x9739('0xf'),'fields':[_0x9739('0x10'),_0x9739('0x11')],'type':_0x9739('0x12')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x186131,_0x3d46d2,_0x1ad9a8){if(_0x186131[_0x9739('0x13')]){_0x186131[_0x9739('0x10')]=htmlToText[_0x9739('0x14')](_0x186131[_0x9739('0x13')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x1ad9a8(null,_0x3d46d2);},'afterCreate':function(_0x4711f9,_0x36b135,_0x2c5249){var _0x296fed=_0x12f889[_0x9739('0x15')];var _0x47daa1=_0x4711f9['get']({'plain':!![]});if(_0x47daa1['direction'][_0x9739('0x16')]()==='in'||_0x47daa1[_0x9739('0x17')]['toLowerCase']()==='out'&&!_0x47daa1[_0x9739('0x18')]&&!_[_0x9739('0x19')](_0x47daa1['UserId'])){_0x296fed['MailInteraction'][_0x9739('0x1a')]({'where':{'id':_0x47daa1[_0x9739('0x1b')]}})['then'](function(_0xb4f4d6){if(_0xb4f4d6){_0xb4f4d6[_0x9739('0x1c')]({'lastMsgAt':_0x47daa1[_0x9739('0x1d')],'lastMsgDirection':_0x47daa1[_0x9739('0x17')][_0x9739('0x16')]()});}})[_0x9739('0x1e')](function(_0x404d7b){console[_0x9739('0x1f')](_0x404d7b);});}_0x2c5249();}},'charset':'utf8mb4','collate':_0x9739('0x20')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','MailMessage','create','options','raw','CreateMailMessage','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','then','MailMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x143184,_0x410b38){var _0x389679=function(_0x27a917){while(--_0x27a917){_0x143184['push'](_0x143184['shift']());}};_0x389679(++_0x410b38);}(_0x5f2f,0x73));var _0xf5f2=function(_0x325821,_0x2f8e6f){_0x325821=_0x325821-0x0;var _0x48548d=_0x5f2f[_0x325821];return _0x48548d;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var moment=require(_0xf5f2('0x2'));var BPromise=require(_0xf5f2('0x3'));var rs=require(_0xf5f2('0x4'));var fs=require('fs');var Redis=require(_0xf5f2('0x5'));var db=require(_0xf5f2('0x6'))['db'];var utils=require(_0xf5f2('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xf5f2('0x8'));var jayson=require(_0xf5f2('0x9'));var client=jayson[_0xf5f2('0xa')][_0xf5f2('0xb')]({'port':0x232a});config[_0xf5f2('0xc')]=_[_0xf5f2('0xd')](config['redis'],{'host':_0xf5f2('0xe'),'port':0x18eb});var socket=require(_0xf5f2('0xf'))(new Redis(config[_0xf5f2('0xc')]));require('./mailMessage.socket')[_0xf5f2('0x10')](socket);function respondWithRpcPromise(_0x15dd7c,_0x218ae3,_0x4e0e6b){return new BPromise(function(_0x977a59,_0x4ebbbe){return client['request'](_0x15dd7c,_0x4e0e6b)[_0xf5f2('0x11')](function(_0x151aba){logger['info'](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));logger[_0xf5f2('0x14')](_0xf5f2('0x15'),_0x218ae3,_0xf5f2('0x13'),JSON[_0xf5f2('0x16')](_0x151aba));if(_0x151aba['error']){if(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x18')]===0x1f4){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')]['message']);return _0x4ebbbe(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);return _0x977a59(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}else{logger[_0xf5f2('0x1a')](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));_0x977a59(_0x151aba[_0xf5f2('0x1b')][_0xf5f2('0x19')]);}})[_0xf5f2('0x1c')](function(_0x3cf5ea){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x3cf5ea);_0x4ebbbe(_0x3cf5ea);});});}exports['CreateMailMessage']=function(_0x34706d){var _0x47101e=this;return new Promise(function(_0x49dac2,_0x47acfc){return db[_0xf5f2('0x1d')][_0xf5f2('0x1e')](_0x34706d['body'],{'raw':_0x34706d[_0xf5f2('0x1f')]?_0x34706d[_0xf5f2('0x1f')][_0xf5f2('0x20')]===undefined?!![]:![]:!![]})[_0xf5f2('0x11')](function(_0x36f1cb){logger['info'](_0xf5f2('0x21'),_0x34706d);logger[_0xf5f2('0x14')](_0xf5f2('0x21'),_0x34706d,JSON[_0xf5f2('0x16')](_0x36f1cb));_0x49dac2(_0x36f1cb);})[_0xf5f2('0x1c')](function(_0x5bdf4a){logger['error'](_0xf5f2('0x21'),_0x5bdf4a[_0xf5f2('0x19')],_0x34706d);_0x47acfc(_0x47101e[_0xf5f2('0x17')](0x1f4,_0x5bdf4a[_0xf5f2('0x19')]));});});};
\ No newline at end of file
+var _0x5f2f=['MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','MailMessage','create','options','raw','CreateMailMessage','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','then','MailMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x22b498,_0x1109b6){var _0x6b44cd=function(_0x4b646e){while(--_0x4b646e){_0x22b498['push'](_0x22b498['shift']());}};_0x6b44cd(++_0x1109b6);}(_0x5f2f,0x73));var _0xf5f2=function(_0x388509,_0x1a282f){_0x388509=_0x388509-0x0;var _0x31c874=_0x5f2f[_0x388509];return _0x31c874;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var moment=require(_0xf5f2('0x2'));var BPromise=require(_0xf5f2('0x3'));var rs=require(_0xf5f2('0x4'));var fs=require('fs');var Redis=require(_0xf5f2('0x5'));var db=require(_0xf5f2('0x6'))['db'];var utils=require(_0xf5f2('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xf5f2('0x8'));var jayson=require(_0xf5f2('0x9'));var client=jayson[_0xf5f2('0xa')][_0xf5f2('0xb')]({'port':0x232a});config[_0xf5f2('0xc')]=_[_0xf5f2('0xd')](config['redis'],{'host':_0xf5f2('0xe'),'port':0x18eb});var socket=require(_0xf5f2('0xf'))(new Redis(config[_0xf5f2('0xc')]));require('./mailMessage.socket')[_0xf5f2('0x10')](socket);function respondWithRpcPromise(_0x15dd7c,_0x218ae3,_0x4e0e6b){return new BPromise(function(_0x977a59,_0x4ebbbe){return client['request'](_0x15dd7c,_0x4e0e6b)[_0xf5f2('0x11')](function(_0x151aba){logger['info'](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));logger[_0xf5f2('0x14')](_0xf5f2('0x15'),_0x218ae3,_0xf5f2('0x13'),JSON[_0xf5f2('0x16')](_0x151aba));if(_0x151aba['error']){if(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x18')]===0x1f4){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')]['message']);return _0x4ebbbe(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);return _0x977a59(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}else{logger[_0xf5f2('0x1a')](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));_0x977a59(_0x151aba[_0xf5f2('0x1b')][_0xf5f2('0x19')]);}})[_0xf5f2('0x1c')](function(_0x3cf5ea){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x3cf5ea);_0x4ebbbe(_0x3cf5ea);});});}exports['CreateMailMessage']=function(_0x34706d){var _0x47101e=this;return new Promise(function(_0x49dac2,_0x47acfc){return db[_0xf5f2('0x1d')][_0xf5f2('0x1e')](_0x34706d['body'],{'raw':_0x34706d[_0xf5f2('0x1f')]?_0x34706d[_0xf5f2('0x1f')][_0xf5f2('0x20')]===undefined?!![]:![]:!![]})[_0xf5f2('0x11')](function(_0x36f1cb){logger['info'](_0xf5f2('0x21'),_0x34706d);logger[_0xf5f2('0x14')](_0xf5f2('0x21'),_0x34706d,JSON[_0xf5f2('0x16')](_0x36f1cb));_0x49dac2(_0x36f1cb);})[_0xf5f2('0x1c')](function(_0x5bdf4a){logger['error'](_0xf5f2('0x21'),_0x5bdf4a[_0xf5f2('0x19')],_0x34706d);_0x47acfc(_0x47101e[_0xf5f2('0x17')](0x1f4,_0x5bdf4a[_0xf5f2('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x75a9=['length','mailMessage:','./mailMessage.events','save','update','removeListener','register'];(function(_0x54bd6b,_0x4cc82e){var _0x25f308=function(_0x5efe83){while(--_0x5efe83){_0x54bd6b['push'](_0x54bd6b['shift']());}};_0x25f308(++_0x4cc82e);}(_0x75a9,0x136));var _0x975a=function(_0x224dfd,_0x3b99f4){_0x224dfd=_0x224dfd-0x0;var _0x264587=_0x75a9[_0x224dfd];return _0x264587;};'use strict';var MailMessageEvents=require(_0x975a('0x0'));var events=[_0x975a('0x1'),'remove',_0x975a('0x2')];function createListener(_0x1162ae,_0x5c540a){return function(_0x261d8d){_0x5c540a['emit'](_0x1162ae,_0x261d8d);};}function removeListener(_0x212b01,_0x2869aa){return function(){MailMessageEvents[_0x975a('0x3')](_0x212b01,_0x2869aa);};}exports[_0x975a('0x4')]=function(_0x461faa){for(var _0x13d753=0x0,_0x1ac004=events[_0x975a('0x5')];_0x13d753<_0x1ac004;_0x13d753++){var _0x521f2b=events[_0x13d753];var _0x2c3568=createListener(_0x975a('0x6')+_0x521f2b,_0x461faa);MailMessageEvents['on'](_0x521f2b,_0x2c3568);}};
\ No newline at end of file
+var _0xf3a6=['mailMessage:','emit','removeListener','register'];(function(_0x462ffa,_0x344b4f){var _0x2cd791=function(_0x8cc174){while(--_0x8cc174){_0x462ffa['push'](_0x462ffa['shift']());}};_0x2cd791(++_0x344b4f);}(_0xf3a6,0x1e9));var _0x6f3a=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0xf3a6[_0x1caf6a];return _0x1bf493;};'use strict';var MailMessageEvents=require('./mailMessage.events');var events=['save','remove','update'];function createListener(_0x2df654,_0x30c738){return function(_0x873f30){_0x30c738[_0x6f3a('0x0')](_0x2df654,_0x873f30);};}function removeListener(_0xb74b5c,_0x3546df){return function(){MailMessageEvents[_0x6f3a('0x1')](_0xb74b5c,_0x3546df);};}exports[_0x6f3a('0x2')]=function(_0x3ce439){for(var _0x204a8e=0x0,_0x534121=events['length'];_0x204a8e<_0x534121;_0x204a8e++){var _0x521893=events[_0x204a8e];var _0x3d93df=createListener(_0x6f3a('0x3')+_0x521893,_0x3ce439);MailMessageEvents['on'](_0x521893,_0x3d93df);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2592=['get','isAuthenticated','index','/describe','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','addAgents','put','/:id','update','destroy','removeTeams','delete','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueue.controller'];(function(_0x235e2b,_0x232235){var _0x4e9f0a=function(_0x2f5bf2){while(--_0x2f5bf2){_0x235e2b['push'](_0x235e2b['shift']());}};_0x4e9f0a(++_0x232235);}(_0x2592,0x1b7));var _0x2259=function(_0x2d6141,_0x189922){_0x2d6141=_0x2d6141-0x0;var _0xbc02da=_0x2592[_0x2d6141];return _0xbc02da;};'use strict';var multer=require('multer');var util=require(_0x2259('0x0'));var path=require(_0x2259('0x1'));var timeout=require(_0x2259('0x2'));var express=require('express');var router=express[_0x2259('0x3')]();var fs_extra=require(_0x2259('0x4'));var auth=require(_0x2259('0x5'));var interaction=require(_0x2259('0x6'));var config=require(_0x2259('0x7'));var controller=require(_0x2259('0x8'));router[_0x2259('0x9')]('/',auth[_0x2259('0xa')](),controller[_0x2259('0xb')]);router[_0x2259('0x9')](_0x2259('0xc'),auth[_0x2259('0xa')](),controller['describe']);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0x2259('0x9')]('/:id/members',auth['isAuthenticated'](),controller[_0x2259('0xd')]);router[_0x2259('0x9')](_0x2259('0xe'),auth[_0x2259('0xa')](),controller[_0x2259('0xf')]);router[_0x2259('0x9')](_0x2259('0x10'),auth[_0x2259('0xa')](),controller[_0x2259('0x11')]);router[_0x2259('0x12')]('/',auth[_0x2259('0xa')](),controller[_0x2259('0x13')]);router[_0x2259('0x12')]('/:id/teams',auth[_0x2259('0xa')](),controller[_0x2259('0x14')]);router[_0x2259('0x12')](_0x2259('0x10'),auth['isAuthenticated'](),controller[_0x2259('0x15')]);router[_0x2259('0x16')](_0x2259('0x17'),auth['isAuthenticated'](),controller[_0x2259('0x18')]);router['delete'](_0x2259('0x17'),auth['isAuthenticated'](),controller[_0x2259('0x19')]);router['delete'](_0x2259('0xe'),auth[_0x2259('0xa')](),controller[_0x2259('0x1a')]);router[_0x2259('0x1b')](_0x2259('0x10'),auth[_0x2259('0xa')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0x7c65=['Router','../../components/auth/service','../../config/environment','get','isAuthenticated','describe','/:id','/:id/members','getTeams','/:id/users','getAgents','create','/:id/teams','addTeams','post','addAgents','update','destroy','delete','removeTeams','exports','util','connect-timeout','express'];(function(_0x3b7f27,_0x358280){var _0x46cbb9=function(_0x367adb){while(--_0x367adb){_0x3b7f27['push'](_0x3b7f27['shift']());}};_0x46cbb9(++_0x358280);}(_0x7c65,0x75));var _0x57c6=function(_0x470ea1,_0x5588f9){_0x470ea1=_0x470ea1-0x0;var _0x28a241=_0x7c65[_0x470ea1];return _0x28a241;};'use strict';var multer=require('multer');var util=require(_0x57c6('0x0'));var path=require('path');var timeout=require(_0x57c6('0x1'));var express=require(_0x57c6('0x2'));var router=express[_0x57c6('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x57c6('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x57c6('0x5'));var controller=require('./mailQueue.controller');router[_0x57c6('0x6')]('/',auth[_0x57c6('0x7')](),controller['index']);router[_0x57c6('0x6')]('/describe',auth[_0x57c6('0x7')](),controller[_0x57c6('0x8')]);router[_0x57c6('0x6')](_0x57c6('0x9'),auth[_0x57c6('0x7')](),controller['show']);router[_0x57c6('0x6')](_0x57c6('0xa'),auth[_0x57c6('0x7')](),controller['getMembers']);router[_0x57c6('0x6')]('/:id/teams',auth[_0x57c6('0x7')](),controller[_0x57c6('0xb')]);router['get'](_0x57c6('0xc'),auth[_0x57c6('0x7')](),controller[_0x57c6('0xd')]);router['post']('/',auth[_0x57c6('0x7')](),controller[_0x57c6('0xe')]);router['post'](_0x57c6('0xf'),auth[_0x57c6('0x7')](),controller[_0x57c6('0x10')]);router[_0x57c6('0x11')]('/:id/users',auth[_0x57c6('0x7')](),controller[_0x57c6('0x12')]);router['put'](_0x57c6('0x9'),auth[_0x57c6('0x7')](),controller[_0x57c6('0x13')]);router['delete'](_0x57c6('0x9'),auth['isAuthenticated'](),controller[_0x57c6('0x14')]);router[_0x57c6('0x15')](_0x57c6('0xf'),auth[_0x57c6('0x7')](),controller[_0x57c6('0x16')]);router[_0x57c6('0x15')](_0x57c6('0xc'),auth[_0x57c6('0x7')](),controller['removeAgents']);module[_0x57c6('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe003=['ENUM','rrmemory','beepall','roundrobin','sequelize','name','STRING'];(function(_0x60899e,_0x49166c){var _0x3698e9=function(_0x9d0b68){while(--_0x9d0b68){_0x60899e['push'](_0x60899e['shift']());}};_0x3698e9(++_0x49166c);}(_0xe003,0x169));var _0x3e00=function(_0x781bd0,_0x2cf00f){_0x781bd0=_0x781bd0-0x0;var _0x5dc07f=_0xe003[_0x781bd0];return _0x5dc07f;};'use strict';var Sequelize=require(_0x3e00('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0x3e00('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x3e00('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x3e00('0x3')](_0x3e00('0x4'),_0x3e00('0x5'),_0x3e00('0x6'))}};
\ No newline at end of file
+var _0x33a4=['ENUM','beepall','roundrobin','sequelize','exports','STRING','name','INTEGER'];(function(_0x59d3d8,_0x3a6b0d){var _0x20923a=function(_0x51f325){while(--_0x51f325){_0x59d3d8['push'](_0x59d3d8['shift']());}};_0x20923a(++_0x3a6b0d);}(_0x33a4,0x6b));var _0x433a=function(_0x59c65c,_0x5b4130){_0x59c65c=_0x59c65c-0x0;var _0x2e59eb=_0x33a4[_0x59c65c];return _0x2e59eb;};'use strict';var Sequelize=require(_0x433a('0x0'));module[_0x433a('0x1')]={'name':{'type':Sequelize[_0x433a('0x2')],'unique':_0x433a('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x433a('0x2')]},'timeout':{'type':Sequelize[_0x433a('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x433a('0x5')]('rrmemory',_0x433a('0x6'),_0x433a('0x7'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x542b=['map','MailQueue','rawAttributes','fieldName','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','type','VIRTUAL','includeAll','include','rows','catch','show','params','find','create','body','get','role','user','MailQueues','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserMailQueue','nolimit','MailQueueId','merge','options','findAll','User','findAndCountAll','UserId','agent','mailPause','createdAt','format','%s/%s','SIP','updatedAt','getTeams','addTeams','ids','Team','Agents','online','voicePause','interface','sequelize','each','findOrCreate','forEach','emit','userMailQueue:save','removeTeams','field','team_has_mail_queues','join','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','removeAgents','userMailQueue:remove','addAgents','spread','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./mailQueue.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','UserProfileResource','destroy','error','stack','name','send','index'];(function(_0x3485ef,_0x8f9eff){var _0x551ba0=function(_0x128949){while(--_0x128949){_0x3485ef['push'](_0x3485ef['shift']());}};_0x551ba0(++_0x8f9eff);}(_0x542b,0xec));var _0xb542=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x542b[_0x1694f5];return _0x5b4321;};'use strict';var emlformat=require(_0xb542('0x0'));var rimraf=require(_0xb542('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb542('0x2'));var rp=require(_0xb542('0x3'));var moment=require(_0xb542('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb542('0x5'));var util=require(_0xb542('0x6'));var path=require('path');var sox=require(_0xb542('0x7'));var csv=require('to-csv');var ejs=require(_0xb542('0x8'));var fs=require('fs');var fs_extra=require(_0xb542('0x9'));var _=require(_0xb542('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xb542('0xb'));var deskjs=require(_0xb542('0xc'));var toCsv=require('to-csv');var querystring=require(_0xb542('0xd'));var Papa=require(_0xb542('0xe'));var Redis=require(_0xb542('0xf'));var authService=require(_0xb542('0x10'));var qs=require(_0xb542('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xb542('0x12'))(_0xb542('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xb542('0x14'));var db=require(_0xb542('0x15'))['db'];config[_0xb542('0x16')]=_[_0xb542('0x17')](config[_0xb542('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0xb542('0x18'))(new Redis(config['redis']));require(_0xb542('0x19'))[_0xb542('0x1a')](socket);function respondWithStatusCode(_0x262e39,_0x43d090){_0x43d090=_0x43d090||0xcc;return function(_0x306f26){if(_0x306f26){return _0x262e39[_0xb542('0x1b')](_0x43d090);}return _0x262e39[_0xb542('0x1c')](_0x43d090)[_0xb542('0x1d')]();};}function respondWithResult(_0x56e749,_0x1412a0){_0x1412a0=_0x1412a0||0xc8;return function(_0x23fb02){if(_0x23fb02){return _0x56e749[_0xb542('0x1c')](_0x1412a0)[_0xb542('0x1e')](_0x23fb02);}};}function respondWithFilteredResult(_0x1c07d9,_0x151356){return function(_0x64d671){if(_0x64d671){var _0x2ccc3a=typeof _0x151356[_0xb542('0x1f')]===_0xb542('0x20')&&typeof _0x151356[_0xb542('0x21')]===_0xb542('0x20');var _0x441d8c=_0x64d671['count'];var _0x36590f=_0x2ccc3a?0x0:_0x151356[_0xb542('0x1f')];var _0x3dc2b4=_0x2ccc3a?_0x64d671[_0xb542('0x22')]:_0x151356['offset']+_0x151356[_0xb542('0x21')];var _0x4ccd07;if(_0x3dc2b4>=_0x441d8c){_0x3dc2b4=_0x441d8c;_0x4ccd07=0xc8;}else{_0x4ccd07=0xce;}_0x1c07d9['status'](_0x4ccd07);return _0x1c07d9['set'](_0xb542('0x23'),_0x36590f+'-'+_0x3dc2b4+'/'+_0x441d8c)[_0xb542('0x1e')](_0x64d671);}return null;};}function patchUpdates(_0xab03bd){return function(_0xfa508f){try{jsonpatch[_0xb542('0x24')](_0xfa508f,_0xab03bd,!![]);}catch(_0x532c07){return BPromise[_0xb542('0x25')](_0x532c07);}return _0xfa508f[_0xb542('0x26')]();};}function saveUpdates(_0x2f54d3,_0x3938af){return function(_0x544a86){if(_0x544a86){return _0x544a86[_0xb542('0x27')](_0x2f54d3)[_0xb542('0x28')](function(_0x3e12b1){return _0x3e12b1;});}return null;};}function removeEntity(_0x436a6b,_0x3220a6){return function(_0x299330){if(_0x299330){return _0x299330['destroy']()[_0xb542('0x28')](function(){var _0x4e78b0=_0x299330['get']({'plain':!![]});var _0x423c48='MailQueues';return db[_0xb542('0x29')][_0xb542('0x2a')]({'where':{'type':_0x423c48,'resourceId':_0x4e78b0['id']}})[_0xb542('0x28')](function(){return _0x299330;});})[_0xb542('0x28')](function(){_0x436a6b[_0xb542('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c0944,_0x1e5ddc){return function(_0x385d91){if(!_0x385d91){_0x5c0944[_0xb542('0x1b')](0x194);}return _0x385d91;};}function handleError(_0x2be7d2,_0x3eb8cf){_0x3eb8cf=_0x3eb8cf||0x1f4;return function(_0x1dbf90){logger[_0xb542('0x2b')](_0x1dbf90[_0xb542('0x2c')]);if(_0x1dbf90[_0xb542('0x2d')]){delete _0x1dbf90[_0xb542('0x2d')];}_0x2be7d2[_0xb542('0x1c')](_0x3eb8cf)[_0xb542('0x2e')](_0x1dbf90);};}exports[_0xb542('0x2f')]=function(_0x5a1d93,_0x32e274){var _0x3f96d4={},_0x239205={},_0x489da4={'count':0x0,'rows':[]};var _0x6aed85=_[_0xb542('0x30')](db[_0xb542('0x31')][_0xb542('0x32')],function(_0x535c8b){return{'name':_0x535c8b[_0xb542('0x33')],'type':_0x535c8b['type'][_0xb542('0x34')]};});_0x239205['model']=_[_0xb542('0x30')](_0x6aed85,'name');_0x239205[_0xb542('0x35')]=_[_0xb542('0x36')](_0x5a1d93['query']);_0x239205[_0xb542('0x37')]=_[_0xb542('0x38')](_0x239205[_0xb542('0x39')],_0x239205[_0xb542('0x35')]);_0x3f96d4[_0xb542('0x3a')]=_[_0xb542('0x38')](_0x239205[_0xb542('0x39')],qs[_0xb542('0x3b')](_0x5a1d93['query'][_0xb542('0x3b')]));_0x3f96d4[_0xb542('0x3a')]=_0x3f96d4[_0xb542('0x3a')][_0xb542('0x3c')]?_0x3f96d4[_0xb542('0x3a')]:_0x239205[_0xb542('0x39')];if(!_0x5a1d93[_0xb542('0x35')][_0xb542('0x3d')]('nolimit')){_0x3f96d4[_0xb542('0x21')]=qs['limit'](_0x5a1d93[_0xb542('0x35')]['limit']);_0x3f96d4[_0xb542('0x1f')]=qs['offset'](_0x5a1d93[_0xb542('0x35')][_0xb542('0x1f')]);}_0x3f96d4[_0xb542('0x3e')]=qs[_0xb542('0x3f')](_0x5a1d93['query'][_0xb542('0x3f')]);_0x3f96d4[_0xb542('0x40')]=qs['filters'](_[_0xb542('0x41')](_0x5a1d93['query'],_0x239205[_0xb542('0x37')]),_0x6aed85);if(_0x5a1d93['query'][_0xb542('0x42')]){_0x3f96d4['where']=_['merge'](_0x3f96d4[_0xb542('0x40')],{'$or':_[_0xb542('0x30')](_0x6aed85,function(_0x49a11e){if(_0x49a11e[_0xb542('0x43')]!==_0xb542('0x44')){var _0x3be1fd={};_0x3be1fd[_0x49a11e[_0xb542('0x2d')]]={'$like':'%'+_0x5a1d93[_0xb542('0x35')][_0xb542('0x42')]+'%'};return _0x3be1fd;}})});}_0x3f96d4=_['merge']({},_0x3f96d4,_0x5a1d93['options']);var _0x521b00={'where':_0x3f96d4[_0xb542('0x40')]};return db[_0xb542('0x31')]['count'](_0x521b00)['then'](function(_0x3067c8){_0x489da4[_0xb542('0x22')]=_0x3067c8;if(_0x5a1d93[_0xb542('0x35')][_0xb542('0x45')]){_0x3f96d4[_0xb542('0x46')]=[{'all':!![]}];}return db['MailQueue']['findAll'](_0x3f96d4);})[_0xb542('0x28')](function(_0x5eb046){_0x489da4[_0xb542('0x47')]=_0x5eb046;return _0x489da4;})[_0xb542('0x28')](respondWithFilteredResult(_0x32e274,_0x3f96d4))[_0xb542('0x48')](handleError(_0x32e274,null));};exports[_0xb542('0x49')]=function(_0x42dfed,_0x3fea08){var _0x39a92f={'raw':!![],'where':{'id':_0x42dfed[_0xb542('0x4a')]['id']}},_0x55e580={};_0x55e580[_0xb542('0x39')]=_[_0xb542('0x36')](db[_0xb542('0x31')]['rawAttributes']);_0x55e580[_0xb542('0x35')]=_[_0xb542('0x36')](_0x42dfed[_0xb542('0x35')]);_0x55e580[_0xb542('0x37')]=_[_0xb542('0x38')](_0x55e580['model'],_0x55e580[_0xb542('0x35')]);_0x39a92f[_0xb542('0x3a')]=_[_0xb542('0x38')](_0x55e580[_0xb542('0x39')],qs[_0xb542('0x3b')](_0x42dfed[_0xb542('0x35')]['fields']));_0x39a92f[_0xb542('0x3a')]=_0x39a92f[_0xb542('0x3a')][_0xb542('0x3c')]?_0x39a92f[_0xb542('0x3a')]:_0x55e580[_0xb542('0x39')];if(_0x42dfed['query'][_0xb542('0x45')]){_0x39a92f[_0xb542('0x46')]=[{'all':!![]}];}_0x39a92f=_['merge']({},_0x39a92f,_0x42dfed['options']);return db[_0xb542('0x31')][_0xb542('0x4b')](_0x39a92f)['then'](handleEntityNotFound(_0x3fea08,null))[_0xb542('0x28')](respondWithResult(_0x3fea08,null))[_0xb542('0x48')](handleError(_0x3fea08,null));};exports[_0xb542('0x4c')]=function(_0x386f1f,_0x5dc89a){return db[_0xb542('0x31')]['create'](_0x386f1f[_0xb542('0x4d')],{})[_0xb542('0x28')](function(_0x1d5b84){var _0x14bf48=_0x386f1f['user'][_0xb542('0x4e')]({'plain':!![]});if(!_0x14bf48)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x14bf48[_0xb542('0x4f')]===_0xb542('0x50')){var _0x5bc398=_0x1d5b84[_0xb542('0x4e')]({'plain':!![]});var _0x40a293=_0xb542('0x51');return db[_0xb542('0x52')][_0xb542('0x4b')]({'where':{'name':_0x40a293,'userProfileId':_0x14bf48[_0xb542('0x53')]},'raw':!![]})[_0xb542('0x28')](function(_0x5c2a23){if(_0x5c2a23&&_0x5c2a23[_0xb542('0x54')]===0x0){return db[_0xb542('0x29')][_0xb542('0x4c')]({'name':_0x5bc398['name'],'resourceId':_0x5bc398['id'],'type':_0x5c2a23[_0xb542('0x2d')],'sectionId':_0x5c2a23['id']},{})[_0xb542('0x28')](function(){return _0x1d5b84;});}else{return _0x1d5b84;}})[_0xb542('0x48')](function(_0x52cf87){logger[_0xb542('0x2b')](_0xb542('0x55'),_0x52cf87);throw _0x52cf87;});}return _0x1d5b84;})[_0xb542('0x28')](respondWithResult(_0x5dc89a,0xc9))['catch'](handleError(_0x5dc89a,null));};exports[_0xb542('0x27')]=function(_0x1a053f,_0xf9053e){if(_0x1a053f[_0xb542('0x4d')]['id']){delete _0x1a053f[_0xb542('0x4d')]['id'];}return db['MailQueue'][_0xb542('0x4b')]({'where':{'id':_0x1a053f['params']['id']}})[_0xb542('0x28')](handleEntityNotFound(_0xf9053e,null))[_0xb542('0x28')](saveUpdates(_0x1a053f[_0xb542('0x4d')],null))[_0xb542('0x28')](respondWithResult(_0xf9053e,null))['catch'](handleError(_0xf9053e,null));};exports[_0xb542('0x2a')]=function(_0x12ce79,_0x243820){return db[_0xb542('0x31')][_0xb542('0x4b')]({'where':{'id':_0x12ce79['params']['id']}})[_0xb542('0x28')](handleEntityNotFound(_0x243820,null))['then'](removeEntity(_0x243820,null))[_0xb542('0x48')](handleError(_0x243820,null));};exports[_0xb542('0x56')]=function(_0x2c0a02,_0x3c17e2){return db[_0xb542('0x31')][_0xb542('0x56')]()[_0xb542('0x28')](respondWithResult(_0x3c17e2,null))[_0xb542('0x48')](handleError(_0x3c17e2,null));};exports[_0xb542('0x57')]=function(_0x137c31,_0x42b940,_0x51162a){var _0x23e8aa={'raw':!![],'where':{}},_0x3766e2={},_0x1e9bc6;return db['MailQueue'][_0xb542('0x58')]({'where':{'id':_0x137c31['params']['id']}})[_0xb542('0x28')](handleEntityNotFound(_0x42b940,null))[_0xb542('0x28')](function(_0x137cca){if(_0x137cca){_0x1e9bc6=_0x137cca[_0xb542('0x4e')]({'plain':!![]});_0x3766e2['model']=_[_0xb542('0x36')](db[_0xb542('0x59')][_0xb542('0x32')]);_0x3766e2[_0xb542('0x35')]=_['keys'](_0x137c31['query']);_0x3766e2['filters']=_[_0xb542('0x38')](_0x3766e2['model'],_0x3766e2['query']);_0x23e8aa[_0xb542('0x3a')]=_[_0xb542('0x38')](_0x3766e2['model'],qs['fields'](_0x137c31[_0xb542('0x35')][_0xb542('0x3b')]));_0x23e8aa[_0xb542('0x3a')]=_0x23e8aa['attributes'][_0xb542('0x3c')]?_0x23e8aa[_0xb542('0x3a')]:_0x3766e2[_0xb542('0x39')];if(!_0x137c31[_0xb542('0x35')][_0xb542('0x3d')](_0xb542('0x5a'))){_0x23e8aa[_0xb542('0x21')]=qs['limit'](_0x137c31[_0xb542('0x35')][_0xb542('0x21')]);_0x23e8aa['offset']=qs[_0xb542('0x1f')](_0x137c31[_0xb542('0x35')][_0xb542('0x1f')]);}_0x23e8aa[_0xb542('0x3e')]=qs['sort'](_0x137c31[_0xb542('0x35')][_0xb542('0x3f')]);_0x23e8aa['where']=qs[_0xb542('0x37')](_[_0xb542('0x41')](_0x137c31['query'],_0x3766e2['filters']));_0x23e8aa[_0xb542('0x40')][_0xb542('0x5b')]=_0x137cca['id'];if(_0x137c31[_0xb542('0x35')][_0xb542('0x42')]){_0x23e8aa[_0xb542('0x40')]=_[_0xb542('0x5c')](_0x23e8aa[_0xb542('0x40')],{'$or':_[_0xb542('0x30')](_0x23e8aa['attributes'],function(_0x2f56e7){var _0xef3bb0={};_0xef3bb0[_0x2f56e7]={'$like':'%'+_0x137c31[_0xb542('0x35')]['filter']+'%'};return _0xef3bb0;})});}_0x23e8aa=_['merge']({},_0x23e8aa,_0x137c31[_0xb542('0x5d')]);return db[_0xb542('0x59')][_0xb542('0x5e')](_0x23e8aa);}})[_0xb542('0x28')](function(_0x56d67e){if(_0x56d67e){return db[_0xb542('0x5f')][_0xb542('0x60')]({'where':{'id':_['map'](_0x56d67e,_0xb542('0x61')),'role':_0xb542('0x62')},'attributes':['id',_0xb542('0x2d'),_0xb542('0x63'),'updatedAt',_0xb542('0x64')]});}})[_0xb542('0x28')](function(_0x5aec00){if(_0x5aec00){return{'count':_0x5aec00[_0xb542('0x22')],'rows':_[_0xb542('0x30')](_0x5aec00['rows'],function(_0x164fb4){return{'membername':_0x164fb4[_0xb542('0x2d')],'UserId':_0x164fb4['id'],'queue_name':_0x1e9bc6[_0xb542('0x2d')],'MailQueueId':_0x1e9bc6['id'],'interface':util[_0xb542('0x65')](_0xb542('0x66'),_0xb542('0x67'),_0x164fb4[_0xb542('0x2d')]),'penalty':0x0,'paused':_0x164fb4['mailPause'],'createdAt':_0x164fb4[_0xb542('0x64')],'updatedAt':_0x164fb4[_0xb542('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xb542('0x28')](respondWithFilteredResult(_0x42b940,_0x23e8aa))['catch'](handleError(_0x42b940,null));};exports[_0xb542('0x69')]=function(_0x185bbd,_0x51e6bd,_0x2b23df){var _0x48ecd2={};var _0x586f2b={};var _0x39073e;var _0x30fed8;return db[_0xb542('0x31')][_0xb542('0x58')]({'where':{'id':_0x185bbd['params']['id']}})['then'](handleEntityNotFound(_0x51e6bd,null))[_0xb542('0x28')](function(_0x3f0288){if(_0x3f0288){_0x39073e=_0x3f0288;_0x586f2b[_0xb542('0x39')]=_[_0xb542('0x36')](db['Team'][_0xb542('0x32')]);_0x586f2b['query']=_['keys'](_0x185bbd[_0xb542('0x35')]);_0x586f2b[_0xb542('0x37')]=_[_0xb542('0x38')](_0x586f2b[_0xb542('0x39')],_0x586f2b['query']);_0x48ecd2[_0xb542('0x3a')]=_[_0xb542('0x38')](_0x586f2b[_0xb542('0x39')],qs[_0xb542('0x3b')](_0x185bbd['query'][_0xb542('0x3b')]));_0x48ecd2['attributes']=_0x48ecd2['attributes'][_0xb542('0x3c')]?_0x48ecd2[_0xb542('0x3a')]:_0x586f2b[_0xb542('0x39')];_0x48ecd2[_0xb542('0x3e')]=qs[_0xb542('0x3f')](_0x185bbd['query'][_0xb542('0x3f')]);_0x48ecd2[_0xb542('0x40')]=qs[_0xb542('0x37')](_[_0xb542('0x41')](_0x185bbd[_0xb542('0x35')],_0x586f2b[_0xb542('0x37')]));if(_0x185bbd[_0xb542('0x35')][_0xb542('0x42')]){_0x48ecd2[_0xb542('0x40')]=_[_0xb542('0x5c')](_0x48ecd2[_0xb542('0x40')],{'$or':_[_0xb542('0x30')](_0x48ecd2['attributes'],function(_0x4fe7ef){var _0x325150={};_0x325150[_0x4fe7ef]={'$like':'%'+_0x185bbd[_0xb542('0x35')][_0xb542('0x42')]+'%'};return _0x325150;})});}_0x48ecd2=_[_0xb542('0x5c')]({},_0x48ecd2,_0x185bbd[_0xb542('0x5d')]);return _0x39073e[_0xb542('0x69')](_0x48ecd2);}})['then'](function(_0x263387){if(_0x263387){_0x30fed8=_0x263387['length'];if(!_0x185bbd[_0xb542('0x35')][_0xb542('0x3d')](_0xb542('0x5a'))){_0x48ecd2[_0xb542('0x21')]=qs[_0xb542('0x21')](_0x185bbd[_0xb542('0x35')]['limit']);_0x48ecd2[_0xb542('0x1f')]=qs[_0xb542('0x1f')](_0x185bbd[_0xb542('0x35')][_0xb542('0x1f')]);}return _0x39073e[_0xb542('0x69')](_0x48ecd2);}})['then'](function(_0x2096b8){if(_0x2096b8){return _0x2096b8?{'count':_0x30fed8,'rows':_0x2096b8}:null;}})['then'](respondWithResult(_0x51e6bd,null))[_0xb542('0x48')](handleError(_0x51e6bd,null));};exports[_0xb542('0x6a')]=function(_0x19944b,_0x21c327,_0x45ca9b){var _0x185740=_0x19944b[_0xb542('0x4d')][_0xb542('0x6b')];return db[_0xb542('0x6c')]['findAll']({'where':{'id':_0x185740},'attributes':['id'],'include':[{'model':db[_0xb542('0x5f')],'as':_0xb542('0x6d'),'attributes':['id','name',_0xb542('0x6e'),_0xb542('0x6f'),_0xb542('0x70')],'raw':!![]}]})[_0xb542('0x28')](function(_0x39a368){if(_0x39a368){var _0x3c7a41=_['flatMap'](_0x39a368,function(_0x1975e1){var _0x1474ec=_0x1975e1[_0xb542('0x4e')]({'plain':!![]});return _0x1474ec[_0xb542('0x6d')];});return db['MailQueue']['find']({'where':{'id':_0x19944b[_0xb542('0x4a')]['id']}})[_0xb542('0x28')](function(_0x69cf85){return db[_0xb542('0x71')]['transaction'](function(_0x4388bc){return _0x69cf85[_0xb542('0x6a')](_0x185740,{'transaction':_0x4388bc})[_0xb542('0x28')](function(){return BPromise[_0xb542('0x72')](_0x3c7a41,function(_0x4fca4a){return db[_0xb542('0x59')][_0xb542('0x73')]({'where':{'UserId':_0x4fca4a['id'],'MailQueueId':_0x19944b[_0xb542('0x4a')]['id']},'transaction':_0x4388bc});});})['then'](function(){_0x3c7a41[_0xb542('0x74')](function(_0x432a19){socket[_0xb542('0x75')](_0xb542('0x76'),{'UserId':_0x432a19['id'],'MailQueueId':_0x69cf85['id']});});});});});}})[_0xb542('0x28')](respondWithStatusCode(_0x21c327,null))['catch'](handleError(_0x21c327,null));};exports[_0xb542('0x77')]=function(_0x25d4ac,_0x128d9d,_0x5982e0){return db[_0xb542('0x6c')][_0xb542('0x5e')]({'where':{'id':_0x25d4ac[_0xb542('0x35')][_0xb542('0x6b')]},'attributes':['id'],'include':[{'model':db[_0xb542('0x5f')],'as':_0xb542('0x6d'),'attributes':['id'],'raw':!![]}]})[_0xb542('0x28')](handleEntityNotFound(_0x128d9d,null))[_0xb542('0x28')](function(_0x23cdc8){var _0x1dab0e=_['map'](_0x23cdc8,'id');var _0x277a5=[];var _0x2228fa=[];var _0x2c4a2d=squel['select']();_0x2c4a2d[_0xb542('0x78')]('tq.TeamId')['from'](_0xb542('0x79'),'tq')[_0xb542('0x7a')]('user_has_teams','ut',_0xb542('0x7b'))['where'](_0xb542('0x7c'),_0x25d4ac[_0xb542('0x4a')]['id']);for(var _0x522778=0x0;_0x522778<_0x23cdc8[_0xb542('0x3c')];_0x522778+=0x1){let _0x1fa913=_0x23cdc8[_0x522778];for(var _0x4bed2d=0x0;_0x4bed2d<_0x1fa913[_0xb542('0x6d')][_0xb542('0x3c')];_0x4bed2d+=0x1){let _0x3ade8a=_0x1fa913['Agents'][_0x4bed2d];var _0x2eb6c0=_0x2c4a2d[_0xb542('0x7d')]();_0x2eb6c0[_0xb542('0x40')]('ut.UserId\x20=\x20?',_0x3ade8a['id']);_0x2228fa[_0xb542('0x7e')](db[_0xb542('0x71')][_0xb542('0x35')](_0x2eb6c0[_0xb542('0x7f')](),{'type':db[_0xb542('0x71')][_0xb542('0x80')][_0xb542('0x81')]})[_0xb542('0x28')](function(_0x361f8e){if(_0x361f8e[_0xb542('0x3c')]===0x1){return _0x3ade8a['id'];}else{var _0x57e39d=_[_0xb542('0x82')](_[_0xb542('0x30')](_0x361f8e,_0xb542('0x83')),function(_0x49ac58){return _[_0xb542('0x84')](_0x1dab0e,_0x49ac58);});if(_0x57e39d){return _0x3ade8a['id'];}}}));}}return BPromise[_0xb542('0x85')](_0x2228fa)[_0xb542('0x28')](function(_0x35aa77){_0x277a5=_(_0x277a5)[_0xb542('0x86')](_0x35aa77)[_0xb542('0x87')]()[_0xb542('0x88')]();return db[_0xb542('0x31')][_0xb542('0x4b')]({'where':{'id':_0x25d4ac[_0xb542('0x4a')]['id']}})[_0xb542('0x28')](function(_0x594923){return db[_0xb542('0x71')]['transaction'](function(_0x44bb35){return _0x594923[_0xb542('0x77')](_0x25d4ac[_0xb542('0x35')][_0xb542('0x6b')],{'transaction':_0x44bb35})[_0xb542('0x28')](function(){if(!_['isEmpty'](_0x277a5)){return _0x594923[_0xb542('0x89')](_0x277a5,{'transaction':_0x44bb35});}})['then'](function(){_0x277a5[_0xb542('0x74')](function(_0x2684ec){socket[_0xb542('0x75')](_0xb542('0x8a'),{'UserId':_0x2684ec,'MailQueueId':_0x594923['id']});});});});});});})[_0xb542('0x28')](respondWithStatusCode(_0x128d9d,null))[_0xb542('0x48')](handleError(_0x128d9d,null));};exports[_0xb542('0x8b')]=function(_0x4be03d,_0x497de8,_0x18024c){return db[_0xb542('0x31')]['find']({'where':{'id':_0x4be03d[_0xb542('0x4a')]['id']}})[_0xb542('0x28')](handleEntityNotFound(_0x497de8,null))[_0xb542('0x28')](function(_0x17f686){if(_0x17f686){return _0x17f686[_0xb542('0x8b')](_0x4be03d['body'][_0xb542('0x6b')],_['omit'](_0x4be03d['body'],['ids','id'])||{})[_0xb542('0x8c')](function(_0x1dc9f1){for(var _0x47fb45=0x0;_0x47fb45<_0x4be03d['body'][_0xb542('0x6b')][_0xb542('0x3c')];_0x47fb45+=0x1){socket[_0xb542('0x75')](_0xb542('0x76'),{'UserId':Number(_0x4be03d[_0xb542('0x4d')][_0xb542('0x6b')][_0x47fb45]),'MailQueueId':Number(_0x4be03d[_0xb542('0x4a')]['id'])});}return _0x1dc9f1;});}})[_0xb542('0x28')](respondWithResult(_0x497de8,null))[_0xb542('0x48')](handleError(_0x497de8,null));};exports[_0xb542('0x89')]=function(_0x507e0c,_0x531158,_0x44e08c){return db['MailQueue'][_0xb542('0x4b')]({'where':{'id':_0x507e0c['params']['id']}})[_0xb542('0x28')](handleEntityNotFound(_0x531158,null))[_0xb542('0x28')](function(_0x3d7f72){if(_0x3d7f72){return _0x3d7f72['removeAgents'](_0x507e0c['query'][_0xb542('0x6b')])['then'](function(){if(_['isArray'](_0x507e0c['query'][_0xb542('0x6b')])){for(var _0x3ecf54=0x0;_0x3ecf54<_0x507e0c[_0xb542('0x35')][_0xb542('0x6b')]['length'];_0x3ecf54+=0x1){socket[_0xb542('0x75')](_0xb542('0x8a'),{'UserId':Number(_0x507e0c[_0xb542('0x35')][_0xb542('0x6b')][_0x3ecf54]),'MailQueueId':Number(_0x507e0c[_0xb542('0x4a')]['id'])});}}else{socket[_0xb542('0x75')](_0xb542('0x8a'),{'UserId':Number(_0x507e0c[_0xb542('0x35')][_0xb542('0x6b')]),'MailQueueId':Number(_0x507e0c[_0xb542('0x4a')]['id'])});}});}})[_0xb542('0x28')](respondWithStatusCode(_0x531158,null))[_0xb542('0x48')](handleError(_0x531158,null));};exports[_0xb542('0x8d')]=function(_0x3e64d8,_0x520dde,_0x2a7d45){var _0x355834={};var _0x32d410={};var _0x2bb533;var _0x155900;return db[_0xb542('0x31')][_0xb542('0x58')]({'where':{'id':_0x3e64d8[_0xb542('0x4a')]['id']}})[_0xb542('0x28')](handleEntityNotFound(_0x520dde,null))[_0xb542('0x28')](function(_0x11240b){if(_0x11240b){_0x2bb533=_0x11240b;_0x32d410[_0xb542('0x39')]=_[_0xb542('0x36')](db['User'][_0xb542('0x32')]);_0x32d410[_0xb542('0x35')]=_[_0xb542('0x36')](_0x3e64d8[_0xb542('0x35')]);_0x32d410[_0xb542('0x37')]=_[_0xb542('0x38')](_0x32d410[_0xb542('0x39')],_0x32d410[_0xb542('0x35')]);_0x355834[_0xb542('0x3a')]=_[_0xb542('0x38')](_0x32d410[_0xb542('0x39')],qs[_0xb542('0x3b')](_0x3e64d8[_0xb542('0x35')]['fields']));_0x355834['attributes']=_0x355834['attributes']['length']?_0x355834['attributes']:_0x32d410[_0xb542('0x39')];_0x355834[_0xb542('0x3e')]=qs[_0xb542('0x3f')](_0x3e64d8['query'][_0xb542('0x3f')]);_0x355834[_0xb542('0x40')]=qs[_0xb542('0x37')](_[_0xb542('0x41')](_0x3e64d8[_0xb542('0x35')],_0x32d410[_0xb542('0x37')]));if(_0x3e64d8['query']['filter']){_0x355834[_0xb542('0x40')]=_[_0xb542('0x5c')](_0x355834['where'],{'$or':_['map'](_0x355834[_0xb542('0x3a')],function(_0x5dc909){var _0x5a266e={};_0x5a266e[_0x5dc909]={'$like':'%'+_0x3e64d8['query'][_0xb542('0x42')]+'%'};return _0x5a266e;})});}_0x355834=_[_0xb542('0x5c')]({},_0x355834,_0x3e64d8[_0xb542('0x5d')]);return _0x2bb533['getAgents'](_0x355834);}})['then'](function(_0x179a1f){if(_0x179a1f){_0x155900=_0x179a1f[_0xb542('0x3c')];if(!_0x3e64d8[_0xb542('0x35')]['hasOwnProperty'](_0xb542('0x5a'))){_0x355834[_0xb542('0x21')]=qs[_0xb542('0x21')](_0x3e64d8[_0xb542('0x35')][_0xb542('0x21')]);_0x355834[_0xb542('0x1f')]=qs['offset'](_0x3e64d8['query'][_0xb542('0x1f')]);}return _0x2bb533['getAgents'](_0x355834);}})[_0xb542('0x28')](function(_0x19b9ba){if(_0x19b9ba){return _0x19b9ba?{'count':_0x155900,'rows':_0x19b9ba}:null;}})['then'](respondWithResult(_0x520dde,null))[_0xb542('0x48')](handleError(_0x520dde,null));};
\ No newline at end of file
+var _0xa4b1=['ids','User','Agents','online','voicePause','interface','transaction','forEach','emit','userMailQueue:save','removeTeams','select','tq.TeamId','from','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','sequelize','toString','QueryTypes','every','TeamId','includes','all','union','compact','removeAgents','addAgents','omit','spread','isArray','userMailQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','get','UserProfileResource','destroy','error','stack','name','send','map','MailQueue','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','pick','filter','where','merge','VIRTUAL','options','includeAll','rows','catch','params','keys','rawAttributes','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','describe','getMembers','findOne','UserMailQueue','sort','MailQueueId','findAll','findAndCountAll','UserId','agent','mailPause','updatedAt','createdAt','%s/%s','SIP','Team','getTeams','addTeams'];(function(_0x496fe4,_0x272d02){var _0x52729b=function(_0x581515){while(--_0x581515){_0x496fe4['push'](_0x496fe4['shift']());}};_0x52729b(++_0x272d02);}(_0xa4b1,0x133));var _0x1a4b=function(_0x3054be,_0x1bdc8b){_0x3054be=_0x3054be-0x0;var _0x3df150=_0xa4b1[_0x3054be];return _0x3df150;};'use strict';var emlformat=require(_0x1a4b('0x0'));var rimraf=require(_0x1a4b('0x1'));var zipdir=require(_0x1a4b('0x2'));var jsonpatch=require(_0x1a4b('0x3'));var rp=require(_0x1a4b('0x4'));var moment=require('moment');var BPromise=require(_0x1a4b('0x5'));var Mustache=require(_0x1a4b('0x6'));var util=require('util');var path=require(_0x1a4b('0x7'));var sox=require(_0x1a4b('0x8'));var csv=require(_0x1a4b('0x9'));var ejs=require(_0x1a4b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1a4b('0xb'));var squel=require(_0x1a4b('0xc'));var crypto=require(_0x1a4b('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x1a4b('0xe'));var Papa=require('papaparse');var Redis=require(_0x1a4b('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x1a4b('0x10'));var hardwareService=require(_0x1a4b('0x11'));var logger=require('../../config/logger')(_0x1a4b('0x12'));var utils=require(_0x1a4b('0x13'));var config=require(_0x1a4b('0x14'));var licenseUtil=require(_0x1a4b('0x15'));var db=require(_0x1a4b('0x16'))['db'];config[_0x1a4b('0x17')]=_[_0x1a4b('0x18')](config[_0x1a4b('0x17')],{'host':_0x1a4b('0x19'),'port':0x18eb});var socket=require(_0x1a4b('0x1a'))(new Redis(config[_0x1a4b('0x17')]));require(_0x1a4b('0x1b'))[_0x1a4b('0x1c')](socket);function respondWithStatusCode(_0x3c14a6,_0x528416){_0x528416=_0x528416||0xcc;return function(_0x4d135c){if(_0x4d135c){return _0x3c14a6[_0x1a4b('0x1d')](_0x528416);}return _0x3c14a6['status'](_0x528416)[_0x1a4b('0x1e')]();};}function respondWithResult(_0x48bd3c,_0x15e19f){_0x15e19f=_0x15e19f||0xc8;return function(_0x3c6865){if(_0x3c6865){return _0x48bd3c[_0x1a4b('0x1f')](_0x15e19f)[_0x1a4b('0x20')](_0x3c6865);}};}function respondWithFilteredResult(_0x3a5df0,_0x14dd20){return function(_0x151026){if(_0x151026){var _0x29fd38=typeof _0x14dd20[_0x1a4b('0x21')]===_0x1a4b('0x22')&&typeof _0x14dd20[_0x1a4b('0x23')]===_0x1a4b('0x22');var _0x243fa7=_0x151026['count'];var _0x2dffb5=_0x29fd38?0x0:_0x14dd20[_0x1a4b('0x21')];var _0x1dca05=_0x29fd38?_0x151026[_0x1a4b('0x24')]:_0x14dd20[_0x1a4b('0x21')]+_0x14dd20[_0x1a4b('0x23')];var _0x5610e3;if(_0x1dca05>=_0x243fa7){_0x1dca05=_0x243fa7;_0x5610e3=0xc8;}else{_0x5610e3=0xce;}_0x3a5df0[_0x1a4b('0x1f')](_0x5610e3);return _0x3a5df0['set'](_0x1a4b('0x25'),_0x2dffb5+'-'+_0x1dca05+'/'+_0x243fa7)[_0x1a4b('0x20')](_0x151026);}return null;};}function patchUpdates(_0x2b6448){return function(_0xe8a3bc){try{jsonpatch[_0x1a4b('0x26')](_0xe8a3bc,_0x2b6448,!![]);}catch(_0x5a4569){return BPromise[_0x1a4b('0x27')](_0x5a4569);}return _0xe8a3bc['save']();};}function saveUpdates(_0x390155,_0x1164ea){return function(_0x2641e8){if(_0x2641e8){return _0x2641e8[_0x1a4b('0x28')](_0x390155)[_0x1a4b('0x29')](function(_0x213bbb){return _0x213bbb;});}return null;};}function removeEntity(_0x4df4eb,_0xd021cb){return function(_0x240dc9){if(_0x240dc9){return _0x240dc9['destroy']()[_0x1a4b('0x29')](function(){var _0x14f68e=_0x240dc9[_0x1a4b('0x2a')]({'plain':!![]});var _0x457000='MailQueues';return db[_0x1a4b('0x2b')][_0x1a4b('0x2c')]({'where':{'type':_0x457000,'resourceId':_0x14f68e['id']}})[_0x1a4b('0x29')](function(){return _0x240dc9;});})[_0x1a4b('0x29')](function(){_0x4df4eb['status'](0xcc)[_0x1a4b('0x1e')]();});}};}function handleEntityNotFound(_0xca4ba7,_0x392576){return function(_0x5d7754){if(!_0x5d7754){_0xca4ba7['sendStatus'](0x194);}return _0x5d7754;};}function handleError(_0x5c2d4a,_0x2544a5){_0x2544a5=_0x2544a5||0x1f4;return function(_0x257f74){logger[_0x1a4b('0x2d')](_0x257f74[_0x1a4b('0x2e')]);if(_0x257f74[_0x1a4b('0x2f')]){delete _0x257f74['name'];}_0x5c2d4a[_0x1a4b('0x1f')](_0x2544a5)[_0x1a4b('0x30')](_0x257f74);};}exports['index']=function(_0x1e9f87,_0x44fef0){var _0x26a5eb={},_0x51b035={},_0x1f06f5={'count':0x0,'rows':[]};var _0x1ae15c=_[_0x1a4b('0x31')](db[_0x1a4b('0x32')]['rawAttributes'],function(_0x5deb68){return{'name':_0x5deb68['fieldName'],'type':_0x5deb68['type'][_0x1a4b('0x33')]};});_0x51b035[_0x1a4b('0x34')]=_[_0x1a4b('0x31')](_0x1ae15c,_0x1a4b('0x2f'));_0x51b035[_0x1a4b('0x35')]=_['keys'](_0x1e9f87['query']);_0x51b035[_0x1a4b('0x36')]=_[_0x1a4b('0x37')](_0x51b035['model'],_0x51b035['query']);_0x26a5eb[_0x1a4b('0x38')]=_[_0x1a4b('0x37')](_0x51b035[_0x1a4b('0x34')],qs[_0x1a4b('0x39')](_0x1e9f87['query']['fields']));_0x26a5eb[_0x1a4b('0x38')]=_0x26a5eb['attributes']['length']?_0x26a5eb[_0x1a4b('0x38')]:_0x51b035['model'];if(!_0x1e9f87['query'][_0x1a4b('0x3a')](_0x1a4b('0x3b'))){_0x26a5eb[_0x1a4b('0x23')]=qs[_0x1a4b('0x23')](_0x1e9f87['query'][_0x1a4b('0x23')]);_0x26a5eb[_0x1a4b('0x21')]=qs[_0x1a4b('0x21')](_0x1e9f87[_0x1a4b('0x35')]['offset']);}_0x26a5eb['order']=qs['sort'](_0x1e9f87['query']['sort']);_0x26a5eb['where']=qs[_0x1a4b('0x36')](_[_0x1a4b('0x3c')](_0x1e9f87['query'],_0x51b035[_0x1a4b('0x36')]),_0x1ae15c);if(_0x1e9f87[_0x1a4b('0x35')][_0x1a4b('0x3d')]){_0x26a5eb[_0x1a4b('0x3e')]=_[_0x1a4b('0x3f')](_0x26a5eb[_0x1a4b('0x3e')],{'$or':_[_0x1a4b('0x31')](_0x1ae15c,function(_0x234432){if(_0x234432['type']!==_0x1a4b('0x40')){var _0x20ce6e={};_0x20ce6e[_0x234432[_0x1a4b('0x2f')]]={'$like':'%'+_0x1e9f87[_0x1a4b('0x35')][_0x1a4b('0x3d')]+'%'};return _0x20ce6e;}})});}_0x26a5eb=_[_0x1a4b('0x3f')]({},_0x26a5eb,_0x1e9f87[_0x1a4b('0x41')]);var _0x37c7f1={'where':_0x26a5eb['where']};return db[_0x1a4b('0x32')]['count'](_0x37c7f1)['then'](function(_0x422771){_0x1f06f5['count']=_0x422771;if(_0x1e9f87[_0x1a4b('0x35')][_0x1a4b('0x42')]){_0x26a5eb['include']=[{'all':!![]}];}return db[_0x1a4b('0x32')]['findAll'](_0x26a5eb);})[_0x1a4b('0x29')](function(_0x37036a){_0x1f06f5[_0x1a4b('0x43')]=_0x37036a;return _0x1f06f5;})[_0x1a4b('0x29')](respondWithFilteredResult(_0x44fef0,_0x26a5eb))[_0x1a4b('0x44')](handleError(_0x44fef0,null));};exports['show']=function(_0x106794,_0x3481e0){var _0x23f121={'raw':!![],'where':{'id':_0x106794[_0x1a4b('0x45')]['id']}},_0x3acffe={};_0x3acffe[_0x1a4b('0x34')]=_[_0x1a4b('0x46')](db['MailQueue'][_0x1a4b('0x47')]);_0x3acffe[_0x1a4b('0x35')]=_['keys'](_0x106794[_0x1a4b('0x35')]);_0x3acffe[_0x1a4b('0x36')]=_[_0x1a4b('0x37')](_0x3acffe['model'],_0x3acffe[_0x1a4b('0x35')]);_0x23f121[_0x1a4b('0x38')]=_[_0x1a4b('0x37')](_0x3acffe[_0x1a4b('0x34')],qs[_0x1a4b('0x39')](_0x106794[_0x1a4b('0x35')][_0x1a4b('0x39')]));_0x23f121['attributes']=_0x23f121[_0x1a4b('0x38')][_0x1a4b('0x48')]?_0x23f121['attributes']:_0x3acffe[_0x1a4b('0x34')];if(_0x106794[_0x1a4b('0x35')][_0x1a4b('0x42')]){_0x23f121['include']=[{'all':!![]}];}_0x23f121=_[_0x1a4b('0x3f')]({},_0x23f121,_0x106794[_0x1a4b('0x41')]);return db[_0x1a4b('0x32')][_0x1a4b('0x49')](_0x23f121)[_0x1a4b('0x29')](handleEntityNotFound(_0x3481e0,null))[_0x1a4b('0x29')](respondWithResult(_0x3481e0,null))[_0x1a4b('0x44')](handleError(_0x3481e0,null));};exports[_0x1a4b('0x4a')]=function(_0x55a84a,_0x3897f6){return db[_0x1a4b('0x32')][_0x1a4b('0x4a')](_0x55a84a[_0x1a4b('0x4b')],{})[_0x1a4b('0x29')](function(_0x4e34a4){var _0x2a597e=_0x55a84a[_0x1a4b('0x4c')]['get']({'plain':!![]});if(!_0x2a597e)throw new Error(_0x1a4b('0x4d'));if(_0x2a597e['role']===_0x1a4b('0x4c')){var _0x363d45=_0x4e34a4[_0x1a4b('0x2a')]({'plain':!![]});var _0xb2ae34='MailQueues';return db['UserProfileSection'][_0x1a4b('0x49')]({'where':{'name':_0xb2ae34,'userProfileId':_0x2a597e[_0x1a4b('0x4e')]},'raw':!![]})[_0x1a4b('0x29')](function(_0x3ce473){if(_0x3ce473&&_0x3ce473[_0x1a4b('0x4f')]===0x0){return db[_0x1a4b('0x2b')][_0x1a4b('0x4a')]({'name':_0x363d45[_0x1a4b('0x2f')],'resourceId':_0x363d45['id'],'type':_0x3ce473['name'],'sectionId':_0x3ce473['id']},{})[_0x1a4b('0x29')](function(){return _0x4e34a4;});}else{return _0x4e34a4;}})['catch'](function(_0x5622bd){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5622bd);throw _0x5622bd;});}return _0x4e34a4;})[_0x1a4b('0x29')](respondWithResult(_0x3897f6,0xc9))['catch'](handleError(_0x3897f6,null));};exports[_0x1a4b('0x28')]=function(_0x2d5ec7,_0x400c8a){if(_0x2d5ec7[_0x1a4b('0x4b')]['id']){delete _0x2d5ec7[_0x1a4b('0x4b')]['id'];}return db['MailQueue']['find']({'where':{'id':_0x2d5ec7['params']['id']}})[_0x1a4b('0x29')](handleEntityNotFound(_0x400c8a,null))['then'](saveUpdates(_0x2d5ec7[_0x1a4b('0x4b')],null))[_0x1a4b('0x29')](respondWithResult(_0x400c8a,null))[_0x1a4b('0x44')](handleError(_0x400c8a,null));};exports[_0x1a4b('0x2c')]=function(_0x3d0384,_0x184822){return db[_0x1a4b('0x32')][_0x1a4b('0x49')]({'where':{'id':_0x3d0384[_0x1a4b('0x45')]['id']}})['then'](handleEntityNotFound(_0x184822,null))[_0x1a4b('0x29')](removeEntity(_0x184822,null))[_0x1a4b('0x44')](handleError(_0x184822,null));};exports[_0x1a4b('0x50')]=function(_0x5ac518,_0x16a247){return db['MailQueue']['describe']()[_0x1a4b('0x29')](respondWithResult(_0x16a247,null))[_0x1a4b('0x44')](handleError(_0x16a247,null));};exports[_0x1a4b('0x51')]=function(_0x5d270a,_0x3d7a9d,_0x442e56){var _0x42862c={'raw':!![],'where':{}},_0x3476ae={},_0x1b975b;return db['MailQueue'][_0x1a4b('0x52')]({'where':{'id':_0x5d270a['params']['id']}})[_0x1a4b('0x29')](handleEntityNotFound(_0x3d7a9d,null))[_0x1a4b('0x29')](function(_0x28814f){if(_0x28814f){_0x1b975b=_0x28814f['get']({'plain':!![]});_0x3476ae[_0x1a4b('0x34')]=_[_0x1a4b('0x46')](db[_0x1a4b('0x53')]['rawAttributes']);_0x3476ae['query']=_['keys'](_0x5d270a['query']);_0x3476ae[_0x1a4b('0x36')]=_[_0x1a4b('0x37')](_0x3476ae[_0x1a4b('0x34')],_0x3476ae[_0x1a4b('0x35')]);_0x42862c['attributes']=_[_0x1a4b('0x37')](_0x3476ae[_0x1a4b('0x34')],qs['fields'](_0x5d270a[_0x1a4b('0x35')][_0x1a4b('0x39')]));_0x42862c[_0x1a4b('0x38')]=_0x42862c['attributes'][_0x1a4b('0x48')]?_0x42862c['attributes']:_0x3476ae[_0x1a4b('0x34')];if(!_0x5d270a[_0x1a4b('0x35')][_0x1a4b('0x3a')](_0x1a4b('0x3b'))){_0x42862c[_0x1a4b('0x23')]=qs[_0x1a4b('0x23')](_0x5d270a[_0x1a4b('0x35')]['limit']);_0x42862c[_0x1a4b('0x21')]=qs[_0x1a4b('0x21')](_0x5d270a[_0x1a4b('0x35')]['offset']);}_0x42862c['order']=qs[_0x1a4b('0x54')](_0x5d270a[_0x1a4b('0x35')][_0x1a4b('0x54')]);_0x42862c[_0x1a4b('0x3e')]=qs[_0x1a4b('0x36')](_['pick'](_0x5d270a['query'],_0x3476ae[_0x1a4b('0x36')]));_0x42862c['where'][_0x1a4b('0x55')]=_0x28814f['id'];if(_0x5d270a[_0x1a4b('0x35')][_0x1a4b('0x3d')]){_0x42862c[_0x1a4b('0x3e')]=_[_0x1a4b('0x3f')](_0x42862c[_0x1a4b('0x3e')],{'$or':_[_0x1a4b('0x31')](_0x42862c['attributes'],function(_0x176b3c){var _0x53e0b2={};_0x53e0b2[_0x176b3c]={'$like':'%'+_0x5d270a['query'][_0x1a4b('0x3d')]+'%'};return _0x53e0b2;})});}_0x42862c=_[_0x1a4b('0x3f')]({},_0x42862c,_0x5d270a['options']);return db['UserMailQueue'][_0x1a4b('0x56')](_0x42862c);}})['then'](function(_0x5ef704){if(_0x5ef704){return db['User'][_0x1a4b('0x57')]({'where':{'id':_['map'](_0x5ef704,_0x1a4b('0x58')),'role':_0x1a4b('0x59')},'attributes':['id','name',_0x1a4b('0x5a'),_0x1a4b('0x5b'),_0x1a4b('0x5c')]});}})[_0x1a4b('0x29')](function(_0x476b93){if(_0x476b93){return{'count':_0x476b93[_0x1a4b('0x24')],'rows':_[_0x1a4b('0x31')](_0x476b93['rows'],function(_0xe86d5d){return{'membername':_0xe86d5d[_0x1a4b('0x2f')],'UserId':_0xe86d5d['id'],'queue_name':_0x1b975b[_0x1a4b('0x2f')],'MailQueueId':_0x1b975b['id'],'interface':util['format'](_0x1a4b('0x5d'),_0x1a4b('0x5e'),_0xe86d5d[_0x1a4b('0x2f')]),'penalty':0x0,'paused':_0xe86d5d[_0x1a4b('0x5a')],'createdAt':_0xe86d5d[_0x1a4b('0x5c')],'updatedAt':_0xe86d5d[_0x1a4b('0x5b')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x1a4b('0x29')](respondWithFilteredResult(_0x3d7a9d,_0x42862c))['catch'](handleError(_0x3d7a9d,null));};exports['getTeams']=function(_0x2b7fa9,_0x3888ff,_0x4ed7a9){var _0x2d5100={};var _0x563456={};var _0x4341a3;var _0x47e787;return db[_0x1a4b('0x32')][_0x1a4b('0x52')]({'where':{'id':_0x2b7fa9['params']['id']}})['then'](handleEntityNotFound(_0x3888ff,null))['then'](function(_0x2e7daa){if(_0x2e7daa){_0x4341a3=_0x2e7daa;_0x563456[_0x1a4b('0x34')]=_[_0x1a4b('0x46')](db[_0x1a4b('0x5f')][_0x1a4b('0x47')]);_0x563456[_0x1a4b('0x35')]=_[_0x1a4b('0x46')](_0x2b7fa9['query']);_0x563456[_0x1a4b('0x36')]=_['intersection'](_0x563456[_0x1a4b('0x34')],_0x563456['query']);_0x2d5100['attributes']=_[_0x1a4b('0x37')](_0x563456[_0x1a4b('0x34')],qs[_0x1a4b('0x39')](_0x2b7fa9[_0x1a4b('0x35')]['fields']));_0x2d5100[_0x1a4b('0x38')]=_0x2d5100[_0x1a4b('0x38')][_0x1a4b('0x48')]?_0x2d5100['attributes']:_0x563456['model'];_0x2d5100['order']=qs[_0x1a4b('0x54')](_0x2b7fa9[_0x1a4b('0x35')]['sort']);_0x2d5100[_0x1a4b('0x3e')]=qs[_0x1a4b('0x36')](_[_0x1a4b('0x3c')](_0x2b7fa9[_0x1a4b('0x35')],_0x563456['filters']));if(_0x2b7fa9[_0x1a4b('0x35')]['filter']){_0x2d5100[_0x1a4b('0x3e')]=_[_0x1a4b('0x3f')](_0x2d5100[_0x1a4b('0x3e')],{'$or':_['map'](_0x2d5100[_0x1a4b('0x38')],function(_0x1eba43){var _0x3d7f6c={};_0x3d7f6c[_0x1eba43]={'$like':'%'+_0x2b7fa9[_0x1a4b('0x35')]['filter']+'%'};return _0x3d7f6c;})});}_0x2d5100=_[_0x1a4b('0x3f')]({},_0x2d5100,_0x2b7fa9[_0x1a4b('0x41')]);return _0x4341a3['getTeams'](_0x2d5100);}})[_0x1a4b('0x29')](function(_0xc0620b){if(_0xc0620b){_0x47e787=_0xc0620b[_0x1a4b('0x48')];if(!_0x2b7fa9['query'][_0x1a4b('0x3a')](_0x1a4b('0x3b'))){_0x2d5100['limit']=qs[_0x1a4b('0x23')](_0x2b7fa9['query']['limit']);_0x2d5100[_0x1a4b('0x21')]=qs[_0x1a4b('0x21')](_0x2b7fa9[_0x1a4b('0x35')][_0x1a4b('0x21')]);}return _0x4341a3[_0x1a4b('0x60')](_0x2d5100);}})[_0x1a4b('0x29')](function(_0x17ac45){if(_0x17ac45){return _0x17ac45?{'count':_0x47e787,'rows':_0x17ac45}:null;}})[_0x1a4b('0x29')](respondWithResult(_0x3888ff,null))[_0x1a4b('0x44')](handleError(_0x3888ff,null));};exports[_0x1a4b('0x61')]=function(_0x380732,_0x996c74,_0x26191d){var _0x213594=_0x380732[_0x1a4b('0x4b')][_0x1a4b('0x62')];return db['Team'][_0x1a4b('0x56')]({'where':{'id':_0x213594},'attributes':['id'],'include':[{'model':db[_0x1a4b('0x63')],'as':_0x1a4b('0x64'),'attributes':['id',_0x1a4b('0x2f'),_0x1a4b('0x65'),_0x1a4b('0x66'),_0x1a4b('0x67')],'raw':!![]}]})[_0x1a4b('0x29')](function(_0xbf4794){if(_0xbf4794){var _0x3341dc=_['flatMap'](_0xbf4794,function(_0xd84742){var _0x44fc6e=_0xd84742[_0x1a4b('0x2a')]({'plain':!![]});return _0x44fc6e[_0x1a4b('0x64')];});return db['MailQueue']['find']({'where':{'id':_0x380732[_0x1a4b('0x45')]['id']}})[_0x1a4b('0x29')](function(_0x4dbd80){return db['sequelize'][_0x1a4b('0x68')](function(_0x533638){return _0x4dbd80['addTeams'](_0x213594,{'transaction':_0x533638})[_0x1a4b('0x29')](function(){return BPromise['each'](_0x3341dc,function(_0x26bddb){return db['UserMailQueue']['findOrCreate']({'where':{'UserId':_0x26bddb['id'],'MailQueueId':_0x380732['params']['id']},'transaction':_0x533638});});})[_0x1a4b('0x29')](function(){_0x3341dc[_0x1a4b('0x69')](function(_0x23719b){socket[_0x1a4b('0x6a')](_0x1a4b('0x6b'),{'UserId':_0x23719b['id'],'MailQueueId':_0x4dbd80['id']});});});});});}})[_0x1a4b('0x29')](respondWithStatusCode(_0x996c74,null))['catch'](handleError(_0x996c74,null));};exports[_0x1a4b('0x6c')]=function(_0x4a4fd0,_0x50382d,_0x2b207c){return db['Team'][_0x1a4b('0x56')]({'where':{'id':_0x4a4fd0[_0x1a4b('0x35')][_0x1a4b('0x62')]},'attributes':['id'],'include':[{'model':db[_0x1a4b('0x63')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x1a4b('0x29')](handleEntityNotFound(_0x50382d,null))[_0x1a4b('0x29')](function(_0x4a950b){var _0x3a3507=_[_0x1a4b('0x31')](_0x4a950b,'id');var _0x148520=[];var _0xabe1ff=[];var _0x18bcd3=squel[_0x1a4b('0x6d')]();_0x18bcd3['field'](_0x1a4b('0x6e'))[_0x1a4b('0x6f')](_0x1a4b('0x70'),'tq')[_0x1a4b('0x71')](_0x1a4b('0x72'),'ut',_0x1a4b('0x73'))[_0x1a4b('0x3e')](_0x1a4b('0x74'),_0x4a4fd0['params']['id']);for(var _0x48e68c=0x0;_0x48e68c<_0x4a950b[_0x1a4b('0x48')];_0x48e68c+=0x1){let _0xa962bc=_0x4a950b[_0x48e68c];for(var _0xcb9008=0x0;_0xcb9008<_0xa962bc[_0x1a4b('0x64')][_0x1a4b('0x48')];_0xcb9008+=0x1){let _0x5c3ad5=_0xa962bc[_0x1a4b('0x64')][_0xcb9008];var _0x4a778d=_0x18bcd3[_0x1a4b('0x75')]();_0x4a778d[_0x1a4b('0x3e')](_0x1a4b('0x76'),_0x5c3ad5['id']);_0xabe1ff['push'](db[_0x1a4b('0x77')]['query'](_0x4a778d[_0x1a4b('0x78')](),{'type':db[_0x1a4b('0x77')][_0x1a4b('0x79')]['SELECT']})['then'](function(_0x5cd51c){if(_0x5cd51c[_0x1a4b('0x48')]===0x1){return _0x5c3ad5['id'];}else{var _0x134338=_[_0x1a4b('0x7a')](_['map'](_0x5cd51c,_0x1a4b('0x7b')),function(_0x1febb7){return _[_0x1a4b('0x7c')](_0x3a3507,_0x1febb7);});if(_0x134338){return _0x5c3ad5['id'];}}}));}}return BPromise[_0x1a4b('0x7d')](_0xabe1ff)['then'](function(_0x3ff961){_0x148520=_(_0x148520)[_0x1a4b('0x7e')](_0x3ff961)[_0x1a4b('0x7f')]()['value']();return db[_0x1a4b('0x32')]['find']({'where':{'id':_0x4a4fd0[_0x1a4b('0x45')]['id']}})['then'](function(_0x196185){return db[_0x1a4b('0x77')]['transaction'](function(_0x2b76ed){return _0x196185[_0x1a4b('0x6c')](_0x4a4fd0[_0x1a4b('0x35')][_0x1a4b('0x62')],{'transaction':_0x2b76ed})[_0x1a4b('0x29')](function(){if(!_['isEmpty'](_0x148520)){return _0x196185[_0x1a4b('0x80')](_0x148520,{'transaction':_0x2b76ed});}})[_0x1a4b('0x29')](function(){_0x148520[_0x1a4b('0x69')](function(_0x3eac65){socket[_0x1a4b('0x6a')]('userMailQueue:remove',{'UserId':_0x3eac65,'MailQueueId':_0x196185['id']});});});});});});})[_0x1a4b('0x29')](respondWithStatusCode(_0x50382d,null))[_0x1a4b('0x44')](handleError(_0x50382d,null));};exports['addAgents']=function(_0x15f253,_0x50907c,_0x16ccb7){return db['MailQueue'][_0x1a4b('0x49')]({'where':{'id':_0x15f253[_0x1a4b('0x45')]['id']}})['then'](handleEntityNotFound(_0x50907c,null))[_0x1a4b('0x29')](function(_0x39f8f3){if(_0x39f8f3){return _0x39f8f3[_0x1a4b('0x81')](_0x15f253[_0x1a4b('0x4b')][_0x1a4b('0x62')],_[_0x1a4b('0x82')](_0x15f253['body'],[_0x1a4b('0x62'),'id'])||{})[_0x1a4b('0x83')](function(_0x51d6b3){for(var _0x15939c=0x0;_0x15939c<_0x15f253['body'][_0x1a4b('0x62')][_0x1a4b('0x48')];_0x15939c+=0x1){socket[_0x1a4b('0x6a')](_0x1a4b('0x6b'),{'UserId':Number(_0x15f253[_0x1a4b('0x4b')][_0x1a4b('0x62')][_0x15939c]),'MailQueueId':Number(_0x15f253[_0x1a4b('0x45')]['id'])});}return _0x51d6b3;});}})[_0x1a4b('0x29')](respondWithResult(_0x50907c,null))[_0x1a4b('0x44')](handleError(_0x50907c,null));};exports['removeAgents']=function(_0x2060f5,_0x429feb,_0x22c66e){return db[_0x1a4b('0x32')]['find']({'where':{'id':_0x2060f5['params']['id']}})[_0x1a4b('0x29')](handleEntityNotFound(_0x429feb,null))[_0x1a4b('0x29')](function(_0x2e59d2){if(_0x2e59d2){return _0x2e59d2['removeAgents'](_0x2060f5[_0x1a4b('0x35')][_0x1a4b('0x62')])['then'](function(){if(_[_0x1a4b('0x84')](_0x2060f5[_0x1a4b('0x35')][_0x1a4b('0x62')])){for(var _0x1dcb8e=0x0;_0x1dcb8e<_0x2060f5[_0x1a4b('0x35')][_0x1a4b('0x62')][_0x1a4b('0x48')];_0x1dcb8e+=0x1){socket[_0x1a4b('0x6a')](_0x1a4b('0x85'),{'UserId':Number(_0x2060f5['query'][_0x1a4b('0x62')][_0x1dcb8e]),'MailQueueId':Number(_0x2060f5[_0x1a4b('0x45')]['id'])});}}else{socket[_0x1a4b('0x6a')]('userMailQueue:remove',{'UserId':Number(_0x2060f5[_0x1a4b('0x35')]['ids']),'MailQueueId':Number(_0x2060f5[_0x1a4b('0x45')]['id'])});}});}})[_0x1a4b('0x29')](respondWithStatusCode(_0x429feb,null))[_0x1a4b('0x44')](handleError(_0x429feb,null));};exports[_0x1a4b('0x86')]=function(_0x4dbf2f,_0x3d6e2b,_0x333b7e){var _0x492fb1={};var _0x4a0886={};var _0x2641f6;var _0x3d7328;return db[_0x1a4b('0x32')]['findOne']({'where':{'id':_0x4dbf2f['params']['id']}})[_0x1a4b('0x29')](handleEntityNotFound(_0x3d6e2b,null))[_0x1a4b('0x29')](function(_0xc7c59a){if(_0xc7c59a){_0x2641f6=_0xc7c59a;_0x4a0886['model']=_[_0x1a4b('0x46')](db['User'][_0x1a4b('0x47')]);_0x4a0886[_0x1a4b('0x35')]=_[_0x1a4b('0x46')](_0x4dbf2f[_0x1a4b('0x35')]);_0x4a0886[_0x1a4b('0x36')]=_[_0x1a4b('0x37')](_0x4a0886[_0x1a4b('0x34')],_0x4a0886['query']);_0x492fb1[_0x1a4b('0x38')]=_['intersection'](_0x4a0886[_0x1a4b('0x34')],qs[_0x1a4b('0x39')](_0x4dbf2f['query'][_0x1a4b('0x39')]));_0x492fb1[_0x1a4b('0x38')]=_0x492fb1[_0x1a4b('0x38')][_0x1a4b('0x48')]?_0x492fb1[_0x1a4b('0x38')]:_0x4a0886[_0x1a4b('0x34')];_0x492fb1['order']=qs[_0x1a4b('0x54')](_0x4dbf2f[_0x1a4b('0x35')][_0x1a4b('0x54')]);_0x492fb1[_0x1a4b('0x3e')]=qs[_0x1a4b('0x36')](_[_0x1a4b('0x3c')](_0x4dbf2f[_0x1a4b('0x35')],_0x4a0886[_0x1a4b('0x36')]));if(_0x4dbf2f[_0x1a4b('0x35')][_0x1a4b('0x3d')]){_0x492fb1['where']=_[_0x1a4b('0x3f')](_0x492fb1['where'],{'$or':_[_0x1a4b('0x31')](_0x492fb1[_0x1a4b('0x38')],function(_0x3ec6d3){var _0x387e5d={};_0x387e5d[_0x3ec6d3]={'$like':'%'+_0x4dbf2f[_0x1a4b('0x35')][_0x1a4b('0x3d')]+'%'};return _0x387e5d;})});}_0x492fb1=_[_0x1a4b('0x3f')]({},_0x492fb1,_0x4dbf2f['options']);return _0x2641f6[_0x1a4b('0x86')](_0x492fb1);}})['then'](function(_0x305fbb){if(_0x305fbb){_0x3d7328=_0x305fbb[_0x1a4b('0x48')];if(!_0x4dbf2f['query'][_0x1a4b('0x3a')](_0x1a4b('0x3b'))){_0x492fb1[_0x1a4b('0x23')]=qs['limit'](_0x4dbf2f[_0x1a4b('0x35')]['limit']);_0x492fb1[_0x1a4b('0x21')]=qs['offset'](_0x4dbf2f[_0x1a4b('0x35')]['offset']);}return _0x2641f6['getAgents'](_0x492fb1);}})[_0x1a4b('0x29')](function(_0x3a9f27){if(_0x3a9f27){return _0x3a9f27?{'count':_0x3d7328,'rows':_0x3a9f27}:null;}})[_0x1a4b('0x29')](respondWithResult(_0x3d6e2b,null))['catch'](handleError(_0x3d6e2b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe263=['../../mysqldb','MailQueue','save','update','remove','hasOwnProperty','hook','exports','events'];(function(_0x29cce4,_0x379f7c){var _0x1a6616=function(_0x21aadf){while(--_0x21aadf){_0x29cce4['push'](_0x29cce4['shift']());}};_0x1a6616(++_0x379f7c);}(_0xe263,0xb3));var _0x3e26=function(_0x2b9a3b,_0x1efcbf){_0x2b9a3b=_0x2b9a3b-0x0;var _0x444328=_0xe263[_0x2b9a3b];return _0x444328;};'use strict';var EventEmitter=require(_0x3e26('0x0'));var MailQueue=require(_0x3e26('0x1'))['db'][_0x3e26('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3e26('0x3'),'afterUpdate':_0x3e26('0x4'),'afterDestroy':_0x3e26('0x5')};function emitEvent(_0x4f4b39){return function(_0x506006,_0x28f8d7,_0x54f450){MailQueueEvents['emit'](_0x4f4b39+':'+_0x506006['id'],_0x506006);MailQueueEvents['emit'](_0x4f4b39,_0x506006);_0x54f450(null);};}for(var e in events){if(events[_0x3e26('0x6')](e)){var event=events[e];MailQueue[_0x3e26('0x7')](e,emitEvent(event));}}module[_0x3e26('0x8')]=MailQueueEvents;
\ No newline at end of file
+var _0x5f3b=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','MailQueue','setMaxListeners','remove'];(function(_0x43975d,_0x50527b){var _0x236b22=function(_0x42c334){while(--_0x42c334){_0x43975d['push'](_0x43975d['shift']());}};_0x236b22(++_0x50527b);}(_0x5f3b,0x109));var _0xb5f3=function(_0x478b91,_0x1f327d){_0x478b91=_0x478b91-0x0;var _0x51b490=_0x5f3b[_0x478b91];return _0x51b490;};'use strict';var EventEmitter=require(_0xb5f3('0x0'));var MailQueue=require(_0xb5f3('0x1'))['db'][_0xb5f3('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xb5f3('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0xb5f3('0x4')};function emitEvent(_0x153c95){return function(_0x37bba7,_0x48fe83,_0x4a967d){MailQueueEvents['emit'](_0x153c95+':'+_0x37bba7['id'],_0x37bba7);MailQueueEvents[_0xb5f3('0x5')](_0x153c95,_0x37bba7);_0x4a967d(null);};}for(var e in events){if(events[_0xb5f3('0x6')](e)){var event=events[e];MailQueue[_0xb5f3('0x7')](e,emitEvent(event));}}module[_0xb5f3('0x8')]=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3356=['mail_queues','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailQueue.attributes','exports','MailQueue'];(function(_0x3ff1b7,_0x23e740){var _0x32fdb1=function(_0xd19ce4){while(--_0xd19ce4){_0x3ff1b7['push'](_0x3ff1b7['shift']());}};_0x32fdb1(++_0x23e740);}(_0x3356,0x1bb));var _0x6335=function(_0x46e363,_0x45d7e2){_0x46e363=_0x46e363-0x0;var _0x3fb059=_0x3356[_0x46e363];return _0x3fb059;};'use strict';var _=require(_0x6335('0x0'));var util=require(_0x6335('0x1'));var logger=require('../../config/logger')(_0x6335('0x2'));var moment=require(_0x6335('0x3'));var BPromise=require(_0x6335('0x4'));var rp=require(_0x6335('0x5'));var fs=require('fs');var path=require(_0x6335('0x6'));var rimraf=require(_0x6335('0x7'));var config=require(_0x6335('0x8'));var attributes=require(_0x6335('0x9'));module[_0x6335('0xa')]=function(_0x11d080,_0x1fd3ae){return _0x11d080['define'](_0x6335('0xb'),attributes,{'tableName':_0x6335('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x741d=['lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./mailQueue.attributes','define','MailQueue','mail_queues'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x741d,0x9c));var _0xd741=function(_0x8f2ee8,_0xb1f7d4){_0x8f2ee8=_0x8f2ee8-0x0;var _0x470834=_0x741d[_0x8f2ee8];return _0x470834;};'use strict';var _=require(_0xd741('0x0'));var util=require('util');var logger=require(_0xd741('0x1'))(_0xd741('0x2'));var moment=require(_0xd741('0x3'));var BPromise=require(_0xd741('0x4'));var rp=require(_0xd741('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd741('0x6'));var config=require(_0xd741('0x7'));var attributes=require(_0xd741('0x8'));module['exports']=function(_0x34c02e,_0x4a0c79){return _0x34c02e[_0xd741('0x9')](_0xd741('0xa'),attributes,{'tableName':_0xd741('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2096=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./mailQueue.socket','register','request','then','info','MailQueue,\x20%s,\x20%s','debug','request\x20sent','error','message','result','catch','GetMailQueue','MailQueue','findAll','options','raw','attributes','include','map','model','stringify','ShowMailQueue','find','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0x1ed116,_0x23bc80){var _0x574066=function(_0x424f9e){while(--_0x424f9e){_0x1ed116['push'](_0x1ed116['shift']());}};_0x574066(++_0x23bc80);}(_0x2096,0x112));var _0x6209=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x2096[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0x6209('0x0'));var util=require(_0x6209('0x1'));var moment=require(_0x6209('0x2'));var BPromise=require(_0x6209('0x3'));var rs=require(_0x6209('0x4'));var fs=require('fs');var Redis=require(_0x6209('0x5'));var db=require(_0x6209('0x6'))['db'];var utils=require(_0x6209('0x7'));var logger=require(_0x6209('0x8'))(_0x6209('0x9'));var config=require(_0x6209('0xa'));var jayson=require(_0x6209('0xb'));var client=jayson[_0x6209('0xc')]['http']({'port':0x232a});config[_0x6209('0xd')]=_[_0x6209('0xe')](config[_0x6209('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x6209('0xf'))(new Redis(config['redis']));require(_0x6209('0x10'))[_0x6209('0x11')](socket);function respondWithRpcPromise(_0x2f1dab,_0x526d15,_0x30949e){return new BPromise(function(_0x240be7,_0x16d26c){return client[_0x6209('0x12')](_0x2f1dab,_0x30949e)[_0x6209('0x13')](function(_0x3707fb){logger[_0x6209('0x14')](_0x6209('0x15'),_0x526d15,'request\x20sent');logger[_0x6209('0x16')]('MailQueue,\x20%s,\x20%s,\x20%s',_0x526d15,_0x6209('0x17'),JSON['stringify'](_0x3707fb));if(_0x3707fb['error']){if(_0x3707fb[_0x6209('0x18')]['code']===0x1f4){logger[_0x6209('0x18')](_0x6209('0x15'),_0x526d15,_0x3707fb[_0x6209('0x18')][_0x6209('0x19')]);return _0x16d26c(_0x3707fb[_0x6209('0x18')][_0x6209('0x19')]);}logger[_0x6209('0x18')](_0x6209('0x15'),_0x526d15,_0x3707fb[_0x6209('0x18')][_0x6209('0x19')]);return _0x240be7(_0x3707fb[_0x6209('0x18')][_0x6209('0x19')]);}else{logger[_0x6209('0x14')](_0x6209('0x15'),_0x526d15,'request\x20sent');_0x240be7(_0x3707fb[_0x6209('0x1a')][_0x6209('0x19')]);}})[_0x6209('0x1b')](function(_0x1eb850){logger['error'](_0x6209('0x15'),_0x526d15,_0x1eb850);_0x16d26c(_0x1eb850);});});}exports[_0x6209('0x1c')]=function(_0x19bc81){var _0x23496d=this;return new Promise(function(_0x18f4d4,_0x13fe3d){return db[_0x6209('0x1d')][_0x6209('0x1e')]({'raw':_0x19bc81['options']?_0x19bc81[_0x6209('0x1f')][_0x6209('0x20')]===undefined?!![]:![]:!![],'where':_0x19bc81[_0x6209('0x1f')]?_0x19bc81[_0x6209('0x1f')]['where']||null:null,'attributes':_0x19bc81[_0x6209('0x1f')]?_0x19bc81[_0x6209('0x1f')][_0x6209('0x21')]||null:null,'limit':_0x19bc81[_0x6209('0x1f')]?_0x19bc81[_0x6209('0x1f')]['limit']||null:null,'include':_0x19bc81[_0x6209('0x1f')]?_0x19bc81[_0x6209('0x1f')][_0x6209('0x22')]?_[_0x6209('0x23')](_0x19bc81[_0x6209('0x1f')]['include'],function(_0x3a8099){return{'model':db[_0x3a8099[_0x6209('0x24')]],'as':_0x3a8099['as'],'attributes':_0x3a8099[_0x6209('0x21')],'include':_0x3a8099[_0x6209('0x22')]?_['map'](_0x3a8099[_0x6209('0x22')],function(_0x185794){return{'model':db[_0x185794[_0x6209('0x24')]],'as':_0x185794['as'],'attributes':_0x185794['attributes'],'include':_0x185794[_0x6209('0x22')]?_[_0x6209('0x23')](_0x185794[_0x6209('0x22')],function(_0x2a3462){return{'model':db[_0x2a3462[_0x6209('0x24')]],'as':_0x2a3462['as'],'attributes':_0x2a3462[_0x6209('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4dc98e){logger['info'](_0x6209('0x1c'),_0x19bc81);logger[_0x6209('0x16')](_0x6209('0x1c'),_0x19bc81,JSON[_0x6209('0x25')](_0x4dc98e));_0x18f4d4(_0x4dc98e);})['catch'](function(_0x1c6958){logger[_0x6209('0x18')](_0x6209('0x1c'),_0x1c6958['message'],_0x19bc81);_0x13fe3d(_0x23496d[_0x6209('0x18')](0x1f4,_0x1c6958[_0x6209('0x19')]));});});};exports[_0x6209('0x26')]=function(_0x2a101e){var _0x1fb701=this;return new Promise(function(_0x382e23,_0x374efb){return db[_0x6209('0x1d')][_0x6209('0x27')]({'raw':_0x2a101e['options']?_0x2a101e['options'][_0x6209('0x20')]===undefined?!![]:![]:!![],'where':_0x2a101e[_0x6209('0x1f')]?_0x2a101e[_0x6209('0x1f')]['where']||null:null,'attributes':_0x2a101e[_0x6209('0x1f')]?_0x2a101e['options'][_0x6209('0x21')]||null:null,'include':_0x2a101e[_0x6209('0x1f')]?_0x2a101e[_0x6209('0x1f')][_0x6209('0x22')]?_[_0x6209('0x23')](_0x2a101e[_0x6209('0x1f')][_0x6209('0x22')],function(_0x569671){return{'model':db[_0x569671[_0x6209('0x24')]],'as':_0x569671['as'],'attributes':_0x569671[_0x6209('0x21')],'include':_0x569671[_0x6209('0x22')]?_[_0x6209('0x23')](_0x569671[_0x6209('0x22')],function(_0x2d75f8){return{'model':db[_0x2d75f8[_0x6209('0x24')]],'as':_0x2d75f8['as'],'attributes':_0x2d75f8['attributes'],'include':_0x2d75f8[_0x6209('0x22')]?_['map'](_0x2d75f8['include'],function(_0x5609e4){return{'model':db[_0x5609e4[_0x6209('0x24')]],'as':_0x5609e4['as'],'attributes':_0x5609e4[_0x6209('0x21')]};}):[]};}):[]};}):[]:[]})[_0x6209('0x13')](function(_0x528aa1){logger[_0x6209('0x14')](_0x6209('0x26'),_0x2a101e);logger[_0x6209('0x16')](_0x6209('0x26'),_0x2a101e,JSON[_0x6209('0x25')](_0x528aa1));_0x382e23(_0x528aa1);})[_0x6209('0x1b')](function(_0x187a3a){logger['error']('ShowMailQueue',_0x187a3a[_0x6209('0x19')],_0x2a101e);_0x374efb(_0x1fb701[_0x6209('0x18')](0x1f4,_0x187a3a['message']));});});};
\ No newline at end of file
+var _0xaa12=['register','request','info','MailQueue,\x20%s,\x20%s','request\x20sent','MailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','MailQueue','findAll','options','raw','where','attributes','limit','map','model','include','then','GetMailQueue','debug','ShowMailQueue','find','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./mailQueue.socket'];(function(_0x48eac6,_0x364521){var _0x33383c=function(_0x2feea1){while(--_0x2feea1){_0x48eac6['push'](_0x48eac6['shift']());}};_0x33383c(++_0x364521);}(_0xaa12,0xec));var _0x2aa1=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xaa12[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x2aa1('0x0'));var util=require('util');var moment=require(_0x2aa1('0x1'));var BPromise=require(_0x2aa1('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2aa1('0x3'));var db=require(_0x2aa1('0x4'))['db'];var utils=require(_0x2aa1('0x5'));var logger=require(_0x2aa1('0x6'))(_0x2aa1('0x7'));var config=require(_0x2aa1('0x8'));var jayson=require(_0x2aa1('0x9'));var client=jayson[_0x2aa1('0xa')][_0x2aa1('0xb')]({'port':0x232a});config[_0x2aa1('0xc')]=_[_0x2aa1('0xd')](config[_0x2aa1('0xc')],{'host':_0x2aa1('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2aa1('0xc')]));require(_0x2aa1('0xf'))[_0x2aa1('0x10')](socket);function respondWithRpcPromise(_0x26d2f9,_0x44e0aa,_0xe4e40f){return new BPromise(function(_0x2d1c4e,_0x406a22){return client[_0x2aa1('0x11')](_0x26d2f9,_0xe4e40f)['then'](function(_0x5889f0){logger[_0x2aa1('0x12')](_0x2aa1('0x13'),_0x44e0aa,_0x2aa1('0x14'));logger['debug'](_0x2aa1('0x15'),_0x44e0aa,'request\x20sent',JSON[_0x2aa1('0x16')](_0x5889f0));if(_0x5889f0[_0x2aa1('0x17')]){if(_0x5889f0['error'][_0x2aa1('0x18')]===0x1f4){logger[_0x2aa1('0x17')](_0x2aa1('0x13'),_0x44e0aa,_0x5889f0[_0x2aa1('0x17')][_0x2aa1('0x19')]);return _0x406a22(_0x5889f0[_0x2aa1('0x17')][_0x2aa1('0x19')]);}logger[_0x2aa1('0x17')](_0x2aa1('0x13'),_0x44e0aa,_0x5889f0[_0x2aa1('0x17')][_0x2aa1('0x19')]);return _0x2d1c4e(_0x5889f0[_0x2aa1('0x17')][_0x2aa1('0x19')]);}else{logger[_0x2aa1('0x12')](_0x2aa1('0x13'),_0x44e0aa,_0x2aa1('0x14'));_0x2d1c4e(_0x5889f0['result'][_0x2aa1('0x19')]);}})[_0x2aa1('0x1a')](function(_0x1c8ef2){logger[_0x2aa1('0x17')](_0x2aa1('0x13'),_0x44e0aa,_0x1c8ef2);_0x406a22(_0x1c8ef2);});});}exports['GetMailQueue']=function(_0xd118f1){var _0xff0443=this;return new Promise(function(_0x4f1dc0,_0x1cb876){return db[_0x2aa1('0x1b')][_0x2aa1('0x1c')]({'raw':_0xd118f1[_0x2aa1('0x1d')]?_0xd118f1[_0x2aa1('0x1d')][_0x2aa1('0x1e')]===undefined?!![]:![]:!![],'where':_0xd118f1[_0x2aa1('0x1d')]?_0xd118f1[_0x2aa1('0x1d')][_0x2aa1('0x1f')]||null:null,'attributes':_0xd118f1['options']?_0xd118f1[_0x2aa1('0x1d')][_0x2aa1('0x20')]||null:null,'limit':_0xd118f1[_0x2aa1('0x1d')]?_0xd118f1[_0x2aa1('0x1d')][_0x2aa1('0x21')]||null:null,'include':_0xd118f1[_0x2aa1('0x1d')]?_0xd118f1[_0x2aa1('0x1d')]['include']?_[_0x2aa1('0x22')](_0xd118f1['options']['include'],function(_0x714620){return{'model':db[_0x714620[_0x2aa1('0x23')]],'as':_0x714620['as'],'attributes':_0x714620[_0x2aa1('0x20')],'include':_0x714620[_0x2aa1('0x24')]?_[_0x2aa1('0x22')](_0x714620[_0x2aa1('0x24')],function(_0x4d186b){return{'model':db[_0x4d186b[_0x2aa1('0x23')]],'as':_0x4d186b['as'],'attributes':_0x4d186b[_0x2aa1('0x20')],'include':_0x4d186b[_0x2aa1('0x24')]?_[_0x2aa1('0x22')](_0x4d186b[_0x2aa1('0x24')],function(_0x151365){return{'model':db[_0x151365[_0x2aa1('0x23')]],'as':_0x151365['as'],'attributes':_0x151365[_0x2aa1('0x20')]};}):[]};}):[]};}):[]:[]})[_0x2aa1('0x25')](function(_0x68e5c8){logger['info'](_0x2aa1('0x26'),_0xd118f1);logger[_0x2aa1('0x27')](_0x2aa1('0x26'),_0xd118f1,JSON[_0x2aa1('0x16')](_0x68e5c8));_0x4f1dc0(_0x68e5c8);})[_0x2aa1('0x1a')](function(_0xb5595c){logger[_0x2aa1('0x17')](_0x2aa1('0x26'),_0xb5595c['message'],_0xd118f1);_0x1cb876(_0xff0443[_0x2aa1('0x17')](0x1f4,_0xb5595c[_0x2aa1('0x19')]));});});};exports[_0x2aa1('0x28')]=function(_0x447d17){var _0x4e45f1=this;return new Promise(function(_0x4371df,_0x208205){return db[_0x2aa1('0x1b')][_0x2aa1('0x29')]({'raw':_0x447d17[_0x2aa1('0x1d')]?_0x447d17['options'][_0x2aa1('0x1e')]===undefined?!![]:![]:!![],'where':_0x447d17['options']?_0x447d17[_0x2aa1('0x1d')][_0x2aa1('0x1f')]||null:null,'attributes':_0x447d17[_0x2aa1('0x1d')]?_0x447d17[_0x2aa1('0x1d')]['attributes']||null:null,'include':_0x447d17[_0x2aa1('0x1d')]?_0x447d17[_0x2aa1('0x1d')][_0x2aa1('0x24')]?_[_0x2aa1('0x22')](_0x447d17[_0x2aa1('0x1d')]['include'],function(_0x55edcb){return{'model':db[_0x55edcb[_0x2aa1('0x23')]],'as':_0x55edcb['as'],'attributes':_0x55edcb[_0x2aa1('0x20')],'include':_0x55edcb[_0x2aa1('0x24')]?_[_0x2aa1('0x22')](_0x55edcb[_0x2aa1('0x24')],function(_0x598622){return{'model':db[_0x598622['model']],'as':_0x598622['as'],'attributes':_0x598622[_0x2aa1('0x20')],'include':_0x598622[_0x2aa1('0x24')]?_[_0x2aa1('0x22')](_0x598622['include'],function(_0x391986){return{'model':db[_0x391986[_0x2aa1('0x23')]],'as':_0x391986['as'],'attributes':_0x391986['attributes']};}):[]};}):[]};}):[]:[]})[_0x2aa1('0x25')](function(_0x2b1baf){logger['info']('ShowMailQueue',_0x447d17);logger[_0x2aa1('0x27')](_0x2aa1('0x28'),_0x447d17,JSON[_0x2aa1('0x16')](_0x2b1baf));_0x4371df(_0x2b1baf);})[_0x2aa1('0x1a')](function(_0x506c63){logger[_0x2aa1('0x17')](_0x2aa1('0x28'),_0x506c63[_0x2aa1('0x19')],_0x447d17);_0x208205(_0x4e45f1['error'](0x1f4,_0x506c63['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88e8=['removeListener','register','length','mailQueue:','save','remove','update'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x88e8,0xcf));var _0x888e=function(_0x4442cc,_0x4b8f77){_0x4442cc=_0x4442cc-0x0;var _0x5efbbe=_0x88e8[_0x4442cc];return _0x5efbbe;};'use strict';var MailQueueEvents=require('./mailQueue.events');var events=[_0x888e('0x0'),_0x888e('0x1'),_0x888e('0x2')];function createListener(_0xfab4de,_0x267e9d){return function(_0x7d3f42){_0x267e9d['emit'](_0xfab4de,_0x7d3f42);};}function removeListener(_0x10c139,_0x51a315){return function(){MailQueueEvents[_0x888e('0x3')](_0x10c139,_0x51a315);};}exports[_0x888e('0x4')]=function(_0x3a77aa){for(var _0x4b9ff5=0x0,_0x4967ff=events[_0x888e('0x5')];_0x4b9ff5<_0x4967ff;_0x4b9ff5++){var _0x5f2523=events[_0x4b9ff5];var _0x5a31b9=createListener(_0x888e('0x6')+_0x5f2523,_0x3a77aa);MailQueueEvents['on'](_0x5f2523,_0x5a31b9);}};
\ No newline at end of file
+var _0x987f=['mailQueue:','./mailQueue.events','remove','update','emit'];(function(_0x4a4922,_0x82cb8f){var _0x55a8c6=function(_0x59712e){while(--_0x59712e){_0x4a4922['push'](_0x4a4922['shift']());}};_0x55a8c6(++_0x82cb8f);}(_0x987f,0x169));var _0xf987=function(_0x5ac7d7,_0x109040){_0x5ac7d7=_0x5ac7d7-0x0;var _0x23955f=_0x987f[_0x5ac7d7];return _0x23955f;};'use strict';var MailQueueEvents=require(_0xf987('0x0'));var events=['save',_0xf987('0x1'),_0xf987('0x2')];function createListener(_0x5935e2,_0x58255e){return function(_0xd53e93){_0x58255e[_0xf987('0x3')](_0x5935e2,_0xd53e93);};}function removeListener(_0x56f695,_0x42835f){return function(){MailQueueEvents['removeListener'](_0x56f695,_0x42835f);};}exports['register']=function(_0x4765dd){for(var _0xc48d78=0x0,_0x45bfe6=events['length'];_0xc48d78<_0x45bfe6;_0xc48d78++){var _0x1ba4bd=events[_0xc48d78];var _0x2bc3d2=createListener(_0xf987('0x4')+_0x1ba4bd,_0x4765dd);MailQueueEvents['on'](_0x1ba4bd,_0x2bc3d2);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1350=['isAuthenticated','index','/describe','describe','/:id','post','put','update','delete','path','connect-timeout','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueueReport.controller','get'];(function(_0x9326c8,_0x5392e3){var _0x47d221=function(_0x186021){while(--_0x186021){_0x9326c8['push'](_0x9326c8['shift']());}};_0x47d221(++_0x5392e3);}(_0x1350,0x159));var _0x0135=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1350[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x0135('0x0'));var timeout=require(_0x0135('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x0135('0x2'));var interaction=require(_0x0135('0x3'));var config=require(_0x0135('0x4'));var controller=require(_0x0135('0x5'));router[_0x0135('0x6')]('/',auth[_0x0135('0x7')](),controller[_0x0135('0x8')]);router[_0x0135('0x6')](_0x0135('0x9'),auth[_0x0135('0x7')](),controller[_0x0135('0xa')]);router[_0x0135('0x6')](_0x0135('0xb'),auth[_0x0135('0x7')](),controller['show']);router[_0x0135('0xc')]('/',auth[_0x0135('0x7')](),controller['create']);router[_0x0135('0xd')](_0x0135('0xb'),auth[_0x0135('0x7')](),controller[_0x0135('0xe')]);router[_0x0135('0xf')](_0x0135('0xb'),auth[_0x0135('0x7')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xccae=['create','put','/:id','update','delete','destroy','util','path','../../components/auth/service','../../config/environment','./mailQueueReport.controller','get','isAuthenticated','/describe','describe','show','post'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xccae,0x105));var _0xecca=function(_0x1589dd,_0x2b9d22){_0x1589dd=_0x1589dd-0x0;var _0x1bddd1=_0xccae[_0x1589dd];return _0x1bddd1;};'use strict';var multer=require('multer');var util=require(_0xecca('0x0'));var path=require(_0xecca('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xecca('0x2'));var interaction=require('../../components/interaction/service');var config=require(_0xecca('0x3'));var controller=require(_0xecca('0x4'));router[_0xecca('0x5')]('/',auth[_0xecca('0x6')](),controller['index']);router[_0xecca('0x5')](_0xecca('0x7'),auth[_0xecca('0x6')](),controller[_0xecca('0x8')]);router[_0xecca('0x5')]('/:id',auth[_0xecca('0x6')](),controller[_0xecca('0x9')]);router[_0xecca('0xa')]('/',auth[_0xecca('0x6')](),controller[_0xecca('0xb')]);router[_0xecca('0xc')](_0xecca('0xd'),auth[_0xecca('0x6')](),controller[_0xecca('0xe')]);router[_0xecca('0xf')]('/:id',auth[_0xecca('0x6')](),controller[_0xecca('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a81=['sequelize','exports','STRING','DATE','moment'];(function(_0x381fa6,_0x5532d9){var _0x488bb5=function(_0x271fc9){while(--_0x271fc9){_0x381fa6['push'](_0x381fa6['shift']());}};_0x488bb5(++_0x5532d9);}(_0x2a81,0xd1));var _0x12a8=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2a81[_0x3dd15e];return _0x231fd0;};'use strict';var moment=require(_0x12a8('0x0'));var Sequelize=require(_0x12a8('0x1'));module[_0x12a8('0x2')]={'uniqueid':{'type':Sequelize[_0x12a8('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x12a8('0x4')]},'leaveAt':{'type':Sequelize[_0x12a8('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x12a8('0x4')]},'reason':{'type':Sequelize[_0x12a8('0x3')]}};
\ No newline at end of file
+var _0xa354=['STRING','DATE','sequelize','exports'];(function(_0x15ecbd,_0x1a19cd){var _0x272e98=function(_0x4f3f62){while(--_0x4f3f62){_0x15ecbd['push'](_0x15ecbd['shift']());}};_0x272e98(++_0x1a19cd);}(_0xa354,0x146));var _0x4a35=function(_0x5233b6,_0x380348){_0x5233b6=_0x5233b6-0x0;var _0x47300d=_0xa354[_0x5233b6];return _0x47300d;};'use strict';var moment=require('moment');var Sequelize=require(_0x4a35('0x0'));module[_0x4a35('0x1')]={'uniqueid':{'type':Sequelize[_0x4a35('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x4a35('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x4a35('0x3')]},'acceptAt':{'type':Sequelize[_0x4a35('0x3')]},'exitAt':{'type':Sequelize[_0x4a35('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb3b=['destroy','error','stack','name','send','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','MailQueueReport','rawAttributes','include','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','count','offset','limit','Content-Range','reject','save','then'];(function(_0x36e8ba,_0x2ff3e0){var _0x34ea86=function(_0x4ba478){while(--_0x4ba478){_0x36e8ba['push'](_0x36e8ba['shift']());}};_0x34ea86(++_0x2ff3e0);}(_0xeb3b,0x19e));var _0xbeb3=function(_0x18cac4,_0x57a4d5){_0x18cac4=_0x18cac4-0x0;var _0x2227c6=_0xeb3b[_0x18cac4];return _0x2227c6;};'use strict';var emlformat=require(_0xbeb3('0x0'));var rimraf=require(_0xbeb3('0x1'));var zipdir=require(_0xbeb3('0x2'));var jsonpatch=require(_0xbeb3('0x3'));var rp=require(_0xbeb3('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbeb3('0x5'));var util=require('util');var path=require(_0xbeb3('0x6'));var sox=require('sox');var csv=require(_0xbeb3('0x7'));var ejs=require(_0xbeb3('0x8'));var fs=require('fs');var fs_extra=require(_0xbeb3('0x9'));var _=require(_0xbeb3('0xa'));var squel=require(_0xbeb3('0xb'));var crypto=require(_0xbeb3('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xbeb3('0xd'));var toCsv=require(_0xbeb3('0x7'));var querystring=require(_0xbeb3('0xe'));var Papa=require(_0xbeb3('0xf'));var Redis=require(_0xbeb3('0x10'));var authService=require(_0xbeb3('0x11'));var qs=require(_0xbeb3('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbeb3('0x13'));var logger=require(_0xbeb3('0x14'))('api');var utils=require(_0xbeb3('0x15'));var config=require(_0xbeb3('0x16'));var licenseUtil=require(_0xbeb3('0x17'));var db=require(_0xbeb3('0x18'))['db'];function respondWithStatusCode(_0x19868e,_0x313296){_0x313296=_0x313296||0xcc;return function(_0x5b9ace){if(_0x5b9ace){return _0x19868e['sendStatus'](_0x313296);}return _0x19868e[_0xbeb3('0x19')](_0x313296)[_0xbeb3('0x1a')]();};}function respondWithResult(_0x5f521b,_0x4dfb28){_0x4dfb28=_0x4dfb28||0xc8;return function(_0xed9879){if(_0xed9879){return _0x5f521b[_0xbeb3('0x19')](_0x4dfb28)[_0xbeb3('0x1b')](_0xed9879);}};}function respondWithFilteredResult(_0x43d58a,_0x26daf2){return function(_0x535836){if(_0x535836){var _0x1aeaee=typeof _0x26daf2['offset']===_0xbeb3('0x1c')&&typeof _0x26daf2['limit']==='undefined';var _0x4f8481=_0x535836[_0xbeb3('0x1d')];var _0x44a4bb=_0x1aeaee?0x0:_0x26daf2[_0xbeb3('0x1e')];var _0x10b15d=_0x1aeaee?_0x535836['count']:_0x26daf2[_0xbeb3('0x1e')]+_0x26daf2[_0xbeb3('0x1f')];var _0xe2cc47;if(_0x10b15d>=_0x4f8481){_0x10b15d=_0x4f8481;_0xe2cc47=0xc8;}else{_0xe2cc47=0xce;}_0x43d58a['status'](_0xe2cc47);return _0x43d58a['set'](_0xbeb3('0x20'),_0x44a4bb+'-'+_0x10b15d+'/'+_0x4f8481)['json'](_0x535836);}return null;};}function patchUpdates(_0x1d917b){return function(_0x50b005){try{jsonpatch['apply'](_0x50b005,_0x1d917b,!![]);}catch(_0xfa2736){return BPromise[_0xbeb3('0x21')](_0xfa2736);}return _0x50b005[_0xbeb3('0x22')]();};}function saveUpdates(_0x4bd89e,_0x301899){return function(_0x18ea0f){if(_0x18ea0f){return _0x18ea0f['update'](_0x4bd89e)[_0xbeb3('0x23')](function(_0x366bdb){return _0x366bdb;});}return null;};}function removeEntity(_0x55a59d,_0xfc384a){return function(_0x278fe4){if(_0x278fe4){return _0x278fe4[_0xbeb3('0x24')]()[_0xbeb3('0x23')](function(){_0x55a59d[_0xbeb3('0x19')](0xcc)[_0xbeb3('0x1a')]();});}};}function handleEntityNotFound(_0x84921a,_0x340581){return function(_0x46fe17){if(!_0x46fe17){_0x84921a['sendStatus'](0x194);}return _0x46fe17;};}function handleError(_0x4e695e,_0x1f36b9){_0x1f36b9=_0x1f36b9||0x1f4;return function(_0x520116){logger[_0xbeb3('0x25')](_0x520116[_0xbeb3('0x26')]);if(_0x520116[_0xbeb3('0x27')]){delete _0x520116[_0xbeb3('0x27')];}_0x4e695e['status'](_0x1f36b9)[_0xbeb3('0x28')](_0x520116);};}exports['index']=function(_0x26cd8f,_0xab301c){var _0x5bd93d={},_0x483198={},_0x9b8f13={'count':0x0,'rows':[]};var _0x585c6f=_['map'](db['MailQueueReport']['rawAttributes'],function(_0xf5dbaf){return{'name':_0xf5dbaf['fieldName'],'type':_0xf5dbaf[_0xbeb3('0x29')][_0xbeb3('0x2a')]};});_0x483198[_0xbeb3('0x2b')]=_[_0xbeb3('0x2c')](_0x585c6f,_0xbeb3('0x27'));_0x483198[_0xbeb3('0x2d')]=_[_0xbeb3('0x2e')](_0x26cd8f[_0xbeb3('0x2d')]);_0x483198[_0xbeb3('0x2f')]=_[_0xbeb3('0x30')](_0x483198['model'],_0x483198[_0xbeb3('0x2d')]);_0x5bd93d[_0xbeb3('0x31')]=_['intersection'](_0x483198[_0xbeb3('0x2b')],qs[_0xbeb3('0x32')](_0x26cd8f[_0xbeb3('0x2d')][_0xbeb3('0x32')]));_0x5bd93d['attributes']=_0x5bd93d[_0xbeb3('0x31')][_0xbeb3('0x33')]?_0x5bd93d[_0xbeb3('0x31')]:_0x483198[_0xbeb3('0x2b')];if(!_0x26cd8f[_0xbeb3('0x2d')][_0xbeb3('0x34')](_0xbeb3('0x35'))){_0x5bd93d[_0xbeb3('0x1f')]=qs[_0xbeb3('0x1f')](_0x26cd8f['query'][_0xbeb3('0x1f')]);_0x5bd93d['offset']=qs[_0xbeb3('0x1e')](_0x26cd8f[_0xbeb3('0x2d')][_0xbeb3('0x1e')]);}_0x5bd93d[_0xbeb3('0x36')]=qs[_0xbeb3('0x37')](_0x26cd8f[_0xbeb3('0x2d')][_0xbeb3('0x37')]);_0x5bd93d[_0xbeb3('0x38')]=qs['filters'](_[_0xbeb3('0x39')](_0x26cd8f['query'],_0x483198['filters']),_0x585c6f);if(_0x26cd8f['query'][_0xbeb3('0x3a')]){_0x5bd93d[_0xbeb3('0x38')]=_[_0xbeb3('0x3b')](_0x5bd93d[_0xbeb3('0x38')],{'$or':_[_0xbeb3('0x2c')](_0x585c6f,function(_0x40f166){if(_0x40f166['type']!==_0xbeb3('0x3c')){var _0x40de8d={};_0x40de8d[_0x40f166[_0xbeb3('0x27')]]={'$like':'%'+_0x26cd8f['query']['filter']+'%'};return _0x40de8d;}})});}_0x5bd93d=_['merge']({},_0x5bd93d,_0x26cd8f[_0xbeb3('0x3d')]);var _0x2a8860={'where':_0x5bd93d[_0xbeb3('0x38')]};return db['MailQueueReport'][_0xbeb3('0x1d')](_0x2a8860)['then'](function(_0x1b6700){_0x9b8f13[_0xbeb3('0x1d')]=_0x1b6700;if(_0x26cd8f[_0xbeb3('0x2d')][_0xbeb3('0x3e')]){_0x5bd93d['include']=[{'all':!![]}];}return db['MailQueueReport'][_0xbeb3('0x3f')](_0x5bd93d);})[_0xbeb3('0x23')](function(_0x3d4262){_0x9b8f13[_0xbeb3('0x40')]=_0x3d4262;return _0x9b8f13;})[_0xbeb3('0x23')](respondWithFilteredResult(_0xab301c,_0x5bd93d))[_0xbeb3('0x41')](handleError(_0xab301c,null));};exports[_0xbeb3('0x42')]=function(_0x4606a6,_0x5758c6){var _0xfcb57f={'raw':!![],'where':{'id':_0x4606a6[_0xbeb3('0x43')]['id']}},_0x39f2d2={};_0x39f2d2[_0xbeb3('0x2b')]=_[_0xbeb3('0x2e')](db[_0xbeb3('0x44')][_0xbeb3('0x45')]);_0x39f2d2['query']=_[_0xbeb3('0x2e')](_0x4606a6[_0xbeb3('0x2d')]);_0x39f2d2[_0xbeb3('0x2f')]=_[_0xbeb3('0x30')](_0x39f2d2[_0xbeb3('0x2b')],_0x39f2d2[_0xbeb3('0x2d')]);_0xfcb57f[_0xbeb3('0x31')]=_[_0xbeb3('0x30')](_0x39f2d2[_0xbeb3('0x2b')],qs[_0xbeb3('0x32')](_0x4606a6[_0xbeb3('0x2d')][_0xbeb3('0x32')]));_0xfcb57f[_0xbeb3('0x31')]=_0xfcb57f['attributes'][_0xbeb3('0x33')]?_0xfcb57f[_0xbeb3('0x31')]:_0x39f2d2[_0xbeb3('0x2b')];if(_0x4606a6['query']['includeAll']){_0xfcb57f[_0xbeb3('0x46')]=[{'all':!![]}];}_0xfcb57f=_[_0xbeb3('0x3b')]({},_0xfcb57f,_0x4606a6[_0xbeb3('0x3d')]);return db[_0xbeb3('0x44')]['find'](_0xfcb57f)[_0xbeb3('0x23')](handleEntityNotFound(_0x5758c6,null))['then'](respondWithResult(_0x5758c6,null))['catch'](handleError(_0x5758c6,null));};exports[_0xbeb3('0x47')]=function(_0x393e60,_0x1ff297){return db[_0xbeb3('0x44')]['create'](_0x393e60[_0xbeb3('0x48')],{})[_0xbeb3('0x23')](respondWithResult(_0x1ff297,0xc9))[_0xbeb3('0x41')](handleError(_0x1ff297,null));};exports['update']=function(_0x3f93ab,_0x58c49f){if(_0x3f93ab['body']['id']){delete _0x3f93ab[_0xbeb3('0x48')]['id'];}return db[_0xbeb3('0x44')][_0xbeb3('0x49')]({'where':{'id':_0x3f93ab['params']['id']}})[_0xbeb3('0x23')](handleEntityNotFound(_0x58c49f,null))[_0xbeb3('0x23')](saveUpdates(_0x3f93ab[_0xbeb3('0x48')],null))['then'](respondWithResult(_0x58c49f,null))[_0xbeb3('0x41')](handleError(_0x58c49f,null));};exports['destroy']=function(_0x39605b,_0x4d8e21){return db[_0xbeb3('0x44')][_0xbeb3('0x49')]({'where':{'id':_0x39605b[_0xbeb3('0x43')]['id']}})[_0xbeb3('0x23')](handleEntityNotFound(_0x4d8e21,null))[_0xbeb3('0x23')](removeEntity(_0x4d8e21,null))[_0xbeb3('0x41')](handleError(_0x4d8e21,null));};exports[_0xbeb3('0x4a')]=function(_0x168434,_0x49fded){return db[_0xbeb3('0x44')][_0xbeb3('0x4a')]()[_0xbeb3('0x23')](respondWithResult(_0x49fded,null))[_0xbeb3('0x41')](handleError(_0x49fded,null));};
\ No newline at end of file
+var _0xa456=['where','filters','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','params','keys','options','catch','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','sendStatus','status','end','undefined','count','offset','set','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','MailQueueReport','rawAttributes','fieldName','key','model','query','intersection','attributes','fields','length','nolimit','limit','order','sort'];(function(_0x2a0350,_0x249319){var _0x425220=function(_0x1d5f78){while(--_0x1d5f78){_0x2a0350['push'](_0x2a0350['shift']());}};_0x425220(++_0x249319);}(_0xa456,0x142));var _0x6a45=function(_0x47a349,_0x4699d9){_0x47a349=_0x47a349-0x0;var _0x18ab75=_0xa456[_0x47a349];return _0x18ab75;};'use strict';var emlformat=require(_0x6a45('0x0'));var rimraf=require(_0x6a45('0x1'));var zipdir=require(_0x6a45('0x2'));var jsonpatch=require(_0x6a45('0x3'));var rp=require('request-promise');var moment=require(_0x6a45('0x4'));var BPromise=require(_0x6a45('0x5'));var Mustache=require(_0x6a45('0x6'));var util=require('util');var path=require(_0x6a45('0x7'));var sox=require(_0x6a45('0x8'));var csv=require(_0x6a45('0x9'));var ejs=require(_0x6a45('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6a45('0xb'));var squel=require(_0x6a45('0xc'));var crypto=require(_0x6a45('0xd'));var jsforce=require(_0x6a45('0xe'));var deskjs=require(_0x6a45('0xf'));var toCsv=require('to-csv');var querystring=require(_0x6a45('0x10'));var Papa=require('papaparse');var Redis=require(_0x6a45('0x11'));var authService=require(_0x6a45('0x12'));var qs=require(_0x6a45('0x13'));var as=require(_0x6a45('0x14'));var hardwareService=require(_0x6a45('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x6a45('0x16'));var config=require(_0x6a45('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x511b92,_0x1aa4b4){_0x1aa4b4=_0x1aa4b4||0xcc;return function(_0x25a8b9){if(_0x25a8b9){return _0x511b92[_0x6a45('0x18')](_0x1aa4b4);}return _0x511b92[_0x6a45('0x19')](_0x1aa4b4)[_0x6a45('0x1a')]();};}function respondWithResult(_0x5a9f29,_0x563c3b){_0x563c3b=_0x563c3b||0xc8;return function(_0x3a5d94){if(_0x3a5d94){return _0x5a9f29[_0x6a45('0x19')](_0x563c3b)['json'](_0x3a5d94);}};}function respondWithFilteredResult(_0x2c20db,_0x171176){return function(_0x3fab82){if(_0x3fab82){var _0x13adc0=typeof _0x171176['offset']==='undefined'&&typeof _0x171176['limit']===_0x6a45('0x1b');var _0x391f81=_0x3fab82[_0x6a45('0x1c')];var _0x52a055=_0x13adc0?0x0:_0x171176[_0x6a45('0x1d')];var _0x102981=_0x13adc0?_0x3fab82[_0x6a45('0x1c')]:_0x171176['offset']+_0x171176['limit'];var _0x573453;if(_0x102981>=_0x391f81){_0x102981=_0x391f81;_0x573453=0xc8;}else{_0x573453=0xce;}_0x2c20db[_0x6a45('0x19')](_0x573453);return _0x2c20db[_0x6a45('0x1e')]('Content-Range',_0x52a055+'-'+_0x102981+'/'+_0x391f81)[_0x6a45('0x1f')](_0x3fab82);}return null;};}function patchUpdates(_0x1be485){return function(_0x4f7000){try{jsonpatch[_0x6a45('0x20')](_0x4f7000,_0x1be485,!![]);}catch(_0xdf10c6){return BPromise[_0x6a45('0x21')](_0xdf10c6);}return _0x4f7000[_0x6a45('0x22')]();};}function saveUpdates(_0x15ad0e,_0x487666){return function(_0x5d990e){if(_0x5d990e){return _0x5d990e[_0x6a45('0x23')](_0x15ad0e)[_0x6a45('0x24')](function(_0x11290c){return _0x11290c;});}return null;};}function removeEntity(_0x22373c,_0x25a380){return function(_0x3ad898){if(_0x3ad898){return _0x3ad898[_0x6a45('0x25')]()[_0x6a45('0x24')](function(){_0x22373c[_0x6a45('0x19')](0xcc)[_0x6a45('0x1a')]();});}};}function handleEntityNotFound(_0x1310d7,_0x46587a){return function(_0x5cd761){if(!_0x5cd761){_0x1310d7[_0x6a45('0x18')](0x194);}return _0x5cd761;};}function handleError(_0x5a0389,_0x1b83fa){_0x1b83fa=_0x1b83fa||0x1f4;return function(_0x25467d){logger[_0x6a45('0x26')](_0x25467d[_0x6a45('0x27')]);if(_0x25467d[_0x6a45('0x28')]){delete _0x25467d['name'];}_0x5a0389[_0x6a45('0x19')](_0x1b83fa)[_0x6a45('0x29')](_0x25467d);};}exports[_0x6a45('0x2a')]=function(_0x1ccff0,_0x8265d9){var _0x227b6f={},_0x3fac9b={},_0x313c13={'count':0x0,'rows':[]};var _0x54286d=_[_0x6a45('0x2b')](db[_0x6a45('0x2c')][_0x6a45('0x2d')],function(_0x201369){return{'name':_0x201369[_0x6a45('0x2e')],'type':_0x201369['type'][_0x6a45('0x2f')]};});_0x3fac9b[_0x6a45('0x30')]=_[_0x6a45('0x2b')](_0x54286d,_0x6a45('0x28'));_0x3fac9b['query']=_['keys'](_0x1ccff0[_0x6a45('0x31')]);_0x3fac9b['filters']=_[_0x6a45('0x32')](_0x3fac9b['model'],_0x3fac9b[_0x6a45('0x31')]);_0x227b6f[_0x6a45('0x33')]=_[_0x6a45('0x32')](_0x3fac9b[_0x6a45('0x30')],qs[_0x6a45('0x34')](_0x1ccff0[_0x6a45('0x31')][_0x6a45('0x34')]));_0x227b6f[_0x6a45('0x33')]=_0x227b6f[_0x6a45('0x33')][_0x6a45('0x35')]?_0x227b6f[_0x6a45('0x33')]:_0x3fac9b[_0x6a45('0x30')];if(!_0x1ccff0[_0x6a45('0x31')]['hasOwnProperty'](_0x6a45('0x36'))){_0x227b6f['limit']=qs[_0x6a45('0x37')](_0x1ccff0[_0x6a45('0x31')][_0x6a45('0x37')]);_0x227b6f[_0x6a45('0x1d')]=qs[_0x6a45('0x1d')](_0x1ccff0[_0x6a45('0x31')]['offset']);}_0x227b6f[_0x6a45('0x38')]=qs[_0x6a45('0x39')](_0x1ccff0[_0x6a45('0x31')][_0x6a45('0x39')]);_0x227b6f[_0x6a45('0x3a')]=qs[_0x6a45('0x3b')](_['pick'](_0x1ccff0[_0x6a45('0x31')],_0x3fac9b[_0x6a45('0x3b')]),_0x54286d);if(_0x1ccff0['query'][_0x6a45('0x3c')]){_0x227b6f[_0x6a45('0x3a')]=_[_0x6a45('0x3d')](_0x227b6f[_0x6a45('0x3a')],{'$or':_[_0x6a45('0x2b')](_0x54286d,function(_0x50ebe0){if(_0x50ebe0[_0x6a45('0x3e')]!==_0x6a45('0x3f')){var _0x205afd={};_0x205afd[_0x50ebe0[_0x6a45('0x28')]]={'$like':'%'+_0x1ccff0[_0x6a45('0x31')][_0x6a45('0x3c')]+'%'};return _0x205afd;}})});}_0x227b6f=_[_0x6a45('0x3d')]({},_0x227b6f,_0x1ccff0['options']);var _0x1c941a={'where':_0x227b6f['where']};return db[_0x6a45('0x2c')][_0x6a45('0x1c')](_0x1c941a)[_0x6a45('0x24')](function(_0x2715dc){_0x313c13['count']=_0x2715dc;if(_0x1ccff0['query'][_0x6a45('0x40')]){_0x227b6f[_0x6a45('0x41')]=[{'all':!![]}];}return db['MailQueueReport'][_0x6a45('0x42')](_0x227b6f);})[_0x6a45('0x24')](function(_0x3bd926){_0x313c13[_0x6a45('0x43')]=_0x3bd926;return _0x313c13;})['then'](respondWithFilteredResult(_0x8265d9,_0x227b6f))['catch'](handleError(_0x8265d9,null));};exports['show']=function(_0x5b9798,_0xe90201){var _0xb5d191={'raw':!![],'where':{'id':_0x5b9798[_0x6a45('0x44')]['id']}},_0x328d9f={};_0x328d9f[_0x6a45('0x30')]=_[_0x6a45('0x45')](db[_0x6a45('0x2c')][_0x6a45('0x2d')]);_0x328d9f['query']=_[_0x6a45('0x45')](_0x5b9798['query']);_0x328d9f['filters']=_[_0x6a45('0x32')](_0x328d9f[_0x6a45('0x30')],_0x328d9f['query']);_0xb5d191[_0x6a45('0x33')]=_['intersection'](_0x328d9f[_0x6a45('0x30')],qs[_0x6a45('0x34')](_0x5b9798[_0x6a45('0x31')][_0x6a45('0x34')]));_0xb5d191['attributes']=_0xb5d191[_0x6a45('0x33')][_0x6a45('0x35')]?_0xb5d191[_0x6a45('0x33')]:_0x328d9f[_0x6a45('0x30')];if(_0x5b9798[_0x6a45('0x31')]['includeAll']){_0xb5d191[_0x6a45('0x41')]=[{'all':!![]}];}_0xb5d191=_['merge']({},_0xb5d191,_0x5b9798[_0x6a45('0x46')]);return db[_0x6a45('0x2c')]['find'](_0xb5d191)[_0x6a45('0x24')](handleEntityNotFound(_0xe90201,null))[_0x6a45('0x24')](respondWithResult(_0xe90201,null))[_0x6a45('0x47')](handleError(_0xe90201,null));};exports[_0x6a45('0x48')]=function(_0x524296,_0x34bbb7){return db['MailQueueReport'][_0x6a45('0x48')](_0x524296['body'],{})[_0x6a45('0x24')](respondWithResult(_0x34bbb7,0xc9))[_0x6a45('0x47')](handleError(_0x34bbb7,null));};exports[_0x6a45('0x23')]=function(_0x2bf8d3,_0x5d9f52){if(_0x2bf8d3[_0x6a45('0x49')]['id']){delete _0x2bf8d3[_0x6a45('0x49')]['id'];}return db[_0x6a45('0x2c')][_0x6a45('0x4a')]({'where':{'id':_0x2bf8d3[_0x6a45('0x44')]['id']}})[_0x6a45('0x24')](handleEntityNotFound(_0x5d9f52,null))[_0x6a45('0x24')](saveUpdates(_0x2bf8d3[_0x6a45('0x49')],null))[_0x6a45('0x24')](respondWithResult(_0x5d9f52,null))[_0x6a45('0x47')](handleError(_0x5d9f52,null));};exports['destroy']=function(_0x3ea4a7,_0x8877c7){return db[_0x6a45('0x2c')][_0x6a45('0x4a')]({'where':{'id':_0x3ea4a7['params']['id']}})[_0x6a45('0x24')](handleEntityNotFound(_0x8877c7,null))[_0x6a45('0x24')](removeEntity(_0x8877c7,null))[_0x6a45('0x47')](handleError(_0x8877c7,null));};exports['describe']=function(_0x4e7967,_0x5a17b8){return db[_0x6a45('0x2c')][_0x6a45('0x4b')]()[_0x6a45('0x24')](respondWithResult(_0x5a17b8,null))[_0x6a45('0x47')](handleError(_0x5a17b8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a39=['request-promise','path','rimraf','../../config/environment','exports','define','MailQueueReport','report_mail_queue','uniqueid','../../config/logger','api','moment'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x8a39,0x17d));var _0x98a3=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8a39[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x98a3('0x0'))(_0x98a3('0x1'));var moment=require(_0x98a3('0x2'));var BPromise=require('bluebird');var rp=require(_0x98a3('0x3'));var fs=require('fs');var path=require(_0x98a3('0x4'));var rimraf=require(_0x98a3('0x5'));var config=require(_0x98a3('0x6'));var attributes=require('./mailQueueReport.attributes');module[_0x98a3('0x7')]=function(_0x360fa,_0x427586){return _0x360fa[_0x98a3('0x8')](_0x98a3('0x9'),attributes,{'tableName':_0x98a3('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x98a3('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xcc97=['MailQueueReport','report_mail_queue','uniqueid','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./mailQueueReport.attributes'];(function(_0x52c60b,_0x2f23e0){var _0x2d4b3a=function(_0x13bc13){while(--_0x13bc13){_0x52c60b['push'](_0x52c60b['shift']());}};_0x2d4b3a(++_0x2f23e0);}(_0xcc97,0x1b3));var _0x7cc9=function(_0x1798b2,_0x5828aa){_0x1798b2=_0x1798b2-0x0;var _0x402125=_0xcc97[_0x1798b2];return _0x402125;};'use strict';var _=require(_0x7cc9('0x0'));var util=require(_0x7cc9('0x1'));var logger=require('../../config/logger')(_0x7cc9('0x2'));var moment=require(_0x7cc9('0x3'));var BPromise=require(_0x7cc9('0x4'));var rp=require(_0x7cc9('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7cc9('0x6'));var config=require(_0x7cc9('0x7'));var attributes=require(_0x7cc9('0x8'));module['exports']=function(_0x21e167,_0x1dd930){return _0x21e167['define'](_0x7cc9('0x9'),attributes,{'tableName':_0x7cc9('0xa'),'paranoid':![],'indexes':[{'name':_0x7cc9('0xb'),'fields':[_0x7cc9('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','MailQueueReport,\x20%s,\x20%s','request\x20sent','MailQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','catch','CreateMailQueueReport','body','options','raw','stringify','MailQueueReport','update','where','UpdateMailQueueReport','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x484d83,_0x5a5c73){var _0x3c9439=function(_0x3d4f9e){while(--_0x3d4f9e){_0x484d83['push'](_0x484d83['shift']());}};_0x3c9439(++_0x5a5c73);}(_0x1261,0x144));var _0x1126=function(_0x5f46e7,_0x62f9f8){_0x5f46e7=_0x5f46e7-0x0;var _0x567e95=_0x1261[_0x5f46e7];return _0x567e95;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var moment=require(_0x1126('0x1'));var BPromise=require(_0x1126('0x2'));var rs=require(_0x1126('0x3'));var fs=require('fs');var Redis=require(_0x1126('0x4'));var db=require(_0x1126('0x5'))['db'];var utils=require(_0x1126('0x6'));var logger=require(_0x1126('0x7'))(_0x1126('0x8'));var config=require(_0x1126('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1126('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x907180,_0x4f239c,_0x17e5f0){return new BPromise(function(_0x28772d,_0x245be9){return client[_0x1126('0xb')](_0x907180,_0x17e5f0)[_0x1126('0xc')](function(_0x59cfa1){logger[_0x1126('0xd')](_0x1126('0xe'),_0x4f239c,_0x1126('0xf'));logger['debug'](_0x1126('0x10'),_0x4f239c,'request\x20sent',JSON['stringify'](_0x59cfa1));if(_0x59cfa1[_0x1126('0x11')]){if(_0x59cfa1['error'][_0x1126('0x12')]===0x1f4){logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);return _0x245be9(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1['error']['message']);return _0x28772d(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}else{logger[_0x1126('0xd')]('MailQueueReport,\x20%s,\x20%s',_0x4f239c,_0x1126('0xf'));_0x28772d(_0x59cfa1['result'][_0x1126('0x13')]);}})[_0x1126('0x14')](function(_0x257b5f){logger['error'](_0x1126('0xe'),_0x4f239c,_0x257b5f);_0x245be9(_0x257b5f);});});}exports[_0x1126('0x15')]=function(_0x4a7b49){var _0x4d2b38=this;return new Promise(function(_0x22ae0b,_0x2b2487){return db['MailQueueReport']['create'](_0x4a7b49[_0x1126('0x16')],{'raw':_0x4a7b49['options']?_0x4a7b49[_0x1126('0x17')][_0x1126('0x18')]===undefined?!![]:![]:!![]})[_0x1126('0xc')](function(_0x54400a){logger[_0x1126('0xd')]('CreateMailQueueReport',_0x4a7b49);logger['debug'](_0x1126('0x15'),_0x4a7b49,JSON[_0x1126('0x19')](_0x54400a));_0x22ae0b(_0x54400a);})[_0x1126('0x14')](function(_0x36d254){logger['error'](_0x1126('0x15'),_0x36d254[_0x1126('0x13')],_0x4a7b49);_0x2b2487(_0x4d2b38['error'](0x1f4,_0x36d254[_0x1126('0x13')]));});});};exports['UpdateMailQueueReport']=function(_0x529dd9){var _0x4b57ab=this;return new Promise(function(_0x2199d9,_0x15bcc3){return db[_0x1126('0x1a')][_0x1126('0x1b')](_0x529dd9[_0x1126('0x16')],{'raw':_0x529dd9[_0x1126('0x17')]?_0x529dd9[_0x1126('0x17')][_0x1126('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x529dd9['options']?_0x529dd9[_0x1126('0x17')][_0x1126('0x1c')]||null:null,'attributes':_0x529dd9[_0x1126('0x17')]?_0x529dd9['options']['attributes']||null:null,'limit':_0x529dd9[_0x1126('0x17')]?_0x529dd9[_0x1126('0x17')]['limit']||null:null})[_0x1126('0xc')](function(_0x23d2bc){logger['info'](_0x1126('0x1d'),_0x529dd9);logger['debug'](_0x1126('0x1d'),_0x529dd9,JSON['stringify'](_0x23d2bc));_0x2199d9(_0x23d2bc);})[_0x1126('0x14')](function(_0x583ce6){logger[_0x1126('0x11')]('UpdateMailQueueReport',_0x583ce6['message'],_0x529dd9);_0x15bcc3(_0x4b57ab['error'](0x1f4,_0x583ce6[_0x1126('0x13')]));});});};
\ No newline at end of file
+var _0x1261=['../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','MailQueueReport,\x20%s,\x20%s','request\x20sent','MailQueueReport,\x20%s,\x20%s,\x20%s','error','code','message','catch','CreateMailQueueReport','body','options','raw','stringify','MailQueueReport','update','where','UpdateMailQueueReport','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x208ad6,_0x402d08){var _0x525261=function(_0x2542ec){while(--_0x2542ec){_0x208ad6['push'](_0x208ad6['shift']());}};_0x525261(++_0x402d08);}(_0x1261,0x144));var _0x1126=function(_0x35825e,_0x657421){_0x35825e=_0x35825e-0x0;var _0x4f4d90=_0x1261[_0x35825e];return _0x4f4d90;};'use strict';var _=require('lodash');var util=require(_0x1126('0x0'));var moment=require(_0x1126('0x1'));var BPromise=require(_0x1126('0x2'));var rs=require(_0x1126('0x3'));var fs=require('fs');var Redis=require(_0x1126('0x4'));var db=require(_0x1126('0x5'))['db'];var utils=require(_0x1126('0x6'));var logger=require(_0x1126('0x7'))(_0x1126('0x8'));var config=require(_0x1126('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x1126('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x907180,_0x4f239c,_0x17e5f0){return new BPromise(function(_0x28772d,_0x245be9){return client[_0x1126('0xb')](_0x907180,_0x17e5f0)[_0x1126('0xc')](function(_0x59cfa1){logger[_0x1126('0xd')](_0x1126('0xe'),_0x4f239c,_0x1126('0xf'));logger['debug'](_0x1126('0x10'),_0x4f239c,'request\x20sent',JSON['stringify'](_0x59cfa1));if(_0x59cfa1[_0x1126('0x11')]){if(_0x59cfa1['error'][_0x1126('0x12')]===0x1f4){logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);return _0x245be9(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}logger[_0x1126('0x11')](_0x1126('0xe'),_0x4f239c,_0x59cfa1['error']['message']);return _0x28772d(_0x59cfa1[_0x1126('0x11')][_0x1126('0x13')]);}else{logger[_0x1126('0xd')]('MailQueueReport,\x20%s,\x20%s',_0x4f239c,_0x1126('0xf'));_0x28772d(_0x59cfa1['result'][_0x1126('0x13')]);}})[_0x1126('0x14')](function(_0x257b5f){logger['error'](_0x1126('0xe'),_0x4f239c,_0x257b5f);_0x245be9(_0x257b5f);});});}exports[_0x1126('0x15')]=function(_0x4a7b49){var _0x4d2b38=this;return new Promise(function(_0x22ae0b,_0x2b2487){return db['MailQueueReport']['create'](_0x4a7b49[_0x1126('0x16')],{'raw':_0x4a7b49['options']?_0x4a7b49[_0x1126('0x17')][_0x1126('0x18')]===undefined?!![]:![]:!![]})[_0x1126('0xc')](function(_0x54400a){logger[_0x1126('0xd')]('CreateMailQueueReport',_0x4a7b49);logger['debug'](_0x1126('0x15'),_0x4a7b49,JSON[_0x1126('0x19')](_0x54400a));_0x22ae0b(_0x54400a);})[_0x1126('0x14')](function(_0x36d254){logger['error'](_0x1126('0x15'),_0x36d254[_0x1126('0x13')],_0x4a7b49);_0x2b2487(_0x4d2b38['error'](0x1f4,_0x36d254[_0x1126('0x13')]));});});};exports['UpdateMailQueueReport']=function(_0x529dd9){var _0x4b57ab=this;return new Promise(function(_0x2199d9,_0x15bcc3){return db[_0x1126('0x1a')][_0x1126('0x1b')](_0x529dd9[_0x1126('0x16')],{'raw':_0x529dd9[_0x1126('0x17')]?_0x529dd9[_0x1126('0x17')][_0x1126('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x529dd9['options']?_0x529dd9[_0x1126('0x17')][_0x1126('0x1c')]||null:null,'attributes':_0x529dd9[_0x1126('0x17')]?_0x529dd9['options']['attributes']||null:null,'limit':_0x529dd9[_0x1126('0x17')]?_0x529dd9[_0x1126('0x17')]['limit']||null:null})[_0x1126('0xc')](function(_0x23d2bc){logger['info'](_0x1126('0x1d'),_0x529dd9);logger['debug'](_0x1126('0x1d'),_0x529dd9,JSON['stringify'](_0x23d2bc));_0x2199d9(_0x23d2bc);})[_0x1126('0x14')](function(_0x583ce6){logger[_0x1126('0x11')]('UpdateMailQueueReport',_0x583ce6['message'],_0x529dd9);_0x15bcc3(_0x4b57ab['error'](0x1f4,_0x583ce6[_0x1126('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x15551b,_0x330ffa){var _0xbedd4f=function(_0x5a8a68){while(--_0x5a8a68){_0x15551b['push'](_0x15551b['shift']());}};_0xbedd4f(++_0x330ffa);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xa9e0[_0x3ce3c];return _0x55a2c9;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0xedd9=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','exports'];(function(_0x509367,_0x2bb637){var _0x4a1d5=function(_0x411ff){while(--_0x411ff){_0x509367['push'](_0x509367['shift']());}};_0x4a1d5(++_0x2bb637);}(_0xedd9,0xfc));var _0x9edd=function(_0x20d4e7,_0x5f29f7){_0x20d4e7=_0x20d4e7-0x0;var _0x125131=_0xedd9[_0x20d4e7];return _0x125131;};'use strict';var multer=require('multer');var util=require(_0x9edd('0x0'));var path=require(_0x9edd('0x1'));var timeout=require(_0x9edd('0x2'));var express=require(_0x9edd('0x3'));var router=express[_0x9edd('0x4')]();var fs_extra=require(_0x9edd('0x5'));var auth=require(_0x9edd('0x6'));var interaction=require(_0x9edd('0x7'));var config=require('../../config/environment');module[_0x9edd('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bb0=['BOOLEAN','INTEGER','INBOX','sequelize','exports','STRING'];(function(_0x28025f,_0x41cfec){var _0x83831f=function(_0x174e00){while(--_0x174e00){_0x28025f['push'](_0x28025f['shift']());}};_0x83831f(++_0x41cfec);}(_0x2bb0,0xf3));var _0x02bb=function(_0x4eecff,_0x4658fb){_0x4eecff=_0x4eecff-0x0;var _0x5d8406=_0x2bb0[_0x4eecff];return _0x5d8406;};'use strict';var Sequelize=require(_0x02bb('0x0'));module[_0x02bb('0x1')]={'description':{'type':Sequelize[_0x02bb('0x2')]},'host':{'type':Sequelize['STRING']},'authentication':{'type':Sequelize[_0x02bb('0x3')],'defaultValue':!![]},'user':{'type':Sequelize['STRING']},'password':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x02bb('0x4')]},'tls':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x02bb('0x2')],'defaultValue':_0x02bb('0x5')},'connTimeout':{'type':Sequelize[_0x02bb('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x02bb('0x4')],'defaultValue':0x5},'service':{'type':Sequelize[_0x02bb('0x2')]}};
\ No newline at end of file
+var _0x6599=['exports','STRING','BOOLEAN','INTEGER'];(function(_0xbc26fe,_0x5c97ef){var _0x58854e=function(_0x11bf4c){while(--_0x11bf4c){_0xbc26fe['push'](_0xbc26fe['shift']());}};_0x58854e(++_0x5c97ef);}(_0x6599,0xb0));var _0x9659=function(_0x500419,_0x549162){_0x500419=_0x500419-0x0;var _0x241c1a=_0x6599[_0x500419];return _0x241c1a;};'use strict';var Sequelize=require('sequelize');module[_0x9659('0x0')]={'description':{'type':Sequelize[_0x9659('0x1')]},'host':{'type':Sequelize[_0x9659('0x1')]},'authentication':{'type':Sequelize[_0x9659('0x2')],'defaultValue':!![]},'user':{'type':Sequelize[_0x9659('0x1')]},'password':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x9659('0x3')]},'tls':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x9659('0x1')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0x9659('0x3')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x9659('0x3')],'defaultValue':0x5},'service':{'type':Sequelize[_0x9659('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc66=['request-promise','path','../../config/environment','./mailServerIn.attributes','MailServerIn','mail_servers_in','lodash','util','api','bluebird'];(function(_0x50210b,_0x5bc5e1){var _0x1534f2=function(_0x72e92c){while(--_0x72e92c){_0x50210b['push'](_0x50210b['shift']());}};_0x1534f2(++_0x5bc5e1);}(_0xfc66,0xba));var _0x6fc6=function(_0xadfdbc,_0x173f1b){_0xadfdbc=_0xadfdbc-0x0;var _0x5efb30=_0xfc66[_0xadfdbc];return _0x5efb30;};'use strict';var _=require(_0x6fc6('0x0'));var util=require(_0x6fc6('0x1'));var logger=require('../../config/logger')(_0x6fc6('0x2'));var moment=require('moment');var BPromise=require(_0x6fc6('0x3'));var rp=require(_0x6fc6('0x4'));var fs=require('fs');var path=require(_0x6fc6('0x5'));var rimraf=require('rimraf');var config=require(_0x6fc6('0x6'));var attributes=require(_0x6fc6('0x7'));module['exports']=function(_0x2f512c,_0x1120b3){return _0x2f512c['define'](_0x6fc6('0x8'),attributes,{'tableName':_0x6fc6('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x00f7=['util','bluebird','request-promise','path','rimraf','./mailServerIn.attributes','MailServerIn','mail_servers_in'];(function(_0x151c38,_0x3d5723){var _0x18a987=function(_0x32eb6a){while(--_0x32eb6a){_0x151c38['push'](_0x151c38['shift']());}};_0x18a987(++_0x3d5723);}(_0x00f7,0x130));var _0x700f=function(_0x5aaf23,_0x1300f9){_0x5aaf23=_0x5aaf23-0x0;var _0x844f36=_0x00f7[_0x5aaf23];return _0x844f36;};'use strict';var _=require('lodash');var util=require(_0x700f('0x0'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x700f('0x1'));var rp=require(_0x700f('0x2'));var fs=require('fs');var path=require(_0x700f('0x3'));var rimraf=require(_0x700f('0x4'));var config=require('../../config/environment');var attributes=require(_0x700f('0x5'));module['exports']=function(_0x17a20b,_0x2cdeff){return _0x17a20b['define'](_0x700f('0x6'),attributes,{'tableName':_0x700f('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8865=['bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','MailServerIn,\x20%s,\x20%s','request\x20sent','debug','MailServerIn,\x20%s,\x20%s,\x20%s','error','code','message','info','catch','GetMailServerIn','MailServerIn','findAll','options','raw','limit','include','map','attributes','model','lodash'];(function(_0x725b8e,_0xc22b48){var _0x43ac45=function(_0x46bb4a){while(--_0x46bb4a){_0x725b8e['push'](_0x725b8e['shift']());}};_0x43ac45(++_0xc22b48);}(_0x8865,0x173));var _0x5886=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0x8865[_0x209941];return _0x1e8729;};'use strict';var _=require(_0x5886('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x5886('0x1'));var rs=require(_0x5886('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5886('0x3'))['db'];var utils=require(_0x5886('0x4'));var logger=require(_0x5886('0x5'))(_0x5886('0x6'));var config=require(_0x5886('0x7'));var jayson=require(_0x5886('0x8'));var client=jayson[_0x5886('0x9')][_0x5886('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4cb58d,_0x5e98d7,_0x12b98f){return new BPromise(function(_0x14b810,_0x33c95f){return client['request'](_0x4cb58d,_0x12b98f)[_0x5886('0xb')](function(_0x10218a){logger['info'](_0x5886('0xc'),_0x5e98d7,_0x5886('0xd'));logger[_0x5886('0xe')](_0x5886('0xf'),_0x5e98d7,_0x5886('0xd'),JSON['stringify'](_0x10218a));if(_0x10218a['error']){if(_0x10218a[_0x5886('0x10')][_0x5886('0x11')]===0x1f4){logger[_0x5886('0x10')]('MailServerIn,\x20%s,\x20%s',_0x5e98d7,_0x10218a[_0x5886('0x10')][_0x5886('0x12')]);return _0x33c95f(_0x10218a['error'][_0x5886('0x12')]);}logger[_0x5886('0x10')]('MailServerIn,\x20%s,\x20%s',_0x5e98d7,_0x10218a['error'][_0x5886('0x12')]);return _0x14b810(_0x10218a[_0x5886('0x10')][_0x5886('0x12')]);}else{logger[_0x5886('0x13')](_0x5886('0xc'),_0x5e98d7,'request\x20sent');_0x14b810(_0x10218a['result']['message']);}})[_0x5886('0x14')](function(_0x2e3b9c){logger[_0x5886('0x10')](_0x5886('0xc'),_0x5e98d7,_0x2e3b9c);_0x33c95f(_0x2e3b9c);});});}exports[_0x5886('0x15')]=function(_0x4c2d03){var _0xf93b95=this;return new Promise(function(_0x41c856,_0x5911e4){return db[_0x5886('0x16')][_0x5886('0x17')]({'raw':_0x4c2d03[_0x5886('0x18')]?_0x4c2d03['options'][_0x5886('0x19')]===undefined?!![]:![]:!![],'where':_0x4c2d03['options']?_0x4c2d03[_0x5886('0x18')]['where']||null:null,'attributes':_0x4c2d03[_0x5886('0x18')]?_0x4c2d03['options']['attributes']||null:null,'limit':_0x4c2d03[_0x5886('0x18')]?_0x4c2d03[_0x5886('0x18')][_0x5886('0x1a')]||null:null,'include':_0x4c2d03[_0x5886('0x18')]?_0x4c2d03[_0x5886('0x18')][_0x5886('0x1b')]?_[_0x5886('0x1c')](_0x4c2d03[_0x5886('0x18')]['include'],function(_0x3a1e95){return{'model':db[_0x3a1e95['model']],'as':_0x3a1e95['as'],'attributes':_0x3a1e95[_0x5886('0x1d')],'include':_0x3a1e95[_0x5886('0x1b')]?_[_0x5886('0x1c')](_0x3a1e95[_0x5886('0x1b')],function(_0x21f1e8){return{'model':db[_0x21f1e8[_0x5886('0x1e')]],'as':_0x21f1e8['as'],'attributes':_0x21f1e8[_0x5886('0x1d')],'include':_0x21f1e8['include']?_[_0x5886('0x1c')](_0x21f1e8[_0x5886('0x1b')],function(_0x29ad68){return{'model':db[_0x29ad68[_0x5886('0x1e')]],'as':_0x29ad68['as'],'attributes':_0x29ad68[_0x5886('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x5886('0xb')](function(_0x3947de){logger[_0x5886('0x13')](_0x5886('0x15'),_0x4c2d03);logger[_0x5886('0xe')]('GetMailServerIn',_0x4c2d03,JSON['stringify'](_0x3947de));_0x41c856(_0x3947de);})[_0x5886('0x14')](function(_0x4b49e2){logger[_0x5886('0x10')]('GetMailServerIn',_0x4b49e2['message'],_0x4c2d03);_0x5911e4(_0xf93b95[_0x5886('0x10')](0x1f4,_0x4b49e2[_0x5886('0x12')]));});});};
\ No newline at end of file
+var _0x58b7=['where','limit','include','map','model','attributes','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','MailServerIn,\x20%s,\x20%s','debug','MailServerIn,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','GetMailServerIn','MailServerIn','findAll','options','raw'];(function(_0x2bf141,_0x31eac7){var _0x48277b=function(_0x9fe560){while(--_0x9fe560){_0x2bf141['push'](_0x2bf141['shift']());}};_0x48277b(++_0x31eac7);}(_0x58b7,0x16e));var _0x758b=function(_0x5dac16,_0x5c84ac){_0x5dac16=_0x5dac16-0x0;var _0x564073=_0x58b7[_0x5dac16];return _0x564073;};'use strict';var _=require(_0x758b('0x0'));var util=require(_0x758b('0x1'));var moment=require(_0x758b('0x2'));var BPromise=require('bluebird');var rs=require(_0x758b('0x3'));var fs=require('fs');var Redis=require(_0x758b('0x4'));var db=require(_0x758b('0x5'))['db'];var utils=require(_0x758b('0x6'));var logger=require(_0x758b('0x7'))(_0x758b('0x8'));var config=require(_0x758b('0x9'));var jayson=require(_0x758b('0xa'));var client=jayson[_0x758b('0xb')][_0x758b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0xe4e7ba,_0x7add86,_0x22cee4){return new BPromise(function(_0x463404,_0x272236){return client[_0x758b('0xd')](_0xe4e7ba,_0x22cee4)[_0x758b('0xe')](function(_0x376584){logger[_0x758b('0xf')](_0x758b('0x10'),_0x7add86,'request\x20sent');logger[_0x758b('0x11')](_0x758b('0x12'),_0x7add86,_0x758b('0x13'),JSON[_0x758b('0x14')](_0x376584));if(_0x376584[_0x758b('0x15')]){if(_0x376584[_0x758b('0x15')]['code']===0x1f4){logger[_0x758b('0x15')](_0x758b('0x10'),_0x7add86,_0x376584[_0x758b('0x15')][_0x758b('0x16')]);return _0x272236(_0x376584['error'][_0x758b('0x16')]);}logger[_0x758b('0x15')](_0x758b('0x10'),_0x7add86,_0x376584[_0x758b('0x15')][_0x758b('0x16')]);return _0x463404(_0x376584[_0x758b('0x15')]['message']);}else{logger[_0x758b('0xf')]('MailServerIn,\x20%s,\x20%s',_0x7add86,_0x758b('0x13'));_0x463404(_0x376584[_0x758b('0x17')]['message']);}})[_0x758b('0x18')](function(_0x189d58){logger[_0x758b('0x15')]('MailServerIn,\x20%s,\x20%s',_0x7add86,_0x189d58);_0x272236(_0x189d58);});});}exports[_0x758b('0x19')]=function(_0xe3210e){var _0x50fc7f=this;return new Promise(function(_0x165670,_0x1d7f16){return db[_0x758b('0x1a')][_0x758b('0x1b')]({'raw':_0xe3210e[_0x758b('0x1c')]?_0xe3210e[_0x758b('0x1c')][_0x758b('0x1d')]===undefined?!![]:![]:!![],'where':_0xe3210e[_0x758b('0x1c')]?_0xe3210e[_0x758b('0x1c')][_0x758b('0x1e')]||null:null,'attributes':_0xe3210e[_0x758b('0x1c')]?_0xe3210e[_0x758b('0x1c')]['attributes']||null:null,'limit':_0xe3210e[_0x758b('0x1c')]?_0xe3210e[_0x758b('0x1c')][_0x758b('0x1f')]||null:null,'include':_0xe3210e['options']?_0xe3210e[_0x758b('0x1c')][_0x758b('0x20')]?_[_0x758b('0x21')](_0xe3210e[_0x758b('0x1c')]['include'],function(_0x53c6ca){return{'model':db[_0x53c6ca[_0x758b('0x22')]],'as':_0x53c6ca['as'],'attributes':_0x53c6ca[_0x758b('0x23')],'include':_0x53c6ca[_0x758b('0x20')]?_[_0x758b('0x21')](_0x53c6ca[_0x758b('0x20')],function(_0x1fbb6f){return{'model':db[_0x1fbb6f[_0x758b('0x22')]],'as':_0x1fbb6f['as'],'attributes':_0x1fbb6f[_0x758b('0x23')],'include':_0x1fbb6f[_0x758b('0x20')]?_['map'](_0x1fbb6f[_0x758b('0x20')],function(_0x5a3a11){return{'model':db[_0x5a3a11[_0x758b('0x22')]],'as':_0x5a3a11['as'],'attributes':_0x5a3a11[_0x758b('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x404b00){logger['info']('GetMailServerIn',_0xe3210e);logger[_0x758b('0x11')](_0x758b('0x19'),_0xe3210e,JSON[_0x758b('0x14')](_0x404b00));_0x165670(_0x404b00);})['catch'](function(_0x293db5){logger['error'](_0x758b('0x19'),_0x293db5[_0x758b('0x16')],_0xe3210e);_0x1d7f16(_0x50fc7f[_0x758b('0x15')](0x1f4,_0x293db5[_0x758b('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailServerOut.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0x9957,0x93));var _0x7995=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9957[_0x2dafbe];return _0x58a45a;};'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 fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0xe')]('/',auth['isAuthenticated'](),controller[_0x7995('0xf')]);router[_0x7995('0x10')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x11')]);router[_0x7995('0x12')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0x13')]);module[_0x7995('0x14')]=router;
\ No newline at end of file
+var _0x7a54=['index','/:id','isAuthenticated','post','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailServerOut.controller','get'];(function(_0xa1e3e3,_0x29fe0e){var _0xc980e9=function(_0x1f5adc){while(--_0x1f5adc){_0xa1e3e3['push'](_0xa1e3e3['shift']());}};_0xc980e9(++_0x29fe0e);}(_0x7a54,0x106));var _0x47a5=function(_0x1de207,_0x5b7520){_0x1de207=_0x1de207-0x0;var _0x4f2bf7=_0x7a54[_0x1de207];return _0x4f2bf7;};'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 fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);module[_0x47a5('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad21=['sequelize','STRING','INTEGER','BOOLEAN'];(function(_0x16a5f3,_0x57fddc){var _0x184742=function(_0x4efd0e){while(--_0x4efd0e){_0x16a5f3['push'](_0x16a5f3['shift']());}};_0x184742(++_0x57fddc);}(_0xad21,0x1c4));var _0x1ad2=function(_0x4a9beb,_0x159482){_0x4a9beb=_0x4a9beb-0x0;var _0x2d4c58=_0xad21[_0x4a9beb];return _0x2d4c58;};'use strict';var Sequelize=require(_0x1ad2('0x0'));module['exports']={'description':{'type':Sequelize[_0x1ad2('0x1')]},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0x1ad2('0x1')]},'pass':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x1ad2('0x2')]},'secure':{'type':Sequelize[_0x1ad2('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0x1ad2('0x1')]},'authentication':{'type':Sequelize[_0x1ad2('0x3')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xdbd8=['exports','STRING','BOOLEAN','sequelize'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xdbd8,0x1a3));var _0x8dbd=function(_0x2f613e,_0x4e668f){_0x2f613e=_0x2f613e-0x0;var _0x53df5c=_0xdbd8[_0x2f613e];return _0x53df5c;};'use strict';var Sequelize=require(_0x8dbd('0x0'));module[_0x8dbd('0x1')]={'description':{'type':Sequelize[_0x8dbd('0x2')]},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0x8dbd('0x2')]},'pass':{'type':Sequelize['STRING']},'port':{'type':Sequelize['INTEGER']},'secure':{'type':Sequelize[_0x8dbd('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0x8dbd('0x2')]},'authentication':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x358c=['where','filter','type','VIRTUAL','includeAll','MailServerOut','rows','params','include','merge','options','find','catch','create','body','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','error','name','send','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','order','sort'];(function(_0xb1d3b,_0x19de99){var _0x6ae5f1=function(_0xbb84bc){while(--_0xbb84bc){_0xb1d3b['push'](_0xb1d3b['shift']());}};_0x6ae5f1(++_0x19de99);}(_0x358c,0x178));var _0xc358=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x358c[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0xc358('0x0'));var rimraf=require(_0xc358('0x1'));var zipdir=require(_0xc358('0x2'));var jsonpatch=require(_0xc358('0x3'));var rp=require(_0xc358('0x4'));var moment=require(_0xc358('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc358('0x6'));var util=require('util');var path=require(_0xc358('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xc358('0x8'));var fs=require('fs');var fs_extra=require(_0xc358('0x9'));var _=require(_0xc358('0xa'));var squel=require(_0xc358('0xb'));var crypto=require(_0xc358('0xc'));var jsforce=require(_0xc358('0xd'));var deskjs=require(_0xc358('0xe'));var toCsv=require('to-csv');var querystring=require(_0xc358('0xf'));var Papa=require(_0xc358('0x10'));var Redis=require(_0xc358('0x11'));var authService=require(_0xc358('0x12'));var qs=require(_0xc358('0x13'));var as=require(_0xc358('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc358('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xc358('0x16'));var db=require(_0xc358('0x17'))['db'];function respondWithStatusCode(_0x213240,_0x428e89){_0x428e89=_0x428e89||0xcc;return function(_0x5a7aa8){if(_0x5a7aa8){return _0x213240[_0xc358('0x18')](_0x428e89);}return _0x213240[_0xc358('0x19')](_0x428e89)[_0xc358('0x1a')]();};}function respondWithResult(_0x12b59c,_0x415f5d){_0x415f5d=_0x415f5d||0xc8;return function(_0x1289b8){if(_0x1289b8){return _0x12b59c[_0xc358('0x19')](_0x415f5d)[_0xc358('0x1b')](_0x1289b8);}};}function respondWithFilteredResult(_0x3aff1b,_0x3f0d02){return function(_0x285565){if(_0x285565){var _0x5defd1=typeof _0x3f0d02[_0xc358('0x1c')]===_0xc358('0x1d')&&typeof _0x3f0d02[_0xc358('0x1e')]===_0xc358('0x1d');var _0x7b23f9=_0x285565[_0xc358('0x1f')];var _0x13e5fe=_0x5defd1?0x0:_0x3f0d02['offset'];var _0x17f0b1=_0x5defd1?_0x285565[_0xc358('0x1f')]:_0x3f0d02[_0xc358('0x1c')]+_0x3f0d02[_0xc358('0x1e')];var _0xd4885f;if(_0x17f0b1>=_0x7b23f9){_0x17f0b1=_0x7b23f9;_0xd4885f=0xc8;}else{_0xd4885f=0xce;}_0x3aff1b['status'](_0xd4885f);return _0x3aff1b['set'](_0xc358('0x20'),_0x13e5fe+'-'+_0x17f0b1+'/'+_0x7b23f9)['json'](_0x285565);}return null;};}function patchUpdates(_0x3d269d){return function(_0x54e886){try{jsonpatch[_0xc358('0x21')](_0x54e886,_0x3d269d,!![]);}catch(_0x559958){return BPromise[_0xc358('0x22')](_0x559958);}return _0x54e886[_0xc358('0x23')]();};}function saveUpdates(_0x4be1c1,_0x189826){return function(_0x194cce){if(_0x194cce){return _0x194cce['update'](_0x4be1c1)[_0xc358('0x24')](function(_0x19d37d){return _0x19d37d;});}return null;};}function removeEntity(_0x2d0e84,_0xcc929f){return function(_0x2b7c02){if(_0x2b7c02){return _0x2b7c02[_0xc358('0x25')]()[_0xc358('0x24')](function(){_0x2d0e84[_0xc358('0x19')](0xcc)[_0xc358('0x1a')]();});}};}function handleEntityNotFound(_0x3d9fe3,_0x18e4cd){return function(_0x24c1c6){if(!_0x24c1c6){_0x3d9fe3['sendStatus'](0x194);}return _0x24c1c6;};}function handleError(_0x1eb91f,_0x15ae44){_0x15ae44=_0x15ae44||0x1f4;return function(_0x5917a0){logger[_0xc358('0x26')](_0x5917a0['stack']);if(_0x5917a0[_0xc358('0x27')]){delete _0x5917a0['name'];}_0x1eb91f[_0xc358('0x19')](_0x15ae44)[_0xc358('0x28')](_0x5917a0);};}exports[_0xc358('0x29')]=function(_0x263c6d,_0x449dd5){var _0x537e7a={},_0x59376d={},_0x320ac1={'count':0x0,'rows':[]};var _0x3357f5=_[_0xc358('0x2a')](db['MailServerOut'][_0xc358('0x2b')],function(_0x108e84){return{'name':_0x108e84[_0xc358('0x2c')],'type':_0x108e84['type'][_0xc358('0x2d')]};});_0x59376d[_0xc358('0x2e')]=_[_0xc358('0x2a')](_0x3357f5,_0xc358('0x27'));_0x59376d[_0xc358('0x2f')]=_[_0xc358('0x30')](_0x263c6d[_0xc358('0x2f')]);_0x59376d[_0xc358('0x31')]=_['intersection'](_0x59376d[_0xc358('0x2e')],_0x59376d[_0xc358('0x2f')]);_0x537e7a['attributes']=_[_0xc358('0x32')](_0x59376d[_0xc358('0x2e')],qs[_0xc358('0x33')](_0x263c6d[_0xc358('0x2f')]['fields']));_0x537e7a['attributes']=_0x537e7a[_0xc358('0x34')][_0xc358('0x35')]?_0x537e7a['attributes']:_0x59376d['model'];if(!_0x263c6d[_0xc358('0x2f')]['hasOwnProperty']('nolimit')){_0x537e7a[_0xc358('0x1e')]=qs['limit'](_0x263c6d['query']['limit']);_0x537e7a[_0xc358('0x1c')]=qs[_0xc358('0x1c')](_0x263c6d[_0xc358('0x2f')][_0xc358('0x1c')]);}_0x537e7a[_0xc358('0x36')]=qs[_0xc358('0x37')](_0x263c6d[_0xc358('0x2f')][_0xc358('0x37')]);_0x537e7a[_0xc358('0x38')]=qs['filters'](_['pick'](_0x263c6d[_0xc358('0x2f')],_0x59376d[_0xc358('0x31')]),_0x3357f5);if(_0x263c6d['query'][_0xc358('0x39')]){_0x537e7a[_0xc358('0x38')]=_['merge'](_0x537e7a[_0xc358('0x38')],{'$or':_[_0xc358('0x2a')](_0x3357f5,function(_0x7f59d7){if(_0x7f59d7[_0xc358('0x3a')]!==_0xc358('0x3b')){var _0x32cdb6={};_0x32cdb6[_0x7f59d7[_0xc358('0x27')]]={'$like':'%'+_0x263c6d[_0xc358('0x2f')]['filter']+'%'};return _0x32cdb6;}})});}_0x537e7a=_['merge']({},_0x537e7a,_0x263c6d['options']);var _0x48e110={'where':_0x537e7a['where']};return db['MailServerOut'][_0xc358('0x1f')](_0x48e110)[_0xc358('0x24')](function(_0x4a9d89){_0x320ac1[_0xc358('0x1f')]=_0x4a9d89;if(_0x263c6d[_0xc358('0x2f')][_0xc358('0x3c')]){_0x537e7a['include']=[{'all':!![]}];}return db[_0xc358('0x3d')]['findAll'](_0x537e7a);})['then'](function(_0x3bbe27){_0x320ac1[_0xc358('0x3e')]=_0x3bbe27;return _0x320ac1;})[_0xc358('0x24')](respondWithFilteredResult(_0x449dd5,_0x537e7a))['catch'](handleError(_0x449dd5,null));};exports['show']=function(_0x12b9cf,_0x55f1bb){var _0x3fbe0c={'raw':!![],'where':{'id':_0x12b9cf[_0xc358('0x3f')]['id']}},_0x506d5f={};_0x506d5f[_0xc358('0x2e')]=_[_0xc358('0x30')](db[_0xc358('0x3d')][_0xc358('0x2b')]);_0x506d5f[_0xc358('0x2f')]=_['keys'](_0x12b9cf[_0xc358('0x2f')]);_0x506d5f[_0xc358('0x31')]=_[_0xc358('0x32')](_0x506d5f[_0xc358('0x2e')],_0x506d5f[_0xc358('0x2f')]);_0x3fbe0c[_0xc358('0x34')]=_[_0xc358('0x32')](_0x506d5f[_0xc358('0x2e')],qs[_0xc358('0x33')](_0x12b9cf[_0xc358('0x2f')][_0xc358('0x33')]));_0x3fbe0c[_0xc358('0x34')]=_0x3fbe0c[_0xc358('0x34')][_0xc358('0x35')]?_0x3fbe0c[_0xc358('0x34')]:_0x506d5f[_0xc358('0x2e')];if(_0x12b9cf['query'][_0xc358('0x3c')]){_0x3fbe0c[_0xc358('0x40')]=[{'all':!![]}];}_0x3fbe0c=_[_0xc358('0x41')]({},_0x3fbe0c,_0x12b9cf[_0xc358('0x42')]);return db[_0xc358('0x3d')][_0xc358('0x43')](_0x3fbe0c)[_0xc358('0x24')](handleEntityNotFound(_0x55f1bb,null))['then'](respondWithResult(_0x55f1bb,null))[_0xc358('0x44')](handleError(_0x55f1bb,null));};exports[_0xc358('0x45')]=function(_0x40097f,_0x38b77c){return db[_0xc358('0x3d')][_0xc358('0x45')](_0x40097f[_0xc358('0x46')],{})[_0xc358('0x24')](respondWithResult(_0x38b77c,0xc9))[_0xc358('0x44')](handleError(_0x38b77c,null));};exports[_0xc358('0x47')]=function(_0x52ca6c,_0x99a72b){if(_0x52ca6c['body']['id']){delete _0x52ca6c[_0xc358('0x46')]['id'];}return db[_0xc358('0x3d')][_0xc358('0x43')]({'where':{'id':_0x52ca6c['params']['id']}})[_0xc358('0x24')](handleEntityNotFound(_0x99a72b,null))[_0xc358('0x24')](saveUpdates(_0x52ca6c[_0xc358('0x46')],null))['then'](respondWithResult(_0x99a72b,null))[_0xc358('0x44')](handleError(_0x99a72b,null));};exports[_0xc358('0x25')]=function(_0xeab05d,_0x3c4728){return db[_0xc358('0x3d')][_0xc358('0x43')]({'where':{'id':_0xeab05d[_0xc358('0x3f')]['id']}})['then'](handleEntityNotFound(_0x3c4728,null))['then'](removeEntity(_0x3c4728,null))[_0xc358('0x44')](handleError(_0x3c4728,null));};
\ No newline at end of file
+var _0x7eb4=['apply','save','destroy','then','sendStatus','error','stack','name','send','index','map','MailServerOut','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','sort','where','pick','merge','VIRTUAL','options','include','findAll','catch','show','params','length','includeAll','find','create','body','update','rimraf','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range'];(function(_0x351b46,_0x26b265){var _0x1515df=function(_0x22896a){while(--_0x22896a){_0x351b46['push'](_0x351b46['shift']());}};_0x1515df(++_0x26b265);}(_0x7eb4,0xb9));var _0x47eb=function(_0xc697e7,_0x5bdfc6){_0xc697e7=_0xc697e7-0x0;var _0x49f94d=_0x7eb4[_0xc697e7];return _0x49f94d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x47eb('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x47eb('0x1'));var moment=require(_0x47eb('0x2'));var BPromise=require(_0x47eb('0x3'));var Mustache=require(_0x47eb('0x4'));var util=require('util');var path=require(_0x47eb('0x5'));var sox=require(_0x47eb('0x6'));var csv=require(_0x47eb('0x7'));var ejs=require(_0x47eb('0x8'));var fs=require('fs');var fs_extra=require(_0x47eb('0x9'));var _=require(_0x47eb('0xa'));var squel=require(_0x47eb('0xb'));var crypto=require(_0x47eb('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47eb('0xd'));var toCsv=require(_0x47eb('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47eb('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x47eb('0xf'));var as=require(_0x47eb('0x10'));var hardwareService=require(_0x47eb('0x11'));var logger=require('../../config/logger')(_0x47eb('0x12'));var utils=require(_0x47eb('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x47eb('0x14'));var db=require(_0x47eb('0x15'))['db'];function respondWithStatusCode(_0x5a4201,_0x2d2418){_0x2d2418=_0x2d2418||0xcc;return function(_0x4a6c22){if(_0x4a6c22){return _0x5a4201['sendStatus'](_0x2d2418);}return _0x5a4201[_0x47eb('0x16')](_0x2d2418)[_0x47eb('0x17')]();};}function respondWithResult(_0x144ebd,_0x1cce6f){_0x1cce6f=_0x1cce6f||0xc8;return function(_0x2e8474){if(_0x2e8474){return _0x144ebd['status'](_0x1cce6f)[_0x47eb('0x18')](_0x2e8474);}};}function respondWithFilteredResult(_0x345ec8,_0x12a9aa){return function(_0x1d162f){if(_0x1d162f){var _0x315a6e=typeof _0x12a9aa[_0x47eb('0x19')]===_0x47eb('0x1a')&&typeof _0x12a9aa[_0x47eb('0x1b')]==='undefined';var _0xd2eee=_0x1d162f[_0x47eb('0x1c')];var _0x464722=_0x315a6e?0x0:_0x12a9aa[_0x47eb('0x19')];var _0x55c638=_0x315a6e?_0x1d162f[_0x47eb('0x1c')]:_0x12a9aa[_0x47eb('0x19')]+_0x12a9aa[_0x47eb('0x1b')];var _0x426c52;if(_0x55c638>=_0xd2eee){_0x55c638=_0xd2eee;_0x426c52=0xc8;}else{_0x426c52=0xce;}_0x345ec8[_0x47eb('0x16')](_0x426c52);return _0x345ec8[_0x47eb('0x1d')](_0x47eb('0x1e'),_0x464722+'-'+_0x55c638+'/'+_0xd2eee)[_0x47eb('0x18')](_0x1d162f);}return null;};}function patchUpdates(_0x3091e9){return function(_0x54ebe0){try{jsonpatch[_0x47eb('0x1f')](_0x54ebe0,_0x3091e9,!![]);}catch(_0x53383e){return BPromise['reject'](_0x53383e);}return _0x54ebe0[_0x47eb('0x20')]();};}function saveUpdates(_0x100862,_0x461edb){return function(_0x4f6931){if(_0x4f6931){return _0x4f6931['update'](_0x100862)['then'](function(_0x58cf9c){return _0x58cf9c;});}return null;};}function removeEntity(_0x34710a,_0xde1d17){return function(_0xa6715a){if(_0xa6715a){return _0xa6715a[_0x47eb('0x21')]()[_0x47eb('0x22')](function(){_0x34710a[_0x47eb('0x16')](0xcc)[_0x47eb('0x17')]();});}};}function handleEntityNotFound(_0x513edd,_0x43c1c6){return function(_0x42db2a){if(!_0x42db2a){_0x513edd[_0x47eb('0x23')](0x194);}return _0x42db2a;};}function handleError(_0x5aa054,_0x58e408){_0x58e408=_0x58e408||0x1f4;return function(_0x525773){logger[_0x47eb('0x24')](_0x525773[_0x47eb('0x25')]);if(_0x525773[_0x47eb('0x26')]){delete _0x525773[_0x47eb('0x26')];}_0x5aa054[_0x47eb('0x16')](_0x58e408)[_0x47eb('0x27')](_0x525773);};}exports[_0x47eb('0x28')]=function(_0x1a5acd,_0x3373d8){var _0x5b7d68={},_0x1b8b15={},_0xc89adf={'count':0x0,'rows':[]};var _0xa60f58=_[_0x47eb('0x29')](db[_0x47eb('0x2a')][_0x47eb('0x2b')],function(_0x45c950){return{'name':_0x45c950[_0x47eb('0x2c')],'type':_0x45c950[_0x47eb('0x2d')][_0x47eb('0x2e')]};});_0x1b8b15[_0x47eb('0x2f')]=_['map'](_0xa60f58,'name');_0x1b8b15[_0x47eb('0x30')]=_[_0x47eb('0x31')](_0x1a5acd['query']);_0x1b8b15[_0x47eb('0x32')]=_[_0x47eb('0x33')](_0x1b8b15['model'],_0x1b8b15[_0x47eb('0x30')]);_0x5b7d68[_0x47eb('0x34')]=_[_0x47eb('0x33')](_0x1b8b15['model'],qs[_0x47eb('0x35')](_0x1a5acd[_0x47eb('0x30')][_0x47eb('0x35')]));_0x5b7d68['attributes']=_0x5b7d68[_0x47eb('0x34')]['length']?_0x5b7d68[_0x47eb('0x34')]:_0x1b8b15[_0x47eb('0x2f')];if(!_0x1a5acd['query']['hasOwnProperty'](_0x47eb('0x36'))){_0x5b7d68[_0x47eb('0x1b')]=qs[_0x47eb('0x1b')](_0x1a5acd[_0x47eb('0x30')][_0x47eb('0x1b')]);_0x5b7d68[_0x47eb('0x19')]=qs['offset'](_0x1a5acd[_0x47eb('0x30')][_0x47eb('0x19')]);}_0x5b7d68['order']=qs[_0x47eb('0x37')](_0x1a5acd['query'][_0x47eb('0x37')]);_0x5b7d68[_0x47eb('0x38')]=qs[_0x47eb('0x32')](_[_0x47eb('0x39')](_0x1a5acd[_0x47eb('0x30')],_0x1b8b15[_0x47eb('0x32')]),_0xa60f58);if(_0x1a5acd['query']['filter']){_0x5b7d68['where']=_[_0x47eb('0x3a')](_0x5b7d68[_0x47eb('0x38')],{'$or':_[_0x47eb('0x29')](_0xa60f58,function(_0x36a134){if(_0x36a134[_0x47eb('0x2d')]!==_0x47eb('0x3b')){var _0xabb0cb={};_0xabb0cb[_0x36a134[_0x47eb('0x26')]]={'$like':'%'+_0x1a5acd[_0x47eb('0x30')]['filter']+'%'};return _0xabb0cb;}})});}_0x5b7d68=_[_0x47eb('0x3a')]({},_0x5b7d68,_0x1a5acd[_0x47eb('0x3c')]);var _0x14fc76={'where':_0x5b7d68[_0x47eb('0x38')]};return db['MailServerOut'][_0x47eb('0x1c')](_0x14fc76)['then'](function(_0x2c15b9){_0xc89adf[_0x47eb('0x1c')]=_0x2c15b9;if(_0x1a5acd[_0x47eb('0x30')]['includeAll']){_0x5b7d68[_0x47eb('0x3d')]=[{'all':!![]}];}return db[_0x47eb('0x2a')][_0x47eb('0x3e')](_0x5b7d68);})[_0x47eb('0x22')](function(_0x748db5){_0xc89adf['rows']=_0x748db5;return _0xc89adf;})[_0x47eb('0x22')](respondWithFilteredResult(_0x3373d8,_0x5b7d68))[_0x47eb('0x3f')](handleError(_0x3373d8,null));};exports[_0x47eb('0x40')]=function(_0x2e731e,_0x21e04c){var _0x1aa00e={'raw':!![],'where':{'id':_0x2e731e[_0x47eb('0x41')]['id']}},_0x272ccb={};_0x272ccb[_0x47eb('0x2f')]=_[_0x47eb('0x31')](db[_0x47eb('0x2a')][_0x47eb('0x2b')]);_0x272ccb[_0x47eb('0x30')]=_[_0x47eb('0x31')](_0x2e731e[_0x47eb('0x30')]);_0x272ccb[_0x47eb('0x32')]=_['intersection'](_0x272ccb[_0x47eb('0x2f')],_0x272ccb[_0x47eb('0x30')]);_0x1aa00e['attributes']=_[_0x47eb('0x33')](_0x272ccb[_0x47eb('0x2f')],qs[_0x47eb('0x35')](_0x2e731e['query'][_0x47eb('0x35')]));_0x1aa00e[_0x47eb('0x34')]=_0x1aa00e[_0x47eb('0x34')][_0x47eb('0x42')]?_0x1aa00e[_0x47eb('0x34')]:_0x272ccb[_0x47eb('0x2f')];if(_0x2e731e['query'][_0x47eb('0x43')]){_0x1aa00e[_0x47eb('0x3d')]=[{'all':!![]}];}_0x1aa00e=_[_0x47eb('0x3a')]({},_0x1aa00e,_0x2e731e[_0x47eb('0x3c')]);return db[_0x47eb('0x2a')][_0x47eb('0x44')](_0x1aa00e)[_0x47eb('0x22')](handleEntityNotFound(_0x21e04c,null))[_0x47eb('0x22')](respondWithResult(_0x21e04c,null))[_0x47eb('0x3f')](handleError(_0x21e04c,null));};exports['create']=function(_0x26bb82,_0x5e03e2){return db[_0x47eb('0x2a')][_0x47eb('0x45')](_0x26bb82[_0x47eb('0x46')],{})['then'](respondWithResult(_0x5e03e2,0xc9))['catch'](handleError(_0x5e03e2,null));};exports[_0x47eb('0x47')]=function(_0x43ee02,_0x1bf512){if(_0x43ee02[_0x47eb('0x46')]['id']){delete _0x43ee02[_0x47eb('0x46')]['id'];}return db[_0x47eb('0x2a')][_0x47eb('0x44')]({'where':{'id':_0x43ee02[_0x47eb('0x41')]['id']}})[_0x47eb('0x22')](handleEntityNotFound(_0x1bf512,null))[_0x47eb('0x22')](saveUpdates(_0x43ee02[_0x47eb('0x46')],null))[_0x47eb('0x22')](respondWithResult(_0x1bf512,null))['catch'](handleError(_0x1bf512,null));};exports[_0x47eb('0x21')]=function(_0x22ab27,_0x4a403c){return db[_0x47eb('0x2a')][_0x47eb('0x44')]({'where':{'id':_0x22ab27[_0x47eb('0x41')]['id']}})[_0x47eb('0x22')](handleEntityNotFound(_0x4a403c,null))['then'](removeEntity(_0x4a403c,null))[_0x47eb('0x3f')](handleError(_0x4a403c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7981=['path','rimraf','../../config/environment','./mailServerOut.attributes','define','MailServerOut','mail_servers_out','lodash','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x307049,_0x1e9968){var _0x2d3015=function(_0x285429){while(--_0x285429){_0x307049['push'](_0x307049['shift']());}};_0x2d3015(++_0x1e9968);}(_0x7981,0x166));var _0x1798=function(_0x57e0a2,_0x40cbdf){_0x57e0a2=_0x57e0a2-0x0;var _0x44f61b=_0x7981[_0x57e0a2];return _0x44f61b;};'use strict';var _=require(_0x1798('0x0'));var util=require(_0x1798('0x1'));var logger=require(_0x1798('0x2'))('api');var moment=require(_0x1798('0x3'));var BPromise=require(_0x1798('0x4'));var rp=require(_0x1798('0x5'));var fs=require('fs');var path=require(_0x1798('0x6'));var rimraf=require(_0x1798('0x7'));var config=require(_0x1798('0x8'));var attributes=require(_0x1798('0x9'));module['exports']=function(_0x289038,_0x1de50c){return _0x289038[_0x1798('0xa')](_0x1798('0xb'),attributes,{'tableName':_0x1798('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x50dd=['define','MailServerOut','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','exports'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0x50dd,0x12e));var _0xd50d=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x50dd[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0xd50d('0x0'));var logger=require(_0xd50d('0x1'))(_0xd50d('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd50d('0x3'));var fs=require('fs');var path=require(_0xd50d('0x4'));var rimraf=require(_0xd50d('0x5'));var config=require(_0xd50d('0x6'));var attributes=require('./mailServerOut.attributes');module[_0xd50d('0x7')]=function(_0x164106,_0x22f0b5){return _0x164106[_0xd50d('0x8')](_0xd50d('0x9'),attributes,{'tableName':'mail_servers_out','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','MailServerOut,\x20%s,\x20%s','MailServerOut,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0x227c59,_0x575c83){var _0x35aeac=function(_0x477179){while(--_0x477179){_0x227c59['push'](_0x227c59['shift']());}};_0x35aeac(++_0x575c83);}(_0x2ef3,0xba));var _0x32ef=function(_0x55796b,_0x4e7d94){_0x55796b=_0x55796b-0x0;var _0x50f8ff=_0x2ef3[_0x55796b];return _0x50f8ff;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}
\ No newline at end of file
+var _0x2ef3=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','MailServerOut,\x20%s,\x20%s','MailServerOut,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0x3ddf7f,_0x4fda35){var _0x36189f=function(_0x2e13bd){while(--_0x2e13bd){_0x3ddf7f['push'](_0x3ddf7f['shift']());}};_0x36189f(++_0x4fda35);}(_0x2ef3,0xba));var _0x32ef=function(_0x5d9bea,_0x17635c){_0x5d9bea=_0x5d9bea-0x0;var _0x5963ea=_0x2ef3[_0x5d9bea];return _0x5963ea;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec99=['index','get','/describe','isAuthenticated','describe','show','post','put','update','delete','/:id','destroy','exports','util','connect-timeout','express','fs-extra','../../components/interaction/service','./mailSubstatus.controller'];(function(_0x367dab,_0x90a051){var _0xcd0f35=function(_0x277059){while(--_0x277059){_0x367dab['push'](_0x367dab['shift']());}};_0xcd0f35(++_0x90a051);}(_0xec99,0x163));var _0x9ec9=function(_0x1ac9f4,_0x5edaf3){_0x1ac9f4=_0x1ac9f4-0x0;var _0x1e48f6=_0xec99[_0x1ac9f4];return _0x1e48f6;};'use strict';var multer=require('multer');var util=require(_0x9ec9('0x0'));var path=require('path');var timeout=require(_0x9ec9('0x1'));var express=require(_0x9ec9('0x2'));var router=express['Router']();var fs_extra=require(_0x9ec9('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x9ec9('0x4'));var config=require('../../config/environment');var controller=require(_0x9ec9('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x9ec9('0x6')]);router[_0x9ec9('0x7')](_0x9ec9('0x8'),auth[_0x9ec9('0x9')](),controller[_0x9ec9('0xa')]);router[_0x9ec9('0x7')]('/:id',auth[_0x9ec9('0x9')](),controller[_0x9ec9('0xb')]);router[_0x9ec9('0xc')]('/',auth['isAuthenticated'](),controller['create']);router[_0x9ec9('0xd')]('/:id',auth[_0x9ec9('0x9')](),controller[_0x9ec9('0xe')]);router[_0x9ec9('0xf')](_0x9ec9('0x10'),auth['isAuthenticated'](),controller[_0x9ec9('0x11')]);module[_0x9ec9('0x12')]=router;
\ No newline at end of file
+var _0x30ce=['post','create','put','destroy','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','get','isAuthenticated','describe','/:id','show'];(function(_0x2d6fc9,_0x538fc1){var _0x54c602=function(_0x565074){while(--_0x565074){_0x2d6fc9['push'](_0x2d6fc9['shift']());}};_0x54c602(++_0x538fc1);}(_0x30ce,0x1ba));var _0xe30c=function(_0x29db36,_0x410ae9){_0x29db36=_0x29db36-0x0;var _0x234e87=_0x30ce[_0x29db36];return _0x234e87;};'use strict';var multer=require(_0xe30c('0x0'));var util=require('util');var path=require(_0xe30c('0x1'));var timeout=require('connect-timeout');var express=require(_0xe30c('0x2'));var router=express[_0xe30c('0x3')]();var fs_extra=require(_0xe30c('0x4'));var auth=require(_0xe30c('0x5'));var interaction=require(_0xe30c('0x6'));var config=require(_0xe30c('0x7'));var controller=require(_0xe30c('0x8'));router[_0xe30c('0x9')]('/',auth[_0xe30c('0xa')](),controller['index']);router['get']('/describe',auth[_0xe30c('0xa')](),controller[_0xe30c('0xb')]);router[_0xe30c('0x9')](_0xe30c('0xc'),auth[_0xe30c('0xa')](),controller[_0xe30c('0xd')]);router[_0xe30c('0xe')]('/',auth[_0xe30c('0xa')](),controller[_0xe30c('0xf')]);router[_0xe30c('0x10')](_0xe30c('0xc'),auth[_0xe30c('0xa')](),controller['update']);router['delete'](_0xe30c('0xc'),auth['isAuthenticated'](),controller[_0xe30c('0x11')]);module[_0xe30c('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdfa0=['sequelize','STRING','name'];(function(_0x56138f,_0x1e9ebb){var _0x1acaf7=function(_0x48690d){while(--_0x48690d){_0x56138f['push'](_0x56138f['shift']());}};_0x1acaf7(++_0x1e9ebb);}(_0xdfa0,0x69));var _0x0dfa=function(_0x34d952,_0x2791db){_0x34d952=_0x34d952-0x0;var _0x2f9891=_0xdfa0[_0x34d952];return _0x2f9891;};'use strict';var Sequelize=require(_0x0dfa('0x0'));module['exports']={'name':{'type':Sequelize[_0x0dfa('0x1')],'unique':_0x0dfa('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xb934=['exports','STRING','sequelize'];(function(_0x55b9a8,_0x387593){var _0x37970f=function(_0x5d459c){while(--_0x5d459c){_0x55b9a8['push'](_0x55b9a8['shift']());}};_0x37970f(++_0x387593);}(_0xb934,0x92));var _0x4b93=function(_0x3a7634,_0x18f234){_0x3a7634=_0x3a7634-0x0;var _0x1c7ad5=_0xb934[_0x3a7634];return _0x1c7ad5;};'use strict';var Sequelize=require(_0x4b93('0x0'));module[_0x4b93('0x1')]={'name':{'type':Sequelize[_0x4b93('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x4b93('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe73e=['Content-Range','apply','save','update','then','error','stack','name','send','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','map','type','VIRTUAL','options','MailSubstatus','rows','catch','params','length','includeAll','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set'];(function(_0x4cefee,_0xabb91e){var _0x473af2=function(_0x51e8ad){while(--_0x51e8ad){_0x4cefee['push'](_0x4cefee['shift']());}};_0x473af2(++_0xabb91e);}(_0xe73e,0x102));var _0xee73=function(_0x49476b,_0xf11f30){_0x49476b=_0x49476b-0x0;var _0x358216=_0xe73e[_0x49476b];return _0x358216;};'use strict';var emlformat=require(_0xee73('0x0'));var rimraf=require(_0xee73('0x1'));var zipdir=require(_0xee73('0x2'));var jsonpatch=require(_0xee73('0x3'));var rp=require(_0xee73('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xee73('0x5'));var util=require(_0xee73('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xee73('0x7'));var ejs=require(_0xee73('0x8'));var fs=require('fs');var fs_extra=require(_0xee73('0x9'));var _=require(_0xee73('0xa'));var squel=require('squel');var crypto=require(_0xee73('0xb'));var jsforce=require(_0xee73('0xc'));var deskjs=require(_0xee73('0xd'));var toCsv=require(_0xee73('0x7'));var querystring=require('querystring');var Papa=require(_0xee73('0xe'));var Redis=require(_0xee73('0xf'));var authService=require(_0xee73('0x10'));var qs=require(_0xee73('0x11'));var as=require(_0xee73('0x12'));var hardwareService=require(_0xee73('0x13'));var logger=require('../../config/logger')(_0xee73('0x14'));var utils=require(_0xee73('0x15'));var config=require(_0xee73('0x16'));var licenseUtil=require(_0xee73('0x17'));var db=require(_0xee73('0x18'))['db'];function respondWithStatusCode(_0x83748a,_0x26383a){_0x26383a=_0x26383a||0xcc;return function(_0x3515de){if(_0x3515de){return _0x83748a[_0xee73('0x19')](_0x26383a);}return _0x83748a['status'](_0x26383a)[_0xee73('0x1a')]();};}function respondWithResult(_0xc68965,_0x584e25){_0x584e25=_0x584e25||0xc8;return function(_0x350797){if(_0x350797){return _0xc68965[_0xee73('0x1b')](_0x584e25)[_0xee73('0x1c')](_0x350797);}};}function respondWithFilteredResult(_0x154f7c,_0x27006c){return function(_0x3f1c14){if(_0x3f1c14){var _0x47fb64=typeof _0x27006c[_0xee73('0x1d')]==='undefined'&&typeof _0x27006c[_0xee73('0x1e')]===_0xee73('0x1f');var _0x167969=_0x3f1c14['count'];var _0x16ab16=_0x47fb64?0x0:_0x27006c[_0xee73('0x1d')];var _0x4c9c82=_0x47fb64?_0x3f1c14[_0xee73('0x20')]:_0x27006c[_0xee73('0x1d')]+_0x27006c[_0xee73('0x1e')];var _0x3d122a;if(_0x4c9c82>=_0x167969){_0x4c9c82=_0x167969;_0x3d122a=0xc8;}else{_0x3d122a=0xce;}_0x154f7c[_0xee73('0x1b')](_0x3d122a);return _0x154f7c[_0xee73('0x21')](_0xee73('0x22'),_0x16ab16+'-'+_0x4c9c82+'/'+_0x167969)[_0xee73('0x1c')](_0x3f1c14);}return null;};}function patchUpdates(_0x5ce692){return function(_0x52eec3){try{jsonpatch[_0xee73('0x23')](_0x52eec3,_0x5ce692,!![]);}catch(_0x23202d){return BPromise['reject'](_0x23202d);}return _0x52eec3[_0xee73('0x24')]();};}function saveUpdates(_0x4547b6,_0x20b6d7){return function(_0x537ecd){if(_0x537ecd){return _0x537ecd[_0xee73('0x25')](_0x4547b6)['then'](function(_0x3a5d55){return _0x3a5d55;});}return null;};}function removeEntity(_0x4c3ad3,_0x26316f){return function(_0xa0f8f7){if(_0xa0f8f7){return _0xa0f8f7['destroy']()[_0xee73('0x26')](function(){_0x4c3ad3[_0xee73('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5eb73f,_0x5b5758){return function(_0x587af6){if(!_0x587af6){_0x5eb73f[_0xee73('0x19')](0x194);}return _0x587af6;};}function handleError(_0x3d3bdf,_0x158904){_0x158904=_0x158904||0x1f4;return function(_0x4eb544){logger[_0xee73('0x27')](_0x4eb544[_0xee73('0x28')]);if(_0x4eb544[_0xee73('0x29')]){delete _0x4eb544[_0xee73('0x29')];}_0x3d3bdf['status'](_0x158904)[_0xee73('0x2a')](_0x4eb544);};}exports['index']=function(_0x3014d4,_0x14f7a4){var _0x203fd3={},_0x3ec37f={},_0x3b91fb={'count':0x0,'rows':[]};var _0x1deb66=_['map'](db['MailSubstatus'][_0xee73('0x2b')],function(_0x112bb4){return{'name':_0x112bb4[_0xee73('0x2c')],'type':_0x112bb4['type']['key']};});_0x3ec37f[_0xee73('0x2d')]=_['map'](_0x1deb66,_0xee73('0x29'));_0x3ec37f[_0xee73('0x2e')]=_[_0xee73('0x2f')](_0x3014d4['query']);_0x3ec37f[_0xee73('0x30')]=_[_0xee73('0x31')](_0x3ec37f['model'],_0x3ec37f[_0xee73('0x2e')]);_0x203fd3[_0xee73('0x32')]=_['intersection'](_0x3ec37f[_0xee73('0x2d')],qs[_0xee73('0x33')](_0x3014d4[_0xee73('0x2e')][_0xee73('0x33')]));_0x203fd3[_0xee73('0x32')]=_0x203fd3['attributes']['length']?_0x203fd3[_0xee73('0x32')]:_0x3ec37f[_0xee73('0x2d')];if(!_0x3014d4[_0xee73('0x2e')][_0xee73('0x34')](_0xee73('0x35'))){_0x203fd3['limit']=qs[_0xee73('0x1e')](_0x3014d4['query'][_0xee73('0x1e')]);_0x203fd3[_0xee73('0x1d')]=qs[_0xee73('0x1d')](_0x3014d4[_0xee73('0x2e')]['offset']);}_0x203fd3['order']=qs[_0xee73('0x36')](_0x3014d4[_0xee73('0x2e')][_0xee73('0x36')]);_0x203fd3[_0xee73('0x37')]=qs['filters'](_['pick'](_0x3014d4[_0xee73('0x2e')],_0x3ec37f[_0xee73('0x30')]),_0x1deb66);if(_0x3014d4[_0xee73('0x2e')][_0xee73('0x38')]){_0x203fd3[_0xee73('0x37')]=_[_0xee73('0x39')](_0x203fd3['where'],{'$or':_[_0xee73('0x3a')](_0x1deb66,function(_0x52b795){if(_0x52b795[_0xee73('0x3b')]!==_0xee73('0x3c')){var _0x48fba5={};_0x48fba5[_0x52b795['name']]={'$like':'%'+_0x3014d4[_0xee73('0x2e')][_0xee73('0x38')]+'%'};return _0x48fba5;}})});}_0x203fd3=_[_0xee73('0x39')]({},_0x203fd3,_0x3014d4[_0xee73('0x3d')]);var _0x53af92={'where':_0x203fd3['where']};return db[_0xee73('0x3e')][_0xee73('0x20')](_0x53af92)[_0xee73('0x26')](function(_0x5823ac){_0x3b91fb[_0xee73('0x20')]=_0x5823ac;if(_0x3014d4[_0xee73('0x2e')]['includeAll']){_0x203fd3['include']=[{'all':!![]}];}return db[_0xee73('0x3e')]['findAll'](_0x203fd3);})[_0xee73('0x26')](function(_0x5dea26){_0x3b91fb[_0xee73('0x3f')]=_0x5dea26;return _0x3b91fb;})[_0xee73('0x26')](respondWithFilteredResult(_0x14f7a4,_0x203fd3))[_0xee73('0x40')](handleError(_0x14f7a4,null));};exports['show']=function(_0x333234,_0x2ac69b){var _0x44faa2={'raw':!![],'where':{'id':_0x333234[_0xee73('0x41')]['id']}},_0x37a41a={};_0x37a41a[_0xee73('0x2d')]=_[_0xee73('0x2f')](db[_0xee73('0x3e')][_0xee73('0x2b')]);_0x37a41a['query']=_[_0xee73('0x2f')](_0x333234[_0xee73('0x2e')]);_0x37a41a[_0xee73('0x30')]=_[_0xee73('0x31')](_0x37a41a[_0xee73('0x2d')],_0x37a41a[_0xee73('0x2e')]);_0x44faa2[_0xee73('0x32')]=_[_0xee73('0x31')](_0x37a41a[_0xee73('0x2d')],qs[_0xee73('0x33')](_0x333234[_0xee73('0x2e')][_0xee73('0x33')]));_0x44faa2[_0xee73('0x32')]=_0x44faa2[_0xee73('0x32')][_0xee73('0x42')]?_0x44faa2['attributes']:_0x37a41a[_0xee73('0x2d')];if(_0x333234['query'][_0xee73('0x43')]){_0x44faa2[_0xee73('0x44')]=[{'all':!![]}];}_0x44faa2=_['merge']({},_0x44faa2,_0x333234[_0xee73('0x3d')]);return db[_0xee73('0x3e')][_0xee73('0x45')](_0x44faa2)[_0xee73('0x26')](handleEntityNotFound(_0x2ac69b,null))[_0xee73('0x26')](respondWithResult(_0x2ac69b,null))[_0xee73('0x40')](handleError(_0x2ac69b,null));};exports[_0xee73('0x46')]=function(_0x429bb5,_0x28fc31){return db[_0xee73('0x3e')][_0xee73('0x46')](_0x429bb5[_0xee73('0x47')],{})[_0xee73('0x26')](respondWithResult(_0x28fc31,0xc9))['catch'](handleError(_0x28fc31,null));};exports['update']=function(_0x539c54,_0x249414){if(_0x539c54[_0xee73('0x47')]['id']){delete _0x539c54[_0xee73('0x47')]['id'];}return db[_0xee73('0x3e')][_0xee73('0x45')]({'where':{'id':_0x539c54[_0xee73('0x41')]['id']}})[_0xee73('0x26')](handleEntityNotFound(_0x249414,null))[_0xee73('0x26')](saveUpdates(_0x539c54['body'],null))[_0xee73('0x26')](respondWithResult(_0x249414,null))[_0xee73('0x40')](handleError(_0x249414,null));};exports['destroy']=function(_0x33a0b2,_0x3fbcfe){return db[_0xee73('0x3e')]['find']({'where':{'id':_0x33a0b2['params']['id']}})[_0xee73('0x26')](handleEntityNotFound(_0x3fbcfe,null))['then'](removeEntity(_0x3fbcfe,null))[_0xee73('0x40')](handleError(_0x3fbcfe,null));};exports[_0xee73('0x48')]=function(_0x50dc04,_0x1bd2b0){return db[_0xee73('0x3e')][_0xee73('0x48')]()['then'](respondWithResult(_0x1bd2b0,null))[_0xee73('0x40')](handleError(_0x1bd2b0,null));};
\ No newline at end of file
+var _0xc37e=['../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','end','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','stack','name','send','map','MailSubstatus','rawAttributes','fieldName','type','query','model','attributes','fields','length','sort','filters','pick','filter','where','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','keys','intersection','options','find','create','body','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','fs-extra','squel','desk.js','to-csv','querystring','papaparse','ioredis'];(function(_0x977c2e,_0x4aee82){var _0x3a20d5=function(_0x5b0528){while(--_0x5b0528){_0x977c2e['push'](_0x977c2e['shift']());}};_0x3a20d5(++_0x4aee82);}(_0xc37e,0x153));var _0xec37=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0xc37e[_0x5d6456];return _0x4d66c1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xec37('0x0'));var zipdir=require(_0xec37('0x1'));var jsonpatch=require(_0xec37('0x2'));var rp=require(_0xec37('0x3'));var moment=require(_0xec37('0x4'));var BPromise=require(_0xec37('0x5'));var Mustache=require(_0xec37('0x6'));var util=require(_0xec37('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xec37('0x8'));var fs=require('fs');var fs_extra=require(_0xec37('0x9'));var _=require('lodash');var squel=require(_0xec37('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xec37('0xb'));var toCsv=require(_0xec37('0xc'));var querystring=require(_0xec37('0xd'));var Papa=require(_0xec37('0xe'));var Redis=require(_0xec37('0xf'));var authService=require(_0xec37('0x10'));var qs=require(_0xec37('0x11'));var as=require(_0xec37('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xec37('0x13'))(_0xec37('0x14'));var utils=require('../../config/utils');var config=require(_0xec37('0x15'));var licenseUtil=require(_0xec37('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x45937e,_0x406e6c){_0x406e6c=_0x406e6c||0xcc;return function(_0x48f090){if(_0x48f090){return _0x45937e['sendStatus'](_0x406e6c);}return _0x45937e['status'](_0x406e6c)[_0xec37('0x17')]();};}function respondWithResult(_0x4d7b58,_0x270b29){_0x270b29=_0x270b29||0xc8;return function(_0x53eb88){if(_0x53eb88){return _0x4d7b58[_0xec37('0x18')](_0x270b29)[_0xec37('0x19')](_0x53eb88);}};}function respondWithFilteredResult(_0x11c99d,_0xec49eb){return function(_0x55c8d9){if(_0x55c8d9){var _0x4955ba=typeof _0xec49eb[_0xec37('0x1a')]==='undefined'&&typeof _0xec49eb['limit']===_0xec37('0x1b');var _0x2b9d3f=_0x55c8d9['count'];var _0x272aa2=_0x4955ba?0x0:_0xec49eb['offset'];var _0x334006=_0x4955ba?_0x55c8d9[_0xec37('0x1c')]:_0xec49eb[_0xec37('0x1a')]+_0xec49eb[_0xec37('0x1d')];var _0x3d0f6e;if(_0x334006>=_0x2b9d3f){_0x334006=_0x2b9d3f;_0x3d0f6e=0xc8;}else{_0x3d0f6e=0xce;}_0x11c99d[_0xec37('0x18')](_0x3d0f6e);return _0x11c99d[_0xec37('0x1e')](_0xec37('0x1f'),_0x272aa2+'-'+_0x334006+'/'+_0x2b9d3f)[_0xec37('0x19')](_0x55c8d9);}return null;};}function patchUpdates(_0x98b854){return function(_0x241ef9){try{jsonpatch['apply'](_0x241ef9,_0x98b854,!![]);}catch(_0x1d9ad2){return BPromise[_0xec37('0x20')](_0x1d9ad2);}return _0x241ef9[_0xec37('0x21')]();};}function saveUpdates(_0x2d59a9,_0x405e00){return function(_0x52647d){if(_0x52647d){return _0x52647d[_0xec37('0x22')](_0x2d59a9)[_0xec37('0x23')](function(_0x21989c){return _0x21989c;});}return null;};}function removeEntity(_0x12d3cb,_0x3c552d){return function(_0x60abd9){if(_0x60abd9){return _0x60abd9[_0xec37('0x24')]()[_0xec37('0x23')](function(){_0x12d3cb[_0xec37('0x18')](0xcc)[_0xec37('0x17')]();});}};}function handleEntityNotFound(_0xd371c2,_0x2eecce){return function(_0x3d6293){if(!_0x3d6293){_0xd371c2['sendStatus'](0x194);}return _0x3d6293;};}function handleError(_0x1aa0e2,_0x2f57dc){_0x2f57dc=_0x2f57dc||0x1f4;return function(_0x22f898){logger['error'](_0x22f898[_0xec37('0x25')]);if(_0x22f898[_0xec37('0x26')]){delete _0x22f898[_0xec37('0x26')];}_0x1aa0e2[_0xec37('0x18')](_0x2f57dc)[_0xec37('0x27')](_0x22f898);};}exports['index']=function(_0x4b482f,_0x5d8db7){var _0x4b09d2={},_0x5a3f7b={},_0x559242={'count':0x0,'rows':[]};var _0x99b5fe=_[_0xec37('0x28')](db[_0xec37('0x29')][_0xec37('0x2a')],function(_0x4cdf05){return{'name':_0x4cdf05[_0xec37('0x2b')],'type':_0x4cdf05[_0xec37('0x2c')]['key']};});_0x5a3f7b['model']=_['map'](_0x99b5fe,_0xec37('0x26'));_0x5a3f7b[_0xec37('0x2d')]=_['keys'](_0x4b482f[_0xec37('0x2d')]);_0x5a3f7b['filters']=_['intersection'](_0x5a3f7b[_0xec37('0x2e')],_0x5a3f7b[_0xec37('0x2d')]);_0x4b09d2[_0xec37('0x2f')]=_['intersection'](_0x5a3f7b[_0xec37('0x2e')],qs['fields'](_0x4b482f[_0xec37('0x2d')][_0xec37('0x30')]));_0x4b09d2['attributes']=_0x4b09d2['attributes'][_0xec37('0x31')]?_0x4b09d2[_0xec37('0x2f')]:_0x5a3f7b['model'];if(!_0x4b482f[_0xec37('0x2d')]['hasOwnProperty']('nolimit')){_0x4b09d2['limit']=qs['limit'](_0x4b482f[_0xec37('0x2d')][_0xec37('0x1d')]);_0x4b09d2[_0xec37('0x1a')]=qs[_0xec37('0x1a')](_0x4b482f['query'][_0xec37('0x1a')]);}_0x4b09d2['order']=qs[_0xec37('0x32')](_0x4b482f[_0xec37('0x2d')]['sort']);_0x4b09d2['where']=qs[_0xec37('0x33')](_[_0xec37('0x34')](_0x4b482f[_0xec37('0x2d')],_0x5a3f7b['filters']),_0x99b5fe);if(_0x4b482f[_0xec37('0x2d')][_0xec37('0x35')]){_0x4b09d2[_0xec37('0x36')]=_[_0xec37('0x37')](_0x4b09d2[_0xec37('0x36')],{'$or':_[_0xec37('0x28')](_0x99b5fe,function(_0x5aa771){if(_0x5aa771[_0xec37('0x2c')]!==_0xec37('0x38')){var _0x1efdd3={};_0x1efdd3[_0x5aa771[_0xec37('0x26')]]={'$like':'%'+_0x4b482f[_0xec37('0x2d')][_0xec37('0x35')]+'%'};return _0x1efdd3;}})});}_0x4b09d2=_[_0xec37('0x37')]({},_0x4b09d2,_0x4b482f['options']);var _0x4fa823={'where':_0x4b09d2['where']};return db[_0xec37('0x29')][_0xec37('0x1c')](_0x4fa823)['then'](function(_0x4402fb){_0x559242['count']=_0x4402fb;if(_0x4b482f[_0xec37('0x2d')][_0xec37('0x39')]){_0x4b09d2[_0xec37('0x3a')]=[{'all':!![]}];}return db[_0xec37('0x29')][_0xec37('0x3b')](_0x4b09d2);})[_0xec37('0x23')](function(_0x120cd9){_0x559242[_0xec37('0x3c')]=_0x120cd9;return _0x559242;})['then'](respondWithFilteredResult(_0x5d8db7,_0x4b09d2))[_0xec37('0x3d')](handleError(_0x5d8db7,null));};exports[_0xec37('0x3e')]=function(_0x4aad4a,_0x3ca25f){var _0x574db5={'raw':!![],'where':{'id':_0x4aad4a[_0xec37('0x3f')]['id']}},_0x47e6a3={};_0x47e6a3[_0xec37('0x2e')]=_[_0xec37('0x40')](db[_0xec37('0x29')][_0xec37('0x2a')]);_0x47e6a3[_0xec37('0x2d')]=_[_0xec37('0x40')](_0x4aad4a[_0xec37('0x2d')]);_0x47e6a3[_0xec37('0x33')]=_[_0xec37('0x41')](_0x47e6a3[_0xec37('0x2e')],_0x47e6a3[_0xec37('0x2d')]);_0x574db5['attributes']=_[_0xec37('0x41')](_0x47e6a3[_0xec37('0x2e')],qs[_0xec37('0x30')](_0x4aad4a[_0xec37('0x2d')]['fields']));_0x574db5[_0xec37('0x2f')]=_0x574db5[_0xec37('0x2f')][_0xec37('0x31')]?_0x574db5[_0xec37('0x2f')]:_0x47e6a3[_0xec37('0x2e')];if(_0x4aad4a[_0xec37('0x2d')]['includeAll']){_0x574db5[_0xec37('0x3a')]=[{'all':!![]}];}_0x574db5=_[_0xec37('0x37')]({},_0x574db5,_0x4aad4a[_0xec37('0x42')]);return db['MailSubstatus'][_0xec37('0x43')](_0x574db5)['then'](handleEntityNotFound(_0x3ca25f,null))[_0xec37('0x23')](respondWithResult(_0x3ca25f,null))[_0xec37('0x3d')](handleError(_0x3ca25f,null));};exports[_0xec37('0x44')]=function(_0x4e65e0,_0x45fe09){return db[_0xec37('0x29')][_0xec37('0x44')](_0x4e65e0['body'],{})[_0xec37('0x23')](respondWithResult(_0x45fe09,0xc9))['catch'](handleError(_0x45fe09,null));};exports[_0xec37('0x22')]=function(_0x420a34,_0x38d54a){if(_0x420a34[_0xec37('0x45')]['id']){delete _0x420a34[_0xec37('0x45')]['id'];}return db[_0xec37('0x29')][_0xec37('0x43')]({'where':{'id':_0x420a34['params']['id']}})[_0xec37('0x23')](handleEntityNotFound(_0x38d54a,null))[_0xec37('0x23')](saveUpdates(_0x420a34['body'],null))['then'](respondWithResult(_0x38d54a,null))[_0xec37('0x3d')](handleError(_0x38d54a,null));};exports[_0xec37('0x24')]=function(_0x96b879,_0x1b73aa){return db[_0xec37('0x29')][_0xec37('0x43')]({'where':{'id':_0x96b879[_0xec37('0x3f')]['id']}})[_0xec37('0x23')](handleEntityNotFound(_0x1b73aa,null))['then'](removeEntity(_0x1b73aa,null))[_0xec37('0x3d')](handleError(_0x1b73aa,null));};exports['describe']=function(_0x1f565f,_0x321593){return db[_0xec37('0x29')][_0xec37('0x46')]()[_0xec37('0x23')](respondWithResult(_0x321593,null))['catch'](handleError(_0x321593,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x318a=['MailSubstatus','mail_substatuses','lodash','util','../../config/logger','api','moment','path','rimraf','../../config/environment','./mailSubstatus.attributes','exports'];(function(_0x20ae20,_0x388ece){var _0x5837d1=function(_0x496cc3){while(--_0x496cc3){_0x20ae20['push'](_0x20ae20['shift']());}};_0x5837d1(++_0x388ece);}(_0x318a,0x7a));var _0xa318=function(_0x1dd440,_0x4baf39){_0x1dd440=_0x1dd440-0x0;var _0x22bdd2=_0x318a[_0x1dd440];return _0x22bdd2;};'use strict';var _=require(_0xa318('0x0'));var util=require(_0xa318('0x1'));var logger=require(_0xa318('0x2'))(_0xa318('0x3'));var moment=require(_0xa318('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xa318('0x5'));var rimraf=require(_0xa318('0x6'));var config=require(_0xa318('0x7'));var attributes=require(_0xa318('0x8'));module[_0xa318('0x9')]=function(_0x13a57a,_0x218310){return _0x13a57a['define'](_0xa318('0xa'),attributes,{'tableName':_0xa318('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8009=['./mailSubstatus.attributes','exports','define','MailSubstatus','mail_substatuses','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x40031b,_0x2ace75){var _0x35f173=function(_0x5bb66d){while(--_0x5bb66d){_0x40031b['push'](_0x40031b['shift']());}};_0x35f173(++_0x2ace75);}(_0x8009,0x179));var _0x9800=function(_0x3b1015,_0x452b47){_0x3b1015=_0x3b1015-0x0;var _0x2968f7=_0x8009[_0x3b1015];return _0x2968f7;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x9800('0x0'))('api');var moment=require(_0x9800('0x1'));var BPromise=require(_0x9800('0x2'));var rp=require(_0x9800('0x3'));var fs=require('fs');var path=require(_0x9800('0x4'));var rimraf=require(_0x9800('0x5'));var config=require(_0x9800('0x6'));var attributes=require(_0x9800('0x7'));module[_0x9800('0x8')]=function(_0x42e7e0,_0xfa073e){return _0x42e7e0[_0x9800('0x9')](_0x9800('0xa'),attributes,{'tableName':_0x9800('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78aa=['lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','request','then','debug','request\x20sent','error','code','message','MailSubstatus,\x20%s,\x20%s','info','result','catch'];(function(_0x43546d,_0x3d8a8c){var _0x266e09=function(_0x4df094){while(--_0x4df094){_0x43546d['push'](_0x43546d['shift']());}};_0x266e09(++_0x3d8a8c);}(_0x78aa,0x72));var _0xa78a=function(_0x24e897,_0x4ec154){_0x24e897=_0x24e897-0x0;var _0x47ce84=_0x78aa[_0x24e897];return _0x47ce84;};'use strict';var _=require(_0xa78a('0x0'));var util=require(_0xa78a('0x1'));var moment=require(_0xa78a('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa78a('0x3'));var db=require(_0xa78a('0x4'))['db'];var utils=require(_0xa78a('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xa78a('0x6'));var jayson=require(_0xa78a('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x41adbb,_0x2d51eb,_0x282b15){return new BPromise(function(_0x4b1a21,_0x560bae){return client[_0xa78a('0x8')](_0x41adbb,_0x282b15)[_0xa78a('0x9')](function(_0x197136){logger['info']('MailSubstatus,\x20%s,\x20%s',_0x2d51eb,'request\x20sent');logger[_0xa78a('0xa')]('MailSubstatus,\x20%s,\x20%s,\x20%s',_0x2d51eb,_0xa78a('0xb'),JSON['stringify'](_0x197136));if(_0x197136[_0xa78a('0xc')]){if(_0x197136['error'][_0xa78a('0xd')]===0x1f4){logger[_0xa78a('0xc')]('MailSubstatus,\x20%s,\x20%s',_0x2d51eb,_0x197136[_0xa78a('0xc')][_0xa78a('0xe')]);return _0x560bae(_0x197136['error'][_0xa78a('0xe')]);}logger[_0xa78a('0xc')](_0xa78a('0xf'),_0x2d51eb,_0x197136[_0xa78a('0xc')]['message']);return _0x4b1a21(_0x197136[_0xa78a('0xc')]['message']);}else{logger[_0xa78a('0x10')](_0xa78a('0xf'),_0x2d51eb,_0xa78a('0xb'));_0x4b1a21(_0x197136[_0xa78a('0x11')]['message']);}})[_0xa78a('0x12')](function(_0x31cf93){logger[_0xa78a('0xc')](_0xa78a('0xf'),_0x2d51eb,_0x31cf93);_0x560bae(_0x31cf93);});});}
\ No newline at end of file
+var _0xf583=['info','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','request','MailSubstatus,\x20%s,\x20%s','request\x20sent','debug','MailSubstatus,\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);}(_0xf583,0x1ca));var _0x3f58=function(_0x4b91c4,_0x23f35f){_0x4b91c4=_0x4b91c4-0x0;var _0x25cb80=_0xf583[_0x4b91c4];return _0x25cb80;};'use strict';var _=require('lodash');var util=require(_0x3f58('0x0'));var moment=require(_0x3f58('0x1'));var BPromise=require(_0x3f58('0x2'));var rs=require(_0x3f58('0x3'));var fs=require('fs');var Redis=require(_0x3f58('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x3f58('0x5'));var logger=require(_0x3f58('0x6'))(_0x3f58('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x382103,_0x3097de,_0x2a977d){return new BPromise(function(_0xc1d023,_0x527cc4){return client[_0x3f58('0x8')](_0x382103,_0x2a977d)['then'](function(_0x30ab72){logger['info'](_0x3f58('0x9'),_0x3097de,_0x3f58('0xa'));logger[_0x3f58('0xb')](_0x3f58('0xc'),_0x3097de,'request\x20sent',JSON[_0x3f58('0xd')](_0x30ab72));if(_0x30ab72[_0x3f58('0xe')]){if(_0x30ab72[_0x3f58('0xe')][_0x3f58('0xf')]===0x1f4){logger[_0x3f58('0xe')]('MailSubstatus,\x20%s,\x20%s',_0x3097de,_0x30ab72[_0x3f58('0xe')][_0x3f58('0x10')]);return _0x527cc4(_0x30ab72['error'][_0x3f58('0x10')]);}logger[_0x3f58('0xe')](_0x3f58('0x9'),_0x3097de,_0x30ab72['error']['message']);return _0xc1d023(_0x30ab72[_0x3f58('0xe')][_0x3f58('0x10')]);}else{logger[_0x3f58('0x11')](_0x3f58('0x9'),_0x3097de,_0x3f58('0xa'));_0xc1d023(_0x30ab72['result'][_0x3f58('0x10')]);}})[_0x3f58('0x12')](function(_0x4df837){logger['error']('MailSubstatus,\x20%s,\x20%s',_0x3097de,_0x4df837);_0x527cc4(_0x4df837);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeaba=['delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./mailTransferReport.controller','get','isAuthenticated','index','/describe','describe','show','post','create','/:id','update'];(function(_0x461bb6,_0x212ac1){var _0x1fa910=function(_0x5bffac){while(--_0x5bffac){_0x461bb6['push'](_0x461bb6['shift']());}};_0x1fa910(++_0x212ac1);}(_0xeaba,0x129));var _0xaeab=function(_0x75f869,_0x3690d6){_0x75f869=_0x75f869-0x0;var _0x10af8b=_0xeaba[_0x75f869];return _0x10af8b;};'use strict';var multer=require(_0xaeab('0x0'));var util=require(_0xaeab('0x1'));var path=require('path');var timeout=require(_0xaeab('0x2'));var express=require(_0xaeab('0x3'));var router=express[_0xaeab('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xaeab('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xaeab('0x6'));var controller=require(_0xaeab('0x7'));router[_0xaeab('0x8')]('/',auth[_0xaeab('0x9')](),controller[_0xaeab('0xa')]);router[_0xaeab('0x8')](_0xaeab('0xb'),auth[_0xaeab('0x9')](),controller[_0xaeab('0xc')]);router[_0xaeab('0x8')]('/:id',auth[_0xaeab('0x9')](),controller[_0xaeab('0xd')]);router[_0xaeab('0xe')]('/',auth[_0xaeab('0x9')](),controller[_0xaeab('0xf')]);router['put'](_0xaeab('0x10'),auth[_0xaeab('0x9')](),controller[_0xaeab('0x11')]);router[_0xaeab('0x12')](_0xaeab('0x10'),auth[_0xaeab('0x9')](),controller[_0xaeab('0x13')]);module[_0xaeab('0x14')]=router;
\ No newline at end of file
+var _0x5a2f=['./mailTransferReport.controller','get','isAuthenticated','index','describe','/:id','post','create','put','update','delete','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x55c73e,_0x40995a){var _0x15c4b1=function(_0x38f09a){while(--_0x38f09a){_0x55c73e['push'](_0x55c73e['shift']());}};_0x15c4b1(++_0x40995a);}(_0x5a2f,0x19d));var _0xf5a2=function(_0x33d4c5,_0x21b867){_0x33d4c5=_0x33d4c5-0x0;var _0x3ebdaf=_0x5a2f[_0x33d4c5];return _0x3ebdaf;};'use strict';var multer=require(_0xf5a2('0x0'));var util=require(_0xf5a2('0x1'));var path=require(_0xf5a2('0x2'));var timeout=require('connect-timeout');var express=require(_0xf5a2('0x3'));var router=express['Router']();var fs_extra=require(_0xf5a2('0x4'));var auth=require(_0xf5a2('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xf5a2('0x6'));var controller=require(_0xf5a2('0x7'));router[_0xf5a2('0x8')]('/',auth[_0xf5a2('0x9')](),controller[_0xf5a2('0xa')]);router['get']('/describe',auth['isAuthenticated'](),controller[_0xf5a2('0xb')]);router[_0xf5a2('0x8')](_0xf5a2('0xc'),auth[_0xf5a2('0x9')](),controller['show']);router[_0xf5a2('0xd')]('/',auth[_0xf5a2('0x9')](),controller[_0xf5a2('0xe')]);router[_0xf5a2('0xf')]('/:id',auth[_0xf5a2('0x9')](),controller[_0xf5a2('0x10')]);router[_0xf5a2('0x11')](_0xf5a2('0xc'),auth[_0xf5a2('0x9')](),controller[_0xf5a2('0x12')]);module[_0xf5a2('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['moment','sequelize','exports','ENUM','agent','queue','DATE','NOW'];(function(_0x25f53f,_0x5a45f0){var _0x44f651=function(_0x542166){while(--_0x542166){_0x25f53f['push'](_0x25f53f['shift']());}};_0x44f651(++_0x5a45f0);}(_0x00bb,0x1d8));var _0xb00b=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0x00bb[_0x47e7cb];return _0x2a8874;};'use strict';var moment=require(_0xb00b('0x0'));var Sequelize=require(_0xb00b('0x1'));module[_0xb00b('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xb00b('0x3')]('account',_0xb00b('0x4'),_0xb00b('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize[_0xb00b('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xb00b('0x7')]}};
\ No newline at end of file
+var _0xe706=['NOW','moment','sequelize','exports','ENUM','account','agent','queue','DATE'];(function(_0x6da6dd,_0x417da3){var _0x164320=function(_0x2b87d1){while(--_0x2b87d1){_0x6da6dd['push'](_0x6da6dd['shift']());}};_0x164320(++_0x417da3);}(_0xe706,0xa3));var _0x6e70=function(_0x5b4f98,_0x4e2213){_0x5b4f98=_0x5b4f98-0x0;var _0x1f5022=_0xe706[_0x5b4f98];return _0x1f5022;};'use strict';var moment=require(_0x6e70('0x0'));var Sequelize=require(_0x6e70('0x1'));module[_0x6e70('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x6e70('0x3')](_0x6e70('0x4'),_0x6e70('0x5'),_0x6e70('0x6')),'allowNull':![],'defaultValue':_0x6e70('0x6')},'transferredAt':{'type':Sequelize[_0x6e70('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x6e70('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1ad=['../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','reject','then','name','send','index','map','MailTransferReport','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','destroy','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../config/logger','../../config/utils'];(function(_0x32dce6,_0x44ddf0){var _0x4a887d=function(_0x27e099){while(--_0x27e099){_0x32dce6['push'](_0x32dce6['shift']());}};_0x4a887d(++_0x44ddf0);}(_0xa1ad,0x196));var _0xda1a=function(_0xc8a11,_0x347a33){_0xc8a11=_0xc8a11-0x0;var _0x55a500=_0xa1ad[_0xc8a11];return _0x55a500;};'use strict';var emlformat=require(_0xda1a('0x0'));var rimraf=require(_0xda1a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xda1a('0x2'));var rp=require(_0xda1a('0x3'));var moment=require('moment');var BPromise=require(_0xda1a('0x4'));var Mustache=require(_0xda1a('0x5'));var util=require(_0xda1a('0x6'));var path=require('path');var sox=require(_0xda1a('0x7'));var csv=require('to-csv');var ejs=require(_0xda1a('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xda1a('0x9'));var squel=require(_0xda1a('0xa'));var crypto=require(_0xda1a('0xb'));var jsforce=require(_0xda1a('0xc'));var deskjs=require(_0xda1a('0xd'));var toCsv=require(_0xda1a('0xe'));var querystring=require(_0xda1a('0xf'));var Papa=require(_0xda1a('0x10'));var Redis=require(_0xda1a('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xda1a('0x12'))('api');var utils=require(_0xda1a('0x13'));var config=require(_0xda1a('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xda1a('0x15'))['db'];function respondWithStatusCode(_0x5f6098,_0x569c0d){_0x569c0d=_0x569c0d||0xcc;return function(_0x2d52cb){if(_0x2d52cb){return _0x5f6098[_0xda1a('0x16')](_0x569c0d);}return _0x5f6098[_0xda1a('0x17')](_0x569c0d)[_0xda1a('0x18')]();};}function respondWithResult(_0x42f2aa,_0x353fc4){_0x353fc4=_0x353fc4||0xc8;return function(_0xf9ee90){if(_0xf9ee90){return _0x42f2aa[_0xda1a('0x17')](_0x353fc4)[_0xda1a('0x19')](_0xf9ee90);}};}function respondWithFilteredResult(_0x518c2d,_0x21b252){return function(_0x32db5a){if(_0x32db5a){var _0x297574=typeof _0x21b252[_0xda1a('0x1a')]==='undefined'&&typeof _0x21b252[_0xda1a('0x1b')]===_0xda1a('0x1c');var _0x2680ed=_0x32db5a[_0xda1a('0x1d')];var _0xffee7b=_0x297574?0x0:_0x21b252[_0xda1a('0x1a')];var _0x14c016=_0x297574?_0x32db5a[_0xda1a('0x1d')]:_0x21b252[_0xda1a('0x1a')]+_0x21b252[_0xda1a('0x1b')];var _0x95a36a;if(_0x14c016>=_0x2680ed){_0x14c016=_0x2680ed;_0x95a36a=0xc8;}else{_0x95a36a=0xce;}_0x518c2d[_0xda1a('0x17')](_0x95a36a);return _0x518c2d['set'](_0xda1a('0x1e'),_0xffee7b+'-'+_0x14c016+'/'+_0x2680ed)[_0xda1a('0x19')](_0x32db5a);}return null;};}function patchUpdates(_0x52ad12){return function(_0x19bc07){try{jsonpatch[_0xda1a('0x1f')](_0x19bc07,_0x52ad12,!![]);}catch(_0x2780ca){return BPromise[_0xda1a('0x20')](_0x2780ca);}return _0x19bc07['save']();};}function saveUpdates(_0x1e7baa,_0x4de3e9){return function(_0x5c98b8){if(_0x5c98b8){return _0x5c98b8['update'](_0x1e7baa)[_0xda1a('0x21')](function(_0x4c531e){return _0x4c531e;});}return null;};}function removeEntity(_0x22eaa4,_0x2a1993){return function(_0x10f313){if(_0x10f313){return _0x10f313['destroy']()[_0xda1a('0x21')](function(){_0x22eaa4[_0xda1a('0x17')](0xcc)[_0xda1a('0x18')]();});}};}function handleEntityNotFound(_0x463831,_0x1d6a99){return function(_0x4f84c5){if(!_0x4f84c5){_0x463831[_0xda1a('0x16')](0x194);}return _0x4f84c5;};}function handleError(_0xdba724,_0x2db1dc){_0x2db1dc=_0x2db1dc||0x1f4;return function(_0x22e2fd){logger['error'](_0x22e2fd['stack']);if(_0x22e2fd[_0xda1a('0x22')]){delete _0x22e2fd[_0xda1a('0x22')];}_0xdba724[_0xda1a('0x17')](_0x2db1dc)[_0xda1a('0x23')](_0x22e2fd);};}exports[_0xda1a('0x24')]=function(_0x314a48,_0x4979c2){var _0x5876ad={},_0x28b4a7={},_0x10aa84={'count':0x0,'rows':[]};var _0x293854=_[_0xda1a('0x25')](db[_0xda1a('0x26')][_0xda1a('0x27')],function(_0x1a063e){return{'name':_0x1a063e[_0xda1a('0x28')],'type':_0x1a063e['type'][_0xda1a('0x29')]};});_0x28b4a7[_0xda1a('0x2a')]=_['map'](_0x293854,_0xda1a('0x22'));_0x28b4a7[_0xda1a('0x2b')]=_[_0xda1a('0x2c')](_0x314a48[_0xda1a('0x2b')]);_0x28b4a7[_0xda1a('0x2d')]=_[_0xda1a('0x2e')](_0x28b4a7[_0xda1a('0x2a')],_0x28b4a7[_0xda1a('0x2b')]);_0x5876ad[_0xda1a('0x2f')]=_[_0xda1a('0x2e')](_0x28b4a7[_0xda1a('0x2a')],qs[_0xda1a('0x30')](_0x314a48[_0xda1a('0x2b')][_0xda1a('0x30')]));_0x5876ad[_0xda1a('0x2f')]=_0x5876ad['attributes'][_0xda1a('0x31')]?_0x5876ad[_0xda1a('0x2f')]:_0x28b4a7[_0xda1a('0x2a')];if(!_0x314a48[_0xda1a('0x2b')][_0xda1a('0x32')](_0xda1a('0x33'))){_0x5876ad['limit']=qs[_0xda1a('0x1b')](_0x314a48[_0xda1a('0x2b')][_0xda1a('0x1b')]);_0x5876ad[_0xda1a('0x1a')]=qs['offset'](_0x314a48[_0xda1a('0x2b')]['offset']);}_0x5876ad['order']=qs[_0xda1a('0x34')](_0x314a48[_0xda1a('0x2b')][_0xda1a('0x34')]);_0x5876ad['where']=qs[_0xda1a('0x2d')](_[_0xda1a('0x35')](_0x314a48[_0xda1a('0x2b')],_0x28b4a7[_0xda1a('0x2d')]),_0x293854);if(_0x314a48[_0xda1a('0x2b')][_0xda1a('0x36')]){_0x5876ad[_0xda1a('0x37')]=_[_0xda1a('0x38')](_0x5876ad['where'],{'$or':_[_0xda1a('0x25')](_0x293854,function(_0x12f726){if(_0x12f726[_0xda1a('0x39')]!==_0xda1a('0x3a')){var _0x3d2c55={};_0x3d2c55[_0x12f726[_0xda1a('0x22')]]={'$like':'%'+_0x314a48[_0xda1a('0x2b')][_0xda1a('0x36')]+'%'};return _0x3d2c55;}})});}_0x5876ad=_[_0xda1a('0x38')]({},_0x5876ad,_0x314a48[_0xda1a('0x3b')]);var _0x4a00e6={'where':_0x5876ad[_0xda1a('0x37')]};return db[_0xda1a('0x26')][_0xda1a('0x1d')](_0x4a00e6)[_0xda1a('0x21')](function(_0x39c248){_0x10aa84[_0xda1a('0x1d')]=_0x39c248;if(_0x314a48['query'][_0xda1a('0x3c')]){_0x5876ad[_0xda1a('0x3d')]=[{'all':!![]}];}return db[_0xda1a('0x26')][_0xda1a('0x3e')](_0x5876ad);})['then'](function(_0x231b6d){_0x10aa84[_0xda1a('0x3f')]=_0x231b6d;return _0x10aa84;})['then'](respondWithFilteredResult(_0x4979c2,_0x5876ad))[_0xda1a('0x40')](handleError(_0x4979c2,null));};exports['show']=function(_0x2adaff,_0x421f04){var _0x462ea5={'raw':!![],'where':{'id':_0x2adaff[_0xda1a('0x41')]['id']}},_0x92e31f={};_0x92e31f['model']=_['keys'](db[_0xda1a('0x26')]['rawAttributes']);_0x92e31f[_0xda1a('0x2b')]=_[_0xda1a('0x2c')](_0x2adaff[_0xda1a('0x2b')]);_0x92e31f[_0xda1a('0x2d')]=_[_0xda1a('0x2e')](_0x92e31f[_0xda1a('0x2a')],_0x92e31f['query']);_0x462ea5[_0xda1a('0x2f')]=_[_0xda1a('0x2e')](_0x92e31f['model'],qs[_0xda1a('0x30')](_0x2adaff['query'][_0xda1a('0x30')]));_0x462ea5['attributes']=_0x462ea5[_0xda1a('0x2f')][_0xda1a('0x31')]?_0x462ea5[_0xda1a('0x2f')]:_0x92e31f[_0xda1a('0x2a')];if(_0x2adaff[_0xda1a('0x2b')]['includeAll']){_0x462ea5['include']=[{'all':!![]}];}_0x462ea5=_[_0xda1a('0x38')]({},_0x462ea5,_0x2adaff[_0xda1a('0x3b')]);return db['MailTransferReport'][_0xda1a('0x42')](_0x462ea5)[_0xda1a('0x21')](handleEntityNotFound(_0x421f04,null))[_0xda1a('0x21')](respondWithResult(_0x421f04,null))[_0xda1a('0x40')](handleError(_0x421f04,null));};exports[_0xda1a('0x43')]=function(_0x249a18,_0x3a4307){return db[_0xda1a('0x26')][_0xda1a('0x43')](_0x249a18[_0xda1a('0x44')],{})[_0xda1a('0x21')](respondWithResult(_0x3a4307,0xc9))[_0xda1a('0x40')](handleError(_0x3a4307,null));};exports['update']=function(_0x372a9f,_0x1b1dd6){if(_0x372a9f[_0xda1a('0x44')]['id']){delete _0x372a9f['body']['id'];}return db[_0xda1a('0x26')][_0xda1a('0x42')]({'where':{'id':_0x372a9f[_0xda1a('0x41')]['id']}})[_0xda1a('0x21')](handleEntityNotFound(_0x1b1dd6,null))[_0xda1a('0x21')](saveUpdates(_0x372a9f[_0xda1a('0x44')],null))['then'](respondWithResult(_0x1b1dd6,null))[_0xda1a('0x40')](handleError(_0x1b1dd6,null));};exports[_0xda1a('0x45')]=function(_0x210384,_0x2323a5){return db[_0xda1a('0x26')]['find']({'where':{'id':_0x210384[_0xda1a('0x41')]['id']}})[_0xda1a('0x21')](handleEntityNotFound(_0x2323a5,null))['then'](removeEntity(_0x2323a5,null))[_0xda1a('0x40')](handleError(_0x2323a5,null));};exports['describe']=function(_0x2b0889,_0x2f1232){return db[_0xda1a('0x26')][_0xda1a('0x46')]()['then'](respondWithResult(_0x2f1232,null))[_0xda1a('0x40')](handleError(_0x2f1232,null));};
\ No newline at end of file
+var _0x90aa=['intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','type','VIRTUAL','options','include','findAll','catch','show','rawAttributes','includeAll','find','create','update','body','params','describe','eml-format','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','limit','undefined','count','set','apply','reject','then','destroy','error','stack','name','send','map','MailTransferReport','fieldName','model','query','keys','filters'];(function(_0x1486e5,_0x39684f){var _0x29d89b=function(_0x4a0a80){while(--_0x4a0a80){_0x1486e5['push'](_0x1486e5['shift']());}};_0x29d89b(++_0x39684f);}(_0x90aa,0x1c4));var _0xa90a=function(_0x4742cf,_0x334f00){_0x4742cf=_0x4742cf-0x0;var _0x98f73f=_0x90aa[_0x4742cf];return _0x98f73f;};'use strict';var emlformat=require(_0xa90a('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xa90a('0x1'));var rp=require(_0xa90a('0x2'));var moment=require('moment');var BPromise=require(_0xa90a('0x3'));var Mustache=require(_0xa90a('0x4'));var util=require('util');var path=require(_0xa90a('0x5'));var sox=require(_0xa90a('0x6'));var csv=require(_0xa90a('0x7'));var ejs=require(_0xa90a('0x8'));var fs=require('fs');var fs_extra=require(_0xa90a('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xa90a('0xa'));var toCsv=require(_0xa90a('0x7'));var querystring=require(_0xa90a('0xb'));var Papa=require('papaparse');var Redis=require(_0xa90a('0xc'));var authService=require(_0xa90a('0xd'));var qs=require(_0xa90a('0xe'));var as=require(_0xa90a('0xf'));var hardwareService=require(_0xa90a('0x10'));var logger=require(_0xa90a('0x11'))(_0xa90a('0x12'));var utils=require(_0xa90a('0x13'));var config=require(_0xa90a('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xa90a('0x15'))['db'];function respondWithStatusCode(_0x2f0083,_0x120f39){_0x120f39=_0x120f39||0xcc;return function(_0x431769){if(_0x431769){return _0x2f0083['sendStatus'](_0x120f39);}return _0x2f0083[_0xa90a('0x16')](_0x120f39)[_0xa90a('0x17')]();};}function respondWithResult(_0x4d554f,_0x24c15b){_0x24c15b=_0x24c15b||0xc8;return function(_0x5f29ca){if(_0x5f29ca){return _0x4d554f[_0xa90a('0x16')](_0x24c15b)[_0xa90a('0x18')](_0x5f29ca);}};}function respondWithFilteredResult(_0x4c42ed,_0x221f18){return function(_0x33e6dd){if(_0x33e6dd){var _0x3cd576=typeof _0x221f18[_0xa90a('0x19')]==='undefined'&&typeof _0x221f18[_0xa90a('0x1a')]===_0xa90a('0x1b');var _0xd18514=_0x33e6dd[_0xa90a('0x1c')];var _0x53c216=_0x3cd576?0x0:_0x221f18[_0xa90a('0x19')];var _0x58fa9c=_0x3cd576?_0x33e6dd[_0xa90a('0x1c')]:_0x221f18[_0xa90a('0x19')]+_0x221f18[_0xa90a('0x1a')];var _0x29f719;if(_0x58fa9c>=_0xd18514){_0x58fa9c=_0xd18514;_0x29f719=0xc8;}else{_0x29f719=0xce;}_0x4c42ed[_0xa90a('0x16')](_0x29f719);return _0x4c42ed[_0xa90a('0x1d')]('Content-Range',_0x53c216+'-'+_0x58fa9c+'/'+_0xd18514)[_0xa90a('0x18')](_0x33e6dd);}return null;};}function patchUpdates(_0x128bc5){return function(_0x3740db){try{jsonpatch[_0xa90a('0x1e')](_0x3740db,_0x128bc5,!![]);}catch(_0x1d42b5){return BPromise[_0xa90a('0x1f')](_0x1d42b5);}return _0x3740db['save']();};}function saveUpdates(_0x1b02d6,_0x203657){return function(_0x460c67){if(_0x460c67){return _0x460c67['update'](_0x1b02d6)[_0xa90a('0x20')](function(_0x468d40){return _0x468d40;});}return null;};}function removeEntity(_0x16b63a,_0x3c8686){return function(_0x34262f){if(_0x34262f){return _0x34262f[_0xa90a('0x21')]()['then'](function(){_0x16b63a[_0xa90a('0x16')](0xcc)[_0xa90a('0x17')]();});}};}function handleEntityNotFound(_0x24eb32,_0x41a162){return function(_0x25668b){if(!_0x25668b){_0x24eb32['sendStatus'](0x194);}return _0x25668b;};}function handleError(_0x12371f,_0x2a7b9c){_0x2a7b9c=_0x2a7b9c||0x1f4;return function(_0x3e6d81){logger[_0xa90a('0x22')](_0x3e6d81[_0xa90a('0x23')]);if(_0x3e6d81[_0xa90a('0x24')]){delete _0x3e6d81[_0xa90a('0x24')];}_0x12371f[_0xa90a('0x16')](_0x2a7b9c)[_0xa90a('0x25')](_0x3e6d81);};}exports['index']=function(_0x1546db,_0x3c72e1){var _0x5de419={},_0x26c9ce={},_0x2a60e2={'count':0x0,'rows':[]};var _0x49d03b=_[_0xa90a('0x26')](db[_0xa90a('0x27')]['rawAttributes'],function(_0x1563d0){return{'name':_0x1563d0[_0xa90a('0x28')],'type':_0x1563d0['type']['key']};});_0x26c9ce[_0xa90a('0x29')]=_[_0xa90a('0x26')](_0x49d03b,'name');_0x26c9ce[_0xa90a('0x2a')]=_[_0xa90a('0x2b')](_0x1546db[_0xa90a('0x2a')]);_0x26c9ce[_0xa90a('0x2c')]=_[_0xa90a('0x2d')](_0x26c9ce[_0xa90a('0x29')],_0x26c9ce[_0xa90a('0x2a')]);_0x5de419[_0xa90a('0x2e')]=_['intersection'](_0x26c9ce['model'],qs['fields'](_0x1546db['query'][_0xa90a('0x2f')]));_0x5de419[_0xa90a('0x2e')]=_0x5de419[_0xa90a('0x2e')][_0xa90a('0x30')]?_0x5de419[_0xa90a('0x2e')]:_0x26c9ce[_0xa90a('0x29')];if(!_0x1546db[_0xa90a('0x2a')][_0xa90a('0x31')](_0xa90a('0x32'))){_0x5de419[_0xa90a('0x1a')]=qs[_0xa90a('0x1a')](_0x1546db[_0xa90a('0x2a')][_0xa90a('0x1a')]);_0x5de419[_0xa90a('0x19')]=qs[_0xa90a('0x19')](_0x1546db['query']['offset']);}_0x5de419[_0xa90a('0x33')]=qs[_0xa90a('0x34')](_0x1546db[_0xa90a('0x2a')][_0xa90a('0x34')]);_0x5de419[_0xa90a('0x35')]=qs[_0xa90a('0x2c')](_[_0xa90a('0x36')](_0x1546db[_0xa90a('0x2a')],_0x26c9ce[_0xa90a('0x2c')]),_0x49d03b);if(_0x1546db[_0xa90a('0x2a')]['filter']){_0x5de419[_0xa90a('0x35')]=_[_0xa90a('0x37')](_0x5de419['where'],{'$or':_[_0xa90a('0x26')](_0x49d03b,function(_0x5c05bd){if(_0x5c05bd[_0xa90a('0x38')]!==_0xa90a('0x39')){var _0x205b37={};_0x205b37[_0x5c05bd[_0xa90a('0x24')]]={'$like':'%'+_0x1546db[_0xa90a('0x2a')]['filter']+'%'};return _0x205b37;}})});}_0x5de419=_['merge']({},_0x5de419,_0x1546db[_0xa90a('0x3a')]);var _0x1b5dd4={'where':_0x5de419[_0xa90a('0x35')]};return db[_0xa90a('0x27')]['count'](_0x1b5dd4)[_0xa90a('0x20')](function(_0x29c1c4){_0x2a60e2[_0xa90a('0x1c')]=_0x29c1c4;if(_0x1546db[_0xa90a('0x2a')]['includeAll']){_0x5de419[_0xa90a('0x3b')]=[{'all':!![]}];}return db[_0xa90a('0x27')][_0xa90a('0x3c')](_0x5de419);})[_0xa90a('0x20')](function(_0x5726ab){_0x2a60e2['rows']=_0x5726ab;return _0x2a60e2;})[_0xa90a('0x20')](respondWithFilteredResult(_0x3c72e1,_0x5de419))[_0xa90a('0x3d')](handleError(_0x3c72e1,null));};exports[_0xa90a('0x3e')]=function(_0x27df2d,_0x2044bb){var _0x8dec5b={'raw':!![],'where':{'id':_0x27df2d['params']['id']}},_0x4254ed={};_0x4254ed[_0xa90a('0x29')]=_[_0xa90a('0x2b')](db[_0xa90a('0x27')][_0xa90a('0x3f')]);_0x4254ed[_0xa90a('0x2a')]=_[_0xa90a('0x2b')](_0x27df2d[_0xa90a('0x2a')]);_0x4254ed[_0xa90a('0x2c')]=_[_0xa90a('0x2d')](_0x4254ed[_0xa90a('0x29')],_0x4254ed[_0xa90a('0x2a')]);_0x8dec5b['attributes']=_[_0xa90a('0x2d')](_0x4254ed[_0xa90a('0x29')],qs[_0xa90a('0x2f')](_0x27df2d[_0xa90a('0x2a')][_0xa90a('0x2f')]));_0x8dec5b['attributes']=_0x8dec5b[_0xa90a('0x2e')]['length']?_0x8dec5b[_0xa90a('0x2e')]:_0x4254ed['model'];if(_0x27df2d['query'][_0xa90a('0x40')]){_0x8dec5b['include']=[{'all':!![]}];}_0x8dec5b=_[_0xa90a('0x37')]({},_0x8dec5b,_0x27df2d[_0xa90a('0x3a')]);return db[_0xa90a('0x27')][_0xa90a('0x41')](_0x8dec5b)[_0xa90a('0x20')](handleEntityNotFound(_0x2044bb,null))[_0xa90a('0x20')](respondWithResult(_0x2044bb,null))[_0xa90a('0x3d')](handleError(_0x2044bb,null));};exports['create']=function(_0x4f032e,_0x56fc3f){return db['MailTransferReport'][_0xa90a('0x42')](_0x4f032e['body'],{})['then'](respondWithResult(_0x56fc3f,0xc9))[_0xa90a('0x3d')](handleError(_0x56fc3f,null));};exports[_0xa90a('0x43')]=function(_0x428f0c,_0x13bcbc){if(_0x428f0c['body']['id']){delete _0x428f0c[_0xa90a('0x44')]['id'];}return db[_0xa90a('0x27')][_0xa90a('0x41')]({'where':{'id':_0x428f0c[_0xa90a('0x45')]['id']}})['then'](handleEntityNotFound(_0x13bcbc,null))['then'](saveUpdates(_0x428f0c['body'],null))[_0xa90a('0x20')](respondWithResult(_0x13bcbc,null))['catch'](handleError(_0x13bcbc,null));};exports['destroy']=function(_0x165e01,_0xf2b191){return db['MailTransferReport'][_0xa90a('0x41')]({'where':{'id':_0x165e01[_0xa90a('0x45')]['id']}})[_0xa90a('0x20')](handleEntityNotFound(_0xf2b191,null))['then'](removeEntity(_0xf2b191,null))['catch'](handleError(_0xf2b191,null));};exports[_0xa90a('0x46')]=function(_0x48a3ec,_0x1c9bf0){return db[_0xa90a('0x27')][_0xa90a('0x46')]()[_0xa90a('0x20')](respondWithResult(_0x1c9bf0,null))[_0xa90a('0x3d')](handleError(_0x1c9bf0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x04de=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailTransferReport.attributes','MailTransferReport','report_mail_transfer','uniqueid','lodash','util','../../config/logger'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x04de,0x107));var _0xe04d=function(_0x22c5b9,_0x5a44eb){_0x22c5b9=_0x22c5b9-0x0;var _0x5bfe3b=_0x04de[_0x22c5b9];return _0x5bfe3b;};'use strict';var _=require(_0xe04d('0x0'));var util=require(_0xe04d('0x1'));var logger=require(_0xe04d('0x2'))(_0xe04d('0x3'));var moment=require(_0xe04d('0x4'));var BPromise=require(_0xe04d('0x5'));var rp=require(_0xe04d('0x6'));var fs=require('fs');var path=require(_0xe04d('0x7'));var rimraf=require(_0xe04d('0x8'));var config=require(_0xe04d('0x9'));var attributes=require(_0xe04d('0xa'));module['exports']=function(_0x4bb925,_0x4f7637){return _0x4bb925['define'](_0xe04d('0xb'),attributes,{'tableName':_0xe04d('0xc'),'paranoid':![],'indexes':[{'name':_0xe04d('0xd'),'fields':[_0xe04d('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x72b1=['path','rimraf','./mailTransferReport.attributes','exports','MailTransferReport','uniqueid','lodash','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0x72b1,0x16e));var _0x172b=function(_0x7ecfd9,_0xaf4a06){_0x7ecfd9=_0x7ecfd9-0x0;var _0x159c16=_0x72b1[_0x7ecfd9];return _0x159c16;};'use strict';var _=require(_0x172b('0x0'));var util=require('util');var logger=require(_0x172b('0x1'))(_0x172b('0x2'));var moment=require(_0x172b('0x3'));var BPromise=require(_0x172b('0x4'));var rp=require(_0x172b('0x5'));var fs=require('fs');var path=require(_0x172b('0x6'));var rimraf=require(_0x172b('0x7'));var config=require('../../config/environment');var attributes=require(_0x172b('0x8'));module[_0x172b('0x9')]=function(_0x475fd6,_0x222624){return _0x475fd6['define'](_0x172b('0xa'),attributes,{'tableName':'report_mail_transfer','paranoid':![],'indexes':[{'name':_0x172b('0xb'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea36=['lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','then','MailTransferReport,\x20%s,\x20%s','request\x20sent','debug','MailTransferReport,\x20%s,\x20%s,\x20%s','error','code','message','info','result'];(function(_0x3fe6df,_0x5a04d4){var _0x372a0e=function(_0x144b98){while(--_0x144b98){_0x3fe6df['push'](_0x3fe6df['shift']());}};_0x372a0e(++_0x5a04d4);}(_0xea36,0x18f));var _0x6ea3=function(_0x3cf9fd,_0x3bb119){_0x3cf9fd=_0x3cf9fd-0x0;var _0x5787c3=_0xea36[_0x3cf9fd];return _0x5787c3;};'use strict';var _=require(_0x6ea3('0x0'));var util=require(_0x6ea3('0x1'));var moment=require('moment');var BPromise=require(_0x6ea3('0x2'));var rs=require(_0x6ea3('0x3'));var fs=require('fs');var Redis=require(_0x6ea3('0x4'));var db=require(_0x6ea3('0x5'))['db'];var utils=require(_0x6ea3('0x6'));var logger=require('../../config/logger')(_0x6ea3('0x7'));var config=require(_0x6ea3('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x6ea3('0x9')][_0x6ea3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0xd040d4,_0x1d9328,_0x5b3ac){return new BPromise(function(_0x3ca8f1,_0x3544e5){return client['request'](_0xd040d4,_0x5b3ac)[_0x6ea3('0xb')](function(_0x3a29dc){logger['info'](_0x6ea3('0xc'),_0x1d9328,_0x6ea3('0xd'));logger[_0x6ea3('0xe')](_0x6ea3('0xf'),_0x1d9328,_0x6ea3('0xd'),JSON['stringify'](_0x3a29dc));if(_0x3a29dc['error']){if(_0x3a29dc[_0x6ea3('0x10')][_0x6ea3('0x11')]===0x1f4){logger['error'](_0x6ea3('0xc'),_0x1d9328,_0x3a29dc[_0x6ea3('0x10')][_0x6ea3('0x12')]);return _0x3544e5(_0x3a29dc[_0x6ea3('0x10')]['message']);}logger['error'](_0x6ea3('0xc'),_0x1d9328,_0x3a29dc[_0x6ea3('0x10')]['message']);return _0x3ca8f1(_0x3a29dc['error'][_0x6ea3('0x12')]);}else{logger[_0x6ea3('0x13')]('MailTransferReport,\x20%s,\x20%s',_0x1d9328,_0x6ea3('0xd'));_0x3ca8f1(_0x3a29dc[_0x6ea3('0x14')][_0x6ea3('0x12')]);}})['catch'](function(_0x35135b){logger[_0x6ea3('0x10')](_0x6ea3('0xc'),_0x1d9328,_0x35135b);_0x3544e5(_0x35135b);});});}
\ No newline at end of file
+var _0xb0b3=['then','request\x20sent','stringify','error','code','MailTransferReport,\x20%s,\x20%s','message','result','catch','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x1a725f,_0x58ef5e){var _0x3f2816=function(_0x3907d9){while(--_0x3907d9){_0x1a725f['push'](_0x1a725f['shift']());}};_0x3f2816(++_0x58ef5e);}(_0xb0b3,0x7b));var _0x3b0b=function(_0x5f4ca0,_0x48b9f0){_0x5f4ca0=_0x5f4ca0-0x0;var _0x25ced4=_0xb0b3[_0x5f4ca0];return _0x25ced4;};'use strict';var _=require('lodash');var util=require(_0x3b0b('0x0'));var moment=require('moment');var BPromise=require(_0x3b0b('0x1'));var rs=require(_0x3b0b('0x2'));var fs=require('fs');var Redis=require(_0x3b0b('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x3b0b('0x4'));var logger=require(_0x3b0b('0x5'))(_0x3b0b('0x6'));var config=require('../../config/environment');var jayson=require(_0x3b0b('0x7'));var client=jayson[_0x3b0b('0x8')][_0x3b0b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5e96a2,_0x19e3c1,_0x46e722){return new BPromise(function(_0x3eafc7,_0x1a621e){return client['request'](_0x5e96a2,_0x46e722)[_0x3b0b('0xa')](function(_0x50efd2){logger['info']('MailTransferReport,\x20%s,\x20%s',_0x19e3c1,_0x3b0b('0xb'));logger['debug']('MailTransferReport,\x20%s,\x20%s,\x20%s',_0x19e3c1,_0x3b0b('0xb'),JSON[_0x3b0b('0xc')](_0x50efd2));if(_0x50efd2[_0x3b0b('0xd')]){if(_0x50efd2[_0x3b0b('0xd')][_0x3b0b('0xe')]===0x1f4){logger['error'](_0x3b0b('0xf'),_0x19e3c1,_0x50efd2[_0x3b0b('0xd')][_0x3b0b('0x10')]);return _0x1a621e(_0x50efd2['error'][_0x3b0b('0x10')]);}logger[_0x3b0b('0xd')]('MailTransferReport,\x20%s,\x20%s',_0x19e3c1,_0x50efd2[_0x3b0b('0xd')][_0x3b0b('0x10')]);return _0x3eafc7(_0x50efd2[_0x3b0b('0xd')]['message']);}else{logger['info']('MailTransferReport,\x20%s,\x20%s',_0x19e3c1,_0x3b0b('0xb'));_0x3eafc7(_0x50efd2[_0x3b0b('0x11')][_0x3b0b('0x10')]);}})[_0x3b0b('0x12')](function(_0x1cfe27){logger[_0x3b0b('0xd')](_0x3b0b('0xf'),_0x19e3c1,_0x1cfe27);_0x1a621e(_0x1cfe27);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb17e=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe','describe','create','/:id','update','delete','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x2bd699,_0x135c09){var _0x1fbe61=function(_0x1456d0){while(--_0x1456d0){_0x2bd699['push'](_0x2bd699['shift']());}};_0x1fbe61(++_0x135c09);}(_0xb17e,0x163));var _0xeb17=function(_0x2e96d1,_0x3eaa33){_0x2e96d1=_0x2e96d1-0x0;var _0x11d766=_0xb17e[_0x2e96d1];return _0x11d766;};'use strict';var multer=require(_0xeb17('0x0'));var util=require(_0xeb17('0x1'));var path=require(_0xeb17('0x2'));var timeout=require(_0xeb17('0x3'));var express=require(_0xeb17('0x4'));var router=express[_0xeb17('0x5')]();var fs_extra=require(_0xeb17('0x6'));var auth=require(_0xeb17('0x7'));var interaction=require(_0xeb17('0x8'));var config=require(_0xeb17('0x9'));var controller=require('./memberReport.controller');router[_0xeb17('0xa')]('/',auth[_0xeb17('0xb')](),controller['index']);router[_0xeb17('0xa')](_0xeb17('0xc'),auth[_0xeb17('0xb')](),controller[_0xeb17('0xd')]);router[_0xeb17('0xa')]('/:id',auth['isAuthenticated'](),controller['show']);router['post']('/',auth[_0xeb17('0xb')](),controller[_0xeb17('0xe')]);router['put'](_0xeb17('0xf'),auth[_0xeb17('0xb')](),controller[_0xeb17('0x10')]);router[_0xeb17('0x11')](_0xeb17('0xf'),auth[_0xeb17('0xb')](),controller['destroy']);module[_0xeb17('0x12')]=router;
\ No newline at end of file
+var _0x063d=['../../config/environment','./memberReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/interaction/service'];(function(_0x18c47f,_0x56fef2){var _0x3671b1=function(_0x3c0644){while(--_0x3c0644){_0x18c47f['push'](_0x18c47f['shift']());}};_0x3671b1(++_0x56fef2);}(_0x063d,0xd5));var _0xd063=function(_0x5d49c8,_0x48fb7a){_0x5d49c8=_0x5d49c8-0x0;var _0x5d3e0a=_0x063d[_0x5d49c8];return _0x5d3e0a;};'use strict';var multer=require(_0xd063('0x0'));var util=require(_0xd063('0x1'));var path=require(_0xd063('0x2'));var timeout=require(_0xd063('0x3'));var express=require(_0xd063('0x4'));var router=express[_0xd063('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xd063('0x6'));var config=require(_0xd063('0x7'));var controller=require(_0xd063('0x8'));router[_0xd063('0x9')]('/',auth[_0xd063('0xa')](),controller[_0xd063('0xb')]);router[_0xd063('0x9')](_0xd063('0xc'),auth[_0xd063('0xa')](),controller[_0xd063('0xd')]);router[_0xd063('0x9')](_0xd063('0xe'),auth[_0xd063('0xa')](),controller[_0xd063('0xf')]);router[_0xd063('0x10')]('/',auth[_0xd063('0xa')](),controller['create']);router[_0xd063('0x11')](_0xd063('0xe'),auth[_0xd063('0xa')](),controller[_0xd063('0x12')]);router[_0xd063('0x13')]('/:id',auth['isAuthenticated'](),controller[_0xd063('0x14')]);module[_0xd063('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf93=['talk:[queue]','sequelize','moment','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','getDataValue','setDataValue','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[destination]','talk:[dial\x20string]'];(function(_0x569cb9,_0x31078d){var _0x14c031=function(_0x1fc9d7){while(--_0x1fc9d7){_0x569cb9['push'](_0x569cb9['shift']());}};_0x14c031(++_0x31078d);}(_0xaf93,0x151));var _0x3af9=function(_0x114fcc,_0x29aca6){_0x114fcc=_0x114fcc-0x0;var _0x4e0556=_0xaf93[_0x114fcc];return _0x4e0556;};'use strict';var Sequelize=require(_0x3af9('0x0'));var moment=require(_0x3af9('0x1'));module['exports']={'channel':{'type':Sequelize['STRING']},'membername':{'type':Sequelize[_0x3af9('0x2')]},'interface':{'type':Sequelize[_0x3af9('0x2')]},'type':{'type':Sequelize['STRING'],'defaultValue':_0x3af9('0x3'),'comment':_0x3af9('0x4')},'duration':{'type':Sequelize[_0x3af9('0x5')]},'enterAt':{'type':Sequelize[_0x3af9('0x6')]},'exitAt':{'type':Sequelize[_0x3af9('0x6')],'set':function(_0x1ad446){var _0x333abb=moment(_0x1ad446);var _0x535583=moment(this[_0x3af9('0x7')]('enterAt'));var _0x133672=_0x333abb['diff'](_0x535583,'seconds');this[_0x3af9('0x8')]('exitAt',_0x1ad446);this['setDataValue'](_0x3af9('0x9'),_0x133672||null);}},'data1':{'type':Sequelize[_0x3af9('0x2')],'comment':_0x3af9('0xa')},'data2':{'type':Sequelize[_0x3af9('0x2')],'comment':'talk:[start]'},'data3':{'type':Sequelize[_0x3af9('0x2')],'comment':_0x3af9('0xb')},'data4':{'type':Sequelize[_0x3af9('0x2')],'comment':_0x3af9('0xc')},'data5':{'type':Sequelize[_0x3af9('0x2')],'comment':_0x3af9('0xd')},'role':{'type':Sequelize[_0x3af9('0x2')]},'internal':{'type':Sequelize[_0x3af9('0x5')]},'uniqueid':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x79d8=['seconds','setDataValue','exitAt','duration','talk:[start]','talk:[dial\x20string]','talk:[queue]','sequelize','moment','exports','STRING','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','getDataValue','diff'];(function(_0x379449,_0x3247b1){var _0xd168f7=function(_0x244310){while(--_0x244310){_0x379449['push'](_0x379449['shift']());}};_0xd168f7(++_0x3247b1);}(_0x79d8,0x67));var _0x879d=function(_0x29ce3e,_0x17c35a){_0x29ce3e=_0x29ce3e-0x0;var _0x2fadcc=_0x79d8[_0x29ce3e];return _0x2fadcc;};'use strict';var Sequelize=require(_0x879d('0x0'));var moment=require(_0x879d('0x1'));module[_0x879d('0x2')]={'channel':{'type':Sequelize[_0x879d('0x3')]},'membername':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0x879d('0x3')]},'type':{'type':Sequelize[_0x879d('0x3')],'defaultValue':'DEFAULT\x20PAUSE','comment':_0x879d('0x4')},'duration':{'type':Sequelize[_0x879d('0x5')]},'enterAt':{'type':Sequelize[_0x879d('0x6')]},'exitAt':{'type':Sequelize['DATE'],'set':function(_0x2d578e){var _0x46ed21=moment(_0x2d578e);var _0x142181=moment(this[_0x879d('0x7')]('enterAt'));var _0x257050=_0x46ed21[_0x879d('0x8')](_0x142181,_0x879d('0x9'));this[_0x879d('0xa')](_0x879d('0xb'),_0x2d578e);this['setDataValue'](_0x879d('0xc'),_0x257050||null);}},'data1':{'type':Sequelize['STRING'],'comment':'talk:[inbound,\x20outbound],\x20pause:[reason]'},'data2':{'type':Sequelize[_0x879d('0x3')],'comment':_0x879d('0xd')},'data3':{'type':Sequelize[_0x879d('0x3')],'comment':'talk:[destination]'},'data4':{'type':Sequelize[_0x879d('0x3')],'comment':_0x879d('0xe')},'data5':{'type':Sequelize['STRING'],'comment':_0x879d('0xf')},'role':{'type':Sequelize[_0x879d('0x3')]},'internal':{'type':Sequelize['INTEGER']},'uniqueid':{'type':Sequelize[_0x879d('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','name','send','index','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','MemberReport','findAll','rows','show','rawAttributes','includeAll','include','find','create','catch','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache'];(function(_0x217372,_0x1822ce){var _0x2715a1=function(_0x5712db){while(--_0x5712db){_0x217372['push'](_0x217372['shift']());}};_0x2715a1(++_0x1822ce);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));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 authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];function respondWithStatusCode(_0x19a27e,_0x385f00){_0x385f00=_0x385f00||0xcc;return function(_0x281576){if(_0x281576){return _0x19a27e[_0x7995('0x1b')](_0x385f00);}return _0x19a27e[_0x7995('0x1c')](_0x385f00)['end']();};}function respondWithResult(_0x58f5ad,_0x2b4e94){_0x2b4e94=_0x2b4e94||0xc8;return function(_0x2233dd){if(_0x2233dd){return _0x58f5ad[_0x7995('0x1c')](_0x2b4e94)[_0x7995('0x1d')](_0x2233dd);}};}function respondWithFilteredResult(_0x3f1d3e,_0x1a5310){return function(_0x2202ce){if(_0x2202ce){var _0x41cbf0=typeof _0x1a5310['offset']===_0x7995('0x1e')&&typeof _0x1a5310['limit']===_0x7995('0x1e');var _0x37f297=_0x2202ce[_0x7995('0x1f')];var _0x291317=_0x41cbf0?0x0:_0x1a5310[_0x7995('0x20')];var _0x37a7d4=_0x41cbf0?_0x2202ce['count']:_0x1a5310['offset']+_0x1a5310[_0x7995('0x21')];var _0x5e6f90;if(_0x37a7d4>=_0x37f297){_0x37a7d4=_0x37f297;_0x5e6f90=0xc8;}else{_0x5e6f90=0xce;}_0x3f1d3e['status'](_0x5e6f90);return _0x3f1d3e[_0x7995('0x22')](_0x7995('0x23'),_0x291317+'-'+_0x37a7d4+'/'+_0x37f297)['json'](_0x2202ce);}return null;};}function patchUpdates(_0x3a9b54){return function(_0x51f276){try{jsonpatch['apply'](_0x51f276,_0x3a9b54,!![]);}catch(_0x3e4c54){return BPromise[_0x7995('0x24')](_0x3e4c54);}return _0x51f276[_0x7995('0x25')]();};}function saveUpdates(_0x1a8568,_0x460924){return function(_0x1c278a){if(_0x1c278a){return _0x1c278a['update'](_0x1a8568)[_0x7995('0x26')](function(_0x46ee4b){return _0x46ee4b;});}return null;};}function removeEntity(_0x204507,_0x285437){return function(_0x563799){if(_0x563799){return _0x563799[_0x7995('0x27')]()[_0x7995('0x26')](function(){_0x204507[_0x7995('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x39df42,_0x34e70c){return function(_0x401dc3){if(!_0x401dc3){_0x39df42[_0x7995('0x1b')](0x194);}return _0x401dc3;};}function handleError(_0x3a3fcf,_0x2a307e){_0x2a307e=_0x2a307e||0x1f4;return function(_0x56691a){logger[_0x7995('0x28')](_0x56691a['stack']);if(_0x56691a[_0x7995('0x29')]){delete _0x56691a[_0x7995('0x29')];}_0x3a3fcf[_0x7995('0x1c')](_0x2a307e)[_0x7995('0x2a')](_0x56691a);};}exports[_0x7995('0x2b')]=function(_0x4b6f99,_0x9b2a15){var _0x514445={},_0x456a28={},_0x3250e0={'count':0x0,'rows':[]};var _0x4253e5=_['map'](db['MemberReport']['rawAttributes'],function(_0x3573be){return{'name':_0x3573be[_0x7995('0x2c')],'type':_0x3573be[_0x7995('0x2d')][_0x7995('0x2e')]};});_0x456a28[_0x7995('0x2f')]=_[_0x7995('0x30')](_0x4253e5,'name');_0x456a28['query']=_[_0x7995('0x31')](_0x4b6f99['query']);_0x456a28[_0x7995('0x32')]=_[_0x7995('0x33')](_0x456a28[_0x7995('0x2f')],_0x456a28[_0x7995('0x34')]);_0x514445[_0x7995('0x35')]=_['intersection'](_0x456a28[_0x7995('0x2f')],qs[_0x7995('0x36')](_0x4b6f99['query']['fields']));_0x514445['attributes']=_0x514445[_0x7995('0x35')][_0x7995('0x37')]?_0x514445['attributes']:_0x456a28[_0x7995('0x2f')];if(!_0x4b6f99['query'][_0x7995('0x38')](_0x7995('0x39'))){_0x514445[_0x7995('0x21')]=qs['limit'](_0x4b6f99['query'][_0x7995('0x21')]);_0x514445['offset']=qs['offset'](_0x4b6f99[_0x7995('0x34')][_0x7995('0x20')]);}_0x514445['order']=qs[_0x7995('0x3a')](_0x4b6f99[_0x7995('0x34')][_0x7995('0x3a')]);_0x514445[_0x7995('0x3b')]=qs[_0x7995('0x32')](_['pick'](_0x4b6f99[_0x7995('0x34')],_0x456a28[_0x7995('0x32')]),_0x4253e5);if(_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]){_0x514445['where']=_[_0x7995('0x3d')](_0x514445[_0x7995('0x3b')],{'$or':_[_0x7995('0x30')](_0x4253e5,function(_0xe5ea43){if(_0xe5ea43[_0x7995('0x2d')]!==_0x7995('0x3e')){var _0x5688a1={};_0x5688a1[_0xe5ea43[_0x7995('0x29')]]={'$like':'%'+_0x4b6f99[_0x7995('0x34')][_0x7995('0x3c')]+'%'};return _0x5688a1;}})});}_0x514445=_[_0x7995('0x3d')]({},_0x514445,_0x4b6f99[_0x7995('0x3f')]);var _0x298fc2={'where':_0x514445[_0x7995('0x3b')]};return db[_0x7995('0x40')][_0x7995('0x1f')](_0x298fc2)[_0x7995('0x26')](function(_0x6fe77b){_0x3250e0[_0x7995('0x1f')]=_0x6fe77b;if(_0x4b6f99[_0x7995('0x34')]['includeAll']){_0x514445['include']=[{'all':!![]}];}return db[_0x7995('0x40')][_0x7995('0x41')](_0x514445);})['then'](function(_0x4b0855){_0x3250e0[_0x7995('0x42')]=_0x4b0855;return _0x3250e0;})['then'](respondWithFilteredResult(_0x9b2a15,_0x514445))['catch'](handleError(_0x9b2a15,null));};exports[_0x7995('0x43')]=function(_0x36e28b,_0x35c8ff){var _0x576b96={'raw':!![],'where':{'id':_0x36e28b['params']['id']}},_0x46ac4f={};_0x46ac4f[_0x7995('0x2f')]=_['keys'](db['MemberReport'][_0x7995('0x44')]);_0x46ac4f[_0x7995('0x34')]=_[_0x7995('0x31')](_0x36e28b[_0x7995('0x34')]);_0x46ac4f['filters']=_[_0x7995('0x33')](_0x46ac4f[_0x7995('0x2f')],_0x46ac4f[_0x7995('0x34')]);_0x576b96[_0x7995('0x35')]=_['intersection'](_0x46ac4f['model'],qs[_0x7995('0x36')](_0x36e28b['query'][_0x7995('0x36')]));_0x576b96['attributes']=_0x576b96[_0x7995('0x35')]['length']?_0x576b96[_0x7995('0x35')]:_0x46ac4f[_0x7995('0x2f')];if(_0x36e28b['query'][_0x7995('0x45')]){_0x576b96[_0x7995('0x46')]=[{'all':!![]}];}_0x576b96=_[_0x7995('0x3d')]({},_0x576b96,_0x36e28b[_0x7995('0x3f')]);return db['MemberReport'][_0x7995('0x47')](_0x576b96)[_0x7995('0x26')](handleEntityNotFound(_0x35c8ff,null))[_0x7995('0x26')](respondWithResult(_0x35c8ff,null))['catch'](handleError(_0x35c8ff,null));};exports[_0x7995('0x48')]=function(_0x44f516,_0x511567){return db[_0x7995('0x40')][_0x7995('0x48')](_0x44f516['body'],{})[_0x7995('0x26')](respondWithResult(_0x511567,0xc9))[_0x7995('0x49')](handleError(_0x511567,null));};exports['update']=function(_0x3d1dbb,_0x5843ba){if(_0x3d1dbb[_0x7995('0x4a')]['id']){delete _0x3d1dbb[_0x7995('0x4a')]['id'];}return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x3d1dbb[_0x7995('0x4b')]['id']}})[_0x7995('0x26')](handleEntityNotFound(_0x5843ba,null))[_0x7995('0x26')](saveUpdates(_0x3d1dbb['body'],null))[_0x7995('0x26')](respondWithResult(_0x5843ba,null))[_0x7995('0x49')](handleError(_0x5843ba,null));};exports[_0x7995('0x27')]=function(_0x4ffc8a,_0x19da63){return db[_0x7995('0x40')][_0x7995('0x47')]({'where':{'id':_0x4ffc8a['params']['id']}})['then'](handleEntityNotFound(_0x19da63,null))['then'](removeEntity(_0x19da63,null))[_0x7995('0x49')](handleError(_0x19da63,null));};exports[_0x7995('0x4c')]=function(_0x4cf5db,_0x1cd85){return db[_0x7995('0x40')][_0x7995('0x4c')]()[_0x7995('0x26')](respondWithResult(_0x1cd85,null))[_0x7995('0x49')](handleError(_0x1cd85,null));};
\ No newline at end of file
+var _0x3e74=['show','params','options','find','catch','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','json','undefined','limit','offset','count','status','set','Content-Range','apply','save','update','then','destroy','sendStatus','name','send','index','map','MemberReport','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows'];(function(_0x439bcd,_0x2db4fd){var _0x1afad4=function(_0xac338){while(--_0xac338){_0x439bcd['push'](_0x439bcd['shift']());}};_0x1afad4(++_0x2db4fd);}(_0x3e74,0x175));var _0x43e7=function(_0x3db7f3,_0x4ae466){_0x3db7f3=_0x3db7f3-0x0;var _0x320418=_0x3e74[_0x3db7f3];return _0x320418;};'use strict';var emlformat=require(_0x43e7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x43e7('0x1'));var jsonpatch=require(_0x43e7('0x2'));var rp=require(_0x43e7('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x43e7('0x4'));var util=require('util');var path=require(_0x43e7('0x5'));var sox=require(_0x43e7('0x6'));var csv=require(_0x43e7('0x7'));var ejs=require(_0x43e7('0x8'));var fs=require('fs');var fs_extra=require(_0x43e7('0x9'));var _=require('lodash');var squel=require(_0x43e7('0xa'));var crypto=require(_0x43e7('0xb'));var jsforce=require(_0x43e7('0xc'));var deskjs=require(_0x43e7('0xd'));var toCsv=require(_0x43e7('0x7'));var querystring=require('querystring');var Papa=require(_0x43e7('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x43e7('0xf'));var as=require(_0x43e7('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x43e7('0x11'))('api');var utils=require(_0x43e7('0x12'));var config=require(_0x43e7('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x43e7('0x14'))['db'];function respondWithStatusCode(_0xc960ea,_0x2718d3){_0x2718d3=_0x2718d3||0xcc;return function(_0x3bb83f){if(_0x3bb83f){return _0xc960ea['sendStatus'](_0x2718d3);}return _0xc960ea['status'](_0x2718d3)[_0x43e7('0x15')]();};}function respondWithResult(_0x21fdd3,_0x44b0bd){_0x44b0bd=_0x44b0bd||0xc8;return function(_0x51b974){if(_0x51b974){return _0x21fdd3['status'](_0x44b0bd)[_0x43e7('0x16')](_0x51b974);}};}function respondWithFilteredResult(_0x14c146,_0x203378){return function(_0x328445){if(_0x328445){var _0x4de324=typeof _0x203378['offset']===_0x43e7('0x17')&&typeof _0x203378[_0x43e7('0x18')]===_0x43e7('0x17');var _0x5d346f=_0x328445['count'];var _0x446986=_0x4de324?0x0:_0x203378[_0x43e7('0x19')];var _0x9037d3=_0x4de324?_0x328445[_0x43e7('0x1a')]:_0x203378[_0x43e7('0x19')]+_0x203378[_0x43e7('0x18')];var _0x619236;if(_0x9037d3>=_0x5d346f){_0x9037d3=_0x5d346f;_0x619236=0xc8;}else{_0x619236=0xce;}_0x14c146[_0x43e7('0x1b')](_0x619236);return _0x14c146[_0x43e7('0x1c')](_0x43e7('0x1d'),_0x446986+'-'+_0x9037d3+'/'+_0x5d346f)[_0x43e7('0x16')](_0x328445);}return null;};}function patchUpdates(_0x177ee1){return function(_0x4b5d64){try{jsonpatch[_0x43e7('0x1e')](_0x4b5d64,_0x177ee1,!![]);}catch(_0x3c6625){return BPromise['reject'](_0x3c6625);}return _0x4b5d64[_0x43e7('0x1f')]();};}function saveUpdates(_0x3e281e,_0x3945bb){return function(_0x28aacc){if(_0x28aacc){return _0x28aacc[_0x43e7('0x20')](_0x3e281e)[_0x43e7('0x21')](function(_0x54a9e7){return _0x54a9e7;});}return null;};}function removeEntity(_0x454359,_0x4eea52){return function(_0x4c9df3){if(_0x4c9df3){return _0x4c9df3[_0x43e7('0x22')]()[_0x43e7('0x21')](function(){_0x454359['status'](0xcc)[_0x43e7('0x15')]();});}};}function handleEntityNotFound(_0x4ca5cf,_0x326dab){return function(_0x5c5e67){if(!_0x5c5e67){_0x4ca5cf[_0x43e7('0x23')](0x194);}return _0x5c5e67;};}function handleError(_0x1b5f50,_0x20888b){_0x20888b=_0x20888b||0x1f4;return function(_0x405f85){logger['error'](_0x405f85['stack']);if(_0x405f85[_0x43e7('0x24')]){delete _0x405f85['name'];}_0x1b5f50[_0x43e7('0x1b')](_0x20888b)[_0x43e7('0x25')](_0x405f85);};}exports[_0x43e7('0x26')]=function(_0xb1fc63,_0x5087d7){var _0x33a1a5={},_0x4690a6={},_0x45b675={'count':0x0,'rows':[]};var _0x50f9f5=_[_0x43e7('0x27')](db[_0x43e7('0x28')][_0x43e7('0x29')],function(_0x31b2a6){return{'name':_0x31b2a6[_0x43e7('0x2a')],'type':_0x31b2a6[_0x43e7('0x2b')][_0x43e7('0x2c')]};});_0x4690a6[_0x43e7('0x2d')]=_[_0x43e7('0x27')](_0x50f9f5,_0x43e7('0x24'));_0x4690a6['query']=_[_0x43e7('0x2e')](_0xb1fc63[_0x43e7('0x2f')]);_0x4690a6[_0x43e7('0x30')]=_[_0x43e7('0x31')](_0x4690a6[_0x43e7('0x2d')],_0x4690a6['query']);_0x33a1a5[_0x43e7('0x32')]=_[_0x43e7('0x31')](_0x4690a6[_0x43e7('0x2d')],qs[_0x43e7('0x33')](_0xb1fc63['query']['fields']));_0x33a1a5['attributes']=_0x33a1a5[_0x43e7('0x32')][_0x43e7('0x34')]?_0x33a1a5[_0x43e7('0x32')]:_0x4690a6[_0x43e7('0x2d')];if(!_0xb1fc63[_0x43e7('0x2f')][_0x43e7('0x35')]('nolimit')){_0x33a1a5['limit']=qs['limit'](_0xb1fc63['query']['limit']);_0x33a1a5['offset']=qs['offset'](_0xb1fc63[_0x43e7('0x2f')]['offset']);}_0x33a1a5[_0x43e7('0x36')]=qs[_0x43e7('0x37')](_0xb1fc63[_0x43e7('0x2f')][_0x43e7('0x37')]);_0x33a1a5[_0x43e7('0x38')]=qs[_0x43e7('0x30')](_[_0x43e7('0x39')](_0xb1fc63['query'],_0x4690a6['filters']),_0x50f9f5);if(_0xb1fc63['query'][_0x43e7('0x3a')]){_0x33a1a5[_0x43e7('0x38')]=_[_0x43e7('0x3b')](_0x33a1a5[_0x43e7('0x38')],{'$or':_[_0x43e7('0x27')](_0x50f9f5,function(_0x1ed538){if(_0x1ed538[_0x43e7('0x2b')]!==_0x43e7('0x3c')){var _0x55c798={};_0x55c798[_0x1ed538[_0x43e7('0x24')]]={'$like':'%'+_0xb1fc63[_0x43e7('0x2f')]['filter']+'%'};return _0x55c798;}})});}_0x33a1a5=_[_0x43e7('0x3b')]({},_0x33a1a5,_0xb1fc63['options']);var _0x44d8e4={'where':_0x33a1a5[_0x43e7('0x38')]};return db[_0x43e7('0x28')][_0x43e7('0x1a')](_0x44d8e4)[_0x43e7('0x21')](function(_0x234d8f){_0x45b675['count']=_0x234d8f;if(_0xb1fc63['query'][_0x43e7('0x3d')]){_0x33a1a5[_0x43e7('0x3e')]=[{'all':!![]}];}return db[_0x43e7('0x28')][_0x43e7('0x3f')](_0x33a1a5);})[_0x43e7('0x21')](function(_0x4a4a85){_0x45b675[_0x43e7('0x40')]=_0x4a4a85;return _0x45b675;})[_0x43e7('0x21')](respondWithFilteredResult(_0x5087d7,_0x33a1a5))['catch'](handleError(_0x5087d7,null));};exports[_0x43e7('0x41')]=function(_0x51a69c,_0x2ad8ef){var _0x504101={'raw':!![],'where':{'id':_0x51a69c[_0x43e7('0x42')]['id']}},_0x3d81ae={};_0x3d81ae[_0x43e7('0x2d')]=_[_0x43e7('0x2e')](db['MemberReport']['rawAttributes']);_0x3d81ae[_0x43e7('0x2f')]=_[_0x43e7('0x2e')](_0x51a69c[_0x43e7('0x2f')]);_0x3d81ae[_0x43e7('0x30')]=_['intersection'](_0x3d81ae['model'],_0x3d81ae['query']);_0x504101[_0x43e7('0x32')]=_['intersection'](_0x3d81ae[_0x43e7('0x2d')],qs['fields'](_0x51a69c['query'][_0x43e7('0x33')]));_0x504101['attributes']=_0x504101[_0x43e7('0x32')][_0x43e7('0x34')]?_0x504101[_0x43e7('0x32')]:_0x3d81ae[_0x43e7('0x2d')];if(_0x51a69c['query'][_0x43e7('0x3d')]){_0x504101[_0x43e7('0x3e')]=[{'all':!![]}];}_0x504101=_[_0x43e7('0x3b')]({},_0x504101,_0x51a69c[_0x43e7('0x43')]);return db[_0x43e7('0x28')][_0x43e7('0x44')](_0x504101)['then'](handleEntityNotFound(_0x2ad8ef,null))['then'](respondWithResult(_0x2ad8ef,null))[_0x43e7('0x45')](handleError(_0x2ad8ef,null));};exports[_0x43e7('0x46')]=function(_0x212841,_0x4c00a8){return db['MemberReport']['create'](_0x212841[_0x43e7('0x47')],{})[_0x43e7('0x21')](respondWithResult(_0x4c00a8,0xc9))['catch'](handleError(_0x4c00a8,null));};exports[_0x43e7('0x20')]=function(_0x47686e,_0x3c96fe){if(_0x47686e['body']['id']){delete _0x47686e['body']['id'];}return db['MemberReport']['find']({'where':{'id':_0x47686e[_0x43e7('0x42')]['id']}})[_0x43e7('0x21')](handleEntityNotFound(_0x3c96fe,null))['then'](saveUpdates(_0x47686e[_0x43e7('0x47')],null))[_0x43e7('0x21')](respondWithResult(_0x3c96fe,null))[_0x43e7('0x45')](handleError(_0x3c96fe,null));};exports[_0x43e7('0x22')]=function(_0x4a0ce5,_0x2718d5){return db['MemberReport']['find']({'where':{'id':_0x4a0ce5[_0x43e7('0x42')]['id']}})[_0x43e7('0x21')](handleEntityNotFound(_0x2718d5,null))[_0x43e7('0x21')](removeEntity(_0x2718d5,null))[_0x43e7('0x45')](handleError(_0x2718d5,null));};exports[_0x43e7('0x48')]=function(_0x2351cf,_0x1cd87c){return db[_0x43e7('0x28')][_0x43e7('0x48')]()[_0x43e7('0x21')](respondWithResult(_0x1cd87c,null))['catch'](handleError(_0x1cd87c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3e4=['lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./memberReport.attributes','define','MemberReport','report_member','membername_interface','membername','interface'];(function(_0x19bc2d,_0x2487f2){var _0x79adac=function(_0x3a29bc){while(--_0x3a29bc){_0x19bc2d['push'](_0x19bc2d['shift']());}};_0x79adac(++_0x2487f2);}(_0xe3e4,0xc3));var _0x4e3e=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe3e4[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x4e3e('0x0'));var util=require(_0x4e3e('0x1'));var logger=require(_0x4e3e('0x2'))('api');var moment=require(_0x4e3e('0x3'));var BPromise=require(_0x4e3e('0x4'));var rp=require(_0x4e3e('0x5'));var fs=require('fs');var path=require(_0x4e3e('0x6'));var rimraf=require(_0x4e3e('0x7'));var config=require('../../config/environment');var attributes=require(_0x4e3e('0x8'));module['exports']=function(_0x1ecf60,_0x30dba7){return _0x1ecf60[_0x4e3e('0x9')](_0x4e3e('0xa'),attributes,{'tableName':_0x4e3e('0xb'),'paranoid':![],'indexes':[{'name':_0x4e3e('0xc'),'fields':[_0x4e3e('0xd'),_0x4e3e('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xafd1=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./memberReport.attributes','exports','MemberReport','membername_interface','membername','interface'];(function(_0x28fbe3,_0x4ac6f8){var _0x45db6a=function(_0x296ecb){while(--_0x296ecb){_0x28fbe3['push'](_0x28fbe3['shift']());}};_0x45db6a(++_0x4ac6f8);}(_0xafd1,0x1c2));var _0x1afd=function(_0x28fbbf,_0x11f896){_0x28fbbf=_0x28fbbf-0x0;var _0x543af6=_0xafd1[_0x28fbbf];return _0x543af6;};'use strict';var _=require(_0x1afd('0x0'));var util=require(_0x1afd('0x1'));var logger=require(_0x1afd('0x2'))(_0x1afd('0x3'));var moment=require(_0x1afd('0x4'));var BPromise=require(_0x1afd('0x5'));var rp=require(_0x1afd('0x6'));var fs=require('fs');var path=require(_0x1afd('0x7'));var rimraf=require('rimraf');var config=require(_0x1afd('0x8'));var attributes=require(_0x1afd('0x9'));module[_0x1afd('0xa')]=function(_0x212313,_0x105f27){return _0x212313['define'](_0x1afd('0xb'),attributes,{'tableName':'report_member','paranoid':![],'indexes':[{'name':_0x1afd('0xc'),'fields':[_0x1afd('0xd'),_0x1afd('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7676=['util','moment','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','http','request','then','info','MemberReport,\x20%s,\x20%s','request\x20sent','debug','MemberReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','findAll','options','raw','where','limit','include','map','model','attributes','GetMemberReport','CreateMemberReport','MemberReport','create','body','UpdateMemberReport','update','lodash'];(function(_0x3d9bb4,_0x18ce96){var _0xe25ebb=function(_0x3408dc){while(--_0x3408dc){_0x3d9bb4['push'](_0x3d9bb4['shift']());}};_0xe25ebb(++_0x18ce96);}(_0x7676,0xb8));var _0x6767=function(_0x436a79,_0x4405a6){_0x436a79=_0x436a79-0x0;var _0x41670e=_0x7676[_0x436a79];return _0x41670e;};'use strict';var _=require(_0x6767('0x0'));var util=require(_0x6767('0x1'));var moment=require(_0x6767('0x2'));var BPromise=require('bluebird');var rs=require(_0x6767('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x6767('0x4'));var logger=require('../../config/logger')(_0x6767('0x5'));var config=require(_0x6767('0x6'));var jayson=require(_0x6767('0x7'));var client=jayson['client'][_0x6767('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3f61f5,_0x211a93,_0x54d2c7){return new BPromise(function(_0xb81431,_0x31366b){return client[_0x6767('0x9')](_0x3f61f5,_0x54d2c7)[_0x6767('0xa')](function(_0xbda9c9){logger[_0x6767('0xb')](_0x6767('0xc'),_0x211a93,_0x6767('0xd'));logger[_0x6767('0xe')](_0x6767('0xf'),_0x211a93,_0x6767('0xd'),JSON[_0x6767('0x10')](_0xbda9c9));if(_0xbda9c9['error']){if(_0xbda9c9[_0x6767('0x11')][_0x6767('0x12')]===0x1f4){logger[_0x6767('0x11')]('MemberReport,\x20%s,\x20%s',_0x211a93,_0xbda9c9['error'][_0x6767('0x13')]);return _0x31366b(_0xbda9c9[_0x6767('0x11')]['message']);}logger[_0x6767('0x11')](_0x6767('0xc'),_0x211a93,_0xbda9c9['error'][_0x6767('0x13')]);return _0xb81431(_0xbda9c9[_0x6767('0x11')][_0x6767('0x13')]);}else{logger[_0x6767('0xb')]('MemberReport,\x20%s,\x20%s',_0x211a93,_0x6767('0xd'));_0xb81431(_0xbda9c9['result'][_0x6767('0x13')]);}})[_0x6767('0x14')](function(_0x475194){logger['error'](_0x6767('0xc'),_0x211a93,_0x475194);_0x31366b(_0x475194);});});}exports['GetMemberReport']=function(_0x9ac747){var _0x54568f=this;return new Promise(function(_0x3c309f,_0x5a8872){return db['MemberReport'][_0x6767('0x15')]({'raw':_0x9ac747[_0x6767('0x16')]?_0x9ac747['options'][_0x6767('0x17')]===undefined?!![]:![]:!![],'where':_0x9ac747[_0x6767('0x16')]?_0x9ac747['options'][_0x6767('0x18')]||null:null,'attributes':_0x9ac747['options']?_0x9ac747[_0x6767('0x16')]['attributes']||null:null,'limit':_0x9ac747['options']?_0x9ac747[_0x6767('0x16')][_0x6767('0x19')]||null:null,'include':_0x9ac747[_0x6767('0x16')]?_0x9ac747['options'][_0x6767('0x1a')]?_[_0x6767('0x1b')](_0x9ac747[_0x6767('0x16')][_0x6767('0x1a')],function(_0x315b29){return{'model':db[_0x315b29[_0x6767('0x1c')]],'as':_0x315b29['as'],'attributes':_0x315b29[_0x6767('0x1d')],'include':_0x315b29[_0x6767('0x1a')]?_[_0x6767('0x1b')](_0x315b29[_0x6767('0x1a')],function(_0x2a0116){return{'model':db[_0x2a0116[_0x6767('0x1c')]],'as':_0x2a0116['as'],'attributes':_0x2a0116['attributes'],'include':_0x2a0116[_0x6767('0x1a')]?_[_0x6767('0x1b')](_0x2a0116[_0x6767('0x1a')],function(_0x58a738){return{'model':db[_0x58a738[_0x6767('0x1c')]],'as':_0x58a738['as'],'attributes':_0x58a738[_0x6767('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x101bfa){logger[_0x6767('0xb')](_0x6767('0x1e'),_0x9ac747);logger['debug'](_0x6767('0x1e'),_0x9ac747,JSON[_0x6767('0x10')](_0x101bfa));_0x3c309f(_0x101bfa);})[_0x6767('0x14')](function(_0x428d5f){logger['error'](_0x6767('0x1e'),_0x428d5f[_0x6767('0x13')],_0x9ac747);_0x5a8872(_0x54568f[_0x6767('0x11')](0x1f4,_0x428d5f['message']));});});};exports[_0x6767('0x1f')]=function(_0x19170c){var _0x4adcad=this;return new Promise(function(_0x338224,_0x591f45){return db[_0x6767('0x20')][_0x6767('0x21')](_0x19170c[_0x6767('0x22')],{'raw':_0x19170c['options']?_0x19170c[_0x6767('0x16')][_0x6767('0x17')]===undefined?!![]:![]:!![]})[_0x6767('0xa')](function(_0x2f85b4){logger[_0x6767('0xb')](_0x6767('0x1f'),_0x19170c);logger[_0x6767('0xe')](_0x6767('0x1f'),_0x19170c,JSON[_0x6767('0x10')](_0x2f85b4));_0x338224(_0x2f85b4);})['catch'](function(_0x353532){logger[_0x6767('0x11')]('CreateMemberReport',_0x353532[_0x6767('0x13')],_0x19170c);_0x591f45(_0x4adcad[_0x6767('0x11')](0x1f4,_0x353532[_0x6767('0x13')]));});});};exports[_0x6767('0x23')]=function(_0xb30e1e){var _0x47c5c6=this;return new Promise(function(_0x5abe46,_0xa93b82){return db[_0x6767('0x20')][_0x6767('0x24')](_0xb30e1e[_0x6767('0x22')],{'raw':_0xb30e1e[_0x6767('0x16')]?_0xb30e1e[_0x6767('0x16')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xb30e1e[_0x6767('0x16')]?_0xb30e1e[_0x6767('0x16')][_0x6767('0x18')]||null:null,'attributes':_0xb30e1e[_0x6767('0x16')]?_0xb30e1e[_0x6767('0x16')]['attributes']||null:null,'limit':_0xb30e1e[_0x6767('0x16')]?_0xb30e1e[_0x6767('0x16')][_0x6767('0x19')]||null:null})[_0x6767('0xa')](function(_0x125f18){logger[_0x6767('0xb')](_0x6767('0x23'),_0xb30e1e);logger[_0x6767('0xe')](_0x6767('0x23'),_0xb30e1e,JSON[_0x6767('0x10')](_0x125f18));_0x5abe46(_0x125f18);})[_0x6767('0x14')](function(_0x1796fe){logger[_0x6767('0x11')]('UpdateMemberReport',_0x1796fe['message'],_0xb30e1e);_0xa93b82(_0x47c5c6[_0x6767('0x11')](0x1f4,_0x1796fe['message']));});});};
\ No newline at end of file
+var _0x1228=['error','message','MemberReport,\x20%s,\x20%s','info','result','catch','GetMemberReport','findAll','options','where','attributes','limit','include','map','model','debug','CreateMemberReport','MemberReport','create','body','raw','update','UpdateMemberReport','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','then','MemberReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x12c66e,_0xea7b4){var _0x19481a=function(_0x5a77aa){while(--_0x5a77aa){_0x12c66e['push'](_0x12c66e['shift']());}};_0x19481a(++_0xea7b4);}(_0x1228,0x12f));var _0x8122=function(_0x3ea0b8,_0x236df3){_0x3ea0b8=_0x3ea0b8-0x0;var _0x19517c=_0x1228[_0x3ea0b8];return _0x19517c;};'use strict';var _=require(_0x8122('0x0'));var util=require('util');var moment=require(_0x8122('0x1'));var BPromise=require('bluebird');var rs=require(_0x8122('0x2'));var fs=require('fs');var Redis=require(_0x8122('0x3'));var db=require(_0x8122('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8122('0x5'))(_0x8122('0x6'));var config=require('../../config/environment');var jayson=require(_0x8122('0x7'));var client=jayson[_0x8122('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x21987a,_0x139c44,_0x517138){return new BPromise(function(_0x2cd672,_0x1c3d0f){return client['request'](_0x21987a,_0x517138)[_0x8122('0x9')](function(_0xc312b1){logger['info']('MemberReport,\x20%s,\x20%s',_0x139c44,'request\x20sent');logger['debug'](_0x8122('0xa'),_0x139c44,'request\x20sent',JSON[_0x8122('0xb')](_0xc312b1));if(_0xc312b1[_0x8122('0xc')]){if(_0xc312b1[_0x8122('0xc')]['code']===0x1f4){logger[_0x8122('0xc')]('MemberReport,\x20%s,\x20%s',_0x139c44,_0xc312b1[_0x8122('0xc')][_0x8122('0xd')]);return _0x1c3d0f(_0xc312b1[_0x8122('0xc')][_0x8122('0xd')]);}logger[_0x8122('0xc')](_0x8122('0xe'),_0x139c44,_0xc312b1[_0x8122('0xc')][_0x8122('0xd')]);return _0x2cd672(_0xc312b1[_0x8122('0xc')][_0x8122('0xd')]);}else{logger[_0x8122('0xf')](_0x8122('0xe'),_0x139c44,'request\x20sent');_0x2cd672(_0xc312b1[_0x8122('0x10')]['message']);}})[_0x8122('0x11')](function(_0x4c7460){logger[_0x8122('0xc')](_0x8122('0xe'),_0x139c44,_0x4c7460);_0x1c3d0f(_0x4c7460);});});}exports[_0x8122('0x12')]=function(_0x4bfb9e){var _0x4e932f=this;return new Promise(function(_0x4f7277,_0x5c93f6){return db['MemberReport'][_0x8122('0x13')]({'raw':_0x4bfb9e[_0x8122('0x14')]?_0x4bfb9e[_0x8122('0x14')]['raw']===undefined?!![]:![]:!![],'where':_0x4bfb9e['options']?_0x4bfb9e[_0x8122('0x14')][_0x8122('0x15')]||null:null,'attributes':_0x4bfb9e[_0x8122('0x14')]?_0x4bfb9e['options'][_0x8122('0x16')]||null:null,'limit':_0x4bfb9e[_0x8122('0x14')]?_0x4bfb9e[_0x8122('0x14')][_0x8122('0x17')]||null:null,'include':_0x4bfb9e[_0x8122('0x14')]?_0x4bfb9e[_0x8122('0x14')][_0x8122('0x18')]?_[_0x8122('0x19')](_0x4bfb9e['options'][_0x8122('0x18')],function(_0x5cfa77){return{'model':db[_0x5cfa77[_0x8122('0x1a')]],'as':_0x5cfa77['as'],'attributes':_0x5cfa77[_0x8122('0x16')],'include':_0x5cfa77[_0x8122('0x18')]?_[_0x8122('0x19')](_0x5cfa77[_0x8122('0x18')],function(_0x240a6d){return{'model':db[_0x240a6d[_0x8122('0x1a')]],'as':_0x240a6d['as'],'attributes':_0x240a6d[_0x8122('0x16')],'include':_0x240a6d[_0x8122('0x18')]?_['map'](_0x240a6d[_0x8122('0x18')],function(_0xa79602){return{'model':db[_0xa79602[_0x8122('0x1a')]],'as':_0xa79602['as'],'attributes':_0xa79602[_0x8122('0x16')]};}):[]};}):[]};}):[]:[]})[_0x8122('0x9')](function(_0x2eec0f){logger[_0x8122('0xf')](_0x8122('0x12'),_0x4bfb9e);logger[_0x8122('0x1b')](_0x8122('0x12'),_0x4bfb9e,JSON['stringify'](_0x2eec0f));_0x4f7277(_0x2eec0f);})['catch'](function(_0x2a0b63){logger[_0x8122('0xc')]('GetMemberReport',_0x2a0b63['message'],_0x4bfb9e);_0x5c93f6(_0x4e932f[_0x8122('0xc')](0x1f4,_0x2a0b63[_0x8122('0xd')]));});});};exports[_0x8122('0x1c')]=function(_0x552910){var _0x4c8339=this;return new Promise(function(_0x329c5c,_0x2e6ad6){return db[_0x8122('0x1d')][_0x8122('0x1e')](_0x552910[_0x8122('0x1f')],{'raw':_0x552910[_0x8122('0x14')]?_0x552910[_0x8122('0x14')][_0x8122('0x20')]===undefined?!![]:![]:!![]})[_0x8122('0x9')](function(_0x27252b){logger['info'](_0x8122('0x1c'),_0x552910);logger[_0x8122('0x1b')](_0x8122('0x1c'),_0x552910,JSON[_0x8122('0xb')](_0x27252b));_0x329c5c(_0x27252b);})[_0x8122('0x11')](function(_0x5aeb14){logger[_0x8122('0xc')](_0x8122('0x1c'),_0x5aeb14['message'],_0x552910);_0x2e6ad6(_0x4c8339['error'](0x1f4,_0x5aeb14[_0x8122('0xd')]));});});};exports['UpdateMemberReport']=function(_0x5362fe){var _0xf3dd36=this;return new Promise(function(_0x49e091,_0x48c9a4){return db[_0x8122('0x1d')][_0x8122('0x21')](_0x5362fe['body'],{'raw':_0x5362fe[_0x8122('0x14')]?_0x5362fe['options'][_0x8122('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5362fe['options']?_0x5362fe[_0x8122('0x14')][_0x8122('0x15')]||null:null,'attributes':_0x5362fe['options']?_0x5362fe['options']['attributes']||null:null,'limit':_0x5362fe[_0x8122('0x14')]?_0x5362fe[_0x8122('0x14')]['limit']||null:null})[_0x8122('0x9')](function(_0x37839d){logger[_0x8122('0xf')](_0x8122('0x22'),_0x5362fe);logger['debug'](_0x8122('0x22'),_0x5362fe,JSON[_0x8122('0xb')](_0x37839d));_0x49e091(_0x37839d);})[_0x8122('0x11')](function(_0x5ae637){logger[_0x8122('0xc')]('UpdateMemberReport',_0x5ae637[_0x8122('0xd')],_0x5362fe);_0x48c9a4(_0xf3dd36['error'](0x1f4,_0x5ae637[_0x8122('0xd')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1433=['get','index','exports','multer','util','connect-timeout','express','Router','fs-extra','../../config/environment','./migration.controller'];(function(_0x210718,_0x247b55){var _0x541bfc=function(_0x5dbcad){while(--_0x5dbcad){_0x210718['push'](_0x210718['shift']());}};_0x541bfc(++_0x247b55);}(_0x1433,0x121));var _0x3143=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x1433[_0x3b380d];return _0x54502b;};'use strict';var multer=require(_0x3143('0x0'));var util=require(_0x3143('0x1'));var path=require('path');var timeout=require(_0x3143('0x2'));var express=require(_0x3143('0x3'));var router=express[_0x3143('0x4')]();var fs_extra=require(_0x3143('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x3143('0x6'));var controller=require(_0x3143('0x7'));router[_0x3143('0x8')]('/',controller[_0x3143('0x9')]);module[_0x3143('0xa')]=router;
\ No newline at end of file
+var _0x9dcb=['fs-extra','../../components/auth/service','../../config/environment','./migration.controller','get','index','exports','multer','util','connect-timeout','express'];(function(_0x272e29,_0x3201ec){var _0x779cfd=function(_0x5e5c7f){while(--_0x5e5c7f){_0x272e29['push'](_0x272e29['shift']());}};_0x779cfd(++_0x3201ec);}(_0x9dcb,0x172));var _0xb9dc=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9dcb[_0x2dafbe];return _0x58a45a;};'use strict';var multer=require(_0xb9dc('0x0'));var util=require(_0xb9dc('0x1'));var path=require('path');var timeout=require(_0xb9dc('0x2'));var express=require(_0xb9dc('0x3'));var router=express['Router']();var fs_extra=require(_0xb9dc('0x4'));var auth=require(_0xb9dc('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xb9dc('0x6'));var controller=require(_0xb9dc('0x7'));router[_0xb9dc('0x8')]('/',controller[_0xb9dc('0x9')]);module[_0xb9dc('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa628=['STRING','version','sequelize','exports'];(function(_0x22b42b,_0x1de021){var _0x287a70=function(_0x4cf137){while(--_0x4cf137){_0x22b42b['push'](_0x22b42b['shift']());}};_0x287a70(++_0x1de021);}(_0xa628,0xfa));var _0x8a62=function(_0x281e5e,_0xf320e2){_0x281e5e=_0x281e5e-0x0;var _0x5a22d2=_0xa628[_0x281e5e];return _0x5a22d2;};'use strict';var Sequelize=require(_0x8a62('0x0'));module[_0x8a62('0x1')]={'version':{'type':Sequelize[_0x8a62('0x2')],'unique':_0x8a62('0x3')}};
\ No newline at end of file
+var _0x726b=['sequelize','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x726b,0x111));var _0xb726=function(_0x563620,_0x243044){_0x563620=_0x563620-0x0;var _0x35c6d7=_0x726b[_0x563620];return _0x35c6d7;};'use strict';var Sequelize=require(_0xb726('0x0'));module[_0xb726('0x1')]={'version':{'type':Sequelize[_0xb726('0x2')],'unique':'version'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e10=['pick','filter','merge','options','Migration','includeAll','include','findAll','rows','catch','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','destroy','error','name','send','index','map','fieldName','type','key','model','keys','filters','query','attributes','fields','length','nolimit','order','sort','where'];(function(_0x35af23,_0x9190f6){var _0x340506=function(_0xd4c26b){while(--_0xd4c26b){_0x35af23['push'](_0x35af23['shift']());}};_0x340506(++_0x9190f6);}(_0x7e10,0x1ed));var _0x07e1=function(_0x31c147,_0x373319){_0x31c147=_0x31c147-0x0;var _0x2bfdfe=_0x7e10[_0x31c147];return _0x2bfdfe;};'use strict';var emlformat=require(_0x07e1('0x0'));var rimraf=require(_0x07e1('0x1'));var zipdir=require(_0x07e1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x07e1('0x3'));var moment=require(_0x07e1('0x4'));var BPromise=require(_0x07e1('0x5'));var Mustache=require(_0x07e1('0x6'));var util=require(_0x07e1('0x7'));var path=require(_0x07e1('0x8'));var sox=require(_0x07e1('0x9'));var csv=require(_0x07e1('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x07e1('0xb'));var _=require(_0x07e1('0xc'));var squel=require(_0x07e1('0xd'));var crypto=require(_0x07e1('0xe'));var jsforce=require(_0x07e1('0xf'));var deskjs=require(_0x07e1('0x10'));var toCsv=require(_0x07e1('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x07e1('0x11'));var authService=require(_0x07e1('0x12'));var qs=require(_0x07e1('0x13'));var as=require(_0x07e1('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x07e1('0x15'))(_0x07e1('0x16'));var utils=require(_0x07e1('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x07e1('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x488976,_0x397689){_0x397689=_0x397689||0xcc;return function(_0x206ea5){if(_0x206ea5){return _0x488976[_0x07e1('0x19')](_0x397689);}return _0x488976['status'](_0x397689)[_0x07e1('0x1a')]();};}function respondWithResult(_0x598944,_0x411e6b){_0x411e6b=_0x411e6b||0xc8;return function(_0x190577){if(_0x190577){return _0x598944[_0x07e1('0x1b')](_0x411e6b)[_0x07e1('0x1c')](_0x190577);}};}function respondWithFilteredResult(_0x2d400a,_0x4f3844){return function(_0x74c50e){if(_0x74c50e){var _0x51773f=typeof _0x4f3844[_0x07e1('0x1d')]===_0x07e1('0x1e')&&typeof _0x4f3844['limit']==='undefined';var _0x22dadb=_0x74c50e[_0x07e1('0x1f')];var _0x3a7415=_0x51773f?0x0:_0x4f3844[_0x07e1('0x1d')];var _0x47533f=_0x51773f?_0x74c50e[_0x07e1('0x1f')]:_0x4f3844[_0x07e1('0x1d')]+_0x4f3844[_0x07e1('0x20')];var _0x28dd33;if(_0x47533f>=_0x22dadb){_0x47533f=_0x22dadb;_0x28dd33=0xc8;}else{_0x28dd33=0xce;}_0x2d400a['status'](_0x28dd33);return _0x2d400a[_0x07e1('0x21')](_0x07e1('0x22'),_0x3a7415+'-'+_0x47533f+'/'+_0x22dadb)[_0x07e1('0x1c')](_0x74c50e);}return null;};}function patchUpdates(_0x3c6a79){return function(_0x2c4185){try{jsonpatch[_0x07e1('0x23')](_0x2c4185,_0x3c6a79,!![]);}catch(_0x2c164b){return BPromise[_0x07e1('0x24')](_0x2c164b);}return _0x2c4185['save']();};}function saveUpdates(_0x549908,_0x2f65ff){return function(_0xb4dda1){if(_0xb4dda1){return _0xb4dda1[_0x07e1('0x25')](_0x549908)[_0x07e1('0x26')](function(_0x43e353){return _0x43e353;});}return null;};}function removeEntity(_0x5b3412,_0x55ab6f){return function(_0x438541){if(_0x438541){return _0x438541[_0x07e1('0x27')]()[_0x07e1('0x26')](function(){_0x5b3412[_0x07e1('0x1b')](0xcc)[_0x07e1('0x1a')]();});}};}function handleEntityNotFound(_0x874237,_0x1d57a0){return function(_0x548197){if(!_0x548197){_0x874237[_0x07e1('0x19')](0x194);}return _0x548197;};}function handleError(_0x155471,_0xa44a97){_0xa44a97=_0xa44a97||0x1f4;return function(_0x2ae867){logger[_0x07e1('0x28')](_0x2ae867['stack']);if(_0x2ae867[_0x07e1('0x29')]){delete _0x2ae867[_0x07e1('0x29')];}_0x155471['status'](_0xa44a97)[_0x07e1('0x2a')](_0x2ae867);};}exports[_0x07e1('0x2b')]=function(_0x2ee870,_0x126aea){var _0xb89f85={},_0x3ddb50={},_0x1740eb={'count':0x0,'rows':[]};var _0x123d61=_[_0x07e1('0x2c')](db['Migration']['rawAttributes'],function(_0x30bbbe){return{'name':_0x30bbbe[_0x07e1('0x2d')],'type':_0x30bbbe[_0x07e1('0x2e')][_0x07e1('0x2f')]};});_0x3ddb50[_0x07e1('0x30')]=_[_0x07e1('0x2c')](_0x123d61,'name');_0x3ddb50['query']=_[_0x07e1('0x31')](_0x2ee870['query']);_0x3ddb50[_0x07e1('0x32')]=_['intersection'](_0x3ddb50[_0x07e1('0x30')],_0x3ddb50[_0x07e1('0x33')]);_0xb89f85[_0x07e1('0x34')]=_['intersection'](_0x3ddb50['model'],qs['fields'](_0x2ee870[_0x07e1('0x33')][_0x07e1('0x35')]));_0xb89f85['attributes']=_0xb89f85['attributes'][_0x07e1('0x36')]?_0xb89f85[_0x07e1('0x34')]:_0x3ddb50[_0x07e1('0x30')];if(!_0x2ee870[_0x07e1('0x33')]['hasOwnProperty'](_0x07e1('0x37'))){_0xb89f85[_0x07e1('0x20')]=qs[_0x07e1('0x20')](_0x2ee870['query']['limit']);_0xb89f85[_0x07e1('0x1d')]=qs[_0x07e1('0x1d')](_0x2ee870['query'][_0x07e1('0x1d')]);}_0xb89f85[_0x07e1('0x38')]=qs[_0x07e1('0x39')](_0x2ee870['query'][_0x07e1('0x39')]);_0xb89f85[_0x07e1('0x3a')]=qs[_0x07e1('0x32')](_[_0x07e1('0x3b')](_0x2ee870[_0x07e1('0x33')],_0x3ddb50[_0x07e1('0x32')]),_0x123d61);if(_0x2ee870[_0x07e1('0x33')][_0x07e1('0x3c')]){_0xb89f85[_0x07e1('0x3a')]=_[_0x07e1('0x3d')](_0xb89f85[_0x07e1('0x3a')],{'$or':_[_0x07e1('0x2c')](_0x123d61,function(_0x4d3c10){if(_0x4d3c10[_0x07e1('0x2e')]!=='VIRTUAL'){var _0x3fdd65={};_0x3fdd65[_0x4d3c10[_0x07e1('0x29')]]={'$like':'%'+_0x2ee870[_0x07e1('0x33')]['filter']+'%'};return _0x3fdd65;}})});}_0xb89f85=_[_0x07e1('0x3d')]({},_0xb89f85,_0x2ee870[_0x07e1('0x3e')]);var _0xb53002={'where':_0xb89f85['where']};return db[_0x07e1('0x3f')][_0x07e1('0x1f')](_0xb53002)['then'](function(_0x4fd2be){_0x1740eb['count']=_0x4fd2be;if(_0x2ee870['query'][_0x07e1('0x40')]){_0xb89f85[_0x07e1('0x41')]=[{'all':!![]}];}return db[_0x07e1('0x3f')][_0x07e1('0x42')](_0xb89f85);})[_0x07e1('0x26')](function(_0x12f3af){_0x1740eb[_0x07e1('0x43')]=_0x12f3af;return _0x1740eb;})[_0x07e1('0x26')](respondWithFilteredResult(_0x126aea,_0xb89f85))[_0x07e1('0x44')](handleError(_0x126aea,null));};
\ No newline at end of file
+var _0xc4de=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','json','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','index','map','Migration','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','catch','eml-format','rimraf','zip-dir','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse'];(function(_0x1c9754,_0x23ca63){var _0x1f913a=function(_0x2a3e5f){while(--_0x2a3e5f){_0x1c9754['push'](_0x1c9754['shift']());}};_0x1f913a(++_0x23ca63);}(_0xc4de,0x17d));var _0xec4d=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0xc4de[_0x199572];return _0x13cfa3;};'use strict';var emlformat=require(_0xec4d('0x0'));var rimraf=require(_0xec4d('0x1'));var zipdir=require(_0xec4d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xec4d('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xec4d('0x4'));var util=require('util');var path=require(_0xec4d('0x5'));var sox=require(_0xec4d('0x6'));var csv=require(_0xec4d('0x7'));var ejs=require(_0xec4d('0x8'));var fs=require('fs');var fs_extra=require(_0xec4d('0x9'));var _=require(_0xec4d('0xa'));var squel=require('squel');var crypto=require(_0xec4d('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xec4d('0xc'));var toCsv=require(_0xec4d('0x7'));var querystring=require(_0xec4d('0xd'));var Papa=require(_0xec4d('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xec4d('0xf'));var as=require(_0xec4d('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xec4d('0x11'))(_0xec4d('0x12'));var utils=require(_0xec4d('0x13'));var config=require(_0xec4d('0x14'));var licenseUtil=require(_0xec4d('0x15'));var db=require(_0xec4d('0x16'))['db'];function respondWithStatusCode(_0x541597,_0x3f408e){_0x3f408e=_0x3f408e||0xcc;return function(_0x1040cc){if(_0x1040cc){return _0x541597['sendStatus'](_0x3f408e);}return _0x541597[_0xec4d('0x17')](_0x3f408e)[_0xec4d('0x18')]();};}function respondWithResult(_0x2a2454,_0x54416b){_0x54416b=_0x54416b||0xc8;return function(_0xd93c2f){if(_0xd93c2f){return _0x2a2454[_0xec4d('0x17')](_0x54416b)['json'](_0xd93c2f);}};}function respondWithFilteredResult(_0x19b16e,_0x4cfff1){return function(_0x39182c){if(_0x39182c){var _0xc28215=typeof _0x4cfff1[_0xec4d('0x19')]===_0xec4d('0x1a')&&typeof _0x4cfff1[_0xec4d('0x1b')]===_0xec4d('0x1a');var _0xe2965a=_0x39182c[_0xec4d('0x1c')];var _0x181c73=_0xc28215?0x0:_0x4cfff1['offset'];var _0x4c6944=_0xc28215?_0x39182c[_0xec4d('0x1c')]:_0x4cfff1[_0xec4d('0x19')]+_0x4cfff1[_0xec4d('0x1b')];var _0x4db66;if(_0x4c6944>=_0xe2965a){_0x4c6944=_0xe2965a;_0x4db66=0xc8;}else{_0x4db66=0xce;}_0x19b16e[_0xec4d('0x17')](_0x4db66);return _0x19b16e[_0xec4d('0x1d')]('Content-Range',_0x181c73+'-'+_0x4c6944+'/'+_0xe2965a)[_0xec4d('0x1e')](_0x39182c);}return null;};}function patchUpdates(_0x6da58d){return function(_0x318e2c){try{jsonpatch[_0xec4d('0x1f')](_0x318e2c,_0x6da58d,!![]);}catch(_0xe86381){return BPromise[_0xec4d('0x20')](_0xe86381);}return _0x318e2c['save']();};}function saveUpdates(_0x12d244,_0x149cbf){return function(_0x3e5831){if(_0x3e5831){return _0x3e5831[_0xec4d('0x21')](_0x12d244)[_0xec4d('0x22')](function(_0x18f4bc){return _0x18f4bc;});}return null;};}function removeEntity(_0x316e89,_0x494e40){return function(_0x48487b){if(_0x48487b){return _0x48487b[_0xec4d('0x23')]()[_0xec4d('0x22')](function(){_0x316e89[_0xec4d('0x17')](0xcc)[_0xec4d('0x18')]();});}};}function handleEntityNotFound(_0x19c233,_0x294bc6){return function(_0x49554f){if(!_0x49554f){_0x19c233[_0xec4d('0x24')](0x194);}return _0x49554f;};}function handleError(_0x2dbe99,_0x17541d){_0x17541d=_0x17541d||0x1f4;return function(_0xf6a7fb){logger[_0xec4d('0x25')](_0xf6a7fb[_0xec4d('0x26')]);if(_0xf6a7fb[_0xec4d('0x27')]){delete _0xf6a7fb[_0xec4d('0x27')];}_0x2dbe99[_0xec4d('0x17')](_0x17541d)[_0xec4d('0x28')](_0xf6a7fb);};}exports[_0xec4d('0x29')]=function(_0x266a57,_0x3a3b77){var _0x34cadf={},_0x45d3b8={},_0x270a38={'count':0x0,'rows':[]};var _0x3a510d=_[_0xec4d('0x2a')](db[_0xec4d('0x2b')][_0xec4d('0x2c')],function(_0x50ae19){return{'name':_0x50ae19[_0xec4d('0x2d')],'type':_0x50ae19[_0xec4d('0x2e')]['key']};});_0x45d3b8['model']=_['map'](_0x3a510d,_0xec4d('0x27'));_0x45d3b8[_0xec4d('0x2f')]=_[_0xec4d('0x30')](_0x266a57['query']);_0x45d3b8[_0xec4d('0x31')]=_[_0xec4d('0x32')](_0x45d3b8['model'],_0x45d3b8[_0xec4d('0x2f')]);_0x34cadf[_0xec4d('0x33')]=_['intersection'](_0x45d3b8[_0xec4d('0x34')],qs[_0xec4d('0x35')](_0x266a57[_0xec4d('0x2f')][_0xec4d('0x35')]));_0x34cadf[_0xec4d('0x33')]=_0x34cadf[_0xec4d('0x33')][_0xec4d('0x36')]?_0x34cadf[_0xec4d('0x33')]:_0x45d3b8[_0xec4d('0x34')];if(!_0x266a57[_0xec4d('0x2f')][_0xec4d('0x37')](_0xec4d('0x38'))){_0x34cadf[_0xec4d('0x1b')]=qs[_0xec4d('0x1b')](_0x266a57[_0xec4d('0x2f')][_0xec4d('0x1b')]);_0x34cadf['offset']=qs[_0xec4d('0x19')](_0x266a57[_0xec4d('0x2f')][_0xec4d('0x19')]);}_0x34cadf['order']=qs[_0xec4d('0x39')](_0x266a57['query']['sort']);_0x34cadf[_0xec4d('0x3a')]=qs[_0xec4d('0x31')](_[_0xec4d('0x3b')](_0x266a57[_0xec4d('0x2f')],_0x45d3b8[_0xec4d('0x31')]),_0x3a510d);if(_0x266a57[_0xec4d('0x2f')][_0xec4d('0x3c')]){_0x34cadf[_0xec4d('0x3a')]=_[_0xec4d('0x3d')](_0x34cadf[_0xec4d('0x3a')],{'$or':_[_0xec4d('0x2a')](_0x3a510d,function(_0x22bc79){if(_0x22bc79['type']!==_0xec4d('0x3e')){var _0x4bbdb0={};_0x4bbdb0[_0x22bc79[_0xec4d('0x27')]]={'$like':'%'+_0x266a57['query'][_0xec4d('0x3c')]+'%'};return _0x4bbdb0;}})});}_0x34cadf=_[_0xec4d('0x3d')]({},_0x34cadf,_0x266a57[_0xec4d('0x3f')]);var _0x4a9772={'where':_0x34cadf[_0xec4d('0x3a')]};return db[_0xec4d('0x2b')][_0xec4d('0x1c')](_0x4a9772)['then'](function(_0x860a1e){_0x270a38['count']=_0x860a1e;if(_0x266a57[_0xec4d('0x2f')]['includeAll']){_0x34cadf['include']=[{'all':!![]}];}return db[_0xec4d('0x2b')][_0xec4d('0x40')](_0x34cadf);})[_0xec4d('0x22')](function(_0x3cd0e9){_0x270a38['rows']=_0x3cd0e9;return _0x270a38;})['then'](respondWithFilteredResult(_0x3a3b77,_0x34cadf))[_0xec4d('0x41')](handleError(_0x3a3b77,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40bc=['api','moment','bluebird','request-promise','path','../../config/environment','./migration.attributes','exports','define','Migration','migrations','lodash','util'];(function(_0x4d9ec3,_0x5708aa){var _0x58b63b=function(_0x4f5fd2){while(--_0x4f5fd2){_0x4d9ec3['push'](_0x4d9ec3['shift']());}};_0x58b63b(++_0x5708aa);}(_0x40bc,0x1b8));var _0xc40b=function(_0x36f81d,_0xeb66f6){_0x36f81d=_0x36f81d-0x0;var _0x5b9b0f=_0x40bc[_0x36f81d];return _0x5b9b0f;};'use strict';var _=require(_0xc40b('0x0'));var util=require(_0xc40b('0x1'));var logger=require('../../config/logger')(_0xc40b('0x2'));var moment=require(_0xc40b('0x3'));var BPromise=require(_0xc40b('0x4'));var rp=require(_0xc40b('0x5'));var fs=require('fs');var path=require(_0xc40b('0x6'));var rimraf=require('rimraf');var config=require(_0xc40b('0x7'));var attributes=require(_0xc40b('0x8'));module[_0xc40b('0x9')]=function(_0x420c78,_0x2cd24c){return _0x420c78[_0xc40b('0xa')](_0xc40b('0xb'),attributes,{'tableName':_0xc40b('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x48a0=['./migration.attributes','exports','migrations','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0xff2a5a,_0x5719b4){var _0x4ceb33=function(_0x5a9586){while(--_0x5a9586){_0xff2a5a['push'](_0xff2a5a['shift']());}};_0x4ceb33(++_0x5719b4);}(_0x48a0,0x18f));var _0x048a=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x48a0[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x048a('0x0'));var util=require(_0x048a('0x1'));var logger=require(_0x048a('0x2'))(_0x048a('0x3'));var moment=require('moment');var BPromise=require(_0x048a('0x4'));var rp=require(_0x048a('0x5'));var fs=require('fs');var path=require(_0x048a('0x6'));var rimraf=require(_0x048a('0x7'));var config=require('../../config/environment');var attributes=require(_0x048a('0x8'));module[_0x048a('0x9')]=function(_0x58bc9f,_0x32c3f2){return _0x58bc9f['define']('Migration',attributes,{'tableName':_0x048a('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','request\x20sent','debug','stringify','code','error','message','Migration,\x20%s,\x20%s','info','result','catch','moment','bluebird'];(function(_0x1951f6,_0x2ca2a2){var _0x2f782e=function(_0x149b47){while(--_0x149b47){_0x1951f6['push'](_0x1951f6['shift']());}};_0x2f782e(++_0x2ca2a2);}(_0x9c44,0x178));var _0x49c4=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0x9c44[_0x21549c];return _0x426cbd;};'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']('Migration,\x20%s,\x20%s',_0x2c4e2e,_0x49c4('0xb'));logger[_0x49c4('0xc')]('Migration,\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')]('Migration,\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')]('Migration,\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
+var _0x4156=['util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','request\x20sent','stringify','error','code','Migration,\x20%s,\x20%s','message','result','lodash'];(function(_0x3baacf,_0x1acbb0){var _0x2d871c=function(_0x52a85a){while(--_0x52a85a){_0x3baacf['push'](_0x3baacf['shift']());}};_0x2d871c(++_0x1acbb0);}(_0x4156,0xf1));var _0x6415=function(_0x3d8ddc,_0x4212d7){_0x3d8ddc=_0x3d8ddc-0x0;var _0xcea0b4=_0x4156[_0x3d8ddc];return _0xcea0b4;};'use strict';var _=require(_0x6415('0x0'));var util=require(_0x6415('0x1'));var moment=require(_0x6415('0x2'));var BPromise=require(_0x6415('0x3'));var rs=require(_0x6415('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6415('0x5'))['db'];var utils=require(_0x6415('0x6'));var logger=require(_0x6415('0x7'))(_0x6415('0x8'));var config=require(_0x6415('0x9'));var jayson=require(_0x6415('0xa'));var client=jayson[_0x6415('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x24cb0,_0x47ec13,_0x4045ec){return new BPromise(function(_0x266237,_0x5bc51b){return client[_0x6415('0xc')](_0x24cb0,_0x4045ec)[_0x6415('0xd')](function(_0x3383d2){logger[_0x6415('0xe')]('Migration,\x20%s,\x20%s',_0x47ec13,_0x6415('0xf'));logger['debug']('Migration,\x20%s,\x20%s,\x20%s',_0x47ec13,_0x6415('0xf'),JSON[_0x6415('0x10')](_0x3383d2));if(_0x3383d2[_0x6415('0x11')]){if(_0x3383d2[_0x6415('0x11')][_0x6415('0x12')]===0x1f4){logger[_0x6415('0x11')](_0x6415('0x13'),_0x47ec13,_0x3383d2['error']['message']);return _0x5bc51b(_0x3383d2[_0x6415('0x11')][_0x6415('0x14')]);}logger[_0x6415('0x11')](_0x6415('0x13'),_0x47ec13,_0x3383d2[_0x6415('0x11')]['message']);return _0x266237(_0x3383d2['error'][_0x6415('0x14')]);}else{logger[_0x6415('0xe')]('Migration,\x20%s,\x20%s',_0x47ec13,_0x6415('0xf'));_0x266237(_0x3383d2[_0x6415('0x15')]['message']);}})['catch'](function(_0x352a04){logger[_0x6415('0x11')](_0x6415('0x13'),_0x47ec13,_0x352a04);_0x5bc51b(_0x352a04);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5dd=['express','fs-extra','../../components/auth/service','../../components/interaction/service','./network.controller','get','isAuthenticated','index','/:id','show','post','put','destroy','multer','util','path','connect-timeout'];(function(_0x1a50ef,_0x458ac5){var _0x56b77e=function(_0x2bc198){while(--_0x2bc198){_0x1a50ef['push'](_0x1a50ef['shift']());}};_0x56b77e(++_0x458ac5);}(_0xb5dd,0xd9));var _0xdb5d=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xb5dd[_0x2641f9];return _0x585741;};'use strict';var multer=require(_0xdb5d('0x0'));var util=require(_0xdb5d('0x1'));var path=require(_0xdb5d('0x2'));var timeout=require(_0xdb5d('0x3'));var express=require(_0xdb5d('0x4'));var router=express['Router']();var fs_extra=require(_0xdb5d('0x5'));var auth=require(_0xdb5d('0x6'));var interaction=require(_0xdb5d('0x7'));var config=require('../../config/environment');var controller=require(_0xdb5d('0x8'));router[_0xdb5d('0x9')]('/',auth[_0xdb5d('0xa')](),controller[_0xdb5d('0xb')]);router[_0xdb5d('0x9')](_0xdb5d('0xc'),auth[_0xdb5d('0xa')](),controller[_0xdb5d('0xd')]);router[_0xdb5d('0xe')]('/',auth[_0xdb5d('0xa')](),controller['create']);router[_0xdb5d('0xf')](_0xdb5d('0xc'),auth[_0xdb5d('0xa')](),controller['update']);router['delete'](_0xdb5d('0xc'),auth[_0xdb5d('0xa')](),controller[_0xdb5d('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x9494=['put','update','destroy','multer','util','connect-timeout','express','../../components/auth/service','../../config/environment','get','isAuthenticated','/:id','show','post','create'];(function(_0x1e16e7,_0x11d381){var _0x1fcd7a=function(_0x544554){while(--_0x544554){_0x1e16e7['push'](_0x1e16e7['shift']());}};_0x1fcd7a(++_0x11d381);}(_0x9494,0x1a7));var _0x4949=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9494[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x4949('0x0'));var util=require(_0x4949('0x1'));var path=require('path');var timeout=require(_0x4949('0x2'));var express=require(_0x4949('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x4949('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x4949('0x5'));var controller=require('./network.controller');router[_0x4949('0x6')]('/',auth[_0x4949('0x7')](),controller['index']);router['get'](_0x4949('0x8'),auth[_0x4949('0x7')](),controller[_0x4949('0x9')]);router[_0x4949('0xa')]('/',auth[_0x4949('0x7')](),controller[_0x4949('0xb')]);router[_0x4949('0xc')](_0x4949('0x8'),auth['isAuthenticated'](),controller[_0x4949('0xd')]);router['delete'](_0x4949('0x8'),auth[_0x4949('0x7')](),controller[_0x4949('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ad5=['sequelize','exports','ENUM','stun','turn','STRING'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0x0ad5,0x78));var _0x50ad=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x0ad5[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x50ad('0x0'));module[_0x50ad('0x1')]={'type':{'type':Sequelize[_0x50ad('0x2')]('localnet','externip',_0x50ad('0x3'),_0x50ad('0x4'))},'value':{'type':Sequelize[_0x50ad('0x5')]},'username':{'type':Sequelize[_0x50ad('0x5')]},'password':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x4525=['STRING','sequelize','localnet','stun','turn'];(function(_0x833d5f,_0x2d47b3){var _0x9ea801=function(_0x1d3e48){while(--_0x1d3e48){_0x833d5f['push'](_0x833d5f['shift']());}};_0x9ea801(++_0x2d47b3);}(_0x4525,0x146));var _0x5452=function(_0x41d030,_0x28cc69){_0x41d030=_0x41d030-0x0;var _0xf2a7e4=_0x4525[_0x41d030];return _0xf2a7e4;};'use strict';var Sequelize=require(_0x5452('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0x5452('0x1'),'externip',_0x5452('0x2'),_0x5452('0x3'))},'value':{'type':Sequelize[_0x5452('0x4')]},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0x5452('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x208c=['message','result','catch','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','end','stack','name','send','index','map','Network','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','show','include','sequelize','create','body','toUpperCase','STUN','readFileSync','join','root','render','Reload','res_stun_monitor.so','server/files/templates/turn_multiple.ejs','utf8','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','writeFileSync','format','toLowerCase','chan_sip.so','params','server/files/templates/stun_multiple.ejs','/etc/asterisk/stun_xcally.conf','/etc/asterisk/sip_xcally_%s.conf','destroy','find','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x364040,_0x2661d5){var _0x4328dc=function(_0x29a477){while(--_0x29a477){_0x364040['push'](_0x364040['shift']());}};_0x4328dc(++_0x2661d5);}(_0x208c,0x12b));var _0xc208=function(_0x3d58e0,_0x1cae24){_0x3d58e0=_0x3d58e0-0x0;var _0x164921=_0x208c[_0x3d58e0];return _0x164921;};'use strict';var emlformat=require(_0xc208('0x0'));var rimraf=require(_0xc208('0x1'));var zipdir=require(_0xc208('0x2'));var jsonpatch=require(_0xc208('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xc208('0x4'));var Mustache=require(_0xc208('0x5'));var util=require('util');var path=require(_0xc208('0x6'));var sox=require(_0xc208('0x7'));var csv=require(_0xc208('0x8'));var ejs=require(_0xc208('0x9'));var fs=require('fs');var fs_extra=require(_0xc208('0xa'));var _=require(_0xc208('0xb'));var squel=require(_0xc208('0xc'));var crypto=require(_0xc208('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xc208('0x8'));var querystring=require(_0xc208('0xe'));var Papa=require(_0xc208('0xf'));var Redis=require(_0xc208('0x10'));var authService=require(_0xc208('0x11'));var qs=require(_0xc208('0x12'));var as=require(_0xc208('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc208('0x14'))(_0xc208('0x15'));var utils=require('../../config/utils');var config=require(_0xc208('0x16'));var licenseUtil=require(_0xc208('0x17'));var db=require(_0xc208('0x18'))['db'];var jayson=require(_0xc208('0x19'));var client=jayson[_0xc208('0x1a')][_0xc208('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x1b7634,_0x17748a,_0x3edbf8,_0x3d8a79){return new BPromise(function(_0x38ea85,_0x17dcf4){var _0x2ff536=_0x3d8a79||client;return _0x2ff536['request'](_0x1b7634,_0x3edbf8)[_0xc208('0x1c')](function(_0x4fb0fe){logger[_0xc208('0x1d')](_0xc208('0x1e'),_0x17748a,_0xc208('0x1f'));logger[_0xc208('0x20')](_0xc208('0x21'),_0x17748a,_0xc208('0x1f'),JSON[_0xc208('0x22')](_0x4fb0fe));if(_0x4fb0fe['error']){if(_0x4fb0fe[_0xc208('0x23')][_0xc208('0x24')]===0x1f4){logger[_0xc208('0x23')](_0xc208('0x1e'),_0x17748a,_0x4fb0fe[_0xc208('0x23')][_0xc208('0x25')]);return _0x17dcf4(_0x4fb0fe[_0xc208('0x23')][_0xc208('0x25')]);}logger[_0xc208('0x23')](_0xc208('0x1e'),_0x17748a,_0x4fb0fe[_0xc208('0x23')][_0xc208('0x25')]);return _0x38ea85(_0x4fb0fe[_0xc208('0x23')][_0xc208('0x25')]);}else{logger[_0xc208('0x1d')](_0xc208('0x1e'),_0x17748a,_0xc208('0x1f'));_0x38ea85(_0x4fb0fe[_0xc208('0x26')][_0xc208('0x25')]);}})[_0xc208('0x27')](function(_0x454ed7){logger[_0xc208('0x23')](_0xc208('0x1e'),_0x17748a,_0x454ed7);_0x17dcf4(_0x454ed7);});});}function respondWithStatusCode(_0x524b77,_0x598671){_0x598671=_0x598671||0xcc;return function(_0x415849){if(_0x415849){return _0x524b77[_0xc208('0x28')](_0x598671);}return _0x524b77[_0xc208('0x29')](_0x598671)['end']();};}function respondWithResult(_0x30eea3,_0xd9020f){_0xd9020f=_0xd9020f||0xc8;return function(_0x54aa5){if(_0x54aa5){return _0x30eea3[_0xc208('0x29')](_0xd9020f)[_0xc208('0x2a')](_0x54aa5);}};}function respondWithFilteredResult(_0x225acb,_0x29694b){return function(_0x144902){if(_0x144902){var _0x5bb953=typeof _0x29694b[_0xc208('0x2b')]===_0xc208('0x2c')&&typeof _0x29694b[_0xc208('0x2d')]===_0xc208('0x2c');var _0x8e5f3e=_0x144902['count'];var _0x3431df=_0x5bb953?0x0:_0x29694b[_0xc208('0x2b')];var _0x598e1f=_0x5bb953?_0x144902[_0xc208('0x2e')]:_0x29694b[_0xc208('0x2b')]+_0x29694b[_0xc208('0x2d')];var _0x11fb66;if(_0x598e1f>=_0x8e5f3e){_0x598e1f=_0x8e5f3e;_0x11fb66=0xc8;}else{_0x11fb66=0xce;}_0x225acb[_0xc208('0x29')](_0x11fb66);return _0x225acb[_0xc208('0x2f')](_0xc208('0x30'),_0x3431df+'-'+_0x598e1f+'/'+_0x8e5f3e)[_0xc208('0x2a')](_0x144902);}return null;};}function patchUpdates(_0x1b89a0){return function(_0x2715a0){try{jsonpatch[_0xc208('0x31')](_0x2715a0,_0x1b89a0,!![]);}catch(_0xe00439){return BPromise[_0xc208('0x32')](_0xe00439);}return _0x2715a0[_0xc208('0x33')]();};}function saveUpdates(_0x431045,_0x6ec055){return function(_0x5710b9){if(_0x5710b9){return _0x5710b9[_0xc208('0x34')](_0x431045)['then'](function(_0x5cc9f2){return _0x5cc9f2;});}return null;};}function removeEntity(_0x216963,_0x5a4d95){return function(_0x334b29){if(_0x334b29){return _0x334b29['destroy']()['then'](function(){_0x216963['status'](0xcc)[_0xc208('0x35')]();});}};}function handleEntityNotFound(_0x3ef729,_0x12d64f){return function(_0x4d72c0){if(!_0x4d72c0){_0x3ef729['sendStatus'](0x194);}return _0x4d72c0;};}function handleError(_0x3b1a71,_0x5c9683){_0x5c9683=_0x5c9683||0x1f4;return function(_0x70daf5){logger['error'](_0x70daf5[_0xc208('0x36')]);if(_0x70daf5['name']){delete _0x70daf5[_0xc208('0x37')];}_0x3b1a71['status'](_0x5c9683)[_0xc208('0x38')](_0x70daf5);};}exports[_0xc208('0x39')]=function(_0x48deb0,_0x4e02d3){var _0x182775={},_0x3012fd={},_0x3b1970={'count':0x0,'rows':[]};var _0x3bf255=_[_0xc208('0x3a')](db[_0xc208('0x3b')][_0xc208('0x3c')],function(_0xa3b9f1){return{'name':_0xa3b9f1[_0xc208('0x3d')],'type':_0xa3b9f1['type'][_0xc208('0x3e')]};});_0x3012fd['model']=_[_0xc208('0x3a')](_0x3bf255,'name');_0x3012fd[_0xc208('0x3f')]=_[_0xc208('0x40')](_0x48deb0[_0xc208('0x3f')]);_0x3012fd[_0xc208('0x41')]=_[_0xc208('0x42')](_0x3012fd['model'],_0x3012fd[_0xc208('0x3f')]);_0x182775[_0xc208('0x43')]=_[_0xc208('0x42')](_0x3012fd[_0xc208('0x44')],qs[_0xc208('0x45')](_0x48deb0[_0xc208('0x3f')][_0xc208('0x45')]));_0x182775[_0xc208('0x43')]=_0x182775[_0xc208('0x43')][_0xc208('0x46')]?_0x182775[_0xc208('0x43')]:_0x3012fd[_0xc208('0x44')];if(!_0x48deb0[_0xc208('0x3f')][_0xc208('0x47')](_0xc208('0x48'))){_0x182775['limit']=qs[_0xc208('0x2d')](_0x48deb0[_0xc208('0x3f')][_0xc208('0x2d')]);_0x182775[_0xc208('0x2b')]=qs['offset'](_0x48deb0[_0xc208('0x3f')][_0xc208('0x2b')]);}_0x182775[_0xc208('0x49')]=qs[_0xc208('0x4a')](_0x48deb0[_0xc208('0x3f')]['sort']);_0x182775[_0xc208('0x4b')]=qs[_0xc208('0x41')](_[_0xc208('0x4c')](_0x48deb0[_0xc208('0x3f')],_0x3012fd[_0xc208('0x41')]),_0x3bf255);if(_0x48deb0[_0xc208('0x3f')][_0xc208('0x4d')]){_0x182775[_0xc208('0x4b')]=_[_0xc208('0x4e')](_0x182775['where'],{'$or':_[_0xc208('0x3a')](_0x3bf255,function(_0x1a02ab){if(_0x1a02ab[_0xc208('0x4f')]!==_0xc208('0x50')){var _0x359a90={};_0x359a90[_0x1a02ab[_0xc208('0x37')]]={'$like':'%'+_0x48deb0['query'][_0xc208('0x4d')]+'%'};return _0x359a90;}})});}_0x182775=_['merge']({},_0x182775,_0x48deb0[_0xc208('0x51')]);var _0x35e8c8={'where':_0x182775[_0xc208('0x4b')]};return db[_0xc208('0x3b')][_0xc208('0x2e')](_0x35e8c8)[_0xc208('0x1c')](function(_0x3c492b){_0x3b1970['count']=_0x3c492b;if(_0x48deb0[_0xc208('0x3f')][_0xc208('0x52')]){_0x182775['include']=[{'all':!![]}];}return db[_0xc208('0x3b')][_0xc208('0x53')](_0x182775);})[_0xc208('0x1c')](function(_0x29aadb){_0x3b1970[_0xc208('0x54')]=_0x29aadb;return _0x3b1970;})[_0xc208('0x1c')](respondWithFilteredResult(_0x4e02d3,_0x182775))['catch'](handleError(_0x4e02d3,null));};exports[_0xc208('0x55')]=function(_0x2a1d91,_0x1d8136){var _0x4a8bd1={'raw':!![],'where':{'id':_0x2a1d91['params']['id']}},_0x29661a={};_0x29661a['model']=_[_0xc208('0x40')](db[_0xc208('0x3b')][_0xc208('0x3c')]);_0x29661a['query']=_[_0xc208('0x40')](_0x2a1d91[_0xc208('0x3f')]);_0x29661a['filters']=_[_0xc208('0x42')](_0x29661a['model'],_0x29661a[_0xc208('0x3f')]);_0x4a8bd1[_0xc208('0x43')]=_['intersection'](_0x29661a['model'],qs[_0xc208('0x45')](_0x2a1d91[_0xc208('0x3f')][_0xc208('0x45')]));_0x4a8bd1[_0xc208('0x43')]=_0x4a8bd1[_0xc208('0x43')][_0xc208('0x46')]?_0x4a8bd1[_0xc208('0x43')]:_0x29661a[_0xc208('0x44')];if(_0x2a1d91[_0xc208('0x3f')][_0xc208('0x52')]){_0x4a8bd1[_0xc208('0x56')]=[{'all':!![]}];}_0x4a8bd1=_[_0xc208('0x4e')]({},_0x4a8bd1,_0x2a1d91[_0xc208('0x51')]);return db[_0xc208('0x3b')]['find'](_0x4a8bd1)[_0xc208('0x1c')](handleEntityNotFound(_0x1d8136,null))['then'](respondWithResult(_0x1d8136,null))[_0xc208('0x27')](handleError(_0x1d8136,null));};exports['create']=function(_0x5219a0,_0xa40e2a,_0x1bc142){var _0x58506d;return db[_0xc208('0x57')]['transaction'](function(_0x3dd29f){return db[_0xc208('0x3b')][_0xc208('0x58')](_0x5219a0[_0xc208('0x59')],{'raw':!![]})[_0xc208('0x1c')](function(_0x340ec4){_0x58506d=_0x340ec4;return db[_0xc208('0x3b')][_0xc208('0x53')]({'where':{'type':_0x5219a0[_0xc208('0x59')]['type']},'raw':!![]});})[_0xc208('0x1c')](function(_0x2a3acd){if(_0x58506d['type'][_0xc208('0x5a')]()==_0xc208('0x5b')){var _0xe30239=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config[_0xc208('0x5e')],'server/files/templates/stun_multiple.ejs'),'utf8');var _0xcd20f3=ejs[_0xc208('0x5f')](_0xe30239,{'networks':_0x2a3acd||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0xcd20f3);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x58'),{'module':_0xc208('0x61')});}else if(_0x58506d[_0xc208('0x4f')][_0xc208('0x5a')]()=='TURN'){var _0x4cb33f=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config[_0xc208('0x5e')],_0xc208('0x62')),_0xc208('0x63'));var _0xa8e41a=ejs[_0xc208('0x5f')](_0x4cb33f,{'networks':_0x2a3acd||[]});fs['writeFileSync'](_0xc208('0x64'),_0xa8e41a);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x58'),{'module':_0xc208('0x61')});}else{var _0x5c3192=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config[_0xc208('0x5e')],_0xc208('0x65')),_0xc208('0x63'));var _0x36a8a2=ejs['render'](_0x5c3192,{'networks':_0x2a3acd||[]});fs[_0xc208('0x66')](util[_0xc208('0x67')]('/etc/asterisk/sip_xcally_%s.conf',_0x5219a0[_0xc208('0x59')][_0xc208('0x4f')][_0xc208('0x68')]()),_0x36a8a2);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x58'),{'module':_0xc208('0x69')});}return null;})[_0xc208('0x1c')](function(){return _0x58506d;});})['then'](respondWithResult(_0xa40e2a,0xc9))[_0xc208('0x27')](handleError(_0xa40e2a,null));};exports[_0xc208('0x34')]=function(_0x4f6184,_0x320391,_0x52832f){var _0x1c008e;return db['sequelize']['transaction'](function(_0x44c67c){return db[_0xc208('0x3b')]['find']({'where':{'id':_0x4f6184[_0xc208('0x6a')]['id']}})['then'](handleEntityNotFound(_0x320391,null))[_0xc208('0x1c')](saveUpdates(_0x4f6184['body'],null))['then'](function(_0x1e1e22){if(_0x1e1e22){_0x1c008e=_0x1e1e22;return db[_0xc208('0x3b')][_0xc208('0x53')]({'where':{'type':_0x1c008e[_0xc208('0x4f')]},'raw':!![]});}return null;})['then'](function(_0xf7a330){if(_0x1c008e[_0xc208('0x4f')][_0xc208('0x5a')]()==_0xc208('0x5b')){var _0x4ce6a5=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config['root'],_0xc208('0x6b')),'utf8');var _0xcff597=ejs[_0xc208('0x5f')](_0x4ce6a5,{'networks':_0xf7a330||[]});fs['writeFileSync'](_0xc208('0x6c'),_0xcff597);return respondWithRpcPromise('Reload',_0xc208('0x34'),{'module':'res_stun_monitor.so'});}else if(_0x1c008e[_0xc208('0x4f')]['toUpperCase']()=='TURN'){var _0x27757a=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config['root'],_0xc208('0x62')),_0xc208('0x63'));var _0x5c185f=ejs[_0xc208('0x5f')](_0x27757a,{'networks':_0xf7a330||[]});fs[_0xc208('0x66')](_0xc208('0x64'),_0x5c185f);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x34'),{'module':_0xc208('0x61')});}else{var _0x283c8b=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config[_0xc208('0x5e')],_0xc208('0x65')),_0xc208('0x63'));var _0x50ecb8=ejs[_0xc208('0x5f')](_0x283c8b,{'networks':_0xf7a330||[]});fs[_0xc208('0x66')](util[_0xc208('0x67')](_0xc208('0x6d'),_0x4f6184['body'][_0xc208('0x4f')][_0xc208('0x68')]()),_0x50ecb8);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x34'),{'module':'chan_sip.so'});}return null;})[_0xc208('0x1c')](function(_0x11da60){if(_0x11da60){return _0x1c008e;}return null;});})['then'](respondWithResult(_0x320391,null))[_0xc208('0x27')](handleError(_0x320391,null));};exports[_0xc208('0x6e')]=function(_0x342050,_0xb3ed60,_0x214b25){var _0x56cf61;return db[_0xc208('0x3b')][_0xc208('0x6f')]({'where':{'id':_0x342050[_0xc208('0x6a')]['id']}})['then'](function(_0x3db32e){_0x56cf61=_0x3db32e;return _0x3db32e;})[_0xc208('0x1c')](handleEntityNotFound(_0xb3ed60,null))[_0xc208('0x1c')](removeEntity(_0xb3ed60,null))[_0xc208('0x1c')](function(){if(_0x56cf61){return db['Network'][_0xc208('0x53')]({'where':{'type':_0x56cf61[_0xc208('0x4f')]},'raw':!![]});}})['then'](function(_0x7e4a55){if(_0x56cf61[_0xc208('0x4f')][_0xc208('0x5a')]()==_0xc208('0x5b')){var _0x5bff0c=fs[_0xc208('0x5c')](path[_0xc208('0x5d')](config[_0xc208('0x5e')],_0xc208('0x6b')),_0xc208('0x63'));var _0x30bb48=ejs[_0xc208('0x5f')](_0x5bff0c,{'networks':_0x7e4a55||[]});fs[_0xc208('0x66')](_0xc208('0x6c'),_0x30bb48);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x6e'),{'module':_0xc208('0x61')});}else if(_0x56cf61[_0xc208('0x4f')][_0xc208('0x5a')]()=='TURN'){var _0x55e938=fs[_0xc208('0x5c')](path['join'](config['root'],_0xc208('0x62')),_0xc208('0x63'));var _0x1ed578=ejs[_0xc208('0x5f')](_0x55e938,{'networks':_0x7e4a55||[]});fs[_0xc208('0x66')](_0xc208('0x64'),_0x1ed578);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x6e'),{'module':_0xc208('0x61')});}else{var _0x546683=fs['readFileSync'](path[_0xc208('0x5d')](config[_0xc208('0x5e')],_0xc208('0x65')),_0xc208('0x63'));var _0x818cc3=ejs['render'](_0x546683,{'networks':_0x7e4a55||[]});fs[_0xc208('0x66')](util['format']('/etc/asterisk/sip_xcally_%s.conf',_0x342050[_0xc208('0x59')][_0xc208('0x4f')][_0xc208('0x68')]()),_0x818cc3);return respondWithRpcPromise(_0xc208('0x60'),_0xc208('0x6e'),{'module':_0xc208('0x69')});}return null;})[_0xc208('0x27')](handleError(_0xb3ed60,null));};
\ No newline at end of file
+var _0xec96=['sendStatus','stack','name','send','index','map','Network','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','merge','filter','options','include','findAll','rows','show','params','includeAll','find','create','transaction','body','toUpperCase','join','root','server/files/templates/stun_multiple.ejs','utf8','writeFileSync','Reload','TURN','render','/etc/asterisk/turn_xcally.conf','res_stun_monitor.so','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','chan_sip.so','sequelize','readFileSync','server/files/templates/turn_multiple.ejs','server/files/templates/network.ejs','STUN','/etc/asterisk/stun_xcally.conf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','client','http','request','then','info','Network,\x20%s,\x20%s','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','end'];(function(_0x37ac10,_0xab13e3){var _0x39970d=function(_0x4f1e19){while(--_0x4f1e19){_0x37ac10['push'](_0x37ac10['shift']());}};_0x39970d(++_0xab13e3);}(_0xec96,0x119));var _0x6ec9=function(_0x355b28,_0x52c23c){_0x355b28=_0x355b28-0x0;var _0x3a761a=_0xec96[_0x355b28];return _0x3a761a;};'use strict';var emlformat=require(_0x6ec9('0x0'));var rimraf=require(_0x6ec9('0x1'));var zipdir=require(_0x6ec9('0x2'));var jsonpatch=require(_0x6ec9('0x3'));var rp=require(_0x6ec9('0x4'));var moment=require(_0x6ec9('0x5'));var BPromise=require(_0x6ec9('0x6'));var Mustache=require(_0x6ec9('0x7'));var util=require('util');var path=require(_0x6ec9('0x8'));var sox=require(_0x6ec9('0x9'));var csv=require('to-csv');var ejs=require(_0x6ec9('0xa'));var fs=require('fs');var fs_extra=require(_0x6ec9('0xb'));var _=require(_0x6ec9('0xc'));var squel=require(_0x6ec9('0xd'));var crypto=require('crypto');var jsforce=require(_0x6ec9('0xe'));var deskjs=require(_0x6ec9('0xf'));var toCsv=require(_0x6ec9('0x10'));var querystring=require(_0x6ec9('0x11'));var Papa=require(_0x6ec9('0x12'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6ec9('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6ec9('0x14'));var logger=require(_0x6ec9('0x15'))('api');var utils=require(_0x6ec9('0x16'));var config=require(_0x6ec9('0x17'));var licenseUtil=require(_0x6ec9('0x18'));var db=require(_0x6ec9('0x19'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x6ec9('0x1a')][_0x6ec9('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x4eed7c,_0x453607,_0x694528,_0x1acef4){return new BPromise(function(_0x4ce59e,_0x413e3a){var _0x2ac886=_0x1acef4||client;return _0x2ac886[_0x6ec9('0x1c')](_0x4eed7c,_0x694528)[_0x6ec9('0x1d')](function(_0x29120c){logger[_0x6ec9('0x1e')](_0x6ec9('0x1f'),_0x453607,'request\x20sent');logger[_0x6ec9('0x20')](_0x6ec9('0x21'),_0x453607,'request\x20sent',JSON[_0x6ec9('0x22')](_0x29120c));if(_0x29120c[_0x6ec9('0x23')]){if(_0x29120c[_0x6ec9('0x23')][_0x6ec9('0x24')]===0x1f4){logger[_0x6ec9('0x23')](_0x6ec9('0x1f'),_0x453607,_0x29120c[_0x6ec9('0x23')]['message']);return _0x413e3a(_0x29120c['error'][_0x6ec9('0x25')]);}logger[_0x6ec9('0x23')]('Network,\x20%s,\x20%s',_0x453607,_0x29120c[_0x6ec9('0x23')]['message']);return _0x4ce59e(_0x29120c[_0x6ec9('0x23')][_0x6ec9('0x25')]);}else{logger[_0x6ec9('0x1e')](_0x6ec9('0x1f'),_0x453607,_0x6ec9('0x26'));_0x4ce59e(_0x29120c[_0x6ec9('0x27')][_0x6ec9('0x25')]);}})[_0x6ec9('0x28')](function(_0x3713b4){logger[_0x6ec9('0x23')](_0x6ec9('0x1f'),_0x453607,_0x3713b4);_0x413e3a(_0x3713b4);});});}function respondWithStatusCode(_0x4ffd64,_0x3b005b){_0x3b005b=_0x3b005b||0xcc;return function(_0x39aeee){if(_0x39aeee){return _0x4ffd64['sendStatus'](_0x3b005b);}return _0x4ffd64['status'](_0x3b005b)['end']();};}function respondWithResult(_0x50016,_0x3aa140){_0x3aa140=_0x3aa140||0xc8;return function(_0x4f9324){if(_0x4f9324){return _0x50016[_0x6ec9('0x29')](_0x3aa140)[_0x6ec9('0x2a')](_0x4f9324);}};}function respondWithFilteredResult(_0x58d536,_0x4d2827){return function(_0x47d493){if(_0x47d493){var _0x31285c=typeof _0x4d2827[_0x6ec9('0x2b')]===_0x6ec9('0x2c')&&typeof _0x4d2827[_0x6ec9('0x2d')]===_0x6ec9('0x2c');var _0x26bc43=_0x47d493[_0x6ec9('0x2e')];var _0x54d524=_0x31285c?0x0:_0x4d2827['offset'];var _0x55b5b2=_0x31285c?_0x47d493['count']:_0x4d2827[_0x6ec9('0x2b')]+_0x4d2827[_0x6ec9('0x2d')];var _0x501a5c;if(_0x55b5b2>=_0x26bc43){_0x55b5b2=_0x26bc43;_0x501a5c=0xc8;}else{_0x501a5c=0xce;}_0x58d536[_0x6ec9('0x29')](_0x501a5c);return _0x58d536[_0x6ec9('0x2f')](_0x6ec9('0x30'),_0x54d524+'-'+_0x55b5b2+'/'+_0x26bc43)['json'](_0x47d493);}return null;};}function patchUpdates(_0x151d4c){return function(_0x5687a5){try{jsonpatch[_0x6ec9('0x31')](_0x5687a5,_0x151d4c,!![]);}catch(_0x29bf16){return BPromise[_0x6ec9('0x32')](_0x29bf16);}return _0x5687a5[_0x6ec9('0x33')]();};}function saveUpdates(_0x420852,_0x263136){return function(_0x20e4d8){if(_0x20e4d8){return _0x20e4d8[_0x6ec9('0x34')](_0x420852)['then'](function(_0x168073){return _0x168073;});}return null;};}function removeEntity(_0x4bea41,_0x158c92){return function(_0x4ccd49){if(_0x4ccd49){return _0x4ccd49[_0x6ec9('0x35')]()[_0x6ec9('0x1d')](function(){_0x4bea41[_0x6ec9('0x29')](0xcc)[_0x6ec9('0x36')]();});}};}function handleEntityNotFound(_0x4f8dc5,_0x3ac06d){return function(_0x59ad05){if(!_0x59ad05){_0x4f8dc5[_0x6ec9('0x37')](0x194);}return _0x59ad05;};}function handleError(_0x37faa9,_0x4e9fc0){_0x4e9fc0=_0x4e9fc0||0x1f4;return function(_0x256fa1){logger[_0x6ec9('0x23')](_0x256fa1[_0x6ec9('0x38')]);if(_0x256fa1[_0x6ec9('0x39')]){delete _0x256fa1[_0x6ec9('0x39')];}_0x37faa9[_0x6ec9('0x29')](_0x4e9fc0)[_0x6ec9('0x3a')](_0x256fa1);};}exports[_0x6ec9('0x3b')]=function(_0x562662,_0x1206bd){var _0x55716={},_0x22f1ae={},_0x15518e={'count':0x0,'rows':[]};var _0x4e78a9=_[_0x6ec9('0x3c')](db[_0x6ec9('0x3d')][_0x6ec9('0x3e')],function(_0x2403a1){return{'name':_0x2403a1[_0x6ec9('0x3f')],'type':_0x2403a1[_0x6ec9('0x40')]['key']};});_0x22f1ae['model']=_[_0x6ec9('0x3c')](_0x4e78a9,'name');_0x22f1ae[_0x6ec9('0x41')]=_[_0x6ec9('0x42')](_0x562662[_0x6ec9('0x41')]);_0x22f1ae[_0x6ec9('0x43')]=_[_0x6ec9('0x44')](_0x22f1ae[_0x6ec9('0x45')],_0x22f1ae[_0x6ec9('0x41')]);_0x55716['attributes']=_[_0x6ec9('0x44')](_0x22f1ae[_0x6ec9('0x45')],qs['fields'](_0x562662[_0x6ec9('0x41')][_0x6ec9('0x46')]));_0x55716[_0x6ec9('0x47')]=_0x55716[_0x6ec9('0x47')][_0x6ec9('0x48')]?_0x55716['attributes']:_0x22f1ae[_0x6ec9('0x45')];if(!_0x562662[_0x6ec9('0x41')][_0x6ec9('0x49')](_0x6ec9('0x4a'))){_0x55716['limit']=qs[_0x6ec9('0x2d')](_0x562662[_0x6ec9('0x41')][_0x6ec9('0x2d')]);_0x55716[_0x6ec9('0x2b')]=qs[_0x6ec9('0x2b')](_0x562662['query'][_0x6ec9('0x2b')]);}_0x55716[_0x6ec9('0x4b')]=qs[_0x6ec9('0x4c')](_0x562662[_0x6ec9('0x41')][_0x6ec9('0x4c')]);_0x55716[_0x6ec9('0x4d')]=qs['filters'](_['pick'](_0x562662[_0x6ec9('0x41')],_0x22f1ae[_0x6ec9('0x43')]),_0x4e78a9);if(_0x562662['query']['filter']){_0x55716[_0x6ec9('0x4d')]=_[_0x6ec9('0x4e')](_0x55716['where'],{'$or':_['map'](_0x4e78a9,function(_0x1f0d61){if(_0x1f0d61[_0x6ec9('0x40')]!=='VIRTUAL'){var _0xcf44e9={};_0xcf44e9[_0x1f0d61['name']]={'$like':'%'+_0x562662[_0x6ec9('0x41')][_0x6ec9('0x4f')]+'%'};return _0xcf44e9;}})});}_0x55716=_[_0x6ec9('0x4e')]({},_0x55716,_0x562662[_0x6ec9('0x50')]);var _0x5bb862={'where':_0x55716['where']};return db[_0x6ec9('0x3d')][_0x6ec9('0x2e')](_0x5bb862)[_0x6ec9('0x1d')](function(_0x5ade1e){_0x15518e[_0x6ec9('0x2e')]=_0x5ade1e;if(_0x562662[_0x6ec9('0x41')]['includeAll']){_0x55716[_0x6ec9('0x51')]=[{'all':!![]}];}return db[_0x6ec9('0x3d')][_0x6ec9('0x52')](_0x55716);})['then'](function(_0x513c24){_0x15518e[_0x6ec9('0x53')]=_0x513c24;return _0x15518e;})[_0x6ec9('0x1d')](respondWithFilteredResult(_0x1206bd,_0x55716))[_0x6ec9('0x28')](handleError(_0x1206bd,null));};exports[_0x6ec9('0x54')]=function(_0x140649,_0x3a6230){var _0x418f6d={'raw':!![],'where':{'id':_0x140649[_0x6ec9('0x55')]['id']}},_0x5c876c={};_0x5c876c[_0x6ec9('0x45')]=_['keys'](db[_0x6ec9('0x3d')][_0x6ec9('0x3e')]);_0x5c876c[_0x6ec9('0x41')]=_[_0x6ec9('0x42')](_0x140649[_0x6ec9('0x41')]);_0x5c876c[_0x6ec9('0x43')]=_[_0x6ec9('0x44')](_0x5c876c[_0x6ec9('0x45')],_0x5c876c[_0x6ec9('0x41')]);_0x418f6d[_0x6ec9('0x47')]=_['intersection'](_0x5c876c['model'],qs[_0x6ec9('0x46')](_0x140649[_0x6ec9('0x41')][_0x6ec9('0x46')]));_0x418f6d[_0x6ec9('0x47')]=_0x418f6d[_0x6ec9('0x47')]['length']?_0x418f6d[_0x6ec9('0x47')]:_0x5c876c[_0x6ec9('0x45')];if(_0x140649['query'][_0x6ec9('0x56')]){_0x418f6d['include']=[{'all':!![]}];}_0x418f6d=_['merge']({},_0x418f6d,_0x140649['options']);return db[_0x6ec9('0x3d')][_0x6ec9('0x57')](_0x418f6d)['then'](handleEntityNotFound(_0x3a6230,null))['then'](respondWithResult(_0x3a6230,null))[_0x6ec9('0x28')](handleError(_0x3a6230,null));};exports[_0x6ec9('0x58')]=function(_0x1b190b,_0x19cea8,_0x43ec47){var _0x2b5520;return db['sequelize'][_0x6ec9('0x59')](function(_0x263f72){return db[_0x6ec9('0x3d')]['create'](_0x1b190b[_0x6ec9('0x5a')],{'raw':!![]})[_0x6ec9('0x1d')](function(_0x3a838a){_0x2b5520=_0x3a838a;return db['Network'][_0x6ec9('0x52')]({'where':{'type':_0x1b190b[_0x6ec9('0x5a')][_0x6ec9('0x40')]},'raw':!![]});})['then'](function(_0x1c5a19){if(_0x2b5520[_0x6ec9('0x40')][_0x6ec9('0x5b')]()=='STUN'){var _0x540738=fs['readFileSync'](path[_0x6ec9('0x5c')](config[_0x6ec9('0x5d')],_0x6ec9('0x5e')),_0x6ec9('0x5f'));var _0xc03ac8=ejs['render'](_0x540738,{'networks':_0x1c5a19||[]});fs[_0x6ec9('0x60')]('/etc/asterisk/stun_xcally.conf',_0xc03ac8);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x58'),{'module':'res_stun_monitor.so'});}else if(_0x2b5520[_0x6ec9('0x40')][_0x6ec9('0x5b')]()==_0x6ec9('0x62')){var _0x177889=fs['readFileSync'](path['join'](config[_0x6ec9('0x5d')],'server/files/templates/turn_multiple.ejs'),_0x6ec9('0x5f'));var _0x54f6b0=ejs[_0x6ec9('0x63')](_0x177889,{'networks':_0x1c5a19||[]});fs[_0x6ec9('0x60')](_0x6ec9('0x64'),_0x54f6b0);return respondWithRpcPromise(_0x6ec9('0x61'),'create',{'module':_0x6ec9('0x65')});}else{var _0x4bfadf=fs['readFileSync'](path['join'](config[_0x6ec9('0x5d')],'server/files/templates/network.ejs'),_0x6ec9('0x5f'));var _0x299dbb=ejs[_0x6ec9('0x63')](_0x4bfadf,{'networks':_0x1c5a19||[]});fs[_0x6ec9('0x60')](util[_0x6ec9('0x66')](_0x6ec9('0x67'),_0x1b190b['body'][_0x6ec9('0x40')][_0x6ec9('0x68')]()),_0x299dbb);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x58'),{'module':_0x6ec9('0x69')});}return null;})[_0x6ec9('0x1d')](function(){return _0x2b5520;});})[_0x6ec9('0x1d')](respondWithResult(_0x19cea8,0xc9))['catch'](handleError(_0x19cea8,null));};exports[_0x6ec9('0x34')]=function(_0x1f39d8,_0x368105,_0x41dfa7){var _0x4d54fd;return db[_0x6ec9('0x6a')][_0x6ec9('0x59')](function(_0xfe50d1){return db[_0x6ec9('0x3d')][_0x6ec9('0x57')]({'where':{'id':_0x1f39d8[_0x6ec9('0x55')]['id']}})[_0x6ec9('0x1d')](handleEntityNotFound(_0x368105,null))[_0x6ec9('0x1d')](saveUpdates(_0x1f39d8[_0x6ec9('0x5a')],null))[_0x6ec9('0x1d')](function(_0x3b29b9){if(_0x3b29b9){_0x4d54fd=_0x3b29b9;return db['Network'][_0x6ec9('0x52')]({'where':{'type':_0x4d54fd[_0x6ec9('0x40')]},'raw':!![]});}return null;})[_0x6ec9('0x1d')](function(_0x4c61ed){if(_0x4d54fd[_0x6ec9('0x40')]['toUpperCase']()=='STUN'){var _0x1118f1=fs[_0x6ec9('0x6b')](path['join'](config[_0x6ec9('0x5d')],_0x6ec9('0x5e')),_0x6ec9('0x5f'));var _0x1cf0d1=ejs['render'](_0x1118f1,{'networks':_0x4c61ed||[]});fs[_0x6ec9('0x60')]('/etc/asterisk/stun_xcally.conf',_0x1cf0d1);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x34'),{'module':_0x6ec9('0x65')});}else if(_0x4d54fd[_0x6ec9('0x40')][_0x6ec9('0x5b')]()==_0x6ec9('0x62')){var _0x1caec0=fs['readFileSync'](path['join'](config['root'],_0x6ec9('0x6c')),_0x6ec9('0x5f'));var _0x2b74b8=ejs[_0x6ec9('0x63')](_0x1caec0,{'networks':_0x4c61ed||[]});fs[_0x6ec9('0x60')](_0x6ec9('0x64'),_0x2b74b8);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x34'),{'module':_0x6ec9('0x65')});}else{var _0x2f6516=fs[_0x6ec9('0x6b')](path[_0x6ec9('0x5c')](config[_0x6ec9('0x5d')],_0x6ec9('0x6d')),_0x6ec9('0x5f'));var _0x2fc74c=ejs['render'](_0x2f6516,{'networks':_0x4c61ed||[]});fs[_0x6ec9('0x60')](util[_0x6ec9('0x66')]('/etc/asterisk/sip_xcally_%s.conf',_0x1f39d8['body'][_0x6ec9('0x40')][_0x6ec9('0x68')]()),_0x2fc74c);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x34'),{'module':_0x6ec9('0x69')});}return null;})[_0x6ec9('0x1d')](function(_0x3e9606){if(_0x3e9606){return _0x4d54fd;}return null;});})[_0x6ec9('0x1d')](respondWithResult(_0x368105,null))['catch'](handleError(_0x368105,null));};exports[_0x6ec9('0x35')]=function(_0x19e0e6,_0x5211dd,_0x309bca){var _0xfbe759;return db[_0x6ec9('0x3d')]['find']({'where':{'id':_0x19e0e6['params']['id']}})[_0x6ec9('0x1d')](function(_0x6df11b){_0xfbe759=_0x6df11b;return _0x6df11b;})['then'](handleEntityNotFound(_0x5211dd,null))[_0x6ec9('0x1d')](removeEntity(_0x5211dd,null))[_0x6ec9('0x1d')](function(){if(_0xfbe759){return db[_0x6ec9('0x3d')][_0x6ec9('0x52')]({'where':{'type':_0xfbe759[_0x6ec9('0x40')]},'raw':!![]});}})['then'](function(_0x4776c7){if(_0xfbe759[_0x6ec9('0x40')][_0x6ec9('0x5b')]()==_0x6ec9('0x6e')){var _0x1c894e=fs[_0x6ec9('0x6b')](path[_0x6ec9('0x5c')](config['root'],_0x6ec9('0x5e')),'utf8');var _0x471721=ejs[_0x6ec9('0x63')](_0x1c894e,{'networks':_0x4776c7||[]});fs[_0x6ec9('0x60')](_0x6ec9('0x6f'),_0x471721);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x35'),{'module':'res_stun_monitor.so'});}else if(_0xfbe759[_0x6ec9('0x40')][_0x6ec9('0x5b')]()==_0x6ec9('0x62')){var _0x4bf157=fs['readFileSync'](path['join'](config['root'],_0x6ec9('0x6c')),_0x6ec9('0x5f'));var _0x6da1dd=ejs['render'](_0x4bf157,{'networks':_0x4776c7||[]});fs[_0x6ec9('0x60')]('/etc/asterisk/turn_xcally.conf',_0x6da1dd);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x35'),{'module':_0x6ec9('0x65')});}else{var _0x2542a2=fs[_0x6ec9('0x6b')](path['join'](config['root'],_0x6ec9('0x6d')),'utf8');var _0x2139b6=ejs[_0x6ec9('0x63')](_0x2542a2,{'networks':_0x4776c7||[]});fs[_0x6ec9('0x60')](util['format'](_0x6ec9('0x67'),_0x19e0e6[_0x6ec9('0x5a')][_0x6ec9('0x40')]['toLowerCase']()),_0x2139b6);return respondWithRpcPromise(_0x6ec9('0x61'),_0x6ec9('0x35'),{'module':_0x6ec9('0x69')});}return null;})[_0x6ec9('0x28')](handleError(_0x5211dd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac55=['path','rimraf','../../config/environment','./network.attributes','exports','define','Network','network','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x18bb71,_0x5dc93e){var _0x450a1f=function(_0x40a644){while(--_0x40a644){_0x18bb71['push'](_0x18bb71['shift']());}};_0x450a1f(++_0x5dc93e);}(_0xac55,0x1c8));var _0x5ac5=function(_0x30ad89,_0x33bfea){_0x30ad89=_0x30ad89-0x0;var _0x2c579f=_0xac55[_0x30ad89];return _0x2c579f;};'use strict';var _=require(_0x5ac5('0x0'));var util=require(_0x5ac5('0x1'));var logger=require(_0x5ac5('0x2'))(_0x5ac5('0x3'));var moment=require('moment');var BPromise=require(_0x5ac5('0x4'));var rp=require(_0x5ac5('0x5'));var fs=require('fs');var path=require(_0x5ac5('0x6'));var rimraf=require(_0x5ac5('0x7'));var config=require(_0x5ac5('0x8'));var attributes=require(_0x5ac5('0x9'));module[_0x5ac5('0xa')]=function(_0x52e117,_0x57f615){return _0x52e117[_0x5ac5('0xb')](_0x5ac5('0xc'),attributes,{'tableName':_0x5ac5('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8cc8=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./network.attributes','exports','Network','network','lodash','util','../../config/logger'];(function(_0x38a936,_0x3960bb){var _0xbaac90=function(_0x324578){while(--_0x324578){_0x38a936['push'](_0x38a936['shift']());}};_0xbaac90(++_0x3960bb);}(_0x8cc8,0x177));var _0x88cc=function(_0x1c0520,_0x347fdd){_0x1c0520=_0x1c0520-0x0;var _0xa11c3e=_0x8cc8[_0x1c0520];return _0xa11c3e;};'use strict';var _=require(_0x88cc('0x0'));var util=require(_0x88cc('0x1'));var logger=require(_0x88cc('0x2'))(_0x88cc('0x3'));var moment=require(_0x88cc('0x4'));var BPromise=require(_0x88cc('0x5'));var rp=require(_0x88cc('0x6'));var fs=require('fs');var path=require(_0x88cc('0x7'));var rimraf=require(_0x88cc('0x8'));var config=require(_0x88cc('0x9'));var attributes=require(_0x88cc('0xa'));module[_0x88cc('0xb')]=function(_0x1683f9,_0x525362){return _0x1683f9['define'](_0x88cc('0xc'),attributes,{'tableName':_0x88cc('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x5f0526,_0x524085){var _0x58d71c=function(_0x55101d){while(--_0x55101d){_0x5f0526['push'](_0x5f0526['shift']());}};_0x58d71c(++_0x524085);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'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']('Network,\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);});});}
\ No newline at end of file
+var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x4de945,_0x2d4c16){var _0x579a7e=function(_0x270238){while(--_0x270238){_0x4de945['push'](_0x4de945['shift']());}};_0x579a7e(++_0x2d4c16);}(_0x9957,0x93));var _0x7995=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0x9957[_0x5b644e];return _0x49c6bf;};'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']('Network,\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);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd134=['/:id','/:id/dispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','getInteractions','/:id/users','getAgents','create','post','addDisposition','/:id/notify','notify','addApplications','addAgents','/:id/send','send','update','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/describe','isAuthenticated'];(function(_0x2b8077,_0x453634){var _0x308091=function(_0x426df7){while(--_0x426df7){_0x2b8077['push'](_0x2b8077['shift']());}};_0x308091(++_0x453634);}(_0xd134,0xc7));var _0x4d13=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0xd134[_0x12fc8d];return _0x3f9d04;};'use strict';var multer=require(_0x4d13('0x0'));var util=require(_0x4d13('0x1'));var path=require(_0x4d13('0x2'));var timeout=require(_0x4d13('0x3'));var express=require(_0x4d13('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x4d13('0x5'));var interaction=require(_0x4d13('0x6'));var config=require(_0x4d13('0x7'));var controller=require('./openchannelAccount.controller');router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x4d13('0x8')](_0x4d13('0x9'),auth[_0x4d13('0xa')](),controller['describe']);router[_0x4d13('0x8')](_0x4d13('0xb'),auth[_0x4d13('0xa')](),controller['show']);router['get'](_0x4d13('0xc'),auth['isAuthenticated'](),controller['getDispositions']);router[_0x4d13('0x8')](_0x4d13('0xd'),auth[_0x4d13('0xa')](),controller[_0x4d13('0xe')]);router['get'](_0x4d13('0xf'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x10')]);router['get']('/:id/interactions',auth[_0x4d13('0xa')](),controller[_0x4d13('0x11')]);router[_0x4d13('0x8')](_0x4d13('0x12'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x13')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4d13('0x14')]);router[_0x4d13('0x15')](_0x4d13('0xc'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x16')]);router[_0x4d13('0x15')]('/:id/canned_answers',auth[_0x4d13('0xa')](),controller['addAnswer']);router[_0x4d13('0x15')](_0x4d13('0x17'),controller[_0x4d13('0x18')]);router[_0x4d13('0x15')](_0x4d13('0xf'),auth['isAuthenticated'](),controller[_0x4d13('0x19')]);router['post'](_0x4d13('0x12'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x1a')]);router[_0x4d13('0x15')](_0x4d13('0x1b'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x1c')]);router['put'](_0x4d13('0xb'),auth['isAuthenticated'](),controller[_0x4d13('0x1d')]);router[_0x4d13('0x1e')](_0x4d13('0xb'),auth['isAuthenticated'](),controller['destroy']);router[_0x4d13('0x1e')](_0x4d13('0xc'),auth['isAuthenticated'](),controller[_0x4d13('0x1f')]);router[_0x4d13('0x1e')](_0x4d13('0xd'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x20')]);router[_0x4d13('0x1e')](_0x4d13('0x12'),auth[_0x4d13('0xa')](),controller[_0x4d13('0x21')]);module[_0x4d13('0x22')]=router;
\ No newline at end of file
+var _0xafcd=['removeAgents','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','get','isAuthenticated','index','describe','/:id','show','getDispositions','/:id/applications','/:id/interactions','getInteractions','/:id/users','getAgents','post','create','/:id/dispositions','addDisposition','/:id/canned_answers','addAnswer','/:id/notify','notify','addApplications','addAgents','/:id/send','send','put','delete','destroy','removeAnswers'];(function(_0x253f61,_0x1ccb64){var _0x1c0c12=function(_0x2a01c8){while(--_0x2a01c8){_0x253f61['push'](_0x253f61['shift']());}};_0x1c0c12(++_0x1ccb64);}(_0xafcd,0x161));var _0xdafc=function(_0x33f31b,_0x550ae9){_0x33f31b=_0x33f31b-0x0;var _0x33514e=_0xafcd[_0x33f31b];return _0x33514e;};'use strict';var multer=require('multer');var util=require(_0xdafc('0x0'));var path=require(_0xdafc('0x1'));var timeout=require(_0xdafc('0x2'));var express=require(_0xdafc('0x3'));var router=express[_0xdafc('0x4')]();var fs_extra=require(_0xdafc('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xdafc('0x6'));var config=require(_0xdafc('0x7'));var controller=require(_0xdafc('0x8'));router[_0xdafc('0x9')]('/',auth[_0xdafc('0xa')](),controller[_0xdafc('0xb')]);router[_0xdafc('0x9')]('/describe',auth['isAuthenticated'](),controller[_0xdafc('0xc')]);router[_0xdafc('0x9')](_0xdafc('0xd'),auth[_0xdafc('0xa')](),controller[_0xdafc('0xe')]);router[_0xdafc('0x9')]('/:id/dispositions',auth[_0xdafc('0xa')](),controller[_0xdafc('0xf')]);router['get']('/:id/canned_answers',auth[_0xdafc('0xa')](),controller['getAnswers']);router[_0xdafc('0x9')](_0xdafc('0x10'),auth[_0xdafc('0xa')](),controller['getApplications']);router['get'](_0xdafc('0x11'),auth['isAuthenticated'](),controller[_0xdafc('0x12')]);router['get'](_0xdafc('0x13'),auth['isAuthenticated'](),controller[_0xdafc('0x14')]);router[_0xdafc('0x15')]('/',auth['isAuthenticated'](),controller[_0xdafc('0x16')]);router[_0xdafc('0x15')](_0xdafc('0x17'),auth[_0xdafc('0xa')](),controller[_0xdafc('0x18')]);router['post'](_0xdafc('0x19'),auth[_0xdafc('0xa')](),controller[_0xdafc('0x1a')]);router[_0xdafc('0x15')](_0xdafc('0x1b'),controller[_0xdafc('0x1c')]);router[_0xdafc('0x15')](_0xdafc('0x10'),auth[_0xdafc('0xa')](),controller[_0xdafc('0x1d')]);router['post'](_0xdafc('0x13'),auth['isAuthenticated'](),controller[_0xdafc('0x1e')]);router[_0xdafc('0x15')](_0xdafc('0x1f'),auth['isAuthenticated'](),controller[_0xdafc('0x20')]);router[_0xdafc('0x21')](_0xdafc('0xd'),auth['isAuthenticated'](),controller['update']);router[_0xdafc('0x22')](_0xdafc('0xd'),auth[_0xdafc('0xa')](),controller[_0xdafc('0x23')]);router[_0xdafc('0x22')](_0xdafc('0x17'),auth[_0xdafc('0xa')](),controller['removeDispositions']);router[_0xdafc('0x22')](_0xdafc('0x19'),auth['isAuthenticated'](),controller[_0xdafc('0x24')]);router['delete']('/:id/users',auth[_0xdafc('0xa')](),controller[_0xdafc('0x25')]);module[_0xdafc('0x26')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42ba=['Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','randomstring','exports','STRING','generate','TEXT'];(function(_0x18a66a,_0x225b7a){var _0x16c6c0=function(_0x2222bc){while(--_0x2222bc){_0x18a66a['push'](_0x18a66a['shift']());}};_0x16c6c0(++_0x225b7a);}(_0x42ba,0x1c8));var _0xa42b=function(_0x11a179,_0x44c356){_0x11a179=_0x11a179-0x0;var _0x4f9c7c=_0x42ba[_0x11a179];return _0x4f9c7c;};'use strict';var Sequelize=require(_0xa42b('0x0'));var rs=require(_0xa42b('0x1'));module[_0xa42b('0x2')]={'name':{'type':Sequelize[_0xa42b('0x3')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0xa42b('0x3')]},'token':{'type':Sequelize[_0xa42b('0x3')],'defaultValue':function(){return rs[_0xa42b('0x4')]();}},'replyUri':{'type':Sequelize['STRING'],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0xa42b('0x3')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xa42b('0x5')],'defaultValue':function(){return _0xa42b('0x6');}},'notificationSound':{'type':Sequelize[_0xa42b('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xa42b('0x7')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xa42b('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0xa42b('0x3')]},'queueTransfer':{'type':Sequelize[_0xa42b('0x7')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xa42b('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xa42b('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xa42b('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xa42b('0x8')],'allowNull':!![],'defaultValue':null,'comment':_0xa42b('0x9')},'mandatoryDisposition':{'type':Sequelize[_0xa42b('0x7')],'defaultValue':![],'comment':_0xa42b('0xa'),'set':function(_0x5ee27d){if(!_0x5ee27d)this[_0xa42b('0xb')](_0xa42b('0xc'),null);this[_0xa42b('0xb')](_0xa42b('0xd'),_0x5ee27d);}}};
\ No newline at end of file
+var _0x851d=['setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','exports','STRING','generate','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue'];(function(_0x282c7f,_0x460e10){var _0x54bc87=function(_0x383aef){while(--_0x383aef){_0x282c7f['push'](_0x282c7f['shift']());}};_0x54bc87(++_0x460e10);}(_0x851d,0x87));var _0xd851=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x851d[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');var rs=require('randomstring');module[_0xd851('0x0')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'description':{'type':Sequelize['STRING']},'token':{'type':Sequelize[_0xd851('0x1')],'defaultValue':function(){return rs[_0xd851('0x2')]();}},'replyUri':{'type':Sequelize[_0xd851('0x1')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0xd851('0x1')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xd851('0x3')],'defaultValue':function(){return _0xd851('0x4');}},'notificationSound':{'type':Sequelize[_0xd851('0x5')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xd851('0x5')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xd851('0x6')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0xd851('0x1')]},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xd851('0x5')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xd851('0x6')],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0xd851('0x5')],'defaultValue':![],'comment':_0xd851('0x7'),'set':function(_0xedf01c){if(!_0xedf01c)this[_0xd851('0x8')](_0xd851('0x9'),null);this[_0xd851('0x8')](_0xd851('0xa'),_0xedf01c);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9c7=['set','Content-Range','apply','save','update','destroy','get','OpenchannelAccounts','UserProfileResource','name','send','index','Pause','mandatoryDispositionPause','map','OpenchannelAccount','rawAttributes','fieldName','key','keys','query','filters','intersection','model','fields','attributes','length','offset','sort','where','merge','type','filter','includeAll','include','findAll','rows','show','params','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','OpenchannelAccountId','Disposition','findOne','hasOwnProperty','nolimit','order','removeDispositions','addAnswer','getAnswers','CannedAnswer','pick','removeAnswers','openchannel','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','DESC','Applications','List','account','list','applications','orderBy','asc','contact','firstName','lastName','threadId','OpenchannelInteraction','externalUrl','spread','messageId','interaction','created','autoclose','push','OpenchannelMessage','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','Start','EventManager','notify','addApplications','sequelize','OpenchannelApplication','bulkCreate','findAndCountAll','priority','getApplications','getInteractions','Contact','Owner','fullname','internal','Tags','tag','addAgents','ids','omit','emit','userOpenchannelAccount:save','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','Messages','dataValues','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','socket.io-emitter','./openchannelAccount.socket','register','jayson/promise','http','client','request','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','json','limit','undefined','count'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0xd9c7,0x8a));var _0x7d9c=function(_0x4ae2fb,_0x1c1c67){_0x4ae2fb=_0x4ae2fb-0x0;var _0x4f5268=_0xd9c7[_0x4ae2fb];return _0x4f5268;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7d9c('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7d9c('0x1'));var moment=require(_0x7d9c('0x2'));var BPromise=require(_0x7d9c('0x3'));var Mustache=require(_0x7d9c('0x4'));var util=require(_0x7d9c('0x5'));var path=require(_0x7d9c('0x6'));var sox=require(_0x7d9c('0x7'));var csv=require(_0x7d9c('0x8'));var ejs=require(_0x7d9c('0x9'));var fs=require('fs');var fs_extra=require(_0x7d9c('0xa'));var _=require(_0x7d9c('0xb'));var squel=require(_0x7d9c('0xc'));var crypto=require('crypto');var jsforce=require(_0x7d9c('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7d9c('0xe'));var Redis=require(_0x7d9c('0xf'));var authService=require(_0x7d9c('0x10'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7d9c('0x11'));var logger=require(_0x7d9c('0x12'))('api');var utils=require(_0x7d9c('0x13'));var config=require(_0x7d9c('0x14'));var licenseUtil=require(_0x7d9c('0x15'));var db=require('../../mysqldb')['db'];config[_0x7d9c('0x16')]=_[_0x7d9c('0x17')](config[_0x7d9c('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x7d9c('0x18'))(new Redis(config[_0x7d9c('0x16')]));require(_0x7d9c('0x19'))[_0x7d9c('0x1a')](socket);var jayson=require(_0x7d9c('0x1b'));var client=jayson['client'][_0x7d9c('0x1c')]({'port':0x232c});var client9002=jayson[_0x7d9c('0x1d')][_0x7d9c('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x49803a,_0x3f6c69,_0x72bb04,_0x44ef2e){return new BPromise(function(_0x9d1126,_0x1e8d5e){var _0x503c05=_0x44ef2e||client;return _0x503c05[_0x7d9c('0x1e')](_0x49803a,_0x72bb04)[_0x7d9c('0x1f')](function(_0x4a83a7){logger[_0x7d9c('0x20')](_0x7d9c('0x21'),_0x3f6c69,_0x7d9c('0x22'));logger['debug'](_0x7d9c('0x23'),_0x3f6c69,_0x7d9c('0x22'),JSON[_0x7d9c('0x24')](_0x4a83a7));if(_0x4a83a7[_0x7d9c('0x25')]){if(_0x4a83a7[_0x7d9c('0x25')][_0x7d9c('0x26')]===0x1f4){logger['error'](_0x7d9c('0x21'),_0x3f6c69,_0x4a83a7['error'][_0x7d9c('0x27')]);return _0x1e8d5e(_0x4a83a7[_0x7d9c('0x25')][_0x7d9c('0x27')]);}logger[_0x7d9c('0x25')](_0x7d9c('0x21'),_0x3f6c69,_0x4a83a7[_0x7d9c('0x25')][_0x7d9c('0x27')]);return _0x9d1126(_0x4a83a7['error'][_0x7d9c('0x27')]);}else{logger[_0x7d9c('0x20')]('OpenchannelAccount,\x20%s,\x20%s',_0x3f6c69,_0x7d9c('0x22'));_0x9d1126(_0x4a83a7[_0x7d9c('0x28')]['message']);}})[_0x7d9c('0x29')](function(_0x57d223){logger[_0x7d9c('0x25')]('OpenchannelAccount,\x20%s,\x20%s',_0x3f6c69,_0x57d223);_0x1e8d5e(_0x57d223);});});}function respondWithStatusCode(_0x322d39,_0xe86e67){_0xe86e67=_0xe86e67||0xcc;return function(_0x16587b){if(_0x16587b){return _0x322d39[_0x7d9c('0x2a')](_0xe86e67);}return _0x322d39['status'](_0xe86e67)[_0x7d9c('0x2b')]();};}function respondWithResult(_0xaaadad,_0x254964){_0x254964=_0x254964||0xc8;return function(_0x26e389){if(_0x26e389){return _0xaaadad[_0x7d9c('0x2c')](_0x254964)[_0x7d9c('0x2d')](_0x26e389);}};}function respondWithFilteredResult(_0x2a8bf9,_0x294914){return function(_0x11873b){if(_0x11873b){var _0xc6f6af=typeof _0x294914['offset']==='undefined'&&typeof _0x294914[_0x7d9c('0x2e')]===_0x7d9c('0x2f');var _0x4a98ad=_0x11873b['count'];var _0x29311e=_0xc6f6af?0x0:_0x294914['offset'];var _0xe04ff5=_0xc6f6af?_0x11873b[_0x7d9c('0x30')]:_0x294914['offset']+_0x294914[_0x7d9c('0x2e')];var _0x722506;if(_0xe04ff5>=_0x4a98ad){_0xe04ff5=_0x4a98ad;_0x722506=0xc8;}else{_0x722506=0xce;}_0x2a8bf9['status'](_0x722506);return _0x2a8bf9[_0x7d9c('0x31')](_0x7d9c('0x32'),_0x29311e+'-'+_0xe04ff5+'/'+_0x4a98ad)[_0x7d9c('0x2d')](_0x11873b);}return null;};}function patchUpdates(_0x55ce92){return function(_0x1f2335){try{jsonpatch[_0x7d9c('0x33')](_0x1f2335,_0x55ce92,!![]);}catch(_0x1e80af){return BPromise['reject'](_0x1e80af);}return _0x1f2335[_0x7d9c('0x34')]();};}function saveUpdates(_0x4251ac,_0x945ccf){return function(_0xc87146){if(_0xc87146){return _0xc87146[_0x7d9c('0x35')](_0x4251ac)[_0x7d9c('0x1f')](function(_0x41b301){return _0x41b301;});}return null;};}function removeEntity(_0x14c7c6,_0x37572b){return function(_0x4072d8){if(_0x4072d8){return _0x4072d8[_0x7d9c('0x36')]()[_0x7d9c('0x1f')](function(){var _0x469f1d=_0x4072d8[_0x7d9c('0x37')]({'plain':!![]});var _0x5eb769=_0x7d9c('0x38');return db[_0x7d9c('0x39')]['destroy']({'where':{'type':_0x5eb769,'resourceId':_0x469f1d['id']}})[_0x7d9c('0x1f')](function(){return _0x4072d8;});})[_0x7d9c('0x1f')](function(){_0x14c7c6[_0x7d9c('0x2c')](0xcc)[_0x7d9c('0x2b')]();});}};}function handleEntityNotFound(_0x1b4b94,_0x4f8d2){return function(_0xa11842){if(!_0xa11842){_0x1b4b94['sendStatus'](0x194);}return _0xa11842;};}function handleError(_0x1f2e8a,_0x2ebcac){_0x2ebcac=_0x2ebcac||0x1f4;return function(_0x169638){logger['error'](_0x169638['stack']);if(_0x169638[_0x7d9c('0x3a')]){delete _0x169638[_0x7d9c('0x3a')];}_0x1f2e8a[_0x7d9c('0x2c')](_0x2ebcac)[_0x7d9c('0x3b')](_0x169638);};}exports[_0x7d9c('0x3c')]=function(_0x20e299,_0x3e26db){var _0x194110={'include':[{'model':db[_0x7d9c('0x3d')],'as':_0x7d9c('0x3e')}]},_0x1f3795={},_0x25262b={'count':0x0,'rows':[]};var _0x164a7a=_[_0x7d9c('0x3f')](db[_0x7d9c('0x40')][_0x7d9c('0x41')],function(_0x4c3023){return{'name':_0x4c3023[_0x7d9c('0x42')],'type':_0x4c3023['type'][_0x7d9c('0x43')]};});_0x1f3795['model']=_[_0x7d9c('0x3f')](_0x164a7a,_0x7d9c('0x3a'));_0x1f3795['query']=_[_0x7d9c('0x44')](_0x20e299[_0x7d9c('0x45')]);_0x1f3795[_0x7d9c('0x46')]=_[_0x7d9c('0x47')](_0x1f3795[_0x7d9c('0x48')],_0x1f3795[_0x7d9c('0x45')]);_0x194110['attributes']=_['intersection'](_0x1f3795[_0x7d9c('0x48')],qs['fields'](_0x20e299[_0x7d9c('0x45')][_0x7d9c('0x49')]));_0x194110[_0x7d9c('0x4a')]=_0x194110[_0x7d9c('0x4a')][_0x7d9c('0x4b')]?_0x194110[_0x7d9c('0x4a')]:_0x1f3795[_0x7d9c('0x48')];if(!_0x20e299['query']['hasOwnProperty']('nolimit')){_0x194110[_0x7d9c('0x2e')]=qs['limit'](_0x20e299[_0x7d9c('0x45')][_0x7d9c('0x2e')]);_0x194110[_0x7d9c('0x4c')]=qs[_0x7d9c('0x4c')](_0x20e299[_0x7d9c('0x45')]['offset']);}_0x194110['order']=qs[_0x7d9c('0x4d')](_0x20e299[_0x7d9c('0x45')][_0x7d9c('0x4d')]);_0x194110[_0x7d9c('0x4e')]=qs[_0x7d9c('0x46')](_['pick'](_0x20e299['query'],_0x1f3795[_0x7d9c('0x46')]),_0x164a7a);if(_0x20e299[_0x7d9c('0x45')]['filter']){_0x194110[_0x7d9c('0x4e')]=_[_0x7d9c('0x4f')](_0x194110[_0x7d9c('0x4e')],{'$or':_['map'](_0x164a7a,function(_0x28ab9d){if(_0x28ab9d[_0x7d9c('0x50')]!=='VIRTUAL'){var _0x518c99={};_0x518c99[_0x28ab9d[_0x7d9c('0x3a')]]={'$like':'%'+_0x20e299[_0x7d9c('0x45')][_0x7d9c('0x51')]+'%'};return _0x518c99;}})});}_0x194110=_[_0x7d9c('0x4f')]({},_0x194110,_0x20e299['options']);var _0x4ed2de={'where':_0x194110[_0x7d9c('0x4e')]};return db['OpenchannelAccount'][_0x7d9c('0x30')](_0x4ed2de)[_0x7d9c('0x1f')](function(_0x587bac){_0x25262b[_0x7d9c('0x30')]=_0x587bac;if(_0x20e299[_0x7d9c('0x45')][_0x7d9c('0x52')]){_0x194110[_0x7d9c('0x53')]=[{'all':!![]}];}return db[_0x7d9c('0x40')][_0x7d9c('0x54')](_0x194110);})[_0x7d9c('0x1f')](function(_0x132eda){_0x25262b[_0x7d9c('0x55')]=_0x132eda;return _0x25262b;})[_0x7d9c('0x1f')](respondWithFilteredResult(_0x3e26db,_0x194110))['catch'](handleError(_0x3e26db,null));};exports[_0x7d9c('0x56')]=function(_0x249515,_0x3b3301){var _0x4ab163={'raw':![],'where':{'id':_0x249515[_0x7d9c('0x57')]['id']},'include':[{'model':db[_0x7d9c('0x3d')],'as':'mandatoryDispositionPause'}]},_0x590a69={};_0x590a69[_0x7d9c('0x48')]=_['keys'](db[_0x7d9c('0x40')]['rawAttributes']);_0x590a69['query']=_[_0x7d9c('0x44')](_0x249515[_0x7d9c('0x45')]);_0x590a69[_0x7d9c('0x46')]=_[_0x7d9c('0x47')](_0x590a69[_0x7d9c('0x48')],_0x590a69[_0x7d9c('0x45')]);_0x4ab163['attributes']=_[_0x7d9c('0x47')](_0x590a69[_0x7d9c('0x48')],qs['fields'](_0x249515[_0x7d9c('0x45')][_0x7d9c('0x49')]));_0x4ab163[_0x7d9c('0x4a')]=_0x4ab163['attributes'][_0x7d9c('0x4b')]?_0x4ab163[_0x7d9c('0x4a')]:_0x590a69[_0x7d9c('0x48')];if(_0x249515[_0x7d9c('0x45')][_0x7d9c('0x52')]){_0x4ab163[_0x7d9c('0x53')]=[{'all':!![]}];}_0x4ab163=_['merge']({},_0x4ab163,_0x249515[_0x7d9c('0x58')]);return db['OpenchannelAccount']['find'](_0x4ab163)[_0x7d9c('0x1f')](handleEntityNotFound(_0x3b3301,null))[_0x7d9c('0x1f')](respondWithResult(_0x3b3301,null))[_0x7d9c('0x29')](handleError(_0x3b3301,null));};exports[_0x7d9c('0x59')]=function(_0x945470,_0x51c5c7){return db[_0x7d9c('0x40')][_0x7d9c('0x59')](_0x945470[_0x7d9c('0x5a')],{})['then'](function(_0x5d5f13){var _0x23ed8e=_0x945470[_0x7d9c('0x5b')][_0x7d9c('0x37')]({'plain':!![]});if(!_0x23ed8e)throw new Error(_0x7d9c('0x5c'));if(_0x23ed8e[_0x7d9c('0x5d')]==='user'){var _0x2e33b3=_0x5d5f13[_0x7d9c('0x37')]({'plain':!![]});var _0x4eee44=_0x7d9c('0x38');return db[_0x7d9c('0x5e')][_0x7d9c('0x5f')]({'where':{'name':_0x4eee44,'userProfileId':_0x23ed8e[_0x7d9c('0x60')]},'raw':!![]})['then'](function(_0x4dffc5){if(_0x4dffc5&&_0x4dffc5[_0x7d9c('0x61')]===0x0){return db[_0x7d9c('0x39')]['create']({'name':_0x2e33b3[_0x7d9c('0x3a')],'resourceId':_0x2e33b3['id'],'type':_0x4dffc5[_0x7d9c('0x3a')],'sectionId':_0x4dffc5['id']},{})[_0x7d9c('0x1f')](function(){return _0x5d5f13;});}else{return _0x5d5f13;}})[_0x7d9c('0x29')](function(_0x327794){logger[_0x7d9c('0x25')](_0x7d9c('0x62'),_0x327794);throw _0x327794;});}return _0x5d5f13;})[_0x7d9c('0x1f')](respondWithResult(_0x51c5c7,0xc9))[_0x7d9c('0x29')](handleError(_0x51c5c7,null));};exports[_0x7d9c('0x35')]=function(_0x423253,_0x1433f5){if(_0x423253['body']['id']){delete _0x423253['body']['id'];}return db[_0x7d9c('0x40')]['find']({'where':{'id':_0x423253['params']['id']},'include':[{'model':db[_0x7d9c('0x3d')],'as':_0x7d9c('0x3e')}]})['then'](handleEntityNotFound(_0x1433f5,null))[_0x7d9c('0x1f')](saveUpdates(_0x423253[_0x7d9c('0x5a')],null))['then'](respondWithResult(_0x1433f5,null))[_0x7d9c('0x29')](handleError(_0x1433f5,null));};exports[_0x7d9c('0x36')]=function(_0x126bbe,_0x53bfc9){return db['OpenchannelAccount']['find']({'where':{'id':_0x126bbe[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x53bfc9,null))[_0x7d9c('0x1f')](removeEntity(_0x53bfc9,null))[_0x7d9c('0x29')](handleError(_0x53bfc9,null));};exports[_0x7d9c('0x63')]=function(_0x41fae3,_0x2391b4){return db[_0x7d9c('0x40')][_0x7d9c('0x63')]()['then'](respondWithResult(_0x2391b4,null))[_0x7d9c('0x29')](handleError(_0x2391b4,null));};exports[_0x7d9c('0x64')]=function(_0x1019ec,_0x2853b3,_0x6b672c){if(_0x1019ec['body']['id']){delete _0x1019ec[_0x7d9c('0x5a')]['id'];}return db[_0x7d9c('0x40')][_0x7d9c('0x5f')]({'where':{'id':_0x1019ec[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x2853b3,null))[_0x7d9c('0x1f')](function(_0x498524){if(_0x498524){_0x1019ec[_0x7d9c('0x5a')][_0x7d9c('0x65')]=_0x498524['id'];return db[_0x7d9c('0x66')][_0x7d9c('0x59')](_0x1019ec['body']);}})['then'](respondWithResult(_0x2853b3,null))[_0x7d9c('0x29')](handleError(_0x2853b3,null));};exports['getDispositions']=function(_0x9fcf11,_0x1bb235,_0x39d3e0){var _0x3db505={'raw':![],'where':{}};var _0xef4c78={};var _0x205faa={'count':0x0,'rows':[]};return db[_0x7d9c('0x40')][_0x7d9c('0x67')]({'where':{'id':_0x9fcf11[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x1bb235,null))[_0x7d9c('0x1f')](function(_0x2e345a){if(_0x2e345a){_0xef4c78['model']=_[_0x7d9c('0x44')](db['Disposition'][_0x7d9c('0x41')]);_0xef4c78['query']=_['keys'](_0x9fcf11[_0x7d9c('0x45')]);_0xef4c78[_0x7d9c('0x46')]=_['intersection'](_0xef4c78['model'],_0xef4c78[_0x7d9c('0x45')]);_0x3db505[_0x7d9c('0x4a')]=_[_0x7d9c('0x47')](_0xef4c78[_0x7d9c('0x48')],qs[_0x7d9c('0x49')](_0x9fcf11['query'][_0x7d9c('0x49')]));_0x3db505[_0x7d9c('0x4a')]=_0x3db505[_0x7d9c('0x4a')][_0x7d9c('0x4b')]?_0x3db505['attributes']:_0xef4c78[_0x7d9c('0x48')];if(!_0x9fcf11[_0x7d9c('0x45')][_0x7d9c('0x68')](_0x7d9c('0x69'))){_0x3db505[_0x7d9c('0x2e')]=qs[_0x7d9c('0x2e')](_0x9fcf11['query'][_0x7d9c('0x2e')]);_0x3db505['offset']=qs['offset'](_0x9fcf11['query'][_0x7d9c('0x4c')]);}_0x3db505[_0x7d9c('0x6a')]=qs['sort'](_0x9fcf11[_0x7d9c('0x45')][_0x7d9c('0x4d')]);_0x3db505[_0x7d9c('0x4e')]=qs[_0x7d9c('0x46')](_['pick'](_0x9fcf11[_0x7d9c('0x45')],_0xef4c78['filters']));_0x3db505[_0x7d9c('0x4e')][_0x7d9c('0x65')]=_0x2e345a['id'];if(_0x9fcf11[_0x7d9c('0x45')][_0x7d9c('0x51')]){_0x3db505[_0x7d9c('0x4e')]=_[_0x7d9c('0x4f')](_0x3db505[_0x7d9c('0x4e')],{'$or':_[_0x7d9c('0x3f')](_0x3db505[_0x7d9c('0x4a')],function(_0x4907c3){var _0x26e7d1={};_0x26e7d1[_0x4907c3]={'$like':'%'+_0x9fcf11[_0x7d9c('0x45')][_0x7d9c('0x51')]+'%'};return _0x26e7d1;})});}_0x3db505=_[_0x7d9c('0x4f')]({},_0x3db505,_0x9fcf11['options']);return db[_0x7d9c('0x66')][_0x7d9c('0x30')]({'where':_0x3db505[_0x7d9c('0x4e')]})['then'](function(_0x4a9438){_0x205faa[_0x7d9c('0x30')]=_0x4a9438;if(_0x9fcf11[_0x7d9c('0x45')][_0x7d9c('0x52')]){_0x3db505[_0x7d9c('0x53')]=[{'all':!![]}];}return db[_0x7d9c('0x66')][_0x7d9c('0x54')](_0x3db505);})['then'](function(_0x104b79){_0x205faa[_0x7d9c('0x55')]=_0x104b79;return _0x205faa;});}})[_0x7d9c('0x1f')](respondWithFilteredResult(_0x1bb235,_0x3db505))[_0x7d9c('0x29')](handleError(_0x1bb235,null));};exports['removeDispositions']=function(_0x433d83,_0x58e373,_0x49d671){return db[_0x7d9c('0x40')][_0x7d9c('0x5f')]({'where':{'id':_0x433d83[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x58e373,null))[_0x7d9c('0x1f')](function(_0x1b3df8){if(_0x1b3df8){return _0x1b3df8[_0x7d9c('0x6b')](_0x433d83[_0x7d9c('0x45')]['ids']);}})['then'](respondWithStatusCode(_0x58e373,null))[_0x7d9c('0x29')](handleError(_0x58e373,null));};exports[_0x7d9c('0x6c')]=function(_0x10236f,_0xac7faa,_0x449d84){if(_0x10236f['body']['id']){delete _0x10236f[_0x7d9c('0x5a')]['id'];}return db[_0x7d9c('0x40')][_0x7d9c('0x5f')]({'where':{'id':_0x10236f[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0xac7faa,null))[_0x7d9c('0x1f')](function(_0x2c6ad8){if(_0x2c6ad8){_0x10236f[_0x7d9c('0x5a')][_0x7d9c('0x65')]=_0x2c6ad8['id'];return db['CannedAnswer'][_0x7d9c('0x59')](_0x10236f[_0x7d9c('0x5a')]);}})[_0x7d9c('0x1f')](respondWithResult(_0xac7faa,null))[_0x7d9c('0x29')](handleError(_0xac7faa,null));};exports[_0x7d9c('0x6d')]=function(_0x208e59,_0x523a70,_0x2f922c){var _0x1cc0c9={'raw':![],'where':{}};var _0xb05a48={};var _0x440184={'count':0x0,'rows':[]};return db['OpenchannelAccount']['findOne']({'where':{'id':_0x208e59[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x523a70,null))['then'](function(_0x103c91){if(_0x103c91){_0xb05a48[_0x7d9c('0x48')]=_['keys'](db[_0x7d9c('0x6e')][_0x7d9c('0x41')]);_0xb05a48[_0x7d9c('0x45')]=_['keys'](_0x208e59['query']);_0xb05a48[_0x7d9c('0x46')]=_[_0x7d9c('0x47')](_0xb05a48[_0x7d9c('0x48')],_0xb05a48[_0x7d9c('0x45')]);_0x1cc0c9[_0x7d9c('0x4a')]=_[_0x7d9c('0x47')](_0xb05a48['model'],qs[_0x7d9c('0x49')](_0x208e59['query'][_0x7d9c('0x49')]));_0x1cc0c9[_0x7d9c('0x4a')]=_0x1cc0c9[_0x7d9c('0x4a')][_0x7d9c('0x4b')]?_0x1cc0c9[_0x7d9c('0x4a')]:_0xb05a48['model'];if(!_0x208e59[_0x7d9c('0x45')][_0x7d9c('0x68')](_0x7d9c('0x69'))){_0x1cc0c9[_0x7d9c('0x2e')]=qs[_0x7d9c('0x2e')](_0x208e59['query'][_0x7d9c('0x2e')]);_0x1cc0c9['offset']=qs[_0x7d9c('0x4c')](_0x208e59['query'][_0x7d9c('0x4c')]);}_0x1cc0c9[_0x7d9c('0x6a')]=qs[_0x7d9c('0x4d')](_0x208e59[_0x7d9c('0x45')]['sort']);_0x1cc0c9['where']=qs[_0x7d9c('0x46')](_[_0x7d9c('0x6f')](_0x208e59[_0x7d9c('0x45')],_0xb05a48[_0x7d9c('0x46')]));_0x1cc0c9['where'][_0x7d9c('0x65')]=_0x103c91['id'];if(_0x208e59['query'][_0x7d9c('0x51')]){_0x1cc0c9[_0x7d9c('0x4e')]=_[_0x7d9c('0x4f')](_0x1cc0c9['where'],{'$or':_[_0x7d9c('0x3f')](_0x1cc0c9[_0x7d9c('0x4a')],function(_0x8fdd83){var _0x4cd899={};_0x4cd899[_0x8fdd83]={'$like':'%'+_0x208e59[_0x7d9c('0x45')][_0x7d9c('0x51')]+'%'};return _0x4cd899;})});}_0x1cc0c9=_[_0x7d9c('0x4f')]({},_0x1cc0c9,_0x208e59[_0x7d9c('0x58')]);return db[_0x7d9c('0x6e')][_0x7d9c('0x30')]({'where':_0x1cc0c9[_0x7d9c('0x4e')]})['then'](function(_0x45bfc0){_0x440184[_0x7d9c('0x30')]=_0x45bfc0;if(_0x208e59[_0x7d9c('0x45')][_0x7d9c('0x52')]){_0x1cc0c9['include']=[{'all':!![]}];}return db[_0x7d9c('0x6e')][_0x7d9c('0x54')](_0x1cc0c9);})[_0x7d9c('0x1f')](function(_0x5974c7){_0x440184[_0x7d9c('0x55')]=_0x5974c7;return _0x440184;});}})[_0x7d9c('0x1f')](respondWithFilteredResult(_0x523a70,_0x1cc0c9))['catch'](handleError(_0x523a70,null));};exports['removeAnswers']=function(_0x3d5086,_0x204a13,_0x1defa0){return db[_0x7d9c('0x40')]['find']({'where':{'id':_0x3d5086[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x204a13,null))[_0x7d9c('0x1f')](function(_0x39b809){if(_0x39b809){return _0x39b809[_0x7d9c('0x70')](_0x3d5086['query']['ids']);}})[_0x7d9c('0x1f')](respondWithStatusCode(_0x204a13,null))[_0x7d9c('0x29')](handleError(_0x204a13,null));};exports['notify']=function(_0x8b7f04,_0x360136,_0x138a87){var _0x1bc40f={'body':_0x8b7f04[_0x7d9c('0x5a')],'channel':_0x7d9c('0x71')};var _0x60b070=[];var _0x39eebf=[];var _0x417b64={};var _0x46351a=![];return db[_0x7d9c('0x72')]['describe']()['then'](function(_0x39f8a0){if(!_0x39f8a0){throw new db[(_0x7d9c('0x73'))][(_0x7d9c('0x74'))](_0x7d9c('0x75'));}_0x60b070=_[_0x7d9c('0x76')](_[_0x7d9c('0x44')](_0x39f8a0),[_0x7d9c('0x77'),_0x7d9c('0x78')]);_0x39eebf=_['difference'](_[_0x7d9c('0x44')](_0x39f8a0),[_0x7d9c('0x77'),_0x7d9c('0x78'),_0x7d9c('0x79'),_0x7d9c('0x7a')]);if(_0x8b7f04[_0x7d9c('0x5a')]['id']){delete _0x8b7f04[_0x7d9c('0x5a')]['id'];}if(_[_0x7d9c('0x7b')](_0x8b7f04['body'][_0x7d9c('0x7c')])){throw new db[(_0x7d9c('0x73'))]['ValidationError'](_0x7d9c('0x7d'));}if(_[_0x7d9c('0x7b')](_0x8b7f04['body']['body'])||_0x8b7f04[_0x7d9c('0x5a')]['body']===''){throw new db[(_0x7d9c('0x73'))]['ValidationError'](_0x7d9c('0x7e'));}if(_[_0x7d9c('0x7b')](_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x7f')])){throw new db[(_0x7d9c('0x73'))][(_0x7d9c('0x74'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x39eebf);}if(!_[_0x7d9c('0x80')](_0x39eebf,_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x7f')])){throw new db['Sequelize'][(_0x7d9c('0x74'))](_0x7d9c('0x81')+_0x39eebf);}_0x417b64[_0x8b7f04[_0x7d9c('0x5a')]['mapKey']]=_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x7c')];})[_0x7d9c('0x1f')](function(){return db[_0x7d9c('0x40')][_0x7d9c('0x5f')]({'where':{'id':_0x8b7f04[_0x7d9c('0x57')]['id']},'include':[{'model':db[_0x7d9c('0x82')],'as':'List','include':[{'model':db[_0x7d9c('0x72')],'as':_0x7d9c('0x83'),'where':_0x417b64,'limit':0x1,'order':[[_0x7d9c('0x78'),_0x7d9c('0x84')]]}]},{'model':db['OpenchannelApplication'],'as':_0x7d9c('0x85')}]});})[_0x7d9c('0x1f')](handleEntityNotFound(_0x360136,null))[_0x7d9c('0x1f')](function(_0x714904){if(_0x714904&&_0x714904[_0x7d9c('0x86')]){_0x1bc40f[_0x7d9c('0x87')]=_0x714904;_0x1bc40f['applications']=_0x714904[_0x7d9c('0x85')];_0x1bc40f[_0x7d9c('0x88')]=_0x714904[_0x7d9c('0x86')];_0x1bc40f[_0x7d9c('0x89')]=_[_0x7d9c('0x8a')](_0x1bc40f[_0x7d9c('0x89')],['priority'],[_0x7d9c('0x8b')]);if(_0x1bc40f[_0x7d9c('0x87')][_0x7d9c('0x85')]){delete _0x1bc40f[_0x7d9c('0x87')][_0x7d9c('0x85')];}if(_0x1bc40f[_0x7d9c('0x87')][_0x7d9c('0x86')]&&_0x1bc40f['account'][_0x7d9c('0x86')]['Contacts'][_0x7d9c('0x4b')]){return _0x1bc40f[_0x7d9c('0x87')]['List']['Contacts'][0x0];}var _0x1f9e6f=_['defaults'](_0x8b7f04[_0x7d9c('0x5a')],{'firstName':_0x8b7f04['body'][_0x7d9c('0x7c')],'ListId':_0x714904[_0x7d9c('0x7a')]});_0x1f9e6f[_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x7f')]]=_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x7c')];return db[_0x7d9c('0x72')][_0x7d9c('0x59')](_0x1f9e6f,{'fields':_0x60b070,'raw':!![]});}})['then'](handleEntityNotFound(_0x360136,null))[_0x7d9c('0x1f')](function(_0xd325d9){_0x1bc40f[_0x7d9c('0x8c')]=_0xd325d9;if(_0xd325d9){var _0x341a70={'ContactId':_0xd325d9['id'],'OpenchannelAccountId':_0x8b7f04[_0x7d9c('0x57')]['id'],'from':(_0xd325d9[_0x7d9c('0x8d')]||'')+'\x20'+(_0xd325d9[_0x7d9c('0x8e')]||'')};var _0xb9bab2={'OpenchannelAccountId':_0x8b7f04[_0x7d9c('0x57')]['id'],'closed':![]};if(_0x8b7f04['body'][_0x7d9c('0x8f')]){_0xb9bab2[_0x7d9c('0x8f')]=_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x8f')];return db[_0x7d9c('0x90')][_0x7d9c('0x5f')]({'where':_0xb9bab2})['then'](function(_0x242dfd){if(_0x242dfd){return[_0x242dfd,![]];}_0x341a70[_0x7d9c('0x8f')]=_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x8f')];_0x341a70[_0x7d9c('0x91')]=_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x91')];return db[_0x7d9c('0x90')][_0x7d9c('0x59')](_0x341a70)[_0x7d9c('0x1f')](function(_0x22f735){return[_0x22f735,!![]];});});}else{_0xb9bab2[_0x7d9c('0x8f')]=null;}_0xb9bab2['ContactId']=_0xd325d9['id'];return db[_0x7d9c('0x90')][_0x7d9c('0x5f')]({'where':_0xb9bab2})[_0x7d9c('0x1f')](function(_0x27c4dc){if(_0x27c4dc){return[_0x27c4dc,![]];}return db[_0x7d9c('0x90')][_0x7d9c('0x59')](_0x341a70)['then'](function(_0x235b50){return[_0x235b50,!![]];});});}})[_0x7d9c('0x92')](function(_0x3d9843,_0x2567a4){if(_0x3d9843){_0x46351a=_0x2567a4;if(!_0x2567a4){var _0x4dad2e={'from':(_0x1bc40f[_0x7d9c('0x8c')][_0x7d9c('0x8d')]||'')+'\x20'+(_0x1bc40f[_0x7d9c('0x8c')][_0x7d9c('0x8e')]||'')};if(_0x8b7f04['body']['threadId']&&_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x93')]&&_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x8f')]!=_0x8b7f04[_0x7d9c('0x5a')][_0x7d9c('0x93')]){_0x4dad2e['threadId']=_0x8b7f04[_0x7d9c('0x5a')]['messageId'];}return _0x3d9843[_0x7d9c('0x35')](_0x4dad2e);}else{return _0x3d9843;}}})[_0x7d9c('0x1f')](function(_0x13f74b){_0x1bc40f[_0x7d9c('0x94')]=_0x13f74b['get']({'plain':!![]});_0x1bc40f['interaction'][_0x7d9c('0x95')]=_0x46351a;if(_0x1bc40f['interaction'][_0x7d9c('0x95')]){if(_0x1bc40f[_0x7d9c('0x87')][_0x7d9c('0x96')]){_0x1bc40f[_0x7d9c('0x89')][_0x7d9c('0x97')]({'id':0x0,'priority':_0x1bc40f[_0x7d9c('0x89')][_0x7d9c('0x4b')]+0x1,'app':'close','appdata':'unmanaged','interval':'*,*,*,*'});}}return db[_0x7d9c('0x98')][_0x7d9c('0x59')]({'body':_0x8b7f04['body'][_0x7d9c('0x5a')],'OpenchannelAccountId':_0x8b7f04[_0x7d9c('0x57')]['id'],'OpenchannelInteractionId':_0x13f74b['id'],'direction':'in','ContactId':_0x1bc40f[_0x7d9c('0x8c')]['id'],'AttachmentId':_0x8b7f04['body'][_0x7d9c('0x99')]});})[_0x7d9c('0x1f')](function(_0x1c2f19){_0x1bc40f[_0x7d9c('0x27')]=_0x1c2f19;if(_0x1bc40f[_0x7d9c('0x94')][_0x7d9c('0x9a')]){return db[_0x7d9c('0x9b')][_0x7d9c('0x5f')]({'attributes':['id',_0x7d9c('0x3a')],'where':{'id':_0x1bc40f['interaction']['UserId']}})[_0x7d9c('0x1f')](function(_0x1118c2){if(_0x1118c2){_0x1bc40f[_0x7d9c('0x89')][_0x7d9c('0x9c')]({'id':0x0,'priority':0x0,'app':_0x7d9c('0x9d'),'appdata':_0x1118c2[_0x7d9c('0x3a')]+','+(_0x1bc40f['account'][_0x7d9c('0x9e')]||0xa),'interval':'*,*,*,*'});_0x1bc40f['forcedOwnership']=![];}return respondWithRpcPromise(_0x7d9c('0x9f'),'startRouting',_0x1bc40f);});}return respondWithRpcPromise('Start','startRouting',_0x1bc40f);})[_0x7d9c('0x1f')](function(_0x3ee416){respondWithRpcPromise(_0x7d9c('0xa0'),_0x7d9c('0xa0'),{'event':_0x7d9c('0xa1'),'message':_0x3ee416},client9002);return _0x3ee416;})['then'](respondWithResult(_0x360136,null))['catch'](handleError(_0x360136,null));};exports[_0x7d9c('0xa2')]=function(_0x384e60,_0x140bb0,_0x2110d5){return db[_0x7d9c('0x40')]['findOne']({'where':{'id':_0x384e60[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x140bb0,null))[_0x7d9c('0x1f')](function(_0x2fbd1d){if(_0x2fbd1d){return db[_0x7d9c('0xa3')]['transaction'](function(_0xa15cdf){return db[_0x7d9c('0xa4')]['destroy']({'where':{'OpenchannelAccountId':_0x384e60[_0x7d9c('0x57')]['id']},'transaction':_0xa15cdf})['then'](function(_0x37bc02){var _0x521e98=_[_0x7d9c('0x3f')](_0x384e60[_0x7d9c('0x5a')],function(_0x4bf8ac){_0x4bf8ac[_0x7d9c('0x65')]=_0x384e60[_0x7d9c('0x57')]['id'];return _0x4bf8ac;});return db['OpenchannelApplication'][_0x7d9c('0xa5')](_0x521e98,{'transaction':_0xa15cdf});});})[_0x7d9c('0x1f')](function(){return db[_0x7d9c('0xa4')][_0x7d9c('0xa6')]({'where':{'OpenchannelAccountId':_0x384e60[_0x7d9c('0x57')]['id']},'order':_0x7d9c('0xa7')});});}})[_0x7d9c('0x1f')](respondWithResult(_0x140bb0,null))[_0x7d9c('0x29')](handleError(_0x140bb0,null));};exports[_0x7d9c('0xa8')]=function(_0x56529c,_0x466ac7,_0x3b81e8){var _0x25b1e0={};var _0x14b810={};var _0x14cefd;var _0x1b29a1;return db[_0x7d9c('0x40')]['findOne']({'where':{'id':_0x56529c[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x466ac7,null))['then'](function(_0x14eb2d){if(_0x14eb2d){_0x14cefd=_0x14eb2d;_0x14b810[_0x7d9c('0x48')]=_[_0x7d9c('0x44')](db[_0x7d9c('0xa4')][_0x7d9c('0x41')]);_0x14b810[_0x7d9c('0x45')]=_['keys'](_0x56529c[_0x7d9c('0x45')]);_0x14b810[_0x7d9c('0x46')]=_['intersection'](_0x14b810['model'],_0x14b810[_0x7d9c('0x45')]);_0x25b1e0[_0x7d9c('0x4a')]=_[_0x7d9c('0x47')](_0x14b810[_0x7d9c('0x48')],qs[_0x7d9c('0x49')](_0x56529c['query'][_0x7d9c('0x49')]));_0x25b1e0[_0x7d9c('0x4a')]=_0x25b1e0[_0x7d9c('0x4a')]['length']?_0x25b1e0[_0x7d9c('0x4a')]:_0x14b810[_0x7d9c('0x48')];_0x25b1e0['order']=qs['sort'](_0x56529c[_0x7d9c('0x45')][_0x7d9c('0x4d')]);_0x25b1e0[_0x7d9c('0x4e')]=qs['filters'](_[_0x7d9c('0x6f')](_0x56529c[_0x7d9c('0x45')],_0x14b810['filters']));if(_0x56529c[_0x7d9c('0x45')]['filter']){_0x25b1e0[_0x7d9c('0x4e')]=_[_0x7d9c('0x4f')](_0x25b1e0[_0x7d9c('0x4e')],{'$or':_[_0x7d9c('0x3f')](_0x25b1e0[_0x7d9c('0x4a')],function(_0x42017a){var _0x23b9ef={};_0x23b9ef[_0x42017a]={'$like':'%'+_0x56529c[_0x7d9c('0x45')][_0x7d9c('0x51')]+'%'};return _0x23b9ef;})});}_0x25b1e0=_[_0x7d9c('0x4f')]({},_0x25b1e0,_0x56529c[_0x7d9c('0x58')]);return _0x14cefd[_0x7d9c('0xa8')](_0x25b1e0);}})['then'](function(_0x112bf5){if(_0x112bf5){_0x1b29a1=_0x112bf5[_0x7d9c('0x4b')];if(!_0x56529c[_0x7d9c('0x45')]['hasOwnProperty'](_0x7d9c('0x69'))){_0x25b1e0['limit']=qs[_0x7d9c('0x2e')](_0x56529c[_0x7d9c('0x45')][_0x7d9c('0x2e')]);_0x25b1e0[_0x7d9c('0x4c')]=qs['offset'](_0x56529c[_0x7d9c('0x45')][_0x7d9c('0x4c')]);}return _0x14cefd[_0x7d9c('0xa8')](_0x25b1e0);}})['then'](function(_0x37e0ef){if(_0x37e0ef){return _0x37e0ef?{'count':_0x1b29a1,'rows':_0x37e0ef}:null;}})['then'](respondWithResult(_0x466ac7,null))[_0x7d9c('0x29')](handleError(_0x466ac7,null));};exports[_0x7d9c('0xa9')]=function(_0x3f11d9,_0x2a6d4a,_0x559f7c){var _0x33430f={'raw':![],'where':{}};var _0x1aa5ca={};var _0x474b85={'count':0x0,'rows':[]};return db[_0x7d9c('0x40')][_0x7d9c('0x67')]({'where':{'id':_0x3f11d9[_0x7d9c('0x57')]['id']}})['then'](handleEntityNotFound(_0x2a6d4a,null))[_0x7d9c('0x1f')](function(_0x7bdebb){if(_0x7bdebb){_0x1aa5ca[_0x7d9c('0x48')]=_[_0x7d9c('0x44')](db['OpenchannelInteraction'][_0x7d9c('0x41')]);_0x1aa5ca['query']=_[_0x7d9c('0x44')](_0x3f11d9[_0x7d9c('0x45')]);_0x1aa5ca['filters']=_[_0x7d9c('0x47')](_0x1aa5ca[_0x7d9c('0x48')],_0x1aa5ca[_0x7d9c('0x45')]);_0x33430f[_0x7d9c('0x4a')]=_[_0x7d9c('0x47')](_0x1aa5ca['model'],qs['fields'](_0x3f11d9[_0x7d9c('0x45')][_0x7d9c('0x49')]));_0x33430f[_0x7d9c('0x4a')]=_0x33430f[_0x7d9c('0x4a')][_0x7d9c('0x4b')]?_0x33430f[_0x7d9c('0x4a')]:_0x1aa5ca[_0x7d9c('0x48')];if(!_0x3f11d9['query']['hasOwnProperty'](_0x7d9c('0x69'))){_0x33430f[_0x7d9c('0x2e')]=qs[_0x7d9c('0x2e')](_0x3f11d9[_0x7d9c('0x45')][_0x7d9c('0x2e')]);_0x33430f['offset']=qs[_0x7d9c('0x4c')](_0x3f11d9['query'][_0x7d9c('0x4c')]);}_0x33430f[_0x7d9c('0x6a')]=qs[_0x7d9c('0x4d')](_0x3f11d9[_0x7d9c('0x45')]['sort']);_0x33430f['where']=qs[_0x7d9c('0x46')](_[_0x7d9c('0x6f')](_0x3f11d9[_0x7d9c('0x45')],_0x1aa5ca[_0x7d9c('0x46')]));_0x33430f[_0x7d9c('0x4e')][_0x7d9c('0x65')]=_0x7bdebb['id'];if(_0x3f11d9['query'][_0x7d9c('0x51')]){_0x33430f[_0x7d9c('0x4e')]=_[_0x7d9c('0x4f')](_0x33430f[_0x7d9c('0x4e')],{'$or':_[_0x7d9c('0x3f')](_0x33430f['attributes'],function(_0xfb579b){var _0x361d45={};_0x361d45[_0xfb579b]={'$like':'%'+_0x3f11d9[_0x7d9c('0x45')][_0x7d9c('0x51')]+'%'};return _0x361d45;})});}_0x33430f=_[_0x7d9c('0x4f')]({},_0x33430f,_0x3f11d9[_0x7d9c('0x58')]);return db[_0x7d9c('0x90')][_0x7d9c('0x30')]({'where':_0x33430f[_0x7d9c('0x4e')]})[_0x7d9c('0x1f')](function(_0x387d9c){_0x474b85[_0x7d9c('0x30')]=_0x387d9c;if(_0x3f11d9[_0x7d9c('0x45')]['includeAll']){_0x33430f['include']=[{'model':db[_0x7d9c('0x72')],'as':_0x7d9c('0xaa'),'required':![]},{'model':db[_0x7d9c('0x9b')],'as':_0x7d9c('0xab'),'attributes':[_0x7d9c('0x3a'),_0x7d9c('0xac'),_0x7d9c('0xad')],'required':![]},{'model':db['Tag'],'as':_0x7d9c('0xae'),'attributes':['id',_0x7d9c('0x3a'),'color'],'where':_0x3f11d9[_0x7d9c('0x45')][_0x7d9c('0xaf')]?{'id':_0x3f11d9[_0x7d9c('0x45')]['tag']}:undefined,'required':_0x3f11d9['query'][_0x7d9c('0xaf')]?!![]:![]}];}return db[_0x7d9c('0x90')][_0x7d9c('0x54')](_0x33430f);})['then'](function(_0xc7cc1c){_0x474b85[_0x7d9c('0x55')]=_0xc7cc1c;return _0x474b85;});}})[_0x7d9c('0x1f')](respondWithFilteredResult(_0x2a6d4a,_0x33430f))[_0x7d9c('0x29')](handleError(_0x2a6d4a,null));};exports[_0x7d9c('0xb0')]=function(_0x4d422c,_0x16f86e,_0xc037b0){return db['OpenchannelAccount']['find']({'where':{'id':_0x4d422c[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x16f86e,null))[_0x7d9c('0x1f')](function(_0x1aa1a9){if(_0x1aa1a9){return _0x1aa1a9[_0x7d9c('0xb0')](_0x4d422c['body'][_0x7d9c('0xb1')],_[_0x7d9c('0xb2')](_0x4d422c[_0x7d9c('0x5a')],[_0x7d9c('0xb1'),'id'])||{})[_0x7d9c('0x92')](function(_0x744265){for(var _0x482f7f=0x0;_0x482f7f<_0x4d422c[_0x7d9c('0x5a')][_0x7d9c('0xb1')][_0x7d9c('0x4b')];_0x482f7f+=0x1){socket[_0x7d9c('0xb3')](_0x7d9c('0xb4'),{'UserId':Number(_0x4d422c[_0x7d9c('0x5a')][_0x7d9c('0xb1')][_0x482f7f]),'OpenchannelAccountId':Number(_0x4d422c[_0x7d9c('0x57')]['id'])});}return _0x744265;});}})[_0x7d9c('0x1f')](respondWithResult(_0x16f86e,null))[_0x7d9c('0x29')](handleError(_0x16f86e,null));};exports[_0x7d9c('0xb5')]=function(_0x407d9d,_0x8e4565,_0x3bcf84){return db[_0x7d9c('0x40')][_0x7d9c('0x5f')]({'where':{'id':_0x407d9d[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x8e4565,null))[_0x7d9c('0x1f')](function(_0x356f56){if(_0x356f56){return _0x356f56[_0x7d9c('0xb5')](_0x407d9d[_0x7d9c('0x45')][_0x7d9c('0xb1')])[_0x7d9c('0x1f')](function(){if(_[_0x7d9c('0xb6')](_0x407d9d['query']['ids'])){for(var _0x29d0b4=0x0;_0x29d0b4<_0x407d9d[_0x7d9c('0x45')][_0x7d9c('0xb1')][_0x7d9c('0x4b')];_0x29d0b4+=0x1){socket[_0x7d9c('0xb3')](_0x7d9c('0xb7'),{'UserId':Number(_0x407d9d['query']['ids'][_0x29d0b4]),'OpenchannelAccountId':Number(_0x407d9d['params']['id'])});}}else{socket[_0x7d9c('0xb3')](_0x7d9c('0xb7'),{'UserId':Number(_0x407d9d[_0x7d9c('0x45')][_0x7d9c('0xb1')]),'OpenchannelAccountId':Number(_0x407d9d[_0x7d9c('0x57')]['id'])});}});}})[_0x7d9c('0x1f')](respondWithStatusCode(_0x8e4565,null))[_0x7d9c('0x29')](handleError(_0x8e4565,null));};exports[_0x7d9c('0xb8')]=function(_0x5409c3,_0x16eb47,_0x14f92d){var _0x3068be={};var _0x2aae73={};var _0x1b0c26;var _0x3effd3;return db[_0x7d9c('0x40')]['findOne']({'where':{'id':_0x5409c3[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x16eb47,null))[_0x7d9c('0x1f')](function(_0x11337c){if(_0x11337c){_0x1b0c26=_0x11337c;_0x2aae73['model']=_[_0x7d9c('0x44')](db['User'][_0x7d9c('0x41')]);_0x2aae73[_0x7d9c('0x45')]=_[_0x7d9c('0x44')](_0x5409c3['query']);_0x2aae73[_0x7d9c('0x46')]=_[_0x7d9c('0x47')](_0x2aae73[_0x7d9c('0x48')],_0x2aae73[_0x7d9c('0x45')]);_0x3068be[_0x7d9c('0x4a')]=_[_0x7d9c('0x47')](_0x2aae73[_0x7d9c('0x48')],qs[_0x7d9c('0x49')](_0x5409c3['query'][_0x7d9c('0x49')]));_0x3068be[_0x7d9c('0x4a')]=_0x3068be[_0x7d9c('0x4a')]['length']?_0x3068be['attributes']:_0x2aae73[_0x7d9c('0x48')];_0x3068be[_0x7d9c('0x6a')]=qs[_0x7d9c('0x4d')](_0x5409c3['query']['sort']);_0x3068be[_0x7d9c('0x4e')]=qs[_0x7d9c('0x46')](_['pick'](_0x5409c3[_0x7d9c('0x45')],_0x2aae73['filters']));if(_0x5409c3[_0x7d9c('0x45')][_0x7d9c('0x51')]){_0x3068be[_0x7d9c('0x4e')]=_[_0x7d9c('0x4f')](_0x3068be[_0x7d9c('0x4e')],{'$or':_[_0x7d9c('0x3f')](_0x3068be[_0x7d9c('0x4a')],function(_0xe6a950){var _0x455037={};_0x455037[_0xe6a950]={'$like':'%'+_0x5409c3['query']['filter']+'%'};return _0x455037;})});}_0x3068be=_[_0x7d9c('0x4f')]({},_0x3068be,_0x5409c3['options']);return _0x1b0c26[_0x7d9c('0xb8')](_0x3068be);}})[_0x7d9c('0x1f')](function(_0x50451f){if(_0x50451f){_0x3effd3=_0x50451f[_0x7d9c('0x4b')];if(!_0x5409c3[_0x7d9c('0x45')]['hasOwnProperty']('nolimit')){_0x3068be[_0x7d9c('0x2e')]=qs[_0x7d9c('0x2e')](_0x5409c3['query']['limit']);_0x3068be[_0x7d9c('0x4c')]=qs[_0x7d9c('0x4c')](_0x5409c3['query']['offset']);}return _0x1b0c26[_0x7d9c('0xb8')](_0x3068be);}})[_0x7d9c('0x1f')](function(_0x458f4f){if(_0x458f4f){return _0x458f4f?{'count':_0x3effd3,'rows':_0x458f4f}:null;}})['then'](respondWithResult(_0x16eb47,null))['catch'](handleError(_0x16eb47,null));};exports[_0x7d9c('0x3b')]=function(_0x163354,_0x56f6bf,_0x2644c6){var _0x50f020,_0x229d95,_0x5a6b83;if(_[_0x7d9c('0x7b')](_0x163354[_0x7d9c('0x5a')][_0x7d9c('0x5a')])||_0x163354[_0x7d9c('0x5a')][_0x7d9c('0x5a')]===''){throw new db[(_0x7d9c('0x73'))][(_0x7d9c('0x74'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x7d9c('0x7b')](_0x163354['body']['to'])){}_0x50f020=_0x163354['body']['to'];return db[_0x7d9c('0x40')]['findOne']({'where':{'id':_0x163354[_0x7d9c('0x57')]['id']}})[_0x7d9c('0x1f')](handleEntityNotFound(_0x56f6bf,null))[_0x7d9c('0x1f')](function(_0x567771){if(_0x567771){return db[_0x7d9c('0x40')][_0x7d9c('0x5f')]({'where':{'id':_0x567771['id']},'include':[{'model':db['CmList'],'as':_0x7d9c('0x86'),'include':[{'model':db[_0x7d9c('0x72')],'as':_0x7d9c('0x83'),'where':{[_0x567771['mapKey']]:_0x50f020},'limit':0x1,'order':[['updatedAt',_0x7d9c('0x84')]]}]}]})['then'](handleEntityNotFound(_0x56f6bf,null))[_0x7d9c('0x1f')](function(_0x5bfea5){if(_0x5bfea5&&_0x5bfea5[_0x7d9c('0x86')]){_0x229d95=_0x5bfea5[_0x7d9c('0x37')]({'plain':!![]});if(_0x229d95[_0x7d9c('0x86')]&&_0x229d95[_0x7d9c('0x86')]['Contacts']['length']){return _0x229d95['List'][_0x7d9c('0x83')][0x0];}return db['CmContact']['create'](_[_0x7d9c('0x17')](_0x163354['body'],{'firstName':_0x50f020,[_0x5bfea5[_0x7d9c('0x7f')]]:_0x50f020,'phone':_0x50f020,'ListId':_0x229d95[_0x7d9c('0x7a')]}));}})['then'](handleEntityNotFound(_0x56f6bf,null))[_0x7d9c('0x1f')](function(_0x56268e){if(_0x56268e){_0x5a6b83=_0x56268e;return db[_0x7d9c('0x90')][_0x7d9c('0x5f')]({'where':{'ContactId':_0x5a6b83['id'],'closed':![],'OpenchannelAccountId':_0x229d95['id']}})[_0x7d9c('0x1f')](function(_0x101512){if(_0x101512){return[_0x101512,![]];}return db['OpenchannelInteraction'][_0x7d9c('0x59')]({'UserId':_0x163354['user']['id'],'ContactId':_0x5a6b83['id'],'OpenchannelAccountId':_0x229d95['id'],'lastMsgDirection':'out','Messages':[_[_0x7d9c('0x4f')](_0x163354['body'],{'read':![],'body':_0x163354[_0x7d9c('0x5a')][_0x7d9c('0x5a')],'OpenchannelAccountId':_0x229d95['id'],'UserId':_0x163354[_0x7d9c('0x5b')]['id'],'ContactId':_0x5a6b83['id']})]},{'include':[{'model':db[_0x7d9c('0x98')],'as':_0x7d9c('0xb9')}]})[_0x7d9c('0x1f')](function(_0x876b76){return[_0x876b76,!![]];});});}})[_0x7d9c('0x92')](function(_0x4bcf72,_0x8c34ad){if(_0x8c34ad){return _0x4bcf72;}return db[_0x7d9c('0x98')]['create'](_['merge'](_0x163354[_0x7d9c('0x5a')],{'read':![],'body':_0x163354[_0x7d9c('0x5a')][_0x7d9c('0x5a')],'OpenchannelAccountId':_0x229d95['id'],'OpenchannelInteractionId':_0x4bcf72['id'],'UserId':_0x163354[_0x7d9c('0x5b')]['id'],'ContactId':_0x5a6b83['id']}))[_0x7d9c('0x1f')](function(_0x12ba1b){_0x4bcf72['dataValues'][_0x7d9c('0xb9')]=[];_0x4bcf72[_0x7d9c('0xba')][_0x7d9c('0xb9')][_0x7d9c('0x97')](_0x12ba1b[_0x7d9c('0xba')]);return _0x4bcf72;});});}})[_0x7d9c('0x1f')](respondWithResult(_0x56f6bf,null))[_0x7d9c('0x29')](handleError(_0x56f6bf,null));};
\ No newline at end of file
+var _0x5f45=['order','sort','where','pick','merge','options','includeAll','include','rows','show','params','Pause','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','Disposition','getDispositions','findOne','hasOwnProperty','OpenchannelAccountId','filter','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','nolimit','findAll','notify','CmContact','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','ListId','isNil','from','from\x20is\x20mandatory','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','List','Contacts','DESC','OpenchannelApplication','Applications','applications','list','priority','asc','account','defaults','contact','firstName','lastName','threadId','externalUrl','OpenchannelInteraction','ContactId','messageId','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','AttachmentId','UserId','User','unshift','agent','forcedOwnership','Start','startRouting','EventManager','findAndCountAll','getApplications','Contact','fullname','internal','tag','addAgents','omit','userOpenchannelAccount:save','isArray','emit','userOpenchannelAccount:remove','getAgents','send','out','OpenchannelMessage','Messages','spread','dataValues','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','./openchannelAccount.socket','register','jayson/promise','client','http','request','then','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','catch','sendStatus','status','json','offset','limit','undefined','count','set','update','destroy','get','OpenchannelAccounts','UserProfileResource','end','stack','name','index','mandatoryDispositionPause','map','OpenchannelAccount','rawAttributes','fieldName','type','key','keys','query','filters','intersection','attributes','model','fields','length'];(function(_0x404026,_0xef9b37){var _0x20f919=function(_0x465615){while(--_0x465615){_0x404026['push'](_0x404026['shift']());}};_0x20f919(++_0xef9b37);}(_0x5f45,0x6a));var _0x55f4=function(_0xa8883,_0x1f107f){_0xa8883=_0xa8883-0x0;var _0x479426=_0x5f45[_0xa8883];return _0x479426;};'use strict';var emlformat=require(_0x55f4('0x0'));var rimraf=require(_0x55f4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x55f4('0x2'));var rp=require('request-promise');var moment=require(_0x55f4('0x3'));var BPromise=require(_0x55f4('0x4'));var Mustache=require(_0x55f4('0x5'));var util=require(_0x55f4('0x6'));var path=require(_0x55f4('0x7'));var sox=require(_0x55f4('0x8'));var csv=require(_0x55f4('0x9'));var ejs=require(_0x55f4('0xa'));var fs=require('fs');var fs_extra=require(_0x55f4('0xb'));var _=require('lodash');var squel=require(_0x55f4('0xc'));var crypto=require(_0x55f4('0xd'));var jsforce=require(_0x55f4('0xe'));var deskjs=require(_0x55f4('0xf'));var toCsv=require(_0x55f4('0x9'));var querystring=require(_0x55f4('0x10'));var Papa=require(_0x55f4('0x11'));var Redis=require(_0x55f4('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x55f4('0x13'));var as=require(_0x55f4('0x14'));var hardwareService=require(_0x55f4('0x15'));var logger=require(_0x55f4('0x16'))(_0x55f4('0x17'));var utils=require(_0x55f4('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x55f4('0x19'));var db=require(_0x55f4('0x1a'))['db'];config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x55f4('0x1b')]));require(_0x55f4('0x1c'))[_0x55f4('0x1d')](socket);var jayson=require(_0x55f4('0x1e'));var client=jayson[_0x55f4('0x1f')][_0x55f4('0x20')]({'port':0x232c});var client9002=jayson[_0x55f4('0x1f')][_0x55f4('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x4525a3,_0x17ab79,_0x4e8201,_0x15fce9){return new BPromise(function(_0x57b772,_0x596b26){var _0x329463=_0x15fce9||client;return _0x329463[_0x55f4('0x21')](_0x4525a3,_0x4e8201)[_0x55f4('0x22')](function(_0x586814){logger['info'](_0x55f4('0x23'),_0x17ab79,_0x55f4('0x24'));logger[_0x55f4('0x25')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x17ab79,_0x55f4('0x24'),JSON[_0x55f4('0x26')](_0x586814));if(_0x586814[_0x55f4('0x27')]){if(_0x586814[_0x55f4('0x27')]['code']===0x1f4){logger[_0x55f4('0x27')](_0x55f4('0x23'),_0x17ab79,_0x586814[_0x55f4('0x27')][_0x55f4('0x28')]);return _0x596b26(_0x586814[_0x55f4('0x27')][_0x55f4('0x28')]);}logger[_0x55f4('0x27')](_0x55f4('0x23'),_0x17ab79,_0x586814[_0x55f4('0x27')]['message']);return _0x57b772(_0x586814[_0x55f4('0x27')][_0x55f4('0x28')]);}else{logger[_0x55f4('0x29')](_0x55f4('0x23'),_0x17ab79,_0x55f4('0x24'));_0x57b772(_0x586814[_0x55f4('0x2a')]['message']);}})[_0x55f4('0x2b')](function(_0x299df2){logger['error'](_0x55f4('0x23'),_0x17ab79,_0x299df2);_0x596b26(_0x299df2);});});}function respondWithStatusCode(_0x392f7d,_0x4fe745){_0x4fe745=_0x4fe745||0xcc;return function(_0x3c75e1){if(_0x3c75e1){return _0x392f7d[_0x55f4('0x2c')](_0x4fe745);}return _0x392f7d['status'](_0x4fe745)['end']();};}function respondWithResult(_0x3c9111,_0x394dcd){_0x394dcd=_0x394dcd||0xc8;return function(_0x3bf34c){if(_0x3bf34c){return _0x3c9111[_0x55f4('0x2d')](_0x394dcd)[_0x55f4('0x2e')](_0x3bf34c);}};}function respondWithFilteredResult(_0x4be111,_0x5e29f6){return function(_0x306ae3){if(_0x306ae3){var _0xcc0c0=typeof _0x5e29f6[_0x55f4('0x2f')]==='undefined'&&typeof _0x5e29f6[_0x55f4('0x30')]===_0x55f4('0x31');var _0x311e5a=_0x306ae3[_0x55f4('0x32')];var _0x49e73=_0xcc0c0?0x0:_0x5e29f6[_0x55f4('0x2f')];var _0x532888=_0xcc0c0?_0x306ae3['count']:_0x5e29f6[_0x55f4('0x2f')]+_0x5e29f6['limit'];var _0xb44952;if(_0x532888>=_0x311e5a){_0x532888=_0x311e5a;_0xb44952=0xc8;}else{_0xb44952=0xce;}_0x4be111['status'](_0xb44952);return _0x4be111[_0x55f4('0x33')]('Content-Range',_0x49e73+'-'+_0x532888+'/'+_0x311e5a)[_0x55f4('0x2e')](_0x306ae3);}return null;};}function patchUpdates(_0x2f04c7){return function(_0x32e996){try{jsonpatch['apply'](_0x32e996,_0x2f04c7,!![]);}catch(_0x5e7a87){return BPromise['reject'](_0x5e7a87);}return _0x32e996['save']();};}function saveUpdates(_0x590cd9,_0x17bb99){return function(_0xcde83b){if(_0xcde83b){return _0xcde83b[_0x55f4('0x34')](_0x590cd9)[_0x55f4('0x22')](function(_0x298498){return _0x298498;});}return null;};}function removeEntity(_0x2bfc9f,_0x49d4e8){return function(_0x58fb28){if(_0x58fb28){return _0x58fb28[_0x55f4('0x35')]()[_0x55f4('0x22')](function(){var _0x255f8d=_0x58fb28[_0x55f4('0x36')]({'plain':!![]});var _0x1a2e27=_0x55f4('0x37');return db[_0x55f4('0x38')][_0x55f4('0x35')]({'where':{'type':_0x1a2e27,'resourceId':_0x255f8d['id']}})[_0x55f4('0x22')](function(){return _0x58fb28;});})[_0x55f4('0x22')](function(){_0x2bfc9f[_0x55f4('0x2d')](0xcc)[_0x55f4('0x39')]();});}};}function handleEntityNotFound(_0x1e1743,_0x5b917c){return function(_0xa1100f){if(!_0xa1100f){_0x1e1743['sendStatus'](0x194);}return _0xa1100f;};}function handleError(_0x132a7a,_0x5af175){_0x5af175=_0x5af175||0x1f4;return function(_0x2cdb5c){logger[_0x55f4('0x27')](_0x2cdb5c[_0x55f4('0x3a')]);if(_0x2cdb5c[_0x55f4('0x3b')]){delete _0x2cdb5c[_0x55f4('0x3b')];}_0x132a7a[_0x55f4('0x2d')](_0x5af175)['send'](_0x2cdb5c);};}exports[_0x55f4('0x3c')]=function(_0x29efd2,_0xa9b5aa){var _0x75e099={'include':[{'model':db['Pause'],'as':_0x55f4('0x3d')}]},_0xefc37={},_0x4ce68c={'count':0x0,'rows':[]};var _0x55e75f=_[_0x55f4('0x3e')](db[_0x55f4('0x3f')][_0x55f4('0x40')],function(_0x53e055){return{'name':_0x53e055[_0x55f4('0x41')],'type':_0x53e055[_0x55f4('0x42')][_0x55f4('0x43')]};});_0xefc37['model']=_[_0x55f4('0x3e')](_0x55e75f,'name');_0xefc37['query']=_[_0x55f4('0x44')](_0x29efd2[_0x55f4('0x45')]);_0xefc37[_0x55f4('0x46')]=_[_0x55f4('0x47')](_0xefc37['model'],_0xefc37[_0x55f4('0x45')]);_0x75e099[_0x55f4('0x48')]=_[_0x55f4('0x47')](_0xefc37[_0x55f4('0x49')],qs['fields'](_0x29efd2[_0x55f4('0x45')][_0x55f4('0x4a')]));_0x75e099[_0x55f4('0x48')]=_0x75e099[_0x55f4('0x48')][_0x55f4('0x4b')]?_0x75e099[_0x55f4('0x48')]:_0xefc37[_0x55f4('0x49')];if(!_0x29efd2[_0x55f4('0x45')]['hasOwnProperty']('nolimit')){_0x75e099['limit']=qs['limit'](_0x29efd2[_0x55f4('0x45')][_0x55f4('0x30')]);_0x75e099['offset']=qs[_0x55f4('0x2f')](_0x29efd2[_0x55f4('0x45')][_0x55f4('0x2f')]);}_0x75e099[_0x55f4('0x4c')]=qs['sort'](_0x29efd2[_0x55f4('0x45')][_0x55f4('0x4d')]);_0x75e099[_0x55f4('0x4e')]=qs[_0x55f4('0x46')](_[_0x55f4('0x4f')](_0x29efd2['query'],_0xefc37[_0x55f4('0x46')]),_0x55e75f);if(_0x29efd2[_0x55f4('0x45')]['filter']){_0x75e099[_0x55f4('0x4e')]=_[_0x55f4('0x50')](_0x75e099['where'],{'$or':_['map'](_0x55e75f,function(_0x20d4b0){if(_0x20d4b0[_0x55f4('0x42')]!=='VIRTUAL'){var _0x597d49={};_0x597d49[_0x20d4b0[_0x55f4('0x3b')]]={'$like':'%'+_0x29efd2[_0x55f4('0x45')]['filter']+'%'};return _0x597d49;}})});}_0x75e099=_[_0x55f4('0x50')]({},_0x75e099,_0x29efd2[_0x55f4('0x51')]);var _0x34a754={'where':_0x75e099['where']};return db[_0x55f4('0x3f')]['count'](_0x34a754)[_0x55f4('0x22')](function(_0x4c53dc){_0x4ce68c['count']=_0x4c53dc;if(_0x29efd2[_0x55f4('0x45')][_0x55f4('0x52')]){_0x75e099[_0x55f4('0x53')]=[{'all':!![]}];}return db[_0x55f4('0x3f')]['findAll'](_0x75e099);})[_0x55f4('0x22')](function(_0x1a2f49){_0x4ce68c[_0x55f4('0x54')]=_0x1a2f49;return _0x4ce68c;})[_0x55f4('0x22')](respondWithFilteredResult(_0xa9b5aa,_0x75e099))[_0x55f4('0x2b')](handleError(_0xa9b5aa,null));};exports[_0x55f4('0x55')]=function(_0x302c40,_0x6b9043){var _0x319cf3={'raw':![],'where':{'id':_0x302c40[_0x55f4('0x56')]['id']},'include':[{'model':db[_0x55f4('0x57')],'as':_0x55f4('0x3d')}]},_0xb86f2={};_0xb86f2['model']=_['keys'](db[_0x55f4('0x3f')]['rawAttributes']);_0xb86f2[_0x55f4('0x45')]=_[_0x55f4('0x44')](_0x302c40[_0x55f4('0x45')]);_0xb86f2[_0x55f4('0x46')]=_[_0x55f4('0x47')](_0xb86f2[_0x55f4('0x49')],_0xb86f2[_0x55f4('0x45')]);_0x319cf3[_0x55f4('0x48')]=_[_0x55f4('0x47')](_0xb86f2['model'],qs[_0x55f4('0x4a')](_0x302c40[_0x55f4('0x45')][_0x55f4('0x4a')]));_0x319cf3['attributes']=_0x319cf3[_0x55f4('0x48')]['length']?_0x319cf3[_0x55f4('0x48')]:_0xb86f2['model'];if(_0x302c40['query'][_0x55f4('0x52')]){_0x319cf3[_0x55f4('0x53')]=[{'all':!![]}];}_0x319cf3=_[_0x55f4('0x50')]({},_0x319cf3,_0x302c40[_0x55f4('0x51')]);return db[_0x55f4('0x3f')][_0x55f4('0x58')](_0x319cf3)['then'](handleEntityNotFound(_0x6b9043,null))[_0x55f4('0x22')](respondWithResult(_0x6b9043,null))[_0x55f4('0x2b')](handleError(_0x6b9043,null));};exports['create']=function(_0x5549d8,_0xdbb2d6){return db[_0x55f4('0x3f')][_0x55f4('0x59')](_0x5549d8[_0x55f4('0x5a')],{})[_0x55f4('0x22')](function(_0x4f3c3e){var _0xeee6ec=_0x5549d8[_0x55f4('0x5b')]['get']({'plain':!![]});if(!_0xeee6ec)throw new Error(_0x55f4('0x5c'));if(_0xeee6ec[_0x55f4('0x5d')]===_0x55f4('0x5b')){var _0x44c040=_0x4f3c3e[_0x55f4('0x36')]({'plain':!![]});var _0x138517=_0x55f4('0x37');return db[_0x55f4('0x5e')]['find']({'where':{'name':_0x138517,'userProfileId':_0xeee6ec[_0x55f4('0x5f')]},'raw':!![]})[_0x55f4('0x22')](function(_0x981df3){if(_0x981df3&&_0x981df3[_0x55f4('0x60')]===0x0){return db[_0x55f4('0x38')][_0x55f4('0x59')]({'name':_0x44c040[_0x55f4('0x3b')],'resourceId':_0x44c040['id'],'type':_0x981df3[_0x55f4('0x3b')],'sectionId':_0x981df3['id']},{})[_0x55f4('0x22')](function(){return _0x4f3c3e;});}else{return _0x4f3c3e;}})[_0x55f4('0x2b')](function(_0x11e046){logger[_0x55f4('0x27')](_0x55f4('0x61'),_0x11e046);throw _0x11e046;});}return _0x4f3c3e;})[_0x55f4('0x22')](respondWithResult(_0xdbb2d6,0xc9))[_0x55f4('0x2b')](handleError(_0xdbb2d6,null));};exports[_0x55f4('0x34')]=function(_0x9bde27,_0x2c53cf){if(_0x9bde27[_0x55f4('0x5a')]['id']){delete _0x9bde27[_0x55f4('0x5a')]['id'];}return db[_0x55f4('0x3f')]['find']({'where':{'id':_0x9bde27[_0x55f4('0x56')]['id']},'include':[{'model':db[_0x55f4('0x57')],'as':_0x55f4('0x3d')}]})[_0x55f4('0x22')](handleEntityNotFound(_0x2c53cf,null))['then'](saveUpdates(_0x9bde27[_0x55f4('0x5a')],null))[_0x55f4('0x22')](respondWithResult(_0x2c53cf,null))['catch'](handleError(_0x2c53cf,null));};exports[_0x55f4('0x35')]=function(_0x57f138,_0x242251){return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x57f138[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x242251,null))['then'](removeEntity(_0x242251,null))[_0x55f4('0x2b')](handleError(_0x242251,null));};exports[_0x55f4('0x62')]=function(_0x20430f,_0x418a3f){return db['OpenchannelAccount'][_0x55f4('0x62')]()[_0x55f4('0x22')](respondWithResult(_0x418a3f,null))[_0x55f4('0x2b')](handleError(_0x418a3f,null));};exports[_0x55f4('0x63')]=function(_0x2fee30,_0x333aee,_0x4b928b){if(_0x2fee30[_0x55f4('0x5a')]['id']){delete _0x2fee30['body']['id'];}return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x2fee30[_0x55f4('0x56')]['id']}})['then'](handleEntityNotFound(_0x333aee,null))[_0x55f4('0x22')](function(_0x108335){if(_0x108335){_0x2fee30[_0x55f4('0x5a')]['OpenchannelAccountId']=_0x108335['id'];return db[_0x55f4('0x64')][_0x55f4('0x59')](_0x2fee30['body']);}})[_0x55f4('0x22')](respondWithResult(_0x333aee,null))[_0x55f4('0x2b')](handleError(_0x333aee,null));};exports[_0x55f4('0x65')]=function(_0x38c60e,_0x4c9a1b,_0x19682f){var _0x2b1884={'raw':![],'where':{}};var _0x487b9e={};var _0x576f96={'count':0x0,'rows':[]};return db[_0x55f4('0x3f')][_0x55f4('0x66')]({'where':{'id':_0x38c60e[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x4c9a1b,null))[_0x55f4('0x22')](function(_0x224cdc){if(_0x224cdc){_0x487b9e[_0x55f4('0x49')]=_[_0x55f4('0x44')](db[_0x55f4('0x64')][_0x55f4('0x40')]);_0x487b9e[_0x55f4('0x45')]=_[_0x55f4('0x44')](_0x38c60e['query']);_0x487b9e[_0x55f4('0x46')]=_['intersection'](_0x487b9e[_0x55f4('0x49')],_0x487b9e[_0x55f4('0x45')]);_0x2b1884['attributes']=_[_0x55f4('0x47')](_0x487b9e[_0x55f4('0x49')],qs['fields'](_0x38c60e[_0x55f4('0x45')][_0x55f4('0x4a')]));_0x2b1884[_0x55f4('0x48')]=_0x2b1884['attributes']['length']?_0x2b1884[_0x55f4('0x48')]:_0x487b9e[_0x55f4('0x49')];if(!_0x38c60e[_0x55f4('0x45')][_0x55f4('0x67')]('nolimit')){_0x2b1884[_0x55f4('0x30')]=qs[_0x55f4('0x30')](_0x38c60e[_0x55f4('0x45')]['limit']);_0x2b1884[_0x55f4('0x2f')]=qs[_0x55f4('0x2f')](_0x38c60e[_0x55f4('0x45')][_0x55f4('0x2f')]);}_0x2b1884[_0x55f4('0x4c')]=qs[_0x55f4('0x4d')](_0x38c60e[_0x55f4('0x45')][_0x55f4('0x4d')]);_0x2b1884[_0x55f4('0x4e')]=qs[_0x55f4('0x46')](_['pick'](_0x38c60e[_0x55f4('0x45')],_0x487b9e[_0x55f4('0x46')]));_0x2b1884['where'][_0x55f4('0x68')]=_0x224cdc['id'];if(_0x38c60e[_0x55f4('0x45')][_0x55f4('0x69')]){_0x2b1884[_0x55f4('0x4e')]=_['merge'](_0x2b1884[_0x55f4('0x4e')],{'$or':_[_0x55f4('0x3e')](_0x2b1884['attributes'],function(_0x5efb68){var _0x50346e={};_0x50346e[_0x5efb68]={'$like':'%'+_0x38c60e[_0x55f4('0x45')]['filter']+'%'};return _0x50346e;})});}_0x2b1884=_[_0x55f4('0x50')]({},_0x2b1884,_0x38c60e[_0x55f4('0x51')]);return db[_0x55f4('0x64')][_0x55f4('0x32')]({'where':_0x2b1884[_0x55f4('0x4e')]})['then'](function(_0x37d24a){_0x576f96[_0x55f4('0x32')]=_0x37d24a;if(_0x38c60e[_0x55f4('0x45')][_0x55f4('0x52')]){_0x2b1884[_0x55f4('0x53')]=[{'all':!![]}];}return db[_0x55f4('0x64')]['findAll'](_0x2b1884);})[_0x55f4('0x22')](function(_0x24579d){_0x576f96[_0x55f4('0x54')]=_0x24579d;return _0x576f96;});}})[_0x55f4('0x22')](respondWithFilteredResult(_0x4c9a1b,_0x2b1884))[_0x55f4('0x2b')](handleError(_0x4c9a1b,null));};exports['removeDispositions']=function(_0x54fa2,_0x163ac5,_0x2d4807){return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x54fa2[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x163ac5,null))[_0x55f4('0x22')](function(_0x542562){if(_0x542562){return _0x542562[_0x55f4('0x6a')](_0x54fa2['query'][_0x55f4('0x6b')]);}})[_0x55f4('0x22')](respondWithStatusCode(_0x163ac5,null))[_0x55f4('0x2b')](handleError(_0x163ac5,null));};exports[_0x55f4('0x6c')]=function(_0x3619bf,_0x105576,_0x5bee0c){if(_0x3619bf[_0x55f4('0x5a')]['id']){delete _0x3619bf[_0x55f4('0x5a')]['id'];}return db['OpenchannelAccount']['find']({'where':{'id':_0x3619bf['params']['id']}})['then'](handleEntityNotFound(_0x105576,null))[_0x55f4('0x22')](function(_0x5820b7){if(_0x5820b7){_0x3619bf[_0x55f4('0x5a')]['OpenchannelAccountId']=_0x5820b7['id'];return db['CannedAnswer']['create'](_0x3619bf[_0x55f4('0x5a')]);}})[_0x55f4('0x22')](respondWithResult(_0x105576,null))[_0x55f4('0x2b')](handleError(_0x105576,null));};exports[_0x55f4('0x6d')]=function(_0x24aab4,_0x4671bc,_0x2ee0a9){var _0x1e03dd={'raw':![],'where':{}};var _0x11d078={};var _0x5beecf={'count':0x0,'rows':[]};return db[_0x55f4('0x3f')][_0x55f4('0x66')]({'where':{'id':_0x24aab4[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x4671bc,null))[_0x55f4('0x22')](function(_0x3515f4){if(_0x3515f4){_0x11d078['model']=_[_0x55f4('0x44')](db[_0x55f4('0x6e')]['rawAttributes']);_0x11d078[_0x55f4('0x45')]=_[_0x55f4('0x44')](_0x24aab4[_0x55f4('0x45')]);_0x11d078['filters']=_[_0x55f4('0x47')](_0x11d078[_0x55f4('0x49')],_0x11d078[_0x55f4('0x45')]);_0x1e03dd[_0x55f4('0x48')]=_[_0x55f4('0x47')](_0x11d078[_0x55f4('0x49')],qs[_0x55f4('0x4a')](_0x24aab4[_0x55f4('0x45')][_0x55f4('0x4a')]));_0x1e03dd['attributes']=_0x1e03dd[_0x55f4('0x48')]['length']?_0x1e03dd[_0x55f4('0x48')]:_0x11d078['model'];if(!_0x24aab4['query'][_0x55f4('0x67')](_0x55f4('0x6f'))){_0x1e03dd[_0x55f4('0x30')]=qs[_0x55f4('0x30')](_0x24aab4['query']['limit']);_0x1e03dd[_0x55f4('0x2f')]=qs['offset'](_0x24aab4['query'][_0x55f4('0x2f')]);}_0x1e03dd[_0x55f4('0x4c')]=qs[_0x55f4('0x4d')](_0x24aab4[_0x55f4('0x45')]['sort']);_0x1e03dd[_0x55f4('0x4e')]=qs[_0x55f4('0x46')](_[_0x55f4('0x4f')](_0x24aab4[_0x55f4('0x45')],_0x11d078[_0x55f4('0x46')]));_0x1e03dd[_0x55f4('0x4e')][_0x55f4('0x68')]=_0x3515f4['id'];if(_0x24aab4[_0x55f4('0x45')][_0x55f4('0x69')]){_0x1e03dd[_0x55f4('0x4e')]=_['merge'](_0x1e03dd[_0x55f4('0x4e')],{'$or':_[_0x55f4('0x3e')](_0x1e03dd[_0x55f4('0x48')],function(_0x42f29c){var _0x43dc5d={};_0x43dc5d[_0x42f29c]={'$like':'%'+_0x24aab4[_0x55f4('0x45')][_0x55f4('0x69')]+'%'};return _0x43dc5d;})});}_0x1e03dd=_['merge']({},_0x1e03dd,_0x24aab4['options']);return db[_0x55f4('0x6e')][_0x55f4('0x32')]({'where':_0x1e03dd['where']})[_0x55f4('0x22')](function(_0x317a34){_0x5beecf[_0x55f4('0x32')]=_0x317a34;if(_0x24aab4[_0x55f4('0x45')]['includeAll']){_0x1e03dd[_0x55f4('0x53')]=[{'all':!![]}];}return db[_0x55f4('0x6e')][_0x55f4('0x70')](_0x1e03dd);})[_0x55f4('0x22')](function(_0x47a4f2){_0x5beecf[_0x55f4('0x54')]=_0x47a4f2;return _0x5beecf;});}})[_0x55f4('0x22')](respondWithFilteredResult(_0x4671bc,_0x1e03dd))[_0x55f4('0x2b')](handleError(_0x4671bc,null));};exports['removeAnswers']=function(_0x263138,_0x38fe42,_0x2870d2){return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x263138[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x38fe42,null))['then'](function(_0x4f04ce){if(_0x4f04ce){return _0x4f04ce['removeAnswers'](_0x263138[_0x55f4('0x45')][_0x55f4('0x6b')]);}})['then'](respondWithStatusCode(_0x38fe42,null))['catch'](handleError(_0x38fe42,null));};exports[_0x55f4('0x71')]=function(_0x1f0899,_0x5ae10e,_0x58151f){var _0x2fbc45={'body':_0x1f0899[_0x55f4('0x5a')],'channel':'openchannel'};var _0x371f62=[];var _0xc10daf=[];var _0x5d23c2={};var _0x1cb1c7=![];return db[_0x55f4('0x72')][_0x55f4('0x62')]()[_0x55f4('0x22')](function(_0xd6c83d){if(!_0xd6c83d){throw new db['Sequelize'][(_0x55f4('0x73'))](_0x55f4('0x74'));}_0x371f62=_['difference'](_['keys'](_0xd6c83d),[_0x55f4('0x75'),_0x55f4('0x76')]);_0xc10daf=_[_0x55f4('0x77')](_['keys'](_0xd6c83d),[_0x55f4('0x75'),_0x55f4('0x76'),'CompanyId',_0x55f4('0x78')]);if(_0x1f0899[_0x55f4('0x5a')]['id']){delete _0x1f0899[_0x55f4('0x5a')]['id'];}if(_[_0x55f4('0x79')](_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x7a')])){throw new db['Sequelize'][(_0x55f4('0x73'))](_0x55f4('0x7b'));}if(_[_0x55f4('0x79')](_0x1f0899['body'][_0x55f4('0x5a')])||_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x5a')]===''){throw new db[(_0x55f4('0x7c'))]['ValidationError'](_0x55f4('0x7d'));}if(_['isNil'](_0x1f0899['body']['mapKey'])){throw new db[(_0x55f4('0x7c'))]['ValidationError'](_0x55f4('0x7e')+_0xc10daf);}if(!_['includes'](_0xc10daf,_0x1f0899['body'][_0x55f4('0x7f')])){throw new db['Sequelize']['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xc10daf);}_0x5d23c2[_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x7f')]]=_0x1f0899[_0x55f4('0x5a')]['from'];})[_0x55f4('0x22')](function(){return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x1f0899[_0x55f4('0x56')]['id']},'include':[{'model':db['CmList'],'as':_0x55f4('0x80'),'include':[{'model':db[_0x55f4('0x72')],'as':_0x55f4('0x81'),'where':_0x5d23c2,'limit':0x1,'order':[[_0x55f4('0x76'),_0x55f4('0x82')]]}]},{'model':db[_0x55f4('0x83')],'as':_0x55f4('0x84')}]});})[_0x55f4('0x22')](handleEntityNotFound(_0x5ae10e,null))['then'](function(_0x25ba34){if(_0x25ba34&&_0x25ba34['List']){_0x2fbc45['account']=_0x25ba34;_0x2fbc45[_0x55f4('0x85')]=_0x25ba34[_0x55f4('0x84')];_0x2fbc45[_0x55f4('0x86')]=_0x25ba34[_0x55f4('0x80')];_0x2fbc45[_0x55f4('0x85')]=_['orderBy'](_0x2fbc45['applications'],[_0x55f4('0x87')],[_0x55f4('0x88')]);if(_0x2fbc45[_0x55f4('0x89')]['Applications']){delete _0x2fbc45[_0x55f4('0x89')][_0x55f4('0x84')];}if(_0x2fbc45['account'][_0x55f4('0x80')]&&_0x2fbc45[_0x55f4('0x89')][_0x55f4('0x80')]['Contacts']['length']){return _0x2fbc45[_0x55f4('0x89')]['List'][_0x55f4('0x81')][0x0];}var _0x3a8fa8=_[_0x55f4('0x8a')](_0x1f0899['body'],{'firstName':_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x7a')],'ListId':_0x25ba34[_0x55f4('0x78')]});_0x3a8fa8[_0x1f0899['body'][_0x55f4('0x7f')]]=_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x7a')];return db[_0x55f4('0x72')]['create'](_0x3a8fa8,{'fields':_0x371f62,'raw':!![]});}})[_0x55f4('0x22')](handleEntityNotFound(_0x5ae10e,null))[_0x55f4('0x22')](function(_0x3eb1b2){_0x2fbc45[_0x55f4('0x8b')]=_0x3eb1b2;if(_0x3eb1b2){var _0x1290f5={'ContactId':_0x3eb1b2['id'],'OpenchannelAccountId':_0x1f0899[_0x55f4('0x56')]['id'],'from':(_0x3eb1b2[_0x55f4('0x8c')]||'')+'\x20'+(_0x3eb1b2[_0x55f4('0x8d')]||'')};var _0x514253={'OpenchannelAccountId':_0x1f0899['params']['id'],'closed':![]};if(_0x1f0899[_0x55f4('0x5a')]['threadId']){_0x514253[_0x55f4('0x8e')]=_0x1f0899[_0x55f4('0x5a')]['threadId'];return db['OpenchannelInteraction'][_0x55f4('0x58')]({'where':_0x514253})[_0x55f4('0x22')](function(_0x3220eb){if(_0x3220eb){return[_0x3220eb,![]];}_0x1290f5[_0x55f4('0x8e')]=_0x1f0899[_0x55f4('0x5a')]['threadId'];_0x1290f5['externalUrl']=_0x1f0899['body'][_0x55f4('0x8f')];return db[_0x55f4('0x90')][_0x55f4('0x59')](_0x1290f5)[_0x55f4('0x22')](function(_0x703248){return[_0x703248,!![]];});});}else{_0x514253[_0x55f4('0x8e')]=null;}_0x514253[_0x55f4('0x91')]=_0x3eb1b2['id'];return db[_0x55f4('0x90')][_0x55f4('0x58')]({'where':_0x514253})[_0x55f4('0x22')](function(_0x15ca79){if(_0x15ca79){return[_0x15ca79,![]];}return db[_0x55f4('0x90')]['create'](_0x1290f5)[_0x55f4('0x22')](function(_0x6d1653){return[_0x6d1653,!![]];});});}})['spread'](function(_0x4a7a79,_0x81cb4b){if(_0x4a7a79){_0x1cb1c7=_0x81cb4b;if(!_0x81cb4b){var _0x347aa2={'from':(_0x2fbc45['contact'][_0x55f4('0x8c')]||'')+'\x20'+(_0x2fbc45[_0x55f4('0x8b')][_0x55f4('0x8d')]||'')};if(_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x8e')]&&_0x1f0899[_0x55f4('0x5a')]['messageId']&&_0x1f0899['body'][_0x55f4('0x8e')]!=_0x1f0899['body'][_0x55f4('0x92')]){_0x347aa2[_0x55f4('0x8e')]=_0x1f0899[_0x55f4('0x5a')]['messageId'];}return _0x4a7a79['update'](_0x347aa2);}else{return _0x4a7a79;}}})[_0x55f4('0x22')](function(_0x4c46b2){_0x2fbc45[_0x55f4('0x93')]=_0x4c46b2[_0x55f4('0x36')]({'plain':!![]});_0x2fbc45[_0x55f4('0x93')][_0x55f4('0x94')]=_0x1cb1c7;if(_0x2fbc45[_0x55f4('0x93')]['created']){if(_0x2fbc45['account'][_0x55f4('0x95')]){_0x2fbc45[_0x55f4('0x85')][_0x55f4('0x96')]({'id':0x0,'priority':_0x2fbc45[_0x55f4('0x85')][_0x55f4('0x4b')]+0x1,'app':_0x55f4('0x97'),'appdata':_0x55f4('0x98'),'interval':_0x55f4('0x99')});}}return db['OpenchannelMessage'][_0x55f4('0x59')]({'body':_0x1f0899['body'][_0x55f4('0x5a')],'OpenchannelAccountId':_0x1f0899['params']['id'],'OpenchannelInteractionId':_0x4c46b2['id'],'direction':'in','ContactId':_0x2fbc45['contact']['id'],'AttachmentId':_0x1f0899[_0x55f4('0x5a')][_0x55f4('0x9a')]});})['then'](function(_0x19f435){_0x2fbc45[_0x55f4('0x28')]=_0x19f435;if(_0x2fbc45[_0x55f4('0x93')][_0x55f4('0x9b')]){return db[_0x55f4('0x9c')]['find']({'attributes':['id',_0x55f4('0x3b')],'where':{'id':_0x2fbc45[_0x55f4('0x93')]['UserId']}})[_0x55f4('0x22')](function(_0x51ed09){if(_0x51ed09){_0x2fbc45[_0x55f4('0x85')][_0x55f4('0x9d')]({'id':0x0,'priority':0x0,'app':_0x55f4('0x9e'),'appdata':_0x51ed09[_0x55f4('0x3b')]+','+(_0x2fbc45[_0x55f4('0x89')]['waitForTheAssignedAgent']||0xa),'interval':_0x55f4('0x99')});_0x2fbc45[_0x55f4('0x9f')]=![];}return respondWithRpcPromise(_0x55f4('0xa0'),'startRouting',_0x2fbc45);});}return respondWithRpcPromise('Start',_0x55f4('0xa1'),_0x2fbc45);})['then'](function(_0x17e0fd){respondWithRpcPromise(_0x55f4('0xa2'),'EventManager',{'event':_0x55f4('0x71'),'message':_0x17e0fd},client9002);return _0x17e0fd;})[_0x55f4('0x22')](respondWithResult(_0x5ae10e,null))[_0x55f4('0x2b')](handleError(_0x5ae10e,null));};exports['addApplications']=function(_0xde1b52,_0x27fed9,_0x2e55df){return db['OpenchannelAccount'][_0x55f4('0x66')]({'where':{'id':_0xde1b52['params']['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x27fed9,null))[_0x55f4('0x22')](function(_0xb9b6e0){if(_0xb9b6e0){return db['sequelize']['transaction'](function(_0x4ff2d2){return db[_0x55f4('0x83')][_0x55f4('0x35')]({'where':{'OpenchannelAccountId':_0xde1b52['params']['id']},'transaction':_0x4ff2d2})[_0x55f4('0x22')](function(_0x594ca5){var _0x1f2c67=_[_0x55f4('0x3e')](_0xde1b52[_0x55f4('0x5a')],function(_0x1474e0){_0x1474e0['OpenchannelAccountId']=_0xde1b52[_0x55f4('0x56')]['id'];return _0x1474e0;});return db['OpenchannelApplication']['bulkCreate'](_0x1f2c67,{'transaction':_0x4ff2d2});});})[_0x55f4('0x22')](function(){return db[_0x55f4('0x83')][_0x55f4('0xa3')]({'where':{'OpenchannelAccountId':_0xde1b52[_0x55f4('0x56')]['id']},'order':_0x55f4('0x87')});});}})[_0x55f4('0x22')](respondWithResult(_0x27fed9,null))[_0x55f4('0x2b')](handleError(_0x27fed9,null));};exports[_0x55f4('0xa4')]=function(_0x1e273d,_0xade52d,_0x2bde8c){var _0x357bc9={};var _0x47b2d4={};var _0x136f83;var _0x17f7df;return db[_0x55f4('0x3f')][_0x55f4('0x66')]({'where':{'id':_0x1e273d[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0xade52d,null))['then'](function(_0x5dff93){if(_0x5dff93){_0x136f83=_0x5dff93;_0x47b2d4[_0x55f4('0x49')]=_[_0x55f4('0x44')](db[_0x55f4('0x83')][_0x55f4('0x40')]);_0x47b2d4[_0x55f4('0x45')]=_[_0x55f4('0x44')](_0x1e273d[_0x55f4('0x45')]);_0x47b2d4['filters']=_[_0x55f4('0x47')](_0x47b2d4[_0x55f4('0x49')],_0x47b2d4[_0x55f4('0x45')]);_0x357bc9[_0x55f4('0x48')]=_['intersection'](_0x47b2d4['model'],qs[_0x55f4('0x4a')](_0x1e273d[_0x55f4('0x45')][_0x55f4('0x4a')]));_0x357bc9[_0x55f4('0x48')]=_0x357bc9['attributes'][_0x55f4('0x4b')]?_0x357bc9[_0x55f4('0x48')]:_0x47b2d4[_0x55f4('0x49')];_0x357bc9[_0x55f4('0x4c')]=qs[_0x55f4('0x4d')](_0x1e273d[_0x55f4('0x45')][_0x55f4('0x4d')]);_0x357bc9[_0x55f4('0x4e')]=qs[_0x55f4('0x46')](_[_0x55f4('0x4f')](_0x1e273d[_0x55f4('0x45')],_0x47b2d4[_0x55f4('0x46')]));if(_0x1e273d[_0x55f4('0x45')][_0x55f4('0x69')]){_0x357bc9[_0x55f4('0x4e')]=_[_0x55f4('0x50')](_0x357bc9[_0x55f4('0x4e')],{'$or':_[_0x55f4('0x3e')](_0x357bc9[_0x55f4('0x48')],function(_0x4148f0){var _0xd35510={};_0xd35510[_0x4148f0]={'$like':'%'+_0x1e273d['query']['filter']+'%'};return _0xd35510;})});}_0x357bc9=_[_0x55f4('0x50')]({},_0x357bc9,_0x1e273d['options']);return _0x136f83[_0x55f4('0xa4')](_0x357bc9);}})[_0x55f4('0x22')](function(_0x56b364){if(_0x56b364){_0x17f7df=_0x56b364['length'];if(!_0x1e273d[_0x55f4('0x45')][_0x55f4('0x67')]('nolimit')){_0x357bc9[_0x55f4('0x30')]=qs[_0x55f4('0x30')](_0x1e273d[_0x55f4('0x45')][_0x55f4('0x30')]);_0x357bc9['offset']=qs[_0x55f4('0x2f')](_0x1e273d[_0x55f4('0x45')][_0x55f4('0x2f')]);}return _0x136f83[_0x55f4('0xa4')](_0x357bc9);}})[_0x55f4('0x22')](function(_0x38f897){if(_0x38f897){return _0x38f897?{'count':_0x17f7df,'rows':_0x38f897}:null;}})['then'](respondWithResult(_0xade52d,null))[_0x55f4('0x2b')](handleError(_0xade52d,null));};exports['getInteractions']=function(_0x17bab9,_0x3a0282,_0x5d9585){var _0x42064c={'raw':![],'where':{}};var _0x10482a={};var _0x1d698a={'count':0x0,'rows':[]};return db[_0x55f4('0x3f')][_0x55f4('0x66')]({'where':{'id':_0x17bab9[_0x55f4('0x56')]['id']}})['then'](handleEntityNotFound(_0x3a0282,null))[_0x55f4('0x22')](function(_0x1e4df4){if(_0x1e4df4){_0x10482a['model']=_[_0x55f4('0x44')](db['OpenchannelInteraction'][_0x55f4('0x40')]);_0x10482a[_0x55f4('0x45')]=_[_0x55f4('0x44')](_0x17bab9[_0x55f4('0x45')]);_0x10482a[_0x55f4('0x46')]=_[_0x55f4('0x47')](_0x10482a['model'],_0x10482a['query']);_0x42064c['attributes']=_[_0x55f4('0x47')](_0x10482a[_0x55f4('0x49')],qs[_0x55f4('0x4a')](_0x17bab9[_0x55f4('0x45')][_0x55f4('0x4a')]));_0x42064c[_0x55f4('0x48')]=_0x42064c['attributes'][_0x55f4('0x4b')]?_0x42064c[_0x55f4('0x48')]:_0x10482a[_0x55f4('0x49')];if(!_0x17bab9[_0x55f4('0x45')][_0x55f4('0x67')](_0x55f4('0x6f'))){_0x42064c[_0x55f4('0x30')]=qs[_0x55f4('0x30')](_0x17bab9[_0x55f4('0x45')]['limit']);_0x42064c[_0x55f4('0x2f')]=qs['offset'](_0x17bab9[_0x55f4('0x45')]['offset']);}_0x42064c[_0x55f4('0x4c')]=qs[_0x55f4('0x4d')](_0x17bab9[_0x55f4('0x45')]['sort']);_0x42064c[_0x55f4('0x4e')]=qs['filters'](_[_0x55f4('0x4f')](_0x17bab9[_0x55f4('0x45')],_0x10482a[_0x55f4('0x46')]));_0x42064c['where'][_0x55f4('0x68')]=_0x1e4df4['id'];if(_0x17bab9[_0x55f4('0x45')][_0x55f4('0x69')]){_0x42064c[_0x55f4('0x4e')]=_[_0x55f4('0x50')](_0x42064c[_0x55f4('0x4e')],{'$or':_[_0x55f4('0x3e')](_0x42064c[_0x55f4('0x48')],function(_0x1c1e29){var _0x40d099={};_0x40d099[_0x1c1e29]={'$like':'%'+_0x17bab9[_0x55f4('0x45')][_0x55f4('0x69')]+'%'};return _0x40d099;})});}_0x42064c=_[_0x55f4('0x50')]({},_0x42064c,_0x17bab9[_0x55f4('0x51')]);return db[_0x55f4('0x90')][_0x55f4('0x32')]({'where':_0x42064c[_0x55f4('0x4e')]})['then'](function(_0xa9cee5){_0x1d698a[_0x55f4('0x32')]=_0xa9cee5;if(_0x17bab9[_0x55f4('0x45')][_0x55f4('0x52')]){_0x42064c[_0x55f4('0x53')]=[{'model':db[_0x55f4('0x72')],'as':_0x55f4('0xa5'),'required':![]},{'model':db[_0x55f4('0x9c')],'as':'Owner','attributes':['name',_0x55f4('0xa6'),_0x55f4('0xa7')],'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x55f4('0x3b'),'color'],'where':_0x17bab9[_0x55f4('0x45')]['tag']?{'id':_0x17bab9[_0x55f4('0x45')][_0x55f4('0xa8')]}:undefined,'required':_0x17bab9[_0x55f4('0x45')]['tag']?!![]:![]}];}return db[_0x55f4('0x90')][_0x55f4('0x70')](_0x42064c);})[_0x55f4('0x22')](function(_0x4d1fc9){_0x1d698a['rows']=_0x4d1fc9;return _0x1d698a;});}})[_0x55f4('0x22')](respondWithFilteredResult(_0x3a0282,_0x42064c))[_0x55f4('0x2b')](handleError(_0x3a0282,null));};exports[_0x55f4('0xa9')]=function(_0x3ba2ae,_0x2136fe,_0x39820b){return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x3ba2ae[_0x55f4('0x56')]['id']}})['then'](handleEntityNotFound(_0x2136fe,null))['then'](function(_0x480ee8){if(_0x480ee8){return _0x480ee8['addAgents'](_0x3ba2ae[_0x55f4('0x5a')][_0x55f4('0x6b')],_[_0x55f4('0xaa')](_0x3ba2ae[_0x55f4('0x5a')],[_0x55f4('0x6b'),'id'])||{})['spread'](function(_0x3c10ed){for(var _0x1bc850=0x0;_0x1bc850<_0x3ba2ae['body'][_0x55f4('0x6b')][_0x55f4('0x4b')];_0x1bc850+=0x1){socket['emit'](_0x55f4('0xab'),{'UserId':Number(_0x3ba2ae[_0x55f4('0x5a')][_0x55f4('0x6b')][_0x1bc850]),'OpenchannelAccountId':Number(_0x3ba2ae[_0x55f4('0x56')]['id'])});}return _0x3c10ed;});}})[_0x55f4('0x22')](respondWithResult(_0x2136fe,null))[_0x55f4('0x2b')](handleError(_0x2136fe,null));};exports['removeAgents']=function(_0x23a2a1,_0x236a0f,_0x52227c){return db[_0x55f4('0x3f')][_0x55f4('0x58')]({'where':{'id':_0x23a2a1[_0x55f4('0x56')]['id']}})['then'](handleEntityNotFound(_0x236a0f,null))[_0x55f4('0x22')](function(_0x490921){if(_0x490921){return _0x490921['removeAgents'](_0x23a2a1[_0x55f4('0x45')][_0x55f4('0x6b')])['then'](function(){if(_[_0x55f4('0xac')](_0x23a2a1[_0x55f4('0x45')][_0x55f4('0x6b')])){for(var _0x3d2a59=0x0;_0x3d2a59<_0x23a2a1['query']['ids'][_0x55f4('0x4b')];_0x3d2a59+=0x1){socket[_0x55f4('0xad')]('userOpenchannelAccount:remove',{'UserId':Number(_0x23a2a1[_0x55f4('0x45')][_0x55f4('0x6b')][_0x3d2a59]),'OpenchannelAccountId':Number(_0x23a2a1[_0x55f4('0x56')]['id'])});}}else{socket[_0x55f4('0xad')](_0x55f4('0xae'),{'UserId':Number(_0x23a2a1['query'][_0x55f4('0x6b')]),'OpenchannelAccountId':Number(_0x23a2a1[_0x55f4('0x56')]['id'])});}});}})[_0x55f4('0x22')](respondWithStatusCode(_0x236a0f,null))[_0x55f4('0x2b')](handleError(_0x236a0f,null));};exports[_0x55f4('0xaf')]=function(_0xdf6bcb,_0x18eb66,_0x5aae87){var _0xcacd2a={};var _0x2dadec={};var _0x15ba2a;var _0x371e18;return db[_0x55f4('0x3f')]['findOne']({'where':{'id':_0xdf6bcb[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x18eb66,null))['then'](function(_0x3851bb){if(_0x3851bb){_0x15ba2a=_0x3851bb;_0x2dadec['model']=_[_0x55f4('0x44')](db['User'][_0x55f4('0x40')]);_0x2dadec[_0x55f4('0x45')]=_[_0x55f4('0x44')](_0xdf6bcb[_0x55f4('0x45')]);_0x2dadec[_0x55f4('0x46')]=_[_0x55f4('0x47')](_0x2dadec[_0x55f4('0x49')],_0x2dadec[_0x55f4('0x45')]);_0xcacd2a[_0x55f4('0x48')]=_[_0x55f4('0x47')](_0x2dadec[_0x55f4('0x49')],qs[_0x55f4('0x4a')](_0xdf6bcb[_0x55f4('0x45')][_0x55f4('0x4a')]));_0xcacd2a[_0x55f4('0x48')]=_0xcacd2a['attributes']['length']?_0xcacd2a['attributes']:_0x2dadec[_0x55f4('0x49')];_0xcacd2a[_0x55f4('0x4c')]=qs[_0x55f4('0x4d')](_0xdf6bcb[_0x55f4('0x45')][_0x55f4('0x4d')]);_0xcacd2a[_0x55f4('0x4e')]=qs['filters'](_[_0x55f4('0x4f')](_0xdf6bcb['query'],_0x2dadec['filters']));if(_0xdf6bcb[_0x55f4('0x45')][_0x55f4('0x69')]){_0xcacd2a[_0x55f4('0x4e')]=_['merge'](_0xcacd2a['where'],{'$or':_[_0x55f4('0x3e')](_0xcacd2a[_0x55f4('0x48')],function(_0xface97){var _0x160e3f={};_0x160e3f[_0xface97]={'$like':'%'+_0xdf6bcb[_0x55f4('0x45')]['filter']+'%'};return _0x160e3f;})});}_0xcacd2a=_['merge']({},_0xcacd2a,_0xdf6bcb['options']);return _0x15ba2a[_0x55f4('0xaf')](_0xcacd2a);}})[_0x55f4('0x22')](function(_0x2edc5d){if(_0x2edc5d){_0x371e18=_0x2edc5d[_0x55f4('0x4b')];if(!_0xdf6bcb[_0x55f4('0x45')]['hasOwnProperty']('nolimit')){_0xcacd2a[_0x55f4('0x30')]=qs[_0x55f4('0x30')](_0xdf6bcb[_0x55f4('0x45')][_0x55f4('0x30')]);_0xcacd2a[_0x55f4('0x2f')]=qs[_0x55f4('0x2f')](_0xdf6bcb[_0x55f4('0x45')][_0x55f4('0x2f')]);}return _0x15ba2a[_0x55f4('0xaf')](_0xcacd2a);}})[_0x55f4('0x22')](function(_0x864762){if(_0x864762){return _0x864762?{'count':_0x371e18,'rows':_0x864762}:null;}})[_0x55f4('0x22')](respondWithResult(_0x18eb66,null))['catch'](handleError(_0x18eb66,null));};exports[_0x55f4('0xb0')]=function(_0x4fa2d3,_0x562efd,_0x40ae65){var _0x21c873,_0x544b5a,_0x4c4bfe;if(_[_0x55f4('0x79')](_0x4fa2d3[_0x55f4('0x5a')][_0x55f4('0x5a')])||_0x4fa2d3[_0x55f4('0x5a')][_0x55f4('0x5a')]===''){throw new db[(_0x55f4('0x7c'))][(_0x55f4('0x73'))](_0x55f4('0x7d'));}if(_['isNil'](_0x4fa2d3[_0x55f4('0x5a')]['to'])){}_0x21c873=_0x4fa2d3[_0x55f4('0x5a')]['to'];return db[_0x55f4('0x3f')]['findOne']({'where':{'id':_0x4fa2d3[_0x55f4('0x56')]['id']}})[_0x55f4('0x22')](handleEntityNotFound(_0x562efd,null))[_0x55f4('0x22')](function(_0x2db142){if(_0x2db142){return db['OpenchannelAccount'][_0x55f4('0x58')]({'where':{'id':_0x2db142['id']},'include':[{'model':db['CmList'],'as':_0x55f4('0x80'),'include':[{'model':db[_0x55f4('0x72')],'as':_0x55f4('0x81'),'where':{[_0x2db142[_0x55f4('0x7f')]]:_0x21c873},'limit':0x1,'order':[[_0x55f4('0x76'),_0x55f4('0x82')]]}]}]})['then'](handleEntityNotFound(_0x562efd,null))[_0x55f4('0x22')](function(_0xd4abf6){if(_0xd4abf6&&_0xd4abf6[_0x55f4('0x80')]){_0x544b5a=_0xd4abf6[_0x55f4('0x36')]({'plain':!![]});if(_0x544b5a[_0x55f4('0x80')]&&_0x544b5a['List'][_0x55f4('0x81')][_0x55f4('0x4b')]){return _0x544b5a[_0x55f4('0x80')][_0x55f4('0x81')][0x0];}return db[_0x55f4('0x72')][_0x55f4('0x59')](_['defaults'](_0x4fa2d3[_0x55f4('0x5a')],{'firstName':_0x21c873,[_0xd4abf6[_0x55f4('0x7f')]]:_0x21c873,'phone':_0x21c873,'ListId':_0x544b5a['ListId']}));}})[_0x55f4('0x22')](handleEntityNotFound(_0x562efd,null))[_0x55f4('0x22')](function(_0x32b78f){if(_0x32b78f){_0x4c4bfe=_0x32b78f;return db[_0x55f4('0x90')][_0x55f4('0x58')]({'where':{'ContactId':_0x4c4bfe['id'],'closed':![],'OpenchannelAccountId':_0x544b5a['id']}})[_0x55f4('0x22')](function(_0x3096c4){if(_0x3096c4){return[_0x3096c4,![]];}return db[_0x55f4('0x90')][_0x55f4('0x59')]({'UserId':_0x4fa2d3[_0x55f4('0x5b')]['id'],'ContactId':_0x4c4bfe['id'],'OpenchannelAccountId':_0x544b5a['id'],'lastMsgDirection':_0x55f4('0xb1'),'Messages':[_[_0x55f4('0x50')](_0x4fa2d3['body'],{'read':![],'body':_0x4fa2d3[_0x55f4('0x5a')]['body'],'OpenchannelAccountId':_0x544b5a['id'],'UserId':_0x4fa2d3[_0x55f4('0x5b')]['id'],'ContactId':_0x4c4bfe['id']})]},{'include':[{'model':db[_0x55f4('0xb2')],'as':_0x55f4('0xb3')}]})[_0x55f4('0x22')](function(_0x1e9153){return[_0x1e9153,!![]];});});}})[_0x55f4('0xb4')](function(_0x3dea14,_0x159e99){if(_0x159e99){return _0x3dea14;}return db[_0x55f4('0xb2')][_0x55f4('0x59')](_['merge'](_0x4fa2d3[_0x55f4('0x5a')],{'read':![],'body':_0x4fa2d3[_0x55f4('0x5a')]['body'],'OpenchannelAccountId':_0x544b5a['id'],'OpenchannelInteractionId':_0x3dea14['id'],'UserId':_0x4fa2d3[_0x55f4('0x5b')]['id'],'ContactId':_0x4c4bfe['id']}))[_0x55f4('0x22')](function(_0x40b5f2){_0x3dea14['dataValues'][_0x55f4('0xb3')]=[];_0x3dea14[_0x55f4('0xb5')][_0x55f4('0xb3')]['push'](_0x40b5f2[_0x55f4('0xb5')]);return _0x3dea14;});});}})[_0x55f4('0x22')](respondWithResult(_0x562efd,null))['catch'](handleError(_0x562efd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb688=['../../mysqldb','OpenchannelAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports'];(function(_0x767b78,_0x16270b){var _0x5daeed=function(_0x4b0739){while(--_0x4b0739){_0x767b78['push'](_0x767b78['shift']());}};_0x5daeed(++_0x16270b);}(_0xb688,0xcf));var _0x8b68=function(_0x3b344a,_0x1f0768){_0x3b344a=_0x3b344a-0x0;var _0x4f304d=_0xb688[_0x3b344a];return _0x4f304d;};'use strict';var EventEmitter=require('events');var OpenchannelAccount=require(_0x8b68('0x0'))['db'][_0x8b68('0x1')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0x8b68('0x2')](0x0);var events={'afterCreate':_0x8b68('0x3'),'afterUpdate':_0x8b68('0x4'),'afterDestroy':_0x8b68('0x5')};function emitEvent(_0x4e281c){return function(_0x41030e,_0x27925d,_0x30f33d){OpenchannelAccountEvents[_0x8b68('0x6')](_0x4e281c+':'+_0x41030e['id'],_0x41030e);OpenchannelAccountEvents['emit'](_0x4e281c,_0x41030e);_0x30f33d(null);};}for(var e in events){if(events[_0x8b68('0x7')](e)){var event=events[e];OpenchannelAccount['hook'](e,emitEvent(event));}}module[_0x8b68('0x8')]=OpenchannelAccountEvents;
\ No newline at end of file
+var _0x6e6c=['../../mysqldb','setMaxListeners','save','emit','hook','exports','events'];(function(_0x2f9471,_0x1eb1fb){var _0x5aa305=function(_0x146120){while(--_0x146120){_0x2f9471['push'](_0x2f9471['shift']());}};_0x5aa305(++_0x1eb1fb);}(_0x6e6c,0xc3));var _0xc6e6=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x6e6c[_0x14add3];return _0x4a174f;};'use strict';var EventEmitter=require(_0xc6e6('0x0'));var OpenchannelAccount=require(_0xc6e6('0x1'))['db']['OpenchannelAccount'];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0xc6e6('0x2')](0x0);var events={'afterCreate':_0xc6e6('0x3'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x2e97f5){return function(_0x5a9e2b,_0x40b7e1,_0x4b13f0){OpenchannelAccountEvents[_0xc6e6('0x4')](_0x2e97f5+':'+_0x5a9e2b['id'],_0x5a9e2b);OpenchannelAccountEvents[_0xc6e6('0x4')](_0x2e97f5,_0x5a9e2b);_0x4b13f0(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelAccount[_0xc6e6('0x5')](e,emitEvent(event));}}module[_0xc6e6('0x6')]=OpenchannelAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x25a6d5,_0x2b55df){var _0x4ea1a2=function(_0x5a54e0){while(--_0x5a54e0){_0x25a6d5['push'](_0x25a6d5['shift']());}};_0x4ea1a2(++_0x2b55df);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0xa9e0[_0xf0bcac];return _0x4e4c65;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0xfeaca6,_0xd8181){var _0x5ec051=function(_0x14519e){while(--_0x14519e){_0xfeaca6['push'](_0xfeaca6['shift']());}};_0x5ec051(++_0xd8181);}(_0xa9e0,0x123));var _0x0a9e=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xa9e0[_0x187ee1];return _0x388160;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','moment','../../mysqldb','../../config/logger','rpc','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','./openchannelAccount.socket','register','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent'];(function(_0x2a0350,_0x249319){var _0x425220=function(_0x1d5f78){while(--_0x1d5f78){_0x2a0350['push'](_0x2a0350['shift']());}};_0x425220(++_0x249319);}(_0xda3f,0xec));var _0xfda3=function(_0x57ea8b,_0x421474){_0x57ea8b=_0x57ea8b-0x0;var _0x50f71d=_0xda3f[_0x57ea8b];return _0x50f71d;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var moment=require(_0xfda3('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfda3('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xfda3('0x3'))(_0xfda3('0x4'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x5'));var client=jayson[_0xfda3('0x6')]['http']({'port':0x232a});config['redis']=_[_0xfda3('0x7')](config[_0xfda3('0x8')],{'host':_0xfda3('0x9'),'port':0x18eb});var socket=require(_0xfda3('0xa'))(new Redis(config[_0xfda3('0x8')]));require(_0xfda3('0xb'))[_0xfda3('0xc')](socket);function respondWithRpcPromise(_0x1b1ea6,_0xdc5b45,_0x14d549){return new BPromise(function(_0x102643,_0x4713ba){return client['request'](_0x1b1ea6,_0x14d549)[_0xfda3('0xd')](function(_0x14936b){logger[_0xfda3('0xe')](_0xfda3('0xf'),_0xdc5b45,_0xfda3('0x10'));logger['debug'](_0xfda3('0x11'),_0xdc5b45,'request\x20sent',JSON[_0xfda3('0x12')](_0x14936b));if(_0x14936b[_0xfda3('0x13')]){if(_0x14936b['error']['code']===0x1f4){logger['error'](_0xfda3('0xf'),_0xdc5b45,_0x14936b[_0xfda3('0x13')]['message']);return _0x4713ba(_0x14936b['error']['message']);}logger[_0xfda3('0x13')](_0xfda3('0xf'),_0xdc5b45,_0x14936b[_0xfda3('0x13')][_0xfda3('0x14')]);return _0x102643(_0x14936b[_0xfda3('0x13')][_0xfda3('0x14')]);}else{logger[_0xfda3('0xe')](_0xfda3('0xf'),_0xdc5b45,_0xfda3('0x10'));_0x102643(_0x14936b[_0xfda3('0x15')]['message']);}})[_0xfda3('0x16')](function(_0x1bbdda){logger[_0xfda3('0x13')](_0xfda3('0xf'),_0xdc5b45,_0x1bbdda);_0x4713ba(_0x1bbdda);});});}
\ No newline at end of file
+var _0xc29b=['rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelAccount.socket','register','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','OpenchannelAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger'];(function(_0x20aeca,_0x42b7cf){var _0x1ba365=function(_0x2c7ee6){while(--_0x2c7ee6){_0x20aeca['push'](_0x20aeca['shift']());}};_0x1ba365(++_0x42b7cf);}(_0xc29b,0x12d));var _0xbc29=function(_0x1bd54e,_0x31fd82){_0x1bd54e=_0x1bd54e-0x0;var _0x286879=_0xc29b[_0x1bd54e];return _0x286879;};'use strict';var _=require(_0xbc29('0x0'));var util=require(_0xbc29('0x1'));var moment=require(_0xbc29('0x2'));var BPromise=require('bluebird');var rs=require(_0xbc29('0x3'));var fs=require('fs');var Redis=require(_0xbc29('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xbc29('0x5'));var logger=require(_0xbc29('0x6'))(_0xbc29('0x7'));var config=require(_0xbc29('0x8'));var jayson=require(_0xbc29('0x9'));var client=jayson[_0xbc29('0xa')][_0xbc29('0xb')]({'port':0x232a});config[_0xbc29('0xc')]=_[_0xbc29('0xd')](config[_0xbc29('0xc')],{'host':_0xbc29('0xe'),'port':0x18eb});var socket=require(_0xbc29('0xf'))(new Redis(config[_0xbc29('0xc')]));require(_0xbc29('0x10'))[_0xbc29('0x11')](socket);function respondWithRpcPromise(_0x36d1e3,_0x13a581,_0x2f591c){return new BPromise(function(_0x35ece9,_0x2710ad){return client['request'](_0x36d1e3,_0x2f591c)[_0xbc29('0x12')](function(_0x888953){logger[_0xbc29('0x13')](_0xbc29('0x14'),_0x13a581,_0xbc29('0x15'));logger[_0xbc29('0x16')](_0xbc29('0x17'),_0x13a581,'request\x20sent',JSON[_0xbc29('0x18')](_0x888953));if(_0x888953[_0xbc29('0x19')]){if(_0x888953[_0xbc29('0x19')]['code']===0x1f4){logger['error'](_0xbc29('0x14'),_0x13a581,_0x888953['error'][_0xbc29('0x1a')]);return _0x2710ad(_0x888953[_0xbc29('0x19')][_0xbc29('0x1a')]);}logger['error'](_0xbc29('0x14'),_0x13a581,_0x888953['error'][_0xbc29('0x1a')]);return _0x35ece9(_0x888953[_0xbc29('0x19')][_0xbc29('0x1a')]);}else{logger[_0xbc29('0x13')](_0xbc29('0x14'),_0x13a581,_0xbc29('0x15'));_0x35ece9(_0x888953['result'][_0xbc29('0x1a')]);}})[_0xbc29('0x1b')](function(_0x4eadbe){logger['error'](_0xbc29('0x14'),_0x13a581,_0x4eadbe);_0x2710ad(_0x4eadbe);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x261b=['openchannelAccount:','./openchannelAccount.events','save','removeListener','length'];(function(_0x2eb813,_0x222735){var _0x2bd580=function(_0x19cd50){while(--_0x19cd50){_0x2eb813['push'](_0x2eb813['shift']());}};_0x2bd580(++_0x222735);}(_0x261b,0x15a));var _0xb261=function(_0x1d3b29,_0x5d7cb3){_0x1d3b29=_0x1d3b29-0x0;var _0xaa575b=_0x261b[_0x1d3b29];return _0xaa575b;};'use strict';var OpenchannelAccountEvents=require(_0xb261('0x0'));var events=[_0xb261('0x1'),'remove','update'];function createListener(_0x5d9cfe,_0x48c7f0){return function(_0x392d5c){_0x48c7f0['emit'](_0x5d9cfe,_0x392d5c);};}function removeListener(_0x30540c,_0x589255){return function(){OpenchannelAccountEvents[_0xb261('0x2')](_0x30540c,_0x589255);};}exports['register']=function(_0x10f7ba){for(var _0xaf0725=0x0,_0x1264c8=events[_0xb261('0x3')];_0xaf0725<_0x1264c8;_0xaf0725++){var _0x5740e1=events[_0xaf0725];var _0x756381=createListener(_0xb261('0x4')+_0x5740e1,_0x10f7ba);OpenchannelAccountEvents['on'](_0x5740e1,_0x756381);}};
\ No newline at end of file
+var _0x7d5a=['openchannelAccount:','./openchannelAccount.events','save','remove','update','removeListener','register'];(function(_0x128ee7,_0xbfbe00){var _0x38450a=function(_0x570931){while(--_0x570931){_0x128ee7['push'](_0x128ee7['shift']());}};_0x38450a(++_0xbfbe00);}(_0x7d5a,0x17b));var _0xa7d5=function(_0x3c626a,_0xa3bc94){_0x3c626a=_0x3c626a-0x0;var _0x336d75=_0x7d5a[_0x3c626a];return _0x336d75;};'use strict';var OpenchannelAccountEvents=require(_0xa7d5('0x0'));var events=[_0xa7d5('0x1'),_0xa7d5('0x2'),_0xa7d5('0x3')];function createListener(_0x185fa0,_0x16d639){return function(_0x10df7a){_0x16d639['emit'](_0x185fa0,_0x10df7a);};}function removeListener(_0x5e41d3,_0x36059b){return function(){OpenchannelAccountEvents[_0xa7d5('0x4')](_0x5e41d3,_0x36059b);};}exports[_0xa7d5('0x5')]=function(_0x284432){for(var _0x1e6722=0x0,_0x80431a=events['length'];_0x1e6722<_0x80431a;_0x1e6722++){var _0x21ccfa=events[_0x1e6722];var _0xb5bcd2=createListener(_0xa7d5('0x6')+_0x21ccfa,_0x284432);OpenchannelAccountEvents['on'](_0x21ccfa,_0xb5bcd2);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3eef=['put','update','delete','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','post','create'];(function(_0x2aad38,_0x4753fe){var _0x1fc52e=function(_0x5d87af){while(--_0x5d87af){_0x2aad38['push'](_0x2aad38['shift']());}};_0x1fc52e(++_0x4753fe);}(_0x3eef,0x135));var _0xf3ee=function(_0x3145c6,_0x57dfe1){_0x3145c6=_0x3145c6-0x0;var _0x1564b9=_0x3eef[_0x3145c6];return _0x1564b9;};'use strict';var multer=require(_0xf3ee('0x0'));var util=require(_0xf3ee('0x1'));var path=require(_0xf3ee('0x2'));var timeout=require('connect-timeout');var express=require(_0xf3ee('0x3'));var router=express[_0xf3ee('0x4')]();var fs_extra=require(_0xf3ee('0x5'));var auth=require(_0xf3ee('0x6'));var interaction=require(_0xf3ee('0x7'));var config=require(_0xf3ee('0x8'));var controller=require('./openchannelApplication.controller');router[_0xf3ee('0x9')]('/',auth[_0xf3ee('0xa')](),controller[_0xf3ee('0xb')]);router[_0xf3ee('0x9')](_0xf3ee('0xc'),auth[_0xf3ee('0xa')](),controller['show']);router[_0xf3ee('0xd')]('/',auth[_0xf3ee('0xa')](),controller[_0xf3ee('0xe')]);router[_0xf3ee('0xf')]('/:id',auth[_0xf3ee('0xa')](),controller[_0xf3ee('0x10')]);router[_0xf3ee('0x11')](_0xf3ee('0xc'),auth[_0xf3ee('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x492c=['fs-extra','../../components/auth/service','../../components/interaction/service','./openchannelApplication.controller','get','isAuthenticated','/:id','post','create','put','delete','exports','path','connect-timeout'];(function(_0x128b26,_0x5b77f7){var _0x2b2d48=function(_0x1c9aa7){while(--_0x1c9aa7){_0x128b26['push'](_0x128b26['shift']());}};_0x2b2d48(++_0x5b77f7);}(_0x492c,0x1cc));var _0xc492=function(_0x156be7,_0x96808c){_0x156be7=_0x156be7-0x0;var _0x43ea73=_0x492c[_0x156be7];return _0x43ea73;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xc492('0x0'));var timeout=require(_0xc492('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xc492('0x2'));var auth=require(_0xc492('0x3'));var interaction=require(_0xc492('0x4'));var config=require('../../config/environment');var controller=require(_0xc492('0x5'));router[_0xc492('0x6')]('/',auth[_0xc492('0x7')](),controller['index']);router[_0xc492('0x6')](_0xc492('0x8'),auth[_0xc492('0x7')](),controller['show']);router[_0xc492('0x9')]('/',auth[_0xc492('0x7')](),controller[_0xc492('0xa')]);router[_0xc492('0xb')](_0xc492('0x8'),auth['isAuthenticated'](),controller['update']);router[_0xc492('0xc')](_0xc492('0x8'),auth[_0xc492('0x7')](),controller['destroy']);module[_0xc492('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89ba=['STRING','noop','TEXT','exports','INTEGER'];(function(_0x208d2c,_0x1c2cf5){var _0x4a670b=function(_0x2aee52){while(--_0x2aee52){_0x208d2c['push'](_0x208d2c['shift']());}};_0x4a670b(++_0x1c2cf5);}(_0x89ba,0x1d4));var _0xa89b=function(_0x3c50c1,_0x5b10d3){_0x3c50c1=_0x3c50c1-0x0;var _0x2aab9b=_0x89ba[_0x3c50c1];return _0x2aab9b;};'use strict';var Sequelize=require('sequelize');module[_0xa89b('0x0')]={'priority':{'type':Sequelize[_0xa89b('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0xa89b('0x2')],'allowNull':![],'defaultValue':_0xa89b('0x3')},'appdata':{'type':Sequelize[_0xa89b('0x4')]()},'description':{'type':Sequelize[_0xa89b('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0x9976=['INTEGER','noop','TEXT','STRING','*,*,*,*','exports'];(function(_0x204c33,_0x307c00){var _0x2adbd7=function(_0x23836c){while(--_0x23836c){_0x204c33['push'](_0x204c33['shift']());}};_0x2adbd7(++_0x307c00);}(_0x9976,0x113));var _0x6997=function(_0x3a1131,_0x1f4c0e){_0x3a1131=_0x3a1131-0x0;var _0x1bf96e=_0x9976[_0x3a1131];return _0x1bf96e;};'use strict';var Sequelize=require('sequelize');module[_0x6997('0x0')]={'priority':{'type':Sequelize[_0x6997('0x1')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x6997('0x2')},'appdata':{'type':Sequelize[_0x6997('0x3')]()},'description':{'type':Sequelize[_0x6997('0x4')]},'interval':{'type':Sequelize[_0x6997('0x4')],'defaultValue':_0x6997('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4902=['index','map','OpenchannelApplication','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','type','VIRTUAL','filter','merge','options','include','rows','catch','show','params','includeAll','find','create','body','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4902,0x156));var _0x2490=function(_0x2de82d,_0x17629d){_0x2de82d=_0x2de82d-0x0;var _0x127930=_0x4902[_0x2de82d];return _0x127930;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2490('0x0'));var jsonpatch=require(_0x2490('0x1'));var rp=require(_0x2490('0x2'));var moment=require(_0x2490('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x2490('0x4'));var util=require(_0x2490('0x5'));var path=require('path');var sox=require(_0x2490('0x6'));var csv=require(_0x2490('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2490('0x8'));var _=require(_0x2490('0x9'));var squel=require(_0x2490('0xa'));var crypto=require(_0x2490('0xb'));var jsforce=require(_0x2490('0xc'));var deskjs=require(_0x2490('0xd'));var toCsv=require(_0x2490('0x7'));var querystring=require(_0x2490('0xe'));var Papa=require(_0x2490('0xf'));var Redis=require(_0x2490('0x10'));var authService=require(_0x2490('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x2490('0x12'));var hardwareService=require(_0x2490('0x13'));var logger=require(_0x2490('0x14'))(_0x2490('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x2490('0x16'));var db=require(_0x2490('0x17'))['db'];function respondWithStatusCode(_0x1fa454,_0x5267c8){_0x5267c8=_0x5267c8||0xcc;return function(_0x380aff){if(_0x380aff){return _0x1fa454[_0x2490('0x18')](_0x5267c8);}return _0x1fa454['status'](_0x5267c8)[_0x2490('0x19')]();};}function respondWithResult(_0xfd9854,_0x10dc63){_0x10dc63=_0x10dc63||0xc8;return function(_0x353e55){if(_0x353e55){return _0xfd9854[_0x2490('0x1a')](_0x10dc63)[_0x2490('0x1b')](_0x353e55);}};}function respondWithFilteredResult(_0x529004,_0x32516e){return function(_0x1b7c71){if(_0x1b7c71){var _0x1585df=typeof _0x32516e[_0x2490('0x1c')]===_0x2490('0x1d')&&typeof _0x32516e['limit']===_0x2490('0x1d');var _0xf41946=_0x1b7c71[_0x2490('0x1e')];var _0x4ab5a6=_0x1585df?0x0:_0x32516e['offset'];var _0x598194=_0x1585df?_0x1b7c71[_0x2490('0x1e')]:_0x32516e['offset']+_0x32516e[_0x2490('0x1f')];var _0x3d074f;if(_0x598194>=_0xf41946){_0x598194=_0xf41946;_0x3d074f=0xc8;}else{_0x3d074f=0xce;}_0x529004[_0x2490('0x1a')](_0x3d074f);return _0x529004[_0x2490('0x20')](_0x2490('0x21'),_0x4ab5a6+'-'+_0x598194+'/'+_0xf41946)[_0x2490('0x1b')](_0x1b7c71);}return null;};}function patchUpdates(_0x4d0da6){return function(_0x56fad0){try{jsonpatch[_0x2490('0x22')](_0x56fad0,_0x4d0da6,!![]);}catch(_0x596263){return BPromise[_0x2490('0x23')](_0x596263);}return _0x56fad0[_0x2490('0x24')]();};}function saveUpdates(_0x2c8213,_0x10e64c){return function(_0x5b7f14){if(_0x5b7f14){return _0x5b7f14[_0x2490('0x25')](_0x2c8213)[_0x2490('0x26')](function(_0x2c4d84){return _0x2c4d84;});}return null;};}function removeEntity(_0x2db7e4,_0x5699ba){return function(_0x1c92b9){if(_0x1c92b9){return _0x1c92b9[_0x2490('0x27')]()[_0x2490('0x26')](function(){_0x2db7e4['status'](0xcc)[_0x2490('0x19')]();});}};}function handleEntityNotFound(_0x1249f0,_0x1b9c20){return function(_0x375268){if(!_0x375268){_0x1249f0[_0x2490('0x18')](0x194);}return _0x375268;};}function handleError(_0x160d5d,_0x59b39a){_0x59b39a=_0x59b39a||0x1f4;return function(_0x2dda08){logger['error'](_0x2dda08[_0x2490('0x28')]);if(_0x2dda08[_0x2490('0x29')]){delete _0x2dda08[_0x2490('0x29')];}_0x160d5d[_0x2490('0x1a')](_0x59b39a)[_0x2490('0x2a')](_0x2dda08);};}exports[_0x2490('0x2b')]=function(_0x3f54ac,_0x499b60){var _0x2125d4={},_0x417a70={},_0x45dfa7={'count':0x0,'rows':[]};var _0x46e4a0=_[_0x2490('0x2c')](db[_0x2490('0x2d')][_0x2490('0x2e')],function(_0x2b6dcb){return{'name':_0x2b6dcb[_0x2490('0x2f')],'type':_0x2b6dcb['type'][_0x2490('0x30')]};});_0x417a70['model']=_[_0x2490('0x2c')](_0x46e4a0,_0x2490('0x29'));_0x417a70[_0x2490('0x31')]=_[_0x2490('0x32')](_0x3f54ac['query']);_0x417a70[_0x2490('0x33')]=_[_0x2490('0x34')](_0x417a70['model'],_0x417a70[_0x2490('0x31')]);_0x2125d4[_0x2490('0x35')]=_['intersection'](_0x417a70[_0x2490('0x36')],qs[_0x2490('0x37')](_0x3f54ac[_0x2490('0x31')]['fields']));_0x2125d4['attributes']=_0x2125d4[_0x2490('0x35')][_0x2490('0x38')]?_0x2125d4['attributes']:_0x417a70[_0x2490('0x36')];if(!_0x3f54ac[_0x2490('0x31')][_0x2490('0x39')](_0x2490('0x3a'))){_0x2125d4[_0x2490('0x1f')]=qs[_0x2490('0x1f')](_0x3f54ac[_0x2490('0x31')][_0x2490('0x1f')]);_0x2125d4['offset']=qs[_0x2490('0x1c')](_0x3f54ac[_0x2490('0x31')][_0x2490('0x1c')]);}_0x2125d4[_0x2490('0x3b')]=qs[_0x2490('0x3c')](_0x3f54ac[_0x2490('0x31')][_0x2490('0x3c')]);_0x2125d4['where']=qs[_0x2490('0x33')](_[_0x2490('0x3d')](_0x3f54ac['query'],_0x417a70[_0x2490('0x33')]),_0x46e4a0);if(_0x3f54ac[_0x2490('0x31')]['filter']){_0x2125d4[_0x2490('0x3e')]=_['merge'](_0x2125d4['where'],{'$or':_[_0x2490('0x2c')](_0x46e4a0,function(_0xe1c4fa){if(_0xe1c4fa[_0x2490('0x3f')]!==_0x2490('0x40')){var _0x444209={};_0x444209[_0xe1c4fa[_0x2490('0x29')]]={'$like':'%'+_0x3f54ac[_0x2490('0x31')][_0x2490('0x41')]+'%'};return _0x444209;}})});}_0x2125d4=_[_0x2490('0x42')]({},_0x2125d4,_0x3f54ac[_0x2490('0x43')]);var _0x2bed3f={'where':_0x2125d4[_0x2490('0x3e')]};return db[_0x2490('0x2d')]['count'](_0x2bed3f)[_0x2490('0x26')](function(_0x353281){_0x45dfa7['count']=_0x353281;if(_0x3f54ac['query']['includeAll']){_0x2125d4[_0x2490('0x44')]=[{'all':!![]}];}return db[_0x2490('0x2d')]['findAll'](_0x2125d4);})[_0x2490('0x26')](function(_0x416fca){_0x45dfa7[_0x2490('0x45')]=_0x416fca;return _0x45dfa7;})[_0x2490('0x26')](respondWithFilteredResult(_0x499b60,_0x2125d4))[_0x2490('0x46')](handleError(_0x499b60,null));};exports[_0x2490('0x47')]=function(_0x1f40e6,_0x47bf1b){var _0x2bf7b8={'raw':!![],'where':{'id':_0x1f40e6[_0x2490('0x48')]['id']}},_0x4dc481={};_0x4dc481[_0x2490('0x36')]=_[_0x2490('0x32')](db['OpenchannelApplication'][_0x2490('0x2e')]);_0x4dc481[_0x2490('0x31')]=_[_0x2490('0x32')](_0x1f40e6['query']);_0x4dc481[_0x2490('0x33')]=_[_0x2490('0x34')](_0x4dc481[_0x2490('0x36')],_0x4dc481[_0x2490('0x31')]);_0x2bf7b8[_0x2490('0x35')]=_[_0x2490('0x34')](_0x4dc481[_0x2490('0x36')],qs[_0x2490('0x37')](_0x1f40e6['query']['fields']));_0x2bf7b8['attributes']=_0x2bf7b8[_0x2490('0x35')][_0x2490('0x38')]?_0x2bf7b8[_0x2490('0x35')]:_0x4dc481[_0x2490('0x36')];if(_0x1f40e6[_0x2490('0x31')][_0x2490('0x49')]){_0x2bf7b8['include']=[{'all':!![]}];}_0x2bf7b8=_[_0x2490('0x42')]({},_0x2bf7b8,_0x1f40e6[_0x2490('0x43')]);return db[_0x2490('0x2d')][_0x2490('0x4a')](_0x2bf7b8)[_0x2490('0x26')](handleEntityNotFound(_0x47bf1b,null))['then'](respondWithResult(_0x47bf1b,null))[_0x2490('0x46')](handleError(_0x47bf1b,null));};exports[_0x2490('0x4b')]=function(_0x14c2f3,_0x524e3b){return db[_0x2490('0x2d')][_0x2490('0x4b')](_0x14c2f3['body'],{})[_0x2490('0x26')](respondWithResult(_0x524e3b,0xc9))[_0x2490('0x46')](handleError(_0x524e3b,null));};exports['update']=function(_0x59e407,_0xfa981a){if(_0x59e407[_0x2490('0x4c')]['id']){delete _0x59e407[_0x2490('0x4c')]['id'];}return db['OpenchannelApplication'][_0x2490('0x4a')]({'where':{'id':_0x59e407[_0x2490('0x48')]['id']}})[_0x2490('0x26')](handleEntityNotFound(_0xfa981a,null))[_0x2490('0x26')](saveUpdates(_0x59e407[_0x2490('0x4c')],null))[_0x2490('0x26')](respondWithResult(_0xfa981a,null))[_0x2490('0x46')](handleError(_0xfa981a,null));};exports[_0x2490('0x27')]=function(_0x1f0a85,_0x35452e){return db[_0x2490('0x2d')][_0x2490('0x4a')]({'where':{'id':_0x1f0a85[_0x2490('0x48')]['id']}})[_0x2490('0x26')](handleEntityNotFound(_0x35452e,null))['then'](removeEntity(_0x35452e,null))['catch'](handleError(_0x35452e,null));};
\ No newline at end of file
+var _0xe2d0=['stack','name','send','index','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','OpenchannelApplication','findAll','rows','catch','params','rawAttributes','fields','find','create','body','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then'];(function(_0x43ec4d,_0xb0a15c){var _0x3be6de=function(_0x7a8ed9){while(--_0x7a8ed9){_0x43ec4d['push'](_0x43ec4d['shift']());}};_0x3be6de(++_0xb0a15c);}(_0xe2d0,0x70));var _0x0e2d=function(_0x1c927c,_0x43ab6f){_0x1c927c=_0x1c927c-0x0;var _0x4f9c30=_0xe2d0[_0x1c927c];return _0x4f9c30;};'use strict';var emlformat=require(_0x0e2d('0x0'));var rimraf=require(_0x0e2d('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0e2d('0x2'));var rp=require('request-promise');var moment=require(_0x0e2d('0x3'));var BPromise=require(_0x0e2d('0x4'));var Mustache=require(_0x0e2d('0x5'));var util=require(_0x0e2d('0x6'));var path=require(_0x0e2d('0x7'));var sox=require(_0x0e2d('0x8'));var csv=require(_0x0e2d('0x9'));var ejs=require(_0x0e2d('0xa'));var fs=require('fs');var fs_extra=require(_0x0e2d('0xb'));var _=require('lodash');var squel=require(_0x0e2d('0xc'));var crypto=require(_0x0e2d('0xd'));var jsforce=require(_0x0e2d('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x0e2d('0x9'));var querystring=require(_0x0e2d('0xf'));var Papa=require(_0x0e2d('0x10'));var Redis=require(_0x0e2d('0x11'));var authService=require(_0x0e2d('0x12'));var qs=require(_0x0e2d('0x13'));var as=require(_0x0e2d('0x14'));var hardwareService=require(_0x0e2d('0x15'));var logger=require(_0x0e2d('0x16'))('api');var utils=require(_0x0e2d('0x17'));var config=require(_0x0e2d('0x18'));var licenseUtil=require(_0x0e2d('0x19'));var db=require(_0x0e2d('0x1a'))['db'];function respondWithStatusCode(_0x1d7953,_0x310e2a){_0x310e2a=_0x310e2a||0xcc;return function(_0x18bbb7){if(_0x18bbb7){return _0x1d7953['sendStatus'](_0x310e2a);}return _0x1d7953[_0x0e2d('0x1b')](_0x310e2a)[_0x0e2d('0x1c')]();};}function respondWithResult(_0x5de1bb,_0x357d79){_0x357d79=_0x357d79||0xc8;return function(_0x5686c2){if(_0x5686c2){return _0x5de1bb[_0x0e2d('0x1b')](_0x357d79)[_0x0e2d('0x1d')](_0x5686c2);}};}function respondWithFilteredResult(_0x21e168,_0xdfef10){return function(_0x29089b){if(_0x29089b){var _0x5c60c9=typeof _0xdfef10[_0x0e2d('0x1e')]===_0x0e2d('0x1f')&&typeof _0xdfef10[_0x0e2d('0x20')]===_0x0e2d('0x1f');var _0x4bf60a=_0x29089b['count'];var _0x2c9d97=_0x5c60c9?0x0:_0xdfef10['offset'];var _0x4101ce=_0x5c60c9?_0x29089b[_0x0e2d('0x21')]:_0xdfef10[_0x0e2d('0x1e')]+_0xdfef10['limit'];var _0x3fbb35;if(_0x4101ce>=_0x4bf60a){_0x4101ce=_0x4bf60a;_0x3fbb35=0xc8;}else{_0x3fbb35=0xce;}_0x21e168['status'](_0x3fbb35);return _0x21e168[_0x0e2d('0x22')](_0x0e2d('0x23'),_0x2c9d97+'-'+_0x4101ce+'/'+_0x4bf60a)['json'](_0x29089b);}return null;};}function patchUpdates(_0xb5a983){return function(_0x1d7abe){try{jsonpatch[_0x0e2d('0x24')](_0x1d7abe,_0xb5a983,!![]);}catch(_0x2abcc4){return BPromise[_0x0e2d('0x25')](_0x2abcc4);}return _0x1d7abe['save']();};}function saveUpdates(_0x3e1954,_0xdfb1f6){return function(_0x43d58d){if(_0x43d58d){return _0x43d58d[_0x0e2d('0x26')](_0x3e1954)[_0x0e2d('0x27')](function(_0x34a16b){return _0x34a16b;});}return null;};}function removeEntity(_0x3fbb8b,_0x5e9017){return function(_0x4143de){if(_0x4143de){return _0x4143de['destroy']()[_0x0e2d('0x27')](function(){_0x3fbb8b[_0x0e2d('0x1b')](0xcc)[_0x0e2d('0x1c')]();});}};}function handleEntityNotFound(_0x5291d5,_0x1052c9){return function(_0x3f6bbe){if(!_0x3f6bbe){_0x5291d5['sendStatus'](0x194);}return _0x3f6bbe;};}function handleError(_0x171b95,_0x31406e){_0x31406e=_0x31406e||0x1f4;return function(_0x20d9b8){logger['error'](_0x20d9b8[_0x0e2d('0x28')]);if(_0x20d9b8[_0x0e2d('0x29')]){delete _0x20d9b8[_0x0e2d('0x29')];}_0x171b95[_0x0e2d('0x1b')](_0x31406e)[_0x0e2d('0x2a')](_0x20d9b8);};}exports[_0x0e2d('0x2b')]=function(_0x37c89d,_0x2f3eb8){var _0x51c2bf={},_0x1ac406={},_0x76b4a={'count':0x0,'rows':[]};var _0x46c2eb=_['map'](db['OpenchannelApplication']['rawAttributes'],function(_0x150463){return{'name':_0x150463[_0x0e2d('0x2c')],'type':_0x150463[_0x0e2d('0x2d')][_0x0e2d('0x2e')]};});_0x1ac406[_0x0e2d('0x2f')]=_[_0x0e2d('0x30')](_0x46c2eb,_0x0e2d('0x29'));_0x1ac406['query']=_[_0x0e2d('0x31')](_0x37c89d[_0x0e2d('0x32')]);_0x1ac406[_0x0e2d('0x33')]=_[_0x0e2d('0x34')](_0x1ac406[_0x0e2d('0x2f')],_0x1ac406[_0x0e2d('0x32')]);_0x51c2bf[_0x0e2d('0x35')]=_['intersection'](_0x1ac406[_0x0e2d('0x2f')],qs['fields'](_0x37c89d[_0x0e2d('0x32')]['fields']));_0x51c2bf[_0x0e2d('0x35')]=_0x51c2bf['attributes'][_0x0e2d('0x36')]?_0x51c2bf[_0x0e2d('0x35')]:_0x1ac406['model'];if(!_0x37c89d[_0x0e2d('0x32')][_0x0e2d('0x37')](_0x0e2d('0x38'))){_0x51c2bf[_0x0e2d('0x20')]=qs[_0x0e2d('0x20')](_0x37c89d['query'][_0x0e2d('0x20')]);_0x51c2bf[_0x0e2d('0x1e')]=qs['offset'](_0x37c89d[_0x0e2d('0x32')][_0x0e2d('0x1e')]);}_0x51c2bf['order']=qs[_0x0e2d('0x39')](_0x37c89d[_0x0e2d('0x32')][_0x0e2d('0x39')]);_0x51c2bf[_0x0e2d('0x3a')]=qs[_0x0e2d('0x33')](_[_0x0e2d('0x3b')](_0x37c89d[_0x0e2d('0x32')],_0x1ac406['filters']),_0x46c2eb);if(_0x37c89d['query']['filter']){_0x51c2bf[_0x0e2d('0x3a')]=_[_0x0e2d('0x3c')](_0x51c2bf[_0x0e2d('0x3a')],{'$or':_[_0x0e2d('0x30')](_0x46c2eb,function(_0xb0647a){if(_0xb0647a[_0x0e2d('0x2d')]!==_0x0e2d('0x3d')){var _0x23983a={};_0x23983a[_0xb0647a[_0x0e2d('0x29')]]={'$like':'%'+_0x37c89d[_0x0e2d('0x32')][_0x0e2d('0x3e')]+'%'};return _0x23983a;}})});}_0x51c2bf=_[_0x0e2d('0x3c')]({},_0x51c2bf,_0x37c89d[_0x0e2d('0x3f')]);var _0x5e0674={'where':_0x51c2bf[_0x0e2d('0x3a')]};return db['OpenchannelApplication'][_0x0e2d('0x21')](_0x5e0674)[_0x0e2d('0x27')](function(_0x38cf5d){_0x76b4a[_0x0e2d('0x21')]=_0x38cf5d;if(_0x37c89d[_0x0e2d('0x32')][_0x0e2d('0x40')]){_0x51c2bf[_0x0e2d('0x41')]=[{'all':!![]}];}return db[_0x0e2d('0x42')][_0x0e2d('0x43')](_0x51c2bf);})[_0x0e2d('0x27')](function(_0x16d2fd){_0x76b4a[_0x0e2d('0x44')]=_0x16d2fd;return _0x76b4a;})[_0x0e2d('0x27')](respondWithFilteredResult(_0x2f3eb8,_0x51c2bf))[_0x0e2d('0x45')](handleError(_0x2f3eb8,null));};exports['show']=function(_0x437309,_0x35aeaa){var _0x5cc004={'raw':!![],'where':{'id':_0x437309[_0x0e2d('0x46')]['id']}},_0x3feb95={};_0x3feb95['model']=_[_0x0e2d('0x31')](db['OpenchannelApplication'][_0x0e2d('0x47')]);_0x3feb95[_0x0e2d('0x32')]=_[_0x0e2d('0x31')](_0x437309[_0x0e2d('0x32')]);_0x3feb95['filters']=_['intersection'](_0x3feb95[_0x0e2d('0x2f')],_0x3feb95[_0x0e2d('0x32')]);_0x5cc004[_0x0e2d('0x35')]=_[_0x0e2d('0x34')](_0x3feb95[_0x0e2d('0x2f')],qs[_0x0e2d('0x48')](_0x437309[_0x0e2d('0x32')][_0x0e2d('0x48')]));_0x5cc004[_0x0e2d('0x35')]=_0x5cc004[_0x0e2d('0x35')][_0x0e2d('0x36')]?_0x5cc004['attributes']:_0x3feb95[_0x0e2d('0x2f')];if(_0x437309[_0x0e2d('0x32')][_0x0e2d('0x40')]){_0x5cc004[_0x0e2d('0x41')]=[{'all':!![]}];}_0x5cc004=_['merge']({},_0x5cc004,_0x437309[_0x0e2d('0x3f')]);return db['OpenchannelApplication'][_0x0e2d('0x49')](_0x5cc004)[_0x0e2d('0x27')](handleEntityNotFound(_0x35aeaa,null))[_0x0e2d('0x27')](respondWithResult(_0x35aeaa,null))[_0x0e2d('0x45')](handleError(_0x35aeaa,null));};exports['create']=function(_0x476f09,_0x4aca57){return db[_0x0e2d('0x42')][_0x0e2d('0x4a')](_0x476f09[_0x0e2d('0x4b')],{})[_0x0e2d('0x27')](respondWithResult(_0x4aca57,0xc9))[_0x0e2d('0x45')](handleError(_0x4aca57,null));};exports[_0x0e2d('0x26')]=function(_0x10c48f,_0x4382c8){if(_0x10c48f[_0x0e2d('0x4b')]['id']){delete _0x10c48f['body']['id'];}return db[_0x0e2d('0x42')][_0x0e2d('0x49')]({'where':{'id':_0x10c48f[_0x0e2d('0x46')]['id']}})['then'](handleEntityNotFound(_0x4382c8,null))['then'](saveUpdates(_0x10c48f[_0x0e2d('0x4b')],null))['then'](respondWithResult(_0x4382c8,null))[_0x0e2d('0x45')](handleError(_0x4382c8,null));};exports['destroy']=function(_0x2c9ea5,_0x2f7699){return db[_0x0e2d('0x42')][_0x0e2d('0x49')]({'where':{'id':_0x2c9ea5[_0x0e2d('0x46')]['id']}})['then'](handleEntityNotFound(_0x2f7699,null))[_0x0e2d('0x27')](removeEntity(_0x2f7699,null))[_0x0e2d('0x45')](handleError(_0x2f7699,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64f6=['openchannel_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelApplication.attributes','exports','OpenchannelApplication'];(function(_0x3fb9df,_0x7ff835){var _0x5b5327=function(_0x1eed0d){while(--_0x1eed0d){_0x3fb9df['push'](_0x3fb9df['shift']());}};_0x5b5327(++_0x7ff835);}(_0x64f6,0xc6));var _0x664f=function(_0x61fd3a,_0x15a094){_0x61fd3a=_0x61fd3a-0x0;var _0x546d6b=_0x64f6[_0x61fd3a];return _0x546d6b;};'use strict';var _=require(_0x664f('0x0'));var util=require(_0x664f('0x1'));var logger=require(_0x664f('0x2'))(_0x664f('0x3'));var moment=require(_0x664f('0x4'));var BPromise=require(_0x664f('0x5'));var rp=require(_0x664f('0x6'));var fs=require('fs');var path=require(_0x664f('0x7'));var rimraf=require('rimraf');var config=require(_0x664f('0x8'));var attributes=require(_0x664f('0x9'));module[_0x664f('0xa')]=function(_0x306f02,_0x45e5cf){return _0x306f02['define'](_0x664f('0xb'),attributes,{'tableName':_0x664f('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x664f('0xd'),'collate':_0x664f('0xe')});};
\ No newline at end of file
+var _0xeb4d=['rimraf','../../config/environment','./openchannelApplication.attributes','exports','define','OpenchannelApplication','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x3f7b0b,_0x52956e){var _0xe1f6d7=function(_0x3a2d7c){while(--_0x3a2d7c){_0x3f7b0b['push'](_0x3f7b0b['shift']());}};_0xe1f6d7(++_0x52956e);}(_0xeb4d,0x108));var _0xdeb4=function(_0x48996d,_0x2ae378){_0x48996d=_0x48996d-0x0;var _0xb3393e=_0xeb4d[_0x48996d];return _0xb3393e;};'use strict';var _=require(_0xdeb4('0x0'));var util=require(_0xdeb4('0x1'));var logger=require(_0xdeb4('0x2'))(_0xdeb4('0x3'));var moment=require(_0xdeb4('0x4'));var BPromise=require(_0xdeb4('0x5'));var rp=require(_0xdeb4('0x6'));var fs=require('fs');var path=require(_0xdeb4('0x7'));var rimraf=require(_0xdeb4('0x8'));var config=require(_0xdeb4('0x9'));var attributes=require(_0xdeb4('0xa'));module[_0xdeb4('0xb')]=function(_0x221973,_0x5d7fa6){return _0x221973[_0xdeb4('0xc')](_0xdeb4('0xd'),attributes,{'tableName':'openchannel_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xdeb4('0xe'),'collate':_0xdeb4('0xf')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69ad=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','request\x20sent','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','error','code','OpenchannelApplication,\x20%s,\x20%s','message','info','result','catch','update','body','options','where','attributes','limit','then','UpdateOpenchannelApplication','lodash','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x5a4400,_0xfae3b6){var _0xf9b532=function(_0x39804e){while(--_0x39804e){_0x5a4400['push'](_0x5a4400['shift']());}};_0xf9b532(++_0xfae3b6);}(_0x69ad,0x1ea));var _0xd69a=function(_0x4bb566,_0x43f8c2){_0x4bb566=_0x4bb566-0x0;var _0x4f4e09=_0x69ad[_0x4bb566];return _0x4f4e09;};'use strict';var _=require(_0xd69a('0x0'));var util=require(_0xd69a('0x1'));var moment=require(_0xd69a('0x2'));var BPromise=require('bluebird');var rs=require(_0xd69a('0x3'));var fs=require('fs');var Redis=require(_0xd69a('0x4'));var db=require(_0xd69a('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xd69a('0x6'))(_0xd69a('0x7'));var config=require(_0xd69a('0x8'));var jayson=require(_0xd69a('0x9'));var client=jayson[_0xd69a('0xa')][_0xd69a('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x6a278e,_0x20520c,_0x15084){return new BPromise(function(_0x117af8,_0x36f03c){return client[_0xd69a('0xc')](_0x6a278e,_0x15084)['then'](function(_0x266603){logger['info']('OpenchannelApplication,\x20%s,\x20%s',_0x20520c,_0xd69a('0xd'));logger[_0xd69a('0xe')](_0xd69a('0xf'),_0x20520c,'request\x20sent',JSON['stringify'](_0x266603));if(_0x266603[_0xd69a('0x10')]){if(_0x266603[_0xd69a('0x10')][_0xd69a('0x11')]===0x1f4){logger[_0xd69a('0x10')](_0xd69a('0x12'),_0x20520c,_0x266603['error'][_0xd69a('0x13')]);return _0x36f03c(_0x266603[_0xd69a('0x10')][_0xd69a('0x13')]);}logger[_0xd69a('0x10')](_0xd69a('0x12'),_0x20520c,_0x266603[_0xd69a('0x10')][_0xd69a('0x13')]);return _0x117af8(_0x266603['error'][_0xd69a('0x13')]);}else{logger[_0xd69a('0x14')](_0xd69a('0x12'),_0x20520c,_0xd69a('0xd'));_0x117af8(_0x266603[_0xd69a('0x15')][_0xd69a('0x13')]);}})[_0xd69a('0x16')](function(_0x128093){logger[_0xd69a('0x10')](_0xd69a('0x12'),_0x20520c,_0x128093);_0x36f03c(_0x128093);});});}exports['UpdateOpenchannelApplication']=function(_0x21252f){var _0x1f6dec=this;return new Promise(function(_0xa1dbd7,_0x39120d){return db['OpenchannelApplication'][_0xd69a('0x17')](_0x21252f[_0xd69a('0x18')],{'raw':_0x21252f['options']?_0x21252f[_0xd69a('0x19')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x21252f[_0xd69a('0x19')]?_0x21252f[_0xd69a('0x19')][_0xd69a('0x1a')]||null:null,'attributes':_0x21252f['options']?_0x21252f[_0xd69a('0x19')][_0xd69a('0x1b')]||null:null,'limit':_0x21252f['options']?_0x21252f['options'][_0xd69a('0x1c')]||null:null})[_0xd69a('0x1d')](function(_0x460ac3){logger[_0xd69a('0x14')]('UpdateOpenchannelApplication',_0x21252f);logger['debug'](_0xd69a('0x1e'),_0x21252f,JSON['stringify'](_0x460ac3));_0xa1dbd7(_0x460ac3);})[_0xd69a('0x16')](function(_0x2ab3ad){logger[_0xd69a('0x10')](_0xd69a('0x1e'),_0x2ab3ad['message'],_0x21252f);_0x39120d(_0x1f6dec[_0xd69a('0x10')](0x1f4,_0x2ab3ad['message']));});});};
\ No newline at end of file
+var _0xec0f=['rpc','../../config/environment','jayson/promise','http','request','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','error','OpenchannelApplication,\x20%s,\x20%s','message','info','result','catch','UpdateOpenchannelApplication','body','options','raw','where','attributes','limit','then','debug','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x2f32c4,_0x531dc6){var _0x3f3018=function(_0x406998){while(--_0x406998){_0x2f32c4['push'](_0x2f32c4['shift']());}};_0x3f3018(++_0x531dc6);}(_0xec0f,0x18f));var _0xfec0=function(_0x133207,_0xfd2b06){_0x133207=_0x133207-0x0;var _0x57f75a=_0xec0f[_0x133207];return _0x57f75a;};'use strict';var _=require(_0xfec0('0x0'));var util=require(_0xfec0('0x1'));var moment=require(_0xfec0('0x2'));var BPromise=require('bluebird');var rs=require(_0xfec0('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfec0('0x4'))['db'];var utils=require(_0xfec0('0x5'));var logger=require(_0xfec0('0x6'))(_0xfec0('0x7'));var config=require(_0xfec0('0x8'));var jayson=require(_0xfec0('0x9'));var client=jayson['client'][_0xfec0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5ab07d,_0x2db671,_0xea12c8){return new BPromise(function(_0x458398,_0x475ab3){return client[_0xfec0('0xb')](_0x5ab07d,_0xea12c8)['then'](function(_0x4c28bf){logger['info']('OpenchannelApplication,\x20%s,\x20%s',_0x2db671,'request\x20sent');logger['debug'](_0xfec0('0xc'),_0x2db671,'request\x20sent',JSON[_0xfec0('0xd')](_0x4c28bf));if(_0x4c28bf[_0xfec0('0xe')]){if(_0x4c28bf[_0xfec0('0xe')]['code']===0x1f4){logger['error'](_0xfec0('0xf'),_0x2db671,_0x4c28bf[_0xfec0('0xe')][_0xfec0('0x10')]);return _0x475ab3(_0x4c28bf[_0xfec0('0xe')][_0xfec0('0x10')]);}logger[_0xfec0('0xe')](_0xfec0('0xf'),_0x2db671,_0x4c28bf[_0xfec0('0xe')]['message']);return _0x458398(_0x4c28bf[_0xfec0('0xe')]['message']);}else{logger[_0xfec0('0x11')](_0xfec0('0xf'),_0x2db671,'request\x20sent');_0x458398(_0x4c28bf[_0xfec0('0x12')][_0xfec0('0x10')]);}})[_0xfec0('0x13')](function(_0x47ea58){logger[_0xfec0('0xe')]('OpenchannelApplication,\x20%s,\x20%s',_0x2db671,_0x47ea58);_0x475ab3(_0x47ea58);});});}exports[_0xfec0('0x14')]=function(_0x4848a1){var _0x4c1909=this;return new Promise(function(_0x7459ca,_0x4989c0){return db['OpenchannelApplication']['update'](_0x4848a1[_0xfec0('0x15')],{'raw':_0x4848a1[_0xfec0('0x16')]?_0x4848a1[_0xfec0('0x16')][_0xfec0('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4848a1[_0xfec0('0x16')]?_0x4848a1[_0xfec0('0x16')][_0xfec0('0x18')]||null:null,'attributes':_0x4848a1[_0xfec0('0x16')]?_0x4848a1[_0xfec0('0x16')][_0xfec0('0x19')]||null:null,'limit':_0x4848a1[_0xfec0('0x16')]?_0x4848a1[_0xfec0('0x16')][_0xfec0('0x1a')]||null:null})[_0xfec0('0x1b')](function(_0x4b9619){logger['info'](_0xfec0('0x14'),_0x4848a1);logger[_0xfec0('0x1c')]('UpdateOpenchannelApplication',_0x4848a1,JSON[_0xfec0('0xd')](_0x4b9619));_0x7459ca(_0x4b9619);})[_0xfec0('0x13')](function(_0x11e98c){logger['error'](_0xfec0('0x14'),_0x11e98c[_0xfec0('0x10')],_0x4848a1);_0x4989c0(_0x4c1909[_0xfec0('0xe')](0x1f4,_0x11e98c['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb885=['multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./openchannelInteraction.controller','get','isAuthenticated','index','/describe','describe','show','/:id/messages','getMessages','download','post','addMessage','/:id/tags','openchannel','openchannelinteraction:addtags','addTags','/:id','tracked','openchannelinteraction:update','update','openchannelinteraction:destroy','removeTags'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb885,0x1e0));var _0x5b88=function(_0x343090,_0x433a80){_0x343090=_0x343090-0x0;var _0x3ff3e8=_0xb885[_0x343090];return _0x3ff3e8;};'use strict';var multer=require(_0x5b88('0x0'));var util=require('util');var path=require(_0x5b88('0x1'));var timeout=require(_0x5b88('0x2'));var express=require(_0x5b88('0x3'));var router=express[_0x5b88('0x4')]();var fs_extra=require(_0x5b88('0x5'));var auth=require(_0x5b88('0x6'));var interaction=require(_0x5b88('0x7'));var config=require('../../config/environment');var controller=require(_0x5b88('0x8'));router[_0x5b88('0x9')]('/',auth[_0x5b88('0xa')](),controller[_0x5b88('0xb')]);router[_0x5b88('0x9')](_0x5b88('0xc'),auth[_0x5b88('0xa')](),controller[_0x5b88('0xd')]);router[_0x5b88('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x5b88('0xe')]);router[_0x5b88('0x9')](_0x5b88('0xf'),auth[_0x5b88('0xa')](),controller[_0x5b88('0x10')]);router[_0x5b88('0x9')]('/:id/download',auth[_0x5b88('0xa')](),controller[_0x5b88('0x11')]);router[_0x5b88('0x12')]('/',auth[_0x5b88('0xa')](),controller['create']);router[_0x5b88('0x12')](_0x5b88('0xf'),auth['isAuthenticated'](),controller[_0x5b88('0x13')]);router['post'](_0x5b88('0x14'),auth[_0x5b88('0xa')](),interaction['tracked'](_0x5b88('0x15'),_0x5b88('0x16')),controller[_0x5b88('0x17')]);router['put'](_0x5b88('0x18'),auth[_0x5b88('0xa')](),interaction[_0x5b88('0x19')](_0x5b88('0x15'),_0x5b88('0x1a')),controller[_0x5b88('0x1b')]);router['delete'](_0x5b88('0x18'),auth[_0x5b88('0xa')](),interaction[_0x5b88('0x19')](_0x5b88('0x15'),_0x5b88('0x1c')),controller['destroy']);router['delete'](_0x5b88('0x14'),auth['isAuthenticated'](),controller[_0x5b88('0x1d')]);module['exports']=router;
\ No newline at end of file
+var _0x296b=['download','create','post','tracked','openchannel','openchannelinteraction:addtags','addTags','put','/:id','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','/:id/tags','exports','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','get','isAuthenticated','/describe','describe','show','getMessages','/:id/download'];(function(_0x59d59a,_0x36cff7){var _0x4a0ff1=function(_0x382c11){while(--_0x382c11){_0x59d59a['push'](_0x59d59a['shift']());}};_0x4a0ff1(++_0x36cff7);}(_0x296b,0xc4));var _0xb296=function(_0x3db0ba,_0x2be65c){_0x3db0ba=_0x3db0ba-0x0;var _0x2d8e9a=_0x296b[_0x3db0ba];return _0x2d8e9a;};'use strict';var multer=require('multer');var util=require(_0xb296('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xb296('0x1')]();var fs_extra=require(_0xb296('0x2'));var auth=require(_0xb296('0x3'));var interaction=require(_0xb296('0x4'));var config=require(_0xb296('0x5'));var controller=require(_0xb296('0x6'));router[_0xb296('0x7')]('/',auth[_0xb296('0x8')](),controller['index']);router[_0xb296('0x7')](_0xb296('0x9'),auth['isAuthenticated'](),controller[_0xb296('0xa')]);router[_0xb296('0x7')]('/:id',auth['isAuthenticated'](),controller[_0xb296('0xb')]);router[_0xb296('0x7')]('/:id/messages',auth[_0xb296('0x8')](),controller[_0xb296('0xc')]);router[_0xb296('0x7')](_0xb296('0xd'),auth[_0xb296('0x8')](),controller[_0xb296('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0xb296('0xf')]);router[_0xb296('0x10')]('/:id/messages',auth[_0xb296('0x8')](),controller['addMessage']);router['post']('/:id/tags',auth[_0xb296('0x8')](),interaction[_0xb296('0x11')](_0xb296('0x12'),_0xb296('0x13')),controller[_0xb296('0x14')]);router[_0xb296('0x15')](_0xb296('0x16'),auth[_0xb296('0x8')](),interaction['tracked']('openchannel',_0xb296('0x17')),controller[_0xb296('0x18')]);router[_0xb296('0x19')](_0xb296('0x16'),auth[_0xb296('0x8')](),interaction[_0xb296('0x11')](_0xb296('0x12'),_0xb296('0x1a')),controller[_0xb296('0x1b')]);router['delete'](_0xb296('0x1c'),auth[_0xb296('0x8')](),controller['removeTags']);module[_0xb296('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb99=['BOOLEAN','STRING','ENUM','sequelize'];(function(_0x2f1762,_0xab43df){var _0x8ab21=function(_0xf6c1f5){while(--_0xf6c1f5){_0x2f1762['push'](_0x2f1762['shift']());}};_0x8ab21(++_0xab43df);}(_0xcb99,0x8b));var _0x9cb9=function(_0x41b0a8,_0x1b05cc){_0x41b0a8=_0x41b0a8-0x0;var _0x3a83d4=_0xcb99[_0x41b0a8];return _0x3a83d4;};'use strict';var Sequelize=require(_0x9cb9('0x0'));module['exports']={'closed':{'type':Sequelize[_0x9cb9('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x9cb9('0x2')]},'thirdDisposition':{'type':Sequelize[_0x9cb9('0x2')]},'note':{'type':Sequelize[_0x9cb9('0x2')]},'read1stAt':{'type':Sequelize['DATE']},'threadId':{'type':Sequelize[_0x9cb9('0x2')]},'externalUrl':{'type':Sequelize[_0x9cb9('0x2')]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x9cb9('0x3')]('in','out'),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x9cb9('0x2')]},'autoreplyExecuted':{'type':Sequelize[_0x9cb9('0x1')],'defaultValue':![]}};
\ No newline at end of file
+var _0xd51f=['out','BOOLEAN','sequelize','exports','DATE','STRING','ENUM'];(function(_0x14ea32,_0x262909){var _0x137bbb=function(_0x4a36ab){while(--_0x4a36ab){_0x14ea32['push'](_0x14ea32['shift']());}};_0x137bbb(++_0x262909);}(_0xd51f,0xf0));var _0xfd51=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0xd51f[_0x27af45];return _0x18df21;};'use strict';var Sequelize=require(_0xfd51('0x0'));module[_0xfd51('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xfd51('0x2')]},'disposition':{'type':Sequelize[_0xfd51('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xfd51('0x3')]},'note':{'type':Sequelize[_0xfd51('0x3')]},'read1stAt':{'type':Sequelize['DATE']},'threadId':{'type':Sequelize[_0xfd51('0x3')]},'externalUrl':{'type':Sequelize[_0xfd51('0x3')]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0xfd51('0x4')]('in',_0xfd51('0x5')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize['STRING']},'autoreplyExecuted':{'type':Sequelize[_0xfd51('0x6')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea46=['$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','`unreadMessages`\x20>\x200','isArray','tag','replace','isNumeric','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','QueryTypes','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','resolve','then','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','i.OpenchannelAccountId\x20IS\x20NULL','sequelize','toString','keyBy','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','OpenchannelInteractionId','all','rows','show','params','merge','options','create','update','describe','addMessage','OpenchannelMessage','ids','getMessages','findOne','filter','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','include','findAll','addTags','setTags','omit','spread','emit','openchannelInteractionTags:save','removeTags','unix','join','root','server','files','CmContact','Contact','lastName','attachments','Attachment','Messages','direction','secret','OpenchannelAccount','Account','Owner','get','mkdirSync','N.A.','closed','closedAt','disposition','Public','Private','basename','createReadStream','createWriteStream','out','System','firstName','read','renderFile','downloadInteraction.ejs','.pdf','createPdfFromHTML','download','log','err','sendStatus','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','end','status','json','offset','undefined','limit','count','Content-Range','apply','save','destroy','error','stack','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','catch','index','OpenchannelInteraction','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','field','color','from','tools_tags','u.id','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','left_join','users','select','openchannel_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','openchannel_accounts','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','expr','search','sqlOperator','length','find','unreadMessages','having','`\x20=\x200','`\x20>\x200','operator','$substring','value','getFullTextValue','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','isEmpty','OpenchannelAccountId','where','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte'];(function(_0x5f09c5,_0x2bfca0){var _0x426ad9=function(_0x18fe5f){while(--_0x18fe5f){_0x5f09c5['push'](_0x5f09c5['shift']());}};_0x426ad9(++_0x2bfca0);}(_0xea46,0x162));var _0x6ea4=function(_0x2e1f40,_0x23e3df){_0x2e1f40=_0x2e1f40-0x0;var _0x1b439d=_0xea46[_0x2e1f40];return _0x1b439d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x6ea4('0x0'));var zipdir=require(_0x6ea4('0x1'));var jsonpatch=require(_0x6ea4('0x2'));var rp=require(_0x6ea4('0x3'));var moment=require(_0x6ea4('0x4'));var BPromise=require(_0x6ea4('0x5'));var Mustache=require(_0x6ea4('0x6'));var util=require(_0x6ea4('0x7'));var path=require('path');var sox=require(_0x6ea4('0x8'));var csv=require(_0x6ea4('0x9'));var ejs=require(_0x6ea4('0xa'));var fs=require('fs');var fs_extra=require(_0x6ea4('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x6ea4('0xc'));var jsforce=require(_0x6ea4('0xd'));var deskjs=require(_0x6ea4('0xe'));var toCsv=require(_0x6ea4('0x9'));var querystring=require(_0x6ea4('0xf'));var Papa=require(_0x6ea4('0x10'));var Redis=require(_0x6ea4('0x11'));var authService=require(_0x6ea4('0x12'));var qs=require(_0x6ea4('0x13'));var as=require(_0x6ea4('0x14'));var pdf=require(_0x6ea4('0x15'));var hardwareService=require(_0x6ea4('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x6ea4('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x6ea4('0x18'));var db=require(_0x6ea4('0x19'))['db'];config['redis']=_[_0x6ea4('0x1a')](config[_0x6ea4('0x1b')],{'host':_0x6ea4('0x1c'),'port':0x18eb});var socket=require(_0x6ea4('0x1d'))(new Redis(config[_0x6ea4('0x1b')]));require(_0x6ea4('0x1e'))[_0x6ea4('0x1f')](socket);function respondWithStatusCode(_0x453fc9,_0x4b1406){_0x4b1406=_0x4b1406||0xcc;return function(_0x11ba73){if(_0x11ba73){return _0x453fc9['sendStatus'](_0x4b1406);}return _0x453fc9['status'](_0x4b1406)[_0x6ea4('0x20')]();};}function respondWithResult(_0xb9b46f,_0x878c1d){_0x878c1d=_0x878c1d||0xc8;return function(_0x23515b){if(_0x23515b){return _0xb9b46f[_0x6ea4('0x21')](_0x878c1d)[_0x6ea4('0x22')](_0x23515b);}};}function respondWithFilteredResult(_0x33edd6,_0x34d3ad){return function(_0x82f8e8){if(_0x82f8e8){var _0x25e585=typeof _0x34d3ad[_0x6ea4('0x23')]===_0x6ea4('0x24')&&typeof _0x34d3ad[_0x6ea4('0x25')]===_0x6ea4('0x24');var _0x3d84ab=_0x82f8e8[_0x6ea4('0x26')];var _0x24b2ea=_0x25e585?0x0:_0x34d3ad['offset'];var _0x5aebc8=_0x25e585?_0x82f8e8[_0x6ea4('0x26')]:_0x34d3ad[_0x6ea4('0x23')]+_0x34d3ad['limit'];var _0x107f0;if(_0x5aebc8>=_0x3d84ab){_0x5aebc8=_0x3d84ab;_0x107f0=0xc8;}else{_0x107f0=0xce;}_0x33edd6[_0x6ea4('0x21')](_0x107f0);return _0x33edd6['set'](_0x6ea4('0x27'),_0x24b2ea+'-'+_0x5aebc8+'/'+_0x3d84ab)[_0x6ea4('0x22')](_0x82f8e8);}return null;};}function patchUpdates(_0x19b8f3){return function(_0x3c52bf){try{jsonpatch[_0x6ea4('0x28')](_0x3c52bf,_0x19b8f3,!![]);}catch(_0x126ee6){return BPromise['reject'](_0x126ee6);}return _0x3c52bf[_0x6ea4('0x29')]();};}function saveUpdates(_0x51a101,_0x4f9c9f){return function(_0x48aff3){if(_0x48aff3){return _0x48aff3['update'](_0x51a101)['then'](function(_0x1c5c3a){return _0x1c5c3a;});}return null;};}function removeEntity(_0x826875,_0x1c28e5){return function(_0x1ceffa){if(_0x1ceffa){return _0x1ceffa[_0x6ea4('0x2a')]()['then'](function(){_0x826875['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xc68f36,_0x58b919){return function(_0x1d4b7d){if(!_0x1d4b7d){_0xc68f36['sendStatus'](0x194);}return _0x1d4b7d;};}function handleError(_0x50a184,_0x308506){_0x308506=_0x308506||0x1f4;return function(_0x4027fa){logger[_0x6ea4('0x2b')](_0x4027fa[_0x6ea4('0x2c')]);if(_0x4027fa[_0x6ea4('0x2d')]){delete _0x4027fa['name'];}_0x50a184['status'](_0x308506)[_0x6ea4('0x2e')](_0x4027fa);};}function getInteractionUsers(_0x127f8c,_0x32f842){return new BPromise(function(_0x5277ad,_0x23ffd7){try{if(_0x32f842[_0x127f8c['id']]){_0x127f8c[_0x6ea4('0x2f')]=_[_0x6ea4('0x30')](_0x32f842[_0x127f8c['id']],function(_0x562595){return{'id':_0x562595['id'],'fullname':_0x562595[_0x6ea4('0x31')]};});}}catch(_0x20fdf3){_0x23ffd7(_0x20fdf3);}_0x5277ad(_0x127f8c);});}function getInteractionTags(_0x2dd551,_0x512ac2){return new BPromise(function(_0xf1831,_0x159c7f){try{if(_0x2dd551[_0x6ea4('0x32')]){_0x2dd551[_0x6ea4('0x33')]=[];_0x2dd551['TagIds'][_0x6ea4('0x34')](',')[_0x6ea4('0x35')](function(_0x28a80b){_0x2dd551[_0x6ea4('0x33')][_0x6ea4('0x36')](_0x512ac2[_0x28a80b]);});}delete _0x2dd551[_0x6ea4('0x32')];}catch(_0x3593af){_0x159c7f(_0x3593af);}_0xf1831(_0x2dd551);});}function updateOpenchannelInteraction(_0x3f62d0,_0x3916a5,_0x425492){return new BPromise(function(_0x7dfb4e,_0x2a74e9){return getInteractionUsers(_0x3f62d0,_0x425492)['then'](function(_0x166811){return getInteractionTags(_0x166811,_0x3916a5);})['then'](function(_0x11aa64){_0x7dfb4e(_0x11aa64);})[_0x6ea4('0x37')](function(_0x43ad28){_0x2a74e9(_0x43ad28);});});}exports[_0x6ea4('0x38')]=function(_0x2912e5,_0x1987f0){var _0x45f6d2={},_0xb2958c={},_0x52323c={'count':0x0,'rows':[]};var _0x54a225=_[_0x6ea4('0x30')](db[_0x6ea4('0x39')][_0x6ea4('0x3a')],function(_0x5af1cf){return{'name':_0x5af1cf[_0x6ea4('0x3b')],'type':_0x5af1cf[_0x6ea4('0x3c')][_0x6ea4('0x3d')]};});_0xb2958c['model']=_[_0x6ea4('0x30')](_0x54a225,_0x6ea4('0x2d'));_0xb2958c['query']=_[_0x6ea4('0x3e')](_0x2912e5[_0x6ea4('0x3f')]);_0xb2958c[_0x6ea4('0x40')]=_[_0x6ea4('0x41')](_0xb2958c[_0x6ea4('0x42')],_0xb2958c[_0x6ea4('0x3f')]);_0x45f6d2['attributes']=_[_0x6ea4('0x41')](_0xb2958c['model'],qs['fields'](_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x43')]));_0x45f6d2[_0x6ea4('0x44')]=_0x45f6d2[_0x6ea4('0x44')]['length']?_0x45f6d2['attributes']:_0xb2958c[_0x6ea4('0x42')];if(!_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x45')](_0x6ea4('0x46'))){_0x45f6d2['limit']=qs['limit'](_0x2912e5['query'][_0x6ea4('0x25')]);_0x45f6d2[_0x6ea4('0x23')]=qs[_0x6ea4('0x23')](_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x23')]);}_0x45f6d2[_0x6ea4('0x47')]=qs[_0x6ea4('0x48')](_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x48')]);_0x45f6d2['where']=qs[_0x6ea4('0x40')](_[_0x6ea4('0x49')](_0x2912e5[_0x6ea4('0x3f')],_0xb2958c[_0x6ea4('0x40')]),_0x54a225);var _0x2def42=[];var _0x31a473=squel['select']()['field']('id')[_0x6ea4('0x4a')]('name')['field'](_0x6ea4('0x4b'))[_0x6ea4('0x4c')](_0x6ea4('0x4d'));var _0x272476=squel['select']()[_0x6ea4('0x4a')](_0x6ea4('0x4e'))['field'](_0x6ea4('0x4f'))[_0x6ea4('0x4a')](_0x6ea4('0x50'))[_0x6ea4('0x4c')](_0x6ea4('0x51'),'ui')[_0x6ea4('0x52')](_0x6ea4('0x53'),'u','u.id\x20=\x20ui.UserId');var _0x5fa97f=squel[_0x6ea4('0x54')]()[_0x6ea4('0x4c')](_0x6ea4('0x55'),'i')[_0x6ea4('0x52')]('cm_contacts','c',_0x6ea4('0x56'))[_0x6ea4('0x52')](_0x6ea4('0x53'),'o',_0x6ea4('0x57'))['left_join'](_0x6ea4('0x58'),'a','a.id\x20=\x20i.OpenchannelAccountId')[_0x6ea4('0x52')]('openchannel_messages','me',_0x6ea4('0x59'))[_0x6ea4('0x52')](_0x6ea4('0x5a'),'it',_0x6ea4('0x5b'))[_0x6ea4('0x52')]('tools_tags','t','t.id\x20=\x20it.TagId');var _0x1f79c6=squel[_0x6ea4('0x5c')]();var _0x42f37f=[];var _0x37cc59=squel['expr']();var _0x2a4959;if(_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x5d')]){_0x2a4959=as['parseSearch'](_0x2912e5[_0x6ea4('0x3f')]['search']);var _0x1bd43c=_0x2a4959[_0x6ea4('0x5e')];for(var _0x153305=0x0;_0x153305<_0x2a4959['conditions'][_0x6ea4('0x5f')];_0x153305++){var _0x5631ef=_0x2a4959['conditions'][_0x153305];var _0x4fa16a='i';var _0x57267f=_[_0x6ea4('0x60')](_0x54a225,['name',_0x5631ef['field']]);if(!_0x57267f){switch(_0x5631ef[_0x6ea4('0x4a')]){case _0x6ea4('0x61'):if(_0x5631ef['value']==0x1){_0x5fa97f[_0x6ea4('0x62')]('`'+_0x5631ef[_0x6ea4('0x4a')]+_0x6ea4('0x63'));}else{_0x5fa97f[_0x6ea4('0x62')]('`'+_0x5631ef[_0x6ea4('0x4a')]+_0x6ea4('0x64'));}break;case'Contact':if(_0x5631ef[_0x6ea4('0x65')]===_0x6ea4('0x66')){if(_0x5631ef[_0x6ea4('0x67')][_0x6ea4('0x34')]('\x20')[_0x6ea4('0x5f')]>0x1){_0x1f79c6[_0x1bd43c]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x6ea4('0x68')](_0x5631ef[_0x6ea4('0x67')]),null);}else{var _0x25a572='%'+_0x5631ef[_0x6ea4('0x67')]+'%';_0x1f79c6[_0x1bd43c]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x25a572,_0x25a572,_0x25a572);}}else{_0x57267f=_[_0x6ea4('0x60')](_0x54a225,[_0x6ea4('0x2d'),_0x6ea4('0x69')]);_0x5631ef[_0x6ea4('0x4a')]=_0x6ea4('0x69');_0x4be704=as[_0x6ea4('0x6a')](_0x4fa16a,_0x57267f['type'],_0x5631ef);_0x1f79c6[_0x1bd43c](_0x4be704[_0x6ea4('0x6b')],_0x4be704['value'][_0x6ea4('0x6c')],_0x4be704[_0x6ea4('0x67')]['end']);}break;case _0x6ea4('0x6d'):var _0x48503b=_0x5631ef[_0x6ea4('0x67')]['split'](',')[_0x6ea4('0x30')](function(_0x17e667){return Number(_0x17e667);});_0x48503b[_0x6ea4('0x35')](function(_0x5a557b){_0x37cc59['or'](_0x6ea4('0x6e'),'%,'+_0x5a557b+',%');});_0x42f37f=_[_0x6ea4('0x6f')](_0x42f37f,_0x48503b);break;case _0x6ea4('0x70'):if(_0x5631ef[_0x6ea4('0x65')]===_0x6ea4('0x66')){_0x1f79c6[_0x1bd43c](_0x6ea4('0x71'),'%'+_0x5631ef[_0x6ea4('0x67')]+'%',null);}else{_0x57267f=_['find'](_0x54a225,[_0x6ea4('0x2d'),_0x6ea4('0x72')]);_0x5631ef['field']='UserId';_0x4be704=as[_0x6ea4('0x6a')](_0x4fa16a,_0x57267f[_0x6ea4('0x3c')],_0x5631ef);_0x1f79c6[_0x1bd43c](_0x4be704[_0x6ea4('0x6b')],_0x4be704[_0x6ea4('0x67')][_0x6ea4('0x6c')],_0x4be704[_0x6ea4('0x67')][_0x6ea4('0x20')]);}break;case _0x6ea4('0x73'):_0x4be704=as[_0x6ea4('0x6a')]('me',null,_0x5631ef);_0x1f79c6[_0x1bd43c](_0x4be704[_0x6ea4('0x6b')],_0x4be704[_0x6ea4('0x67')][_0x6ea4('0x6c')],_0x4be704[_0x6ea4('0x67')]['end']);break;}}else{var _0x4be704=as[_0x6ea4('0x6a')](_0x4fa16a,_0x57267f[_0x6ea4('0x3c')],_0x5631ef);_0x1f79c6[_0x1bd43c](_0x4be704['text'],_0x4be704[_0x6ea4('0x67')][_0x6ea4('0x6c')],_0x4be704['value'][_0x6ea4('0x20')]);}}}else{var _0x305faa=_(_0x2912e5['query'])[_0x6ea4('0x3e')]()[_0x6ea4('0x30')](function(_0x2d0390){return _['some'](_0x54a225,[_0x6ea4('0x2d'),_0x2d0390])?_0x2d0390:undefined;})['compact']()[_0x6ea4('0x67')]();if(!_[_0x6ea4('0x74')](_0x305faa)){_0x305faa['forEach'](function(_0x5d1e9d){if(_0x5d1e9d===_0x6ea4('0x75')){_0x5fa97f[_0x6ea4('0x76')](_0x6ea4('0x77'),[][_0x6ea4('0x78')](_0x2912e5[_0x6ea4('0x3f')][_0x5d1e9d]));}else if(_0x5d1e9d===_0x6ea4('0x79')){var _0x2a9493=JSON[_0x6ea4('0x7a')](_0x2912e5[_0x6ea4('0x3f')][_0x5d1e9d])[_0x6ea4('0x7b')];var _0x1974fe=JSON[_0x6ea4('0x7a')](_0x2912e5['query'][_0x5d1e9d])[_0x6ea4('0x7c')];_0x5fa97f[_0x6ea4('0x76')](_0x6ea4('0x7d'),_0x2a9493,_0x1974fe);}else{if(_0x2912e5[_0x6ea4('0x3f')][_0x5d1e9d]===_0x6ea4('0x7e')){_0x5fa97f[_0x6ea4('0x76')]('i.'+_0x5d1e9d+'\x20IS\x20NULL');}else{_0x5fa97f[_0x6ea4('0x76')]('i.'+_0x5d1e9d+_0x6ea4('0x7f'),_0x2912e5[_0x6ea4('0x3f')][_0x5d1e9d]);}}});}if(_0x2912e5['query']['read']){if(_0x2912e5[_0x6ea4('0x3f')]['read']==0x1){_0x5fa97f[_0x6ea4('0x62')]('`unreadMessages`\x20=\x200');}else{_0x5fa97f[_0x6ea4('0x62')](_0x6ea4('0x80'));}}if(_0x2912e5[_0x6ea4('0x3f')]['tag']){_0x42f37f=_[_0x6ea4('0x81')](_0x2912e5[_0x6ea4('0x3f')]['tag'])?_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x82')]:new Array(_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x82')]);_0x42f37f[_0x6ea4('0x35')](function(_0x1003ff){_0x37cc59['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1003ff+',%');});}if(_0x2912e5['query']['filter']){var _0x3347fa=_0x2912e5[_0x6ea4('0x3f')]['filter'][_0x6ea4('0x83')]('\x5c','\x5c\x5c')[_0x6ea4('0x83')](/'/g,'\x27\x27');if(qs[_0x6ea4('0x84')](_0x3347fa)){_0x1f79c6['or']('i.id\x20LIKE\x20?',_0x3347fa+'%');}else{_0x1f79c6['or'](_0x6ea4('0x85'),qs[_0x6ea4('0x68')](_0x3347fa))['or']('i.from\x20LIKE\x20?',_0x3347fa+'%')['or'](_0x6ea4('0x86'),_0x3347fa+'%');}}}_0x5fa97f[_0x6ea4('0x76')](_0x1f79c6);_0x5fa97f[_0x6ea4('0x87')]('i.id');var _0x1a22c7={'type':db[_0x6ea4('0x88')][_0x6ea4('0x89')]['SELECT'],'raw':!![]};var _0x203698=_0x5fa97f[_0x6ea4('0x8a')]();_0x203698[_0x6ea4('0x4a')](_0x6ea4('0x8b'));_0x203698[_0x6ea4('0x4a')](_0x6ea4('0x8c'),'unreadMessages');if(_0x45f6d2['order']){_0x45f6d2['order'][_0x6ea4('0x35')](function(_0x1fa92d){var _0x4417de=_0x1fa92d[0x0]==='contactName'?_0x1fa92d[0x0]:'i.'+_0x1fa92d[0x0];_0x5fa97f['order'](_0x4417de,_0x1fa92d[0x1]===_0x6ea4('0x8d')?![]:!![]);});}if(!_['isEmpty'](_0x42f37f)){_0x5fa97f[_0x6ea4('0x62')](_0x37cc59);_0x203698[_0x6ea4('0x76')]('t.id\x20IN\x20?',_0x42f37f);}BPromise[_0x6ea4('0x8e')]()[_0x6ea4('0x8f')](function(){if(!_0x2a4959){if(_0x2912e5[_0x6ea4('0x3f')][_0x6ea4('0x75')])return;_0x203698['where'](_0x6ea4('0x90'));_0x5fa97f[_0x6ea4('0x76')](_0x6ea4('0x90'));return;}if(_0x2912e5[_0x6ea4('0x91')][_0x6ea4('0x92')]!==_0x6ea4('0x93'))return;return _0x2912e5[_0x6ea4('0x91')]['getOpenchannelAccounts']({'attributes':['id'],'raw':!![]})[_0x6ea4('0x8f')](function(_0xf45813){if(_['isEmpty'](_0xf45813)){_0x203698[_0x6ea4('0x76')]('i.OpenchannelAccountId\x20IS\x20NULL');_0x5fa97f[_0x6ea4('0x76')](_0x6ea4('0x94'));}else{_0x203698[_0x6ea4('0x76')](_0x6ea4('0x77'),_[_0x6ea4('0x30')](_0xf45813,'id'));_0x5fa97f[_0x6ea4('0x76')](_0x6ea4('0x77'),_['map'](_0xf45813,'id'));}});})[_0x6ea4('0x8f')](function(){if(_0x2912e5[_0x6ea4('0x91')]['role']===_0x6ea4('0x93')&&!_0x2a4959&&!_0x2912e5['query'][_0x6ea4('0x75')])return[];return db[_0x6ea4('0x95')][_0x6ea4('0x3f')](_0x203698[_0x6ea4('0x96')](),_0x1a22c7);})[_0x6ea4('0x8f')](function(_0x4c06ab){_0x52323c['count']=_0x4c06ab['length'];if(_0x52323c[_0x6ea4('0x26')]===0x0)return[];return db[_0x6ea4('0x95')][_0x6ea4('0x3f')](_0x31a473[_0x6ea4('0x96')](),_0x1a22c7)[_0x6ea4('0x8f')](function(_0x368f05){_0x2def42=_[_0x6ea4('0x97')](_0x368f05,'id');_0x1a22c7=_['merge'](_0x1a22c7,{'model':db['OpenchannelInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2912e5['query'][_0x6ea4('0x43')]){_0x45f6d2[_0x6ea4('0x44')][_0x6ea4('0x35')](function(_0x16f21c){_0x5fa97f[_0x6ea4('0x4a')]('i.'+_0x16f21c);});}else{_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0x8c'),'unreadMessages');_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0x98'),_0x6ea4('0x99'));_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0x9a'),_0x6ea4('0x9b'));_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0x9c'),'contactName');_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0x9d'));_0x5fa97f[_0x6ea4('0x4a')]('c.firstName',_0x6ea4('0x9e'));_0x5fa97f['field'](_0x6ea4('0x9f'),_0x6ea4('0xa0'));_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0xa1'),_0x6ea4('0xa2'));_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0xa3'),'Contact.phone');_0x5fa97f[_0x6ea4('0x4a')]('c.mobile',_0x6ea4('0xa4'));_0x5fa97f[_0x6ea4('0x4a')]('c.fax',_0x6ea4('0xa5'));_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0xa6'),_0x6ea4('0xa7'));_0x5fa97f['field'](_0x6ea4('0xa8'),_0x6ea4('0xa9'));_0x5fa97f[_0x6ea4('0x4a')](_0x6ea4('0xaa'),_0x6ea4('0x32'));}if(_0x45f6d2[_0x6ea4('0x25')])_0x5fa97f['limit'](_0x45f6d2[_0x6ea4('0x25')]);if(_0x45f6d2[_0x6ea4('0x23')])_0x5fa97f[_0x6ea4('0x23')](_0x45f6d2['offset']);return db['sequelize']['query'](_0x5fa97f[_0x6ea4('0x96')](),_0x1a22c7);})[_0x6ea4('0x8f')](function(_0x162593){if(_0x162593['length']>0x0)_0x272476[_0x6ea4('0x76')]('ui.OpenchannelInteractionId\x20IN\x20?',_['map'](_0x162593,'id'));return db[_0x6ea4('0x95')][_0x6ea4('0x3f')](_0x272476[_0x6ea4('0x96')](),_0x1a22c7)['then'](function(_0x53f8a2){var _0x5ab4e6=_[_0x6ea4('0xab')](_0x53f8a2,_0x6ea4('0xac'));var _0x3cfb19=[];_0x162593['forEach'](function(_0x2eb62f){_0x3cfb19['push'](updateOpenchannelInteraction(_0x2eb62f,_0x2def42,_0x5ab4e6));});return BPromise[_0x6ea4('0xad')](_0x3cfb19);});});})[_0x6ea4('0x8f')](function(_0xfcdc02){_0x52323c[_0x6ea4('0xae')]=_0xfcdc02;return _0x52323c;})[_0x6ea4('0x8f')](respondWithFilteredResult(_0x1987f0,_0x45f6d2))[_0x6ea4('0x37')](handleError(_0x1987f0,null));};exports[_0x6ea4('0xaf')]=function(_0x3d021d,_0x1ca401){var _0x48ec11={};if(_0x3d021d['query']['type']&&_0x3d021d['query']['type']===_0x6ea4('0x4c')){_0x48ec11[_0x6ea4('0x4c')]=_0x3d021d[_0x6ea4('0xb0')]['id'];}else{_0x48ec11['id']=_0x3d021d[_0x6ea4('0xb0')]['id'];}var _0x5937eb={'raw':![],'where':_0x48ec11},_0x2b631a={};_0x2b631a['model']=_[_0x6ea4('0x3e')](db['OpenchannelInteraction'][_0x6ea4('0x3a')]);_0x2b631a['query']=_['keys'](_0x3d021d['query']);_0x2b631a['filters']=_['intersection'](_0x2b631a[_0x6ea4('0x42')],_0x2b631a[_0x6ea4('0x3f')]);_0x5937eb[_0x6ea4('0x44')]=_[_0x6ea4('0x41')](_0x2b631a[_0x6ea4('0x42')],qs[_0x6ea4('0x43')](_0x3d021d[_0x6ea4('0x3f')][_0x6ea4('0x43')]));_0x5937eb[_0x6ea4('0x44')]=_0x5937eb[_0x6ea4('0x44')]['length']?_0x5937eb['attributes']:_0x2b631a[_0x6ea4('0x42')];if(_0x3d021d[_0x6ea4('0x3f')]['includeAll']){_0x5937eb['include']=[{'all':!![]}];}_0x5937eb=_[_0x6ea4('0xb1')]({},_0x5937eb,_0x3d021d[_0x6ea4('0xb2')]);return db[_0x6ea4('0x39')][_0x6ea4('0x60')](_0x5937eb)[_0x6ea4('0x8f')](handleEntityNotFound(_0x1ca401,null))[_0x6ea4('0x8f')](respondWithResult(_0x1ca401,null))[_0x6ea4('0x37')](handleError(_0x1ca401,null));};exports[_0x6ea4('0xb3')]=function(_0x29a8af,_0x5925bc){return db['OpenchannelInteraction'][_0x6ea4('0xb3')](_0x29a8af[_0x6ea4('0x73')],{})[_0x6ea4('0x8f')](respondWithResult(_0x5925bc,0xc9))['catch'](handleError(_0x5925bc,null));};exports[_0x6ea4('0xb4')]=function(_0x40a822,_0xf466e6){if(_0x40a822[_0x6ea4('0x73')]['id']){delete _0x40a822[_0x6ea4('0x73')]['id'];}return db[_0x6ea4('0x39')][_0x6ea4('0x60')]({'where':{'id':_0x40a822['params']['id']}})[_0x6ea4('0x8f')](handleEntityNotFound(_0xf466e6,null))[_0x6ea4('0x8f')](saveUpdates(_0x40a822[_0x6ea4('0x73')],null))[_0x6ea4('0x8f')](respondWithResult(_0xf466e6,null))[_0x6ea4('0x37')](handleError(_0xf466e6,null));};exports[_0x6ea4('0x2a')]=function(_0x4ecadd,_0x79bb22){return db[_0x6ea4('0x39')][_0x6ea4('0x60')]({'where':{'id':_0x4ecadd[_0x6ea4('0xb0')]['id']}})[_0x6ea4('0x8f')](handleEntityNotFound(_0x79bb22,null))[_0x6ea4('0x8f')](removeEntity(_0x79bb22,null))[_0x6ea4('0x37')](handleError(_0x79bb22,null));};exports[_0x6ea4('0xb5')]=function(_0x104941,_0x30c37a){return db[_0x6ea4('0x39')]['describe']()['then'](respondWithResult(_0x30c37a,null))['catch'](handleError(_0x30c37a,null));};exports[_0x6ea4('0xb6')]=function(_0x1348ea,_0x3fccec,_0x4f3569){return db[_0x6ea4('0xb7')][_0x6ea4('0x60')]({'where':{'id':_0x1348ea[_0x6ea4('0xb0')]['id']}})[_0x6ea4('0x8f')](handleEntityNotFound(_0x3fccec,null))[_0x6ea4('0x8f')](function(_0x5abec7){if(_0x5abec7){return _0x5abec7[_0x6ea4('0xb6')](_0x1348ea['body'][_0x6ea4('0xb8')],_['omit'](_0x1348ea[_0x6ea4('0x73')],[_0x6ea4('0xb8'),'id'])||{});}})['then'](respondWithResult(_0x3fccec,null))[_0x6ea4('0x37')](handleError(_0x3fccec,null));};exports[_0x6ea4('0xb9')]=function(_0x111414,_0x134ae7,_0x9a0256){var _0xf081be={'raw':![],'where':{}};var _0x4a3da7={};var _0x15acd6={'count':0x0,'rows':[]};return db[_0x6ea4('0x39')][_0x6ea4('0xba')]({'where':{'id':_0x111414[_0x6ea4('0xb0')]['id']}})[_0x6ea4('0x8f')](handleEntityNotFound(_0x134ae7,null))[_0x6ea4('0x8f')](function(_0x1c5e40){if(_0x1c5e40){_0x4a3da7[_0x6ea4('0x42')]=_[_0x6ea4('0x3e')](db[_0x6ea4('0xb7')][_0x6ea4('0x3a')]);_0x4a3da7[_0x6ea4('0x3f')]=_[_0x6ea4('0x3e')](_0x111414['query']);_0x4a3da7[_0x6ea4('0x40')]=_['intersection'](_0x4a3da7['model'],_0x4a3da7[_0x6ea4('0x3f')]);_0xf081be[_0x6ea4('0x44')]=_['intersection'](_0x4a3da7[_0x6ea4('0x42')],qs[_0x6ea4('0x43')](_0x111414['query'][_0x6ea4('0x43')]));_0xf081be['attributes']=_0xf081be[_0x6ea4('0x44')][_0x6ea4('0x5f')]?_0xf081be[_0x6ea4('0x44')]:_0x4a3da7['model'];if(!_0x111414['query'][_0x6ea4('0x45')]('nolimit')){_0xf081be[_0x6ea4('0x25')]=qs[_0x6ea4('0x25')](_0x111414[_0x6ea4('0x3f')][_0x6ea4('0x25')]);_0xf081be[_0x6ea4('0x23')]=qs[_0x6ea4('0x23')](_0x111414[_0x6ea4('0x3f')][_0x6ea4('0x23')]);}_0xf081be['order']=qs[_0x6ea4('0x48')](_0x111414[_0x6ea4('0x3f')][_0x6ea4('0x48')]);_0xf081be[_0x6ea4('0x76')]=qs[_0x6ea4('0x40')](_['pick'](_0x111414[_0x6ea4('0x3f')],_0x4a3da7[_0x6ea4('0x40')]));_0xf081be[_0x6ea4('0x76')][_0x6ea4('0xac')]=_0x1c5e40['id'];if(_0x111414[_0x6ea4('0x3f')][_0x6ea4('0xbb')]){_0xf081be[_0x6ea4('0x76')]=_['merge'](_0xf081be[_0x6ea4('0x76')],{'$or':_['map'](_0xf081be[_0x6ea4('0x44')],function(_0x242544){var _0x11bfd0={};_0x11bfd0[_0x242544]={'$like':'%'+_0x111414['query']['filter']+'%'};return _0x11bfd0;})});}if(_0x111414[_0x6ea4('0x3f')][_0x6ea4('0x7b')]){var _0x455063=_0x111414['query']['$gte'][_0x6ea4('0x34')](',');var _0x5c2838={};_0x5c2838[_0x455063[0x0]]={'$gte':moment(_0x455063[0x1])[_0x6ea4('0xbc')](_0x6ea4('0xbd'))};_0xf081be['where']=_[_0x6ea4('0xb1')](_0xf081be[_0x6ea4('0x76')],_0x5c2838);}_0xf081be=_[_0x6ea4('0xb1')]({},_0xf081be,_0x111414[_0x6ea4('0xb2')]);return db[_0x6ea4('0xb7')][_0x6ea4('0x26')]({'where':_0xf081be['where']})[_0x6ea4('0x8f')](function(_0x1f6944){_0x15acd6[_0x6ea4('0x26')]=_0x1f6944;if(_0x111414[_0x6ea4('0x3f')][_0x6ea4('0xbe')]){_0xf081be[_0x6ea4('0xbf')]=[{'all':!![]}];}return db[_0x6ea4('0xb7')][_0x6ea4('0xc0')](_0xf081be);})[_0x6ea4('0x8f')](function(_0x322ed2){_0x15acd6['rows']=_0x322ed2;return _0x15acd6;});}})[_0x6ea4('0x8f')](respondWithFilteredResult(_0x134ae7,_0xf081be))[_0x6ea4('0x37')](handleError(_0x134ae7,null));};exports[_0x6ea4('0xc1')]=function(_0x19c85a,_0x3ac079,_0x2a1b3c){return db[_0x6ea4('0x39')][_0x6ea4('0x60')]({'where':{'id':_0x19c85a['params']['id']}})[_0x6ea4('0x8f')](handleEntityNotFound(_0x3ac079,null))[_0x6ea4('0x8f')](function(_0x50f048){if(_0x50f048){return _0x50f048[_0x6ea4('0xc2')](_0x19c85a[_0x6ea4('0x73')][_0x6ea4('0xb8')],_[_0x6ea4('0xc3')](_0x19c85a[_0x6ea4('0x73')],[_0x6ea4('0xb8'),'id'])||{})[_0x6ea4('0xc4')](function(){return db[_0x6ea4('0x6d')][_0x6ea4('0xc0')]({'attributes':['id',_0x6ea4('0x2d'),_0x6ea4('0x4b')],'where':{'id':_0x19c85a[_0x6ea4('0x73')][_0x6ea4('0xb8')]}});})[_0x6ea4('0x8f')](function(_0xf4cd62){socket[_0x6ea4('0xc5')](_0x6ea4('0xc6'),{'id':Number(_0x19c85a[_0x6ea4('0xb0')]['id']),'tags':_0xf4cd62||[]});return{'id':Number(_0x19c85a[_0x6ea4('0xb0')]['id']),'tags':_0xf4cd62||[]};});}})['then'](respondWithResult(_0x3ac079,null))[_0x6ea4('0x37')](handleError(_0x3ac079,null));};exports[_0x6ea4('0xc7')]=function(_0x4a6802,_0x24f729,_0x14f0e5){return db[_0x6ea4('0x39')]['find']({'where':{'id':_0x4a6802[_0x6ea4('0xb0')]['id']}})[_0x6ea4('0x8f')](handleEntityNotFound(_0x24f729,null))['then'](function(_0x1f3976){if(_0x1f3976){return _0x1f3976['removeTags'](_0x4a6802[_0x6ea4('0x3f')][_0x6ea4('0xb8')]);}})[_0x6ea4('0x8f')](respondWithStatusCode(_0x24f729,null))[_0x6ea4('0x37')](handleError(_0x24f729,null));};exports['download']=function(_0x38a7cd,_0x522839){var _0x15789a=moment()[_0x6ea4('0xc8')]()[_0x6ea4('0x96')]();var _0x4fdb63=path[_0x6ea4('0xc9')](config[_0x6ea4('0xca')],_0x6ea4('0xcb'),_0x6ea4('0xcc'),'tmp');var _0x1a4e93=path[_0x6ea4('0xc9')](config['root'],_0x6ea4('0xcb'),_0x6ea4('0xcc'),'attachments');var _0x4b7a93=path[_0x6ea4('0xc9')](_0x4fdb63,_0x15789a);var _0x4e16af=util['format']('transcript-%d-%s.zip',_0x38a7cd[_0x6ea4('0xb0')]['id'],_0x15789a);var _0x59e9a3=path[_0x6ea4('0xc9')](_0x4fdb63,_0x4e16af);var _0xaf6ab7=[];_0xaf6ab7[_0x6ea4('0x36')]({'model':db[_0x6ea4('0x70')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0xaf6ab7['push']({'model':db[_0x6ea4('0xcd')],'as':_0x6ea4('0xce'),'attributes':['id','firstName',_0x6ea4('0xcf')],'raw':!![]});if(_0x38a7cd[_0x6ea4('0x3f')][_0x6ea4('0xd0')]){_0xaf6ab7[_0x6ea4('0x36')]({'model':db['Attachment'],'as':_0x6ea4('0xd1'),'raw':!![]});}var _0x5f2b7f=[{'model':db[_0x6ea4('0xb7')],'as':_0x6ea4('0xd2'),'attributes':['id',_0x6ea4('0x73'),_0x6ea4('0x79'),_0x6ea4('0xd3'),_0x6ea4('0xd4'),'read'],'include':_0xaf6ab7}];_0x5f2b7f[_0x6ea4('0x36')]({'model':db[_0x6ea4('0xd5')],'as':_0x6ea4('0xd6'),'attributes':['id',_0x6ea4('0x2d')]});_0x5f2b7f[_0x6ea4('0x36')]({'model':db['User'],'as':_0x6ea4('0xd7'),'attributes':['id',_0x6ea4('0x31')]});return db[_0x6ea4('0x39')]['find']({'where':{'id':_0x38a7cd[_0x6ea4('0xb0')]['id']},'include':_0x5f2b7f})['then'](handleEntityNotFound(_0x522839,null))['then'](function(_0x55a504){if(_0x55a504){var _0x3aae53=_0x55a504[_0x6ea4('0xd8')]({'plain':!![]});fs[_0x6ea4('0xd9')](_0x4b7a93);var _0x4b25b7={'channel':'Openchannel','account':_0x3aae53['Account'][_0x6ea4('0x2d')],'agent':_0x3aae53['Owner']?_0x3aae53['Owner'][_0x6ea4('0x31')]:_0x6ea4('0xda'),'createdAt':moment(_0x3aae53[_0x6ea4('0x79')])[_0x6ea4('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')[_0x6ea4('0x96')](),'closedAt':_0x3aae53[_0x6ea4('0xdb')]?moment(_0x3aae53[_0x6ea4('0xdc')])['format'](_0x6ea4('0xbd'))[_0x6ea4('0x96')]():'','disposition':_0x3aae53[_0x6ea4('0xdd')],'visibility':_0x3aae53['threadId']?_0x6ea4('0xde'):_0x6ea4('0xdf'),'messages':_(_0x3aae53[_0x6ea4('0xd2')])['filter']({'secret':![]})['map'](function(_0x5ae4b9){if(_0x5ae4b9['Attachment']){var _0xbd935c=path['join'](_0x1a4e93,_0x5ae4b9[_0x6ea4('0xd1')][_0x6ea4('0xe0')]);if(fs['existsSync'](_0xbd935c)){fs[_0x6ea4('0xe1')](_0xbd935c)['pipe'](fs[_0x6ea4('0xe2')](path[_0x6ea4('0xc9')](_0x4b7a93,_0x5ae4b9[_0x6ea4('0xd1')][_0x6ea4('0xe0')])));}}return{'date':moment(_0x5ae4b9[_0x6ea4('0x79')])['format'](_0x6ea4('0xbd'))['toString'](),'sender':_0x5ae4b9[_0x6ea4('0xd3')]===_0x6ea4('0xe3')?_0x5ae4b9[_0x6ea4('0x70')]?_0x5ae4b9[_0x6ea4('0x70')][_0x6ea4('0x31')]:_0x6ea4('0xe4'):_0x5ae4b9[_0x6ea4('0xce')][_0x6ea4('0xe5')]+(_0x5ae4b9[_0x6ea4('0xce')][_0x6ea4('0xcf')]?'\x20'+_0x5ae4b9[_0x6ea4('0xce')][_0x6ea4('0xcf')]:''),'body':_0x5ae4b9[_0x6ea4('0xd1')]?_0x5ae4b9[_0x6ea4('0xd1')][_0x6ea4('0xe0')]:_0x5ae4b9[_0x6ea4('0x73')],'direction':_0x5ae4b9[_0x6ea4('0xd3')]===_0x6ea4('0xe3')?'A':'C','secret':_0x5ae4b9[_0x6ea4('0xd4')],'read':_0x5ae4b9[_0x6ea4('0xe6')],'attachment':_0x5ae4b9[_0x6ea4('0xd1')]};})[_0x6ea4('0x67')]()};return ejs[_0x6ea4('0xe7')](path[_0x6ea4('0xc9')](config[_0x6ea4('0xca')],'server','views',_0x6ea4('0xe8')),{'interaction':_0x4b25b7})[_0x6ea4('0x8f')](function(_0x1b4323){var _0x459e52=path[_0x6ea4('0xc9')](_0x4b7a93,'transcript-'+_0x3aae53['id']+'-'+_0x15789a+_0x6ea4('0xe9'));var _0x23c369={'path':_0x459e52,'channel':'Openchannel','interactionId':_0x3aae53['id']};return pdf[_0x6ea4('0xea')](_0x1b4323,_0x23c369);})[_0x6ea4('0x8f')](function(){return new BPromise(function(_0x54e678,_0x314e09){zipdir(_0x4b7a93,{'saveTo':_0x59e9a3},function(_0x4da5cd,_0x4b10a0){if(_0x4da5cd)return _0x314e09(_0x4da5cd);return _0x54e678(_0x4b10a0);});})[_0x6ea4('0x8f')](function(){return new BPromise(function(_0x1db362,_0x297fc6){rimraf(_0x4b7a93,function(_0x40cb7e){if(_0x40cb7e)_0x297fc6(_0x40cb7e);return _0x1db362();});});})[_0x6ea4('0x8f')](function(){return _0x522839[_0x6ea4('0xeb')](_0x59e9a3,_0x4e16af,function(_0x334879){if(_0x334879){console[_0x6ea4('0xec')](_0x6ea4('0xed'),_0x334879);}else{fs['unlinkSync'](_0x59e9a3);}});});});}else{return _0x522839[_0x6ea4('0xee')](0xc8);}})['catch'](handleError(_0x522839,null));};
\ No newline at end of file
+var _0x79d2=['jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','sendStatus','status','json','limit','undefined','offset','count','Content-Range','reject','update','then','destroy','end','error','stack','name','send','map','fullname','TagIds','split','forEach','Tags','push','catch','index','rawAttributes','fieldName','type','key','model','query','keys','attributes','fields','length','nolimit','sort','where','filters','field','tools_tags','select','u.fullname','ui.OpenchannelInteractionId','from','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','search','sqlOperator','conditions','find','unreadMessages','`\x20=\x200','`\x20>\x200','operator','$substring','value','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','body','start','some','compact','isEmpty','OpenchannelAccountId','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20=\x20?','read','having','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','replace','isNumeric','i.id\x20LIKE\x20?','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IN\x20?','sequelize','toString','keyBy','OpenchannelInteraction','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','show','params','intersection','includeAll','include','merge','options','create','describe','addMessage','ids','omit','getMessages','findOne','OpenchannelMessage','hasOwnProperty','pick','OpenchannelInteractionId','filter','format','rows','setTags','spread','color','emit','openchannelInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','CmContact','firstName','Attachment','Messages','direction','secret','Account','Owner','get','mkdirSync','Openchannel','N.A.','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','disposition','Public','basename','existsSync','createWriteStream','System','Contact','lastName','out','views','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','err','eml-format','fast-json-patch','moment','path','sox','to-csv','fs-extra','lodash','squel'];(function(_0x37e9ed,_0x1c8a28){var _0xdf8dbc=function(_0xcf933d){while(--_0xcf933d){_0x37e9ed['push'](_0x37e9ed['shift']());}};_0xdf8dbc(++_0x1c8a28);}(_0x79d2,0x1c5));var _0x279d=function(_0x191b2d,_0x15f3d9){_0x191b2d=_0x191b2d-0x0;var _0x364d36=_0x79d2[_0x191b2d];return _0x364d36;};'use strict';var emlformat=require(_0x279d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x279d('0x1'));var rp=require('request-promise');var moment=require(_0x279d('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x279d('0x3'));var sox=require(_0x279d('0x4'));var csv=require(_0x279d('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x279d('0x6'));var _=require(_0x279d('0x7'));var squel=require(_0x279d('0x8'));var crypto=require('crypto');var jsforce=require(_0x279d('0x9'));var deskjs=require(_0x279d('0xa'));var toCsv=require(_0x279d('0x5'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x279d('0xb'));var qs=require(_0x279d('0xc'));var as=require('../../components/parsers/advancedSearch');var pdf=require('../../components/export/pdf');var hardwareService=require('../../config/license/hardware');var logger=require(_0x279d('0xd'))(_0x279d('0xe'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x279d('0xf'));var db=require(_0x279d('0x10'))['db'];config['redis']=_[_0x279d('0x11')](config[_0x279d('0x12')],{'host':_0x279d('0x13'),'port':0x18eb});var socket=require(_0x279d('0x14'))(new Redis(config[_0x279d('0x12')]));require(_0x279d('0x15'))['register'](socket);function respondWithStatusCode(_0x79688d,_0x13ee1f){_0x13ee1f=_0x13ee1f||0xcc;return function(_0x261e01){if(_0x261e01){return _0x79688d[_0x279d('0x16')](_0x13ee1f);}return _0x79688d[_0x279d('0x17')](_0x13ee1f)['end']();};}function respondWithResult(_0x543492,_0x565c7d){_0x565c7d=_0x565c7d||0xc8;return function(_0x4bd1cd){if(_0x4bd1cd){return _0x543492[_0x279d('0x17')](_0x565c7d)[_0x279d('0x18')](_0x4bd1cd);}};}function respondWithFilteredResult(_0x1361f5,_0x3e5353){return function(_0x31f72d){if(_0x31f72d){var _0x1848d2=typeof _0x3e5353['offset']==='undefined'&&typeof _0x3e5353[_0x279d('0x19')]===_0x279d('0x1a');var _0x3852ef=_0x31f72d['count'];var _0x21fedb=_0x1848d2?0x0:_0x3e5353[_0x279d('0x1b')];var _0xda64c4=_0x1848d2?_0x31f72d[_0x279d('0x1c')]:_0x3e5353[_0x279d('0x1b')]+_0x3e5353[_0x279d('0x19')];var _0x318713;if(_0xda64c4>=_0x3852ef){_0xda64c4=_0x3852ef;_0x318713=0xc8;}else{_0x318713=0xce;}_0x1361f5['status'](_0x318713);return _0x1361f5['set'](_0x279d('0x1d'),_0x21fedb+'-'+_0xda64c4+'/'+_0x3852ef)[_0x279d('0x18')](_0x31f72d);}return null;};}function patchUpdates(_0x37ee75){return function(_0x20b4f4){try{jsonpatch['apply'](_0x20b4f4,_0x37ee75,!![]);}catch(_0x270113){return BPromise[_0x279d('0x1e')](_0x270113);}return _0x20b4f4['save']();};}function saveUpdates(_0x32ba23,_0x4c588e){return function(_0x4ea6f3){if(_0x4ea6f3){return _0x4ea6f3[_0x279d('0x1f')](_0x32ba23)[_0x279d('0x20')](function(_0x3f8688){return _0x3f8688;});}return null;};}function removeEntity(_0x2652d1,_0x5cd7e9){return function(_0x435ada){if(_0x435ada){return _0x435ada[_0x279d('0x21')]()[_0x279d('0x20')](function(){_0x2652d1['status'](0xcc)[_0x279d('0x22')]();});}};}function handleEntityNotFound(_0x550c2b,_0x4a0f37){return function(_0x54f7e8){if(!_0x54f7e8){_0x550c2b['sendStatus'](0x194);}return _0x54f7e8;};}function handleError(_0x4bd8ce,_0x43f3af){_0x43f3af=_0x43f3af||0x1f4;return function(_0x53b5bd){logger[_0x279d('0x23')](_0x53b5bd[_0x279d('0x24')]);if(_0x53b5bd[_0x279d('0x25')]){delete _0x53b5bd[_0x279d('0x25')];}_0x4bd8ce['status'](_0x43f3af)[_0x279d('0x26')](_0x53b5bd);};}function getInteractionUsers(_0x11a5eb,_0x34ed79){return new BPromise(function(_0x1b2713,_0x1bc4ba){try{if(_0x34ed79[_0x11a5eb['id']]){_0x11a5eb['Users']=_[_0x279d('0x27')](_0x34ed79[_0x11a5eb['id']],function(_0xd70cdf){return{'id':_0xd70cdf['id'],'fullname':_0xd70cdf[_0x279d('0x28')]};});}}catch(_0x3a77b5){_0x1bc4ba(_0x3a77b5);}_0x1b2713(_0x11a5eb);});}function getInteractionTags(_0x45be66,_0x269994){return new BPromise(function(_0x294723,_0x1f0c86){try{if(_0x45be66[_0x279d('0x29')]){_0x45be66['Tags']=[];_0x45be66['TagIds'][_0x279d('0x2a')](',')[_0x279d('0x2b')](function(_0x33853b){_0x45be66[_0x279d('0x2c')][_0x279d('0x2d')](_0x269994[_0x33853b]);});}delete _0x45be66['TagIds'];}catch(_0x4b69e3){_0x1f0c86(_0x4b69e3);}_0x294723(_0x45be66);});}function updateOpenchannelInteraction(_0x4b15a5,_0x39bb52,_0x36232b){return new BPromise(function(_0x299fe6,_0x2c6081){return getInteractionUsers(_0x4b15a5,_0x36232b)['then'](function(_0xee2e09){return getInteractionTags(_0xee2e09,_0x39bb52);})[_0x279d('0x20')](function(_0x31b0d4){_0x299fe6(_0x31b0d4);})[_0x279d('0x2e')](function(_0x31291a){_0x2c6081(_0x31291a);});});}exports[_0x279d('0x2f')]=function(_0xa8f19,_0x1c1367){var _0x562439={},_0x17e94d={},_0x396545={'count':0x0,'rows':[]};var _0x3f3779=_[_0x279d('0x27')](db['OpenchannelInteraction'][_0x279d('0x30')],function(_0x5c32d8){return{'name':_0x5c32d8[_0x279d('0x31')],'type':_0x5c32d8[_0x279d('0x32')][_0x279d('0x33')]};});_0x17e94d[_0x279d('0x34')]=_['map'](_0x3f3779,_0x279d('0x25'));_0x17e94d[_0x279d('0x35')]=_[_0x279d('0x36')](_0xa8f19[_0x279d('0x35')]);_0x17e94d['filters']=_['intersection'](_0x17e94d[_0x279d('0x34')],_0x17e94d[_0x279d('0x35')]);_0x562439[_0x279d('0x37')]=_['intersection'](_0x17e94d[_0x279d('0x34')],qs[_0x279d('0x38')](_0xa8f19[_0x279d('0x35')][_0x279d('0x38')]));_0x562439[_0x279d('0x37')]=_0x562439[_0x279d('0x37')][_0x279d('0x39')]?_0x562439[_0x279d('0x37')]:_0x17e94d[_0x279d('0x34')];if(!_0xa8f19[_0x279d('0x35')]['hasOwnProperty'](_0x279d('0x3a'))){_0x562439[_0x279d('0x19')]=qs[_0x279d('0x19')](_0xa8f19[_0x279d('0x35')][_0x279d('0x19')]);_0x562439[_0x279d('0x1b')]=qs[_0x279d('0x1b')](_0xa8f19[_0x279d('0x35')][_0x279d('0x1b')]);}_0x562439['order']=qs['sort'](_0xa8f19[_0x279d('0x35')][_0x279d('0x3b')]);_0x562439[_0x279d('0x3c')]=qs[_0x279d('0x3d')](_['pick'](_0xa8f19[_0x279d('0x35')],_0x17e94d[_0x279d('0x3d')]),_0x3f3779);var _0x3b8a6f=[];var _0x343812=squel['select']()[_0x279d('0x3e')]('id')[_0x279d('0x3e')]('name')['field']('color')['from'](_0x279d('0x3f'));var _0x1fcd28=squel[_0x279d('0x40')]()[_0x279d('0x3e')]('u.id')['field'](_0x279d('0x41'))[_0x279d('0x3e')](_0x279d('0x42'))[_0x279d('0x43')](_0x279d('0x44'),'ui')[_0x279d('0x45')](_0x279d('0x46'),'u',_0x279d('0x47'));var _0x9915a9=squel['select']()[_0x279d('0x43')](_0x279d('0x48'),'i')['left_join'](_0x279d('0x49'),'c',_0x279d('0x4a'))['left_join'](_0x279d('0x46'),'o','o.id\x20=\x20i.UserId')[_0x279d('0x45')](_0x279d('0x4b'),'a',_0x279d('0x4c'))[_0x279d('0x45')]('openchannel_messages','me',_0x279d('0x4d'))[_0x279d('0x45')](_0x279d('0x4e'),'it',_0x279d('0x4f'))[_0x279d('0x45')](_0x279d('0x3f'),'t',_0x279d('0x50'));var _0x15908e=squel[_0x279d('0x51')]();var _0x115635=[];var _0x242dcd=squel[_0x279d('0x51')]();var _0x36d343;if(_0xa8f19[_0x279d('0x35')]['search']){_0x36d343=as[_0x279d('0x52')](_0xa8f19[_0x279d('0x35')][_0x279d('0x53')]);var _0x1323d6=_0x36d343[_0x279d('0x54')];for(var _0x501c2f=0x0;_0x501c2f<_0x36d343['conditions'][_0x279d('0x39')];_0x501c2f++){var _0x1b0168=_0x36d343[_0x279d('0x55')][_0x501c2f];var _0xd26d86='i';var _0x5c706c=_[_0x279d('0x56')](_0x3f3779,['name',_0x1b0168['field']]);if(!_0x5c706c){switch(_0x1b0168['field']){case _0x279d('0x57'):if(_0x1b0168['value']==0x1){_0x9915a9['having']('`'+_0x1b0168[_0x279d('0x3e')]+_0x279d('0x58'));}else{_0x9915a9['having']('`'+_0x1b0168[_0x279d('0x3e')]+_0x279d('0x59'));}break;case'Contact':if(_0x1b0168[_0x279d('0x5a')]===_0x279d('0x5b')){if(_0x1b0168[_0x279d('0x5c')][_0x279d('0x2a')]('\x20')['length']>0x1){_0x15908e[_0x1323d6]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x279d('0x5d')](_0x1b0168[_0x279d('0x5c')]),null);}else{var _0x5b9904='%'+_0x1b0168[_0x279d('0x5c')]+'%';_0x15908e[_0x1323d6](_0x279d('0x5e'),_0x5b9904,_0x5b9904,_0x5b9904);}}else{_0x5c706c=_[_0x279d('0x56')](_0x3f3779,[_0x279d('0x25'),'ContactId']);_0x1b0168[_0x279d('0x3e')]=_0x279d('0x5f');_0x339e45=as[_0x279d('0x60')](_0xd26d86,_0x5c706c['type'],_0x1b0168);_0x15908e[_0x1323d6](_0x339e45['text'],_0x339e45[_0x279d('0x5c')]['start'],_0x339e45[_0x279d('0x5c')][_0x279d('0x22')]);}break;case _0x279d('0x61'):var _0x47972b=_0x1b0168[_0x279d('0x5c')][_0x279d('0x2a')](',')[_0x279d('0x27')](function(_0x49d32c){return Number(_0x49d32c);});_0x47972b[_0x279d('0x2b')](function(_0x5d6d98){_0x242dcd['or'](_0x279d('0x62'),'%,'+_0x5d6d98+',%');});_0x115635=_['union'](_0x115635,_0x47972b);break;case _0x279d('0x63'):if(_0x1b0168[_0x279d('0x5a')]==='$substring'){_0x15908e[_0x1323d6](_0x279d('0x64'),'%'+_0x1b0168[_0x279d('0x5c')]+'%',null);}else{_0x5c706c=_[_0x279d('0x56')](_0x3f3779,['name',_0x279d('0x65')]);_0x1b0168[_0x279d('0x3e')]=_0x279d('0x65');_0x339e45=as[_0x279d('0x60')](_0xd26d86,_0x5c706c[_0x279d('0x32')],_0x1b0168);_0x15908e[_0x1323d6](_0x339e45[_0x279d('0x66')],_0x339e45[_0x279d('0x5c')]['start'],_0x339e45['value']['end']);}break;case _0x279d('0x67'):_0x339e45=as['buildExpression']('me',null,_0x1b0168);_0x15908e[_0x1323d6](_0x339e45['text'],_0x339e45[_0x279d('0x5c')]['start'],_0x339e45[_0x279d('0x5c')][_0x279d('0x22')]);break;}}else{var _0x339e45=as[_0x279d('0x60')](_0xd26d86,_0x5c706c[_0x279d('0x32')],_0x1b0168);_0x15908e[_0x1323d6](_0x339e45[_0x279d('0x66')],_0x339e45[_0x279d('0x5c')][_0x279d('0x68')],_0x339e45[_0x279d('0x5c')][_0x279d('0x22')]);}}}else{var _0x1045e2=_(_0xa8f19['query'])[_0x279d('0x36')]()[_0x279d('0x27')](function(_0x3b1456){return _[_0x279d('0x69')](_0x3f3779,[_0x279d('0x25'),_0x3b1456])?_0x3b1456:undefined;})[_0x279d('0x6a')]()['value']();if(!_[_0x279d('0x6b')](_0x1045e2)){_0x1045e2[_0x279d('0x2b')](function(_0x1b51db){if(_0x1b51db===_0x279d('0x6c')){_0x9915a9['where']('i.OpenchannelAccountId\x20IN\x20?',[][_0x279d('0x6d')](_0xa8f19['query'][_0x1b51db]));}else if(_0x1b51db===_0x279d('0x6e')){var _0x1c3c92=JSON[_0x279d('0x6f')](_0xa8f19[_0x279d('0x35')][_0x1b51db])[_0x279d('0x70')];var _0x18a969=JSON[_0x279d('0x6f')](_0xa8f19[_0x279d('0x35')][_0x1b51db])['$lte'];_0x9915a9['where'](_0x279d('0x71'),_0x1c3c92,_0x18a969);}else{if(_0xa8f19['query'][_0x1b51db]==='null'){_0x9915a9[_0x279d('0x3c')]('i.'+_0x1b51db+'\x20IS\x20NULL');}else{_0x9915a9[_0x279d('0x3c')]('i.'+_0x1b51db+_0x279d('0x72'),_0xa8f19[_0x279d('0x35')][_0x1b51db]);}}});}if(_0xa8f19['query'][_0x279d('0x73')]){if(_0xa8f19['query'][_0x279d('0x73')]==0x1){_0x9915a9[_0x279d('0x74')](_0x279d('0x75'));}else{_0x9915a9['having'](_0x279d('0x76'));}}if(_0xa8f19[_0x279d('0x35')]['tag']){_0x115635=_[_0x279d('0x77')](_0xa8f19[_0x279d('0x35')][_0x279d('0x78')])?_0xa8f19['query'][_0x279d('0x78')]:new Array(_0xa8f19[_0x279d('0x35')][_0x279d('0x78')]);_0x115635[_0x279d('0x2b')](function(_0x196050){_0x242dcd['or'](_0x279d('0x62'),'%,'+_0x196050+',%');});}if(_0xa8f19[_0x279d('0x35')]['filter']){var _0x49b836=_0xa8f19[_0x279d('0x35')]['filter'][_0x279d('0x79')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x279d('0x7a')](_0x49b836)){_0x15908e['or'](_0x279d('0x7b'),_0x49b836+'%');}else{_0x15908e['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x49b836))['or'](_0x279d('0x7c'),_0x49b836+'%')['or'](_0x279d('0x7d'),_0x49b836+'%');}}}_0x9915a9[_0x279d('0x3c')](_0x15908e);_0x9915a9['group'](_0x279d('0x7e'));var _0x227a58={'type':db[_0x279d('0x7f')][_0x279d('0x80')][_0x279d('0x81')],'raw':!![]};var _0x3b0020=_0x9915a9['clone']();_0x3b0020[_0x279d('0x3e')](_0x279d('0x7e'));_0x3b0020[_0x279d('0x3e')](_0x279d('0x82'),_0x279d('0x57'));if(_0x562439[_0x279d('0x83')]){_0x562439[_0x279d('0x83')][_0x279d('0x2b')](function(_0x412de4){var _0x100c16=_0x412de4[0x0]===_0x279d('0x84')?_0x412de4[0x0]:'i.'+_0x412de4[0x0];_0x9915a9[_0x279d('0x83')](_0x100c16,_0x412de4[0x1]===_0x279d('0x85')?![]:!![]);});}if(!_[_0x279d('0x6b')](_0x115635)){_0x9915a9[_0x279d('0x74')](_0x242dcd);_0x3b0020[_0x279d('0x3c')](_0x279d('0x86'),_0x115635);}BPromise[_0x279d('0x87')]()[_0x279d('0x20')](function(){if(!_0x36d343){if(_0xa8f19[_0x279d('0x35')][_0x279d('0x6c')])return;_0x3b0020[_0x279d('0x3c')](_0x279d('0x88'));_0x9915a9[_0x279d('0x3c')](_0x279d('0x88'));return;}if(_0xa8f19[_0x279d('0x89')][_0x279d('0x8a')]!==_0x279d('0x8b'))return;return _0xa8f19[_0x279d('0x89')][_0x279d('0x8c')]({'attributes':['id'],'raw':!![]})[_0x279d('0x20')](function(_0x1b118c){if(_['isEmpty'](_0x1b118c)){_0x3b0020[_0x279d('0x3c')]('i.OpenchannelAccountId\x20IS\x20NULL');_0x9915a9[_0x279d('0x3c')]('i.OpenchannelAccountId\x20IS\x20NULL');}else{_0x3b0020[_0x279d('0x3c')]('i.OpenchannelAccountId\x20IN\x20?',_['map'](_0x1b118c,'id'));_0x9915a9[_0x279d('0x3c')](_0x279d('0x8d'),_['map'](_0x1b118c,'id'));}});})['then'](function(){if(_0xa8f19[_0x279d('0x89')][_0x279d('0x8a')]===_0x279d('0x8b')&&!_0x36d343&&!_0xa8f19[_0x279d('0x35')][_0x279d('0x6c')])return[];return db[_0x279d('0x8e')][_0x279d('0x35')](_0x3b0020[_0x279d('0x8f')](),_0x227a58);})[_0x279d('0x20')](function(_0x1984a7){_0x396545['count']=_0x1984a7['length'];if(_0x396545[_0x279d('0x1c')]===0x0)return[];return db[_0x279d('0x8e')][_0x279d('0x35')](_0x343812[_0x279d('0x8f')](),_0x227a58)[_0x279d('0x20')](function(_0xf96df8){_0x3b8a6f=_[_0x279d('0x90')](_0xf96df8,'id');_0x227a58=_['merge'](_0x227a58,{'model':db[_0x279d('0x91')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xa8f19[_0x279d('0x35')][_0x279d('0x38')]){_0x562439[_0x279d('0x37')]['forEach'](function(_0x1b03d6){_0x9915a9[_0x279d('0x3e')]('i.'+_0x1b03d6);});}else{_0x9915a9['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0x9915a9[_0x279d('0x3e')](_0x279d('0x92'),_0x279d('0x93'));_0x9915a9['field']('a.mandatoryDisposition',_0x279d('0x94'));_0x9915a9[_0x279d('0x3e')](_0x279d('0x95'),'contactName');_0x9915a9['field']('i.*');_0x9915a9[_0x279d('0x3e')]('c.firstName',_0x279d('0x96'));_0x9915a9[_0x279d('0x3e')](_0x279d('0x97'),_0x279d('0x98'));_0x9915a9[_0x279d('0x3e')](_0x279d('0x99'),_0x279d('0x9a'));_0x9915a9[_0x279d('0x3e')](_0x279d('0x9b'),_0x279d('0x9c'));_0x9915a9[_0x279d('0x3e')](_0x279d('0x9d'),_0x279d('0x9e'));_0x9915a9[_0x279d('0x3e')](_0x279d('0x9f'),'Contact.fax');_0x9915a9[_0x279d('0x3e')](_0x279d('0xa0'),_0x279d('0xa1'));_0x9915a9[_0x279d('0x3e')](_0x279d('0xa2'),_0x279d('0xa3'));_0x9915a9[_0x279d('0x3e')](_0x279d('0xa4'),_0x279d('0x29'));}if(_0x562439[_0x279d('0x19')])_0x9915a9[_0x279d('0x19')](_0x562439['limit']);if(_0x562439[_0x279d('0x1b')])_0x9915a9[_0x279d('0x1b')](_0x562439['offset']);return db[_0x279d('0x8e')][_0x279d('0x35')](_0x9915a9[_0x279d('0x8f')](),_0x227a58);})['then'](function(_0x36f1ba){if(_0x36f1ba['length']>0x0)_0x1fcd28[_0x279d('0x3c')]('ui.OpenchannelInteractionId\x20IN\x20?',_['map'](_0x36f1ba,'id'));return db['sequelize']['query'](_0x1fcd28[_0x279d('0x8f')](),_0x227a58)[_0x279d('0x20')](function(_0x444ad0){var _0x2ff1ea=_[_0x279d('0xa5')](_0x444ad0,'OpenchannelInteractionId');var _0x3d48a9=[];_0x36f1ba['forEach'](function(_0x5c6431){_0x3d48a9[_0x279d('0x2d')](updateOpenchannelInteraction(_0x5c6431,_0x3b8a6f,_0x2ff1ea));});return BPromise['all'](_0x3d48a9);});});})[_0x279d('0x20')](function(_0x204e16){_0x396545['rows']=_0x204e16;return _0x396545;})[_0x279d('0x20')](respondWithFilteredResult(_0x1c1367,_0x562439))[_0x279d('0x2e')](handleError(_0x1c1367,null));};exports[_0x279d('0xa6')]=function(_0x81122c,_0xee89eb){var _0x1b7226={};if(_0x81122c['query'][_0x279d('0x32')]&&_0x81122c['query'][_0x279d('0x32')]===_0x279d('0x43')){_0x1b7226['from']=_0x81122c[_0x279d('0xa7')]['id'];}else{_0x1b7226['id']=_0x81122c[_0x279d('0xa7')]['id'];}var _0x3bcd26={'raw':![],'where':_0x1b7226},_0x4d14cb={};_0x4d14cb['model']=_[_0x279d('0x36')](db['OpenchannelInteraction'][_0x279d('0x30')]);_0x4d14cb[_0x279d('0x35')]=_['keys'](_0x81122c['query']);_0x4d14cb[_0x279d('0x3d')]=_[_0x279d('0xa8')](_0x4d14cb[_0x279d('0x34')],_0x4d14cb[_0x279d('0x35')]);_0x3bcd26[_0x279d('0x37')]=_[_0x279d('0xa8')](_0x4d14cb[_0x279d('0x34')],qs[_0x279d('0x38')](_0x81122c[_0x279d('0x35')][_0x279d('0x38')]));_0x3bcd26['attributes']=_0x3bcd26[_0x279d('0x37')]['length']?_0x3bcd26[_0x279d('0x37')]:_0x4d14cb[_0x279d('0x34')];if(_0x81122c['query'][_0x279d('0xa9')]){_0x3bcd26[_0x279d('0xaa')]=[{'all':!![]}];}_0x3bcd26=_[_0x279d('0xab')]({},_0x3bcd26,_0x81122c[_0x279d('0xac')]);return db[_0x279d('0x91')][_0x279d('0x56')](_0x3bcd26)[_0x279d('0x20')](handleEntityNotFound(_0xee89eb,null))['then'](respondWithResult(_0xee89eb,null))[_0x279d('0x2e')](handleError(_0xee89eb,null));};exports[_0x279d('0xad')]=function(_0x15985e,_0x4fbbf6){return db[_0x279d('0x91')]['create'](_0x15985e[_0x279d('0x67')],{})[_0x279d('0x20')](respondWithResult(_0x4fbbf6,0xc9))[_0x279d('0x2e')](handleError(_0x4fbbf6,null));};exports[_0x279d('0x1f')]=function(_0x31923f,_0x901d66){if(_0x31923f[_0x279d('0x67')]['id']){delete _0x31923f[_0x279d('0x67')]['id'];}return db[_0x279d('0x91')][_0x279d('0x56')]({'where':{'id':_0x31923f['params']['id']}})['then'](handleEntityNotFound(_0x901d66,null))[_0x279d('0x20')](saveUpdates(_0x31923f[_0x279d('0x67')],null))[_0x279d('0x20')](respondWithResult(_0x901d66,null))['catch'](handleError(_0x901d66,null));};exports[_0x279d('0x21')]=function(_0x3282ba,_0x36bdca){return db[_0x279d('0x91')]['find']({'where':{'id':_0x3282ba[_0x279d('0xa7')]['id']}})[_0x279d('0x20')](handleEntityNotFound(_0x36bdca,null))[_0x279d('0x20')](removeEntity(_0x36bdca,null))[_0x279d('0x2e')](handleError(_0x36bdca,null));};exports[_0x279d('0xae')]=function(_0x257bf0,_0x35f22c){return db[_0x279d('0x91')]['describe']()[_0x279d('0x20')](respondWithResult(_0x35f22c,null))['catch'](handleError(_0x35f22c,null));};exports[_0x279d('0xaf')]=function(_0x33eb60,_0x52e091,_0x9fbea1){return db['OpenchannelMessage'][_0x279d('0x56')]({'where':{'id':_0x33eb60[_0x279d('0xa7')]['id']}})['then'](handleEntityNotFound(_0x52e091,null))['then'](function(_0x37250e){if(_0x37250e){return _0x37250e[_0x279d('0xaf')](_0x33eb60[_0x279d('0x67')][_0x279d('0xb0')],_[_0x279d('0xb1')](_0x33eb60['body'],[_0x279d('0xb0'),'id'])||{});}})[_0x279d('0x20')](respondWithResult(_0x52e091,null))[_0x279d('0x2e')](handleError(_0x52e091,null));};exports[_0x279d('0xb2')]=function(_0x256af3,_0x2a1f98,_0x2d1460){var _0x20c143={'raw':![],'where':{}};var _0x3c488={};var _0x12eee2={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0x279d('0xb3')]({'where':{'id':_0x256af3['params']['id']}})['then'](handleEntityNotFound(_0x2a1f98,null))[_0x279d('0x20')](function(_0x15759c){if(_0x15759c){_0x3c488[_0x279d('0x34')]=_[_0x279d('0x36')](db[_0x279d('0xb4')][_0x279d('0x30')]);_0x3c488['query']=_['keys'](_0x256af3[_0x279d('0x35')]);_0x3c488['filters']=_['intersection'](_0x3c488[_0x279d('0x34')],_0x3c488[_0x279d('0x35')]);_0x20c143[_0x279d('0x37')]=_[_0x279d('0xa8')](_0x3c488[_0x279d('0x34')],qs[_0x279d('0x38')](_0x256af3['query'][_0x279d('0x38')]));_0x20c143['attributes']=_0x20c143[_0x279d('0x37')][_0x279d('0x39')]?_0x20c143[_0x279d('0x37')]:_0x3c488[_0x279d('0x34')];if(!_0x256af3['query'][_0x279d('0xb5')]('nolimit')){_0x20c143[_0x279d('0x19')]=qs[_0x279d('0x19')](_0x256af3[_0x279d('0x35')][_0x279d('0x19')]);_0x20c143['offset']=qs[_0x279d('0x1b')](_0x256af3[_0x279d('0x35')][_0x279d('0x1b')]);}_0x20c143[_0x279d('0x83')]=qs[_0x279d('0x3b')](_0x256af3['query']['sort']);_0x20c143['where']=qs[_0x279d('0x3d')](_[_0x279d('0xb6')](_0x256af3['query'],_0x3c488['filters']));_0x20c143[_0x279d('0x3c')][_0x279d('0xb7')]=_0x15759c['id'];if(_0x256af3[_0x279d('0x35')][_0x279d('0xb8')]){_0x20c143[_0x279d('0x3c')]=_['merge'](_0x20c143[_0x279d('0x3c')],{'$or':_['map'](_0x20c143[_0x279d('0x37')],function(_0x44b333){var _0x5eb102={};_0x5eb102[_0x44b333]={'$like':'%'+_0x256af3['query'][_0x279d('0xb8')]+'%'};return _0x5eb102;})});}if(_0x256af3[_0x279d('0x35')][_0x279d('0x70')]){var _0x58b683=_0x256af3[_0x279d('0x35')][_0x279d('0x70')][_0x279d('0x2a')](',');var _0x297828={};_0x297828[_0x58b683[0x0]]={'$gte':moment(_0x58b683[0x1])[_0x279d('0xb9')]('YYYY-MM-DD\x20HH:mm:ss')};_0x20c143[_0x279d('0x3c')]=_[_0x279d('0xab')](_0x20c143['where'],_0x297828);}_0x20c143=_[_0x279d('0xab')]({},_0x20c143,_0x256af3[_0x279d('0xac')]);return db['OpenchannelMessage'][_0x279d('0x1c')]({'where':_0x20c143[_0x279d('0x3c')]})[_0x279d('0x20')](function(_0xd5c779){_0x12eee2[_0x279d('0x1c')]=_0xd5c779;if(_0x256af3['query'][_0x279d('0xa9')]){_0x20c143[_0x279d('0xaa')]=[{'all':!![]}];}return db[_0x279d('0xb4')]['findAll'](_0x20c143);})['then'](function(_0x1c28d2){_0x12eee2[_0x279d('0xba')]=_0x1c28d2;return _0x12eee2;});}})[_0x279d('0x20')](respondWithFilteredResult(_0x2a1f98,_0x20c143))[_0x279d('0x2e')](handleError(_0x2a1f98,null));};exports['addTags']=function(_0x43fff3,_0x554dcd,_0x5e633a){return db[_0x279d('0x91')]['find']({'where':{'id':_0x43fff3['params']['id']}})['then'](handleEntityNotFound(_0x554dcd,null))['then'](function(_0x4be55e){if(_0x4be55e){return _0x4be55e[_0x279d('0xbb')](_0x43fff3['body'][_0x279d('0xb0')],_['omit'](_0x43fff3[_0x279d('0x67')],[_0x279d('0xb0'),'id'])||{})[_0x279d('0xbc')](function(){return db[_0x279d('0x61')]['findAll']({'attributes':['id',_0x279d('0x25'),_0x279d('0xbd')],'where':{'id':_0x43fff3[_0x279d('0x67')][_0x279d('0xb0')]}});})['then'](function(_0x59bff6){socket[_0x279d('0xbe')](_0x279d('0xbf'),{'id':Number(_0x43fff3[_0x279d('0xa7')]['id']),'tags':_0x59bff6||[]});return{'id':Number(_0x43fff3['params']['id']),'tags':_0x59bff6||[]};});}})['then'](respondWithResult(_0x554dcd,null))[_0x279d('0x2e')](handleError(_0x554dcd,null));};exports[_0x279d('0xc0')]=function(_0x2a7a44,_0x208aed,_0x5dfed6){return db[_0x279d('0x91')][_0x279d('0x56')]({'where':{'id':_0x2a7a44[_0x279d('0xa7')]['id']}})[_0x279d('0x20')](handleEntityNotFound(_0x208aed,null))[_0x279d('0x20')](function(_0x584d60){if(_0x584d60){return _0x584d60['removeTags'](_0x2a7a44[_0x279d('0x35')][_0x279d('0xb0')]);}})['then'](respondWithStatusCode(_0x208aed,null))[_0x279d('0x2e')](handleError(_0x208aed,null));};exports[_0x279d('0xc1')]=function(_0x140a1c,_0x157dca){var _0x4f9bfc=moment()[_0x279d('0xc2')]()[_0x279d('0x8f')]();var _0x110af3=path[_0x279d('0xc3')](config[_0x279d('0xc4')],_0x279d('0xc5'),_0x279d('0xc6'),_0x279d('0xc7'));var _0x321499=path[_0x279d('0xc3')](config[_0x279d('0xc4')],'server',_0x279d('0xc6'),_0x279d('0xc8'));var _0x1ab060=path[_0x279d('0xc3')](_0x110af3,_0x4f9bfc);var _0x4181a3=util['format']('transcript-%d-%s.zip',_0x140a1c['params']['id'],_0x4f9bfc);var _0x1cd4ef=path[_0x279d('0xc3')](_0x110af3,_0x4181a3);var _0x57cf1a=[];_0x57cf1a['push']({'model':db[_0x279d('0x63')],'as':'User','attributes':['id',_0x279d('0x28')],'raw':!![]});_0x57cf1a[_0x279d('0x2d')]({'model':db[_0x279d('0xc9')],'as':'Contact','attributes':['id',_0x279d('0xca'),'lastName'],'raw':!![]});if(_0x140a1c[_0x279d('0x35')][_0x279d('0xc8')]){_0x57cf1a[_0x279d('0x2d')]({'model':db[_0x279d('0xcb')],'as':'Attachment','raw':!![]});}var _0x4e537d=[{'model':db['OpenchannelMessage'],'as':_0x279d('0xcc'),'attributes':['id',_0x279d('0x67'),_0x279d('0x6e'),_0x279d('0xcd'),_0x279d('0xce'),_0x279d('0x73')],'include':_0x57cf1a}];_0x4e537d[_0x279d('0x2d')]({'model':db['OpenchannelAccount'],'as':_0x279d('0xcf'),'attributes':['id',_0x279d('0x25')]});_0x4e537d[_0x279d('0x2d')]({'model':db[_0x279d('0x63')],'as':_0x279d('0xd0'),'attributes':['id','fullname']});return db[_0x279d('0x91')]['find']({'where':{'id':_0x140a1c[_0x279d('0xa7')]['id']},'include':_0x4e537d})['then'](handleEntityNotFound(_0x157dca,null))[_0x279d('0x20')](function(_0x310163){if(_0x310163){var _0x210a28=_0x310163[_0x279d('0xd1')]({'plain':!![]});fs[_0x279d('0xd2')](_0x1ab060);var _0x3b5e1e={'channel':_0x279d('0xd3'),'account':_0x210a28[_0x279d('0xcf')][_0x279d('0x25')],'agent':_0x210a28[_0x279d('0xd0')]?_0x210a28[_0x279d('0xd0')][_0x279d('0x28')]:_0x279d('0xd4'),'createdAt':moment(_0x210a28['createdAt'])[_0x279d('0xb9')](_0x279d('0xd5'))[_0x279d('0x8f')](),'closedAt':_0x210a28[_0x279d('0xd6')]?moment(_0x210a28[_0x279d('0xd7')])['format']('YYYY-MM-DD\x20HH:mm:ss')[_0x279d('0x8f')]():'','disposition':_0x210a28[_0x279d('0xd8')],'visibility':_0x210a28['threadId']?_0x279d('0xd9'):'Private','messages':_(_0x210a28[_0x279d('0xcc')])[_0x279d('0xb8')]({'secret':![]})['map'](function(_0x55dbc9){if(_0x55dbc9['Attachment']){var _0x599305=path[_0x279d('0xc3')](_0x321499,_0x55dbc9[_0x279d('0xcb')][_0x279d('0xda')]);if(fs[_0x279d('0xdb')](_0x599305)){fs['createReadStream'](_0x599305)['pipe'](fs[_0x279d('0xdc')](path[_0x279d('0xc3')](_0x1ab060,_0x55dbc9[_0x279d('0xcb')][_0x279d('0xda')])));}}return{'date':moment(_0x55dbc9[_0x279d('0x6e')])[_0x279d('0xb9')](_0x279d('0xd5'))[_0x279d('0x8f')](),'sender':_0x55dbc9['direction']==='out'?_0x55dbc9['User']?_0x55dbc9['User'][_0x279d('0x28')]:_0x279d('0xdd'):_0x55dbc9[_0x279d('0xde')][_0x279d('0xca')]+(_0x55dbc9['Contact'][_0x279d('0xdf')]?'\x20'+_0x55dbc9[_0x279d('0xde')][_0x279d('0xdf')]:''),'body':_0x55dbc9[_0x279d('0xcb')]?_0x55dbc9[_0x279d('0xcb')][_0x279d('0xda')]:_0x55dbc9[_0x279d('0x67')],'direction':_0x55dbc9[_0x279d('0xcd')]===_0x279d('0xe0')?'A':'C','secret':_0x55dbc9[_0x279d('0xce')],'read':_0x55dbc9[_0x279d('0x73')],'attachment':_0x55dbc9['Attachment']};})['value']()};return ejs['renderFile'](path['join'](config[_0x279d('0xc4')],_0x279d('0xc5'),_0x279d('0xe1'),_0x279d('0xe2')),{'interaction':_0x3b5e1e})['then'](function(_0x579ad3){var _0x1b05cc=path[_0x279d('0xc3')](_0x1ab060,_0x279d('0xe3')+_0x210a28['id']+'-'+_0x4f9bfc+_0x279d('0xe4'));var _0x326c68={'path':_0x1b05cc,'channel':_0x279d('0xd3'),'interactionId':_0x210a28['id']};return pdf[_0x279d('0xe5')](_0x579ad3,_0x326c68);})['then'](function(){return new BPromise(function(_0x5e8099,_0x2084bf){zipdir(_0x1ab060,{'saveTo':_0x1cd4ef},function(_0x335a07,_0x1eb446){if(_0x335a07)return _0x2084bf(_0x335a07);return _0x5e8099(_0x1eb446);});})[_0x279d('0x20')](function(){return new BPromise(function(_0x58a63a,_0x1a7dd4){rimraf(_0x1ab060,function(_0x19ae88){if(_0x19ae88)_0x1a7dd4(_0x19ae88);return _0x58a63a();});});})[_0x279d('0x20')](function(){return _0x157dca[_0x279d('0xc1')](_0x1cd4ef,_0x4181a3,function(_0x2de41b){if(_0x2de41b){console['log'](_0x279d('0xe6'),_0x2de41b);}else{fs['unlinkSync'](_0x1cd4ef);}});});});}else{return _0x157dca['sendStatus'](0xc8);}})['catch'](handleError(_0x157dca,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd870=['../../mysqldb','OpenchannelMessage','save','remove','getUsers','then','setDataValue','Users','map','emit','catch','hook','events'];(function(_0x3a99d3,_0x117702){var _0x232000=function(_0xa79673){while(--_0xa79673){_0x3a99d3['push'](_0x3a99d3['shift']());}};_0x232000(++_0x117702);}(_0xd870,0x144));var _0x0d87=function(_0x3ad3cb,_0x44b153){_0x3ad3cb=_0x3ad3cb-0x0;var _0x35a233=_0xd870[_0x3ad3cb];return _0x35a233;};'use strict';var EventEmitter=require(_0x0d87('0x0'));var OpenchannelInteraction=require(_0x0d87('0x1'))['db']['OpenchannelInteraction'];var OpenchannelMessage=require('../../mysqldb')['db'][_0x0d87('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x0d87('0x3'),'afterUpdate':'update','afterDestroy':_0x0d87('0x4')};function emitEvent(_0x46b857){return function(_0x3991db,_0x12594a,_0x3ec553){_0x3991db[_0x0d87('0x5')]({'attributes':['id'],'raw':!![]})[_0x0d87('0x6')](function(_0x2f96f3){_0x3991db[_0x0d87('0x7')](_0x0d87('0x8'),_0x2f96f3[_0x0d87('0x9')](function(_0x3688ef){return{'id':_0x3688ef['id']};}));return OpenchannelMessage['findAll']({'where':{'OpenchannelInteractionId':_0x3991db['id'],'direction':'in','read':![]},'raw':!![]});})[_0x0d87('0x6')](function(_0x5315a4){_0x3991db[_0x0d87('0x7')]('unreadMessages',_0x5315a4['length']);OpenchannelInteractionEvents[_0x0d87('0xa')](_0x46b857+':'+_0x3991db['id'],_0x3991db);OpenchannelInteractionEvents[_0x0d87('0xa')](_0x46b857,_0x3991db);_0x3ec553(null);})[_0x0d87('0xb')](_0x3ec553(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelInteraction[_0x0d87('0xc')](e,emitEvent(event));}}module['exports']=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0x6068=['hook','exports','events','../../mysqldb','OpenchannelMessage','setMaxListeners','save','getUsers','map','findAll','then','length','emit','hasOwnProperty'];(function(_0x3d3a10,_0x4a47d8){var _0x29f92d=function(_0x2faeef){while(--_0x2faeef){_0x3d3a10['push'](_0x3d3a10['shift']());}};_0x29f92d(++_0x4a47d8);}(_0x6068,0x144));var _0x8606=function(_0x4b244d,_0x6fe6a3){_0x4b244d=_0x4b244d-0x0;var _0x7629ae=_0x6068[_0x4b244d];return _0x7629ae;};'use strict';var EventEmitter=require(_0x8606('0x0'));var OpenchannelInteraction=require(_0x8606('0x1'))['db']['OpenchannelInteraction'];var OpenchannelMessage=require(_0x8606('0x1'))['db'][_0x8606('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x8606('0x3')](0x0);var events={'afterCreate':_0x8606('0x4'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x8b0862){return function(_0x4bae69,_0x51e963,_0x26f47f){_0x4bae69[_0x8606('0x5')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5070b3){_0x4bae69['setDataValue']('Users',_0x5070b3[_0x8606('0x6')](function(_0x45782c){return{'id':_0x45782c['id']};}));return OpenchannelMessage[_0x8606('0x7')]({'where':{'OpenchannelInteractionId':_0x4bae69['id'],'direction':'in','read':![]},'raw':!![]});})[_0x8606('0x8')](function(_0x184ae5){_0x4bae69['setDataValue']('unreadMessages',_0x184ae5[_0x8606('0x9')]);OpenchannelInteractionEvents[_0x8606('0xa')](_0x8b0862+':'+_0x4bae69['id'],_0x4bae69);OpenchannelInteractionEvents[_0x8606('0xa')](_0x8b0862,_0x4bae69);_0x26f47f(null);})['catch'](_0x26f47f(null));};}for(var e in events){if(events[_0x8606('0xb')](e)){var event=events[e];OpenchannelInteraction[_0x8606('0xc')](e,emitEvent(event));}}module[_0x8606('0xd')]=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9365=['exports','define','openchannel_interactions','utf8mb4','utf8mb4_unicode_ci','changed','closed','format','YYYY-MM-DD\x20HH:mm:ss','util','../../config/logger','moment','bluebird','request-promise','rimraf','./openchannelInteraction.attributes'];(function(_0x5b75c4,_0xca1d42){var _0x6f2bda=function(_0x262bdc){while(--_0x262bdc){_0x5b75c4['push'](_0x5b75c4['shift']());}};_0x6f2bda(++_0xca1d42);}(_0x9365,0xe9));var _0x5936=function(_0x3e1e53,_0x104f6f){_0x3e1e53=_0x3e1e53-0x0;var _0x1caf8f=_0x9365[_0x3e1e53];return _0x1caf8f;};'use strict';var _=require('lodash');var util=require(_0x5936('0x0'));var logger=require(_0x5936('0x1'))('api');var moment=require(_0x5936('0x2'));var BPromise=require(_0x5936('0x3'));var rp=require(_0x5936('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5936('0x5'));var config=require('../../config/environment');var attributes=require(_0x5936('0x6'));module[_0x5936('0x7')]=function(_0x46ca0e,_0x5196c1){return _0x46ca0e[_0x5936('0x8')]('OpenchannelInteraction',attributes,{'tableName':_0x5936('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x5936('0xa'),'collate':_0x5936('0xb'),'hooks':{'beforeUpdate':function(_0x1d2214,_0x385e3c,_0x334d4e){if(_0x1d2214[_0x5936('0xc')](_0x5936('0xd'))){_0x1d2214['closedAt']=moment()[_0x5936('0xe')](_0x5936('0xf'));}_0x334d4e(null,_0x1d2214);}}});};
\ No newline at end of file
+var _0x7883=['changed','closed','closedAt','format','lodash','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','exports','define','OpenchannelInteraction','openchannel_interactions'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x7883,0x8b));var _0x3788=function(_0x4e556f,_0x2494d9){_0x4e556f=_0x4e556f-0x0;var _0x930c2c=_0x7883[_0x4e556f];return _0x930c2c;};'use strict';var _=require(_0x3788('0x0'));var util=require('util');var logger=require(_0x3788('0x1'))('api');var moment=require(_0x3788('0x2'));var BPromise=require('bluebird');var rp=require(_0x3788('0x3'));var fs=require('fs');var path=require(_0x3788('0x4'));var rimraf=require(_0x3788('0x5'));var config=require(_0x3788('0x6'));var attributes=require('./openchannelInteraction.attributes');module[_0x3788('0x7')]=function(_0x5997cf,_0x4f0238){return _0x5997cf[_0x3788('0x8')](_0x3788('0x9'),attributes,{'tableName':_0x3788('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci','hooks':{'beforeUpdate':function(_0x34272a,_0x3ac85d,_0x43351f){if(_0x34272a[_0x3788('0xb')](_0x3788('0xc'))){_0x34272a[_0x3788('0xd')]=moment()[_0x3788('0xe')]('YYYY-MM-DD\x20HH:mm:ss');}_0x43351f(null,_0x34272a);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x190d=['util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','defaults','redis','localhost','./openchannelInteraction.socket','request','then','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelInteraction,\x20%s,\x20%s','message','info','request\x20sent','catch','UpdateOpenchannelInteraction','OpenchannelInteraction','update','body','options','raw','where','limit','AddTagsToOpenchannelInteraction','addTags','ids','omit','spread','AddTags','lodash'];(function(_0x28b383,_0x54d996){var _0x3377f1=function(_0x36825f){while(--_0x36825f){_0x28b383['push'](_0x28b383['shift']());}};_0x3377f1(++_0x54d996);}(_0x190d,0x1a3));var _0xd190=function(_0x176807,_0x137e37){_0x176807=_0x176807-0x0;var _0x26cd57=_0x190d[_0x176807];return _0x26cd57;};'use strict';var _=require(_0xd190('0x0'));var util=require(_0xd190('0x1'));var moment=require('moment');var BPromise=require(_0xd190('0x2'));var rs=require(_0xd190('0x3'));var fs=require('fs');var Redis=require(_0xd190('0x4'));var db=require(_0xd190('0x5'))['db'];var utils=require(_0xd190('0x6'));var logger=require(_0xd190('0x7'))(_0xd190('0x8'));var config=require(_0xd190('0x9'));var jayson=require(_0xd190('0xa'));var client=jayson['client'][_0xd190('0xb')]({'port':0x232a});config['redis']=_[_0xd190('0xc')](config[_0xd190('0xd')],{'host':_0xd190('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd190('0xd')]));require(_0xd190('0xf'))['register'](socket);function respondWithRpcPromise(_0x349a3c,_0x4f6dcb,_0xc19bef){return new BPromise(function(_0x3907d3,_0x55f0f9){return client[_0xd190('0x10')](_0x349a3c,_0xc19bef)[_0xd190('0x11')](function(_0x43f3d1){logger['info']('OpenchannelInteraction,\x20%s,\x20%s',_0x4f6dcb,'request\x20sent');logger[_0xd190('0x12')](_0xd190('0x13'),_0x4f6dcb,'request\x20sent',JSON[_0xd190('0x14')](_0x43f3d1));if(_0x43f3d1[_0xd190('0x15')]){if(_0x43f3d1[_0xd190('0x15')][_0xd190('0x16')]===0x1f4){logger[_0xd190('0x15')](_0xd190('0x17'),_0x4f6dcb,_0x43f3d1[_0xd190('0x15')][_0xd190('0x18')]);return _0x55f0f9(_0x43f3d1['error']['message']);}logger[_0xd190('0x15')](_0xd190('0x17'),_0x4f6dcb,_0x43f3d1[_0xd190('0x15')][_0xd190('0x18')]);return _0x3907d3(_0x43f3d1[_0xd190('0x15')]['message']);}else{logger[_0xd190('0x19')]('OpenchannelInteraction,\x20%s,\x20%s',_0x4f6dcb,_0xd190('0x1a'));_0x3907d3(_0x43f3d1['result'][_0xd190('0x18')]);}})[_0xd190('0x1b')](function(_0x5e92e5){logger[_0xd190('0x15')](_0xd190('0x17'),_0x4f6dcb,_0x5e92e5);_0x55f0f9(_0x5e92e5);});});}exports[_0xd190('0x1c')]=function(_0x58a233){var _0x52627d=this;return new Promise(function(_0x1325ae,_0x175c74){return db[_0xd190('0x1d')][_0xd190('0x1e')](_0x58a233[_0xd190('0x1f')],{'raw':_0x58a233[_0xd190('0x20')]?_0x58a233[_0xd190('0x20')][_0xd190('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x58a233[_0xd190('0x20')]?_0x58a233[_0xd190('0x20')][_0xd190('0x22')]||null:null,'attributes':_0x58a233[_0xd190('0x20')]?_0x58a233[_0xd190('0x20')]['attributes']||null:null,'limit':_0x58a233[_0xd190('0x20')]?_0x58a233['options'][_0xd190('0x23')]||null:null})[_0xd190('0x11')](function(_0x50cadf){logger[_0xd190('0x19')](_0xd190('0x1c'),_0x58a233);logger[_0xd190('0x12')](_0xd190('0x1c'),_0x58a233,JSON[_0xd190('0x14')](_0x50cadf));_0x1325ae(_0x50cadf);})[_0xd190('0x1b')](function(_0x3ad4d0){logger[_0xd190('0x15')]('UpdateOpenchannelInteraction',_0x3ad4d0[_0xd190('0x18')],_0x58a233);_0x175c74(_0x52627d['error'](0x1f4,_0x3ad4d0[_0xd190('0x18')]));});});};exports[_0xd190('0x24')]=function(_0x48c445){return new Promise(function(_0x30bb63,_0x272d5e){return db[_0xd190('0x1d')]['find']({'where':_0x48c445[_0xd190('0x20')]?_0x48c445[_0xd190('0x20')][_0xd190('0x22')]||null:null})['then'](function(_0x5aea49){if(_0x5aea49){return _0x5aea49[_0xd190('0x25')](_0x48c445[_0xd190('0x1f')][_0xd190('0x26')],_[_0xd190('0x27')](_0x48c445['body'],['ids','id'])||{});}})[_0xd190('0x28')](function(_0x57523a){logger[_0xd190('0x19')](_0xd190('0x29'),_0x48c445);logger['debug'](_0xd190('0x29'),_0x48c445,JSON[_0xd190('0x14')](_0x57523a));_0x30bb63(_0x57523a);})['catch'](function(_0x1a3be7){logger[_0xd190('0x15')](_0xd190('0x29'),_0x1a3be7[_0xd190('0x18')],_0x48c445);_0x272d5e(_this[_0xd190('0x15')](0x1f4,_0x1a3be7[_0xd190('0x18')]));});});};
\ No newline at end of file
+var _0xe04a=['redis','socket.io-emitter','./openchannelInteraction.socket','register','request','info','OpenchannelInteraction,\x20%s,\x20%s','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','UpdateOpenchannelInteraction','OpenchannelInteraction','update','body','options','raw','where','attributes','limit','then','AddTagsToOpenchannelInteraction','find','addTags','ids','spread','AddTags','catch','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x345968,_0x262c97){var _0x536920=function(_0x311b83){while(--_0x311b83){_0x345968['push'](_0x345968['shift']());}};_0x536920(++_0x262c97);}(_0xe04a,0x1ce));var _0xae04=function(_0x30642e,_0x423b70){_0x30642e=_0x30642e-0x0;var _0x219e03=_0xe04a[_0x30642e];return _0x219e03;};'use strict';var _=require(_0xae04('0x0'));var util=require(_0xae04('0x1'));var moment=require(_0xae04('0x2'));var BPromise=require('bluebird');var rs=require(_0xae04('0x3'));var fs=require('fs');var Redis=require(_0xae04('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xae04('0x5'))(_0xae04('0x6'));var config=require(_0xae04('0x7'));var jayson=require(_0xae04('0x8'));var client=jayson[_0xae04('0x9')][_0xae04('0xa')]({'port':0x232a});config[_0xae04('0xb')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xae04('0xc'))(new Redis(config['redis']));require(_0xae04('0xd'))[_0xae04('0xe')](socket);function respondWithRpcPromise(_0x38e053,_0x3bd29b,_0x559e58){return new BPromise(function(_0x1e4465,_0x5a67e9){return client[_0xae04('0xf')](_0x38e053,_0x559e58)['then'](function(_0x52c0f){logger[_0xae04('0x10')](_0xae04('0x11'),_0x3bd29b,_0xae04('0x12'));logger[_0xae04('0x13')](_0xae04('0x14'),_0x3bd29b,_0xae04('0x12'),JSON[_0xae04('0x15')](_0x52c0f));if(_0x52c0f['error']){if(_0x52c0f[_0xae04('0x16')][_0xae04('0x17')]===0x1f4){logger[_0xae04('0x16')](_0xae04('0x11'),_0x3bd29b,_0x52c0f[_0xae04('0x16')][_0xae04('0x18')]);return _0x5a67e9(_0x52c0f[_0xae04('0x16')]['message']);}logger[_0xae04('0x16')](_0xae04('0x11'),_0x3bd29b,_0x52c0f[_0xae04('0x16')][_0xae04('0x18')]);return _0x1e4465(_0x52c0f[_0xae04('0x16')][_0xae04('0x18')]);}else{logger[_0xae04('0x10')](_0xae04('0x11'),_0x3bd29b,'request\x20sent');_0x1e4465(_0x52c0f[_0xae04('0x19')]['message']);}})['catch'](function(_0x196e5b){logger[_0xae04('0x16')]('OpenchannelInteraction,\x20%s,\x20%s',_0x3bd29b,_0x196e5b);_0x5a67e9(_0x196e5b);});});}exports[_0xae04('0x1a')]=function(_0x129096){var _0x46f4f6=this;return new Promise(function(_0x5c8208,_0x243a3a){return db[_0xae04('0x1b')][_0xae04('0x1c')](_0x129096[_0xae04('0x1d')],{'raw':_0x129096[_0xae04('0x1e')]?_0x129096['options'][_0xae04('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x129096[_0xae04('0x1e')]?_0x129096['options'][_0xae04('0x20')]||null:null,'attributes':_0x129096[_0xae04('0x1e')]?_0x129096[_0xae04('0x1e')][_0xae04('0x21')]||null:null,'limit':_0x129096[_0xae04('0x1e')]?_0x129096[_0xae04('0x1e')][_0xae04('0x22')]||null:null})[_0xae04('0x23')](function(_0x5a9cea){logger[_0xae04('0x10')](_0xae04('0x1a'),_0x129096);logger['debug'](_0xae04('0x1a'),_0x129096,JSON['stringify'](_0x5a9cea));_0x5c8208(_0x5a9cea);})['catch'](function(_0x5795a8){logger['error']('UpdateOpenchannelInteraction',_0x5795a8[_0xae04('0x18')],_0x129096);_0x243a3a(_0x46f4f6[_0xae04('0x16')](0x1f4,_0x5795a8['message']));});});};exports[_0xae04('0x24')]=function(_0x52ee18){return new Promise(function(_0x24f39b,_0x4b4f2d){return db[_0xae04('0x1b')][_0xae04('0x25')]({'where':_0x52ee18[_0xae04('0x1e')]?_0x52ee18[_0xae04('0x1e')]['where']||null:null})['then'](function(_0x271a03){if(_0x271a03){return _0x271a03[_0xae04('0x26')](_0x52ee18['body']['ids'],_['omit'](_0x52ee18[_0xae04('0x1d')],[_0xae04('0x27'),'id'])||{});}})[_0xae04('0x28')](function(_0x5c356b){logger[_0xae04('0x10')](_0xae04('0x29'),_0x52ee18);logger['debug']('AddTags',_0x52ee18,JSON['stringify'](_0x5c356b));_0x24f39b(_0x5c356b);})[_0xae04('0x2a')](function(_0x340bee){logger['error'](_0xae04('0x29'),_0x340bee[_0xae04('0x18')],_0x52ee18);_0x4b4f2d(_this['error'](0x1f4,_0x340bee[_0xae04('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x184c=['remove','update','register','length','./openchannelInteraction.events'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x184c,0xae));var _0xc184=function(_0x26f67f,_0x26f018){_0x26f67f=_0x26f67f-0x0;var _0x763907=_0x184c[_0x26f67f];return _0x763907;};'use strict';var OpenchannelInteractionEvents=require(_0xc184('0x0'));var events=['save',_0xc184('0x1'),_0xc184('0x2')];function createListener(_0x213f98,_0x58e931){return function(_0x37bb86){_0x58e931['emit'](_0x213f98,_0x37bb86);};}function removeListener(_0x319b12,_0x511a7a){return function(){OpenchannelInteractionEvents['removeListener'](_0x319b12,_0x511a7a);};}exports[_0xc184('0x3')]=function(_0x4b6747){for(var _0x52e102=0x0,_0xe77b56=events[_0xc184('0x4')];_0x52e102<_0xe77b56;_0x52e102++){var _0x3fddba=events[_0x52e102];var _0x13dc91=createListener('openchannelInteraction:'+_0x3fddba,_0x4b6747);OpenchannelInteractionEvents['on'](_0x3fddba,_0x13dc91);}};
\ No newline at end of file
+var _0x9ddb=['save','remove','update','register','length','openchannelInteraction:','./openchannelInteraction.events'];(function(_0x59b200,_0x239dda){var _0xd843cc=function(_0x1b5e24){while(--_0x1b5e24){_0x59b200['push'](_0x59b200['shift']());}};_0xd843cc(++_0x239dda);}(_0x9ddb,0x6f));var _0xb9dd=function(_0x3c68bd,_0x565d77){_0x3c68bd=_0x3c68bd-0x0;var _0x1d1cc9=_0x9ddb[_0x3c68bd];return _0x1d1cc9;};'use strict';var OpenchannelInteractionEvents=require(_0xb9dd('0x0'));var events=[_0xb9dd('0x1'),_0xb9dd('0x2'),_0xb9dd('0x3')];function createListener(_0x2d6678,_0x33181a){return function(_0x5c4950){_0x33181a['emit'](_0x2d6678,_0x5c4950);};}function removeListener(_0x45e3ca,_0x35c060){return function(){OpenchannelInteractionEvents['removeListener'](_0x45e3ca,_0x35c060);};}exports[_0xb9dd('0x4')]=function(_0x50b14a){for(var _0x48c60f=0x0,_0x2db559=events[_0xb9dd('0x5')];_0x48c60f<_0x2db559;_0x48c60f++){var _0x3e1aa8=events[_0x48c60f];var _0x298ca9=createListener(_0xb9dd('0x6')+_0x3e1aa8,_0x50b14a);OpenchannelInteractionEvents['on'](_0x3e1aa8,_0x298ca9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['put','update','/:id/accept','accept','destroy','multer','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./openchannelMessage.controller','isAuthenticated','describe','get','/:id','show','post','openchannel','openchannelmessage:create','create'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x70e0,0x17b));var _0x070e=function(_0xe22596,_0x56c32a){_0xe22596=_0xe22596-0x0;var _0x272fbd=_0x70e0[_0xe22596];return _0x272fbd;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');var controller=require(_0x070e('0x7'));router['get']('/',auth[_0x070e('0x8')](),controller['index']);router['get']('/describe',auth[_0x070e('0x8')](),controller[_0x070e('0x9')]);router[_0x070e('0xa')](_0x070e('0xb'),auth[_0x070e('0x8')](),controller[_0x070e('0xc')]);router[_0x070e('0xd')]('/',auth['isAuthenticated'](),interaction['tracked'](_0x070e('0xe'),_0x070e('0xf')),controller[_0x070e('0x10')]);router[_0x070e('0x11')](_0x070e('0xb'),auth[_0x070e('0x8')](),controller[_0x070e('0x12')]);router[_0x070e('0x11')](_0x070e('0x13'),auth[_0x070e('0x8')](),controller[_0x070e('0x14')]);router['put']('/:id/reject',auth[_0x070e('0x8')](),controller['reject']);router['delete']('/:id',auth[_0x070e('0x8')](),controller[_0x070e('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0x0713=['get','isAuthenticated','index','/describe','describe','/:id','post','tracked','openchannel','openchannelmessage:create','put','update','accept','/:id/reject','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelMessage.controller'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_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 fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));var controller=require(_0x3071('0x7'));router[_0x3071('0x8')]('/',auth[_0x3071('0x9')](),controller[_0x3071('0xa')]);router[_0x3071('0x8')](_0x3071('0xb'),auth[_0x3071('0x9')](),controller[_0x3071('0xc')]);router[_0x3071('0x8')](_0x3071('0xd'),auth[_0x3071('0x9')](),controller['show']);router[_0x3071('0xe')]('/',auth[_0x3071('0x9')](),interaction[_0x3071('0xf')](_0x3071('0x10'),_0x3071('0x11')),controller['create']);router[_0x3071('0x12')](_0x3071('0xd'),auth[_0x3071('0x9')](),controller[_0x3071('0x13')]);router[_0x3071('0x12')]('/:id/accept',auth['isAuthenticated'](),controller[_0x3071('0x14')]);router['put'](_0x3071('0x15'),auth[_0x3071('0x9')](),controller['reject']);router[_0x3071('0x16')]('/:id',auth[_0x3071('0x9')](),controller[_0x3071('0x17')]);module[_0x3071('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5fb=['STRING','sequelize','exports','TEXT','medium','BOOLEAN','ENUM','out','DATE'];(function(_0x4e4519,_0x392ae){var _0x340044=function(_0x11721f){while(--_0x11721f){_0x4e4519['push'](_0x4e4519['shift']());}};_0x340044(++_0x392ae);}(_0xb5fb,0x172));var _0xbb5f=function(_0x23a766,_0x2eab2c){_0x23a766=_0x23a766-0x0;var _0x439cd4=_0xb5fb[_0x23a766];return _0x439cd4;};'use strict';var Sequelize=require(_0xbb5f('0x0'));module[_0xbb5f('0x1')]={'body':{'type':Sequelize[_0xbb5f('0x2')](_0xbb5f('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xbb5f('0x4')],'defaultValue':![]},'secret':{'type':Sequelize[_0xbb5f('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xbb5f('0x5')]('in',_0xbb5f('0x6')),'defaultValue':_0xbb5f('0x6'),'allowNull':![]},'readAt':{'type':Sequelize[_0xbb5f('0x7')]},'providerName':{'type':Sequelize[_0xbb5f('0x8')]},'providerResponse':{'type':Sequelize[_0xbb5f('0x2')]}};
\ No newline at end of file
+var _0xac4a=['exports','TEXT','medium','BOOLEAN','out','DATE','STRING','sequelize'];(function(_0x4ab3fa,_0x9b28e8){var _0x322f00=function(_0x182bae){while(--_0x182bae){_0x4ab3fa['push'](_0x4ab3fa['shift']());}};_0x322f00(++_0x9b28e8);}(_0xac4a,0x13f));var _0xaac4=function(_0xcbc471,_0x3467fe){_0xcbc471=_0xcbc471-0x0;var _0x578884=_0xac4a[_0xcbc471];return _0x578884;};'use strict';var Sequelize=require(_0xaac4('0x0'));module[_0xaac4('0x1')]={'body':{'type':Sequelize[_0xaac4('0x2')](_0xaac4('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xaac4('0x4')],'defaultValue':![]},'secret':{'type':Sequelize[_0xaac4('0x4')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':_0xaac4('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0xaac4('0x6')]},'providerName':{'type':Sequelize[_0xaac4('0x7')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe470=['OpenchannelInteractionId','isNil','read1stAt','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','SELECT','contact','User','fullname','email','internal','interface','SIP/%s','channel','event','EventManager','acceptmessage','RejectMessage','QueryTypes','motionChannel','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','request','then','debug','request\x20sent','stringify','error','code','OpenchannelMessage,\x20%s,\x20%s','message','info','result','catch','status','end','json','offset','undefined','limit','count','set','reject','save','sendStatus','name','send','index','map','OpenchannelMessage','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','create','update','body','find','destroy','describe','openchannel-interactions','accept','openchannel','read','format','UserId','user','agent','get','OpenchannelInteraction'];(function(_0x161036,_0x429e65){var _0x49e132=function(_0x1a635f){while(--_0x1a635f){_0x161036['push'](_0x161036['shift']());}};_0x49e132(++_0x429e65);}(_0xe470,0x120));var _0x0e47=function(_0x25cdd6,_0xe003f0){_0x25cdd6=_0x25cdd6-0x0;var _0x1c4b8b=_0xe470[_0x25cdd6];return _0x1c4b8b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0e47('0x0'));var jsonpatch=require(_0x0e47('0x1'));var rp=require('request-promise');var moment=require(_0x0e47('0x2'));var BPromise=require(_0x0e47('0x3'));var Mustache=require(_0x0e47('0x4'));var util=require(_0x0e47('0x5'));var path=require(_0x0e47('0x6'));var sox=require(_0x0e47('0x7'));var csv=require(_0x0e47('0x8'));var ejs=require(_0x0e47('0x9'));var fs=require('fs');var fs_extra=require(_0x0e47('0xa'));var _=require(_0x0e47('0xb'));var squel=require(_0x0e47('0xc'));var crypto=require(_0x0e47('0xd'));var jsforce=require(_0x0e47('0xe'));var deskjs=require(_0x0e47('0xf'));var toCsv=require(_0x0e47('0x8'));var querystring=require(_0x0e47('0x10'));var Papa=require('papaparse');var Redis=require(_0x0e47('0x11'));var authService=require(_0x0e47('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0e47('0x13'));var logger=require(_0x0e47('0x14'))('api');var utils=require(_0x0e47('0x15'));var config=require(_0x0e47('0x16'));var licenseUtil=require(_0x0e47('0x17'));var db=require('../../mysqldb')['db'];config[_0x0e47('0x18')]=_['defaults'](config[_0x0e47('0x18')],{'host':_0x0e47('0x19'),'port':0x18eb});var socket=require(_0x0e47('0x1a'))(new Redis(config[_0x0e47('0x18')]));require(_0x0e47('0x1b'))[_0x0e47('0x1c')](socket);var jayson=require(_0x0e47('0x1d'));var client=jayson[_0x0e47('0x1e')][_0x0e47('0x1f')]({'port':0x232c});var client9002=jayson[_0x0e47('0x1e')][_0x0e47('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x3a7bed,_0x49793f,_0x381bb9,_0x5c8d30){return new BPromise(function(_0x3a2da1,_0x219c1c){var _0x38e584=_0x5c8d30||client;return _0x38e584[_0x0e47('0x20')](_0x3a7bed,_0x381bb9)[_0x0e47('0x21')](function(_0x123379){logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x49793f,'request\x20sent');logger[_0x0e47('0x22')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x49793f,_0x0e47('0x23'),JSON[_0x0e47('0x24')](_0x123379));if(_0x123379[_0x0e47('0x25')]){if(_0x123379[_0x0e47('0x25')][_0x0e47('0x26')]===0x1f4){logger[_0x0e47('0x25')](_0x0e47('0x27'),_0x49793f,_0x123379[_0x0e47('0x25')]['message']);return _0x219c1c(_0x123379[_0x0e47('0x25')][_0x0e47('0x28')]);}logger[_0x0e47('0x25')](_0x0e47('0x27'),_0x49793f,_0x123379[_0x0e47('0x25')][_0x0e47('0x28')]);return _0x3a2da1(_0x123379[_0x0e47('0x25')][_0x0e47('0x28')]);}else{logger[_0x0e47('0x29')](_0x0e47('0x27'),_0x49793f,_0x0e47('0x23'));_0x3a2da1(_0x123379[_0x0e47('0x2a')]['message']);}})[_0x0e47('0x2b')](function(_0x34a7e1){logger[_0x0e47('0x25')](_0x0e47('0x27'),_0x49793f,_0x34a7e1);_0x219c1c(_0x34a7e1);});});}function respondWithStatusCode(_0x5d28e4,_0x3162b7){_0x3162b7=_0x3162b7||0xcc;return function(_0x4b6cd6){if(_0x4b6cd6){return _0x5d28e4['sendStatus'](_0x3162b7);}return _0x5d28e4[_0x0e47('0x2c')](_0x3162b7)[_0x0e47('0x2d')]();};}function respondWithResult(_0x4c1f4c,_0x283535){_0x283535=_0x283535||0xc8;return function(_0x41cf28){if(_0x41cf28){return _0x4c1f4c['status'](_0x283535)[_0x0e47('0x2e')](_0x41cf28);}};}function respondWithFilteredResult(_0x49a99a,_0x3e40cc){return function(_0x5c2c5d){if(_0x5c2c5d){var _0xe04e9d=typeof _0x3e40cc[_0x0e47('0x2f')]===_0x0e47('0x30')&&typeof _0x3e40cc[_0x0e47('0x31')]===_0x0e47('0x30');var _0x2bf95d=_0x5c2c5d[_0x0e47('0x32')];var _0x40731f=_0xe04e9d?0x0:_0x3e40cc['offset'];var _0x5e54a5=_0xe04e9d?_0x5c2c5d[_0x0e47('0x32')]:_0x3e40cc[_0x0e47('0x2f')]+_0x3e40cc[_0x0e47('0x31')];var _0x27ab55;if(_0x5e54a5>=_0x2bf95d){_0x5e54a5=_0x2bf95d;_0x27ab55=0xc8;}else{_0x27ab55=0xce;}_0x49a99a[_0x0e47('0x2c')](_0x27ab55);return _0x49a99a[_0x0e47('0x33')]('Content-Range',_0x40731f+'-'+_0x5e54a5+'/'+_0x2bf95d)['json'](_0x5c2c5d);}return null;};}function patchUpdates(_0x519000){return function(_0x47c1a9){try{jsonpatch['apply'](_0x47c1a9,_0x519000,!![]);}catch(_0xc04883){return BPromise[_0x0e47('0x34')](_0xc04883);}return _0x47c1a9[_0x0e47('0x35')]();};}function saveUpdates(_0x5d7dde,_0x7cf3e5){return function(_0x334a6c){if(_0x334a6c){return _0x334a6c['update'](_0x5d7dde)[_0x0e47('0x21')](function(_0xea9111){return _0xea9111;});}return null;};}function removeEntity(_0x274b98,_0x391f51){return function(_0x18fad8){if(_0x18fad8){return _0x18fad8['destroy']()[_0x0e47('0x21')](function(){_0x274b98['status'](0xcc)[_0x0e47('0x2d')]();});}};}function handleEntityNotFound(_0x47d884,_0x3a7338){return function(_0x673c33){if(!_0x673c33){_0x47d884[_0x0e47('0x36')](0x194);}return _0x673c33;};}function handleError(_0x2d68a2,_0x4c5f72){_0x4c5f72=_0x4c5f72||0x1f4;return function(_0x517395){logger[_0x0e47('0x25')](_0x517395['stack']);if(_0x517395[_0x0e47('0x37')]){delete _0x517395[_0x0e47('0x37')];}_0x2d68a2['status'](_0x4c5f72)[_0x0e47('0x38')](_0x517395);};}exports[_0x0e47('0x39')]=function(_0x517143,_0x168401){var _0x2b28c1={},_0x5105b6={},_0x4507ab={'count':0x0,'rows':[]};var _0x10f5c6=_[_0x0e47('0x3a')](db[_0x0e47('0x3b')][_0x0e47('0x3c')],function(_0x1461a6){return{'name':_0x1461a6['fieldName'],'type':_0x1461a6[_0x0e47('0x3d')]['key']};});_0x5105b6[_0x0e47('0x3e')]=_[_0x0e47('0x3a')](_0x10f5c6,'name');_0x5105b6[_0x0e47('0x3f')]=_[_0x0e47('0x40')](_0x517143['query']);_0x5105b6[_0x0e47('0x41')]=_[_0x0e47('0x42')](_0x5105b6[_0x0e47('0x3e')],_0x5105b6[_0x0e47('0x3f')]);_0x2b28c1[_0x0e47('0x43')]=_['intersection'](_0x5105b6[_0x0e47('0x3e')],qs['fields'](_0x517143[_0x0e47('0x3f')][_0x0e47('0x44')]));_0x2b28c1[_0x0e47('0x43')]=_0x2b28c1[_0x0e47('0x43')][_0x0e47('0x45')]?_0x2b28c1[_0x0e47('0x43')]:_0x5105b6[_0x0e47('0x3e')];if(!_0x517143['query'][_0x0e47('0x46')](_0x0e47('0x47'))){_0x2b28c1['limit']=qs['limit'](_0x517143[_0x0e47('0x3f')][_0x0e47('0x31')]);_0x2b28c1[_0x0e47('0x2f')]=qs['offset'](_0x517143[_0x0e47('0x3f')]['offset']);}_0x2b28c1[_0x0e47('0x48')]=qs[_0x0e47('0x49')](_0x517143[_0x0e47('0x3f')][_0x0e47('0x49')]);_0x2b28c1[_0x0e47('0x4a')]=qs[_0x0e47('0x41')](_[_0x0e47('0x4b')](_0x517143[_0x0e47('0x3f')],_0x5105b6[_0x0e47('0x41')]),_0x10f5c6);if(_0x517143[_0x0e47('0x3f')][_0x0e47('0x4c')]){_0x2b28c1[_0x0e47('0x4a')]=_['merge'](_0x2b28c1[_0x0e47('0x4a')],{'$or':_[_0x0e47('0x3a')](_0x10f5c6,function(_0x7ffacc){if(_0x7ffacc[_0x0e47('0x3d')]!==_0x0e47('0x4d')){var _0x2ad111={};_0x2ad111[_0x7ffacc[_0x0e47('0x37')]]={'$like':'%'+_0x517143['query']['filter']+'%'};return _0x2ad111;}})});}_0x2b28c1=_[_0x0e47('0x4e')]({},_0x2b28c1,_0x517143[_0x0e47('0x4f')]);var _0x45086c={'where':_0x2b28c1[_0x0e47('0x4a')]};return db[_0x0e47('0x3b')][_0x0e47('0x32')](_0x45086c)['then'](function(_0xf01ad3){_0x4507ab[_0x0e47('0x32')]=_0xf01ad3;if(_0x517143['query'][_0x0e47('0x50')]){_0x2b28c1[_0x0e47('0x51')]=[{'all':!![]}];}return db[_0x0e47('0x3b')][_0x0e47('0x52')](_0x2b28c1);})[_0x0e47('0x21')](function(_0x4acdf9){_0x4507ab[_0x0e47('0x53')]=_0x4acdf9;return _0x4507ab;})[_0x0e47('0x21')](respondWithFilteredResult(_0x168401,_0x2b28c1))[_0x0e47('0x2b')](handleError(_0x168401,null));};exports[_0x0e47('0x54')]=function(_0x157641,_0x3bd122){var _0x7f052c={'raw':!![],'where':{'id':_0x157641[_0x0e47('0x55')]['id']}},_0x28de17={};_0x28de17['model']=_[_0x0e47('0x40')](db[_0x0e47('0x3b')][_0x0e47('0x3c')]);_0x28de17[_0x0e47('0x3f')]=_[_0x0e47('0x40')](_0x157641[_0x0e47('0x3f')]);_0x28de17['filters']=_[_0x0e47('0x42')](_0x28de17[_0x0e47('0x3e')],_0x28de17[_0x0e47('0x3f')]);_0x7f052c[_0x0e47('0x43')]=_[_0x0e47('0x42')](_0x28de17[_0x0e47('0x3e')],qs[_0x0e47('0x44')](_0x157641[_0x0e47('0x3f')][_0x0e47('0x44')]));_0x7f052c['attributes']=_0x7f052c[_0x0e47('0x43')][_0x0e47('0x45')]?_0x7f052c['attributes']:_0x28de17['model'];if(_0x157641[_0x0e47('0x3f')]['includeAll']){_0x7f052c[_0x0e47('0x51')]=[{'all':!![]}];}_0x7f052c=_['merge']({},_0x7f052c,_0x157641[_0x0e47('0x4f')]);return db[_0x0e47('0x3b')]['find'](_0x7f052c)[_0x0e47('0x21')](handleEntityNotFound(_0x3bd122,null))[_0x0e47('0x21')](respondWithResult(_0x3bd122,null))[_0x0e47('0x2b')](handleError(_0x3bd122,null));};exports[_0x0e47('0x56')]=function(_0x4f0501,_0x5abb77){return db[_0x0e47('0x3b')][_0x0e47('0x56')](_0x4f0501['body'],{})['then'](respondWithResult(_0x5abb77,0xc9))[_0x0e47('0x2b')](handleError(_0x5abb77,null));};exports[_0x0e47('0x57')]=function(_0x2fdc40,_0x13319e){if(_0x2fdc40[_0x0e47('0x58')]['id']){delete _0x2fdc40[_0x0e47('0x58')]['id'];}return db[_0x0e47('0x3b')][_0x0e47('0x59')]({'where':{'id':_0x2fdc40['params']['id']}})['then'](handleEntityNotFound(_0x13319e,null))[_0x0e47('0x21')](saveUpdates(_0x2fdc40[_0x0e47('0x58')],null))[_0x0e47('0x21')](respondWithResult(_0x13319e,null))[_0x0e47('0x2b')](handleError(_0x13319e,null));};exports[_0x0e47('0x5a')]=function(_0x8cdad1,_0x12db23){return db[_0x0e47('0x3b')][_0x0e47('0x59')]({'where':{'id':_0x8cdad1[_0x0e47('0x55')]['id']}})[_0x0e47('0x21')](handleEntityNotFound(_0x12db23,null))[_0x0e47('0x21')](removeEntity(_0x12db23,null))['catch'](handleError(_0x12db23,null));};exports[_0x0e47('0x5b')]=function(_0x48b4fa,_0x4a0603){return db[_0x0e47('0x3b')][_0x0e47('0x5b')]()[_0x0e47('0x21')](respondWithResult(_0x4a0603,null))[_0x0e47('0x2b')](handleError(_0x4a0603,null));};var interaction_log=require(_0x0e47('0x14'))(_0x0e47('0x5c'));exports[_0x0e47('0x5d')]=function(_0xb5fde9,_0x5bea5a,_0x5c2c95){var _0x3b77cd={'agent':{},'channel':_0x0e47('0x5e')};if(_0xb5fde9['body']['id']){delete _0xb5fde9[_0x0e47('0x58')]['id'];}_0xb5fde9[_0x0e47('0x58')][_0x0e47('0x5f')]=!![];_0xb5fde9[_0x0e47('0x58')]['readAt']=moment()[_0x0e47('0x60')]('YYYY-MM-DD\x20HH:mm:ss');_0xb5fde9['body']['UserId']=_0xb5fde9[_0x0e47('0x58')][_0x0e47('0x61')]||_0xb5fde9[_0x0e47('0x62')]['id'];_0x3b77cd[_0x0e47('0x63')]['id']=_0xb5fde9[_0x0e47('0x58')][_0x0e47('0x61')];return db['OpenchannelMessage'][_0x0e47('0x59')]({'where':{'id':_0xb5fde9[_0x0e47('0x55')]['id'],'UserId':null}})[_0x0e47('0x21')](handleEntityNotFound(_0x5bea5a,null))['then'](saveUpdates(_0xb5fde9[_0x0e47('0x58')],null))[_0x0e47('0x21')](function(_0x3f92e0){if(_0x3f92e0){_0x3b77cd['message']=_0x3f92e0[_0x0e47('0x64')]({'plain':!![]});return db[_0x0e47('0x65')][_0x0e47('0x59')]({'where':{'id':_0x3f92e0[_0x0e47('0x66')]}});}return null;})[_0x0e47('0x21')](handleEntityNotFound(_0x5bea5a,null))[_0x0e47('0x21')](function(_0x1d494e){if(_0x1d494e){return _0x1d494e[_0x0e47('0x57')]({'UserId':_0xb5fde9[_0x0e47('0x58')][_0x0e47('0x61')],'read1stAt':_[_0x0e47('0x67')](_0x1d494e[_0x0e47('0x68')])?moment()[_0x0e47('0x60')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x0e47('0x21')](function(_0x27ab84){if(_0x27ab84){_0x3b77cd[_0x0e47('0x69')]=_0x27ab84[_0x0e47('0x64')]({'plain':!![]});interaction_log[_0x0e47('0x29')](_0x0e47('0x6a'),_0xb5fde9[_0x0e47('0x62')]['id'],_0xb5fde9['user'][_0x0e47('0x37')],_0xb5fde9[_0x0e47('0x62')][_0x0e47('0x6b')],_0x3b77cd['interaction']['id'],_0xb5fde9[_0x0e47('0x58')]?JSON[_0x0e47('0x24')](_0xb5fde9['body']):_0x0e47('0x6c'));return respondWithRpcPromise(_0x0e47('0x6d'),_0x0e47('0x6e'),_0x3b77cd);}return null;})[_0x0e47('0x21')](function(_0x314f42){var _0x467d89=_0x0e47('0x6f')+_0x314f42[_0x0e47('0x28')][_0x0e47('0x70')];return db[_0x0e47('0x71')][_0x0e47('0x3f')](_0x467d89,{'type':db[_0x0e47('0x72')]['QueryTypes'][_0x0e47('0x73')],'raw':!![]})[_0x0e47('0x21')](function(_0x8522de){return _0x8522de;});})['then'](function(_0x42c120){if(_0x42c120){_0x3b77cd[_0x0e47('0x28')][_0x0e47('0x74')]=_0x42c120[0x0];if(!_0xb5fde9[_0x0e47('0x58')][_0x0e47('0x61')])return;return db[_0x0e47('0x75')]['find']({'where':{'id':_0xb5fde9[_0x0e47('0x58')][_0x0e47('0x61')],'role':'agent'},'attributes':['id','name',_0x0e47('0x76'),_0x0e47('0x77'),_0x0e47('0x78')],'raw':!![]});}return null;})['then'](function(_0x5a2b5d){if(!_0x5a2b5d)return null;_0x3b77cd[_0x0e47('0x28')][_0x0e47('0x63')]=_0x5a2b5d;return _0x3b77cd;})[_0x0e47('0x21')](function(_0x53db59){if(_0x53db59){if(_0xb5fde9[_0x0e47('0x58')]['manual']){_0x3b77cd[_0x0e47('0x28')][_0x0e47('0x79')]=util[_0x0e47('0x60')](_0x0e47('0x7a'),_0xb5fde9[_0x0e47('0x62')][_0x0e47('0x37')]);_0x3b77cd[_0x0e47('0x28')]['channel']=_0x3b77cd[_0x0e47('0x7b')];_0x3b77cd[_0x0e47('0x28')]['motionChannel']=_0x3b77cd[_0x0e47('0x7b')];_0x3b77cd[_0x0e47('0x28')][_0x0e47('0x7c')]=_0x0e47('0x5d');return respondWithRpcPromise(_0x0e47('0x7d'),_0x0e47('0x7d'),{'event':_0x0e47('0x7e'),'message':_0x3b77cd[_0x0e47('0x28')]},client9002)['then'](function(){return _0x3b77cd;});}return _0x3b77cd;}return null;})[_0x0e47('0x21')](respondWithResult(_0x5bea5a,null))['catch'](handleError(_0x5bea5a,null));};var interaction_log=require(_0x0e47('0x14'))(_0x0e47('0x5c'));exports[_0x0e47('0x34')]=function(_0xa6b64b,_0xb80252,_0x27edd0){var _0x4f4251={'agent':{},'channel':_0x0e47('0x5e')};if(_0xa6b64b[_0x0e47('0x58')]['id']){delete _0xa6b64b[_0x0e47('0x58')]['id'];}_0xa6b64b[_0x0e47('0x58')][_0x0e47('0x61')]=_0xa6b64b[_0x0e47('0x58')][_0x0e47('0x61')]||_0xa6b64b[_0x0e47('0x62')]['id'];_0x4f4251['agent']['id']=_0xa6b64b[_0x0e47('0x58')][_0x0e47('0x61')];return db[_0x0e47('0x3b')][_0x0e47('0x59')]({'where':{'id':_0xa6b64b[_0x0e47('0x55')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0xb80252,null))[_0x0e47('0x21')](function(_0x5d223b){if(_0x5d223b){_0x4f4251[_0x0e47('0x28')]=_0x5d223b[_0x0e47('0x64')]({'plain':!![]});return db[_0x0e47('0x65')]['find']({'where':{'id':_0x5d223b[_0x0e47('0x66')]}});}return null;})[_0x0e47('0x21')](handleEntityNotFound(_0xb80252,null))[_0x0e47('0x21')](function(_0x4f0b30){if(_0x4f0b30){_0x4f4251[_0x0e47('0x69')]=_0x4f0b30[_0x0e47('0x64')]({'plain':!![]});interaction_log[_0x0e47('0x29')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0xa6b64b[_0x0e47('0x62')]['id'],_0xa6b64b['user'][_0x0e47('0x37')],_0xa6b64b[_0x0e47('0x62')][_0x0e47('0x6b')],_0x4f4251['interaction']['id'],_0xa6b64b[_0x0e47('0x58')]?JSON['stringify'](_0xa6b64b[_0x0e47('0x58')]):_0x0e47('0x6c'));return respondWithRpcPromise(_0x0e47('0x7f'),'rejectMessage',_0x4f4251);}return null;})[_0x0e47('0x21')](function(_0x34aa65){var _0x4b3dcc=_0x0e47('0x6f')+_0x34aa65[_0x0e47('0x28')][_0x0e47('0x70')];return db['sequelize'][_0x0e47('0x3f')](_0x4b3dcc,{'type':db[_0x0e47('0x72')][_0x0e47('0x80')][_0x0e47('0x73')],'raw':!![]})[_0x0e47('0x21')](function(_0x38e65f){return _0x38e65f;});})[_0x0e47('0x21')](function(_0x367644){if(_0x367644){_0x4f4251[_0x0e47('0x28')][_0x0e47('0x74')]=_0x367644[0x0];if(!_0xa6b64b[_0x0e47('0x58')][_0x0e47('0x61')])return;return db[_0x0e47('0x75')]['find']({'where':{'id':_0xa6b64b[_0x0e47('0x58')][_0x0e47('0x61')],'role':_0x0e47('0x63')},'attributes':['id','name',_0x0e47('0x76'),'email',_0x0e47('0x78')],'raw':!![]});}return null;})[_0x0e47('0x21')](function(_0x36c125){if(!_0x36c125)return null;_0x4f4251['message'][_0x0e47('0x63')]=_0x36c125;return _0x4f4251;})[_0x0e47('0x21')](function(_0x4d1a51){if(_0x4d1a51){_0x4d1a51[_0x0e47('0x28')][_0x0e47('0x79')]=util['format'](_0x0e47('0x7a'),_0xa6b64b[_0x0e47('0x62')][_0x0e47('0x37')]);_0x4d1a51[_0x0e47('0x28')][_0x0e47('0x7b')]=_0x4f4251[_0x0e47('0x7b')];_0x4d1a51[_0x0e47('0x28')][_0x0e47('0x81')]=_0x4f4251['channel'];_0x4d1a51['message'][_0x0e47('0x7c')]=_0x0e47('0x34');respondWithRpcPromise(_0x0e47('0x7d'),_0x0e47('0x7d'),{'event':'rejectmessage','message':_0x4d1a51[_0x0e47('0x28')]},client9002);return _0x4f4251;}return null;})[_0x0e47('0x21')](respondWithResult(_0xb80252,null))[_0x0e47('0x2b')](handleError(_0xb80252,null));};
\ No newline at end of file
+var _0x5868=['[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize','QueryTypes','SELECT','contact','fullname','manual','SIP/%s','channel','EventManager','acceptmessage','openchannel-interactions','RejectMessage','rejectMessage','sequelize','User','internal','interface','event','rejectmessage','request-promise','bluebird','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','redis','defaults','./openchannelMessage.socket','client','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','end','json','limit','count','offset','set','apply','reject','save','update','destroy','sendStatus','stack','name','send','index','map','OpenchannelMessage','fieldName','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','show','rawAttributes','filters','create','body','find','params','describe','accept','openchannel','read','readAt','UserId','agent','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','format','interaction'];(function(_0x4a9f56,_0x413774){var _0x28f249=function(_0x4029b7){while(--_0x4029b7){_0x4a9f56['push'](_0x4a9f56['shift']());}};_0x28f249(++_0x413774);}(_0x5868,0x91));var _0x8586=function(_0x50368b,_0x4ee4a8){_0x50368b=_0x50368b-0x0;var _0x357ce5=_0x5868[_0x50368b];return _0x357ce5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x8586('0x0'));var moment=require('moment');var BPromise=require(_0x8586('0x1'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x8586('0x2'));var ejs=require(_0x8586('0x3'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8586('0x4'));var squel=require(_0x8586('0x5'));var crypto=require(_0x8586('0x6'));var jsforce=require(_0x8586('0x7'));var deskjs=require(_0x8586('0x8'));var toCsv=require(_0x8586('0x2'));var querystring=require('querystring');var Papa=require(_0x8586('0x9'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x8586('0xa'));var as=require(_0x8586('0xb'));var hardwareService=require(_0x8586('0xc'));var logger=require(_0x8586('0xd'))(_0x8586('0xe'));var utils=require(_0x8586('0xf'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x8586('0x10')]=_[_0x8586('0x11')](config[_0x8586('0x10')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8586('0x10')]));require(_0x8586('0x12'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0x8586('0x13')]['http']({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x5cb005,_0x3d30e4,_0x34a766,_0x31470e){return new BPromise(function(_0x4c2550,_0x3a73bd){var _0x408666=_0x31470e||client;return _0x408666[_0x8586('0x14')](_0x5cb005,_0x34a766)[_0x8586('0x15')](function(_0x6104d6){logger[_0x8586('0x16')](_0x8586('0x17'),_0x3d30e4,_0x8586('0x18'));logger['debug']('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x3d30e4,_0x8586('0x18'),JSON[_0x8586('0x19')](_0x6104d6));if(_0x6104d6['error']){if(_0x6104d6[_0x8586('0x1a')][_0x8586('0x1b')]===0x1f4){logger['error'](_0x8586('0x17'),_0x3d30e4,_0x6104d6[_0x8586('0x1a')][_0x8586('0x1c')]);return _0x3a73bd(_0x6104d6[_0x8586('0x1a')][_0x8586('0x1c')]);}logger[_0x8586('0x1a')]('OpenchannelMessage,\x20%s,\x20%s',_0x3d30e4,_0x6104d6[_0x8586('0x1a')][_0x8586('0x1c')]);return _0x4c2550(_0x6104d6['error']['message']);}else{logger[_0x8586('0x16')](_0x8586('0x17'),_0x3d30e4,'request\x20sent');_0x4c2550(_0x6104d6[_0x8586('0x1d')][_0x8586('0x1c')]);}})[_0x8586('0x1e')](function(_0x494e20){logger[_0x8586('0x1a')]('OpenchannelMessage,\x20%s,\x20%s',_0x3d30e4,_0x494e20);_0x3a73bd(_0x494e20);});});}function respondWithStatusCode(_0x3e261c,_0x138a93){_0x138a93=_0x138a93||0xcc;return function(_0x314a4a){if(_0x314a4a){return _0x3e261c['sendStatus'](_0x138a93);}return _0x3e261c[_0x8586('0x1f')](_0x138a93)[_0x8586('0x20')]();};}function respondWithResult(_0x87ad37,_0x44ae2d){_0x44ae2d=_0x44ae2d||0xc8;return function(_0x178f14){if(_0x178f14){return _0x87ad37['status'](_0x44ae2d)[_0x8586('0x21')](_0x178f14);}};}function respondWithFilteredResult(_0x271dae,_0x55ec58){return function(_0x2a72c5){if(_0x2a72c5){var _0x27b33d=typeof _0x55ec58['offset']==='undefined'&&typeof _0x55ec58[_0x8586('0x22')]==='undefined';var _0x46adac=_0x2a72c5[_0x8586('0x23')];var _0x53b7a6=_0x27b33d?0x0:_0x55ec58[_0x8586('0x24')];var _0x1bfec9=_0x27b33d?_0x2a72c5['count']:_0x55ec58[_0x8586('0x24')]+_0x55ec58[_0x8586('0x22')];var _0x3551d0;if(_0x1bfec9>=_0x46adac){_0x1bfec9=_0x46adac;_0x3551d0=0xc8;}else{_0x3551d0=0xce;}_0x271dae[_0x8586('0x1f')](_0x3551d0);return _0x271dae[_0x8586('0x25')]('Content-Range',_0x53b7a6+'-'+_0x1bfec9+'/'+_0x46adac)['json'](_0x2a72c5);}return null;};}function patchUpdates(_0x55451a){return function(_0x1c4198){try{jsonpatch[_0x8586('0x26')](_0x1c4198,_0x55451a,!![]);}catch(_0x13dea6){return BPromise[_0x8586('0x27')](_0x13dea6);}return _0x1c4198[_0x8586('0x28')]();};}function saveUpdates(_0x1a354c,_0x43eebe){return function(_0x351855){if(_0x351855){return _0x351855[_0x8586('0x29')](_0x1a354c)[_0x8586('0x15')](function(_0x568187){return _0x568187;});}return null;};}function removeEntity(_0x17895b,_0x1d59d7){return function(_0x4000af){if(_0x4000af){return _0x4000af[_0x8586('0x2a')]()[_0x8586('0x15')](function(){_0x17895b[_0x8586('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4947bb,_0x28191e){return function(_0x52de96){if(!_0x52de96){_0x4947bb[_0x8586('0x2b')](0x194);}return _0x52de96;};}function handleError(_0x171764,_0x35eb09){_0x35eb09=_0x35eb09||0x1f4;return function(_0x2d9030){logger['error'](_0x2d9030[_0x8586('0x2c')]);if(_0x2d9030[_0x8586('0x2d')]){delete _0x2d9030['name'];}_0x171764[_0x8586('0x1f')](_0x35eb09)[_0x8586('0x2e')](_0x2d9030);};}exports[_0x8586('0x2f')]=function(_0x429d63,_0x27d0ea){var _0x48f6a9={},_0x348ef7={},_0x3476f2={'count':0x0,'rows':[]};var _0x33fec3=_[_0x8586('0x30')](db[_0x8586('0x31')]['rawAttributes'],function(_0x16a086){return{'name':_0x16a086[_0x8586('0x32')],'type':_0x16a086[_0x8586('0x33')][_0x8586('0x34')]};});_0x348ef7['model']=_[_0x8586('0x30')](_0x33fec3,'name');_0x348ef7[_0x8586('0x35')]=_[_0x8586('0x36')](_0x429d63['query']);_0x348ef7['filters']=_[_0x8586('0x37')](_0x348ef7[_0x8586('0x38')],_0x348ef7[_0x8586('0x35')]);_0x48f6a9['attributes']=_[_0x8586('0x37')](_0x348ef7['model'],qs[_0x8586('0x39')](_0x429d63[_0x8586('0x35')]['fields']));_0x48f6a9[_0x8586('0x3a')]=_0x48f6a9[_0x8586('0x3a')][_0x8586('0x3b')]?_0x48f6a9[_0x8586('0x3a')]:_0x348ef7[_0x8586('0x38')];if(!_0x429d63[_0x8586('0x35')][_0x8586('0x3c')](_0x8586('0x3d'))){_0x48f6a9['limit']=qs['limit'](_0x429d63[_0x8586('0x35')][_0x8586('0x22')]);_0x48f6a9[_0x8586('0x24')]=qs['offset'](_0x429d63[_0x8586('0x35')][_0x8586('0x24')]);}_0x48f6a9[_0x8586('0x3e')]=qs[_0x8586('0x3f')](_0x429d63['query'][_0x8586('0x3f')]);_0x48f6a9[_0x8586('0x40')]=qs['filters'](_[_0x8586('0x41')](_0x429d63['query'],_0x348ef7['filters']),_0x33fec3);if(_0x429d63['query'][_0x8586('0x42')]){_0x48f6a9[_0x8586('0x40')]=_[_0x8586('0x43')](_0x48f6a9[_0x8586('0x40')],{'$or':_[_0x8586('0x30')](_0x33fec3,function(_0x12c3d8){if(_0x12c3d8['type']!=='VIRTUAL'){var _0x43a548={};_0x43a548[_0x12c3d8[_0x8586('0x2d')]]={'$like':'%'+_0x429d63['query'][_0x8586('0x42')]+'%'};return _0x43a548;}})});}_0x48f6a9=_['merge']({},_0x48f6a9,_0x429d63[_0x8586('0x44')]);var _0x1da633={'where':_0x48f6a9[_0x8586('0x40')]};return db[_0x8586('0x31')]['count'](_0x1da633)[_0x8586('0x15')](function(_0x3e7f1b){_0x3476f2[_0x8586('0x23')]=_0x3e7f1b;if(_0x429d63[_0x8586('0x35')][_0x8586('0x45')]){_0x48f6a9[_0x8586('0x46')]=[{'all':!![]}];}return db[_0x8586('0x31')][_0x8586('0x47')](_0x48f6a9);})[_0x8586('0x15')](function(_0x3b8c9e){_0x3476f2[_0x8586('0x48')]=_0x3b8c9e;return _0x3476f2;})[_0x8586('0x15')](respondWithFilteredResult(_0x27d0ea,_0x48f6a9))[_0x8586('0x1e')](handleError(_0x27d0ea,null));};exports[_0x8586('0x49')]=function(_0x371974,_0x1401de){var _0x20b029={'raw':!![],'where':{'id':_0x371974['params']['id']}},_0x5dd040={};_0x5dd040[_0x8586('0x38')]=_['keys'](db[_0x8586('0x31')][_0x8586('0x4a')]);_0x5dd040[_0x8586('0x35')]=_[_0x8586('0x36')](_0x371974[_0x8586('0x35')]);_0x5dd040[_0x8586('0x4b')]=_[_0x8586('0x37')](_0x5dd040[_0x8586('0x38')],_0x5dd040[_0x8586('0x35')]);_0x20b029['attributes']=_['intersection'](_0x5dd040[_0x8586('0x38')],qs[_0x8586('0x39')](_0x371974[_0x8586('0x35')][_0x8586('0x39')]));_0x20b029[_0x8586('0x3a')]=_0x20b029[_0x8586('0x3a')][_0x8586('0x3b')]?_0x20b029[_0x8586('0x3a')]:_0x5dd040[_0x8586('0x38')];if(_0x371974[_0x8586('0x35')][_0x8586('0x45')]){_0x20b029['include']=[{'all':!![]}];}_0x20b029=_['merge']({},_0x20b029,_0x371974[_0x8586('0x44')]);return db[_0x8586('0x31')]['find'](_0x20b029)[_0x8586('0x15')](handleEntityNotFound(_0x1401de,null))['then'](respondWithResult(_0x1401de,null))[_0x8586('0x1e')](handleError(_0x1401de,null));};exports[_0x8586('0x4c')]=function(_0x4a80f1,_0x82e9d5){return db['OpenchannelMessage']['create'](_0x4a80f1[_0x8586('0x4d')],{})[_0x8586('0x15')](respondWithResult(_0x82e9d5,0xc9))['catch'](handleError(_0x82e9d5,null));};exports[_0x8586('0x29')]=function(_0x3c3819,_0x40ae83){if(_0x3c3819['body']['id']){delete _0x3c3819[_0x8586('0x4d')]['id'];}return db[_0x8586('0x31')][_0x8586('0x4e')]({'where':{'id':_0x3c3819[_0x8586('0x4f')]['id']}})['then'](handleEntityNotFound(_0x40ae83,null))['then'](saveUpdates(_0x3c3819['body'],null))['then'](respondWithResult(_0x40ae83,null))[_0x8586('0x1e')](handleError(_0x40ae83,null));};exports['destroy']=function(_0x5b4b2b,_0x144dfc){return db[_0x8586('0x31')][_0x8586('0x4e')]({'where':{'id':_0x5b4b2b['params']['id']}})[_0x8586('0x15')](handleEntityNotFound(_0x144dfc,null))[_0x8586('0x15')](removeEntity(_0x144dfc,null))['catch'](handleError(_0x144dfc,null));};exports[_0x8586('0x50')]=function(_0x2edb1d,_0x505a3f){return db[_0x8586('0x31')][_0x8586('0x50')]()['then'](respondWithResult(_0x505a3f,null))['catch'](handleError(_0x505a3f,null));};var interaction_log=require(_0x8586('0xd'))('openchannel-interactions');exports[_0x8586('0x51')]=function(_0x2ac86b,_0x42c22e,_0x4acac2){var _0x482def={'agent':{},'channel':_0x8586('0x52')};if(_0x2ac86b[_0x8586('0x4d')]['id']){delete _0x2ac86b[_0x8586('0x4d')]['id'];}_0x2ac86b['body'][_0x8586('0x53')]=!![];_0x2ac86b[_0x8586('0x4d')][_0x8586('0x54')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x2ac86b['body'][_0x8586('0x55')]=_0x2ac86b[_0x8586('0x4d')][_0x8586('0x55')]||_0x2ac86b['user']['id'];_0x482def[_0x8586('0x56')]['id']=_0x2ac86b['body']['UserId'];return db['OpenchannelMessage'][_0x8586('0x4e')]({'where':{'id':_0x2ac86b[_0x8586('0x4f')]['id'],'UserId':null}})[_0x8586('0x15')](handleEntityNotFound(_0x42c22e,null))[_0x8586('0x15')](saveUpdates(_0x2ac86b[_0x8586('0x4d')],null))['then'](function(_0x1d6b89){if(_0x1d6b89){_0x482def['message']=_0x1d6b89[_0x8586('0x57')]({'plain':!![]});return db[_0x8586('0x58')][_0x8586('0x4e')]({'where':{'id':_0x1d6b89[_0x8586('0x59')]}});}return null;})[_0x8586('0x15')](handleEntityNotFound(_0x42c22e,null))['then'](function(_0x15afcf){if(_0x15afcf){return _0x15afcf['update']({'UserId':_0x2ac86b['body'][_0x8586('0x55')],'read1stAt':_[_0x8586('0x5a')](_0x15afcf['read1stAt'])?moment()[_0x8586('0x5b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x8586('0x15')](function(_0x2f39a2){if(_0x2f39a2){_0x482def[_0x8586('0x5c')]=_0x2f39a2[_0x8586('0x57')]({'plain':!![]});interaction_log[_0x8586('0x16')](_0x8586('0x5d'),_0x2ac86b[_0x8586('0x5e')]['id'],_0x2ac86b[_0x8586('0x5e')][_0x8586('0x2d')],_0x2ac86b['user'][_0x8586('0x5f')],_0x482def[_0x8586('0x5c')]['id'],_0x2ac86b[_0x8586('0x4d')]?JSON[_0x8586('0x19')](_0x2ac86b[_0x8586('0x4d')]):_0x8586('0x60'));return respondWithRpcPromise(_0x8586('0x61'),'acceptMessage',_0x482def);}return null;})['then'](function(_0x47184d){var _0x2cb1b3=_0x8586('0x62')+_0x47184d['message'][_0x8586('0x63')];return db['sequelize']['query'](_0x2cb1b3,{'type':db[_0x8586('0x64')][_0x8586('0x65')][_0x8586('0x66')],'raw':!![]})[_0x8586('0x15')](function(_0xaeff66){return _0xaeff66;});})[_0x8586('0x15')](function(_0x3beb26){if(_0x3beb26){_0x482def[_0x8586('0x1c')][_0x8586('0x67')]=_0x3beb26[0x0];if(!_0x2ac86b[_0x8586('0x4d')][_0x8586('0x55')])return;return db['User'][_0x8586('0x4e')]({'where':{'id':_0x2ac86b[_0x8586('0x4d')][_0x8586('0x55')],'role':_0x8586('0x56')},'attributes':['id',_0x8586('0x2d'),_0x8586('0x68'),'email','internal'],'raw':!![]});}return null;})[_0x8586('0x15')](function(_0x3b2985){if(!_0x3b2985)return null;_0x482def['message']['agent']=_0x3b2985;return _0x482def;})[_0x8586('0x15')](function(_0x21aa19){if(_0x21aa19){if(_0x2ac86b[_0x8586('0x4d')][_0x8586('0x69')]){_0x482def[_0x8586('0x1c')]['interface']=util[_0x8586('0x5b')](_0x8586('0x6a'),_0x2ac86b[_0x8586('0x5e')][_0x8586('0x2d')]);_0x482def[_0x8586('0x1c')][_0x8586('0x6b')]=_0x482def['channel'];_0x482def[_0x8586('0x1c')]['event']=_0x8586('0x51');return respondWithRpcPromise(_0x8586('0x6c'),'EventManager',{'event':_0x8586('0x6d'),'message':_0x482def[_0x8586('0x1c')]},client9002)['then'](function(){return _0x482def;});}return _0x482def;}return null;})[_0x8586('0x15')](respondWithResult(_0x42c22e,null))[_0x8586('0x1e')](handleError(_0x42c22e,null));};var interaction_log=require(_0x8586('0xd'))(_0x8586('0x6e'));exports['reject']=function(_0x571be2,_0x4abcdb,_0x5ecb52){var _0x323ddc={'agent':{},'channel':_0x8586('0x52')};if(_0x571be2[_0x8586('0x4d')]['id']){delete _0x571be2[_0x8586('0x4d')]['id'];}_0x571be2[_0x8586('0x4d')][_0x8586('0x55')]=_0x571be2[_0x8586('0x4d')][_0x8586('0x55')]||_0x571be2[_0x8586('0x5e')]['id'];_0x323ddc['agent']['id']=_0x571be2[_0x8586('0x4d')][_0x8586('0x55')];return db[_0x8586('0x31')][_0x8586('0x4e')]({'where':{'id':_0x571be2['params']['id'],'UserId':null}})[_0x8586('0x15')](handleEntityNotFound(_0x4abcdb,null))[_0x8586('0x15')](function(_0x4e3de4){if(_0x4e3de4){_0x323ddc['message']=_0x4e3de4[_0x8586('0x57')]({'plain':!![]});return db[_0x8586('0x58')]['find']({'where':{'id':_0x4e3de4[_0x8586('0x59')]}});}return null;})['then'](handleEntityNotFound(_0x4abcdb,null))[_0x8586('0x15')](function(_0x27f99c){if(_0x27f99c){_0x323ddc[_0x8586('0x5c')]=_0x27f99c['get']({'plain':!![]});interaction_log[_0x8586('0x16')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x571be2[_0x8586('0x5e')]['id'],_0x571be2[_0x8586('0x5e')][_0x8586('0x2d')],_0x571be2['user']['role'],_0x323ddc[_0x8586('0x5c')]['id'],_0x571be2[_0x8586('0x4d')]?JSON[_0x8586('0x19')](_0x571be2[_0x8586('0x4d')]):_0x8586('0x60'));return respondWithRpcPromise(_0x8586('0x6f'),_0x8586('0x70'),_0x323ddc);}return null;})[_0x8586('0x15')](function(_0x4b53c4){var _0x1d680c=_0x8586('0x62')+_0x4b53c4['message']['ContactId'];return db[_0x8586('0x71')]['query'](_0x1d680c,{'type':db[_0x8586('0x64')][_0x8586('0x65')][_0x8586('0x66')],'raw':!![]})[_0x8586('0x15')](function(_0x55b2be){return _0x55b2be;});})[_0x8586('0x15')](function(_0x2129e6){if(_0x2129e6){_0x323ddc[_0x8586('0x1c')][_0x8586('0x67')]=_0x2129e6[0x0];if(!_0x571be2[_0x8586('0x4d')]['UserId'])return;return db[_0x8586('0x72')][_0x8586('0x4e')]({'where':{'id':_0x571be2[_0x8586('0x4d')]['UserId'],'role':_0x8586('0x56')},'attributes':['id',_0x8586('0x2d'),'fullname','email',_0x8586('0x73')],'raw':!![]});}return null;})[_0x8586('0x15')](function(_0x1ce0e8){if(!_0x1ce0e8)return null;_0x323ddc[_0x8586('0x1c')][_0x8586('0x56')]=_0x1ce0e8;return _0x323ddc;})[_0x8586('0x15')](function(_0x963900){if(_0x963900){_0x963900['message'][_0x8586('0x74')]=util['format'](_0x8586('0x6a'),_0x571be2[_0x8586('0x5e')]['name']);_0x963900[_0x8586('0x1c')][_0x8586('0x6b')]=_0x323ddc['channel'];_0x963900[_0x8586('0x1c')][_0x8586('0x75')]=_0x8586('0x27');respondWithRpcPromise(_0x8586('0x6c'),_0x8586('0x6c'),{'event':_0x8586('0x76'),'message':_0x963900[_0x8586('0x1c')]},client9002);return _0x323ddc;}return null;})[_0x8586('0x15')](respondWithResult(_0x4abcdb,null))[_0x8586('0x1e')](handleError(_0x4abcdb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xacd3=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','update'];(function(_0x46fd05,_0x2a121d){var _0xdcbee=function(_0x32967f){while(--_0x32967f){_0x46fd05['push'](_0x46fd05['shift']());}};_0xdcbee(++_0x2a121d);}(_0xacd3,0x149));var _0x3acd=function(_0x2e7c6f,_0x1c2aab){_0x2e7c6f=_0x2e7c6f-0x0;var _0xdf2c01=_0xacd3[_0x2e7c6f];return _0xdf2c01;};'use strict';var EventEmitter=require(_0x3acd('0x0'));var OpenchannelMessage=require(_0x3acd('0x1'))['db']['OpenchannelMessage'];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0x3acd('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x3acd('0x3'),'afterDestroy':_0x3acd('0x4')};function emitEvent(_0x3dbe56){return function(_0x4323e4,_0x263395,_0x51c194){OpenchannelMessageEvents[_0x3acd('0x5')](_0x3dbe56+':'+_0x4323e4['id'],_0x4323e4);OpenchannelMessageEvents[_0x3acd('0x5')](_0x3dbe56,_0x4323e4);_0x51c194(null);};}for(var e in events){if(events[_0x3acd('0x6')](e)){var event=events[e];OpenchannelMessage[_0x3acd('0x7')](e,emitEvent(event));}}module[_0x3acd('0x8')]=OpenchannelMessageEvents;
\ No newline at end of file
+var _0xcf8a=['OpenchannelMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','events','../../mysqldb'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0xcf8a,0xda));var _0xacf8=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xcf8a[_0x4a9fb1];return _0x348672;};'use strict';var EventEmitter=require(_0xacf8('0x0'));var OpenchannelMessage=require(_0xacf8('0x1'))['db'][_0xacf8('0x2')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0xacf8('0x3')](0x0);var events={'afterCreate':_0xacf8('0x4'),'afterUpdate':_0xacf8('0x5'),'afterDestroy':_0xacf8('0x6')};function emitEvent(_0x58bf84){return function(_0x19d0f4,_0xa6c29a,_0x5a07d8){OpenchannelMessageEvents[_0xacf8('0x7')](_0x58bf84+':'+_0x19d0f4['id'],_0x19d0f4);OpenchannelMessageEvents[_0xacf8('0x7')](_0x58bf84,_0x19d0f4);_0x5a07d8(null);};}for(var e in events){if(events[_0xacf8('0x8')](e)){var event=events[e];OpenchannelMessage[_0xacf8('0x9')](e,emitEvent(event));}}module['exports']=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x087b=['threadId','OpenchannelInteraction','error','inspect','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment','request-promise','path','rimraf','../../config/environment','./openchannelMessage.attributes','exports','define','OpenchannelMessage','openchannel_messages','fti_openchannel_messages','body','FULLTEXT','models','get','direction','toLowerCase','secret','isNil','UserId','findOne','OpenchannelInteractionId','then','update','createdAt','catch','out','CmContact','describe','OpenchannelAccount','find','OpenchannelAccountId','Interactions','Contact','replyUri','info','OpenchannelMessage,\x20%s,\x20%s','afterCreate','format','Forwarding\x20message\x20%d\x20to\x20%s','length','Interaction','omit','GET','POST','Message\x20%d\x20forwarded\x20to\x20%s'];(function(_0x5c1c8d,_0x3c0d60){var _0xa1783d=function(_0x5eb824){while(--_0x5eb824){_0x5c1c8d['push'](_0x5c1c8d['shift']());}};_0xa1783d(++_0x3c0d60);}(_0x087b,0x11a));var _0xb087=function(_0x17928f,_0x4ad33f){_0x17928f=_0x17928f-0x0;var _0x500b63=_0x087b[_0x17928f];return _0x500b63;};'use strict';var _=require(_0xb087('0x0'));var util=require(_0xb087('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xb087('0x2'));var BPromise=require('bluebird');var rp=require(_0xb087('0x3'));var fs=require('fs');var path=require(_0xb087('0x4'));var rimraf=require(_0xb087('0x5'));var config=require(_0xb087('0x6'));var attributes=require(_0xb087('0x7'));module[_0xb087('0x8')]=function(_0x40156d,_0x17d6e8){return _0x40156d[_0xb087('0x9')](_0xb087('0xa'),attributes,{'tableName':_0xb087('0xb'),'paranoid':![],'indexes':[{'name':_0xb087('0xc'),'fields':[_0xb087('0xd')],'type':_0xb087('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2f14bc,_0x23cdd7,_0x379041){var _0x583d25=_0x40156d[_0xb087('0xf')];var _0x108451=_0x2f14bc[_0xb087('0x10')]({'plain':!![]});if(_0x108451[_0xb087('0x11')][_0xb087('0x12')]()==='in'||_0x108451[_0xb087('0x11')][_0xb087('0x12')]()==='out'&&!_0x108451[_0xb087('0x13')]&&!_[_0xb087('0x14')](_0x108451[_0xb087('0x15')])){_0x583d25['OpenchannelInteraction'][_0xb087('0x16')]({'where':{'id':_0x108451[_0xb087('0x17')]}})[_0xb087('0x18')](function(_0x46410b){if(_0x46410b){_0x46410b[_0xb087('0x19')]({'lastMsgAt':_0x108451[_0xb087('0x1a')],'lastMsgDirection':_0x108451[_0xb087('0x11')][_0xb087('0x12')]()});}})[_0xb087('0x1b')](function(_0x16d0b7){console['error'](_0x16d0b7);});}if(_0x108451[_0xb087('0x11')]===_0xb087('0x1c')&&!_0x108451['secret']){var _0xcc4426;_0x583d25[_0xb087('0x1d')][_0xb087('0x1e')]()['then'](function(_0x330005){return _0x583d25[_0xb087('0x1f')][_0xb087('0x20')]({'where':{'id':_0x108451[_0xb087('0x21')]},'include':[{'model':_0x583d25['OpenchannelInteraction'],'as':_0xb087('0x22'),'where':{'id':_0x108451[_0xb087('0x17')]},'limit':0x1,'include':[{'model':_0x583d25[_0xb087('0x1d')],'as':_0xb087('0x23'),'attributes':_['keys'](_0x330005)}]}]});})['then'](function(_0x5ea3dc){_0xcc4426=_0x5ea3dc['get']({'plain':!![]});if(_0xcc4426&&_0xcc4426[_0xb087('0x24')]){logger[_0xb087('0x25')](_0xb087('0x26'),_0xb087('0x27'),util[_0xb087('0x28')](_0xb087('0x29'),_0x108451['id'],_0xcc4426[_0xb087('0x24')]));if(_0xcc4426['Interactions']&&_0xcc4426[_0xb087('0x22')][_0xb087('0x2a')]){_0x108451[_0xb087('0x2b')]=_[_0xb087('0x2c')](_0xcc4426[_0xb087('0x22')][0x0],'Contact');_0x108451[_0xb087('0x23')]=_0xcc4426[_0xb087('0x22')][0x0]['Contact'];}var _0x23cdd7={'method':'POST','uri':encodeURI(_0xcc4426['replyUri']),'json':!![],'resolveWithFullResponse':!![]};switch(_0x23cdd7['method']){case _0xb087('0x2d'):_0x23cdd7['qs']=_0x108451;break;case _0xb087('0x2e'):_0x23cdd7[_0xb087('0xd')]=_0x108451;break;}return rp(_0x23cdd7)[_0xb087('0x18')](function(_0xd9ec66){logger[_0xb087('0x25')](_0xb087('0x26'),_0xb087('0x27'),util[_0xb087('0x28')](_0xb087('0x2f'),_0x108451['id'],_0xcc4426[_0xb087('0x24')]));if(_0xd9ec66[_0xb087('0xd')][_0xb087('0x30')]&&_0xd9ec66[_0xb087('0xd')]['threadId']!=_0x108451[_0xb087('0x2b')][_0xb087('0x30')]){return _0x583d25[_0xb087('0x31')][_0xb087('0x19')]({'threadId':_0xd9ec66[_0xb087('0xd')][_0xb087('0x30')]},{'logging':!![],'where':{'id':_0x108451[_0xb087('0x2b')]['id']}});}else{return;}})[_0xb087('0x18')](function(){return _0x2f14bc['update']({'read':!![]});})['catch'](function(_0x3f9311){logger[_0xb087('0x32')]('OpenchannelMessage,\x20%s,\x20%s',_0xb087('0x27'),util[_0xb087('0x33')](_0x3f9311,{'showHidden':![],'depth':null}));_0x379041();});}else{_0x379041();}})[_0xb087('0x34')](function(){_0x379041();});}else{_0x379041();}}},'charset':_0xb087('0x35'),'collate':_0xb087('0x36')});};
\ No newline at end of file
+var _0x955f=['openchannel_messages','body','FULLTEXT','models','get','toLowerCase','direction','secret','UserId','findOne','OpenchannelInteractionId','then','update','createdAt','catch','CmContact','describe','OpenchannelAccount','find','OpenchannelAccountId','Interactions','Contact','keys','replyUri','OpenchannelMessage,\x20%s,\x20%s','format','Forwarding\x20message\x20%d\x20to\x20%s','Interaction','omit','POST','method','GET','info','afterCreate','Message\x20%d\x20forwarded\x20to\x20%s','threadId','OpenchannelInteraction','error','inspect','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','../../config/environment','exports','OpenchannelMessage'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x955f,0x1eb));var _0xf955=function(_0x327451,_0x3e591d){_0x327451=_0x327451-0x0;var _0x1e411e=_0x955f[_0x327451];return _0x1e411e;};'use strict';var _=require(_0xf955('0x0'));var util=require(_0xf955('0x1'));var logger=require(_0xf955('0x2'))(_0xf955('0x3'));var moment=require(_0xf955('0x4'));var BPromise=require('bluebird');var rp=require(_0xf955('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xf955('0x6'));var attributes=require('./openchannelMessage.attributes');module[_0xf955('0x7')]=function(_0x2caff2,_0x3fdac2){return _0x2caff2['define'](_0xf955('0x8'),attributes,{'tableName':_0xf955('0x9'),'paranoid':![],'indexes':[{'name':'fti_openchannel_messages','fields':[_0xf955('0xa')],'type':_0xf955('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x168ffb,_0x38b190,_0x134c1b){var _0x421e4a=_0x2caff2[_0xf955('0xc')];var _0x4d213a=_0x168ffb[_0xf955('0xd')]({'plain':!![]});if(_0x4d213a['direction'][_0xf955('0xe')]()==='in'||_0x4d213a[_0xf955('0xf')][_0xf955('0xe')]()==='out'&&!_0x4d213a[_0xf955('0x10')]&&!_['isNil'](_0x4d213a[_0xf955('0x11')])){_0x421e4a['OpenchannelInteraction'][_0xf955('0x12')]({'where':{'id':_0x4d213a[_0xf955('0x13')]}})[_0xf955('0x14')](function(_0x109bc5){if(_0x109bc5){_0x109bc5[_0xf955('0x15')]({'lastMsgAt':_0x4d213a[_0xf955('0x16')],'lastMsgDirection':_0x4d213a[_0xf955('0xf')][_0xf955('0xe')]()});}})[_0xf955('0x17')](function(_0x24e75c){console['error'](_0x24e75c);});}if(_0x4d213a[_0xf955('0xf')]==='out'&&!_0x4d213a[_0xf955('0x10')]){var _0x3a814f;_0x421e4a[_0xf955('0x18')][_0xf955('0x19')]()['then'](function(_0x5ac6cb){return _0x421e4a[_0xf955('0x1a')][_0xf955('0x1b')]({'where':{'id':_0x4d213a[_0xf955('0x1c')]},'include':[{'model':_0x421e4a['OpenchannelInteraction'],'as':_0xf955('0x1d'),'where':{'id':_0x4d213a[_0xf955('0x13')]},'limit':0x1,'include':[{'model':_0x421e4a[_0xf955('0x18')],'as':_0xf955('0x1e'),'attributes':_[_0xf955('0x1f')](_0x5ac6cb)}]}]});})['then'](function(_0x17d86a){_0x3a814f=_0x17d86a[_0xf955('0xd')]({'plain':!![]});if(_0x3a814f&&_0x3a814f[_0xf955('0x20')]){logger['info'](_0xf955('0x21'),'afterCreate',util[_0xf955('0x22')](_0xf955('0x23'),_0x4d213a['id'],_0x3a814f[_0xf955('0x20')]));if(_0x3a814f[_0xf955('0x1d')]&&_0x3a814f[_0xf955('0x1d')]['length']){_0x4d213a[_0xf955('0x24')]=_[_0xf955('0x25')](_0x3a814f[_0xf955('0x1d')][0x0],_0xf955('0x1e'));_0x4d213a[_0xf955('0x1e')]=_0x3a814f[_0xf955('0x1d')][0x0][_0xf955('0x1e')];}var _0x38b190={'method':_0xf955('0x26'),'uri':encodeURI(_0x3a814f[_0xf955('0x20')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x38b190[_0xf955('0x27')]){case _0xf955('0x28'):_0x38b190['qs']=_0x4d213a;break;case _0xf955('0x26'):_0x38b190[_0xf955('0xa')]=_0x4d213a;break;}return rp(_0x38b190)[_0xf955('0x14')](function(_0x51f3ab){logger[_0xf955('0x29')](_0xf955('0x21'),_0xf955('0x2a'),util[_0xf955('0x22')](_0xf955('0x2b'),_0x4d213a['id'],_0x3a814f[_0xf955('0x20')]));if(_0x51f3ab['body'][_0xf955('0x2c')]&&_0x51f3ab[_0xf955('0xa')]['threadId']!=_0x4d213a[_0xf955('0x24')][_0xf955('0x2c')]){return _0x421e4a[_0xf955('0x2d')][_0xf955('0x15')]({'threadId':_0x51f3ab['body'][_0xf955('0x2c')]},{'logging':!![],'where':{'id':_0x4d213a['Interaction']['id']}});}else{return;}})[_0xf955('0x14')](function(){return _0x168ffb[_0xf955('0x15')]({'read':!![]});})[_0xf955('0x17')](function(_0x4069fe){logger[_0xf955('0x2e')](_0xf955('0x21'),_0xf955('0x2a'),util[_0xf955('0x2f')](_0x4069fe,{'showHidden':![],'depth':null}));_0x134c1b();});}else{_0x134c1b();}})['finally'](function(){_0x134c1b();});}else{_0x134c1b();}}},'charset':_0xf955('0x30'),'collate':_0xf955('0x31')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['message','result','OpenchannelMessage','create','body','options','CreateOpenchannelMessage','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./openchannelMessage.socket','then','info','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','OpenchannelMessage,\x20%s,\x20%s'];(function(_0x438b1b,_0x45c9c8){var _0x3b016c=function(_0x189569){while(--_0x189569){_0x438b1b['push'](_0x438b1b['shift']());}};_0x3b016c(++_0x45c9c8);}(_0x0b0e,0x187));var _0xe0b0=function(_0x2ac71a,_0x1d2a02){_0x2ac71a=_0x2ac71a-0x0;var _0x3ee904=_0x0b0e[_0x2ac71a];return _0x3ee904;};'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 Redis=require(_0xe0b0('0x3'));var db=require(_0xe0b0('0x4'))['db'];var utils=require(_0xe0b0('0x5'));var logger=require(_0xe0b0('0x6'))(_0xe0b0('0x7'));var config=require(_0xe0b0('0x8'));var jayson=require(_0xe0b0('0x9'));var client=jayson[_0xe0b0('0xa')][_0xe0b0('0xb')]({'port':0x232a});config[_0xe0b0('0xc')]=_['defaults'](config['redis'],{'host':_0xe0b0('0xd'),'port':0x18eb});var socket=require(_0xe0b0('0xe'))(new Redis(config[_0xe0b0('0xc')]));require(_0xe0b0('0xf'))['register'](socket);function respondWithRpcPromise(_0x338e7c,_0x1dd3b8,_0x553d4f){return new BPromise(function(_0x1fef28,_0x2f32b6){return client['request'](_0x338e7c,_0x553d4f)[_0xe0b0('0x10')](function(_0x2cdad2){logger[_0xe0b0('0x11')]('OpenchannelMessage,\x20%s,\x20%s',_0x1dd3b8,_0xe0b0('0x12'));logger[_0xe0b0('0x13')](_0xe0b0('0x14'),_0x1dd3b8,_0xe0b0('0x12'),JSON[_0xe0b0('0x15')](_0x2cdad2));if(_0x2cdad2['error']){if(_0x2cdad2[_0xe0b0('0x16')][_0xe0b0('0x17')]===0x1f4){logger[_0xe0b0('0x16')](_0xe0b0('0x18'),_0x1dd3b8,_0x2cdad2[_0xe0b0('0x16')]['message']);return _0x2f32b6(_0x2cdad2[_0xe0b0('0x16')]['message']);}logger[_0xe0b0('0x16')](_0xe0b0('0x18'),_0x1dd3b8,_0x2cdad2['error'][_0xe0b0('0x19')]);return _0x1fef28(_0x2cdad2['error'][_0xe0b0('0x19')]);}else{logger[_0xe0b0('0x11')]('OpenchannelMessage,\x20%s,\x20%s',_0x1dd3b8,'request\x20sent');_0x1fef28(_0x2cdad2[_0xe0b0('0x1a')]['message']);}})['catch'](function(_0x4bce65){logger[_0xe0b0('0x16')]('OpenchannelMessage,\x20%s,\x20%s',_0x1dd3b8,_0x4bce65);_0x2f32b6(_0x4bce65);});});}exports['CreateOpenchannelMessage']=function(_0x10cde1){var _0x59dff5=this;return new Promise(function(_0x472286,_0x5dba2f){return db[_0xe0b0('0x1b')][_0xe0b0('0x1c')](_0x10cde1[_0xe0b0('0x1d')],{'raw':_0x10cde1[_0xe0b0('0x1e')]?_0x10cde1[_0xe0b0('0x1e')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x2fa820){logger['info'](_0xe0b0('0x1f'),_0x10cde1);logger[_0xe0b0('0x13')]('CreateOpenchannelMessage',_0x10cde1,JSON[_0xe0b0('0x15')](_0x2fa820));_0x472286(_0x2fa820);})['catch'](function(_0x2208d0){logger['error'](_0xe0b0('0x1f'),_0x2208d0['message'],_0x10cde1);_0x5dba2f(_0x59dff5[_0xe0b0('0x16')](0x1f4,_0x2208d0['message']));});});};
\ No newline at end of file
+var _0x5f2f=['OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','OpenchannelMessage','create','options','raw','CreateOpenchannelMessage','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','then','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x5506fb,_0x57dcc6){var _0x1324a9=function(_0x35a2b7){while(--_0x35a2b7){_0x5506fb['push'](_0x5506fb['shift']());}};_0x1324a9(++_0x57dcc6);}(_0x5f2f,0x73));var _0xf5f2=function(_0x42c9a8,_0x269ad8){_0x42c9a8=_0x42c9a8-0x0;var _0xd8d52e=_0x5f2f[_0x42c9a8];return _0xd8d52e;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var moment=require(_0xf5f2('0x2'));var BPromise=require(_0xf5f2('0x3'));var rs=require(_0xf5f2('0x4'));var fs=require('fs');var Redis=require(_0xf5f2('0x5'));var db=require(_0xf5f2('0x6'))['db'];var utils=require(_0xf5f2('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xf5f2('0x8'));var jayson=require(_0xf5f2('0x9'));var client=jayson[_0xf5f2('0xa')][_0xf5f2('0xb')]({'port':0x232a});config[_0xf5f2('0xc')]=_[_0xf5f2('0xd')](config['redis'],{'host':_0xf5f2('0xe'),'port':0x18eb});var socket=require(_0xf5f2('0xf'))(new Redis(config[_0xf5f2('0xc')]));require('./openchannelMessage.socket')[_0xf5f2('0x10')](socket);function respondWithRpcPromise(_0x15dd7c,_0x218ae3,_0x4e0e6b){return new BPromise(function(_0x977a59,_0x4ebbbe){return client['request'](_0x15dd7c,_0x4e0e6b)[_0xf5f2('0x11')](function(_0x151aba){logger['info'](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));logger[_0xf5f2('0x14')](_0xf5f2('0x15'),_0x218ae3,_0xf5f2('0x13'),JSON[_0xf5f2('0x16')](_0x151aba));if(_0x151aba['error']){if(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x18')]===0x1f4){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')]['message']);return _0x4ebbbe(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);return _0x977a59(_0x151aba[_0xf5f2('0x17')][_0xf5f2('0x19')]);}else{logger[_0xf5f2('0x1a')](_0xf5f2('0x12'),_0x218ae3,_0xf5f2('0x13'));_0x977a59(_0x151aba[_0xf5f2('0x1b')][_0xf5f2('0x19')]);}})[_0xf5f2('0x1c')](function(_0x3cf5ea){logger[_0xf5f2('0x17')](_0xf5f2('0x12'),_0x218ae3,_0x3cf5ea);_0x4ebbbe(_0x3cf5ea);});});}exports['CreateOpenchannelMessage']=function(_0x34706d){var _0x47101e=this;return new Promise(function(_0x49dac2,_0x47acfc){return db[_0xf5f2('0x1d')][_0xf5f2('0x1e')](_0x34706d['body'],{'raw':_0x34706d[_0xf5f2('0x1f')]?_0x34706d[_0xf5f2('0x1f')][_0xf5f2('0x20')]===undefined?!![]:![]:!![]})[_0xf5f2('0x11')](function(_0x36f1cb){logger['info'](_0xf5f2('0x21'),_0x34706d);logger[_0xf5f2('0x14')](_0xf5f2('0x21'),_0x34706d,JSON[_0xf5f2('0x16')](_0x36f1cb));_0x49dac2(_0x36f1cb);})[_0xf5f2('0x1c')](function(_0x5bdf4a){logger['error'](_0xf5f2('0x21'),_0x5bdf4a[_0xf5f2('0x19')],_0x34706d);_0x47acfc(_0x47101e[_0xf5f2('0x17')](0x1f4,_0x5bdf4a[_0xf5f2('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb97=['emit','removeListener','register','length','openchannelMessage:','./openchannelMessage.events','remove'];(function(_0x4745d9,_0x411b00){var _0x38f2ac=function(_0x436be3){while(--_0x436be3){_0x4745d9['push'](_0x4745d9['shift']());}};_0x38f2ac(++_0x411b00);}(_0xbb97,0x10f));var _0x7bb9=function(_0x34fe34,_0x255656){_0x34fe34=_0x34fe34-0x0;var _0x586f13=_0xbb97[_0x34fe34];return _0x586f13;};'use strict';var OpenchannelMessageEvents=require(_0x7bb9('0x0'));var events=['save',_0x7bb9('0x1'),'update'];function createListener(_0x104991,_0xd76501){return function(_0x38d6f9){_0xd76501[_0x7bb9('0x2')](_0x104991,_0x38d6f9);};}function removeListener(_0x274f05,_0x560743){return function(){OpenchannelMessageEvents[_0x7bb9('0x3')](_0x274f05,_0x560743);};}exports[_0x7bb9('0x4')]=function(_0x502137){for(var _0x212e15=0x0,_0x40f532=events[_0x7bb9('0x5')];_0x212e15<_0x40f532;_0x212e15++){var _0x2ff969=events[_0x212e15];var _0x4efabd=createListener(_0x7bb9('0x6')+_0x2ff969,_0x502137);OpenchannelMessageEvents['on'](_0x2ff969,_0x4efabd);}};
\ No newline at end of file
+var _0x3a0b=['removeListener','length','openchannelMessage:','./openchannelMessage.events','save','remove','update'];(function(_0x4bfb1e,_0x78af6e){var _0x49001b=function(_0x40b6fd){while(--_0x40b6fd){_0x4bfb1e['push'](_0x4bfb1e['shift']());}};_0x49001b(++_0x78af6e);}(_0x3a0b,0x7a));var _0xb3a0=function(_0xb65e77,_0x238c3d){_0xb65e77=_0xb65e77-0x0;var _0x38134b=_0x3a0b[_0xb65e77];return _0x38134b;};'use strict';var OpenchannelMessageEvents=require(_0xb3a0('0x0'));var events=[_0xb3a0('0x1'),_0xb3a0('0x2'),_0xb3a0('0x3')];function createListener(_0x1c5234,_0x5c8735){return function(_0x48484a){_0x5c8735['emit'](_0x1c5234,_0x48484a);};}function removeListener(_0x52e5f5,_0x43ba7b){return function(){OpenchannelMessageEvents[_0xb3a0('0x4')](_0x52e5f5,_0x43ba7b);};}exports['register']=function(_0x3e3354){for(var _0x1fdbb1=0x0,_0x2755e7=events[_0xb3a0('0x5')];_0x1fdbb1<_0x2755e7;_0x1fdbb1++){var _0x195dcd=events[_0x1fdbb1];var _0x46f8f3=createListener(_0xb3a0('0x6')+_0x195dcd,_0x3e3354);OpenchannelMessageEvents['on'](_0x195dcd,_0x46f8f3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc84f=['/:id/teams','/:id/users','getAgents','post','create','addTeams','addAgents','update','delete','destroy','removeTeams','removeAgents','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','get','isAuthenticated','index','describe','/:id','show','/:id/members','getMembers'];(function(_0x168056,_0x51b3fd){var _0x350afe=function(_0xa11402){while(--_0xa11402){_0x168056['push'](_0x168056['shift']());}};_0x350afe(++_0x51b3fd);}(_0xc84f,0x193));var _0xfc84=function(_0x2f2c2a,_0x308545){_0x2f2c2a=_0x2f2c2a-0x0;var _0x297c21=_0xc84f[_0x2f2c2a];return _0x297c21;};'use strict';var multer=require('multer');var util=require(_0xfc84('0x0'));var path=require('path');var timeout=require(_0xfc84('0x1'));var express=require(_0xfc84('0x2'));var router=express[_0xfc84('0x3')]();var fs_extra=require(_0xfc84('0x4'));var auth=require(_0xfc84('0x5'));var interaction=require(_0xfc84('0x6'));var config=require(_0xfc84('0x7'));var controller=require(_0xfc84('0x8'));router[_0xfc84('0x9')]('/',auth[_0xfc84('0xa')](),controller[_0xfc84('0xb')]);router[_0xfc84('0x9')]('/describe',auth[_0xfc84('0xa')](),controller[_0xfc84('0xc')]);router[_0xfc84('0x9')](_0xfc84('0xd'),auth[_0xfc84('0xa')](),controller[_0xfc84('0xe')]);router['get'](_0xfc84('0xf'),auth[_0xfc84('0xa')](),controller[_0xfc84('0x10')]);router[_0xfc84('0x9')](_0xfc84('0x11'),auth[_0xfc84('0xa')](),controller['getTeams']);router[_0xfc84('0x9')](_0xfc84('0x12'),auth[_0xfc84('0xa')](),controller[_0xfc84('0x13')]);router[_0xfc84('0x14')]('/',auth[_0xfc84('0xa')](),controller[_0xfc84('0x15')]);router[_0xfc84('0x14')](_0xfc84('0x11'),auth[_0xfc84('0xa')](),controller[_0xfc84('0x16')]);router[_0xfc84('0x14')](_0xfc84('0x12'),auth[_0xfc84('0xa')](),controller[_0xfc84('0x17')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0xfc84('0x18')]);router[_0xfc84('0x19')](_0xfc84('0xd'),auth[_0xfc84('0xa')](),controller[_0xfc84('0x1a')]);router[_0xfc84('0x19')]('/:id/teams',auth[_0xfc84('0xa')](),controller[_0xfc84('0x1b')]);router[_0xfc84('0x19')](_0xfc84('0x12'),auth[_0xfc84('0xa')](),controller[_0xfc84('0x1c')]);module[_0xfc84('0x1d')]=router;
\ No newline at end of file
+var _0x6eae=['util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents','post','create','addTeams','put','update','delete','removeAgents','exports'];(function(_0x255165,_0x118aff){var _0x195f25=function(_0x357ce2){while(--_0x357ce2){_0x255165['push'](_0x255165['shift']());}};_0x195f25(++_0x118aff);}(_0x6eae,0x1e0));var _0xe6ea=function(_0x4cf6d6,_0x4a8b2e){_0x4cf6d6=_0x4cf6d6-0x0;var _0x5bbe8f=_0x6eae[_0x4cf6d6];return _0x5bbe8f;};'use strict';var multer=require('multer');var util=require(_0xe6ea('0x0'));var path=require(_0xe6ea('0x1'));var timeout=require(_0xe6ea('0x2'));var express=require(_0xe6ea('0x3'));var router=express[_0xe6ea('0x4')]();var fs_extra=require(_0xe6ea('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xe6ea('0x6'));var config=require(_0xe6ea('0x7'));var controller=require(_0xe6ea('0x8'));router[_0xe6ea('0x9')]('/',auth[_0xe6ea('0xa')](),controller[_0xe6ea('0xb')]);router[_0xe6ea('0x9')](_0xe6ea('0xc'),auth[_0xe6ea('0xa')](),controller[_0xe6ea('0xd')]);router[_0xe6ea('0x9')](_0xe6ea('0xe'),auth[_0xe6ea('0xa')](),controller[_0xe6ea('0xf')]);router[_0xe6ea('0x9')](_0xe6ea('0x10'),auth[_0xe6ea('0xa')](),controller[_0xe6ea('0x11')]);router[_0xe6ea('0x9')](_0xe6ea('0x12'),auth['isAuthenticated'](),controller[_0xe6ea('0x13')]);router[_0xe6ea('0x9')](_0xe6ea('0x14'),auth[_0xe6ea('0xa')](),controller[_0xe6ea('0x15')]);router[_0xe6ea('0x16')]('/',auth[_0xe6ea('0xa')](),controller[_0xe6ea('0x17')]);router[_0xe6ea('0x16')](_0xe6ea('0x12'),auth[_0xe6ea('0xa')](),controller[_0xe6ea('0x18')]);router[_0xe6ea('0x16')](_0xe6ea('0x14'),auth['isAuthenticated'](),controller['addAgents']);router[_0xe6ea('0x19')](_0xe6ea('0xe'),auth[_0xe6ea('0xa')](),controller[_0xe6ea('0x1a')]);router[_0xe6ea('0x1b')](_0xe6ea('0xe'),auth[_0xe6ea('0xa')](),controller['destroy']);router[_0xe6ea('0x1b')](_0xe6ea('0x12'),auth[_0xe6ea('0xa')](),controller['removeTeams']);router[_0xe6ea('0x1b')](_0xe6ea('0x14'),auth['isAuthenticated'](),controller[_0xe6ea('0x1c')]);module[_0xe6ea('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeec1=['ENUM','rrmemory','beepall','sequelize','STRING','name','INTEGER'];(function(_0x468b0f,_0x408566){var _0x3e74d9=function(_0x27a545){while(--_0x27a545){_0x468b0f['push'](_0x468b0f['shift']());}};_0x3e74d9(++_0x408566);}(_0xeec1,0x10d));var _0x1eec=function(_0x12bc7e,_0x485bd7){_0x12bc7e=_0x12bc7e-0x0;var _0x2a8328=_0xeec1[_0x12bc7e];return _0x2a8328;};'use strict';var Sequelize=require(_0x1eec('0x0'));module['exports']={'name':{'type':Sequelize[_0x1eec('0x1')],'unique':_0x1eec('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x1eec('0x1')]},'timeout':{'type':Sequelize[_0x1eec('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x1eec('0x4')](_0x1eec('0x5'),_0x1eec('0x6'),'roundrobin')}};
\ No newline at end of file
+var _0xb2cf=['roundrobin','sequelize','exports','STRING','INTEGER','rrmemory','beepall'];(function(_0x163e4e,_0x44cc89){var _0x4d825c=function(_0x121a24){while(--_0x121a24){_0x163e4e['push'](_0x163e4e['shift']());}};_0x4d825c(++_0x44cc89);}(_0xb2cf,0x7f));var _0xfb2c=function(_0x3d7816,_0x287e9c){_0x3d7816=_0x3d7816-0x0;var _0x1547b0=_0xb2cf[_0x3d7816];return _0x1547b0;};'use strict';var Sequelize=require(_0xfb2c('0x0'));module[_0xfb2c('0x1')]={'name':{'type':Sequelize[_0xfb2c('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xfb2c('0x2')]},'timeout':{'type':Sequelize[_0xfb2c('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0xfb2c('0x4'),_0xfb2c('0x5'),_0xfb2c('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x393a=['then','destroy','UserProfileResource','stack','name','send','index','map','OpenchannelQueue','fieldName','type','key','model','query','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','intersection','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserOpenchannelQueue','rawAttributes','OpenchannelQueueId','findAndCountAll','UserId','agent','openchannelPause','updatedAt','createdAt','format','%s/%s','SIP','Team','getTeams','addTeams','ids','User','Agents','online','flatMap','sequelize','transaction','each','forEach','emit','removeTeams','select','field','from','team_has_openchannel_queues','join','OpenchannelQueueId\x20=\x20?','push','toString','every','TeamId','includes','all','value','isEmpty','userOpenchannelQueue:remove','addAgents','omit','spread','userOpenchannelQueue:save','isArray','getAgents','eml-format','rimraf','moment','bluebird','util','path','to-csv','ejs','fs-extra','squel','jsforce','desk.js','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelQueue.socket','register','sendStatus','status','end','json','offset','limit','undefined','count','reject','save','update'];(function(_0x36462f,_0x1c43fd){var _0x23d193=function(_0x1fb97c){while(--_0x1fb97c){_0x36462f['push'](_0x36462f['shift']());}};_0x23d193(++_0x1c43fd);}(_0x393a,0x16f));var _0xa393=function(_0x2a1465,_0x8bf785){_0x2a1465=_0x2a1465-0x0;var _0x128933=_0x393a[_0x2a1465];return _0x128933;};'use strict';var emlformat=require(_0xa393('0x0'));var rimraf=require(_0xa393('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa393('0x2'));var BPromise=require(_0xa393('0x3'));var Mustache=require('mustache');var util=require(_0xa393('0x4'));var path=require(_0xa393('0x5'));var sox=require('sox');var csv=require(_0xa393('0x6'));var ejs=require(_0xa393('0x7'));var fs=require('fs');var fs_extra=require(_0xa393('0x8'));var _=require('lodash');var squel=require(_0xa393('0x9'));var crypto=require('crypto');var jsforce=require(_0xa393('0xa'));var deskjs=require(_0xa393('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xa393('0xc'));var as=require(_0xa393('0xd'));var hardwareService=require(_0xa393('0xe'));var logger=require('../../config/logger')('api');var utils=require(_0xa393('0xf'));var config=require(_0xa393('0x10'));var licenseUtil=require(_0xa393('0x11'));var db=require(_0xa393('0x12'))['db'];config[_0xa393('0x13')]=_['defaults'](config[_0xa393('0x13')],{'host':_0xa393('0x14'),'port':0x18eb});var socket=require(_0xa393('0x15'))(new Redis(config[_0xa393('0x13')]));require(_0xa393('0x16'))[_0xa393('0x17')](socket);function respondWithStatusCode(_0x13a0ac,_0x216f5a){_0x216f5a=_0x216f5a||0xcc;return function(_0x340fc5){if(_0x340fc5){return _0x13a0ac[_0xa393('0x18')](_0x216f5a);}return _0x13a0ac[_0xa393('0x19')](_0x216f5a)[_0xa393('0x1a')]();};}function respondWithResult(_0x176b18,_0x2a71ea){_0x2a71ea=_0x2a71ea||0xc8;return function(_0x49584a){if(_0x49584a){return _0x176b18[_0xa393('0x19')](_0x2a71ea)[_0xa393('0x1b')](_0x49584a);}};}function respondWithFilteredResult(_0x595112,_0x40a328){return function(_0xcb7a7b){if(_0xcb7a7b){var _0x2fa3ef=typeof _0x40a328[_0xa393('0x1c')]==='undefined'&&typeof _0x40a328[_0xa393('0x1d')]===_0xa393('0x1e');var _0x42416f=_0xcb7a7b[_0xa393('0x1f')];var _0x2479d2=_0x2fa3ef?0x0:_0x40a328['offset'];var _0x5762eb=_0x2fa3ef?_0xcb7a7b['count']:_0x40a328[_0xa393('0x1c')]+_0x40a328[_0xa393('0x1d')];var _0x3c5ace;if(_0x5762eb>=_0x42416f){_0x5762eb=_0x42416f;_0x3c5ace=0xc8;}else{_0x3c5ace=0xce;}_0x595112[_0xa393('0x19')](_0x3c5ace);return _0x595112['set']('Content-Range',_0x2479d2+'-'+_0x5762eb+'/'+_0x42416f)[_0xa393('0x1b')](_0xcb7a7b);}return null;};}function patchUpdates(_0x53a38){return function(_0x5d38da){try{jsonpatch['apply'](_0x5d38da,_0x53a38,!![]);}catch(_0x43fe36){return BPromise[_0xa393('0x20')](_0x43fe36);}return _0x5d38da[_0xa393('0x21')]();};}function saveUpdates(_0x5e98d1,_0x10f695){return function(_0x5bbfb8){if(_0x5bbfb8){return _0x5bbfb8[_0xa393('0x22')](_0x5e98d1)[_0xa393('0x23')](function(_0x3b1103){return _0x3b1103;});}return null;};}function removeEntity(_0x1a7346,_0x46172c){return function(_0x27d930){if(_0x27d930){return _0x27d930[_0xa393('0x24')]()[_0xa393('0x23')](function(){var _0x530798=_0x27d930['get']({'plain':!![]});var _0x210f96='OpenchannelQueues';return db[_0xa393('0x25')][_0xa393('0x24')]({'where':{'type':_0x210f96,'resourceId':_0x530798['id']}})[_0xa393('0x23')](function(){return _0x27d930;});})[_0xa393('0x23')](function(){_0x1a7346[_0xa393('0x19')](0xcc)[_0xa393('0x1a')]();});}};}function handleEntityNotFound(_0x867db4,_0x5c9694){return function(_0x176e79){if(!_0x176e79){_0x867db4['sendStatus'](0x194);}return _0x176e79;};}function handleError(_0x21b607,_0x3847ce){_0x3847ce=_0x3847ce||0x1f4;return function(_0x52c791){logger['error'](_0x52c791[_0xa393('0x26')]);if(_0x52c791[_0xa393('0x27')]){delete _0x52c791['name'];}_0x21b607[_0xa393('0x19')](_0x3847ce)[_0xa393('0x28')](_0x52c791);};}exports[_0xa393('0x29')]=function(_0x30a59a,_0x352fe1){var _0x36aaad={},_0x45cd92={},_0x3ad4b5={'count':0x0,'rows':[]};var _0x10a837=_[_0xa393('0x2a')](db[_0xa393('0x2b')]['rawAttributes'],function(_0x3f8c97){return{'name':_0x3f8c97[_0xa393('0x2c')],'type':_0x3f8c97[_0xa393('0x2d')][_0xa393('0x2e')]};});_0x45cd92[_0xa393('0x2f')]=_['map'](_0x10a837,_0xa393('0x27'));_0x45cd92[_0xa393('0x30')]=_['keys'](_0x30a59a[_0xa393('0x30')]);_0x45cd92[_0xa393('0x31')]=_['intersection'](_0x45cd92[_0xa393('0x2f')],_0x45cd92[_0xa393('0x30')]);_0x36aaad[_0xa393('0x32')]=_['intersection'](_0x45cd92['model'],qs[_0xa393('0x33')](_0x30a59a['query']['fields']));_0x36aaad[_0xa393('0x32')]=_0x36aaad['attributes'][_0xa393('0x34')]?_0x36aaad[_0xa393('0x32')]:_0x45cd92[_0xa393('0x2f')];if(!_0x30a59a[_0xa393('0x30')][_0xa393('0x35')](_0xa393('0x36'))){_0x36aaad['limit']=qs[_0xa393('0x1d')](_0x30a59a[_0xa393('0x30')][_0xa393('0x1d')]);_0x36aaad[_0xa393('0x1c')]=qs[_0xa393('0x1c')](_0x30a59a[_0xa393('0x30')]['offset']);}_0x36aaad[_0xa393('0x37')]=qs[_0xa393('0x38')](_0x30a59a[_0xa393('0x30')][_0xa393('0x38')]);_0x36aaad[_0xa393('0x39')]=qs['filters'](_[_0xa393('0x3a')](_0x30a59a[_0xa393('0x30')],_0x45cd92['filters']),_0x10a837);if(_0x30a59a[_0xa393('0x30')]['filter']){_0x36aaad[_0xa393('0x39')]=_[_0xa393('0x3b')](_0x36aaad[_0xa393('0x39')],{'$or':_[_0xa393('0x2a')](_0x10a837,function(_0xe4d650){if(_0xe4d650[_0xa393('0x2d')]!==_0xa393('0x3c')){var _0x17ae46={};_0x17ae46[_0xe4d650[_0xa393('0x27')]]={'$like':'%'+_0x30a59a[_0xa393('0x30')][_0xa393('0x3d')]+'%'};return _0x17ae46;}})});}_0x36aaad=_[_0xa393('0x3b')]({},_0x36aaad,_0x30a59a[_0xa393('0x3e')]);var _0x26b1a0={'where':_0x36aaad[_0xa393('0x39')]};return db[_0xa393('0x2b')][_0xa393('0x1f')](_0x26b1a0)[_0xa393('0x23')](function(_0x303088){_0x3ad4b5[_0xa393('0x1f')]=_0x303088;if(_0x30a59a['query'][_0xa393('0x3f')]){_0x36aaad[_0xa393('0x40')]=[{'all':!![]}];}return db[_0xa393('0x2b')][_0xa393('0x41')](_0x36aaad);})['then'](function(_0x19a157){_0x3ad4b5[_0xa393('0x42')]=_0x19a157;return _0x3ad4b5;})[_0xa393('0x23')](respondWithFilteredResult(_0x352fe1,_0x36aaad))[_0xa393('0x43')](handleError(_0x352fe1,null));};exports[_0xa393('0x44')]=function(_0x48a530,_0x3fc2de){var _0x2edfaa={'raw':!![],'where':{'id':_0x48a530[_0xa393('0x45')]['id']}},_0x2985b2={};_0x2985b2[_0xa393('0x2f')]=_[_0xa393('0x46')](db[_0xa393('0x2b')]['rawAttributes']);_0x2985b2[_0xa393('0x30')]=_[_0xa393('0x46')](_0x48a530[_0xa393('0x30')]);_0x2985b2[_0xa393('0x31')]=_[_0xa393('0x47')](_0x2985b2[_0xa393('0x2f')],_0x2985b2[_0xa393('0x30')]);_0x2edfaa[_0xa393('0x32')]=_[_0xa393('0x47')](_0x2985b2[_0xa393('0x2f')],qs['fields'](_0x48a530[_0xa393('0x30')][_0xa393('0x33')]));_0x2edfaa[_0xa393('0x32')]=_0x2edfaa[_0xa393('0x32')][_0xa393('0x34')]?_0x2edfaa[_0xa393('0x32')]:_0x2985b2['model'];if(_0x48a530['query'][_0xa393('0x3f')]){_0x2edfaa[_0xa393('0x40')]=[{'all':!![]}];}_0x2edfaa=_[_0xa393('0x3b')]({},_0x2edfaa,_0x48a530[_0xa393('0x3e')]);return db[_0xa393('0x2b')][_0xa393('0x48')](_0x2edfaa)[_0xa393('0x23')](handleEntityNotFound(_0x3fc2de,null))[_0xa393('0x23')](respondWithResult(_0x3fc2de,null))['catch'](handleError(_0x3fc2de,null));};exports[_0xa393('0x49')]=function(_0x82e817,_0x212272){return db['OpenchannelQueue'][_0xa393('0x49')](_0x82e817[_0xa393('0x4a')],{})[_0xa393('0x23')](function(_0x3ec179){var _0x1f4d46=_0x82e817['user'][_0xa393('0x4b')]({'plain':!![]});if(!_0x1f4d46)throw new Error(_0xa393('0x4c'));if(_0x1f4d46[_0xa393('0x4d')]===_0xa393('0x4e')){var _0x54352f=_0x3ec179[_0xa393('0x4b')]({'plain':!![]});var _0x39aa71='OpenchannelQueues';return db[_0xa393('0x4f')]['find']({'where':{'name':_0x39aa71,'userProfileId':_0x1f4d46[_0xa393('0x50')]},'raw':!![]})[_0xa393('0x23')](function(_0x20b7c3){if(_0x20b7c3&&_0x20b7c3[_0xa393('0x51')]===0x0){return db[_0xa393('0x25')][_0xa393('0x49')]({'name':_0x54352f[_0xa393('0x27')],'resourceId':_0x54352f['id'],'type':_0x20b7c3[_0xa393('0x27')],'sectionId':_0x20b7c3['id']},{})[_0xa393('0x23')](function(){return _0x3ec179;});}else{return _0x3ec179;}})[_0xa393('0x43')](function(_0x4903ef){logger[_0xa393('0x52')](_0xa393('0x53'),_0x4903ef);throw _0x4903ef;});}return _0x3ec179;})['then'](respondWithResult(_0x212272,0xc9))['catch'](handleError(_0x212272,null));};exports[_0xa393('0x22')]=function(_0x4c3449,_0x9cbd70){if(_0x4c3449[_0xa393('0x4a')]['id']){delete _0x4c3449[_0xa393('0x4a')]['id'];}return db[_0xa393('0x2b')]['find']({'where':{'id':_0x4c3449[_0xa393('0x45')]['id']}})['then'](handleEntityNotFound(_0x9cbd70,null))[_0xa393('0x23')](saveUpdates(_0x4c3449['body'],null))[_0xa393('0x23')](respondWithResult(_0x9cbd70,null))['catch'](handleError(_0x9cbd70,null));};exports[_0xa393('0x24')]=function(_0x31b187,_0x3cc12b){return db['OpenchannelQueue'][_0xa393('0x48')]({'where':{'id':_0x31b187[_0xa393('0x45')]['id']}})['then'](handleEntityNotFound(_0x3cc12b,null))[_0xa393('0x23')](removeEntity(_0x3cc12b,null))[_0xa393('0x43')](handleError(_0x3cc12b,null));};exports[_0xa393('0x54')]=function(_0x3a3721,_0x591b14){return db['OpenchannelQueue'][_0xa393('0x54')]()[_0xa393('0x23')](respondWithResult(_0x591b14,null))['catch'](handleError(_0x591b14,null));};exports[_0xa393('0x55')]=function(_0x211fbd,_0x40f7f9,_0x477ba5){var _0x2e5701={'raw':!![],'where':{}},_0x23684a={},_0x4cf35d;return db['OpenchannelQueue'][_0xa393('0x56')]({'where':{'id':_0x211fbd[_0xa393('0x45')]['id']}})[_0xa393('0x23')](handleEntityNotFound(_0x40f7f9,null))[_0xa393('0x23')](function(_0x5ab46b){if(_0x5ab46b){_0x4cf35d=_0x5ab46b[_0xa393('0x4b')]({'plain':!![]});_0x23684a[_0xa393('0x2f')]=_[_0xa393('0x46')](db[_0xa393('0x57')][_0xa393('0x58')]);_0x23684a[_0xa393('0x30')]=_[_0xa393('0x46')](_0x211fbd[_0xa393('0x30')]);_0x23684a[_0xa393('0x31')]=_[_0xa393('0x47')](_0x23684a[_0xa393('0x2f')],_0x23684a[_0xa393('0x30')]);_0x2e5701[_0xa393('0x32')]=_[_0xa393('0x47')](_0x23684a['model'],qs[_0xa393('0x33')](_0x211fbd[_0xa393('0x30')][_0xa393('0x33')]));_0x2e5701[_0xa393('0x32')]=_0x2e5701[_0xa393('0x32')]['length']?_0x2e5701[_0xa393('0x32')]:_0x23684a[_0xa393('0x2f')];if(!_0x211fbd[_0xa393('0x30')][_0xa393('0x35')](_0xa393('0x36'))){_0x2e5701[_0xa393('0x1d')]=qs[_0xa393('0x1d')](_0x211fbd[_0xa393('0x30')]['limit']);_0x2e5701[_0xa393('0x1c')]=qs[_0xa393('0x1c')](_0x211fbd[_0xa393('0x30')]['offset']);}_0x2e5701[_0xa393('0x37')]=qs['sort'](_0x211fbd[_0xa393('0x30')][_0xa393('0x38')]);_0x2e5701[_0xa393('0x39')]=qs[_0xa393('0x31')](_[_0xa393('0x3a')](_0x211fbd['query'],_0x23684a[_0xa393('0x31')]));_0x2e5701['where'][_0xa393('0x59')]=_0x5ab46b['id'];if(_0x211fbd[_0xa393('0x30')][_0xa393('0x3d')]){_0x2e5701[_0xa393('0x39')]=_[_0xa393('0x3b')](_0x2e5701['where'],{'$or':_[_0xa393('0x2a')](_0x2e5701[_0xa393('0x32')],function(_0x55271a){var _0x3ba784={};_0x3ba784[_0x55271a]={'$like':'%'+_0x211fbd[_0xa393('0x30')][_0xa393('0x3d')]+'%'};return _0x3ba784;})});}_0x2e5701=_[_0xa393('0x3b')]({},_0x2e5701,_0x211fbd[_0xa393('0x3e')]);return db[_0xa393('0x57')][_0xa393('0x41')](_0x2e5701);}})[_0xa393('0x23')](function(_0x7c3ae4){if(_0x7c3ae4){return db['User'][_0xa393('0x5a')]({'where':{'id':_['map'](_0x7c3ae4,_0xa393('0x5b')),'role':_0xa393('0x5c')},'attributes':['id',_0xa393('0x27'),_0xa393('0x5d'),_0xa393('0x5e'),_0xa393('0x5f')]});}})['then'](function(_0xa04a3){if(_0xa04a3){return{'count':_0xa04a3[_0xa393('0x1f')],'rows':_[_0xa393('0x2a')](_0xa04a3[_0xa393('0x42')],function(_0x3c227a){return{'membername':_0x3c227a[_0xa393('0x27')],'UserId':_0x3c227a['id'],'queue_name':_0x4cf35d['name'],'OpenchannelQueueId':_0x4cf35d['id'],'interface':util[_0xa393('0x60')](_0xa393('0x61'),_0xa393('0x62'),_0x3c227a[_0xa393('0x27')]),'penalty':0x0,'paused':_0x3c227a[_0xa393('0x5d')],'createdAt':_0x3c227a[_0xa393('0x5f')],'updatedAt':_0x3c227a['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xa393('0x23')](respondWithFilteredResult(_0x40f7f9,_0x2e5701))['catch'](handleError(_0x40f7f9,null));};exports['getTeams']=function(_0x1b5b42,_0x51a5da,_0x471a11){var _0x2810b2={};var _0x998b2c={};var _0x2c7066;var _0x2181c4;return db['OpenchannelQueue'][_0xa393('0x56')]({'where':{'id':_0x1b5b42[_0xa393('0x45')]['id']}})['then'](handleEntityNotFound(_0x51a5da,null))['then'](function(_0xf8d239){if(_0xf8d239){_0x2c7066=_0xf8d239;_0x998b2c[_0xa393('0x2f')]=_[_0xa393('0x46')](db[_0xa393('0x63')][_0xa393('0x58')]);_0x998b2c[_0xa393('0x30')]=_[_0xa393('0x46')](_0x1b5b42[_0xa393('0x30')]);_0x998b2c['filters']=_[_0xa393('0x47')](_0x998b2c['model'],_0x998b2c[_0xa393('0x30')]);_0x2810b2[_0xa393('0x32')]=_['intersection'](_0x998b2c[_0xa393('0x2f')],qs['fields'](_0x1b5b42[_0xa393('0x30')]['fields']));_0x2810b2['attributes']=_0x2810b2[_0xa393('0x32')]['length']?_0x2810b2['attributes']:_0x998b2c[_0xa393('0x2f')];_0x2810b2[_0xa393('0x37')]=qs[_0xa393('0x38')](_0x1b5b42['query'][_0xa393('0x38')]);_0x2810b2['where']=qs[_0xa393('0x31')](_['pick'](_0x1b5b42['query'],_0x998b2c[_0xa393('0x31')]));if(_0x1b5b42[_0xa393('0x30')][_0xa393('0x3d')]){_0x2810b2[_0xa393('0x39')]=_[_0xa393('0x3b')](_0x2810b2[_0xa393('0x39')],{'$or':_[_0xa393('0x2a')](_0x2810b2[_0xa393('0x32')],function(_0x1e1e46){var _0x5e8a3f={};_0x5e8a3f[_0x1e1e46]={'$like':'%'+_0x1b5b42['query'][_0xa393('0x3d')]+'%'};return _0x5e8a3f;})});}_0x2810b2=_[_0xa393('0x3b')]({},_0x2810b2,_0x1b5b42[_0xa393('0x3e')]);return _0x2c7066[_0xa393('0x64')](_0x2810b2);}})[_0xa393('0x23')](function(_0x46d596){if(_0x46d596){_0x2181c4=_0x46d596[_0xa393('0x34')];if(!_0x1b5b42[_0xa393('0x30')][_0xa393('0x35')](_0xa393('0x36'))){_0x2810b2[_0xa393('0x1d')]=qs[_0xa393('0x1d')](_0x1b5b42[_0xa393('0x30')]['limit']);_0x2810b2[_0xa393('0x1c')]=qs[_0xa393('0x1c')](_0x1b5b42[_0xa393('0x30')][_0xa393('0x1c')]);}return _0x2c7066['getTeams'](_0x2810b2);}})['then'](function(_0x5923){if(_0x5923){return _0x5923?{'count':_0x2181c4,'rows':_0x5923}:null;}})[_0xa393('0x23')](respondWithResult(_0x51a5da,null))['catch'](handleError(_0x51a5da,null));};exports[_0xa393('0x65')]=function(_0x249dcd,_0x281c86,_0x444f70){var _0x2a5b09=_0x249dcd[_0xa393('0x4a')][_0xa393('0x66')];return db['Team'][_0xa393('0x41')]({'where':{'id':_0x2a5b09},'attributes':['id'],'include':[{'model':db[_0xa393('0x67')],'as':_0xa393('0x68'),'attributes':['id',_0xa393('0x27'),_0xa393('0x69'),'voicePause','interface'],'raw':!![]}]})[_0xa393('0x23')](function(_0x4e49ff){if(_0x4e49ff){var _0x252cfa=_[_0xa393('0x6a')](_0x4e49ff,function(_0x5cd1db){var _0x47f097=_0x5cd1db[_0xa393('0x4b')]({'plain':!![]});return _0x47f097[_0xa393('0x68')];});return db[_0xa393('0x2b')][_0xa393('0x48')]({'where':{'id':_0x249dcd['params']['id']}})[_0xa393('0x23')](function(_0x5bf8d1){return db[_0xa393('0x6b')][_0xa393('0x6c')](function(_0x2a86f0){return _0x5bf8d1[_0xa393('0x65')](_0x2a5b09,{'transaction':_0x2a86f0})[_0xa393('0x23')](function(){return BPromise[_0xa393('0x6d')](_0x252cfa,function(_0x3b2b8f){return db[_0xa393('0x57')]['findOrCreate']({'where':{'UserId':_0x3b2b8f['id'],'OpenchannelQueueId':_0x249dcd[_0xa393('0x45')]['id']},'transaction':_0x2a86f0});});})[_0xa393('0x23')](function(){_0x252cfa[_0xa393('0x6e')](function(_0x59461c){socket[_0xa393('0x6f')]('userOpenchannelQueue:save',{'UserId':_0x59461c['id'],'OpenchannelQueueId':_0x5bf8d1['id']});});});});});}})[_0xa393('0x23')](respondWithStatusCode(_0x281c86,null))['catch'](handleError(_0x281c86,null));};exports[_0xa393('0x70')]=function(_0x4c8f0e,_0x43788d,_0x3ce9f3){return db[_0xa393('0x63')][_0xa393('0x41')]({'where':{'id':_0x4c8f0e[_0xa393('0x30')][_0xa393('0x66')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0xa393('0x68'),'attributes':['id'],'raw':!![]}]})[_0xa393('0x23')](handleEntityNotFound(_0x43788d,null))[_0xa393('0x23')](function(_0x20d574){var _0x8206d7=_[_0xa393('0x2a')](_0x20d574,'id');var _0x1b1a90=[];var _0x35ff45=[];var _0x2e610b=squel[_0xa393('0x71')]();_0x2e610b[_0xa393('0x72')]('tq.TeamId')[_0xa393('0x73')](_0xa393('0x74'),'tq')[_0xa393('0x75')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0xa393('0x39')](_0xa393('0x76'),_0x4c8f0e[_0xa393('0x45')]['id']);for(var _0x584801=0x0;_0x584801<_0x20d574[_0xa393('0x34')];_0x584801+=0x1){let _0x101587=_0x20d574[_0x584801];for(var _0x56a087=0x0;_0x56a087<_0x101587['Agents']['length'];_0x56a087+=0x1){let _0x473663=_0x101587[_0xa393('0x68')][_0x56a087];var _0x2f0d6b=_0x2e610b['clone']();_0x2f0d6b['where']('ut.UserId\x20=\x20?',_0x473663['id']);_0x35ff45[_0xa393('0x77')](db[_0xa393('0x6b')]['query'](_0x2f0d6b[_0xa393('0x78')](),{'type':db[_0xa393('0x6b')]['QueryTypes']['SELECT']})['then'](function(_0x7a1c7c){if(_0x7a1c7c[_0xa393('0x34')]===0x1){return _0x473663['id'];}else{var _0x5968d4=_[_0xa393('0x79')](_[_0xa393('0x2a')](_0x7a1c7c,_0xa393('0x7a')),function(_0x352b8b){return _[_0xa393('0x7b')](_0x8206d7,_0x352b8b);});if(_0x5968d4){return _0x473663['id'];}}}));}}return BPromise[_0xa393('0x7c')](_0x35ff45)[_0xa393('0x23')](function(_0x230a58){_0x1b1a90=_(_0x1b1a90)['union'](_0x230a58)['compact']()[_0xa393('0x7d')]();return db[_0xa393('0x2b')][_0xa393('0x48')]({'where':{'id':_0x4c8f0e[_0xa393('0x45')]['id']}})['then'](function(_0x4f6e70){return db[_0xa393('0x6b')][_0xa393('0x6c')](function(_0x36dfc3){return _0x4f6e70[_0xa393('0x70')](_0x4c8f0e['query'][_0xa393('0x66')],{'transaction':_0x36dfc3})[_0xa393('0x23')](function(){if(!_[_0xa393('0x7e')](_0x1b1a90)){return _0x4f6e70['removeAgents'](_0x1b1a90,{'transaction':_0x36dfc3});}})[_0xa393('0x23')](function(){_0x1b1a90[_0xa393('0x6e')](function(_0x21e20a){socket[_0xa393('0x6f')](_0xa393('0x7f'),{'UserId':_0x21e20a,'OpenchannelQueueId':_0x4f6e70['id']});});});});});});})[_0xa393('0x23')](respondWithStatusCode(_0x43788d,null))[_0xa393('0x43')](handleError(_0x43788d,null));};exports[_0xa393('0x80')]=function(_0x5f52f1,_0x190845,_0x5e8cd5){return db[_0xa393('0x2b')][_0xa393('0x48')]({'where':{'id':_0x5f52f1[_0xa393('0x45')]['id']}})[_0xa393('0x23')](handleEntityNotFound(_0x190845,null))[_0xa393('0x23')](function(_0x457c3){if(_0x457c3){return _0x457c3['addAgents'](_0x5f52f1['body'][_0xa393('0x66')],_[_0xa393('0x81')](_0x5f52f1['body'],['ids','id'])||{})[_0xa393('0x82')](function(_0x2e2357){for(var _0x382ad6=0x0;_0x382ad6<_0x5f52f1[_0xa393('0x4a')][_0xa393('0x66')][_0xa393('0x34')];_0x382ad6+=0x1){socket['emit'](_0xa393('0x83'),{'UserId':Number(_0x5f52f1[_0xa393('0x4a')][_0xa393('0x66')][_0x382ad6]),'OpenchannelQueueId':Number(_0x5f52f1['params']['id'])});}return _0x2e2357;});}})[_0xa393('0x23')](respondWithResult(_0x190845,null))['catch'](handleError(_0x190845,null));};exports['removeAgents']=function(_0x32feda,_0x2a6a0c,_0x33723e){return db[_0xa393('0x2b')]['find']({'where':{'id':_0x32feda['params']['id']}})['then'](handleEntityNotFound(_0x2a6a0c,null))[_0xa393('0x23')](function(_0x2f0e11){if(_0x2f0e11){return _0x2f0e11['removeAgents'](_0x32feda[_0xa393('0x30')]['ids'])[_0xa393('0x23')](function(){if(_[_0xa393('0x84')](_0x32feda[_0xa393('0x30')][_0xa393('0x66')])){for(var _0x380e8f=0x0;_0x380e8f<_0x32feda['query'][_0xa393('0x66')][_0xa393('0x34')];_0x380e8f+=0x1){socket[_0xa393('0x6f')](_0xa393('0x7f'),{'UserId':Number(_0x32feda[_0xa393('0x30')][_0xa393('0x66')][_0x380e8f]),'OpenchannelQueueId':Number(_0x32feda[_0xa393('0x45')]['id'])});}}else{socket[_0xa393('0x6f')](_0xa393('0x7f'),{'UserId':Number(_0x32feda[_0xa393('0x30')][_0xa393('0x66')]),'OpenchannelQueueId':Number(_0x32feda['params']['id'])});}});}})[_0xa393('0x23')](respondWithStatusCode(_0x2a6a0c,null))['catch'](handleError(_0x2a6a0c,null));};exports[_0xa393('0x85')]=function(_0x7d3e56,_0x4cd682,_0x292d2e){var _0x2cbdbb={};var _0xe965a0={};var _0x46b6bf;var _0x565b3b;return db['OpenchannelQueue'][_0xa393('0x56')]({'where':{'id':_0x7d3e56['params']['id']}})[_0xa393('0x23')](handleEntityNotFound(_0x4cd682,null))[_0xa393('0x23')](function(_0x43b59d){if(_0x43b59d){_0x46b6bf=_0x43b59d;_0xe965a0[_0xa393('0x2f')]=_[_0xa393('0x46')](db[_0xa393('0x67')][_0xa393('0x58')]);_0xe965a0[_0xa393('0x30')]=_[_0xa393('0x46')](_0x7d3e56[_0xa393('0x30')]);_0xe965a0[_0xa393('0x31')]=_[_0xa393('0x47')](_0xe965a0[_0xa393('0x2f')],_0xe965a0[_0xa393('0x30')]);_0x2cbdbb[_0xa393('0x32')]=_[_0xa393('0x47')](_0xe965a0[_0xa393('0x2f')],qs[_0xa393('0x33')](_0x7d3e56['query'][_0xa393('0x33')]));_0x2cbdbb[_0xa393('0x32')]=_0x2cbdbb[_0xa393('0x32')][_0xa393('0x34')]?_0x2cbdbb[_0xa393('0x32')]:_0xe965a0['model'];_0x2cbdbb['order']=qs[_0xa393('0x38')](_0x7d3e56[_0xa393('0x30')][_0xa393('0x38')]);_0x2cbdbb[_0xa393('0x39')]=qs[_0xa393('0x31')](_[_0xa393('0x3a')](_0x7d3e56[_0xa393('0x30')],_0xe965a0[_0xa393('0x31')]));if(_0x7d3e56[_0xa393('0x30')][_0xa393('0x3d')]){_0x2cbdbb[_0xa393('0x39')]=_[_0xa393('0x3b')](_0x2cbdbb[_0xa393('0x39')],{'$or':_[_0xa393('0x2a')](_0x2cbdbb[_0xa393('0x32')],function(_0x53857d){var _0x5cb249={};_0x5cb249[_0x53857d]={'$like':'%'+_0x7d3e56[_0xa393('0x30')][_0xa393('0x3d')]+'%'};return _0x5cb249;})});}_0x2cbdbb=_[_0xa393('0x3b')]({},_0x2cbdbb,_0x7d3e56[_0xa393('0x3e')]);return _0x46b6bf[_0xa393('0x85')](_0x2cbdbb);}})[_0xa393('0x23')](function(_0x59fd4a){if(_0x59fd4a){_0x565b3b=_0x59fd4a[_0xa393('0x34')];if(!_0x7d3e56[_0xa393('0x30')][_0xa393('0x35')](_0xa393('0x36'))){_0x2cbdbb['limit']=qs[_0xa393('0x1d')](_0x7d3e56[_0xa393('0x30')][_0xa393('0x1d')]);_0x2cbdbb[_0xa393('0x1c')]=qs[_0xa393('0x1c')](_0x7d3e56[_0xa393('0x30')][_0xa393('0x1c')]);}return _0x46b6bf[_0xa393('0x85')](_0x2cbdbb);}})[_0xa393('0x23')](function(_0x173fda){if(_0x173fda){return _0x173fda?{'count':_0x565b3b,'rows':_0x173fda}:null;}})['then'](respondWithResult(_0x4cd682,null))[_0xa393('0x43')](handleError(_0x4cd682,null));};
\ No newline at end of file
+var _0xc7e2=['sequelize','transaction','addTeams','each','forEach','emit','removeTeams','select','tq.TeamId','team_has_openchannel_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','every','TeamId','all','compact','isEmpty','removeAgents','userOpenchannelQueue:remove','addAgents','spread','userOpenchannelQueue:save','isArray','getAgents','zip-dir','fast-json-patch','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','socket.io-emitter','register','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','get','OpenchannelQueues','then','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','options','OpenchannelQueue','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','findOne','UserOpenchannelQueue','User','findAndCountAll','UserId','agent','openchannelPause','updatedAt','createdAt','format','SIP','getTeams','Team','ids','Agents','interface','flatMap'];(function(_0x3d4768,_0x5a378f){var _0x4984d4=function(_0x586905){while(--_0x586905){_0x3d4768['push'](_0x3d4768['shift']());}};_0x4984d4(++_0x5a378f);}(_0xc7e2,0x129));var _0x2c7e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc7e2[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2c7e('0x0'));var jsonpatch=require(_0x2c7e('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2c7e('0x2'));var Mustache=require('mustache');var util=require(_0x2c7e('0x3'));var path=require(_0x2c7e('0x4'));var sox=require('sox');var csv=require(_0x2c7e('0x5'));var ejs=require(_0x2c7e('0x6'));var fs=require('fs');var fs_extra=require(_0x2c7e('0x7'));var _=require(_0x2c7e('0x8'));var squel=require(_0x2c7e('0x9'));var crypto=require('crypto');var jsforce=require(_0x2c7e('0xa'));var deskjs=require(_0x2c7e('0xb'));var toCsv=require('to-csv');var querystring=require(_0x2c7e('0xc'));var Papa=require(_0x2c7e('0xd'));var Redis=require(_0x2c7e('0xe'));var authService=require(_0x2c7e('0xf'));var qs=require(_0x2c7e('0x10'));var as=require(_0x2c7e('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2c7e('0x12'))(_0x2c7e('0x13'));var utils=require('../../config/utils');var config=require(_0x2c7e('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x2c7e('0x15'))['db'];config[_0x2c7e('0x16')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x2c7e('0x17'))(new Redis(config[_0x2c7e('0x16')]));require('./openchannelQueue.socket')[_0x2c7e('0x18')](socket);function respondWithStatusCode(_0x53fe48,_0x57fc83){_0x57fc83=_0x57fc83||0xcc;return function(_0x58557d){if(_0x58557d){return _0x53fe48['sendStatus'](_0x57fc83);}return _0x53fe48[_0x2c7e('0x19')](_0x57fc83)[_0x2c7e('0x1a')]();};}function respondWithResult(_0x3607e4,_0x547c26){_0x547c26=_0x547c26||0xc8;return function(_0x3b1f5c){if(_0x3b1f5c){return _0x3607e4[_0x2c7e('0x19')](_0x547c26)[_0x2c7e('0x1b')](_0x3b1f5c);}};}function respondWithFilteredResult(_0x2b8c59,_0x16ca37){return function(_0x268db1){if(_0x268db1){var _0x25f2d1=typeof _0x16ca37[_0x2c7e('0x1c')]===_0x2c7e('0x1d')&&typeof _0x16ca37[_0x2c7e('0x1e')]==='undefined';var _0xb7192d=_0x268db1[_0x2c7e('0x1f')];var _0x3d77eb=_0x25f2d1?0x0:_0x16ca37[_0x2c7e('0x1c')];var _0x48f030=_0x25f2d1?_0x268db1[_0x2c7e('0x1f')]:_0x16ca37[_0x2c7e('0x1c')]+_0x16ca37[_0x2c7e('0x1e')];var _0xa302b;if(_0x48f030>=_0xb7192d){_0x48f030=_0xb7192d;_0xa302b=0xc8;}else{_0xa302b=0xce;}_0x2b8c59[_0x2c7e('0x19')](_0xa302b);return _0x2b8c59[_0x2c7e('0x20')](_0x2c7e('0x21'),_0x3d77eb+'-'+_0x48f030+'/'+_0xb7192d)[_0x2c7e('0x1b')](_0x268db1);}return null;};}function patchUpdates(_0x402afb){return function(_0x13a9e2){try{jsonpatch[_0x2c7e('0x22')](_0x13a9e2,_0x402afb,!![]);}catch(_0xac11b9){return BPromise['reject'](_0xac11b9);}return _0x13a9e2[_0x2c7e('0x23')]();};}function saveUpdates(_0x15bbfe,_0x26b2db){return function(_0x2d0f36){if(_0x2d0f36){return _0x2d0f36[_0x2c7e('0x24')](_0x15bbfe)['then'](function(_0x169554){return _0x169554;});}return null;};}function removeEntity(_0x10918c,_0x2ba44d){return function(_0x22f0a0){if(_0x22f0a0){return _0x22f0a0[_0x2c7e('0x25')]()['then'](function(){var _0xad8a52=_0x22f0a0[_0x2c7e('0x26')]({'plain':!![]});var _0x1e6585=_0x2c7e('0x27');return db['UserProfileResource'][_0x2c7e('0x25')]({'where':{'type':_0x1e6585,'resourceId':_0xad8a52['id']}})[_0x2c7e('0x28')](function(){return _0x22f0a0;});})[_0x2c7e('0x28')](function(){_0x10918c[_0x2c7e('0x19')](0xcc)[_0x2c7e('0x1a')]();});}};}function handleEntityNotFound(_0x30bd71,_0x41d388){return function(_0x2b96a4){if(!_0x2b96a4){_0x30bd71['sendStatus'](0x194);}return _0x2b96a4;};}function handleError(_0x17ada6,_0x2fcfe3){_0x2fcfe3=_0x2fcfe3||0x1f4;return function(_0x327259){logger['error'](_0x327259['stack']);if(_0x327259['name']){delete _0x327259[_0x2c7e('0x29')];}_0x17ada6['status'](_0x2fcfe3)[_0x2c7e('0x2a')](_0x327259);};}exports[_0x2c7e('0x2b')]=function(_0x5e688a,_0xa8f27a){var _0x30f472={},_0x4d4c9b={},_0x11e39e={'count':0x0,'rows':[]};var _0x239f24=_[_0x2c7e('0x2c')](db['OpenchannelQueue']['rawAttributes'],function(_0xf01614){return{'name':_0xf01614[_0x2c7e('0x2d')],'type':_0xf01614[_0x2c7e('0x2e')][_0x2c7e('0x2f')]};});_0x4d4c9b[_0x2c7e('0x30')]=_[_0x2c7e('0x2c')](_0x239f24,_0x2c7e('0x29'));_0x4d4c9b[_0x2c7e('0x31')]=_[_0x2c7e('0x32')](_0x5e688a[_0x2c7e('0x31')]);_0x4d4c9b[_0x2c7e('0x33')]=_[_0x2c7e('0x34')](_0x4d4c9b[_0x2c7e('0x30')],_0x4d4c9b['query']);_0x30f472[_0x2c7e('0x35')]=_['intersection'](_0x4d4c9b[_0x2c7e('0x30')],qs[_0x2c7e('0x36')](_0x5e688a[_0x2c7e('0x31')][_0x2c7e('0x36')]));_0x30f472[_0x2c7e('0x35')]=_0x30f472[_0x2c7e('0x35')]['length']?_0x30f472[_0x2c7e('0x35')]:_0x4d4c9b['model'];if(!_0x5e688a['query'][_0x2c7e('0x37')](_0x2c7e('0x38'))){_0x30f472[_0x2c7e('0x1e')]=qs[_0x2c7e('0x1e')](_0x5e688a[_0x2c7e('0x31')]['limit']);_0x30f472[_0x2c7e('0x1c')]=qs['offset'](_0x5e688a['query'][_0x2c7e('0x1c')]);}_0x30f472[_0x2c7e('0x39')]=qs['sort'](_0x5e688a[_0x2c7e('0x31')][_0x2c7e('0x3a')]);_0x30f472[_0x2c7e('0x3b')]=qs[_0x2c7e('0x33')](_[_0x2c7e('0x3c')](_0x5e688a['query'],_0x4d4c9b[_0x2c7e('0x33')]),_0x239f24);if(_0x5e688a[_0x2c7e('0x31')][_0x2c7e('0x3d')]){_0x30f472[_0x2c7e('0x3b')]=_['merge'](_0x30f472[_0x2c7e('0x3b')],{'$or':_[_0x2c7e('0x2c')](_0x239f24,function(_0x48dd4c){if(_0x48dd4c[_0x2c7e('0x2e')]!==_0x2c7e('0x3e')){var _0x466595={};_0x466595[_0x48dd4c[_0x2c7e('0x29')]]={'$like':'%'+_0x5e688a[_0x2c7e('0x31')][_0x2c7e('0x3d')]+'%'};return _0x466595;}})});}_0x30f472=_['merge']({},_0x30f472,_0x5e688a[_0x2c7e('0x3f')]);var _0x5c86d7={'where':_0x30f472[_0x2c7e('0x3b')]};return db[_0x2c7e('0x40')][_0x2c7e('0x1f')](_0x5c86d7)[_0x2c7e('0x28')](function(_0x19375e){_0x11e39e[_0x2c7e('0x1f')]=_0x19375e;if(_0x5e688a[_0x2c7e('0x31')][_0x2c7e('0x41')]){_0x30f472[_0x2c7e('0x42')]=[{'all':!![]}];}return db['OpenchannelQueue'][_0x2c7e('0x43')](_0x30f472);})[_0x2c7e('0x28')](function(_0x320424){_0x11e39e[_0x2c7e('0x44')]=_0x320424;return _0x11e39e;})[_0x2c7e('0x28')](respondWithFilteredResult(_0xa8f27a,_0x30f472))[_0x2c7e('0x45')](handleError(_0xa8f27a,null));};exports[_0x2c7e('0x46')]=function(_0x38d011,_0x25124a){var _0x3f697f={'raw':!![],'where':{'id':_0x38d011[_0x2c7e('0x47')]['id']}},_0x1a88da={};_0x1a88da[_0x2c7e('0x30')]=_['keys'](db[_0x2c7e('0x40')][_0x2c7e('0x48')]);_0x1a88da[_0x2c7e('0x31')]=_['keys'](_0x38d011[_0x2c7e('0x31')]);_0x1a88da[_0x2c7e('0x33')]=_[_0x2c7e('0x34')](_0x1a88da[_0x2c7e('0x30')],_0x1a88da[_0x2c7e('0x31')]);_0x3f697f[_0x2c7e('0x35')]=_[_0x2c7e('0x34')](_0x1a88da['model'],qs['fields'](_0x38d011[_0x2c7e('0x31')]['fields']));_0x3f697f['attributes']=_0x3f697f[_0x2c7e('0x35')][_0x2c7e('0x49')]?_0x3f697f[_0x2c7e('0x35')]:_0x1a88da[_0x2c7e('0x30')];if(_0x38d011[_0x2c7e('0x31')][_0x2c7e('0x41')]){_0x3f697f[_0x2c7e('0x42')]=[{'all':!![]}];}_0x3f697f=_[_0x2c7e('0x4a')]({},_0x3f697f,_0x38d011[_0x2c7e('0x3f')]);return db[_0x2c7e('0x40')][_0x2c7e('0x4b')](_0x3f697f)[_0x2c7e('0x28')](handleEntityNotFound(_0x25124a,null))[_0x2c7e('0x28')](respondWithResult(_0x25124a,null))['catch'](handleError(_0x25124a,null));};exports['create']=function(_0x286c07,_0x31afef){return db[_0x2c7e('0x40')][_0x2c7e('0x4c')](_0x286c07[_0x2c7e('0x4d')],{})[_0x2c7e('0x28')](function(_0x50b71c){var _0x3fff08=_0x286c07[_0x2c7e('0x4e')]['get']({'plain':!![]});if(!_0x3fff08)throw new Error(_0x2c7e('0x4f'));if(_0x3fff08[_0x2c7e('0x50')]===_0x2c7e('0x4e')){var _0x1da0d6=_0x50b71c[_0x2c7e('0x26')]({'plain':!![]});var _0x1e4833='OpenchannelQueues';return db[_0x2c7e('0x51')][_0x2c7e('0x4b')]({'where':{'name':_0x1e4833,'userProfileId':_0x3fff08[_0x2c7e('0x52')]},'raw':!![]})[_0x2c7e('0x28')](function(_0x43a06c){if(_0x43a06c&&_0x43a06c['autoAssociation']===0x0){return db[_0x2c7e('0x53')]['create']({'name':_0x1da0d6['name'],'resourceId':_0x1da0d6['id'],'type':_0x43a06c[_0x2c7e('0x29')],'sectionId':_0x43a06c['id']},{})[_0x2c7e('0x28')](function(){return _0x50b71c;});}else{return _0x50b71c;}})[_0x2c7e('0x45')](function(_0x5eef0c){logger[_0x2c7e('0x54')](_0x2c7e('0x55'),_0x5eef0c);throw _0x5eef0c;});}return _0x50b71c;})[_0x2c7e('0x28')](respondWithResult(_0x31afef,0xc9))['catch'](handleError(_0x31afef,null));};exports[_0x2c7e('0x24')]=function(_0x4f9236,_0x217b66){if(_0x4f9236[_0x2c7e('0x4d')]['id']){delete _0x4f9236[_0x2c7e('0x4d')]['id'];}return db[_0x2c7e('0x40')][_0x2c7e('0x4b')]({'where':{'id':_0x4f9236['params']['id']}})[_0x2c7e('0x28')](handleEntityNotFound(_0x217b66,null))[_0x2c7e('0x28')](saveUpdates(_0x4f9236[_0x2c7e('0x4d')],null))[_0x2c7e('0x28')](respondWithResult(_0x217b66,null))['catch'](handleError(_0x217b66,null));};exports[_0x2c7e('0x25')]=function(_0x21abb5,_0x1f576d){return db['OpenchannelQueue'][_0x2c7e('0x4b')]({'where':{'id':_0x21abb5['params']['id']}})['then'](handleEntityNotFound(_0x1f576d,null))[_0x2c7e('0x28')](removeEntity(_0x1f576d,null))[_0x2c7e('0x45')](handleError(_0x1f576d,null));};exports[_0x2c7e('0x56')]=function(_0x1d2bc0,_0x2896ac){return db[_0x2c7e('0x40')]['describe']()[_0x2c7e('0x28')](respondWithResult(_0x2896ac,null))['catch'](handleError(_0x2896ac,null));};exports[_0x2c7e('0x57')]=function(_0x222fd2,_0x3ca454,_0x575c4a){var _0x3964a3={'raw':!![],'where':{}},_0x5f0619={},_0x5209bd;return db[_0x2c7e('0x40')][_0x2c7e('0x58')]({'where':{'id':_0x222fd2['params']['id']}})[_0x2c7e('0x28')](handleEntityNotFound(_0x3ca454,null))[_0x2c7e('0x28')](function(_0x479920){if(_0x479920){_0x5209bd=_0x479920['get']({'plain':!![]});_0x5f0619[_0x2c7e('0x30')]=_[_0x2c7e('0x32')](db['UserOpenchannelQueue'][_0x2c7e('0x48')]);_0x5f0619[_0x2c7e('0x31')]=_[_0x2c7e('0x32')](_0x222fd2[_0x2c7e('0x31')]);_0x5f0619[_0x2c7e('0x33')]=_['intersection'](_0x5f0619['model'],_0x5f0619[_0x2c7e('0x31')]);_0x3964a3[_0x2c7e('0x35')]=_[_0x2c7e('0x34')](_0x5f0619[_0x2c7e('0x30')],qs['fields'](_0x222fd2[_0x2c7e('0x31')]['fields']));_0x3964a3[_0x2c7e('0x35')]=_0x3964a3[_0x2c7e('0x35')][_0x2c7e('0x49')]?_0x3964a3[_0x2c7e('0x35')]:_0x5f0619[_0x2c7e('0x30')];if(!_0x222fd2['query'][_0x2c7e('0x37')](_0x2c7e('0x38'))){_0x3964a3[_0x2c7e('0x1e')]=qs[_0x2c7e('0x1e')](_0x222fd2[_0x2c7e('0x31')][_0x2c7e('0x1e')]);_0x3964a3[_0x2c7e('0x1c')]=qs[_0x2c7e('0x1c')](_0x222fd2[_0x2c7e('0x31')]['offset']);}_0x3964a3[_0x2c7e('0x39')]=qs[_0x2c7e('0x3a')](_0x222fd2[_0x2c7e('0x31')][_0x2c7e('0x3a')]);_0x3964a3[_0x2c7e('0x3b')]=qs[_0x2c7e('0x33')](_[_0x2c7e('0x3c')](_0x222fd2[_0x2c7e('0x31')],_0x5f0619[_0x2c7e('0x33')]));_0x3964a3[_0x2c7e('0x3b')]['OpenchannelQueueId']=_0x479920['id'];if(_0x222fd2[_0x2c7e('0x31')][_0x2c7e('0x3d')]){_0x3964a3[_0x2c7e('0x3b')]=_['merge'](_0x3964a3[_0x2c7e('0x3b')],{'$or':_[_0x2c7e('0x2c')](_0x3964a3[_0x2c7e('0x35')],function(_0x11ba38){var _0x1f7afa={};_0x1f7afa[_0x11ba38]={'$like':'%'+_0x222fd2[_0x2c7e('0x31')][_0x2c7e('0x3d')]+'%'};return _0x1f7afa;})});}_0x3964a3=_[_0x2c7e('0x4a')]({},_0x3964a3,_0x222fd2[_0x2c7e('0x3f')]);return db[_0x2c7e('0x59')]['findAll'](_0x3964a3);}})['then'](function(_0x3a39f0){if(_0x3a39f0){return db[_0x2c7e('0x5a')][_0x2c7e('0x5b')]({'where':{'id':_['map'](_0x3a39f0,_0x2c7e('0x5c')),'role':_0x2c7e('0x5d')},'attributes':['id',_0x2c7e('0x29'),_0x2c7e('0x5e'),_0x2c7e('0x5f'),_0x2c7e('0x60')]});}})[_0x2c7e('0x28')](function(_0x574520){if(_0x574520){return{'count':_0x574520[_0x2c7e('0x1f')],'rows':_[_0x2c7e('0x2c')](_0x574520[_0x2c7e('0x44')],function(_0x1eeb97){return{'membername':_0x1eeb97[_0x2c7e('0x29')],'UserId':_0x1eeb97['id'],'queue_name':_0x5209bd[_0x2c7e('0x29')],'OpenchannelQueueId':_0x5209bd['id'],'interface':util[_0x2c7e('0x61')]('%s/%s',_0x2c7e('0x62'),_0x1eeb97[_0x2c7e('0x29')]),'penalty':0x0,'paused':_0x1eeb97[_0x2c7e('0x5e')],'createdAt':_0x1eeb97[_0x2c7e('0x60')],'updatedAt':_0x1eeb97['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x2c7e('0x28')](respondWithFilteredResult(_0x3ca454,_0x3964a3))[_0x2c7e('0x45')](handleError(_0x3ca454,null));};exports[_0x2c7e('0x63')]=function(_0x283d83,_0x4ab217,_0x23ac2d){var _0x4bb294={};var _0x1d5855={};var _0x16bcd7;var _0x530705;return db[_0x2c7e('0x40')]['findOne']({'where':{'id':_0x283d83[_0x2c7e('0x47')]['id']}})[_0x2c7e('0x28')](handleEntityNotFound(_0x4ab217,null))['then'](function(_0x19e383){if(_0x19e383){_0x16bcd7=_0x19e383;_0x1d5855[_0x2c7e('0x30')]=_[_0x2c7e('0x32')](db[_0x2c7e('0x64')][_0x2c7e('0x48')]);_0x1d5855[_0x2c7e('0x31')]=_[_0x2c7e('0x32')](_0x283d83[_0x2c7e('0x31')]);_0x1d5855[_0x2c7e('0x33')]=_[_0x2c7e('0x34')](_0x1d5855[_0x2c7e('0x30')],_0x1d5855[_0x2c7e('0x31')]);_0x4bb294['attributes']=_[_0x2c7e('0x34')](_0x1d5855['model'],qs[_0x2c7e('0x36')](_0x283d83['query'][_0x2c7e('0x36')]));_0x4bb294[_0x2c7e('0x35')]=_0x4bb294['attributes'][_0x2c7e('0x49')]?_0x4bb294['attributes']:_0x1d5855[_0x2c7e('0x30')];_0x4bb294['order']=qs['sort'](_0x283d83['query'][_0x2c7e('0x3a')]);_0x4bb294[_0x2c7e('0x3b')]=qs['filters'](_['pick'](_0x283d83[_0x2c7e('0x31')],_0x1d5855['filters']));if(_0x283d83[_0x2c7e('0x31')][_0x2c7e('0x3d')]){_0x4bb294[_0x2c7e('0x3b')]=_['merge'](_0x4bb294['where'],{'$or':_[_0x2c7e('0x2c')](_0x4bb294[_0x2c7e('0x35')],function(_0x78a16c){var _0x211d46={};_0x211d46[_0x78a16c]={'$like':'%'+_0x283d83['query'][_0x2c7e('0x3d')]+'%'};return _0x211d46;})});}_0x4bb294=_[_0x2c7e('0x4a')]({},_0x4bb294,_0x283d83[_0x2c7e('0x3f')]);return _0x16bcd7['getTeams'](_0x4bb294);}})['then'](function(_0x241378){if(_0x241378){_0x530705=_0x241378[_0x2c7e('0x49')];if(!_0x283d83[_0x2c7e('0x31')]['hasOwnProperty'](_0x2c7e('0x38'))){_0x4bb294['limit']=qs[_0x2c7e('0x1e')](_0x283d83[_0x2c7e('0x31')][_0x2c7e('0x1e')]);_0x4bb294[_0x2c7e('0x1c')]=qs[_0x2c7e('0x1c')](_0x283d83[_0x2c7e('0x31')][_0x2c7e('0x1c')]);}return _0x16bcd7[_0x2c7e('0x63')](_0x4bb294);}})[_0x2c7e('0x28')](function(_0x31c614){if(_0x31c614){return _0x31c614?{'count':_0x530705,'rows':_0x31c614}:null;}})[_0x2c7e('0x28')](respondWithResult(_0x4ab217,null))[_0x2c7e('0x45')](handleError(_0x4ab217,null));};exports['addTeams']=function(_0x5bb257,_0x564965,_0x5e7921){var _0x1fdd50=_0x5bb257[_0x2c7e('0x4d')][_0x2c7e('0x65')];return db['Team'][_0x2c7e('0x43')]({'where':{'id':_0x1fdd50},'attributes':['id'],'include':[{'model':db[_0x2c7e('0x5a')],'as':_0x2c7e('0x66'),'attributes':['id','name','online','voicePause',_0x2c7e('0x67')],'raw':!![]}]})['then'](function(_0x2fa253){if(_0x2fa253){var _0x3ba34e=_[_0x2c7e('0x68')](_0x2fa253,function(_0xd5f5bf){var _0x51133b=_0xd5f5bf['get']({'plain':!![]});return _0x51133b[_0x2c7e('0x66')];});return db[_0x2c7e('0x40')][_0x2c7e('0x4b')]({'where':{'id':_0x5bb257['params']['id']}})[_0x2c7e('0x28')](function(_0x4213d1){return db[_0x2c7e('0x69')][_0x2c7e('0x6a')](function(_0xa2420b){return _0x4213d1[_0x2c7e('0x6b')](_0x1fdd50,{'transaction':_0xa2420b})['then'](function(){return BPromise[_0x2c7e('0x6c')](_0x3ba34e,function(_0x234b82){return db[_0x2c7e('0x59')]['findOrCreate']({'where':{'UserId':_0x234b82['id'],'OpenchannelQueueId':_0x5bb257[_0x2c7e('0x47')]['id']},'transaction':_0xa2420b});});})['then'](function(){_0x3ba34e[_0x2c7e('0x6d')](function(_0x26bb3e){socket[_0x2c7e('0x6e')]('userOpenchannelQueue:save',{'UserId':_0x26bb3e['id'],'OpenchannelQueueId':_0x4213d1['id']});});});});});}})['then'](respondWithStatusCode(_0x564965,null))[_0x2c7e('0x45')](handleError(_0x564965,null));};exports[_0x2c7e('0x6f')]=function(_0x15356,_0x25b195,_0x561e52){return db[_0x2c7e('0x64')][_0x2c7e('0x43')]({'where':{'id':_0x15356['query'][_0x2c7e('0x65')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x2c7e('0x66'),'attributes':['id'],'raw':!![]}]})[_0x2c7e('0x28')](handleEntityNotFound(_0x25b195,null))[_0x2c7e('0x28')](function(_0x1002fb){var _0x193128=_[_0x2c7e('0x2c')](_0x1002fb,'id');var _0x2bc8e9=[];var _0xb5cf42=[];var _0x33d29a=squel[_0x2c7e('0x70')]();_0x33d29a['field'](_0x2c7e('0x71'))['from'](_0x2c7e('0x72'),'tq')[_0x2c7e('0x73')](_0x2c7e('0x74'),'ut',_0x2c7e('0x75'))[_0x2c7e('0x3b')](_0x2c7e('0x76'),_0x15356[_0x2c7e('0x47')]['id']);for(var _0x50644d=0x0;_0x50644d<_0x1002fb[_0x2c7e('0x49')];_0x50644d+=0x1){let _0x3b610d=_0x1002fb[_0x50644d];for(var _0x1f3f5a=0x0;_0x1f3f5a<_0x3b610d[_0x2c7e('0x66')][_0x2c7e('0x49')];_0x1f3f5a+=0x1){let _0x336237=_0x3b610d[_0x2c7e('0x66')][_0x1f3f5a];var _0x59bf21=_0x33d29a[_0x2c7e('0x77')]();_0x59bf21[_0x2c7e('0x3b')](_0x2c7e('0x78'),_0x336237['id']);_0xb5cf42['push'](db['sequelize'][_0x2c7e('0x31')](_0x59bf21[_0x2c7e('0x79')](),{'type':db[_0x2c7e('0x69')]['QueryTypes']['SELECT']})[_0x2c7e('0x28')](function(_0x432b08){if(_0x432b08[_0x2c7e('0x49')]===0x1){return _0x336237['id'];}else{var _0x32a9fd=_[_0x2c7e('0x7a')](_[_0x2c7e('0x2c')](_0x432b08,_0x2c7e('0x7b')),function(_0x3c21fb){return _['includes'](_0x193128,_0x3c21fb);});if(_0x32a9fd){return _0x336237['id'];}}}));}}return BPromise[_0x2c7e('0x7c')](_0xb5cf42)[_0x2c7e('0x28')](function(_0x4dc5b8){_0x2bc8e9=_(_0x2bc8e9)['union'](_0x4dc5b8)[_0x2c7e('0x7d')]()['value']();return db[_0x2c7e('0x40')][_0x2c7e('0x4b')]({'where':{'id':_0x15356[_0x2c7e('0x47')]['id']}})['then'](function(_0x599773){return db['sequelize'][_0x2c7e('0x6a')](function(_0x1361e1){return _0x599773[_0x2c7e('0x6f')](_0x15356['query']['ids'],{'transaction':_0x1361e1})[_0x2c7e('0x28')](function(){if(!_[_0x2c7e('0x7e')](_0x2bc8e9)){return _0x599773[_0x2c7e('0x7f')](_0x2bc8e9,{'transaction':_0x1361e1});}})[_0x2c7e('0x28')](function(){_0x2bc8e9[_0x2c7e('0x6d')](function(_0x2ad764){socket[_0x2c7e('0x6e')](_0x2c7e('0x80'),{'UserId':_0x2ad764,'OpenchannelQueueId':_0x599773['id']});});});});});});})[_0x2c7e('0x28')](respondWithStatusCode(_0x25b195,null))[_0x2c7e('0x45')](handleError(_0x25b195,null));};exports['addAgents']=function(_0x44a694,_0x4f4600,_0x3f29ee){return db['OpenchannelQueue']['find']({'where':{'id':_0x44a694['params']['id']}})['then'](handleEntityNotFound(_0x4f4600,null))[_0x2c7e('0x28')](function(_0x4e8adf){if(_0x4e8adf){return _0x4e8adf[_0x2c7e('0x81')](_0x44a694[_0x2c7e('0x4d')][_0x2c7e('0x65')],_['omit'](_0x44a694['body'],[_0x2c7e('0x65'),'id'])||{})[_0x2c7e('0x82')](function(_0x56615a){for(var _0x1bfa9e=0x0;_0x1bfa9e<_0x44a694[_0x2c7e('0x4d')][_0x2c7e('0x65')][_0x2c7e('0x49')];_0x1bfa9e+=0x1){socket[_0x2c7e('0x6e')](_0x2c7e('0x83'),{'UserId':Number(_0x44a694[_0x2c7e('0x4d')][_0x2c7e('0x65')][_0x1bfa9e]),'OpenchannelQueueId':Number(_0x44a694[_0x2c7e('0x47')]['id'])});}return _0x56615a;});}})[_0x2c7e('0x28')](respondWithResult(_0x4f4600,null))[_0x2c7e('0x45')](handleError(_0x4f4600,null));};exports[_0x2c7e('0x7f')]=function(_0x3d6125,_0x4efd5d,_0x4faa31){return db['OpenchannelQueue'][_0x2c7e('0x4b')]({'where':{'id':_0x3d6125[_0x2c7e('0x47')]['id']}})[_0x2c7e('0x28')](handleEntityNotFound(_0x4efd5d,null))[_0x2c7e('0x28')](function(_0xa473b7){if(_0xa473b7){return _0xa473b7[_0x2c7e('0x7f')](_0x3d6125['query'][_0x2c7e('0x65')])[_0x2c7e('0x28')](function(){if(_[_0x2c7e('0x84')](_0x3d6125[_0x2c7e('0x31')][_0x2c7e('0x65')])){for(var _0x33ed1e=0x0;_0x33ed1e<_0x3d6125['query']['ids'][_0x2c7e('0x49')];_0x33ed1e+=0x1){socket[_0x2c7e('0x6e')](_0x2c7e('0x80'),{'UserId':Number(_0x3d6125[_0x2c7e('0x31')][_0x2c7e('0x65')][_0x33ed1e]),'OpenchannelQueueId':Number(_0x3d6125['params']['id'])});}}else{socket['emit']('userOpenchannelQueue:remove',{'UserId':Number(_0x3d6125['query'][_0x2c7e('0x65')]),'OpenchannelQueueId':Number(_0x3d6125['params']['id'])});}});}})['then'](respondWithStatusCode(_0x4efd5d,null))['catch'](handleError(_0x4efd5d,null));};exports[_0x2c7e('0x85')]=function(_0x577cd2,_0x123dfe,_0x4d4ab2){var _0x45b7e5={};var _0x229cdf={};var _0x31f2ef;var _0x413e7c;return db['OpenchannelQueue'][_0x2c7e('0x58')]({'where':{'id':_0x577cd2[_0x2c7e('0x47')]['id']}})[_0x2c7e('0x28')](handleEntityNotFound(_0x123dfe,null))[_0x2c7e('0x28')](function(_0xa84b35){if(_0xa84b35){_0x31f2ef=_0xa84b35;_0x229cdf['model']=_[_0x2c7e('0x32')](db[_0x2c7e('0x5a')][_0x2c7e('0x48')]);_0x229cdf[_0x2c7e('0x31')]=_[_0x2c7e('0x32')](_0x577cd2[_0x2c7e('0x31')]);_0x229cdf[_0x2c7e('0x33')]=_[_0x2c7e('0x34')](_0x229cdf[_0x2c7e('0x30')],_0x229cdf[_0x2c7e('0x31')]);_0x45b7e5[_0x2c7e('0x35')]=_['intersection'](_0x229cdf[_0x2c7e('0x30')],qs['fields'](_0x577cd2[_0x2c7e('0x31')][_0x2c7e('0x36')]));_0x45b7e5[_0x2c7e('0x35')]=_0x45b7e5[_0x2c7e('0x35')][_0x2c7e('0x49')]?_0x45b7e5[_0x2c7e('0x35')]:_0x229cdf[_0x2c7e('0x30')];_0x45b7e5[_0x2c7e('0x39')]=qs[_0x2c7e('0x3a')](_0x577cd2['query']['sort']);_0x45b7e5['where']=qs['filters'](_[_0x2c7e('0x3c')](_0x577cd2['query'],_0x229cdf[_0x2c7e('0x33')]));if(_0x577cd2['query'][_0x2c7e('0x3d')]){_0x45b7e5[_0x2c7e('0x3b')]=_['merge'](_0x45b7e5[_0x2c7e('0x3b')],{'$or':_[_0x2c7e('0x2c')](_0x45b7e5[_0x2c7e('0x35')],function(_0x214e23){var _0x2ba8b2={};_0x2ba8b2[_0x214e23]={'$like':'%'+_0x577cd2['query'][_0x2c7e('0x3d')]+'%'};return _0x2ba8b2;})});}_0x45b7e5=_[_0x2c7e('0x4a')]({},_0x45b7e5,_0x577cd2[_0x2c7e('0x3f')]);return _0x31f2ef['getAgents'](_0x45b7e5);}})['then'](function(_0x4fe3cb){if(_0x4fe3cb){_0x413e7c=_0x4fe3cb[_0x2c7e('0x49')];if(!_0x577cd2[_0x2c7e('0x31')][_0x2c7e('0x37')](_0x2c7e('0x38'))){_0x45b7e5[_0x2c7e('0x1e')]=qs[_0x2c7e('0x1e')](_0x577cd2['query'][_0x2c7e('0x1e')]);_0x45b7e5[_0x2c7e('0x1c')]=qs[_0x2c7e('0x1c')](_0x577cd2['query'][_0x2c7e('0x1c')]);}return _0x31f2ef[_0x2c7e('0x85')](_0x45b7e5);}})[_0x2c7e('0x28')](function(_0x1f6696){if(_0x1f6696){return _0x1f6696?{'count':_0x413e7c,'rows':_0x1f6696}:null;}})['then'](respondWithResult(_0x123dfe,null))[_0x2c7e('0x45')](handleError(_0x123dfe,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d4c=['remove','emit','hook','exports','../../mysqldb','OpenchannelQueue','setMaxListeners','update'];(function(_0x43ed2c,_0x101979){var _0x2b3c06=function(_0x5a4134){while(--_0x5a4134){_0x43ed2c['push'](_0x43ed2c['shift']());}};_0x2b3c06(++_0x101979);}(_0x3d4c,0xf4));var _0xc3d4=function(_0x1cb11b,_0x5a6ce4){_0x1cb11b=_0x1cb11b-0x0;var _0x22dd28=_0x3d4c[_0x1cb11b];return _0x22dd28;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require(_0xc3d4('0x0'))['db'][_0xc3d4('0x1')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0xc3d4('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xc3d4('0x3'),'afterDestroy':_0xc3d4('0x4')};function emitEvent(_0x5dbdf6){return function(_0x41d02f,_0x5557e9,_0xcebc7f){OpenchannelQueueEvents[_0xc3d4('0x5')](_0x5dbdf6+':'+_0x41d02f['id'],_0x41d02f);OpenchannelQueueEvents[_0xc3d4('0x5')](_0x5dbdf6,_0x41d02f);_0xcebc7f(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0xc3d4('0x6')](e,emitEvent(event));}}module[_0xc3d4('0x7')]=OpenchannelQueueEvents;
\ No newline at end of file
+var _0x2fd3=['save','update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb','OpenchannelQueue','setMaxListeners'];(function(_0x51edca,_0x18ad70){var _0x2b77ec=function(_0x55a549){while(--_0x55a549){_0x51edca['push'](_0x51edca['shift']());}};_0x2b77ec(++_0x18ad70);}(_0x2fd3,0x1c9));var _0x32fd=function(_0x2c5ca5,_0xdb109b){_0x2c5ca5=_0x2c5ca5-0x0;var _0x511dbf=_0x2fd3[_0x2c5ca5];return _0x511dbf;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require(_0x32fd('0x0'))['db'][_0x32fd('0x1')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x32fd('0x2')](0x0);var events={'afterCreate':_0x32fd('0x3'),'afterUpdate':_0x32fd('0x4'),'afterDestroy':_0x32fd('0x5')};function emitEvent(_0x2a5bca){return function(_0xbd0bc3,_0x31b731,_0x35d0ce){OpenchannelQueueEvents[_0x32fd('0x6')](_0x2a5bca+':'+_0xbd0bc3['id'],_0xbd0bc3);OpenchannelQueueEvents[_0x32fd('0x6')](_0x2a5bca,_0xbd0bc3);_0x35d0ce(null);};}for(var e in events){if(events[_0x32fd('0x7')](e)){var event=events[e];OpenchannelQueue[_0x32fd('0x8')](e,emitEvent(event));}}module[_0x32fd('0x9')]=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dae=['openchannel_queues','lodash','util','../../config/logger','rimraf','exports','OpenchannelQueue'];(function(_0x4605a6,_0x4ee25f){var _0x18bc7a=function(_0x2f1228){while(--_0x2f1228){_0x4605a6['push'](_0x4605a6['shift']());}};_0x18bc7a(++_0x4ee25f);}(_0x4dae,0x13c));var _0xe4da=function(_0x28addc,_0x3d5a1c){_0x28addc=_0x28addc-0x0;var _0x7424c7=_0x4dae[_0x28addc];return _0x7424c7;};'use strict';var _=require(_0xe4da('0x0'));var util=require(_0xe4da('0x1'));var logger=require(_0xe4da('0x2'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xe4da('0x3'));var config=require('../../config/environment');var attributes=require('./openchannelQueue.attributes');module[_0xe4da('0x4')]=function(_0x53ff24,_0x9d671e){return _0x53ff24['define'](_0xe4da('0x5'),attributes,{'tableName':_0xe4da('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3348=['bluebird','path','rimraf','exports','OpenchannelQueue','lodash','util','api','moment'];(function(_0x1917ae,_0x1b74a6){var _0x998edd=function(_0x13fe81){while(--_0x13fe81){_0x1917ae['push'](_0x1917ae['shift']());}};_0x998edd(++_0x1b74a6);}(_0x3348,0x1d9));var _0x8334=function(_0x44bb1b,_0x529dd3){_0x44bb1b=_0x44bb1b-0x0;var _0x43fc3a=_0x3348[_0x44bb1b];return _0x43fc3a;};'use strict';var _=require(_0x8334('0x0'));var util=require(_0x8334('0x1'));var logger=require('../../config/logger')(_0x8334('0x2'));var moment=require(_0x8334('0x3'));var BPromise=require(_0x8334('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8334('0x5'));var rimraf=require(_0x8334('0x6'));var config=require('../../config/environment');var attributes=require('./openchannelQueue.attributes');module[_0x8334('0x7')]=function(_0x41f1d8,_0xc5a580){return _0x41f1d8['define'](_0x8334('0x8'),attributes,{'tableName':'openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e7b=['OpenchannelQueue','findAll','options','raw','where','attributes','limit','include','map','model','catch','ShowOpenchannelQueue','find','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','request','then','info','OpenchannelQueue,\x20%s,\x20%s','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','GetOpenchannelQueue'];(function(_0x4e6fb2,_0x3cf23e){var _0x2f1636=function(_0x53c7eb){while(--_0x53c7eb){_0x4e6fb2['push'](_0x4e6fb2['shift']());}};_0x2f1636(++_0x3cf23e);}(_0x8e7b,0x1af));var _0xb8e7=function(_0x7e2eb0,_0x17cd58){_0x7e2eb0=_0x7e2eb0-0x0;var _0xd92de4=_0x8e7b[_0x7e2eb0];return _0xd92de4;};'use strict';var _=require(_0xb8e7('0x0'));var util=require(_0xb8e7('0x1'));var moment=require('moment');var BPromise=require(_0xb8e7('0x2'));var rs=require(_0xb8e7('0x3'));var fs=require('fs');var Redis=require(_0xb8e7('0x4'));var db=require(_0xb8e7('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xb8e7('0x6'))('rpc');var config=require(_0xb8e7('0x7'));var jayson=require(_0xb8e7('0x8'));var client=jayson['client'][_0xb8e7('0x9')]({'port':0x232a});config[_0xb8e7('0xa')]=_['defaults'](config[_0xb8e7('0xa')],{'host':_0xb8e7('0xb'),'port':0x18eb});var socket=require(_0xb8e7('0xc'))(new Redis(config['redis']));require('./openchannelQueue.socket')['register'](socket);function respondWithRpcPromise(_0xb86b1,_0x273aea,_0x4205df){return new BPromise(function(_0x145155,_0xf6eef3){return client[_0xb8e7('0xd')](_0xb86b1,_0x4205df)[_0xb8e7('0xe')](function(_0x33a6ef){logger[_0xb8e7('0xf')](_0xb8e7('0x10'),_0x273aea,'request\x20sent');logger[_0xb8e7('0x11')](_0xb8e7('0x12'),_0x273aea,'request\x20sent',JSON[_0xb8e7('0x13')](_0x33a6ef));if(_0x33a6ef[_0xb8e7('0x14')]){if(_0x33a6ef['error'][_0xb8e7('0x15')]===0x1f4){logger[_0xb8e7('0x14')]('OpenchannelQueue,\x20%s,\x20%s',_0x273aea,_0x33a6ef[_0xb8e7('0x14')][_0xb8e7('0x16')]);return _0xf6eef3(_0x33a6ef[_0xb8e7('0x14')][_0xb8e7('0x16')]);}logger[_0xb8e7('0x14')](_0xb8e7('0x10'),_0x273aea,_0x33a6ef[_0xb8e7('0x14')][_0xb8e7('0x16')]);return _0x145155(_0x33a6ef[_0xb8e7('0x14')]['message']);}else{logger[_0xb8e7('0xf')](_0xb8e7('0x10'),_0x273aea,_0xb8e7('0x17'));_0x145155(_0x33a6ef['result'][_0xb8e7('0x16')]);}})['catch'](function(_0x1148a1){logger[_0xb8e7('0x14')]('OpenchannelQueue,\x20%s,\x20%s',_0x273aea,_0x1148a1);_0xf6eef3(_0x1148a1);});});}exports[_0xb8e7('0x18')]=function(_0xc5ed17){var _0x5e3d18=this;return new Promise(function(_0x5cc8db,_0x3037ac){return db[_0xb8e7('0x19')][_0xb8e7('0x1a')]({'raw':_0xc5ed17['options']?_0xc5ed17[_0xb8e7('0x1b')][_0xb8e7('0x1c')]===undefined?!![]:![]:!![],'where':_0xc5ed17['options']?_0xc5ed17[_0xb8e7('0x1b')][_0xb8e7('0x1d')]||null:null,'attributes':_0xc5ed17['options']?_0xc5ed17[_0xb8e7('0x1b')][_0xb8e7('0x1e')]||null:null,'limit':_0xc5ed17[_0xb8e7('0x1b')]?_0xc5ed17[_0xb8e7('0x1b')][_0xb8e7('0x1f')]||null:null,'include':_0xc5ed17[_0xb8e7('0x1b')]?_0xc5ed17['options'][_0xb8e7('0x20')]?_[_0xb8e7('0x21')](_0xc5ed17['options'][_0xb8e7('0x20')],function(_0x41345b){return{'model':db[_0x41345b[_0xb8e7('0x22')]],'as':_0x41345b['as'],'attributes':_0x41345b['attributes'],'include':_0x41345b[_0xb8e7('0x20')]?_[_0xb8e7('0x21')](_0x41345b[_0xb8e7('0x20')],function(_0x51d2ae){return{'model':db[_0x51d2ae['model']],'as':_0x51d2ae['as'],'attributes':_0x51d2ae[_0xb8e7('0x1e')],'include':_0x51d2ae[_0xb8e7('0x20')]?_['map'](_0x51d2ae[_0xb8e7('0x20')],function(_0x3dd0cc){return{'model':db[_0x3dd0cc['model']],'as':_0x3dd0cc['as'],'attributes':_0x3dd0cc[_0xb8e7('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2a74e1){logger[_0xb8e7('0xf')](_0xb8e7('0x18'),_0xc5ed17);logger[_0xb8e7('0x11')](_0xb8e7('0x18'),_0xc5ed17,JSON['stringify'](_0x2a74e1));_0x5cc8db(_0x2a74e1);})[_0xb8e7('0x23')](function(_0x3bc824){logger[_0xb8e7('0x14')](_0xb8e7('0x18'),_0x3bc824[_0xb8e7('0x16')],_0xc5ed17);_0x3037ac(_0x5e3d18[_0xb8e7('0x14')](0x1f4,_0x3bc824[_0xb8e7('0x16')]));});});};exports[_0xb8e7('0x24')]=function(_0x25add8){var _0x4af46a=this;return new Promise(function(_0x4a59ae,_0x178d5d){return db[_0xb8e7('0x19')][_0xb8e7('0x25')]({'raw':_0x25add8[_0xb8e7('0x1b')]?_0x25add8['options'][_0xb8e7('0x1c')]===undefined?!![]:![]:!![],'where':_0x25add8[_0xb8e7('0x1b')]?_0x25add8[_0xb8e7('0x1b')]['where']||null:null,'attributes':_0x25add8[_0xb8e7('0x1b')]?_0x25add8['options']['attributes']||null:null,'include':_0x25add8[_0xb8e7('0x1b')]?_0x25add8[_0xb8e7('0x1b')][_0xb8e7('0x20')]?_[_0xb8e7('0x21')](_0x25add8[_0xb8e7('0x1b')]['include'],function(_0x2f46e6){return{'model':db[_0x2f46e6[_0xb8e7('0x22')]],'as':_0x2f46e6['as'],'attributes':_0x2f46e6[_0xb8e7('0x1e')],'include':_0x2f46e6[_0xb8e7('0x20')]?_[_0xb8e7('0x21')](_0x2f46e6[_0xb8e7('0x20')],function(_0x5c41f0){return{'model':db[_0x5c41f0[_0xb8e7('0x22')]],'as':_0x5c41f0['as'],'attributes':_0x5c41f0[_0xb8e7('0x1e')],'include':_0x5c41f0[_0xb8e7('0x20')]?_[_0xb8e7('0x21')](_0x5c41f0[_0xb8e7('0x20')],function(_0x1c25d9){return{'model':db[_0x1c25d9[_0xb8e7('0x22')]],'as':_0x1c25d9['as'],'attributes':_0x1c25d9[_0xb8e7('0x1e')]};}):[]};}):[]};}):[]:[]})[_0xb8e7('0xe')](function(_0x118f0a){logger['info']('ShowOpenchannelQueue',_0x25add8);logger['debug'](_0xb8e7('0x24'),_0x25add8,JSON['stringify'](_0x118f0a));_0x4a59ae(_0x118f0a);})[_0xb8e7('0x23')](function(_0x4d5534){logger[_0xb8e7('0x14')](_0xb8e7('0x24'),_0x4d5534[_0xb8e7('0x16')],_0x25add8);_0x178d5d(_0x4af46a[_0xb8e7('0x14')](0x1f4,_0x4d5534['message']));});});};
\ No newline at end of file
+var _0xe668=['code','message','result','catch','OpenchannelQueue','findAll','options','raw','where','attributes','limit','map','include','model','GetOpenchannelQueue','ShowOpenchannelQueue','find','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','then','info','OpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x27845e,_0x2d79b){var _0x1e4508=function(_0x145983){while(--_0x145983){_0x27845e['push'](_0x27845e['shift']());}};_0x1e4508(++_0x2d79b);}(_0xe668,0x1e5));var _0x8e66=function(_0x1e896c,_0x3f9948){_0x1e896c=_0x1e896c-0x0;var _0xd149d9=_0xe668[_0x1e896c];return _0xd149d9;};'use strict';var _=require('lodash');var util=require(_0x8e66('0x0'));var moment=require('moment');var BPromise=require(_0x8e66('0x1'));var rs=require(_0x8e66('0x2'));var fs=require('fs');var Redis=require(_0x8e66('0x3'));var db=require(_0x8e66('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8e66('0x5'))('rpc');var config=require(_0x8e66('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x8e66('0x7')]['http']({'port':0x232a});config[_0x8e66('0x8')]=_[_0x8e66('0x9')](config[_0x8e66('0x8')],{'host':_0x8e66('0xa'),'port':0x18eb});var socket=require(_0x8e66('0xb'))(new Redis(config[_0x8e66('0x8')]));require(_0x8e66('0xc'))[_0x8e66('0xd')](socket);function respondWithRpcPromise(_0x31195c,_0x50ab26,_0xaa754e){return new BPromise(function(_0x587274,_0x3cb24e){return client['request'](_0x31195c,_0xaa754e)[_0x8e66('0xe')](function(_0x223341){logger[_0x8e66('0xf')](_0x8e66('0x10'),_0x50ab26,_0x8e66('0x11'));logger[_0x8e66('0x12')](_0x8e66('0x13'),_0x50ab26,_0x8e66('0x11'),JSON[_0x8e66('0x14')](_0x223341));if(_0x223341[_0x8e66('0x15')]){if(_0x223341[_0x8e66('0x15')][_0x8e66('0x16')]===0x1f4){logger[_0x8e66('0x15')](_0x8e66('0x10'),_0x50ab26,_0x223341[_0x8e66('0x15')][_0x8e66('0x17')]);return _0x3cb24e(_0x223341['error'][_0x8e66('0x17')]);}logger['error'](_0x8e66('0x10'),_0x50ab26,_0x223341[_0x8e66('0x15')][_0x8e66('0x17')]);return _0x587274(_0x223341[_0x8e66('0x15')][_0x8e66('0x17')]);}else{logger[_0x8e66('0xf')](_0x8e66('0x10'),_0x50ab26,_0x8e66('0x11'));_0x587274(_0x223341[_0x8e66('0x18')]['message']);}})[_0x8e66('0x19')](function(_0x3d5f74){logger[_0x8e66('0x15')]('OpenchannelQueue,\x20%s,\x20%s',_0x50ab26,_0x3d5f74);_0x3cb24e(_0x3d5f74);});});}exports['GetOpenchannelQueue']=function(_0x48b612){var _0xf6885c=this;return new Promise(function(_0x3403f8,_0x593f99){return db[_0x8e66('0x1a')][_0x8e66('0x1b')]({'raw':_0x48b612['options']?_0x48b612[_0x8e66('0x1c')][_0x8e66('0x1d')]===undefined?!![]:![]:!![],'where':_0x48b612[_0x8e66('0x1c')]?_0x48b612[_0x8e66('0x1c')][_0x8e66('0x1e')]||null:null,'attributes':_0x48b612['options']?_0x48b612['options'][_0x8e66('0x1f')]||null:null,'limit':_0x48b612[_0x8e66('0x1c')]?_0x48b612[_0x8e66('0x1c')][_0x8e66('0x20')]||null:null,'include':_0x48b612[_0x8e66('0x1c')]?_0x48b612[_0x8e66('0x1c')]['include']?_[_0x8e66('0x21')](_0x48b612[_0x8e66('0x1c')][_0x8e66('0x22')],function(_0x34c1bc){return{'model':db[_0x34c1bc[_0x8e66('0x23')]],'as':_0x34c1bc['as'],'attributes':_0x34c1bc['attributes'],'include':_0x34c1bc['include']?_['map'](_0x34c1bc[_0x8e66('0x22')],function(_0x4754ae){return{'model':db[_0x4754ae[_0x8e66('0x23')]],'as':_0x4754ae['as'],'attributes':_0x4754ae[_0x8e66('0x1f')],'include':_0x4754ae['include']?_['map'](_0x4754ae['include'],function(_0x28a3a8){return{'model':db[_0x28a3a8['model']],'as':_0x28a3a8['as'],'attributes':_0x28a3a8[_0x8e66('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xe16894){logger[_0x8e66('0xf')](_0x8e66('0x24'),_0x48b612);logger[_0x8e66('0x12')](_0x8e66('0x24'),_0x48b612,JSON[_0x8e66('0x14')](_0xe16894));_0x3403f8(_0xe16894);})[_0x8e66('0x19')](function(_0x3fc0d7){logger[_0x8e66('0x15')](_0x8e66('0x24'),_0x3fc0d7[_0x8e66('0x17')],_0x48b612);_0x593f99(_0xf6885c[_0x8e66('0x15')](0x1f4,_0x3fc0d7[_0x8e66('0x17')]));});});};exports[_0x8e66('0x25')]=function(_0x441139){var _0x101d1f=this;return new Promise(function(_0x1d16aa,_0x46f79e){return db[_0x8e66('0x1a')][_0x8e66('0x26')]({'raw':_0x441139[_0x8e66('0x1c')]?_0x441139[_0x8e66('0x1c')][_0x8e66('0x1d')]===undefined?!![]:![]:!![],'where':_0x441139[_0x8e66('0x1c')]?_0x441139[_0x8e66('0x1c')][_0x8e66('0x1e')]||null:null,'attributes':_0x441139[_0x8e66('0x1c')]?_0x441139['options'][_0x8e66('0x1f')]||null:null,'include':_0x441139[_0x8e66('0x1c')]?_0x441139['options'][_0x8e66('0x22')]?_['map'](_0x441139[_0x8e66('0x1c')][_0x8e66('0x22')],function(_0x54aef1){return{'model':db[_0x54aef1['model']],'as':_0x54aef1['as'],'attributes':_0x54aef1[_0x8e66('0x1f')],'include':_0x54aef1['include']?_[_0x8e66('0x21')](_0x54aef1[_0x8e66('0x22')],function(_0x1dbc47){return{'model':db[_0x1dbc47[_0x8e66('0x23')]],'as':_0x1dbc47['as'],'attributes':_0x1dbc47['attributes'],'include':_0x1dbc47[_0x8e66('0x22')]?_[_0x8e66('0x21')](_0x1dbc47[_0x8e66('0x22')],function(_0x387e72){return{'model':db[_0x387e72[_0x8e66('0x23')]],'as':_0x387e72['as'],'attributes':_0x387e72[_0x8e66('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x8e66('0xe')](function(_0x36692d){logger[_0x8e66('0xf')](_0x8e66('0x25'),_0x441139);logger[_0x8e66('0x12')](_0x8e66('0x25'),_0x441139,JSON[_0x8e66('0x14')](_0x36692d));_0x1d16aa(_0x36692d);})[_0x8e66('0x19')](function(_0x1db020){logger[_0x8e66('0x15')](_0x8e66('0x25'),_0x1db020[_0x8e66('0x17')],_0x441139);_0x46f79e(_0x101d1f['error'](0x1f4,_0x1db020[_0x8e66('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf305=['openchannelQueue:','save','emit','removeListener','register','length'];(function(_0x50de33,_0x4c68cd){var _0x2e973c=function(_0x372e9e){while(--_0x372e9e){_0x50de33['push'](_0x50de33['shift']());}};_0x2e973c(++_0x4c68cd);}(_0xf305,0x1ab));var _0x5f30=function(_0xf31767,_0x381746){_0xf31767=_0xf31767-0x0;var _0x24bd0c=_0xf305[_0xf31767];return _0x24bd0c;};'use strict';var OpenchannelQueueEvents=require('./openchannelQueue.events');var events=[_0x5f30('0x0'),'remove','update'];function createListener(_0x1ff73c,_0x428181){return function(_0x3e6355){_0x428181[_0x5f30('0x1')](_0x1ff73c,_0x3e6355);};}function removeListener(_0x3fd6ac,_0x319abb){return function(){OpenchannelQueueEvents[_0x5f30('0x2')](_0x3fd6ac,_0x319abb);};}exports[_0x5f30('0x3')]=function(_0x35085a){for(var _0x734e02=0x0,_0x3c1cdd=events[_0x5f30('0x4')];_0x734e02<_0x3c1cdd;_0x734e02++){var _0x184b07=events[_0x734e02];var _0x1ce2b6=createListener(_0x5f30('0x5')+_0x184b07,_0x35085a);OpenchannelQueueEvents['on'](_0x184b07,_0x1ce2b6);}};
\ No newline at end of file
+var _0x5238=['emit','register','length','openchannelQueue:','./openchannelQueue.events'];(function(_0x4fde08,_0x463a36){var _0x12e725=function(_0x2670c5){while(--_0x2670c5){_0x4fde08['push'](_0x4fde08['shift']());}};_0x12e725(++_0x463a36);}(_0x5238,0x68));var _0x8523=function(_0x359622,_0x19d86b){_0x359622=_0x359622-0x0;var _0x48059f=_0x5238[_0x359622];return _0x48059f;};'use strict';var OpenchannelQueueEvents=require(_0x8523('0x0'));var events=['save','remove','update'];function createListener(_0x19d3b2,_0x357c3a){return function(_0x3b8f40){_0x357c3a[_0x8523('0x1')](_0x19d3b2,_0x3b8f40);};}function removeListener(_0x16329a,_0x398552){return function(){OpenchannelQueueEvents['removeListener'](_0x16329a,_0x398552);};}exports[_0x8523('0x2')]=function(_0x34236d){for(var _0x320b92=0x0,_0x56c493=events[_0x8523('0x3')];_0x320b92<_0x56c493;_0x320b92++){var _0x31434c=events[_0x320b92];var _0x510203=createListener(_0x8523('0x4')+_0x31434c,_0x34236d);OpenchannelQueueEvents['on'](_0x31434c,_0x510203);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4de=['/:id','show','post','create','put','update','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated','get','/describe'];(function(_0x48e637,_0x447453){var _0x437e08=function(_0x56886a){while(--_0x56886a){_0x48e637['push'](_0x48e637['shift']());}};_0x437e08(++_0x447453);}(_0xa4de,0x125));var _0xea4d=function(_0x3ed471,_0x37ff57){_0x3ed471=_0x3ed471-0x0;var _0x3f180e=_0xa4de[_0x3ed471];return _0x3f180e;};'use strict';var multer=require(_0xea4d('0x0'));var util=require('util');var path=require(_0xea4d('0x1'));var timeout=require(_0xea4d('0x2'));var express=require(_0xea4d('0x3'));var router=express[_0xea4d('0x4')]();var fs_extra=require(_0xea4d('0x5'));var auth=require(_0xea4d('0x6'));var interaction=require(_0xea4d('0x7'));var config=require('../../config/environment');var controller=require('./openchannelQueueReport.controller');router['get']('/',auth[_0xea4d('0x8')](),controller['index']);router[_0xea4d('0x9')](_0xea4d('0xa'),auth[_0xea4d('0x8')](),controller['describe']);router[_0xea4d('0x9')](_0xea4d('0xb'),auth[_0xea4d('0x8')](),controller[_0xea4d('0xc')]);router[_0xea4d('0xd')]('/',auth[_0xea4d('0x8')](),controller[_0xea4d('0xe')]);router[_0xea4d('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xea4d('0x10')]);router[_0xea4d('0x11')](_0xea4d('0xb'),auth[_0xea4d('0x8')](),controller[_0xea4d('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0xf899=['show','post','create','put','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','./openchannelQueueReport.controller','get','isAuthenticated','index','/describe','describe','/:id'];(function(_0x155b49,_0x541af2){var _0x213bf3=function(_0x464d9a){while(--_0x464d9a){_0x155b49['push'](_0x155b49['shift']());}};_0x213bf3(++_0x541af2);}(_0xf899,0x1d3));var _0x9f89=function(_0xb8a63f,_0x52fa0f){_0xb8a63f=_0xb8a63f-0x0;var _0x2dff69=_0xf899[_0xb8a63f];return _0x2dff69;};'use strict';var multer=require(_0x9f89('0x0'));var util=require(_0x9f89('0x1'));var path=require('path');var timeout=require(_0x9f89('0x2'));var express=require(_0x9f89('0x3'));var router=express[_0x9f89('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x9f89('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x9f89('0x6'));router[_0x9f89('0x7')]('/',auth[_0x9f89('0x8')](),controller[_0x9f89('0x9')]);router[_0x9f89('0x7')](_0x9f89('0xa'),auth[_0x9f89('0x8')](),controller[_0x9f89('0xb')]);router[_0x9f89('0x7')](_0x9f89('0xc'),auth[_0x9f89('0x8')](),controller[_0x9f89('0xd')]);router[_0x9f89('0xe')]('/',auth[_0x9f89('0x8')](),controller[_0x9f89('0xf')]);router[_0x9f89('0x10')](_0x9f89('0xc'),auth['isAuthenticated'](),controller['update']);router[_0x9f89('0x11')](_0x9f89('0xc'),auth['isAuthenticated'](),controller[_0x9f89('0x12')]);module[_0x9f89('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc0c=['exports','STRING','DATE','moment','sequelize'];(function(_0xbe40ad,_0x44343c){var _0x50fac9=function(_0xdaed07){while(--_0xdaed07){_0xbe40ad['push'](_0xbe40ad['shift']());}};_0x50fac9(++_0x44343c);}(_0xcc0c,0x102));var _0xccc0=function(_0x1cd65a,_0x29fa8f){_0x1cd65a=_0x1cd65a-0x0;var _0xf93849=_0xcc0c[_0x1cd65a];return _0xf93849;};'use strict';var moment=require(_0xccc0('0x0'));var Sequelize=require(_0xccc0('0x1'));module[_0xccc0('0x2')]={'uniqueid':{'type':Sequelize[_0xccc0('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0xccc0('0x3')]},'joinAt':{'type':Sequelize[_0xccc0('0x4')]},'leaveAt':{'type':Sequelize[_0xccc0('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0xccc0('0x4')]},'reason':{'type':Sequelize[_0xccc0('0x3')]}};
\ No newline at end of file
+var _0x8255=['sequelize','exports','STRING','DATE','moment'];(function(_0x4b97d1,_0xe709a1){var _0x122d22=function(_0x5532cd){while(--_0x5532cd){_0x4b97d1['push'](_0x4b97d1['shift']());}};_0x122d22(++_0xe709a1);}(_0x8255,0x176));var _0x5825=function(_0x220b34,_0x15dfa){_0x220b34=_0x220b34-0x0;var _0x2821b6=_0x8255[_0x220b34];return _0x2821b6;};'use strict';var moment=require(_0x5825('0x0'));var Sequelize=require(_0x5825('0x1'));module[_0x5825('0x2')]={'uniqueid':{'type':Sequelize[_0x5825('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x5825('0x3')]},'joinAt':{'type':Sequelize[_0x5825('0x4')]},'leaveAt':{'type':Sequelize[_0x5825('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b36=['to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','undefined','limit','count','offset','json','apply','reject','save','update','then','destroy','end','sendStatus','error','name','send','index','map','OpenchannelQueueReport','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','findAll','catch','show','params','include','find','create','body','describe','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox'];(function(_0x366277,_0x1251e0){var _0x9419c0=function(_0x5d9033){while(--_0x5d9033){_0x366277['push'](_0x366277['shift']());}};_0x9419c0(++_0x1251e0);}(_0x6b36,0x8f));var _0x66b3=function(_0x421cd8,_0x339533){_0x421cd8=_0x421cd8-0x0;var _0x547b02=_0x6b36[_0x421cd8];return _0x547b02;};'use strict';var emlformat=require(_0x66b3('0x0'));var rimraf=require(_0x66b3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x66b3('0x2'));var rp=require('request-promise');var moment=require(_0x66b3('0x3'));var BPromise=require(_0x66b3('0x4'));var Mustache=require(_0x66b3('0x5'));var util=require(_0x66b3('0x6'));var path=require(_0x66b3('0x7'));var sox=require(_0x66b3('0x8'));var csv=require(_0x66b3('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x66b3('0xa'));var _=require('lodash');var squel=require(_0x66b3('0xb'));var crypto=require(_0x66b3('0xc'));var jsforce=require(_0x66b3('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x66b3('0x9'));var querystring=require(_0x66b3('0xe'));var Papa=require(_0x66b3('0xf'));var Redis=require(_0x66b3('0x10'));var authService=require(_0x66b3('0x11'));var qs=require(_0x66b3('0x12'));var as=require(_0x66b3('0x13'));var hardwareService=require(_0x66b3('0x14'));var logger=require(_0x66b3('0x15'))(_0x66b3('0x16'));var utils=require(_0x66b3('0x17'));var config=require(_0x66b3('0x18'));var licenseUtil=require(_0x66b3('0x19'));var db=require(_0x66b3('0x1a'))['db'];function respondWithStatusCode(_0x2ac7b0,_0x4035f5){_0x4035f5=_0x4035f5||0xcc;return function(_0x58c395){if(_0x58c395){return _0x2ac7b0['sendStatus'](_0x4035f5);}return _0x2ac7b0[_0x66b3('0x1b')](_0x4035f5)['end']();};}function respondWithResult(_0x3c6df8,_0x13a614){_0x13a614=_0x13a614||0xc8;return function(_0x566314){if(_0x566314){return _0x3c6df8['status'](_0x13a614)['json'](_0x566314);}};}function respondWithFilteredResult(_0x1d59e2,_0x4d99b9){return function(_0x6fbedc){if(_0x6fbedc){var _0x1fe364=typeof _0x4d99b9['offset']===_0x66b3('0x1c')&&typeof _0x4d99b9[_0x66b3('0x1d')]==='undefined';var _0x2fdd22=_0x6fbedc[_0x66b3('0x1e')];var _0x5c72d6=_0x1fe364?0x0:_0x4d99b9[_0x66b3('0x1f')];var _0xe3dacc=_0x1fe364?_0x6fbedc[_0x66b3('0x1e')]:_0x4d99b9['offset']+_0x4d99b9['limit'];var _0x2cffb9;if(_0xe3dacc>=_0x2fdd22){_0xe3dacc=_0x2fdd22;_0x2cffb9=0xc8;}else{_0x2cffb9=0xce;}_0x1d59e2['status'](_0x2cffb9);return _0x1d59e2['set']('Content-Range',_0x5c72d6+'-'+_0xe3dacc+'/'+_0x2fdd22)[_0x66b3('0x20')](_0x6fbedc);}return null;};}function patchUpdates(_0x1d99cc){return function(_0x8e57cd){try{jsonpatch[_0x66b3('0x21')](_0x8e57cd,_0x1d99cc,!![]);}catch(_0x1add83){return BPromise[_0x66b3('0x22')](_0x1add83);}return _0x8e57cd[_0x66b3('0x23')]();};}function saveUpdates(_0x351556,_0x2f8fe7){return function(_0x53a1a4){if(_0x53a1a4){return _0x53a1a4[_0x66b3('0x24')](_0x351556)[_0x66b3('0x25')](function(_0x2e054b){return _0x2e054b;});}return null;};}function removeEntity(_0x2d6f90,_0x4767d4){return function(_0x5dc757){if(_0x5dc757){return _0x5dc757[_0x66b3('0x26')]()[_0x66b3('0x25')](function(){_0x2d6f90[_0x66b3('0x1b')](0xcc)[_0x66b3('0x27')]();});}};}function handleEntityNotFound(_0x4241ab,_0x180168){return function(_0x497ea7){if(!_0x497ea7){_0x4241ab[_0x66b3('0x28')](0x194);}return _0x497ea7;};}function handleError(_0x2237e3,_0x16d97d){_0x16d97d=_0x16d97d||0x1f4;return function(_0x4edf45){logger[_0x66b3('0x29')](_0x4edf45['stack']);if(_0x4edf45['name']){delete _0x4edf45[_0x66b3('0x2a')];}_0x2237e3[_0x66b3('0x1b')](_0x16d97d)[_0x66b3('0x2b')](_0x4edf45);};}exports[_0x66b3('0x2c')]=function(_0x1279be,_0x58baff){var _0x5f2620={},_0x4b815f={},_0x35594f={'count':0x0,'rows':[]};var _0x3c4d44=_[_0x66b3('0x2d')](db[_0x66b3('0x2e')]['rawAttributes'],function(_0x29af84){return{'name':_0x29af84[_0x66b3('0x2f')],'type':_0x29af84[_0x66b3('0x30')][_0x66b3('0x31')]};});_0x4b815f['model']=_[_0x66b3('0x2d')](_0x3c4d44,_0x66b3('0x2a'));_0x4b815f[_0x66b3('0x32')]=_[_0x66b3('0x33')](_0x1279be['query']);_0x4b815f[_0x66b3('0x34')]=_[_0x66b3('0x35')](_0x4b815f[_0x66b3('0x36')],_0x4b815f[_0x66b3('0x32')]);_0x5f2620[_0x66b3('0x37')]=_[_0x66b3('0x35')](_0x4b815f[_0x66b3('0x36')],qs[_0x66b3('0x38')](_0x1279be[_0x66b3('0x32')]['fields']));_0x5f2620[_0x66b3('0x37')]=_0x5f2620['attributes'][_0x66b3('0x39')]?_0x5f2620[_0x66b3('0x37')]:_0x4b815f[_0x66b3('0x36')];if(!_0x1279be['query'][_0x66b3('0x3a')](_0x66b3('0x3b'))){_0x5f2620[_0x66b3('0x1d')]=qs['limit'](_0x1279be[_0x66b3('0x32')][_0x66b3('0x1d')]);_0x5f2620[_0x66b3('0x1f')]=qs[_0x66b3('0x1f')](_0x1279be[_0x66b3('0x32')]['offset']);}_0x5f2620[_0x66b3('0x3c')]=qs[_0x66b3('0x3d')](_0x1279be[_0x66b3('0x32')][_0x66b3('0x3d')]);_0x5f2620['where']=qs[_0x66b3('0x34')](_[_0x66b3('0x3e')](_0x1279be['query'],_0x4b815f[_0x66b3('0x34')]),_0x3c4d44);if(_0x1279be[_0x66b3('0x32')][_0x66b3('0x3f')]){_0x5f2620[_0x66b3('0x40')]=_[_0x66b3('0x41')](_0x5f2620[_0x66b3('0x40')],{'$or':_[_0x66b3('0x2d')](_0x3c4d44,function(_0x4e1e9a){if(_0x4e1e9a[_0x66b3('0x30')]!=='VIRTUAL'){var _0x2d55bf={};_0x2d55bf[_0x4e1e9a[_0x66b3('0x2a')]]={'$like':'%'+_0x1279be[_0x66b3('0x32')]['filter']+'%'};return _0x2d55bf;}})});}_0x5f2620=_[_0x66b3('0x41')]({},_0x5f2620,_0x1279be[_0x66b3('0x42')]);var _0x343ff8={'where':_0x5f2620[_0x66b3('0x40')]};return db[_0x66b3('0x2e')][_0x66b3('0x1e')](_0x343ff8)[_0x66b3('0x25')](function(_0x166eaf){_0x35594f[_0x66b3('0x1e')]=_0x166eaf;if(_0x1279be[_0x66b3('0x32')]['includeAll']){_0x5f2620['include']=[{'all':!![]}];}return db['OpenchannelQueueReport'][_0x66b3('0x43')](_0x5f2620);})['then'](function(_0x55bda8){_0x35594f['rows']=_0x55bda8;return _0x35594f;})['then'](respondWithFilteredResult(_0x58baff,_0x5f2620))[_0x66b3('0x44')](handleError(_0x58baff,null));};exports[_0x66b3('0x45')]=function(_0x7df65b,_0x341d36){var _0x24a804={'raw':!![],'where':{'id':_0x7df65b[_0x66b3('0x46')]['id']}},_0x10acef={};_0x10acef['model']=_[_0x66b3('0x33')](db[_0x66b3('0x2e')]['rawAttributes']);_0x10acef[_0x66b3('0x32')]=_[_0x66b3('0x33')](_0x7df65b[_0x66b3('0x32')]);_0x10acef['filters']=_[_0x66b3('0x35')](_0x10acef['model'],_0x10acef[_0x66b3('0x32')]);_0x24a804[_0x66b3('0x37')]=_[_0x66b3('0x35')](_0x10acef['model'],qs['fields'](_0x7df65b[_0x66b3('0x32')][_0x66b3('0x38')]));_0x24a804['attributes']=_0x24a804[_0x66b3('0x37')]['length']?_0x24a804[_0x66b3('0x37')]:_0x10acef[_0x66b3('0x36')];if(_0x7df65b[_0x66b3('0x32')]['includeAll']){_0x24a804[_0x66b3('0x47')]=[{'all':!![]}];}_0x24a804=_[_0x66b3('0x41')]({},_0x24a804,_0x7df65b[_0x66b3('0x42')]);return db[_0x66b3('0x2e')][_0x66b3('0x48')](_0x24a804)['then'](handleEntityNotFound(_0x341d36,null))[_0x66b3('0x25')](respondWithResult(_0x341d36,null))[_0x66b3('0x44')](handleError(_0x341d36,null));};exports['create']=function(_0x327dcb,_0x41418f){return db[_0x66b3('0x2e')][_0x66b3('0x49')](_0x327dcb[_0x66b3('0x4a')],{})[_0x66b3('0x25')](respondWithResult(_0x41418f,0xc9))[_0x66b3('0x44')](handleError(_0x41418f,null));};exports[_0x66b3('0x24')]=function(_0x129d77,_0x14d078){if(_0x129d77[_0x66b3('0x4a')]['id']){delete _0x129d77[_0x66b3('0x4a')]['id'];}return db[_0x66b3('0x2e')]['find']({'where':{'id':_0x129d77['params']['id']}})[_0x66b3('0x25')](handleEntityNotFound(_0x14d078,null))[_0x66b3('0x25')](saveUpdates(_0x129d77[_0x66b3('0x4a')],null))[_0x66b3('0x25')](respondWithResult(_0x14d078,null))[_0x66b3('0x44')](handleError(_0x14d078,null));};exports[_0x66b3('0x26')]=function(_0x3f4708,_0xe1633e){return db[_0x66b3('0x2e')][_0x66b3('0x48')]({'where':{'id':_0x3f4708['params']['id']}})['then'](handleEntityNotFound(_0xe1633e,null))[_0x66b3('0x25')](removeEntity(_0xe1633e,null))[_0x66b3('0x44')](handleError(_0xe1633e,null));};exports['describe']=function(_0x2dc98e,_0x5b1f40){return db[_0x66b3('0x2e')][_0x66b3('0x4b')]()[_0x66b3('0x25')](respondWithResult(_0x5b1f40,null))[_0x66b3('0x44')](handleError(_0x5b1f40,null));};
\ No newline at end of file
+var _0x94a0=['mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','to-csv','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','sendStatus','error','stack','name','send','index','OpenchannelQueueReport','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','find','catch','create','body','destroy','params','describe','rimraf','fast-json-patch','request-promise','moment'];(function(_0x5f19ef,_0x484f8f){var _0x57bdbf=function(_0x1554e3){while(--_0x1554e3){_0x5f19ef['push'](_0x5f19ef['shift']());}};_0x57bdbf(++_0x484f8f);}(_0x94a0,0x1b2));var _0x094a=function(_0x22d72b,_0x112e6d){_0x22d72b=_0x22d72b-0x0;var _0x35f65f=_0x94a0[_0x22d72b];return _0x35f65f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x094a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x094a('0x1'));var rp=require(_0x094a('0x2'));var moment=require(_0x094a('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x094a('0x4'));var util=require(_0x094a('0x5'));var path=require('path');var sox=require(_0x094a('0x6'));var csv=require('to-csv');var ejs=require(_0x094a('0x7'));var fs=require('fs');var fs_extra=require(_0x094a('0x8'));var _=require(_0x094a('0x9'));var squel=require(_0x094a('0xa'));var crypto=require(_0x094a('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x094a('0xc'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x094a('0xd'));var authService=require(_0x094a('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x094a('0xf'));var hardwareService=require(_0x094a('0x10'));var logger=require(_0x094a('0x11'))(_0x094a('0x12'));var utils=require(_0x094a('0x13'));var config=require(_0x094a('0x14'));var licenseUtil=require(_0x094a('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x26a109,_0x33c045){_0x33c045=_0x33c045||0xcc;return function(_0x5d82d0){if(_0x5d82d0){return _0x26a109['sendStatus'](_0x33c045);}return _0x26a109[_0x094a('0x16')](_0x33c045)[_0x094a('0x17')]();};}function respondWithResult(_0x35f5f2,_0x5ce24a){_0x5ce24a=_0x5ce24a||0xc8;return function(_0x3aa89c){if(_0x3aa89c){return _0x35f5f2['status'](_0x5ce24a)[_0x094a('0x18')](_0x3aa89c);}};}function respondWithFilteredResult(_0xf06636,_0x2b3a1b){return function(_0x633793){if(_0x633793){var _0x43274d=typeof _0x2b3a1b[_0x094a('0x19')]===_0x094a('0x1a')&&typeof _0x2b3a1b[_0x094a('0x1b')]===_0x094a('0x1a');var _0x1202c3=_0x633793[_0x094a('0x1c')];var _0x4ebc46=_0x43274d?0x0:_0x2b3a1b[_0x094a('0x19')];var _0x4ccffd=_0x43274d?_0x633793[_0x094a('0x1c')]:_0x2b3a1b[_0x094a('0x19')]+_0x2b3a1b[_0x094a('0x1b')];var _0x41ce09;if(_0x4ccffd>=_0x1202c3){_0x4ccffd=_0x1202c3;_0x41ce09=0xc8;}else{_0x41ce09=0xce;}_0xf06636[_0x094a('0x16')](_0x41ce09);return _0xf06636[_0x094a('0x1d')](_0x094a('0x1e'),_0x4ebc46+'-'+_0x4ccffd+'/'+_0x1202c3)[_0x094a('0x18')](_0x633793);}return null;};}function patchUpdates(_0x13b4ad){return function(_0x1db448){try{jsonpatch[_0x094a('0x1f')](_0x1db448,_0x13b4ad,!![]);}catch(_0x2334de){return BPromise[_0x094a('0x20')](_0x2334de);}return _0x1db448['save']();};}function saveUpdates(_0x48e531,_0x346efb){return function(_0x3940fc){if(_0x3940fc){return _0x3940fc[_0x094a('0x21')](_0x48e531)[_0x094a('0x22')](function(_0x1337e7){return _0x1337e7;});}return null;};}function removeEntity(_0x38d2a5,_0x433d4b){return function(_0x377927){if(_0x377927){return _0x377927['destroy']()[_0x094a('0x22')](function(){_0x38d2a5[_0x094a('0x16')](0xcc)[_0x094a('0x17')]();});}};}function handleEntityNotFound(_0x119be3,_0x2aec60){return function(_0x105b4f){if(!_0x105b4f){_0x119be3[_0x094a('0x23')](0x194);}return _0x105b4f;};}function handleError(_0xbc588b,_0x51056d){_0x51056d=_0x51056d||0x1f4;return function(_0x2ea170){logger[_0x094a('0x24')](_0x2ea170[_0x094a('0x25')]);if(_0x2ea170[_0x094a('0x26')]){delete _0x2ea170[_0x094a('0x26')];}_0xbc588b['status'](_0x51056d)[_0x094a('0x27')](_0x2ea170);};}exports[_0x094a('0x28')]=function(_0x556cd9,_0x24ebad){var _0x26e79f={},_0x1b695f={},_0x45e29d={'count':0x0,'rows':[]};var _0x1324ee=_['map'](db[_0x094a('0x29')]['rawAttributes'],function(_0x2cf524){return{'name':_0x2cf524[_0x094a('0x2a')],'type':_0x2cf524[_0x094a('0x2b')][_0x094a('0x2c')]};});_0x1b695f['model']=_['map'](_0x1324ee,_0x094a('0x26'));_0x1b695f[_0x094a('0x2d')]=_[_0x094a('0x2e')](_0x556cd9[_0x094a('0x2d')]);_0x1b695f['filters']=_[_0x094a('0x2f')](_0x1b695f[_0x094a('0x30')],_0x1b695f[_0x094a('0x2d')]);_0x26e79f[_0x094a('0x31')]=_['intersection'](_0x1b695f['model'],qs['fields'](_0x556cd9['query'][_0x094a('0x32')]));_0x26e79f[_0x094a('0x31')]=_0x26e79f['attributes'][_0x094a('0x33')]?_0x26e79f[_0x094a('0x31')]:_0x1b695f['model'];if(!_0x556cd9[_0x094a('0x2d')][_0x094a('0x34')](_0x094a('0x35'))){_0x26e79f[_0x094a('0x1b')]=qs[_0x094a('0x1b')](_0x556cd9['query'][_0x094a('0x1b')]);_0x26e79f[_0x094a('0x19')]=qs[_0x094a('0x19')](_0x556cd9['query'][_0x094a('0x19')]);}_0x26e79f['order']=qs[_0x094a('0x36')](_0x556cd9['query'][_0x094a('0x36')]);_0x26e79f[_0x094a('0x37')]=qs[_0x094a('0x38')](_[_0x094a('0x39')](_0x556cd9['query'],_0x1b695f[_0x094a('0x38')]),_0x1324ee);if(_0x556cd9[_0x094a('0x2d')][_0x094a('0x3a')]){_0x26e79f[_0x094a('0x37')]=_[_0x094a('0x3b')](_0x26e79f[_0x094a('0x37')],{'$or':_[_0x094a('0x3c')](_0x1324ee,function(_0x290e8d){if(_0x290e8d[_0x094a('0x2b')]!==_0x094a('0x3d')){var _0x2d0beb={};_0x2d0beb[_0x290e8d[_0x094a('0x26')]]={'$like':'%'+_0x556cd9['query'][_0x094a('0x3a')]+'%'};return _0x2d0beb;}})});}_0x26e79f=_[_0x094a('0x3b')]({},_0x26e79f,_0x556cd9[_0x094a('0x3e')]);var _0x1df82a={'where':_0x26e79f['where']};return db[_0x094a('0x29')][_0x094a('0x1c')](_0x1df82a)[_0x094a('0x22')](function(_0x1ce885){_0x45e29d[_0x094a('0x1c')]=_0x1ce885;if(_0x556cd9[_0x094a('0x2d')][_0x094a('0x3f')]){_0x26e79f[_0x094a('0x40')]=[{'all':!![]}];}return db[_0x094a('0x29')][_0x094a('0x41')](_0x26e79f);})['then'](function(_0x7a8a3e){_0x45e29d['rows']=_0x7a8a3e;return _0x45e29d;})[_0x094a('0x22')](respondWithFilteredResult(_0x24ebad,_0x26e79f))['catch'](handleError(_0x24ebad,null));};exports['show']=function(_0x9b176f,_0x3e17f7){var _0x54be9b={'raw':!![],'where':{'id':_0x9b176f['params']['id']}},_0x1c49a3={};_0x1c49a3[_0x094a('0x30')]=_['keys'](db[_0x094a('0x29')]['rawAttributes']);_0x1c49a3[_0x094a('0x2d')]=_[_0x094a('0x2e')](_0x9b176f[_0x094a('0x2d')]);_0x1c49a3[_0x094a('0x38')]=_[_0x094a('0x2f')](_0x1c49a3[_0x094a('0x30')],_0x1c49a3[_0x094a('0x2d')]);_0x54be9b[_0x094a('0x31')]=_['intersection'](_0x1c49a3[_0x094a('0x30')],qs[_0x094a('0x32')](_0x9b176f[_0x094a('0x2d')][_0x094a('0x32')]));_0x54be9b[_0x094a('0x31')]=_0x54be9b[_0x094a('0x31')][_0x094a('0x33')]?_0x54be9b[_0x094a('0x31')]:_0x1c49a3['model'];if(_0x9b176f[_0x094a('0x2d')][_0x094a('0x3f')]){_0x54be9b[_0x094a('0x40')]=[{'all':!![]}];}_0x54be9b=_[_0x094a('0x3b')]({},_0x54be9b,_0x9b176f[_0x094a('0x3e')]);return db[_0x094a('0x29')][_0x094a('0x42')](_0x54be9b)[_0x094a('0x22')](handleEntityNotFound(_0x3e17f7,null))['then'](respondWithResult(_0x3e17f7,null))[_0x094a('0x43')](handleError(_0x3e17f7,null));};exports[_0x094a('0x44')]=function(_0x43aeed,_0x248c3c){return db[_0x094a('0x29')]['create'](_0x43aeed[_0x094a('0x45')],{})[_0x094a('0x22')](respondWithResult(_0x248c3c,0xc9))[_0x094a('0x43')](handleError(_0x248c3c,null));};exports[_0x094a('0x21')]=function(_0x19b97e,_0x56aa7c){if(_0x19b97e[_0x094a('0x45')]['id']){delete _0x19b97e[_0x094a('0x45')]['id'];}return db[_0x094a('0x29')][_0x094a('0x42')]({'where':{'id':_0x19b97e['params']['id']}})[_0x094a('0x22')](handleEntityNotFound(_0x56aa7c,null))[_0x094a('0x22')](saveUpdates(_0x19b97e[_0x094a('0x45')],null))[_0x094a('0x22')](respondWithResult(_0x56aa7c,null))[_0x094a('0x43')](handleError(_0x56aa7c,null));};exports[_0x094a('0x46')]=function(_0x3beedf,_0x8a5710){return db['OpenchannelQueueReport'][_0x094a('0x42')]({'where':{'id':_0x3beedf[_0x094a('0x47')]['id']}})[_0x094a('0x22')](handleEntityNotFound(_0x8a5710,null))['then'](removeEntity(_0x8a5710,null))['catch'](handleError(_0x8a5710,null));};exports[_0x094a('0x48')]=function(_0x5db9ea,_0x3b5281){return db[_0x094a('0x29')]['describe']()[_0x094a('0x22')](respondWithResult(_0x3b5281,null))[_0x094a('0x43')](handleError(_0x3b5281,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['bluebird','path','./openchannelQueueReport.attributes','exports','define','OpenchannelQueueReport','report_openchannel_queue','lodash','util','moment'];(function(_0x593bb6,_0x4ccbed){var _0x208dad=function(_0x512af5){while(--_0x512af5){_0x593bb6['push'](_0x593bb6['shift']());}};_0x208dad(++_0x4ccbed);}(_0xe14b,0x93));var _0xbe14=function(_0x9339c0,_0x5cd34c){_0x9339c0=_0x9339c0-0x0;var _0x58a7b5=_0xe14b[_0x9339c0];return _0x58a7b5;};'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 fs=require('fs');var path=require(_0xbe14('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xbe14('0x5'));module[_0xbe14('0x6')]=function(_0x1fe204,_0x1ff100){return _0x1fe204[_0xbe14('0x7')](_0xbe14('0x8'),attributes,{'tableName':_0xbe14('0x9'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fc3=['util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueueReport.attributes','exports','define','report_openchannel_queue','uniqueid','lodash'];(function(_0x3eebe0,_0x7c52eb){var _0x409153=function(_0x4fda36){while(--_0x4fda36){_0x3eebe0['push'](_0x3eebe0['shift']());}};_0x409153(++_0x7c52eb);}(_0x5fc3,0xa8));var _0x35fc=function(_0x15cbce,_0xda8402){_0x15cbce=_0x15cbce-0x0;var _0x257f29=_0x5fc3[_0x15cbce];return _0x257f29;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[{'name':_0x35fc('0xc'),'fields':[_0x35fc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e27=['then','info','OpenchannelQueueReport,\x20%s,\x20%s','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','create','body','options','raw','debug','UpdateOpenchannelQueueReport','where','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','request'];(function(_0x5ef8f7,_0xcefb41){var _0x8616ef=function(_0x389c77){while(--_0x389c77){_0x5ef8f7['push'](_0x5ef8f7['shift']());}};_0x8616ef(++_0xcefb41);}(_0x7e27,0xdd));var _0x77e2=function(_0x362a82,_0x44f4a3){_0x362a82=_0x362a82-0x0;var _0xd99930=_0x7e27[_0x362a82];return _0xd99930;};'use strict';var _=require(_0x77e2('0x0'));var util=require(_0x77e2('0x1'));var moment=require('moment');var BPromise=require(_0x77e2('0x2'));var rs=require(_0x77e2('0x3'));var fs=require('fs');var Redis=require(_0x77e2('0x4'));var db=require(_0x77e2('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x77e2('0x6'))(_0x77e2('0x7'));var config=require(_0x77e2('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x77e2('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x101e56,_0x137a61,_0x502153){return new BPromise(function(_0x3c2b3f,_0x2cdfa3){return client[_0x77e2('0xa')](_0x101e56,_0x502153)[_0x77e2('0xb')](function(_0x3802ce){logger[_0x77e2('0xc')](_0x77e2('0xd'),_0x137a61,'request\x20sent');logger['debug'](_0x77e2('0xe'),_0x137a61,'request\x20sent',JSON[_0x77e2('0xf')](_0x3802ce));if(_0x3802ce[_0x77e2('0x10')]){if(_0x3802ce['error']['code']===0x1f4){logger[_0x77e2('0x10')](_0x77e2('0xd'),_0x137a61,_0x3802ce['error'][_0x77e2('0x11')]);return _0x2cdfa3(_0x3802ce['error']['message']);}logger[_0x77e2('0x10')](_0x77e2('0xd'),_0x137a61,_0x3802ce[_0x77e2('0x10')][_0x77e2('0x11')]);return _0x3c2b3f(_0x3802ce[_0x77e2('0x10')]['message']);}else{logger[_0x77e2('0xc')](_0x77e2('0xd'),_0x137a61,'request\x20sent');_0x3c2b3f(_0x3802ce[_0x77e2('0x12')][_0x77e2('0x11')]);}})[_0x77e2('0x13')](function(_0x1352c1){logger[_0x77e2('0x10')](_0x77e2('0xd'),_0x137a61,_0x1352c1);_0x2cdfa3(_0x1352c1);});});}exports[_0x77e2('0x14')]=function(_0x36b995){var _0x42459a=this;return new Promise(function(_0x1bcf8d,_0x47ae9a){return db[_0x77e2('0x15')][_0x77e2('0x16')](_0x36b995[_0x77e2('0x17')],{'raw':_0x36b995[_0x77e2('0x18')]?_0x36b995[_0x77e2('0x18')][_0x77e2('0x19')]===undefined?!![]:![]:!![]})[_0x77e2('0xb')](function(_0x1e5273){logger[_0x77e2('0xc')](_0x77e2('0x14'),_0x36b995);logger[_0x77e2('0x1a')]('CreateOpenchannelQueueReport',_0x36b995,JSON[_0x77e2('0xf')](_0x1e5273));_0x1bcf8d(_0x1e5273);})[_0x77e2('0x13')](function(_0x4c0d0a){logger[_0x77e2('0x10')]('CreateOpenchannelQueueReport',_0x4c0d0a['message'],_0x36b995);_0x47ae9a(_0x42459a[_0x77e2('0x10')](0x1f4,_0x4c0d0a['message']));});});};exports[_0x77e2('0x1b')]=function(_0x1c8f39){var _0x20eda4=this;return new Promise(function(_0x5b5844,_0x529a43){return db[_0x77e2('0x15')]['update'](_0x1c8f39[_0x77e2('0x17')],{'raw':_0x1c8f39[_0x77e2('0x18')]?_0x1c8f39[_0x77e2('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1c8f39[_0x77e2('0x18')]?_0x1c8f39[_0x77e2('0x18')][_0x77e2('0x1c')]||null:null,'attributes':_0x1c8f39[_0x77e2('0x18')]?_0x1c8f39[_0x77e2('0x18')]['attributes']||null:null,'limit':_0x1c8f39[_0x77e2('0x18')]?_0x1c8f39[_0x77e2('0x18')]['limit']||null:null})[_0x77e2('0xb')](function(_0x4e7c32){logger[_0x77e2('0xc')](_0x77e2('0x1b'),_0x1c8f39);logger['debug']('UpdateOpenchannelQueueReport',_0x1c8f39,JSON[_0x77e2('0xf')](_0x4e7c32));_0x5b5844(_0x4e7c32);})['catch'](function(_0x4e5996){logger[_0x77e2('0x10')](_0x77e2('0x1b'),_0x4e5996[_0x77e2('0x11')],_0x1c8f39);_0x529a43(_0x20eda4[_0x77e2('0x10')](0x1f4,_0x4e5996['message']));});});};
\ No newline at end of file
+var _0x7894=['request\x20sent','stringify','error','message','CreateOpenchannelQueueReport','OpenchannelQueueReport','body','options','raw','then','catch','update','where','attributes','limit','UpdateOpenchannelQueueReport','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','OpenchannelQueueReport,\x20%s,\x20%s','debug'];(function(_0xb3db79,_0x221433){var _0x44af87=function(_0x384561){while(--_0x384561){_0xb3db79['push'](_0xb3db79['shift']());}};_0x44af87(++_0x221433);}(_0x7894,0x170));var _0x4789=function(_0xee6171,_0x5994d1){_0xee6171=_0xee6171-0x0;var _0xb13a9e=_0x7894[_0xee6171];return _0xb13a9e;};'use strict';var _=require(_0x4789('0x0'));var util=require(_0x4789('0x1'));var moment=require(_0x4789('0x2'));var BPromise=require(_0x4789('0x3'));var rs=require(_0x4789('0x4'));var fs=require('fs');var Redis=require(_0x4789('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x4789('0x6'));var logger=require(_0x4789('0x7'))('rpc');var config=require(_0x4789('0x8'));var jayson=require(_0x4789('0x9'));var client=jayson[_0x4789('0xa')][_0x4789('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x114a90,_0x298902,_0x13b7f6){return new BPromise(function(_0x5a45ae,_0x49d256){return client[_0x4789('0xc')](_0x114a90,_0x13b7f6)['then'](function(_0x2e8038){logger[_0x4789('0xd')](_0x4789('0xe'),_0x298902,'request\x20sent');logger[_0x4789('0xf')]('OpenchannelQueueReport,\x20%s,\x20%s,\x20%s',_0x298902,_0x4789('0x10'),JSON[_0x4789('0x11')](_0x2e8038));if(_0x2e8038[_0x4789('0x12')]){if(_0x2e8038['error']['code']===0x1f4){logger[_0x4789('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x298902,_0x2e8038[_0x4789('0x12')]['message']);return _0x49d256(_0x2e8038[_0x4789('0x12')][_0x4789('0x13')]);}logger['error'](_0x4789('0xe'),_0x298902,_0x2e8038['error'][_0x4789('0x13')]);return _0x5a45ae(_0x2e8038[_0x4789('0x12')][_0x4789('0x13')]);}else{logger['info'](_0x4789('0xe'),_0x298902,_0x4789('0x10'));_0x5a45ae(_0x2e8038['result'][_0x4789('0x13')]);}})['catch'](function(_0x118f97){logger[_0x4789('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x298902,_0x118f97);_0x49d256(_0x118f97);});});}exports[_0x4789('0x14')]=function(_0x5af7b3){var _0x2f1511=this;return new Promise(function(_0x56d799,_0x19dc59){return db[_0x4789('0x15')]['create'](_0x5af7b3[_0x4789('0x16')],{'raw':_0x5af7b3[_0x4789('0x17')]?_0x5af7b3[_0x4789('0x17')][_0x4789('0x18')]===undefined?!![]:![]:!![]})[_0x4789('0x19')](function(_0x3a707d){logger[_0x4789('0xd')](_0x4789('0x14'),_0x5af7b3);logger[_0x4789('0xf')](_0x4789('0x14'),_0x5af7b3,JSON[_0x4789('0x11')](_0x3a707d));_0x56d799(_0x3a707d);})[_0x4789('0x1a')](function(_0x4f7ceb){logger[_0x4789('0x12')](_0x4789('0x14'),_0x4f7ceb['message'],_0x5af7b3);_0x19dc59(_0x2f1511[_0x4789('0x12')](0x1f4,_0x4f7ceb[_0x4789('0x13')]));});});};exports['UpdateOpenchannelQueueReport']=function(_0xff56dd){var _0x1ca6ca=this;return new Promise(function(_0x54d9c1,_0xd8601e){return db['OpenchannelQueueReport'][_0x4789('0x1b')](_0xff56dd[_0x4789('0x16')],{'raw':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x1c')]||null:null,'attributes':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x1d')]||null:null,'limit':_0xff56dd[_0x4789('0x17')]?_0xff56dd[_0x4789('0x17')][_0x4789('0x1e')]||null:null})[_0x4789('0x19')](function(_0x3095a1){logger[_0x4789('0xd')](_0x4789('0x1f'),_0xff56dd);logger['debug']('UpdateOpenchannelQueueReport',_0xff56dd,JSON[_0x4789('0x11')](_0x3095a1));_0x54d9c1(_0x3095a1);})['catch'](function(_0x490ea3){logger['error'](_0x4789('0x1f'),_0x490ea3[_0x4789('0x13')],_0xff56dd);_0xd8601e(_0x1ca6ca[_0x4789('0x12')](0x1f4,_0x490ea3[_0x4789('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7b4=['../../config/environment','./openchannelTransferReport.controller','index','get','isAuthenticated','describe','/:id','show','create','put','update','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x15d505,_0x1bb444){var _0x2b37b4=function(_0x4bb490){while(--_0x4bb490){_0x15d505['push'](_0x15d505['shift']());}};_0x2b37b4(++_0x1bb444);}(_0xa7b4,0x19b));var _0x4a7b=function(_0x2d6071,_0x28eda4){_0x2d6071=_0x2d6071-0x0;var _0x4fcf9a=_0xa7b4[_0x2d6071];return _0x4fcf9a;};'use strict';var multer=require(_0x4a7b('0x0'));var util=require(_0x4a7b('0x1'));var path=require(_0x4a7b('0x2'));var timeout=require(_0x4a7b('0x3'));var express=require(_0x4a7b('0x4'));var router=express[_0x4a7b('0x5')]();var fs_extra=require(_0x4a7b('0x6'));var auth=require(_0x4a7b('0x7'));var interaction=require(_0x4a7b('0x8'));var config=require(_0x4a7b('0x9'));var controller=require(_0x4a7b('0xa'));router['get']('/',auth['isAuthenticated'](),controller[_0x4a7b('0xb')]);router[_0x4a7b('0xc')]('/describe',auth[_0x4a7b('0xd')](),controller[_0x4a7b('0xe')]);router['get'](_0x4a7b('0xf'),auth['isAuthenticated'](),controller[_0x4a7b('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4a7b('0x11')]);router[_0x4a7b('0x12')](_0x4a7b('0xf'),auth[_0x4a7b('0xd')](),controller[_0x4a7b('0x13')]);router['delete'](_0x4a7b('0xf'),auth[_0x4a7b('0xd')](),controller[_0x4a7b('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x0168=['put','/:id','update','delete','destroy','exports','util','path','express','Router','fs-extra','../../components/auth/service','get','index','isAuthenticated','describe','show','post','create'];(function(_0x2bf11a,_0x5b1b13){var _0x49ed23=function(_0xd0825b){while(--_0xd0825b){_0x2bf11a['push'](_0x2bf11a['shift']());}};_0x49ed23(++_0x5b1b13);}(_0x0168,0xb1));var _0x8016=function(_0x5b8b0d,_0x58f554){_0x5b8b0d=_0x5b8b0d-0x0;var _0x18c961=_0x0168[_0x5b8b0d];return _0x18c961;};'use strict';var multer=require('multer');var util=require(_0x8016('0x0'));var path=require(_0x8016('0x1'));var timeout=require('connect-timeout');var express=require(_0x8016('0x2'));var router=express[_0x8016('0x3')]();var fs_extra=require(_0x8016('0x4'));var auth=require(_0x8016('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./openchannelTransferReport.controller');router[_0x8016('0x6')]('/',auth['isAuthenticated'](),controller[_0x8016('0x7')]);router['get']('/describe',auth[_0x8016('0x8')](),controller[_0x8016('0x9')]);router[_0x8016('0x6')]('/:id',auth[_0x8016('0x8')](),controller[_0x8016('0xa')]);router[_0x8016('0xb')]('/',auth[_0x8016('0x8')](),controller[_0x8016('0xc')]);router[_0x8016('0xd')](_0x8016('0xe'),auth['isAuthenticated'](),controller[_0x8016('0xf')]);router[_0x8016('0x10')]('/:id',auth[_0x8016('0x8')](),controller[_0x8016('0x11')]);module[_0x8016('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaa88=['account','agent','queue','DATE','NOW','moment','sequelize','exports','STRING'];(function(_0x2bf99b,_0x470db2){var _0x15b762=function(_0x279345){while(--_0x279345){_0x2bf99b['push'](_0x2bf99b['shift']());}};_0x15b762(++_0x470db2);}(_0xaa88,0x137));var _0x8aa8=function(_0x26b80e,_0x5c9333){_0x26b80e=_0x26b80e-0x0;var _0x84a8a8=_0xaa88[_0x26b80e];return _0x84a8a8;};'use strict';var moment=require(_0x8aa8('0x0'));var Sequelize=require(_0x8aa8('0x1'));module[_0x8aa8('0x2')]={'uniqueid':{'type':Sequelize[_0x8aa8('0x3')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x8aa8('0x4'),_0x8aa8('0x5'),_0x8aa8('0x6')),'allowNull':![],'defaultValue':_0x8aa8('0x6')},'transferredAt':{'type':Sequelize[_0x8aa8('0x7')],'allowNull':![],'defaultValue':Sequelize[_0x8aa8('0x8')]}};
\ No newline at end of file
+var _0x00bb=['moment','sequelize','exports','ENUM','agent','queue','DATE','NOW'];(function(_0x160e58,_0x95e86){var _0x14b3d1=function(_0x34aa83){while(--_0x34aa83){_0x160e58['push'](_0x160e58['shift']());}};_0x14b3d1(++_0x95e86);}(_0x00bb,0x1d8));var _0xb00b=function(_0x23e7c1,_0x35110c){_0x23e7c1=_0x23e7c1-0x0;var _0x1add43=_0x00bb[_0x23e7c1];return _0x1add43;};'use strict';var moment=require(_0xb00b('0x0'));var Sequelize=require(_0xb00b('0x1'));module[_0xb00b('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xb00b('0x3')]('account',_0xb00b('0x4'),_0xb00b('0x5')),'allowNull':![],'defaultValue':'queue'},'transferredAt':{'type':Sequelize[_0xb00b('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xb00b('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x164f=['ejs','fs-extra','desk.js','querystring','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','OpenchannelTransferReport','type','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','options','include','rows','show','params','rawAttributes','includeAll','catch','body','destroy','find','describe','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv'];(function(_0x1d1ace,_0x2f70e0){var _0x21f5b0=function(_0x9d3270){while(--_0x9d3270){_0x1d1ace['push'](_0x1d1ace['shift']());}};_0x21f5b0(++_0x2f70e0);}(_0x164f,0x191));var _0xf164=function(_0x5881a7,_0x6482c5){_0x5881a7=_0x5881a7-0x0;var _0x46a184=_0x164f[_0x5881a7];return _0x46a184;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf164('0x0'));var rp=require(_0xf164('0x1'));var moment=require(_0xf164('0x2'));var BPromise=require(_0xf164('0x3'));var Mustache=require('mustache');var util=require(_0xf164('0x4'));var path=require(_0xf164('0x5'));var sox=require('sox');var csv=require(_0xf164('0x6'));var ejs=require(_0xf164('0x7'));var fs=require('fs');var fs_extra=require(_0xf164('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xf164('0x9'));var toCsv=require('to-csv');var querystring=require(_0xf164('0xa'));var Papa=require(_0xf164('0xb'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xf164('0xc'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf164('0xd'));var logger=require(_0xf164('0xe'))(_0xf164('0xf'));var utils=require(_0xf164('0x10'));var config=require(_0xf164('0x11'));var licenseUtil=require('../../config/license/util');var db=require(_0xf164('0x12'))['db'];function respondWithStatusCode(_0x14440e,_0x1c89d0){_0x1c89d0=_0x1c89d0||0xcc;return function(_0x466c7f){if(_0x466c7f){return _0x14440e[_0xf164('0x13')](_0x1c89d0);}return _0x14440e[_0xf164('0x14')](_0x1c89d0)[_0xf164('0x15')]();};}function respondWithResult(_0x4717e8,_0x41e453){_0x41e453=_0x41e453||0xc8;return function(_0x31ca4d){if(_0x31ca4d){return _0x4717e8[_0xf164('0x14')](_0x41e453)[_0xf164('0x16')](_0x31ca4d);}};}function respondWithFilteredResult(_0x2e91ba,_0x398f8a){return function(_0x32ae6c){if(_0x32ae6c){var _0x566e0c=typeof _0x398f8a[_0xf164('0x17')]===_0xf164('0x18')&&typeof _0x398f8a[_0xf164('0x19')]===_0xf164('0x18');var _0x33cd95=_0x32ae6c[_0xf164('0x1a')];var _0x3578ea=_0x566e0c?0x0:_0x398f8a['offset'];var _0x2883ba=_0x566e0c?_0x32ae6c['count']:_0x398f8a[_0xf164('0x17')]+_0x398f8a['limit'];var _0x2e9620;if(_0x2883ba>=_0x33cd95){_0x2883ba=_0x33cd95;_0x2e9620=0xc8;}else{_0x2e9620=0xce;}_0x2e91ba[_0xf164('0x14')](_0x2e9620);return _0x2e91ba[_0xf164('0x1b')](_0xf164('0x1c'),_0x3578ea+'-'+_0x2883ba+'/'+_0x33cd95)[_0xf164('0x16')](_0x32ae6c);}return null;};}function patchUpdates(_0x3c43a6){return function(_0x2f0871){try{jsonpatch[_0xf164('0x1d')](_0x2f0871,_0x3c43a6,!![]);}catch(_0x3595f7){return BPromise[_0xf164('0x1e')](_0x3595f7);}return _0x2f0871[_0xf164('0x1f')]();};}function saveUpdates(_0x5e933a,_0x184ccd){return function(_0xf1f44e){if(_0xf1f44e){return _0xf1f44e[_0xf164('0x20')](_0x5e933a)['then'](function(_0x11fa51){return _0x11fa51;});}return null;};}function removeEntity(_0x51b15c,_0x4e8502){return function(_0x4c9046){if(_0x4c9046){return _0x4c9046['destroy']()[_0xf164('0x21')](function(){_0x51b15c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2357c8,_0x26a9ad){return function(_0x47d545){if(!_0x47d545){_0x2357c8[_0xf164('0x13')](0x194);}return _0x47d545;};}function handleError(_0x32c6b7,_0xe618d7){_0xe618d7=_0xe618d7||0x1f4;return function(_0x10ec44){logger[_0xf164('0x22')](_0x10ec44[_0xf164('0x23')]);if(_0x10ec44[_0xf164('0x24')]){delete _0x10ec44[_0xf164('0x24')];}_0x32c6b7['status'](_0xe618d7)[_0xf164('0x25')](_0x10ec44);};}exports[_0xf164('0x26')]=function(_0x50b219,_0x3355b0){var _0x4b6e3d={},_0x166350={},_0x1674c3={'count':0x0,'rows':[]};var _0x47a59e=_[_0xf164('0x27')](db[_0xf164('0x28')]['rawAttributes'],function(_0x37854e){return{'name':_0x37854e['fieldName'],'type':_0x37854e[_0xf164('0x29')]['key']};});_0x166350[_0xf164('0x2a')]=_[_0xf164('0x27')](_0x47a59e,_0xf164('0x24'));_0x166350[_0xf164('0x2b')]=_[_0xf164('0x2c')](_0x50b219['query']);_0x166350[_0xf164('0x2d')]=_[_0xf164('0x2e')](_0x166350['model'],_0x166350[_0xf164('0x2b')]);_0x4b6e3d[_0xf164('0x2f')]=_[_0xf164('0x2e')](_0x166350[_0xf164('0x2a')],qs['fields'](_0x50b219[_0xf164('0x2b')][_0xf164('0x30')]));_0x4b6e3d[_0xf164('0x2f')]=_0x4b6e3d[_0xf164('0x2f')]['length']?_0x4b6e3d['attributes']:_0x166350[_0xf164('0x2a')];if(!_0x50b219['query']['hasOwnProperty'](_0xf164('0x31'))){_0x4b6e3d[_0xf164('0x19')]=qs[_0xf164('0x19')](_0x50b219[_0xf164('0x2b')][_0xf164('0x19')]);_0x4b6e3d[_0xf164('0x17')]=qs[_0xf164('0x17')](_0x50b219[_0xf164('0x2b')][_0xf164('0x17')]);}_0x4b6e3d[_0xf164('0x32')]=qs[_0xf164('0x33')](_0x50b219['query']['sort']);_0x4b6e3d[_0xf164('0x34')]=qs[_0xf164('0x2d')](_[_0xf164('0x35')](_0x50b219[_0xf164('0x2b')],_0x166350[_0xf164('0x2d')]),_0x47a59e);if(_0x50b219[_0xf164('0x2b')][_0xf164('0x36')]){_0x4b6e3d['where']=_[_0xf164('0x37')](_0x4b6e3d['where'],{'$or':_[_0xf164('0x27')](_0x47a59e,function(_0x31ba0e){if(_0x31ba0e[_0xf164('0x29')]!=='VIRTUAL'){var _0x45e557={};_0x45e557[_0x31ba0e['name']]={'$like':'%'+_0x50b219['query'][_0xf164('0x36')]+'%'};return _0x45e557;}})});}_0x4b6e3d=_['merge']({},_0x4b6e3d,_0x50b219[_0xf164('0x38')]);var _0x51c475={'where':_0x4b6e3d['where']};return db[_0xf164('0x28')][_0xf164('0x1a')](_0x51c475)[_0xf164('0x21')](function(_0x43cc96){_0x1674c3[_0xf164('0x1a')]=_0x43cc96;if(_0x50b219['query']['includeAll']){_0x4b6e3d[_0xf164('0x39')]=[{'all':!![]}];}return db[_0xf164('0x28')]['findAll'](_0x4b6e3d);})[_0xf164('0x21')](function(_0x31f473){_0x1674c3[_0xf164('0x3a')]=_0x31f473;return _0x1674c3;})[_0xf164('0x21')](respondWithFilteredResult(_0x3355b0,_0x4b6e3d))['catch'](handleError(_0x3355b0,null));};exports[_0xf164('0x3b')]=function(_0x3a2454,_0x1cbfc3){var _0x5e8fa6={'raw':!![],'where':{'id':_0x3a2454[_0xf164('0x3c')]['id']}},_0x4ad474={};_0x4ad474[_0xf164('0x2a')]=_[_0xf164('0x2c')](db['OpenchannelTransferReport'][_0xf164('0x3d')]);_0x4ad474['query']=_[_0xf164('0x2c')](_0x3a2454[_0xf164('0x2b')]);_0x4ad474['filters']=_[_0xf164('0x2e')](_0x4ad474[_0xf164('0x2a')],_0x4ad474[_0xf164('0x2b')]);_0x5e8fa6[_0xf164('0x2f')]=_[_0xf164('0x2e')](_0x4ad474['model'],qs[_0xf164('0x30')](_0x3a2454[_0xf164('0x2b')][_0xf164('0x30')]));_0x5e8fa6[_0xf164('0x2f')]=_0x5e8fa6[_0xf164('0x2f')]['length']?_0x5e8fa6[_0xf164('0x2f')]:_0x4ad474[_0xf164('0x2a')];if(_0x3a2454[_0xf164('0x2b')][_0xf164('0x3e')]){_0x5e8fa6[_0xf164('0x39')]=[{'all':!![]}];}_0x5e8fa6=_[_0xf164('0x37')]({},_0x5e8fa6,_0x3a2454[_0xf164('0x38')]);return db['OpenchannelTransferReport']['find'](_0x5e8fa6)['then'](handleEntityNotFound(_0x1cbfc3,null))[_0xf164('0x21')](respondWithResult(_0x1cbfc3,null))[_0xf164('0x3f')](handleError(_0x1cbfc3,null));};exports['create']=function(_0x23bd33,_0x3b4dc7){return db['OpenchannelTransferReport']['create'](_0x23bd33[_0xf164('0x40')],{})['then'](respondWithResult(_0x3b4dc7,0xc9))[_0xf164('0x3f')](handleError(_0x3b4dc7,null));};exports[_0xf164('0x20')]=function(_0x2d02d3,_0x1a14ad){if(_0x2d02d3[_0xf164('0x40')]['id']){delete _0x2d02d3[_0xf164('0x40')]['id'];}return db['OpenchannelTransferReport']['find']({'where':{'id':_0x2d02d3[_0xf164('0x3c')]['id']}})[_0xf164('0x21')](handleEntityNotFound(_0x1a14ad,null))[_0xf164('0x21')](saveUpdates(_0x2d02d3[_0xf164('0x40')],null))['then'](respondWithResult(_0x1a14ad,null))[_0xf164('0x3f')](handleError(_0x1a14ad,null));};exports[_0xf164('0x41')]=function(_0x2b15ac,_0x3b05d0){return db[_0xf164('0x28')][_0xf164('0x42')]({'where':{'id':_0x2b15ac[_0xf164('0x3c')]['id']}})[_0xf164('0x21')](handleEntityNotFound(_0x3b05d0,null))['then'](removeEntity(_0x3b05d0,null))[_0xf164('0x3f')](handleError(_0x3b05d0,null));};exports[_0xf164('0x43')]=function(_0x5a5a5e,_0x23c271){return db[_0xf164('0x28')][_0xf164('0x43')]()[_0xf164('0x21')](respondWithResult(_0x23c271,null))[_0xf164('0x3f')](handleError(_0x23c271,null));};
\ No newline at end of file
+var _0x915e=['map','OpenchannelTransferReport','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','then','include','findAll','catch','show','params','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','destroy','error','name','send','index'];(function(_0x2468c3,_0x29433d){var _0x2f49fd=function(_0x38f166){while(--_0x38f166){_0x2468c3['push'](_0x2468c3['shift']());}};_0x2f49fd(++_0x29433d);}(_0x915e,0x6b));var _0xe915=function(_0x1fb5da,_0x5aadbd){_0x1fb5da=_0x1fb5da-0x0;var _0x43b79c=_0x915e[_0x1fb5da];return _0x43b79c;};'use strict';var emlformat=require(_0xe915('0x0'));var rimraf=require(_0xe915('0x1'));var zipdir=require(_0xe915('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe915('0x3'));var moment=require(_0xe915('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe915('0x5'));var util=require('util');var path=require(_0xe915('0x6'));var sox=require(_0xe915('0x7'));var csv=require(_0xe915('0x8'));var ejs=require(_0xe915('0x9'));var fs=require('fs');var fs_extra=require(_0xe915('0xa'));var _=require(_0xe915('0xb'));var squel=require(_0xe915('0xc'));var crypto=require(_0xe915('0xd'));var jsforce=require(_0xe915('0xe'));var deskjs=require(_0xe915('0xf'));var toCsv=require(_0xe915('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe915('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe915('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe915('0x12'))(_0xe915('0x13'));var utils=require(_0xe915('0x14'));var config=require(_0xe915('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0xe915('0x16'))['db'];function respondWithStatusCode(_0x4a7b1c,_0x4f9316){_0x4f9316=_0x4f9316||0xcc;return function(_0x21bbd5){if(_0x21bbd5){return _0x4a7b1c[_0xe915('0x17')](_0x4f9316);}return _0x4a7b1c[_0xe915('0x18')](_0x4f9316)[_0xe915('0x19')]();};}function respondWithResult(_0x1b6ec1,_0x45f6d8){_0x45f6d8=_0x45f6d8||0xc8;return function(_0x988ac1){if(_0x988ac1){return _0x1b6ec1['status'](_0x45f6d8)['json'](_0x988ac1);}};}function respondWithFilteredResult(_0x19b434,_0x131e20){return function(_0x41b5ba){if(_0x41b5ba){var _0x5b6689=typeof _0x131e20[_0xe915('0x1a')]===_0xe915('0x1b')&&typeof _0x131e20[_0xe915('0x1c')]==='undefined';var _0x10d740=_0x41b5ba['count'];var _0x562c72=_0x5b6689?0x0:_0x131e20['offset'];var _0x4d22ac=_0x5b6689?_0x41b5ba[_0xe915('0x1d')]:_0x131e20[_0xe915('0x1a')]+_0x131e20[_0xe915('0x1c')];var _0x1eadc7;if(_0x4d22ac>=_0x10d740){_0x4d22ac=_0x10d740;_0x1eadc7=0xc8;}else{_0x1eadc7=0xce;}_0x19b434[_0xe915('0x18')](_0x1eadc7);return _0x19b434[_0xe915('0x1e')](_0xe915('0x1f'),_0x562c72+'-'+_0x4d22ac+'/'+_0x10d740)[_0xe915('0x20')](_0x41b5ba);}return null;};}function patchUpdates(_0x367e5b){return function(_0x1cb168){try{jsonpatch['apply'](_0x1cb168,_0x367e5b,!![]);}catch(_0x25b7ea){return BPromise[_0xe915('0x21')](_0x25b7ea);}return _0x1cb168[_0xe915('0x22')]();};}function saveUpdates(_0x11d821,_0x2e04d5){return function(_0x59fb4e){if(_0x59fb4e){return _0x59fb4e[_0xe915('0x23')](_0x11d821)['then'](function(_0x111462){return _0x111462;});}return null;};}function removeEntity(_0x32d220,_0x483f60){return function(_0x2a3eaa){if(_0x2a3eaa){return _0x2a3eaa[_0xe915('0x24')]()['then'](function(){_0x32d220[_0xe915('0x18')](0xcc)[_0xe915('0x19')]();});}};}function handleEntityNotFound(_0x168ad7,_0x268393){return function(_0x88e327){if(!_0x88e327){_0x168ad7[_0xe915('0x17')](0x194);}return _0x88e327;};}function handleError(_0x4187eb,_0x50482a){_0x50482a=_0x50482a||0x1f4;return function(_0x5c429a){logger[_0xe915('0x25')](_0x5c429a['stack']);if(_0x5c429a[_0xe915('0x26')]){delete _0x5c429a['name'];}_0x4187eb['status'](_0x50482a)[_0xe915('0x27')](_0x5c429a);};}exports[_0xe915('0x28')]=function(_0x4adbd5,_0x239b8e){var _0x2fb0b4={},_0x4c0f51={},_0x16a9f3={'count':0x0,'rows':[]};var _0x5415ea=_[_0xe915('0x29')](db[_0xe915('0x2a')][_0xe915('0x2b')],function(_0x415fa3){return{'name':_0x415fa3[_0xe915('0x2c')],'type':_0x415fa3[_0xe915('0x2d')][_0xe915('0x2e')]};});_0x4c0f51[_0xe915('0x2f')]=_[_0xe915('0x29')](_0x5415ea,'name');_0x4c0f51['query']=_[_0xe915('0x30')](_0x4adbd5[_0xe915('0x31')]);_0x4c0f51[_0xe915('0x32')]=_[_0xe915('0x33')](_0x4c0f51[_0xe915('0x2f')],_0x4c0f51[_0xe915('0x31')]);_0x2fb0b4[_0xe915('0x34')]=_[_0xe915('0x33')](_0x4c0f51[_0xe915('0x2f')],qs[_0xe915('0x35')](_0x4adbd5[_0xe915('0x31')][_0xe915('0x35')]));_0x2fb0b4[_0xe915('0x34')]=_0x2fb0b4[_0xe915('0x34')][_0xe915('0x36')]?_0x2fb0b4[_0xe915('0x34')]:_0x4c0f51['model'];if(!_0x4adbd5['query'][_0xe915('0x37')](_0xe915('0x38'))){_0x2fb0b4['limit']=qs[_0xe915('0x1c')](_0x4adbd5[_0xe915('0x31')][_0xe915('0x1c')]);_0x2fb0b4[_0xe915('0x1a')]=qs['offset'](_0x4adbd5['query'][_0xe915('0x1a')]);}_0x2fb0b4['order']=qs[_0xe915('0x39')](_0x4adbd5[_0xe915('0x31')][_0xe915('0x39')]);_0x2fb0b4[_0xe915('0x3a')]=qs[_0xe915('0x32')](_[_0xe915('0x3b')](_0x4adbd5[_0xe915('0x31')],_0x4c0f51[_0xe915('0x32')]),_0x5415ea);if(_0x4adbd5[_0xe915('0x31')]['filter']){_0x2fb0b4[_0xe915('0x3a')]=_[_0xe915('0x3c')](_0x2fb0b4[_0xe915('0x3a')],{'$or':_['map'](_0x5415ea,function(_0x503c1f){if(_0x503c1f[_0xe915('0x2d')]!==_0xe915('0x3d')){var _0x7d4772={};_0x7d4772[_0x503c1f[_0xe915('0x26')]]={'$like':'%'+_0x4adbd5[_0xe915('0x31')][_0xe915('0x3e')]+'%'};return _0x7d4772;}})});}_0x2fb0b4=_[_0xe915('0x3c')]({},_0x2fb0b4,_0x4adbd5[_0xe915('0x3f')]);var _0x4477b7={'where':_0x2fb0b4['where']};return db[_0xe915('0x2a')][_0xe915('0x1d')](_0x4477b7)[_0xe915('0x40')](function(_0x4eab51){_0x16a9f3['count']=_0x4eab51;if(_0x4adbd5[_0xe915('0x31')]['includeAll']){_0x2fb0b4[_0xe915('0x41')]=[{'all':!![]}];}return db[_0xe915('0x2a')][_0xe915('0x42')](_0x2fb0b4);})[_0xe915('0x40')](function(_0x55c50e){_0x16a9f3['rows']=_0x55c50e;return _0x16a9f3;})[_0xe915('0x40')](respondWithFilteredResult(_0x239b8e,_0x2fb0b4))[_0xe915('0x43')](handleError(_0x239b8e,null));};exports[_0xe915('0x44')]=function(_0x5833a6,_0x329860){var _0x4d828a={'raw':!![],'where':{'id':_0x5833a6[_0xe915('0x45')]['id']}},_0x3c0c7f={};_0x3c0c7f[_0xe915('0x2f')]=_[_0xe915('0x30')](db['OpenchannelTransferReport'][_0xe915('0x2b')]);_0x3c0c7f['query']=_[_0xe915('0x30')](_0x5833a6[_0xe915('0x31')]);_0x3c0c7f[_0xe915('0x32')]=_['intersection'](_0x3c0c7f[_0xe915('0x2f')],_0x3c0c7f[_0xe915('0x31')]);_0x4d828a['attributes']=_[_0xe915('0x33')](_0x3c0c7f[_0xe915('0x2f')],qs['fields'](_0x5833a6['query'][_0xe915('0x35')]));_0x4d828a[_0xe915('0x34')]=_0x4d828a[_0xe915('0x34')]['length']?_0x4d828a[_0xe915('0x34')]:_0x3c0c7f[_0xe915('0x2f')];if(_0x5833a6[_0xe915('0x31')]['includeAll']){_0x4d828a[_0xe915('0x41')]=[{'all':!![]}];}_0x4d828a=_['merge']({},_0x4d828a,_0x5833a6[_0xe915('0x3f')]);return db[_0xe915('0x2a')][_0xe915('0x46')](_0x4d828a)[_0xe915('0x40')](handleEntityNotFound(_0x329860,null))[_0xe915('0x40')](respondWithResult(_0x329860,null))[_0xe915('0x43')](handleError(_0x329860,null));};exports[_0xe915('0x47')]=function(_0x4fec35,_0x5c1be6){return db[_0xe915('0x2a')]['create'](_0x4fec35[_0xe915('0x48')],{})[_0xe915('0x40')](respondWithResult(_0x5c1be6,0xc9))[_0xe915('0x43')](handleError(_0x5c1be6,null));};exports['update']=function(_0x40fc0d,_0x414303){if(_0x40fc0d[_0xe915('0x48')]['id']){delete _0x40fc0d[_0xe915('0x48')]['id'];}return db[_0xe915('0x2a')]['find']({'where':{'id':_0x40fc0d[_0xe915('0x45')]['id']}})[_0xe915('0x40')](handleEntityNotFound(_0x414303,null))[_0xe915('0x40')](saveUpdates(_0x40fc0d['body'],null))[_0xe915('0x40')](respondWithResult(_0x414303,null))[_0xe915('0x43')](handleError(_0x414303,null));};exports[_0xe915('0x24')]=function(_0xaf62de,_0x2422e3){return db[_0xe915('0x2a')]['find']({'where':{'id':_0xaf62de[_0xe915('0x45')]['id']}})[_0xe915('0x40')](handleEntityNotFound(_0x2422e3,null))[_0xe915('0x40')](removeEntity(_0x2422e3,null))[_0xe915('0x43')](handleError(_0x2422e3,null));};exports[_0xe915('0x49')]=function(_0x4efdb2,_0x4cd343){return db[_0xe915('0x2a')][_0xe915('0x49')]()[_0xe915('0x40')](respondWithResult(_0x4cd343,null))['catch'](handleError(_0x4cd343,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa74=['path','rimraf','../../config/environment','./openchannelTransferReport.attributes','exports','define','OpenchannelTransferReport','report_openchannel_transfer','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x602ca8,_0x568e82){var _0x26e8ab=function(_0x3fb700){while(--_0x3fb700){_0x602ca8['push'](_0x602ca8['shift']());}};_0x26e8ab(++_0x568e82);}(_0xfa74,0x1d6));var _0x4fa7=function(_0x46f62c,_0x49eb41){_0x46f62c=_0x46f62c-0x0;var _0x46d994=_0xfa74[_0x46f62c];return _0x46d994;};'use strict';var _=require('lodash');var util=require(_0x4fa7('0x0'));var logger=require(_0x4fa7('0x1'))(_0x4fa7('0x2'));var moment=require(_0x4fa7('0x3'));var BPromise=require(_0x4fa7('0x4'));var rp=require(_0x4fa7('0x5'));var fs=require('fs');var path=require(_0x4fa7('0x6'));var rimraf=require(_0x4fa7('0x7'));var config=require(_0x4fa7('0x8'));var attributes=require(_0x4fa7('0x9'));module[_0x4fa7('0xa')]=function(_0x589a26,_0x163c31){return _0x589a26[_0x4fa7('0xb')](_0x4fa7('0xc'),attributes,{'tableName':_0x4fa7('0xd'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xd483=['moment','request-promise','path','rimraf','../../config/environment','./openchannelTransferReport.attributes','exports','define','OpenchannelTransferReport','report_openchannel_transfer','uniqueid','lodash','../../config/logger','api'];(function(_0x48ad97,_0x588ecf){var _0x40f742=function(_0x48c0b9){while(--_0x48c0b9){_0x48ad97['push'](_0x48ad97['shift']());}};_0x40f742(++_0x588ecf);}(_0xd483,0x15b));var _0x3d48=function(_0x38bb34,_0xd63c40){_0x38bb34=_0x38bb34-0x0;var _0x1a6669=_0xd483[_0x38bb34];return _0x1a6669;};'use strict';var _=require(_0x3d48('0x0'));var util=require('util');var logger=require(_0x3d48('0x1'))(_0x3d48('0x2'));var moment=require(_0x3d48('0x3'));var BPromise=require('bluebird');var rp=require(_0x3d48('0x4'));var fs=require('fs');var path=require(_0x3d48('0x5'));var rimraf=require(_0x3d48('0x6'));var config=require(_0x3d48('0x7'));var attributes=require(_0x3d48('0x8'));module[_0x3d48('0x9')]=function(_0x2b7a72,_0x6b0585){return _0x2b7a72[_0x3d48('0xa')](_0x3d48('0xb'),attributes,{'tableName':_0x3d48('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x3d48('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x1dd946,_0x920b03){var _0x3cc2ae=function(_0x5598bf){while(--_0x5598bf){_0x1dd946['push'](_0x1dd946['shift']());}};_0x3cc2ae(++_0x920b03);}(_0x9957,0x93));var _0x7995=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x9957[_0x19e35c];return _0x3e1fe8;};'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']('OpenchannelTransferReport,\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);});});}
\ No newline at end of file
+var _0x78d3=['../../config/environment','jayson/promise','client','http','request','then','info','OpenchannelTransferReport,\x20%s,\x20%s','debug','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x41ac7b,_0xb5d860){var _0x20bed9=function(_0x265d93){while(--_0x265d93){_0x41ac7b['push'](_0x41ac7b['shift']());}};_0x20bed9(++_0xb5d860);}(_0x78d3,0x73));var _0x378d=function(_0x4c04ce,_0x1a7063){_0x4c04ce=_0x4c04ce-0x0;var _0xe4aa88=_0x78d3[_0x4c04ce];return _0xe4aa88;};'use strict';var _=require(_0x378d('0x0'));var util=require(_0x378d('0x1'));var moment=require(_0x378d('0x2'));var BPromise=require(_0x378d('0x3'));var rs=require(_0x378d('0x4'));var fs=require('fs');var Redis=require(_0x378d('0x5'));var db=require(_0x378d('0x6'))['db'];var utils=require(_0x378d('0x7'));var logger=require(_0x378d('0x8'))(_0x378d('0x9'));var config=require(_0x378d('0xa'));var jayson=require(_0x378d('0xb'));var client=jayson[_0x378d('0xc')][_0x378d('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x47a99f,_0x4fef30,_0x1c880e){return new BPromise(function(_0x4b3ef5,_0x14112d){return client[_0x378d('0xe')](_0x47a99f,_0x1c880e)[_0x378d('0xf')](function(_0x4698d9){logger[_0x378d('0x10')](_0x378d('0x11'),_0x4fef30,'request\x20sent');logger[_0x378d('0x12')](_0x378d('0x13'),_0x4fef30,_0x378d('0x14'),JSON['stringify'](_0x4698d9));if(_0x4698d9[_0x378d('0x15')]){if(_0x4698d9['error']['code']===0x1f4){logger[_0x378d('0x15')](_0x378d('0x11'),_0x4fef30,_0x4698d9['error'][_0x378d('0x16')]);return _0x14112d(_0x4698d9[_0x378d('0x15')][_0x378d('0x16')]);}logger['error'](_0x378d('0x11'),_0x4fef30,_0x4698d9['error'][_0x378d('0x16')]);return _0x4b3ef5(_0x4698d9[_0x378d('0x15')][_0x378d('0x16')]);}else{logger[_0x378d('0x10')](_0x378d('0x11'),_0x4fef30,'request\x20sent');_0x4b3ef5(_0x4698d9[_0x378d('0x17')]['message']);}})[_0x378d('0x18')](function(_0x1602f9){logger[_0x378d('0x15')](_0x378d('0x11'),_0x4fef30,_0x1602f9);_0x14112d(_0x1602f9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c02=['delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../config/environment','./pause.controller','get','isAuthenticated','index','/:id','show','post','create','put','update'];(function(_0x2442b9,_0x3d87e9){var _0x31b571=function(_0x1e10ee){while(--_0x1e10ee){_0x2442b9['push'](_0x2442b9['shift']());}};_0x31b571(++_0x3d87e9);}(_0x0c02,0x142));var _0x20c0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c02[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x20c0('0x0'));var util=require(_0x20c0('0x1'));var path=require(_0x20c0('0x2'));var timeout=require(_0x20c0('0x3'));var express=require(_0x20c0('0x4'));var router=express[_0x20c0('0x5')]();var fs_extra=require(_0x20c0('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x20c0('0x7'));var controller=require(_0x20c0('0x8'));router[_0x20c0('0x9')]('/',auth[_0x20c0('0xa')](),controller[_0x20c0('0xb')]);router['get'](_0x20c0('0xc'),auth[_0x20c0('0xa')](),controller[_0x20c0('0xd')]);router[_0x20c0('0xe')]('/',auth[_0x20c0('0xa')](),controller[_0x20c0('0xf')]);router[_0x20c0('0x10')](_0x20c0('0xc'),auth[_0x20c0('0xa')](),controller[_0x20c0('0x11')]);router[_0x20c0('0x12')](_0x20c0('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0x20c0('0x13')]=router;
\ No newline at end of file
+var _0x826b=['put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./pause.controller','isAuthenticated','/:id','show','post','create'];(function(_0x2b7eb6,_0x14436f){var _0x74e4ec=function(_0x4dca5c){while(--_0x4dca5c){_0x2b7eb6['push'](_0x2b7eb6['shift']());}};_0x74e4ec(++_0x14436f);}(_0x826b,0xdc));var _0xb826=function(_0x356a12,_0x434032){_0x356a12=_0x356a12-0x0;var _0x41b03f=_0x826b[_0x356a12];return _0x41b03f;};'use strict';var multer=require(_0xb826('0x0'));var util=require(_0xb826('0x1'));var path=require(_0xb826('0x2'));var timeout=require(_0xb826('0x3'));var express=require(_0xb826('0x4'));var router=express[_0xb826('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xb826('0x6'));var interaction=require(_0xb826('0x7'));var config=require('../../config/environment');var controller=require(_0xb826('0x8'));router['get']('/',auth[_0xb826('0x9')](),controller['index']);router['get'](_0xb826('0xa'),auth['isAuthenticated'](),controller[_0xb826('0xb')]);router[_0xb826('0xc')]('/',auth['isAuthenticated'](),controller[_0xb826('0xd')]);router[_0xb826('0xe')](_0xb826('0xa'),auth[_0xb826('0x9')](),controller[_0xb826('0xf')]);router['delete'](_0xb826('0xa'),auth[_0xb826('0x9')](),controller[_0xb826('0x10')]);module[_0xb826('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd810=['exports','STRING'];(function(_0x2160a9,_0x3cbd9e){var _0xa88cf7=function(_0x51ab6f){while(--_0x51ab6f){_0x2160a9['push'](_0x2160a9['shift']());}};_0xa88cf7(++_0x3cbd9e);}(_0xd810,0x12e));var _0x0d81=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd810[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require('sequelize');module[_0x0d81('0x0')]={'name':{'type':Sequelize[_0x0d81('0x1')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x0d81('0x1')]}};
\ No newline at end of file
+var _0xf3dc=['sequelize','exports','STRING'];(function(_0x4d5c8d,_0x28e475){var _0x42e93b=function(_0x108a05){while(--_0x108a05){_0x4d5c8d['push'](_0x4d5c8d['shift']());}};_0x42e93b(++_0x28e475);}(_0xf3dc,0x78));var _0xcf3d=function(_0x5a2299,_0x3e2922){_0x5a2299=_0x5a2299-0x0;var _0xedff0f=_0xf3dc[_0x5a2299];return _0xedff0f;};'use strict';var Sequelize=require(_0xcf3d('0x0'));module[_0xcf3d('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0xcf3d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77e9=['merge','options','include','catch','show','includeAll','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','count','set','Content-Range','json','reject','then','get','Pauses','destroy','sendStatus','error','stack','name','index','map','Pause','rawAttributes','fieldName','type','key','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter'];(function(_0x4d45c1,_0x2beda1){var _0x244478=function(_0x11304c){while(--_0x11304c){_0x4d45c1['push'](_0x4d45c1['shift']());}};_0x244478(++_0x2beda1);}(_0x77e9,0x1c6));var _0x977e=function(_0x1e259c,_0x1021ab){_0x1e259c=_0x1e259c-0x0;var _0x5468e9=_0x77e9[_0x1e259c];return _0x5468e9;};'use strict';var emlformat=require(_0x977e('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x977e('0x1'));var jsonpatch=require(_0x977e('0x2'));var rp=require(_0x977e('0x3'));var moment=require(_0x977e('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x977e('0x5'));var path=require(_0x977e('0x6'));var sox=require(_0x977e('0x7'));var csv=require(_0x977e('0x8'));var ejs=require(_0x977e('0x9'));var fs=require('fs');var fs_extra=require(_0x977e('0xa'));var _=require(_0x977e('0xb'));var squel=require(_0x977e('0xc'));var crypto=require(_0x977e('0xd'));var jsforce=require(_0x977e('0xe'));var deskjs=require(_0x977e('0xf'));var toCsv=require(_0x977e('0x8'));var querystring=require(_0x977e('0x10'));var Papa=require(_0x977e('0x11'));var Redis=require(_0x977e('0x12'));var authService=require(_0x977e('0x13'));var qs=require(_0x977e('0x14'));var as=require(_0x977e('0x15'));var hardwareService=require(_0x977e('0x16'));var logger=require('../../config/logger')(_0x977e('0x17'));var utils=require(_0x977e('0x18'));var config=require(_0x977e('0x19'));var licenseUtil=require(_0x977e('0x1a'));var db=require(_0x977e('0x1b'))['db'];function respondWithStatusCode(_0x57b8b6,_0x3ed5b5){_0x3ed5b5=_0x3ed5b5||0xcc;return function(_0x40cf16){if(_0x40cf16){return _0x57b8b6['sendStatus'](_0x3ed5b5);}return _0x57b8b6[_0x977e('0x1c')](_0x3ed5b5)[_0x977e('0x1d')]();};}function respondWithResult(_0x25e732,_0x447aa4){_0x447aa4=_0x447aa4||0xc8;return function(_0x337975){if(_0x337975){return _0x25e732[_0x977e('0x1c')](_0x447aa4)['json'](_0x337975);}};}function respondWithFilteredResult(_0xbbb4c0,_0x173ef5){return function(_0x2af584){if(_0x2af584){var _0x5a2c4c=typeof _0x173ef5[_0x977e('0x1e')]===_0x977e('0x1f')&&typeof _0x173ef5['limit']===_0x977e('0x1f');var _0x10162a=_0x2af584[_0x977e('0x20')];var _0x104504=_0x5a2c4c?0x0:_0x173ef5['offset'];var _0x4561e9=_0x5a2c4c?_0x2af584[_0x977e('0x20')]:_0x173ef5[_0x977e('0x1e')]+_0x173ef5['limit'];var _0xa91d0a;if(_0x4561e9>=_0x10162a){_0x4561e9=_0x10162a;_0xa91d0a=0xc8;}else{_0xa91d0a=0xce;}_0xbbb4c0[_0x977e('0x1c')](_0xa91d0a);return _0xbbb4c0[_0x977e('0x21')](_0x977e('0x22'),_0x104504+'-'+_0x4561e9+'/'+_0x10162a)[_0x977e('0x23')](_0x2af584);}return null;};}function patchUpdates(_0x48a8f3){return function(_0x2efe4e){try{jsonpatch['apply'](_0x2efe4e,_0x48a8f3,!![]);}catch(_0x2ebb4d){return BPromise[_0x977e('0x24')](_0x2ebb4d);}return _0x2efe4e['save']();};}function saveUpdates(_0x18c16b,_0x468d10){return function(_0x3f92bd){if(_0x3f92bd){return _0x3f92bd['update'](_0x18c16b)[_0x977e('0x25')](function(_0x474034){return _0x474034;});}return null;};}function removeEntity(_0x4835a9,_0x494758){return function(_0x153838){if(_0x153838){return _0x153838['destroy']()['then'](function(){var _0xb61311=_0x153838[_0x977e('0x26')]({'plain':!![]});var _0x4bf7c7=_0x977e('0x27');return db['UserProfileResource'][_0x977e('0x28')]({'where':{'type':_0x4bf7c7,'resourceId':_0xb61311['id']}})[_0x977e('0x25')](function(){return _0x153838;});})[_0x977e('0x25')](function(){_0x4835a9[_0x977e('0x1c')](0xcc)[_0x977e('0x1d')]();});}};}function handleEntityNotFound(_0x39cb3e,_0x23b253){return function(_0x4caae2){if(!_0x4caae2){_0x39cb3e[_0x977e('0x29')](0x194);}return _0x4caae2;};}function handleError(_0x5c3bb0,_0x3a4b04){_0x3a4b04=_0x3a4b04||0x1f4;return function(_0x85a99b){logger[_0x977e('0x2a')](_0x85a99b[_0x977e('0x2b')]);if(_0x85a99b[_0x977e('0x2c')]){delete _0x85a99b[_0x977e('0x2c')];}_0x5c3bb0[_0x977e('0x1c')](_0x3a4b04)['send'](_0x85a99b);};}exports[_0x977e('0x2d')]=function(_0x16e6d9,_0x327ac3){var _0xc1cb47={},_0x1293f8={},_0x58f71e={'count':0x0,'rows':[]};var _0x11c2b7=_[_0x977e('0x2e')](db[_0x977e('0x2f')][_0x977e('0x30')],function(_0x214bba){return{'name':_0x214bba[_0x977e('0x31')],'type':_0x214bba[_0x977e('0x32')][_0x977e('0x33')]};});_0x1293f8['model']=_['map'](_0x11c2b7,_0x977e('0x2c'));_0x1293f8[_0x977e('0x34')]=_[_0x977e('0x35')](_0x16e6d9[_0x977e('0x34')]);_0x1293f8[_0x977e('0x36')]=_['intersection'](_0x1293f8[_0x977e('0x37')],_0x1293f8['query']);_0xc1cb47['attributes']=_[_0x977e('0x38')](_0x1293f8['model'],qs[_0x977e('0x39')](_0x16e6d9[_0x977e('0x34')][_0x977e('0x39')]));_0xc1cb47[_0x977e('0x3a')]=_0xc1cb47[_0x977e('0x3a')][_0x977e('0x3b')]?_0xc1cb47[_0x977e('0x3a')]:_0x1293f8[_0x977e('0x37')];if(!_0x16e6d9[_0x977e('0x34')][_0x977e('0x3c')](_0x977e('0x3d'))){_0xc1cb47['limit']=qs[_0x977e('0x3e')](_0x16e6d9['query']['limit']);_0xc1cb47[_0x977e('0x1e')]=qs[_0x977e('0x1e')](_0x16e6d9[_0x977e('0x34')][_0x977e('0x1e')]);}_0xc1cb47[_0x977e('0x3f')]=qs[_0x977e('0x40')](_0x16e6d9[_0x977e('0x34')]['sort']);_0xc1cb47[_0x977e('0x41')]=qs[_0x977e('0x36')](_[_0x977e('0x42')](_0x16e6d9[_0x977e('0x34')],_0x1293f8[_0x977e('0x36')]),_0x11c2b7);if(_0x16e6d9[_0x977e('0x34')][_0x977e('0x43')]){_0xc1cb47[_0x977e('0x41')]=_[_0x977e('0x44')](_0xc1cb47[_0x977e('0x41')],{'$or':_[_0x977e('0x2e')](_0x11c2b7,function(_0x1a5330){if(_0x1a5330['type']!=='VIRTUAL'){var _0x1690ac={};_0x1690ac[_0x1a5330[_0x977e('0x2c')]]={'$like':'%'+_0x16e6d9[_0x977e('0x34')][_0x977e('0x43')]+'%'};return _0x1690ac;}})});}_0xc1cb47=_['merge']({},_0xc1cb47,_0x16e6d9[_0x977e('0x45')]);var _0x743762={'where':_0xc1cb47[_0x977e('0x41')]};return db[_0x977e('0x2f')][_0x977e('0x20')](_0x743762)[_0x977e('0x25')](function(_0x40176c){_0x58f71e[_0x977e('0x20')]=_0x40176c;if(_0x16e6d9['query']['includeAll']){_0xc1cb47[_0x977e('0x46')]=[{'all':!![]}];}return db[_0x977e('0x2f')]['findAll'](_0xc1cb47);})[_0x977e('0x25')](function(_0x5beca5){_0x58f71e['rows']=_0x5beca5;return _0x58f71e;})[_0x977e('0x25')](respondWithFilteredResult(_0x327ac3,_0xc1cb47))[_0x977e('0x47')](handleError(_0x327ac3,null));};exports[_0x977e('0x48')]=function(_0x2bb219,_0x151bfb){var _0x500dc9={'raw':!![],'where':{'id':_0x2bb219['params']['id']}},_0x5a5aab={};_0x5a5aab[_0x977e('0x37')]=_[_0x977e('0x35')](db[_0x977e('0x2f')][_0x977e('0x30')]);_0x5a5aab['query']=_['keys'](_0x2bb219[_0x977e('0x34')]);_0x5a5aab['filters']=_[_0x977e('0x38')](_0x5a5aab[_0x977e('0x37')],_0x5a5aab['query']);_0x500dc9[_0x977e('0x3a')]=_[_0x977e('0x38')](_0x5a5aab['model'],qs['fields'](_0x2bb219[_0x977e('0x34')][_0x977e('0x39')]));_0x500dc9['attributes']=_0x500dc9[_0x977e('0x3a')][_0x977e('0x3b')]?_0x500dc9[_0x977e('0x3a')]:_0x5a5aab[_0x977e('0x37')];if(_0x2bb219[_0x977e('0x34')][_0x977e('0x49')]){_0x500dc9[_0x977e('0x46')]=[{'all':!![]}];}_0x500dc9=_[_0x977e('0x44')]({},_0x500dc9,_0x2bb219[_0x977e('0x45')]);return db[_0x977e('0x2f')]['find'](_0x500dc9)[_0x977e('0x25')](handleEntityNotFound(_0x151bfb,null))[_0x977e('0x25')](respondWithResult(_0x151bfb,null))[_0x977e('0x47')](handleError(_0x151bfb,null));};exports[_0x977e('0x4a')]=function(_0x38b203,_0x5506e8){return db[_0x977e('0x2f')][_0x977e('0x4a')](_0x38b203['body'],{})['then'](function(_0x45fbb8){var _0x5ebdf3=_0x38b203[_0x977e('0x4b')]['get']({'plain':!![]});if(!_0x5ebdf3)throw new Error(_0x977e('0x4c'));if(_0x5ebdf3[_0x977e('0x4d')]===_0x977e('0x4b')){var _0x2053b0=_0x45fbb8[_0x977e('0x26')]({'plain':!![]});var _0x39f9b6=_0x977e('0x27');return db[_0x977e('0x4e')][_0x977e('0x4f')]({'where':{'name':_0x39f9b6,'userProfileId':_0x5ebdf3[_0x977e('0x50')]},'raw':!![]})[_0x977e('0x25')](function(_0x4b5198){if(_0x4b5198&&_0x4b5198[_0x977e('0x51')]===0x0){return db[_0x977e('0x52')][_0x977e('0x4a')]({'name':_0x2053b0[_0x977e('0x2c')],'resourceId':_0x2053b0['id'],'type':_0x4b5198['name'],'sectionId':_0x4b5198['id']},{})['then'](function(){return _0x45fbb8;});}else{return _0x45fbb8;}})[_0x977e('0x47')](function(_0x13428a){logger[_0x977e('0x2a')](_0x977e('0x53'),_0x13428a);throw _0x13428a;});}return _0x45fbb8;})['then'](respondWithResult(_0x5506e8,0xc9))['catch'](handleError(_0x5506e8,null));};exports[_0x977e('0x54')]=function(_0x5ee9e4,_0x3578a7){if(_0x5ee9e4[_0x977e('0x55')]['id']){delete _0x5ee9e4[_0x977e('0x55')]['id'];}return db[_0x977e('0x2f')][_0x977e('0x4f')]({'where':{'id':_0x5ee9e4[_0x977e('0x56')]['id']}})[_0x977e('0x25')](handleEntityNotFound(_0x3578a7,null))[_0x977e('0x25')](saveUpdates(_0x5ee9e4['body'],null))[_0x977e('0x25')](respondWithResult(_0x3578a7,null))[_0x977e('0x47')](handleError(_0x3578a7,null));};exports[_0x977e('0x28')]=function(_0x2b3eaf,_0x397724){return db['Pause']['find']({'where':{'id':_0x2b3eaf[_0x977e('0x56')]['id']}})[_0x977e('0x25')](handleEntityNotFound(_0x397724,null))['then'](removeEntity(_0x397724,null))[_0x977e('0x47')](handleError(_0x397724,null));};
\ No newline at end of file
+var _0x0e54=['fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','Content-Range','json','apply','save','then','destroy','get','Pauses','UserProfileResource','error','stack','name','send','index','map','Pause','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs'];(function(_0x168382,_0x3353b2){var _0xfff9be=function(_0x3c85f5){while(--_0x3c85f5){_0x168382['push'](_0x168382['shift']());}};_0xfff9be(++_0x3353b2);}(_0x0e54,0x1a8));var _0x40e5=function(_0x2f494d,_0x121424){_0x2f494d=_0x2f494d-0x0;var _0x158ec4=_0x0e54[_0x2f494d];return _0x158ec4;};'use strict';var emlformat=require(_0x40e5('0x0'));var rimraf=require(_0x40e5('0x1'));var zipdir=require(_0x40e5('0x2'));var jsonpatch=require(_0x40e5('0x3'));var rp=require(_0x40e5('0x4'));var moment=require(_0x40e5('0x5'));var BPromise=require(_0x40e5('0x6'));var Mustache=require(_0x40e5('0x7'));var util=require(_0x40e5('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x40e5('0x9'));var ejs=require(_0x40e5('0xa'));var fs=require('fs');var fs_extra=require(_0x40e5('0xb'));var _=require(_0x40e5('0xc'));var squel=require(_0x40e5('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x40e5('0xe'));var toCsv=require('to-csv');var querystring=require(_0x40e5('0xf'));var Papa=require(_0x40e5('0x10'));var Redis=require(_0x40e5('0x11'));var authService=require(_0x40e5('0x12'));var qs=require(_0x40e5('0x13'));var as=require(_0x40e5('0x14'));var hardwareService=require(_0x40e5('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x40e5('0x16'));var config=require(_0x40e5('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x40e5('0x18'))['db'];function respondWithStatusCode(_0x504731,_0x30e170){_0x30e170=_0x30e170||0xcc;return function(_0x2ad8b2){if(_0x2ad8b2){return _0x504731[_0x40e5('0x19')](_0x30e170);}return _0x504731['status'](_0x30e170)[_0x40e5('0x1a')]();};}function respondWithResult(_0x14cae7,_0x406ba7){_0x406ba7=_0x406ba7||0xc8;return function(_0x3255c4){if(_0x3255c4){return _0x14cae7[_0x40e5('0x1b')](_0x406ba7)['json'](_0x3255c4);}};}function respondWithFilteredResult(_0xd2d674,_0x221548){return function(_0x26c899){if(_0x26c899){var _0x59d199=typeof _0x221548[_0x40e5('0x1c')]===_0x40e5('0x1d')&&typeof _0x221548[_0x40e5('0x1e')]===_0x40e5('0x1d');var _0x53f9ee=_0x26c899[_0x40e5('0x1f')];var _0x202715=_0x59d199?0x0:_0x221548[_0x40e5('0x1c')];var _0x3a6244=_0x59d199?_0x26c899[_0x40e5('0x1f')]:_0x221548[_0x40e5('0x1c')]+_0x221548[_0x40e5('0x1e')];var _0x17bf5d;if(_0x3a6244>=_0x53f9ee){_0x3a6244=_0x53f9ee;_0x17bf5d=0xc8;}else{_0x17bf5d=0xce;}_0xd2d674[_0x40e5('0x1b')](_0x17bf5d);return _0xd2d674[_0x40e5('0x20')](_0x40e5('0x21'),_0x202715+'-'+_0x3a6244+'/'+_0x53f9ee)[_0x40e5('0x22')](_0x26c899);}return null;};}function patchUpdates(_0x272b82){return function(_0x334793){try{jsonpatch[_0x40e5('0x23')](_0x334793,_0x272b82,!![]);}catch(_0x37f463){return BPromise['reject'](_0x37f463);}return _0x334793[_0x40e5('0x24')]();};}function saveUpdates(_0x1bc2c6,_0x137304){return function(_0x159f9d){if(_0x159f9d){return _0x159f9d['update'](_0x1bc2c6)[_0x40e5('0x25')](function(_0x58b378){return _0x58b378;});}return null;};}function removeEntity(_0x4ea53f,_0x31b2f0){return function(_0x85f2ea){if(_0x85f2ea){return _0x85f2ea[_0x40e5('0x26')]()[_0x40e5('0x25')](function(){var _0x10abdc=_0x85f2ea[_0x40e5('0x27')]({'plain':!![]});var _0x3225f7=_0x40e5('0x28');return db[_0x40e5('0x29')][_0x40e5('0x26')]({'where':{'type':_0x3225f7,'resourceId':_0x10abdc['id']}})[_0x40e5('0x25')](function(){return _0x85f2ea;});})['then'](function(){_0x4ea53f[_0x40e5('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3dad6f,_0x3c1b94){return function(_0x406511){if(!_0x406511){_0x3dad6f[_0x40e5('0x19')](0x194);}return _0x406511;};}function handleError(_0x57adf7,_0x18f869){_0x18f869=_0x18f869||0x1f4;return function(_0x4b67b7){logger[_0x40e5('0x2a')](_0x4b67b7[_0x40e5('0x2b')]);if(_0x4b67b7[_0x40e5('0x2c')]){delete _0x4b67b7[_0x40e5('0x2c')];}_0x57adf7[_0x40e5('0x1b')](_0x18f869)[_0x40e5('0x2d')](_0x4b67b7);};}exports[_0x40e5('0x2e')]=function(_0x369374,_0x16de67){var _0x4d2a0c={},_0x214ec2={},_0x1dfae7={'count':0x0,'rows':[]};var _0x326450=_[_0x40e5('0x2f')](db[_0x40e5('0x30')][_0x40e5('0x31')],function(_0x47f7c4){return{'name':_0x47f7c4[_0x40e5('0x32')],'type':_0x47f7c4[_0x40e5('0x33')]['key']};});_0x214ec2[_0x40e5('0x34')]=_[_0x40e5('0x2f')](_0x326450,_0x40e5('0x2c'));_0x214ec2['query']=_[_0x40e5('0x35')](_0x369374[_0x40e5('0x36')]);_0x214ec2[_0x40e5('0x37')]=_[_0x40e5('0x38')](_0x214ec2[_0x40e5('0x34')],_0x214ec2['query']);_0x4d2a0c[_0x40e5('0x39')]=_['intersection'](_0x214ec2[_0x40e5('0x34')],qs[_0x40e5('0x3a')](_0x369374[_0x40e5('0x36')][_0x40e5('0x3a')]));_0x4d2a0c[_0x40e5('0x39')]=_0x4d2a0c[_0x40e5('0x39')]['length']?_0x4d2a0c[_0x40e5('0x39')]:_0x214ec2['model'];if(!_0x369374[_0x40e5('0x36')][_0x40e5('0x3b')](_0x40e5('0x3c'))){_0x4d2a0c[_0x40e5('0x1e')]=qs['limit'](_0x369374[_0x40e5('0x36')][_0x40e5('0x1e')]);_0x4d2a0c[_0x40e5('0x1c')]=qs[_0x40e5('0x1c')](_0x369374[_0x40e5('0x36')][_0x40e5('0x1c')]);}_0x4d2a0c[_0x40e5('0x3d')]=qs[_0x40e5('0x3e')](_0x369374[_0x40e5('0x36')]['sort']);_0x4d2a0c[_0x40e5('0x3f')]=qs[_0x40e5('0x37')](_[_0x40e5('0x40')](_0x369374['query'],_0x214ec2[_0x40e5('0x37')]),_0x326450);if(_0x369374[_0x40e5('0x36')][_0x40e5('0x41')]){_0x4d2a0c['where']=_[_0x40e5('0x42')](_0x4d2a0c['where'],{'$or':_['map'](_0x326450,function(_0x16b066){if(_0x16b066[_0x40e5('0x33')]!==_0x40e5('0x43')){var _0x4828b8={};_0x4828b8[_0x16b066[_0x40e5('0x2c')]]={'$like':'%'+_0x369374[_0x40e5('0x36')][_0x40e5('0x41')]+'%'};return _0x4828b8;}})});}_0x4d2a0c=_[_0x40e5('0x42')]({},_0x4d2a0c,_0x369374[_0x40e5('0x44')]);var _0x5a7515={'where':_0x4d2a0c['where']};return db[_0x40e5('0x30')][_0x40e5('0x1f')](_0x5a7515)['then'](function(_0x2db3ca){_0x1dfae7['count']=_0x2db3ca;if(_0x369374['query'][_0x40e5('0x45')]){_0x4d2a0c['include']=[{'all':!![]}];}return db[_0x40e5('0x30')][_0x40e5('0x46')](_0x4d2a0c);})[_0x40e5('0x25')](function(_0x27ebf2){_0x1dfae7[_0x40e5('0x47')]=_0x27ebf2;return _0x1dfae7;})[_0x40e5('0x25')](respondWithFilteredResult(_0x16de67,_0x4d2a0c))[_0x40e5('0x48')](handleError(_0x16de67,null));};exports[_0x40e5('0x49')]=function(_0x5272c8,_0x49aec6){var _0x3c8d07={'raw':!![],'where':{'id':_0x5272c8[_0x40e5('0x4a')]['id']}},_0x57672e={};_0x57672e[_0x40e5('0x34')]=_[_0x40e5('0x35')](db[_0x40e5('0x30')][_0x40e5('0x31')]);_0x57672e['query']=_[_0x40e5('0x35')](_0x5272c8['query']);_0x57672e['filters']=_[_0x40e5('0x38')](_0x57672e[_0x40e5('0x34')],_0x57672e[_0x40e5('0x36')]);_0x3c8d07['attributes']=_[_0x40e5('0x38')](_0x57672e['model'],qs[_0x40e5('0x3a')](_0x5272c8[_0x40e5('0x36')]['fields']));_0x3c8d07[_0x40e5('0x39')]=_0x3c8d07[_0x40e5('0x39')][_0x40e5('0x4b')]?_0x3c8d07['attributes']:_0x57672e[_0x40e5('0x34')];if(_0x5272c8['query'][_0x40e5('0x45')]){_0x3c8d07[_0x40e5('0x4c')]=[{'all':!![]}];}_0x3c8d07=_['merge']({},_0x3c8d07,_0x5272c8['options']);return db[_0x40e5('0x30')][_0x40e5('0x4d')](_0x3c8d07)[_0x40e5('0x25')](handleEntityNotFound(_0x49aec6,null))[_0x40e5('0x25')](respondWithResult(_0x49aec6,null))[_0x40e5('0x48')](handleError(_0x49aec6,null));};exports[_0x40e5('0x4e')]=function(_0x273d0f,_0x5ab7ee){return db['Pause']['create'](_0x273d0f[_0x40e5('0x4f')],{})[_0x40e5('0x25')](function(_0x4539d3){var _0x242988=_0x273d0f[_0x40e5('0x50')]['get']({'plain':!![]});if(!_0x242988)throw new Error(_0x40e5('0x51'));if(_0x242988[_0x40e5('0x52')]===_0x40e5('0x50')){var _0x68cb76=_0x4539d3['get']({'plain':!![]});var _0x538167=_0x40e5('0x28');return db[_0x40e5('0x53')]['find']({'where':{'name':_0x538167,'userProfileId':_0x242988[_0x40e5('0x54')]},'raw':!![]})[_0x40e5('0x25')](function(_0x5c7b59){if(_0x5c7b59&&_0x5c7b59[_0x40e5('0x55')]===0x0){return db[_0x40e5('0x29')][_0x40e5('0x4e')]({'name':_0x68cb76[_0x40e5('0x2c')],'resourceId':_0x68cb76['id'],'type':_0x5c7b59[_0x40e5('0x2c')],'sectionId':_0x5c7b59['id']},{})[_0x40e5('0x25')](function(){return _0x4539d3;});}else{return _0x4539d3;}})[_0x40e5('0x48')](function(_0x492ea1){logger[_0x40e5('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x492ea1);throw _0x492ea1;});}return _0x4539d3;})[_0x40e5('0x25')](respondWithResult(_0x5ab7ee,0xc9))[_0x40e5('0x48')](handleError(_0x5ab7ee,null));};exports[_0x40e5('0x56')]=function(_0x490863,_0x7286ff){if(_0x490863['body']['id']){delete _0x490863[_0x40e5('0x4f')]['id'];}return db[_0x40e5('0x30')][_0x40e5('0x4d')]({'where':{'id':_0x490863[_0x40e5('0x4a')]['id']}})[_0x40e5('0x25')](handleEntityNotFound(_0x7286ff,null))[_0x40e5('0x25')](saveUpdates(_0x490863[_0x40e5('0x4f')],null))[_0x40e5('0x25')](respondWithResult(_0x7286ff,null))[_0x40e5('0x48')](handleError(_0x7286ff,null));};exports[_0x40e5('0x26')]=function(_0xc91e91,_0x5ef0eb){return db[_0x40e5('0x30')][_0x40e5('0x4d')]({'where':{'id':_0xc91e91[_0x40e5('0x4a')]['id']}})[_0x40e5('0x25')](handleEntityNotFound(_0x5ef0eb,null))[_0x40e5('0x25')](removeEntity(_0x5ef0eb,null))[_0x40e5('0x48')](handleError(_0x5ef0eb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./pause.attributes','exports','define','tools_pauses'];(function(_0x5d2e6b,_0x224a92){var _0x4b3533=function(_0x50862d){while(--_0x50862d){_0x5d2e6b['push'](_0x5d2e6b['shift']());}};_0x4b3533(++_0x224a92);}(_0x5fc3,0xa8));var _0x35fc=function(_0xa9eaa0,_0x4ba2b4){_0xa9eaa0=_0xa9eaa0-0x0;var _0x30897a=_0x5fc3[_0xa9eaa0];return _0x30897a;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('Pause',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x53ec=['bluebird','path','../../config/environment','./pause.attributes','define','Pause','lodash','util','../../config/logger','api','moment'];(function(_0x1b0279,_0x11b1e7){var _0x5da1d5=function(_0x36bce9){while(--_0x36bce9){_0x1b0279['push'](_0x1b0279['shift']());}};_0x5da1d5(++_0x11b1e7);}(_0x53ec,0x192));var _0xc53e=function(_0x5c1ddc,_0x587040){_0x5c1ddc=_0x5c1ddc-0x0;var _0x542a11=_0x53ec[_0x5c1ddc];return _0x542a11;};'use strict';var _=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var logger=require(_0xc53e('0x2'))(_0xc53e('0x3'));var moment=require(_0xc53e('0x4'));var BPromise=require(_0xc53e('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xc53e('0x6'));var rimraf=require('rimraf');var config=require(_0xc53e('0x7'));var attributes=require(_0xc53e('0x8'));module['exports']=function(_0x2f1414,_0x4f989b){return _0x2f1414[_0xc53e('0x9')](_0xc53e('0xa'),attributes,{'tableName':'tools_pauses','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['message','request\x20sent','result','catch','Pause','find','options','raw','where','attributes','map','include','model','ShowPause','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Pause,\x20%s,\x20%s','debug','stringify','error','code'];(function(_0x29e553,_0x551e52){var _0xff9356=function(_0x5aed06){while(--_0x5aed06){_0x29e553['push'](_0x29e553['shift']());}};_0xff9356(++_0x551e52);}(_0x7a54,0x106));var _0x47a5=function(_0xc205d9,_0x200ed7){_0xc205d9=_0xc205d9-0x0;var _0x4abb13=_0x7a54[_0xc205d9];return _0x4abb13;};'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')]('Pause,\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['ShowPause']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')]({'raw':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')][_0x47a5('0x18')]===undefined?!![]:![]:!![],'where':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x19')]||null:null,'attributes':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x1a')]||null:null,'include':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')]['include']?_[_0x47a5('0x1b')](_0x5247fd[_0x47a5('0x17')][_0x47a5('0x1c')],function(_0x7a9f9e){return{'model':db[_0x7a9f9e['model']],'as':_0x7a9f9e['as'],'attributes':_0x7a9f9e[_0x47a5('0x1a')],'include':_0x7a9f9e[_0x47a5('0x1c')]?_['map'](_0x7a9f9e[_0x47a5('0x1c')],function(_0xc4cd63){return{'model':db[_0xc4cd63[_0x47a5('0x1d')]],'as':_0xc4cd63['as'],'attributes':_0xc4cd63[_0x47a5('0x1a')],'include':_0xc4cd63[_0x47a5('0x1c')]?_['map'](_0xc4cd63['include'],function(_0x136745){return{'model':db[_0x136745['model']],'as':_0x136745['as'],'attributes':_0x136745[_0x47a5('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x23cb77){logger[_0x47a5('0xb')](_0x47a5('0x1e'),_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1e'),_0x5247fd,JSON[_0x47a5('0xe')](_0x23cb77));_0xaf70a6(_0x23cb77);})[_0x47a5('0x14')](function(_0x136b14){logger[_0x47a5('0xf')](_0x47a5('0x1e'),_0x136b14[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81[_0x47a5('0xf')](0x1f4,_0x136b14[_0x47a5('0x11')]));});});};
\ No newline at end of file
+var _0x7a54=['message','request\x20sent','result','catch','Pause','find','options','raw','where','attributes','map','include','model','ShowPause','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Pause,\x20%s,\x20%s','debug','stringify','error','code'];(function(_0x20d60b,_0x3a772b){var _0x488dcd=function(_0x2fc77a){while(--_0x2fc77a){_0x20d60b['push'](_0x20d60b['shift']());}};_0x488dcd(++_0x3a772b);}(_0x7a54,0x106));var _0x47a5=function(_0x2160e8,_0x30c17d){_0x2160e8=_0x2160e8-0x0;var _0x5609d0=_0x7a54[_0x2160e8];return _0x5609d0;};'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')]('Pause,\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['ShowPause']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')]({'raw':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')][_0x47a5('0x18')]===undefined?!![]:![]:!![],'where':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x19')]||null:null,'attributes':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x1a')]||null:null,'include':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')]['include']?_[_0x47a5('0x1b')](_0x5247fd[_0x47a5('0x17')][_0x47a5('0x1c')],function(_0x7a9f9e){return{'model':db[_0x7a9f9e['model']],'as':_0x7a9f9e['as'],'attributes':_0x7a9f9e[_0x47a5('0x1a')],'include':_0x7a9f9e[_0x47a5('0x1c')]?_['map'](_0x7a9f9e[_0x47a5('0x1c')],function(_0xc4cd63){return{'model':db[_0xc4cd63[_0x47a5('0x1d')]],'as':_0xc4cd63['as'],'attributes':_0xc4cd63[_0x47a5('0x1a')],'include':_0xc4cd63[_0x47a5('0x1c')]?_['map'](_0xc4cd63['include'],function(_0x136745){return{'model':db[_0x136745['model']],'as':_0x136745['as'],'attributes':_0x136745[_0x47a5('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x23cb77){logger[_0x47a5('0xb')](_0x47a5('0x1e'),_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1e'),_0x5247fd,JSON[_0x47a5('0xe')](_0x23cb77));_0xaf70a6(_0x23cb77);})[_0x47a5('0x14')](function(_0x136b14){logger[_0x47a5('0xf')](_0x47a5('0x1e'),_0x136b14[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81[_0x47a5('0xf')](0x1f4,_0x136b14[_0x47a5('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb99=['originalname','replace','format','%s-%s%s','basename','extname','now','post','single','file','upload','webhookPost','put','update','delete','multer','path','Router','fs-extra','../../components/auth/service','../../config/environment','./plugin.controller','isAuthenticated','get','/webhook','webhookGet','/:id','show','download','diskStorage','join'];(function(_0x77be2b,_0x3e8dab){var _0x45eac0=function(_0x1137ec){while(--_0x1137ec){_0x77be2b['push'](_0x77be2b['shift']());}};_0x45eac0(++_0x3e8dab);}(_0xcb99,0x8b));var _0x9cb9=function(_0x485b5a,_0x2b289b){_0x485b5a=_0x485b5a-0x0;var _0xd2b34d=_0xcb99[_0x485b5a];return _0xd2b34d;};'use strict';var multer=require(_0x9cb9('0x0'));var util=require('util');var path=require(_0x9cb9('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x9cb9('0x2')]();var fs_extra=require(_0x9cb9('0x3'));var auth=require(_0x9cb9('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x9cb9('0x5'));var controller=require(_0x9cb9('0x6'));router['get']('/',auth[_0x9cb9('0x7')](),controller['index']);router[_0x9cb9('0x8')](_0x9cb9('0x9'),controller[_0x9cb9('0xa')]);router[_0x9cb9('0x8')](_0x9cb9('0xb'),auth[_0x9cb9('0x7')](),controller[_0x9cb9('0xc')]);router[_0x9cb9('0x8')]('/:id/download',auth['isAuthenticated'](),controller[_0x9cb9('0xd')]);var upload=multer({'storage':multer[_0x9cb9('0xe')]({'destination':function(_0x1b4fa6,_0x5a0ac7,_0x3be02c){_0x3be02c(null,path[_0x9cb9('0xf')](config['root'],'server/files/plugins'));},'filename':function(_0x227d49,_0x2e687e,_0x3382c8){_0x2e687e[_0x9cb9('0x10')]=_0x2e687e['originalname'][_0x9cb9('0x11')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x3382c8(null,util[_0x9cb9('0x12')](_0x9cb9('0x13'),path[_0x9cb9('0x14')](_0x2e687e[_0x9cb9('0x10')],path[_0x9cb9('0x15')](_0x2e687e[_0x9cb9('0x10')])),Date[_0x9cb9('0x16')](),path[_0x9cb9('0x15')](_0x2e687e[_0x9cb9('0x10')])));}})});router[_0x9cb9('0x17')]('/',upload[_0x9cb9('0x18')](_0x9cb9('0x19')),controller[_0x9cb9('0x1a')]);router[_0x9cb9('0x17')](_0x9cb9('0x9'),controller[_0x9cb9('0x1b')]);router[_0x9cb9('0x1c')]('/:id',auth['isAuthenticated'](),controller[_0x9cb9('0x1d')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x9cb9('0x1e')]);module['exports']=router;
\ No newline at end of file
+var _0xe13a=['./plugin.controller','get','isAuthenticated','index','webhookGet','/:id','show','/:id/download','download','join','root','server/files/plugins','originalname','extname','now','single','upload','post','/webhook','webhookPost','put','update','delete','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x374cb0,_0x492d08){var _0x4ef5f4=function(_0x2d6c47){while(--_0x2d6c47){_0x374cb0['push'](_0x374cb0['shift']());}};_0x4ef5f4(++_0x492d08);}(_0xe13a,0x178));var _0xae13=function(_0x31a261,_0xf86b2c){_0x31a261=_0x31a261-0x0;var _0x25866f=_0xe13a[_0x31a261];return _0x25866f;};'use strict';var multer=require('multer');var util=require(_0xae13('0x0'));var path=require(_0xae13('0x1'));var timeout=require(_0xae13('0x2'));var express=require(_0xae13('0x3'));var router=express['Router']();var fs_extra=require(_0xae13('0x4'));var auth=require(_0xae13('0x5'));var interaction=require(_0xae13('0x6'));var config=require(_0xae13('0x7'));var controller=require(_0xae13('0x8'));router[_0xae13('0x9')]('/',auth[_0xae13('0xa')](),controller[_0xae13('0xb')]);router[_0xae13('0x9')]('/webhook',controller[_0xae13('0xc')]);router[_0xae13('0x9')](_0xae13('0xd'),auth[_0xae13('0xa')](),controller[_0xae13('0xe')]);router[_0xae13('0x9')](_0xae13('0xf'),auth[_0xae13('0xa')](),controller[_0xae13('0x10')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x404b0e,_0x83de98,_0x3d6a85){_0x3d6a85(null,path[_0xae13('0x11')](config[_0xae13('0x12')],_0xae13('0x13')));},'filename':function(_0x1505c5,_0x4dd599,_0x42d869){_0x4dd599[_0xae13('0x14')]=_0x4dd599['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x42d869(null,util['format']('%s-%s%s',path['basename'](_0x4dd599[_0xae13('0x14')],path[_0xae13('0x15')](_0x4dd599[_0xae13('0x14')])),Date[_0xae13('0x16')](),path[_0xae13('0x15')](_0x4dd599[_0xae13('0x14')])));}})});router['post']('/',upload[_0xae13('0x17')]('file'),controller[_0xae13('0x18')]);router[_0xae13('0x19')](_0xae13('0x1a'),controller[_0xae13('0x1b')]);router[_0xae13('0x1c')](_0xae13('0xd'),auth[_0xae13('0xa')](),controller[_0xae13('0x1d')]);router[_0xae13('0x1e')]('/:id',auth[_0xae13('0xa')](),controller['delete']);module[_0xae13('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ac4=['ENUM','html','script','TEXT','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','adminOnly','never','always','Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.','sequelize','exports','STRING'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x0ac4,0x99));var _0x40ac=function(_0x1d8119,_0xc98f17){_0x1d8119=_0x1d8119-0x0;var _0x3e30f6=_0x0ac4[_0x1d8119];return _0x3e30f6;};'use strict';var Sequelize=require(_0x40ac('0x0'));module[_0x40ac('0x1')]={'name':{'type':Sequelize[_0x40ac('0x2')]},'type':{'type':Sequelize[_0x40ac('0x3')](_0x40ac('0x4'),_0x40ac('0x5'))},'description':{'type':Sequelize[_0x40ac('0x6')]},'version':{'type':Sequelize[_0x40ac('0x6')]},'path':{'type':Sequelize['STRING'],'comment':'The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.'},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x40ac('0x7')},'sidebar':{'type':Sequelize[_0x40ac('0x3')](_0x40ac('0x8'),'agentOnly','always',_0x40ac('0x9')),'defaultValue':_0x40ac('0xa'),'comment':_0x40ac('0xb')},'icon':{'type':Sequelize['STRING']},'adminUrl':{'type':Sequelize['STRING']},'agentUrl':{'type':Sequelize[_0x40ac('0x2')]},'scriptName':{'type':Sequelize[_0x40ac('0x2')]},'scriptPath':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x2880=['Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.','exports','STRING','ENUM','html','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','BOOLEAN','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','adminOnly','agentOnly','always'];(function(_0xaaef26,_0x2c7bf5){var _0x4a7e48=function(_0x329bac){while(--_0x329bac){_0xaaef26['push'](_0xaaef26['shift']());}};_0x4a7e48(++_0x2c7bf5);}(_0x2880,0x139));var _0x0288=function(_0x36f7b7,_0x5445ba){_0x36f7b7=_0x36f7b7-0x0;var _0x15a1b3=_0x2880[_0x36f7b7];return _0x15a1b3;};'use strict';var Sequelize=require('sequelize');module[_0x0288('0x0')]={'name':{'type':Sequelize[_0x0288('0x1')]},'type':{'type':Sequelize[_0x0288('0x2')](_0x0288('0x3'),'script')},'description':{'type':Sequelize[_0x0288('0x4')]},'version':{'type':Sequelize[_0x0288('0x4')]},'path':{'type':Sequelize[_0x0288('0x1')],'comment':_0x0288('0x5')},'active':{'type':Sequelize[_0x0288('0x6')],'defaultValue':0x0,'comment':_0x0288('0x7')},'sidebar':{'type':Sequelize[_0x0288('0x2')](_0x0288('0x8'),_0x0288('0x9'),_0x0288('0xa'),'never'),'defaultValue':_0x0288('0xa'),'comment':_0x0288('0xb')},'icon':{'type':Sequelize[_0x0288('0x1')]},'adminUrl':{'type':Sequelize[_0x0288('0x1')]},'agentUrl':{'type':Sequelize[_0x0288('0x1')]},'scriptName':{'type':Sequelize[_0x0288('0x1')]},'scriptPath':{'type':Sequelize[_0x0288('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d2e=['statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','squel','crypto','jsforce','querystring','archiver','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./plugin.socket','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','get','Plugins','UserProfileResource','end','error','stack','name','index','map','Plugin','rawAttributes','fieldName','type','key','model','keys','filters','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','find','join','root','server/files/plugins','format','%s.zip','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','**/*','dirname','basename','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','upload','file','filename','Plugin\x20upload\x20destination:\x20%s','0777','readdirSync','lstatSync','Invalid\x20plugin\x20structure','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','views','Invalid\x20manifest:\x20views\x20missing','admin','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','Invalid\x20manifest:\x20script\x20path\x20missing','description','always','icon','icon-apps','version','html','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','agent','Warning:\x20agent\x20view\x20not\x20specified','script','scriptPath','create','body','userProfileId','role','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','update','delete','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','port','http://localhost:','encoding','%s%s','headers','content-length','content-type','endsWith','download'];(function(_0x2cc711,_0x300328){var _0x31a52e=function(_0x588378){while(--_0x588378){_0x2cc711['push'](_0x2cc711['shift']());}};_0x31a52e(++_0x300328);}(_0x4d2e,0x159));var _0xe4d2=function(_0x31ee3c,_0x4b1429){_0x31ee3c=_0x31ee3c-0x0;var _0x104aae=_0x4d2e[_0x31ee3c];return _0x104aae;};'use strict';var emlformat=require(_0xe4d2('0x0'));var rimraf=require(_0xe4d2('0x1'));var zipdir=require(_0xe4d2('0x2'));var jsonpatch=require(_0xe4d2('0x3'));var rp=require(_0xe4d2('0x4'));var moment=require(_0xe4d2('0x5'));var BPromise=require(_0xe4d2('0x6'));var Mustache=require(_0xe4d2('0x7'));var util=require(_0xe4d2('0x8'));var path=require(_0xe4d2('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xe4d2('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xe4d2('0xb'));var crypto=require(_0xe4d2('0xc'));var jsforce=require(_0xe4d2('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xe4d2('0xe'));var Papa=require('papaparse');var extract=require('extract-zip');var rimraf=require(_0xe4d2('0x1'));var archiver=require(_0xe4d2('0xf'));var Redis=require('ioredis');var authService=require(_0xe4d2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe4d2('0x11'));var hardwareService=require(_0xe4d2('0x12'));var logger=require(_0xe4d2('0x13'))(_0xe4d2('0x14'));var utils=require(_0xe4d2('0x15'));var config=require(_0xe4d2('0x16'));var licenseUtil=require(_0xe4d2('0x17'));var db=require(_0xe4d2('0x18'))['db'];config[_0xe4d2('0x19')]=_[_0xe4d2('0x1a')](config[_0xe4d2('0x19')],{'host':_0xe4d2('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe4d2('0x19')]));require(_0xe4d2('0x1c'))['register'](socket);function respondWithStatusCode(_0x355921,_0x72e63f){_0x72e63f=_0x72e63f||0xcc;return function(_0x2fdb42){if(_0x2fdb42){return _0x355921['sendStatus'](_0x72e63f);}return _0x355921[_0xe4d2('0x1d')](_0x72e63f)['end']();};}function respondWithResult(_0x28b156,_0x52f394){_0x52f394=_0x52f394||0xc8;return function(_0x5866c6){if(_0x5866c6){return _0x28b156[_0xe4d2('0x1d')](_0x52f394)[_0xe4d2('0x1e')](_0x5866c6);}};}function respondWithFilteredResult(_0x438455,_0x16e1b6){return function(_0x403c34){if(_0x403c34){var _0x3009e5=typeof _0x16e1b6['offset']===_0xe4d2('0x1f')&&typeof _0x16e1b6[_0xe4d2('0x20')]===_0xe4d2('0x1f');var _0x482c42=_0x403c34[_0xe4d2('0x21')];var _0x4b0421=_0x3009e5?0x0:_0x16e1b6[_0xe4d2('0x22')];var _0x2114a7=_0x3009e5?_0x403c34[_0xe4d2('0x21')]:_0x16e1b6['offset']+_0x16e1b6[_0xe4d2('0x20')];var _0x205e70;if(_0x2114a7>=_0x482c42){_0x2114a7=_0x482c42;_0x205e70=0xc8;}else{_0x205e70=0xce;}_0x438455[_0xe4d2('0x1d')](_0x205e70);return _0x438455[_0xe4d2('0x23')](_0xe4d2('0x24'),_0x4b0421+'-'+_0x2114a7+'/'+_0x482c42)[_0xe4d2('0x1e')](_0x403c34);}return null;};}function patchUpdates(_0x1fe1a0){return function(_0xf750bf){try{jsonpatch[_0xe4d2('0x25')](_0xf750bf,_0x1fe1a0,!![]);}catch(_0x2fa2d3){return BPromise[_0xe4d2('0x26')](_0x2fa2d3);}return _0xf750bf[_0xe4d2('0x27')]();};}function saveUpdates(_0xb8320a,_0x80e4d7){return function(_0x7bccd4){if(_0x7bccd4){return _0x7bccd4['update'](_0xb8320a)[_0xe4d2('0x28')](function(_0x502e4b){return _0x502e4b;});}return null;};}function removeEntity(_0x10ca2b,_0x2b4f39){return function(_0x45fe31){if(_0x45fe31){return _0x45fe31[_0xe4d2('0x29')]()[_0xe4d2('0x28')](function(){var _0x2028b2=_0x45fe31[_0xe4d2('0x2a')]({'plain':!![]});var _0x2cbb37=_0xe4d2('0x2b');return db[_0xe4d2('0x2c')][_0xe4d2('0x29')]({'where':{'type':_0x2cbb37,'resourceId':_0x2028b2['id']}})['then'](function(){return _0x45fe31;});})[_0xe4d2('0x28')](function(){_0x10ca2b[_0xe4d2('0x1d')](0xcc)[_0xe4d2('0x2d')]();});}};}function handleEntityNotFound(_0x1a7695,_0x4b1d43){return function(_0x9763a3){if(!_0x9763a3){_0x1a7695['sendStatus'](0x194);}return _0x9763a3;};}function handleError(_0x268506,_0x26be57){_0x26be57=_0x26be57||0x1f4;return function(_0x5b1e0a){logger[_0xe4d2('0x2e')](_0x5b1e0a[_0xe4d2('0x2f')]);if(_0x5b1e0a[_0xe4d2('0x30')]){delete _0x5b1e0a[_0xe4d2('0x30')];}_0x268506['status'](_0x26be57)['send'](_0x5b1e0a);};}exports[_0xe4d2('0x31')]=function(_0x49d0dc,_0x296ca8){var _0x4bbe3f={},_0x482c5e={},_0x300abf={'count':0x0,'rows':[]};var _0x2d7bc3=_[_0xe4d2('0x32')](db[_0xe4d2('0x33')][_0xe4d2('0x34')],function(_0x41e2bd){return{'name':_0x41e2bd[_0xe4d2('0x35')],'type':_0x41e2bd[_0xe4d2('0x36')][_0xe4d2('0x37')]};});_0x482c5e[_0xe4d2('0x38')]=_[_0xe4d2('0x32')](_0x2d7bc3,'name');_0x482c5e['query']=_[_0xe4d2('0x39')](_0x49d0dc['query']);_0x482c5e[_0xe4d2('0x3a')]=_['intersection'](_0x482c5e[_0xe4d2('0x38')],_0x482c5e[_0xe4d2('0x3b')]);_0x4bbe3f[_0xe4d2('0x3c')]=_[_0xe4d2('0x3d')](_0x482c5e[_0xe4d2('0x38')],qs[_0xe4d2('0x3e')](_0x49d0dc['query'][_0xe4d2('0x3e')]));_0x4bbe3f[_0xe4d2('0x3c')]=_0x4bbe3f[_0xe4d2('0x3c')][_0xe4d2('0x3f')]?_0x4bbe3f['attributes']:_0x482c5e[_0xe4d2('0x38')];if(!_0x49d0dc[_0xe4d2('0x3b')][_0xe4d2('0x40')](_0xe4d2('0x41'))){_0x4bbe3f[_0xe4d2('0x20')]=qs[_0xe4d2('0x20')](_0x49d0dc[_0xe4d2('0x3b')][_0xe4d2('0x20')]);_0x4bbe3f['offset']=qs['offset'](_0x49d0dc[_0xe4d2('0x3b')][_0xe4d2('0x22')]);}_0x4bbe3f[_0xe4d2('0x42')]=qs[_0xe4d2('0x43')](_0x49d0dc[_0xe4d2('0x3b')][_0xe4d2('0x43')]);_0x4bbe3f['where']=qs['filters'](_[_0xe4d2('0x44')](_0x49d0dc[_0xe4d2('0x3b')],_0x482c5e[_0xe4d2('0x3a')]),_0x2d7bc3);if(_0x49d0dc['query'][_0xe4d2('0x45')]){_0x4bbe3f[_0xe4d2('0x46')]=_[_0xe4d2('0x47')](_0x4bbe3f[_0xe4d2('0x46')],{'$or':_[_0xe4d2('0x32')](_0x2d7bc3,function(_0x520d6d){if(_0x520d6d[_0xe4d2('0x36')]!==_0xe4d2('0x48')){var _0x4b9297={};_0x4b9297[_0x520d6d[_0xe4d2('0x30')]]={'$like':'%'+_0x49d0dc[_0xe4d2('0x3b')][_0xe4d2('0x45')]+'%'};return _0x4b9297;}})});}_0x4bbe3f=_[_0xe4d2('0x47')]({},_0x4bbe3f,_0x49d0dc[_0xe4d2('0x49')]);var _0x3051e3={'where':_0x4bbe3f[_0xe4d2('0x46')]};return db[_0xe4d2('0x33')]['count'](_0x3051e3)['then'](function(_0x41258d){_0x300abf[_0xe4d2('0x21')]=_0x41258d;if(_0x49d0dc[_0xe4d2('0x3b')][_0xe4d2('0x4a')]){_0x4bbe3f[_0xe4d2('0x4b')]=[{'all':!![]}];}return db[_0xe4d2('0x33')][_0xe4d2('0x4c')](_0x4bbe3f);})[_0xe4d2('0x28')](function(_0x228ec7){_0x300abf['rows']=_0x228ec7;return _0x300abf;})[_0xe4d2('0x28')](respondWithFilteredResult(_0x296ca8,_0x4bbe3f))[_0xe4d2('0x4d')](handleError(_0x296ca8,null));};exports['show']=function(_0x18541f,_0x1b3654){var _0x18c320={'raw':!![],'where':{'id':_0x18541f[_0xe4d2('0x4e')]['id']}},_0x417948={};_0x417948['model']=_[_0xe4d2('0x39')](db[_0xe4d2('0x33')][_0xe4d2('0x34')]);_0x417948['query']=_['keys'](_0x18541f[_0xe4d2('0x3b')]);_0x417948[_0xe4d2('0x3a')]=_[_0xe4d2('0x3d')](_0x417948[_0xe4d2('0x38')],_0x417948[_0xe4d2('0x3b')]);_0x18c320[_0xe4d2('0x3c')]=_['intersection'](_0x417948[_0xe4d2('0x38')],qs[_0xe4d2('0x3e')](_0x18541f['query'][_0xe4d2('0x3e')]));_0x18c320[_0xe4d2('0x3c')]=_0x18c320['attributes'][_0xe4d2('0x3f')]?_0x18c320['attributes']:_0x417948[_0xe4d2('0x38')];if(_0x18541f[_0xe4d2('0x3b')]['includeAll']){_0x18c320['include']=[{'all':!![]}];}_0x18c320=_[_0xe4d2('0x47')]({},_0x18c320,_0x18541f['options']);return db[_0xe4d2('0x33')][_0xe4d2('0x4f')](_0x18c320)[_0xe4d2('0x28')](handleEntityNotFound(_0x1b3654,null))[_0xe4d2('0x28')](respondWithResult(_0x1b3654,null))[_0xe4d2('0x4d')](handleError(_0x1b3654,null));};exports['download']=function(_0x139532,_0x3a360e,_0x396ee7){return db[_0xe4d2('0x33')]['find']({'where':{'id':_0x139532['params']['id']},'attributes':[_0xe4d2('0x30'),_0xe4d2('0x9')],'raw':!![]})['then'](handleEntityNotFound(_0x3a360e,null))['then'](function(_0x31dd84){if(_0x31dd84){var _0x177fe8=path[_0xe4d2('0x50')](config[_0xe4d2('0x51')],_0xe4d2('0x52'),util[_0xe4d2('0x53')](_0xe4d2('0x54'),path['basename'](_0x31dd84[_0xe4d2('0x9')])));var _0xb5b0d4=fs[_0xe4d2('0x55')](_0x177fe8);var _0xa2654b=archiver(_0xe4d2('0x56'),{'zlib':{'level':0x9}});_0xa2654b['on'](_0xe4d2('0x57'),function(_0x3e339c){if(_0x3e339c[_0xe4d2('0x58')]===_0xe4d2('0x59')){logger[_0xe4d2('0x2e')](_0x3e339c);}else{throw new db[(_0xe4d2('0x5a'))][(_0xe4d2('0x5b'))](_0xe4d2('0x5c'));}});_0xa2654b['on']('error',function(_0x553184){throw new db['Sequelize'][(_0xe4d2('0x5b'))](_0xe4d2('0x5c'));});_0xa2654b[_0xe4d2('0x5d')](_0xb5b0d4);_0xa2654b[_0xe4d2('0x5e')](_0xe4d2('0x5f'),{'cwd':path[_0xe4d2('0x50')](config[_0xe4d2('0x51')],'server/files/plugins',path[_0xe4d2('0x60')](_0x31dd84['path'])),'ignore':[path['join'](path[_0xe4d2('0x61')](_0x31dd84['path']),_0xe4d2('0x62')),path[_0xe4d2('0x50')](path[_0xe4d2('0x61')](_0x31dd84[_0xe4d2('0x9')]),_0xe4d2('0x63'))],'nodir':!![]})[_0xe4d2('0x64')]();_0xb5b0d4['on'](_0xe4d2('0x65'),function(){if(!fs[_0xe4d2('0x66')](_0x177fe8)){throw new db[(_0xe4d2('0x5a'))][(_0xe4d2('0x5b'))](_0xe4d2('0x67'));}return _0x3a360e['download'](_0x177fe8,util[_0xe4d2('0x53')](_0xe4d2('0x54'),path['basename'](_0x31dd84['path'])),function(_0x356d67){if(_0x356d67){throw new db[(_0xe4d2('0x5a'))]['Error'](_0xe4d2('0x68'));}fs[_0xe4d2('0x69')](_0x177fe8);logger[_0xe4d2('0x6a')](_0xe4d2('0x6b'));logger['info'](_0xe4d2('0x6c'));});});}return null;})['catch'](handleError(_0x3a360e,null));};exports[_0xe4d2('0x6d')]=function(_0xe9e83,_0x39e156,_0x44b969){var _0x3123ec=path[_0xe4d2('0x61')](_0xe9e83[_0xe4d2('0x6e')][_0xe4d2('0x6f')],path['extname'](_0xe9e83[_0xe4d2('0x6e')][_0xe4d2('0x6f')]));var _0x2af50b=path[_0xe4d2('0x50')](config[_0xe4d2('0x51')],_0xe4d2('0x52'),_0xe9e83[_0xe4d2('0x6e')][_0xe4d2('0x6f')]);var _0x1fbe00=path[_0xe4d2('0x50')](config[_0xe4d2('0x51')],_0xe4d2('0x52'),_0x3123ec);logger['info']('Plugin\x20upload\x20filepath:\x20%s',_0x2af50b);logger[_0xe4d2('0x6a')](_0xe4d2('0x70'),_0x1fbe00);try{fs['chmodSync'](_0x2af50b,parseInt(_0xe4d2('0x71'),0x8));extract(_0x2af50b,{'dir':_0x1fbe00},function(_0xc255c1){if(_0xc255c1){logger[_0xe4d2('0x2e')](_0xc255c1);handleError(_0xc255c1,!![]);};var _0x298a61=fs[_0xe4d2('0x72')](_0x1fbe00);if(_0x298a61[_0xe4d2('0x3f')]>0x1){removeReferences(_0x2af50b,_0x1fbe00);logger[_0xe4d2('0x2e')]('Invalid\x20plugin\x20structure');return _0x44b969(new Error('Invalid\x20plugin\x20structure'));}var _0x56d394=fs[_0xe4d2('0x73')](path['join'](_0x1fbe00,_0x298a61[0x0]));if(_0x56d394['isFile']()){removeReferences(_0x2af50b,_0x1fbe00);logger[_0xe4d2('0x2e')]('Invalid\x20plugin\x20structure');return _0x44b969(new Error(_0xe4d2('0x74')));}if(_0x56d394[_0xe4d2('0x75')]()){var _0x336c67=fs['readdirSync'](path[_0xe4d2('0x50')](_0x1fbe00,_0x298a61[0x0]));if(_0x336c67[_0xe4d2('0x3f')]===0x0){removeReferences(_0x2af50b,_0x1fbe00);logger[_0xe4d2('0x2e')](_0xe4d2('0x74'));return _0x44b969(new Error(_0xe4d2('0x74')));}var _0x87a8c1=_0x336c67[_0xe4d2('0x76')](function(_0x18b29b){return _0x18b29b===_0xe4d2('0x77');});if(!_0x87a8c1){return _0x44b969(new Error(_0xe4d2('0x78')));}var _0x13e62f=fs[_0xe4d2('0x79')](path[_0xe4d2('0x50')](_0x1fbe00,_0x298a61[0x0],_0xe4d2('0x77')));var _0xf47caf=JSON[_0xe4d2('0x7a')](_0x13e62f);if('undefined'==typeof _0xf47caf[_0xe4d2('0x30')]){return _0x44b969(new Error(_0xe4d2('0x7b')));}if(_0xe4d2('0x1f')==typeof _0xf47caf[_0xe4d2('0x36')]){return _0x44b969(new Error('Invalid\x20manifest:\x20type\x20missing'));}if(_0xe4d2('0x1f')==typeof _0xf47caf['version']){return _0x44b969(new Error(_0xe4d2('0x7c')));}if('undefined'==typeof _0xf47caf[_0xe4d2('0x7d')]){return _0x44b969(new Error(_0xe4d2('0x7e')));}if(_0xf47caf[_0xe4d2('0x36')]==='html'){if(_0xe4d2('0x1f')==typeof _0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')]){return _0x44b969(new Error(_0xe4d2('0x80')));}if(_0xe4d2('0x1f')==typeof _0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')][_0xe4d2('0x81')]&&'undefined'==typeof _0xf47caf[_0xe4d2('0x7d')]['views']['agent']){return _0x44b969(new Error('Invalid\x20manifest:\x20no\x20view\x20specified'));}}else if(_0xf47caf[_0xe4d2('0x36')]==='script'){if('undefined'==typeof _0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x82')]){return _0x44b969(new Error(_0xe4d2('0x83')));}if('undefined'==typeof _0xf47caf['parameters']['scriptPath']){return _0x44b969(new Error(_0xe4d2('0x84')));}}else{return _0x44b969(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0xa3f1b2=_0xf47caf['name'];var _0x2ad009=_0xf47caf[_0xe4d2('0x85')];var _0x5eeea6=_0xf47caf[_0xe4d2('0x36')];var _0x24e3b7=_0xf47caf['sidebar']?_0xf47caf['sidebar']:_0xe4d2('0x86');var _0x18b987=_0xf47caf[_0xe4d2('0x87')]?_0xf47caf[_0xe4d2('0x87')]:_0xe4d2('0x88');var _0x556b0e='';var _0x5739a1='';var _0x12908a='';var _0x51e930='';var _0x3b27dc=_0xf47caf[_0xe4d2('0x89')];if(_0x5eeea6===_0xe4d2('0x8a')){if(_0xe4d2('0x1f')!=typeof _0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')][_0xe4d2('0x81')]){var _0x51e76e=_0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')][_0xe4d2('0x81')];if(!/^(f|ht)tps?:\/\//i[_0xe4d2('0x8b')](_0x51e76e)){_0x556b0e=path[_0xe4d2('0x50')](_0xe4d2('0x8c'),_0x3123ec,_0x298a61[0x0],_0x51e76e);}else{_0x556b0e=_0x51e76e;}}else{logger[_0xe4d2('0x6a')](_0xe4d2('0x8d'));}if(_0xe4d2('0x1f')!=typeof _0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')][_0xe4d2('0x8e')]){var _0x5af6cd=_0xf47caf['parameters'][_0xe4d2('0x7f')][_0xe4d2('0x8e')];if(!/^(f|ht)tps?:\/\//i[_0xe4d2('0x8b')](_0x5af6cd)){_0x5739a1=path['join'](_0xe4d2('0x8c'),_0x3123ec,_0x298a61[0x0],_0x5af6cd);}else{_0x5739a1=_0x5af6cd;}}else{logger['info'](_0xe4d2('0x8f'));}}else if(_0x5eeea6===_0xe4d2('0x90')){_0x12908a=_0xf47caf['parameters'][_0xe4d2('0x82')];_0x51e930=_0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x91')];if(_0xe4d2('0x1f')!=typeof _0xf47caf[_0xe4d2('0x7d')]['views']){if(_0xe4d2('0x1f')!=typeof _0xf47caf['parameters'][_0xe4d2('0x7f')][_0xe4d2('0x81')]){var _0x51e76e=_0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')][_0xe4d2('0x81')];if(!/^(f|ht)tps?:\/\//i[_0xe4d2('0x8b')](_0x51e76e)){_0x556b0e=path[_0xe4d2('0x50')](_0xe4d2('0x8c'),_0x3123ec,_0x298a61[0x0],_0x51e76e);}else{_0x556b0e=_0x51e76e;}}if('undefined'!=typeof _0xf47caf['parameters'][_0xe4d2('0x7f')][_0xe4d2('0x8e')]){var _0x5af6cd=_0xf47caf[_0xe4d2('0x7d')][_0xe4d2('0x7f')][_0xe4d2('0x8e')];if(!/^(f|ht)tps?:\/\//i[_0xe4d2('0x8b')](_0x5af6cd)){_0x5739a1=path['join'](_0xe4d2('0x8c'),_0x3123ec,_0x298a61[0x0],_0x5af6cd);}else{_0x5739a1=_0x5af6cd;}}}}var _0x500858={'name':_0xa3f1b2,'description':_0x2ad009,'path':path[_0xe4d2('0x50')](_0x3123ec,_0x298a61[0x0]),'type':_0x5eeea6,'sidebar':_0x24e3b7,'icon':_0x18b987,'adminUrl':_0x556b0e,'agentUrl':_0x5739a1,'scriptName':_0x12908a,'scriptPath':_0x51e930,'version':_0x3b27dc};removeReferences(_0x2af50b,null);return db[_0xe4d2('0x33')][_0xe4d2('0x92')](_0x500858)[_0xe4d2('0x28')](function(_0x22b301){var _0x25ddf9={'role':_0xe9e83[_0xe4d2('0x93')]['role'],'userProfileId':_0xe9e83['body'][_0xe4d2('0x94')]};if(!_0x25ddf9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x25ddf9[_0xe4d2('0x95')]===_0xe4d2('0x96')){var _0x2dd8a9=_0x22b301[_0xe4d2('0x2a')]({'plain':!![]});return db[_0xe4d2('0x97')][_0xe4d2('0x4f')]({'where':{'name':'Plugins','userProfileId':_0x25ddf9['userProfileId']},'raw':!![]})[_0xe4d2('0x28')](function(_0x1ffe85){if(_0x1ffe85&&_0x1ffe85['autoAssociation']===0x0){return db['UserProfileResource'][_0xe4d2('0x92')]({'name':_0x2dd8a9[_0xe4d2('0x30')],'resourceId':_0x2dd8a9['id'],'type':_0x1ffe85['name'],'sectionId':_0x1ffe85['id']},{})[_0xe4d2('0x28')](function(){return _0x22b301;});}else{return _0x22b301;}})['catch'](function(_0x2e6a40){logger['error'](_0xe4d2('0x98'),_0x2e6a40);throw _0x2e6a40;});}return _0x22b301;})[_0xe4d2('0x28')](respondWithResult(_0x39e156,null))[_0xe4d2('0x4d')](handleError(_0x39e156,null));}});}catch(_0x321b17){_0x39e156[_0xe4d2('0x1d')](0x1f4)[_0xe4d2('0x99')](_0x321b17);}};function removeReferences(_0x209c30,_0x4b99a8){try{if(_0x209c30){fs['unlinkSync'](_0x209c30);logger[_0xe4d2('0x6a')](_0xe4d2('0x9a'));}if(_0x4b99a8){rimraf(_0x4b99a8,function(){});logger[_0xe4d2('0x6a')]('Extracted\x20folder\x20removed');}}catch(_0x38e76a){logger[_0xe4d2('0x2e')](_0x38e76a);}}exports[_0xe4d2('0x9b')]=function(_0x5d5757,_0x5694df,_0x18b0fc){return db[_0xe4d2('0x33')]['find']({'where':{'id':_0x5d5757['params']['id']}})[_0xe4d2('0x28')](handleEntityNotFound(_0x5694df,null))[_0xe4d2('0x28')](saveUpdates(_0x5d5757['body'],null))['then'](respondWithResult(_0x5694df,null))[_0xe4d2('0x4d')](handleError(_0x5694df,null));};exports[_0xe4d2('0x9c')]=function(_0x21ed4a,_0x2d504e,_0x3e91c2){return db[_0xe4d2('0x33')][_0xe4d2('0x4f')]({'where':{'id':_0x21ed4a[_0xe4d2('0x4e')]['id']}})[_0xe4d2('0x28')](function(_0xe5ebaa){if(_0xe5ebaa){return _0xe5ebaa[_0xe4d2('0x29')]();}})['then'](function(_0x13e1eb){rimraf(path[_0xe4d2('0x50')](config['root'],'server/files/plugins',path[_0xe4d2('0x60')](_0x13e1eb[_0xe4d2('0x9')])),function(){});return _0x13e1eb;})[_0xe4d2('0x28')](handleEntityNotFound(_0x2d504e,null))[_0xe4d2('0x28')](respondWithStatusCode(_0x2d504e,null))['catch'](handleError(_0x2d504e,null));};exports[_0xe4d2('0x9d')]=function(_0x2a9e9f,_0x37ac6f,_0x2f240a){return BPromise[_0xe4d2('0x9e')]()['then'](function(){if(!_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0x9')]){throw new Error(_0xe4d2('0x9f'));}if(!_0x2a9e9f[_0xe4d2('0x3b')]['port']){throw new Error(_0xe4d2('0xa0'));}var _0x2e0515=_0x2a9e9f[_0xe4d2('0x3b')]['hostname']?_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0xa1')]+':'+_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0xa2')]:_0xe4d2('0xa3')+_0x2a9e9f['query'][_0xe4d2('0xa2')];var _0x12a04b=_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0x1e')]?_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0x1e')]:!![];var _0xb793ce=_0x2a9e9f['query'][_0xe4d2('0xa4')]?_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0xa4')]:null;var _0x1e1e69={'method':_0x2a9e9f['method'],'uri':util[_0xe4d2('0x53')](_0xe4d2('0xa5'),_0x2e0515,_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0x9')]),'json':_0x12a04b,'resolveWithFullResponse':!![],'encoding':_0xb793ce,'qs':_0x2a9e9f[_0xe4d2('0x3b')]};if(_0x2a9e9f['headers']){_0x1e1e69[_0xe4d2('0xa6')]=_0x2a9e9f['headers'];if(_0x1e1e69[_0xe4d2('0xa6')]['content-length']){delete _0x1e1e69[_0xe4d2('0xa6')][_0xe4d2('0xa7')];}}if(_0x1e1e69[_0xe4d2('0xa6')][_0xe4d2('0xa8')]){delete _0x1e1e69[_0xe4d2('0xa6')][_0xe4d2('0xa8')];}return rp(_0x1e1e69);})[_0xe4d2('0x28')](function(_0x2a70b8){if(_0x2a70b8){_0x37ac6f[_0xe4d2('0x23')](_0x2a70b8['headers']);logger['info'](_0x2a70b8[_0xe4d2('0x93')]);if(_[_0xe4d2('0xa9')](_0x2a9e9f[_0xe4d2('0x3b')][_0xe4d2('0x9')],_0xe4d2('0xaa'))&&_0x2a70b8[_0xe4d2('0xab')]==0x1f4){return _0x37ac6f['sendStatus'](_0x2a70b8[_0xe4d2('0xab')]);}else{return _0x37ac6f[_0xe4d2('0x1d')](_0x2a70b8['statusCode'])['send'](_0x2a70b8[_0xe4d2('0x93')]);}}else{return _0x37ac6f['sendStatus'](0xc8);}})['catch'](handleError(_0x37ac6f,null));};exports['webhookPost']=function(_0x3e3c07,_0x383003,_0x57e031){return BPromise[_0xe4d2('0x9e')]()[_0xe4d2('0x28')](function(){if(!_0x3e3c07['query'][_0xe4d2('0x9')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x3e3c07[_0xe4d2('0x3b')]['port']){throw new Error(_0xe4d2('0xa0'));}var _0x170252=_0x3e3c07[_0xe4d2('0x3b')]['hostname']?_0x3e3c07[_0xe4d2('0x3b')][_0xe4d2('0xa1')]+':'+_0x3e3c07[_0xe4d2('0x3b')][_0xe4d2('0xa2')]:_0xe4d2('0xa3')+_0x3e3c07[_0xe4d2('0x3b')][_0xe4d2('0xa2')];var _0x5d1eee=_0x3e3c07[_0xe4d2('0x3b')][_0xe4d2('0x1e')]?_0x3e3c07[_0xe4d2('0x3b')]['json']:!![];var _0x40daad=_0x3e3c07['query'][_0xe4d2('0xa4')]?_0x3e3c07[_0xe4d2('0x3b')]['encoding']:null;var _0x498ccf={'method':_0x3e3c07['method'],'uri':util[_0xe4d2('0x53')](_0xe4d2('0xa5'),_0x170252,_0x3e3c07[_0xe4d2('0x3b')][_0xe4d2('0x9')]),'json':_0x5d1eee,'resolveWithFullResponse':!![],'encoding':_0x40daad,'body':_0x3e3c07[_0xe4d2('0x93')]};if(_0x3e3c07[_0xe4d2('0xa6')]){_0x498ccf[_0xe4d2('0xa6')]=_0x3e3c07[_0xe4d2('0xa6')];if(_0x498ccf[_0xe4d2('0xa6')][_0xe4d2('0xa7')]){delete _0x498ccf[_0xe4d2('0xa6')][_0xe4d2('0xa7')];}}if(_0x498ccf['headers'][_0xe4d2('0xa8')]){delete _0x498ccf['headers'][_0xe4d2('0xa8')];}return rp(_0x498ccf);})[_0xe4d2('0x28')](function(_0x1034bf){if(_0x1034bf){_0x383003[_0xe4d2('0x23')](_0x1034bf[_0xe4d2('0xa6')]);logger[_0xe4d2('0x6a')](_0x1034bf[_0xe4d2('0x93')]);return _0x383003[_0xe4d2('0x1d')](_0x1034bf['statusCode'])[_0xe4d2('0x99')](_0x1034bf[_0xe4d2('0x93')]);}else{return _0x383003['sendStatus'](0xc8);}})[_0xe4d2('0x4d')](handleError(_0x383003,null));};
\ No newline at end of file
+var _0x9328=['archiver','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','update','then','destroy','get','Plugins','UserProfileResource','error','stack','name','send','map','Plugin','rawAttributes','fieldName','type','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','rows','catch','show','include','find','download','root','server/files/plugins','format','%s.zip','basename','path','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','glob','join','dirname','node_modules/**/*','attachments/**/*','finalize','close','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','Temporary\x20file\x20removed','file','filename','extname','Plugin\x20upload\x20filepath:\x20%s','readdirSync','Invalid\x20plugin\x20structure','lstatSync','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','parse','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','Invalid\x20manifest:\x20parameters\x20missing','views','Invalid\x20manifest:\x20views\x20missing','parameters','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','icon-apps','html','test','plugins','Warning:\x20admin\x20view\x20not\x20specified','create','role','body','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','params','delete','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','headers','content-length','content-type','statusCode','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','method','%s%s','eml-format','rimraf','fast-json-patch','mustache','util','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','extract-zip'];(function(_0x246cbd,_0x2f8504){var _0x2f7232=function(_0x135a07){while(--_0x135a07){_0x246cbd['push'](_0x246cbd['shift']());}};_0x2f7232(++_0x2f8504);}(_0x9328,0x99));var _0x8932=function(_0x56171e,_0x6c5a1e){_0x56171e=_0x56171e-0x0;var _0x1238b7=_0x9328[_0x56171e];return _0x1238b7;};'use strict';var emlformat=require(_0x8932('0x0'));var rimraf=require(_0x8932('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8932('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x8932('0x3'));var util=require(_0x8932('0x4'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8932('0x5'));var fs=require('fs');var fs_extra=require(_0x8932('0x6'));var _=require(_0x8932('0x7'));var squel=require(_0x8932('0x8'));var crypto=require(_0x8932('0x9'));var jsforce=require(_0x8932('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x8932('0xb'));var querystring=require(_0x8932('0xc'));var Papa=require(_0x8932('0xd'));var extract=require(_0x8932('0xe'));var rimraf=require('rimraf');var archiver=require(_0x8932('0xf'));var Redis=require(_0x8932('0x10'));var authService=require(_0x8932('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x8932('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8932('0x13'));var utils=require(_0x8932('0x14'));var config=require(_0x8932('0x15'));var licenseUtil=require(_0x8932('0x16'));var db=require(_0x8932('0x17'))['db'];config['redis']=_[_0x8932('0x18')](config[_0x8932('0x19')],{'host':_0x8932('0x1a'),'port':0x18eb});var socket=require(_0x8932('0x1b'))(new Redis(config['redis']));require(_0x8932('0x1c'))[_0x8932('0x1d')](socket);function respondWithStatusCode(_0x2205e4,_0x26b56b){_0x26b56b=_0x26b56b||0xcc;return function(_0x526f67){if(_0x526f67){return _0x2205e4[_0x8932('0x1e')](_0x26b56b);}return _0x2205e4[_0x8932('0x1f')](_0x26b56b)[_0x8932('0x20')]();};}function respondWithResult(_0x293d3c,_0x26f565){_0x26f565=_0x26f565||0xc8;return function(_0x5e0933){if(_0x5e0933){return _0x293d3c[_0x8932('0x1f')](_0x26f565)[_0x8932('0x21')](_0x5e0933);}};}function respondWithFilteredResult(_0x865035,_0x3be119){return function(_0x10506d){if(_0x10506d){var _0x540d28=typeof _0x3be119[_0x8932('0x22')]===_0x8932('0x23')&&typeof _0x3be119['limit']===_0x8932('0x23');var _0xacd8ce=_0x10506d['count'];var _0x21e7cb=_0x540d28?0x0:_0x3be119[_0x8932('0x22')];var _0x462508=_0x540d28?_0x10506d[_0x8932('0x24')]:_0x3be119[_0x8932('0x22')]+_0x3be119[_0x8932('0x25')];var _0x3bb9ea;if(_0x462508>=_0xacd8ce){_0x462508=_0xacd8ce;_0x3bb9ea=0xc8;}else{_0x3bb9ea=0xce;}_0x865035[_0x8932('0x1f')](_0x3bb9ea);return _0x865035[_0x8932('0x26')]('Content-Range',_0x21e7cb+'-'+_0x462508+'/'+_0xacd8ce)[_0x8932('0x21')](_0x10506d);}return null;};}function patchUpdates(_0x2eb330){return function(_0x305593){try{jsonpatch[_0x8932('0x27')](_0x305593,_0x2eb330,!![]);}catch(_0x2639fd){return BPromise[_0x8932('0x28')](_0x2639fd);}return _0x305593['save']();};}function saveUpdates(_0x14be07,_0x1ffa57){return function(_0x2f5cdc){if(_0x2f5cdc){return _0x2f5cdc[_0x8932('0x29')](_0x14be07)[_0x8932('0x2a')](function(_0x579eb6){return _0x579eb6;});}return null;};}function removeEntity(_0x49399a,_0x1aaddc){return function(_0xd8a833){if(_0xd8a833){return _0xd8a833[_0x8932('0x2b')]()[_0x8932('0x2a')](function(){var _0x320f23=_0xd8a833[_0x8932('0x2c')]({'plain':!![]});var _0x394b3d=_0x8932('0x2d');return db[_0x8932('0x2e')]['destroy']({'where':{'type':_0x394b3d,'resourceId':_0x320f23['id']}})[_0x8932('0x2a')](function(){return _0xd8a833;});})['then'](function(){_0x49399a[_0x8932('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x37e892,_0x205a3e){return function(_0x412789){if(!_0x412789){_0x37e892[_0x8932('0x1e')](0x194);}return _0x412789;};}function handleError(_0x22e7be,_0x3ca162){_0x3ca162=_0x3ca162||0x1f4;return function(_0x5f560e){logger[_0x8932('0x2f')](_0x5f560e[_0x8932('0x30')]);if(_0x5f560e[_0x8932('0x31')]){delete _0x5f560e[_0x8932('0x31')];}_0x22e7be[_0x8932('0x1f')](_0x3ca162)[_0x8932('0x32')](_0x5f560e);};}exports['index']=function(_0x5d7b29,_0xbac954){var _0x3d3a24={},_0x2ac46a={},_0x2ef748={'count':0x0,'rows':[]};var _0x43cfab=_[_0x8932('0x33')](db[_0x8932('0x34')][_0x8932('0x35')],function(_0x32b6bc){return{'name':_0x32b6bc[_0x8932('0x36')],'type':_0x32b6bc[_0x8932('0x37')]['key']};});_0x2ac46a[_0x8932('0x38')]=_['map'](_0x43cfab,_0x8932('0x31'));_0x2ac46a['query']=_[_0x8932('0x39')](_0x5d7b29['query']);_0x2ac46a[_0x8932('0x3a')]=_[_0x8932('0x3b')](_0x2ac46a[_0x8932('0x38')],_0x2ac46a[_0x8932('0x3c')]);_0x3d3a24[_0x8932('0x3d')]=_[_0x8932('0x3b')](_0x2ac46a[_0x8932('0x38')],qs[_0x8932('0x3e')](_0x5d7b29[_0x8932('0x3c')][_0x8932('0x3e')]));_0x3d3a24['attributes']=_0x3d3a24[_0x8932('0x3d')][_0x8932('0x3f')]?_0x3d3a24[_0x8932('0x3d')]:_0x2ac46a[_0x8932('0x38')];if(!_0x5d7b29[_0x8932('0x3c')][_0x8932('0x40')]('nolimit')){_0x3d3a24[_0x8932('0x25')]=qs[_0x8932('0x25')](_0x5d7b29[_0x8932('0x3c')][_0x8932('0x25')]);_0x3d3a24[_0x8932('0x22')]=qs[_0x8932('0x22')](_0x5d7b29['query']['offset']);}_0x3d3a24[_0x8932('0x41')]=qs[_0x8932('0x42')](_0x5d7b29[_0x8932('0x3c')]['sort']);_0x3d3a24[_0x8932('0x43')]=qs[_0x8932('0x3a')](_[_0x8932('0x44')](_0x5d7b29['query'],_0x2ac46a[_0x8932('0x3a')]),_0x43cfab);if(_0x5d7b29['query'][_0x8932('0x45')]){_0x3d3a24[_0x8932('0x43')]=_[_0x8932('0x46')](_0x3d3a24['where'],{'$or':_[_0x8932('0x33')](_0x43cfab,function(_0x384dd1){if(_0x384dd1[_0x8932('0x37')]!=='VIRTUAL'){var _0x5b1e77={};_0x5b1e77[_0x384dd1['name']]={'$like':'%'+_0x5d7b29[_0x8932('0x3c')][_0x8932('0x45')]+'%'};return _0x5b1e77;}})});}_0x3d3a24=_['merge']({},_0x3d3a24,_0x5d7b29[_0x8932('0x47')]);var _0x405f0b={'where':_0x3d3a24[_0x8932('0x43')]};return db[_0x8932('0x34')][_0x8932('0x24')](_0x405f0b)[_0x8932('0x2a')](function(_0x56eacf){_0x2ef748[_0x8932('0x24')]=_0x56eacf;if(_0x5d7b29[_0x8932('0x3c')][_0x8932('0x48')]){_0x3d3a24['include']=[{'all':!![]}];}return db[_0x8932('0x34')]['findAll'](_0x3d3a24);})[_0x8932('0x2a')](function(_0x239528){_0x2ef748[_0x8932('0x49')]=_0x239528;return _0x2ef748;})['then'](respondWithFilteredResult(_0xbac954,_0x3d3a24))[_0x8932('0x4a')](handleError(_0xbac954,null));};exports[_0x8932('0x4b')]=function(_0x11c585,_0xb7c305){var _0x14ccf2={'raw':!![],'where':{'id':_0x11c585['params']['id']}},_0x2dbcf7={};_0x2dbcf7['model']=_[_0x8932('0x39')](db[_0x8932('0x34')]['rawAttributes']);_0x2dbcf7[_0x8932('0x3c')]=_[_0x8932('0x39')](_0x11c585['query']);_0x2dbcf7[_0x8932('0x3a')]=_['intersection'](_0x2dbcf7[_0x8932('0x38')],_0x2dbcf7['query']);_0x14ccf2[_0x8932('0x3d')]=_['intersection'](_0x2dbcf7[_0x8932('0x38')],qs['fields'](_0x11c585['query'][_0x8932('0x3e')]));_0x14ccf2[_0x8932('0x3d')]=_0x14ccf2[_0x8932('0x3d')][_0x8932('0x3f')]?_0x14ccf2[_0x8932('0x3d')]:_0x2dbcf7[_0x8932('0x38')];if(_0x11c585[_0x8932('0x3c')][_0x8932('0x48')]){_0x14ccf2[_0x8932('0x4c')]=[{'all':!![]}];}_0x14ccf2=_[_0x8932('0x46')]({},_0x14ccf2,_0x11c585['options']);return db[_0x8932('0x34')][_0x8932('0x4d')](_0x14ccf2)[_0x8932('0x2a')](handleEntityNotFound(_0xb7c305,null))['then'](respondWithResult(_0xb7c305,null))[_0x8932('0x4a')](handleError(_0xb7c305,null));};exports[_0x8932('0x4e')]=function(_0x51b370,_0x308681,_0x2f7832){return db[_0x8932('0x34')]['find']({'where':{'id':_0x51b370['params']['id']},'attributes':[_0x8932('0x31'),'path'],'raw':!![]})['then'](handleEntityNotFound(_0x308681,null))[_0x8932('0x2a')](function(_0x316cc6){if(_0x316cc6){var _0x303113=path['join'](config[_0x8932('0x4f')],_0x8932('0x50'),util[_0x8932('0x51')](_0x8932('0x52'),path[_0x8932('0x53')](_0x316cc6[_0x8932('0x54')])));var _0x510a5c=fs[_0x8932('0x55')](_0x303113);var _0x571426=archiver(_0x8932('0x56'),{'zlib':{'level':0x9}});_0x571426['on'](_0x8932('0x57'),function(_0x481812){if(_0x481812[_0x8932('0x58')]===_0x8932('0x59')){logger[_0x8932('0x2f')](_0x481812);}else{throw new db[(_0x8932('0x5a'))][(_0x8932('0x5b'))]('Error\x20while\x20generating\x20the\x20zip\x20archive');}});_0x571426['on'](_0x8932('0x2f'),function(_0x421dde){throw new db[(_0x8932('0x5a'))][(_0x8932('0x5b'))](_0x8932('0x5c'));});_0x571426[_0x8932('0x5d')](_0x510a5c);_0x571426[_0x8932('0x5e')]('**/*',{'cwd':path[_0x8932('0x5f')](config[_0x8932('0x4f')],_0x8932('0x50'),path[_0x8932('0x60')](_0x316cc6['path'])),'ignore':[path['join'](path[_0x8932('0x53')](_0x316cc6[_0x8932('0x54')]),_0x8932('0x61')),path[_0x8932('0x5f')](path[_0x8932('0x53')](_0x316cc6[_0x8932('0x54')]),_0x8932('0x62'))],'nodir':!![]})[_0x8932('0x63')]();_0x510a5c['on'](_0x8932('0x64'),function(){if(!fs[_0x8932('0x65')](_0x303113)){throw new db[(_0x8932('0x5a'))][(_0x8932('0x5b'))](_0x8932('0x66'));}return _0x308681[_0x8932('0x4e')](_0x303113,util[_0x8932('0x51')]('%s.zip',path[_0x8932('0x53')](_0x316cc6['path'])),function(_0x42b94a){if(_0x42b94a){throw new db[(_0x8932('0x5a'))][(_0x8932('0x5b'))](_0x8932('0x67'));}fs[_0x8932('0x68')](_0x303113);logger[_0x8932('0x69')](_0x8932('0x6a'));logger[_0x8932('0x69')](_0x8932('0x6b'));});});}return null;})[_0x8932('0x4a')](handleError(_0x308681,null));};exports['upload']=function(_0x2dd697,_0x259180,_0x45df26){var _0x1746e2=path[_0x8932('0x53')](_0x2dd697[_0x8932('0x6c')][_0x8932('0x6d')],path[_0x8932('0x6e')](_0x2dd697[_0x8932('0x6c')][_0x8932('0x6d')]));var _0x4b4675=path[_0x8932('0x5f')](config[_0x8932('0x4f')],'server/files/plugins',_0x2dd697[_0x8932('0x6c')][_0x8932('0x6d')]);var _0x2b211a=path[_0x8932('0x5f')](config[_0x8932('0x4f')],_0x8932('0x50'),_0x1746e2);logger[_0x8932('0x69')](_0x8932('0x6f'),_0x4b4675);logger['info']('Plugin\x20upload\x20destination:\x20%s',_0x2b211a);try{fs['chmodSync'](_0x4b4675,parseInt('0777',0x8));extract(_0x4b4675,{'dir':_0x2b211a},function(_0x492bad){if(_0x492bad){logger[_0x8932('0x2f')](_0x492bad);handleError(_0x492bad,!![]);};var _0x518291=fs[_0x8932('0x70')](_0x2b211a);if(_0x518291[_0x8932('0x3f')]>0x1){removeReferences(_0x4b4675,_0x2b211a);logger['error']('Invalid\x20plugin\x20structure');return _0x45df26(new Error(_0x8932('0x71')));}var _0x21c4b1=fs[_0x8932('0x72')](path[_0x8932('0x5f')](_0x2b211a,_0x518291[0x0]));if(_0x21c4b1['isFile']()){removeReferences(_0x4b4675,_0x2b211a);logger[_0x8932('0x2f')]('Invalid\x20plugin\x20structure');return _0x45df26(new Error(_0x8932('0x71')));}if(_0x21c4b1['isDirectory']()){var _0x494d5b=fs[_0x8932('0x70')](path[_0x8932('0x5f')](_0x2b211a,_0x518291[0x0]));if(_0x494d5b[_0x8932('0x3f')]===0x0){removeReferences(_0x4b4675,_0x2b211a);logger[_0x8932('0x2f')](_0x8932('0x71'));return _0x45df26(new Error('Invalid\x20plugin\x20structure'));}var _0x3a930e=_0x494d5b[_0x8932('0x73')](function(_0x35c83e){return _0x35c83e===_0x8932('0x74');});if(!_0x3a930e){return _0x45df26(new Error(_0x8932('0x75')));}var _0xded85c=fs[_0x8932('0x76')](path[_0x8932('0x5f')](_0x2b211a,_0x518291[0x0],'manifest.json'));var _0x4d42d=JSON[_0x8932('0x77')](_0xded85c);if(_0x8932('0x23')==typeof _0x4d42d[_0x8932('0x31')]){return _0x45df26(new Error('Invalid\x20manifest:\x20name\x20missing'));}if('undefined'==typeof _0x4d42d['type']){return _0x45df26(new Error(_0x8932('0x78')));}if(_0x8932('0x23')==typeof _0x4d42d[_0x8932('0x79')]){return _0x45df26(new Error(_0x8932('0x7a')));}if('undefined'==typeof _0x4d42d['parameters']){return _0x45df26(new Error(_0x8932('0x7b')));}if(_0x4d42d['type']==='html'){if(_0x8932('0x23')==typeof _0x4d42d['parameters'][_0x8932('0x7c')]){return _0x45df26(new Error(_0x8932('0x7d')));}if('undefined'==typeof _0x4d42d[_0x8932('0x7e')]['views'][_0x8932('0x7f')]&&_0x8932('0x23')==typeof _0x4d42d['parameters'][_0x8932('0x7c')][_0x8932('0x80')]){return _0x45df26(new Error(_0x8932('0x81')));}}else if(_0x4d42d[_0x8932('0x37')]===_0x8932('0x82')){if('undefined'==typeof _0x4d42d['parameters'][_0x8932('0x83')]){return _0x45df26(new Error('Invalid\x20manifest:\x20script\x20name\x20missing'));}if('undefined'==typeof _0x4d42d[_0x8932('0x7e')][_0x8932('0x84')]){return _0x45df26(new Error(_0x8932('0x85')));}}else{return _0x45df26(new Error(_0x8932('0x86')));}var _0x58dba9=_0x4d42d[_0x8932('0x31')];var _0x43791b=_0x4d42d[_0x8932('0x87')];var _0x4cc1fd=_0x4d42d[_0x8932('0x37')];var _0x4fc9a3=_0x4d42d[_0x8932('0x88')]?_0x4d42d[_0x8932('0x88')]:_0x8932('0x89');var _0x2ba567=_0x4d42d['icon']?_0x4d42d[_0x8932('0x8a')]:_0x8932('0x8b');var _0x49e8ae='';var _0x3d16f1='';var _0x2147d5='';var _0x91efa6='';var _0x45c6c0=_0x4d42d['version'];if(_0x4cc1fd===_0x8932('0x8c')){if(_0x8932('0x23')!=typeof _0x4d42d[_0x8932('0x7e')]['views']['admin']){var _0x361d26=_0x4d42d['parameters'][_0x8932('0x7c')][_0x8932('0x7f')];if(!/^(f|ht)tps?:\/\//i[_0x8932('0x8d')](_0x361d26)){_0x49e8ae=path[_0x8932('0x5f')](_0x8932('0x8e'),_0x1746e2,_0x518291[0x0],_0x361d26);}else{_0x49e8ae=_0x361d26;}}else{logger[_0x8932('0x69')](_0x8932('0x8f'));}if(_0x8932('0x23')!=typeof _0x4d42d[_0x8932('0x7e')]['views'][_0x8932('0x80')]){var _0x4ef8f4=_0x4d42d[_0x8932('0x7e')][_0x8932('0x7c')][_0x8932('0x80')];if(!/^(f|ht)tps?:\/\//i[_0x8932('0x8d')](_0x4ef8f4)){_0x3d16f1=path['join'](_0x8932('0x8e'),_0x1746e2,_0x518291[0x0],_0x4ef8f4);}else{_0x3d16f1=_0x4ef8f4;}}else{logger[_0x8932('0x69')]('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x4cc1fd===_0x8932('0x82')){_0x2147d5=_0x4d42d['parameters'][_0x8932('0x83')];_0x91efa6=_0x4d42d[_0x8932('0x7e')][_0x8932('0x84')];if(_0x8932('0x23')!=typeof _0x4d42d[_0x8932('0x7e')][_0x8932('0x7c')]){if('undefined'!=typeof _0x4d42d[_0x8932('0x7e')]['views'][_0x8932('0x7f')]){var _0x361d26=_0x4d42d['parameters'][_0x8932('0x7c')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0x8932('0x8d')](_0x361d26)){_0x49e8ae=path[_0x8932('0x5f')](_0x8932('0x8e'),_0x1746e2,_0x518291[0x0],_0x361d26);}else{_0x49e8ae=_0x361d26;}}if('undefined'!=typeof _0x4d42d[_0x8932('0x7e')]['views'][_0x8932('0x80')]){var _0x4ef8f4=_0x4d42d[_0x8932('0x7e')][_0x8932('0x7c')][_0x8932('0x80')];if(!/^(f|ht)tps?:\/\//i[_0x8932('0x8d')](_0x4ef8f4)){_0x3d16f1=path[_0x8932('0x5f')]('plugins',_0x1746e2,_0x518291[0x0],_0x4ef8f4);}else{_0x3d16f1=_0x4ef8f4;}}}}var _0xd693d7={'name':_0x58dba9,'description':_0x43791b,'path':path['join'](_0x1746e2,_0x518291[0x0]),'type':_0x4cc1fd,'sidebar':_0x4fc9a3,'icon':_0x2ba567,'adminUrl':_0x49e8ae,'agentUrl':_0x3d16f1,'scriptName':_0x2147d5,'scriptPath':_0x91efa6,'version':_0x45c6c0};removeReferences(_0x4b4675,null);return db[_0x8932('0x34')][_0x8932('0x90')](_0xd693d7)['then'](function(_0x472286){var _0x46e605={'role':_0x2dd697['body'][_0x8932('0x91')],'userProfileId':_0x2dd697[_0x8932('0x92')]['userProfileId']};if(!_0x46e605)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x46e605[_0x8932('0x91')]===_0x8932('0x93')){var _0x273a1f=_0x472286[_0x8932('0x2c')]({'plain':!![]});return db[_0x8932('0x94')][_0x8932('0x4d')]({'where':{'name':'Plugins','userProfileId':_0x46e605[_0x8932('0x95')]},'raw':!![]})[_0x8932('0x2a')](function(_0x4fe3f5){if(_0x4fe3f5&&_0x4fe3f5['autoAssociation']===0x0){return db[_0x8932('0x2e')][_0x8932('0x90')]({'name':_0x273a1f['name'],'resourceId':_0x273a1f['id'],'type':_0x4fe3f5[_0x8932('0x31')],'sectionId':_0x4fe3f5['id']},{})[_0x8932('0x2a')](function(){return _0x472286;});}else{return _0x472286;}})['catch'](function(_0x24f74a){logger[_0x8932('0x2f')](_0x8932('0x96'),_0x24f74a);throw _0x24f74a;});}return _0x472286;})[_0x8932('0x2a')](respondWithResult(_0x259180,null))['catch'](handleError(_0x259180,null));}});}catch(_0x15b6a9){_0x259180[_0x8932('0x1f')](0x1f4)['send'](_0x15b6a9);}};function removeReferences(_0x2a2bbe,_0x493d27){try{if(_0x2a2bbe){fs[_0x8932('0x68')](_0x2a2bbe);logger['info'](_0x8932('0x97'));}if(_0x493d27){rimraf(_0x493d27,function(){});logger[_0x8932('0x69')](_0x8932('0x98'));}}catch(_0x37939d){logger[_0x8932('0x2f')](_0x37939d);}}exports[_0x8932('0x29')]=function(_0x14206a,_0x4a82c2,_0x25c785){return db['Plugin'][_0x8932('0x4d')]({'where':{'id':_0x14206a[_0x8932('0x99')]['id']}})['then'](handleEntityNotFound(_0x4a82c2,null))[_0x8932('0x2a')](saveUpdates(_0x14206a[_0x8932('0x92')],null))[_0x8932('0x2a')](respondWithResult(_0x4a82c2,null))[_0x8932('0x4a')](handleError(_0x4a82c2,null));};exports[_0x8932('0x9a')]=function(_0x413fef,_0x5bdf51,_0x13ce42){return db[_0x8932('0x34')]['find']({'where':{'id':_0x413fef['params']['id']}})[_0x8932('0x2a')](function(_0x452001){if(_0x452001){return _0x452001[_0x8932('0x2b')]();}})[_0x8932('0x2a')](function(_0x3bf7a6){rimraf(path[_0x8932('0x5f')](config['root'],'server/files/plugins',path[_0x8932('0x60')](_0x3bf7a6[_0x8932('0x54')])),function(){});return _0x3bf7a6;})['then'](handleEntityNotFound(_0x5bdf51,null))['then'](respondWithStatusCode(_0x5bdf51,null))[_0x8932('0x4a')](handleError(_0x5bdf51,null));};exports['webhookGet']=function(_0x57b685,_0x1b04f1,_0xd06346){return BPromise['resolve']()[_0x8932('0x2a')](function(){if(!_0x57b685[_0x8932('0x3c')][_0x8932('0x54')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x57b685[_0x8932('0x3c')][_0x8932('0x9b')]){throw new Error(_0x8932('0x9c'));}var _0x1948bc=_0x57b685[_0x8932('0x3c')][_0x8932('0x9d')]?_0x57b685['query']['hostname']+':'+_0x57b685[_0x8932('0x3c')][_0x8932('0x9b')]:_0x8932('0x9e')+_0x57b685['query'][_0x8932('0x9b')];var _0x16412d=_0x57b685['query']['json']?_0x57b685['query'][_0x8932('0x21')]:!![];var _0x4d2aa9=_0x57b685[_0x8932('0x3c')]['encoding']?_0x57b685[_0x8932('0x3c')][_0x8932('0x9f')]:null;var _0x300bc0={'method':_0x57b685['method'],'uri':util[_0x8932('0x51')]('%s%s',_0x1948bc,_0x57b685[_0x8932('0x3c')][_0x8932('0x54')]),'json':_0x16412d,'resolveWithFullResponse':!![],'encoding':_0x4d2aa9,'qs':_0x57b685[_0x8932('0x3c')]};if(_0x57b685['headers']){_0x300bc0['headers']=_0x57b685[_0x8932('0xa0')];if(_0x300bc0[_0x8932('0xa0')]['content-length']){delete _0x300bc0['headers'][_0x8932('0xa1')];}}if(_0x300bc0[_0x8932('0xa0')][_0x8932('0xa2')]){delete _0x300bc0[_0x8932('0xa0')][_0x8932('0xa2')];}return rp(_0x300bc0);})[_0x8932('0x2a')](function(_0x389594){if(_0x389594){_0x1b04f1[_0x8932('0x26')](_0x389594['headers']);logger['info'](_0x389594['body']);if(_['endsWith'](_0x57b685['query'][_0x8932('0x54')],'download')&&_0x389594['statusCode']==0x1f4){return _0x1b04f1[_0x8932('0x1e')](_0x389594[_0x8932('0xa3')]);}else{return _0x1b04f1[_0x8932('0x1f')](_0x389594[_0x8932('0xa3')])[_0x8932('0x32')](_0x389594[_0x8932('0x92')]);}}else{return _0x1b04f1[_0x8932('0x1e')](0xc8);}})['catch'](handleError(_0x1b04f1,null));};exports['webhookPost']=function(_0x2e987f,_0x17e444,_0x18326e){return BPromise[_0x8932('0xa4')]()[_0x8932('0x2a')](function(){if(!_0x2e987f[_0x8932('0x3c')][_0x8932('0x54')]){throw new Error(_0x8932('0xa5'));}if(!_0x2e987f[_0x8932('0x3c')]['port']){throw new Error(_0x8932('0x9c'));}var _0x5a4213=_0x2e987f[_0x8932('0x3c')][_0x8932('0x9d')]?_0x2e987f[_0x8932('0x3c')][_0x8932('0x9d')]+':'+_0x2e987f[_0x8932('0x3c')][_0x8932('0x9b')]:'http://localhost:'+_0x2e987f['query'][_0x8932('0x9b')];var _0x39af37=_0x2e987f[_0x8932('0x3c')]['json']?_0x2e987f['query'][_0x8932('0x21')]:!![];var _0x4f0d13=_0x2e987f[_0x8932('0x3c')][_0x8932('0x9f')]?_0x2e987f['query'][_0x8932('0x9f')]:null;var _0x150f83={'method':_0x2e987f[_0x8932('0xa6')],'uri':util[_0x8932('0x51')](_0x8932('0xa7'),_0x5a4213,_0x2e987f[_0x8932('0x3c')]['path']),'json':_0x39af37,'resolveWithFullResponse':!![],'encoding':_0x4f0d13,'body':_0x2e987f['body']};if(_0x2e987f[_0x8932('0xa0')]){_0x150f83['headers']=_0x2e987f['headers'];if(_0x150f83[_0x8932('0xa0')][_0x8932('0xa1')]){delete _0x150f83[_0x8932('0xa0')][_0x8932('0xa1')];}}if(_0x150f83[_0x8932('0xa0')]['content-type']){delete _0x150f83['headers'][_0x8932('0xa2')];}return rp(_0x150f83);})[_0x8932('0x2a')](function(_0x2c8248){if(_0x2c8248){_0x17e444[_0x8932('0x26')](_0x2c8248[_0x8932('0xa0')]);logger[_0x8932('0x69')](_0x2c8248[_0x8932('0x92')]);return _0x17e444[_0x8932('0x1f')](_0x2c8248[_0x8932('0xa3')])[_0x8932('0x32')](_0x2c8248['body']);}else{return _0x17e444[_0x8932('0x1e')](0xc8);}})[_0x8932('0x4a')](handleError(_0x17e444,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd916=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','Plugin','setMaxListeners','save','remove'];(function(_0x38ed42,_0x3d9a37){var _0x474931=function(_0x1fa601){while(--_0x1fa601){_0x38ed42['push'](_0x38ed42['shift']());}};_0x474931(++_0x3d9a37);}(_0xd916,0x18a));var _0x6d91=function(_0x7b717,_0x311539){_0x7b717=_0x7b717-0x0;var _0x50d254=_0xd916[_0x7b717];return _0x50d254;};'use strict';var EventEmitter=require(_0x6d91('0x0'));var Plugin=require(_0x6d91('0x1'))['db'][_0x6d91('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0x6d91('0x3')](0x0);var events={'afterCreate':_0x6d91('0x4'),'afterUpdate':'update','afterDestroy':_0x6d91('0x5')};function emitEvent(_0x3644e5){return function(_0x5a4b38,_0x4f82b3,_0x35101c){PluginEvents[_0x6d91('0x6')](_0x3644e5+':'+_0x5a4b38['id'],_0x5a4b38);PluginEvents['emit'](_0x3644e5,_0x5a4b38);_0x35101c(null);};}for(var e in events){if(events[_0x6d91('0x7')](e)){var event=events[e];Plugin[_0x6d91('0x8')](e,emitEvent(event));}}module[_0x6d91('0x9')]=PluginEvents;
\ No newline at end of file
+var _0x5078=['Plugin','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb'];(function(_0x722360,_0x217e4f){var _0x39590f=function(_0x1aa9f8){while(--_0x1aa9f8){_0x722360['push'](_0x722360['shift']());}};_0x39590f(++_0x217e4f);}(_0x5078,0x148));var _0x8507=function(_0x562d84,_0x1759c2){_0x562d84=_0x562d84-0x0;var _0x28b33d=_0x5078[_0x562d84];return _0x28b33d;};'use strict';var EventEmitter=require(_0x8507('0x0'));var Plugin=require(_0x8507('0x1'))['db'][_0x8507('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0x8507('0x3')](0x0);var events={'afterCreate':_0x8507('0x4'),'afterUpdate':_0x8507('0x5'),'afterDestroy':_0x8507('0x6')};function emitEvent(_0x20608d){return function(_0x1a4930,_0x239a82,_0x2aa379){PluginEvents[_0x8507('0x7')](_0x20608d+':'+_0x1a4930['id'],_0x1a4930);PluginEvents[_0x8507('0x7')](_0x20608d,_0x1a4930);_0x2aa379(null);};}for(var e in events){if(events[_0x8507('0x8')](e)){var event=events[e];Plugin[_0x8507('0x9')](e,emitEvent(event));}}module[_0x8507('0xa')]=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33b4=['util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./plugin.attributes','exports','define','Plugin','lodash'];(function(_0xfda84,_0xdc6af4){var _0x308cf0=function(_0x24ccf7){while(--_0x24ccf7){_0xfda84['push'](_0xfda84['shift']());}};_0x308cf0(++_0xdc6af4);}(_0x33b4,0x81));var _0x433b=function(_0x26fc9e,_0x3c879a){_0x26fc9e=_0x26fc9e-0x0;var _0x4e8458=_0x33b4[_0x26fc9e];return _0x4e8458;};'use strict';var _=require(_0x433b('0x0'));var util=require(_0x433b('0x1'));var logger=require(_0x433b('0x2'))(_0x433b('0x3'));var moment=require(_0x433b('0x4'));var BPromise=require(_0x433b('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x433b('0x6'));var rimraf=require(_0x433b('0x7'));var config=require(_0x433b('0x8'));var attributes=require(_0x433b('0x9'));module[_0x433b('0xa')]=function(_0x388ba3,_0x58d435){return _0x388ba3[_0x433b('0xb')](_0x433b('0xc'),attributes,{'tableName':'plugins','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9a28=['util','../../config/logger','api','moment','bluebird','path','./plugin.attributes','exports','define','Plugin','plugins','lodash'];(function(_0x54ee16,_0x487483){var _0x1866e6=function(_0x12a2ac){while(--_0x12a2ac){_0x54ee16['push'](_0x54ee16['shift']());}};_0x1866e6(++_0x487483);}(_0x9a28,0x1bb));var _0x89a2=function(_0x16d10f,_0x2ba2d5){_0x16d10f=_0x16d10f-0x0;var _0x50c823=_0x9a28[_0x16d10f];return _0x50c823;};'use strict';var _=require(_0x89a2('0x0'));var util=require(_0x89a2('0x1'));var logger=require(_0x89a2('0x2'))(_0x89a2('0x3'));var moment=require(_0x89a2('0x4'));var BPromise=require(_0x89a2('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x89a2('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x89a2('0x7'));module[_0x89a2('0x8')]=function(_0x53e189,_0x5eb650){return _0x53e189[_0x89a2('0x9')](_0x89a2('0xa'),attributes,{'tableName':_0x89a2('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b12=['redis','localhost','./plugin.socket','register','request','then','info','Plugin,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','CreatePlugin','Plugin','create','options','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x4e685c,_0x5aa822){var _0x244397=function(_0x387552){while(--_0x387552){_0x4e685c['push'](_0x4e685c['shift']());}};_0x244397(++_0x5aa822);}(_0x5b12,0x1d4));var _0x25b1=function(_0x243f9a,_0x22493e){_0x243f9a=_0x243f9a-0x0;var _0x2c883c=_0x5b12[_0x243f9a];return _0x2c883c;};'use strict';var _=require(_0x25b1('0x0'));var util=require(_0x25b1('0x1'));var moment=require('moment');var BPromise=require(_0x25b1('0x2'));var rs=require(_0x25b1('0x3'));var fs=require('fs');var Redis=require(_0x25b1('0x4'));var db=require(_0x25b1('0x5'))['db'];var utils=require(_0x25b1('0x6'));var logger=require(_0x25b1('0x7'))(_0x25b1('0x8'));var config=require(_0x25b1('0x9'));var jayson=require(_0x25b1('0xa'));var client=jayson['client'][_0x25b1('0xb')]({'port':0x232a});config[_0x25b1('0xc')]=_['defaults'](config['redis'],{'host':_0x25b1('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x25b1('0xe'))[_0x25b1('0xf')](socket);function respondWithRpcPromise(_0x25c2f8,_0xc6b42c,_0x78032e){return new BPromise(function(_0x10278e,_0x2f79af){return client[_0x25b1('0x10')](_0x25c2f8,_0x78032e)[_0x25b1('0x11')](function(_0x198a19){logger[_0x25b1('0x12')](_0x25b1('0x13'),_0xc6b42c,_0x25b1('0x14'));logger[_0x25b1('0x15')]('Plugin,\x20%s,\x20%s,\x20%s',_0xc6b42c,_0x25b1('0x14'),JSON[_0x25b1('0x16')](_0x198a19));if(_0x198a19[_0x25b1('0x17')]){if(_0x198a19[_0x25b1('0x17')][_0x25b1('0x18')]===0x1f4){logger[_0x25b1('0x17')]('Plugin,\x20%s,\x20%s',_0xc6b42c,_0x198a19['error'][_0x25b1('0x19')]);return _0x2f79af(_0x198a19[_0x25b1('0x17')][_0x25b1('0x19')]);}logger[_0x25b1('0x17')](_0x25b1('0x13'),_0xc6b42c,_0x198a19[_0x25b1('0x17')][_0x25b1('0x19')]);return _0x10278e(_0x198a19['error'][_0x25b1('0x19')]);}else{logger[_0x25b1('0x12')]('Plugin,\x20%s,\x20%s',_0xc6b42c,_0x25b1('0x14'));_0x10278e(_0x198a19[_0x25b1('0x1a')][_0x25b1('0x19')]);}})[_0x25b1('0x1b')](function(_0x464f2e){logger[_0x25b1('0x17')]('Plugin,\x20%s,\x20%s',_0xc6b42c,_0x464f2e);_0x2f79af(_0x464f2e);});});}exports[_0x25b1('0x1c')]=function(_0x34eaaf){var _0x1bc7e9=this;return new Promise(function(_0x2f5d7d,_0x44050b){return db[_0x25b1('0x1d')][_0x25b1('0x1e')](_0x34eaaf['body'],{'raw':_0x34eaaf[_0x25b1('0x1f')]?_0x34eaaf[_0x25b1('0x1f')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0xe87a70){logger[_0x25b1('0x12')]('CreatePlugin',_0x34eaaf);logger['debug'](_0x25b1('0x1c'),_0x34eaaf,JSON[_0x25b1('0x16')](_0xe87a70));_0x2f5d7d(_0xe87a70);})[_0x25b1('0x1b')](function(_0x10182d){logger['error']('CreatePlugin',_0x10182d[_0x25b1('0x19')],_0x34eaaf);_0x44050b(_0x1bc7e9[_0x25b1('0x17')](0x1f4,_0x10182d[_0x25b1('0x19')]));});});};
\ No newline at end of file
+var _0xdfa4=['../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./plugin.socket','register','info','Plugin,\x20%s,\x20%s','request\x20sent','debug','Plugin,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','CreatePlugin','Plugin','create','body','options','then','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x24a570,_0x42cf42){var _0x489f67=function(_0xa0bdf3){while(--_0xa0bdf3){_0x24a570['push'](_0x24a570['shift']());}};_0x489f67(++_0x42cf42);}(_0xdfa4,0x190));var _0x4dfa=function(_0x4e12ea,_0x2336aa){_0x4e12ea=_0x4e12ea-0x0;var _0x22d943=_0xdfa4[_0x4e12ea];return _0x22d943;};'use strict';var _=require(_0x4dfa('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4dfa('0x1'));var rs=require(_0x4dfa('0x2'));var fs=require('fs');var Redis=require(_0x4dfa('0x3'));var db=require(_0x4dfa('0x4'))['db'];var utils=require(_0x4dfa('0x5'));var logger=require(_0x4dfa('0x6'))(_0x4dfa('0x7'));var config=require(_0x4dfa('0x8'));var jayson=require(_0x4dfa('0x9'));var client=jayson[_0x4dfa('0xa')][_0x4dfa('0xb')]({'port':0x232a});config[_0x4dfa('0xc')]=_[_0x4dfa('0xd')](config[_0x4dfa('0xc')],{'host':_0x4dfa('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4dfa('0xc')]));require(_0x4dfa('0xf'))[_0x4dfa('0x10')](socket);function respondWithRpcPromise(_0x4ac406,_0x4debc7,_0x8db19e){return new BPromise(function(_0x5be76b,_0x3dacf4){return client['request'](_0x4ac406,_0x8db19e)['then'](function(_0x504eb9){logger[_0x4dfa('0x11')](_0x4dfa('0x12'),_0x4debc7,_0x4dfa('0x13'));logger[_0x4dfa('0x14')](_0x4dfa('0x15'),_0x4debc7,_0x4dfa('0x13'),JSON[_0x4dfa('0x16')](_0x504eb9));if(_0x504eb9['error']){if(_0x504eb9['error'][_0x4dfa('0x17')]===0x1f4){logger[_0x4dfa('0x18')](_0x4dfa('0x12'),_0x4debc7,_0x504eb9[_0x4dfa('0x18')][_0x4dfa('0x19')]);return _0x3dacf4(_0x504eb9['error'][_0x4dfa('0x19')]);}logger['error']('Plugin,\x20%s,\x20%s',_0x4debc7,_0x504eb9[_0x4dfa('0x18')][_0x4dfa('0x19')]);return _0x5be76b(_0x504eb9[_0x4dfa('0x18')]['message']);}else{logger[_0x4dfa('0x11')](_0x4dfa('0x12'),_0x4debc7,'request\x20sent');_0x5be76b(_0x504eb9[_0x4dfa('0x1a')][_0x4dfa('0x19')]);}})[_0x4dfa('0x1b')](function(_0x5d972d){logger[_0x4dfa('0x18')](_0x4dfa('0x12'),_0x4debc7,_0x5d972d);_0x3dacf4(_0x5d972d);});});}exports[_0x4dfa('0x1c')]=function(_0x18abd8){var _0xece438=this;return new Promise(function(_0xa91641,_0x3737ed){return db[_0x4dfa('0x1d')][_0x4dfa('0x1e')](_0x18abd8[_0x4dfa('0x1f')],{'raw':_0x18abd8[_0x4dfa('0x20')]?_0x18abd8[_0x4dfa('0x20')]['raw']===undefined?!![]:![]:!![]})[_0x4dfa('0x21')](function(_0x4719e4){logger[_0x4dfa('0x11')](_0x4dfa('0x1c'),_0x18abd8);logger[_0x4dfa('0x14')](_0x4dfa('0x1c'),_0x18abd8,JSON['stringify'](_0x4719e4));_0xa91641(_0x4719e4);})[_0x4dfa('0x1b')](function(_0x39b70d){logger['error'](_0x4dfa('0x1c'),_0x39b70d[_0x4dfa('0x19')],_0x18abd8);_0x3737ed(_0xece438[_0x4dfa('0x18')](0x1f4,_0x39b70d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94ba=['./plugin.events','save','remove','update','emit','plugin:'];(function(_0x449dbe,_0x1499eb){var _0x79d89e=function(_0xbf50f6){while(--_0xbf50f6){_0x449dbe['push'](_0x449dbe['shift']());}};_0x79d89e(++_0x1499eb);}(_0x94ba,0x90));var _0xa94b=function(_0x315b61,_0x4bb11e){_0x315b61=_0x315b61-0x0;var _0x3521e8=_0x94ba[_0x315b61];return _0x3521e8;};'use strict';var PluginEvents=require(_0xa94b('0x0'));var events=[_0xa94b('0x1'),_0xa94b('0x2'),_0xa94b('0x3')];function createListener(_0x35d723,_0x4eac57){return function(_0x7a4d53){_0x4eac57[_0xa94b('0x4')](_0x35d723,_0x7a4d53);};}function removeListener(_0x23bf32,_0x513e1f){return function(){PluginEvents['removeListener'](_0x23bf32,_0x513e1f);};}exports['register']=function(_0x2ace75){for(var _0x20952e=0x0,_0x24fda4=events['length'];_0x20952e<_0x24fda4;_0x20952e++){var _0x10fae9=events[_0x20952e];var _0x8647a4=createListener(_0xa94b('0x5')+_0x10fae9,_0x2ace75);PluginEvents['on'](_0x10fae9,_0x8647a4);}};
\ No newline at end of file
+var _0xf8ca=['register','length','./plugin.events','save','update','removeListener'];(function(_0x55855c,_0x151e65){var _0x551f70=function(_0x1ed38f){while(--_0x1ed38f){_0x55855c['push'](_0x55855c['shift']());}};_0x551f70(++_0x151e65);}(_0xf8ca,0x6e));var _0xaf8c=function(_0x22f8ab,_0x15d8ff){_0x22f8ab=_0x22f8ab-0x0;var _0x2a70e5=_0xf8ca[_0x22f8ab];return _0x2a70e5;};'use strict';var PluginEvents=require(_0xaf8c('0x0'));var events=[_0xaf8c('0x1'),'remove',_0xaf8c('0x2')];function createListener(_0x44445f,_0xced6bb){return function(_0x309259){_0xced6bb['emit'](_0x44445f,_0x309259);};}function removeListener(_0x11148f,_0x3eb465){return function(){PluginEvents[_0xaf8c('0x3')](_0x11148f,_0x3eb465);};}exports[_0xaf8c('0x4')]=function(_0x5437e4){for(var _0x49480a=0x0,_0x50f2e1=events[_0xaf8c('0x5')];_0x49480a<_0x50f2e1;_0x49480a++){var _0x240ed3=events[_0x49480a];var _0xbe862e=createListener('plugin:'+_0x240ed3,_0x5437e4);PluginEvents['on'](_0x240ed3,_0xbe862e);}};
\ 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(_0x33f708,_0x307b99){var _0x11836c=function(_0x44c548){while(--_0x44c548){_0x33f708['push'](_0x33f708['shift']());}};_0x11836c(++_0x307b99);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0xa9e0[_0x1da04e];return _0xdd8c41;};'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(_0x5f7685,_0x13d446){var _0x345715=function(_0x163778){while(--_0x163778){_0x5f7685['push'](_0x5f7685['shift']());}};_0x345715(++_0x13d446);}(_0xa9e0,0x123));var _0x0a9e=function(_0x40ac5e,_0x2de228){_0x40ac5e=_0x40ac5e-0x0;var _0x2839d6=_0xa9e0[_0x40ac5e];return _0x2839d6;};'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 _0xdace=['path','exec','bluebird','sendStatus','status','json','error','stack','send','npm\x20install','info','index','list','then','reject','name','express','length','catch','show','create','body','script','join','../../files/plugins','chdir','dirname','start','dump','Missing\x20name\x20and/or\x20path','update','restart','stop','params','Unknown\x20status','destroy','Unknown\x20id','lodash','../../config/logger','api'];(function(_0x41c966,_0x4cb556){var _0xd858c0=function(_0x817a47){while(--_0x817a47){_0x41c966['push'](_0x41c966['shift']());}};_0xd858c0(++_0x4cb556);}(_0xdace,0xc5));var _0xedac=function(_0xe8129c,_0x2fb03c){_0xe8129c=_0xe8129c-0x0;var _0x709fc5=_0xdace[_0xe8129c];return _0x709fc5;};'use strict';var _=require(_0xedac('0x0'));var pm2=require('../../config/pm2');var logger=require(_0xedac('0x1'))(_0xedac('0x2'));var path=require(_0xedac('0x3'));var exec=require('child_process')[_0xedac('0x4')];var BPromise=require(_0xedac('0x5'));function handleEntityNotFound(_0x15d3bd,_0xefb142){return function(_0x5a97c0){if(!_0x5a97c0){_0x15d3bd[_0xedac('0x6')](0x194);;}return _0x5a97c0;};}function respondWithResult(_0x1cba89,_0x39328a){_0x39328a=_0x39328a||0xc8;return function(_0x5ecbd3){if(_0x5ecbd3){return _0x1cba89[_0xedac('0x7')](_0x39328a)[_0xedac('0x8')](_0x5ecbd3);}return null;};}function handleError(_0x162eea,_0x53fa43){_0x53fa43=_0x53fa43||0x1f4;return function(_0x27243f){logger[_0xedac('0x9')](_0x27243f[_0xedac('0xa')]);if(_0x27243f['name']){delete _0x27243f['name'];}_0x162eea[_0xedac('0x7')](_0x53fa43)[_0xedac('0xb')](_0x27243f);};}function execChildProcess(){return new BPromise(function(_0x57e1bf,_0x4d6a29){exec(_0xedac('0xc'),function(_0x25395d,_0x57f637,_0x261401){logger['info'](_0x57f637);logger[_0xedac('0xd')](_0x261401);if(_0x25395d){logger[_0xedac('0x9')](_0x25395d);return _0x4d6a29(_0x25395d);}return _0x57e1bf(_0x57f637);});});}exports[_0xedac('0xe')]=function(_0x342186,_0x9a79a0){return pm2[_0xedac('0xf')]()[_0xedac('0x10')](function(_0x11f0b0){if(_0x11f0b0){var _0x593030=_[_0xedac('0x11')](_0x11f0b0,function(_0x4651d4){return _0x4651d4[_0xedac('0x12')]===_0xedac('0x13')||_0x4651d4[_0xedac('0x12')]==='motion2';});return{'rows':_0x593030,'count':_0x593030[_0xedac('0x14')]};}return null;})['then'](respondWithResult(_0x9a79a0,null))[_0xedac('0x15')](handleError(_0x9a79a0,null));};exports[_0xedac('0x16')]=function(_0xdad128,_0xba0c93){return pm2['describe'](_0xdad128['params']['id'])[_0xedac('0x10')](respondWithResult(_0xba0c93,null))[_0xedac('0x10')](handleEntityNotFound(_0xba0c93,null))[_0xedac('0x15')](handleError(_0xba0c93,null));};exports[_0xedac('0x17')]=function(_0x5a5438,_0x4a699b){if(_0x5a5438[_0xedac('0x18')][_0xedac('0x12')]&&_0x5a5438[_0xedac('0x18')][_0xedac('0x19')]){var _0x2f5eee=path[_0xedac('0x1a')](__dirname,_0xedac('0x1b'),_0x5a5438[_0xedac('0x18')]['script']);var _0x4593e8=process['cwd']();process[_0xedac('0x1c')](path[_0xedac('0x1d')](_0x2f5eee));return execChildProcess()['then'](function(_0x46e09d){process[_0xedac('0x1c')](_0x4593e8);return pm2[_0xedac('0x1e')]({'name':_0x5a5438[_0xedac('0x18')][_0xedac('0x12')],'script':_0x2f5eee});})[_0xedac('0x10')](function(_0x5d7c31){pm2[_0xedac('0x1f')]();return _0x5d7c31[0x0];})[_0xedac('0x10')](respondWithResult(_0x4a699b,0xc9))[_0xedac('0x15')](handleError(_0x4a699b,null));}else{return _0x4a699b[_0xedac('0x7')](0x1f4)[_0xedac('0xb')]({'message':_0xedac('0x20')});}};exports[_0xedac('0x21')]=function(_0x26c6f7,_0x409825){if(_0x26c6f7[_0xedac('0x18')]['id']){delete _0x26c6f7['body']['id'];}var _0x25d7f5={'online':_0xedac('0x22'),'stopped':_0xedac('0x23')};if(_0x25d7f5['hasOwnProperty'](_0x26c6f7[_0xedac('0x18')]['status'])){return pm2[_0x25d7f5[_0x26c6f7['body'][_0xedac('0x7')]]](_0x26c6f7[_0xedac('0x24')]['id'])[_0xedac('0x10')](respondWithResult(_0x409825,0xc8))[_0xedac('0x15')](handleError(_0x409825,null));}else{return _0x409825['status'](0x1f4)['send']({'message':_0xedac('0x25')});}};exports[_0xedac('0x26')]=function(_0x24b182,_0x2ee8d7){if(_0x24b182[_0xedac('0x18')]['id']){delete _0x24b182[_0xedac('0x18')]['id'];}if(_0x24b182[_0xedac('0x24')]['id']){return pm2['delete'](_0x24b182[_0xedac('0x24')]['id'])[_0xedac('0x10')](function(_0x2cbe33){pm2['dump']();return _0x2cbe33[0x0];})[_0xedac('0x10')](respondWithResult(_0x2ee8d7,null))[_0xedac('0x15')](handleError(_0x2ee8d7,null));}else{return _0x2ee8d7['status'](0x1f4)[_0xedac('0xb')]({'message':_0xedac('0x27')});}};
\ No newline at end of file
+var _0x878f=['dirname','start','dump','restart','stop','hasOwnProperty','params','send','destroy','delete','Unknown\x20id','../../config/pm2','../../config/logger','api','path','child_process','exec','bluebird','sendStatus','status','name','info','index','then','express','motion2','length','catch','show','describe','create','body','script','../../files/plugins','cwd','chdir'];(function(_0x2d6ddd,_0x3d54c2){var _0x1fc242=function(_0x5b71fc){while(--_0x5b71fc){_0x2d6ddd['push'](_0x2d6ddd['shift']());}};_0x1fc242(++_0x3d54c2);}(_0x878f,0x173));var _0xf878=function(_0x31f268,_0x37caef){_0x31f268=_0x31f268-0x0;var _0x3fd137=_0x878f[_0x31f268];return _0x3fd137;};'use strict';var _=require('lodash');var pm2=require(_0xf878('0x0'));var logger=require(_0xf878('0x1'))(_0xf878('0x2'));var path=require(_0xf878('0x3'));var exec=require(_0xf878('0x4'))[_0xf878('0x5')];var BPromise=require(_0xf878('0x6'));function handleEntityNotFound(_0x45a37b,_0x240b48){return function(_0xcf1927){if(!_0xcf1927){_0x45a37b[_0xf878('0x7')](0x194);;}return _0xcf1927;};}function respondWithResult(_0x4bc9aa,_0x4ac8d8){_0x4ac8d8=_0x4ac8d8||0xc8;return function(_0x3c5f5c){if(_0x3c5f5c){return _0x4bc9aa[_0xf878('0x8')](_0x4ac8d8)['json'](_0x3c5f5c);}return null;};}function handleError(_0x52851e,_0x530767){_0x530767=_0x530767||0x1f4;return function(_0x3329df){logger['error'](_0x3329df['stack']);if(_0x3329df[_0xf878('0x9')]){delete _0x3329df[_0xf878('0x9')];}_0x52851e[_0xf878('0x8')](_0x530767)['send'](_0x3329df);};}function execChildProcess(){return new BPromise(function(_0xb2863e,_0x1399a3){exec('npm\x20install',function(_0xdf76,_0x4f7e7f,_0x31d3d2){logger[_0xf878('0xa')](_0x4f7e7f);logger[_0xf878('0xa')](_0x31d3d2);if(_0xdf76){logger['error'](_0xdf76);return _0x1399a3(_0xdf76);}return _0xb2863e(_0x4f7e7f);});});}exports[_0xf878('0xb')]=function(_0x38eddf,_0x39b1bb){return pm2['list']()[_0xf878('0xc')](function(_0x3902f7){if(_0x3902f7){var _0x119e9e=_['reject'](_0x3902f7,function(_0x568a3a){return _0x568a3a[_0xf878('0x9')]===_0xf878('0xd')||_0x568a3a[_0xf878('0x9')]===_0xf878('0xe');});return{'rows':_0x119e9e,'count':_0x119e9e[_0xf878('0xf')]};}return null;})[_0xf878('0xc')](respondWithResult(_0x39b1bb,null))[_0xf878('0x10')](handleError(_0x39b1bb,null));};exports[_0xf878('0x11')]=function(_0x3c5dee,_0x3a55f3){return pm2[_0xf878('0x12')](_0x3c5dee['params']['id'])[_0xf878('0xc')](respondWithResult(_0x3a55f3,null))[_0xf878('0xc')](handleEntityNotFound(_0x3a55f3,null))[_0xf878('0x10')](handleError(_0x3a55f3,null));};exports[_0xf878('0x13')]=function(_0x3714f6,_0x237d15){if(_0x3714f6[_0xf878('0x14')]['name']&&_0x3714f6[_0xf878('0x14')][_0xf878('0x15')]){var _0x250f85=path['join'](__dirname,_0xf878('0x16'),_0x3714f6[_0xf878('0x14')][_0xf878('0x15')]);var _0x392822=process[_0xf878('0x17')]();process[_0xf878('0x18')](path[_0xf878('0x19')](_0x250f85));return execChildProcess()[_0xf878('0xc')](function(_0x212436){process[_0xf878('0x18')](_0x392822);return pm2[_0xf878('0x1a')]({'name':_0x3714f6['body'][_0xf878('0x9')],'script':_0x250f85});})['then'](function(_0xa3d3d3){pm2[_0xf878('0x1b')]();return _0xa3d3d3[0x0];})[_0xf878('0xc')](respondWithResult(_0x237d15,0xc9))[_0xf878('0x10')](handleError(_0x237d15,null));}else{return _0x237d15[_0xf878('0x8')](0x1f4)['send']({'message':'Missing\x20name\x20and/or\x20path'});}};exports['update']=function(_0x242926,_0x3baba4){if(_0x242926[_0xf878('0x14')]['id']){delete _0x242926['body']['id'];}var _0xfa3e11={'online':_0xf878('0x1c'),'stopped':_0xf878('0x1d')};if(_0xfa3e11[_0xf878('0x1e')](_0x242926[_0xf878('0x14')]['status'])){return pm2[_0xfa3e11[_0x242926['body'][_0xf878('0x8')]]](_0x242926[_0xf878('0x1f')]['id'])['then'](respondWithResult(_0x3baba4,0xc8))[_0xf878('0x10')](handleError(_0x3baba4,null));}else{return _0x3baba4['status'](0x1f4)[_0xf878('0x20')]({'message':'Unknown\x20status'});}};exports[_0xf878('0x21')]=function(_0x49e66a,_0x2630fb){if(_0x49e66a['body']['id']){delete _0x49e66a[_0xf878('0x14')]['id'];}if(_0x49e66a[_0xf878('0x1f')]['id']){return pm2[_0xf878('0x22')](_0x49e66a[_0xf878('0x1f')]['id'])[_0xf878('0xc')](function(_0x716782){pm2['dump']();return _0x716782[0x0];})[_0xf878('0xc')](respondWithResult(_0x2630fb,null))[_0xf878('0x10')](handleError(_0x2630fb,null));}else{return _0x2630fb[_0xf878('0x8')](0x1f4)[_0xf878('0x20')]({'message':_0xf878('0x23')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb432=['./realtime.controller','get','/queues','isAuthenticated','getQueues','exports','express','Router','../../components/auth/service'];(function(_0x5959c9,_0x2ed153){var _0x4ffcbc=function(_0x459b7a){while(--_0x459b7a){_0x5959c9['push'](_0x5959c9['shift']());}};_0x4ffcbc(++_0x2ed153);}(_0xb432,0x180));var _0x2b43=function(_0x4cb660,_0x5cebf6){_0x4cb660=_0x4cb660-0x0;var _0x59cbba=_0xb432[_0x4cb660];return _0x59cbba;};'use strict';var express=require(_0x2b43('0x0'));var router=express[_0x2b43('0x1')]();var auth=require(_0x2b43('0x2'));var controller=require(_0x2b43('0x3'));router[_0x2b43('0x4')](_0x2b43('0x5'),auth[_0x2b43('0x6')](),controller[_0x2b43('0x7')]);module[_0x2b43('0x8')]=router;
\ No newline at end of file
+var _0x7980=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./realtime.controller','/queues','isAuthenticated','getQueues','exports','multer','util','connect-timeout'];(function(_0x145597,_0x4219e3){var _0x20662c=function(_0x56c85f){while(--_0x56c85f){_0x145597['push'](_0x145597['shift']());}};_0x20662c(++_0x4219e3);}(_0x7980,0x123));var _0x0798=function(_0x2c36b9,_0x18f1f6){_0x2c36b9=_0x2c36b9-0x0;var _0x264c92=_0x7980[_0x2c36b9];return _0x264c92;};'use strict';var multer=require(_0x0798('0x0'));var util=require(_0x0798('0x1'));var path=require('path');var timeout=require(_0x0798('0x2'));var express=require(_0x0798('0x3'));var router=express[_0x0798('0x4')]();var fs_extra=require(_0x0798('0x5'));var auth=require(_0x0798('0x6'));var interaction=require(_0x0798('0x7'));var config=require(_0x0798('0x8'));var controller=require(_0x0798('0x9'));router['get'](_0x0798('0xa'),auth[_0x0798('0xb')](),controller[_0x0798('0xc')]);module[_0x0798('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77d4=['lodash','../../components/parsers/qs','api','../../mysqldb','client','http','limit','count','offset','status','set','json','error','stack','name','mail','chat','openchannel','fax','whatsapp','voice','resolve','then','query','channel','includes','toLowerCase','startCase','Queue','map','rawAttributes','fieldName','type','key','getOptions','role','user','userProfileId','outbound','QueueCampaigns','filter','UserProfile','getResources','findAndCountAll','request','Queues','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues','result','loggedIn','available','waiting','talking','paused','push','pTalking','message','dialActive','dialMethod','Trunk','startPredictive','startProgressive','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','rows','originated','agents','find','pick','getMembers','length','online','Pause','findAll','User','UserId','agent','loggedInDb','all','catch'];(function(_0x340380,_0x4bd2a8){var _0x49ce1c=function(_0x4cb9e2){while(--_0x4cb9e2){_0x340380['push'](_0x340380['shift']());}};_0x49ce1c(++_0x4bd2a8);}(_0x77d4,0x108));var _0x477d=function(_0x1d6dfe,_0x50973d){_0x1d6dfe=_0x1d6dfe-0x0;var _0x51a91f=_0x77d4[_0x1d6dfe];return _0x51a91f;};'use strict';var util=require('util');var _=require(_0x477d('0x0'));var jayson=require('jayson/promise');var qs=require(_0x477d('0x1'));var logger=require('../../config/logger')(_0x477d('0x2'));var db=require(_0x477d('0x3'))['db'];var client=jayson['client']['http']({'port':0x232a});var routingClient=jayson[_0x477d('0x4')][_0x477d('0x5')]({'port':0x232c});function respondWithFilteredResult(_0x3d2f8d,_0x471fca){return function(_0x2545e5){if(_0x2545e5){var _0x45ca2d=typeof _0x471fca['offset']==='undefined'&&typeof _0x471fca[_0x477d('0x6')]==='undefined';var _0x5da70c=_0x2545e5[_0x477d('0x7')];var _0x29f11b=_0x45ca2d?0x0:_0x471fca[_0x477d('0x8')];var _0x2c326c=_0x45ca2d?_0x2545e5[_0x477d('0x7')]:_0x471fca['offset']+_0x471fca[_0x477d('0x6')];var _0x4f11bc;if(_0x2c326c>=_0x5da70c){_0x2c326c=_0x5da70c;_0x4f11bc=0xc8;}else{_0x4f11bc=0xce;}_0x3d2f8d[_0x477d('0x9')](_0x4f11bc);return _0x3d2f8d[_0x477d('0xa')]('Content-Range',_0x29f11b+'-'+_0x2c326c+'/'+_0x5da70c)[_0x477d('0xb')](_0x2545e5);}return null;};}function handleError(_0x3d362a,_0x5a190c){_0x5a190c=_0x5a190c||0x1f4;return function(_0x5dd33c){logger[_0x477d('0xc')](_0x5dd33c[_0x477d('0xd')]);if(_0x5dd33c['name']){delete _0x5dd33c[_0x477d('0xe')];}_0x3d362a[_0x477d('0x9')](_0x5a190c)['send'](_0x5dd33c);};}exports['getQueues']=function(_0x38a0a8,_0x4bbfef){var _0x30481f=[_0x477d('0xf'),_0x477d('0x10'),'sms',_0x477d('0x11'),_0x477d('0x12'),_0x477d('0x13'),_0x477d('0x14')];var _0x57b38e={'count':0x0,'rows':[]},_0x28f17a={},_0x5d5553;Promise[_0x477d('0x15')]()[_0x477d('0x16')](function(){if(_0x38a0a8[_0x477d('0x17')][_0x477d('0x18')]){if(!_[_0x477d('0x19')](_0x30481f,_0x38a0a8[_0x477d('0x17')]['channel'][_0x477d('0x1a')]()))throw new Error('Invalid\x20channel');_0x5d5553=_0x38a0a8[_0x477d('0x17')][_0x477d('0x18')][_0x477d('0x1a')]();}var _0x14cbd5=_[_0x477d('0x1b')](_0x5d5553)+_0x477d('0x1c');var _0x435a3b=_[_0x477d('0x1d')](db[_0x14cbd5][_0x477d('0x1e')],function(_0x5981a){return{'name':_0x5981a[_0x477d('0x1f')],'type':_0x5981a[_0x477d('0x20')][_0x477d('0x21')]};});_0x28f17a=qs[_0x477d('0x22')](_0x435a3b,_0x38a0a8);if(_0x38a0a8['user'][_0x477d('0x23')]==='user'){var _0x239b56={'params':{'id':_0x38a0a8[_0x477d('0x24')][_0x477d('0x25')]},'query':{'section':_0x5d5553===_0x477d('0x14')&&_0x38a0a8['query'][_0x477d('0x20')]===_0x477d('0x26')?_0x477d('0x27'):_['startCase'](_0x5d5553)+'Queues','type':_0x38a0a8[_0x477d('0x17')][_0x477d('0x20')],'nolimit':!![],'sort':_0x477d('0xe'),'filter':_0x38a0a8['query'][_0x477d('0x28')]}};return db[_0x477d('0x29')][_0x477d('0x2a')](_0x239b56);}return db[_0x14cbd5][_0x477d('0x2b')](_0x28f17a);})[_0x477d('0x16')](function(_0x537fc4){_0x57b38e[_0x477d('0x7')]=_0x537fc4[_0x477d('0x7')];var _0x17dd16=_0x5d5553===_0x477d('0x14')?client:routingClient;return _0x17dd16[_0x477d('0x2c')](_[_0x477d('0x1b')](_0x5d5553)+_0x477d('0x2d'),_0x38a0a8)[_0x477d('0x16')](function(_0x204541){if(_0x204541[_0x477d('0xc')])throw new Error(util[_0x477d('0x2e')](_0x477d('0x2f'),_0x5d5553));var _0x138c6d=_0x204541[_0x477d('0x30')];var _0x16042d=[_0x477d('0x31'),_0x477d('0x32'),_0x477d('0x33'),_0x477d('0x34'),_0x477d('0x35')];if(_0x5d5553==='voice'&&_0x38a0a8[_0x477d('0x17')]['type']===_0x477d('0x26')){_0x16042d[_0x477d('0x36')](_0x477d('0x37'),'originated',_0x477d('0x38'),_0x477d('0x39'),_0x477d('0x3a'),_0x477d('0x3b'),_0x477d('0x3c'),_0x477d('0x3d'),_0x477d('0x3e'),_0x477d('0x3f'),_0x477d('0x40'),_0x477d('0x41'),'dialPredictiveInterval',_0x477d('0x42'),_0x477d('0x43'),_0x477d('0x44'),'predictiveIntervalTotalCalls',_0x477d('0x45'),_0x477d('0x46'),_0x477d('0x47'),'predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime');}var _0x21de5c=_0x537fc4[_0x477d('0x48')][_0x477d('0x1d')](function(_0x13ac50){var _0x1c0d86=_0x13ac50['get']({'plain':!![]});_0x1c0d86[_0x477d('0x35')]=0x0;_0x1c0d86['loggedInDb']=0x0;_0x1c0d86[_0x477d('0x31')]=0x0;_0x1c0d86[_0x477d('0x32')]=0x0;_0x1c0d86[_0x477d('0x35')]=0x0;_0x1c0d86['waiting']=0x0;if(_0x5d5553==='voice'){_0x1c0d86[_0x477d('0x34')]=0x0;if(_0x38a0a8[_0x477d('0x17')][_0x477d('0x20')]===_0x477d('0x26')){_0x1c0d86['pTalking']=0x0;_0x1c0d86[_0x477d('0x49')]=0x0;}}_0x1c0d86[_0x477d('0x4a')]=[];var _0x40fdc0=_[_0x477d('0x4b')](_0x138c6d[_0x477d('0x48')],['id',_0x1c0d86['id']]);if(_0x40fdc0)_['merge'](_0x1c0d86,_[_0x477d('0x4c')](_0x40fdc0,_0x16042d));if(_0x5d5553===_0x477d('0x14')){return _0x13ac50['getAgents']({'attributes':['id',_0x477d('0xe'),'online'],'joinTableAttributes':[],'raw':!![]})[_0x477d('0x16')](function(_0x7a5a47){return _0x13ac50[_0x477d('0x4d')]({'raw':!![]})[_0x477d('0x16')](function(_0x1f9552){for(var _0x10bbed=0x0;_0x10bbed<_0x7a5a47[_0x477d('0x4e')];_0x10bbed++){var _0xb94247=_[_0x477d('0x4b')](_0x1f9552,['UserId',_0x7a5a47[_0x10bbed]['id']]);var _0x5759f={'id':_0x7a5a47[_0x10bbed]['id'],'name':_0x7a5a47[_0x10bbed][_0x477d('0xe')],'online':Boolean(_0x7a5a47[_0x10bbed][_0x477d('0x4f')]),'paused':_0xb94247?Boolean(_0xb94247[_0x477d('0x35')]):![]};if(_0x5759f['online'])_0x1c0d86['loggedInDb']++;if(_0x5759f[_0x477d('0x35')])_0x1c0d86[_0x477d('0x35')]++;_0x1c0d86['agents'][_0x477d('0x36')](_0x5759f);}return _0x1c0d86;});});}else{var _0x4fb6f5='User'+_[_0x477d('0x1b')](_0x5d5553)+_0x477d('0x1c');var _0x133b81=_0x5d5553+_0x477d('0x50');return db[_0x4fb6f5][_0x477d('0x51')]({'where':{[_[_0x477d('0x1b')](_0x5d5553)+'QueueId']:_0x13ac50['id']},'raw':!![]})[_0x477d('0x16')](function(_0xed1fb2){return db[_0x477d('0x52')][_0x477d('0x51')]({'attributes':['id',_0x477d('0xe'),'online',_0x133b81],'where':{'id':_['map'](_0xed1fb2,_0x477d('0x53')),'role':_0x477d('0x54')},'raw':!![]});})[_0x477d('0x16')](function(_0x59dc4c){for(var _0x45a5da=0x0;_0x45a5da<_0x59dc4c[_0x477d('0x4e')];_0x45a5da++){var _0x3154da={'id':_0x59dc4c[_0x45a5da]['id'],'name':_0x59dc4c[_0x45a5da][_0x477d('0xe')],'online':Boolean(_0x59dc4c[_0x45a5da][_0x477d('0x4f')]),'paused':Boolean(_0x59dc4c[_0x45a5da][_0x133b81])};if(_0x3154da[_0x477d('0x4f')])_0x1c0d86[_0x477d('0x55')]++;if(_0x3154da['paused'])_0x1c0d86[_0x477d('0x35')]++;_0x1c0d86[_0x477d('0x4a')][_0x477d('0x36')](_0x3154da);}return _0x1c0d86;});}});return Promise[_0x477d('0x56')](_0x21de5c);});})[_0x477d('0x16')](function(_0x32b430){_0x57b38e[_0x477d('0x48')]=_0x32b430;return _0x57b38e;})[_0x477d('0x16')](respondWithFilteredResult(_0x4bbfef,_0x28f17a))[_0x477d('0x57')](handleError(_0x4bbfef,null));};
\ No newline at end of file
+var _0xa472=['mustache','util','ejs','fs-extra','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','Realtime,\x20%s,\x20%s','request\x20sent','debug','Realtime,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','json','offset','limit','count','set','reject','save','update','then','destroy','end','stack','name','send','getQueues','mail','sms','openchannel','fax','voice','resolve','query','toLowerCase','channel','startCase','fieldName','key','user','role','userProfileId','outbound','QueueCampaigns','Queues','type','UserProfile','request','loggedIn','talking','paused','push','originated','dialActive','Trunk','startPredictive','startProgressive','erlangAbandonmentRate','erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','predictiveIntervalAvailable','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','map','get','loggedInDb','available','waiting','pTalking','agents','find','rows','pick','online','getMembers','UserId','Queue','QueueId','Pause','User','findAll','agent','length','all','eml-format','fast-json-patch','request-promise','bluebird'];(function(_0x3cad98,_0x3a6539){var _0x53f43c=function(_0x44ff9c){while(--_0x44ff9c){_0x3cad98['push'](_0x3cad98['shift']());}};_0x53f43c(++_0x3a6539);}(_0xa472,0x1c0));var _0x2a47=function(_0x37d2e5,_0x2d4530){_0x37d2e5=_0x37d2e5-0x0;var _0x2238c=_0xa472[_0x37d2e5];return _0x2238c;};'use strict';var emlformat=require(_0x2a47('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2a47('0x1'));var rp=require(_0x2a47('0x2'));var moment=require('moment');var BPromise=require(_0x2a47('0x3'));var Mustache=require(_0x2a47('0x4'));var util=require(_0x2a47('0x5'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x2a47('0x6'));var fs=require('fs');var fs_extra=require(_0x2a47('0x7'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x2a47('0x8'));var deskjs=require(_0x2a47('0x9'));var toCsv=require(_0x2a47('0xa'));var querystring=require('querystring');var Papa=require(_0x2a47('0xb'));var Redis=require(_0x2a47('0xc'));var authService=require(_0x2a47('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x2a47('0xe'));var hardwareService=require(_0x2a47('0xf'));var logger=require(_0x2a47('0x10'))(_0x2a47('0x11'));var utils=require(_0x2a47('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x2a47('0x13'));var db=require(_0x2a47('0x14'))['db'];var jayson=require(_0x2a47('0x15'));var client=jayson['client']['http']({'port':0x232a});var routingClient=jayson[_0x2a47('0x16')][_0x2a47('0x17')]({'port':0x232c});function respondWithRpcPromise(_0x29282b,_0x12f2f6,_0x4b3fa7,_0x51417e){return new BPromise(function(_0x3c2dd0,_0x50a80a){var _0x40ebb2=_0x51417e||client;return _0x40ebb2['request'](_0x29282b,_0x4b3fa7)['then'](function(_0xa2c85e){logger['info'](_0x2a47('0x18'),_0x12f2f6,_0x2a47('0x19'));logger[_0x2a47('0x1a')](_0x2a47('0x1b'),_0x12f2f6,'request\x20sent',JSON[_0x2a47('0x1c')](_0xa2c85e));if(_0xa2c85e[_0x2a47('0x1d')]){if(_0xa2c85e[_0x2a47('0x1d')][_0x2a47('0x1e')]===0x1f4){logger[_0x2a47('0x1d')](_0x2a47('0x18'),_0x12f2f6,_0xa2c85e['error']['message']);return _0x50a80a(_0xa2c85e[_0x2a47('0x1d')]['message']);}logger[_0x2a47('0x1d')](_0x2a47('0x18'),_0x12f2f6,_0xa2c85e['error'][_0x2a47('0x1f')]);return _0x3c2dd0(_0xa2c85e[_0x2a47('0x1d')][_0x2a47('0x1f')]);}else{logger['info'](_0x2a47('0x18'),_0x12f2f6,_0x2a47('0x19'));_0x3c2dd0(_0xa2c85e[_0x2a47('0x20')][_0x2a47('0x1f')]);}})[_0x2a47('0x21')](function(_0xee89f){logger[_0x2a47('0x1d')]('Realtime,\x20%s,\x20%s',_0x12f2f6,_0xee89f);_0x50a80a(_0xee89f);});});}function respondWithStatusCode(_0x5f2a27,_0x561003){_0x561003=_0x561003||0xcc;return function(_0x3d0f95){if(_0x3d0f95){return _0x5f2a27[_0x2a47('0x22')](_0x561003);}return _0x5f2a27[_0x2a47('0x23')](_0x561003)['end']();};}function respondWithResult(_0x354a73,_0x28768c){_0x28768c=_0x28768c||0xc8;return function(_0x3f9d5e){if(_0x3f9d5e){return _0x354a73['status'](_0x28768c)[_0x2a47('0x24')](_0x3f9d5e);}};}function respondWithFilteredResult(_0x4d83a1,_0x107fd4){return function(_0x5923bb){if(_0x5923bb){var _0x3efc1a=typeof _0x107fd4[_0x2a47('0x25')]==='undefined'&&typeof _0x107fd4[_0x2a47('0x26')]==='undefined';var _0x870c47=_0x5923bb['count'];var _0x50f189=_0x3efc1a?0x0:_0x107fd4[_0x2a47('0x25')];var _0x5422da=_0x3efc1a?_0x5923bb[_0x2a47('0x27')]:_0x107fd4[_0x2a47('0x25')]+_0x107fd4[_0x2a47('0x26')];var _0x3fbddb;if(_0x5422da>=_0x870c47){_0x5422da=_0x870c47;_0x3fbddb=0xc8;}else{_0x3fbddb=0xce;}_0x4d83a1['status'](_0x3fbddb);return _0x4d83a1[_0x2a47('0x28')]('Content-Range',_0x50f189+'-'+_0x5422da+'/'+_0x870c47)[_0x2a47('0x24')](_0x5923bb);}return null;};}function patchUpdates(_0x37322b){return function(_0x2439cf){try{jsonpatch['apply'](_0x2439cf,_0x37322b,!![]);}catch(_0x14d28c){return BPromise[_0x2a47('0x29')](_0x14d28c);}return _0x2439cf[_0x2a47('0x2a')]();};}function saveUpdates(_0x563cd0,_0x45df34){return function(_0x5bcf3d){if(_0x5bcf3d){return _0x5bcf3d[_0x2a47('0x2b')](_0x563cd0)[_0x2a47('0x2c')](function(_0x51a7d9){return _0x51a7d9;});}return null;};}function removeEntity(_0x425a51,_0x106583){return function(_0xf0e24f){if(_0xf0e24f){return _0xf0e24f[_0x2a47('0x2d')]()[_0x2a47('0x2c')](function(){_0x425a51['status'](0xcc)[_0x2a47('0x2e')]();});}};}function handleEntityNotFound(_0x9b5c4e,_0x1d015c){return function(_0x3c42ca){if(!_0x3c42ca){_0x9b5c4e[_0x2a47('0x22')](0x194);}return _0x3c42ca;};}function handleError(_0x5b865c,_0x477f58){_0x477f58=_0x477f58||0x1f4;return function(_0x2717ae){logger['error'](_0x2717ae[_0x2a47('0x2f')]);if(_0x2717ae[_0x2a47('0x30')]){delete _0x2717ae[_0x2a47('0x30')];}_0x5b865c['status'](_0x477f58)[_0x2a47('0x31')](_0x2717ae);};}exports[_0x2a47('0x32')]=function(_0x142545,_0x1099f0){var _0x3c7dcc=[_0x2a47('0x33'),'chat',_0x2a47('0x34'),_0x2a47('0x35'),_0x2a47('0x36'),'whatsapp',_0x2a47('0x37')];var _0x41148c={'count':0x0,'rows':[]},_0x55d88e={},_0x1520e7;Promise[_0x2a47('0x38')]()[_0x2a47('0x2c')](function(){if(_0x142545[_0x2a47('0x39')]['channel']){if(!_['includes'](_0x3c7dcc,_0x142545[_0x2a47('0x39')]['channel'][_0x2a47('0x3a')]()))throw new Error('Invalid\x20channel');_0x1520e7=_0x142545[_0x2a47('0x39')][_0x2a47('0x3b')][_0x2a47('0x3a')]();}var _0x1bb1e3=_[_0x2a47('0x3c')](_0x1520e7)+'Queue';var _0x3e8be2=_['map'](db[_0x1bb1e3]['rawAttributes'],function(_0x2741e8){return{'name':_0x2741e8[_0x2a47('0x3d')],'type':_0x2741e8['type'][_0x2a47('0x3e')]};});_0x55d88e=qs['getOptions'](_0x3e8be2,_0x142545);if(_0x142545[_0x2a47('0x3f')][_0x2a47('0x40')]==='user'){var _0x449c31={'params':{'id':_0x142545['user'][_0x2a47('0x41')]},'query':{'section':_0x1520e7===_0x2a47('0x37')&&_0x142545['query']['type']===_0x2a47('0x42')?_0x2a47('0x43'):_[_0x2a47('0x3c')](_0x1520e7)+_0x2a47('0x44'),'type':_0x142545[_0x2a47('0x39')][_0x2a47('0x45')],'nolimit':!![],'sort':_0x2a47('0x30'),'filter':_0x142545[_0x2a47('0x39')]['filter']}};return db[_0x2a47('0x46')]['getResources'](_0x449c31);}return db[_0x1bb1e3]['findAndCountAll'](_0x55d88e);})[_0x2a47('0x2c')](function(_0x59f963){_0x41148c['count']=_0x59f963[_0x2a47('0x27')];var _0x445342=_0x1520e7==='voice'?client:routingClient;return _0x445342[_0x2a47('0x47')](_[_0x2a47('0x3c')](_0x1520e7)+_0x2a47('0x44'),_0x142545)['then'](function(_0x335811){if(_0x335811['error'])throw new Error(util['format']('Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues',_0x1520e7));var _0x5d0927=_0x335811[_0x2a47('0x20')];var _0xe3884f=[_0x2a47('0x48'),'available','waiting',_0x2a47('0x49'),_0x2a47('0x4a')];if(_0x1520e7===_0x2a47('0x37')&&_0x142545['query']['type']===_0x2a47('0x42')){_0xe3884f[_0x2a47('0x4b')]('pTalking',_0x2a47('0x4c'),_0x2a47('0x1f'),_0x2a47('0x4d'),'dialMethod',_0x2a47('0x4e'),_0x2a47('0x4f'),_0x2a47('0x50'),'erlangCalls','erlangCallToSecond',_0x2a47('0x51'),_0x2a47('0x52'),_0x2a47('0x53'),_0x2a47('0x54'),'dialPredictiveIntervalMinThreshold',_0x2a47('0x55'),_0x2a47('0x56'),_0x2a47('0x57'),_0x2a47('0x58'),_0x2a47('0x59'),_0x2a47('0x5a'),_0x2a47('0x5b'));}var _0x31c8a3=_0x59f963['rows'][_0x2a47('0x5c')](function(_0x409b6a){var _0x1f91b2=_0x409b6a[_0x2a47('0x5d')]({'plain':!![]});_0x1f91b2['paused']=0x0;_0x1f91b2[_0x2a47('0x5e')]=0x0;_0x1f91b2[_0x2a47('0x48')]=0x0;_0x1f91b2[_0x2a47('0x5f')]=0x0;_0x1f91b2[_0x2a47('0x4a')]=0x0;_0x1f91b2[_0x2a47('0x60')]=0x0;if(_0x1520e7===_0x2a47('0x37')){_0x1f91b2[_0x2a47('0x49')]=0x0;if(_0x142545[_0x2a47('0x39')][_0x2a47('0x45')]===_0x2a47('0x42')){_0x1f91b2[_0x2a47('0x61')]=0x0;_0x1f91b2[_0x2a47('0x4c')]=0x0;}}_0x1f91b2[_0x2a47('0x62')]=[];var _0x33bad6=_[_0x2a47('0x63')](_0x5d0927[_0x2a47('0x64')],['id',_0x1f91b2['id']]);if(_0x33bad6)_['merge'](_0x1f91b2,_[_0x2a47('0x65')](_0x33bad6,_0xe3884f));if(_0x1520e7==='voice'){return _0x409b6a['getAgents']({'attributes':['id',_0x2a47('0x30'),_0x2a47('0x66')],'joinTableAttributes':[],'raw':!![]})[_0x2a47('0x2c')](function(_0x315ce5){return _0x409b6a[_0x2a47('0x67')]({'raw':!![]})[_0x2a47('0x2c')](function(_0x21c256){for(var _0x19921a=0x0;_0x19921a<_0x315ce5['length'];_0x19921a++){var _0x255f03=_[_0x2a47('0x63')](_0x21c256,[_0x2a47('0x68'),_0x315ce5[_0x19921a]['id']]);var _0x3b38e0={'id':_0x315ce5[_0x19921a]['id'],'name':_0x315ce5[_0x19921a][_0x2a47('0x30')],'online':Boolean(_0x315ce5[_0x19921a][_0x2a47('0x66')]),'paused':_0x255f03?Boolean(_0x255f03[_0x2a47('0x4a')]):![]};if(_0x3b38e0[_0x2a47('0x66')])_0x1f91b2[_0x2a47('0x5e')]++;if(_0x3b38e0[_0x2a47('0x4a')])_0x1f91b2[_0x2a47('0x4a')]++;_0x1f91b2[_0x2a47('0x62')][_0x2a47('0x4b')](_0x3b38e0);}return _0x1f91b2;});});}else{var _0x12bfb7='User'+_[_0x2a47('0x3c')](_0x1520e7)+_0x2a47('0x69');var _0x6d79f3=_[_0x2a47('0x3c')](_0x1520e7)+_0x2a47('0x6a');var _0x5aaefa=_0x1520e7+_0x2a47('0x6b');return db[_0x12bfb7]['findAll']({'where':{['userQueueKey']:_0x409b6a['id']},'raw':!![]})[_0x2a47('0x2c')](function(_0x197068){return db[_0x2a47('0x6c')][_0x2a47('0x6d')]({'attributes':['id','name','online',_0x5aaefa],'where':{'id':_[_0x2a47('0x5c')](_0x197068,'UserId'),'role':_0x2a47('0x6e')},'raw':!![]});})[_0x2a47('0x2c')](function(_0x162898){for(var _0x46d594=0x0;_0x46d594<_0x162898[_0x2a47('0x6f')];_0x46d594++){var _0x473be3={'id':_0x162898[_0x46d594]['id'],'name':_0x162898[_0x46d594]['name'],'online':Boolean(_0x162898[_0x46d594]['online']),'paused':Boolean(_0x162898[_0x46d594][_0x5aaefa])};if(_0x473be3[_0x2a47('0x66')])_0x1f91b2[_0x2a47('0x5e')]++;if(_0x473be3['paused'])_0x1f91b2[_0x2a47('0x4a')]++;_0x1f91b2[_0x2a47('0x62')]['push'](_0x473be3);}return _0x1f91b2;});}});return Promise[_0x2a47('0x70')](_0x31c8a3);});})[_0x2a47('0x2c')](function(_0x625be9){_0x41148c[_0x2a47('0x64')]=_0x625be9;return _0x41148c;})[_0x2a47('0x2c')](respondWithFilteredResult(_0x1099f0,_0x55d88e))[_0x2a47('0x21')](handleError(_0x1099f0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb224=['sequelize','exports','INTEGER'];(function(_0x585965,_0x3f7789){var _0x56b2bb=function(_0x3dce75){while(--_0x3dce75){_0x585965['push'](_0x585965['shift']());}};_0x56b2bb(++_0x3f7789);}(_0xb224,0x1e6));var _0x4b22=function(_0x47b123,_0x26a93b){_0x47b123=_0x47b123-0x0;var _0x1c805e=_0xb224[_0x47b123];return _0x1c805e;};'use strict';var Sequelize=require(_0x4b22('0x0'));module[_0x4b22('0x1')]={'UserId':{'type':Sequelize['INTEGER']},'VoicePrefixId':{'type':Sequelize[_0x4b22('0x2')]}};
\ No newline at end of file
+var _0x3509=['../../config/environment','define','lodash','util','../../config/logger','moment','request-promise','path','rimraf'];(function(_0x3e898b,_0x1cd2d4){var _0x251759=function(_0x8d2c0){while(--_0x8d2c0){_0x3e898b['push'](_0x3e898b['shift']());}};_0x251759(++_0x1cd2d4);}(_0x3509,0x197));var _0x9350=function(_0x1702e1,_0x3a8949){_0x1702e1=_0x1702e1-0x0;var _0x2bdc8c=_0x3509[_0x1702e1];return _0x2bdc8c;};'use strict';var _=require(_0x9350('0x0'));var util=require(_0x9350('0x1'));var logger=require(_0x9350('0x2'))('api');var moment=require(_0x9350('0x3'));var BPromise=require('bluebird');var rp=require(_0x9350('0x4'));var fs=require('fs');var path=require(_0x9350('0x5'));var rimraf=require(_0x9350('0x6'));var config=require(_0x9350('0x7'));;module['exports']=function(_0x5781f8,_0x372fe5){return _0x5781f8[_0x9350('0x8')]('Realtime',[],{});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x249698,_0x37dabb){var _0x4315f3=function(_0x4cbc20){while(--_0x4cbc20){_0x249698['push'](_0x249698['shift']());}};_0x4315f3(++_0x37dabb);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x217c2e,_0x358f06){_0x217c2e=_0x217c2e-0x0;var _0x22b7d8=_0xcb91[_0x217c2e];return _0x22b7d8;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x13edf1,_0x39b893){var _0xc2873=function(_0x4d0650){while(--_0x4d0650){_0x13edf1['push'](_0x13edf1['shift']());}};_0xc2873(++_0x39b893);}(_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 fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06ae=['STRING','DATE','exports','INTEGER'];(function(_0x2f45ea,_0x15c656){var _0x485a84=function(_0x4a1fe3){while(--_0x4a1fe3){_0x2f45ea['push'](_0x2f45ea['shift']());}};_0x485a84(++_0x15c656);}(_0x06ae,0x16e));var _0xe06a=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x06ae[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require('sequelize');module[_0xe06a('0x0')]={'state':{'type':Sequelize[_0xe06a('0x1')](0x2)},'statedesc':{'type':Sequelize[_0xe06a('0x2')]},'scheduledat':{'type':Sequelize[_0xe06a('0x3')]},'uniqueid':{'type':Sequelize[_0xe06a('0x2')]},'starttime':{'type':Sequelize[_0xe06a('0x3')]},'responsetime':{'type':Sequelize[_0xe06a('0x3')]},'ringtime':{'type':Sequelize[_0xe06a('0x1')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0xe06a('0x2')]},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x01db=['sequelize','STRING','DATE'];(function(_0x2c16ab,_0xaa3f47){var _0x50d50c=function(_0x4bd914){while(--_0x4bd914){_0x2c16ab['push'](_0x2c16ab['shift']());}};_0x50d50c(++_0xaa3f47);}(_0x01db,0x171));var _0xb01d=function(_0x1671fd,_0x5193c6){_0x1671fd=_0x1671fd-0x0;var _0x1ad1a3=_0x01db[_0x1671fd];return _0x1ad1a3;};'use strict';var Sequelize=require(_0xb01d('0x0'));module['exports']={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize[_0xb01d('0x1')]},'scheduledat':{'type':Sequelize[_0xb01d('0x2')]},'uniqueid':{'type':Sequelize[_0xb01d('0x1')]},'starttime':{'type':Sequelize['DATE']},'responsetime':{'type':Sequelize[_0xb01d('0x2')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0xb01d('0x1')]},'membername':{'type':Sequelize[_0xb01d('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9834=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./reportAgentPreview.attributes','exports','ReportAgentPreview','report_agent_preview','lodash'];(function(_0x27c7c3,_0x58f8dc){var _0x119c28=function(_0x57be62){while(--_0x57be62){_0x27c7c3['push'](_0x27c7c3['shift']());}};_0x119c28(++_0x58f8dc);}(_0x9834,0x12a));var _0x4983=function(_0x8fd82a,_0x5b90de){_0x8fd82a=_0x8fd82a-0x0;var _0x5b951d=_0x9834[_0x8fd82a];return _0x5b951d;};'use strict';var _=require(_0x4983('0x0'));var util=require(_0x4983('0x1'));var logger=require(_0x4983('0x2'))(_0x4983('0x3'));var moment=require('moment');var BPromise=require(_0x4983('0x4'));var rp=require(_0x4983('0x5'));var fs=require('fs');var path=require(_0x4983('0x6'));var rimraf=require(_0x4983('0x7'));var config=require(_0x4983('0x8'));var attributes=require(_0x4983('0x9'));module[_0x4983('0xa')]=function(_0x50b059,_0x1c3676){return _0x50b059['define'](_0x4983('0xb'),attributes,{'tableName':_0x4983('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x95f7=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./reportAgentPreview.attributes','define','ReportAgentPreview','report_agent_preview','lodash'];(function(_0x12a554,_0x3d7ef8){var _0x244ba0=function(_0x5eb5ff){while(--_0x5eb5ff){_0x12a554['push'](_0x12a554['shift']());}};_0x244ba0(++_0x3d7ef8);}(_0x95f7,0x14f));var _0x795f=function(_0x5dd5c4,_0x44917e){_0x5dd5c4=_0x5dd5c4-0x0;var _0xc18f49=_0x95f7[_0x5dd5c4];return _0xc18f49;};'use strict';var _=require(_0x795f('0x0'));var util=require('util');var logger=require(_0x795f('0x1'))(_0x795f('0x2'));var moment=require(_0x795f('0x3'));var BPromise=require(_0x795f('0x4'));var rp=require(_0x795f('0x5'));var fs=require('fs');var path=require(_0x795f('0x6'));var rimraf=require('rimraf');var config=require(_0x795f('0x7'));var attributes=require(_0x795f('0x8'));module['exports']=function(_0x27173d,_0x3e0bb8){return _0x27173d[_0x795f('0x9')](_0x795f('0xa'),attributes,{'tableName':_0x795f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0748=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','info','ReportAgentPreview,\x20%s,\x20%s','debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateReportAgentPreview','create','body','raw','then','lodash','util'];(function(_0x59629b,_0x3d305e){var _0x19df9c=function(_0x307fe2){while(--_0x307fe2){_0x59629b['push'](_0x59629b['shift']());}};_0x19df9c(++_0x3d305e);}(_0x0748,0xce));var _0x8074=function(_0x13ce0c,_0x3f2a0d){_0x13ce0c=_0x13ce0c-0x0;var _0x4388fb=_0x0748[_0x13ce0c];return _0x4388fb;};'use strict';var _=require(_0x8074('0x0'));var util=require(_0x8074('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x8074('0x2'));var fs=require('fs');var Redis=require(_0x8074('0x3'));var db=require(_0x8074('0x4'))['db'];var utils=require(_0x8074('0x5'));var logger=require(_0x8074('0x6'))('rpc');var config=require(_0x8074('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x8074('0x8')][_0x8074('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x417014,_0x6b21b5,_0x499cc1){return new BPromise(function(_0xe98749,_0x8131fb){return client['request'](_0x417014,_0x499cc1)['then'](function(_0x740443){logger[_0x8074('0xa')](_0x8074('0xb'),_0x6b21b5,'request\x20sent');logger[_0x8074('0xc')](_0x8074('0xd'),_0x6b21b5,_0x8074('0xe'),JSON[_0x8074('0xf')](_0x740443));if(_0x740443['error']){if(_0x740443[_0x8074('0x10')][_0x8074('0x11')]===0x1f4){logger[_0x8074('0x10')]('ReportAgentPreview,\x20%s,\x20%s',_0x6b21b5,_0x740443['error']['message']);return _0x8131fb(_0x740443[_0x8074('0x10')]['message']);}logger[_0x8074('0x10')]('ReportAgentPreview,\x20%s,\x20%s',_0x6b21b5,_0x740443[_0x8074('0x10')][_0x8074('0x12')]);return _0xe98749(_0x740443[_0x8074('0x10')][_0x8074('0x12')]);}else{logger[_0x8074('0xa')]('ReportAgentPreview,\x20%s,\x20%s',_0x6b21b5,_0x8074('0xe'));_0xe98749(_0x740443[_0x8074('0x13')][_0x8074('0x12')]);}})[_0x8074('0x14')](function(_0x334f61){logger[_0x8074('0x10')](_0x8074('0xb'),_0x6b21b5,_0x334f61);_0x8131fb(_0x334f61);});});}exports[_0x8074('0x15')]=function(_0x4bda1a){var _0x5b2356=this;return new Promise(function(_0x3a5e8b,_0x3cdd8b){return db['ReportAgentPreview'][_0x8074('0x16')](_0x4bda1a[_0x8074('0x17')],{'raw':_0x4bda1a['options']?_0x4bda1a['options'][_0x8074('0x18')]===undefined?!![]:![]:!![]})[_0x8074('0x19')](function(_0x1a8f3b){logger[_0x8074('0xa')](_0x8074('0x15'),_0x4bda1a);logger[_0x8074('0xc')](_0x8074('0x15'),_0x4bda1a,JSON[_0x8074('0xf')](_0x1a8f3b));_0x3a5e8b(_0x1a8f3b);})['catch'](function(_0x41d722){logger[_0x8074('0x10')](_0x8074('0x15'),_0x41d722[_0x8074('0x12')],_0x4bda1a);_0x3cdd8b(_0x5b2356[_0x8074('0x10')](0x1f4,_0x41d722[_0x8074('0x12')]));});});};
\ No newline at end of file
+var _0x4aca=['jayson/promise','then','info','ReportAgentPreview,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','CreateReportAgentPreview','ReportAgentPreview','raw','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x115ee9,_0x5d915f){var _0x1bc6c3=function(_0x23e7d2){while(--_0x23e7d2){_0x115ee9['push'](_0x115ee9['shift']());}};_0x1bc6c3(++_0x5d915f);}(_0x4aca,0x1dd));var _0xa4ac=function(_0x46f4ae,_0x358251){_0x46f4ae=_0x46f4ae-0x0;var _0x2ac4dc=_0x4aca[_0x46f4ae];return _0x2ac4dc;};'use strict';var _=require('lodash');var util=require(_0xa4ac('0x0'));var moment=require('moment');var BPromise=require(_0xa4ac('0x1'));var rs=require(_0xa4ac('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa4ac('0x3'))['db'];var utils=require(_0xa4ac('0x4'));var logger=require(_0xa4ac('0x5'))('rpc');var config=require(_0xa4ac('0x6'));var jayson=require(_0xa4ac('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x26ca6f,_0xb8ed61,_0x1b5380){return new BPromise(function(_0x3797b0,_0x40f045){return client['request'](_0x26ca6f,_0x1b5380)[_0xa4ac('0x8')](function(_0x22e01d){logger[_0xa4ac('0x9')](_0xa4ac('0xa'),_0xb8ed61,_0xa4ac('0xb'));logger[_0xa4ac('0xc')]('ReportAgentPreview,\x20%s,\x20%s,\x20%s',_0xb8ed61,_0xa4ac('0xb'),JSON[_0xa4ac('0xd')](_0x22e01d));if(_0x22e01d[_0xa4ac('0xe')]){if(_0x22e01d['error'][_0xa4ac('0xf')]===0x1f4){logger['error']('ReportAgentPreview,\x20%s,\x20%s',_0xb8ed61,_0x22e01d[_0xa4ac('0xe')][_0xa4ac('0x10')]);return _0x40f045(_0x22e01d['error'][_0xa4ac('0x10')]);}logger['error'](_0xa4ac('0xa'),_0xb8ed61,_0x22e01d[_0xa4ac('0xe')][_0xa4ac('0x10')]);return _0x3797b0(_0x22e01d['error'][_0xa4ac('0x10')]);}else{logger['info'](_0xa4ac('0xa'),_0xb8ed61,_0xa4ac('0xb'));_0x3797b0(_0x22e01d[_0xa4ac('0x11')]['message']);}})[_0xa4ac('0x12')](function(_0x410906){logger[_0xa4ac('0xe')](_0xa4ac('0xa'),_0xb8ed61,_0x410906);_0x40f045(_0x410906);});});}exports[_0xa4ac('0x13')]=function(_0x386c91){var _0x1a540b=this;return new Promise(function(_0x3fe71a,_0x47d15a){return db[_0xa4ac('0x14')]['create'](_0x386c91['body'],{'raw':_0x386c91['options']?_0x386c91['options'][_0xa4ac('0x15')]===undefined?!![]:![]:!![]})[_0xa4ac('0x8')](function(_0x5e878d){logger[_0xa4ac('0x9')](_0xa4ac('0x13'),_0x386c91);logger[_0xa4ac('0xc')](_0xa4ac('0x13'),_0x386c91,JSON['stringify'](_0x5e878d));_0x3fe71a(_0x5e878d);})[_0xa4ac('0x12')](function(_0x43e744){logger[_0xa4ac('0xe')](_0xa4ac('0x13'),_0x43e744[_0xa4ac('0x10')],_0x386c91);_0x47d15a(_0x1a540b[_0xa4ac('0xe')](0x1f4,_0x43e744[_0xa4ac('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73ba=['/agents','agents','/telephones','telephones','/trunks','trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','/chat/queues/waitinginteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','/sms/queues/waitinginteractions','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','post','queueNotify','/mail/queues/:id','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','showFaxQueues','/openchannel/queues/:id/notify','/openchannel/queues/:id','showOpenchannelQueues','/sms/queues/:id/notify','sms','/whatsapp/queues/:id/notify','showSmsQueues','/whatsapp/queues/:id','showWhatsappQueues','/agents/:id/notify','agentNotify','multer','util','path','express','Router','../../components/auth/service','get','voiceChannels','/voice/channels/:uniqueid/mixmonitor','isAuthenticated','voiceChannelStopMixMonitor','voiceQueues','/chat/queues','chatQueues','/mail/queues','/mail/accounts','mailAccounts','openchannelQueues','/sms/queues','whatsappQueues','voiceQueuesPreview','/voice/queues/channels','voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','/voice/queues/:id','showVoiceQueues','updateVoiceQueue','outbound','outboundChannels'];(function(_0x3d656d,_0x25aee2){var _0x54fc61=function(_0x547c4c){while(--_0x547c4c){_0x3d656d['push'](_0x3d656d['shift']());}};_0x54fc61(++_0x25aee2);}(_0x73ba,0xf5));var _0xa73b=function(_0x21f000,_0x2d6441){_0x21f000=_0x21f000-0x0;var _0x2383d1=_0x73ba[_0x21f000];return _0x2383d1;};'use strict';var multer=require(_0xa73b('0x0'));var util=require(_0xa73b('0x1'));var path=require(_0xa73b('0x2'));var express=require(_0xa73b('0x3'));var router=express[_0xa73b('0x4')]();var auth=require(_0xa73b('0x5'));var controller=require('./rpc.controller');router[_0xa73b('0x6')]('/voice/channels',auth['isAuthenticated'](),controller[_0xa73b('0x7')]);router[_0xa73b('0x6')](_0xa73b('0x8'),auth[_0xa73b('0x9')](),controller['voiceChannelMixMonitor']);router['get']('/voice/channels/:uniqueid/stopmixmonitor',auth[_0xa73b('0x9')](),controller[_0xa73b('0xa')]);router[_0xa73b('0x6')]('/voice/queues',auth[_0xa73b('0x9')](),controller[_0xa73b('0xb')]);router['get'](_0xa73b('0xc'),auth['isAuthenticated'](),controller[_0xa73b('0xd')]);router[_0xa73b('0x6')](_0xa73b('0xe'),auth[_0xa73b('0x9')](),controller['mailQueues']);router['get'](_0xa73b('0xf'),auth['isAuthenticated'](),controller[_0xa73b('0x10')]);router[_0xa73b('0x6')]('/openchannel/queues',auth[_0xa73b('0x9')](),controller[_0xa73b('0x11')]);router[_0xa73b('0x6')](_0xa73b('0x12'),auth[_0xa73b('0x9')](),controller['smsQueues']);router['get']('/whatsapp/queues',auth['isAuthenticated'](),controller[_0xa73b('0x13')]);router[_0xa73b('0x6')]('/fax/queues',auth[_0xa73b('0x9')](),controller['faxQueues']);router[_0xa73b('0x6')]('/voice/queues/preview/:id',auth['isAuthenticated'](),controller[_0xa73b('0x14')]);router[_0xa73b('0x6')](_0xa73b('0x15'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x16')]);router[_0xa73b('0x6')](_0xa73b('0x17'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x18')]);router[_0xa73b('0x6')](_0xa73b('0x19'),auth[_0xa73b('0x9')](),controller['voiceQueuesChannelHangup']);router[_0xa73b('0x6')]('/voice/queues/channels/:uniqueid/redirect/:exten',auth[_0xa73b('0x9')](),controller['voiceQueuesChannelRedirect']);router[_0xa73b('0x6')](_0xa73b('0x1a'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x1b')]);router['put'](_0xa73b('0x1a'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x1c')]);router['get']('/outbound',auth[_0xa73b('0x9')](),controller[_0xa73b('0x1d')]);router[_0xa73b('0x6')]('/outbound/channels',auth['isAuthenticated'](),controller[_0xa73b('0x1e')]);router[_0xa73b('0x6')](_0xa73b('0x1f'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x20')]);router['put']('/agents/:id/capacity',auth[_0xa73b('0x9')](),controller['agentCapacity']);router[_0xa73b('0x6')](_0xa73b('0x21'),auth['isAuthenticated'](),controller[_0xa73b('0x22')]);router[_0xa73b('0x6')](_0xa73b('0x23'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x24')]);router[_0xa73b('0x6')](_0xa73b('0x25'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x26')]);router[_0xa73b('0x6')](_0xa73b('0x27'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x28')]);router[_0xa73b('0x6')](_0xa73b('0x29'),auth[_0xa73b('0x9')](),controller['chatQueuesWaitingInteractions']);router[_0xa73b('0x6')](_0xa73b('0x2a'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x2b')]);router['get']('/openchannel/queues/waitinginteractions',auth['isAuthenticated'](),controller[_0xa73b('0x2c')]);router['get']('/openchannel/queues/:id/waitinginteractions',auth[_0xa73b('0x9')](),controller[_0xa73b('0x2d')]);router['get'](_0xa73b('0x2e'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x2f')]);router[_0xa73b('0x6')]('/whatsapp/queues/waitinginteractions',auth[_0xa73b('0x9')](),controller[_0xa73b('0x30')]);router[_0xa73b('0x6')]('/fax/queues/waitinginteractions',auth[_0xa73b('0x9')](),controller['faxQueuesWaitingInteractions']);router[_0xa73b('0x31')]('/mail/queues/:id/notify',auth['isAuthenticated'](),controller[_0xa73b('0x32')]('mail'));router[_0xa73b('0x6')](_0xa73b('0x33'),auth[_0xa73b('0x9')](),controller['showMailQueues']);router[_0xa73b('0x31')]('/chat/queues/:id/notify',auth[_0xa73b('0x9')](),controller[_0xa73b('0x32')](_0xa73b('0x34')));router[_0xa73b('0x6')](_0xa73b('0x35'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x36')]);router[_0xa73b('0x31')](_0xa73b('0x37'),auth['isAuthenticated'](),controller[_0xa73b('0x32')](_0xa73b('0x38')));router['get']('/fax/queues/:id',auth[_0xa73b('0x9')](),controller[_0xa73b('0x39')]);router[_0xa73b('0x31')](_0xa73b('0x3a'),auth['isAuthenticated'](),controller[_0xa73b('0x32')]('openchannel'));router[_0xa73b('0x6')](_0xa73b('0x3b'),auth['isAuthenticated'](),controller[_0xa73b('0x3c')]);router[_0xa73b('0x31')](_0xa73b('0x3d'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x32')](_0xa73b('0x3e')));router[_0xa73b('0x31')](_0xa73b('0x3f'),auth[_0xa73b('0x9')](),controller['queueNotify']('whatsapp'));router[_0xa73b('0x6')]('/sms/queues/:id',auth[_0xa73b('0x9')](),controller[_0xa73b('0x40')]);router['get'](_0xa73b('0x41'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x42')]);router[_0xa73b('0x31')](_0xa73b('0x43'),auth[_0xa73b('0x9')](),controller[_0xa73b('0x44')]);module['exports']=router;
\ No newline at end of file
+var _0xac03=['/whatsapp/queues/:id','agentNotify','exports','multer','util','path','express','Router','../../components/auth/service','./rpc.controller','get','/voice/channels','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/mixmonitor','voiceChannelMixMonitor','/voice/channels/:uniqueid/stopmixmonitor','voiceQueues','/chat/queues','chatQueues','mailQueues','/mail/accounts','mailAccounts','/openchannel/queues','/sms/queues','smsQueues','/whatsapp/queues','whatsappQueues','/fax/queues','/voice/queues/preview/:id','/voice/queues/channels','voiceQueuesChannels','/voice/queues/channels/:uniqueid','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','showVoiceQueues','/outbound/channels','outboundChannels','/agents','agents','put','/agents/:id/capacity','/telephones','telephones','/trunks','/fax/accounts','faxAccounts','/chat/queues/waitinginteractions','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','smsQueuesWaitingInteractions','/whatsapp/queues/waitinginteractions','whatsappQueuesWaitingInteractions','/fax/queues/waitinginteractions','faxQueuesWaitingInteractions','post','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','showOpenchannelQueues','/sms/queues/:id/notify','sms','/whatsapp/queues/:id/notify','whatsapp','/sms/queues/:id','showSmsQueues'];(function(_0x38b0ab,_0x2b7d14){var _0x51c38d=function(_0x5290cf){while(--_0x5290cf){_0x38b0ab['push'](_0x38b0ab['shift']());}};_0x51c38d(++_0x2b7d14);}(_0xac03,0x143));var _0x3ac0=function(_0x753873,_0x2fe366){_0x753873=_0x753873-0x0;var _0x2d8a98=_0xac03[_0x753873];return _0x2d8a98;};'use strict';var multer=require(_0x3ac0('0x0'));var util=require(_0x3ac0('0x1'));var path=require(_0x3ac0('0x2'));var express=require(_0x3ac0('0x3'));var router=express[_0x3ac0('0x4')]();var auth=require(_0x3ac0('0x5'));var controller=require(_0x3ac0('0x6'));router[_0x3ac0('0x7')](_0x3ac0('0x8'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0xa')]);router[_0x3ac0('0x7')](_0x3ac0('0xb'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0xc')]);router[_0x3ac0('0x7')](_0x3ac0('0xd'),auth[_0x3ac0('0x9')](),controller['voiceChannelStopMixMonitor']);router[_0x3ac0('0x7')]('/voice/queues',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0xe')]);router['get'](_0x3ac0('0xf'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x10')]);router[_0x3ac0('0x7')]('/mail/queues',auth['isAuthenticated'](),controller[_0x3ac0('0x11')]);router[_0x3ac0('0x7')](_0x3ac0('0x12'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x13')]);router[_0x3ac0('0x7')](_0x3ac0('0x14'),auth[_0x3ac0('0x9')](),controller['openchannelQueues']);router[_0x3ac0('0x7')](_0x3ac0('0x15'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x16')]);router[_0x3ac0('0x7')](_0x3ac0('0x17'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x18')]);router[_0x3ac0('0x7')](_0x3ac0('0x19'),auth[_0x3ac0('0x9')](),controller['faxQueues']);router[_0x3ac0('0x7')](_0x3ac0('0x1a'),auth[_0x3ac0('0x9')](),controller['voiceQueuesPreview']);router['get'](_0x3ac0('0x1b'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x1c')]);router[_0x3ac0('0x7')](_0x3ac0('0x1d'),auth[_0x3ac0('0x9')](),controller['voiceQueuesChannel']);router['get']('/voice/queues/channels/:uniqueid/hangup',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x1e')]);router['get'](_0x3ac0('0x1f'),auth['isAuthenticated'](),controller[_0x3ac0('0x20')]);router['get']('/voice/queues/:id',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x21')]);router['put']('/voice/queues/:id',auth[_0x3ac0('0x9')](),controller['updateVoiceQueue']);router[_0x3ac0('0x7')]('/outbound',auth[_0x3ac0('0x9')](),controller['outbound']);router[_0x3ac0('0x7')](_0x3ac0('0x22'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x23')]);router[_0x3ac0('0x7')](_0x3ac0('0x24'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x25')]);router[_0x3ac0('0x26')](_0x3ac0('0x27'),auth[_0x3ac0('0x9')](),controller['agentCapacity']);router[_0x3ac0('0x7')](_0x3ac0('0x28'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x29')]);router[_0x3ac0('0x7')](_0x3ac0('0x2a'),auth[_0x3ac0('0x9')](),controller['trunks']);router[_0x3ac0('0x7')]('/campaigns',auth[_0x3ac0('0x9')](),controller['campaigns']);router[_0x3ac0('0x7')](_0x3ac0('0x2b'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x2c')]);router['get'](_0x3ac0('0x2d'),auth['isAuthenticated'](),controller[_0x3ac0('0x2e')]);router[_0x3ac0('0x7')](_0x3ac0('0x2f'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x30')]);router[_0x3ac0('0x7')]('/openchannel/queues/waitinginteractions',auth[_0x3ac0('0x9')](),controller['openchannelQueuesWaitingInteractions']);router['get'](_0x3ac0('0x31'),auth['isAuthenticated'](),controller[_0x3ac0('0x32')]);router[_0x3ac0('0x7')]('/sms/queues/waitinginteractions',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x33')]);router['get'](_0x3ac0('0x34'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x35')]);router[_0x3ac0('0x7')](_0x3ac0('0x36'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x37')]);router[_0x3ac0('0x38')]('/mail/queues/:id/notify',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x39')](_0x3ac0('0x3a')));router[_0x3ac0('0x7')](_0x3ac0('0x3b'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x3c')]);router[_0x3ac0('0x38')](_0x3ac0('0x3d'),auth[_0x3ac0('0x9')](),controller['queueNotify'](_0x3ac0('0x3e')));router[_0x3ac0('0x7')](_0x3ac0('0x3f'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x40')]);router[_0x3ac0('0x38')]('/fax/queues/:id/notify',auth[_0x3ac0('0x9')](),controller['queueNotify'](_0x3ac0('0x41')));router['get'](_0x3ac0('0x42'),auth['isAuthenticated'](),controller[_0x3ac0('0x43')]);router['post'](_0x3ac0('0x44'),auth['isAuthenticated'](),controller['queueNotify'](_0x3ac0('0x45')));router[_0x3ac0('0x7')]('/openchannel/queues/:id',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x46')]);router[_0x3ac0('0x38')](_0x3ac0('0x47'),auth[_0x3ac0('0x9')](),controller['queueNotify'](_0x3ac0('0x48')));router[_0x3ac0('0x38')](_0x3ac0('0x49'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x39')](_0x3ac0('0x4a')));router['get'](_0x3ac0('0x4b'),auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x4c')]);router[_0x3ac0('0x7')](_0x3ac0('0x4d'),auth['isAuthenticated'](),controller['showWhatsappQueues']);router[_0x3ac0('0x38')]('/agents/:id/notify',auth[_0x3ac0('0x9')](),controller[_0x3ac0('0x4e')]);module[_0x3ac0('0x4f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d17=['whatsappQueuesWaitingInteractions','WhatsappQueuesWaitingInteractions','capitalize','chat','Website','Queue','\x20Queue\x20not\x20found','Message','findOne','messageId','Interaction','\x20Message\x20not\x20found','update','queue','MessageId','InteractionId','QueueId','TransferReport','create','Start','Account','queueTransferTimeout','*,*,*,*','agentNotify','channel','User','Agent\x20not\x20found','agentTransferTimeout','bluebird','moment','../../mysqldb','../../config/logger','api','client','http','code','error','message','result','catch','status','json','sendStatus','stack','name','send','isNil','rows','find','VoiceChannels','then','voiceChannelMixMonitor','VoiceChannelMixMonitor','query','params','voiceChannelStopMixMonitor','merge','voiceQueues','VoiceQueues','showVoiceQueues','UpdateVoiceQueue','body','voiceQueuesPreview','voiceQueuesChannels','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','VoiceQueuesChannelRedirect','Outbound','outboundChannels','agents','Agents','agentCapacity','interaction','user','hasOwnProperty','MemberReport','findAll','INTERACTION','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','findOrCreate','interface','SIP/%s','format','agent','internal','AgentCapacity','capacity','Telephones','trunks','Trunks','campaigns','Campaigns','chatQueues','showChatQueues','ChatQueues','mailQueues','MailQueues','showMailQueues','mailAccounts','openchannelQueues','showOpenchannelQueues','SmsQueues','showSmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','FaxQueues','FaxAccounts','ChatQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','queue_id','uniq','value','filter','indexOf','smsQueuesWaitingInteractions'];(function(_0x37f0d4,_0x153f98){var _0xd94a8c=function(_0xbcc20){while(--_0xbcc20){_0x37f0d4['push'](_0x37f0d4['shift']());}};_0xd94a8c(++_0x153f98);}(_0x5d17,0x114));var _0x75d1=function(_0x2e7c1b,_0x232f79){_0x2e7c1b=_0x2e7c1b-0x0;var _0x42f565=_0x5d17[_0x2e7c1b];return _0x42f565;};'use strict';var BPromise=require(_0x75d1('0x0'));var moment=require(_0x75d1('0x1'));var _=require('lodash');var util=require('util');var db=require(_0x75d1('0x2'))['db'];var logger=require(_0x75d1('0x3'))(_0x75d1('0x4'));var jayson=require('jayson/promise');var amiClient=jayson[_0x75d1('0x5')][_0x75d1('0x6')]({'port':0x232a});var mailClient=jayson[_0x75d1('0x5')][_0x75d1('0x6')]({'port':0x232b});var routingClient=jayson['client'][_0x75d1('0x6')]({'port':0x232c});function respondWithRpcPromise(_0x116a51,_0x5c957a,_0x1ee61b){return new BPromise(function(_0x3a9d5e,_0x105607){var _0xf9f8e=_0x1ee61b?_0x1ee61b:amiClient;return _0xf9f8e['request'](_0x116a51,_0x5c957a)['then'](function(_0x40df40){if(_0x40df40['error']){if(_0x40df40['error'][_0x75d1('0x7')]===0x1f4){return _0x105607(_0x40df40[_0x75d1('0x8')]['message']);}return _0x3a9d5e(_0x40df40[_0x75d1('0x8')][_0x75d1('0x9')]);}else{_0x3a9d5e(_0x40df40[_0x75d1('0xa')]);}})[_0x75d1('0xb')](function(_0x6c1265){_0x105607(_0x6c1265);});});}function respondWithResult(_0xd089cf,_0x49667a){_0x49667a=_0x49667a||0xc8;return function(_0x19e825){if(_0x19e825){return _0xd089cf[_0x75d1('0xc')](_0x49667a)[_0x75d1('0xd')](_0x19e825);}return _0xd089cf[_0x75d1('0xe')](0x194);};}function handleError(_0x49d723,_0x553697){_0x553697=_0x553697||0x1f4;return function(_0x55b8a0){logger[_0x75d1('0x8')](_0x55b8a0[_0x75d1('0xf')]);if(_0x55b8a0[_0x75d1('0x10')]){delete _0x55b8a0['name'];}_0x49d723[_0x75d1('0xc')](_0x553697)[_0x75d1('0x11')](_0x55b8a0);};}function findById(_0x1d30f3){return function(_0x269e82){if(!_[_0x75d1('0x12')](_0x1d30f3)&&!_[_0x75d1('0x12')](_0x269e82)&&!_[_0x75d1('0x12')](_0x269e82[_0x75d1('0x13')])){return _[_0x75d1('0x14')](_0x269e82[_0x75d1('0x13')],function(_0x2c2a6d){return _0x2c2a6d['id']==_0x1d30f3;});}return null;};}exports['voiceChannels']=function(_0x493fff,_0xc6b282){return respondWithRpcPromise(_0x75d1('0x15'),_0x493fff['query'])[_0x75d1('0x16')](respondWithResult(_0xc6b282,null))[_0x75d1('0xb')](handleError(_0xc6b282,null));};exports[_0x75d1('0x17')]=function(_0xf6cc70,_0xa42dbe){return respondWithRpcPromise(_0x75d1('0x18'),_['merge'](_0xf6cc70[_0x75d1('0x19')],_0xf6cc70[_0x75d1('0x1a')]))['then'](respondWithResult(_0xa42dbe,null))[_0x75d1('0xb')](handleError(_0xa42dbe,null));};exports[_0x75d1('0x1b')]=function(_0x526f6c,_0x2c0c21){return respondWithRpcPromise('VoiceChannelStopMixMonitor',_[_0x75d1('0x1c')](_0x526f6c[_0x75d1('0x19')],_0x526f6c[_0x75d1('0x1a')]))['then'](respondWithResult(_0x2c0c21,null))['catch'](handleError(_0x2c0c21,null));};exports[_0x75d1('0x1d')]=function(_0x45b18f,_0x315ce5){return respondWithRpcPromise(_0x75d1('0x1e'),_0x45b18f['query'])[_0x75d1('0x16')](respondWithResult(_0x315ce5,null))[_0x75d1('0xb')](handleError(_0x315ce5,null));};exports[_0x75d1('0x1f')]=function(_0x51138e,_0x54095d){return respondWithRpcPromise('VoiceQueues',_0x51138e[_0x75d1('0x19')])[_0x75d1('0x16')](findById(_0x51138e[_0x75d1('0x1a')]['id']))[_0x75d1('0x16')](respondWithResult(_0x54095d,null))[_0x75d1('0xb')](handleError(_0x54095d,null));};exports['updateVoiceQueue']=function(_0x4d292e,_0x410e16){return respondWithRpcPromise(_0x75d1('0x20'),_['merge'](_0x4d292e[_0x75d1('0x21')],_0x4d292e['params']))[_0x75d1('0x16')](respondWithResult(_0x410e16,null))[_0x75d1('0xb')](handleError(_0x410e16,null));};exports[_0x75d1('0x22')]=function(_0x3fb7b9,_0x36ae86){return respondWithRpcPromise('VoiceQueuesPreview',_[_0x75d1('0x1c')](_0x3fb7b9[_0x75d1('0x19')],_0x3fb7b9[_0x75d1('0x1a')]))[_0x75d1('0x16')](respondWithResult(_0x36ae86,null))['catch'](handleError(_0x36ae86,null));};exports[_0x75d1('0x23')]=function(_0x551824,_0x1b2bbb){return respondWithRpcPromise(_0x75d1('0x24'),_0x551824['query'])[_0x75d1('0x16')](respondWithResult(_0x1b2bbb,null))[_0x75d1('0xb')](handleError(_0x1b2bbb,null));};exports[_0x75d1('0x25')]=function(_0x100a4b,_0x22b190){return respondWithRpcPromise('VoiceQueuesChannel',_[_0x75d1('0x1c')](_0x100a4b[_0x75d1('0x19')],_0x100a4b[_0x75d1('0x1a')]))[_0x75d1('0x16')](respondWithResult(_0x22b190,null))['catch'](handleError(_0x22b190,null));};exports['voiceQueuesChannelHangup']=function(_0x551723,_0x3d9275){return respondWithRpcPromise(_0x75d1('0x26'),_[_0x75d1('0x1c')](_0x551723[_0x75d1('0x19')],_0x551723[_0x75d1('0x1a')]))[_0x75d1('0x16')](respondWithResult(_0x3d9275,null))[_0x75d1('0xb')](handleError(_0x3d9275,null));};exports[_0x75d1('0x27')]=function(_0x433092,_0x534511){return respondWithRpcPromise(_0x75d1('0x28'),_[_0x75d1('0x1c')](_0x433092[_0x75d1('0x19')],_0x433092[_0x75d1('0x1a')]))[_0x75d1('0x16')](respondWithResult(_0x534511,null))['catch'](handleError(_0x534511,null));};exports['outbound']=function(_0x487431,_0x1058b7){return respondWithRpcPromise(_0x75d1('0x29'),_0x487431[_0x75d1('0x19')])[_0x75d1('0x16')](respondWithResult(_0x1058b7,null))[_0x75d1('0xb')](handleError(_0x1058b7,null));};exports[_0x75d1('0x2a')]=function(_0x48f9f3,_0x5553b9){return respondWithRpcPromise('OutboundChannels',_0x48f9f3[_0x75d1('0x19')])['then'](respondWithResult(_0x5553b9,null))['catch'](handleError(_0x5553b9,null));};exports[_0x75d1('0x2b')]=function(_0x21bfd8,_0x45eea3){var _0x46854c;return respondWithRpcPromise('Agents',_0x21bfd8[_0x75d1('0x19')])[_0x75d1('0x16')](function(_0x38bf47){_0x46854c=_0x38bf47;return respondWithRpcPromise(_0x75d1('0x2c'),_0x21bfd8[_0x75d1('0x19')],routingClient);})[_0x75d1('0x16')](function(_0x33df05){return _[_0x75d1('0x1c')]({},_0x33df05,_0x46854c);})[_0x75d1('0x16')](respondWithResult(_0x45eea3,null))[_0x75d1('0xb')](handleError(_0x45eea3,null));};exports[_0x75d1('0x2d')]=function(_0x93922f,_0xe14be9){if(_0x93922f[_0x75d1('0x21')]&&_0x93922f[_0x75d1('0x21')][_0x75d1('0x2e')]&&_0x93922f[_0x75d1('0x2f')]&&_0x93922f[_0x75d1('0x2f')][_0x75d1('0x10')]){for(var _0x2384aa in _0x93922f[_0x75d1('0x21')][_0x75d1('0x2e')]){if(_0x93922f['body']['interaction'][_0x75d1('0x30')](_0x2384aa)){db[_0x75d1('0x31')][_0x75d1('0x32')]({'where':{'channel':_0x2384aa,'membername':_0x93922f[_0x75d1('0x2f')]['name'],'type':_0x75d1('0x33'),'exitAt':null,'uniqueid':_0x93922f[_0x75d1('0x21')][_0x75d1('0x2e')][_0x2384aa]&&_0x93922f[_0x75d1('0x21')]['interaction'][_0x2384aa][_0x75d1('0x34')]?{'$notIn':_0x93922f[_0x75d1('0x21')][_0x75d1('0x2e')][_0x2384aa]}:{'$ne':null}}})[_0x75d1('0x16')](function(_0x5b486d){var _0x34d132=moment()['format'](_0x75d1('0x35'));for(var _0x1d063d=0x0,_0x9bc1ed=_0x5b486d[_0x75d1('0x34')];_0x1d063d<_0x9bc1ed;_0x1d063d+=0x1){_0x5b486d[_0x1d063d][_0x75d1('0x36')]({'exitAt':_0x34d132});}});for(var _0x2137e1=0x0;_0x2137e1<_0x93922f['body'][_0x75d1('0x2e')][_0x2384aa]['length'];_0x2137e1+=0x1){db['MemberReport'][_0x75d1('0x37')]({'where':{'channel':_0x2384aa,'membername':_0x93922f[_0x75d1('0x2f')][_0x75d1('0x10')],'type':_0x75d1('0x33'),'uniqueid':_0x93922f[_0x75d1('0x21')][_0x75d1('0x2e')][_0x2384aa][_0x2137e1],'exitAt':null},'defaults':{'channel':_0x2384aa,'membername':_0x93922f[_0x75d1('0x2f')]['name'],'interface':_['isNil'](_0x93922f[_0x75d1('0x2f')][_0x75d1('0x38')])?util['format'](_0x75d1('0x39'),_0x93922f[_0x75d1('0x2f')][_0x75d1('0x10')]):_0x93922f['user'][_0x75d1('0x38')],'type':_0x75d1('0x33'),'enterAt':moment()[_0x75d1('0x3a')](_0x75d1('0x35')),'role':_0x75d1('0x3b'),'internal':_0x93922f[_0x75d1('0x2f')][_0x75d1('0x3c')],'uniqueid':_0x93922f['body'][_0x75d1('0x2e')][_0x2384aa][_0x2137e1]}});}}}}return respondWithRpcPromise(_0x75d1('0x3d'),{'id':_0x93922f[_0x75d1('0x1a')]['id'],'capacity':_0x93922f[_0x75d1('0x21')][_0x75d1('0x3e')]},routingClient)[_0x75d1('0x16')](respondWithResult(_0xe14be9,null))[_0x75d1('0xb')](handleError(_0xe14be9,null));};exports['telephones']=function(_0x7da202,_0x3af9c5){return respondWithRpcPromise(_0x75d1('0x3f'),_0x7da202['query'])[_0x75d1('0x16')](respondWithResult(_0x3af9c5,null))[_0x75d1('0xb')](handleError(_0x3af9c5,null));};exports[_0x75d1('0x40')]=function(_0x382760,_0x281123){return respondWithRpcPromise(_0x75d1('0x41'),_0x382760['query'])[_0x75d1('0x16')](respondWithResult(_0x281123,null))[_0x75d1('0xb')](handleError(_0x281123,null));};exports[_0x75d1('0x42')]=function(_0x46e665,_0x2e746a){return respondWithRpcPromise(_0x75d1('0x43'),_0x46e665[_0x75d1('0x19')])[_0x75d1('0x16')](respondWithResult(_0x2e746a,null))[_0x75d1('0xb')](handleError(_0x2e746a,null));};exports[_0x75d1('0x44')]=function(_0x1038d2,_0x13050e){return respondWithRpcPromise('ChatQueues',_0x1038d2['query'],routingClient)[_0x75d1('0x16')](respondWithResult(_0x13050e,null))['catch'](handleError(_0x13050e,null));};exports[_0x75d1('0x45')]=function(_0x1e149b,_0x5dcb55){return respondWithRpcPromise(_0x75d1('0x46'),_0x1e149b[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](findById(_0x1e149b[_0x75d1('0x1a')]['id']))[_0x75d1('0x16')](respondWithResult(_0x5dcb55,null))[_0x75d1('0xb')](handleError(_0x5dcb55,null));};exports[_0x75d1('0x47')]=function(_0x5048ef,_0x3c5da6){return respondWithRpcPromise(_0x75d1('0x48'),_0x5048ef[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](respondWithResult(_0x3c5da6,null))[_0x75d1('0xb')](handleError(_0x3c5da6,null));};exports[_0x75d1('0x49')]=function(_0x41f98f,_0x3b30fb){return respondWithRpcPromise(_0x75d1('0x48'),_0x41f98f[_0x75d1('0x19')],routingClient)['then'](findById(_0x41f98f['params']['id']))[_0x75d1('0x16')](respondWithResult(_0x3b30fb,null))[_0x75d1('0xb')](handleError(_0x3b30fb,null));};exports[_0x75d1('0x4a')]=function(_0x49d9ca,_0x1d7de1){return respondWithRpcPromise('MailAccounts',_0x49d9ca[_0x75d1('0x19')],mailClient)[_0x75d1('0x16')](respondWithResult(_0x1d7de1,null))[_0x75d1('0xb')](handleError(_0x1d7de1,null));};exports[_0x75d1('0x4b')]=function(_0x5d2219,_0x22ce12){return respondWithRpcPromise('OpenchannelQueues',_0x5d2219['query'],routingClient)[_0x75d1('0x16')](respondWithResult(_0x22ce12,null))[_0x75d1('0xb')](handleError(_0x22ce12,null));};exports[_0x75d1('0x4c')]=function(_0x3c8119,_0x4fd170){return respondWithRpcPromise('OpenchannelQueues',_0x3c8119[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](findById(_0x3c8119[_0x75d1('0x1a')]['id']))[_0x75d1('0x16')](respondWithResult(_0x4fd170,null))[_0x75d1('0xb')](handleError(_0x4fd170,null));};exports['smsQueues']=function(_0x223db6,_0x44173c){return respondWithRpcPromise(_0x75d1('0x4d'),_0x223db6[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](respondWithResult(_0x44173c,null))[_0x75d1('0xb')](handleError(_0x44173c,null));};exports[_0x75d1('0x4e')]=function(_0x1092fb,_0x40f50b){return respondWithRpcPromise(_0x75d1('0x4d'),_0x1092fb[_0x75d1('0x19')],routingClient)['then'](findById(_0x1092fb[_0x75d1('0x1a')]['id']))[_0x75d1('0x16')](respondWithResult(_0x40f50b,null))[_0x75d1('0xb')](handleError(_0x40f50b,null));};exports[_0x75d1('0x4f')]=function(_0x3754b1,_0x174fde){return respondWithRpcPromise(_0x75d1('0x50'),_0x3754b1['query'],routingClient)['then'](respondWithResult(_0x174fde,null))[_0x75d1('0xb')](handleError(_0x174fde,null));};exports[_0x75d1('0x51')]=function(_0x6f8ca2,_0x13ddbb){return respondWithRpcPromise(_0x75d1('0x50'),_0x6f8ca2['query'],routingClient)['then'](findById(_0x6f8ca2[_0x75d1('0x1a')]['id']))[_0x75d1('0x16')](respondWithResult(_0x13ddbb,null))['catch'](handleError(_0x13ddbb,null));};exports[_0x75d1('0x52')]=function(_0x29b1f4,_0x25dfa1){return respondWithRpcPromise(_0x75d1('0x53'),_0x29b1f4[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](respondWithResult(_0x25dfa1,null))['catch'](handleError(_0x25dfa1,null));};exports['showFaxQueues']=function(_0x2c0452,_0x3fad5c){return respondWithRpcPromise('FaxQueues',_0x2c0452[_0x75d1('0x19')],routingClient)['then'](findById(_0x2c0452[_0x75d1('0x1a')]['id']))[_0x75d1('0x16')](respondWithResult(_0x3fad5c,null))[_0x75d1('0xb')](handleError(_0x3fad5c,null));};exports['faxAccounts']=function(_0x254cfe,_0x1f9ac2){return respondWithRpcPromise(_0x75d1('0x54'),_0x254cfe[_0x75d1('0x19')])[_0x75d1('0x16')](respondWithResult(_0x1f9ac2,null))['catch'](handleError(_0x1f9ac2,null));};exports['chatQueuesWaitingInteractions']=function(_0x3785fd,_0x58d20b){return respondWithRpcPromise(_0x75d1('0x55'),_0x3785fd[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](respondWithResult(_0x58d20b,null))['catch'](handleError(_0x58d20b,null));};exports['mailQueuesWaitingInteractions']=function(_0x2e6849,_0x486977){return respondWithRpcPromise(_0x75d1('0x56'),_0x2e6849[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](respondWithResult(_0x486977,null))['catch'](handleError(_0x486977,null));};exports[_0x75d1('0x57')]=function(_0x353bec,_0x644ced){return respondWithRpcPromise(_0x75d1('0x58'),_0x353bec[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](respondWithResult(_0x644ced,null))[_0x75d1('0xb')](handleError(_0x644ced,null));};exports[_0x75d1('0x59')]=function(_0x3af4a7,_0x1ca2ee){return respondWithRpcPromise(_0x75d1('0x58'),_0x3af4a7[_0x75d1('0x19')],routingClient)[_0x75d1('0x16')](function(_0x44ef76){if(_0x3af4a7['query']['type']!==undefined){var _0x410fa1=_(_0x44ef76[_0x75d1('0x13')])['filter']([_0x3af4a7[_0x75d1('0x19')]['type'],_0x3af4a7['params']['id']])['map'](_0x75d1('0x5a'))[_0x75d1('0x5b')]()[_0x75d1('0x5c')]();return _0x44ef76[_0x75d1('0x13')][_0x75d1('0x5d')](function(_0x5d5a72){return _0x410fa1[_0x75d1('0x5e')](_0x5d5a72[_0x75d1('0x5a')])>-0x1;});}else{return _0x44ef76[_0x75d1('0x13')][_0x75d1('0x5d')](function(_0x29960e){return _0x29960e['queue_id']===parseInt(_0x3af4a7[_0x75d1('0x1a')]['id']);});}})['then'](respondWithResult(_0x1ca2ee,null))[_0x75d1('0xb')](handleError(_0x1ca2ee,null));};exports[_0x75d1('0x5f')]=function(_0x3d5355,_0x526d98){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0x3d5355['query'],routingClient)[_0x75d1('0x16')](respondWithResult(_0x526d98,null))[_0x75d1('0xb')](handleError(_0x526d98,null));};exports[_0x75d1('0x60')]=function(_0x22caf3,_0x17ec6d){return respondWithRpcPromise(_0x75d1('0x61'),_0x22caf3['query'],routingClient)[_0x75d1('0x16')](respondWithResult(_0x17ec6d,null))[_0x75d1('0xb')](handleError(_0x17ec6d,null));};exports['faxQueuesWaitingInteractions']=function(_0x4eda90,_0x5c16be){return respondWithRpcPromise('FaxQueuesWaitingInteractions',_0x4eda90['query'],routingClient)[_0x75d1('0x16')](respondWithResult(_0x5c16be,null))['catch'](handleError(_0x5c16be,null));};exports['queueNotify']=function(_0x3f582c){return function(_0x4e546f,_0x451828){var _0x13179c,_0x739cc2;var _0xc939c9=_[_0x75d1('0x62')](_0x3f582c);var _0x1aa806=_0x3f582c===_0x75d1('0x63')?_0x75d1('0x64'):'Account';return db[_0xc939c9+_0x75d1('0x65')]['findOne']({'raw':!![],'where':{'id':_0x4e546f[_0x75d1('0x1a')]['id']}})[_0x75d1('0x16')](function(_0x358c70){if(_['isNil'](_0x358c70)){throw new Error(_0xc939c9+_0x75d1('0x66'));}_0x13179c=_0x358c70;return db[_0xc939c9+_0x75d1('0x67')][_0x75d1('0x68')]({'where':{'id':_0x4e546f[_0x75d1('0x21')][_0x75d1('0x69')]},'include':[{'model':db[_0xc939c9+_0x75d1('0x6a')],'as':_0x75d1('0x6a')},{'model':db[_0xc939c9+_0x1aa806],'as':'Account'}]});})[_0x75d1('0x16')](function(_0x21932b){if(_[_0x75d1('0x12')](_0x21932b)){throw new Error(_0xc939c9+_0x75d1('0x6b'));}_0x739cc2=_0x21932b;return _0x21932b[_0x75d1('0x6c')]({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x4814d8={'uniqueid':_0x3f582c+'.'+_0x739cc2['id']+'.'+_0x739cc2[_0x75d1('0x6a')]['id'],'FromUserId':_0x4e546f['user']['id'],'type':_0x75d1('0x6d')};_0x4814d8[_0xc939c9+_0x75d1('0x6e')]=_0x739cc2['id'];_0x4814d8[_0xc939c9+_0x75d1('0x6f')]=_0x739cc2[_0x75d1('0x6a')]['id'];_0x4814d8['From'+_0xc939c9+_0x1aa806+'Id']=_0x739cc2['Account']['id'];_0x4814d8['To'+_0xc939c9+_0x75d1('0x70')]=_0x13179c['id'];return db[_0xc939c9+_0x75d1('0x71')][_0x75d1('0x72')](_0x4814d8);})[_0x75d1('0x16')](function(){return respondWithRpcPromise(_0x75d1('0x73'),{'channel':_0x3f582c,'interaction':_0x739cc2['Interaction'],'message':_0x739cc2,'account':_0x739cc2[_0x75d1('0x74')],'applications':[{'id':0x0,'priority':0x1,'app':_0x75d1('0x6d'),'appdata':_0x13179c['name']+','+(_0x739cc2[_0x75d1('0x74')][_0x75d1('0x75')]||0x12c),'interval':_0x75d1('0x76')}]},routingClient);})[_0x75d1('0x16')](respondWithResult(_0x451828,null))[_0x75d1('0xb')](handleError(_0x451828,null));};};exports[_0x75d1('0x77')]=function(_0x54405a,_0x145b7f){var _0x1b026e,_0x39084f;if(_[_0x75d1('0x12')](_0x54405a[_0x75d1('0x21')][_0x75d1('0x78')])){throw new Error('Channel\x20field\x20is\x20mandatory');}var _0x30214e=_0x54405a['body'][_0x75d1('0x78')];var _0x400d3a=_[_0x75d1('0x62')](_0x30214e);var _0x15ac7b=_0x30214e===_0x75d1('0x63')?_0x75d1('0x64'):'Account';return db[_0x75d1('0x79')][_0x75d1('0x68')]({'raw':!![],'where':{'id':_0x54405a[_0x75d1('0x1a')]['id'],'role':'agent'}})[_0x75d1('0x16')](function(_0x4433ff){if(_['isNil'](_0x4433ff)){throw new Error(_0x75d1('0x7a'));}_0x1b026e=_0x4433ff;return db[_0x400d3a+_0x75d1('0x67')][_0x75d1('0x68')]({'where':{'id':_0x54405a[_0x75d1('0x21')][_0x75d1('0x69')]},'include':[{'model':db[_0x400d3a+_0x75d1('0x6a')],'as':_0x75d1('0x6a')},{'model':db[_0x400d3a+_0x15ac7b],'as':_0x75d1('0x74')}]});})[_0x75d1('0x16')](function(_0x57653d){if(_[_0x75d1('0x12')](_0x57653d)){throw new Error(_0x400d3a+_0x75d1('0x6b'));}_0x39084f=_0x57653d;return _0x57653d['update']({'read':0x0,'readAt':null,'UserId':null});})[_0x75d1('0x16')](function(){var _0x2e9cf1={'uniqueid':_0x30214e+'.'+_0x39084f['id']+'.'+_0x39084f['Interaction']['id'],'FromUserId':_0x54405a['user']['id'],'type':_0x75d1('0x6d'),'ToUserId':_0x1b026e['id']};_0x2e9cf1[_0x400d3a+_0x75d1('0x6e')]=_0x39084f['id'];_0x2e9cf1[_0x400d3a+_0x75d1('0x6f')]=_0x39084f[_0x75d1('0x6a')]['id'];_0x2e9cf1['From'+_0x400d3a+_0x15ac7b+'Id']=_0x39084f[_0x75d1('0x74')]['id'];return db[_0x400d3a+'TransferReport'][_0x75d1('0x72')](_0x2e9cf1);})[_0x75d1('0x16')](function(){return respondWithRpcPromise(_0x75d1('0x73'),{'channel':_0x30214e,'interaction':_0x39084f[_0x75d1('0x6a')],'message':_0x39084f,'account':_0x39084f[_0x75d1('0x74')],'applications':[{'id':0x0,'priority':0x1,'app':_0x75d1('0x3b'),'appdata':_0x1b026e[_0x75d1('0x10')]+','+(_0x39084f[_0x75d1('0x74')][_0x75d1('0x7b')]||0x12c),'interval':_0x75d1('0x76')}]},routingClient);})[_0x75d1('0x16')](respondWithResult(_0x145b7f,null))[_0x75d1('0xb')](handleError(_0x145b7f,null));};
\ No newline at end of file
+var _0x2eb2=['map','value','indexOf','filter','SmsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','FaxQueuesWaitingInteractions','capitalize','chat','Website','Queue','\x20Queue\x20not\x20found','Message','findOne','messageId','Interaction','Account','update','queue','MessageId','From','QueueId','TransferReport','create','queueTransferTimeout','*,*,*,*','channel','InteractionId','Start','agentTransferTimeout','moment','lodash','util','../../mysqldb','../../config/logger','api','client','http','request','then','error','message','result','status','json','stack','name','isNil','find','rows','voiceChannels','VoiceChannels','query','catch','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','params','voiceQueues','VoiceQueues','showVoiceQueues','UpdateVoiceQueue','body','voiceQueuesPreview','VoiceQueuesPreview','voiceQueuesChannels','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup','VoiceQueuesChannelHangup','VoiceQueuesChannelRedirect','outbound','Outbound','outboundChannels','Agents','agentCapacity','interaction','user','hasOwnProperty','MemberReport','findAll','INTERACTION','YYYY-MM-DD\x20HH:mm:ss','length','updateAttributes','findOrCreate','format','SIP/%s','interface','agent','internal','telephones','Telephones','trunks','Trunks','campaigns','Campaigns','chatQueues','ChatQueues','showChatQueues','mailQueues','MailQueues','showMailQueues','mailAccounts','MailAccounts','OpenchannelQueues','showOpenchannelQueues','SmsQueues','showSmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','showFaxQueues','FaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','type'];(function(_0x1395ad,_0x166eb3){var _0x2bc438=function(_0x3fb270){while(--_0x3fb270){_0x1395ad['push'](_0x1395ad['shift']());}};_0x2bc438(++_0x166eb3);}(_0x2eb2,0x19f));var _0x22eb=function(_0x1e7b16,_0x4607a1){_0x1e7b16=_0x1e7b16-0x0;var _0x37fadc=_0x2eb2[_0x1e7b16];return _0x37fadc;};'use strict';var BPromise=require('bluebird');var moment=require(_0x22eb('0x0'));var _=require(_0x22eb('0x1'));var util=require(_0x22eb('0x2'));var db=require(_0x22eb('0x3'))['db'];var logger=require(_0x22eb('0x4'))(_0x22eb('0x5'));var jayson=require('jayson/promise');var amiClient=jayson[_0x22eb('0x6')]['http']({'port':0x232a});var mailClient=jayson['client'][_0x22eb('0x7')]({'port':0x232b});var routingClient=jayson[_0x22eb('0x6')][_0x22eb('0x7')]({'port':0x232c});function respondWithRpcPromise(_0x2a9850,_0x4539d0,_0x396806){return new BPromise(function(_0x33ddef,_0x3375d6){var _0x419601=_0x396806?_0x396806:amiClient;return _0x419601[_0x22eb('0x8')](_0x2a9850,_0x4539d0)[_0x22eb('0x9')](function(_0x3008e0){if(_0x3008e0['error']){if(_0x3008e0[_0x22eb('0xa')]['code']===0x1f4){return _0x3375d6(_0x3008e0['error'][_0x22eb('0xb')]);}return _0x33ddef(_0x3008e0['error'][_0x22eb('0xb')]);}else{_0x33ddef(_0x3008e0[_0x22eb('0xc')]);}})['catch'](function(_0x5068ea){_0x3375d6(_0x5068ea);});});}function respondWithResult(_0x1f286c,_0x189f05){_0x189f05=_0x189f05||0xc8;return function(_0x128d43){if(_0x128d43){return _0x1f286c[_0x22eb('0xd')](_0x189f05)[_0x22eb('0xe')](_0x128d43);}return _0x1f286c['sendStatus'](0x194);};}function handleError(_0x350ade,_0x53f14e){_0x53f14e=_0x53f14e||0x1f4;return function(_0x1f5089){logger['error'](_0x1f5089[_0x22eb('0xf')]);if(_0x1f5089[_0x22eb('0x10')]){delete _0x1f5089['name'];}_0x350ade['status'](_0x53f14e)['send'](_0x1f5089);};}function findById(_0x2ed8a7){return function(_0x5245fe){if(!_['isNil'](_0x2ed8a7)&&!_[_0x22eb('0x11')](_0x5245fe)&&!_['isNil'](_0x5245fe['rows'])){return _[_0x22eb('0x12')](_0x5245fe[_0x22eb('0x13')],function(_0x385bcb){return _0x385bcb['id']==_0x2ed8a7;});}return null;};}exports[_0x22eb('0x14')]=function(_0x3b0940,_0x4bc0a2){return respondWithRpcPromise(_0x22eb('0x15'),_0x3b0940[_0x22eb('0x16')])[_0x22eb('0x9')](respondWithResult(_0x4bc0a2,null))[_0x22eb('0x17')](handleError(_0x4bc0a2,null));};exports[_0x22eb('0x18')]=function(_0x517313,_0x2eb115){return respondWithRpcPromise(_0x22eb('0x19'),_[_0x22eb('0x1a')](_0x517313['query'],_0x517313['params']))[_0x22eb('0x9')](respondWithResult(_0x2eb115,null))[_0x22eb('0x17')](handleError(_0x2eb115,null));};exports[_0x22eb('0x1b')]=function(_0x44639a,_0x2d95f0){return respondWithRpcPromise(_0x22eb('0x1c'),_[_0x22eb('0x1a')](_0x44639a['query'],_0x44639a[_0x22eb('0x1d')]))[_0x22eb('0x9')](respondWithResult(_0x2d95f0,null))[_0x22eb('0x17')](handleError(_0x2d95f0,null));};exports[_0x22eb('0x1e')]=function(_0x420d4f,_0x4da252){return respondWithRpcPromise(_0x22eb('0x1f'),_0x420d4f[_0x22eb('0x16')])[_0x22eb('0x9')](respondWithResult(_0x4da252,null))['catch'](handleError(_0x4da252,null));};exports[_0x22eb('0x20')]=function(_0x259847,_0x4b409a){return respondWithRpcPromise(_0x22eb('0x1f'),_0x259847[_0x22eb('0x16')])[_0x22eb('0x9')](findById(_0x259847[_0x22eb('0x1d')]['id']))[_0x22eb('0x9')](respondWithResult(_0x4b409a,null))['catch'](handleError(_0x4b409a,null));};exports['updateVoiceQueue']=function(_0x2a950e,_0x25e5bc){return respondWithRpcPromise(_0x22eb('0x21'),_[_0x22eb('0x1a')](_0x2a950e[_0x22eb('0x22')],_0x2a950e[_0x22eb('0x1d')]))[_0x22eb('0x9')](respondWithResult(_0x25e5bc,null))[_0x22eb('0x17')](handleError(_0x25e5bc,null));};exports[_0x22eb('0x23')]=function(_0x39cec1,_0x24e9dc){return respondWithRpcPromise(_0x22eb('0x24'),_['merge'](_0x39cec1[_0x22eb('0x16')],_0x39cec1['params']))[_0x22eb('0x9')](respondWithResult(_0x24e9dc,null))[_0x22eb('0x17')](handleError(_0x24e9dc,null));};exports[_0x22eb('0x25')]=function(_0x11199f,_0x351ed8){return respondWithRpcPromise(_0x22eb('0x26'),_0x11199f[_0x22eb('0x16')])[_0x22eb('0x9')](respondWithResult(_0x351ed8,null))[_0x22eb('0x17')](handleError(_0x351ed8,null));};exports[_0x22eb('0x27')]=function(_0x509bb7,_0x49259f){return respondWithRpcPromise(_0x22eb('0x28'),_['merge'](_0x509bb7['query'],_0x509bb7[_0x22eb('0x1d')]))[_0x22eb('0x9')](respondWithResult(_0x49259f,null))[_0x22eb('0x17')](handleError(_0x49259f,null));};exports[_0x22eb('0x29')]=function(_0x45c53e,_0x332e9a){return respondWithRpcPromise(_0x22eb('0x2a'),_[_0x22eb('0x1a')](_0x45c53e[_0x22eb('0x16')],_0x45c53e[_0x22eb('0x1d')]))['then'](respondWithResult(_0x332e9a,null))[_0x22eb('0x17')](handleError(_0x332e9a,null));};exports['voiceQueuesChannelRedirect']=function(_0x5c43e7,_0x35a264){return respondWithRpcPromise(_0x22eb('0x2b'),_['merge'](_0x5c43e7[_0x22eb('0x16')],_0x5c43e7[_0x22eb('0x1d')]))[_0x22eb('0x9')](respondWithResult(_0x35a264,null))[_0x22eb('0x17')](handleError(_0x35a264,null));};exports[_0x22eb('0x2c')]=function(_0x574555,_0x25f140){return respondWithRpcPromise(_0x22eb('0x2d'),_0x574555['query'])[_0x22eb('0x9')](respondWithResult(_0x25f140,null))[_0x22eb('0x17')](handleError(_0x25f140,null));};exports[_0x22eb('0x2e')]=function(_0x2cc77c,_0x9353f1){return respondWithRpcPromise('OutboundChannels',_0x2cc77c['query'])[_0x22eb('0x9')](respondWithResult(_0x9353f1,null))[_0x22eb('0x17')](handleError(_0x9353f1,null));};exports['agents']=function(_0x595d76,_0x2e2a0c){var _0x46c6a1;return respondWithRpcPromise('Agents',_0x595d76[_0x22eb('0x16')])[_0x22eb('0x9')](function(_0x382163){_0x46c6a1=_0x382163;return respondWithRpcPromise(_0x22eb('0x2f'),_0x595d76[_0x22eb('0x16')],routingClient);})[_0x22eb('0x9')](function(_0x513b65){return _[_0x22eb('0x1a')]({},_0x513b65,_0x46c6a1);})[_0x22eb('0x9')](respondWithResult(_0x2e2a0c,null))['catch'](handleError(_0x2e2a0c,null));};exports[_0x22eb('0x30')]=function(_0x44d39f,_0x204092){if(_0x44d39f[_0x22eb('0x22')]&&_0x44d39f[_0x22eb('0x22')][_0x22eb('0x31')]&&_0x44d39f[_0x22eb('0x32')]&&_0x44d39f[_0x22eb('0x32')][_0x22eb('0x10')]){for(var _0x82ace8 in _0x44d39f[_0x22eb('0x22')][_0x22eb('0x31')]){if(_0x44d39f[_0x22eb('0x22')][_0x22eb('0x31')][_0x22eb('0x33')](_0x82ace8)){db[_0x22eb('0x34')][_0x22eb('0x35')]({'where':{'channel':_0x82ace8,'membername':_0x44d39f[_0x22eb('0x32')]['name'],'type':_0x22eb('0x36'),'exitAt':null,'uniqueid':_0x44d39f[_0x22eb('0x22')]['interaction'][_0x82ace8]&&_0x44d39f[_0x22eb('0x22')][_0x22eb('0x31')][_0x82ace8]['length']?{'$notIn':_0x44d39f['body']['interaction'][_0x82ace8]}:{'$ne':null}}})[_0x22eb('0x9')](function(_0x1efc65){var _0x4e4c6d=moment()['format'](_0x22eb('0x37'));for(var _0x43f771=0x0,_0x326b24=_0x1efc65[_0x22eb('0x38')];_0x43f771<_0x326b24;_0x43f771+=0x1){_0x1efc65[_0x43f771][_0x22eb('0x39')]({'exitAt':_0x4e4c6d});}});for(var _0x3b30a3=0x0;_0x3b30a3<_0x44d39f[_0x22eb('0x22')][_0x22eb('0x31')][_0x82ace8]['length'];_0x3b30a3+=0x1){db['MemberReport'][_0x22eb('0x3a')]({'where':{'channel':_0x82ace8,'membername':_0x44d39f['user'][_0x22eb('0x10')],'type':'INTERACTION','uniqueid':_0x44d39f[_0x22eb('0x22')]['interaction'][_0x82ace8][_0x3b30a3],'exitAt':null},'defaults':{'channel':_0x82ace8,'membername':_0x44d39f['user']['name'],'interface':_['isNil'](_0x44d39f[_0x22eb('0x32')]['interface'])?util[_0x22eb('0x3b')](_0x22eb('0x3c'),_0x44d39f['user'][_0x22eb('0x10')]):_0x44d39f['user'][_0x22eb('0x3d')],'type':_0x22eb('0x36'),'enterAt':moment()[_0x22eb('0x3b')](_0x22eb('0x37')),'role':_0x22eb('0x3e'),'internal':_0x44d39f[_0x22eb('0x32')][_0x22eb('0x3f')],'uniqueid':_0x44d39f[_0x22eb('0x22')][_0x22eb('0x31')][_0x82ace8][_0x3b30a3]}});}}}}return respondWithRpcPromise('AgentCapacity',{'id':_0x44d39f[_0x22eb('0x1d')]['id'],'capacity':_0x44d39f[_0x22eb('0x22')]['capacity']},routingClient)[_0x22eb('0x9')](respondWithResult(_0x204092,null))[_0x22eb('0x17')](handleError(_0x204092,null));};exports[_0x22eb('0x40')]=function(_0x31216f,_0x4fee5c){return respondWithRpcPromise(_0x22eb('0x41'),_0x31216f[_0x22eb('0x16')])[_0x22eb('0x9')](respondWithResult(_0x4fee5c,null))[_0x22eb('0x17')](handleError(_0x4fee5c,null));};exports[_0x22eb('0x42')]=function(_0x10393b,_0x5effca){return respondWithRpcPromise(_0x22eb('0x43'),_0x10393b['query'])[_0x22eb('0x9')](respondWithResult(_0x5effca,null))['catch'](handleError(_0x5effca,null));};exports[_0x22eb('0x44')]=function(_0x254b53,_0x4028ef){return respondWithRpcPromise(_0x22eb('0x45'),_0x254b53[_0x22eb('0x16')])['then'](respondWithResult(_0x4028ef,null))['catch'](handleError(_0x4028ef,null));};exports[_0x22eb('0x46')]=function(_0x8e3864,_0x490110){return respondWithRpcPromise(_0x22eb('0x47'),_0x8e3864[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x490110,null))[_0x22eb('0x17')](handleError(_0x490110,null));};exports[_0x22eb('0x48')]=function(_0x27756b,_0x3a8588){return respondWithRpcPromise(_0x22eb('0x47'),_0x27756b[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](findById(_0x27756b[_0x22eb('0x1d')]['id']))['then'](respondWithResult(_0x3a8588,null))[_0x22eb('0x17')](handleError(_0x3a8588,null));};exports[_0x22eb('0x49')]=function(_0x3764d4,_0x2562a1){return respondWithRpcPromise(_0x22eb('0x4a'),_0x3764d4[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x2562a1,null))[_0x22eb('0x17')](handleError(_0x2562a1,null));};exports[_0x22eb('0x4b')]=function(_0x9f8465,_0x3e9ab5){return respondWithRpcPromise(_0x22eb('0x4a'),_0x9f8465[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](findById(_0x9f8465['params']['id']))['then'](respondWithResult(_0x3e9ab5,null))[_0x22eb('0x17')](handleError(_0x3e9ab5,null));};exports[_0x22eb('0x4c')]=function(_0x165e79,_0x38c02f){return respondWithRpcPromise(_0x22eb('0x4d'),_0x165e79['query'],mailClient)[_0x22eb('0x9')](respondWithResult(_0x38c02f,null))[_0x22eb('0x17')](handleError(_0x38c02f,null));};exports['openchannelQueues']=function(_0x485408,_0x341a1c){return respondWithRpcPromise(_0x22eb('0x4e'),_0x485408[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x341a1c,null))[_0x22eb('0x17')](handleError(_0x341a1c,null));};exports[_0x22eb('0x4f')]=function(_0x16099e,_0x22104f){return respondWithRpcPromise(_0x22eb('0x4e'),_0x16099e[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](findById(_0x16099e[_0x22eb('0x1d')]['id']))[_0x22eb('0x9')](respondWithResult(_0x22104f,null))[_0x22eb('0x17')](handleError(_0x22104f,null));};exports['smsQueues']=function(_0x29dd8b,_0x46ba3b){return respondWithRpcPromise(_0x22eb('0x50'),_0x29dd8b['query'],routingClient)[_0x22eb('0x9')](respondWithResult(_0x46ba3b,null))['catch'](handleError(_0x46ba3b,null));};exports[_0x22eb('0x51')]=function(_0x5347b4,_0x1919d0){return respondWithRpcPromise(_0x22eb('0x50'),_0x5347b4['query'],routingClient)[_0x22eb('0x9')](findById(_0x5347b4[_0x22eb('0x1d')]['id']))['then'](respondWithResult(_0x1919d0,null))['catch'](handleError(_0x1919d0,null));};exports[_0x22eb('0x52')]=function(_0x3073b1,_0x1984f0){return respondWithRpcPromise(_0x22eb('0x53'),_0x3073b1[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x1984f0,null))['catch'](handleError(_0x1984f0,null));};exports[_0x22eb('0x54')]=function(_0x5d035b,_0x5f4ea3){return respondWithRpcPromise(_0x22eb('0x53'),_0x5d035b[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](findById(_0x5d035b[_0x22eb('0x1d')]['id']))[_0x22eb('0x9')](respondWithResult(_0x5f4ea3,null))[_0x22eb('0x17')](handleError(_0x5f4ea3,null));};exports[_0x22eb('0x55')]=function(_0x109f7f,_0x50d914){return respondWithRpcPromise('FaxQueues',_0x109f7f[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x50d914,null))['catch'](handleError(_0x50d914,null));};exports[_0x22eb('0x56')]=function(_0x3f7405,_0x25f1b2){return respondWithRpcPromise(_0x22eb('0x57'),_0x3f7405[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](findById(_0x3f7405['params']['id']))[_0x22eb('0x9')](respondWithResult(_0x25f1b2,null))[_0x22eb('0x17')](handleError(_0x25f1b2,null));};exports[_0x22eb('0x58')]=function(_0x5e46b0,_0x4fcc2c){return respondWithRpcPromise(_0x22eb('0x59'),_0x5e46b0[_0x22eb('0x16')])[_0x22eb('0x9')](respondWithResult(_0x4fcc2c,null))['catch'](handleError(_0x4fcc2c,null));};exports[_0x22eb('0x5a')]=function(_0x4b6cf3,_0x1a305d){return respondWithRpcPromise(_0x22eb('0x5b'),_0x4b6cf3[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x1a305d,null))['catch'](handleError(_0x1a305d,null));};exports[_0x22eb('0x5c')]=function(_0x2e35b0,_0x304492){return respondWithRpcPromise(_0x22eb('0x5d'),_0x2e35b0[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x304492,null))[_0x22eb('0x17')](handleError(_0x304492,null));};exports[_0x22eb('0x5e')]=function(_0x47865e,_0x1c5b0b){return respondWithRpcPromise(_0x22eb('0x5f'),_0x47865e['query'],routingClient)[_0x22eb('0x9')](respondWithResult(_0x1c5b0b,null))[_0x22eb('0x17')](handleError(_0x1c5b0b,null));};exports['openchannelQueuesIdWaitingInteractions']=function(_0x5cc383,_0x51d9f4){return respondWithRpcPromise(_0x22eb('0x5f'),_0x5cc383[_0x22eb('0x16')],routingClient)['then'](function(_0x10726f){if(_0x5cc383[_0x22eb('0x16')][_0x22eb('0x60')]!==undefined){var _0x41c50e=_(_0x10726f[_0x22eb('0x13')])['filter']([_0x5cc383['query'][_0x22eb('0x60')],_0x5cc383[_0x22eb('0x1d')]['id']])[_0x22eb('0x61')]('queue_id')['uniq']()[_0x22eb('0x62')]();return _0x10726f['rows']['filter'](function(_0x3568bc){return _0x41c50e[_0x22eb('0x63')](_0x3568bc['queue_id'])>-0x1;});}else{return _0x10726f['rows'][_0x22eb('0x64')](function(_0x2dd41a){return _0x2dd41a['queue_id']===parseInt(_0x5cc383[_0x22eb('0x1d')]['id']);});}})[_0x22eb('0x9')](respondWithResult(_0x51d9f4,null))[_0x22eb('0x17')](handleError(_0x51d9f4,null));};exports['smsQueuesWaitingInteractions']=function(_0x464f4f,_0x26fb52){return respondWithRpcPromise(_0x22eb('0x65'),_0x464f4f[_0x22eb('0x16')],routingClient)[_0x22eb('0x9')](respondWithResult(_0x26fb52,null))['catch'](handleError(_0x26fb52,null));};exports[_0x22eb('0x66')]=function(_0x2ecc24,_0x3f429b){return respondWithRpcPromise('WhatsappQueuesWaitingInteractions',_0x2ecc24['query'],routingClient)[_0x22eb('0x9')](respondWithResult(_0x3f429b,null))[_0x22eb('0x17')](handleError(_0x3f429b,null));};exports[_0x22eb('0x67')]=function(_0x557c03,_0x215472){return respondWithRpcPromise(_0x22eb('0x68'),_0x557c03[_0x22eb('0x16')],routingClient)['then'](respondWithResult(_0x215472,null))[_0x22eb('0x17')](handleError(_0x215472,null));};exports['queueNotify']=function(_0x532a59){return function(_0x222616,_0x1e541f){var _0x1057f2,_0x49f362;var _0x3fc402=_[_0x22eb('0x69')](_0x532a59);var _0x2d422b=_0x532a59===_0x22eb('0x6a')?_0x22eb('0x6b'):'Account';return db[_0x3fc402+_0x22eb('0x6c')]['findOne']({'raw':!![],'where':{'id':_0x222616[_0x22eb('0x1d')]['id']}})[_0x22eb('0x9')](function(_0x37d7c6){if(_['isNil'](_0x37d7c6)){throw new Error(_0x3fc402+_0x22eb('0x6d'));}_0x1057f2=_0x37d7c6;return db[_0x3fc402+_0x22eb('0x6e')][_0x22eb('0x6f')]({'where':{'id':_0x222616[_0x22eb('0x22')][_0x22eb('0x70')]},'include':[{'model':db[_0x3fc402+_0x22eb('0x71')],'as':_0x22eb('0x71')},{'model':db[_0x3fc402+_0x2d422b],'as':_0x22eb('0x72')}]});})[_0x22eb('0x9')](function(_0x42d6fa){if(_[_0x22eb('0x11')](_0x42d6fa)){throw new Error(_0x3fc402+'\x20Message\x20not\x20found');}_0x49f362=_0x42d6fa;return _0x42d6fa[_0x22eb('0x73')]({'read':0x0,'readAt':null,'UserId':null});})[_0x22eb('0x9')](function(){var _0x40999d={'uniqueid':_0x532a59+'.'+_0x49f362['id']+'.'+_0x49f362[_0x22eb('0x71')]['id'],'FromUserId':_0x222616['user']['id'],'type':_0x22eb('0x74')};_0x40999d[_0x3fc402+_0x22eb('0x75')]=_0x49f362['id'];_0x40999d[_0x3fc402+'InteractionId']=_0x49f362[_0x22eb('0x71')]['id'];_0x40999d[_0x22eb('0x76')+_0x3fc402+_0x2d422b+'Id']=_0x49f362[_0x22eb('0x72')]['id'];_0x40999d['To'+_0x3fc402+_0x22eb('0x77')]=_0x1057f2['id'];return db[_0x3fc402+_0x22eb('0x78')][_0x22eb('0x79')](_0x40999d);})[_0x22eb('0x9')](function(){return respondWithRpcPromise('Start',{'channel':_0x532a59,'interaction':_0x49f362[_0x22eb('0x71')],'message':_0x49f362,'account':_0x49f362[_0x22eb('0x72')],'applications':[{'id':0x0,'priority':0x1,'app':'queue','appdata':_0x1057f2['name']+','+(_0x49f362[_0x22eb('0x72')][_0x22eb('0x7a')]||0x12c),'interval':_0x22eb('0x7b')}]},routingClient);})[_0x22eb('0x9')](respondWithResult(_0x1e541f,null))[_0x22eb('0x17')](handleError(_0x1e541f,null));};};exports['agentNotify']=function(_0x4e6fa6,_0x41fa99){var _0x18abf4,_0x5cf5e5;if(_[_0x22eb('0x11')](_0x4e6fa6[_0x22eb('0x22')][_0x22eb('0x7c')])){throw new Error('Channel\x20field\x20is\x20mandatory');}var _0x448fea=_0x4e6fa6[_0x22eb('0x22')][_0x22eb('0x7c')];var _0x402c2c=_[_0x22eb('0x69')](_0x448fea);var _0x195f58=_0x448fea===_0x22eb('0x6a')?_0x22eb('0x6b'):'Account';return db['User']['findOne']({'raw':!![],'where':{'id':_0x4e6fa6[_0x22eb('0x1d')]['id'],'role':'agent'}})['then'](function(_0x4170a5){if(_[_0x22eb('0x11')](_0x4170a5)){throw new Error('Agent\x20not\x20found');}_0x18abf4=_0x4170a5;return db[_0x402c2c+_0x22eb('0x6e')][_0x22eb('0x6f')]({'where':{'id':_0x4e6fa6[_0x22eb('0x22')][_0x22eb('0x70')]},'include':[{'model':db[_0x402c2c+'Interaction'],'as':_0x22eb('0x71')},{'model':db[_0x402c2c+_0x195f58],'as':_0x22eb('0x72')}]});})[_0x22eb('0x9')](function(_0x536f29){if(_['isNil'](_0x536f29)){throw new Error(_0x402c2c+'\x20Message\x20not\x20found');}_0x5cf5e5=_0x536f29;return _0x536f29[_0x22eb('0x73')]({'read':0x0,'readAt':null,'UserId':null});})[_0x22eb('0x9')](function(){var _0x48fa11={'uniqueid':_0x448fea+'.'+_0x5cf5e5['id']+'.'+_0x5cf5e5['Interaction']['id'],'FromUserId':_0x4e6fa6[_0x22eb('0x32')]['id'],'type':'queue','ToUserId':_0x18abf4['id']};_0x48fa11[_0x402c2c+'MessageId']=_0x5cf5e5['id'];_0x48fa11[_0x402c2c+_0x22eb('0x7d')]=_0x5cf5e5[_0x22eb('0x71')]['id'];_0x48fa11['From'+_0x402c2c+_0x195f58+'Id']=_0x5cf5e5['Account']['id'];return db[_0x402c2c+_0x22eb('0x78')][_0x22eb('0x79')](_0x48fa11);})[_0x22eb('0x9')](function(){return respondWithRpcPromise(_0x22eb('0x7e'),{'channel':_0x448fea,'interaction':_0x5cf5e5[_0x22eb('0x71')],'message':_0x5cf5e5,'account':_0x5cf5e5['Account'],'applications':[{'id':0x0,'priority':0x1,'app':'agent','appdata':_0x18abf4[_0x22eb('0x10')]+','+(_0x5cf5e5[_0x22eb('0x72')][_0x22eb('0x7f')]||0x12c),'interval':'*,*,*,*'}]},routingClient);})[_0x22eb('0x9')](respondWithResult(_0x41fa99,null))['catch'](handleError(_0x41fa99,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22dc=['put','/:id','update','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./schedule.controller','get','isAuthenticated','run','create'];(function(_0x5608a3,_0x5b33c5){var _0x1ed50a=function(_0x959171){while(--_0x959171){_0x5608a3['push'](_0x5608a3['shift']());}};_0x1ed50a(++_0x5b33c5);}(_0x22dc,0xce));var _0xc22d=function(_0x15bdc5,_0xf3e2f9){_0x15bdc5=_0x15bdc5-0x0;var _0x1612d2=_0x22dc[_0x15bdc5];return _0x1612d2;};'use strict';var multer=require(_0xc22d('0x0'));var util=require(_0xc22d('0x1'));var path=require(_0xc22d('0x2'));var timeout=require('connect-timeout');var express=require(_0xc22d('0x3'));var router=express[_0xc22d('0x4')]();var fs_extra=require(_0xc22d('0x5'));var auth=require(_0xc22d('0x6'));var interaction=require(_0xc22d('0x7'));var config=require(_0xc22d('0x8'));var controller=require(_0xc22d('0x9'));router[_0xc22d('0xa')]('/',auth[_0xc22d('0xb')](),controller['index']);router['get']('/:id',auth[_0xc22d('0xb')](),controller['show']);router[_0xc22d('0xa')]('/:id/run',auth['isAuthenticated'](),controller[_0xc22d('0xc')]);router['post']('/',auth['isAuthenticated'](),controller[_0xc22d('0xd')]);router[_0xc22d('0xe')](_0xc22d('0xf'),auth[_0xc22d('0xb')](),controller[_0xc22d('0x10')]);router[_0xc22d('0x11')](_0xc22d('0xf'),auth[_0xc22d('0xb')](),controller[_0xc22d('0x12')]);module[_0xc22d('0x13')]=router;
\ No newline at end of file
+var _0x90b3=['/:id/run','run','put','update','delete','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./schedule.controller','get','/:id','isAuthenticated','show'];(function(_0x4f32de,_0x5bd4a){var _0x149821=function(_0x205885){while(--_0x205885){_0x4f32de['push'](_0x4f32de['shift']());}};_0x149821(++_0x5bd4a);}(_0x90b3,0x123));var _0x390b=function(_0x55fa69,_0x4b1325){_0x55fa69=_0x55fa69-0x0;var _0x11c103=_0x90b3[_0x55fa69];return _0x11c103;};'use strict';var multer=require('multer');var util=require(_0x390b('0x0'));var path=require(_0x390b('0x1'));var timeout=require(_0x390b('0x2'));var express=require('express');var router=express[_0x390b('0x3')]();var fs_extra=require(_0x390b('0x4'));var auth=require(_0x390b('0x5'));var interaction=require(_0x390b('0x6'));var config=require(_0x390b('0x7'));var controller=require(_0x390b('0x8'));router[_0x390b('0x9')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x390b('0xa'),auth[_0x390b('0xb')](),controller[_0x390b('0xc')]);router['get'](_0x390b('0xd'),auth[_0x390b('0xb')](),controller[_0x390b('0xe')]);router['post']('/',auth[_0x390b('0xb')](),controller['create']);router[_0x390b('0xf')](_0x390b('0xa'),auth['isAuthenticated'](),controller[_0x390b('0x10')]);router[_0x390b('0x11')](_0x390b('0xa'),auth[_0x390b('0xb')](),controller['destroy']);module[_0x390b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x493a=['custom','default','BOOLEAN','TEXT','sequelize','exports','STRING','DATE','INTEGER','ENUM','years','quarters','months','days','hours','minutes','csv','pdf','xlsx'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x493a,0x76));var _0xa493=function(_0x17882c,_0x4b964b){_0x17882c=_0x17882c-0x0;var _0x355a59=_0x493a[_0x17882c];return _0x355a59;};'use strict';var Sequelize=require(_0xa493('0x0'));module[_0xa493('0x1')]={'name':{'type':Sequelize[_0xa493('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xa493('0x2')]},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0xa493('0x2')],'allowNull':![],'defaultValue':'0\x200\x20*\x20*\x20*'},'startAt':{'type':Sequelize[_0xa493('0x3')],'allowNull':![]},'endAt':{'type':Sequelize[_0xa493('0x3')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0xa493('0x4')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0xa493('0x5')](_0xa493('0x6'),_0xa493('0x7'),_0xa493('0x8'),'weeks',_0xa493('0x9'),_0xa493('0xa'),_0xa493('0xb')),'allowNull':![],'defaultValue':_0xa493('0x9')},'output':{'type':Sequelize['ENUM'](_0xa493('0xc'),_0xa493('0xd'),_0xa493('0xe')),'allowNull':![],'defaultValue':_0xa493('0xc')},'type':{'type':Sequelize[_0xa493('0x5')](_0xa493('0xf'),_0xa493('0x10')),'allowNull':![],'defaultValue':_0xa493('0xf')},'sendMail':{'type':Sequelize[_0xa493('0x11')],'defaultValue':![]},'email':{'type':Sequelize[_0xa493('0x2')]},'cc':{'type':Sequelize[_0xa493('0x12')]},'bcc':{'type':Sequelize[_0xa493('0x12')]},'sendIfEmpty':{'type':Sequelize[_0xa493('0x11')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xd810=['BOOLEAN','0\x200\x20*\x20*\x20*','DATE','ENUM','years','quarters','months','days','hours','minutes','csv','pdf','xlsx','custom','default','TEXT','exports','STRING'];(function(_0x57e964,_0x45a5d8){var _0x2614ad=function(_0x236230){while(--_0x236230){_0x57e964['push'](_0x57e964['shift']());}};_0x2614ad(++_0x45a5d8);}(_0xd810,0x1d2));var _0x0d81=function(_0x16d10f,_0x2ba2d5){_0x16d10f=_0x16d10f-0x0;var _0x50c823=_0xd810[_0x16d10f];return _0x50c823;};'use strict';var Sequelize=require('sequelize');module[_0x0d81('0x0')]={'name':{'type':Sequelize[_0x0d81('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x0d81('0x1')]},'active':{'type':Sequelize[_0x0d81('0x2')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x0d81('0x1')],'allowNull':![],'defaultValue':_0x0d81('0x3')},'startAt':{'type':Sequelize[_0x0d81('0x4')],'allowNull':![]},'endAt':{'type':Sequelize[_0x0d81('0x4')],'allowNull':![]},'subtractNumber':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0x0d81('0x5')](_0x0d81('0x6'),_0x0d81('0x7'),_0x0d81('0x8'),'weeks',_0x0d81('0x9'),_0x0d81('0xa'),_0x0d81('0xb')),'allowNull':![],'defaultValue':_0x0d81('0x9')},'output':{'type':Sequelize[_0x0d81('0x5')](_0x0d81('0xc'),_0x0d81('0xd'),_0x0d81('0xe')),'allowNull':![],'defaultValue':_0x0d81('0xc')},'type':{'type':Sequelize[_0x0d81('0x5')](_0x0d81('0xf'),_0x0d81('0x10')),'allowNull':![],'defaultValue':_0x0d81('0xf')},'sendMail':{'type':Sequelize[_0x0d81('0x2')],'defaultValue':![]},'email':{'type':Sequelize[_0x0d81('0x1')]},'cc':{'type':Sequelize[_0x0d81('0x11')]},'bcc':{'type':Sequelize[_0x0d81('0x11')]},'sendIfEmpty':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb244=['fields','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','catch','params','keys','find','create','body','user','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','run','../../config/schedule','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','then','get','Scheduler','destroy','error','stack','name','send','map','Schedule','rawAttributes','fieldName','type','model','query','filters','intersection','attributes'];(function(_0x4285fb,_0x4b1b00){var _0x1b4078=function(_0x32dec6){while(--_0x32dec6){_0x4285fb['push'](_0x4285fb['shift']());}};_0x1b4078(++_0x4b1b00);}(_0xb244,0xb7));var _0x4b24=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0xb244[_0xbca1b1];return _0x4e1686;};'use strict';var emlformat=require(_0x4b24('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4b24('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4b24('0x2'));var moment=require(_0x4b24('0x3'));var BPromise=require(_0x4b24('0x4'));var Mustache=require(_0x4b24('0x5'));var util=require(_0x4b24('0x6'));var path=require(_0x4b24('0x7'));var sox=require(_0x4b24('0x8'));var csv=require(_0x4b24('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4b24('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x4b24('0xb'));var deskjs=require(_0x4b24('0xc'));var toCsv=require(_0x4b24('0x9'));var querystring=require(_0x4b24('0xd'));var Papa=require(_0x4b24('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4b24('0xf'));var as=require(_0x4b24('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4b24('0x11'))(_0x4b24('0x12'));var utils=require('../../config/utils');var config=require(_0x4b24('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x4b24('0x14'))['db'];function respondWithStatusCode(_0x3222a2,_0x4530a0){_0x4530a0=_0x4530a0||0xcc;return function(_0x2918b4){if(_0x2918b4){return _0x3222a2[_0x4b24('0x15')](_0x4530a0);}return _0x3222a2[_0x4b24('0x16')](_0x4530a0)[_0x4b24('0x17')]();};}function respondWithResult(_0x2e672a,_0x4b41db){_0x4b41db=_0x4b41db||0xc8;return function(_0x2d601f){if(_0x2d601f){return _0x2e672a['status'](_0x4b41db)[_0x4b24('0x18')](_0x2d601f);}};}function respondWithFilteredResult(_0xcc1032,_0x4b9ac1){return function(_0x511584){if(_0x511584){var _0x46ec37=typeof _0x4b9ac1[_0x4b24('0x19')]===_0x4b24('0x1a')&&typeof _0x4b9ac1[_0x4b24('0x1b')]===_0x4b24('0x1a');var _0x5a3ae4=_0x511584[_0x4b24('0x1c')];var _0x56dfbe=_0x46ec37?0x0:_0x4b9ac1['offset'];var _0x18d5dd=_0x46ec37?_0x511584['count']:_0x4b9ac1[_0x4b24('0x19')]+_0x4b9ac1[_0x4b24('0x1b')];var _0x526e58;if(_0x18d5dd>=_0x5a3ae4){_0x18d5dd=_0x5a3ae4;_0x526e58=0xc8;}else{_0x526e58=0xce;}_0xcc1032[_0x4b24('0x16')](_0x526e58);return _0xcc1032[_0x4b24('0x1d')](_0x4b24('0x1e'),_0x56dfbe+'-'+_0x18d5dd+'/'+_0x5a3ae4)[_0x4b24('0x18')](_0x511584);}return null;};}function patchUpdates(_0x2c75de){return function(_0x515c3a){try{jsonpatch['apply'](_0x515c3a,_0x2c75de,!![]);}catch(_0x2cff56){return BPromise['reject'](_0x2cff56);}return _0x515c3a[_0x4b24('0x1f')]();};}function saveUpdates(_0x3af145,_0x27aabd){return function(_0x17684b){if(_0x17684b){return _0x17684b[_0x4b24('0x20')](_0x3af145)['then'](function(_0x2d44c4){return _0x2d44c4;});}return null;};}function removeEntity(_0x3f295c,_0x469181){return function(_0x5af38e){if(_0x5af38e){return _0x5af38e['destroy']()[_0x4b24('0x21')](function(){var _0x5cc320=_0x5af38e[_0x4b24('0x22')]({'plain':!![]});var _0xaf15d9=_0x4b24('0x23');return db['UserProfileResource'][_0x4b24('0x24')]({'where':{'type':_0xaf15d9,'resourceId':_0x5cc320['id']}})[_0x4b24('0x21')](function(){return _0x5af38e;});})[_0x4b24('0x21')](function(){_0x3f295c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x793602,_0x416e23){return function(_0x3f2554){if(!_0x3f2554){_0x793602[_0x4b24('0x15')](0x194);}return _0x3f2554;};}function handleError(_0x50787f,_0x3530c8){_0x3530c8=_0x3530c8||0x1f4;return function(_0x3017a3){logger[_0x4b24('0x25')](_0x3017a3[_0x4b24('0x26')]);if(_0x3017a3[_0x4b24('0x27')]){delete _0x3017a3[_0x4b24('0x27')];}_0x50787f[_0x4b24('0x16')](_0x3530c8)[_0x4b24('0x28')](_0x3017a3);};}exports['index']=function(_0x29d98b,_0x587040){var _0x30f152={},_0x35c2f4={},_0x1b4ecb={'count':0x0,'rows':[]};var _0x5dc0c8=_[_0x4b24('0x29')](db[_0x4b24('0x2a')][_0x4b24('0x2b')],function(_0x9c7d4f){return{'name':_0x9c7d4f[_0x4b24('0x2c')],'type':_0x9c7d4f[_0x4b24('0x2d')]['key']};});_0x35c2f4[_0x4b24('0x2e')]=_['map'](_0x5dc0c8,_0x4b24('0x27'));_0x35c2f4['query']=_['keys'](_0x29d98b[_0x4b24('0x2f')]);_0x35c2f4[_0x4b24('0x30')]=_[_0x4b24('0x31')](_0x35c2f4['model'],_0x35c2f4['query']);_0x30f152[_0x4b24('0x32')]=_[_0x4b24('0x31')](_0x35c2f4['model'],qs['fields'](_0x29d98b[_0x4b24('0x2f')][_0x4b24('0x33')]));_0x30f152[_0x4b24('0x32')]=_0x30f152[_0x4b24('0x32')][_0x4b24('0x34')]?_0x30f152[_0x4b24('0x32')]:_0x35c2f4['model'];if(!_0x29d98b['query'][_0x4b24('0x35')]('nolimit')){_0x30f152['limit']=qs[_0x4b24('0x1b')](_0x29d98b[_0x4b24('0x2f')][_0x4b24('0x1b')]);_0x30f152[_0x4b24('0x19')]=qs[_0x4b24('0x19')](_0x29d98b[_0x4b24('0x2f')]['offset']);}_0x30f152[_0x4b24('0x36')]=qs[_0x4b24('0x37')](_0x29d98b['query']['sort']);_0x30f152[_0x4b24('0x38')]=qs[_0x4b24('0x30')](_[_0x4b24('0x39')](_0x29d98b[_0x4b24('0x2f')],_0x35c2f4['filters']),_0x5dc0c8);if(_0x29d98b[_0x4b24('0x2f')]['filter']){_0x30f152[_0x4b24('0x38')]=_['merge'](_0x30f152['where'],{'$or':_['map'](_0x5dc0c8,function(_0x48771a){if(_0x48771a[_0x4b24('0x2d')]!==_0x4b24('0x3a')){var _0x39b796={};_0x39b796[_0x48771a['name']]={'$like':'%'+_0x29d98b[_0x4b24('0x2f')][_0x4b24('0x3b')]+'%'};return _0x39b796;}})});}_0x30f152=_[_0x4b24('0x3c')]({},_0x30f152,_0x29d98b[_0x4b24('0x3d')]);var _0x342b1a={'where':_0x30f152[_0x4b24('0x38')]};return db['Schedule'][_0x4b24('0x1c')](_0x342b1a)['then'](function(_0x3786b5){_0x1b4ecb[_0x4b24('0x1c')]=_0x3786b5;if(_0x29d98b[_0x4b24('0x2f')][_0x4b24('0x3e')]){_0x30f152[_0x4b24('0x3f')]=[{'all':!![]}];}return db[_0x4b24('0x2a')][_0x4b24('0x40')](_0x30f152);})[_0x4b24('0x21')](function(_0x4ed7b9){_0x1b4ecb[_0x4b24('0x41')]=_0x4ed7b9;return _0x1b4ecb;})['then'](respondWithFilteredResult(_0x587040,_0x30f152))[_0x4b24('0x42')](handleError(_0x587040,null));};exports['show']=function(_0x16399d,_0x5d4e80){var _0x528467={'raw':![],'where':{'id':_0x16399d[_0x4b24('0x43')]['id']}},_0x5d623b={};_0x5d623b['model']=_[_0x4b24('0x44')](db[_0x4b24('0x2a')][_0x4b24('0x2b')]);_0x5d623b['query']=_[_0x4b24('0x44')](_0x16399d[_0x4b24('0x2f')]);_0x5d623b[_0x4b24('0x30')]=_['intersection'](_0x5d623b['model'],_0x5d623b['query']);_0x528467[_0x4b24('0x32')]=_[_0x4b24('0x31')](_0x5d623b[_0x4b24('0x2e')],qs['fields'](_0x16399d['query'][_0x4b24('0x33')]));_0x528467['attributes']=_0x528467['attributes'][_0x4b24('0x34')]?_0x528467[_0x4b24('0x32')]:_0x5d623b[_0x4b24('0x2e')];if(_0x16399d[_0x4b24('0x2f')][_0x4b24('0x3e')]){_0x528467[_0x4b24('0x3f')]=[{'all':!![]}];}_0x528467=_['merge']({},_0x528467,_0x16399d[_0x4b24('0x3d')]);return db[_0x4b24('0x2a')][_0x4b24('0x45')](_0x528467)['then'](handleEntityNotFound(_0x5d4e80,null))['then'](respondWithResult(_0x5d4e80,null))[_0x4b24('0x42')](handleError(_0x5d4e80,null));};exports[_0x4b24('0x46')]=function(_0x3b42a9,_0x47ae19){return db[_0x4b24('0x2a')][_0x4b24('0x46')](_0x3b42a9[_0x4b24('0x47')],{})[_0x4b24('0x21')](function(_0x5701e0){var _0x3cfb5f=_0x3b42a9[_0x4b24('0x48')][_0x4b24('0x22')]({'plain':!![]});if(!_0x3cfb5f)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3cfb5f['role']==='user'){var _0x41e5b4=_0x5701e0[_0x4b24('0x22')]({'plain':!![]});var _0x439234='Scheduler';return db['UserProfileSection'][_0x4b24('0x45')]({'where':{'name':_0x439234,'userProfileId':_0x3cfb5f['userProfileId']},'raw':!![]})[_0x4b24('0x21')](function(_0x5d59a9){if(_0x5d59a9&&_0x5d59a9[_0x4b24('0x49')]===0x0){return db[_0x4b24('0x4a')][_0x4b24('0x46')]({'name':_0x41e5b4[_0x4b24('0x27')],'resourceId':_0x41e5b4['id'],'type':_0x5d59a9['name'],'sectionId':_0x5d59a9['id']},{})[_0x4b24('0x21')](function(){return _0x5701e0;});}else{return _0x5701e0;}})[_0x4b24('0x42')](function(_0x1f2e9c){logger[_0x4b24('0x25')](_0x4b24('0x4b'),_0x1f2e9c);throw _0x1f2e9c;});}return _0x5701e0;})[_0x4b24('0x21')](respondWithResult(_0x47ae19,0xc9))['catch'](handleError(_0x47ae19,null));};exports[_0x4b24('0x20')]=function(_0x17fcd7,_0x286349){if(_0x17fcd7[_0x4b24('0x47')]['id']){delete _0x17fcd7['body']['id'];}return db[_0x4b24('0x2a')][_0x4b24('0x45')]({'where':{'id':_0x17fcd7[_0x4b24('0x43')]['id']}})[_0x4b24('0x21')](handleEntityNotFound(_0x286349,null))['then'](saveUpdates(_0x17fcd7[_0x4b24('0x47')],null))['then'](respondWithResult(_0x286349,null))[_0x4b24('0x42')](handleError(_0x286349,null));};exports[_0x4b24('0x24')]=function(_0x3dd7bf,_0x27a104){return db[_0x4b24('0x2a')]['find']({'where':{'id':_0x3dd7bf[_0x4b24('0x43')]['id']}})[_0x4b24('0x21')](handleEntityNotFound(_0x27a104,null))[_0x4b24('0x21')](removeEntity(_0x27a104,null))['catch'](handleError(_0x27a104,null));};exports[_0x4b24('0x4c')]=function(_0x9b79c,_0x48482c,_0x59cd1b){var _0x22d4af=require(_0x4b24('0x4d'));return db[_0x4b24('0x2a')][_0x4b24('0x45')]({'where':{'id':_0x9b79c['params']['id']},'raw':!![]})[_0x4b24('0x21')](handleEntityNotFound(_0x48482c,null))[_0x4b24('0x21')](function(){_0x22d4af[_0x4b24('0x4c')](_0x9b79c[_0x4b24('0x43')]['id']);})[_0x4b24('0x21')](respondWithStatusCode(_0x48482c,null))[_0x4b24('0x42')](handleError(_0x48482c,null));};
\ No newline at end of file
+var _0x8d0d=['send','map','Schedule','rawAttributes','fieldName','type','key','keys','query','filters','model','intersection','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','findAll','rows','catch','params','attributes','includeAll','include','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Scheduler','UserProfileSection','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','run','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','count','offset','apply','reject','save','destroy','then','stack','name'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8d0d,0xd6));var _0xd8d0=function(_0x3482e9,_0x5a7673){_0x3482e9=_0x3482e9-0x0;var _0x48070e=_0x8d0d[_0x3482e9];return _0x48070e;};'use strict';var emlformat=require(_0xd8d0('0x0'));var rimraf=require(_0xd8d0('0x1'));var zipdir=require(_0xd8d0('0x2'));var jsonpatch=require(_0xd8d0('0x3'));var rp=require(_0xd8d0('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xd8d0('0x5'));var util=require(_0xd8d0('0x6'));var path=require(_0xd8d0('0x7'));var sox=require(_0xd8d0('0x8'));var csv=require(_0xd8d0('0x9'));var ejs=require(_0xd8d0('0xa'));var fs=require('fs');var fs_extra=require(_0xd8d0('0xb'));var _=require(_0xd8d0('0xc'));var squel=require('squel');var crypto=require(_0xd8d0('0xd'));var jsforce=require(_0xd8d0('0xe'));var deskjs=require(_0xd8d0('0xf'));var toCsv=require('to-csv');var querystring=require(_0xd8d0('0x10'));var Papa=require('papaparse');var Redis=require(_0xd8d0('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd8d0('0x12'));var logger=require(_0xd8d0('0x13'))(_0xd8d0('0x14'));var utils=require('../../config/utils');var config=require(_0xd8d0('0x15'));var licenseUtil=require(_0xd8d0('0x16'));var db=require(_0xd8d0('0x17'))['db'];function respondWithStatusCode(_0x4c4cef,_0x53aed2){_0x53aed2=_0x53aed2||0xcc;return function(_0x4cb039){if(_0x4cb039){return _0x4c4cef[_0xd8d0('0x18')](_0x53aed2);}return _0x4c4cef['status'](_0x53aed2)[_0xd8d0('0x19')]();};}function respondWithResult(_0x15b2c3,_0x556b20){_0x556b20=_0x556b20||0xc8;return function(_0x2767f8){if(_0x2767f8){return _0x15b2c3[_0xd8d0('0x1a')](_0x556b20)[_0xd8d0('0x1b')](_0x2767f8);}};}function respondWithFilteredResult(_0x20bd82,_0x5f0868){return function(_0x507ba2){if(_0x507ba2){var _0x301810=typeof _0x5f0868['offset']==='undefined'&&typeof _0x5f0868['limit']===_0xd8d0('0x1c');var _0x328eb7=_0x507ba2[_0xd8d0('0x1d')];var _0x2203df=_0x301810?0x0:_0x5f0868[_0xd8d0('0x1e')];var _0x113374=_0x301810?_0x507ba2[_0xd8d0('0x1d')]:_0x5f0868[_0xd8d0('0x1e')]+_0x5f0868['limit'];var _0x3611ae;if(_0x113374>=_0x328eb7){_0x113374=_0x328eb7;_0x3611ae=0xc8;}else{_0x3611ae=0xce;}_0x20bd82[_0xd8d0('0x1a')](_0x3611ae);return _0x20bd82['set']('Content-Range',_0x2203df+'-'+_0x113374+'/'+_0x328eb7)[_0xd8d0('0x1b')](_0x507ba2);}return null;};}function patchUpdates(_0x8458b9){return function(_0x4449a5){try{jsonpatch[_0xd8d0('0x1f')](_0x4449a5,_0x8458b9,!![]);}catch(_0x1a0df3){return BPromise[_0xd8d0('0x20')](_0x1a0df3);}return _0x4449a5[_0xd8d0('0x21')]();};}function saveUpdates(_0x2ad9ce,_0x2de406){return function(_0x3cf74a){if(_0x3cf74a){return _0x3cf74a['update'](_0x2ad9ce)['then'](function(_0x347ef2){return _0x347ef2;});}return null;};}function removeEntity(_0x26bd01,_0x495dd0){return function(_0x67b32a){if(_0x67b32a){return _0x67b32a[_0xd8d0('0x22')]()['then'](function(){var _0x5b60ee=_0x67b32a['get']({'plain':!![]});var _0x14e724='Scheduler';return db['UserProfileResource'][_0xd8d0('0x22')]({'where':{'type':_0x14e724,'resourceId':_0x5b60ee['id']}})['then'](function(){return _0x67b32a;});})[_0xd8d0('0x23')](function(){_0x26bd01[_0xd8d0('0x1a')](0xcc)[_0xd8d0('0x19')]();});}};}function handleEntityNotFound(_0x2ac678,_0x2243ee){return function(_0xbceee7){if(!_0xbceee7){_0x2ac678['sendStatus'](0x194);}return _0xbceee7;};}function handleError(_0x2c29b3,_0x182658){_0x182658=_0x182658||0x1f4;return function(_0x1f0f79){logger['error'](_0x1f0f79[_0xd8d0('0x24')]);if(_0x1f0f79[_0xd8d0('0x25')]){delete _0x1f0f79[_0xd8d0('0x25')];}_0x2c29b3[_0xd8d0('0x1a')](_0x182658)[_0xd8d0('0x26')](_0x1f0f79);};}exports['index']=function(_0x2774c2,_0x1a723f){var _0x564384={},_0x52a5ca={},_0x591b16={'count':0x0,'rows':[]};var _0x53cd72=_[_0xd8d0('0x27')](db[_0xd8d0('0x28')][_0xd8d0('0x29')],function(_0x4f1da7){return{'name':_0x4f1da7[_0xd8d0('0x2a')],'type':_0x4f1da7[_0xd8d0('0x2b')][_0xd8d0('0x2c')]};});_0x52a5ca['model']=_[_0xd8d0('0x27')](_0x53cd72,'name');_0x52a5ca['query']=_[_0xd8d0('0x2d')](_0x2774c2[_0xd8d0('0x2e')]);_0x52a5ca[_0xd8d0('0x2f')]=_['intersection'](_0x52a5ca[_0xd8d0('0x30')],_0x52a5ca['query']);_0x564384['attributes']=_[_0xd8d0('0x31')](_0x52a5ca[_0xd8d0('0x30')],qs[_0xd8d0('0x32')](_0x2774c2['query']['fields']));_0x564384['attributes']=_0x564384['attributes'][_0xd8d0('0x33')]?_0x564384['attributes']:_0x52a5ca[_0xd8d0('0x30')];if(!_0x2774c2[_0xd8d0('0x2e')][_0xd8d0('0x34')]('nolimit')){_0x564384[_0xd8d0('0x35')]=qs[_0xd8d0('0x35')](_0x2774c2['query']['limit']);_0x564384[_0xd8d0('0x1e')]=qs[_0xd8d0('0x1e')](_0x2774c2['query']['offset']);}_0x564384[_0xd8d0('0x36')]=qs[_0xd8d0('0x37')](_0x2774c2[_0xd8d0('0x2e')][_0xd8d0('0x37')]);_0x564384[_0xd8d0('0x38')]=qs['filters'](_[_0xd8d0('0x39')](_0x2774c2[_0xd8d0('0x2e')],_0x52a5ca[_0xd8d0('0x2f')]),_0x53cd72);if(_0x2774c2[_0xd8d0('0x2e')][_0xd8d0('0x3a')]){_0x564384[_0xd8d0('0x38')]=_[_0xd8d0('0x3b')](_0x564384[_0xd8d0('0x38')],{'$or':_[_0xd8d0('0x27')](_0x53cd72,function(_0x4b4f27){if(_0x4b4f27[_0xd8d0('0x2b')]!==_0xd8d0('0x3c')){var _0x150db3={};_0x150db3[_0x4b4f27['name']]={'$like':'%'+_0x2774c2[_0xd8d0('0x2e')][_0xd8d0('0x3a')]+'%'};return _0x150db3;}})});}_0x564384=_[_0xd8d0('0x3b')]({},_0x564384,_0x2774c2[_0xd8d0('0x3d')]);var _0x1e8a5f={'where':_0x564384[_0xd8d0('0x38')]};return db[_0xd8d0('0x28')][_0xd8d0('0x1d')](_0x1e8a5f)[_0xd8d0('0x23')](function(_0x1b52b5){_0x591b16[_0xd8d0('0x1d')]=_0x1b52b5;if(_0x2774c2[_0xd8d0('0x2e')]['includeAll']){_0x564384['include']=[{'all':!![]}];}return db['Schedule'][_0xd8d0('0x3e')](_0x564384);})[_0xd8d0('0x23')](function(_0x3376d0){_0x591b16[_0xd8d0('0x3f')]=_0x3376d0;return _0x591b16;})['then'](respondWithFilteredResult(_0x1a723f,_0x564384))[_0xd8d0('0x40')](handleError(_0x1a723f,null));};exports['show']=function(_0x1198ac,_0x4f2db9){var _0x529689={'raw':![],'where':{'id':_0x1198ac[_0xd8d0('0x41')]['id']}},_0x1f23de={};_0x1f23de['model']=_[_0xd8d0('0x2d')](db['Schedule'][_0xd8d0('0x29')]);_0x1f23de[_0xd8d0('0x2e')]=_[_0xd8d0('0x2d')](_0x1198ac[_0xd8d0('0x2e')]);_0x1f23de[_0xd8d0('0x2f')]=_[_0xd8d0('0x31')](_0x1f23de[_0xd8d0('0x30')],_0x1f23de[_0xd8d0('0x2e')]);_0x529689['attributes']=_[_0xd8d0('0x31')](_0x1f23de[_0xd8d0('0x30')],qs[_0xd8d0('0x32')](_0x1198ac[_0xd8d0('0x2e')]['fields']));_0x529689['attributes']=_0x529689[_0xd8d0('0x42')]['length']?_0x529689['attributes']:_0x1f23de[_0xd8d0('0x30')];if(_0x1198ac[_0xd8d0('0x2e')][_0xd8d0('0x43')]){_0x529689[_0xd8d0('0x44')]=[{'all':!![]}];}_0x529689=_[_0xd8d0('0x3b')]({},_0x529689,_0x1198ac[_0xd8d0('0x3d')]);return db[_0xd8d0('0x28')][_0xd8d0('0x45')](_0x529689)['then'](handleEntityNotFound(_0x4f2db9,null))[_0xd8d0('0x23')](respondWithResult(_0x4f2db9,null))[_0xd8d0('0x40')](handleError(_0x4f2db9,null));};exports[_0xd8d0('0x46')]=function(_0x3a5257,_0x5b0c6b){return db[_0xd8d0('0x28')]['create'](_0x3a5257['body'],{})[_0xd8d0('0x23')](function(_0x5e3ad5){var _0x3ad35d=_0x3a5257[_0xd8d0('0x47')][_0xd8d0('0x48')]({'plain':!![]});if(!_0x3ad35d)throw new Error(_0xd8d0('0x49'));if(_0x3ad35d['role']===_0xd8d0('0x47')){var _0x2ec9ca=_0x5e3ad5[_0xd8d0('0x48')]({'plain':!![]});var _0x4072d5=_0xd8d0('0x4a');return db[_0xd8d0('0x4b')][_0xd8d0('0x45')]({'where':{'name':_0x4072d5,'userProfileId':_0x3ad35d['userProfileId']},'raw':!![]})[_0xd8d0('0x23')](function(_0x102ca3){if(_0x102ca3&&_0x102ca3[_0xd8d0('0x4c')]===0x0){return db[_0xd8d0('0x4d')][_0xd8d0('0x46')]({'name':_0x2ec9ca[_0xd8d0('0x25')],'resourceId':_0x2ec9ca['id'],'type':_0x102ca3['name'],'sectionId':_0x102ca3['id']},{})[_0xd8d0('0x23')](function(){return _0x5e3ad5;});}else{return _0x5e3ad5;}})[_0xd8d0('0x40')](function(_0x337f37){logger[_0xd8d0('0x4e')](_0xd8d0('0x4f'),_0x337f37);throw _0x337f37;});}return _0x5e3ad5;})[_0xd8d0('0x23')](respondWithResult(_0x5b0c6b,0xc9))[_0xd8d0('0x40')](handleError(_0x5b0c6b,null));};exports[_0xd8d0('0x50')]=function(_0x5e22a2,_0x4708c3){if(_0x5e22a2['body']['id']){delete _0x5e22a2[_0xd8d0('0x51')]['id'];}return db[_0xd8d0('0x28')][_0xd8d0('0x45')]({'where':{'id':_0x5e22a2[_0xd8d0('0x41')]['id']}})['then'](handleEntityNotFound(_0x4708c3,null))[_0xd8d0('0x23')](saveUpdates(_0x5e22a2['body'],null))[_0xd8d0('0x23')](respondWithResult(_0x4708c3,null))[_0xd8d0('0x40')](handleError(_0x4708c3,null));};exports[_0xd8d0('0x22')]=function(_0xa1b7cd,_0x4c34c8){return db[_0xd8d0('0x28')][_0xd8d0('0x45')]({'where':{'id':_0xa1b7cd['params']['id']}})[_0xd8d0('0x23')](handleEntityNotFound(_0x4c34c8,null))[_0xd8d0('0x23')](removeEntity(_0x4c34c8,null))[_0xd8d0('0x40')](handleError(_0x4c34c8,null));};exports[_0xd8d0('0x52')]=function(_0x2edc46,_0x401588,_0x3a4117){var _0x3116b2=require(_0xd8d0('0x53'));return db[_0xd8d0('0x28')][_0xd8d0('0x45')]({'where':{'id':_0x2edc46['params']['id']},'raw':!![]})[_0xd8d0('0x23')](handleEntityNotFound(_0x401588,null))['then'](function(){_0x3116b2[_0xd8d0('0x52')](_0x2edc46[_0xd8d0('0x41')]['id']);})[_0xd8d0('0x23')](respondWithStatusCode(_0x401588,null))['catch'](handleError(_0x401588,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x554e=['request-promise','path','../../config/environment','./schedule.attributes','define','Schedule','lodash','../../config/logger','api','moment'];(function(_0x551d35,_0x1cd1b5){var _0x333fe5=function(_0x461440){while(--_0x461440){_0x551d35['push'](_0x551d35['shift']());}};_0x333fe5(++_0x1cd1b5);}(_0x554e,0x114));var _0xe554=function(_0x4b0eab,_0x4862cb){_0x4b0eab=_0x4b0eab-0x0;var _0x373dd3=_0x554e[_0x4b0eab];return _0x373dd3;};'use strict';var _=require(_0xe554('0x0'));var util=require('util');var logger=require(_0xe554('0x1'))(_0xe554('0x2'));var moment=require(_0xe554('0x3'));var BPromise=require('bluebird');var rp=require(_0xe554('0x4'));var fs=require('fs');var path=require(_0xe554('0x5'));var rimraf=require('rimraf');var config=require(_0xe554('0x6'));var attributes=require(_0xe554('0x7'));module['exports']=function(_0x204904,_0x3a48b6){return _0x204904[_0xe554('0x8')](_0xe554('0x9'),attributes,{'tableName':'tools_schedules','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa33d=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./schedule.attributes','define','Schedule','tools_schedules','util','api'];(function(_0x577069,_0xa1a378){var _0x5c22f2=function(_0xbb41f1){while(--_0xbb41f1){_0x577069['push'](_0x577069['shift']());}};_0x5c22f2(++_0xa1a378);}(_0xa33d,0x76));var _0xda33=function(_0x4b388a,_0x1b2e61){_0x4b388a=_0x4b388a-0x0;var _0x3cd33b=_0xa33d[_0x4b388a];return _0x3cd33b;};'use strict';var _=require('lodash');var util=require(_0xda33('0x0'));var logger=require('../../config/logger')(_0xda33('0x1'));var moment=require(_0xda33('0x2'));var BPromise=require(_0xda33('0x3'));var rp=require(_0xda33('0x4'));var fs=require('fs');var path=require(_0xda33('0x5'));var rimraf=require(_0xda33('0x6'));var config=require(_0xda33('0x7'));var attributes=require(_0xda33('0x8'));module['exports']=function(_0x4c4ef9,_0x1a9546){return _0x4c4ef9[_0xda33('0x9')](_0xda33('0xa'),attributes,{'tableName':_0xda33('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb23e=['error','Schedule,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','jayson/promise','client','http','then','info','request\x20sent','debug','stringify'];(function(_0x50afe6,_0x8820b7){var _0x3f06e2=function(_0x52b214){while(--_0x52b214){_0x50afe6['push'](_0x50afe6['shift']());}};_0x3f06e2(++_0x8820b7);}(_0xb23e,0x12b));var _0xeb23=function(_0x3cc406,_0x34c88a){_0x3cc406=_0x3cc406-0x0;var _0x464ea6=_0xb23e[_0x3cc406];return _0x464ea6;};'use strict';var _=require(_0xeb23('0x0'));var util=require(_0xeb23('0x1'));var moment=require(_0xeb23('0x2'));var BPromise=require(_0xeb23('0x3'));var rs=require(_0xeb23('0x4'));var fs=require('fs');var Redis=require(_0xeb23('0x5'));var db=require(_0xeb23('0x6'))['db'];var utils=require(_0xeb23('0x7'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xeb23('0x8'));var client=jayson[_0xeb23('0x9')][_0xeb23('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x21b6c4,_0x42d5ee,_0x117676){return new BPromise(function(_0x3a9876,_0x141b05){return client['request'](_0x21b6c4,_0x117676)[_0xeb23('0xb')](function(_0xeb6a5d){logger[_0xeb23('0xc')]('Schedule,\x20%s,\x20%s',_0x42d5ee,_0xeb23('0xd'));logger[_0xeb23('0xe')]('Schedule,\x20%s,\x20%s,\x20%s',_0x42d5ee,_0xeb23('0xd'),JSON[_0xeb23('0xf')](_0xeb6a5d));if(_0xeb6a5d[_0xeb23('0x10')]){if(_0xeb6a5d[_0xeb23('0x10')]['code']===0x1f4){logger[_0xeb23('0x10')](_0xeb23('0x11'),_0x42d5ee,_0xeb6a5d[_0xeb23('0x10')][_0xeb23('0x12')]);return _0x141b05(_0xeb6a5d['error'][_0xeb23('0x12')]);}logger[_0xeb23('0x10')]('Schedule,\x20%s,\x20%s',_0x42d5ee,_0xeb6a5d[_0xeb23('0x10')][_0xeb23('0x12')]);return _0x3a9876(_0xeb6a5d[_0xeb23('0x10')][_0xeb23('0x12')]);}else{logger[_0xeb23('0xc')](_0xeb23('0x11'),_0x42d5ee,'request\x20sent');_0x3a9876(_0xeb6a5d[_0xeb23('0x13')]['message']);}})[_0xeb23('0x14')](function(_0x47cc69){logger[_0xeb23('0x10')]('Schedule,\x20%s,\x20%s',_0x42d5ee,_0x47cc69);_0x141b05(_0x47cc69);});});}
\ No newline at end of file
+var _0x3a2f=['Schedule,\x20%s,\x20%s','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','Schedule,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x48f958,_0x5a188e){var _0x4dfe07=function(_0x2603d5){while(--_0x2603d5){_0x48f958['push'](_0x48f958['shift']());}};_0x4dfe07(++_0x5a188e);}(_0x3a2f,0xb2));var _0xf3a2=function(_0x3ae746,_0x5e78c7){_0x3ae746=_0x3ae746-0x0;var _0x199530=_0x3a2f[_0x3ae746];return _0x199530;};'use strict';var _=require(_0xf3a2('0x0'));var util=require(_0xf3a2('0x1'));var moment=require(_0xf3a2('0x2'));var BPromise=require(_0xf3a2('0x3'));var rs=require(_0xf3a2('0x4'));var fs=require('fs');var Redis=require(_0xf3a2('0x5'));var db=require(_0xf3a2('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xf3a2('0x7'))(_0xf3a2('0x8'));var config=require(_0xf3a2('0x9'));var jayson=require(_0xf3a2('0xa'));var client=jayson[_0xf3a2('0xb')][_0xf3a2('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x588c61,_0x22c2d4,_0x2d64d3){return new BPromise(function(_0x5b5ed2,_0x1e5e58){return client[_0xf3a2('0xd')](_0x588c61,_0x2d64d3)[_0xf3a2('0xe')](function(_0x343c94){logger[_0xf3a2('0xf')]('Schedule,\x20%s,\x20%s',_0x22c2d4,_0xf3a2('0x10'));logger[_0xf3a2('0x11')](_0xf3a2('0x12'),_0x22c2d4,_0xf3a2('0x10'),JSON[_0xf3a2('0x13')](_0x343c94));if(_0x343c94['error']){if(_0x343c94[_0xf3a2('0x14')][_0xf3a2('0x15')]===0x1f4){logger[_0xf3a2('0x14')](_0xf3a2('0x16'),_0x22c2d4,_0x343c94[_0xf3a2('0x14')][_0xf3a2('0x17')]);return _0x1e5e58(_0x343c94[_0xf3a2('0x14')][_0xf3a2('0x17')]);}logger[_0xf3a2('0x14')](_0xf3a2('0x16'),_0x22c2d4,_0x343c94[_0xf3a2('0x14')][_0xf3a2('0x17')]);return _0x5b5ed2(_0x343c94[_0xf3a2('0x14')][_0xf3a2('0x17')]);}else{logger[_0xf3a2('0xf')](_0xf3a2('0x16'),_0x22c2d4,'request\x20sent');_0x5b5ed2(_0x343c94[_0xf3a2('0x18')][_0xf3a2('0x17')]);}})['catch'](function(_0xd78981){logger[_0xf3a2('0x14')](_0xf3a2('0x16'),_0x22c2d4,_0xd78981);_0x1e5e58(_0xd78981);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2ce=['Router','fs-extra','../../components/interaction/service','../../config/environment','./screenRecording.controller','isAuthenticated','get','/describe','/:id','show','/:id/download','download','post','create','put','update','delete','destroy','util','path','express'];(function(_0x4d79bc,_0x32c905){var _0x4b4760=function(_0x212302){while(--_0x212302){_0x4d79bc['push'](_0x4d79bc['shift']());}};_0x4b4760(++_0x32c905);}(_0xb2ce,0x1b6));var _0xeb2c=function(_0x23bf3b,_0x1345d8){_0x23bf3b=_0x23bf3b-0x0;var _0x3b1cd4=_0xb2ce[_0x23bf3b];return _0x3b1cd4;};'use strict';var multer=require('multer');var util=require(_0xeb2c('0x0'));var path=require(_0xeb2c('0x1'));var timeout=require('connect-timeout');var express=require(_0xeb2c('0x2'));var router=express[_0xeb2c('0x3')]();var fs_extra=require(_0xeb2c('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0xeb2c('0x5'));var config=require(_0xeb2c('0x6'));var controller=require(_0xeb2c('0x7'));router['get']('/',auth[_0xeb2c('0x8')](),controller['index']);router[_0xeb2c('0x9')](_0xeb2c('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0xeb2c('0x9')](_0xeb2c('0xb'),auth[_0xeb2c('0x8')](),controller[_0xeb2c('0xc')]);router[_0xeb2c('0x9')](_0xeb2c('0xd'),auth['isAuthenticated'](),controller[_0xeb2c('0xe')]);router[_0xeb2c('0xf')]('/',auth[_0xeb2c('0x8')](),controller[_0xeb2c('0x10')]);router[_0xeb2c('0x11')]('/:id',auth[_0xeb2c('0x8')](),controller[_0xeb2c('0x12')]);router[_0xeb2c('0x13')](_0xeb2c('0xb'),auth[_0xeb2c('0x8')](),controller[_0xeb2c('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x7d3c=['multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','index','isAuthenticated','get','/:id','show','create','destroy','exports'];(function(_0x23c02b,_0x411b4d){var _0x25efc5=function(_0x50e9e4){while(--_0x50e9e4){_0x23c02b['push'](_0x23c02b['shift']());}};_0x25efc5(++_0x411b4d);}(_0x7d3c,0xa0));var _0xc7d3=function(_0x5bb998,_0x2da2b1){_0x5bb998=_0x5bb998-0x0;var _0x5bc21a=_0x7d3c[_0x5bb998];return _0x5bc21a;};'use strict';var multer=require(_0xc7d3('0x0'));var util=require('util');var path=require(_0xc7d3('0x1'));var timeout=require(_0xc7d3('0x2'));var express=require(_0xc7d3('0x3'));var router=express[_0xc7d3('0x4')]();var fs_extra=require(_0xc7d3('0x5'));var auth=require(_0xc7d3('0x6'));var interaction=require(_0xc7d3('0x7'));var config=require('../../config/environment');var controller=require('./screenRecording.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xc7d3('0x8')]);router['get']('/describe',auth[_0xc7d3('0x9')](),controller['describe']);router[_0xc7d3('0xa')](_0xc7d3('0xb'),auth[_0xc7d3('0x9')](),controller[_0xc7d3('0xc')]);router[_0xc7d3('0xa')]('/:id/download',auth[_0xc7d3('0x9')](),controller['download']);router['post']('/',auth['isAuthenticated'](),controller[_0xc7d3('0xd')]);router['put'](_0xc7d3('0xb'),auth['isAuthenticated'](),controller['update']);router['delete']('/:id',auth[_0xc7d3('0x9')](),controller[_0xc7d3('0xe')]);module[_0xc7d3('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6dc0=['MM-DD-YYYY\x20HH:mm','updatedAt','sequelize','moment','path','exports','VIRTUAL','getDataValue','value','STRING','replace','setDataValue','startedAt','closedAt','duration','toString','DATE','format'];(function(_0xda2ffb,_0x4eb4e7){var _0x1d38f8=function(_0x2da822){while(--_0x2da822){_0xda2ffb['push'](_0xda2ffb['shift']());}};_0x1d38f8(++_0x4eb4e7);}(_0x6dc0,0xb6));var _0x06dc=function(_0x544946,_0x1e2a3f){_0x544946=_0x544946-0x0;var _0x584c15=_0x6dc0[_0x544946];return _0x584c15;};'use strict';var Sequelize=require(_0x06dc('0x0'));var moment=require(_0x06dc('0x1'));var path=require(_0x06dc('0x2'));var config=require('../../config/environment');module[_0x06dc('0x3')]={'format':{'type':Sequelize[_0x06dc('0x4')],'get':function(){return this[_0x06dc('0x5')](_0x06dc('0x6'))?path['extname'](this[_0x06dc('0x5')](_0x06dc('0x6'))):undefined;}},'interactionid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x06dc('0x7')]},'value':{'type':Sequelize['STRING'],'set':function(_0x419534){var _0x3212ca=_0x419534[_0x06dc('0x8')](/\\/g,'/');this[_0x06dc('0x9')](_0x06dc('0x6'),_0x3212ca);}},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize['INTEGER'],'set':function(_0x480f30){this[_0x06dc('0x9')](_0x06dc('0xa'),moment()['subtract'](_0x480f30,'ms'));this[_0x06dc('0x9')](_0x06dc('0xb'),moment());this[_0x06dc('0x9')](_0x06dc('0xc'),_0x480f30);}},'startedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x06dc('0x5')](_0x06dc('0xa')))['format']('MM-DD-YYYY\x20HH:mm')['toString']();}},'closedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x06dc('0x5')]('closedAt'))['format']('MM-DD-YYYY\x20HH:mm')[_0x06dc('0xd')]();}},'createdAt':{'type':Sequelize[_0x06dc('0xe')],'get':function(){return moment(this[_0x06dc('0x5')]('createdAt'))[_0x06dc('0xf')](_0x06dc('0x10'))[_0x06dc('0xd')]();}},'updatedAt':{'type':Sequelize[_0x06dc('0xe')],'get':function(){return moment(this['getDataValue'](_0x06dc('0x11')))[_0x06dc('0xf')](_0x06dc('0x10'))[_0x06dc('0xd')]();}}};
\ No newline at end of file
+var _0x6257=['INTEGER','subtract','startedAt','DATE','closedAt','format','MM-DD-YYYY\x20HH:mm','toString','createdAt','sequelize','path','VIRTUAL','getDataValue','value','extname','STRING','setDataValue'];(function(_0x46f6d8,_0x2c8754){var _0x32455c=function(_0x129b93){while(--_0x129b93){_0x46f6d8['push'](_0x46f6d8['shift']());}};_0x32455c(++_0x2c8754);}(_0x6257,0x1d4));var _0x7625=function(_0x5e1328,_0x577b3f){_0x5e1328=_0x5e1328-0x0;var _0x2c5ab9=_0x6257[_0x5e1328];return _0x2c5ab9;};'use strict';var Sequelize=require(_0x7625('0x0'));var moment=require('moment');var path=require(_0x7625('0x1'));var config=require('../../config/environment');module['exports']={'format':{'type':Sequelize[_0x7625('0x2')],'get':function(){return this[_0x7625('0x3')](_0x7625('0x4'))?path[_0x7625('0x5')](this[_0x7625('0x3')](_0x7625('0x4'))):undefined;}},'interactionid':{'type':Sequelize[_0x7625('0x6')]},'channel':{'type':Sequelize[_0x7625('0x6')]},'value':{'type':Sequelize[_0x7625('0x6')],'set':function(_0x427050){var _0x5cf7a8=_0x427050['replace'](/\\/g,'/');this[_0x7625('0x7')](_0x7625('0x4'),_0x5cf7a8);}},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0x7625('0x8')],'set':function(_0x2a2625){this[_0x7625('0x7')]('startedAt',moment()[_0x7625('0x9')](_0x2a2625,'ms'));this[_0x7625('0x7')]('closedAt',moment());this[_0x7625('0x7')]('duration',_0x2a2625);}},'startedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this['getDataValue'](_0x7625('0xa')))['format']('MM-DD-YYYY\x20HH:mm')['toString']();}},'closedAt':{'type':Sequelize[_0x7625('0xb')],'get':function(){return moment(this[_0x7625('0x3')](_0x7625('0xc')))[_0x7625('0xd')](_0x7625('0xe'))[_0x7625('0xf')]();}},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this['getDataValue'](_0x7625('0x10')))['format'](_0x7625('0xe'))[_0x7625('0xf')]();}},'updatedAt':{'type':Sequelize[_0x7625('0xb')],'get':function(){return moment(this['getDataValue']('updatedAt'))[_0x7625('0xd')](_0x7625('0xe'))[_0x7625('0xf')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x00bb=['json','undefined','limit','offset','apply','reject','update','destroy','end','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','differenceBy','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','ScreenRecording','count','then','includeAll','include','rows','catch','show','params','length','options','find','body','createdAt','closedAt','value','describe','download','uniqueid','join','root','format','%s.cypher','existsSync','decryptFile','secrets','recording','server/files/screen_recordings','Sequelize','ScreenRecording\x20not\x20found','filename','unlink','message','Not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','File:\x20\x22','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../mysqldb','sendStatus','status'];(function(_0x23cc8b,_0x432376){var _0x1dad5b=function(_0x103533){while(--_0x103533){_0x23cc8b['push'](_0x23cc8b['shift']());}};_0x1dad5b(++_0x432376);}(_0x00bb,0x1d8));var _0xb00b=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0x00bb[_0x491a7f];return _0x3d8f44;};'use strict';var emlformat=require(_0xb00b('0x0'));var rimraf=require(_0xb00b('0x1'));var zipdir=require(_0xb00b('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb00b('0x3'));var moment=require('moment');var BPromise=require(_0xb00b('0x4'));var Mustache=require(_0xb00b('0x5'));var util=require('util');var path=require(_0xb00b('0x6'));var sox=require(_0xb00b('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb00b('0x8'));var squel=require(_0xb00b('0x9'));var crypto=require(_0xb00b('0xa'));var jsforce=require(_0xb00b('0xb'));var deskjs=require(_0xb00b('0xc'));var toCsv=require(_0xb00b('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xb00b('0xe'));var authService=require(_0xb00b('0xf'));var qs=require(_0xb00b('0x10'));var as=require(_0xb00b('0x11'));var hardwareService=require(_0xb00b('0x12'));var logger=require('../../config/logger')(_0xb00b('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb00b('0x14'))['db'];function respondWithStatusCode(_0x2d8ddf,_0x1be8aa){_0x1be8aa=_0x1be8aa||0xcc;return function(_0x466b9b){if(_0x466b9b){return _0x2d8ddf[_0xb00b('0x15')](_0x1be8aa);}return _0x2d8ddf[_0xb00b('0x16')](_0x1be8aa)['end']();};}function respondWithResult(_0x218de2,_0xb0d42e){_0xb0d42e=_0xb0d42e||0xc8;return function(_0x482fe6){if(_0x482fe6){return _0x218de2[_0xb00b('0x16')](_0xb0d42e)[_0xb00b('0x17')](_0x482fe6);}};}function respondWithFilteredResult(_0x540b79,_0x5da36b){return function(_0x9b471e){if(_0x9b471e){var _0x4dcd45=typeof _0x5da36b['offset']===_0xb00b('0x18')&&typeof _0x5da36b[_0xb00b('0x19')]===_0xb00b('0x18');var _0xbb72fc=_0x9b471e['count'];var _0x2a7231=_0x4dcd45?0x0:_0x5da36b['offset'];var _0x415f91=_0x4dcd45?_0x9b471e['count']:_0x5da36b[_0xb00b('0x1a')]+_0x5da36b['limit'];var _0xb26ebb;if(_0x415f91>=_0xbb72fc){_0x415f91=_0xbb72fc;_0xb26ebb=0xc8;}else{_0xb26ebb=0xce;}_0x540b79[_0xb00b('0x16')](_0xb26ebb);return _0x540b79['set']('Content-Range',_0x2a7231+'-'+_0x415f91+'/'+_0xbb72fc)[_0xb00b('0x17')](_0x9b471e);}return null;};}function patchUpdates(_0x4a334b){return function(_0x1344c4){try{jsonpatch[_0xb00b('0x1b')](_0x1344c4,_0x4a334b,!![]);}catch(_0x2fe48d){return BPromise[_0xb00b('0x1c')](_0x2fe48d);}return _0x1344c4['save']();};}function saveUpdates(_0x362ee0,_0x4df284){return function(_0x25a973){if(_0x25a973){return _0x25a973[_0xb00b('0x1d')](_0x362ee0)['then'](function(_0x231293){return _0x231293;});}return null;};}function removeEntity(_0x2896d1,_0x520444){return function(_0x3ab3cc){if(_0x3ab3cc){return _0x3ab3cc[_0xb00b('0x1e')]()['then'](function(){_0x2896d1[_0xb00b('0x16')](0xcc)[_0xb00b('0x1f')]();});}};}function handleEntityNotFound(_0x3c9500,_0x8caadf){return function(_0x520e55){if(!_0x520e55){_0x3c9500['sendStatus'](0x194);}return _0x520e55;};}function handleError(_0x3785e9,_0x490380){_0x490380=_0x490380||0x1f4;return function(_0x550587){logger['error'](_0x550587[_0xb00b('0x20')]);if(_0x550587[_0xb00b('0x21')]){delete _0x550587[_0xb00b('0x21')];}_0x3785e9[_0xb00b('0x16')](_0x490380)[_0xb00b('0x22')](_0x550587);};}exports[_0xb00b('0x23')]=function(_0x15d3b9,_0x4a8d2b){var _0x22c22d={},_0x503c9c={},_0x450129={'count':0x0,'rows':[]};var _0x348165=_[_0xb00b('0x24')](db['ScreenRecording'][_0xb00b('0x25')],function(_0x280ed3){return{'name':_0x280ed3[_0xb00b('0x26')],'type':_0x280ed3[_0xb00b('0x27')][_0xb00b('0x28')]};});_0x503c9c[_0xb00b('0x29')]=_[_0xb00b('0x2a')](_[_0xb00b('0x24')](_0x348165,_0xb00b('0x21')),['format']);_0x503c9c[_0xb00b('0x2b')]=_[_0xb00b('0x2c')](_0x15d3b9['query']);_0x503c9c[_0xb00b('0x2d')]=_[_0xb00b('0x2e')](_0x503c9c['model'],_0x503c9c[_0xb00b('0x2b')]);_0x22c22d['attributes']=_[_0xb00b('0x2e')](_0x503c9c[_0xb00b('0x29')],qs[_0xb00b('0x2f')](_0x15d3b9[_0xb00b('0x2b')][_0xb00b('0x2f')]));_0x22c22d[_0xb00b('0x30')]=_0x22c22d[_0xb00b('0x30')]['length']?_0x22c22d['attributes']:_0x503c9c['model'];if(!_0x15d3b9[_0xb00b('0x2b')][_0xb00b('0x31')](_0xb00b('0x32'))){_0x22c22d[_0xb00b('0x19')]=qs['limit'](_0x15d3b9[_0xb00b('0x2b')][_0xb00b('0x19')]);_0x22c22d[_0xb00b('0x1a')]=qs[_0xb00b('0x1a')](_0x15d3b9[_0xb00b('0x2b')][_0xb00b('0x1a')]);}_0x22c22d[_0xb00b('0x33')]=qs[_0xb00b('0x34')](_0x15d3b9['query']['sort']);_0x22c22d[_0xb00b('0x35')]=qs['filters'](_[_0xb00b('0x36')](_0x15d3b9[_0xb00b('0x2b')],_0x503c9c[_0xb00b('0x2d')]),_0x348165);if(_0x15d3b9[_0xb00b('0x2b')][_0xb00b('0x37')]){_0x22c22d[_0xb00b('0x35')]=_[_0xb00b('0x38')](_0x22c22d['where'],{'$or':_[_0xb00b('0x24')](_0x348165,function(_0x25578e){if(_0x25578e[_0xb00b('0x27')]!==_0xb00b('0x39')){var _0x2496e2={};_0x2496e2[_0x25578e[_0xb00b('0x21')]]={'$like':'%'+_0x15d3b9['query'][_0xb00b('0x37')]+'%'};return _0x2496e2;}})});}_0x22c22d=_[_0xb00b('0x38')]({},_0x22c22d,_0x15d3b9['options']);var _0x17ff34={'where':_0x22c22d[_0xb00b('0x35')]};return db[_0xb00b('0x3a')][_0xb00b('0x3b')](_0x17ff34)[_0xb00b('0x3c')](function(_0x5636b1){_0x450129[_0xb00b('0x3b')]=_0x5636b1;if(_0x15d3b9[_0xb00b('0x2b')][_0xb00b('0x3d')]){_0x22c22d[_0xb00b('0x3e')]=[{'all':!![]}];}return db['ScreenRecording']['findAll'](_0x22c22d);})[_0xb00b('0x3c')](function(_0xf6ae0c){_0x450129[_0xb00b('0x3f')]=_0xf6ae0c;return _0x450129;})[_0xb00b('0x3c')](respondWithFilteredResult(_0x4a8d2b,_0x22c22d))[_0xb00b('0x40')](handleError(_0x4a8d2b,null));};exports[_0xb00b('0x41')]=function(_0x275664,_0x493841){var _0x36200d={'raw':![],'where':{'id':_0x275664[_0xb00b('0x42')]['id']}},_0x3b72c4={};_0x3b72c4[_0xb00b('0x29')]=_[_0xb00b('0x2c')](db[_0xb00b('0x3a')][_0xb00b('0x25')]);_0x3b72c4[_0xb00b('0x2b')]=_[_0xb00b('0x2c')](_0x275664[_0xb00b('0x2b')]);_0x3b72c4[_0xb00b('0x2d')]=_[_0xb00b('0x2e')](_0x3b72c4['model'],_0x3b72c4[_0xb00b('0x2b')]);_0x36200d[_0xb00b('0x30')]=_[_0xb00b('0x2e')](_0x3b72c4[_0xb00b('0x29')],qs[_0xb00b('0x2f')](_0x275664[_0xb00b('0x2b')][_0xb00b('0x2f')]));_0x36200d[_0xb00b('0x30')]=_0x36200d[_0xb00b('0x30')][_0xb00b('0x43')]?_0x36200d[_0xb00b('0x30')]:_0x3b72c4[_0xb00b('0x29')];if(_0x275664['query']['includeAll']){_0x36200d['include']=[{'all':!![]}];}_0x36200d=_[_0xb00b('0x38')]({},_0x36200d,_0x275664[_0xb00b('0x44')]);return db['ScreenRecording'][_0xb00b('0x45')](_0x36200d)[_0xb00b('0x3c')](handleEntityNotFound(_0x493841,null))[_0xb00b('0x3c')](respondWithResult(_0x493841,null))[_0xb00b('0x40')](handleError(_0x493841,null));};exports['create']=function(_0x58e9cb,_0x172729){return db[_0xb00b('0x3a')]['create'](_0x58e9cb['body'],{})[_0xb00b('0x3c')](respondWithResult(_0x172729,0xc9))[_0xb00b('0x40')](handleError(_0x172729,null));};exports['update']=function(_0x2228e9,_0x47a814){if(_0x2228e9['body']['id']){delete _0x2228e9['body']['id'];}delete _0x2228e9[_0xb00b('0x46')]['duration'];delete _0x2228e9[_0xb00b('0x46')][_0xb00b('0x47')];delete _0x2228e9[_0xb00b('0x46')][_0xb00b('0x48')];delete _0x2228e9[_0xb00b('0x46')][_0xb00b('0x49')];return db['ScreenRecording']['find']({'where':{'id':_0x2228e9[_0xb00b('0x42')]['id']}})[_0xb00b('0x3c')](handleEntityNotFound(_0x47a814,null))['then'](saveUpdates(_0x2228e9[_0xb00b('0x46')],null))[_0xb00b('0x3c')](respondWithResult(_0x47a814,null))['catch'](handleError(_0x47a814,null));};exports[_0xb00b('0x4a')]=function(_0x10e066,_0x3b5d82){return db['ScreenRecording']['describe']()[_0xb00b('0x3c')](respondWithResult(_0x3b5d82,null))[_0xb00b('0x40')](handleError(_0x3b5d82,null));};exports[_0xb00b('0x4b')]=function(_0xde3cc1,_0x489b49,_0x380acb){var _0x3f31e5=require('../../components/encryptor');var _0x4cd9fd=![];var _0x160965={};if(_0xde3cc1['query'][_0xb00b('0x27')]&&_0xde3cc1[_0xb00b('0x2b')][_0xb00b('0x27')]===_0xb00b('0x4c')){_0x160965[_0xb00b('0x4c')]=_0xde3cc1[_0xb00b('0x42')]['id'];}else{_0x160965['id']=_0xde3cc1['params']['id'];}return db[_0xb00b('0x3a')]['find']({'where':_0x160965,'attributes':['id',_0xb00b('0x49')],'raw':!![]})[_0xb00b('0x3c')](handleEntityNotFound(_0x489b49,null))[_0xb00b('0x3c')](function(_0x5ac79e){if(_0x5ac79e){var _0x248335=path[_0xb00b('0x4d')](config[_0xb00b('0x4e')],'server/files/screen_recordings',_0x5ac79e[_0xb00b('0x49')]);var _0x309ae6=util[_0xb00b('0x4f')](_0xb00b('0x50'),_0x248335);if(fs[_0xb00b('0x51')](_0x309ae6)){_0x4cd9fd=!![];return _0x3f31e5[_0xb00b('0x52')](_0x309ae6,_0x248335,config[_0xb00b('0x53')][_0xb00b('0x54')])['then'](function(){return _0x5ac79e;});}return _0x5ac79e;}})[_0xb00b('0x3c')](function(_0x2cbe80){if(_0x2cbe80){var _0x1b4860=path['join'](config[_0xb00b('0x4e')],_0xb00b('0x55'),_0x2cbe80[_0xb00b('0x49')]);if(!fs[_0xb00b('0x51')](_0x1b4860)){throw new db[(_0xb00b('0x56'))]['ValidationError'](_0xb00b('0x57'));}if(_0x2cbe80[_0xb00b('0x58')]){return _0x489b49[_0xb00b('0x4b')](_0x1b4860,_0x2cbe80[_0xb00b('0x58')]+path['extname'](_0x1b4860),function(){if(_0x4cd9fd){fs[_0xb00b('0x59')](_0x1b4860);}});}else{return _0x489b49[_0xb00b('0x4b')](_0x1b4860,function(_0x2c93db){if(_0x4cd9fd){fs[_0xb00b('0x59')](_0x1b4860);}});}}})[_0xb00b('0x40')](function(_0x1e5ed8){if(_0x1e5ed8[_0xb00b('0x5a')]==='ScreenRecording\x20not\x20found'){_0x489b49[_0xb00b('0x16')](0x194)['send'](_0xb00b('0x5b'));}else{return handleError(_0x489b49,null);}});};exports['destroy']=function(_0x3b3272,_0x530d4a){return db[_0xb00b('0x3a')]['find']({'where':{'id':_0x3b3272[_0xb00b('0x42')]['id']}})[_0xb00b('0x3c')](function(_0x3bae02){if(_['isNil'](_0x3bae02)){throw new ReferenceError('Entity\x20not\x20found');}return _0x3bae02;})['then'](function(_0x21a53d){var _0x3126be=path[_0xb00b('0x4d')](config['root'],_0xb00b('0x55'),_0x21a53d[_0xb00b('0x49')]);logger[_0xb00b('0x5c')](_0xb00b('0x5d'),_0x3126be);if(!_[_0xb00b('0x5e')](_0x21a53d['value'])&&fs[_0xb00b('0x51')](_0x3126be)){logger[_0xb00b('0x5c')]('File:\x20\x22'+_0x3126be+_0xb00b('0x5f'));fs[_0xb00b('0x60')](_0x3126be);}_0x3126be=_0x3126be+_0xb00b('0x61');if(!_['isNil'](_0x21a53d['value'])&&fs[_0xb00b('0x51')](_0x3126be)){logger[_0xb00b('0x5c')](_0xb00b('0x62')+_0x3126be+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x3126be);}return _0x21a53d;})['then'](function(_0x5e9677){if(!_0x5e9677)throw new InternalError();return _0x5e9677[_0xb00b('0x1e')]();})['then'](function(){_0x530d4a[_0xb00b('0x16')](0xcc)[_0xb00b('0x1f')]();})['catch'](handleError(_0x530d4a,null));};
\ No newline at end of file
+var _0xdbf5=['papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/license/util','sendStatus','status','json','offset','undefined','count','set','Content-Range','save','update','then','destroy','end','error','stack','name','send','index','map','ScreenRecording','rawAttributes','fieldName','type','key','model','format','query','keys','intersection','fields','attributes','length','nolimit','limit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','duration','createdAt','closedAt','value','describe','download','uniqueid','join','root','server/files/screen_recordings','decryptFile','secrets','recording','existsSync','ValidationError','ScreenRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring'];(function(_0x4fbfd9,_0x3ab91a){var _0x31dc94=function(_0x11e53b){while(--_0x11e53b){_0x4fbfd9['push'](_0x4fbfd9['shift']());}};_0x31dc94(++_0x3ab91a);}(_0xdbf5,0x18c));var _0x5dbf=function(_0x2e6552,_0x45ade9){_0x2e6552=_0x2e6552-0x0;var _0x370c3a=_0xdbf5[_0x2e6552];return _0x370c3a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5dbf('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5dbf('0x1'));var moment=require(_0x5dbf('0x2'));var BPromise=require(_0x5dbf('0x3'));var Mustache=require(_0x5dbf('0x4'));var util=require(_0x5dbf('0x5'));var path=require(_0x5dbf('0x6'));var sox=require(_0x5dbf('0x7'));var csv=require(_0x5dbf('0x8'));var ejs=require(_0x5dbf('0x9'));var fs=require('fs');var fs_extra=require(_0x5dbf('0xa'));var _=require(_0x5dbf('0xb'));var squel=require(_0x5dbf('0xc'));var crypto=require(_0x5dbf('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x5dbf('0xe'));var toCsv=require('to-csv');var querystring=require(_0x5dbf('0xf'));var Papa=require(_0x5dbf('0x10'));var Redis=require(_0x5dbf('0x11'));var authService=require(_0x5dbf('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5dbf('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x5dbf('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x5dbf('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x182cec,_0x2bb7ed){_0x2bb7ed=_0x2bb7ed||0xcc;return function(_0x1453a9){if(_0x1453a9){return _0x182cec[_0x5dbf('0x16')](_0x2bb7ed);}return _0x182cec[_0x5dbf('0x17')](_0x2bb7ed)['end']();};}function respondWithResult(_0x4803ca,_0x2b4e1c){_0x2b4e1c=_0x2b4e1c||0xc8;return function(_0x3480c8){if(_0x3480c8){return _0x4803ca['status'](_0x2b4e1c)[_0x5dbf('0x18')](_0x3480c8);}};}function respondWithFilteredResult(_0x248e3c,_0x23f763){return function(_0x2dfa44){if(_0x2dfa44){var _0x181816=typeof _0x23f763[_0x5dbf('0x19')]===_0x5dbf('0x1a')&&typeof _0x23f763['limit']==='undefined';var _0x16dc82=_0x2dfa44[_0x5dbf('0x1b')];var _0x39c7aa=_0x181816?0x0:_0x23f763[_0x5dbf('0x19')];var _0x20c2b0=_0x181816?_0x2dfa44['count']:_0x23f763[_0x5dbf('0x19')]+_0x23f763['limit'];var _0x565efa;if(_0x20c2b0>=_0x16dc82){_0x20c2b0=_0x16dc82;_0x565efa=0xc8;}else{_0x565efa=0xce;}_0x248e3c['status'](_0x565efa);return _0x248e3c[_0x5dbf('0x1c')](_0x5dbf('0x1d'),_0x39c7aa+'-'+_0x20c2b0+'/'+_0x16dc82)[_0x5dbf('0x18')](_0x2dfa44);}return null;};}function patchUpdates(_0x2ab57c){return function(_0x1e3cce){try{jsonpatch['apply'](_0x1e3cce,_0x2ab57c,!![]);}catch(_0x2764ea){return BPromise['reject'](_0x2764ea);}return _0x1e3cce[_0x5dbf('0x1e')]();};}function saveUpdates(_0x11cc67,_0x14d133){return function(_0x43a612){if(_0x43a612){return _0x43a612[_0x5dbf('0x1f')](_0x11cc67)[_0x5dbf('0x20')](function(_0x58085e){return _0x58085e;});}return null;};}function removeEntity(_0x4027c3,_0x3e3a2d){return function(_0x2d3e1b){if(_0x2d3e1b){return _0x2d3e1b[_0x5dbf('0x21')]()[_0x5dbf('0x20')](function(){_0x4027c3[_0x5dbf('0x17')](0xcc)[_0x5dbf('0x22')]();});}};}function handleEntityNotFound(_0x20ab1b,_0x42f13b){return function(_0x15a790){if(!_0x15a790){_0x20ab1b[_0x5dbf('0x16')](0x194);}return _0x15a790;};}function handleError(_0x232c77,_0x3f9e60){_0x3f9e60=_0x3f9e60||0x1f4;return function(_0x407741){logger[_0x5dbf('0x23')](_0x407741[_0x5dbf('0x24')]);if(_0x407741[_0x5dbf('0x25')]){delete _0x407741[_0x5dbf('0x25')];}_0x232c77[_0x5dbf('0x17')](_0x3f9e60)[_0x5dbf('0x26')](_0x407741);};}exports[_0x5dbf('0x27')]=function(_0x471027,_0x21cd00){var _0x5768b7={},_0x2f71eb={},_0x24dc99={'count':0x0,'rows':[]};var _0xc4748=_[_0x5dbf('0x28')](db[_0x5dbf('0x29')][_0x5dbf('0x2a')],function(_0x2a65c5){return{'name':_0x2a65c5[_0x5dbf('0x2b')],'type':_0x2a65c5[_0x5dbf('0x2c')][_0x5dbf('0x2d')]};});_0x2f71eb[_0x5dbf('0x2e')]=_['differenceBy'](_['map'](_0xc4748,_0x5dbf('0x25')),[_0x5dbf('0x2f')]);_0x2f71eb[_0x5dbf('0x30')]=_[_0x5dbf('0x31')](_0x471027[_0x5dbf('0x30')]);_0x2f71eb['filters']=_['intersection'](_0x2f71eb[_0x5dbf('0x2e')],_0x2f71eb[_0x5dbf('0x30')]);_0x5768b7['attributes']=_[_0x5dbf('0x32')](_0x2f71eb[_0x5dbf('0x2e')],qs[_0x5dbf('0x33')](_0x471027[_0x5dbf('0x30')][_0x5dbf('0x33')]));_0x5768b7['attributes']=_0x5768b7[_0x5dbf('0x34')][_0x5dbf('0x35')]?_0x5768b7[_0x5dbf('0x34')]:_0x2f71eb[_0x5dbf('0x2e')];if(!_0x471027[_0x5dbf('0x30')]['hasOwnProperty'](_0x5dbf('0x36'))){_0x5768b7[_0x5dbf('0x37')]=qs[_0x5dbf('0x37')](_0x471027[_0x5dbf('0x30')]['limit']);_0x5768b7[_0x5dbf('0x19')]=qs[_0x5dbf('0x19')](_0x471027[_0x5dbf('0x30')][_0x5dbf('0x19')]);}_0x5768b7[_0x5dbf('0x38')]=qs[_0x5dbf('0x39')](_0x471027[_0x5dbf('0x30')][_0x5dbf('0x39')]);_0x5768b7[_0x5dbf('0x3a')]=qs[_0x5dbf('0x3b')](_[_0x5dbf('0x3c')](_0x471027['query'],_0x2f71eb[_0x5dbf('0x3b')]),_0xc4748);if(_0x471027[_0x5dbf('0x30')][_0x5dbf('0x3d')]){_0x5768b7['where']=_[_0x5dbf('0x3e')](_0x5768b7[_0x5dbf('0x3a')],{'$or':_[_0x5dbf('0x28')](_0xc4748,function(_0x5b3738){if(_0x5b3738[_0x5dbf('0x2c')]!==_0x5dbf('0x3f')){var _0x9bd4c0={};_0x9bd4c0[_0x5b3738['name']]={'$like':'%'+_0x471027[_0x5dbf('0x30')][_0x5dbf('0x3d')]+'%'};return _0x9bd4c0;}})});}_0x5768b7=_[_0x5dbf('0x3e')]({},_0x5768b7,_0x471027[_0x5dbf('0x40')]);var _0x10537d={'where':_0x5768b7[_0x5dbf('0x3a')]};return db[_0x5dbf('0x29')][_0x5dbf('0x1b')](_0x10537d)['then'](function(_0x5be96b){_0x24dc99['count']=_0x5be96b;if(_0x471027['query'][_0x5dbf('0x41')]){_0x5768b7[_0x5dbf('0x42')]=[{'all':!![]}];}return db['ScreenRecording'][_0x5dbf('0x43')](_0x5768b7);})[_0x5dbf('0x20')](function(_0x5a60e8){_0x24dc99[_0x5dbf('0x44')]=_0x5a60e8;return _0x24dc99;})[_0x5dbf('0x20')](respondWithFilteredResult(_0x21cd00,_0x5768b7))[_0x5dbf('0x45')](handleError(_0x21cd00,null));};exports[_0x5dbf('0x46')]=function(_0x21ae10,_0x7c390d){var _0x2745df={'raw':![],'where':{'id':_0x21ae10[_0x5dbf('0x47')]['id']}},_0x1c020a={};_0x1c020a[_0x5dbf('0x2e')]=_['keys'](db[_0x5dbf('0x29')][_0x5dbf('0x2a')]);_0x1c020a[_0x5dbf('0x30')]=_['keys'](_0x21ae10[_0x5dbf('0x30')]);_0x1c020a[_0x5dbf('0x3b')]=_[_0x5dbf('0x32')](_0x1c020a[_0x5dbf('0x2e')],_0x1c020a['query']);_0x2745df[_0x5dbf('0x34')]=_['intersection'](_0x1c020a[_0x5dbf('0x2e')],qs[_0x5dbf('0x33')](_0x21ae10[_0x5dbf('0x30')][_0x5dbf('0x33')]));_0x2745df['attributes']=_0x2745df['attributes'][_0x5dbf('0x35')]?_0x2745df[_0x5dbf('0x34')]:_0x1c020a[_0x5dbf('0x2e')];if(_0x21ae10['query'][_0x5dbf('0x41')]){_0x2745df['include']=[{'all':!![]}];}_0x2745df=_['merge']({},_0x2745df,_0x21ae10['options']);return db['ScreenRecording'][_0x5dbf('0x48')](_0x2745df)[_0x5dbf('0x20')](handleEntityNotFound(_0x7c390d,null))['then'](respondWithResult(_0x7c390d,null))[_0x5dbf('0x45')](handleError(_0x7c390d,null));};exports[_0x5dbf('0x49')]=function(_0x4b6f30,_0x366102){return db[_0x5dbf('0x29')]['create'](_0x4b6f30[_0x5dbf('0x4a')],{})['then'](respondWithResult(_0x366102,0xc9))['catch'](handleError(_0x366102,null));};exports[_0x5dbf('0x1f')]=function(_0x2a3d30,_0x17a1c0){if(_0x2a3d30['body']['id']){delete _0x2a3d30['body']['id'];}delete _0x2a3d30[_0x5dbf('0x4a')][_0x5dbf('0x4b')];delete _0x2a3d30[_0x5dbf('0x4a')][_0x5dbf('0x4c')];delete _0x2a3d30[_0x5dbf('0x4a')][_0x5dbf('0x4d')];delete _0x2a3d30[_0x5dbf('0x4a')][_0x5dbf('0x4e')];return db['ScreenRecording'][_0x5dbf('0x48')]({'where':{'id':_0x2a3d30[_0x5dbf('0x47')]['id']}})[_0x5dbf('0x20')](handleEntityNotFound(_0x17a1c0,null))[_0x5dbf('0x20')](saveUpdates(_0x2a3d30[_0x5dbf('0x4a')],null))[_0x5dbf('0x20')](respondWithResult(_0x17a1c0,null))[_0x5dbf('0x45')](handleError(_0x17a1c0,null));};exports['describe']=function(_0x1b0b13,_0x54f401){return db[_0x5dbf('0x29')][_0x5dbf('0x4f')]()[_0x5dbf('0x20')](respondWithResult(_0x54f401,null))[_0x5dbf('0x45')](handleError(_0x54f401,null));};exports[_0x5dbf('0x50')]=function(_0x1f165d,_0x353d0f,_0x48403a){var _0x5c3c0d=require('../../components/encryptor');var _0x1e1876=![];var _0xfdacc7={};if(_0x1f165d[_0x5dbf('0x30')]['type']&&_0x1f165d['query'][_0x5dbf('0x2c')]===_0x5dbf('0x51')){_0xfdacc7[_0x5dbf('0x51')]=_0x1f165d['params']['id'];}else{_0xfdacc7['id']=_0x1f165d[_0x5dbf('0x47')]['id'];}return db['ScreenRecording'][_0x5dbf('0x48')]({'where':_0xfdacc7,'attributes':['id',_0x5dbf('0x4e')],'raw':!![]})[_0x5dbf('0x20')](handleEntityNotFound(_0x353d0f,null))['then'](function(_0x55fd51){if(_0x55fd51){var _0x1b316d=path[_0x5dbf('0x52')](config[_0x5dbf('0x53')],_0x5dbf('0x54'),_0x55fd51['value']);var _0xfcc43c=util[_0x5dbf('0x2f')]('%s.cypher',_0x1b316d);if(fs['existsSync'](_0xfcc43c)){_0x1e1876=!![];return _0x5c3c0d[_0x5dbf('0x55')](_0xfcc43c,_0x1b316d,config[_0x5dbf('0x56')][_0x5dbf('0x57')])[_0x5dbf('0x20')](function(){return _0x55fd51;});}return _0x55fd51;}})[_0x5dbf('0x20')](function(_0x4711d5){if(_0x4711d5){var _0x50a029=path[_0x5dbf('0x52')](config['root'],'server/files/screen_recordings',_0x4711d5['value']);if(!fs[_0x5dbf('0x58')](_0x50a029)){throw new db['Sequelize'][(_0x5dbf('0x59'))](_0x5dbf('0x5a'));}if(_0x4711d5[_0x5dbf('0x5b')]){return _0x353d0f[_0x5dbf('0x50')](_0x50a029,_0x4711d5[_0x5dbf('0x5b')]+path[_0x5dbf('0x5c')](_0x50a029),function(){if(_0x1e1876){fs[_0x5dbf('0x5d')](_0x50a029);}});}else{return _0x353d0f[_0x5dbf('0x50')](_0x50a029,function(_0x2c84d6){if(_0x1e1876){fs[_0x5dbf('0x5d')](_0x50a029);}});}}})[_0x5dbf('0x45')](function(_0x2ca889){if(_0x2ca889[_0x5dbf('0x5e')]===_0x5dbf('0x5a')){_0x353d0f[_0x5dbf('0x17')](0x194)['send'](_0x5dbf('0x5f'));}else{return handleError(_0x353d0f,null);}});};exports['destroy']=function(_0xb0a9bf,_0xfc5817){return db[_0x5dbf('0x29')][_0x5dbf('0x48')]({'where':{'id':_0xb0a9bf['params']['id']}})[_0x5dbf('0x20')](function(_0x1ade34){if(_[_0x5dbf('0x60')](_0x1ade34)){throw new ReferenceError(_0x5dbf('0x61'));}return _0x1ade34;})[_0x5dbf('0x20')](function(_0x40982f){var _0x52efd7=path[_0x5dbf('0x52')](config[_0x5dbf('0x53')],_0x5dbf('0x54'),_0x40982f[_0x5dbf('0x4e')]);logger[_0x5dbf('0x62')](_0x5dbf('0x63'),_0x52efd7);if(!_[_0x5dbf('0x60')](_0x40982f[_0x5dbf('0x4e')])&&fs[_0x5dbf('0x58')](_0x52efd7)){logger[_0x5dbf('0x62')](_0x5dbf('0x64')+_0x52efd7+_0x5dbf('0x65'));fs['unlinkSync'](_0x52efd7);}_0x52efd7=_0x52efd7+'.cypher';if(!_[_0x5dbf('0x60')](_0x40982f[_0x5dbf('0x4e')])&&fs[_0x5dbf('0x58')](_0x52efd7)){logger[_0x5dbf('0x62')](_0x5dbf('0x64')+_0x52efd7+_0x5dbf('0x65'));fs[_0x5dbf('0x66')](_0x52efd7);}return _0x40982f;})[_0x5dbf('0x20')](function(_0x3a4001){if(!_0x3a4001)throw new InternalError();return _0x3a4001['destroy']();})['then'](function(){_0xfc5817['status'](0xcc)['end']();})[_0x5dbf('0x45')](handleError(_0xfc5817,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf9d0=['moment','bluebird','request-promise','path','./screenRecording.attributes','exports','define','ScreenRecording','screen_recordings','interactionid','lodash','util','api'];(function(_0x14c307,_0x6e6d0d){var _0x5269ae=function(_0x8bcaae){while(--_0x8bcaae){_0x14c307['push'](_0x14c307['shift']());}};_0x5269ae(++_0x6e6d0d);}(_0xf9d0,0x128));var _0x0f9d=function(_0x19e395,_0x1099e8){_0x19e395=_0x19e395-0x0;var _0x5076e7=_0xf9d0[_0x19e395];return _0x5076e7;};'use strict';var _=require(_0x0f9d('0x0'));var util=require(_0x0f9d('0x1'));var logger=require('../../config/logger')(_0x0f9d('0x2'));var moment=require(_0x0f9d('0x3'));var BPromise=require(_0x0f9d('0x4'));var rp=require(_0x0f9d('0x5'));var fs=require('fs');var path=require(_0x0f9d('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x0f9d('0x7'));module[_0x0f9d('0x8')]=function(_0xb312de,_0x3011bf){return _0xb312de[_0x0f9d('0x9')](_0x0f9d('0xa'),attributes,{'tableName':_0x0f9d('0xb'),'paranoid':![],'indexes':[{'name':_0x0f9d('0xc'),'fields':['interactionid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa8da=['../../config/environment','./screenRecording.attributes','screen_recordings','interactionid','lodash','util','api','bluebird','path','rimraf'];(function(_0x4d8ed9,_0x2ae284){var _0x1e2140=function(_0x9cca89){while(--_0x9cca89){_0x4d8ed9['push'](_0x4d8ed9['shift']());}};_0x1e2140(++_0x2ae284);}(_0xa8da,0x14e));var _0xaa8d=function(_0x5cf944,_0x2910da){_0x5cf944=_0x5cf944-0x0;var _0x35d292=_0xa8da[_0x5cf944];return _0x35d292;};'use strict';var _=require(_0xaa8d('0x0'));var util=require(_0xaa8d('0x1'));var logger=require('../../config/logger')(_0xaa8d('0x2'));var moment=require('moment');var BPromise=require(_0xaa8d('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xaa8d('0x4'));var rimraf=require(_0xaa8d('0x5'));var config=require(_0xaa8d('0x6'));var attributes=require(_0xaa8d('0x7'));module['exports']=function(_0x523788,_0xd22aec){return _0x523788['define']('ScreenRecording',attributes,{'tableName':_0xaa8d('0x8'),'paranoid':![],'indexes':[{'name':_0xaa8d('0x9'),'fields':['interactionid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0f1=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','ScreenRecording,\x20%s,\x20%s','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb'];(function(_0x12d773,_0x253abd){var _0x152e37=function(_0x51b1f2){while(--_0x51b1f2){_0x12d773['push'](_0x12d773['shift']());}};_0x152e37(++_0x253abd);}(_0xf0f1,0x10d));var _0x1f0f=function(_0x545bed,_0x221e96){_0x545bed=_0x545bed-0x0;var _0x16c79c=_0xf0f1[_0x545bed];return _0x16c79c;};'use strict';var _=require(_0x1f0f('0x0'));var util=require(_0x1f0f('0x1'));var moment=require(_0x1f0f('0x2'));var BPromise=require('bluebird');var rs=require(_0x1f0f('0x3'));var fs=require('fs');var Redis=require(_0x1f0f('0x4'));var db=require(_0x1f0f('0x5'))['db'];var utils=require(_0x1f0f('0x6'));var logger=require(_0x1f0f('0x7'))(_0x1f0f('0x8'));var config=require(_0x1f0f('0x9'));var jayson=require(_0x1f0f('0xa'));var client=jayson['client'][_0x1f0f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x487a90,_0x1ccf3d,_0x34ce21){return new BPromise(function(_0x40114f,_0x3110c0){return client[_0x1f0f('0xc')](_0x487a90,_0x34ce21)[_0x1f0f('0xd')](function(_0x14c775){logger[_0x1f0f('0xe')]('ScreenRecording,\x20%s,\x20%s',_0x1ccf3d,'request\x20sent');logger[_0x1f0f('0xf')](_0x1f0f('0x10'),_0x1ccf3d,'request\x20sent',JSON[_0x1f0f('0x11')](_0x14c775));if(_0x14c775[_0x1f0f('0x12')]){if(_0x14c775[_0x1f0f('0x12')][_0x1f0f('0x13')]===0x1f4){logger['error'](_0x1f0f('0x14'),_0x1ccf3d,_0x14c775['error']['message']);return _0x3110c0(_0x14c775[_0x1f0f('0x12')]['message']);}logger[_0x1f0f('0x12')](_0x1f0f('0x14'),_0x1ccf3d,_0x14c775[_0x1f0f('0x12')][_0x1f0f('0x15')]);return _0x40114f(_0x14c775[_0x1f0f('0x12')][_0x1f0f('0x15')]);}else{logger[_0x1f0f('0xe')]('ScreenRecording,\x20%s,\x20%s',_0x1ccf3d,_0x1f0f('0x16'));_0x40114f(_0x14c775[_0x1f0f('0x17')][_0x1f0f('0x15')]);}})[_0x1f0f('0x18')](function(_0x2b8db1){logger[_0x1f0f('0x12')](_0x1f0f('0x14'),_0x1ccf3d,_0x2b8db1);_0x3110c0(_0x2b8db1);});});}
\ No newline at end of file
+var _0x8041=['http','ScreenRecording,\x20%s,\x20%s','request\x20sent','debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x2fbe40,_0xde4bdb){var _0x5b25f7=function(_0x3c8856){while(--_0x3c8856){_0x2fbe40['push'](_0x2fbe40['shift']());}};_0x5b25f7(++_0xde4bdb);}(_0x8041,0x14c));var _0x1804=function(_0x392def,_0xc13f99){_0x392def=_0x392def-0x0;var _0x325ceb=_0x8041[_0x392def];return _0x325ceb;};'use strict';var _=require(_0x1804('0x0'));var util=require(_0x1804('0x1'));var moment=require(_0x1804('0x2'));var BPromise=require('bluebird');var rs=require(_0x1804('0x3'));var fs=require('fs');var Redis=require(_0x1804('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x1804('0x5'));var logger=require(_0x1804('0x6'))('rpc');var config=require(_0x1804('0x7'));var jayson=require(_0x1804('0x8'));var client=jayson[_0x1804('0x9')][_0x1804('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x12d695,_0x582ce8,_0x57206e){return new BPromise(function(_0x32a96c,_0x4c49b9){return client['request'](_0x12d695,_0x57206e)['then'](function(_0x529333){logger['info'](_0x1804('0xb'),_0x582ce8,_0x1804('0xc'));logger[_0x1804('0xd')](_0x1804('0xe'),_0x582ce8,'request\x20sent',JSON[_0x1804('0xf')](_0x529333));if(_0x529333['error']){if(_0x529333[_0x1804('0x10')]['code']===0x1f4){logger[_0x1804('0x10')](_0x1804('0xb'),_0x582ce8,_0x529333[_0x1804('0x10')]['message']);return _0x4c49b9(_0x529333['error'][_0x1804('0x11')]);}logger['error'](_0x1804('0xb'),_0x582ce8,_0x529333[_0x1804('0x10')][_0x1804('0x11')]);return _0x32a96c(_0x529333['error'][_0x1804('0x11')]);}else{logger['info'](_0x1804('0xb'),_0x582ce8,_0x1804('0xc'));_0x32a96c(_0x529333[_0x1804('0x12')][_0x1804('0x11')]);}})['catch'](function(_0x254a5d){logger[_0x1804('0x10')](_0x1804('0xb'),_0x582ce8,_0x254a5d);_0x4c49b9(_0x254a5d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7c1=['getLogo','/:id/logo_login','getLogoLogin','/:id/gdpr','gdpr','/:id/preferred','getFavicon','diskStorage','join','root','server/files/images/logos/','format','extname','post','single','file','addLogo','%s%s','logologin','originalname','addLogoLogin','preferred','addPreferred','favicon','/:id/favicon','addFavicon','put','/:id','update','exports','multer','path','express','fs-extra','../../config/environment','get','isAuthenticated','index','/now','show'];(function(_0x495f3c,_0x592bbe){var _0x4b97ee=function(_0x10d268){while(--_0x10d268){_0x495f3c['push'](_0x495f3c['shift']());}};_0x4b97ee(++_0x592bbe);}(_0xb7c1,0x10e));var _0x1b7c=function(_0x3f1658,_0x1d2b16){_0x3f1658=_0x3f1658-0x0;var _0x431eb3=_0xb7c1[_0x3f1658];return _0x431eb3;};'use strict';var multer=require(_0x1b7c('0x0'));var util=require('util');var path=require(_0x1b7c('0x1'));var timeout=require('connect-timeout');var express=require(_0x1b7c('0x2'));var router=express['Router']();var fs_extra=require(_0x1b7c('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x1b7c('0x4'));var controller=require('./setting.controller');router[_0x1b7c('0x5')]('/',auth[_0x1b7c('0x6')](),controller[_0x1b7c('0x7')]);router['get'](_0x1b7c('0x8'),controller['getDate']);router[_0x1b7c('0x5')]('/:id',controller[_0x1b7c('0x9')]);router['get']('/:id/logo',controller[_0x1b7c('0xa')]);router[_0x1b7c('0x5')](_0x1b7c('0xb'),controller[_0x1b7c('0xc')]);router[_0x1b7c('0x5')](_0x1b7c('0xd'),controller[_0x1b7c('0xe')]);router[_0x1b7c('0x5')](_0x1b7c('0xf'),controller['getPreferred']);router[_0x1b7c('0x5')]('/:id/favicon',controller[_0x1b7c('0x10')]);var upload=multer({'storage':multer[_0x1b7c('0x11')]({'destination':function(_0xa6960c,_0x13ae3f,_0x8dfd0e){_0x8dfd0e(null,path[_0x1b7c('0x12')](config[_0x1b7c('0x13')],_0x1b7c('0x14')));},'filename':function(_0xbd6dc7,_0x200d6d,_0x416154){_0x416154(null,util[_0x1b7c('0x15')]('%s%s','logo',path[_0x1b7c('0x16')](_0x200d6d['originalname'])));}})});router[_0x1b7c('0x17')]('/:id/logo',upload[_0x1b7c('0x18')](_0x1b7c('0x19')),controller[_0x1b7c('0x1a')]);var upload=multer({'storage':multer[_0x1b7c('0x11')]({'destination':function(_0x177450,_0xead454,_0x23d248){_0x23d248(null,path[_0x1b7c('0x12')](config[_0x1b7c('0x13')],'server/files/images/logos/'));},'filename':function(_0x10ed6b,_0x160ca1,_0x440863){_0x440863(null,util[_0x1b7c('0x15')](_0x1b7c('0x1b'),_0x1b7c('0x1c'),path[_0x1b7c('0x16')](_0x160ca1[_0x1b7c('0x1d')])));}})});router[_0x1b7c('0x17')](_0x1b7c('0xb'),upload[_0x1b7c('0x18')](_0x1b7c('0x19')),controller[_0x1b7c('0x1e')]);var upload=multer({'storage':multer[_0x1b7c('0x11')]({'destination':function(_0x1ff325,_0x4196ce,_0x38a4d0){_0x38a4d0(null,path[_0x1b7c('0x12')](config[_0x1b7c('0x13')],'server/files/images/logos/'));},'filename':function(_0x56b8dd,_0x2adc69,_0x2fdfac){_0x2fdfac(null,util[_0x1b7c('0x15')](_0x1b7c('0x1b'),_0x1b7c('0x1f'),path[_0x1b7c('0x16')](_0x2adc69[_0x1b7c('0x1d')])));}})});router[_0x1b7c('0x17')](_0x1b7c('0xf'),upload['single']('file'),controller[_0x1b7c('0x20')]);var upload=multer({'storage':multer[_0x1b7c('0x11')]({'destination':function(_0x5713c9,_0x6a96f9,_0xf00d8){_0xf00d8(null,path[_0x1b7c('0x12')](config['root'],_0x1b7c('0x14')));},'filename':function(_0x5282a4,_0x52d694,_0x7cc4af){_0x7cc4af(null,util[_0x1b7c('0x15')](_0x1b7c('0x1b'),_0x1b7c('0x21'),path[_0x1b7c('0x16')](_0x52d694['originalname'])));}})});router[_0x1b7c('0x17')](_0x1b7c('0x22'),upload['single']('file'),controller[_0x1b7c('0x23')]);router[_0x1b7c('0x24')](_0x1b7c('0x25'),auth[_0x1b7c('0x6')](),controller[_0x1b7c('0x26')]);module[_0x1b7c('0x27')]=router;
\ No newline at end of file
+var _0x487e=['extname','originalname','post','single','file','addLogo','%s%s','logologin','preferred','/:id/preferred','addPreferred','favicon','addFavicon','put','update','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./setting.controller','get','isAuthenticated','/now','getDate','/:id','/:id/logo','getLogoLogin','/:id/gdpr','gdpr','getPreferred','/:id/favicon','getFavicon','diskStorage','join','root','server/files/images/logos/','format','logo'];(function(_0x1f7201,_0x141b79){var _0x289fd2=function(_0x20ce23){while(--_0x20ce23){_0x1f7201['push'](_0x1f7201['shift']());}};_0x289fd2(++_0x141b79);}(_0x487e,0x118));var _0xe487=function(_0x13450c,_0xa59532){_0x13450c=_0x13450c-0x0;var _0x358d31=_0x487e[_0x13450c];return _0x358d31;};'use strict';var multer=require(_0xe487('0x0'));var util=require(_0xe487('0x1'));var path=require(_0xe487('0x2'));var timeout=require(_0xe487('0x3'));var express=require('express');var router=express[_0xe487('0x4')]();var fs_extra=require(_0xe487('0x5'));var auth=require(_0xe487('0x6'));var interaction=require(_0xe487('0x7'));var config=require(_0xe487('0x8'));var controller=require(_0xe487('0x9'));router[_0xe487('0xa')]('/',auth[_0xe487('0xb')](),controller['index']);router[_0xe487('0xa')](_0xe487('0xc'),controller[_0xe487('0xd')]);router['get'](_0xe487('0xe'),controller['show']);router[_0xe487('0xa')](_0xe487('0xf'),controller['getLogo']);router[_0xe487('0xa')]('/:id/logo_login',controller[_0xe487('0x10')]);router[_0xe487('0xa')](_0xe487('0x11'),controller[_0xe487('0x12')]);router[_0xe487('0xa')]('/:id/preferred',controller[_0xe487('0x13')]);router[_0xe487('0xa')](_0xe487('0x14'),controller[_0xe487('0x15')]);var upload=multer({'storage':multer[_0xe487('0x16')]({'destination':function(_0x2a9e11,_0xf697c,_0xd62c92){_0xd62c92(null,path[_0xe487('0x17')](config[_0xe487('0x18')],_0xe487('0x19')));},'filename':function(_0x1786f7,_0x122ae9,_0x270676){_0x270676(null,util[_0xe487('0x1a')]('%s%s',_0xe487('0x1b'),path[_0xe487('0x1c')](_0x122ae9[_0xe487('0x1d')])));}})});router[_0xe487('0x1e')](_0xe487('0xf'),upload[_0xe487('0x1f')](_0xe487('0x20')),controller[_0xe487('0x21')]);var upload=multer({'storage':multer[_0xe487('0x16')]({'destination':function(_0x1e16ae,_0x4eca42,_0x2c9fec){_0x2c9fec(null,path[_0xe487('0x17')](config[_0xe487('0x18')],_0xe487('0x19')));},'filename':function(_0x3eff58,_0xe09e19,_0x466b56){_0x466b56(null,util[_0xe487('0x1a')](_0xe487('0x22'),_0xe487('0x23'),path['extname'](_0xe09e19['originalname'])));}})});router[_0xe487('0x1e')]('/:id/logo_login',upload[_0xe487('0x1f')](_0xe487('0x20')),controller['addLogoLogin']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0xd67b18,_0x4d6f7c,_0x2c4852){_0x2c4852(null,path[_0xe487('0x17')](config['root'],_0xe487('0x19')));},'filename':function(_0x5cfbf3,_0x24abec,_0x785fac){_0x785fac(null,util[_0xe487('0x1a')](_0xe487('0x22'),_0xe487('0x24'),path[_0xe487('0x1c')](_0x24abec[_0xe487('0x1d')])));}})});router[_0xe487('0x1e')](_0xe487('0x25'),upload[_0xe487('0x1f')]('file'),controller[_0xe487('0x26')]);var upload=multer({'storage':multer[_0xe487('0x16')]({'destination':function(_0x94c119,_0xc5aae0,_0x377191){_0x377191(null,path[_0xe487('0x17')](config[_0xe487('0x18')],_0xe487('0x19')));},'filename':function(_0x1259f5,_0x3b86d9,_0x4c0f2c){_0x4c0f2c(null,util['format']('%s%s',_0xe487('0x27'),path[_0xe487('0x1c')](_0x3b86d9[_0xe487('0x1d')])));}})});router['post']('/:id/favicon',upload[_0xe487('0x1f')](_0xe487('0x20')),controller[_0xe487('0x28')]);router[_0xe487('0x29')](_0xe487('0xe'),auth[_0xe487('0xb')](),controller[_0xe487('0x2a')]);module[_0xe487('0x2b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f66=['STRING','BOOLEAN','UNSIGNED','exports','min_internal','INTEGER','min_mailbox'];(function(_0xb0f7c3,_0x4eae95){var _0x28ea68=function(_0x4395a7){while(--_0x4395a7){_0xb0f7c3['push'](_0xb0f7c3['shift']());}};_0x28ea68(++_0x4eae95);}(_0x5f66,0x1a0));var _0x65f6=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x5f66[_0x432682];return _0x463d05;};'use strict';var Sequelize=require('sequelize');module[_0x65f6('0x0')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0x65f6('0x1'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x65f6('0x2')](0xb),'unique':_0x65f6('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0x65f6('0x2')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'/var/opt/motion2/server/files/sounds/converted'},'logo':{'type':Sequelize[_0x65f6('0x4')]},'defaultLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x65f6('0x4')]},'defaultLoginLogo':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize['STRING']},'defaultHeaderWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x65f6('0x4')]},'turnaddr':{'type':Sequelize[_0x65f6('0x4')]},'turnusername':{'type':Sequelize[_0x65f6('0x4')]},'turnpassword':{'type':Sequelize[_0x65f6('0x4')]},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x65f6('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'split':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x65f6('0x4')],'defaultValue':'alternate'},'chatTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x65f6('0x4')]},'defaultPreferred':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x65f6('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x65f6('0x4')]},'defaultFavicon':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize['INTEGER'],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize['INTEGER']},'transcribeRegion':{'type':Sequelize[_0x65f6('0x4')]},'sentiment':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x65f6('0x2')]},'sentimentRegion':{'type':Sequelize[_0x65f6('0x4')]},'language':{'type':Sequelize[_0x65f6('0x4')]},'bucket':{'type':Sequelize[_0x65f6('0x4')]},'googleSsoEnabled':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize['INTEGER'](0x2)[_0x65f6('0x6')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)['UNSIGNED'],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize['INTEGER'](0x2)[_0x65f6('0x6')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x65f6('0x2')](0x2)['UNSIGNED'],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x65f6('0x5')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0x65f6('0x2')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x7a54=['UNSIGNED','sequelize','exports','INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted','BOOLEAN','alternate'];(function(_0x5a3e0b,_0xd07358){var _0x2b58b8=function(_0x26f351){while(--_0x26f351){_0x5a3e0b['push'](_0x5a3e0b['shift']());}};_0x2b58b8(++_0xd07358);}(_0x7a54,0x106));var _0x47a5=function(_0x24b94,_0x2a351f){_0x24b94=_0x24b94-0x0;var _0x27cd97=_0x7a54[_0x24b94];return _0x27cd97;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'min_internal':{'type':Sequelize[_0x47a5('0x2')](0xb),'unique':'min_internal','defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x47a5('0x2')](0xb),'unique':_0x47a5('0x3'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0x47a5('0x4')],'defaultValue':_0x47a5('0x5')},'logo':{'type':Sequelize[_0x47a5('0x4')]},'defaultLogo':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x47a5('0x4')]},'defaultLoginLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0x47a5('0x4')]},'defaultHeaderWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'stunaddr':{'type':Sequelize['STRING']},'turnaddr':{'type':Sequelize[_0x47a5('0x4')]},'turnusername':{'type':Sequelize['STRING']},'turnpassword':{'type':Sequelize['STRING']},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize['STRING'],'defaultValue':'https://www.xcally.com/bar/phonebar/autoupdater.xml'},'enableEmailPreview':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'split':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0x47a5('0x4')],'defaultValue':_0x47a5('0x7')},'chatTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x47a5('0x4')]},'defaultPreferred':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x47a5('0x4')]},'allowedLoginAttempts':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x5},'blockDuration':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x47a5('0x4')]},'defaultFavicon':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize[_0x47a5('0x2')]},'transcribeRegion':{'type':Sequelize[_0x47a5('0x4')]},'sentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticSentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x47a5('0x2')]},'sentimentRegion':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0x47a5('0x4')]},'googleSsoEnabled':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize[_0x47a5('0x2')](0x2)[_0x47a5('0x8')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize[_0x47a5('0x2')](0x2)[_0x47a5('0x8')],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0x47a5('0x2')](0x2)[_0x47a5('0x8')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize['INTEGER'](0x2)[_0x47a5('0x8')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0x47a5('0x2')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0x47a5('0x6')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x535f=['getLogo','server/files/images/logos','getLicense','favicon','defaultLoginLogo','defaultPreferred','defaultFavicon','existsSync','join','root','toLower','upperFirst','Sequelize','\x20not\x20found','download','getLogoLogin','preferred','default_loginLogo.svg','default','custom','ValidationError','gdpr','securePassword','addPreferred','getPreferred','default_preferred.png','addFavicon','getFavicon','defaultLogo','default_favicon.ico','utcOffset','now','format','YYYY-MM-DD\x20HH:mm:ss:SSS','send','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','http','request','then','Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','stack','name','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','where','pick','filters','merge','VIRTUAL','filter','options','Setting','include','findAll','rows','params','length','includeAll','body','find','addLogo','file','filename','logo','addLogoLogin','loginLogo'];(function(_0x502fb0,_0x2c46eb){var _0x39e759=function(_0x413cb4){while(--_0x413cb4){_0x502fb0['push'](_0x502fb0['shift']());}};_0x39e759(++_0x2c46eb);}(_0x535f,0x111));var _0xf535=function(_0x5060e7,_0x375c5c){_0x5060e7=_0x5060e7-0x0;var _0x20955e=_0x535f[_0x5060e7];return _0x20955e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf535('0x0'));var zipdir=require(_0xf535('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf535('0x2'));var moment=require(_0xf535('0x3'));var BPromise=require(_0xf535('0x4'));var Mustache=require(_0xf535('0x5'));var util=require('util');var path=require(_0xf535('0x6'));var sox=require(_0xf535('0x7'));var csv=require(_0xf535('0x8'));var ejs=require(_0xf535('0x9'));var fs=require('fs');var fs_extra=require(_0xf535('0xa'));var _=require(_0xf535('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xf535('0xc'));var deskjs=require(_0xf535('0xd'));var toCsv=require(_0xf535('0x8'));var querystring=require('querystring');var Papa=require(_0xf535('0xe'));var Redis=require(_0xf535('0xf'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xf535('0x10'));var hardwareService=require(_0xf535('0x11'));var logger=require('../../config/logger')('api');var utils=require(_0xf535('0x12'));var config=require(_0xf535('0x13'));var licenseUtil=require(_0xf535('0x14'));var db=require(_0xf535('0x15'))['db'];var jayson=require(_0xf535('0x16'));var client=jayson['client'][_0xf535('0x17')]({'port':0x232a});function respondWithRpcPromise(_0x27e116,_0x203d91,_0x1fbab6,_0x46792d){return new BPromise(function(_0x338f06,_0x183049){var _0x23df0f=_0x46792d||client;return _0x23df0f[_0xf535('0x18')](_0x27e116,_0x1fbab6)[_0xf535('0x19')](function(_0xc3db30){logger['info'](_0xf535('0x1a'),_0x203d91,_0xf535('0x1b'));logger[_0xf535('0x1c')](_0xf535('0x1d'),_0x203d91,_0xf535('0x1b'),JSON[_0xf535('0x1e')](_0xc3db30));if(_0xc3db30[_0xf535('0x1f')]){if(_0xc3db30[_0xf535('0x1f')][_0xf535('0x20')]===0x1f4){logger[_0xf535('0x1f')]('Setting,\x20%s,\x20%s',_0x203d91,_0xc3db30[_0xf535('0x1f')][_0xf535('0x21')]);return _0x183049(_0xc3db30[_0xf535('0x1f')][_0xf535('0x21')]);}logger['error'](_0xf535('0x1a'),_0x203d91,_0xc3db30[_0xf535('0x1f')]['message']);return _0x338f06(_0xc3db30['error']['message']);}else{logger[_0xf535('0x22')](_0xf535('0x1a'),_0x203d91,_0xf535('0x1b'));_0x338f06(_0xc3db30['result']['message']);}})[_0xf535('0x23')](function(_0x467d7d){logger[_0xf535('0x1f')](_0xf535('0x1a'),_0x203d91,_0x467d7d);_0x183049(_0x467d7d);});});}function respondWithStatusCode(_0x138cbd,_0x273ad0){_0x273ad0=_0x273ad0||0xcc;return function(_0x358c91){if(_0x358c91){return _0x138cbd[_0xf535('0x24')](_0x273ad0);}return _0x138cbd[_0xf535('0x25')](_0x273ad0)[_0xf535('0x26')]();};}function respondWithResult(_0x26b7e8,_0x5b3917){_0x5b3917=_0x5b3917||0xc8;return function(_0x44ce19){if(_0x44ce19){return _0x26b7e8[_0xf535('0x25')](_0x5b3917)[_0xf535('0x27')](_0x44ce19);}};}function respondWithFilteredResult(_0x46ce43,_0x407c5b){return function(_0x1250a0){if(_0x1250a0){var _0x351b3a=typeof _0x407c5b[_0xf535('0x28')]===_0xf535('0x29')&&typeof _0x407c5b[_0xf535('0x2a')]===_0xf535('0x29');var _0x11cc78=_0x1250a0['count'];var _0x5d1887=_0x351b3a?0x0:_0x407c5b[_0xf535('0x28')];var _0x12a94a=_0x351b3a?_0x1250a0[_0xf535('0x2b')]:_0x407c5b[_0xf535('0x28')]+_0x407c5b[_0xf535('0x2a')];var _0x493380;if(_0x12a94a>=_0x11cc78){_0x12a94a=_0x11cc78;_0x493380=0xc8;}else{_0x493380=0xce;}_0x46ce43[_0xf535('0x25')](_0x493380);return _0x46ce43['set'](_0xf535('0x2c'),_0x5d1887+'-'+_0x12a94a+'/'+_0x11cc78)[_0xf535('0x27')](_0x1250a0);}return null;};}function patchUpdates(_0x347a68){return function(_0x1e432d){try{jsonpatch[_0xf535('0x2d')](_0x1e432d,_0x347a68,!![]);}catch(_0x4137b2){return BPromise[_0xf535('0x2e')](_0x4137b2);}return _0x1e432d['save']();};}function saveUpdates(_0x74da53,_0x3c71cf){return function(_0x4193ae){if(_0x4193ae){return _0x4193ae[_0xf535('0x2f')](_0x74da53)[_0xf535('0x19')](function(_0x26f89e){return _0x26f89e;});}return null;};}function removeEntity(_0x3ed51f,_0x878b51){return function(_0xb6f808){if(_0xb6f808){return _0xb6f808['destroy']()[_0xf535('0x19')](function(){_0x3ed51f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x516264,_0x409c5f){return function(_0x331b95){if(!_0x331b95){_0x516264[_0xf535('0x24')](0x194);}return _0x331b95;};}function handleError(_0x565040,_0x22acf9){_0x22acf9=_0x22acf9||0x1f4;return function(_0x2b64a2){logger[_0xf535('0x1f')](_0x2b64a2[_0xf535('0x30')]);if(_0x2b64a2[_0xf535('0x31')]){delete _0x2b64a2[_0xf535('0x31')];}_0x565040['status'](_0x22acf9)['send'](_0x2b64a2);};}exports['index']=function(_0x4c9b66,_0x4dae87){var _0x4a1b36={},_0x538e9f={},_0x53dedd={'count':0x0,'rows':[]};var _0x2889ed=_[_0xf535('0x32')](db['Setting'][_0xf535('0x33')],function(_0x17a537){return{'name':_0x17a537['fieldName'],'type':_0x17a537[_0xf535('0x34')][_0xf535('0x35')]};});_0x538e9f[_0xf535('0x36')]=_['map'](_0x2889ed,_0xf535('0x31'));_0x538e9f[_0xf535('0x37')]=_[_0xf535('0x38')](_0x4c9b66[_0xf535('0x37')]);_0x538e9f['filters']=_[_0xf535('0x39')](_0x538e9f[_0xf535('0x36')],_0x538e9f[_0xf535('0x37')]);_0x4a1b36[_0xf535('0x3a')]=_['intersection'](_0x538e9f[_0xf535('0x36')],qs[_0xf535('0x3b')](_0x4c9b66['query'][_0xf535('0x3b')]));_0x4a1b36[_0xf535('0x3a')]=_0x4a1b36['attributes']['length']?_0x4a1b36[_0xf535('0x3a')]:_0x538e9f[_0xf535('0x36')];if(!_0x4c9b66[_0xf535('0x37')][_0xf535('0x3c')](_0xf535('0x3d'))){_0x4a1b36[_0xf535('0x2a')]=qs[_0xf535('0x2a')](_0x4c9b66['query'][_0xf535('0x2a')]);_0x4a1b36['offset']=qs[_0xf535('0x28')](_0x4c9b66['query'][_0xf535('0x28')]);}_0x4a1b36['order']=qs['sort'](_0x4c9b66[_0xf535('0x37')]['sort']);_0x4a1b36[_0xf535('0x3e')]=qs['filters'](_[_0xf535('0x3f')](_0x4c9b66['query'],_0x538e9f[_0xf535('0x40')]),_0x2889ed);if(_0x4c9b66[_0xf535('0x37')]['filter']){_0x4a1b36['where']=_[_0xf535('0x41')](_0x4a1b36[_0xf535('0x3e')],{'$or':_[_0xf535('0x32')](_0x2889ed,function(_0x4dcfe0){if(_0x4dcfe0['type']!==_0xf535('0x42')){var _0x5af268={};_0x5af268[_0x4dcfe0[_0xf535('0x31')]]={'$like':'%'+_0x4c9b66['query'][_0xf535('0x43')]+'%'};return _0x5af268;}})});}_0x4a1b36=_['merge']({},_0x4a1b36,_0x4c9b66[_0xf535('0x44')]);var _0x5112ad={'where':_0x4a1b36[_0xf535('0x3e')]};return db[_0xf535('0x45')][_0xf535('0x2b')](_0x5112ad)[_0xf535('0x19')](function(_0x1ecd16){_0x53dedd[_0xf535('0x2b')]=_0x1ecd16;if(_0x4c9b66[_0xf535('0x37')]['includeAll']){_0x4a1b36[_0xf535('0x46')]=[{'all':!![]}];}return db[_0xf535('0x45')][_0xf535('0x47')](_0x4a1b36);})['then'](function(_0x3ac295){_0x53dedd[_0xf535('0x48')]=_0x3ac295;return _0x53dedd;})['then'](respondWithFilteredResult(_0x4dae87,_0x4a1b36))['catch'](handleError(_0x4dae87,null));};exports['show']=function(_0x2f76f2,_0x1840c7){var _0x42751b={'raw':![],'where':{'id':_0x2f76f2[_0xf535('0x49')]['id']}},_0x3096ff={};_0x3096ff[_0xf535('0x36')]=_[_0xf535('0x38')](db['Setting']['rawAttributes']);_0x3096ff[_0xf535('0x37')]=_[_0xf535('0x38')](_0x2f76f2[_0xf535('0x37')]);_0x3096ff[_0xf535('0x40')]=_['intersection'](_0x3096ff[_0xf535('0x36')],_0x3096ff['query']);_0x42751b[_0xf535('0x3a')]=_[_0xf535('0x39')](_0x3096ff[_0xf535('0x36')],qs[_0xf535('0x3b')](_0x2f76f2[_0xf535('0x37')][_0xf535('0x3b')]));_0x42751b[_0xf535('0x3a')]=_0x42751b['attributes'][_0xf535('0x4a')]?_0x42751b[_0xf535('0x3a')]:_0x3096ff[_0xf535('0x36')];if(_0x2f76f2['query'][_0xf535('0x4b')]){_0x42751b[_0xf535('0x46')]=[{'all':!![]}];}_0x42751b=_[_0xf535('0x41')]({},_0x42751b,_0x2f76f2[_0xf535('0x44')]);return db[_0xf535('0x45')]['find'](_0x42751b)[_0xf535('0x19')](handleEntityNotFound(_0x1840c7,null))['then'](respondWithResult(_0x1840c7,null))[_0xf535('0x23')](handleError(_0x1840c7,null));};exports[_0xf535('0x2f')]=function(_0x5bb49d,_0x4d1d46){if(_0x5bb49d['body']['id']){delete _0x5bb49d[_0xf535('0x4c')]['id'];}return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x5bb49d[_0xf535('0x49')]['id']}})[_0xf535('0x19')](handleEntityNotFound(_0x4d1d46,null))[_0xf535('0x19')](saveUpdates(_0x5bb49d[_0xf535('0x4c')],null))[_0xf535('0x19')](respondWithResult(_0x4d1d46,null))['catch'](handleError(_0x4d1d46,null));};exports[_0xf535('0x4e')]=function(_0x4a8d34,_0xc867a6,_0x337871){if(_0x4a8d34[_0xf535('0x4f')]&&_0x4a8d34[_0xf535('0x4f')][_0xf535('0x50')]){_0x4a8d34['body'][_0xf535('0x51')]=_0x4a8d34[_0xf535('0x4f')][_0xf535('0x50')];}return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x4a8d34['params']['id']}})[_0xf535('0x19')](handleEntityNotFound(_0xc867a6,null))[_0xf535('0x19')](saveUpdates(_0x4a8d34['body'],null))['then'](respondWithResult(_0xc867a6,null))[_0xf535('0x23')](handleError(_0xc867a6,null));};exports[_0xf535('0x52')]=function(_0x3da4ab,_0x2d9f8e,_0x4e2128){if(_0x3da4ab[_0xf535('0x4f')]&&_0x3da4ab['file'][_0xf535('0x50')]){_0x3da4ab[_0xf535('0x4c')][_0xf535('0x53')]=_0x3da4ab[_0xf535('0x4f')][_0xf535('0x50')];}return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x3da4ab[_0xf535('0x49')]['id']}})[_0xf535('0x19')](handleEntityNotFound(_0x2d9f8e,null))[_0xf535('0x19')](saveUpdates(_0x3da4ab['body'],null))[_0xf535('0x19')](respondWithResult(_0x2d9f8e,null))[_0xf535('0x23')](handleError(_0x2d9f8e,null));};var utilLicense=require(_0xf535('0x14'));exports[_0xf535('0x54')]=function(_0x3b465a,_0x55cd40,_0x2797a8){var _0x52d341=_0xf535('0x55');var _0x3b8599={'custom':![]};return utilLicense[_0xf535('0x56')]()[_0xf535('0x19')](function(_0x2f6ff4){if(_0x2f6ff4){_0x3b8599=_0x2f6ff4;}return db[_0xf535('0x45')]['find']({'where':{'id':_0x3b465a[_0xf535('0x49')]['id']},'attributes':[_0xf535('0x51'),_0xf535('0x53'),'preferred',_0xf535('0x57'),'defaultLogo',_0xf535('0x58'),_0xf535('0x59'),_0xf535('0x5a')],'raw':!![]});})[_0xf535('0x19')](handleEntityNotFound(_0x55cd40,null))[_0xf535('0x19')](function(_0x2241f7){if(_0x2241f7){var _0x1a163a=_0x2241f7[_0xf535('0x51')]&&fs[_0xf535('0x5b')](path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x52d341,_['toLower'](_0x2241f7[_0xf535('0x51')])))?path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x52d341,_[_0xf535('0x5e')](_0x2241f7[_0xf535('0x51')])):path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x52d341,_[_0xf535('0x5e')]('default_logo.svg'));var _0x16bcae='default'+_[_0xf535('0x5f')](_0xf535('0x51'));if(_0x2241f7[_0x16bcae]||!_0x3b8599['custom']){_0x1a163a=path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x52d341,_['toLower']('default_logo.svg'));}if(!fs[_0xf535('0x5b')](_0x1a163a)){throw new db[(_0xf535('0x60'))]['ValidationError'](_[_0xf535('0x5f')](_0xf535('0x51'))+_0xf535('0x61'));}return _0x55cd40[_0xf535('0x62')](_0x1a163a);}})[_0xf535('0x23')](handleError(_0x55cd40,null));};var utilLicense=require(_0xf535('0x14'));exports[_0xf535('0x63')]=function(_0x5bfa9a,_0x26e7b8,_0x449d84){var _0x17375b='server/files/images/logos';var _0x573d7c={'custom':![]};return utilLicense['getLicense']()[_0xf535('0x19')](function(_0x451381){if(_0x451381){_0x573d7c=_0x451381;}return db['Setting'][_0xf535('0x4d')]({'where':{'id':_0x5bfa9a['params']['id']},'attributes':[_0xf535('0x51'),_0xf535('0x53'),_0xf535('0x64'),_0xf535('0x57'),'defaultLogo',_0xf535('0x58'),_0xf535('0x59'),_0xf535('0x5a')],'raw':!![]});})[_0xf535('0x19')](handleEntityNotFound(_0x26e7b8,null))[_0xf535('0x19')](function(_0x1b9282){if(_0x1b9282){var _0x5fa7e8=_0x1b9282[_0xf535('0x53')]&&fs['existsSync'](path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x17375b,_[_0xf535('0x5e')](_0x1b9282[_0xf535('0x53')])))?path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x17375b,_['toLower'](_0x1b9282[_0xf535('0x53')])):path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x17375b,_[_0xf535('0x5e')](_0xf535('0x65')));var _0x3176a1=_0xf535('0x66')+_[_0xf535('0x5f')](_0xf535('0x53'));if(_0x1b9282[_0x3176a1]||!_0x573d7c[_0xf535('0x67')]){_0x5fa7e8=path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x17375b,_[_0xf535('0x5e')]('default_loginLogo.svg'));}if(!fs['existsSync'](_0x5fa7e8)){throw new db[(_0xf535('0x60'))][(_0xf535('0x68'))](_[_0xf535('0x5f')](_0xf535('0x53'))+_0xf535('0x61'));}return _0x26e7b8[_0xf535('0x62')](_0x5fa7e8);}})[_0xf535('0x23')](handleError(_0x26e7b8,null));};exports[_0xf535('0x69')]=function(_0x44e6b4,_0x58340f){return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x44e6b4[_0xf535('0x49')]['id']},'attributes':[_0xf535('0x6a')]})[_0xf535('0x19')](respondWithResult(_0x58340f,null))[_0xf535('0x23')](handleError(_0x58340f,null));};exports[_0xf535('0x6b')]=function(_0x4d708a,_0x4d29e6,_0x275107){if(_0x4d708a['file']&&_0x4d708a[_0xf535('0x4f')][_0xf535('0x50')]){_0x4d708a[_0xf535('0x4c')][_0xf535('0x64')]=_0x4d708a[_0xf535('0x4f')][_0xf535('0x50')];}return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x4d708a[_0xf535('0x49')]['id']}})[_0xf535('0x19')](handleEntityNotFound(_0x4d29e6,null))[_0xf535('0x19')](saveUpdates(_0x4d708a[_0xf535('0x4c')],null))[_0xf535('0x19')](respondWithResult(_0x4d29e6,null))[_0xf535('0x23')](handleError(_0x4d29e6,null));};var utilLicense=require('../../config/license/util');exports[_0xf535('0x6c')]=function(_0x36be54,_0x98cda,_0x1aae24){var _0x53784a=_0xf535('0x55');var _0x7f1094={'custom':![]};return utilLicense['getLicense']()[_0xf535('0x19')](function(_0x1364b4){if(_0x1364b4){_0x7f1094=_0x1364b4;}return db[_0xf535('0x45')]['find']({'where':{'id':_0x36be54[_0xf535('0x49')]['id']},'attributes':[_0xf535('0x51'),_0xf535('0x53'),_0xf535('0x64'),_0xf535('0x57'),'defaultLogo',_0xf535('0x58'),'defaultPreferred',_0xf535('0x5a')],'raw':!![]});})[_0xf535('0x19')](handleEntityNotFound(_0x98cda,null))[_0xf535('0x19')](function(_0x355395){if(_0x355395){var _0x439c56=_0x355395[_0xf535('0x64')]&&fs[_0xf535('0x5b')](path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x53784a,_[_0xf535('0x5e')](_0x355395[_0xf535('0x64')])))?path[_0xf535('0x5c')](config['root'],_0x53784a,_[_0xf535('0x5e')](_0x355395['preferred'])):path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x53784a,_['toLower'](_0xf535('0x6d')));var _0xd7184d='default'+_[_0xf535('0x5f')](_0xf535('0x64'));if(_0x355395[_0xd7184d]||!_0x7f1094['custom']||!_0x7f1094['preferred']){_0x439c56=path[_0xf535('0x5c')](config['root'],_0x53784a,_[_0xf535('0x5e')]('default_preferred.png'));}if(!fs[_0xf535('0x5b')](_0x439c56)){throw new db[(_0xf535('0x60'))][(_0xf535('0x68'))](_[_0xf535('0x5f')](_0xf535('0x64'))+_0xf535('0x61'));}return _0x98cda['download'](_0x439c56);}})[_0xf535('0x23')](handleError(_0x98cda,null));};exports[_0xf535('0x6e')]=function(_0x3c5e63,_0x1765d7,_0x402158){if(_0x3c5e63[_0xf535('0x4f')]&&_0x3c5e63['file'][_0xf535('0x50')]){_0x3c5e63[_0xf535('0x4c')][_0xf535('0x57')]=_0x3c5e63[_0xf535('0x4f')][_0xf535('0x50')];}return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x3c5e63[_0xf535('0x49')]['id']}})['then'](handleEntityNotFound(_0x1765d7,null))[_0xf535('0x19')](saveUpdates(_0x3c5e63[_0xf535('0x4c')],null))['then'](respondWithResult(_0x1765d7,null))[_0xf535('0x23')](handleError(_0x1765d7,null));};var utilLicense=require(_0xf535('0x14'));exports[_0xf535('0x6f')]=function(_0x20241c,_0x4be7c4,_0x8e218c){var _0x4f83ad=_0xf535('0x55');var _0x4e4e72={'custom':![]};return utilLicense[_0xf535('0x56')]()[_0xf535('0x19')](function(_0x46782f){if(_0x46782f){_0x4e4e72=_0x46782f;}return db[_0xf535('0x45')][_0xf535('0x4d')]({'where':{'id':_0x20241c['params']['id']},'attributes':[_0xf535('0x51'),_0xf535('0x53'),_0xf535('0x64'),'favicon',_0xf535('0x70'),_0xf535('0x58'),_0xf535('0x59'),_0xf535('0x5a')],'raw':!![]});})[_0xf535('0x19')](handleEntityNotFound(_0x4be7c4,null))['then'](function(_0x48c755){if(_0x48c755){var _0x2ad248=_0x48c755[_0xf535('0x57')]&&fs[_0xf535('0x5b')](path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x4f83ad,_['toLower'](_0x48c755[_0xf535('0x57')])))?path[_0xf535('0x5c')](config[_0xf535('0x5d')],_0x4f83ad,_[_0xf535('0x5e')](_0x48c755[_0xf535('0x57')])):path[_0xf535('0x5c')](config['root'],_0x4f83ad,_[_0xf535('0x5e')](_0xf535('0x71')));var _0x42b487=_0xf535('0x66')+_[_0xf535('0x5f')]('favicon');if(_0x48c755[_0x42b487]||!_0x4e4e72[_0xf535('0x67')]){_0x2ad248=path[_0xf535('0x5c')](config['root'],_0x4f83ad,_[_0xf535('0x5e')](_0xf535('0x71')));}if(!fs[_0xf535('0x5b')](_0x2ad248)){throw new db[(_0xf535('0x60'))][(_0xf535('0x68'))](_[_0xf535('0x5f')]('favicon')+_0xf535('0x61'));}return _0x4be7c4[_0xf535('0x62')](_0x2ad248);}})[_0xf535('0x23')](handleError(_0x4be7c4,null));};exports['getDate']=function(_0x14a891,_0x397ad7){var _0x56c5f9={'offset':moment()[_0xf535('0x72')]()};_0x56c5f9[_0xf535('0x73')]=moment()['utcOffset'](_0x56c5f9[_0xf535('0x28')])[_0xf535('0x74')](_0xf535('0x75'));return _0x397ad7['status'](0xc8)[_0xf535('0x76')](_0x56c5f9);};
\ No newline at end of file
+var _0x9c5b=['include','rows','show','keys','find','body','params','addLogo','file','filename','getLogo','server/files/images/logos','getLicense','logo','loginLogo','preferred','favicon','defaultLogo','defaultLoginLogo','defaultPreferred','defaultFavicon','existsSync','join','root','toLower','default','upperFirst','custom','default_logo.svg','\x20not\x20found','download','getLogoLogin','default_loginLogo.svg','Sequelize','gdpr','securePassword','addPreferred','default_preferred.png','ValidationError','addFavicon','getFavicon','default_favicon.ico','getDate','utcOffset','now','format','YYYY-MM-DD\x20HH:mm:ss:SSS','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','request','then','info','Setting,\x20%s,\x20%s','debug','Setting,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','status','stack','name','send','index','map','Setting','rawAttributes','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','filter','options','includeAll'];(function(_0x156cd1,_0x389185){var _0x108e4f=function(_0x4961aa){while(--_0x4961aa){_0x156cd1['push'](_0x156cd1['shift']());}};_0x108e4f(++_0x389185);}(_0x9c5b,0x127));var _0xb9c5=function(_0x217d4,_0x388eeb){_0x217d4=_0x217d4-0x0;var _0x515be2=_0x9c5b[_0x217d4];return _0x515be2;};'use strict';var emlformat=require(_0xb9c5('0x0'));var rimraf=require(_0xb9c5('0x1'));var zipdir=require(_0xb9c5('0x2'));var jsonpatch=require(_0xb9c5('0x3'));var rp=require(_0xb9c5('0x4'));var moment=require('moment');var BPromise=require(_0xb9c5('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xb9c5('0x6'));var sox=require(_0xb9c5('0x7'));var csv=require('to-csv');var ejs=require(_0xb9c5('0x8'));var fs=require('fs');var fs_extra=require(_0xb9c5('0x9'));var _=require(_0xb9c5('0xa'));var squel=require(_0xb9c5('0xb'));var crypto=require(_0xb9c5('0xc'));var jsforce=require(_0xb9c5('0xd'));var deskjs=require(_0xb9c5('0xe'));var toCsv=require(_0xb9c5('0xf'));var querystring=require(_0xb9c5('0x10'));var Papa=require('papaparse');var Redis=require(_0xb9c5('0x11'));var authService=require(_0xb9c5('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xb9c5('0x13'));var hardwareService=require(_0xb9c5('0x14'));var logger=require(_0xb9c5('0x15'))('api');var utils=require(_0xb9c5('0x16'));var config=require(_0xb9c5('0x17'));var licenseUtil=require(_0xb9c5('0x18'));var db=require(_0xb9c5('0x19'))['db'];var jayson=require(_0xb9c5('0x1a'));var client=jayson[_0xb9c5('0x1b')]['http']({'port':0x232a});function respondWithRpcPromise(_0x54c31f,_0x1130f1,_0x4f0e16,_0x5d1ece){return new BPromise(function(_0x3eabaa,_0x32445e){var _0x48bafc=_0x5d1ece||client;return _0x48bafc[_0xb9c5('0x1c')](_0x54c31f,_0x4f0e16)[_0xb9c5('0x1d')](function(_0xf8613c){logger[_0xb9c5('0x1e')](_0xb9c5('0x1f'),_0x1130f1,'request\x20sent');logger[_0xb9c5('0x20')](_0xb9c5('0x21'),_0x1130f1,_0xb9c5('0x22'),JSON[_0xb9c5('0x23')](_0xf8613c));if(_0xf8613c[_0xb9c5('0x24')]){if(_0xf8613c[_0xb9c5('0x24')]['code']===0x1f4){logger[_0xb9c5('0x24')](_0xb9c5('0x1f'),_0x1130f1,_0xf8613c[_0xb9c5('0x24')]['message']);return _0x32445e(_0xf8613c['error']['message']);}logger[_0xb9c5('0x24')](_0xb9c5('0x1f'),_0x1130f1,_0xf8613c[_0xb9c5('0x24')][_0xb9c5('0x25')]);return _0x3eabaa(_0xf8613c[_0xb9c5('0x24')][_0xb9c5('0x25')]);}else{logger['info'](_0xb9c5('0x1f'),_0x1130f1,_0xb9c5('0x22'));_0x3eabaa(_0xf8613c[_0xb9c5('0x26')][_0xb9c5('0x25')]);}})[_0xb9c5('0x27')](function(_0x36d9d9){logger[_0xb9c5('0x24')](_0xb9c5('0x1f'),_0x1130f1,_0x36d9d9);_0x32445e(_0x36d9d9);});});}function respondWithStatusCode(_0x183f64,_0x4ee3b9){_0x4ee3b9=_0x4ee3b9||0xcc;return function(_0xcbef1){if(_0xcbef1){return _0x183f64[_0xb9c5('0x28')](_0x4ee3b9);}return _0x183f64['status'](_0x4ee3b9)['end']();};}function respondWithResult(_0x54cec3,_0xd1bac8){_0xd1bac8=_0xd1bac8||0xc8;return function(_0x46e057){if(_0x46e057){return _0x54cec3['status'](_0xd1bac8)[_0xb9c5('0x29')](_0x46e057);}};}function respondWithFilteredResult(_0x44906b,_0x5dba8){return function(_0x325e22){if(_0x325e22){var _0x20fa50=typeof _0x5dba8[_0xb9c5('0x2a')]===_0xb9c5('0x2b')&&typeof _0x5dba8[_0xb9c5('0x2c')]==='undefined';var _0x1a10de=_0x325e22[_0xb9c5('0x2d')];var _0x390f0f=_0x20fa50?0x0:_0x5dba8[_0xb9c5('0x2a')];var _0x1d20c0=_0x20fa50?_0x325e22[_0xb9c5('0x2d')]:_0x5dba8[_0xb9c5('0x2a')]+_0x5dba8['limit'];var _0x37a0a3;if(_0x1d20c0>=_0x1a10de){_0x1d20c0=_0x1a10de;_0x37a0a3=0xc8;}else{_0x37a0a3=0xce;}_0x44906b['status'](_0x37a0a3);return _0x44906b[_0xb9c5('0x2e')](_0xb9c5('0x2f'),_0x390f0f+'-'+_0x1d20c0+'/'+_0x1a10de)[_0xb9c5('0x29')](_0x325e22);}return null;};}function patchUpdates(_0x4ea206){return function(_0x4781f3){try{jsonpatch[_0xb9c5('0x30')](_0x4781f3,_0x4ea206,!![]);}catch(_0x51c0a2){return BPromise[_0xb9c5('0x31')](_0x51c0a2);}return _0x4781f3['save']();};}function saveUpdates(_0x54161b,_0x2d4555){return function(_0x676054){if(_0x676054){return _0x676054[_0xb9c5('0x32')](_0x54161b)[_0xb9c5('0x1d')](function(_0x42309e){return _0x42309e;});}return null;};}function removeEntity(_0x4b0fe0,_0x2b92bc){return function(_0x1b579e){if(_0x1b579e){return _0x1b579e[_0xb9c5('0x33')]()['then'](function(){_0x4b0fe0[_0xb9c5('0x34')](0xcc)['end']();});}};}function handleEntityNotFound(_0x10aef4,_0x50c74d){return function(_0x1dea5d){if(!_0x1dea5d){_0x10aef4['sendStatus'](0x194);}return _0x1dea5d;};}function handleError(_0x59b71d,_0x51f8e3){_0x51f8e3=_0x51f8e3||0x1f4;return function(_0x191572){logger[_0xb9c5('0x24')](_0x191572[_0xb9c5('0x35')]);if(_0x191572[_0xb9c5('0x36')]){delete _0x191572[_0xb9c5('0x36')];}_0x59b71d['status'](_0x51f8e3)[_0xb9c5('0x37')](_0x191572);};}exports[_0xb9c5('0x38')]=function(_0x4467a4,_0x1eeadf){var _0x3af351={},_0x29cc35={},_0x58fa32={'count':0x0,'rows':[]};var _0x566801=_[_0xb9c5('0x39')](db[_0xb9c5('0x3a')][_0xb9c5('0x3b')],function(_0x395944){return{'name':_0x395944['fieldName'],'type':_0x395944['type'][_0xb9c5('0x3c')]};});_0x29cc35[_0xb9c5('0x3d')]=_[_0xb9c5('0x39')](_0x566801,_0xb9c5('0x36'));_0x29cc35[_0xb9c5('0x3e')]=_['keys'](_0x4467a4[_0xb9c5('0x3e')]);_0x29cc35[_0xb9c5('0x3f')]=_['intersection'](_0x29cc35[_0xb9c5('0x3d')],_0x29cc35[_0xb9c5('0x3e')]);_0x3af351[_0xb9c5('0x40')]=_[_0xb9c5('0x41')](_0x29cc35[_0xb9c5('0x3d')],qs[_0xb9c5('0x42')](_0x4467a4[_0xb9c5('0x3e')]['fields']));_0x3af351[_0xb9c5('0x40')]=_0x3af351['attributes'][_0xb9c5('0x43')]?_0x3af351[_0xb9c5('0x40')]:_0x29cc35[_0xb9c5('0x3d')];if(!_0x4467a4['query'][_0xb9c5('0x44')](_0xb9c5('0x45'))){_0x3af351[_0xb9c5('0x2c')]=qs[_0xb9c5('0x2c')](_0x4467a4[_0xb9c5('0x3e')]['limit']);_0x3af351[_0xb9c5('0x2a')]=qs[_0xb9c5('0x2a')](_0x4467a4[_0xb9c5('0x3e')][_0xb9c5('0x2a')]);}_0x3af351[_0xb9c5('0x46')]=qs[_0xb9c5('0x47')](_0x4467a4[_0xb9c5('0x3e')][_0xb9c5('0x47')]);_0x3af351['where']=qs[_0xb9c5('0x3f')](_['pick'](_0x4467a4[_0xb9c5('0x3e')],_0x29cc35[_0xb9c5('0x3f')]),_0x566801);if(_0x4467a4[_0xb9c5('0x3e')]['filter']){_0x3af351[_0xb9c5('0x48')]=_[_0xb9c5('0x49')](_0x3af351[_0xb9c5('0x48')],{'$or':_[_0xb9c5('0x39')](_0x566801,function(_0x275e8c){if(_0x275e8c['type']!=='VIRTUAL'){var _0x5a229f={};_0x5a229f[_0x275e8c['name']]={'$like':'%'+_0x4467a4[_0xb9c5('0x3e')][_0xb9c5('0x4a')]+'%'};return _0x5a229f;}})});}_0x3af351=_[_0xb9c5('0x49')]({},_0x3af351,_0x4467a4[_0xb9c5('0x4b')]);var _0x2382eb={'where':_0x3af351[_0xb9c5('0x48')]};return db['Setting']['count'](_0x2382eb)[_0xb9c5('0x1d')](function(_0x4a0171){_0x58fa32['count']=_0x4a0171;if(_0x4467a4[_0xb9c5('0x3e')][_0xb9c5('0x4c')]){_0x3af351[_0xb9c5('0x4d')]=[{'all':!![]}];}return db[_0xb9c5('0x3a')]['findAll'](_0x3af351);})[_0xb9c5('0x1d')](function(_0x244d39){_0x58fa32[_0xb9c5('0x4e')]=_0x244d39;return _0x58fa32;})[_0xb9c5('0x1d')](respondWithFilteredResult(_0x1eeadf,_0x3af351))[_0xb9c5('0x27')](handleError(_0x1eeadf,null));};exports[_0xb9c5('0x4f')]=function(_0x328681,_0x4b1706){var _0xe8c9de={'raw':![],'where':{'id':_0x328681['params']['id']}},_0x391a56={};_0x391a56['model']=_[_0xb9c5('0x50')](db[_0xb9c5('0x3a')][_0xb9c5('0x3b')]);_0x391a56['query']=_[_0xb9c5('0x50')](_0x328681[_0xb9c5('0x3e')]);_0x391a56[_0xb9c5('0x3f')]=_['intersection'](_0x391a56[_0xb9c5('0x3d')],_0x391a56[_0xb9c5('0x3e')]);_0xe8c9de[_0xb9c5('0x40')]=_[_0xb9c5('0x41')](_0x391a56['model'],qs[_0xb9c5('0x42')](_0x328681[_0xb9c5('0x3e')]['fields']));_0xe8c9de[_0xb9c5('0x40')]=_0xe8c9de['attributes'][_0xb9c5('0x43')]?_0xe8c9de[_0xb9c5('0x40')]:_0x391a56[_0xb9c5('0x3d')];if(_0x328681[_0xb9c5('0x3e')][_0xb9c5('0x4c')]){_0xe8c9de[_0xb9c5('0x4d')]=[{'all':!![]}];}_0xe8c9de=_[_0xb9c5('0x49')]({},_0xe8c9de,_0x328681['options']);return db[_0xb9c5('0x3a')][_0xb9c5('0x51')](_0xe8c9de)[_0xb9c5('0x1d')](handleEntityNotFound(_0x4b1706,null))[_0xb9c5('0x1d')](respondWithResult(_0x4b1706,null))[_0xb9c5('0x27')](handleError(_0x4b1706,null));};exports[_0xb9c5('0x32')]=function(_0x3f2e0d,_0x3e4618){if(_0x3f2e0d[_0xb9c5('0x52')]['id']){delete _0x3f2e0d['body']['id'];}return db['Setting']['find']({'where':{'id':_0x3f2e0d[_0xb9c5('0x53')]['id']}})[_0xb9c5('0x1d')](handleEntityNotFound(_0x3e4618,null))[_0xb9c5('0x1d')](saveUpdates(_0x3f2e0d[_0xb9c5('0x52')],null))[_0xb9c5('0x1d')](respondWithResult(_0x3e4618,null))[_0xb9c5('0x27')](handleError(_0x3e4618,null));};exports[_0xb9c5('0x54')]=function(_0x2814ee,_0x210626,_0x34d35){if(_0x2814ee[_0xb9c5('0x55')]&&_0x2814ee[_0xb9c5('0x55')][_0xb9c5('0x56')]){_0x2814ee[_0xb9c5('0x52')]['logo']=_0x2814ee[_0xb9c5('0x55')]['filename'];}return db['Setting']['find']({'where':{'id':_0x2814ee[_0xb9c5('0x53')]['id']}})[_0xb9c5('0x1d')](handleEntityNotFound(_0x210626,null))['then'](saveUpdates(_0x2814ee[_0xb9c5('0x52')],null))[_0xb9c5('0x1d')](respondWithResult(_0x210626,null))[_0xb9c5('0x27')](handleError(_0x210626,null));};exports['addLogoLogin']=function(_0x36fff4,_0x32fdae,_0x2b0e6c){if(_0x36fff4['file']&&_0x36fff4[_0xb9c5('0x55')][_0xb9c5('0x56')]){_0x36fff4[_0xb9c5('0x52')]['loginLogo']=_0x36fff4['file'][_0xb9c5('0x56')];}return db[_0xb9c5('0x3a')]['find']({'where':{'id':_0x36fff4['params']['id']}})[_0xb9c5('0x1d')](handleEntityNotFound(_0x32fdae,null))['then'](saveUpdates(_0x36fff4[_0xb9c5('0x52')],null))[_0xb9c5('0x1d')](respondWithResult(_0x32fdae,null))[_0xb9c5('0x27')](handleError(_0x32fdae,null));};var utilLicense=require(_0xb9c5('0x18'));exports[_0xb9c5('0x57')]=function(_0xed350f,_0x2a8aa1,_0x59ceef){var _0x20b9de=_0xb9c5('0x58');var _0x132122={'custom':![]};return utilLicense[_0xb9c5('0x59')]()['then'](function(_0x2522ea){if(_0x2522ea){_0x132122=_0x2522ea;}return db[_0xb9c5('0x3a')]['find']({'where':{'id':_0xed350f[_0xb9c5('0x53')]['id']},'attributes':[_0xb9c5('0x5a'),_0xb9c5('0x5b'),_0xb9c5('0x5c'),_0xb9c5('0x5d'),_0xb9c5('0x5e'),_0xb9c5('0x5f'),_0xb9c5('0x60'),_0xb9c5('0x61')],'raw':!![]});})[_0xb9c5('0x1d')](handleEntityNotFound(_0x2a8aa1,null))['then'](function(_0x58c436){if(_0x58c436){var _0x13c604=_0x58c436[_0xb9c5('0x5a')]&&fs[_0xb9c5('0x62')](path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x20b9de,_['toLower'](_0x58c436[_0xb9c5('0x5a')])))?path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x20b9de,_['toLower'](_0x58c436[_0xb9c5('0x5a')])):path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x20b9de,_[_0xb9c5('0x65')]('default_logo.svg'));var _0x2cac75=_0xb9c5('0x66')+_[_0xb9c5('0x67')](_0xb9c5('0x5a'));if(_0x58c436[_0x2cac75]||!_0x132122[_0xb9c5('0x68')]){_0x13c604=path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x20b9de,_['toLower'](_0xb9c5('0x69')));}if(!fs[_0xb9c5('0x62')](_0x13c604)){throw new db['Sequelize']['ValidationError'](_[_0xb9c5('0x67')]('logo')+_0xb9c5('0x6a'));}return _0x2a8aa1[_0xb9c5('0x6b')](_0x13c604);}})[_0xb9c5('0x27')](handleError(_0x2a8aa1,null));};var utilLicense=require(_0xb9c5('0x18'));exports[_0xb9c5('0x6c')]=function(_0x425662,_0x29a138,_0x5108f8){var _0x50273e='server/files/images/logos';var _0x26d49d={'custom':![]};return utilLicense[_0xb9c5('0x59')]()[_0xb9c5('0x1d')](function(_0x90aee0){if(_0x90aee0){_0x26d49d=_0x90aee0;}return db[_0xb9c5('0x3a')]['find']({'where':{'id':_0x425662[_0xb9c5('0x53')]['id']},'attributes':['logo',_0xb9c5('0x5b'),_0xb9c5('0x5c'),_0xb9c5('0x5d'),_0xb9c5('0x5e'),'defaultLoginLogo',_0xb9c5('0x60'),_0xb9c5('0x61')],'raw':!![]});})['then'](handleEntityNotFound(_0x29a138,null))[_0xb9c5('0x1d')](function(_0x5a91f6){if(_0x5a91f6){var _0x367bd5=_0x5a91f6[_0xb9c5('0x5b')]&&fs[_0xb9c5('0x62')](path['join'](config[_0xb9c5('0x64')],_0x50273e,_[_0xb9c5('0x65')](_0x5a91f6['loginLogo'])))?path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x50273e,_[_0xb9c5('0x65')](_0x5a91f6[_0xb9c5('0x5b')])):path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x50273e,_[_0xb9c5('0x65')]('default_loginLogo.svg'));var _0x1d8f0c=_0xb9c5('0x66')+_[_0xb9c5('0x67')](_0xb9c5('0x5b'));if(_0x5a91f6[_0x1d8f0c]||!_0x26d49d['custom']){_0x367bd5=path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x50273e,_[_0xb9c5('0x65')](_0xb9c5('0x6d')));}if(!fs['existsSync'](_0x367bd5)){throw new db[(_0xb9c5('0x6e'))]['ValidationError'](_[_0xb9c5('0x67')](_0xb9c5('0x5b'))+_0xb9c5('0x6a'));}return _0x29a138['download'](_0x367bd5);}})[_0xb9c5('0x27')](handleError(_0x29a138,null));};exports[_0xb9c5('0x6f')]=function(_0x11f8b9,_0x4d3121){return db[_0xb9c5('0x3a')][_0xb9c5('0x51')]({'where':{'id':_0x11f8b9['params']['id']},'attributes':[_0xb9c5('0x70')]})[_0xb9c5('0x1d')](respondWithResult(_0x4d3121,null))[_0xb9c5('0x27')](handleError(_0x4d3121,null));};exports[_0xb9c5('0x71')]=function(_0x1be9eb,_0x543126,_0x39b4c5){if(_0x1be9eb['file']&&_0x1be9eb[_0xb9c5('0x55')][_0xb9c5('0x56')]){_0x1be9eb['body'][_0xb9c5('0x5c')]=_0x1be9eb[_0xb9c5('0x55')][_0xb9c5('0x56')];}return db[_0xb9c5('0x3a')][_0xb9c5('0x51')]({'where':{'id':_0x1be9eb[_0xb9c5('0x53')]['id']}})[_0xb9c5('0x1d')](handleEntityNotFound(_0x543126,null))[_0xb9c5('0x1d')](saveUpdates(_0x1be9eb['body'],null))[_0xb9c5('0x1d')](respondWithResult(_0x543126,null))[_0xb9c5('0x27')](handleError(_0x543126,null));};var utilLicense=require('../../config/license/util');exports['getPreferred']=function(_0x43f0e5,_0x5c794d,_0x5348bd){var _0x31cbc6=_0xb9c5('0x58');var _0x5e9538={'custom':![]};return utilLicense[_0xb9c5('0x59')]()[_0xb9c5('0x1d')](function(_0x6a2c80){if(_0x6a2c80){_0x5e9538=_0x6a2c80;}return db['Setting']['find']({'where':{'id':_0x43f0e5[_0xb9c5('0x53')]['id']},'attributes':[_0xb9c5('0x5a'),'loginLogo',_0xb9c5('0x5c'),_0xb9c5('0x5d'),_0xb9c5('0x5e'),_0xb9c5('0x5f'),_0xb9c5('0x60'),'defaultFavicon'],'raw':!![]});})[_0xb9c5('0x1d')](handleEntityNotFound(_0x5c794d,null))['then'](function(_0x456fcf){if(_0x456fcf){var _0x55493f=_0x456fcf[_0xb9c5('0x5c')]&&fs[_0xb9c5('0x62')](path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x31cbc6,_[_0xb9c5('0x65')](_0x456fcf['preferred'])))?path['join'](config[_0xb9c5('0x64')],_0x31cbc6,_[_0xb9c5('0x65')](_0x456fcf[_0xb9c5('0x5c')])):path[_0xb9c5('0x63')](config['root'],_0x31cbc6,_[_0xb9c5('0x65')](_0xb9c5('0x72')));var _0x4577f2=_0xb9c5('0x66')+_[_0xb9c5('0x67')]('preferred');if(_0x456fcf[_0x4577f2]||!_0x5e9538['custom']||!_0x5e9538[_0xb9c5('0x5c')]){_0x55493f=path['join'](config[_0xb9c5('0x64')],_0x31cbc6,_[_0xb9c5('0x65')](_0xb9c5('0x72')));}if(!fs[_0xb9c5('0x62')](_0x55493f)){throw new db[(_0xb9c5('0x6e'))][(_0xb9c5('0x73'))](_[_0xb9c5('0x67')](_0xb9c5('0x5c'))+'\x20not\x20found');}return _0x5c794d[_0xb9c5('0x6b')](_0x55493f);}})[_0xb9c5('0x27')](handleError(_0x5c794d,null));};exports[_0xb9c5('0x74')]=function(_0x12ca22,_0x413cb4,_0x202050){if(_0x12ca22['file']&&_0x12ca22[_0xb9c5('0x55')][_0xb9c5('0x56')]){_0x12ca22[_0xb9c5('0x52')][_0xb9c5('0x5d')]=_0x12ca22['file'][_0xb9c5('0x56')];}return db[_0xb9c5('0x3a')][_0xb9c5('0x51')]({'where':{'id':_0x12ca22[_0xb9c5('0x53')]['id']}})[_0xb9c5('0x1d')](handleEntityNotFound(_0x413cb4,null))[_0xb9c5('0x1d')](saveUpdates(_0x12ca22[_0xb9c5('0x52')],null))[_0xb9c5('0x1d')](respondWithResult(_0x413cb4,null))[_0xb9c5('0x27')](handleError(_0x413cb4,null));};var utilLicense=require('../../config/license/util');exports[_0xb9c5('0x75')]=function(_0x49eedf,_0x588075,_0x27563f){var _0x1d9c1d='server/files/images/logos';var _0x187cc1={'custom':![]};return utilLicense[_0xb9c5('0x59')]()['then'](function(_0x530dfb){if(_0x530dfb){_0x187cc1=_0x530dfb;}return db[_0xb9c5('0x3a')][_0xb9c5('0x51')]({'where':{'id':_0x49eedf[_0xb9c5('0x53')]['id']},'attributes':[_0xb9c5('0x5a'),_0xb9c5('0x5b'),'preferred',_0xb9c5('0x5d'),'defaultLogo','defaultLoginLogo','defaultPreferred',_0xb9c5('0x61')],'raw':!![]});})[_0xb9c5('0x1d')](handleEntityNotFound(_0x588075,null))['then'](function(_0x2993a){if(_0x2993a){var _0x1a3a7d=_0x2993a[_0xb9c5('0x5d')]&&fs[_0xb9c5('0x62')](path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x1d9c1d,_[_0xb9c5('0x65')](_0x2993a[_0xb9c5('0x5d')])))?path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x1d9c1d,_[_0xb9c5('0x65')](_0x2993a[_0xb9c5('0x5d')])):path[_0xb9c5('0x63')](config['root'],_0x1d9c1d,_[_0xb9c5('0x65')](_0xb9c5('0x76')));var _0x30e708=_0xb9c5('0x66')+_['upperFirst'](_0xb9c5('0x5d'));if(_0x2993a[_0x30e708]||!_0x187cc1[_0xb9c5('0x68')]){_0x1a3a7d=path[_0xb9c5('0x63')](config[_0xb9c5('0x64')],_0x1d9c1d,_['toLower'](_0xb9c5('0x76')));}if(!fs[_0xb9c5('0x62')](_0x1a3a7d)){throw new db[(_0xb9c5('0x6e'))][(_0xb9c5('0x73'))](_[_0xb9c5('0x67')](_0xb9c5('0x5d'))+'\x20not\x20found');}return _0x588075[_0xb9c5('0x6b')](_0x1a3a7d);}})[_0xb9c5('0x27')](handleError(_0x588075,null));};exports[_0xb9c5('0x77')]=function(_0x2fdd9d,_0x466957){var _0x2b01de={'offset':moment()[_0xb9c5('0x78')]()};_0x2b01de[_0xb9c5('0x79')]=moment()['utcOffset'](_0x2b01de['offset'])[_0xb9c5('0x7a')](_0xb9c5('0x7b'));return _0x466957[_0xb9c5('0x34')](0xc8)[_0xb9c5('0x37')](_0x2b01de);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','define','Setting','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./setting.attributes'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'settings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x34e8=['settings','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./setting.attributes','exports','Setting'];(function(_0x53a5dc,_0x3bfa74){var _0xac4815=function(_0x5e7d1b){while(--_0x5e7d1b){_0x53a5dc['push'](_0x53a5dc['shift']());}};_0xac4815(++_0x3bfa74);}(_0x34e8,0x12c));var _0x834e=function(_0x2b8f11,_0x1f44db){_0x2b8f11=_0x2b8f11-0x0;var _0xef1604=_0x34e8[_0x2b8f11];return _0xef1604;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var logger=require(_0x834e('0x2'))(_0x834e('0x3'));var moment=require('moment');var BPromise=require(_0x834e('0x4'));var rp=require(_0x834e('0x5'));var fs=require('fs');var path=require(_0x834e('0x6'));var rimraf=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var attributes=require(_0x834e('0x9'));module[_0x834e('0xa')]=function(_0x4a2018,_0x858aa1){return _0x4a2018['define'](_0x834e('0xb'),attributes,{'tableName':_0x834e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a98=['options','raw','where','include','map','model','attributes','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','stringify','error','code','Setting,\x20%s,\x20%s','message','catch','ShowSetting','Setting','find'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0x9a98,0x19a));var _0x89a9=function(_0x46a74e,_0x5230f9){_0x46a74e=_0x46a74e-0x0;var _0x24d630=_0x9a98[_0x46a74e];return _0x24d630;};'use strict';var _=require(_0x89a9('0x0'));var util=require(_0x89a9('0x1'));var moment=require(_0x89a9('0x2'));var BPromise=require('bluebird');var rs=require(_0x89a9('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x89a9('0x4'))['db'];var utils=require(_0x89a9('0x5'));var logger=require('../../config/logger')(_0x89a9('0x6'));var config=require(_0x89a9('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x89a9('0x8')][_0x89a9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5ed7b6,_0x5817e9,_0x4e9932){return new BPromise(function(_0x42e028,_0x5a44ae){return client[_0x89a9('0xa')](_0x5ed7b6,_0x4e9932)[_0x89a9('0xb')](function(_0x4d1dfd){logger[_0x89a9('0xc')]('Setting,\x20%s,\x20%s',_0x5817e9,_0x89a9('0xd'));logger[_0x89a9('0xe')]('Setting,\x20%s,\x20%s,\x20%s',_0x5817e9,_0x89a9('0xd'),JSON[_0x89a9('0xf')](_0x4d1dfd));if(_0x4d1dfd['error']){if(_0x4d1dfd[_0x89a9('0x10')][_0x89a9('0x11')]===0x1f4){logger[_0x89a9('0x10')](_0x89a9('0x12'),_0x5817e9,_0x4d1dfd[_0x89a9('0x10')][_0x89a9('0x13')]);return _0x5a44ae(_0x4d1dfd['error'][_0x89a9('0x13')]);}logger[_0x89a9('0x10')]('Setting,\x20%s,\x20%s',_0x5817e9,_0x4d1dfd[_0x89a9('0x10')][_0x89a9('0x13')]);return _0x42e028(_0x4d1dfd['error'][_0x89a9('0x13')]);}else{logger[_0x89a9('0xc')](_0x89a9('0x12'),_0x5817e9,_0x89a9('0xd'));_0x42e028(_0x4d1dfd['result'][_0x89a9('0x13')]);}})[_0x89a9('0x14')](function(_0x2de2fe){logger[_0x89a9('0x10')]('Setting,\x20%s,\x20%s',_0x5817e9,_0x2de2fe);_0x5a44ae(_0x2de2fe);});});}exports[_0x89a9('0x15')]=function(_0x1f9af9){var _0xf4a073=this;return new Promise(function(_0x383e05,_0x58a9c7){return db[_0x89a9('0x16')][_0x89a9('0x17')]({'raw':_0x1f9af9[_0x89a9('0x18')]?_0x1f9af9['options'][_0x89a9('0x19')]===undefined?!![]:![]:!![],'where':_0x1f9af9[_0x89a9('0x18')]?_0x1f9af9[_0x89a9('0x18')][_0x89a9('0x1a')]||null:null,'attributes':_0x1f9af9[_0x89a9('0x18')]?_0x1f9af9[_0x89a9('0x18')]['attributes']||null:null,'include':_0x1f9af9['options']?_0x1f9af9[_0x89a9('0x18')][_0x89a9('0x1b')]?_[_0x89a9('0x1c')](_0x1f9af9[_0x89a9('0x18')][_0x89a9('0x1b')],function(_0x327864){return{'model':db[_0x327864['model']],'as':_0x327864['as'],'attributes':_0x327864['attributes'],'include':_0x327864['include']?_[_0x89a9('0x1c')](_0x327864[_0x89a9('0x1b')],function(_0x2ba36d){return{'model':db[_0x2ba36d[_0x89a9('0x1d')]],'as':_0x2ba36d['as'],'attributes':_0x2ba36d[_0x89a9('0x1e')],'include':_0x2ba36d[_0x89a9('0x1b')]?_[_0x89a9('0x1c')](_0x2ba36d['include'],function(_0x698ce7){return{'model':db[_0x698ce7['model']],'as':_0x698ce7['as'],'attributes':_0x698ce7[_0x89a9('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x198242){logger[_0x89a9('0xc')](_0x89a9('0x15'),_0x1f9af9);logger['debug'](_0x89a9('0x15'),_0x1f9af9,JSON[_0x89a9('0xf')](_0x198242));_0x383e05(_0x198242);})[_0x89a9('0x14')](function(_0x31c755){logger[_0x89a9('0x10')](_0x89a9('0x15'),_0x31c755['message'],_0x1f9af9);_0x58a9c7(_0xf4a073[_0x89a9('0x10')](0x1f4,_0x31c755[_0x89a9('0x13')]));});});};
\ No newline at end of file
+var _0x136e=['result','catch','ShowSetting','Setting','find','options','raw','where','attributes','map','include','model','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','code','error','message'];(function(_0x2fa264,_0x536e07){var _0x309976=function(_0x152b69){while(--_0x152b69){_0x2fa264['push'](_0x2fa264['shift']());}};_0x309976(++_0x536e07);}(_0x136e,0x90));var _0xe136=function(_0x217af8,_0x22ba48){_0x217af8=_0x217af8-0x0;var _0x511414=_0x136e[_0x217af8];return _0x511414;};'use strict';var _=require(_0xe136('0x0'));var util=require(_0xe136('0x1'));var moment=require(_0xe136('0x2'));var BPromise=require('bluebird');var rs=require(_0xe136('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe136('0x4'))['db'];var utils=require(_0xe136('0x5'));var logger=require(_0xe136('0x6'))('rpc');var config=require(_0xe136('0x7'));var jayson=require(_0xe136('0x8'));var client=jayson[_0xe136('0x9')][_0xe136('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x12afc6,_0x174445,_0xa7b449){return new BPromise(function(_0x4901ea,_0x3bba94){return client['request'](_0x12afc6,_0xa7b449)[_0xe136('0xb')](function(_0x1cf178){logger[_0xe136('0xc')](_0xe136('0xd'),_0x174445,_0xe136('0xe'));logger[_0xe136('0xf')](_0xe136('0x10'),_0x174445,_0xe136('0xe'),JSON[_0xe136('0x11')](_0x1cf178));if(_0x1cf178['error']){if(_0x1cf178['error'][_0xe136('0x12')]===0x1f4){logger[_0xe136('0x13')](_0xe136('0xd'),_0x174445,_0x1cf178[_0xe136('0x13')]['message']);return _0x3bba94(_0x1cf178[_0xe136('0x13')][_0xe136('0x14')]);}logger[_0xe136('0x13')]('Setting,\x20%s,\x20%s',_0x174445,_0x1cf178[_0xe136('0x13')]['message']);return _0x4901ea(_0x1cf178[_0xe136('0x13')][_0xe136('0x14')]);}else{logger['info'](_0xe136('0xd'),_0x174445,_0xe136('0xe'));_0x4901ea(_0x1cf178[_0xe136('0x15')][_0xe136('0x14')]);}})[_0xe136('0x16')](function(_0x2e5f08){logger[_0xe136('0x13')]('Setting,\x20%s,\x20%s',_0x174445,_0x2e5f08);_0x3bba94(_0x2e5f08);});});}exports[_0xe136('0x17')]=function(_0x2686d0){var _0x2268d1=this;return new Promise(function(_0x37d767,_0x41df1a){return db[_0xe136('0x18')][_0xe136('0x19')]({'raw':_0x2686d0[_0xe136('0x1a')]?_0x2686d0['options'][_0xe136('0x1b')]===undefined?!![]:![]:!![],'where':_0x2686d0[_0xe136('0x1a')]?_0x2686d0[_0xe136('0x1a')][_0xe136('0x1c')]||null:null,'attributes':_0x2686d0['options']?_0x2686d0[_0xe136('0x1a')][_0xe136('0x1d')]||null:null,'include':_0x2686d0[_0xe136('0x1a')]?_0x2686d0[_0xe136('0x1a')]['include']?_[_0xe136('0x1e')](_0x2686d0['options'][_0xe136('0x1f')],function(_0x5f00fc){return{'model':db[_0x5f00fc[_0xe136('0x20')]],'as':_0x5f00fc['as'],'attributes':_0x5f00fc[_0xe136('0x1d')],'include':_0x5f00fc[_0xe136('0x1f')]?_[_0xe136('0x1e')](_0x5f00fc[_0xe136('0x1f')],function(_0x34a5c2){return{'model':db[_0x34a5c2[_0xe136('0x20')]],'as':_0x34a5c2['as'],'attributes':_0x34a5c2[_0xe136('0x1d')],'include':_0x34a5c2[_0xe136('0x1f')]?_[_0xe136('0x1e')](_0x34a5c2[_0xe136('0x1f')],function(_0x5ac96a){return{'model':db[_0x5ac96a[_0xe136('0x20')]],'as':_0x5ac96a['as'],'attributes':_0x5ac96a['attributes']};}):[]};}):[]};}):[]:[]})[_0xe136('0xb')](function(_0x368367){logger[_0xe136('0xc')](_0xe136('0x17'),_0x2686d0);logger[_0xe136('0xf')](_0xe136('0x17'),_0x2686d0,JSON[_0xe136('0x11')](_0x368367));_0x37d767(_0x368367);})[_0xe136('0x16')](function(_0x2d181d){logger[_0xe136('0x13')](_0xe136('0x17'),_0x2d181d[_0xe136('0x14')],_0x2686d0);_0x41df1a(_0x2268d1[_0xe136('0x13')](0x1f4,_0x2d181d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status','statusGet','/:id/users','post','create','/:id/notify','notify','put','delete','removeAnswers','path','connect-timeout','express'];(function(_0x1a5ff3,_0x2fe3f2){var _0x2ffb8b=function(_0x281463){while(--_0x281463){_0x1a5ff3['push'](_0x1a5ff3['shift']());}};_0x2ffb8b(++_0x2fe3f2);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x39bc4a,_0x595147){_0x39bc4a=_0x39bc4a-0x0;var _0x436b0d=_0x7fbe[_0x39bc4a];return _0x436b0d;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe7fb('0x0'));var timeout=require(_0xe7fb('0x1'));var express=require(_0xe7fb('0x2'));var router=express[_0xe7fb('0x3')]();var fs_extra=require(_0xe7fb('0x4'));var auth=require(_0xe7fb('0x5'));var interaction=require(_0xe7fb('0x6'));var config=require(_0xe7fb('0x7'));var controller=require(_0xe7fb('0x8'));router[_0xe7fb('0x9')]('/',auth[_0xe7fb('0xa')](),controller[_0xe7fb('0xb')]);router[_0xe7fb('0x9')](_0xe7fb('0xc'),auth['isAuthenticated'](),controller[_0xe7fb('0xd')]);router[_0xe7fb('0x9')](_0xe7fb('0xe'),auth[_0xe7fb('0xa')](),controller['show']);router['get'](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x10')]);router[_0xe7fb('0x9')](_0xe7fb('0x11'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x12')]);router[_0xe7fb('0x9')](_0xe7fb('0x13'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x14')]);router[_0xe7fb('0x9')](_0xe7fb('0x15'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x16')]);router['get'](_0xe7fb('0x17'),controller[_0xe7fb('0x18')]);router['get'](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['getAgents']);router[_0xe7fb('0x1a')]('/',auth['isAuthenticated'](),controller[_0xe7fb('0x1b')]);router[_0xe7fb('0x1a')](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller['addDisposition']);router[_0xe7fb('0x1a')]('/:id/canned_answers',auth[_0xe7fb('0xa')](),controller['addAnswer']);router[_0xe7fb('0x1a')](_0xe7fb('0x1c'),controller[_0xe7fb('0x1d')]);router[_0xe7fb('0x1a')]('/:id/applications',auth[_0xe7fb('0xa')](),controller['addApplications']);router[_0xe7fb('0x1a')]('/:id/send',auth[_0xe7fb('0xa')](),controller['send']);router[_0xe7fb('0x1a')](_0xe7fb('0x17'),controller['status']);router[_0xe7fb('0x1a')](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['addAgents']);router[_0xe7fb('0x1e')](_0xe7fb('0xe'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xe7fb('0xe'),auth['isAuthenticated'](),controller['destroy']);router[_0xe7fb('0x1f')](_0xe7fb('0xf'),auth[_0xe7fb('0xa')](),controller['removeDispositions']);router[_0xe7fb('0x1f')](_0xe7fb('0x11'),auth[_0xe7fb('0xa')](),controller[_0xe7fb('0x20')]);router[_0xe7fb('0x1f')](_0xe7fb('0x19'),auth[_0xe7fb('0xa')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0xabce=['/:id/users','getAgents','create','post','addAnswer','/:id/notify','notify','/:id/send','send','status','addAgents','put','update','delete','/:id','destroy','removeDispositions','removeAnswers','exports','multer','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','get','describe','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status'];(function(_0x53f1c7,_0x4b046a){var _0x13f023=function(_0x113063){while(--_0x113063){_0x53f1c7['push'](_0x53f1c7['shift']());}};_0x13f023(++_0x4b046a);}(_0xabce,0x103));var _0xeabc=function(_0x34021d,_0x753aa6){_0x34021d=_0x34021d-0x0;var _0x16597b=_0xabce[_0x34021d];return _0x16597b;};'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 fs_extra=require('fs-extra');var auth=require(_0xeabc('0x5'));var interaction=require(_0xeabc('0x6'));var config=require(_0xeabc('0x7'));var controller=require('./smsAccount.controller');router['get']('/',auth[_0xeabc('0x8')](),controller['index']);router[_0xeabc('0x9')]('/describe',auth[_0xeabc('0x8')](),controller[_0xeabc('0xa')]);router[_0xeabc('0x9')]('/:id',auth[_0xeabc('0x8')](),controller[_0xeabc('0xb')]);router[_0xeabc('0x9')](_0xeabc('0xc'),auth[_0xeabc('0x8')](),controller[_0xeabc('0xd')]);router[_0xeabc('0x9')](_0xeabc('0xe'),auth[_0xeabc('0x8')](),controller[_0xeabc('0xf')]);router[_0xeabc('0x9')](_0xeabc('0x10'),auth[_0xeabc('0x8')](),controller[_0xeabc('0x11')]);router[_0xeabc('0x9')](_0xeabc('0x12'),auth['isAuthenticated'](),controller[_0xeabc('0x13')]);router[_0xeabc('0x9')](_0xeabc('0x14'),controller['statusGet']);router['get'](_0xeabc('0x15'),auth[_0xeabc('0x8')](),controller[_0xeabc('0x16')]);router['post']('/',auth[_0xeabc('0x8')](),controller[_0xeabc('0x17')]);router['post']('/:id/dispositions',auth[_0xeabc('0x8')](),controller['addDisposition']);router[_0xeabc('0x18')](_0xeabc('0xe'),auth[_0xeabc('0x8')](),controller[_0xeabc('0x19')]);router[_0xeabc('0x18')](_0xeabc('0x1a'),controller[_0xeabc('0x1b')]);router[_0xeabc('0x18')]('/:id/applications',auth[_0xeabc('0x8')](),controller['addApplications']);router[_0xeabc('0x18')](_0xeabc('0x1c'),auth['isAuthenticated'](),controller[_0xeabc('0x1d')]);router[_0xeabc('0x18')](_0xeabc('0x14'),controller[_0xeabc('0x1e')]);router[_0xeabc('0x18')]('/:id/users',auth[_0xeabc('0x8')](),controller[_0xeabc('0x1f')]);router[_0xeabc('0x20')]('/:id',auth[_0xeabc('0x8')](),controller[_0xeabc('0x21')]);router[_0xeabc('0x22')](_0xeabc('0x23'),auth['isAuthenticated'](),controller[_0xeabc('0x24')]);router['delete'](_0xeabc('0xc'),auth['isAuthenticated'](),controller[_0xeabc('0x25')]);router[_0xeabc('0x22')](_0xeabc('0xe'),auth[_0xeabc('0x8')](),controller[_0xeabc('0x26')]);router[_0xeabc('0x22')](_0xeabc('0x15'),auth['isAuthenticated'](),controller['removeAgents']);module[_0xeabc('0x27')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4b2=['INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','sequelize','name','STRING','ENUM','twilio','skebby','clicksend','plivo','clickatell','bandwidth','csc','infobip','BOOLEAN','TEXT'];(function(_0x4792c8,_0x5158a1){var _0x35edb1=function(_0x2472d3){while(--_0x2472d3){_0x4792c8['push'](_0x4792c8['shift']());}};_0x35edb1(++_0x5158a1);}(_0xb4b2,0xad));var _0x2b4b=function(_0x10d39e,_0x568a9e){_0x10d39e=_0x10d39e-0x0;var _0x391e65=_0xb4b2[_0x10d39e];return _0x391e65;};'use strict';var Sequelize=require(_0x2b4b('0x0'));var rs=require('randomstring');module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0x2b4b('0x1'),'allowNull':![]},'key':{'type':Sequelize[_0x2b4b('0x2')],'allowNull':![]},'remote':{'type':Sequelize[_0x2b4b('0x2')],'allowNull':![]},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs['generate']();}},'phone':{'type':Sequelize[_0x2b4b('0x2')]},'type':{'type':Sequelize[_0x2b4b('0x3')](_0x2b4b('0x4'),_0x2b4b('0x5'),'connectel',_0x2b4b('0x6'),_0x2b4b('0x7'),_0x2b4b('0x8'),_0x2b4b('0x9'),_0x2b4b('0xa'),_0x2b4b('0xb'),'intelepeer')},'accountSid':{'type':Sequelize[_0x2b4b('0x2')]},'authId':{'type':Sequelize[_0x2b4b('0x2')]},'authToken':{'type':Sequelize[_0x2b4b('0x2')]},'smsMethod':{'type':Sequelize[_0x2b4b('0x3')]('SI','TI','GP')},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize[_0x2b4b('0x2')]},'apiKey':{'type':Sequelize['STRING']},'applicationId':{'type':Sequelize['STRING']},'accountId':{'type':Sequelize[_0x2b4b('0x2')]},'senderString':{'type':Sequelize[_0x2b4b('0x2')]},'deliveryReport':{'type':Sequelize[_0x2b4b('0xc')],'defaultValue':![]},'description':{'type':Sequelize[_0x2b4b('0x2')]},'notificationTemplate':{'type':Sequelize[_0x2b4b('0xd')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x2b4b('0xc')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x2b4b('0xc')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x2b4b('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x2b4b('0xc')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x2b4b('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x2b4b('0xc')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x2b4b('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize['STRING']},'mandatoryDispositionPauseId':{'type':Sequelize[_0x2b4b('0xe')],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x2b4b('0xc')],'defaultValue':![],'comment':_0x2b4b('0xf'),'set':function(_0x526d31){if(!_0x526d31)this[_0x2b4b('0x10')]('mandatoryDispositionPauseId',null);this[_0x2b4b('0x10')]('mandatoryDisposition',_0x526d31);}}};
\ No newline at end of file
+var _0xd444=['TEXT','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','setDataValue','mandatoryDispositionPauseId','randomstring','exports','STRING','generate','ENUM','twilio','skebby','plivo','clickatell','bandwidth','infobip','intelepeer'];(function(_0x3bce39,_0x3edeff){var _0x424c8f=function(_0x2d31ea){while(--_0x2d31ea){_0x3bce39['push'](_0x3bce39['shift']());}};_0x424c8f(++_0x3edeff);}(_0xd444,0x126));var _0x4d44=function(_0x5c3c0b,_0x4ee35e){_0x5c3c0b=_0x5c3c0b-0x0;var _0x52ecd2=_0xd444[_0x5c3c0b];return _0x52ecd2;};'use strict';var Sequelize=require('sequelize');var rs=require(_0x4d44('0x0'));module[_0x4d44('0x1')]={'name':{'type':Sequelize[_0x4d44('0x2')],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0x4d44('0x2')],'allowNull':![]},'remote':{'type':Sequelize[_0x4d44('0x2')],'allowNull':![]},'token':{'type':Sequelize[_0x4d44('0x2')],'defaultValue':function(){return rs[_0x4d44('0x3')]();}},'phone':{'type':Sequelize[_0x4d44('0x2')]},'type':{'type':Sequelize[_0x4d44('0x4')](_0x4d44('0x5'),_0x4d44('0x6'),'connectel','clicksend',_0x4d44('0x7'),_0x4d44('0x8'),_0x4d44('0x9'),'csc',_0x4d44('0xa'),_0x4d44('0xb'))},'accountSid':{'type':Sequelize[_0x4d44('0x2')]},'authId':{'type':Sequelize[_0x4d44('0x2')]},'authToken':{'type':Sequelize['STRING']},'smsMethod':{'type':Sequelize[_0x4d44('0x4')]('SI','TI','GP')},'username':{'type':Sequelize[_0x4d44('0x2')]},'password':{'type':Sequelize[_0x4d44('0x2')]},'apiKey':{'type':Sequelize[_0x4d44('0x2')]},'applicationId':{'type':Sequelize['STRING']},'accountId':{'type':Sequelize[_0x4d44('0x2')]},'senderString':{'type':Sequelize[_0x4d44('0x2')]},'deliveryReport':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'description':{'type':Sequelize[_0x4d44('0x2')]},'notificationTemplate':{'type':Sequelize[_0x4d44('0xc')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x4d44('0xd')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x4d44('0xd')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4d44('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4d44('0xd')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4d44('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x4d44('0x2')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x4d44('0xe')],'comment':_0x4d44('0xf')},'mandatoryDisposition':{'type':Sequelize[_0x4d44('0xd')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x1b5a80){if(!_0x1b5a80)this[_0x4d44('0x10')](_0x4d44('0x11'),null);this[_0x4d44('0x10')]('mandatoryDisposition',_0x1b5a80);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfee=['ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./smsAccount.socket','register','jayson/promise','client','http','then','info','SmsAccount,\x20%s,\x20%s','debug','SmsAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','sendStatus','status','json','offset','undefined','count','Content-Range','apply','reject','destroy','get','UserProfileResource','end','name','send','index','Pause','mandatoryDispositionPause','SmsAccount','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','find','create','body','user','role','SmsAccounts','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','addDisposition','SmsAccountId','findOne','Disposition','order','removeDispositions','addAnswer','CannedAnswer','removeAnswers','ids','notify','sms','SmsApplication','Applications','applications','orderBy','priority','asc','account','CmContact','Sequelize','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','from','From','Body','MessageSid','skebby','sender','text','connectel','messageId','message_id','Text','MessageUUID','infobip','results','originatingAddress','replyMessageId','bandwidth','intelepeer','refid','ValidationError','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','DESC','list','contact','SmsInteraction','spread','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','ContactId','UserId','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','entity\x20found','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','set','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','addApplications','sequelize','transaction','findAndCountAll','getApplications','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','to\x20is\x20mandatory','List','out','SmsMessage','Messages','dataValues','received\x20delivery\x20report\x20from','inspect','skebby_dispatch_id','requestid','statusInt','clicksend','status_code','groupName','clickatell','redif','DELIVERED','error_code','message-delivered','ACCEPTD','csc','state','message-id','addAgents','omit','emit','userSmsAccount:save','removeAgents','isArray','userSmsAccount:remove','getAgents','rimraf','zip-dir','mustache','util','path','sox'];(function(_0x3fc09f,_0x4730a2){var _0x514661=function(_0x143fc5){while(--_0x143fc5){_0x3fc09f['push'](_0x3fc09f['shift']());}};_0x514661(++_0x4730a2);}(_0xbfee,0xda));var _0xebfe=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xbfee[_0x19950b];return _0x3c6b41;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xebfe('0x0'));var zipdir=require(_0xebfe('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xebfe('0x2'));var util=require(_0xebfe('0x3'));var path=require(_0xebfe('0x4'));var sox=require(_0xebfe('0x5'));var csv=require('to-csv');var ejs=require(_0xebfe('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xebfe('0x7'));var squel=require(_0xebfe('0x8'));var crypto=require(_0xebfe('0x9'));var jsforce=require(_0xebfe('0xa'));var deskjs=require(_0xebfe('0xb'));var toCsv=require('to-csv');var querystring=require(_0xebfe('0xc'));var Papa=require('papaparse');var Redis=require(_0xebfe('0xd'));var authService=require(_0xebfe('0xe'));var qs=require(_0xebfe('0xf'));var as=require(_0xebfe('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xebfe('0x11'));var utils=require(_0xebfe('0x12'));var config=require(_0xebfe('0x13'));var licenseUtil=require(_0xebfe('0x14'));var db=require(_0xebfe('0x15'))['db'];config[_0xebfe('0x16')]=_[_0xebfe('0x17')](config['redis'],{'host':_0xebfe('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xebfe('0x16')]));require(_0xebfe('0x19'))[_0xebfe('0x1a')](socket);var jayson=require(_0xebfe('0x1b'));var client=jayson[_0xebfe('0x1c')][_0xebfe('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x446f11,_0x2d7386,_0x1e8f57,_0x18e1f2){return new BPromise(function(_0x37230d,_0x3a326f){var _0x3a573a=_0x18e1f2||client;return _0x3a573a['request'](_0x446f11,_0x1e8f57)[_0xebfe('0x1e')](function(_0xb2b6cb){logger[_0xebfe('0x1f')](_0xebfe('0x20'),_0x2d7386,'request\x20sent');logger[_0xebfe('0x21')](_0xebfe('0x22'),_0x2d7386,_0xebfe('0x23'),JSON[_0xebfe('0x24')](_0xb2b6cb));if(_0xb2b6cb['error']){if(_0xb2b6cb[_0xebfe('0x25')]['code']===0x1f4){logger[_0xebfe('0x25')](_0xebfe('0x20'),_0x2d7386,_0xb2b6cb[_0xebfe('0x25')][_0xebfe('0x26')]);return _0x3a326f(_0xb2b6cb[_0xebfe('0x25')][_0xebfe('0x26')]);}logger[_0xebfe('0x25')](_0xebfe('0x20'),_0x2d7386,_0xb2b6cb[_0xebfe('0x25')]['message']);return _0x37230d(_0xb2b6cb[_0xebfe('0x25')][_0xebfe('0x26')]);}else{logger[_0xebfe('0x1f')](_0xebfe('0x20'),_0x2d7386,'request\x20sent');_0x37230d(_0xb2b6cb[_0xebfe('0x27')][_0xebfe('0x26')]);}})['catch'](function(_0x29ad91){logger['error'](_0xebfe('0x20'),_0x2d7386,_0x29ad91);_0x3a326f(_0x29ad91);});});}function respondWithStatusCode(_0x4ba002,_0x5c11d0){_0x5c11d0=_0x5c11d0||0xcc;return function(_0x207995){if(_0x207995){return _0x4ba002[_0xebfe('0x28')](_0x5c11d0);}return _0x4ba002[_0xebfe('0x29')](_0x5c11d0)['end']();};}function respondWithResult(_0x397501,_0x5ab4b7){_0x5ab4b7=_0x5ab4b7||0xc8;return function(_0x5b91a3){if(_0x5b91a3){return _0x397501[_0xebfe('0x29')](_0x5ab4b7)[_0xebfe('0x2a')](_0x5b91a3);}};}function respondWithFilteredResult(_0x318724,_0x368235){return function(_0x45fc02){if(_0x45fc02){var _0xaef2b5=typeof _0x368235[_0xebfe('0x2b')]===_0xebfe('0x2c')&&typeof _0x368235['limit']===_0xebfe('0x2c');var _0x361c58=_0x45fc02[_0xebfe('0x2d')];var _0x2b409b=_0xaef2b5?0x0:_0x368235[_0xebfe('0x2b')];var _0x276d57=_0xaef2b5?_0x45fc02[_0xebfe('0x2d')]:_0x368235[_0xebfe('0x2b')]+_0x368235['limit'];var _0x3148c2;if(_0x276d57>=_0x361c58){_0x276d57=_0x361c58;_0x3148c2=0xc8;}else{_0x3148c2=0xce;}_0x318724[_0xebfe('0x29')](_0x3148c2);return _0x318724['set'](_0xebfe('0x2e'),_0x2b409b+'-'+_0x276d57+'/'+_0x361c58)[_0xebfe('0x2a')](_0x45fc02);}return null;};}function patchUpdates(_0x3152c4){return function(_0x3630b4){try{jsonpatch[_0xebfe('0x2f')](_0x3630b4,_0x3152c4,!![]);}catch(_0x12c5dc){return BPromise[_0xebfe('0x30')](_0x12c5dc);}return _0x3630b4['save']();};}function saveUpdates(_0x1a5c88,_0x38de65){return function(_0x2e479e){if(_0x2e479e){return _0x2e479e['update'](_0x1a5c88)[_0xebfe('0x1e')](function(_0x48824c){return _0x48824c;});}return null;};}function removeEntity(_0x51a886,_0x575276){return function(_0x4cc996){if(_0x4cc996){return _0x4cc996[_0xebfe('0x31')]()[_0xebfe('0x1e')](function(){var _0x4a40fe=_0x4cc996[_0xebfe('0x32')]({'plain':!![]});var _0x56ed3c='SmsAccounts';return db[_0xebfe('0x33')][_0xebfe('0x31')]({'where':{'type':_0x56ed3c,'resourceId':_0x4a40fe['id']}})[_0xebfe('0x1e')](function(){return _0x4cc996;});})[_0xebfe('0x1e')](function(){_0x51a886[_0xebfe('0x29')](0xcc)[_0xebfe('0x34')]();});}};}function handleEntityNotFound(_0x249987,_0x17d603){return function(_0x2d1f8e){if(!_0x2d1f8e){_0x249987[_0xebfe('0x28')](0x194);}return _0x2d1f8e;};}function handleError(_0xd20593,_0x36be7c){_0x36be7c=_0x36be7c||0x1f4;return function(_0x3e5398){logger[_0xebfe('0x25')](_0x3e5398['stack']);if(_0x3e5398[_0xebfe('0x35')]){delete _0x3e5398[_0xebfe('0x35')];}_0xd20593[_0xebfe('0x29')](_0x36be7c)[_0xebfe('0x36')](_0x3e5398);};}exports[_0xebfe('0x37')]=function(_0xd2d6c6,_0x5b69cc){var _0x17991c={'include':[{'model':db[_0xebfe('0x38')],'as':_0xebfe('0x39')}]},_0x44822e={},_0x876673={'count':0x0,'rows':[]};var _0x387f2b=_['map'](db[_0xebfe('0x3a')][_0xebfe('0x3b')],function(_0x4e9b71){return{'name':_0x4e9b71[_0xebfe('0x3c')],'type':_0x4e9b71[_0xebfe('0x3d')][_0xebfe('0x3e')]};});_0x44822e[_0xebfe('0x3f')]=_[_0xebfe('0x40')](_0x387f2b,_0xebfe('0x35'));_0x44822e[_0xebfe('0x41')]=_[_0xebfe('0x42')](_0xd2d6c6['query']);_0x44822e['filters']=_[_0xebfe('0x43')](_0x44822e[_0xebfe('0x3f')],_0x44822e[_0xebfe('0x41')]);_0x17991c[_0xebfe('0x44')]=_[_0xebfe('0x43')](_0x44822e[_0xebfe('0x3f')],qs['fields'](_0xd2d6c6[_0xebfe('0x41')][_0xebfe('0x45')]));_0x17991c['attributes']=_0x17991c[_0xebfe('0x44')][_0xebfe('0x46')]?_0x17991c[_0xebfe('0x44')]:_0x44822e['model'];if(!_0xd2d6c6[_0xebfe('0x41')][_0xebfe('0x47')](_0xebfe('0x48'))){_0x17991c[_0xebfe('0x49')]=qs[_0xebfe('0x49')](_0xd2d6c6['query'][_0xebfe('0x49')]);_0x17991c['offset']=qs[_0xebfe('0x2b')](_0xd2d6c6[_0xebfe('0x41')]['offset']);}_0x17991c['order']=qs['sort'](_0xd2d6c6[_0xebfe('0x41')][_0xebfe('0x4a')]);_0x17991c[_0xebfe('0x4b')]=qs[_0xebfe('0x4c')](_[_0xebfe('0x4d')](_0xd2d6c6['query'],_0x44822e['filters']),_0x387f2b);if(_0xd2d6c6[_0xebfe('0x41')][_0xebfe('0x4e')]){_0x17991c[_0xebfe('0x4b')]=_[_0xebfe('0x4f')](_0x17991c[_0xebfe('0x4b')],{'$or':_[_0xebfe('0x40')](_0x387f2b,function(_0x37fb71){if(_0x37fb71[_0xebfe('0x3d')]!==_0xebfe('0x50')){var _0x3e0470={};_0x3e0470[_0x37fb71[_0xebfe('0x35')]]={'$like':'%'+_0xd2d6c6[_0xebfe('0x41')][_0xebfe('0x4e')]+'%'};return _0x3e0470;}})});}_0x17991c=_['merge']({},_0x17991c,_0xd2d6c6[_0xebfe('0x51')]);var _0x336865={'where':_0x17991c[_0xebfe('0x4b')]};return db[_0xebfe('0x3a')][_0xebfe('0x2d')](_0x336865)[_0xebfe('0x1e')](function(_0xc5c11d){_0x876673['count']=_0xc5c11d;if(_0xd2d6c6[_0xebfe('0x41')][_0xebfe('0x52')]){_0x17991c[_0xebfe('0x53')]=[{'all':!![]}];}return db[_0xebfe('0x3a')][_0xebfe('0x54')](_0x17991c);})[_0xebfe('0x1e')](function(_0x2983b6){_0x876673[_0xebfe('0x55')]=_0x2983b6;return _0x876673;})[_0xebfe('0x1e')](respondWithFilteredResult(_0x5b69cc,_0x17991c))[_0xebfe('0x56')](handleError(_0x5b69cc,null));};exports['show']=function(_0x5418f8,_0x449e4a){var _0x13d5ae={'raw':![],'where':{'id':_0x5418f8[_0xebfe('0x57')]['id']},'include':[{'model':db[_0xebfe('0x38')],'as':_0xebfe('0x39')}]},_0x4feb49={};_0x4feb49[_0xebfe('0x3f')]=_[_0xebfe('0x42')](db[_0xebfe('0x3a')][_0xebfe('0x3b')]);_0x4feb49[_0xebfe('0x41')]=_[_0xebfe('0x42')](_0x5418f8[_0xebfe('0x41')]);_0x4feb49['filters']=_[_0xebfe('0x43')](_0x4feb49[_0xebfe('0x3f')],_0x4feb49[_0xebfe('0x41')]);_0x13d5ae[_0xebfe('0x44')]=_[_0xebfe('0x43')](_0x4feb49[_0xebfe('0x3f')],qs['fields'](_0x5418f8['query'][_0xebfe('0x45')]));_0x13d5ae[_0xebfe('0x44')]=_0x13d5ae[_0xebfe('0x44')][_0xebfe('0x46')]?_0x13d5ae[_0xebfe('0x44')]:_0x4feb49[_0xebfe('0x3f')];if(_0x5418f8[_0xebfe('0x41')]['includeAll']){_0x13d5ae[_0xebfe('0x53')]=[{'all':!![]}];}_0x13d5ae=_[_0xebfe('0x4f')]({},_0x13d5ae,_0x5418f8['options']);return db['SmsAccount'][_0xebfe('0x58')](_0x13d5ae)['then'](handleEntityNotFound(_0x449e4a,null))[_0xebfe('0x1e')](respondWithResult(_0x449e4a,null))[_0xebfe('0x56')](handleError(_0x449e4a,null));};exports['create']=function(_0xb35f8a,_0x2d09df){return db[_0xebfe('0x3a')][_0xebfe('0x59')](_0xb35f8a[_0xebfe('0x5a')],{})[_0xebfe('0x1e')](function(_0x5cccb6){var _0x27f567=_0xb35f8a[_0xebfe('0x5b')][_0xebfe('0x32')]({'plain':!![]});if(!_0x27f567)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x27f567[_0xebfe('0x5c')]===_0xebfe('0x5b')){var _0x178f92=_0x5cccb6[_0xebfe('0x32')]({'plain':!![]});var _0x1e22c3=_0xebfe('0x5d');return db[_0xebfe('0x5e')][_0xebfe('0x58')]({'where':{'name':_0x1e22c3,'userProfileId':_0x27f567[_0xebfe('0x5f')]},'raw':!![]})[_0xebfe('0x1e')](function(_0x4ef9fa){if(_0x4ef9fa&&_0x4ef9fa['autoAssociation']===0x0){return db[_0xebfe('0x33')][_0xebfe('0x59')]({'name':_0x178f92[_0xebfe('0x35')],'resourceId':_0x178f92['id'],'type':_0x4ef9fa[_0xebfe('0x35')],'sectionId':_0x4ef9fa['id']},{})[_0xebfe('0x1e')](function(){return _0x5cccb6;});}else{return _0x5cccb6;}})[_0xebfe('0x56')](function(_0xc37936){logger[_0xebfe('0x25')](_0xebfe('0x60'),_0xc37936);throw _0xc37936;});}return _0x5cccb6;})[_0xebfe('0x1e')](respondWithResult(_0x2d09df,0xc9))['catch'](handleError(_0x2d09df,null));};exports[_0xebfe('0x61')]=function(_0x3a21a7,_0x496f65){if(_0x3a21a7[_0xebfe('0x5a')]['id']){delete _0x3a21a7[_0xebfe('0x5a')]['id'];}return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x3a21a7['params']['id']},'include':[{'model':db['Pause'],'as':_0xebfe('0x39')}]})[_0xebfe('0x1e')](handleEntityNotFound(_0x496f65,null))[_0xebfe('0x1e')](saveUpdates(_0x3a21a7[_0xebfe('0x5a')],null))['then'](respondWithResult(_0x496f65,null))[_0xebfe('0x56')](handleError(_0x496f65,null));};exports[_0xebfe('0x31')]=function(_0x800953,_0x530010){return db[_0xebfe('0x3a')]['find']({'where':{'id':_0x800953['params']['id']}})['then'](handleEntityNotFound(_0x530010,null))[_0xebfe('0x1e')](removeEntity(_0x530010,null))[_0xebfe('0x56')](handleError(_0x530010,null));};exports[_0xebfe('0x62')]=function(_0x3674d0,_0x2e612e){return db[_0xebfe('0x3a')][_0xebfe('0x62')]()[_0xebfe('0x1e')](respondWithResult(_0x2e612e,null))[_0xebfe('0x56')](handleError(_0x2e612e,null));};exports[_0xebfe('0x63')]=function(_0x5e06d1,_0x5e7347,_0x31a097){if(_0x5e06d1[_0xebfe('0x5a')]['id']){delete _0x5e06d1[_0xebfe('0x5a')]['id'];}return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x5e06d1['params']['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x5e7347,null))[_0xebfe('0x1e')](function(_0x104919){if(_0x104919){_0x5e06d1[_0xebfe('0x5a')][_0xebfe('0x64')]=_0x104919['id'];return db['Disposition'][_0xebfe('0x59')](_0x5e06d1[_0xebfe('0x5a')]);}})[_0xebfe('0x1e')](respondWithResult(_0x5e7347,null))['catch'](handleError(_0x5e7347,null));};exports['getDispositions']=function(_0x4f1687,_0x5d5a75,_0x58c905){var _0x2e0be4={'raw':![],'where':{}};var _0x78dc4e={};var _0x9cfe87={'count':0x0,'rows':[]};return db[_0xebfe('0x3a')][_0xebfe('0x65')]({'where':{'id':_0x4f1687[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x5d5a75,null))[_0xebfe('0x1e')](function(_0x15e139){if(_0x15e139){_0x78dc4e[_0xebfe('0x3f')]=_[_0xebfe('0x42')](db[_0xebfe('0x66')][_0xebfe('0x3b')]);_0x78dc4e[_0xebfe('0x41')]=_['keys'](_0x4f1687['query']);_0x78dc4e[_0xebfe('0x4c')]=_['intersection'](_0x78dc4e[_0xebfe('0x3f')],_0x78dc4e[_0xebfe('0x41')]);_0x2e0be4[_0xebfe('0x44')]=_[_0xebfe('0x43')](_0x78dc4e[_0xebfe('0x3f')],qs[_0xebfe('0x45')](_0x4f1687[_0xebfe('0x41')]['fields']));_0x2e0be4[_0xebfe('0x44')]=_0x2e0be4[_0xebfe('0x44')][_0xebfe('0x46')]?_0x2e0be4['attributes']:_0x78dc4e['model'];if(!_0x4f1687[_0xebfe('0x41')][_0xebfe('0x47')](_0xebfe('0x48'))){_0x2e0be4[_0xebfe('0x49')]=qs['limit'](_0x4f1687[_0xebfe('0x41')][_0xebfe('0x49')]);_0x2e0be4[_0xebfe('0x2b')]=qs[_0xebfe('0x2b')](_0x4f1687[_0xebfe('0x41')]['offset']);}_0x2e0be4[_0xebfe('0x67')]=qs[_0xebfe('0x4a')](_0x4f1687[_0xebfe('0x41')][_0xebfe('0x4a')]);_0x2e0be4[_0xebfe('0x4b')]=qs[_0xebfe('0x4c')](_[_0xebfe('0x4d')](_0x4f1687['query'],_0x78dc4e[_0xebfe('0x4c')]));_0x2e0be4[_0xebfe('0x4b')][_0xebfe('0x64')]=_0x15e139['id'];if(_0x4f1687[_0xebfe('0x41')][_0xebfe('0x4e')]){_0x2e0be4[_0xebfe('0x4b')]=_[_0xebfe('0x4f')](_0x2e0be4[_0xebfe('0x4b')],{'$or':_['map'](_0x2e0be4[_0xebfe('0x44')],function(_0x3d4e53){var _0x1edbed={};_0x1edbed[_0x3d4e53]={'$like':'%'+_0x4f1687[_0xebfe('0x41')][_0xebfe('0x4e')]+'%'};return _0x1edbed;})});}_0x2e0be4=_[_0xebfe('0x4f')]({},_0x2e0be4,_0x4f1687[_0xebfe('0x51')]);return db[_0xebfe('0x66')][_0xebfe('0x2d')]({'where':_0x2e0be4[_0xebfe('0x4b')]})[_0xebfe('0x1e')](function(_0x5346e5){_0x9cfe87[_0xebfe('0x2d')]=_0x5346e5;if(_0x4f1687[_0xebfe('0x41')]['includeAll']){_0x2e0be4[_0xebfe('0x53')]=[{'all':!![]}];}return db[_0xebfe('0x66')][_0xebfe('0x54')](_0x2e0be4);})[_0xebfe('0x1e')](function(_0x329fc7){_0x9cfe87[_0xebfe('0x55')]=_0x329fc7;return _0x9cfe87;});}})[_0xebfe('0x1e')](respondWithFilteredResult(_0x5d5a75,_0x2e0be4))[_0xebfe('0x56')](handleError(_0x5d5a75,null));};exports[_0xebfe('0x68')]=function(_0x239241,_0x3363da,_0x1066f8){return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x239241[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x3363da,null))['then'](function(_0x88802f){if(_0x88802f){return _0x88802f['removeDispositions'](_0x239241[_0xebfe('0x41')]['ids']);}})['then'](respondWithStatusCode(_0x3363da,null))[_0xebfe('0x56')](handleError(_0x3363da,null));};exports[_0xebfe('0x69')]=function(_0x49182d,_0x5ce0d8,_0xc60475){if(_0x49182d[_0xebfe('0x5a')]['id']){delete _0x49182d[_0xebfe('0x5a')]['id'];}return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x49182d[_0xebfe('0x57')]['id']}})['then'](handleEntityNotFound(_0x5ce0d8,null))['then'](function(_0x30698a){if(_0x30698a){_0x49182d['body'][_0xebfe('0x64')]=_0x30698a['id'];return db[_0xebfe('0x6a')]['create'](_0x49182d[_0xebfe('0x5a')]);}})[_0xebfe('0x1e')](respondWithResult(_0x5ce0d8,null))[_0xebfe('0x56')](handleError(_0x5ce0d8,null));};exports['getAnswers']=function(_0x5a98c0,_0x17c4f2,_0x468c2d){var _0x3f59b5={'raw':![],'where':{}};var _0x17cd1e={};var _0xc8384a={'count':0x0,'rows':[]};return db[_0xebfe('0x3a')]['findOne']({'where':{'id':_0x5a98c0[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x17c4f2,null))[_0xebfe('0x1e')](function(_0x38ce63){if(_0x38ce63){_0x17cd1e[_0xebfe('0x3f')]=_[_0xebfe('0x42')](db['CannedAnswer'][_0xebfe('0x3b')]);_0x17cd1e[_0xebfe('0x41')]=_['keys'](_0x5a98c0[_0xebfe('0x41')]);_0x17cd1e[_0xebfe('0x4c')]=_['intersection'](_0x17cd1e[_0xebfe('0x3f')],_0x17cd1e['query']);_0x3f59b5['attributes']=_[_0xebfe('0x43')](_0x17cd1e[_0xebfe('0x3f')],qs['fields'](_0x5a98c0['query'][_0xebfe('0x45')]));_0x3f59b5['attributes']=_0x3f59b5[_0xebfe('0x44')]['length']?_0x3f59b5['attributes']:_0x17cd1e[_0xebfe('0x3f')];if(!_0x5a98c0[_0xebfe('0x41')][_0xebfe('0x47')](_0xebfe('0x48'))){_0x3f59b5[_0xebfe('0x49')]=qs[_0xebfe('0x49')](_0x5a98c0['query']['limit']);_0x3f59b5['offset']=qs[_0xebfe('0x2b')](_0x5a98c0[_0xebfe('0x41')][_0xebfe('0x2b')]);}_0x3f59b5[_0xebfe('0x67')]=qs[_0xebfe('0x4a')](_0x5a98c0['query'][_0xebfe('0x4a')]);_0x3f59b5[_0xebfe('0x4b')]=qs[_0xebfe('0x4c')](_[_0xebfe('0x4d')](_0x5a98c0[_0xebfe('0x41')],_0x17cd1e[_0xebfe('0x4c')]));_0x3f59b5['where'][_0xebfe('0x64')]=_0x38ce63['id'];if(_0x5a98c0[_0xebfe('0x41')][_0xebfe('0x4e')]){_0x3f59b5[_0xebfe('0x4b')]=_['merge'](_0x3f59b5[_0xebfe('0x4b')],{'$or':_['map'](_0x3f59b5['attributes'],function(_0x187292){var _0x133c90={};_0x133c90[_0x187292]={'$like':'%'+_0x5a98c0[_0xebfe('0x41')]['filter']+'%'};return _0x133c90;})});}_0x3f59b5=_['merge']({},_0x3f59b5,_0x5a98c0[_0xebfe('0x51')]);return db['CannedAnswer'][_0xebfe('0x2d')]({'where':_0x3f59b5[_0xebfe('0x4b')]})[_0xebfe('0x1e')](function(_0x36af36){_0xc8384a[_0xebfe('0x2d')]=_0x36af36;if(_0x5a98c0[_0xebfe('0x41')][_0xebfe('0x52')]){_0x3f59b5[_0xebfe('0x53')]=[{'all':!![]}];}return db['CannedAnswer'][_0xebfe('0x54')](_0x3f59b5);})['then'](function(_0x35c338){_0xc8384a['rows']=_0x35c338;return _0xc8384a;});}})[_0xebfe('0x1e')](respondWithFilteredResult(_0x17c4f2,_0x3f59b5))[_0xebfe('0x56')](handleError(_0x17c4f2,null));};exports[_0xebfe('0x6b')]=function(_0x1f5dcc,_0x4f2222,_0x151543){return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x1f5dcc[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x4f2222,null))[_0xebfe('0x1e')](function(_0x5dffc7){if(_0x5dffc7){return _0x5dffc7[_0xebfe('0x6b')](_0x1f5dcc[_0xebfe('0x41')][_0xebfe('0x6c')]);}})['then'](respondWithStatusCode(_0x4f2222,null))[_0xebfe('0x56')](handleError(_0x4f2222,null));};exports[_0xebfe('0x6d')]=function(_0x5d7993,_0x15b99c,_0x4e0a8a){var _0x351a50={'channel':_0xebfe('0x6e')};var _0x549d15=[];var _0x224d4f=[];var _0x3fc346={};return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x5d7993[_0xebfe('0x57')]['id']},'include':[{'model':db[_0xebfe('0x6f')],'as':_0xebfe('0x70')}]})[_0xebfe('0x1e')](handleEntityNotFound(_0x15b99c,null))[_0xebfe('0x1e')](function(_0xc0e9d0){_0x351a50['account']=_0xc0e9d0;_0x351a50[_0xebfe('0x71')]=_[_0xebfe('0x72')](_0xc0e9d0[_0xebfe('0x70')],[_0xebfe('0x73')],[_0xebfe('0x74')]);if(_0x351a50[_0xebfe('0x75')][_0xebfe('0x70')]){delete _0x351a50[_0xebfe('0x75')]['Applications'];}return db[_0xebfe('0x76')][_0xebfe('0x62')]();})['then'](function(_0x1ab0b4){if(!_0x1ab0b4){throw new db[(_0xebfe('0x77'))]['ValidationError']('no\x20available\x20attributes');}_0x549d15=_[_0xebfe('0x78')](_[_0xebfe('0x42')](_0x1ab0b4),[_0xebfe('0x79'),_0xebfe('0x7a')]);_0x224d4f=_[_0xebfe('0x78')](_['keys'](_0x1ab0b4),[_0xebfe('0x79'),_0xebfe('0x7a'),_0xebfe('0x7b'),_0xebfe('0x7c')]);_0x351a50[_0xebfe('0x5a')]={'mapKey':_0xebfe('0x7d')};if(_0x351a50[_0xebfe('0x75')]['type']){switch(_0x351a50['account'][_0xebfe('0x3d')]){case _0xebfe('0x7e'):_0x351a50['body'][_0xebfe('0x7f')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x80')];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x81')];_0x351a50[_0xebfe('0x5a')]['messageId']=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x82')];break;case _0xebfe('0x83'):_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]='+'+_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x84')];_0x351a50[_0xebfe('0x5a')]['body']=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x85')];break;case _0xebfe('0x86'):_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]=_0x5d7993[_0xebfe('0x5a')]['from'];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x26')];break;case'clicksend':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x7f')];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993[_0xebfe('0x5a')]['body'];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x87')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x88')];break;case'plivo':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]=_0x5d7993[_0xebfe('0x5a')]['From'];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x89')];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x87')]=_0x5d7993['body'][_0xebfe('0x8a')];break;case _0xebfe('0x8b'):_0x351a50['body'][_0xebfe('0x7f')]='+'+_0x5d7993['body']['results'][0x0]['from'];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993['body'][_0xebfe('0x8c')][0x0][_0xebfe('0x85')];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x87')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x8c')][0x0][_0xebfe('0x87')];break;case'csc':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x8d')];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993[_0xebfe('0x5a')]['segmentedMessage'][_0xebfe('0x26')];break;case'clickatell':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]=_0x5d7993['body']['fromNumber'];_0x351a50['body'][_0xebfe('0x5a')]=_0x5d7993[_0xebfe('0x5a')]['text'];_0x351a50['body'][_0xebfe('0x87')]=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x8e')];break;case _0xebfe('0x8f'):_0x351a50[_0xebfe('0x5a')]['messageId']=_0x5d7993[_0xebfe('0x5a')][0x0][_0xebfe('0x26')]['id'];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')]=_0x5d7993[_0xebfe('0x5a')][0x0][_0xebfe('0x26')][_0xebfe('0x7f')];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')]=_0x5d7993['body'][0x0][_0xebfe('0x26')][_0xebfe('0x85')];break;case _0xebfe('0x90'):_0x351a50[_0xebfe('0x5a')]['from']=_0x5d7993[_0xebfe('0x5a')][_0xebfe('0x7f')];_0x351a50['body']['body']=_0x5d7993[_0xebfe('0x5a')]['message'];_0x351a50[_0xebfe('0x5a')][_0xebfe('0x87')]=_0x5d7993['body'][_0xebfe('0x91')];break;}}if(_0x351a50['body']['id']){delete _0x351a50['body']['id'];}if(_['isNil'](_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')])){throw new db[(_0xebfe('0x77'))][(_0xebfe('0x92'))]('from\x20is\x20mandatory');}if(_[_0xebfe('0x93')](_0x351a50['body']['body'])||_0x351a50['body'][_0xebfe('0x5a')]===''){throw new db[(_0xebfe('0x77'))][(_0xebfe('0x92'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xebfe('0x93')](_0x351a50[_0xebfe('0x5a')][_0xebfe('0x94')])){throw new db[(_0xebfe('0x77'))]['ValidationError'](_0xebfe('0x95')+_0x224d4f);}if(!_[_0xebfe('0x96')](_0x224d4f,_0x351a50[_0xebfe('0x5a')]['mapKey'])){throw new db[(_0xebfe('0x77'))][(_0xebfe('0x92'))](_0xebfe('0x97')+_0x224d4f);}_0x3fc346[_0x351a50[_0xebfe('0x5a')][_0xebfe('0x94')]]=_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')];return db[_0xebfe('0x98')][_0xebfe('0x58')]({'where':{'id':_0x351a50[_0xebfe('0x75')][_0xebfe('0x7c')]},'include':[{'model':db[_0xebfe('0x76')],'as':_0xebfe('0x99'),'where':_0x3fc346,'limit':0x1,'order':[[_0xebfe('0x7a'),_0xebfe('0x9a')]]}]});})[_0xebfe('0x1e')](handleEntityNotFound(_0x15b99c,null))[_0xebfe('0x1e')](function(_0x33ca56){if(_0x33ca56){_0x351a50[_0xebfe('0x9b')]=_['omit'](_0x33ca56,['Contacts']);if(_0x33ca56[_0xebfe('0x99')][_0xebfe('0x46')]){return _0x33ca56[_0xebfe('0x99')][0x0];}var _0x4b351e=_[_0xebfe('0x17')](_0x351a50[_0xebfe('0x5a')],{'firstName':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')],'ListId':_0x33ca56['id']});_0x4b351e[_0x351a50[_0xebfe('0x5a')][_0xebfe('0x94')]]=_0x351a50['body'][_0xebfe('0x7f')];return db[_0xebfe('0x76')][_0xebfe('0x59')](_0x4b351e,{'fields':_0x549d15,'raw':!![]});}})[_0xebfe('0x1e')](handleEntityNotFound(_0x15b99c,null))[_0xebfe('0x1e')](function(_0x43993a){if(_0x43993a){_0x351a50[_0xebfe('0x9c')]=_0x43993a;var _0x26d0df={'ContactId':_0x43993a['id'],'phone':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x7f')],'SmsAccountId':_0x5d7993['params']['id']};var _0x324eaa={'ContactId':_0x43993a['id'],'SmsAccountId':_0x5d7993['params']['id'],'closed':![]};return db[_0xebfe('0x9d')]['find']({'where':_0x324eaa})[_0xebfe('0x1e')](function(_0x13c4a1){if(_0x13c4a1){return[_0x13c4a1,![]];}return db[_0xebfe('0x9d')][_0xebfe('0x59')](_0x26d0df)[_0xebfe('0x1e')](function(_0x2fdcc2){return[_0x2fdcc2,!![]];});});}})[_0xebfe('0x9e')](function(_0xa6631b,_0x193e86){_0x351a50[_0xebfe('0x9f')]=_0xa6631b[_0xebfe('0x32')]({'plain':!![]});_0x351a50[_0xebfe('0x9f')][_0xebfe('0xa0')]=![];if(_0x193e86){if(_0x351a50[_0xebfe('0x75')][_0xebfe('0xa1')]){_0x351a50[_0xebfe('0x71')][_0xebfe('0xa2')]({'id':0x0,'priority':_0x351a50[_0xebfe('0x71')][_0xebfe('0x46')]+0x1,'app':_0xebfe('0xa3'),'appdata':_0xebfe('0xa4'),'interval':_0xebfe('0xa5')});}_0x351a50[_0xebfe('0x9f')]['created']=!![];}return db['SmsMessage']['create']({'phone':_0x351a50['body']['from'],'messageId':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x87')],'body':_0x351a50[_0xebfe('0x5a')][_0xebfe('0x5a')],'SmsAccountId':_0x5d7993[_0xebfe('0x57')]['id'],'SmsInteractionId':_0xa6631b['id'],'direction':'in','ContactId':_0xa6631b[_0xebfe('0xa6')],'AttachmentId':_0x351a50[_0xebfe('0x5a')]['AttachmentId']});})[_0xebfe('0x1e')](function(_0x321db0){_0x351a50[_0xebfe('0x26')]=_0x321db0;if(_0x351a50[_0xebfe('0x9f')][_0xebfe('0xa7')]){return db['User'][_0xebfe('0x58')]({'attributes':['id',_0xebfe('0x35')],'where':{'id':_0x351a50[_0xebfe('0x9f')][_0xebfe('0xa7')]}})[_0xebfe('0x1e')](function(_0x20c881){if(_0x20c881){_0x351a50[_0xebfe('0x71')]['unshift']({'id':0x0,'priority':0x0,'app':_0xebfe('0xa8'),'appdata':_0x20c881[_0xebfe('0x35')]+','+(_0x351a50[_0xebfe('0x75')][_0xebfe('0xa9')]||0xa),'interval':_0xebfe('0xa5')});}return respondWithRpcPromise(_0xebfe('0xaa'),_0xebfe('0xab'),_0x351a50);});}return respondWithRpcPromise(_0xebfe('0xaa'),'startRouting',_0x351a50);})[_0xebfe('0x1e')](function(_0x36af4e){if(_0x36af4e){var _0x5c881c=0xc8;var _0x5ca01c=_0xebfe('0xac');logger[_0xebfe('0x1f')](_0xebfe('0x22'),_0x5ca01c,_0x5c881c,_0xebfe('0xad'));logger['debug'](_0xebfe('0xae'),_0x5ca01c,_0x5c881c,_0xebfe('0xad'),JSON['stringify'](_0x36af4e));if(_0x351a50['account'][_0xebfe('0x3d')]===_0xebfe('0x7e')){return _0x15b99c['status'](_0x5c881c)[_0xebfe('0xaf')](_0xebfe('0xb0'),_0xebfe('0xb1'))[_0xebfe('0x36')](_0xebfe('0xb2'));}else{return _0x15b99c[_0xebfe('0x29')](_0x5c881c)['json'](_0x36af4e);}}})[_0xebfe('0x56')](handleError(_0x15b99c,null));};exports[_0xebfe('0xb3')]=function(_0xcfdd60,_0x5a543c,_0x2e3f99){return db['SmsAccount'][_0xebfe('0x65')]({'where':{'id':_0xcfdd60[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x5a543c,null))[_0xebfe('0x1e')](function(_0x2567a6){if(_0x2567a6){return db[_0xebfe('0xb4')][_0xebfe('0xb5')](function(_0x2deb74){return db[_0xebfe('0x6f')][_0xebfe('0x31')]({'where':{'SmsAccountId':_0xcfdd60[_0xebfe('0x57')]['id']},'transaction':_0x2deb74})[_0xebfe('0x1e')](function(_0x35998c){var _0x565fa3=_['map'](_0xcfdd60[_0xebfe('0x5a')],function(_0x1891d2){_0x1891d2[_0xebfe('0x64')]=_0xcfdd60[_0xebfe('0x57')]['id'];return _0x1891d2;});return db['SmsApplication']['bulkCreate'](_0x565fa3,{'transaction':_0x2deb74});});})['then'](function(){return db['SmsApplication'][_0xebfe('0xb6')]({'where':{'SmsAccountId':_0xcfdd60[_0xebfe('0x57')]['id']},'order':_0xebfe('0x73')});});}})[_0xebfe('0x1e')](respondWithResult(_0x5a543c,null))[_0xebfe('0x56')](handleError(_0x5a543c,null));};exports[_0xebfe('0xb7')]=function(_0x1ca120,_0x4d174f,_0x5097ef){var _0x33bd42={};var _0x55fcd2={};var _0x293589;var _0x575d68;return db[_0xebfe('0x3a')][_0xebfe('0x65')]({'where':{'id':_0x1ca120[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x4d174f,null))[_0xebfe('0x1e')](function(_0x30060b){if(_0x30060b){_0x293589=_0x30060b;_0x55fcd2[_0xebfe('0x3f')]=_['keys'](db['SmsApplication'][_0xebfe('0x3b')]);_0x55fcd2[_0xebfe('0x41')]=_[_0xebfe('0x42')](_0x1ca120[_0xebfe('0x41')]);_0x55fcd2[_0xebfe('0x4c')]=_[_0xebfe('0x43')](_0x55fcd2[_0xebfe('0x3f')],_0x55fcd2[_0xebfe('0x41')]);_0x33bd42[_0xebfe('0x44')]=_[_0xebfe('0x43')](_0x55fcd2[_0xebfe('0x3f')],qs[_0xebfe('0x45')](_0x1ca120['query'][_0xebfe('0x45')]));_0x33bd42[_0xebfe('0x44')]=_0x33bd42[_0xebfe('0x44')]['length']?_0x33bd42[_0xebfe('0x44')]:_0x55fcd2['model'];_0x33bd42[_0xebfe('0x67')]=qs[_0xebfe('0x4a')](_0x1ca120[_0xebfe('0x41')]['sort']);_0x33bd42[_0xebfe('0x4b')]=qs['filters'](_[_0xebfe('0x4d')](_0x1ca120['query'],_0x55fcd2[_0xebfe('0x4c')]));if(_0x1ca120[_0xebfe('0x41')][_0xebfe('0x4e')]){_0x33bd42[_0xebfe('0x4b')]=_[_0xebfe('0x4f')](_0x33bd42[_0xebfe('0x4b')],{'$or':_['map'](_0x33bd42[_0xebfe('0x44')],function(_0x4e745c){var _0x24c523={};_0x24c523[_0x4e745c]={'$like':'%'+_0x1ca120[_0xebfe('0x41')][_0xebfe('0x4e')]+'%'};return _0x24c523;})});}_0x33bd42=_['merge']({},_0x33bd42,_0x1ca120[_0xebfe('0x51')]);return _0x293589['getApplications'](_0x33bd42);}})[_0xebfe('0x1e')](function(_0x4d16ff){if(_0x4d16ff){_0x575d68=_0x4d16ff[_0xebfe('0x46')];if(!_0x1ca120[_0xebfe('0x41')][_0xebfe('0x47')](_0xebfe('0x48'))){_0x33bd42['limit']=qs['limit'](_0x1ca120[_0xebfe('0x41')][_0xebfe('0x49')]);_0x33bd42[_0xebfe('0x2b')]=qs['offset'](_0x1ca120[_0xebfe('0x41')]['offset']);}return _0x293589[_0xebfe('0xb7')](_0x33bd42);}})[_0xebfe('0x1e')](function(_0x15c29b){if(_0x15c29b){return _0x15c29b?{'count':_0x575d68,'rows':_0x15c29b}:null;}})['then'](respondWithResult(_0x4d174f,null))[_0xebfe('0x56')](handleError(_0x4d174f,null));};exports['getInteractions']=function(_0x1d40ea,_0x49cd0b,_0x2df915){var _0x1dbe57={'raw':![],'where':{}};var _0x64d8c9={};var _0x10b2f3={'count':0x0,'rows':[]};return db[_0xebfe('0x3a')]['findOne']({'where':{'id':_0x1d40ea['params']['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x49cd0b,null))[_0xebfe('0x1e')](function(_0x1089b7){if(_0x1089b7){_0x64d8c9[_0xebfe('0x3f')]=_[_0xebfe('0x42')](db[_0xebfe('0x9d')][_0xebfe('0x3b')]);_0x64d8c9['query']=_[_0xebfe('0x42')](_0x1d40ea[_0xebfe('0x41')]);_0x64d8c9[_0xebfe('0x4c')]=_[_0xebfe('0x43')](_0x64d8c9[_0xebfe('0x3f')],_0x64d8c9[_0xebfe('0x41')]);_0x1dbe57[_0xebfe('0x44')]=_[_0xebfe('0x43')](_0x64d8c9['model'],qs[_0xebfe('0x45')](_0x1d40ea[_0xebfe('0x41')][_0xebfe('0x45')]));_0x1dbe57['attributes']=_0x1dbe57[_0xebfe('0x44')][_0xebfe('0x46')]?_0x1dbe57['attributes']:_0x64d8c9[_0xebfe('0x3f')];if(!_0x1d40ea['query'][_0xebfe('0x47')](_0xebfe('0x48'))){_0x1dbe57[_0xebfe('0x49')]=qs['limit'](_0x1d40ea['query'][_0xebfe('0x49')]);_0x1dbe57[_0xebfe('0x2b')]=qs[_0xebfe('0x2b')](_0x1d40ea[_0xebfe('0x41')][_0xebfe('0x2b')]);}_0x1dbe57[_0xebfe('0x67')]=qs[_0xebfe('0x4a')](_0x1d40ea['query']['sort']);_0x1dbe57[_0xebfe('0x4b')]=qs[_0xebfe('0x4c')](_[_0xebfe('0x4d')](_0x1d40ea[_0xebfe('0x41')],_0x64d8c9[_0xebfe('0x4c')]));_0x1dbe57[_0xebfe('0x4b')]['SmsAccountId']=_0x1089b7['id'];if(_0x1d40ea['query'][_0xebfe('0x4e')]){_0x1dbe57['where']=_['merge'](_0x1dbe57[_0xebfe('0x4b')],{'$or':_['map'](_0x1dbe57[_0xebfe('0x44')],function(_0x44765b){var _0x4327a1={};_0x4327a1[_0x44765b]={'$like':'%'+_0x1d40ea[_0xebfe('0x41')][_0xebfe('0x4e')]+'%'};return _0x4327a1;})});}_0x1dbe57=_[_0xebfe('0x4f')]({},_0x1dbe57,_0x1d40ea[_0xebfe('0x51')]);return db['SmsInteraction'][_0xebfe('0x2d')]({'where':_0x1dbe57[_0xebfe('0x4b')]})[_0xebfe('0x1e')](function(_0x176697){_0x10b2f3[_0xebfe('0x2d')]=_0x176697;if(_0x1d40ea[_0xebfe('0x41')]['includeAll']){_0x1dbe57['include']=[{'model':db[_0xebfe('0x76')],'as':_0xebfe('0xb8'),'required':![]},{'model':db[_0xebfe('0xb9')],'as':_0xebfe('0xba'),'attributes':[_0xebfe('0x35'),_0xebfe('0xbb'),_0xebfe('0xbc')],'required':![]},{'model':db[_0xebfe('0xbd')],'as':_0xebfe('0xbe'),'attributes':['id','name',_0xebfe('0xbf')],'where':_0x1d40ea[_0xebfe('0x41')]['tag']?{'id':_0x1d40ea[_0xebfe('0x41')]['tag']}:undefined,'required':_0x1d40ea[_0xebfe('0x41')][_0xebfe('0xc0')]?!![]:![]}];}return db[_0xebfe('0x9d')][_0xebfe('0x54')](_0x1dbe57);})[_0xebfe('0x1e')](function(_0x5bd65e){_0x10b2f3[_0xebfe('0x55')]=_0x5bd65e;return _0x10b2f3;});}})[_0xebfe('0x1e')](respondWithFilteredResult(_0x49cd0b,_0x1dbe57))[_0xebfe('0x56')](handleError(_0x49cd0b,null));};exports['send']=function(_0x5de869,_0x291666,_0x2b73e2){var _0x3f9458,_0x3f390d,_0x20bbc5;if(_[_0xebfe('0x93')](_0x5de869['body'][_0xebfe('0x5a')])||_0x5de869[_0xebfe('0x5a')]['body']===''){throw new db[(_0xebfe('0x77'))][(_0xebfe('0x92'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xebfe('0x93')](_0x5de869[_0xebfe('0x5a')]['to'])){throw new db[(_0xebfe('0x77'))][(_0xebfe('0x92'))](_0xebfe('0xc1'));}_0x3f9458=_0x5de869[_0xebfe('0x5a')]['to'];return db[_0xebfe('0x3a')]['find']({'where':{'id':_0x5de869['params']['id']},'include':[{'model':db[_0xebfe('0x98')],'as':_0xebfe('0xc2'),'include':[{'model':db[_0xebfe('0x76')],'as':_0xebfe('0x99'),'where':{'mobile':_0x3f9458},'limit':0x1,'order':[[_0xebfe('0x7a'),'DESC']]}]}]})[_0xebfe('0x1e')](handleEntityNotFound(_0x291666,null))[_0xebfe('0x1e')](function(_0xd418e7){if(_0xd418e7&&_0xd418e7[_0xebfe('0xc2')]){_0x3f390d=_0xd418e7[_0xebfe('0x32')]({'plain':!![]});if(_0x3f390d['List']&&_0x3f390d['List'][_0xebfe('0x99')][_0xebfe('0x46')]){return _0x3f390d[_0xebfe('0xc2')][_0xebfe('0x99')][0x0];}return db['CmContact'][_0xebfe('0x59')](_[_0xebfe('0x17')](_0x5de869[_0xebfe('0x5a')],{'firstName':_0x3f9458,'mobile':_0x3f9458,'phone':_0x3f9458,'ListId':_0x3f390d['ListId']}));}})['then'](handleEntityNotFound(_0x291666,null))['then'](function(_0x1595af){if(_0x1595af){_0x20bbc5=_0x1595af;return db[_0xebfe('0x9d')][_0xebfe('0x58')]({'where':{'ContactId':_0x20bbc5['id'],'closed':![],'SmsAccountId':_0x3f390d['id']}})[_0xebfe('0x1e')](function(_0x92802){if(_0x92802){return[_0x92802,![]];}return db[_0xebfe('0x9d')][_0xebfe('0x59')]({'UserId':_0x5de869[_0xebfe('0x5b')]['id'],'ContactId':_0x20bbc5['id'],'SmsAccountId':_0x3f390d['id'],'phone':_0x3f9458,'firstMsgDirection':_0xebfe('0xc3'),'Messages':[_[_0xebfe('0x4f')](_0x5de869[_0xebfe('0x5a')],{'read':![],'body':_0x5de869[_0xebfe('0x5a')][_0xebfe('0x5a')],'phone':_0x3f9458,'SmsAccountId':_0x3f390d['id'],'UserId':_0x5de869[_0xebfe('0x5b')]['id'],'ContactId':_0x20bbc5['id']})]},{'include':[{'model':db[_0xebfe('0xc4')],'as':'Messages'}]})['then'](function(_0x4a2ed7){return[_0x4a2ed7,!![]];});});}})[_0xebfe('0x9e')](function(_0x32ba2e,_0x4e367c){if(_0x4e367c){return _0x32ba2e;}return db[_0xebfe('0xc4')][_0xebfe('0x59')](_['merge'](_0x5de869['body'],{'read':![],'body':_0x5de869[_0xebfe('0x5a')][_0xebfe('0x5a')],'phone':_0x3f9458,'SmsAccountId':_0x3f390d['id'],'SmsInteractionId':_0x32ba2e['id'],'UserId':_0x5de869[_0xebfe('0x5b')]['id'],'ContactId':_0x20bbc5['id']}))[_0xebfe('0x1e')](function(_0x267239){_0x32ba2e['dataValues'][_0xebfe('0xc5')]=[];_0x32ba2e['dataValues'][_0xebfe('0xc5')][_0xebfe('0xa2')](_0x267239[_0xebfe('0xc6')]);return _0x32ba2e;});})[_0xebfe('0x1e')](respondWithResult(_0x291666,null))[_0xebfe('0x56')](handleError(_0x291666,null));};exports[_0xebfe('0x29')]=function(_0x2d1d58,_0x2278d1,_0x15ea3c){if(_0x2d1d58[_0xebfe('0x5a')]['id']){delete _0x2d1d58['body']['id'];}var _0x350276,_0x564176,_0x12e888;return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x2d1d58[_0xebfe('0x57')]['id']}})['then'](handleEntityNotFound(_0x2278d1,null))[_0xebfe('0x1e')](function(_0x468f91){if(_0x468f91){_0x12e888=_0x468f91;logger[_0xebfe('0x21')](_0xebfe('0x22'),_0xebfe('0x29'),_0xebfe('0xc7'),_0x468f91[_0xebfe('0x3d')],util[_0xebfe('0xc8')](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));switch(_0x468f91[_0xebfe('0x3d')]){case _0xebfe('0x83'):if(_0x2d1d58['body'][_0xebfe('0xc9')]&&_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x29')]){_0x564176=_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x29')];return db['SmsMessage']['find']({'where':{'messageId':_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xc9')]}});}break;case _0xebfe('0x86'):if(_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xca')]&&_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xcb')]){_0x564176=_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xcb')];return db[_0xebfe('0xc4')][_0xebfe('0x58')]({'where':{'messageId':_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xca')]}});}break;case _0xebfe('0xcc'):if(_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x88')]&&_0x2d1d58[_0xebfe('0x5a')]['status_code']){_0x564176=_0x2d1d58['body'][_0xebfe('0xcd')];return db[_0xebfe('0xc4')]['find']({'where':{'messageId':_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x88')]}});}break;case _0xebfe('0x8b'):var _0x44f82d=_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x8c')][0x0];if(_0x44f82d[_0xebfe('0x87')]&&_0x44f82d[_0xebfe('0x29')][_0xebfe('0xce')]==='DELIVERED'){_0x564176=_0x44f82d['status'][_0xebfe('0xce')];return db['SmsMessage'][_0xebfe('0x58')]({'where':{'messageId':_0x44f82d[_0xebfe('0x87')]}});}break;case _0xebfe('0xcf'):if(_0x2d1d58['body'][_0xebfe('0x87')]&&_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x29')]){_0x564176=_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x29')];return db[_0xebfe('0xc4')][_0xebfe('0x58')]({'where':{'messageId':_0x2d1d58[_0xebfe('0x5a')]['messageId']}});}break;case _0xebfe('0x8f'):if(_0x2d1d58[_0xebfe('0x5a')][0x0]['message']['id']){_0x564176=_0x2d1d58[_0xebfe('0x5a')][0x0][_0xebfe('0x3d')];return db[_0xebfe('0xc4')][_0xebfe('0x58')]({'where':{'messageId':_0x2d1d58[_0xebfe('0x5a')][0x0]['message']['id']}});}break;case _0xebfe('0x90'):if(_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xd0')]&&_0x2d1d58['body'][_0xebfe('0x29')]){_0x564176=_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0x29')];return db[_0xebfe('0xc4')][_0xebfe('0x58')]({'where':{'messageId':_0x2d1d58[_0xebfe('0x5a')][_0xebfe('0xd0')]}});}break;}}})[_0xebfe('0x1e')](handleEntityNotFound(_0x2278d1,null))[_0xebfe('0x1e')](function(_0x52f68a){if(_0x52f68a){_0x350276=_0x52f68a;switch(_0x12e888['type']){case _0xebfe('0x83'):if(_0x564176===_0xebfe('0xd1')){return _0x350276[_0xebfe('0x61')]({'read':!![]});}else{logger[_0xebfe('0x25')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xebfe('0x29'),'skebby',util[_0xebfe('0xc8')](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xebfe('0x86'):if(_0x564176==='1'){return _0x350276[_0xebfe('0x61')]({'read':!![]});}else{logger[_0xebfe('0x25')](_0xebfe('0x22'),_0xebfe('0x29'),_0xebfe('0x83'),util[_0xebfe('0xc8')](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));}break;case'clicksend':if(!_0x2d1d58['body'][_0xebfe('0xd2')]&&_0x564176>=0xc8&&_0x564176<=0xce){return _0x350276['update']({'read':!![]});}else{logger[_0xebfe('0x25')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xebfe('0x29'),_0xebfe('0xcc'),util[_0xebfe('0xc8')](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xebfe('0x8b'):var _0x39f6cf=_0x2d1d58[_0xebfe('0x5a')]['results'][0x0];if(_0x39f6cf[_0xebfe('0x29')][_0xebfe('0xce')]===_0xebfe('0xd1')){return _0x350276[_0xebfe('0x61')]({'read':!![]});}else{logger[_0xebfe('0x25')](_0xebfe('0x22'),_0xebfe('0x29'),'infobip',util[_0xebfe('0xc8')](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xebfe('0xcf'):if(_0x564176=='DELIVERED_TO_GATEWAY'||_0x564176=='RECEIVED_BY_RECIPIENT'){return _0x350276[_0xebfe('0x61')]({'read':!![]});}else{logger[_0xebfe('0x25')](_0xebfe('0x22'),_0xebfe('0x29'),_0xebfe('0xcf'),util[_0xebfe('0xc8')](_0x2d1d58['body'],{'showHidden':![],'depth':null}));}break;case'bandwidth':if(_0x564176==_0xebfe('0xd3')){return _0x350276[_0xebfe('0x61')]({'read':!![]});}else{logger[_0xebfe('0x25')](_0xebfe('0x22'),_0xebfe('0x29'),_0xebfe('0x8f'),util[_0xebfe('0xc8')](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xebfe('0x90'):if(_0x564176==='DELIVRD'||_0x564176===_0xebfe('0xd4')){return _0x350276['update']({'read':!![]});}else{logger['error'](_0xebfe('0x22'),'status',_0xebfe('0x90'),util['inspect'](_0x2d1d58[_0xebfe('0x5a')],{'showHidden':![],'depth':null}));}break;}return _0x350276;}})[_0xebfe('0x1e')](respondWithResult(_0x2278d1,null))[_0xebfe('0x56')](handleError(_0x2278d1,null));};exports['statusGet']=function(_0x46aef5,_0x173bf7,_0xd8fa4b){var _0x34ae8c,_0x3eeda6,_0x100a60;return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x46aef5['params']['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x173bf7,null))[_0xebfe('0x1e')](function(_0x578196){if(_0x578196){_0x100a60=_0x578196;logger[_0xebfe('0x21')](_0xebfe('0x22'),_0xebfe('0x29'),_0xebfe('0xc7'),_0x578196[_0xebfe('0x3d')],util[_0xebfe('0xc8')](_0x46aef5[_0xebfe('0x41')],{'showHidden':![],'depth':null}));switch(_0x578196['type']){case _0xebfe('0xd5'):if(_0x46aef5[_0xebfe('0x41')]['message-id']&&_0x46aef5[_0xebfe('0x41')][_0xebfe('0xd6')]){_0x3eeda6=_0x46aef5[_0xebfe('0x41')][_0xebfe('0xd6')];return db[_0xebfe('0xc4')][_0xebfe('0x58')]({'where':{'messageId':_0x46aef5[_0xebfe('0x41')][_0xebfe('0xd7')]}});}break;}}})['then'](handleEntityNotFound(_0x173bf7,null))[_0xebfe('0x1e')](function(_0x445296){if(_0x445296){_0x34ae8c=_0x445296;switch(_0x100a60[_0xebfe('0x3d')]){case _0xebfe('0xd5'):if(_0x3eeda6==='2'||_0x3eeda6==='6'){return _0x34ae8c[_0xebfe('0x61')]({'read':!![]});}else{logger['error'](_0xebfe('0x22'),'status',_0xebfe('0xd5'),util[_0xebfe('0xc8')](_0x46aef5[_0xebfe('0x41')],{'showHidden':![],'depth':null}));};break;}return _0x34ae8c;}})[_0xebfe('0x1e')](respondWithResult(_0x173bf7,null))[_0xebfe('0x56')](handleError(_0x173bf7,null));};exports[_0xebfe('0xd8')]=function(_0x5e6167,_0x14705a,_0x26d517){return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x5e6167[_0xebfe('0x57')]['id']}})[_0xebfe('0x1e')](handleEntityNotFound(_0x14705a,null))['then'](function(_0x308380){if(_0x308380){return _0x308380[_0xebfe('0xd8')](_0x5e6167[_0xebfe('0x5a')][_0xebfe('0x6c')],_[_0xebfe('0xd9')](_0x5e6167[_0xebfe('0x5a')],[_0xebfe('0x6c'),'id'])||{})[_0xebfe('0x9e')](function(_0x1aa8b3){for(var _0x1b2987=0x0;_0x1b2987<_0x5e6167[_0xebfe('0x5a')][_0xebfe('0x6c')]['length'];_0x1b2987+=0x1){socket[_0xebfe('0xda')](_0xebfe('0xdb'),{'UserId':Number(_0x5e6167[_0xebfe('0x5a')][_0xebfe('0x6c')][_0x1b2987]),'SmsAccountId':Number(_0x5e6167[_0xebfe('0x57')]['id'])});}return _0x1aa8b3;});}})[_0xebfe('0x1e')](respondWithResult(_0x14705a,null))[_0xebfe('0x56')](handleError(_0x14705a,null));};exports[_0xebfe('0xdc')]=function(_0x2da2c6,_0x24ba1f,_0x37e5f3){return db[_0xebfe('0x3a')][_0xebfe('0x58')]({'where':{'id':_0x2da2c6[_0xebfe('0x57')]['id']}})['then'](handleEntityNotFound(_0x24ba1f,null))[_0xebfe('0x1e')](function(_0x4c281d){if(_0x4c281d){return _0x4c281d['removeAgents'](_0x2da2c6[_0xebfe('0x41')]['ids'])[_0xebfe('0x1e')](function(){if(_[_0xebfe('0xdd')](_0x2da2c6['query'][_0xebfe('0x6c')])){for(var _0x4fa81f=0x0;_0x4fa81f<_0x2da2c6[_0xebfe('0x41')][_0xebfe('0x6c')][_0xebfe('0x46')];_0x4fa81f+=0x1){socket[_0xebfe('0xda')](_0xebfe('0xde'),{'UserId':Number(_0x2da2c6[_0xebfe('0x41')][_0xebfe('0x6c')][_0x4fa81f]),'SmsAccountId':Number(_0x2da2c6[_0xebfe('0x57')]['id'])});}}else{socket['emit'](_0xebfe('0xde'),{'UserId':Number(_0x2da2c6[_0xebfe('0x41')][_0xebfe('0x6c')]),'SmsAccountId':Number(_0x2da2c6[_0xebfe('0x57')]['id'])});}});}})[_0xebfe('0x1e')](respondWithStatusCode(_0x24ba1f,null))[_0xebfe('0x56')](handleError(_0x24ba1f,null));};exports[_0xebfe('0xdf')]=function(_0x299e89,_0x4bea79,_0x4e4944){var _0x8d6b9b={};var _0x342abd={};var _0x522383;var _0x513ed;return db[_0xebfe('0x3a')][_0xebfe('0x65')]({'where':{'id':_0x299e89['params']['id']}})['then'](handleEntityNotFound(_0x4bea79,null))[_0xebfe('0x1e')](function(_0x189ae0){if(_0x189ae0){_0x522383=_0x189ae0;_0x342abd['model']=_[_0xebfe('0x42')](db['User'][_0xebfe('0x3b')]);_0x342abd[_0xebfe('0x41')]=_[_0xebfe('0x42')](_0x299e89[_0xebfe('0x41')]);_0x342abd[_0xebfe('0x4c')]=_[_0xebfe('0x43')](_0x342abd['model'],_0x342abd[_0xebfe('0x41')]);_0x8d6b9b[_0xebfe('0x44')]=_[_0xebfe('0x43')](_0x342abd[_0xebfe('0x3f')],qs[_0xebfe('0x45')](_0x299e89['query'][_0xebfe('0x45')]));_0x8d6b9b[_0xebfe('0x44')]=_0x8d6b9b[_0xebfe('0x44')][_0xebfe('0x46')]?_0x8d6b9b[_0xebfe('0x44')]:_0x342abd['model'];_0x8d6b9b['order']=qs[_0xebfe('0x4a')](_0x299e89['query'][_0xebfe('0x4a')]);_0x8d6b9b[_0xebfe('0x4b')]=qs[_0xebfe('0x4c')](_[_0xebfe('0x4d')](_0x299e89['query'],_0x342abd[_0xebfe('0x4c')]));if(_0x299e89[_0xebfe('0x41')]['filter']){_0x8d6b9b['where']=_[_0xebfe('0x4f')](_0x8d6b9b[_0xebfe('0x4b')],{'$or':_[_0xebfe('0x40')](_0x8d6b9b[_0xebfe('0x44')],function(_0x34a060){var _0x5ce54c={};_0x5ce54c[_0x34a060]={'$like':'%'+_0x299e89[_0xebfe('0x41')]['filter']+'%'};return _0x5ce54c;})});}_0x8d6b9b=_[_0xebfe('0x4f')]({},_0x8d6b9b,_0x299e89[_0xebfe('0x51')]);return _0x522383[_0xebfe('0xdf')](_0x8d6b9b);}})[_0xebfe('0x1e')](function(_0x43a2d9){if(_0x43a2d9){_0x513ed=_0x43a2d9[_0xebfe('0x46')];if(!_0x299e89[_0xebfe('0x41')][_0xebfe('0x47')]('nolimit')){_0x8d6b9b['limit']=qs[_0xebfe('0x49')](_0x299e89[_0xebfe('0x41')]['limit']);_0x8d6b9b['offset']=qs['offset'](_0x299e89[_0xebfe('0x41')][_0xebfe('0x2b')]);}return _0x522383[_0xebfe('0xdf')](_0x8d6b9b);}})['then'](function(_0x285a2a){if(_0x285a2a){return _0x285a2a?{'count':_0x513ed,'rows':_0x285a2a}:null;}})[_0xebfe('0x1e')](respondWithResult(_0x4bea79,null))['catch'](handleError(_0x4bea79,null));};
\ No newline at end of file
+var _0xb27f=['catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','get','SmsAccounts','UserProfileResource','destroy','name','send','rawAttributes','fieldName','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','type','VIRTUAL','options','SmsAccount','include','findAll','rows','show','params','Pause','mandatoryDispositionPause','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','getDispositions','findOne','Disposition','nolimit','SmsAccountId','map','includeAll','removeDispositions','addAnswer','CannedAnswer','getAnswers','ids','notify','SmsApplication','Applications','applications','orderBy','priority','asc','account','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','mobile','twilio','from','From','Body','messageId','skebby','sender','text','clicksend','message_id','plivo','MessageUUID','infobip','results','originatingAddress','segmentedMessage','fromNumber','replyMessageId','bandwidth','refid','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','ListId','DESC','list','omit','Contacts','contact','SmsInteraction','spread','interaction','autoclose','unmanaged','*,*,*,*','SmsMessage','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','SmsAccount,\x20%s,\x20%s,\x20%s','SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s','entity\x20found','set','Content-Type','text/xml','addApplications','sequelize','transaction','bulkCreate','findAndCountAll','getApplications','getInteractions','Contact','Owner','fullname','internal','Tag','Tags','tag','List','defaults','Messages','dataValues','push','inspect','skebby_dispatch_id','connectel','statusInt','requestid','status_code','groupName','DELIVERED','clickatell','intelepeer','redif','error_code','DELIVERED_TO_GATEWAY','message-delivered','DELIVRD','ACCEPTD','message-id','state','csc','addAgents','emit','removeAgents','isArray','userSmsAccount:remove','getAgents','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','redis','./smsAccount.socket','register','jayson/promise','client','http','then','request\x20sent','debug','stringify','error','code','SmsAccount,\x20%s,\x20%s','message','info'];(function(_0xd1d19a,_0x1933f0){var _0x52a79d=function(_0x5199e2){while(--_0x5199e2){_0xd1d19a['push'](_0xd1d19a['shift']());}};_0x52a79d(++_0x1933f0);}(_0xb27f,0xb8));var _0xfb27=function(_0x19bfd4,_0x372ced){_0x19bfd4=_0x19bfd4-0x0;var _0x49f73a=_0xb27f[_0x19bfd4];return _0x49f73a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xfb27('0x0'));var zipdir=require(_0xfb27('0x1'));var jsonpatch=require(_0xfb27('0x2'));var rp=require('request-promise');var moment=require(_0xfb27('0x3'));var BPromise=require(_0xfb27('0x4'));var Mustache=require(_0xfb27('0x5'));var util=require(_0xfb27('0x6'));var path=require(_0xfb27('0x7'));var sox=require(_0xfb27('0x8'));var csv=require(_0xfb27('0x9'));var ejs=require(_0xfb27('0xa'));var fs=require('fs');var fs_extra=require(_0xfb27('0xb'));var _=require(_0xfb27('0xc'));var squel=require(_0xfb27('0xd'));var crypto=require('crypto');var jsforce=require(_0xfb27('0xe'));var deskjs=require(_0xfb27('0xf'));var toCsv=require(_0xfb27('0x9'));var querystring=require(_0xfb27('0x10'));var Papa=require(_0xfb27('0x11'));var Redis=require(_0xfb27('0x12'));var authService=require('../../components/auth/service');var qs=require(_0xfb27('0x13'));var as=require(_0xfb27('0x14'));var hardwareService=require(_0xfb27('0x15'));var logger=require('../../config/logger')(_0xfb27('0x16'));var utils=require('../../config/utils');var config=require(_0xfb27('0x17'));var licenseUtil=require(_0xfb27('0x18'));var db=require('../../mysqldb')['db'];config[_0xfb27('0x19')]=_['defaults'](config[_0xfb27('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfb27('0x19')]));require(_0xfb27('0x1a'))[_0xfb27('0x1b')](socket);var jayson=require(_0xfb27('0x1c'));var client=jayson[_0xfb27('0x1d')][_0xfb27('0x1e')]({'port':0x232c});function respondWithRpcPromise(_0x31a4bf,_0x577811,_0x4b4628,_0x53df2d){return new BPromise(function(_0x494795,_0x56f355){var _0x5471de=_0x53df2d||client;return _0x5471de['request'](_0x31a4bf,_0x4b4628)[_0xfb27('0x1f')](function(_0x5b60c1){logger['info']('SmsAccount,\x20%s,\x20%s',_0x577811,_0xfb27('0x20'));logger[_0xfb27('0x21')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x577811,'request\x20sent',JSON[_0xfb27('0x22')](_0x5b60c1));if(_0x5b60c1[_0xfb27('0x23')]){if(_0x5b60c1[_0xfb27('0x23')][_0xfb27('0x24')]===0x1f4){logger['error'](_0xfb27('0x25'),_0x577811,_0x5b60c1[_0xfb27('0x23')][_0xfb27('0x26')]);return _0x56f355(_0x5b60c1[_0xfb27('0x23')][_0xfb27('0x26')]);}logger['error'](_0xfb27('0x25'),_0x577811,_0x5b60c1[_0xfb27('0x23')][_0xfb27('0x26')]);return _0x494795(_0x5b60c1['error']['message']);}else{logger[_0xfb27('0x27')](_0xfb27('0x25'),_0x577811,_0xfb27('0x20'));_0x494795(_0x5b60c1['result']['message']);}})[_0xfb27('0x28')](function(_0xe9f775){logger[_0xfb27('0x23')](_0xfb27('0x25'),_0x577811,_0xe9f775);_0x56f355(_0xe9f775);});});}function respondWithStatusCode(_0x248949,_0x40f632){_0x40f632=_0x40f632||0xcc;return function(_0x53f2c8){if(_0x53f2c8){return _0x248949[_0xfb27('0x29')](_0x40f632);}return _0x248949[_0xfb27('0x2a')](_0x40f632)[_0xfb27('0x2b')]();};}function respondWithResult(_0x557b17,_0x2d889b){_0x2d889b=_0x2d889b||0xc8;return function(_0x309a9b){if(_0x309a9b){return _0x557b17[_0xfb27('0x2a')](_0x2d889b)[_0xfb27('0x2c')](_0x309a9b);}};}function respondWithFilteredResult(_0x1121b7,_0x50858f){return function(_0x4ea3cd){if(_0x4ea3cd){var _0x444219=typeof _0x50858f[_0xfb27('0x2d')]===_0xfb27('0x2e')&&typeof _0x50858f[_0xfb27('0x2f')]==='undefined';var _0x3dbb04=_0x4ea3cd[_0xfb27('0x30')];var _0x3c7c3a=_0x444219?0x0:_0x50858f[_0xfb27('0x2d')];var _0x824b7b=_0x444219?_0x4ea3cd[_0xfb27('0x30')]:_0x50858f[_0xfb27('0x2d')]+_0x50858f[_0xfb27('0x2f')];var _0x568920;if(_0x824b7b>=_0x3dbb04){_0x824b7b=_0x3dbb04;_0x568920=0xc8;}else{_0x568920=0xce;}_0x1121b7[_0xfb27('0x2a')](_0x568920);return _0x1121b7['set'](_0xfb27('0x31'),_0x3c7c3a+'-'+_0x824b7b+'/'+_0x3dbb04)[_0xfb27('0x2c')](_0x4ea3cd);}return null;};}function patchUpdates(_0x6a9677){return function(_0x58f917){try{jsonpatch[_0xfb27('0x32')](_0x58f917,_0x6a9677,!![]);}catch(_0x1602e4){return BPromise[_0xfb27('0x33')](_0x1602e4);}return _0x58f917['save']();};}function saveUpdates(_0x529f7c,_0x471596){return function(_0x350802){if(_0x350802){return _0x350802[_0xfb27('0x34')](_0x529f7c)[_0xfb27('0x1f')](function(_0xa62a26){return _0xa62a26;});}return null;};}function removeEntity(_0x398615,_0x5366d4){return function(_0x22d24d){if(_0x22d24d){return _0x22d24d['destroy']()[_0xfb27('0x1f')](function(){var _0x4e273f=_0x22d24d[_0xfb27('0x35')]({'plain':!![]});var _0x5ee545=_0xfb27('0x36');return db[_0xfb27('0x37')][_0xfb27('0x38')]({'where':{'type':_0x5ee545,'resourceId':_0x4e273f['id']}})['then'](function(){return _0x22d24d;});})[_0xfb27('0x1f')](function(){_0x398615['status'](0xcc)[_0xfb27('0x2b')]();});}};}function handleEntityNotFound(_0x31e208,_0x3e57e6){return function(_0x18e655){if(!_0x18e655){_0x31e208[_0xfb27('0x29')](0x194);}return _0x18e655;};}function handleError(_0x1d16ce,_0x1eed25){_0x1eed25=_0x1eed25||0x1f4;return function(_0x5c442c){logger['error'](_0x5c442c['stack']);if(_0x5c442c[_0xfb27('0x39')]){delete _0x5c442c[_0xfb27('0x39')];}_0x1d16ce[_0xfb27('0x2a')](_0x1eed25)[_0xfb27('0x3a')](_0x5c442c);};}exports['index']=function(_0x12ffda,_0x470ead){var _0x477446={'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x4cb3b5={},_0x1f80c1={'count':0x0,'rows':[]};var _0x288294=_['map'](db['SmsAccount'][_0xfb27('0x3b')],function(_0x1885ad){return{'name':_0x1885ad[_0xfb27('0x3c')],'type':_0x1885ad['type'][_0xfb27('0x3d')]};});_0x4cb3b5['model']=_['map'](_0x288294,'name');_0x4cb3b5['query']=_[_0xfb27('0x3e')](_0x12ffda[_0xfb27('0x3f')]);_0x4cb3b5[_0xfb27('0x40')]=_[_0xfb27('0x41')](_0x4cb3b5[_0xfb27('0x42')],_0x4cb3b5[_0xfb27('0x3f')]);_0x477446[_0xfb27('0x43')]=_[_0xfb27('0x41')](_0x4cb3b5[_0xfb27('0x42')],qs['fields'](_0x12ffda['query'][_0xfb27('0x44')]));_0x477446[_0xfb27('0x43')]=_0x477446['attributes'][_0xfb27('0x45')]?_0x477446[_0xfb27('0x43')]:_0x4cb3b5['model'];if(!_0x12ffda[_0xfb27('0x3f')][_0xfb27('0x46')]('nolimit')){_0x477446['limit']=qs[_0xfb27('0x2f')](_0x12ffda[_0xfb27('0x3f')]['limit']);_0x477446[_0xfb27('0x2d')]=qs[_0xfb27('0x2d')](_0x12ffda[_0xfb27('0x3f')]['offset']);}_0x477446[_0xfb27('0x47')]=qs[_0xfb27('0x48')](_0x12ffda[_0xfb27('0x3f')][_0xfb27('0x48')]);_0x477446['where']=qs[_0xfb27('0x40')](_[_0xfb27('0x49')](_0x12ffda['query'],_0x4cb3b5[_0xfb27('0x40')]),_0x288294);if(_0x12ffda[_0xfb27('0x3f')][_0xfb27('0x4a')]){_0x477446[_0xfb27('0x4b')]=_[_0xfb27('0x4c')](_0x477446[_0xfb27('0x4b')],{'$or':_['map'](_0x288294,function(_0x4ccd87){if(_0x4ccd87[_0xfb27('0x4d')]!==_0xfb27('0x4e')){var _0x252b26={};_0x252b26[_0x4ccd87[_0xfb27('0x39')]]={'$like':'%'+_0x12ffda[_0xfb27('0x3f')]['filter']+'%'};return _0x252b26;}})});}_0x477446=_['merge']({},_0x477446,_0x12ffda[_0xfb27('0x4f')]);var _0x210ad4={'where':_0x477446[_0xfb27('0x4b')]};return db[_0xfb27('0x50')][_0xfb27('0x30')](_0x210ad4)[_0xfb27('0x1f')](function(_0x38698e){_0x1f80c1['count']=_0x38698e;if(_0x12ffda['query']['includeAll']){_0x477446[_0xfb27('0x51')]=[{'all':!![]}];}return db[_0xfb27('0x50')][_0xfb27('0x52')](_0x477446);})[_0xfb27('0x1f')](function(_0x3b5453){_0x1f80c1[_0xfb27('0x53')]=_0x3b5453;return _0x1f80c1;})[_0xfb27('0x1f')](respondWithFilteredResult(_0x470ead,_0x477446))[_0xfb27('0x28')](handleError(_0x470ead,null));};exports[_0xfb27('0x54')]=function(_0xa9697d,_0xddaf1d){var _0x1f5124={'raw':![],'where':{'id':_0xa9697d[_0xfb27('0x55')]['id']},'include':[{'model':db[_0xfb27('0x56')],'as':_0xfb27('0x57')}]},_0x18e919={};_0x18e919['model']=_[_0xfb27('0x3e')](db[_0xfb27('0x50')][_0xfb27('0x3b')]);_0x18e919[_0xfb27('0x3f')]=_[_0xfb27('0x3e')](_0xa9697d[_0xfb27('0x3f')]);_0x18e919['filters']=_[_0xfb27('0x41')](_0x18e919[_0xfb27('0x42')],_0x18e919[_0xfb27('0x3f')]);_0x1f5124[_0xfb27('0x43')]=_['intersection'](_0x18e919[_0xfb27('0x42')],qs['fields'](_0xa9697d['query'][_0xfb27('0x44')]));_0x1f5124['attributes']=_0x1f5124[_0xfb27('0x43')][_0xfb27('0x45')]?_0x1f5124['attributes']:_0x18e919['model'];if(_0xa9697d[_0xfb27('0x3f')]['includeAll']){_0x1f5124[_0xfb27('0x51')]=[{'all':!![]}];}_0x1f5124=_[_0xfb27('0x4c')]({},_0x1f5124,_0xa9697d[_0xfb27('0x4f')]);return db[_0xfb27('0x50')][_0xfb27('0x58')](_0x1f5124)[_0xfb27('0x1f')](handleEntityNotFound(_0xddaf1d,null))[_0xfb27('0x1f')](respondWithResult(_0xddaf1d,null))['catch'](handleError(_0xddaf1d,null));};exports[_0xfb27('0x59')]=function(_0x163b25,_0x2666b2){return db[_0xfb27('0x50')][_0xfb27('0x59')](_0x163b25[_0xfb27('0x5a')],{})[_0xfb27('0x1f')](function(_0x5abaca){var _0x21708c=_0x163b25[_0xfb27('0x5b')][_0xfb27('0x35')]({'plain':!![]});if(!_0x21708c)throw new Error(_0xfb27('0x5c'));if(_0x21708c[_0xfb27('0x5d')]===_0xfb27('0x5b')){var _0x52e2f4=_0x5abaca['get']({'plain':!![]});var _0x2b6091='SmsAccounts';return db['UserProfileSection'][_0xfb27('0x58')]({'where':{'name':_0x2b6091,'userProfileId':_0x21708c[_0xfb27('0x5e')]},'raw':!![]})['then'](function(_0x1be7b0){if(_0x1be7b0&&_0x1be7b0['autoAssociation']===0x0){return db[_0xfb27('0x37')][_0xfb27('0x59')]({'name':_0x52e2f4['name'],'resourceId':_0x52e2f4['id'],'type':_0x1be7b0['name'],'sectionId':_0x1be7b0['id']},{})['then'](function(){return _0x5abaca;});}else{return _0x5abaca;}})[_0xfb27('0x28')](function(_0x1ff5f0){logger['error'](_0xfb27('0x5f'),_0x1ff5f0);throw _0x1ff5f0;});}return _0x5abaca;})[_0xfb27('0x1f')](respondWithResult(_0x2666b2,0xc9))['catch'](handleError(_0x2666b2,null));};exports[_0xfb27('0x34')]=function(_0x5daf7d,_0x31dda7){if(_0x5daf7d[_0xfb27('0x5a')]['id']){delete _0x5daf7d[_0xfb27('0x5a')]['id'];}return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x5daf7d[_0xfb27('0x55')]['id']},'include':[{'model':db[_0xfb27('0x56')],'as':_0xfb27('0x57')}]})[_0xfb27('0x1f')](handleEntityNotFound(_0x31dda7,null))[_0xfb27('0x1f')](saveUpdates(_0x5daf7d[_0xfb27('0x5a')],null))[_0xfb27('0x1f')](respondWithResult(_0x31dda7,null))['catch'](handleError(_0x31dda7,null));};exports[_0xfb27('0x38')]=function(_0x4fbe60,_0x1281fc){return db['SmsAccount'][_0xfb27('0x58')]({'where':{'id':_0x4fbe60[_0xfb27('0x55')]['id']}})['then'](handleEntityNotFound(_0x1281fc,null))[_0xfb27('0x1f')](removeEntity(_0x1281fc,null))[_0xfb27('0x28')](handleError(_0x1281fc,null));};exports[_0xfb27('0x60')]=function(_0x47f647,_0x59576d){return db['SmsAccount'][_0xfb27('0x60')]()[_0xfb27('0x1f')](respondWithResult(_0x59576d,null))['catch'](handleError(_0x59576d,null));};exports[_0xfb27('0x61')]=function(_0x5e1e1b,_0x2decca,_0x53741e){if(_0x5e1e1b[_0xfb27('0x5a')]['id']){delete _0x5e1e1b[_0xfb27('0x5a')]['id'];}return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x5e1e1b[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x2decca,null))[_0xfb27('0x1f')](function(_0x55ba14){if(_0x55ba14){_0x5e1e1b[_0xfb27('0x5a')]['SmsAccountId']=_0x55ba14['id'];return db['Disposition']['create'](_0x5e1e1b['body']);}})[_0xfb27('0x1f')](respondWithResult(_0x2decca,null))[_0xfb27('0x28')](handleError(_0x2decca,null));};exports[_0xfb27('0x62')]=function(_0x39bffe,_0x1b821d,_0x544029){var _0x2886cc={'raw':![],'where':{}};var _0x354fdc={};var _0x13d492={'count':0x0,'rows':[]};return db[_0xfb27('0x50')][_0xfb27('0x63')]({'where':{'id':_0x39bffe['params']['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x1b821d,null))[_0xfb27('0x1f')](function(_0x43aec0){if(_0x43aec0){_0x354fdc['model']=_[_0xfb27('0x3e')](db[_0xfb27('0x64')][_0xfb27('0x3b')]);_0x354fdc[_0xfb27('0x3f')]=_[_0xfb27('0x3e')](_0x39bffe[_0xfb27('0x3f')]);_0x354fdc[_0xfb27('0x40')]=_[_0xfb27('0x41')](_0x354fdc[_0xfb27('0x42')],_0x354fdc[_0xfb27('0x3f')]);_0x2886cc[_0xfb27('0x43')]=_[_0xfb27('0x41')](_0x354fdc[_0xfb27('0x42')],qs[_0xfb27('0x44')](_0x39bffe[_0xfb27('0x3f')][_0xfb27('0x44')]));_0x2886cc['attributes']=_0x2886cc[_0xfb27('0x43')][_0xfb27('0x45')]?_0x2886cc[_0xfb27('0x43')]:_0x354fdc[_0xfb27('0x42')];if(!_0x39bffe['query'][_0xfb27('0x46')](_0xfb27('0x65'))){_0x2886cc[_0xfb27('0x2f')]=qs['limit'](_0x39bffe[_0xfb27('0x3f')]['limit']);_0x2886cc['offset']=qs['offset'](_0x39bffe['query'][_0xfb27('0x2d')]);}_0x2886cc['order']=qs['sort'](_0x39bffe[_0xfb27('0x3f')][_0xfb27('0x48')]);_0x2886cc[_0xfb27('0x4b')]=qs[_0xfb27('0x40')](_[_0xfb27('0x49')](_0x39bffe[_0xfb27('0x3f')],_0x354fdc[_0xfb27('0x40')]));_0x2886cc['where'][_0xfb27('0x66')]=_0x43aec0['id'];if(_0x39bffe['query']['filter']){_0x2886cc['where']=_[_0xfb27('0x4c')](_0x2886cc[_0xfb27('0x4b')],{'$or':_[_0xfb27('0x67')](_0x2886cc[_0xfb27('0x43')],function(_0xe28b72){var _0x5ee1d3={};_0x5ee1d3[_0xe28b72]={'$like':'%'+_0x39bffe['query']['filter']+'%'};return _0x5ee1d3;})});}_0x2886cc=_[_0xfb27('0x4c')]({},_0x2886cc,_0x39bffe['options']);return db['Disposition'][_0xfb27('0x30')]({'where':_0x2886cc[_0xfb27('0x4b')]})[_0xfb27('0x1f')](function(_0x582189){_0x13d492['count']=_0x582189;if(_0x39bffe[_0xfb27('0x3f')][_0xfb27('0x68')]){_0x2886cc[_0xfb27('0x51')]=[{'all':!![]}];}return db[_0xfb27('0x64')][_0xfb27('0x52')](_0x2886cc);})['then'](function(_0x3094b6){_0x13d492[_0xfb27('0x53')]=_0x3094b6;return _0x13d492;});}})[_0xfb27('0x1f')](respondWithFilteredResult(_0x1b821d,_0x2886cc))[_0xfb27('0x28')](handleError(_0x1b821d,null));};exports[_0xfb27('0x69')]=function(_0x308143,_0x3193a1,_0x1ab036){return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x308143[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x3193a1,null))[_0xfb27('0x1f')](function(_0x5755cf){if(_0x5755cf){return _0x5755cf[_0xfb27('0x69')](_0x308143[_0xfb27('0x3f')]['ids']);}})['then'](respondWithStatusCode(_0x3193a1,null))[_0xfb27('0x28')](handleError(_0x3193a1,null));};exports[_0xfb27('0x6a')]=function(_0x2c936d,_0x13c0c8,_0x41d04f){if(_0x2c936d['body']['id']){delete _0x2c936d[_0xfb27('0x5a')]['id'];}return db['SmsAccount']['find']({'where':{'id':_0x2c936d[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x13c0c8,null))[_0xfb27('0x1f')](function(_0x175a3f){if(_0x175a3f){_0x2c936d['body'][_0xfb27('0x66')]=_0x175a3f['id'];return db[_0xfb27('0x6b')][_0xfb27('0x59')](_0x2c936d[_0xfb27('0x5a')]);}})[_0xfb27('0x1f')](respondWithResult(_0x13c0c8,null))[_0xfb27('0x28')](handleError(_0x13c0c8,null));};exports[_0xfb27('0x6c')]=function(_0x151845,_0x20c6a2,_0x5a260d){var _0x505871={'raw':![],'where':{}};var _0x4e798e={};var _0x3619a7={'count':0x0,'rows':[]};return db[_0xfb27('0x50')][_0xfb27('0x63')]({'where':{'id':_0x151845[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x20c6a2,null))[_0xfb27('0x1f')](function(_0x315378){if(_0x315378){_0x4e798e[_0xfb27('0x42')]=_[_0xfb27('0x3e')](db[_0xfb27('0x6b')][_0xfb27('0x3b')]);_0x4e798e[_0xfb27('0x3f')]=_[_0xfb27('0x3e')](_0x151845[_0xfb27('0x3f')]);_0x4e798e[_0xfb27('0x40')]=_[_0xfb27('0x41')](_0x4e798e[_0xfb27('0x42')],_0x4e798e[_0xfb27('0x3f')]);_0x505871[_0xfb27('0x43')]=_[_0xfb27('0x41')](_0x4e798e[_0xfb27('0x42')],qs['fields'](_0x151845[_0xfb27('0x3f')]['fields']));_0x505871['attributes']=_0x505871['attributes']['length']?_0x505871['attributes']:_0x4e798e['model'];if(!_0x151845[_0xfb27('0x3f')][_0xfb27('0x46')](_0xfb27('0x65'))){_0x505871[_0xfb27('0x2f')]=qs['limit'](_0x151845[_0xfb27('0x3f')][_0xfb27('0x2f')]);_0x505871[_0xfb27('0x2d')]=qs[_0xfb27('0x2d')](_0x151845[_0xfb27('0x3f')][_0xfb27('0x2d')]);}_0x505871[_0xfb27('0x47')]=qs[_0xfb27('0x48')](_0x151845[_0xfb27('0x3f')][_0xfb27('0x48')]);_0x505871[_0xfb27('0x4b')]=qs['filters'](_['pick'](_0x151845[_0xfb27('0x3f')],_0x4e798e[_0xfb27('0x40')]));_0x505871[_0xfb27('0x4b')][_0xfb27('0x66')]=_0x315378['id'];if(_0x151845[_0xfb27('0x3f')]['filter']){_0x505871[_0xfb27('0x4b')]=_['merge'](_0x505871[_0xfb27('0x4b')],{'$or':_[_0xfb27('0x67')](_0x505871[_0xfb27('0x43')],function(_0x333f1e){var _0x1195ea={};_0x1195ea[_0x333f1e]={'$like':'%'+_0x151845['query'][_0xfb27('0x4a')]+'%'};return _0x1195ea;})});}_0x505871=_[_0xfb27('0x4c')]({},_0x505871,_0x151845[_0xfb27('0x4f')]);return db['CannedAnswer'][_0xfb27('0x30')]({'where':_0x505871[_0xfb27('0x4b')]})['then'](function(_0x4565d7){_0x3619a7[_0xfb27('0x30')]=_0x4565d7;if(_0x151845['query'][_0xfb27('0x68')]){_0x505871[_0xfb27('0x51')]=[{'all':!![]}];}return db[_0xfb27('0x6b')][_0xfb27('0x52')](_0x505871);})['then'](function(_0x18c17b){_0x3619a7[_0xfb27('0x53')]=_0x18c17b;return _0x3619a7;});}})[_0xfb27('0x1f')](respondWithFilteredResult(_0x20c6a2,_0x505871))[_0xfb27('0x28')](handleError(_0x20c6a2,null));};exports['removeAnswers']=function(_0x54b19c,_0x2f29d0,_0x31849c){return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x54b19c[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x2f29d0,null))[_0xfb27('0x1f')](function(_0x590373){if(_0x590373){return _0x590373['removeAnswers'](_0x54b19c[_0xfb27('0x3f')][_0xfb27('0x6d')]);}})[_0xfb27('0x1f')](respondWithStatusCode(_0x2f29d0,null))[_0xfb27('0x28')](handleError(_0x2f29d0,null));};exports[_0xfb27('0x6e')]=function(_0x5f2f59,_0x1fc500,_0x356d82){var _0x1b5537={'channel':'sms'};var _0x16f1d5=[];var _0x3440a0=[];var _0x3d9646={};return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x5f2f59[_0xfb27('0x55')]['id']},'include':[{'model':db[_0xfb27('0x6f')],'as':_0xfb27('0x70')}]})['then'](handleEntityNotFound(_0x1fc500,null))[_0xfb27('0x1f')](function(_0xed198e){_0x1b5537['account']=_0xed198e;_0x1b5537[_0xfb27('0x71')]=_[_0xfb27('0x72')](_0xed198e['Applications'],[_0xfb27('0x73')],[_0xfb27('0x74')]);if(_0x1b5537[_0xfb27('0x75')][_0xfb27('0x70')]){delete _0x1b5537['account'][_0xfb27('0x70')];}return db[_0xfb27('0x76')]['describe']();})['then'](function(_0x5e54a2){if(!_0x5e54a2){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))](_0xfb27('0x79'));}_0x16f1d5=_[_0xfb27('0x7a')](_[_0xfb27('0x3e')](_0x5e54a2),[_0xfb27('0x7b'),_0xfb27('0x7c')]);_0x3440a0=_[_0xfb27('0x7a')](_[_0xfb27('0x3e')](_0x5e54a2),[_0xfb27('0x7b'),'updatedAt','CompanyId','ListId']);_0x1b5537[_0xfb27('0x5a')]={'mapKey':_0xfb27('0x7d')};if(_0x1b5537[_0xfb27('0x75')]['type']){switch(_0x1b5537['account'][_0xfb27('0x4d')]){case _0xfb27('0x7e'):_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59['body'][_0xfb27('0x80')];_0x1b5537['body'][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x81')];_0x1b5537['body'][_0xfb27('0x82')]=_0x5f2f59[_0xfb27('0x5a')]['MessageSid'];break;case _0xfb27('0x83'):_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]='+'+_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x84')];_0x1b5537['body'][_0xfb27('0x5a')]=_0x5f2f59['body'][_0xfb27('0x85')];break;case'connectel':_0x1b5537[_0xfb27('0x5a')]['from']=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x7f')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')]['message'];break;case _0xfb27('0x86'):_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x7f')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x5a')];_0x1b5537['body'][_0xfb27('0x82')]=_0x5f2f59['body'][_0xfb27('0x87')];break;case _0xfb27('0x88'):_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x80')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')]['Text'];_0x1b5537[_0xfb27('0x5a')]['messageId']=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x89')];break;case _0xfb27('0x8a'):_0x1b5537[_0xfb27('0x5a')]['from']='+'+_0x5f2f59['body'][_0xfb27('0x8b')][0x0][_0xfb27('0x7f')];_0x1b5537[_0xfb27('0x5a')]['body']=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x8b')][0x0][_0xfb27('0x85')];_0x1b5537[_0xfb27('0x5a')]['messageId']=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x8b')][0x0][_0xfb27('0x82')];break;case'csc':_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x8c')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x8d')][_0xfb27('0x26')];break;case'clickatell':_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x8e')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x85')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x82')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x8f')];break;case _0xfb27('0x90'):_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x82')]=_0x5f2f59[_0xfb27('0x5a')][0x0][_0xfb27('0x26')]['id'];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59[_0xfb27('0x5a')][0x0][_0xfb27('0x26')][_0xfb27('0x7f')];_0x1b5537[_0xfb27('0x5a')]['body']=_0x5f2f59[_0xfb27('0x5a')][0x0]['message']['text'];break;case'intelepeer':_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x7f')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x26')];_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x82')]=_0x5f2f59[_0xfb27('0x5a')][_0xfb27('0x91')];break;}}if(_0x1b5537[_0xfb27('0x5a')]['id']){delete _0x1b5537[_0xfb27('0x5a')]['id'];}if(_[_0xfb27('0x92')](_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')])){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))]('from\x20is\x20mandatory');}if(_[_0xfb27('0x92')](_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')])||_0x1b5537['body']['body']===''){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))](_0xfb27('0x93'));}if(_[_0xfb27('0x92')](_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x94')])){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3440a0);}if(!_[_0xfb27('0x95')](_0x3440a0,_0x1b5537[_0xfb27('0x5a')]['mapKey'])){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))](_0xfb27('0x96')+_0x3440a0);}_0x3d9646[_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x94')]]=_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')];return db[_0xfb27('0x97')]['find']({'where':{'id':_0x1b5537[_0xfb27('0x75')][_0xfb27('0x98')]},'include':[{'model':db[_0xfb27('0x76')],'as':'Contacts','where':_0x3d9646,'limit':0x1,'order':[['updatedAt',_0xfb27('0x99')]]}]});})[_0xfb27('0x1f')](handleEntityNotFound(_0x1fc500,null))[_0xfb27('0x1f')](function(_0x52f952){if(_0x52f952){_0x1b5537[_0xfb27('0x9a')]=_[_0xfb27('0x9b')](_0x52f952,[_0xfb27('0x9c')]);if(_0x52f952['Contacts'][_0xfb27('0x45')]){return _0x52f952['Contacts'][0x0];}var _0x3b4a1d=_['defaults'](_0x1b5537[_0xfb27('0x5a')],{'firstName':_0x1b5537['body'][_0xfb27('0x7f')],'ListId':_0x52f952['id']});_0x3b4a1d[_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x94')]]=_0x1b5537[_0xfb27('0x5a')]['from'];return db[_0xfb27('0x76')][_0xfb27('0x59')](_0x3b4a1d,{'fields':_0x16f1d5,'raw':!![]});}})['then'](handleEntityNotFound(_0x1fc500,null))[_0xfb27('0x1f')](function(_0x2b6750){if(_0x2b6750){_0x1b5537[_0xfb27('0x9d')]=_0x2b6750;var _0x5612b4={'ContactId':_0x2b6750['id'],'phone':_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x7f')],'SmsAccountId':_0x5f2f59['params']['id']};var _0x48fa70={'ContactId':_0x2b6750['id'],'SmsAccountId':_0x5f2f59[_0xfb27('0x55')]['id'],'closed':![]};return db[_0xfb27('0x9e')][_0xfb27('0x58')]({'where':_0x48fa70})[_0xfb27('0x1f')](function(_0x3c9a7b){if(_0x3c9a7b){return[_0x3c9a7b,![]];}return db[_0xfb27('0x9e')][_0xfb27('0x59')](_0x5612b4)[_0xfb27('0x1f')](function(_0x4b0b3b){return[_0x4b0b3b,!![]];});});}})[_0xfb27('0x9f')](function(_0x411a5c,_0x49eb36){_0x1b5537[_0xfb27('0xa0')]=_0x411a5c['get']({'plain':!![]});_0x1b5537[_0xfb27('0xa0')]['created']=![];if(_0x49eb36){if(_0x1b5537[_0xfb27('0x75')][_0xfb27('0xa1')]){_0x1b5537[_0xfb27('0x71')]['push']({'id':0x0,'priority':_0x1b5537['applications']['length']+0x1,'app':'close','appdata':_0xfb27('0xa2'),'interval':_0xfb27('0xa3')});}_0x1b5537['interaction']['created']=!![];}return db[_0xfb27('0xa4')][_0xfb27('0x59')]({'phone':_0x1b5537['body']['from'],'messageId':_0x1b5537['body'][_0xfb27('0x82')],'body':_0x1b5537[_0xfb27('0x5a')][_0xfb27('0x5a')],'SmsAccountId':_0x5f2f59[_0xfb27('0x55')]['id'],'SmsInteractionId':_0x411a5c['id'],'direction':'in','ContactId':_0x411a5c['ContactId'],'AttachmentId':_0x1b5537[_0xfb27('0x5a')][_0xfb27('0xa5')]});})[_0xfb27('0x1f')](function(_0x3b2db5){_0x1b5537[_0xfb27('0x26')]=_0x3b2db5;if(_0x1b5537[_0xfb27('0xa0')][_0xfb27('0xa6')]){return db[_0xfb27('0xa7')][_0xfb27('0x58')]({'attributes':['id','name'],'where':{'id':_0x1b5537[_0xfb27('0xa0')][_0xfb27('0xa6')]}})[_0xfb27('0x1f')](function(_0x6b9d87){if(_0x6b9d87){_0x1b5537[_0xfb27('0x71')][_0xfb27('0xa8')]({'id':0x0,'priority':0x0,'app':_0xfb27('0xa9'),'appdata':_0x6b9d87[_0xfb27('0x39')]+','+(_0x1b5537[_0xfb27('0x75')][_0xfb27('0xaa')]||0xa),'interval':_0xfb27('0xa3')});}return respondWithRpcPromise(_0xfb27('0xab'),_0xfb27('0xac'),_0x1b5537);});}return respondWithRpcPromise('Start',_0xfb27('0xac'),_0x1b5537);})[_0xfb27('0x1f')](function(_0x49b965){if(_0x49b965){var _0x395462=0xc8;var _0x573b76=_0xfb27('0xad');logger[_0xfb27('0x27')](_0xfb27('0xae'),_0x573b76,_0x395462,'entity\x20found');logger[_0xfb27('0x21')](_0xfb27('0xaf'),_0x573b76,_0x395462,_0xfb27('0xb0'),JSON[_0xfb27('0x22')](_0x49b965));if(_0x1b5537[_0xfb27('0x75')][_0xfb27('0x4d')]===_0xfb27('0x7e')){return _0x1fc500[_0xfb27('0x2a')](_0x395462)[_0xfb27('0xb1')](_0xfb27('0xb2'),_0xfb27('0xb3'))[_0xfb27('0x3a')]('<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>');}else{return _0x1fc500[_0xfb27('0x2a')](_0x395462)[_0xfb27('0x2c')](_0x49b965);}}})[_0xfb27('0x28')](handleError(_0x1fc500,null));};exports[_0xfb27('0xb4')]=function(_0x5bcdce,_0x490373,_0x3450e9){return db[_0xfb27('0x50')][_0xfb27('0x63')]({'where':{'id':_0x5bcdce['params']['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x490373,null))[_0xfb27('0x1f')](function(_0x3ab895){if(_0x3ab895){return db[_0xfb27('0xb5')][_0xfb27('0xb6')](function(_0x20e3c6){return db[_0xfb27('0x6f')]['destroy']({'where':{'SmsAccountId':_0x5bcdce[_0xfb27('0x55')]['id']},'transaction':_0x20e3c6})[_0xfb27('0x1f')](function(_0x327d80){var _0xe2a8c7=_[_0xfb27('0x67')](_0x5bcdce[_0xfb27('0x5a')],function(_0x4a5dbb){_0x4a5dbb[_0xfb27('0x66')]=_0x5bcdce[_0xfb27('0x55')]['id'];return _0x4a5dbb;});return db[_0xfb27('0x6f')][_0xfb27('0xb7')](_0xe2a8c7,{'transaction':_0x20e3c6});});})[_0xfb27('0x1f')](function(){return db[_0xfb27('0x6f')][_0xfb27('0xb8')]({'where':{'SmsAccountId':_0x5bcdce[_0xfb27('0x55')]['id']},'order':_0xfb27('0x73')});});}})[_0xfb27('0x1f')](respondWithResult(_0x490373,null))['catch'](handleError(_0x490373,null));};exports[_0xfb27('0xb9')]=function(_0x2caab2,_0x4f5322,_0x13cf29){var _0x5957e5={};var _0x3dea87={};var _0x3d9d9c;var _0x3e0f71;return db[_0xfb27('0x50')]['findOne']({'where':{'id':_0x2caab2[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x4f5322,null))[_0xfb27('0x1f')](function(_0x5c96ac){if(_0x5c96ac){_0x3d9d9c=_0x5c96ac;_0x3dea87['model']=_['keys'](db[_0xfb27('0x6f')][_0xfb27('0x3b')]);_0x3dea87[_0xfb27('0x3f')]=_[_0xfb27('0x3e')](_0x2caab2[_0xfb27('0x3f')]);_0x3dea87[_0xfb27('0x40')]=_['intersection'](_0x3dea87[_0xfb27('0x42')],_0x3dea87[_0xfb27('0x3f')]);_0x5957e5[_0xfb27('0x43')]=_['intersection'](_0x3dea87[_0xfb27('0x42')],qs[_0xfb27('0x44')](_0x2caab2[_0xfb27('0x3f')][_0xfb27('0x44')]));_0x5957e5[_0xfb27('0x43')]=_0x5957e5[_0xfb27('0x43')][_0xfb27('0x45')]?_0x5957e5[_0xfb27('0x43')]:_0x3dea87[_0xfb27('0x42')];_0x5957e5[_0xfb27('0x47')]=qs[_0xfb27('0x48')](_0x2caab2['query'][_0xfb27('0x48')]);_0x5957e5[_0xfb27('0x4b')]=qs[_0xfb27('0x40')](_[_0xfb27('0x49')](_0x2caab2[_0xfb27('0x3f')],_0x3dea87[_0xfb27('0x40')]));if(_0x2caab2[_0xfb27('0x3f')][_0xfb27('0x4a')]){_0x5957e5['where']=_[_0xfb27('0x4c')](_0x5957e5[_0xfb27('0x4b')],{'$or':_['map'](_0x5957e5[_0xfb27('0x43')],function(_0x40839f){var _0xdae827={};_0xdae827[_0x40839f]={'$like':'%'+_0x2caab2[_0xfb27('0x3f')][_0xfb27('0x4a')]+'%'};return _0xdae827;})});}_0x5957e5=_[_0xfb27('0x4c')]({},_0x5957e5,_0x2caab2['options']);return _0x3d9d9c[_0xfb27('0xb9')](_0x5957e5);}})[_0xfb27('0x1f')](function(_0x316e39){if(_0x316e39){_0x3e0f71=_0x316e39[_0xfb27('0x45')];if(!_0x2caab2[_0xfb27('0x3f')][_0xfb27('0x46')](_0xfb27('0x65'))){_0x5957e5[_0xfb27('0x2f')]=qs[_0xfb27('0x2f')](_0x2caab2[_0xfb27('0x3f')][_0xfb27('0x2f')]);_0x5957e5['offset']=qs['offset'](_0x2caab2[_0xfb27('0x3f')]['offset']);}return _0x3d9d9c[_0xfb27('0xb9')](_0x5957e5);}})[_0xfb27('0x1f')](function(_0x3abb31){if(_0x3abb31){return _0x3abb31?{'count':_0x3e0f71,'rows':_0x3abb31}:null;}})[_0xfb27('0x1f')](respondWithResult(_0x4f5322,null))[_0xfb27('0x28')](handleError(_0x4f5322,null));};exports[_0xfb27('0xba')]=function(_0xf58ff9,_0x1b5753,_0x45a99c){var _0x468dc6={'raw':![],'where':{}};var _0x3e85d={};var _0x164138={'count':0x0,'rows':[]};return db['SmsAccount'][_0xfb27('0x63')]({'where':{'id':_0xf58ff9[_0xfb27('0x55')]['id']}})['then'](handleEntityNotFound(_0x1b5753,null))[_0xfb27('0x1f')](function(_0x4b8354){if(_0x4b8354){_0x3e85d[_0xfb27('0x42')]=_[_0xfb27('0x3e')](db[_0xfb27('0x9e')][_0xfb27('0x3b')]);_0x3e85d[_0xfb27('0x3f')]=_['keys'](_0xf58ff9['query']);_0x3e85d[_0xfb27('0x40')]=_[_0xfb27('0x41')](_0x3e85d[_0xfb27('0x42')],_0x3e85d[_0xfb27('0x3f')]);_0x468dc6[_0xfb27('0x43')]=_[_0xfb27('0x41')](_0x3e85d[_0xfb27('0x42')],qs[_0xfb27('0x44')](_0xf58ff9['query'][_0xfb27('0x44')]));_0x468dc6['attributes']=_0x468dc6[_0xfb27('0x43')][_0xfb27('0x45')]?_0x468dc6['attributes']:_0x3e85d[_0xfb27('0x42')];if(!_0xf58ff9[_0xfb27('0x3f')]['hasOwnProperty']('nolimit')){_0x468dc6[_0xfb27('0x2f')]=qs[_0xfb27('0x2f')](_0xf58ff9[_0xfb27('0x3f')]['limit']);_0x468dc6[_0xfb27('0x2d')]=qs[_0xfb27('0x2d')](_0xf58ff9[_0xfb27('0x3f')][_0xfb27('0x2d')]);}_0x468dc6['order']=qs[_0xfb27('0x48')](_0xf58ff9[_0xfb27('0x3f')]['sort']);_0x468dc6[_0xfb27('0x4b')]=qs['filters'](_[_0xfb27('0x49')](_0xf58ff9['query'],_0x3e85d[_0xfb27('0x40')]));_0x468dc6[_0xfb27('0x4b')]['SmsAccountId']=_0x4b8354['id'];if(_0xf58ff9['query'][_0xfb27('0x4a')]){_0x468dc6[_0xfb27('0x4b')]=_[_0xfb27('0x4c')](_0x468dc6[_0xfb27('0x4b')],{'$or':_[_0xfb27('0x67')](_0x468dc6['attributes'],function(_0x46402b){var _0x525655={};_0x525655[_0x46402b]={'$like':'%'+_0xf58ff9['query'][_0xfb27('0x4a')]+'%'};return _0x525655;})});}_0x468dc6=_[_0xfb27('0x4c')]({},_0x468dc6,_0xf58ff9[_0xfb27('0x4f')]);return db[_0xfb27('0x9e')][_0xfb27('0x30')]({'where':_0x468dc6[_0xfb27('0x4b')]})['then'](function(_0xaa477b){_0x164138[_0xfb27('0x30')]=_0xaa477b;if(_0xf58ff9[_0xfb27('0x3f')][_0xfb27('0x68')]){_0x468dc6['include']=[{'model':db['CmContact'],'as':_0xfb27('0xbb'),'required':![]},{'model':db['User'],'as':_0xfb27('0xbc'),'attributes':[_0xfb27('0x39'),_0xfb27('0xbd'),_0xfb27('0xbe')],'required':![]},{'model':db[_0xfb27('0xbf')],'as':_0xfb27('0xc0'),'attributes':['id','name','color'],'where':_0xf58ff9[_0xfb27('0x3f')][_0xfb27('0xc1')]?{'id':_0xf58ff9[_0xfb27('0x3f')][_0xfb27('0xc1')]}:undefined,'required':_0xf58ff9[_0xfb27('0x3f')][_0xfb27('0xc1')]?!![]:![]}];}return db[_0xfb27('0x9e')][_0xfb27('0x52')](_0x468dc6);})['then'](function(_0x1cf768){_0x164138[_0xfb27('0x53')]=_0x1cf768;return _0x164138;});}})[_0xfb27('0x1f')](respondWithFilteredResult(_0x1b5753,_0x468dc6))[_0xfb27('0x28')](handleError(_0x1b5753,null));};exports[_0xfb27('0x3a')]=function(_0x5395e9,_0xd38ab8,_0x586a05){var _0x196ccd,_0x5b0bb8,_0xd173c4;if(_[_0xfb27('0x92')](_0x5395e9[_0xfb27('0x5a')]['body'])||_0x5395e9[_0xfb27('0x5a')][_0xfb27('0x5a')]===''){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))](_0xfb27('0x93'));}if(_[_0xfb27('0x92')](_0x5395e9[_0xfb27('0x5a')]['to'])){throw new db[(_0xfb27('0x77'))][(_0xfb27('0x78'))]('to\x20is\x20mandatory');}_0x196ccd=_0x5395e9[_0xfb27('0x5a')]['to'];return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x5395e9[_0xfb27('0x55')]['id']},'include':[{'model':db[_0xfb27('0x97')],'as':_0xfb27('0xc2'),'include':[{'model':db[_0xfb27('0x76')],'as':_0xfb27('0x9c'),'where':{'mobile':_0x196ccd},'limit':0x1,'order':[['updatedAt',_0xfb27('0x99')]]}]}]})[_0xfb27('0x1f')](handleEntityNotFound(_0xd38ab8,null))[_0xfb27('0x1f')](function(_0x5d4e6d){if(_0x5d4e6d&&_0x5d4e6d[_0xfb27('0xc2')]){_0x5b0bb8=_0x5d4e6d[_0xfb27('0x35')]({'plain':!![]});if(_0x5b0bb8['List']&&_0x5b0bb8['List'][_0xfb27('0x9c')][_0xfb27('0x45')]){return _0x5b0bb8[_0xfb27('0xc2')]['Contacts'][0x0];}return db[_0xfb27('0x76')]['create'](_[_0xfb27('0xc3')](_0x5395e9['body'],{'firstName':_0x196ccd,'mobile':_0x196ccd,'phone':_0x196ccd,'ListId':_0x5b0bb8[_0xfb27('0x98')]}));}})[_0xfb27('0x1f')](handleEntityNotFound(_0xd38ab8,null))[_0xfb27('0x1f')](function(_0x29aaa4){if(_0x29aaa4){_0xd173c4=_0x29aaa4;return db[_0xfb27('0x9e')][_0xfb27('0x58')]({'where':{'ContactId':_0xd173c4['id'],'closed':![],'SmsAccountId':_0x5b0bb8['id']}})['then'](function(_0x321c2f){if(_0x321c2f){return[_0x321c2f,![]];}return db[_0xfb27('0x9e')][_0xfb27('0x59')]({'UserId':_0x5395e9[_0xfb27('0x5b')]['id'],'ContactId':_0xd173c4['id'],'SmsAccountId':_0x5b0bb8['id'],'phone':_0x196ccd,'firstMsgDirection':'out','Messages':[_[_0xfb27('0x4c')](_0x5395e9[_0xfb27('0x5a')],{'read':![],'body':_0x5395e9[_0xfb27('0x5a')][_0xfb27('0x5a')],'phone':_0x196ccd,'SmsAccountId':_0x5b0bb8['id'],'UserId':_0x5395e9[_0xfb27('0x5b')]['id'],'ContactId':_0xd173c4['id']})]},{'include':[{'model':db['SmsMessage'],'as':_0xfb27('0xc4')}]})[_0xfb27('0x1f')](function(_0x2edeaf){return[_0x2edeaf,!![]];});});}})[_0xfb27('0x9f')](function(_0x3823a1,_0x29ab48){if(_0x29ab48){return _0x3823a1;}return db[_0xfb27('0xa4')][_0xfb27('0x59')](_[_0xfb27('0x4c')](_0x5395e9[_0xfb27('0x5a')],{'read':![],'body':_0x5395e9[_0xfb27('0x5a')][_0xfb27('0x5a')],'phone':_0x196ccd,'SmsAccountId':_0x5b0bb8['id'],'SmsInteractionId':_0x3823a1['id'],'UserId':_0x5395e9[_0xfb27('0x5b')]['id'],'ContactId':_0xd173c4['id']}))[_0xfb27('0x1f')](function(_0x3ffe20){_0x3823a1[_0xfb27('0xc5')][_0xfb27('0xc4')]=[];_0x3823a1[_0xfb27('0xc5')][_0xfb27('0xc4')][_0xfb27('0xc6')](_0x3ffe20[_0xfb27('0xc5')]);return _0x3823a1;});})[_0xfb27('0x1f')](respondWithResult(_0xd38ab8,null))[_0xfb27('0x28')](handleError(_0xd38ab8,null));};exports[_0xfb27('0x2a')]=function(_0x36c6d8,_0x41d800,_0x180791){if(_0x36c6d8['body']['id']){delete _0x36c6d8['body']['id'];}var _0x5b7893,_0x550b77,_0x27aa02;return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x36c6d8['params']['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x41d800,null))['then'](function(_0x3192cb){if(_0x3192cb){_0x27aa02=_0x3192cb;logger[_0xfb27('0x21')](_0xfb27('0xae'),_0xfb27('0x2a'),'received\x20delivery\x20report\x20from',_0x3192cb[_0xfb27('0x4d')],util[_0xfb27('0xc7')](_0x36c6d8['body'],{'showHidden':![],'depth':null}));switch(_0x3192cb['type']){case _0xfb27('0x83'):if(_0x36c6d8['body']['skebby_dispatch_id']&&_0x36c6d8[_0xfb27('0x5a')]['status']){_0x550b77=_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0x2a')];return db['SmsMessage'][_0xfb27('0x58')]({'where':{'messageId':_0x36c6d8['body'][_0xfb27('0xc8')]}});}break;case _0xfb27('0xc9'):if(_0x36c6d8[_0xfb27('0x5a')]['requestid']&&_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0xca')]){_0x550b77=_0x36c6d8[_0xfb27('0x5a')]['statusInt'];return db[_0xfb27('0xa4')][_0xfb27('0x58')]({'where':{'messageId':_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0xcb')]}});}break;case _0xfb27('0x86'):if(_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0x87')]&&_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0xcc')]){_0x550b77=_0x36c6d8[_0xfb27('0x5a')]['status_code'];return db[_0xfb27('0xa4')][_0xfb27('0x58')]({'where':{'messageId':_0x36c6d8['body'][_0xfb27('0x87')]}});}break;case'infobip':var _0x99cd1d=_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0x8b')][0x0];if(_0x99cd1d['messageId']&&_0x99cd1d[_0xfb27('0x2a')][_0xfb27('0xcd')]===_0xfb27('0xce')){_0x550b77=_0x99cd1d[_0xfb27('0x2a')][_0xfb27('0xcd')];return db[_0xfb27('0xa4')][_0xfb27('0x58')]({'where':{'messageId':_0x99cd1d[_0xfb27('0x82')]}});}break;case _0xfb27('0xcf'):if(_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0x82')]&&_0x36c6d8['body'][_0xfb27('0x2a')]){_0x550b77=_0x36c6d8['body'][_0xfb27('0x2a')];return db[_0xfb27('0xa4')][_0xfb27('0x58')]({'where':{'messageId':_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0x82')]}});}break;case _0xfb27('0x90'):if(_0x36c6d8['body'][0x0][_0xfb27('0x26')]['id']){_0x550b77=_0x36c6d8[_0xfb27('0x5a')][0x0][_0xfb27('0x4d')];return db[_0xfb27('0xa4')]['find']({'where':{'messageId':_0x36c6d8[_0xfb27('0x5a')][0x0][_0xfb27('0x26')]['id']}});}break;case _0xfb27('0xd0'):if(_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0xd1')]&&_0x36c6d8[_0xfb27('0x5a')]['status']){_0x550b77=_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0x2a')];return db[_0xfb27('0xa4')][_0xfb27('0x58')]({'where':{'messageId':_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0xd1')]}});}break;}}})[_0xfb27('0x1f')](handleEntityNotFound(_0x41d800,null))[_0xfb27('0x1f')](function(_0x11c8e7){if(_0x11c8e7){_0x5b7893=_0x11c8e7;switch(_0x27aa02[_0xfb27('0x4d')]){case _0xfb27('0x83'):if(_0x550b77===_0xfb27('0xce')){return _0x5b7893[_0xfb27('0x34')]({'read':!![]});}else{logger[_0xfb27('0x23')](_0xfb27('0xae'),_0xfb27('0x2a'),'skebby',util[_0xfb27('0xc7')](_0x36c6d8[_0xfb27('0x5a')],{'showHidden':![],'depth':null}));}break;case'connectel':if(_0x550b77==='1'){return _0x5b7893['update']({'read':!![]});}else{logger[_0xfb27('0x23')](_0xfb27('0xae'),'status',_0xfb27('0x83'),util[_0xfb27('0xc7')](_0x36c6d8['body'],{'showHidden':![],'depth':null}));}break;case _0xfb27('0x86'):if(!_0x36c6d8[_0xfb27('0x5a')][_0xfb27('0xd2')]&&_0x550b77>=0xc8&&_0x550b77<=0xce){return _0x5b7893[_0xfb27('0x34')]({'read':!![]});}else{logger['error'](_0xfb27('0xae'),_0xfb27('0x2a'),_0xfb27('0x86'),util[_0xfb27('0xc7')](_0x36c6d8[_0xfb27('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xfb27('0x8a'):var _0x234e8a=_0x36c6d8['body'][_0xfb27('0x8b')][0x0];if(_0x234e8a[_0xfb27('0x2a')]['groupName']===_0xfb27('0xce')){return _0x5b7893[_0xfb27('0x34')]({'read':!![]});}else{logger[_0xfb27('0x23')](_0xfb27('0xae'),_0xfb27('0x2a'),_0xfb27('0x8a'),util[_0xfb27('0xc7')](_0x36c6d8[_0xfb27('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xfb27('0xcf'):if(_0x550b77==_0xfb27('0xd3')||_0x550b77=='RECEIVED_BY_RECIPIENT'){return _0x5b7893[_0xfb27('0x34')]({'read':!![]});}else{logger[_0xfb27('0x23')](_0xfb27('0xae'),'status',_0xfb27('0xcf'),util[_0xfb27('0xc7')](_0x36c6d8[_0xfb27('0x5a')],{'showHidden':![],'depth':null}));}break;case _0xfb27('0x90'):if(_0x550b77==_0xfb27('0xd4')){return _0x5b7893[_0xfb27('0x34')]({'read':!![]});}else{logger['error'](_0xfb27('0xae'),_0xfb27('0x2a'),_0xfb27('0x90'),util[_0xfb27('0xc7')](_0x36c6d8['body'],{'showHidden':![],'depth':null}));}break;case _0xfb27('0xd0'):if(_0x550b77===_0xfb27('0xd5')||_0x550b77===_0xfb27('0xd6')){return _0x5b7893[_0xfb27('0x34')]({'read':!![]});}else{logger[_0xfb27('0x23')](_0xfb27('0xae'),_0xfb27('0x2a'),_0xfb27('0xd0'),util[_0xfb27('0xc7')](_0x36c6d8[_0xfb27('0x5a')],{'showHidden':![],'depth':null}));}break;}return _0x5b7893;}})[_0xfb27('0x1f')](respondWithResult(_0x41d800,null))[_0xfb27('0x28')](handleError(_0x41d800,null));};exports['statusGet']=function(_0x17ed6b,_0x5af54b,_0x57181f){var _0x112cef,_0x63d050,_0x570f07;return db['SmsAccount']['find']({'where':{'id':_0x17ed6b[_0xfb27('0x55')]['id']}})['then'](handleEntityNotFound(_0x5af54b,null))['then'](function(_0x35ecf3){if(_0x35ecf3){_0x570f07=_0x35ecf3;logger[_0xfb27('0x21')](_0xfb27('0xae'),_0xfb27('0x2a'),'received\x20delivery\x20report\x20from',_0x35ecf3['type'],util[_0xfb27('0xc7')](_0x17ed6b[_0xfb27('0x3f')],{'showHidden':![],'depth':null}));switch(_0x35ecf3[_0xfb27('0x4d')]){case'csc':if(_0x17ed6b[_0xfb27('0x3f')][_0xfb27('0xd7')]&&_0x17ed6b[_0xfb27('0x3f')][_0xfb27('0xd8')]){_0x63d050=_0x17ed6b[_0xfb27('0x3f')]['state'];return db[_0xfb27('0xa4')][_0xfb27('0x58')]({'where':{'messageId':_0x17ed6b[_0xfb27('0x3f')][_0xfb27('0xd7')]}});}break;}}})['then'](handleEntityNotFound(_0x5af54b,null))[_0xfb27('0x1f')](function(_0x2908c0){if(_0x2908c0){_0x112cef=_0x2908c0;switch(_0x570f07['type']){case _0xfb27('0xd9'):if(_0x63d050==='2'||_0x63d050==='6'){return _0x112cef[_0xfb27('0x34')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s',_0xfb27('0x2a'),_0xfb27('0xd9'),util['inspect'](_0x17ed6b[_0xfb27('0x3f')],{'showHidden':![],'depth':null}));};break;}return _0x112cef;}})[_0xfb27('0x1f')](respondWithResult(_0x5af54b,null))['catch'](handleError(_0x5af54b,null));};exports[_0xfb27('0xda')]=function(_0x4acf09,_0x91a805,_0x4475ef){return db[_0xfb27('0x50')][_0xfb27('0x58')]({'where':{'id':_0x4acf09[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x91a805,null))[_0xfb27('0x1f')](function(_0x572dad){if(_0x572dad){return _0x572dad[_0xfb27('0xda')](_0x4acf09[_0xfb27('0x5a')][_0xfb27('0x6d')],_[_0xfb27('0x9b')](_0x4acf09['body'],[_0xfb27('0x6d'),'id'])||{})[_0xfb27('0x9f')](function(_0xf124c6){for(var _0x38792a=0x0;_0x38792a<_0x4acf09[_0xfb27('0x5a')][_0xfb27('0x6d')][_0xfb27('0x45')];_0x38792a+=0x1){socket[_0xfb27('0xdb')]('userSmsAccount:save',{'UserId':Number(_0x4acf09[_0xfb27('0x5a')]['ids'][_0x38792a]),'SmsAccountId':Number(_0x4acf09[_0xfb27('0x55')]['id'])});}return _0xf124c6;});}})[_0xfb27('0x1f')](respondWithResult(_0x91a805,null))['catch'](handleError(_0x91a805,null));};exports[_0xfb27('0xdc')]=function(_0x5d44fe,_0x2cd953,_0x3e59c2){return db['SmsAccount'][_0xfb27('0x58')]({'where':{'id':_0x5d44fe[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x2cd953,null))['then'](function(_0x25bf93){if(_0x25bf93){return _0x25bf93[_0xfb27('0xdc')](_0x5d44fe['query'][_0xfb27('0x6d')])[_0xfb27('0x1f')](function(){if(_[_0xfb27('0xdd')](_0x5d44fe[_0xfb27('0x3f')][_0xfb27('0x6d')])){for(var _0xe0a773=0x0;_0xe0a773<_0x5d44fe['query'][_0xfb27('0x6d')][_0xfb27('0x45')];_0xe0a773+=0x1){socket['emit']('userSmsAccount:remove',{'UserId':Number(_0x5d44fe['query']['ids'][_0xe0a773]),'SmsAccountId':Number(_0x5d44fe[_0xfb27('0x55')]['id'])});}}else{socket['emit'](_0xfb27('0xde'),{'UserId':Number(_0x5d44fe['query'][_0xfb27('0x6d')]),'SmsAccountId':Number(_0x5d44fe['params']['id'])});}});}})['then'](respondWithStatusCode(_0x2cd953,null))[_0xfb27('0x28')](handleError(_0x2cd953,null));};exports[_0xfb27('0xdf')]=function(_0x981f1c,_0x1cefc7,_0x1f3781){var _0x509f0d={};var _0x5812b5={};var _0xa2e0df;var _0x114887;return db[_0xfb27('0x50')][_0xfb27('0x63')]({'where':{'id':_0x981f1c[_0xfb27('0x55')]['id']}})[_0xfb27('0x1f')](handleEntityNotFound(_0x1cefc7,null))[_0xfb27('0x1f')](function(_0x139f1e){if(_0x139f1e){_0xa2e0df=_0x139f1e;_0x5812b5[_0xfb27('0x42')]=_[_0xfb27('0x3e')](db[_0xfb27('0xa7')]['rawAttributes']);_0x5812b5[_0xfb27('0x3f')]=_[_0xfb27('0x3e')](_0x981f1c['query']);_0x5812b5[_0xfb27('0x40')]=_[_0xfb27('0x41')](_0x5812b5[_0xfb27('0x42')],_0x5812b5[_0xfb27('0x3f')]);_0x509f0d[_0xfb27('0x43')]=_['intersection'](_0x5812b5[_0xfb27('0x42')],qs[_0xfb27('0x44')](_0x981f1c[_0xfb27('0x3f')][_0xfb27('0x44')]));_0x509f0d[_0xfb27('0x43')]=_0x509f0d[_0xfb27('0x43')][_0xfb27('0x45')]?_0x509f0d[_0xfb27('0x43')]:_0x5812b5[_0xfb27('0x42')];_0x509f0d[_0xfb27('0x47')]=qs[_0xfb27('0x48')](_0x981f1c[_0xfb27('0x3f')]['sort']);_0x509f0d['where']=qs['filters'](_[_0xfb27('0x49')](_0x981f1c['query'],_0x5812b5[_0xfb27('0x40')]));if(_0x981f1c['query'][_0xfb27('0x4a')]){_0x509f0d[_0xfb27('0x4b')]=_[_0xfb27('0x4c')](_0x509f0d[_0xfb27('0x4b')],{'$or':_[_0xfb27('0x67')](_0x509f0d[_0xfb27('0x43')],function(_0x18cf01){var _0x3a7efc={};_0x3a7efc[_0x18cf01]={'$like':'%'+_0x981f1c[_0xfb27('0x3f')]['filter']+'%'};return _0x3a7efc;})});}_0x509f0d=_['merge']({},_0x509f0d,_0x981f1c[_0xfb27('0x4f')]);return _0xa2e0df[_0xfb27('0xdf')](_0x509f0d);}})[_0xfb27('0x1f')](function(_0x35f6fd){if(_0x35f6fd){_0x114887=_0x35f6fd[_0xfb27('0x45')];if(!_0x981f1c[_0xfb27('0x3f')][_0xfb27('0x46')]('nolimit')){_0x509f0d[_0xfb27('0x2f')]=qs[_0xfb27('0x2f')](_0x981f1c['query'][_0xfb27('0x2f')]);_0x509f0d[_0xfb27('0x2d')]=qs[_0xfb27('0x2d')](_0x981f1c[_0xfb27('0x3f')][_0xfb27('0x2d')]);}return _0xa2e0df[_0xfb27('0xdf')](_0x509f0d);}})[_0xfb27('0x1f')](function(_0x46f614){if(_0x46f614){return _0x46f614?{'count':_0x114887,'rows':_0x46f614}:null;}})['then'](respondWithResult(_0x1cefc7,null))[_0xfb27('0x28')](handleError(_0x1cefc7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5bc3=['update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','SmsAccount','setMaxListeners','save'];(function(_0x332465,_0x5cba5e){var _0x348b7d=function(_0x4f5b4d){while(--_0x4f5b4d){_0x332465['push'](_0x332465['shift']());}};_0x348b7d(++_0x5cba5e);}(_0x5bc3,0x1b3));var _0x35bc=function(_0x442ab3,_0x2ff685){_0x442ab3=_0x442ab3-0x0;var _0x27a7d4=_0x5bc3[_0x442ab3];return _0x27a7d4;};'use strict';var EventEmitter=require(_0x35bc('0x0'));var SmsAccount=require(_0x35bc('0x1'))['db'][_0x35bc('0x2')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0x35bc('0x3')](0x0);var events={'afterCreate':_0x35bc('0x4'),'afterUpdate':_0x35bc('0x5'),'afterDestroy':_0x35bc('0x6')};function emitEvent(_0x2c5c5c){return function(_0x1f5050,_0x2c721c,_0x3fc138){SmsAccountEvents['emit'](_0x2c5c5c+':'+_0x1f5050['id'],_0x1f5050);SmsAccountEvents[_0x35bc('0x7')](_0x2c5c5c,_0x1f5050);_0x3fc138(null);};}for(var e in events){if(events[_0x35bc('0x8')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0x35bc('0x9')]=SmsAccountEvents;
\ No newline at end of file
+var _0x377c=['../../mysqldb','setMaxListeners','update','remove','emit','hasOwnProperty','exports'];(function(_0x43463e,_0x270579){var _0x1ae452=function(_0x47fb70){while(--_0x47fb70){_0x43463e['push'](_0x43463e['shift']());}};_0x1ae452(++_0x270579);}(_0x377c,0x10a));var _0xc377=function(_0x12b002,_0x43b9a7){_0x12b002=_0x12b002-0x0;var _0x4acf7d=_0x377c[_0x12b002];return _0x4acf7d;};'use strict';var EventEmitter=require('events');var SmsAccount=require(_0xc377('0x0'))['db']['SmsAccount'];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0xc377('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0xc377('0x2'),'afterDestroy':_0xc377('0x3')};function emitEvent(_0x228bf6){return function(_0x592e75,_0x5c3f25,_0x481ff6){SmsAccountEvents[_0xc377('0x4')](_0x228bf6+':'+_0x592e75['id'],_0x592e75);SmsAccountEvents[_0xc377('0x4')](_0x228bf6,_0x592e75);_0x481ff6(null);};}for(var e in events){if(events[_0xc377('0x5')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0xc377('0x6')]=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e2e=['bluebird','request-promise','path','rimraf','../../config/environment','./smsAccount.attributes','define','SmsAccount','util','../../config/logger','api'];(function(_0x3bd2b8,_0xe85b0d){var _0x1641db=function(_0x582176){while(--_0x582176){_0x3bd2b8['push'](_0x3bd2b8['shift']());}};_0x1641db(++_0xe85b0d);}(_0x1e2e,0x110));var _0xe1e2=function(_0x506172,_0xbc3a3){_0x506172=_0x506172-0x0;var _0x2723c0=_0x1e2e[_0x506172];return _0x2723c0;};'use strict';var _=require('lodash');var util=require(_0xe1e2('0x0'));var logger=require(_0xe1e2('0x1'))(_0xe1e2('0x2'));var moment=require('moment');var BPromise=require(_0xe1e2('0x3'));var rp=require(_0xe1e2('0x4'));var fs=require('fs');var path=require(_0xe1e2('0x5'));var rimraf=require(_0xe1e2('0x6'));var config=require(_0xe1e2('0x7'));var attributes=require(_0xe1e2('0x8'));module['exports']=function(_0x569843,_0x27395c){return _0x569843[_0xe1e2('0x9')](_0xe1e2('0xa'),attributes,{'tableName':'sms_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x682d=['sms_accounts','lodash','util','../../config/logger','bluebird','path','rimraf','./smsAccount.attributes'];(function(_0x1151fa,_0x2784a7){var _0x49da2b=function(_0x2d33ca){while(--_0x2d33ca){_0x1151fa['push'](_0x1151fa['shift']());}};_0x49da2b(++_0x2784a7);}(_0x682d,0x141));var _0xd682=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x682d[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xd682('0x0'));var util=require(_0xd682('0x1'));var logger=require(_0xd682('0x2'))('api');var moment=require('moment');var BPromise=require(_0xd682('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd682('0x4'));var rimraf=require(_0xd682('0x5'));var config=require('../../config/environment');var attributes=require(_0xd682('0x6'));module['exports']=function(_0x8ad1f3,_0x5f54ea){return _0x8ad1f3['define']('SmsAccount',attributes,{'tableName':_0xd682('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb50=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','SmsAccount','find','options','raw','where','attributes','map','include','model','ShowSmsAccount','util'];(function(_0x4392d3,_0x8b391e){var _0x3ffa89=function(_0x10bfb9){while(--_0x10bfb9){_0x4392d3['push'](_0x4392d3['shift']());}};_0x3ffa89(++_0x8b391e);}(_0xcb50,0x167));var _0x0cb5=function(_0x47b15f,_0x103e93){_0x47b15f=_0x47b15f-0x0;var _0x55bf25=_0xcb50[_0x47b15f];return _0x55bf25;};'use strict';var _=require('lodash');var util=require(_0x0cb5('0x0'));var moment=require(_0x0cb5('0x1'));var BPromise=require(_0x0cb5('0x2'));var rs=require(_0x0cb5('0x3'));var fs=require('fs');var Redis=require(_0x0cb5('0x4'));var db=require(_0x0cb5('0x5'))['db'];var utils=require(_0x0cb5('0x6'));var logger=require(_0x0cb5('0x7'))(_0x0cb5('0x8'));var config=require(_0x0cb5('0x9'));var jayson=require(_0x0cb5('0xa'));var client=jayson[_0x0cb5('0xb')][_0x0cb5('0xc')]({'port':0x232a});config[_0x0cb5('0xd')]=_[_0x0cb5('0xe')](config[_0x0cb5('0xd')],{'host':_0x0cb5('0xf'),'port':0x18eb});var socket=require(_0x0cb5('0x10'))(new Redis(config[_0x0cb5('0xd')]));require('./smsAccount.socket')[_0x0cb5('0x11')](socket);function respondWithRpcPromise(_0x53ad91,_0x455e2b,_0x22f279){return new BPromise(function(_0x1e3a49,_0x4b1030){return client[_0x0cb5('0x12')](_0x53ad91,_0x22f279)['then'](function(_0x506f60){logger[_0x0cb5('0x13')](_0x0cb5('0x14'),_0x455e2b,_0x0cb5('0x15'));logger[_0x0cb5('0x16')](_0x0cb5('0x17'),_0x455e2b,_0x0cb5('0x15'),JSON[_0x0cb5('0x18')](_0x506f60));if(_0x506f60[_0x0cb5('0x19')]){if(_0x506f60[_0x0cb5('0x19')][_0x0cb5('0x1a')]===0x1f4){logger['error'](_0x0cb5('0x14'),_0x455e2b,_0x506f60[_0x0cb5('0x19')][_0x0cb5('0x1b')]);return _0x4b1030(_0x506f60['error'][_0x0cb5('0x1b')]);}logger[_0x0cb5('0x19')](_0x0cb5('0x14'),_0x455e2b,_0x506f60[_0x0cb5('0x19')]['message']);return _0x1e3a49(_0x506f60[_0x0cb5('0x19')][_0x0cb5('0x1b')]);}else{logger[_0x0cb5('0x13')](_0x0cb5('0x14'),_0x455e2b,_0x0cb5('0x15'));_0x1e3a49(_0x506f60[_0x0cb5('0x1c')]['message']);}})[_0x0cb5('0x1d')](function(_0x26d1a4){logger[_0x0cb5('0x19')](_0x0cb5('0x14'),_0x455e2b,_0x26d1a4);_0x4b1030(_0x26d1a4);});});}exports['ShowSmsAccount']=function(_0x5c02cb){var _0x45ae76=this;return new Promise(function(_0x26c1e2,_0x5cf262){return db[_0x0cb5('0x1e')][_0x0cb5('0x1f')]({'raw':_0x5c02cb[_0x0cb5('0x20')]?_0x5c02cb[_0x0cb5('0x20')][_0x0cb5('0x21')]===undefined?!![]:![]:!![],'where':_0x5c02cb[_0x0cb5('0x20')]?_0x5c02cb[_0x0cb5('0x20')][_0x0cb5('0x22')]||null:null,'attributes':_0x5c02cb[_0x0cb5('0x20')]?_0x5c02cb['options'][_0x0cb5('0x23')]||null:null,'include':_0x5c02cb[_0x0cb5('0x20')]?_0x5c02cb['options']['include']?_[_0x0cb5('0x24')](_0x5c02cb[_0x0cb5('0x20')][_0x0cb5('0x25')],function(_0x38531c){return{'model':db[_0x38531c[_0x0cb5('0x26')]],'as':_0x38531c['as'],'attributes':_0x38531c[_0x0cb5('0x23')],'include':_0x38531c[_0x0cb5('0x25')]?_[_0x0cb5('0x24')](_0x38531c['include'],function(_0x570d96){return{'model':db[_0x570d96[_0x0cb5('0x26')]],'as':_0x570d96['as'],'attributes':_0x570d96[_0x0cb5('0x23')],'include':_0x570d96[_0x0cb5('0x25')]?_['map'](_0x570d96['include'],function(_0x2a247f){return{'model':db[_0x2a247f[_0x0cb5('0x26')]],'as':_0x2a247f['as'],'attributes':_0x2a247f[_0x0cb5('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3a6123){logger[_0x0cb5('0x13')]('ShowSmsAccount',_0x5c02cb);logger[_0x0cb5('0x16')](_0x0cb5('0x27'),_0x5c02cb,JSON['stringify'](_0x3a6123));_0x26c1e2(_0x3a6123);})[_0x0cb5('0x1d')](function(_0x10a461){logger[_0x0cb5('0x19')](_0x0cb5('0x27'),_0x10a461[_0x0cb5('0x1b')],_0x5c02cb);_0x5cf262(_0x45ae76[_0x0cb5('0x19')](0x1f4,_0x10a461[_0x0cb5('0x1b')]));});});};
\ No newline at end of file
+var _0x51f2=['bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','socket.io-emitter','./smsAccount.socket','register','request','then','SmsAccount,\x20%s,\x20%s','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','ShowSmsAccount','find','options','raw','where','attributes','include','map','model','debug','lodash','moment'];(function(_0x2ec020,_0xfa2e53){var _0x346823=function(_0x42bb2a){while(--_0x42bb2a){_0x2ec020['push'](_0x2ec020['shift']());}};_0x346823(++_0xfa2e53);}(_0x51f2,0xbc));var _0x251f=function(_0x3e91a5,_0x594bfb){_0x3e91a5=_0x3e91a5-0x0;var _0x1548cf=_0x51f2[_0x3e91a5];return _0x1548cf;};'use strict';var _=require(_0x251f('0x0'));var util=require('util');var moment=require(_0x251f('0x1'));var BPromise=require(_0x251f('0x2'));var rs=require(_0x251f('0x3'));var fs=require('fs');var Redis=require(_0x251f('0x4'));var db=require(_0x251f('0x5'))['db'];var utils=require(_0x251f('0x6'));var logger=require(_0x251f('0x7'))(_0x251f('0x8'));var config=require(_0x251f('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x251f('0xa')][_0x251f('0xb')]({'port':0x232a});config[_0x251f('0xc')]=_['defaults'](config[_0x251f('0xc')],{'host':_0x251f('0xd'),'port':0x18eb});var socket=require(_0x251f('0xe'))(new Redis(config[_0x251f('0xc')]));require(_0x251f('0xf'))[_0x251f('0x10')](socket);function respondWithRpcPromise(_0x1f36e2,_0xad5a00,_0x382341){return new BPromise(function(_0x2ad904,_0x260848){return client[_0x251f('0x11')](_0x1f36e2,_0x382341)[_0x251f('0x12')](function(_0x455cd5){logger['info'](_0x251f('0x13'),_0xad5a00,'request\x20sent');logger['debug'](_0x251f('0x14'),_0xad5a00,'request\x20sent',JSON[_0x251f('0x15')](_0x455cd5));if(_0x455cd5[_0x251f('0x16')]){if(_0x455cd5[_0x251f('0x16')][_0x251f('0x17')]===0x1f4){logger[_0x251f('0x16')]('SmsAccount,\x20%s,\x20%s',_0xad5a00,_0x455cd5[_0x251f('0x16')][_0x251f('0x18')]);return _0x260848(_0x455cd5[_0x251f('0x16')][_0x251f('0x18')]);}logger[_0x251f('0x16')](_0x251f('0x13'),_0xad5a00,_0x455cd5[_0x251f('0x16')][_0x251f('0x18')]);return _0x2ad904(_0x455cd5[_0x251f('0x16')][_0x251f('0x18')]);}else{logger[_0x251f('0x19')](_0x251f('0x13'),_0xad5a00,'request\x20sent');_0x2ad904(_0x455cd5[_0x251f('0x1a')][_0x251f('0x18')]);}})[_0x251f('0x1b')](function(_0x4a8f41){logger['error'](_0x251f('0x13'),_0xad5a00,_0x4a8f41);_0x260848(_0x4a8f41);});});}exports[_0x251f('0x1c')]=function(_0x4f5906){var _0x122f3b=this;return new Promise(function(_0x2847de,_0x19de65){return db['SmsAccount'][_0x251f('0x1d')]({'raw':_0x4f5906[_0x251f('0x1e')]?_0x4f5906[_0x251f('0x1e')][_0x251f('0x1f')]===undefined?!![]:![]:!![],'where':_0x4f5906[_0x251f('0x1e')]?_0x4f5906[_0x251f('0x1e')][_0x251f('0x20')]||null:null,'attributes':_0x4f5906[_0x251f('0x1e')]?_0x4f5906['options'][_0x251f('0x21')]||null:null,'include':_0x4f5906['options']?_0x4f5906['options'][_0x251f('0x22')]?_[_0x251f('0x23')](_0x4f5906[_0x251f('0x1e')][_0x251f('0x22')],function(_0xe4d58f){return{'model':db[_0xe4d58f['model']],'as':_0xe4d58f['as'],'attributes':_0xe4d58f['attributes'],'include':_0xe4d58f[_0x251f('0x22')]?_[_0x251f('0x23')](_0xe4d58f['include'],function(_0x1f682d){return{'model':db[_0x1f682d[_0x251f('0x24')]],'as':_0x1f682d['as'],'attributes':_0x1f682d[_0x251f('0x21')],'include':_0x1f682d[_0x251f('0x22')]?_[_0x251f('0x23')](_0x1f682d[_0x251f('0x22')],function(_0x593802){return{'model':db[_0x593802[_0x251f('0x24')]],'as':_0x593802['as'],'attributes':_0x593802[_0x251f('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1ce875){logger[_0x251f('0x19')](_0x251f('0x1c'),_0x4f5906);logger[_0x251f('0x25')]('ShowSmsAccount',_0x4f5906,JSON['stringify'](_0x1ce875));_0x2847de(_0x1ce875);})[_0x251f('0x1b')](function(_0x564f77){logger[_0x251f('0x16')]('ShowSmsAccount',_0x564f77[_0x251f('0x18')],_0x4f5906);_0x19de65(_0x122f3b[_0x251f('0x16')](0x1f4,_0x564f77[_0x251f('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','smsAccount:','./smsAccount.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(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0xa9e0[_0x387777];return _0x3f84c0;};'use strict';var SmsAccountEvents=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(){SmsAccountEvents[_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);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9df060,_0x253d33){_0x9df060=_0x9df060-0x0;var _0x338dfe=_0xa9e0[_0x9df060];return _0x338dfe;};'use strict';var SmsAccountEvents=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(){SmsAccountEvents[_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);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['Router','fs-extra','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','multer','path','connect-timeout','express'];(function(_0x55182a,_0x2abc93){var _0x58a6fb=function(_0x337ba5){while(--_0x337ba5){_0x55182a['push'](_0x55182a['shift']());}};_0x58a6fb(++_0x2abc93);}(_0x7217,0x19e));var _0x7721=function(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0x7217[_0x9aada2];return _0x196dff;};'use strict';var multer=require(_0x7721('0x0'));var util=require('util');var path=require(_0x7721('0x1'));var timeout=require(_0x7721('0x2'));var express=require(_0x7721('0x3'));var router=express[_0x7721('0x4')]();var fs_extra=require(_0x7721('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7721('0x6'));var controller=require(_0x7721('0x7'));router[_0x7721('0x8')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xa')]);router[_0x7721('0x8')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0xc')]);router[_0x7721('0xd')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0xf')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller['update']);router[_0x7721('0x10')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0x11')]);module[_0x7721('0x12')]=router;
\ No newline at end of file
+var _0x3e74=['path','connect-timeout','express','../../components/auth/service','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','/:id','show','post','put','update','delete','exports','multer'];(function(_0x12363c,_0x464c7b){var _0x2ab2c2=function(_0x40e03f){while(--_0x40e03f){_0x12363c['push'](_0x12363c['shift']());}};_0x2ab2c2(++_0x464c7b);}(_0x3e74,0x175));var _0x43e7=function(_0x1937eb,_0x1a0b44){_0x1937eb=_0x1937eb-0x0;var _0x4c4f4b=_0x3e74[_0x1937eb];return _0x4c4f4b;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),auth[_0x43e7('0x8')](),controller[_0x43e7('0xb')]);router[_0x43e7('0xc')]('/',auth[_0x43e7('0x8')](),controller['create']);router[_0x43e7('0xd')]('/:id',auth['isAuthenticated'](),controller[_0x43e7('0xe')]);router[_0x43e7('0xf')]('/:id',auth[_0x43e7('0x8')](),controller['destroy']);module[_0x43e7('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2ee=['sequelize','exports','INTEGER','STRING'];(function(_0x3d2e4b,_0x1f6653){var _0x509e78=function(_0x307037){while(--_0x307037){_0x3d2e4b['push'](_0x3d2e4b['shift']());}};_0x509e78(++_0x1f6653);}(_0xa2ee,0xbc));var _0xea2e=function(_0x475b7d,_0x3e1f95){_0x475b7d=_0x475b7d-0x0;var _0x2ad527=_0xa2ee[_0x475b7d];return _0x2ad527;};'use strict';var Sequelize=require(_0xea2e('0x0'));module[_0xea2e('0x1')]={'priority':{'type':Sequelize[_0xea2e('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xea2e('0x3')],'allowNull':![],'defaultValue':'noop'},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0xea2e('0x3')]},'interval':{'type':Sequelize[_0xea2e('0x3')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0x7bed=['STRING','sequelize','INTEGER','noop'];(function(_0x138293,_0x197e7f){var _0x34c4a2=function(_0x20192b){while(--_0x20192b){_0x138293['push'](_0x138293['shift']());}};_0x34c4a2(++_0x197e7f);}(_0x7bed,0xad));var _0xd7be=function(_0x2c341b,_0x4e3cba){_0x2c341b=_0x2c341b-0x0;var _0x39b548=_0x7bed[_0x2c341b];return _0x39b548;};'use strict';var Sequelize=require(_0xd7be('0x0'));module['exports']={'priority':{'type':Sequelize[_0xd7be('0x1')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xd7be('0x2')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0xd7be('0x3')]},'interval':{'type':Sequelize[_0xd7be('0x3')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4724=['path','sox','to-csv','ejs','fs-extra','crypto','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','then','destroy','sendStatus','error','stack','name','index','map','SmsApplication','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','findAll','catch','show','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util'];(function(_0x58ef77,_0x52605d){var _0x2c7fa4=function(_0x250687){while(--_0x250687){_0x58ef77['push'](_0x58ef77['shift']());}};_0x2c7fa4(++_0x52605d);}(_0x4724,0xd2));var _0x4472=function(_0x63c794,_0x14f52c){_0x63c794=_0x63c794-0x0;var _0x16f319=_0x4724[_0x63c794];return _0x16f319;};'use strict';var emlformat=require(_0x4472('0x0'));var rimraf=require(_0x4472('0x1'));var zipdir=require(_0x4472('0x2'));var jsonpatch=require(_0x4472('0x3'));var rp=require(_0x4472('0x4'));var moment=require(_0x4472('0x5'));var BPromise=require(_0x4472('0x6'));var Mustache=require(_0x4472('0x7'));var util=require(_0x4472('0x8'));var path=require(_0x4472('0x9'));var sox=require(_0x4472('0xa'));var csv=require(_0x4472('0xb'));var ejs=require(_0x4472('0xc'));var fs=require('fs');var fs_extra=require(_0x4472('0xd'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x4472('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x4472('0xf'));var toCsv=require(_0x4472('0xb'));var querystring=require('querystring');var Papa=require(_0x4472('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x4472('0x11'));var as=require(_0x4472('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4472('0x13'))(_0x4472('0x14'));var utils=require(_0x4472('0x15'));var config=require(_0x4472('0x16'));var licenseUtil=require(_0x4472('0x17'));var db=require(_0x4472('0x18'))['db'];function respondWithStatusCode(_0x8d5c9f,_0x5b2075){_0x5b2075=_0x5b2075||0xcc;return function(_0x3c5454){if(_0x3c5454){return _0x8d5c9f['sendStatus'](_0x5b2075);}return _0x8d5c9f[_0x4472('0x19')](_0x5b2075)[_0x4472('0x1a')]();};}function respondWithResult(_0x51c4a4,_0xab0923){_0xab0923=_0xab0923||0xc8;return function(_0x56b034){if(_0x56b034){return _0x51c4a4[_0x4472('0x19')](_0xab0923)['json'](_0x56b034);}};}function respondWithFilteredResult(_0x5e784f,_0x418411){return function(_0x154e32){if(_0x154e32){var _0x4813f8=typeof _0x418411[_0x4472('0x1b')]===_0x4472('0x1c')&&typeof _0x418411[_0x4472('0x1d')]===_0x4472('0x1c');var _0x4059fd=_0x154e32[_0x4472('0x1e')];var _0x30284c=_0x4813f8?0x0:_0x418411[_0x4472('0x1b')];var _0x489a1f=_0x4813f8?_0x154e32[_0x4472('0x1e')]:_0x418411[_0x4472('0x1b')]+_0x418411[_0x4472('0x1d')];var _0x20c442;if(_0x489a1f>=_0x4059fd){_0x489a1f=_0x4059fd;_0x20c442=0xc8;}else{_0x20c442=0xce;}_0x5e784f[_0x4472('0x19')](_0x20c442);return _0x5e784f[_0x4472('0x1f')](_0x4472('0x20'),_0x30284c+'-'+_0x489a1f+'/'+_0x4059fd)[_0x4472('0x21')](_0x154e32);}return null;};}function patchUpdates(_0x2b41ea){return function(_0x25fd7f){try{jsonpatch['apply'](_0x25fd7f,_0x2b41ea,!![]);}catch(_0x30b07e){return BPromise[_0x4472('0x22')](_0x30b07e);}return _0x25fd7f[_0x4472('0x23')]();};}function saveUpdates(_0x5bc0e6,_0x5b58bf){return function(_0xd52854){if(_0xd52854){return _0xd52854[_0x4472('0x24')](_0x5bc0e6)[_0x4472('0x25')](function(_0x32bd26){return _0x32bd26;});}return null;};}function removeEntity(_0x15c757,_0x160b5d){return function(_0x2d5758){if(_0x2d5758){return _0x2d5758[_0x4472('0x26')]()[_0x4472('0x25')](function(){_0x15c757[_0x4472('0x19')](0xcc)[_0x4472('0x1a')]();});}};}function handleEntityNotFound(_0x289c1e,_0x4130a7){return function(_0x10f053){if(!_0x10f053){_0x289c1e[_0x4472('0x27')](0x194);}return _0x10f053;};}function handleError(_0x5b7b1d,_0xa080b4){_0xa080b4=_0xa080b4||0x1f4;return function(_0xda6e43){logger[_0x4472('0x28')](_0xda6e43[_0x4472('0x29')]);if(_0xda6e43['name']){delete _0xda6e43[_0x4472('0x2a')];}_0x5b7b1d['status'](_0xa080b4)['send'](_0xda6e43);};}exports[_0x4472('0x2b')]=function(_0x41abfc,_0xc0e6a1){var _0x3a16f5={},_0x15e414={},_0x3264d2={'count':0x0,'rows':[]};var _0x4b950d=_[_0x4472('0x2c')](db[_0x4472('0x2d')][_0x4472('0x2e')],function(_0x48d940){return{'name':_0x48d940['fieldName'],'type':_0x48d940[_0x4472('0x2f')][_0x4472('0x30')]};});_0x15e414[_0x4472('0x31')]=_[_0x4472('0x2c')](_0x4b950d,'name');_0x15e414[_0x4472('0x32')]=_[_0x4472('0x33')](_0x41abfc[_0x4472('0x32')]);_0x15e414[_0x4472('0x34')]=_[_0x4472('0x35')](_0x15e414[_0x4472('0x31')],_0x15e414['query']);_0x3a16f5['attributes']=_[_0x4472('0x35')](_0x15e414[_0x4472('0x31')],qs[_0x4472('0x36')](_0x41abfc['query'][_0x4472('0x36')]));_0x3a16f5[_0x4472('0x37')]=_0x3a16f5[_0x4472('0x37')][_0x4472('0x38')]?_0x3a16f5[_0x4472('0x37')]:_0x15e414[_0x4472('0x31')];if(!_0x41abfc[_0x4472('0x32')][_0x4472('0x39')]('nolimit')){_0x3a16f5[_0x4472('0x1d')]=qs[_0x4472('0x1d')](_0x41abfc[_0x4472('0x32')][_0x4472('0x1d')]);_0x3a16f5[_0x4472('0x1b')]=qs['offset'](_0x41abfc['query']['offset']);}_0x3a16f5[_0x4472('0x3a')]=qs['sort'](_0x41abfc['query'][_0x4472('0x3b')]);_0x3a16f5['where']=qs[_0x4472('0x34')](_[_0x4472('0x3c')](_0x41abfc[_0x4472('0x32')],_0x15e414[_0x4472('0x34')]),_0x4b950d);if(_0x41abfc[_0x4472('0x32')][_0x4472('0x3d')]){_0x3a16f5[_0x4472('0x3e')]=_[_0x4472('0x3f')](_0x3a16f5['where'],{'$or':_[_0x4472('0x2c')](_0x4b950d,function(_0x722299){if(_0x722299[_0x4472('0x2f')]!==_0x4472('0x40')){var _0x40417e={};_0x40417e[_0x722299[_0x4472('0x2a')]]={'$like':'%'+_0x41abfc[_0x4472('0x32')][_0x4472('0x3d')]+'%'};return _0x40417e;}})});}_0x3a16f5=_[_0x4472('0x3f')]({},_0x3a16f5,_0x41abfc['options']);var _0x3db4a9={'where':_0x3a16f5['where']};return db['SmsApplication'][_0x4472('0x1e')](_0x3db4a9)['then'](function(_0x2d97c0){_0x3264d2[_0x4472('0x1e')]=_0x2d97c0;if(_0x41abfc['query'][_0x4472('0x41')]){_0x3a16f5['include']=[{'all':!![]}];}return db[_0x4472('0x2d')][_0x4472('0x42')](_0x3a16f5);})['then'](function(_0x1c1ecd){_0x3264d2['rows']=_0x1c1ecd;return _0x3264d2;})[_0x4472('0x25')](respondWithFilteredResult(_0xc0e6a1,_0x3a16f5))[_0x4472('0x43')](handleError(_0xc0e6a1,null));};exports[_0x4472('0x44')]=function(_0x3be992,_0x5e83ae){var _0x2149a0={'raw':!![],'where':{'id':_0x3be992['params']['id']}},_0x596457={};_0x596457[_0x4472('0x31')]=_[_0x4472('0x33')](db['SmsApplication']['rawAttributes']);_0x596457[_0x4472('0x32')]=_[_0x4472('0x33')](_0x3be992['query']);_0x596457['filters']=_[_0x4472('0x35')](_0x596457[_0x4472('0x31')],_0x596457[_0x4472('0x32')]);_0x2149a0[_0x4472('0x37')]=_[_0x4472('0x35')](_0x596457[_0x4472('0x31')],qs['fields'](_0x3be992[_0x4472('0x32')][_0x4472('0x36')]));_0x2149a0[_0x4472('0x37')]=_0x2149a0['attributes'][_0x4472('0x38')]?_0x2149a0[_0x4472('0x37')]:_0x596457[_0x4472('0x31')];if(_0x3be992['query'][_0x4472('0x41')]){_0x2149a0['include']=[{'all':!![]}];}_0x2149a0=_['merge']({},_0x2149a0,_0x3be992['options']);return db[_0x4472('0x2d')][_0x4472('0x45')](_0x2149a0)[_0x4472('0x25')](handleEntityNotFound(_0x5e83ae,null))['then'](respondWithResult(_0x5e83ae,null))[_0x4472('0x43')](handleError(_0x5e83ae,null));};exports['create']=function(_0x49b7e7,_0x571cb4){return db['SmsApplication'][_0x4472('0x46')](_0x49b7e7[_0x4472('0x47')],{})['then'](respondWithResult(_0x571cb4,0xc9))[_0x4472('0x43')](handleError(_0x571cb4,null));};exports['update']=function(_0x3498f6,_0x4f3c7f){if(_0x3498f6['body']['id']){delete _0x3498f6[_0x4472('0x47')]['id'];}return db[_0x4472('0x2d')][_0x4472('0x45')]({'where':{'id':_0x3498f6[_0x4472('0x48')]['id']}})[_0x4472('0x25')](handleEntityNotFound(_0x4f3c7f,null))['then'](saveUpdates(_0x3498f6[_0x4472('0x47')],null))[_0x4472('0x25')](respondWithResult(_0x4f3c7f,null))[_0x4472('0x43')](handleError(_0x4f3c7f,null));};exports[_0x4472('0x26')]=function(_0x1e2fc1,_0x4b2752){return db[_0x4472('0x2d')]['find']({'where':{'id':_0x1e2fc1['params']['id']}})['then'](handleEntityNotFound(_0x4b2752,null))[_0x4472('0x25')](removeEntity(_0x4b2752,null))[_0x4472('0x43')](handleError(_0x4b2752,null));};
\ No newline at end of file
+var _0x00f1=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','count','set','Content-Range','apply','reject','save','then','destroy','error','name','send','index','SmsApplication','rawAttributes','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','map','filter','merge','includeAll','include','findAll','rows','catch','show','params','options','create','body','find'];(function(_0x44e6b0,_0x44e42c){var _0x5a734d=function(_0x1fe5c3){while(--_0x1fe5c3){_0x44e6b0['push'](_0x44e6b0['shift']());}};_0x5a734d(++_0x44e42c);}(_0x00f1,0x8c));var _0x100f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x00f1[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x100f('0x0'));var rimraf=require(_0x100f('0x1'));var zipdir=require(_0x100f('0x2'));var jsonpatch=require(_0x100f('0x3'));var rp=require('request-promise');var moment=require(_0x100f('0x4'));var BPromise=require(_0x100f('0x5'));var Mustache=require('mustache');var util=require(_0x100f('0x6'));var path=require(_0x100f('0x7'));var sox=require('sox');var csv=require(_0x100f('0x8'));var ejs=require(_0x100f('0x9'));var fs=require('fs');var fs_extra=require(_0x100f('0xa'));var _=require(_0x100f('0xb'));var squel=require(_0x100f('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x100f('0xd'));var toCsv=require(_0x100f('0x8'));var querystring=require(_0x100f('0xe'));var Papa=require(_0x100f('0xf'));var Redis=require(_0x100f('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x100f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x100f('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x100f('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x100f('0x14'))['db'];function respondWithStatusCode(_0x3a129e,_0x57ff64){_0x57ff64=_0x57ff64||0xcc;return function(_0x10f72b){if(_0x10f72b){return _0x3a129e[_0x100f('0x15')](_0x57ff64);}return _0x3a129e[_0x100f('0x16')](_0x57ff64)[_0x100f('0x17')]();};}function respondWithResult(_0x534acf,_0x2c0042){_0x2c0042=_0x2c0042||0xc8;return function(_0xec04e3){if(_0xec04e3){return _0x534acf[_0x100f('0x16')](_0x2c0042)[_0x100f('0x18')](_0xec04e3);}};}function respondWithFilteredResult(_0x217116,_0x91f093){return function(_0x15ac04){if(_0x15ac04){var _0x545bc3=typeof _0x91f093[_0x100f('0x19')]==='undefined'&&typeof _0x91f093['limit']==='undefined';var _0xc1df41=_0x15ac04[_0x100f('0x1a')];var _0x431e7f=_0x545bc3?0x0:_0x91f093[_0x100f('0x19')];var _0x109256=_0x545bc3?_0x15ac04[_0x100f('0x1a')]:_0x91f093[_0x100f('0x19')]+_0x91f093['limit'];var _0x23bc67;if(_0x109256>=_0xc1df41){_0x109256=_0xc1df41;_0x23bc67=0xc8;}else{_0x23bc67=0xce;}_0x217116[_0x100f('0x16')](_0x23bc67);return _0x217116[_0x100f('0x1b')](_0x100f('0x1c'),_0x431e7f+'-'+_0x109256+'/'+_0xc1df41)[_0x100f('0x18')](_0x15ac04);}return null;};}function patchUpdates(_0x7b3e26){return function(_0x2527b1){try{jsonpatch[_0x100f('0x1d')](_0x2527b1,_0x7b3e26,!![]);}catch(_0x25c3cc){return BPromise[_0x100f('0x1e')](_0x25c3cc);}return _0x2527b1[_0x100f('0x1f')]();};}function saveUpdates(_0x1da7cf,_0x3d6284){return function(_0xd8bf89){if(_0xd8bf89){return _0xd8bf89['update'](_0x1da7cf)[_0x100f('0x20')](function(_0x4e6901){return _0x4e6901;});}return null;};}function removeEntity(_0x1bb33b,_0x156cc0){return function(_0x5d0e6b){if(_0x5d0e6b){return _0x5d0e6b[_0x100f('0x21')]()[_0x100f('0x20')](function(){_0x1bb33b['status'](0xcc)[_0x100f('0x17')]();});}};}function handleEntityNotFound(_0x37fb90,_0x9428d4){return function(_0x30a515){if(!_0x30a515){_0x37fb90[_0x100f('0x15')](0x194);}return _0x30a515;};}function handleError(_0x266ebf,_0x1c47be){_0x1c47be=_0x1c47be||0x1f4;return function(_0x110d21){logger[_0x100f('0x22')](_0x110d21['stack']);if(_0x110d21[_0x100f('0x23')]){delete _0x110d21[_0x100f('0x23')];}_0x266ebf[_0x100f('0x16')](_0x1c47be)[_0x100f('0x24')](_0x110d21);};}exports[_0x100f('0x25')]=function(_0x7040a8,_0x17b1fc){var _0x2dee22={},_0x729340={},_0x275f00={'count':0x0,'rows':[]};var _0x572a88=_['map'](db[_0x100f('0x26')][_0x100f('0x27')],function(_0x5d651c){return{'name':_0x5d651c[_0x100f('0x28')],'type':_0x5d651c[_0x100f('0x29')]['key']};});_0x729340[_0x100f('0x2a')]=_['map'](_0x572a88,_0x100f('0x23'));_0x729340['query']=_[_0x100f('0x2b')](_0x7040a8[_0x100f('0x2c')]);_0x729340[_0x100f('0x2d')]=_[_0x100f('0x2e')](_0x729340[_0x100f('0x2a')],_0x729340[_0x100f('0x2c')]);_0x2dee22[_0x100f('0x2f')]=_[_0x100f('0x2e')](_0x729340[_0x100f('0x2a')],qs[_0x100f('0x30')](_0x7040a8[_0x100f('0x2c')][_0x100f('0x30')]));_0x2dee22[_0x100f('0x2f')]=_0x2dee22[_0x100f('0x2f')][_0x100f('0x31')]?_0x2dee22[_0x100f('0x2f')]:_0x729340['model'];if(!_0x7040a8[_0x100f('0x2c')][_0x100f('0x32')](_0x100f('0x33'))){_0x2dee22[_0x100f('0x34')]=qs[_0x100f('0x34')](_0x7040a8[_0x100f('0x2c')][_0x100f('0x34')]);_0x2dee22[_0x100f('0x19')]=qs[_0x100f('0x19')](_0x7040a8['query'][_0x100f('0x19')]);}_0x2dee22['order']=qs[_0x100f('0x35')](_0x7040a8[_0x100f('0x2c')][_0x100f('0x35')]);_0x2dee22[_0x100f('0x36')]=qs[_0x100f('0x2d')](_[_0x100f('0x37')](_0x7040a8[_0x100f('0x2c')],_0x729340['filters']),_0x572a88);if(_0x7040a8['query']['filter']){_0x2dee22[_0x100f('0x36')]=_['merge'](_0x2dee22[_0x100f('0x36')],{'$or':_[_0x100f('0x38')](_0x572a88,function(_0x46b982){if(_0x46b982[_0x100f('0x29')]!=='VIRTUAL'){var _0x351cec={};_0x351cec[_0x46b982[_0x100f('0x23')]]={'$like':'%'+_0x7040a8[_0x100f('0x2c')][_0x100f('0x39')]+'%'};return _0x351cec;}})});}_0x2dee22=_[_0x100f('0x3a')]({},_0x2dee22,_0x7040a8['options']);var _0x493f3d={'where':_0x2dee22[_0x100f('0x36')]};return db[_0x100f('0x26')][_0x100f('0x1a')](_0x493f3d)[_0x100f('0x20')](function(_0x3dae67){_0x275f00[_0x100f('0x1a')]=_0x3dae67;if(_0x7040a8[_0x100f('0x2c')][_0x100f('0x3b')]){_0x2dee22[_0x100f('0x3c')]=[{'all':!![]}];}return db[_0x100f('0x26')][_0x100f('0x3d')](_0x2dee22);})[_0x100f('0x20')](function(_0x1c13ed){_0x275f00[_0x100f('0x3e')]=_0x1c13ed;return _0x275f00;})[_0x100f('0x20')](respondWithFilteredResult(_0x17b1fc,_0x2dee22))[_0x100f('0x3f')](handleError(_0x17b1fc,null));};exports[_0x100f('0x40')]=function(_0x12d22d,_0x1fb387){var _0x3e48c7={'raw':!![],'where':{'id':_0x12d22d[_0x100f('0x41')]['id']}},_0x169675={};_0x169675[_0x100f('0x2a')]=_[_0x100f('0x2b')](db[_0x100f('0x26')]['rawAttributes']);_0x169675[_0x100f('0x2c')]=_[_0x100f('0x2b')](_0x12d22d[_0x100f('0x2c')]);_0x169675[_0x100f('0x2d')]=_['intersection'](_0x169675['model'],_0x169675['query']);_0x3e48c7['attributes']=_[_0x100f('0x2e')](_0x169675[_0x100f('0x2a')],qs[_0x100f('0x30')](_0x12d22d[_0x100f('0x2c')][_0x100f('0x30')]));_0x3e48c7[_0x100f('0x2f')]=_0x3e48c7['attributes'][_0x100f('0x31')]?_0x3e48c7['attributes']:_0x169675['model'];if(_0x12d22d['query'][_0x100f('0x3b')]){_0x3e48c7['include']=[{'all':!![]}];}_0x3e48c7=_[_0x100f('0x3a')]({},_0x3e48c7,_0x12d22d[_0x100f('0x42')]);return db[_0x100f('0x26')]['find'](_0x3e48c7)[_0x100f('0x20')](handleEntityNotFound(_0x1fb387,null))['then'](respondWithResult(_0x1fb387,null))[_0x100f('0x3f')](handleError(_0x1fb387,null));};exports[_0x100f('0x43')]=function(_0xd45b64,_0x47a2b3){return db[_0x100f('0x26')][_0x100f('0x43')](_0xd45b64[_0x100f('0x44')],{})[_0x100f('0x20')](respondWithResult(_0x47a2b3,0xc9))[_0x100f('0x3f')](handleError(_0x47a2b3,null));};exports['update']=function(_0x233e9c,_0x13a700){if(_0x233e9c['body']['id']){delete _0x233e9c[_0x100f('0x44')]['id'];}return db[_0x100f('0x26')][_0x100f('0x45')]({'where':{'id':_0x233e9c[_0x100f('0x41')]['id']}})['then'](handleEntityNotFound(_0x13a700,null))[_0x100f('0x20')](saveUpdates(_0x233e9c[_0x100f('0x44')],null))[_0x100f('0x20')](respondWithResult(_0x13a700,null))[_0x100f('0x3f')](handleError(_0x13a700,null));};exports[_0x100f('0x21')]=function(_0x62b722,_0x5ef091){return db[_0x100f('0x26')][_0x100f('0x45')]({'where':{'id':_0x62b722[_0x100f('0x41')]['id']}})[_0x100f('0x20')](handleEntityNotFound(_0x5ef091,null))[_0x100f('0x20')](removeEntity(_0x5ef091,null))[_0x100f('0x3f')](handleError(_0x5ef091,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2838=['util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./smsApplication.attributes','exports','sms_applications','utf8mb4_unicode_ci','lodash'];(function(_0x54c76b,_0x27b859){var _0xe1a284=function(_0x11486d){while(--_0x11486d){_0x54c76b['push'](_0x54c76b['shift']());}};_0xe1a284(++_0x27b859);}(_0x2838,0x1af));var _0x8283=function(_0xb39122,_0x1c4f04){_0xb39122=_0xb39122-0x0;var _0x4126c7=_0x2838[_0xb39122];return _0x4126c7;};'use strict';var _=require(_0x8283('0x0'));var util=require(_0x8283('0x1'));var logger=require(_0x8283('0x2'))(_0x8283('0x3'));var moment=require('moment');var BPromise=require(_0x8283('0x4'));var rp=require(_0x8283('0x5'));var fs=require('fs');var path=require(_0x8283('0x6'));var rimraf=require('rimraf');var config=require(_0x8283('0x7'));var attributes=require(_0x8283('0x8'));module[_0x8283('0x9')]=function(_0x48514b,_0x3dc8f0){return _0x48514b['define']('SmsApplication',attributes,{'tableName':_0x8283('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x8283('0xb')});};
\ No newline at end of file
+var _0x993c=['utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./smsApplication.attributes','exports','define','SmsApplication','sms_applications'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x993c,0x97));var _0xc993=function(_0x1826b6,_0x2a0cf0){_0x1826b6=_0x1826b6-0x0;var _0x578c34=_0x993c[_0x1826b6];return _0x578c34;};'use strict';var _=require(_0xc993('0x0'));var util=require(_0xc993('0x1'));var logger=require(_0xc993('0x2'))(_0xc993('0x3'));var moment=require('moment');var BPromise=require(_0xc993('0x4'));var rp=require(_0xc993('0x5'));var fs=require('fs');var path=require(_0xc993('0x6'));var rimraf=require(_0xc993('0x7'));var config=require(_0xc993('0x8'));var attributes=require(_0xc993('0x9'));module[_0xc993('0xa')]=function(_0x6d5eb,_0x3ef79b){return _0x6d5eb[_0xc993('0xb')](_0xc993('0xc'),attributes,{'tableName':_0xc993('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0xc993('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c91=['client','http','request','then','SmsApplication,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise'];(function(_0x1090f8,_0xd83a11){var _0x180524=function(_0x109ab8){while(--_0x109ab8){_0x1090f8['push'](_0x1090f8['shift']());}};_0x180524(++_0xd83a11);}(_0x3c91,0x1af));var _0x13c9=function(_0x5e15be,_0x3a5b2e){_0x5e15be=_0x5e15be-0x0;var _0x48f88c=_0x3c91[_0x5e15be];return _0x48f88c;};'use strict';var _=require(_0x13c9('0x0'));var util=require(_0x13c9('0x1'));var moment=require(_0x13c9('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x13c9('0x3'));var db=require(_0x13c9('0x4'))['db'];var utils=require(_0x13c9('0x5'));var logger=require('../../config/logger')(_0x13c9('0x6'));var config=require(_0x13c9('0x7'));var jayson=require(_0x13c9('0x8'));var client=jayson[_0x13c9('0x9')][_0x13c9('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4c4332,_0x58b610,_0x44243f){return new BPromise(function(_0x196c2a,_0x5fd23){return client[_0x13c9('0xb')](_0x4c4332,_0x44243f)[_0x13c9('0xc')](function(_0x5370dd){logger['info'](_0x13c9('0xd'),_0x58b610,_0x13c9('0xe'));logger['debug']('SmsApplication,\x20%s,\x20%s,\x20%s',_0x58b610,_0x13c9('0xe'),JSON[_0x13c9('0xf')](_0x5370dd));if(_0x5370dd[_0x13c9('0x10')]){if(_0x5370dd[_0x13c9('0x10')][_0x13c9('0x11')]===0x1f4){logger[_0x13c9('0x10')](_0x13c9('0xd'),_0x58b610,_0x5370dd['error'][_0x13c9('0x12')]);return _0x5fd23(_0x5370dd['error']['message']);}logger['error']('SmsApplication,\x20%s,\x20%s',_0x58b610,_0x5370dd['error'][_0x13c9('0x12')]);return _0x196c2a(_0x5370dd[_0x13c9('0x10')]['message']);}else{logger[_0x13c9('0x13')](_0x13c9('0xd'),_0x58b610,_0x13c9('0xe'));_0x196c2a(_0x5370dd[_0x13c9('0x14')][_0x13c9('0x12')]);}})[_0x13c9('0x15')](function(_0x238952){logger['error']('SmsApplication,\x20%s,\x20%s',_0x58b610,_0x238952);_0x5fd23(_0x238952);});});}
\ No newline at end of file
+var _0x6d0c=['../../config/environment','http','request','then','info','SmsApplication,\x20%s,\x20%s','request\x20sent','debug','SmsApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x106245,_0xb86bf6){var _0x4c1289=function(_0x4b38ef){while(--_0x4b38ef){_0x106245['push'](_0x106245['shift']());}};_0x4c1289(++_0xb86bf6);}(_0x6d0c,0x8c));var _0xc6d0=function(_0x318f6e,_0x8a41fb){_0x318f6e=_0x318f6e-0x0;var _0x567aff=_0x6d0c[_0x318f6e];return _0x567aff;};'use strict';var _=require(_0xc6d0('0x0'));var util=require(_0xc6d0('0x1'));var moment=require(_0xc6d0('0x2'));var BPromise=require(_0xc6d0('0x3'));var rs=require(_0xc6d0('0x4'));var fs=require('fs');var Redis=require(_0xc6d0('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xc6d0('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xc6d0('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0xc6d0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x40ba33,_0xf1bb4f,_0x39e8be){return new BPromise(function(_0xbd2213,_0x1cf577){return client[_0xc6d0('0x9')](_0x40ba33,_0x39e8be)[_0xc6d0('0xa')](function(_0x1452b5){logger[_0xc6d0('0xb')](_0xc6d0('0xc'),_0xf1bb4f,_0xc6d0('0xd'));logger[_0xc6d0('0xe')](_0xc6d0('0xf'),_0xf1bb4f,_0xc6d0('0xd'),JSON[_0xc6d0('0x10')](_0x1452b5));if(_0x1452b5[_0xc6d0('0x11')]){if(_0x1452b5[_0xc6d0('0x11')][_0xc6d0('0x12')]===0x1f4){logger['error']('SmsApplication,\x20%s,\x20%s',_0xf1bb4f,_0x1452b5[_0xc6d0('0x11')][_0xc6d0('0x13')]);return _0x1cf577(_0x1452b5['error'][_0xc6d0('0x13')]);}logger[_0xc6d0('0x11')](_0xc6d0('0xc'),_0xf1bb4f,_0x1452b5['error']['message']);return _0xbd2213(_0x1452b5[_0xc6d0('0x11')][_0xc6d0('0x13')]);}else{logger[_0xc6d0('0xb')]('SmsApplication,\x20%s,\x20%s',_0xf1bb4f,_0xc6d0('0xd'));_0xbd2213(_0x1452b5['result'][_0xc6d0('0x13')]);}})[_0xc6d0('0x14')](function(_0x34ea2f){logger[_0xc6d0('0x11')](_0xc6d0('0xc'),_0xf1bb4f,_0x34ea2f);_0x1cf577(_0x34ea2f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe511=['addTags','put','update','smsinteraction:destroy','destroy','delete','exports','multer','util','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','index','describe','show','/:id/messages','isAuthenticated','getMessages','download','post','create','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xe511,0x16f));var _0x1e51=function(_0x41cda5,_0x3d62e8){_0x41cda5=_0x41cda5-0x0;var _0x5890a1=_0xe511[_0x41cda5];return _0x5890a1;};'use strict';var multer=require(_0x1e51('0x0'));var util=require(_0x1e51('0x1'));var path=require('path');var timeout=require(_0x1e51('0x2'));var express=require('express');var router=express[_0x1e51('0x3')]();var fs_extra=require(_0x1e51('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x1e51('0x5'));var config=require(_0x1e51('0x6'));var controller=require(_0x1e51('0x7'));router[_0x1e51('0x8')]('/',auth['isAuthenticated'](),controller[_0x1e51('0x9')]);router[_0x1e51('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x1e51('0xa')]);router[_0x1e51('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x1e51('0xb')]);router[_0x1e51('0x8')](_0x1e51('0xc'),auth[_0x1e51('0xd')](),controller[_0x1e51('0xe')]);router[_0x1e51('0x8')]('/:id/download',auth[_0x1e51('0xd')](),controller[_0x1e51('0xf')]);router[_0x1e51('0x10')]('/',auth[_0x1e51('0xd')](),controller[_0x1e51('0x11')]);router[_0x1e51('0x10')]('/:id/messages',auth[_0x1e51('0xd')](),controller[_0x1e51('0x12')]);router[_0x1e51('0x10')](_0x1e51('0x13'),auth[_0x1e51('0xd')](),interaction[_0x1e51('0x14')](_0x1e51('0x15'),_0x1e51('0x16')),controller[_0x1e51('0x17')]);router[_0x1e51('0x18')]('/:id',auth[_0x1e51('0xd')](),interaction[_0x1e51('0x14')](_0x1e51('0x15'),'smsinteraction:update'),controller[_0x1e51('0x19')]);router['delete']('/:id',auth[_0x1e51('0xd')](),interaction[_0x1e51('0x14')](_0x1e51('0x15'),_0x1e51('0x1a')),controller[_0x1e51('0x1b')]);router[_0x1e51('0x1c')]('/:id/tags',auth[_0x1e51('0xd')](),controller['removeTags']);module[_0x1e51('0x1d')]=router;
\ No newline at end of file
+var _0xb03e=['exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','/describe','describe','/:id','show','/:id/messages','getMessages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags','addTags','smsinteraction:update','update','delete','smsinteraction:destroy','destroy','removeTags'];(function(_0x41a5a0,_0x3bee12){var _0x2190f8=function(_0x3019e1){while(--_0x3019e1){_0x41a5a0['push'](_0x41a5a0['shift']());}};_0x2190f8(++_0x3bee12);}(_0xb03e,0x1eb));var _0xeb03=function(_0x4a233d,_0x27cd07){_0x4a233d=_0x4a233d-0x0;var _0x3371cd=_0xb03e[_0x4a233d];return _0x3371cd;};'use strict';var multer=require('multer');var util=require(_0xeb03('0x0'));var path=require(_0xeb03('0x1'));var timeout=require(_0xeb03('0x2'));var express=require(_0xeb03('0x3'));var router=express[_0xeb03('0x4')]();var fs_extra=require(_0xeb03('0x5'));var auth=require(_0xeb03('0x6'));var interaction=require(_0xeb03('0x7'));var config=require(_0xeb03('0x8'));var controller=require(_0xeb03('0x9'));router[_0xeb03('0xa')]('/',auth[_0xeb03('0xb')](),controller['index']);router[_0xeb03('0xa')](_0xeb03('0xc'),auth[_0xeb03('0xb')](),controller[_0xeb03('0xd')]);router[_0xeb03('0xa')](_0xeb03('0xe'),auth['isAuthenticated'](),controller[_0xeb03('0xf')]);router[_0xeb03('0xa')](_0xeb03('0x10'),auth['isAuthenticated'](),controller[_0xeb03('0x11')]);router['get'](_0xeb03('0x12'),auth[_0xeb03('0xb')](),controller[_0xeb03('0x13')]);router[_0xeb03('0x14')]('/',auth[_0xeb03('0xb')](),controller[_0xeb03('0x15')]);router[_0xeb03('0x14')](_0xeb03('0x10'),auth[_0xeb03('0xb')](),controller[_0xeb03('0x16')]);router[_0xeb03('0x14')](_0xeb03('0x17'),auth['isAuthenticated'](),interaction[_0xeb03('0x18')](_0xeb03('0x19'),_0xeb03('0x1a')),controller[_0xeb03('0x1b')]);router['put'](_0xeb03('0xe'),auth[_0xeb03('0xb')](),interaction[_0xeb03('0x18')]('sms',_0xeb03('0x1c')),controller[_0xeb03('0x1d')]);router[_0xeb03('0x1e')](_0xeb03('0xe'),auth[_0xeb03('0xb')](),interaction[_0xeb03('0x18')](_0xeb03('0x19'),_0xeb03('0x1f')),controller[_0xeb03('0x20')]);router[_0xeb03('0x1e')](_0xeb03('0x17'),auth[_0xeb03('0xb')](),controller[_0xeb03('0x21')]);module[_0xeb03('0x22')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdcf6=['moment','exports','BOOLEAN','DATE','STRING','out'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0xdcf6,0x1b6));var _0x6dcf=function(_0x5dfe9b,_0x318b85){_0x5dfe9b=_0x5dfe9b-0x0;var _0x3bb0f4=_0xdcf6[_0x5dfe9b];return _0x3bb0f4;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x6dcf('0x0'));module[_0x6dcf('0x1')]={'closed':{'type':Sequelize[_0x6dcf('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x6dcf('0x3')]},'disposition':{'type':Sequelize[_0x6dcf('0x4')]},'secondDisposition':{'type':Sequelize[_0x6dcf('0x4')]},'thirdDisposition':{'type':Sequelize[_0x6dcf('0x4')]},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0x6dcf('0x4')]},'read1stAt':{'type':Sequelize[_0x6dcf('0x3')]},'firstMsgDirection':{'type':Sequelize['ENUM']('in',_0x6dcf('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x6dcf('0x3')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xf842=['out','DATE','sequelize','moment','exports','BOOLEAN','STRING','ENUM'];(function(_0x4ce685,_0x1ce061){var _0x5e84c5=function(_0x8f9e2){while(--_0x8f9e2){_0x4ce685['push'](_0x4ce685['shift']());}};_0x5e84c5(++_0x1ce061);}(_0xf842,0x172));var _0x2f84=function(_0x2d34d6,_0x397ff9){_0x2d34d6=_0x2d34d6-0x0;var _0x1d3d12=_0xf842[_0x2d34d6];return _0x1d3d12;};'use strict';var Sequelize=require(_0x2f84('0x0'));var moment=require(_0x2f84('0x1'));module[_0x2f84('0x2')]={'closed':{'type':Sequelize[_0x2f84('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0x2f84('0x4')]},'secondDisposition':{'type':Sequelize[_0x2f84('0x4')]},'thirdDisposition':{'type':Sequelize[_0x2f84('0x4')]},'note':{'type':Sequelize[_0x2f84('0x4')]},'phone':{'type':Sequelize[_0x2f84('0x4')]},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x2f84('0x5')]('in',_0x2f84('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x2f84('0x7')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0x2f84('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x2f84('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a67=['$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','contactName','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','rows','show','params','rawAttributes','includeAll','include','options','find','create','update','describe','SmsMessage','addMessage','ids','omit','getMessages','findOne','SmsInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','Tag','emit','smsInteractionTags:save','removeTags','unix','server','files','join','root','attachments','transcript-%d-%s.zip','User','CmContact','createdAt','direction','secret','Account','Owner','mkdirSync','closed','Messages','out','System','lastName','renderFile','downloadInteraction.ejs','transcript-','.pdf','Sms','download','log','err','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','destroy','then','name','Users','map','fullname','TagIds','Tags','split','push','catch','index','SmsInteraction','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','select','color','from','tools_tags','field','ui.SmsInteractionId','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.SmsAccountId','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','search','parseSearch','sqlOperator','conditions','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','start','union','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','text','body','keys','some','compact','isEmpty','forEach','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','$gte','parse'];(function(_0x507c5b,_0x25b630){var _0x3c7387=function(_0x5ae1b6){while(--_0x5ae1b6){_0x507c5b['push'](_0x507c5b['shift']());}};_0x3c7387(++_0x25b630);}(_0x1a67,0x150));var _0x71a6=function(_0x3b88b4,_0x3cbec4){_0x3b88b4=_0x3b88b4-0x0;var _0x1105c8=_0x1a67[_0x3b88b4];return _0x1105c8;};'use strict';var emlformat=require(_0x71a6('0x0'));var rimraf=require(_0x71a6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x71a6('0x2'));var rp=require(_0x71a6('0x3'));var moment=require(_0x71a6('0x4'));var BPromise=require(_0x71a6('0x5'));var Mustache=require(_0x71a6('0x6'));var util=require(_0x71a6('0x7'));var path=require('path');var sox=require(_0x71a6('0x8'));var csv=require(_0x71a6('0x9'));var ejs=require(_0x71a6('0xa'));var fs=require('fs');var fs_extra=require(_0x71a6('0xb'));var _=require(_0x71a6('0xc'));var squel=require(_0x71a6('0xd'));var crypto=require(_0x71a6('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x71a6('0xf'));var toCsv=require(_0x71a6('0x9'));var querystring=require(_0x71a6('0x10'));var Papa=require(_0x71a6('0x11'));var Redis=require('ioredis');var authService=require(_0x71a6('0x12'));var qs=require(_0x71a6('0x13'));var as=require(_0x71a6('0x14'));var pdf=require(_0x71a6('0x15'));var hardwareService=require(_0x71a6('0x16'));var logger=require(_0x71a6('0x17'))(_0x71a6('0x18'));var utils=require(_0x71a6('0x19'));var config=require(_0x71a6('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x71a6('0x1b'))['db'];config[_0x71a6('0x1c')]=_[_0x71a6('0x1d')](config[_0x71a6('0x1c')],{'host':_0x71a6('0x1e'),'port':0x18eb});var socket=require(_0x71a6('0x1f'))(new Redis(config[_0x71a6('0x1c')]));require('./smsInteraction.socket')['register'](socket);function respondWithStatusCode(_0x42c01b,_0x225d93){_0x225d93=_0x225d93||0xcc;return function(_0x3d1e95){if(_0x3d1e95){return _0x42c01b[_0x71a6('0x20')](_0x225d93);}return _0x42c01b[_0x71a6('0x21')](_0x225d93)[_0x71a6('0x22')]();};}function respondWithResult(_0x1d91d7,_0x2cf00c){_0x2cf00c=_0x2cf00c||0xc8;return function(_0x6af7de){if(_0x6af7de){return _0x1d91d7[_0x71a6('0x21')](_0x2cf00c)[_0x71a6('0x23')](_0x6af7de);}};}function respondWithFilteredResult(_0x24bf22,_0x575b83){return function(_0x2f8052){if(_0x2f8052){var _0x242db8=typeof _0x575b83[_0x71a6('0x24')]==='undefined'&&typeof _0x575b83[_0x71a6('0x25')]==='undefined';var _0x4fd6be=_0x2f8052[_0x71a6('0x26')];var _0x23bc6f=_0x242db8?0x0:_0x575b83[_0x71a6('0x24')];var _0x35670f=_0x242db8?_0x2f8052[_0x71a6('0x26')]:_0x575b83[_0x71a6('0x24')]+_0x575b83[_0x71a6('0x25')];var _0x227081;if(_0x35670f>=_0x4fd6be){_0x35670f=_0x4fd6be;_0x227081=0xc8;}else{_0x227081=0xce;}_0x24bf22[_0x71a6('0x21')](_0x227081);return _0x24bf22[_0x71a6('0x27')](_0x71a6('0x28'),_0x23bc6f+'-'+_0x35670f+'/'+_0x4fd6be)[_0x71a6('0x23')](_0x2f8052);}return null;};}function patchUpdates(_0xbbbfa4){return function(_0x35f7f3){try{jsonpatch[_0x71a6('0x29')](_0x35f7f3,_0xbbbfa4,!![]);}catch(_0xf8fd86){return BPromise[_0x71a6('0x2a')](_0xf8fd86);}return _0x35f7f3['save']();};}function saveUpdates(_0x11c845,_0x307859){return function(_0xa5838){if(_0xa5838){return _0xa5838['update'](_0x11c845)['then'](function(_0x5dff09){return _0x5dff09;});}return null;};}function removeEntity(_0x18cb91,_0x51d6cc){return function(_0x2bdba0){if(_0x2bdba0){return _0x2bdba0[_0x71a6('0x2b')]()[_0x71a6('0x2c')](function(){_0x18cb91[_0x71a6('0x21')](0xcc)[_0x71a6('0x22')]();});}};}function handleEntityNotFound(_0x3939bd,_0x155a52){return function(_0x34e04c){if(!_0x34e04c){_0x3939bd['sendStatus'](0x194);}return _0x34e04c;};}function handleError(_0x346c24,_0x580535){_0x580535=_0x580535||0x1f4;return function(_0x54d737){logger['error'](_0x54d737['stack']);if(_0x54d737[_0x71a6('0x2d')]){delete _0x54d737[_0x71a6('0x2d')];}_0x346c24[_0x71a6('0x21')](_0x580535)['send'](_0x54d737);};}function getInteractionUsers(_0x71c136,_0x429b98){return new BPromise(function(_0x348b8c,_0x237e37){try{if(_0x429b98[_0x71c136['id']]){_0x71c136[_0x71a6('0x2e')]=_[_0x71a6('0x2f')](_0x429b98[_0x71c136['id']],function(_0x50faa0){return{'id':_0x50faa0['id'],'fullname':_0x50faa0[_0x71a6('0x30')]};});}}catch(_0x3b2d2b){_0x237e37(_0x3b2d2b);}_0x348b8c(_0x71c136);});}function getInteractionTags(_0x5a4725,_0x478c53){return new BPromise(function(_0x583710,_0x2fba36){try{if(_0x5a4725[_0x71a6('0x31')]){_0x5a4725[_0x71a6('0x32')]=[];_0x5a4725[_0x71a6('0x31')][_0x71a6('0x33')](',')['forEach'](function(_0x25cbba){_0x5a4725[_0x71a6('0x32')][_0x71a6('0x34')](_0x478c53[_0x25cbba]);});}delete _0x5a4725[_0x71a6('0x31')];}catch(_0x15e3cc){_0x2fba36(_0x15e3cc);}_0x583710(_0x5a4725);});}function updateSmsInteraction(_0x38f3e2,_0x546499,_0x3fdbff){return new BPromise(function(_0x5c7b41,_0x43dc9a){return getInteractionUsers(_0x38f3e2,_0x3fdbff)['then'](function(_0x2b761a){return getInteractionTags(_0x2b761a,_0x546499);})[_0x71a6('0x2c')](function(_0x1ffbd0){_0x5c7b41(_0x1ffbd0);})[_0x71a6('0x35')](function(_0x30ccf0){_0x43dc9a(_0x30ccf0);});});}exports[_0x71a6('0x36')]=function(_0xefd593,_0xbc21bf){var _0x206a7e={},_0xf88023={},_0x10ce2b={'count':0x0,'rows':[]};var _0x41021e=_['map'](db[_0x71a6('0x37')]['rawAttributes'],function(_0x52aa63){return{'name':_0x52aa63['fieldName'],'type':_0x52aa63[_0x71a6('0x38')][_0x71a6('0x39')]};});_0xf88023[_0x71a6('0x3a')]=_[_0x71a6('0x2f')](_0x41021e,_0x71a6('0x2d'));_0xf88023['query']=_['keys'](_0xefd593[_0x71a6('0x3b')]);_0xf88023[_0x71a6('0x3c')]=_[_0x71a6('0x3d')](_0xf88023[_0x71a6('0x3a')],_0xf88023['query']);_0x206a7e[_0x71a6('0x3e')]=_[_0x71a6('0x3d')](_0xf88023[_0x71a6('0x3a')],qs[_0x71a6('0x3f')](_0xefd593['query'][_0x71a6('0x3f')]));_0x206a7e[_0x71a6('0x3e')]=_0x206a7e[_0x71a6('0x3e')][_0x71a6('0x40')]?_0x206a7e[_0x71a6('0x3e')]:_0xf88023['model'];if(!_0xefd593[_0x71a6('0x3b')][_0x71a6('0x41')](_0x71a6('0x42'))){_0x206a7e['limit']=qs[_0x71a6('0x25')](_0xefd593[_0x71a6('0x3b')][_0x71a6('0x25')]);_0x206a7e[_0x71a6('0x24')]=qs[_0x71a6('0x24')](_0xefd593[_0x71a6('0x3b')]['offset']);}_0x206a7e[_0x71a6('0x43')]=qs[_0x71a6('0x44')](_0xefd593[_0x71a6('0x3b')][_0x71a6('0x44')]);_0x206a7e[_0x71a6('0x45')]=qs[_0x71a6('0x3c')](_['pick'](_0xefd593[_0x71a6('0x3b')],_0xf88023[_0x71a6('0x3c')]),_0x41021e);var _0x6bf95f=[];var _0x1a89ba=squel[_0x71a6('0x46')]()['field']('id')['field']('name')['field'](_0x71a6('0x47'))[_0x71a6('0x48')](_0x71a6('0x49'));var _0x5b4369=squel['select']()[_0x71a6('0x4a')]('u.id')['field']('u.fullname')['field'](_0x71a6('0x4b'))[_0x71a6('0x48')]('user_has_sms_interactions','ui')[_0x71a6('0x4c')](_0x71a6('0x4d'),'u',_0x71a6('0x4e'));var _0x2af14e=squel[_0x71a6('0x46')]()[_0x71a6('0x48')]('sms_interactions','i')[_0x71a6('0x4c')](_0x71a6('0x4f'),'c',_0x71a6('0x50'))[_0x71a6('0x4c')]('users','o',_0x71a6('0x51'))[_0x71a6('0x4c')]('sms_accounts','a',_0x71a6('0x52'))[_0x71a6('0x4c')]('sms_messages','me',_0x71a6('0x53'))[_0x71a6('0x4c')](_0x71a6('0x54'),'it',_0x71a6('0x55'))[_0x71a6('0x4c')](_0x71a6('0x49'),'t','t.id\x20=\x20it.TagId');var _0x34041f=squel['expr']();var _0x87f1c1=[];var _0x1c5b98=squel['expr']();var _0x1736d2;if(_0xefd593[_0x71a6('0x3b')][_0x71a6('0x56')]){_0x1736d2=as[_0x71a6('0x57')](_0xefd593[_0x71a6('0x3b')]['search']);var _0x38a484=_0x1736d2[_0x71a6('0x58')];for(var _0x345a08=0x0;_0x345a08<_0x1736d2['conditions'][_0x71a6('0x40')];_0x345a08++){var _0x24caca=_0x1736d2[_0x71a6('0x59')][_0x345a08];var _0x5d276d='i';var _0x566546=_['find'](_0x41021e,[_0x71a6('0x2d'),_0x24caca[_0x71a6('0x4a')]]);if(!_0x566546){switch(_0x24caca['field']){case'unreadMessages':if(_0x24caca[_0x71a6('0x5a')]==0x1){_0x2af14e['having']('`'+_0x24caca[_0x71a6('0x4a')]+_0x71a6('0x5b'));}else{_0x2af14e[_0x71a6('0x5c')]('`'+_0x24caca['field']+_0x71a6('0x5d'));}break;case _0x71a6('0x5e'):if(_0x24caca[_0x71a6('0x5f')]==='$substring'){if(_0x24caca[_0x71a6('0x5a')][_0x71a6('0x33')]('\x20')['length']>0x1){_0x34041f[_0x38a484]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x24caca['value']),null);}else{var _0xbe0659='%'+_0x24caca['value']+'%';_0x34041f[_0x38a484](_0x71a6('0x60'),_0xbe0659,_0xbe0659,_0xbe0659);}}else{_0x566546=_['find'](_0x41021e,[_0x71a6('0x2d'),'ContactId']);_0x24caca[_0x71a6('0x4a')]=_0x71a6('0x61');_0x555929=as['buildExpression'](_0x5d276d,_0x566546[_0x71a6('0x38')],_0x24caca);_0x34041f[_0x38a484](_0x555929['text'],_0x555929['value'][_0x71a6('0x62')],_0x555929[_0x71a6('0x5a')]['end']);}break;case'Tag':var _0x4cda77=_0x24caca[_0x71a6('0x5a')][_0x71a6('0x33')](',')['map'](function(_0xadac4d){return Number(_0xadac4d);});_0x4cda77['forEach'](function(_0x26f097){_0x1c5b98['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x26f097+',%');});_0x87f1c1=_[_0x71a6('0x63')](_0x87f1c1,_0x4cda77);break;case'User':if(_0x24caca[_0x71a6('0x5f')]===_0x71a6('0x64')){_0x34041f[_0x38a484](_0x71a6('0x65'),'%'+_0x24caca[_0x71a6('0x5a')]+'%',null);}else{_0x566546=_['find'](_0x41021e,['name',_0x71a6('0x66')]);_0x24caca[_0x71a6('0x4a')]=_0x71a6('0x66');_0x555929=as[_0x71a6('0x67')](_0x5d276d,_0x566546['type'],_0x24caca);_0x34041f[_0x38a484](_0x555929[_0x71a6('0x68')],_0x555929[_0x71a6('0x5a')][_0x71a6('0x62')],_0x555929[_0x71a6('0x5a')][_0x71a6('0x22')]);}break;case _0x71a6('0x69'):_0x555929=as['buildExpression']('me',null,_0x24caca);_0x34041f[_0x38a484](_0x555929[_0x71a6('0x68')],_0x555929[_0x71a6('0x5a')][_0x71a6('0x62')],_0x555929[_0x71a6('0x5a')][_0x71a6('0x22')]);break;}}else{var _0x555929=as[_0x71a6('0x67')](_0x5d276d,_0x566546[_0x71a6('0x38')],_0x24caca);_0x34041f[_0x38a484](_0x555929[_0x71a6('0x68')],_0x555929[_0x71a6('0x5a')]['start'],_0x555929[_0x71a6('0x5a')][_0x71a6('0x22')]);}}}else{var _0x354203=_(_0xefd593[_0x71a6('0x3b')])[_0x71a6('0x6a')]()[_0x71a6('0x2f')](function(_0x2b969c){return _[_0x71a6('0x6b')](_0x41021e,[_0x71a6('0x2d'),_0x2b969c])?_0x2b969c:undefined;})[_0x71a6('0x6c')]()[_0x71a6('0x5a')]();if(!_[_0x71a6('0x6d')](_0x354203)){_0x354203[_0x71a6('0x6e')](function(_0x2347e8){if(_0x2347e8===_0x71a6('0x6f')){_0x2af14e[_0x71a6('0x45')](_0x71a6('0x70'),[][_0x71a6('0x71')](_0xefd593[_0x71a6('0x3b')][_0x2347e8]));}else if(_0x2347e8==='createdAt'){var _0x137fde=JSON['parse'](_0xefd593[_0x71a6('0x3b')][_0x2347e8])[_0x71a6('0x72')];var _0x41ff24=JSON[_0x71a6('0x73')](_0xefd593[_0x71a6('0x3b')][_0x2347e8])[_0x71a6('0x74')];_0x2af14e['where'](_0x71a6('0x75'),_0x137fde,_0x41ff24);}else{if(_0xefd593[_0x71a6('0x3b')][_0x2347e8]===_0x71a6('0x76')){_0x2af14e[_0x71a6('0x45')]('i.'+_0x2347e8+_0x71a6('0x77'));}else{_0x2af14e['where']('i.'+_0x2347e8+_0x71a6('0x78'),_0xefd593['query'][_0x2347e8]);}}});}if(_0xefd593[_0x71a6('0x3b')][_0x71a6('0x79')]){if(_0xefd593['query'][_0x71a6('0x79')]==0x1){_0x2af14e[_0x71a6('0x5c')](_0x71a6('0x7a'));}else{_0x2af14e[_0x71a6('0x5c')]('`unreadMessages`\x20>\x200');}}if(_0xefd593[_0x71a6('0x3b')][_0x71a6('0x7b')]){_0x87f1c1=_['isArray'](_0xefd593[_0x71a6('0x3b')][_0x71a6('0x7b')])?_0xefd593[_0x71a6('0x3b')][_0x71a6('0x7b')]:new Array(_0xefd593[_0x71a6('0x3b')][_0x71a6('0x7b')]);_0x87f1c1[_0x71a6('0x6e')](function(_0x195ecc){_0x1c5b98['or'](_0x71a6('0x7c'),'%,'+_0x195ecc+',%');});}if(_0xefd593[_0x71a6('0x3b')]['filter']){var _0x122e1a=_0xefd593[_0x71a6('0x3b')][_0x71a6('0x7d')][_0x71a6('0x7e')]('\x5c','\x5c\x5c')[_0x71a6('0x7e')](/'/g,'\x27\x27');if(qs[_0x71a6('0x7f')](_0x122e1a)){_0x34041f['or'](_0x71a6('0x80'),_0x122e1a+'%')['or'](_0x71a6('0x81'),_0x122e1a+'%');}else{_0x34041f['or'](_0x71a6('0x82'),qs[_0x71a6('0x83')](_0x122e1a))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x122e1a+'%');}}}_0x2af14e['where'](_0x34041f);_0x2af14e['group'](_0x71a6('0x84'));var _0x43817c={'type':db[_0x71a6('0x85')][_0x71a6('0x86')]['SELECT'],'raw':!![]};var _0x1f75cb=_0x2af14e[_0x71a6('0x87')]();_0x1f75cb['field'](_0x71a6('0x84'));_0x1f75cb[_0x71a6('0x4a')](_0x71a6('0x88'),_0x71a6('0x89'));if(_0x206a7e[_0x71a6('0x43')]){_0x206a7e[_0x71a6('0x43')]['forEach'](function(_0x3e3a22){var _0x1def18=_0x3e3a22[0x0]===_0x71a6('0x8a')?_0x3e3a22[0x0]:'i.'+_0x3e3a22[0x0];_0x2af14e[_0x71a6('0x43')](_0x1def18,_0x3e3a22[0x1]==='DESC'?![]:!![]);});}if(!_[_0x71a6('0x6d')](_0x87f1c1)){_0x2af14e[_0x71a6('0x5c')](_0x1c5b98);_0x1f75cb[_0x71a6('0x45')](_0x71a6('0x8b'),_0x87f1c1);}BPromise[_0x71a6('0x8c')]()[_0x71a6('0x2c')](function(){if(!_0x1736d2){if(_0xefd593[_0x71a6('0x3b')]['SmsAccountId'])return;_0x1f75cb[_0x71a6('0x45')](_0x71a6('0x8d'));_0x2af14e[_0x71a6('0x45')](_0x71a6('0x8d'));return;}if(_0xefd593[_0x71a6('0x8e')][_0x71a6('0x8f')]!==_0x71a6('0x90'))return;return _0xefd593[_0x71a6('0x8e')][_0x71a6('0x91')]({'attributes':['id'],'raw':!![]})['then'](function(_0x463711){if(_[_0x71a6('0x6d')](_0x463711)){_0x1f75cb[_0x71a6('0x45')]('i.SmsAccountId\x20IS\x20NULL');_0x2af14e[_0x71a6('0x45')](_0x71a6('0x92'));}else{_0x1f75cb[_0x71a6('0x45')](_0x71a6('0x70'),_[_0x71a6('0x2f')](_0x463711,'id'));_0x2af14e['where']('i.SmsAccountId\x20IN\x20?',_['map'](_0x463711,'id'));}});})[_0x71a6('0x2c')](function(){if(_0xefd593[_0x71a6('0x8e')][_0x71a6('0x8f')]===_0x71a6('0x90')&&!_0x1736d2&&!_0xefd593[_0x71a6('0x3b')][_0x71a6('0x6f')])return[];return db[_0x71a6('0x93')]['query'](_0x1f75cb[_0x71a6('0x94')](),_0x43817c);})[_0x71a6('0x2c')](function(_0x1d6b21){_0x10ce2b[_0x71a6('0x26')]=_0x1d6b21[_0x71a6('0x40')];if(_0x10ce2b[_0x71a6('0x26')]===0x0)return[];return db['sequelize'][_0x71a6('0x3b')](_0x1a89ba[_0x71a6('0x94')](),_0x43817c)[_0x71a6('0x2c')](function(_0x59d629){_0x6bf95f=_[_0x71a6('0x95')](_0x59d629,'id');_0x43817c=_[_0x71a6('0x96')](_0x43817c,{'model':db['SmsInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xefd593[_0x71a6('0x3b')][_0x71a6('0x3f')]){_0x206a7e[_0x71a6('0x3e')]['forEach'](function(_0x3ac61f){_0x2af14e['field']('i.'+_0x3ac61f);});}else{_0x2af14e['field'](_0x71a6('0x88'),'unreadMessages');_0x2af14e[_0x71a6('0x4a')](_0x71a6('0x97'),'Account.key');_0x2af14e[_0x71a6('0x4a')](_0x71a6('0x98'),_0x71a6('0x99'));_0x2af14e[_0x71a6('0x4a')](_0x71a6('0x9a'),_0x71a6('0x8a'));_0x2af14e[_0x71a6('0x4a')](_0x71a6('0x9b'));_0x2af14e[_0x71a6('0x4a')](_0x71a6('0x9c'),_0x71a6('0x9d'));_0x2af14e[_0x71a6('0x4a')]('c.lastName',_0x71a6('0x9e'));_0x2af14e[_0x71a6('0x4a')](_0x71a6('0x9f'),_0x71a6('0xa0'));_0x2af14e['field'](_0x71a6('0xa1'),'Contact.phone');_0x2af14e[_0x71a6('0x4a')]('c.mobile',_0x71a6('0xa2'));_0x2af14e[_0x71a6('0x4a')](_0x71a6('0xa3'),_0x71a6('0xa4'));_0x2af14e[_0x71a6('0x4a')]('o.fullname',_0x71a6('0xa5'));_0x2af14e[_0x71a6('0x4a')](_0x71a6('0xa6'),'Owner.internal');_0x2af14e[_0x71a6('0x4a')](_0x71a6('0xa7'),_0x71a6('0x31'));}if(_0x206a7e[_0x71a6('0x25')])_0x2af14e[_0x71a6('0x25')](_0x206a7e[_0x71a6('0x25')]);if(_0x206a7e[_0x71a6('0x24')])_0x2af14e['offset'](_0x206a7e[_0x71a6('0x24')]);return db[_0x71a6('0x93')][_0x71a6('0x3b')](_0x2af14e[_0x71a6('0x94')](),_0x43817c);})['then'](function(_0x50cb9c){if(_0x50cb9c[_0x71a6('0x40')]>0x0)_0x5b4369[_0x71a6('0x45')](_0x71a6('0xa8'),_[_0x71a6('0x2f')](_0x50cb9c,'id'));return db[_0x71a6('0x93')]['query'](_0x5b4369[_0x71a6('0x94')](),_0x43817c)[_0x71a6('0x2c')](function(_0x3697d4){var _0x55a8af=_[_0x71a6('0xa9')](_0x3697d4,'SmsInteractionId');var _0x448c3c=[];_0x50cb9c[_0x71a6('0x6e')](function(_0x424303){_0x448c3c[_0x71a6('0x34')](updateSmsInteraction(_0x424303,_0x6bf95f,_0x55a8af));});return BPromise['all'](_0x448c3c);});});})[_0x71a6('0x2c')](function(_0x1e3d52){_0x10ce2b[_0x71a6('0xaa')]=_0x1e3d52;return _0x10ce2b;})[_0x71a6('0x2c')](respondWithFilteredResult(_0xbc21bf,_0x206a7e))[_0x71a6('0x35')](handleError(_0xbc21bf,null));};exports[_0x71a6('0xab')]=function(_0x243f1b,_0x51a8f8){var _0x39412f={'raw':![],'where':{'id':_0x243f1b[_0x71a6('0xac')]['id']}},_0x11dd10={};_0x11dd10[_0x71a6('0x3a')]=_[_0x71a6('0x6a')](db[_0x71a6('0x37')][_0x71a6('0xad')]);_0x11dd10[_0x71a6('0x3b')]=_[_0x71a6('0x6a')](_0x243f1b[_0x71a6('0x3b')]);_0x11dd10[_0x71a6('0x3c')]=_['intersection'](_0x11dd10[_0x71a6('0x3a')],_0x11dd10[_0x71a6('0x3b')]);_0x39412f['attributes']=_[_0x71a6('0x3d')](_0x11dd10[_0x71a6('0x3a')],qs[_0x71a6('0x3f')](_0x243f1b[_0x71a6('0x3b')][_0x71a6('0x3f')]));_0x39412f[_0x71a6('0x3e')]=_0x39412f[_0x71a6('0x3e')][_0x71a6('0x40')]?_0x39412f[_0x71a6('0x3e')]:_0x11dd10[_0x71a6('0x3a')];if(_0x243f1b[_0x71a6('0x3b')][_0x71a6('0xae')]){_0x39412f[_0x71a6('0xaf')]=[{'all':!![]}];}_0x39412f=_[_0x71a6('0x96')]({},_0x39412f,_0x243f1b[_0x71a6('0xb0')]);return db[_0x71a6('0x37')][_0x71a6('0xb1')](_0x39412f)['then'](handleEntityNotFound(_0x51a8f8,null))[_0x71a6('0x2c')](respondWithResult(_0x51a8f8,null))['catch'](handleError(_0x51a8f8,null));};exports[_0x71a6('0xb2')]=function(_0x289a3f,_0x18aa70){return db[_0x71a6('0x37')][_0x71a6('0xb2')](_0x289a3f['body'],{})[_0x71a6('0x2c')](respondWithResult(_0x18aa70,0xc9))[_0x71a6('0x35')](handleError(_0x18aa70,null));};exports[_0x71a6('0xb3')]=function(_0x434a52,_0x29d1d6){if(_0x434a52['body']['id']){delete _0x434a52[_0x71a6('0x69')]['id'];}return db[_0x71a6('0x37')][_0x71a6('0xb1')]({'where':{'id':_0x434a52['params']['id']}})[_0x71a6('0x2c')](handleEntityNotFound(_0x29d1d6,null))[_0x71a6('0x2c')](saveUpdates(_0x434a52['body'],null))[_0x71a6('0x2c')](respondWithResult(_0x29d1d6,null))['catch'](handleError(_0x29d1d6,null));};exports['destroy']=function(_0x4a3001,_0x15b44e){return db[_0x71a6('0x37')][_0x71a6('0xb1')]({'where':{'id':_0x4a3001[_0x71a6('0xac')]['id']}})[_0x71a6('0x2c')](handleEntityNotFound(_0x15b44e,null))[_0x71a6('0x2c')](removeEntity(_0x15b44e,null))[_0x71a6('0x35')](handleError(_0x15b44e,null));};exports[_0x71a6('0xb4')]=function(_0x975867,_0x1ccfe7){return db['SmsInteraction'][_0x71a6('0xb4')]()[_0x71a6('0x2c')](respondWithResult(_0x1ccfe7,null))[_0x71a6('0x35')](handleError(_0x1ccfe7,null));};exports['addMessage']=function(_0x4af40f,_0x14041d,_0x211fd4){return db[_0x71a6('0xb5')][_0x71a6('0xb1')]({'where':{'id':_0x4af40f[_0x71a6('0xac')]['id']}})['then'](handleEntityNotFound(_0x14041d,null))['then'](function(_0x410460){if(_0x410460){return _0x410460[_0x71a6('0xb6')](_0x4af40f[_0x71a6('0x69')][_0x71a6('0xb7')],_[_0x71a6('0xb8')](_0x4af40f[_0x71a6('0x69')],[_0x71a6('0xb7'),'id'])||{});}})[_0x71a6('0x2c')](respondWithResult(_0x14041d,null))[_0x71a6('0x35')](handleError(_0x14041d,null));};exports[_0x71a6('0xb9')]=function(_0x411ff9,_0x2fea34,_0x264133){var _0x47ad63={'raw':![],'where':{}};var _0x25366e={};var _0x10cb04={'count':0x0,'rows':[]};return db[_0x71a6('0x37')][_0x71a6('0xba')]({'where':{'id':_0x411ff9[_0x71a6('0xac')]['id']}})[_0x71a6('0x2c')](handleEntityNotFound(_0x2fea34,null))[_0x71a6('0x2c')](function(_0x333b30){if(_0x333b30){_0x25366e[_0x71a6('0x3a')]=_[_0x71a6('0x6a')](db[_0x71a6('0xb5')][_0x71a6('0xad')]);_0x25366e[_0x71a6('0x3b')]=_[_0x71a6('0x6a')](_0x411ff9[_0x71a6('0x3b')]);_0x25366e['filters']=_[_0x71a6('0x3d')](_0x25366e[_0x71a6('0x3a')],_0x25366e[_0x71a6('0x3b')]);_0x47ad63[_0x71a6('0x3e')]=_[_0x71a6('0x3d')](_0x25366e[_0x71a6('0x3a')],qs[_0x71a6('0x3f')](_0x411ff9['query'][_0x71a6('0x3f')]));_0x47ad63[_0x71a6('0x3e')]=_0x47ad63[_0x71a6('0x3e')]['length']?_0x47ad63[_0x71a6('0x3e')]:_0x25366e[_0x71a6('0x3a')];if(!_0x411ff9[_0x71a6('0x3b')][_0x71a6('0x41')](_0x71a6('0x42'))){_0x47ad63[_0x71a6('0x25')]=qs[_0x71a6('0x25')](_0x411ff9['query'][_0x71a6('0x25')]);_0x47ad63[_0x71a6('0x24')]=qs['offset'](_0x411ff9['query']['offset']);}_0x47ad63[_0x71a6('0x43')]=qs[_0x71a6('0x44')](_0x411ff9[_0x71a6('0x3b')][_0x71a6('0x44')]);_0x47ad63[_0x71a6('0x45')]=qs[_0x71a6('0x3c')](_['pick'](_0x411ff9[_0x71a6('0x3b')],_0x25366e[_0x71a6('0x3c')]));_0x47ad63[_0x71a6('0x45')][_0x71a6('0xbb')]=_0x333b30['id'];if(_0x411ff9[_0x71a6('0x3b')]['filter']){_0x47ad63[_0x71a6('0x45')]=_[_0x71a6('0x96')](_0x47ad63['where'],{'$or':_[_0x71a6('0x2f')](_0x47ad63[_0x71a6('0x3e')],function(_0x41d387){var _0xf8cf72={};_0xf8cf72[_0x41d387]={'$like':'%'+_0x411ff9[_0x71a6('0x3b')][_0x71a6('0x7d')]+'%'};return _0xf8cf72;})});}if(_0x411ff9[_0x71a6('0x3b')][_0x71a6('0x72')]){var _0x58b968=_0x411ff9['query'][_0x71a6('0x72')][_0x71a6('0x33')](',');var _0x476a86={};_0x476a86[_0x58b968[0x0]]={'$gte':moment(_0x58b968[0x1])[_0x71a6('0xbc')](_0x71a6('0xbd'))};_0x47ad63[_0x71a6('0x45')]=_[_0x71a6('0x96')](_0x47ad63['where'],_0x476a86);}_0x47ad63=_[_0x71a6('0x96')]({},_0x47ad63,_0x411ff9[_0x71a6('0xb0')]);return db['SmsMessage'][_0x71a6('0x26')]({'where':_0x47ad63[_0x71a6('0x45')]})[_0x71a6('0x2c')](function(_0x258abf){_0x10cb04[_0x71a6('0x26')]=_0x258abf;if(_0x411ff9[_0x71a6('0x3b')][_0x71a6('0xae')]){_0x47ad63[_0x71a6('0xaf')]=[{'all':!![]}];}return db[_0x71a6('0xb5')][_0x71a6('0xbe')](_0x47ad63);})['then'](function(_0x4b6c2d){_0x10cb04['rows']=_0x4b6c2d;return _0x10cb04;});}})[_0x71a6('0x2c')](respondWithFilteredResult(_0x2fea34,_0x47ad63))['catch'](handleError(_0x2fea34,null));};exports[_0x71a6('0xbf')]=function(_0x53d337,_0x2319b7,_0x17e7c8){return db[_0x71a6('0x37')]['find']({'where':{'id':_0x53d337['params']['id']}})[_0x71a6('0x2c')](handleEntityNotFound(_0x2319b7,null))[_0x71a6('0x2c')](function(_0x43487c){if(_0x43487c){return _0x43487c[_0x71a6('0xc0')](_0x53d337[_0x71a6('0x69')][_0x71a6('0xb7')],_['omit'](_0x53d337['body'],[_0x71a6('0xb7'),'id'])||{})['spread'](function(){return db[_0x71a6('0xc1')][_0x71a6('0xbe')]({'attributes':['id','name','color'],'where':{'id':_0x53d337[_0x71a6('0x69')][_0x71a6('0xb7')]}});})[_0x71a6('0x2c')](function(_0x203e39){socket[_0x71a6('0xc2')](_0x71a6('0xc3'),{'id':Number(_0x53d337[_0x71a6('0xac')]['id']),'tags':_0x203e39||[]});return{'id':Number(_0x53d337['params']['id']),'tags':_0x203e39||[]};});}})[_0x71a6('0x2c')](respondWithResult(_0x2319b7,null))[_0x71a6('0x35')](handleError(_0x2319b7,null));};exports[_0x71a6('0xc4')]=function(_0x15df21,_0x159998,_0x4ac280){return db[_0x71a6('0x37')]['find']({'where':{'id':_0x15df21[_0x71a6('0xac')]['id']}})['then'](handleEntityNotFound(_0x159998,null))[_0x71a6('0x2c')](function(_0x567536){if(_0x567536){return _0x567536[_0x71a6('0xc4')](_0x15df21['query'][_0x71a6('0xb7')]);}})[_0x71a6('0x2c')](respondWithStatusCode(_0x159998,null))['catch'](handleError(_0x159998,null));};exports['download']=function(_0x3ba7d5,_0x32b3e7){var _0x42f5d8=moment()[_0x71a6('0xc5')]()['toString']();var _0x9d5ce7=path['join'](config['root'],_0x71a6('0xc6'),_0x71a6('0xc7'),'tmp');var _0x27a2c2=path[_0x71a6('0xc8')](config[_0x71a6('0xc9')],'server',_0x71a6('0xc7'),_0x71a6('0xca'));var _0x35571b=path[_0x71a6('0xc8')](_0x9d5ce7,_0x42f5d8);var _0x389327=util[_0x71a6('0xbc')](_0x71a6('0xcb'),_0x3ba7d5[_0x71a6('0xac')]['id'],_0x42f5d8);var _0x249504=path[_0x71a6('0xc8')](_0x9d5ce7,_0x389327);var _0x274ef1=[];_0x274ef1[_0x71a6('0x34')]({'model':db[_0x71a6('0xcc')],'as':_0x71a6('0xcc'),'attributes':['id',_0x71a6('0x30')],'raw':!![]});_0x274ef1['push']({'model':db[_0x71a6('0xcd')],'as':'Contact','attributes':['id','firstName','lastName'],'raw':!![]});var _0x280bee=[{'model':db[_0x71a6('0xb5')],'as':'Messages','attributes':['id',_0x71a6('0x69'),_0x71a6('0xce'),_0x71a6('0xcf'),_0x71a6('0xd0'),'read'],'include':_0x274ef1}];_0x280bee[_0x71a6('0x34')]({'model':db['SmsAccount'],'as':_0x71a6('0xd1'),'attributes':['id',_0x71a6('0x2d')]});_0x280bee[_0x71a6('0x34')]({'model':db[_0x71a6('0xcc')],'as':_0x71a6('0xd2'),'attributes':['id',_0x71a6('0x30')]});return db[_0x71a6('0x37')][_0x71a6('0xb1')]({'where':{'id':_0x3ba7d5['params']['id']},'include':_0x280bee})[_0x71a6('0x2c')](handleEntityNotFound(_0x32b3e7,null))['then'](function(_0x5776b0){if(_0x5776b0){var _0x187a6f=_0x5776b0['get']({'plain':!![]});fs[_0x71a6('0xd3')](_0x35571b);var _0x146223={'channel':'Sms','account':_0x187a6f['Account']['name'],'agent':_0x187a6f['Owner']?_0x187a6f[_0x71a6('0xd2')]['fullname']:'N.A.','createdAt':moment(_0x187a6f[_0x71a6('0xce')])[_0x71a6('0xbc')](_0x71a6('0xbd'))[_0x71a6('0x94')](),'closedAt':_0x187a6f[_0x71a6('0xd4')]?moment(_0x187a6f['closedAt'])['format'](_0x71a6('0xbd'))[_0x71a6('0x94')]():'','disposition':_0x187a6f['disposition'],'messages':_(_0x187a6f[_0x71a6('0xd5')])[_0x71a6('0x7d')]({'secret':![]})[_0x71a6('0x2f')](function(_0x4e5d6c){return{'date':moment(_0x4e5d6c[_0x71a6('0xce')])['format'](_0x71a6('0xbd'))[_0x71a6('0x94')](),'sender':_0x4e5d6c[_0x71a6('0xcf')]===_0x71a6('0xd6')?_0x4e5d6c[_0x71a6('0xcc')]?_0x4e5d6c[_0x71a6('0xcc')][_0x71a6('0x30')]:_0x71a6('0xd7'):_0x4e5d6c[_0x71a6('0x5e')]['firstName']+(_0x4e5d6c['Contact']['lastName']?'\x20'+_0x4e5d6c['Contact'][_0x71a6('0xd8')]:''),'body':_0x4e5d6c[_0x71a6('0x69')],'direction':_0x4e5d6c[_0x71a6('0xcf')]==='out'?'A':'C','secret':_0x4e5d6c[_0x71a6('0xd0')],'read':_0x4e5d6c[_0x71a6('0x79')]};})[_0x71a6('0x5a')]()};return ejs[_0x71a6('0xd9')](path['join'](config[_0x71a6('0xc9')],_0x71a6('0xc6'),'views',_0x71a6('0xda')),{'interaction':_0x146223})[_0x71a6('0x2c')](function(_0x35a575){var _0x3d650c=path[_0x71a6('0xc8')](_0x35571b,_0x71a6('0xdb')+_0x187a6f['id']+'-'+_0x42f5d8+_0x71a6('0xdc'));var _0x3635e7={'path':_0x3d650c,'channel':_0x71a6('0xdd'),'interactionId':_0x187a6f['id']};return pdf['createPdfFromHTML'](_0x35a575,_0x3635e7);})['then'](function(){return new BPromise(function(_0x46fcf5,_0x2e13aa){zipdir(_0x35571b,{'saveTo':_0x249504},function(_0x4a16bc,_0x3d929a){if(_0x4a16bc)return _0x2e13aa(_0x4a16bc);return _0x46fcf5(_0x3d929a);});})[_0x71a6('0x2c')](function(){return new BPromise(function(_0x5f4fbe,_0x50e335){rimraf(_0x35571b,function(_0x26ca8f){if(_0x26ca8f)_0x50e335(_0x26ca8f);return _0x5f4fbe();});});})[_0x71a6('0x2c')](function(){return _0x32b3e7[_0x71a6('0xde')](_0x249504,_0x389327,function(_0xabe8a6){if(_0xabe8a6){console[_0x71a6('0xdf')](_0x71a6('0xe0'),_0xabe8a6);}else{fs[_0x71a6('0xe1')](_0x249504);}});});});}else{return _0x32b3e7['sendStatus'](0xc8);}})['catch'](handleError(_0x32b3e7,null));};
\ No newline at end of file
+var _0xfc32=['ui.SmsInteractionId','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','having','`\x20>\x200','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','value','ContactId','text','Tag','union','User','UserId','buildExpression','start','body','keys','some','compact','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','t.id\x20IN\x20?','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','role','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','agent','sequelize','toString','merge','a.key','Account.key','Account.mandatoryDisposition','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','push','all','rows','catch','includeAll','include','create','params','destroy','describe','addMessage','SmsMessage','ids','omit','getMessages','findOne','format','YYYY-MM-DD\x20HH:mm:ss','options','findAll','addTags','setTags','spread','emit','smsInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','CmContact','Contact','firstName','Messages','direction','secret','Account','Owner','fullname','get','Sms','N.A.','closed','closedAt','disposition','lastName','out','renderFile','views','transcript-','createPdfFromHTML','log','err','unlinkSync','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','./smsInteraction.socket','register','sendStatus','status','end','json','limit','undefined','count','save','update','error','stack','name','map','Tags','TagIds','split','forEach','then','index','SmsInteraction','fieldName','type','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','offset','sort','where','pick','select','field','color','tools_tags','u.id','u.fullname'];(function(_0x4c4f21,_0x10e296){var _0x1b0a89=function(_0x2d04ba){while(--_0x2d04ba){_0x4c4f21['push'](_0x4c4f21['shift']());}};_0x1b0a89(++_0x10e296);}(_0xfc32,0x17a));var _0x2fc3=function(_0x11005e,_0x20c3d2){_0x11005e=_0x11005e-0x0;var _0x29338f=_0xfc32[_0x11005e];return _0x29338f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2fc3('0x0'));var rp=require(_0x2fc3('0x1'));var moment=require('moment');var BPromise=require(_0x2fc3('0x2'));var Mustache=require(_0x2fc3('0x3'));var util=require(_0x2fc3('0x4'));var path=require(_0x2fc3('0x5'));var sox=require(_0x2fc3('0x6'));var csv=require(_0x2fc3('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2fc3('0x8'));var squel=require(_0x2fc3('0x9'));var crypto=require(_0x2fc3('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x2fc3('0x7'));var querystring=require(_0x2fc3('0xb'));var Papa=require(_0x2fc3('0xc'));var Redis=require('ioredis');var authService=require(_0x2fc3('0xd'));var qs=require(_0x2fc3('0xe'));var as=require('../../components/parsers/advancedSearch');var pdf=require('../../components/export/pdf');var hardwareService=require(_0x2fc3('0xf'));var logger=require(_0x2fc3('0x10'))('api');var utils=require(_0x2fc3('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x2fc3('0x12'));var db=require(_0x2fc3('0x13'))['db'];config[_0x2fc3('0x14')]=_[_0x2fc3('0x15')](config[_0x2fc3('0x14')],{'host':_0x2fc3('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2fc3('0x14')]));require(_0x2fc3('0x17'))[_0x2fc3('0x18')](socket);function respondWithStatusCode(_0xc8d710,_0x3670e9){_0x3670e9=_0x3670e9||0xcc;return function(_0x2b3c55){if(_0x2b3c55){return _0xc8d710[_0x2fc3('0x19')](_0x3670e9);}return _0xc8d710[_0x2fc3('0x1a')](_0x3670e9)[_0x2fc3('0x1b')]();};}function respondWithResult(_0x51563c,_0x3091eb){_0x3091eb=_0x3091eb||0xc8;return function(_0x3a41df){if(_0x3a41df){return _0x51563c[_0x2fc3('0x1a')](_0x3091eb)[_0x2fc3('0x1c')](_0x3a41df);}};}function respondWithFilteredResult(_0x2dacb3,_0x237f96){return function(_0x2ad243){if(_0x2ad243){var _0x28b335=typeof _0x237f96['offset']==='undefined'&&typeof _0x237f96[_0x2fc3('0x1d')]===_0x2fc3('0x1e');var _0x1bba96=_0x2ad243[_0x2fc3('0x1f')];var _0x11eac3=_0x28b335?0x0:_0x237f96['offset'];var _0x5bf12b=_0x28b335?_0x2ad243[_0x2fc3('0x1f')]:_0x237f96['offset']+_0x237f96[_0x2fc3('0x1d')];var _0x18d30a;if(_0x5bf12b>=_0x1bba96){_0x5bf12b=_0x1bba96;_0x18d30a=0xc8;}else{_0x18d30a=0xce;}_0x2dacb3['status'](_0x18d30a);return _0x2dacb3['set']('Content-Range',_0x11eac3+'-'+_0x5bf12b+'/'+_0x1bba96)[_0x2fc3('0x1c')](_0x2ad243);}return null;};}function patchUpdates(_0x4ec36d){return function(_0x3458b9){try{jsonpatch['apply'](_0x3458b9,_0x4ec36d,!![]);}catch(_0x48f8d5){return BPromise['reject'](_0x48f8d5);}return _0x3458b9[_0x2fc3('0x20')]();};}function saveUpdates(_0x2d7a71,_0x3979be){return function(_0xdb4ab3){if(_0xdb4ab3){return _0xdb4ab3[_0x2fc3('0x21')](_0x2d7a71)['then'](function(_0xb37c8e){return _0xb37c8e;});}return null;};}function removeEntity(_0x484f68,_0x212302){return function(_0x34c71c){if(_0x34c71c){return _0x34c71c['destroy']()['then'](function(){_0x484f68[_0x2fc3('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x59f88b,_0x180ef4){return function(_0x24129c){if(!_0x24129c){_0x59f88b['sendStatus'](0x194);}return _0x24129c;};}function handleError(_0x132c09,_0x9deb8){_0x9deb8=_0x9deb8||0x1f4;return function(_0x529b5e){logger[_0x2fc3('0x22')](_0x529b5e[_0x2fc3('0x23')]);if(_0x529b5e[_0x2fc3('0x24')]){delete _0x529b5e[_0x2fc3('0x24')];}_0x132c09['status'](_0x9deb8)['send'](_0x529b5e);};}function getInteractionUsers(_0x499522,_0x2fb79d){return new BPromise(function(_0x4f52ae,_0x33fdf6){try{if(_0x2fb79d[_0x499522['id']]){_0x499522['Users']=_[_0x2fc3('0x25')](_0x2fb79d[_0x499522['id']],function(_0x5c8898){return{'id':_0x5c8898['id'],'fullname':_0x5c8898['fullname']};});}}catch(_0x18c97b){_0x33fdf6(_0x18c97b);}_0x4f52ae(_0x499522);});}function getInteractionTags(_0x44e384,_0x337604){return new BPromise(function(_0x5d4965,_0x202ec4){try{if(_0x44e384['TagIds']){_0x44e384[_0x2fc3('0x26')]=[];_0x44e384[_0x2fc3('0x27')][_0x2fc3('0x28')](',')[_0x2fc3('0x29')](function(_0x130ddf){_0x44e384[_0x2fc3('0x26')]['push'](_0x337604[_0x130ddf]);});}delete _0x44e384[_0x2fc3('0x27')];}catch(_0x464828){_0x202ec4(_0x464828);}_0x5d4965(_0x44e384);});}function updateSmsInteraction(_0x7319ca,_0x2e8317,_0x1847f1){return new BPromise(function(_0x1ec9e2,_0xd038bc){return getInteractionUsers(_0x7319ca,_0x1847f1)[_0x2fc3('0x2a')](function(_0x1be036){return getInteractionTags(_0x1be036,_0x2e8317);})[_0x2fc3('0x2a')](function(_0x153abc){_0x1ec9e2(_0x153abc);})['catch'](function(_0x5af7bb){_0xd038bc(_0x5af7bb);});});}exports[_0x2fc3('0x2b')]=function(_0xf78558,_0x4b1195){var _0x15e929={},_0x243ca5={},_0x36ef22={'count':0x0,'rows':[]};var _0x316718=_[_0x2fc3('0x25')](db[_0x2fc3('0x2c')]['rawAttributes'],function(_0x390247){return{'name':_0x390247[_0x2fc3('0x2d')],'type':_0x390247[_0x2fc3('0x2e')]['key']};});_0x243ca5[_0x2fc3('0x2f')]=_[_0x2fc3('0x25')](_0x316718,_0x2fc3('0x24'));_0x243ca5[_0x2fc3('0x30')]=_['keys'](_0xf78558[_0x2fc3('0x30')]);_0x243ca5[_0x2fc3('0x31')]=_[_0x2fc3('0x32')](_0x243ca5[_0x2fc3('0x2f')],_0x243ca5[_0x2fc3('0x30')]);_0x15e929['attributes']=_['intersection'](_0x243ca5[_0x2fc3('0x2f')],qs[_0x2fc3('0x33')](_0xf78558['query']['fields']));_0x15e929['attributes']=_0x15e929[_0x2fc3('0x34')][_0x2fc3('0x35')]?_0x15e929[_0x2fc3('0x34')]:_0x243ca5[_0x2fc3('0x2f')];if(!_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x36')](_0x2fc3('0x37'))){_0x15e929['limit']=qs[_0x2fc3('0x1d')](_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x1d')]);_0x15e929[_0x2fc3('0x38')]=qs['offset'](_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x38')]);}_0x15e929['order']=qs['sort'](_0xf78558['query'][_0x2fc3('0x39')]);_0x15e929[_0x2fc3('0x3a')]=qs[_0x2fc3('0x31')](_[_0x2fc3('0x3b')](_0xf78558[_0x2fc3('0x30')],_0x243ca5[_0x2fc3('0x31')]),_0x316718);var _0xd6c383=[];var _0x1b932b=squel[_0x2fc3('0x3c')]()[_0x2fc3('0x3d')]('id')[_0x2fc3('0x3d')](_0x2fc3('0x24'))['field'](_0x2fc3('0x3e'))['from'](_0x2fc3('0x3f'));var _0x128b52=squel[_0x2fc3('0x3c')]()['field'](_0x2fc3('0x40'))[_0x2fc3('0x3d')](_0x2fc3('0x41'))['field'](_0x2fc3('0x42'))['from'](_0x2fc3('0x43'),'ui')[_0x2fc3('0x44')](_0x2fc3('0x45'),'u',_0x2fc3('0x46'));var _0x14d4a3=squel[_0x2fc3('0x3c')]()['from']('sms_interactions','i')[_0x2fc3('0x44')](_0x2fc3('0x47'),'c',_0x2fc3('0x48'))[_0x2fc3('0x44')]('users','o',_0x2fc3('0x49'))[_0x2fc3('0x44')](_0x2fc3('0x4a'),'a',_0x2fc3('0x4b'))[_0x2fc3('0x44')](_0x2fc3('0x4c'),'me',_0x2fc3('0x4d'))['left_join'](_0x2fc3('0x4e'),'it',_0x2fc3('0x4f'))[_0x2fc3('0x44')](_0x2fc3('0x3f'),'t',_0x2fc3('0x50'));var _0x409d71=squel[_0x2fc3('0x51')]();var _0x499933=[];var _0xc84df1=squel[_0x2fc3('0x51')]();var _0x517cd7;if(_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x52')]){_0x517cd7=as[_0x2fc3('0x53')](_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x52')]);var _0x140aba=_0x517cd7[_0x2fc3('0x54')];for(var _0x52c93d=0x0;_0x52c93d<_0x517cd7[_0x2fc3('0x55')][_0x2fc3('0x35')];_0x52c93d++){var _0x39a50b=_0x517cd7['conditions'][_0x52c93d];var _0x28cacd='i';var _0x3038a4=_[_0x2fc3('0x56')](_0x316718,[_0x2fc3('0x24'),_0x39a50b[_0x2fc3('0x3d')]]);if(!_0x3038a4){switch(_0x39a50b['field']){case _0x2fc3('0x57'):if(_0x39a50b['value']==0x1){_0x14d4a3[_0x2fc3('0x58')]('`'+_0x39a50b[_0x2fc3('0x3d')]+'`\x20=\x200');}else{_0x14d4a3[_0x2fc3('0x58')]('`'+_0x39a50b[_0x2fc3('0x3d')]+_0x2fc3('0x59'));}break;case'Contact':if(_0x39a50b['operator']===_0x2fc3('0x5a')){if(_0x39a50b['value'][_0x2fc3('0x28')]('\x20')[_0x2fc3('0x35')]>0x1){_0x409d71[_0x140aba](_0x2fc3('0x5b'),qs[_0x2fc3('0x5c')](_0x39a50b[_0x2fc3('0x5d')]),null);}else{var _0x541d08='%'+_0x39a50b[_0x2fc3('0x5d')]+'%';_0x409d71[_0x140aba]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x541d08,_0x541d08,_0x541d08);}}else{_0x3038a4=_[_0x2fc3('0x56')](_0x316718,['name','ContactId']);_0x39a50b['field']=_0x2fc3('0x5e');_0x24bdd9=as['buildExpression'](_0x28cacd,_0x3038a4[_0x2fc3('0x2e')],_0x39a50b);_0x409d71[_0x140aba](_0x24bdd9[_0x2fc3('0x5f')],_0x24bdd9[_0x2fc3('0x5d')]['start'],_0x24bdd9[_0x2fc3('0x5d')]['end']);}break;case _0x2fc3('0x60'):var _0x555afe=_0x39a50b[_0x2fc3('0x5d')][_0x2fc3('0x28')](',')['map'](function(_0x9516c2){return Number(_0x9516c2);});_0x555afe[_0x2fc3('0x29')](function(_0x5a78dd){_0xc84df1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x5a78dd+',%');});_0x499933=_[_0x2fc3('0x61')](_0x499933,_0x555afe);break;case _0x2fc3('0x62'):if(_0x39a50b['operator']===_0x2fc3('0x5a')){_0x409d71[_0x140aba]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x39a50b[_0x2fc3('0x5d')]+'%',null);}else{_0x3038a4=_[_0x2fc3('0x56')](_0x316718,[_0x2fc3('0x24'),'UserId']);_0x39a50b[_0x2fc3('0x3d')]=_0x2fc3('0x63');_0x24bdd9=as[_0x2fc3('0x64')](_0x28cacd,_0x3038a4[_0x2fc3('0x2e')],_0x39a50b);_0x409d71[_0x140aba](_0x24bdd9[_0x2fc3('0x5f')],_0x24bdd9['value'][_0x2fc3('0x65')],_0x24bdd9[_0x2fc3('0x5d')]['end']);}break;case _0x2fc3('0x66'):_0x24bdd9=as[_0x2fc3('0x64')]('me',null,_0x39a50b);_0x409d71[_0x140aba](_0x24bdd9[_0x2fc3('0x5f')],_0x24bdd9[_0x2fc3('0x5d')]['start'],_0x24bdd9[_0x2fc3('0x5d')]['end']);break;}}else{var _0x24bdd9=as[_0x2fc3('0x64')](_0x28cacd,_0x3038a4[_0x2fc3('0x2e')],_0x39a50b);_0x409d71[_0x140aba](_0x24bdd9['text'],_0x24bdd9['value'][_0x2fc3('0x65')],_0x24bdd9[_0x2fc3('0x5d')][_0x2fc3('0x1b')]);}}}else{var _0x3671f0=_(_0xf78558[_0x2fc3('0x30')])[_0x2fc3('0x67')]()[_0x2fc3('0x25')](function(_0x11dc34){return _[_0x2fc3('0x68')](_0x316718,['name',_0x11dc34])?_0x11dc34:undefined;})[_0x2fc3('0x69')]()[_0x2fc3('0x5d')]();if(!_[_0x2fc3('0x6a')](_0x3671f0)){_0x3671f0[_0x2fc3('0x29')](function(_0x467c70){if(_0x467c70===_0x2fc3('0x6b')){_0x14d4a3[_0x2fc3('0x3a')](_0x2fc3('0x6c'),[][_0x2fc3('0x6d')](_0xf78558['query'][_0x467c70]));}else if(_0x467c70===_0x2fc3('0x6e')){var _0xef03f9=JSON[_0x2fc3('0x6f')](_0xf78558[_0x2fc3('0x30')][_0x467c70])[_0x2fc3('0x70')];var _0x4851da=JSON[_0x2fc3('0x6f')](_0xf78558[_0x2fc3('0x30')][_0x467c70])[_0x2fc3('0x71')];_0x14d4a3['where'](_0x2fc3('0x72'),_0xef03f9,_0x4851da);}else{if(_0xf78558[_0x2fc3('0x30')][_0x467c70]===_0x2fc3('0x73')){_0x14d4a3[_0x2fc3('0x3a')]('i.'+_0x467c70+_0x2fc3('0x74'));}else{_0x14d4a3['where']('i.'+_0x467c70+_0x2fc3('0x75'),_0xf78558[_0x2fc3('0x30')][_0x467c70]);}}});}if(_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x76')]){if(_0xf78558['query']['read']==0x1){_0x14d4a3[_0x2fc3('0x58')]('`unreadMessages`\x20=\x200');}else{_0x14d4a3['having'](_0x2fc3('0x77'));}}if(_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x78')]){_0x499933=_['isArray'](_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x78')])?_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x78')]:new Array(_0xf78558[_0x2fc3('0x30')]['tag']);_0x499933[_0x2fc3('0x29')](function(_0x4d3bac){_0xc84df1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4d3bac+',%');});}if(_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x79')]){var _0x4280b8=_0xf78558[_0x2fc3('0x30')]['filter'][_0x2fc3('0x7a')]('\x5c','\x5c\x5c')[_0x2fc3('0x7a')](/'/g,'\x27\x27');if(qs[_0x2fc3('0x7b')](_0x4280b8)){_0x409d71['or'](_0x2fc3('0x7c'),_0x4280b8+'%')['or']('i.phone\x20LIKE\x20?',_0x4280b8+'%');}else{_0x409d71['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x4280b8))['or'](_0x2fc3('0x7d'),_0x4280b8+'%');}}}_0x14d4a3[_0x2fc3('0x3a')](_0x409d71);_0x14d4a3['group'](_0x2fc3('0x7e'));var _0x67a64f={'type':db[_0x2fc3('0x7f')][_0x2fc3('0x80')][_0x2fc3('0x81')],'raw':!![]};var _0x5e8f08=_0x14d4a3['clone']();_0x5e8f08['field'](_0x2fc3('0x7e'));_0x5e8f08[_0x2fc3('0x3d')](_0x2fc3('0x82'),_0x2fc3('0x57'));if(_0x15e929[_0x2fc3('0x83')]){_0x15e929['order'][_0x2fc3('0x29')](function(_0x67df4b){var _0x11b20a=_0x67df4b[0x0]===_0x2fc3('0x84')?_0x67df4b[0x0]:'i.'+_0x67df4b[0x0];_0x14d4a3[_0x2fc3('0x83')](_0x11b20a,_0x67df4b[0x1]===_0x2fc3('0x85')?![]:!![]);});}if(!_[_0x2fc3('0x6a')](_0x499933)){_0x14d4a3['having'](_0xc84df1);_0x5e8f08[_0x2fc3('0x3a')](_0x2fc3('0x86'),_0x499933);}BPromise[_0x2fc3('0x87')]()[_0x2fc3('0x2a')](function(){if(!_0x517cd7){if(_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x6b')])return;_0x5e8f08[_0x2fc3('0x3a')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');_0x14d4a3[_0x2fc3('0x3a')](_0x2fc3('0x88'));return;}if(_0xf78558['user'][_0x2fc3('0x89')]!=='agent')return;return _0xf78558[_0x2fc3('0x8a')][_0x2fc3('0x8b')]({'attributes':['id'],'raw':!![]})[_0x2fc3('0x2a')](function(_0x1ac8d9){if(_[_0x2fc3('0x6a')](_0x1ac8d9)){_0x5e8f08['where'](_0x2fc3('0x8c'));_0x14d4a3['where']('i.SmsAccountId\x20IS\x20NULL');}else{_0x5e8f08[_0x2fc3('0x3a')](_0x2fc3('0x6c'),_[_0x2fc3('0x25')](_0x1ac8d9,'id'));_0x14d4a3['where']('i.SmsAccountId\x20IN\x20?',_[_0x2fc3('0x25')](_0x1ac8d9,'id'));}});})['then'](function(){if(_0xf78558[_0x2fc3('0x8a')]['role']===_0x2fc3('0x8d')&&!_0x517cd7&&!_0xf78558[_0x2fc3('0x30')][_0x2fc3('0x6b')])return[];return db[_0x2fc3('0x8e')][_0x2fc3('0x30')](_0x5e8f08[_0x2fc3('0x8f')](),_0x67a64f);})[_0x2fc3('0x2a')](function(_0x19adcd){_0x36ef22[_0x2fc3('0x1f')]=_0x19adcd[_0x2fc3('0x35')];if(_0x36ef22[_0x2fc3('0x1f')]===0x0)return[];return db[_0x2fc3('0x8e')]['query'](_0x1b932b[_0x2fc3('0x8f')](),_0x67a64f)[_0x2fc3('0x2a')](function(_0x574341){_0xd6c383=_['keyBy'](_0x574341,'id');_0x67a64f=_[_0x2fc3('0x90')](_0x67a64f,{'model':db[_0x2fc3('0x2c')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xf78558['query'][_0x2fc3('0x33')]){_0x15e929[_0x2fc3('0x34')][_0x2fc3('0x29')](function(_0x16578c){_0x14d4a3[_0x2fc3('0x3d')]('i.'+_0x16578c);});}else{_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x82'),'unreadMessages');_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x91'),_0x2fc3('0x92'));_0x14d4a3[_0x2fc3('0x3d')]('a.mandatoryDisposition',_0x2fc3('0x93'));_0x14d4a3[_0x2fc3('0x3d')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0x2fc3('0x84'));_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x94'));_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x95'),'Contact.firstName');_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x96'),_0x2fc3('0x97'));_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x98'),_0x2fc3('0x99'));_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x9a'),_0x2fc3('0x9b'));_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x9c'),'Contact.mobile');_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0x9d'),'Contact.fax');_0x14d4a3['field'](_0x2fc3('0x9e'),_0x2fc3('0x9f'));_0x14d4a3['field'](_0x2fc3('0xa0'),'Owner.internal');_0x14d4a3[_0x2fc3('0x3d')](_0x2fc3('0xa1'),'TagIds');}if(_0x15e929[_0x2fc3('0x1d')])_0x14d4a3[_0x2fc3('0x1d')](_0x15e929['limit']);if(_0x15e929[_0x2fc3('0x38')])_0x14d4a3[_0x2fc3('0x38')](_0x15e929[_0x2fc3('0x38')]);return db[_0x2fc3('0x8e')][_0x2fc3('0x30')](_0x14d4a3[_0x2fc3('0x8f')](),_0x67a64f);})[_0x2fc3('0x2a')](function(_0x1031f4){if(_0x1031f4[_0x2fc3('0x35')]>0x0)_0x128b52[_0x2fc3('0x3a')](_0x2fc3('0xa2'),_[_0x2fc3('0x25')](_0x1031f4,'id'));return db[_0x2fc3('0x8e')][_0x2fc3('0x30')](_0x128b52[_0x2fc3('0x8f')](),_0x67a64f)['then'](function(_0x233ccf){var _0x4b5368=_[_0x2fc3('0xa3')](_0x233ccf,'SmsInteractionId');var _0x17a5f0=[];_0x1031f4['forEach'](function(_0x131047){_0x17a5f0[_0x2fc3('0xa4')](updateSmsInteraction(_0x131047,_0xd6c383,_0x4b5368));});return BPromise[_0x2fc3('0xa5')](_0x17a5f0);});});})[_0x2fc3('0x2a')](function(_0x2ef79c){_0x36ef22[_0x2fc3('0xa6')]=_0x2ef79c;return _0x36ef22;})[_0x2fc3('0x2a')](respondWithFilteredResult(_0x4b1195,_0x15e929))[_0x2fc3('0xa7')](handleError(_0x4b1195,null));};exports['show']=function(_0x1947d1,_0x3dc36f){var _0x538d7f={'raw':![],'where':{'id':_0x1947d1['params']['id']}},_0x518c18={};_0x518c18['model']=_[_0x2fc3('0x67')](db[_0x2fc3('0x2c')]['rawAttributes']);_0x518c18['query']=_[_0x2fc3('0x67')](_0x1947d1[_0x2fc3('0x30')]);_0x518c18[_0x2fc3('0x31')]=_[_0x2fc3('0x32')](_0x518c18[_0x2fc3('0x2f')],_0x518c18[_0x2fc3('0x30')]);_0x538d7f['attributes']=_[_0x2fc3('0x32')](_0x518c18['model'],qs[_0x2fc3('0x33')](_0x1947d1[_0x2fc3('0x30')][_0x2fc3('0x33')]));_0x538d7f[_0x2fc3('0x34')]=_0x538d7f[_0x2fc3('0x34')]['length']?_0x538d7f['attributes']:_0x518c18[_0x2fc3('0x2f')];if(_0x1947d1[_0x2fc3('0x30')][_0x2fc3('0xa8')]){_0x538d7f[_0x2fc3('0xa9')]=[{'all':!![]}];}_0x538d7f=_[_0x2fc3('0x90')]({},_0x538d7f,_0x1947d1['options']);return db['SmsInteraction'][_0x2fc3('0x56')](_0x538d7f)[_0x2fc3('0x2a')](handleEntityNotFound(_0x3dc36f,null))[_0x2fc3('0x2a')](respondWithResult(_0x3dc36f,null))[_0x2fc3('0xa7')](handleError(_0x3dc36f,null));};exports[_0x2fc3('0xaa')]=function(_0x3934ce,_0x1e7445){return db[_0x2fc3('0x2c')][_0x2fc3('0xaa')](_0x3934ce['body'],{})[_0x2fc3('0x2a')](respondWithResult(_0x1e7445,0xc9))['catch'](handleError(_0x1e7445,null));};exports[_0x2fc3('0x21')]=function(_0x2a1ea2,_0x48df4f){if(_0x2a1ea2[_0x2fc3('0x66')]['id']){delete _0x2a1ea2[_0x2fc3('0x66')]['id'];}return db[_0x2fc3('0x2c')][_0x2fc3('0x56')]({'where':{'id':_0x2a1ea2[_0x2fc3('0xab')]['id']}})['then'](handleEntityNotFound(_0x48df4f,null))[_0x2fc3('0x2a')](saveUpdates(_0x2a1ea2[_0x2fc3('0x66')],null))['then'](respondWithResult(_0x48df4f,null))[_0x2fc3('0xa7')](handleError(_0x48df4f,null));};exports[_0x2fc3('0xac')]=function(_0x39f2c3,_0x5cecb1){return db['SmsInteraction'][_0x2fc3('0x56')]({'where':{'id':_0x39f2c3[_0x2fc3('0xab')]['id']}})[_0x2fc3('0x2a')](handleEntityNotFound(_0x5cecb1,null))[_0x2fc3('0x2a')](removeEntity(_0x5cecb1,null))[_0x2fc3('0xa7')](handleError(_0x5cecb1,null));};exports[_0x2fc3('0xad')]=function(_0x594642,_0xc7a9aa){return db[_0x2fc3('0x2c')][_0x2fc3('0xad')]()['then'](respondWithResult(_0xc7a9aa,null))['catch'](handleError(_0xc7a9aa,null));};exports[_0x2fc3('0xae')]=function(_0x24e52c,_0x29939b,_0x446f02){return db[_0x2fc3('0xaf')][_0x2fc3('0x56')]({'where':{'id':_0x24e52c[_0x2fc3('0xab')]['id']}})[_0x2fc3('0x2a')](handleEntityNotFound(_0x29939b,null))['then'](function(_0x5d8bba){if(_0x5d8bba){return _0x5d8bba[_0x2fc3('0xae')](_0x24e52c['body'][_0x2fc3('0xb0')],_[_0x2fc3('0xb1')](_0x24e52c['body'],[_0x2fc3('0xb0'),'id'])||{});}})[_0x2fc3('0x2a')](respondWithResult(_0x29939b,null))['catch'](handleError(_0x29939b,null));};exports[_0x2fc3('0xb2')]=function(_0xb2d40f,_0x30cf81,_0x4f7b0e){var _0x3aff4e={'raw':![],'where':{}};var _0x522825={};var _0xec82e2={'count':0x0,'rows':[]};return db[_0x2fc3('0x2c')][_0x2fc3('0xb3')]({'where':{'id':_0xb2d40f[_0x2fc3('0xab')]['id']}})[_0x2fc3('0x2a')](handleEntityNotFound(_0x30cf81,null))[_0x2fc3('0x2a')](function(_0x398840){if(_0x398840){_0x522825[_0x2fc3('0x2f')]=_[_0x2fc3('0x67')](db[_0x2fc3('0xaf')]['rawAttributes']);_0x522825['query']=_['keys'](_0xb2d40f['query']);_0x522825[_0x2fc3('0x31')]=_[_0x2fc3('0x32')](_0x522825[_0x2fc3('0x2f')],_0x522825[_0x2fc3('0x30')]);_0x3aff4e['attributes']=_['intersection'](_0x522825[_0x2fc3('0x2f')],qs[_0x2fc3('0x33')](_0xb2d40f[_0x2fc3('0x30')][_0x2fc3('0x33')]));_0x3aff4e['attributes']=_0x3aff4e[_0x2fc3('0x34')][_0x2fc3('0x35')]?_0x3aff4e[_0x2fc3('0x34')]:_0x522825[_0x2fc3('0x2f')];if(!_0xb2d40f['query'][_0x2fc3('0x36')]('nolimit')){_0x3aff4e['limit']=qs['limit'](_0xb2d40f[_0x2fc3('0x30')][_0x2fc3('0x1d')]);_0x3aff4e['offset']=qs[_0x2fc3('0x38')](_0xb2d40f[_0x2fc3('0x30')]['offset']);}_0x3aff4e[_0x2fc3('0x83')]=qs[_0x2fc3('0x39')](_0xb2d40f[_0x2fc3('0x30')][_0x2fc3('0x39')]);_0x3aff4e[_0x2fc3('0x3a')]=qs[_0x2fc3('0x31')](_[_0x2fc3('0x3b')](_0xb2d40f[_0x2fc3('0x30')],_0x522825[_0x2fc3('0x31')]));_0x3aff4e['where']['SmsInteractionId']=_0x398840['id'];if(_0xb2d40f[_0x2fc3('0x30')][_0x2fc3('0x79')]){_0x3aff4e[_0x2fc3('0x3a')]=_[_0x2fc3('0x90')](_0x3aff4e[_0x2fc3('0x3a')],{'$or':_['map'](_0x3aff4e[_0x2fc3('0x34')],function(_0x4ca0d3){var _0x1ef57a={};_0x1ef57a[_0x4ca0d3]={'$like':'%'+_0xb2d40f[_0x2fc3('0x30')]['filter']+'%'};return _0x1ef57a;})});}if(_0xb2d40f[_0x2fc3('0x30')][_0x2fc3('0x70')]){var _0x383659=_0xb2d40f[_0x2fc3('0x30')]['$gte'][_0x2fc3('0x28')](',');var _0xd6cabc={};_0xd6cabc[_0x383659[0x0]]={'$gte':moment(_0x383659[0x1])[_0x2fc3('0xb4')](_0x2fc3('0xb5'))};_0x3aff4e[_0x2fc3('0x3a')]=_[_0x2fc3('0x90')](_0x3aff4e[_0x2fc3('0x3a')],_0xd6cabc);}_0x3aff4e=_['merge']({},_0x3aff4e,_0xb2d40f[_0x2fc3('0xb6')]);return db['SmsMessage']['count']({'where':_0x3aff4e[_0x2fc3('0x3a')]})[_0x2fc3('0x2a')](function(_0x30607b){_0xec82e2[_0x2fc3('0x1f')]=_0x30607b;if(_0xb2d40f['query'][_0x2fc3('0xa8')]){_0x3aff4e[_0x2fc3('0xa9')]=[{'all':!![]}];}return db[_0x2fc3('0xaf')][_0x2fc3('0xb7')](_0x3aff4e);})[_0x2fc3('0x2a')](function(_0x18821f){_0xec82e2[_0x2fc3('0xa6')]=_0x18821f;return _0xec82e2;});}})[_0x2fc3('0x2a')](respondWithFilteredResult(_0x30cf81,_0x3aff4e))[_0x2fc3('0xa7')](handleError(_0x30cf81,null));};exports[_0x2fc3('0xb8')]=function(_0x5891a4,_0x155dd9,_0xfed744){return db[_0x2fc3('0x2c')][_0x2fc3('0x56')]({'where':{'id':_0x5891a4[_0x2fc3('0xab')]['id']}})[_0x2fc3('0x2a')](handleEntityNotFound(_0x155dd9,null))[_0x2fc3('0x2a')](function(_0x134e8e){if(_0x134e8e){return _0x134e8e[_0x2fc3('0xb9')](_0x5891a4[_0x2fc3('0x66')][_0x2fc3('0xb0')],_[_0x2fc3('0xb1')](_0x5891a4[_0x2fc3('0x66')],[_0x2fc3('0xb0'),'id'])||{})[_0x2fc3('0xba')](function(){return db[_0x2fc3('0x60')][_0x2fc3('0xb7')]({'attributes':['id','name',_0x2fc3('0x3e')],'where':{'id':_0x5891a4[_0x2fc3('0x66')][_0x2fc3('0xb0')]}});})['then'](function(_0x2c8a33){socket[_0x2fc3('0xbb')](_0x2fc3('0xbc'),{'id':Number(_0x5891a4[_0x2fc3('0xab')]['id']),'tags':_0x2c8a33||[]});return{'id':Number(_0x5891a4['params']['id']),'tags':_0x2c8a33||[]};});}})[_0x2fc3('0x2a')](respondWithResult(_0x155dd9,null))[_0x2fc3('0xa7')](handleError(_0x155dd9,null));};exports[_0x2fc3('0xbd')]=function(_0x2f7bab,_0x28a412,_0x4689d1){return db['SmsInteraction']['find']({'where':{'id':_0x2f7bab[_0x2fc3('0xab')]['id']}})[_0x2fc3('0x2a')](handleEntityNotFound(_0x28a412,null))['then'](function(_0x2992a6){if(_0x2992a6){return _0x2992a6[_0x2fc3('0xbd')](_0x2f7bab[_0x2fc3('0x30')][_0x2fc3('0xb0')]);}})[_0x2fc3('0x2a')](respondWithStatusCode(_0x28a412,null))['catch'](handleError(_0x28a412,null));};exports[_0x2fc3('0xbe')]=function(_0x5f4234,_0x5ada47){var _0x5bc5f9=moment()[_0x2fc3('0xbf')]()[_0x2fc3('0x8f')]();var _0x3a797f=path[_0x2fc3('0xc0')](config[_0x2fc3('0xc1')],_0x2fc3('0xc2'),_0x2fc3('0xc3'),_0x2fc3('0xc4'));var _0x1beabf=path[_0x2fc3('0xc0')](config[_0x2fc3('0xc1')],_0x2fc3('0xc2'),_0x2fc3('0xc3'),_0x2fc3('0xc5'));var _0x3deb92=path[_0x2fc3('0xc0')](_0x3a797f,_0x5bc5f9);var _0x9ff1bd=util[_0x2fc3('0xb4')]('transcript-%d-%s.zip',_0x5f4234[_0x2fc3('0xab')]['id'],_0x5bc5f9);var _0x4122a2=path[_0x2fc3('0xc0')](_0x3a797f,_0x9ff1bd);var _0x115ae6=[];_0x115ae6[_0x2fc3('0xa4')]({'model':db['User'],'as':_0x2fc3('0x62'),'attributes':['id','fullname'],'raw':!![]});_0x115ae6[_0x2fc3('0xa4')]({'model':db[_0x2fc3('0xc6')],'as':_0x2fc3('0xc7'),'attributes':['id',_0x2fc3('0xc8'),'lastName'],'raw':!![]});var _0x3d5a27=[{'model':db['SmsMessage'],'as':_0x2fc3('0xc9'),'attributes':['id','body',_0x2fc3('0x6e'),_0x2fc3('0xca'),_0x2fc3('0xcb'),_0x2fc3('0x76')],'include':_0x115ae6}];_0x3d5a27[_0x2fc3('0xa4')]({'model':db['SmsAccount'],'as':_0x2fc3('0xcc'),'attributes':['id',_0x2fc3('0x24')]});_0x3d5a27[_0x2fc3('0xa4')]({'model':db[_0x2fc3('0x62')],'as':_0x2fc3('0xcd'),'attributes':['id',_0x2fc3('0xce')]});return db[_0x2fc3('0x2c')][_0x2fc3('0x56')]({'where':{'id':_0x5f4234[_0x2fc3('0xab')]['id']},'include':_0x3d5a27})[_0x2fc3('0x2a')](handleEntityNotFound(_0x5ada47,null))[_0x2fc3('0x2a')](function(_0x1d7e58){if(_0x1d7e58){var _0x38b0ce=_0x1d7e58[_0x2fc3('0xcf')]({'plain':!![]});fs['mkdirSync'](_0x3deb92);var _0x35e094={'channel':_0x2fc3('0xd0'),'account':_0x38b0ce[_0x2fc3('0xcc')]['name'],'agent':_0x38b0ce[_0x2fc3('0xcd')]?_0x38b0ce[_0x2fc3('0xcd')][_0x2fc3('0xce')]:_0x2fc3('0xd1'),'createdAt':moment(_0x38b0ce[_0x2fc3('0x6e')])[_0x2fc3('0xb4')]('YYYY-MM-DD\x20HH:mm:ss')[_0x2fc3('0x8f')](),'closedAt':_0x38b0ce[_0x2fc3('0xd2')]?moment(_0x38b0ce[_0x2fc3('0xd3')])[_0x2fc3('0xb4')]('YYYY-MM-DD\x20HH:mm:ss')['toString']():'','disposition':_0x38b0ce[_0x2fc3('0xd4')],'messages':_(_0x38b0ce['Messages'])[_0x2fc3('0x79')]({'secret':![]})[_0x2fc3('0x25')](function(_0x13c4c4){return{'date':moment(_0x13c4c4[_0x2fc3('0x6e')])[_0x2fc3('0xb4')](_0x2fc3('0xb5'))[_0x2fc3('0x8f')](),'sender':_0x13c4c4[_0x2fc3('0xca')]==='out'?_0x13c4c4[_0x2fc3('0x62')]?_0x13c4c4[_0x2fc3('0x62')][_0x2fc3('0xce')]:'System':_0x13c4c4['Contact']['firstName']+(_0x13c4c4['Contact'][_0x2fc3('0xd5')]?'\x20'+_0x13c4c4['Contact']['lastName']:''),'body':_0x13c4c4[_0x2fc3('0x66')],'direction':_0x13c4c4['direction']===_0x2fc3('0xd6')?'A':'C','secret':_0x13c4c4[_0x2fc3('0xcb')],'read':_0x13c4c4[_0x2fc3('0x76')]};})['value']()};return ejs[_0x2fc3('0xd7')](path['join'](config[_0x2fc3('0xc1')],'server',_0x2fc3('0xd8'),'downloadInteraction.ejs'),{'interaction':_0x35e094})[_0x2fc3('0x2a')](function(_0xa0e327){var _0x550168=path[_0x2fc3('0xc0')](_0x3deb92,_0x2fc3('0xd9')+_0x38b0ce['id']+'-'+_0x5bc5f9+'.pdf');var _0x48182a={'path':_0x550168,'channel':_0x2fc3('0xd0'),'interactionId':_0x38b0ce['id']};return pdf[_0x2fc3('0xda')](_0xa0e327,_0x48182a);})[_0x2fc3('0x2a')](function(){return new BPromise(function(_0x165ff9,_0x24de01){zipdir(_0x3deb92,{'saveTo':_0x4122a2},function(_0x582d52,_0x109107){if(_0x582d52)return _0x24de01(_0x582d52);return _0x165ff9(_0x109107);});})[_0x2fc3('0x2a')](function(){return new BPromise(function(_0x2998c9,_0x37f070){rimraf(_0x3deb92,function(_0x4529e5){if(_0x4529e5)_0x37f070(_0x4529e5);return _0x2998c9();});});})[_0x2fc3('0x2a')](function(){return _0x5ada47[_0x2fc3('0xbe')](_0x4122a2,_0x9ff1bd,function(_0x1eff63){if(_0x1eff63){console[_0x2fc3('0xdb')](_0x2fc3('0xdc'),_0x1eff63);}else{fs[_0x2fc3('0xdd')](_0x4122a2);}});});});}else{return _0x5ada47['sendStatus'](0xc8);}})[_0x2fc3('0xa7')](handleError(_0x5ada47,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1eba=['remove','getUsers','then','setDataValue','Users','map','findAll','unreadMessages','emit','catch','hasOwnProperty','hook','events','../../mysqldb','SmsInteraction','SmsMessage','update'];(function(_0x3a8695,_0x311d43){var _0x184da3=function(_0xb39902){while(--_0xb39902){_0x3a8695['push'](_0x3a8695['shift']());}};_0x184da3(++_0x311d43);}(_0x1eba,0x1d7));var _0xa1eb=function(_0x460150,_0x232949){_0x460150=_0x460150-0x0;var _0x340677=_0x1eba[_0x460150];return _0x340677;};'use strict';var EventEmitter=require(_0xa1eb('0x0'));var SmsInteraction=require(_0xa1eb('0x1'))['db'][_0xa1eb('0x2')];var SmsMessage=require(_0xa1eb('0x1'))['db'][_0xa1eb('0x3')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0xa1eb('0x4'),'afterDestroy':_0xa1eb('0x5')};function emitEvent(_0x16a13a){return function(_0xf9d704,_0x138789,_0x2933d0){_0xf9d704[_0xa1eb('0x6')]({'attributes':['id'],'raw':!![]})[_0xa1eb('0x7')](function(_0x39a5a3){_0xf9d704[_0xa1eb('0x8')](_0xa1eb('0x9'),_0x39a5a3[_0xa1eb('0xa')](function(_0x54d235){return{'id':_0x54d235['id']};}));return SmsMessage[_0xa1eb('0xb')]({'where':{'SmsInteractionId':_0xf9d704['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x219802){_0xf9d704['setDataValue'](_0xa1eb('0xc'),_0x219802['length']);SmsInteractionEvents[_0xa1eb('0xd')](_0x16a13a+':'+_0xf9d704['id'],_0xf9d704);SmsInteractionEvents['emit'](_0x16a13a,_0xf9d704);_0x2933d0(null);})[_0xa1eb('0xe')](_0x2933d0(null));};}for(var e in events){if(events[_0xa1eb('0xf')](e)){var event=events[e];SmsInteraction[_0xa1eb('0x10')](e,emitEvent(event));}}module['exports']=SmsInteractionEvents;
\ No newline at end of file
+var _0x32b6=['exports','events','../../mysqldb','SmsMessage','update','remove','getUsers','then','setDataValue','map','findAll','length','emit','catch','hasOwnProperty','hook'];(function(_0x54464f,_0x55a93d){var _0x5085b4=function(_0x56f998){while(--_0x56f998){_0x54464f['push'](_0x54464f['shift']());}};_0x5085b4(++_0x55a93d);}(_0x32b6,0x1d1));var _0x632b=function(_0x5eb73e,_0x578679){_0x5eb73e=_0x5eb73e-0x0;var _0x14cd1e=_0x32b6[_0x5eb73e];return _0x14cd1e;};'use strict';var EventEmitter=require(_0x632b('0x0'));var SmsInteraction=require(_0x632b('0x1'))['db']['SmsInteraction'];var SmsMessage=require(_0x632b('0x1'))['db'][_0x632b('0x2')];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x632b('0x3'),'afterDestroy':_0x632b('0x4')};function emitEvent(_0x3ba3a7){return function(_0x3a0e0e,_0x1adfe6,_0x122768){_0x3a0e0e[_0x632b('0x5')]({'attributes':['id'],'raw':!![]})[_0x632b('0x6')](function(_0x3bbf43){_0x3a0e0e[_0x632b('0x7')]('Users',_0x3bbf43[_0x632b('0x8')](function(_0x173270){return{'id':_0x173270['id']};}));return SmsMessage[_0x632b('0x9')]({'where':{'SmsInteractionId':_0x3a0e0e['id'],'direction':'in','read':![]},'raw':!![]});})[_0x632b('0x6')](function(_0x4961b1){_0x3a0e0e['setDataValue']('unreadMessages',_0x4961b1[_0x632b('0xa')]);SmsInteractionEvents['emit'](_0x3ba3a7+':'+_0x3a0e0e['id'],_0x3a0e0e);SmsInteractionEvents[_0x632b('0xb')](_0x3ba3a7,_0x3a0e0e);_0x122768(null);})[_0x632b('0xc')](_0x122768(null));};}for(var e in events){if(events[_0x632b('0xd')](e)){var event=events[e];SmsInteraction[_0x632b('0xe')](e,emitEvent(event));}}module[_0x632b('0xf')]=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebf7=['api','moment','bluebird','request-promise','path','exports','define','changed','closed','closedAt','format','lodash','../../config/logger'];(function(_0xfdbb86,_0x579c94){var _0x69812c=function(_0x36bf97){while(--_0x36bf97){_0xfdbb86['push'](_0xfdbb86['shift']());}};_0x69812c(++_0x579c94);}(_0xebf7,0x143));var _0x7ebf=function(_0x5e9bed,_0x2419c2){_0x5e9bed=_0x5e9bed-0x0;var _0x1574dd=_0xebf7[_0x5e9bed];return _0x1574dd;};'use strict';var _=require(_0x7ebf('0x0'));var util=require('util');var logger=require(_0x7ebf('0x1'))(_0x7ebf('0x2'));var moment=require(_0x7ebf('0x3'));var BPromise=require(_0x7ebf('0x4'));var rp=require(_0x7ebf('0x5'));var fs=require('fs');var path=require(_0x7ebf('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./smsInteraction.attributes');module[_0x7ebf('0x7')]=function(_0x4a9d0e,_0x200431){return _0x4a9d0e[_0x7ebf('0x8')]('SmsInteraction',attributes,{'tableName':'sms_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x228a6a,_0x5c575f,_0x471cb8){if(_0x228a6a[_0x7ebf('0x9')](_0x7ebf('0xa'))){_0x228a6a[_0x7ebf('0xb')]=moment()[_0x7ebf('0xc')]('YYYY-MM-DD\x20HH:mm:ss');}_0x471cb8(null,_0x228a6a);}}});};
\ No newline at end of file
+var _0xb939=['request-promise','path','rimraf','../../config/environment','./smsInteraction.attributes','exports','define','SmsInteraction','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0xa4e24,_0x174458){var _0x98f23a=function(_0xdc012d){while(--_0xdc012d){_0xa4e24['push'](_0xa4e24['shift']());}};_0x98f23a(++_0x174458);}(_0xb939,0x6a));var _0x9b93=function(_0xd473be,_0x1ec762){_0xd473be=_0xd473be-0x0;var _0x106077=_0xb939[_0xd473be];return _0x106077;};'use strict';var _=require(_0x9b93('0x0'));var util=require(_0x9b93('0x1'));var logger=require(_0x9b93('0x2'))(_0x9b93('0x3'));var moment=require(_0x9b93('0x4'));var BPromise=require(_0x9b93('0x5'));var rp=require(_0x9b93('0x6'));var fs=require('fs');var path=require(_0x9b93('0x7'));var rimraf=require(_0x9b93('0x8'));var config=require(_0x9b93('0x9'));var attributes=require(_0x9b93('0xa'));module[_0x9b93('0xb')]=function(_0x228b03,_0x16ebbd){return _0x228b03[_0x9b93('0xc')](_0x9b93('0xd'),attributes,{'tableName':'sms_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3de1c2,_0x176874,_0x457aeb){if(_0x3de1c2['changed']('closed')){_0x3de1c2['closedAt']=moment()[_0x9b93('0xe')](_0x9b93('0xf'));}_0x457aeb(null,_0x3de1c2);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8c2=['error','message','result','SmsInteraction','update','body','options','raw','where','limit','UpdateSmsInteraction','catch','AddTagsToSmsInteraction','ids','AddTags','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','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'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xc8c2,0xd7));var _0x2c8c=function(_0x917400,_0x18c502){_0x917400=_0x917400-0x0;var _0x466e82=_0xc8c2[_0x917400];return _0x466e82;};'use strict';var _=require(_0x2c8c('0x0'));var util=require(_0x2c8c('0x1'));var moment=require(_0x2c8c('0x2'));var BPromise=require(_0x2c8c('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2c8c('0x4'));var db=require(_0x2c8c('0x5'))['db'];var utils=require(_0x2c8c('0x6'));var logger=require(_0x2c8c('0x7'))(_0x2c8c('0x8'));var config=require(_0x2c8c('0x9'));var jayson=require(_0x2c8c('0xa'));var client=jayson['client'][_0x2c8c('0xb')]({'port':0x232a});config[_0x2c8c('0xc')]=_[_0x2c8c('0xd')](config[_0x2c8c('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x2c8c('0xe'))(new Redis(config[_0x2c8c('0xc')]));require(_0x2c8c('0xf'))[_0x2c8c('0x10')](socket);function respondWithRpcPromise(_0x4b7a1d,_0x590176,_0x5193e8){return new BPromise(function(_0x1fc745,_0x2384ce){return client[_0x2c8c('0x11')](_0x4b7a1d,_0x5193e8)[_0x2c8c('0x12')](function(_0x44cbc4){logger[_0x2c8c('0x13')](_0x2c8c('0x14'),_0x590176,_0x2c8c('0x15'));logger[_0x2c8c('0x16')](_0x2c8c('0x17'),_0x590176,_0x2c8c('0x15'),JSON[_0x2c8c('0x18')](_0x44cbc4));if(_0x44cbc4[_0x2c8c('0x19')]){if(_0x44cbc4[_0x2c8c('0x19')]['code']===0x1f4){logger[_0x2c8c('0x19')](_0x2c8c('0x14'),_0x590176,_0x44cbc4['error'][_0x2c8c('0x1a')]);return _0x2384ce(_0x44cbc4[_0x2c8c('0x19')][_0x2c8c('0x1a')]);}logger['error']('SmsInteraction,\x20%s,\x20%s',_0x590176,_0x44cbc4[_0x2c8c('0x19')][_0x2c8c('0x1a')]);return _0x1fc745(_0x44cbc4[_0x2c8c('0x19')][_0x2c8c('0x1a')]);}else{logger['info']('SmsInteraction,\x20%s,\x20%s',_0x590176,_0x2c8c('0x15'));_0x1fc745(_0x44cbc4[_0x2c8c('0x1b')][_0x2c8c('0x1a')]);}})['catch'](function(_0x2f3918){logger[_0x2c8c('0x19')](_0x2c8c('0x14'),_0x590176,_0x2f3918);_0x2384ce(_0x2f3918);});});}exports['UpdateSmsInteraction']=function(_0x2d5390){var _0x4897aa=this;return new Promise(function(_0x58adbd,_0x13c3fd){return db[_0x2c8c('0x1c')][_0x2c8c('0x1d')](_0x2d5390[_0x2c8c('0x1e')],{'raw':_0x2d5390[_0x2c8c('0x1f')]?_0x2d5390['options'][_0x2c8c('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2d5390[_0x2c8c('0x1f')]?_0x2d5390['options'][_0x2c8c('0x21')]||null:null,'attributes':_0x2d5390[_0x2c8c('0x1f')]?_0x2d5390['options']['attributes']||null:null,'limit':_0x2d5390[_0x2c8c('0x1f')]?_0x2d5390[_0x2c8c('0x1f')][_0x2c8c('0x22')]||null:null})['then'](function(_0x221eac){logger[_0x2c8c('0x13')](_0x2c8c('0x23'),_0x2d5390);logger[_0x2c8c('0x16')]('UpdateSmsInteraction',_0x2d5390,JSON['stringify'](_0x221eac));_0x58adbd(_0x221eac);})[_0x2c8c('0x24')](function(_0x597ca1){logger[_0x2c8c('0x19')]('UpdateSmsInteraction',_0x597ca1[_0x2c8c('0x1a')],_0x2d5390);_0x13c3fd(_0x4897aa[_0x2c8c('0x19')](0x1f4,_0x597ca1[_0x2c8c('0x1a')]));});});};exports[_0x2c8c('0x25')]=function(_0x1682a7){return new Promise(function(_0x24b135,_0x161b51){return db['SmsInteraction']['find']({'where':_0x1682a7['options']?_0x1682a7[_0x2c8c('0x1f')]['where']||null:null})[_0x2c8c('0x12')](function(_0x6b4e2f){if(_0x6b4e2f){return _0x6b4e2f['addTags'](_0x1682a7[_0x2c8c('0x1e')]['ids'],_['omit'](_0x1682a7[_0x2c8c('0x1e')],[_0x2c8c('0x26'),'id'])||{});}})['spread'](function(_0x392f19){logger['info'](_0x2c8c('0x27'),_0x1682a7);logger['debug'](_0x2c8c('0x27'),_0x1682a7,JSON['stringify'](_0x392f19));_0x24b135(_0x392f19);})[_0x2c8c('0x24')](function(_0x4dfbf7){logger[_0x2c8c('0x19')](_0x2c8c('0x27'),_0x4dfbf7['message'],_0x1682a7);_0x161b51(_this[_0x2c8c('0x19')](0x1f4,_0x4dfbf7[_0x2c8c('0x1a')]));});});};
\ No newline at end of file
+var _0x12c7=['error','code','message','info','result','catch','UpdateSmsInteraction','SmsInteraction','body','options','raw','where','attributes','AddTagsToSmsInteraction','find','addTags','ids','spread','AddTags','util','moment','bluebird','../../mysqldb','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket','request','then','SmsInteraction,\x20%s,\x20%s','request\x20sent','debug','SmsInteraction,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x36eaaa,_0x326732){var _0x461349=function(_0x4e4180){while(--_0x4e4180){_0x36eaaa['push'](_0x36eaaa['shift']());}};_0x461349(++_0x326732);}(_0x12c7,0x172));var _0x712c=function(_0x1810ac,_0x4e262f){_0x1810ac=_0x1810ac-0x0;var _0x26295c=_0x12c7[_0x1810ac];return _0x26295c;};'use strict';var _=require('lodash');var util=require(_0x712c('0x0'));var moment=require(_0x712c('0x1'));var BPromise=require(_0x712c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x712c('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x712c('0x4'))(_0x712c('0x5'));var config=require(_0x712c('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x712c('0x7')]['http']({'port':0x232a});config[_0x712c('0x8')]=_[_0x712c('0x9')](config[_0x712c('0x8')],{'host':_0x712c('0xa'),'port':0x18eb});var socket=require(_0x712c('0xb'))(new Redis(config[_0x712c('0x8')]));require(_0x712c('0xc'))['register'](socket);function respondWithRpcPromise(_0xcfabbf,_0x1aba8b,_0x5bafc1){return new BPromise(function(_0x506666,_0x39bb19){return client[_0x712c('0xd')](_0xcfabbf,_0x5bafc1)[_0x712c('0xe')](function(_0x1d52ce){logger['info'](_0x712c('0xf'),_0x1aba8b,_0x712c('0x10'));logger[_0x712c('0x11')](_0x712c('0x12'),_0x1aba8b,_0x712c('0x10'),JSON[_0x712c('0x13')](_0x1d52ce));if(_0x1d52ce[_0x712c('0x14')]){if(_0x1d52ce[_0x712c('0x14')][_0x712c('0x15')]===0x1f4){logger[_0x712c('0x14')](_0x712c('0xf'),_0x1aba8b,_0x1d52ce[_0x712c('0x14')][_0x712c('0x16')]);return _0x39bb19(_0x1d52ce['error'][_0x712c('0x16')]);}logger['error'](_0x712c('0xf'),_0x1aba8b,_0x1d52ce['error']['message']);return _0x506666(_0x1d52ce[_0x712c('0x14')][_0x712c('0x16')]);}else{logger[_0x712c('0x17')](_0x712c('0xf'),_0x1aba8b,_0x712c('0x10'));_0x506666(_0x1d52ce[_0x712c('0x18')]['message']);}})[_0x712c('0x19')](function(_0x22004f){logger[_0x712c('0x14')]('SmsInteraction,\x20%s,\x20%s',_0x1aba8b,_0x22004f);_0x39bb19(_0x22004f);});});}exports[_0x712c('0x1a')]=function(_0x1a5906){var _0x5d5712=this;return new Promise(function(_0x187f5a,_0x29a9ec){return db[_0x712c('0x1b')]['update'](_0x1a5906[_0x712c('0x1c')],{'raw':_0x1a5906[_0x712c('0x1d')]?_0x1a5906[_0x712c('0x1d')][_0x712c('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1a5906['options']?_0x1a5906[_0x712c('0x1d')][_0x712c('0x1f')]||null:null,'attributes':_0x1a5906['options']?_0x1a5906[_0x712c('0x1d')][_0x712c('0x20')]||null:null,'limit':_0x1a5906[_0x712c('0x1d')]?_0x1a5906[_0x712c('0x1d')]['limit']||null:null})[_0x712c('0xe')](function(_0x53cbfa){logger[_0x712c('0x17')]('UpdateSmsInteraction',_0x1a5906);logger['debug']('UpdateSmsInteraction',_0x1a5906,JSON[_0x712c('0x13')](_0x53cbfa));_0x187f5a(_0x53cbfa);})[_0x712c('0x19')](function(_0x15414f){logger[_0x712c('0x14')]('UpdateSmsInteraction',_0x15414f[_0x712c('0x16')],_0x1a5906);_0x29a9ec(_0x5d5712[_0x712c('0x14')](0x1f4,_0x15414f[_0x712c('0x16')]));});});};exports[_0x712c('0x21')]=function(_0x301e42){return new Promise(function(_0x1e5ec9,_0x459337){return db['SmsInteraction'][_0x712c('0x22')]({'where':_0x301e42[_0x712c('0x1d')]?_0x301e42[_0x712c('0x1d')][_0x712c('0x1f')]||null:null})['then'](function(_0x56130b){if(_0x56130b){return _0x56130b[_0x712c('0x23')](_0x301e42[_0x712c('0x1c')][_0x712c('0x24')],_['omit'](_0x301e42[_0x712c('0x1c')],[_0x712c('0x24'),'id'])||{});}})[_0x712c('0x25')](function(_0x307928){logger[_0x712c('0x17')]('AddTags',_0x301e42);logger[_0x712c('0x11')](_0x712c('0x26'),_0x301e42,JSON[_0x712c('0x13')](_0x307928));_0x1e5ec9(_0x307928);})[_0x712c('0x19')](function(_0xf54fa8){logger[_0x712c('0x14')](_0x712c('0x26'),_0xf54fa8[_0x712c('0x16')],_0x301e42);_0x459337(_this[_0x712c('0x14')](0x1f4,_0xf54fa8['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf494=['length','./smsInteraction.events','save','remove','update','emit','removeListener','register'];(function(_0x96dfd0,_0x1c5d60){var _0x3512cd=function(_0x36b747){while(--_0x36b747){_0x96dfd0['push'](_0x96dfd0['shift']());}};_0x3512cd(++_0x1c5d60);}(_0xf494,0x1d9));var _0x4f49=function(_0x33a373,_0x296c5d){_0x33a373=_0x33a373-0x0;var _0x1eb767=_0xf494[_0x33a373];return _0x1eb767;};'use strict';var SmsInteractionEvents=require(_0x4f49('0x0'));var events=[_0x4f49('0x1'),_0x4f49('0x2'),_0x4f49('0x3')];function createListener(_0x451696,_0x230c41){return function(_0x1bef8c){_0x230c41[_0x4f49('0x4')](_0x451696,_0x1bef8c);};}function removeListener(_0x1183db,_0x40aa2c){return function(){SmsInteractionEvents[_0x4f49('0x5')](_0x1183db,_0x40aa2c);};}exports[_0x4f49('0x6')]=function(_0x13fa7d){for(var _0x6c17dd=0x0,_0x22f2d7=events[_0x4f49('0x7')];_0x6c17dd<_0x22f2d7;_0x6c17dd++){var _0x3e32ae=events[_0x6c17dd];var _0x4dd0d2=createListener('smsInteraction:'+_0x3e32ae,_0x13fa7d);SmsInteractionEvents['on'](_0x3e32ae,_0x4dd0d2);}};
\ No newline at end of file
+var _0x062c=['remove','update','register','length','smsInteraction:','./smsInteraction.events','save'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x062c,0x163));var _0xc062=function(_0x19abce,_0x150f8b){_0x19abce=_0x19abce-0x0;var _0x124012=_0x062c[_0x19abce];return _0x124012;};'use strict';var SmsInteractionEvents=require(_0xc062('0x0'));var events=[_0xc062('0x1'),_0xc062('0x2'),_0xc062('0x3')];function createListener(_0xb3810d,_0x41a523){return function(_0x1ae64d){_0x41a523['emit'](_0xb3810d,_0x1ae64d);};}function removeListener(_0x24bf75,_0x273242){return function(){SmsInteractionEvents['removeListener'](_0x24bf75,_0x273242);};}exports[_0xc062('0x4')]=function(_0x3ed865){for(var _0x2fe044=0x0,_0x58e2c9=events[_0xc062('0x5')];_0x2fe044<_0x58e2c9;_0x2fe044++){var _0x2faee8=events[_0x2fe044];var _0x47f9a3=createListener(_0xc062('0x6')+_0x2faee8,_0x3ed865);SmsInteractionEvents['on'](_0x2faee8,_0x47f9a3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0082=['fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated','index','/describe','/:id','show','sms','smsmessage:create','post','/:id/status','status','update','put','/:id/accept','/:id/reject','delete','destroy','exports','multer','util','path','connect-timeout','Router'];(function(_0x1b4b23,_0x5dd6d6){var _0x2a325b=function(_0x175462){while(--_0x175462){_0x1b4b23['push'](_0x1b4b23['shift']());}};_0x2a325b(++_0x5dd6d6);}(_0x0082,0x1bd));var _0x2008=function(_0x27f0c0,_0x31c3de){_0x27f0c0=_0x27f0c0-0x0;var _0x3208fe=_0x0082[_0x27f0c0];return _0x3208fe;};'use strict';var multer=require(_0x2008('0x0'));var util=require(_0x2008('0x1'));var path=require(_0x2008('0x2'));var timeout=require(_0x2008('0x3'));var express=require('express');var router=express[_0x2008('0x4')]();var fs_extra=require(_0x2008('0x5'));var auth=require(_0x2008('0x6'));var interaction=require(_0x2008('0x7'));var config=require('../../config/environment');var controller=require('./smsMessage.controller');router['get']('/',auth[_0x2008('0x8')](),controller[_0x2008('0x9')]);router['get'](_0x2008('0xa'),auth[_0x2008('0x8')](),controller['describe']);router['get'](_0x2008('0xb'),auth['isAuthenticated'](),controller[_0x2008('0xc')]);router['post']('/',auth[_0x2008('0x8')](),interaction['tracked'](_0x2008('0xd'),_0x2008('0xe')),controller['create']);router[_0x2008('0xf')](_0x2008('0x10'),controller[_0x2008('0x11')]);router['put'](_0x2008('0xb'),auth['isAuthenticated'](),controller[_0x2008('0x12')]);router[_0x2008('0x13')](_0x2008('0x14'),auth[_0x2008('0x8')](),controller['accept']);router[_0x2008('0x13')](_0x2008('0x15'),auth[_0x2008('0x8')](),controller['reject']);router[_0x2008('0x16')](_0x2008('0xb'),auth[_0x2008('0x8')](),controller[_0x2008('0x17')]);module[_0x2008('0x18')]=router;
\ No newline at end of file
+var _0xc2f2=['get','isAuthenticated','index','describe','/:id','show','post','tracked','/:id/status','status','put','update','/:id/accept','accept','/:id/reject','reject','delete','multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment'];(function(_0x106c82,_0x42f95f){var _0x11ac0d=function(_0x4eab37){while(--_0x4eab37){_0x106c82['push'](_0x106c82['shift']());}};_0x11ac0d(++_0x42f95f);}(_0xc2f2,0xb9));var _0x2c2f=function(_0x52085a,_0x3717ca){_0x52085a=_0x52085a-0x0;var _0x5afc1a=_0xc2f2[_0x52085a];return _0x5afc1a;};'use strict';var multer=require(_0x2c2f('0x0'));var util=require('util');var path=require(_0x2c2f('0x1'));var timeout=require(_0x2c2f('0x2'));var express=require(_0x2c2f('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x2c2f('0x4'));var interaction=require(_0x2c2f('0x5'));var config=require(_0x2c2f('0x6'));var controller=require('./smsMessage.controller');router[_0x2c2f('0x7')]('/',auth[_0x2c2f('0x8')](),controller[_0x2c2f('0x9')]);router['get']('/describe',auth[_0x2c2f('0x8')](),controller[_0x2c2f('0xa')]);router['get'](_0x2c2f('0xb'),auth[_0x2c2f('0x8')](),controller[_0x2c2f('0xc')]);router[_0x2c2f('0xd')]('/',auth[_0x2c2f('0x8')](),interaction[_0x2c2f('0xe')]('sms','smsmessage:create'),controller['create']);router['post'](_0x2c2f('0xf'),controller[_0x2c2f('0x10')]);router[_0x2c2f('0x11')](_0x2c2f('0xb'),auth[_0x2c2f('0x8')](),controller[_0x2c2f('0x12')]);router['put'](_0x2c2f('0x13'),auth[_0x2c2f('0x8')](),controller[_0x2c2f('0x14')]);router[_0x2c2f('0x11')](_0x2c2f('0x15'),auth[_0x2c2f('0x8')](),controller[_0x2c2f('0x16')]);router[_0x2c2f('0x17')](_0x2c2f('0xb'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a33=['DATE','TEXT','medium','BOOLEAN','ENUM','out','STRING'];(function(_0x3bd501,_0x2cdc0e){var _0x12370b=function(_0x3e51d1){while(--_0x3e51d1){_0x3bd501['push'](_0x3bd501['shift']());}};_0x12370b(++_0x2cdc0e);}(_0x6a33,0x9b));var _0x36a3=function(_0x3e44fa,_0x75ed2a){_0x3e44fa=_0x3e44fa-0x0;var _0x2a0aba=_0x6a33[_0x3e44fa];return _0x2a0aba;};'use strict';var Sequelize=require('sequelize');module['exports']={'body':{'type':Sequelize[_0x36a3('0x0')](_0x36a3('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0x36a3('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x36a3('0x3')]('in',_0x36a3('0x4')),'defaultValue':_0x36a3('0x4'),'allowNull':![]},'messageId':{'type':Sequelize[_0x36a3('0x5')](0xbe)},'phone':{'type':Sequelize[_0x36a3('0x5')]},'readAt':{'type':Sequelize[_0x36a3('0x6')]},'secret':{'type':Sequelize[_0x36a3('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x36a3('0x5')]},'providerResponse':{'type':Sequelize[_0x36a3('0x0')]}};
\ No newline at end of file
+var _0x6ede=['BOOLEAN','ENUM','out','STRING','TEXT','exports','medium'];(function(_0x4b4b4e,_0x341f0c){var _0xf1a943=function(_0x36fb59){while(--_0x36fb59){_0x4b4b4e['push'](_0x4b4b4e['shift']());}};_0xf1a943(++_0x341f0c);}(_0x6ede,0x140));var _0xe6ed=function(_0x2d4661,_0x2da65c){_0x2d4661=_0x2d4661-0x0;var _0x42ed1e=_0x6ede[_0x2d4661];return _0x42ed1e;};'use strict';var Sequelize=require('sequelize');module[_0xe6ed('0x0')]={'body':{'type':Sequelize['TEXT'](_0xe6ed('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0xe6ed('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0xe6ed('0x3')]('in',_0xe6ed('0x4')),'defaultValue':_0xe6ed('0x4'),'allowNull':![]},'messageId':{'type':Sequelize[_0xe6ed('0x5')](0xbe)},'phone':{'type':Sequelize[_0xe6ed('0x5')]},'readAt':{'type':Sequelize['DATE']},'secret':{'type':Sequelize[_0xe6ed('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize[_0xe6ed('0x5')]},'providerResponse':{'type':Sequelize[_0xe6ed('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ece=['socket.io-emitter','./smsMessage.socket','register','jayson/promise','client','http','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','sendStatus','status','end','json','offset','undefined','count','limit','set','reject','save','name','index','map','SmsMessage','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','show','params','filters','find','catch','create','update','body','destroy','describe','sms-interactions','accept','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','SmsInteraction','SmsInteractionId','isNil','interaction','[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','User','fullname','email','internal','manual','interface','SIP/%s','channel','motionChannel','EventManager','acceptmessage','../../config/logger','null','RejectMessage','rejectMessage','ContactId','contact','event','rejectmessage','SmsAccount','debug','received\x20delivery\x20report\x20from','inspect','twilio','SmsAccount,\x20%s,\x20%s,\x20%s','MessageUUID','indexOf','sent','delivered','plivio','infobip','results','groupName','DELIVERED','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost'];(function(_0x2135e6,_0x462678){var _0x4a6399=function(_0x5f3fbb){while(--_0x5f3fbb){_0x2135e6['push'](_0x2135e6['shift']());}};_0x4a6399(++_0x462678);}(_0x3ece,0x10e));var _0xe3ec=function(_0x2efc9e,_0x58f425){_0x2efc9e=_0x2efc9e-0x0;var _0x3222f6=_0x3ece[_0x2efc9e];return _0x3222f6;};'use strict';var emlformat=require(_0xe3ec('0x0'));var rimraf=require(_0xe3ec('0x1'));var zipdir=require(_0xe3ec('0x2'));var jsonpatch=require(_0xe3ec('0x3'));var rp=require('request-promise');var moment=require(_0xe3ec('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe3ec('0x5'));var util=require(_0xe3ec('0x6'));var path=require('path');var sox=require(_0xe3ec('0x7'));var csv=require('to-csv');var ejs=require(_0xe3ec('0x8'));var fs=require('fs');var fs_extra=require(_0xe3ec('0x9'));var _=require(_0xe3ec('0xa'));var squel=require('squel');var crypto=require(_0xe3ec('0xb'));var jsforce=require(_0xe3ec('0xc'));var deskjs=require(_0xe3ec('0xd'));var toCsv=require(_0xe3ec('0xe'));var querystring=require(_0xe3ec('0xf'));var Papa=require(_0xe3ec('0x10'));var Redis=require(_0xe3ec('0x11'));var authService=require(_0xe3ec('0x12'));var qs=require(_0xe3ec('0x13'));var as=require(_0xe3ec('0x14'));var hardwareService=require(_0xe3ec('0x15'));var logger=require('../../config/logger')(_0xe3ec('0x16'));var utils=require(_0xe3ec('0x17'));var config=require(_0xe3ec('0x18'));var licenseUtil=require(_0xe3ec('0x19'));var db=require(_0xe3ec('0x1a'))['db'];config[_0xe3ec('0x1b')]=_[_0xe3ec('0x1c')](config['redis'],{'host':_0xe3ec('0x1d'),'port':0x18eb});var socket=require(_0xe3ec('0x1e'))(new Redis(config['redis']));require(_0xe3ec('0x1f'))[_0xe3ec('0x20')](socket);var jayson=require(_0xe3ec('0x21'));var client=jayson[_0xe3ec('0x22')][_0xe3ec('0x23')]({'port':0x232c});var client9002=jayson[_0xe3ec('0x22')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2186f1,_0x227c98,_0x43dbac,_0x31919a){return new BPromise(function(_0x5b5ab5,_0x2531e9){var _0x2ee3ed=_0x31919a||client;return _0x2ee3ed[_0xe3ec('0x24')](_0x2186f1,_0x43dbac)[_0xe3ec('0x25')](function(_0x4a3b34){logger[_0xe3ec('0x26')](_0xe3ec('0x27'),_0x227c98,_0xe3ec('0x28'));logger['debug'](_0xe3ec('0x29'),_0x227c98,'request\x20sent',JSON[_0xe3ec('0x2a')](_0x4a3b34));if(_0x4a3b34[_0xe3ec('0x2b')]){if(_0x4a3b34['error'][_0xe3ec('0x2c')]===0x1f4){logger[_0xe3ec('0x2b')](_0xe3ec('0x27'),_0x227c98,_0x4a3b34[_0xe3ec('0x2b')][_0xe3ec('0x2d')]);return _0x2531e9(_0x4a3b34[_0xe3ec('0x2b')][_0xe3ec('0x2d')]);}logger['error'](_0xe3ec('0x27'),_0x227c98,_0x4a3b34[_0xe3ec('0x2b')][_0xe3ec('0x2d')]);return _0x5b5ab5(_0x4a3b34[_0xe3ec('0x2b')][_0xe3ec('0x2d')]);}else{logger[_0xe3ec('0x26')](_0xe3ec('0x27'),_0x227c98,'request\x20sent');_0x5b5ab5(_0x4a3b34['result']['message']);}})['catch'](function(_0x56ebfa){logger[_0xe3ec('0x2b')]('SmsMessage,\x20%s,\x20%s',_0x227c98,_0x56ebfa);_0x2531e9(_0x56ebfa);});});}function respondWithStatusCode(_0x4ab100,_0x45a2a6){_0x45a2a6=_0x45a2a6||0xcc;return function(_0x1cd0f3){if(_0x1cd0f3){return _0x4ab100[_0xe3ec('0x2e')](_0x45a2a6);}return _0x4ab100[_0xe3ec('0x2f')](_0x45a2a6)[_0xe3ec('0x30')]();};}function respondWithResult(_0x5e86e6,_0x5e62ca){_0x5e62ca=_0x5e62ca||0xc8;return function(_0x1234e4){if(_0x1234e4){return _0x5e86e6[_0xe3ec('0x2f')](_0x5e62ca)[_0xe3ec('0x31')](_0x1234e4);}};}function respondWithFilteredResult(_0x23533e,_0x20401d){return function(_0x1548d9){if(_0x1548d9){var _0xd40d27=typeof _0x20401d[_0xe3ec('0x32')]===_0xe3ec('0x33')&&typeof _0x20401d['limit']===_0xe3ec('0x33');var _0x3593ad=_0x1548d9['count'];var _0x5a6c7e=_0xd40d27?0x0:_0x20401d['offset'];var _0x322886=_0xd40d27?_0x1548d9[_0xe3ec('0x34')]:_0x20401d[_0xe3ec('0x32')]+_0x20401d[_0xe3ec('0x35')];var _0x45aad1;if(_0x322886>=_0x3593ad){_0x322886=_0x3593ad;_0x45aad1=0xc8;}else{_0x45aad1=0xce;}_0x23533e[_0xe3ec('0x2f')](_0x45aad1);return _0x23533e[_0xe3ec('0x36')]('Content-Range',_0x5a6c7e+'-'+_0x322886+'/'+_0x3593ad)['json'](_0x1548d9);}return null;};}function patchUpdates(_0x104af1){return function(_0x468b27){try{jsonpatch['apply'](_0x468b27,_0x104af1,!![]);}catch(_0x1f8d2a){return BPromise[_0xe3ec('0x37')](_0x1f8d2a);}return _0x468b27[_0xe3ec('0x38')]();};}function saveUpdates(_0x410d0e,_0x24ee7e){return function(_0x49c330){if(_0x49c330){return _0x49c330['update'](_0x410d0e)[_0xe3ec('0x25')](function(_0x17c675){return _0x17c675;});}return null;};}function removeEntity(_0x477078,_0x35afa6){return function(_0x5c28bc){if(_0x5c28bc){return _0x5c28bc['destroy']()[_0xe3ec('0x25')](function(){_0x477078[_0xe3ec('0x2f')](0xcc)[_0xe3ec('0x30')]();});}};}function handleEntityNotFound(_0x4b613a,_0x380182){return function(_0x5c4168){if(!_0x5c4168){_0x4b613a['sendStatus'](0x194);}return _0x5c4168;};}function handleError(_0x1d6fea,_0x31defd){_0x31defd=_0x31defd||0x1f4;return function(_0x59a25d){logger[_0xe3ec('0x2b')](_0x59a25d['stack']);if(_0x59a25d[_0xe3ec('0x39')]){delete _0x59a25d['name'];}_0x1d6fea['status'](_0x31defd)['send'](_0x59a25d);};}exports[_0xe3ec('0x3a')]=function(_0x2ac2a0,_0x5ca067){var _0x2822ff={},_0x3fea42={},_0x1bc209={'count':0x0,'rows':[]};var _0x3aa397=_[_0xe3ec('0x3b')](db[_0xe3ec('0x3c')][_0xe3ec('0x3d')],function(_0x5e6015){return{'name':_0x5e6015[_0xe3ec('0x3e')],'type':_0x5e6015[_0xe3ec('0x3f')][_0xe3ec('0x40')]};});_0x3fea42[_0xe3ec('0x41')]=_[_0xe3ec('0x3b')](_0x3aa397,_0xe3ec('0x39'));_0x3fea42['query']=_[_0xe3ec('0x42')](_0x2ac2a0[_0xe3ec('0x43')]);_0x3fea42['filters']=_[_0xe3ec('0x44')](_0x3fea42['model'],_0x3fea42[_0xe3ec('0x43')]);_0x2822ff[_0xe3ec('0x45')]=_[_0xe3ec('0x44')](_0x3fea42[_0xe3ec('0x41')],qs[_0xe3ec('0x46')](_0x2ac2a0[_0xe3ec('0x43')][_0xe3ec('0x46')]));_0x2822ff['attributes']=_0x2822ff['attributes'][_0xe3ec('0x47')]?_0x2822ff[_0xe3ec('0x45')]:_0x3fea42[_0xe3ec('0x41')];if(!_0x2ac2a0[_0xe3ec('0x43')][_0xe3ec('0x48')](_0xe3ec('0x49'))){_0x2822ff[_0xe3ec('0x35')]=qs[_0xe3ec('0x35')](_0x2ac2a0['query']['limit']);_0x2822ff[_0xe3ec('0x32')]=qs[_0xe3ec('0x32')](_0x2ac2a0[_0xe3ec('0x43')][_0xe3ec('0x32')]);}_0x2822ff[_0xe3ec('0x4a')]=qs[_0xe3ec('0x4b')](_0x2ac2a0[_0xe3ec('0x43')]['sort']);_0x2822ff[_0xe3ec('0x4c')]=qs['filters'](_[_0xe3ec('0x4d')](_0x2ac2a0[_0xe3ec('0x43')],_0x3fea42['filters']),_0x3aa397);if(_0x2ac2a0[_0xe3ec('0x43')][_0xe3ec('0x4e')]){_0x2822ff['where']=_[_0xe3ec('0x4f')](_0x2822ff[_0xe3ec('0x4c')],{'$or':_[_0xe3ec('0x3b')](_0x3aa397,function(_0x5996b4){if(_0x5996b4[_0xe3ec('0x3f')]!=='VIRTUAL'){var _0x21ef62={};_0x21ef62[_0x5996b4['name']]={'$like':'%'+_0x2ac2a0[_0xe3ec('0x43')]['filter']+'%'};return _0x21ef62;}})});}_0x2822ff=_[_0xe3ec('0x4f')]({},_0x2822ff,_0x2ac2a0[_0xe3ec('0x50')]);var _0x159476={'where':_0x2822ff[_0xe3ec('0x4c')]};return db[_0xe3ec('0x3c')][_0xe3ec('0x34')](_0x159476)[_0xe3ec('0x25')](function(_0x16a68a){_0x1bc209[_0xe3ec('0x34')]=_0x16a68a;if(_0x2ac2a0[_0xe3ec('0x43')][_0xe3ec('0x51')]){_0x2822ff[_0xe3ec('0x52')]=[{'all':!![]}];}return db[_0xe3ec('0x3c')][_0xe3ec('0x53')](_0x2822ff);})['then'](function(_0x3fc096){_0x1bc209['rows']=_0x3fc096;return _0x1bc209;})[_0xe3ec('0x25')](respondWithFilteredResult(_0x5ca067,_0x2822ff))['catch'](handleError(_0x5ca067,null));};exports[_0xe3ec('0x54')]=function(_0x327e1f,_0x579a9d){var _0x50eb1b={'raw':!![],'where':{'id':_0x327e1f[_0xe3ec('0x55')]['id']}},_0x3c1074={};_0x3c1074['model']=_['keys'](db[_0xe3ec('0x3c')]['rawAttributes']);_0x3c1074[_0xe3ec('0x43')]=_[_0xe3ec('0x42')](_0x327e1f[_0xe3ec('0x43')]);_0x3c1074[_0xe3ec('0x56')]=_[_0xe3ec('0x44')](_0x3c1074[_0xe3ec('0x41')],_0x3c1074[_0xe3ec('0x43')]);_0x50eb1b['attributes']=_[_0xe3ec('0x44')](_0x3c1074[_0xe3ec('0x41')],qs[_0xe3ec('0x46')](_0x327e1f[_0xe3ec('0x43')][_0xe3ec('0x46')]));_0x50eb1b['attributes']=_0x50eb1b[_0xe3ec('0x45')][_0xe3ec('0x47')]?_0x50eb1b[_0xe3ec('0x45')]:_0x3c1074[_0xe3ec('0x41')];if(_0x327e1f['query']['includeAll']){_0x50eb1b['include']=[{'all':!![]}];}_0x50eb1b=_[_0xe3ec('0x4f')]({},_0x50eb1b,_0x327e1f[_0xe3ec('0x50')]);return db[_0xe3ec('0x3c')][_0xe3ec('0x57')](_0x50eb1b)['then'](handleEntityNotFound(_0x579a9d,null))[_0xe3ec('0x25')](respondWithResult(_0x579a9d,null))[_0xe3ec('0x58')](handleError(_0x579a9d,null));};exports[_0xe3ec('0x59')]=function(_0x224133,_0x2fd09f){return db[_0xe3ec('0x3c')][_0xe3ec('0x59')](_0x224133['body'],{})[_0xe3ec('0x25')](respondWithResult(_0x2fd09f,0xc9))['catch'](handleError(_0x2fd09f,null));};exports[_0xe3ec('0x5a')]=function(_0x4e070a,_0x1641d6){if(_0x4e070a[_0xe3ec('0x5b')]['id']){delete _0x4e070a['body']['id'];}return db[_0xe3ec('0x3c')][_0xe3ec('0x57')]({'where':{'id':_0x4e070a[_0xe3ec('0x55')]['id']}})[_0xe3ec('0x25')](handleEntityNotFound(_0x1641d6,null))[_0xe3ec('0x25')](saveUpdates(_0x4e070a['body'],null))[_0xe3ec('0x25')](respondWithResult(_0x1641d6,null))[_0xe3ec('0x58')](handleError(_0x1641d6,null));};exports[_0xe3ec('0x5c')]=function(_0xae2fc5,_0x3992c3){return db['SmsMessage'][_0xe3ec('0x57')]({'where':{'id':_0xae2fc5[_0xe3ec('0x55')]['id']}})[_0xe3ec('0x25')](handleEntityNotFound(_0x3992c3,null))[_0xe3ec('0x25')](removeEntity(_0x3992c3,null))[_0xe3ec('0x58')](handleError(_0x3992c3,null));};exports[_0xe3ec('0x5d')]=function(_0x9e939d,_0x16c93a){return db[_0xe3ec('0x3c')][_0xe3ec('0x5d')]()[_0xe3ec('0x25')](respondWithResult(_0x16c93a,null))[_0xe3ec('0x58')](handleError(_0x16c93a,null));};var interaction_log=require('../../config/logger')(_0xe3ec('0x5e'));exports[_0xe3ec('0x5f')]=function(_0x10cb62,_0x143429,_0xc2b120){var _0x5ac596={'agent':{},'channel':'sms'};if(_0x10cb62[_0xe3ec('0x5b')]['id']){delete _0x10cb62[_0xe3ec('0x5b')]['id'];}_0x10cb62[_0xe3ec('0x5b')][_0xe3ec('0x60')]=!![];_0x10cb62[_0xe3ec('0x5b')][_0xe3ec('0x61')]=moment()[_0xe3ec('0x62')](_0xe3ec('0x63'));_0x10cb62[_0xe3ec('0x5b')]['UserId']=_0x10cb62[_0xe3ec('0x5b')][_0xe3ec('0x64')]||_0x10cb62[_0xe3ec('0x65')]['id'];_0x5ac596[_0xe3ec('0x66')]['id']=_0x10cb62['body'][_0xe3ec('0x64')];return db['SmsMessage']['find']({'where':{'id':_0x10cb62[_0xe3ec('0x55')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x143429,null))[_0xe3ec('0x25')](saveUpdates(_0x10cb62[_0xe3ec('0x5b')],null))[_0xe3ec('0x25')](function(_0x50ad27){if(_0x50ad27){_0x5ac596[_0xe3ec('0x2d')]=_0x50ad27[_0xe3ec('0x67')]({'plain':!![]});return db[_0xe3ec('0x68')]['find']({'where':{'id':_0x50ad27[_0xe3ec('0x69')]}});}return null;})[_0xe3ec('0x25')](handleEntityNotFound(_0x143429,null))[_0xe3ec('0x25')](function(_0x101a19){if(_0x101a19){return _0x101a19['update']({'UserId':_0x10cb62[_0xe3ec('0x5b')][_0xe3ec('0x64')],'read1stAt':_[_0xe3ec('0x6a')](_0x101a19['read1stAt'])?moment()[_0xe3ec('0x62')](_0xe3ec('0x63')):undefined});}return null;})[_0xe3ec('0x25')](function(_0x4f6dc3){if(_0x4f6dc3){_0x5ac596[_0xe3ec('0x6b')]=_0x4f6dc3['get']({'plain':!![]});interaction_log[_0xe3ec('0x26')](_0xe3ec('0x6c'),_0x10cb62[_0xe3ec('0x65')]['id'],_0x10cb62[_0xe3ec('0x65')][_0xe3ec('0x39')],_0x10cb62['user'][_0xe3ec('0x6d')],_0x5ac596[_0xe3ec('0x6b')]['id'],_0x10cb62[_0xe3ec('0x5b')]?JSON['stringify'](_0x10cb62['body']):'null');return respondWithRpcPromise(_0xe3ec('0x6e'),_0xe3ec('0x6f'),_0x5ac596);}return null;})[_0xe3ec('0x25')](function(_0x1188bd){var _0x2413d5=_0xe3ec('0x70')+_0x1188bd[_0xe3ec('0x2d')]['ContactId'];return db[_0xe3ec('0x71')][_0xe3ec('0x43')](_0x2413d5,{'type':db[_0xe3ec('0x72')][_0xe3ec('0x73')]['SELECT'],'raw':!![]})['then'](function(_0x1fa906){return _0x1fa906;});})[_0xe3ec('0x25')](function(_0x5c2fd0){if(_0x5c2fd0){_0x5ac596[_0xe3ec('0x2d')]['contact']=_0x5c2fd0[0x0];if(!_0x10cb62[_0xe3ec('0x5b')]['UserId'])return;return db[_0xe3ec('0x74')]['find']({'where':{'id':_0x10cb62[_0xe3ec('0x5b')][_0xe3ec('0x64')],'role':_0xe3ec('0x66')},'attributes':['id',_0xe3ec('0x39'),_0xe3ec('0x75'),_0xe3ec('0x76'),_0xe3ec('0x77')],'raw':!![]});}return null;})['then'](function(_0x2912e7){if(!_0x2912e7)return null;_0x5ac596[_0xe3ec('0x2d')]['agent']=_0x2912e7;return _0x5ac596;})[_0xe3ec('0x25')](function(_0x3851df){if(_0x3851df){if(_0x10cb62['body'][_0xe3ec('0x78')]){_0x5ac596[_0xe3ec('0x2d')][_0xe3ec('0x79')]=util[_0xe3ec('0x62')](_0xe3ec('0x7a'),_0x10cb62[_0xe3ec('0x65')][_0xe3ec('0x39')]);_0x5ac596[_0xe3ec('0x2d')][_0xe3ec('0x7b')]=_0x5ac596[_0xe3ec('0x7b')];_0x5ac596['message'][_0xe3ec('0x7c')]=_0x5ac596['channel'];_0x5ac596['message']['event']='accept';return respondWithRpcPromise(_0xe3ec('0x7d'),_0xe3ec('0x7d'),{'event':_0xe3ec('0x7e'),'message':_0x5ac596[_0xe3ec('0x2d')]},client9002)['then'](function(){return _0x5ac596;});}return _0x5ac596;}return null;})['then'](respondWithResult(_0x143429,null))[_0xe3ec('0x58')](handleError(_0x143429,null));};var interaction_log=require(_0xe3ec('0x7f'))(_0xe3ec('0x5e'));exports[_0xe3ec('0x37')]=function(_0x564173,_0x226989,_0x3ecef5){var _0xe2640b={'agent':{},'channel':'sms'};if(_0x564173[_0xe3ec('0x5b')]['id']){delete _0x564173['body']['id'];}_0x564173[_0xe3ec('0x5b')][_0xe3ec('0x64')]=_0x564173[_0xe3ec('0x5b')][_0xe3ec('0x64')]||_0x564173[_0xe3ec('0x65')]['id'];_0xe2640b[_0xe3ec('0x66')]['id']=_0x564173[_0xe3ec('0x5b')][_0xe3ec('0x64')];return db['SmsMessage'][_0xe3ec('0x57')]({'where':{'id':_0x564173[_0xe3ec('0x55')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x226989,null))[_0xe3ec('0x25')](function(_0x51e5cd){if(_0x51e5cd){_0xe2640b['message']=_0x51e5cd['get']({'plain':!![]});return db[_0xe3ec('0x68')][_0xe3ec('0x57')]({'where':{'id':_0x51e5cd[_0xe3ec('0x69')]}});}return null;})[_0xe3ec('0x25')](handleEntityNotFound(_0x226989,null))['then'](function(_0x402c5c){if(_0x402c5c){_0xe2640b[_0xe3ec('0x6b')]=_0x402c5c[_0xe3ec('0x67')]({'plain':!![]});interaction_log[_0xe3ec('0x26')]('[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x564173[_0xe3ec('0x65')]['id'],_0x564173[_0xe3ec('0x65')][_0xe3ec('0x39')],_0x564173[_0xe3ec('0x65')]['role'],_0xe2640b[_0xe3ec('0x6b')]['id'],_0x564173[_0xe3ec('0x5b')]?JSON[_0xe3ec('0x2a')](_0x564173[_0xe3ec('0x5b')]):_0xe3ec('0x80'));return respondWithRpcPromise(_0xe3ec('0x81'),_0xe3ec('0x82'),_0xe2640b);}return null;})[_0xe3ec('0x25')](function(_0x2a9ea7){var _0x1d6cb3='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2a9ea7[_0xe3ec('0x2d')][_0xe3ec('0x83')];return db[_0xe3ec('0x71')]['query'](_0x1d6cb3,{'type':db['Sequelize'][_0xe3ec('0x73')]['SELECT'],'raw':!![]})[_0xe3ec('0x25')](function(_0x5c7d67){return _0x5c7d67;});})[_0xe3ec('0x25')](function(_0x42c95f){if(_0x42c95f){_0xe2640b['message'][_0xe3ec('0x84')]=_0x42c95f[0x0];if(!_0x564173[_0xe3ec('0x5b')]['UserId'])return;return db[_0xe3ec('0x74')][_0xe3ec('0x57')]({'where':{'id':_0x564173[_0xe3ec('0x5b')]['UserId'],'role':_0xe3ec('0x66')},'attributes':['id',_0xe3ec('0x39'),_0xe3ec('0x75'),_0xe3ec('0x76'),_0xe3ec('0x77')],'raw':!![]});}return null;})['then'](function(_0x24a23e){if(!_0x24a23e)return null;_0xe2640b[_0xe3ec('0x2d')][_0xe3ec('0x66')]=_0x24a23e;return _0xe2640b;})[_0xe3ec('0x25')](function(_0x201a46){if(_0x201a46){_0x201a46['message'][_0xe3ec('0x79')]=util['format'](_0xe3ec('0x7a'),_0x564173[_0xe3ec('0x65')][_0xe3ec('0x39')]);_0x201a46['message'][_0xe3ec('0x7b')]=_0xe2640b[_0xe3ec('0x7b')];_0x201a46[_0xe3ec('0x2d')][_0xe3ec('0x7c')]=_0xe2640b[_0xe3ec('0x7b')];_0x201a46['message'][_0xe3ec('0x85')]=_0xe3ec('0x37');respondWithRpcPromise('EventManager',_0xe3ec('0x7d'),{'event':_0xe3ec('0x86'),'message':_0x201a46['message']},client9002);return _0xe2640b;}return null;})[_0xe3ec('0x25')](respondWithResult(_0x226989,null))['catch'](handleError(_0x226989,null));};exports[_0xe3ec('0x2f')]=function(_0x35248f,_0x204579,_0x594bd8){if(_0x35248f['body']['id']){delete _0x35248f[_0xe3ec('0x5b')]['id'];}var _0x5bda6f;return db[_0xe3ec('0x3c')][_0xe3ec('0x57')]({'where':{'id':_0x35248f[_0xe3ec('0x55')]['id']}})[_0xe3ec('0x25')](handleEntityNotFound(_0x204579,null))['then'](function(_0x11977e){if(_0x11977e){_0x5bda6f=_0x11977e;return db[_0xe3ec('0x87')][_0xe3ec('0x57')]({'where':{'id':_0x11977e['SmsAccountId']}});}})[_0xe3ec('0x25')](handleEntityNotFound(_0x204579,null))[_0xe3ec('0x25')](function(_0x1376a5){if(_0x1376a5){logger[_0xe3ec('0x88')](_0xe3ec('0x29'),_0xe3ec('0x2f'),_0xe3ec('0x89'),_0x1376a5[_0xe3ec('0x3f')],util[_0xe3ec('0x8a')](_0x35248f['body'],{'showHidden':![],'depth':null}));switch(_0x1376a5[_0xe3ec('0x3f')]){case _0xe3ec('0x8b'):if(_0x35248f[_0xe3ec('0x5b')]['MessageSid']&&_0x35248f[_0xe3ec('0x5b')]['MessageSid']===_0x5bda6f['messageId']){return _0x5bda6f[_0xe3ec('0x5a')]({'read':!![]});}else{logger[_0xe3ec('0x2b')](_0xe3ec('0x8c'),_0xe3ec('0x2f'),_0xe3ec('0x8b'),util['inspect'](_0x35248f[_0xe3ec('0x5b')],{'showHidden':![],'depth':null}));}break;case'plivo':if(_0x35248f[_0xe3ec('0x5b')][_0xe3ec('0x8d')]&&_0x35248f['body']['MessageUUID']===_0x5bda6f['messageId']&&_[_0xe3ec('0x8e')]([_0xe3ec('0x8f'),_0xe3ec('0x90')],_0x35248f['body']['Status'])>=0x0){return _0x5bda6f[_0xe3ec('0x5a')]({'read':!![]});}else{logger[_0xe3ec('0x2b')](_0xe3ec('0x8c'),_0xe3ec('0x2f'),_0xe3ec('0x91'),util[_0xe3ec('0x8a')](_0x35248f[_0xe3ec('0x5b')],{'showHidden':![],'depth':null}));}break;case _0xe3ec('0x92'):var _0x53c220=_0x35248f[_0xe3ec('0x5b')][_0xe3ec('0x93')][0x0];if(_0x53c220[_0xe3ec('0x2f')][_0xe3ec('0x94')]===_0xe3ec('0x95')){return _0x5bda6f['update']({'read':!![]});}else{logger[_0xe3ec('0x2b')](_0xe3ec('0x8c'),_0xe3ec('0x2f'),'infobip',util['inspect'](_0x35248f[_0xe3ec('0x5b')],{'showHidden':![],'depth':null}));}break;}return _0x5bda6f;}})[_0xe3ec('0x25')](respondWithResult(_0x204579,null))[_0xe3ec('0x58')](handleError(_0x204579,null));};
\ No newline at end of file
+var _0xd39c=['role','RejectMessage','rejectMessage','ContactId','email','rejectmessage','SmsAccount','SmsAccountId','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','plivo','MessageUUID','indexOf','sent','delivered','Status','SmsAccount,\x20%s,\x20%s,\x20%s','plivio','infobip','groupName','DELIVERED','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','redis','./smsMessage.socket','client','http','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','stack','name','send','map','SmsMessage','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','merge','VIRTUAL','filter','include','findAll','keys','includeAll','options','body','find','params','destroy','describe','sms-interactions','accept','sms','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','SmsInteraction','SmsInteractionId','isNil','read1stAt','format','interaction','get','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','User','fullname','internal','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s'];(function(_0x2aaead,_0x5dd654){var _0x1b92a1=function(_0x237ae9){while(--_0x237ae9){_0x2aaead['push'](_0x2aaead['shift']());}};_0x1b92a1(++_0x5dd654);}(_0xd39c,0x136));var _0xcd39=function(_0x4cc647,_0x2e85cd){_0x4cc647=_0x4cc647-0x0;var _0x134bc1=_0xd39c[_0x4cc647];return _0x134bc1;};'use strict';var emlformat=require(_0xcd39('0x0'));var rimraf=require(_0xcd39('0x1'));var zipdir=require(_0xcd39('0x2'));var jsonpatch=require(_0xcd39('0x3'));var rp=require('request-promise');var moment=require(_0xcd39('0x4'));var BPromise=require(_0xcd39('0x5'));var Mustache=require(_0xcd39('0x6'));var util=require('util');var path=require('path');var sox=require(_0xcd39('0x7'));var csv=require(_0xcd39('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xcd39('0x9'));var _=require(_0xcd39('0xa'));var squel=require(_0xcd39('0xb'));var crypto=require(_0xcd39('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xcd39('0xd'));var toCsv=require(_0xcd39('0x8'));var querystring=require(_0xcd39('0xe'));var Papa=require(_0xcd39('0xf'));var Redis=require(_0xcd39('0x10'));var authService=require(_0xcd39('0x11'));var qs=require(_0xcd39('0x12'));var as=require(_0xcd39('0x13'));var hardwareService=require(_0xcd39('0x14'));var logger=require(_0xcd39('0x15'))(_0xcd39('0x16'));var utils=require('../../config/utils');var config=require(_0xcd39('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xcd39('0x18')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xcd39('0x19'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0xcd39('0x1a')]['http']({'port':0x232c});var client9002=jayson[_0xcd39('0x1a')][_0xcd39('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x3eaa25,_0x35781e,_0x4ae694,_0x462985){return new BPromise(function(_0xb5cbfd,_0x4833e5){var _0x2f65b0=_0x462985||client;return _0x2f65b0['request'](_0x3eaa25,_0x4ae694)[_0xcd39('0x1c')](function(_0x384caf){logger[_0xcd39('0x1d')](_0xcd39('0x1e'),_0x35781e,_0xcd39('0x1f'));logger[_0xcd39('0x20')](_0xcd39('0x21'),_0x35781e,_0xcd39('0x1f'),JSON[_0xcd39('0x22')](_0x384caf));if(_0x384caf[_0xcd39('0x23')]){if(_0x384caf[_0xcd39('0x23')][_0xcd39('0x24')]===0x1f4){logger[_0xcd39('0x23')](_0xcd39('0x1e'),_0x35781e,_0x384caf[_0xcd39('0x23')]['message']);return _0x4833e5(_0x384caf[_0xcd39('0x23')][_0xcd39('0x25')]);}logger['error'](_0xcd39('0x1e'),_0x35781e,_0x384caf[_0xcd39('0x23')][_0xcd39('0x25')]);return _0xb5cbfd(_0x384caf['error']['message']);}else{logger[_0xcd39('0x1d')](_0xcd39('0x1e'),_0x35781e,_0xcd39('0x1f'));_0xb5cbfd(_0x384caf['result'][_0xcd39('0x25')]);}})[_0xcd39('0x26')](function(_0x4b7113){logger[_0xcd39('0x23')](_0xcd39('0x1e'),_0x35781e,_0x4b7113);_0x4833e5(_0x4b7113);});});}function respondWithStatusCode(_0x3da0ce,_0x25045b){_0x25045b=_0x25045b||0xcc;return function(_0x11a6ce){if(_0x11a6ce){return _0x3da0ce[_0xcd39('0x27')](_0x25045b);}return _0x3da0ce[_0xcd39('0x28')](_0x25045b)[_0xcd39('0x29')]();};}function respondWithResult(_0x4ede89,_0x4a5f97){_0x4a5f97=_0x4a5f97||0xc8;return function(_0x79a072){if(_0x79a072){return _0x4ede89['status'](_0x4a5f97)[_0xcd39('0x2a')](_0x79a072);}};}function respondWithFilteredResult(_0x595262,_0xb9fa38){return function(_0x44e9b3){if(_0x44e9b3){var _0x5182bf=typeof _0xb9fa38[_0xcd39('0x2b')]===_0xcd39('0x2c')&&typeof _0xb9fa38[_0xcd39('0x2d')]===_0xcd39('0x2c');var _0x395116=_0x44e9b3[_0xcd39('0x2e')];var _0x13c12c=_0x5182bf?0x0:_0xb9fa38['offset'];var _0xa80888=_0x5182bf?_0x44e9b3['count']:_0xb9fa38[_0xcd39('0x2b')]+_0xb9fa38[_0xcd39('0x2d')];var _0x540dd8;if(_0xa80888>=_0x395116){_0xa80888=_0x395116;_0x540dd8=0xc8;}else{_0x540dd8=0xce;}_0x595262[_0xcd39('0x28')](_0x540dd8);return _0x595262[_0xcd39('0x2f')](_0xcd39('0x30'),_0x13c12c+'-'+_0xa80888+'/'+_0x395116)[_0xcd39('0x2a')](_0x44e9b3);}return null;};}function patchUpdates(_0x32260b){return function(_0x48f92f){try{jsonpatch[_0xcd39('0x31')](_0x48f92f,_0x32260b,!![]);}catch(_0x3a4b9a){return BPromise['reject'](_0x3a4b9a);}return _0x48f92f[_0xcd39('0x32')]();};}function saveUpdates(_0x596473,_0x26646b){return function(_0xd032fb){if(_0xd032fb){return _0xd032fb[_0xcd39('0x33')](_0x596473)[_0xcd39('0x1c')](function(_0x40293f){return _0x40293f;});}return null;};}function removeEntity(_0x12a5f1,_0x1f5fc2){return function(_0x46397f){if(_0x46397f){return _0x46397f['destroy']()[_0xcd39('0x1c')](function(){_0x12a5f1[_0xcd39('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41c1d7,_0x4e444d){return function(_0x16d88b){if(!_0x16d88b){_0x41c1d7[_0xcd39('0x27')](0x194);}return _0x16d88b;};}function handleError(_0x1359d8,_0x5d0f31){_0x5d0f31=_0x5d0f31||0x1f4;return function(_0x19b26b){logger[_0xcd39('0x23')](_0x19b26b[_0xcd39('0x34')]);if(_0x19b26b[_0xcd39('0x35')]){delete _0x19b26b[_0xcd39('0x35')];}_0x1359d8[_0xcd39('0x28')](_0x5d0f31)[_0xcd39('0x36')](_0x19b26b);};}exports['index']=function(_0x12c3e6,_0x3f8a0f){var _0x23c9e6={},_0x35cb33={},_0x9f71f6={'count':0x0,'rows':[]};var _0x44bc04=_[_0xcd39('0x37')](db[_0xcd39('0x38')][_0xcd39('0x39')],function(_0x26dbe6){return{'name':_0x26dbe6[_0xcd39('0x3a')],'type':_0x26dbe6[_0xcd39('0x3b')][_0xcd39('0x3c')]};});_0x35cb33[_0xcd39('0x3d')]=_[_0xcd39('0x37')](_0x44bc04,'name');_0x35cb33[_0xcd39('0x3e')]=_['keys'](_0x12c3e6[_0xcd39('0x3e')]);_0x35cb33['filters']=_[_0xcd39('0x3f')](_0x35cb33[_0xcd39('0x3d')],_0x35cb33[_0xcd39('0x3e')]);_0x23c9e6[_0xcd39('0x40')]=_[_0xcd39('0x3f')](_0x35cb33[_0xcd39('0x3d')],qs[_0xcd39('0x41')](_0x12c3e6[_0xcd39('0x3e')]['fields']));_0x23c9e6['attributes']=_0x23c9e6[_0xcd39('0x40')]['length']?_0x23c9e6[_0xcd39('0x40')]:_0x35cb33[_0xcd39('0x3d')];if(!_0x12c3e6['query'][_0xcd39('0x42')](_0xcd39('0x43'))){_0x23c9e6[_0xcd39('0x2d')]=qs[_0xcd39('0x2d')](_0x12c3e6[_0xcd39('0x3e')][_0xcd39('0x2d')]);_0x23c9e6['offset']=qs[_0xcd39('0x2b')](_0x12c3e6[_0xcd39('0x3e')]['offset']);}_0x23c9e6['order']=qs['sort'](_0x12c3e6[_0xcd39('0x3e')][_0xcd39('0x44')]);_0x23c9e6[_0xcd39('0x45')]=qs[_0xcd39('0x46')](_['pick'](_0x12c3e6[_0xcd39('0x3e')],_0x35cb33[_0xcd39('0x46')]),_0x44bc04);if(_0x12c3e6[_0xcd39('0x3e')]['filter']){_0x23c9e6[_0xcd39('0x45')]=_[_0xcd39('0x47')](_0x23c9e6[_0xcd39('0x45')],{'$or':_[_0xcd39('0x37')](_0x44bc04,function(_0xd0fb58){if(_0xd0fb58[_0xcd39('0x3b')]!==_0xcd39('0x48')){var _0x104c70={};_0x104c70[_0xd0fb58[_0xcd39('0x35')]]={'$like':'%'+_0x12c3e6[_0xcd39('0x3e')][_0xcd39('0x49')]+'%'};return _0x104c70;}})});}_0x23c9e6=_[_0xcd39('0x47')]({},_0x23c9e6,_0x12c3e6['options']);var _0x7b8d56={'where':_0x23c9e6[_0xcd39('0x45')]};return db['SmsMessage'][_0xcd39('0x2e')](_0x7b8d56)[_0xcd39('0x1c')](function(_0x2a80b6){_0x9f71f6[_0xcd39('0x2e')]=_0x2a80b6;if(_0x12c3e6['query']['includeAll']){_0x23c9e6[_0xcd39('0x4a')]=[{'all':!![]}];}return db['SmsMessage'][_0xcd39('0x4b')](_0x23c9e6);})[_0xcd39('0x1c')](function(_0x3895a8){_0x9f71f6['rows']=_0x3895a8;return _0x9f71f6;})['then'](respondWithFilteredResult(_0x3f8a0f,_0x23c9e6))[_0xcd39('0x26')](handleError(_0x3f8a0f,null));};exports['show']=function(_0x283eed,_0x25b784){var _0x11cafa={'raw':!![],'where':{'id':_0x283eed['params']['id']}},_0x230192={};_0x230192[_0xcd39('0x3d')]=_[_0xcd39('0x4c')](db[_0xcd39('0x38')]['rawAttributes']);_0x230192[_0xcd39('0x3e')]=_[_0xcd39('0x4c')](_0x283eed[_0xcd39('0x3e')]);_0x230192[_0xcd39('0x46')]=_['intersection'](_0x230192[_0xcd39('0x3d')],_0x230192[_0xcd39('0x3e')]);_0x11cafa[_0xcd39('0x40')]=_[_0xcd39('0x3f')](_0x230192['model'],qs[_0xcd39('0x41')](_0x283eed[_0xcd39('0x3e')][_0xcd39('0x41')]));_0x11cafa[_0xcd39('0x40')]=_0x11cafa[_0xcd39('0x40')]['length']?_0x11cafa['attributes']:_0x230192['model'];if(_0x283eed['query'][_0xcd39('0x4d')]){_0x11cafa[_0xcd39('0x4a')]=[{'all':!![]}];}_0x11cafa=_['merge']({},_0x11cafa,_0x283eed[_0xcd39('0x4e')]);return db[_0xcd39('0x38')]['find'](_0x11cafa)[_0xcd39('0x1c')](handleEntityNotFound(_0x25b784,null))[_0xcd39('0x1c')](respondWithResult(_0x25b784,null))[_0xcd39('0x26')](handleError(_0x25b784,null));};exports['create']=function(_0x4cfa46,_0x97eb81){return db['SmsMessage']['create'](_0x4cfa46['body'],{})[_0xcd39('0x1c')](respondWithResult(_0x97eb81,0xc9))[_0xcd39('0x26')](handleError(_0x97eb81,null));};exports[_0xcd39('0x33')]=function(_0x1eddf4,_0x411bf8){if(_0x1eddf4[_0xcd39('0x4f')]['id']){delete _0x1eddf4['body']['id'];}return db[_0xcd39('0x38')][_0xcd39('0x50')]({'where':{'id':_0x1eddf4[_0xcd39('0x51')]['id']}})[_0xcd39('0x1c')](handleEntityNotFound(_0x411bf8,null))['then'](saveUpdates(_0x1eddf4[_0xcd39('0x4f')],null))[_0xcd39('0x1c')](respondWithResult(_0x411bf8,null))['catch'](handleError(_0x411bf8,null));};exports[_0xcd39('0x52')]=function(_0x321d71,_0x3dd7cb){return db[_0xcd39('0x38')][_0xcd39('0x50')]({'where':{'id':_0x321d71[_0xcd39('0x51')]['id']}})[_0xcd39('0x1c')](handleEntityNotFound(_0x3dd7cb,null))['then'](removeEntity(_0x3dd7cb,null))[_0xcd39('0x26')](handleError(_0x3dd7cb,null));};exports[_0xcd39('0x53')]=function(_0x4dbbc4,_0x147043){return db[_0xcd39('0x38')][_0xcd39('0x53')]()[_0xcd39('0x1c')](respondWithResult(_0x147043,null))[_0xcd39('0x26')](handleError(_0x147043,null));};var interaction_log=require(_0xcd39('0x15'))(_0xcd39('0x54'));exports[_0xcd39('0x55')]=function(_0x114388,_0x5b71aa,_0x1820b2){var _0x3e2f6a={'agent':{},'channel':_0xcd39('0x56')};if(_0x114388[_0xcd39('0x4f')]['id']){delete _0x114388[_0xcd39('0x4f')]['id'];}_0x114388[_0xcd39('0x4f')][_0xcd39('0x57')]=!![];_0x114388[_0xcd39('0x4f')][_0xcd39('0x58')]=moment()['format'](_0xcd39('0x59'));_0x114388[_0xcd39('0x4f')][_0xcd39('0x5a')]=_0x114388[_0xcd39('0x4f')][_0xcd39('0x5a')]||_0x114388[_0xcd39('0x5b')]['id'];_0x3e2f6a[_0xcd39('0x5c')]['id']=_0x114388['body'][_0xcd39('0x5a')];return db[_0xcd39('0x38')][_0xcd39('0x50')]({'where':{'id':_0x114388[_0xcd39('0x51')]['id'],'UserId':null}})[_0xcd39('0x1c')](handleEntityNotFound(_0x5b71aa,null))[_0xcd39('0x1c')](saveUpdates(_0x114388[_0xcd39('0x4f')],null))['then'](function(_0xd929f9){if(_0xd929f9){_0x3e2f6a[_0xcd39('0x25')]=_0xd929f9['get']({'plain':!![]});return db[_0xcd39('0x5d')][_0xcd39('0x50')]({'where':{'id':_0xd929f9[_0xcd39('0x5e')]}});}return null;})['then'](handleEntityNotFound(_0x5b71aa,null))[_0xcd39('0x1c')](function(_0x216cfd){if(_0x216cfd){return _0x216cfd['update']({'UserId':_0x114388['body']['UserId'],'read1stAt':_[_0xcd39('0x5f')](_0x216cfd[_0xcd39('0x60')])?moment()[_0xcd39('0x61')](_0xcd39('0x59')):undefined});}return null;})['then'](function(_0x27b57b){if(_0x27b57b){_0x3e2f6a[_0xcd39('0x62')]=_0x27b57b[_0xcd39('0x63')]({'plain':!![]});interaction_log['info']('[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x114388['user']['id'],_0x114388[_0xcd39('0x5b')][_0xcd39('0x35')],_0x114388['user']['role'],_0x3e2f6a[_0xcd39('0x62')]['id'],_0x114388[_0xcd39('0x4f')]?JSON['stringify'](_0x114388[_0xcd39('0x4f')]):_0xcd39('0x64'));return respondWithRpcPromise(_0xcd39('0x65'),_0xcd39('0x66'),_0x3e2f6a);}return null;})[_0xcd39('0x1c')](function(_0x4abfe7){var _0x143646=_0xcd39('0x67')+_0x4abfe7[_0xcd39('0x25')]['ContactId'];return db[_0xcd39('0x68')][_0xcd39('0x3e')](_0x143646,{'type':db[_0xcd39('0x69')][_0xcd39('0x6a')][_0xcd39('0x6b')],'raw':!![]})[_0xcd39('0x1c')](function(_0x2ffb71){return _0x2ffb71;});})['then'](function(_0x9c35ad){if(_0x9c35ad){_0x3e2f6a[_0xcd39('0x25')]['contact']=_0x9c35ad[0x0];if(!_0x114388[_0xcd39('0x4f')]['UserId'])return;return db[_0xcd39('0x6c')]['find']({'where':{'id':_0x114388[_0xcd39('0x4f')][_0xcd39('0x5a')],'role':'agent'},'attributes':['id','name',_0xcd39('0x6d'),'email',_0xcd39('0x6e')],'raw':!![]});}return null;})[_0xcd39('0x1c')](function(_0x58cfe0){if(!_0x58cfe0)return null;_0x3e2f6a[_0xcd39('0x25')][_0xcd39('0x5c')]=_0x58cfe0;return _0x3e2f6a;})[_0xcd39('0x1c')](function(_0x49827d){if(_0x49827d){if(_0x114388[_0xcd39('0x4f')][_0xcd39('0x6f')]){_0x3e2f6a['message'][_0xcd39('0x70')]=util['format'](_0xcd39('0x71'),_0x114388[_0xcd39('0x5b')][_0xcd39('0x35')]);_0x3e2f6a[_0xcd39('0x25')]['channel']=_0x3e2f6a[_0xcd39('0x72')];_0x3e2f6a[_0xcd39('0x25')][_0xcd39('0x73')]='accept';return respondWithRpcPromise(_0xcd39('0x74'),'EventManager',{'event':_0xcd39('0x75'),'message':_0x3e2f6a[_0xcd39('0x25')]},client9002)[_0xcd39('0x1c')](function(){return _0x3e2f6a;});}return _0x3e2f6a;}return null;})[_0xcd39('0x1c')](respondWithResult(_0x5b71aa,null))[_0xcd39('0x26')](handleError(_0x5b71aa,null));};var interaction_log=require(_0xcd39('0x15'))(_0xcd39('0x54'));exports['reject']=function(_0xd90071,_0x4e83e6,_0x480b9f){var _0x4c43eb={'agent':{},'channel':_0xcd39('0x56')};if(_0xd90071[_0xcd39('0x4f')]['id']){delete _0xd90071['body']['id'];}_0xd90071[_0xcd39('0x4f')]['UserId']=_0xd90071['body'][_0xcd39('0x5a')]||_0xd90071[_0xcd39('0x5b')]['id'];_0x4c43eb[_0xcd39('0x5c')]['id']=_0xd90071['body'][_0xcd39('0x5a')];return db[_0xcd39('0x38')][_0xcd39('0x50')]({'where':{'id':_0xd90071[_0xcd39('0x51')]['id'],'UserId':null}})[_0xcd39('0x1c')](handleEntityNotFound(_0x4e83e6,null))[_0xcd39('0x1c')](function(_0x3f24a0){if(_0x3f24a0){_0x4c43eb[_0xcd39('0x25')]=_0x3f24a0['get']({'plain':!![]});return db[_0xcd39('0x5d')][_0xcd39('0x50')]({'where':{'id':_0x3f24a0[_0xcd39('0x5e')]}});}return null;})[_0xcd39('0x1c')](handleEntityNotFound(_0x4e83e6,null))[_0xcd39('0x1c')](function(_0x4c72a3){if(_0x4c72a3){_0x4c43eb[_0xcd39('0x62')]=_0x4c72a3['get']({'plain':!![]});interaction_log[_0xcd39('0x1d')](_0xcd39('0x76'),_0xd90071[_0xcd39('0x5b')]['id'],_0xd90071[_0xcd39('0x5b')][_0xcd39('0x35')],_0xd90071[_0xcd39('0x5b')][_0xcd39('0x77')],_0x4c43eb[_0xcd39('0x62')]['id'],_0xd90071['body']?JSON[_0xcd39('0x22')](_0xd90071['body']):_0xcd39('0x64'));return respondWithRpcPromise(_0xcd39('0x78'),_0xcd39('0x79'),_0x4c43eb);}return null;})[_0xcd39('0x1c')](function(_0x2841a0){var _0x2c7212='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2841a0[_0xcd39('0x25')][_0xcd39('0x7a')];return db['sequelize'][_0xcd39('0x3e')](_0x2c7212,{'type':db[_0xcd39('0x69')]['QueryTypes'][_0xcd39('0x6b')],'raw':!![]})[_0xcd39('0x1c')](function(_0x22234b){return _0x22234b;});})[_0xcd39('0x1c')](function(_0x3ad707){if(_0x3ad707){_0x4c43eb[_0xcd39('0x25')]['contact']=_0x3ad707[0x0];if(!_0xd90071[_0xcd39('0x4f')]['UserId'])return;return db['User'][_0xcd39('0x50')]({'where':{'id':_0xd90071['body'][_0xcd39('0x5a')],'role':_0xcd39('0x5c')},'attributes':['id',_0xcd39('0x35'),_0xcd39('0x6d'),_0xcd39('0x7b'),_0xcd39('0x6e')],'raw':!![]});}return null;})[_0xcd39('0x1c')](function(_0x51b331){if(!_0x51b331)return null;_0x4c43eb[_0xcd39('0x25')][_0xcd39('0x5c')]=_0x51b331;return _0x4c43eb;})[_0xcd39('0x1c')](function(_0x39426d){if(_0x39426d){_0x39426d[_0xcd39('0x25')][_0xcd39('0x70')]=util[_0xcd39('0x61')](_0xcd39('0x71'),_0xd90071[_0xcd39('0x5b')][_0xcd39('0x35')]);_0x39426d[_0xcd39('0x25')]['channel']=_0x4c43eb['channel'];_0x39426d[_0xcd39('0x25')][_0xcd39('0x73')]='reject';respondWithRpcPromise('EventManager',_0xcd39('0x74'),{'event':_0xcd39('0x7c'),'message':_0x39426d[_0xcd39('0x25')]},client9002);return _0x4c43eb;}return null;})['then'](respondWithResult(_0x4e83e6,null))['catch'](handleError(_0x4e83e6,null));};exports['status']=function(_0x54cd15,_0x39cb57,_0x567f40){if(_0x54cd15[_0xcd39('0x4f')]['id']){delete _0x54cd15[_0xcd39('0x4f')]['id'];}var _0x459b0d;return db[_0xcd39('0x38')][_0xcd39('0x50')]({'where':{'id':_0x54cd15[_0xcd39('0x51')]['id']}})[_0xcd39('0x1c')](handleEntityNotFound(_0x39cb57,null))[_0xcd39('0x1c')](function(_0x45f92a){if(_0x45f92a){_0x459b0d=_0x45f92a;return db[_0xcd39('0x7d')]['find']({'where':{'id':_0x45f92a[_0xcd39('0x7e')]}});}})[_0xcd39('0x1c')](handleEntityNotFound(_0x39cb57,null))[_0xcd39('0x1c')](function(_0x25b5e5){if(_0x25b5e5){logger[_0xcd39('0x20')](_0xcd39('0x21'),_0xcd39('0x28'),_0xcd39('0x7f'),_0x25b5e5[_0xcd39('0x3b')],util[_0xcd39('0x80')](_0x54cd15[_0xcd39('0x4f')],{'showHidden':![],'depth':null}));switch(_0x25b5e5[_0xcd39('0x3b')]){case _0xcd39('0x81'):if(_0x54cd15[_0xcd39('0x4f')][_0xcd39('0x82')]&&_0x54cd15[_0xcd39('0x4f')][_0xcd39('0x82')]===_0x459b0d[_0xcd39('0x83')]){return _0x459b0d['update']({'read':!![]});}else{logger[_0xcd39('0x23')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xcd39('0x28'),_0xcd39('0x81'),util[_0xcd39('0x80')](_0x54cd15[_0xcd39('0x4f')],{'showHidden':![],'depth':null}));}break;case _0xcd39('0x84'):if(_0x54cd15[_0xcd39('0x4f')]['MessageUUID']&&_0x54cd15[_0xcd39('0x4f')][_0xcd39('0x85')]===_0x459b0d['messageId']&&_[_0xcd39('0x86')]([_0xcd39('0x87'),_0xcd39('0x88')],_0x54cd15[_0xcd39('0x4f')][_0xcd39('0x89')])>=0x0){return _0x459b0d[_0xcd39('0x33')]({'read':!![]});}else{logger[_0xcd39('0x23')](_0xcd39('0x8a'),_0xcd39('0x28'),_0xcd39('0x8b'),util[_0xcd39('0x80')](_0x54cd15[_0xcd39('0x4f')],{'showHidden':![],'depth':null}));}break;case _0xcd39('0x8c'):var _0x314f80=_0x54cd15[_0xcd39('0x4f')]['results'][0x0];if(_0x314f80[_0xcd39('0x28')][_0xcd39('0x8d')]===_0xcd39('0x8e')){return _0x459b0d[_0xcd39('0x33')]({'read':!![]});}else{logger['error'](_0xcd39('0x8a'),_0xcd39('0x28'),'infobip',util[_0xcd39('0x80')](_0x54cd15[_0xcd39('0x4f')],{'showHidden':![],'depth':null}));}break;}return _0x459b0d;}})[_0xcd39('0x1c')](respondWithResult(_0x39cb57,null))['catch'](handleError(_0x39cb57,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe241=['exports','events','../../mysqldb','SmsMessage','setMaxListeners','save','remove','emit','hook'];(function(_0xe6035d,_0x8c0c06){var _0x30b10a=function(_0x305f8f){while(--_0x305f8f){_0xe6035d['push'](_0xe6035d['shift']());}};_0x30b10a(++_0x8c0c06);}(_0xe241,0x91));var _0x1e24=function(_0x19b3f9,_0xade753){_0x19b3f9=_0x19b3f9-0x0;var _0x18c3f6=_0xe241[_0x19b3f9];return _0x18c3f6;};'use strict';var EventEmitter=require(_0x1e24('0x0'));var SmsMessage=require(_0x1e24('0x1'))['db'][_0x1e24('0x2')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0x1e24('0x3')](0x0);var events={'afterCreate':_0x1e24('0x4'),'afterUpdate':'update','afterDestroy':_0x1e24('0x5')};function emitEvent(_0x43b60a){return function(_0x4851ce,_0x249c38,_0x3a6eaf){SmsMessageEvents[_0x1e24('0x6')](_0x43b60a+':'+_0x4851ce['id'],_0x4851ce);SmsMessageEvents[_0x1e24('0x6')](_0x43b60a,_0x4851ce);_0x3a6eaf(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsMessage[_0x1e24('0x7')](e,emitEvent(event));}}module[_0x1e24('0x8')]=SmsMessageEvents;
\ No newline at end of file
+var _0xa77a=['save','update','remove','emit','hook','exports','events','../../mysqldb','setMaxListeners'];(function(_0x16bb4c,_0x495cf6){var _0x5b817e=function(_0x5d18c2){while(--_0x5d18c2){_0x16bb4c['push'](_0x16bb4c['shift']());}};_0x5b817e(++_0x495cf6);}(_0xa77a,0xf9));var _0xaa77=function(_0x291f8b,_0x3b5591){_0x291f8b=_0x291f8b-0x0;var _0x275171=_0xa77a[_0x291f8b];return _0x275171;};'use strict';var EventEmitter=require(_0xaa77('0x0'));var SmsMessage=require(_0xaa77('0x1'))['db']['SmsMessage'];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xaa77('0x2')](0x0);var events={'afterCreate':_0xaa77('0x3'),'afterUpdate':_0xaa77('0x4'),'afterDestroy':_0xaa77('0x5')};function emitEvent(_0x1208f7){return function(_0x528c73,_0x29f4b3,_0x50c70b){SmsMessageEvents[_0xaa77('0x6')](_0x1208f7+':'+_0x528c73['id'],_0x528c73);SmsMessageEvents[_0xaa77('0x6')](_0x1208f7,_0x528c73);_0x50c70b(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsMessage[_0xaa77('0x7')](e,emitEvent(event));}}module[_0xaa77('0x8')]=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd816=['catch','error','direction','find','SmsAccountId','type','twilio','accountSid','authToken','phone','create','remote','/status?token=','token','sid','update','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','&password=','GET','split','user_key','session_key','total_sent','internal_order_id','deliveryReport','read','Missing\x20parameters:\x20username,\x20password','connectel','senderString','POST','https://smsapi.connectel.se/api/v2/send/','requestid','Missing\x20parameters:\x20authToken','clicksend','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','queued_count','head','message_id','clickSend','plivo','authId','/api/sms/messages/','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','messages','infobip','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','sender','timestamp','keys','sort','createHash','md5','digest','signature=','id_sms','clickatell','https://platform.clickatell.com/messages','UTF-8','apiMessageId','bandwidth','https://messaging.bandwidth.com/api/v2/users/','applicationId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','code','message','refid','Token\x20not\x20received','finally','utf8mb4','lodash','util','api','path','rimraf','../../config/environment','./smsMessage.attributes','define','sms_messages','messageId','fti_sms_messages','body','FULLTEXT','models','get','out','secret','isNil','UserId','findOne','SmsInteractionId','then','createdAt'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xd816,0xd5));var _0x6d81=function(_0x28248b,_0x328b58){_0x28248b=_0x28248b-0x0;var _0x264410=_0xd816[_0x28248b];return _0x264410;};'use strict';var _=require(_0x6d81('0x0'));var util=require(_0x6d81('0x1'));var logger=require('../../config/logger')(_0x6d81('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6d81('0x3'));var rimraf=require(_0x6d81('0x4'));var config=require(_0x6d81('0x5'));var attributes=require(_0x6d81('0x6'));module['exports']=function(_0x6c01ef,_0x4ba95f){return _0x6c01ef[_0x6d81('0x7')]('SmsMessage',attributes,{'tableName':_0x6d81('0x8'),'paranoid':![],'indexes':[{'name':_0x6d81('0x9'),'fields':['messageId']},{'name':_0x6d81('0xa'),'fields':[_0x6d81('0xb')],'type':_0x6d81('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x278974,_0x58dc08,_0x173243){var _0x493b15=_0x6c01ef[_0x6d81('0xd')];var _0x200555=_0x278974[_0x6d81('0xe')]({'plain':!![]});if(_0x200555['direction']['toLowerCase']()==='in'||_0x200555['direction']['toLowerCase']()===_0x6d81('0xf')&&!_0x200555[_0x6d81('0x10')]&&!_[_0x6d81('0x11')](_0x200555[_0x6d81('0x12')])){_0x493b15['SmsInteraction'][_0x6d81('0x13')]({'where':{'id':_0x200555[_0x6d81('0x14')]}})[_0x6d81('0x15')](function(_0x55fcb7){if(_0x55fcb7){_0x55fcb7['update']({'lastMsgAt':_0x200555[_0x6d81('0x16')],'lastMsgDirection':_0x200555['direction']['toLowerCase']()});}})[_0x6d81('0x17')](function(_0x25dd7a){console[_0x6d81('0x18')](_0x25dd7a);});}if(_0x200555[_0x6d81('0x19')]===_0x6d81('0xf')&&!_0x200555[_0x6d81('0x10')]){var _0x13d66a;_0x493b15['SmsAccount'][_0x6d81('0x1a')]({'where':{'id':_0x200555[_0x6d81('0x1b')]},'raw':!![]})[_0x6d81('0x15')](function(_0x333460){_0x13d66a=_0x333460;if(_0x13d66a&&_0x13d66a['type']){switch(_0x13d66a[_0x6d81('0x1c')]){case'twilio':var _0x357795=require(_0x6d81('0x1d'));if(_0x13d66a[_0x6d81('0x1e')]&&_0x13d66a[_0x6d81('0x1f')]&&_0x13d66a[_0x6d81('0x20')]){var _0x28944e=new _0x357795(_0x13d66a[_0x6d81('0x1e')],_0x13d66a['authToken']);_0x28944e['messages'][_0x6d81('0x21')]({'body':_0x200555[_0x6d81('0xb')],'to':_0x200555[_0x6d81('0x20')],'from':_0x13d66a[_0x6d81('0x20')],'statusCallback':_0x13d66a[_0x6d81('0x22')]+'/api/sms/messages/'+_0x200555['id']+_0x6d81('0x23')+_0x13d66a[_0x6d81('0x24')]})[_0x6d81('0x15')](function(_0x25f587){if(_0x25f587[_0x6d81('0x25')]){return _0x278974[_0x6d81('0x26')]({'messageId':_0x25f587[_0x6d81('0x25')]});}})[_0x6d81('0x17')](function(_0x388b68){logger[_0x6d81('0x18')](_0x6d81('0x27'),'afterCreate',_0x6d81('0x1d'),util[_0x6d81('0x28')](_0x388b68,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x1d'),_0x6d81('0x2a'));}break;case _0x6d81('0x2b'):var _0x3a5592=_0x6d81('0x2c');if(_0x13d66a[_0x6d81('0x2d')]&&_0x13d66a[_0x6d81('0x2e')]){var _0x35a878={'recipient':[_0x200555[_0x6d81('0x20')]],'message':_0x200555[_0x6d81('0xb')],'message_type':_0x13d66a[_0x6d81('0x2f')]};if(_0x13d66a[_0x6d81('0x2f')]&&_0x13d66a[_0x6d81('0x2f')]!=='SI'){_0x35a878['sender']=_0x13d66a[_0x6d81('0x20')];}var _0x19e30b={'url':_0x3a5592+'login?username='+_0x13d66a['username']+_0x6d81('0x30')+_0x13d66a[_0x6d81('0x2e')],'method':_0x6d81('0x31')};rp(_0x19e30b)[_0x6d81('0x15')](function(_0x381f6a){var _0x4c135e=_0x381f6a[_0x6d81('0x32')](';');var _0x4f3155={'user_key':_0x4c135e[0x0],'session_key':_0x4c135e[0x1]};_0x19e30b={'url':_0x3a5592+'sms','method':'POST','headers':{'user_key':_0x4f3155[_0x6d81('0x33')],'Session_key':_0x4f3155[_0x6d81('0x34')]},'json':!![],'body':_0x35a878};return rp(_0x19e30b);})[_0x6d81('0x15')](function(_0x26ce72){if(_0x26ce72[_0x6d81('0x35')]>=0x1){var _0x41c67e={'messageId':_0x26ce72[_0x6d81('0x36')]};if(_0x13d66a['smsMethod']!=='GP'||!_0x13d66a[_0x6d81('0x37')]){_0x41c67e[_0x6d81('0x38')]=!![];}return _0x278974['update'](_0x41c67e);}else{return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x2b'),util[_0x6d81('0x28')](_0x26ce72,{'showHidden':![],'depth':null}));}})['catch'](function(_0x135de5){return logger['error'](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x2b'),util[_0x6d81('0x28')](_0x135de5,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x2b'),_0x6d81('0x39'));}break;case _0x6d81('0x3a'):if(_0x13d66a[_0x6d81('0x1f')]){var _0x3d2768={'recipient':_0x200555[_0x6d81('0x20')],'message':_0x200555[_0x6d81('0xb')],'sender':_0x13d66a[_0x6d81('0x3b')]||_0x13d66a['phone'],'authorization':_0x13d66a[_0x6d81('0x1f')]};var _0x58dc08={'method':_0x6d81('0x3c'),'uri':_0x6d81('0x3d'),'body':_0x3d2768,'json':!![]};rp(_0x58dc08)[_0x6d81('0x15')](function(_0x494956){var _0x42b98f={'messageId':_0x494956[_0x6d81('0x3e')]};if(!_0x13d66a[_0x6d81('0x37')]){_0x42b98f[_0x6d81('0x38')]=!![];}return _0x278974[_0x6d81('0x26')](_0x42b98f);})[_0x6d81('0x17')](function(_0x2ccd96){logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),'connectel',util[_0x6d81('0x28')](_0x2ccd96,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6d81('0x29'),'connectel',_0x6d81('0x3f'));}break;case _0x6d81('0x40'):if(_0x13d66a[_0x6d81('0x2d')]&&_0x13d66a['password']){var _0x3d2768={'messages':[{'source':'xCALLY\x20Motion','to':_0x200555[_0x6d81('0x20')],'body':_0x200555['body'],'from':_0x13d66a[_0x6d81('0x3b')]||_0x13d66a[_0x6d81('0x20')]}]};var _0x21fab2=util[_0x6d81('0x41')](_0x6d81('0x42'),_0x13d66a[_0x6d81('0x2d')],_0x13d66a[_0x6d81('0x2e')]);var _0x58dc08={'method':_0x6d81('0x3c'),'uri':_0x6d81('0x43'),'body':_0x3d2768,'headers':{'Authorization':util[_0x6d81('0x41')](_0x6d81('0x44'),new Buffer(_0x21fab2)[_0x6d81('0x45')](_0x6d81('0x46')))},'json':!![]};rp(_0x58dc08)['then'](function(_0x505c92){if(_0x505c92[_0x6d81('0x47')]>=0xc8&&_0x505c92[_0x6d81('0x47')]<=0xce){if(_0x505c92[_0x6d81('0x48')]&&_0x505c92[_0x6d81('0x48')][_0x6d81('0x49')]>0x0){var _0x436f10=_[_0x6d81('0x4a')](_0x505c92['data']['messages']);var _0x3618f5={'messageId':_0x436f10[_0x6d81('0x4b')]};if(!_0x13d66a[_0x6d81('0x37')]){_0x3618f5[_0x6d81('0x38')]=!![];}return _0x278974[_0x6d81('0x26')](_0x3618f5);}else{logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x4c'),util[_0x6d81('0x28')](_0x505c92,{'showHidden':![],'depth':null}));}}else{logger['error'](_0x6d81('0x27'),_0x6d81('0x29'),'clickSend',util[_0x6d81('0x28')](_0x505c92,{'showHidden':![],'depth':null}));}})['catch'](function(_0xcf6168){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6d81('0x29'),'clickSend',util[_0x6d81('0x28')](_0xcf6168,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x4c'),_0x6d81('0x39'));}break;case _0x6d81('0x4d'):if(_0x13d66a[_0x6d81('0x4e')]&&_0x13d66a['authToken']){var _0x3d2768={'dst':_0x200555[_0x6d81('0x20')],'text':_0x200555[_0x6d81('0xb')],'src':_0x13d66a[_0x6d81('0x3b')]||_0x13d66a[_0x6d81('0x20')],'url':_0x13d66a['remote']+_0x6d81('0x4f')+_0x200555['id']+_0x6d81('0x23')+_0x13d66a[_0x6d81('0x24')]};var _0x21fab2=util[_0x6d81('0x41')](_0x6d81('0x42'),_0x13d66a[_0x6d81('0x4e')],_0x13d66a[_0x6d81('0x1f')]);var _0x58dc08={'method':_0x6d81('0x3c'),'uri':util[_0x6d81('0x41')](_0x6d81('0x50'),_0x13d66a[_0x6d81('0x4e')]),'body':_0x3d2768,'headers':{'Authorization':util[_0x6d81('0x41')]('Basic\x20%s',new Buffer(_0x21fab2)[_0x6d81('0x45')](_0x6d81('0x46')))},'json':!![]};rp(_0x58dc08)['then'](function(_0x2a6da0){var _0x263745={'messageId':_0x2a6da0[_0x6d81('0x51')][0x0]};return _0x278974[_0x6d81('0x26')](_0x263745);})[_0x6d81('0x17')](function(_0x5ef6a8){logger[_0x6d81('0x18')](_0x6d81('0x27'),'afterCreate','plivo',util[_0x6d81('0x28')](_0x5ef6a8,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),'plivo','Missing\x20parameters:\x20authId,\x20authToken');}break;case'infobip':if(_0x13d66a[_0x6d81('0x2d')]&&_0x13d66a['password']){if(_0x13d66a[_0x6d81('0x52')]){var _0x3ecb66={'method':_0x6d81('0x3c'),'uri':_0x13d66a[_0x6d81('0x52')]+_0x6d81('0x53'),'body':{'username':_0x13d66a['username'],'password':_0x13d66a['password']},'json':!![]};return rp(_0x3ecb66)[_0x6d81('0x15')](function(_0x27b55a){var _0x134b01={'method':_0x6d81('0x3c'),'uri':_0x13d66a['baseUrl']+_0x6d81('0x54'),'body':{'messages':[{'from':_0x13d66a[_0x6d81('0x20')],'destinations':[{'to':_0x200555[_0x6d81('0x20')]}],'text':_0x200555[_0x6d81('0xb')],'notifyUrl':_0x13d66a['remote']+_0x6d81('0x4f')+_0x200555['id']+_0x6d81('0x23')+_0x13d66a[_0x6d81('0x24')],'notifyContentType':_0x6d81('0x55'),'callbackData':_0x13d66a[_0x6d81('0x20')]+';'+_0x200555['body']}]},'headers':{'Authorization':'IBSSO\x20'+_0x27b55a['token']},'json':!![]};return rp(_0x134b01)['then'](function(_0x4d2b76){if(_0x4d2b76[_0x6d81('0x56')]){var _0x26f7dc={'messageId':_0x4d2b76[_0x6d81('0x56')][0x0][_0x6d81('0x9')]};if(!_0x13d66a['deliveryReport']){_0x26f7dc[_0x6d81('0x38')]=!![];}return _0x278974['update'](_0x26f7dc);}else{return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x57'),util[_0x6d81('0x28')](_0x4d2b76,{'showHidden':![],'depth':null}));}});})['catch'](function(_0x1340e6){return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),'infobip',util[_0x6d81('0x28')](_0x1340e6,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6d81('0x29'),_0x6d81('0x57'),_0x6d81('0x58'));}}else{logger[_0x6d81('0x18')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6d81('0x29'),_0x6d81('0x57'),_0x6d81('0x39'));}break;case _0x6d81('0x59'):var _0x43e322=require(_0x6d81('0x5a'));if(_0x13d66a[_0x6d81('0x5b')]){var _0xb5855c={};_0xb5855c[_0x6d81('0x5c')]=_0x13d66a[_0x6d81('0x2d')];_0xb5855c['phone']=_0x200555[_0x6d81('0x20')];_0xb5855c[_0x6d81('0x5d')]=_0x13d66a[_0x6d81('0x20')];_0xb5855c['text']=_0x200555[_0x6d81('0xb')];_0xb5855c[_0x6d81('0x5e')]=+new Date();var _0x10ba0f='';var _0x407d70='';var _0x370f9a=Object[_0x6d81('0x5f')](_0xb5855c);_0x370f9a[_0x6d81('0x60')]();for(var _0xf1b3a2=0x0;_0xf1b3a2<_0x370f9a['length'];_0xf1b3a2++){if(_0x10ba0f!=''){_0x10ba0f+='&';}_0x10ba0f+=_0x370f9a[_0xf1b3a2]+'='+encodeURIComponent(_0xb5855c[_0x370f9a[_0xf1b3a2]]);_0x407d70+=_0xb5855c[_0x370f9a[_0xf1b3a2]];}_0x407d70+=_0x13d66a[_0x6d81('0x5b')];_0x407d70=_0x43e322[_0x6d81('0x61')](_0x6d81('0x62'))[_0x6d81('0x26')](_0x407d70)[_0x6d81('0x63')]('hex');if(_0x10ba0f!==''){_0x10ba0f+='&';}_0x10ba0f+=_0x6d81('0x64')+_0x407d70;var _0x19e30b={'method':_0x6d81('0x31'),'uri':_0x13d66a['baseUrl']+'/external/get/send.php?'+_0x10ba0f,'json':!![]};return rp(_0x19e30b)[_0x6d81('0x15')](function(_0xb37103){var _0x3cc3ab=Object[_0x6d81('0x5f')](_0xb37103);if(_0xb37103[_0x3cc3ab[0x0]][_0x6d81('0x18')]&&parseInt(_0xb37103[_0x3cc3ab[0x0]][_0x6d81('0x18')])===0x0){var _0x97674c={'messageId':_0xb37103[_0x3cc3ab[0x0]][_0x6d81('0x65')]};if(!_0x13d66a[_0x6d81('0x37')]){_0x97674c[_0x6d81('0x38')]=!![];}return _0x278974['update'](_0x97674c);}else{return logger['error'](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x59'),util['inspect'](_0xb37103[_0x6d81('0x18')],{'showHidden':![],'depth':null}));}})[_0x6d81('0x17')](function(_0x1a7122){return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x59'),util[_0x6d81('0x28')](_0x1a7122,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x59'),'Missing\x20parameters:\x20apiKey');}break;case _0x6d81('0x66'):if(_0x13d66a[_0x6d81('0x5b')]){var _0x2abd8e={'method':_0x6d81('0x3c'),'uri':_0x6d81('0x67'),'headers':{'Authorization':_0x13d66a[_0x6d81('0x5b')]},'body':{'content':_0x200555[_0x6d81('0xb')],'to':[_0x200555['phone']],'from':_0x13d66a[_0x6d81('0x20')],'binary':![],'clientMessageId':'uuid','charset':_0x6d81('0x68')},'json':!![]};rp(_0x2abd8e)[_0x6d81('0x15')](function(_0x3ebcaa){if(!_0x3ebcaa['error']){var _0x4684c2={'messageId':_0x3ebcaa['messages'][0x0][_0x6d81('0x69')]};if(!_0x13d66a[_0x6d81('0x37')]){_0x4684c2[_0x6d81('0x38')]=!![];}return _0x278974[_0x6d81('0x26')](_0x4684c2);}else{return logger[_0x6d81('0x18')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6d81('0x29'),_0x6d81('0x66'),util[_0x6d81('0x28')](_0x3ebcaa[_0x6d81('0x18')],{'showHidden':![],'depth':null}));}})[_0x6d81('0x17')](function(_0x2942a7){return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),'clickatell',util['inspect'](_0x2942a7,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')](_0x6d81('0x27'),'afterCreate',_0x6d81('0x66'),'Missing\x20parameters:\x20apiKey');}break;case _0x6d81('0x6a'):if(_0x13d66a[_0x6d81('0x2d')]&&_0x13d66a[_0x6d81('0x2e')]){var _0x21fab2=util[_0x6d81('0x41')]('%s:%s',_0x13d66a[_0x6d81('0x2d')],_0x13d66a[_0x6d81('0x2e')]);var _0x58dc08={'method':_0x6d81('0x3c'),'uri':_0x6d81('0x6b')+_0x13d66a['accountId']+'/messages','body':{'to':[_0x200555[_0x6d81('0x20')]],'text':_0x200555['body'],'from':_0x13d66a['phone'],'applicationId':_0x13d66a[_0x6d81('0x6c')]},'headers':{'Authorization':util[_0x6d81('0x41')](_0x6d81('0x44'),new Buffer(_0x21fab2)[_0x6d81('0x45')]('base64'))},'json':!![]};rp(_0x58dc08)[_0x6d81('0x15')](function(_0x574096){if(_0x574096['id']){var _0x5122df={'messageId':_0x574096['id']};return _0x278974['update'](_0x5122df);}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x6d81('0x6a'),util[_0x6d81('0x28')](_0x574096,{'showHidden':![],'depth':null}));}})['catch'](function(_0x4a1665){logger[_0x6d81('0x18')](_0x6d81('0x27'),'afterCreate',_0x6d81('0x6a'),util['inspect'](_0x4a1665,{'showHidden':![],'depth':null}));});}else{logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x6a'),_0x6d81('0x39'));}break;case _0x6d81('0x6d'):if(_0x13d66a[_0x6d81('0x5b')]){var _0x278465={};var _0x19e30b={'method':_0x6d81('0x3c'),'uri':_0x6d81('0x6e'),'headers':{'Authorization':_0x6d81('0x6f')+_0x13d66a[_0x6d81('0x5b')],'Content-Type':_0x6d81('0x55')},'body':{'from':_0x13d66a[_0x6d81('0x20')],'to':_0x200555[_0x6d81('0x20')],'text':_0x200555[_0x6d81('0xb')]},'json':!![]};return rp(_0x19e30b)[_0x6d81('0x15')](function(_0x2a0a27){if(_0x2a0a27[_0x6d81('0x70')]==0xca){_0x278465[_0x6d81('0x71')]=_0x2a0a27;var _0x36e1ff={'method':'POST','uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0x6d81('0x6f')+_0x13d66a['apiKey'],'Content-Type':'application/json'},'body':{'refid':_0x278465[_0x6d81('0x71')][_0x6d81('0x72')]},'json':!![]};return rp(_0x36e1ff)[_0x6d81('0x15')](function(_0x4f88c3){_0x278465['status']=_0x4f88c3;var _0x5efca5={'messageId':_0x278465[_0x6d81('0x71')]['refid'],'read':!![]};return _0x278974['update'](_0x5efca5);});}else{return logger[_0x6d81('0x18')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6d81('0x29'),_0x6d81('0x6d'),util[_0x6d81('0x28')](_0x2a0a27,{'showHidden':![],'depth':null}));}})[_0x6d81('0x17')](function(_0x44ca2a){return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x6d'),util[_0x6d81('0x28')](_0x44ca2a,{'showHidden':![],'depth':null}));});}else{return logger[_0x6d81('0x18')](_0x6d81('0x27'),_0x6d81('0x29'),_0x6d81('0x6d'),_0x6d81('0x73'));}break;}}})[_0x6d81('0x74')](function(){_0x173243();});}else{_0x173243();}}},'charset':_0x6d81('0x75'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xc524=['secret','isNil','findOne','then','createdAt','catch','error','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','phone','messages','create','/status?token=','token','sid','update','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','sender','login?username=','&password=','GET','split','sms','POST','user_key','session_key','total_sent','internal_order_id','deliveryReport','read','connectel','requestid','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','http_code','data','queued_count','clickSend','Missing\x20parameters:\x20username,\x20password','authId','senderString','remote','/api/sms/messages/','base64','message_uuid','plivo','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','text','timestamp','keys','length','md5','hex','signature=','/external/get/send.php?','Missing\x20parameters:\x20apiKey','uuid','UTF-8','clickatell','bandwidth','https://messaging.bandwidth.com/api/v2/users/','accountId','intelepeer','code','message','Bearer\x20','status','refid','Token\x20not\x20received','utf8mb4_unicode_ci','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','exports','define','messageId','body','FULLTEXT','models','get','direction','toLowerCase','out'];(function(_0x30014e,_0x555f27){var _0x1e3be1=function(_0x36b923){while(--_0x36b923){_0x30014e['push'](_0x30014e['shift']());}};_0x1e3be1(++_0x555f27);}(_0xc524,0x1bf));var _0x4c52=function(_0x4129ce,_0x5f5a5e){_0x4129ce=_0x4129ce-0x0;var _0x1956a8=_0xc524[_0x4129ce];return _0x1956a8;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x4c52('0x0'))(_0x4c52('0x1'));var moment=require(_0x4c52('0x2'));var BPromise=require(_0x4c52('0x3'));var rp=require(_0x4c52('0x4'));var fs=require('fs');var path=require(_0x4c52('0x5'));var rimraf=require(_0x4c52('0x6'));var config=require('../../config/environment');var attributes=require('./smsMessage.attributes');module[_0x4c52('0x7')]=function(_0xdaf126,_0x72d0ec){return _0xdaf126[_0x4c52('0x8')]('SmsMessage',attributes,{'tableName':'sms_messages','paranoid':![],'indexes':[{'name':_0x4c52('0x9'),'fields':[_0x4c52('0x9')]},{'name':'fti_sms_messages','fields':[_0x4c52('0xa')],'type':_0x4c52('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5c3a2e,_0x367358,_0x276301){var _0x16f6dc=_0xdaf126[_0x4c52('0xc')];var _0x1dbc9b=_0x5c3a2e[_0x4c52('0xd')]({'plain':!![]});if(_0x1dbc9b[_0x4c52('0xe')][_0x4c52('0xf')]()==='in'||_0x1dbc9b[_0x4c52('0xe')]['toLowerCase']()===_0x4c52('0x10')&&!_0x1dbc9b[_0x4c52('0x11')]&&!_[_0x4c52('0x12')](_0x1dbc9b['UserId'])){_0x16f6dc['SmsInteraction'][_0x4c52('0x13')]({'where':{'id':_0x1dbc9b['SmsInteractionId']}})[_0x4c52('0x14')](function(_0x2c8e3b){if(_0x2c8e3b){_0x2c8e3b['update']({'lastMsgAt':_0x1dbc9b[_0x4c52('0x15')],'lastMsgDirection':_0x1dbc9b[_0x4c52('0xe')][_0x4c52('0xf')]()});}})[_0x4c52('0x16')](function(_0x1b8481){console[_0x4c52('0x17')](_0x1b8481);});}if(_0x1dbc9b[_0x4c52('0xe')]===_0x4c52('0x10')&&!_0x1dbc9b[_0x4c52('0x11')]){var _0x43b8c8;_0x16f6dc[_0x4c52('0x18')][_0x4c52('0x19')]({'where':{'id':_0x1dbc9b[_0x4c52('0x1a')]},'raw':!![]})[_0x4c52('0x14')](function(_0x146c35){_0x43b8c8=_0x146c35;if(_0x43b8c8&&_0x43b8c8[_0x4c52('0x1b')]){switch(_0x43b8c8['type']){case _0x4c52('0x1c'):var _0x1c7f7e=require(_0x4c52('0x1c'));if(_0x43b8c8[_0x4c52('0x1d')]&&_0x43b8c8[_0x4c52('0x1e')]&&_0x43b8c8[_0x4c52('0x1f')]){var _0x161ce4=new _0x1c7f7e(_0x43b8c8[_0x4c52('0x1d')],_0x43b8c8[_0x4c52('0x1e')]);_0x161ce4[_0x4c52('0x20')][_0x4c52('0x21')]({'body':_0x1dbc9b[_0x4c52('0xa')],'to':_0x1dbc9b[_0x4c52('0x1f')],'from':_0x43b8c8[_0x4c52('0x1f')],'statusCallback':_0x43b8c8['remote']+'/api/sms/messages/'+_0x1dbc9b['id']+_0x4c52('0x22')+_0x43b8c8[_0x4c52('0x23')]})[_0x4c52('0x14')](function(_0x5e3f3){if(_0x5e3f3[_0x4c52('0x24')]){return _0x5c3a2e[_0x4c52('0x25')]({'messageId':_0x5e3f3['sid']});}})[_0x4c52('0x16')](function(_0x19e4b9){logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),'twilio',util[_0x4c52('0x28')](_0x19e4b9,{'showHidden':![],'depth':null}));});}else{logger[_0x4c52('0x17')](_0x4c52('0x26'),'afterCreate',_0x4c52('0x1c'),_0x4c52('0x29'));}break;case _0x4c52('0x2a'):var _0x24169e=_0x4c52('0x2b');if(_0x43b8c8[_0x4c52('0x2c')]&&_0x43b8c8[_0x4c52('0x2d')]){var _0x2b7d53={'recipient':[_0x1dbc9b[_0x4c52('0x1f')]],'message':_0x1dbc9b[_0x4c52('0xa')],'message_type':_0x43b8c8['smsMethod']};if(_0x43b8c8[_0x4c52('0x2e')]&&_0x43b8c8[_0x4c52('0x2e')]!=='SI'){_0x2b7d53[_0x4c52('0x2f')]=_0x43b8c8['phone'];}var _0x4d4274={'url':_0x24169e+_0x4c52('0x30')+_0x43b8c8[_0x4c52('0x2c')]+_0x4c52('0x31')+_0x43b8c8[_0x4c52('0x2d')],'method':_0x4c52('0x32')};rp(_0x4d4274)[_0x4c52('0x14')](function(_0x4fc8cc){var _0x56d994=_0x4fc8cc[_0x4c52('0x33')](';');var _0x15c0e6={'user_key':_0x56d994[0x0],'session_key':_0x56d994[0x1]};_0x4d4274={'url':_0x24169e+_0x4c52('0x34'),'method':_0x4c52('0x35'),'headers':{'user_key':_0x15c0e6[_0x4c52('0x36')],'Session_key':_0x15c0e6[_0x4c52('0x37')]},'json':!![],'body':_0x2b7d53};return rp(_0x4d4274);})[_0x4c52('0x14')](function(_0x20b970){if(_0x20b970[_0x4c52('0x38')]>=0x1){var _0x46a3c7={'messageId':_0x20b970[_0x4c52('0x39')]};if(_0x43b8c8['smsMethod']!=='GP'||!_0x43b8c8[_0x4c52('0x3a')]){_0x46a3c7[_0x4c52('0x3b')]=!![];}return _0x5c3a2e[_0x4c52('0x25')](_0x46a3c7);}else{return logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),'skebby',util['inspect'](_0x20b970,{'showHidden':![],'depth':null}));}})[_0x4c52('0x16')](function(_0x42c0b5){return logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x2a'),util['inspect'](_0x42c0b5,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),'skebby','Missing\x20parameters:\x20username,\x20password');}break;case _0x4c52('0x3c'):if(_0x43b8c8[_0x4c52('0x1e')]){var _0x502bfa={'recipient':_0x1dbc9b[_0x4c52('0x1f')],'message':_0x1dbc9b[_0x4c52('0xa')],'sender':_0x43b8c8['senderString']||_0x43b8c8[_0x4c52('0x1f')],'authorization':_0x43b8c8[_0x4c52('0x1e')]};var _0x367358={'method':_0x4c52('0x35'),'uri':'https://smsapi.connectel.se/api/v2/send/','body':_0x502bfa,'json':!![]};rp(_0x367358)['then'](function(_0x1d969e){var _0x529e4c={'messageId':_0x1d969e[_0x4c52('0x3d')]};if(!_0x43b8c8[_0x4c52('0x3a')]){_0x529e4c[_0x4c52('0x3b')]=!![];}return _0x5c3a2e['update'](_0x529e4c);})[_0x4c52('0x16')](function(_0x3bea36){logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),'connectel',util['inspect'](_0x3bea36,{'showHidden':![],'depth':null}));});}else{logger[_0x4c52('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x4c52('0x27'),_0x4c52('0x3c'),_0x4c52('0x3e'));}break;case _0x4c52('0x3f'):if(_0x43b8c8['username']&&_0x43b8c8[_0x4c52('0x2d')]){var _0x502bfa={'messages':[{'source':_0x4c52('0x40'),'to':_0x1dbc9b[_0x4c52('0x1f')],'body':_0x1dbc9b['body'],'from':_0x43b8c8['senderString']||_0x43b8c8[_0x4c52('0x1f')]}]};var _0xe77b89=util[_0x4c52('0x41')](_0x4c52('0x42'),_0x43b8c8[_0x4c52('0x2c')],_0x43b8c8[_0x4c52('0x2d')]);var _0x367358={'method':_0x4c52('0x35'),'uri':_0x4c52('0x43'),'body':_0x502bfa,'headers':{'Authorization':util[_0x4c52('0x41')](_0x4c52('0x44'),new Buffer(_0xe77b89)[_0x4c52('0x45')]('base64'))},'json':!![]};rp(_0x367358)[_0x4c52('0x14')](function(_0x48f12a){if(_0x48f12a['http_code']>=0xc8&&_0x48f12a[_0x4c52('0x46')]<=0xce){if(_0x48f12a['data']&&_0x48f12a[_0x4c52('0x47')][_0x4c52('0x48')]>0x0){var _0x3fa6a6=_['head'](_0x48f12a[_0x4c52('0x47')][_0x4c52('0x20')]);var _0x580233={'messageId':_0x3fa6a6['message_id']};if(!_0x43b8c8[_0x4c52('0x3a')]){_0x580233[_0x4c52('0x3b')]=!![];}return _0x5c3a2e[_0x4c52('0x25')](_0x580233);}else{logger[_0x4c52('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x4c52('0x49'),util[_0x4c52('0x28')](_0x48f12a,{'showHidden':![],'depth':null}));}}else{logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x49'),util[_0x4c52('0x28')](_0x48f12a,{'showHidden':![],'depth':null}));}})['catch'](function(_0x10f9e1){logger[_0x4c52('0x17')](_0x4c52('0x26'),'afterCreate',_0x4c52('0x49'),util[_0x4c52('0x28')](_0x10f9e1,{'showHidden':![],'depth':null}));});}else{logger[_0x4c52('0x17')](_0x4c52('0x26'),'afterCreate',_0x4c52('0x49'),_0x4c52('0x4a'));}break;case'plivo':if(_0x43b8c8[_0x4c52('0x4b')]&&_0x43b8c8[_0x4c52('0x1e')]){var _0x502bfa={'dst':_0x1dbc9b[_0x4c52('0x1f')],'text':_0x1dbc9b[_0x4c52('0xa')],'src':_0x43b8c8[_0x4c52('0x4c')]||_0x43b8c8[_0x4c52('0x1f')],'url':_0x43b8c8[_0x4c52('0x4d')]+_0x4c52('0x4e')+_0x1dbc9b['id']+_0x4c52('0x22')+_0x43b8c8[_0x4c52('0x23')]};var _0xe77b89=util[_0x4c52('0x41')]('%s:%s',_0x43b8c8[_0x4c52('0x4b')],_0x43b8c8[_0x4c52('0x1e')]);var _0x367358={'method':_0x4c52('0x35'),'uri':util['format']('https://api.plivo.com/v1/Account/%s/Message/',_0x43b8c8[_0x4c52('0x4b')]),'body':_0x502bfa,'headers':{'Authorization':util['format'](_0x4c52('0x44'),new Buffer(_0xe77b89)['toString'](_0x4c52('0x4f')))},'json':!![]};rp(_0x367358)[_0x4c52('0x14')](function(_0x2b9930){var _0x14bfce={'messageId':_0x2b9930[_0x4c52('0x50')][0x0]};return _0x5c3a2e['update'](_0x14bfce);})[_0x4c52('0x16')](function(_0x510e4c){logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x51'),util['inspect'](_0x510e4c,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),'plivo','Missing\x20parameters:\x20authId,\x20authToken');}break;case _0x4c52('0x52'):if(_0x43b8c8[_0x4c52('0x2c')]&&_0x43b8c8['password']){if(_0x43b8c8[_0x4c52('0x53')]){var _0x41d3db={'method':_0x4c52('0x35'),'uri':_0x43b8c8['baseUrl']+_0x4c52('0x54'),'body':{'username':_0x43b8c8[_0x4c52('0x2c')],'password':_0x43b8c8[_0x4c52('0x2d')]},'json':!![]};return rp(_0x41d3db)[_0x4c52('0x14')](function(_0x355bbb){var _0x3ad33e={'method':'POST','uri':_0x43b8c8[_0x4c52('0x53')]+_0x4c52('0x55'),'body':{'messages':[{'from':_0x43b8c8[_0x4c52('0x1f')],'destinations':[{'to':_0x1dbc9b['phone']}],'text':_0x1dbc9b[_0x4c52('0xa')],'notifyUrl':_0x43b8c8[_0x4c52('0x4d')]+_0x4c52('0x4e')+_0x1dbc9b['id']+_0x4c52('0x22')+_0x43b8c8[_0x4c52('0x23')],'notifyContentType':_0x4c52('0x56'),'callbackData':_0x43b8c8[_0x4c52('0x1f')]+';'+_0x1dbc9b['body']}]},'headers':{'Authorization':_0x4c52('0x57')+_0x355bbb['token']},'json':!![]};return rp(_0x3ad33e)['then'](function(_0x5f44ab){if(_0x5f44ab[_0x4c52('0x20')]){var _0x3d6154={'messageId':_0x5f44ab[_0x4c52('0x20')][0x0][_0x4c52('0x9')]};if(!_0x43b8c8[_0x4c52('0x3a')]){_0x3d6154[_0x4c52('0x3b')]=!![];}return _0x5c3a2e[_0x4c52('0x25')](_0x3d6154);}else{return logger[_0x4c52('0x17')](_0x4c52('0x26'),'afterCreate',_0x4c52('0x52'),util[_0x4c52('0x28')](_0x5f44ab,{'showHidden':![],'depth':null}));}});})['catch'](function(_0x335191){return logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),'infobip',util[_0x4c52('0x28')](_0x335191,{'showHidden':![],'depth':null}));});}else{logger[_0x4c52('0x17')](_0x4c52('0x26'),'afterCreate',_0x4c52('0x52'),_0x4c52('0x58'));}}else{logger[_0x4c52('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x4c52('0x27'),'infobip',_0x4c52('0x4a'));}break;case _0x4c52('0x59'):var _0x33c040=require(_0x4c52('0x5a'));if(_0x43b8c8[_0x4c52('0x5b')]){var _0x58325b={};_0x58325b[_0x4c52('0x5c')]=_0x43b8c8[_0x4c52('0x2c')];_0x58325b[_0x4c52('0x1f')]=_0x1dbc9b[_0x4c52('0x1f')];_0x58325b['sender']=_0x43b8c8[_0x4c52('0x1f')];_0x58325b[_0x4c52('0x5d')]=_0x1dbc9b[_0x4c52('0xa')];_0x58325b[_0x4c52('0x5e')]=+new Date();var _0x3850f6='';var _0x26aa4b='';var _0x3bfbac=Object[_0x4c52('0x5f')](_0x58325b);_0x3bfbac['sort']();for(var _0x3b2b12=0x0;_0x3b2b12<_0x3bfbac[_0x4c52('0x60')];_0x3b2b12++){if(_0x3850f6!=''){_0x3850f6+='&';}_0x3850f6+=_0x3bfbac[_0x3b2b12]+'='+encodeURIComponent(_0x58325b[_0x3bfbac[_0x3b2b12]]);_0x26aa4b+=_0x58325b[_0x3bfbac[_0x3b2b12]];}_0x26aa4b+=_0x43b8c8[_0x4c52('0x5b')];_0x26aa4b=_0x33c040['createHash'](_0x4c52('0x61'))[_0x4c52('0x25')](_0x26aa4b)['digest'](_0x4c52('0x62'));if(_0x3850f6!==''){_0x3850f6+='&';}_0x3850f6+=_0x4c52('0x63')+_0x26aa4b;var _0x4d4274={'method':_0x4c52('0x32'),'uri':_0x43b8c8[_0x4c52('0x53')]+_0x4c52('0x64')+_0x3850f6,'json':!![]};return rp(_0x4d4274)[_0x4c52('0x14')](function(_0x1c4924){var _0x4c5166=Object[_0x4c52('0x5f')](_0x1c4924);if(_0x1c4924[_0x4c5166[0x0]][_0x4c52('0x17')]&&parseInt(_0x1c4924[_0x4c5166[0x0]]['error'])===0x0){var _0x1ef104={'messageId':_0x1c4924[_0x4c5166[0x0]]['id_sms']};if(!_0x43b8c8[_0x4c52('0x3a')]){_0x1ef104[_0x4c52('0x3b')]=!![];}return _0x5c3a2e[_0x4c52('0x25')](_0x1ef104);}else{return logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x59'),util[_0x4c52('0x28')](_0x1c4924[_0x4c52('0x17')],{'showHidden':![],'depth':null}));}})[_0x4c52('0x16')](function(_0x46b423){return logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x59'),util[_0x4c52('0x28')](_0x46b423,{'showHidden':![],'depth':null}));});}else{logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x59'),_0x4c52('0x65'));}break;case'clickatell':if(_0x43b8c8[_0x4c52('0x5b')]){var _0x2cb3b0={'method':_0x4c52('0x35'),'uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x43b8c8['apiKey']},'body':{'content':_0x1dbc9b[_0x4c52('0xa')],'to':[_0x1dbc9b[_0x4c52('0x1f')]],'from':_0x43b8c8[_0x4c52('0x1f')],'binary':![],'clientMessageId':_0x4c52('0x66'),'charset':_0x4c52('0x67')},'json':!![]};rp(_0x2cb3b0)['then'](function(_0x98ef20){if(!_0x98ef20[_0x4c52('0x17')]){var _0x260696={'messageId':_0x98ef20[_0x4c52('0x20')][0x0]['apiMessageId']};if(!_0x43b8c8[_0x4c52('0x3a')]){_0x260696[_0x4c52('0x3b')]=!![];}return _0x5c3a2e['update'](_0x260696);}else{return logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x68'),util[_0x4c52('0x28')](_0x98ef20[_0x4c52('0x17')],{'showHidden':![],'depth':null}));}})[_0x4c52('0x16')](function(_0x3fc35f){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x4c52('0x27'),_0x4c52('0x68'),util['inspect'](_0x3fc35f,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x68'),_0x4c52('0x65'));}break;case _0x4c52('0x69'):if(_0x43b8c8[_0x4c52('0x2c')]&&_0x43b8c8[_0x4c52('0x2d')]){var _0xe77b89=util[_0x4c52('0x41')](_0x4c52('0x42'),_0x43b8c8[_0x4c52('0x2c')],_0x43b8c8['password']);var _0x367358={'method':_0x4c52('0x35'),'uri':_0x4c52('0x6a')+_0x43b8c8[_0x4c52('0x6b')]+'/messages','body':{'to':[_0x1dbc9b[_0x4c52('0x1f')]],'text':_0x1dbc9b['body'],'from':_0x43b8c8[_0x4c52('0x1f')],'applicationId':_0x43b8c8['applicationId']},'headers':{'Authorization':util['format']('Basic\x20%s',new Buffer(_0xe77b89)[_0x4c52('0x45')](_0x4c52('0x4f')))},'json':!![]};rp(_0x367358)['then'](function(_0x3f44bf){if(_0x3f44bf['id']){var _0x1ccc34={'messageId':_0x3f44bf['id']};return _0x5c3a2e['update'](_0x1ccc34);}else{logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),'bandwidth',util['inspect'](_0x3f44bf,{'showHidden':![],'depth':null}));}})[_0x4c52('0x16')](function(_0x59b28c){logger['error'](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x69'),util[_0x4c52('0x28')](_0x59b28c,{'showHidden':![],'depth':null}));});}else{logger[_0x4c52('0x17')](_0x4c52('0x26'),_0x4c52('0x27'),_0x4c52('0x69'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x4c52('0x6c'):if(_0x43b8c8[_0x4c52('0x5b')]){var _0x3e4d1d={};var _0x4d4274={'method':'POST','uri':'https://api.intelepeer.com/_rest/v4/app/sms/send','headers':{'Authorization':'Bearer\x20'+_0x43b8c8[_0x4c52('0x5b')],'Content-Type':_0x4c52('0x56')},'body':{'from':_0x43b8c8[_0x4c52('0x1f')],'to':_0x1dbc9b[_0x4c52('0x1f')],'text':_0x1dbc9b['body']},'json':!![]};return rp(_0x4d4274)['then'](function(_0x5b77da){if(_0x5b77da[_0x4c52('0x6d')]==0xca){_0x3e4d1d[_0x4c52('0x6e')]=_0x5b77da;var _0x53b2e2={'method':'POST','uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0x4c52('0x6f')+_0x43b8c8[_0x4c52('0x5b')],'Content-Type':_0x4c52('0x56')},'body':{'refid':_0x3e4d1d[_0x4c52('0x6e')]['refid']},'json':!![]};return rp(_0x53b2e2)[_0x4c52('0x14')](function(_0x29dda8){_0x3e4d1d[_0x4c52('0x70')]=_0x29dda8;var _0x3e90f8={'messageId':_0x3e4d1d[_0x4c52('0x6e')][_0x4c52('0x71')],'read':!![]};return _0x5c3a2e[_0x4c52('0x25')](_0x3e90f8);});}else{return logger[_0x4c52('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x4c52('0x6c'),util[_0x4c52('0x28')](_0x5b77da,{'showHidden':![],'depth':null}));}})[_0x4c52('0x16')](function(_0x2b7e0a){return logger['error'](_0x4c52('0x26'),'afterCreate',_0x4c52('0x6c'),util['inspect'](_0x2b7e0a,{'showHidden':![],'depth':null}));});}else{return logger[_0x4c52('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x4c52('0x6c'),_0x4c52('0x72'));}break;}}})['finally'](function(){_0x276301();});}else{_0x276301();}}},'charset':'utf8mb4','collate':_0x4c52('0x73')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0cfe=['message','result','catch','CreateSmsMessage','SmsMessage','create','body','options','raw','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','http','redis','localhost','socket.io-emitter','./smsMessage.socket','register','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x5a7f64,_0x347d57){var _0x3d30f1=function(_0x4bd1d6){while(--_0x4bd1d6){_0x5a7f64['push'](_0x5a7f64['shift']());}};_0x3d30f1(++_0x347d57);}(_0x0cfe,0x85));var _0xe0cf=function(_0x2846ef,_0x4b6603){_0x2846ef=_0x2846ef-0x0;var _0x54c2b8=_0x0cfe[_0x2846ef];return _0x54c2b8;};'use strict';var _=require(_0xe0cf('0x0'));var util=require('util');var moment=require(_0xe0cf('0x1'));var BPromise=require(_0xe0cf('0x2'));var rs=require(_0xe0cf('0x3'));var fs=require('fs');var Redis=require(_0xe0cf('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xe0cf('0x5'));var logger=require('../../config/logger')(_0xe0cf('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xe0cf('0x7')]({'port':0x232a});config[_0xe0cf('0x8')]=_['defaults'](config[_0xe0cf('0x8')],{'host':_0xe0cf('0x9'),'port':0x18eb});var socket=require(_0xe0cf('0xa'))(new Redis(config[_0xe0cf('0x8')]));require(_0xe0cf('0xb'))[_0xe0cf('0xc')](socket);function respondWithRpcPromise(_0x8b35ec,_0x284f54,_0x182838){return new BPromise(function(_0x3ddcc7,_0x1d77da){return client[_0xe0cf('0xd')](_0x8b35ec,_0x182838)['then'](function(_0x40798c){logger[_0xe0cf('0xe')](_0xe0cf('0xf'),_0x284f54,_0xe0cf('0x10'));logger[_0xe0cf('0x11')](_0xe0cf('0x12'),_0x284f54,_0xe0cf('0x10'),JSON[_0xe0cf('0x13')](_0x40798c));if(_0x40798c[_0xe0cf('0x14')]){if(_0x40798c[_0xe0cf('0x14')][_0xe0cf('0x15')]===0x1f4){logger[_0xe0cf('0x14')]('SmsMessage,\x20%s,\x20%s',_0x284f54,_0x40798c['error']['message']);return _0x1d77da(_0x40798c[_0xe0cf('0x14')][_0xe0cf('0x16')]);}logger[_0xe0cf('0x14')](_0xe0cf('0xf'),_0x284f54,_0x40798c[_0xe0cf('0x14')][_0xe0cf('0x16')]);return _0x3ddcc7(_0x40798c['error'][_0xe0cf('0x16')]);}else{logger[_0xe0cf('0xe')]('SmsMessage,\x20%s,\x20%s',_0x284f54,_0xe0cf('0x10'));_0x3ddcc7(_0x40798c[_0xe0cf('0x17')][_0xe0cf('0x16')]);}})[_0xe0cf('0x18')](function(_0x3efd95){logger[_0xe0cf('0x14')](_0xe0cf('0xf'),_0x284f54,_0x3efd95);_0x1d77da(_0x3efd95);});});}exports[_0xe0cf('0x19')]=function(_0x82d98e){var _0x4a67db=this;return new Promise(function(_0x288718,_0x464358){return db[_0xe0cf('0x1a')][_0xe0cf('0x1b')](_0x82d98e[_0xe0cf('0x1c')],{'raw':_0x82d98e[_0xe0cf('0x1d')]?_0x82d98e[_0xe0cf('0x1d')][_0xe0cf('0x1e')]===undefined?!![]:![]:!![]})['then'](function(_0x1c53fc){logger['info']('CreateSmsMessage',_0x82d98e);logger[_0xe0cf('0x11')](_0xe0cf('0x19'),_0x82d98e,JSON[_0xe0cf('0x13')](_0x1c53fc));_0x288718(_0x1c53fc);})[_0xe0cf('0x18')](function(_0x5a3386){logger[_0xe0cf('0x14')](_0xe0cf('0x19'),_0x5a3386[_0xe0cf('0x16')],_0x82d98e);_0x464358(_0x4a67db[_0xe0cf('0x14')](0x1f4,_0x5a3386[_0xe0cf('0x16')]));});});};
\ No newline at end of file
+var _0xf0f7=['jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./smsMessage.socket','register','request','then','info','SmsMessage,\x20%s,\x20%s','debug','SmsMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateSmsMessage','create','body','options','raw','lodash','util','ioredis','../../mysqldb','rpc'];(function(_0x4b0b48,_0x4d8de7){var _0x212adc=function(_0x4ccc5a){while(--_0x4ccc5a){_0x4b0b48['push'](_0x4b0b48['shift']());}};_0x212adc(++_0x4d8de7);}(_0xf0f7,0x15b));var _0x7f0f=function(_0x5ab72a,_0x43f96b){_0x5ab72a=_0x5ab72a-0x0;var _0x14683e=_0xf0f7[_0x5ab72a];return _0x14683e;};'use strict';var _=require(_0x7f0f('0x0'));var util=require(_0x7f0f('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7f0f('0x2'));var db=require(_0x7f0f('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x7f0f('0x4'));var config=require('../../config/environment');var jayson=require(_0x7f0f('0x5'));var client=jayson[_0x7f0f('0x6')][_0x7f0f('0x7')]({'port':0x232a});config[_0x7f0f('0x8')]=_[_0x7f0f('0x9')](config[_0x7f0f('0x8')],{'host':_0x7f0f('0xa'),'port':0x18eb});var socket=require(_0x7f0f('0xb'))(new Redis(config[_0x7f0f('0x8')]));require(_0x7f0f('0xc'))[_0x7f0f('0xd')](socket);function respondWithRpcPromise(_0x3c455a,_0x687d11,_0x2cd042){return new BPromise(function(_0x3186d4,_0x5cd7f1){return client[_0x7f0f('0xe')](_0x3c455a,_0x2cd042)[_0x7f0f('0xf')](function(_0x10d05f){logger[_0x7f0f('0x10')](_0x7f0f('0x11'),_0x687d11,'request\x20sent');logger[_0x7f0f('0x12')](_0x7f0f('0x13'),_0x687d11,_0x7f0f('0x14'),JSON[_0x7f0f('0x15')](_0x10d05f));if(_0x10d05f[_0x7f0f('0x16')]){if(_0x10d05f[_0x7f0f('0x16')][_0x7f0f('0x17')]===0x1f4){logger[_0x7f0f('0x16')](_0x7f0f('0x11'),_0x687d11,_0x10d05f[_0x7f0f('0x16')]['message']);return _0x5cd7f1(_0x10d05f['error'][_0x7f0f('0x18')]);}logger[_0x7f0f('0x16')]('SmsMessage,\x20%s,\x20%s',_0x687d11,_0x10d05f[_0x7f0f('0x16')][_0x7f0f('0x18')]);return _0x3186d4(_0x10d05f[_0x7f0f('0x16')][_0x7f0f('0x18')]);}else{logger[_0x7f0f('0x10')]('SmsMessage,\x20%s,\x20%s',_0x687d11,'request\x20sent');_0x3186d4(_0x10d05f[_0x7f0f('0x19')][_0x7f0f('0x18')]);}})[_0x7f0f('0x1a')](function(_0x189512){logger[_0x7f0f('0x16')](_0x7f0f('0x11'),_0x687d11,_0x189512);_0x5cd7f1(_0x189512);});});}exports[_0x7f0f('0x1b')]=function(_0x42d902){var _0x108e7c=this;return new Promise(function(_0x454f72,_0x3e9ef9){return db['SmsMessage'][_0x7f0f('0x1c')](_0x42d902[_0x7f0f('0x1d')],{'raw':_0x42d902[_0x7f0f('0x1e')]?_0x42d902['options'][_0x7f0f('0x1f')]===undefined?!![]:![]:!![]})[_0x7f0f('0xf')](function(_0x43f956){logger['info'](_0x7f0f('0x1b'),_0x42d902);logger[_0x7f0f('0x12')](_0x7f0f('0x1b'),_0x42d902,JSON[_0x7f0f('0x15')](_0x43f956));_0x454f72(_0x43f956);})[_0x7f0f('0x1a')](function(_0x4c5f87){logger['error'](_0x7f0f('0x1b'),_0x4c5f87[_0x7f0f('0x18')],_0x42d902);_0x3e9ef9(_0x108e7c[_0x7f0f('0x16')](0x1f4,_0x4c5f87[_0x7f0f('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0ad=['remove','update','emit','removeListener','register','length','smsMessage:','./smsMessage.events'];(function(_0x472314,_0x379440){var _0x4d7a6c=function(_0x243b7a){while(--_0x243b7a){_0x472314['push'](_0x472314['shift']());}};_0x4d7a6c(++_0x379440);}(_0xf0ad,0xdf));var _0xdf0a=function(_0x30c649,_0x2ebbac){_0x30c649=_0x30c649-0x0;var _0x3edfb9=_0xf0ad[_0x30c649];return _0x3edfb9;};'use strict';var SmsMessageEvents=require(_0xdf0a('0x0'));var events=['save',_0xdf0a('0x1'),_0xdf0a('0x2')];function createListener(_0x526305,_0x533a51){return function(_0x281780){_0x533a51[_0xdf0a('0x3')](_0x526305,_0x281780);};}function removeListener(_0x395224,_0x9b2a76){return function(){SmsMessageEvents[_0xdf0a('0x4')](_0x395224,_0x9b2a76);};}exports[_0xdf0a('0x5')]=function(_0x2f6753){for(var _0x41cc6b=0x0,_0x3c0392=events[_0xdf0a('0x6')];_0x41cc6b<_0x3c0392;_0x41cc6b++){var _0x52a8ca=events[_0x41cc6b];var _0x5c733b=createListener(_0xdf0a('0x7')+_0x52a8ca,_0x2f6753);SmsMessageEvents['on'](_0x52a8ca,_0x5c733b);}};
\ No newline at end of file
+var _0x0c34=['register','smsMessage:','./smsMessage.events','remove','emit','removeListener'];(function(_0x2d463e,_0x51d118){var _0x5de216=function(_0x2e3cf2){while(--_0x2e3cf2){_0x2d463e['push'](_0x2d463e['shift']());}};_0x5de216(++_0x51d118);}(_0x0c34,0x1dc));var _0x40c3=function(_0x557859,_0x3f36e4){_0x557859=_0x557859-0x0;var _0x34dc1b=_0x0c34[_0x557859];return _0x34dc1b;};'use strict';var SmsMessageEvents=require(_0x40c3('0x0'));var events=['save',_0x40c3('0x1'),'update'];function createListener(_0x53dd85,_0x5ed202){return function(_0x2c9700){_0x5ed202[_0x40c3('0x2')](_0x53dd85,_0x2c9700);};}function removeListener(_0x48147c,_0x5f4179){return function(){SmsMessageEvents[_0x40c3('0x3')](_0x48147c,_0x5f4179);};}exports[_0x40c3('0x4')]=function(_0x39e9b8){for(var _0x410464=0x0,_0x495b0c=events['length'];_0x410464<_0x495b0c;_0x410464++){var _0x2e205e=events[_0x410464];var _0x601935=createListener(_0x40c3('0x5')+_0x2e205e,_0x39e9b8);SmsMessageEvents['on'](_0x2e205e,_0x601935);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87ad=['create','post','addTeams','addAgents','put','update','delete','removeAgents','multer','util','path','connect-timeout','fs-extra','./smsQueue.controller','index','/describe','isAuthenticated','describe','/:id','get','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','getAgents'];(function(_0x5e1b91,_0x236f17){var _0x59b52f=function(_0x5c05ed){while(--_0x5c05ed){_0x5e1b91['push'](_0x5e1b91['shift']());}};_0x59b52f(++_0x236f17);}(_0x87ad,0x1c2));var _0xd87a=function(_0x30d2a5,_0x13516b){_0x30d2a5=_0x30d2a5-0x0;var _0x12f6c6=_0x87ad[_0x30d2a5];return _0x12f6c6;};'use strict';var multer=require(_0xd87a('0x0'));var util=require(_0xd87a('0x1'));var path=require(_0xd87a('0x2'));var timeout=require(_0xd87a('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xd87a('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xd87a('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0xd87a('0x6')]);router['get'](_0xd87a('0x7'),auth[_0xd87a('0x8')](),controller[_0xd87a('0x9')]);router['get'](_0xd87a('0xa'),auth[_0xd87a('0x8')](),controller['show']);router[_0xd87a('0xb')](_0xd87a('0xc'),auth[_0xd87a('0x8')](),controller[_0xd87a('0xd')]);router[_0xd87a('0xb')](_0xd87a('0xe'),auth[_0xd87a('0x8')](),controller[_0xd87a('0xf')]);router['get'](_0xd87a('0x10'),auth[_0xd87a('0x8')](),controller[_0xd87a('0x11')]);router['post']('/',auth[_0xd87a('0x8')](),controller[_0xd87a('0x12')]);router[_0xd87a('0x13')](_0xd87a('0xe'),auth[_0xd87a('0x8')](),controller[_0xd87a('0x14')]);router[_0xd87a('0x13')]('/:id/users',auth[_0xd87a('0x8')](),controller[_0xd87a('0x15')]);router[_0xd87a('0x16')](_0xd87a('0xa'),auth['isAuthenticated'](),controller[_0xd87a('0x17')]);router['delete'](_0xd87a('0xa'),auth[_0xd87a('0x8')](),controller['destroy']);router[_0xd87a('0x18')](_0xd87a('0xe'),auth[_0xd87a('0x8')](),controller['removeTeams']);router[_0xd87a('0x18')]('/:id/users',auth[_0xd87a('0x8')](),controller[_0xd87a('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0x92ef=['multer','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','./smsQueue.controller','get','isAuthenticated','/describe','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','getAgents','post','create','addTeams','/:id/users','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x92ef,0x1a4));var _0xf92e=function(_0x5b211e,_0xd7a8c7){_0x5b211e=_0x5b211e-0x0;var _0x221ce1=_0x92ef[_0x5b211e];return _0x221ce1;};'use strict';var multer=require(_0xf92e('0x0'));var util=require('util');var path=require(_0xf92e('0x1'));var timeout=require(_0xf92e('0x2'));var express=require(_0xf92e('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xf92e('0x4'));var interaction=require(_0xf92e('0x5'));var config=require('../../config/environment');var controller=require(_0xf92e('0x6'));router[_0xf92e('0x7')]('/',auth[_0xf92e('0x8')](),controller['index']);router[_0xf92e('0x7')](_0xf92e('0x9'),auth[_0xf92e('0x8')](),controller[_0xf92e('0xa')]);router[_0xf92e('0x7')](_0xf92e('0xb'),auth[_0xf92e('0x8')](),controller[_0xf92e('0xc')]);router[_0xf92e('0x7')](_0xf92e('0xd'),auth[_0xf92e('0x8')](),controller[_0xf92e('0xe')]);router[_0xf92e('0x7')](_0xf92e('0xf'),auth['isAuthenticated'](),controller[_0xf92e('0x10')]);router[_0xf92e('0x7')]('/:id/users',auth[_0xf92e('0x8')](),controller[_0xf92e('0x11')]);router[_0xf92e('0x12')]('/',auth[_0xf92e('0x8')](),controller[_0xf92e('0x13')]);router[_0xf92e('0x12')](_0xf92e('0xf'),auth[_0xf92e('0x8')](),controller[_0xf92e('0x14')]);router['post'](_0xf92e('0x15'),auth[_0xf92e('0x8')](),controller[_0xf92e('0x16')]);router[_0xf92e('0x17')](_0xf92e('0xb'),auth[_0xf92e('0x8')](),controller[_0xf92e('0x18')]);router[_0xf92e('0x19')](_0xf92e('0xb'),auth[_0xf92e('0x8')](),controller[_0xf92e('0x1a')]);router[_0xf92e('0x19')]('/:id/teams',auth[_0xf92e('0x8')](),controller[_0xf92e('0x1b')]);router['delete'](_0xf92e('0x15'),auth[_0xf92e('0x8')](),controller[_0xf92e('0x1c')]);module[_0xf92e('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed7e=['ENUM','roundrobin','sequelize','exports','STRING','name'];(function(_0xb1cf84,_0x813740){var _0x4bad2e=function(_0x53e6f2){while(--_0x53e6f2){_0xb1cf84['push'](_0xb1cf84['shift']());}};_0x4bad2e(++_0x813740);}(_0xed7e,0xfe));var _0xeed7=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xed7e[_0x501510];return _0x1e6ee5;};'use strict';var Sequelize=require(_0xeed7('0x0'));module[_0xeed7('0x1')]={'name':{'type':Sequelize[_0xeed7('0x2')],'unique':_0xeed7('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xeed7('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xeed7('0x4')]('rrmemory','beepall',_0xeed7('0x5'))}};
\ No newline at end of file
+var _0x77ef=['name','ENUM','rrmemory','beepall','roundrobin','STRING'];(function(_0x550aa5,_0x58d76d){var _0x5984=function(_0x8f2b3b){while(--_0x8f2b3b){_0x550aa5['push'](_0x550aa5['shift']());}};_0x5984(++_0x58d76d);}(_0x77ef,0xfb));var _0xf77e=function(_0x524d90,_0x441c74){_0x524d90=_0x524d90-0x0;var _0x378ecb=_0x77ef[_0x524d90];return _0x378ecb;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xf77e('0x0')],'unique':_0xf77e('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xf77e('0x2')](_0xf77e('0x3'),_0xf77e('0x4'),_0xf77e('0x5'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d1b=['save','then','get','SmsQueues','UserProfileResource','error','stack','name','send','index','map','SmsQueue','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','catch','show','params','includeAll','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','destroy','describe','getMembers','findOne','UserSmsQueue','SmsQueueId','findAll','findAndCountAll','UserId','smsPause','updatedAt','createdAt','SIP','getTeams','Team','addTeams','ids','User','Agents','online','voicePause','interface','flatMap','sequelize','transaction','each','findOrCreate','forEach','emit','userSmsQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_sms_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','isEmpty','removeAgents','userSmsQueue:remove','addAgents','omit','spread','getAgents','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./smsQueue.socket','register','sendStatus','status','end','offset','undefined','count','apply','reject'];(function(_0xdeefbd,_0x9e1b3d){var _0x4ff63f=function(_0x4b51f9){while(--_0x4b51f9){_0xdeefbd['push'](_0xdeefbd['shift']());}};_0x4ff63f(++_0x9e1b3d);}(_0x4d1b,0x102));var _0xb4d1=function(_0x4a4922,_0x82cb8f){_0x4a4922=_0x4a4922-0x0;var _0x55a8c6=_0x4d1b[_0x4a4922];return _0x55a8c6;};'use strict';var emlformat=require(_0xb4d1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb4d1('0x1'));var jsonpatch=require(_0xb4d1('0x2'));var rp=require(_0xb4d1('0x3'));var moment=require(_0xb4d1('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xb4d1('0x5'));var util=require('util');var path=require(_0xb4d1('0x6'));var sox=require(_0xb4d1('0x7'));var csv=require('to-csv');var ejs=require(_0xb4d1('0x8'));var fs=require('fs');var fs_extra=require(_0xb4d1('0x9'));var _=require(_0xb4d1('0xa'));var squel=require(_0xb4d1('0xb'));var crypto=require('crypto');var jsforce=require(_0xb4d1('0xc'));var deskjs=require(_0xb4d1('0xd'));var toCsv=require('to-csv');var querystring=require(_0xb4d1('0xe'));var Papa=require(_0xb4d1('0xf'));var Redis=require(_0xb4d1('0x10'));var authService=require(_0xb4d1('0x11'));var qs=require(_0xb4d1('0x12'));var as=require(_0xb4d1('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb4d1('0x14'))(_0xb4d1('0x15'));var utils=require(_0xb4d1('0x16'));var config=require(_0xb4d1('0x17'));var licenseUtil=require(_0xb4d1('0x18'));var db=require(_0xb4d1('0x19'))['db'];config[_0xb4d1('0x1a')]=_[_0xb4d1('0x1b')](config[_0xb4d1('0x1a')],{'host':_0xb4d1('0x1c'),'port':0x18eb});var socket=require(_0xb4d1('0x1d'))(new Redis(config[_0xb4d1('0x1a')]));require(_0xb4d1('0x1e'))[_0xb4d1('0x1f')](socket);function respondWithStatusCode(_0x37cb4c,_0x295264){_0x295264=_0x295264||0xcc;return function(_0x3ba994){if(_0x3ba994){return _0x37cb4c[_0xb4d1('0x20')](_0x295264);}return _0x37cb4c[_0xb4d1('0x21')](_0x295264)[_0xb4d1('0x22')]();};}function respondWithResult(_0x4987d1,_0x513886){_0x513886=_0x513886||0xc8;return function(_0x785af3){if(_0x785af3){return _0x4987d1[_0xb4d1('0x21')](_0x513886)['json'](_0x785af3);}};}function respondWithFilteredResult(_0x3d2f69,_0x57518b){return function(_0x546f91){if(_0x546f91){var _0x388798=typeof _0x57518b[_0xb4d1('0x23')]===_0xb4d1('0x24')&&typeof _0x57518b['limit']==='undefined';var _0x2ddbe1=_0x546f91['count'];var _0x4bede1=_0x388798?0x0:_0x57518b[_0xb4d1('0x23')];var _0x2dd63f=_0x388798?_0x546f91[_0xb4d1('0x25')]:_0x57518b[_0xb4d1('0x23')]+_0x57518b['limit'];var _0x41e770;if(_0x2dd63f>=_0x2ddbe1){_0x2dd63f=_0x2ddbe1;_0x41e770=0xc8;}else{_0x41e770=0xce;}_0x3d2f69['status'](_0x41e770);return _0x3d2f69['set']('Content-Range',_0x4bede1+'-'+_0x2dd63f+'/'+_0x2ddbe1)['json'](_0x546f91);}return null;};}function patchUpdates(_0x41fa10){return function(_0x5e3da8){try{jsonpatch[_0xb4d1('0x26')](_0x5e3da8,_0x41fa10,!![]);}catch(_0x5ca43a){return BPromise[_0xb4d1('0x27')](_0x5ca43a);}return _0x5e3da8[_0xb4d1('0x28')]();};}function saveUpdates(_0x205a16,_0xa988d7){return function(_0x2c0cfb){if(_0x2c0cfb){return _0x2c0cfb['update'](_0x205a16)[_0xb4d1('0x29')](function(_0x32982c){return _0x32982c;});}return null;};}function removeEntity(_0x3f51c8,_0x14728d){return function(_0x558b08){if(_0x558b08){return _0x558b08['destroy']()[_0xb4d1('0x29')](function(){var _0x27cc14=_0x558b08[_0xb4d1('0x2a')]({'plain':!![]});var _0x42ced4=_0xb4d1('0x2b');return db[_0xb4d1('0x2c')]['destroy']({'where':{'type':_0x42ced4,'resourceId':_0x27cc14['id']}})['then'](function(){return _0x558b08;});})[_0xb4d1('0x29')](function(){_0x3f51c8[_0xb4d1('0x21')](0xcc)[_0xb4d1('0x22')]();});}};}function handleEntityNotFound(_0x2d1dd0,_0x503777){return function(_0x1950f2){if(!_0x1950f2){_0x2d1dd0[_0xb4d1('0x20')](0x194);}return _0x1950f2;};}function handleError(_0x307abe,_0x474973){_0x474973=_0x474973||0x1f4;return function(_0x18e053){logger[_0xb4d1('0x2d')](_0x18e053[_0xb4d1('0x2e')]);if(_0x18e053[_0xb4d1('0x2f')]){delete _0x18e053['name'];}_0x307abe[_0xb4d1('0x21')](_0x474973)[_0xb4d1('0x30')](_0x18e053);};}exports[_0xb4d1('0x31')]=function(_0x4dd3da,_0x376c1d){var _0x516dd7={},_0x2bb14f={},_0x146b9d={'count':0x0,'rows':[]};var _0x46796f=_[_0xb4d1('0x32')](db[_0xb4d1('0x33')][_0xb4d1('0x34')],function(_0x1f5622){return{'name':_0x1f5622[_0xb4d1('0x35')],'type':_0x1f5622[_0xb4d1('0x36')][_0xb4d1('0x37')]};});_0x2bb14f[_0xb4d1('0x38')]=_[_0xb4d1('0x32')](_0x46796f,'name');_0x2bb14f[_0xb4d1('0x39')]=_[_0xb4d1('0x3a')](_0x4dd3da[_0xb4d1('0x39')]);_0x2bb14f[_0xb4d1('0x3b')]=_[_0xb4d1('0x3c')](_0x2bb14f['model'],_0x2bb14f[_0xb4d1('0x39')]);_0x516dd7[_0xb4d1('0x3d')]=_['intersection'](_0x2bb14f[_0xb4d1('0x38')],qs[_0xb4d1('0x3e')](_0x4dd3da[_0xb4d1('0x39')]['fields']));_0x516dd7['attributes']=_0x516dd7[_0xb4d1('0x3d')][_0xb4d1('0x3f')]?_0x516dd7[_0xb4d1('0x3d')]:_0x2bb14f[_0xb4d1('0x38')];if(!_0x4dd3da[_0xb4d1('0x39')][_0xb4d1('0x40')](_0xb4d1('0x41'))){_0x516dd7[_0xb4d1('0x42')]=qs[_0xb4d1('0x42')](_0x4dd3da[_0xb4d1('0x39')][_0xb4d1('0x42')]);_0x516dd7[_0xb4d1('0x23')]=qs[_0xb4d1('0x23')](_0x4dd3da[_0xb4d1('0x39')]['offset']);}_0x516dd7[_0xb4d1('0x43')]=qs[_0xb4d1('0x44')](_0x4dd3da[_0xb4d1('0x39')][_0xb4d1('0x44')]);_0x516dd7[_0xb4d1('0x45')]=qs[_0xb4d1('0x3b')](_[_0xb4d1('0x46')](_0x4dd3da[_0xb4d1('0x39')],_0x2bb14f[_0xb4d1('0x3b')]),_0x46796f);if(_0x4dd3da[_0xb4d1('0x39')][_0xb4d1('0x47')]){_0x516dd7[_0xb4d1('0x45')]=_[_0xb4d1('0x48')](_0x516dd7['where'],{'$or':_['map'](_0x46796f,function(_0x351b7d){if(_0x351b7d[_0xb4d1('0x36')]!==_0xb4d1('0x49')){var _0x1e8342={};_0x1e8342[_0x351b7d[_0xb4d1('0x2f')]]={'$like':'%'+_0x4dd3da['query']['filter']+'%'};return _0x1e8342;}})});}_0x516dd7=_[_0xb4d1('0x48')]({},_0x516dd7,_0x4dd3da[_0xb4d1('0x4a')]);var _0x59c7d1={'where':_0x516dd7[_0xb4d1('0x45')]};return db[_0xb4d1('0x33')]['count'](_0x59c7d1)[_0xb4d1('0x29')](function(_0x1172b1){_0x146b9d['count']=_0x1172b1;if(_0x4dd3da['query']['includeAll']){_0x516dd7[_0xb4d1('0x4b')]=[{'all':!![]}];}return db[_0xb4d1('0x33')]['findAll'](_0x516dd7);})[_0xb4d1('0x29')](function(_0x31fa9f){_0x146b9d['rows']=_0x31fa9f;return _0x146b9d;})['then'](respondWithFilteredResult(_0x376c1d,_0x516dd7))[_0xb4d1('0x4c')](handleError(_0x376c1d,null));};exports[_0xb4d1('0x4d')]=function(_0x9aac4f,_0x5e5d33){var _0x1f6562={'raw':!![],'where':{'id':_0x9aac4f[_0xb4d1('0x4e')]['id']}},_0x23beb2={};_0x23beb2[_0xb4d1('0x38')]=_['keys'](db[_0xb4d1('0x33')][_0xb4d1('0x34')]);_0x23beb2[_0xb4d1('0x39')]=_[_0xb4d1('0x3a')](_0x9aac4f[_0xb4d1('0x39')]);_0x23beb2[_0xb4d1('0x3b')]=_[_0xb4d1('0x3c')](_0x23beb2[_0xb4d1('0x38')],_0x23beb2[_0xb4d1('0x39')]);_0x1f6562[_0xb4d1('0x3d')]=_[_0xb4d1('0x3c')](_0x23beb2['model'],qs[_0xb4d1('0x3e')](_0x9aac4f[_0xb4d1('0x39')][_0xb4d1('0x3e')]));_0x1f6562[_0xb4d1('0x3d')]=_0x1f6562[_0xb4d1('0x3d')]['length']?_0x1f6562[_0xb4d1('0x3d')]:_0x23beb2[_0xb4d1('0x38')];if(_0x9aac4f[_0xb4d1('0x39')][_0xb4d1('0x4f')]){_0x1f6562[_0xb4d1('0x4b')]=[{'all':!![]}];}_0x1f6562=_[_0xb4d1('0x48')]({},_0x1f6562,_0x9aac4f[_0xb4d1('0x4a')]);return db['SmsQueue'][_0xb4d1('0x50')](_0x1f6562)[_0xb4d1('0x29')](handleEntityNotFound(_0x5e5d33,null))[_0xb4d1('0x29')](respondWithResult(_0x5e5d33,null))['catch'](handleError(_0x5e5d33,null));};exports[_0xb4d1('0x51')]=function(_0x467556,_0x2aefee){return db[_0xb4d1('0x33')][_0xb4d1('0x51')](_0x467556['body'],{})[_0xb4d1('0x29')](function(_0xc0c69c){var _0x38bb72=_0x467556[_0xb4d1('0x52')][_0xb4d1('0x2a')]({'plain':!![]});if(!_0x38bb72)throw new Error(_0xb4d1('0x53'));if(_0x38bb72[_0xb4d1('0x54')]==='user'){var _0x4c2b1b=_0xc0c69c['get']({'plain':!![]});var _0xef1286=_0xb4d1('0x2b');return db['UserProfileSection'][_0xb4d1('0x50')]({'where':{'name':_0xef1286,'userProfileId':_0x38bb72['userProfileId']},'raw':!![]})[_0xb4d1('0x29')](function(_0x1598c){if(_0x1598c&&_0x1598c[_0xb4d1('0x55')]===0x0){return db[_0xb4d1('0x2c')][_0xb4d1('0x51')]({'name':_0x4c2b1b[_0xb4d1('0x2f')],'resourceId':_0x4c2b1b['id'],'type':_0x1598c[_0xb4d1('0x2f')],'sectionId':_0x1598c['id']},{})['then'](function(){return _0xc0c69c;});}else{return _0xc0c69c;}})[_0xb4d1('0x4c')](function(_0x1092f9){logger[_0xb4d1('0x2d')](_0xb4d1('0x56'),_0x1092f9);throw _0x1092f9;});}return _0xc0c69c;})['then'](respondWithResult(_0x2aefee,0xc9))[_0xb4d1('0x4c')](handleError(_0x2aefee,null));};exports[_0xb4d1('0x57')]=function(_0x43b0a6,_0x1a9b79){if(_0x43b0a6[_0xb4d1('0x58')]['id']){delete _0x43b0a6['body']['id'];}return db[_0xb4d1('0x33')][_0xb4d1('0x50')]({'where':{'id':_0x43b0a6[_0xb4d1('0x4e')]['id']}})[_0xb4d1('0x29')](handleEntityNotFound(_0x1a9b79,null))[_0xb4d1('0x29')](saveUpdates(_0x43b0a6[_0xb4d1('0x58')],null))['then'](respondWithResult(_0x1a9b79,null))[_0xb4d1('0x4c')](handleError(_0x1a9b79,null));};exports[_0xb4d1('0x59')]=function(_0x5b075b,_0x2fd4f0){return db[_0xb4d1('0x33')][_0xb4d1('0x50')]({'where':{'id':_0x5b075b[_0xb4d1('0x4e')]['id']}})[_0xb4d1('0x29')](handleEntityNotFound(_0x2fd4f0,null))[_0xb4d1('0x29')](removeEntity(_0x2fd4f0,null))[_0xb4d1('0x4c')](handleError(_0x2fd4f0,null));};exports[_0xb4d1('0x5a')]=function(_0xaa786c,_0x174a7c){return db[_0xb4d1('0x33')][_0xb4d1('0x5a')]()[_0xb4d1('0x29')](respondWithResult(_0x174a7c,null))[_0xb4d1('0x4c')](handleError(_0x174a7c,null));};exports[_0xb4d1('0x5b')]=function(_0x280811,_0x505104,_0x191de6){var _0x3ffccc={'raw':!![],'where':{}},_0x5056cc={},_0x46e9e1;return db[_0xb4d1('0x33')][_0xb4d1('0x5c')]({'where':{'id':_0x280811['params']['id']}})[_0xb4d1('0x29')](handleEntityNotFound(_0x505104,null))['then'](function(_0x2c1166){if(_0x2c1166){_0x46e9e1=_0x2c1166[_0xb4d1('0x2a')]({'plain':!![]});_0x5056cc[_0xb4d1('0x38')]=_[_0xb4d1('0x3a')](db[_0xb4d1('0x5d')][_0xb4d1('0x34')]);_0x5056cc[_0xb4d1('0x39')]=_[_0xb4d1('0x3a')](_0x280811[_0xb4d1('0x39')]);_0x5056cc[_0xb4d1('0x3b')]=_[_0xb4d1('0x3c')](_0x5056cc['model'],_0x5056cc['query']);_0x3ffccc[_0xb4d1('0x3d')]=_[_0xb4d1('0x3c')](_0x5056cc[_0xb4d1('0x38')],qs[_0xb4d1('0x3e')](_0x280811[_0xb4d1('0x39')][_0xb4d1('0x3e')]));_0x3ffccc[_0xb4d1('0x3d')]=_0x3ffccc['attributes']['length']?_0x3ffccc[_0xb4d1('0x3d')]:_0x5056cc[_0xb4d1('0x38')];if(!_0x280811[_0xb4d1('0x39')][_0xb4d1('0x40')](_0xb4d1('0x41'))){_0x3ffccc[_0xb4d1('0x42')]=qs[_0xb4d1('0x42')](_0x280811[_0xb4d1('0x39')]['limit']);_0x3ffccc[_0xb4d1('0x23')]=qs[_0xb4d1('0x23')](_0x280811[_0xb4d1('0x39')][_0xb4d1('0x23')]);}_0x3ffccc['order']=qs[_0xb4d1('0x44')](_0x280811[_0xb4d1('0x39')][_0xb4d1('0x44')]);_0x3ffccc[_0xb4d1('0x45')]=qs[_0xb4d1('0x3b')](_[_0xb4d1('0x46')](_0x280811[_0xb4d1('0x39')],_0x5056cc[_0xb4d1('0x3b')]));_0x3ffccc[_0xb4d1('0x45')][_0xb4d1('0x5e')]=_0x2c1166['id'];if(_0x280811[_0xb4d1('0x39')][_0xb4d1('0x47')]){_0x3ffccc[_0xb4d1('0x45')]=_[_0xb4d1('0x48')](_0x3ffccc[_0xb4d1('0x45')],{'$or':_['map'](_0x3ffccc[_0xb4d1('0x3d')],function(_0x3444c5){var _0x54b1f8={};_0x54b1f8[_0x3444c5]={'$like':'%'+_0x280811['query']['filter']+'%'};return _0x54b1f8;})});}_0x3ffccc=_[_0xb4d1('0x48')]({},_0x3ffccc,_0x280811[_0xb4d1('0x4a')]);return db[_0xb4d1('0x5d')][_0xb4d1('0x5f')](_0x3ffccc);}})[_0xb4d1('0x29')](function(_0x871af3){if(_0x871af3){return db['User'][_0xb4d1('0x60')]({'where':{'id':_['map'](_0x871af3,_0xb4d1('0x61')),'role':'agent'},'attributes':['id',_0xb4d1('0x2f'),_0xb4d1('0x62'),_0xb4d1('0x63'),_0xb4d1('0x64')]});}})[_0xb4d1('0x29')](function(_0x5d9074){if(_0x5d9074){return{'count':_0x5d9074[_0xb4d1('0x25')],'rows':_['map'](_0x5d9074['rows'],function(_0x45ad07){return{'membername':_0x45ad07[_0xb4d1('0x2f')],'UserId':_0x45ad07['id'],'queue_name':_0x46e9e1['name'],'SmsQueueId':_0x46e9e1['id'],'interface':util['format']('%s/%s',_0xb4d1('0x65'),_0x45ad07[_0xb4d1('0x2f')]),'penalty':0x0,'paused':_0x45ad07['smsPause'],'createdAt':_0x45ad07[_0xb4d1('0x64')],'updatedAt':_0x45ad07['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xb4d1('0x29')](respondWithFilteredResult(_0x505104,_0x3ffccc))[_0xb4d1('0x4c')](handleError(_0x505104,null));};exports[_0xb4d1('0x66')]=function(_0x31bee3,_0x51864a,_0x303450){var _0x3ef15e={};var _0x3900f8={};var _0x46e751;var _0x15871c;return db[_0xb4d1('0x33')]['findOne']({'where':{'id':_0x31bee3['params']['id']}})['then'](handleEntityNotFound(_0x51864a,null))[_0xb4d1('0x29')](function(_0x59e60e){if(_0x59e60e){_0x46e751=_0x59e60e;_0x3900f8[_0xb4d1('0x38')]=_[_0xb4d1('0x3a')](db[_0xb4d1('0x67')]['rawAttributes']);_0x3900f8[_0xb4d1('0x39')]=_[_0xb4d1('0x3a')](_0x31bee3[_0xb4d1('0x39')]);_0x3900f8['filters']=_[_0xb4d1('0x3c')](_0x3900f8[_0xb4d1('0x38')],_0x3900f8['query']);_0x3ef15e[_0xb4d1('0x3d')]=_[_0xb4d1('0x3c')](_0x3900f8[_0xb4d1('0x38')],qs[_0xb4d1('0x3e')](_0x31bee3[_0xb4d1('0x39')]['fields']));_0x3ef15e[_0xb4d1('0x3d')]=_0x3ef15e[_0xb4d1('0x3d')][_0xb4d1('0x3f')]?_0x3ef15e[_0xb4d1('0x3d')]:_0x3900f8['model'];_0x3ef15e[_0xb4d1('0x43')]=qs[_0xb4d1('0x44')](_0x31bee3[_0xb4d1('0x39')][_0xb4d1('0x44')]);_0x3ef15e[_0xb4d1('0x45')]=qs['filters'](_[_0xb4d1('0x46')](_0x31bee3[_0xb4d1('0x39')],_0x3900f8[_0xb4d1('0x3b')]));if(_0x31bee3['query'][_0xb4d1('0x47')]){_0x3ef15e[_0xb4d1('0x45')]=_['merge'](_0x3ef15e[_0xb4d1('0x45')],{'$or':_[_0xb4d1('0x32')](_0x3ef15e['attributes'],function(_0x567962){var _0x4efd58={};_0x4efd58[_0x567962]={'$like':'%'+_0x31bee3[_0xb4d1('0x39')]['filter']+'%'};return _0x4efd58;})});}_0x3ef15e=_[_0xb4d1('0x48')]({},_0x3ef15e,_0x31bee3[_0xb4d1('0x4a')]);return _0x46e751[_0xb4d1('0x66')](_0x3ef15e);}})[_0xb4d1('0x29')](function(_0x2b71a2){if(_0x2b71a2){_0x15871c=_0x2b71a2['length'];if(!_0x31bee3['query'][_0xb4d1('0x40')](_0xb4d1('0x41'))){_0x3ef15e[_0xb4d1('0x42')]=qs[_0xb4d1('0x42')](_0x31bee3[_0xb4d1('0x39')]['limit']);_0x3ef15e[_0xb4d1('0x23')]=qs['offset'](_0x31bee3[_0xb4d1('0x39')][_0xb4d1('0x23')]);}return _0x46e751[_0xb4d1('0x66')](_0x3ef15e);}})['then'](function(_0x13c3e0){if(_0x13c3e0){return _0x13c3e0?{'count':_0x15871c,'rows':_0x13c3e0}:null;}})[_0xb4d1('0x29')](respondWithResult(_0x51864a,null))['catch'](handleError(_0x51864a,null));};exports[_0xb4d1('0x68')]=function(_0x37bee8,_0x2bb7d8,_0x5614fb){var _0x3e6df2=_0x37bee8[_0xb4d1('0x58')][_0xb4d1('0x69')];return db['Team']['findAll']({'where':{'id':_0x3e6df2},'attributes':['id'],'include':[{'model':db[_0xb4d1('0x6a')],'as':_0xb4d1('0x6b'),'attributes':['id','name',_0xb4d1('0x6c'),_0xb4d1('0x6d'),_0xb4d1('0x6e')],'raw':!![]}]})[_0xb4d1('0x29')](function(_0xd2810b){if(_0xd2810b){var _0x122ed9=_[_0xb4d1('0x6f')](_0xd2810b,function(_0x21ce67){var _0x442861=_0x21ce67[_0xb4d1('0x2a')]({'plain':!![]});return _0x442861[_0xb4d1('0x6b')];});return db[_0xb4d1('0x33')][_0xb4d1('0x50')]({'where':{'id':_0x37bee8['params']['id']}})[_0xb4d1('0x29')](function(_0x13bc89){return db[_0xb4d1('0x70')][_0xb4d1('0x71')](function(_0x5d7c1d){return _0x13bc89[_0xb4d1('0x68')](_0x3e6df2,{'transaction':_0x5d7c1d})[_0xb4d1('0x29')](function(){return BPromise[_0xb4d1('0x72')](_0x122ed9,function(_0x3c866f){return db[_0xb4d1('0x5d')][_0xb4d1('0x73')]({'where':{'UserId':_0x3c866f['id'],'SmsQueueId':_0x37bee8[_0xb4d1('0x4e')]['id']},'transaction':_0x5d7c1d});});})[_0xb4d1('0x29')](function(){_0x122ed9[_0xb4d1('0x74')](function(_0x10b5b8){socket[_0xb4d1('0x75')](_0xb4d1('0x76'),{'UserId':_0x10b5b8['id'],'SmsQueueId':_0x13bc89['id']});});});});});}})[_0xb4d1('0x29')](respondWithStatusCode(_0x2bb7d8,null))['catch'](handleError(_0x2bb7d8,null));};exports[_0xb4d1('0x77')]=function(_0x5a2774,_0x2ec2c0,_0x3e2637){return db[_0xb4d1('0x67')][_0xb4d1('0x5f')]({'where':{'id':_0x5a2774['query'][_0xb4d1('0x69')]},'attributes':['id'],'include':[{'model':db[_0xb4d1('0x6a')],'as':_0xb4d1('0x6b'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x2ec2c0,null))[_0xb4d1('0x29')](function(_0x55a3b1){var _0x140208=_[_0xb4d1('0x32')](_0x55a3b1,'id');var _0x3a9202=[];var _0x43112f=[];var _0xe23080=squel[_0xb4d1('0x78')]();_0xe23080[_0xb4d1('0x79')](_0xb4d1('0x7a'))[_0xb4d1('0x7b')](_0xb4d1('0x7c'),'tq')[_0xb4d1('0x7d')](_0xb4d1('0x7e'),'ut',_0xb4d1('0x7f'))['where'](_0xb4d1('0x80'),_0x5a2774['params']['id']);for(var _0x31794e=0x0;_0x31794e<_0x55a3b1['length'];_0x31794e+=0x1){let _0x548513=_0x55a3b1[_0x31794e];for(var _0x5dc2f4=0x0;_0x5dc2f4<_0x548513['Agents'][_0xb4d1('0x3f')];_0x5dc2f4+=0x1){let _0x4b0e29=_0x548513[_0xb4d1('0x6b')][_0x5dc2f4];var _0x4ade3a=_0xe23080[_0xb4d1('0x81')]();_0x4ade3a[_0xb4d1('0x45')](_0xb4d1('0x82'),_0x4b0e29['id']);_0x43112f[_0xb4d1('0x83')](db['sequelize']['query'](_0x4ade3a[_0xb4d1('0x84')](),{'type':db['sequelize'][_0xb4d1('0x85')][_0xb4d1('0x86')]})['then'](function(_0xd85f0b){if(_0xd85f0b['length']===0x1){return _0x4b0e29['id'];}else{var _0x1e2ae6=_[_0xb4d1('0x87')](_['map'](_0xd85f0b,_0xb4d1('0x88')),function(_0x374770){return _[_0xb4d1('0x89')](_0x140208,_0x374770);});if(_0x1e2ae6){return _0x4b0e29['id'];}}}));}}return BPromise[_0xb4d1('0x8a')](_0x43112f)['then'](function(_0x1d359e){_0x3a9202=_(_0x3a9202)[_0xb4d1('0x8b')](_0x1d359e)[_0xb4d1('0x8c')]()[_0xb4d1('0x8d')]();return db[_0xb4d1('0x33')][_0xb4d1('0x50')]({'where':{'id':_0x5a2774[_0xb4d1('0x4e')]['id']}})[_0xb4d1('0x29')](function(_0x1b1652){return db[_0xb4d1('0x70')]['transaction'](function(_0x325e9c){return _0x1b1652[_0xb4d1('0x77')](_0x5a2774[_0xb4d1('0x39')][_0xb4d1('0x69')],{'transaction':_0x325e9c})[_0xb4d1('0x29')](function(){if(!_[_0xb4d1('0x8e')](_0x3a9202)){return _0x1b1652[_0xb4d1('0x8f')](_0x3a9202,{'transaction':_0x325e9c});}})[_0xb4d1('0x29')](function(){_0x3a9202[_0xb4d1('0x74')](function(_0x48db0d){socket[_0xb4d1('0x75')](_0xb4d1('0x90'),{'UserId':_0x48db0d,'SmsQueueId':_0x1b1652['id']});});});});});});})[_0xb4d1('0x29')](respondWithStatusCode(_0x2ec2c0,null))[_0xb4d1('0x4c')](handleError(_0x2ec2c0,null));};exports[_0xb4d1('0x91')]=function(_0x3c33c5,_0x4b8d99,_0x2468bd){return db['SmsQueue'][_0xb4d1('0x50')]({'where':{'id':_0x3c33c5['params']['id']}})['then'](handleEntityNotFound(_0x4b8d99,null))[_0xb4d1('0x29')](function(_0x4713e4){if(_0x4713e4){return _0x4713e4[_0xb4d1('0x91')](_0x3c33c5['body'][_0xb4d1('0x69')],_[_0xb4d1('0x92')](_0x3c33c5[_0xb4d1('0x58')],[_0xb4d1('0x69'),'id'])||{})[_0xb4d1('0x93')](function(_0x1e427a){for(var _0x34b9d7=0x0;_0x34b9d7<_0x3c33c5[_0xb4d1('0x58')][_0xb4d1('0x69')][_0xb4d1('0x3f')];_0x34b9d7+=0x1){socket[_0xb4d1('0x75')]('userSmsQueue:save',{'UserId':Number(_0x3c33c5['body'][_0xb4d1('0x69')][_0x34b9d7]),'SmsQueueId':Number(_0x3c33c5['params']['id'])});}return _0x1e427a;});}})[_0xb4d1('0x29')](respondWithResult(_0x4b8d99,null))['catch'](handleError(_0x4b8d99,null));};exports[_0xb4d1('0x8f')]=function(_0xc96515,_0x4598b0,_0x326a6e){return db[_0xb4d1('0x33')]['find']({'where':{'id':_0xc96515['params']['id']}})[_0xb4d1('0x29')](handleEntityNotFound(_0x4598b0,null))[_0xb4d1('0x29')](function(_0x576001){if(_0x576001){return _0x576001['removeAgents'](_0xc96515[_0xb4d1('0x39')][_0xb4d1('0x69')])[_0xb4d1('0x29')](function(){if(_['isArray'](_0xc96515[_0xb4d1('0x39')]['ids'])){for(var _0x306400=0x0;_0x306400<_0xc96515[_0xb4d1('0x39')]['ids'][_0xb4d1('0x3f')];_0x306400+=0x1){socket[_0xb4d1('0x75')]('userSmsQueue:remove',{'UserId':Number(_0xc96515['query']['ids'][_0x306400]),'SmsQueueId':Number(_0xc96515['params']['id'])});}}else{socket[_0xb4d1('0x75')](_0xb4d1('0x90'),{'UserId':Number(_0xc96515[_0xb4d1('0x39')][_0xb4d1('0x69')]),'SmsQueueId':Number(_0xc96515[_0xb4d1('0x4e')]['id'])});}});}})[_0xb4d1('0x29')](respondWithStatusCode(_0x4598b0,null))['catch'](handleError(_0x4598b0,null));};exports[_0xb4d1('0x94')]=function(_0x486c28,_0x28c55b,_0x122c0c){var _0x211009={};var _0x54137c={};var _0x2101cb;var _0x4011af;return db['SmsQueue'][_0xb4d1('0x5c')]({'where':{'id':_0x486c28[_0xb4d1('0x4e')]['id']}})[_0xb4d1('0x29')](handleEntityNotFound(_0x28c55b,null))['then'](function(_0x7945c4){if(_0x7945c4){_0x2101cb=_0x7945c4;_0x54137c[_0xb4d1('0x38')]=_[_0xb4d1('0x3a')](db[_0xb4d1('0x6a')]['rawAttributes']);_0x54137c[_0xb4d1('0x39')]=_['keys'](_0x486c28[_0xb4d1('0x39')]);_0x54137c[_0xb4d1('0x3b')]=_[_0xb4d1('0x3c')](_0x54137c[_0xb4d1('0x38')],_0x54137c[_0xb4d1('0x39')]);_0x211009[_0xb4d1('0x3d')]=_[_0xb4d1('0x3c')](_0x54137c[_0xb4d1('0x38')],qs['fields'](_0x486c28['query'][_0xb4d1('0x3e')]));_0x211009[_0xb4d1('0x3d')]=_0x211009[_0xb4d1('0x3d')][_0xb4d1('0x3f')]?_0x211009[_0xb4d1('0x3d')]:_0x54137c[_0xb4d1('0x38')];_0x211009['order']=qs[_0xb4d1('0x44')](_0x486c28[_0xb4d1('0x39')][_0xb4d1('0x44')]);_0x211009[_0xb4d1('0x45')]=qs[_0xb4d1('0x3b')](_[_0xb4d1('0x46')](_0x486c28[_0xb4d1('0x39')],_0x54137c[_0xb4d1('0x3b')]));if(_0x486c28[_0xb4d1('0x39')]['filter']){_0x211009['where']=_[_0xb4d1('0x48')](_0x211009[_0xb4d1('0x45')],{'$or':_['map'](_0x211009[_0xb4d1('0x3d')],function(_0x3eac0b){var _0x48e14e={};_0x48e14e[_0x3eac0b]={'$like':'%'+_0x486c28[_0xb4d1('0x39')]['filter']+'%'};return _0x48e14e;})});}_0x211009=_[_0xb4d1('0x48')]({},_0x211009,_0x486c28['options']);return _0x2101cb[_0xb4d1('0x94')](_0x211009);}})[_0xb4d1('0x29')](function(_0x19b562){if(_0x19b562){_0x4011af=_0x19b562[_0xb4d1('0x3f')];if(!_0x486c28[_0xb4d1('0x39')][_0xb4d1('0x40')]('nolimit')){_0x211009[_0xb4d1('0x42')]=qs[_0xb4d1('0x42')](_0x486c28['query'][_0xb4d1('0x42')]);_0x211009[_0xb4d1('0x23')]=qs['offset'](_0x486c28[_0xb4d1('0x39')][_0xb4d1('0x23')]);}return _0x2101cb[_0xb4d1('0x94')](_0x211009);}})[_0xb4d1('0x29')](function(_0x53ffa6){if(_0x53ffa6){return _0x53ffa6?{'count':_0x4011af,'rows':_0x53ffa6}:null;}})[_0xb4d1('0x29')](respondWithResult(_0x28c55b,null))['catch'](handleError(_0x28c55b,null));};
\ No newline at end of file
+var _0x3914=['length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','findAll','rows','catch','params','keys','rawAttributes','filters','include','find','create','body','user','role','SmsQueues','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','SmsQueueId','User','findAndCountAll','UserId','agent','smsPause','createdAt','%s/%s','SIP','updatedAt','getTeams','findOne','addTeams','Team','online','voicePause','interface','flatMap','Agents','sequelize','transaction','each','UserSmsQueue','findOrCreate','emit','userSmsQueue:save','removeTeams','ids','select','tq.TeamId','from','team_has_sms_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','QueryTypes','every','TeamId','all','union','compact','value','isEmpty','removeAgents','forEach','userSmsQueue:remove','addAgents','omit','spread','isArray','getAgents','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','fs-extra','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./smsQueue.socket','register','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','get','error','stack','name','send','index','SmsQueue','fieldName','type','key','model','map','query','intersection','attributes','fields'];(function(_0xab6a2b,_0x403a6b){var _0x33edba=function(_0x533c32){while(--_0x533c32){_0xab6a2b['push'](_0xab6a2b['shift']());}};_0x33edba(++_0x403a6b);}(_0x3914,0xeb));var _0x4391=function(_0x45161c,_0x5494fc){_0x45161c=_0x45161c-0x0;var _0x186581=_0x3914[_0x45161c];return _0x186581;};'use strict';var emlformat=require(_0x4391('0x0'));var rimraf=require(_0x4391('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4391('0x2'));var rp=require(_0x4391('0x3'));var moment=require('moment');var BPromise=require(_0x4391('0x4'));var Mustache=require(_0x4391('0x5'));var util=require(_0x4391('0x6'));var path=require('path');var sox=require(_0x4391('0x7'));var csv=require(_0x4391('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4391('0x9'));var _=require('lodash');var squel=require(_0x4391('0xa'));var crypto=require('crypto');var jsforce=require(_0x4391('0xb'));var deskjs=require(_0x4391('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4391('0xd'));var Redis=require(_0x4391('0xe'));var authService=require(_0x4391('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x4391('0x10'));var hardwareService=require(_0x4391('0x11'));var logger=require(_0x4391('0x12'))(_0x4391('0x13'));var utils=require('../../config/utils');var config=require(_0x4391('0x14'));var licenseUtil=require(_0x4391('0x15'));var db=require(_0x4391('0x16'))['db'];config[_0x4391('0x17')]=_[_0x4391('0x18')](config[_0x4391('0x17')],{'host':_0x4391('0x19'),'port':0x18eb});var socket=require(_0x4391('0x1a'))(new Redis(config['redis']));require(_0x4391('0x1b'))[_0x4391('0x1c')](socket);function respondWithStatusCode(_0x3f82fb,_0x2c0020){_0x2c0020=_0x2c0020||0xcc;return function(_0x536e5d){if(_0x536e5d){return _0x3f82fb[_0x4391('0x1d')](_0x2c0020);}return _0x3f82fb['status'](_0x2c0020)[_0x4391('0x1e')]();};}function respondWithResult(_0x3a1b80,_0x3e4585){_0x3e4585=_0x3e4585||0xc8;return function(_0x1c2038){if(_0x1c2038){return _0x3a1b80[_0x4391('0x1f')](_0x3e4585)[_0x4391('0x20')](_0x1c2038);}};}function respondWithFilteredResult(_0x2b5117,_0x19924d){return function(_0x58a311){if(_0x58a311){var _0x4cfa6b=typeof _0x19924d[_0x4391('0x21')]==='undefined'&&typeof _0x19924d[_0x4391('0x22')]===_0x4391('0x23');var _0xa9c97f=_0x58a311[_0x4391('0x24')];var _0x3b7709=_0x4cfa6b?0x0:_0x19924d['offset'];var _0x5f1337=_0x4cfa6b?_0x58a311[_0x4391('0x24')]:_0x19924d[_0x4391('0x21')]+_0x19924d[_0x4391('0x22')];var _0x5570a8;if(_0x5f1337>=_0xa9c97f){_0x5f1337=_0xa9c97f;_0x5570a8=0xc8;}else{_0x5570a8=0xce;}_0x2b5117[_0x4391('0x1f')](_0x5570a8);return _0x2b5117[_0x4391('0x25')](_0x4391('0x26'),_0x3b7709+'-'+_0x5f1337+'/'+_0xa9c97f)[_0x4391('0x20')](_0x58a311);}return null;};}function patchUpdates(_0x505d2c){return function(_0x105ef8){try{jsonpatch[_0x4391('0x27')](_0x105ef8,_0x505d2c,!![]);}catch(_0x3c4c9b){return BPromise[_0x4391('0x28')](_0x3c4c9b);}return _0x105ef8[_0x4391('0x29')]();};}function saveUpdates(_0x40ff34,_0x55759a){return function(_0x474666){if(_0x474666){return _0x474666[_0x4391('0x2a')](_0x40ff34)[_0x4391('0x2b')](function(_0x333ca6){return _0x333ca6;});}return null;};}function removeEntity(_0x540339,_0x4b0c28){return function(_0x11c859){if(_0x11c859){return _0x11c859[_0x4391('0x2c')]()[_0x4391('0x2b')](function(){var _0x197408=_0x11c859[_0x4391('0x2d')]({'plain':!![]});var _0x53363c='SmsQueues';return db['UserProfileResource']['destroy']({'where':{'type':_0x53363c,'resourceId':_0x197408['id']}})[_0x4391('0x2b')](function(){return _0x11c859;});})[_0x4391('0x2b')](function(){_0x540339[_0x4391('0x1f')](0xcc)[_0x4391('0x1e')]();});}};}function handleEntityNotFound(_0x49aa36,_0x34059f){return function(_0x32ed74){if(!_0x32ed74){_0x49aa36[_0x4391('0x1d')](0x194);}return _0x32ed74;};}function handleError(_0x1ac51d,_0x74036e){_0x74036e=_0x74036e||0x1f4;return function(_0x47b39a){logger[_0x4391('0x2e')](_0x47b39a[_0x4391('0x2f')]);if(_0x47b39a[_0x4391('0x30')]){delete _0x47b39a[_0x4391('0x30')];}_0x1ac51d[_0x4391('0x1f')](_0x74036e)[_0x4391('0x31')](_0x47b39a);};}exports[_0x4391('0x32')]=function(_0x1b4f0d,_0x1e3f42){var _0x8851cb={},_0x295d1b={},_0x4dad76={'count':0x0,'rows':[]};var _0x46db4c=_['map'](db[_0x4391('0x33')]['rawAttributes'],function(_0x49b0ce){return{'name':_0x49b0ce[_0x4391('0x34')],'type':_0x49b0ce[_0x4391('0x35')][_0x4391('0x36')]};});_0x295d1b[_0x4391('0x37')]=_[_0x4391('0x38')](_0x46db4c,_0x4391('0x30'));_0x295d1b[_0x4391('0x39')]=_['keys'](_0x1b4f0d[_0x4391('0x39')]);_0x295d1b['filters']=_[_0x4391('0x3a')](_0x295d1b['model'],_0x295d1b[_0x4391('0x39')]);_0x8851cb[_0x4391('0x3b')]=_[_0x4391('0x3a')](_0x295d1b[_0x4391('0x37')],qs[_0x4391('0x3c')](_0x1b4f0d[_0x4391('0x39')][_0x4391('0x3c')]));_0x8851cb[_0x4391('0x3b')]=_0x8851cb[_0x4391('0x3b')][_0x4391('0x3d')]?_0x8851cb[_0x4391('0x3b')]:_0x295d1b[_0x4391('0x37')];if(!_0x1b4f0d[_0x4391('0x39')][_0x4391('0x3e')](_0x4391('0x3f'))){_0x8851cb[_0x4391('0x22')]=qs[_0x4391('0x22')](_0x1b4f0d[_0x4391('0x39')]['limit']);_0x8851cb['offset']=qs[_0x4391('0x21')](_0x1b4f0d[_0x4391('0x39')][_0x4391('0x21')]);}_0x8851cb[_0x4391('0x40')]=qs[_0x4391('0x41')](_0x1b4f0d[_0x4391('0x39')][_0x4391('0x41')]);_0x8851cb[_0x4391('0x42')]=qs['filters'](_[_0x4391('0x43')](_0x1b4f0d['query'],_0x295d1b['filters']),_0x46db4c);if(_0x1b4f0d['query']['filter']){_0x8851cb[_0x4391('0x42')]=_[_0x4391('0x44')](_0x8851cb[_0x4391('0x42')],{'$or':_[_0x4391('0x38')](_0x46db4c,function(_0x5edfbd){if(_0x5edfbd['type']!==_0x4391('0x45')){var _0x57feea={};_0x57feea[_0x5edfbd[_0x4391('0x30')]]={'$like':'%'+_0x1b4f0d[_0x4391('0x39')][_0x4391('0x46')]+'%'};return _0x57feea;}})});}_0x8851cb=_[_0x4391('0x44')]({},_0x8851cb,_0x1b4f0d[_0x4391('0x47')]);var _0x25ad60={'where':_0x8851cb['where']};return db[_0x4391('0x33')][_0x4391('0x24')](_0x25ad60)[_0x4391('0x2b')](function(_0x13f5f4){_0x4dad76[_0x4391('0x24')]=_0x13f5f4;if(_0x1b4f0d[_0x4391('0x39')][_0x4391('0x48')]){_0x8851cb['include']=[{'all':!![]}];}return db[_0x4391('0x33')][_0x4391('0x49')](_0x8851cb);})[_0x4391('0x2b')](function(_0x254593){_0x4dad76[_0x4391('0x4a')]=_0x254593;return _0x4dad76;})[_0x4391('0x2b')](respondWithFilteredResult(_0x1e3f42,_0x8851cb))[_0x4391('0x4b')](handleError(_0x1e3f42,null));};exports['show']=function(_0x316c1b,_0x56c07e){var _0x308a49={'raw':!![],'where':{'id':_0x316c1b[_0x4391('0x4c')]['id']}},_0x46a3c4={};_0x46a3c4[_0x4391('0x37')]=_[_0x4391('0x4d')](db[_0x4391('0x33')][_0x4391('0x4e')]);_0x46a3c4[_0x4391('0x39')]=_[_0x4391('0x4d')](_0x316c1b[_0x4391('0x39')]);_0x46a3c4[_0x4391('0x4f')]=_[_0x4391('0x3a')](_0x46a3c4[_0x4391('0x37')],_0x46a3c4['query']);_0x308a49['attributes']=_[_0x4391('0x3a')](_0x46a3c4[_0x4391('0x37')],qs[_0x4391('0x3c')](_0x316c1b[_0x4391('0x39')][_0x4391('0x3c')]));_0x308a49[_0x4391('0x3b')]=_0x308a49['attributes'][_0x4391('0x3d')]?_0x308a49['attributes']:_0x46a3c4[_0x4391('0x37')];if(_0x316c1b['query'][_0x4391('0x48')]){_0x308a49[_0x4391('0x50')]=[{'all':!![]}];}_0x308a49=_[_0x4391('0x44')]({},_0x308a49,_0x316c1b[_0x4391('0x47')]);return db[_0x4391('0x33')][_0x4391('0x51')](_0x308a49)['then'](handleEntityNotFound(_0x56c07e,null))[_0x4391('0x2b')](respondWithResult(_0x56c07e,null))[_0x4391('0x4b')](handleError(_0x56c07e,null));};exports[_0x4391('0x52')]=function(_0xf2c6e0,_0x29470e){return db[_0x4391('0x33')][_0x4391('0x52')](_0xf2c6e0[_0x4391('0x53')],{})[_0x4391('0x2b')](function(_0x294498){var _0x38872d=_0xf2c6e0[_0x4391('0x54')][_0x4391('0x2d')]({'plain':!![]});if(!_0x38872d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x38872d[_0x4391('0x55')]===_0x4391('0x54')){var _0x29fe68=_0x294498['get']({'plain':!![]});var _0x156614=_0x4391('0x56');return db[_0x4391('0x57')]['find']({'where':{'name':_0x156614,'userProfileId':_0x38872d[_0x4391('0x58')]},'raw':!![]})[_0x4391('0x2b')](function(_0x59b3f1){if(_0x59b3f1&&_0x59b3f1[_0x4391('0x59')]===0x0){return db[_0x4391('0x5a')][_0x4391('0x52')]({'name':_0x29fe68[_0x4391('0x30')],'resourceId':_0x29fe68['id'],'type':_0x59b3f1[_0x4391('0x30')],'sectionId':_0x59b3f1['id']},{})[_0x4391('0x2b')](function(){return _0x294498;});}else{return _0x294498;}})[_0x4391('0x4b')](function(_0x56caa3){logger[_0x4391('0x2e')](_0x4391('0x5b'),_0x56caa3);throw _0x56caa3;});}return _0x294498;})[_0x4391('0x2b')](respondWithResult(_0x29470e,0xc9))[_0x4391('0x4b')](handleError(_0x29470e,null));};exports[_0x4391('0x2a')]=function(_0x49e48d,_0x4658b0){if(_0x49e48d[_0x4391('0x53')]['id']){delete _0x49e48d[_0x4391('0x53')]['id'];}return db[_0x4391('0x33')][_0x4391('0x51')]({'where':{'id':_0x49e48d[_0x4391('0x4c')]['id']}})['then'](handleEntityNotFound(_0x4658b0,null))[_0x4391('0x2b')](saveUpdates(_0x49e48d['body'],null))[_0x4391('0x2b')](respondWithResult(_0x4658b0,null))[_0x4391('0x4b')](handleError(_0x4658b0,null));};exports['destroy']=function(_0xc0676d,_0x2c0432){return db[_0x4391('0x33')][_0x4391('0x51')]({'where':{'id':_0xc0676d[_0x4391('0x4c')]['id']}})[_0x4391('0x2b')](handleEntityNotFound(_0x2c0432,null))[_0x4391('0x2b')](removeEntity(_0x2c0432,null))[_0x4391('0x4b')](handleError(_0x2c0432,null));};exports['describe']=function(_0x35b91f,_0x4439fa){return db[_0x4391('0x33')][_0x4391('0x5c')]()[_0x4391('0x2b')](respondWithResult(_0x4439fa,null))[_0x4391('0x4b')](handleError(_0x4439fa,null));};exports[_0x4391('0x5d')]=function(_0x4f49e8,_0x39f1ba,_0x3a1586){var _0x2c13dd={'raw':!![],'where':{}},_0x2df7bf={},_0x349125;return db[_0x4391('0x33')]['findOne']({'where':{'id':_0x4f49e8[_0x4391('0x4c')]['id']}})[_0x4391('0x2b')](handleEntityNotFound(_0x39f1ba,null))[_0x4391('0x2b')](function(_0x3fc690){if(_0x3fc690){_0x349125=_0x3fc690[_0x4391('0x2d')]({'plain':!![]});_0x2df7bf[_0x4391('0x37')]=_[_0x4391('0x4d')](db['UserSmsQueue'][_0x4391('0x4e')]);_0x2df7bf[_0x4391('0x39')]=_[_0x4391('0x4d')](_0x4f49e8[_0x4391('0x39')]);_0x2df7bf[_0x4391('0x4f')]=_[_0x4391('0x3a')](_0x2df7bf[_0x4391('0x37')],_0x2df7bf[_0x4391('0x39')]);_0x2c13dd[_0x4391('0x3b')]=_[_0x4391('0x3a')](_0x2df7bf[_0x4391('0x37')],qs[_0x4391('0x3c')](_0x4f49e8[_0x4391('0x39')][_0x4391('0x3c')]));_0x2c13dd[_0x4391('0x3b')]=_0x2c13dd['attributes'][_0x4391('0x3d')]?_0x2c13dd[_0x4391('0x3b')]:_0x2df7bf[_0x4391('0x37')];if(!_0x4f49e8[_0x4391('0x39')]['hasOwnProperty']('nolimit')){_0x2c13dd[_0x4391('0x22')]=qs[_0x4391('0x22')](_0x4f49e8[_0x4391('0x39')][_0x4391('0x22')]);_0x2c13dd['offset']=qs[_0x4391('0x21')](_0x4f49e8[_0x4391('0x39')][_0x4391('0x21')]);}_0x2c13dd['order']=qs[_0x4391('0x41')](_0x4f49e8[_0x4391('0x39')][_0x4391('0x41')]);_0x2c13dd[_0x4391('0x42')]=qs['filters'](_[_0x4391('0x43')](_0x4f49e8[_0x4391('0x39')],_0x2df7bf[_0x4391('0x4f')]));_0x2c13dd[_0x4391('0x42')][_0x4391('0x5e')]=_0x3fc690['id'];if(_0x4f49e8[_0x4391('0x39')]['filter']){_0x2c13dd[_0x4391('0x42')]=_[_0x4391('0x44')](_0x2c13dd['where'],{'$or':_['map'](_0x2c13dd['attributes'],function(_0x2b317f){var _0x90686b={};_0x90686b[_0x2b317f]={'$like':'%'+_0x4f49e8[_0x4391('0x39')][_0x4391('0x46')]+'%'};return _0x90686b;})});}_0x2c13dd=_['merge']({},_0x2c13dd,_0x4f49e8[_0x4391('0x47')]);return db['UserSmsQueue'][_0x4391('0x49')](_0x2c13dd);}})['then'](function(_0x6155c){if(_0x6155c){return db[_0x4391('0x5f')][_0x4391('0x60')]({'where':{'id':_[_0x4391('0x38')](_0x6155c,_0x4391('0x61')),'role':_0x4391('0x62')},'attributes':['id',_0x4391('0x30'),_0x4391('0x63'),'updatedAt',_0x4391('0x64')]});}})[_0x4391('0x2b')](function(_0xebf2a4){if(_0xebf2a4){return{'count':_0xebf2a4[_0x4391('0x24')],'rows':_['map'](_0xebf2a4['rows'],function(_0x30dda6){return{'membername':_0x30dda6[_0x4391('0x30')],'UserId':_0x30dda6['id'],'queue_name':_0x349125[_0x4391('0x30')],'SmsQueueId':_0x349125['id'],'interface':util['format'](_0x4391('0x65'),_0x4391('0x66'),_0x30dda6[_0x4391('0x30')]),'penalty':0x0,'paused':_0x30dda6[_0x4391('0x63')],'createdAt':_0x30dda6[_0x4391('0x64')],'updatedAt':_0x30dda6[_0x4391('0x67')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x4391('0x2b')](respondWithFilteredResult(_0x39f1ba,_0x2c13dd))[_0x4391('0x4b')](handleError(_0x39f1ba,null));};exports[_0x4391('0x68')]=function(_0xb99aa8,_0x121bcf,_0x53080c){var _0x662359={};var _0x39be42={};var _0x207851;var _0x27b1c6;return db[_0x4391('0x33')][_0x4391('0x69')]({'where':{'id':_0xb99aa8[_0x4391('0x4c')]['id']}})[_0x4391('0x2b')](handleEntityNotFound(_0x121bcf,null))[_0x4391('0x2b')](function(_0x1b64a8){if(_0x1b64a8){_0x207851=_0x1b64a8;_0x39be42[_0x4391('0x37')]=_['keys'](db['Team'][_0x4391('0x4e')]);_0x39be42[_0x4391('0x39')]=_[_0x4391('0x4d')](_0xb99aa8[_0x4391('0x39')]);_0x39be42['filters']=_[_0x4391('0x3a')](_0x39be42[_0x4391('0x37')],_0x39be42['query']);_0x662359[_0x4391('0x3b')]=_['intersection'](_0x39be42['model'],qs[_0x4391('0x3c')](_0xb99aa8[_0x4391('0x39')][_0x4391('0x3c')]));_0x662359[_0x4391('0x3b')]=_0x662359[_0x4391('0x3b')][_0x4391('0x3d')]?_0x662359['attributes']:_0x39be42[_0x4391('0x37')];_0x662359[_0x4391('0x40')]=qs[_0x4391('0x41')](_0xb99aa8[_0x4391('0x39')][_0x4391('0x41')]);_0x662359[_0x4391('0x42')]=qs[_0x4391('0x4f')](_[_0x4391('0x43')](_0xb99aa8[_0x4391('0x39')],_0x39be42[_0x4391('0x4f')]));if(_0xb99aa8[_0x4391('0x39')][_0x4391('0x46')]){_0x662359[_0x4391('0x42')]=_[_0x4391('0x44')](_0x662359[_0x4391('0x42')],{'$or':_[_0x4391('0x38')](_0x662359[_0x4391('0x3b')],function(_0xd29b3d){var _0xfcfdd9={};_0xfcfdd9[_0xd29b3d]={'$like':'%'+_0xb99aa8[_0x4391('0x39')]['filter']+'%'};return _0xfcfdd9;})});}_0x662359=_[_0x4391('0x44')]({},_0x662359,_0xb99aa8['options']);return _0x207851[_0x4391('0x68')](_0x662359);}})[_0x4391('0x2b')](function(_0x2bbf13){if(_0x2bbf13){_0x27b1c6=_0x2bbf13[_0x4391('0x3d')];if(!_0xb99aa8[_0x4391('0x39')][_0x4391('0x3e')]('nolimit')){_0x662359[_0x4391('0x22')]=qs[_0x4391('0x22')](_0xb99aa8[_0x4391('0x39')][_0x4391('0x22')]);_0x662359['offset']=qs[_0x4391('0x21')](_0xb99aa8[_0x4391('0x39')][_0x4391('0x21')]);}return _0x207851[_0x4391('0x68')](_0x662359);}})[_0x4391('0x2b')](function(_0x248c12){if(_0x248c12){return _0x248c12?{'count':_0x27b1c6,'rows':_0x248c12}:null;}})[_0x4391('0x2b')](respondWithResult(_0x121bcf,null))[_0x4391('0x4b')](handleError(_0x121bcf,null));};exports[_0x4391('0x6a')]=function(_0x8e6aa3,_0x44d313,_0x5596de){var _0x5a0f79=_0x8e6aa3[_0x4391('0x53')]['ids'];return db[_0x4391('0x6b')][_0x4391('0x49')]({'where':{'id':_0x5a0f79},'attributes':['id'],'include':[{'model':db[_0x4391('0x5f')],'as':'Agents','attributes':['id',_0x4391('0x30'),_0x4391('0x6c'),_0x4391('0x6d'),_0x4391('0x6e')],'raw':!![]}]})[_0x4391('0x2b')](function(_0x3fcf06){if(_0x3fcf06){var _0x563d9d=_[_0x4391('0x6f')](_0x3fcf06,function(_0x14de0e){var _0x20f334=_0x14de0e[_0x4391('0x2d')]({'plain':!![]});return _0x20f334[_0x4391('0x70')];});return db['SmsQueue'][_0x4391('0x51')]({'where':{'id':_0x8e6aa3['params']['id']}})['then'](function(_0x50bca9){return db[_0x4391('0x71')][_0x4391('0x72')](function(_0x4a6c22){return _0x50bca9['addTeams'](_0x5a0f79,{'transaction':_0x4a6c22})[_0x4391('0x2b')](function(){return BPromise[_0x4391('0x73')](_0x563d9d,function(_0x1326e1){return db[_0x4391('0x74')][_0x4391('0x75')]({'where':{'UserId':_0x1326e1['id'],'SmsQueueId':_0x8e6aa3[_0x4391('0x4c')]['id']},'transaction':_0x4a6c22});});})['then'](function(){_0x563d9d['forEach'](function(_0x2b758a){socket[_0x4391('0x76')](_0x4391('0x77'),{'UserId':_0x2b758a['id'],'SmsQueueId':_0x50bca9['id']});});});});});}})[_0x4391('0x2b')](respondWithStatusCode(_0x44d313,null))[_0x4391('0x4b')](handleError(_0x44d313,null));};exports[_0x4391('0x78')]=function(_0x3cf8e1,_0x3f11ac,_0x54d5b1){return db[_0x4391('0x6b')][_0x4391('0x49')]({'where':{'id':_0x3cf8e1[_0x4391('0x39')][_0x4391('0x79')]},'attributes':['id'],'include':[{'model':db[_0x4391('0x5f')],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x3f11ac,null))[_0x4391('0x2b')](function(_0x329949){var _0x4f6a96=_[_0x4391('0x38')](_0x329949,'id');var _0x486dd2=[];var _0x41d7a0=[];var _0x1ecb18=squel[_0x4391('0x7a')]();_0x1ecb18['field'](_0x4391('0x7b'))[_0x4391('0x7c')](_0x4391('0x7d'),'tq')[_0x4391('0x7e')](_0x4391('0x7f'),'ut',_0x4391('0x80'))[_0x4391('0x42')](_0x4391('0x81'),_0x3cf8e1[_0x4391('0x4c')]['id']);for(var _0x79c3ce=0x0;_0x79c3ce<_0x329949[_0x4391('0x3d')];_0x79c3ce+=0x1){let _0x5aa2bb=_0x329949[_0x79c3ce];for(var _0xdc285c=0x0;_0xdc285c<_0x5aa2bb[_0x4391('0x70')][_0x4391('0x3d')];_0xdc285c+=0x1){let _0x5bfcb5=_0x5aa2bb[_0x4391('0x70')][_0xdc285c];var _0x5561d2=_0x1ecb18[_0x4391('0x82')]();_0x5561d2['where'](_0x4391('0x83'),_0x5bfcb5['id']);_0x41d7a0['push'](db[_0x4391('0x71')][_0x4391('0x39')](_0x5561d2['toString'](),{'type':db[_0x4391('0x71')][_0x4391('0x84')]['SELECT']})['then'](function(_0x1273b8){if(_0x1273b8[_0x4391('0x3d')]===0x1){return _0x5bfcb5['id'];}else{var _0xf4d70e=_[_0x4391('0x85')](_[_0x4391('0x38')](_0x1273b8,_0x4391('0x86')),function(_0x445dc0){return _['includes'](_0x4f6a96,_0x445dc0);});if(_0xf4d70e){return _0x5bfcb5['id'];}}}));}}return BPromise[_0x4391('0x87')](_0x41d7a0)[_0x4391('0x2b')](function(_0x378260){_0x486dd2=_(_0x486dd2)[_0x4391('0x88')](_0x378260)[_0x4391('0x89')]()[_0x4391('0x8a')]();return db[_0x4391('0x33')][_0x4391('0x51')]({'where':{'id':_0x3cf8e1[_0x4391('0x4c')]['id']}})[_0x4391('0x2b')](function(_0x1e91e7){return db[_0x4391('0x71')]['transaction'](function(_0x49074a){return _0x1e91e7['removeTeams'](_0x3cf8e1['query'][_0x4391('0x79')],{'transaction':_0x49074a})[_0x4391('0x2b')](function(){if(!_[_0x4391('0x8b')](_0x486dd2)){return _0x1e91e7[_0x4391('0x8c')](_0x486dd2,{'transaction':_0x49074a});}})['then'](function(){_0x486dd2[_0x4391('0x8d')](function(_0x17568e){socket[_0x4391('0x76')](_0x4391('0x8e'),{'UserId':_0x17568e,'SmsQueueId':_0x1e91e7['id']});});});});});});})[_0x4391('0x2b')](respondWithStatusCode(_0x3f11ac,null))[_0x4391('0x4b')](handleError(_0x3f11ac,null));};exports[_0x4391('0x8f')]=function(_0x57ac44,_0x22ebc1,_0x3c4a18){return db[_0x4391('0x33')][_0x4391('0x51')]({'where':{'id':_0x57ac44[_0x4391('0x4c')]['id']}})['then'](handleEntityNotFound(_0x22ebc1,null))[_0x4391('0x2b')](function(_0x1674bf){if(_0x1674bf){return _0x1674bf[_0x4391('0x8f')](_0x57ac44[_0x4391('0x53')]['ids'],_[_0x4391('0x90')](_0x57ac44[_0x4391('0x53')],[_0x4391('0x79'),'id'])||{})[_0x4391('0x91')](function(_0x7c5599){for(var _0x228de4=0x0;_0x228de4<_0x57ac44[_0x4391('0x53')][_0x4391('0x79')]['length'];_0x228de4+=0x1){socket[_0x4391('0x76')](_0x4391('0x77'),{'UserId':Number(_0x57ac44[_0x4391('0x53')][_0x4391('0x79')][_0x228de4]),'SmsQueueId':Number(_0x57ac44[_0x4391('0x4c')]['id'])});}return _0x7c5599;});}})['then'](respondWithResult(_0x22ebc1,null))[_0x4391('0x4b')](handleError(_0x22ebc1,null));};exports[_0x4391('0x8c')]=function(_0x2507b1,_0xa8f389,_0x2d5910){return db[_0x4391('0x33')][_0x4391('0x51')]({'where':{'id':_0x2507b1['params']['id']}})['then'](handleEntityNotFound(_0xa8f389,null))[_0x4391('0x2b')](function(_0x3eb223){if(_0x3eb223){return _0x3eb223[_0x4391('0x8c')](_0x2507b1[_0x4391('0x39')][_0x4391('0x79')])[_0x4391('0x2b')](function(){if(_[_0x4391('0x92')](_0x2507b1[_0x4391('0x39')][_0x4391('0x79')])){for(var _0x51e6a5=0x0;_0x51e6a5<_0x2507b1[_0x4391('0x39')]['ids']['length'];_0x51e6a5+=0x1){socket[_0x4391('0x76')]('userSmsQueue:remove',{'UserId':Number(_0x2507b1[_0x4391('0x39')][_0x4391('0x79')][_0x51e6a5]),'SmsQueueId':Number(_0x2507b1[_0x4391('0x4c')]['id'])});}}else{socket[_0x4391('0x76')](_0x4391('0x8e'),{'UserId':Number(_0x2507b1[_0x4391('0x39')][_0x4391('0x79')]),'SmsQueueId':Number(_0x2507b1[_0x4391('0x4c')]['id'])});}});}})[_0x4391('0x2b')](respondWithStatusCode(_0xa8f389,null))[_0x4391('0x4b')](handleError(_0xa8f389,null));};exports[_0x4391('0x93')]=function(_0x125a0f,_0x481310,_0x2bb9fb){var _0x5a1be6={};var _0x4da6a3={};var _0xbf80cf;var _0x1a010e;return db[_0x4391('0x33')]['findOne']({'where':{'id':_0x125a0f[_0x4391('0x4c')]['id']}})['then'](handleEntityNotFound(_0x481310,null))[_0x4391('0x2b')](function(_0x5804ec){if(_0x5804ec){_0xbf80cf=_0x5804ec;_0x4da6a3['model']=_[_0x4391('0x4d')](db[_0x4391('0x5f')][_0x4391('0x4e')]);_0x4da6a3[_0x4391('0x39')]=_[_0x4391('0x4d')](_0x125a0f[_0x4391('0x39')]);_0x4da6a3[_0x4391('0x4f')]=_[_0x4391('0x3a')](_0x4da6a3[_0x4391('0x37')],_0x4da6a3[_0x4391('0x39')]);_0x5a1be6[_0x4391('0x3b')]=_['intersection'](_0x4da6a3[_0x4391('0x37')],qs[_0x4391('0x3c')](_0x125a0f[_0x4391('0x39')]['fields']));_0x5a1be6[_0x4391('0x3b')]=_0x5a1be6['attributes'][_0x4391('0x3d')]?_0x5a1be6['attributes']:_0x4da6a3[_0x4391('0x37')];_0x5a1be6[_0x4391('0x40')]=qs[_0x4391('0x41')](_0x125a0f[_0x4391('0x39')][_0x4391('0x41')]);_0x5a1be6['where']=qs[_0x4391('0x4f')](_[_0x4391('0x43')](_0x125a0f[_0x4391('0x39')],_0x4da6a3[_0x4391('0x4f')]));if(_0x125a0f[_0x4391('0x39')][_0x4391('0x46')]){_0x5a1be6['where']=_[_0x4391('0x44')](_0x5a1be6[_0x4391('0x42')],{'$or':_[_0x4391('0x38')](_0x5a1be6[_0x4391('0x3b')],function(_0x168355){var _0x225a2b={};_0x225a2b[_0x168355]={'$like':'%'+_0x125a0f['query'][_0x4391('0x46')]+'%'};return _0x225a2b;})});}_0x5a1be6=_[_0x4391('0x44')]({},_0x5a1be6,_0x125a0f['options']);return _0xbf80cf[_0x4391('0x93')](_0x5a1be6);}})['then'](function(_0x36d008){if(_0x36d008){_0x1a010e=_0x36d008[_0x4391('0x3d')];if(!_0x125a0f[_0x4391('0x39')][_0x4391('0x3e')]('nolimit')){_0x5a1be6['limit']=qs[_0x4391('0x22')](_0x125a0f[_0x4391('0x39')]['limit']);_0x5a1be6['offset']=qs[_0x4391('0x21')](_0x125a0f['query'][_0x4391('0x21')]);}return _0xbf80cf[_0x4391('0x93')](_0x5a1be6);}})['then'](function(_0x126ebd){if(_0x126ebd){return _0x126ebd?{'count':_0x1a010e,'rows':_0x126ebd}:null;}})[_0x4391('0x2b')](respondWithResult(_0x481310,null))[_0x4391('0x4b')](handleError(_0x481310,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf605=['SmsQueue','setMaxListeners','save','update','emit','hasOwnProperty','hook','exports','events'];(function(_0x1cb58a,_0x3a8162){var _0x5e04fa=function(_0xf84301){while(--_0xf84301){_0x1cb58a['push'](_0x1cb58a['shift']());}};_0x5e04fa(++_0x3a8162);}(_0xf605,0xd7));var _0x5f60=function(_0x2d1965,_0x5811b0){_0x2d1965=_0x2d1965-0x0;var _0x38f880=_0xf605[_0x2d1965];return _0x38f880;};'use strict';var EventEmitter=require(_0x5f60('0x0'));var SmsQueue=require('../../mysqldb')['db'][_0x5f60('0x1')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0x5f60('0x2')](0x0);var events={'afterCreate':_0x5f60('0x3'),'afterUpdate':_0x5f60('0x4'),'afterDestroy':'remove'};function emitEvent(_0x1274bb){return function(_0x3e4566,_0x181a84,_0x22786c){SmsQueueEvents[_0x5f60('0x5')](_0x1274bb+':'+_0x3e4566['id'],_0x3e4566);SmsQueueEvents[_0x5f60('0x5')](_0x1274bb,_0x3e4566);_0x22786c(null);};}for(var e in events){if(events[_0x5f60('0x6')](e)){var event=events[e];SmsQueue[_0x5f60('0x7')](e,emitEvent(event));}}module[_0x5f60('0x8')]=SmsQueueEvents;
\ No newline at end of file
+var _0xbcc0=['events','SmsQueue','setMaxListeners','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x58547b,_0x4b89c2){var _0x1d3fd2=function(_0x4ac500){while(--_0x4ac500){_0x58547b['push'](_0x58547b['shift']());}};_0x1d3fd2(++_0x4b89c2);}(_0xbcc0,0x1b9));var _0x0bcc=function(_0x49b03d,_0x33e415){_0x49b03d=_0x49b03d-0x0;var _0x4e149f=_0xbcc0[_0x49b03d];return _0x4e149f;};'use strict';var EventEmitter=require(_0x0bcc('0x0'));var SmsQueue=require('../../mysqldb')['db'][_0x0bcc('0x1')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0x0bcc('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x0bcc('0x3'),'afterDestroy':_0x0bcc('0x4')};function emitEvent(_0x1b52fe){return function(_0x23a192,_0x304ea1,_0x2d948c){SmsQueueEvents[_0x0bcc('0x5')](_0x1b52fe+':'+_0x23a192['id'],_0x23a192);SmsQueueEvents[_0x0bcc('0x5')](_0x1b52fe,_0x23a192);_0x2d948c(null);};}for(var e in events){if(events[_0x0bcc('0x6')](e)){var event=events[e];SmsQueue[_0x0bcc('0x7')](e,emitEvent(event));}}module[_0x0bcc('0x8')]=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9fea=['../../config/environment','./smsQueue.attributes','exports','define','SmsQueue','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x2ecc97,_0x31fb31){var _0x1d7fd4=function(_0x109011){while(--_0x109011){_0x2ecc97['push'](_0x2ecc97['shift']());}};_0x1d7fd4(++_0x31fb31);}(_0x9fea,0x1b2));var _0xa9fe=function(_0x10f146,_0x385537){_0x10f146=_0x10f146-0x0;var _0x4a8e8f=_0x9fea[_0x10f146];return _0x4a8e8f;};'use strict';var _=require(_0xa9fe('0x0'));var util=require(_0xa9fe('0x1'));var logger=require(_0xa9fe('0x2'))(_0xa9fe('0x3'));var moment=require(_0xa9fe('0x4'));var BPromise=require(_0xa9fe('0x5'));var rp=require(_0xa9fe('0x6'));var fs=require('fs');var path=require(_0xa9fe('0x7'));var rimraf=require('rimraf');var config=require(_0xa9fe('0x8'));var attributes=require(_0xa9fe('0x9'));module[_0xa9fe('0xa')]=function(_0x5ed07c,_0x2eaca5){return _0x5ed07c[_0xa9fe('0xb')](_0xa9fe('0xc'),attributes,{'tableName':'sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xff03=['sms_queues','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define','SmsQueue'];(function(_0x201a63,_0x527120){var _0x3b89ea=function(_0x5460fb){while(--_0x5460fb){_0x201a63['push'](_0x201a63['shift']());}};_0x3b89ea(++_0x527120);}(_0xff03,0x1ed));var _0x3ff0=function(_0x10b6cf,_0xd0e8b2){_0x10b6cf=_0x10b6cf-0x0;var _0x30a5ca=_0xff03[_0x10b6cf];return _0x30a5ca;};'use strict';var _=require('lodash');var util=require(_0x3ff0('0x0'));var logger=require('../../config/logger')(_0x3ff0('0x1'));var moment=require(_0x3ff0('0x2'));var BPromise=require(_0x3ff0('0x3'));var rp=require(_0x3ff0('0x4'));var fs=require('fs');var path=require(_0x3ff0('0x5'));var rimraf=require(_0x3ff0('0x6'));var config=require(_0x3ff0('0x7'));var attributes=require('./smsQueue.attributes');module[_0x3ff0('0x8')]=function(_0x560498,_0x3c335d){return _0x560498[_0x3ff0('0x9')](_0x3ff0('0xa'),attributes,{'tableName':_0x3ff0('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc0b5=['request\x20sent','error','code','message','result','catch','GetSmsQueue','SmsQueue','findAll','options','raw','where','attributes','map','include','model','debug','stringify','ShowSmsQueue','find','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','defaults','redis','socket.io-emitter','./smsQueue.socket','register','request','then','info','SmsQueue,\x20%s,\x20%s','SmsQueue,\x20%s,\x20%s,\x20%s'];(function(_0x29b203,_0x22bc9a){var _0x28250d=function(_0x12a195){while(--_0x12a195){_0x29b203['push'](_0x29b203['shift']());}};_0x28250d(++_0x22bc9a);}(_0xc0b5,0xdc));var _0x5c0b=function(_0x9f9e48,_0x1b4068){_0x9f9e48=_0x9f9e48-0x0;var _0x321ca9=_0xc0b5[_0x9f9e48];return _0x321ca9;};'use strict';var _=require(_0x5c0b('0x0'));var util=require(_0x5c0b('0x1'));var moment=require('moment');var BPromise=require(_0x5c0b('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5c0b('0x3'));var db=require(_0x5c0b('0x4'))['db'];var utils=require(_0x5c0b('0x5'));var logger=require(_0x5c0b('0x6'))(_0x5c0b('0x7'));var config=require(_0x5c0b('0x8'));var jayson=require(_0x5c0b('0x9'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0x5c0b('0xa')](config[_0x5c0b('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x5c0b('0xc'))(new Redis(config['redis']));require(_0x5c0b('0xd'))[_0x5c0b('0xe')](socket);function respondWithRpcPromise(_0x30cc59,_0xf4e1dc,_0x27e25d){return new BPromise(function(_0x4ef8cd,_0xdfb010){return client[_0x5c0b('0xf')](_0x30cc59,_0x27e25d)[_0x5c0b('0x10')](function(_0x148c7b){logger[_0x5c0b('0x11')](_0x5c0b('0x12'),_0xf4e1dc,'request\x20sent');logger['debug'](_0x5c0b('0x13'),_0xf4e1dc,_0x5c0b('0x14'),JSON['stringify'](_0x148c7b));if(_0x148c7b[_0x5c0b('0x15')]){if(_0x148c7b[_0x5c0b('0x15')][_0x5c0b('0x16')]===0x1f4){logger[_0x5c0b('0x15')](_0x5c0b('0x12'),_0xf4e1dc,_0x148c7b[_0x5c0b('0x15')][_0x5c0b('0x17')]);return _0xdfb010(_0x148c7b[_0x5c0b('0x15')][_0x5c0b('0x17')]);}logger[_0x5c0b('0x15')]('SmsQueue,\x20%s,\x20%s',_0xf4e1dc,_0x148c7b[_0x5c0b('0x15')][_0x5c0b('0x17')]);return _0x4ef8cd(_0x148c7b[_0x5c0b('0x15')][_0x5c0b('0x17')]);}else{logger[_0x5c0b('0x11')](_0x5c0b('0x12'),_0xf4e1dc,_0x5c0b('0x14'));_0x4ef8cd(_0x148c7b[_0x5c0b('0x18')]['message']);}})[_0x5c0b('0x19')](function(_0x12ba63){logger[_0x5c0b('0x15')](_0x5c0b('0x12'),_0xf4e1dc,_0x12ba63);_0xdfb010(_0x12ba63);});});}exports[_0x5c0b('0x1a')]=function(_0x17b1b0){var _0x4443fd=this;return new Promise(function(_0x4a5684,_0x4bc244){return db[_0x5c0b('0x1b')][_0x5c0b('0x1c')]({'raw':_0x17b1b0['options']?_0x17b1b0[_0x5c0b('0x1d')][_0x5c0b('0x1e')]===undefined?!![]:![]:!![],'where':_0x17b1b0['options']?_0x17b1b0[_0x5c0b('0x1d')][_0x5c0b('0x1f')]||null:null,'attributes':_0x17b1b0[_0x5c0b('0x1d')]?_0x17b1b0[_0x5c0b('0x1d')][_0x5c0b('0x20')]||null:null,'limit':_0x17b1b0[_0x5c0b('0x1d')]?_0x17b1b0['options']['limit']||null:null,'include':_0x17b1b0[_0x5c0b('0x1d')]?_0x17b1b0[_0x5c0b('0x1d')]['include']?_[_0x5c0b('0x21')](_0x17b1b0[_0x5c0b('0x1d')][_0x5c0b('0x22')],function(_0x217f61){return{'model':db[_0x217f61[_0x5c0b('0x23')]],'as':_0x217f61['as'],'attributes':_0x217f61['attributes'],'include':_0x217f61['include']?_[_0x5c0b('0x21')](_0x217f61[_0x5c0b('0x22')],function(_0x13c442){return{'model':db[_0x13c442[_0x5c0b('0x23')]],'as':_0x13c442['as'],'attributes':_0x13c442['attributes'],'include':_0x13c442[_0x5c0b('0x22')]?_[_0x5c0b('0x21')](_0x13c442[_0x5c0b('0x22')],function(_0x32bd0a){return{'model':db[_0x32bd0a['model']],'as':_0x32bd0a['as'],'attributes':_0x32bd0a[_0x5c0b('0x20')]};}):[]};}):[]};}):[]:[]})[_0x5c0b('0x10')](function(_0x442ce4){logger[_0x5c0b('0x11')]('GetSmsQueue',_0x17b1b0);logger[_0x5c0b('0x24')]('GetSmsQueue',_0x17b1b0,JSON[_0x5c0b('0x25')](_0x442ce4));_0x4a5684(_0x442ce4);})[_0x5c0b('0x19')](function(_0x2b0f9d){logger['error'](_0x5c0b('0x1a'),_0x2b0f9d['message'],_0x17b1b0);_0x4bc244(_0x4443fd['error'](0x1f4,_0x2b0f9d[_0x5c0b('0x17')]));});});};exports[_0x5c0b('0x26')]=function(_0x482b9e){var _0x2ff36d=this;return new Promise(function(_0x4b03c8,_0x5b15d0){return db[_0x5c0b('0x1b')][_0x5c0b('0x27')]({'raw':_0x482b9e[_0x5c0b('0x1d')]?_0x482b9e[_0x5c0b('0x1d')][_0x5c0b('0x1e')]===undefined?!![]:![]:!![],'where':_0x482b9e[_0x5c0b('0x1d')]?_0x482b9e['options']['where']||null:null,'attributes':_0x482b9e[_0x5c0b('0x1d')]?_0x482b9e[_0x5c0b('0x1d')][_0x5c0b('0x20')]||null:null,'include':_0x482b9e[_0x5c0b('0x1d')]?_0x482b9e['options'][_0x5c0b('0x22')]?_['map'](_0x482b9e[_0x5c0b('0x1d')]['include'],function(_0x1a01e8){return{'model':db[_0x1a01e8['model']],'as':_0x1a01e8['as'],'attributes':_0x1a01e8[_0x5c0b('0x20')],'include':_0x1a01e8['include']?_[_0x5c0b('0x21')](_0x1a01e8[_0x5c0b('0x22')],function(_0x1ce036){return{'model':db[_0x1ce036[_0x5c0b('0x23')]],'as':_0x1ce036['as'],'attributes':_0x1ce036[_0x5c0b('0x20')],'include':_0x1ce036[_0x5c0b('0x22')]?_[_0x5c0b('0x21')](_0x1ce036[_0x5c0b('0x22')],function(_0x544772){return{'model':db[_0x544772[_0x5c0b('0x23')]],'as':_0x544772['as'],'attributes':_0x544772[_0x5c0b('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5ecf85){logger[_0x5c0b('0x11')](_0x5c0b('0x26'),_0x482b9e);logger[_0x5c0b('0x24')](_0x5c0b('0x26'),_0x482b9e,JSON[_0x5c0b('0x25')](_0x5ecf85));_0x4b03c8(_0x5ecf85);})[_0x5c0b('0x19')](function(_0x47414f){logger[_0x5c0b('0x15')](_0x5c0b('0x26'),_0x47414f[_0x5c0b('0x17')],_0x482b9e);_0x5b15d0(_0x2ff36d['error'](0x1f4,_0x47414f['message']));});});};
\ No newline at end of file
+var _0x184c=['register','request','then','SmsQueue,\x20%s,\x20%s','request\x20sent','debug','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','GetSmsQueue','SmsQueue','findAll','options','attributes','include','map','model','ShowSmsQueue','find','raw','where','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','defaults','redis','localhost','./smsQueue.socket'];(function(_0x51e79c,_0x51485e){var _0x2467be=function(_0xbf70f0){while(--_0xbf70f0){_0x51e79c['push'](_0x51e79c['shift']());}};_0x2467be(++_0x51485e);}(_0x184c,0x18a));var _0xc184=function(_0xdf3152,_0x4c79c8){_0xdf3152=_0xdf3152-0x0;var _0x260419=_0x184c[_0xdf3152];return _0x260419;};'use strict';var _=require(_0xc184('0x0'));var util=require(_0xc184('0x1'));var moment=require(_0xc184('0x2'));var BPromise=require(_0xc184('0x3'));var rs=require(_0xc184('0x4'));var fs=require('fs');var Redis=require(_0xc184('0x5'));var db=require(_0xc184('0x6'))['db'];var utils=require(_0xc184('0x7'));var logger=require('../../config/logger')(_0xc184('0x8'));var config=require('../../config/environment');var jayson=require(_0xc184('0x9'));var client=jayson[_0xc184('0xa')][_0xc184('0xb')]({'port':0x232a});config['redis']=_[_0xc184('0xc')](config[_0xc184('0xd')],{'host':_0xc184('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc184('0xd')]));require(_0xc184('0xf'))[_0xc184('0x10')](socket);function respondWithRpcPromise(_0x4aa108,_0x6e8b07,_0x7035de){return new BPromise(function(_0x4e9618,_0x20ba1c){return client[_0xc184('0x11')](_0x4aa108,_0x7035de)[_0xc184('0x12')](function(_0xc88cab){logger['info'](_0xc184('0x13'),_0x6e8b07,_0xc184('0x14'));logger[_0xc184('0x15')](_0xc184('0x16'),_0x6e8b07,_0xc184('0x14'),JSON[_0xc184('0x17')](_0xc88cab));if(_0xc88cab[_0xc184('0x18')]){if(_0xc88cab[_0xc184('0x18')][_0xc184('0x19')]===0x1f4){logger[_0xc184('0x18')](_0xc184('0x13'),_0x6e8b07,_0xc88cab[_0xc184('0x18')][_0xc184('0x1a')]);return _0x20ba1c(_0xc88cab['error'][_0xc184('0x1a')]);}logger[_0xc184('0x18')](_0xc184('0x13'),_0x6e8b07,_0xc88cab[_0xc184('0x18')][_0xc184('0x1a')]);return _0x4e9618(_0xc88cab[_0xc184('0x18')][_0xc184('0x1a')]);}else{logger[_0xc184('0x1b')]('SmsQueue,\x20%s,\x20%s',_0x6e8b07,_0xc184('0x14'));_0x4e9618(_0xc88cab[_0xc184('0x1c')][_0xc184('0x1a')]);}})['catch'](function(_0x978776){logger[_0xc184('0x18')](_0xc184('0x13'),_0x6e8b07,_0x978776);_0x20ba1c(_0x978776);});});}exports[_0xc184('0x1d')]=function(_0x11b5dc){var _0x2908ce=this;return new Promise(function(_0x30145e,_0x5671bb){return db[_0xc184('0x1e')][_0xc184('0x1f')]({'raw':_0x11b5dc[_0xc184('0x20')]?_0x11b5dc[_0xc184('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0x11b5dc[_0xc184('0x20')]?_0x11b5dc[_0xc184('0x20')]['where']||null:null,'attributes':_0x11b5dc[_0xc184('0x20')]?_0x11b5dc['options'][_0xc184('0x21')]||null:null,'limit':_0x11b5dc[_0xc184('0x20')]?_0x11b5dc[_0xc184('0x20')]['limit']||null:null,'include':_0x11b5dc[_0xc184('0x20')]?_0x11b5dc[_0xc184('0x20')][_0xc184('0x22')]?_[_0xc184('0x23')](_0x11b5dc[_0xc184('0x20')][_0xc184('0x22')],function(_0x1025e4){return{'model':db[_0x1025e4[_0xc184('0x24')]],'as':_0x1025e4['as'],'attributes':_0x1025e4[_0xc184('0x21')],'include':_0x1025e4[_0xc184('0x22')]?_['map'](_0x1025e4[_0xc184('0x22')],function(_0x267697){return{'model':db[_0x267697[_0xc184('0x24')]],'as':_0x267697['as'],'attributes':_0x267697[_0xc184('0x21')],'include':_0x267697['include']?_['map'](_0x267697['include'],function(_0x5b0424){return{'model':db[_0x5b0424[_0xc184('0x24')]],'as':_0x5b0424['as'],'attributes':_0x5b0424[_0xc184('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4b53c6){logger[_0xc184('0x1b')](_0xc184('0x1d'),_0x11b5dc);logger['debug'](_0xc184('0x1d'),_0x11b5dc,JSON[_0xc184('0x17')](_0x4b53c6));_0x30145e(_0x4b53c6);})['catch'](function(_0x1780ba){logger[_0xc184('0x18')](_0xc184('0x1d'),_0x1780ba[_0xc184('0x1a')],_0x11b5dc);_0x5671bb(_0x2908ce[_0xc184('0x18')](0x1f4,_0x1780ba['message']));});});};exports[_0xc184('0x25')]=function(_0x1920da){var _0x14f6ed=this;return new Promise(function(_0x136f0d,_0x3d1b1d){return db[_0xc184('0x1e')][_0xc184('0x26')]({'raw':_0x1920da[_0xc184('0x20')]?_0x1920da[_0xc184('0x20')][_0xc184('0x27')]===undefined?!![]:![]:!![],'where':_0x1920da['options']?_0x1920da[_0xc184('0x20')][_0xc184('0x28')]||null:null,'attributes':_0x1920da[_0xc184('0x20')]?_0x1920da['options'][_0xc184('0x21')]||null:null,'include':_0x1920da['options']?_0x1920da[_0xc184('0x20')][_0xc184('0x22')]?_[_0xc184('0x23')](_0x1920da['options']['include'],function(_0x2fdf65){return{'model':db[_0x2fdf65['model']],'as':_0x2fdf65['as'],'attributes':_0x2fdf65[_0xc184('0x21')],'include':_0x2fdf65[_0xc184('0x22')]?_[_0xc184('0x23')](_0x2fdf65[_0xc184('0x22')],function(_0x1b42a5){return{'model':db[_0x1b42a5[_0xc184('0x24')]],'as':_0x1b42a5['as'],'attributes':_0x1b42a5[_0xc184('0x21')],'include':_0x1b42a5[_0xc184('0x22')]?_[_0xc184('0x23')](_0x1b42a5[_0xc184('0x22')],function(_0x1c7bc3){return{'model':db[_0x1c7bc3[_0xc184('0x24')]],'as':_0x1c7bc3['as'],'attributes':_0x1c7bc3[_0xc184('0x21')]};}):[]};}):[]};}):[]:[]})[_0xc184('0x12')](function(_0x2fae79){logger[_0xc184('0x1b')](_0xc184('0x25'),_0x1920da);logger[_0xc184('0x15')]('ShowSmsQueue',_0x1920da,JSON[_0xc184('0x17')](_0x2fae79));_0x136f0d(_0x2fae79);})['catch'](function(_0x3f5669){logger['error'](_0xc184('0x25'),_0x3f5669['message'],_0x1920da);_0x3d1b1d(_0x14f6ed[_0xc184('0x18')](0x1f4,_0x3f5669['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec99=['./smsQueue.events','save','remove','update','emit','register','length'];(function(_0x171d07,_0x59c974){var _0x135563=function(_0x2aea19){while(--_0x2aea19){_0x171d07['push'](_0x171d07['shift']());}};_0x135563(++_0x59c974);}(_0xec99,0xd9));var _0x9ec9=function(_0x3d0e9f,_0x3a30cd){_0x3d0e9f=_0x3d0e9f-0x0;var _0x500132=_0xec99[_0x3d0e9f];return _0x500132;};'use strict';var SmsQueueEvents=require(_0x9ec9('0x0'));var events=[_0x9ec9('0x1'),_0x9ec9('0x2'),_0x9ec9('0x3')];function createListener(_0x1ef616,_0x54844a){return function(_0x60d342){_0x54844a[_0x9ec9('0x4')](_0x1ef616,_0x60d342);};}function removeListener(_0x534719,_0x290e4f){return function(){SmsQueueEvents['removeListener'](_0x534719,_0x290e4f);};}exports[_0x9ec9('0x5')]=function(_0x11cc49){for(var _0x234220=0x0,_0x2adfa3=events[_0x9ec9('0x6')];_0x234220<_0x2adfa3;_0x234220++){var _0x401070=events[_0x234220];var _0x3d7e79=createListener('smsQueue:'+_0x401070,_0x11cc49);SmsQueueEvents['on'](_0x401070,_0x3d7e79);}};
\ No newline at end of file
+var _0xb5c7=['register','length','smsQueue:','save','remove','update','emit','removeListener'];(function(_0x5c72ee,_0x5a8bf8){var _0x231876=function(_0x955276){while(--_0x955276){_0x5c72ee['push'](_0x5c72ee['shift']());}};_0x231876(++_0x5a8bf8);}(_0xb5c7,0x1f3));var _0x7b5c=function(_0x5e0cfb,_0x52dd69){_0x5e0cfb=_0x5e0cfb-0x0;var _0x46c3e5=_0xb5c7[_0x5e0cfb];return _0x46c3e5;};'use strict';var SmsQueueEvents=require('./smsQueue.events');var events=[_0x7b5c('0x0'),_0x7b5c('0x1'),_0x7b5c('0x2')];function createListener(_0x3a8335,_0x57b533){return function(_0x20befa){_0x57b533[_0x7b5c('0x3')](_0x3a8335,_0x20befa);};}function removeListener(_0x2bb571,_0x566b77){return function(){SmsQueueEvents[_0x7b5c('0x4')](_0x2bb571,_0x566b77);};}exports[_0x7b5c('0x5')]=function(_0x1c7119){for(var _0x32f8e4=0x0,_0x4c637e=events[_0x7b5c('0x6')];_0x32f8e4<_0x4c637e;_0x32f8e4++){var _0x542ccd=events[_0x32f8e4];var _0x15be33=createListener(_0x7b5c('0x7')+_0x542ccd,_0x1c7119);SmsQueueEvents['on'](_0x542ccd,_0x15be33);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb777=['put','delete','destroy','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsQueueReport.controller','get','isAuthenticated','index','/describe','describe','show','post','create'];(function(_0x487b0c,_0x14ff74){var _0x1adbdc=function(_0x2e7b9d){while(--_0x2e7b9d){_0x487b0c['push'](_0x487b0c['shift']());}};_0x1adbdc(++_0x14ff74);}(_0xb777,0x107));var _0x7b77=function(_0x3ab0f1,_0x31acba){_0x3ab0f1=_0x3ab0f1-0x0;var _0x2c2fb8=_0xb777[_0x3ab0f1];return _0x2c2fb8;};'use strict';var multer=require('multer');var util=require(_0x7b77('0x0'));var path=require(_0x7b77('0x1'));var timeout=require(_0x7b77('0x2'));var express=require(_0x7b77('0x3'));var router=express['Router']();var fs_extra=require(_0x7b77('0x4'));var auth=require(_0x7b77('0x5'));var interaction=require(_0x7b77('0x6'));var config=require(_0x7b77('0x7'));var controller=require(_0x7b77('0x8'));router[_0x7b77('0x9')]('/',auth[_0x7b77('0xa')](),controller[_0x7b77('0xb')]);router['get'](_0x7b77('0xc'),auth[_0x7b77('0xa')](),controller[_0x7b77('0xd')]);router[_0x7b77('0x9')]('/:id',auth[_0x7b77('0xa')](),controller[_0x7b77('0xe')]);router[_0x7b77('0xf')]('/',auth[_0x7b77('0xa')](),controller[_0x7b77('0x10')]);router[_0x7b77('0x11')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x7b77('0x12')]('/:id',auth[_0x7b77('0xa')](),controller[_0x7b77('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0xd694=['update','delete','destroy','multer','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./smsQueueReport.controller','isAuthenticated','index','get','/describe','describe','/:id','show','create','put'];(function(_0x405022,_0x2377a8){var _0x3b29e7=function(_0xb927b5){while(--_0xb927b5){_0x405022['push'](_0x405022['shift']());}};_0x3b29e7(++_0x2377a8);}(_0xd694,0x11b));var _0x4d69=function(_0x5a0358,_0x10f0ce){_0x5a0358=_0x5a0358-0x0;var _0x5e5391=_0xd694[_0x5a0358];return _0x5e5391;};'use strict';var multer=require(_0x4d69('0x0'));var util=require('util');var path=require(_0x4d69('0x1'));var timeout=require(_0x4d69('0x2'));var express=require(_0x4d69('0x3'));var router=express[_0x4d69('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x4d69('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x4d69('0x6'));var controller=require(_0x4d69('0x7'));router['get']('/',auth[_0x4d69('0x8')](),controller[_0x4d69('0x9')]);router[_0x4d69('0xa')](_0x4d69('0xb'),auth['isAuthenticated'](),controller[_0x4d69('0xc')]);router['get'](_0x4d69('0xd'),auth[_0x4d69('0x8')](),controller[_0x4d69('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x4d69('0xf')]);router[_0x4d69('0x10')](_0x4d69('0xd'),auth[_0x4d69('0x8')](),controller[_0x4d69('0x11')]);router[_0x4d69('0x12')](_0x4d69('0xd'),auth[_0x4d69('0x8')](),controller[_0x4d69('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6469=['STRING','DATE','moment','sequelize','exports'];(function(_0x1d578a,_0x2792e1){var _0x387f04=function(_0x5b5ae9){while(--_0x5b5ae9){_0x1d578a['push'](_0x1d578a['shift']());}};_0x387f04(++_0x2792e1);}(_0x6469,0x142));var _0x9646=function(_0x371f88,_0x44041a){_0x371f88=_0x371f88-0x0;var _0x227818=_0x6469[_0x371f88];return _0x227818;};'use strict';var moment=require(_0x9646('0x0'));var Sequelize=require(_0x9646('0x1'));module[_0x9646('0x2')]={'uniqueid':{'type':Sequelize[_0x9646('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x9646('0x3')]},'joinAt':{'type':Sequelize[_0x9646('0x4')]},'leaveAt':{'type':Sequelize[_0x9646('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x9646('0x4')]},'reason':{'type':Sequelize[_0x9646('0x3')]}};
\ No newline at end of file
+var _0xd737=['STRING','moment','sequelize','exports','DATE'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xd737,0xdd));var _0x7d73=function(_0x355adc,_0xac51ab){_0x355adc=_0x355adc-0x0;var _0x4df04f=_0xd737[_0x355adc];return _0x4df04f;};'use strict';var moment=require(_0x7d73('0x0'));var Sequelize=require(_0x7d73('0x1'));module[_0x7d73('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x7d73('0x3')]},'leaveAt':{'type':Sequelize[_0x7d73('0x3')]},'acceptAt':{'type':Sequelize[_0x7d73('0x3')]},'exitAt':{'type':Sequelize[_0x7d73('0x3')]},'reason':{'type':Sequelize[_0x7d73('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x841d=['body','destroy','describe','eml-format','zip-dir','request-promise','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','limit','count','offset','Content-Range','reject','save','update','then','sendStatus','stack','name','send','index','map','SmsQueueReport','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','intersection','find','catch','create'];(function(_0x553ff3,_0x18703f){var _0x10bb6e=function(_0x206af8){while(--_0x206af8){_0x553ff3['push'](_0x553ff3['shift']());}};_0x10bb6e(++_0x18703f);}(_0x841d,0xdb));var _0xd841=function(_0x13f0e5,_0x2ca207){_0x13f0e5=_0x13f0e5-0x0;var _0x16aedd=_0x841d[_0x13f0e5];return _0x16aedd;};'use strict';var emlformat=require(_0xd841('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd841('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd841('0x2'));var moment=require('moment');var BPromise=require(_0xd841('0x3'));var Mustache=require(_0xd841('0x4'));var util=require(_0xd841('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xd841('0x6'));var ejs=require(_0xd841('0x7'));var fs=require('fs');var fs_extra=require(_0xd841('0x8'));var _=require(_0xd841('0x9'));var squel=require(_0xd841('0xa'));var crypto=require(_0xd841('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xd841('0xc'));var toCsv=require(_0xd841('0x6'));var querystring=require('querystring');var Papa=require(_0xd841('0xd'));var Redis=require('ioredis');var authService=require(_0xd841('0xe'));var qs=require(_0xd841('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd841('0x10'));var logger=require('../../config/logger')(_0xd841('0x11'));var utils=require('../../config/utils');var config=require(_0xd841('0x12'));var licenseUtil=require(_0xd841('0x13'));var db=require(_0xd841('0x14'))['db'];function respondWithStatusCode(_0x17d19c,_0x484e5b){_0x484e5b=_0x484e5b||0xcc;return function(_0x1c54f9){if(_0x1c54f9){return _0x17d19c['sendStatus'](_0x484e5b);}return _0x17d19c[_0xd841('0x15')](_0x484e5b)[_0xd841('0x16')]();};}function respondWithResult(_0x828690,_0x44c0c2){_0x44c0c2=_0x44c0c2||0xc8;return function(_0x350a57){if(_0x350a57){return _0x828690[_0xd841('0x15')](_0x44c0c2)[_0xd841('0x17')](_0x350a57);}};}function respondWithFilteredResult(_0x51a79b,_0x45192b){return function(_0x1cbe14){if(_0x1cbe14){var _0x266fdd=typeof _0x45192b['offset']==='undefined'&&typeof _0x45192b[_0xd841('0x18')]==='undefined';var _0x33b9a6=_0x1cbe14[_0xd841('0x19')];var _0x299729=_0x266fdd?0x0:_0x45192b[_0xd841('0x1a')];var _0x49025e=_0x266fdd?_0x1cbe14[_0xd841('0x19')]:_0x45192b['offset']+_0x45192b[_0xd841('0x18')];var _0x419faf;if(_0x49025e>=_0x33b9a6){_0x49025e=_0x33b9a6;_0x419faf=0xc8;}else{_0x419faf=0xce;}_0x51a79b[_0xd841('0x15')](_0x419faf);return _0x51a79b['set'](_0xd841('0x1b'),_0x299729+'-'+_0x49025e+'/'+_0x33b9a6)[_0xd841('0x17')](_0x1cbe14);}return null;};}function patchUpdates(_0x58a486){return function(_0x49c31d){try{jsonpatch['apply'](_0x49c31d,_0x58a486,!![]);}catch(_0x59069a){return BPromise[_0xd841('0x1c')](_0x59069a);}return _0x49c31d[_0xd841('0x1d')]();};}function saveUpdates(_0x2351bb,_0x29ac4f){return function(_0x3651d3){if(_0x3651d3){return _0x3651d3[_0xd841('0x1e')](_0x2351bb)[_0xd841('0x1f')](function(_0x41271){return _0x41271;});}return null;};}function removeEntity(_0x21d3cd,_0x2c3d32){return function(_0x1e3d2d){if(_0x1e3d2d){return _0x1e3d2d['destroy']()[_0xd841('0x1f')](function(){_0x21d3cd[_0xd841('0x15')](0xcc)[_0xd841('0x16')]();});}};}function handleEntityNotFound(_0xe1a54c,_0x299ebe){return function(_0x4aee98){if(!_0x4aee98){_0xe1a54c[_0xd841('0x20')](0x194);}return _0x4aee98;};}function handleError(_0x3d042a,_0xa764f2){_0xa764f2=_0xa764f2||0x1f4;return function(_0x5ce6b1){logger['error'](_0x5ce6b1[_0xd841('0x21')]);if(_0x5ce6b1[_0xd841('0x22')]){delete _0x5ce6b1['name'];}_0x3d042a[_0xd841('0x15')](_0xa764f2)[_0xd841('0x23')](_0x5ce6b1);};}exports[_0xd841('0x24')]=function(_0x262de5,_0x6a3787){var _0x153b75={},_0x580b89={},_0x1eec40={'count':0x0,'rows':[]};var _0xe6c08e=_[_0xd841('0x25')](db[_0xd841('0x26')][_0xd841('0x27')],function(_0x377622){return{'name':_0x377622[_0xd841('0x28')],'type':_0x377622[_0xd841('0x29')][_0xd841('0x2a')]};});_0x580b89[_0xd841('0x2b')]=_[_0xd841('0x25')](_0xe6c08e,'name');_0x580b89[_0xd841('0x2c')]=_[_0xd841('0x2d')](_0x262de5[_0xd841('0x2c')]);_0x580b89[_0xd841('0x2e')]=_['intersection'](_0x580b89['model'],_0x580b89[_0xd841('0x2c')]);_0x153b75[_0xd841('0x2f')]=_['intersection'](_0x580b89['model'],qs[_0xd841('0x30')](_0x262de5[_0xd841('0x2c')][_0xd841('0x30')]));_0x153b75[_0xd841('0x2f')]=_0x153b75[_0xd841('0x2f')][_0xd841('0x31')]?_0x153b75[_0xd841('0x2f')]:_0x580b89[_0xd841('0x2b')];if(!_0x262de5[_0xd841('0x2c')]['hasOwnProperty'](_0xd841('0x32'))){_0x153b75['limit']=qs[_0xd841('0x18')](_0x262de5[_0xd841('0x2c')][_0xd841('0x18')]);_0x153b75['offset']=qs[_0xd841('0x1a')](_0x262de5[_0xd841('0x2c')][_0xd841('0x1a')]);}_0x153b75[_0xd841('0x33')]=qs[_0xd841('0x34')](_0x262de5['query'][_0xd841('0x34')]);_0x153b75[_0xd841('0x35')]=qs[_0xd841('0x2e')](_[_0xd841('0x36')](_0x262de5[_0xd841('0x2c')],_0x580b89[_0xd841('0x2e')]),_0xe6c08e);if(_0x262de5[_0xd841('0x2c')][_0xd841('0x37')]){_0x153b75[_0xd841('0x35')]=_[_0xd841('0x38')](_0x153b75[_0xd841('0x35')],{'$or':_['map'](_0xe6c08e,function(_0x9b4af5){if(_0x9b4af5[_0xd841('0x29')]!==_0xd841('0x39')){var _0x55114e={};_0x55114e[_0x9b4af5[_0xd841('0x22')]]={'$like':'%'+_0x262de5[_0xd841('0x2c')][_0xd841('0x37')]+'%'};return _0x55114e;}})});}_0x153b75=_['merge']({},_0x153b75,_0x262de5[_0xd841('0x3a')]);var _0x1e9190={'where':_0x153b75[_0xd841('0x35')]};return db[_0xd841('0x26')][_0xd841('0x19')](_0x1e9190)[_0xd841('0x1f')](function(_0x4e2e84){_0x1eec40[_0xd841('0x19')]=_0x4e2e84;if(_0x262de5[_0xd841('0x2c')][_0xd841('0x3b')]){_0x153b75[_0xd841('0x3c')]=[{'all':!![]}];}return db[_0xd841('0x26')][_0xd841('0x3d')](_0x153b75);})[_0xd841('0x1f')](function(_0x4ccb9d){_0x1eec40[_0xd841('0x3e')]=_0x4ccb9d;return _0x1eec40;})[_0xd841('0x1f')](respondWithFilteredResult(_0x6a3787,_0x153b75))['catch'](handleError(_0x6a3787,null));};exports[_0xd841('0x3f')]=function(_0x194142,_0x55ef45){var _0x3dc33e={'raw':!![],'where':{'id':_0x194142[_0xd841('0x40')]['id']}},_0x1da1eb={};_0x1da1eb[_0xd841('0x2b')]=_[_0xd841('0x2d')](db[_0xd841('0x26')][_0xd841('0x27')]);_0x1da1eb['query']=_['keys'](_0x194142[_0xd841('0x2c')]);_0x1da1eb[_0xd841('0x2e')]=_['intersection'](_0x1da1eb[_0xd841('0x2b')],_0x1da1eb[_0xd841('0x2c')]);_0x3dc33e[_0xd841('0x2f')]=_[_0xd841('0x41')](_0x1da1eb[_0xd841('0x2b')],qs[_0xd841('0x30')](_0x194142[_0xd841('0x2c')][_0xd841('0x30')]));_0x3dc33e[_0xd841('0x2f')]=_0x3dc33e[_0xd841('0x2f')][_0xd841('0x31')]?_0x3dc33e['attributes']:_0x1da1eb[_0xd841('0x2b')];if(_0x194142[_0xd841('0x2c')][_0xd841('0x3b')]){_0x3dc33e['include']=[{'all':!![]}];}_0x3dc33e=_['merge']({},_0x3dc33e,_0x194142[_0xd841('0x3a')]);return db['SmsQueueReport'][_0xd841('0x42')](_0x3dc33e)[_0xd841('0x1f')](handleEntityNotFound(_0x55ef45,null))['then'](respondWithResult(_0x55ef45,null))[_0xd841('0x43')](handleError(_0x55ef45,null));};exports[_0xd841('0x44')]=function(_0x1b589f,_0x3f55cb){return db[_0xd841('0x26')][_0xd841('0x44')](_0x1b589f[_0xd841('0x45')],{})['then'](respondWithResult(_0x3f55cb,0xc9))[_0xd841('0x43')](handleError(_0x3f55cb,null));};exports[_0xd841('0x1e')]=function(_0x44cfcb,_0x3fcda5){if(_0x44cfcb['body']['id']){delete _0x44cfcb['body']['id'];}return db['SmsQueueReport']['find']({'where':{'id':_0x44cfcb[_0xd841('0x40')]['id']}})[_0xd841('0x1f')](handleEntityNotFound(_0x3fcda5,null))[_0xd841('0x1f')](saveUpdates(_0x44cfcb[_0xd841('0x45')],null))['then'](respondWithResult(_0x3fcda5,null))[_0xd841('0x43')](handleError(_0x3fcda5,null));};exports[_0xd841('0x46')]=function(_0x58ef04,_0xf91891){return db[_0xd841('0x26')][_0xd841('0x42')]({'where':{'id':_0x58ef04['params']['id']}})[_0xd841('0x1f')](handleEntityNotFound(_0xf91891,null))['then'](removeEntity(_0xf91891,null))['catch'](handleError(_0xf91891,null));};exports[_0xd841('0x47')]=function(_0x4eeb97,_0x554db6){return db[_0xd841('0x26')][_0xd841('0x47')]()[_0xd841('0x1f')](respondWithResult(_0x554db6,null))['catch'](handleError(_0x554db6,null));};
\ No newline at end of file
+var _0x1dc2=['sort','where','filter','VIRTUAL','catch','show','params','keys','includeAll','include','merge','options','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','offset','undefined','limit','count','Content-Range','json','reject','save','update','destroy','then','end','stack','name','send','index','map','SmsQueueReport','rawAttributes','fieldName','key','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order'];(function(_0x3ab281,_0x4c06d9){var _0x3b4133=function(_0x221014){while(--_0x221014){_0x3ab281['push'](_0x3ab281['shift']());}};_0x3b4133(++_0x4c06d9);}(_0x1dc2,0x182));var _0x21dc=function(_0x16109f,_0x155f4a){_0x16109f=_0x16109f-0x0;var _0xc77d03=_0x1dc2[_0x16109f];return _0xc77d03;};'use strict';var emlformat=require(_0x21dc('0x0'));var rimraf=require(_0x21dc('0x1'));var zipdir=require(_0x21dc('0x2'));var jsonpatch=require(_0x21dc('0x3'));var rp=require(_0x21dc('0x4'));var moment=require(_0x21dc('0x5'));var BPromise=require(_0x21dc('0x6'));var Mustache=require(_0x21dc('0x7'));var util=require('util');var path=require(_0x21dc('0x8'));var sox=require(_0x21dc('0x9'));var csv=require(_0x21dc('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x21dc('0xb'));var _=require(_0x21dc('0xc'));var squel=require(_0x21dc('0xd'));var crypto=require(_0x21dc('0xe'));var jsforce=require(_0x21dc('0xf'));var deskjs=require(_0x21dc('0x10'));var toCsv=require('to-csv');var querystring=require(_0x21dc('0x11'));var Papa=require(_0x21dc('0x12'));var Redis=require(_0x21dc('0x13'));var authService=require(_0x21dc('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x21dc('0x15'))(_0x21dc('0x16'));var utils=require('../../config/utils');var config=require(_0x21dc('0x17'));var licenseUtil=require(_0x21dc('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x41998e,_0x4e1bed){_0x4e1bed=_0x4e1bed||0xcc;return function(_0x2d0e2e){if(_0x2d0e2e){return _0x41998e[_0x21dc('0x19')](_0x4e1bed);}return _0x41998e[_0x21dc('0x1a')](_0x4e1bed)['end']();};}function respondWithResult(_0x101ac4,_0x228599){_0x228599=_0x228599||0xc8;return function(_0x55c591){if(_0x55c591){return _0x101ac4['status'](_0x228599)['json'](_0x55c591);}};}function respondWithFilteredResult(_0x6fc599,_0x55096f){return function(_0x2fcf2e){if(_0x2fcf2e){var _0x37267c=typeof _0x55096f[_0x21dc('0x1b')]===_0x21dc('0x1c')&&typeof _0x55096f[_0x21dc('0x1d')]===_0x21dc('0x1c');var _0x1b4f02=_0x2fcf2e[_0x21dc('0x1e')];var _0x50da3c=_0x37267c?0x0:_0x55096f[_0x21dc('0x1b')];var _0x3c885f=_0x37267c?_0x2fcf2e[_0x21dc('0x1e')]:_0x55096f[_0x21dc('0x1b')]+_0x55096f[_0x21dc('0x1d')];var _0x1c5d33;if(_0x3c885f>=_0x1b4f02){_0x3c885f=_0x1b4f02;_0x1c5d33=0xc8;}else{_0x1c5d33=0xce;}_0x6fc599[_0x21dc('0x1a')](_0x1c5d33);return _0x6fc599['set'](_0x21dc('0x1f'),_0x50da3c+'-'+_0x3c885f+'/'+_0x1b4f02)[_0x21dc('0x20')](_0x2fcf2e);}return null;};}function patchUpdates(_0x44982b){return function(_0x1b4cf7){try{jsonpatch['apply'](_0x1b4cf7,_0x44982b,!![]);}catch(_0x50b710){return BPromise[_0x21dc('0x21')](_0x50b710);}return _0x1b4cf7[_0x21dc('0x22')]();};}function saveUpdates(_0x37bac2,_0x49fa1b){return function(_0x5ac66b){if(_0x5ac66b){return _0x5ac66b[_0x21dc('0x23')](_0x37bac2)['then'](function(_0x2b2322){return _0x2b2322;});}return null;};}function removeEntity(_0x401e7b,_0x31498f){return function(_0x350cf2){if(_0x350cf2){return _0x350cf2[_0x21dc('0x24')]()[_0x21dc('0x25')](function(){_0x401e7b[_0x21dc('0x1a')](0xcc)[_0x21dc('0x26')]();});}};}function handleEntityNotFound(_0x18fc07,_0x5a9584){return function(_0x167e5a){if(!_0x167e5a){_0x18fc07[_0x21dc('0x19')](0x194);}return _0x167e5a;};}function handleError(_0x129b71,_0x32679a){_0x32679a=_0x32679a||0x1f4;return function(_0x57560f){logger['error'](_0x57560f[_0x21dc('0x27')]);if(_0x57560f['name']){delete _0x57560f[_0x21dc('0x28')];}_0x129b71[_0x21dc('0x1a')](_0x32679a)[_0x21dc('0x29')](_0x57560f);};}exports[_0x21dc('0x2a')]=function(_0x389b5b,_0x24dc7b){var _0x4f73d9={},_0x532d51={},_0xfa62cc={'count':0x0,'rows':[]};var _0x219f54=_[_0x21dc('0x2b')](db[_0x21dc('0x2c')][_0x21dc('0x2d')],function(_0x4bf41a){return{'name':_0x4bf41a[_0x21dc('0x2e')],'type':_0x4bf41a['type'][_0x21dc('0x2f')]};});_0x532d51['model']=_[_0x21dc('0x2b')](_0x219f54,_0x21dc('0x28'));_0x532d51[_0x21dc('0x30')]=_['keys'](_0x389b5b[_0x21dc('0x30')]);_0x532d51[_0x21dc('0x31')]=_['intersection'](_0x532d51[_0x21dc('0x32')],_0x532d51[_0x21dc('0x30')]);_0x4f73d9[_0x21dc('0x33')]=_[_0x21dc('0x34')](_0x532d51[_0x21dc('0x32')],qs['fields'](_0x389b5b['query'][_0x21dc('0x35')]));_0x4f73d9['attributes']=_0x4f73d9[_0x21dc('0x33')][_0x21dc('0x36')]?_0x4f73d9['attributes']:_0x532d51[_0x21dc('0x32')];if(!_0x389b5b[_0x21dc('0x30')][_0x21dc('0x37')](_0x21dc('0x38'))){_0x4f73d9[_0x21dc('0x1d')]=qs[_0x21dc('0x1d')](_0x389b5b['query'][_0x21dc('0x1d')]);_0x4f73d9[_0x21dc('0x1b')]=qs[_0x21dc('0x1b')](_0x389b5b[_0x21dc('0x30')][_0x21dc('0x1b')]);}_0x4f73d9[_0x21dc('0x39')]=qs['sort'](_0x389b5b['query'][_0x21dc('0x3a')]);_0x4f73d9[_0x21dc('0x3b')]=qs['filters'](_['pick'](_0x389b5b[_0x21dc('0x30')],_0x532d51[_0x21dc('0x31')]),_0x219f54);if(_0x389b5b[_0x21dc('0x30')][_0x21dc('0x3c')]){_0x4f73d9[_0x21dc('0x3b')]=_['merge'](_0x4f73d9[_0x21dc('0x3b')],{'$or':_[_0x21dc('0x2b')](_0x219f54,function(_0x105688){if(_0x105688['type']!==_0x21dc('0x3d')){var _0x511dd4={};_0x511dd4[_0x105688['name']]={'$like':'%'+_0x389b5b[_0x21dc('0x30')][_0x21dc('0x3c')]+'%'};return _0x511dd4;}})});}_0x4f73d9=_['merge']({},_0x4f73d9,_0x389b5b['options']);var _0x349fb0={'where':_0x4f73d9[_0x21dc('0x3b')]};return db[_0x21dc('0x2c')][_0x21dc('0x1e')](_0x349fb0)[_0x21dc('0x25')](function(_0x16c287){_0xfa62cc[_0x21dc('0x1e')]=_0x16c287;if(_0x389b5b[_0x21dc('0x30')]['includeAll']){_0x4f73d9['include']=[{'all':!![]}];}return db[_0x21dc('0x2c')]['findAll'](_0x4f73d9);})['then'](function(_0x45fb26){_0xfa62cc['rows']=_0x45fb26;return _0xfa62cc;})[_0x21dc('0x25')](respondWithFilteredResult(_0x24dc7b,_0x4f73d9))[_0x21dc('0x3e')](handleError(_0x24dc7b,null));};exports[_0x21dc('0x3f')]=function(_0x4d85a7,_0x18bb4f){var _0x520ccb={'raw':!![],'where':{'id':_0x4d85a7[_0x21dc('0x40')]['id']}},_0x2ed4a9={};_0x2ed4a9[_0x21dc('0x32')]=_[_0x21dc('0x41')](db['SmsQueueReport']['rawAttributes']);_0x2ed4a9[_0x21dc('0x30')]=_['keys'](_0x4d85a7[_0x21dc('0x30')]);_0x2ed4a9['filters']=_[_0x21dc('0x34')](_0x2ed4a9[_0x21dc('0x32')],_0x2ed4a9['query']);_0x520ccb[_0x21dc('0x33')]=_['intersection'](_0x2ed4a9[_0x21dc('0x32')],qs[_0x21dc('0x35')](_0x4d85a7['query'][_0x21dc('0x35')]));_0x520ccb['attributes']=_0x520ccb[_0x21dc('0x33')][_0x21dc('0x36')]?_0x520ccb['attributes']:_0x2ed4a9[_0x21dc('0x32')];if(_0x4d85a7[_0x21dc('0x30')][_0x21dc('0x42')]){_0x520ccb[_0x21dc('0x43')]=[{'all':!![]}];}_0x520ccb=_[_0x21dc('0x44')]({},_0x520ccb,_0x4d85a7[_0x21dc('0x45')]);return db['SmsQueueReport'][_0x21dc('0x46')](_0x520ccb)[_0x21dc('0x25')](handleEntityNotFound(_0x18bb4f,null))[_0x21dc('0x25')](respondWithResult(_0x18bb4f,null))[_0x21dc('0x3e')](handleError(_0x18bb4f,null));};exports[_0x21dc('0x47')]=function(_0x408907,_0x4b060a){return db['SmsQueueReport']['create'](_0x408907[_0x21dc('0x48')],{})[_0x21dc('0x25')](respondWithResult(_0x4b060a,0xc9))[_0x21dc('0x3e')](handleError(_0x4b060a,null));};exports[_0x21dc('0x23')]=function(_0x1d565b,_0x4f6644){if(_0x1d565b[_0x21dc('0x48')]['id']){delete _0x1d565b[_0x21dc('0x48')]['id'];}return db[_0x21dc('0x2c')]['find']({'where':{'id':_0x1d565b['params']['id']}})['then'](handleEntityNotFound(_0x4f6644,null))[_0x21dc('0x25')](saveUpdates(_0x1d565b[_0x21dc('0x48')],null))[_0x21dc('0x25')](respondWithResult(_0x4f6644,null))[_0x21dc('0x3e')](handleError(_0x4f6644,null));};exports['destroy']=function(_0x3e2f05,_0xbd9144){return db[_0x21dc('0x2c')]['find']({'where':{'id':_0x3e2f05[_0x21dc('0x40')]['id']}})[_0x21dc('0x25')](handleEntityNotFound(_0xbd9144,null))[_0x21dc('0x25')](removeEntity(_0xbd9144,null))[_0x21dc('0x3e')](handleError(_0xbd9144,null));};exports[_0x21dc('0x49')]=function(_0x1fb39c,_0x163e46){return db['SmsQueueReport'][_0x21dc('0x49')]()[_0x21dc('0x25')](respondWithResult(_0x163e46,null))['catch'](handleError(_0x163e46,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['path','rimraf','./smsQueueReport.attributes','exports','define','report_sms_queue','uniqueid','../../config/logger','api','moment','bluebird'];(function(_0x31e57f,_0x68cba0){var _0x40ca86=function(_0x1bd5bf){while(--_0x1bd5bf){_0x31e57f['push'](_0x31e57f['shift']());}};_0x40ca86(++_0x68cba0);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x284807,_0x4be925){_0x284807=_0x284807-0x0;var _0x50c774=_0xcb91[_0x284807];return _0x50c774;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1cb9('0x0'))(_0x1cb9('0x1'));var moment=require(_0x1cb9('0x2'));var BPromise=require(_0x1cb9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb9('0x4'));var rimraf=require(_0x1cb9('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cb9('0x6'));module[_0x1cb9('0x7')]=function(_0x53ffbd,_0x226b69){return _0x53ffbd[_0x1cb9('0x8')]('SmsQueueReport',attributes,{'tableName':_0x1cb9('0x9'),'paranoid':![],'indexes':[{'name':_0x1cb9('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb7e7=['../../config/logger','moment','request-promise','rimraf','../../config/environment','./smsQueueReport.attributes','define','SmsQueueReport','uniqueid','lodash'];(function(_0x3123d7,_0x20d651){var _0x5ec935=function(_0x563ee3){while(--_0x563ee3){_0x3123d7['push'](_0x3123d7['shift']());}};_0x5ec935(++_0x20d651);}(_0xb7e7,0x121));var _0x7b7e=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0xb7e7[_0x1da04e];return _0xdd8c41;};'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 fs=require('fs');var path=require('path');var rimraf=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var attributes=require(_0x7b7e('0x6'));module['exports']=function(_0x53ed64,_0x333fa4){return _0x53ed64[_0x7b7e('0x7')](_0x7b7e('0x8'),attributes,{'tableName':'report_sms_queue','paranoid':![],'indexes':[{'name':_0x7b7e('0x9'),'fields':[_0x7b7e('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9ea=['limit','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','CreateSmsQueueReport','SmsQueueReport','create','body','options','raw','catch','UpdateSmsQueueReport','where','attributes'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xe9ea,0x15f));var _0xae9e=function(_0x1a8b70,_0x855063){_0x1a8b70=_0x1a8b70-0x0;var _0x52b706=_0xe9ea[_0x1a8b70];return _0x52b706;};'use strict';var _=require(_0xae9e('0x0'));var util=require(_0xae9e('0x1'));var moment=require(_0xae9e('0x2'));var BPromise=require(_0xae9e('0x3'));var rs=require(_0xae9e('0x4'));var fs=require('fs');var Redis=require(_0xae9e('0x5'));var db=require(_0xae9e('0x6'))['db'];var utils=require(_0xae9e('0x7'));var logger=require(_0xae9e('0x8'))(_0xae9e('0x9'));var config=require(_0xae9e('0xa'));var jayson=require(_0xae9e('0xb'));var client=jayson[_0xae9e('0xc')][_0xae9e('0xd')]({'port':0x232a});function respondWithRpcPromise(_0xc4b047,_0x1a6591,_0x28061c){return new BPromise(function(_0x2b9ad8,_0x15bd9e){return client[_0xae9e('0xe')](_0xc4b047,_0x28061c)[_0xae9e('0xf')](function(_0x116973){logger[_0xae9e('0x10')](_0xae9e('0x11'),_0x1a6591,_0xae9e('0x12'));logger[_0xae9e('0x13')](_0xae9e('0x14'),_0x1a6591,_0xae9e('0x12'),JSON[_0xae9e('0x15')](_0x116973));if(_0x116973['error']){if(_0x116973['error']['code']===0x1f4){logger['error']('SmsQueueReport,\x20%s,\x20%s',_0x1a6591,_0x116973[_0xae9e('0x16')]['message']);return _0x15bd9e(_0x116973['error'][_0xae9e('0x17')]);}logger['error']('SmsQueueReport,\x20%s,\x20%s',_0x1a6591,_0x116973['error']['message']);return _0x2b9ad8(_0x116973[_0xae9e('0x16')][_0xae9e('0x17')]);}else{logger[_0xae9e('0x10')](_0xae9e('0x11'),_0x1a6591,'request\x20sent');_0x2b9ad8(_0x116973['result'][_0xae9e('0x17')]);}})['catch'](function(_0x446c5a){logger[_0xae9e('0x16')](_0xae9e('0x11'),_0x1a6591,_0x446c5a);_0x15bd9e(_0x446c5a);});});}exports[_0xae9e('0x18')]=function(_0x586a9d){var _0x202af4=this;return new Promise(function(_0x5aa5de,_0x134faf){return db[_0xae9e('0x19')][_0xae9e('0x1a')](_0x586a9d[_0xae9e('0x1b')],{'raw':_0x586a9d[_0xae9e('0x1c')]?_0x586a9d[_0xae9e('0x1c')][_0xae9e('0x1d')]===undefined?!![]:![]:!![]})['then'](function(_0x16d936){logger[_0xae9e('0x10')](_0xae9e('0x18'),_0x586a9d);logger['debug'](_0xae9e('0x18'),_0x586a9d,JSON[_0xae9e('0x15')](_0x16d936));_0x5aa5de(_0x16d936);})[_0xae9e('0x1e')](function(_0xc2c771){logger[_0xae9e('0x16')](_0xae9e('0x18'),_0xc2c771['message'],_0x586a9d);_0x134faf(_0x202af4[_0xae9e('0x16')](0x1f4,_0xc2c771[_0xae9e('0x17')]));});});};exports[_0xae9e('0x1f')]=function(_0x4a7912){var _0x249978=this;return new Promise(function(_0x1a8f60,_0x325924){return db[_0xae9e('0x19')]['update'](_0x4a7912['body'],{'raw':_0x4a7912[_0xae9e('0x1c')]?_0x4a7912[_0xae9e('0x1c')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4a7912[_0xae9e('0x1c')]?_0x4a7912[_0xae9e('0x1c')][_0xae9e('0x20')]||null:null,'attributes':_0x4a7912['options']?_0x4a7912['options'][_0xae9e('0x21')]||null:null,'limit':_0x4a7912[_0xae9e('0x1c')]?_0x4a7912[_0xae9e('0x1c')][_0xae9e('0x22')]||null:null})['then'](function(_0xee2d85){logger['info'](_0xae9e('0x1f'),_0x4a7912);logger[_0xae9e('0x13')](_0xae9e('0x1f'),_0x4a7912,JSON[_0xae9e('0x15')](_0xee2d85));_0x1a8f60(_0xee2d85);})[_0xae9e('0x1e')](function(_0x1ebe78){logger[_0xae9e('0x16')]('UpdateSmsQueueReport',_0x1ebe78[_0xae9e('0x17')],_0x4a7912);_0x325924(_0x249978[_0xae9e('0x16')](0x1f4,_0x1ebe78[_0xae9e('0x17')]));});});};
\ No newline at end of file
+var _0x0e07=['moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','CreateSmsQueueReport','SmsQueueReport','create','options','raw','UpdateSmsQueueReport','update','body','where','limit','lodash','util'];(function(_0x4374d2,_0x9133db){var _0xbd521=function(_0x3cdb9f){while(--_0x3cdb9f){_0x4374d2['push'](_0x4374d2['shift']());}};_0xbd521(++_0x9133db);}(_0x0e07,0x15e));var _0x70e0=function(_0x1d1779,_0x284147){_0x1d1779=_0x1d1779-0x0;var _0x2377e9=_0x0e07[_0x1d1779];return _0x2377e9;};'use strict';var _=require(_0x70e0('0x0'));var util=require(_0x70e0('0x1'));var moment=require(_0x70e0('0x2'));var BPromise=require(_0x70e0('0x3'));var rs=require(_0x70e0('0x4'));var fs=require('fs');var Redis=require(_0x70e0('0x5'));var db=require(_0x70e0('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x70e0('0x7'));var config=require(_0x70e0('0x8'));var jayson=require(_0x70e0('0x9'));var client=jayson[_0x70e0('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4fd4b3,_0xa22722,_0x498be1){return new BPromise(function(_0x232d3b,_0x4f9bd0){return client['request'](_0x4fd4b3,_0x498be1)[_0x70e0('0xb')](function(_0x5a82ac){logger[_0x70e0('0xc')](_0x70e0('0xd'),_0xa22722,_0x70e0('0xe'));logger[_0x70e0('0xf')](_0x70e0('0x10'),_0xa22722,_0x70e0('0xe'),JSON[_0x70e0('0x11')](_0x5a82ac));if(_0x5a82ac[_0x70e0('0x12')]){if(_0x5a82ac[_0x70e0('0x12')]['code']===0x1f4){logger[_0x70e0('0x12')](_0x70e0('0xd'),_0xa22722,_0x5a82ac[_0x70e0('0x12')][_0x70e0('0x13')]);return _0x4f9bd0(_0x5a82ac[_0x70e0('0x12')][_0x70e0('0x13')]);}logger[_0x70e0('0x12')](_0x70e0('0xd'),_0xa22722,_0x5a82ac[_0x70e0('0x12')][_0x70e0('0x13')]);return _0x232d3b(_0x5a82ac['error']['message']);}else{logger[_0x70e0('0xc')]('SmsQueueReport,\x20%s,\x20%s',_0xa22722,_0x70e0('0xe'));_0x232d3b(_0x5a82ac[_0x70e0('0x14')]['message']);}})[_0x70e0('0x15')](function(_0x1cab60){logger[_0x70e0('0x12')]('SmsQueueReport,\x20%s,\x20%s',_0xa22722,_0x1cab60);_0x4f9bd0(_0x1cab60);});});}exports[_0x70e0('0x16')]=function(_0x45b0c5){var _0x3b62b1=this;return new Promise(function(_0x5a68a5,_0x36bab6){return db[_0x70e0('0x17')][_0x70e0('0x18')](_0x45b0c5['body'],{'raw':_0x45b0c5[_0x70e0('0x19')]?_0x45b0c5[_0x70e0('0x19')][_0x70e0('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x707ca5){logger[_0x70e0('0xc')](_0x70e0('0x16'),_0x45b0c5);logger['debug'](_0x70e0('0x16'),_0x45b0c5,JSON[_0x70e0('0x11')](_0x707ca5));_0x5a68a5(_0x707ca5);})[_0x70e0('0x15')](function(_0x333384){logger['error']('CreateSmsQueueReport',_0x333384[_0x70e0('0x13')],_0x45b0c5);_0x36bab6(_0x3b62b1[_0x70e0('0x12')](0x1f4,_0x333384[_0x70e0('0x13')]));});});};exports[_0x70e0('0x1b')]=function(_0x2bc1c3){var _0x47b0bb=this;return new Promise(function(_0x57732e,_0x20f8ea){return db['SmsQueueReport'][_0x70e0('0x1c')](_0x2bc1c3[_0x70e0('0x1d')],{'raw':_0x2bc1c3['options']?_0x2bc1c3[_0x70e0('0x19')][_0x70e0('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2bc1c3['options']?_0x2bc1c3[_0x70e0('0x19')][_0x70e0('0x1e')]||null:null,'attributes':_0x2bc1c3['options']?_0x2bc1c3['options']['attributes']||null:null,'limit':_0x2bc1c3['options']?_0x2bc1c3['options'][_0x70e0('0x1f')]||null:null})[_0x70e0('0xb')](function(_0xba71ab){logger['info'](_0x70e0('0x1b'),_0x2bc1c3);logger[_0x70e0('0xf')](_0x70e0('0x1b'),_0x2bc1c3,JSON['stringify'](_0xba71ab));_0x57732e(_0xba71ab);})[_0x70e0('0x15')](function(_0x49ea6a){logger[_0x70e0('0x12')](_0x70e0('0x1b'),_0x49ea6a[_0x70e0('0x13')],_0x2bc1c3);_0x20f8ea(_0x47b0bb[_0x70e0('0x12')](0x1f4,_0x49ea6a[_0x70e0('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b1f=['put','/:id','update','delete','destroy','exports','multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/describe','post'];(function(_0x1c5968,_0x68d40c){var _0x290441=function(_0x5e2f4b){while(--_0x5e2f4b){_0x1c5968['push'](_0x1c5968['shift']());}};_0x290441(++_0x68d40c);}(_0x4b1f,0x195));var _0xf4b1=function(_0x4792c8,_0x5158a1){_0x4792c8=_0x4792c8-0x0;var _0x35edb1=_0x4b1f[_0x4792c8];return _0x35edb1;};'use strict';var multer=require(_0xf4b1('0x0'));var util=require(_0xf4b1('0x1'));var path=require('path');var timeout=require(_0xf4b1('0x2'));var express=require(_0xf4b1('0x3'));var router=express[_0xf4b1('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xf4b1('0x5'));var interaction=require(_0xf4b1('0x6'));var config=require(_0xf4b1('0x7'));var controller=require('./smsTransferReport.controller');router['get']('/',auth[_0xf4b1('0x8')](),controller[_0xf4b1('0x9')]);router[_0xf4b1('0xa')](_0xf4b1('0xb'),auth[_0xf4b1('0x8')](),controller['describe']);router['get']('/:id',auth[_0xf4b1('0x8')](),controller['show']);router[_0xf4b1('0xc')]('/',auth['isAuthenticated'](),controller['create']);router[_0xf4b1('0xd')](_0xf4b1('0xe'),auth[_0xf4b1('0x8')](),controller[_0xf4b1('0xf')]);router[_0xf4b1('0x10')](_0xf4b1('0xe'),auth[_0xf4b1('0x8')](),controller[_0xf4b1('0x11')]);module[_0xf4b1('0x12')]=router;
\ No newline at end of file
+var _0x3c17=['Router','fs-extra','../../components/interaction/service','../../config/environment','./smsTransferReport.controller','get','index','/describe','isAuthenticated','describe','show','post','create','put','/:id','delete','destroy','multer','path','express'];(function(_0x3725cd,_0x193297){var _0x2d0482=function(_0x4dee7a){while(--_0x4dee7a){_0x3725cd['push'](_0x3725cd['shift']());}};_0x2d0482(++_0x193297);}(_0x3c17,0x1a1));var _0x73c1=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0x3c17[_0x3635ce];return _0x97ecd0;};'use strict';var multer=require(_0x73c1('0x0'));var util=require('util');var path=require(_0x73c1('0x1'));var timeout=require('connect-timeout');var express=require(_0x73c1('0x2'));var router=express[_0x73c1('0x3')]();var fs_extra=require(_0x73c1('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x73c1('0x5'));var config=require(_0x73c1('0x6'));var controller=require(_0x73c1('0x7'));router[_0x73c1('0x8')]('/',auth['isAuthenticated'](),controller[_0x73c1('0x9')]);router['get'](_0x73c1('0xa'),auth[_0x73c1('0xb')](),controller[_0x73c1('0xc')]);router['get']('/:id',auth[_0x73c1('0xb')](),controller[_0x73c1('0xd')]);router[_0x73c1('0xe')]('/',auth[_0x73c1('0xb')](),controller[_0x73c1('0xf')]);router[_0x73c1('0x10')](_0x73c1('0x11'),auth['isAuthenticated'](),controller['update']);router[_0x73c1('0x12')](_0x73c1('0x11'),auth[_0x73c1('0xb')](),controller[_0x73c1('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['ENUM','agent','queue','DATE','NOW','moment','sequelize','exports','STRING'];(function(_0x2f6d05,_0x1f536c){var _0x75f8e=function(_0x137025){while(--_0x137025){_0x2f6d05['push'](_0x2f6d05['shift']());}};_0x75f8e(++_0x1f536c);}(_0x008c,0x188));var _0xc008=function(_0x5ce075,_0x20b649){_0x5ce075=_0x5ce075-0x0;var _0x595e7d=_0x008c[_0x5ce075];return _0x595e7d;};'use strict';var moment=require(_0xc008('0x0'));var Sequelize=require(_0xc008('0x1'));module[_0xc008('0x2')]={'uniqueid':{'type':Sequelize[_0xc008('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xc008('0x4')]('account',_0xc008('0x5'),_0xc008('0x6')),'allowNull':![],'defaultValue':_0xc008('0x6')},'transferredAt':{'type':Sequelize[_0xc008('0x7')],'allowNull':![],'defaultValue':Sequelize[_0xc008('0x8')]}};
\ No newline at end of file
+var _0x008c=['ENUM','agent','queue','DATE','NOW','moment','sequelize','exports','STRING'];(function(_0x3e6188,_0xd8d390){var _0x47bfe6=function(_0x317c58){while(--_0x317c58){_0x3e6188['push'](_0x3e6188['shift']());}};_0x47bfe6(++_0xd8d390);}(_0x008c,0x188));var _0xc008=function(_0x24e747,_0x2d5368){_0x24e747=_0x24e747-0x0;var _0x2e2f66=_0x008c[_0x24e747];return _0x2e2f66;};'use strict';var moment=require(_0xc008('0x0'));var Sequelize=require(_0xc008('0x1'));module[_0xc008('0x2')]={'uniqueid':{'type':Sequelize[_0xc008('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xc008('0x4')]('account',_0xc008('0x5'),_0xc008('0x6')),'allowNull':![],'defaultValue':_0xc008('0x6')},'transferredAt':{'type':Sequelize[_0xc008('0x7')],'allowNull':![],'defaultValue':Sequelize[_0xc008('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe059=['error','stack','name','send','index','map','SmsTransferReport','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','find','create','body','catch','params','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/license/util','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy'];(function(_0x910d0,_0x527681){var _0x88124f=function(_0x117b34){while(--_0x117b34){_0x910d0['push'](_0x910d0['shift']());}};_0x88124f(++_0x527681);}(_0xe059,0xb7));var _0x9e05=function(_0x2f3b86,_0x1fffad){_0x2f3b86=_0x2f3b86-0x0;var _0x9741a0=_0xe059[_0x2f3b86];return _0x9741a0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9e05('0x0'));var zipdir=require(_0x9e05('0x1'));var jsonpatch=require(_0x9e05('0x2'));var rp=require(_0x9e05('0x3'));var moment=require(_0x9e05('0x4'));var BPromise=require(_0x9e05('0x5'));var Mustache=require(_0x9e05('0x6'));var util=require('util');var path=require(_0x9e05('0x7'));var sox=require(_0x9e05('0x8'));var csv=require(_0x9e05('0x9'));var ejs=require(_0x9e05('0xa'));var fs=require('fs');var fs_extra=require(_0x9e05('0xb'));var _=require(_0x9e05('0xc'));var squel=require(_0x9e05('0xd'));var crypto=require(_0x9e05('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x9e05('0xf'));var toCsv=require(_0x9e05('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x9e05('0x10'));var qs=require(_0x9e05('0x11'));var as=require(_0x9e05('0x12'));var hardwareService=require(_0x9e05('0x13'));var logger=require('../../config/logger')(_0x9e05('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x9e05('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x31b570,_0x4a93c8){_0x4a93c8=_0x4a93c8||0xcc;return function(_0x2dbac7){if(_0x2dbac7){return _0x31b570[_0x9e05('0x16')](_0x4a93c8);}return _0x31b570[_0x9e05('0x17')](_0x4a93c8)[_0x9e05('0x18')]();};}function respondWithResult(_0x3f2641,_0x5ec1a3){_0x5ec1a3=_0x5ec1a3||0xc8;return function(_0x434210){if(_0x434210){return _0x3f2641[_0x9e05('0x17')](_0x5ec1a3)[_0x9e05('0x19')](_0x434210);}};}function respondWithFilteredResult(_0x5913a5,_0x32f3db){return function(_0xf32d14){if(_0xf32d14){var _0xbf46f2=typeof _0x32f3db['offset']===_0x9e05('0x1a')&&typeof _0x32f3db[_0x9e05('0x1b')]===_0x9e05('0x1a');var _0x2b4e9c=_0xf32d14[_0x9e05('0x1c')];var _0xaa8684=_0xbf46f2?0x0:_0x32f3db[_0x9e05('0x1d')];var _0x26c982=_0xbf46f2?_0xf32d14[_0x9e05('0x1c')]:_0x32f3db[_0x9e05('0x1d')]+_0x32f3db[_0x9e05('0x1b')];var _0x38a508;if(_0x26c982>=_0x2b4e9c){_0x26c982=_0x2b4e9c;_0x38a508=0xc8;}else{_0x38a508=0xce;}_0x5913a5[_0x9e05('0x17')](_0x38a508);return _0x5913a5[_0x9e05('0x1e')](_0x9e05('0x1f'),_0xaa8684+'-'+_0x26c982+'/'+_0x2b4e9c)['json'](_0xf32d14);}return null;};}function patchUpdates(_0x10dd20){return function(_0x2dbc17){try{jsonpatch[_0x9e05('0x20')](_0x2dbc17,_0x10dd20,!![]);}catch(_0x3d7ae1){return BPromise['reject'](_0x3d7ae1);}return _0x2dbc17['save']();};}function saveUpdates(_0x5e5b24,_0x54c980){return function(_0x13d165){if(_0x13d165){return _0x13d165[_0x9e05('0x21')](_0x5e5b24)[_0x9e05('0x22')](function(_0x2ee1fa){return _0x2ee1fa;});}return null;};}function removeEntity(_0x4cfd4e,_0x4dfc7d){return function(_0x4f8ca8){if(_0x4f8ca8){return _0x4f8ca8[_0x9e05('0x23')]()[_0x9e05('0x22')](function(){_0x4cfd4e['status'](0xcc)[_0x9e05('0x18')]();});}};}function handleEntityNotFound(_0x41e2ed,_0x212212){return function(_0x4904b0){if(!_0x4904b0){_0x41e2ed[_0x9e05('0x16')](0x194);}return _0x4904b0;};}function handleError(_0x143d78,_0x365c64){_0x365c64=_0x365c64||0x1f4;return function(_0x294ad6){logger[_0x9e05('0x24')](_0x294ad6[_0x9e05('0x25')]);if(_0x294ad6[_0x9e05('0x26')]){delete _0x294ad6[_0x9e05('0x26')];}_0x143d78['status'](_0x365c64)[_0x9e05('0x27')](_0x294ad6);};}exports[_0x9e05('0x28')]=function(_0x2a7217,_0x2d83c0){var _0x2198d1={},_0x10e1c9={},_0x48a01a={'count':0x0,'rows':[]};var _0x25ce87=_[_0x9e05('0x29')](db[_0x9e05('0x2a')][_0x9e05('0x2b')],function(_0x4c126c){return{'name':_0x4c126c[_0x9e05('0x2c')],'type':_0x4c126c['type'][_0x9e05('0x2d')]};});_0x10e1c9[_0x9e05('0x2e')]=_[_0x9e05('0x29')](_0x25ce87,'name');_0x10e1c9['query']=_[_0x9e05('0x2f')](_0x2a7217[_0x9e05('0x30')]);_0x10e1c9[_0x9e05('0x31')]=_[_0x9e05('0x32')](_0x10e1c9['model'],_0x10e1c9['query']);_0x2198d1[_0x9e05('0x33')]=_[_0x9e05('0x32')](_0x10e1c9[_0x9e05('0x2e')],qs['fields'](_0x2a7217[_0x9e05('0x30')][_0x9e05('0x34')]));_0x2198d1[_0x9e05('0x33')]=_0x2198d1['attributes'][_0x9e05('0x35')]?_0x2198d1[_0x9e05('0x33')]:_0x10e1c9[_0x9e05('0x2e')];if(!_0x2a7217[_0x9e05('0x30')][_0x9e05('0x36')]('nolimit')){_0x2198d1[_0x9e05('0x1b')]=qs[_0x9e05('0x1b')](_0x2a7217[_0x9e05('0x30')]['limit']);_0x2198d1[_0x9e05('0x1d')]=qs[_0x9e05('0x1d')](_0x2a7217[_0x9e05('0x30')][_0x9e05('0x1d')]);}_0x2198d1[_0x9e05('0x37')]=qs[_0x9e05('0x38')](_0x2a7217['query'][_0x9e05('0x38')]);_0x2198d1[_0x9e05('0x39')]=qs[_0x9e05('0x31')](_['pick'](_0x2a7217['query'],_0x10e1c9[_0x9e05('0x31')]),_0x25ce87);if(_0x2a7217['query'][_0x9e05('0x3a')]){_0x2198d1['where']=_[_0x9e05('0x3b')](_0x2198d1['where'],{'$or':_['map'](_0x25ce87,function(_0x5e02cc){if(_0x5e02cc['type']!==_0x9e05('0x3c')){var _0x4060f3={};_0x4060f3[_0x5e02cc[_0x9e05('0x26')]]={'$like':'%'+_0x2a7217[_0x9e05('0x30')][_0x9e05('0x3a')]+'%'};return _0x4060f3;}})});}_0x2198d1=_['merge']({},_0x2198d1,_0x2a7217[_0x9e05('0x3d')]);var _0xa0eaaa={'where':_0x2198d1['where']};return db[_0x9e05('0x2a')]['count'](_0xa0eaaa)[_0x9e05('0x22')](function(_0x284611){_0x48a01a['count']=_0x284611;if(_0x2a7217['query'][_0x9e05('0x3e')]){_0x2198d1[_0x9e05('0x3f')]=[{'all':!![]}];}return db[_0x9e05('0x2a')][_0x9e05('0x40')](_0x2198d1);})[_0x9e05('0x22')](function(_0x140747){_0x48a01a[_0x9e05('0x41')]=_0x140747;return _0x48a01a;})['then'](respondWithFilteredResult(_0x2d83c0,_0x2198d1))['catch'](handleError(_0x2d83c0,null));};exports[_0x9e05('0x42')]=function(_0x3e0ce1,_0x43f9d2){var _0x4d045e={'raw':!![],'where':{'id':_0x3e0ce1['params']['id']}},_0x40d98e={};_0x40d98e['model']=_[_0x9e05('0x2f')](db['SmsTransferReport'][_0x9e05('0x2b')]);_0x40d98e[_0x9e05('0x30')]=_[_0x9e05('0x2f')](_0x3e0ce1[_0x9e05('0x30')]);_0x40d98e[_0x9e05('0x31')]=_['intersection'](_0x40d98e['model'],_0x40d98e['query']);_0x4d045e[_0x9e05('0x33')]=_[_0x9e05('0x32')](_0x40d98e['model'],qs[_0x9e05('0x34')](_0x3e0ce1[_0x9e05('0x30')][_0x9e05('0x34')]));_0x4d045e[_0x9e05('0x33')]=_0x4d045e[_0x9e05('0x33')][_0x9e05('0x35')]?_0x4d045e['attributes']:_0x40d98e[_0x9e05('0x2e')];if(_0x3e0ce1['query'][_0x9e05('0x3e')]){_0x4d045e[_0x9e05('0x3f')]=[{'all':!![]}];}_0x4d045e=_[_0x9e05('0x3b')]({},_0x4d045e,_0x3e0ce1[_0x9e05('0x3d')]);return db[_0x9e05('0x2a')][_0x9e05('0x43')](_0x4d045e)[_0x9e05('0x22')](handleEntityNotFound(_0x43f9d2,null))['then'](respondWithResult(_0x43f9d2,null))['catch'](handleError(_0x43f9d2,null));};exports[_0x9e05('0x44')]=function(_0x2290dd,_0x4b497b){return db[_0x9e05('0x2a')][_0x9e05('0x44')](_0x2290dd[_0x9e05('0x45')],{})['then'](respondWithResult(_0x4b497b,0xc9))[_0x9e05('0x46')](handleError(_0x4b497b,null));};exports[_0x9e05('0x21')]=function(_0x4d135a,_0x444e22){if(_0x4d135a[_0x9e05('0x45')]['id']){delete _0x4d135a[_0x9e05('0x45')]['id'];}return db[_0x9e05('0x2a')][_0x9e05('0x43')]({'where':{'id':_0x4d135a[_0x9e05('0x47')]['id']}})[_0x9e05('0x22')](handleEntityNotFound(_0x444e22,null))['then'](saveUpdates(_0x4d135a[_0x9e05('0x45')],null))[_0x9e05('0x22')](respondWithResult(_0x444e22,null))[_0x9e05('0x46')](handleError(_0x444e22,null));};exports[_0x9e05('0x23')]=function(_0x2403d3,_0x488fe7){return db[_0x9e05('0x2a')][_0x9e05('0x43')]({'where':{'id':_0x2403d3['params']['id']}})['then'](handleEntityNotFound(_0x488fe7,null))['then'](removeEntity(_0x488fe7,null))[_0x9e05('0x46')](handleError(_0x488fe7,null));};exports[_0x9e05('0x48')]=function(_0x2ccc4b,_0x47b2dc){return db[_0x9e05('0x2a')]['describe']()[_0x9e05('0x22')](respondWithResult(_0x47b2dc,null))[_0x9e05('0x46')](handleError(_0x47b2dc,null));};
\ No newline at end of file
+var _0xc9eb=['Content-Range','json','apply','update','destroy','error','stack','name','send','map','SmsTransferReport','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','VIRTUAL','merge','options','count','then','include','rows','catch','show','params','length','includeAll','find','create','body','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','set'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xc9eb,0xff));var _0xbc9e=function(_0x30b871,_0x7054bd){_0x30b871=_0x30b871-0x0;var _0x46444d=_0xc9eb[_0x30b871];return _0x46444d;};'use strict';var emlformat=require(_0xbc9e('0x0'));var rimraf=require(_0xbc9e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbc9e('0x2'));var rp=require(_0xbc9e('0x3'));var moment=require('moment');var BPromise=require(_0xbc9e('0x4'));var Mustache=require(_0xbc9e('0x5'));var util=require('util');var path=require(_0xbc9e('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xbc9e('0x7'));var deskjs=require(_0xbc9e('0x8'));var toCsv=require('to-csv');var querystring=require(_0xbc9e('0x9'));var Papa=require(_0xbc9e('0xa'));var Redis=require(_0xbc9e('0xb'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xbc9e('0xc'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xbc9e('0xd'))(_0xbc9e('0xe'));var utils=require(_0xbc9e('0xf'));var config=require(_0xbc9e('0x10'));var licenseUtil=require(_0xbc9e('0x11'));var db=require(_0xbc9e('0x12'))['db'];function respondWithStatusCode(_0x559b61,_0x2fbea1){_0x2fbea1=_0x2fbea1||0xcc;return function(_0x240822){if(_0x240822){return _0x559b61[_0xbc9e('0x13')](_0x2fbea1);}return _0x559b61[_0xbc9e('0x14')](_0x2fbea1)['end']();};}function respondWithResult(_0x1a6ef8,_0x31403e){_0x31403e=_0x31403e||0xc8;return function(_0x31f150){if(_0x31f150){return _0x1a6ef8[_0xbc9e('0x14')](_0x31403e)['json'](_0x31f150);}};}function respondWithFilteredResult(_0x1eb5e9,_0x256e9b){return function(_0x1ba813){if(_0x1ba813){var _0xafcd93=typeof _0x256e9b[_0xbc9e('0x15')]===_0xbc9e('0x16')&&typeof _0x256e9b[_0xbc9e('0x17')]==='undefined';var _0x9e321a=_0x1ba813['count'];var _0xc055e1=_0xafcd93?0x0:_0x256e9b['offset'];var _0x1bded4=_0xafcd93?_0x1ba813['count']:_0x256e9b[_0xbc9e('0x15')]+_0x256e9b[_0xbc9e('0x17')];var _0x2c58df;if(_0x1bded4>=_0x9e321a){_0x1bded4=_0x9e321a;_0x2c58df=0xc8;}else{_0x2c58df=0xce;}_0x1eb5e9[_0xbc9e('0x14')](_0x2c58df);return _0x1eb5e9[_0xbc9e('0x18')](_0xbc9e('0x19'),_0xc055e1+'-'+_0x1bded4+'/'+_0x9e321a)[_0xbc9e('0x1a')](_0x1ba813);}return null;};}function patchUpdates(_0x594f19){return function(_0x2dd6a5){try{jsonpatch[_0xbc9e('0x1b')](_0x2dd6a5,_0x594f19,!![]);}catch(_0x4fac73){return BPromise['reject'](_0x4fac73);}return _0x2dd6a5['save']();};}function saveUpdates(_0xa9067a,_0x5a85e5){return function(_0x6b898b){if(_0x6b898b){return _0x6b898b[_0xbc9e('0x1c')](_0xa9067a)['then'](function(_0x1e840a){return _0x1e840a;});}return null;};}function removeEntity(_0x137eab,_0x4944fe){return function(_0x54e131){if(_0x54e131){return _0x54e131[_0xbc9e('0x1d')]()['then'](function(){_0x137eab[_0xbc9e('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd2c3b7,_0x1c6f72){return function(_0x2b7d49){if(!_0x2b7d49){_0xd2c3b7[_0xbc9e('0x13')](0x194);}return _0x2b7d49;};}function handleError(_0x48dfb1,_0x5c3370){_0x5c3370=_0x5c3370||0x1f4;return function(_0x16ec4f){logger[_0xbc9e('0x1e')](_0x16ec4f[_0xbc9e('0x1f')]);if(_0x16ec4f[_0xbc9e('0x20')]){delete _0x16ec4f[_0xbc9e('0x20')];}_0x48dfb1[_0xbc9e('0x14')](_0x5c3370)[_0xbc9e('0x21')](_0x16ec4f);};}exports['index']=function(_0x2586c8,_0xd3732a){var _0x53e0b9={},_0x3c09a7={},_0x4898dc={'count':0x0,'rows':[]};var _0x3f421f=_[_0xbc9e('0x22')](db[_0xbc9e('0x23')][_0xbc9e('0x24')],function(_0x25b6d4){return{'name':_0x25b6d4[_0xbc9e('0x25')],'type':_0x25b6d4[_0xbc9e('0x26')][_0xbc9e('0x27')]};});_0x3c09a7['model']=_[_0xbc9e('0x22')](_0x3f421f,'name');_0x3c09a7[_0xbc9e('0x28')]=_[_0xbc9e('0x29')](_0x2586c8[_0xbc9e('0x28')]);_0x3c09a7[_0xbc9e('0x2a')]=_[_0xbc9e('0x2b')](_0x3c09a7['model'],_0x3c09a7[_0xbc9e('0x28')]);_0x53e0b9[_0xbc9e('0x2c')]=_['intersection'](_0x3c09a7[_0xbc9e('0x2d')],qs[_0xbc9e('0x2e')](_0x2586c8[_0xbc9e('0x28')][_0xbc9e('0x2e')]));_0x53e0b9[_0xbc9e('0x2c')]=_0x53e0b9[_0xbc9e('0x2c')]['length']?_0x53e0b9['attributes']:_0x3c09a7[_0xbc9e('0x2d')];if(!_0x2586c8[_0xbc9e('0x28')][_0xbc9e('0x2f')](_0xbc9e('0x30'))){_0x53e0b9[_0xbc9e('0x17')]=qs['limit'](_0x2586c8[_0xbc9e('0x28')]['limit']);_0x53e0b9[_0xbc9e('0x15')]=qs[_0xbc9e('0x15')](_0x2586c8[_0xbc9e('0x28')]['offset']);}_0x53e0b9[_0xbc9e('0x31')]=qs[_0xbc9e('0x32')](_0x2586c8[_0xbc9e('0x28')][_0xbc9e('0x32')]);_0x53e0b9['where']=qs['filters'](_[_0xbc9e('0x33')](_0x2586c8[_0xbc9e('0x28')],_0x3c09a7[_0xbc9e('0x2a')]),_0x3f421f);if(_0x2586c8['query'][_0xbc9e('0x34')]){_0x53e0b9[_0xbc9e('0x35')]=_['merge'](_0x53e0b9['where'],{'$or':_['map'](_0x3f421f,function(_0x41698f){if(_0x41698f[_0xbc9e('0x26')]!==_0xbc9e('0x36')){var _0x31378a={};_0x31378a[_0x41698f[_0xbc9e('0x20')]]={'$like':'%'+_0x2586c8[_0xbc9e('0x28')][_0xbc9e('0x34')]+'%'};return _0x31378a;}})});}_0x53e0b9=_[_0xbc9e('0x37')]({},_0x53e0b9,_0x2586c8[_0xbc9e('0x38')]);var _0x2cdda9={'where':_0x53e0b9[_0xbc9e('0x35')]};return db[_0xbc9e('0x23')][_0xbc9e('0x39')](_0x2cdda9)[_0xbc9e('0x3a')](function(_0x5b31a9){_0x4898dc[_0xbc9e('0x39')]=_0x5b31a9;if(_0x2586c8['query']['includeAll']){_0x53e0b9[_0xbc9e('0x3b')]=[{'all':!![]}];}return db[_0xbc9e('0x23')]['findAll'](_0x53e0b9);})[_0xbc9e('0x3a')](function(_0x23355b){_0x4898dc[_0xbc9e('0x3c')]=_0x23355b;return _0x4898dc;})['then'](respondWithFilteredResult(_0xd3732a,_0x53e0b9))[_0xbc9e('0x3d')](handleError(_0xd3732a,null));};exports[_0xbc9e('0x3e')]=function(_0x2aedc,_0x1f6761){var _0x5169f0={'raw':!![],'where':{'id':_0x2aedc[_0xbc9e('0x3f')]['id']}},_0x33f517={};_0x33f517[_0xbc9e('0x2d')]=_[_0xbc9e('0x29')](db['SmsTransferReport'][_0xbc9e('0x24')]);_0x33f517[_0xbc9e('0x28')]=_['keys'](_0x2aedc[_0xbc9e('0x28')]);_0x33f517[_0xbc9e('0x2a')]=_[_0xbc9e('0x2b')](_0x33f517['model'],_0x33f517['query']);_0x5169f0[_0xbc9e('0x2c')]=_[_0xbc9e('0x2b')](_0x33f517[_0xbc9e('0x2d')],qs['fields'](_0x2aedc[_0xbc9e('0x28')][_0xbc9e('0x2e')]));_0x5169f0['attributes']=_0x5169f0[_0xbc9e('0x2c')][_0xbc9e('0x40')]?_0x5169f0[_0xbc9e('0x2c')]:_0x33f517[_0xbc9e('0x2d')];if(_0x2aedc['query'][_0xbc9e('0x41')]){_0x5169f0[_0xbc9e('0x3b')]=[{'all':!![]}];}_0x5169f0=_[_0xbc9e('0x37')]({},_0x5169f0,_0x2aedc[_0xbc9e('0x38')]);return db[_0xbc9e('0x23')][_0xbc9e('0x42')](_0x5169f0)['then'](handleEntityNotFound(_0x1f6761,null))[_0xbc9e('0x3a')](respondWithResult(_0x1f6761,null))[_0xbc9e('0x3d')](handleError(_0x1f6761,null));};exports[_0xbc9e('0x43')]=function(_0xb0ec5c,_0x53f48c){return db['SmsTransferReport']['create'](_0xb0ec5c[_0xbc9e('0x44')],{})[_0xbc9e('0x3a')](respondWithResult(_0x53f48c,0xc9))[_0xbc9e('0x3d')](handleError(_0x53f48c,null));};exports[_0xbc9e('0x1c')]=function(_0x8d8c38,_0x2686de){if(_0x8d8c38[_0xbc9e('0x44')]['id']){delete _0x8d8c38[_0xbc9e('0x44')]['id'];}return db['SmsTransferReport'][_0xbc9e('0x42')]({'where':{'id':_0x8d8c38[_0xbc9e('0x3f')]['id']}})[_0xbc9e('0x3a')](handleEntityNotFound(_0x2686de,null))[_0xbc9e('0x3a')](saveUpdates(_0x8d8c38[_0xbc9e('0x44')],null))[_0xbc9e('0x3a')](respondWithResult(_0x2686de,null))[_0xbc9e('0x3d')](handleError(_0x2686de,null));};exports['destroy']=function(_0x569dce,_0x6e0d42){return db[_0xbc9e('0x23')][_0xbc9e('0x42')]({'where':{'id':_0x569dce['params']['id']}})[_0xbc9e('0x3a')](handleEntityNotFound(_0x6e0d42,null))[_0xbc9e('0x3a')](removeEntity(_0x6e0d42,null))['catch'](handleError(_0x6e0d42,null));};exports[_0xbc9e('0x45')]=function(_0x15f737,_0x9bfb93){return db[_0xbc9e('0x23')]['describe']()[_0xbc9e('0x3a')](respondWithResult(_0x9bfb93,null))[_0xbc9e('0x3d')](handleError(_0x9bfb93,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x416d=['./smsTransferReport.attributes','exports','SmsTransferReport','report_sms_transfer','uniqueid','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x50d5a3,_0x9972d9){var _0x5f90a5=function(_0x44a5c6){while(--_0x44a5c6){_0x50d5a3['push'](_0x50d5a3['shift']());}};_0x5f90a5(++_0x9972d9);}(_0x416d,0x1b7));var _0xd416=function(_0x31aa4b,_0x468550){_0x31aa4b=_0x31aa4b-0x0;var _0x49f208=_0x416d[_0x31aa4b];return _0x49f208;};'use strict';var _=require(_0xd416('0x0'));var util=require(_0xd416('0x1'));var logger=require('../../config/logger')(_0xd416('0x2'));var moment=require(_0xd416('0x3'));var BPromise=require(_0xd416('0x4'));var rp=require(_0xd416('0x5'));var fs=require('fs');var path=require(_0xd416('0x6'));var rimraf=require(_0xd416('0x7'));var config=require(_0xd416('0x8'));var attributes=require(_0xd416('0x9'));module[_0xd416('0xa')]=function(_0x21dce9,_0x4d8bd7){return _0x21dce9['define'](_0xd416('0xb'),attributes,{'tableName':_0xd416('0xc'),'paranoid':![],'indexes':[{'name':_0xd416('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xbfb8=['uniqueid','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','exports','define','SmsTransferReport','report_sms_transfer'];(function(_0x503950,_0x5022eb){var _0x1657a9=function(_0x4c1e8f){while(--_0x4c1e8f){_0x503950['push'](_0x503950['shift']());}};_0x1657a9(++_0x5022eb);}(_0xbfb8,0x194));var _0x8bfb=function(_0x155024,_0x39a25e){_0x155024=_0x155024-0x0;var _0xda27b4=_0xbfb8[_0x155024];return _0xda27b4;};'use strict';var _=require(_0x8bfb('0x0'));var util=require(_0x8bfb('0x1'));var logger=require(_0x8bfb('0x2'))(_0x8bfb('0x3'));var moment=require(_0x8bfb('0x4'));var BPromise=require(_0x8bfb('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8bfb('0x6'));var rimraf=require(_0x8bfb('0x7'));var config=require('../../config/environment');var attributes=require('./smsTransferReport.attributes');module[_0x8bfb('0x8')]=function(_0x539ff2,_0x4bf6c2){return _0x539ff2[_0x8bfb('0x9')](_0x8bfb('0xa'),attributes,{'tableName':_0x8bfb('0xb'),'paranoid':![],'indexes':[{'name':_0x8bfb('0xc'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ade=['then','info','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request'];(function(_0x3d3218,_0x59d946){var _0x596262=function(_0x5b2753){while(--_0x5b2753){_0x3d3218['push'](_0x3d3218['shift']());}};_0x596262(++_0x59d946);}(_0x9ade,0x107));var _0xe9ad=function(_0x1a0967,_0x51bc82){_0x1a0967=_0x1a0967-0x0;var _0x5a169f=_0x9ade[_0x1a0967];return _0x5a169f;};'use strict';var _=require(_0xe9ad('0x0'));var util=require(_0xe9ad('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xe9ad('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe9ad('0x3'))['db'];var utils=require(_0xe9ad('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xe9ad('0x5'));var jayson=require(_0xe9ad('0x6'));var client=jayson[_0xe9ad('0x7')][_0xe9ad('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x308564,_0x6ede7f,_0xb4b663){return new BPromise(function(_0x1a297b,_0x4b16b5){return client[_0xe9ad('0x9')](_0x308564,_0xb4b663)[_0xe9ad('0xa')](function(_0x32d7d0){logger[_0xe9ad('0xb')](_0xe9ad('0xc'),_0x6ede7f,_0xe9ad('0xd'));logger[_0xe9ad('0xe')](_0xe9ad('0xf'),_0x6ede7f,_0xe9ad('0xd'),JSON[_0xe9ad('0x10')](_0x32d7d0));if(_0x32d7d0[_0xe9ad('0x11')]){if(_0x32d7d0[_0xe9ad('0x11')]['code']===0x1f4){logger[_0xe9ad('0x11')](_0xe9ad('0xc'),_0x6ede7f,_0x32d7d0[_0xe9ad('0x11')][_0xe9ad('0x12')]);return _0x4b16b5(_0x32d7d0['error'][_0xe9ad('0x12')]);}logger[_0xe9ad('0x11')](_0xe9ad('0xc'),_0x6ede7f,_0x32d7d0[_0xe9ad('0x11')]['message']);return _0x1a297b(_0x32d7d0[_0xe9ad('0x11')]['message']);}else{logger[_0xe9ad('0xb')]('SmsTransferReport,\x20%s,\x20%s',_0x6ede7f,_0xe9ad('0xd'));_0x1a297b(_0x32d7d0[_0xe9ad('0x13')][_0xe9ad('0x12')]);}})[_0xe9ad('0x14')](function(_0x58151c){logger[_0xe9ad('0x11')](_0xe9ad('0xc'),_0x6ede7f,_0x58151c);_0x4b16b5(_0x58151c);});});}
\ No newline at end of file
+var _0x4403=['../../config/utils','../../config/logger','../../config/environment','http','request','then','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','bluebird','ioredis','../../mysqldb'];(function(_0x486d1f,_0x27623c){var _0x22f36d=function(_0x355001){while(--_0x355001){_0x486d1f['push'](_0x486d1f['shift']());}};_0x22f36d(++_0x27623c);}(_0x4403,0x179));var _0x3440=function(_0x3bc7ca,_0x6a7edc){_0x3bc7ca=_0x3bc7ca-0x0;var _0x4f4b80=_0x4403[_0x3bc7ca];return _0x4f4b80;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x3440('0x0'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3440('0x1'));var db=require(_0x3440('0x2'))['db'];var utils=require(_0x3440('0x3'));var logger=require(_0x3440('0x4'))('rpc');var config=require(_0x3440('0x5'));var jayson=require('jayson/promise');var client=jayson['client'][_0x3440('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x3121bd,_0x338e48,_0x4abc5a){return new BPromise(function(_0x33a070,_0x59d581){return client[_0x3440('0x7')](_0x3121bd,_0x4abc5a)[_0x3440('0x8')](function(_0x4559cd){logger['info'](_0x3440('0x9'),_0x338e48,_0x3440('0xa'));logger[_0x3440('0xb')](_0x3440('0xc'),_0x338e48,_0x3440('0xa'),JSON[_0x3440('0xd')](_0x4559cd));if(_0x4559cd[_0x3440('0xe')]){if(_0x4559cd['error'][_0x3440('0xf')]===0x1f4){logger[_0x3440('0xe')](_0x3440('0x9'),_0x338e48,_0x4559cd['error'][_0x3440('0x10')]);return _0x59d581(_0x4559cd[_0x3440('0xe')][_0x3440('0x10')]);}logger[_0x3440('0xe')](_0x3440('0x9'),_0x338e48,_0x4559cd['error'][_0x3440('0x10')]);return _0x33a070(_0x4559cd['error'][_0x3440('0x10')]);}else{logger[_0x3440('0x11')](_0x3440('0x9'),_0x338e48,_0x3440('0xa'));_0x33a070(_0x4559cd[_0x3440('0x12')][_0x3440('0x10')]);}})[_0x3440('0x13')](function(_0xb66a69){logger['error'](_0x3440('0x9'),_0x338e48,_0xb66a69);_0x59d581(_0xb66a69);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x72ac=['./sound.controller','index','get','/:id','isAuthenticated','show','join','originalname','replace','format','%s-%s%s','extname','single','file','create','update','delete','exports','multer','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment'];(function(_0x371f99,_0x176148){var _0x1ce606=function(_0x3ebc68){while(--_0x3ebc68){_0x371f99['push'](_0x371f99['shift']());}};_0x1ce606(++_0x176148);}(_0x72ac,0x13e));var _0xc72a=function(_0x405b74,_0x2e2fcf){_0x405b74=_0x405b74-0x0;var _0x370b9a=_0x72ac[_0x405b74];return _0x370b9a;};'use strict';var multer=require(_0xc72a('0x0'));var util=require(_0xc72a('0x1'));var path=require(_0xc72a('0x2'));var timeout=require(_0xc72a('0x3'));var express=require(_0xc72a('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xc72a('0x5'));var config=require(_0xc72a('0x6'));var controller=require(_0xc72a('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0xc72a('0x8')]);router[_0xc72a('0x9')](_0xc72a('0xa'),auth[_0xc72a('0xb')](),controller[_0xc72a('0xc')]);router['get']('/:id/download',auth[_0xc72a('0xb')](),controller['download']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x17275a,_0x468234,_0x202332){_0x202332(null,path[_0xc72a('0xd')](config['root'],'server/files/sounds/original/'));},'filename':function(_0x587032,_0x102b6c,_0x3a9fb6){_0x102b6c[_0xc72a('0xe')]=_0x102b6c[_0xc72a('0xe')][_0xc72a('0xf')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x3a9fb6(null,util[_0xc72a('0x10')](_0xc72a('0x11'),path['basename'](_0x102b6c[_0xc72a('0xe')],path[_0xc72a('0x12')](_0x102b6c[_0xc72a('0xe')])),Date['now'](),path[_0xc72a('0x12')](_0x102b6c[_0xc72a('0xe')])));}})});router['post']('/',upload[_0xc72a('0x13')](_0xc72a('0x14')),controller[_0xc72a('0x15')]);router['put'](_0xc72a('0xa'),auth[_0xc72a('0xb')](),controller[_0xc72a('0x16')]);router[_0xc72a('0x17')](_0xc72a('0xa'),auth['isAuthenticated'](),controller[_0xc72a('0x17')]);module[_0xc72a('0x18')]=router;
\ No newline at end of file
+var _0xb444=['path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./sound.controller','isAuthenticated','index','get','/:id','show','/:id/download','download','diskStorage','join','root','server/files/sounds/original/','replace','basename','originalname','extname','now','create','put','update','delete','exports','util'];(function(_0x2ac63d,_0x3242cb){var _0x4240c9=function(_0x201d5c){while(--_0x201d5c){_0x2ac63d['push'](_0x2ac63d['shift']());}};_0x4240c9(++_0x3242cb);}(_0xb444,0xca));var _0x4b44=function(_0x3a3a4f,_0x594bef){_0x3a3a4f=_0x3a3a4f-0x0;var _0x212e69=_0xb444[_0x3a3a4f];return _0x212e69;};'use strict';var multer=require('multer');var util=require(_0x4b44('0x0'));var path=require(_0x4b44('0x1'));var timeout=require(_0x4b44('0x2'));var express=require(_0x4b44('0x3'));var router=express[_0x4b44('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x4b44('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x4b44('0x6'));var controller=require(_0x4b44('0x7'));router['get']('/',auth[_0x4b44('0x8')](),controller[_0x4b44('0x9')]);router[_0x4b44('0xa')](_0x4b44('0xb'),auth[_0x4b44('0x8')](),controller[_0x4b44('0xc')]);router['get'](_0x4b44('0xd'),auth[_0x4b44('0x8')](),controller[_0x4b44('0xe')]);var upload=multer({'storage':multer[_0x4b44('0xf')]({'destination':function(_0x25349a,_0x4e0f9e,_0xfad3ff){_0xfad3ff(null,path[_0x4b44('0x10')](config[_0x4b44('0x11')],_0x4b44('0x12')));},'filename':function(_0x1a0f55,_0x35afc0,_0x232a4d){_0x35afc0['originalname']=_0x35afc0['originalname'][_0x4b44('0x13')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x232a4d(null,util['format']('%s-%s%s',path[_0x4b44('0x14')](_0x35afc0[_0x4b44('0x15')],path[_0x4b44('0x16')](_0x35afc0[_0x4b44('0x15')])),Date[_0x4b44('0x17')](),path[_0x4b44('0x16')](_0x35afc0[_0x4b44('0x15')])));}})});router['post']('/',upload['single']('file'),controller[_0x4b44('0x18')]);router[_0x4b44('0x19')](_0x4b44('0xb'),auth[_0x4b44('0x8')](),controller[_0x4b44('0x1a')]);router['delete'](_0x4b44('0xb'),auth['isAuthenticated'](),controller[_0x4b44('0x1b')]);module[_0x4b44('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa69d=['exports','STRING','name','FLOAT','BIGINT','INTEGER','sequelize'];(function(_0x57167f,_0x4f9466){var _0xd25466=function(_0x56c9f8){while(--_0x56c9f8){_0x57167f['push'](_0x57167f['shift']());}};_0xd25466(++_0x4f9466);}(_0xa69d,0x15d));var _0xda69=function(_0x2bf141,_0x31eac7){_0x2bf141=_0x2bf141-0x0;var _0x48277b=_0xa69d[_0x2bf141];return _0x48277b;};'use strict';var Sequelize=require(_0xda69('0x0'));module[_0xda69('0x1')]={'name':{'type':Sequelize[_0xda69('0x2')],'unique':_0xda69('0x3'),'allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0xda69('0x2')],'defaultValue':''},'description':{'type':Sequelize[_0xda69('0x2')]},'original_format':{'type':Sequelize[_0xda69('0x2')]},'original_duration':{'type':Sequelize[_0xda69('0x4')]},'original_sampleCount':{'type':Sequelize[_0xda69('0x5')]},'original_channelCount':{'type':Sequelize[_0xda69('0x6')]},'original_bitRate':{'type':Sequelize[_0xda69('0x5')]},'original_sampleRate':{'type':Sequelize[_0xda69('0x6')]},'converted_format':{'type':Sequelize[_0xda69('0x2')]},'converted_duration':{'type':Sequelize['FLOAT']},'converted_sampleCount':{'type':Sequelize[_0xda69('0x5')]},'converted_channelCount':{'type':Sequelize[_0xda69('0x6')]},'converted_bitRate':{'type':Sequelize[_0xda69('0x5')]},'converted_sampleRate':{'type':Sequelize[_0xda69('0x6')]}};
\ No newline at end of file
+var _0xb34b=['STRING','FLOAT','BIGINT','INTEGER','sequelize'];(function(_0x4e8e68,_0x52a7b8){var _0x3c1398=function(_0x315eb8){while(--_0x315eb8){_0x4e8e68['push'](_0x4e8e68['shift']());}};_0x3c1398(++_0x52a7b8);}(_0xb34b,0x158));var _0xbb34=function(_0x413feb,_0x10477f){_0x413feb=_0x413feb-0x0;var _0x40ee88=_0xb34b[_0x413feb];return _0x40ee88;};'use strict';var Sequelize=require(_0xbb34('0x0'));module['exports']={'name':{'type':Sequelize[_0xbb34('0x1')],'unique':'name','allowNull':![]},'save_name':{'type':Sequelize[_0xbb34('0x1')]},'display_name':{'type':Sequelize[_0xbb34('0x1')],'defaultValue':''},'description':{'type':Sequelize[_0xbb34('0x1')]},'original_format':{'type':Sequelize[_0xbb34('0x1')]},'original_duration':{'type':Sequelize[_0xbb34('0x2')]},'original_sampleCount':{'type':Sequelize['BIGINT']},'original_channelCount':{'type':Sequelize['INTEGER']},'original_bitRate':{'type':Sequelize[_0xbb34('0x3')]},'original_sampleRate':{'type':Sequelize[_0xbb34('0x4')]},'converted_format':{'type':Sequelize[_0xbb34('0x1')]},'converted_duration':{'type':Sequelize[_0xbb34('0x2')]},'converted_sampleCount':{'type':Sequelize['BIGINT']},'converted_channelCount':{'type':Sequelize['INTEGER']},'converted_bitRate':{'type':Sequelize[_0xbb34('0x3')]},'converted_sampleRate':{'type':Sequelize[_0xbb34('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb103=['server/files/sounds/converted','format','%s.%s','save_name','basename','originalname','file','filename','wav','server/files/sounds/original','extname','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','transcode','unlinkSync','src','original_duration','duration','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','0777','create','body','role','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','delete','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','apply','reject','save','update','destroy','then','Sounds','UserProfileResource','error','stack','name','send','map','Sound','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','download','converted_format','existsSync','join','root','ValidationError','Sound\x20not\x20found'];(function(_0x3f7608,_0x51adb3){var _0x983f01=function(_0x2310c2){while(--_0x2310c2){_0x3f7608['push'](_0x3f7608['shift']());}};_0x983f01(++_0x51adb3);}(_0xb103,0x19e));var _0x3b10=function(_0x55c00d,_0x520cb6){_0x55c00d=_0x55c00d-0x0;var _0x254a8f=_0xb103[_0x55c00d];return _0x254a8f;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3b10('0x0'));var zipdir=require(_0x3b10('0x1'));var jsonpatch=require(_0x3b10('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3b10('0x3'));var Mustache=require(_0x3b10('0x4'));var util=require(_0x3b10('0x5'));var path=require(_0x3b10('0x6'));var sox=require(_0x3b10('0x7'));var csv=require(_0x3b10('0x8'));var ejs=require(_0x3b10('0x9'));var fs=require('fs');var fs_extra=require(_0x3b10('0xa'));var _=require('lodash');var squel=require(_0x3b10('0xb'));var crypto=require(_0x3b10('0xc'));var jsforce=require(_0x3b10('0xd'));var deskjs=require(_0x3b10('0xe'));var toCsv=require(_0x3b10('0x8'));var querystring=require(_0x3b10('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3b10('0x10'));var qs=require(_0x3b10('0x11'));var as=require(_0x3b10('0x12'));var hardwareService=require(_0x3b10('0x13'));var logger=require(_0x3b10('0x14'))('api');var utils=require(_0x3b10('0x15'));var config=require(_0x3b10('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x3b10('0x17'))['db'];function respondWithStatusCode(_0x13230c,_0x459aec){_0x459aec=_0x459aec||0xcc;return function(_0x5600ce){if(_0x5600ce){return _0x13230c[_0x3b10('0x18')](_0x459aec);}return _0x13230c['status'](_0x459aec)[_0x3b10('0x19')]();};}function respondWithResult(_0xa98a6f,_0x3e83cd){_0x3e83cd=_0x3e83cd||0xc8;return function(_0x3ed9fe){if(_0x3ed9fe){return _0xa98a6f[_0x3b10('0x1a')](_0x3e83cd)[_0x3b10('0x1b')](_0x3ed9fe);}};}function respondWithFilteredResult(_0x9f37f7,_0x7eaed6){return function(_0xa2420d){if(_0xa2420d){var _0x316da6=typeof _0x7eaed6[_0x3b10('0x1c')]==='undefined'&&typeof _0x7eaed6[_0x3b10('0x1d')]===_0x3b10('0x1e');var _0x28a594=_0xa2420d[_0x3b10('0x1f')];var _0x1dc92f=_0x316da6?0x0:_0x7eaed6[_0x3b10('0x1c')];var _0x19fd7e=_0x316da6?_0xa2420d[_0x3b10('0x1f')]:_0x7eaed6[_0x3b10('0x1c')]+_0x7eaed6['limit'];var _0x2ed03d;if(_0x19fd7e>=_0x28a594){_0x19fd7e=_0x28a594;_0x2ed03d=0xc8;}else{_0x2ed03d=0xce;}_0x9f37f7[_0x3b10('0x1a')](_0x2ed03d);return _0x9f37f7['set']('Content-Range',_0x1dc92f+'-'+_0x19fd7e+'/'+_0x28a594)['json'](_0xa2420d);}return null;};}function patchUpdates(_0x42aa26){return function(_0x5ba572){try{jsonpatch[_0x3b10('0x20')](_0x5ba572,_0x42aa26,!![]);}catch(_0x1a5fa3){return BPromise[_0x3b10('0x21')](_0x1a5fa3);}return _0x5ba572[_0x3b10('0x22')]();};}function saveUpdates(_0xca1e90,_0x40b528){return function(_0x3ef8c7){if(_0x3ef8c7){return _0x3ef8c7[_0x3b10('0x23')](_0xca1e90)['then'](function(_0xf09c08){return _0xf09c08;});}return null;};}function removeEntity(_0x2e74b6,_0x295cf8){return function(_0x1c42e4){if(_0x1c42e4){return _0x1c42e4[_0x3b10('0x24')]()[_0x3b10('0x25')](function(){var _0x4b6d1d=_0x1c42e4['get']({'plain':!![]});var _0x48599c=_0x3b10('0x26');return db[_0x3b10('0x27')][_0x3b10('0x24')]({'where':{'type':_0x48599c,'resourceId':_0x4b6d1d['id']}})[_0x3b10('0x25')](function(){return _0x1c42e4;});})[_0x3b10('0x25')](function(){_0x2e74b6['status'](0xcc)[_0x3b10('0x19')]();});}};}function handleEntityNotFound(_0x1c9658,_0x29b358){return function(_0x2a6b40){if(!_0x2a6b40){_0x1c9658[_0x3b10('0x18')](0x194);}return _0x2a6b40;};}function handleError(_0x43bfa2,_0x18fda7){_0x18fda7=_0x18fda7||0x1f4;return function(_0x509d32){logger[_0x3b10('0x28')](_0x509d32[_0x3b10('0x29')]);if(_0x509d32['name']){delete _0x509d32[_0x3b10('0x2a')];}_0x43bfa2['status'](_0x18fda7)[_0x3b10('0x2b')](_0x509d32);};}exports['index']=function(_0x3c23fe,_0x1e25df){var _0x1385a2={},_0x32b858={},_0x47addc={'count':0x0,'rows':[]};var _0x3e934b=_[_0x3b10('0x2c')](db[_0x3b10('0x2d')]['rawAttributes'],function(_0x4a1210){return{'name':_0x4a1210[_0x3b10('0x2e')],'type':_0x4a1210[_0x3b10('0x2f')][_0x3b10('0x30')]};});_0x32b858[_0x3b10('0x31')]=_[_0x3b10('0x2c')](_0x3e934b,'name');_0x32b858['query']=_[_0x3b10('0x32')](_0x3c23fe[_0x3b10('0x33')]);_0x32b858[_0x3b10('0x34')]=_[_0x3b10('0x35')](_0x32b858[_0x3b10('0x31')],_0x32b858[_0x3b10('0x33')]);_0x1385a2[_0x3b10('0x36')]=_[_0x3b10('0x35')](_0x32b858[_0x3b10('0x31')],qs['fields'](_0x3c23fe[_0x3b10('0x33')][_0x3b10('0x37')]));_0x1385a2[_0x3b10('0x36')]=_0x1385a2[_0x3b10('0x36')][_0x3b10('0x38')]?_0x1385a2[_0x3b10('0x36')]:_0x32b858[_0x3b10('0x31')];if(!_0x3c23fe['query'][_0x3b10('0x39')]('nolimit')){_0x1385a2[_0x3b10('0x1d')]=qs[_0x3b10('0x1d')](_0x3c23fe[_0x3b10('0x33')][_0x3b10('0x1d')]);_0x1385a2[_0x3b10('0x1c')]=qs[_0x3b10('0x1c')](_0x3c23fe['query']['offset']);}_0x1385a2[_0x3b10('0x3a')]=qs[_0x3b10('0x3b')](_0x3c23fe[_0x3b10('0x33')]['sort']);_0x1385a2[_0x3b10('0x3c')]=qs[_0x3b10('0x34')](_[_0x3b10('0x3d')](_0x3c23fe['query'],_0x32b858[_0x3b10('0x34')]),_0x3e934b);if(_0x3c23fe[_0x3b10('0x33')][_0x3b10('0x3e')]){_0x1385a2[_0x3b10('0x3c')]=_['merge'](_0x1385a2[_0x3b10('0x3c')],{'$or':_[_0x3b10('0x2c')](_0x3e934b,function(_0x59eb58){if(_0x59eb58[_0x3b10('0x2f')]!==_0x3b10('0x3f')){var _0x1c6e8e={};_0x1c6e8e[_0x59eb58[_0x3b10('0x2a')]]={'$like':'%'+_0x3c23fe[_0x3b10('0x33')][_0x3b10('0x3e')]+'%'};return _0x1c6e8e;}})});}_0x1385a2=_[_0x3b10('0x40')]({},_0x1385a2,_0x3c23fe['options']);var _0x114f8e={'where':_0x1385a2[_0x3b10('0x3c')]};return db['Sound'][_0x3b10('0x1f')](_0x114f8e)['then'](function(_0x15e5b4){_0x47addc[_0x3b10('0x1f')]=_0x15e5b4;if(_0x3c23fe[_0x3b10('0x33')][_0x3b10('0x41')]){_0x1385a2[_0x3b10('0x42')]=[{'all':!![]}];}return db['Sound'][_0x3b10('0x43')](_0x1385a2);})[_0x3b10('0x25')](function(_0x344a7c){_0x47addc[_0x3b10('0x44')]=_0x344a7c;return _0x47addc;})[_0x3b10('0x25')](respondWithFilteredResult(_0x1e25df,_0x1385a2))[_0x3b10('0x45')](handleError(_0x1e25df,null));};exports[_0x3b10('0x46')]=function(_0x980b34,_0x51fb13){var _0x4300fb={'raw':!![],'where':{'id':_0x980b34[_0x3b10('0x47')]['id']}},_0x21dae6={};_0x21dae6[_0x3b10('0x31')]=_[_0x3b10('0x32')](db[_0x3b10('0x2d')][_0x3b10('0x48')]);_0x21dae6['query']=_['keys'](_0x980b34['query']);_0x21dae6['filters']=_[_0x3b10('0x35')](_0x21dae6['model'],_0x21dae6[_0x3b10('0x33')]);_0x4300fb[_0x3b10('0x36')]=_['intersection'](_0x21dae6['model'],qs[_0x3b10('0x37')](_0x980b34[_0x3b10('0x33')][_0x3b10('0x37')]));_0x4300fb[_0x3b10('0x36')]=_0x4300fb[_0x3b10('0x36')][_0x3b10('0x38')]?_0x4300fb['attributes']:_0x21dae6[_0x3b10('0x31')];if(_0x980b34['query'][_0x3b10('0x41')]){_0x4300fb[_0x3b10('0x42')]=[{'all':!![]}];}_0x4300fb=_[_0x3b10('0x40')]({},_0x4300fb,_0x980b34[_0x3b10('0x49')]);return db[_0x3b10('0x2d')][_0x3b10('0x4a')](_0x4300fb)['then'](handleEntityNotFound(_0x51fb13,null))[_0x3b10('0x25')](respondWithResult(_0x51fb13,null))[_0x3b10('0x45')](handleError(_0x51fb13,null));};exports[_0x3b10('0x4b')]=function(_0xd6ec02,_0x561409,_0x443f32){return db[_0x3b10('0x2d')][_0x3b10('0x4a')]({'where':{'id':_0xd6ec02[_0x3b10('0x47')]['id']},'attributes':[_0x3b10('0x2a'),'save_name',_0x3b10('0x4c')],'raw':!![]})[_0x3b10('0x25')](handleEntityNotFound(_0x561409,null))[_0x3b10('0x25')](function(_0x1d3a0c){if(_0x1d3a0c){if(!fs[_0x3b10('0x4d')](path[_0x3b10('0x4e')](config[_0x3b10('0x4f')],'server/files/sounds/converted',_0x1d3a0c['save_name']+'.'+_0x1d3a0c[_0x3b10('0x4c')]))){throw new db['Sequelize'][(_0x3b10('0x50'))](_0x3b10('0x51'));}return _0x561409[_0x3b10('0x4b')](path[_0x3b10('0x4e')](config[_0x3b10('0x4f')],_0x3b10('0x52'),util[_0x3b10('0x53')](_0x3b10('0x54'),_0x1d3a0c[_0x3b10('0x55')],_0x1d3a0c[_0x3b10('0x4c')])),util[_0x3b10('0x53')](_0x3b10('0x54'),_0x1d3a0c['name'],_0x1d3a0c['converted_format']));}return null;})[_0x3b10('0x45')](handleError(_0x561409,null));};exports['create']=function(_0x22d535,_0x440b92,_0x4c6069){var _0x3a215e={'name':path[_0x3b10('0x56')](_0x22d535['file'][_0x3b10('0x57')],path['extname'](_0x22d535[_0x3b10('0x58')][_0x3b10('0x57')])),'save_name':path['basename'](_0x22d535[_0x3b10('0x58')][_0x3b10('0x59')],path['extname'](_0x22d535[_0x3b10('0x58')]['filename'])),'original_format':path['extname'](_0x22d535[_0x3b10('0x58')][_0x3b10('0x57')])['substring'](0x1),'converted_format':_0x3b10('0x5a')};var _0x40b968=path[_0x3b10('0x4e')](config['root'],_0x3b10('0x5b'),_0x22d535[_0x3b10('0x58')][_0x3b10('0x59')]);var _0x187e8c=path[_0x3b10('0x4e')](config['root'],_0x3b10('0x52'),util[_0x3b10('0x53')]('%s.%s',path[_0x3b10('0x56')](_0x22d535[_0x3b10('0x58')][_0x3b10('0x59')],path[_0x3b10('0x5c')](_0x22d535[_0x3b10('0x58')][_0x3b10('0x59')])),_0x3a215e[_0x3b10('0x4c')]));logger[_0x3b10('0x5d')](_0x3b10('0x5e'),_0x40b968);logger[_0x3b10('0x5d')](_0x3b10('0x5f'),_0x187e8c);try{fs[_0x3b10('0x60')](_0x40b968,parseInt('0777',0x8));var _0x34c8aa=sox[_0x3b10('0x61')](_0x40b968,_0x187e8c,{'sampleRate':0x1f40,'format':_0x3b10('0x5a'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x34c8aa['on'](_0x3b10('0x28'),function(_0xc124e5){fs[_0x3b10('0x62')](_0x40b968);_0x440b92[_0x3b10('0x1a')](0x1f4)[_0x3b10('0x2b')](_0xc124e5);});_0x34c8aa['on'](_0x3b10('0x63'),function(_0x5e5266){_0x3a215e[_0x3b10('0x64')]=isNaN(_0x5e5266[_0x3b10('0x65')])?null:_0x5e5266[_0x3b10('0x65')]*0x3e8;_0x3a215e['original_sampleCount']=isNaN(_0x5e5266[_0x3b10('0x66')])?null:_0x5e5266[_0x3b10('0x66')];_0x3a215e[_0x3b10('0x67')]=isNaN(_0x5e5266['channelCount'])?null:_0x5e5266[_0x3b10('0x68')];_0x3a215e['original_bitRate']=isNaN(_0x5e5266[_0x3b10('0x69')])?null:_0x5e5266['bitRate'];_0x3a215e[_0x3b10('0x6a')]=isNaN(_0x5e5266[_0x3b10('0x6b')])?null:_0x5e5266[_0x3b10('0x6b')];});_0x34c8aa['on']('dest',function(_0x3eef50){_0x3a215e[_0x3b10('0x6c')]=isNaN(_0x3eef50[_0x3b10('0x65')])?null:_0x3eef50[_0x3b10('0x65')]*0x3e8;_0x3a215e[_0x3b10('0x6d')]=isNaN(_0x3eef50['sampleCount'])?null:_0x3eef50['sampleCount'];_0x3a215e[_0x3b10('0x6e')]=isNaN(_0x3eef50['channelCount'])?null:_0x3eef50[_0x3b10('0x68')];_0x3a215e[_0x3b10('0x6f')]=isNaN(_0x3eef50[_0x3b10('0x69')])?null:_0x3eef50[_0x3b10('0x69')];_0x3a215e['converted_sampleRate']=isNaN(_0x3eef50[_0x3b10('0x6b')])?null:_0x3eef50[_0x3b10('0x6b')];});_0x34c8aa['on'](_0x3b10('0x19'),function(){fs[_0x3b10('0x60')](_0x187e8c,parseInt(_0x3b10('0x70'),0x8));return db[_0x3b10('0x2d')][_0x3b10('0x71')](_0x3a215e)[_0x3b10('0x25')](function(_0x4be299){var _0x1159ed={'role':_0x22d535[_0x3b10('0x72')][_0x3b10('0x73')],'userProfileId':_0x22d535[_0x3b10('0x72')][_0x3b10('0x74')]};if(!_0x1159ed)throw new Error(_0x3b10('0x75'));if(_0x1159ed[_0x3b10('0x73')]===_0x3b10('0x76')){var _0x5db6e5=_0x4be299[_0x3b10('0x77')]({'plain':!![]});return db['UserProfileSection'][_0x3b10('0x4a')]({'where':{'name':_0x3b10('0x26'),'userProfileId':_0x1159ed[_0x3b10('0x74')]},'raw':!![]})[_0x3b10('0x25')](function(_0x3e6567){if(_0x3e6567&&_0x3e6567[_0x3b10('0x78')]===0x0){return db['UserProfileResource'][_0x3b10('0x71')]({'name':_0x5db6e5[_0x3b10('0x2a')],'resourceId':_0x5db6e5['id'],'type':_0x3e6567[_0x3b10('0x2a')],'sectionId':_0x3e6567['id']},{})[_0x3b10('0x25')](function(){return _0x4be299;});}else{return _0x4be299;}})[_0x3b10('0x45')](function(_0x16a84a){logger['error'](_0x3b10('0x79'),_0x16a84a);throw _0x16a84a;});}return _0x4be299;})[_0x3b10('0x25')](respondWithResult(_0x440b92,null))['catch'](handleError(_0x440b92,null));});_0x34c8aa['start']();}catch(_0x4da7ba){_0x440b92[_0x3b10('0x1a')](0x1f4)[_0x3b10('0x2b')](_0x4da7ba);}};exports['update']=function(_0x58f849,_0x547c8e,_0x517990){return db[_0x3b10('0x2d')][_0x3b10('0x4a')]({'where':{'id':_0x58f849[_0x3b10('0x47')]['id']}})[_0x3b10('0x25')](handleEntityNotFound(_0x547c8e,null))['then'](saveUpdates(_[_0x3b10('0x3d')](_0x58f849[_0x3b10('0x72')],['name',_0x3b10('0x7a')]),null))[_0x3b10('0x25')](respondWithResult(_0x547c8e,null))[_0x3b10('0x45')](handleError(_0x547c8e,null));};exports[_0x3b10('0x7b')]=function(_0x5b1e18,_0x5750ca,_0x458633){return db['Sound'][_0x3b10('0x4a')]({'where':{'id':_0x5b1e18[_0x3b10('0x47')]['id']}})['then'](function(_0x2901bf){if(_0x2901bf){return _0x2901bf[_0x3b10('0x24')]();}})['then'](function(_0xd34e0d){var _0x2a3026=path[_0x3b10('0x4e')](config[_0x3b10('0x4f')],_0x3b10('0x5b'),util[_0x3b10('0x53')](_0x3b10('0x54'),_0xd34e0d[_0x3b10('0x55')],_0xd34e0d['original_format']));var _0x5a261f=path[_0x3b10('0x4e')](config[_0x3b10('0x4f')],_0x3b10('0x52'),util[_0x3b10('0x53')](_0x3b10('0x54'),_0xd34e0d[_0x3b10('0x55')],_0xd34e0d['converted_format']));fs[_0x3b10('0x62')](_0x2a3026);fs[_0x3b10('0x62')](_0x5a261f);return _0xd34e0d;})['then'](function(_0x4cc578){if(_0x4cc578){return _0x5750ca[_0x3b10('0x1a')](0xcc)[_0x3b10('0x19')]();}})[_0x3b10('0x25')](handleEntityNotFound(_0x5750ca,null))[_0x3b10('0x45')](handleError(_0x5750ca,null));};
\ No newline at end of file
+var _0xe215=['ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','Sounds','error','name','send','index','map','Sound','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','catch','params','find','download','save_name','converted_format','join','root','server/files/sounds/converted','ValidationError','Sound\x20not\x20found','format','%s.%s','create','file','originalname','extname','basename','filename','server/files/sounds/original','info','Sound\x20upload\x20filepath:\x20%s','Sound\x20upload\x20destination:\x20%s','chmodSync','unlinkSync','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','end','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','original_format','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe215,0xe5));var _0x5e21=function(_0x27f81a,_0x30a30a){_0x27f81a=_0x27f81a-0x0;var _0x343bf8=_0xe215[_0x27f81a];return _0x343bf8;};'use strict';var emlformat=require(_0x5e21('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x5e21('0x1'));var jsonpatch=require(_0x5e21('0x2'));var rp=require(_0x5e21('0x3'));var moment=require(_0x5e21('0x4'));var BPromise=require(_0x5e21('0x5'));var Mustache=require('mustache');var util=require(_0x5e21('0x6'));var path=require(_0x5e21('0x7'));var sox=require(_0x5e21('0x8'));var csv=require('to-csv');var ejs=require(_0x5e21('0x9'));var fs=require('fs');var fs_extra=require(_0x5e21('0xa'));var _=require(_0x5e21('0xb'));var squel=require('squel');var crypto=require(_0x5e21('0xc'));var jsforce=require(_0x5e21('0xd'));var deskjs=require(_0x5e21('0xe'));var toCsv=require(_0x5e21('0xf'));var querystring=require(_0x5e21('0x10'));var Papa=require(_0x5e21('0x11'));var Redis=require('ioredis');var authService=require(_0x5e21('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5e21('0x13'));var hardwareService=require(_0x5e21('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x5e21('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x5e21('0x16'));var db=require(_0x5e21('0x17'))['db'];function respondWithStatusCode(_0xa2f39,_0x9ffe20){_0x9ffe20=_0x9ffe20||0xcc;return function(_0x5210ff){if(_0x5210ff){return _0xa2f39[_0x5e21('0x18')](_0x9ffe20);}return _0xa2f39[_0x5e21('0x19')](_0x9ffe20)['end']();};}function respondWithResult(_0x45592f,_0x41b434){_0x41b434=_0x41b434||0xc8;return function(_0x1e4665){if(_0x1e4665){return _0x45592f[_0x5e21('0x19')](_0x41b434)[_0x5e21('0x1a')](_0x1e4665);}};}function respondWithFilteredResult(_0x37132f,_0x2a4760){return function(_0x4dd2a0){if(_0x4dd2a0){var _0x6712bd=typeof _0x2a4760[_0x5e21('0x1b')]===_0x5e21('0x1c')&&typeof _0x2a4760[_0x5e21('0x1d')]==='undefined';var _0x181dce=_0x4dd2a0['count'];var _0x322710=_0x6712bd?0x0:_0x2a4760[_0x5e21('0x1b')];var _0xe8155c=_0x6712bd?_0x4dd2a0[_0x5e21('0x1e')]:_0x2a4760['offset']+_0x2a4760[_0x5e21('0x1d')];var _0x3abfd3;if(_0xe8155c>=_0x181dce){_0xe8155c=_0x181dce;_0x3abfd3=0xc8;}else{_0x3abfd3=0xce;}_0x37132f[_0x5e21('0x19')](_0x3abfd3);return _0x37132f[_0x5e21('0x1f')](_0x5e21('0x20'),_0x322710+'-'+_0xe8155c+'/'+_0x181dce)[_0x5e21('0x1a')](_0x4dd2a0);}return null;};}function patchUpdates(_0x217625){return function(_0xdc1288){try{jsonpatch[_0x5e21('0x21')](_0xdc1288,_0x217625,!![]);}catch(_0x54c99a){return BPromise[_0x5e21('0x22')](_0x54c99a);}return _0xdc1288['save']();};}function saveUpdates(_0x1cecfe,_0x227f4d){return function(_0x4cc879){if(_0x4cc879){return _0x4cc879[_0x5e21('0x23')](_0x1cecfe)[_0x5e21('0x24')](function(_0x1e30f2){return _0x1e30f2;});}return null;};}function removeEntity(_0x579079,_0x149892){return function(_0xd9b1a2){if(_0xd9b1a2){return _0xd9b1a2[_0x5e21('0x25')]()[_0x5e21('0x24')](function(){var _0x299f19=_0xd9b1a2['get']({'plain':!![]});var _0x2898ef=_0x5e21('0x26');return db['UserProfileResource']['destroy']({'where':{'type':_0x2898ef,'resourceId':_0x299f19['id']}})['then'](function(){return _0xd9b1a2;});})['then'](function(){_0x579079[_0x5e21('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5dea25,_0x338bab){return function(_0x25eada){if(!_0x25eada){_0x5dea25['sendStatus'](0x194);}return _0x25eada;};}function handleError(_0x1f4f60,_0x141667){_0x141667=_0x141667||0x1f4;return function(_0x2a25b6){logger[_0x5e21('0x27')](_0x2a25b6['stack']);if(_0x2a25b6[_0x5e21('0x28')]){delete _0x2a25b6['name'];}_0x1f4f60[_0x5e21('0x19')](_0x141667)[_0x5e21('0x29')](_0x2a25b6);};}exports[_0x5e21('0x2a')]=function(_0x4c2601,_0x45b69e){var _0x31c8c7={},_0x49b39d={},_0x531cbf={'count':0x0,'rows':[]};var _0x3dd4ef=_[_0x5e21('0x2b')](db[_0x5e21('0x2c')][_0x5e21('0x2d')],function(_0x27cf07){return{'name':_0x27cf07[_0x5e21('0x2e')],'type':_0x27cf07[_0x5e21('0x2f')][_0x5e21('0x30')]};});_0x49b39d[_0x5e21('0x31')]=_[_0x5e21('0x2b')](_0x3dd4ef,'name');_0x49b39d[_0x5e21('0x32')]=_[_0x5e21('0x33')](_0x4c2601['query']);_0x49b39d[_0x5e21('0x34')]=_['intersection'](_0x49b39d[_0x5e21('0x31')],_0x49b39d[_0x5e21('0x32')]);_0x31c8c7['attributes']=_[_0x5e21('0x35')](_0x49b39d[_0x5e21('0x31')],qs[_0x5e21('0x36')](_0x4c2601[_0x5e21('0x32')][_0x5e21('0x36')]));_0x31c8c7['attributes']=_0x31c8c7[_0x5e21('0x37')][_0x5e21('0x38')]?_0x31c8c7[_0x5e21('0x37')]:_0x49b39d['model'];if(!_0x4c2601[_0x5e21('0x32')][_0x5e21('0x39')]('nolimit')){_0x31c8c7['limit']=qs['limit'](_0x4c2601['query'][_0x5e21('0x1d')]);_0x31c8c7[_0x5e21('0x1b')]=qs['offset'](_0x4c2601['query']['offset']);}_0x31c8c7[_0x5e21('0x3a')]=qs[_0x5e21('0x3b')](_0x4c2601[_0x5e21('0x32')][_0x5e21('0x3b')]);_0x31c8c7[_0x5e21('0x3c')]=qs['filters'](_[_0x5e21('0x3d')](_0x4c2601[_0x5e21('0x32')],_0x49b39d[_0x5e21('0x34')]),_0x3dd4ef);if(_0x4c2601['query'][_0x5e21('0x3e')]){_0x31c8c7[_0x5e21('0x3c')]=_['merge'](_0x31c8c7[_0x5e21('0x3c')],{'$or':_[_0x5e21('0x2b')](_0x3dd4ef,function(_0x34b099){if(_0x34b099[_0x5e21('0x2f')]!==_0x5e21('0x3f')){var _0x423b90={};_0x423b90[_0x34b099['name']]={'$like':'%'+_0x4c2601[_0x5e21('0x32')][_0x5e21('0x3e')]+'%'};return _0x423b90;}})});}_0x31c8c7=_[_0x5e21('0x40')]({},_0x31c8c7,_0x4c2601[_0x5e21('0x41')]);var _0x1510f6={'where':_0x31c8c7[_0x5e21('0x3c')]};return db[_0x5e21('0x2c')][_0x5e21('0x1e')](_0x1510f6)[_0x5e21('0x24')](function(_0x31732b){_0x531cbf[_0x5e21('0x1e')]=_0x31732b;if(_0x4c2601[_0x5e21('0x32')][_0x5e21('0x42')]){_0x31c8c7[_0x5e21('0x43')]=[{'all':!![]}];}return db[_0x5e21('0x2c')]['findAll'](_0x31c8c7);})[_0x5e21('0x24')](function(_0x158d81){_0x531cbf[_0x5e21('0x44')]=_0x158d81;return _0x531cbf;})[_0x5e21('0x24')](respondWithFilteredResult(_0x45b69e,_0x31c8c7))[_0x5e21('0x45')](handleError(_0x45b69e,null));};exports['show']=function(_0x3c3c0c,_0x30c205){var _0x2959fa={'raw':!![],'where':{'id':_0x3c3c0c[_0x5e21('0x46')]['id']}},_0x3ce7b5={};_0x3ce7b5[_0x5e21('0x31')]=_[_0x5e21('0x33')](db[_0x5e21('0x2c')][_0x5e21('0x2d')]);_0x3ce7b5[_0x5e21('0x32')]=_['keys'](_0x3c3c0c['query']);_0x3ce7b5[_0x5e21('0x34')]=_['intersection'](_0x3ce7b5['model'],_0x3ce7b5[_0x5e21('0x32')]);_0x2959fa[_0x5e21('0x37')]=_[_0x5e21('0x35')](_0x3ce7b5['model'],qs['fields'](_0x3c3c0c[_0x5e21('0x32')][_0x5e21('0x36')]));_0x2959fa[_0x5e21('0x37')]=_0x2959fa[_0x5e21('0x37')]['length']?_0x2959fa[_0x5e21('0x37')]:_0x3ce7b5['model'];if(_0x3c3c0c['query'][_0x5e21('0x42')]){_0x2959fa[_0x5e21('0x43')]=[{'all':!![]}];}_0x2959fa=_[_0x5e21('0x40')]({},_0x2959fa,_0x3c3c0c[_0x5e21('0x41')]);return db[_0x5e21('0x2c')][_0x5e21('0x47')](_0x2959fa)[_0x5e21('0x24')](handleEntityNotFound(_0x30c205,null))[_0x5e21('0x24')](respondWithResult(_0x30c205,null))[_0x5e21('0x45')](handleError(_0x30c205,null));};exports[_0x5e21('0x48')]=function(_0x383cc3,_0xdefe71,_0x2859a9){return db[_0x5e21('0x2c')][_0x5e21('0x47')]({'where':{'id':_0x383cc3['params']['id']},'attributes':[_0x5e21('0x28'),_0x5e21('0x49'),_0x5e21('0x4a')],'raw':!![]})['then'](handleEntityNotFound(_0xdefe71,null))[_0x5e21('0x24')](function(_0x10854e){if(_0x10854e){if(!fs['existsSync'](path[_0x5e21('0x4b')](config[_0x5e21('0x4c')],_0x5e21('0x4d'),_0x10854e['save_name']+'.'+_0x10854e[_0x5e21('0x4a')]))){throw new db['Sequelize'][(_0x5e21('0x4e'))](_0x5e21('0x4f'));}return _0xdefe71[_0x5e21('0x48')](path['join'](config[_0x5e21('0x4c')],_0x5e21('0x4d'),util[_0x5e21('0x50')](_0x5e21('0x51'),_0x10854e[_0x5e21('0x49')],_0x10854e[_0x5e21('0x4a')])),util[_0x5e21('0x50')]('%s.%s',_0x10854e['name'],_0x10854e[_0x5e21('0x4a')]));}return null;})[_0x5e21('0x45')](handleError(_0xdefe71,null));};exports[_0x5e21('0x52')]=function(_0x295f2,_0x1bafa7,_0x563c04){var _0x44f5cb={'name':path['basename'](_0x295f2[_0x5e21('0x53')][_0x5e21('0x54')],path[_0x5e21('0x55')](_0x295f2['file']['originalname'])),'save_name':path[_0x5e21('0x56')](_0x295f2[_0x5e21('0x53')][_0x5e21('0x57')],path['extname'](_0x295f2[_0x5e21('0x53')][_0x5e21('0x57')])),'original_format':path[_0x5e21('0x55')](_0x295f2[_0x5e21('0x53')][_0x5e21('0x54')])['substring'](0x1),'converted_format':'wav'};var _0x212106=path['join'](config[_0x5e21('0x4c')],_0x5e21('0x58'),_0x295f2['file'][_0x5e21('0x57')]);var _0xfb08af=path[_0x5e21('0x4b')](config[_0x5e21('0x4c')],'server/files/sounds/converted',util[_0x5e21('0x50')](_0x5e21('0x51'),path['basename'](_0x295f2[_0x5e21('0x53')][_0x5e21('0x57')],path[_0x5e21('0x55')](_0x295f2['file'][_0x5e21('0x57')])),_0x44f5cb['converted_format']));logger[_0x5e21('0x59')](_0x5e21('0x5a'),_0x212106);logger[_0x5e21('0x59')](_0x5e21('0x5b'),_0xfb08af);try{fs[_0x5e21('0x5c')](_0x212106,parseInt('0777',0x8));var _0x1c98dc=sox['transcode'](_0x212106,_0xfb08af,{'sampleRate':0x1f40,'format':'wav','channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1c98dc['on'](_0x5e21('0x27'),function(_0x167e13){fs[_0x5e21('0x5d')](_0x212106);_0x1bafa7[_0x5e21('0x19')](0x1f4)['send'](_0x167e13);});_0x1c98dc['on']('src',function(_0x5d8a22){_0x44f5cb[_0x5e21('0x5e')]=isNaN(_0x5d8a22[_0x5e21('0x5f')])?null:_0x5d8a22[_0x5e21('0x5f')]*0x3e8;_0x44f5cb[_0x5e21('0x60')]=isNaN(_0x5d8a22[_0x5e21('0x61')])?null:_0x5d8a22[_0x5e21('0x61')];_0x44f5cb[_0x5e21('0x62')]=isNaN(_0x5d8a22[_0x5e21('0x63')])?null:_0x5d8a22[_0x5e21('0x63')];_0x44f5cb['original_bitRate']=isNaN(_0x5d8a22[_0x5e21('0x64')])?null:_0x5d8a22[_0x5e21('0x64')];_0x44f5cb[_0x5e21('0x65')]=isNaN(_0x5d8a22[_0x5e21('0x66')])?null:_0x5d8a22[_0x5e21('0x66')];});_0x1c98dc['on'](_0x5e21('0x67'),function(_0x9e901d){_0x44f5cb[_0x5e21('0x68')]=isNaN(_0x9e901d['duration'])?null:_0x9e901d[_0x5e21('0x5f')]*0x3e8;_0x44f5cb[_0x5e21('0x69')]=isNaN(_0x9e901d[_0x5e21('0x61')])?null:_0x9e901d[_0x5e21('0x61')];_0x44f5cb['converted_channelCount']=isNaN(_0x9e901d[_0x5e21('0x63')])?null:_0x9e901d[_0x5e21('0x63')];_0x44f5cb['converted_bitRate']=isNaN(_0x9e901d['bitRate'])?null:_0x9e901d[_0x5e21('0x64')];_0x44f5cb['converted_sampleRate']=isNaN(_0x9e901d['sampleRate'])?null:_0x9e901d[_0x5e21('0x66')];});_0x1c98dc['on'](_0x5e21('0x6a'),function(){fs['chmodSync'](_0xfb08af,parseInt('0777',0x8));return db[_0x5e21('0x2c')][_0x5e21('0x52')](_0x44f5cb)[_0x5e21('0x24')](function(_0x3e2fcc){var _0x5f31ba={'role':_0x295f2['body']['role'],'userProfileId':_0x295f2[_0x5e21('0x6b')][_0x5e21('0x6c')]};if(!_0x5f31ba)throw new Error(_0x5e21('0x6d'));if(_0x5f31ba[_0x5e21('0x6e')]===_0x5e21('0x6f')){var _0x1dc0c4=_0x3e2fcc[_0x5e21('0x70')]({'plain':!![]});return db[_0x5e21('0x71')][_0x5e21('0x47')]({'where':{'name':_0x5e21('0x26'),'userProfileId':_0x5f31ba['userProfileId']},'raw':!![]})['then'](function(_0x277d6d){if(_0x277d6d&&_0x277d6d[_0x5e21('0x72')]===0x0){return db[_0x5e21('0x73')][_0x5e21('0x52')]({'name':_0x1dc0c4[_0x5e21('0x28')],'resourceId':_0x1dc0c4['id'],'type':_0x277d6d['name'],'sectionId':_0x277d6d['id']},{})['then'](function(){return _0x3e2fcc;});}else{return _0x3e2fcc;}})['catch'](function(_0x329cfd){logger[_0x5e21('0x27')](_0x5e21('0x74'),_0x329cfd);throw _0x329cfd;});}return _0x3e2fcc;})[_0x5e21('0x24')](respondWithResult(_0x1bafa7,null))[_0x5e21('0x45')](handleError(_0x1bafa7,null));});_0x1c98dc['start']();}catch(_0x4f2189){_0x1bafa7['status'](0x1f4)[_0x5e21('0x29')](_0x4f2189);}};exports['update']=function(_0x42c7b5,_0x222c06,_0x44f286){return db[_0x5e21('0x2c')][_0x5e21('0x47')]({'where':{'id':_0x42c7b5['params']['id']}})[_0x5e21('0x24')](handleEntityNotFound(_0x222c06,null))[_0x5e21('0x24')](saveUpdates(_['pick'](_0x42c7b5[_0x5e21('0x6b')],[_0x5e21('0x28'),_0x5e21('0x75')]),null))['then'](respondWithResult(_0x222c06,null))['catch'](handleError(_0x222c06,null));};exports['delete']=function(_0x3afcf7,_0x5186d6,_0xd2d931){return db[_0x5e21('0x2c')][_0x5e21('0x47')]({'where':{'id':_0x3afcf7['params']['id']}})[_0x5e21('0x24')](function(_0x1b0b9e){if(_0x1b0b9e){return _0x1b0b9e[_0x5e21('0x25')]();}})[_0x5e21('0x24')](function(_0x52663f){var _0x19bd94=path[_0x5e21('0x4b')](config[_0x5e21('0x4c')],'server/files/sounds/original',util['format'](_0x5e21('0x51'),_0x52663f[_0x5e21('0x49')],_0x52663f[_0x5e21('0x76')]));var _0x3a592f=path[_0x5e21('0x4b')](config['root'],_0x5e21('0x4d'),util[_0x5e21('0x50')](_0x5e21('0x51'),_0x52663f[_0x5e21('0x49')],_0x52663f[_0x5e21('0x4a')]));fs[_0x5e21('0x5d')](_0x19bd94);fs['unlinkSync'](_0x3a592f);return _0x52663f;})[_0x5e21('0x24')](function(_0x50fda8){if(_0x50fda8){return _0x5186d6['status'](0xcc)[_0x5e21('0x6a')]();}})['then'](handleEntityNotFound(_0x5186d6,null))[_0x5e21('0x45')](handleError(_0x5186d6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f1c=['path','rimraf','../../config/environment','exports','Sound','tools_sounds','../../config/logger','api','moment','request-promise'];(function(_0x49365d,_0x227a7c){var _0x508eaa=function(_0x4c4464){while(--_0x4c4464){_0x49365d['push'](_0x49365d['shift']());}};_0x508eaa(++_0x227a7c);}(_0x7f1c,0x1be));var _0xc7f1=function(_0x53feda,_0x8d5d13){_0x53feda=_0x53feda-0x0;var _0x2c0b4f=_0x7f1c[_0x53feda];return _0x2c0b4f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xc7f1('0x0'))(_0xc7f1('0x1'));var moment=require(_0xc7f1('0x2'));var BPromise=require('bluebird');var rp=require(_0xc7f1('0x3'));var fs=require('fs');var path=require(_0xc7f1('0x4'));var rimraf=require(_0xc7f1('0x5'));var config=require(_0xc7f1('0x6'));var attributes=require('./sound.attributes');module[_0xc7f1('0x7')]=function(_0x312200,_0x3cb2f0){return _0x312200['define'](_0xc7f1('0x8'),attributes,{'tableName':_0xc7f1('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe717=['lodash','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./sound.attributes','exports','define','Sound'];(function(_0x601de1,_0x4c5f20){var _0x3a46fd=function(_0x75a7a1){while(--_0x75a7a1){_0x601de1['push'](_0x601de1['shift']());}};_0x3a46fd(++_0x4c5f20);}(_0xe717,0x198));var _0x7e71=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe717[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x7e71('0x0'));var util=require('util');var logger=require(_0x7e71('0x1'))(_0x7e71('0x2'));var moment=require('moment');var BPromise=require(_0x7e71('0x3'));var rp=require(_0x7e71('0x4'));var fs=require('fs');var path=require(_0x7e71('0x5'));var rimraf=require(_0x7e71('0x6'));var config=require(_0x7e71('0x7'));var attributes=require(_0x7e71('0x8'));module[_0x7e71('0x9')]=function(_0x15c2a0,_0x9fb48){return _0x15c2a0[_0x7e71('0xa')](_0x7e71('0xb'),attributes,{'tableName':'tools_sounds','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ca3=['moment','bluebird','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','Sound,\x20%s,\x20%s','request\x20sent','debug','Sound,\x20%s,\x20%s,\x20%s','error','code','message','result','ShowSound','Sound','options','map','model','include','attributes','stringify','catch','lodash','util'];(function(_0x2d01dc,_0x131a1b){var _0x1e807b=function(_0x326b51){while(--_0x326b51){_0x2d01dc['push'](_0x2d01dc['shift']());}};_0x1e807b(++_0x131a1b);}(_0x6ca3,0x134));var _0x36ca=function(_0x37b851,_0x469969){_0x37b851=_0x37b851-0x0;var _0x574599=_0x6ca3[_0x37b851];return _0x574599;};'use strict';var _=require(_0x36ca('0x0'));var util=require(_0x36ca('0x1'));var moment=require(_0x36ca('0x2'));var BPromise=require(_0x36ca('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x36ca('0x4'));var db=require(_0x36ca('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x36ca('0x6'))('rpc');var config=require(_0x36ca('0x7'));var jayson=require(_0x36ca('0x8'));var client=jayson[_0x36ca('0x9')][_0x36ca('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x459e12,_0x15497a,_0x59aaa0){return new BPromise(function(_0x3a84b5,_0x57f054){return client[_0x36ca('0xb')](_0x459e12,_0x59aaa0)[_0x36ca('0xc')](function(_0x438302){logger[_0x36ca('0xd')](_0x36ca('0xe'),_0x15497a,_0x36ca('0xf'));logger[_0x36ca('0x10')](_0x36ca('0x11'),_0x15497a,_0x36ca('0xf'),JSON['stringify'](_0x438302));if(_0x438302[_0x36ca('0x12')]){if(_0x438302['error'][_0x36ca('0x13')]===0x1f4){logger[_0x36ca('0x12')](_0x36ca('0xe'),_0x15497a,_0x438302['error']['message']);return _0x57f054(_0x438302['error']['message']);}logger[_0x36ca('0x12')](_0x36ca('0xe'),_0x15497a,_0x438302[_0x36ca('0x12')][_0x36ca('0x14')]);return _0x3a84b5(_0x438302[_0x36ca('0x12')][_0x36ca('0x14')]);}else{logger[_0x36ca('0xd')]('Sound,\x20%s,\x20%s',_0x15497a,'request\x20sent');_0x3a84b5(_0x438302[_0x36ca('0x15')]['message']);}})['catch'](function(_0x1f7242){logger['error'](_0x36ca('0xe'),_0x15497a,_0x1f7242);_0x57f054(_0x1f7242);});});}exports[_0x36ca('0x16')]=function(_0x545494){var _0xe8613b=this;return new Promise(function(_0x535343,_0x1cda6b){return db[_0x36ca('0x17')]['find']({'raw':_0x545494['options']?_0x545494['options']['raw']===undefined?!![]:![]:!![],'where':_0x545494[_0x36ca('0x18')]?_0x545494['options']['where']||null:null,'attributes':_0x545494[_0x36ca('0x18')]?_0x545494['options']['attributes']||null:null,'include':_0x545494[_0x36ca('0x18')]?_0x545494[_0x36ca('0x18')]['include']?_[_0x36ca('0x19')](_0x545494[_0x36ca('0x18')]['include'],function(_0x5160ad){return{'model':db[_0x5160ad[_0x36ca('0x1a')]],'as':_0x5160ad['as'],'attributes':_0x5160ad['attributes'],'include':_0x5160ad[_0x36ca('0x1b')]?_['map'](_0x5160ad[_0x36ca('0x1b')],function(_0x2f5538){return{'model':db[_0x2f5538['model']],'as':_0x2f5538['as'],'attributes':_0x2f5538[_0x36ca('0x1c')],'include':_0x2f5538[_0x36ca('0x1b')]?_[_0x36ca('0x19')](_0x2f5538[_0x36ca('0x1b')],function(_0x4aa013){return{'model':db[_0x4aa013[_0x36ca('0x1a')]],'as':_0x4aa013['as'],'attributes':_0x4aa013['attributes']};}):[]};}):[]};}):[]:[]})[_0x36ca('0xc')](function(_0x189efa){logger[_0x36ca('0xd')](_0x36ca('0x16'),_0x545494);logger[_0x36ca('0x10')](_0x36ca('0x16'),_0x545494,JSON[_0x36ca('0x1d')](_0x189efa));_0x535343(_0x189efa);})[_0x36ca('0x1e')](function(_0x34ec04){logger[_0x36ca('0x12')](_0x36ca('0x16'),_0x34ec04[_0x36ca('0x14')],_0x545494);_0x1cda6b(_0xe8613b['error'](0x1f4,_0x34ec04['message']));});});};
\ No newline at end of file
+var _0x3c9a=['then','Sound,\x20%s,\x20%s','request\x20sent','Sound,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Sound','options','where','attributes','include','map','model','info','debug','ShowSound','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request'];(function(_0x7a9452,_0xba8a16){var _0x3d5c38=function(_0x520303){while(--_0x520303){_0x7a9452['push'](_0x7a9452['shift']());}};_0x3d5c38(++_0xba8a16);}(_0x3c9a,0x187));var _0xa3c9=function(_0x5dd7bb,_0x49c4ac){_0x5dd7bb=_0x5dd7bb-0x0;var _0x1d5b1c=_0x3c9a[_0x5dd7bb];return _0x1d5b1c;};'use strict';var _=require(_0xa3c9('0x0'));var util=require(_0xa3c9('0x1'));var moment=require(_0xa3c9('0x2'));var BPromise=require('bluebird');var rs=require(_0xa3c9('0x3'));var fs=require('fs');var Redis=require(_0xa3c9('0x4'));var db=require(_0xa3c9('0x5'))['db'];var utils=require(_0xa3c9('0x6'));var logger=require(_0xa3c9('0x7'))('rpc');var config=require(_0xa3c9('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xa3c9('0x9')][_0xa3c9('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x146110,_0x2175a3,_0x2ca342){return new BPromise(function(_0xb39ec6,_0x37c706){return client[_0xa3c9('0xb')](_0x146110,_0x2ca342)[_0xa3c9('0xc')](function(_0x559964){logger['info'](_0xa3c9('0xd'),_0x2175a3,_0xa3c9('0xe'));logger['debug'](_0xa3c9('0xf'),_0x2175a3,_0xa3c9('0xe'),JSON[_0xa3c9('0x10')](_0x559964));if(_0x559964[_0xa3c9('0x11')]){if(_0x559964['error'][_0xa3c9('0x12')]===0x1f4){logger[_0xa3c9('0x11')]('Sound,\x20%s,\x20%s',_0x2175a3,_0x559964[_0xa3c9('0x11')][_0xa3c9('0x13')]);return _0x37c706(_0x559964[_0xa3c9('0x11')][_0xa3c9('0x13')]);}logger['error'](_0xa3c9('0xd'),_0x2175a3,_0x559964[_0xa3c9('0x11')][_0xa3c9('0x13')]);return _0xb39ec6(_0x559964[_0xa3c9('0x11')][_0xa3c9('0x13')]);}else{logger['info'](_0xa3c9('0xd'),_0x2175a3,_0xa3c9('0xe'));_0xb39ec6(_0x559964['result'][_0xa3c9('0x13')]);}})['catch'](function(_0x1dbc37){logger['error'](_0xa3c9('0xd'),_0x2175a3,_0x1dbc37);_0x37c706(_0x1dbc37);});});}exports['ShowSound']=function(_0x2eba6c){var _0x30c2f9=this;return new Promise(function(_0x2bdabb,_0xd666c6){return db[_0xa3c9('0x14')]['find']({'raw':_0x2eba6c['options']?_0x2eba6c[_0xa3c9('0x15')]['raw']===undefined?!![]:![]:!![],'where':_0x2eba6c[_0xa3c9('0x15')]?_0x2eba6c['options'][_0xa3c9('0x16')]||null:null,'attributes':_0x2eba6c[_0xa3c9('0x15')]?_0x2eba6c[_0xa3c9('0x15')][_0xa3c9('0x17')]||null:null,'include':_0x2eba6c[_0xa3c9('0x15')]?_0x2eba6c[_0xa3c9('0x15')][_0xa3c9('0x18')]?_[_0xa3c9('0x19')](_0x2eba6c[_0xa3c9('0x15')][_0xa3c9('0x18')],function(_0x5f120c){return{'model':db[_0x5f120c[_0xa3c9('0x1a')]],'as':_0x5f120c['as'],'attributes':_0x5f120c[_0xa3c9('0x17')],'include':_0x5f120c[_0xa3c9('0x18')]?_['map'](_0x5f120c['include'],function(_0x3659e8){return{'model':db[_0x3659e8['model']],'as':_0x3659e8['as'],'attributes':_0x3659e8[_0xa3c9('0x17')],'include':_0x3659e8['include']?_[_0xa3c9('0x19')](_0x3659e8[_0xa3c9('0x18')],function(_0x2e9285){return{'model':db[_0x2e9285[_0xa3c9('0x1a')]],'as':_0x2e9285['as'],'attributes':_0x2e9285[_0xa3c9('0x17')]};}):[]};}):[]};}):[]:[]})[_0xa3c9('0xc')](function(_0x7e1ab){logger[_0xa3c9('0x1b')]('ShowSound',_0x2eba6c);logger[_0xa3c9('0x1c')](_0xa3c9('0x1d'),_0x2eba6c,JSON[_0xa3c9('0x10')](_0x7e1ab));_0x2bdabb(_0x7e1ab);})[_0xa3c9('0x1e')](function(_0x52129c){logger['error']('ShowSound',_0x52129c['message'],_0x2eba6c);_0xd666c6(_0x30c2f9[_0xa3c9('0x11')](0x1f4,_0x52129c[_0xa3c9('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14a0=['get','isAuthenticated','/:id','show','create','delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./squareMessage.controller'];(function(_0x461ed3,_0x4ce1aa){var _0x4a7e41=function(_0x1590fb){while(--_0x1590fb){_0x461ed3['push'](_0x461ed3['shift']());}};_0x4a7e41(++_0x4ce1aa);}(_0x14a0,0x8e));var _0x014a=function(_0x30d755,_0x188807){_0x30d755=_0x30d755-0x0;var _0xa16cea=_0x14a0[_0x30d755];return _0xa16cea;};'use strict';var multer=require('multer');var util=require(_0x014a('0x0'));var path=require(_0x014a('0x1'));var timeout=require(_0x014a('0x2'));var express=require(_0x014a('0x3'));var router=express[_0x014a('0x4')]();var fs_extra=require(_0x014a('0x5'));var auth=require(_0x014a('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x014a('0x7'));router[_0x014a('0x8')]('/',auth[_0x014a('0x9')](),controller['index']);router['get'](_0x014a('0xa'),auth[_0x014a('0x9')](),controller[_0x014a('0xb')]);router['post']('/',auth['isAuthenticated'](),controller[_0x014a('0xc')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x014a('0xd')]('/:id',auth[_0x014a('0x9')](),controller[_0x014a('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0xb7e7=['exports','multer','path','express','fs-extra','../../components/interaction/service','../../config/environment','./squareMessage.controller','index','get','/:id','show','post','isAuthenticated','create','put','delete','destroy'];(function(_0x202933,_0x42ecc6){var _0x2cad88=function(_0xf5e6b9){while(--_0xf5e6b9){_0x202933['push'](_0x202933['shift']());}};_0x2cad88(++_0x42ecc6);}(_0xb7e7,0x121));var _0x7b7e=function(_0x186376,_0x5d988a){_0x186376=_0x186376-0x0;var _0x2dbdd9=_0xb7e7[_0x186376];return _0x2dbdd9;};'use strict';var multer=require(_0x7b7e('0x0'));var util=require('util');var path=require(_0x7b7e('0x1'));var timeout=require('connect-timeout');var express=require(_0x7b7e('0x2'));var router=express['Router']();var fs_extra=require(_0x7b7e('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x7b7e('0x4'));var config=require(_0x7b7e('0x5'));var controller=require(_0x7b7e('0x6'));router['get']('/',auth['isAuthenticated'](),controller[_0x7b7e('0x7')]);router[_0x7b7e('0x8')](_0x7b7e('0x9'),auth['isAuthenticated'](),controller[_0x7b7e('0xa')]);router[_0x7b7e('0xb')]('/',auth[_0x7b7e('0xc')](),controller[_0x7b7e('0xd')]);router[_0x7b7e('0xe')](_0x7b7e('0x9'),auth[_0x7b7e('0xc')](),controller['update']);router[_0x7b7e('0xf')](_0x7b7e('0x9'),auth[_0x7b7e('0xc')](),controller[_0x7b7e('0x10')]);module[_0x7b7e('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x220c=['TEXT','medium','out','STRING','sequelize','exports'];(function(_0x1030ce,_0xbe3f74){var _0x3367fd=function(_0x387153){while(--_0x387153){_0x1030ce['push'](_0x1030ce['shift']());}};_0x3367fd(++_0xbe3f74);}(_0x220c,0xe2));var _0xc220=function(_0x3835ef,_0x359f65){_0x3835ef=_0x3835ef-0x0;var _0xa79c9d=_0x220c[_0x3835ef];return _0xa79c9d;};'use strict';var Sequelize=require(_0xc220('0x0'));module[_0xc220('0x1')]={'uniqueid':{'type':Sequelize['STRING']},'body':{'type':Sequelize[_0xc220('0x2')](_0xc220('0x3')),'allowNull':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':_0xc220('0x4'),'allowNull':![]},'providerName':{'type':Sequelize[_0xc220('0x5')]},'providerResponse':{'type':Sequelize[_0xc220('0x2')]}};
\ No newline at end of file
+var _0x1688=['ENUM','sequelize','exports','STRING','TEXT','medium'];(function(_0x18beb7,_0x142463){var _0x15f7c4=function(_0x94e022){while(--_0x94e022){_0x18beb7['push'](_0x18beb7['shift']());}};_0x15f7c4(++_0x142463);}(_0x1688,0xeb));var _0x8168=function(_0xe05e5d,_0x38f53d){_0xe05e5d=_0xe05e5d-0x0;var _0x42ab34=_0x1688[_0xe05e5d];return _0x42ab34;};'use strict';var Sequelize=require(_0x8168('0x0'));module[_0x8168('0x1')]={'uniqueid':{'type':Sequelize[_0x8168('0x2')]},'body':{'type':Sequelize[_0x8168('0x3')](_0x8168('0x4')),'allowNull':![]},'direction':{'type':Sequelize[_0x8168('0x5')]('in','out'),'defaultValue':'out','allowNull':![]},'providerName':{'type':Sequelize[_0x8168('0x2')]},'providerResponse':{'type':Sequelize[_0x8168('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce31=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','reject','update','then','destroy','error','name','send','index','fieldName','type','model','map','keys','intersection','query','attributes','fields','nolimit','sort','filters','pick','merge','options','where','SquareMessage','include','findAll','catch','params','length','includeAll','find','create','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','lodash','jsforce','desk.js','to-csv','querystring'];(function(_0x38da37,_0x55b675){var _0x1e3a85=function(_0x15f63e){while(--_0x15f63e){_0x38da37['push'](_0x38da37['shift']());}};_0x1e3a85(++_0x55b675);}(_0xce31,0x1d5));var _0x1ce3=function(_0x578c5b,_0x309175){_0x578c5b=_0x578c5b-0x0;var _0x5dd312=_0xce31[_0x578c5b];return _0x5dd312;};'use strict';var emlformat=require(_0x1ce3('0x0'));var rimraf=require(_0x1ce3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1ce3('0x2'));var rp=require(_0x1ce3('0x3'));var moment=require(_0x1ce3('0x4'));var BPromise=require(_0x1ce3('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x1ce3('0x6'));var sox=require(_0x1ce3('0x7'));var csv=require('to-csv');var ejs=require(_0x1ce3('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x1ce3('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1ce3('0xa'));var deskjs=require(_0x1ce3('0xb'));var toCsv=require(_0x1ce3('0xc'));var querystring=require(_0x1ce3('0xd'));var Papa=require(_0x1ce3('0xe'));var Redis=require(_0x1ce3('0xf'));var authService=require(_0x1ce3('0x10'));var qs=require(_0x1ce3('0x11'));var as=require(_0x1ce3('0x12'));var hardwareService=require(_0x1ce3('0x13'));var logger=require(_0x1ce3('0x14'))(_0x1ce3('0x15'));var utils=require(_0x1ce3('0x16'));var config=require(_0x1ce3('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x1ce3('0x18'))['db'];function respondWithStatusCode(_0x1fef40,_0x127520){_0x127520=_0x127520||0xcc;return function(_0x10a860){if(_0x10a860){return _0x1fef40[_0x1ce3('0x19')](_0x127520);}return _0x1fef40['status'](_0x127520)[_0x1ce3('0x1a')]();};}function respondWithResult(_0x99ef18,_0x40a682){_0x40a682=_0x40a682||0xc8;return function(_0xf271a6){if(_0xf271a6){return _0x99ef18[_0x1ce3('0x1b')](_0x40a682)[_0x1ce3('0x1c')](_0xf271a6);}};}function respondWithFilteredResult(_0x3a9a6e,_0x578bd0){return function(_0x338edd){if(_0x338edd){var _0x2a1a9c=typeof _0x578bd0[_0x1ce3('0x1d')]===_0x1ce3('0x1e')&&typeof _0x578bd0['limit']===_0x1ce3('0x1e');var _0x17e2cb=_0x338edd[_0x1ce3('0x1f')];var _0x4e23ca=_0x2a1a9c?0x0:_0x578bd0[_0x1ce3('0x1d')];var _0x1b590d=_0x2a1a9c?_0x338edd['count']:_0x578bd0['offset']+_0x578bd0[_0x1ce3('0x20')];var _0x56f854;if(_0x1b590d>=_0x17e2cb){_0x1b590d=_0x17e2cb;_0x56f854=0xc8;}else{_0x56f854=0xce;}_0x3a9a6e[_0x1ce3('0x1b')](_0x56f854);return _0x3a9a6e['set'](_0x1ce3('0x21'),_0x4e23ca+'-'+_0x1b590d+'/'+_0x17e2cb)['json'](_0x338edd);}return null;};}function patchUpdates(_0xa3a1c9){return function(_0x271b89){try{jsonpatch[_0x1ce3('0x22')](_0x271b89,_0xa3a1c9,!![]);}catch(_0x43e749){return BPromise[_0x1ce3('0x23')](_0x43e749);}return _0x271b89['save']();};}function saveUpdates(_0x112a73,_0x1315cc){return function(_0x5c8ada){if(_0x5c8ada){return _0x5c8ada[_0x1ce3('0x24')](_0x112a73)[_0x1ce3('0x25')](function(_0x2caa7a){return _0x2caa7a;});}return null;};}function removeEntity(_0xd5ebe9,_0x33e92a){return function(_0x29a68e){if(_0x29a68e){return _0x29a68e[_0x1ce3('0x26')]()[_0x1ce3('0x25')](function(){_0xd5ebe9[_0x1ce3('0x1b')](0xcc)[_0x1ce3('0x1a')]();});}};}function handleEntityNotFound(_0x75374c,_0x662abe){return function(_0x27131c){if(!_0x27131c){_0x75374c[_0x1ce3('0x19')](0x194);}return _0x27131c;};}function handleError(_0xefe88d,_0x501993){_0x501993=_0x501993||0x1f4;return function(_0x40273f){logger[_0x1ce3('0x27')](_0x40273f['stack']);if(_0x40273f[_0x1ce3('0x28')]){delete _0x40273f[_0x1ce3('0x28')];}_0xefe88d[_0x1ce3('0x1b')](_0x501993)[_0x1ce3('0x29')](_0x40273f);};}exports[_0x1ce3('0x2a')]=function(_0x18bc98,_0x4659e9){var _0x429cab={},_0x3e4b6e={},_0x25482d={'count':0x0,'rows':[]};var _0x7637fe=_['map'](db['SquareMessage']['rawAttributes'],function(_0x39e4a8){return{'name':_0x39e4a8[_0x1ce3('0x2b')],'type':_0x39e4a8[_0x1ce3('0x2c')]['key']};});_0x3e4b6e[_0x1ce3('0x2d')]=_[_0x1ce3('0x2e')](_0x7637fe,_0x1ce3('0x28'));_0x3e4b6e['query']=_[_0x1ce3('0x2f')](_0x18bc98['query']);_0x3e4b6e['filters']=_[_0x1ce3('0x30')](_0x3e4b6e[_0x1ce3('0x2d')],_0x3e4b6e[_0x1ce3('0x31')]);_0x429cab[_0x1ce3('0x32')]=_['intersection'](_0x3e4b6e[_0x1ce3('0x2d')],qs['fields'](_0x18bc98[_0x1ce3('0x31')][_0x1ce3('0x33')]));_0x429cab[_0x1ce3('0x32')]=_0x429cab['attributes']['length']?_0x429cab[_0x1ce3('0x32')]:_0x3e4b6e['model'];if(!_0x18bc98[_0x1ce3('0x31')]['hasOwnProperty'](_0x1ce3('0x34'))){_0x429cab[_0x1ce3('0x20')]=qs[_0x1ce3('0x20')](_0x18bc98['query']['limit']);_0x429cab[_0x1ce3('0x1d')]=qs[_0x1ce3('0x1d')](_0x18bc98[_0x1ce3('0x31')][_0x1ce3('0x1d')]);}_0x429cab['order']=qs[_0x1ce3('0x35')](_0x18bc98[_0x1ce3('0x31')]['sort']);_0x429cab['where']=qs[_0x1ce3('0x36')](_[_0x1ce3('0x37')](_0x18bc98[_0x1ce3('0x31')],_0x3e4b6e[_0x1ce3('0x36')]),_0x7637fe);if(_0x18bc98[_0x1ce3('0x31')]['filter']){_0x429cab['where']=_[_0x1ce3('0x38')](_0x429cab['where'],{'$or':_[_0x1ce3('0x2e')](_0x7637fe,function(_0x407a41){if(_0x407a41['type']!=='VIRTUAL'){var _0x58435b={};_0x58435b[_0x407a41[_0x1ce3('0x28')]]={'$like':'%'+_0x18bc98[_0x1ce3('0x31')]['filter']+'%'};return _0x58435b;}})});}_0x429cab=_['merge']({},_0x429cab,_0x18bc98[_0x1ce3('0x39')]);var _0x562626={'where':_0x429cab[_0x1ce3('0x3a')]};return db[_0x1ce3('0x3b')]['count'](_0x562626)[_0x1ce3('0x25')](function(_0x146819){_0x25482d['count']=_0x146819;if(_0x18bc98[_0x1ce3('0x31')]['includeAll']){_0x429cab[_0x1ce3('0x3c')]=[{'all':!![]}];}return db[_0x1ce3('0x3b')][_0x1ce3('0x3d')](_0x429cab);})['then'](function(_0x497161){_0x25482d['rows']=_0x497161;return _0x25482d;})[_0x1ce3('0x25')](respondWithFilteredResult(_0x4659e9,_0x429cab))[_0x1ce3('0x3e')](handleError(_0x4659e9,null));};exports['show']=function(_0x4e4760,_0x3f1e6d){var _0xa9170a={'raw':!![],'where':{'id':_0x4e4760[_0x1ce3('0x3f')]['id']}},_0x286813={};_0x286813[_0x1ce3('0x2d')]=_[_0x1ce3('0x2f')](db[_0x1ce3('0x3b')]['rawAttributes']);_0x286813[_0x1ce3('0x31')]=_['keys'](_0x4e4760[_0x1ce3('0x31')]);_0x286813['filters']=_[_0x1ce3('0x30')](_0x286813['model'],_0x286813[_0x1ce3('0x31')]);_0xa9170a[_0x1ce3('0x32')]=_[_0x1ce3('0x30')](_0x286813[_0x1ce3('0x2d')],qs[_0x1ce3('0x33')](_0x4e4760[_0x1ce3('0x31')][_0x1ce3('0x33')]));_0xa9170a[_0x1ce3('0x32')]=_0xa9170a[_0x1ce3('0x32')][_0x1ce3('0x40')]?_0xa9170a[_0x1ce3('0x32')]:_0x286813[_0x1ce3('0x2d')];if(_0x4e4760[_0x1ce3('0x31')][_0x1ce3('0x41')]){_0xa9170a[_0x1ce3('0x3c')]=[{'all':!![]}];}_0xa9170a=_[_0x1ce3('0x38')]({},_0xa9170a,_0x4e4760['options']);return db[_0x1ce3('0x3b')][_0x1ce3('0x42')](_0xa9170a)[_0x1ce3('0x25')](handleEntityNotFound(_0x3f1e6d,null))[_0x1ce3('0x25')](respondWithResult(_0x3f1e6d,null))[_0x1ce3('0x3e')](handleError(_0x3f1e6d,null));};exports[_0x1ce3('0x43')]=function(_0x5c2137,_0x41ffe7){return db[_0x1ce3('0x3b')][_0x1ce3('0x43')](_0x5c2137[_0x1ce3('0x44')],{})[_0x1ce3('0x25')](respondWithResult(_0x41ffe7,0xc9))[_0x1ce3('0x3e')](handleError(_0x41ffe7,null));};exports[_0x1ce3('0x24')]=function(_0x2a9e18,_0x4e5301){if(_0x2a9e18[_0x1ce3('0x44')]['id']){delete _0x2a9e18['body']['id'];}return db['SquareMessage'][_0x1ce3('0x42')]({'where':{'id':_0x2a9e18[_0x1ce3('0x3f')]['id']}})[_0x1ce3('0x25')](handleEntityNotFound(_0x4e5301,null))[_0x1ce3('0x25')](saveUpdates(_0x2a9e18['body'],null))[_0x1ce3('0x25')](respondWithResult(_0x4e5301,null))[_0x1ce3('0x3e')](handleError(_0x4e5301,null));};exports[_0x1ce3('0x26')]=function(_0x413537,_0x5ac7f1){return db['SquareMessage']['find']({'where':{'id':_0x413537[_0x1ce3('0x3f')]['id']}})[_0x1ce3('0x25')](handleEntityNotFound(_0x5ac7f1,null))[_0x1ce3('0x25')](removeEntity(_0x5ac7f1,null))[_0x1ce3('0x3e')](handleError(_0x5ac7f1,null));};
\ No newline at end of file
+var _0x55af=['fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','length','includeAll','find','catch','create','body','destroy','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/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','end','stack','name','send','index','SquareMessage','rawAttributes','fieldName','type','key','model','map','query','keys','filters','attributes','intersection'];(function(_0x3c8e9a,_0x384306){var _0x2d4c57=function(_0x43d408){while(--_0x43d408){_0x3c8e9a['push'](_0x3c8e9a['shift']());}};_0x2d4c57(++_0x384306);}(_0x55af,0x1ab));var _0xf55a=function(_0x25d771,_0x287d91){_0x25d771=_0x25d771-0x0;var _0x1e7072=_0x55af[_0x25d771];return _0x1e7072;};'use strict';var emlformat=require(_0xf55a('0x0'));var rimraf=require(_0xf55a('0x1'));var zipdir=require(_0xf55a('0x2'));var jsonpatch=require(_0xf55a('0x3'));var rp=require(_0xf55a('0x4'));var moment=require(_0xf55a('0x5'));var BPromise=require(_0xf55a('0x6'));var Mustache=require(_0xf55a('0x7'));var util=require(_0xf55a('0x8'));var path=require(_0xf55a('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf55a('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf55a('0xb'));var squel=require(_0xf55a('0xc'));var crypto=require(_0xf55a('0xd'));var jsforce=require(_0xf55a('0xe'));var deskjs=require(_0xf55a('0xf'));var toCsv=require(_0xf55a('0x10'));var querystring=require(_0xf55a('0x11'));var Papa=require(_0xf55a('0x12'));var Redis=require(_0xf55a('0x13'));var authService=require(_0xf55a('0x14'));var qs=require(_0xf55a('0x15'));var as=require(_0xf55a('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf55a('0x17'))('api');var utils=require(_0xf55a('0x18'));var config=require(_0xf55a('0x19'));var licenseUtil=require(_0xf55a('0x1a'));var db=require(_0xf55a('0x1b'))['db'];function respondWithStatusCode(_0x5a7f19,_0x3c9a59){_0x3c9a59=_0x3c9a59||0xcc;return function(_0x257fdd){if(_0x257fdd){return _0x5a7f19[_0xf55a('0x1c')](_0x3c9a59);}return _0x5a7f19[_0xf55a('0x1d')](_0x3c9a59)['end']();};}function respondWithResult(_0x26822d,_0x3bf3dd){_0x3bf3dd=_0x3bf3dd||0xc8;return function(_0xe174c6){if(_0xe174c6){return _0x26822d[_0xf55a('0x1d')](_0x3bf3dd)[_0xf55a('0x1e')](_0xe174c6);}};}function respondWithFilteredResult(_0x5264b9,_0x1ecf0b){return function(_0x290565){if(_0x290565){var _0x26b223=typeof _0x1ecf0b[_0xf55a('0x1f')]===_0xf55a('0x20')&&typeof _0x1ecf0b[_0xf55a('0x21')]===_0xf55a('0x20');var _0xb10d4c=_0x290565[_0xf55a('0x22')];var _0x1e6149=_0x26b223?0x0:_0x1ecf0b[_0xf55a('0x1f')];var _0x53fbf1=_0x26b223?_0x290565[_0xf55a('0x22')]:_0x1ecf0b['offset']+_0x1ecf0b[_0xf55a('0x21')];var _0xa6152;if(_0x53fbf1>=_0xb10d4c){_0x53fbf1=_0xb10d4c;_0xa6152=0xc8;}else{_0xa6152=0xce;}_0x5264b9[_0xf55a('0x1d')](_0xa6152);return _0x5264b9[_0xf55a('0x23')](_0xf55a('0x24'),_0x1e6149+'-'+_0x53fbf1+'/'+_0xb10d4c)['json'](_0x290565);}return null;};}function patchUpdates(_0x25a8d4){return function(_0x3bc0c6){try{jsonpatch[_0xf55a('0x25')](_0x3bc0c6,_0x25a8d4,!![]);}catch(_0x4f508f){return BPromise[_0xf55a('0x26')](_0x4f508f);}return _0x3bc0c6[_0xf55a('0x27')]();};}function saveUpdates(_0x976b44,_0x4df2ee){return function(_0x4b89bc){if(_0x4b89bc){return _0x4b89bc[_0xf55a('0x28')](_0x976b44)[_0xf55a('0x29')](function(_0x414c30){return _0x414c30;});}return null;};}function removeEntity(_0x14634a,_0x398ac8){return function(_0x4f75bc){if(_0x4f75bc){return _0x4f75bc['destroy']()['then'](function(){_0x14634a[_0xf55a('0x1d')](0xcc)[_0xf55a('0x2a')]();});}};}function handleEntityNotFound(_0x4f5921,_0x1ccd3e){return function(_0x21dda3){if(!_0x21dda3){_0x4f5921[_0xf55a('0x1c')](0x194);}return _0x21dda3;};}function handleError(_0x137019,_0xbd5e89){_0xbd5e89=_0xbd5e89||0x1f4;return function(_0xd1e343){logger['error'](_0xd1e343[_0xf55a('0x2b')]);if(_0xd1e343[_0xf55a('0x2c')]){delete _0xd1e343[_0xf55a('0x2c')];}_0x137019[_0xf55a('0x1d')](_0xbd5e89)[_0xf55a('0x2d')](_0xd1e343);};}exports[_0xf55a('0x2e')]=function(_0x4660db,_0x1c504a){var _0x54fc4f={},_0x2a632a={},_0x1e93ed={'count':0x0,'rows':[]};var _0x51d42e=_['map'](db[_0xf55a('0x2f')][_0xf55a('0x30')],function(_0x2c50db){return{'name':_0x2c50db[_0xf55a('0x31')],'type':_0x2c50db[_0xf55a('0x32')][_0xf55a('0x33')]};});_0x2a632a[_0xf55a('0x34')]=_[_0xf55a('0x35')](_0x51d42e,_0xf55a('0x2c'));_0x2a632a[_0xf55a('0x36')]=_[_0xf55a('0x37')](_0x4660db[_0xf55a('0x36')]);_0x2a632a[_0xf55a('0x38')]=_['intersection'](_0x2a632a[_0xf55a('0x34')],_0x2a632a[_0xf55a('0x36')]);_0x54fc4f[_0xf55a('0x39')]=_[_0xf55a('0x3a')](_0x2a632a[_0xf55a('0x34')],qs['fields'](_0x4660db[_0xf55a('0x36')][_0xf55a('0x3b')]));_0x54fc4f[_0xf55a('0x39')]=_0x54fc4f[_0xf55a('0x39')]['length']?_0x54fc4f[_0xf55a('0x39')]:_0x2a632a[_0xf55a('0x34')];if(!_0x4660db[_0xf55a('0x36')]['hasOwnProperty'](_0xf55a('0x3c'))){_0x54fc4f[_0xf55a('0x21')]=qs[_0xf55a('0x21')](_0x4660db[_0xf55a('0x36')][_0xf55a('0x21')]);_0x54fc4f[_0xf55a('0x1f')]=qs[_0xf55a('0x1f')](_0x4660db['query'][_0xf55a('0x1f')]);}_0x54fc4f[_0xf55a('0x3d')]=qs[_0xf55a('0x3e')](_0x4660db[_0xf55a('0x36')][_0xf55a('0x3e')]);_0x54fc4f[_0xf55a('0x3f')]=qs['filters'](_[_0xf55a('0x40')](_0x4660db[_0xf55a('0x36')],_0x2a632a['filters']),_0x51d42e);if(_0x4660db[_0xf55a('0x36')][_0xf55a('0x41')]){_0x54fc4f[_0xf55a('0x3f')]=_[_0xf55a('0x42')](_0x54fc4f[_0xf55a('0x3f')],{'$or':_[_0xf55a('0x35')](_0x51d42e,function(_0x4c65d6){if(_0x4c65d6[_0xf55a('0x32')]!==_0xf55a('0x43')){var _0x48e361={};_0x48e361[_0x4c65d6['name']]={'$like':'%'+_0x4660db[_0xf55a('0x36')][_0xf55a('0x41')]+'%'};return _0x48e361;}})});}_0x54fc4f=_[_0xf55a('0x42')]({},_0x54fc4f,_0x4660db[_0xf55a('0x44')]);var _0x1ee00b={'where':_0x54fc4f['where']};return db[_0xf55a('0x2f')][_0xf55a('0x22')](_0x1ee00b)['then'](function(_0xae046){_0x1e93ed[_0xf55a('0x22')]=_0xae046;if(_0x4660db[_0xf55a('0x36')]['includeAll']){_0x54fc4f[_0xf55a('0x45')]=[{'all':!![]}];}return db['SquareMessage'][_0xf55a('0x46')](_0x54fc4f);})[_0xf55a('0x29')](function(_0x16e6b8){_0x1e93ed[_0xf55a('0x47')]=_0x16e6b8;return _0x1e93ed;})[_0xf55a('0x29')](respondWithFilteredResult(_0x1c504a,_0x54fc4f))['catch'](handleError(_0x1c504a,null));};exports[_0xf55a('0x48')]=function(_0x52c354,_0x35759f){var _0x38dab7={'raw':!![],'where':{'id':_0x52c354[_0xf55a('0x49')]['id']}},_0x13dfe8={};_0x13dfe8[_0xf55a('0x34')]=_[_0xf55a('0x37')](db[_0xf55a('0x2f')]['rawAttributes']);_0x13dfe8[_0xf55a('0x36')]=_['keys'](_0x52c354[_0xf55a('0x36')]);_0x13dfe8[_0xf55a('0x38')]=_[_0xf55a('0x3a')](_0x13dfe8[_0xf55a('0x34')],_0x13dfe8[_0xf55a('0x36')]);_0x38dab7[_0xf55a('0x39')]=_[_0xf55a('0x3a')](_0x13dfe8['model'],qs[_0xf55a('0x3b')](_0x52c354['query'][_0xf55a('0x3b')]));_0x38dab7['attributes']=_0x38dab7['attributes'][_0xf55a('0x4a')]?_0x38dab7[_0xf55a('0x39')]:_0x13dfe8[_0xf55a('0x34')];if(_0x52c354[_0xf55a('0x36')][_0xf55a('0x4b')]){_0x38dab7[_0xf55a('0x45')]=[{'all':!![]}];}_0x38dab7=_[_0xf55a('0x42')]({},_0x38dab7,_0x52c354['options']);return db[_0xf55a('0x2f')][_0xf55a('0x4c')](_0x38dab7)[_0xf55a('0x29')](handleEntityNotFound(_0x35759f,null))[_0xf55a('0x29')](respondWithResult(_0x35759f,null))[_0xf55a('0x4d')](handleError(_0x35759f,null));};exports[_0xf55a('0x4e')]=function(_0x2f6fa3,_0x2b75e9){return db[_0xf55a('0x2f')]['create'](_0x2f6fa3[_0xf55a('0x4f')],{})[_0xf55a('0x29')](respondWithResult(_0x2b75e9,0xc9))['catch'](handleError(_0x2b75e9,null));};exports['update']=function(_0x4ccaf9,_0x17f2df){if(_0x4ccaf9[_0xf55a('0x4f')]['id']){delete _0x4ccaf9[_0xf55a('0x4f')]['id'];}return db[_0xf55a('0x2f')]['find']({'where':{'id':_0x4ccaf9[_0xf55a('0x49')]['id']}})[_0xf55a('0x29')](handleEntityNotFound(_0x17f2df,null))[_0xf55a('0x29')](saveUpdates(_0x4ccaf9['body'],null))[_0xf55a('0x29')](respondWithResult(_0x17f2df,null))[_0xf55a('0x4d')](handleError(_0x17f2df,null));};exports[_0xf55a('0x50')]=function(_0x259bb4,_0x3669b0){return db['SquareMessage'][_0xf55a('0x4c')]({'where':{'id':_0x259bb4[_0xf55a('0x49')]['id']}})[_0xf55a('0x29')](handleEntityNotFound(_0x3669b0,null))[_0xf55a('0x29')](removeEntity(_0x3669b0,null))[_0xf55a('0x4d')](handleError(_0x3669b0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x855e=['api','moment','bluebird','request-promise','../../config/environment','./squareMessage.attributes','exports','square_messages','lodash','util','../../config/logger'];(function(_0x4c29f9,_0x5bddd4){var _0x4e17b8=function(_0x12e055){while(--_0x12e055){_0x4c29f9['push'](_0x4c29f9['shift']());}};_0x4e17b8(++_0x5bddd4);}(_0x855e,0xb8));var _0xe855=function(_0x1c1311,_0xbdcdbe){_0x1c1311=_0x1c1311-0x0;var _0x5729f6=_0x855e[_0x1c1311];return _0x5729f6;};'use strict';var _=require(_0xe855('0x0'));var util=require(_0xe855('0x1'));var logger=require(_0xe855('0x2'))(_0xe855('0x3'));var moment=require(_0xe855('0x4'));var BPromise=require(_0xe855('0x5'));var rp=require(_0xe855('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xe855('0x7'));var attributes=require(_0xe855('0x8'));module[_0xe855('0x9')]=function(_0x56b1ae,_0xacae0e){return _0x56b1ae['define']('SquareMessage',attributes,{'tableName':_0xe855('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfbf0=['api','bluebird','request-promise','path','rimraf','exports','define','SquareMessage','square_messages','util'];(function(_0x5448a2,_0x2b48d2){var _0x2ecc64=function(_0x29262a){while(--_0x29262a){_0x5448a2['push'](_0x5448a2['shift']());}};_0x2ecc64(++_0x2b48d2);}(_0xfbf0,0x6d));var _0x0fbf=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0xfbf0[_0x21549c];return _0x426cbd;};'use strict';var _=require('lodash');var util=require(_0x0fbf('0x0'));var logger=require('../../config/logger')(_0x0fbf('0x1'));var moment=require('moment');var BPromise=require(_0x0fbf('0x2'));var rp=require(_0x0fbf('0x3'));var fs=require('fs');var path=require(_0x0fbf('0x4'));var rimraf=require(_0x0fbf('0x5'));var config=require('../../config/environment');var attributes=require('./squareMessage.attributes');module[_0x0fbf('0x6')]=function(_0x15d1ea,_0xdfdf8c){return _0x15d1ea[_0x0fbf('0x7')](_0x0fbf('0x8'),attributes,{'tableName':_0x0fbf('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36fd=['message','result','catch','SquareMessage','create','options','raw','CreateSquareMessage','debug','stringify','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','SquareMessage,\x20%s,\x20%s,\x20%s','error'];(function(_0x5bf0d0,_0x246116){var _0x1343ef=function(_0xf3f9a){while(--_0xf3f9a){_0x5bf0d0['push'](_0x5bf0d0['shift']());}};_0x1343ef(++_0x246116);}(_0x36fd,0xda));var _0xd36f=function(_0x3196ea,_0x3a261d){_0x3196ea=_0x3196ea-0x0;var _0x4e9e7e=_0x36fd[_0x3196ea];return _0x4e9e7e;};'use strict';var _=require(_0xd36f('0x0'));var util=require(_0xd36f('0x1'));var moment=require(_0xd36f('0x2'));var BPromise=require(_0xd36f('0x3'));var rs=require(_0xd36f('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd36f('0x5'))['db'];var utils=require(_0xd36f('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xd36f('0x7'));var jayson=require(_0xd36f('0x8'));var client=jayson[_0xd36f('0x9')][_0xd36f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3451eb,_0x52e7f5,_0x3f03d7){return new BPromise(function(_0x1da56f,_0x4677fe){return client['request'](_0x3451eb,_0x3f03d7)[_0xd36f('0xb')](function(_0x2d9949){logger[_0xd36f('0xc')]('SquareMessage,\x20%s,\x20%s',_0x52e7f5,_0xd36f('0xd'));logger['debug'](_0xd36f('0xe'),_0x52e7f5,_0xd36f('0xd'),JSON['stringify'](_0x2d9949));if(_0x2d9949[_0xd36f('0xf')]){if(_0x2d9949[_0xd36f('0xf')]['code']===0x1f4){logger[_0xd36f('0xf')]('SquareMessage,\x20%s,\x20%s',_0x52e7f5,_0x2d9949['error']['message']);return _0x4677fe(_0x2d9949[_0xd36f('0xf')][_0xd36f('0x10')]);}logger[_0xd36f('0xf')]('SquareMessage,\x20%s,\x20%s',_0x52e7f5,_0x2d9949[_0xd36f('0xf')][_0xd36f('0x10')]);return _0x1da56f(_0x2d9949['error']['message']);}else{logger['info']('SquareMessage,\x20%s,\x20%s',_0x52e7f5,_0xd36f('0xd'));_0x1da56f(_0x2d9949[_0xd36f('0x11')]['message']);}})[_0xd36f('0x12')](function(_0x51c8db){logger[_0xd36f('0xf')]('SquareMessage,\x20%s,\x20%s',_0x52e7f5,_0x51c8db);_0x4677fe(_0x51c8db);});});}exports['CreateSquareMessage']=function(_0x43cd77){var _0x45ee56=this;return new Promise(function(_0x1d1121,_0x1d18ff){return db[_0xd36f('0x13')][_0xd36f('0x14')](_0x43cd77['body'],{'raw':_0x43cd77[_0xd36f('0x15')]?_0x43cd77['options'][_0xd36f('0x16')]===undefined?!![]:![]:!![]})[_0xd36f('0xb')](function(_0x4941ec){logger[_0xd36f('0xc')](_0xd36f('0x17'),_0x43cd77);logger[_0xd36f('0x18')](_0xd36f('0x17'),_0x43cd77,JSON[_0xd36f('0x19')](_0x4941ec));_0x1d1121(_0x4941ec);})['catch'](function(_0x48f83d){logger['error'](_0xd36f('0x17'),_0x48f83d[_0xd36f('0x10')],_0x43cd77);_0x1d18ff(_0x45ee56['error'](0x1f4,_0x48f83d[_0xd36f('0x10')]));});});};
\ No newline at end of file
+var _0x0bb6=['client','http','request','info','SquareMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','CreateSquareMessage','create','options','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise'];(function(_0x230bf9,_0x4bfdeb){var _0x292b54=function(_0x40b38d){while(--_0x40b38d){_0x230bf9['push'](_0x230bf9['shift']());}};_0x292b54(++_0x4bfdeb);}(_0x0bb6,0xb0));var _0x60bb=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x0bb6[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x60bb('0x0'));var util=require('util');var moment=require(_0x60bb('0x1'));var BPromise=require(_0x60bb('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x60bb('0x3'));var db=require(_0x60bb('0x4'))['db'];var utils=require(_0x60bb('0x5'));var logger=require(_0x60bb('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x60bb('0x7'));var client=jayson[_0x60bb('0x8')][_0x60bb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2a4032,_0x291c5c,_0x17389f){return new BPromise(function(_0x385a93,_0x5ec16a){return client[_0x60bb('0xa')](_0x2a4032,_0x17389f)['then'](function(_0x50720e){logger[_0x60bb('0xb')](_0x60bb('0xc'),_0x291c5c,_0x60bb('0xd'));logger['debug']('SquareMessage,\x20%s,\x20%s,\x20%s',_0x291c5c,_0x60bb('0xd'),JSON[_0x60bb('0xe')](_0x50720e));if(_0x50720e[_0x60bb('0xf')]){if(_0x50720e[_0x60bb('0xf')][_0x60bb('0x10')]===0x1f4){logger['error']('SquareMessage,\x20%s,\x20%s',_0x291c5c,_0x50720e[_0x60bb('0xf')][_0x60bb('0x11')]);return _0x5ec16a(_0x50720e[_0x60bb('0xf')]['message']);}logger[_0x60bb('0xf')](_0x60bb('0xc'),_0x291c5c,_0x50720e[_0x60bb('0xf')][_0x60bb('0x11')]);return _0x385a93(_0x50720e[_0x60bb('0xf')][_0x60bb('0x11')]);}else{logger[_0x60bb('0xb')]('SquareMessage,\x20%s,\x20%s',_0x291c5c,_0x60bb('0xd'));_0x385a93(_0x50720e[_0x60bb('0x12')][_0x60bb('0x11')]);}})[_0x60bb('0x13')](function(_0x27f46b){logger[_0x60bb('0xf')](_0x60bb('0xc'),_0x291c5c,_0x27f46b);_0x5ec16a(_0x27f46b);});});}exports[_0x60bb('0x14')]=function(_0x1d028f){var _0x1402ea=this;return new Promise(function(_0x2844a8,_0x37779b){return db['SquareMessage'][_0x60bb('0x15')](_0x1d028f['body'],{'raw':_0x1d028f[_0x60bb('0x16')]?_0x1d028f[_0x60bb('0x16')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x1ad28f){logger[_0x60bb('0xb')](_0x60bb('0x14'),_0x1d028f);logger['debug'](_0x60bb('0x14'),_0x1d028f,JSON[_0x60bb('0xe')](_0x1ad28f));_0x2844a8(_0x1ad28f);})[_0x60bb('0x13')](function(_0x2f2c88){logger['error']('CreateSquareMessage',_0x2f2c88['message'],_0x1d028f);_0x37779b(_0x1402ea[_0x60bb('0xf')](0x1f4,_0x2f2c88[_0x60bb('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa94e=['post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareOdbc.controller','isAuthenticated','get','/:id','show','/:id/test','15s','test'];(function(_0x31e8d8,_0x38b11b){var _0x52af61=function(_0x277e37){while(--_0x277e37){_0x31e8d8['push'](_0x31e8d8['shift']());}};_0x52af61(++_0x38b11b);}(_0xa94e,0xbe));var _0xea94=function(_0x194abc,_0x1c064a){_0x194abc=_0x194abc-0x0;var _0x5b7133=_0xa94e[_0x194abc];return _0x5b7133;};'use strict';var multer=require(_0xea94('0x0'));var util=require(_0xea94('0x1'));var path=require(_0xea94('0x2'));var timeout=require(_0xea94('0x3'));var express=require(_0xea94('0x4'));var router=express['Router']();var fs_extra=require(_0xea94('0x5'));var auth=require(_0xea94('0x6'));var interaction=require(_0xea94('0x7'));var config=require(_0xea94('0x8'));var controller=require(_0xea94('0x9'));router['get']('/',auth[_0xea94('0xa')](),controller['index']);router[_0xea94('0xb')](_0xea94('0xc'),auth['isAuthenticated'](),controller[_0xea94('0xd')]);router[_0xea94('0xb')](_0xea94('0xe'),auth['isAuthenticated'](),timeout(_0xea94('0xf')),controller[_0xea94('0x10')]);router[_0xea94('0x11')]('/',auth['isAuthenticated'](),controller[_0xea94('0x12')]);router[_0xea94('0x13')](_0xea94('0xc'),auth[_0xea94('0xa')](),controller[_0xea94('0x14')]);router[_0xea94('0x15')](_0xea94('0xc'),auth[_0xea94('0xa')](),controller['destroy']);module[_0xea94('0x16')]=router;
\ No newline at end of file
+var _0x4302=['connect-timeout','express','Router','fs-extra','../../components/auth/service','get','isAuthenticated','index','show','/:id/test','test','post','put','update','delete','exports','util','path'];(function(_0xf6136b,_0x3ca229){var _0xa3a2ba=function(_0xc281c4){while(--_0xc281c4){_0xf6136b['push'](_0xf6136b['shift']());}};_0xa3a2ba(++_0x3ca229);}(_0x4302,0x1ae));var _0x2430=function(_0x4154a6,_0x2c0b8e){_0x4154a6=_0x4154a6-0x0;var _0x3b2786=_0x4302[_0x4154a6];return _0x3b2786;};'use strict';var multer=require('multer');var util=require(_0x2430('0x0'));var path=require(_0x2430('0x1'));var timeout=require(_0x2430('0x2'));var express=require(_0x2430('0x3'));var router=express[_0x2430('0x4')]();var fs_extra=require(_0x2430('0x5'));var auth=require(_0x2430('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./squareOdbc.controller');router[_0x2430('0x7')]('/',auth[_0x2430('0x8')](),controller[_0x2430('0x9')]);router[_0x2430('0x7')]('/:id',auth[_0x2430('0x8')](),controller[_0x2430('0xa')]);router[_0x2430('0x7')](_0x2430('0xb'),auth['isAuthenticated'](),timeout('15s'),controller[_0x2430('0xc')]);router[_0x2430('0xd')]('/',auth[_0x2430('0x8')](),controller['create']);router[_0x2430('0xe')]('/:id',auth[_0x2430('0x8')](),controller[_0x2430('0xf')]);router[_0x2430('0x10')]('/:id',auth['isAuthenticated'](),controller['destroy']);module[_0x2430('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cbb=['sequelize','exports','STRING'];(function(_0x599254,_0x14a690){var _0x2a047b=function(_0x2ceb9d){while(--_0x2ceb9d){_0x599254['push'](_0x599254['shift']());}};_0x2a047b(++_0x14a690);}(_0x4cbb,0xb7));var _0xb4cb=function(_0x4ba102,_0x3dc213){_0x4ba102=_0x4ba102-0x0;var _0x1f35e7=_0x4cbb[_0x4ba102];return _0x1f35e7;};'use strict';var Sequelize=require(_0xb4cb('0x0'));module[_0xb4cb('0x1')]={'name':{'type':Sequelize[_0xb4cb('0x2')],'unique':'name','allowNull':![]},'dsn':{'type':Sequelize[_0xb4cb('0x2')]},'description':{'type':Sequelize[_0xb4cb('0x2')]}};
\ No newline at end of file
+var _0xa3c7=['STRING','sequelize','exports'];(function(_0x54a9b9,_0x31352f){var _0x2a34ef=function(_0x50f592){while(--_0x50f592){_0x54a9b9['push'](_0x54a9b9['shift']());}};_0x2a34ef(++_0x31352f);}(_0xa3c7,0x64));var _0x7a3c=function(_0x19e1f6,_0x52d013){_0x19e1f6=_0x19e1f6-0x0;var _0x4b9242=_0xa3c7[_0x19e1f6];return _0x4b9242;};'use strict';var Sequelize=require(_0x7a3c('0x0'));module[_0x7a3c('0x1')]={'name':{'type':Sequelize[_0x7a3c('0x2')],'unique':'name','allowNull':![]},'dsn':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x7a3c('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7982=['querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','error','stack','name','send','index','map','SquareOdbc','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','rawAttributes','create','user','role','ODBC','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','test','dsn','odbc','closeSync','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x7982,0x1aa));var _0x2798=function(_0x166742,_0x55520c){_0x166742=_0x166742-0x0;var _0xb7814a=_0x7982[_0x166742];return _0xb7814a;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2798('0x0'));var jsonpatch=require(_0x2798('0x1'));var rp=require(_0x2798('0x2'));var moment=require('moment');var BPromise=require(_0x2798('0x3'));var Mustache=require(_0x2798('0x4'));var util=require('util');var path=require(_0x2798('0x5'));var sox=require(_0x2798('0x6'));var csv=require(_0x2798('0x7'));var ejs=require(_0x2798('0x8'));var fs=require('fs');var fs_extra=require(_0x2798('0x9'));var _=require('lodash');var squel=require(_0x2798('0xa'));var crypto=require(_0x2798('0xb'));var jsforce=require(_0x2798('0xc'));var deskjs=require(_0x2798('0xd'));var toCsv=require(_0x2798('0x7'));var querystring=require(_0x2798('0xe'));var Papa=require(_0x2798('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2798('0x10'));var hardwareService=require(_0x2798('0x11'));var logger=require(_0x2798('0x12'))(_0x2798('0x13'));var utils=require(_0x2798('0x14'));var config=require(_0x2798('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x2798('0x16'))['db'];function respondWithStatusCode(_0x4bda3c,_0x59a465){_0x59a465=_0x59a465||0xcc;return function(_0x3360f1){if(_0x3360f1){return _0x4bda3c[_0x2798('0x17')](_0x59a465);}return _0x4bda3c['status'](_0x59a465)[_0x2798('0x18')]();};}function respondWithResult(_0x161d0d,_0x2624a4){_0x2624a4=_0x2624a4||0xc8;return function(_0x49dbbd){if(_0x49dbbd){return _0x161d0d[_0x2798('0x19')](_0x2624a4)[_0x2798('0x1a')](_0x49dbbd);}};}function respondWithFilteredResult(_0x14767e,_0x55b7c6){return function(_0xdeb287){if(_0xdeb287){var _0x4d9098=typeof _0x55b7c6[_0x2798('0x1b')]===_0x2798('0x1c')&&typeof _0x55b7c6[_0x2798('0x1d')]===_0x2798('0x1c');var _0x402289=_0xdeb287[_0x2798('0x1e')];var _0x5d99ac=_0x4d9098?0x0:_0x55b7c6['offset'];var _0x4d5474=_0x4d9098?_0xdeb287[_0x2798('0x1e')]:_0x55b7c6[_0x2798('0x1b')]+_0x55b7c6['limit'];var _0x5ec392;if(_0x4d5474>=_0x402289){_0x4d5474=_0x402289;_0x5ec392=0xc8;}else{_0x5ec392=0xce;}_0x14767e['status'](_0x5ec392);return _0x14767e[_0x2798('0x1f')](_0x2798('0x20'),_0x5d99ac+'-'+_0x4d5474+'/'+_0x402289)[_0x2798('0x1a')](_0xdeb287);}return null;};}function patchUpdates(_0x5032e2){return function(_0x59f276){try{jsonpatch[_0x2798('0x21')](_0x59f276,_0x5032e2,!![]);}catch(_0x2209cd){return BPromise['reject'](_0x2209cd);}return _0x59f276[_0x2798('0x22')]();};}function saveUpdates(_0x3aca4f,_0x3c092f){return function(_0x3384c4){if(_0x3384c4){return _0x3384c4[_0x2798('0x23')](_0x3aca4f)[_0x2798('0x24')](function(_0x53a592){return _0x53a592;});}return null;};}function removeEntity(_0x54d4d1,_0x534141){return function(_0x7aa5ad){if(_0x7aa5ad){return _0x7aa5ad[_0x2798('0x25')]()[_0x2798('0x24')](function(){var _0x4114c4=_0x7aa5ad[_0x2798('0x26')]({'plain':!![]});var _0x15e69d='ODBC';return db['UserProfileResource'][_0x2798('0x25')]({'where':{'type':_0x15e69d,'resourceId':_0x4114c4['id']}})[_0x2798('0x24')](function(){return _0x7aa5ad;});})[_0x2798('0x24')](function(){_0x54d4d1[_0x2798('0x19')](0xcc)[_0x2798('0x18')]();});}};}function handleEntityNotFound(_0x6ff5b8,_0x149aca){return function(_0x3bff55){if(!_0x3bff55){_0x6ff5b8[_0x2798('0x17')](0x194);}return _0x3bff55;};}function handleError(_0x2ba5db,_0x35ccc0){_0x35ccc0=_0x35ccc0||0x1f4;return function(_0x432fb7){logger[_0x2798('0x27')](_0x432fb7[_0x2798('0x28')]);if(_0x432fb7[_0x2798('0x29')]){delete _0x432fb7[_0x2798('0x29')];}_0x2ba5db['status'](_0x35ccc0)[_0x2798('0x2a')](_0x432fb7);};}exports[_0x2798('0x2b')]=function(_0x392558,_0x8ae290){var _0x4fb294={},_0x42917a={},_0x53c3={'count':0x0,'rows':[]};var _0x4f17bf=_[_0x2798('0x2c')](db[_0x2798('0x2d')]['rawAttributes'],function(_0x375b8b){return{'name':_0x375b8b[_0x2798('0x2e')],'type':_0x375b8b[_0x2798('0x2f')][_0x2798('0x30')]};});_0x42917a[_0x2798('0x31')]=_[_0x2798('0x2c')](_0x4f17bf,_0x2798('0x29'));_0x42917a[_0x2798('0x32')]=_[_0x2798('0x33')](_0x392558[_0x2798('0x32')]);_0x42917a[_0x2798('0x34')]=_[_0x2798('0x35')](_0x42917a['model'],_0x42917a[_0x2798('0x32')]);_0x4fb294[_0x2798('0x36')]=_[_0x2798('0x35')](_0x42917a[_0x2798('0x31')],qs[_0x2798('0x37')](_0x392558[_0x2798('0x32')][_0x2798('0x37')]));_0x4fb294[_0x2798('0x36')]=_0x4fb294['attributes'][_0x2798('0x38')]?_0x4fb294[_0x2798('0x36')]:_0x42917a[_0x2798('0x31')];if(!_0x392558['query'][_0x2798('0x39')](_0x2798('0x3a'))){_0x4fb294[_0x2798('0x1d')]=qs[_0x2798('0x1d')](_0x392558[_0x2798('0x32')][_0x2798('0x1d')]);_0x4fb294[_0x2798('0x1b')]=qs[_0x2798('0x1b')](_0x392558['query'][_0x2798('0x1b')]);}_0x4fb294['order']=qs['sort'](_0x392558[_0x2798('0x32')][_0x2798('0x3b')]);_0x4fb294['where']=qs[_0x2798('0x34')](_[_0x2798('0x3c')](_0x392558['query'],_0x42917a[_0x2798('0x34')]),_0x4f17bf);if(_0x392558['query'][_0x2798('0x3d')]){_0x4fb294['where']=_[_0x2798('0x3e')](_0x4fb294[_0x2798('0x3f')],{'$or':_[_0x2798('0x2c')](_0x4f17bf,function(_0x3b16a6){if(_0x3b16a6[_0x2798('0x2f')]!==_0x2798('0x40')){var _0x1ef5d0={};_0x1ef5d0[_0x3b16a6[_0x2798('0x29')]]={'$like':'%'+_0x392558[_0x2798('0x32')][_0x2798('0x3d')]+'%'};return _0x1ef5d0;}})});}_0x4fb294=_[_0x2798('0x3e')]({},_0x4fb294,_0x392558[_0x2798('0x41')]);var _0x1008bf={'where':_0x4fb294[_0x2798('0x3f')]};return db['SquareOdbc'][_0x2798('0x1e')](_0x1008bf)[_0x2798('0x24')](function(_0x419cfb){_0x53c3[_0x2798('0x1e')]=_0x419cfb;if(_0x392558[_0x2798('0x32')][_0x2798('0x42')]){_0x4fb294['include']=[{'all':!![]}];}return db[_0x2798('0x2d')][_0x2798('0x43')](_0x4fb294);})[_0x2798('0x24')](function(_0x8a1b33){_0x53c3[_0x2798('0x44')]=_0x8a1b33;return _0x53c3;})['then'](respondWithFilteredResult(_0x8ae290,_0x4fb294))[_0x2798('0x45')](handleError(_0x8ae290,null));};exports[_0x2798('0x46')]=function(_0x27b460,_0x26c185){var _0xa168d8={'raw':!![],'where':{'id':_0x27b460[_0x2798('0x47')]['id']}},_0x2f503f={};_0x2f503f[_0x2798('0x31')]=_[_0x2798('0x33')](db['SquareOdbc'][_0x2798('0x48')]);_0x2f503f['query']=_[_0x2798('0x33')](_0x27b460[_0x2798('0x32')]);_0x2f503f[_0x2798('0x34')]=_[_0x2798('0x35')](_0x2f503f['model'],_0x2f503f[_0x2798('0x32')]);_0xa168d8['attributes']=_[_0x2798('0x35')](_0x2f503f[_0x2798('0x31')],qs[_0x2798('0x37')](_0x27b460[_0x2798('0x32')][_0x2798('0x37')]));_0xa168d8[_0x2798('0x36')]=_0xa168d8[_0x2798('0x36')][_0x2798('0x38')]?_0xa168d8[_0x2798('0x36')]:_0x2f503f[_0x2798('0x31')];if(_0x27b460['query'][_0x2798('0x42')]){_0xa168d8['include']=[{'all':!![]}];}_0xa168d8=_['merge']({},_0xa168d8,_0x27b460[_0x2798('0x41')]);return db[_0x2798('0x2d')]['find'](_0xa168d8)[_0x2798('0x24')](handleEntityNotFound(_0x26c185,null))['then'](respondWithResult(_0x26c185,null))[_0x2798('0x45')](handleError(_0x26c185,null));};exports[_0x2798('0x49')]=function(_0x445055,_0x3a626f){return db[_0x2798('0x2d')][_0x2798('0x49')](_0x445055['body'],{})[_0x2798('0x24')](function(_0x185a96){var _0x1c822d=_0x445055[_0x2798('0x4a')]['get']({'plain':!![]});if(!_0x1c822d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1c822d[_0x2798('0x4b')]==='user'){var _0x564e2c=_0x185a96['get']({'plain':!![]});var _0xc967ab=_0x2798('0x4c');return db[_0x2798('0x4d')]['find']({'where':{'name':_0xc967ab,'userProfileId':_0x1c822d[_0x2798('0x4e')]},'raw':!![]})[_0x2798('0x24')](function(_0xa8c3b9){if(_0xa8c3b9&&_0xa8c3b9[_0x2798('0x4f')]===0x0){return db[_0x2798('0x50')][_0x2798('0x49')]({'name':_0x564e2c[_0x2798('0x29')],'resourceId':_0x564e2c['id'],'type':_0xa8c3b9['name'],'sectionId':_0xa8c3b9['id']},{})[_0x2798('0x24')](function(){return _0x185a96;});}else{return _0x185a96;}})[_0x2798('0x45')](function(_0x3263df){logger[_0x2798('0x27')](_0x2798('0x51'),_0x3263df);throw _0x3263df;});}return _0x185a96;})[_0x2798('0x24')](respondWithResult(_0x3a626f,0xc9))[_0x2798('0x45')](handleError(_0x3a626f,null));};exports['update']=function(_0x8f1c8a,_0x4cecf2){if(_0x8f1c8a[_0x2798('0x52')]['id']){delete _0x8f1c8a[_0x2798('0x52')]['id'];}return db[_0x2798('0x2d')][_0x2798('0x53')]({'where':{'id':_0x8f1c8a[_0x2798('0x47')]['id']}})[_0x2798('0x24')](handleEntityNotFound(_0x4cecf2,null))[_0x2798('0x24')](saveUpdates(_0x8f1c8a['body'],null))[_0x2798('0x24')](respondWithResult(_0x4cecf2,null))[_0x2798('0x45')](handleError(_0x4cecf2,null));};exports[_0x2798('0x25')]=function(_0x4ddaf6,_0x3c0e92){return db[_0x2798('0x2d')][_0x2798('0x53')]({'where':{'id':_0x4ddaf6[_0x2798('0x47')]['id']}})[_0x2798('0x24')](handleEntityNotFound(_0x3c0e92,null))[_0x2798('0x24')](removeEntity(_0x3c0e92,null))[_0x2798('0x45')](handleError(_0x3c0e92,null));};exports[_0x2798('0x54')]=function(_0x5303c3,_0x1898ec,_0x49882f){var _0x282a89;return db[_0x2798('0x2d')][_0x2798('0x53')]({'where':{'id':_0x5303c3['params']['id']},'attributes':['id',_0x2798('0x55')]})[_0x2798('0x24')](handleEntityNotFound(_0x1898ec,null))[_0x2798('0x24')](function(_0x29bcfd){if(_0x29bcfd){var _0x2c50e9=require(_0x2798('0x56'))();_0x2c50e9['openSync'](_0x29bcfd[_0x2798('0x55')]);_0x2c50e9[_0x2798('0x57')]();return _0x29bcfd;}})[_0x2798('0x24')](respondWithResult(_0x1898ec,null))['catch'](handleError(_0x1898ec,null));};
\ No newline at end of file
+var _0x2d46=['sox','to-csv','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','get','error','stack','name','send','index','SquareOdbc','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','options','includeAll','findAll','rows','catch','show','params','create','body','user','role','ODBC','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','odbc','openSync','closeSync','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x2d46,0x1a7));var _0x62d4=function(_0x4dc63b,_0x2aef11){_0x4dc63b=_0x4dc63b-0x0;var _0x7c4a=_0x2d46[_0x4dc63b];return _0x7c4a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x62d4('0x0'));var zipdir=require(_0x62d4('0x1'));var jsonpatch=require(_0x62d4('0x2'));var rp=require('request-promise');var moment=require(_0x62d4('0x3'));var BPromise=require(_0x62d4('0x4'));var Mustache=require('mustache');var util=require(_0x62d4('0x5'));var path=require(_0x62d4('0x6'));var sox=require(_0x62d4('0x7'));var csv=require(_0x62d4('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x62d4('0x9'));var _=require(_0x62d4('0xa'));var squel=require('squel');var crypto=require(_0x62d4('0xb'));var jsforce=require(_0x62d4('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x62d4('0x8'));var querystring=require(_0x62d4('0xd'));var Papa=require(_0x62d4('0xe'));var Redis=require(_0x62d4('0xf'));var authService=require(_0x62d4('0x10'));var qs=require(_0x62d4('0x11'));var as=require(_0x62d4('0x12'));var hardwareService=require(_0x62d4('0x13'));var logger=require(_0x62d4('0x14'))(_0x62d4('0x15'));var utils=require(_0x62d4('0x16'));var config=require(_0x62d4('0x17'));var licenseUtil=require(_0x62d4('0x18'));var db=require(_0x62d4('0x19'))['db'];function respondWithStatusCode(_0xb75493,_0x259b40){_0x259b40=_0x259b40||0xcc;return function(_0x5125ec){if(_0x5125ec){return _0xb75493['sendStatus'](_0x259b40);}return _0xb75493[_0x62d4('0x1a')](_0x259b40)[_0x62d4('0x1b')]();};}function respondWithResult(_0x1b7580,_0x902abc){_0x902abc=_0x902abc||0xc8;return function(_0x3f7169){if(_0x3f7169){return _0x1b7580[_0x62d4('0x1a')](_0x902abc)[_0x62d4('0x1c')](_0x3f7169);}};}function respondWithFilteredResult(_0x12db57,_0x1b1a57){return function(_0x212059){if(_0x212059){var _0x1c41d8=typeof _0x1b1a57[_0x62d4('0x1d')]===_0x62d4('0x1e')&&typeof _0x1b1a57[_0x62d4('0x1f')]===_0x62d4('0x1e');var _0x20f38a=_0x212059[_0x62d4('0x20')];var _0x4f7cb7=_0x1c41d8?0x0:_0x1b1a57[_0x62d4('0x1d')];var _0x2277e2=_0x1c41d8?_0x212059['count']:_0x1b1a57[_0x62d4('0x1d')]+_0x1b1a57['limit'];var _0x3c0710;if(_0x2277e2>=_0x20f38a){_0x2277e2=_0x20f38a;_0x3c0710=0xc8;}else{_0x3c0710=0xce;}_0x12db57[_0x62d4('0x1a')](_0x3c0710);return _0x12db57[_0x62d4('0x21')](_0x62d4('0x22'),_0x4f7cb7+'-'+_0x2277e2+'/'+_0x20f38a)[_0x62d4('0x1c')](_0x212059);}return null;};}function patchUpdates(_0x17886b){return function(_0x26e895){try{jsonpatch[_0x62d4('0x23')](_0x26e895,_0x17886b,!![]);}catch(_0x83fbb6){return BPromise['reject'](_0x83fbb6);}return _0x26e895[_0x62d4('0x24')]();};}function saveUpdates(_0x474ad1,_0x842dbd){return function(_0x4fe128){if(_0x4fe128){return _0x4fe128[_0x62d4('0x25')](_0x474ad1)[_0x62d4('0x26')](function(_0x574dbc){return _0x574dbc;});}return null;};}function removeEntity(_0x4ac309,_0x29828a){return function(_0x163ae8){if(_0x163ae8){return _0x163ae8[_0x62d4('0x27')]()[_0x62d4('0x26')](function(){var _0x149187=_0x163ae8[_0x62d4('0x28')]({'plain':!![]});var _0xc9c90b='ODBC';return db['UserProfileResource'][_0x62d4('0x27')]({'where':{'type':_0xc9c90b,'resourceId':_0x149187['id']}})['then'](function(){return _0x163ae8;});})[_0x62d4('0x26')](function(){_0x4ac309[_0x62d4('0x1a')](0xcc)[_0x62d4('0x1b')]();});}};}function handleEntityNotFound(_0x5aa7b8,_0x55562b){return function(_0x2b29bc){if(!_0x2b29bc){_0x5aa7b8['sendStatus'](0x194);}return _0x2b29bc;};}function handleError(_0x509459,_0xa8338c){_0xa8338c=_0xa8338c||0x1f4;return function(_0x246157){logger[_0x62d4('0x29')](_0x246157[_0x62d4('0x2a')]);if(_0x246157[_0x62d4('0x2b')]){delete _0x246157[_0x62d4('0x2b')];}_0x509459['status'](_0xa8338c)[_0x62d4('0x2c')](_0x246157);};}exports[_0x62d4('0x2d')]=function(_0x4dd31b,_0x3e01cc){var _0x18de6e={},_0xf2d451={},_0x3048f6={'count':0x0,'rows':[]};var _0x329b08=_['map'](db[_0x62d4('0x2e')][_0x62d4('0x2f')],function(_0x289e2d){return{'name':_0x289e2d[_0x62d4('0x30')],'type':_0x289e2d[_0x62d4('0x31')][_0x62d4('0x32')]};});_0xf2d451[_0x62d4('0x33')]=_[_0x62d4('0x34')](_0x329b08,_0x62d4('0x2b'));_0xf2d451[_0x62d4('0x35')]=_[_0x62d4('0x36')](_0x4dd31b[_0x62d4('0x35')]);_0xf2d451['filters']=_[_0x62d4('0x37')](_0xf2d451['model'],_0xf2d451[_0x62d4('0x35')]);_0x18de6e[_0x62d4('0x38')]=_[_0x62d4('0x37')](_0xf2d451[_0x62d4('0x33')],qs['fields'](_0x4dd31b[_0x62d4('0x35')][_0x62d4('0x39')]));_0x18de6e[_0x62d4('0x38')]=_0x18de6e[_0x62d4('0x38')][_0x62d4('0x3a')]?_0x18de6e[_0x62d4('0x38')]:_0xf2d451[_0x62d4('0x33')];if(!_0x4dd31b['query']['hasOwnProperty'](_0x62d4('0x3b'))){_0x18de6e[_0x62d4('0x1f')]=qs[_0x62d4('0x1f')](_0x4dd31b[_0x62d4('0x35')][_0x62d4('0x1f')]);_0x18de6e[_0x62d4('0x1d')]=qs[_0x62d4('0x1d')](_0x4dd31b[_0x62d4('0x35')][_0x62d4('0x1d')]);}_0x18de6e[_0x62d4('0x3c')]=qs[_0x62d4('0x3d')](_0x4dd31b[_0x62d4('0x35')][_0x62d4('0x3d')]);_0x18de6e[_0x62d4('0x3e')]=qs[_0x62d4('0x3f')](_[_0x62d4('0x40')](_0x4dd31b['query'],_0xf2d451[_0x62d4('0x3f')]),_0x329b08);if(_0x4dd31b[_0x62d4('0x35')][_0x62d4('0x41')]){_0x18de6e[_0x62d4('0x3e')]=_[_0x62d4('0x42')](_0x18de6e['where'],{'$or':_[_0x62d4('0x34')](_0x329b08,function(_0x153bd8){if(_0x153bd8[_0x62d4('0x31')]!=='VIRTUAL'){var _0x372dcb={};_0x372dcb[_0x153bd8[_0x62d4('0x2b')]]={'$like':'%'+_0x4dd31b[_0x62d4('0x35')]['filter']+'%'};return _0x372dcb;}})});}_0x18de6e=_[_0x62d4('0x42')]({},_0x18de6e,_0x4dd31b[_0x62d4('0x43')]);var _0x480f3b={'where':_0x18de6e['where']};return db[_0x62d4('0x2e')]['count'](_0x480f3b)[_0x62d4('0x26')](function(_0x2087dd){_0x3048f6['count']=_0x2087dd;if(_0x4dd31b['query'][_0x62d4('0x44')]){_0x18de6e['include']=[{'all':!![]}];}return db[_0x62d4('0x2e')][_0x62d4('0x45')](_0x18de6e);})['then'](function(_0x51fda5){_0x3048f6[_0x62d4('0x46')]=_0x51fda5;return _0x3048f6;})[_0x62d4('0x26')](respondWithFilteredResult(_0x3e01cc,_0x18de6e))[_0x62d4('0x47')](handleError(_0x3e01cc,null));};exports[_0x62d4('0x48')]=function(_0x2d65ab,_0x433fdb){var _0x394851={'raw':!![],'where':{'id':_0x2d65ab[_0x62d4('0x49')]['id']}},_0x5a9f2d={};_0x5a9f2d[_0x62d4('0x33')]=_[_0x62d4('0x36')](db[_0x62d4('0x2e')][_0x62d4('0x2f')]);_0x5a9f2d[_0x62d4('0x35')]=_['keys'](_0x2d65ab['query']);_0x5a9f2d[_0x62d4('0x3f')]=_[_0x62d4('0x37')](_0x5a9f2d['model'],_0x5a9f2d['query']);_0x394851[_0x62d4('0x38')]=_[_0x62d4('0x37')](_0x5a9f2d['model'],qs['fields'](_0x2d65ab[_0x62d4('0x35')][_0x62d4('0x39')]));_0x394851[_0x62d4('0x38')]=_0x394851[_0x62d4('0x38')]['length']?_0x394851[_0x62d4('0x38')]:_0x5a9f2d['model'];if(_0x2d65ab[_0x62d4('0x35')]['includeAll']){_0x394851['include']=[{'all':!![]}];}_0x394851=_['merge']({},_0x394851,_0x2d65ab['options']);return db[_0x62d4('0x2e')]['find'](_0x394851)['then'](handleEntityNotFound(_0x433fdb,null))[_0x62d4('0x26')](respondWithResult(_0x433fdb,null))[_0x62d4('0x47')](handleError(_0x433fdb,null));};exports[_0x62d4('0x4a')]=function(_0x1265b0,_0x5ae6a3){return db['SquareOdbc'][_0x62d4('0x4a')](_0x1265b0[_0x62d4('0x4b')],{})['then'](function(_0x8bf338){var _0x54bb5e=_0x1265b0[_0x62d4('0x4c')][_0x62d4('0x28')]({'plain':!![]});if(!_0x54bb5e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x54bb5e[_0x62d4('0x4d')]===_0x62d4('0x4c')){var _0x341bf4=_0x8bf338['get']({'plain':!![]});var _0x222d4a=_0x62d4('0x4e');return db[_0x62d4('0x4f')][_0x62d4('0x50')]({'where':{'name':_0x222d4a,'userProfileId':_0x54bb5e['userProfileId']},'raw':!![]})[_0x62d4('0x26')](function(_0x373ca5){if(_0x373ca5&&_0x373ca5[_0x62d4('0x51')]===0x0){return db['UserProfileResource'][_0x62d4('0x4a')]({'name':_0x341bf4[_0x62d4('0x2b')],'resourceId':_0x341bf4['id'],'type':_0x373ca5[_0x62d4('0x2b')],'sectionId':_0x373ca5['id']},{})[_0x62d4('0x26')](function(){return _0x8bf338;});}else{return _0x8bf338;}})['catch'](function(_0x2031f0){logger[_0x62d4('0x29')](_0x62d4('0x52'),_0x2031f0);throw _0x2031f0;});}return _0x8bf338;})[_0x62d4('0x26')](respondWithResult(_0x5ae6a3,0xc9))['catch'](handleError(_0x5ae6a3,null));};exports[_0x62d4('0x25')]=function(_0x5a1c37,_0xfef0c2){if(_0x5a1c37[_0x62d4('0x4b')]['id']){delete _0x5a1c37['body']['id'];}return db[_0x62d4('0x2e')][_0x62d4('0x50')]({'where':{'id':_0x5a1c37[_0x62d4('0x49')]['id']}})[_0x62d4('0x26')](handleEntityNotFound(_0xfef0c2,null))['then'](saveUpdates(_0x5a1c37[_0x62d4('0x4b')],null))[_0x62d4('0x26')](respondWithResult(_0xfef0c2,null))[_0x62d4('0x47')](handleError(_0xfef0c2,null));};exports[_0x62d4('0x27')]=function(_0xb38bab,_0x1038ed){return db['SquareOdbc'][_0x62d4('0x50')]({'where':{'id':_0xb38bab['params']['id']}})[_0x62d4('0x26')](handleEntityNotFound(_0x1038ed,null))[_0x62d4('0x26')](removeEntity(_0x1038ed,null))[_0x62d4('0x47')](handleError(_0x1038ed,null));};exports['test']=function(_0x5ef050,_0x4e72c9,_0x15d0ed){var _0x118cf1;return db[_0x62d4('0x2e')]['find']({'where':{'id':_0x5ef050[_0x62d4('0x49')]['id']},'attributes':['id','dsn']})[_0x62d4('0x26')](handleEntityNotFound(_0x4e72c9,null))['then'](function(_0x2264da){if(_0x2264da){var _0x7267e1=require(_0x62d4('0x53'))();_0x7267e1[_0x62d4('0x54')](_0x2264da['dsn']);_0x7267e1[_0x62d4('0x55')]();return _0x2264da;}})[_0x62d4('0x26')](respondWithResult(_0x4e72c9,null))[_0x62d4('0x47')](handleError(_0x4e72c9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb5d=['../../config/logger','bluebird','path','rimraf','../../config/environment','exports','SquareOdbc','square_odbc','lodash','util'];(function(_0x472f12,_0x4e30cc){var _0x17983b=function(_0x1c10b6){while(--_0x1c10b6){_0x472f12['push'](_0x472f12['shift']());}};_0x17983b(++_0x4e30cc);}(_0xdb5d,0xc6));var _0xddb5=function(_0x5f2166,_0x85289e){_0x5f2166=_0x5f2166-0x0;var _0x157901=_0xdb5d[_0x5f2166];return _0x157901;};'use strict';var _=require(_0xddb5('0x0'));var util=require(_0xddb5('0x1'));var logger=require(_0xddb5('0x2'))('api');var moment=require('moment');var BPromise=require(_0xddb5('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xddb5('0x4'));var rimraf=require(_0xddb5('0x5'));var config=require(_0xddb5('0x6'));var attributes=require('./squareOdbc.attributes');module[_0xddb5('0x7')]=function(_0xdf30ec,_0x26581a){return _0xdf30ec['define'](_0xddb5('0x8'),attributes,{'tableName':_0xddb5('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x306a=['./squareOdbc.attributes','exports','define','SquareOdbc','square_odbc','lodash','../../config/logger','api','bluebird','path','rimraf','../../config/environment'];(function(_0x3d2f68,_0x48f637){var _0x1e6690=function(_0x14b36){while(--_0x14b36){_0x3d2f68['push'](_0x3d2f68['shift']());}};_0x1e6690(++_0x48f637);}(_0x306a,0xd1));var _0xa306=function(_0x3f97a7,_0x4732e9){_0x3f97a7=_0x3f97a7-0x0;var _0x4cead3=_0x306a[_0x3f97a7];return _0x4cead3;};'use strict';var _=require(_0xa306('0x0'));var util=require('util');var logger=require(_0xa306('0x1'))(_0xa306('0x2'));var moment=require('moment');var BPromise=require(_0xa306('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa306('0x4'));var rimraf=require(_0xa306('0x5'));var config=require(_0xa306('0x6'));var attributes=require(_0xa306('0x7'));module[_0xa306('0x8')]=function(_0x59a10a,_0x1476d4){return _0x59a10a[_0xa306('0x9')](_0xa306('0xa'),attributes,{'tableName':_0xa306('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb12c=['rpc','http','request','then','SquareOdbc,\x20%s,\x20%s','request\x20sent','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ShowSquareOdbc','SquareOdbc','raw','options','where','attributes','include','map','model','info','lodash','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x34c3cf,_0x32b660){var _0x245f61=function(_0x5add0c){while(--_0x5add0c){_0x34c3cf['push'](_0x34c3cf['shift']());}};_0x245f61(++_0x32b660);}(_0xb12c,0xc6));var _0xcb12=function(_0x728e9f,_0x1d925e){_0x728e9f=_0x728e9f-0x0;var _0x308a=_0xb12c[_0x728e9f];return _0x308a;};'use strict';var _=require(_0xcb12('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xcb12('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcb12('0x2'));var db=require(_0xcb12('0x3'))['db'];var utils=require(_0xcb12('0x4'));var logger=require('../../config/logger')(_0xcb12('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xcb12('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x1dd0d2,_0x5e06f7,_0x252235){return new BPromise(function(_0x16cb3c,_0x4d271a){return client[_0xcb12('0x7')](_0x1dd0d2,_0x252235)[_0xcb12('0x8')](function(_0x2b3d67){logger['info'](_0xcb12('0x9'),_0x5e06f7,_0xcb12('0xa'));logger[_0xcb12('0xb')](_0xcb12('0xc'),_0x5e06f7,'request\x20sent',JSON[_0xcb12('0xd')](_0x2b3d67));if(_0x2b3d67[_0xcb12('0xe')]){if(_0x2b3d67[_0xcb12('0xe')][_0xcb12('0xf')]===0x1f4){logger['error'](_0xcb12('0x9'),_0x5e06f7,_0x2b3d67['error']['message']);return _0x4d271a(_0x2b3d67[_0xcb12('0xe')][_0xcb12('0x10')]);}logger['error'](_0xcb12('0x9'),_0x5e06f7,_0x2b3d67[_0xcb12('0xe')][_0xcb12('0x10')]);return _0x16cb3c(_0x2b3d67[_0xcb12('0xe')][_0xcb12('0x10')]);}else{logger['info'](_0xcb12('0x9'),_0x5e06f7,'request\x20sent');_0x16cb3c(_0x2b3d67[_0xcb12('0x11')][_0xcb12('0x10')]);}})[_0xcb12('0x12')](function(_0x485e9d){logger['error'](_0xcb12('0x9'),_0x5e06f7,_0x485e9d);_0x4d271a(_0x485e9d);});});}exports[_0xcb12('0x13')]=function(_0x25cb7c){var _0x3fb2f4=this;return new Promise(function(_0x2cc125,_0x4f935f){return db[_0xcb12('0x14')]['find']({'raw':_0x25cb7c['options']?_0x25cb7c['options'][_0xcb12('0x15')]===undefined?!![]:![]:!![],'where':_0x25cb7c[_0xcb12('0x16')]?_0x25cb7c[_0xcb12('0x16')][_0xcb12('0x17')]||null:null,'attributes':_0x25cb7c[_0xcb12('0x16')]?_0x25cb7c[_0xcb12('0x16')][_0xcb12('0x18')]||null:null,'include':_0x25cb7c[_0xcb12('0x16')]?_0x25cb7c[_0xcb12('0x16')][_0xcb12('0x19')]?_[_0xcb12('0x1a')](_0x25cb7c[_0xcb12('0x16')][_0xcb12('0x19')],function(_0x52aaaf){return{'model':db[_0x52aaaf[_0xcb12('0x1b')]],'as':_0x52aaaf['as'],'attributes':_0x52aaaf[_0xcb12('0x18')],'include':_0x52aaaf[_0xcb12('0x19')]?_['map'](_0x52aaaf[_0xcb12('0x19')],function(_0x2b8d69){return{'model':db[_0x2b8d69[_0xcb12('0x1b')]],'as':_0x2b8d69['as'],'attributes':_0x2b8d69['attributes'],'include':_0x2b8d69[_0xcb12('0x19')]?_['map'](_0x2b8d69[_0xcb12('0x19')],function(_0x297307){return{'model':db[_0x297307[_0xcb12('0x1b')]],'as':_0x297307['as'],'attributes':_0x297307['attributes']};}):[]};}):[]};}):[]:[]})[_0xcb12('0x8')](function(_0x1984e2){logger[_0xcb12('0x1c')]('ShowSquareOdbc',_0x25cb7c);logger[_0xcb12('0xb')](_0xcb12('0x13'),_0x25cb7c,JSON['stringify'](_0x1984e2));_0x2cc125(_0x1984e2);})[_0xcb12('0x12')](function(_0x35777){logger[_0xcb12('0xe')](_0xcb12('0x13'),_0x35777['message'],_0x25cb7c);_0x4f935f(_0x3fb2f4['error'](0x1f4,_0x35777[_0xcb12('0x10')]));});});};
\ No newline at end of file
+var _0xd2db=['message','result','catch','ShowSquareOdbc','SquareOdbc','find','options','where','attributes','include','model','info','stringify','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','SquareOdbc,\x20%s,\x20%s','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x46082a,_0x2bf919){var _0x5399af=function(_0x2f493e){while(--_0x2f493e){_0x46082a['push'](_0x46082a['shift']());}};_0x5399af(++_0x2bf919);}(_0xd2db,0x115));var _0xbd2d=function(_0x5a9e0a,_0x44a043){_0x5a9e0a=_0x5a9e0a-0x0;var _0x9feb02=_0xd2db[_0x5a9e0a];return _0x9feb02;};'use strict';var _=require(_0xbd2d('0x0'));var util=require(_0xbd2d('0x1'));var moment=require(_0xbd2d('0x2'));var BPromise=require(_0xbd2d('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbd2d('0x4'))['db'];var utils=require(_0xbd2d('0x5'));var logger=require(_0xbd2d('0x6'))(_0xbd2d('0x7'));var config=require(_0xbd2d('0x8'));var jayson=require(_0xbd2d('0x9'));var client=jayson[_0xbd2d('0xa')][_0xbd2d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4baac5,_0x26f2c1,_0x5248b3){return new BPromise(function(_0x13705c,_0x42db88){return client[_0xbd2d('0xc')](_0x4baac5,_0x5248b3)[_0xbd2d('0xd')](function(_0x256cd6){logger['info'](_0xbd2d('0xe'),_0x26f2c1,'request\x20sent');logger[_0xbd2d('0xf')](_0xbd2d('0x10'),_0x26f2c1,_0xbd2d('0x11'),JSON['stringify'](_0x256cd6));if(_0x256cd6[_0xbd2d('0x12')]){if(_0x256cd6[_0xbd2d('0x12')][_0xbd2d('0x13')]===0x1f4){logger[_0xbd2d('0x12')]('SquareOdbc,\x20%s,\x20%s',_0x26f2c1,_0x256cd6[_0xbd2d('0x12')][_0xbd2d('0x14')]);return _0x42db88(_0x256cd6[_0xbd2d('0x12')][_0xbd2d('0x14')]);}logger[_0xbd2d('0x12')]('SquareOdbc,\x20%s,\x20%s',_0x26f2c1,_0x256cd6[_0xbd2d('0x12')][_0xbd2d('0x14')]);return _0x13705c(_0x256cd6[_0xbd2d('0x12')][_0xbd2d('0x14')]);}else{logger['info'](_0xbd2d('0xe'),_0x26f2c1,_0xbd2d('0x11'));_0x13705c(_0x256cd6[_0xbd2d('0x15')][_0xbd2d('0x14')]);}})[_0xbd2d('0x16')](function(_0x48c79f){logger[_0xbd2d('0x12')](_0xbd2d('0xe'),_0x26f2c1,_0x48c79f);_0x42db88(_0x48c79f);});});}exports[_0xbd2d('0x17')]=function(_0x3badb4){var _0xdc993=this;return new Promise(function(_0x5c938e,_0x3439f3){return db[_0xbd2d('0x18')][_0xbd2d('0x19')]({'raw':_0x3badb4[_0xbd2d('0x1a')]?_0x3badb4['options']['raw']===undefined?!![]:![]:!![],'where':_0x3badb4['options']?_0x3badb4['options'][_0xbd2d('0x1b')]||null:null,'attributes':_0x3badb4['options']?_0x3badb4[_0xbd2d('0x1a')][_0xbd2d('0x1c')]||null:null,'include':_0x3badb4[_0xbd2d('0x1a')]?_0x3badb4[_0xbd2d('0x1a')][_0xbd2d('0x1d')]?_['map'](_0x3badb4['options'][_0xbd2d('0x1d')],function(_0x5a89f1){return{'model':db[_0x5a89f1[_0xbd2d('0x1e')]],'as':_0x5a89f1['as'],'attributes':_0x5a89f1[_0xbd2d('0x1c')],'include':_0x5a89f1['include']?_['map'](_0x5a89f1[_0xbd2d('0x1d')],function(_0x256aad){return{'model':db[_0x256aad[_0xbd2d('0x1e')]],'as':_0x256aad['as'],'attributes':_0x256aad['attributes'],'include':_0x256aad[_0xbd2d('0x1d')]?_['map'](_0x256aad['include'],function(_0x6be24e){return{'model':db[_0x6be24e[_0xbd2d('0x1e')]],'as':_0x6be24e['as'],'attributes':_0x6be24e[_0xbd2d('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5f2435){logger[_0xbd2d('0x1f')](_0xbd2d('0x17'),_0x3badb4);logger[_0xbd2d('0xf')](_0xbd2d('0x17'),_0x3badb4,JSON[_0xbd2d('0x20')](_0x5f2435));_0x5c938e(_0x5f2435);})['catch'](function(_0x2fcfa6){logger[_0xbd2d('0x12')](_0xbd2d('0x17'),_0x2fcfa6[_0xbd2d('0x14')],_0x3badb4);_0x3439f3(_0xdc993[_0xbd2d('0x12')](0x1f4,_0x2fcfa6[_0xbd2d('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7d2=['/:id/users','addUsers','put','update','delete','exports','multer','util','path','express','Router','../../config/environment','./squareProject.controller','get','isAuthenticated','/:id','show','getUsers','post'];(function(_0x6757e7,_0x37a8db){var _0x4c971f=function(_0x1d1988){while(--_0x1d1988){_0x6757e7['push'](_0x6757e7['shift']());}};_0x4c971f(++_0x37a8db);}(_0xf7d2,0x149));var _0x2f7d=function(_0x49ed67,_0x290989){_0x49ed67=_0x49ed67-0x0;var _0x1523d5=_0xf7d2[_0x49ed67];return _0x1523d5;};'use strict';var multer=require(_0x2f7d('0x0'));var util=require(_0x2f7d('0x1'));var path=require(_0x2f7d('0x2'));var timeout=require('connect-timeout');var express=require(_0x2f7d('0x3'));var router=express[_0x2f7d('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x2f7d('0x5'));var controller=require(_0x2f7d('0x6'));router[_0x2f7d('0x7')]('/',auth[_0x2f7d('0x8')](),controller['index']);router[_0x2f7d('0x7')](_0x2f7d('0x9'),auth[_0x2f7d('0x8')](),controller[_0x2f7d('0xa')]);router[_0x2f7d('0x7')]('/:id/users',auth['isAuthenticated'](),controller[_0x2f7d('0xb')]);router[_0x2f7d('0xc')]('/',auth[_0x2f7d('0x8')](),controller['create']);router[_0x2f7d('0xc')](_0x2f7d('0xd'),auth[_0x2f7d('0x8')](),controller[_0x2f7d('0xe')]);router[_0x2f7d('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x2f7d('0x10')]);router[_0x2f7d('0x11')](_0x2f7d('0x9'),auth['isAuthenticated'](),controller['destroy']);router[_0x2f7d('0x11')](_0x2f7d('0xd'),auth[_0x2f7d('0x8')](),controller['removeUsers']);module[_0x2f7d('0x12')]=router;
\ No newline at end of file
+var _0x5b12=['../../components/auth/service','../../config/environment','isAuthenticated','/:id','show','get','/:id/users','getUsers','post','create','addUsers','put','update','delete','destroy','exports','multer','util','path','express','fs-extra'];(function(_0x102ff9,_0x907658){var _0x24fa97=function(_0x3622ff){while(--_0x3622ff){_0x102ff9['push'](_0x102ff9['shift']());}};_0x24fa97(++_0x907658);}(_0x5b12,0xa3));var _0x25b1=function(_0x127685,_0x30a406){_0x127685=_0x127685-0x0;var _0x19e2a3=_0x5b12[_0x127685];return _0x19e2a3;};'use strict';var multer=require(_0x25b1('0x0'));var util=require(_0x25b1('0x1'));var path=require(_0x25b1('0x2'));var timeout=require('connect-timeout');var express=require(_0x25b1('0x3'));var router=express['Router']();var fs_extra=require(_0x25b1('0x4'));var auth=require(_0x25b1('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x25b1('0x6'));var controller=require('./squareProject.controller');router['get']('/',auth[_0x25b1('0x7')](),controller['index']);router['get'](_0x25b1('0x8'),auth[_0x25b1('0x7')](),controller[_0x25b1('0x9')]);router[_0x25b1('0xa')](_0x25b1('0xb'),auth[_0x25b1('0x7')](),controller[_0x25b1('0xc')]);router[_0x25b1('0xd')]('/',auth['isAuthenticated'](),controller[_0x25b1('0xe')]);router[_0x25b1('0xd')](_0x25b1('0xb'),auth[_0x25b1('0x7')](),controller[_0x25b1('0xf')]);router[_0x25b1('0x10')](_0x25b1('0x8'),auth[_0x25b1('0x7')](),controller[_0x25b1('0x11')]);router[_0x25b1('0x12')](_0x25b1('0x8'),auth[_0x25b1('0x7')](),controller[_0x25b1('0x13')]);router[_0x25b1('0x12')](_0x25b1('0xb'),auth[_0x25b1('0x7')](),controller['removeUsers']);module[_0x25b1('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f04=['getDataValue','utf8','BLOB','production','DATE','exports','STRING','name','TEXT','long','preproduction'];(function(_0x37e42e,_0x297151){var _0x5238df=function(_0x239730){while(--_0x239730){_0x37e42e['push'](_0x37e42e['shift']());}};_0x5238df(++_0x297151);}(_0x0f04,0x1de));var _0x40f0=function(_0x536f67,_0x10468a){_0x536f67=_0x536f67-0x0;var _0x553a6d=_0x0f04[_0x536f67];return _0x553a6d;};'use strict';var Sequelize=require('sequelize');module[_0x40f0('0x0')]={'name':{'type':Sequelize[_0x40f0('0x1')],'unique':_0x40f0('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0x40f0('0x1')]},'notes':{'type':Sequelize[_0x40f0('0x3')]},'preproduction':{'type':Sequelize['BLOB'](_0x40f0('0x4')),'get':function(){if(this['getDataValue'](_0x40f0('0x5'))){return this[_0x40f0('0x6')](_0x40f0('0x5'))['toString'](_0x40f0('0x7'));}}},'production':{'type':Sequelize[_0x40f0('0x8')](_0x40f0('0x4')),'get':function(){if(this['getDataValue']('production')){return this[_0x40f0('0x6')](_0x40f0('0x9'))['toString'](_0x40f0('0x7'));}}},'savedAt':{'type':Sequelize[_0x40f0('0xa')]},'publishedAt':{'type':Sequelize[_0x40f0('0xa')]}};
\ No newline at end of file
+var _0x3ec5=['production','DATE','exports','name','STRING','TEXT','long','getDataValue','preproduction','toString','utf8','BLOB'];(function(_0x142197,_0x81286c){var _0x2cc6a2=function(_0xf5f3ac){while(--_0xf5f3ac){_0x142197['push'](_0x142197['shift']());}};_0x2cc6a2(++_0x81286c);}(_0x3ec5,0x176));var _0x53ec=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x3ec5[_0x1facfa];return _0x9ec701;};'use strict';var Sequelize=require('sequelize');module[_0x53ec('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x53ec('0x1'),'allowNull':![]},'description':{'type':Sequelize[_0x53ec('0x2')]},'notes':{'type':Sequelize[_0x53ec('0x3')]},'preproduction':{'type':Sequelize['BLOB'](_0x53ec('0x4')),'get':function(){if(this[_0x53ec('0x5')](_0x53ec('0x6'))){return this['getDataValue'](_0x53ec('0x6'))[_0x53ec('0x7')](_0x53ec('0x8'));}}},'production':{'type':Sequelize[_0x53ec('0x9')](_0x53ec('0x4')),'get':function(){if(this[_0x53ec('0x5')](_0x53ec('0xa'))){return this['getDataValue'](_0x53ec('0xa'))[_0x53ec('0x7')]('utf8');}}},'savedAt':{'type':Sequelize[_0x53ec('0xb')]},'publishedAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x260e=['Content-Range','json','apply','reject','save','update','then','destroy','get','SquareProjects','UserProfileResource','stack','name','send','index','SquareProject','rawAttributes','fieldName','type','key','query','keys','filters','attributes','intersection','model','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','ids','isArray','emit','userSquareProject:remove','getUsers','findOne','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','defaults','redis','./squareProject.socket','register','sendStatus','status','end','offset','limit','undefined','count','set'];(function(_0x163bf5,_0x26f34a){var _0x41c149=function(_0x2c56fe){while(--_0x2c56fe){_0x163bf5['push'](_0x163bf5['shift']());}};_0x41c149(++_0x26f34a);}(_0x260e,0x9b));var _0xe260=function(_0x6d27b2,_0x116bba){_0x6d27b2=_0x6d27b2-0x0;var _0x519db1=_0x260e[_0x6d27b2];return _0x519db1;};'use strict';var emlformat=require(_0xe260('0x0'));var rimraf=require(_0xe260('0x1'));var zipdir=require(_0xe260('0x2'));var jsonpatch=require(_0xe260('0x3'));var rp=require('request-promise');var moment=require(_0xe260('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe260('0x5'));var util=require(_0xe260('0x6'));var path=require(_0xe260('0x7'));var sox=require(_0xe260('0x8'));var csv=require(_0xe260('0x9'));var ejs=require(_0xe260('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe260('0xb'));var squel=require(_0xe260('0xc'));var crypto=require(_0xe260('0xd'));var jsforce=require(_0xe260('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xe260('0x9'));var querystring=require(_0xe260('0xf'));var Papa=require(_0xe260('0x10'));var Redis=require(_0xe260('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe260('0x12'));var logger=require(_0xe260('0x13'))(_0xe260('0x14'));var utils=require(_0xe260('0x15'));var config=require(_0xe260('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0xe260('0x17')](config[_0xe260('0x18')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xe260('0x18')]));require(_0xe260('0x19'))[_0xe260('0x1a')](socket);function respondWithStatusCode(_0x40d173,_0x1f2cba){_0x1f2cba=_0x1f2cba||0xcc;return function(_0x25bcc3){if(_0x25bcc3){return _0x40d173[_0xe260('0x1b')](_0x1f2cba);}return _0x40d173[_0xe260('0x1c')](_0x1f2cba)[_0xe260('0x1d')]();};}function respondWithResult(_0x53bd53,_0x1d4689){_0x1d4689=_0x1d4689||0xc8;return function(_0x156f06){if(_0x156f06){return _0x53bd53[_0xe260('0x1c')](_0x1d4689)['json'](_0x156f06);}};}function respondWithFilteredResult(_0x1d3159,_0x457613){return function(_0x306672){if(_0x306672){var _0x3c46a6=typeof _0x457613[_0xe260('0x1e')]==='undefined'&&typeof _0x457613[_0xe260('0x1f')]===_0xe260('0x20');var _0x442000=_0x306672[_0xe260('0x21')];var _0x1deeec=_0x3c46a6?0x0:_0x457613[_0xe260('0x1e')];var _0xe88e6c=_0x3c46a6?_0x306672['count']:_0x457613[_0xe260('0x1e')]+_0x457613[_0xe260('0x1f')];var _0x271a35;if(_0xe88e6c>=_0x442000){_0xe88e6c=_0x442000;_0x271a35=0xc8;}else{_0x271a35=0xce;}_0x1d3159[_0xe260('0x1c')](_0x271a35);return _0x1d3159[_0xe260('0x22')](_0xe260('0x23'),_0x1deeec+'-'+_0xe88e6c+'/'+_0x442000)[_0xe260('0x24')](_0x306672);}return null;};}function patchUpdates(_0x2003d4){return function(_0x360a0c){try{jsonpatch[_0xe260('0x25')](_0x360a0c,_0x2003d4,!![]);}catch(_0x31c133){return BPromise[_0xe260('0x26')](_0x31c133);}return _0x360a0c[_0xe260('0x27')]();};}function saveUpdates(_0x48f173,_0x445631){return function(_0x1c51bb){if(_0x1c51bb){return _0x1c51bb[_0xe260('0x28')](_0x48f173)[_0xe260('0x29')](function(_0x3ac6a2){return _0x3ac6a2;});}return null;};}function removeEntity(_0x39a2f6,_0x3385f9){return function(_0x4e23ce){if(_0x4e23ce){return _0x4e23ce[_0xe260('0x2a')]()[_0xe260('0x29')](function(){var _0x25c67f=_0x4e23ce[_0xe260('0x2b')]({'plain':!![]});var _0x91b2ed=_0xe260('0x2c');return db[_0xe260('0x2d')][_0xe260('0x2a')]({'where':{'type':_0x91b2ed,'resourceId':_0x25c67f['id']}})[_0xe260('0x29')](function(){return _0x4e23ce;});})[_0xe260('0x29')](function(){_0x39a2f6[_0xe260('0x1c')](0xcc)[_0xe260('0x1d')]();});}};}function handleEntityNotFound(_0x92e89b,_0x2baff3){return function(_0x1156f0){if(!_0x1156f0){_0x92e89b[_0xe260('0x1b')](0x194);}return _0x1156f0;};}function handleError(_0x298f3d,_0x58b9e7){_0x58b9e7=_0x58b9e7||0x1f4;return function(_0x5c1dc5){logger['error'](_0x5c1dc5[_0xe260('0x2e')]);if(_0x5c1dc5[_0xe260('0x2f')]){delete _0x5c1dc5[_0xe260('0x2f')];}_0x298f3d[_0xe260('0x1c')](_0x58b9e7)[_0xe260('0x30')](_0x5c1dc5);};}exports[_0xe260('0x31')]=function(_0x116f6e,_0x34788a){var _0x354305={},_0x504ebc={},_0x6aa3e8={'count':0x0,'rows':[]};var _0x24f20d=_['map'](db[_0xe260('0x32')][_0xe260('0x33')],function(_0x1c59de){return{'name':_0x1c59de[_0xe260('0x34')],'type':_0x1c59de[_0xe260('0x35')][_0xe260('0x36')]};});_0x504ebc['model']=_['map'](_0x24f20d,_0xe260('0x2f'));_0x504ebc[_0xe260('0x37')]=_[_0xe260('0x38')](_0x116f6e[_0xe260('0x37')]);_0x504ebc[_0xe260('0x39')]=_['intersection'](_0x504ebc['model'],_0x504ebc[_0xe260('0x37')]);_0x354305[_0xe260('0x3a')]=_[_0xe260('0x3b')](_0x504ebc[_0xe260('0x3c')],qs[_0xe260('0x3d')](_0x116f6e['query']['fields']));_0x354305[_0xe260('0x3a')]=_0x354305[_0xe260('0x3a')]['length']?_0x354305['attributes']:_0x504ebc[_0xe260('0x3c')];if(!_0x116f6e['query']['hasOwnProperty'](_0xe260('0x3e'))){_0x354305['limit']=qs['limit'](_0x116f6e['query'][_0xe260('0x1f')]);_0x354305[_0xe260('0x1e')]=qs[_0xe260('0x1e')](_0x116f6e['query'][_0xe260('0x1e')]);}_0x354305[_0xe260('0x3f')]=qs[_0xe260('0x40')](_0x116f6e[_0xe260('0x37')][_0xe260('0x40')]);_0x354305[_0xe260('0x41')]=qs[_0xe260('0x39')](_[_0xe260('0x42')](_0x116f6e[_0xe260('0x37')],_0x504ebc[_0xe260('0x39')]),_0x24f20d);if(_0x116f6e[_0xe260('0x37')][_0xe260('0x43')]){_0x354305[_0xe260('0x41')]=_[_0xe260('0x44')](_0x354305[_0xe260('0x41')],{'$or':_['map'](_0x24f20d,function(_0x1d66bb){if(_0x1d66bb[_0xe260('0x35')]!==_0xe260('0x45')){var _0x53780b={};_0x53780b[_0x1d66bb[_0xe260('0x2f')]]={'$like':'%'+_0x116f6e[_0xe260('0x37')][_0xe260('0x43')]+'%'};return _0x53780b;}})});}_0x354305=_[_0xe260('0x44')]({},_0x354305,_0x116f6e[_0xe260('0x46')]);var _0x29e18e={'where':_0x354305[_0xe260('0x41')]};return db[_0xe260('0x32')][_0xe260('0x21')](_0x29e18e)[_0xe260('0x29')](function(_0xcd596a){_0x6aa3e8[_0xe260('0x21')]=_0xcd596a;if(_0x116f6e[_0xe260('0x37')][_0xe260('0x47')]){_0x354305['include']=[{'all':!![]}];}return db['SquareProject'][_0xe260('0x48')](_0x354305);})[_0xe260('0x29')](function(_0x394988){_0x6aa3e8[_0xe260('0x49')]=_0x394988;return _0x6aa3e8;})[_0xe260('0x29')](respondWithFilteredResult(_0x34788a,_0x354305))[_0xe260('0x4a')](handleError(_0x34788a,null));};exports[_0xe260('0x4b')]=function(_0xcaaac2,_0x89f0cb){var _0xd2ef7f={'raw':![],'where':{'id':_0xcaaac2[_0xe260('0x4c')]['id']}},_0x5d4e1c={};_0x5d4e1c[_0xe260('0x3c')]=_[_0xe260('0x38')](db[_0xe260('0x32')][_0xe260('0x33')]);_0x5d4e1c['query']=_[_0xe260('0x38')](_0xcaaac2[_0xe260('0x37')]);_0x5d4e1c[_0xe260('0x39')]=_[_0xe260('0x3b')](_0x5d4e1c[_0xe260('0x3c')],_0x5d4e1c[_0xe260('0x37')]);_0xd2ef7f['attributes']=_[_0xe260('0x3b')](_0x5d4e1c[_0xe260('0x3c')],qs[_0xe260('0x3d')](_0xcaaac2[_0xe260('0x37')][_0xe260('0x3d')]));_0xd2ef7f[_0xe260('0x3a')]=_0xd2ef7f[_0xe260('0x3a')][_0xe260('0x4d')]?_0xd2ef7f[_0xe260('0x3a')]:_0x5d4e1c[_0xe260('0x3c')];if(_0xcaaac2['query'][_0xe260('0x47')]){_0xd2ef7f[_0xe260('0x4e')]=[{'all':!![]}];}_0xd2ef7f=_[_0xe260('0x44')]({},_0xd2ef7f,_0xcaaac2[_0xe260('0x46')]);return db[_0xe260('0x32')][_0xe260('0x4f')](_0xd2ef7f)[_0xe260('0x29')](handleEntityNotFound(_0x89f0cb,null))[_0xe260('0x29')](respondWithResult(_0x89f0cb,null))[_0xe260('0x4a')](handleError(_0x89f0cb,null));};exports[_0xe260('0x50')]=function(_0x46f8a6,_0x10add7){return db['SquareProject'][_0xe260('0x50')](_0x46f8a6[_0xe260('0x51')],{})[_0xe260('0x29')](function(_0x1070a4){var _0x489eb9=_0x46f8a6[_0xe260('0x52')][_0xe260('0x2b')]({'plain':!![]});if(!_0x489eb9)throw new Error(_0xe260('0x53'));if(_0x489eb9['role']==='user'){var _0x1193f6=_0x1070a4[_0xe260('0x2b')]({'plain':!![]});var _0x57e667=_0xe260('0x2c');return db[_0xe260('0x54')][_0xe260('0x4f')]({'where':{'name':_0x57e667,'userProfileId':_0x489eb9[_0xe260('0x55')]},'raw':!![]})['then'](function(_0x2a45bb){if(_0x2a45bb&&_0x2a45bb[_0xe260('0x56')]===0x0){return db[_0xe260('0x2d')][_0xe260('0x50')]({'name':_0x1193f6[_0xe260('0x2f')],'resourceId':_0x1193f6['id'],'type':_0x2a45bb['name'],'sectionId':_0x2a45bb['id']},{})[_0xe260('0x29')](function(){return _0x1070a4;});}else{return _0x1070a4;}})[_0xe260('0x4a')](function(_0x302d4a){logger[_0xe260('0x57')](_0xe260('0x58'),_0x302d4a);throw _0x302d4a;});}return _0x1070a4;})['then'](respondWithResult(_0x10add7,0xc9))[_0xe260('0x4a')](handleError(_0x10add7,null));};exports['update']=function(_0x270f5b,_0x207952){if(_0x270f5b[_0xe260('0x51')]['id']){delete _0x270f5b[_0xe260('0x51')]['id'];}return db['SquareProject'][_0xe260('0x4f')]({'where':{'id':_0x270f5b[_0xe260('0x4c')]['id']}})[_0xe260('0x29')](handleEntityNotFound(_0x207952,null))[_0xe260('0x29')](saveUpdates(_0x270f5b[_0xe260('0x51')],null))['then'](respondWithResult(_0x207952,null))[_0xe260('0x4a')](handleError(_0x207952,null));};exports[_0xe260('0x2a')]=function(_0x77694f,_0x510650){return db[_0xe260('0x32')][_0xe260('0x4f')]({'where':{'id':_0x77694f['params']['id']}})[_0xe260('0x29')](handleEntityNotFound(_0x510650,null))[_0xe260('0x29')](removeEntity(_0x510650,null))[_0xe260('0x4a')](handleError(_0x510650,null));};exports['addUsers']=function(_0x34c48c,_0x49a4f6,_0x398b5b){return db[_0xe260('0x32')][_0xe260('0x4f')]({'where':{'id':_0x34c48c[_0xe260('0x4c')]['id']}})[_0xe260('0x29')](handleEntityNotFound(_0x49a4f6,null))[_0xe260('0x29')](function(_0x4b97ea){if(_0x4b97ea){return _0x4b97ea['addUsers'](_0x34c48c[_0xe260('0x51')][_0xe260('0x59')],_['omit'](_0x34c48c[_0xe260('0x51')],[_0xe260('0x59'),'id'])||{});}})['then'](respondWithResult(_0x49a4f6,null))['catch'](handleError(_0x49a4f6,null));};exports['removeUsers']=function(_0x4ffe0a,_0x971bf6,_0x547051){return db['SquareProject'][_0xe260('0x4f')]({'where':{'id':_0x4ffe0a[_0xe260('0x4c')]['id']}})[_0xe260('0x29')](handleEntityNotFound(_0x971bf6,null))['then'](function(_0x354479){if(_0x354479){return _0x354479['removeUsers'](_0x4ffe0a[_0xe260('0x37')][_0xe260('0x59')])[_0xe260('0x29')](function(){if(_[_0xe260('0x5a')](_0x4ffe0a[_0xe260('0x37')][_0xe260('0x59')])){for(var _0x5118a4=0x0;_0x5118a4<_0x4ffe0a[_0xe260('0x37')][_0xe260('0x59')][_0xe260('0x4d')];_0x5118a4+=0x1){socket[_0xe260('0x5b')](_0xe260('0x5c'),{'UserId':Number(_0x4ffe0a[_0xe260('0x37')][_0xe260('0x59')][_0x5118a4]),'SquareProjectId':Number(_0x4ffe0a[_0xe260('0x4c')]['id'])});}}else{socket[_0xe260('0x5b')](_0xe260('0x5c'),{'UserId':Number(_0x4ffe0a[_0xe260('0x37')]['ids']),'SquareProjectId':Number(_0x4ffe0a[_0xe260('0x4c')]['id'])});}});}})['then'](respondWithStatusCode(_0x971bf6,null))[_0xe260('0x4a')](handleError(_0x971bf6,null));};exports[_0xe260('0x5d')]=function(_0x2b8603,_0x18b02d,_0x261b00){var _0x51171b={};var _0x10a887={};var _0xb287ab;var _0x590260;return db[_0xe260('0x32')][_0xe260('0x5e')]({'where':{'id':_0x2b8603[_0xe260('0x4c')]['id']}})[_0xe260('0x29')](handleEntityNotFound(_0x18b02d,null))[_0xe260('0x29')](function(_0x3056f4){if(_0x3056f4){_0xb287ab=_0x3056f4;_0x10a887[_0xe260('0x3c')]=_[_0xe260('0x38')](db['User'][_0xe260('0x33')]);_0x10a887[_0xe260('0x37')]=_[_0xe260('0x38')](_0x2b8603[_0xe260('0x37')]);_0x10a887[_0xe260('0x39')]=_[_0xe260('0x3b')](_0x10a887[_0xe260('0x3c')],_0x10a887[_0xe260('0x37')]);_0x51171b[_0xe260('0x3a')]=_[_0xe260('0x3b')](_0x10a887[_0xe260('0x3c')],qs[_0xe260('0x3d')](_0x2b8603['query'][_0xe260('0x3d')]));_0x51171b[_0xe260('0x3a')]=_0x51171b[_0xe260('0x3a')][_0xe260('0x4d')]?_0x51171b[_0xe260('0x3a')]:_0x10a887[_0xe260('0x3c')];_0x51171b[_0xe260('0x3f')]=qs[_0xe260('0x40')](_0x2b8603[_0xe260('0x37')][_0xe260('0x40')]);_0x51171b[_0xe260('0x41')]=qs['filters'](_['pick'](_0x2b8603[_0xe260('0x37')],_0x10a887['filters']));if(_0x2b8603[_0xe260('0x37')][_0xe260('0x43')]){_0x51171b[_0xe260('0x41')]=_[_0xe260('0x44')](_0x51171b[_0xe260('0x41')],{'$or':_['map'](_0x51171b['attributes'],function(_0x442d19){var _0x29b005={};_0x29b005[_0x442d19]={'$like':'%'+_0x2b8603['query']['filter']+'%'};return _0x29b005;})});}_0x51171b=_['merge']({},_0x51171b,_0x2b8603[_0xe260('0x46')]);return _0xb287ab[_0xe260('0x5d')](_0x51171b);}})[_0xe260('0x29')](function(_0x1aef4e){if(_0x1aef4e){_0x590260=_0x1aef4e['length'];if(!_0x2b8603['query']['hasOwnProperty'](_0xe260('0x3e'))){_0x51171b[_0xe260('0x1f')]=qs[_0xe260('0x1f')](_0x2b8603[_0xe260('0x37')][_0xe260('0x1f')]);_0x51171b[_0xe260('0x1e')]=qs[_0xe260('0x1e')](_0x2b8603['query'][_0xe260('0x1e')]);}return _0xb287ab[_0xe260('0x5d')](_0x51171b);}})[_0xe260('0x29')](function(_0xb31a4d){if(_0xb31a4d){return _0xb31a4d?{'count':_0x590260,'rows':_0xb31a4d}:null;}})[_0xe260('0x29')](respondWithResult(_0x18b02d,null))['catch'](handleError(_0x18b02d,null));};
\ No newline at end of file
+var _0x2d7f=['addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','findOne','length','order','getUsers','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','to-csv','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./squareProject.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','get','error','stack','name','send','map','SquareProject','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','rows','show','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','UserProfileResource','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','destroy'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2d7f,0xd3));var _0xf2d7=function(_0x40afdc,_0x1d140a){_0x40afdc=_0x40afdc-0x0;var _0x3662ac=_0x2d7f[_0x40afdc];return _0x3662ac;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf2d7('0x0'));var zipdir=require(_0xf2d7('0x1'));var jsonpatch=require(_0xf2d7('0x2'));var rp=require(_0xf2d7('0x3'));var moment=require(_0xf2d7('0x4'));var BPromise=require(_0xf2d7('0x5'));var Mustache=require(_0xf2d7('0x6'));var util=require(_0xf2d7('0x7'));var path=require(_0xf2d7('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xf2d7('0x9'));var fs=require('fs');var fs_extra=require(_0xf2d7('0xa'));var _=require('lodash');var squel=require(_0xf2d7('0xb'));var crypto=require(_0xf2d7('0xc'));var jsforce=require(_0xf2d7('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xf2d7('0xe'));var querystring=require(_0xf2d7('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xf2d7('0x10'));var qs=require(_0xf2d7('0x11'));var as=require(_0xf2d7('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf2d7('0x13'))(_0xf2d7('0x14'));var utils=require(_0xf2d7('0x15'));var config=require(_0xf2d7('0x16'));var licenseUtil=require(_0xf2d7('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xf2d7('0x18')](config[_0xf2d7('0x19')],{'host':_0xf2d7('0x1a'),'port':0x18eb});var socket=require(_0xf2d7('0x1b'))(new Redis(config[_0xf2d7('0x19')]));require(_0xf2d7('0x1c'))[_0xf2d7('0x1d')](socket);function respondWithStatusCode(_0x18033b,_0xe97cf5){_0xe97cf5=_0xe97cf5||0xcc;return function(_0x165831){if(_0x165831){return _0x18033b[_0xf2d7('0x1e')](_0xe97cf5);}return _0x18033b[_0xf2d7('0x1f')](_0xe97cf5)[_0xf2d7('0x20')]();};}function respondWithResult(_0x1baab2,_0x4f0375){_0x4f0375=_0x4f0375||0xc8;return function(_0x169197){if(_0x169197){return _0x1baab2['status'](_0x4f0375)[_0xf2d7('0x21')](_0x169197);}};}function respondWithFilteredResult(_0x41123f,_0x509f98){return function(_0x1b1fa9){if(_0x1b1fa9){var _0x573278=typeof _0x509f98['offset']===_0xf2d7('0x22')&&typeof _0x509f98[_0xf2d7('0x23')]===_0xf2d7('0x22');var _0x3d1ebe=_0x1b1fa9[_0xf2d7('0x24')];var _0x4de444=_0x573278?0x0:_0x509f98[_0xf2d7('0x25')];var _0x554378=_0x573278?_0x1b1fa9[_0xf2d7('0x24')]:_0x509f98[_0xf2d7('0x25')]+_0x509f98[_0xf2d7('0x23')];var _0x1f1510;if(_0x554378>=_0x3d1ebe){_0x554378=_0x3d1ebe;_0x1f1510=0xc8;}else{_0x1f1510=0xce;}_0x41123f[_0xf2d7('0x1f')](_0x1f1510);return _0x41123f[_0xf2d7('0x26')](_0xf2d7('0x27'),_0x4de444+'-'+_0x554378+'/'+_0x3d1ebe)[_0xf2d7('0x21')](_0x1b1fa9);}return null;};}function patchUpdates(_0xea0680){return function(_0x585bfa){try{jsonpatch[_0xf2d7('0x28')](_0x585bfa,_0xea0680,!![]);}catch(_0x24f266){return BPromise[_0xf2d7('0x29')](_0x24f266);}return _0x585bfa[_0xf2d7('0x2a')]();};}function saveUpdates(_0x26c767,_0x154111){return function(_0x33435e){if(_0x33435e){return _0x33435e[_0xf2d7('0x2b')](_0x26c767)['then'](function(_0x527c82){return _0x527c82;});}return null;};}function removeEntity(_0x5c0406,_0x40ddef){return function(_0x5eea68){if(_0x5eea68){return _0x5eea68['destroy']()[_0xf2d7('0x2c')](function(){var _0x513f1e=_0x5eea68[_0xf2d7('0x2d')]({'plain':!![]});var _0x4e4921='SquareProjects';return db['UserProfileResource']['destroy']({'where':{'type':_0x4e4921,'resourceId':_0x513f1e['id']}})[_0xf2d7('0x2c')](function(){return _0x5eea68;});})[_0xf2d7('0x2c')](function(){_0x5c0406[_0xf2d7('0x1f')](0xcc)[_0xf2d7('0x20')]();});}};}function handleEntityNotFound(_0x3f898e,_0x115d56){return function(_0x256440){if(!_0x256440){_0x3f898e['sendStatus'](0x194);}return _0x256440;};}function handleError(_0x56491b,_0x4f3689){_0x4f3689=_0x4f3689||0x1f4;return function(_0x429563){logger[_0xf2d7('0x2e')](_0x429563[_0xf2d7('0x2f')]);if(_0x429563[_0xf2d7('0x30')]){delete _0x429563[_0xf2d7('0x30')];}_0x56491b[_0xf2d7('0x1f')](_0x4f3689)[_0xf2d7('0x31')](_0x429563);};}exports['index']=function(_0x4cb5db,_0x1bae7c){var _0x56a743={},_0x1e79a3={},_0x5b6527={'count':0x0,'rows':[]};var _0x1868de=_[_0xf2d7('0x32')](db[_0xf2d7('0x33')][_0xf2d7('0x34')],function(_0x199196){return{'name':_0x199196[_0xf2d7('0x35')],'type':_0x199196[_0xf2d7('0x36')][_0xf2d7('0x37')]};});_0x1e79a3[_0xf2d7('0x38')]=_[_0xf2d7('0x32')](_0x1868de,_0xf2d7('0x30'));_0x1e79a3[_0xf2d7('0x39')]=_[_0xf2d7('0x3a')](_0x4cb5db[_0xf2d7('0x39')]);_0x1e79a3[_0xf2d7('0x3b')]=_['intersection'](_0x1e79a3[_0xf2d7('0x38')],_0x1e79a3['query']);_0x56a743['attributes']=_[_0xf2d7('0x3c')](_0x1e79a3[_0xf2d7('0x38')],qs[_0xf2d7('0x3d')](_0x4cb5db['query'][_0xf2d7('0x3d')]));_0x56a743[_0xf2d7('0x3e')]=_0x56a743[_0xf2d7('0x3e')]['length']?_0x56a743[_0xf2d7('0x3e')]:_0x1e79a3[_0xf2d7('0x38')];if(!_0x4cb5db[_0xf2d7('0x39')][_0xf2d7('0x3f')](_0xf2d7('0x40'))){_0x56a743[_0xf2d7('0x23')]=qs[_0xf2d7('0x23')](_0x4cb5db[_0xf2d7('0x39')][_0xf2d7('0x23')]);_0x56a743[_0xf2d7('0x25')]=qs['offset'](_0x4cb5db[_0xf2d7('0x39')][_0xf2d7('0x25')]);}_0x56a743['order']=qs[_0xf2d7('0x41')](_0x4cb5db['query'][_0xf2d7('0x41')]);_0x56a743[_0xf2d7('0x42')]=qs[_0xf2d7('0x3b')](_[_0xf2d7('0x43')](_0x4cb5db[_0xf2d7('0x39')],_0x1e79a3[_0xf2d7('0x3b')]),_0x1868de);if(_0x4cb5db[_0xf2d7('0x39')][_0xf2d7('0x44')]){_0x56a743[_0xf2d7('0x42')]=_[_0xf2d7('0x45')](_0x56a743[_0xf2d7('0x42')],{'$or':_['map'](_0x1868de,function(_0x28b13e){if(_0x28b13e[_0xf2d7('0x36')]!==_0xf2d7('0x46')){var _0x4621e5={};_0x4621e5[_0x28b13e[_0xf2d7('0x30')]]={'$like':'%'+_0x4cb5db[_0xf2d7('0x39')]['filter']+'%'};return _0x4621e5;}})});}_0x56a743=_[_0xf2d7('0x45')]({},_0x56a743,_0x4cb5db[_0xf2d7('0x47')]);var _0x25237d={'where':_0x56a743[_0xf2d7('0x42')]};return db[_0xf2d7('0x33')][_0xf2d7('0x24')](_0x25237d)[_0xf2d7('0x2c')](function(_0xff6c0a){_0x5b6527[_0xf2d7('0x24')]=_0xff6c0a;if(_0x4cb5db['query']['includeAll']){_0x56a743[_0xf2d7('0x48')]=[{'all':!![]}];}return db['SquareProject']['findAll'](_0x56a743);})[_0xf2d7('0x2c')](function(_0x3bee9a){_0x5b6527[_0xf2d7('0x49')]=_0x3bee9a;return _0x5b6527;})[_0xf2d7('0x2c')](respondWithFilteredResult(_0x1bae7c,_0x56a743))['catch'](handleError(_0x1bae7c,null));};exports[_0xf2d7('0x4a')]=function(_0x3011fd,_0x17d267){var _0x18880f={'raw':![],'where':{'id':_0x3011fd['params']['id']}},_0x1095fd={};_0x1095fd[_0xf2d7('0x38')]=_[_0xf2d7('0x3a')](db['SquareProject'][_0xf2d7('0x34')]);_0x1095fd[_0xf2d7('0x39')]=_[_0xf2d7('0x3a')](_0x3011fd['query']);_0x1095fd['filters']=_['intersection'](_0x1095fd[_0xf2d7('0x38')],_0x1095fd[_0xf2d7('0x39')]);_0x18880f[_0xf2d7('0x3e')]=_[_0xf2d7('0x3c')](_0x1095fd[_0xf2d7('0x38')],qs[_0xf2d7('0x3d')](_0x3011fd['query'][_0xf2d7('0x3d')]));_0x18880f['attributes']=_0x18880f['attributes']['length']?_0x18880f[_0xf2d7('0x3e')]:_0x1095fd[_0xf2d7('0x38')];if(_0x3011fd[_0xf2d7('0x39')][_0xf2d7('0x4b')]){_0x18880f['include']=[{'all':!![]}];}_0x18880f=_[_0xf2d7('0x45')]({},_0x18880f,_0x3011fd[_0xf2d7('0x47')]);return db[_0xf2d7('0x33')]['find'](_0x18880f)[_0xf2d7('0x2c')](handleEntityNotFound(_0x17d267,null))['then'](respondWithResult(_0x17d267,null))['catch'](handleError(_0x17d267,null));};exports['create']=function(_0x5f5470,_0x56d552){return db[_0xf2d7('0x33')][_0xf2d7('0x4c')](_0x5f5470[_0xf2d7('0x4d')],{})[_0xf2d7('0x2c')](function(_0x8c175){var _0x4b6841=_0x5f5470[_0xf2d7('0x4e')][_0xf2d7('0x2d')]({'plain':!![]});if(!_0x4b6841)throw new Error(_0xf2d7('0x4f'));if(_0x4b6841[_0xf2d7('0x50')]===_0xf2d7('0x4e')){var _0xf7d398=_0x8c175[_0xf2d7('0x2d')]({'plain':!![]});var _0x576a80='SquareProjects';return db[_0xf2d7('0x51')][_0xf2d7('0x52')]({'where':{'name':_0x576a80,'userProfileId':_0x4b6841[_0xf2d7('0x53')]},'raw':!![]})['then'](function(_0x7e0904){if(_0x7e0904&&_0x7e0904['autoAssociation']===0x0){return db[_0xf2d7('0x54')][_0xf2d7('0x4c')]({'name':_0xf7d398[_0xf2d7('0x30')],'resourceId':_0xf7d398['id'],'type':_0x7e0904[_0xf2d7('0x30')],'sectionId':_0x7e0904['id']},{})[_0xf2d7('0x2c')](function(){return _0x8c175;});}else{return _0x8c175;}})[_0xf2d7('0x55')](function(_0x239416){logger[_0xf2d7('0x2e')](_0xf2d7('0x56'),_0x239416);throw _0x239416;});}return _0x8c175;})[_0xf2d7('0x2c')](respondWithResult(_0x56d552,0xc9))[_0xf2d7('0x55')](handleError(_0x56d552,null));};exports[_0xf2d7('0x2b')]=function(_0x5d47dc,_0x17bb06){if(_0x5d47dc['body']['id']){delete _0x5d47dc[_0xf2d7('0x4d')]['id'];}return db[_0xf2d7('0x33')][_0xf2d7('0x52')]({'where':{'id':_0x5d47dc[_0xf2d7('0x57')]['id']}})['then'](handleEntityNotFound(_0x17bb06,null))[_0xf2d7('0x2c')](saveUpdates(_0x5d47dc['body'],null))[_0xf2d7('0x2c')](respondWithResult(_0x17bb06,null))[_0xf2d7('0x55')](handleError(_0x17bb06,null));};exports[_0xf2d7('0x58')]=function(_0x4df3a1,_0x4fefe2){return db[_0xf2d7('0x33')][_0xf2d7('0x52')]({'where':{'id':_0x4df3a1[_0xf2d7('0x57')]['id']}})['then'](handleEntityNotFound(_0x4fefe2,null))[_0xf2d7('0x2c')](removeEntity(_0x4fefe2,null))['catch'](handleError(_0x4fefe2,null));};exports[_0xf2d7('0x59')]=function(_0x3b2fb0,_0x8ffed6,_0x583274){return db['SquareProject'][_0xf2d7('0x52')]({'where':{'id':_0x3b2fb0['params']['id']}})[_0xf2d7('0x2c')](handleEntityNotFound(_0x8ffed6,null))[_0xf2d7('0x2c')](function(_0x49ddbe){if(_0x49ddbe){return _0x49ddbe['addUsers'](_0x3b2fb0[_0xf2d7('0x4d')][_0xf2d7('0x5a')],_[_0xf2d7('0x5b')](_0x3b2fb0[_0xf2d7('0x4d')],[_0xf2d7('0x5a'),'id'])||{});}})[_0xf2d7('0x2c')](respondWithResult(_0x8ffed6,null))[_0xf2d7('0x55')](handleError(_0x8ffed6,null));};exports[_0xf2d7('0x5c')]=function(_0x15828f,_0x179b29,_0x32b880){return db['SquareProject']['find']({'where':{'id':_0x15828f[_0xf2d7('0x57')]['id']}})['then'](handleEntityNotFound(_0x179b29,null))[_0xf2d7('0x2c')](function(_0x45c19b){if(_0x45c19b){return _0x45c19b[_0xf2d7('0x5c')](_0x15828f[_0xf2d7('0x39')]['ids'])[_0xf2d7('0x2c')](function(){if(_[_0xf2d7('0x5d')](_0x15828f[_0xf2d7('0x39')][_0xf2d7('0x5a')])){for(var _0x509a62=0x0;_0x509a62<_0x15828f['query'][_0xf2d7('0x5a')]['length'];_0x509a62+=0x1){socket[_0xf2d7('0x5e')](_0xf2d7('0x5f'),{'UserId':Number(_0x15828f['query'][_0xf2d7('0x5a')][_0x509a62]),'SquareProjectId':Number(_0x15828f[_0xf2d7('0x57')]['id'])});}}else{socket['emit'](_0xf2d7('0x5f'),{'UserId':Number(_0x15828f[_0xf2d7('0x39')]['ids']),'SquareProjectId':Number(_0x15828f[_0xf2d7('0x57')]['id'])});}});}})[_0xf2d7('0x2c')](respondWithStatusCode(_0x179b29,null))[_0xf2d7('0x55')](handleError(_0x179b29,null));};exports['getUsers']=function(_0x44e5ca,_0x33f028,_0x2a629c){var _0x45705b={};var _0x342c03={};var _0x35dc0b;var _0x243767;return db[_0xf2d7('0x33')][_0xf2d7('0x60')]({'where':{'id':_0x44e5ca[_0xf2d7('0x57')]['id']}})['then'](handleEntityNotFound(_0x33f028,null))[_0xf2d7('0x2c')](function(_0x12662b){if(_0x12662b){_0x35dc0b=_0x12662b;_0x342c03[_0xf2d7('0x38')]=_[_0xf2d7('0x3a')](db['User'][_0xf2d7('0x34')]);_0x342c03['query']=_[_0xf2d7('0x3a')](_0x44e5ca[_0xf2d7('0x39')]);_0x342c03['filters']=_['intersection'](_0x342c03[_0xf2d7('0x38')],_0x342c03['query']);_0x45705b[_0xf2d7('0x3e')]=_[_0xf2d7('0x3c')](_0x342c03[_0xf2d7('0x38')],qs[_0xf2d7('0x3d')](_0x44e5ca[_0xf2d7('0x39')][_0xf2d7('0x3d')]));_0x45705b[_0xf2d7('0x3e')]=_0x45705b[_0xf2d7('0x3e')][_0xf2d7('0x61')]?_0x45705b[_0xf2d7('0x3e')]:_0x342c03[_0xf2d7('0x38')];_0x45705b[_0xf2d7('0x62')]=qs[_0xf2d7('0x41')](_0x44e5ca[_0xf2d7('0x39')][_0xf2d7('0x41')]);_0x45705b[_0xf2d7('0x42')]=qs[_0xf2d7('0x3b')](_[_0xf2d7('0x43')](_0x44e5ca['query'],_0x342c03[_0xf2d7('0x3b')]));if(_0x44e5ca[_0xf2d7('0x39')][_0xf2d7('0x44')]){_0x45705b['where']=_[_0xf2d7('0x45')](_0x45705b[_0xf2d7('0x42')],{'$or':_[_0xf2d7('0x32')](_0x45705b[_0xf2d7('0x3e')],function(_0x4ee58a){var _0x5ada61={};_0x5ada61[_0x4ee58a]={'$like':'%'+_0x44e5ca['query']['filter']+'%'};return _0x5ada61;})});}_0x45705b=_[_0xf2d7('0x45')]({},_0x45705b,_0x44e5ca[_0xf2d7('0x47')]);return _0x35dc0b[_0xf2d7('0x63')](_0x45705b);}})[_0xf2d7('0x2c')](function(_0x35cf48){if(_0x35cf48){_0x243767=_0x35cf48[_0xf2d7('0x61')];if(!_0x44e5ca[_0xf2d7('0x39')][_0xf2d7('0x3f')](_0xf2d7('0x40'))){_0x45705b[_0xf2d7('0x23')]=qs[_0xf2d7('0x23')](_0x44e5ca[_0xf2d7('0x39')][_0xf2d7('0x23')]);_0x45705b[_0xf2d7('0x25')]=qs['offset'](_0x44e5ca[_0xf2d7('0x39')][_0xf2d7('0x25')]);}return _0x35dc0b[_0xf2d7('0x63')](_0x45705b);}})[_0xf2d7('0x2c')](function(_0x5e53d1){if(_0x5e53d1){return _0x5e53d1?{'count':_0x243767,'rows':_0x5e53d1}:null;}})[_0xf2d7('0x2c')](respondWithResult(_0x33f028,null))[_0xf2d7('0x55')](handleError(_0x33f028,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe861=['hasOwnProperty','hook','exports','events','../../mysqldb','SquareProject','save','update','remove','emit'];(function(_0x20714a,_0x7de591){var _0x15e877=function(_0x3f9f8d){while(--_0x3f9f8d){_0x20714a['push'](_0x20714a['shift']());}};_0x15e877(++_0x7de591);}(_0xe861,0x8f));var _0x1e86=function(_0x1d58c8,_0x5d0389){_0x1d58c8=_0x1d58c8-0x0;var _0x46dc6e=_0xe861[_0x1d58c8];return _0x46dc6e;};'use strict';var EventEmitter=require(_0x1e86('0x0'));var SquareProject=require(_0x1e86('0x1'))['db'][_0x1e86('0x2')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x1e86('0x3'),'afterUpdate':_0x1e86('0x4'),'afterDestroy':_0x1e86('0x5')};function emitEvent(_0x1b3157){return function(_0x13d095,_0x45c0bb,_0xc3fcad){SquareProjectEvents[_0x1e86('0x6')](_0x1b3157+':'+_0x13d095['id'],_0x13d095);SquareProjectEvents[_0x1e86('0x6')](_0x1b3157,_0x13d095);_0xc3fcad(null);};}for(var e in events){if(events[_0x1e86('0x7')](e)){var event=events[e];SquareProject[_0x1e86('0x8')](e,emitEvent(event));}}module[_0x1e86('0x9')]=SquareProjectEvents;
\ No newline at end of file
+var _0xaccd=['hasOwnProperty','hook','exports','events','save','update','remove','emit'];(function(_0x14ea2e,_0x1bf218){var _0x558569=function(_0x4fe517){while(--_0x4fe517){_0x14ea2e['push'](_0x14ea2e['shift']());}};_0x558569(++_0x1bf218);}(_0xaccd,0x13b));var _0xdacc=function(_0x2fd5f1,_0x4091da){_0x2fd5f1=_0x2fd5f1-0x0;var _0x50b49e=_0xaccd[_0x2fd5f1];return _0x50b49e;};'use strict';var EventEmitter=require(_0xdacc('0x0'));var SquareProject=require('../../mysqldb')['db']['SquareProject'];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xdacc('0x1'),'afterUpdate':_0xdacc('0x2'),'afterDestroy':_0xdacc('0x3')};function emitEvent(_0x568a8c){return function(_0x1e70ea,_0x83f0fd,_0x58e167){SquareProjectEvents[_0xdacc('0x4')](_0x568a8c+':'+_0x1e70ea['id'],_0x1e70ea);SquareProjectEvents['emit'](_0x568a8c,_0x1e70ea);_0x58e167(null);};}for(var e in events){if(events[_0xdacc('0x5')](e)){var event=events[e];SquareProject[_0xdacc('0x6')](e,emitEvent(event));}}module[_0xdacc('0x7')]=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a77=['SquareProject','square_projects','format','YYYY-MM-DD\x20HH:mm:ss','production','publishedAt','lodash','util','api','request-promise','path','./squareProject.attributes','exports','define'];(function(_0x1f9c4b,_0x3cad26){var _0xf2c727=function(_0x6bd900){while(--_0x6bd900){_0x1f9c4b['push'](_0x1f9c4b['shift']());}};_0xf2c727(++_0x3cad26);}(_0x2a77,0x11e));var _0x72a7=function(_0x20e40d,_0x2a9f0f){_0x20e40d=_0x20e40d-0x0;var _0x558350=_0x2a77[_0x20e40d];return _0x558350;};'use strict';var _=require(_0x72a7('0x0'));var util=require(_0x72a7('0x1'));var logger=require('../../config/logger')(_0x72a7('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x72a7('0x3'));var fs=require('fs');var path=require(_0x72a7('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x72a7('0x5'));module[_0x72a7('0x6')]=function(_0x27da75,_0x14e737){return _0x27da75[_0x72a7('0x7')](_0x72a7('0x8'),attributes,{'tableName':_0x72a7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3b4e09,_0x4d2ca0,_0x501d70){if(_0x3b4e09['changed']('preproduction')){_0x3b4e09['savedAt']=moment()[_0x72a7('0xa')](_0x72a7('0xb'));}if(_0x3b4e09['changed'](_0x72a7('0xc'))){_0x3b4e09[_0x72a7('0xd')]=moment()[_0x72a7('0xa')]('YYYY-MM-DD\x20HH:mm:ss');}_0x501d70(null,_0x3b4e09);}}});};
\ No newline at end of file
+var _0xbc91=['YYYY-MM-DD\x20HH:mm:ss','publishedAt','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./squareProject.attributes','exports','define','SquareProject','square_projects','preproduction','format'];(function(_0x464ee6,_0x424fab){var _0x2ce4c3=function(_0x5c25aa){while(--_0x5c25aa){_0x464ee6['push'](_0x464ee6['shift']());}};_0x2ce4c3(++_0x424fab);}(_0xbc91,0x1dd));var _0x1bc9=function(_0x30b5ef,_0x53a436){_0x30b5ef=_0x30b5ef-0x0;var _0x15325d=_0xbc91[_0x30b5ef];return _0x15325d;};'use strict';var _=require(_0x1bc9('0x0'));var util=require(_0x1bc9('0x1'));var logger=require(_0x1bc9('0x2'))(_0x1bc9('0x3'));var moment=require(_0x1bc9('0x4'));var BPromise=require(_0x1bc9('0x5'));var rp=require(_0x1bc9('0x6'));var fs=require('fs');var path=require(_0x1bc9('0x7'));var rimraf=require(_0x1bc9('0x8'));var config=require(_0x1bc9('0x9'));var attributes=require(_0x1bc9('0xa'));module[_0x1bc9('0xb')]=function(_0x4eacf2,_0x3f7013){return _0x4eacf2[_0x1bc9('0xc')](_0x1bc9('0xd'),attributes,{'tableName':_0x1bc9('0xe'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5f0130,_0x25bfa0,_0x58c105){if(_0x5f0130['changed'](_0x1bc9('0xf'))){_0x5f0130['savedAt']=moment()[_0x1bc9('0x10')](_0x1bc9('0x11'));}if(_0x5f0130['changed']('production')){_0x5f0130[_0x1bc9('0x12')]=moment()[_0x1bc9('0x10')](_0x1bc9('0x11'));}_0x58c105(null,_0x5f0130);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34da=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./squareProject.socket','register','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','SquareProject,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','ShowSquareProject','SquareProject','find','options','raw','attributes','include','map','debug','lodash','bluebird','randomstring','../../mysqldb'];(function(_0x3b2191,_0x13dba7){var _0x2c6233=function(_0x1247fb){while(--_0x1247fb){_0x3b2191['push'](_0x3b2191['shift']());}};_0x2c6233(++_0x13dba7);}(_0x34da,0x19e));var _0xa34d=function(_0x492721,_0x8a7435){_0x492721=_0x492721-0x0;var _0x3c7516=_0x34da[_0x492721];return _0x3c7516;};'use strict';var _=require(_0xa34d('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xa34d('0x1'));var rs=require(_0xa34d('0x2'));var fs=require('fs');var Redis=require('ioredis');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});config[_0xa34d('0xb')]=_[_0xa34d('0xc')](config[_0xa34d('0xb')],{'host':_0xa34d('0xd'),'port':0x18eb});var socket=require(_0xa34d('0xe'))(new Redis(config[_0xa34d('0xb')]));require(_0xa34d('0xf'))[_0xa34d('0x10')](socket);function respondWithRpcPromise(_0x3d66b0,_0x4a8cf5,_0x32a824){return new BPromise(function(_0x1e3e10,_0x43a7e6){return client[_0xa34d('0x11')](_0x3d66b0,_0x32a824)[_0xa34d('0x12')](function(_0x1a2f0f){logger[_0xa34d('0x13')](_0xa34d('0x14'),_0x4a8cf5,_0xa34d('0x15'));logger['debug'](_0xa34d('0x16'),_0x4a8cf5,_0xa34d('0x15'),JSON[_0xa34d('0x17')](_0x1a2f0f));if(_0x1a2f0f['error']){if(_0x1a2f0f['error'][_0xa34d('0x18')]===0x1f4){logger[_0xa34d('0x19')](_0xa34d('0x14'),_0x4a8cf5,_0x1a2f0f[_0xa34d('0x19')]['message']);return _0x43a7e6(_0x1a2f0f['error'][_0xa34d('0x1a')]);}logger[_0xa34d('0x19')]('SquareProject,\x20%s,\x20%s',_0x4a8cf5,_0x1a2f0f[_0xa34d('0x19')][_0xa34d('0x1a')]);return _0x1e3e10(_0x1a2f0f[_0xa34d('0x19')][_0xa34d('0x1a')]);}else{logger[_0xa34d('0x13')]('SquareProject,\x20%s,\x20%s',_0x4a8cf5,_0xa34d('0x15'));_0x1e3e10(_0x1a2f0f[_0xa34d('0x1b')]['message']);}})[_0xa34d('0x1c')](function(_0x5565d5){logger['error'](_0xa34d('0x14'),_0x4a8cf5,_0x5565d5);_0x43a7e6(_0x5565d5);});});}exports[_0xa34d('0x1d')]=function(_0x4edc0c){var _0x4e08f=this;return new Promise(function(_0x250b64,_0x3329c5){return db[_0xa34d('0x1e')][_0xa34d('0x1f')]({'raw':_0x4edc0c[_0xa34d('0x20')]?_0x4edc0c[_0xa34d('0x20')][_0xa34d('0x21')]===undefined?!![]:![]:!![],'where':_0x4edc0c[_0xa34d('0x20')]?_0x4edc0c[_0xa34d('0x20')]['where']||null:null,'attributes':_0x4edc0c['options']?_0x4edc0c['options'][_0xa34d('0x22')]||null:null,'include':_0x4edc0c[_0xa34d('0x20')]?_0x4edc0c[_0xa34d('0x20')][_0xa34d('0x23')]?_['map'](_0x4edc0c[_0xa34d('0x20')][_0xa34d('0x23')],function(_0x39ea23){return{'model':db[_0x39ea23['model']],'as':_0x39ea23['as'],'attributes':_0x39ea23[_0xa34d('0x22')],'include':_0x39ea23[_0xa34d('0x23')]?_[_0xa34d('0x24')](_0x39ea23[_0xa34d('0x23')],function(_0x224978){return{'model':db[_0x224978['model']],'as':_0x224978['as'],'attributes':_0x224978[_0xa34d('0x22')],'include':_0x224978[_0xa34d('0x23')]?_[_0xa34d('0x24')](_0x224978[_0xa34d('0x23')],function(_0x1a06e4){return{'model':db[_0x1a06e4['model']],'as':_0x1a06e4['as'],'attributes':_0x1a06e4[_0xa34d('0x22')]};}):[]};}):[]};}):[]:[]})[_0xa34d('0x12')](function(_0x33195b){logger[_0xa34d('0x13')]('ShowSquareProject',_0x4edc0c);logger[_0xa34d('0x25')]('ShowSquareProject',_0x4edc0c,JSON[_0xa34d('0x17')](_0x33195b));_0x250b64(_0x33195b);})[_0xa34d('0x1c')](function(_0x4c7fd2){logger[_0xa34d('0x19')](_0xa34d('0x1d'),_0x4c7fd2['message'],_0x4edc0c);_0x3329c5(_0x4e08f[_0xa34d('0x19')](0x1f4,_0x4c7fd2[_0xa34d('0x1a')]));});});};
\ No newline at end of file
+var _0x56ee=['result','catch','ShowSquareProject','SquareProject','find','raw','options','attributes','include','map','model','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','socket.io-emitter','redis','register','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','SquareProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x323d87,_0x4ef3f9){var _0x5e8f74=function(_0x185735){while(--_0x185735){_0x323d87['push'](_0x323d87['shift']());}};_0x5e8f74(++_0x4ef3f9);}(_0x56ee,0x1ad));var _0xe56e=function(_0x1ca29f,_0x318ac5){_0x1ca29f=_0x1ca29f-0x0;var _0x576c3b=_0x56ee[_0x1ca29f];return _0x576c3b;};'use strict';var _=require(_0xe56e('0x0'));var util=require(_0xe56e('0x1'));var moment=require(_0xe56e('0x2'));var BPromise=require(_0xe56e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe56e('0x4'));var db=require(_0xe56e('0x5'))['db'];var utils=require(_0xe56e('0x6'));var logger=require(_0xe56e('0x7'))(_0xe56e('0x8'));var config=require(_0xe56e('0x9'));var jayson=require(_0xe56e('0xa'));var client=jayson[_0xe56e('0xb')][_0xe56e('0xc')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xe56e('0xd'))(new Redis(config[_0xe56e('0xe')]));require('./squareProject.socket')[_0xe56e('0xf')](socket);function respondWithRpcPromise(_0x32b212,_0x138bcd,_0x3a45c8){return new BPromise(function(_0x33e425,_0x16c326){return client[_0xe56e('0x10')](_0x32b212,_0x3a45c8)[_0xe56e('0x11')](function(_0x2870dc){logger[_0xe56e('0x12')](_0xe56e('0x13'),_0x138bcd,_0xe56e('0x14'));logger[_0xe56e('0x15')](_0xe56e('0x16'),_0x138bcd,'request\x20sent',JSON[_0xe56e('0x17')](_0x2870dc));if(_0x2870dc[_0xe56e('0x18')]){if(_0x2870dc['error'][_0xe56e('0x19')]===0x1f4){logger[_0xe56e('0x18')]('SquareProject,\x20%s,\x20%s',_0x138bcd,_0x2870dc['error'][_0xe56e('0x1a')]);return _0x16c326(_0x2870dc[_0xe56e('0x18')][_0xe56e('0x1a')]);}logger[_0xe56e('0x18')](_0xe56e('0x13'),_0x138bcd,_0x2870dc[_0xe56e('0x18')]['message']);return _0x33e425(_0x2870dc[_0xe56e('0x18')][_0xe56e('0x1a')]);}else{logger[_0xe56e('0x12')]('SquareProject,\x20%s,\x20%s',_0x138bcd,'request\x20sent');_0x33e425(_0x2870dc[_0xe56e('0x1b')][_0xe56e('0x1a')]);}})[_0xe56e('0x1c')](function(_0x5b7cda){logger['error'](_0xe56e('0x13'),_0x138bcd,_0x5b7cda);_0x16c326(_0x5b7cda);});});}exports[_0xe56e('0x1d')]=function(_0x15869f){var _0x5762c0=this;return new Promise(function(_0x300020,_0x4ac4c9){return db[_0xe56e('0x1e')][_0xe56e('0x1f')]({'raw':_0x15869f['options']?_0x15869f['options'][_0xe56e('0x20')]===undefined?!![]:![]:!![],'where':_0x15869f[_0xe56e('0x21')]?_0x15869f['options']['where']||null:null,'attributes':_0x15869f['options']?_0x15869f[_0xe56e('0x21')][_0xe56e('0x22')]||null:null,'include':_0x15869f[_0xe56e('0x21')]?_0x15869f[_0xe56e('0x21')][_0xe56e('0x23')]?_[_0xe56e('0x24')](_0x15869f[_0xe56e('0x21')][_0xe56e('0x23')],function(_0x1b2bf1){return{'model':db[_0x1b2bf1[_0xe56e('0x25')]],'as':_0x1b2bf1['as'],'attributes':_0x1b2bf1[_0xe56e('0x22')],'include':_0x1b2bf1[_0xe56e('0x23')]?_[_0xe56e('0x24')](_0x1b2bf1[_0xe56e('0x23')],function(_0x2c1253){return{'model':db[_0x2c1253[_0xe56e('0x25')]],'as':_0x2c1253['as'],'attributes':_0x2c1253['attributes'],'include':_0x2c1253[_0xe56e('0x23')]?_[_0xe56e('0x24')](_0x2c1253[_0xe56e('0x23')],function(_0xc8d939){return{'model':db[_0xc8d939[_0xe56e('0x25')]],'as':_0xc8d939['as'],'attributes':_0xc8d939[_0xe56e('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xf772ab){logger[_0xe56e('0x12')](_0xe56e('0x1d'),_0x15869f);logger[_0xe56e('0x15')](_0xe56e('0x1d'),_0x15869f,JSON[_0xe56e('0x17')](_0xf772ab));_0x300020(_0xf772ab);})[_0xe56e('0x1c')](function(_0x230df1){logger['error']('ShowSquareProject',_0x230df1[_0xe56e('0x1a')],_0x15869f);_0x4ac4c9(_0x5762c0[_0xe56e('0x18')](0x1f4,_0x230df1[_0xe56e('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0513=['removeListener','register','length','./squareProject.events','remove','update','emit'];(function(_0x172747,_0x1732bd){var _0x509692=function(_0x448c56){while(--_0x448c56){_0x172747['push'](_0x172747['shift']());}};_0x509692(++_0x1732bd);}(_0x0513,0xff));var _0x3051=function(_0x2859f0,_0xb9b291){_0x2859f0=_0x2859f0-0x0;var _0x3a4f66=_0x0513[_0x2859f0];return _0x3a4f66;};'use strict';var SquareProjectEvents=require(_0x3051('0x0'));var events=['save',_0x3051('0x1'),_0x3051('0x2')];function createListener(_0x164402,_0x8bf1ab){return function(_0x2d4f48){_0x8bf1ab[_0x3051('0x3')](_0x164402,_0x2d4f48);};}function removeListener(_0xb2f2eb,_0x5d542b){return function(){SquareProjectEvents[_0x3051('0x4')](_0xb2f2eb,_0x5d542b);};}exports[_0x3051('0x5')]=function(_0x3564e1){for(var _0xf21f76=0x0,_0x51220b=events[_0x3051('0x6')];_0xf21f76<_0x51220b;_0xf21f76++){var _0x31fd10=events[_0xf21f76];var _0x107b14=createListener('squareProject:'+_0x31fd10,_0x3564e1);SquareProjectEvents['on'](_0x31fd10,_0x107b14);}};
\ No newline at end of file
+var _0x6cd3=['length','squareProject:','save','update','emit','removeListener','register'];(function(_0x22d828,_0x546b7b){var _0x4f9b4d=function(_0x487f21){while(--_0x487f21){_0x22d828['push'](_0x22d828['shift']());}};_0x4f9b4d(++_0x546b7b);}(_0x6cd3,0xe2));var _0x36cd=function(_0x2085f3,_0x50105b){_0x2085f3=_0x2085f3-0x0;var _0x384e3c=_0x6cd3[_0x2085f3];return _0x384e3c;};'use strict';var SquareProjectEvents=require('./squareProject.events');var events=[_0x36cd('0x0'),'remove',_0x36cd('0x1')];function createListener(_0x32b2ce,_0x5c0549){return function(_0x1d966b){_0x5c0549[_0x36cd('0x2')](_0x32b2ce,_0x1d966b);};}function removeListener(_0x5cb794,_0x2f3376){return function(){SquareProjectEvents[_0x36cd('0x3')](_0x5cb794,_0x2f3376);};}exports[_0x36cd('0x4')]=function(_0x2f97af){for(var _0x11929e=0x0,_0x35b2c9=events[_0x36cd('0x5')];_0x11929e<_0x35b2c9;_0x11929e++){var _0x14613e=events[_0x11929e];var _0x1eca79=createListener(_0x36cd('0x6')+_0x14613e,_0x2f97af);SquareProjectEvents['on'](_0x14613e,_0x1eca79);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fab=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareRecording.controller','get','isAuthenticated','/:id','show','/:id/download','download','create','put','update','delete','destroy','multer','util','connect-timeout'];(function(_0x8005fb,_0x4caf26){var _0x23b786=function(_0x14e05f){while(--_0x14e05f){_0x8005fb['push'](_0x8005fb['shift']());}};_0x23b786(++_0x4caf26);}(_0x5fab,0x177));var _0xb5fa=function(_0x495f0b,_0x499f83){_0x495f0b=_0x495f0b-0x0;var _0xef44be=_0x5fab[_0x495f0b];return _0xef44be;};'use strict';var multer=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var path=require('path');var timeout=require(_0xb5fa('0x2'));var express=require(_0xb5fa('0x3'));var router=express[_0xb5fa('0x4')]();var fs_extra=require(_0xb5fa('0x5'));var auth=require(_0xb5fa('0x6'));var interaction=require(_0xb5fa('0x7'));var config=require(_0xb5fa('0x8'));var controller=require(_0xb5fa('0x9'));router[_0xb5fa('0xa')]('/',auth[_0xb5fa('0xb')](),controller['index']);router['get'](_0xb5fa('0xc'),auth[_0xb5fa('0xb')](),controller[_0xb5fa('0xd')]);router['get'](_0xb5fa('0xe'),auth[_0xb5fa('0xb')](),controller[_0xb5fa('0xf')]);router['post']('/',auth['isAuthenticated'](),controller[_0xb5fa('0x10')]);router[_0xb5fa('0x11')](_0xb5fa('0xc'),auth[_0xb5fa('0xb')](),controller[_0xb5fa('0x12')]);router[_0xb5fa('0x13')](_0xb5fa('0xc'),auth[_0xb5fa('0xb')](),controller[_0xb5fa('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xc4aa=['destroy','exports','multer','util','path','connect-timeout','express','Router','../../config/environment','./squareRecording.controller','get','isAuthenticated','index','/:id','/:id/download','download','create','put','delete'];(function(_0x3bfd57,_0xbfbbe8){var _0x1b2594=function(_0x4744af){while(--_0x4744af){_0x3bfd57['push'](_0x3bfd57['shift']());}};_0x1b2594(++_0xbfbbe8);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0xc4aa[_0x5d6456];return _0x4d66c1;};'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 fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xac4a('0x6'));var controller=require(_0xac4a('0x7'));router[_0xac4a('0x8')]('/',auth[_0xac4a('0x9')](),controller[_0xac4a('0xa')]);router[_0xac4a('0x8')](_0xac4a('0xb'),auth[_0xac4a('0x9')](),controller['show']);router['get'](_0xac4a('0xc'),auth[_0xac4a('0x9')](),controller[_0xac4a('0xd')]);router['post']('/',auth[_0xac4a('0x9')](),controller[_0xac4a('0xe')]);router[_0xac4a('0xf')]('/:id',auth[_0xac4a('0x9')](),controller['update']);router[_0xac4a('0x10')]('/:id',auth[_0xac4a('0x9')](),controller[_0xac4a('0x11')]);module[_0xac4a('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed1f=['lastIndexOf','sequelize','exports','STRING','VIRTUAL','getDataValue','substring'];(function(_0x4ac424,_0x554b5d){var _0xe1b890=function(_0x5e85c4){while(--_0x5e85c4){_0x4ac424['push'](_0x4ac424['shift']());}};_0xe1b890(++_0x554b5d);}(_0xed1f,0x6a));var _0xfed1=function(_0x2112d4,_0x3c863c){_0x2112d4=_0x2112d4-0x0;var _0x434972=_0xed1f[_0x2112d4];return _0x434972;};'use strict';var Sequelize=require(_0xfed1('0x0'));module[_0xfed1('0x1')]={'uniqueid':{'type':Sequelize[_0xfed1('0x2')]},'callerid':{'type':Sequelize[_0xfed1('0x2')]},'calleridname':{'type':Sequelize[_0xfed1('0x2')]},'context':{'type':Sequelize[_0xfed1('0x2')]},'extension':{'type':Sequelize[_0xfed1('0x2')]},'priority':{'type':Sequelize[_0xfed1('0x2')]},'accountcode':{'type':Sequelize[_0xfed1('0x2')]},'dnid':{'type':Sequelize[_0xfed1('0x2')]},'projectName':{'type':Sequelize[_0xfed1('0x2')]},'saveName':{'type':Sequelize[_0xfed1('0x2')]},'filename':{'type':Sequelize[_0xfed1('0x2')]},'savePath':{'type':Sequelize[_0xfed1('0x2')]},'format':{'type':Sequelize[_0xfed1('0x3')],'get':function(){var _0x612b38='';var _0x2a6082=this[_0xfed1('0x4')]('savePath');if(_0x2a6082){_0x612b38=_0x2a6082[_0xfed1('0x5')](_0x2a6082[_0xfed1('0x6')]('.'));}return _0x612b38;}}};
\ No newline at end of file
+var _0x5fc3=['sequelize','exports','STRING','VIRTUAL','getDataValue','savePath','substring','lastIndexOf'];(function(_0x351b46,_0x26b265){var _0x1515df=function(_0x22896a){while(--_0x22896a){_0x351b46['push'](_0x351b46['shift']());}};_0x1515df(++_0x26b265);}(_0x5fc3,0xa8));var _0x35fc=function(_0x40dd56,_0x726ca5){_0x40dd56=_0x40dd56-0x0;var _0x4f850f=_0x5fc3[_0x40dd56];return _0x4f850f;};'use strict';var Sequelize=require(_0x35fc('0x0'));module[_0x35fc('0x1')]={'uniqueid':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x35fc('0x2')]},'calleridname':{'type':Sequelize[_0x35fc('0x2')]},'context':{'type':Sequelize[_0x35fc('0x2')]},'extension':{'type':Sequelize[_0x35fc('0x2')]},'priority':{'type':Sequelize[_0x35fc('0x2')]},'accountcode':{'type':Sequelize['STRING']},'dnid':{'type':Sequelize[_0x35fc('0x2')]},'projectName':{'type':Sequelize[_0x35fc('0x2')]},'saveName':{'type':Sequelize[_0x35fc('0x2')]},'filename':{'type':Sequelize['STRING']},'savePath':{'type':Sequelize['STRING']},'format':{'type':Sequelize[_0x35fc('0x3')],'get':function(){var _0x508b32='';var _0x16e153=this[_0x35fc('0x4')](_0x35fc('0x5'));if(_0x16e153){_0x508b32=_0x16e153[_0x35fc('0x6')](_0x16e153[_0x35fc('0x7')]('.'));}return _0x508b32;}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa003=['extname','unlink','message','isNil','info','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','eml-format','rimraf','request-promise','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','sendStatus','stack','name','send','index','map','SquareRecording','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','params','catch','create','body','download','../../components/encryptor','uniqueid','find','filename','savePath','format','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found'];(function(_0x2fa457,_0x7021df){var _0x4f250a=function(_0xef901e){while(--_0xef901e){_0x2fa457['push'](_0x2fa457['shift']());}};_0x4f250a(++_0x7021df);}(_0xa003,0xc5));var _0x3a00=function(_0x4ef241,_0x1c05b2){_0x4ef241=_0x4ef241-0x0;var _0x22bce5=_0xa003[_0x4ef241];return _0x22bce5;};'use strict';var emlformat=require(_0x3a00('0x0'));var rimraf=require(_0x3a00('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x3a00('0x2'));var moment=require('moment');var BPromise=require(_0x3a00('0x3'));var Mustache=require('mustache');var util=require(_0x3a00('0x4'));var path=require(_0x3a00('0x5'));var sox=require(_0x3a00('0x6'));var csv=require(_0x3a00('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3a00('0x8'));var _=require(_0x3a00('0x9'));var squel=require(_0x3a00('0xa'));var crypto=require(_0x3a00('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3a00('0xc'));var Papa=require(_0x3a00('0xd'));var Redis=require(_0x3a00('0xe'));var authService=require(_0x3a00('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3a00('0x10'));var logger=require(_0x3a00('0x11'))(_0x3a00('0x12'));var utils=require(_0x3a00('0x13'));var config=require(_0x3a00('0x14'));var licenseUtil=require(_0x3a00('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3206f6,_0x3d6e42){_0x3d6e42=_0x3d6e42||0xcc;return function(_0x52237b){if(_0x52237b){return _0x3206f6['sendStatus'](_0x3d6e42);}return _0x3206f6[_0x3a00('0x16')](_0x3d6e42)[_0x3a00('0x17')]();};}function respondWithResult(_0xfa9d83,_0x100951){_0x100951=_0x100951||0xc8;return function(_0x32a995){if(_0x32a995){return _0xfa9d83['status'](_0x100951)[_0x3a00('0x18')](_0x32a995);}};}function respondWithFilteredResult(_0x4de659,_0x48ebdc){return function(_0x563b95){if(_0x563b95){var _0x42f3a4=typeof _0x48ebdc[_0x3a00('0x19')]===_0x3a00('0x1a')&&typeof _0x48ebdc[_0x3a00('0x1b')]===_0x3a00('0x1a');var _0x10b5ab=_0x563b95[_0x3a00('0x1c')];var _0x34c8be=_0x42f3a4?0x0:_0x48ebdc[_0x3a00('0x19')];var _0x2af3a4=_0x42f3a4?_0x563b95[_0x3a00('0x1c')]:_0x48ebdc[_0x3a00('0x19')]+_0x48ebdc['limit'];var _0x5d3540;if(_0x2af3a4>=_0x10b5ab){_0x2af3a4=_0x10b5ab;_0x5d3540=0xc8;}else{_0x5d3540=0xce;}_0x4de659[_0x3a00('0x16')](_0x5d3540);return _0x4de659['set'](_0x3a00('0x1d'),_0x34c8be+'-'+_0x2af3a4+'/'+_0x10b5ab)[_0x3a00('0x18')](_0x563b95);}return null;};}function patchUpdates(_0x11638c){return function(_0x199959){try{jsonpatch[_0x3a00('0x1e')](_0x199959,_0x11638c,!![]);}catch(_0x34185d){return BPromise['reject'](_0x34185d);}return _0x199959[_0x3a00('0x1f')]();};}function saveUpdates(_0x25ff77,_0x73b187){return function(_0x40f316){if(_0x40f316){return _0x40f316[_0x3a00('0x20')](_0x25ff77)[_0x3a00('0x21')](function(_0x387182){return _0x387182;});}return null;};}function removeEntity(_0x52e3ae,_0x53e8c5){return function(_0x5124aa){if(_0x5124aa){return _0x5124aa[_0x3a00('0x22')]()[_0x3a00('0x21')](function(){_0x52e3ae[_0x3a00('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a376b,_0xdee0f0){return function(_0x3ac1ac){if(!_0x3ac1ac){_0x1a376b[_0x3a00('0x23')](0x194);}return _0x3ac1ac;};}function handleError(_0x1a5f20,_0x4479a6){_0x4479a6=_0x4479a6||0x1f4;return function(_0x2ebbf4){logger['error'](_0x2ebbf4[_0x3a00('0x24')]);if(_0x2ebbf4['name']){delete _0x2ebbf4[_0x3a00('0x25')];}_0x1a5f20['status'](_0x4479a6)[_0x3a00('0x26')](_0x2ebbf4);};}exports[_0x3a00('0x27')]=function(_0x1b38ea,_0xb5cd51){var _0x40fe11={},_0x54dd5f={},_0x15aca2={'count':0x0,'rows':[]};var _0x6900a8=_[_0x3a00('0x28')](db[_0x3a00('0x29')][_0x3a00('0x2a')],function(_0x358b95){return{'name':_0x358b95[_0x3a00('0x2b')],'type':_0x358b95[_0x3a00('0x2c')][_0x3a00('0x2d')]};});_0x54dd5f[_0x3a00('0x2e')]=_['map'](_0x6900a8,_0x3a00('0x25'));_0x54dd5f[_0x3a00('0x2f')]=_[_0x3a00('0x30')](_0x1b38ea[_0x3a00('0x2f')]);_0x54dd5f[_0x3a00('0x31')]=_[_0x3a00('0x32')](_0x54dd5f[_0x3a00('0x2e')],_0x54dd5f[_0x3a00('0x2f')]);_0x40fe11[_0x3a00('0x33')]=_['intersection'](_0x54dd5f['model'],qs[_0x3a00('0x34')](_0x1b38ea[_0x3a00('0x2f')][_0x3a00('0x34')]));_0x40fe11[_0x3a00('0x33')]=_0x40fe11['attributes'][_0x3a00('0x35')]?_0x40fe11[_0x3a00('0x33')]:_0x54dd5f[_0x3a00('0x2e')];if(!_0x1b38ea['query'][_0x3a00('0x36')](_0x3a00('0x37'))){_0x40fe11[_0x3a00('0x1b')]=qs[_0x3a00('0x1b')](_0x1b38ea[_0x3a00('0x2f')][_0x3a00('0x1b')]);_0x40fe11[_0x3a00('0x19')]=qs['offset'](_0x1b38ea['query']['offset']);}_0x40fe11[_0x3a00('0x38')]=qs[_0x3a00('0x39')](_0x1b38ea[_0x3a00('0x2f')][_0x3a00('0x39')]);_0x40fe11['where']=qs['filters'](_[_0x3a00('0x3a')](_0x1b38ea[_0x3a00('0x2f')],_0x54dd5f['filters']),_0x6900a8);if(_0x1b38ea[_0x3a00('0x2f')][_0x3a00('0x3b')]){_0x40fe11[_0x3a00('0x3c')]=_[_0x3a00('0x3d')](_0x40fe11[_0x3a00('0x3c')],{'$or':_[_0x3a00('0x28')](_0x6900a8,function(_0x18f4ad){if(_0x18f4ad[_0x3a00('0x2c')]!=='VIRTUAL'){var _0x1c94e6={};_0x1c94e6[_0x18f4ad[_0x3a00('0x25')]]={'$like':'%'+_0x1b38ea[_0x3a00('0x2f')][_0x3a00('0x3b')]+'%'};return _0x1c94e6;}})});}_0x40fe11=_[_0x3a00('0x3d')]({},_0x40fe11,_0x1b38ea[_0x3a00('0x3e')]);var _0x4b6711={'where':_0x40fe11[_0x3a00('0x3c')]};return db[_0x3a00('0x29')][_0x3a00('0x1c')](_0x4b6711)[_0x3a00('0x21')](function(_0x38297e){_0x15aca2[_0x3a00('0x1c')]=_0x38297e;if(_0x1b38ea['query'][_0x3a00('0x3f')]){_0x40fe11[_0x3a00('0x40')]=[{'all':!![]}];}return db['SquareRecording'][_0x3a00('0x41')](_0x40fe11);})['then'](function(_0x95de8a){_0x15aca2[_0x3a00('0x42')]=_0x95de8a;return _0x15aca2;})[_0x3a00('0x21')](respondWithFilteredResult(_0xb5cd51,_0x40fe11))['catch'](handleError(_0xb5cd51,null));};exports['show']=function(_0x387272,_0xa8cefd){var _0x4a8961={'raw':!![],'where':{'id':_0x387272[_0x3a00('0x43')]['id']}},_0x1b160d={};_0x1b160d[_0x3a00('0x2e')]=_[_0x3a00('0x30')](db[_0x3a00('0x29')][_0x3a00('0x2a')]);_0x1b160d['query']=_['keys'](_0x387272[_0x3a00('0x2f')]);_0x1b160d['filters']=_['intersection'](_0x1b160d[_0x3a00('0x2e')],_0x1b160d['query']);_0x4a8961[_0x3a00('0x33')]=_[_0x3a00('0x32')](_0x1b160d['model'],qs[_0x3a00('0x34')](_0x387272[_0x3a00('0x2f')][_0x3a00('0x34')]));_0x4a8961['attributes']=_0x4a8961['attributes'][_0x3a00('0x35')]?_0x4a8961[_0x3a00('0x33')]:_0x1b160d[_0x3a00('0x2e')];if(_0x387272[_0x3a00('0x2f')][_0x3a00('0x3f')]){_0x4a8961['include']=[{'all':!![]}];}_0x4a8961=_[_0x3a00('0x3d')]({},_0x4a8961,_0x387272[_0x3a00('0x3e')]);return db[_0x3a00('0x29')]['find'](_0x4a8961)[_0x3a00('0x21')](handleEntityNotFound(_0xa8cefd,null))[_0x3a00('0x21')](respondWithResult(_0xa8cefd,null))[_0x3a00('0x44')](handleError(_0xa8cefd,null));};exports['create']=function(_0x27e0ad,_0x4eb95){return db[_0x3a00('0x29')][_0x3a00('0x45')](_0x27e0ad[_0x3a00('0x46')],{})[_0x3a00('0x21')](respondWithResult(_0x4eb95,0xc9))['catch'](handleError(_0x4eb95,null));};exports[_0x3a00('0x20')]=function(_0x3381b3,_0x2eb791){if(_0x3381b3[_0x3a00('0x46')]['id']){delete _0x3381b3[_0x3a00('0x46')]['id'];}return db[_0x3a00('0x29')]['find']({'where':{'id':_0x3381b3[_0x3a00('0x43')]['id']}})['then'](handleEntityNotFound(_0x2eb791,null))['then'](saveUpdates(_0x3381b3[_0x3a00('0x46')],null))['then'](respondWithResult(_0x2eb791,null))[_0x3a00('0x44')](handleError(_0x2eb791,null));};exports[_0x3a00('0x47')]=function(_0x44b2db,_0x335fc2,_0x1ff62c){var _0x536285=require(_0x3a00('0x48'));var _0x30c2bc=![];var _0x306ba2={};if(_0x44b2db['query'][_0x3a00('0x2c')]&&_0x44b2db['query'][_0x3a00('0x2c')]===_0x3a00('0x49')){_0x306ba2[_0x3a00('0x49')]=_0x44b2db[_0x3a00('0x43')]['id'];}else{_0x306ba2['id']=_0x44b2db[_0x3a00('0x43')]['id'];}return db[_0x3a00('0x29')][_0x3a00('0x4a')]({'where':_0x306ba2,'attributes':['id','savePath',_0x3a00('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0x335fc2,null))[_0x3a00('0x21')](function(_0x29fa33){if(_0x29fa33){var _0x544950=_0x29fa33[_0x3a00('0x4c')];var _0x2c83e1=util[_0x3a00('0x4d')]('%s.cypher',_0x544950);if(fs[_0x3a00('0x4e')](_0x2c83e1)){_0x30c2bc=!![];return _0x536285[_0x3a00('0x4f')](_0x2c83e1,_0x544950,config[_0x3a00('0x50')][_0x3a00('0x51')])[_0x3a00('0x21')](function(){return _0x29fa33;});}return _0x29fa33;}})[_0x3a00('0x21')](function(_0x4641b2){if(_0x4641b2){var _0x20a996=_0x4641b2['savePath'];if(!fs['existsSync'](_0x20a996)){throw new db[(_0x3a00('0x52'))][(_0x3a00('0x53'))](_0x3a00('0x54'));}if(_0x4641b2[_0x3a00('0x4b')]){return _0x335fc2[_0x3a00('0x47')](_0x20a996,_0x4641b2[_0x3a00('0x4b')]+path[_0x3a00('0x55')](_0x20a996),function(){if(_0x30c2bc){fs[_0x3a00('0x56')](_0x20a996);}});}else{return _0x335fc2[_0x3a00('0x47')](_0x20a996,function(_0x427765){if(_0x30c2bc){fs[_0x3a00('0x56')](_0x20a996);}});}}})[_0x3a00('0x44')](function(_0x48e122){if(_0x48e122[_0x3a00('0x57')]===_0x3a00('0x54')){_0x335fc2['status'](0x194)['send']('Not\x20found');}else{return handleError(_0x335fc2,null);}});};exports[_0x3a00('0x22')]=function(_0x1570a5,_0x290663){return db[_0x3a00('0x29')]['find']({'where':{'id':_0x1570a5[_0x3a00('0x43')]['id']}})[_0x3a00('0x21')](function(_0x4e5ece){if(_[_0x3a00('0x58')](_0x4e5ece)){throw new ReferenceError('Entity\x20not\x20found');}return _0x4e5ece;})[_0x3a00('0x21')](function(_0x245494){var _0xb7ee2e=_0x245494[_0x3a00('0x4c')];logger[_0x3a00('0x59')]('cancellazione\x20fisica\x20documento\x20%s',_0xb7ee2e);if(!_['isNil'](_0x245494['savePath'])&&fs[_0x3a00('0x4e')](_0xb7ee2e)){logger[_0x3a00('0x59')](_0x3a00('0x5a')+_0xb7ee2e+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x3a00('0x5b')](_0xb7ee2e);}_0xb7ee2e=_0xb7ee2e+_0x3a00('0x5c');if(!_[_0x3a00('0x58')](_0x245494[_0x3a00('0x4c')])&&fs[_0x3a00('0x4e')](_0xb7ee2e)){logger['info'](_0x3a00('0x5a')+_0xb7ee2e+_0x3a00('0x5d'));fs[_0x3a00('0x5b')](_0xb7ee2e);}return _0x245494;})[_0x3a00('0x21')](function(_0x50a599){if(!_0x50a599)throw new InternalError();return _0x50a599[_0x3a00('0x22')]();})[_0x3a00('0x21')](function(){_0x290663[_0x3a00('0x16')](0xcc)['end']();})[_0x3a00('0x44')](handleError(_0x290663,null));};
\ No newline at end of file
+var _0x96a5=['undefined','count','limit','status','set','Content-Range','apply','save','update','destroy','error','name','send','SquareRecording','rawAttributes','map','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','type','options','then','includeAll','findAll','catch','show','params','length','include','find','create','body','download','../../components/encryptor','uniqueid','savePath','format','%s.cypher','existsSync','decryptFile','secrets','recording','ValidationError','filename','SquareRecording\x20not\x20found','isNil','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','sendStatus','end','json','offset'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x96a5,0x149));var _0x596a=function(_0x28191a,_0x374ff5){_0x28191a=_0x28191a-0x0;var _0x3402ee=_0x96a5[_0x28191a];return _0x3402ee;};'use strict';var emlformat=require(_0x596a('0x0'));var rimraf=require(_0x596a('0x1'));var zipdir=require(_0x596a('0x2'));var jsonpatch=require(_0x596a('0x3'));var rp=require(_0x596a('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x596a('0x5'));var util=require(_0x596a('0x6'));var path=require(_0x596a('0x7'));var sox=require('sox');var csv=require(_0x596a('0x8'));var ejs=require(_0x596a('0x9'));var fs=require('fs');var fs_extra=require(_0x596a('0xa'));var _=require(_0x596a('0xb'));var squel=require(_0x596a('0xc'));var crypto=require('crypto');var jsforce=require(_0x596a('0xd'));var deskjs=require(_0x596a('0xe'));var toCsv=require(_0x596a('0x8'));var querystring=require(_0x596a('0xf'));var Papa=require(_0x596a('0x10'));var Redis=require('ioredis');var authService=require(_0x596a('0x11'));var qs=require(_0x596a('0x12'));var as=require(_0x596a('0x13'));var hardwareService=require(_0x596a('0x14'));var logger=require(_0x596a('0x15'))('api');var utils=require(_0x596a('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xbc7f7b,_0x33a26e){_0x33a26e=_0x33a26e||0xcc;return function(_0x4bf7d3){if(_0x4bf7d3){return _0xbc7f7b[_0x596a('0x17')](_0x33a26e);}return _0xbc7f7b['status'](_0x33a26e)[_0x596a('0x18')]();};}function respondWithResult(_0x6bdf26,_0x1d14a0){_0x1d14a0=_0x1d14a0||0xc8;return function(_0x612eab){if(_0x612eab){return _0x6bdf26['status'](_0x1d14a0)[_0x596a('0x19')](_0x612eab);}};}function respondWithFilteredResult(_0x536b78,_0x34d4b3){return function(_0x47a1d9){if(_0x47a1d9){var _0x5078b8=typeof _0x34d4b3[_0x596a('0x1a')]===_0x596a('0x1b')&&typeof _0x34d4b3['limit']===_0x596a('0x1b');var _0x535e23=_0x47a1d9[_0x596a('0x1c')];var _0x5bddf4=_0x5078b8?0x0:_0x34d4b3['offset'];var _0x486488=_0x5078b8?_0x47a1d9[_0x596a('0x1c')]:_0x34d4b3['offset']+_0x34d4b3[_0x596a('0x1d')];var _0x13c576;if(_0x486488>=_0x535e23){_0x486488=_0x535e23;_0x13c576=0xc8;}else{_0x13c576=0xce;}_0x536b78[_0x596a('0x1e')](_0x13c576);return _0x536b78[_0x596a('0x1f')](_0x596a('0x20'),_0x5bddf4+'-'+_0x486488+'/'+_0x535e23)['json'](_0x47a1d9);}return null;};}function patchUpdates(_0x4d4361){return function(_0x14d308){try{jsonpatch[_0x596a('0x21')](_0x14d308,_0x4d4361,!![]);}catch(_0x25f7e7){return BPromise['reject'](_0x25f7e7);}return _0x14d308[_0x596a('0x22')]();};}function saveUpdates(_0x51aaff,_0x375a3d){return function(_0x555ca9){if(_0x555ca9){return _0x555ca9[_0x596a('0x23')](_0x51aaff)['then'](function(_0x1b3ac3){return _0x1b3ac3;});}return null;};}function removeEntity(_0x1ebfeb,_0x2fd6c9){return function(_0x47084c){if(_0x47084c){return _0x47084c[_0x596a('0x24')]()['then'](function(){_0x1ebfeb[_0x596a('0x1e')](0xcc)[_0x596a('0x18')]();});}};}function handleEntityNotFound(_0x110446,_0x2bb30a){return function(_0x11c632){if(!_0x11c632){_0x110446[_0x596a('0x17')](0x194);}return _0x11c632;};}function handleError(_0x20a252,_0x2ad10d){_0x2ad10d=_0x2ad10d||0x1f4;return function(_0x300105){logger[_0x596a('0x25')](_0x300105['stack']);if(_0x300105['name']){delete _0x300105[_0x596a('0x26')];}_0x20a252[_0x596a('0x1e')](_0x2ad10d)[_0x596a('0x27')](_0x300105);};}exports['index']=function(_0xe66580,_0x2ed87f){var _0x27bc1f={},_0x4c24f3={},_0x3af520={'count':0x0,'rows':[]};var _0x5d1f57=_['map'](db[_0x596a('0x28')][_0x596a('0x29')],function(_0x3f088c){return{'name':_0x3f088c['fieldName'],'type':_0x3f088c['type']['key']};});_0x4c24f3['model']=_[_0x596a('0x2a')](_0x5d1f57,_0x596a('0x26'));_0x4c24f3[_0x596a('0x2b')]=_[_0x596a('0x2c')](_0xe66580[_0x596a('0x2b')]);_0x4c24f3[_0x596a('0x2d')]=_[_0x596a('0x2e')](_0x4c24f3[_0x596a('0x2f')],_0x4c24f3[_0x596a('0x2b')]);_0x27bc1f[_0x596a('0x30')]=_[_0x596a('0x2e')](_0x4c24f3['model'],qs['fields'](_0xe66580[_0x596a('0x2b')][_0x596a('0x31')]));_0x27bc1f['attributes']=_0x27bc1f[_0x596a('0x30')]['length']?_0x27bc1f[_0x596a('0x30')]:_0x4c24f3[_0x596a('0x2f')];if(!_0xe66580[_0x596a('0x2b')][_0x596a('0x32')]('nolimit')){_0x27bc1f[_0x596a('0x1d')]=qs[_0x596a('0x1d')](_0xe66580[_0x596a('0x2b')][_0x596a('0x1d')]);_0x27bc1f[_0x596a('0x1a')]=qs['offset'](_0xe66580[_0x596a('0x2b')][_0x596a('0x1a')]);}_0x27bc1f[_0x596a('0x33')]=qs[_0x596a('0x34')](_0xe66580['query'][_0x596a('0x34')]);_0x27bc1f[_0x596a('0x35')]=qs[_0x596a('0x2d')](_[_0x596a('0x36')](_0xe66580['query'],_0x4c24f3['filters']),_0x5d1f57);if(_0xe66580[_0x596a('0x2b')][_0x596a('0x37')]){_0x27bc1f[_0x596a('0x35')]=_[_0x596a('0x38')](_0x27bc1f['where'],{'$or':_[_0x596a('0x2a')](_0x5d1f57,function(_0x56a8a3){if(_0x56a8a3[_0x596a('0x39')]!=='VIRTUAL'){var _0x4959d2={};_0x4959d2[_0x56a8a3['name']]={'$like':'%'+_0xe66580['query'][_0x596a('0x37')]+'%'};return _0x4959d2;}})});}_0x27bc1f=_[_0x596a('0x38')]({},_0x27bc1f,_0xe66580[_0x596a('0x3a')]);var _0x431076={'where':_0x27bc1f[_0x596a('0x35')]};return db['SquareRecording'][_0x596a('0x1c')](_0x431076)[_0x596a('0x3b')](function(_0xc74231){_0x3af520[_0x596a('0x1c')]=_0xc74231;if(_0xe66580[_0x596a('0x2b')][_0x596a('0x3c')]){_0x27bc1f['include']=[{'all':!![]}];}return db['SquareRecording'][_0x596a('0x3d')](_0x27bc1f);})[_0x596a('0x3b')](function(_0x4867c9){_0x3af520['rows']=_0x4867c9;return _0x3af520;})['then'](respondWithFilteredResult(_0x2ed87f,_0x27bc1f))[_0x596a('0x3e')](handleError(_0x2ed87f,null));};exports[_0x596a('0x3f')]=function(_0x1e56e8,_0x23dcbd){var _0x17fa28={'raw':!![],'where':{'id':_0x1e56e8[_0x596a('0x40')]['id']}},_0x1caf16={};_0x1caf16['model']=_[_0x596a('0x2c')](db[_0x596a('0x28')]['rawAttributes']);_0x1caf16[_0x596a('0x2b')]=_[_0x596a('0x2c')](_0x1e56e8[_0x596a('0x2b')]);_0x1caf16[_0x596a('0x2d')]=_[_0x596a('0x2e')](_0x1caf16[_0x596a('0x2f')],_0x1caf16[_0x596a('0x2b')]);_0x17fa28[_0x596a('0x30')]=_[_0x596a('0x2e')](_0x1caf16[_0x596a('0x2f')],qs[_0x596a('0x31')](_0x1e56e8[_0x596a('0x2b')][_0x596a('0x31')]));_0x17fa28[_0x596a('0x30')]=_0x17fa28[_0x596a('0x30')][_0x596a('0x41')]?_0x17fa28[_0x596a('0x30')]:_0x1caf16['model'];if(_0x1e56e8[_0x596a('0x2b')][_0x596a('0x3c')]){_0x17fa28[_0x596a('0x42')]=[{'all':!![]}];}_0x17fa28=_[_0x596a('0x38')]({},_0x17fa28,_0x1e56e8[_0x596a('0x3a')]);return db['SquareRecording'][_0x596a('0x43')](_0x17fa28)['then'](handleEntityNotFound(_0x23dcbd,null))[_0x596a('0x3b')](respondWithResult(_0x23dcbd,null))[_0x596a('0x3e')](handleError(_0x23dcbd,null));};exports[_0x596a('0x44')]=function(_0x3fd600,_0x21605d){return db[_0x596a('0x28')][_0x596a('0x44')](_0x3fd600['body'],{})[_0x596a('0x3b')](respondWithResult(_0x21605d,0xc9))['catch'](handleError(_0x21605d,null));};exports['update']=function(_0x144a72,_0x1a145b){if(_0x144a72[_0x596a('0x45')]['id']){delete _0x144a72[_0x596a('0x45')]['id'];}return db[_0x596a('0x28')][_0x596a('0x43')]({'where':{'id':_0x144a72[_0x596a('0x40')]['id']}})[_0x596a('0x3b')](handleEntityNotFound(_0x1a145b,null))[_0x596a('0x3b')](saveUpdates(_0x144a72[_0x596a('0x45')],null))[_0x596a('0x3b')](respondWithResult(_0x1a145b,null))[_0x596a('0x3e')](handleError(_0x1a145b,null));};exports[_0x596a('0x46')]=function(_0x436ace,_0x11a9ae,_0x27e249){var _0xec7c88=require(_0x596a('0x47'));var _0x5e8d47=![];var _0x30b490={};if(_0x436ace['query'][_0x596a('0x39')]&&_0x436ace['query'][_0x596a('0x39')]===_0x596a('0x48')){_0x30b490[_0x596a('0x48')]=_0x436ace[_0x596a('0x40')]['id'];}else{_0x30b490['id']=_0x436ace[_0x596a('0x40')]['id'];}return db[_0x596a('0x28')][_0x596a('0x43')]({'where':_0x30b490,'attributes':['id',_0x596a('0x49'),'filename'],'raw':!![]})[_0x596a('0x3b')](handleEntityNotFound(_0x11a9ae,null))[_0x596a('0x3b')](function(_0x58b840){if(_0x58b840){var _0x1aec9a=_0x58b840[_0x596a('0x49')];var _0x14410a=util[_0x596a('0x4a')](_0x596a('0x4b'),_0x1aec9a);if(fs[_0x596a('0x4c')](_0x14410a)){_0x5e8d47=!![];return _0xec7c88[_0x596a('0x4d')](_0x14410a,_0x1aec9a,config[_0x596a('0x4e')][_0x596a('0x4f')])[_0x596a('0x3b')](function(){return _0x58b840;});}return _0x58b840;}})[_0x596a('0x3b')](function(_0x49f7d9){if(_0x49f7d9){var _0x1056eb=_0x49f7d9[_0x596a('0x49')];if(!fs['existsSync'](_0x1056eb)){throw new db['Sequelize'][(_0x596a('0x50'))]('SquareRecording\x20not\x20found');}if(_0x49f7d9[_0x596a('0x51')]){return _0x11a9ae[_0x596a('0x46')](_0x1056eb,_0x49f7d9[_0x596a('0x51')]+path['extname'](_0x1056eb),function(){if(_0x5e8d47){fs['unlink'](_0x1056eb);}});}else{return _0x11a9ae[_0x596a('0x46')](_0x1056eb,function(_0x485359){if(_0x5e8d47){fs['unlink'](_0x1056eb);}});}}})[_0x596a('0x3e')](function(_0x2dda62){if(_0x2dda62['message']===_0x596a('0x52')){_0x11a9ae[_0x596a('0x1e')](0x194)[_0x596a('0x27')]('Not\x20found');}else{return handleError(_0x11a9ae,null);}});};exports[_0x596a('0x24')]=function(_0x2cd2f6,_0x55187d){return db[_0x596a('0x28')][_0x596a('0x43')]({'where':{'id':_0x2cd2f6['params']['id']}})['then'](function(_0x2a5384){if(_[_0x596a('0x53')](_0x2a5384)){throw new ReferenceError('Entity\x20not\x20found');}return _0x2a5384;})['then'](function(_0x2448bc){var _0x4eb158=_0x2448bc[_0x596a('0x49')];logger[_0x596a('0x54')]('cancellazione\x20fisica\x20documento\x20%s',_0x4eb158);if(!_[_0x596a('0x53')](_0x2448bc[_0x596a('0x49')])&&fs[_0x596a('0x4c')](_0x4eb158)){logger[_0x596a('0x54')](_0x596a('0x55')+_0x4eb158+_0x596a('0x56'));fs['unlinkSync'](_0x4eb158);}_0x4eb158=_0x4eb158+_0x596a('0x57');if(!_[_0x596a('0x53')](_0x2448bc['savePath'])&&fs[_0x596a('0x4c')](_0x4eb158)){logger[_0x596a('0x54')](_0x596a('0x55')+_0x4eb158+_0x596a('0x56'));fs[_0x596a('0x58')](_0x4eb158);}return _0x2448bc;})['then'](function(_0x24968c){if(!_0x24968c)throw new InternalError();return _0x24968c['destroy']();})['then'](function(){_0x55187d[_0x596a('0x1e')](0xcc)[_0x596a('0x18')]();})[_0x596a('0x3e')](handleError(_0x55187d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd08d=['bluebird','request-promise','rimraf','../../config/environment','./squareRecording.attributes','define','SquareRecording','square_recordings','util','../../config/logger','moment'];(function(_0x3ce093,_0x584031){var _0x4aa6fe=function(_0x1735a4){while(--_0x1735a4){_0x3ce093['push'](_0x3ce093['shift']());}};_0x4aa6fe(++_0x584031);}(_0xd08d,0x81));var _0xdd08=function(_0x215e65,_0x183f97){_0x215e65=_0x215e65-0x0;var _0xa85842=_0xd08d[_0x215e65];return _0xa85842;};'use strict';var _=require('lodash');var util=require(_0xdd08('0x0'));var logger=require(_0xdd08('0x1'))('api');var moment=require(_0xdd08('0x2'));var BPromise=require(_0xdd08('0x3'));var rp=require(_0xdd08('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdd08('0x5'));var config=require(_0xdd08('0x6'));var attributes=require(_0xdd08('0x7'));module['exports']=function(_0x37c67a,_0x1587df){return _0x37c67a[_0xdd08('0x8')](_0xdd08('0x9'),attributes,{'tableName':_0xdd08('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd663=['api','moment','bluebird','request-promise','path','../../config/environment','define','lodash','util'];(function(_0x3e7e96,_0x5683ca){var _0x13f6f0=function(_0x320767){while(--_0x320767){_0x3e7e96['push'](_0x3e7e96['shift']());}};_0x13f6f0(++_0x5683ca);}(_0xd663,0x1ed));var _0x3d66=function(_0x3bd1a0,_0x5e577b){_0x3bd1a0=_0x3bd1a0-0x0;var _0x349bdd=_0xd663[_0x3bd1a0];return _0x349bdd;};'use strict';var _=require(_0x3d66('0x0'));var util=require(_0x3d66('0x1'));var logger=require('../../config/logger')(_0x3d66('0x2'));var moment=require(_0x3d66('0x3'));var BPromise=require(_0x3d66('0x4'));var rp=require(_0x3d66('0x5'));var fs=require('fs');var path=require(_0x3d66('0x6'));var rimraf=require('rimraf');var config=require(_0x3d66('0x7'));var attributes=require('./squareRecording.attributes');module['exports']=function(_0x5b7bf3,_0x4f2b7a){return _0x5b7bf3[_0x3d66('0x8')]('SquareRecording',attributes,{'tableName':'square_recordings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3092=['../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareRecording,\x20%s,\x20%s','request\x20sent','debug','SquareRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateSquareRecording','SquareRecording','create','body','options','raw','lodash','util','ioredis'];(function(_0x18cd5b,_0x10240b){var _0x5eaa52=function(_0x2bccad){while(--_0x2bccad){_0x18cd5b['push'](_0x18cd5b['shift']());}};_0x5eaa52(++_0x10240b);}(_0x3092,0x1ea));var _0x2309=function(_0x8a7e38,_0x473a5d){_0x8a7e38=_0x8a7e38-0x0;var _0x228609=_0x3092[_0x8a7e38];return _0x228609;};'use strict';var _=require(_0x2309('0x0'));var util=require(_0x2309('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2309('0x2'));var db=require(_0x2309('0x3'))['db'];var utils=require(_0x2309('0x4'));var logger=require('../../config/logger')(_0x2309('0x5'));var config=require(_0x2309('0x6'));var jayson=require(_0x2309('0x7'));var client=jayson[_0x2309('0x8')][_0x2309('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x50491d,_0xf2abde,_0x24ec79){return new BPromise(function(_0x1cf0e8,_0x5a3b89){return client[_0x2309('0xa')](_0x50491d,_0x24ec79)[_0x2309('0xb')](function(_0x1bdbef){logger[_0x2309('0xc')](_0x2309('0xd'),_0xf2abde,_0x2309('0xe'));logger[_0x2309('0xf')](_0x2309('0x10'),_0xf2abde,_0x2309('0xe'),JSON[_0x2309('0x11')](_0x1bdbef));if(_0x1bdbef[_0x2309('0x12')]){if(_0x1bdbef[_0x2309('0x12')][_0x2309('0x13')]===0x1f4){logger[_0x2309('0x12')](_0x2309('0xd'),_0xf2abde,_0x1bdbef['error'][_0x2309('0x14')]);return _0x5a3b89(_0x1bdbef[_0x2309('0x12')][_0x2309('0x14')]);}logger['error']('SquareRecording,\x20%s,\x20%s',_0xf2abde,_0x1bdbef[_0x2309('0x12')][_0x2309('0x14')]);return _0x1cf0e8(_0x1bdbef[_0x2309('0x12')][_0x2309('0x14')]);}else{logger[_0x2309('0xc')]('SquareRecording,\x20%s,\x20%s',_0xf2abde,_0x2309('0xe'));_0x1cf0e8(_0x1bdbef[_0x2309('0x15')]['message']);}})[_0x2309('0x16')](function(_0x29ad6a){logger[_0x2309('0x12')](_0x2309('0xd'),_0xf2abde,_0x29ad6a);_0x5a3b89(_0x29ad6a);});});}exports[_0x2309('0x17')]=function(_0x5ec878){var _0x43f613=this;return new Promise(function(_0x488e42,_0x37a761){return db[_0x2309('0x18')][_0x2309('0x19')](_0x5ec878[_0x2309('0x1a')],{'raw':_0x5ec878[_0x2309('0x1b')]?_0x5ec878[_0x2309('0x1b')][_0x2309('0x1c')]===undefined?!![]:![]:!![]})[_0x2309('0xb')](function(_0x22bd97){logger[_0x2309('0xc')](_0x2309('0x17'),_0x5ec878);logger[_0x2309('0xf')](_0x2309('0x17'),_0x5ec878,JSON['stringify'](_0x22bd97));_0x488e42(_0x22bd97);})['catch'](function(_0x51f391){logger[_0x2309('0x12')](_0x2309('0x17'),_0x51f391[_0x2309('0x14')],_0x5ec878);_0x37a761(_0x43f613['error'](0x1f4,_0x51f391[_0x2309('0x14')]));});});};
\ No newline at end of file
+var _0xa4a4=['SquareRecording,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','SquareRecording','create','options','raw','CreateSquareRecording','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','then','info','SquareRecording,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x2d6b0f,_0x32e0a0){var _0x211d9d=function(_0x1fd473){while(--_0x1fd473){_0x2d6b0f['push'](_0x2d6b0f['shift']());}};_0x211d9d(++_0x32e0a0);}(_0xa4a4,0x6b));var _0x4a4a=function(_0x5d0c1e,_0x132dd6){_0x5d0c1e=_0x5d0c1e-0x0;var _0x3ad7b0=_0xa4a4[_0x5d0c1e];return _0x3ad7b0;};'use strict';var _=require(_0x4a4a('0x0'));var util=require(_0x4a4a('0x1'));var moment=require(_0x4a4a('0x2'));var BPromise=require('bluebird');var rs=require(_0x4a4a('0x3'));var fs=require('fs');var Redis=require(_0x4a4a('0x4'));var db=require(_0x4a4a('0x5'))['db'];var utils=require(_0x4a4a('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x4a4a('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x40c7de,_0x151d1b,_0x2b36d4){return new BPromise(function(_0x5c502c,_0x491e55){return client['request'](_0x40c7de,_0x2b36d4)[_0x4a4a('0x8')](function(_0x2d5b4d){logger[_0x4a4a('0x9')](_0x4a4a('0xa'),_0x151d1b,_0x4a4a('0xb'));logger[_0x4a4a('0xc')](_0x4a4a('0xd'),_0x151d1b,_0x4a4a('0xb'),JSON[_0x4a4a('0xe')](_0x2d5b4d));if(_0x2d5b4d[_0x4a4a('0xf')]){if(_0x2d5b4d[_0x4a4a('0xf')]['code']===0x1f4){logger[_0x4a4a('0xf')](_0x4a4a('0xa'),_0x151d1b,_0x2d5b4d['error'][_0x4a4a('0x10')]);return _0x491e55(_0x2d5b4d[_0x4a4a('0xf')]['message']);}logger[_0x4a4a('0xf')](_0x4a4a('0xa'),_0x151d1b,_0x2d5b4d['error'][_0x4a4a('0x10')]);return _0x5c502c(_0x2d5b4d[_0x4a4a('0xf')][_0x4a4a('0x10')]);}else{logger[_0x4a4a('0x9')](_0x4a4a('0xa'),_0x151d1b,_0x4a4a('0xb'));_0x5c502c(_0x2d5b4d[_0x4a4a('0x11')]['message']);}})[_0x4a4a('0x12')](function(_0x775c3a){logger['error']('SquareRecording,\x20%s,\x20%s',_0x151d1b,_0x775c3a);_0x491e55(_0x775c3a);});});}exports['CreateSquareRecording']=function(_0x2d1cb0){var _0x139406=this;return new Promise(function(_0x4a084d,_0x963edf){return db[_0x4a4a('0x13')][_0x4a4a('0x14')](_0x2d1cb0['body'],{'raw':_0x2d1cb0[_0x4a4a('0x15')]?_0x2d1cb0[_0x4a4a('0x15')][_0x4a4a('0x16')]===undefined?!![]:![]:!![]})['then'](function(_0x5b95c5){logger[_0x4a4a('0x9')](_0x4a4a('0x17'),_0x2d1cb0);logger[_0x4a4a('0xc')](_0x4a4a('0x17'),_0x2d1cb0,JSON[_0x4a4a('0xe')](_0x5b95c5));_0x4a084d(_0x5b95c5);})[_0x4a4a('0x12')](function(_0x4b1151){logger['error'](_0x4a4a('0x17'),_0x4b1151[_0x4a4a('0x10')],_0x2d1cb0);_0x963edf(_0x139406[_0x4a4a('0xf')](0x1f4,_0x4b1151[_0x4a4a('0x10')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['/describe','describe','/:id','show','post','create','put','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReport.controller','get','isAuthenticated','index'];(function(_0xf69619,_0x26eb17){var _0x2445a2=function(_0x4b8e56){while(--_0x4b8e56){_0xf69619['push'](_0xf69619['shift']());}};_0x2445a2(++_0x26eb17);}(_0xe706,0xa3));var _0x6e70=function(_0x2009cd,_0x549a5d){_0x2009cd=_0x2009cd-0x0;var _0x509e8a=_0xe706[_0x2009cd];return _0x509e8a;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var controller=require(_0x6e70('0x9'));router[_0x6e70('0xa')]('/',auth[_0x6e70('0xb')](),controller[_0x6e70('0xc')]);router[_0x6e70('0xa')](_0x6e70('0xd'),auth[_0x6e70('0xb')](),controller[_0x6e70('0xe')]);router[_0x6e70('0xa')](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller[_0x6e70('0x10')]);router[_0x6e70('0x11')]('/',auth[_0x6e70('0xb')](),controller[_0x6e70('0x12')]);router[_0x6e70('0x13')](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller['update']);router['delete'](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller[_0x6e70('0x14')]);module[_0x6e70('0x15')]=router;
\ No newline at end of file
+var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x1d2cf2,_0x4f6aad){var _0xe5f313=function(_0xd42d92){while(--_0xd42d92){_0x1d2cf2['push'](_0x1d2cf2['shift']());}};_0xe5f313(++_0x4f6aad);}(_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 fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./squareReport.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde75=['STRING','DATE','sequelize'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0xde75,0x1d3));var _0x5de7=function(_0x5ad3f0,_0x285a99){_0x5ad3f0=_0x5ad3f0-0x0;var _0x3472f6=_0xde75[_0x5ad3f0];return _0x3472f6;};'use strict';var Sequelize=require(_0x5de7('0x0'));module['exports']={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x5de7('0x1')]},'language':{'type':Sequelize[_0x5de7('0x1')]},'type':{'type':Sequelize[_0x5de7('0x1')]},'uniqueid':{'type':Sequelize['STRING']},'version':{'type':Sequelize[_0x5de7('0x1')]},'callerid':{'type':Sequelize[_0x5de7('0x1')]},'calleridname':{'type':Sequelize[_0x5de7('0x1')]},'callingpres':{'type':Sequelize[_0x5de7('0x1')]},'callingani2':{'type':Sequelize[_0x5de7('0x1')]},'callington':{'type':Sequelize[_0x5de7('0x1')]},'callingtns':{'type':Sequelize[_0x5de7('0x1')]},'dnid':{'type':Sequelize[_0x5de7('0x1')]},'rdnis':{'type':Sequelize[_0x5de7('0x1')]},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize[_0x5de7('0x1')]},'priority':{'type':Sequelize[_0x5de7('0x1')]},'enhanced':{'type':Sequelize[_0x5de7('0x1')]},'accountcode':{'type':Sequelize[_0x5de7('0x1')]},'threadid':{'type':Sequelize[_0x5de7('0x1')]},'project_name':{'type':Sequelize[_0x5de7('0x1')]},'joinAt':{'type':Sequelize[_0x5de7('0x2')]},'leaveAt':{'type':Sequelize['DATE']},'bot':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xba2f=['STRING','sequelize','exports'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xba2f,0x151));var _0xfba2=function(_0xf0bc07,_0x510ebf){_0xf0bc07=_0xf0bc07-0x0;var _0x1c50c2=_0xba2f[_0xf0bc07];return _0x1c50c2;};'use strict';var Sequelize=require(_0xfba2('0x0'));module[_0xfba2('0x1')]={'network':{'type':Sequelize[_0xfba2('0x2')]},'network_script':{'type':Sequelize['STRING']},'request':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xfba2('0x2')]},'type':{'type':Sequelize[_0xfba2('0x2')]},'uniqueid':{'type':Sequelize['STRING']},'version':{'type':Sequelize[_0xfba2('0x2')]},'callerid':{'type':Sequelize[_0xfba2('0x2')]},'calleridname':{'type':Sequelize[_0xfba2('0x2')]},'callingpres':{'type':Sequelize[_0xfba2('0x2')]},'callingani2':{'type':Sequelize[_0xfba2('0x2')]},'callington':{'type':Sequelize[_0xfba2('0x2')]},'callingtns':{'type':Sequelize['STRING']},'dnid':{'type':Sequelize[_0xfba2('0x2')]},'rdnis':{'type':Sequelize[_0xfba2('0x2')]},'context':{'type':Sequelize[_0xfba2('0x2')]},'extension':{'type':Sequelize[_0xfba2('0x2')]},'priority':{'type':Sequelize[_0xfba2('0x2')]},'enhanced':{'type':Sequelize[_0xfba2('0x2')]},'accountcode':{'type':Sequelize['STRING']},'threadid':{'type':Sequelize[_0xfba2('0x2')]},'project_name':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize['DATE']},'bot':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad71=['query','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','include','rows','show','params','find','catch','create','body','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','SquareReport','rawAttributes','fieldName','type','model','map','keys','filters','intersection','fields','attributes','length'];(function(_0x241c23,_0x5520d6){var _0x511107=function(_0x296b27){while(--_0x296b27){_0x241c23['push'](_0x241c23['shift']());}};_0x511107(++_0x5520d6);}(_0xad71,0x1a3));var _0x1ad7=function(_0x52fac4,_0x2cfceb){_0x52fac4=_0x52fac4-0x0;var _0x1129bf=_0xad71[_0x52fac4];return _0x1129bf;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1ad7('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1ad7('0x1'));var rp=require(_0x1ad7('0x2'));var moment=require(_0x1ad7('0x3'));var BPromise=require(_0x1ad7('0x4'));var Mustache=require(_0x1ad7('0x5'));var util=require(_0x1ad7('0x6'));var path=require(_0x1ad7('0x7'));var sox=require(_0x1ad7('0x8'));var csv=require(_0x1ad7('0x9'));var ejs=require(_0x1ad7('0xa'));var fs=require('fs');var fs_extra=require(_0x1ad7('0xb'));var _=require(_0x1ad7('0xc'));var squel=require(_0x1ad7('0xd'));var crypto=require(_0x1ad7('0xe'));var jsforce=require(_0x1ad7('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x1ad7('0x9'));var querystring=require(_0x1ad7('0x10'));var Papa=require(_0x1ad7('0x11'));var Redis=require(_0x1ad7('0x12'));var authService=require(_0x1ad7('0x13'));var qs=require(_0x1ad7('0x14'));var as=require(_0x1ad7('0x15'));var hardwareService=require(_0x1ad7('0x16'));var logger=require(_0x1ad7('0x17'))(_0x1ad7('0x18'));var utils=require(_0x1ad7('0x19'));var config=require(_0x1ad7('0x1a'));var licenseUtil=require(_0x1ad7('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5314a5,_0x24964a){_0x24964a=_0x24964a||0xcc;return function(_0x5eded7){if(_0x5eded7){return _0x5314a5['sendStatus'](_0x24964a);}return _0x5314a5['status'](_0x24964a)[_0x1ad7('0x1c')]();};}function respondWithResult(_0x2dfab3,_0x4783a1){_0x4783a1=_0x4783a1||0xc8;return function(_0x5dba28){if(_0x5dba28){return _0x2dfab3[_0x1ad7('0x1d')](_0x4783a1)[_0x1ad7('0x1e')](_0x5dba28);}};}function respondWithFilteredResult(_0x43bb52,_0x14cc83){return function(_0x4f4abc){if(_0x4f4abc){var _0x3c390b=typeof _0x14cc83['offset']===_0x1ad7('0x1f')&&typeof _0x14cc83[_0x1ad7('0x20')]===_0x1ad7('0x1f');var _0x46b5d3=_0x4f4abc[_0x1ad7('0x21')];var _0x487fae=_0x3c390b?0x0:_0x14cc83[_0x1ad7('0x22')];var _0x4de367=_0x3c390b?_0x4f4abc['count']:_0x14cc83[_0x1ad7('0x22')]+_0x14cc83[_0x1ad7('0x20')];var _0x4bdab1;if(_0x4de367>=_0x46b5d3){_0x4de367=_0x46b5d3;_0x4bdab1=0xc8;}else{_0x4bdab1=0xce;}_0x43bb52[_0x1ad7('0x1d')](_0x4bdab1);return _0x43bb52[_0x1ad7('0x23')](_0x1ad7('0x24'),_0x487fae+'-'+_0x4de367+'/'+_0x46b5d3)[_0x1ad7('0x1e')](_0x4f4abc);}return null;};}function patchUpdates(_0x56d815){return function(_0x1c59c0){try{jsonpatch[_0x1ad7('0x25')](_0x1c59c0,_0x56d815,!![]);}catch(_0x4c3263){return BPromise[_0x1ad7('0x26')](_0x4c3263);}return _0x1c59c0[_0x1ad7('0x27')]();};}function saveUpdates(_0x336bd5,_0x70dcea){return function(_0x45a90e){if(_0x45a90e){return _0x45a90e[_0x1ad7('0x28')](_0x336bd5)[_0x1ad7('0x29')](function(_0x4bb7e4){return _0x4bb7e4;});}return null;};}function removeEntity(_0x58cc08,_0x226b89){return function(_0x2d3efa){if(_0x2d3efa){return _0x2d3efa[_0x1ad7('0x2a')]()[_0x1ad7('0x29')](function(){_0x58cc08[_0x1ad7('0x1d')](0xcc)[_0x1ad7('0x1c')]();});}};}function handleEntityNotFound(_0x355142,_0x4247a6){return function(_0x319b1d){if(!_0x319b1d){_0x355142[_0x1ad7('0x2b')](0x194);}return _0x319b1d;};}function handleError(_0x368ff5,_0x1ac83f){_0x1ac83f=_0x1ac83f||0x1f4;return function(_0x1473ef){logger[_0x1ad7('0x2c')](_0x1473ef[_0x1ad7('0x2d')]);if(_0x1473ef[_0x1ad7('0x2e')]){delete _0x1473ef[_0x1ad7('0x2e')];}_0x368ff5[_0x1ad7('0x1d')](_0x1ac83f)[_0x1ad7('0x2f')](_0x1473ef);};}exports[_0x1ad7('0x30')]=function(_0x42d82c,_0x1362d2){var _0x125c27={},_0x1fbc88={},_0x2ebe91={'count':0x0,'rows':[]};var _0x4e2859=_['map'](db[_0x1ad7('0x31')][_0x1ad7('0x32')],function(_0x28ed30){return{'name':_0x28ed30[_0x1ad7('0x33')],'type':_0x28ed30[_0x1ad7('0x34')]['key']};});_0x1fbc88[_0x1ad7('0x35')]=_[_0x1ad7('0x36')](_0x4e2859,_0x1ad7('0x2e'));_0x1fbc88['query']=_[_0x1ad7('0x37')](_0x42d82c['query']);_0x1fbc88[_0x1ad7('0x38')]=_['intersection'](_0x1fbc88[_0x1ad7('0x35')],_0x1fbc88['query']);_0x125c27['attributes']=_[_0x1ad7('0x39')](_0x1fbc88[_0x1ad7('0x35')],qs[_0x1ad7('0x3a')](_0x42d82c['query'][_0x1ad7('0x3a')]));_0x125c27[_0x1ad7('0x3b')]=_0x125c27[_0x1ad7('0x3b')][_0x1ad7('0x3c')]?_0x125c27[_0x1ad7('0x3b')]:_0x1fbc88[_0x1ad7('0x35')];if(!_0x42d82c[_0x1ad7('0x3d')][_0x1ad7('0x3e')]('nolimit')){_0x125c27[_0x1ad7('0x20')]=qs[_0x1ad7('0x20')](_0x42d82c['query'][_0x1ad7('0x20')]);_0x125c27[_0x1ad7('0x22')]=qs[_0x1ad7('0x22')](_0x42d82c['query'][_0x1ad7('0x22')]);}_0x125c27[_0x1ad7('0x3f')]=qs[_0x1ad7('0x40')](_0x42d82c[_0x1ad7('0x3d')][_0x1ad7('0x40')]);_0x125c27[_0x1ad7('0x41')]=qs['filters'](_[_0x1ad7('0x42')](_0x42d82c[_0x1ad7('0x3d')],_0x1fbc88[_0x1ad7('0x38')]),_0x4e2859);if(_0x42d82c[_0x1ad7('0x3d')][_0x1ad7('0x43')]){_0x125c27[_0x1ad7('0x41')]=_['merge'](_0x125c27[_0x1ad7('0x41')],{'$or':_[_0x1ad7('0x36')](_0x4e2859,function(_0x5e01c7){if(_0x5e01c7[_0x1ad7('0x34')]!==_0x1ad7('0x44')){var _0x40890e={};_0x40890e[_0x5e01c7[_0x1ad7('0x2e')]]={'$like':'%'+_0x42d82c[_0x1ad7('0x3d')][_0x1ad7('0x43')]+'%'};return _0x40890e;}})});}_0x125c27=_[_0x1ad7('0x45')]({},_0x125c27,_0x42d82c[_0x1ad7('0x46')]);var _0x76034e={'where':_0x125c27[_0x1ad7('0x41')]};return db[_0x1ad7('0x31')]['count'](_0x76034e)[_0x1ad7('0x29')](function(_0x1d3b02){_0x2ebe91['count']=_0x1d3b02;if(_0x42d82c[_0x1ad7('0x3d')][_0x1ad7('0x47')]){_0x125c27[_0x1ad7('0x48')]=[{'all':!![]}];}return db['SquareReport']['findAll'](_0x125c27);})[_0x1ad7('0x29')](function(_0x20e04b){_0x2ebe91[_0x1ad7('0x49')]=_0x20e04b;return _0x2ebe91;})['then'](respondWithFilteredResult(_0x1362d2,_0x125c27))['catch'](handleError(_0x1362d2,null));};exports[_0x1ad7('0x4a')]=function(_0x5b48c3,_0xc2bbc4){var _0x126ae4={'raw':!![],'where':{'id':_0x5b48c3[_0x1ad7('0x4b')]['id']}},_0xe55ed7={};_0xe55ed7[_0x1ad7('0x35')]=_['keys'](db[_0x1ad7('0x31')][_0x1ad7('0x32')]);_0xe55ed7['query']=_['keys'](_0x5b48c3[_0x1ad7('0x3d')]);_0xe55ed7['filters']=_['intersection'](_0xe55ed7[_0x1ad7('0x35')],_0xe55ed7[_0x1ad7('0x3d')]);_0x126ae4[_0x1ad7('0x3b')]=_[_0x1ad7('0x39')](_0xe55ed7[_0x1ad7('0x35')],qs[_0x1ad7('0x3a')](_0x5b48c3[_0x1ad7('0x3d')][_0x1ad7('0x3a')]));_0x126ae4[_0x1ad7('0x3b')]=_0x126ae4['attributes'][_0x1ad7('0x3c')]?_0x126ae4[_0x1ad7('0x3b')]:_0xe55ed7[_0x1ad7('0x35')];if(_0x5b48c3[_0x1ad7('0x3d')][_0x1ad7('0x47')]){_0x126ae4[_0x1ad7('0x48')]=[{'all':!![]}];}_0x126ae4=_[_0x1ad7('0x45')]({},_0x126ae4,_0x5b48c3[_0x1ad7('0x46')]);return db[_0x1ad7('0x31')][_0x1ad7('0x4c')](_0x126ae4)[_0x1ad7('0x29')](handleEntityNotFound(_0xc2bbc4,null))[_0x1ad7('0x29')](respondWithResult(_0xc2bbc4,null))[_0x1ad7('0x4d')](handleError(_0xc2bbc4,null));};exports[_0x1ad7('0x4e')]=function(_0x4483f5,_0x37c9b3){return db[_0x1ad7('0x31')][_0x1ad7('0x4e')](_0x4483f5[_0x1ad7('0x4f')],{})[_0x1ad7('0x29')](respondWithResult(_0x37c9b3,0xc9))[_0x1ad7('0x4d')](handleError(_0x37c9b3,null));};exports['update']=function(_0x377c1c,_0x56c7e3){if(_0x377c1c[_0x1ad7('0x4f')]['id']){delete _0x377c1c[_0x1ad7('0x4f')]['id'];}return db[_0x1ad7('0x31')][_0x1ad7('0x4c')]({'where':{'id':_0x377c1c[_0x1ad7('0x4b')]['id']}})[_0x1ad7('0x29')](handleEntityNotFound(_0x56c7e3,null))['then'](saveUpdates(_0x377c1c['body'],null))['then'](respondWithResult(_0x56c7e3,null))['catch'](handleError(_0x56c7e3,null));};exports['destroy']=function(_0x58b12f,_0x15649d){return db[_0x1ad7('0x31')]['find']({'where':{'id':_0x58b12f[_0x1ad7('0x4b')]['id']}})[_0x1ad7('0x29')](handleEntityNotFound(_0x15649d,null))[_0x1ad7('0x29')](removeEntity(_0x15649d,null))[_0x1ad7('0x4d')](handleError(_0x15649d,null));};exports['describe']=function(_0x395cf9,_0x1335b5){return db[_0x1ad7('0x31')]['describe']()[_0x1ad7('0x29')](respondWithResult(_0x1335b5,null))['catch'](handleError(_0x1335b5,null));};
\ No newline at end of file
+var _0xbf77=['../../mysqldb','end','status','limit','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','send','index','map','rawAttributes','key','model','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','merge','VIRTUAL','filter','SquareReport','includeAll','findAll','rows','catch','include','options','find','create','body','destroy','params','describe','eml-format','zip-dir','moment','bluebird','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util'];(function(_0x2eef1d,_0x34ac7d){var _0x2e46b4=function(_0x413165){while(--_0x413165){_0x2eef1d['push'](_0x2eef1d['shift']());}};_0x2e46b4(++_0x34ac7d);}(_0xbf77,0x1ef));var _0x7bf7=function(_0x4a747d,_0x3b747f){_0x4a747d=_0x4a747d-0x0;var _0x3a5b5c=_0xbf77[_0x4a747d];return _0x3a5b5c;};'use strict';var emlformat=require(_0x7bf7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7bf7('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7bf7('0x2'));var BPromise=require(_0x7bf7('0x3'));var Mustache=require('mustache');var util=require(_0x7bf7('0x4'));var path=require(_0x7bf7('0x5'));var sox=require('sox');var csv=require(_0x7bf7('0x6'));var ejs=require(_0x7bf7('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x7bf7('0x8'));var crypto=require(_0x7bf7('0x9'));var jsforce=require(_0x7bf7('0xa'));var deskjs=require(_0x7bf7('0xb'));var toCsv=require('to-csv');var querystring=require(_0x7bf7('0xc'));var Papa=require(_0x7bf7('0xd'));var Redis=require(_0x7bf7('0xe'));var authService=require(_0x7bf7('0xf'));var qs=require(_0x7bf7('0x10'));var as=require(_0x7bf7('0x11'));var hardwareService=require(_0x7bf7('0x12'));var logger=require(_0x7bf7('0x13'))(_0x7bf7('0x14'));var utils=require(_0x7bf7('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x7bf7('0x16'));var db=require(_0x7bf7('0x17'))['db'];function respondWithStatusCode(_0x4a7d8c,_0x20511f){_0x20511f=_0x20511f||0xcc;return function(_0x260de2){if(_0x260de2){return _0x4a7d8c['sendStatus'](_0x20511f);}return _0x4a7d8c['status'](_0x20511f)[_0x7bf7('0x18')]();};}function respondWithResult(_0x4ae90f,_0x5dd327){_0x5dd327=_0x5dd327||0xc8;return function(_0x4f6352){if(_0x4f6352){return _0x4ae90f[_0x7bf7('0x19')](_0x5dd327)['json'](_0x4f6352);}};}function respondWithFilteredResult(_0x43623b,_0x34e697){return function(_0x2061c4){if(_0x2061c4){var _0x59fd0d=typeof _0x34e697['offset']==='undefined'&&typeof _0x34e697[_0x7bf7('0x1a')]===_0x7bf7('0x1b');var _0x1b2aca=_0x2061c4[_0x7bf7('0x1c')];var _0x56f683=_0x59fd0d?0x0:_0x34e697[_0x7bf7('0x1d')];var _0x5e7f58=_0x59fd0d?_0x2061c4[_0x7bf7('0x1c')]:_0x34e697[_0x7bf7('0x1d')]+_0x34e697[_0x7bf7('0x1a')];var _0xbbc12e;if(_0x5e7f58>=_0x1b2aca){_0x5e7f58=_0x1b2aca;_0xbbc12e=0xc8;}else{_0xbbc12e=0xce;}_0x43623b[_0x7bf7('0x19')](_0xbbc12e);return _0x43623b[_0x7bf7('0x1e')](_0x7bf7('0x1f'),_0x56f683+'-'+_0x5e7f58+'/'+_0x1b2aca)['json'](_0x2061c4);}return null;};}function patchUpdates(_0x14b817){return function(_0x28d9f2){try{jsonpatch[_0x7bf7('0x20')](_0x28d9f2,_0x14b817,!![]);}catch(_0x1af99a){return BPromise[_0x7bf7('0x21')](_0x1af99a);}return _0x28d9f2[_0x7bf7('0x22')]();};}function saveUpdates(_0x588b48,_0xd2141f){return function(_0x3d3eff){if(_0x3d3eff){return _0x3d3eff[_0x7bf7('0x23')](_0x588b48)[_0x7bf7('0x24')](function(_0x3fd4d8){return _0x3fd4d8;});}return null;};}function removeEntity(_0x41eb3e,_0x28a1a5){return function(_0x24877a){if(_0x24877a){return _0x24877a['destroy']()['then'](function(){_0x41eb3e[_0x7bf7('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1809c2,_0x1f4109){return function(_0x14ae67){if(!_0x14ae67){_0x1809c2[_0x7bf7('0x25')](0x194);}return _0x14ae67;};}function handleError(_0x11935e,_0x65a3be){_0x65a3be=_0x65a3be||0x1f4;return function(_0x2c2642){logger[_0x7bf7('0x26')](_0x2c2642[_0x7bf7('0x27')]);if(_0x2c2642['name']){delete _0x2c2642['name'];}_0x11935e['status'](_0x65a3be)[_0x7bf7('0x28')](_0x2c2642);};}exports[_0x7bf7('0x29')]=function(_0x2b7e75,_0x5783bc){var _0x336299={},_0x542991={},_0x2f4cc6={'count':0x0,'rows':[]};var _0x5f1fad=_[_0x7bf7('0x2a')](db['SquareReport'][_0x7bf7('0x2b')],function(_0x17e4b6){return{'name':_0x17e4b6['fieldName'],'type':_0x17e4b6['type'][_0x7bf7('0x2c')]};});_0x542991[_0x7bf7('0x2d')]=_[_0x7bf7('0x2a')](_0x5f1fad,_0x7bf7('0x2e'));_0x542991[_0x7bf7('0x2f')]=_[_0x7bf7('0x30')](_0x2b7e75[_0x7bf7('0x2f')]);_0x542991['filters']=_[_0x7bf7('0x31')](_0x542991['model'],_0x542991[_0x7bf7('0x2f')]);_0x336299[_0x7bf7('0x32')]=_['intersection'](_0x542991[_0x7bf7('0x2d')],qs[_0x7bf7('0x33')](_0x2b7e75[_0x7bf7('0x2f')][_0x7bf7('0x33')]));_0x336299['attributes']=_0x336299[_0x7bf7('0x32')][_0x7bf7('0x34')]?_0x336299[_0x7bf7('0x32')]:_0x542991['model'];if(!_0x2b7e75[_0x7bf7('0x2f')][_0x7bf7('0x35')](_0x7bf7('0x36'))){_0x336299[_0x7bf7('0x1a')]=qs[_0x7bf7('0x1a')](_0x2b7e75['query'][_0x7bf7('0x1a')]);_0x336299[_0x7bf7('0x1d')]=qs[_0x7bf7('0x1d')](_0x2b7e75[_0x7bf7('0x2f')]['offset']);}_0x336299['order']=qs[_0x7bf7('0x37')](_0x2b7e75[_0x7bf7('0x2f')][_0x7bf7('0x37')]);_0x336299[_0x7bf7('0x38')]=qs[_0x7bf7('0x39')](_['pick'](_0x2b7e75[_0x7bf7('0x2f')],_0x542991[_0x7bf7('0x39')]),_0x5f1fad);if(_0x2b7e75[_0x7bf7('0x2f')]['filter']){_0x336299[_0x7bf7('0x38')]=_[_0x7bf7('0x3a')](_0x336299[_0x7bf7('0x38')],{'$or':_[_0x7bf7('0x2a')](_0x5f1fad,function(_0x413b32){if(_0x413b32['type']!==_0x7bf7('0x3b')){var _0x17a9c0={};_0x17a9c0[_0x413b32[_0x7bf7('0x2e')]]={'$like':'%'+_0x2b7e75['query'][_0x7bf7('0x3c')]+'%'};return _0x17a9c0;}})});}_0x336299=_[_0x7bf7('0x3a')]({},_0x336299,_0x2b7e75['options']);var _0x170ed3={'where':_0x336299['where']};return db[_0x7bf7('0x3d')][_0x7bf7('0x1c')](_0x170ed3)[_0x7bf7('0x24')](function(_0x39c7d3){_0x2f4cc6[_0x7bf7('0x1c')]=_0x39c7d3;if(_0x2b7e75['query'][_0x7bf7('0x3e')]){_0x336299['include']=[{'all':!![]}];}return db[_0x7bf7('0x3d')][_0x7bf7('0x3f')](_0x336299);})[_0x7bf7('0x24')](function(_0x112d77){_0x2f4cc6[_0x7bf7('0x40')]=_0x112d77;return _0x2f4cc6;})[_0x7bf7('0x24')](respondWithFilteredResult(_0x5783bc,_0x336299))[_0x7bf7('0x41')](handleError(_0x5783bc,null));};exports['show']=function(_0x16ac40,_0x3ca013){var _0x3c5ade={'raw':!![],'where':{'id':_0x16ac40['params']['id']}},_0x5daae4={};_0x5daae4['model']=_[_0x7bf7('0x30')](db[_0x7bf7('0x3d')]['rawAttributes']);_0x5daae4['query']=_['keys'](_0x16ac40[_0x7bf7('0x2f')]);_0x5daae4[_0x7bf7('0x39')]=_[_0x7bf7('0x31')](_0x5daae4['model'],_0x5daae4[_0x7bf7('0x2f')]);_0x3c5ade['attributes']=_['intersection'](_0x5daae4[_0x7bf7('0x2d')],qs[_0x7bf7('0x33')](_0x16ac40['query'][_0x7bf7('0x33')]));_0x3c5ade[_0x7bf7('0x32')]=_0x3c5ade[_0x7bf7('0x32')]['length']?_0x3c5ade[_0x7bf7('0x32')]:_0x5daae4[_0x7bf7('0x2d')];if(_0x16ac40['query']['includeAll']){_0x3c5ade[_0x7bf7('0x42')]=[{'all':!![]}];}_0x3c5ade=_[_0x7bf7('0x3a')]({},_0x3c5ade,_0x16ac40[_0x7bf7('0x43')]);return db[_0x7bf7('0x3d')][_0x7bf7('0x44')](_0x3c5ade)['then'](handleEntityNotFound(_0x3ca013,null))['then'](respondWithResult(_0x3ca013,null))[_0x7bf7('0x41')](handleError(_0x3ca013,null));};exports[_0x7bf7('0x45')]=function(_0x31cccc,_0x4af225){return db[_0x7bf7('0x3d')]['create'](_0x31cccc[_0x7bf7('0x46')],{})['then'](respondWithResult(_0x4af225,0xc9))[_0x7bf7('0x41')](handleError(_0x4af225,null));};exports['update']=function(_0x4a2ef1,_0x51587e){if(_0x4a2ef1[_0x7bf7('0x46')]['id']){delete _0x4a2ef1[_0x7bf7('0x46')]['id'];}return db[_0x7bf7('0x3d')][_0x7bf7('0x44')]({'where':{'id':_0x4a2ef1['params']['id']}})[_0x7bf7('0x24')](handleEntityNotFound(_0x51587e,null))[_0x7bf7('0x24')](saveUpdates(_0x4a2ef1['body'],null))['then'](respondWithResult(_0x51587e,null))['catch'](handleError(_0x51587e,null));};exports[_0x7bf7('0x47')]=function(_0x1f9ff0,_0x2576f0){return db[_0x7bf7('0x3d')][_0x7bf7('0x44')]({'where':{'id':_0x1f9ff0[_0x7bf7('0x48')]['id']}})[_0x7bf7('0x24')](handleEntityNotFound(_0x2576f0,null))['then'](removeEntity(_0x2576f0,null))[_0x7bf7('0x41')](handleError(_0x2576f0,null));};exports[_0x7bf7('0x49')]=function(_0x1812f2,_0x1b1cb9){return db[_0x7bf7('0x3d')]['describe']()[_0x7bf7('0x24')](respondWithResult(_0x1b1cb9,null))['catch'](handleError(_0x1b1cb9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2904=['api','moment','bluebird','path','../../config/environment','exports','define','SquareReport','report_square','uniqueid','project_name','leaveAt','util','../../config/logger'];(function(_0x432259,_0x23fdba){var _0x47b232=function(_0x57f178){while(--_0x57f178){_0x432259['push'](_0x432259['shift']());}};_0x47b232(++_0x23fdba);}(_0x2904,0x186));var _0x4290=function(_0x5cc23b,_0x24ab32){_0x5cc23b=_0x5cc23b-0x0;var _0x31e7b9=_0x2904[_0x5cc23b];return _0x31e7b9;};'use strict';var _=require('lodash');var util=require(_0x4290('0x0'));var logger=require(_0x4290('0x1'))(_0x4290('0x2'));var moment=require(_0x4290('0x3'));var BPromise=require(_0x4290('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4290('0x5'));var rimraf=require('rimraf');var config=require(_0x4290('0x6'));var attributes=require('./squareReport.attributes');module[_0x4290('0x7')]=function(_0x33e3df,_0x59f729){return _0x33e3df[_0x4290('0x8')](_0x4290('0x9'),attributes,{'tableName':_0x4290('0xa'),'paranoid':![],'indexes':[{'name':'uid_pname','fields':[_0x4290('0xb'),_0x4290('0xc')]},{'name':'leaveAt','fields':[_0x4290('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x913f=['./squareReport.attributes','exports','define','uid_pname','uniqueid','project_name','leaveAt','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment'];(function(_0xd1d19a,_0x1933f0){var _0x52a79d=function(_0x5199e2){while(--_0x5199e2){_0xd1d19a['push'](_0xd1d19a['shift']());}};_0x52a79d(++_0x1933f0);}(_0x913f,0x1b7));var _0xf913=function(_0x3ef1ad,_0x26152b){_0x3ef1ad=_0x3ef1ad-0x0;var _0x965f19=_0x913f[_0x3ef1ad];return _0x965f19;};'use strict';var _=require(_0xf913('0x0'));var util=require(_0xf913('0x1'));var logger=require(_0xf913('0x2'))(_0xf913('0x3'));var moment=require(_0xf913('0x4'));var BPromise=require(_0xf913('0x5'));var rp=require(_0xf913('0x6'));var fs=require('fs');var path=require(_0xf913('0x7'));var rimraf=require('rimraf');var config=require(_0xf913('0x8'));var attributes=require(_0xf913('0x9'));module[_0xf913('0xa')]=function(_0x1e25d4,_0x4e8d33){return _0x1e25d4[_0xf913('0xb')]('SquareReport',attributes,{'tableName':'report_square','paranoid':![],'indexes':[{'name':_0xf913('0xc'),'fields':[_0xf913('0xd'),_0xf913('0xe')]},{'name':_0xf913('0xf'),'fields':['leaveAt']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x979f=['debug','stringify','error','SquareReport,\x20%s,\x20%s','message','result','catch','CreateSquareReport','SquareReport','options','raw','body','where','attributes','limit','UpdateSquareReport','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent'];(function(_0x2356e6,_0x130b1f){var _0x31094e=function(_0x5d8d91){while(--_0x5d8d91){_0x2356e6['push'](_0x2356e6['shift']());}};_0x31094e(++_0x130b1f);}(_0x979f,0x170));var _0xf979=function(_0xd4ef9e,_0x81fe1a){_0xd4ef9e=_0xd4ef9e-0x0;var _0x376361=_0x979f[_0xd4ef9e];return _0x376361;};'use strict';var _=require(_0xf979('0x0'));var util=require('util');var moment=require(_0xf979('0x1'));var BPromise=require(_0xf979('0x2'));var rs=require(_0xf979('0x3'));var fs=require('fs');var Redis=require(_0xf979('0x4'));var db=require(_0xf979('0x5'))['db'];var utils=require(_0xf979('0x6'));var logger=require(_0xf979('0x7'))('rpc');var config=require(_0xf979('0x8'));var jayson=require(_0xf979('0x9'));var client=jayson[_0xf979('0xa')][_0xf979('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5f266f,_0x54900f,_0x1ae8a7){return new BPromise(function(_0x34ac0f,_0xe8d39b){return client[_0xf979('0xc')](_0x5f266f,_0x1ae8a7)[_0xf979('0xd')](function(_0x31510e){logger[_0xf979('0xe')]('SquareReport,\x20%s,\x20%s',_0x54900f,_0xf979('0xf'));logger[_0xf979('0x10')]('SquareReport,\x20%s,\x20%s,\x20%s',_0x54900f,_0xf979('0xf'),JSON[_0xf979('0x11')](_0x31510e));if(_0x31510e[_0xf979('0x12')]){if(_0x31510e[_0xf979('0x12')]['code']===0x1f4){logger['error'](_0xf979('0x13'),_0x54900f,_0x31510e[_0xf979('0x12')][_0xf979('0x14')]);return _0xe8d39b(_0x31510e['error'][_0xf979('0x14')]);}logger[_0xf979('0x12')]('SquareReport,\x20%s,\x20%s',_0x54900f,_0x31510e[_0xf979('0x12')]['message']);return _0x34ac0f(_0x31510e[_0xf979('0x12')][_0xf979('0x14')]);}else{logger[_0xf979('0xe')](_0xf979('0x13'),_0x54900f,'request\x20sent');_0x34ac0f(_0x31510e[_0xf979('0x15')]['message']);}})[_0xf979('0x16')](function(_0x5ceefb){logger['error'](_0xf979('0x13'),_0x54900f,_0x5ceefb);_0xe8d39b(_0x5ceefb);});});}exports[_0xf979('0x17')]=function(_0x3b1e83){var _0x51db56=this;return new Promise(function(_0x293eba,_0x774261){return db[_0xf979('0x18')]['create'](_0x3b1e83['body'],{'raw':_0x3b1e83[_0xf979('0x19')]?_0x3b1e83[_0xf979('0x19')][_0xf979('0x1a')]===undefined?!![]:![]:!![]})['then'](function(_0x432dd1){logger[_0xf979('0xe')]('CreateSquareReport',_0x3b1e83);logger[_0xf979('0x10')](_0xf979('0x17'),_0x3b1e83,JSON[_0xf979('0x11')](_0x432dd1));_0x293eba(_0x432dd1);})['catch'](function(_0x1426ba){logger[_0xf979('0x12')](_0xf979('0x17'),_0x1426ba[_0xf979('0x14')],_0x3b1e83);_0x774261(_0x51db56[_0xf979('0x12')](0x1f4,_0x1426ba['message']));});});};exports['UpdateSquareReport']=function(_0xc49b82){var _0x4af317=this;return new Promise(function(_0x17eb8b,_0x3e6d1a){return db[_0xf979('0x18')]['update'](_0xc49b82[_0xf979('0x1b')],{'raw':_0xc49b82['options']?_0xc49b82[_0xf979('0x19')][_0xf979('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0xc49b82[_0xf979('0x19')]?_0xc49b82['options'][_0xf979('0x1c')]||null:null,'attributes':_0xc49b82[_0xf979('0x19')]?_0xc49b82[_0xf979('0x19')][_0xf979('0x1d')]||null:null,'limit':_0xc49b82[_0xf979('0x19')]?_0xc49b82[_0xf979('0x19')][_0xf979('0x1e')]||null:null})['then'](function(_0x1e2711){logger[_0xf979('0xe')]('UpdateSquareReport',_0xc49b82);logger[_0xf979('0x10')]('UpdateSquareReport',_0xc49b82,JSON[_0xf979('0x11')](_0x1e2711));_0x17eb8b(_0x1e2711);})[_0xf979('0x16')](function(_0x4fdd9b){logger[_0xf979('0x12')](_0xf979('0x1f'),_0x4fdd9b[_0xf979('0x14')],_0xc49b82);_0x3e6d1a(_0x4af317[_0xf979('0x12')](0x1f4,_0x4fdd9b[_0xf979('0x14')]));});});};
\ No newline at end of file
+var _0x705d=['../../config/environment','client','request','then','info','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','SquareReport,\x20%s,\x20%s','result','catch','CreateSquareReport','SquareReport','body','options','UpdateSquareReport','update','raw','attributes','lodash','util','moment','bluebird','randomstring','../../config/logger','rpc'];(function(_0x168127,_0x59cea1){var _0x4c99ad=function(_0x4ab3f2){while(--_0x4ab3f2){_0x168127['push'](_0x168127['shift']());}};_0x4c99ad(++_0x59cea1);}(_0x705d,0xcb));var _0xd705=function(_0x3f7836,_0x238cec){_0x3f7836=_0x3f7836-0x0;var _0x101912=_0x705d[_0x3f7836];return _0x101912;};'use strict';var _=require(_0xd705('0x0'));var util=require(_0xd705('0x1'));var moment=require(_0xd705('0x2'));var BPromise=require(_0xd705('0x3'));var rs=require(_0xd705('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xd705('0x5'))(_0xd705('0x6'));var config=require(_0xd705('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xd705('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x514179,_0x59740c,_0x11f813){return new BPromise(function(_0x394c49,_0x354ef5){return client[_0xd705('0x9')](_0x514179,_0x11f813)[_0xd705('0xa')](function(_0x150fbe){logger[_0xd705('0xb')]('SquareReport,\x20%s,\x20%s',_0x59740c,_0xd705('0xc'));logger[_0xd705('0xd')](_0xd705('0xe'),_0x59740c,'request\x20sent',JSON[_0xd705('0xf')](_0x150fbe));if(_0x150fbe[_0xd705('0x10')]){if(_0x150fbe[_0xd705('0x10')][_0xd705('0x11')]===0x1f4){logger[_0xd705('0x10')]('SquareReport,\x20%s,\x20%s',_0x59740c,_0x150fbe[_0xd705('0x10')][_0xd705('0x12')]);return _0x354ef5(_0x150fbe[_0xd705('0x10')]['message']);}logger['error'](_0xd705('0x13'),_0x59740c,_0x150fbe[_0xd705('0x10')][_0xd705('0x12')]);return _0x394c49(_0x150fbe['error']['message']);}else{logger[_0xd705('0xb')]('SquareReport,\x20%s,\x20%s',_0x59740c,'request\x20sent');_0x394c49(_0x150fbe[_0xd705('0x14')][_0xd705('0x12')]);}})[_0xd705('0x15')](function(_0x136f01){logger[_0xd705('0x10')](_0xd705('0x13'),_0x59740c,_0x136f01);_0x354ef5(_0x136f01);});});}exports[_0xd705('0x16')]=function(_0xb25b1f){var _0x3639c3=this;return new Promise(function(_0x1a2b77,_0x171e8e){return db[_0xd705('0x17')]['create'](_0xb25b1f[_0xd705('0x18')],{'raw':_0xb25b1f[_0xd705('0x19')]?_0xb25b1f[_0xd705('0x19')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x5df8ca){logger['info'](_0xd705('0x16'),_0xb25b1f);logger[_0xd705('0xd')](_0xd705('0x16'),_0xb25b1f,JSON[_0xd705('0xf')](_0x5df8ca));_0x1a2b77(_0x5df8ca);})[_0xd705('0x15')](function(_0x4be88f){logger[_0xd705('0x10')](_0xd705('0x16'),_0x4be88f['message'],_0xb25b1f);_0x171e8e(_0x3639c3[_0xd705('0x10')](0x1f4,_0x4be88f['message']));});});};exports[_0xd705('0x1a')]=function(_0x26456b){var _0x158d6d=this;return new Promise(function(_0x24ea63,_0x21092f){return db['SquareReport'][_0xd705('0x1b')](_0x26456b[_0xd705('0x18')],{'raw':_0x26456b[_0xd705('0x19')]?_0x26456b[_0xd705('0x19')][_0xd705('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x26456b['options']?_0x26456b['options']['where']||null:null,'attributes':_0x26456b[_0xd705('0x19')]?_0x26456b[_0xd705('0x19')][_0xd705('0x1d')]||null:null,'limit':_0x26456b[_0xd705('0x19')]?_0x26456b[_0xd705('0x19')]['limit']||null:null})[_0xd705('0xa')](function(_0x15c6b9){logger['info'](_0xd705('0x1a'),_0x26456b);logger[_0xd705('0xd')]('UpdateSquareReport',_0x26456b,JSON['stringify'](_0x15c6b9));_0x24ea63(_0x15c6b9);})[_0xd705('0x15')](function(_0x54ed46){logger[_0xd705('0x10')](_0xd705('0x1a'),_0x54ed46[_0xd705('0x12')],_0x26456b);_0x21092f(_0x158d6d[_0xd705('0x10')](0x1f4,_0x54ed46['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93f3=['path','express','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','index','isAuthenticated','describe','show','create','put','/:id','update','delete','destroy','exports','util'];(function(_0x9329b1,_0x33fb9c){var _0x1418d1=function(_0x144a1c){while(--_0x144a1c){_0x9329b1['push'](_0x9329b1['shift']());}};_0x1418d1(++_0x33fb9c);}(_0x93f3,0x155));var _0x393f=function(_0x178506,_0x56838b){_0x178506=_0x178506-0x0;var _0x397b4e=_0x93f3[_0x178506];return _0x397b4e;};'use strict';var multer=require('multer');var util=require(_0x393f('0x0'));var path=require(_0x393f('0x1'));var timeout=require('connect-timeout');var express=require(_0x393f('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x393f('0x3'));var config=require(_0x393f('0x4'));var controller=require(_0x393f('0x5'));router[_0x393f('0x6')]('/',auth['isAuthenticated'](),controller[_0x393f('0x7')]);router['get']('/describe',auth[_0x393f('0x8')](),controller[_0x393f('0x9')]);router['get']('/:id',auth[_0x393f('0x8')](),controller[_0x393f('0xa')]);router['post']('/',auth[_0x393f('0x8')](),controller[_0x393f('0xb')]);router[_0x393f('0xc')](_0x393f('0xd'),auth[_0x393f('0x8')](),controller[_0x393f('0xe')]);router[_0x393f('0xf')](_0x393f('0xd'),auth['isAuthenticated'](),controller[_0x393f('0x10')]);module[_0x393f('0x11')]=router;
\ No newline at end of file
+var _0x8461=['show','post','put','update','delete','destroy','util','path','express','Router','fs-extra','../../components/interaction/service','get','index','/describe','isAuthenticated','/:id'];(function(_0x399b34,_0x30d7e0){var _0xd355a7=function(_0x515fe8){while(--_0x515fe8){_0x399b34['push'](_0x399b34['shift']());}};_0xd355a7(++_0x30d7e0);}(_0x8461,0x149));var _0x1846=function(_0x57220c,_0x5b5efd){_0x57220c=_0x57220c-0x0;var _0x372396=_0x8461[_0x57220c];return _0x372396;};'use strict';var multer=require('multer');var util=require(_0x1846('0x0'));var path=require(_0x1846('0x1'));var timeout=require('connect-timeout');var express=require(_0x1846('0x2'));var router=express[_0x1846('0x3')]();var fs_extra=require(_0x1846('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x1846('0x5'));var config=require('../../config/environment');var controller=require('./squareReportDetail.controller');router[_0x1846('0x6')]('/',auth['isAuthenticated'](),controller[_0x1846('0x7')]);router['get'](_0x1846('0x8'),auth[_0x1846('0x9')](),controller['describe']);router['get'](_0x1846('0xa'),auth[_0x1846('0x9')](),controller[_0x1846('0xb')]);router[_0x1846('0xc')]('/',auth[_0x1846('0x9')](),controller['create']);router[_0x1846('0xd')](_0x1846('0xa'),auth[_0x1846('0x9')](),controller[_0x1846('0xe')]);router[_0x1846('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x1846('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd152=['STRING','exports'];(function(_0x4ab001,_0x532960){var _0x52c134=function(_0x3f4fc9){while(--_0x3f4fc9){_0x4ab001['push'](_0x4ab001['shift']());}};_0x52c134(++_0x532960);}(_0xd152,0x193));var _0x2d15=function(_0x32bb6c,_0x51ddcd){_0x32bb6c=_0x32bb6c-0x0;var _0x41b8f9=_0xd152[_0x32bb6c];return _0x41b8f9;};'use strict';var Sequelize=require('sequelize');module[_0x2d15('0x0')]={'uniqueid':{'type':Sequelize['STRING']},'node':{'type':Sequelize['STRING']},'application':{'type':Sequelize[_0x2d15('0x1')]},'data':{'type':Sequelize['TEXT']},'project_name':{'type':Sequelize[_0x2d15('0x1')]},'callerid':{'type':Sequelize[_0x2d15('0x1')]}};
\ No newline at end of file
+var _0x7ef9=['sequelize','exports','STRING','TEXT'];(function(_0x11885e,_0x36293c){var _0x3886f7=function(_0x39c2c5){while(--_0x39c2c5){_0x11885e['push'](_0x11885e['shift']());}};_0x3886f7(++_0x36293c);}(_0x7ef9,0x1b8));var _0x97ef=function(_0x303ae9,_0x3118fd){_0x303ae9=_0x303ae9-0x0;var _0x504681=_0x7ef9[_0x303ae9];return _0x504681;};'use strict';var Sequelize=require(_0x97ef('0x0'));module[_0x97ef('0x1')]={'uniqueid':{'type':Sequelize[_0x97ef('0x2')]},'node':{'type':Sequelize[_0x97ef('0x2')]},'application':{'type':Sequelize[_0x97ef('0x2')]},'data':{'type':Sequelize[_0x97ef('0x3')]},'project_name':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0x97ef('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb068=['sox','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','status','json','limit','undefined','count','offset','Content-Range','apply','reject','update','then','sendStatus','error','stack','name','send','index','SquareDetailsReport','rawAttributes','fieldName','key','map','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','type','merge','options','findAll','show','includeAll','include','create','body','catch','find','params','describe','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x171520,_0x1cee8c){var _0x3cc729=function(_0x201c4a){while(--_0x201c4a){_0x171520['push'](_0x171520['shift']());}};_0x3cc729(++_0x1cee8c);}(_0xb068,0x119));var _0x8b06=function(_0x53f7ed,_0x230ad8){_0x53f7ed=_0x53f7ed-0x0;var _0x4bdf47=_0xb068[_0x53f7ed];return _0x4bdf47;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8b06('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8b06('0x1'));var rp=require(_0x8b06('0x2'));var moment=require(_0x8b06('0x3'));var BPromise=require(_0x8b06('0x4'));var Mustache=require('mustache');var util=require(_0x8b06('0x5'));var path=require(_0x8b06('0x6'));var sox=require(_0x8b06('0x7'));var csv=require(_0x8b06('0x8'));var ejs=require(_0x8b06('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8b06('0xa'));var squel=require(_0x8b06('0xb'));var crypto=require(_0x8b06('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x8b06('0xd'));var toCsv=require(_0x8b06('0x8'));var querystring=require('querystring');var Papa=require(_0x8b06('0xe'));var Redis=require(_0x8b06('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x8b06('0x10'));var as=require(_0x8b06('0x11'));var hardwareService=require(_0x8b06('0x12'));var logger=require(_0x8b06('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x8b06('0x14'));var db=require(_0x8b06('0x15'))['db'];function respondWithStatusCode(_0x5c124f,_0x34f1a8){_0x34f1a8=_0x34f1a8||0xcc;return function(_0x278d45){if(_0x278d45){return _0x5c124f['sendStatus'](_0x34f1a8);}return _0x5c124f[_0x8b06('0x16')](_0x34f1a8)['end']();};}function respondWithResult(_0x165f97,_0x48fd2f){_0x48fd2f=_0x48fd2f||0xc8;return function(_0x1c10d6){if(_0x1c10d6){return _0x165f97[_0x8b06('0x16')](_0x48fd2f)[_0x8b06('0x17')](_0x1c10d6);}};}function respondWithFilteredResult(_0x204e0d,_0x41f4f2){return function(_0x3b9d61){if(_0x3b9d61){var _0x4f10e2=typeof _0x41f4f2['offset']==='undefined'&&typeof _0x41f4f2[_0x8b06('0x18')]===_0x8b06('0x19');var _0x5ae0c4=_0x3b9d61['count'];var _0x1afef4=_0x4f10e2?0x0:_0x41f4f2['offset'];var _0x5d4e7e=_0x4f10e2?_0x3b9d61[_0x8b06('0x1a')]:_0x41f4f2[_0x8b06('0x1b')]+_0x41f4f2[_0x8b06('0x18')];var _0x1f009d;if(_0x5d4e7e>=_0x5ae0c4){_0x5d4e7e=_0x5ae0c4;_0x1f009d=0xc8;}else{_0x1f009d=0xce;}_0x204e0d['status'](_0x1f009d);return _0x204e0d['set'](_0x8b06('0x1c'),_0x1afef4+'-'+_0x5d4e7e+'/'+_0x5ae0c4)[_0x8b06('0x17')](_0x3b9d61);}return null;};}function patchUpdates(_0x1c9f7d){return function(_0xef21f1){try{jsonpatch[_0x8b06('0x1d')](_0xef21f1,_0x1c9f7d,!![]);}catch(_0x5bf83a){return BPromise[_0x8b06('0x1e')](_0x5bf83a);}return _0xef21f1['save']();};}function saveUpdates(_0x296fab,_0x416451){return function(_0x5d99b6){if(_0x5d99b6){return _0x5d99b6[_0x8b06('0x1f')](_0x296fab)[_0x8b06('0x20')](function(_0x282624){return _0x282624;});}return null;};}function removeEntity(_0x505c6d,_0xe40364){return function(_0x43caef){if(_0x43caef){return _0x43caef['destroy']()['then'](function(){_0x505c6d[_0x8b06('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3470e2,_0x41c454){return function(_0x382585){if(!_0x382585){_0x3470e2[_0x8b06('0x21')](0x194);}return _0x382585;};}function handleError(_0x46ed27,_0x2b45cb){_0x2b45cb=_0x2b45cb||0x1f4;return function(_0x3ecb26){logger[_0x8b06('0x22')](_0x3ecb26[_0x8b06('0x23')]);if(_0x3ecb26[_0x8b06('0x24')]){delete _0x3ecb26[_0x8b06('0x24')];}_0x46ed27[_0x8b06('0x16')](_0x2b45cb)[_0x8b06('0x25')](_0x3ecb26);};}exports[_0x8b06('0x26')]=function(_0x4b9b42,_0xe55b69){var _0x720eca={},_0xfba18c={},_0x1153d2={'count':0x0,'rows':[]};var _0x5f2fe8=_['map'](db[_0x8b06('0x27')][_0x8b06('0x28')],function(_0x135478){return{'name':_0x135478[_0x8b06('0x29')],'type':_0x135478['type'][_0x8b06('0x2a')]};});_0xfba18c['model']=_[_0x8b06('0x2b')](_0x5f2fe8,_0x8b06('0x24'));_0xfba18c[_0x8b06('0x2c')]=_[_0x8b06('0x2d')](_0x4b9b42['query']);_0xfba18c[_0x8b06('0x2e')]=_[_0x8b06('0x2f')](_0xfba18c[_0x8b06('0x30')],_0xfba18c['query']);_0x720eca['attributes']=_[_0x8b06('0x2f')](_0xfba18c[_0x8b06('0x30')],qs[_0x8b06('0x31')](_0x4b9b42[_0x8b06('0x2c')][_0x8b06('0x31')]));_0x720eca[_0x8b06('0x32')]=_0x720eca[_0x8b06('0x32')][_0x8b06('0x33')]?_0x720eca['attributes']:_0xfba18c[_0x8b06('0x30')];if(!_0x4b9b42['query'][_0x8b06('0x34')](_0x8b06('0x35'))){_0x720eca['limit']=qs['limit'](_0x4b9b42['query'][_0x8b06('0x18')]);_0x720eca[_0x8b06('0x1b')]=qs[_0x8b06('0x1b')](_0x4b9b42['query'][_0x8b06('0x1b')]);}_0x720eca[_0x8b06('0x36')]=qs[_0x8b06('0x37')](_0x4b9b42[_0x8b06('0x2c')]['sort']);_0x720eca[_0x8b06('0x38')]=qs['filters'](_[_0x8b06('0x39')](_0x4b9b42[_0x8b06('0x2c')],_0xfba18c[_0x8b06('0x2e')]),_0x5f2fe8);if(_0x4b9b42[_0x8b06('0x2c')][_0x8b06('0x3a')]){_0x720eca[_0x8b06('0x38')]=_['merge'](_0x720eca['where'],{'$or':_[_0x8b06('0x2b')](_0x5f2fe8,function(_0x17a340){if(_0x17a340[_0x8b06('0x3b')]!=='VIRTUAL'){var _0x3beae2={};_0x3beae2[_0x17a340[_0x8b06('0x24')]]={'$like':'%'+_0x4b9b42[_0x8b06('0x2c')]['filter']+'%'};return _0x3beae2;}})});}_0x720eca=_[_0x8b06('0x3c')]({},_0x720eca,_0x4b9b42[_0x8b06('0x3d')]);var _0x268384={'where':_0x720eca[_0x8b06('0x38')]};return db[_0x8b06('0x27')]['count'](_0x268384)[_0x8b06('0x20')](function(_0x169f5d){_0x1153d2['count']=_0x169f5d;if(_0x4b9b42[_0x8b06('0x2c')]['includeAll']){_0x720eca['include']=[{'all':!![]}];}return db[_0x8b06('0x27')][_0x8b06('0x3e')](_0x720eca);})[_0x8b06('0x20')](function(_0x502482){_0x1153d2['rows']=_0x502482;return _0x1153d2;})[_0x8b06('0x20')](respondWithFilteredResult(_0xe55b69,_0x720eca))['catch'](handleError(_0xe55b69,null));};exports[_0x8b06('0x3f')]=function(_0x1f88a2,_0x2b46a3){var _0x452f94={'raw':!![],'where':{'id':_0x1f88a2['params']['id']}},_0x182159={};_0x182159[_0x8b06('0x30')]=_[_0x8b06('0x2d')](db[_0x8b06('0x27')]['rawAttributes']);_0x182159[_0x8b06('0x2c')]=_[_0x8b06('0x2d')](_0x1f88a2[_0x8b06('0x2c')]);_0x182159[_0x8b06('0x2e')]=_[_0x8b06('0x2f')](_0x182159[_0x8b06('0x30')],_0x182159['query']);_0x452f94[_0x8b06('0x32')]=_[_0x8b06('0x2f')](_0x182159[_0x8b06('0x30')],qs[_0x8b06('0x31')](_0x1f88a2['query']['fields']));_0x452f94[_0x8b06('0x32')]=_0x452f94[_0x8b06('0x32')][_0x8b06('0x33')]?_0x452f94[_0x8b06('0x32')]:_0x182159['model'];if(_0x1f88a2['query'][_0x8b06('0x40')]){_0x452f94[_0x8b06('0x41')]=[{'all':!![]}];}_0x452f94=_[_0x8b06('0x3c')]({},_0x452f94,_0x1f88a2[_0x8b06('0x3d')]);return db['SquareDetailsReport']['find'](_0x452f94)['then'](handleEntityNotFound(_0x2b46a3,null))[_0x8b06('0x20')](respondWithResult(_0x2b46a3,null))['catch'](handleError(_0x2b46a3,null));};exports[_0x8b06('0x42')]=function(_0x4cee81,_0x1f24c7){return db['SquareDetailsReport'][_0x8b06('0x42')](_0x4cee81[_0x8b06('0x43')],{})[_0x8b06('0x20')](respondWithResult(_0x1f24c7,0xc9))[_0x8b06('0x44')](handleError(_0x1f24c7,null));};exports[_0x8b06('0x1f')]=function(_0x3a3aa2,_0x4bc069){if(_0x3a3aa2[_0x8b06('0x43')]['id']){delete _0x3a3aa2[_0x8b06('0x43')]['id'];}return db[_0x8b06('0x27')][_0x8b06('0x45')]({'where':{'id':_0x3a3aa2[_0x8b06('0x46')]['id']}})['then'](handleEntityNotFound(_0x4bc069,null))[_0x8b06('0x20')](saveUpdates(_0x3a3aa2[_0x8b06('0x43')],null))[_0x8b06('0x20')](respondWithResult(_0x4bc069,null))[_0x8b06('0x44')](handleError(_0x4bc069,null));};exports['destroy']=function(_0x1b18b8,_0xd76720){return db[_0x8b06('0x27')][_0x8b06('0x45')]({'where':{'id':_0x1b18b8[_0x8b06('0x46')]['id']}})[_0x8b06('0x20')](handleEntityNotFound(_0xd76720,null))[_0x8b06('0x20')](removeEntity(_0xd76720,null))['catch'](handleError(_0xd76720,null));};exports[_0x8b06('0x47')]=function(_0x446562,_0xf1df96){return db[_0x8b06('0x27')][_0x8b06('0x47')]()[_0x8b06('0x20')](respondWithResult(_0xf1df96,null))['catch'](handleError(_0xf1df96,null));};
\ No newline at end of file
+var _0xb52b=['create','body','destroy','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','sendStatus','error','stack','name','send','map','SquareDetailsReport','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','findAll','catch','show','params','keys','includeAll','include'];(function(_0x192c9f,_0x4e8bda){var _0x6d3873=function(_0x4cd019){while(--_0x4cd019){_0x192c9f['push'](_0x192c9f['shift']());}};_0x6d3873(++_0x4e8bda);}(_0xb52b,0xe6));var _0xbb52=function(_0x435f7b,_0x5743a9){_0x435f7b=_0x435f7b-0x0;var _0x58d2b1=_0xb52b[_0x435f7b];return _0x58d2b1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbb52('0x0'));var zipdir=require(_0xbb52('0x1'));var jsonpatch=require(_0xbb52('0x2'));var rp=require(_0xbb52('0x3'));var moment=require(_0xbb52('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xbb52('0x5'));var path=require(_0xbb52('0x6'));var sox=require(_0xbb52('0x7'));var csv=require(_0xbb52('0x8'));var ejs=require(_0xbb52('0x9'));var fs=require('fs');var fs_extra=require(_0xbb52('0xa'));var _=require(_0xbb52('0xb'));var squel=require(_0xbb52('0xc'));var crypto=require(_0xbb52('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xbb52('0xe'));var toCsv=require(_0xbb52('0x8'));var querystring=require(_0xbb52('0xf'));var Papa=require('papaparse');var Redis=require(_0xbb52('0x10'));var authService=require(_0xbb52('0x11'));var qs=require(_0xbb52('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbb52('0x13'));var logger=require(_0xbb52('0x14'))(_0xbb52('0x15'));var utils=require('../../config/utils');var config=require(_0xbb52('0x16'));var licenseUtil=require(_0xbb52('0x17'));var db=require(_0xbb52('0x18'))['db'];function respondWithStatusCode(_0x73862c,_0x330ad9){_0x330ad9=_0x330ad9||0xcc;return function(_0x2d128c){if(_0x2d128c){return _0x73862c['sendStatus'](_0x330ad9);}return _0x73862c[_0xbb52('0x19')](_0x330ad9)[_0xbb52('0x1a')]();};}function respondWithResult(_0x315588,_0x3ac439){_0x3ac439=_0x3ac439||0xc8;return function(_0x5c1772){if(_0x5c1772){return _0x315588['status'](_0x3ac439)[_0xbb52('0x1b')](_0x5c1772);}};}function respondWithFilteredResult(_0x4dde1a,_0x386e99){return function(_0x5b4ea1){if(_0x5b4ea1){var _0xf561c6=typeof _0x386e99['offset']===_0xbb52('0x1c')&&typeof _0x386e99[_0xbb52('0x1d')]==='undefined';var _0x178358=_0x5b4ea1[_0xbb52('0x1e')];var _0x1ec63b=_0xf561c6?0x0:_0x386e99['offset'];var _0x2db11e=_0xf561c6?_0x5b4ea1['count']:_0x386e99[_0xbb52('0x1f')]+_0x386e99[_0xbb52('0x1d')];var _0x2129fe;if(_0x2db11e>=_0x178358){_0x2db11e=_0x178358;_0x2129fe=0xc8;}else{_0x2129fe=0xce;}_0x4dde1a[_0xbb52('0x19')](_0x2129fe);return _0x4dde1a[_0xbb52('0x20')](_0xbb52('0x21'),_0x1ec63b+'-'+_0x2db11e+'/'+_0x178358)[_0xbb52('0x1b')](_0x5b4ea1);}return null;};}function patchUpdates(_0x26d37f){return function(_0x24aaa6){try{jsonpatch[_0xbb52('0x22')](_0x24aaa6,_0x26d37f,!![]);}catch(_0x34fe97){return BPromise[_0xbb52('0x23')](_0x34fe97);}return _0x24aaa6[_0xbb52('0x24')]();};}function saveUpdates(_0x5dc204,_0x503b26){return function(_0x3fc29f){if(_0x3fc29f){return _0x3fc29f[_0xbb52('0x25')](_0x5dc204)[_0xbb52('0x26')](function(_0x1db43e){return _0x1db43e;});}return null;};}function removeEntity(_0x181775,_0x3cf1f1){return function(_0xf938bf){if(_0xf938bf){return _0xf938bf['destroy']()[_0xbb52('0x26')](function(){_0x181775[_0xbb52('0x19')](0xcc)[_0xbb52('0x1a')]();});}};}function handleEntityNotFound(_0x22c3e6,_0xbc87ab){return function(_0xe5a16){if(!_0xe5a16){_0x22c3e6[_0xbb52('0x27')](0x194);}return _0xe5a16;};}function handleError(_0x2dfa64,_0x4f8d54){_0x4f8d54=_0x4f8d54||0x1f4;return function(_0x3fa3ea){logger[_0xbb52('0x28')](_0x3fa3ea[_0xbb52('0x29')]);if(_0x3fa3ea[_0xbb52('0x2a')]){delete _0x3fa3ea[_0xbb52('0x2a')];}_0x2dfa64[_0xbb52('0x19')](_0x4f8d54)[_0xbb52('0x2b')](_0x3fa3ea);};}exports['index']=function(_0x43d7d1,_0x2285fd){var _0x262cb2={},_0x599529={},_0x4c3d71={'count':0x0,'rows':[]};var _0x38d362=_[_0xbb52('0x2c')](db[_0xbb52('0x2d')][_0xbb52('0x2e')],function(_0x2d29b4){return{'name':_0x2d29b4[_0xbb52('0x2f')],'type':_0x2d29b4['type'][_0xbb52('0x30')]};});_0x599529[_0xbb52('0x31')]=_[_0xbb52('0x2c')](_0x38d362,_0xbb52('0x2a'));_0x599529[_0xbb52('0x32')]=_['keys'](_0x43d7d1[_0xbb52('0x32')]);_0x599529['filters']=_[_0xbb52('0x33')](_0x599529[_0xbb52('0x31')],_0x599529[_0xbb52('0x32')]);_0x262cb2['attributes']=_['intersection'](_0x599529[_0xbb52('0x31')],qs[_0xbb52('0x34')](_0x43d7d1[_0xbb52('0x32')][_0xbb52('0x34')]));_0x262cb2[_0xbb52('0x35')]=_0x262cb2[_0xbb52('0x35')][_0xbb52('0x36')]?_0x262cb2[_0xbb52('0x35')]:_0x599529[_0xbb52('0x31')];if(!_0x43d7d1[_0xbb52('0x32')][_0xbb52('0x37')](_0xbb52('0x38'))){_0x262cb2['limit']=qs[_0xbb52('0x1d')](_0x43d7d1[_0xbb52('0x32')][_0xbb52('0x1d')]);_0x262cb2[_0xbb52('0x1f')]=qs[_0xbb52('0x1f')](_0x43d7d1['query']['offset']);}_0x262cb2['order']=qs['sort'](_0x43d7d1[_0xbb52('0x32')][_0xbb52('0x39')]);_0x262cb2[_0xbb52('0x3a')]=qs[_0xbb52('0x3b')](_[_0xbb52('0x3c')](_0x43d7d1[_0xbb52('0x32')],_0x599529['filters']),_0x38d362);if(_0x43d7d1[_0xbb52('0x32')][_0xbb52('0x3d')]){_0x262cb2[_0xbb52('0x3a')]=_[_0xbb52('0x3e')](_0x262cb2[_0xbb52('0x3a')],{'$or':_['map'](_0x38d362,function(_0x4768d5){if(_0x4768d5['type']!=='VIRTUAL'){var _0x2fdf26={};_0x2fdf26[_0x4768d5['name']]={'$like':'%'+_0x43d7d1[_0xbb52('0x32')][_0xbb52('0x3d')]+'%'};return _0x2fdf26;}})});}_0x262cb2=_['merge']({},_0x262cb2,_0x43d7d1['options']);var _0x3cf103={'where':_0x262cb2[_0xbb52('0x3a')]};return db[_0xbb52('0x2d')][_0xbb52('0x1e')](_0x3cf103)['then'](function(_0x244163){_0x4c3d71[_0xbb52('0x1e')]=_0x244163;if(_0x43d7d1[_0xbb52('0x32')]['includeAll']){_0x262cb2['include']=[{'all':!![]}];}return db[_0xbb52('0x2d')][_0xbb52('0x3f')](_0x262cb2);})[_0xbb52('0x26')](function(_0x1c1348){_0x4c3d71['rows']=_0x1c1348;return _0x4c3d71;})[_0xbb52('0x26')](respondWithFilteredResult(_0x2285fd,_0x262cb2))[_0xbb52('0x40')](handleError(_0x2285fd,null));};exports[_0xbb52('0x41')]=function(_0x1c1063,_0x165f68){var _0x9268cb={'raw':!![],'where':{'id':_0x1c1063[_0xbb52('0x42')]['id']}},_0x422474={};_0x422474['model']=_[_0xbb52('0x43')](db[_0xbb52('0x2d')][_0xbb52('0x2e')]);_0x422474[_0xbb52('0x32')]=_[_0xbb52('0x43')](_0x1c1063[_0xbb52('0x32')]);_0x422474['filters']=_[_0xbb52('0x33')](_0x422474['model'],_0x422474[_0xbb52('0x32')]);_0x9268cb[_0xbb52('0x35')]=_['intersection'](_0x422474[_0xbb52('0x31')],qs[_0xbb52('0x34')](_0x1c1063[_0xbb52('0x32')]['fields']));_0x9268cb[_0xbb52('0x35')]=_0x9268cb[_0xbb52('0x35')]['length']?_0x9268cb[_0xbb52('0x35')]:_0x422474['model'];if(_0x1c1063['query'][_0xbb52('0x44')]){_0x9268cb[_0xbb52('0x45')]=[{'all':!![]}];}_0x9268cb=_['merge']({},_0x9268cb,_0x1c1063['options']);return db[_0xbb52('0x2d')]['find'](_0x9268cb)['then'](handleEntityNotFound(_0x165f68,null))[_0xbb52('0x26')](respondWithResult(_0x165f68,null))['catch'](handleError(_0x165f68,null));};exports[_0xbb52('0x46')]=function(_0x526aea,_0x88fb29){return db[_0xbb52('0x2d')][_0xbb52('0x46')](_0x526aea['body'],{})['then'](respondWithResult(_0x88fb29,0xc9))[_0xbb52('0x40')](handleError(_0x88fb29,null));};exports[_0xbb52('0x25')]=function(_0x43812d,_0x203aa3){if(_0x43812d['body']['id']){delete _0x43812d[_0xbb52('0x47')]['id'];}return db['SquareDetailsReport']['find']({'where':{'id':_0x43812d['params']['id']}})[_0xbb52('0x26')](handleEntityNotFound(_0x203aa3,null))[_0xbb52('0x26')](saveUpdates(_0x43812d[_0xbb52('0x47')],null))['then'](respondWithResult(_0x203aa3,null))['catch'](handleError(_0x203aa3,null));};exports[_0xbb52('0x48')]=function(_0x4029c5,_0x2c14db){return db['SquareDetailsReport'][_0xbb52('0x49')]({'where':{'id':_0x4029c5[_0xbb52('0x42')]['id']}})[_0xbb52('0x26')](handleEntityNotFound(_0x2c14db,null))[_0xbb52('0x26')](removeEntity(_0x2c14db,null))[_0xbb52('0x40')](handleError(_0x2c14db,null));};exports['describe']=function(_0x52efd3,_0x1cd308){return db['SquareDetailsReport'][_0xbb52('0x4a')]()['then'](respondWithResult(_0x1cd308,null))['catch'](handleError(_0x1cd308,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83e4=['lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./squareReportDetail.attributes','define','SquareDetailsReport','report_square_details'];(function(_0x149055,_0x42bd96){var _0x2862bf=function(_0x39a5dc){while(--_0x39a5dc){_0x149055['push'](_0x149055['shift']());}};_0x2862bf(++_0x42bd96);}(_0x83e4,0x1ad));var _0x483e=function(_0x2d2272,_0x328d69){_0x2d2272=_0x2d2272-0x0;var _0x148a5a=_0x83e4[_0x2d2272];return _0x148a5a;};'use strict';var _=require(_0x483e('0x0'));var util=require(_0x483e('0x1'));var logger=require(_0x483e('0x2'))(_0x483e('0x3'));var moment=require(_0x483e('0x4'));var BPromise=require('bluebird');var rp=require(_0x483e('0x5'));var fs=require('fs');var path=require(_0x483e('0x6'));var rimraf=require(_0x483e('0x7'));var config=require(_0x483e('0x8'));var attributes=require(_0x483e('0x9'));module['exports']=function(_0x319883,_0x57e457){return _0x319883[_0x483e('0xa')](_0x483e('0xb'),attributes,{'tableName':_0x483e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8ccf=['rimraf','./squareReportDetail.attributes','exports','define','report_square_details','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x2a64e2,_0x21d1fd){var _0x2a6c2a=function(_0x3a8850){while(--_0x3a8850){_0x2a64e2['push'](_0x2a64e2['shift']());}};_0x2a6c2a(++_0x21d1fd);}(_0x8ccf,0x191));var _0xf8cc=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x8ccf[_0x1facfa];return _0x9ec701;};'use strict';var _=require(_0xf8cc('0x0'));var util=require(_0xf8cc('0x1'));var logger=require(_0xf8cc('0x2'))(_0xf8cc('0x3'));var moment=require(_0xf8cc('0x4'));var BPromise=require(_0xf8cc('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xf8cc('0x6'));var config=require('../../config/environment');var attributes=require(_0xf8cc('0x7'));module[_0xf8cc('0x8')]=function(_0x156ade,_0x142205){return _0x156ade[_0xf8cc('0x9')]('SquareDetailsReport',attributes,{'tableName':_0xf8cc('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc2da=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','debug','SquareDetailsReport,\x20%s,\x20%s,\x20%s','error','code','message','result','CreateSquareDetailsReport','create','body','options','stringify','catch','lodash','moment','randomstring','../../mysqldb','../../config/utils'];(function(_0x4ed520,_0x21be63){var _0x4415a6=function(_0x14b151){while(--_0x14b151){_0x4ed520['push'](_0x4ed520['shift']());}};_0x4415a6(++_0x21be63);}(_0xc2da,0x124));var _0xac2d=function(_0x1dd6e2,_0x420d75){_0x1dd6e2=_0x1dd6e2-0x0;var _0x247718=_0xc2da[_0x1dd6e2];return _0x247718;};'use strict';var _=require(_0xac2d('0x0'));var util=require('util');var moment=require(_0xac2d('0x1'));var BPromise=require('bluebird');var rs=require(_0xac2d('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xac2d('0x3'))['db'];var utils=require(_0xac2d('0x4'));var logger=require(_0xac2d('0x5'))(_0xac2d('0x6'));var config=require(_0xac2d('0x7'));var jayson=require(_0xac2d('0x8'));var client=jayson[_0xac2d('0x9')][_0xac2d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2b0a36,_0x3ef58a,_0x41d5ae){return new BPromise(function(_0x515055,_0x5cbc87){return client[_0xac2d('0xb')](_0x2b0a36,_0x41d5ae)['then'](function(_0x4271fa){logger[_0xac2d('0xc')](_0xac2d('0xd'),_0x3ef58a,_0xac2d('0xe'));logger[_0xac2d('0xf')](_0xac2d('0x10'),_0x3ef58a,'request\x20sent',JSON['stringify'](_0x4271fa));if(_0x4271fa[_0xac2d('0x11')]){if(_0x4271fa[_0xac2d('0x11')][_0xac2d('0x12')]===0x1f4){logger[_0xac2d('0x11')]('SquareDetailsReport,\x20%s,\x20%s',_0x3ef58a,_0x4271fa[_0xac2d('0x11')][_0xac2d('0x13')]);return _0x5cbc87(_0x4271fa[_0xac2d('0x11')][_0xac2d('0x13')]);}logger[_0xac2d('0x11')](_0xac2d('0xd'),_0x3ef58a,_0x4271fa[_0xac2d('0x11')][_0xac2d('0x13')]);return _0x515055(_0x4271fa[_0xac2d('0x11')][_0xac2d('0x13')]);}else{logger[_0xac2d('0xc')](_0xac2d('0xd'),_0x3ef58a,_0xac2d('0xe'));_0x515055(_0x4271fa[_0xac2d('0x14')][_0xac2d('0x13')]);}})['catch'](function(_0x3170ae){logger[_0xac2d('0x11')]('SquareDetailsReport,\x20%s,\x20%s',_0x3ef58a,_0x3170ae);_0x5cbc87(_0x3170ae);});});}exports[_0xac2d('0x15')]=function(_0xed956b){var _0x1d8e9f=this;return new Promise(function(_0x4d34fa,_0x45c12b){return db['SquareDetailsReport'][_0xac2d('0x16')](_0xed956b[_0xac2d('0x17')],{'raw':_0xed956b['options']?_0xed956b[_0xac2d('0x18')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x510e85){logger['info'](_0xac2d('0x15'),_0xed956b);logger[_0xac2d('0xf')](_0xac2d('0x15'),_0xed956b,JSON[_0xac2d('0x19')](_0x510e85));_0x4d34fa(_0x510e85);})[_0xac2d('0x1a')](function(_0x391911){logger[_0xac2d('0x11')](_0xac2d('0x15'),_0x391911[_0xac2d('0x13')],_0xed956b);_0x45c12b(_0x1d8e9f[_0xac2d('0x11')](0x1f4,_0x391911[_0xac2d('0x13')]));});});};
\ No newline at end of file
+var _0x4213=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','request\x20sent','SquareDetailsReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','SquareDetailsReport,\x20%s,\x20%s','info','result','catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','then','debug','lodash'];(function(_0x30f381,_0x62c6ed){var _0x3610ca=function(_0x311d2f){while(--_0x311d2f){_0x30f381['push'](_0x30f381['shift']());}};_0x3610ca(++_0x62c6ed);}(_0x4213,0x77));var _0x3421=function(_0x5a5b3f,_0x18a336){_0x5a5b3f=_0x5a5b3f-0x0;var _0x1a4b89=_0x4213[_0x5a5b3f];return _0x1a4b89;};'use strict';var _=require(_0x3421('0x0'));var util=require(_0x3421('0x1'));var moment=require(_0x3421('0x2'));var BPromise=require(_0x3421('0x3'));var rs=require(_0x3421('0x4'));var fs=require('fs');var Redis=require(_0x3421('0x5'));var db=require(_0x3421('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x3421('0x7'))('rpc');var config=require(_0x3421('0x8'));var jayson=require(_0x3421('0x9'));var client=jayson[_0x3421('0xa')][_0x3421('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5469d8,_0x50e464,_0x1b152f){return new BPromise(function(_0x130625,_0x1cf6a0){return client[_0x3421('0xc')](_0x5469d8,_0x1b152f)['then'](function(_0x1f20cf){logger['info']('SquareDetailsReport,\x20%s,\x20%s',_0x50e464,_0x3421('0xd'));logger['debug'](_0x3421('0xe'),_0x50e464,_0x3421('0xd'),JSON[_0x3421('0xf')](_0x1f20cf));if(_0x1f20cf[_0x3421('0x10')]){if(_0x1f20cf[_0x3421('0x10')][_0x3421('0x11')]===0x1f4){logger[_0x3421('0x10')]('SquareDetailsReport,\x20%s,\x20%s',_0x50e464,_0x1f20cf[_0x3421('0x10')][_0x3421('0x12')]);return _0x1cf6a0(_0x1f20cf[_0x3421('0x10')][_0x3421('0x12')]);}logger[_0x3421('0x10')](_0x3421('0x13'),_0x50e464,_0x1f20cf[_0x3421('0x10')]['message']);return _0x130625(_0x1f20cf[_0x3421('0x10')]['message']);}else{logger[_0x3421('0x14')](_0x3421('0x13'),_0x50e464,'request\x20sent');_0x130625(_0x1f20cf[_0x3421('0x15')]['message']);}})[_0x3421('0x16')](function(_0x23694b){logger['error'](_0x3421('0x13'),_0x50e464,_0x23694b);_0x1cf6a0(_0x23694b);});});}exports[_0x3421('0x17')]=function(_0x130d3c){var _0x104cc5=this;return new Promise(function(_0x18acc1,_0x200fdd){return db[_0x3421('0x18')][_0x3421('0x19')](_0x130d3c[_0x3421('0x1a')],{'raw':_0x130d3c[_0x3421('0x1b')]?_0x130d3c[_0x3421('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x3421('0x1c')](function(_0x4b59a5){logger['info']('CreateSquareDetailsReport',_0x130d3c);logger[_0x3421('0x1d')](_0x3421('0x17'),_0x130d3c,JSON[_0x3421('0xf')](_0x4b59a5));_0x18acc1(_0x4b59a5);})[_0x3421('0x16')](function(_0x132e8e){logger[_0x3421('0x10')](_0x3421('0x17'),_0x132e8e[_0x3421('0x12')],_0x130d3c);_0x200fdd(_0x104cc5[_0x3421('0x10')](0x1f4,_0x132e8e[_0x3421('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc779=['index','/process/:pid/kill','killProcess','exports','express','Router','../../components/auth/service','./system.controller','get','isAuthenticated'];(function(_0x4ef8e5,_0x201c72){var _0x467e5a=function(_0x4428f9){while(--_0x4428f9){_0x4ef8e5['push'](_0x4ef8e5['shift']());}};_0x467e5a(++_0x201c72);}(_0xc779,0x1c6));var _0x9c77=function(_0x52ff7f,_0x30a98c){_0x52ff7f=_0x52ff7f-0x0;var _0x207bce=_0xc779[_0x52ff7f];return _0x207bce;};'use strict';var express=require(_0x9c77('0x0'));var router=express[_0x9c77('0x1')]();var auth=require(_0x9c77('0x2'));var controller=require(_0x9c77('0x3'));router[_0x9c77('0x4')]('/',auth[_0x9c77('0x5')](),controller[_0x9c77('0x6')]);router[_0x9c77('0x4')](_0x9c77('0x7'),auth[_0x9c77('0x5')](),controller[_0x9c77('0x8')]);module[_0x9c77('0x9')]=router;
\ No newline at end of file
+var _0xfc27=['isAuthenticated','/process/:pid/kill','killProcess','exports','express','Router','./system.controller','get'];(function(_0xea8947,_0x1b573d){var _0x2455e9=function(_0x18771e){while(--_0x18771e){_0xea8947['push'](_0xea8947['shift']());}};_0x2455e9(++_0x1b573d);}(_0xfc27,0x1b4));var _0x7fc2=function(_0x47fafa,_0x5e2ece){_0x47fafa=_0x47fafa-0x0;var _0x3ae415=_0xfc27[_0x47fafa];return _0x3ae415;};'use strict';var express=require(_0x7fc2('0x0'));var router=express[_0x7fc2('0x1')]();var auth=require('../../components/auth/service');var controller=require(_0x7fc2('0x2'));router[_0x7fc2('0x3')]('/',auth[_0x7fc2('0x4')](),controller['index']);router[_0x7fc2('0x3')](_0x7fc2('0x5'),auth[_0x7fc2('0x4')](),controller[_0x7fc2('0x6')]);module[_0x7fc2('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56da=['<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','name','status','send','index','then','catch','json','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','length','format','Process\x20with\x20pid\x20%s\x20not\x20found!','kill','Process\x20with\x20pid\x20%s\x20killed\x20correctly','killProcess','systeminformation','child_process','exec','api','util','bluebird','lodash','error'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x56da,0x130));var _0xa56d=function(_0x5e2b34,_0x58385c){_0x5e2b34=_0x5e2b34-0x0;var _0x4859f9=_0x56da[_0x5e2b34];return _0x4859f9;};'use strict';var info=require(_0xa56d('0x0'));var exec=require(_0xa56d('0x1'))[_0xa56d('0x2')];var logger=require('../../config/logger')(_0xa56d('0x3'));var util=require(_0xa56d('0x4'));var BPromise=require(_0xa56d('0x5'));var _=require(_0xa56d('0x6'));function handleError(_0x2aa753,_0x571e19,_0x227fed){_0x571e19=_0x571e19||0x1f4;return function(_0xc58103){logger[_0xa56d('0x7')](_0xa56d('0x8'),_0x227fed,_0x571e19,util['inspect'](_0xc58103,{'showHidden':![],'depth':null}));delete _0xc58103[_0xa56d('0x9')];_0x2aa753[_0xa56d('0xa')](_0x571e19)[_0xa56d('0xb')](_0xc58103);};}exports[_0xa56d('0xc')]=function(_0x59d57c,_0x2eac9f){return info['getAllData']()[_0xa56d('0xd')](function(_0xf0bd9d){return _0x2eac9f[_0xa56d('0xa')](0xc8)['json'](_0xf0bd9d);})[_0xa56d('0xe')](function(_0x5d84e2){return _0x2eac9f[_0xa56d('0xa')](0x1f4)[_0xa56d('0xf')](_0x5d84e2);});};exports['killProcess']=function(_0x1fcffa,_0x4c52f3){var _0x3978fc=['components/import/cm'];return new BPromise(function(_0x500b8c,_0x332bc9){return exec(util['format'](_0xa56d('0x10'),_0x1fcffa[_0xa56d('0x11')][_0xa56d('0x12')]),function(_0x24a668,_0xcfc193,_0x10ae67){if(_0x24a668){return _0x332bc9(_0x24a668);}return _0x500b8c(_0xcfc193);});})['then'](function(_0x44687b){var _0x19e80e=![];var _0x8b2b95=_0x44687b[_0xa56d('0x13')](/\n/);for(var _0x1cf236=0x0,_0x4fd7e2=_0x3978fc[_0xa56d('0x14')];_0x1cf236<_0x4fd7e2,_0x19e80e===![];_0x1cf236+=0x1){if(_0x44687b['indexOf'](_0x3978fc[_0x1cf236])>=0x0){_0x19e80e=!![];}}if(!_0x19e80e){throw new Error(util[_0xa56d('0x15')](_0xa56d('0x16'),_0x1fcffa[_0xa56d('0x11')]['pid']));}process[_0xa56d('0x17')](_0x1fcffa[_0xa56d('0x11')]['pid'],'SIGINT');return _0x4c52f3[_0xa56d('0xa')](0xc8)[_0xa56d('0xf')]({'message':util[_0xa56d('0x15')](_0xa56d('0x18'),_0x1fcffa[_0xa56d('0x11')]['pid'])});})['catch'](handleError(_0x4c52f3,null,_0xa56d('0x19')));};
\ No newline at end of file
+var _0x8dbb=['getAllData','then','json','catch','killProcess','components/import/cm','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','split','length','indexOf','kill','systeminformation','child_process','exec','../../config/logger','api','util','lodash','error','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','name','status','send','index'];(function(_0x42b902,_0x3c49fd){var _0x2d9d68=function(_0x2175bf){while(--_0x2175bf){_0x42b902['push'](_0x42b902['shift']());}};_0x2d9d68(++_0x3c49fd);}(_0x8dbb,0x1ea));var _0xb8db=function(_0x108d11,_0x3537f1){_0x108d11=_0x108d11-0x0;var _0x5854e5=_0x8dbb[_0x108d11];return _0x5854e5;};'use strict';var info=require(_0xb8db('0x0'));var exec=require(_0xb8db('0x1'))[_0xb8db('0x2')];var logger=require(_0xb8db('0x3'))(_0xb8db('0x4'));var util=require(_0xb8db('0x5'));var BPromise=require('bluebird');var _=require(_0xb8db('0x6'));function handleError(_0x3be6d7,_0x10b4f1,_0x5c981a){_0x10b4f1=_0x10b4f1||0x1f4;return function(_0xae0881){logger[_0xb8db('0x7')](_0xb8db('0x8'),_0x5c981a,_0x10b4f1,util[_0xb8db('0x9')](_0xae0881,{'showHidden':![],'depth':null}));delete _0xae0881[_0xb8db('0xa')];_0x3be6d7[_0xb8db('0xb')](_0x10b4f1)[_0xb8db('0xc')](_0xae0881);};}exports[_0xb8db('0xd')]=function(_0x1f40de,_0xb68a64){return info[_0xb8db('0xe')]()[_0xb8db('0xf')](function(_0x3b7bfd){return _0xb68a64[_0xb8db('0xb')](0xc8)[_0xb8db('0x10')](_0x3b7bfd);})[_0xb8db('0x11')](function(_0x689717){return _0xb68a64[_0xb8db('0xb')](0x1f4)[_0xb8db('0x10')](_0x689717);});};exports[_0xb8db('0x12')]=function(_0x14d992,_0x1a8e6f){var _0x9d2c2=[_0xb8db('0x13')];return new BPromise(function(_0x5781ab,_0x35d18c){return exec(util[_0xb8db('0x14')](_0xb8db('0x15'),_0x14d992[_0xb8db('0x16')][_0xb8db('0x17')]),function(_0x3bc1cd,_0x183dec,_0xfeda79){if(_0x3bc1cd){return _0x35d18c(_0x3bc1cd);}return _0x5781ab(_0x183dec);});})['then'](function(_0x1ecb69){var _0xdce12e=![];var _0x2ecd09=_0x1ecb69[_0xb8db('0x18')](/\n/);for(var _0x3e7af3=0x0,_0x28711b=_0x9d2c2[_0xb8db('0x19')];_0x3e7af3<_0x28711b,_0xdce12e===![];_0x3e7af3+=0x1){if(_0x1ecb69[_0xb8db('0x1a')](_0x9d2c2[_0x3e7af3])>=0x0){_0xdce12e=!![];}}if(!_0xdce12e){throw new Error(util[_0xb8db('0x14')]('Process\x20with\x20pid\x20%s\x20not\x20found!',_0x14d992[_0xb8db('0x16')][_0xb8db('0x17')]));}process[_0xb8db('0x1b')](_0x14d992[_0xb8db('0x16')]['pid'],'SIGINT');return _0x1a8e6f['status'](0xc8)[_0xb8db('0x10')]({'message':util[_0xb8db('0x14')]('Process\x20with\x20pid\x20%s\x20killed\x20correctly',_0x14d992['params'][_0xb8db('0x17')])});})[_0xb8db('0x11')](handleError(_0x1a8e6f,null,'killProcess'));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa038=['../../config/environment','./tag.controller','get','isAuthenticated','show','post','create','put','/:id','update','delete','exports','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xa038,0x174));var _0x8a03=function(_0x2642cb,_0x4b917f){_0x2642cb=_0x2642cb-0x0;var _0xe6e41=_0xa038[_0x2642cb];return _0xe6e41;};'use strict';var multer=require('multer');var util=require(_0x8a03('0x0'));var path=require('path');var timeout=require(_0x8a03('0x1'));var express=require(_0x8a03('0x2'));var router=express['Router']();var fs_extra=require(_0x8a03('0x3'));var auth=require(_0x8a03('0x4'));var interaction=require(_0x8a03('0x5'));var config=require(_0x8a03('0x6'));var controller=require(_0x8a03('0x7'));router[_0x8a03('0x8')]('/',auth[_0x8a03('0x9')](),controller['index']);router[_0x8a03('0x8')]('/:id',auth[_0x8a03('0x9')](),controller[_0x8a03('0xa')]);router[_0x8a03('0xb')]('/',auth[_0x8a03('0x9')](),controller[_0x8a03('0xc')]);router[_0x8a03('0xd')](_0x8a03('0xe'),auth['isAuthenticated'](),controller[_0x8a03('0xf')]);router[_0x8a03('0x10')](_0x8a03('0xe'),auth['isAuthenticated'](),controller['destroy']);module[_0x8a03('0x11')]=router;
\ No newline at end of file
+var _0x1241=['../../config/environment','./tag.controller','isAuthenticated','index','get','/:id','put','update','delete','destroy','multer','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x568039,_0x570f8e){var _0x1595fc=function(_0x50ac8f){while(--_0x50ac8f){_0x568039['push'](_0x568039['shift']());}};_0x1595fc(++_0x570f8e);}(_0x1241,0xb4));var _0x1124=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1241[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x1124('0x0'));var util=require('util');var path=require(_0x1124('0x1'));var timeout=require(_0x1124('0x2'));var express=require(_0x1124('0x3'));var router=express[_0x1124('0x4')]();var fs_extra=require(_0x1124('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x1124('0x6'));var config=require(_0x1124('0x7'));var controller=require(_0x1124('0x8'));router['get']('/',auth[_0x1124('0x9')](),controller[_0x1124('0xa')]);router[_0x1124('0xb')](_0x1124('0xc'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth[_0x1124('0x9')](),controller['create']);router[_0x1124('0xd')](_0x1124('0xc'),auth[_0x1124('0x9')](),controller[_0x1124('0xe')]);router[_0x1124('0xf')](_0x1124('0xc'),auth['isAuthenticated'](),controller[_0x1124('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x180d=['#0091EA','exports','STRING','name'];(function(_0x2de60e,_0x21b606){var _0x83a21a=function(_0x55cefe){while(--_0x55cefe){_0x2de60e['push'](_0x2de60e['shift']());}};_0x83a21a(++_0x21b606);}(_0x180d,0xf9));var _0xd180=function(_0x2be8c2,_0x14a4b5){_0x2be8c2=_0x2be8c2-0x0;var _0x97f531=_0x180d[_0x2be8c2];return _0x97f531;};'use strict';var Sequelize=require('sequelize');module[_0xd180('0x0')]={'name':{'type':Sequelize[_0xd180('0x1')],'unique':_0xd180('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0xd180('0x1')],'defaultValue':_0xd180('0x3')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x1ca7=['exports','#0091EA','STRING','sequelize'];(function(_0x23710a,_0x2a5257){var _0xb876d9=function(_0x65f41c){while(--_0x65f41c){_0x23710a['push'](_0x23710a['shift']());}};_0xb876d9(++_0x2a5257);}(_0x1ca7,0x157));var _0x71ca=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x1ca7[_0x3b380d];return _0x54502b;};'use strict';var Sequelize=require(_0x71ca('0x0'));module[_0x71ca('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize['STRING'],'defaultValue':_0x71ca('0x2')},'description':{'type':Sequelize[_0x71ca('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x780f=['keys','filters','attributes','intersection','fields','order','sort','where','pick','merge','VIRTUAL','filter','includeAll','include','findAll','show','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','Tags','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','Content-Range','apply','save','update','then','destroy','get','UserProfileResource','name','index','map','Tag','rawAttributes','fieldName','type','key','model','query'];(function(_0x145cbb,_0x35b944){var _0x571846=function(_0x2ce962){while(--_0x2ce962){_0x145cbb['push'](_0x145cbb['shift']());}};_0x571846(++_0x35b944);}(_0x780f,0x6c));var _0xf780=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x780f[_0x42cae2];return _0x5f256f;};'use strict';var emlformat=require(_0xf780('0x0'));var rimraf=require(_0xf780('0x1'));var zipdir=require(_0xf780('0x2'));var jsonpatch=require(_0xf780('0x3'));var rp=require(_0xf780('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xf780('0x5'));var util=require(_0xf780('0x6'));var path=require(_0xf780('0x7'));var sox=require(_0xf780('0x8'));var csv=require('to-csv');var ejs=require(_0xf780('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf780('0xa'));var squel=require(_0xf780('0xb'));var crypto=require(_0xf780('0xc'));var jsforce=require(_0xf780('0xd'));var deskjs=require(_0xf780('0xe'));var toCsv=require(_0xf780('0xf'));var querystring=require('querystring');var Papa=require(_0xf780('0x10'));var Redis=require(_0xf780('0x11'));var authService=require(_0xf780('0x12'));var qs=require(_0xf780('0x13'));var as=require(_0xf780('0x14'));var hardwareService=require(_0xf780('0x15'));var logger=require(_0xf780('0x16'))('api');var utils=require('../../config/utils');var config=require(_0xf780('0x17'));var licenseUtil=require(_0xf780('0x18'));var db=require(_0xf780('0x19'))['db'];function respondWithStatusCode(_0x1a8520,_0x5f04e1){_0x5f04e1=_0x5f04e1||0xcc;return function(_0x24aa4f){if(_0x24aa4f){return _0x1a8520[_0xf780('0x1a')](_0x5f04e1);}return _0x1a8520[_0xf780('0x1b')](_0x5f04e1)[_0xf780('0x1c')]();};}function respondWithResult(_0x5c353b,_0x5a64bc){_0x5a64bc=_0x5a64bc||0xc8;return function(_0x4be599){if(_0x4be599){return _0x5c353b[_0xf780('0x1b')](_0x5a64bc)[_0xf780('0x1d')](_0x4be599);}};}function respondWithFilteredResult(_0xc1e872,_0x187b6d){return function(_0x206d34){if(_0x206d34){var _0x335ba6=typeof _0x187b6d[_0xf780('0x1e')]==='undefined'&&typeof _0x187b6d[_0xf780('0x1f')]===_0xf780('0x20');var _0xa78b1b=_0x206d34[_0xf780('0x21')];var _0x5d5a81=_0x335ba6?0x0:_0x187b6d[_0xf780('0x1e')];var _0x53dfee=_0x335ba6?_0x206d34[_0xf780('0x21')]:_0x187b6d[_0xf780('0x1e')]+_0x187b6d['limit'];var _0x29dae1;if(_0x53dfee>=_0xa78b1b){_0x53dfee=_0xa78b1b;_0x29dae1=0xc8;}else{_0x29dae1=0xce;}_0xc1e872[_0xf780('0x1b')](_0x29dae1);return _0xc1e872['set'](_0xf780('0x22'),_0x5d5a81+'-'+_0x53dfee+'/'+_0xa78b1b)[_0xf780('0x1d')](_0x206d34);}return null;};}function patchUpdates(_0x3c7054){return function(_0x4065bb){try{jsonpatch[_0xf780('0x23')](_0x4065bb,_0x3c7054,!![]);}catch(_0x147de9){return BPromise['reject'](_0x147de9);}return _0x4065bb[_0xf780('0x24')]();};}function saveUpdates(_0x4de546,_0x5853ea){return function(_0x45d80e){if(_0x45d80e){return _0x45d80e[_0xf780('0x25')](_0x4de546)[_0xf780('0x26')](function(_0x58bb66){return _0x58bb66;});}return null;};}function removeEntity(_0x2fcb2d,_0x373dce){return function(_0x4f59b1){if(_0x4f59b1){return _0x4f59b1[_0xf780('0x27')]()['then'](function(){var _0x25faba=_0x4f59b1[_0xf780('0x28')]({'plain':!![]});var _0x5d4053='Tags';return db[_0xf780('0x29')][_0xf780('0x27')]({'where':{'type':_0x5d4053,'resourceId':_0x25faba['id']}})[_0xf780('0x26')](function(){return _0x4f59b1;});})[_0xf780('0x26')](function(){_0x2fcb2d[_0xf780('0x1b')](0xcc)[_0xf780('0x1c')]();});}};}function handleEntityNotFound(_0x34d7b3,_0x57e5e8){return function(_0x5a3547){if(!_0x5a3547){_0x34d7b3['sendStatus'](0x194);}return _0x5a3547;};}function handleError(_0x3f5498,_0xf595e2){_0xf595e2=_0xf595e2||0x1f4;return function(_0x26452f){logger['error'](_0x26452f['stack']);if(_0x26452f[_0xf780('0x2a')]){delete _0x26452f[_0xf780('0x2a')];}_0x3f5498[_0xf780('0x1b')](_0xf595e2)['send'](_0x26452f);};}exports[_0xf780('0x2b')]=function(_0x60bb8b,_0x2368e3){var _0x302594={},_0x55923a={},_0x15e5fd={'count':0x0,'rows':[]};var _0x4ff248=_[_0xf780('0x2c')](db[_0xf780('0x2d')][_0xf780('0x2e')],function(_0x23a019){return{'name':_0x23a019[_0xf780('0x2f')],'type':_0x23a019[_0xf780('0x30')][_0xf780('0x31')]};});_0x55923a[_0xf780('0x32')]=_['map'](_0x4ff248,_0xf780('0x2a'));_0x55923a[_0xf780('0x33')]=_[_0xf780('0x34')](_0x60bb8b[_0xf780('0x33')]);_0x55923a[_0xf780('0x35')]=_['intersection'](_0x55923a[_0xf780('0x32')],_0x55923a['query']);_0x302594[_0xf780('0x36')]=_[_0xf780('0x37')](_0x55923a[_0xf780('0x32')],qs['fields'](_0x60bb8b[_0xf780('0x33')][_0xf780('0x38')]));_0x302594[_0xf780('0x36')]=_0x302594[_0xf780('0x36')]['length']?_0x302594[_0xf780('0x36')]:_0x55923a['model'];if(!_0x60bb8b[_0xf780('0x33')]['hasOwnProperty']('nolimit')){_0x302594[_0xf780('0x1f')]=qs['limit'](_0x60bb8b[_0xf780('0x33')][_0xf780('0x1f')]);_0x302594[_0xf780('0x1e')]=qs[_0xf780('0x1e')](_0x60bb8b['query'][_0xf780('0x1e')]);}_0x302594[_0xf780('0x39')]=qs[_0xf780('0x3a')](_0x60bb8b[_0xf780('0x33')]['sort']);_0x302594[_0xf780('0x3b')]=qs[_0xf780('0x35')](_[_0xf780('0x3c')](_0x60bb8b[_0xf780('0x33')],_0x55923a[_0xf780('0x35')]),_0x4ff248);if(_0x60bb8b['query']['filter']){_0x302594[_0xf780('0x3b')]=_[_0xf780('0x3d')](_0x302594[_0xf780('0x3b')],{'$or':_[_0xf780('0x2c')](_0x4ff248,function(_0x1a6a6f){if(_0x1a6a6f['type']!==_0xf780('0x3e')){var _0x511883={};_0x511883[_0x1a6a6f[_0xf780('0x2a')]]={'$like':'%'+_0x60bb8b[_0xf780('0x33')][_0xf780('0x3f')]+'%'};return _0x511883;}})});}_0x302594=_[_0xf780('0x3d')]({},_0x302594,_0x60bb8b['options']);var _0x1fe827={'where':_0x302594[_0xf780('0x3b')]};return db[_0xf780('0x2d')][_0xf780('0x21')](_0x1fe827)[_0xf780('0x26')](function(_0x12ae9a){_0x15e5fd[_0xf780('0x21')]=_0x12ae9a;if(_0x60bb8b[_0xf780('0x33')][_0xf780('0x40')]){_0x302594[_0xf780('0x41')]=[{'all':!![]}];}return db[_0xf780('0x2d')][_0xf780('0x42')](_0x302594);})[_0xf780('0x26')](function(_0x42a710){_0x15e5fd['rows']=_0x42a710;return _0x15e5fd;})[_0xf780('0x26')](respondWithFilteredResult(_0x2368e3,_0x302594))['catch'](handleError(_0x2368e3,null));};exports[_0xf780('0x43')]=function(_0x3bf697,_0x4cb117){var _0x57ff6d={'raw':!![],'where':{'id':_0x3bf697['params']['id']}},_0x564c9a={};_0x564c9a[_0xf780('0x32')]=_['keys'](db[_0xf780('0x2d')][_0xf780('0x2e')]);_0x564c9a[_0xf780('0x33')]=_[_0xf780('0x34')](_0x3bf697[_0xf780('0x33')]);_0x564c9a['filters']=_['intersection'](_0x564c9a['model'],_0x564c9a['query']);_0x57ff6d[_0xf780('0x36')]=_[_0xf780('0x37')](_0x564c9a[_0xf780('0x32')],qs[_0xf780('0x38')](_0x3bf697[_0xf780('0x33')][_0xf780('0x38')]));_0x57ff6d['attributes']=_0x57ff6d[_0xf780('0x36')][_0xf780('0x44')]?_0x57ff6d[_0xf780('0x36')]:_0x564c9a[_0xf780('0x32')];if(_0x3bf697[_0xf780('0x33')][_0xf780('0x40')]){_0x57ff6d['include']=[{'all':!![]}];}_0x57ff6d=_[_0xf780('0x3d')]({},_0x57ff6d,_0x3bf697['options']);return db[_0xf780('0x2d')]['find'](_0x57ff6d)[_0xf780('0x26')](handleEntityNotFound(_0x4cb117,null))['then'](respondWithResult(_0x4cb117,null))['catch'](handleError(_0x4cb117,null));};exports[_0xf780('0x45')]=function(_0x72a225,_0x189717){return db[_0xf780('0x2d')]['create'](_0x72a225[_0xf780('0x46')],{})[_0xf780('0x26')](function(_0x311268){var _0x143665=_0x72a225[_0xf780('0x47')]['get']({'plain':!![]});if(!_0x143665)throw new Error(_0xf780('0x48'));if(_0x143665['role']===_0xf780('0x47')){var _0x1b492a=_0x311268[_0xf780('0x28')]({'plain':!![]});var _0x45ae96=_0xf780('0x49');return db['UserProfileSection']['find']({'where':{'name':_0x45ae96,'userProfileId':_0x143665[_0xf780('0x4a')]},'raw':!![]})[_0xf780('0x26')](function(_0x3277a3){if(_0x3277a3&&_0x3277a3[_0xf780('0x4b')]===0x0){return db['UserProfileResource'][_0xf780('0x45')]({'name':_0x1b492a[_0xf780('0x2a')],'resourceId':_0x1b492a['id'],'type':_0x3277a3[_0xf780('0x2a')],'sectionId':_0x3277a3['id']},{})[_0xf780('0x26')](function(){return _0x311268;});}else{return _0x311268;}})[_0xf780('0x4c')](function(_0x3b98c7){logger['error'](_0xf780('0x4d'),_0x3b98c7);throw _0x3b98c7;});}return _0x311268;})[_0xf780('0x26')](respondWithResult(_0x189717,0xc9))['catch'](handleError(_0x189717,null));};exports[_0xf780('0x25')]=function(_0x1f1907,_0x276a30){if(_0x1f1907[_0xf780('0x46')]['id']){delete _0x1f1907[_0xf780('0x46')]['id'];}return db[_0xf780('0x2d')][_0xf780('0x4e')]({'where':{'id':_0x1f1907[_0xf780('0x4f')]['id']}})[_0xf780('0x26')](handleEntityNotFound(_0x276a30,null))[_0xf780('0x26')](saveUpdates(_0x1f1907[_0xf780('0x46')],null))[_0xf780('0x26')](respondWithResult(_0x276a30,null))['catch'](handleError(_0x276a30,null));};exports[_0xf780('0x27')]=function(_0x4d669e,_0x1815de){return db[_0xf780('0x2d')]['find']({'where':{'id':_0x4d669e['params']['id']}})['then'](handleEntityNotFound(_0x1815de,null))[_0xf780('0x26')](removeEntity(_0x1815de,null))[_0xf780('0x4c')](handleError(_0x1815de,null));};
\ No newline at end of file
+var _0x073e=['save','update','then','destroy','stack','name','send','index','Tag','fieldName','type','map','keys','query','filters','model','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','rawAttributes','includeAll','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Tags','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','count','limit','set','Content-Range','apply','reject'];(function(_0xa61fd8,_0x4aefb0){var _0x173a85=function(_0x234ee7){while(--_0x234ee7){_0xa61fd8['push'](_0xa61fd8['shift']());}};_0x173a85(++_0x4aefb0);}(_0x073e,0x181));var _0xe073=function(_0x5a97b8,_0x5a7945){_0x5a97b8=_0x5a97b8-0x0;var _0x54b165=_0x073e[_0x5a97b8];return _0x54b165;};'use strict';var emlformat=require(_0xe073('0x0'));var rimraf=require(_0xe073('0x1'));var zipdir=require(_0xe073('0x2'));var jsonpatch=require(_0xe073('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe073('0x4'));var util=require(_0xe073('0x5'));var path=require(_0xe073('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe073('0x7'));var _=require(_0xe073('0x8'));var squel=require(_0xe073('0x9'));var crypto=require(_0xe073('0xa'));var jsforce=require(_0xe073('0xb'));var deskjs=require(_0xe073('0xc'));var toCsv=require('to-csv');var querystring=require(_0xe073('0xd'));var Papa=require(_0xe073('0xe'));var Redis=require(_0xe073('0xf'));var authService=require(_0xe073('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe073('0x11'));var hardwareService=require(_0xe073('0x12'));var logger=require(_0xe073('0x13'))(_0xe073('0x14'));var utils=require(_0xe073('0x15'));var config=require(_0xe073('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe073('0x17'))['db'];function respondWithStatusCode(_0x56e3f5,_0x3dedf7){_0x3dedf7=_0x3dedf7||0xcc;return function(_0x5d2f2f){if(_0x5d2f2f){return _0x56e3f5[_0xe073('0x18')](_0x3dedf7);}return _0x56e3f5['status'](_0x3dedf7)[_0xe073('0x19')]();};}function respondWithResult(_0x27d34,_0x47828d){_0x47828d=_0x47828d||0xc8;return function(_0x2ce92d){if(_0x2ce92d){return _0x27d34[_0xe073('0x1a')](_0x47828d)[_0xe073('0x1b')](_0x2ce92d);}};}function respondWithFilteredResult(_0x2f4b36,_0xfb28f5){return function(_0x208f2e){if(_0x208f2e){var _0x26f3d3=typeof _0xfb28f5[_0xe073('0x1c')]==='undefined'&&typeof _0xfb28f5['limit']==='undefined';var _0x4c578c=_0x208f2e[_0xe073('0x1d')];var _0x10486c=_0x26f3d3?0x0:_0xfb28f5[_0xe073('0x1c')];var _0x4f9c8e=_0x26f3d3?_0x208f2e[_0xe073('0x1d')]:_0xfb28f5[_0xe073('0x1c')]+_0xfb28f5[_0xe073('0x1e')];var _0x54c10e;if(_0x4f9c8e>=_0x4c578c){_0x4f9c8e=_0x4c578c;_0x54c10e=0xc8;}else{_0x54c10e=0xce;}_0x2f4b36[_0xe073('0x1a')](_0x54c10e);return _0x2f4b36[_0xe073('0x1f')](_0xe073('0x20'),_0x10486c+'-'+_0x4f9c8e+'/'+_0x4c578c)[_0xe073('0x1b')](_0x208f2e);}return null;};}function patchUpdates(_0x43668e){return function(_0x17dd4b){try{jsonpatch[_0xe073('0x21')](_0x17dd4b,_0x43668e,!![]);}catch(_0x1d7a13){return BPromise[_0xe073('0x22')](_0x1d7a13);}return _0x17dd4b[_0xe073('0x23')]();};}function saveUpdates(_0x5143fa,_0x4405fd){return function(_0x21f9c2){if(_0x21f9c2){return _0x21f9c2[_0xe073('0x24')](_0x5143fa)[_0xe073('0x25')](function(_0x39bcb4){return _0x39bcb4;});}return null;};}function removeEntity(_0x275aa8,_0x504c26){return function(_0x4c76ef){if(_0x4c76ef){return _0x4c76ef[_0xe073('0x26')]()['then'](function(){var _0x5e3b16=_0x4c76ef['get']({'plain':!![]});var _0x5c4137='Tags';return db['UserProfileResource'][_0xe073('0x26')]({'where':{'type':_0x5c4137,'resourceId':_0x5e3b16['id']}})[_0xe073('0x25')](function(){return _0x4c76ef;});})['then'](function(){_0x275aa8[_0xe073('0x1a')](0xcc)[_0xe073('0x19')]();});}};}function handleEntityNotFound(_0x436c34,_0x5a5b2b){return function(_0x10f5ba){if(!_0x10f5ba){_0x436c34['sendStatus'](0x194);}return _0x10f5ba;};}function handleError(_0x255d91,_0x2e5fac){_0x2e5fac=_0x2e5fac||0x1f4;return function(_0x599972){logger['error'](_0x599972[_0xe073('0x27')]);if(_0x599972[_0xe073('0x28')]){delete _0x599972[_0xe073('0x28')];}_0x255d91[_0xe073('0x1a')](_0x2e5fac)[_0xe073('0x29')](_0x599972);};}exports[_0xe073('0x2a')]=function(_0x4f60dd,_0x2a206a){var _0x5c04fe={},_0x1baa0a={},_0x1cdcb0={'count':0x0,'rows':[]};var _0x4a6884=_['map'](db[_0xe073('0x2b')]['rawAttributes'],function(_0x3f6564){return{'name':_0x3f6564[_0xe073('0x2c')],'type':_0x3f6564[_0xe073('0x2d')]['key']};});_0x1baa0a['model']=_[_0xe073('0x2e')](_0x4a6884,_0xe073('0x28'));_0x1baa0a['query']=_[_0xe073('0x2f')](_0x4f60dd[_0xe073('0x30')]);_0x1baa0a[_0xe073('0x31')]=_['intersection'](_0x1baa0a[_0xe073('0x32')],_0x1baa0a['query']);_0x5c04fe['attributes']=_[_0xe073('0x33')](_0x1baa0a[_0xe073('0x32')],qs[_0xe073('0x34')](_0x4f60dd['query'][_0xe073('0x34')]));_0x5c04fe[_0xe073('0x35')]=_0x5c04fe[_0xe073('0x35')]['length']?_0x5c04fe[_0xe073('0x35')]:_0x1baa0a[_0xe073('0x32')];if(!_0x4f60dd[_0xe073('0x30')][_0xe073('0x36')](_0xe073('0x37'))){_0x5c04fe[_0xe073('0x1e')]=qs['limit'](_0x4f60dd[_0xe073('0x30')][_0xe073('0x1e')]);_0x5c04fe[_0xe073('0x1c')]=qs['offset'](_0x4f60dd[_0xe073('0x30')][_0xe073('0x1c')]);}_0x5c04fe[_0xe073('0x38')]=qs[_0xe073('0x39')](_0x4f60dd[_0xe073('0x30')]['sort']);_0x5c04fe[_0xe073('0x3a')]=qs['filters'](_[_0xe073('0x3b')](_0x4f60dd[_0xe073('0x30')],_0x1baa0a[_0xe073('0x31')]),_0x4a6884);if(_0x4f60dd[_0xe073('0x30')][_0xe073('0x3c')]){_0x5c04fe[_0xe073('0x3a')]=_[_0xe073('0x3d')](_0x5c04fe[_0xe073('0x3a')],{'$or':_[_0xe073('0x2e')](_0x4a6884,function(_0x3d29e5){if(_0x3d29e5[_0xe073('0x2d')]!==_0xe073('0x3e')){var _0x16be1a={};_0x16be1a[_0x3d29e5['name']]={'$like':'%'+_0x4f60dd[_0xe073('0x30')]['filter']+'%'};return _0x16be1a;}})});}_0x5c04fe=_[_0xe073('0x3d')]({},_0x5c04fe,_0x4f60dd[_0xe073('0x3f')]);var _0x5a4e19={'where':_0x5c04fe[_0xe073('0x3a')]};return db['Tag'][_0xe073('0x1d')](_0x5a4e19)[_0xe073('0x25')](function(_0x93852a){_0x1cdcb0[_0xe073('0x1d')]=_0x93852a;if(_0x4f60dd[_0xe073('0x30')]['includeAll']){_0x5c04fe[_0xe073('0x40')]=[{'all':!![]}];}return db['Tag'][_0xe073('0x41')](_0x5c04fe);})[_0xe073('0x25')](function(_0x125d1f){_0x1cdcb0[_0xe073('0x42')]=_0x125d1f;return _0x1cdcb0;})[_0xe073('0x25')](respondWithFilteredResult(_0x2a206a,_0x5c04fe))[_0xe073('0x43')](handleError(_0x2a206a,null));};exports[_0xe073('0x44')]=function(_0x2f4939,_0x1b50c5){var _0x2d3ffe={'raw':!![],'where':{'id':_0x2f4939['params']['id']}},_0x2c312b={};_0x2c312b['model']=_[_0xe073('0x2f')](db[_0xe073('0x2b')][_0xe073('0x45')]);_0x2c312b[_0xe073('0x30')]=_[_0xe073('0x2f')](_0x2f4939['query']);_0x2c312b[_0xe073('0x31')]=_[_0xe073('0x33')](_0x2c312b[_0xe073('0x32')],_0x2c312b[_0xe073('0x30')]);_0x2d3ffe[_0xe073('0x35')]=_['intersection'](_0x2c312b[_0xe073('0x32')],qs['fields'](_0x2f4939['query'][_0xe073('0x34')]));_0x2d3ffe[_0xe073('0x35')]=_0x2d3ffe['attributes']['length']?_0x2d3ffe[_0xe073('0x35')]:_0x2c312b[_0xe073('0x32')];if(_0x2f4939[_0xe073('0x30')][_0xe073('0x46')]){_0x2d3ffe[_0xe073('0x40')]=[{'all':!![]}];}_0x2d3ffe=_[_0xe073('0x3d')]({},_0x2d3ffe,_0x2f4939[_0xe073('0x3f')]);return db['Tag'][_0xe073('0x47')](_0x2d3ffe)['then'](handleEntityNotFound(_0x1b50c5,null))[_0xe073('0x25')](respondWithResult(_0x1b50c5,null))[_0xe073('0x43')](handleError(_0x1b50c5,null));};exports[_0xe073('0x48')]=function(_0x4e1f1d,_0x4d5bcd){return db[_0xe073('0x2b')][_0xe073('0x48')](_0x4e1f1d[_0xe073('0x49')],{})['then'](function(_0x151035){var _0x338557=_0x4e1f1d[_0xe073('0x4a')][_0xe073('0x4b')]({'plain':!![]});if(!_0x338557)throw new Error(_0xe073('0x4c'));if(_0x338557[_0xe073('0x4d')]===_0xe073('0x4a')){var _0x307541=_0x151035[_0xe073('0x4b')]({'plain':!![]});var _0x5626d4=_0xe073('0x4e');return db['UserProfileSection'][_0xe073('0x47')]({'where':{'name':_0x5626d4,'userProfileId':_0x338557['userProfileId']},'raw':!![]})[_0xe073('0x25')](function(_0x202687){if(_0x202687&&_0x202687[_0xe073('0x4f')]===0x0){return db[_0xe073('0x50')]['create']({'name':_0x307541[_0xe073('0x28')],'resourceId':_0x307541['id'],'type':_0x202687[_0xe073('0x28')],'sectionId':_0x202687['id']},{})[_0xe073('0x25')](function(){return _0x151035;});}else{return _0x151035;}})['catch'](function(_0x5503c2){logger[_0xe073('0x51')](_0xe073('0x52'),_0x5503c2);throw _0x5503c2;});}return _0x151035;})[_0xe073('0x25')](respondWithResult(_0x4d5bcd,0xc9))[_0xe073('0x43')](handleError(_0x4d5bcd,null));};exports[_0xe073('0x24')]=function(_0x5212d5,_0x197c42){if(_0x5212d5[_0xe073('0x49')]['id']){delete _0x5212d5[_0xe073('0x49')]['id'];}return db[_0xe073('0x2b')][_0xe073('0x47')]({'where':{'id':_0x5212d5[_0xe073('0x53')]['id']}})[_0xe073('0x25')](handleEntityNotFound(_0x197c42,null))[_0xe073('0x25')](saveUpdates(_0x5212d5[_0xe073('0x49')],null))[_0xe073('0x25')](respondWithResult(_0x197c42,null))['catch'](handleError(_0x197c42,null));};exports[_0xe073('0x26')]=function(_0x582007,_0x5825eb){return db[_0xe073('0x2b')][_0xe073('0x47')]({'where':{'id':_0x582007[_0xe073('0x53')]['id']}})['then'](handleEntityNotFound(_0x5825eb,null))[_0xe073('0x25')](removeEntity(_0x5825eb,null))[_0xe073('0x43')](handleError(_0x5825eb,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab04=['tools_tags','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','exports','define','Tag'];(function(_0xfa634c,_0x414e0e){var _0x73e478=function(_0xac2a51){while(--_0xac2a51){_0xfa634c['push'](_0xfa634c['shift']());}};_0x73e478(++_0x414e0e);}(_0xab04,0x194));var _0x4ab0=function(_0x23f4ad,_0xb1c02f){_0x23f4ad=_0x23f4ad-0x0;var _0x42e2ec=_0xab04[_0x23f4ad];return _0x42e2ec;};'use strict';var _=require(_0x4ab0('0x0'));var util=require(_0x4ab0('0x1'));var logger=require(_0x4ab0('0x2'))(_0x4ab0('0x3'));var moment=require(_0x4ab0('0x4'));var BPromise=require(_0x4ab0('0x5'));var rp=require(_0x4ab0('0x6'));var fs=require('fs');var path=require(_0x4ab0('0x7'));var rimraf=require('rimraf');var config=require(_0x4ab0('0x8'));var attributes=require('./tag.attributes');module[_0x4ab0('0x9')]=function(_0x506aa6,_0x4058e7){return _0x506aa6[_0x4ab0('0xa')](_0x4ab0('0xb'),attributes,{'tableName':_0x4ab0('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa554=['lodash','util','../../config/logger','api','request-promise','rimraf','./tag.attributes','exports','define','Tag'];(function(_0xe6bbe2,_0x4eeae3){var _0x1414f3=function(_0x3aef68){while(--_0x3aef68){_0xe6bbe2['push'](_0xe6bbe2['shift']());}};_0x1414f3(++_0x4eeae3);}(_0xa554,0x104));var _0x4a55=function(_0x6b5a3a,_0x5128b2){_0x6b5a3a=_0x6b5a3a-0x0;var _0x215b88=_0xa554[_0x6b5a3a];return _0x215b88;};'use strict';var _=require(_0x4a55('0x0'));var util=require(_0x4a55('0x1'));var logger=require(_0x4a55('0x2'))(_0x4a55('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x4a55('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4a55('0x5'));var config=require('../../config/environment');var attributes=require(_0x4a55('0x6'));module[_0x4a55('0x7')]=function(_0xc99a95,_0x194953){return _0xc99a95[_0x4a55('0x8')](_0x4a55('0x9'),attributes,{'tableName':'tools_tags','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cd=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','info','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','Tag,\x20%s,\x20%s','message','result'];(function(_0x49b591,_0x41e40b){var _0x3048b6=function(_0x1cbe98){while(--_0x1cbe98){_0x49b591['push'](_0x49b591['shift']());}};_0x3048b6(++_0x41e40b);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x1876b2,_0x5d0225){_0x1876b2=_0x1876b2-0x0;var _0x9fb1e0=_0xf3cd[_0x1876b2];return _0x9fb1e0;};'use strict';var _=require(_0xdf3c('0x0'));var util=require(_0xdf3c('0x1'));var moment=require(_0xdf3c('0x2'));var BPromise=require(_0xdf3c('0x3'));var rs=require(_0xdf3c('0x4'));var fs=require('fs');var Redis=require(_0xdf3c('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0xdf3c('0x6'));var logger=require(_0xdf3c('0x7'))(_0xdf3c('0x8'));var config=require('../../config/environment');var jayson=require(_0xdf3c('0x9'));var client=jayson[_0xdf3c('0xa')][_0xdf3c('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1f0601,_0x106021,_0x28edae){return new BPromise(function(_0x52c073,_0x15705d){return client['request'](_0x1f0601,_0x28edae)['then'](function(_0x22d8ae){logger[_0xdf3c('0xc')]('Tag,\x20%s,\x20%s',_0x106021,_0xdf3c('0xd'));logger[_0xdf3c('0xe')](_0xdf3c('0xf'),_0x106021,_0xdf3c('0xd'),JSON[_0xdf3c('0x10')](_0x22d8ae));if(_0x22d8ae[_0xdf3c('0x11')]){if(_0x22d8ae[_0xdf3c('0x11')][_0xdf3c('0x12')]===0x1f4){logger['error'](_0xdf3c('0x13'),_0x106021,_0x22d8ae[_0xdf3c('0x11')][_0xdf3c('0x14')]);return _0x15705d(_0x22d8ae[_0xdf3c('0x11')]['message']);}logger[_0xdf3c('0x11')](_0xdf3c('0x13'),_0x106021,_0x22d8ae[_0xdf3c('0x11')]['message']);return _0x52c073(_0x22d8ae[_0xdf3c('0x11')][_0xdf3c('0x14')]);}else{logger[_0xdf3c('0xc')](_0xdf3c('0x13'),_0x106021,_0xdf3c('0xd'));_0x52c073(_0x22d8ae[_0xdf3c('0x15')][_0xdf3c('0x14')]);}})[_0xdf3c('0x16')](function(_0x2986d0){logger[_0xdf3c('0x11')]('Tag,\x20%s,\x20%s',_0x106021,_0x2986d0);_0x15705d(_0x2986d0);});});}
\ No newline at end of file
+var _0x34e5=['jayson/promise','client','http','request','info','request\x20sent','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','Tag,\x20%s,\x20%s','message','result','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x1ca9eb,_0x99a10b){var _0x2e284e=function(_0x1196a4){while(--_0x1196a4){_0x1ca9eb['push'](_0x1ca9eb['shift']());}};_0x2e284e(++_0x99a10b);}(_0x34e5,0x172));var _0x534e=function(_0x323eeb,_0x23aee3){_0x323eeb=_0x323eeb-0x0;var _0x3b446d=_0x34e5[_0x323eeb];return _0x3b446d;};'use strict';var _=require('lodash');var util=require(_0x534e('0x0'));var moment=require('moment');var BPromise=require(_0x534e('0x1'));var rs=require(_0x534e('0x2'));var fs=require('fs');var Redis=require(_0x534e('0x3'));var db=require(_0x534e('0x4'))['db'];var utils=require(_0x534e('0x5'));var logger=require('../../config/logger')(_0x534e('0x6'));var config=require(_0x534e('0x7'));var jayson=require(_0x534e('0x8'));var client=jayson[_0x534e('0x9')][_0x534e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2d0370,_0x2760e7,_0x5620d4){return new BPromise(function(_0x24d562,_0x929597){return client[_0x534e('0xb')](_0x2d0370,_0x5620d4)['then'](function(_0x59fcff){logger[_0x534e('0xc')]('Tag,\x20%s,\x20%s',_0x2760e7,_0x534e('0xd'));logger['debug'](_0x534e('0xe'),_0x2760e7,_0x534e('0xd'),JSON[_0x534e('0xf')](_0x59fcff));if(_0x59fcff['error']){if(_0x59fcff[_0x534e('0x10')][_0x534e('0x11')]===0x1f4){logger[_0x534e('0x10')](_0x534e('0x12'),_0x2760e7,_0x59fcff[_0x534e('0x10')]['message']);return _0x929597(_0x59fcff[_0x534e('0x10')][_0x534e('0x13')]);}logger[_0x534e('0x10')](_0x534e('0x12'),_0x2760e7,_0x59fcff[_0x534e('0x10')][_0x534e('0x13')]);return _0x24d562(_0x59fcff[_0x534e('0x10')][_0x534e('0x13')]);}else{logger[_0x534e('0xc')]('Tag,\x20%s,\x20%s',_0x2760e7,_0x534e('0xd'));_0x24d562(_0x59fcff[_0x534e('0x14')]['message']);}})['catch'](function(_0x2de9d0){logger[_0x534e('0x10')](_0x534e('0x12'),_0x2760e7,_0x2de9d0);_0x929597(_0x2de9d0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x5d6456,_0x58ecc7){var _0x4d66c1=function(_0x4335e3){while(--_0x4335e3){_0x5d6456['push'](_0x5d6456['shift']());}};_0x4d66c1(++_0x58ecc7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0xa9e0[_0xf0bcac];return _0x4e4c65;};'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 fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['STRING','sequelize'];(function(_0x5f09c5,_0x2bfca0){var _0x426ad9=function(_0x18fe5f){while(--_0x18fe5f){_0x5f09c5['push'](_0x5f09c5['shift']());}};_0x426ad9(++_0x2bfca0);}(_0xb7e7,0x121));var _0x7b7e=function(_0x1e3c16,_0x372caa){_0x1e3c16=_0x1e3c16-0x0;var _0x47a0c9=_0xb7e7[_0x1e3c16];return _0x47a0c9;};'use strict';var Sequelize=require(_0x7b7e('0x0'));module['exports']={'name':{'type':Sequelize[_0x7b7e('0x1')],'allowNull':![],'unique':'name'},'description':{'type':Sequelize[_0x7b7e('0x1')]}};
\ No newline at end of file
+var _0x0713=['STRING','name'];(function(_0x489a4d,_0x586c60){var _0x3f476a=function(_0x55cca2){while(--_0x55cca2){_0x489a4d['push'](_0x489a4d['shift']());}};_0x3f476a(++_0x586c60);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x3071('0x0')],'allowNull':![],'unique':_0x3071('0x1')},'description':{'type':Sequelize[_0x3071('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59cf=['end','json','offset','undefined','count','set','Content-Range','apply','save','update','then','error','stack','name','send','map','Team','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','options','includeAll','include','findAll','rows','catch','params','keys','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Teams','UserProfileSection','find','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','sequelize','transaction','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserVoicePrefix','VoicePrefixId','getQueues','findOne','channel','isValidChannel','ValidationError','toLowerCase','Queue','rawAttributes','capitalize','Unknown\x20channel','Queues','ids','removeQueues','remove','addAgents','isArray','Voice','Mail','Fax','Whatsapp','through','QueueId','defaults','TeamVoiceQueue','penalty','User','emit','Queue:save','online','voicePause','interface','format','SIP/%s','all','TeamVoicePrefix','spread','Chat','Openchannel','removeAgents','Queue:remove','UserVoiceQueueRt','getAgents','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','localhost','socket.io-emitter','sendStatus','status'];(function(_0xf17d7,_0x59af4c){var _0x36e17a=function(_0x15adbc){while(--_0x15adbc){_0xf17d7['push'](_0xf17d7['shift']());}};_0x36e17a(++_0x59af4c);}(_0x59cf,0x1ac));var _0xf59c=function(_0x4e5552,_0x19ec4e){_0x4e5552=_0x4e5552-0x0;var _0x60a338=_0x59cf[_0x4e5552];return _0x60a338;};'use strict';var emlformat=require(_0xf59c('0x0'));var rimraf=require(_0xf59c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf59c('0x2'));var rp=require(_0xf59c('0x3'));var moment=require('moment');var BPromise=require(_0xf59c('0x4'));var Mustache=require(_0xf59c('0x5'));var util=require('util');var path=require(_0xf59c('0x6'));var sox=require(_0xf59c('0x7'));var csv=require(_0xf59c('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf59c('0x9'));var _=require(_0xf59c('0xa'));var squel=require(_0xf59c('0xb'));var crypto=require(_0xf59c('0xc'));var jsforce=require(_0xf59c('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xf59c('0x8'));var querystring=require(_0xf59c('0xe'));var Papa=require(_0xf59c('0xf'));var Redis=require(_0xf59c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xf59c('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf59c('0x12'));var logger=require(_0xf59c('0x13'))(_0xf59c('0x14'));var utils=require('../../config/utils');var config=require(_0xf59c('0x15'));var licenseUtil=require(_0xf59c('0x16'));var db=require('../../mysqldb')['db'];config[_0xf59c('0x17')]=_['defaults'](config[_0xf59c('0x17')],{'host':_0xf59c('0x18'),'port':0x18eb});var socket=require(_0xf59c('0x19'))(new Redis(config['redis']));require('./team.socket')['register'](socket);function respondWithStatusCode(_0x47d97b,_0x203878){_0x203878=_0x203878||0xcc;return function(_0x4e45cb){if(_0x4e45cb){return _0x47d97b[_0xf59c('0x1a')](_0x203878);}return _0x47d97b[_0xf59c('0x1b')](_0x203878)[_0xf59c('0x1c')]();};}function respondWithResult(_0x46c27a,_0x58cfcd){_0x58cfcd=_0x58cfcd||0xc8;return function(_0x430a2b){if(_0x430a2b){return _0x46c27a[_0xf59c('0x1b')](_0x58cfcd)[_0xf59c('0x1d')](_0x430a2b);}};}function respondWithFilteredResult(_0x892f99,_0x55251a){return function(_0x314ae1){if(_0x314ae1){var _0x4caf28=typeof _0x55251a[_0xf59c('0x1e')]==='undefined'&&typeof _0x55251a['limit']===_0xf59c('0x1f');var _0x2687ed=_0x314ae1['count'];var _0x2f3b72=_0x4caf28?0x0:_0x55251a[_0xf59c('0x1e')];var _0x16b1e9=_0x4caf28?_0x314ae1[_0xf59c('0x20')]:_0x55251a[_0xf59c('0x1e')]+_0x55251a['limit'];var _0x127360;if(_0x16b1e9>=_0x2687ed){_0x16b1e9=_0x2687ed;_0x127360=0xc8;}else{_0x127360=0xce;}_0x892f99[_0xf59c('0x1b')](_0x127360);return _0x892f99[_0xf59c('0x21')](_0xf59c('0x22'),_0x2f3b72+'-'+_0x16b1e9+'/'+_0x2687ed)[_0xf59c('0x1d')](_0x314ae1);}return null;};}function patchUpdates(_0xcc4623){return function(_0x38c312){try{jsonpatch[_0xf59c('0x23')](_0x38c312,_0xcc4623,!![]);}catch(_0x321768){return BPromise['reject'](_0x321768);}return _0x38c312[_0xf59c('0x24')]();};}function saveUpdates(_0x3eacf5,_0x1523a0){return function(_0x3becb8){if(_0x3becb8){return _0x3becb8[_0xf59c('0x25')](_0x3eacf5)[_0xf59c('0x26')](function(_0x5e2dfe){return _0x5e2dfe;});}return null;};}function handleEntityNotFound(_0x272e0b,_0xef9c8c){return function(_0x1fddde){if(!_0x1fddde){_0x272e0b[_0xf59c('0x1a')](0x194);}return _0x1fddde;};}function handleError(_0x13fb5c,_0x2bc4ac){_0x2bc4ac=_0x2bc4ac||0x1f4;return function(_0x149135){logger[_0xf59c('0x27')](_0x149135[_0xf59c('0x28')]);if(_0x149135[_0xf59c('0x29')]){delete _0x149135[_0xf59c('0x29')];}_0x13fb5c[_0xf59c('0x1b')](_0x2bc4ac)[_0xf59c('0x2a')](_0x149135);};}exports['index']=function(_0xb0adda,_0x13b7e5){var _0xbd1201={},_0x2e725e={},_0x4968aa={'count':0x0,'rows':[]};var _0x512edb=_[_0xf59c('0x2b')](db[_0xf59c('0x2c')]['rawAttributes'],function(_0x598467){return{'name':_0x598467[_0xf59c('0x2d')],'type':_0x598467['type'][_0xf59c('0x2e')]};});_0x2e725e[_0xf59c('0x2f')]=_[_0xf59c('0x2b')](_0x512edb,_0xf59c('0x29'));_0x2e725e[_0xf59c('0x30')]=_['keys'](_0xb0adda[_0xf59c('0x30')]);_0x2e725e['filters']=_[_0xf59c('0x31')](_0x2e725e[_0xf59c('0x2f')],_0x2e725e[_0xf59c('0x30')]);_0xbd1201['attributes']=_['intersection'](_0x2e725e[_0xf59c('0x2f')],qs['fields'](_0xb0adda['query'][_0xf59c('0x32')]));_0xbd1201[_0xf59c('0x33')]=_0xbd1201[_0xf59c('0x33')][_0xf59c('0x34')]?_0xbd1201[_0xf59c('0x33')]:_0x2e725e[_0xf59c('0x2f')];if(!_0xb0adda[_0xf59c('0x30')][_0xf59c('0x35')](_0xf59c('0x36'))){_0xbd1201[_0xf59c('0x37')]=qs[_0xf59c('0x37')](_0xb0adda['query'][_0xf59c('0x37')]);_0xbd1201['offset']=qs['offset'](_0xb0adda[_0xf59c('0x30')][_0xf59c('0x1e')]);}_0xbd1201[_0xf59c('0x38')]=qs['sort'](_0xb0adda[_0xf59c('0x30')][_0xf59c('0x39')]);_0xbd1201[_0xf59c('0x3a')]=qs[_0xf59c('0x3b')](_[_0xf59c('0x3c')](_0xb0adda['query'],_0x2e725e[_0xf59c('0x3b')]),_0x512edb);if(_0xb0adda[_0xf59c('0x30')][_0xf59c('0x3d')]){_0xbd1201['where']=_[_0xf59c('0x3e')](_0xbd1201[_0xf59c('0x3a')],{'$or':_[_0xf59c('0x2b')](_0x512edb,function(_0x548313){if(_0x548313['type']!=='VIRTUAL'){var _0x199083={};_0x199083[_0x548313['name']]={'$like':'%'+_0xb0adda['query'][_0xf59c('0x3d')]+'%'};return _0x199083;}})});}_0xbd1201=_[_0xf59c('0x3e')]({},_0xbd1201,_0xb0adda[_0xf59c('0x3f')]);var _0x180162={'where':_0xbd1201[_0xf59c('0x3a')]};return db['Team'][_0xf59c('0x20')](_0x180162)['then'](function(_0xf65edd){_0x4968aa[_0xf59c('0x20')]=_0xf65edd;if(_0xb0adda['query'][_0xf59c('0x40')]){_0xbd1201[_0xf59c('0x41')]=[{'all':!![]}];}return db[_0xf59c('0x2c')][_0xf59c('0x42')](_0xbd1201);})[_0xf59c('0x26')](function(_0x44162c){_0x4968aa[_0xf59c('0x43')]=_0x44162c;return _0x4968aa;})['then'](respondWithFilteredResult(_0x13b7e5,_0xbd1201))[_0xf59c('0x44')](handleError(_0x13b7e5,null));};exports['show']=function(_0x37ad4b,_0x4a3b47){var _0x524e62={'raw':![],'where':{'id':_0x37ad4b[_0xf59c('0x45')]['id']}},_0x4bf121={};_0x4bf121[_0xf59c('0x2f')]=_[_0xf59c('0x46')](db[_0xf59c('0x2c')]['rawAttributes']);_0x4bf121['query']=_[_0xf59c('0x46')](_0x37ad4b[_0xf59c('0x30')]);_0x4bf121[_0xf59c('0x3b')]=_[_0xf59c('0x31')](_0x4bf121[_0xf59c('0x2f')],_0x4bf121[_0xf59c('0x30')]);_0x524e62[_0xf59c('0x33')]=_[_0xf59c('0x31')](_0x4bf121[_0xf59c('0x2f')],qs[_0xf59c('0x32')](_0x37ad4b[_0xf59c('0x30')][_0xf59c('0x32')]));_0x524e62[_0xf59c('0x33')]=_0x524e62['attributes'][_0xf59c('0x34')]?_0x524e62[_0xf59c('0x33')]:_0x4bf121[_0xf59c('0x2f')];if(_0x37ad4b['query'][_0xf59c('0x40')]){_0x524e62['include']=[{'all':!![]}];}_0x524e62=_[_0xf59c('0x3e')]({},_0x524e62,_0x37ad4b[_0xf59c('0x3f')]);return db[_0xf59c('0x2c')]['find'](_0x524e62)[_0xf59c('0x26')](handleEntityNotFound(_0x4a3b47,null))['then'](respondWithResult(_0x4a3b47,null))[_0xf59c('0x44')](handleError(_0x4a3b47,null));};exports[_0xf59c('0x47')]=function(_0x31ded9,_0x5c9480){return db[_0xf59c('0x2c')][_0xf59c('0x47')](_0x31ded9[_0xf59c('0x48')],{})[_0xf59c('0x26')](function(_0x56bf06){var _0x5b0d18=_0x31ded9[_0xf59c('0x49')][_0xf59c('0x4a')]({'plain':!![]});if(!_0x5b0d18)throw new Error(_0xf59c('0x4b'));if(_0x5b0d18['role']==='user'){var _0x1fe824=_0x56bf06[_0xf59c('0x4a')]({'plain':!![]});var _0xba1840=_0xf59c('0x4c');return db[_0xf59c('0x4d')][_0xf59c('0x4e')]({'where':{'name':_0xba1840,'userProfileId':_0x5b0d18['userProfileId']},'raw':!![]})[_0xf59c('0x26')](function(_0x3ef80e){if(_0x3ef80e&&_0x3ef80e[_0xf59c('0x4f')]===0x0){return db[_0xf59c('0x50')][_0xf59c('0x47')]({'name':_0x1fe824[_0xf59c('0x29')],'resourceId':_0x1fe824['id'],'type':_0x3ef80e[_0xf59c('0x29')],'sectionId':_0x3ef80e['id']},{})['then'](function(){return _0x56bf06;});}else{return _0x56bf06;}})[_0xf59c('0x44')](function(_0x3f8bf2){logger['error'](_0xf59c('0x51'),_0x3f8bf2);throw _0x3f8bf2;});}return _0x56bf06;})['then'](respondWithResult(_0x5c9480,0xc9))[_0xf59c('0x44')](handleError(_0x5c9480,null));};exports[_0xf59c('0x25')]=function(_0x2f312b,_0x4931c4){if(_0x2f312b[_0xf59c('0x48')]['id']){delete _0x2f312b[_0xf59c('0x48')]['id'];}return db[_0xf59c('0x2c')][_0xf59c('0x4e')]({'where':{'id':_0x2f312b[_0xf59c('0x45')]['id']}})[_0xf59c('0x26')](handleEntityNotFound(_0x4931c4,null))[_0xf59c('0x26')](saveUpdates(_0x2f312b[_0xf59c('0x48')],null))[_0xf59c('0x26')](respondWithResult(_0x4931c4,null))[_0xf59c('0x44')](handleError(_0x4931c4,null));};exports[_0xf59c('0x52')]=function(_0x1120f7,_0x2cc50d){var _0x150e66=_0x1120f7[_0xf59c('0x45')]['id'];var _0x1fed5f=[];return db[_0xf59c('0x53')][_0xf59c('0x54')](function(_0x24096e){var _0x2dc14a=_0xf59c('0x55')+_0x150e66;return db['sequelize'][_0xf59c('0x30')](_0x2dc14a,{'type':db[_0xf59c('0x56')][_0xf59c('0x57')][_0xf59c('0x58')],'raw':!![],'transaction':_0x24096e})['then'](function(_0x23024b){_0x1fed5f=_['map'](_0x23024b,function(_0x6e9cb4){return Number(_0x6e9cb4[_0xf59c('0x59')]);});})[_0xf59c('0x26')](function(){var _0x48fb24=_0xf59c('0x5a')+_0x150e66;return db[_0xf59c('0x53')]['query'](_0x48fb24,{'type':db['Sequelize'][_0xf59c('0x57')]['SELECT'],'raw':!![],'transaction':_0x24096e});})[_0xf59c('0x26')](function(_0x54c79d){var _0x35f076=_[_0xf59c('0x2b')](_0x54c79d,function(_0x39d881){return Number(_0x39d881[_0xf59c('0x5b')]);});return db[_0xf59c('0x5c')][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'VoiceQueueId':{'$in':_0x35f076}},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){var _0x58450a=_0xf59c('0x5d')+_0x150e66;return db['sequelize'][_0xf59c('0x30')](_0x58450a,{'type':db[_0xf59c('0x56')][_0xf59c('0x57')]['SELECT'],'raw':!![],'transaction':_0x24096e});})[_0xf59c('0x26')](function(_0x494ae6){var _0xbb24a2=_[_0xf59c('0x2b')](_0x494ae6,function(_0x302bbb){return Number(_0x302bbb[_0xf59c('0x5e')]);});return db['UserMailQueue'][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'MailQueueId':{'$in':_0xbb24a2}},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){var _0x2d8f08='SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20'+_0x150e66;return db[_0xf59c('0x53')][_0xf59c('0x30')](_0x2d8f08,{'type':db[_0xf59c('0x56')][_0xf59c('0x57')][_0xf59c('0x58')],'raw':!![],'transaction':_0x24096e});})['then'](function(_0x59c5fc){var _0x4ac2c3=_[_0xf59c('0x2b')](_0x59c5fc,function(_0x26e26a){return Number(_0x26e26a[_0xf59c('0x5f')]);});return db[_0xf59c('0x60')][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'SmsQueueId':{'$in':_0x4ac2c3}},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){var _0x4249c4=_0xf59c('0x61')+_0x150e66;return db[_0xf59c('0x53')]['query'](_0x4249c4,{'type':db[_0xf59c('0x56')][_0xf59c('0x57')][_0xf59c('0x58')],'raw':!![],'transaction':_0x24096e});})[_0xf59c('0x26')](function(_0x4d67d4){var _0x2e3928=_[_0xf59c('0x2b')](_0x4d67d4,function(_0x39e6f3){return Number(_0x39e6f3[_0xf59c('0x62')]);});return db[_0xf59c('0x63')][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'ChatQueueId':{'$in':_0x2e3928}},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){var _0x5ad9cf=_0xf59c('0x64')+_0x150e66;return db['sequelize'][_0xf59c('0x30')](_0x5ad9cf,{'type':db[_0xf59c('0x56')]['QueryTypes'][_0xf59c('0x58')],'raw':!![],'transaction':_0x24096e});})[_0xf59c('0x26')](function(_0x46605e){var _0x2e2280=_['map'](_0x46605e,function(_0x2abf06){return Number(_0x2abf06[_0xf59c('0x65')]);});return db[_0xf59c('0x66')][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'FaxQueueId':{'$in':_0x2e2280}},'transaction':_0x24096e});})['then'](function(){var _0x1e4bfd=_0xf59c('0x67')+_0x150e66;return db['sequelize'][_0xf59c('0x30')](_0x1e4bfd,{'type':db[_0xf59c('0x56')]['QueryTypes'][_0xf59c('0x58')],'raw':!![],'transaction':_0x24096e});})[_0xf59c('0x26')](function(_0x546da9){var _0x8bb824=_[_0xf59c('0x2b')](_0x546da9,function(_0x39bab4){return Number(_0x39bab4[_0xf59c('0x68')]);});return db[_0xf59c('0x69')][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'OpenchannelQueueId':{'$in':_0x8bb824}},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){var _0x54798c=_0xf59c('0x6a')+_0x150e66;return db[_0xf59c('0x53')][_0xf59c('0x30')](_0x54798c,{'type':db[_0xf59c('0x56')][_0xf59c('0x57')][_0xf59c('0x58')],'raw':!![],'transaction':_0x24096e});})['then'](function(_0x527980){var _0x2c91aa=_[_0xf59c('0x2b')](_0x527980,function(_0x5781b8){return Number(_0x5781b8[_0xf59c('0x6b')]);});return db['UserWhatsappQueue']['destroy']({'where':{'UserId':{'$in':_0x1fed5f},'WhatsappQueueId':{'$in':_0x2c91aa}},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){return db['TeamVoicePrefix']['find']({'where':{'TeamId':_0x150e66}});})[_0xf59c('0x26')](function(_0xde9c8f){if(_0xde9c8f===null){return;}return db[_0xf59c('0x6c')][_0xf59c('0x52')]({'where':{'UserId':{'$in':_0x1fed5f},'VoicePrefixId':_0xde9c8f[_0xf59c('0x6d')]},'transaction':_0x24096e});})[_0xf59c('0x26')](function(){return db[_0xf59c('0x2c')]['destroy']({'where':{'id':_0x150e66},'cascade':!![],'transaction':_0x24096e});})[_0xf59c('0x26')](function(_0xe82ab9){if(_0xe82ab9===0x0){_0x2cc50d[_0xf59c('0x1a')](0x194);}else{return db[_0xf59c('0x50')][_0xf59c('0x52')]({'where':{'type':'Teams','resourceId':_0x150e66},'cascade':!![],'transaction':_0x24096e})[_0xf59c('0x26')](function(){_0x2cc50d[_0xf59c('0x1b')](0xcc)[_0xf59c('0x1c')]();});}})['catch'](function(_0x47365e){_0x2cc50d[_0xf59c('0x1b')](0x1f4)[_0xf59c('0x2a')](_0x47365e);});});};exports[_0xf59c('0x6e')]=function(_0x2fff71,_0x254231,_0x29bbc1){return db['Team'][_0xf59c('0x6f')]({'where':{'id':_0x2fff71['params']['id']}})[_0xf59c('0x26')](handleEntityNotFound(_0x254231,null))[_0xf59c('0x26')](function(_0x42fa0c){if(!_0x2fff71[_0xf59c('0x30')][_0xf59c('0x70')]||!utils[_0xf59c('0x71')](_0x2fff71['query'][_0xf59c('0x70')])){throw new db[(_0xf59c('0x56'))][(_0xf59c('0x72'))]('Unknown\x20channel');}var _0x5f28f3={};var _0x3cc6dd={};_0x3cc6dd[_0xf59c('0x2f')]=_['keys'](db[_['capitalize'](_0x2fff71[_0xf59c('0x30')][_0xf59c('0x70')][_0xf59c('0x73')]())+_0xf59c('0x74')][_0xf59c('0x75')]);_0x3cc6dd[_0xf59c('0x30')]=_[_0xf59c('0x46')](_0x2fff71[_0xf59c('0x30')]);_0x3cc6dd['filters']=_[_0xf59c('0x31')](_0x3cc6dd[_0xf59c('0x2f')],_0x3cc6dd[_0xf59c('0x30')]);_0x5f28f3[_0xf59c('0x33')]=_['intersection'](_0x3cc6dd['model'],qs[_0xf59c('0x32')](_0x2fff71[_0xf59c('0x30')][_0xf59c('0x32')]));_0x5f28f3['attributes']=_0x5f28f3[_0xf59c('0x33')]['length']?_0x5f28f3[_0xf59c('0x33')]:_0x3cc6dd[_0xf59c('0x2f')];_0x5f28f3[_0xf59c('0x37')]=qs['limit'](_0x2fff71[_0xf59c('0x30')][_0xf59c('0x37')]);_0x5f28f3[_0xf59c('0x1e')]=qs[_0xf59c('0x1e')](_0x2fff71[_0xf59c('0x30')]['offset']);_0x5f28f3['order']=qs[_0xf59c('0x39')](_0x2fff71['query'][_0xf59c('0x39')]);_0x5f28f3['where']=qs[_0xf59c('0x3b')](_[_0xf59c('0x3c')](_0x2fff71['query'],_0x3cc6dd['filters']));_0x5f28f3=_[_0xf59c('0x3e')]({},_0x5f28f3,_0x2fff71[_0xf59c('0x3f')]);return _0x42fa0c[_0xf59c('0x4a')+_[_0xf59c('0x76')](_0x2fff71[_0xf59c('0x30')][_0xf59c('0x70')][_0xf59c('0x73')]())+'Queues'](_0x5f28f3);})[_0xf59c('0x26')](respondWithResult(_0x254231,null))['catch'](handleError(_0x254231,null));};exports['addQueues']=function(_0x5213b9,_0x43f59f,_0x58548f){return db[_0xf59c('0x2c')][_0xf59c('0x6f')]({'where':{'id':_0x5213b9['params']['id']}})[_0xf59c('0x26')](function(_0x53419e){if(_0x53419e){if(!_0x5213b9[_0xf59c('0x48')][_0xf59c('0x70')]||!utils[_0xf59c('0x71')](_0x5213b9[_0xf59c('0x48')][_0xf59c('0x70')])){throw new db[(_0xf59c('0x56'))][(_0xf59c('0x72'))](_0xf59c('0x77'));}return _0x53419e['add'+_[_0xf59c('0x76')](_0x5213b9[_0xf59c('0x48')][_0xf59c('0x70')][_0xf59c('0x73')]())+_0xf59c('0x78')](_0x5213b9[_0xf59c('0x48')][_0xf59c('0x79')]);}return null;})[_0xf59c('0x26')](handleEntityNotFound(_0x43f59f,null))[_0xf59c('0x26')](respondWithStatusCode(_0x43f59f,null))[_0xf59c('0x44')](handleError(_0x43f59f,null));};exports[_0xf59c('0x7a')]=function(_0x3e41b7,_0x2585be,_0x32bbee){return db[_0xf59c('0x2c')]['findOne']({'where':{'id':_0x3e41b7[_0xf59c('0x45')]['id']}})[_0xf59c('0x26')](function(_0x265366){if(_0x265366){if(!_0x3e41b7[_0xf59c('0x30')][_0xf59c('0x70')]||!utils[_0xf59c('0x71')](_0x3e41b7[_0xf59c('0x30')][_0xf59c('0x70')])){throw new db[(_0xf59c('0x56'))][(_0xf59c('0x72'))](_0xf59c('0x77'));}return _0x265366[_0xf59c('0x7b')+_['capitalize'](_0x3e41b7[_0xf59c('0x30')]['channel'][_0xf59c('0x73')]())+'Queues'](_0x3e41b7[_0xf59c('0x30')][_0xf59c('0x79')]);}return null;})[_0xf59c('0x26')](handleEntityNotFound(_0x2585be,null))['then'](respondWithStatusCode(_0x2585be,null))[_0xf59c('0x44')](handleError(_0x2585be,null));};exports[_0xf59c('0x7c')]=function(_0x34d297,_0x1e4d72){var _0x1479ae=_[_0xf59c('0x7d')](_0x34d297[_0xf59c('0x48')][_0xf59c('0x79')])?_0x34d297[_0xf59c('0x48')]['ids']:[_0x34d297[_0xf59c('0x48')][_0xf59c('0x79')]];var _0x5aa969=_0x34d297[_0xf59c('0x45')]['id'];return db[_0xf59c('0x2c')][_0xf59c('0x4e')]({'where':{'id':_0x5aa969}})[_0xf59c('0x26')](handleEntityNotFound(_0x1e4d72,null))['then'](function(_0x5bd68d){if(_0x5bd68d){var _0x12b4bb=[_0xf59c('0x7e'),'Chat',_0xf59c('0x7f'),'Sms',_0xf59c('0x80'),'Openchannel',_0xf59c('0x81')];return db['sequelize'][_0xf59c('0x54')](function(_0x5ed3e0){var _0x3e2320=_[_0xf59c('0x2b')](_0x12b4bb,function(_0x3a7f9b){var _0x285699={'attributes':['id',_0xf59c('0x29')]};if(_0x3a7f9b===_0xf59c('0x7e')){_0x285699[_0xf59c('0x82')]={'attributes':['penalty']};}return _0x5bd68d[_0xf59c('0x4a')+_0x3a7f9b+'Queues'](_0x285699)[_0xf59c('0x26')](function(_0x34be56){var _0x279ab9=_['map'](_0x34be56,function(_0x31fd39){var _0x119cdf=_[_0xf59c('0x2b')](_0x1479ae,function(_0x3aa16f){var _0x25a64b={'where':{'UserId':_0x3aa16f,[_0x3a7f9b+_0xf59c('0x83')]:_0x31fd39['id']},'transaction':_0x5ed3e0};if(_0x3a7f9b===_0xf59c('0x7e')){_0x25a64b[_0xf59c('0x84')]={'penalty':_0x31fd39[_0xf59c('0x85')][_0xf59c('0x86')]};}return db[_0xf59c('0x87')+_0x3a7f9b+'Queue']['findOrCreate'](_0x25a64b)['then'](function(){socket[_0xf59c('0x88')](_0xf59c('0x49')+_0x3a7f9b+_0xf59c('0x89'),{'UserId':_0x3aa16f,[_0x3a7f9b+_0xf59c('0x83')]:_0x31fd39['id']});if(_0x3a7f9b!==_0xf59c('0x7e')){return;}return db['User'][_0xf59c('0x42')]({'where':{'id':_0x1479ae,'online':0x1},'attributes':['id',_0xf59c('0x29'),_0xf59c('0x8a'),_0xf59c('0x8b'),_0xf59c('0x8c')],'raw':!![]})['then'](function(_0x52c855){var _0x5aba53=_[_0xf59c('0x2b')](_0x52c855,function(_0x53ea1a){return db['UserVoiceQueueRt']['upsert']({'membername':_0x53ea1a[_0xf59c('0x29')],'UserId':_0x53ea1a['id'],'queue_name':_0x31fd39[_0xf59c('0x29')],'VoiceQueueId':_0x31fd39['id'],'interface':_['isNil'](_0x53ea1a[_0xf59c('0x8c')])?util[_0xf59c('0x8d')](_0xf59c('0x8e'),_0x53ea1a['name']):_0x53ea1a[_0xf59c('0x8c')],'paused':_0x53ea1a[_0xf59c('0x8b')]||![],'penalty':_0x31fd39[_0xf59c('0x85')][_0xf59c('0x86')]},{'transaction':_0x5ed3e0});});return Promise['all'](_0x5aba53);});});});return Promise[_0xf59c('0x8f')](_0x119cdf);});return Promise['all'](_0x279ab9);})[_0xf59c('0x26')](function(){return db[_0xf59c('0x90')][_0xf59c('0x6f')]({'where':{'teamId':_0x5aa969}})[_0xf59c('0x26')](function(_0x1b3205){if(_0x1b3205){var _0xfdb831=_[_0xf59c('0x2b')](_0x1479ae,function(_0x1b9471){db[_0xf59c('0x6c')]['upsert']({'UserId':_0x1b9471,'VoicePrefixId':_0x1b3205[_0xf59c('0x6d')]});});return Promise['all'](_0xfdb831);}});});});return Promise[_0xf59c('0x8f')](_0x3e2320)[_0xf59c('0x26')](function(){return _0x5bd68d['addAgents'](_0x1479ae,{'transaction':_0x5ed3e0})[_0xf59c('0x91')](function(_0x334f0d){return _0x334f0d;});});});}})[_0xf59c('0x26')](respondWithResult(_0x1e4d72,null))[_0xf59c('0x44')](handleError(_0x1e4d72,null));};exports['removeAgents']=function(_0x3b4b2b,_0x42eb92){var _0x300ba8=_[_0xf59c('0x7d')](_0x3b4b2b[_0xf59c('0x30')]['ids'])?_0x3b4b2b[_0xf59c('0x30')][_0xf59c('0x79')]:[_0x3b4b2b['query'][_0xf59c('0x79')]];var _0x429de4=_0x3b4b2b[_0xf59c('0x45')]['id'];return db[_0xf59c('0x2c')][_0xf59c('0x4e')]({'where':{'id':_0x429de4}})[_0xf59c('0x26')](handleEntityNotFound(_0x42eb92,null))[_0xf59c('0x26')](function(_0x36e203){if(_0x36e203){var _0x4fb74c=[_0xf59c('0x7e'),_0xf59c('0x92'),_0xf59c('0x7f'),'Sms','Fax',_0xf59c('0x93'),'Whatsapp'];return db[_0xf59c('0x53')]['transaction'](function(_0x33ceb4){var _0x674a03=_[_0xf59c('0x2b')](_0x4fb74c,function(_0x20110f){var _0x964809={'attributes':['id','name']};return _0x36e203[_0xf59c('0x4a')+_0x20110f+'Queues'](_0x964809)[_0xf59c('0x26')](function(_0x461af7){var _0x406752=_[_0xf59c('0x2b')](_0x461af7,function(_0x299e5d){return _0x299e5d[_0xf59c('0x94')](_0x300ba8,{'transaction':_0x33ceb4})[_0xf59c('0x26')](function(){var _0x182f45=_['map'](_0x300ba8,function(_0x506688){socket[_0xf59c('0x88')](_0xf59c('0x49')+_0x20110f+_0xf59c('0x95'),{'UserId':Number(_0x506688),[_0x20110f+_0xf59c('0x83')]:_0x299e5d['id']});if(_0x20110f!==_0xf59c('0x7e')){return;}return db[_0xf59c('0x96')]['destroy']({'where':{'VoiceQueueId':_0x299e5d['id'],'UserId':_0x506688},'transaction':_0x33ceb4});});return Promise[_0xf59c('0x8f')](_0x182f45);});});return Promise[_0xf59c('0x8f')](_0x406752);});});return Promise[_0xf59c('0x8f')](_0x674a03)[_0xf59c('0x26')](function(){return _0x36e203[_0xf59c('0x94')](_0x300ba8,{'transaction':_0x33ceb4});})[_0xf59c('0x26')](function(){return db[_0xf59c('0x90')]['findOne']({'where':{'teamId':_0x429de4}})[_0xf59c('0x26')](function(_0x46b0ee){if(_0x46b0ee){var _0x1b2d85=_[_0xf59c('0x2b')](_0x300ba8,function(_0x5e44e0){db[_0xf59c('0x6c')][_0xf59c('0x52')]({'where':{'UserId':_0x5e44e0,'VoicePrefixId':_0x46b0ee['VoicePrefixId']}});});return Promise[_0xf59c('0x8f')](_0x1b2d85);}});});});}})[_0xf59c('0x26')](respondWithStatusCode(_0x42eb92,null))[_0xf59c('0x44')](handleError(_0x42eb92,null));};exports[_0xf59c('0x97')]=function(_0x476bcd,_0x5894ad,_0x4a81bf){var _0x619e1e={};var _0x411c26={};var _0x4abbec;var _0x5126f6;return db[_0xf59c('0x2c')][_0xf59c('0x6f')]({'where':{'id':_0x476bcd[_0xf59c('0x45')]['id']}})[_0xf59c('0x26')](handleEntityNotFound(_0x5894ad,null))['then'](function(_0x1c6223){if(_0x1c6223){_0x4abbec=_0x1c6223;_0x411c26['model']=_[_0xf59c('0x46')](db[_0xf59c('0x87')]['rawAttributes']);_0x411c26[_0xf59c('0x30')]=_[_0xf59c('0x46')](_0x476bcd[_0xf59c('0x30')]);_0x411c26[_0xf59c('0x3b')]=_[_0xf59c('0x31')](_0x411c26[_0xf59c('0x2f')],_0x411c26[_0xf59c('0x30')]);_0x619e1e[_0xf59c('0x33')]=_[_0xf59c('0x31')](_0x411c26[_0xf59c('0x2f')],qs['fields'](_0x476bcd[_0xf59c('0x30')][_0xf59c('0x32')]));_0x619e1e[_0xf59c('0x33')]=_0x619e1e[_0xf59c('0x33')][_0xf59c('0x34')]?_0x619e1e['attributes']:_0x411c26['model'];_0x619e1e[_0xf59c('0x38')]=qs[_0xf59c('0x39')](_0x476bcd[_0xf59c('0x30')][_0xf59c('0x39')]);_0x619e1e[_0xf59c('0x3a')]=qs[_0xf59c('0x3b')](_[_0xf59c('0x3c')](_0x476bcd[_0xf59c('0x30')],_0x411c26[_0xf59c('0x3b')]));if(_0x476bcd[_0xf59c('0x30')][_0xf59c('0x3d')]){_0x619e1e[_0xf59c('0x3a')]=_[_0xf59c('0x3e')](_0x619e1e['where'],{'$or':_[_0xf59c('0x2b')](_0x619e1e['attributes'],function(_0xe8a8e){var _0x1395e5={};_0x1395e5[_0xe8a8e]={'$like':'%'+_0x476bcd[_0xf59c('0x30')]['filter']+'%'};return _0x1395e5;})});}_0x619e1e=_[_0xf59c('0x3e')]({},_0x619e1e,_0x476bcd[_0xf59c('0x3f')]);return _0x4abbec[_0xf59c('0x97')](_0x619e1e);}})[_0xf59c('0x26')](function(_0x45e5fd){if(_0x45e5fd){_0x5126f6=_0x45e5fd[_0xf59c('0x34')];if(!_0x476bcd[_0xf59c('0x30')][_0xf59c('0x35')](_0xf59c('0x36'))){_0x619e1e['limit']=qs[_0xf59c('0x37')](_0x476bcd['query'][_0xf59c('0x37')]);_0x619e1e[_0xf59c('0x1e')]=qs[_0xf59c('0x1e')](_0x476bcd[_0xf59c('0x30')][_0xf59c('0x1e')]);}return _0x4abbec[_0xf59c('0x97')](_0x619e1e);}})[_0xf59c('0x26')](function(_0x16a375){if(_0x16a375){return _0x16a375?{'count':_0x5126f6,'rows':_0x16a375}:null;}})[_0xf59c('0x26')](respondWithResult(_0x5894ad,null))['catch'](handleError(_0x5894ad,null));};
\ No newline at end of file
+var _0x758a=['index','Team','fieldName','key','map','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','keys','length','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','userProfileId','autoAssociation','UserProfileResource','body','getQueues','findOne','channel','isValidChannel','Sequelize','ValidationError','Unknown\x20channel','toLowerCase','Queue','rawAttributes','capitalize','add','Queues','ids','removeQueues','remove','addAgents','Voice','Chat','Sms','Openchannel','Whatsapp','sequelize','transaction','through','penalty','QueueId','TeamVoiceQueue','User','findOrCreate','emit','voicePause','interface','isNil','format','all','spread','removeAgents','Mail','Fax','parse','Queue:remove','UserVoiceQueueRt','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','end','status','offset','undefined','limit','count','set','Content-Range','json','save','update','destroy','then','get','sendStatus','error','stack','name','send'];(function(_0x1b4017,_0x58a788){var _0x210a43=function(_0x3e0fe0){while(--_0x3e0fe0){_0x1b4017['push'](_0x1b4017['shift']());}};_0x210a43(++_0x58a788);}(_0x758a,0x1d1));var _0xa758=function(_0x331fcd,_0x5a1421){_0x331fcd=_0x331fcd-0x0;var _0x155b5d=_0x758a[_0x331fcd];return _0x155b5d;};'use strict';var emlformat=require(_0xa758('0x0'));var rimraf=require(_0xa758('0x1'));var zipdir=require(_0xa758('0x2'));var jsonpatch=require(_0xa758('0x3'));var rp=require(_0xa758('0x4'));var moment=require(_0xa758('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xa758('0x6'));var sox=require('sox');var csv=require(_0xa758('0x7'));var ejs=require(_0xa758('0x8'));var fs=require('fs');var fs_extra=require(_0xa758('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xa758('0xa'));var jsforce=require(_0xa758('0xb'));var deskjs=require(_0xa758('0xc'));var toCsv=require(_0xa758('0x7'));var querystring=require(_0xa758('0xd'));var Papa=require(_0xa758('0xe'));var Redis=require('ioredis');var authService=require(_0xa758('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xa758('0x10'));var logger=require(_0xa758('0x11'))('api');var utils=require(_0xa758('0x12'));var config=require(_0xa758('0x13'));var licenseUtil=require(_0xa758('0x14'));var db=require(_0xa758('0x15'))['db'];config[_0xa758('0x16')]=_[_0xa758('0x17')](config[_0xa758('0x16')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa758('0x16')]));require('./team.socket')['register'](socket);function respondWithStatusCode(_0x465ced,_0x3134d9){_0x3134d9=_0x3134d9||0xcc;return function(_0x34ea5f){if(_0x34ea5f){return _0x465ced['sendStatus'](_0x3134d9);}return _0x465ced['status'](_0x3134d9)[_0xa758('0x18')]();};}function respondWithResult(_0x5dad5a,_0x2a37c4){_0x2a37c4=_0x2a37c4||0xc8;return function(_0x50cfba){if(_0x50cfba){return _0x5dad5a[_0xa758('0x19')](_0x2a37c4)['json'](_0x50cfba);}};}function respondWithFilteredResult(_0x1f6ea0,_0x4704a1){return function(_0x2757fd){if(_0x2757fd){var _0x32d4ec=typeof _0x4704a1[_0xa758('0x1a')]===_0xa758('0x1b')&&typeof _0x4704a1[_0xa758('0x1c')]==='undefined';var _0x220f28=_0x2757fd['count'];var _0x21a823=_0x32d4ec?0x0:_0x4704a1[_0xa758('0x1a')];var _0xc5bd4f=_0x32d4ec?_0x2757fd[_0xa758('0x1d')]:_0x4704a1['offset']+_0x4704a1[_0xa758('0x1c')];var _0x4d741b;if(_0xc5bd4f>=_0x220f28){_0xc5bd4f=_0x220f28;_0x4d741b=0xc8;}else{_0x4d741b=0xce;}_0x1f6ea0['status'](_0x4d741b);return _0x1f6ea0[_0xa758('0x1e')](_0xa758('0x1f'),_0x21a823+'-'+_0xc5bd4f+'/'+_0x220f28)[_0xa758('0x20')](_0x2757fd);}return null;};}function patchUpdates(_0x49bcae){return function(_0x2f9b68){try{jsonpatch['apply'](_0x2f9b68,_0x49bcae,!![]);}catch(_0x1d0a64){return BPromise['reject'](_0x1d0a64);}return _0x2f9b68[_0xa758('0x21')]();};}function saveUpdates(_0x49b993,_0x3cf203){return function(_0x4e2d98){if(_0x4e2d98){return _0x4e2d98[_0xa758('0x22')](_0x49b993)['then'](function(_0x1c7651){return _0x1c7651;});}return null;};}function removeEntity(_0x1c3338,_0x3f4e91){return function(_0xd9dd6d){if(_0xd9dd6d){return _0xd9dd6d[_0xa758('0x23')]()[_0xa758('0x24')](function(){var _0x2d9eb4=_0xd9dd6d[_0xa758('0x25')]({'plain':!![]});var _0x5eda50='Teams';return db['UserProfileResource']['destroy']({'where':{'type':_0x5eda50,'resourceId':_0x2d9eb4['id']}})[_0xa758('0x24')](function(){return _0xd9dd6d;});})[_0xa758('0x24')](function(){_0x1c3338['status'](0xcc)[_0xa758('0x18')]();});}};}function handleEntityNotFound(_0x2a432f,_0x32f5ac){return function(_0x2bad36){if(!_0x2bad36){_0x2a432f[_0xa758('0x26')](0x194);}return _0x2bad36;};}function handleError(_0x14d56b,_0xbbe228){_0xbbe228=_0xbbe228||0x1f4;return function(_0x55aa36){logger[_0xa758('0x27')](_0x55aa36[_0xa758('0x28')]);if(_0x55aa36['name']){delete _0x55aa36[_0xa758('0x29')];}_0x14d56b[_0xa758('0x19')](_0xbbe228)[_0xa758('0x2a')](_0x55aa36);};}exports[_0xa758('0x2b')]=function(_0x33fd1f,_0x50625c){var _0x367c76={},_0x1ea22a={},_0x483f60={'count':0x0,'rows':[]};var _0x4a6167=_['map'](db[_0xa758('0x2c')]['rawAttributes'],function(_0x1c29e4){return{'name':_0x1c29e4[_0xa758('0x2d')],'type':_0x1c29e4['type'][_0xa758('0x2e')]};});_0x1ea22a['model']=_[_0xa758('0x2f')](_0x4a6167,_0xa758('0x29'));_0x1ea22a[_0xa758('0x30')]=_['keys'](_0x33fd1f[_0xa758('0x30')]);_0x1ea22a[_0xa758('0x31')]=_[_0xa758('0x32')](_0x1ea22a[_0xa758('0x33')],_0x1ea22a[_0xa758('0x30')]);_0x367c76[_0xa758('0x34')]=_[_0xa758('0x32')](_0x1ea22a[_0xa758('0x33')],qs[_0xa758('0x35')](_0x33fd1f[_0xa758('0x30')][_0xa758('0x35')]));_0x367c76['attributes']=_0x367c76['attributes']['length']?_0x367c76[_0xa758('0x34')]:_0x1ea22a[_0xa758('0x33')];if(!_0x33fd1f['query'][_0xa758('0x36')](_0xa758('0x37'))){_0x367c76[_0xa758('0x1c')]=qs[_0xa758('0x1c')](_0x33fd1f['query']['limit']);_0x367c76[_0xa758('0x1a')]=qs['offset'](_0x33fd1f[_0xa758('0x30')][_0xa758('0x1a')]);}_0x367c76[_0xa758('0x38')]=qs['sort'](_0x33fd1f[_0xa758('0x30')][_0xa758('0x39')]);_0x367c76[_0xa758('0x3a')]=qs[_0xa758('0x31')](_[_0xa758('0x3b')](_0x33fd1f[_0xa758('0x30')],_0x1ea22a[_0xa758('0x31')]),_0x4a6167);if(_0x33fd1f[_0xa758('0x30')][_0xa758('0x3c')]){_0x367c76['where']=_[_0xa758('0x3d')](_0x367c76['where'],{'$or':_[_0xa758('0x2f')](_0x4a6167,function(_0xc7f2e6){if(_0xc7f2e6[_0xa758('0x3e')]!==_0xa758('0x3f')){var _0x5abe2e={};_0x5abe2e[_0xc7f2e6[_0xa758('0x29')]]={'$like':'%'+_0x33fd1f[_0xa758('0x30')][_0xa758('0x3c')]+'%'};return _0x5abe2e;}})});}_0x367c76=_[_0xa758('0x3d')]({},_0x367c76,_0x33fd1f[_0xa758('0x40')]);var _0x5871ed={'where':_0x367c76[_0xa758('0x3a')]};return db[_0xa758('0x2c')][_0xa758('0x1d')](_0x5871ed)[_0xa758('0x24')](function(_0x6d2494){_0x483f60[_0xa758('0x1d')]=_0x6d2494;if(_0x33fd1f[_0xa758('0x30')][_0xa758('0x41')]){_0x367c76['include']=[{'all':!![]}];}return db[_0xa758('0x2c')][_0xa758('0x42')](_0x367c76);})[_0xa758('0x24')](function(_0x3107c9){_0x483f60[_0xa758('0x43')]=_0x3107c9;return _0x483f60;})[_0xa758('0x24')](respondWithFilteredResult(_0x50625c,_0x367c76))[_0xa758('0x44')](handleError(_0x50625c,null));};exports[_0xa758('0x45')]=function(_0x2d5b52,_0x5db0f4){var _0x5a4bfb={'raw':![],'where':{'id':_0x2d5b52[_0xa758('0x46')]['id']}},_0x382841={};_0x382841[_0xa758('0x33')]=_[_0xa758('0x47')](db[_0xa758('0x2c')]['rawAttributes']);_0x382841[_0xa758('0x30')]=_[_0xa758('0x47')](_0x2d5b52[_0xa758('0x30')]);_0x382841[_0xa758('0x31')]=_[_0xa758('0x32')](_0x382841['model'],_0x382841[_0xa758('0x30')]);_0x5a4bfb[_0xa758('0x34')]=_['intersection'](_0x382841[_0xa758('0x33')],qs['fields'](_0x2d5b52[_0xa758('0x30')][_0xa758('0x35')]));_0x5a4bfb[_0xa758('0x34')]=_0x5a4bfb['attributes'][_0xa758('0x48')]?_0x5a4bfb[_0xa758('0x34')]:_0x382841[_0xa758('0x33')];if(_0x2d5b52[_0xa758('0x30')][_0xa758('0x41')]){_0x5a4bfb['include']=[{'all':!![]}];}_0x5a4bfb=_[_0xa758('0x3d')]({},_0x5a4bfb,_0x2d5b52[_0xa758('0x40')]);return db['Team'][_0xa758('0x49')](_0x5a4bfb)[_0xa758('0x24')](handleEntityNotFound(_0x5db0f4,null))[_0xa758('0x24')](respondWithResult(_0x5db0f4,null))[_0xa758('0x44')](handleError(_0x5db0f4,null));};exports[_0xa758('0x4a')]=function(_0x5408da,_0x2d1262){return db[_0xa758('0x2c')]['create'](_0x5408da['body'],{})[_0xa758('0x24')](function(_0x31c508){var _0x5210e0=_0x5408da[_0xa758('0x4b')]['get']({'plain':!![]});if(!_0x5210e0)throw new Error(_0xa758('0x4c'));if(_0x5210e0[_0xa758('0x4d')]===_0xa758('0x4b')){var _0x2c5535=_0x31c508['get']({'plain':!![]});var _0x3b3ff5=_0xa758('0x4e');return db['UserProfileSection'][_0xa758('0x49')]({'where':{'name':_0x3b3ff5,'userProfileId':_0x5210e0[_0xa758('0x4f')]},'raw':!![]})['then'](function(_0x1c2642){if(_0x1c2642&&_0x1c2642[_0xa758('0x50')]===0x0){return db[_0xa758('0x51')][_0xa758('0x4a')]({'name':_0x2c5535[_0xa758('0x29')],'resourceId':_0x2c5535['id'],'type':_0x1c2642[_0xa758('0x29')],'sectionId':_0x1c2642['id']},{})[_0xa758('0x24')](function(){return _0x31c508;});}else{return _0x31c508;}})[_0xa758('0x44')](function(_0xf387be){logger[_0xa758('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xf387be);throw _0xf387be;});}return _0x31c508;})[_0xa758('0x24')](respondWithResult(_0x2d1262,0xc9))[_0xa758('0x44')](handleError(_0x2d1262,null));};exports[_0xa758('0x22')]=function(_0x422637,_0x5145a9){if(_0x422637['body']['id']){delete _0x422637[_0xa758('0x52')]['id'];}return db[_0xa758('0x2c')]['find']({'where':{'id':_0x422637['params']['id']}})['then'](handleEntityNotFound(_0x5145a9,null))['then'](saveUpdates(_0x422637[_0xa758('0x52')],null))[_0xa758('0x24')](respondWithResult(_0x5145a9,null))['catch'](handleError(_0x5145a9,null));};exports[_0xa758('0x23')]=function(_0x491811,_0x1b46f4){return db[_0xa758('0x2c')][_0xa758('0x49')]({'where':{'id':_0x491811[_0xa758('0x46')]['id']}})[_0xa758('0x24')](handleEntityNotFound(_0x1b46f4,null))['then'](removeEntity(_0x1b46f4,null))[_0xa758('0x44')](handleError(_0x1b46f4,null));};exports[_0xa758('0x53')]=function(_0x56a0e5,_0x5181d9,_0x26ff69){return db[_0xa758('0x2c')][_0xa758('0x54')]({'where':{'id':_0x56a0e5[_0xa758('0x46')]['id']}})['then'](handleEntityNotFound(_0x5181d9,null))[_0xa758('0x24')](function(_0x492c22){if(!_0x56a0e5[_0xa758('0x30')][_0xa758('0x55')]||!utils[_0xa758('0x56')](_0x56a0e5[_0xa758('0x30')][_0xa758('0x55')])){throw new db[(_0xa758('0x57'))][(_0xa758('0x58'))](_0xa758('0x59'));}var _0x569c20={};var _0x215fc0={};_0x215fc0['model']=_[_0xa758('0x47')](db[_['capitalize'](_0x56a0e5['query'][_0xa758('0x55')][_0xa758('0x5a')]())+_0xa758('0x5b')][_0xa758('0x5c')]);_0x215fc0['query']=_[_0xa758('0x47')](_0x56a0e5['query']);_0x215fc0[_0xa758('0x31')]=_[_0xa758('0x32')](_0x215fc0[_0xa758('0x33')],_0x215fc0[_0xa758('0x30')]);_0x569c20[_0xa758('0x34')]=_[_0xa758('0x32')](_0x215fc0[_0xa758('0x33')],qs[_0xa758('0x35')](_0x56a0e5[_0xa758('0x30')][_0xa758('0x35')]));_0x569c20[_0xa758('0x34')]=_0x569c20[_0xa758('0x34')][_0xa758('0x48')]?_0x569c20[_0xa758('0x34')]:_0x215fc0['model'];_0x569c20[_0xa758('0x1c')]=qs[_0xa758('0x1c')](_0x56a0e5[_0xa758('0x30')]['limit']);_0x569c20['offset']=qs[_0xa758('0x1a')](_0x56a0e5[_0xa758('0x30')][_0xa758('0x1a')]);_0x569c20[_0xa758('0x38')]=qs[_0xa758('0x39')](_0x56a0e5['query']['sort']);_0x569c20[_0xa758('0x3a')]=qs[_0xa758('0x31')](_[_0xa758('0x3b')](_0x56a0e5['query'],_0x215fc0['filters']));_0x569c20=_[_0xa758('0x3d')]({},_0x569c20,_0x56a0e5[_0xa758('0x40')]);return _0x492c22[_0xa758('0x25')+_[_0xa758('0x5d')](_0x56a0e5[_0xa758('0x30')][_0xa758('0x55')]['toLowerCase']())+'Queues'](_0x569c20);})[_0xa758('0x24')](respondWithResult(_0x5181d9,null))[_0xa758('0x44')](handleError(_0x5181d9,null));};exports['addQueues']=function(_0x5856c2,_0x5ad613,_0x29c2d1){return db[_0xa758('0x2c')][_0xa758('0x54')]({'where':{'id':_0x5856c2['params']['id']}})['then'](function(_0x5d89cb){if(_0x5d89cb){if(!_0x5856c2[_0xa758('0x52')][_0xa758('0x55')]||!utils['isValidChannel'](_0x5856c2[_0xa758('0x52')][_0xa758('0x55')])){throw new db['Sequelize'][(_0xa758('0x58'))](_0xa758('0x59'));}return _0x5d89cb[_0xa758('0x5e')+_[_0xa758('0x5d')](_0x5856c2['body'][_0xa758('0x55')]['toLowerCase']())+_0xa758('0x5f')](_0x5856c2[_0xa758('0x52')][_0xa758('0x60')]);}return null;})[_0xa758('0x24')](handleEntityNotFound(_0x5ad613,null))['then'](respondWithStatusCode(_0x5ad613,null))['catch'](handleError(_0x5ad613,null));};exports[_0xa758('0x61')]=function(_0x1651cd,_0x53c554,_0xcbc48e){return db[_0xa758('0x2c')]['findOne']({'where':{'id':_0x1651cd[_0xa758('0x46')]['id']}})['then'](function(_0x52c014){if(_0x52c014){if(!_0x1651cd[_0xa758('0x30')][_0xa758('0x55')]||!utils['isValidChannel'](_0x1651cd[_0xa758('0x30')][_0xa758('0x55')])){throw new db['Sequelize'][(_0xa758('0x58'))](_0xa758('0x59'));}return _0x52c014[_0xa758('0x62')+_[_0xa758('0x5d')](_0x1651cd[_0xa758('0x30')]['channel'][_0xa758('0x5a')]())+_0xa758('0x5f')](_0x1651cd['query'][_0xa758('0x60')]);}return null;})['then'](handleEntityNotFound(_0x53c554,null))[_0xa758('0x24')](respondWithStatusCode(_0x53c554,null))[_0xa758('0x44')](handleError(_0x53c554,null));};exports[_0xa758('0x63')]=function(_0x3ef3ea,_0x53f743){return db[_0xa758('0x2c')]['find']({'where':{'id':_0x3ef3ea[_0xa758('0x46')]['id']}})[_0xa758('0x24')](handleEntityNotFound(_0x53f743,null))[_0xa758('0x24')](function(_0x257324){if(_0x257324){var _0x3db0d9=[_0xa758('0x64'),_0xa758('0x65'),'Mail',_0xa758('0x66'),'Fax',_0xa758('0x67'),_0xa758('0x68')];return db[_0xa758('0x69')][_0xa758('0x6a')](function(_0x4802ce){var _0xdb943e=_['map'](_0x3db0d9,function(_0xde5b59){var _0x156aa0={'attributes':['id',_0xa758('0x29')]};if(_0xde5b59===_0xa758('0x64')){_0x156aa0[_0xa758('0x6b')]={'attributes':[_0xa758('0x6c')]};}return _0x257324[_0xa758('0x25')+_0xde5b59+_0xa758('0x5f')](_0x156aa0)[_0xa758('0x24')](function(_0xef4dee){var _0x2f7442=_[_0xa758('0x2f')](_0xef4dee,function(_0x466994){var _0x23dab7=_['map'](_0x3ef3ea[_0xa758('0x52')][_0xa758('0x60')],function(_0x4046cf){var _0x14468b={'where':{'UserId':_0x4046cf,[_0xde5b59+_0xa758('0x6d')]:_0x466994['id']},'transaction':_0x4802ce};if(_0xde5b59===_0xa758('0x64')){_0x14468b[_0xa758('0x17')]={'penalty':_0x466994[_0xa758('0x6e')][_0xa758('0x6c')]};}return db[_0xa758('0x6f')+_0xde5b59+_0xa758('0x5b')][_0xa758('0x70')](_0x14468b)[_0xa758('0x24')](function(){socket[_0xa758('0x71')](_0xa758('0x4b')+_0xde5b59+'Queue:save',{'UserId':_0x4046cf,[_0xde5b59+'QueueId']:_0x466994['id']});if(_0xde5b59!==_0xa758('0x64'))return;return db[_0xa758('0x6f')]['findAll']({'where':{'id':_0x3ef3ea['body'][_0xa758('0x60')],'online':0x1},'attributes':['id',_0xa758('0x29'),'online',_0xa758('0x72'),_0xa758('0x73')],'raw':!![]})[_0xa758('0x24')](function(_0x25fc59){var _0x559d09=_[_0xa758('0x2f')](_0x25fc59,function(_0x3d91b1){return db['UserVoiceQueueRt']['upsert']({'membername':_0x3d91b1[_0xa758('0x29')],'UserId':_0x3d91b1['id'],'queue_name':_0x466994['name'],'VoiceQueueId':_0x466994['id'],'interface':_[_0xa758('0x74')](_0x3d91b1[_0xa758('0x73')])?util[_0xa758('0x75')]('SIP/%s',_0x3d91b1[_0xa758('0x29')]):_0x3d91b1[_0xa758('0x73')],'paused':_0x3d91b1['voicePause']||![],'penalty':_0x466994['TeamVoiceQueue'][_0xa758('0x6c')]},{'transaction':_0x4802ce});});return Promise[_0xa758('0x76')](_0x559d09);});});});return Promise[_0xa758('0x76')](_0x23dab7);});return Promise[_0xa758('0x76')](_0x2f7442);});});return Promise[_0xa758('0x76')](_0xdb943e)[_0xa758('0x24')](function(){return _0x257324[_0xa758('0x63')](_0x3ef3ea['body'][_0xa758('0x60')],{'transaction':_0x4802ce})[_0xa758('0x77')](function(_0x5d7040){return _0x5d7040;});});});}})['then'](respondWithResult(_0x53f743,null))[_0xa758('0x44')](handleError(_0x53f743,null));};exports[_0xa758('0x78')]=function(_0x593b71,_0x3d7309){return db[_0xa758('0x2c')][_0xa758('0x49')]({'where':{'id':_0x593b71[_0xa758('0x46')]['id']}})[_0xa758('0x24')](handleEntityNotFound(_0x3d7309,null))[_0xa758('0x24')](function(_0x47f4ca){if(_0x47f4ca){var _0x427d01=['Voice',_0xa758('0x65'),_0xa758('0x79'),_0xa758('0x66'),_0xa758('0x7a'),_0xa758('0x67'),_0xa758('0x68')];return db[_0xa758('0x69')]['transaction'](function(_0x125308){var _0x5da091=_[_0xa758('0x2f')](_0x427d01,function(_0x3c323e){var _0x58b75b={'attributes':['id',_0xa758('0x29')]};return _0x47f4ca[_0xa758('0x25')+_0x3c323e+_0xa758('0x5f')](_0x58b75b)['then'](function(_0x345f02){var _0x4eed34=_['map'](_0x345f02,function(_0x16260f){return _0x16260f[_0xa758('0x78')](_0x593b71[_0xa758('0x30')][_0xa758('0x60')],{'transaction':_0x125308})[_0xa758('0x24')](function(){var _0x628d36=JSON[_0xa758('0x7b')]('['+_0x593b71[_0xa758('0x30')][_0xa758('0x60')]+']');var _0x486ff8=_['map'](_0x628d36,function(_0x232425){socket[_0xa758('0x71')](_0xa758('0x4b')+_0x3c323e+_0xa758('0x7c'),{'UserId':Number(_0x232425),[_0x3c323e+_0xa758('0x6d')]:_0x16260f['id']});if(_0x3c323e!==_0xa758('0x64'))return;return db[_0xa758('0x7d')][_0xa758('0x23')]({'where':{'VoiceQueueId':_0x16260f['id'],'UserId':_0x232425},'transaction':_0x125308});});return Promise['all'](_0x486ff8);});});return Promise[_0xa758('0x76')](_0x4eed34);});});return Promise[_0xa758('0x76')](_0x5da091)[_0xa758('0x24')](function(){return _0x47f4ca['removeAgents'](_0x593b71[_0xa758('0x30')][_0xa758('0x60')],{'transaction':_0x125308});});});}})[_0xa758('0x24')](respondWithStatusCode(_0x3d7309,null))['catch'](handleError(_0x3d7309,null));};exports[_0xa758('0x7e')]=function(_0x2d5172,_0x58a988,_0x1adcc9){var _0x37e83a={};var _0x4f94b0={};var _0x20308e;var _0x3b4f41;return db[_0xa758('0x2c')][_0xa758('0x54')]({'where':{'id':_0x2d5172[_0xa758('0x46')]['id']}})[_0xa758('0x24')](handleEntityNotFound(_0x58a988,null))[_0xa758('0x24')](function(_0x5d34d0){if(_0x5d34d0){_0x20308e=_0x5d34d0;_0x4f94b0['model']=_[_0xa758('0x47')](db['User'][_0xa758('0x5c')]);_0x4f94b0['query']=_[_0xa758('0x47')](_0x2d5172[_0xa758('0x30')]);_0x4f94b0[_0xa758('0x31')]=_['intersection'](_0x4f94b0[_0xa758('0x33')],_0x4f94b0[_0xa758('0x30')]);_0x37e83a[_0xa758('0x34')]=_[_0xa758('0x32')](_0x4f94b0['model'],qs[_0xa758('0x35')](_0x2d5172[_0xa758('0x30')][_0xa758('0x35')]));_0x37e83a[_0xa758('0x34')]=_0x37e83a[_0xa758('0x34')][_0xa758('0x48')]?_0x37e83a[_0xa758('0x34')]:_0x4f94b0[_0xa758('0x33')];_0x37e83a[_0xa758('0x38')]=qs['sort'](_0x2d5172['query'][_0xa758('0x39')]);_0x37e83a[_0xa758('0x3a')]=qs[_0xa758('0x31')](_[_0xa758('0x3b')](_0x2d5172[_0xa758('0x30')],_0x4f94b0[_0xa758('0x31')]));if(_0x2d5172['query'][_0xa758('0x3c')]){_0x37e83a[_0xa758('0x3a')]=_[_0xa758('0x3d')](_0x37e83a[_0xa758('0x3a')],{'$or':_[_0xa758('0x2f')](_0x37e83a[_0xa758('0x34')],function(_0xd1fd40){var _0x2aed64={};_0x2aed64[_0xd1fd40]={'$like':'%'+_0x2d5172[_0xa758('0x30')][_0xa758('0x3c')]+'%'};return _0x2aed64;})});}_0x37e83a=_[_0xa758('0x3d')]({},_0x37e83a,_0x2d5172[_0xa758('0x40')]);return _0x20308e[_0xa758('0x7e')](_0x37e83a);}})[_0xa758('0x24')](function(_0x2bce4b){if(_0x2bce4b){_0x3b4f41=_0x2bce4b[_0xa758('0x48')];if(!_0x2d5172[_0xa758('0x30')][_0xa758('0x36')](_0xa758('0x37'))){_0x37e83a[_0xa758('0x1c')]=qs[_0xa758('0x1c')](_0x2d5172[_0xa758('0x30')][_0xa758('0x1c')]);_0x37e83a[_0xa758('0x1a')]=qs[_0xa758('0x1a')](_0x2d5172[_0xa758('0x30')][_0xa758('0x1a')]);}return _0x20308e[_0xa758('0x7e')](_0x37e83a);}})[_0xa758('0x24')](function(_0x2ab3f4){if(_0x2ab3f4){return _0x2ab3f4?{'count':_0x3b4f41,'rows':_0x2ab3f4}:null;}})[_0xa758('0x24')](respondWithResult(_0x58a988,null))[_0xa758('0x44')](handleError(_0x58a988,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d47=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','Team'];(function(_0x1fdf3f,_0x379f36){var _0x2f7ddd=function(_0x151c50){while(--_0x151c50){_0x1fdf3f['push'](_0x1fdf3f['shift']());}};_0x2f7ddd(++_0x379f36);}(_0x8d47,0x195));var _0x78d4=function(_0x40775d,_0x24af8c){_0x40775d=_0x40775d-0x0;var _0x39cc32=_0x8d47[_0x40775d];return _0x39cc32;};'use strict';var EventEmitter=require(_0x78d4('0x0'));var Team=require(_0x78d4('0x1'))['db'][_0x78d4('0x2')];var TeamEvents=new EventEmitter();TeamEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x78d4('0x3')};function emitEvent(_0x10a43e){return function(_0x15ef6b,_0x26751c,_0x1ffe8a){TeamEvents['emit'](_0x10a43e+':'+_0x15ef6b['id'],_0x15ef6b);TeamEvents[_0x78d4('0x4')](_0x10a43e,_0x15ef6b);_0x1ffe8a(null);};}for(var e in events){if(events[_0x78d4('0x5')](e)){var event=events[e];Team[_0x78d4('0x6')](e,emitEvent(event));}}module[_0x78d4('0x7')]=TeamEvents;
\ No newline at end of file
+var _0x0615=['exports','Team','setMaxListeners','remove','emit'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x0615,0x150));var _0x5061=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x0615[_0x501510];return _0x1e6ee5;};'use strict';var EventEmitter=require('events');var Team=require('../../mysqldb')['db'][_0x5061('0x0')];var TeamEvents=new EventEmitter();TeamEvents[_0x5061('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x5061('0x2')};function emitEvent(_0x4e2e45){return function(_0x81b87a,_0x43c017,_0x4019a9){TeamEvents[_0x5061('0x3')](_0x4e2e45+':'+_0x81b87a['id'],_0x81b87a);TeamEvents[_0x5061('0x3')](_0x4e2e45,_0x81b87a);_0x4019a9(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];Team['hook'](e,emitEvent(event));}}module[_0x5061('0x4')]=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6309=['rimraf','../../config/environment','./team.attributes','define','Team','teams','lodash','../../config/logger','api','moment','request-promise','path'];(function(_0x599f53,_0x26cc95){var _0x1dbd0b=function(_0x1d2b9f){while(--_0x1d2b9f){_0x599f53['push'](_0x599f53['shift']());}};_0x1dbd0b(++_0x26cc95);}(_0x6309,0xba));var _0x9630=function(_0xe66cf2,_0x32ba5f){_0xe66cf2=_0xe66cf2-0x0;var _0x2d84e7=_0x6309[_0xe66cf2];return _0x2d84e7;};'use strict';var _=require(_0x9630('0x0'));var util=require('util');var logger=require(_0x9630('0x1'))(_0x9630('0x2'));var moment=require(_0x9630('0x3'));var BPromise=require('bluebird');var rp=require(_0x9630('0x4'));var fs=require('fs');var path=require(_0x9630('0x5'));var rimraf=require(_0x9630('0x6'));var config=require(_0x9630('0x7'));var attributes=require(_0x9630('0x8'));module['exports']=function(_0x17a52a,_0x12ccfb){return _0x17a52a[_0x9630('0x9')](_0x9630('0xa'),attributes,{'tableName':_0x9630('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7033=['path','rimraf','../../config/environment','./team.attributes','exports','define','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x4ab78d,_0x3c0907){var _0x2087a2=function(_0x54a082){while(--_0x54a082){_0x4ab78d['push'](_0x4ab78d['shift']());}};_0x2087a2(++_0x3c0907);}(_0x7033,0x19e));var _0x3703=function(_0x199572,_0x33e667){_0x199572=_0x199572-0x0;var _0x13cfa3=_0x7033[_0x199572];return _0x13cfa3;};'use strict';var _=require(_0x3703('0x0'));var util=require(_0x3703('0x1'));var logger=require(_0x3703('0x2'))(_0x3703('0x3'));var moment=require('moment');var BPromise=require(_0x3703('0x4'));var rp=require(_0x3703('0x5'));var fs=require('fs');var path=require(_0x3703('0x6'));var rimraf=require(_0x3703('0x7'));var config=require(_0x3703('0x8'));var attributes=require(_0x3703('0x9'));module[_0x3703('0xa')]=function(_0x283af9,_0x1170b6){return _0x283af9[_0x3703('0xb')]('Team',attributes,{'tableName':'teams','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0fbd=['redis','localhost','socket.io-emitter','./team.socket','register','request','then','Team,\x20%s,\x20%s','Team,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x37ffea,_0x25b006){var _0x2e2615=function(_0x5e6c74){while(--_0x5e6c74){_0x37ffea['push'](_0x37ffea['shift']());}};_0x2e2615(++_0x25b006);}(_0x0fbd,0x76));var _0xd0fb=function(_0x5c2207,_0x1f1a44){_0x5c2207=_0x5c2207-0x0;var _0x35503c=_0x0fbd[_0x5c2207];return _0x35503c;};'use strict';var _=require(_0xd0fb('0x0'));var util=require(_0xd0fb('0x1'));var moment=require('moment');var BPromise=require(_0xd0fb('0x2'));var rs=require(_0xd0fb('0x3'));var fs=require('fs');var Redis=require(_0xd0fb('0x4'));var db=require(_0xd0fb('0x5'))['db'];var utils=require(_0xd0fb('0x6'));var logger=require(_0xd0fb('0x7'))(_0xd0fb('0x8'));var config=require(_0xd0fb('0x9'));var jayson=require(_0xd0fb('0xa'));var client=jayson['client'][_0xd0fb('0xb')]({'port':0x232a});config[_0xd0fb('0xc')]=_['defaults'](config[_0xd0fb('0xc')],{'host':_0xd0fb('0xd'),'port':0x18eb});var socket=require(_0xd0fb('0xe'))(new Redis(config[_0xd0fb('0xc')]));require(_0xd0fb('0xf'))[_0xd0fb('0x10')](socket);function respondWithRpcPromise(_0xe0d57d,_0x5a3495,_0x483350){return new BPromise(function(_0x5ce81f,_0x29ab9d){return client[_0xd0fb('0x11')](_0xe0d57d,_0x483350)[_0xd0fb('0x12')](function(_0x1fc4f9){logger['info'](_0xd0fb('0x13'),_0x5a3495,'request\x20sent');logger['debug'](_0xd0fb('0x14'),_0x5a3495,_0xd0fb('0x15'),JSON['stringify'](_0x1fc4f9));if(_0x1fc4f9['error']){if(_0x1fc4f9[_0xd0fb('0x16')][_0xd0fb('0x17')]===0x1f4){logger[_0xd0fb('0x16')](_0xd0fb('0x13'),_0x5a3495,_0x1fc4f9[_0xd0fb('0x16')][_0xd0fb('0x18')]);return _0x29ab9d(_0x1fc4f9[_0xd0fb('0x16')]['message']);}logger[_0xd0fb('0x16')](_0xd0fb('0x13'),_0x5a3495,_0x1fc4f9[_0xd0fb('0x16')][_0xd0fb('0x18')]);return _0x5ce81f(_0x1fc4f9[_0xd0fb('0x16')][_0xd0fb('0x18')]);}else{logger['info'](_0xd0fb('0x13'),_0x5a3495,_0xd0fb('0x15'));_0x5ce81f(_0x1fc4f9['result'][_0xd0fb('0x18')]);}})[_0xd0fb('0x19')](function(_0x59c248){logger['error'](_0xd0fb('0x13'),_0x5a3495,_0x59c248);_0x29ab9d(_0x59c248);});});}
\ No newline at end of file
+var _0x6725=['result','lodash','util','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./team.socket','request','then','Team,\x20%s,\x20%s','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','stringify','error','message','info'];(function(_0x1207cf,_0x559791){var _0x4d19fc=function(_0x4ca653){while(--_0x4ca653){_0x1207cf['push'](_0x1207cf['shift']());}};_0x4d19fc(++_0x559791);}(_0x6725,0x1b6));var _0x5672=function(_0x2c616b,_0x49926d){_0x2c616b=_0x2c616b-0x0;var _0x53b6be=_0x6725[_0x2c616b];return _0x53b6be;};'use strict';var _=require(_0x5672('0x0'));var util=require(_0x5672('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5672('0x2'));var db=require(_0x5672('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x5672('0x4'))('rpc');var config=require(_0x5672('0x5'));var jayson=require(_0x5672('0x6'));var client=jayson['client']['http']({'port':0x232a});config[_0x5672('0x7')]=_[_0x5672('0x8')](config[_0x5672('0x7')],{'host':_0x5672('0x9'),'port':0x18eb});var socket=require(_0x5672('0xa'))(new Redis(config[_0x5672('0x7')]));require(_0x5672('0xb'))['register'](socket);function respondWithRpcPromise(_0x409def,_0x454047,_0x251372){return new BPromise(function(_0xf95b10,_0x1e6d26){return client[_0x5672('0xc')](_0x409def,_0x251372)[_0x5672('0xd')](function(_0x2fe84a){logger['info'](_0x5672('0xe'),_0x454047,_0x5672('0xf'));logger[_0x5672('0x10')](_0x5672('0x11'),_0x454047,_0x5672('0xf'),JSON[_0x5672('0x12')](_0x2fe84a));if(_0x2fe84a[_0x5672('0x13')]){if(_0x2fe84a['error']['code']===0x1f4){logger[_0x5672('0x13')](_0x5672('0xe'),_0x454047,_0x2fe84a['error'][_0x5672('0x14')]);return _0x1e6d26(_0x2fe84a[_0x5672('0x13')][_0x5672('0x14')]);}logger['error']('Team,\x20%s,\x20%s',_0x454047,_0x2fe84a[_0x5672('0x13')][_0x5672('0x14')]);return _0xf95b10(_0x2fe84a['error'][_0x5672('0x14')]);}else{logger[_0x5672('0x15')](_0x5672('0xe'),_0x454047,_0x5672('0xf'));_0xf95b10(_0x2fe84a[_0x5672('0x16')][_0x5672('0x14')]);}})['catch'](function(_0x18fa20){logger[_0x5672('0x13')](_0x5672('0xe'),_0x454047,_0x18fa20);_0x1e6d26(_0x18fa20);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0419=['register','length','team:','remove','update','removeListener'];(function(_0x1589dd,_0x2b9d22){var _0x1bddd1=function(_0x3687f8){while(--_0x3687f8){_0x1589dd['push'](_0x1589dd['shift']());}};_0x1bddd1(++_0x2b9d22);}(_0x0419,0x153));var _0x9041=function(_0x5a2f71,_0x98029e){_0x5a2f71=_0x5a2f71-0x0;var _0x3267cc=_0x0419[_0x5a2f71];return _0x3267cc;};'use strict';var TeamEvents=require('./team.events');var events=['save',_0x9041('0x0'),_0x9041('0x1')];function createListener(_0x381e11,_0x4e1e14){return function(_0x25ac9b){_0x4e1e14['emit'](_0x381e11,_0x25ac9b);};}function removeListener(_0x5063e4,_0x277249){return function(){TeamEvents[_0x9041('0x2')](_0x5063e4,_0x277249);};}exports[_0x9041('0x3')]=function(_0x1be327){for(var _0x570cdf=0x0,_0x118c44=events[_0x9041('0x4')];_0x570cdf<_0x118c44;_0x570cdf++){var _0x5457be=events[_0x570cdf];var _0x48ac45=createListener(_0x9041('0x5')+_0x5457be,_0x1be327);TeamEvents['on'](_0x5457be,_0x48ac45);}};
\ No newline at end of file
+var _0xcbde=['team:','./team.events','remove','update','removeListener'];(function(_0x30784e,_0x44bd49){var _0x38893c=function(_0x349ef1){while(--_0x349ef1){_0x30784e['push'](_0x30784e['shift']());}};_0x38893c(++_0x44bd49);}(_0xcbde,0x141));var _0xecbd=function(_0x1d8f7a,_0x4a43ae){_0x1d8f7a=_0x1d8f7a-0x0;var _0x513b75=_0xcbde[_0x1d8f7a];return _0x513b75;};'use strict';var TeamEvents=require(_0xecbd('0x0'));var events=['save',_0xecbd('0x1'),_0xecbd('0x2')];function createListener(_0x2716db,_0x456f7f){return function(_0x1a4c26){_0x456f7f['emit'](_0x2716db,_0x1a4c26);};}function removeListener(_0x4ba743,_0x12470a){return function(){TeamEvents[_0xecbd('0x3')](_0x4ba743,_0x12470a);};}exports['register']=function(_0x25b899){for(var _0x27a04d=0x0,_0x545ca6=events['length'];_0x27a04d<_0x545ca6;_0x27a04d++){var _0x2947a0=events[_0x27a04d];var _0x3e9e7a=createListener(_0xecbd('0x4')+_0x2947a0,_0x25b899);TeamEvents['on'](_0x2947a0,_0x3e9e7a);}};
\ 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 _0xdd1b=['exports','INTEGER','sequelize'];(function(_0x32a839,_0x9ac0cd){var _0x4cc230=function(_0xafb620){while(--_0xafb620){_0x32a839['push'](_0x32a839['shift']());}};_0x4cc230(++_0x9ac0cd);}(_0xdd1b,0x11f));var _0xbdd1=function(_0x40d10c,_0x276401){_0x40d10c=_0x40d10c-0x0;var _0x52b763=_0xdd1b[_0x40d10c];return _0x52b763;};'use strict';var Sequelize=require(_0xbdd1('0x0'));module[_0xbdd1('0x1')]={'TeamId':{'type':Sequelize[_0xbdd1('0x2')]},'VoicePrefixId':{'type':Sequelize[_0xbdd1('0x2')]}};
\ 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 _0x6629=['lodash','api','moment','bluebird','request-promise','rimraf','../../config/environment','./teamVoicePrefix.attributes','define','team_has_voice_prefixes'];(function(_0x4abc8f,_0xef597d){var _0x5d7939=function(_0x145f23){while(--_0x145f23){_0x4abc8f['push'](_0x4abc8f['shift']());}};_0x5d7939(++_0xef597d);}(_0x6629,0x1c2));var _0x9662=function(_0x5bf8d2,_0x1e57d3){_0x5bf8d2=_0x5bf8d2-0x0;var _0x22a823=_0x6629[_0x5bf8d2];return _0x22a823;};'use strict';var _=require(_0x9662('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x9662('0x1'));var moment=require(_0x9662('0x2'));var BPromise=require(_0x9662('0x3'));var rp=require(_0x9662('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9662('0x5'));var config=require(_0x9662('0x6'));var attributes=require(_0x9662('0x7'));module['exports']=function(_0x32db20,_0x39be49){return _0x32db20[_0x9662('0x8')]('TeamVoicePrefix',attributes,{'tableName':_0x9662('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x2e4bd4,_0x2b3a58){var _0x48665e=function(_0x447fa1){while(--_0x447fa1){_0x2e4bd4['push'](_0x2e4bd4['shift']());}};_0x48665e(++_0x2b3a58);}(_0x70e0,0x17b));var _0x070e=function(_0xb9a1fb,_0x587833){_0xb9a1fb=_0xb9a1fb-0x0;var _0x3b40a5=_0x70e0[_0xb9a1fb];return _0x3b40a5;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xedd9=['util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','exports'];(function(_0x59e8aa,_0x39f0fa){var _0x46cd4e=function(_0x1a4e08){while(--_0x1a4e08){_0x59e8aa['push'](_0x59e8aa['shift']());}};_0x46cd4e(++_0x39f0fa);}(_0xedd9,0xfc));var _0x9edd=function(_0x1a0e25,_0x4d3c1f){_0x1a0e25=_0x1a0e25-0x0;var _0x33d1e4=_0xedd9[_0x1a0e25];return _0x33d1e4;};'use strict';var multer=require('multer');var util=require(_0x9edd('0x0'));var path=require(_0x9edd('0x1'));var timeout=require(_0x9edd('0x2'));var express=require(_0x9edd('0x3'));var router=express[_0x9edd('0x4')]();var fs_extra=require(_0x9edd('0x5'));var auth=require(_0x9edd('0x6'));var interaction=require(_0x9edd('0x7'));var config=require('../../config/environment');module[_0x9edd('0x8')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd245=['INTEGER','exports'];(function(_0xbe3d35,_0x12ecb8){var _0x4beaed=function(_0x10e8fa){while(--_0x10e8fa){_0xbe3d35['push'](_0xbe3d35['shift']());}};_0x4beaed(++_0x12ecb8);}(_0xd245,0x14d));var _0x5d24=function(_0x1af5b2,_0x1b82fe){_0x1af5b2=_0x1af5b2-0x0;var _0xf1aa2d=_0xd245[_0x1af5b2];return _0xf1aa2d;};'use strict';var Sequelize=require('sequelize');module[_0x5d24('0x0')]={'penalty':{'type':Sequelize[_0x5d24('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x4bc3=['sequelize'];(function(_0xc48f85,_0x2417fa){var _0x32aa2a=function(_0x37247b){while(--_0x37247b){_0xc48f85['push'](_0xc48f85['shift']());}};_0x32aa2a(++_0x2417fa);}(_0x4bc3,0x130));var _0x34bc=function(_0x82129b,_0x484ae9){_0x82129b=_0x82129b-0x0;var _0x2ae5dc=_0x4bc3[_0x82129b];return _0x2ae5dc;};'use strict';var Sequelize=require(_0x34bc('0x0'));module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x255f=['../../config/environment','./teamVoiceQueue.attributes','exports','define','lodash','../../config/logger','api','moment','request-promise','path','rimraf'];(function(_0x63917f,_0x382ff4){var _0x43815d=function(_0x38162a){while(--_0x38162a){_0x63917f['push'](_0x63917f['shift']());}};_0x43815d(++_0x382ff4);}(_0x255f,0x185));var _0xf255=function(_0x591f5b,_0x3d9a97){_0x591f5b=_0x591f5b-0x0;var _0x131b79=_0x255f[_0x591f5b];return _0x131b79;};'use strict';var _=require(_0xf255('0x0'));var util=require('util');var logger=require(_0xf255('0x1'))(_0xf255('0x2'));var moment=require(_0xf255('0x3'));var BPromise=require('bluebird');var rp=require(_0xf255('0x4'));var fs=require('fs');var path=require(_0xf255('0x5'));var rimraf=require(_0xf255('0x6'));var config=require(_0xf255('0x7'));var attributes=require(_0xf255('0x8'));module[_0xf255('0x9')]=function(_0xc1d19f,_0x5bbed0){return _0xc1d19f[_0xf255('0xa')]('TeamVoiceQueue',attributes,{'tableName':'team_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7846=['exports','define','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./teamVoiceQueue.attributes'];(function(_0x30a31e,_0x31f766){var _0x170879=function(_0x313ee7){while(--_0x313ee7){_0x30a31e['push'](_0x30a31e['shift']());}};_0x170879(++_0x31f766);}(_0x7846,0xf4));var _0x6784=function(_0x2336ea,_0x46e872){_0x2336ea=_0x2336ea-0x0;var _0x216bf9=_0x7846[_0x2336ea];return _0x216bf9;};'use strict';var _=require('lodash');var util=require(_0x6784('0x0'));var logger=require(_0x6784('0x1'))(_0x6784('0x2'));var moment=require(_0x6784('0x3'));var BPromise=require(_0x6784('0x4'));var rp=require(_0x6784('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6784('0x6'));var config=require(_0x6784('0x7'));var attributes=require(_0x6784('0x8'));module[_0x6784('0x9')]=function(_0x327e26,_0x409fe1){return _0x327e26[_0x6784('0xa')]('TeamVoiceQueue',attributes,{'tableName':'team_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfd2f=['error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','then','info','TeamVoiceQueue,\x20%s,\x20%s','debug'];(function(_0xea1bcd,_0x465e08){var _0xfbe4c6=function(_0x4e20f1){while(--_0x4e20f1){_0xea1bcd['push'](_0xea1bcd['shift']());}};_0xfbe4c6(++_0x465e08);}(_0xfd2f,0x14a));var _0xffd2=function(_0x1ff18f,_0x4c9076){_0x1ff18f=_0x1ff18f-0x0;var _0x21188a=_0xfd2f[_0x1ff18f];return _0x21188a;};'use strict';var _=require(_0xffd2('0x0'));var util=require(_0xffd2('0x1'));var moment=require(_0xffd2('0x2'));var BPromise=require('bluebird');var rs=require(_0xffd2('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xffd2('0x4'))['db'];var utils=require(_0xffd2('0x5'));var logger=require('../../config/logger')(_0xffd2('0x6'));var config=require(_0xffd2('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xd5e752,_0x2074e0,_0x56a1e2){return new BPromise(function(_0x35d327,_0x5b24ca){return client['request'](_0xd5e752,_0x56a1e2)[_0xffd2('0x8')](function(_0x15e33f){logger[_0xffd2('0x9')](_0xffd2('0xa'),_0x2074e0,'request\x20sent');logger[_0xffd2('0xb')]('TeamVoiceQueue,\x20%s,\x20%s,\x20%s',_0x2074e0,'request\x20sent',JSON['stringify'](_0x15e33f));if(_0x15e33f[_0xffd2('0xc')]){if(_0x15e33f[_0xffd2('0xc')][_0xffd2('0xd')]===0x1f4){logger[_0xffd2('0xc')](_0xffd2('0xa'),_0x2074e0,_0x15e33f[_0xffd2('0xc')][_0xffd2('0xe')]);return _0x5b24ca(_0x15e33f['error']['message']);}logger['error']('TeamVoiceQueue,\x20%s,\x20%s',_0x2074e0,_0x15e33f[_0xffd2('0xc')][_0xffd2('0xe')]);return _0x35d327(_0x15e33f['error'][_0xffd2('0xe')]);}else{logger[_0xffd2('0x9')](_0xffd2('0xa'),_0x2074e0,_0xffd2('0xf'));_0x35d327(_0x15e33f[_0xffd2('0x10')][_0xffd2('0xe')]);}})[_0xffd2('0x11')](function(_0x132d38){logger[_0xffd2('0xc')]('TeamVoiceQueue,\x20%s,\x20%s',_0x2074e0,_0x132d38);_0x5b24ca(_0x132d38);});});}
\ No newline at end of file
+var _0x8ead=['ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','TeamVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','bluebird','randomstring'];(function(_0x24e731,_0x3e34bf){var _0x388eaa=function(_0xa77471){while(--_0xa77471){_0x24e731['push'](_0x24e731['shift']());}};_0x388eaa(++_0x3e34bf);}(_0x8ead,0x108));var _0xd8ea=function(_0x51ba4f,_0x45b667){_0x51ba4f=_0x51ba4f-0x0;var _0x444412=_0x8ead[_0x51ba4f];return _0x444412;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xd8ea('0x0'));var rs=require(_0xd8ea('0x1'));var fs=require('fs');var Redis=require(_0xd8ea('0x2'));var db=require(_0xd8ea('0x3'))['db'];var utils=require(_0xd8ea('0x4'));var logger=require(_0xd8ea('0x5'))('rpc');var config=require(_0xd8ea('0x6'));var jayson=require(_0xd8ea('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x264dfc,_0x230f98,_0x4d9ec7){return new BPromise(function(_0x1f1d80,_0x3879c8){return client[_0xd8ea('0x8')](_0x264dfc,_0x4d9ec7)[_0xd8ea('0x9')](function(_0x25a711){logger[_0xd8ea('0xa')](_0xd8ea('0xb'),_0x230f98,_0xd8ea('0xc'));logger[_0xd8ea('0xd')](_0xd8ea('0xe'),_0x230f98,_0xd8ea('0xc'),JSON[_0xd8ea('0xf')](_0x25a711));if(_0x25a711[_0xd8ea('0x10')]){if(_0x25a711['error'][_0xd8ea('0x11')]===0x1f4){logger['error'](_0xd8ea('0xb'),_0x230f98,_0x25a711['error'][_0xd8ea('0x12')]);return _0x3879c8(_0x25a711[_0xd8ea('0x10')][_0xd8ea('0x12')]);}logger[_0xd8ea('0x10')](_0xd8ea('0xb'),_0x230f98,_0x25a711[_0xd8ea('0x10')][_0xd8ea('0x12')]);return _0x1f1d80(_0x25a711[_0xd8ea('0x10')][_0xd8ea('0x12')]);}else{logger[_0xd8ea('0xa')]('TeamVoiceQueue,\x20%s,\x20%s',_0x230f98,_0xd8ea('0xc'));_0x1f1d80(_0x25a711['result']['message']);}})['catch'](function(_0x490fcd){logger[_0xd8ea('0x10')](_0xd8ea('0xb'),_0x230f98,_0x490fcd);_0x3879c8(_0x490fcd);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x556a=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./template.controller','get','isAuthenticated','index','show','post','put','/:id','update','delete','destroy','multer','util','path'];(function(_0x33267b,_0x3b9fe6){var _0x1f064=function(_0x57ffa0){while(--_0x57ffa0){_0x33267b['push'](_0x33267b['shift']());}};_0x1f064(++_0x3b9fe6);}(_0x556a,0x1dd));var _0xa556=function(_0x176e5d,_0x17ac69){_0x176e5d=_0x176e5d-0x0;var _0x3842ed=_0x556a[_0x176e5d];return _0x3842ed;};'use strict';var multer=require(_0xa556('0x0'));var util=require(_0xa556('0x1'));var path=require(_0xa556('0x2'));var timeout=require(_0xa556('0x3'));var express=require(_0xa556('0x4'));var router=express[_0xa556('0x5')]();var fs_extra=require(_0xa556('0x6'));var auth=require(_0xa556('0x7'));var interaction=require(_0xa556('0x8'));var config=require('../../config/environment');var controller=require(_0xa556('0x9'));router[_0xa556('0xa')]('/',auth[_0xa556('0xb')](),controller[_0xa556('0xc')]);router[_0xa556('0xa')]('/:id',auth[_0xa556('0xb')](),controller[_0xa556('0xd')]);router[_0xa556('0xe')]('/',auth[_0xa556('0xb')](),controller['create']);router[_0xa556('0xf')](_0xa556('0x10'),auth[_0xa556('0xb')](),controller[_0xa556('0x11')]);router[_0xa556('0x12')](_0xa556('0x10'),auth[_0xa556('0xb')](),controller[_0xa556('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x77a9=['multer','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','./template.controller','get','isAuthenticated','index','show','create','put','/:id','update','delete','destroy'];(function(_0x2dda2c,_0x28103b){var _0x456af9=function(_0x5e91a5){while(--_0x5e91a5){_0x2dda2c['push'](_0x2dda2c['shift']());}};_0x456af9(++_0x28103b);}(_0x77a9,0x19e));var _0x977a=function(_0x49715b,_0x13faa9){_0x49715b=_0x49715b-0x0;var _0x3cdd3d=_0x77a9[_0x49715b];return _0x3cdd3d;};'use strict';var multer=require(_0x977a('0x0'));var util=require('util');var path=require(_0x977a('0x1'));var timeout=require('connect-timeout');var express=require(_0x977a('0x2'));var router=express[_0x977a('0x3')]();var fs_extra=require(_0x977a('0x4'));var auth=require(_0x977a('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x977a('0x6'));var controller=require(_0x977a('0x7'));router[_0x977a('0x8')]('/',auth[_0x977a('0x9')](),controller[_0x977a('0xa')]);router['get']('/:id',auth[_0x977a('0x9')](),controller[_0x977a('0xb')]);router['post']('/',auth[_0x977a('0x9')](),controller[_0x977a('0xc')]);router[_0x977a('0xd')](_0x977a('0xe'),auth[_0x977a('0x9')](),controller[_0x977a('0xf')]);router[_0x977a('0x10')](_0x977a('0xe'),auth[_0x977a('0x9')](),controller[_0x977a('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda14=['TEXT','sequelize','STRING'];(function(_0x2a8315,_0xa107e4){var _0x1e4118=function(_0x337c7){while(--_0x337c7){_0x2a8315['push'](_0x2a8315['shift']());}};_0x1e4118(++_0xa107e4);}(_0xda14,0x1d2));var _0x4da1=function(_0x59bcb1,_0x5a4b6c){_0x59bcb1=_0x59bcb1-0x0;var _0x4a737f=_0xda14[_0x59bcb1];return _0x4a737f;};'use strict';var Sequelize=require(_0x4da1('0x0'));module['exports']={'name':{'type':Sequelize[_0x4da1('0x1')]},'description':{'type':Sequelize[_0x4da1('0x1')]},'html':{'type':Sequelize[_0x4da1('0x2')]}};
\ No newline at end of file
+var _0xa233=['exports','STRING','sequelize'];(function(_0x5f309e,_0x66e31){var _0x487b5e=function(_0x44f203){while(--_0x44f203){_0x5f309e['push'](_0x5f309e['shift']());}};_0x487b5e(++_0x66e31);}(_0xa233,0x1ca));var _0x3a23=function(_0x585fd1,_0x12b5c7){_0x585fd1=_0x585fd1-0x0;var _0x4a6c23=_0xa233[_0x585fd1];return _0x4a6c23;};'use strict';var Sequelize=require(_0x3a23('0x0'));module[_0x3a23('0x1')]={'name':{'type':Sequelize[_0x3a23('0x2')]},'description':{'type':Sequelize[_0x3a23('0x2')]},'html':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfb5=['role','user','get','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','update','eml-format','rimraf','request-promise','moment','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','limit','count','Content-Range','apply','reject','save','then','destroy','Templates','end','error','stack','name','send','index','map','Template','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','sort','where','filters','filter','merge','type','include','findAll','rows','catch','show','params','length','includeAll','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xcfb5,0xa7));var _0x5cfb=function(_0xecb7da,_0x1bcc50){_0xecb7da=_0xecb7da-0x0;var _0x571c35=_0xcfb5[_0xecb7da];return _0x571c35;};'use strict';var emlformat=require(_0x5cfb('0x0'));var rimraf=require(_0x5cfb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x5cfb('0x2'));var moment=require(_0x5cfb('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x5cfb('0x4'));var path=require(_0x5cfb('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5cfb('0x6'));var fs=require('fs');var fs_extra=require(_0x5cfb('0x7'));var _=require(_0x5cfb('0x8'));var squel=require(_0x5cfb('0x9'));var crypto=require('crypto');var jsforce=require(_0x5cfb('0xa'));var deskjs=require(_0x5cfb('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x5cfb('0xc'));var Redis=require('ioredis');var authService=require(_0x5cfb('0xd'));var qs=require(_0x5cfb('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x5cfb('0xf'));var logger=require(_0x5cfb('0x10'))(_0x5cfb('0x11'));var utils=require(_0x5cfb('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x5cfb('0x13'));var db=require(_0x5cfb('0x14'))['db'];function respondWithStatusCode(_0x1a4f8d,_0xe7db2e){_0xe7db2e=_0xe7db2e||0xcc;return function(_0x1420dd){if(_0x1420dd){return _0x1a4f8d[_0x5cfb('0x15')](_0xe7db2e);}return _0x1a4f8d['status'](_0xe7db2e)['end']();};}function respondWithResult(_0x848ee0,_0x5f3080){_0x5f3080=_0x5f3080||0xc8;return function(_0x213edb){if(_0x213edb){return _0x848ee0[_0x5cfb('0x16')](_0x5f3080)['json'](_0x213edb);}};}function respondWithFilteredResult(_0x20ccc9,_0x565428){return function(_0x21bb38){if(_0x21bb38){var _0xd8775b=typeof _0x565428[_0x5cfb('0x17')]===_0x5cfb('0x18')&&typeof _0x565428[_0x5cfb('0x19')]===_0x5cfb('0x18');var _0x28b8b4=_0x21bb38[_0x5cfb('0x1a')];var _0x15ca98=_0xd8775b?0x0:_0x565428[_0x5cfb('0x17')];var _0x49cd1a=_0xd8775b?_0x21bb38[_0x5cfb('0x1a')]:_0x565428['offset']+_0x565428[_0x5cfb('0x19')];var _0x322791;if(_0x49cd1a>=_0x28b8b4){_0x49cd1a=_0x28b8b4;_0x322791=0xc8;}else{_0x322791=0xce;}_0x20ccc9['status'](_0x322791);return _0x20ccc9['set'](_0x5cfb('0x1b'),_0x15ca98+'-'+_0x49cd1a+'/'+_0x28b8b4)['json'](_0x21bb38);}return null;};}function patchUpdates(_0x1b87a4){return function(_0x306325){try{jsonpatch[_0x5cfb('0x1c')](_0x306325,_0x1b87a4,!![]);}catch(_0x2f6d70){return BPromise[_0x5cfb('0x1d')](_0x2f6d70);}return _0x306325[_0x5cfb('0x1e')]();};}function saveUpdates(_0x585a91,_0x391d41){return function(_0x27e9f1){if(_0x27e9f1){return _0x27e9f1['update'](_0x585a91)[_0x5cfb('0x1f')](function(_0x36ff2b){return _0x36ff2b;});}return null;};}function removeEntity(_0x271f69,_0x1cc589){return function(_0x5eb0e3){if(_0x5eb0e3){return _0x5eb0e3[_0x5cfb('0x20')]()[_0x5cfb('0x1f')](function(){var _0x53589e=_0x5eb0e3['get']({'plain':!![]});var _0x3d7228=_0x5cfb('0x21');return db['UserProfileResource'][_0x5cfb('0x20')]({'where':{'type':_0x3d7228,'resourceId':_0x53589e['id']}})[_0x5cfb('0x1f')](function(){return _0x5eb0e3;});})['then'](function(){_0x271f69[_0x5cfb('0x16')](0xcc)[_0x5cfb('0x22')]();});}};}function handleEntityNotFound(_0x238d12,_0x58de78){return function(_0x55734b){if(!_0x55734b){_0x238d12[_0x5cfb('0x15')](0x194);}return _0x55734b;};}function handleError(_0x2bda7d,_0x1f76bc){_0x1f76bc=_0x1f76bc||0x1f4;return function(_0x360f5a){logger[_0x5cfb('0x23')](_0x360f5a[_0x5cfb('0x24')]);if(_0x360f5a['name']){delete _0x360f5a[_0x5cfb('0x25')];}_0x2bda7d[_0x5cfb('0x16')](_0x1f76bc)[_0x5cfb('0x26')](_0x360f5a);};}exports[_0x5cfb('0x27')]=function(_0x3e79e1,_0x19eb0a){var _0x1de49a={},_0x4b621b={},_0x5e2edb={'count':0x0,'rows':[]};var _0x326fa0=_[_0x5cfb('0x28')](db[_0x5cfb('0x29')][_0x5cfb('0x2a')],function(_0xc3f99f){return{'name':_0xc3f99f[_0x5cfb('0x2b')],'type':_0xc3f99f['type'][_0x5cfb('0x2c')]};});_0x4b621b[_0x5cfb('0x2d')]=_[_0x5cfb('0x28')](_0x326fa0,_0x5cfb('0x25'));_0x4b621b[_0x5cfb('0x2e')]=_[_0x5cfb('0x2f')](_0x3e79e1[_0x5cfb('0x2e')]);_0x4b621b['filters']=_[_0x5cfb('0x30')](_0x4b621b[_0x5cfb('0x2d')],_0x4b621b[_0x5cfb('0x2e')]);_0x1de49a[_0x5cfb('0x31')]=_['intersection'](_0x4b621b[_0x5cfb('0x2d')],qs[_0x5cfb('0x32')](_0x3e79e1['query'][_0x5cfb('0x32')]));_0x1de49a[_0x5cfb('0x31')]=_0x1de49a[_0x5cfb('0x31')]['length']?_0x1de49a[_0x5cfb('0x31')]:_0x4b621b['model'];if(!_0x3e79e1['query'][_0x5cfb('0x33')]('nolimit')){_0x1de49a[_0x5cfb('0x19')]=qs[_0x5cfb('0x19')](_0x3e79e1[_0x5cfb('0x2e')][_0x5cfb('0x19')]);_0x1de49a[_0x5cfb('0x17')]=qs['offset'](_0x3e79e1[_0x5cfb('0x2e')][_0x5cfb('0x17')]);}_0x1de49a['order']=qs[_0x5cfb('0x34')](_0x3e79e1[_0x5cfb('0x2e')]['sort']);_0x1de49a[_0x5cfb('0x35')]=qs[_0x5cfb('0x36')](_['pick'](_0x3e79e1[_0x5cfb('0x2e')],_0x4b621b[_0x5cfb('0x36')]),_0x326fa0);if(_0x3e79e1[_0x5cfb('0x2e')][_0x5cfb('0x37')]){_0x1de49a[_0x5cfb('0x35')]=_[_0x5cfb('0x38')](_0x1de49a['where'],{'$or':_['map'](_0x326fa0,function(_0xf626c1){if(_0xf626c1[_0x5cfb('0x39')]!=='VIRTUAL'){var _0x835917={};_0x835917[_0xf626c1[_0x5cfb('0x25')]]={'$like':'%'+_0x3e79e1[_0x5cfb('0x2e')][_0x5cfb('0x37')]+'%'};return _0x835917;}})});}_0x1de49a=_[_0x5cfb('0x38')]({},_0x1de49a,_0x3e79e1['options']);var _0x11070c={'where':_0x1de49a[_0x5cfb('0x35')]};return db[_0x5cfb('0x29')][_0x5cfb('0x1a')](_0x11070c)['then'](function(_0x296bb6){_0x5e2edb[_0x5cfb('0x1a')]=_0x296bb6;if(_0x3e79e1['query']['includeAll']){_0x1de49a[_0x5cfb('0x3a')]=[{'all':!![]}];}return db[_0x5cfb('0x29')][_0x5cfb('0x3b')](_0x1de49a);})['then'](function(_0x305a15){_0x5e2edb[_0x5cfb('0x3c')]=_0x305a15;return _0x5e2edb;})[_0x5cfb('0x1f')](respondWithFilteredResult(_0x19eb0a,_0x1de49a))[_0x5cfb('0x3d')](handleError(_0x19eb0a,null));};exports[_0x5cfb('0x3e')]=function(_0x503c7f,_0x393977){var _0x4cc1b7={'raw':!![],'where':{'id':_0x503c7f[_0x5cfb('0x3f')]['id']}},_0x53c245={};_0x53c245[_0x5cfb('0x2d')]=_['keys'](db['Template'][_0x5cfb('0x2a')]);_0x53c245['query']=_[_0x5cfb('0x2f')](_0x503c7f[_0x5cfb('0x2e')]);_0x53c245['filters']=_[_0x5cfb('0x30')](_0x53c245[_0x5cfb('0x2d')],_0x53c245[_0x5cfb('0x2e')]);_0x4cc1b7[_0x5cfb('0x31')]=_[_0x5cfb('0x30')](_0x53c245[_0x5cfb('0x2d')],qs[_0x5cfb('0x32')](_0x503c7f['query'][_0x5cfb('0x32')]));_0x4cc1b7[_0x5cfb('0x31')]=_0x4cc1b7[_0x5cfb('0x31')][_0x5cfb('0x40')]?_0x4cc1b7[_0x5cfb('0x31')]:_0x53c245[_0x5cfb('0x2d')];if(_0x503c7f[_0x5cfb('0x2e')][_0x5cfb('0x41')]){_0x4cc1b7[_0x5cfb('0x3a')]=[{'all':!![]}];}_0x4cc1b7=_[_0x5cfb('0x38')]({},_0x4cc1b7,_0x503c7f[_0x5cfb('0x42')]);return db['Template']['find'](_0x4cc1b7)['then'](handleEntityNotFound(_0x393977,null))['then'](respondWithResult(_0x393977,null))[_0x5cfb('0x3d')](handleError(_0x393977,null));};exports[_0x5cfb('0x43')]=function(_0x16aef9,_0x263cfb){return db['Template'][_0x5cfb('0x43')](_0x16aef9[_0x5cfb('0x44')],{})['then'](function(_0x40a9fb){var _0x320ee3=_0x16aef9['user']['get']({'plain':!![]});if(!_0x320ee3)throw new Error(_0x5cfb('0x45'));if(_0x320ee3[_0x5cfb('0x46')]===_0x5cfb('0x47')){var _0x52d003=_0x40a9fb[_0x5cfb('0x48')]({'plain':!![]});var _0x13fec8='Templates';return db[_0x5cfb('0x49')][_0x5cfb('0x4a')]({'where':{'name':_0x13fec8,'userProfileId':_0x320ee3[_0x5cfb('0x4b')]},'raw':!![]})[_0x5cfb('0x1f')](function(_0x1023b3){if(_0x1023b3&&_0x1023b3[_0x5cfb('0x4c')]===0x0){return db[_0x5cfb('0x4d')][_0x5cfb('0x43')]({'name':_0x52d003['name'],'resourceId':_0x52d003['id'],'type':_0x1023b3['name'],'sectionId':_0x1023b3['id']},{})[_0x5cfb('0x1f')](function(){return _0x40a9fb;});}else{return _0x40a9fb;}})[_0x5cfb('0x3d')](function(_0x3c2c0c){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3c2c0c);throw _0x3c2c0c;});}return _0x40a9fb;})['then'](respondWithResult(_0x263cfb,0xc9))[_0x5cfb('0x3d')](handleError(_0x263cfb,null));};exports[_0x5cfb('0x4e')]=function(_0x12c7f4,_0x57bae4){if(_0x12c7f4[_0x5cfb('0x44')]['id']){delete _0x12c7f4[_0x5cfb('0x44')]['id'];}return db['Template'][_0x5cfb('0x4a')]({'where':{'id':_0x12c7f4[_0x5cfb('0x3f')]['id']}})[_0x5cfb('0x1f')](handleEntityNotFound(_0x57bae4,null))[_0x5cfb('0x1f')](saveUpdates(_0x12c7f4[_0x5cfb('0x44')],null))[_0x5cfb('0x1f')](respondWithResult(_0x57bae4,null))[_0x5cfb('0x3d')](handleError(_0x57bae4,null));};exports['destroy']=function(_0x40ec3c,_0x3f98f5){return db[_0x5cfb('0x29')][_0x5cfb('0x4a')]({'where':{'id':_0x40ec3c[_0x5cfb('0x3f')]['id']}})[_0x5cfb('0x1f')](handleEntityNotFound(_0x3f98f5,null))[_0x5cfb('0x1f')](removeEntity(_0x3f98f5,null))[_0x5cfb('0x3d')](handleError(_0x3f98f5,null));};
\ No newline at end of file
+var _0x3291=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','Templates','UserProfileResource','destroy','error','stack','name','index','map','Template','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','merge','VIRTUAL','options','findAll','rows','show','params','include','find','catch','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils'];(function(_0x4b3323,_0x1c55ba){var _0x551c5c=function(_0x4f1745){while(--_0x4f1745){_0x4b3323['push'](_0x4b3323['shift']());}};_0x551c5c(++_0x1c55ba);}(_0x3291,0x97));var _0x1329=function(_0x4b7bac,_0x198991){_0x4b7bac=_0x4b7bac-0x0;var _0x15f85c=_0x3291[_0x4b7bac];return _0x15f85c;};'use strict';var emlformat=require(_0x1329('0x0'));var rimraf=require(_0x1329('0x1'));var zipdir=require(_0x1329('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x1329('0x3'));var moment=require(_0x1329('0x4'));var BPromise=require(_0x1329('0x5'));var Mustache=require(_0x1329('0x6'));var util=require(_0x1329('0x7'));var path=require('path');var sox=require(_0x1329('0x8'));var csv=require(_0x1329('0x9'));var ejs=require(_0x1329('0xa'));var fs=require('fs');var fs_extra=require(_0x1329('0xb'));var _=require(_0x1329('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x1329('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x1329('0x9'));var querystring=require(_0x1329('0xe'));var Papa=require(_0x1329('0xf'));var Redis=require(_0x1329('0x10'));var authService=require(_0x1329('0x11'));var qs=require(_0x1329('0x12'));var as=require(_0x1329('0x13'));var hardwareService=require(_0x1329('0x14'));var logger=require('../../config/logger')(_0x1329('0x15'));var utils=require(_0x1329('0x16'));var config=require(_0x1329('0x17'));var licenseUtil=require(_0x1329('0x18'));var db=require(_0x1329('0x19'))['db'];function respondWithStatusCode(_0xa03ae7,_0x120935){_0x120935=_0x120935||0xcc;return function(_0x579a97){if(_0x579a97){return _0xa03ae7[_0x1329('0x1a')](_0x120935);}return _0xa03ae7[_0x1329('0x1b')](_0x120935)[_0x1329('0x1c')]();};}function respondWithResult(_0x232405,_0x3eefa7){_0x3eefa7=_0x3eefa7||0xc8;return function(_0x260d06){if(_0x260d06){return _0x232405['status'](_0x3eefa7)['json'](_0x260d06);}};}function respondWithFilteredResult(_0xf90c1f,_0x1805ac){return function(_0x4dca71){if(_0x4dca71){var _0x39b321=typeof _0x1805ac[_0x1329('0x1d')]===_0x1329('0x1e')&&typeof _0x1805ac[_0x1329('0x1f')]===_0x1329('0x1e');var _0x2d4b24=_0x4dca71[_0x1329('0x20')];var _0x4328d2=_0x39b321?0x0:_0x1805ac['offset'];var _0x3bbecc=_0x39b321?_0x4dca71[_0x1329('0x20')]:_0x1805ac['offset']+_0x1805ac[_0x1329('0x1f')];var _0x1f644f;if(_0x3bbecc>=_0x2d4b24){_0x3bbecc=_0x2d4b24;_0x1f644f=0xc8;}else{_0x1f644f=0xce;}_0xf90c1f[_0x1329('0x1b')](_0x1f644f);return _0xf90c1f[_0x1329('0x21')](_0x1329('0x22'),_0x4328d2+'-'+_0x3bbecc+'/'+_0x2d4b24)['json'](_0x4dca71);}return null;};}function patchUpdates(_0x214a7d){return function(_0x960dfe){try{jsonpatch[_0x1329('0x23')](_0x960dfe,_0x214a7d,!![]);}catch(_0x369394){return BPromise[_0x1329('0x24')](_0x369394);}return _0x960dfe[_0x1329('0x25')]();};}function saveUpdates(_0xde9c34,_0xdb8c7b){return function(_0x3c60f6){if(_0x3c60f6){return _0x3c60f6[_0x1329('0x26')](_0xde9c34)[_0x1329('0x27')](function(_0x5bd2a8){return _0x5bd2a8;});}return null;};}function removeEntity(_0x136c71,_0xb51676){return function(_0x10883c){if(_0x10883c){return _0x10883c['destroy']()[_0x1329('0x27')](function(){var _0x27f74a=_0x10883c['get']({'plain':!![]});var _0x119522=_0x1329('0x28');return db[_0x1329('0x29')][_0x1329('0x2a')]({'where':{'type':_0x119522,'resourceId':_0x27f74a['id']}})[_0x1329('0x27')](function(){return _0x10883c;});})[_0x1329('0x27')](function(){_0x136c71[_0x1329('0x1b')](0xcc)[_0x1329('0x1c')]();});}};}function handleEntityNotFound(_0x50e992,_0x8e7f26){return function(_0x2ae2d1){if(!_0x2ae2d1){_0x50e992[_0x1329('0x1a')](0x194);}return _0x2ae2d1;};}function handleError(_0xbccf65,_0x5f1e2a){_0x5f1e2a=_0x5f1e2a||0x1f4;return function(_0x5e18c3){logger[_0x1329('0x2b')](_0x5e18c3[_0x1329('0x2c')]);if(_0x5e18c3['name']){delete _0x5e18c3[_0x1329('0x2d')];}_0xbccf65[_0x1329('0x1b')](_0x5f1e2a)['send'](_0x5e18c3);};}exports[_0x1329('0x2e')]=function(_0x242a38,_0x14718a){var _0x5b33d9={},_0x441367={},_0x48e595={'count':0x0,'rows':[]};var _0x3a365b=_[_0x1329('0x2f')](db[_0x1329('0x30')][_0x1329('0x31')],function(_0x12b657){return{'name':_0x12b657[_0x1329('0x32')],'type':_0x12b657[_0x1329('0x33')][_0x1329('0x34')]};});_0x441367[_0x1329('0x35')]=_['map'](_0x3a365b,_0x1329('0x2d'));_0x441367[_0x1329('0x36')]=_[_0x1329('0x37')](_0x242a38['query']);_0x441367['filters']=_[_0x1329('0x38')](_0x441367[_0x1329('0x35')],_0x441367[_0x1329('0x36')]);_0x5b33d9[_0x1329('0x39')]=_[_0x1329('0x38')](_0x441367[_0x1329('0x35')],qs[_0x1329('0x3a')](_0x242a38[_0x1329('0x36')][_0x1329('0x3a')]));_0x5b33d9[_0x1329('0x39')]=_0x5b33d9[_0x1329('0x39')][_0x1329('0x3b')]?_0x5b33d9[_0x1329('0x39')]:_0x441367['model'];if(!_0x242a38['query'][_0x1329('0x3c')](_0x1329('0x3d'))){_0x5b33d9['limit']=qs[_0x1329('0x1f')](_0x242a38['query'][_0x1329('0x1f')]);_0x5b33d9[_0x1329('0x1d')]=qs['offset'](_0x242a38[_0x1329('0x36')][_0x1329('0x1d')]);}_0x5b33d9[_0x1329('0x3e')]=qs[_0x1329('0x3f')](_0x242a38[_0x1329('0x36')][_0x1329('0x3f')]);_0x5b33d9[_0x1329('0x40')]=qs['filters'](_[_0x1329('0x41')](_0x242a38[_0x1329('0x36')],_0x441367[_0x1329('0x42')]),_0x3a365b);if(_0x242a38[_0x1329('0x36')][_0x1329('0x43')]){_0x5b33d9[_0x1329('0x40')]=_[_0x1329('0x44')](_0x5b33d9[_0x1329('0x40')],{'$or':_[_0x1329('0x2f')](_0x3a365b,function(_0x4f1434){if(_0x4f1434[_0x1329('0x33')]!==_0x1329('0x45')){var _0x5599ba={};_0x5599ba[_0x4f1434[_0x1329('0x2d')]]={'$like':'%'+_0x242a38[_0x1329('0x36')][_0x1329('0x43')]+'%'};return _0x5599ba;}})});}_0x5b33d9=_['merge']({},_0x5b33d9,_0x242a38[_0x1329('0x46')]);var _0x26bdd2={'where':_0x5b33d9['where']};return db[_0x1329('0x30')][_0x1329('0x20')](_0x26bdd2)[_0x1329('0x27')](function(_0x294bd8){_0x48e595[_0x1329('0x20')]=_0x294bd8;if(_0x242a38['query']['includeAll']){_0x5b33d9['include']=[{'all':!![]}];}return db[_0x1329('0x30')][_0x1329('0x47')](_0x5b33d9);})['then'](function(_0x35241f){_0x48e595[_0x1329('0x48')]=_0x35241f;return _0x48e595;})[_0x1329('0x27')](respondWithFilteredResult(_0x14718a,_0x5b33d9))['catch'](handleError(_0x14718a,null));};exports[_0x1329('0x49')]=function(_0x2adfb9,_0x1dbc4a){var _0x31688a={'raw':!![],'where':{'id':_0x2adfb9[_0x1329('0x4a')]['id']}},_0x588e31={};_0x588e31[_0x1329('0x35')]=_[_0x1329('0x37')](db[_0x1329('0x30')]['rawAttributes']);_0x588e31['query']=_[_0x1329('0x37')](_0x2adfb9[_0x1329('0x36')]);_0x588e31['filters']=_['intersection'](_0x588e31[_0x1329('0x35')],_0x588e31[_0x1329('0x36')]);_0x31688a['attributes']=_[_0x1329('0x38')](_0x588e31['model'],qs[_0x1329('0x3a')](_0x2adfb9[_0x1329('0x36')][_0x1329('0x3a')]));_0x31688a[_0x1329('0x39')]=_0x31688a[_0x1329('0x39')][_0x1329('0x3b')]?_0x31688a[_0x1329('0x39')]:_0x588e31[_0x1329('0x35')];if(_0x2adfb9[_0x1329('0x36')]['includeAll']){_0x31688a[_0x1329('0x4b')]=[{'all':!![]}];}_0x31688a=_[_0x1329('0x44')]({},_0x31688a,_0x2adfb9[_0x1329('0x46')]);return db[_0x1329('0x30')][_0x1329('0x4c')](_0x31688a)[_0x1329('0x27')](handleEntityNotFound(_0x1dbc4a,null))[_0x1329('0x27')](respondWithResult(_0x1dbc4a,null))[_0x1329('0x4d')](handleError(_0x1dbc4a,null));};exports['create']=function(_0x6148f6,_0x2e9729){return db[_0x1329('0x30')][_0x1329('0x4e')](_0x6148f6['body'],{})[_0x1329('0x27')](function(_0xe2e65c){var _0x5ce000=_0x6148f6['user'][_0x1329('0x4f')]({'plain':!![]});if(!_0x5ce000)throw new Error(_0x1329('0x50'));if(_0x5ce000[_0x1329('0x51')]==='user'){var _0x3326d0=_0xe2e65c[_0x1329('0x4f')]({'plain':!![]});var _0x402c89=_0x1329('0x28');return db[_0x1329('0x52')][_0x1329('0x4c')]({'where':{'name':_0x402c89,'userProfileId':_0x5ce000[_0x1329('0x53')]},'raw':!![]})['then'](function(_0x55ab5f){if(_0x55ab5f&&_0x55ab5f[_0x1329('0x54')]===0x0){return db[_0x1329('0x29')][_0x1329('0x4e')]({'name':_0x3326d0[_0x1329('0x2d')],'resourceId':_0x3326d0['id'],'type':_0x55ab5f[_0x1329('0x2d')],'sectionId':_0x55ab5f['id']},{})['then'](function(){return _0xe2e65c;});}else{return _0xe2e65c;}})[_0x1329('0x4d')](function(_0x428644){logger[_0x1329('0x2b')](_0x1329('0x55'),_0x428644);throw _0x428644;});}return _0xe2e65c;})['then'](respondWithResult(_0x2e9729,0xc9))[_0x1329('0x4d')](handleError(_0x2e9729,null));};exports['update']=function(_0x4b1257,_0x3792b3){if(_0x4b1257[_0x1329('0x56')]['id']){delete _0x4b1257[_0x1329('0x56')]['id'];}return db[_0x1329('0x30')][_0x1329('0x4c')]({'where':{'id':_0x4b1257[_0x1329('0x4a')]['id']}})[_0x1329('0x27')](handleEntityNotFound(_0x3792b3,null))['then'](saveUpdates(_0x4b1257['body'],null))['then'](respondWithResult(_0x3792b3,null))[_0x1329('0x4d')](handleError(_0x3792b3,null));};exports['destroy']=function(_0x5967b5,_0x26355a){return db['Template'][_0x1329('0x4c')]({'where':{'id':_0x5967b5[_0x1329('0x4a')]['id']}})['then'](handleEntityNotFound(_0x26355a,null))['then'](removeEntity(_0x26355a,null))[_0x1329('0x4d')](handleError(_0x26355a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xced2=['Template','lodash','util','moment','bluebird','request-promise','path','../../config/environment','./template.attributes','exports','define'];(function(_0x1beef3,_0x57c4b8){var _0x5af964=function(_0x36f463){while(--_0x36f463){_0x1beef3['push'](_0x1beef3['shift']());}};_0x5af964(++_0x57c4b8);}(_0xced2,0x14b));var _0x2ced=function(_0x223e07,_0x49ee45){_0x223e07=_0x223e07-0x0;var _0x4633a5=_0xced2[_0x223e07];return _0x4633a5;};'use strict';var _=require(_0x2ced('0x0'));var util=require(_0x2ced('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x2ced('0x2'));var BPromise=require(_0x2ced('0x3'));var rp=require(_0x2ced('0x4'));var fs=require('fs');var path=require(_0x2ced('0x5'));var rimraf=require('rimraf');var config=require(_0x2ced('0x6'));var attributes=require(_0x2ced('0x7'));module[_0x2ced('0x8')]=function(_0x29a994,_0x371eef){return _0x29a994[_0x2ced('0x9')](_0x2ced('0xa'),attributes,{'tableName':'tools_templates','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x44f1=['rimraf','../../config/environment','./template.attributes','exports','define','tools_templates','lodash','util','bluebird','request-promise','path'];(function(_0x411c34,_0x1007a8){var _0x274b83=function(_0x27a61b){while(--_0x27a61b){_0x411c34['push'](_0x411c34['shift']());}};_0x274b83(++_0x1007a8);}(_0x44f1,0x1df));var _0x144f=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x44f1[_0x5ddb1c];return _0x354adc;};'use strict';var _=require(_0x144f('0x0'));var util=require(_0x144f('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x144f('0x2'));var rp=require(_0x144f('0x3'));var fs=require('fs');var path=require(_0x144f('0x4'));var rimraf=require(_0x144f('0x5'));var config=require(_0x144f('0x6'));var attributes=require(_0x144f('0x7'));module[_0x144f('0x8')]=function(_0x15017d,_0x193d9f){return _0x15017d[_0x144f('0x9')]('Template',attributes,{'tableName':_0x144f('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a7e=['options','raw','where','attributes','limit','include','map','model','GetTemplate','debug','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http','request','then','Template,\x20%s,\x20%s','Template,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','findAll'];(function(_0x4e9628,_0x250573){var _0x27bc8c=function(_0xb3b7ae){while(--_0xb3b7ae){_0x4e9628['push'](_0x4e9628['shift']());}};_0x27bc8c(++_0x250573);}(_0x5a7e,0x8a));var _0xe5a7=function(_0x3903a0,_0xa12eb0){_0x3903a0=_0x3903a0-0x0;var _0x4a9a0b=_0x5a7e[_0x3903a0];return _0x4a9a0b;};'use strict';var _=require(_0xe5a7('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xe5a7('0x1'));var rs=require(_0xe5a7('0x2'));var fs=require('fs');var Redis=require(_0xe5a7('0x3'));var db=require(_0xe5a7('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xe5a7('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xe5a7('0x6'));var client=jayson[_0xe5a7('0x7')][_0xe5a7('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x19adac,_0x262c9b,_0x519916){return new BPromise(function(_0x2290a2,_0x3946b8){return client[_0xe5a7('0x9')](_0x19adac,_0x519916)[_0xe5a7('0xa')](function(_0xc51545){logger['info'](_0xe5a7('0xb'),_0x262c9b,'request\x20sent');logger['debug'](_0xe5a7('0xc'),_0x262c9b,_0xe5a7('0xd'),JSON[_0xe5a7('0xe')](_0xc51545));if(_0xc51545[_0xe5a7('0xf')]){if(_0xc51545[_0xe5a7('0xf')][_0xe5a7('0x10')]===0x1f4){logger[_0xe5a7('0xf')](_0xe5a7('0xb'),_0x262c9b,_0xc51545[_0xe5a7('0xf')][_0xe5a7('0x11')]);return _0x3946b8(_0xc51545['error'][_0xe5a7('0x11')]);}logger[_0xe5a7('0xf')]('Template,\x20%s,\x20%s',_0x262c9b,_0xc51545[_0xe5a7('0xf')][_0xe5a7('0x11')]);return _0x2290a2(_0xc51545[_0xe5a7('0xf')][_0xe5a7('0x11')]);}else{logger[_0xe5a7('0x12')](_0xe5a7('0xb'),_0x262c9b,_0xe5a7('0xd'));_0x2290a2(_0xc51545[_0xe5a7('0x13')][_0xe5a7('0x11')]);}})[_0xe5a7('0x14')](function(_0x4d0466){logger[_0xe5a7('0xf')]('Template,\x20%s,\x20%s',_0x262c9b,_0x4d0466);_0x3946b8(_0x4d0466);});});}exports['GetTemplate']=function(_0x1b77b2){var _0x56b370=this;return new Promise(function(_0x28858f,_0x2738cd){return db['Template'][_0xe5a7('0x15')]({'raw':_0x1b77b2[_0xe5a7('0x16')]?_0x1b77b2[_0xe5a7('0x16')][_0xe5a7('0x17')]===undefined?!![]:![]:!![],'where':_0x1b77b2[_0xe5a7('0x16')]?_0x1b77b2[_0xe5a7('0x16')][_0xe5a7('0x18')]||null:null,'attributes':_0x1b77b2['options']?_0x1b77b2[_0xe5a7('0x16')][_0xe5a7('0x19')]||null:null,'limit':_0x1b77b2[_0xe5a7('0x16')]?_0x1b77b2[_0xe5a7('0x16')][_0xe5a7('0x1a')]||null:null,'include':_0x1b77b2[_0xe5a7('0x16')]?_0x1b77b2['options'][_0xe5a7('0x1b')]?_[_0xe5a7('0x1c')](_0x1b77b2['options'][_0xe5a7('0x1b')],function(_0x37c07b){return{'model':db[_0x37c07b[_0xe5a7('0x1d')]],'as':_0x37c07b['as'],'attributes':_0x37c07b[_0xe5a7('0x19')],'include':_0x37c07b[_0xe5a7('0x1b')]?_['map'](_0x37c07b['include'],function(_0x41692f){return{'model':db[_0x41692f[_0xe5a7('0x1d')]],'as':_0x41692f['as'],'attributes':_0x41692f[_0xe5a7('0x19')],'include':_0x41692f[_0xe5a7('0x1b')]?_[_0xe5a7('0x1c')](_0x41692f[_0xe5a7('0x1b')],function(_0x4472a2){return{'model':db[_0x4472a2['model']],'as':_0x4472a2['as'],'attributes':_0x4472a2[_0xe5a7('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x123b37){logger[_0xe5a7('0x12')](_0xe5a7('0x1e'),_0x1b77b2);logger[_0xe5a7('0x1f')](_0xe5a7('0x1e'),_0x1b77b2,JSON[_0xe5a7('0xe')](_0x123b37));_0x28858f(_0x123b37);})[_0xe5a7('0x14')](function(_0x53be1f){logger[_0xe5a7('0xf')](_0xe5a7('0x1e'),_0x53be1f[_0xe5a7('0x11')],_0x1b77b2);_0x2738cd(_0x56b370[_0xe5a7('0xf')](0x1f4,_0x53be1f[_0xe5a7('0x11')]));});});};
\ No newline at end of file
+var _0xeaa2=['http','request','then','info','request\x20sent','debug','error','code','Template,\x20%s,\x20%s','message','catch','GetTemplate','findAll','raw','options','where','attributes','limit','include','map','model','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xeaa2,0x115));var _0x2eaa=function(_0x4d2552,_0x560684){_0x4d2552=_0x4d2552-0x0;var _0x56761b=_0xeaa2[_0x4d2552];return _0x56761b;};'use strict';var _=require(_0x2eaa('0x0'));var util=require(_0x2eaa('0x1'));var moment=require(_0x2eaa('0x2'));var BPromise=require(_0x2eaa('0x3'));var rs=require(_0x2eaa('0x4'));var fs=require('fs');var Redis=require(_0x2eaa('0x5'));var db=require(_0x2eaa('0x6'))['db'];var utils=require(_0x2eaa('0x7'));var logger=require(_0x2eaa('0x8'))(_0x2eaa('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x2eaa('0xa')][_0x2eaa('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x438f18,_0x334f5c,_0x44e787){return new BPromise(function(_0x276303,_0x2af64b){return client[_0x2eaa('0xc')](_0x438f18,_0x44e787)[_0x2eaa('0xd')](function(_0x27cd78){logger[_0x2eaa('0xe')]('Template,\x20%s,\x20%s',_0x334f5c,_0x2eaa('0xf'));logger[_0x2eaa('0x10')]('Template,\x20%s,\x20%s,\x20%s',_0x334f5c,_0x2eaa('0xf'),JSON['stringify'](_0x27cd78));if(_0x27cd78[_0x2eaa('0x11')]){if(_0x27cd78[_0x2eaa('0x11')][_0x2eaa('0x12')]===0x1f4){logger['error'](_0x2eaa('0x13'),_0x334f5c,_0x27cd78[_0x2eaa('0x11')][_0x2eaa('0x14')]);return _0x2af64b(_0x27cd78[_0x2eaa('0x11')][_0x2eaa('0x14')]);}logger[_0x2eaa('0x11')](_0x2eaa('0x13'),_0x334f5c,_0x27cd78[_0x2eaa('0x11')][_0x2eaa('0x14')]);return _0x276303(_0x27cd78[_0x2eaa('0x11')][_0x2eaa('0x14')]);}else{logger[_0x2eaa('0xe')](_0x2eaa('0x13'),_0x334f5c,_0x2eaa('0xf'));_0x276303(_0x27cd78['result'][_0x2eaa('0x14')]);}})[_0x2eaa('0x15')](function(_0x475b2f){logger[_0x2eaa('0x11')](_0x2eaa('0x13'),_0x334f5c,_0x475b2f);_0x2af64b(_0x475b2f);});});}exports[_0x2eaa('0x16')]=function(_0x145865){var _0x58eb77=this;return new Promise(function(_0x2f3bce,_0x331e52){return db['Template'][_0x2eaa('0x17')]({'raw':_0x145865['options']?_0x145865['options'][_0x2eaa('0x18')]===undefined?!![]:![]:!![],'where':_0x145865[_0x2eaa('0x19')]?_0x145865['options'][_0x2eaa('0x1a')]||null:null,'attributes':_0x145865['options']?_0x145865[_0x2eaa('0x19')][_0x2eaa('0x1b')]||null:null,'limit':_0x145865[_0x2eaa('0x19')]?_0x145865['options'][_0x2eaa('0x1c')]||null:null,'include':_0x145865[_0x2eaa('0x19')]?_0x145865[_0x2eaa('0x19')][_0x2eaa('0x1d')]?_[_0x2eaa('0x1e')](_0x145865[_0x2eaa('0x19')][_0x2eaa('0x1d')],function(_0x71754d){return{'model':db[_0x71754d[_0x2eaa('0x1f')]],'as':_0x71754d['as'],'attributes':_0x71754d[_0x2eaa('0x1b')],'include':_0x71754d[_0x2eaa('0x1d')]?_[_0x2eaa('0x1e')](_0x71754d[_0x2eaa('0x1d')],function(_0x16f61c){return{'model':db[_0x16f61c[_0x2eaa('0x1f')]],'as':_0x16f61c['as'],'attributes':_0x16f61c[_0x2eaa('0x1b')],'include':_0x16f61c[_0x2eaa('0x1d')]?_[_0x2eaa('0x1e')](_0x16f61c[_0x2eaa('0x1d')],function(_0x253fce){return{'model':db[_0x253fce[_0x2eaa('0x1f')]],'as':_0x253fce['as'],'attributes':_0x253fce['attributes']};}):[]};}):[]};}):[]:[]})[_0x2eaa('0xd')](function(_0x37c668){logger[_0x2eaa('0xe')](_0x2eaa('0x16'),_0x145865);logger[_0x2eaa('0x10')](_0x2eaa('0x16'),_0x145865,JSON['stringify'](_0x37c668));_0x2f3bce(_0x37c668);})['catch'](function(_0x4fa05e){logger[_0x2eaa('0x11')](_0x2eaa('0x16'),_0x4fa05e['message'],_0x145865);_0x331e52(_0x58eb77['error'](0x1f4,_0x4fa05e[_0x2eaa('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b9b=['fs-extra','../../components/auth/service','../../components/interaction/service','./trigger.controller','get','isAuthenticated','index','/:id','show','/:id/all_conditions','getAllConditions','/:id/any_conditions','/:id/actions','getActions','post','create','addAction','put','exports','util','connect-timeout','express'];(function(_0x178e0c,_0x5368e2){var _0x417c7d=function(_0x4d2c49){while(--_0x4d2c49){_0x178e0c['push'](_0x178e0c['shift']());}};_0x417c7d(++_0x5368e2);}(_0x7b9b,0x97));var _0xb7b9=function(_0x46f13c,_0x3733fe){_0x46f13c=_0x46f13c-0x0;var _0x5a653a=_0x7b9b[_0x46f13c];return _0x5a653a;};'use strict';var multer=require('multer');var util=require(_0xb7b9('0x0'));var path=require('path');var timeout=require(_0xb7b9('0x1'));var express=require(_0xb7b9('0x2'));var router=express['Router']();var fs_extra=require(_0xb7b9('0x3'));var auth=require(_0xb7b9('0x4'));var interaction=require(_0xb7b9('0x5'));var config=require('../../config/environment');var controller=require(_0xb7b9('0x6'));router[_0xb7b9('0x7')]('/',auth[_0xb7b9('0x8')](),controller[_0xb7b9('0x9')]);router[_0xb7b9('0x7')](_0xb7b9('0xa'),auth[_0xb7b9('0x8')](),controller[_0xb7b9('0xb')]);router[_0xb7b9('0x7')](_0xb7b9('0xc'),auth[_0xb7b9('0x8')](),controller[_0xb7b9('0xd')]);router[_0xb7b9('0x7')](_0xb7b9('0xe'),auth['isAuthenticated'](),controller['getAnyConditions']);router[_0xb7b9('0x7')](_0xb7b9('0xf'),auth['isAuthenticated'](),controller[_0xb7b9('0x10')]);router[_0xb7b9('0x11')]('/',auth[_0xb7b9('0x8')](),controller[_0xb7b9('0x12')]);router[_0xb7b9('0x11')]('/:id/all_conditions',auth[_0xb7b9('0x8')](),controller['addAllCondition']);router[_0xb7b9('0x11')]('/:id/any_conditions',auth[_0xb7b9('0x8')](),controller['addAnyCondition']);router['post'](_0xb7b9('0xf'),auth[_0xb7b9('0x8')](),controller[_0xb7b9('0x13')]);router[_0xb7b9('0x14')]('/:id',auth[_0xb7b9('0x8')](),controller['update']);router['delete'](_0xb7b9('0xa'),auth[_0xb7b9('0x8')](),controller['destroy']);module[_0xb7b9('0x15')]=router;
\ No newline at end of file
+var _0x5e9a=['delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./trigger.controller','get','isAuthenticated','index','/:id','show','/:id/all_conditions','getAllConditions','/:id/any_conditions','getAnyConditions','/:id/actions','getActions','post','create','addAnyCondition','put','update'];(function(_0x1684e2,_0x276757){var _0x138352=function(_0x4e836d){while(--_0x4e836d){_0x1684e2['push'](_0x1684e2['shift']());}};_0x138352(++_0x276757);}(_0x5e9a,0x72));var _0xa5e9=function(_0xa71b0f,_0x1249ce){_0xa71b0f=_0xa71b0f-0x0;var _0x334336=_0x5e9a[_0xa71b0f];return _0x334336;};'use strict';var multer=require('multer');var util=require(_0xa5e9('0x0'));var path=require(_0xa5e9('0x1'));var timeout=require(_0xa5e9('0x2'));var express=require(_0xa5e9('0x3'));var router=express[_0xa5e9('0x4')]();var fs_extra=require(_0xa5e9('0x5'));var auth=require(_0xa5e9('0x6'));var interaction=require(_0xa5e9('0x7'));var config=require(_0xa5e9('0x8'));var controller=require(_0xa5e9('0x9'));router[_0xa5e9('0xa')]('/',auth[_0xa5e9('0xb')](),controller[_0xa5e9('0xc')]);router[_0xa5e9('0xa')](_0xa5e9('0xd'),auth[_0xa5e9('0xb')](),controller[_0xa5e9('0xe')]);router[_0xa5e9('0xa')](_0xa5e9('0xf'),auth[_0xa5e9('0xb')](),controller[_0xa5e9('0x10')]);router[_0xa5e9('0xa')](_0xa5e9('0x11'),auth[_0xa5e9('0xb')](),controller[_0xa5e9('0x12')]);router['get'](_0xa5e9('0x13'),auth[_0xa5e9('0xb')](),controller[_0xa5e9('0x14')]);router[_0xa5e9('0x15')]('/',auth[_0xa5e9('0xb')](),controller[_0xa5e9('0x16')]);router[_0xa5e9('0x15')]('/:id/all_conditions',auth['isAuthenticated'](),controller['addAllCondition']);router['post']('/:id/any_conditions',auth[_0xa5e9('0xb')](),controller[_0xa5e9('0x17')]);router['post']('/:id/actions',auth['isAuthenticated'](),controller['addAction']);router[_0xa5e9('0x18')](_0xa5e9('0xd'),auth[_0xa5e9('0xb')](),controller[_0xa5e9('0x19')]);router[_0xa5e9('0x1a')](_0xa5e9('0xd'),auth[_0xa5e9('0xb')](),controller['destroy']);module[_0xa5e9('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bcc=['STRING','BOOLEAN','sequelize','exports'];(function(_0x25d922,_0x4c9517){var _0x26d008=function(_0x5a4a14){while(--_0x5a4a14){_0x25d922['push'](_0x25d922['shift']());}};_0x26d008(++_0x4c9517);}(_0x8bcc,0xaa));var _0xc8bc=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8bcc[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xc8bc('0x0'));module[_0xc8bc('0x1')]={'name':{'type':Sequelize[_0xc8bc('0x2')]},'channel':{'type':Sequelize[_0xc8bc('0x2')]},'description':{'type':Sequelize[_0xc8bc('0x2')]},'status':{'type':Sequelize[_0xc8bc('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x27d2=['exports','STRING','sequelize'];(function(_0x4b38ae,_0x2b9a48){var _0x47807a=function(_0x1080a5){while(--_0x1080a5){_0x4b38ae['push'](_0x4b38ae['shift']());}};_0x47807a(++_0x2b9a48);}(_0x27d2,0x19a));var _0x227d=function(_0x317724,_0x1705ef){_0x317724=_0x317724-0x0;var _0x148a12=_0x27d2[_0x317724];return _0x148a12;};'use strict';var Sequelize=require(_0x227d('0x0'));module[_0x227d('0x1')]={'name':{'type':Sequelize[_0x227d('0x2')]},'channel':{'type':Sequelize[_0x227d('0x2')]},'description':{'type':Sequelize[_0x227d('0x2')]},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6ef=['map','Trigger','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','params','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','TriggerAllId','Condition','getAllConditions','findOne','getAnyConditions','addAction','TriggerId','Action','getActions','zip-dir','fast-json-patch','request-promise','util','sox','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','get','Triggers','UserProfileResource','stack','name','send','index'];(function(_0x3132c8,_0x3c32a5){var _0x10f92f=function(_0x1112db){while(--_0x1112db){_0x3132c8['push'](_0x3132c8['shift']());}};_0x10f92f(++_0x3c32a5);}(_0xf6ef,0xe9));var _0xff6e=function(_0x3ae24a,_0x7d32f9){_0x3ae24a=_0x3ae24a-0x0;var _0x18690f=_0xf6ef[_0x3ae24a];return _0x18690f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xff6e('0x0'));var jsonpatch=require(_0xff6e('0x1'));var rp=require(_0xff6e('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xff6e('0x3'));var path=require('path');var sox=require(_0xff6e('0x4'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xff6e('0x5'));var _=require(_0xff6e('0x6'));var squel=require(_0xff6e('0x7'));var crypto=require(_0xff6e('0x8'));var jsforce=require(_0xff6e('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xff6e('0xa'));var Papa=require(_0xff6e('0xb'));var Redis=require(_0xff6e('0xc'));var authService=require('../../components/auth/service');var qs=require(_0xff6e('0xd'));var as=require(_0xff6e('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xff6e('0xf'))(_0xff6e('0x10'));var utils=require(_0xff6e('0x11'));var config=require(_0xff6e('0x12'));var licenseUtil=require(_0xff6e('0x13'));var db=require(_0xff6e('0x14'))['db'];function respondWithStatusCode(_0x39d274,_0x46d2a3){_0x46d2a3=_0x46d2a3||0xcc;return function(_0x3daf5d){if(_0x3daf5d){return _0x39d274[_0xff6e('0x15')](_0x46d2a3);}return _0x39d274[_0xff6e('0x16')](_0x46d2a3)[_0xff6e('0x17')]();};}function respondWithResult(_0xf4d285,_0x109ae0){_0x109ae0=_0x109ae0||0xc8;return function(_0x210645){if(_0x210645){return _0xf4d285[_0xff6e('0x16')](_0x109ae0)['json'](_0x210645);}};}function respondWithFilteredResult(_0x199f84,_0xc40474){return function(_0x1c8a3d){if(_0x1c8a3d){var _0x4a8d43=typeof _0xc40474[_0xff6e('0x18')]===_0xff6e('0x19')&&typeof _0xc40474[_0xff6e('0x1a')]===_0xff6e('0x19');var _0x2a3c94=_0x1c8a3d[_0xff6e('0x1b')];var _0xb153e0=_0x4a8d43?0x0:_0xc40474[_0xff6e('0x18')];var _0x16be7c=_0x4a8d43?_0x1c8a3d[_0xff6e('0x1b')]:_0xc40474[_0xff6e('0x18')]+_0xc40474['limit'];var _0x587bf4;if(_0x16be7c>=_0x2a3c94){_0x16be7c=_0x2a3c94;_0x587bf4=0xc8;}else{_0x587bf4=0xce;}_0x199f84[_0xff6e('0x16')](_0x587bf4);return _0x199f84[_0xff6e('0x1c')](_0xff6e('0x1d'),_0xb153e0+'-'+_0x16be7c+'/'+_0x2a3c94)['json'](_0x1c8a3d);}return null;};}function patchUpdates(_0x476da8){return function(_0x17b75f){try{jsonpatch[_0xff6e('0x1e')](_0x17b75f,_0x476da8,!![]);}catch(_0x487588){return BPromise[_0xff6e('0x1f')](_0x487588);}return _0x17b75f[_0xff6e('0x20')]();};}function saveUpdates(_0x4aa782,_0x5a1018){return function(_0x4b2aec){if(_0x4b2aec){return _0x4b2aec[_0xff6e('0x21')](_0x4aa782)['then'](function(_0x53e17e){return _0x53e17e;});}return null;};}function removeEntity(_0x38ae23,_0x2e0861){return function(_0x5ab9f4){if(_0x5ab9f4){return _0x5ab9f4[_0xff6e('0x22')]()[_0xff6e('0x23')](function(){var _0x4ed5b7=_0x5ab9f4[_0xff6e('0x24')]({'plain':!![]});var _0x3b6167=_0xff6e('0x25');return db[_0xff6e('0x26')][_0xff6e('0x22')]({'where':{'type':_0x3b6167,'resourceId':_0x4ed5b7['id']}})[_0xff6e('0x23')](function(){return _0x5ab9f4;});})[_0xff6e('0x23')](function(){_0x38ae23[_0xff6e('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x320b12,_0x512d97){return function(_0x2792b){if(!_0x2792b){_0x320b12['sendStatus'](0x194);}return _0x2792b;};}function handleError(_0x50d762,_0x5b0f52){_0x5b0f52=_0x5b0f52||0x1f4;return function(_0x306697){logger['error'](_0x306697[_0xff6e('0x27')]);if(_0x306697['name']){delete _0x306697[_0xff6e('0x28')];}_0x50d762[_0xff6e('0x16')](_0x5b0f52)[_0xff6e('0x29')](_0x306697);};}exports[_0xff6e('0x2a')]=function(_0x2943d,_0x7ffe5a){var _0x3d7a1f={},_0x44a773={},_0x68ebf4={'count':0x0,'rows':[]};var _0x5ebc7e=_[_0xff6e('0x2b')](db[_0xff6e('0x2c')][_0xff6e('0x2d')],function(_0xea5d12){return{'name':_0xea5d12[_0xff6e('0x2e')],'type':_0xea5d12[_0xff6e('0x2f')][_0xff6e('0x30')]};});_0x44a773[_0xff6e('0x31')]=_[_0xff6e('0x2b')](_0x5ebc7e,_0xff6e('0x28'));_0x44a773[_0xff6e('0x32')]=_[_0xff6e('0x33')](_0x2943d[_0xff6e('0x32')]);_0x44a773[_0xff6e('0x34')]=_[_0xff6e('0x35')](_0x44a773[_0xff6e('0x31')],_0x44a773[_0xff6e('0x32')]);_0x3d7a1f['attributes']=_[_0xff6e('0x35')](_0x44a773['model'],qs[_0xff6e('0x36')](_0x2943d[_0xff6e('0x32')][_0xff6e('0x36')]));_0x3d7a1f[_0xff6e('0x37')]=_0x3d7a1f[_0xff6e('0x37')][_0xff6e('0x38')]?_0x3d7a1f['attributes']:_0x44a773[_0xff6e('0x31')];if(!_0x2943d[_0xff6e('0x32')][_0xff6e('0x39')](_0xff6e('0x3a'))){_0x3d7a1f['limit']=qs[_0xff6e('0x1a')](_0x2943d[_0xff6e('0x32')]['limit']);_0x3d7a1f[_0xff6e('0x18')]=qs[_0xff6e('0x18')](_0x2943d[_0xff6e('0x32')][_0xff6e('0x18')]);}_0x3d7a1f[_0xff6e('0x3b')]=qs[_0xff6e('0x3c')](_0x2943d[_0xff6e('0x32')][_0xff6e('0x3c')]);_0x3d7a1f[_0xff6e('0x3d')]=qs[_0xff6e('0x34')](_[_0xff6e('0x3e')](_0x2943d['query'],_0x44a773['filters']),_0x5ebc7e);if(_0x2943d[_0xff6e('0x32')][_0xff6e('0x3f')]){_0x3d7a1f[_0xff6e('0x3d')]=_[_0xff6e('0x40')](_0x3d7a1f[_0xff6e('0x3d')],{'$or':_[_0xff6e('0x2b')](_0x5ebc7e,function(_0x5eac04){if(_0x5eac04[_0xff6e('0x2f')]!==_0xff6e('0x41')){var _0x3a65f9={};_0x3a65f9[_0x5eac04[_0xff6e('0x28')]]={'$like':'%'+_0x2943d[_0xff6e('0x32')][_0xff6e('0x3f')]+'%'};return _0x3a65f9;}})});}_0x3d7a1f=_[_0xff6e('0x40')]({},_0x3d7a1f,_0x2943d[_0xff6e('0x42')]);var _0xa4534b={'where':_0x3d7a1f['where']};return db[_0xff6e('0x2c')]['count'](_0xa4534b)[_0xff6e('0x23')](function(_0x4f3490){_0x68ebf4['count']=_0x4f3490;if(_0x2943d['query'][_0xff6e('0x43')]){_0x3d7a1f[_0xff6e('0x44')]=[{'all':!![]}];}return db['Trigger']['findAll'](_0x3d7a1f);})[_0xff6e('0x23')](function(_0x5d9d22){_0x68ebf4[_0xff6e('0x45')]=_0x5d9d22;return _0x68ebf4;})['then'](respondWithFilteredResult(_0x7ffe5a,_0x3d7a1f))['catch'](handleError(_0x7ffe5a,null));};exports['show']=function(_0x38a0a4,_0x25894b){var _0x53758c={'raw':![],'where':{'id':_0x38a0a4[_0xff6e('0x46')]['id']}},_0x1d8459={};_0x1d8459[_0xff6e('0x31')]=_[_0xff6e('0x33')](db[_0xff6e('0x2c')][_0xff6e('0x2d')]);_0x1d8459[_0xff6e('0x32')]=_['keys'](_0x38a0a4['query']);_0x1d8459[_0xff6e('0x34')]=_[_0xff6e('0x35')](_0x1d8459['model'],_0x1d8459[_0xff6e('0x32')]);_0x53758c[_0xff6e('0x37')]=_[_0xff6e('0x35')](_0x1d8459[_0xff6e('0x31')],qs[_0xff6e('0x36')](_0x38a0a4[_0xff6e('0x32')]['fields']));_0x53758c[_0xff6e('0x37')]=_0x53758c[_0xff6e('0x37')]['length']?_0x53758c[_0xff6e('0x37')]:_0x1d8459[_0xff6e('0x31')];if(_0x38a0a4['query'][_0xff6e('0x43')]){_0x53758c['include']=[{'all':!![]}];}_0x53758c=_[_0xff6e('0x40')]({},_0x53758c,_0x38a0a4[_0xff6e('0x42')]);return db['Trigger'][_0xff6e('0x47')](_0x53758c)[_0xff6e('0x23')](handleEntityNotFound(_0x25894b,null))['then'](respondWithResult(_0x25894b,null))[_0xff6e('0x48')](handleError(_0x25894b,null));};exports['create']=function(_0x3095c9,_0x402530){return db[_0xff6e('0x2c')][_0xff6e('0x49')](_0x3095c9[_0xff6e('0x4a')],{})[_0xff6e('0x23')](function(_0x6385fb){var _0x546ccf=_0x3095c9[_0xff6e('0x4b')]['get']({'plain':!![]});if(!_0x546ccf)throw new Error(_0xff6e('0x4c'));if(_0x546ccf[_0xff6e('0x4d')]===_0xff6e('0x4b')){var _0x58e321=_0x6385fb[_0xff6e('0x24')]({'plain':!![]});var _0x22f03b='Triggers';return db[_0xff6e('0x4e')][_0xff6e('0x47')]({'where':{'name':_0x22f03b,'userProfileId':_0x546ccf[_0xff6e('0x4f')]},'raw':!![]})[_0xff6e('0x23')](function(_0xa6f04){if(_0xa6f04&&_0xa6f04[_0xff6e('0x50')]===0x0){return db[_0xff6e('0x26')][_0xff6e('0x49')]({'name':_0x58e321[_0xff6e('0x28')],'resourceId':_0x58e321['id'],'type':_0xa6f04['name'],'sectionId':_0xa6f04['id']},{})[_0xff6e('0x23')](function(){return _0x6385fb;});}else{return _0x6385fb;}})['catch'](function(_0x45fe86){logger[_0xff6e('0x51')](_0xff6e('0x52'),_0x45fe86);throw _0x45fe86;});}return _0x6385fb;})[_0xff6e('0x23')](respondWithResult(_0x402530,0xc9))[_0xff6e('0x48')](handleError(_0x402530,null));};exports['update']=function(_0x559ada,_0x5a8244){if(_0x559ada[_0xff6e('0x4a')]['id']){delete _0x559ada[_0xff6e('0x4a')]['id'];}return db[_0xff6e('0x2c')][_0xff6e('0x47')]({'where':{'id':_0x559ada['params']['id']}})[_0xff6e('0x23')](handleEntityNotFound(_0x5a8244,null))[_0xff6e('0x23')](saveUpdates(_0x559ada[_0xff6e('0x4a')],null))[_0xff6e('0x23')](respondWithResult(_0x5a8244,null))[_0xff6e('0x48')](handleError(_0x5a8244,null));};exports[_0xff6e('0x22')]=function(_0x34e9f3,_0x228e38){return db[_0xff6e('0x2c')][_0xff6e('0x47')]({'where':{'id':_0x34e9f3[_0xff6e('0x46')]['id']}})['then'](handleEntityNotFound(_0x228e38,null))[_0xff6e('0x23')](removeEntity(_0x228e38,null))[_0xff6e('0x48')](handleError(_0x228e38,null));};exports['addAllCondition']=function(_0x4154cc,_0x34eaf8,_0x1139a7){if(_0x4154cc[_0xff6e('0x4a')]['id']){delete _0x4154cc['body']['id'];}return db[_0xff6e('0x2c')]['find']({'where':{'id':_0x4154cc[_0xff6e('0x46')]['id']}})['then'](handleEntityNotFound(_0x34eaf8,null))[_0xff6e('0x23')](function(_0x364dc2){if(_0x364dc2){_0x4154cc['body'][_0xff6e('0x53')]=_0x364dc2['id'];return db[_0xff6e('0x54')]['create'](_0x4154cc[_0xff6e('0x4a')]);}})[_0xff6e('0x23')](respondWithResult(_0x34eaf8,null))['catch'](handleError(_0x34eaf8,null));};exports['addAnyCondition']=function(_0x133fe8,_0x4c223e,_0x3bf854){if(_0x133fe8[_0xff6e('0x4a')]['id']){delete _0x133fe8['body']['id'];}return db[_0xff6e('0x2c')][_0xff6e('0x47')]({'where':{'id':_0x133fe8[_0xff6e('0x46')]['id']}})[_0xff6e('0x23')](handleEntityNotFound(_0x4c223e,null))[_0xff6e('0x23')](function(_0xe5a768){if(_0xe5a768){_0x133fe8[_0xff6e('0x4a')]['TriggerAnyId']=_0xe5a768['id'];return db[_0xff6e('0x54')][_0xff6e('0x49')](_0x133fe8[_0xff6e('0x4a')]);}})['then'](respondWithResult(_0x4c223e,null))[_0xff6e('0x48')](handleError(_0x4c223e,null));};exports[_0xff6e('0x55')]=function(_0x57c711,_0x1283fd,_0x3f264f){var _0x454d8d={};var _0x1904a8={};var _0x20c88e;var _0x45f38c;return db[_0xff6e('0x2c')][_0xff6e('0x56')]({'where':{'id':_0x57c711[_0xff6e('0x46')]['id']}})['then'](handleEntityNotFound(_0x1283fd,null))[_0xff6e('0x23')](function(_0x50fc46){if(_0x50fc46){_0x20c88e=_0x50fc46;_0x1904a8[_0xff6e('0x31')]=_['keys'](db[_0xff6e('0x54')][_0xff6e('0x2d')]);_0x1904a8[_0xff6e('0x32')]=_['keys'](_0x57c711['query']);_0x1904a8[_0xff6e('0x34')]=_['intersection'](_0x1904a8[_0xff6e('0x31')],_0x1904a8[_0xff6e('0x32')]);_0x454d8d[_0xff6e('0x37')]=_['intersection'](_0x1904a8[_0xff6e('0x31')],qs['fields'](_0x57c711[_0xff6e('0x32')][_0xff6e('0x36')]));_0x454d8d['attributes']=_0x454d8d[_0xff6e('0x37')]['length']?_0x454d8d[_0xff6e('0x37')]:_0x1904a8[_0xff6e('0x31')];_0x454d8d[_0xff6e('0x3b')]=qs[_0xff6e('0x3c')](_0x57c711[_0xff6e('0x32')]['sort']);_0x454d8d['where']=qs[_0xff6e('0x34')](_[_0xff6e('0x3e')](_0x57c711[_0xff6e('0x32')],_0x1904a8[_0xff6e('0x34')]));if(_0x57c711[_0xff6e('0x32')][_0xff6e('0x3f')]){_0x454d8d[_0xff6e('0x3d')]=_['merge'](_0x454d8d[_0xff6e('0x3d')],{'$or':_[_0xff6e('0x2b')](_0x454d8d['attributes'],function(_0x236807){var _0x19d038={};_0x19d038[_0x236807]={'$like':'%'+_0x57c711[_0xff6e('0x32')][_0xff6e('0x3f')]+'%'};return _0x19d038;})});}_0x454d8d=_[_0xff6e('0x40')]({},_0x454d8d,_0x57c711[_0xff6e('0x42')]);return _0x20c88e['getAllConditions'](_0x454d8d);}})['then'](function(_0x20d9f5){if(_0x20d9f5){_0x45f38c=_0x20d9f5[_0xff6e('0x38')];if(!_0x57c711[_0xff6e('0x32')][_0xff6e('0x39')](_0xff6e('0x3a'))){_0x454d8d[_0xff6e('0x1a')]=qs[_0xff6e('0x1a')](_0x57c711[_0xff6e('0x32')]['limit']);_0x454d8d[_0xff6e('0x18')]=qs[_0xff6e('0x18')](_0x57c711[_0xff6e('0x32')][_0xff6e('0x18')]);}return _0x20c88e[_0xff6e('0x55')](_0x454d8d);}})[_0xff6e('0x23')](function(_0x2064cf){if(_0x2064cf){return _0x2064cf?{'count':_0x45f38c,'rows':_0x2064cf}:null;}})[_0xff6e('0x23')](respondWithResult(_0x1283fd,null))[_0xff6e('0x48')](handleError(_0x1283fd,null));};exports['getAnyConditions']=function(_0x276415,_0x2111fe,_0x4617cf){var _0x12703f={};var _0x40bc43={};var _0x3cb34a;var _0x4b61ab;return db[_0xff6e('0x2c')][_0xff6e('0x56')]({'where':{'id':_0x276415[_0xff6e('0x46')]['id']}})['then'](handleEntityNotFound(_0x2111fe,null))[_0xff6e('0x23')](function(_0x531cae){if(_0x531cae){_0x3cb34a=_0x531cae;_0x40bc43['model']=_[_0xff6e('0x33')](db[_0xff6e('0x54')][_0xff6e('0x2d')]);_0x40bc43['query']=_['keys'](_0x276415[_0xff6e('0x32')]);_0x40bc43[_0xff6e('0x34')]=_['intersection'](_0x40bc43[_0xff6e('0x31')],_0x40bc43[_0xff6e('0x32')]);_0x12703f['attributes']=_[_0xff6e('0x35')](_0x40bc43[_0xff6e('0x31')],qs[_0xff6e('0x36')](_0x276415[_0xff6e('0x32')][_0xff6e('0x36')]));_0x12703f[_0xff6e('0x37')]=_0x12703f[_0xff6e('0x37')][_0xff6e('0x38')]?_0x12703f['attributes']:_0x40bc43['model'];_0x12703f[_0xff6e('0x3b')]=qs[_0xff6e('0x3c')](_0x276415['query'][_0xff6e('0x3c')]);_0x12703f[_0xff6e('0x3d')]=qs['filters'](_[_0xff6e('0x3e')](_0x276415[_0xff6e('0x32')],_0x40bc43['filters']));if(_0x276415['query'][_0xff6e('0x3f')]){_0x12703f[_0xff6e('0x3d')]=_[_0xff6e('0x40')](_0x12703f[_0xff6e('0x3d')],{'$or':_[_0xff6e('0x2b')](_0x12703f['attributes'],function(_0x5a2bf8){var _0x35b137={};_0x35b137[_0x5a2bf8]={'$like':'%'+_0x276415[_0xff6e('0x32')]['filter']+'%'};return _0x35b137;})});}_0x12703f=_['merge']({},_0x12703f,_0x276415[_0xff6e('0x42')]);return _0x3cb34a[_0xff6e('0x57')](_0x12703f);}})[_0xff6e('0x23')](function(_0x4fe5ad){if(_0x4fe5ad){_0x4b61ab=_0x4fe5ad[_0xff6e('0x38')];if(!_0x276415['query'][_0xff6e('0x39')]('nolimit')){_0x12703f[_0xff6e('0x1a')]=qs[_0xff6e('0x1a')](_0x276415['query'][_0xff6e('0x1a')]);_0x12703f[_0xff6e('0x18')]=qs[_0xff6e('0x18')](_0x276415['query'][_0xff6e('0x18')]);}return _0x3cb34a[_0xff6e('0x57')](_0x12703f);}})[_0xff6e('0x23')](function(_0x1b5e7f){if(_0x1b5e7f){return _0x1b5e7f?{'count':_0x4b61ab,'rows':_0x1b5e7f}:null;}})[_0xff6e('0x23')](respondWithResult(_0x2111fe,null))[_0xff6e('0x48')](handleError(_0x2111fe,null));};exports[_0xff6e('0x58')]=function(_0x13e65c,_0x498a87,_0x153299){if(_0x13e65c[_0xff6e('0x4a')]['id']){delete _0x13e65c['body']['id'];}return db['Trigger'][_0xff6e('0x47')]({'where':{'id':_0x13e65c[_0xff6e('0x46')]['id']}})[_0xff6e('0x23')](handleEntityNotFound(_0x498a87,null))['then'](function(_0x554ec0){if(_0x554ec0){_0x13e65c['body'][_0xff6e('0x59')]=_0x554ec0['id'];return db[_0xff6e('0x5a')][_0xff6e('0x49')](_0x13e65c[_0xff6e('0x4a')]);}})[_0xff6e('0x23')](respondWithResult(_0x498a87,null))[_0xff6e('0x48')](handleError(_0x498a87,null));};exports[_0xff6e('0x5b')]=function(_0x1c8c7b,_0x1e89be,_0x4cd985){var _0x4bef1b={};var _0x29fa06={};var _0x28674f;var _0x5a7d5c;return db[_0xff6e('0x2c')][_0xff6e('0x56')]({'where':{'id':_0x1c8c7b[_0xff6e('0x46')]['id']}})['then'](handleEntityNotFound(_0x1e89be,null))[_0xff6e('0x23')](function(_0x441b8d){if(_0x441b8d){_0x28674f=_0x441b8d;_0x29fa06['model']=_[_0xff6e('0x33')](db[_0xff6e('0x5a')][_0xff6e('0x2d')]);_0x29fa06[_0xff6e('0x32')]=_[_0xff6e('0x33')](_0x1c8c7b[_0xff6e('0x32')]);_0x29fa06[_0xff6e('0x34')]=_[_0xff6e('0x35')](_0x29fa06[_0xff6e('0x31')],_0x29fa06[_0xff6e('0x32')]);_0x4bef1b[_0xff6e('0x37')]=_['intersection'](_0x29fa06[_0xff6e('0x31')],qs[_0xff6e('0x36')](_0x1c8c7b[_0xff6e('0x32')]['fields']));_0x4bef1b[_0xff6e('0x37')]=_0x4bef1b['attributes'][_0xff6e('0x38')]?_0x4bef1b[_0xff6e('0x37')]:_0x29fa06[_0xff6e('0x31')];_0x4bef1b[_0xff6e('0x3b')]=qs[_0xff6e('0x3c')](_0x1c8c7b[_0xff6e('0x32')][_0xff6e('0x3c')]);_0x4bef1b[_0xff6e('0x3d')]=qs['filters'](_[_0xff6e('0x3e')](_0x1c8c7b['query'],_0x29fa06['filters']));if(_0x1c8c7b['query'][_0xff6e('0x3f')]){_0x4bef1b['where']=_[_0xff6e('0x40')](_0x4bef1b[_0xff6e('0x3d')],{'$or':_[_0xff6e('0x2b')](_0x4bef1b[_0xff6e('0x37')],function(_0x10e80a){var _0x13c18b={};_0x13c18b[_0x10e80a]={'$like':'%'+_0x1c8c7b[_0xff6e('0x32')][_0xff6e('0x3f')]+'%'};return _0x13c18b;})});}_0x4bef1b=_[_0xff6e('0x40')]({},_0x4bef1b,_0x1c8c7b[_0xff6e('0x42')]);return _0x28674f[_0xff6e('0x5b')](_0x4bef1b);}})['then'](function(_0x200d59){if(_0x200d59){_0x5a7d5c=_0x200d59[_0xff6e('0x38')];if(!_0x1c8c7b[_0xff6e('0x32')][_0xff6e('0x39')]('nolimit')){_0x4bef1b['limit']=qs[_0xff6e('0x1a')](_0x1c8c7b[_0xff6e('0x32')][_0xff6e('0x1a')]);_0x4bef1b[_0xff6e('0x18')]=qs[_0xff6e('0x18')](_0x1c8c7b[_0xff6e('0x32')][_0xff6e('0x18')]);}return _0x28674f['getActions'](_0x4bef1b);}})[_0xff6e('0x23')](function(_0x223502){if(_0x223502){return _0x223502?{'count':_0x5a7d5c,'rows':_0x223502}:null;}})[_0xff6e('0x23')](respondWithResult(_0x1e89be,null))[_0xff6e('0x48')](handleError(_0x1e89be,null));};
\ No newline at end of file
+var _0xe3a3=['mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','set','Content-Range','apply','reject','save','update','destroy','then','get','UserProfileResource','sendStatus','error','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','limit','order','sort','filter','merge','where','VIRTUAL','options','Trigger','includeAll','findAll','rows','catch','show','params','include','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Triggers','UserProfileSection','userProfileId','autoAssociation','find','addAllCondition','create','TriggerAnyId','Condition','getAllConditions','pick','hasOwnProperty','nolimit','getAnyConditions','findOne','Action','getActions','eml-format','rimraf','zip-dir','request-promise','moment'];(function(_0xd98799,_0x16e594){var _0x1a737b=function(_0xa8228a){while(--_0xa8228a){_0xd98799['push'](_0xd98799['shift']());}};_0x1a737b(++_0x16e594);}(_0xe3a3,0x118));var _0x3e3a=function(_0x594ff0,_0x51ebc4){_0x594ff0=_0x594ff0-0x0;var _0x4985d8=_0xe3a3[_0x594ff0];return _0x4985d8;};'use strict';var emlformat=require(_0x3e3a('0x0'));var rimraf=require(_0x3e3a('0x1'));var zipdir=require(_0x3e3a('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3e3a('0x3'));var moment=require(_0x3e3a('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x3e3a('0x5'));var util=require(_0x3e3a('0x6'));var path=require('path');var sox=require(_0x3e3a('0x7'));var csv=require(_0x3e3a('0x8'));var ejs=require(_0x3e3a('0x9'));var fs=require('fs');var fs_extra=require(_0x3e3a('0xa'));var _=require(_0x3e3a('0xb'));var squel=require(_0x3e3a('0xc'));var crypto=require(_0x3e3a('0xd'));var jsforce=require(_0x3e3a('0xe'));var deskjs=require(_0x3e3a('0xf'));var toCsv=require(_0x3e3a('0x8'));var querystring=require('querystring');var Papa=require(_0x3e3a('0x10'));var Redis=require(_0x3e3a('0x11'));var authService=require(_0x3e3a('0x12'));var qs=require(_0x3e3a('0x13'));var as=require(_0x3e3a('0x14'));var hardwareService=require(_0x3e3a('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x3e3a('0x16'));var config=require(_0x3e3a('0x17'));var licenseUtil=require(_0x3e3a('0x18'));var db=require(_0x3e3a('0x19'))['db'];function respondWithStatusCode(_0x2a1793,_0x54733f){_0x54733f=_0x54733f||0xcc;return function(_0x423447){if(_0x423447){return _0x2a1793['sendStatus'](_0x54733f);}return _0x2a1793[_0x3e3a('0x1a')](_0x54733f)[_0x3e3a('0x1b')]();};}function respondWithResult(_0x5f523e,_0x3aa132){_0x3aa132=_0x3aa132||0xc8;return function(_0x3cae81){if(_0x3cae81){return _0x5f523e['status'](_0x3aa132)[_0x3e3a('0x1c')](_0x3cae81);}};}function respondWithFilteredResult(_0x42d136,_0x2e9cdf){return function(_0x20d529){if(_0x20d529){var _0x386c58=typeof _0x2e9cdf[_0x3e3a('0x1d')]===_0x3e3a('0x1e')&&typeof _0x2e9cdf['limit']===_0x3e3a('0x1e');var _0x16be71=_0x20d529[_0x3e3a('0x1f')];var _0x1d0553=_0x386c58?0x0:_0x2e9cdf[_0x3e3a('0x1d')];var _0x113a3c=_0x386c58?_0x20d529[_0x3e3a('0x1f')]:_0x2e9cdf[_0x3e3a('0x1d')]+_0x2e9cdf['limit'];var _0x26e23d;if(_0x113a3c>=_0x16be71){_0x113a3c=_0x16be71;_0x26e23d=0xc8;}else{_0x26e23d=0xce;}_0x42d136[_0x3e3a('0x1a')](_0x26e23d);return _0x42d136[_0x3e3a('0x20')](_0x3e3a('0x21'),_0x1d0553+'-'+_0x113a3c+'/'+_0x16be71)[_0x3e3a('0x1c')](_0x20d529);}return null;};}function patchUpdates(_0xb7cdfc){return function(_0x3e2837){try{jsonpatch[_0x3e3a('0x22')](_0x3e2837,_0xb7cdfc,!![]);}catch(_0x3f7362){return BPromise[_0x3e3a('0x23')](_0x3f7362);}return _0x3e2837[_0x3e3a('0x24')]();};}function saveUpdates(_0x5b0a3e,_0x549f2a){return function(_0x573c55){if(_0x573c55){return _0x573c55[_0x3e3a('0x25')](_0x5b0a3e)['then'](function(_0x3f2360){return _0x3f2360;});}return null;};}function removeEntity(_0x4bd333,_0x580bf1){return function(_0x3c1e0e){if(_0x3c1e0e){return _0x3c1e0e[_0x3e3a('0x26')]()[_0x3e3a('0x27')](function(){var _0x2e0b60=_0x3c1e0e[_0x3e3a('0x28')]({'plain':!![]});var _0x8571ae='Triggers';return db[_0x3e3a('0x29')][_0x3e3a('0x26')]({'where':{'type':_0x8571ae,'resourceId':_0x2e0b60['id']}})[_0x3e3a('0x27')](function(){return _0x3c1e0e;});})[_0x3e3a('0x27')](function(){_0x4bd333[_0x3e3a('0x1a')](0xcc)[_0x3e3a('0x1b')]();});}};}function handleEntityNotFound(_0x3e28d2,_0x2065ce){return function(_0x556b5f){if(!_0x556b5f){_0x3e28d2[_0x3e3a('0x2a')](0x194);}return _0x556b5f;};}function handleError(_0xb04105,_0xe2fde4){_0xe2fde4=_0xe2fde4||0x1f4;return function(_0x4a1ff7){logger[_0x3e3a('0x2b')](_0x4a1ff7[_0x3e3a('0x2c')]);if(_0x4a1ff7[_0x3e3a('0x2d')]){delete _0x4a1ff7[_0x3e3a('0x2d')];}_0xb04105[_0x3e3a('0x1a')](_0xe2fde4)['send'](_0x4a1ff7);};}exports[_0x3e3a('0x2e')]=function(_0x382b31,_0x4b2dea){var _0x3392a7={},_0x2603ca={},_0x381b5d={'count':0x0,'rows':[]};var _0x3aa8f6=_[_0x3e3a('0x2f')](db['Trigger'][_0x3e3a('0x30')],function(_0x4b0ae4){return{'name':_0x4b0ae4[_0x3e3a('0x31')],'type':_0x4b0ae4['type'][_0x3e3a('0x32')]};});_0x2603ca[_0x3e3a('0x33')]=_[_0x3e3a('0x2f')](_0x3aa8f6,_0x3e3a('0x2d'));_0x2603ca[_0x3e3a('0x34')]=_[_0x3e3a('0x35')](_0x382b31[_0x3e3a('0x34')]);_0x2603ca[_0x3e3a('0x36')]=_[_0x3e3a('0x37')](_0x2603ca['model'],_0x2603ca[_0x3e3a('0x34')]);_0x3392a7[_0x3e3a('0x38')]=_[_0x3e3a('0x37')](_0x2603ca['model'],qs['fields'](_0x382b31['query'][_0x3e3a('0x39')]));_0x3392a7['attributes']=_0x3392a7[_0x3e3a('0x38')][_0x3e3a('0x3a')]?_0x3392a7[_0x3e3a('0x38')]:_0x2603ca['model'];if(!_0x382b31[_0x3e3a('0x34')]['hasOwnProperty']('nolimit')){_0x3392a7[_0x3e3a('0x3b')]=qs[_0x3e3a('0x3b')](_0x382b31[_0x3e3a('0x34')][_0x3e3a('0x3b')]);_0x3392a7[_0x3e3a('0x1d')]=qs[_0x3e3a('0x1d')](_0x382b31[_0x3e3a('0x34')][_0x3e3a('0x1d')]);}_0x3392a7[_0x3e3a('0x3c')]=qs['sort'](_0x382b31[_0x3e3a('0x34')][_0x3e3a('0x3d')]);_0x3392a7['where']=qs[_0x3e3a('0x36')](_['pick'](_0x382b31['query'],_0x2603ca[_0x3e3a('0x36')]),_0x3aa8f6);if(_0x382b31[_0x3e3a('0x34')][_0x3e3a('0x3e')]){_0x3392a7['where']=_[_0x3e3a('0x3f')](_0x3392a7[_0x3e3a('0x40')],{'$or':_[_0x3e3a('0x2f')](_0x3aa8f6,function(_0x55e88d){if(_0x55e88d['type']!==_0x3e3a('0x41')){var _0x2f8c5a={};_0x2f8c5a[_0x55e88d['name']]={'$like':'%'+_0x382b31['query'][_0x3e3a('0x3e')]+'%'};return _0x2f8c5a;}})});}_0x3392a7=_[_0x3e3a('0x3f')]({},_0x3392a7,_0x382b31[_0x3e3a('0x42')]);var _0x3d3c59={'where':_0x3392a7[_0x3e3a('0x40')]};return db[_0x3e3a('0x43')]['count'](_0x3d3c59)[_0x3e3a('0x27')](function(_0x361890){_0x381b5d[_0x3e3a('0x1f')]=_0x361890;if(_0x382b31[_0x3e3a('0x34')][_0x3e3a('0x44')]){_0x3392a7['include']=[{'all':!![]}];}return db['Trigger'][_0x3e3a('0x45')](_0x3392a7);})[_0x3e3a('0x27')](function(_0x494bad){_0x381b5d[_0x3e3a('0x46')]=_0x494bad;return _0x381b5d;})[_0x3e3a('0x27')](respondWithFilteredResult(_0x4b2dea,_0x3392a7))[_0x3e3a('0x47')](handleError(_0x4b2dea,null));};exports[_0x3e3a('0x48')]=function(_0x166325,_0x5badb3){var _0x3a5e6d={'raw':![],'where':{'id':_0x166325[_0x3e3a('0x49')]['id']}},_0x42e602={};_0x42e602[_0x3e3a('0x33')]=_[_0x3e3a('0x35')](db[_0x3e3a('0x43')][_0x3e3a('0x30')]);_0x42e602[_0x3e3a('0x34')]=_[_0x3e3a('0x35')](_0x166325[_0x3e3a('0x34')]);_0x42e602[_0x3e3a('0x36')]=_[_0x3e3a('0x37')](_0x42e602['model'],_0x42e602[_0x3e3a('0x34')]);_0x3a5e6d['attributes']=_['intersection'](_0x42e602[_0x3e3a('0x33')],qs[_0x3e3a('0x39')](_0x166325['query'][_0x3e3a('0x39')]));_0x3a5e6d[_0x3e3a('0x38')]=_0x3a5e6d[_0x3e3a('0x38')][_0x3e3a('0x3a')]?_0x3a5e6d[_0x3e3a('0x38')]:_0x42e602[_0x3e3a('0x33')];if(_0x166325['query'][_0x3e3a('0x44')]){_0x3a5e6d[_0x3e3a('0x4a')]=[{'all':!![]}];}_0x3a5e6d=_[_0x3e3a('0x3f')]({},_0x3a5e6d,_0x166325[_0x3e3a('0x42')]);return db[_0x3e3a('0x43')]['find'](_0x3a5e6d)[_0x3e3a('0x27')](handleEntityNotFound(_0x5badb3,null))[_0x3e3a('0x27')](respondWithResult(_0x5badb3,null))[_0x3e3a('0x47')](handleError(_0x5badb3,null));};exports['create']=function(_0x4d99c9,_0x5f22f3){return db['Trigger']['create'](_0x4d99c9[_0x3e3a('0x4b')],{})[_0x3e3a('0x27')](function(_0x30e1ec){var _0x38b774=_0x4d99c9['user'][_0x3e3a('0x28')]({'plain':!![]});if(!_0x38b774)throw new Error(_0x3e3a('0x4c'));if(_0x38b774[_0x3e3a('0x4d')]==='user'){var _0x2a389e=_0x30e1ec[_0x3e3a('0x28')]({'plain':!![]});var _0x53897f=_0x3e3a('0x4e');return db[_0x3e3a('0x4f')]['find']({'where':{'name':_0x53897f,'userProfileId':_0x38b774[_0x3e3a('0x50')]},'raw':!![]})['then'](function(_0xddef79){if(_0xddef79&&_0xddef79[_0x3e3a('0x51')]===0x0){return db[_0x3e3a('0x29')]['create']({'name':_0x2a389e[_0x3e3a('0x2d')],'resourceId':_0x2a389e['id'],'type':_0xddef79[_0x3e3a('0x2d')],'sectionId':_0xddef79['id']},{})['then'](function(){return _0x30e1ec;});}else{return _0x30e1ec;}})[_0x3e3a('0x47')](function(_0x3b3b3e){logger[_0x3e3a('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3b3b3e);throw _0x3b3b3e;});}return _0x30e1ec;})[_0x3e3a('0x27')](respondWithResult(_0x5f22f3,0xc9))['catch'](handleError(_0x5f22f3,null));};exports[_0x3e3a('0x25')]=function(_0x43ee34,_0x47875c){if(_0x43ee34[_0x3e3a('0x4b')]['id']){delete _0x43ee34[_0x3e3a('0x4b')]['id'];}return db['Trigger']['find']({'where':{'id':_0x43ee34[_0x3e3a('0x49')]['id']}})[_0x3e3a('0x27')](handleEntityNotFound(_0x47875c,null))[_0x3e3a('0x27')](saveUpdates(_0x43ee34[_0x3e3a('0x4b')],null))[_0x3e3a('0x27')](respondWithResult(_0x47875c,null))[_0x3e3a('0x47')](handleError(_0x47875c,null));};exports[_0x3e3a('0x26')]=function(_0x3daa3e,_0x322df8){return db[_0x3e3a('0x43')][_0x3e3a('0x52')]({'where':{'id':_0x3daa3e[_0x3e3a('0x49')]['id']}})['then'](handleEntityNotFound(_0x322df8,null))[_0x3e3a('0x27')](removeEntity(_0x322df8,null))['catch'](handleError(_0x322df8,null));};exports[_0x3e3a('0x53')]=function(_0x364437,_0xd6412b,_0x5e32e9){if(_0x364437[_0x3e3a('0x4b')]['id']){delete _0x364437[_0x3e3a('0x4b')]['id'];}return db[_0x3e3a('0x43')][_0x3e3a('0x52')]({'where':{'id':_0x364437[_0x3e3a('0x49')]['id']}})[_0x3e3a('0x27')](handleEntityNotFound(_0xd6412b,null))[_0x3e3a('0x27')](function(_0x3eb7c4){if(_0x3eb7c4){_0x364437[_0x3e3a('0x4b')]['TriggerAllId']=_0x3eb7c4['id'];return db['Condition'][_0x3e3a('0x54')](_0x364437[_0x3e3a('0x4b')]);}})[_0x3e3a('0x27')](respondWithResult(_0xd6412b,null))[_0x3e3a('0x47')](handleError(_0xd6412b,null));};exports['addAnyCondition']=function(_0x22c495,_0x546e55,_0x1aeb02){if(_0x22c495[_0x3e3a('0x4b')]['id']){delete _0x22c495[_0x3e3a('0x4b')]['id'];}return db[_0x3e3a('0x43')]['find']({'where':{'id':_0x22c495[_0x3e3a('0x49')]['id']}})[_0x3e3a('0x27')](handleEntityNotFound(_0x546e55,null))[_0x3e3a('0x27')](function(_0x17e460){if(_0x17e460){_0x22c495[_0x3e3a('0x4b')][_0x3e3a('0x55')]=_0x17e460['id'];return db[_0x3e3a('0x56')][_0x3e3a('0x54')](_0x22c495[_0x3e3a('0x4b')]);}})[_0x3e3a('0x27')](respondWithResult(_0x546e55,null))[_0x3e3a('0x47')](handleError(_0x546e55,null));};exports[_0x3e3a('0x57')]=function(_0x3a8c19,_0x18000a,_0x3b5e0e){var _0x38d37b={};var _0x5acf94={};var _0x209124;var _0x122a11;return db['Trigger']['findOne']({'where':{'id':_0x3a8c19[_0x3e3a('0x49')]['id']}})[_0x3e3a('0x27')](handleEntityNotFound(_0x18000a,null))[_0x3e3a('0x27')](function(_0x1c29b8){if(_0x1c29b8){_0x209124=_0x1c29b8;_0x5acf94[_0x3e3a('0x33')]=_[_0x3e3a('0x35')](db[_0x3e3a('0x56')][_0x3e3a('0x30')]);_0x5acf94['query']=_[_0x3e3a('0x35')](_0x3a8c19[_0x3e3a('0x34')]);_0x5acf94['filters']=_[_0x3e3a('0x37')](_0x5acf94[_0x3e3a('0x33')],_0x5acf94[_0x3e3a('0x34')]);_0x38d37b['attributes']=_[_0x3e3a('0x37')](_0x5acf94[_0x3e3a('0x33')],qs[_0x3e3a('0x39')](_0x3a8c19[_0x3e3a('0x34')][_0x3e3a('0x39')]));_0x38d37b[_0x3e3a('0x38')]=_0x38d37b[_0x3e3a('0x38')]['length']?_0x38d37b[_0x3e3a('0x38')]:_0x5acf94['model'];_0x38d37b['order']=qs[_0x3e3a('0x3d')](_0x3a8c19[_0x3e3a('0x34')][_0x3e3a('0x3d')]);_0x38d37b[_0x3e3a('0x40')]=qs[_0x3e3a('0x36')](_[_0x3e3a('0x58')](_0x3a8c19[_0x3e3a('0x34')],_0x5acf94[_0x3e3a('0x36')]));if(_0x3a8c19[_0x3e3a('0x34')][_0x3e3a('0x3e')]){_0x38d37b[_0x3e3a('0x40')]=_['merge'](_0x38d37b[_0x3e3a('0x40')],{'$or':_[_0x3e3a('0x2f')](_0x38d37b['attributes'],function(_0x4d4b86){var _0x22aaa1={};_0x22aaa1[_0x4d4b86]={'$like':'%'+_0x3a8c19[_0x3e3a('0x34')][_0x3e3a('0x3e')]+'%'};return _0x22aaa1;})});}_0x38d37b=_[_0x3e3a('0x3f')]({},_0x38d37b,_0x3a8c19['options']);return _0x209124[_0x3e3a('0x57')](_0x38d37b);}})[_0x3e3a('0x27')](function(_0x51aff8){if(_0x51aff8){_0x122a11=_0x51aff8[_0x3e3a('0x3a')];if(!_0x3a8c19[_0x3e3a('0x34')][_0x3e3a('0x59')](_0x3e3a('0x5a'))){_0x38d37b[_0x3e3a('0x3b')]=qs[_0x3e3a('0x3b')](_0x3a8c19[_0x3e3a('0x34')][_0x3e3a('0x3b')]);_0x38d37b[_0x3e3a('0x1d')]=qs['offset'](_0x3a8c19['query']['offset']);}return _0x209124[_0x3e3a('0x57')](_0x38d37b);}})[_0x3e3a('0x27')](function(_0x3a41e4){if(_0x3a41e4){return _0x3a41e4?{'count':_0x122a11,'rows':_0x3a41e4}:null;}})['then'](respondWithResult(_0x18000a,null))[_0x3e3a('0x47')](handleError(_0x18000a,null));};exports[_0x3e3a('0x5b')]=function(_0x38594d,_0x395e82,_0xfbb078){var _0x1ede5d={};var _0x20240e={};var _0x1442fd;var _0x356bbb;return db[_0x3e3a('0x43')][_0x3e3a('0x5c')]({'where':{'id':_0x38594d[_0x3e3a('0x49')]['id']}})[_0x3e3a('0x27')](handleEntityNotFound(_0x395e82,null))['then'](function(_0x264d35){if(_0x264d35){_0x1442fd=_0x264d35;_0x20240e[_0x3e3a('0x33')]=_[_0x3e3a('0x35')](db[_0x3e3a('0x56')][_0x3e3a('0x30')]);_0x20240e[_0x3e3a('0x34')]=_[_0x3e3a('0x35')](_0x38594d['query']);_0x20240e['filters']=_[_0x3e3a('0x37')](_0x20240e['model'],_0x20240e[_0x3e3a('0x34')]);_0x1ede5d[_0x3e3a('0x38')]=_['intersection'](_0x20240e[_0x3e3a('0x33')],qs['fields'](_0x38594d[_0x3e3a('0x34')]['fields']));_0x1ede5d[_0x3e3a('0x38')]=_0x1ede5d['attributes'][_0x3e3a('0x3a')]?_0x1ede5d['attributes']:_0x20240e[_0x3e3a('0x33')];_0x1ede5d[_0x3e3a('0x3c')]=qs['sort'](_0x38594d[_0x3e3a('0x34')]['sort']);_0x1ede5d[_0x3e3a('0x40')]=qs['filters'](_[_0x3e3a('0x58')](_0x38594d[_0x3e3a('0x34')],_0x20240e[_0x3e3a('0x36')]));if(_0x38594d[_0x3e3a('0x34')][_0x3e3a('0x3e')]){_0x1ede5d[_0x3e3a('0x40')]=_[_0x3e3a('0x3f')](_0x1ede5d[_0x3e3a('0x40')],{'$or':_[_0x3e3a('0x2f')](_0x1ede5d[_0x3e3a('0x38')],function(_0x5f1e3c){var _0x200fd2={};_0x200fd2[_0x5f1e3c]={'$like':'%'+_0x38594d[_0x3e3a('0x34')][_0x3e3a('0x3e')]+'%'};return _0x200fd2;})});}_0x1ede5d=_[_0x3e3a('0x3f')]({},_0x1ede5d,_0x38594d[_0x3e3a('0x42')]);return _0x1442fd[_0x3e3a('0x5b')](_0x1ede5d);}})['then'](function(_0x333d43){if(_0x333d43){_0x356bbb=_0x333d43[_0x3e3a('0x3a')];if(!_0x38594d[_0x3e3a('0x34')][_0x3e3a('0x59')](_0x3e3a('0x5a'))){_0x1ede5d[_0x3e3a('0x3b')]=qs[_0x3e3a('0x3b')](_0x38594d[_0x3e3a('0x34')][_0x3e3a('0x3b')]);_0x1ede5d[_0x3e3a('0x1d')]=qs[_0x3e3a('0x1d')](_0x38594d[_0x3e3a('0x34')][_0x3e3a('0x1d')]);}return _0x1442fd['getAnyConditions'](_0x1ede5d);}})[_0x3e3a('0x27')](function(_0x4c52b5){if(_0x4c52b5){return _0x4c52b5?{'count':_0x356bbb,'rows':_0x4c52b5}:null;}})[_0x3e3a('0x27')](respondWithResult(_0x395e82,null))[_0x3e3a('0x47')](handleError(_0x395e82,null));};exports['addAction']=function(_0x259202,_0x5298aa,_0x415be5){if(_0x259202[_0x3e3a('0x4b')]['id']){delete _0x259202['body']['id'];}return db[_0x3e3a('0x43')][_0x3e3a('0x52')]({'where':{'id':_0x259202['params']['id']}})['then'](handleEntityNotFound(_0x5298aa,null))[_0x3e3a('0x27')](function(_0x2dfd7e){if(_0x2dfd7e){_0x259202[_0x3e3a('0x4b')]['TriggerId']=_0x2dfd7e['id'];return db[_0x3e3a('0x5d')][_0x3e3a('0x54')](_0x259202[_0x3e3a('0x4b')]);}})[_0x3e3a('0x27')](respondWithResult(_0x5298aa,null))[_0x3e3a('0x47')](handleError(_0x5298aa,null));};exports[_0x3e3a('0x5e')]=function(_0x1fe63f,_0x415d32,_0x224883){var _0x5d53e7={};var _0x5cae4d={};var _0xee209;var _0xba89b9;return db[_0x3e3a('0x43')]['findOne']({'where':{'id':_0x1fe63f[_0x3e3a('0x49')]['id']}})[_0x3e3a('0x27')](handleEntityNotFound(_0x415d32,null))['then'](function(_0x507dd1){if(_0x507dd1){_0xee209=_0x507dd1;_0x5cae4d[_0x3e3a('0x33')]=_[_0x3e3a('0x35')](db[_0x3e3a('0x5d')][_0x3e3a('0x30')]);_0x5cae4d[_0x3e3a('0x34')]=_[_0x3e3a('0x35')](_0x1fe63f['query']);_0x5cae4d[_0x3e3a('0x36')]=_[_0x3e3a('0x37')](_0x5cae4d['model'],_0x5cae4d[_0x3e3a('0x34')]);_0x5d53e7[_0x3e3a('0x38')]=_['intersection'](_0x5cae4d[_0x3e3a('0x33')],qs[_0x3e3a('0x39')](_0x1fe63f[_0x3e3a('0x34')][_0x3e3a('0x39')]));_0x5d53e7['attributes']=_0x5d53e7[_0x3e3a('0x38')][_0x3e3a('0x3a')]?_0x5d53e7[_0x3e3a('0x38')]:_0x5cae4d['model'];_0x5d53e7[_0x3e3a('0x3c')]=qs[_0x3e3a('0x3d')](_0x1fe63f[_0x3e3a('0x34')][_0x3e3a('0x3d')]);_0x5d53e7[_0x3e3a('0x40')]=qs[_0x3e3a('0x36')](_['pick'](_0x1fe63f[_0x3e3a('0x34')],_0x5cae4d[_0x3e3a('0x36')]));if(_0x1fe63f[_0x3e3a('0x34')][_0x3e3a('0x3e')]){_0x5d53e7[_0x3e3a('0x40')]=_['merge'](_0x5d53e7[_0x3e3a('0x40')],{'$or':_[_0x3e3a('0x2f')](_0x5d53e7['attributes'],function(_0x1367be){var _0x64544c={};_0x64544c[_0x1367be]={'$like':'%'+_0x1fe63f[_0x3e3a('0x34')][_0x3e3a('0x3e')]+'%'};return _0x64544c;})});}_0x5d53e7=_[_0x3e3a('0x3f')]({},_0x5d53e7,_0x1fe63f[_0x3e3a('0x42')]);return _0xee209[_0x3e3a('0x5e')](_0x5d53e7);}})[_0x3e3a('0x27')](function(_0x77b43){if(_0x77b43){_0xba89b9=_0x77b43[_0x3e3a('0x3a')];if(!_0x1fe63f['query'][_0x3e3a('0x59')](_0x3e3a('0x5a'))){_0x5d53e7[_0x3e3a('0x3b')]=qs[_0x3e3a('0x3b')](_0x1fe63f['query'][_0x3e3a('0x3b')]);_0x5d53e7[_0x3e3a('0x1d')]=qs[_0x3e3a('0x1d')](_0x1fe63f[_0x3e3a('0x34')][_0x3e3a('0x1d')]);}return _0xee209[_0x3e3a('0x5e')](_0x5d53e7);}})['then'](function(_0x29782b){if(_0x29782b){return _0x29782b?{'count':_0xba89b9,'rows':_0x29782b}:null;}})[_0x3e3a('0x27')](respondWithResult(_0x415d32,null))[_0x3e3a('0x47')](handleError(_0x415d32,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49fe=['path','rimraf','../../config/environment','./trigger.attributes','define','Trigger','lodash','util','../../config/logger','bluebird'];(function(_0x486f4a,_0x478dc7){var _0x135d99=function(_0x434008){while(--_0x434008){_0x486f4a['push'](_0x486f4a['shift']());}};_0x135d99(++_0x478dc7);}(_0x49fe,0x100));var _0xe49f=function(_0x2a2b21,_0x4e2709){_0x2a2b21=_0x2a2b21-0x0;var _0x3b02b7=_0x49fe[_0x2a2b21];return _0x3b02b7;};'use strict';var _=require(_0xe49f('0x0'));var util=require(_0xe49f('0x1'));var logger=require(_0xe49f('0x2'))('api');var moment=require('moment');var BPromise=require(_0xe49f('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe49f('0x4'));var rimraf=require(_0xe49f('0x5'));var config=require(_0xe49f('0x6'));var attributes=require(_0xe49f('0x7'));module['exports']=function(_0x20633a,_0x51fe70){return _0x20633a[_0xe49f('0x8')](_0xe49f('0x9'),attributes,{'tableName':'tools_triggers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1ef3=['path','rimraf','./trigger.attributes','exports','define','Trigger','lodash','util','api','moment','bluebird'];(function(_0x13a453,_0x524429){var _0x440792=function(_0x4e2f4f){while(--_0x4e2f4f){_0x13a453['push'](_0x13a453['shift']());}};_0x440792(++_0x524429);}(_0x1ef3,0x69));var _0x31ef=function(_0x47c85e,_0x21d10d){_0x47c85e=_0x47c85e-0x0;var _0xc0b996=_0x1ef3[_0x47c85e];return _0xc0b996;};'use strict';var _=require(_0x31ef('0x0'));var util=require(_0x31ef('0x1'));var logger=require('../../config/logger')(_0x31ef('0x2'));var moment=require(_0x31ef('0x3'));var BPromise=require(_0x31ef('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x31ef('0x5'));var rimraf=require(_0x31ef('0x6'));var config=require('../../config/environment');var attributes=require(_0x31ef('0x7'));module[_0x31ef('0x8')]=function(_0x81db4,_0x454b60){return _0x81db4[_0x31ef('0x9')](_0x31ef('0xa'),attributes,{'tableName':'tools_triggers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12af=['findAll','options','raw','where','attributes','limit','include','map','model','GetTrigger','catch','ShowTrigger','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','info','Trigger,\x20%s,\x20%s','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','Trigger'];(function(_0xa232b6,_0x4e0e3e){var _0x9c47aa=function(_0x318035){while(--_0x318035){_0xa232b6['push'](_0xa232b6['shift']());}};_0x9c47aa(++_0x4e0e3e);}(_0x12af,0xa5));var _0xf12a=function(_0x3e7b07,_0x19364a){_0x3e7b07=_0x3e7b07-0x0;var _0x33c396=_0x12af[_0x3e7b07];return _0x33c396;};'use strict';var _=require(_0xf12a('0x0'));var util=require(_0xf12a('0x1'));var moment=require(_0xf12a('0x2'));var BPromise=require(_0xf12a('0x3'));var rs=require(_0xf12a('0x4'));var fs=require('fs');var Redis=require(_0xf12a('0x5'));var db=require(_0xf12a('0x6'))['db'];var utils=require(_0xf12a('0x7'));var logger=require(_0xf12a('0x8'))('rpc');var config=require('../../config/environment');var jayson=require(_0xf12a('0x9'));var client=jayson[_0xf12a('0xa')][_0xf12a('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x280107,_0x51b4d1,_0x2dbe55){return new BPromise(function(_0xe08a5b,_0x341f0a){return client[_0xf12a('0xc')](_0x280107,_0x2dbe55)[_0xf12a('0xd')](function(_0x310265){logger[_0xf12a('0xe')](_0xf12a('0xf'),_0x51b4d1,_0xf12a('0x10'));logger[_0xf12a('0x11')](_0xf12a('0x12'),_0x51b4d1,_0xf12a('0x10'),JSON[_0xf12a('0x13')](_0x310265));if(_0x310265['error']){if(_0x310265[_0xf12a('0x14')][_0xf12a('0x15')]===0x1f4){logger[_0xf12a('0x14')](_0xf12a('0xf'),_0x51b4d1,_0x310265[_0xf12a('0x14')][_0xf12a('0x16')]);return _0x341f0a(_0x310265[_0xf12a('0x14')][_0xf12a('0x16')]);}logger[_0xf12a('0x14')](_0xf12a('0xf'),_0x51b4d1,_0x310265[_0xf12a('0x14')]['message']);return _0xe08a5b(_0x310265['error'][_0xf12a('0x16')]);}else{logger[_0xf12a('0xe')](_0xf12a('0xf'),_0x51b4d1,_0xf12a('0x10'));_0xe08a5b(_0x310265[_0xf12a('0x17')]['message']);}})['catch'](function(_0x5ec7e1){logger['error']('Trigger,\x20%s,\x20%s',_0x51b4d1,_0x5ec7e1);_0x341f0a(_0x5ec7e1);});});}exports['GetTrigger']=function(_0x10239b){var _0x287ba5=this;return new Promise(function(_0x231e8a,_0x21ef48){return db[_0xf12a('0x18')][_0xf12a('0x19')]({'raw':_0x10239b[_0xf12a('0x1a')]?_0x10239b[_0xf12a('0x1a')][_0xf12a('0x1b')]===undefined?!![]:![]:!![],'where':_0x10239b[_0xf12a('0x1a')]?_0x10239b[_0xf12a('0x1a')][_0xf12a('0x1c')]||null:null,'attributes':_0x10239b['options']?_0x10239b[_0xf12a('0x1a')][_0xf12a('0x1d')]||null:null,'limit':_0x10239b[_0xf12a('0x1a')]?_0x10239b[_0xf12a('0x1a')][_0xf12a('0x1e')]||null:null,'include':_0x10239b[_0xf12a('0x1a')]?_0x10239b[_0xf12a('0x1a')][_0xf12a('0x1f')]?_[_0xf12a('0x20')](_0x10239b[_0xf12a('0x1a')][_0xf12a('0x1f')],function(_0x3e33c4){return{'model':db[_0x3e33c4[_0xf12a('0x21')]],'as':_0x3e33c4['as'],'attributes':_0x3e33c4['attributes'],'include':_0x3e33c4[_0xf12a('0x1f')]?_[_0xf12a('0x20')](_0x3e33c4[_0xf12a('0x1f')],function(_0x480031){return{'model':db[_0x480031[_0xf12a('0x21')]],'as':_0x480031['as'],'attributes':_0x480031[_0xf12a('0x1d')],'include':_0x480031[_0xf12a('0x1f')]?_['map'](_0x480031[_0xf12a('0x1f')],function(_0x1b8983){return{'model':db[_0x1b8983[_0xf12a('0x21')]],'as':_0x1b8983['as'],'attributes':_0x1b8983[_0xf12a('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x79b26d){logger['info'](_0xf12a('0x22'),_0x10239b);logger['debug'](_0xf12a('0x22'),_0x10239b,JSON[_0xf12a('0x13')](_0x79b26d));_0x231e8a(_0x79b26d);})[_0xf12a('0x23')](function(_0x813f34){logger[_0xf12a('0x14')]('GetTrigger',_0x813f34[_0xf12a('0x16')],_0x10239b);_0x21ef48(_0x287ba5['error'](0x1f4,_0x813f34[_0xf12a('0x16')]));});});};exports[_0xf12a('0x24')]=function(_0x1a1a8e){var _0x324a0e=this;return new Promise(function(_0x16962e,_0x538e5f){return db[_0xf12a('0x18')][_0xf12a('0x25')]({'raw':_0x1a1a8e[_0xf12a('0x1a')]?_0x1a1a8e[_0xf12a('0x1a')][_0xf12a('0x1b')]===undefined?!![]:![]:!![],'where':_0x1a1a8e[_0xf12a('0x1a')]?_0x1a1a8e[_0xf12a('0x1a')][_0xf12a('0x1c')]||null:null,'attributes':_0x1a1a8e['options']?_0x1a1a8e['options'][_0xf12a('0x1d')]||null:null,'include':_0x1a1a8e[_0xf12a('0x1a')]?_0x1a1a8e[_0xf12a('0x1a')][_0xf12a('0x1f')]?_[_0xf12a('0x20')](_0x1a1a8e['options']['include'],function(_0x414d70){return{'model':db[_0x414d70[_0xf12a('0x21')]],'as':_0x414d70['as'],'attributes':_0x414d70['attributes'],'include':_0x414d70['include']?_[_0xf12a('0x20')](_0x414d70[_0xf12a('0x1f')],function(_0x3bfca8){return{'model':db[_0x3bfca8[_0xf12a('0x21')]],'as':_0x3bfca8['as'],'attributes':_0x3bfca8[_0xf12a('0x1d')],'include':_0x3bfca8[_0xf12a('0x1f')]?_[_0xf12a('0x20')](_0x3bfca8['include'],function(_0xd4c278){return{'model':db[_0xd4c278[_0xf12a('0x21')]],'as':_0xd4c278['as'],'attributes':_0xd4c278[_0xf12a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xf12a('0xd')](function(_0x13082d){logger[_0xf12a('0xe')](_0xf12a('0x24'),_0x1a1a8e);logger[_0xf12a('0x11')](_0xf12a('0x24'),_0x1a1a8e,JSON[_0xf12a('0x13')](_0x13082d));_0x16962e(_0x13082d);})[_0xf12a('0x23')](function(_0x3a9cc6){logger['error'](_0xf12a('0x24'),_0x3a9cc6['message'],_0x1a1a8e);_0x538e5f(_0x324a0e[_0xf12a('0x14')](0x1f4,_0x3a9cc6[_0xf12a('0x16')]));});});};
\ No newline at end of file
+var _0xc2ce=['attributes','limit','map','include','model','GetTrigger','ShowTrigger','find','lodash','util','moment','bluebird','randomstring','../../mysqldb','jayson/promise','client','http','request','then','info','Trigger,\x20%s,\x20%s','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','Trigger','findAll','options','raw','where'];(function(_0x11a220,_0x4e470a){var _0x20d8fe=function(_0xbedfd){while(--_0xbedfd){_0x11a220['push'](_0x11a220['shift']());}};_0x20d8fe(++_0x4e470a);}(_0xc2ce,0x118));var _0xec2c=function(_0x545b71,_0x4f44eb){_0x545b71=_0x545b71-0x0;var _0x26e587=_0xc2ce[_0x545b71];return _0x26e587;};'use strict';var _=require(_0xec2c('0x0'));var util=require(_0xec2c('0x1'));var moment=require(_0xec2c('0x2'));var BPromise=require(_0xec2c('0x3'));var rs=require(_0xec2c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xec2c('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0xec2c('0x6'));var client=jayson[_0xec2c('0x7')][_0xec2c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x35e619,_0x3e1197,_0x3d498c){return new BPromise(function(_0x478e66,_0x26166a){return client[_0xec2c('0x9')](_0x35e619,_0x3d498c)[_0xec2c('0xa')](function(_0x2ce78b){logger[_0xec2c('0xb')](_0xec2c('0xc'),_0x3e1197,_0xec2c('0xd'));logger[_0xec2c('0xe')](_0xec2c('0xf'),_0x3e1197,_0xec2c('0xd'),JSON[_0xec2c('0x10')](_0x2ce78b));if(_0x2ce78b[_0xec2c('0x11')]){if(_0x2ce78b[_0xec2c('0x11')]['code']===0x1f4){logger[_0xec2c('0x11')](_0xec2c('0xc'),_0x3e1197,_0x2ce78b['error']['message']);return _0x26166a(_0x2ce78b[_0xec2c('0x11')][_0xec2c('0x12')]);}logger[_0xec2c('0x11')](_0xec2c('0xc'),_0x3e1197,_0x2ce78b['error']['message']);return _0x478e66(_0x2ce78b[_0xec2c('0x11')]['message']);}else{logger[_0xec2c('0xb')](_0xec2c('0xc'),_0x3e1197,'request\x20sent');_0x478e66(_0x2ce78b[_0xec2c('0x13')][_0xec2c('0x12')]);}})[_0xec2c('0x14')](function(_0x51a1cc){logger[_0xec2c('0x11')]('Trigger,\x20%s,\x20%s',_0x3e1197,_0x51a1cc);_0x26166a(_0x51a1cc);});});}exports['GetTrigger']=function(_0x5cfa5e){var _0x1efb8b=this;return new Promise(function(_0x5acc48,_0x22bf3b){return db[_0xec2c('0x15')][_0xec2c('0x16')]({'raw':_0x5cfa5e[_0xec2c('0x17')]?_0x5cfa5e[_0xec2c('0x17')][_0xec2c('0x18')]===undefined?!![]:![]:!![],'where':_0x5cfa5e[_0xec2c('0x17')]?_0x5cfa5e[_0xec2c('0x17')][_0xec2c('0x19')]||null:null,'attributes':_0x5cfa5e[_0xec2c('0x17')]?_0x5cfa5e[_0xec2c('0x17')][_0xec2c('0x1a')]||null:null,'limit':_0x5cfa5e['options']?_0x5cfa5e[_0xec2c('0x17')][_0xec2c('0x1b')]||null:null,'include':_0x5cfa5e[_0xec2c('0x17')]?_0x5cfa5e['options']['include']?_[_0xec2c('0x1c')](_0x5cfa5e[_0xec2c('0x17')][_0xec2c('0x1d')],function(_0x4264f1){return{'model':db[_0x4264f1[_0xec2c('0x1e')]],'as':_0x4264f1['as'],'attributes':_0x4264f1[_0xec2c('0x1a')],'include':_0x4264f1[_0xec2c('0x1d')]?_['map'](_0x4264f1[_0xec2c('0x1d')],function(_0x1b39ab){return{'model':db[_0x1b39ab[_0xec2c('0x1e')]],'as':_0x1b39ab['as'],'attributes':_0x1b39ab[_0xec2c('0x1a')],'include':_0x1b39ab[_0xec2c('0x1d')]?_[_0xec2c('0x1c')](_0x1b39ab[_0xec2c('0x1d')],function(_0x284ed0){return{'model':db[_0x284ed0[_0xec2c('0x1e')]],'as':_0x284ed0['as'],'attributes':_0x284ed0[_0xec2c('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xec2c('0xa')](function(_0x29273a){logger[_0xec2c('0xb')](_0xec2c('0x1f'),_0x5cfa5e);logger[_0xec2c('0xe')](_0xec2c('0x1f'),_0x5cfa5e,JSON[_0xec2c('0x10')](_0x29273a));_0x5acc48(_0x29273a);})[_0xec2c('0x14')](function(_0x1516de){logger[_0xec2c('0x11')](_0xec2c('0x1f'),_0x1516de[_0xec2c('0x12')],_0x5cfa5e);_0x22bf3b(_0x1efb8b[_0xec2c('0x11')](0x1f4,_0x1516de[_0xec2c('0x12')]));});});};exports[_0xec2c('0x20')]=function(_0x43a2f1){var _0x1e2393=this;return new Promise(function(_0x2151d2,_0x809012){return db['Trigger'][_0xec2c('0x21')]({'raw':_0x43a2f1[_0xec2c('0x17')]?_0x43a2f1[_0xec2c('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x43a2f1[_0xec2c('0x17')]?_0x43a2f1[_0xec2c('0x17')][_0xec2c('0x19')]||null:null,'attributes':_0x43a2f1[_0xec2c('0x17')]?_0x43a2f1['options'][_0xec2c('0x1a')]||null:null,'include':_0x43a2f1[_0xec2c('0x17')]?_0x43a2f1[_0xec2c('0x17')][_0xec2c('0x1d')]?_[_0xec2c('0x1c')](_0x43a2f1['options'][_0xec2c('0x1d')],function(_0x1fb2a0){return{'model':db[_0x1fb2a0['model']],'as':_0x1fb2a0['as'],'attributes':_0x1fb2a0['attributes'],'include':_0x1fb2a0[_0xec2c('0x1d')]?_[_0xec2c('0x1c')](_0x1fb2a0[_0xec2c('0x1d')],function(_0x373a8e){return{'model':db[_0x373a8e[_0xec2c('0x1e')]],'as':_0x373a8e['as'],'attributes':_0x373a8e[_0xec2c('0x1a')],'include':_0x373a8e['include']?_[_0xec2c('0x1c')](_0x373a8e[_0xec2c('0x1d')],function(_0x1762f7){return{'model':db[_0x1762f7['model']],'as':_0x1762f7['as'],'attributes':_0x1762f7['attributes']};}):[]};}):[]};}):[]:[]})[_0xec2c('0xa')](function(_0x528e18){logger[_0xec2c('0xb')](_0xec2c('0x20'),_0x43a2f1);logger[_0xec2c('0xe')]('ShowTrigger',_0x43a2f1,JSON[_0xec2c('0x10')](_0x528e18));_0x2151d2(_0x528e18);})[_0xec2c('0x14')](function(_0x5bed15){logger[_0xec2c('0x11')]('ShowTrigger',_0x5bed15[_0xec2c('0x12')],_0x43a2f1);_0x809012(_0x1e2393[_0xec2c('0x11')](0x1f4,_0x5bed15['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x421d=['fs-extra','../../components/auth/service','./trunk.controller','index','get','/:id','isAuthenticated','show','post','clone','create','put','update','delete','destroy','connect-timeout','express','Router'];(function(_0x2b0078,_0x391775){var _0x44cc60=function(_0x4e9df3){while(--_0x4e9df3){_0x2b0078['push'](_0x2b0078['shift']());}};_0x44cc60(++_0x391775);}(_0x421d,0x9f));var _0xd421=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0x421d[_0x45e98e];return _0x374dba;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xd421('0x0'));var express=require(_0xd421('0x1'));var router=express[_0xd421('0x2')]();var fs_extra=require(_0xd421('0x3'));var auth=require(_0xd421('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xd421('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0xd421('0x6')]);router[_0xd421('0x7')](_0xd421('0x8'),auth[_0xd421('0x9')](),controller[_0xd421('0xa')]);router[_0xd421('0xb')]('/:id/clone',auth['isAuthenticated'](),controller[_0xd421('0xc')]);router['post']('/',auth[_0xd421('0x9')](),controller[_0xd421('0xd')]);router[_0xd421('0xe')](_0xd421('0x8'),auth[_0xd421('0x9')](),controller[_0xd421('0xf')]);router[_0xd421('0x10')](_0xd421('0x8'),auth[_0xd421('0x9')](),controller[_0xd421('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0xf1cf=['clone','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','./trunk.controller','get','isAuthenticated','index','/:id','show','post','/:id/clone'];(function(_0x67fc81,_0x7d41ae){var _0x9f0dfb=function(_0xc0739a){while(--_0xc0739a){_0x67fc81['push'](_0x67fc81['shift']());}};_0x9f0dfb(++_0x7d41ae);}(_0xf1cf,0xa1));var _0xff1c=function(_0x565374,_0x395149){_0x565374=_0x565374-0x0;var _0x31cd93=_0xf1cf[_0x565374];return _0x31cd93;};'use strict';var multer=require(_0xff1c('0x0'));var util=require(_0xff1c('0x1'));var path=require(_0xff1c('0x2'));var timeout=require(_0xff1c('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xff1c('0x4'));var auth=require(_0xff1c('0x5'));var interaction=require(_0xff1c('0x6'));var config=require('../../config/environment');var controller=require(_0xff1c('0x7'));router[_0xff1c('0x8')]('/',auth[_0xff1c('0x9')](),controller[_0xff1c('0xa')]);router[_0xff1c('0x8')](_0xff1c('0xb'),auth[_0xff1c('0x9')](),controller[_0xff1c('0xc')]);router[_0xff1c('0xd')](_0xff1c('0xe'),auth[_0xff1c('0x9')](),controller[_0xff1c('0xf')]);router['post']('/',auth[_0xff1c('0x9')](),controller[_0xff1c('0x10')]);router[_0xff1c('0x11')](_0xff1c('0xb'),auth[_0xff1c('0x9')](),controller[_0xff1c('0x12')]);router[_0xff1c('0x13')](_0xff1c('0xb'),auth[_0xff1c('0x9')](),controller[_0xff1c('0x14')]);module[_0xff1c('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8e0e=['uas','pai','fingerprint','passive','dynamic','update,nonat','sequelize','exports','STRING','name','ENUM','friend','user','peer','from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','setDataValue','transport','join','getDataValue','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','shortinfo','inband','nonat','update','outgoing','yes','force_rport,comedia','nat','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','\x22\x22\x20<>','INTEGER','always','accept','refuse','originate'];(function(_0x2962d5,_0x38deda){var _0x273406=function(_0x3e0775){while(--_0x3e0775){_0x2962d5['push'](_0x2962d5['shift']());}};_0x273406(++_0x38deda);}(_0x8e0e,0x1d1));var _0xe8e0=function(_0x4f1e52,_0x3f2100){_0x4f1e52=_0x4f1e52-0x0;var _0x213a54=_0x8e0e[_0x4f1e52];return _0x213a54;};'use strict';var Sequelize=require(_0xe8e0('0x0'));module[_0xe8e0('0x1')]={'name':{'type':Sequelize[_0xe8e0('0x2')],'allowNull':![],'unique':_0xe8e0('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x5'),_0xe8e0('0x6'),_0xe8e0('0x7')),'allowNull':![],'defaultValue':_0xe8e0('0x5')},'context':{'type':Sequelize[_0xe8e0('0x2')],'allowNull':![],'defaultValue':_0xe8e0('0x8')},'callingpres':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x9'),_0xe8e0('0xa'),'ALLOWED_FAILED_SCREEN',_0xe8e0('0xb'),_0xe8e0('0xc'),_0xe8e0('0xd'),_0xe8e0('0xe'),_0xe8e0('0xf'))},'deny':{'type':Sequelize[_0xe8e0('0x2')]},'permit':{'type':Sequelize['STRING']},'secret':{'type':Sequelize[_0xe8e0('0x2')]},'md5secret':{'type':Sequelize[_0xe8e0('0x2')]},'remotesecret':{'type':Sequelize[_0xe8e0('0x2')]},'transport':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':'udp','set':function(_0x546cd2){this[_0xe8e0('0x10')](_0xe8e0('0x11'),_0x546cd2?_0x546cd2[_0xe8e0('0x12')](','):null);},'get':function(){return this['getDataValue']('transport')?this[_0xe8e0('0x13')]('transport')['split'](','):null;},'comment':_0xe8e0('0x14')},'dtmfmode':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x15'),_0xe8e0('0x16'),_0xe8e0('0x17'),_0xe8e0('0x18'),'auto'),'defaultValue':'rfc2833'},'directmedia':{'type':Sequelize[_0xe8e0('0x4')]('yes','no',_0xe8e0('0x19'),_0xe8e0('0x1a'),_0xe8e0('0x1b')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize['ENUM'](_0xe8e0('0x1c'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING']},'directmediadeny':{'type':Sequelize[_0xe8e0('0x2')]},'nat':{'type':Sequelize['STRING'],'defaultValue':_0xe8e0('0x1d'),'set':function(_0xcbc6dd){this[_0xe8e0('0x10')](_0xe8e0('0x1e'),_0xcbc6dd?_0xcbc6dd[_0xe8e0('0x12')](','):null);},'get':function(){return this[_0xe8e0('0x13')]('nat')?this[_0xe8e0('0x13')](_0xe8e0('0x1e'))[_0xe8e0('0x1f')](','):null;},'comment':_0xe8e0('0x20')},'callgroup':{'type':Sequelize[_0xe8e0('0x2')]},'namedcallgroup':{'type':Sequelize[_0xe8e0('0x2')]},'pickupgroup':{'type':Sequelize[_0xe8e0('0x2')]},'namedpickupgroup':{'type':Sequelize[_0xe8e0('0x2')]},'language':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING'],'allowNull':!![]},'disallow':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':_0xe8e0('0x21')},'allow':{'type':Sequelize[_0xe8e0('0x2')],'allowNull':![],'defaultValue':_0xe8e0('0x22'),'set':function(_0x7b0944){this[_0xe8e0('0x10')](_0xe8e0('0x23'),_0x7b0944?_0x7b0944[_0xe8e0('0x12')](';'):_0xe8e0('0x22'));},'get':function(){return this[_0xe8e0('0x13')](_0xe8e0('0x23'))?this[_0xe8e0('0x13')](_0xe8e0('0x23'))[_0xe8e0('0x1f')](';'):null;},'comment':_0xe8e0('0x24')},'autoframing':{'type':Sequelize['ENUM']('yes','no')},'insecure':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':'port,invite','set':function(_0xb2080a){this[_0xe8e0('0x10')](_0xe8e0('0x25'),_0xb2080a?_0xb2080a[_0xe8e0('0x12')](','):null);},'get':function(){return this[_0xe8e0('0x13')]('insecure')?this[_0xe8e0('0x13')](_0xe8e0('0x25'))[_0xe8e0('0x1f')](','):null;},'comment':_0xe8e0('0x26')},'trustrpid':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no','never')},'promiscredir':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no')},'useclientcode':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no')},'accountcode':{'type':Sequelize['INTEGER'](0xb)},'setvar':{'type':Sequelize[_0xe8e0('0x2')]},'callerid':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':_0xe8e0('0x27')},'amaflags':{'type':Sequelize['STRING']},'callcounter':{'type':Sequelize[_0xe8e0('0x4')]('yes','no'),'defaultValue':_0xe8e0('0x1c')},'busylevel':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'allowoverlap':{'type':Sequelize['ENUM'](_0xe8e0('0x1c'),'no')},'allowsubscribe':{'type':Sequelize['ENUM'](_0xe8e0('0x1c'),'no')},'allowtransfer':{'type':Sequelize['ENUM'](_0xe8e0('0x1c'),'no')},'ignoresdpversion':{'type':Sequelize['ENUM']('yes','no')},'subscribecontext':{'type':Sequelize[_0xe8e0('0x2')]},'template':{'type':Sequelize[_0xe8e0('0x2')]},'videosupport':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no',_0xe8e0('0x29')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'rfc2833compensate':{'type':Sequelize[_0xe8e0('0x4')]('yes','no')},'mailbox':{'type':Sequelize['STRING']},'session_timers':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x2a'),_0xe8e0('0x2b'),_0xe8e0('0x2c'))},'session_expires':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'session_minse':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'session_refresher':{'type':Sequelize[_0xe8e0('0x4')]('uac',_0xe8e0('0x2d')),'defaultValue':'uas'},'t38pt_usertpsource':{'type':Sequelize[_0xe8e0('0x2')]},'regexten':{'type':Sequelize[_0xe8e0('0x2')]},'fromdomain':{'type':Sequelize[_0xe8e0('0x2')]},'fromuser':{'type':Sequelize[_0xe8e0('0x2')]},'port':{'type':Sequelize[_0xe8e0('0x28')](0x5)},'qualify':{'type':Sequelize['ENUM'](_0xe8e0('0x1c'),'no'),'defaultValue':_0xe8e0('0x1c')},'keepalive':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'defaultip':{'type':Sequelize[_0xe8e0('0x2')]},'defaultuser':{'type':Sequelize[_0xe8e0('0x2')]},'rtptimeout':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpkeepalive':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'sendrpid':{'type':Sequelize[_0xe8e0('0x4')]('yes','no',_0xe8e0('0x2e')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING']},'callbackextension':{'type':Sequelize[_0xe8e0('0x2')]},'timert1':{'type':Sequelize['INTEGER'](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'contactpermit':{'type':Sequelize[_0xe8e0('0x2')]},'contactdeny':{'type':Sequelize['STRING']},'contactacl':{'type':Sequelize['STRING']},'unsolicited_mailbox':{'type':Sequelize[_0xe8e0('0x2')]},'use_q850_reason':{'type':Sequelize[_0xe8e0('0x2')]},'maxforwards':{'type':Sequelize[_0xe8e0('0x28')](0xb)},'encryption':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no')},'force_avp':{'type':Sequelize['ENUM'](_0xe8e0('0x1c'),'no')},'icesupport':{'type':Sequelize[_0xe8e0('0x4')]('yes','no')},'dtlsenable':{'type':Sequelize[_0xe8e0('0x4')]('yes','no')},'dtlsverify':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no',_0xe8e0('0x2f'),'certificate')},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb)},'dtlscertfile':{'type':Sequelize[_0xe8e0('0x2')]},'dtlsprivatekey':{'type':Sequelize['STRING']},'dtlscipher':{'type':Sequelize[_0xe8e0('0x2')]},'dtlscafile':{'type':Sequelize[_0xe8e0('0x2')]},'dtlscapath':{'type':Sequelize[_0xe8e0('0x2')]},'dtlssetup':{'type':Sequelize['ENUM']('active',_0xe8e0('0x30'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING']},'usereqphone':{'type':Sequelize[_0xe8e0('0x4')]('yes','no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xe8e0('0x2')]},'recordofffeature':{'type':Sequelize[_0xe8e0('0x2')]},'call_limit':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no')},'subscribemwi':{'type':Sequelize[_0xe8e0('0x4')]('yes','no')},'vmexten':{'type':Sequelize[_0xe8e0('0x2')]},'mohinterpret':{'type':Sequelize[_0xe8e0('0x2')]},'mohsuggest':{'type':Sequelize['STRING']},'parkinglot':{'type':Sequelize[_0xe8e0('0x2')]},'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':_0xe8e0('0x31')},'canreinvite':{'type':Sequelize[_0xe8e0('0x4')](_0xe8e0('0x1c'),'no',_0xe8e0('0x19'),_0xe8e0('0x1a'),_0xe8e0('0x32')),'defaultValue':'no'},'registry':{'type':Sequelize[_0xe8e0('0x2')]},'otherFields':{'type':Sequelize['STRING']},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0xe8e0('0x2')],'defaultValue':'no'}};
\ No newline at end of file
+var _0xf4ec=['shortinfo','inband','auto','outgoing','force_rport,comedia','nat','ulaw;alaw;gsm','allow','yes','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','INTEGER','\x22\x22\x20<>','always','accept','refuse','uac','uas','pai','certificate','active','passive','BOOLEAN','sequelize','STRING','name','ENUM','friend','user','peer','from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_FAILED_SCREEN','udp','setDataValue','transport','join','getDataValue','split'];(function(_0x5af90e,_0x4222f1){var _0x28f746=function(_0x5ad5b6){while(--_0x5ad5b6){_0x5af90e['push'](_0x5af90e['shift']());}};_0x28f746(++_0x4222f1);}(_0xf4ec,0x1db));var _0xcf4e=function(_0x40529b,_0x5a44c8){_0x40529b=_0x40529b-0x0;var _0x5bfd85=_0xf4ec[_0x40529b];return _0x5bfd85;};'use strict';var Sequelize=require(_0xcf4e('0x0'));module['exports']={'name':{'type':Sequelize[_0xcf4e('0x1')],'allowNull':![],'unique':_0xcf4e('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x4'),_0xcf4e('0x5'),_0xcf4e('0x6')),'allowNull':![],'defaultValue':_0xcf4e('0x4')},'context':{'type':Sequelize[_0xcf4e('0x1')],'allowNull':![],'defaultValue':_0xcf4e('0x7')},'callingpres':{'type':Sequelize['ENUM'](_0xcf4e('0x8'),_0xcf4e('0x9'),_0xcf4e('0xa'),_0xcf4e('0xb'),_0xcf4e('0xc'),'PROHIB_PASSED_SCREEN',_0xcf4e('0xd'),'PROHIB')},'deny':{'type':Sequelize[_0xcf4e('0x1')]},'permit':{'type':Sequelize[_0xcf4e('0x1')]},'secret':{'type':Sequelize[_0xcf4e('0x1')]},'md5secret':{'type':Sequelize[_0xcf4e('0x1')]},'remotesecret':{'type':Sequelize['STRING']},'transport':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':_0xcf4e('0xe'),'set':function(_0x1c2db7){this[_0xcf4e('0xf')](_0xcf4e('0x10'),_0x1c2db7?_0x1c2db7[_0xcf4e('0x11')](','):null);},'get':function(){return this[_0xcf4e('0x12')](_0xcf4e('0x10'))?this[_0xcf4e('0x12')]('transport')[_0xcf4e('0x13')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize['ENUM']('rfc2833','info',_0xcf4e('0x14'),_0xcf4e('0x15'),_0xcf4e('0x16')),'defaultValue':'rfc2833'},'directmedia':{'type':Sequelize[_0xcf4e('0x3')]('yes','no','nonat','update',_0xcf4e('0x17')),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xcf4e('0x3')]('yes','no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xcf4e('0x1')]},'directmediadeny':{'type':Sequelize[_0xcf4e('0x1')]},'nat':{'type':Sequelize['STRING'],'defaultValue':_0xcf4e('0x18'),'set':function(_0x148197){this[_0xcf4e('0xf')](_0xcf4e('0x19'),_0x148197?_0x148197[_0xcf4e('0x11')](','):null);},'get':function(){return this[_0xcf4e('0x12')]('nat')?this[_0xcf4e('0x12')](_0xcf4e('0x19'))['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize['STRING']},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0xcf4e('0x1')]},'namedpickupgroup':{'type':Sequelize[_0xcf4e('0x1')]},'language':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING'],'allowNull':!![]},'disallow':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':'all'},'allow':{'type':Sequelize[_0xcf4e('0x1')],'allowNull':![],'defaultValue':_0xcf4e('0x1a'),'set':function(_0x1c2dfb){this['setDataValue'](_0xcf4e('0x1b'),_0x1c2dfb?_0x1c2dfb[_0xcf4e('0x11')](';'):_0xcf4e('0x1a'));},'get':function(){return this['getDataValue'](_0xcf4e('0x1b'))?this[_0xcf4e('0x12')]('allow')[_0xcf4e('0x13')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no')},'insecure':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':_0xcf4e('0x1d'),'set':function(_0x3fc454){this[_0xcf4e('0xf')](_0xcf4e('0x1e'),_0x3fc454?_0x3fc454[_0xcf4e('0x11')](','):null);},'get':function(){return this['getDataValue'](_0xcf4e('0x1e'))?this[_0xcf4e('0x12')](_0xcf4e('0x1e'))[_0xcf4e('0x13')](','):null;},'comment':_0xcf4e('0x1f')},'trustrpid':{'type':Sequelize[_0xcf4e('0x3')]('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no',_0xcf4e('0x20'))},'promiscredir':{'type':Sequelize['ENUM']('yes','no')},'useclientcode':{'type':Sequelize[_0xcf4e('0x3')]('yes','no')},'accountcode':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'setvar':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':_0xcf4e('0x22')},'amaflags':{'type':Sequelize['STRING']},'callcounter':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'allowoverlap':{'type':Sequelize[_0xcf4e('0x3')]('yes','no')},'allowsubscribe':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no')},'allowtransfer':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no')},'ignoresdpversion':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no')},'subscribecontext':{'type':Sequelize[_0xcf4e('0x1')]},'template':{'type':Sequelize[_0xcf4e('0x1')]},'videosupport':{'type':Sequelize['ENUM']('yes','no',_0xcf4e('0x23')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'rfc2833compensate':{'type':Sequelize['ENUM'](_0xcf4e('0x1c'),'no')},'mailbox':{'type':Sequelize[_0xcf4e('0x1')]},'session_timers':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x24'),_0xcf4e('0x25'),'originate')},'session_expires':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'session_minse':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'session_refresher':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x26'),_0xcf4e('0x27')),'defaultValue':_0xcf4e('0x27')},'t38pt_usertpsource':{'type':Sequelize[_0xcf4e('0x1')]},'regexten':{'type':Sequelize[_0xcf4e('0x1')]},'fromdomain':{'type':Sequelize[_0xcf4e('0x1')]},'fromuser':{'type':Sequelize['STRING']},'port':{'type':Sequelize['INTEGER'](0x5)},'qualify':{'type':Sequelize[_0xcf4e('0x3')]('yes','no'),'defaultValue':_0xcf4e('0x1c')},'keepalive':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'defaultip':{'type':Sequelize['STRING']},'defaultuser':{'type':Sequelize['STRING']},'rtptimeout':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'rtpholdtimeout':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'rtpkeepalive':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'sendrpid':{'type':Sequelize['ENUM'](_0xcf4e('0x1c'),'no',_0xcf4e('0x28')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING']},'callbackextension':{'type':Sequelize[_0xcf4e('0x1')]},'timert1':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'timerb':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'qualifyfreq':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'contactpermit':{'type':Sequelize[_0xcf4e('0x1')]},'contactdeny':{'type':Sequelize[_0xcf4e('0x1')]},'contactacl':{'type':Sequelize[_0xcf4e('0x1')]},'unsolicited_mailbox':{'type':Sequelize[_0xcf4e('0x1')]},'use_q850_reason':{'type':Sequelize[_0xcf4e('0x1')]},'maxforwards':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'encryption':{'type':Sequelize[_0xcf4e('0x3')]('yes','no'),'defaultValue':'no'},'avpf':{'type':Sequelize['ENUM'](_0xcf4e('0x1c'),'no')},'force_avp':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no')},'icesupport':{'type':Sequelize['ENUM'](_0xcf4e('0x1c'),'no')},'dtlsenable':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no')},'dtlsverify':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x1c'),'no','fingerprint',_0xcf4e('0x29'))},'dtlsrekey':{'type':Sequelize[_0xcf4e('0x21')](0xb)},'dtlscertfile':{'type':Sequelize[_0xcf4e('0x1')]},'dtlsprivatekey':{'type':Sequelize[_0xcf4e('0x1')]},'dtlscipher':{'type':Sequelize[_0xcf4e('0x1')]},'dtlscafile':{'type':Sequelize['STRING']},'dtlscapath':{'type':Sequelize[_0xcf4e('0x1')]},'dtlssetup':{'type':Sequelize[_0xcf4e('0x3')](_0xcf4e('0x2a'),_0xcf4e('0x2b'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING']},'usereqphone':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING']},'recordofffeature':{'type':Sequelize[_0xcf4e('0x1')]},'call_limit':{'type':Sequelize[_0xcf4e('0x21')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize['ENUM'](_0xcf4e('0x1c'),'no')},'subscribemwi':{'type':Sequelize['ENUM'](_0xcf4e('0x1c'),'no')},'vmexten':{'type':Sequelize[_0xcf4e('0x1')]},'mohinterpret':{'type':Sequelize[_0xcf4e('0x1')]},'mohsuggest':{'type':Sequelize[_0xcf4e('0x1')]},'parkinglot':{'type':Sequelize[_0xcf4e('0x1')]},'description':{'type':Sequelize[_0xcf4e('0x1')]},'host':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':'dynamic'},'canreinvite':{'type':Sequelize[_0xcf4e('0x3')]('yes','no','nonat','update','update,nonat'),'defaultValue':'no'},'registry':{'type':Sequelize[_0xcf4e('0x1')]},'otherFields':{'type':Sequelize[_0xcf4e('0x1')]},'active':{'type':Sequelize[_0xcf4e('0x2c')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0xcf4e('0x1')],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a19=['query','keys','filters','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','show','include','find','clone','params','omit','updatedAt','body','createdAt','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','server/files/templates/trunk.ejs','utf8','root','server/files/templates/registry.ejs','/etc/asterisk/sip_xcally_trunks.conf','registry','render','/etc/asterisk/sip_xcally_registers.conf','chan_sip.so','role','autoAssociation','findAll','readFileSync','writeFileSync','Reload','update','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','destroy','get','Trunks','UserProfileResource','stack','name','index','map','Trunk','rawAttributes','fieldName','type'];(function(_0x558a26,_0x453f23){var _0x539752=function(_0x1be3fc){while(--_0x1be3fc){_0x558a26['push'](_0x558a26['shift']());}};_0x539752(++_0x453f23);}(_0x9a19,0x114));var _0x99a1=function(_0xc0a3d3,_0x2c8d00){_0xc0a3d3=_0xc0a3d3-0x0;var _0x3386e8=_0x9a19[_0xc0a3d3];return _0x3386e8;};'use strict';var emlformat=require(_0x99a1('0x0'));var rimraf=require(_0x99a1('0x1'));var zipdir=require(_0x99a1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x99a1('0x3'));var moment=require(_0x99a1('0x4'));var BPromise=require(_0x99a1('0x5'));var Mustache=require(_0x99a1('0x6'));var util=require(_0x99a1('0x7'));var path=require(_0x99a1('0x8'));var sox=require(_0x99a1('0x9'));var csv=require(_0x99a1('0xa'));var ejs=require(_0x99a1('0xb'));var fs=require('fs');var fs_extra=require(_0x99a1('0xc'));var _=require(_0x99a1('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x99a1('0xe'));var toCsv=require(_0x99a1('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x99a1('0xf'));var authService=require(_0x99a1('0x10'));var qs=require(_0x99a1('0x11'));var as=require(_0x99a1('0x12'));var hardwareService=require(_0x99a1('0x13'));var logger=require('../../config/logger')(_0x99a1('0x14'));var utils=require(_0x99a1('0x15'));var config=require(_0x99a1('0x16'));var licenseUtil=require(_0x99a1('0x17'));var db=require(_0x99a1('0x18'))['db'];var jayson=require(_0x99a1('0x19'));var client=jayson[_0x99a1('0x1a')][_0x99a1('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0xf713b9,_0x40c19c,_0x3a865c,_0x47815e){return new BPromise(function(_0xe1a1f,_0x3c9ef4){var _0x39ee55=_0x47815e||client;return _0x39ee55['request'](_0xf713b9,_0x3a865c)[_0x99a1('0x1c')](function(_0x3e45d4){logger[_0x99a1('0x1d')](_0x99a1('0x1e'),_0x40c19c,_0x99a1('0x1f'));logger[_0x99a1('0x20')](_0x99a1('0x21'),_0x40c19c,'request\x20sent',JSON['stringify'](_0x3e45d4));if(_0x3e45d4[_0x99a1('0x22')]){if(_0x3e45d4[_0x99a1('0x22')][_0x99a1('0x23')]===0x1f4){logger[_0x99a1('0x22')](_0x99a1('0x1e'),_0x40c19c,_0x3e45d4[_0x99a1('0x22')][_0x99a1('0x24')]);return _0x3c9ef4(_0x3e45d4[_0x99a1('0x22')][_0x99a1('0x24')]);}logger[_0x99a1('0x22')](_0x99a1('0x1e'),_0x40c19c,_0x3e45d4['error'][_0x99a1('0x24')]);return _0xe1a1f(_0x3e45d4[_0x99a1('0x22')]['message']);}else{logger[_0x99a1('0x1d')]('Trunk,\x20%s,\x20%s',_0x40c19c,_0x99a1('0x1f'));_0xe1a1f(_0x3e45d4[_0x99a1('0x25')][_0x99a1('0x24')]);}})[_0x99a1('0x26')](function(_0x5a88c6){logger[_0x99a1('0x22')](_0x99a1('0x1e'),_0x40c19c,_0x5a88c6);_0x3c9ef4(_0x5a88c6);});});}function respondWithStatusCode(_0x483c17,_0x44df2d){_0x44df2d=_0x44df2d||0xcc;return function(_0x5b5dfa){if(_0x5b5dfa){return _0x483c17[_0x99a1('0x27')](_0x44df2d);}return _0x483c17[_0x99a1('0x28')](_0x44df2d)[_0x99a1('0x29')]();};}function respondWithResult(_0xdaa27d,_0x3c813){_0x3c813=_0x3c813||0xc8;return function(_0x491341){if(_0x491341){return _0xdaa27d['status'](_0x3c813)[_0x99a1('0x2a')](_0x491341);}};}function respondWithFilteredResult(_0x5dabd9,_0x5dc733){return function(_0xafea84){if(_0xafea84){var _0x440879=typeof _0x5dc733[_0x99a1('0x2b')]===_0x99a1('0x2c')&&typeof _0x5dc733[_0x99a1('0x2d')]===_0x99a1('0x2c');var _0x183037=_0xafea84['count'];var _0xf41b0d=_0x440879?0x0:_0x5dc733['offset'];var _0x255197=_0x440879?_0xafea84[_0x99a1('0x2e')]:_0x5dc733[_0x99a1('0x2b')]+_0x5dc733['limit'];var _0x371edf;if(_0x255197>=_0x183037){_0x255197=_0x183037;_0x371edf=0xc8;}else{_0x371edf=0xce;}_0x5dabd9[_0x99a1('0x28')](_0x371edf);return _0x5dabd9['set'](_0x99a1('0x2f'),_0xf41b0d+'-'+_0x255197+'/'+_0x183037)[_0x99a1('0x2a')](_0xafea84);}return null;};}function patchUpdates(_0x36aa34){return function(_0x303d1e){try{jsonpatch[_0x99a1('0x30')](_0x303d1e,_0x36aa34,!![]);}catch(_0x969f6e){return BPromise[_0x99a1('0x31')](_0x969f6e);}return _0x303d1e[_0x99a1('0x32')]();};}function saveUpdates(_0x52da8d,_0x4960e4){return function(_0x3fa342){if(_0x3fa342){return _0x3fa342['update'](_0x52da8d)[_0x99a1('0x1c')](function(_0x400581){return _0x400581;});}return null;};}function removeEntity(_0x5b1a79,_0xa5972b){return function(_0x3503d5){if(_0x3503d5){return _0x3503d5[_0x99a1('0x33')]()[_0x99a1('0x1c')](function(){var _0x13f4db=_0x3503d5[_0x99a1('0x34')]({'plain':!![]});var _0x3081cd=_0x99a1('0x35');return db[_0x99a1('0x36')][_0x99a1('0x33')]({'where':{'type':_0x3081cd,'resourceId':_0x13f4db['id']}})[_0x99a1('0x1c')](function(){return _0x3503d5;});})[_0x99a1('0x1c')](function(){_0x5b1a79[_0x99a1('0x28')](0xcc)[_0x99a1('0x29')]();});}};}function handleEntityNotFound(_0x55005e,_0x53fed5){return function(_0x46e3f2){if(!_0x46e3f2){_0x55005e[_0x99a1('0x27')](0x194);}return _0x46e3f2;};}function handleError(_0x416a36,_0x4131e0){_0x4131e0=_0x4131e0||0x1f4;return function(_0x2690bd){logger[_0x99a1('0x22')](_0x2690bd[_0x99a1('0x37')]);if(_0x2690bd['name']){delete _0x2690bd[_0x99a1('0x38')];}_0x416a36[_0x99a1('0x28')](_0x4131e0)['send'](_0x2690bd);};}exports[_0x99a1('0x39')]=function(_0x2d328c,_0x391afa){var _0x3cd1a0={},_0x430cbc={},_0x399fd4={'count':0x0,'rows':[]};var _0x30e8a9=_[_0x99a1('0x3a')](db[_0x99a1('0x3b')][_0x99a1('0x3c')],function(_0x1da3e7){return{'name':_0x1da3e7[_0x99a1('0x3d')],'type':_0x1da3e7[_0x99a1('0x3e')]['key']};});_0x430cbc['model']=_['map'](_0x30e8a9,_0x99a1('0x38'));_0x430cbc[_0x99a1('0x3f')]=_[_0x99a1('0x40')](_0x2d328c[_0x99a1('0x3f')]);_0x430cbc[_0x99a1('0x41')]=_['intersection'](_0x430cbc[_0x99a1('0x42')],_0x430cbc[_0x99a1('0x3f')]);_0x3cd1a0[_0x99a1('0x43')]=_['intersection'](_0x430cbc['model'],qs[_0x99a1('0x44')](_0x2d328c[_0x99a1('0x3f')][_0x99a1('0x44')]));_0x3cd1a0['attributes']=_0x3cd1a0[_0x99a1('0x43')][_0x99a1('0x45')]?_0x3cd1a0[_0x99a1('0x43')]:_0x430cbc[_0x99a1('0x42')];if(!_0x2d328c[_0x99a1('0x3f')][_0x99a1('0x46')](_0x99a1('0x47'))){_0x3cd1a0[_0x99a1('0x2d')]=qs[_0x99a1('0x2d')](_0x2d328c[_0x99a1('0x3f')]['limit']);_0x3cd1a0[_0x99a1('0x2b')]=qs[_0x99a1('0x2b')](_0x2d328c[_0x99a1('0x3f')]['offset']);}_0x3cd1a0[_0x99a1('0x48')]=qs['sort'](_0x2d328c[_0x99a1('0x3f')][_0x99a1('0x49')]);_0x3cd1a0[_0x99a1('0x4a')]=qs[_0x99a1('0x41')](_[_0x99a1('0x4b')](_0x2d328c[_0x99a1('0x3f')],_0x430cbc['filters']),_0x30e8a9);if(_0x2d328c[_0x99a1('0x3f')]['filter']){_0x3cd1a0[_0x99a1('0x4a')]=_[_0x99a1('0x4c')](_0x3cd1a0[_0x99a1('0x4a')],{'$or':_[_0x99a1('0x3a')](_0x30e8a9,function(_0x3a0b44){if(_0x3a0b44[_0x99a1('0x3e')]!==_0x99a1('0x4d')){var _0x3861b6={};_0x3861b6[_0x3a0b44[_0x99a1('0x38')]]={'$like':'%'+_0x2d328c[_0x99a1('0x3f')][_0x99a1('0x4e')]+'%'};return _0x3861b6;}})});}_0x3cd1a0=_['merge']({},_0x3cd1a0,_0x2d328c[_0x99a1('0x4f')]);var _0x330e3b={'where':_0x3cd1a0['where']};return db[_0x99a1('0x3b')][_0x99a1('0x2e')](_0x330e3b)[_0x99a1('0x1c')](function(_0x2e377b){_0x399fd4[_0x99a1('0x2e')]=_0x2e377b;if(_0x2d328c[_0x99a1('0x3f')][_0x99a1('0x50')]){_0x3cd1a0['include']=[{'all':!![]}];}return db[_0x99a1('0x3b')]['findAll'](_0x3cd1a0);})[_0x99a1('0x1c')](function(_0x269798){_0x399fd4['rows']=_0x269798;return _0x399fd4;})['then'](respondWithFilteredResult(_0x391afa,_0x3cd1a0))[_0x99a1('0x26')](handleError(_0x391afa,null));};exports[_0x99a1('0x51')]=function(_0x462c15,_0x4519fb){var _0xee2b1b={'raw':![],'where':{'id':_0x462c15['params']['id']}},_0x597836={};_0x597836['model']=_[_0x99a1('0x40')](db[_0x99a1('0x3b')][_0x99a1('0x3c')]);_0x597836[_0x99a1('0x3f')]=_[_0x99a1('0x40')](_0x462c15[_0x99a1('0x3f')]);_0x597836[_0x99a1('0x41')]=_['intersection'](_0x597836[_0x99a1('0x42')],_0x597836[_0x99a1('0x3f')]);_0xee2b1b[_0x99a1('0x43')]=_['intersection'](_0x597836[_0x99a1('0x42')],qs['fields'](_0x462c15['query'][_0x99a1('0x44')]));_0xee2b1b[_0x99a1('0x43')]=_0xee2b1b[_0x99a1('0x43')][_0x99a1('0x45')]?_0xee2b1b[_0x99a1('0x43')]:_0x597836[_0x99a1('0x42')];if(_0x462c15[_0x99a1('0x3f')][_0x99a1('0x50')]){_0xee2b1b[_0x99a1('0x52')]=[{'all':!![]}];}_0xee2b1b=_['merge']({},_0xee2b1b,_0x462c15[_0x99a1('0x4f')]);return db['Trunk'][_0x99a1('0x53')](_0xee2b1b)[_0x99a1('0x1c')](handleEntityNotFound(_0x4519fb,null))['then'](respondWithResult(_0x4519fb,null))[_0x99a1('0x26')](handleError(_0x4519fb,null));};exports[_0x99a1('0x54')]=function(_0x469e10,_0x2b2d63){var _0x2800d5={'where':{'id':_0x469e10[_0x99a1('0x55')]['id']}},_0x1bff78={};_0x1bff78[_0x99a1('0x42')]=_[_0x99a1('0x40')](db[_0x99a1('0x3b')][_0x99a1('0x3c')]);_0x2800d5[_0x99a1('0x43')]=_['intersection'](_0x1bff78['model'],qs[_0x99a1('0x44')](_0x469e10[_0x99a1('0x3f')][_0x99a1('0x44')]));_0x2800d5[_0x99a1('0x43')]=_0x2800d5[_0x99a1('0x43')]['length']?_0x2800d5[_0x99a1('0x43')]:_0x1bff78[_0x99a1('0x42')];if(_0x469e10['query'][_0x99a1('0x50')]){_0x2800d5[_0x99a1('0x52')]=[{'all':!![]}];}_0x2800d5=_[_0x99a1('0x4c')]({},_0x2800d5,_0x469e10[_0x99a1('0x4f')]);return db[_0x99a1('0x3b')]['find'](_0x2800d5)[_0x99a1('0x1c')](handleEntityNotFound(_0x2b2d63,null))[_0x99a1('0x1c')](function(_0x1bb1cb){if(_0x1bb1cb){var _0x22811f=_0x1bb1cb[_0x99a1('0x34')]({'plain':!![]});_0x22811f=qs[_0x99a1('0x56')](_0x22811f,['id','createdAt',_0x99a1('0x57')]);_0x469e10[_0x99a1('0x58')]=_['omit'](_0x469e10[_0x99a1('0x58')],['id',_0x99a1('0x59'),_0x99a1('0x57')]);return db[_0x99a1('0x3b')][_0x99a1('0x5a')](_['merge'](_0x22811f,_0x469e10[_0x99a1('0x58')]),{'include':_0x469e10['query']['includeAll']?[{'all':!![]}]:undefined})['then'](function(_0x38ce3c){var _0x3f7c16=_0x469e10['user']['get']({'plain':!![]});if(!_0x3f7c16)throw new Error(_0x99a1('0x5b'));if(_0x3f7c16['role']===_0x99a1('0x5c')){var _0x263db3=_0x38ce3c[_0x99a1('0x34')]({'plain':!![]});var _0x180c1e='Trunks';return db[_0x99a1('0x5d')][_0x99a1('0x53')]({'where':{'name':_0x180c1e,'userProfileId':_0x3f7c16[_0x99a1('0x5e')]},'raw':!![]})['then'](function(_0x3a62c6){if(_0x3a62c6&&_0x3a62c6['autoAssociation']===0x0){return db[_0x99a1('0x36')][_0x99a1('0x5a')]({'name':_0x263db3[_0x99a1('0x38')],'resourceId':_0x263db3['id'],'type':_0x3a62c6[_0x99a1('0x38')],'sectionId':_0x3a62c6['id']},{})[_0x99a1('0x1c')](function(){return _0x38ce3c;});}else{return _0x38ce3c;}})['catch'](function(_0x4d37f8){logger['error'](_0x99a1('0x5f'),_0x4d37f8);throw _0x4d37f8;});}return _0x38ce3c;});}})[_0x99a1('0x1c')](respondWithResult(_0x2b2d63,0xc9))['catch'](handleError(_0x2b2d63,null));};exports['create']=function(_0x1fe7af,_0x2f5587,_0x401c8f){var _0x509d4f;return db['Trunk'][_0x99a1('0x5a')](_0x1fe7af['body'],{'raw':!![]})[_0x99a1('0x1c')](function(_0x129690){_0x509d4f=_0x129690;return db[_0x99a1('0x3b')]['findAll']({'raw':!![]});})[_0x99a1('0x1c')](function(_0x28c7d8){var _0x4ac99e=fs['readFileSync'](path[_0x99a1('0x60')](config['root'],_0x99a1('0x61')),_0x99a1('0x62'));var _0x30a0a5=fs['readFileSync'](path[_0x99a1('0x60')](config[_0x99a1('0x63')],_0x99a1('0x64')),_0x99a1('0x62'));var _0x3d0ff6=ejs['render'](_0x4ac99e,{'trunks':_0x28c7d8||[]});fs['writeFileSync'](_0x99a1('0x65'),_0x3d0ff6);if(_0x509d4f[_0x99a1('0x66')]){var _0x1750d5=ejs[_0x99a1('0x67')](_0x30a0a5,{'trunks':_0x28c7d8||[]});fs['writeFileSync'](_0x99a1('0x68'),_0x1750d5);}})['then'](function(){return respondWithRpcPromise('Reload',_0x99a1('0x5a'),{'module':_0x99a1('0x69')});})[_0x99a1('0x1c')](function(){var _0x525969=_0x1fe7af[_0x99a1('0x5c')][_0x99a1('0x34')]({'plain':!![]});if(!_0x525969)throw new Error(_0x99a1('0x5b'));if(_0x525969[_0x99a1('0x6a')]===_0x99a1('0x5c')){var _0x4ae313=_0x509d4f[_0x99a1('0x34')]({'plain':!![]});return db[_0x99a1('0x5d')][_0x99a1('0x53')]({'where':{'name':_0x99a1('0x35'),'userProfileId':_0x525969[_0x99a1('0x5e')]},'raw':!![]})[_0x99a1('0x1c')](function(_0x5e42be){if(_0x5e42be&&_0x5e42be[_0x99a1('0x6b')]===0x0){return db[_0x99a1('0x36')][_0x99a1('0x5a')]({'name':_0x4ae313[_0x99a1('0x38')],'resourceId':_0x4ae313['id'],'type':_0x5e42be[_0x99a1('0x38')],'sectionId':_0x5e42be['id']},{})['then'](function(){return _0x509d4f;});}else{return _0x509d4f;}})[_0x99a1('0x26')](function(_0x68c944){logger[_0x99a1('0x22')](_0x99a1('0x5f'),_0x68c944);throw _0x68c944;});}return _0x509d4f;})[_0x99a1('0x1c')](respondWithResult(_0x2f5587,0xc9))[_0x99a1('0x26')](handleError(_0x2f5587,null));};exports['update']=function(_0xaa953e,_0x33d96b,_0x4a5617){var _0x56716a;return db[_0x99a1('0x3b')][_0x99a1('0x53')]({'where':{'id':_0xaa953e['params']['id']}})[_0x99a1('0x1c')](handleEntityNotFound(_0x33d96b,null))[_0x99a1('0x1c')](saveUpdates(_0xaa953e[_0x99a1('0x58')],null))[_0x99a1('0x1c')](function(_0x43156f){if(_0x43156f){_0x56716a=_0x43156f;return db[_0x99a1('0x3b')][_0x99a1('0x6c')]({'raw':!![]});}})[_0x99a1('0x1c')](function(_0x4260d7){if(_0x4260d7){var _0x3e099c=fs[_0x99a1('0x6d')](path[_0x99a1('0x60')](config[_0x99a1('0x63')],'server/files/templates/trunk.ejs'),_0x99a1('0x62'));var _0x5a9a7d=fs['readFileSync'](path[_0x99a1('0x60')](config[_0x99a1('0x63')],_0x99a1('0x64')),_0x99a1('0x62'));var _0xbbbe26=ejs[_0x99a1('0x67')](_0x3e099c,{'trunks':_0x4260d7||[]});fs[_0x99a1('0x6e')](_0x99a1('0x65'),_0xbbbe26);var _0x361ce6=ejs['render'](_0x5a9a7d,{'trunks':_0x4260d7||[]});fs[_0x99a1('0x6e')](_0x99a1('0x68'),_0x361ce6);return respondWithRpcPromise(_0x99a1('0x6f'),_0x99a1('0x70'),{'module':_0x99a1('0x69')});}return null;})[_0x99a1('0x1c')](function(_0x6dab29){if(_0x6dab29){return _0x56716a;}})[_0x99a1('0x1c')](respondWithResult(_0x33d96b,null))['catch'](handleError(_0x33d96b,null));};exports['destroy']=function(_0x51c289,_0x2dd29b,_0x353f25){var _0x53cdb3;return db[_0x99a1('0x3b')][_0x99a1('0x53')]({'where':{'id':_0x51c289[_0x99a1('0x55')]['id']}})[_0x99a1('0x1c')](handleEntityNotFound(_0x2dd29b,null))['then'](removeEntity(_0x2dd29b,null))[_0x99a1('0x1c')](function(){return db[_0x99a1('0x3b')][_0x99a1('0x6c')]({'raw':!![]});})[_0x99a1('0x1c')](function(_0x4e9fe9){var _0x24aa05=fs['readFileSync'](path['join'](config['root'],_0x99a1('0x61')),'utf8');var _0xb7744c=fs[_0x99a1('0x6d')](path[_0x99a1('0x60')](config[_0x99a1('0x63')],_0x99a1('0x64')),_0x99a1('0x62'));var _0x444e43=ejs['render'](_0x24aa05,{'trunks':_0x4e9fe9});var _0x4fcd65=ejs[_0x99a1('0x67')](_0xb7744c,{'trunks':_0x4e9fe9});fs[_0x99a1('0x6e')](_0x99a1('0x65'),_0x444e43);fs['writeFileSync'](_0x99a1('0x68'),_0x4fcd65);return respondWithRpcPromise(_0x99a1('0x6f'),_0x99a1('0x33'),{'module':'chan_sip.so'});})[_0x99a1('0x26')](handleError(_0x2dd29b,null));};
\ No newline at end of file
+var _0x9957=['clone','includeAll','merge','get','omit','createdAt','updatedAt','body','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findAll','readFileSync','join','root','server/files/templates/trunk.ejs','utf8','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','update','destroy','Trunks','stack','name','send','map','Trunk','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','type','filter','options','include','rows','show','params','find'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x9957,0x93));var _0x7995=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x9957[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require(_0x7995('0x0'));var rimraf=require(_0x7995('0x1'));var zipdir=require(_0x7995('0x2'));var jsonpatch=require(_0x7995('0x3'));var rp=require('request-promise');var moment=require(_0x7995('0x4'));var BPromise=require(_0x7995('0x5'));var Mustache=require(_0x7995('0x6'));var util=require(_0x7995('0x7'));var path=require('path');var sox=require(_0x7995('0x8'));var csv=require(_0x7995('0x9'));var ejs=require(_0x7995('0xa'));var fs=require('fs');var fs_extra=require(_0x7995('0xb'));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 authService=require(_0x7995('0x13'));var qs=require(_0x7995('0x14'));var as=require(_0x7995('0x15'));var hardwareService=require(_0x7995('0x16'));var logger=require('../../config/logger')(_0x7995('0x17'));var utils=require(_0x7995('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x7995('0x19'));var db=require(_0x7995('0x1a'))['db'];var jayson=require(_0x7995('0x1b'));var client=jayson[_0x7995('0x1c')][_0x7995('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x23999f,_0x2bbe7a,_0x4cc004,_0x58f5ad){return new BPromise(function(_0x2b4e94,_0x2233dd){var _0x24b5bb=_0x58f5ad||client;return _0x24b5bb[_0x7995('0x1e')](_0x23999f,_0x4cc004)[_0x7995('0x1f')](function(_0x1a5310){logger[_0x7995('0x20')](_0x7995('0x21'),_0x2bbe7a,'request\x20sent');logger[_0x7995('0x22')]('Trunk,\x20%s,\x20%s,\x20%s',_0x2bbe7a,_0x7995('0x23'),JSON[_0x7995('0x24')](_0x1a5310));if(_0x1a5310[_0x7995('0x25')]){if(_0x1a5310[_0x7995('0x25')][_0x7995('0x26')]===0x1f4){logger[_0x7995('0x25')]('Trunk,\x20%s,\x20%s',_0x2bbe7a,_0x1a5310['error'][_0x7995('0x27')]);return _0x2233dd(_0x1a5310['error']['message']);}logger[_0x7995('0x25')](_0x7995('0x21'),_0x2bbe7a,_0x1a5310['error'][_0x7995('0x27')]);return _0x2b4e94(_0x1a5310['error']['message']);}else{logger[_0x7995('0x20')](_0x7995('0x21'),_0x2bbe7a,_0x7995('0x23'));_0x2b4e94(_0x1a5310[_0x7995('0x28')][_0x7995('0x27')]);}})[_0x7995('0x29')](function(_0x5d40ae){logger[_0x7995('0x25')](_0x7995('0x21'),_0x2bbe7a,_0x5d40ae);_0x2233dd(_0x5d40ae);});});}function respondWithStatusCode(_0x204507,_0x285437){_0x285437=_0x285437||0xcc;return function(_0x563799){if(_0x563799){return _0x204507[_0x7995('0x2a')](_0x285437);}return _0x204507[_0x7995('0x2b')](_0x285437)[_0x7995('0x2c')]();};}function respondWithResult(_0x59405a,_0x39df42){_0x39df42=_0x39df42||0xc8;return function(_0x34e70c){if(_0x34e70c){return _0x59405a[_0x7995('0x2b')](_0x39df42)[_0x7995('0x2d')](_0x34e70c);}};}function respondWithFilteredResult(_0x3a3fcf,_0x2a307e){return function(_0x56691a){if(_0x56691a){var _0x47625f=typeof _0x2a307e['offset']===_0x7995('0x2e')&&typeof _0x2a307e[_0x7995('0x2f')]===_0x7995('0x2e');var _0x132a42=_0x56691a[_0x7995('0x30')];var _0x4b6f99=_0x47625f?0x0:_0x2a307e[_0x7995('0x31')];var _0x514445=_0x47625f?_0x56691a[_0x7995('0x30')]:_0x2a307e[_0x7995('0x31')]+_0x2a307e[_0x7995('0x2f')];var _0x574574;if(_0x514445>=_0x132a42){_0x514445=_0x132a42;_0x574574=0xc8;}else{_0x574574=0xce;}_0x3a3fcf['status'](_0x574574);return _0x3a3fcf['set'](_0x7995('0x32'),_0x4b6f99+'-'+_0x514445+'/'+_0x132a42)[_0x7995('0x2d')](_0x56691a);}return null;};}function patchUpdates(_0x327a81){return function(_0x2b874d){try{jsonpatch[_0x7995('0x33')](_0x2b874d,_0x327a81,!![]);}catch(_0x1ca460){return BPromise['reject'](_0x1ca460);}return _0x2b874d['save']();};}function saveUpdates(_0xfa8f15,_0x5524af){return function(_0x553671){if(_0x553671){return _0x553671[_0x7995('0x34')](_0xfa8f15)[_0x7995('0x1f')](function(_0x1e9fa4){return _0x1e9fa4;});}return null;};}function removeEntity(_0x1f7d27,_0x510841){return function(_0x44309d){if(_0x44309d){return _0x44309d[_0x7995('0x35')]()['then'](function(){var _0x48db25=_0x44309d['get']({'plain':!![]});var _0x45bc5e=_0x7995('0x36');return db['UserProfileResource'][_0x7995('0x35')]({'where':{'type':_0x45bc5e,'resourceId':_0x48db25['id']}})['then'](function(){return _0x44309d;});})[_0x7995('0x1f')](function(){_0x1f7d27[_0x7995('0x2b')](0xcc)[_0x7995('0x2c')]();});}};}function handleEntityNotFound(_0x5014d2,_0x52d76d){return function(_0x36d057){if(!_0x36d057){_0x5014d2['sendStatus'](0x194);}return _0x36d057;};}function handleError(_0x5d2428,_0x3e99cd){_0x3e99cd=_0x3e99cd||0x1f4;return function(_0xe328b1){logger['error'](_0xe328b1[_0x7995('0x37')]);if(_0xe328b1[_0x7995('0x38')]){delete _0xe328b1[_0x7995('0x38')];}_0x5d2428[_0x7995('0x2b')](_0x3e99cd)[_0x7995('0x39')](_0xe328b1);};}exports['index']=function(_0x2d4285,_0x242713){var _0xf612e6={},_0x1d60b8={},_0x4b1541={'count':0x0,'rows':[]};var _0x2be2c0=_[_0x7995('0x3a')](db[_0x7995('0x3b')][_0x7995('0x3c')],function(_0x1f5bee){return{'name':_0x1f5bee[_0x7995('0x3d')],'type':_0x1f5bee['type'][_0x7995('0x3e')]};});_0x1d60b8[_0x7995('0x3f')]=_[_0x7995('0x3a')](_0x2be2c0,_0x7995('0x38'));_0x1d60b8[_0x7995('0x40')]=_[_0x7995('0x41')](_0x2d4285[_0x7995('0x40')]);_0x1d60b8[_0x7995('0x42')]=_[_0x7995('0x43')](_0x1d60b8[_0x7995('0x3f')],_0x1d60b8[_0x7995('0x40')]);_0xf612e6[_0x7995('0x44')]=_[_0x7995('0x43')](_0x1d60b8['model'],qs['fields'](_0x2d4285[_0x7995('0x40')][_0x7995('0x45')]));_0xf612e6['attributes']=_0xf612e6['attributes'][_0x7995('0x46')]?_0xf612e6['attributes']:_0x1d60b8['model'];if(!_0x2d4285[_0x7995('0x40')][_0x7995('0x47')](_0x7995('0x48'))){_0xf612e6['limit']=qs[_0x7995('0x2f')](_0x2d4285['query'][_0x7995('0x2f')]);_0xf612e6['offset']=qs['offset'](_0x2d4285[_0x7995('0x40')][_0x7995('0x31')]);}_0xf612e6[_0x7995('0x49')]=qs[_0x7995('0x4a')](_0x2d4285['query'][_0x7995('0x4a')]);_0xf612e6[_0x7995('0x4b')]=qs[_0x7995('0x42')](_[_0x7995('0x4c')](_0x2d4285['query'],_0x1d60b8['filters']),_0x2be2c0);if(_0x2d4285[_0x7995('0x40')]['filter']){_0xf612e6[_0x7995('0x4b')]=_['merge'](_0xf612e6[_0x7995('0x4b')],{'$or':_['map'](_0x2be2c0,function(_0x1e795e){if(_0x1e795e[_0x7995('0x4d')]!=='VIRTUAL'){var _0x3e9e62={};_0x3e9e62[_0x1e795e[_0x7995('0x38')]]={'$like':'%'+_0x2d4285[_0x7995('0x40')][_0x7995('0x4e')]+'%'};return _0x3e9e62;}})});}_0xf612e6=_['merge']({},_0xf612e6,_0x2d4285[_0x7995('0x4f')]);var _0x3e787d={'where':_0xf612e6[_0x7995('0x4b')]};return db['Trunk'][_0x7995('0x30')](_0x3e787d)[_0x7995('0x1f')](function(_0x511567){_0x4b1541[_0x7995('0x30')]=_0x511567;if(_0x2d4285[_0x7995('0x40')]['includeAll']){_0xf612e6[_0x7995('0x50')]=[{'all':!![]}];}return db[_0x7995('0x3b')]['findAll'](_0xf612e6);})[_0x7995('0x1f')](function(_0x5843ba){_0x4b1541[_0x7995('0x51')]=_0x5843ba;return _0x4b1541;})[_0x7995('0x1f')](respondWithFilteredResult(_0x242713,_0xf612e6))[_0x7995('0x29')](handleError(_0x242713,null));};exports[_0x7995('0x52')]=function(_0xddf537,_0x14b537){var _0x1579b9={'raw':![],'where':{'id':_0xddf537[_0x7995('0x53')]['id']}},_0x4d46bc={};_0x4d46bc[_0x7995('0x3f')]=_[_0x7995('0x41')](db['Trunk'][_0x7995('0x3c')]);_0x4d46bc[_0x7995('0x40')]=_[_0x7995('0x41')](_0xddf537['query']);_0x4d46bc['filters']=_['intersection'](_0x4d46bc[_0x7995('0x3f')],_0x4d46bc[_0x7995('0x40')]);_0x1579b9['attributes']=_[_0x7995('0x43')](_0x4d46bc[_0x7995('0x3f')],qs[_0x7995('0x45')](_0xddf537[_0x7995('0x40')][_0x7995('0x45')]));_0x1579b9['attributes']=_0x1579b9[_0x7995('0x44')]['length']?_0x1579b9[_0x7995('0x44')]:_0x4d46bc[_0x7995('0x3f')];if(_0xddf537[_0x7995('0x40')]['includeAll']){_0x1579b9['include']=[{'all':!![]}];}_0x1579b9=_['merge']({},_0x1579b9,_0xddf537['options']);return db[_0x7995('0x3b')][_0x7995('0x54')](_0x1579b9)[_0x7995('0x1f')](handleEntityNotFound(_0x14b537,null))[_0x7995('0x1f')](respondWithResult(_0x14b537,null))[_0x7995('0x29')](handleError(_0x14b537,null));};exports[_0x7995('0x55')]=function(_0x1f4270,_0xda6ce8){var _0x328671={'where':{'id':_0x1f4270[_0x7995('0x53')]['id']}},_0x17ecd3={};_0x17ecd3[_0x7995('0x3f')]=_[_0x7995('0x41')](db[_0x7995('0x3b')][_0x7995('0x3c')]);_0x328671[_0x7995('0x44')]=_[_0x7995('0x43')](_0x17ecd3[_0x7995('0x3f')],qs[_0x7995('0x45')](_0x1f4270['query'][_0x7995('0x45')]));_0x328671[_0x7995('0x44')]=_0x328671[_0x7995('0x44')][_0x7995('0x46')]?_0x328671['attributes']:_0x17ecd3['model'];if(_0x1f4270[_0x7995('0x40')][_0x7995('0x56')]){_0x328671[_0x7995('0x50')]=[{'all':!![]}];}_0x328671=_[_0x7995('0x57')]({},_0x328671,_0x1f4270['options']);return db[_0x7995('0x3b')][_0x7995('0x54')](_0x328671)[_0x7995('0x1f')](handleEntityNotFound(_0xda6ce8,null))[_0x7995('0x1f')](function(_0x502d43){if(_0x502d43){var _0x5e2d97=_0x502d43[_0x7995('0x58')]({'plain':!![]});_0x5e2d97=qs[_0x7995('0x59')](_0x5e2d97,['id',_0x7995('0x5a'),_0x7995('0x5b')]);_0x1f4270[_0x7995('0x5c')]=_[_0x7995('0x59')](_0x1f4270[_0x7995('0x5c')],['id',_0x7995('0x5a'),_0x7995('0x5b')]);return db['Trunk'][_0x7995('0x5d')](_[_0x7995('0x57')](_0x5e2d97,_0x1f4270[_0x7995('0x5c')]),{'include':_0x1f4270[_0x7995('0x40')]['includeAll']?[{'all':!![]}]:undefined})['then'](function(_0x3053fd){var _0xebb5c8=_0x1f4270['user'][_0x7995('0x58')]({'plain':!![]});if(!_0xebb5c8)throw new Error(_0x7995('0x5e'));if(_0xebb5c8[_0x7995('0x5f')]===_0x7995('0x60')){var _0x32cb04=_0x3053fd['get']({'plain':!![]});var _0x457d09='Trunks';return db[_0x7995('0x61')][_0x7995('0x54')]({'where':{'name':_0x457d09,'userProfileId':_0xebb5c8[_0x7995('0x62')]},'raw':!![]})[_0x7995('0x1f')](function(_0x4388c1){if(_0x4388c1&&_0x4388c1[_0x7995('0x63')]===0x0){return db[_0x7995('0x64')][_0x7995('0x5d')]({'name':_0x32cb04[_0x7995('0x38')],'resourceId':_0x32cb04['id'],'type':_0x4388c1[_0x7995('0x38')],'sectionId':_0x4388c1['id']},{})[_0x7995('0x1f')](function(){return _0x3053fd;});}else{return _0x3053fd;}})[_0x7995('0x29')](function(_0x56eb85){logger[_0x7995('0x25')](_0x7995('0x65'),_0x56eb85);throw _0x56eb85;});}return _0x3053fd;});}})[_0x7995('0x1f')](respondWithResult(_0xda6ce8,0xc9))[_0x7995('0x29')](handleError(_0xda6ce8,null));};exports[_0x7995('0x5d')]=function(_0x54a2e0,_0x4b54f2,_0x268fde){var _0x87e38d;return db[_0x7995('0x3b')][_0x7995('0x5d')](_0x54a2e0['body'],{'raw':!![]})[_0x7995('0x1f')](function(_0x50a12e){_0x87e38d=_0x50a12e;return db['Trunk'][_0x7995('0x66')]({'raw':!![]});})[_0x7995('0x1f')](function(_0x3f0a71){var _0x44bf2b=fs[_0x7995('0x67')](path[_0x7995('0x68')](config[_0x7995('0x69')],_0x7995('0x6a')),_0x7995('0x6b'));var _0x2466df=fs['readFileSync'](path[_0x7995('0x68')](config[_0x7995('0x69')],_0x7995('0x6c')),'utf8');var _0x1fe1cb=ejs[_0x7995('0x6d')](_0x44bf2b,{'trunks':_0x3f0a71||[]});fs[_0x7995('0x6e')](_0x7995('0x6f'),_0x1fe1cb);if(_0x87e38d[_0x7995('0x70')]){var _0x51ab1e=ejs[_0x7995('0x6d')](_0x2466df,{'trunks':_0x3f0a71||[]});fs[_0x7995('0x6e')](_0x7995('0x71'),_0x51ab1e);}})[_0x7995('0x1f')](function(){return respondWithRpcPromise(_0x7995('0x72'),'create',{'module':'chan_sip.so'});})[_0x7995('0x1f')](function(){var _0xfe1105=_0x54a2e0[_0x7995('0x60')][_0x7995('0x58')]({'plain':!![]});if(!_0xfe1105)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xfe1105[_0x7995('0x5f')]===_0x7995('0x60')){var _0x54b955=_0x87e38d['get']({'plain':!![]});return db[_0x7995('0x61')][_0x7995('0x54')]({'where':{'name':'Trunks','userProfileId':_0xfe1105[_0x7995('0x62')]},'raw':!![]})['then'](function(_0x3758f9){if(_0x3758f9&&_0x3758f9[_0x7995('0x63')]===0x0){return db['UserProfileResource']['create']({'name':_0x54b955[_0x7995('0x38')],'resourceId':_0x54b955['id'],'type':_0x3758f9['name'],'sectionId':_0x3758f9['id']},{})[_0x7995('0x1f')](function(){return _0x87e38d;});}else{return _0x87e38d;}})[_0x7995('0x29')](function(_0x3dd197){logger[_0x7995('0x25')](_0x7995('0x65'),_0x3dd197);throw _0x3dd197;});}return _0x87e38d;})[_0x7995('0x1f')](respondWithResult(_0x4b54f2,0xc9))[_0x7995('0x29')](handleError(_0x4b54f2,null));};exports[_0x7995('0x34')]=function(_0x29e0ee,_0x117317,_0x1ab590){var _0x16108c;return db[_0x7995('0x3b')][_0x7995('0x54')]({'where':{'id':_0x29e0ee[_0x7995('0x53')]['id']}})[_0x7995('0x1f')](handleEntityNotFound(_0x117317,null))[_0x7995('0x1f')](saveUpdates(_0x29e0ee[_0x7995('0x5c')],null))[_0x7995('0x1f')](function(_0xa2fc8e){if(_0xa2fc8e){_0x16108c=_0xa2fc8e;return db[_0x7995('0x3b')][_0x7995('0x66')]({'raw':!![]});}})[_0x7995('0x1f')](function(_0x280fbb){if(_0x280fbb){var _0x260ef1=fs[_0x7995('0x67')](path[_0x7995('0x68')](config[_0x7995('0x69')],'server/files/templates/trunk.ejs'),_0x7995('0x6b'));var _0x10f4ca=fs['readFileSync'](path['join'](config[_0x7995('0x69')],_0x7995('0x6c')),_0x7995('0x6b'));var _0x38acda=ejs[_0x7995('0x6d')](_0x260ef1,{'trunks':_0x280fbb||[]});fs[_0x7995('0x6e')]('/etc/asterisk/sip_xcally_trunks.conf',_0x38acda);var _0x2f8a2d=ejs[_0x7995('0x6d')](_0x10f4ca,{'trunks':_0x280fbb||[]});fs[_0x7995('0x6e')](_0x7995('0x71'),_0x2f8a2d);return respondWithRpcPromise(_0x7995('0x72'),_0x7995('0x34'),{'module':_0x7995('0x73')});}return null;})[_0x7995('0x1f')](function(_0x560095){if(_0x560095){return _0x16108c;}})[_0x7995('0x1f')](respondWithResult(_0x117317,null))[_0x7995('0x29')](handleError(_0x117317,null));};exports['destroy']=function(_0x479271,_0xd24c64,_0xf8c2ed){var _0x18e1a2;return db[_0x7995('0x3b')][_0x7995('0x54')]({'where':{'id':_0x479271['params']['id']}})[_0x7995('0x1f')](handleEntityNotFound(_0xd24c64,null))[_0x7995('0x1f')](removeEntity(_0xd24c64,null))['then'](function(){return db[_0x7995('0x3b')][_0x7995('0x66')]({'raw':!![]});})['then'](function(_0x1535a3){var _0x4a5bc5=fs[_0x7995('0x67')](path[_0x7995('0x68')](config[_0x7995('0x69')],_0x7995('0x6a')),_0x7995('0x6b'));var _0x5d16da=fs[_0x7995('0x67')](path[_0x7995('0x68')](config[_0x7995('0x69')],'server/files/templates/registry.ejs'),_0x7995('0x6b'));var _0x3f3434=ejs[_0x7995('0x6d')](_0x4a5bc5,{'trunks':_0x1535a3});var _0x308a26=ejs['render'](_0x5d16da,{'trunks':_0x1535a3});fs[_0x7995('0x6e')](_0x7995('0x6f'),_0x3f3434);fs[_0x7995('0x6e')]('/etc/asterisk/sip_xcally_registers.conf',_0x308a26);return respondWithRpcPromise('Reload',_0x7995('0x35'),{'module':_0x7995('0x73')});})['catch'](handleError(_0xd24c64,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67af=['../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','define','Trunk','util'];(function(_0x513bfd,_0x85dc7d){var _0x47ce5e=function(_0x1fd04b){while(--_0x1fd04b){_0x513bfd['push'](_0x513bfd['shift']());}};_0x47ce5e(++_0x85dc7d);}(_0x67af,0x1dc));var _0xf67a=function(_0x1b2422,_0x1e98d4){_0x1b2422=_0x1b2422-0x0;var _0x376573=_0x67af[_0x1b2422];return _0x376573;};'use strict';var _=require('lodash');var util=require(_0xf67a('0x0'));var logger=require(_0xf67a('0x1'))('api');var moment=require('moment');var BPromise=require(_0xf67a('0x2'));var rp=require(_0xf67a('0x3'));var fs=require('fs');var path=require(_0xf67a('0x4'));var rimraf=require(_0xf67a('0x5'));var config=require(_0xf67a('0x6'));var attributes=require('./trunk.attributes');module['exports']=function(_0x56986a,_0x5bfa2e){return _0x56986a[_0xf67a('0x7')](_0xf67a('0x8'),attributes,{'tableName':'tools_trunks','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7eec=['moment','bluebird','request-promise','path','rimraf','../../config/environment','Trunk','tools_trunks','lodash','../../config/logger','api'];(function(_0x5c8834,_0x42c46e){var _0x1fb693=function(_0x4c75ad){while(--_0x4c75ad){_0x5c8834['push'](_0x5c8834['shift']());}};_0x1fb693(++_0x42c46e);}(_0x7eec,0x168));var _0xc7ee=function(_0x41e159,_0x151525){_0x41e159=_0x41e159-0x0;var _0x593617=_0x7eec[_0x41e159];return _0x593617;};'use strict';var _=require(_0xc7ee('0x0'));var util=require('util');var logger=require(_0xc7ee('0x1'))(_0xc7ee('0x2'));var moment=require(_0xc7ee('0x3'));var BPromise=require(_0xc7ee('0x4'));var rp=require(_0xc7ee('0x5'));var fs=require('fs');var path=require(_0xc7ee('0x6'));var rimraf=require(_0xc7ee('0x7'));var config=require(_0xc7ee('0x8'));var attributes=require('./trunk.attributes');module['exports']=function(_0x109a87,_0x1e88a9){return _0x109a87['define'](_0xc7ee('0x9'),attributes,{'tableName':_0xc7ee('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x69f5=['raw','attributes','limit','include','map','model','info','where','ShowTrunk','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetTrunk','Trunk','options'];(function(_0x256d6a,_0x2f002f){var _0x460058=function(_0x195be7){while(--_0x195be7){_0x256d6a['push'](_0x256d6a['shift']());}};_0x460058(++_0x2f002f);}(_0x69f5,0x18a));var _0x569f=function(_0x4e7d25,_0x58285f){_0x4e7d25=_0x4e7d25-0x0;var _0x526fe6=_0x69f5[_0x4e7d25];return _0x526fe6;};'use strict';var _=require(_0x569f('0x0'));var util=require(_0x569f('0x1'));var moment=require(_0x569f('0x2'));var BPromise=require(_0x569f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x569f('0x4'))['db'];var utils=require(_0x569f('0x5'));var logger=require(_0x569f('0x6'))(_0x569f('0x7'));var config=require('../../config/environment');var jayson=require(_0x569f('0x8'));var client=jayson[_0x569f('0x9')][_0x569f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2c2b6f,_0x25abdc,_0x17f08a){return new BPromise(function(_0x558efa,_0x11bde8){return client[_0x569f('0xb')](_0x2c2b6f,_0x17f08a)[_0x569f('0xc')](function(_0x982b16){logger['info'](_0x569f('0xd'),_0x25abdc,_0x569f('0xe'));logger[_0x569f('0xf')](_0x569f('0x10'),_0x25abdc,'request\x20sent',JSON[_0x569f('0x11')](_0x982b16));if(_0x982b16[_0x569f('0x12')]){if(_0x982b16[_0x569f('0x12')][_0x569f('0x13')]===0x1f4){logger[_0x569f('0x12')](_0x569f('0xd'),_0x25abdc,_0x982b16[_0x569f('0x12')][_0x569f('0x14')]);return _0x11bde8(_0x982b16[_0x569f('0x12')]['message']);}logger[_0x569f('0x12')](_0x569f('0xd'),_0x25abdc,_0x982b16[_0x569f('0x12')]['message']);return _0x558efa(_0x982b16[_0x569f('0x12')]['message']);}else{logger['info'](_0x569f('0xd'),_0x25abdc,_0x569f('0xe'));_0x558efa(_0x982b16[_0x569f('0x15')][_0x569f('0x14')]);}})[_0x569f('0x16')](function(_0x48b811){logger[_0x569f('0x12')](_0x569f('0xd'),_0x25abdc,_0x48b811);_0x11bde8(_0x48b811);});});}exports[_0x569f('0x17')]=function(_0x1d8af7){var _0x3b43ea=this;return new Promise(function(_0x4c1179,_0x3c45a5){return db[_0x569f('0x18')]['findAll']({'raw':_0x1d8af7[_0x569f('0x19')]?_0x1d8af7[_0x569f('0x19')][_0x569f('0x1a')]===undefined?!![]:![]:!![],'where':_0x1d8af7[_0x569f('0x19')]?_0x1d8af7[_0x569f('0x19')]['where']||null:null,'attributes':_0x1d8af7['options']?_0x1d8af7[_0x569f('0x19')][_0x569f('0x1b')]||null:null,'limit':_0x1d8af7[_0x569f('0x19')]?_0x1d8af7[_0x569f('0x19')][_0x569f('0x1c')]||null:null,'include':_0x1d8af7[_0x569f('0x19')]?_0x1d8af7['options'][_0x569f('0x1d')]?_[_0x569f('0x1e')](_0x1d8af7[_0x569f('0x19')][_0x569f('0x1d')],function(_0x2489fe){return{'model':db[_0x2489fe['model']],'as':_0x2489fe['as'],'attributes':_0x2489fe[_0x569f('0x1b')],'include':_0x2489fe[_0x569f('0x1d')]?_[_0x569f('0x1e')](_0x2489fe[_0x569f('0x1d')],function(_0x1b5142){return{'model':db[_0x1b5142['model']],'as':_0x1b5142['as'],'attributes':_0x1b5142[_0x569f('0x1b')],'include':_0x1b5142[_0x569f('0x1d')]?_['map'](_0x1b5142[_0x569f('0x1d')],function(_0xa2d54){return{'model':db[_0xa2d54[_0x569f('0x1f')]],'as':_0xa2d54['as'],'attributes':_0xa2d54[_0x569f('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x569f('0xc')](function(_0x2f1a1d){logger[_0x569f('0x20')](_0x569f('0x17'),_0x1d8af7);logger['debug'](_0x569f('0x17'),_0x1d8af7,JSON[_0x569f('0x11')](_0x2f1a1d));_0x4c1179(_0x2f1a1d);})[_0x569f('0x16')](function(_0x2db5cb){logger['error'](_0x569f('0x17'),_0x2db5cb['message'],_0x1d8af7);_0x3c45a5(_0x3b43ea[_0x569f('0x12')](0x1f4,_0x2db5cb[_0x569f('0x14')]));});});};exports['ShowTrunk']=function(_0x54cb59){var _0xeaf590=this;return new Promise(function(_0x2e35cc,_0x2b352b){return db[_0x569f('0x18')]['find']({'raw':_0x54cb59['options']?_0x54cb59[_0x569f('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x54cb59[_0x569f('0x19')]?_0x54cb59[_0x569f('0x19')][_0x569f('0x21')]||null:null,'attributes':_0x54cb59[_0x569f('0x19')]?_0x54cb59['options'][_0x569f('0x1b')]||null:null,'include':_0x54cb59['options']?_0x54cb59['options'][_0x569f('0x1d')]?_[_0x569f('0x1e')](_0x54cb59[_0x569f('0x19')]['include'],function(_0x47560c){return{'model':db[_0x47560c[_0x569f('0x1f')]],'as':_0x47560c['as'],'attributes':_0x47560c[_0x569f('0x1b')],'include':_0x47560c[_0x569f('0x1d')]?_[_0x569f('0x1e')](_0x47560c[_0x569f('0x1d')],function(_0x2eac09){return{'model':db[_0x2eac09[_0x569f('0x1f')]],'as':_0x2eac09['as'],'attributes':_0x2eac09[_0x569f('0x1b')],'include':_0x2eac09[_0x569f('0x1d')]?_[_0x569f('0x1e')](_0x2eac09[_0x569f('0x1d')],function(_0x227f98){return{'model':db[_0x227f98['model']],'as':_0x227f98['as'],'attributes':_0x227f98[_0x569f('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x569f('0xc')](function(_0x2b4b3e){logger['info'](_0x569f('0x22'),_0x54cb59);logger[_0x569f('0xf')](_0x569f('0x22'),_0x54cb59,JSON[_0x569f('0x11')](_0x2b4b3e));_0x2e35cc(_0x2b4b3e);})[_0x569f('0x16')](function(_0x1a69e9){logger['error'](_0x569f('0x22'),_0x1a69e9[_0x569f('0x14')],_0x54cb59);_0x2b352b(_0xeaf590[_0x569f('0x12')](0x1f4,_0x1a69e9[_0x569f('0x14')]));});});};
\ No newline at end of file
+var _0x90df=['where','attributes','limit','include','map','model','debug','find','ShowTrunk','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','Trunk,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','Trunk,\x20%s,\x20%s','message','result','catch','GetTrunk','Trunk','findAll','options','raw'];(function(_0x145c35,_0x4c6cee){var _0x147e0f=function(_0x475658){while(--_0x475658){_0x145c35['push'](_0x145c35['shift']());}};_0x147e0f(++_0x4c6cee);}(_0x90df,0x144));var _0xf90d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x90df[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf90d('0x0'));var util=require('util');var moment=require(_0xf90d('0x1'));var BPromise=require('bluebird');var rs=require(_0xf90d('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf90d('0x3'))['db'];var utils=require(_0xf90d('0x4'));var logger=require(_0xf90d('0x5'))(_0xf90d('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xf90d('0x7')][_0xf90d('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3c166f,_0xdbf38d,_0x50f71f){return new BPromise(function(_0x4eddbe,_0x13486b){return client[_0xf90d('0x9')](_0x3c166f,_0x50f71f)[_0xf90d('0xa')](function(_0x1054ec){logger[_0xf90d('0xb')]('Trunk,\x20%s,\x20%s',_0xdbf38d,'request\x20sent');logger['debug'](_0xf90d('0xc'),_0xdbf38d,_0xf90d('0xd'),JSON[_0xf90d('0xe')](_0x1054ec));if(_0x1054ec[_0xf90d('0xf')]){if(_0x1054ec['error'][_0xf90d('0x10')]===0x1f4){logger[_0xf90d('0xf')](_0xf90d('0x11'),_0xdbf38d,_0x1054ec[_0xf90d('0xf')]['message']);return _0x13486b(_0x1054ec['error'][_0xf90d('0x12')]);}logger[_0xf90d('0xf')]('Trunk,\x20%s,\x20%s',_0xdbf38d,_0x1054ec['error'][_0xf90d('0x12')]);return _0x4eddbe(_0x1054ec[_0xf90d('0xf')][_0xf90d('0x12')]);}else{logger['info'](_0xf90d('0x11'),_0xdbf38d,_0xf90d('0xd'));_0x4eddbe(_0x1054ec[_0xf90d('0x13')][_0xf90d('0x12')]);}})[_0xf90d('0x14')](function(_0x6f02e4){logger[_0xf90d('0xf')](_0xf90d('0x11'),_0xdbf38d,_0x6f02e4);_0x13486b(_0x6f02e4);});});}exports[_0xf90d('0x15')]=function(_0x3d53c1){var _0x4fc823=this;return new Promise(function(_0x25e21c,_0x4651df){return db[_0xf90d('0x16')][_0xf90d('0x17')]({'raw':_0x3d53c1['options']?_0x3d53c1[_0xf90d('0x18')][_0xf90d('0x19')]===undefined?!![]:![]:!![],'where':_0x3d53c1['options']?_0x3d53c1[_0xf90d('0x18')][_0xf90d('0x1a')]||null:null,'attributes':_0x3d53c1[_0xf90d('0x18')]?_0x3d53c1['options'][_0xf90d('0x1b')]||null:null,'limit':_0x3d53c1[_0xf90d('0x18')]?_0x3d53c1['options'][_0xf90d('0x1c')]||null:null,'include':_0x3d53c1[_0xf90d('0x18')]?_0x3d53c1['options'][_0xf90d('0x1d')]?_[_0xf90d('0x1e')](_0x3d53c1[_0xf90d('0x18')][_0xf90d('0x1d')],function(_0x47576a){return{'model':db[_0x47576a['model']],'as':_0x47576a['as'],'attributes':_0x47576a[_0xf90d('0x1b')],'include':_0x47576a[_0xf90d('0x1d')]?_[_0xf90d('0x1e')](_0x47576a['include'],function(_0x37bd16){return{'model':db[_0x37bd16['model']],'as':_0x37bd16['as'],'attributes':_0x37bd16[_0xf90d('0x1b')],'include':_0x37bd16[_0xf90d('0x1d')]?_[_0xf90d('0x1e')](_0x37bd16[_0xf90d('0x1d')],function(_0x56545a){return{'model':db[_0x56545a[_0xf90d('0x1f')]],'as':_0x56545a['as'],'attributes':_0x56545a[_0xf90d('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2671a3){logger['info'](_0xf90d('0x15'),_0x3d53c1);logger[_0xf90d('0x20')](_0xf90d('0x15'),_0x3d53c1,JSON['stringify'](_0x2671a3));_0x25e21c(_0x2671a3);})[_0xf90d('0x14')](function(_0x57395f){logger[_0xf90d('0xf')](_0xf90d('0x15'),_0x57395f[_0xf90d('0x12')],_0x3d53c1);_0x4651df(_0x4fc823[_0xf90d('0xf')](0x1f4,_0x57395f[_0xf90d('0x12')]));});});};exports['ShowTrunk']=function(_0x4016fe){var _0x73fd9a=this;return new Promise(function(_0x23419b,_0x4b9dc6){return db[_0xf90d('0x16')][_0xf90d('0x21')]({'raw':_0x4016fe[_0xf90d('0x18')]?_0x4016fe[_0xf90d('0x18')][_0xf90d('0x19')]===undefined?!![]:![]:!![],'where':_0x4016fe[_0xf90d('0x18')]?_0x4016fe['options'][_0xf90d('0x1a')]||null:null,'attributes':_0x4016fe[_0xf90d('0x18')]?_0x4016fe[_0xf90d('0x18')][_0xf90d('0x1b')]||null:null,'include':_0x4016fe[_0xf90d('0x18')]?_0x4016fe[_0xf90d('0x18')][_0xf90d('0x1d')]?_[_0xf90d('0x1e')](_0x4016fe[_0xf90d('0x18')]['include'],function(_0x4d4b63){return{'model':db[_0x4d4b63[_0xf90d('0x1f')]],'as':_0x4d4b63['as'],'attributes':_0x4d4b63['attributes'],'include':_0x4d4b63[_0xf90d('0x1d')]?_[_0xf90d('0x1e')](_0x4d4b63[_0xf90d('0x1d')],function(_0x49c27b){return{'model':db[_0x49c27b[_0xf90d('0x1f')]],'as':_0x49c27b['as'],'attributes':_0x49c27b[_0xf90d('0x1b')],'include':_0x49c27b[_0xf90d('0x1d')]?_[_0xf90d('0x1e')](_0x49c27b[_0xf90d('0x1d')],function(_0x4920c9){return{'model':db[_0x4920c9['model']],'as':_0x4920c9['as'],'attributes':_0x4920c9[_0xf90d('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xf90d('0xa')](function(_0xfef713){logger[_0xf90d('0xb')](_0xf90d('0x22'),_0x4016fe);logger[_0xf90d('0x20')](_0xf90d('0x22'),_0x4016fe,JSON[_0xf90d('0xe')](_0xfef713));_0x23419b(_0xfef713);})[_0xf90d('0x14')](function(_0xdd9c90){logger[_0xf90d('0xf')]('ShowTrunk',_0xdd9c90[_0xf90d('0x12')],_0x4016fe);_0x4b9dc6(_0x73fd9a[_0xf90d('0xf')](0x1f4,_0xdd9c90[_0xf90d('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8184=['getWhatsappAccounts','/:id/square_projects','getSquareProjects','/:id/scheduled_calls','getScheduledCalls','/:id/api_key','post','/:id/contacts','addContacts','create','/create_many','bulkCreate','/:id/queues','diskStorage','join','root','server/files/images/','%s-%s','now','originalname','single','login','/:id/logout','logout','/:id/pause','pause','addTeams','/:id/chat_interactions','addChatInteractions','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','/:id/openchannel_interactions','addOpenchannelInteractions','/:id/whatsapp_interactions','addWhatsappInteractions','addFaxAccounts','/:id/openchannel_accounts','addOpenchannelAccounts','/:id/sms_accounts','addSmsAccounts','addChatWebsites','addWhatsappAccounts','addSquareProjects','createApiKey','put','update','changePassword','delete','removeQueues','removeMailInteractions','removeFaxInteractions','removeWhatsappInteractions','removeFaxAccounts','/:id/mail_accounts','removeMailAccounts','removeOpenchannelAccounts','removeSmsAccounts','removeChatWebsites','/:id/whatsapp_accounts','removeSquareProjects','removeApiKey','exports','multer','util','path','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','index','get','/describe','isAuthenticated','describe','/presence','getPresence','/:id','show','/:id/avatar','getAvatar','/:id/open_tabs','getOpenTabs','getContacts','/:id/queues_rt','getVoiceQueuesRt','getGroups','/:id/recordings','/:id/screen_recordings','/:id/chat/interactions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','getSmsInteractions','/:id/fax/interactions','getFaxInteractions','/:id/whatsapp/interactions','getWhatsappInteractions','/:id/teams','/:id/lists','getLists','getAgents','/:id/prefixes','getFaxAccounts','getMailAccounts','getSmsAccounts','/:id/chat_websites','getChatWebsites'];(function(_0x4fbdf4,_0x2719b1){var _0x186fce=function(_0x1b3fb8){while(--_0x1b3fb8){_0x4fbdf4['push'](_0x4fbdf4['shift']());}};_0x186fce(++_0x2719b1);}(_0x8184,0x120));var _0x4818=function(_0x253f1a,_0x151797){_0x253f1a=_0x253f1a-0x0;var _0x216926=_0x8184[_0x253f1a];return _0x216926;};'use strict';var multer=require(_0x4818('0x0'));var util=require(_0x4818('0x1'));var path=require(_0x4818('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require(_0x4818('0x3'));var auth=require(_0x4818('0x4'));var interaction=require(_0x4818('0x5'));var config=require(_0x4818('0x6'));var controller=require('./user.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x4818('0x7')]);router[_0x4818('0x8')](_0x4818('0x9'),auth[_0x4818('0xa')](),controller[_0x4818('0xb')]);router['get']('/whoami',auth[_0x4818('0xa')](),controller['whoami']);router['get'](_0x4818('0xc'),auth['isAuthenticated'](),controller[_0x4818('0xd')]);router[_0x4818('0x8')](_0x4818('0xe'),auth[_0x4818('0xa')](),controller[_0x4818('0xf')]);router[_0x4818('0x8')](_0x4818('0x10'),controller[_0x4818('0x11')]);router[_0x4818('0x8')](_0x4818('0x12'),auth[_0x4818('0xa')](),controller[_0x4818('0x13')]);router[_0x4818('0x8')]('/:id/contacts',auth[_0x4818('0xa')](),controller[_0x4818('0x14')]);router[_0x4818('0x8')]('/:id/queues',auth[_0x4818('0xa')](),controller['getQueues']);router[_0x4818('0x8')](_0x4818('0x15'),auth[_0x4818('0xa')](),controller[_0x4818('0x16')]);router[_0x4818('0x8')]('/:id/groups',auth[_0x4818('0xa')](),controller[_0x4818('0x17')]);router[_0x4818('0x8')](_0x4818('0x18'),auth[_0x4818('0xa')](),controller['getRecordings']);router[_0x4818('0x8')](_0x4818('0x19'),auth[_0x4818('0xa')](),controller['getScreenRecordings']);router['get'](_0x4818('0x1a'),auth[_0x4818('0xa')](),controller['getChatInteractions']);router[_0x4818('0x8')]('/:id/openchannel/interactions',auth[_0x4818('0xa')](),controller['getOpenchannelInteractions']);router[_0x4818('0x8')](_0x4818('0x1b'),auth[_0x4818('0xa')](),controller[_0x4818('0x1c')]);router[_0x4818('0x8')](_0x4818('0x1d'),auth[_0x4818('0xa')](),controller[_0x4818('0x1e')]);router[_0x4818('0x8')](_0x4818('0x1f'),auth[_0x4818('0xa')](),controller[_0x4818('0x20')]);router[_0x4818('0x8')](_0x4818('0x21'),auth[_0x4818('0xa')](),controller[_0x4818('0x22')]);router[_0x4818('0x8')](_0x4818('0x23'),auth[_0x4818('0xa')](),controller['getTeams']);router[_0x4818('0x8')](_0x4818('0x24'),auth[_0x4818('0xa')](),controller[_0x4818('0x25')]);router[_0x4818('0x8')]('/:id/agents',auth[_0x4818('0xa')](),controller[_0x4818('0x26')]);router['get'](_0x4818('0x27'),auth[_0x4818('0xa')](),controller['getVoicePrefixes']);router[_0x4818('0x8')]('/:id/fax_accounts',auth[_0x4818('0xa')](),controller[_0x4818('0x28')]);router[_0x4818('0x8')]('/:id/mail_accounts',auth[_0x4818('0xa')](),controller[_0x4818('0x29')]);router['get']('/:id/openchannel_accounts',auth['isAuthenticated'](),controller['getOpenchannelAccounts']);router[_0x4818('0x8')]('/:id/sms_accounts',auth[_0x4818('0xa')](),controller[_0x4818('0x2a')]);router[_0x4818('0x8')](_0x4818('0x2b'),auth[_0x4818('0xa')](),controller[_0x4818('0x2c')]);router[_0x4818('0x8')]('/:id/whatsapp_accounts',auth['isAuthenticated'](),controller[_0x4818('0x2d')]);router[_0x4818('0x8')](_0x4818('0x2e'),auth['isAuthenticated'](),controller[_0x4818('0x2f')]);router[_0x4818('0x8')](_0x4818('0x30'),auth[_0x4818('0xa')](),controller[_0x4818('0x31')]);router['get'](_0x4818('0x32'),auth['isAuthenticated'](),controller['getApiKey']);router[_0x4818('0x33')](_0x4818('0x34'),auth[_0x4818('0xa')](),controller[_0x4818('0x35')]);router[_0x4818('0x33')]('/',auth[_0x4818('0xa')](),controller[_0x4818('0x36')]);router[_0x4818('0x33')](_0x4818('0x37'),auth['isAuthenticated'](),controller[_0x4818('0x38')]);router[_0x4818('0x33')](_0x4818('0x39'),auth[_0x4818('0xa')](),controller['addQueues']);var upload=multer({'storage':multer[_0x4818('0x3a')]({'destination':function(_0x4782f6,_0x49aab0,_0x5be0f1){_0x5be0f1(null,path[_0x4818('0x3b')](config[_0x4818('0x3c')],_0x4818('0x3d')));},'filename':function(_0x22d52a,_0x42a5e3,_0x262bfb){_0x262bfb(null,util['format'](_0x4818('0x3e'),Date[_0x4818('0x3f')](),_0x42a5e3[_0x4818('0x40')]));}})});router[_0x4818('0x33')](_0x4818('0x10'),upload[_0x4818('0x41')]('file'),controller['addAvatar']);router['post']('/:id/login',auth[_0x4818('0xa')](),controller[_0x4818('0x42')]);router['post'](_0x4818('0x43'),auth['isAuthenticated'](),controller[_0x4818('0x44')]);router['post'](_0x4818('0x45'),auth[_0x4818('0xa')](),controller[_0x4818('0x46')]);router['post']('/:id/unpause',auth[_0x4818('0xa')](),controller['unpause']);router[_0x4818('0x33')](_0x4818('0x23'),auth[_0x4818('0xa')](),controller[_0x4818('0x47')]);router[_0x4818('0x33')](_0x4818('0x48'),auth['isAuthenticated'](),controller[_0x4818('0x49')]);router[_0x4818('0x33')](_0x4818('0x4a'),auth[_0x4818('0xa')](),controller[_0x4818('0x4b')]);router[_0x4818('0x33')](_0x4818('0x4c'),auth[_0x4818('0xa')](),controller[_0x4818('0x4d')]);router[_0x4818('0x33')](_0x4818('0x4e'),auth['isAuthenticated'](),controller[_0x4818('0x4f')]);router['post'](_0x4818('0x50'),auth[_0x4818('0xa')](),controller[_0x4818('0x51')]);router[_0x4818('0x33')](_0x4818('0x52'),auth[_0x4818('0xa')](),controller[_0x4818('0x53')]);router[_0x4818('0x33')]('/:id/fax_accounts',auth[_0x4818('0xa')](),controller[_0x4818('0x54')]);router['post']('/:id/mail_accounts',auth[_0x4818('0xa')](),controller['addMailAccounts']);router['post'](_0x4818('0x55'),auth[_0x4818('0xa')](),controller[_0x4818('0x56')]);router[_0x4818('0x33')](_0x4818('0x57'),auth[_0x4818('0xa')](),controller[_0x4818('0x58')]);router[_0x4818('0x33')]('/:id/chat_websites',auth['isAuthenticated'](),controller[_0x4818('0x59')]);router[_0x4818('0x33')]('/:id/whatsapp_accounts',auth['isAuthenticated'](),controller[_0x4818('0x5a')]);router[_0x4818('0x33')](_0x4818('0x2e'),auth[_0x4818('0xa')](),controller[_0x4818('0x5b')]);router[_0x4818('0x33')](_0x4818('0x32'),auth[_0x4818('0xa')](),controller[_0x4818('0x5c')]);router[_0x4818('0x5d')](_0x4818('0xe'),auth[_0x4818('0xa')](),controller[_0x4818('0x5e')]);router[_0x4818('0x5d')]('/:id/password',auth[_0x4818('0xa')](),controller[_0x4818('0x5f')]);router[_0x4818('0x60')](_0x4818('0x39'),auth[_0x4818('0xa')](),controller[_0x4818('0x61')]);router['delete'](_0x4818('0x23'),auth[_0x4818('0xa')](),controller['removeTeams']);router[_0x4818('0x60')](_0x4818('0xe'),auth[_0x4818('0xa')](),controller['destroy']);router[_0x4818('0x60')]('/:id/chat_interactions',auth['isAuthenticated'](),controller['removeChatInteractions']);router[_0x4818('0x60')]('/:id/mail_interactions',auth[_0x4818('0xa')](),controller[_0x4818('0x62')]);router['delete'](_0x4818('0x4c'),auth[_0x4818('0xa')](),controller[_0x4818('0x63')]);router[_0x4818('0x60')](_0x4818('0x4e'),auth[_0x4818('0xa')](),controller['removeSmsInteractions']);router[_0x4818('0x60')]('/:id/openchannel_interactions',auth[_0x4818('0xa')](),controller['removeOpenchannelInteractions']);router[_0x4818('0x60')](_0x4818('0x52'),auth[_0x4818('0xa')](),controller[_0x4818('0x64')]);router[_0x4818('0x60')]('/:id/fax_accounts',auth[_0x4818('0xa')](),controller[_0x4818('0x65')]);router['delete'](_0x4818('0x66'),auth[_0x4818('0xa')](),controller[_0x4818('0x67')]);router[_0x4818('0x60')](_0x4818('0x55'),auth[_0x4818('0xa')](),controller[_0x4818('0x68')]);router[_0x4818('0x60')](_0x4818('0x57'),auth[_0x4818('0xa')](),controller[_0x4818('0x69')]);router['delete'](_0x4818('0x2b'),auth[_0x4818('0xa')](),controller[_0x4818('0x6a')]);router['delete'](_0x4818('0x6b'),auth[_0x4818('0xa')](),controller['removeWhatsappAccounts']);router[_0x4818('0x60')](_0x4818('0x2e'),auth['isAuthenticated'](),controller[_0x4818('0x6c')]);router['delete']('/:id/api_key',auth['isAuthenticated'](),controller[_0x4818('0x6d')]);module[_0x4818('0x6e')]=router;
\ No newline at end of file
+var _0x196f=['/:id/sms_accounts','addSmsAccounts','put','/:id','/:id/password','changePassword','delete','destroy','removeChatInteractions','/:id/mail_interactions','removeMailInteractions','removeFaxInteractions','removeSmsInteractions','/:id/openchannel_interactions','removeOpenchannelInteractions','removeWhatsappInteractions','removeMailAccounts','removeOpenchannelAccounts','removeSmsAccounts','removeChatWebsites','removeWhatsappAccounts','removeSquareProjects','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./user.controller','get','index','isAuthenticated','describe','/whoami','whoami','/:id/avatar','getAvatar','/:id/open_tabs','getOpenTabs','getContacts','/:id/queues','/:id/queues_rt','getVoiceQueuesRt','/:id/groups','/:id/recordings','getRecordings','getScreenRecordings','/:id/chat/interactions','/:id/openchannel/interactions','getOpenchannelInteractions','getMailInteractions','getFaxInteractions','/:id/whatsapp/interactions','getWhatsappInteractions','getTeams','/:id/lists','/:id/agents','getAgents','/:id/fax_accounts','getFaxAccounts','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/chat_websites','getChatWebsites','/:id/whatsapp_accounts','getWhatsappAccounts','/:id/square_projects','getSquareProjects','/:id/scheduled_calls','getScheduledCalls','/:id/api_key','getApiKey','post','/:id/contacts','addContacts','create','bulkCreate','addQueues','diskStorage','join','server/files/images/','format','originalname','single','file','addAvatar','/:id/login','login','/:id/logout','logout','/:id/pause','/:id/unpause','unpause','/:id/teams','addTeams','/:id/chat_interactions','addChatInteractions','addMailInteractions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','addOpenchannelInteractions','/:id/whatsapp_interactions','addWhatsappInteractions','addOpenchannelAccounts'];(function(_0x58b603,_0x450f6d){var _0xf76126=function(_0x5688da){while(--_0x5688da){_0x58b603['push'](_0x58b603['shift']());}};_0xf76126(++_0x450f6d);}(_0x196f,0x85));var _0xf196=function(_0x4acd3f,_0xef201e){_0x4acd3f=_0x4acd3f-0x0;var _0x5dd3ab=_0x196f[_0x4acd3f];return _0x5dd3ab;};'use strict';var multer=require(_0xf196('0x0'));var util=require(_0xf196('0x1'));var path=require(_0xf196('0x2'));var timeout=require(_0xf196('0x3'));var express=require(_0xf196('0x4'));var router=express[_0xf196('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xf196('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xf196('0x7'));var controller=require(_0xf196('0x8'));router[_0xf196('0x9')]('/',auth['isAuthenticated'](),controller[_0xf196('0xa')]);router['get']('/describe',auth[_0xf196('0xb')](),controller[_0xf196('0xc')]);router[_0xf196('0x9')](_0xf196('0xd'),auth[_0xf196('0xb')](),controller[_0xf196('0xe')]);router['get']('/presence',auth[_0xf196('0xb')](),controller['getPresence']);router[_0xf196('0x9')]('/:id',auth[_0xf196('0xb')](),controller['show']);router['get'](_0xf196('0xf'),controller[_0xf196('0x10')]);router[_0xf196('0x9')](_0xf196('0x11'),auth[_0xf196('0xb')](),controller[_0xf196('0x12')]);router[_0xf196('0x9')]('/:id/contacts',auth[_0xf196('0xb')](),controller[_0xf196('0x13')]);router[_0xf196('0x9')](_0xf196('0x14'),auth['isAuthenticated'](),controller['getQueues']);router['get'](_0xf196('0x15'),auth[_0xf196('0xb')](),controller[_0xf196('0x16')]);router[_0xf196('0x9')](_0xf196('0x17'),auth['isAuthenticated'](),controller['getGroups']);router['get'](_0xf196('0x18'),auth[_0xf196('0xb')](),controller[_0xf196('0x19')]);router[_0xf196('0x9')]('/:id/screen_recordings',auth[_0xf196('0xb')](),controller[_0xf196('0x1a')]);router[_0xf196('0x9')](_0xf196('0x1b'),auth['isAuthenticated'](),controller['getChatInteractions']);router['get'](_0xf196('0x1c'),auth[_0xf196('0xb')](),controller[_0xf196('0x1d')]);router[_0xf196('0x9')]('/:id/mail/interactions',auth['isAuthenticated'](),controller[_0xf196('0x1e')]);router[_0xf196('0x9')]('/:id/sms/interactions',auth[_0xf196('0xb')](),controller['getSmsInteractions']);router[_0xf196('0x9')]('/:id/fax/interactions',auth[_0xf196('0xb')](),controller[_0xf196('0x1f')]);router[_0xf196('0x9')](_0xf196('0x20'),auth[_0xf196('0xb')](),controller[_0xf196('0x21')]);router[_0xf196('0x9')]('/:id/teams',auth['isAuthenticated'](),controller[_0xf196('0x22')]);router['get'](_0xf196('0x23'),auth['isAuthenticated'](),controller['getLists']);router[_0xf196('0x9')](_0xf196('0x24'),auth['isAuthenticated'](),controller[_0xf196('0x25')]);router[_0xf196('0x9')]('/:id/prefixes',auth['isAuthenticated'](),controller['getVoicePrefixes']);router[_0xf196('0x9')](_0xf196('0x26'),auth['isAuthenticated'](),controller[_0xf196('0x27')]);router[_0xf196('0x9')](_0xf196('0x28'),auth[_0xf196('0xb')](),controller[_0xf196('0x29')]);router[_0xf196('0x9')](_0xf196('0x2a'),auth['isAuthenticated'](),controller[_0xf196('0x2b')]);router['get']('/:id/sms_accounts',auth[_0xf196('0xb')](),controller['getSmsAccounts']);router['get'](_0xf196('0x2c'),auth['isAuthenticated'](),controller[_0xf196('0x2d')]);router[_0xf196('0x9')](_0xf196('0x2e'),auth[_0xf196('0xb')](),controller[_0xf196('0x2f')]);router['get'](_0xf196('0x30'),auth[_0xf196('0xb')](),controller[_0xf196('0x31')]);router['get'](_0xf196('0x32'),auth[_0xf196('0xb')](),controller[_0xf196('0x33')]);router[_0xf196('0x9')](_0xf196('0x34'),auth['isAuthenticated'](),controller[_0xf196('0x35')]);router[_0xf196('0x36')](_0xf196('0x37'),auth[_0xf196('0xb')](),controller[_0xf196('0x38')]);router[_0xf196('0x36')]('/',auth[_0xf196('0xb')](),controller[_0xf196('0x39')]);router[_0xf196('0x36')]('/create_many',auth[_0xf196('0xb')](),controller[_0xf196('0x3a')]);router[_0xf196('0x36')](_0xf196('0x14'),auth[_0xf196('0xb')](),controller[_0xf196('0x3b')]);var upload=multer({'storage':multer[_0xf196('0x3c')]({'destination':function(_0x4725c5,_0x5db39b,_0x5e7c8f){_0x5e7c8f(null,path[_0xf196('0x3d')](config['root'],_0xf196('0x3e')));},'filename':function(_0x34b7ef,_0x24dd04,_0x497169){_0x497169(null,util[_0xf196('0x3f')]('%s-%s',Date['now'](),_0x24dd04[_0xf196('0x40')]));}})});router[_0xf196('0x36')]('/:id/avatar',upload[_0xf196('0x41')](_0xf196('0x42')),controller[_0xf196('0x43')]);router[_0xf196('0x36')](_0xf196('0x44'),auth[_0xf196('0xb')](),controller[_0xf196('0x45')]);router[_0xf196('0x36')](_0xf196('0x46'),auth[_0xf196('0xb')](),controller[_0xf196('0x47')]);router[_0xf196('0x36')](_0xf196('0x48'),auth[_0xf196('0xb')](),controller['pause']);router[_0xf196('0x36')](_0xf196('0x49'),auth[_0xf196('0xb')](),controller[_0xf196('0x4a')]);router[_0xf196('0x36')](_0xf196('0x4b'),auth[_0xf196('0xb')](),controller[_0xf196('0x4c')]);router[_0xf196('0x36')](_0xf196('0x4d'),auth['isAuthenticated'](),controller[_0xf196('0x4e')]);router[_0xf196('0x36')]('/:id/mail_interactions',auth[_0xf196('0xb')](),controller[_0xf196('0x4f')]);router[_0xf196('0x36')]('/:id/fax_interactions',auth['isAuthenticated'](),controller[_0xf196('0x50')]);router[_0xf196('0x36')](_0xf196('0x51'),auth[_0xf196('0xb')](),controller[_0xf196('0x52')]);router[_0xf196('0x36')]('/:id/openchannel_interactions',auth['isAuthenticated'](),controller[_0xf196('0x53')]);router[_0xf196('0x36')](_0xf196('0x54'),auth[_0xf196('0xb')](),controller[_0xf196('0x55')]);router[_0xf196('0x36')](_0xf196('0x26'),auth[_0xf196('0xb')](),controller['addFaxAccounts']);router['post'](_0xf196('0x28'),auth[_0xf196('0xb')](),controller['addMailAccounts']);router[_0xf196('0x36')](_0xf196('0x2a'),auth[_0xf196('0xb')](),controller[_0xf196('0x56')]);router[_0xf196('0x36')](_0xf196('0x57'),auth[_0xf196('0xb')](),controller[_0xf196('0x58')]);router[_0xf196('0x36')]('/:id/chat_websites',auth[_0xf196('0xb')](),controller['addChatWebsites']);router['post'](_0xf196('0x2e'),auth[_0xf196('0xb')](),controller['addWhatsappAccounts']);router[_0xf196('0x36')](_0xf196('0x30'),auth['isAuthenticated'](),controller['addSquareProjects']);router[_0xf196('0x36')](_0xf196('0x34'),auth['isAuthenticated'](),controller['createApiKey']);router[_0xf196('0x59')](_0xf196('0x5a'),auth[_0xf196('0xb')](),controller['update']);router[_0xf196('0x59')](_0xf196('0x5b'),auth[_0xf196('0xb')](),controller[_0xf196('0x5c')]);router[_0xf196('0x5d')](_0xf196('0x14'),auth[_0xf196('0xb')](),controller['removeQueues']);router[_0xf196('0x5d')](_0xf196('0x4b'),auth[_0xf196('0xb')](),controller['removeTeams']);router[_0xf196('0x5d')](_0xf196('0x5a'),auth[_0xf196('0xb')](),controller[_0xf196('0x5e')]);router[_0xf196('0x5d')](_0xf196('0x4d'),auth[_0xf196('0xb')](),controller[_0xf196('0x5f')]);router[_0xf196('0x5d')](_0xf196('0x60'),auth[_0xf196('0xb')](),controller[_0xf196('0x61')]);router['delete']('/:id/fax_interactions',auth[_0xf196('0xb')](),controller[_0xf196('0x62')]);router[_0xf196('0x5d')](_0xf196('0x51'),auth['isAuthenticated'](),controller[_0xf196('0x63')]);router['delete'](_0xf196('0x64'),auth[_0xf196('0xb')](),controller[_0xf196('0x65')]);router[_0xf196('0x5d')](_0xf196('0x54'),auth[_0xf196('0xb')](),controller[_0xf196('0x66')]);router[_0xf196('0x5d')](_0xf196('0x26'),auth[_0xf196('0xb')](),controller['removeFaxAccounts']);router[_0xf196('0x5d')]('/:id/mail_accounts',auth['isAuthenticated'](),controller[_0xf196('0x67')]);router['delete']('/:id/openchannel_accounts',auth[_0xf196('0xb')](),controller[_0xf196('0x68')]);router[_0xf196('0x5d')](_0xf196('0x57'),auth[_0xf196('0xb')](),controller[_0xf196('0x69')]);router[_0xf196('0x5d')](_0xf196('0x2c'),auth[_0xf196('0xb')](),controller[_0xf196('0x6a')]);router[_0xf196('0x5d')](_0xf196('0x2e'),auth[_0xf196('0xb')](),controller[_0xf196('0x6b')]);router[_0xf196('0x5d')]('/:id/square_projects',auth[_0xf196('0xb')](),controller[_0xf196('0x6c')]);router[_0xf196('0x5d')](_0xf196('0x34'),auth[_0xf196('0xb')](),controller['removeApiKey']);module[_0xf196('0x6d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x297f=['shortinfo','auto','nonat','update','outgoing','yes','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','insecure','\x22\x22\x20<>','always','accept','refuse','uac','uas','certificate','active','passive','actpass','update,nonat','TEXT','isArray','udp','wss','encryption','avpf','force_avp','icesupport','dtlsverify','dtlssetup','dtlsprivatekey','rtcp_mux','dtlsenable','dtlscertfile','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','permissions','map','VIRTUAL','string','true','false','screenrecording','blocked','blockedAt','loginAttempts','UNSIGNED','sequelize','moment','exports','STRING','name','defaultuser','The\x20name\x20of\x20the\x20user','fullname','setDataValue','callerid','\x22%s\x22\x20<%s>','getDataValue','email','toLowerCase','admin','telephone','local','INTEGER','internal','accountcode','format','BOOLEAN','DATE','dynamic','peer','friend','from-sip','ENUM','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','transport','join','split','rfc2833','info'];(function(_0x582d37,_0x1bab46){var _0x513825=function(_0x750712){while(--_0x750712){_0x582d37['push'](_0x582d37['shift']());}};_0x513825(++_0x1bab46);}(_0x297f,0x1f0));var _0xf297=function(_0x3cc451,_0x4d7adb){_0x3cc451=_0x3cc451-0x0;var _0x1fa0a8=_0x297f[_0x3cc451];return _0x1fa0a8;};'use strict';var Sequelize=require(_0xf297('0x0'));var moment=require(_0xf297('0x1'));var util=require('util');var _=require('lodash');module[_0xf297('0x2')]={'name':{'type':Sequelize[_0xf297('0x3')],'allowNull':![],'unique':_0xf297('0x4'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x39ec01){this['setDataValue'](_0xf297('0x4'),_0x39ec01);this['setDataValue'](_0xf297('0x5'),_0x39ec01);},'comment':_0xf297('0x6')},'fullname':{'type':Sequelize[_0xf297('0x3')],'allowNull':![],'set':function(_0x4bb956){this['setDataValue'](_0xf297('0x7'),_0x4bb956);this[_0xf297('0x8')](_0xf297('0x9'),util['format'](_0xf297('0xa'),_0x4bb956,this[_0xf297('0xb')]('internal')));}},'alias':{'type':Sequelize[_0xf297('0x3')]},'email':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xf297('0xc'),'validate':{'isEmail':!![]},'set':function(_0x372df7){if(_0x372df7){this[_0xf297('0x8')]('email',_0x372df7[_0xf297('0xd')]());}}},'role':{'type':Sequelize['ENUM'](_0xf297('0xe'),'user','agent',_0xf297('0xf')),'allowNull':![]},'password':{'type':Sequelize[_0xf297('0x3')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0xf297('0x3')],'defaultValue':_0xf297('0x10')},'internal':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':![],'unique':_0xf297('0x12'),'set':function(_0x5c5e7c){this[_0xf297('0x8')](_0xf297('0x12'),_0x5c5e7c);this['setDataValue'](_0xf297('0x13'),_0x5c5e7c);this['setDataValue'](_0xf297('0x9'),util[_0xf297('0x14')](_0xf297('0xa'),this['getDataValue']('fullname'),_0x5c5e7c));}},'salt':{'type':Sequelize[_0xf297('0x3')]},'phone':{'type':Sequelize[_0xf297('0x3')]},'mobile':{'type':Sequelize['STRING']},'address':{'type':Sequelize['STRING']},'zipcode':{'type':Sequelize[_0xf297('0x3')]},'userpic':{'type':Sequelize[_0xf297('0x3')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize[_0xf297('0x3')]},'online':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xf297('0x16')]},'voicePause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chatPause':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'mailPause':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'faxPause':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'smsPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xf297('0x3')],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0xf297('0x16')]},'chatCapacity':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xf297('0x11')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'host':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xf297('0x17')},'ipaddr':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'port':{'type':Sequelize[_0xf297('0x11')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'useragent':{'type':Sequelize['STRING'],'allowNull':!![]},'lastms':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'type':{'type':Sequelize['ENUM']('friend','user',_0xf297('0x18')),'allowNull':!![],'defaultValue':_0xf297('0x19')},'context':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![],'defaultValue':_0xf297('0x1a')},'callingpres':{'type':Sequelize[_0xf297('0x1b')]('ALLOWED_NOT_SCREENED',_0xf297('0x1c'),_0xf297('0x1d'),'ALLOWED',_0xf297('0x1e'),_0xf297('0x1f'),_0xf297('0x20'),'PROHIB'),'allowNull':!![]},'deny':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'permit':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'secret':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'md5secret':{'type':Sequelize['STRING'],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'transport':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![],'defaultValue':'udp','set':function(_0x2242ab){this[_0xf297('0x8')](_0xf297('0x21'),_0x2242ab?_0x2242ab[_0xf297('0x22')](','):null);},'get':function(){return this[_0xf297('0xb')](_0xf297('0x21'))?this['getDataValue'](_0xf297('0x21'))[_0xf297('0x23')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x24'),_0xf297('0x25'),_0xf297('0x26'),'inband',_0xf297('0x27')),'allowNull':!![],'defaultValue':_0xf297('0x24')},'directmedia':{'type':Sequelize[_0xf297('0x1b')]('yes','no',_0xf297('0x28'),_0xf297('0x29'),_0xf297('0x2a')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'nat':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![],'defaultValue':'force_rport,comedia','set':function(_0x3be1d3){this[_0xf297('0x8')](_0xf297('0x2c'),_0x3be1d3?_0x3be1d3[_0xf297('0x22')](','):null);},'get':function(){return this[_0xf297('0xb')](_0xf297('0x2c'))?this[_0xf297('0xb')](_0xf297('0x2c'))[_0xf297('0x23')](','):null;},'comment':_0xf297('0x2d')},'callgroup':{'type':Sequelize[_0xf297('0x3')]},'namedcallgroup':{'type':Sequelize[_0xf297('0x3')]},'pickupgroup':{'type':Sequelize[_0xf297('0x3')]},'namedpickupgroup':{'type':Sequelize[_0xf297('0x3')]},'language':{'type':Sequelize[_0xf297('0x3')],'defaultValue':'en'},'tonezone':{'type':Sequelize['STRING']},'disallow':{'type':Sequelize[_0xf297('0x3')],'allowNull':![],'defaultValue':_0xf297('0x2e')},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf297('0x2f'),'set':function(_0x463b21){this[_0xf297('0x8')](_0xf297('0x30'),_0x463b21?_0x463b21[_0xf297('0x22')](';'):_0xf297('0x2f'));},'get':function(){return this['getDataValue']('allow')?this[_0xf297('0xb')](_0xf297('0x30'))[_0xf297('0x23')](';'):null;},'comment':_0xf297('0x31')},'autoframing':{'type':Sequelize[_0xf297('0x1b')]('yes','no'),'allowNull':!![]},'insecure':{'type':Sequelize['STRING'],'allowNull':!![],'set':function(_0x5a54d2){this[_0xf297('0x8')](_0xf297('0x32'),_0x5a54d2?_0x5a54d2['join'](','):null);},'get':function(){return this[_0xf297('0xb')]('insecure')?this[_0xf297('0xb')](_0xf297('0x32'))[_0xf297('0x23')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]'},'trustrpid':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xf297('0x1b')]('yes','no'),'allowNull':!![]},'accountcode':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'callerid':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xf297('0x33')},'amaflags':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0xf297('0x1b')]('yes','no'),'allowNull':!![],'defaultValue':'yes'},'busylevel':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize['ENUM'](_0xf297('0x2b'),'no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize['ENUM'](_0xf297('0x2b'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize['ENUM'](_0xf297('0x2b'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize['STRING'],'allowNull':!![]},'template':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'videosupport':{'type':Sequelize['ENUM'](_0xf297('0x2b'),'no',_0xf297('0x34')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'mailbox':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'session_timers':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x35'),_0xf297('0x36'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x37'),_0xf297('0x38')),'allowNull':!![],'defaultValue':_0xf297('0x38')},'t38pt_usertpsource':{'type':Sequelize['STRING'],'allowNull':!![]},'regexten':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xf297('0x1b')]('yes','no'),'allowNull':!![],'defaultValue':_0xf297('0x2b')},'keepalive':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'defaultuser':{'type':Sequelize['STRING'],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'timert1':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize['STRING'],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'contactacl':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize['ENUM'](_0xf297('0x2b'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no','fingerprint',_0xf297('0x39')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x3a'),_0xf297('0x3b'),_0xf297('0x3c')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING'],'allowNull':!![]},'usereqphone':{'type':Sequelize['ENUM'](_0xf297('0x2b'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xf297('0x11')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0xf297('0x1b')](_0xf297('0x2b'),'no',_0xf297('0x28'),_0xf297('0x29'),_0xf297('0x3d')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xf297('0x3')]},'resetPasswordExpires':{'type':Sequelize['DATE']},'passwordResetAt':{'type':Sequelize[_0xf297('0x16')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0xf297('0x3e')]},'showWebBar':{'type':Sequelize['INTEGER'],'defaultValue':0x0,'set':function(_0x36bd14){this[_0xf297('0x8')]('showWebBar',_0x36bd14);var _0x250414=this['get']({'plain':!![]});switch(_0x36bd14){case 0x0:case 0x1:var _0x3d1acf=_0x250414[_0xf297('0x21')]?_[_0xf297('0x3f')](_0x250414['transport'])?_0x250414[_0xf297('0x21')]['join']():_0x250414[_0xf297('0x21')]:_0xf297('0x40');if(_0x3d1acf===_0xf297('0x41')){_0x3d1acf=_0xf297('0x40');}this['setDataValue'](_0xf297('0x21'),_0x3d1acf);this[_0xf297('0x8')](_0xf297('0x42'),'no');this[_0xf297('0x8')](_0xf297('0x43'),null);this[_0xf297('0x8')](_0xf297('0x44'),null);this['setDataValue'](_0xf297('0x45'),null);this[_0xf297('0x8')]('dtlsenable',null);this['setDataValue'](_0xf297('0x46'),null);this[_0xf297('0x8')](_0xf297('0x47'),null);this[_0xf297('0x8')]('dtlscertfile',null);this[_0xf297('0x8')](_0xf297('0x48'),null);this['setDataValue'](_0xf297('0x49'),'no');break;case 0x2:this[_0xf297('0x8')](_0xf297('0x21'),_0xf297('0x41'));this[_0xf297('0x8')]('encryption',_0xf297('0x2b'));this[_0xf297('0x8')](_0xf297('0x43'),_0xf297('0x2b'));this[_0xf297('0x8')](_0xf297('0x44'),_0xf297('0x2b'));this[_0xf297('0x8')](_0xf297('0x45'),_0xf297('0x2b'));this['setDataValue'](_0xf297('0x4a'),'yes');this['setDataValue'](_0xf297('0x46'),'no');this[_0xf297('0x8')](_0xf297('0x47'),_0xf297('0x3c'));this[_0xf297('0x8')](_0xf297('0x4b'),_0x250414[_0xf297('0x4b')]||_0xf297('0x4c'));this['setDataValue'](_0xf297('0x48'),_0x250414['dtlsprivatekey']||_0xf297('0x4d'));this[_0xf297('0x8')](_0xf297('0x49'),_0xf297('0x2b'));break;default:}}},'permissions':{'type':Sequelize['TEXT'],'set':function(_0x86a157){this['setDataValue']('permissions',_0x86a157?_0x86a157[_0xf297('0x22')](','):[]);},'get':function(){return this[_0xf297('0xb')](_0xf297('0x4e'))?_[_0xf297('0x4f')](this[_0xf297('0xb')](_0xf297('0x4e'))['split'](','),function(_0x2f67b5){return parseInt(_0x2f67b5,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize['STRING']},'phoneBarNoReplyNumber':{'type':Sequelize[_0xf297('0x3')]},'phoneBarBusyNumber':{'type':Sequelize[_0xf297('0x3')]},'phoneBarUnconditional':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xf297('0x15')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0xf297('0x15')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xf297('0x3')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0xf297('0x15')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xf297('0x3')]},'phoneBarEnableJaws':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xf297('0x50')],'get':function(){return this['getDataValue']('phoneBarEnableScreenRecordingByAgent')?this[_0xf297('0xb')]('phoneBarEnableScreenRecordingByAgent'):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'interface':{'type':Sequelize[_0xf297('0x3')],'defaultValue':null},'privacyEnabled':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0xf297('0x3')],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![],'set':function(_0x59c595){if(typeof _0x59c595===_0xf297('0x51')){var _0x449a46=_0x59c595==='1'?!![]:_0x59c595==='0'?![]:_0x59c595===_0xf297('0x52')?!![]:_0x59c595===_0xf297('0x53')?![]:![];this[_0xf297('0x8')](_0xf297('0x54'),_0x449a46);}else{this[_0xf297('0x8')](_0xf297('0x54'),_0x59c595);}}},'blocked':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0x47f733){this['setDataValue'](_0xf297('0x55'),_0x47f733);if(_0x47f733===!![]){this[_0xf297('0x8')](_0xf297('0x56'),moment());this[_0xf297('0x8')](_0xf297('0x57'),0x0);}else{this['setDataValue'](_0xf297('0x56'),null);}}},'blockedAt':{'type':Sequelize['DATE'],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xf297('0x11')],'defaultValue':0x0},'disabled':{'type':Sequelize[_0xf297('0x15')],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xf297('0x15')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0xf297('0x11')](0x5)[_0xf297('0x58')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0xf297('0x15')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xf297('0x15')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xb422=['PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','transport','join','split','shortinfo','inband','yes','nonat','update','force_rport,comedia','nat','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]','\x22\x22\x20<>','always','accept','refuse','originate','uac','uas','fingerprint','certificate','passive','update,nonat','TEXT','showWebBar','get','isArray','encryption','avpf','force_avp','icesupport','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','/etc/pki/tls/certs/motion.crt','dtlsprivatekey','rtcp_mux','permissions','VIRTUAL','string','true','screenrecording','blocked','blockedAt','lodash','name','setDataValue','The\x20name\x20of\x20the\x20user','STRING','fullname','callerid','getDataValue','email','toLowerCase','admin','user','agent','telephone','local','INTEGER','internal','accountcode','format','\x22%s\x22\x20<%s>','DATE','BOOLEAN','dynamic','peer','friend','ENUM','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','PROHIB_NOT_SCREENED'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xb422,0x85));var _0x2b42=function(_0x38ecda,_0x3b551e){_0x38ecda=_0x38ecda-0x0;var _0x3fa8f3=_0xb422[_0x38ecda];return _0x3fa8f3;};'use strict';var Sequelize=require('sequelize');var moment=require('moment');var util=require('util');var _=require(_0x2b42('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x2b42('0x1'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x5a42d2){this[_0x2b42('0x2')]('name',_0x5a42d2);this[_0x2b42('0x2')]('defaultuser',_0x5a42d2);},'comment':_0x2b42('0x3')},'fullname':{'type':Sequelize[_0x2b42('0x4')],'allowNull':![],'set':function(_0x750c2){this['setDataValue'](_0x2b42('0x5'),_0x750c2);this[_0x2b42('0x2')](_0x2b42('0x6'),util['format']('\x22%s\x22\x20<%s>',_0x750c2,this[_0x2b42('0x7')]('internal')));}},'alias':{'type':Sequelize[_0x2b42('0x4')]},'email':{'type':Sequelize[_0x2b42('0x4')],'allowNull':![],'unique':_0x2b42('0x8'),'validate':{'isEmail':!![]},'set':function(_0x1ec844){if(_0x1ec844){this['setDataValue'](_0x2b42('0x8'),_0x1ec844[_0x2b42('0x9')]());}}},'role':{'type':Sequelize['ENUM'](_0x2b42('0xa'),_0x2b42('0xb'),_0x2b42('0xc'),_0x2b42('0xd')),'allowNull':![]},'password':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':_0x2b42('0xe')},'internal':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':![],'unique':'internal','set':function(_0x232c58){this[_0x2b42('0x2')](_0x2b42('0x10'),_0x232c58);this[_0x2b42('0x2')](_0x2b42('0x11'),_0x232c58);this[_0x2b42('0x2')](_0x2b42('0x6'),util[_0x2b42('0x12')](_0x2b42('0x13'),this[_0x2b42('0x7')]('fullname'),_0x232c58));}},'salt':{'type':Sequelize[_0x2b42('0x4')]},'phone':{'type':Sequelize[_0x2b42('0x4')]},'mobile':{'type':Sequelize[_0x2b42('0x4')]},'address':{'type':Sequelize[_0x2b42('0x4')]},'zipcode':{'type':Sequelize[_0x2b42('0x4')]},'userpic':{'type':Sequelize[_0x2b42('0x4')]},'city':{'type':Sequelize[_0x2b42('0x4')]},'country':{'type':Sequelize[_0x2b42('0x4')]},'online':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0x2b42('0x14')]},'voicePause':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'chatPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'mailPause':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'faxPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'smsPause':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'pauseType':{'type':Sequelize['STRING'],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0x2b42('0x14')]},'chatCapacity':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0x2b42('0xf')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize[_0x2b42('0xf')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chanspy':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'description':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'host':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![],'defaultValue':_0x2b42('0x16')},'ipaddr':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'port':{'type':Sequelize[_0x2b42('0xf')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'regserver':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'useragent':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'lastms':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'type':{'type':Sequelize['ENUM']('friend',_0x2b42('0xb'),_0x2b42('0x17')),'allowNull':!![],'defaultValue':_0x2b42('0x18')},'context':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![],'defaultValue':'from-sip'},'callingpres':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x1a'),_0x2b42('0x1b'),'ALLOWED_FAILED_SCREEN','ALLOWED',_0x2b42('0x1c'),_0x2b42('0x1d'),_0x2b42('0x1e'),_0x2b42('0x1f')),'allowNull':!![]},'deny':{'type':Sequelize['STRING'],'allowNull':!![]},'permit':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'secret':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'remotesecret':{'type':Sequelize['STRING'],'allowNull':!![]},'transport':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![],'defaultValue':_0x2b42('0x20'),'set':function(_0x3e029d){this[_0x2b42('0x2')](_0x2b42('0x21'),_0x3e029d?_0x3e029d[_0x2b42('0x22')](','):null);},'get':function(){return this[_0x2b42('0x7')](_0x2b42('0x21'))?this[_0x2b42('0x7')](_0x2b42('0x21'))[_0x2b42('0x23')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0x2b42('0x19')]('rfc2833','info',_0x2b42('0x24'),_0x2b42('0x25'),'auto'),'allowNull':!![],'defaultValue':'rfc2833'},'directmedia':{'type':Sequelize['ENUM'](_0x2b42('0x26'),'no',_0x2b42('0x27'),_0x2b42('0x28'),'outgoing'),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING'],'allowNull':!![]},'directmediadeny':{'type':Sequelize['STRING'],'allowNull':!![]},'nat':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![],'defaultValue':_0x2b42('0x29'),'set':function(_0x18bc1e){this['setDataValue'](_0x2b42('0x2a'),_0x18bc1e?_0x18bc1e[_0x2b42('0x22')](','):null);},'get':function(){return this[_0x2b42('0x7')](_0x2b42('0x2a'))?this[_0x2b42('0x7')]('nat')[_0x2b42('0x23')](','):null;},'comment':_0x2b42('0x2b')},'callgroup':{'type':Sequelize[_0x2b42('0x4')]},'namedcallgroup':{'type':Sequelize[_0x2b42('0x4')]},'pickupgroup':{'type':Sequelize[_0x2b42('0x4')]},'namedpickupgroup':{'type':Sequelize[_0x2b42('0x4')]},'language':{'type':Sequelize[_0x2b42('0x4')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x2b42('0x4')]},'disallow':{'type':Sequelize[_0x2b42('0x4')],'allowNull':![],'defaultValue':_0x2b42('0x2c')},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x17b9b1){this[_0x2b42('0x2')](_0x2b42('0x2d'),_0x17b9b1?_0x17b9b1[_0x2b42('0x22')](';'):'ulaw;alaw;gsm');},'get':function(){return this[_0x2b42('0x7')](_0x2b42('0x2d'))?this[_0x2b42('0x7')](_0x2b42('0x2d'))[_0x2b42('0x23')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]'},'autoframing':{'type':Sequelize[_0x2b42('0x19')]('yes','no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![],'set':function(_0x262243){this['setDataValue']('insecure',_0x262243?_0x262243[_0x2b42('0x22')](','):null);},'get':function(){return this[_0x2b42('0x7')]('insecure')?this['getDataValue'](_0x2b42('0x2e'))[_0x2b42('0x23')](','):null;},'comment':_0x2b42('0x2f')},'trustrpid':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x2b42('0x19')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'callerid':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![],'defaultValue':_0x2b42('0x30')},'amaflags':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':_0x2b42('0x26')},'busylevel':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize['ENUM'](_0x2b42('0x26'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'template':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0x2b42('0x19')]('yes','no',_0x2b42('0x31')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize['ENUM'](_0x2b42('0x26'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'session_timers':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x32'),_0x2b42('0x33'),_0x2b42('0x34')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x35'),'uas'),'allowNull':!![],'defaultValue':_0x2b42('0x36')},'t38pt_usertpsource':{'type':Sequelize['STRING'],'allowNull':!![]},'regexten':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'qualify':{'type':Sequelize['ENUM'](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':_0x2b42('0x26')},'keepalive':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'defaultuser':{'type':Sequelize['STRING'],'allowNull':!![]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'timert1':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'contactdeny':{'type':Sequelize['STRING'],'allowNull':!![]},'contactacl':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize[_0x2b42('0x19')]('yes','no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize['ENUM']('yes','no',_0x2b42('0x37'),_0x2b42('0x38')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize[_0x2b42('0xf')](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0x2b42('0x19')]('active',_0x2b42('0x39'),'actpass'),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING'],'allowNull':!![]},'recordofffeature':{'type':Sequelize['STRING'],'allowNull':!![]},'call_limit':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize['ENUM'](_0x2b42('0x26'),'no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'parkinglot':{'type':Sequelize['STRING'],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0x2b42('0x19')]('yes','no',_0x2b42('0x27'),'update',_0x2b42('0x3a')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize['STRING']},'resetPasswordExpires':{'type':Sequelize[_0x2b42('0x14')]},'passwordResetAt':{'type':Sequelize[_0x2b42('0x14')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0x2b42('0x3b')]},'showWebBar':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0,'set':function(_0x4ba90e){this[_0x2b42('0x2')](_0x2b42('0x3c'),_0x4ba90e);var _0x2a1850=this[_0x2b42('0x3d')]({'plain':!![]});switch(_0x4ba90e){case 0x0:case 0x1:var _0x571ade=_0x2a1850[_0x2b42('0x21')]?_[_0x2b42('0x3e')](_0x2a1850[_0x2b42('0x21')])?_0x2a1850[_0x2b42('0x21')]['join']():_0x2a1850[_0x2b42('0x21')]:_0x2b42('0x20');if(_0x571ade==='wss'){_0x571ade=_0x2b42('0x20');}this[_0x2b42('0x2')](_0x2b42('0x21'),_0x571ade);this[_0x2b42('0x2')](_0x2b42('0x3f'),'no');this[_0x2b42('0x2')](_0x2b42('0x40'),null);this['setDataValue'](_0x2b42('0x41'),null);this[_0x2b42('0x2')](_0x2b42('0x42'),null);this[_0x2b42('0x2')](_0x2b42('0x43'),null);this[_0x2b42('0x2')](_0x2b42('0x44'),null);this[_0x2b42('0x2')](_0x2b42('0x45'),null);this['setDataValue'](_0x2b42('0x46'),null);this[_0x2b42('0x2')]('dtlsprivatekey',null);this['setDataValue']('rtcp_mux','no');break;case 0x2:this[_0x2b42('0x2')](_0x2b42('0x21'),'wss');this[_0x2b42('0x2')](_0x2b42('0x3f'),_0x2b42('0x26'));this[_0x2b42('0x2')](_0x2b42('0x40'),_0x2b42('0x26'));this[_0x2b42('0x2')](_0x2b42('0x41'),_0x2b42('0x26'));this[_0x2b42('0x2')](_0x2b42('0x42'),_0x2b42('0x26'));this[_0x2b42('0x2')](_0x2b42('0x43'),_0x2b42('0x26'));this[_0x2b42('0x2')](_0x2b42('0x44'),'no');this[_0x2b42('0x2')](_0x2b42('0x45'),'actpass');this['setDataValue'](_0x2b42('0x46'),_0x2a1850[_0x2b42('0x46')]||_0x2b42('0x47'));this[_0x2b42('0x2')](_0x2b42('0x48'),_0x2a1850[_0x2b42('0x48')]||'/etc/pki/tls/private/motion.key');this[_0x2b42('0x2')](_0x2b42('0x49'),_0x2b42('0x26'));break;default:}}},'permissions':{'type':Sequelize[_0x2b42('0x3b')],'set':function(_0xb7cd9){this[_0x2b42('0x2')](_0x2b42('0x4a'),_0xb7cd9?_0xb7cd9['join'](','):[]);},'get':function(){return this[_0x2b42('0x7')](_0x2b42('0x4a'))?_['map'](this['getDataValue'](_0x2b42('0x4a'))[_0x2b42('0x23')](','),function(_0x18eb8b){return parseInt(_0x18eb8b,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize['STRING']},'phoneBarNoReplyNumber':{'type':Sequelize['STRING']},'phoneBarBusyNumber':{'type':Sequelize[_0x2b42('0x4')]},'phoneBarUnconditional':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0x2b42('0x4')],'defaultValue':''},'crudPermissions':{'type':Sequelize[_0x2b42('0xf')],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0x2b42('0x19')](_0x2b42('0x26'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0x2b42('0x4')]},'phoneBarEnableJaws':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0x2b42('0x4b')],'get':function(){return this[_0x2b42('0x7')]('phoneBarEnableScreenRecordingByAgent')?this['getDataValue']('phoneBarEnableScreenRecordingByAgent'):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'interface':{'type':Sequelize[_0x2b42('0x4')],'defaultValue':null},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize['STRING'],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0x2b42('0x4')],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![],'set':function(_0x727f78){if(typeof _0x727f78===_0x2b42('0x4c')){var _0x585b40=_0x727f78==='1'?!![]:_0x727f78==='0'?![]:_0x727f78===_0x2b42('0x4d')?!![]:_0x727f78==='false'?![]:![];this['setDataValue'](_0x2b42('0x4e'),_0x585b40);}else{this[_0x2b42('0x2')](_0x2b42('0x4e'),_0x727f78);}}},'blocked':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![],'set':function(_0x1d61cc){this[_0x2b42('0x2')](_0x2b42('0x4f'),_0x1d61cc);if(_0x1d61cc===!![]){this['setDataValue'](_0x2b42('0x50'),moment());this[_0x2b42('0x2')]('loginAttempts',0x0);}else{this['setDataValue'](_0x2b42('0x50'),null);}}},'blockedAt':{'type':Sequelize[_0x2b42('0x14')],'defaultValue':null},'loginAttempts':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'disabled':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0x2b42('0xf')](0x5)['UNSIGNED'],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x2b42('0x15')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x896e=['SmsAccount','addSmsAccounts','removeSmsAccounts','getChatWebsites','addChatWebsites','removeChatWebsites','WhatsappAccount','getWhatsappAccounts','addWhatsappAccounts','removeWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','concat','$gte','$lt','$lte','$not','$between','$notBetween','$in','$like','$notLike','$iLike','$overlap','$contains','$contained','CmHopper','firstName','lastName','phone','Contact','dialActive','VoiceQueue','getApiKey','retrieveApiKey','token','No\x20API\x20access\x20key\x20found!','createApiKey','generateApiKey','iat','nonce','removeApiKey','apiKeyNonce','apiKeyIat','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','whoami','getPresence','teams','queues','inbound','lower','col','toString','asc','desc','substring','uniqBy','orderBy','client','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','ringing','busy','slice','charAt','toUpperCase','QueryTypes','field','ui.','InteractionId','_interactions','ui.UserId\x20=\x20?','OpenTabs','moment','bluebird','util','path','lodash','squel','jayson/promise','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','socket.io-emitter','redis','register','defaults','localhost','http','request','info','User,\x20%s,\x20%s','debug','User,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','destroy','then','get','role','admin','Users','agent','Telephones','telephone','ignore','value','includes','name','UserProfileResource','stack','index','User','rawAttributes','map','type','key','filter','where','query','includeAll','include','attributes','findAll','openTabs','true','rows','dataValues','push','sms','fax','mail','openchannel','whatsapp','all','show','params','differenceBy','keys','salt','filters','model','fields','length','options','find','chat','update','body','describe','addContacts','ids','omit','internal','Setting','findById','securePassword','validatePasswordPattern','password','isNil','min_internal','sequelize','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)','SELECT','from','voicemail','VoiceMail','fullname','email','permissions','101','102','103','113','106','107','108','109','100','111','114','create','Unauthorized','user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','settingsEnabled','userProfileId','UserProfileSection','Agents','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','bulkCreate','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','checkUserLimits','each','isEmpty','autoAssociation','compact','changePassword','oldPassword','newPassword','Sequelize','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','authenticate','Wrong\x20credentials','ValidationError','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','passwordHistoryLimit','enforcePasswordHistory','previousPasswords','updatePasswordsHistory','addQueues','online','loginInPause','voicePause','interface','isValidChannel','Unknown\x20channel','toLowerCase','Queues','penalty','spread','capitalize','QueueId','emit','voice','format','SIP/%s','upsert','removeQueues','channel','remove','isArray','Queue:remove','UserVoiceQueueRt','addAvatar','userpic','getAvatar','join','root','server/files/images/logos/default_profile.png','download','existsSync','server/files/images/','ChatOpenTabs','CHAT','FaxOpenTabs','FAX','createdAt','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','MAIL','SmsOpenTabs','WhatsappOpenTabs','getContacts','CmContact','intersection','order','sort','merge','hasOwnProperty','CmList','List','Tag','Tags','color','tag','nolimit','Queue','pick','Unknown\x20role','getVoiceQueuesRt','ChatGroup','getGroups','VoiceRecording','UserId','getScreenRecordings','ScreenRecording','getChatInteractions','ChatInteraction','getOpenchannelInteractions','OpenchannelInteraction','getMailInteractions','MailInteraction','getSmsInteractions','SmsInteraction','getFaxInteractions','FaxInteraction','getWhatsappInteractions','login','mobile','LOCAL/%s@from-sip/n','intrf','user:%s','user:forcelogout','headers','connection','remoteAddress','socket','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','getVoiceQueues','UserVoiceQueue.penalty','MemberReport','getChannels','YYYY-MM-DD\x20HH:mm:ss','forEach','LOGIN','device','PAUSE','LOGININPAUSE','isMiddleware','resolve','logout','pause','QueuePause','updateAttributes','DEFAULT\x20PAUSE','unpause','mailPause','chatPause','faxPause','openchannelPause','smsPause','whatsapppause','lastPauseAt','manual','%s%s','Pause','getTeams','addTeams','Voice','getChatQueues','Chat','setDataValue','getSmsQueues','Sms','getWhatsappQueues','Whatsapp','Fax','Openchannel','flatten','getDataValue','UserVoicePrefix','VoicePrefixId','removeTeams','Team','getMailQueues','getOpenchannelQueues','transaction','TeamVoicePrefix','getLists','getAgents','values','send','You\x20can\x27t\x20delete\x20yourself','user_has_chat_interactions:save','removeChatInteractions','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','getVoicePrefixes','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','OpenchannelAccount','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts'];(function(_0x279d37,_0x14de3f){var _0x530173=function(_0x37fc79){while(--_0x37fc79){_0x279d37['push'](_0x279d37['shift']());}};_0x530173(++_0x14de3f);}(_0x896e,0x1e9));var _0xe896=function(_0x20ca80,_0x1367d8){_0x20ca80=_0x20ca80-0x0;var _0x3edb61=_0x896e[_0x20ca80];return _0x3edb61;};'use strict';var moment=require(_0xe896('0x0'));var BPromise=require(_0xe896('0x1'));var util=require(_0xe896('0x2'));var path=require(_0xe896('0x3'));var fs=require('fs');var _=require(_0xe896('0x4'));var squel=require(_0xe896('0x5'));var jayson=require(_0xe896('0x6'));var Redis=require(_0xe896('0x7'));var authService=require(_0xe896('0x8'));var qs=require(_0xe896('0x9'));var logger=require(_0xe896('0xa'))(_0xe896('0xb'));var utils=require('../../config/utils');var config=require(_0xe896('0xc'));var licenseUtil=require(_0xe896('0xd'));var db=require(_0xe896('0xe'))['db'];var socket=require(_0xe896('0xf'))(new Redis(config[_0xe896('0x10')]));require('./user.socket')[_0xe896('0x11')](socket);config[_0xe896('0x10')]=_[_0xe896('0x12')](config['redis'],{'host':_0xe896('0x13'),'port':0x18eb});var client=jayson['client'][_0xe896('0x14')]({'port':0x232a});var values;function respondWithRpcPromise(_0x5be679,_0x409eaf,_0x146b12,_0xa00ae9){return new BPromise(function(_0x47a310,_0x3c531e){var _0x4452cd=_0xa00ae9||client;return _0x4452cd[_0xe896('0x15')](_0x5be679,_0x146b12)['then'](function(_0x2aa522){logger[_0xe896('0x16')](_0xe896('0x17'),_0x409eaf,'request\x20sent');logger[_0xe896('0x18')](_0xe896('0x19'),_0x409eaf,_0xe896('0x1a'),JSON['stringify'](_0x2aa522));if(_0x2aa522['error']){if(_0x2aa522[_0xe896('0x1b')][_0xe896('0x1c')]===0x1f4){logger['error']('User,\x20%s,\x20%s',_0x409eaf,_0x2aa522[_0xe896('0x1b')][_0xe896('0x1d')]);return _0x3c531e(_0x2aa522['error'][_0xe896('0x1d')]);}logger['error'](_0xe896('0x17'),_0x409eaf,_0x2aa522[_0xe896('0x1b')][_0xe896('0x1d')]);return _0x47a310(_0x2aa522['error'][_0xe896('0x1d')]);}else{logger[_0xe896('0x16')](_0xe896('0x17'),_0x409eaf,_0xe896('0x1a'));_0x47a310(_0x2aa522[_0xe896('0x1e')][_0xe896('0x1d')]);}})[_0xe896('0x1f')](function(_0x32d3d3){logger['error'](_0xe896('0x17'),_0x409eaf,_0x32d3d3);_0x3c531e(_0x32d3d3);});});}function respondWithStatusCode(_0x5e1f29,_0x5d2c8d){_0x5d2c8d=_0x5d2c8d||0xcc;return function(_0x3117cc){if(_0x3117cc){return _0x5e1f29[_0xe896('0x20')](_0x5d2c8d);}return _0x5e1f29[_0xe896('0x21')](_0x5d2c8d)[_0xe896('0x22')]();};}function respondWithResult(_0x498469,_0x468479){_0x468479=_0x468479||0xc8;return function(_0x4ad156){if(_0x4ad156){return _0x498469['status'](_0x468479)[_0xe896('0x23')](_0x4ad156);}};}function respondWithFilteredResult(_0x41e689,_0x1e952a){return function(_0x2e2c10){if(_0x2e2c10){var _0x20e295=typeof _0x1e952a[_0xe896('0x24')]===_0xe896('0x25')&&typeof _0x1e952a['limit']===_0xe896('0x25');var _0x163a75=_0x2e2c10[_0xe896('0x26')];var _0x569d5f=_0x20e295?0x0:_0x1e952a[_0xe896('0x24')];var _0xd50fe2=_0x20e295?_0x2e2c10[_0xe896('0x26')]:_0x1e952a[_0xe896('0x24')]+_0x1e952a[_0xe896('0x27')];var _0x3f8ceb;if(_0xd50fe2>=_0x163a75){_0xd50fe2=_0x163a75;_0x3f8ceb=0xc8;}else{_0x3f8ceb=0xce;}_0x41e689['status'](_0x3f8ceb);return _0x41e689[_0xe896('0x28')](_0xe896('0x29'),_0x569d5f+'-'+_0xd50fe2+'/'+_0x163a75)[_0xe896('0x23')](_0x2e2c10);}return null;};}function saveUpdates(_0xbfb15b){return function(_0xace03f){if(_0xace03f){return _0xace03f['update'](_0xbfb15b)['then'](function(_0x5c7dae){return _0x5c7dae;});}return null;};}function removeEntity(_0x504d7c){return function(_0x562ddd){if(_0x562ddd){return _0x562ddd[_0xe896('0x2a')]()[_0xe896('0x2b')](function(){var _0x10fd26=_0x562ddd[_0xe896('0x2c')]({'plain':!![]});if(_0x10fd26[_0xe896('0x2d')]===_0xe896('0x2e'))return;var _0x322ebc=[{'name':_0xe896('0x2f'),'value':'user','ignore':!![]},{'name':'Agents','value':_0xe896('0x30'),'ignore':![]},{'name':_0xe896('0x31'),'value':_0xe896('0x32'),'ignore':![]}];var _0x76c0c3=_(_0x322ebc)['filter'](_0xe896('0x33'))['map']('value')[_0xe896('0x34')]();if(_[_0xe896('0x35')](_0x76c0c3,_0x10fd26[_0xe896('0x2d')])){return;}var _0x4a1115=_['find'](_0x322ebc,['value',_0x10fd26[_0xe896('0x2d')]])[_0xe896('0x36')];return db[_0xe896('0x37')][_0xe896('0x2a')]({'where':{'type':_0x4a1115,'resourceId':_0x10fd26['id']}})[_0xe896('0x2b')](function(){return _0x562ddd;});})['then'](function(){_0x504d7c[_0xe896('0x21')](0xcc)[_0xe896('0x22')]();});}};}function handleEntityNotFound(_0x39cbe6){return function(_0x28e09c){if(!_0x28e09c){_0x39cbe6[_0xe896('0x20')](0x194);}return _0x28e09c;};}function handleError(_0x2cce09,_0x3aeccc){_0x3aeccc=_0x3aeccc||0x1f4;return function(_0x3e28f0){logger['error'](_0x3e28f0[_0xe896('0x38')]);if(_0x3e28f0[_0xe896('0x36')]){delete _0x3e28f0['name'];}_0x2cce09[_0xe896('0x21')](_0x3aeccc)['send'](_0x3e28f0);};}exports[_0xe896('0x39')]=function(_0x4f164f,_0x42f445){var _0x5ba71e={},_0x2ab7a6={'count':0x0,'rows':[]};var _0x470c29=_(db[_0xe896('0x3a')][_0xe896('0x3b')])[_0xe896('0x3c')](function(_0x533173){return{'name':_0x533173['fieldName'],'type':_0x533173[_0xe896('0x3d')][_0xe896('0x3e')]};})[_0xe896('0x3f')](function(_0x15b6c5){return!_[_0xe896('0x35')](['password','salt'],_0x15b6c5[_0xe896('0x36')]);})[_0xe896('0x34')]();_0x5ba71e=qs['getOptions'](_0x470c29,_0x4f164f);var _0x57e194={'where':_0x5ba71e[_0xe896('0x40')]};return db[_0xe896('0x3a')][_0xe896('0x26')](_0x57e194)[_0xe896('0x2b')](function(_0x359bfb){_0x2ab7a6[_0xe896('0x26')]=_0x359bfb;if(_0x4f164f[_0xe896('0x41')][_0xe896('0x42')]){_0x5ba71e[_0xe896('0x43')]=[{'all':!![]}];}if(!_[_0xe896('0x35')](_0x5ba71e[_0xe896('0x44')],'id')){_0x5ba71e[_0xe896('0x44')]['push']('id');}return db[_0xe896('0x3a')][_0xe896('0x45')](_0x5ba71e);})['then'](function(_0x57366b){_0x2ab7a6['rows']=_0x57366b;if(_0x4f164f[_0xe896('0x41')][_0xe896('0x46')]===_0xe896('0x47')){var _0x5d1a19=[];for(var _0x431323=0x0;_0x431323<_0x2ab7a6[_0xe896('0x48')]['length'];_0x431323++){_0x5d1a19['push'](get_open_tabs('chat',_0x2ab7a6[_0xe896('0x48')][_0x431323][_0xe896('0x49')]));_0x5d1a19[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4b'),_0x2ab7a6[_0xe896('0x48')][_0x431323][_0xe896('0x49')]));_0x5d1a19['push'](get_open_tabs(_0xe896('0x4c'),_0x2ab7a6[_0xe896('0x48')][_0x431323]['dataValues']));_0x5d1a19[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4d'),_0x2ab7a6[_0xe896('0x48')][_0x431323][_0xe896('0x49')]));_0x5d1a19['push'](get_open_tabs(_0xe896('0x4e'),_0x2ab7a6[_0xe896('0x48')][_0x431323][_0xe896('0x49')]));_0x5d1a19[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4f'),_0x2ab7a6[_0xe896('0x48')][_0x431323]['dataValues']));}return BPromise[_0xe896('0x50')](_0x5d1a19)['then'](function(_0x234a22){return _0x2ab7a6;});}else{return _0x2ab7a6;}})[_0xe896('0x2b')](respondWithFilteredResult(_0x42f445,_0x5ba71e))[_0xe896('0x1f')](handleError(_0x42f445,null));};exports[_0xe896('0x51')]=function(_0x252c27,_0x8523d7){var _0x5b1f4a={'raw':![],'where':{'id':_0x252c27[_0xe896('0x52')]['id']}},_0xbb7658={};_0xbb7658['model']=_[_0xe896('0x53')](_[_0xe896('0x54')](db['User'][_0xe896('0x3b')]),['password',_0xe896('0x55')]);_0xbb7658[_0xe896('0x41')]=_[_0xe896('0x54')](_0x252c27[_0xe896('0x41')]);_0xbb7658[_0xe896('0x56')]=_['intersection'](_0xbb7658[_0xe896('0x57')],_0xbb7658[_0xe896('0x41')]);_0x5b1f4a[_0xe896('0x44')]=_['intersection'](_0xbb7658[_0xe896('0x57')],qs['fields'](_0x252c27['query'][_0xe896('0x58')]));_0x5b1f4a[_0xe896('0x44')]=_0x5b1f4a['attributes'][_0xe896('0x59')]?_0x5b1f4a[_0xe896('0x44')]:_0xbb7658['model'];if(_0x252c27['query'][_0xe896('0x42')]){_0x5b1f4a[_0xe896('0x43')]=[{'all':!![]}];}_0x5b1f4a=_['merge']({},_0x5b1f4a,_0x252c27[_0xe896('0x5a')]);if(!_[_0xe896('0x35')](_0x5b1f4a[_0xe896('0x44')],'id')){_0x5b1f4a[_0xe896('0x44')][_0xe896('0x4a')]('id');}return db[_0xe896('0x3a')][_0xe896('0x5b')](_0x5b1f4a)[_0xe896('0x2b')](handleEntityNotFound(_0x8523d7,null))[_0xe896('0x2b')](function(_0x3837e7){var _0x357302=[];values=_0x3837e7;if(_0x252c27['query'][_0xe896('0x46')]===_0xe896('0x47')){_0x357302[_0xe896('0x4a')](get_open_tabs(_0xe896('0x5c'),_0x3837e7[_0xe896('0x49')]));_0x357302[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4b'),_0x3837e7[_0xe896('0x49')]));_0x357302[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4e'),_0x3837e7[_0xe896('0x49')]));_0x357302[_0xe896('0x4a')](get_open_tabs('whatsapp',_0x3837e7[_0xe896('0x49')]));_0x357302[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4c'),_0x3837e7['dataValues']));_0x357302['push'](get_open_tabs('mail',_0x3837e7[_0xe896('0x49')]));return BPromise[_0xe896('0x50')](_0x357302);}else{return values;}})[_0xe896('0x2b')](function(_0x2496d4){return values;})['then'](respondWithResult(_0x8523d7,null))[_0xe896('0x1f')](handleError(_0x8523d7,null));};exports[_0xe896('0x5d')]=function(_0x57ed84,_0x3c893a){if(_0x57ed84['body']['id']){delete _0x57ed84[_0xe896('0x5e')]['id'];}delete _0x57ed84[_0xe896('0x5e')]['role'];return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x57ed84['params']['id']}})['then'](handleEntityNotFound(_0x3c893a,null))[_0xe896('0x2b')](saveUpdates(_0x57ed84[_0xe896('0x5e')],null))[_0xe896('0x2b')](respondWithResult(_0x3c893a,null))[_0xe896('0x1f')](handleError(_0x3c893a,null));};exports[_0xe896('0x5f')]=function(_0x4e4092,_0xdadb92){return db[_0xe896('0x3a')][_0xe896('0x5f')]()[_0xe896('0x2b')](respondWithResult(_0xdadb92,null))['catch'](handleError(_0xdadb92,null));};exports['addContacts']=function(_0x12c2b4,_0x463299){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x12c2b4['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x463299,null))[_0xe896('0x2b')](function(_0xce2b25){if(_0xce2b25){return _0xce2b25[_0xe896('0x60')](_0x12c2b4[_0xe896('0x5e')][_0xe896('0x61')],_[_0xe896('0x62')](_0x12c2b4[_0xe896('0x5e')],[_0xe896('0x61'),'id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x463299,null))[_0xe896('0x1f')](handleError(_0x463299,null));};function validateUser(_0x3248e6){return new BPromise(function(_0x41ec26,_0x14d88e){if(_0x3248e6[_0xe896('0x63')])return _0x41ec26(_0x3248e6);return db[_0xe896('0x64')][_0xe896('0x65')](0x1)[_0xe896('0x2b')](function(_0x27d90d){if(_0x27d90d[_0xe896('0x66')])authService[_0xe896('0x67')](_0x3248e6[_0xe896('0x68')]);db['User']['max'](_0xe896('0x63'))[_0xe896('0x2b')](function(_0x496e2c){if(_[_0xe896('0x69')](_0x496e2c)){_0x3248e6[_0xe896('0x63')]=_0x27d90d[_0xe896('0x6a')]||0x1;return;}if(_[_0xe896('0x69')](_0x27d90d[_0xe896('0x6a')])||_0x27d90d[_0xe896('0x6a')]===_0x496e2c){_0x3248e6[_0xe896('0x63')]=_0x496e2c+0x1;return;}if(_0x27d90d[_0xe896('0x6a')]>_0x496e2c){_0x3248e6[_0xe896('0x63')]=_0x27d90d[_0xe896('0x6a')];return;}return db[_0xe896('0x6b')]['query'](_0xe896('0x6c'),{'type':db[_0xe896('0x6b')]['QueryTypes'][_0xe896('0x6d')]})['then'](function(_0x47b8b7){if(_0x47b8b7&&_0x47b8b7[_0xe896('0x59')]){for(var _0x1bbeeb=0x0,_0x4fd476=_0x47b8b7['length'];_0x1bbeeb<_0x4fd476&&_[_0xe896('0x69')](_0x3248e6['internal']);_0x1bbeeb++){if(_0x27d90d['min_internal']<=_0x47b8b7[_0x1bbeeb][_0xe896('0x6e')]){_0x3248e6[_0xe896('0x63')]=_0x47b8b7[_0x1bbeeb][_0xe896('0x6e')];}else if(_0x27d90d['min_internal']>_0x47b8b7[_0x1bbeeb][_0xe896('0x6e')]&&_0x27d90d[_0xe896('0x6a')]<=_0x47b8b7[_0x1bbeeb]['to']){_0x3248e6[_0xe896('0x63')]=_0x27d90d['min_internal'];}}}if(_[_0xe896('0x69')](_0x3248e6[_0xe896('0x63')])){_0x3248e6[_0xe896('0x63')]=_0x496e2c+0x1;}return _0x41ec26(_0x3248e6);});});})[_0xe896('0x1f')](function(_0x5ce0ae){_0x14d88e(_0x5ce0ae);});});}function updateUser(_0x253f95){return new BPromise(function(_0x37d951,_0x3b51f1){try{if(_0x253f95[_0xe896('0x6f')]){_0x253f95['mailbox']=_0x253f95[_0xe896('0x63')];_0x253f95[_0xe896('0x70')]={'mailbox':_0x253f95['internal'],'password':_0x253f95[_0xe896('0x68')],'fullname':_0x253f95[_0xe896('0x71')],'email':_0x253f95[_0xe896('0x72')]};}if(_0x253f95[_0xe896('0x2d')]==='agent'){if(!_0x253f95[_0xe896('0x73')])_0x253f95[_0xe896('0x73')]=[_0xe896('0x74'),_0xe896('0x75'),_0xe896('0x76'),_0xe896('0x77'),'110','104','105',_0xe896('0x78'),_0xe896('0x79'),_0xe896('0x7a'),_0xe896('0x7b'),_0xe896('0x7c'),_0xe896('0x7d'),_0xe896('0x7e'),'115'];}_0x37d951(_0x253f95);}catch(_0x5228c8){_0x3b51f1(_0x5228c8);}});}exports[_0xe896('0x7f')]=function(_0x47eded,_0x36bde7){if(_0x47eded['user'][_0xe896('0x2d')]==='agent')throw new Error(_0xe896('0x80'));if(_0x47eded[_0xe896('0x5e')][_0xe896('0x2d')]===_0xe896('0x81')&&_0x47eded[_0xe896('0x81')]['role']!==_0xe896('0x2e')){throw new Error(_0xe896('0x82'));}if(_0x47eded[_0xe896('0x5e')][_0xe896('0x2d')]===_0xe896('0x2e')&&_0x47eded[_0xe896('0x81')][_0xe896('0x2d')]!=='admin'){throw new Error(_0xe896('0x83'));}return licenseUtil['checkUserLimits']([_0x47eded[_0xe896('0x5e')]])[_0xe896('0x2b')](function(){return validateUser(_0x47eded[_0xe896('0x5e')]);})['then'](function(_0x3b31c7){return updateUser(_0x3b31c7)[_0xe896('0x2b')](function(_0x231604){if(_0x231604[_0xe896('0x2d')]===_0xe896('0x2e')){_0x231604[_0xe896('0x84')]=_0x47eded[_0xe896('0x81')][_0xe896('0x84')];delete _0x231604[_0xe896('0x85')];}return _0x231604;});})[_0xe896('0x2b')](function(_0x561b15){return db['User'][_0xe896('0x7f')](_0x561b15,{'include':[{'model':db[_0xe896('0x70')],'as':_0xe896('0x70')}]});})[_0xe896('0x2b')](function(_0x48885e){if(_0x47eded[_0xe896('0x5e')][_0xe896('0x2d')]===_0xe896('0x81'))return _0x48885e;if(_0x47eded[_0xe896('0x81')][_0xe896('0x2d')]!==_0xe896('0x81'))return _0x48885e;return db[_0xe896('0x86')][_0xe896('0x5b')]({'where':{'name':_0x48885e[_0xe896('0x2d')]===_0xe896('0x30')?_0xe896('0x87'):_0xe896('0x31'),'userProfileId':_0x47eded['user'][_0xe896('0x85')]},'raw':!![]})[_0xe896('0x2b')](function(_0x3f0d99){if(!_0x3f0d99||_0x3f0d99['autoAssociation']!=0x0)return _0x48885e;return db[_0xe896('0x37')]['create']({'name':_0x48885e['name'],'resourceId':_0x48885e['id'],'type':_0x3f0d99[_0xe896('0x36')],'sectionId':_0x3f0d99['id']},{})[_0xe896('0x2b')](function(){return _0x48885e;});})[_0xe896('0x1f')](function(_0x497b8f){logger[_0xe896('0x1b')](_0xe896('0x88'),_0x497b8f);throw _0x497b8f;});})['then'](respondWithResult(_0x36bde7,0xc9))['catch'](handleError(_0x36bde7,null));};exports[_0xe896('0x89')]=function(_0x19c9e0,_0x32d2f5){var _0x24924e=_0x19c9e0[_0xe896('0x5e')];var _0x295c34=[];if(_0x19c9e0[_0xe896('0x81')]['role']==='agent')throw new Error(_0xe896('0x80'));if(_['some'](_0x24924e,['role',_0xe896('0x81')])&&_0x19c9e0[_0xe896('0x81')][_0xe896('0x2d')]!==_0xe896('0x2e')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user');}if(_[_0xe896('0x8a')](_0x24924e,[_0xe896('0x2d'),'admin'])&&_0x19c9e0[_0xe896('0x81')][_0xe896('0x2d')]!==_0xe896('0x2e')){throw new Error(_0xe896('0x8b'));}return licenseUtil[_0xe896('0x8c')](_0x24924e)[_0xe896('0x2b')](function(){return validateUser(_0x24924e[0x0]);})[_0xe896('0x2b')](function(){for(var _0x1c5812=0x1;_0x1c5812<_0x24924e[_0xe896('0x59')];_0x1c5812++){var _0x20f8a2=_0x24924e[_0x1c5812-0x1][_0xe896('0x63')];if(!_0x24924e[_0x1c5812][_0xe896('0x63')])_0x24924e[_0x1c5812][_0xe896('0x63')]=_0x20f8a2+0x1;_0x295c34['push'](validateUser(_0x24924e[_0x1c5812]));}return BPromise[_0xe896('0x50')](_0x295c34);})[_0xe896('0x2b')](function(){_0x295c34=[];for(var _0x371e40=0x0;_0x371e40<_0x24924e[_0xe896('0x59')];_0x371e40++){_0x295c34[_0xe896('0x4a')](updateUser(_0x24924e[_0x371e40]));}return BPromise[_0xe896('0x50')](_0x295c34);})[_0xe896('0x2b')](function(){return BPromise[_0xe896('0x8d')](_0x24924e,function(_0x2bf6d5){return db[_0xe896('0x3a')]['create'](_0x2bf6d5,{'include':[{'model':db['VoiceMail'],'as':_0xe896('0x70')}]})[_0xe896('0x2b')](function(_0x3822cd){_0x2bf6d5['id']=_0x3822cd['id'];return _0x2bf6d5;});});})['then'](function(_0x100804){if(_0x19c9e0[_0xe896('0x5e')]['role']===_0xe896('0x81'))return _0x100804;if(_0x19c9e0[_0xe896('0x81')]['role']!==_0xe896('0x81'))return _0x100804;var _0xb137f=_[_0xe896('0x8a')](_0x100804,function(_0x28e40d){return _0x28e40d[_0xe896('0x2d')]===_0xe896('0x30')||_0x28e40d[_0xe896('0x2d')]===_0xe896('0x32');});if(!_0xb137f)return _0x100804;return db['UserProfileSection'][_0xe896('0x45')]({'where':{'name':{'$or':[_0xe896('0x87'),_0xe896('0x31')]},'userProfileId':_0x19c9e0[_0xe896('0x81')][_0xe896('0x85')]},'raw':!![]})['then'](function(_0x446f91){if(_[_0xe896('0x8e')](_0x446f91)||!_[_0xe896('0x8a')](_0x446f91,['autoAssociation',0x0]))return _0x100804;_0x295c34=[];var _0x2ffbb1=_(_0x446f91)[_0xe896('0x3c')](function(_0x406f50){if(_0x406f50[_0xe896('0x8f')]===0x1)return;return _0x406f50[_0xe896('0x36')]===_0xe896('0x87')?_0xe896('0x30'):_0xe896('0x32');})[_0xe896('0x90')]()['value']();for(var _0x3da4c5=0x0;_0x3da4c5<_0x100804['length'];_0x3da4c5++){if(!_[_0xe896('0x35')](_0x2ffbb1,_0x100804[_0x3da4c5][_0xe896('0x2d')]))return;var _0x166672=_0x100804[_0x3da4c5][_0xe896('0x2d')]==='agent'?_0xe896('0x87'):_0xe896('0x31');_0x295c34['push'](db[_0xe896('0x37')][_0xe896('0x7f')]({'name':_0x100804[_0x3da4c5][_0xe896('0x36')],'resourceId':_0x100804[_0x3da4c5]['id'],'type':_0x166672,'sectionId':_['find'](_0x446f91,[_0xe896('0x36'),_0x166672])['id']},{}));}return BPromise['all'](_0x295c34);});})['then'](respondWithResult(_0x32d2f5,0xc9))[_0xe896('0x1f')](handleError(_0x32d2f5,null));};exports[_0xe896('0x91')]=function(_0x5c4826,_0x1cf246){if(_0x5c4826[_0xe896('0x5e')]['id']){delete _0x5c4826['body']['id'];}return db['User']['find']({'where':{'id':_0x5c4826['params']['id']}})[_0xe896('0x2b')](function(_0x237cae){if(!_0x237cae)return null;if(_0x237cae['id']===_0x5c4826[_0xe896('0x81')]['id']){if(!_0x5c4826[_0xe896('0x5e')][_0xe896('0x92')]||!_0x5c4826[_0xe896('0x5e')][_0xe896('0x93')]){throw new db[(_0xe896('0x94'))]['ValidationError'](_0xe896('0x95'));}if(!_0x237cae[_0xe896('0x96')](_0x5c4826[_0xe896('0x5e')][_0xe896('0x92')])){throw new db['Sequelize']['ValidationError'](_0xe896('0x97'));}if(_0x5c4826[_0xe896('0x5e')]['oldPassword']===_0x5c4826['body'][_0xe896('0x93')]){throw new db[(_0xe896('0x94'))][(_0xe896('0x98'))](_0xe896('0x99'));}}else if(_0x5c4826[_0xe896('0x81')]['role']===_0xe896('0x2e')){if(!_0x5c4826[_0xe896('0x5e')][_0xe896('0x93')]){throw new db['Sequelize'][(_0xe896('0x98'))](_0xe896('0x9a'));}}else if(_0x5c4826[_0xe896('0x81')][_0xe896('0x2d')]===_0xe896('0x81')){if(!_0x5c4826['body'][_0xe896('0x93')]){throw new db[(_0xe896('0x94'))][(_0xe896('0x98'))]('Invalid\x20body\x20format.\x20Use\x20newPassword');}if(_0x237cae[_0xe896('0x2d')]!=='agent'){throw new db[(_0xe896('0x94'))][(_0xe896('0x98'))](_0xe896('0x80'));}}else{throw new db[(_0xe896('0x94'))][(_0xe896('0x98'))](_0xe896('0x80'));}return _0x237cae;})['then'](handleEntityNotFound(_0x1cf246,null))['then'](function(_0x43fe9a){return db['Setting'][_0xe896('0x9b')]({'attributes':['id',_0xe896('0x66'),'enforcePasswordHistory',_0xe896('0x9c')]})[_0xe896('0x2b')](function(_0x571abb){if(_0x571abb[_0xe896('0x66')])authService['validatePasswordPattern'](_0x5c4826[_0xe896('0x5e')][_0xe896('0x93')]);if(!_0x571abb[_0xe896('0x9d')]||!_0x43fe9a[_0xe896('0x9e')])return _0x43fe9a;authService['validatePasswordHistory'](_0x5c4826[_0xe896('0x5e')][_0xe896('0x93')],_0x43fe9a[_0xe896('0x9e')],_0x571abb[_0xe896('0x9c')]);return _0x43fe9a;})[_0xe896('0x2b')](saveUpdates({'password':_0x5c4826[_0xe896('0x5e')][_0xe896('0x93')],'passwordResetAt':_0x5c4826[_0xe896('0x81')]['id']==_0x5c4826[_0xe896('0x52')]['id']?moment():null,'previousPasswords':authService[_0xe896('0x9f')](_0x5c4826[_0xe896('0x5e')][_0xe896('0x93')],_0x43fe9a[_0xe896('0x9e')])},null));})[_0xe896('0x2b')](respondWithResult(_0x1cf246,null))[_0xe896('0x1f')](handleError(_0x1cf246,null));};exports[_0xe896('0xa0')]=function(_0x16b398,_0x4edeaf){var _0x10d8bf=_0x16b398[_0xe896('0x5e')]['channel'];return db['User'][_0xe896('0x5b')]({'where':{'id':_0x16b398[_0xe896('0x52')]['id']},'attributes':['id',_0xe896('0x36'),_0xe896('0x2d'),_0xe896('0xa1'),_0xe896('0xa2'),_0xe896('0xa3'),_0xe896('0xa4')]})['then'](handleEntityNotFound(_0x4edeaf,null))[_0xe896('0x2b')](function(_0x3c70a3){if(_0x3c70a3){if(!utils[_0xe896('0xa5')](_0x10d8bf)){throw new db[(_0xe896('0x94'))]['ValidationError'](_0xe896('0xa6'));}return _0x3c70a3['add'+_['capitalize'](_0x10d8bf[_0xe896('0xa7')]())+_0xe896('0xa8')](_0x16b398[_0xe896('0x5e')][_0xe896('0x61')],{'penalty':_0x16b398[_0xe896('0x5e')][_0xe896('0xa9')]||0x0})[_0xe896('0xaa')](function(_0x49293e){for(var _0x2d3ada=0x0;_0x2d3ada<_0x16b398[_0xe896('0x5e')][_0xe896('0x61')][_0xe896('0x59')];_0x2d3ada+=0x1){var _0xe78476={'UserId':Number(_0x16b398[_0xe896('0x52')]['id'])};_0xe78476[_[_0xe896('0xab')](_0x10d8bf[_0xe896('0xa7')]())+_0xe896('0xac')]=Number(_0x16b398['body'][_0xe896('0x61')][_0x2d3ada]);socket[_0xe896('0xad')]('user'+_[_0xe896('0xab')](_0x10d8bf['toLowerCase']())+'Queue:save',_0xe78476);}return _0x49293e;})[_0xe896('0x2b')](function(){if(_0x10d8bf==='voice'){return db['VoiceQueue'][_0xe896('0x45')]({'where':{'id':_0x16b398[_0xe896('0x5e')][_0xe896('0x61')]||[]},'raw':!![],'attributes':['id','name']});}})[_0xe896('0x2b')](function(_0x55be9b){var _0x1bcbac=_0x3c70a3[_0xe896('0x2c')]({'plain':!![]});var _0x59c689=[];if(_0x10d8bf===_0xe896('0xae')&&_0x1bcbac[_0xe896('0x2d')]==='agent'&&_0x1bcbac[_0xe896('0xa1')]){for(var _0x5478f3=0x0;_0x5478f3<_0x55be9b['length'];_0x5478f3+=0x1){_0x59c689['push']({'membername':_0x1bcbac[_0xe896('0x36')],'UserId':_0x1bcbac['id'],'queue_name':_0x55be9b[_0x5478f3]['name'],'VoiceQueueId':_0x55be9b[_0x5478f3]['id'],'interface':_[_0xe896('0x69')](_0x1bcbac[_0xe896('0xa4')])?util[_0xe896('0xaf')](_0xe896('0xb0'),_0x1bcbac['name']):_0x1bcbac[_0xe896('0xa4')],'paused':_0x1bcbac[_0xe896('0xa3')]||![],'penalty':_0x16b398[_0xe896('0x5e')][_0xe896('0xa9')]||0x0});}return BPromise['each'](_0x59c689,function(_0x3f9c29){return db['UserVoiceQueueRt'][_0xe896('0xb1')](_0x3f9c29);});}return _0x3c70a3;});}})[_0xe896('0x2b')](respondWithStatusCode(_0x4edeaf,null))[_0xe896('0x1f')](handleError(_0x4edeaf,null));};exports[_0xe896('0xb2')]=function(_0x5a5336,_0x42ab19){var _0x4d3a74;return db[_0xe896('0x3a')]['find']({'where':{'id':_0x5a5336[_0xe896('0x52')]['id']},'attributes':['id',_0xe896('0x36'),_0xe896('0x2d')]})['then'](handleEntityNotFound(_0x42ab19,null))[_0xe896('0x2b')](function(_0x4ba3b6){if(_0x4ba3b6){_0x4d3a74=_0x4ba3b6;if(!_0x5a5336[_0xe896('0x41')][_0xe896('0xb3')]||!utils['isValidChannel'](_0x5a5336[_0xe896('0x41')][_0xe896('0xb3')])){throw new db['Sequelize'][(_0xe896('0x98'))](_0xe896('0xa6'));}return _0x4ba3b6[_0xe896('0xb4')+_[_0xe896('0xab')](_0x5a5336[_0xe896('0x41')][_0xe896('0xb3')][_0xe896('0xa7')]())+_0xe896('0xa8')](_0x5a5336[_0xe896('0x41')]['ids']);}})['then'](function(_0x3cf3df){if(_[_0xe896('0xb5')](_0x5a5336['query'][_0xe896('0x61')])){for(var _0x325631=0x0;_0x325631<_0x5a5336['query']['ids'][_0xe896('0x59')];_0x325631+=0x1){var _0x265206={'UserId':Number(_0x5a5336['params']['id'])};_0x265206[_[_0xe896('0xab')](_0x5a5336[_0xe896('0x41')]['channel'][_0xe896('0xa7')]())+_0xe896('0xac')]=Number(_0x5a5336[_0xe896('0x41')]['ids'][_0x325631]);socket[_0xe896('0xad')](_0xe896('0x81')+_['capitalize'](_0x5a5336[_0xe896('0x41')][_0xe896('0xb3')][_0xe896('0xa7')]())+_0xe896('0xb6'),_0x265206);}}else{var _0x265206={'UserId':Number(_0x5a5336[_0xe896('0x52')]['id'])};_0x265206[_[_0xe896('0xab')](_0x5a5336[_0xe896('0x41')][_0xe896('0xb3')][_0xe896('0xa7')]())+_0xe896('0xac')]=Number(_0x5a5336[_0xe896('0x41')][_0xe896('0x61')]);socket[_0xe896('0xad')]('user'+_[_0xe896('0xab')](_0x5a5336['query'][_0xe896('0xb3')][_0xe896('0xa7')]())+'Queue:remove',_0x265206);}return _0x3cf3df;})[_0xe896('0x2b')](function(){if(_0x5a5336[_0xe896('0x41')][_0xe896('0xb3')]==='voice'){return db[_0xe896('0xb7')][_0xe896('0x2a')]({'where':{'UserId':_0x5a5336[_0xe896('0x52')]['id'],'VoiceQueueId':_0x5a5336[_0xe896('0x41')][_0xe896('0x61')]},'individualHooks':!![]})[_0xe896('0x2b')](function(){return _0x4d3a74;});}return _0x4d3a74;})[_0xe896('0x2b')](respondWithStatusCode(_0x42ab19,null))[_0xe896('0x1f')](handleError(_0x42ab19,null));};exports[_0xe896('0xb8')]=function(_0x48456b,_0x5b688b){_0x48456b['body'][_0xe896('0xb9')]=_0x48456b['file']['filename'];return db[_0xe896('0x3a')]['find']({'where':{'id':_0x48456b['params']['id']}})['then'](handleEntityNotFound(_0x5b688b,null))[_0xe896('0x2b')](saveUpdates(_0x48456b['body'],null))[_0xe896('0x2b')](respondWithResult(_0x5b688b,null))[_0xe896('0x1f')](handleError(_0x5b688b,null));};exports[_0xe896('0xba')]=function(_0x29cf8c,_0x5d0efc){var _0x11fdf2=path[_0xe896('0xbb')](config[_0xe896('0xbc')],_0xe896('0xbd'));return db[_0xe896('0x3a')]['find']({'where':{'id':_0x29cf8c['params']['id']},'attributes':['id',_0xe896('0xb9')],'raw':!![]})[_0xe896('0x2b')](handleEntityNotFound(_0x5d0efc,null))['then'](function(_0x21b078){if(_0x21b078){if(_[_0xe896('0x69')](_0x21b078[_0xe896('0xb9')])){return _0x5d0efc[_0xe896('0xbe')](_0x11fdf2);}else{if(!fs[_0xe896('0xbf')](path[_0xe896('0xbb')](config[_0xe896('0xbc')],_0xe896('0xc0'),_0x21b078[_0xe896('0xb9')]))){return _0x5d0efc[_0xe896('0xbe')](_0x11fdf2);}return _0x5d0efc[_0xe896('0xbe')](path[_0xe896('0xbb')](config[_0xe896('0xbc')],'server/files/images/',_0x21b078[_0xe896('0xb9')]));}}})[_0xe896('0x1f')](handleError(_0x5d0efc,null));};exports['getOpenTabs']=function(_0x17e2a5,_0x361452){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x17e2a5[_0xe896('0x52')]['id']},'attributes':['id']})[_0xe896('0x2b')](handleEntityNotFound(_0x361452,null))[_0xe896('0x2b')](function(_0x1005df){var _0x21aa35=[];values=_0x1005df[_0xe896('0x49')];_0x21aa35['push'](get_open_tabs(_0xe896('0x5c'),_0x1005df['dataValues']));_0x21aa35[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4b'),_0x1005df[_0xe896('0x49')]));_0x21aa35[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4e'),_0x1005df[_0xe896('0x49')]));_0x21aa35[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4f'),_0x1005df['dataValues']));_0x21aa35[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4c'),_0x1005df[_0xe896('0x49')]));_0x21aa35[_0xe896('0x4a')](get_open_tabs(_0xe896('0x4d'),_0x1005df[_0xe896('0x49')]));return BPromise[_0xe896('0x50')](_0x21aa35);})[_0xe896('0x2b')](function(_0x4e631a){var _0x2c7636=[];if(_0x4e631a){for(var _0x3fc0fe=0x0;_0x3fc0fe<values[_0xe896('0xc1')]['length'];_0x3fc0fe++){var _0x473c4e=values[_0xe896('0xc1')][_0x3fc0fe];_0x2c7636[_0xe896('0x4a')]({'channel':_0xe896('0xc2'),'id':_0x473c4e['id'],'createdAt':_0x473c4e['createdAt']});}for(var _0x3fc0fe=0x0;_0x3fc0fe<values[_0xe896('0xc3')][_0xe896('0x59')];_0x3fc0fe++){var _0x473c4e=values[_0xe896('0xc3')][_0x3fc0fe];_0x2c7636[_0xe896('0x4a')]({'channel':_0xe896('0xc4'),'id':_0x473c4e['id'],'createdAt':_0x473c4e[_0xe896('0xc5')]});}for(var _0x3fc0fe=0x0;_0x3fc0fe<values[_0xe896('0xc6')]['length'];_0x3fc0fe++){var _0x473c4e=values[_0xe896('0xc6')][_0x3fc0fe];_0x2c7636['push']({'channel':_0xe896('0xc7'),'id':_0x473c4e['id'],'createdAt':_0x473c4e[_0xe896('0xc5')]});}for(var _0x3fc0fe=0x0;_0x3fc0fe<values['MailOpenTabs']['length'];_0x3fc0fe++){var _0x473c4e=values[_0xe896('0xc8')][_0x3fc0fe];_0x2c7636[_0xe896('0x4a')]({'channel':_0xe896('0xc9'),'id':_0x473c4e['id'],'createdAt':_0x473c4e[_0xe896('0xc5')]});}for(var _0x3fc0fe=0x0;_0x3fc0fe<values[_0xe896('0xca')]['length'];_0x3fc0fe++){var _0x473c4e=values['SmsOpenTabs'][_0x3fc0fe];_0x2c7636[_0xe896('0x4a')]({'channel':'SMS','id':_0x473c4e['id'],'createdAt':_0x473c4e[_0xe896('0xc5')]});}for(var _0x3fc0fe=0x0;_0x3fc0fe<values['WhatsappOpenTabs']['length'];_0x3fc0fe++){var _0x473c4e=values[_0xe896('0xcb')][_0x3fc0fe];_0x2c7636['push']({'channel':'WHATSAPP','id':_0x473c4e['id'],'createdAt':_0x473c4e[_0xe896('0xc5')]});}var _0x33ab0a={'count':_0x2c7636[_0xe896('0x59')],'rows':_0x2c7636};return _0x33ab0a;}else return null;})[_0xe896('0x2b')](respondWithResult(_0x361452,null))[_0xe896('0x1f')](handleError(_0x361452,null));};exports[_0xe896('0xcc')]=function(_0x428dde,_0x35a578){var _0x12a297={};var _0x1200af={};var _0x9cfed3;var _0xf49c3f;return db[_0xe896('0x3a')]['findOne']({'where':{'id':_0x428dde['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x35a578,null))[_0xe896('0x2b')](function(_0x20390c){if(_0x20390c){_0x9cfed3=_0x20390c;_0x1200af[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0xcd')][_0xe896('0x3b')]);_0x1200af[_0xe896('0x41')]=_[_0xe896('0x54')](_0x428dde[_0xe896('0x41')]);_0x1200af[_0xe896('0x56')]=_[_0xe896('0xce')](_0x1200af[_0xe896('0x57')],_0x1200af[_0xe896('0x41')]);_0x12a297[_0xe896('0x44')]=_[_0xe896('0xce')](_0x1200af['model'],qs['fields'](_0x428dde['query'][_0xe896('0x58')]));_0x12a297[_0xe896('0x44')]=_0x12a297[_0xe896('0x44')][_0xe896('0x59')]?_0x12a297[_0xe896('0x44')]:_0x1200af[_0xe896('0x57')];_0x12a297[_0xe896('0xcf')]=qs['sort'](_0x428dde['query'][_0xe896('0xd0')]);_0x12a297[_0xe896('0x40')]=qs['filters'](_['pick'](_0x428dde[_0xe896('0x41')],_0x1200af[_0xe896('0x56')]));if(_0x428dde[_0xe896('0x41')]['filter']){_0x12a297[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x12a297[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x12a297['attributes'],function(_0x4faeb4){var _0x518847={};_0x518847[_0x4faeb4]={'$like':'%'+_0x428dde[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x518847;})});}_0x12a297=_['merge']({},_0x12a297,_0x428dde[_0xe896('0x5a')]);return _0x9cfed3[_0xe896('0xcc')](_0x12a297);}})[_0xe896('0x2b')](function(_0x2da01c){if(_0x2da01c){_0xf49c3f=_0x2da01c['length'];if(_0x428dde[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0x42'))){_0x12a297[_0xe896('0x43')]=[{'model':db[_0xe896('0xd3')],'as':_0xe896('0xd4'),'required':![]},{'model':db[_0xe896('0xd5')],'as':_0xe896('0xd6'),'attributes':['id',_0xe896('0x36'),_0xe896('0xd7')],'where':_0x428dde[_0xe896('0x41')][_0xe896('0xd8')]?{'id':_0x428dde[_0xe896('0x41')][_0xe896('0xd8')]}:undefined,'required':_0x428dde['query'][_0xe896('0xd8')]?!![]:![]}];}if(!_0x428dde['query'][_0xe896('0xd2')](_0xe896('0xd9'))){_0x12a297['limit']=qs['limit'](_0x428dde[_0xe896('0x41')][_0xe896('0x27')]);_0x12a297[_0xe896('0x24')]=qs['offset'](_0x428dde[_0xe896('0x41')][_0xe896('0x24')]);}return _0x9cfed3[_0xe896('0xcc')](_0x12a297);}})['then'](function(_0x2eed80){if(_0x2eed80){return _0x2eed80?{'count':_0xf49c3f,'rows':_0x2eed80}:null;}})[_0xe896('0x2b')](respondWithResult(_0x35a578,null))[_0xe896('0x1f')](handleError(_0x35a578,null));};exports['getQueues']=function(_0x5e8f28,_0xf497b1){var _0x4f270e;var _0x2882e2;var _0x35f8a7={};var _0x3fc305;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x5e8f28[_0xe896('0x52')]['id']},'attributes':['id',_0xe896('0x36'),'role']})['then'](handleEntityNotFound(_0xf497b1,null))[_0xe896('0x2b')](function(_0x2e8b41){if(!utils['isValidChannel'](_0x5e8f28[_0xe896('0x41')][_0xe896('0xb3')])){throw new db['Sequelize']['ValidationError']('Unknown\x20channel');}_0x4f270e=_0x2e8b41;var _0x5d35d7={};_0x5d35d7['model']=_['keys'](db[_[_0xe896('0xab')](_0x5e8f28['query'][_0xe896('0xb3')])+_0xe896('0xda')][_0xe896('0x3b')]);_0x5d35d7[_0xe896('0x41')]=_['keys'](_0x5e8f28[_0xe896('0x41')]);_0x5d35d7[_0xe896('0x56')]=_[_0xe896('0xce')](_0x5d35d7['model'],_0x5d35d7[_0xe896('0x41')]);_0x35f8a7[_0xe896('0x44')]=_[_0xe896('0xce')](_0x5d35d7[_0xe896('0x57')],qs[_0xe896('0x58')](_0x5e8f28[_0xe896('0x41')][_0xe896('0x58')]));_0x35f8a7[_0xe896('0x44')]=_0x35f8a7[_0xe896('0x44')][_0xe896('0x59')]?_0x35f8a7['attributes']:_0x5d35d7[_0xe896('0x57')];_0x35f8a7[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x5e8f28[_0xe896('0x41')]['sort']);_0x35f8a7[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x5e8f28[_0xe896('0x41')],_0x5d35d7[_0xe896('0x56')]));if(_0x5e8f28[_0xe896('0x41')]['filter']){_0x35f8a7['where']=_[_0xe896('0xd1')](_0x35f8a7['where'],{'$or':_['map'](_0x35f8a7[_0xe896('0x44')],function(_0x3d4c0e){var _0x47050d={};_0x47050d[_0x3d4c0e]={'$like':'%'+_0x5e8f28['query'][_0xe896('0x3f')]+'%'};return _0x47050d;})});}_0x35f8a7=_['merge']({},_0x35f8a7,_0x5e8f28[_0xe896('0x5a')]);switch(_0x4f270e[_0xe896('0x2d')]){case'admin':return db[_[_0xe896('0xab')](_0x5e8f28[_0xe896('0x41')][_0xe896('0xb3')])+_0xe896('0xda')]['findAll'](_0x35f8a7);case _0xe896('0x81'):case'agent':return _0x4f270e[_0xe896('0x2c')+_[_0xe896('0xab')](_0x5e8f28[_0xe896('0x41')]['channel'])+'Queues'](_0x35f8a7);default:throw new db[(_0xe896('0x94'))][(_0xe896('0x98'))](_0xe896('0xdc'));}})[_0xe896('0x2b')](function(_0xe35a9d){_0x3fc305=_0xe35a9d[_0xe896('0x59')];if(!_0x5e8f28[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x35f8a7[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x5e8f28['query'][_0xe896('0x27')]);_0x35f8a7['offset']=qs['offset'](_0x5e8f28[_0xe896('0x41')][_0xe896('0x24')]);}switch(_0x4f270e[_0xe896('0x2d')]){case _0xe896('0x2e'):return db[_[_0xe896('0xab')](_0x5e8f28['query'][_0xe896('0xb3')])+_0xe896('0xda')][_0xe896('0x45')](_0x35f8a7);case _0xe896('0x81'):case _0xe896('0x30'):return _0x4f270e['get'+_[_0xe896('0xab')](_0x5e8f28[_0xe896('0x41')][_0xe896('0xb3')])+_0xe896('0xa8')](_0x35f8a7);}})['then'](function(_0x462b04){return{'count':_0x3fc305,'rows':_0x462b04};})[_0xe896('0x2b')](respondWithResult(_0xf497b1,null))[_0xe896('0x1f')](handleError(_0xf497b1,null));};exports[_0xe896('0xdd')]=function(_0x5378ae,_0x41341b){var _0x465b60={};var _0x3f13ca={};var _0x3fe8d0;var _0x370362;return db['User'][_0xe896('0x9b')]({'where':{'id':_0x5378ae[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x41341b,null))['then'](function(_0x42490d){if(_0x42490d){_0x3fe8d0=_0x42490d;_0x3f13ca[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0xb7')]['rawAttributes']);_0x3f13ca[_0xe896('0x41')]=_[_0xe896('0x54')](_0x5378ae[_0xe896('0x41')]);_0x3f13ca[_0xe896('0x56')]=_['intersection'](_0x3f13ca['model'],_0x3f13ca['query']);_0x465b60[_0xe896('0x44')]=_[_0xe896('0xce')](_0x3f13ca[_0xe896('0x57')],qs[_0xe896('0x58')](_0x5378ae[_0xe896('0x41')]['fields']));_0x465b60[_0xe896('0x44')]=_0x465b60[_0xe896('0x44')]['length']?_0x465b60[_0xe896('0x44')]:_0x3f13ca[_0xe896('0x57')];_0x465b60[_0xe896('0xcf')]=qs['sort'](_0x5378ae[_0xe896('0x41')][_0xe896('0xd0')]);_0x465b60[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x5378ae[_0xe896('0x41')],_0x3f13ca['filters']));if(_0x5378ae[_0xe896('0x41')][_0xe896('0x3f')]){_0x465b60['where']=_[_0xe896('0xd1')](_0x465b60[_0xe896('0x40')],{'$or':_['map'](_0x465b60[_0xe896('0x44')],function(_0x45fbfd){var _0x4ae941={};_0x4ae941[_0x45fbfd]={'$like':'%'+_0x5378ae['query'][_0xe896('0x3f')]+'%'};return _0x4ae941;})});}_0x465b60=_[_0xe896('0xd1')]({},_0x465b60,_0x5378ae['options']);return _0x3fe8d0[_0xe896('0xdd')](_0x465b60);}})[_0xe896('0x2b')](function(_0x4c4d25){if(_0x4c4d25){_0x370362=_0x4c4d25[_0xe896('0x59')];if(!_0x5378ae[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x465b60[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x5378ae[_0xe896('0x41')][_0xe896('0x27')]);_0x465b60[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x5378ae['query'][_0xe896('0x24')]);}return _0x3fe8d0['getVoiceQueuesRt'](_0x465b60);}})['then'](function(_0x464336){if(_0x464336){return _0x464336?{'count':_0x370362,'rows':_0x464336}:null;}})[_0xe896('0x2b')](respondWithResult(_0x41341b,null))['catch'](handleError(_0x41341b,null));};exports['getGroups']=function(_0x12c05e,_0xdd5641){var _0x40efd6={};var _0x513fbe={};var _0x17b841;var _0x2d1fb1;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x12c05e[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0xdd5641,null))[_0xe896('0x2b')](function(_0x42e0d5){if(_0x42e0d5){_0x17b841=_0x42e0d5;_0x513fbe[_0xe896('0x57')]=_['keys'](db[_0xe896('0xde')][_0xe896('0x3b')]);_0x513fbe[_0xe896('0x41')]=_[_0xe896('0x54')](_0x12c05e[_0xe896('0x41')]);_0x513fbe['filters']=_['intersection'](_0x513fbe[_0xe896('0x57')],_0x513fbe['query']);_0x40efd6[_0xe896('0x44')]=_[_0xe896('0xce')](_0x513fbe[_0xe896('0x57')],qs[_0xe896('0x58')](_0x12c05e['query'][_0xe896('0x58')]));_0x40efd6[_0xe896('0x44')]=_0x40efd6[_0xe896('0x44')]['length']?_0x40efd6[_0xe896('0x44')]:_0x513fbe[_0xe896('0x57')];_0x40efd6['order']=qs[_0xe896('0xd0')](_0x12c05e[_0xe896('0x41')][_0xe896('0xd0')]);_0x40efd6[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x12c05e[_0xe896('0x41')],_0x513fbe['filters']));if(_0x12c05e[_0xe896('0x41')][_0xe896('0x3f')]){_0x40efd6[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x40efd6[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x40efd6[_0xe896('0x44')],function(_0xf76b65){var _0x52b274={};_0x52b274[_0xf76b65]={'$like':'%'+_0x12c05e[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x52b274;})});}_0x40efd6=_[_0xe896('0xd1')]({},_0x40efd6,_0x12c05e['options']);return _0x17b841[_0xe896('0xdf')](_0x40efd6);}})[_0xe896('0x2b')](function(_0x339d90){if(_0x339d90){_0x2d1fb1=_0x339d90[_0xe896('0x59')];if(!_0x12c05e['query'][_0xe896('0xd2')](_0xe896('0xd9'))){_0x40efd6[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x12c05e[_0xe896('0x41')][_0xe896('0x27')]);_0x40efd6[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x12c05e[_0xe896('0x41')][_0xe896('0x24')]);}return _0x17b841[_0xe896('0xdf')](_0x40efd6);}})[_0xe896('0x2b')](function(_0xf58a1c){if(_0xf58a1c){return _0xf58a1c?{'count':_0x2d1fb1,'rows':_0xf58a1c}:null;}})[_0xe896('0x2b')](respondWithResult(_0xdd5641,null))[_0xe896('0x1f')](handleError(_0xdd5641,null));};exports['getRecordings']=function(_0x5f0381,_0x5cd4ff){var _0x81d8be={'raw':!![],'where':{}};var _0x83e060={};var _0x309fe9={'count':0x0,'rows':[]};return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x5f0381[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x5cd4ff,null))[_0xe896('0x2b')](function(_0x1fa51e){if(_0x1fa51e){_0x83e060[_0xe896('0x57')]=_['keys'](db[_0xe896('0xe0')]['rawAttributes']);_0x83e060['query']=_[_0xe896('0x54')](_0x5f0381[_0xe896('0x41')]);_0x83e060[_0xe896('0x56')]=_[_0xe896('0xce')](_0x83e060['model'],_0x83e060[_0xe896('0x41')]);_0x81d8be[_0xe896('0x44')]=_['intersection'](_0x83e060[_0xe896('0x57')],qs[_0xe896('0x58')](_0x5f0381[_0xe896('0x41')][_0xe896('0x58')]));_0x81d8be['attributes']=_0x81d8be[_0xe896('0x44')]['length']?_0x81d8be[_0xe896('0x44')]:_0x83e060[_0xe896('0x57')];if(!_0x5f0381[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x81d8be[_0xe896('0x27')]=qs['limit'](_0x5f0381[_0xe896('0x41')][_0xe896('0x27')]);_0x81d8be[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x5f0381['query'][_0xe896('0x24')]);}_0x81d8be[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x5f0381[_0xe896('0x41')]['sort']);_0x81d8be[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x5f0381[_0xe896('0x41')],_0x83e060[_0xe896('0x56')]));_0x81d8be[_0xe896('0x40')][_0xe896('0xe1')]=_0x1fa51e['id'];if(_0x5f0381[_0xe896('0x41')]['filter']){_0x81d8be['where']=_[_0xe896('0xd1')](_0x81d8be[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x81d8be[_0xe896('0x44')],function(_0x4c5584){var _0xfeadef={};_0xfeadef[_0x4c5584]={'$like':'%'+_0x5f0381[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0xfeadef;})});}_0x81d8be=_[_0xe896('0xd1')]({},_0x81d8be,_0x5f0381[_0xe896('0x5a')]);return db[_0xe896('0xe0')][_0xe896('0x26')]({'where':_0x81d8be['where']})[_0xe896('0x2b')](function(_0x18e918){_0x309fe9[_0xe896('0x26')]=_0x18e918;if(_0x5f0381[_0xe896('0x41')][_0xe896('0x42')]){_0x81d8be['include']=[{'all':!![]}];}return db[_0xe896('0xe0')]['findAll'](_0x81d8be);})[_0xe896('0x2b')](function(_0x50d56b){_0x309fe9['rows']=_0x50d56b;return _0x309fe9;});}})[_0xe896('0x2b')](respondWithFilteredResult(_0x5cd4ff,_0x81d8be))[_0xe896('0x1f')](handleError(_0x5cd4ff,null));};exports[_0xe896('0xe2')]=function(_0x9223f,_0x15486a){var _0x46764e={'raw':!![],'where':{}};var _0x1cd8b4={};var _0x399827={'count':0x0,'rows':[]};return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x9223f[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x15486a,null))[_0xe896('0x2b')](function(_0x54a741){if(_0x54a741){_0x1cd8b4[_0xe896('0x57')]=_[_0xe896('0x54')](db['ScreenRecording'][_0xe896('0x3b')]);_0x1cd8b4[_0xe896('0x41')]=_['keys'](_0x9223f[_0xe896('0x41')]);_0x1cd8b4[_0xe896('0x56')]=_[_0xe896('0xce')](_0x1cd8b4[_0xe896('0x57')],_0x1cd8b4['query']);_0x46764e['attributes']=_['intersection'](_0x1cd8b4['model'],qs[_0xe896('0x58')](_0x9223f[_0xe896('0x41')][_0xe896('0x58')]));_0x46764e[_0xe896('0x44')]=_0x46764e[_0xe896('0x44')][_0xe896('0x59')]?_0x46764e['attributes']:_0x1cd8b4[_0xe896('0x57')];if(!_0x9223f['query'][_0xe896('0xd2')](_0xe896('0xd9'))){_0x46764e[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x9223f[_0xe896('0x41')][_0xe896('0x27')]);_0x46764e[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x9223f[_0xe896('0x41')][_0xe896('0x24')]);}_0x46764e[_0xe896('0xcf')]=qs['sort'](_0x9223f['query'][_0xe896('0xd0')]);_0x46764e[_0xe896('0x40')]=qs[_0xe896('0x56')](_['pick'](_0x9223f['query'],_0x1cd8b4['filters']));_0x46764e['where'][_0xe896('0xe1')]=_0x54a741['id'];if(_0x9223f[_0xe896('0x41')]['filter']){_0x46764e[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x46764e[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x46764e[_0xe896('0x44')],function(_0x294907){var _0x455d96={};_0x455d96[_0x294907]={'$like':'%'+_0x9223f[_0xe896('0x41')]['filter']+'%'};return _0x455d96;})});}_0x46764e=_[_0xe896('0xd1')]({},_0x46764e,_0x9223f[_0xe896('0x5a')]);return db[_0xe896('0xe3')][_0xe896('0x26')]({'where':_0x46764e[_0xe896('0x40')]})[_0xe896('0x2b')](function(_0x5bc441){_0x399827['count']=_0x5bc441;if(_0x9223f['query']['includeAll']){_0x46764e[_0xe896('0x43')]=[{'all':!![]}];}return db[_0xe896('0xe3')][_0xe896('0x45')](_0x46764e);})['then'](function(_0x55ec5a){_0x399827[_0xe896('0x48')]=_0x55ec5a;return _0x399827;});}})[_0xe896('0x2b')](respondWithFilteredResult(_0x15486a,_0x46764e))[_0xe896('0x1f')](handleError(_0x15486a,null));};exports[_0xe896('0xe4')]=function(_0xfce3dc,_0x19b689){var _0x33e227={};var _0x31093e={};var _0x1bab73;var _0x149eef;return db['User']['findOne']({'where':{'id':_0xfce3dc['params']['id']}})['then'](handleEntityNotFound(_0x19b689,null))['then'](function(_0xc8805c){if(_0xc8805c){_0x1bab73=_0xc8805c;_0x31093e[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0xe5')][_0xe896('0x3b')]);_0x31093e[_0xe896('0x41')]=_['keys'](_0xfce3dc['query']);_0x31093e['filters']=_[_0xe896('0xce')](_0x31093e[_0xe896('0x57')],_0x31093e[_0xe896('0x41')]);_0x33e227[_0xe896('0x44')]=_[_0xe896('0xce')](_0x31093e[_0xe896('0x57')],qs[_0xe896('0x58')](_0xfce3dc['query']['fields']));_0x33e227['attributes']=_0x33e227[_0xe896('0x44')][_0xe896('0x59')]?_0x33e227['attributes']:_0x31093e[_0xe896('0x57')];_0x33e227[_0xe896('0xcf')]=qs['sort'](_0xfce3dc[_0xe896('0x41')][_0xe896('0xd0')]);_0x33e227[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0xfce3dc['query'],_0x31093e[_0xe896('0x56')]));if(_0xfce3dc[_0xe896('0x41')][_0xe896('0x3f')]){_0x33e227[_0xe896('0x40')]=_['merge'](_0x33e227[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x33e227[_0xe896('0x44')],function(_0x49614d){var _0x2d19aa={};_0x2d19aa[_0x49614d]={'$like':'%'+_0xfce3dc['query'][_0xe896('0x3f')]+'%'};return _0x2d19aa;})});}_0x33e227=_['merge']({},_0x33e227,_0xfce3dc[_0xe896('0x5a')]);return _0x1bab73['getChatInteractions'](_0x33e227);}})[_0xe896('0x2b')](function(_0x94b617){if(_0x94b617){_0x149eef=_0x94b617['length'];if(!_0xfce3dc[_0xe896('0x41')]['hasOwnProperty'](_0xe896('0xd9'))){_0x33e227['limit']=qs[_0xe896('0x27')](_0xfce3dc[_0xe896('0x41')][_0xe896('0x27')]);_0x33e227[_0xe896('0x24')]=qs[_0xe896('0x24')](_0xfce3dc[_0xe896('0x41')][_0xe896('0x24')]);}return _0x1bab73[_0xe896('0xe4')](_0x33e227);}})[_0xe896('0x2b')](function(_0x1bebf8){if(_0x1bebf8){return _0x1bebf8?{'count':_0x149eef,'rows':_0x1bebf8}:null;}})[_0xe896('0x2b')](respondWithResult(_0x19b689,null))[_0xe896('0x1f')](handleError(_0x19b689,null));};exports[_0xe896('0xe6')]=function(_0x4806b9,_0x2b8661){var _0x494b23={};var _0x4990e5={};var _0x211cb6;var _0x317b45;return db['User']['findOne']({'where':{'id':_0x4806b9['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x2b8661,null))[_0xe896('0x2b')](function(_0x48fcc9){if(_0x48fcc9){_0x211cb6=_0x48fcc9;_0x4990e5[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0xe7')][_0xe896('0x3b')]);_0x4990e5[_0xe896('0x41')]=_[_0xe896('0x54')](_0x4806b9['query']);_0x4990e5[_0xe896('0x56')]=_[_0xe896('0xce')](_0x4990e5['model'],_0x4990e5[_0xe896('0x41')]);_0x494b23[_0xe896('0x44')]=_[_0xe896('0xce')](_0x4990e5['model'],qs[_0xe896('0x58')](_0x4806b9[_0xe896('0x41')]['fields']));_0x494b23['attributes']=_0x494b23['attributes'][_0xe896('0x59')]?_0x494b23[_0xe896('0x44')]:_0x4990e5['model'];_0x494b23[_0xe896('0xcf')]=qs['sort'](_0x4806b9[_0xe896('0x41')][_0xe896('0xd0')]);_0x494b23[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x4806b9[_0xe896('0x41')],_0x4990e5[_0xe896('0x56')]));if(_0x4806b9[_0xe896('0x41')][_0xe896('0x3f')]){_0x494b23['where']=_[_0xe896('0xd1')](_0x494b23[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x494b23[_0xe896('0x44')],function(_0x318cef){var _0x21b51c={};_0x21b51c[_0x318cef]={'$like':'%'+_0x4806b9['query']['filter']+'%'};return _0x21b51c;})});}_0x494b23=_[_0xe896('0xd1')]({},_0x494b23,_0x4806b9[_0xe896('0x5a')]);return _0x211cb6['getOpenchannelInteractions'](_0x494b23);}})[_0xe896('0x2b')](function(_0x18968e){if(_0x18968e){_0x317b45=_0x18968e[_0xe896('0x59')];if(!_0x4806b9[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x494b23[_0xe896('0x27')]=qs['limit'](_0x4806b9[_0xe896('0x41')][_0xe896('0x27')]);_0x494b23[_0xe896('0x24')]=qs['offset'](_0x4806b9['query'][_0xe896('0x24')]);}return _0x211cb6[_0xe896('0xe6')](_0x494b23);}})[_0xe896('0x2b')](function(_0x16b1a2){if(_0x16b1a2){return _0x16b1a2?{'count':_0x317b45,'rows':_0x16b1a2}:null;}})[_0xe896('0x2b')](respondWithResult(_0x2b8661,null))[_0xe896('0x1f')](handleError(_0x2b8661,null));};exports[_0xe896('0xe8')]=function(_0xc8fb8f,_0x13dc32){var _0x28170c={'raw':!![],'where':{}};var _0x9fd61b={};var _0x6e56a7={'count':0x0,'rows':[]};return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0xc8fb8f[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x13dc32,null))['then'](function(_0x3ec572){if(_0x3ec572){_0x9fd61b[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0xe9')]['rawAttributes']);_0x9fd61b['query']=_['keys'](_0xc8fb8f[_0xe896('0x41')]);_0x9fd61b['filters']=_[_0xe896('0xce')](_0x9fd61b[_0xe896('0x57')],_0x9fd61b[_0xe896('0x41')]);_0x28170c[_0xe896('0x44')]=_['intersection'](_0x9fd61b[_0xe896('0x57')],qs[_0xe896('0x58')](_0xc8fb8f['query'][_0xe896('0x58')]));_0x28170c[_0xe896('0x44')]=_0x28170c[_0xe896('0x44')][_0xe896('0x59')]?_0x28170c['attributes']:_0x9fd61b[_0xe896('0x57')];if(!_0xc8fb8f[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x28170c[_0xe896('0x27')]=qs['limit'](_0xc8fb8f[_0xe896('0x41')]['limit']);_0x28170c[_0xe896('0x24')]=qs['offset'](_0xc8fb8f['query']['offset']);}_0x28170c['order']=qs[_0xe896('0xd0')](_0xc8fb8f[_0xe896('0x41')][_0xe896('0xd0')]);_0x28170c[_0xe896('0x40')]=qs[_0xe896('0x56')](_['pick'](_0xc8fb8f['query'],_0x9fd61b[_0xe896('0x56')]));_0x28170c['where'][_0xe896('0xe1')]=_0x3ec572['id'];if(_0xc8fb8f[_0xe896('0x41')][_0xe896('0x3f')]){_0x28170c[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x28170c[_0xe896('0x40')],{'$or':_['map'](_0x28170c['attributes'],function(_0x5da3d1){var _0x2bc274={};_0x2bc274[_0x5da3d1]={'$like':'%'+_0xc8fb8f['query'][_0xe896('0x3f')]+'%'};return _0x2bc274;})});}_0x28170c=_[_0xe896('0xd1')]({},_0x28170c,_0xc8fb8f[_0xe896('0x5a')]);return db[_0xe896('0xe9')][_0xe896('0x26')]({'where':_0x28170c[_0xe896('0x40')]})['then'](function(_0x14866e){_0x6e56a7[_0xe896('0x26')]=_0x14866e;if(_0xc8fb8f[_0xe896('0x41')][_0xe896('0x42')]){_0x28170c[_0xe896('0x43')]=[{'all':!![]}];}return db['MailInteraction']['findAll'](_0x28170c);})[_0xe896('0x2b')](function(_0x586f6a){_0x6e56a7[_0xe896('0x48')]=_0x586f6a;return _0x6e56a7;});}})[_0xe896('0x2b')](respondWithFilteredResult(_0x13dc32,_0x28170c))[_0xe896('0x1f')](handleError(_0x13dc32,null));};exports[_0xe896('0xea')]=function(_0xef6a65,_0x2ce1f1){var _0x425386={};var _0x4e6aae={};var _0x5f57ce;var _0x2aefb1;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0xef6a65['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x2ce1f1,null))[_0xe896('0x2b')](function(_0x4dcd06){if(_0x4dcd06){_0x5f57ce=_0x4dcd06;_0x4e6aae['model']=_[_0xe896('0x54')](db[_0xe896('0xeb')][_0xe896('0x3b')]);_0x4e6aae[_0xe896('0x41')]=_[_0xe896('0x54')](_0xef6a65['query']);_0x4e6aae['filters']=_[_0xe896('0xce')](_0x4e6aae['model'],_0x4e6aae[_0xe896('0x41')]);_0x425386[_0xe896('0x44')]=_[_0xe896('0xce')](_0x4e6aae[_0xe896('0x57')],qs[_0xe896('0x58')](_0xef6a65[_0xe896('0x41')][_0xe896('0x58')]));_0x425386[_0xe896('0x44')]=_0x425386[_0xe896('0x44')][_0xe896('0x59')]?_0x425386['attributes']:_0x4e6aae['model'];_0x425386['order']=qs[_0xe896('0xd0')](_0xef6a65[_0xe896('0x41')][_0xe896('0xd0')]);_0x425386[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0xef6a65[_0xe896('0x41')],_0x4e6aae['filters']));if(_0xef6a65['query'][_0xe896('0x3f')]){_0x425386[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x425386[_0xe896('0x40')],{'$or':_['map'](_0x425386['attributes'],function(_0x295310){var _0x4b051b={};_0x4b051b[_0x295310]={'$like':'%'+_0xef6a65[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x4b051b;})});}_0x425386=_[_0xe896('0xd1')]({},_0x425386,_0xef6a65[_0xe896('0x5a')]);return _0x5f57ce[_0xe896('0xea')](_0x425386);}})[_0xe896('0x2b')](function(_0xefa9ef){if(_0xefa9ef){_0x2aefb1=_0xefa9ef[_0xe896('0x59')];if(!_0xef6a65[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x425386[_0xe896('0x27')]=qs[_0xe896('0x27')](_0xef6a65[_0xe896('0x41')][_0xe896('0x27')]);_0x425386[_0xe896('0x24')]=qs[_0xe896('0x24')](_0xef6a65[_0xe896('0x41')][_0xe896('0x24')]);}return _0x5f57ce['getSmsInteractions'](_0x425386);}})[_0xe896('0x2b')](function(_0x2734e1){if(_0x2734e1){return _0x2734e1?{'count':_0x2aefb1,'rows':_0x2734e1}:null;}})[_0xe896('0x2b')](respondWithResult(_0x2ce1f1,null))[_0xe896('0x1f')](handleError(_0x2ce1f1,null));};exports[_0xe896('0xec')]=function(_0x235455,_0x519cc9){var _0x23f5e1={};var _0x280815={};var _0x3aebce;var _0x1e204c;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x235455[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x519cc9,null))['then'](function(_0x286b8e){if(_0x286b8e){_0x3aebce=_0x286b8e;_0x280815[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0xed')]['rawAttributes']);_0x280815['query']=_[_0xe896('0x54')](_0x235455[_0xe896('0x41')]);_0x280815[_0xe896('0x56')]=_[_0xe896('0xce')](_0x280815[_0xe896('0x57')],_0x280815['query']);_0x23f5e1[_0xe896('0x44')]=_[_0xe896('0xce')](_0x280815[_0xe896('0x57')],qs[_0xe896('0x58')](_0x235455[_0xe896('0x41')]['fields']));_0x23f5e1['attributes']=_0x23f5e1['attributes'][_0xe896('0x59')]?_0x23f5e1['attributes']:_0x280815[_0xe896('0x57')];_0x23f5e1['order']=qs[_0xe896('0xd0')](_0x235455[_0xe896('0x41')][_0xe896('0xd0')]);_0x23f5e1['where']=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x235455[_0xe896('0x41')],_0x280815[_0xe896('0x56')]));if(_0x235455[_0xe896('0x41')][_0xe896('0x3f')]){_0x23f5e1[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x23f5e1['where'],{'$or':_['map'](_0x23f5e1['attributes'],function(_0x30f305){var _0x3f9cc7={};_0x3f9cc7[_0x30f305]={'$like':'%'+_0x235455[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x3f9cc7;})});}_0x23f5e1=_[_0xe896('0xd1')]({},_0x23f5e1,_0x235455['options']);return _0x3aebce['getFaxInteractions'](_0x23f5e1);}})[_0xe896('0x2b')](function(_0xd797de){if(_0xd797de){_0x1e204c=_0xd797de['length'];if(!_0x235455[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x23f5e1[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x235455[_0xe896('0x41')][_0xe896('0x27')]);_0x23f5e1['offset']=qs[_0xe896('0x24')](_0x235455[_0xe896('0x41')]['offset']);}return _0x3aebce['getFaxInteractions'](_0x23f5e1);}})['then'](function(_0x3991ac){if(_0x3991ac){return _0x3991ac?{'count':_0x1e204c,'rows':_0x3991ac}:null;}})[_0xe896('0x2b')](respondWithResult(_0x519cc9,null))['catch'](handleError(_0x519cc9,null));};exports[_0xe896('0xee')]=function(_0x2fb997,_0x405874){var _0x15d33e={};var _0x3dbe1d={};var _0x5980be;var _0x1afbd1;return db['User']['findOne']({'where':{'id':_0x2fb997[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x405874,null))[_0xe896('0x2b')](function(_0x1b9d5e){if(_0x1b9d5e){_0x5980be=_0x1b9d5e;_0x3dbe1d[_0xe896('0x57')]=_[_0xe896('0x54')](db['WhatsappInteraction'][_0xe896('0x3b')]);_0x3dbe1d[_0xe896('0x41')]=_['keys'](_0x2fb997[_0xe896('0x41')]);_0x3dbe1d[_0xe896('0x56')]=_[_0xe896('0xce')](_0x3dbe1d[_0xe896('0x57')],_0x3dbe1d[_0xe896('0x41')]);_0x15d33e[_0xe896('0x44')]=_[_0xe896('0xce')](_0x3dbe1d['model'],qs[_0xe896('0x58')](_0x2fb997[_0xe896('0x41')][_0xe896('0x58')]));_0x15d33e[_0xe896('0x44')]=_0x15d33e['attributes'][_0xe896('0x59')]?_0x15d33e['attributes']:_0x3dbe1d[_0xe896('0x57')];_0x15d33e[_0xe896('0xcf')]=qs['sort'](_0x2fb997[_0xe896('0x41')][_0xe896('0xd0')]);_0x15d33e[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x2fb997[_0xe896('0x41')],_0x3dbe1d[_0xe896('0x56')]));if(_0x2fb997[_0xe896('0x41')][_0xe896('0x3f')]){_0x15d33e[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x15d33e[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x15d33e['attributes'],function(_0x18288c){var _0x50c247={};_0x50c247[_0x18288c]={'$like':'%'+_0x2fb997[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x50c247;})});}_0x15d33e=_['merge']({},_0x15d33e,_0x2fb997[_0xe896('0x5a')]);return _0x5980be[_0xe896('0xee')](_0x15d33e);}})['then'](function(_0x542f51){if(_0x542f51){_0x1afbd1=_0x542f51[_0xe896('0x59')];if(!_0x2fb997[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x15d33e[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x2fb997[_0xe896('0x41')]['limit']);_0x15d33e['offset']=qs[_0xe896('0x24')](_0x2fb997['query'][_0xe896('0x24')]);}return _0x5980be[_0xe896('0xee')](_0x15d33e);}})[_0xe896('0x2b')](function(_0x4378e6){if(_0x4378e6){return _0x4378e6?{'count':_0x1afbd1,'rows':_0x4378e6}:null;}})[_0xe896('0x2b')](respondWithResult(_0x405874,null))[_0xe896('0x1f')](handleError(_0x405874,null));};exports[_0xe896('0xef')]=function(_0x1bdd71,_0x5c1794,_0x1fe196){var _0x535a46;var _0x32422f;var _0x95aea1;var _0x18b71b=!_[_0xe896('0x69')](_0x1bdd71['params']['id'])?_0x1bdd71[_0xe896('0x52')]['id']:!_[_0xe896('0x69')](_0x1bdd71[_0xe896('0x81')]['id'])?_0x1bdd71['user']['id']:null;return db['User'][_0xe896('0x5b')]({'where':{'id':_0x18b71b,'role':{'$or':[_0xe896('0x2e'),'user',_0xe896('0x30')]}},'attributes':['id','name','phone',_0xe896('0xf0'),_0xe896('0x2d'),_0xe896('0x63'),_0xe896('0xa2')]})[_0xe896('0x2b')](function(_0x51ce92){if(_0x51ce92){if(_0x51ce92[_0xe896('0x2d')]===_0xe896('0x30')){_0x535a46=_0x51ce92;if(_0x1bdd71[_0xe896('0x5e')][_0xe896('0xa4')]){_0x95aea1=util[_0xe896('0xaf')](_0xe896('0xf1'),_0x535a46[_0x1bdd71['body'][_0xe896('0xa4')]]);}else if(_0x1bdd71[_0xe896('0x5e')][_0xe896('0xf2')]){_0x95aea1=util[_0xe896('0xaf')]('SIP/%s',_0x1bdd71['body'][_0xe896('0xf2')]);}else{_0x95aea1=util[_0xe896('0xaf')]('SIP/%s',_0x535a46[_0xe896('0x36')]);}socket['to'](util[_0xe896('0xaf')](_0xe896('0xf3'),_0x535a46[_0xe896('0x36')]))[_0xe896('0xad')](_0xe896('0xf4'),{'user':{'id':_0x535a46['id'],'name':_0x535a46[_0xe896('0x36')]},'ip':_0x1bdd71[_0xe896('0xf5')]['x-forwarded-for']||_0x1bdd71[_0xe896('0xf6')][_0xe896('0xf7')]||_0x1bdd71['socket'][_0xe896('0xf7')]||_0x1bdd71[_0xe896('0xf6')][_0xe896('0xf8')][_0xe896('0xf7')]});return db[_0xe896('0xb7')][_0xe896('0x2a')]({'where':{'membername':_0x535a46['name']},'individualHooks':!![]});}}else{throw new db[(_0xe896('0x94'))]['ValidationError'](_0xe896('0xf9'));}})['then'](function(){if(_0x535a46){return _0x535a46[_0xe896('0xfa')]({'raw':!![]});}})['then'](function(_0x3271bc){if(_0x535a46){var _0x415db3=[];if(_0x3271bc){_0x32422f=_0x3271bc;if(_0x32422f['length']){for(var _0x2bae1c=0x0;_0x2bae1c<_0x32422f['length'];_0x2bae1c++){_0x415db3[_0xe896('0x4a')]({'membername':_0x535a46['name'],'UserId':_0x535a46['id'],'queue_name':_0x32422f[_0x2bae1c]['name'],'VoiceQueueId':_0x32422f[_0x2bae1c]['id'],'interface':_0x95aea1,'paused':_0x535a46['loginInPause']||![],'penalty':_0x32422f[_0x2bae1c][_0xe896('0xfb')]||0x0});}return BPromise[_0xe896('0x8d')](_0x415db3,function(_0x39d6cd){return db[_0xe896('0xb7')][_0xe896('0xb1')](_0x39d6cd);});}}}})[_0xe896('0x2b')](function(){if(_0x535a46){return db[_0xe896('0xfc')]['findAll']({'where':{'membername':_0x535a46[_0xe896('0x36')],'exitAt':null}});}})[_0xe896('0x2b')](function(_0x393602){if(_0x535a46){var _0x69c14e=[];_0x393602['forEach'](function(_0x309e7c){_0x69c14e['push'](_0x309e7c['update']({'exitAt':moment()[_0xe896('0xaf')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xe896('0x50')](_0x69c14e);}})[_0xe896('0x2b')](function(){if(_0x535a46){var _0x58af91=[];var _0x4f3e11=[];var _0x5c7425=utils[_0xe896('0xfd')]();var _0x9433e3={'membername':_0x535a46[_0xe896('0x36')],'interface':_0x95aea1,'enterAt':moment()[_0xe896('0xaf')](_0xe896('0xfe')),'role':_0x535a46['role'],'internal':_0x535a46[_0xe896('0x63')]};_0x5c7425[_0xe896('0xff')](function(_0x13a8e9){_0x58af91[_0xe896('0x4a')](_[_0xe896('0xd1')]({'channel':_0x13a8e9,'type':_0xe896('0x100'),'data1':_0x1bdd71[_0xe896('0x5e')][_0xe896('0x101')],'data2':_0x95aea1},_0x9433e3));if(_0x535a46[_0xe896('0xa2')]){_0x4f3e11[_0xe896('0x4a')](_[_0xe896('0xd1')]({'channel':_0x13a8e9,'type':_0xe896('0x102'),'data1':_0xe896('0x103')},_0x9433e3));}});return db[_0xe896('0xfc')]['bulkCreate'](_0x58af91['concat'](_0x4f3e11),{'individualHooks':!![]});}})[_0xe896('0x2b')](function(){if(_0x535a46){return _0x535a46[_0xe896('0x5d')]({'online':!![],'lastLoginAt':moment()[_0xe896('0xaf')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x535a46[_0xe896('0xa2')]||![],'mailPause':_0x535a46[_0xe896('0xa2')]||![],'chatPause':_0x535a46[_0xe896('0xa2')]||![],'faxPause':_0x535a46[_0xe896('0xa2')]||![],'smsPause':_0x535a46[_0xe896('0xa2')]||![],'openchannelPause':_0x535a46[_0xe896('0xa2')]||![],'whatsappPause':_0x535a46[_0xe896('0xa2')]||![],'pauseType':_0x535a46[_0xe896('0xa2')]?'LOGININPAUSE':null,'interface':_0x95aea1,'lastPauseAt':moment()['format'](_0xe896('0xfe'))});}})[_0xe896('0x2b')](function(_0x390f38){if(_0x1bdd71[_0xe896('0x104')]){return _0x1fe196();}else{return BPromise[_0xe896('0x105')](_0x390f38)[_0xe896('0x2b')](respondWithResult(_0x5c1794,null));}})[_0xe896('0x1f')](handleError(_0x5c1794,null));};exports[_0xe896('0x106')]=function(_0x4ebade,_0x5aea35){var _0x5b33db;return db['User'][_0xe896('0x5b')]({'where':{'id':_0x4ebade['params']['id'],'role':_0xe896('0x30')},'attributes':['id',_0xe896('0x36'),_0xe896('0x2d')]})['then'](handleEntityNotFound(_0x5aea35,null))[_0xe896('0x2b')](function(_0x221c3a){if(_0x221c3a){_0x5b33db=_0x221c3a;return db[_0xe896('0xb7')][_0xe896('0x2a')]({'where':{'membername':_0x5b33db[_0xe896('0x36')]},'individualHooks':!![]});}})[_0xe896('0x2b')](function(){return db[_0xe896('0xfc')][_0xe896('0x45')]({'where':{'membername':_0x5b33db[_0xe896('0x36')],'exitAt':null}});})[_0xe896('0x2b')](function(_0x24573e){var _0x1e0f0c=[];_0x24573e[_0xe896('0xff')](function(_0x27c6a6){_0x1e0f0c['push'](_0x27c6a6[_0xe896('0x5d')]({'exitAt':moment()[_0xe896('0xaf')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xe896('0x50')](_0x1e0f0c);})[_0xe896('0x2b')](function(){return _0x5b33db[_0xe896('0x5d')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0xe896('0x2b')](respondWithResult(_0x5aea35,null))[_0xe896('0x1f')](handleError(_0x5aea35,null));};exports[_0xe896('0x107')]=function(_0x12c502,_0x24debe){var _0x3adad3;return db[_0xe896('0xb7')][_0xe896('0x5d')]({'paused':0x1},{'where':{'UserId':_0x12c502[_0xe896('0x52')]['id']},'individualHooks':!![]})[_0xe896('0x2b')](function(){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x12c502[_0xe896('0x52')]['id'],'role':_0xe896('0x30')},'attributes':['id',_0xe896('0x36'),_0xe896('0x2d'),_0xe896('0x63'),_0xe896('0xa4')]});})[_0xe896('0x2b')](handleEntityNotFound(_0x24debe,null))[_0xe896('0x2b')](function(_0x2ca47e){if(_0x2ca47e){_0x3adad3=_0x2ca47e;return respondWithRpcPromise(_0xe896('0x108'),_0xe896('0x107'),{'id':_0x3adad3['id'],'name':_0x3adad3[_0xe896('0x36')],'pause':!![]});}})[_0xe896('0x2b')](function(){if(_0x3adad3){return db[_0xe896('0xfc')][_0xe896('0x45')]({'where':{'membername':_0x3adad3[_0xe896('0x36')],'type':'PAUSE','exitAt':null}});}})['then'](function(_0x1b8170){if(_0x1b8170[_0xe896('0x59')]){var _0x2c8231=moment()[_0xe896('0xaf')](_0xe896('0xfe'));for(var _0x58c649=0x0,_0x47c49d=_0x1b8170[_0xe896('0x59')];_0x58c649<_0x47c49d;_0x58c649++){_0x1b8170[_0x58c649][_0xe896('0x109')]({'exitAt':_0x2c8231});}}})[_0xe896('0x2b')](function(){var _0x540e69=[];var _0xe4272f=utils[_0xe896('0xfd')]();_0xe4272f['forEach'](function(_0x421726){_0x540e69[_0xe896('0x4a')]({'channel':_0x421726,'membername':_0x3adad3[_0xe896('0x36')],'interface':_[_0xe896('0x69')](_0x3adad3['interface'])?util['format'](_0xe896('0xb0'),_0x3adad3[_0xe896('0x36')]):_0x3adad3['interface'],'type':'PAUSE','enterAt':moment()[_0xe896('0xaf')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x12c502[_0xe896('0x5e')][_0xe896('0x3d')]||_0xe896('0x10a'),'role':_0x3adad3[_0xe896('0x2d')],'internal':_0x3adad3[_0xe896('0x63')]});});return db['MemberReport'][_0xe896('0x89')](_0x540e69,{'individualHooks':!![]});})[_0xe896('0x2b')](function(){return _0x3adad3['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x12c502[_0xe896('0x5e')][_0xe896('0x3d')]||_0xe896('0x10a'),'lastPauseAt':moment()[_0xe896('0xaf')](_0xe896('0xfe'))});})[_0xe896('0x2b')](respondWithResult(_0x24debe,null))[_0xe896('0x1f')](handleError(_0x24debe,null));};exports[_0xe896('0x10b')]=function(_0x580b33,_0x11df7a){var _0x2b458a;return db['User'][_0xe896('0x5b')]({'where':{'id':_0x580b33['params']['id']},'attributes':['id','name',_0xe896('0x2d'),_0xe896('0xa3'),_0xe896('0x10c'),_0xe896('0x10d'),_0xe896('0x10e'),_0xe896('0x10f'),_0xe896('0x110'),_0xe896('0x111'),'pauseType',_0xe896('0x112')]})['then'](handleEntityNotFound(_0x11df7a,null))['then'](function(_0x119642){if(_0x119642){_0x2b458a=_0x119642;if(_0x580b33[_0xe896('0x5e')]['channel']&&!utils['isValidChannel'](_0x580b33[_0xe896('0x5e')][_0xe896('0xb3')])){throw new db[(_0xe896('0x94'))]['ValidationError']('Unknown\x20channel');}switch(_0x580b33[_0xe896('0x5e')][_0xe896('0xb3')]){case'voice':return respondWithRpcPromise(_0xe896('0x108'),'unpause',{'id':_0x2b458a['id'],'name':_0x2b458a[_0xe896('0x36')],'pause':![]})['then'](function(){return db[_0xe896('0xb7')][_0xe896('0x5d')]({'paused':0x0},{'where':{'UserId':_0x2b458a['id']},'individualHooks':!![]});})[_0xe896('0x2b')](function(){return db['MemberReport']['find']({'where':{'channel':_0x580b33[_0xe896('0x5e')][_0xe896('0xb3')],'membername':_0x2b458a[_0xe896('0x36')],'type':'PAUSE','exitAt':null}});})[_0xe896('0x2b')](function(_0x202cc9){if(_0x202cc9){return _0x202cc9[_0xe896('0x5d')]({'exitAt':moment()[_0xe896('0xaf')](_0xe896('0xfe')),'data2':_0xe896('0x113')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x2b458a['update']({'voicePause':![]});});case _0xe896('0x4d'):case _0xe896('0x5c'):case _0xe896('0x4c'):case'sms':case _0xe896('0x4f'):case _0xe896('0x4e'):return db[_0xe896('0xfc')]['find']({'where':{'channel':_0x580b33[_0xe896('0x5e')][_0xe896('0xb3')],'membername':_0x2b458a[_0xe896('0x36')],'type':'PAUSE','exitAt':null}})[_0xe896('0x2b')](function(_0x5cde99){if(_0x5cde99){return _0x5cde99[_0xe896('0x5d')]({'exitAt':moment()[_0xe896('0xaf')](_0xe896('0xfe')),'data2':_0xe896('0x113')},{'individualHooks':!![]});}return null;})[_0xe896('0x2b')](function(){var _0x3c83c0={};_[_0xe896('0x28')](_0x3c83c0,util[_0xe896('0xaf')](_0xe896('0x114'),_0x580b33['body'][_0xe896('0xb3')],_0xe896('0x115')),![]);return _0x2b458a[_0xe896('0x5d')](_0x3c83c0);});default:return respondWithRpcPromise(_0xe896('0x108'),_0xe896('0x10b'),{'id':_0x2b458a['id'],'name':_0x2b458a[_0xe896('0x36')],'pause':![]})[_0xe896('0x2b')](function(){return db[_0xe896('0xb7')]['update']({'paused':0x0},{'where':{'UserId':_0x2b458a['id']}});})[_0xe896('0x2b')](function(){return db[_0xe896('0xfc')][_0xe896('0x45')]({'where':{'membername':_0x2b458a[_0xe896('0x36')],'type':_0xe896('0x102'),'exitAt':null}});})[_0xe896('0x2b')](function(_0x241919){var _0x22b4ea=[];_0x241919[_0xe896('0xff')](function(_0x5dc960){_0x22b4ea[_0xe896('0x4a')](_0x5dc960['update']({'exitAt':moment()[_0xe896('0xaf')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xe896('0x113')}));});return BPromise[_0xe896('0x50')](_0x22b4ea);})[_0xe896('0x2b')](function(){return _0x2b458a[_0xe896('0x5d')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0xe896('0x2b')](respondWithResult(_0x11df7a,null))[_0xe896('0x1f')](handleError(_0x11df7a,null));};exports['getTeams']=function(_0xd18cd7,_0x5c29fe){var _0x2b5281={};var _0x55b35d={};var _0x33774f;var _0x16945f;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0xd18cd7[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x5c29fe,null))['then'](function(_0x2ab44f){if(_0x2ab44f){_0x33774f=_0x2ab44f;_0x55b35d[_0xe896('0x57')]=_[_0xe896('0x54')](db['Team']['rawAttributes']);_0x55b35d[_0xe896('0x41')]=_['keys'](_0xd18cd7[_0xe896('0x41')]);_0x55b35d[_0xe896('0x56')]=_[_0xe896('0xce')](_0x55b35d['model'],_0x55b35d[_0xe896('0x41')]);_0x2b5281[_0xe896('0x44')]=_[_0xe896('0xce')](_0x55b35d['model'],qs['fields'](_0xd18cd7[_0xe896('0x41')][_0xe896('0x58')]));_0x2b5281['attributes']=_0x2b5281[_0xe896('0x44')][_0xe896('0x59')]?_0x2b5281['attributes']:_0x55b35d['model'];_0x2b5281[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0xd18cd7[_0xe896('0x41')][_0xe896('0xd0')]);_0x2b5281[_0xe896('0x40')]=qs['filters'](_[_0xe896('0xdb')](_0xd18cd7['query'],_0x55b35d[_0xe896('0x56')]));if(_0xd18cd7[_0xe896('0x41')]['filter']){_0x2b5281['where']=_['merge'](_0x2b5281[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x2b5281[_0xe896('0x44')],function(_0x19d032){var _0x3bacfc={};_0x3bacfc[_0x19d032]={'$like':'%'+_0xd18cd7['query']['filter']+'%'};return _0x3bacfc;})});}_0x2b5281=_['merge']({},_0x2b5281,_0xd18cd7[_0xe896('0x5a')]);return _0x33774f[_0xe896('0x116')](_0x2b5281);}})[_0xe896('0x2b')](function(_0x46ec6b){if(_0x46ec6b){_0x16945f=_0x46ec6b[_0xe896('0x59')];if(!_0xd18cd7[_0xe896('0x41')]['hasOwnProperty'](_0xe896('0xd9'))){_0x2b5281[_0xe896('0x27')]=qs[_0xe896('0x27')](_0xd18cd7[_0xe896('0x41')][_0xe896('0x27')]);_0x2b5281[_0xe896('0x24')]=qs['offset'](_0xd18cd7[_0xe896('0x41')]['offset']);}return _0x33774f['getTeams'](_0x2b5281);}})[_0xe896('0x2b')](function(_0x1a019d){if(_0x1a019d){return _0x1a019d?{'count':_0x16945f,'rows':_0x1a019d}:null;}})['then'](respondWithResult(_0x5c29fe,null))['catch'](handleError(_0x5c29fe,null));};exports[_0xe896('0x117')]=function(_0x4e14d3,_0x61cb34){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x4e14d3[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x61cb34,null))[_0xe896('0x2b')](function(_0x35b8b9){if(_0x35b8b9){var _0x5f2581=_0x35b8b9['get']({'plain':!![]});return _0x35b8b9['addTeams'](_0x4e14d3['body']['ids'],_[_0xe896('0x62')](_0x4e14d3[_0xe896('0x5e')],['ids','id'])||{})[_0xe896('0x2b')](function(){for(var _0x4997ea=0x0;_0x4997ea<_0x4e14d3['body'][_0xe896('0x61')][_0xe896('0x59')];_0x4997ea++){var _0x5d6ccd=[];var _0x1057b2={};db['Team'][_0xe896('0x9b')]({'where':{'id':_0x4e14d3['body'][_0xe896('0x61')][_0x4997ea]}})[_0xe896('0x2b')](function(_0x193399){_0x1057b2=_0x193399[_0xe896('0x49')];_0x5d6ccd['push'](_0x193399[_0xe896('0xfa')]()[_0xe896('0x2b')](function(_0x44e5b6){for(var _0x9043d4=0x0;_0x9043d4<_0x44e5b6[_0xe896('0x59')];_0x9043d4++){_0x44e5b6[_0x9043d4]['setDataValue']('channel',_0xe896('0x118'));}return _0x44e5b6;}));_0x5d6ccd[_0xe896('0x4a')](_0x193399[_0xe896('0x119')]()[_0xe896('0x2b')](function(_0xc55008){for(var _0x3b1e21=0x0;_0x3b1e21<_0xc55008[_0xe896('0x59')];_0x3b1e21++){_0xc55008[_0x3b1e21]['setDataValue'](_0xe896('0xb3'),_0xe896('0x11a'));}return _0xc55008;}));_0x5d6ccd[_0xe896('0x4a')](_0x193399['getMailQueues']()['then'](function(_0x3c6d62){for(var _0xd2d8a9=0x0;_0xd2d8a9<_0x3c6d62[_0xe896('0x59')];_0xd2d8a9++){_0x3c6d62[_0xd2d8a9][_0xe896('0x11b')](_0xe896('0xb3'),'Mail');}return _0x3c6d62;}));_0x5d6ccd['push'](_0x193399[_0xe896('0x11c')]()[_0xe896('0x2b')](function(_0x28dcb6){for(var _0x192180=0x0;_0x192180<_0x28dcb6[_0xe896('0x59')];_0x192180++){_0x28dcb6[_0x192180][_0xe896('0x11b')](_0xe896('0xb3'),_0xe896('0x11d'));}return _0x28dcb6;}));_0x5d6ccd[_0xe896('0x4a')](_0x193399[_0xe896('0x11e')]()['then'](function(_0x3b6839){for(var _0x30b6cc=0x0;_0x30b6cc<_0x3b6839[_0xe896('0x59')];_0x30b6cc++){_0x3b6839[_0x30b6cc]['setDataValue']('channel',_0xe896('0x11f'));}return _0x3b6839;}));_0x5d6ccd['push'](_0x193399['getFaxQueues']()['then'](function(_0x3ff4d5){for(var _0x2b7cbc=0x0;_0x2b7cbc<_0x3ff4d5['length'];_0x2b7cbc++){_0x3ff4d5[_0x2b7cbc][_0xe896('0x11b')](_0xe896('0xb3'),_0xe896('0x120'));}return _0x3ff4d5;}));_0x5d6ccd[_0xe896('0x4a')](_0x193399['getOpenchannelQueues']()[_0xe896('0x2b')](function(_0x3ace37){for(var _0xbfdf6a=0x0;_0xbfdf6a<_0x3ace37[_0xe896('0x59')];_0xbfdf6a++){_0x3ace37[_0xbfdf6a]['setDataValue'](_0xe896('0xb3'),_0xe896('0x121'));}return _0x3ace37;}));return BPromise[_0xe896('0x50')](_0x5d6ccd);})[_0xe896('0x2b')](function(_0x50331b){var _0x4f3c66=_[_0xe896('0x122')](_0x50331b);_0x5d6ccd=[];return db[_0xe896('0x6b')]['transaction'](function(_0x4d4e69){for(var _0x112693=0x0;_0x112693<_0x4f3c66[_0xe896('0x59')];_0x112693++){_0x5d6ccd[_0xe896('0x4a')](_0x4f3c66[_0x112693]['addAgent'](_0x5f2581['id']),{'transaction':_0x4d4e69});}return BPromise[_0xe896('0x50')](_0x5d6ccd)['then'](function(){if(_0x5f2581[_0xe896('0xa1')]){return BPromise[_0xe896('0x8d')](_[_0xe896('0x3f')](_0x4f3c66,function(_0x5989ab){return _0x5989ab[_0xe896('0x123')](_0xe896('0xb3'))===_0xe896('0x118');}),function(_0x8b8f48){return db['UserVoiceQueueRt'][_0xe896('0xb1')]({'membername':_0x5f2581['name'],'UserId':_0x5f2581['id'],'queue_name':_0x8b8f48[_0xe896('0x36')],'VoiceQueueId':_0x8b8f48['id'],'interface':_['isNil'](_0x5f2581[_0xe896('0xa4')])?util[_0xe896('0xaf')](_0xe896('0xb0'),_0x5f2581[_0xe896('0x36')]):_0x5f2581[_0xe896('0xa4')],'paused':_0x5f2581[_0xe896('0xa3')]||![],'penalty':_0x5f2581[_0xe896('0xa9')]},{'transaction':_0x4d4e69});});}else{return;}})[_0xe896('0x2b')](function(){for(var _0x4a8238=0x0;_0x4a8238<_0x4f3c66[_0xe896('0x59')];_0x4a8238++){var _0x143e6c=_0x4f3c66[_0x4a8238][_0xe896('0x123')](_0xe896('0xb3'));var _0x18ed2e=_0x143e6c+_0xe896('0xac');socket[_0xe896('0xad')]('user'+_0x143e6c+'Queue:save',{'UserId':_0x5f2581['id'],['queueField']:_0x4f3c66[_0x4a8238]['id']});}});});})[_0xe896('0x2b')](function(){db['TeamVoicePrefix']['findOne']({'where':{'teamId':_0x1057b2['id']}})[_0xe896('0x2b')](function(_0x5c303b){if(_0x5c303b){db[_0xe896('0x124')]['create']({'UserId':_0x4e14d3[_0xe896('0x52')]['id'],'VoicePrefixId':_0x5c303b[_0xe896('0x125')]});}});});}});}})[_0xe896('0x2b')](respondWithStatusCode(_0x61cb34,null))[_0xe896('0x1f')](handleError(_0x61cb34,null));};exports[_0xe896('0x126')]=function(_0x1052ac,_0x3fe6e5){return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x1052ac[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x3fe6e5,null))[_0xe896('0x2b')](function(_0x1ab23e){if(_0x1ab23e){var _0x478d24=_0x1ab23e[_0xe896('0x2c')]({'plain':!![]});var _0x1ec32c=_0x1052ac[_0xe896('0x41')]['ids'];return _0x1ab23e['removeTeams'](_0x1ec32c)[_0xe896('0x2b')](function(){for(var _0x32d2c9=0x0;_0x32d2c9<_0x1ec32c[_0xe896('0x59')];_0x32d2c9++){var _0x5e7b7a=[];var _0xad85bd={};db[_0xe896('0x127')]['findOne']({'where':{'id':_0x1ec32c[_0x32d2c9]}})[_0xe896('0x2b')](function(_0x229cf6){_0xad85bd=_0x229cf6[_0xe896('0x49')];_0x5e7b7a[_0xe896('0x4a')](_0x229cf6[_0xe896('0xfa')]()[_0xe896('0x2b')](function(_0x3c5a54){for(var _0x5d8189=0x0;_0x5d8189<_0x3c5a54[_0xe896('0x59')];_0x5d8189++){_0x3c5a54[_0x5d8189]['setDataValue'](_0xe896('0xb3'),_0xe896('0x118'));}return _0x3c5a54;}));_0x5e7b7a['push'](_0x229cf6[_0xe896('0x119')]()[_0xe896('0x2b')](function(_0x3102ba){for(var _0x283fa6=0x0;_0x283fa6<_0x3102ba[_0xe896('0x59')];_0x283fa6++){_0x3102ba[_0x283fa6][_0xe896('0x11b')](_0xe896('0xb3'),'Chat');}return _0x3102ba;}));_0x5e7b7a[_0xe896('0x4a')](_0x229cf6[_0xe896('0x128')]()[_0xe896('0x2b')](function(_0x5d75d0){for(var _0x3f7a37=0x0;_0x3f7a37<_0x5d75d0[_0xe896('0x59')];_0x3f7a37++){_0x5d75d0[_0x3f7a37][_0xe896('0x11b')](_0xe896('0xb3'),'Mail');}return _0x5d75d0;}));_0x5e7b7a[_0xe896('0x4a')](_0x229cf6[_0xe896('0x11c')]()[_0xe896('0x2b')](function(_0x1b69bf){for(var _0x4d78c7=0x0;_0x4d78c7<_0x1b69bf[_0xe896('0x59')];_0x4d78c7++){_0x1b69bf[_0x4d78c7][_0xe896('0x11b')](_0xe896('0xb3'),'Sms');}return _0x1b69bf;}));_0x5e7b7a[_0xe896('0x4a')](_0x229cf6[_0xe896('0x11e')]()[_0xe896('0x2b')](function(_0x49777a){for(var _0x46677f=0x0;_0x46677f<_0x49777a[_0xe896('0x59')];_0x46677f++){_0x49777a[_0x46677f][_0xe896('0x11b')](_0xe896('0xb3'),_0xe896('0x11f'));}return _0x49777a;}));_0x5e7b7a[_0xe896('0x4a')](_0x229cf6['getFaxQueues']()[_0xe896('0x2b')](function(_0x3ab0c0){for(var _0x26c56d=0x0;_0x26c56d<_0x3ab0c0[_0xe896('0x59')];_0x26c56d++){_0x3ab0c0[_0x26c56d][_0xe896('0x11b')](_0xe896('0xb3'),_0xe896('0x120'));}return _0x3ab0c0;}));_0x5e7b7a[_0xe896('0x4a')](_0x229cf6[_0xe896('0x129')]()[_0xe896('0x2b')](function(_0x171c58){for(var _0x531862=0x0;_0x531862<_0x171c58['length'];_0x531862++){_0x171c58[_0x531862][_0xe896('0x11b')](_0xe896('0xb3'),'Openchannel');}return _0x171c58;}));return BPromise[_0xe896('0x50')](_0x5e7b7a);})[_0xe896('0x2b')](function(_0x264fcc){var _0x5c60f8=_[_0xe896('0x122')](_0x264fcc);_0x5e7b7a=[];return db['sequelize'][_0xe896('0x12a')](function(_0x446d09){for(var _0x4b269f=0x0;_0x4b269f<_0x5c60f8[_0xe896('0x59')];_0x4b269f++){_0x5e7b7a[_0xe896('0x4a')](_0x5c60f8[_0x4b269f]['removeAgent'](_0x478d24['id']),{'transaction':_0x446d09});}return BPromise[_0xe896('0x50')](_0x5e7b7a)[_0xe896('0x2b')](function(){if(_0x478d24['online']){return BPromise['each'](_['filter'](_0x5c60f8,function(_0x158360){return _0x158360[_0xe896('0x123')](_0xe896('0xb3'))===_0xe896('0x118');}),function(_0x42afcb){return db[_0xe896('0xb7')][_0xe896('0x2a')]({'where':{'VoiceQueueId':_0x42afcb['id'],'UserId':_0x478d24['id']},'transaction':_0x446d09});});}else{return;}})[_0xe896('0x2b')](function(){db[_0xe896('0x12b')][_0xe896('0x9b')]({'where':{'teamId':_0xad85bd['id']}})[_0xe896('0x2b')](function(_0x4358e2){if(_0x4358e2){return db[_0xe896('0x124')][_0xe896('0x2a')]({'where':{'UserId':_0x478d24['id'],'VoicePrefixId':_0x4358e2[_0xe896('0x49')]['VoicePrefixId']}});}});})[_0xe896('0x2b')](function(){for(var _0x3b49f2=0x0;_0x3b49f2<_0x5c60f8['length'];_0x3b49f2++){var _0xca9bca=_0x5c60f8[_0x3b49f2][_0xe896('0x123')](_0xe896('0xb3'));var _0xff2a9e=_0xca9bca+_0xe896('0xac');socket['emit'](_0xe896('0x81')+_0xca9bca+'Queue:remove',{'UserId':_0x478d24['id'],['queueField']:_0x5c60f8[_0x3b49f2]['id']});}});});});}});}})[_0xe896('0x2b')](respondWithStatusCode(_0x3fe6e5,null))[_0xe896('0x1f')](handleError(_0x3fe6e5,null));};exports[_0xe896('0x12c')]=function(_0x4f4a0f,_0x5539df){var _0x24cd5f={};var _0x34b4fe={};var _0x2959c4;var _0x17a65c;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x4f4a0f[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x5539df,null))[_0xe896('0x2b')](function(_0x51b5fb){if(_0x51b5fb){_0x2959c4=_0x51b5fb;_0x34b4fe[_0xe896('0x57')]=_[_0xe896('0x54')](db['CmList']['rawAttributes']);_0x34b4fe['query']=_[_0xe896('0x54')](_0x4f4a0f[_0xe896('0x41')]);_0x34b4fe[_0xe896('0x56')]=_['intersection'](_0x34b4fe[_0xe896('0x57')],_0x34b4fe[_0xe896('0x41')]);_0x24cd5f['attributes']=_[_0xe896('0xce')](_0x34b4fe[_0xe896('0x57')],qs[_0xe896('0x58')](_0x4f4a0f[_0xe896('0x41')][_0xe896('0x58')]));_0x24cd5f[_0xe896('0x44')]=_0x24cd5f[_0xe896('0x44')]['length']?_0x24cd5f['attributes']:_0x34b4fe['model'];_0x24cd5f[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x4f4a0f[_0xe896('0x41')][_0xe896('0xd0')]);_0x24cd5f['where']=qs['filters'](_['pick'](_0x4f4a0f['query'],_0x34b4fe[_0xe896('0x56')]));if(_0x4f4a0f[_0xe896('0x41')][_0xe896('0x3f')]){_0x24cd5f['where']=_[_0xe896('0xd1')](_0x24cd5f[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x24cd5f['attributes'],function(_0x4aafa1){var _0x18957e={};_0x18957e[_0x4aafa1]={'$like':'%'+_0x4f4a0f[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x18957e;})});}_0x24cd5f=_[_0xe896('0xd1')]({},_0x24cd5f,_0x4f4a0f[_0xe896('0x5a')]);return _0x2959c4['getLists'](_0x24cd5f);}})[_0xe896('0x2b')](function(_0x2facba){if(_0x2facba){_0x17a65c=_0x2facba[_0xe896('0x59')];if(!_0x4f4a0f[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x24cd5f[_0xe896('0x27')]=qs['limit'](_0x4f4a0f[_0xe896('0x41')]['limit']);_0x24cd5f['offset']=qs[_0xe896('0x24')](_0x4f4a0f[_0xe896('0x41')][_0xe896('0x24')]);}return _0x2959c4[_0xe896('0x12c')](_0x24cd5f);}})['then'](function(_0x5ce449){if(_0x5ce449){return _0x5ce449?{'count':_0x17a65c,'rows':_0x5ce449}:null;}})['then'](respondWithResult(_0x5539df,null))['catch'](handleError(_0x5539df,null));};exports[_0xe896('0x12d')]=function(_0xda2d8f,_0x5646c1){var _0xdd6509={};var _0x39b3ea={};var _0x5ada6d;var _0xbebf6;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0xda2d8f[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x5646c1,null))[_0xe896('0x2b')](function(_0xa88b42){if(_0xa88b42){_0x5ada6d=_0xa88b42;_0x39b3ea[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0x3a')][_0xe896('0x3b')]);_0x39b3ea['query']=_[_0xe896('0x54')](_0xda2d8f[_0xe896('0x41')]);_0x39b3ea[_0xe896('0x56')]=_[_0xe896('0xce')](_0x39b3ea[_0xe896('0x57')],_0x39b3ea[_0xe896('0x41')]);_0xdd6509[_0xe896('0x44')]=_[_0xe896('0xce')](_0x39b3ea[_0xe896('0x57')],qs[_0xe896('0x58')](_0xda2d8f[_0xe896('0x41')][_0xe896('0x58')]));_0xdd6509[_0xe896('0x44')]=_0xdd6509[_0xe896('0x44')][_0xe896('0x59')]?_0xdd6509[_0xe896('0x44')]:_0x39b3ea['model'];_0xdd6509[_0xe896('0xcf')]=qs['sort'](_0xda2d8f['query']['sort']);_0xdd6509[_0xe896('0x40')]=qs['filters'](_[_0xe896('0xdb')](_0xda2d8f[_0xe896('0x41')],_0x39b3ea[_0xe896('0x56')]));if(_0xda2d8f[_0xe896('0x41')][_0xe896('0x3f')]){_0xdd6509[_0xe896('0x40')]=_['merge'](_0xdd6509['where'],{'$or':_['map'](_0xdd6509[_0xe896('0x44')],function(_0x5486e6){var _0x542d74={};_0x542d74[_0x5486e6]={'$like':'%'+_0xda2d8f['query'][_0xe896('0x3f')]+'%'};return _0x542d74;})});}_0xdd6509[_0xe896('0x57')]=db[_0xe896('0x3a')];_0xdd6509['as']=_0xe896('0x87');_0xdd6509=_[_0xe896('0xd1')]({},_0xdd6509,_0xda2d8f[_0xe896('0x5a')]);return _0x5ada6d[_0xe896('0xfa')]({'include':[_0xdd6509]});}})['then'](function(_0x50a1c9){if(_0x50a1c9){var _0x5a79ad={},_0x2d0f9b=[],_0x25b604=0x0;for(var _0x10ca30=0x0;_0x10ca30<_0x50a1c9[_0xe896('0x59')];_0x10ca30+=0x1){for(var _0x55034e=0x0,_0x27cd27;_0x55034e<_0x50a1c9[_0x10ca30][_0xe896('0x87')][_0xe896('0x59')];_0x55034e+=0x1){_0x27cd27=_0x50a1c9[_0x10ca30][_0xe896('0x87')][_0x55034e][_0xe896('0x2c')]({'plain':!![]});_0x5a79ad[_0x27cd27['id']]=_0x27cd27;}}_0x5a79ad=_[_0xe896('0x12e')](_0x5a79ad);for(var _0x53bcb8=qs[_0xe896('0x24')](_0xda2d8f['query'][_0xe896('0x24')]);_0x53bcb8<_0x5a79ad[_0xe896('0x59')]&&_0x2d0f9b[_0xe896('0x59')]<qs[_0xe896('0x27')](_0xda2d8f['query'][_0xe896('0x27')]);_0x53bcb8+=0x1){if(_0x5a79ad[_0x53bcb8]){_0x2d0f9b['push'](_0x5a79ad[_0x53bcb8]);}}return{'count':_0x5a79ad[_0xe896('0x59')],'rows':_0x2d0f9b};}})[_0xe896('0x2b')](respondWithResult(_0x5646c1,null))[_0xe896('0x1f')](handleError(_0x5646c1,null));};exports[_0xe896('0x2a')]=function(_0x314fc4,_0x2e5420){if(_0x314fc4[_0xe896('0x81')]['id']==_0x314fc4[_0xe896('0x52')]['id']){return _0x2e5420['status'](0x1f4)[_0xe896('0x12f')]({'message':_0xe896('0x130')});}return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x314fc4[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x2e5420,null))[_0xe896('0x2b')](removeEntity(_0x2e5420,null))[_0xe896('0x1f')](handleError(_0x2e5420,null));};exports['addChatInteractions']=function(_0x23792c,_0x1bb603){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x23792c[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x1bb603,null))['then'](function(_0x37c8de){if(_0x37c8de){return _0x37c8de['addChatInteractions'](_0x23792c['body'][_0xe896('0x61')],_[_0xe896('0x62')](_0x23792c[_0xe896('0x5e')],['ids','id'])||{})[_0xe896('0xaa')](function(){for(var _0x2c079b=0x0;_0x2c079b<_0x23792c[_0xe896('0x5e')][_0xe896('0x61')]['length'];_0x2c079b+=0x1){socket[_0xe896('0xad')](_0xe896('0x131'),{'ChatInteractionId':Number(_0x23792c['body'][_0xe896('0x61')][_0x2c079b]),'UserId':Number(_0x23792c[_0xe896('0x52')]['id'])});}return _0x23792c[_0xe896('0x5e')]['ids'];});}})[_0xe896('0x2b')](respondWithResult(_0x1bb603,null))['catch'](handleError(_0x1bb603,null));};exports['removeChatInteractions']=function(_0x5e073c,_0x3fc1d9){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x5e073c[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x3fc1d9,null))[_0xe896('0x2b')](function(_0x439d8c){if(_0x439d8c){return _0x439d8c[_0xe896('0x132')](_0x5e073c[_0xe896('0x41')][_0xe896('0x61')])['then'](function(){if(_['isArray'](_0x5e073c[_0xe896('0x41')][_0xe896('0x61')])){for(var _0x9fa980=0x0;_0x9fa980<_0x5e073c['query'][_0xe896('0x61')]['length'];_0x9fa980+=0x1){socket[_0xe896('0xad')](_0xe896('0x133'),{'ChatInteractionId':Number(_0x5e073c['query'][_0xe896('0x61')][_0x9fa980]),'UserId':Number(_0x5e073c[_0xe896('0x52')]['id'])});}}else{socket['emit'](_0xe896('0x133'),{'ChatInteractionId':Number(_0x5e073c[_0xe896('0x41')][_0xe896('0x61')]),'UserId':Number(_0x5e073c[_0xe896('0x52')]['id'])});}});}})[_0xe896('0x2b')](respondWithStatusCode(_0x3fc1d9,null))[_0xe896('0x1f')](handleError(_0x3fc1d9,null));};exports[_0xe896('0x134')]=function(_0x536e65,_0x53146c){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x536e65[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x53146c,null))[_0xe896('0x2b')](function(_0x40ca72){if(_0x40ca72){return _0x40ca72[_0xe896('0x134')](_0x536e65['body']['ids'],_[_0xe896('0x62')](_0x536e65[_0xe896('0x5e')],['ids','id'])||{})[_0xe896('0xaa')](function(){for(var _0xb52b5f=0x0;_0xb52b5f<_0x536e65[_0xe896('0x5e')][_0xe896('0x61')]['length'];_0xb52b5f+=0x1){socket[_0xe896('0xad')](_0xe896('0x135'),{'MailInteractionId':Number(_0x536e65[_0xe896('0x5e')][_0xe896('0x61')][_0xb52b5f]),'UserId':Number(_0x536e65['params']['id'])});}return _0x536e65[_0xe896('0x5e')][_0xe896('0x61')];});}})['then'](respondWithResult(_0x53146c,null))[_0xe896('0x1f')](handleError(_0x53146c,null));};exports[_0xe896('0x136')]=function(_0x4a409f,_0x385d2b){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x4a409f[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x385d2b,null))['then'](function(_0x3ec18c){if(_0x3ec18c){return _0x3ec18c[_0xe896('0x136')](_0x4a409f[_0xe896('0x41')][_0xe896('0x61')])[_0xe896('0x2b')](function(){if(_[_0xe896('0xb5')](_0x4a409f[_0xe896('0x41')][_0xe896('0x61')])){for(var _0x59f6f7=0x0;_0x59f6f7<_0x4a409f[_0xe896('0x41')][_0xe896('0x61')][_0xe896('0x59')];_0x59f6f7+=0x1){socket[_0xe896('0xad')](_0xe896('0x137'),{'MailInteractionId':Number(_0x4a409f[_0xe896('0x41')][_0xe896('0x61')][_0x59f6f7]),'UserId':Number(_0x4a409f[_0xe896('0x52')]['id'])});}}else{socket[_0xe896('0xad')](_0xe896('0x137'),{'MailInteractionId':Number(_0x4a409f[_0xe896('0x41')][_0xe896('0x61')]),'UserId':Number(_0x4a409f[_0xe896('0x52')]['id'])});}});}})[_0xe896('0x2b')](respondWithStatusCode(_0x385d2b,null))['catch'](handleError(_0x385d2b,null));};exports[_0xe896('0x138')]=function(_0x36c77e,_0x28873e){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x36c77e[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x28873e,null))[_0xe896('0x2b')](function(_0x2ec911){if(_0x2ec911){return _0x2ec911['addFaxInteractions'](_0x36c77e['body'][_0xe896('0x61')],_[_0xe896('0x62')](_0x36c77e[_0xe896('0x5e')],['ids','id'])||{})[_0xe896('0xaa')](function(){for(var _0x41b04f=0x0;_0x41b04f<_0x36c77e['body'][_0xe896('0x61')][_0xe896('0x59')];_0x41b04f+=0x1){socket[_0xe896('0xad')](_0xe896('0x139'),{'FaxInteractionId':Number(_0x36c77e['body'][_0xe896('0x61')][_0x41b04f]),'UserId':Number(_0x36c77e[_0xe896('0x52')]['id'])});}return _0x36c77e[_0xe896('0x5e')]['ids'];});}})[_0xe896('0x2b')](respondWithResult(_0x28873e,null))[_0xe896('0x1f')](handleError(_0x28873e,null));};exports[_0xe896('0x13a')]=function(_0x4f78f7,_0x51b2bc){return db[_0xe896('0x3a')]['find']({'where':{'id':_0x4f78f7[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x51b2bc,null))[_0xe896('0x2b')](function(_0x2af2f5){if(_0x2af2f5){return _0x2af2f5[_0xe896('0x13a')](_0x4f78f7[_0xe896('0x41')][_0xe896('0x61')])[_0xe896('0x2b')](function(){if(_[_0xe896('0xb5')](_0x4f78f7['query'][_0xe896('0x61')])){for(var _0x4ea95a=0x0;_0x4ea95a<_0x4f78f7['query'][_0xe896('0x61')][_0xe896('0x59')];_0x4ea95a+=0x1){socket[_0xe896('0xad')](_0xe896('0x13b'),{'FaxInteractionId':Number(_0x4f78f7['query'][_0xe896('0x61')][_0x4ea95a]),'UserId':Number(_0x4f78f7[_0xe896('0x52')]['id'])});}}else{socket['emit'](_0xe896('0x13b'),{'FaxInteractionId':Number(_0x4f78f7[_0xe896('0x41')][_0xe896('0x61')]),'UserId':Number(_0x4f78f7[_0xe896('0x52')]['id'])});}});}})[_0xe896('0x2b')](respondWithStatusCode(_0x51b2bc,null))['catch'](handleError(_0x51b2bc,null));};exports[_0xe896('0x13c')]=function(_0x15ee60,_0x2cb908){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x15ee60['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x2cb908,null))['then'](function(_0x3a3230){if(_0x3a3230){return _0x3a3230[_0xe896('0x13c')](_0x15ee60[_0xe896('0x5e')]['ids'],_[_0xe896('0x62')](_0x15ee60[_0xe896('0x5e')],[_0xe896('0x61'),'id'])||{})[_0xe896('0xaa')](function(){for(var _0xf55607=0x0;_0xf55607<_0x15ee60[_0xe896('0x5e')][_0xe896('0x61')][_0xe896('0x59')];_0xf55607+=0x1){socket[_0xe896('0xad')](_0xe896('0x13d'),{'SmsInteractionId':Number(_0x15ee60[_0xe896('0x5e')][_0xe896('0x61')][_0xf55607]),'UserId':Number(_0x15ee60[_0xe896('0x52')]['id'])});}return _0x15ee60[_0xe896('0x5e')][_0xe896('0x61')];});}})[_0xe896('0x2b')](respondWithResult(_0x2cb908,null))[_0xe896('0x1f')](handleError(_0x2cb908,null));};exports[_0xe896('0x13e')]=function(_0x2c1d10,_0x35a7b1){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x2c1d10['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x35a7b1,null))[_0xe896('0x2b')](function(_0x489e90){if(_0x489e90){return _0x489e90[_0xe896('0x13e')](_0x2c1d10[_0xe896('0x41')]['ids'])[_0xe896('0x2b')](function(){if(_['isArray'](_0x2c1d10[_0xe896('0x41')]['ids'])){for(var _0x4c1bf0=0x0;_0x4c1bf0<_0x2c1d10[_0xe896('0x41')]['ids']['length'];_0x4c1bf0+=0x1){socket[_0xe896('0xad')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x2c1d10[_0xe896('0x41')][_0xe896('0x61')][_0x4c1bf0]),'UserId':Number(_0x2c1d10[_0xe896('0x52')]['id'])});}}else{socket[_0xe896('0xad')](_0xe896('0x13f'),{'SmsInteractionId':Number(_0x2c1d10['query'][_0xe896('0x61')]),'UserId':Number(_0x2c1d10[_0xe896('0x52')]['id'])});}});}})[_0xe896('0x2b')](respondWithStatusCode(_0x35a7b1,null))['catch'](handleError(_0x35a7b1,null));};exports[_0xe896('0x140')]=function(_0x47c2ab,_0x1cc157){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x47c2ab[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x1cc157,null))[_0xe896('0x2b')](function(_0x55323c){if(_0x55323c){return _0x55323c[_0xe896('0x140')](_0x47c2ab['body'][_0xe896('0x61')],_['omit'](_0x47c2ab['body'],[_0xe896('0x61'),'id'])||{})[_0xe896('0xaa')](function(){for(var _0x133dcf=0x0;_0x133dcf<_0x47c2ab[_0xe896('0x5e')][_0xe896('0x61')][_0xe896('0x59')];_0x133dcf+=0x1){socket[_0xe896('0xad')]('user_has_openchannel_interactions:save',{'OpenchannelInteractionId':Number(_0x47c2ab[_0xe896('0x5e')][_0xe896('0x61')][_0x133dcf]),'UserId':Number(_0x47c2ab[_0xe896('0x52')]['id'])});}return _0x47c2ab['body'][_0xe896('0x61')];});}})['then'](respondWithResult(_0x1cc157,null))[_0xe896('0x1f')](handleError(_0x1cc157,null));};exports[_0xe896('0x141')]=function(_0x5bdb19,_0x2d5045){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x5bdb19[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x2d5045,null))[_0xe896('0x2b')](function(_0x1f1039){if(_0x1f1039){return _0x1f1039[_0xe896('0x141')](_0x5bdb19[_0xe896('0x41')][_0xe896('0x61')])[_0xe896('0x2b')](function(){if(_['isArray'](_0x5bdb19[_0xe896('0x41')][_0xe896('0x61')])){for(var _0x1e3c3c=0x0;_0x1e3c3c<_0x5bdb19[_0xe896('0x41')][_0xe896('0x61')][_0xe896('0x59')];_0x1e3c3c+=0x1){socket[_0xe896('0xad')](_0xe896('0x142'),{'OpenchannelInteractionId':Number(_0x5bdb19[_0xe896('0x41')][_0xe896('0x61')][_0x1e3c3c]),'UserId':Number(_0x5bdb19[_0xe896('0x52')]['id'])});}}else{socket[_0xe896('0xad')](_0xe896('0x142'),{'OpenchannelInteractionId':Number(_0x5bdb19['query']['ids']),'UserId':Number(_0x5bdb19[_0xe896('0x52')]['id'])});}});}})['then'](respondWithStatusCode(_0x2d5045,null))[_0xe896('0x1f')](handleError(_0x2d5045,null));};exports[_0xe896('0x143')]=function(_0xe9cf9b,_0x550883){return db[_0xe896('0x3a')]['find']({'where':{'id':_0xe9cf9b[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x550883,null))['then'](function(_0x2fac2d){if(_0x2fac2d){return _0x2fac2d[_0xe896('0x143')](_0xe9cf9b[_0xe896('0x5e')][_0xe896('0x61')],_[_0xe896('0x62')](_0xe9cf9b['body'],[_0xe896('0x61'),'id'])||{})['spread'](function(){for(var _0x2ca007=0x0;_0x2ca007<_0xe9cf9b['body'][_0xe896('0x61')][_0xe896('0x59')];_0x2ca007+=0x1){socket[_0xe896('0xad')](_0xe896('0x144'),{'WhatsappInteractionId':Number(_0xe9cf9b['body'][_0xe896('0x61')][_0x2ca007]),'UserId':Number(_0xe9cf9b['params']['id'])});}return _0xe9cf9b[_0xe896('0x5e')][_0xe896('0x61')];});}})[_0xe896('0x2b')](respondWithResult(_0x550883,null))[_0xe896('0x1f')](handleError(_0x550883,null));};exports[_0xe896('0x145')]=function(_0x12847a,_0xa05a0f){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x12847a[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0xa05a0f,null))[_0xe896('0x2b')](function(_0x51bd12){if(_0x51bd12){return _0x51bd12[_0xe896('0x145')](_0x12847a[_0xe896('0x41')][_0xe896('0x61')]);}})['then'](respondWithStatusCode(_0xa05a0f,null))[_0xe896('0x1f')](handleError(_0xa05a0f,null));};exports[_0xe896('0x146')]=function(_0x28e5f2,_0x557908){var _0x446f09={};var _0x2cafda={};var _0x3ec851;var _0x3e97b0;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x28e5f2[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x557908,null))[_0xe896('0x2b')](function(_0x37828c){if(_0x37828c){_0x3ec851=_0x37828c;_0x2cafda[_0xe896('0x57')]=_[_0xe896('0x54')](db['VoicePrefix'][_0xe896('0x3b')]);_0x2cafda[_0xe896('0x41')]=_['keys'](_0x28e5f2[_0xe896('0x41')]);_0x2cafda['filters']=_['intersection'](_0x2cafda[_0xe896('0x57')],_0x2cafda[_0xe896('0x41')]);_0x446f09[_0xe896('0x44')]=_[_0xe896('0xce')](_0x2cafda['model'],qs['fields'](_0x28e5f2['query'][_0xe896('0x58')]));_0x446f09[_0xe896('0x44')]=_0x446f09['attributes'][_0xe896('0x59')]?_0x446f09[_0xe896('0x44')]:_0x2cafda[_0xe896('0x57')];_0x446f09[_0xe896('0xcf')]=qs['sort'](_0x28e5f2[_0xe896('0x41')][_0xe896('0xd0')]);_0x446f09[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x28e5f2[_0xe896('0x41')],_0x2cafda[_0xe896('0x56')]));if(_0x28e5f2['query'][_0xe896('0x3f')]){_0x446f09[_0xe896('0x40')]=_['merge'](_0x446f09[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x446f09['attributes'],function(_0x5e9a09){var _0x4b63a4={};_0x4b63a4[_0x5e9a09]={'$like':'%'+_0x28e5f2[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x4b63a4;})});}_0x446f09=_[_0xe896('0xd1')]({},_0x446f09,_0x28e5f2['options']);return _0x3ec851[_0xe896('0x146')](_0x446f09);}})['then'](function(_0x1420c0){if(_0x1420c0){_0x3e97b0=_0x1420c0[_0xe896('0x59')];if(!_0x28e5f2[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x446f09['limit']=qs[_0xe896('0x27')](_0x28e5f2[_0xe896('0x41')][_0xe896('0x27')]);_0x446f09[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x28e5f2[_0xe896('0x41')][_0xe896('0x24')]);}return _0x3ec851[_0xe896('0x146')](_0x446f09);}})[_0xe896('0x2b')](function(_0x44131c){if(_0x44131c){return _0x44131c?{'count':_0x3e97b0,'rows':_0x44131c}:null;}})[_0xe896('0x2b')](respondWithResult(_0x557908,null))[_0xe896('0x1f')](handleError(_0x557908,null));};exports[_0xe896('0x147')]=function(_0x1290d0,_0x5bc340){var _0x23cef3={};var _0x4cf007={};var _0x5e95b1;var _0x40f488;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x1290d0[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x5bc340,null))[_0xe896('0x2b')](function(_0x28dddb){if(_0x28dddb){_0x5e95b1=_0x28dddb;_0x4cf007[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0x148')][_0xe896('0x3b')]);_0x4cf007[_0xe896('0x41')]=_[_0xe896('0x54')](_0x1290d0[_0xe896('0x41')]);_0x4cf007[_0xe896('0x56')]=_['intersection'](_0x4cf007[_0xe896('0x57')],_0x4cf007[_0xe896('0x41')]);_0x23cef3[_0xe896('0x44')]=_[_0xe896('0xce')](_0x4cf007[_0xe896('0x57')],qs['fields'](_0x1290d0['query'][_0xe896('0x58')]));_0x23cef3[_0xe896('0x44')]=_0x23cef3[_0xe896('0x44')][_0xe896('0x59')]?_0x23cef3[_0xe896('0x44')]:_0x4cf007[_0xe896('0x57')];_0x23cef3[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x1290d0['query'][_0xe896('0xd0')]);_0x23cef3[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x1290d0[_0xe896('0x41')],_0x4cf007['filters']));if(_0x1290d0['query'][_0xe896('0x3f')]){_0x23cef3[_0xe896('0x40')]=_[_0xe896('0xd1')](_0x23cef3[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x23cef3[_0xe896('0x44')],function(_0x2681ff){var _0x343a46={};_0x343a46[_0x2681ff]={'$like':'%'+_0x1290d0[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x343a46;})});}_0x23cef3=_[_0xe896('0xd1')]({},_0x23cef3,_0x1290d0['options']);return _0x5e95b1[_0xe896('0x147')](_0x23cef3);}})[_0xe896('0x2b')](function(_0x547f7b){if(_0x547f7b){_0x40f488=_0x547f7b[_0xe896('0x59')];if(!_0x1290d0['query']['hasOwnProperty']('nolimit')){_0x23cef3['limit']=qs['limit'](_0x1290d0[_0xe896('0x41')]['limit']);_0x23cef3['offset']=qs[_0xe896('0x24')](_0x1290d0[_0xe896('0x41')][_0xe896('0x24')]);}return _0x5e95b1[_0xe896('0x147')](_0x23cef3);}})[_0xe896('0x2b')](function(_0x307b8c){if(_0x307b8c){return _0x307b8c?{'count':_0x40f488,'rows':_0x307b8c}:null;}})['then'](respondWithResult(_0x5bc340,null))[_0xe896('0x1f')](handleError(_0x5bc340,null));};exports[_0xe896('0x149')]=function(_0xab55d4,_0x4e5881){return db['User']['find']({'where':{'id':_0xab55d4[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x4e5881,null))[_0xe896('0x2b')](function(_0x55a58b){if(_0x55a58b){return _0x55a58b['addFaxAccounts'](_0xab55d4[_0xe896('0x5e')][_0xe896('0x61')],_[_0xe896('0x62')](_0xab55d4[_0xe896('0x5e')],['ids','id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x4e5881,null))['catch'](handleError(_0x4e5881,null));};exports[_0xe896('0x14a')]=function(_0x5b0d42,_0x518a0c){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x5b0d42['params']['id']}})['then'](handleEntityNotFound(_0x518a0c,null))[_0xe896('0x2b')](function(_0x1c088f){if(_0x1c088f){return _0x1c088f['removeFaxAccounts'](_0x5b0d42[_0xe896('0x41')][_0xe896('0x61')]);}})[_0xe896('0x2b')](respondWithStatusCode(_0x518a0c,null))[_0xe896('0x1f')](handleError(_0x518a0c,null));};exports[_0xe896('0x14b')]=function(_0x31dbdc,_0x1b3c22){var _0x55be37={};var _0x29e4d1={};var _0x35eb07;var _0x569936;return db[_0xe896('0x3a')]['findOne']({'where':{'id':_0x31dbdc[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x1b3c22,null))[_0xe896('0x2b')](function(_0x348fae){if(_0x348fae){_0x35eb07=_0x348fae;_0x29e4d1[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0x14c')][_0xe896('0x3b')]);_0x29e4d1[_0xe896('0x41')]=_[_0xe896('0x54')](_0x31dbdc[_0xe896('0x41')]);_0x29e4d1[_0xe896('0x56')]=_[_0xe896('0xce')](_0x29e4d1[_0xe896('0x57')],_0x29e4d1[_0xe896('0x41')]);_0x55be37[_0xe896('0x44')]=_['intersection'](_0x29e4d1['model'],qs[_0xe896('0x58')](_0x31dbdc[_0xe896('0x41')][_0xe896('0x58')]));_0x55be37[_0xe896('0x44')]=_0x55be37['attributes']['length']?_0x55be37['attributes']:_0x29e4d1['model'];_0x55be37[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x31dbdc[_0xe896('0x41')][_0xe896('0xd0')]);_0x55be37[_0xe896('0x40')]=qs['filters'](_['pick'](_0x31dbdc[_0xe896('0x41')],_0x29e4d1[_0xe896('0x56')]));if(_0x31dbdc['query']['filter']){_0x55be37['where']=_['merge'](_0x55be37[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x55be37['attributes'],function(_0xc9d9fb){var _0x2d8bf8={};_0x2d8bf8[_0xc9d9fb]={'$like':'%'+_0x31dbdc['query']['filter']+'%'};return _0x2d8bf8;})});}_0x55be37=_[_0xe896('0xd1')]({},_0x55be37,_0x31dbdc['options']);return _0x35eb07[_0xe896('0x14b')](_0x55be37);}})[_0xe896('0x2b')](function(_0x449b5a){if(_0x449b5a){_0x569936=_0x449b5a[_0xe896('0x59')];if(!_0x31dbdc[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x55be37[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x31dbdc[_0xe896('0x41')][_0xe896('0x27')]);_0x55be37['offset']=qs[_0xe896('0x24')](_0x31dbdc[_0xe896('0x41')][_0xe896('0x24')]);}return _0x35eb07['getMailAccounts'](_0x55be37);}})[_0xe896('0x2b')](function(_0x3399e7){if(_0x3399e7){return _0x3399e7?{'count':_0x569936,'rows':_0x3399e7}:null;}})[_0xe896('0x2b')](respondWithResult(_0x1b3c22,null))[_0xe896('0x1f')](handleError(_0x1b3c22,null));};exports['addMailAccounts']=function(_0x3ef25c,_0x41c64a){return db[_0xe896('0x3a')]['find']({'where':{'id':_0x3ef25c[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x41c64a,null))[_0xe896('0x2b')](function(_0x43075e){if(_0x43075e){return _0x43075e[_0xe896('0x14d')](_0x3ef25c[_0xe896('0x5e')]['ids'],_[_0xe896('0x62')](_0x3ef25c[_0xe896('0x5e')],[_0xe896('0x61'),'id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x41c64a,null))[_0xe896('0x1f')](handleError(_0x41c64a,null));};exports['removeMailAccounts']=function(_0xffc53a,_0x5312a2){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0xffc53a['params']['id']}})['then'](handleEntityNotFound(_0x5312a2,null))[_0xe896('0x2b')](function(_0x25285d){if(_0x25285d){return _0x25285d[_0xe896('0x14e')](_0xffc53a[_0xe896('0x41')][_0xe896('0x61')]);}})[_0xe896('0x2b')](respondWithStatusCode(_0x5312a2,null))[_0xe896('0x1f')](handleError(_0x5312a2,null));};exports['getOpenchannelAccounts']=function(_0x3c5db2,_0x5a7dda){var _0x512d81={};var _0x32020f={};var _0x31048a;var _0x302264;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x3c5db2['params']['id']}})['then'](handleEntityNotFound(_0x5a7dda,null))[_0xe896('0x2b')](function(_0x3a9a5a){if(_0x3a9a5a){_0x31048a=_0x3a9a5a;_0x32020f[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0x14f')]['rawAttributes']);_0x32020f[_0xe896('0x41')]=_[_0xe896('0x54')](_0x3c5db2[_0xe896('0x41')]);_0x32020f[_0xe896('0x56')]=_['intersection'](_0x32020f[_0xe896('0x57')],_0x32020f[_0xe896('0x41')]);_0x512d81[_0xe896('0x44')]=_['intersection'](_0x32020f['model'],qs['fields'](_0x3c5db2[_0xe896('0x41')]['fields']));_0x512d81[_0xe896('0x44')]=_0x512d81['attributes'][_0xe896('0x59')]?_0x512d81[_0xe896('0x44')]:_0x32020f['model'];_0x512d81[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x3c5db2['query'][_0xe896('0xd0')]);_0x512d81[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x3c5db2[_0xe896('0x41')],_0x32020f[_0xe896('0x56')]));if(_0x3c5db2[_0xe896('0x41')][_0xe896('0x3f')]){_0x512d81['where']=_[_0xe896('0xd1')](_0x512d81[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x512d81[_0xe896('0x44')],function(_0x894e1c){var _0x303261={};_0x303261[_0x894e1c]={'$like':'%'+_0x3c5db2[_0xe896('0x41')]['filter']+'%'};return _0x303261;})});}_0x512d81=_[_0xe896('0xd1')]({},_0x512d81,_0x3c5db2[_0xe896('0x5a')]);return _0x31048a['getOpenchannelAccounts'](_0x512d81);}})['then'](function(_0x251bc8){if(_0x251bc8){_0x302264=_0x251bc8[_0xe896('0x59')];if(!_0x3c5db2['query'][_0xe896('0xd2')](_0xe896('0xd9'))){_0x512d81['limit']=qs[_0xe896('0x27')](_0x3c5db2['query']['limit']);_0x512d81[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x3c5db2[_0xe896('0x41')]['offset']);}return _0x31048a['getOpenchannelAccounts'](_0x512d81);}})[_0xe896('0x2b')](function(_0x383c51){if(_0x383c51){return _0x383c51?{'count':_0x302264,'rows':_0x383c51}:null;}})[_0xe896('0x2b')](respondWithResult(_0x5a7dda,null))[_0xe896('0x1f')](handleError(_0x5a7dda,null));};exports[_0xe896('0x150')]=function(_0x589d6e,_0x1e7a75){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x589d6e[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x1e7a75,null))[_0xe896('0x2b')](function(_0x580f66){if(_0x580f66){return _0x580f66['addOpenchannelAccounts'](_0x589d6e[_0xe896('0x5e')][_0xe896('0x61')],_[_0xe896('0x62')](_0x589d6e['body'],['ids','id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x1e7a75,null))[_0xe896('0x1f')](handleError(_0x1e7a75,null));};exports['removeOpenchannelAccounts']=function(_0x4cb25e,_0x1372f5){return db[_0xe896('0x3a')]['find']({'where':{'id':_0x4cb25e[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x1372f5,null))[_0xe896('0x2b')](function(_0x36d434){if(_0x36d434){return _0x36d434[_0xe896('0x151')](_0x4cb25e['query'][_0xe896('0x61')]);}})[_0xe896('0x2b')](respondWithStatusCode(_0x1372f5,null))[_0xe896('0x1f')](handleError(_0x1372f5,null));};exports[_0xe896('0x152')]=function(_0x288749,_0x4fcf73){var _0x4f5d24={};var _0x1c279c={};var _0x185570;var _0x8eb782;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x288749['params']['id']}})['then'](handleEntityNotFound(_0x4fcf73,null))[_0xe896('0x2b')](function(_0x18e4f9){if(_0x18e4f9){_0x185570=_0x18e4f9;_0x1c279c['model']=_[_0xe896('0x54')](db[_0xe896('0x153')]['rawAttributes']);_0x1c279c[_0xe896('0x41')]=_[_0xe896('0x54')](_0x288749[_0xe896('0x41')]);_0x1c279c['filters']=_[_0xe896('0xce')](_0x1c279c[_0xe896('0x57')],_0x1c279c[_0xe896('0x41')]);_0x4f5d24[_0xe896('0x44')]=_[_0xe896('0xce')](_0x1c279c[_0xe896('0x57')],qs[_0xe896('0x58')](_0x288749[_0xe896('0x41')][_0xe896('0x58')]));_0x4f5d24[_0xe896('0x44')]=_0x4f5d24[_0xe896('0x44')][_0xe896('0x59')]?_0x4f5d24[_0xe896('0x44')]:_0x1c279c[_0xe896('0x57')];_0x4f5d24['order']=qs[_0xe896('0xd0')](_0x288749[_0xe896('0x41')][_0xe896('0xd0')]);_0x4f5d24[_0xe896('0x40')]=qs[_0xe896('0x56')](_['pick'](_0x288749[_0xe896('0x41')],_0x1c279c[_0xe896('0x56')]));if(_0x288749[_0xe896('0x41')][_0xe896('0x3f')]){_0x4f5d24[_0xe896('0x40')]=_['merge'](_0x4f5d24[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x4f5d24[_0xe896('0x44')],function(_0x5802ed){var _0x55d4d1={};_0x55d4d1[_0x5802ed]={'$like':'%'+_0x288749[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x55d4d1;})});}_0x4f5d24=_[_0xe896('0xd1')]({},_0x4f5d24,_0x288749['options']);return _0x185570[_0xe896('0x152')](_0x4f5d24);}})[_0xe896('0x2b')](function(_0x428102){if(_0x428102){_0x8eb782=_0x428102[_0xe896('0x59')];if(!_0x288749[_0xe896('0x41')][_0xe896('0xd2')](_0xe896('0xd9'))){_0x4f5d24[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x288749[_0xe896('0x41')][_0xe896('0x27')]);_0x4f5d24['offset']=qs[_0xe896('0x24')](_0x288749[_0xe896('0x41')]['offset']);}return _0x185570['getSmsAccounts'](_0x4f5d24);}})[_0xe896('0x2b')](function(_0x4b2fb5){if(_0x4b2fb5){return _0x4b2fb5?{'count':_0x8eb782,'rows':_0x4b2fb5}:null;}})['then'](respondWithResult(_0x4fcf73,null))['catch'](handleError(_0x4fcf73,null));};exports[_0xe896('0x154')]=function(_0x5e4126,_0xcb5395){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x5e4126[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0xcb5395,null))['then'](function(_0x539a28){if(_0x539a28){return _0x539a28[_0xe896('0x154')](_0x5e4126[_0xe896('0x5e')][_0xe896('0x61')],_['omit'](_0x5e4126[_0xe896('0x5e')],['ids','id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0xcb5395,null))['catch'](handleError(_0xcb5395,null));};exports[_0xe896('0x155')]=function(_0x593751,_0x23c3be){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x593751[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x23c3be,null))['then'](function(_0x5957bd){if(_0x5957bd){return _0x5957bd[_0xe896('0x155')](_0x593751[_0xe896('0x41')]['ids']);}})[_0xe896('0x2b')](respondWithStatusCode(_0x23c3be,null))[_0xe896('0x1f')](handleError(_0x23c3be,null));};exports['getChatWebsites']=function(_0x53f2c8,_0x938bd1){var _0x1094ba={};var _0x39c18a={};var _0x56e14a;var _0x38c4a7;return db['User'][_0xe896('0x9b')]({'where':{'id':_0x53f2c8[_0xe896('0x52')]['id']}})['then'](handleEntityNotFound(_0x938bd1,null))[_0xe896('0x2b')](function(_0x37f998){if(_0x37f998){_0x56e14a=_0x37f998;_0x39c18a[_0xe896('0x57')]=_[_0xe896('0x54')](db['ChatWebsite']['rawAttributes']);_0x39c18a[_0xe896('0x41')]=_[_0xe896('0x54')](_0x53f2c8['query']);_0x39c18a[_0xe896('0x56')]=_[_0xe896('0xce')](_0x39c18a[_0xe896('0x57')],_0x39c18a['query']);_0x1094ba[_0xe896('0x44')]=_[_0xe896('0xce')](_0x39c18a[_0xe896('0x57')],qs[_0xe896('0x58')](_0x53f2c8[_0xe896('0x41')][_0xe896('0x58')]));_0x1094ba[_0xe896('0x44')]=_0x1094ba[_0xe896('0x44')][_0xe896('0x59')]?_0x1094ba['attributes']:_0x39c18a[_0xe896('0x57')];_0x1094ba[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x53f2c8[_0xe896('0x41')][_0xe896('0xd0')]);_0x1094ba[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x53f2c8[_0xe896('0x41')],_0x39c18a[_0xe896('0x56')]));if(_0x53f2c8[_0xe896('0x41')]['filter']){_0x1094ba[_0xe896('0x40')]=_['merge'](_0x1094ba[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x1094ba['attributes'],function(_0x1ff89e){var _0x344f22={};_0x344f22[_0x1ff89e]={'$like':'%'+_0x53f2c8[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x344f22;})});}_0x1094ba=_[_0xe896('0xd1')]({},_0x1094ba,_0x53f2c8[_0xe896('0x5a')]);return _0x56e14a[_0xe896('0x156')](_0x1094ba);}})[_0xe896('0x2b')](function(_0xdf25a4){if(_0xdf25a4){_0x38c4a7=_0xdf25a4[_0xe896('0x59')];if(!_0x53f2c8[_0xe896('0x41')]['hasOwnProperty']('nolimit')){_0x1094ba[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x53f2c8['query'][_0xe896('0x27')]);_0x1094ba[_0xe896('0x24')]=qs['offset'](_0x53f2c8[_0xe896('0x41')]['offset']);}return _0x56e14a[_0xe896('0x156')](_0x1094ba);}})['then'](function(_0x303b98){if(_0x303b98){return _0x303b98?{'count':_0x38c4a7,'rows':_0x303b98}:null;}})[_0xe896('0x2b')](respondWithResult(_0x938bd1,null))[_0xe896('0x1f')](handleError(_0x938bd1,null));};exports[_0xe896('0x157')]=function(_0x5627c2,_0x42f412){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x5627c2['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x42f412,null))[_0xe896('0x2b')](function(_0xdcc90d){if(_0xdcc90d){return _0xdcc90d[_0xe896('0x157')](_0x5627c2[_0xe896('0x5e')]['ids'],_[_0xe896('0x62')](_0x5627c2[_0xe896('0x5e')],[_0xe896('0x61'),'id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x42f412,null))[_0xe896('0x1f')](handleError(_0x42f412,null));};exports[_0xe896('0x158')]=function(_0x1b9a21,_0x19baa6){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x1b9a21[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x19baa6,null))[_0xe896('0x2b')](function(_0x5d8f25){if(_0x5d8f25){return _0x5d8f25[_0xe896('0x158')](_0x1b9a21['query'][_0xe896('0x61')]);}})[_0xe896('0x2b')](respondWithStatusCode(_0x19baa6,null))[_0xe896('0x1f')](handleError(_0x19baa6,null));};exports['getWhatsappAccounts']=function(_0x1c3ea6,_0x1895c7){var _0x385e06={};var _0x6e290f={};var _0x3df82c;var _0x419564;return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x1c3ea6[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x1895c7,null))[_0xe896('0x2b')](function(_0x1348c8){if(_0x1348c8){_0x3df82c=_0x1348c8;_0x6e290f[_0xe896('0x57')]=_[_0xe896('0x54')](db[_0xe896('0x159')]['rawAttributes']);_0x6e290f[_0xe896('0x41')]=_[_0xe896('0x54')](_0x1c3ea6[_0xe896('0x41')]);_0x6e290f[_0xe896('0x56')]=_[_0xe896('0xce')](_0x6e290f['model'],_0x6e290f[_0xe896('0x41')]);_0x385e06[_0xe896('0x44')]=_[_0xe896('0xce')](_0x6e290f[_0xe896('0x57')],qs['fields'](_0x1c3ea6[_0xe896('0x41')]['fields']));_0x385e06[_0xe896('0x44')]=_0x385e06[_0xe896('0x44')][_0xe896('0x59')]?_0x385e06[_0xe896('0x44')]:_0x6e290f[_0xe896('0x57')];_0x385e06['order']=qs[_0xe896('0xd0')](_0x1c3ea6['query'][_0xe896('0xd0')]);_0x385e06[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x1c3ea6[_0xe896('0x41')],_0x6e290f[_0xe896('0x56')]));if(_0x1c3ea6['query']['filter']){_0x385e06[_0xe896('0x40')]=_['merge'](_0x385e06[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x385e06[_0xe896('0x44')],function(_0x4433af){var _0x2efbe6={};_0x2efbe6[_0x4433af]={'$like':'%'+_0x1c3ea6[_0xe896('0x41')]['filter']+'%'};return _0x2efbe6;})});}_0x385e06=_['merge']({},_0x385e06,_0x1c3ea6[_0xe896('0x5a')]);return _0x3df82c[_0xe896('0x15a')](_0x385e06);}})['then'](function(_0x4f6877){if(_0x4f6877){_0x419564=_0x4f6877[_0xe896('0x59')];if(!_0x1c3ea6[_0xe896('0x41')]['hasOwnProperty'](_0xe896('0xd9'))){_0x385e06[_0xe896('0x27')]=qs['limit'](_0x1c3ea6[_0xe896('0x41')][_0xe896('0x27')]);_0x385e06[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x1c3ea6[_0xe896('0x41')][_0xe896('0x24')]);}return _0x3df82c[_0xe896('0x15a')](_0x385e06);}})['then'](function(_0x56c005){if(_0x56c005){return _0x56c005?{'count':_0x419564,'rows':_0x56c005}:null;}})[_0xe896('0x2b')](respondWithResult(_0x1895c7,null))[_0xe896('0x1f')](handleError(_0x1895c7,null));};exports[_0xe896('0x15b')]=function(_0x51424c,_0x1aa1b7){return db[_0xe896('0x3a')]['find']({'where':{'id':_0x51424c['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x1aa1b7,null))[_0xe896('0x2b')](function(_0x156436){if(_0x156436){return _0x156436[_0xe896('0x15b')](_0x51424c[_0xe896('0x5e')][_0xe896('0x61')],_[_0xe896('0x62')](_0x51424c['body'],['ids','id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x1aa1b7,null))[_0xe896('0x1f')](handleError(_0x1aa1b7,null));};exports[_0xe896('0x15c')]=function(_0xc3dcdf,_0x4add70){return db['User'][_0xe896('0x5b')]({'where':{'id':_0xc3dcdf['params']['id']}})['then'](handleEntityNotFound(_0x4add70,null))[_0xe896('0x2b')](function(_0x3a2e75){if(_0x3a2e75){return _0x3a2e75[_0xe896('0x15c')](_0xc3dcdf['query'][_0xe896('0x61')]);}})['then'](respondWithStatusCode(_0x4add70,null))[_0xe896('0x1f')](handleError(_0x4add70,null));};exports[_0xe896('0x15d')]=function(_0x568cf9,_0x2e525c){var _0x4e9b19={};var _0xd85b77={};var _0x1671f9;var _0x4dae4b;return db['User'][_0xe896('0x9b')]({'where':{'id':_0x568cf9[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x2e525c,null))[_0xe896('0x2b')](function(_0x32ae1d){if(_0x32ae1d){_0x1671f9=_0x32ae1d;_0xd85b77[_0xe896('0x57')]=_['keys'](db[_0xe896('0x15e')][_0xe896('0x3b')]);_0xd85b77[_0xe896('0x41')]=_[_0xe896('0x54')](_0x568cf9['query']);_0xd85b77[_0xe896('0x56')]=_[_0xe896('0xce')](_0xd85b77['model'],_0xd85b77[_0xe896('0x41')]);_0x4e9b19['attributes']=_[_0xe896('0xce')](_0xd85b77['model'],qs[_0xe896('0x58')](_0x568cf9[_0xe896('0x41')][_0xe896('0x58')]));_0x4e9b19[_0xe896('0x44')]=_0x4e9b19[_0xe896('0x44')][_0xe896('0x59')]?_0x4e9b19[_0xe896('0x44')]:_0xd85b77[_0xe896('0x57')];_0x4e9b19[_0xe896('0xcf')]=qs[_0xe896('0xd0')](_0x568cf9[_0xe896('0x41')][_0xe896('0xd0')]);_0x4e9b19[_0xe896('0x40')]=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x568cf9[_0xe896('0x41')],_0xd85b77[_0xe896('0x56')]));if(_0x568cf9[_0xe896('0x41')][_0xe896('0x3f')]){_0x4e9b19[_0xe896('0x40')]=_['merge'](_0x4e9b19[_0xe896('0x40')],{'$or':_['map'](_0x4e9b19[_0xe896('0x44')],function(_0x1942ae){var _0x10e041={};_0x10e041[_0x1942ae]={'$like':'%'+_0x568cf9[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x10e041;})});}_0x4e9b19=_[_0xe896('0xd1')]({},_0x4e9b19,_0x568cf9[_0xe896('0x5a')]);return _0x1671f9[_0xe896('0x15d')](_0x4e9b19);}})[_0xe896('0x2b')](function(_0x2dd031){if(_0x2dd031){_0x4dae4b=_0x2dd031['length'];if(!_0x568cf9[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x4e9b19[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x568cf9['query'][_0xe896('0x27')]);_0x4e9b19[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x568cf9['query']['offset']);}return _0x1671f9['getSquareProjects'](_0x4e9b19);}})[_0xe896('0x2b')](function(_0x41d152){if(_0x41d152){return _0x41d152?{'count':_0x4dae4b,'rows':_0x41d152}:null;}})['then'](respondWithResult(_0x2e525c,null))[_0xe896('0x1f')](handleError(_0x2e525c,null));};exports[_0xe896('0x15f')]=function(_0x5ccd2e,_0x5def0a){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x5ccd2e[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x5def0a,null))['then'](function(_0x24b973){if(_0x24b973){return _0x24b973['addSquareProjects'](_0x5ccd2e['body'][_0xe896('0x61')],_[_0xe896('0x62')](_0x5ccd2e['body'],[_0xe896('0x61'),'id'])||{});}})[_0xe896('0x2b')](respondWithResult(_0x5def0a,null))[_0xe896('0x1f')](handleError(_0x5def0a,null));};exports[_0xe896('0x160')]=function(_0x5c7a90,_0x320865){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x5c7a90['params']['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x320865,null))[_0xe896('0x2b')](function(_0x1b6265){if(_0x1b6265){return _0x1b6265[_0xe896('0x160')](_0x5c7a90[_0xe896('0x41')][_0xe896('0x61')]);}})[_0xe896('0x2b')](respondWithStatusCode(_0x320865,null))['catch'](handleError(_0x320865,null));};exports[_0xe896('0x161')]=function(_0x3b3ca1,_0x40038f){var _0x38a988={},_0x40b600={},_0x31d38b={'count':0x0,'rows':[]};var _0x457c4b=db['CmHopper'][_0xe896('0x3b')];_0x40b600[_0xe896('0x57')]=_[_0xe896('0x54')](_0x457c4b);_0x40b600[_0xe896('0x41')]=_[_0xe896('0x54')](_0x3b3ca1[_0xe896('0x41')]);_0x40b600[_0xe896('0x56')]=_[_0xe896('0xce')](_0x40b600[_0xe896('0x57')],_0x40b600['query']);_0x40b600[_0xe896('0x56')]=_[_0xe896('0x162')](_0x40b600[_0xe896('0x56')],['$and','$or','$gt',_0xe896('0x163'),_0xe896('0x164'),_0xe896('0x165'),'$ne','$eq',_0xe896('0x166'),_0xe896('0x167'),_0xe896('0x168'),_0xe896('0x169'),'$notIn',_0xe896('0x16a'),_0xe896('0x16b'),_0xe896('0x16c'),'$notILike',_0xe896('0x16a'),_0xe896('0x16d'),_0xe896('0x16e'),_0xe896('0x16f'),'$any']);_0x38a988[_0xe896('0x44')]=_[_0xe896('0xce')](_0x40b600[_0xe896('0x57')],qs[_0xe896('0x58')](_0x3b3ca1[_0xe896('0x41')][_0xe896('0x58')]));_0x38a988[_0xe896('0x44')]=_0x38a988[_0xe896('0x44')][_0xe896('0x59')]?_0x38a988[_0xe896('0x44')]:_0x40b600[_0xe896('0x57')];if(!_0x3b3ca1[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x38a988['limit']=qs[_0xe896('0x27')](_0x3b3ca1[_0xe896('0x41')][_0xe896('0x27')]);_0x38a988[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x3b3ca1[_0xe896('0x41')][_0xe896('0x24')]);}_0x38a988[_0xe896('0xcf')]=qs['sort'](_0x3b3ca1[_0xe896('0x41')][_0xe896('0xd0')]);_0x38a988['where']=qs[_0xe896('0x56')](_[_0xe896('0xdb')](_0x3b3ca1[_0xe896('0x41')],_0x40b600[_0xe896('0x56')]));if(_0x3b3ca1[_0xe896('0x41')]['filter']){_0x38a988['where']=_[_0xe896('0xd1')](_0x38a988[_0xe896('0x40')],{'$or':_[_0xe896('0x3c')](_0x38a988[_0xe896('0x44')],function(_0x52f068){var _0x492d35={};_0x492d35[_0x52f068]={'$like':'%'+_0x3b3ca1[_0xe896('0x41')][_0xe896('0x3f')]+'%'};return _0x492d35;})});}_0x38a988[_0xe896('0x40')]={'$and':[_0x38a988[_0xe896('0x40')],{'$or':[{'UserId':_0x3b3ca1[_0xe896('0x52')]['id']},{'OwnerId':_0x3b3ca1[_0xe896('0x52')]['id']}]}]};_0x38a988=_['merge']({},_0x38a988,_0x3b3ca1[_0xe896('0x5a')]);var _0x4a22c4={'where':_0x38a988['where']};return db[_0xe896('0x170')][_0xe896('0x26')](_0x4a22c4)[_0xe896('0x2b')](function(_0x11de1f){_0x31d38b[_0xe896('0x26')]=_0x11de1f;if(_0x3b3ca1[_0xe896('0x41')][_0xe896('0x42')]){_0x38a988[_0xe896('0x43')]=[{'attributes':['id',_0xe896('0x171'),_0xe896('0x172'),_0xe896('0x173')],'model':db[_0xe896('0xcd')],'as':_0xe896('0x174')},{'attributes':['id','name',_0xe896('0x175')],'model':db[_0xe896('0x176')],'as':_0xe896('0xda')}];}return db[_0xe896('0x170')]['findAll'](_0x38a988);})['then'](function(_0xb1ddfe){_0x31d38b[_0xe896('0x48')]=_0xb1ddfe;return _0x31d38b;})[_0xe896('0x2b')](respondWithFilteredResult(_0x40038f,_0x38a988))['catch'](handleError(_0x40038f,null));};exports[_0xe896('0x177')]=function(_0x594726,_0x267670){if(!_[_0xe896('0x69')](_0x594726['user']['id'])&&(_0x594726[_0xe896('0x81')]['role']==_0xe896('0x2e')||_0x594726['user'][_0xe896('0x2d')]==_0xe896('0x81'))){return db[_0xe896('0x3a')][_0xe896('0x9b')]({'where':{'id':_0x594726[_0xe896('0x52')]['id']},'raw':!![]})[_0xe896('0x2b')](function(_0x500239){return authService[_0xe896('0x178')](_0x500239);})[_0xe896('0x2b')](function(_0x13c269){if(_0x13c269){return _0x267670['status'](0xc8)['json']({'api_key':_0x13c269[_0xe896('0x179')]});}else{return _0x267670['status'](0xcc)[_0xe896('0x23')]({'message':_0xe896('0x17a')});}})[_0xe896('0x1f')](handleError(_0x267670,0x193));}else{return _0x267670['status'](0x191)[_0xe896('0x23')]({'message':'You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.'});}};exports[_0xe896('0x17b')]=function(_0x8c1be,_0x756342){if(!_[_0xe896('0x69')](_0x8c1be[_0xe896('0x81')]['id'])&&(_0x8c1be[_0xe896('0x81')][_0xe896('0x2d')]==_0xe896('0x2e')||_0x8c1be['user']['role']=='user')){return db['User'][_0xe896('0x5b')]({'where':{'id':_0x8c1be[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](function(_0x2de606){return authService[_0xe896('0x17c')](_0x2de606);})[_0xe896('0x2b')](function(_0x932004){return db[_0xe896('0x3a')][_0xe896('0x5d')]({'apiKeyIat':_0x932004[_0xe896('0x17d')],'apiKeyNonce':_0x932004[_0xe896('0x17e')]},{'where':{'id':_0x8c1be[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](function(){return _0x756342[_0xe896('0x21')](0xc8)['json']({'api_key':_0x932004[_0xe896('0x179')]});});})['catch'](handleError(_0x756342,0x193));}else{return _0x756342['status'](0x191)[_0xe896('0x23')]({'message':'You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.'});}};exports[_0xe896('0x17f')]=function(_0x2d405d,_0x15635d){if(!_[_0xe896('0x69')](_0x2d405d[_0xe896('0x81')]['id'])&&(_0x2d405d[_0xe896('0x81')][_0xe896('0x2d')]==_0xe896('0x2e')||_0x2d405d[_0xe896('0x81')]['role']==_0xe896('0x81'))){return db[_0xe896('0x3a')][_0xe896('0x5b')]({'where':{'id':_0x2d405d[_0xe896('0x52')]['id']}})[_0xe896('0x2b')](handleEntityNotFound(_0x15635d,null))[_0xe896('0x2b')](function(_0x3265a1){if(_0x3265a1&&_0x3265a1[_0xe896('0x180')]&&_0x3265a1[_0xe896('0x181')])return _0x3265a1;else throw{'message':'API\x20key\x20not\x20available'};})[_0xe896('0x2b')](function(_0x5d91ea){return db[_0xe896('0x3a')]['update']({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x2d405d[_0xe896('0x52')]['id']}});})[_0xe896('0x2b')](respondWithStatusCode(_0x15635d,0xc8))[_0xe896('0x1f')](handleError(_0x15635d,0x193));}else{return _0x15635d['status'](0x191)[_0xe896('0x23')]({'message':_0xe896('0x182')});}};exports[_0xe896('0x183')]=function(_0x6e136f,_0x44a0f1){var _0x3d7e6b=_0x6e136f[_0xe896('0x81')][_0xe896('0x2c')]({'plain':!![]});if(!_0x3d7e6b){return _0x44a0f1[_0xe896('0x21')](0x191)[_0xe896('0x12f')]('Unable\x20to\x20retrieve\x20the\x20current\x20user');}else{return _0x44a0f1[_0xe896('0x21')](0xc8)['json'](_0x3d7e6b);}};exports[_0xe896('0x184')]=function(_0x148007,_0x5c1669){var _0x36ce58={'offset':0x0},_0x79411e={'count':0x0,'rows':[]};Promise[_0xe896('0x105')]()[_0xe896('0x2b')](function(){if(!_0x148007[_0xe896('0x41')][_0xe896('0x3f')]&&!_0x148007['query'][_0xe896('0x185')]&&!_0x148007[_0xe896('0x41')]['queues'])return[];return Promise['resolve']()[_0xe896('0x2b')](function(){var _0x960d07=[];if(!_[_0xe896('0x8e')](_0x148007[_0xe896('0x41')]['teams'])){_0x960d07[_0xe896('0x4a')](db['Team']['findAll']({'attributes':['id',_0xe896('0x36')],'where':{'id':_0x148007[_0xe896('0x41')][_0xe896('0x185')]}}));}if(!_[_0xe896('0x8e')](_0x148007[_0xe896('0x41')][_0xe896('0x186')])){_0x960d07[_0xe896('0x4a')](db[_0xe896('0x176')][_0xe896('0x45')]({'attributes':['id',_0xe896('0x36')],'type':_0xe896('0x187'),'where':{'id':_0x148007[_0xe896('0x41')][_0xe896('0x186')]}}));}return Promise[_0xe896('0x50')](_0x960d07);})['then'](function(_0x5c25fc){var _0x72e00c=_[_0xe896('0x122')](_0x5c25fc)['map'](function(_0x5f1a43){return _0x5f1a43[_0xe896('0x12d')]({'attributes':['id',_0xe896('0x36'),'internal',_0xe896('0xa1')],'raw':!![]});});return Promise[_0xe896('0x50')](_0x72e00c);})[_0xe896('0x2b')](function(_0x4f3daf){var _0x4d36dd=_['flatten'](_0x4f3daf);if(!_0x148007['query'][_0xe896('0x3f')])return _0x4d36dd;if(_[_0xe896('0x8e')](_0x4d36dd)){return db['User'][_0xe896('0x45')]({'attributes':['id',_0xe896('0x36'),_0xe896('0x63'),_0xe896('0xa1')],'where':{'role':_0xe896('0x30'),'$or':[db['sequelize'][_0xe896('0x40')](db[_0xe896('0x6b')]['fn'](_0xe896('0x188'),db[_0xe896('0x6b')][_0xe896('0x189')]('name')),{'$like':'%'+_0x148007[_0xe896('0x41')][_0xe896('0x3f')][_0xe896('0xa7')]()+'%'}),{'internal':{'$like':'%'+_0x148007[_0xe896('0x41')][_0xe896('0x3f')]+'%'}}]},'raw':!![]});}else{return _(_0x4d36dd)[_0xe896('0x122')]()[_0xe896('0x3f')](function(_0x258b56){return _0x258b56[_0xe896('0x36')][_0xe896('0xa7')]()[_0xe896('0x35')](_0x148007[_0xe896('0x41')]['filter'][_0xe896('0xa7')]())||_0x258b56[_0xe896('0x63')][_0xe896('0x18a')]()['includes'](_0x148007[_0xe896('0x41')]['filter']);})[_0xe896('0x34')]();}})[_0xe896('0x2b')](function(_0x33cacb){var _0x40ddb0=_0xe896('0x36');var _0x554be0=_0xe896('0x18b');if(_0x148007[_0xe896('0x41')]['sort']){var _0x554be0=_0x148007[_0xe896('0x41')][_0xe896('0xd0')][0x0]==='-'?_0xe896('0x18c'):'asc';var _0x40ddb0=_0x554be0==='asc'?_0x148007[_0xe896('0x41')][_0xe896('0xd0')]:_0x148007['query'][_0xe896('0xd0')][_0xe896('0x18d')](0x1);}return _(_0x33cacb)[_0xe896('0x18e')]('id')[_0xe896('0x18f')]([function(_0x4d8b91){return _0x40ddb0===_0xe896('0x36')?_0x4d8b91[_0x40ddb0][_0xe896('0xa7')]():_0x4d8b91[_0x40ddb0];}],[_0x554be0])[_0xe896('0x3c')](function(_0x8cbdd0){return _[_0xe896('0xdb')](_0x8cbdd0,['id',_0xe896('0x36'),_0xe896('0x63'),_0xe896('0xa1')]);})[_0xe896('0x34')]();})[_0xe896('0x2b')](function(_0x5cc5a6){return client['request']('Agents',_0x148007)[_0xe896('0x2b')](function(_0x2685fd){if(_0x2685fd['error'])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)');var _0x4e2f12=_0x2685fd[_0xe896('0x1e')];var _0xab9187=jayson[_0xe896('0x190')][_0xe896('0x14')]({'port':0x232c});return _0xab9187[_0xe896('0x15')](_0xe896('0x87'),_0x148007)[_0xe896('0x2b')](function(_0x479727){if(_0x479727[_0xe896('0x1b')])throw new Error(_0xe896('0x191'));var _0x52e8b0=_0x479727[_0xe896('0x1e')];return _[_0xe896('0xd1')]({},_0x52e8b0,_0x4e2f12);});})['then'](function(_0x53c108){return _[_0xe896('0x3c')](_0x5cc5a6,function(_0x2d8d5c){var _0x372abe=_[_0xe896('0x5b')](_0x53c108[_0xe896('0x48')],['id',_0x2d8d5c['id']]);if(!_0x372abe||!_0x2d8d5c[_0xe896('0xa1')]){_0x2d8d5c[_0xe896('0x21')]='offline';}else if(_0x372abe[_0xe896('0xa3')]){_0x2d8d5c[_0xe896('0x21')]=_0xe896('0x107');}else{_0x2d8d5c[_0xe896('0x21')]=_['includes'](['idle','unknown','unavailable',_0xe896('0x192'),null,undefined],_0x372abe['voiceStatus'])?'online':_0xe896('0x193');}return _0x2d8d5c;});});});})[_0xe896('0x2b')](function(_0xc9060c){if(!_0x148007[_0xe896('0x41')][_0xe896('0xd2')]('nolimit')){_0x36ce58[_0xe896('0x27')]=qs[_0xe896('0x27')](_0x148007['query'][_0xe896('0x27')]||0xa);_0x36ce58[_0xe896('0x24')]=qs[_0xe896('0x24')](_0x148007['query'][_0xe896('0x24')]);}_0x79411e[_0xe896('0x26')]=_0xc9060c[_0xe896('0x59')];_0x79411e['rows']=_0x36ce58[_0xe896('0x27')]?_0xc9060c[_0xe896('0x194')](_0x36ce58['offset'],_0x36ce58[_0xe896('0x24')]+_0x36ce58[_0xe896('0x27')]):_0xc9060c;return _0x79411e;})[_0xe896('0x2b')](respondWithFilteredResult(_0x5c1669,_0x36ce58))[_0xe896('0x1f')](handleError(_0x5c1669,null));};function get_open_tabs(_0x2631e0,_0x1ac340){var _0x500380=_0x2631e0[_0xe896('0x195')](0x0)[_0xe896('0x196')]()+_0x2631e0[_0xe896('0x194')](0x1);var _0x585db3={'type':db[_0xe896('0x94')][_0xe896('0x197')][_0xe896('0x6d')],'raw':!![]};return new BPromise(function(_0x3b431a,_0x9136fd){var _0x3b4465=squel['select']()[_0xe896('0x198')](_0xe896('0x199')+_0x500380+_0xe896('0x19a'),'id')['field']('ui.createdAt')[_0xe896('0x6e')]('user_has_'+_0x2631e0+_0xe896('0x19b'),'ui')[_0xe896('0x40')](_0xe896('0x19c'),_0x1ac340['id']);return db[_0xe896('0x6b')][_0xe896('0x41')](_0x3b4465['toString'](),_0x585db3)[_0xe896('0x2b')](function(_0x5d1ddd){_0x1ac340[_0x500380+_0xe896('0x19d')]=_0x5d1ddd;_0x3b431a(_0x5d1ddd);})['catch'](function(_0x328799){_0x9136fd(_0x328799);});});};
\ No newline at end of file
+var _0x25c2=['Queue:remove','addAvatar','userpic','file','filename','join','root','server/files/images/logos/default_profile.png','download','existsSync','server/files/images/','getOpenTabs','ChatOpenTabs','CHAT','createdAt','FaxOpenTabs','FAX','OpenchannelOpenTabs','MailOpenTabs','MAIL','SmsOpenTabs','SMS','getContacts','keys','CmContact','order','sort','hasOwnProperty','CmList','List','tag','nolimit','getQueues','pick','Queue','getVoiceQueuesRt','getGroups','ChatGroup','getRecordings','VoiceRecording','getScreenRecordings','ScreenRecording','UserId','getChatInteractions','getOpenchannelInteractions','getMailInteractions','MailInteraction','SmsInteraction','getSmsInteractions','getFaxInteractions','getWhatsappInteractions','login','phone','mobile','intrf','headers','x-forwarded-for','connection','remoteAddress','socket','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','getVoiceQueues','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','getChannels','LOGIN','device','PAUSE','concat','LOGININPAUSE','isMiddleware','resolve','logout','pause','QueuePause','updateAttributes','unpause','chatPause','faxPause','openchannelPause','smsPause','whatsapppause','pauseType','lastPauseAt','manual','%s%s','getTeams','Team','addTeams','setDataValue','Chat','Mail','getSmsQueues','getWhatsappQueues','Whatsapp','getFaxQueues','getOpenchannelQueues','flatten','transaction','addAgent','getDataValue','upsert','Queue:save','removeTeams','Voice','getChatQueues','Fax','Openchannel','getLists','getAgents','values','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','isArray','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','getVoicePrefixes','getFaxAccounts','addFaxAccounts','removeFaxAccounts','MailAccount','getMailAccounts','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$and','$or','$gt','$gte','$lt','$eq','$not','$in','$notIn','$like','$notLike','$iLike','$notILike','$overlap','$contains','$contained','firstName','lastName','dialActive','getApiKey','retrieveApiKey','token','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','createApiKey','generateApiKey','iat','removeApiKey','apiKeyNonce','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','getPresence','isEmpty','teams','queues','inbound','lower','col','asc','desc','orderBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','client','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','offline','idle','unknown','unavailable','ringing','voiceStatus','busy','slice','charAt','toUpperCase','field','ui.','user_has_','toString','OpenTabs','moment','util','path','squel','jayson/promise','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','socket.io-emitter','./user.socket','defaults','redis','localhost','http','request','then','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','end','json','offset','undefined','limit','count','status','update','get','role','admin','Users','user','Agents','agent','Telephones','telephone','filter','ignore','value','includes','destroy','stack','name','send','index','User','rawAttributes','fieldName','type','key','salt','getOptions','where','query','include','attributes','push','rows','openTabs','length','sms','dataValues','fax','mail','whatsapp','all','show','params','model','differenceBy','password','filters','intersection','fields','includeAll','merge','options','true','chat','openchannel','body','describe','addContacts','find','ids','omit','securePassword','validatePasswordPattern','max','isNil','internal','min_internal','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)','sequelize','QueryTypes','SELECT','from','voicemail','VoiceMail','fullname','email','permissions','101','102','103','110','104','105','107','108','109','100','114','115','Unauthorized','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','checkUserLimits','settingsEnabled','userProfileId','UserProfileSection','UserProfileResource','create','bulkCreate','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','each','findAll','map','autoAssociation','compact','changePassword','oldPassword','newPassword','Sequelize','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','ValidationError','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','enforcePasswordHistory','passwordHistoryLimit','previousPasswords','validatePasswordHistory','addQueues','channel','online','loginInPause','voicePause','interface','isValidChannel','add','capitalize','toLowerCase','Queues','penalty','spread','QueueId','emit','VoiceQueue','voice','format','SIP/%s','UserVoiceQueueRt','removeQueues','Unknown\x20channel'];(function(_0x125962,_0x4c2031){var _0x469c08=function(_0x1bee57){while(--_0x1bee57){_0x125962['push'](_0x125962['shift']());}};_0x469c08(++_0x4c2031);}(_0x25c2,0xdd));var _0x225c=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x25c2[_0xa464c9];return _0x3d73c4;};'use strict';var moment=require(_0x225c('0x0'));var BPromise=require('bluebird');var util=require(_0x225c('0x1'));var path=require(_0x225c('0x2'));var fs=require('fs');var _=require('lodash');var squel=require(_0x225c('0x3'));var jayson=require(_0x225c('0x4'));var Redis=require('ioredis');var authService=require(_0x225c('0x5'));var qs=require(_0x225c('0x6'));var logger=require('../../config/logger')(_0x225c('0x7'));var utils=require(_0x225c('0x8'));var config=require(_0x225c('0x9'));var licenseUtil=require(_0x225c('0xa'));var db=require(_0x225c('0xb'))['db'];var socket=require(_0x225c('0xc'))(new Redis(config['redis']));require(_0x225c('0xd'))['register'](socket);config['redis']=_[_0x225c('0xe')](config[_0x225c('0xf')],{'host':_0x225c('0x10'),'port':0x18eb});var client=jayson['client'][_0x225c('0x11')]({'port':0x232a});var values;function respondWithRpcPromise(_0x16a7c6,_0x411257,_0x3fe9db,_0x561dfe){return new BPromise(function(_0x1585eb,_0x1249c3){var _0x56e165=_0x561dfe||client;return _0x56e165[_0x225c('0x12')](_0x16a7c6,_0x3fe9db)[_0x225c('0x13')](function(_0x18ab23){logger['info'](_0x225c('0x14'),_0x411257,_0x225c('0x15'));logger[_0x225c('0x16')](_0x225c('0x17'),_0x411257,_0x225c('0x15'),JSON[_0x225c('0x18')](_0x18ab23));if(_0x18ab23[_0x225c('0x19')]){if(_0x18ab23[_0x225c('0x19')]['code']===0x1f4){logger['error'](_0x225c('0x14'),_0x411257,_0x18ab23[_0x225c('0x19')][_0x225c('0x1a')]);return _0x1249c3(_0x18ab23[_0x225c('0x19')]['message']);}logger[_0x225c('0x19')](_0x225c('0x14'),_0x411257,_0x18ab23[_0x225c('0x19')][_0x225c('0x1a')]);return _0x1585eb(_0x18ab23['error']['message']);}else{logger['info'](_0x225c('0x14'),_0x411257,_0x225c('0x15'));_0x1585eb(_0x18ab23[_0x225c('0x1b')][_0x225c('0x1a')]);}})[_0x225c('0x1c')](function(_0x1cc652){logger['error'](_0x225c('0x14'),_0x411257,_0x1cc652);_0x1249c3(_0x1cc652);});});}function respondWithStatusCode(_0x236963,_0x33c38f){_0x33c38f=_0x33c38f||0xcc;return function(_0x43f115){if(_0x43f115){return _0x236963[_0x225c('0x1d')](_0x33c38f);}return _0x236963['status'](_0x33c38f)[_0x225c('0x1e')]();};}function respondWithResult(_0x369e41,_0x3aef73){_0x3aef73=_0x3aef73||0xc8;return function(_0x4effd6){if(_0x4effd6){return _0x369e41['status'](_0x3aef73)[_0x225c('0x1f')](_0x4effd6);}};}function respondWithFilteredResult(_0x4abf2c,_0x355523){return function(_0x327e78){if(_0x327e78){var _0x439de1=typeof _0x355523[_0x225c('0x20')]===_0x225c('0x21')&&typeof _0x355523[_0x225c('0x22')]==='undefined';var _0x4af59c=_0x327e78[_0x225c('0x23')];var _0xfd91e1=_0x439de1?0x0:_0x355523['offset'];var _0x57c18e=_0x439de1?_0x327e78['count']:_0x355523[_0x225c('0x20')]+_0x355523['limit'];var _0x5aa346;if(_0x57c18e>=_0x4af59c){_0x57c18e=_0x4af59c;_0x5aa346=0xc8;}else{_0x5aa346=0xce;}_0x4abf2c[_0x225c('0x24')](_0x5aa346);return _0x4abf2c['set']('Content-Range',_0xfd91e1+'-'+_0x57c18e+'/'+_0x4af59c)['json'](_0x327e78);}return null;};}function saveUpdates(_0x46b13f){return function(_0x52cdc1){if(_0x52cdc1){return _0x52cdc1[_0x225c('0x25')](_0x46b13f)[_0x225c('0x13')](function(_0x45973d){return _0x45973d;});}return null;};}function removeEntity(_0x592c0e){return function(_0x49eb05){if(_0x49eb05){return _0x49eb05['destroy']()[_0x225c('0x13')](function(){var _0x75cc09=_0x49eb05[_0x225c('0x26')]({'plain':!![]});if(_0x75cc09[_0x225c('0x27')]===_0x225c('0x28'))return;var _0x1033a2=[{'name':_0x225c('0x29'),'value':_0x225c('0x2a'),'ignore':!![]},{'name':_0x225c('0x2b'),'value':_0x225c('0x2c'),'ignore':![]},{'name':_0x225c('0x2d'),'value':_0x225c('0x2e'),'ignore':![]}];var _0x23578f=_(_0x1033a2)[_0x225c('0x2f')](_0x225c('0x30'))['map']('value')[_0x225c('0x31')]();if(_[_0x225c('0x32')](_0x23578f,_0x75cc09['role'])){return;}var _0x46009d=_['find'](_0x1033a2,[_0x225c('0x31'),_0x75cc09[_0x225c('0x27')]])['name'];return db['UserProfileResource'][_0x225c('0x33')]({'where':{'type':_0x46009d,'resourceId':_0x75cc09['id']}})[_0x225c('0x13')](function(){return _0x49eb05;});})[_0x225c('0x13')](function(){_0x592c0e[_0x225c('0x24')](0xcc)[_0x225c('0x1e')]();});}};}function handleEntityNotFound(_0x14f539){return function(_0x3c992e){if(!_0x3c992e){_0x14f539[_0x225c('0x1d')](0x194);}return _0x3c992e;};}function handleError(_0x51b8d6,_0x25c9e0){_0x25c9e0=_0x25c9e0||0x1f4;return function(_0x2b5cd5){logger['error'](_0x2b5cd5[_0x225c('0x34')]);if(_0x2b5cd5[_0x225c('0x35')]){delete _0x2b5cd5[_0x225c('0x35')];}_0x51b8d6[_0x225c('0x24')](_0x25c9e0)[_0x225c('0x36')](_0x2b5cd5);};}exports[_0x225c('0x37')]=function(_0x5aa197,_0x1bbdc8){var _0x1029ff={},_0x5b30b1={'count':0x0,'rows':[]};var _0x30d642=_(db[_0x225c('0x38')][_0x225c('0x39')])['map'](function(_0x46c896){return{'name':_0x46c896[_0x225c('0x3a')],'type':_0x46c896[_0x225c('0x3b')][_0x225c('0x3c')]};})[_0x225c('0x2f')](function(_0x289459){return!_[_0x225c('0x32')](['password',_0x225c('0x3d')],_0x289459[_0x225c('0x35')]);})[_0x225c('0x31')]();_0x1029ff=qs[_0x225c('0x3e')](_0x30d642,_0x5aa197);var _0x49de92={'where':_0x1029ff[_0x225c('0x3f')]};return db['User'][_0x225c('0x23')](_0x49de92)[_0x225c('0x13')](function(_0x268654){_0x5b30b1[_0x225c('0x23')]=_0x268654;if(_0x5aa197[_0x225c('0x40')]['includeAll']){_0x1029ff[_0x225c('0x41')]=[{'all':!![]}];}if(!_[_0x225c('0x32')](_0x1029ff[_0x225c('0x42')],'id')){_0x1029ff[_0x225c('0x42')][_0x225c('0x43')]('id');}return db[_0x225c('0x38')]['findAll'](_0x1029ff);})[_0x225c('0x13')](function(_0x35f3b1){_0x5b30b1[_0x225c('0x44')]=_0x35f3b1;if(_0x5aa197[_0x225c('0x40')][_0x225c('0x45')]==='true'){var _0x5b326c=[];for(var _0x1847a6=0x0;_0x1847a6<_0x5b30b1[_0x225c('0x44')][_0x225c('0x46')];_0x1847a6++){_0x5b326c['push'](get_open_tabs('chat',_0x5b30b1['rows'][_0x1847a6]['dataValues']));_0x5b326c[_0x225c('0x43')](get_open_tabs(_0x225c('0x47'),_0x5b30b1['rows'][_0x1847a6][_0x225c('0x48')]));_0x5b326c[_0x225c('0x43')](get_open_tabs(_0x225c('0x49'),_0x5b30b1['rows'][_0x1847a6]['dataValues']));_0x5b326c[_0x225c('0x43')](get_open_tabs(_0x225c('0x4a'),_0x5b30b1[_0x225c('0x44')][_0x1847a6][_0x225c('0x48')]));_0x5b326c['push'](get_open_tabs('openchannel',_0x5b30b1['rows'][_0x1847a6][_0x225c('0x48')]));_0x5b326c[_0x225c('0x43')](get_open_tabs(_0x225c('0x4b'),_0x5b30b1['rows'][_0x1847a6][_0x225c('0x48')]));}return BPromise[_0x225c('0x4c')](_0x5b326c)[_0x225c('0x13')](function(_0x52ab21){return _0x5b30b1;});}else{return _0x5b30b1;}})[_0x225c('0x13')](respondWithFilteredResult(_0x1bbdc8,_0x1029ff))[_0x225c('0x1c')](handleError(_0x1bbdc8,null));};exports[_0x225c('0x4d')]=function(_0x3b4ba4,_0x178546){var _0x5e6017={'raw':![],'where':{'id':_0x3b4ba4[_0x225c('0x4e')]['id']}},_0x4ea41d={};_0x4ea41d[_0x225c('0x4f')]=_[_0x225c('0x50')](_['keys'](db['User'][_0x225c('0x39')]),[_0x225c('0x51'),_0x225c('0x3d')]);_0x4ea41d[_0x225c('0x40')]=_['keys'](_0x3b4ba4[_0x225c('0x40')]);_0x4ea41d[_0x225c('0x52')]=_[_0x225c('0x53')](_0x4ea41d[_0x225c('0x4f')],_0x4ea41d['query']);_0x5e6017[_0x225c('0x42')]=_[_0x225c('0x53')](_0x4ea41d['model'],qs['fields'](_0x3b4ba4[_0x225c('0x40')][_0x225c('0x54')]));_0x5e6017['attributes']=_0x5e6017[_0x225c('0x42')][_0x225c('0x46')]?_0x5e6017['attributes']:_0x4ea41d['model'];if(_0x3b4ba4[_0x225c('0x40')][_0x225c('0x55')]){_0x5e6017[_0x225c('0x41')]=[{'all':!![]}];}_0x5e6017=_[_0x225c('0x56')]({},_0x5e6017,_0x3b4ba4[_0x225c('0x57')]);if(!_['includes'](_0x5e6017[_0x225c('0x42')],'id')){_0x5e6017['attributes'][_0x225c('0x43')]('id');}return db[_0x225c('0x38')]['find'](_0x5e6017)[_0x225c('0x13')](handleEntityNotFound(_0x178546,null))[_0x225c('0x13')](function(_0x24dc93){var _0x4c0b16=[];values=_0x24dc93;if(_0x3b4ba4[_0x225c('0x40')][_0x225c('0x45')]===_0x225c('0x58')){_0x4c0b16[_0x225c('0x43')](get_open_tabs(_0x225c('0x59'),_0x24dc93[_0x225c('0x48')]));_0x4c0b16[_0x225c('0x43')](get_open_tabs('sms',_0x24dc93[_0x225c('0x48')]));_0x4c0b16[_0x225c('0x43')](get_open_tabs(_0x225c('0x5a'),_0x24dc93[_0x225c('0x48')]));_0x4c0b16['push'](get_open_tabs('whatsapp',_0x24dc93[_0x225c('0x48')]));_0x4c0b16[_0x225c('0x43')](get_open_tabs(_0x225c('0x49'),_0x24dc93[_0x225c('0x48')]));_0x4c0b16[_0x225c('0x43')](get_open_tabs(_0x225c('0x4a'),_0x24dc93[_0x225c('0x48')]));return BPromise['all'](_0x4c0b16);}else{return values;}})[_0x225c('0x13')](function(_0x2a5fb8){return values;})['then'](respondWithResult(_0x178546,null))[_0x225c('0x1c')](handleError(_0x178546,null));};exports['update']=function(_0x512f7d,_0x47a9b7){if(_0x512f7d[_0x225c('0x5b')]['id']){delete _0x512f7d['body']['id'];}delete _0x512f7d['body'][_0x225c('0x27')];return db[_0x225c('0x38')]['find']({'where':{'id':_0x512f7d[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x47a9b7,null))[_0x225c('0x13')](saveUpdates(_0x512f7d['body'],null))[_0x225c('0x13')](respondWithResult(_0x47a9b7,null))[_0x225c('0x1c')](handleError(_0x47a9b7,null));};exports['describe']=function(_0x777aa0,_0x342315){return db[_0x225c('0x38')][_0x225c('0x5c')]()['then'](respondWithResult(_0x342315,null))[_0x225c('0x1c')](handleError(_0x342315,null));};exports[_0x225c('0x5d')]=function(_0x3cbed6,_0x53a31b){return db['User'][_0x225c('0x5e')]({'where':{'id':_0x3cbed6[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x53a31b,null))[_0x225c('0x13')](function(_0x2ee88c){if(_0x2ee88c){return _0x2ee88c['addContacts'](_0x3cbed6[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x3cbed6[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{});}})['then'](respondWithResult(_0x53a31b,null))['catch'](handleError(_0x53a31b,null));};function validateUser(_0x2a0065){return new BPromise(function(_0x1d5822,_0xa301e9){if(_0x2a0065['internal'])return _0x1d5822(_0x2a0065);return db['Setting']['findById'](0x1)[_0x225c('0x13')](function(_0x356f12){if(_0x356f12[_0x225c('0x61')])authService[_0x225c('0x62')](_0x2a0065[_0x225c('0x51')]);db[_0x225c('0x38')][_0x225c('0x63')]('internal')[_0x225c('0x13')](function(_0x151404){if(_[_0x225c('0x64')](_0x151404)){_0x2a0065[_0x225c('0x65')]=_0x356f12[_0x225c('0x66')]||0x1;return;}if(_['isNil'](_0x356f12['min_internal'])||_0x356f12['min_internal']===_0x151404){_0x2a0065[_0x225c('0x65')]=_0x151404+0x1;return;}if(_0x356f12[_0x225c('0x66')]>_0x151404){_0x2a0065[_0x225c('0x65')]=_0x356f12[_0x225c('0x66')];return;}return db['sequelize'][_0x225c('0x40')](_0x225c('0x67'),{'type':db[_0x225c('0x68')][_0x225c('0x69')][_0x225c('0x6a')]})[_0x225c('0x13')](function(_0x41613f){if(_0x41613f&&_0x41613f[_0x225c('0x46')]){for(var _0x5c13a0=0x0,_0x146086=_0x41613f[_0x225c('0x46')];_0x5c13a0<_0x146086&&_[_0x225c('0x64')](_0x2a0065[_0x225c('0x65')]);_0x5c13a0++){if(_0x356f12['min_internal']<=_0x41613f[_0x5c13a0][_0x225c('0x6b')]){_0x2a0065[_0x225c('0x65')]=_0x41613f[_0x5c13a0][_0x225c('0x6b')];}else if(_0x356f12[_0x225c('0x66')]>_0x41613f[_0x5c13a0][_0x225c('0x6b')]&&_0x356f12[_0x225c('0x66')]<=_0x41613f[_0x5c13a0]['to']){_0x2a0065[_0x225c('0x65')]=_0x356f12[_0x225c('0x66')];}}}if(_[_0x225c('0x64')](_0x2a0065['internal'])){_0x2a0065['internal']=_0x151404+0x1;}return _0x1d5822(_0x2a0065);});});})['catch'](function(_0x3b1500){_0xa301e9(_0x3b1500);});});}function updateUser(_0x3a853b){return new BPromise(function(_0x571379,_0x1c7744){try{if(_0x3a853b[_0x225c('0x6c')]){_0x3a853b['mailbox']=_0x3a853b['internal'];_0x3a853b[_0x225c('0x6d')]={'mailbox':_0x3a853b[_0x225c('0x65')],'password':_0x3a853b[_0x225c('0x51')],'fullname':_0x3a853b[_0x225c('0x6e')],'email':_0x3a853b[_0x225c('0x6f')]};}if(_0x3a853b[_0x225c('0x27')]===_0x225c('0x2c')){if(!_0x3a853b[_0x225c('0x70')])_0x3a853b[_0x225c('0x70')]=[_0x225c('0x71'),_0x225c('0x72'),_0x225c('0x73'),'113',_0x225c('0x74'),_0x225c('0x75'),_0x225c('0x76'),'106',_0x225c('0x77'),_0x225c('0x78'),_0x225c('0x79'),_0x225c('0x7a'),'111',_0x225c('0x7b'),_0x225c('0x7c')];}_0x571379(_0x3a853b);}catch(_0x9edfb7){_0x1c7744(_0x9edfb7);}});}exports['create']=function(_0x404173,_0x4038fd){if(_0x404173[_0x225c('0x2a')][_0x225c('0x27')]===_0x225c('0x2c'))throw new Error(_0x225c('0x7d'));if(_0x404173[_0x225c('0x5b')][_0x225c('0x27')]===_0x225c('0x2a')&&_0x404173['user'][_0x225c('0x27')]!==_0x225c('0x28')){throw new Error(_0x225c('0x7e'));}if(_0x404173[_0x225c('0x5b')][_0x225c('0x27')]===_0x225c('0x28')&&_0x404173['user'][_0x225c('0x27')]!==_0x225c('0x28')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator');}return licenseUtil[_0x225c('0x7f')]([_0x404173[_0x225c('0x5b')]])[_0x225c('0x13')](function(){return validateUser(_0x404173[_0x225c('0x5b')]);})[_0x225c('0x13')](function(_0x3a5817){return updateUser(_0x3a5817)[_0x225c('0x13')](function(_0x1b1a85){if(_0x1b1a85[_0x225c('0x27')]==='admin'){_0x1b1a85[_0x225c('0x80')]=_0x404173['user']['settingsEnabled'];delete _0x1b1a85[_0x225c('0x81')];}return _0x1b1a85;});})['then'](function(_0x14debb){return db[_0x225c('0x38')]['create'](_0x14debb,{'include':[{'model':db[_0x225c('0x6d')],'as':_0x225c('0x6d')}]});})[_0x225c('0x13')](function(_0x1f6844){if(_0x404173[_0x225c('0x5b')][_0x225c('0x27')]==='user')return _0x1f6844;if(_0x404173['user'][_0x225c('0x27')]!==_0x225c('0x2a'))return _0x1f6844;return db[_0x225c('0x82')][_0x225c('0x5e')]({'where':{'name':_0x1f6844['role']===_0x225c('0x2c')?'Agents':_0x225c('0x2d'),'userProfileId':_0x404173['user'][_0x225c('0x81')]},'raw':!![]})[_0x225c('0x13')](function(_0x1c51b3){if(!_0x1c51b3||_0x1c51b3['autoAssociation']!=0x0)return _0x1f6844;return db[_0x225c('0x83')][_0x225c('0x84')]({'name':_0x1f6844['name'],'resourceId':_0x1f6844['id'],'type':_0x1c51b3[_0x225c('0x35')],'sectionId':_0x1c51b3['id']},{})['then'](function(){return _0x1f6844;});})[_0x225c('0x1c')](function(_0x29a4b){logger[_0x225c('0x19')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x29a4b);throw _0x29a4b;});})[_0x225c('0x13')](respondWithResult(_0x4038fd,0xc9))[_0x225c('0x1c')](handleError(_0x4038fd,null));};exports[_0x225c('0x85')]=function(_0x4260bd,_0x1be6fe){var _0x2fd55b=_0x4260bd[_0x225c('0x5b')];var _0x3fb5f2=[];if(_0x4260bd[_0x225c('0x2a')]['role']===_0x225c('0x2c'))throw new Error(_0x225c('0x7d'));if(_[_0x225c('0x86')](_0x2fd55b,[_0x225c('0x27'),_0x225c('0x2a')])&&_0x4260bd[_0x225c('0x2a')][_0x225c('0x27')]!=='admin'){throw new Error(_0x225c('0x7e'));}if(_['some'](_0x2fd55b,[_0x225c('0x27'),_0x225c('0x28')])&&_0x4260bd['user'][_0x225c('0x27')]!==_0x225c('0x28')){throw new Error(_0x225c('0x87'));}return licenseUtil[_0x225c('0x7f')](_0x2fd55b)[_0x225c('0x13')](function(){return validateUser(_0x2fd55b[0x0]);})[_0x225c('0x13')](function(){for(var _0x36d181=0x1;_0x36d181<_0x2fd55b[_0x225c('0x46')];_0x36d181++){var _0x398dbd=_0x2fd55b[_0x36d181-0x1]['internal'];if(!_0x2fd55b[_0x36d181]['internal'])_0x2fd55b[_0x36d181]['internal']=_0x398dbd+0x1;_0x3fb5f2[_0x225c('0x43')](validateUser(_0x2fd55b[_0x36d181]));}return BPromise[_0x225c('0x4c')](_0x3fb5f2);})['then'](function(){_0x3fb5f2=[];for(var _0x5d0d78=0x0;_0x5d0d78<_0x2fd55b[_0x225c('0x46')];_0x5d0d78++){_0x3fb5f2[_0x225c('0x43')](updateUser(_0x2fd55b[_0x5d0d78]));}return BPromise['all'](_0x3fb5f2);})[_0x225c('0x13')](function(){return BPromise[_0x225c('0x88')](_0x2fd55b,function(_0x37befa){return db['User'][_0x225c('0x84')](_0x37befa,{'include':[{'model':db['VoiceMail'],'as':_0x225c('0x6d')}]})[_0x225c('0x13')](function(_0x2511f3){_0x37befa['id']=_0x2511f3['id'];return _0x37befa;});});})[_0x225c('0x13')](function(_0x42ccca){if(_0x4260bd['body'][_0x225c('0x27')]==='user')return _0x42ccca;if(_0x4260bd['user']['role']!==_0x225c('0x2a'))return _0x42ccca;var _0x564f77=_[_0x225c('0x86')](_0x42ccca,function(_0x56fed4){return _0x56fed4[_0x225c('0x27')]===_0x225c('0x2c')||_0x56fed4[_0x225c('0x27')]===_0x225c('0x2e');});if(!_0x564f77)return _0x42ccca;return db[_0x225c('0x82')][_0x225c('0x89')]({'where':{'name':{'$or':[_0x225c('0x2b'),'Telephones']},'userProfileId':_0x4260bd[_0x225c('0x2a')][_0x225c('0x81')]},'raw':!![]})[_0x225c('0x13')](function(_0x51f918){if(_['isEmpty'](_0x51f918)||!_['some'](_0x51f918,['autoAssociation',0x0]))return _0x42ccca;_0x3fb5f2=[];var _0x5ec58d=_(_0x51f918)[_0x225c('0x8a')](function(_0x4bd32c){if(_0x4bd32c[_0x225c('0x8b')]===0x1)return;return _0x4bd32c['name']===_0x225c('0x2b')?_0x225c('0x2c'):_0x225c('0x2e');})[_0x225c('0x8c')]()[_0x225c('0x31')]();for(var _0x287f8e=0x0;_0x287f8e<_0x42ccca['length'];_0x287f8e++){if(!_['includes'](_0x5ec58d,_0x42ccca[_0x287f8e][_0x225c('0x27')]))return;var _0x31e024=_0x42ccca[_0x287f8e][_0x225c('0x27')]===_0x225c('0x2c')?_0x225c('0x2b'):_0x225c('0x2d');_0x3fb5f2[_0x225c('0x43')](db[_0x225c('0x83')][_0x225c('0x84')]({'name':_0x42ccca[_0x287f8e][_0x225c('0x35')],'resourceId':_0x42ccca[_0x287f8e]['id'],'type':_0x31e024,'sectionId':_[_0x225c('0x5e')](_0x51f918,['name',_0x31e024])['id']},{}));}return BPromise[_0x225c('0x4c')](_0x3fb5f2);});})[_0x225c('0x13')](respondWithResult(_0x1be6fe,0xc9))[_0x225c('0x1c')](handleError(_0x1be6fe,null));};exports[_0x225c('0x8d')]=function(_0x41a300,_0x598d3f){if(_0x41a300[_0x225c('0x5b')]['id']){delete _0x41a300[_0x225c('0x5b')]['id'];}return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x41a300[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](function(_0x571d11){if(!_0x571d11)return null;if(_0x571d11['id']===_0x41a300['user']['id']){if(!_0x41a300['body'][_0x225c('0x8e')]||!_0x41a300[_0x225c('0x5b')][_0x225c('0x8f')]){throw new db[(_0x225c('0x90'))]['ValidationError'](_0x225c('0x91'));}if(!_0x571d11['authenticate'](_0x41a300['body'][_0x225c('0x8e')])){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0x93'));}if(_0x41a300['body'][_0x225c('0x8e')]===_0x41a300[_0x225c('0x5b')][_0x225c('0x8f')]){throw new db['Sequelize'][(_0x225c('0x92'))](_0x225c('0x94'));}}else if(_0x41a300['user'][_0x225c('0x27')]===_0x225c('0x28')){if(!_0x41a300[_0x225c('0x5b')]['newPassword']){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0x95'));}}else if(_0x41a300[_0x225c('0x2a')][_0x225c('0x27')]===_0x225c('0x2a')){if(!_0x41a300[_0x225c('0x5b')][_0x225c('0x8f')]){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0x95'));}if(_0x571d11['role']!==_0x225c('0x2c')){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))]('Unauthorized');}}else{throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0x7d'));}return _0x571d11;})[_0x225c('0x13')](handleEntityNotFound(_0x598d3f,null))['then'](function(_0x530d3c){return db['Setting'][_0x225c('0x96')]({'attributes':['id','securePassword',_0x225c('0x97'),_0x225c('0x98')]})[_0x225c('0x13')](function(_0x31604c){if(_0x31604c[_0x225c('0x61')])authService[_0x225c('0x62')](_0x41a300[_0x225c('0x5b')][_0x225c('0x8f')]);if(!_0x31604c[_0x225c('0x97')]||!_0x530d3c[_0x225c('0x99')])return _0x530d3c;authService[_0x225c('0x9a')](_0x41a300['body'][_0x225c('0x8f')],_0x530d3c[_0x225c('0x99')],_0x31604c['passwordHistoryLimit']);return _0x530d3c;})['then'](saveUpdates({'password':_0x41a300[_0x225c('0x5b')][_0x225c('0x8f')],'passwordResetAt':_0x41a300[_0x225c('0x2a')]['id']==_0x41a300[_0x225c('0x4e')]['id']?moment():null,'previousPasswords':authService['updatePasswordsHistory'](_0x41a300[_0x225c('0x5b')][_0x225c('0x8f')],_0x530d3c[_0x225c('0x99')])},null));})[_0x225c('0x13')](respondWithResult(_0x598d3f,null))[_0x225c('0x1c')](handleError(_0x598d3f,null));};exports[_0x225c('0x9b')]=function(_0x45d936,_0x21986e){var _0x1ededd=_0x45d936[_0x225c('0x5b')][_0x225c('0x9c')];return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x45d936['params']['id']},'attributes':['id',_0x225c('0x35'),_0x225c('0x27'),_0x225c('0x9d'),_0x225c('0x9e'),_0x225c('0x9f'),_0x225c('0xa0')]})['then'](handleEntityNotFound(_0x21986e,null))['then'](function(_0x34fb17){if(_0x34fb17){if(!utils[_0x225c('0xa1')](_0x1ededd)){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))]('Unknown\x20channel');}return _0x34fb17[_0x225c('0xa2')+_[_0x225c('0xa3')](_0x1ededd[_0x225c('0xa4')]())+_0x225c('0xa5')](_0x45d936[_0x225c('0x5b')]['ids'],{'penalty':_0x45d936['body'][_0x225c('0xa6')]||0x0})[_0x225c('0xa7')](function(_0x2986c2){for(var _0x16401a=0x0;_0x16401a<_0x45d936[_0x225c('0x5b')][_0x225c('0x5f')]['length'];_0x16401a+=0x1){var _0x167a9c={'UserId':Number(_0x45d936[_0x225c('0x4e')]['id'])};_0x167a9c[_[_0x225c('0xa3')](_0x1ededd['toLowerCase']())+_0x225c('0xa8')]=Number(_0x45d936['body']['ids'][_0x16401a]);socket[_0x225c('0xa9')]('user'+_[_0x225c('0xa3')](_0x1ededd[_0x225c('0xa4')]())+'Queue:save',_0x167a9c);}return _0x2986c2;})['then'](function(){if(_0x1ededd==='voice'){return db[_0x225c('0xaa')]['findAll']({'where':{'id':_0x45d936['body'][_0x225c('0x5f')]||[]},'raw':!![],'attributes':['id',_0x225c('0x35')]});}})[_0x225c('0x13')](function(_0x4ab994){var _0x5518bd=_0x34fb17[_0x225c('0x26')]({'plain':!![]});var _0x3ebd08=[];if(_0x1ededd===_0x225c('0xab')&&_0x5518bd[_0x225c('0x27')]===_0x225c('0x2c')&&_0x5518bd[_0x225c('0x9d')]){for(var _0x83a388=0x0;_0x83a388<_0x4ab994[_0x225c('0x46')];_0x83a388+=0x1){_0x3ebd08[_0x225c('0x43')]({'membername':_0x5518bd[_0x225c('0x35')],'UserId':_0x5518bd['id'],'queue_name':_0x4ab994[_0x83a388][_0x225c('0x35')],'VoiceQueueId':_0x4ab994[_0x83a388]['id'],'interface':_[_0x225c('0x64')](_0x5518bd[_0x225c('0xa0')])?util[_0x225c('0xac')](_0x225c('0xad'),_0x5518bd[_0x225c('0x35')]):_0x5518bd['interface'],'paused':_0x5518bd['voicePause']||![],'penalty':_0x45d936[_0x225c('0x5b')][_0x225c('0xa6')]||0x0});}return BPromise['each'](_0x3ebd08,function(_0xd55517){return db[_0x225c('0xae')]['upsert'](_0xd55517);});}return _0x34fb17;});}})[_0x225c('0x13')](respondWithStatusCode(_0x21986e,null))['catch'](handleError(_0x21986e,null));};exports[_0x225c('0xaf')]=function(_0x478b8f,_0x31a901){var _0x4214b2;return db['User'][_0x225c('0x5e')]({'where':{'id':_0x478b8f['params']['id']},'attributes':['id',_0x225c('0x35'),_0x225c('0x27')]})[_0x225c('0x13')](handleEntityNotFound(_0x31a901,null))[_0x225c('0x13')](function(_0x3462b5){if(_0x3462b5){_0x4214b2=_0x3462b5;if(!_0x478b8f[_0x225c('0x40')]['channel']||!utils[_0x225c('0xa1')](_0x478b8f[_0x225c('0x40')][_0x225c('0x9c')])){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0xb0'));}return _0x3462b5['remove'+_[_0x225c('0xa3')](_0x478b8f[_0x225c('0x40')][_0x225c('0x9c')][_0x225c('0xa4')]())+_0x225c('0xa5')](_0x478b8f[_0x225c('0x40')][_0x225c('0x5f')]);}})[_0x225c('0x13')](function(_0x473281){if(_['isArray'](_0x478b8f[_0x225c('0x40')][_0x225c('0x5f')])){for(var _0x1b57c6=0x0;_0x1b57c6<_0x478b8f['query'][_0x225c('0x5f')][_0x225c('0x46')];_0x1b57c6+=0x1){var _0x3fb0df={'UserId':Number(_0x478b8f[_0x225c('0x4e')]['id'])};_0x3fb0df[_['capitalize'](_0x478b8f['query'][_0x225c('0x9c')][_0x225c('0xa4')]())+_0x225c('0xa8')]=Number(_0x478b8f[_0x225c('0x40')][_0x225c('0x5f')][_0x1b57c6]);socket[_0x225c('0xa9')](_0x225c('0x2a')+_[_0x225c('0xa3')](_0x478b8f[_0x225c('0x40')][_0x225c('0x9c')][_0x225c('0xa4')]())+_0x225c('0xb1'),_0x3fb0df);}}else{var _0x3fb0df={'UserId':Number(_0x478b8f[_0x225c('0x4e')]['id'])};_0x3fb0df[_['capitalize'](_0x478b8f[_0x225c('0x40')]['channel'][_0x225c('0xa4')]())+_0x225c('0xa8')]=Number(_0x478b8f[_0x225c('0x40')]['ids']);socket[_0x225c('0xa9')](_0x225c('0x2a')+_['capitalize'](_0x478b8f['query'][_0x225c('0x9c')][_0x225c('0xa4')]())+_0x225c('0xb1'),_0x3fb0df);}return _0x473281;})[_0x225c('0x13')](function(){if(_0x478b8f[_0x225c('0x40')][_0x225c('0x9c')]===_0x225c('0xab')){return db[_0x225c('0xae')][_0x225c('0x33')]({'where':{'UserId':_0x478b8f[_0x225c('0x4e')]['id'],'VoiceQueueId':_0x478b8f['query']['ids']},'individualHooks':!![]})['then'](function(){return _0x4214b2;});}return _0x4214b2;})[_0x225c('0x13')](respondWithStatusCode(_0x31a901,null))['catch'](handleError(_0x31a901,null));};exports[_0x225c('0xb2')]=function(_0x238c50,_0x507a7a){_0x238c50[_0x225c('0x5b')][_0x225c('0xb3')]=_0x238c50[_0x225c('0xb4')][_0x225c('0xb5')];return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x238c50[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x507a7a,null))[_0x225c('0x13')](saveUpdates(_0x238c50[_0x225c('0x5b')],null))['then'](respondWithResult(_0x507a7a,null))[_0x225c('0x1c')](handleError(_0x507a7a,null));};exports['getAvatar']=function(_0x2d873a,_0x498040){var _0x36054e=path[_0x225c('0xb6')](config[_0x225c('0xb7')],_0x225c('0xb8'));return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x2d873a[_0x225c('0x4e')]['id']},'attributes':['id',_0x225c('0xb3')],'raw':!![]})[_0x225c('0x13')](handleEntityNotFound(_0x498040,null))[_0x225c('0x13')](function(_0x5265c7){if(_0x5265c7){if(_[_0x225c('0x64')](_0x5265c7[_0x225c('0xb3')])){return _0x498040[_0x225c('0xb9')](_0x36054e);}else{if(!fs[_0x225c('0xba')](path[_0x225c('0xb6')](config[_0x225c('0xb7')],_0x225c('0xbb'),_0x5265c7[_0x225c('0xb3')]))){return _0x498040[_0x225c('0xb9')](_0x36054e);}return _0x498040['download'](path[_0x225c('0xb6')](config[_0x225c('0xb7')],'server/files/images/',_0x5265c7[_0x225c('0xb3')]));}}})[_0x225c('0x1c')](handleError(_0x498040,null));};exports[_0x225c('0xbc')]=function(_0x393aba,_0x2c2297){return db['User'][_0x225c('0x5e')]({'where':{'id':_0x393aba[_0x225c('0x4e')]['id']},'attributes':['id']})[_0x225c('0x13')](handleEntityNotFound(_0x2c2297,null))['then'](function(_0x42eafc){var _0xb118c3=[];values=_0x42eafc[_0x225c('0x48')];_0xb118c3['push'](get_open_tabs(_0x225c('0x59'),_0x42eafc[_0x225c('0x48')]));_0xb118c3['push'](get_open_tabs('sms',_0x42eafc[_0x225c('0x48')]));_0xb118c3[_0x225c('0x43')](get_open_tabs(_0x225c('0x5a'),_0x42eafc[_0x225c('0x48')]));_0xb118c3[_0x225c('0x43')](get_open_tabs('whatsapp',_0x42eafc[_0x225c('0x48')]));_0xb118c3['push'](get_open_tabs('fax',_0x42eafc[_0x225c('0x48')]));_0xb118c3[_0x225c('0x43')](get_open_tabs(_0x225c('0x4a'),_0x42eafc['dataValues']));return BPromise['all'](_0xb118c3);})[_0x225c('0x13')](function(_0xcd48ba){var _0x356e17=[];if(_0xcd48ba){for(var _0x5b4e73=0x0;_0x5b4e73<values[_0x225c('0xbd')][_0x225c('0x46')];_0x5b4e73++){var _0x466a36=values['ChatOpenTabs'][_0x5b4e73];_0x356e17[_0x225c('0x43')]({'channel':_0x225c('0xbe'),'id':_0x466a36['id'],'createdAt':_0x466a36[_0x225c('0xbf')]});}for(var _0x5b4e73=0x0;_0x5b4e73<values[_0x225c('0xc0')][_0x225c('0x46')];_0x5b4e73++){var _0x466a36=values[_0x225c('0xc0')][_0x5b4e73];_0x356e17[_0x225c('0x43')]({'channel':_0x225c('0xc1'),'id':_0x466a36['id'],'createdAt':_0x466a36[_0x225c('0xbf')]});}for(var _0x5b4e73=0x0;_0x5b4e73<values[_0x225c('0xc2')][_0x225c('0x46')];_0x5b4e73++){var _0x466a36=values[_0x225c('0xc2')][_0x5b4e73];_0x356e17['push']({'channel':'OPENCHANNEL','id':_0x466a36['id'],'createdAt':_0x466a36['createdAt']});}for(var _0x5b4e73=0x0;_0x5b4e73<values[_0x225c('0xc3')][_0x225c('0x46')];_0x5b4e73++){var _0x466a36=values[_0x225c('0xc3')][_0x5b4e73];_0x356e17[_0x225c('0x43')]({'channel':_0x225c('0xc4'),'id':_0x466a36['id'],'createdAt':_0x466a36['createdAt']});}for(var _0x5b4e73=0x0;_0x5b4e73<values[_0x225c('0xc5')][_0x225c('0x46')];_0x5b4e73++){var _0x466a36=values[_0x225c('0xc5')][_0x5b4e73];_0x356e17[_0x225c('0x43')]({'channel':_0x225c('0xc6'),'id':_0x466a36['id'],'createdAt':_0x466a36[_0x225c('0xbf')]});}for(var _0x5b4e73=0x0;_0x5b4e73<values['WhatsappOpenTabs']['length'];_0x5b4e73++){var _0x466a36=values['WhatsappOpenTabs'][_0x5b4e73];_0x356e17[_0x225c('0x43')]({'channel':'WHATSAPP','id':_0x466a36['id'],'createdAt':_0x466a36[_0x225c('0xbf')]});}var _0xa26f4a={'count':_0x356e17['length'],'rows':_0x356e17};return _0xa26f4a;}else return null;})[_0x225c('0x13')](respondWithResult(_0x2c2297,null))[_0x225c('0x1c')](handleError(_0x2c2297,null));};exports[_0x225c('0xc7')]=function(_0x3b2e1d,_0x4b4af8){var _0x556c0a={};var _0x17f840={};var _0x5d098a;var _0x368f57;return db[_0x225c('0x38')]['findOne']({'where':{'id':_0x3b2e1d[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4b4af8,null))['then'](function(_0x1dab12){if(_0x1dab12){_0x5d098a=_0x1dab12;_0x17f840['model']=_[_0x225c('0xc8')](db[_0x225c('0xc9')][_0x225c('0x39')]);_0x17f840[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x3b2e1d['query']);_0x17f840[_0x225c('0x52')]=_[_0x225c('0x53')](_0x17f840[_0x225c('0x4f')],_0x17f840[_0x225c('0x40')]);_0x556c0a['attributes']=_[_0x225c('0x53')](_0x17f840[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x3b2e1d['query'][_0x225c('0x54')]));_0x556c0a[_0x225c('0x42')]=_0x556c0a[_0x225c('0x42')]['length']?_0x556c0a[_0x225c('0x42')]:_0x17f840[_0x225c('0x4f')];_0x556c0a[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x3b2e1d[_0x225c('0x40')]['sort']);_0x556c0a['where']=qs[_0x225c('0x52')](_['pick'](_0x3b2e1d['query'],_0x17f840[_0x225c('0x52')]));if(_0x3b2e1d[_0x225c('0x40')][_0x225c('0x2f')]){_0x556c0a[_0x225c('0x3f')]=_['merge'](_0x556c0a['where'],{'$or':_[_0x225c('0x8a')](_0x556c0a[_0x225c('0x42')],function(_0x1a95f4){var _0x3a4714={};_0x3a4714[_0x1a95f4]={'$like':'%'+_0x3b2e1d[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x3a4714;})});}_0x556c0a=_[_0x225c('0x56')]({},_0x556c0a,_0x3b2e1d[_0x225c('0x57')]);return _0x5d098a['getContacts'](_0x556c0a);}})['then'](function(_0x4e8302){if(_0x4e8302){_0x368f57=_0x4e8302[_0x225c('0x46')];if(_0x3b2e1d['query'][_0x225c('0xcc')](_0x225c('0x55'))){_0x556c0a[_0x225c('0x41')]=[{'model':db[_0x225c('0xcd')],'as':_0x225c('0xce'),'required':![]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x225c('0x35'),'color'],'where':_0x3b2e1d['query']['tag']?{'id':_0x3b2e1d[_0x225c('0x40')][_0x225c('0xcf')]}:undefined,'required':_0x3b2e1d['query'][_0x225c('0xcf')]?!![]:![]}];}if(!_0x3b2e1d[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0x556c0a[_0x225c('0x22')]=qs['limit'](_0x3b2e1d[_0x225c('0x40')][_0x225c('0x22')]);_0x556c0a[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x3b2e1d['query'][_0x225c('0x20')]);}return _0x5d098a[_0x225c('0xc7')](_0x556c0a);}})[_0x225c('0x13')](function(_0x4bfd6a){if(_0x4bfd6a){return _0x4bfd6a?{'count':_0x368f57,'rows':_0x4bfd6a}:null;}})[_0x225c('0x13')](respondWithResult(_0x4b4af8,null))[_0x225c('0x1c')](handleError(_0x4b4af8,null));};exports[_0x225c('0xd1')]=function(_0x538c95,_0x5e88d3){var _0x24fdf4;var _0x3c9f57;var _0x4f09b8={};var _0x4a7879;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x538c95[_0x225c('0x4e')]['id']},'attributes':['id',_0x225c('0x35'),_0x225c('0x27')]})[_0x225c('0x13')](handleEntityNotFound(_0x5e88d3,null))[_0x225c('0x13')](function(_0x57610e){if(!utils[_0x225c('0xa1')](_0x538c95[_0x225c('0x40')][_0x225c('0x9c')])){throw new db['Sequelize'][(_0x225c('0x92'))](_0x225c('0xb0'));}_0x24fdf4=_0x57610e;var _0x11a902={};_0x11a902[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_['capitalize'](_0x538c95[_0x225c('0x40')]['channel'])+'Queue'][_0x225c('0x39')]);_0x11a902[_0x225c('0x40')]=_['keys'](_0x538c95[_0x225c('0x40')]);_0x11a902[_0x225c('0x52')]=_[_0x225c('0x53')](_0x11a902['model'],_0x11a902[_0x225c('0x40')]);_0x4f09b8[_0x225c('0x42')]=_[_0x225c('0x53')](_0x11a902[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x538c95['query'][_0x225c('0x54')]));_0x4f09b8['attributes']=_0x4f09b8['attributes'][_0x225c('0x46')]?_0x4f09b8[_0x225c('0x42')]:_0x11a902[_0x225c('0x4f')];_0x4f09b8['order']=qs[_0x225c('0xcb')](_0x538c95[_0x225c('0x40')][_0x225c('0xcb')]);_0x4f09b8[_0x225c('0x3f')]=qs['filters'](_[_0x225c('0xd2')](_0x538c95[_0x225c('0x40')],_0x11a902[_0x225c('0x52')]));if(_0x538c95[_0x225c('0x40')][_0x225c('0x2f')]){_0x4f09b8['where']=_[_0x225c('0x56')](_0x4f09b8[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x4f09b8[_0x225c('0x42')],function(_0x303513){var _0x11fcaf={};_0x11fcaf[_0x303513]={'$like':'%'+_0x538c95[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x11fcaf;})});}_0x4f09b8=_[_0x225c('0x56')]({},_0x4f09b8,_0x538c95[_0x225c('0x57')]);switch(_0x24fdf4[_0x225c('0x27')]){case _0x225c('0x28'):return db[_[_0x225c('0xa3')](_0x538c95['query'][_0x225c('0x9c')])+_0x225c('0xd3')]['findAll'](_0x4f09b8);case _0x225c('0x2a'):case _0x225c('0x2c'):return _0x24fdf4[_0x225c('0x26')+_['capitalize'](_0x538c95['query']['channel'])+'Queues'](_0x4f09b8);default:throw new db['Sequelize'][(_0x225c('0x92'))]('Unknown\x20role');}})[_0x225c('0x13')](function(_0x3de02a){_0x4a7879=_0x3de02a[_0x225c('0x46')];if(!_0x538c95['query']['hasOwnProperty'](_0x225c('0xd0'))){_0x4f09b8[_0x225c('0x22')]=qs['limit'](_0x538c95[_0x225c('0x40')][_0x225c('0x22')]);_0x4f09b8[_0x225c('0x20')]=qs['offset'](_0x538c95['query'][_0x225c('0x20')]);}switch(_0x24fdf4['role']){case _0x225c('0x28'):return db[_['capitalize'](_0x538c95['query']['channel'])+_0x225c('0xd3')][_0x225c('0x89')](_0x4f09b8);case _0x225c('0x2a'):case _0x225c('0x2c'):return _0x24fdf4['get'+_['capitalize'](_0x538c95['query'][_0x225c('0x9c')])+_0x225c('0xa5')](_0x4f09b8);}})[_0x225c('0x13')](function(_0x83468f){return{'count':_0x4a7879,'rows':_0x83468f};})[_0x225c('0x13')](respondWithResult(_0x5e88d3,null))[_0x225c('0x1c')](handleError(_0x5e88d3,null));};exports[_0x225c('0xd4')]=function(_0x395e70,_0x4bc0c6){var _0x4facfd={};var _0x3c9b28={};var _0x251ee8;var _0x58e9d3;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x395e70['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4bc0c6,null))[_0x225c('0x13')](function(_0x25974b){if(_0x25974b){_0x251ee8=_0x25974b;_0x3c9b28[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0xae')][_0x225c('0x39')]);_0x3c9b28[_0x225c('0x40')]=_['keys'](_0x395e70['query']);_0x3c9b28[_0x225c('0x52')]=_['intersection'](_0x3c9b28[_0x225c('0x4f')],_0x3c9b28[_0x225c('0x40')]);_0x4facfd[_0x225c('0x42')]=_[_0x225c('0x53')](_0x3c9b28[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x395e70[_0x225c('0x40')]['fields']));_0x4facfd[_0x225c('0x42')]=_0x4facfd[_0x225c('0x42')][_0x225c('0x46')]?_0x4facfd['attributes']:_0x3c9b28['model'];_0x4facfd[_0x225c('0xca')]=qs['sort'](_0x395e70['query'][_0x225c('0xcb')]);_0x4facfd[_0x225c('0x3f')]=qs[_0x225c('0x52')](_['pick'](_0x395e70['query'],_0x3c9b28[_0x225c('0x52')]));if(_0x395e70[_0x225c('0x40')][_0x225c('0x2f')]){_0x4facfd[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x4facfd['where'],{'$or':_['map'](_0x4facfd[_0x225c('0x42')],function(_0x6fb86e){var _0xbdee7a={};_0xbdee7a[_0x6fb86e]={'$like':'%'+_0x395e70[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0xbdee7a;})});}_0x4facfd=_[_0x225c('0x56')]({},_0x4facfd,_0x395e70[_0x225c('0x57')]);return _0x251ee8[_0x225c('0xd4')](_0x4facfd);}})[_0x225c('0x13')](function(_0x15edbb){if(_0x15edbb){_0x58e9d3=_0x15edbb[_0x225c('0x46')];if(!_0x395e70[_0x225c('0x40')][_0x225c('0xcc')]('nolimit')){_0x4facfd[_0x225c('0x22')]=qs['limit'](_0x395e70[_0x225c('0x40')][_0x225c('0x22')]);_0x4facfd[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x395e70[_0x225c('0x40')][_0x225c('0x20')]);}return _0x251ee8[_0x225c('0xd4')](_0x4facfd);}})['then'](function(_0x218b9b){if(_0x218b9b){return _0x218b9b?{'count':_0x58e9d3,'rows':_0x218b9b}:null;}})[_0x225c('0x13')](respondWithResult(_0x4bc0c6,null))['catch'](handleError(_0x4bc0c6,null));};exports[_0x225c('0xd5')]=function(_0x3df86d,_0x14e5cd){var _0x4c5aed={};var _0x4e143b={};var _0x3a86ed;var _0x509d05;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x3df86d[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x14e5cd,null))[_0x225c('0x13')](function(_0x82b787){if(_0x82b787){_0x3a86ed=_0x82b787;_0x4e143b[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0xd6')][_0x225c('0x39')]);_0x4e143b[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x3df86d[_0x225c('0x40')]);_0x4e143b[_0x225c('0x52')]=_[_0x225c('0x53')](_0x4e143b[_0x225c('0x4f')],_0x4e143b['query']);_0x4c5aed['attributes']=_[_0x225c('0x53')](_0x4e143b[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x3df86d[_0x225c('0x40')]['fields']));_0x4c5aed[_0x225c('0x42')]=_0x4c5aed[_0x225c('0x42')][_0x225c('0x46')]?_0x4c5aed[_0x225c('0x42')]:_0x4e143b[_0x225c('0x4f')];_0x4c5aed[_0x225c('0xca')]=qs['sort'](_0x3df86d[_0x225c('0x40')][_0x225c('0xcb')]);_0x4c5aed[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x3df86d[_0x225c('0x40')],_0x4e143b[_0x225c('0x52')]));if(_0x3df86d['query'][_0x225c('0x2f')]){_0x4c5aed['where']=_['merge'](_0x4c5aed['where'],{'$or':_[_0x225c('0x8a')](_0x4c5aed[_0x225c('0x42')],function(_0x50a2e0){var _0x1ac66f={};_0x1ac66f[_0x50a2e0]={'$like':'%'+_0x3df86d[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x1ac66f;})});}_0x4c5aed=_[_0x225c('0x56')]({},_0x4c5aed,_0x3df86d[_0x225c('0x57')]);return _0x3a86ed[_0x225c('0xd5')](_0x4c5aed);}})[_0x225c('0x13')](function(_0x3e4fa3){if(_0x3e4fa3){_0x509d05=_0x3e4fa3[_0x225c('0x46')];if(!_0x3df86d[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0x4c5aed[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x3df86d[_0x225c('0x40')][_0x225c('0x22')]);_0x4c5aed['offset']=qs[_0x225c('0x20')](_0x3df86d[_0x225c('0x40')][_0x225c('0x20')]);}return _0x3a86ed[_0x225c('0xd5')](_0x4c5aed);}})['then'](function(_0x2cf010){if(_0x2cf010){return _0x2cf010?{'count':_0x509d05,'rows':_0x2cf010}:null;}})[_0x225c('0x13')](respondWithResult(_0x14e5cd,null))['catch'](handleError(_0x14e5cd,null));};exports[_0x225c('0xd7')]=function(_0x239454,_0x174e0c){var _0x1af682={'raw':!![],'where':{}};var _0x3a83bb={};var _0x1ecb38={'count':0x0,'rows':[]};return db['User']['findOne']({'where':{'id':_0x239454[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x174e0c,null))[_0x225c('0x13')](function(_0x899702){if(_0x899702){_0x3a83bb[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0xd8')][_0x225c('0x39')]);_0x3a83bb[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x239454[_0x225c('0x40')]);_0x3a83bb[_0x225c('0x52')]=_['intersection'](_0x3a83bb[_0x225c('0x4f')],_0x3a83bb[_0x225c('0x40')]);_0x1af682[_0x225c('0x42')]=_[_0x225c('0x53')](_0x3a83bb[_0x225c('0x4f')],qs['fields'](_0x239454[_0x225c('0x40')][_0x225c('0x54')]));_0x1af682[_0x225c('0x42')]=_0x1af682['attributes']['length']?_0x1af682[_0x225c('0x42')]:_0x3a83bb[_0x225c('0x4f')];if(!_0x239454[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0x1af682['limit']=qs['limit'](_0x239454[_0x225c('0x40')][_0x225c('0x22')]);_0x1af682[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x239454[_0x225c('0x40')][_0x225c('0x20')]);}_0x1af682['order']=qs[_0x225c('0xcb')](_0x239454[_0x225c('0x40')]['sort']);_0x1af682[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x239454[_0x225c('0x40')],_0x3a83bb['filters']));_0x1af682[_0x225c('0x3f')]['UserId']=_0x899702['id'];if(_0x239454['query'][_0x225c('0x2f')]){_0x1af682[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x1af682[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x1af682[_0x225c('0x42')],function(_0x593cea){var _0x4e00b6={};_0x4e00b6[_0x593cea]={'$like':'%'+_0x239454['query'][_0x225c('0x2f')]+'%'};return _0x4e00b6;})});}_0x1af682=_[_0x225c('0x56')]({},_0x1af682,_0x239454[_0x225c('0x57')]);return db[_0x225c('0xd8')][_0x225c('0x23')]({'where':_0x1af682[_0x225c('0x3f')]})[_0x225c('0x13')](function(_0x48237d){_0x1ecb38[_0x225c('0x23')]=_0x48237d;if(_0x239454[_0x225c('0x40')]['includeAll']){_0x1af682[_0x225c('0x41')]=[{'all':!![]}];}return db[_0x225c('0xd8')][_0x225c('0x89')](_0x1af682);})[_0x225c('0x13')](function(_0x46939e){_0x1ecb38['rows']=_0x46939e;return _0x1ecb38;});}})[_0x225c('0x13')](respondWithFilteredResult(_0x174e0c,_0x1af682))[_0x225c('0x1c')](handleError(_0x174e0c,null));};exports[_0x225c('0xd9')]=function(_0x20b480,_0xde9221){var _0x3cf4cd={'raw':!![],'where':{}};var _0x177762={};var _0x462e6c={'count':0x0,'rows':[]};return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x20b480[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0xde9221,null))[_0x225c('0x13')](function(_0xda5576){if(_0xda5576){_0x177762[_0x225c('0x4f')]=_['keys'](db[_0x225c('0xda')][_0x225c('0x39')]);_0x177762[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x20b480[_0x225c('0x40')]);_0x177762['filters']=_['intersection'](_0x177762[_0x225c('0x4f')],_0x177762[_0x225c('0x40')]);_0x3cf4cd[_0x225c('0x42')]=_['intersection'](_0x177762[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x20b480['query'][_0x225c('0x54')]));_0x3cf4cd[_0x225c('0x42')]=_0x3cf4cd[_0x225c('0x42')][_0x225c('0x46')]?_0x3cf4cd[_0x225c('0x42')]:_0x177762[_0x225c('0x4f')];if(!_0x20b480['query'][_0x225c('0xcc')](_0x225c('0xd0'))){_0x3cf4cd['limit']=qs['limit'](_0x20b480['query'][_0x225c('0x22')]);_0x3cf4cd[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x20b480[_0x225c('0x40')][_0x225c('0x20')]);}_0x3cf4cd[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x20b480[_0x225c('0x40')][_0x225c('0xcb')]);_0x3cf4cd[_0x225c('0x3f')]=qs[_0x225c('0x52')](_['pick'](_0x20b480[_0x225c('0x40')],_0x177762['filters']));_0x3cf4cd[_0x225c('0x3f')][_0x225c('0xdb')]=_0xda5576['id'];if(_0x20b480[_0x225c('0x40')][_0x225c('0x2f')]){_0x3cf4cd[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x3cf4cd['where'],{'$or':_[_0x225c('0x8a')](_0x3cf4cd[_0x225c('0x42')],function(_0x83b36a){var _0x364733={};_0x364733[_0x83b36a]={'$like':'%'+_0x20b480['query'][_0x225c('0x2f')]+'%'};return _0x364733;})});}_0x3cf4cd=_[_0x225c('0x56')]({},_0x3cf4cd,_0x20b480[_0x225c('0x57')]);return db[_0x225c('0xda')]['count']({'where':_0x3cf4cd[_0x225c('0x3f')]})[_0x225c('0x13')](function(_0x457216){_0x462e6c['count']=_0x457216;if(_0x20b480[_0x225c('0x40')][_0x225c('0x55')]){_0x3cf4cd[_0x225c('0x41')]=[{'all':!![]}];}return db[_0x225c('0xda')]['findAll'](_0x3cf4cd);})['then'](function(_0x197520){_0x462e6c[_0x225c('0x44')]=_0x197520;return _0x462e6c;});}})[_0x225c('0x13')](respondWithFilteredResult(_0xde9221,_0x3cf4cd))[_0x225c('0x1c')](handleError(_0xde9221,null));};exports[_0x225c('0xdc')]=function(_0xbd283,_0x372a65){var _0xa8b1b={};var _0x10e63={};var _0x1a8677;var _0x4c73b5;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0xbd283[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x372a65,null))['then'](function(_0x4c4595){if(_0x4c4595){_0x1a8677=_0x4c4595;_0x10e63[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['ChatInteraction'][_0x225c('0x39')]);_0x10e63['query']=_['keys'](_0xbd283[_0x225c('0x40')]);_0x10e63[_0x225c('0x52')]=_[_0x225c('0x53')](_0x10e63[_0x225c('0x4f')],_0x10e63[_0x225c('0x40')]);_0xa8b1b[_0x225c('0x42')]=_['intersection'](_0x10e63[_0x225c('0x4f')],qs['fields'](_0xbd283[_0x225c('0x40')][_0x225c('0x54')]));_0xa8b1b['attributes']=_0xa8b1b[_0x225c('0x42')][_0x225c('0x46')]?_0xa8b1b[_0x225c('0x42')]:_0x10e63['model'];_0xa8b1b[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0xbd283['query'][_0x225c('0xcb')]);_0xa8b1b[_0x225c('0x3f')]=qs['filters'](_[_0x225c('0xd2')](_0xbd283['query'],_0x10e63[_0x225c('0x52')]));if(_0xbd283['query'][_0x225c('0x2f')]){_0xa8b1b[_0x225c('0x3f')]=_['merge'](_0xa8b1b[_0x225c('0x3f')],{'$or':_['map'](_0xa8b1b[_0x225c('0x42')],function(_0x4ebcd3){var _0x5cac82={};_0x5cac82[_0x4ebcd3]={'$like':'%'+_0xbd283[_0x225c('0x40')]['filter']+'%'};return _0x5cac82;})});}_0xa8b1b=_['merge']({},_0xa8b1b,_0xbd283[_0x225c('0x57')]);return _0x1a8677[_0x225c('0xdc')](_0xa8b1b);}})[_0x225c('0x13')](function(_0x145d56){if(_0x145d56){_0x4c73b5=_0x145d56[_0x225c('0x46')];if(!_0xbd283[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0xa8b1b[_0x225c('0x22')]=qs['limit'](_0xbd283[_0x225c('0x40')][_0x225c('0x22')]);_0xa8b1b[_0x225c('0x20')]=qs[_0x225c('0x20')](_0xbd283[_0x225c('0x40')][_0x225c('0x20')]);}return _0x1a8677[_0x225c('0xdc')](_0xa8b1b);}})[_0x225c('0x13')](function(_0x51e663){if(_0x51e663){return _0x51e663?{'count':_0x4c73b5,'rows':_0x51e663}:null;}})[_0x225c('0x13')](respondWithResult(_0x372a65,null))[_0x225c('0x1c')](handleError(_0x372a65,null));};exports[_0x225c('0xdd')]=function(_0x222ced,_0x17df2d){var _0x5a86b2={};var _0x3f609c={};var _0x33c2bc;var _0x27d759;return db['User'][_0x225c('0x96')]({'where':{'id':_0x222ced[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x17df2d,null))[_0x225c('0x13')](function(_0x3dfe79){if(_0x3dfe79){_0x33c2bc=_0x3dfe79;_0x3f609c[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['OpenchannelInteraction'][_0x225c('0x39')]);_0x3f609c[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x222ced['query']);_0x3f609c[_0x225c('0x52')]=_[_0x225c('0x53')](_0x3f609c[_0x225c('0x4f')],_0x3f609c[_0x225c('0x40')]);_0x5a86b2['attributes']=_['intersection'](_0x3f609c['model'],qs[_0x225c('0x54')](_0x222ced[_0x225c('0x40')]['fields']));_0x5a86b2[_0x225c('0x42')]=_0x5a86b2['attributes'][_0x225c('0x46')]?_0x5a86b2[_0x225c('0x42')]:_0x3f609c[_0x225c('0x4f')];_0x5a86b2[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x222ced[_0x225c('0x40')][_0x225c('0xcb')]);_0x5a86b2['where']=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x222ced[_0x225c('0x40')],_0x3f609c[_0x225c('0x52')]));if(_0x222ced[_0x225c('0x40')][_0x225c('0x2f')]){_0x5a86b2['where']=_[_0x225c('0x56')](_0x5a86b2[_0x225c('0x3f')],{'$or':_['map'](_0x5a86b2[_0x225c('0x42')],function(_0x468c2a){var _0x4d7b80={};_0x4d7b80[_0x468c2a]={'$like':'%'+_0x222ced[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x4d7b80;})});}_0x5a86b2=_[_0x225c('0x56')]({},_0x5a86b2,_0x222ced[_0x225c('0x57')]);return _0x33c2bc[_0x225c('0xdd')](_0x5a86b2);}})['then'](function(_0x23c8aa){if(_0x23c8aa){_0x27d759=_0x23c8aa[_0x225c('0x46')];if(!_0x222ced['query'][_0x225c('0xcc')](_0x225c('0xd0'))){_0x5a86b2[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x222ced['query'][_0x225c('0x22')]);_0x5a86b2[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x222ced[_0x225c('0x40')][_0x225c('0x20')]);}return _0x33c2bc['getOpenchannelInteractions'](_0x5a86b2);}})['then'](function(_0x121be7){if(_0x121be7){return _0x121be7?{'count':_0x27d759,'rows':_0x121be7}:null;}})['then'](respondWithResult(_0x17df2d,null))[_0x225c('0x1c')](handleError(_0x17df2d,null));};exports[_0x225c('0xde')]=function(_0x22e50f,_0x2f0b42){var _0x3933bf={'raw':!![],'where':{}};var _0x52147c={};var _0x10fc44={'count':0x0,'rows':[]};return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x22e50f[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x2f0b42,null))[_0x225c('0x13')](function(_0x21214b){if(_0x21214b){_0x52147c[_0x225c('0x4f')]=_['keys'](db['MailInteraction'][_0x225c('0x39')]);_0x52147c['query']=_['keys'](_0x22e50f[_0x225c('0x40')]);_0x52147c[_0x225c('0x52')]=_[_0x225c('0x53')](_0x52147c[_0x225c('0x4f')],_0x52147c[_0x225c('0x40')]);_0x3933bf['attributes']=_[_0x225c('0x53')](_0x52147c[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x22e50f[_0x225c('0x40')][_0x225c('0x54')]));_0x3933bf[_0x225c('0x42')]=_0x3933bf[_0x225c('0x42')][_0x225c('0x46')]?_0x3933bf['attributes']:_0x52147c[_0x225c('0x4f')];if(!_0x22e50f['query'][_0x225c('0xcc')]('nolimit')){_0x3933bf[_0x225c('0x22')]=qs['limit'](_0x22e50f[_0x225c('0x40')][_0x225c('0x22')]);_0x3933bf[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x22e50f[_0x225c('0x40')][_0x225c('0x20')]);}_0x3933bf[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x22e50f['query'][_0x225c('0xcb')]);_0x3933bf[_0x225c('0x3f')]=qs['filters'](_[_0x225c('0xd2')](_0x22e50f['query'],_0x52147c[_0x225c('0x52')]));_0x3933bf[_0x225c('0x3f')]['UserId']=_0x21214b['id'];if(_0x22e50f['query'][_0x225c('0x2f')]){_0x3933bf[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x3933bf[_0x225c('0x3f')],{'$or':_['map'](_0x3933bf[_0x225c('0x42')],function(_0x561260){var _0x4e804b={};_0x4e804b[_0x561260]={'$like':'%'+_0x22e50f[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x4e804b;})});}_0x3933bf=_['merge']({},_0x3933bf,_0x22e50f[_0x225c('0x57')]);return db['MailInteraction'][_0x225c('0x23')]({'where':_0x3933bf[_0x225c('0x3f')]})[_0x225c('0x13')](function(_0x3449a8){_0x10fc44[_0x225c('0x23')]=_0x3449a8;if(_0x22e50f[_0x225c('0x40')][_0x225c('0x55')]){_0x3933bf['include']=[{'all':!![]}];}return db[_0x225c('0xdf')][_0x225c('0x89')](_0x3933bf);})[_0x225c('0x13')](function(_0x3fdbff){_0x10fc44[_0x225c('0x44')]=_0x3fdbff;return _0x10fc44;});}})[_0x225c('0x13')](respondWithFilteredResult(_0x2f0b42,_0x3933bf))[_0x225c('0x1c')](handleError(_0x2f0b42,null));};exports['getSmsInteractions']=function(_0x12315d,_0xbbfd35){var _0x2c931c={};var _0x545906={};var _0x1078e3;var _0x5f0db7;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x12315d['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0xbbfd35,null))[_0x225c('0x13')](function(_0x4bbc87){if(_0x4bbc87){_0x1078e3=_0x4bbc87;_0x545906[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0xe0')][_0x225c('0x39')]);_0x545906[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x12315d[_0x225c('0x40')]);_0x545906['filters']=_['intersection'](_0x545906[_0x225c('0x4f')],_0x545906[_0x225c('0x40')]);_0x2c931c['attributes']=_[_0x225c('0x53')](_0x545906[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x12315d[_0x225c('0x40')][_0x225c('0x54')]));_0x2c931c[_0x225c('0x42')]=_0x2c931c[_0x225c('0x42')][_0x225c('0x46')]?_0x2c931c[_0x225c('0x42')]:_0x545906[_0x225c('0x4f')];_0x2c931c[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x12315d[_0x225c('0x40')][_0x225c('0xcb')]);_0x2c931c[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x12315d['query'],_0x545906[_0x225c('0x52')]));if(_0x12315d[_0x225c('0x40')][_0x225c('0x2f')]){_0x2c931c[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x2c931c[_0x225c('0x3f')],{'$or':_['map'](_0x2c931c[_0x225c('0x42')],function(_0x4dcebf){var _0x4b3b5c={};_0x4b3b5c[_0x4dcebf]={'$like':'%'+_0x12315d[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x4b3b5c;})});}_0x2c931c=_[_0x225c('0x56')]({},_0x2c931c,_0x12315d[_0x225c('0x57')]);return _0x1078e3[_0x225c('0xe1')](_0x2c931c);}})[_0x225c('0x13')](function(_0x56351e){if(_0x56351e){_0x5f0db7=_0x56351e[_0x225c('0x46')];if(!_0x12315d[_0x225c('0x40')]['hasOwnProperty'](_0x225c('0xd0'))){_0x2c931c[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x12315d[_0x225c('0x40')][_0x225c('0x22')]);_0x2c931c[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x12315d[_0x225c('0x40')][_0x225c('0x20')]);}return _0x1078e3[_0x225c('0xe1')](_0x2c931c);}})[_0x225c('0x13')](function(_0x34e068){if(_0x34e068){return _0x34e068?{'count':_0x5f0db7,'rows':_0x34e068}:null;}})['then'](respondWithResult(_0xbbfd35,null))[_0x225c('0x1c')](handleError(_0xbbfd35,null));};exports[_0x225c('0xe2')]=function(_0xb70931,_0x161c0b){var _0x28ee16={};var _0x1542f6={};var _0x412b0f;var _0x1c1de0;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0xb70931[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x161c0b,null))[_0x225c('0x13')](function(_0x11beda){if(_0x11beda){_0x412b0f=_0x11beda;_0x1542f6[_0x225c('0x4f')]=_['keys'](db['FaxInteraction'][_0x225c('0x39')]);_0x1542f6['query']=_['keys'](_0xb70931[_0x225c('0x40')]);_0x1542f6[_0x225c('0x52')]=_['intersection'](_0x1542f6['model'],_0x1542f6[_0x225c('0x40')]);_0x28ee16[_0x225c('0x42')]=_[_0x225c('0x53')](_0x1542f6[_0x225c('0x4f')],qs[_0x225c('0x54')](_0xb70931[_0x225c('0x40')]['fields']));_0x28ee16[_0x225c('0x42')]=_0x28ee16[_0x225c('0x42')][_0x225c('0x46')]?_0x28ee16['attributes']:_0x1542f6[_0x225c('0x4f')];_0x28ee16[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0xb70931[_0x225c('0x40')][_0x225c('0xcb')]);_0x28ee16[_0x225c('0x3f')]=qs['filters'](_['pick'](_0xb70931[_0x225c('0x40')],_0x1542f6[_0x225c('0x52')]));if(_0xb70931[_0x225c('0x40')][_0x225c('0x2f')]){_0x28ee16[_0x225c('0x3f')]=_['merge'](_0x28ee16[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x28ee16[_0x225c('0x42')],function(_0xd35a13){var _0x18a3e5={};_0x18a3e5[_0xd35a13]={'$like':'%'+_0xb70931[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x18a3e5;})});}_0x28ee16=_[_0x225c('0x56')]({},_0x28ee16,_0xb70931[_0x225c('0x57')]);return _0x412b0f[_0x225c('0xe2')](_0x28ee16);}})[_0x225c('0x13')](function(_0x304b19){if(_0x304b19){_0x1c1de0=_0x304b19['length'];if(!_0xb70931[_0x225c('0x40')]['hasOwnProperty'](_0x225c('0xd0'))){_0x28ee16['limit']=qs[_0x225c('0x22')](_0xb70931[_0x225c('0x40')][_0x225c('0x22')]);_0x28ee16[_0x225c('0x20')]=qs[_0x225c('0x20')](_0xb70931[_0x225c('0x40')][_0x225c('0x20')]);}return _0x412b0f[_0x225c('0xe2')](_0x28ee16);}})[_0x225c('0x13')](function(_0x168d74){if(_0x168d74){return _0x168d74?{'count':_0x1c1de0,'rows':_0x168d74}:null;}})['then'](respondWithResult(_0x161c0b,null))[_0x225c('0x1c')](handleError(_0x161c0b,null));};exports[_0x225c('0xe3')]=function(_0xb7db43,_0x5375b7){var _0x17202c={};var _0x57d337={};var _0x216bbb;var _0xc91d2e;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0xb7db43['params']['id']}})['then'](handleEntityNotFound(_0x5375b7,null))[_0x225c('0x13')](function(_0xcd8388){if(_0xcd8388){_0x216bbb=_0xcd8388;_0x57d337[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['WhatsappInteraction'][_0x225c('0x39')]);_0x57d337['query']=_[_0x225c('0xc8')](_0xb7db43[_0x225c('0x40')]);_0x57d337[_0x225c('0x52')]=_[_0x225c('0x53')](_0x57d337['model'],_0x57d337[_0x225c('0x40')]);_0x17202c[_0x225c('0x42')]=_[_0x225c('0x53')](_0x57d337[_0x225c('0x4f')],qs['fields'](_0xb7db43[_0x225c('0x40')][_0x225c('0x54')]));_0x17202c[_0x225c('0x42')]=_0x17202c[_0x225c('0x42')][_0x225c('0x46')]?_0x17202c[_0x225c('0x42')]:_0x57d337[_0x225c('0x4f')];_0x17202c[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0xb7db43['query'][_0x225c('0xcb')]);_0x17202c[_0x225c('0x3f')]=qs['filters'](_[_0x225c('0xd2')](_0xb7db43[_0x225c('0x40')],_0x57d337['filters']));if(_0xb7db43['query'][_0x225c('0x2f')]){_0x17202c[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x17202c[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x17202c[_0x225c('0x42')],function(_0x556c77){var _0x20561f={};_0x20561f[_0x556c77]={'$like':'%'+_0xb7db43['query'][_0x225c('0x2f')]+'%'};return _0x20561f;})});}_0x17202c=_[_0x225c('0x56')]({},_0x17202c,_0xb7db43[_0x225c('0x57')]);return _0x216bbb[_0x225c('0xe3')](_0x17202c);}})[_0x225c('0x13')](function(_0x3026e5){if(_0x3026e5){_0xc91d2e=_0x3026e5[_0x225c('0x46')];if(!_0xb7db43[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0x17202c[_0x225c('0x22')]=qs[_0x225c('0x22')](_0xb7db43[_0x225c('0x40')][_0x225c('0x22')]);_0x17202c['offset']=qs[_0x225c('0x20')](_0xb7db43[_0x225c('0x40')][_0x225c('0x20')]);}return _0x216bbb[_0x225c('0xe3')](_0x17202c);}})[_0x225c('0x13')](function(_0xaa2849){if(_0xaa2849){return _0xaa2849?{'count':_0xc91d2e,'rows':_0xaa2849}:null;}})[_0x225c('0x13')](respondWithResult(_0x5375b7,null))[_0x225c('0x1c')](handleError(_0x5375b7,null));};exports[_0x225c('0xe4')]=function(_0x4d42d9,_0x390f08,_0x4a700f){var _0x45600f;var _0x2118bf;var _0x55551e;var _0x45d7d4=!_[_0x225c('0x64')](_0x4d42d9[_0x225c('0x4e')]['id'])?_0x4d42d9[_0x225c('0x4e')]['id']:!_['isNil'](_0x4d42d9[_0x225c('0x2a')]['id'])?_0x4d42d9['user']['id']:null;return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x45d7d4,'role':{'$or':[_0x225c('0x28'),_0x225c('0x2a'),_0x225c('0x2c')]}},'attributes':['id',_0x225c('0x35'),_0x225c('0xe5'),_0x225c('0xe6'),_0x225c('0x27'),_0x225c('0x65'),_0x225c('0x9e')]})[_0x225c('0x13')](function(_0x125ce4){if(_0x125ce4){if(_0x125ce4[_0x225c('0x27')]===_0x225c('0x2c')){_0x45600f=_0x125ce4;if(_0x4d42d9[_0x225c('0x5b')][_0x225c('0xa0')]){_0x55551e=util[_0x225c('0xac')]('LOCAL/%s@from-sip/n',_0x45600f[_0x4d42d9[_0x225c('0x5b')]['interface']]);}else if(_0x4d42d9['body'][_0x225c('0xe7')]){_0x55551e=util[_0x225c('0xac')](_0x225c('0xad'),_0x4d42d9[_0x225c('0x5b')][_0x225c('0xe7')]);}else{_0x55551e=util['format'](_0x225c('0xad'),_0x45600f['name']);}socket['to'](util[_0x225c('0xac')]('user:%s',_0x45600f['name']))[_0x225c('0xa9')]('user:forcelogout',{'user':{'id':_0x45600f['id'],'name':_0x45600f[_0x225c('0x35')]},'ip':_0x4d42d9[_0x225c('0xe8')][_0x225c('0xe9')]||_0x4d42d9[_0x225c('0xea')][_0x225c('0xeb')]||_0x4d42d9[_0x225c('0xec')][_0x225c('0xeb')]||_0x4d42d9[_0x225c('0xea')][_0x225c('0xec')]['remoteAddress']});return db[_0x225c('0xae')][_0x225c('0x33')]({'where':{'membername':_0x45600f[_0x225c('0x35')]},'individualHooks':!![]});}}else{throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0xed'));}})['then'](function(){if(_0x45600f){return _0x45600f[_0x225c('0xee')]({'raw':!![]});}})[_0x225c('0x13')](function(_0x53ee51){if(_0x45600f){var _0x2cbafa=[];if(_0x53ee51){_0x2118bf=_0x53ee51;if(_0x2118bf[_0x225c('0x46')]){for(var _0x444ce7=0x0;_0x444ce7<_0x2118bf['length'];_0x444ce7++){_0x2cbafa['push']({'membername':_0x45600f['name'],'UserId':_0x45600f['id'],'queue_name':_0x2118bf[_0x444ce7]['name'],'VoiceQueueId':_0x2118bf[_0x444ce7]['id'],'interface':_0x55551e,'paused':_0x45600f[_0x225c('0x9e')]||![],'penalty':_0x2118bf[_0x444ce7]['UserVoiceQueue.penalty']||0x0});}return BPromise[_0x225c('0x88')](_0x2cbafa,function(_0xbe0f95){return db[_0x225c('0xae')]['upsert'](_0xbe0f95);});}}}})['then'](function(){if(_0x45600f){return db[_0x225c('0xef')]['findAll']({'where':{'membername':_0x45600f[_0x225c('0x35')],'exitAt':null}});}})['then'](function(_0x4639e0){if(_0x45600f){var _0x1063d5=[];_0x4639e0[_0x225c('0xf0')](function(_0x1aaba4){_0x1063d5[_0x225c('0x43')](_0x1aaba4[_0x225c('0x25')]({'exitAt':moment()['format'](_0x225c('0xf1'))}));});return BPromise['all'](_0x1063d5);}})[_0x225c('0x13')](function(){if(_0x45600f){var _0x30dab7=[];var _0x12575e=[];var _0x48e18b=utils[_0x225c('0xf2')]();var _0x3fa1c8={'membername':_0x45600f[_0x225c('0x35')],'interface':_0x55551e,'enterAt':moment()['format'](_0x225c('0xf1')),'role':_0x45600f[_0x225c('0x27')],'internal':_0x45600f[_0x225c('0x65')]};_0x48e18b[_0x225c('0xf0')](function(_0x414b2c){_0x30dab7[_0x225c('0x43')](_[_0x225c('0x56')]({'channel':_0x414b2c,'type':_0x225c('0xf3'),'data1':_0x4d42d9[_0x225c('0x5b')][_0x225c('0xf4')],'data2':_0x55551e},_0x3fa1c8));if(_0x45600f['loginInPause']){_0x12575e[_0x225c('0x43')](_[_0x225c('0x56')]({'channel':_0x414b2c,'type':_0x225c('0xf5'),'data1':'LOGININPAUSE'},_0x3fa1c8));}});return db[_0x225c('0xef')]['bulkCreate'](_0x30dab7[_0x225c('0xf6')](_0x12575e),{'individualHooks':!![]});}})[_0x225c('0x13')](function(){if(_0x45600f){return _0x45600f[_0x225c('0x25')]({'online':!![],'lastLoginAt':moment()[_0x225c('0xac')](_0x225c('0xf1')),'voicePause':_0x45600f['loginInPause']||![],'mailPause':_0x45600f[_0x225c('0x9e')]||![],'chatPause':_0x45600f[_0x225c('0x9e')]||![],'faxPause':_0x45600f[_0x225c('0x9e')]||![],'smsPause':_0x45600f['loginInPause']||![],'openchannelPause':_0x45600f['loginInPause']||![],'whatsappPause':_0x45600f[_0x225c('0x9e')]||![],'pauseType':_0x45600f[_0x225c('0x9e')]?_0x225c('0xf7'):null,'interface':_0x55551e,'lastPauseAt':moment()[_0x225c('0xac')](_0x225c('0xf1'))});}})[_0x225c('0x13')](function(_0x30c36a){if(_0x4d42d9[_0x225c('0xf8')]){return _0x4a700f();}else{return BPromise[_0x225c('0xf9')](_0x30c36a)[_0x225c('0x13')](respondWithResult(_0x390f08,null));}})[_0x225c('0x1c')](handleError(_0x390f08,null));};exports[_0x225c('0xfa')]=function(_0x200cd0,_0x496557){var _0x17710d;return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x200cd0['params']['id'],'role':_0x225c('0x2c')},'attributes':['id',_0x225c('0x35'),_0x225c('0x27')]})[_0x225c('0x13')](handleEntityNotFound(_0x496557,null))[_0x225c('0x13')](function(_0x33197c){if(_0x33197c){_0x17710d=_0x33197c;return db[_0x225c('0xae')][_0x225c('0x33')]({'where':{'membername':_0x17710d[_0x225c('0x35')]},'individualHooks':!![]});}})[_0x225c('0x13')](function(){return db[_0x225c('0xef')][_0x225c('0x89')]({'where':{'membername':_0x17710d['name'],'exitAt':null}});})['then'](function(_0x52ed03){var _0x1b6043=[];_0x52ed03[_0x225c('0xf0')](function(_0x2490fa){_0x1b6043[_0x225c('0x43')](_0x2490fa[_0x225c('0x25')]({'exitAt':moment()[_0x225c('0xac')](_0x225c('0xf1'))}));});return BPromise[_0x225c('0x4c')](_0x1b6043);})[_0x225c('0x13')](function(){return _0x17710d[_0x225c('0x25')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x225c('0x13')](respondWithResult(_0x496557,null))['catch'](handleError(_0x496557,null));};exports[_0x225c('0xfb')]=function(_0x226803,_0x4a5408){var _0x518928;return db[_0x225c('0xae')][_0x225c('0x25')]({'paused':0x1},{'where':{'UserId':_0x226803[_0x225c('0x4e')]['id']},'individualHooks':!![]})[_0x225c('0x13')](function(){return db[_0x225c('0x38')]['find']({'where':{'id':_0x226803[_0x225c('0x4e')]['id'],'role':_0x225c('0x2c')},'attributes':['id',_0x225c('0x35'),_0x225c('0x27'),'internal',_0x225c('0xa0')]});})[_0x225c('0x13')](handleEntityNotFound(_0x4a5408,null))[_0x225c('0x13')](function(_0x17d949){if(_0x17d949){_0x518928=_0x17d949;return respondWithRpcPromise(_0x225c('0xfc'),'pause',{'id':_0x518928['id'],'name':_0x518928[_0x225c('0x35')],'pause':!![]});}})[_0x225c('0x13')](function(){if(_0x518928){return db[_0x225c('0xef')][_0x225c('0x89')]({'where':{'membername':_0x518928[_0x225c('0x35')],'type':_0x225c('0xf5'),'exitAt':null}});}})[_0x225c('0x13')](function(_0x5ec54f){if(_0x5ec54f[_0x225c('0x46')]){var _0x31113e=moment()['format'](_0x225c('0xf1'));for(var _0x29ffbf=0x0,_0x1bb699=_0x5ec54f[_0x225c('0x46')];_0x29ffbf<_0x1bb699;_0x29ffbf++){_0x5ec54f[_0x29ffbf][_0x225c('0xfd')]({'exitAt':_0x31113e});}}})[_0x225c('0x13')](function(){var _0x20577e=[];var _0x256a9b=utils['getChannels']();_0x256a9b[_0x225c('0xf0')](function(_0x581064){_0x20577e[_0x225c('0x43')]({'channel':_0x581064,'membername':_0x518928['name'],'interface':_['isNil'](_0x518928['interface'])?util['format'](_0x225c('0xad'),_0x518928[_0x225c('0x35')]):_0x518928[_0x225c('0xa0')],'type':_0x225c('0xf5'),'enterAt':moment()[_0x225c('0xac')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x226803[_0x225c('0x5b')][_0x225c('0x3b')]||'DEFAULT\x20PAUSE','role':_0x518928[_0x225c('0x27')],'internal':_0x518928['internal']});});return db[_0x225c('0xef')][_0x225c('0x85')](_0x20577e,{'individualHooks':!![]});})[_0x225c('0x13')](function(){return _0x518928[_0x225c('0x25')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x226803[_0x225c('0x5b')]['type']||'DEFAULT\x20PAUSE','lastPauseAt':moment()['format'](_0x225c('0xf1'))});})[_0x225c('0x13')](respondWithResult(_0x4a5408,null))['catch'](handleError(_0x4a5408,null));};exports[_0x225c('0xfe')]=function(_0x5d9e74,_0x22ab16){var _0x517ab6;return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x5d9e74[_0x225c('0x4e')]['id']},'attributes':['id',_0x225c('0x35'),_0x225c('0x27'),_0x225c('0x9f'),'mailPause',_0x225c('0xff'),_0x225c('0x100'),_0x225c('0x101'),_0x225c('0x102'),_0x225c('0x103'),_0x225c('0x104'),_0x225c('0x105')]})[_0x225c('0x13')](handleEntityNotFound(_0x22ab16,null))[_0x225c('0x13')](function(_0x375192){if(_0x375192){_0x517ab6=_0x375192;if(_0x5d9e74[_0x225c('0x5b')][_0x225c('0x9c')]&&!utils[_0x225c('0xa1')](_0x5d9e74['body'][_0x225c('0x9c')])){throw new db[(_0x225c('0x90'))][(_0x225c('0x92'))](_0x225c('0xb0'));}switch(_0x5d9e74[_0x225c('0x5b')]['channel']){case _0x225c('0xab'):return respondWithRpcPromise(_0x225c('0xfc'),_0x225c('0xfe'),{'id':_0x517ab6['id'],'name':_0x517ab6[_0x225c('0x35')],'pause':![]})[_0x225c('0x13')](function(){return db[_0x225c('0xae')]['update']({'paused':0x0},{'where':{'UserId':_0x517ab6['id']},'individualHooks':!![]});})[_0x225c('0x13')](function(){return db[_0x225c('0xef')][_0x225c('0x5e')]({'where':{'channel':_0x5d9e74[_0x225c('0x5b')]['channel'],'membername':_0x517ab6[_0x225c('0x35')],'type':_0x225c('0xf5'),'exitAt':null}});})[_0x225c('0x13')](function(_0x8f441b){if(_0x8f441b){return _0x8f441b['update']({'exitAt':moment()[_0x225c('0xac')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':'manual'},{'individualHooks':!![]});}return null;})[_0x225c('0x13')](function(){return _0x517ab6[_0x225c('0x25')]({'voicePause':![]});});case _0x225c('0x4a'):case _0x225c('0x59'):case _0x225c('0x49'):case _0x225c('0x47'):case _0x225c('0x4b'):case _0x225c('0x5a'):return db[_0x225c('0xef')][_0x225c('0x5e')]({'where':{'channel':_0x5d9e74['body']['channel'],'membername':_0x517ab6[_0x225c('0x35')],'type':'PAUSE','exitAt':null}})[_0x225c('0x13')](function(_0x7aa1cd){if(_0x7aa1cd){return _0x7aa1cd['update']({'exitAt':moment()['format'](_0x225c('0xf1')),'data2':_0x225c('0x106')},{'individualHooks':!![]});}return null;})[_0x225c('0x13')](function(){var _0x540028={};_['set'](_0x540028,util[_0x225c('0xac')](_0x225c('0x107'),_0x5d9e74[_0x225c('0x5b')][_0x225c('0x9c')],'Pause'),![]);return _0x517ab6[_0x225c('0x25')](_0x540028);});default:return respondWithRpcPromise(_0x225c('0xfc'),_0x225c('0xfe'),{'id':_0x517ab6['id'],'name':_0x517ab6['name'],'pause':![]})[_0x225c('0x13')](function(){return db[_0x225c('0xae')][_0x225c('0x25')]({'paused':0x0},{'where':{'UserId':_0x517ab6['id']}});})[_0x225c('0x13')](function(){return db[_0x225c('0xef')][_0x225c('0x89')]({'where':{'membername':_0x517ab6[_0x225c('0x35')],'type':'PAUSE','exitAt':null}});})[_0x225c('0x13')](function(_0x2138ec){var _0x2c15be=[];_0x2138ec[_0x225c('0xf0')](function(_0x2f2045){_0x2c15be[_0x225c('0x43')](_0x2f2045[_0x225c('0x25')]({'exitAt':moment()[_0x225c('0xac')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':'manual'}));});return BPromise['all'](_0x2c15be);})['then'](function(){return _0x517ab6[_0x225c('0x25')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})['then'](respondWithResult(_0x22ab16,null))[_0x225c('0x1c')](handleError(_0x22ab16,null));};exports[_0x225c('0x108')]=function(_0x5166c8,_0x403943){var _0x5bf18c={};var _0x3fd4e7={};var _0x515ad3;var _0x298bf1;return db[_0x225c('0x38')]['findOne']({'where':{'id':_0x5166c8[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x403943,null))['then'](function(_0x4f412a){if(_0x4f412a){_0x515ad3=_0x4f412a;_0x3fd4e7[_0x225c('0x4f')]=_['keys'](db[_0x225c('0x109')][_0x225c('0x39')]);_0x3fd4e7[_0x225c('0x40')]=_['keys'](_0x5166c8[_0x225c('0x40')]);_0x3fd4e7[_0x225c('0x52')]=_[_0x225c('0x53')](_0x3fd4e7[_0x225c('0x4f')],_0x3fd4e7[_0x225c('0x40')]);_0x5bf18c[_0x225c('0x42')]=_[_0x225c('0x53')](_0x3fd4e7[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x5166c8[_0x225c('0x40')]['fields']));_0x5bf18c[_0x225c('0x42')]=_0x5bf18c['attributes'][_0x225c('0x46')]?_0x5bf18c['attributes']:_0x3fd4e7[_0x225c('0x4f')];_0x5bf18c[_0x225c('0xca')]=qs['sort'](_0x5166c8['query'][_0x225c('0xcb')]);_0x5bf18c['where']=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x5166c8[_0x225c('0x40')],_0x3fd4e7[_0x225c('0x52')]));if(_0x5166c8[_0x225c('0x40')][_0x225c('0x2f')]){_0x5bf18c[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x5bf18c[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x5bf18c[_0x225c('0x42')],function(_0x4ba452){var _0x305cb1={};_0x305cb1[_0x4ba452]={'$like':'%'+_0x5166c8[_0x225c('0x40')]['filter']+'%'};return _0x305cb1;})});}_0x5bf18c=_['merge']({},_0x5bf18c,_0x5166c8[_0x225c('0x57')]);return _0x515ad3[_0x225c('0x108')](_0x5bf18c);}})['then'](function(_0x3bd820){if(_0x3bd820){_0x298bf1=_0x3bd820[_0x225c('0x46')];if(!_0x5166c8[_0x225c('0x40')][_0x225c('0xcc')]('nolimit')){_0x5bf18c[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x5166c8[_0x225c('0x40')][_0x225c('0x22')]);_0x5bf18c['offset']=qs[_0x225c('0x20')](_0x5166c8[_0x225c('0x40')][_0x225c('0x20')]);}return _0x515ad3[_0x225c('0x108')](_0x5bf18c);}})[_0x225c('0x13')](function(_0x28dea8){if(_0x28dea8){return _0x28dea8?{'count':_0x298bf1,'rows':_0x28dea8}:null;}})[_0x225c('0x13')](respondWithResult(_0x403943,null))[_0x225c('0x1c')](handleError(_0x403943,null));};exports[_0x225c('0x10a')]=function(_0x17832b,_0x2dd32c){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x17832b[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x2dd32c,null))[_0x225c('0x13')](function(_0x42e9ce){if(_0x42e9ce){var _0x3a855f=_0x42e9ce['get']({'plain':!![]});return _0x42e9ce[_0x225c('0x10a')](_0x17832b[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x17832b[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{})[_0x225c('0x13')](function(){for(var _0x345b3c=0x0;_0x345b3c<_0x17832b[_0x225c('0x5b')][_0x225c('0x5f')][_0x225c('0x46')];_0x345b3c++){var _0x4dd776=[];db[_0x225c('0x109')]['findOne']({'where':{'id':_0x17832b['body'][_0x225c('0x5f')][_0x345b3c]}})[_0x225c('0x13')](function(_0x2290cd){_0x4dd776[_0x225c('0x43')](_0x2290cd[_0x225c('0xee')]()[_0x225c('0x13')](function(_0x503afd){for(var _0x2c8d8f=0x0;_0x2c8d8f<_0x503afd[_0x225c('0x46')];_0x2c8d8f++){_0x503afd[_0x2c8d8f][_0x225c('0x10b')](_0x225c('0x9c'),'Voice');}return _0x503afd;}));_0x4dd776[_0x225c('0x43')](_0x2290cd['getChatQueues']()['then'](function(_0x2464a7){for(var _0x15a229=0x0;_0x15a229<_0x2464a7[_0x225c('0x46')];_0x15a229++){_0x2464a7[_0x15a229][_0x225c('0x10b')]('channel',_0x225c('0x10c'));}return _0x2464a7;}));_0x4dd776[_0x225c('0x43')](_0x2290cd['getMailQueues']()['then'](function(_0x281557){for(var _0x1a4ba9=0x0;_0x1a4ba9<_0x281557['length'];_0x1a4ba9++){_0x281557[_0x1a4ba9][_0x225c('0x10b')](_0x225c('0x9c'),_0x225c('0x10d'));}return _0x281557;}));_0x4dd776[_0x225c('0x43')](_0x2290cd[_0x225c('0x10e')]()['then'](function(_0x14abb4){for(var _0x7a51d3=0x0;_0x7a51d3<_0x14abb4[_0x225c('0x46')];_0x7a51d3++){_0x14abb4[_0x7a51d3]['setDataValue'](_0x225c('0x9c'),'Sms');}return _0x14abb4;}));_0x4dd776[_0x225c('0x43')](_0x2290cd[_0x225c('0x10f')]()['then'](function(_0x30eff3){for(var _0xe0a45=0x0;_0xe0a45<_0x30eff3[_0x225c('0x46')];_0xe0a45++){_0x30eff3[_0xe0a45][_0x225c('0x10b')]('channel',_0x225c('0x110'));}return _0x30eff3;}));_0x4dd776['push'](_0x2290cd[_0x225c('0x111')]()[_0x225c('0x13')](function(_0x272a49){for(var _0x3f3769=0x0;_0x3f3769<_0x272a49['length'];_0x3f3769++){_0x272a49[_0x3f3769][_0x225c('0x10b')](_0x225c('0x9c'),'Fax');}return _0x272a49;}));_0x4dd776[_0x225c('0x43')](_0x2290cd[_0x225c('0x112')]()[_0x225c('0x13')](function(_0x293825){for(var _0x4f28b7=0x0;_0x4f28b7<_0x293825[_0x225c('0x46')];_0x4f28b7++){_0x293825[_0x4f28b7]['setDataValue'](_0x225c('0x9c'),'Openchannel');}return _0x293825;}));return BPromise[_0x225c('0x4c')](_0x4dd776);})['then'](function(_0x27bc5){var _0x351d76=_[_0x225c('0x113')](_0x27bc5);_0x4dd776=[];return db[_0x225c('0x68')][_0x225c('0x114')](function(_0x8d91f4){for(var _0x4a0fc8=0x0;_0x4a0fc8<_0x351d76[_0x225c('0x46')];_0x4a0fc8++){_0x4dd776[_0x225c('0x43')](_0x351d76[_0x4a0fc8][_0x225c('0x115')](_0x3a855f['id']),{'transaction':_0x8d91f4});}return BPromise[_0x225c('0x4c')](_0x4dd776)[_0x225c('0x13')](function(){if(_0x3a855f[_0x225c('0x9d')]){return BPromise[_0x225c('0x88')](_['filter'](_0x351d76,function(_0x2e7382){return _0x2e7382[_0x225c('0x116')](_0x225c('0x9c'))==='Voice';}),function(_0x145845){return db[_0x225c('0xae')][_0x225c('0x117')]({'membername':_0x3a855f[_0x225c('0x35')],'UserId':_0x3a855f['id'],'queue_name':_0x145845[_0x225c('0x35')],'VoiceQueueId':_0x145845['id'],'interface':_[_0x225c('0x64')](_0x3a855f['interface'])?util[_0x225c('0xac')](_0x225c('0xad'),_0x3a855f[_0x225c('0x35')]):_0x3a855f[_0x225c('0xa0')],'paused':_0x3a855f['voicePause']||![],'penalty':_0x3a855f['penalty']},{'transaction':_0x8d91f4});});}else{return;}})['then'](function(){for(var _0xff89ff=0x0;_0xff89ff<_0x351d76[_0x225c('0x46')];_0xff89ff++){var _0xccfdd8=_0x351d76[_0xff89ff]['getDataValue'](_0x225c('0x9c'));var _0x255dc2=_0xccfdd8+_0x225c('0xa8');socket['emit'](_0x225c('0x2a')+_0xccfdd8+_0x225c('0x118'),{'UserId':_0x3a855f['id'],['queueField']:_0x351d76[_0xff89ff]['id']});}});});});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x2dd32c,null))[_0x225c('0x1c')](handleError(_0x2dd32c,null));};exports[_0x225c('0x119')]=function(_0xdab162,_0x2d222f){return db[_0x225c('0x38')]['findOne']({'where':{'id':_0xdab162['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x2d222f,null))[_0x225c('0x13')](function(_0x1ad3dc){if(_0x1ad3dc){var _0x5a7c5e=_0x1ad3dc[_0x225c('0x26')]({'plain':!![]});var _0x50cac7=_0xdab162[_0x225c('0x40')]['ids'];return _0x1ad3dc[_0x225c('0x119')](_0x50cac7)[_0x225c('0x13')](function(){for(var _0x410691=0x0;_0x410691<_0x50cac7[_0x225c('0x46')];_0x410691++){var _0x20d4da=[];db[_0x225c('0x109')]['findOne']({'where':{'id':_0x50cac7[_0x410691]}})[_0x225c('0x13')](function(_0x3de463){_0x20d4da[_0x225c('0x43')](_0x3de463[_0x225c('0xee')]()[_0x225c('0x13')](function(_0x3a43b0){for(var _0x337b48=0x0;_0x337b48<_0x3a43b0['length'];_0x337b48++){_0x3a43b0[_0x337b48]['setDataValue']('channel',_0x225c('0x11a'));}return _0x3a43b0;}));_0x20d4da[_0x225c('0x43')](_0x3de463[_0x225c('0x11b')]()[_0x225c('0x13')](function(_0x3bb4b5){for(var _0x22db21=0x0;_0x22db21<_0x3bb4b5[_0x225c('0x46')];_0x22db21++){_0x3bb4b5[_0x22db21][_0x225c('0x10b')]('channel','Chat');}return _0x3bb4b5;}));_0x20d4da[_0x225c('0x43')](_0x3de463['getMailQueues']()['then'](function(_0x3f4197){for(var _0x5631d6=0x0;_0x5631d6<_0x3f4197[_0x225c('0x46')];_0x5631d6++){_0x3f4197[_0x5631d6][_0x225c('0x10b')](_0x225c('0x9c'),'Mail');}return _0x3f4197;}));_0x20d4da[_0x225c('0x43')](_0x3de463['getSmsQueues']()[_0x225c('0x13')](function(_0x4f6bc9){for(var _0x484cf5=0x0;_0x484cf5<_0x4f6bc9['length'];_0x484cf5++){_0x4f6bc9[_0x484cf5]['setDataValue']('channel','Sms');}return _0x4f6bc9;}));_0x20d4da[_0x225c('0x43')](_0x3de463[_0x225c('0x10f')]()[_0x225c('0x13')](function(_0x3474ca){for(var _0x2cedb6=0x0;_0x2cedb6<_0x3474ca[_0x225c('0x46')];_0x2cedb6++){_0x3474ca[_0x2cedb6][_0x225c('0x10b')](_0x225c('0x9c'),_0x225c('0x110'));}return _0x3474ca;}));_0x20d4da[_0x225c('0x43')](_0x3de463['getFaxQueues']()[_0x225c('0x13')](function(_0x46ba1f){for(var _0x52e795=0x0;_0x52e795<_0x46ba1f[_0x225c('0x46')];_0x52e795++){_0x46ba1f[_0x52e795][_0x225c('0x10b')](_0x225c('0x9c'),_0x225c('0x11c'));}return _0x46ba1f;}));_0x20d4da[_0x225c('0x43')](_0x3de463[_0x225c('0x112')]()[_0x225c('0x13')](function(_0x46479e){for(var _0x46ae18=0x0;_0x46ae18<_0x46479e['length'];_0x46ae18++){_0x46479e[_0x46ae18][_0x225c('0x10b')](_0x225c('0x9c'),_0x225c('0x11d'));}return _0x46479e;}));return BPromise['all'](_0x20d4da);})[_0x225c('0x13')](function(_0x276c6c){var _0xba4801=_[_0x225c('0x113')](_0x276c6c);_0x20d4da=[];return db[_0x225c('0x68')][_0x225c('0x114')](function(_0x46cefd){for(var _0x461496=0x0;_0x461496<_0xba4801[_0x225c('0x46')];_0x461496++){_0x20d4da[_0x225c('0x43')](_0xba4801[_0x461496]['removeAgent'](_0x5a7c5e['id']),{'transaction':_0x46cefd});}return BPromise['all'](_0x20d4da)[_0x225c('0x13')](function(){if(_0x5a7c5e['online']){return BPromise[_0x225c('0x88')](_['filter'](_0xba4801,function(_0x547ded){return _0x547ded[_0x225c('0x116')]('channel')===_0x225c('0x11a');}),function(_0x1bea91){return db[_0x225c('0xae')][_0x225c('0x33')]({'where':{'VoiceQueueId':_0x1bea91['id'],'UserId':_0x5a7c5e['id']},'transaction':_0x46cefd});});}else{return;}})['then'](function(){for(var _0x9fe5b3=0x0;_0x9fe5b3<_0xba4801[_0x225c('0x46')];_0x9fe5b3++){var _0x330165=_0xba4801[_0x9fe5b3][_0x225c('0x116')](_0x225c('0x9c'));var _0x33a41a=_0x330165+_0x225c('0xa8');socket[_0x225c('0xa9')]('user'+_0x330165+_0x225c('0xb1'),{'UserId':_0x5a7c5e['id'],['queueField']:_0xba4801[_0x9fe5b3]['id']});}});});});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x2d222f,null))[_0x225c('0x1c')](handleError(_0x2d222f,null));};exports[_0x225c('0x11e')]=function(_0x1405f7,_0x3c4b33){var _0x100004={};var _0x213364={};var _0x599161;var _0xe4422e;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x1405f7[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3c4b33,null))[_0x225c('0x13')](function(_0x11aab1){if(_0x11aab1){_0x599161=_0x11aab1;_0x213364[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0xcd')][_0x225c('0x39')]);_0x213364[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x1405f7[_0x225c('0x40')]);_0x213364['filters']=_[_0x225c('0x53')](_0x213364[_0x225c('0x4f')],_0x213364['query']);_0x100004['attributes']=_[_0x225c('0x53')](_0x213364[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x1405f7[_0x225c('0x40')]['fields']));_0x100004['attributes']=_0x100004[_0x225c('0x42')][_0x225c('0x46')]?_0x100004['attributes']:_0x213364['model'];_0x100004[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x1405f7[_0x225c('0x40')][_0x225c('0xcb')]);_0x100004[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x1405f7[_0x225c('0x40')],_0x213364[_0x225c('0x52')]));if(_0x1405f7[_0x225c('0x40')][_0x225c('0x2f')]){_0x100004[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x100004[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x100004['attributes'],function(_0x18b796){var _0x5e35f0={};_0x5e35f0[_0x18b796]={'$like':'%'+_0x1405f7[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x5e35f0;})});}_0x100004=_[_0x225c('0x56')]({},_0x100004,_0x1405f7[_0x225c('0x57')]);return _0x599161[_0x225c('0x11e')](_0x100004);}})[_0x225c('0x13')](function(_0x2b0dd0){if(_0x2b0dd0){_0xe4422e=_0x2b0dd0[_0x225c('0x46')];if(!_0x1405f7[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0x100004[_0x225c('0x22')]=qs['limit'](_0x1405f7[_0x225c('0x40')][_0x225c('0x22')]);_0x100004[_0x225c('0x20')]=qs['offset'](_0x1405f7[_0x225c('0x40')][_0x225c('0x20')]);}return _0x599161[_0x225c('0x11e')](_0x100004);}})[_0x225c('0x13')](function(_0x5b3cd3){if(_0x5b3cd3){return _0x5b3cd3?{'count':_0xe4422e,'rows':_0x5b3cd3}:null;}})[_0x225c('0x13')](respondWithResult(_0x3c4b33,null))['catch'](handleError(_0x3c4b33,null));};exports[_0x225c('0x11f')]=function(_0x564c82,_0x4ac7f6){var _0x154288={};var _0x1ca777={};var _0x5cff93;var _0x3328dc;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x564c82['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4ac7f6,null))[_0x225c('0x13')](function(_0x490b0f){if(_0x490b0f){_0x5cff93=_0x490b0f;_0x1ca777[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0x38')][_0x225c('0x39')]);_0x1ca777[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x564c82[_0x225c('0x40')]);_0x1ca777['filters']=_[_0x225c('0x53')](_0x1ca777['model'],_0x1ca777[_0x225c('0x40')]);_0x154288[_0x225c('0x42')]=_[_0x225c('0x53')](_0x1ca777[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x564c82[_0x225c('0x40')][_0x225c('0x54')]));_0x154288[_0x225c('0x42')]=_0x154288[_0x225c('0x42')][_0x225c('0x46')]?_0x154288['attributes']:_0x1ca777[_0x225c('0x4f')];_0x154288['order']=qs[_0x225c('0xcb')](_0x564c82[_0x225c('0x40')][_0x225c('0xcb')]);_0x154288['where']=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x564c82[_0x225c('0x40')],_0x1ca777[_0x225c('0x52')]));if(_0x564c82[_0x225c('0x40')][_0x225c('0x2f')]){_0x154288[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x154288[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x154288[_0x225c('0x42')],function(_0x22ba00){var _0x5e8c8f={};_0x5e8c8f[_0x22ba00]={'$like':'%'+_0x564c82['query']['filter']+'%'};return _0x5e8c8f;})});}_0x154288[_0x225c('0x4f')]=db[_0x225c('0x38')];_0x154288['as']=_0x225c('0x2b');_0x154288=_[_0x225c('0x56')]({},_0x154288,_0x564c82[_0x225c('0x57')]);return _0x5cff93[_0x225c('0xee')]({'include':[_0x154288]});}})[_0x225c('0x13')](function(_0x230f05){if(_0x230f05){var _0x39cca8={},_0x1cc02d=[],_0x5bc43a=0x0;for(var _0x198c89=0x0;_0x198c89<_0x230f05[_0x225c('0x46')];_0x198c89+=0x1){for(var _0x13c913=0x0,_0x41269f;_0x13c913<_0x230f05[_0x198c89][_0x225c('0x2b')][_0x225c('0x46')];_0x13c913+=0x1){_0x41269f=_0x230f05[_0x198c89][_0x225c('0x2b')][_0x13c913][_0x225c('0x26')]({'plain':!![]});_0x39cca8[_0x41269f['id']]=_0x41269f;}}_0x39cca8=_[_0x225c('0x120')](_0x39cca8);for(var _0x1047b6=qs[_0x225c('0x20')](_0x564c82[_0x225c('0x40')]['offset']);_0x1047b6<_0x39cca8['length']&&_0x1cc02d[_0x225c('0x46')]<qs[_0x225c('0x22')](_0x564c82[_0x225c('0x40')][_0x225c('0x22')]);_0x1047b6+=0x1){if(_0x39cca8[_0x1047b6]){_0x1cc02d['push'](_0x39cca8[_0x1047b6]);}}return{'count':_0x39cca8[_0x225c('0x46')],'rows':_0x1cc02d};}})[_0x225c('0x13')](respondWithResult(_0x4ac7f6,null))['catch'](handleError(_0x4ac7f6,null));};exports[_0x225c('0x33')]=function(_0x5c21d1,_0xb9436c){if(_0x5c21d1[_0x225c('0x2a')]['id']==_0x5c21d1[_0x225c('0x4e')]['id']){return _0xb9436c[_0x225c('0x24')](0x1f4)[_0x225c('0x36')]({'message':_0x225c('0x121')});}return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x5c21d1[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0xb9436c,null))[_0x225c('0x13')](removeEntity(_0xb9436c,null))['catch'](handleError(_0xb9436c,null));};exports[_0x225c('0x122')]=function(_0x49cc1d,_0x5adb5f){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x49cc1d[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5adb5f,null))['then'](function(_0x1e6b69){if(_0x1e6b69){return _0x1e6b69['addChatInteractions'](_0x49cc1d[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x49cc1d['body'],[_0x225c('0x5f'),'id'])||{})[_0x225c('0xa7')](function(){for(var _0x556ffd=0x0;_0x556ffd<_0x49cc1d['body'][_0x225c('0x5f')][_0x225c('0x46')];_0x556ffd+=0x1){socket[_0x225c('0xa9')](_0x225c('0x123'),{'ChatInteractionId':Number(_0x49cc1d['body'][_0x225c('0x5f')][_0x556ffd]),'UserId':Number(_0x49cc1d[_0x225c('0x4e')]['id'])});}return _0x49cc1d[_0x225c('0x5b')][_0x225c('0x5f')];});}})[_0x225c('0x13')](respondWithResult(_0x5adb5f,null))[_0x225c('0x1c')](handleError(_0x5adb5f,null));};exports[_0x225c('0x124')]=function(_0x2fe1b0,_0x3220d7){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x2fe1b0['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x3220d7,null))[_0x225c('0x13')](function(_0x4bcf58){if(_0x4bcf58){return _0x4bcf58[_0x225c('0x124')](_0x2fe1b0[_0x225c('0x40')]['ids'])[_0x225c('0x13')](function(){if(_[_0x225c('0x125')](_0x2fe1b0[_0x225c('0x40')][_0x225c('0x5f')])){for(var _0x111249=0x0;_0x111249<_0x2fe1b0['query']['ids'][_0x225c('0x46')];_0x111249+=0x1){socket[_0x225c('0xa9')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x2fe1b0[_0x225c('0x40')][_0x225c('0x5f')][_0x111249]),'UserId':Number(_0x2fe1b0[_0x225c('0x4e')]['id'])});}}else{socket[_0x225c('0xa9')](_0x225c('0x126'),{'ChatInteractionId':Number(_0x2fe1b0[_0x225c('0x40')]['ids']),'UserId':Number(_0x2fe1b0[_0x225c('0x4e')]['id'])});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x3220d7,null))[_0x225c('0x1c')](handleError(_0x3220d7,null));};exports[_0x225c('0x127')]=function(_0x410018,_0x243401){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x410018[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x243401,null))['then'](function(_0x5eca7d){if(_0x5eca7d){return _0x5eca7d[_0x225c('0x127')](_0x410018['body'][_0x225c('0x5f')],_[_0x225c('0x60')](_0x410018[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{})[_0x225c('0xa7')](function(){for(var _0x4f8b7e=0x0;_0x4f8b7e<_0x410018[_0x225c('0x5b')][_0x225c('0x5f')]['length'];_0x4f8b7e+=0x1){socket[_0x225c('0xa9')](_0x225c('0x128'),{'MailInteractionId':Number(_0x410018[_0x225c('0x5b')][_0x225c('0x5f')][_0x4f8b7e]),'UserId':Number(_0x410018[_0x225c('0x4e')]['id'])});}return _0x410018[_0x225c('0x5b')][_0x225c('0x5f')];});}})[_0x225c('0x13')](respondWithResult(_0x243401,null))[_0x225c('0x1c')](handleError(_0x243401,null));};exports[_0x225c('0x129')]=function(_0x5bfa4f,_0x2033a2){return db['User']['find']({'where':{'id':_0x5bfa4f['params']['id']}})['then'](handleEntityNotFound(_0x2033a2,null))[_0x225c('0x13')](function(_0x535a58){if(_0x535a58){return _0x535a58[_0x225c('0x129')](_0x5bfa4f[_0x225c('0x40')]['ids'])['then'](function(){if(_[_0x225c('0x125')](_0x5bfa4f[_0x225c('0x40')][_0x225c('0x5f')])){for(var _0x51debb=0x0;_0x51debb<_0x5bfa4f[_0x225c('0x40')][_0x225c('0x5f')][_0x225c('0x46')];_0x51debb+=0x1){socket['emit'](_0x225c('0x12a'),{'MailInteractionId':Number(_0x5bfa4f[_0x225c('0x40')][_0x225c('0x5f')][_0x51debb]),'UserId':Number(_0x5bfa4f[_0x225c('0x4e')]['id'])});}}else{socket[_0x225c('0xa9')](_0x225c('0x12a'),{'MailInteractionId':Number(_0x5bfa4f[_0x225c('0x40')][_0x225c('0x5f')]),'UserId':Number(_0x5bfa4f['params']['id'])});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x2033a2,null))[_0x225c('0x1c')](handleError(_0x2033a2,null));};exports[_0x225c('0x12b')]=function(_0x318c2e,_0x4bcc1f){return db['User'][_0x225c('0x5e')]({'where':{'id':_0x318c2e['params']['id']}})['then'](handleEntityNotFound(_0x4bcc1f,null))['then'](function(_0x594dd0){if(_0x594dd0){return _0x594dd0[_0x225c('0x12b')](_0x318c2e[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x318c2e[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{})[_0x225c('0xa7')](function(){for(var _0x400bba=0x0;_0x400bba<_0x318c2e[_0x225c('0x5b')][_0x225c('0x5f')][_0x225c('0x46')];_0x400bba+=0x1){socket[_0x225c('0xa9')](_0x225c('0x12c'),{'FaxInteractionId':Number(_0x318c2e[_0x225c('0x5b')][_0x225c('0x5f')][_0x400bba]),'UserId':Number(_0x318c2e[_0x225c('0x4e')]['id'])});}return _0x318c2e[_0x225c('0x5b')][_0x225c('0x5f')];});}})[_0x225c('0x13')](respondWithResult(_0x4bcc1f,null))[_0x225c('0x1c')](handleError(_0x4bcc1f,null));};exports[_0x225c('0x12d')]=function(_0x2acc0b,_0x527caa){return db['User']['find']({'where':{'id':_0x2acc0b[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x527caa,null))[_0x225c('0x13')](function(_0x47e210){if(_0x47e210){return _0x47e210[_0x225c('0x12d')](_0x2acc0b[_0x225c('0x40')]['ids'])[_0x225c('0x13')](function(){if(_[_0x225c('0x125')](_0x2acc0b['query'][_0x225c('0x5f')])){for(var _0x2c3c00=0x0;_0x2c3c00<_0x2acc0b[_0x225c('0x40')][_0x225c('0x5f')][_0x225c('0x46')];_0x2c3c00+=0x1){socket[_0x225c('0xa9')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x2acc0b[_0x225c('0x40')][_0x225c('0x5f')][_0x2c3c00]),'UserId':Number(_0x2acc0b[_0x225c('0x4e')]['id'])});}}else{socket['emit'](_0x225c('0x12e'),{'FaxInteractionId':Number(_0x2acc0b[_0x225c('0x40')][_0x225c('0x5f')]),'UserId':Number(_0x2acc0b[_0x225c('0x4e')]['id'])});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x527caa,null))[_0x225c('0x1c')](handleError(_0x527caa,null));};exports[_0x225c('0x12f')]=function(_0x4c164e,_0xdfda6c){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x4c164e[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0xdfda6c,null))[_0x225c('0x13')](function(_0x168619){if(_0x168619){return _0x168619['addSmsInteractions'](_0x4c164e['body'][_0x225c('0x5f')],_['omit'](_0x4c164e[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{})['spread'](function(){for(var _0x233e14=0x0;_0x233e14<_0x4c164e['body'][_0x225c('0x5f')][_0x225c('0x46')];_0x233e14+=0x1){socket[_0x225c('0xa9')](_0x225c('0x130'),{'SmsInteractionId':Number(_0x4c164e[_0x225c('0x5b')][_0x225c('0x5f')][_0x233e14]),'UserId':Number(_0x4c164e['params']['id'])});}return _0x4c164e[_0x225c('0x5b')]['ids'];});}})['then'](respondWithResult(_0xdfda6c,null))[_0x225c('0x1c')](handleError(_0xdfda6c,null));};exports['removeSmsInteractions']=function(_0x254531,_0x3c63aa){return db[_0x225c('0x38')]['find']({'where':{'id':_0x254531[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x3c63aa,null))[_0x225c('0x13')](function(_0xdb32a){if(_0xdb32a){return _0xdb32a[_0x225c('0x131')](_0x254531[_0x225c('0x40')][_0x225c('0x5f')])[_0x225c('0x13')](function(){if(_[_0x225c('0x125')](_0x254531[_0x225c('0x40')][_0x225c('0x5f')])){for(var _0x4dd4b2=0x0;_0x4dd4b2<_0x254531['query'][_0x225c('0x5f')][_0x225c('0x46')];_0x4dd4b2+=0x1){socket['emit']('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x254531[_0x225c('0x40')][_0x225c('0x5f')][_0x4dd4b2]),'UserId':Number(_0x254531['params']['id'])});}}else{socket[_0x225c('0xa9')](_0x225c('0x132'),{'SmsInteractionId':Number(_0x254531[_0x225c('0x40')]['ids']),'UserId':Number(_0x254531['params']['id'])});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x3c63aa,null))['catch'](handleError(_0x3c63aa,null));};exports['addOpenchannelInteractions']=function(_0x5a1dff,_0x47d46e){return db[_0x225c('0x38')]['find']({'where':{'id':_0x5a1dff['params']['id']}})['then'](handleEntityNotFound(_0x47d46e,null))[_0x225c('0x13')](function(_0x2d917a){if(_0x2d917a){return _0x2d917a[_0x225c('0x133')](_0x5a1dff[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x5a1dff[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{})['spread'](function(){for(var _0x391823=0x0;_0x391823<_0x5a1dff[_0x225c('0x5b')][_0x225c('0x5f')]['length'];_0x391823+=0x1){socket['emit']('user_has_openchannel_interactions:save',{'OpenchannelInteractionId':Number(_0x5a1dff[_0x225c('0x5b')][_0x225c('0x5f')][_0x391823]),'UserId':Number(_0x5a1dff[_0x225c('0x4e')]['id'])});}return _0x5a1dff[_0x225c('0x5b')][_0x225c('0x5f')];});}})['then'](respondWithResult(_0x47d46e,null))[_0x225c('0x1c')](handleError(_0x47d46e,null));};exports[_0x225c('0x134')]=function(_0x180172,_0x48d22e){return db['User'][_0x225c('0x5e')]({'where':{'id':_0x180172[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x48d22e,null))[_0x225c('0x13')](function(_0x5a3159){if(_0x5a3159){return _0x5a3159[_0x225c('0x134')](_0x180172[_0x225c('0x40')][_0x225c('0x5f')])['then'](function(){if(_[_0x225c('0x125')](_0x180172[_0x225c('0x40')][_0x225c('0x5f')])){for(var _0x4370cb=0x0;_0x4370cb<_0x180172[_0x225c('0x40')][_0x225c('0x5f')][_0x225c('0x46')];_0x4370cb+=0x1){socket[_0x225c('0xa9')](_0x225c('0x135'),{'OpenchannelInteractionId':Number(_0x180172['query'][_0x225c('0x5f')][_0x4370cb]),'UserId':Number(_0x180172[_0x225c('0x4e')]['id'])});}}else{socket[_0x225c('0xa9')](_0x225c('0x135'),{'OpenchannelInteractionId':Number(_0x180172[_0x225c('0x40')][_0x225c('0x5f')]),'UserId':Number(_0x180172[_0x225c('0x4e')]['id'])});}});}})[_0x225c('0x13')](respondWithStatusCode(_0x48d22e,null))[_0x225c('0x1c')](handleError(_0x48d22e,null));};exports[_0x225c('0x136')]=function(_0x35969a,_0x109966){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x35969a[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x109966,null))['then'](function(_0x258095){if(_0x258095){return _0x258095[_0x225c('0x136')](_0x35969a[_0x225c('0x5b')]['ids'],_[_0x225c('0x60')](_0x35969a[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{})['spread'](function(){for(var _0x5b0aab=0x0;_0x5b0aab<_0x35969a[_0x225c('0x5b')][_0x225c('0x5f')]['length'];_0x5b0aab+=0x1){socket['emit'](_0x225c('0x137'),{'WhatsappInteractionId':Number(_0x35969a[_0x225c('0x5b')][_0x225c('0x5f')][_0x5b0aab]),'UserId':Number(_0x35969a['params']['id'])});}return _0x35969a['body'][_0x225c('0x5f')];});}})[_0x225c('0x13')](respondWithResult(_0x109966,null))[_0x225c('0x1c')](handleError(_0x109966,null));};exports[_0x225c('0x138')]=function(_0x5e1556,_0x1cc41a){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x5e1556[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x1cc41a,null))['then'](function(_0x4832b1){if(_0x4832b1){return _0x4832b1[_0x225c('0x138')](_0x5e1556[_0x225c('0x40')]['ids']);}})[_0x225c('0x13')](respondWithStatusCode(_0x1cc41a,null))['catch'](handleError(_0x1cc41a,null));};exports[_0x225c('0x139')]=function(_0x13f892,_0x29d01b){var _0x406f90={};var _0x2e5ae1={};var _0x2dc2db;var _0x47b7e4;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x13f892[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x29d01b,null))['then'](function(_0x3b8ea4){if(_0x3b8ea4){_0x2dc2db=_0x3b8ea4;_0x2e5ae1[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['VoicePrefix']['rawAttributes']);_0x2e5ae1[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x13f892[_0x225c('0x40')]);_0x2e5ae1[_0x225c('0x52')]=_[_0x225c('0x53')](_0x2e5ae1[_0x225c('0x4f')],_0x2e5ae1['query']);_0x406f90[_0x225c('0x42')]=_[_0x225c('0x53')](_0x2e5ae1[_0x225c('0x4f')],qs['fields'](_0x13f892[_0x225c('0x40')][_0x225c('0x54')]));_0x406f90['attributes']=_0x406f90[_0x225c('0x42')][_0x225c('0x46')]?_0x406f90[_0x225c('0x42')]:_0x2e5ae1['model'];_0x406f90[_0x225c('0xca')]=qs['sort'](_0x13f892['query'][_0x225c('0xcb')]);_0x406f90['where']=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x13f892[_0x225c('0x40')],_0x2e5ae1[_0x225c('0x52')]));if(_0x13f892['query'][_0x225c('0x2f')]){_0x406f90[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x406f90[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x406f90['attributes'],function(_0x2be706){var _0x1ae5af={};_0x1ae5af[_0x2be706]={'$like':'%'+_0x13f892[_0x225c('0x40')]['filter']+'%'};return _0x1ae5af;})});}_0x406f90=_[_0x225c('0x56')]({},_0x406f90,_0x13f892['options']);return _0x2dc2db[_0x225c('0x139')](_0x406f90);}})['then'](function(_0x554126){if(_0x554126){_0x47b7e4=_0x554126[_0x225c('0x46')];if(!_0x13f892[_0x225c('0x40')]['hasOwnProperty'](_0x225c('0xd0'))){_0x406f90[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x13f892[_0x225c('0x40')][_0x225c('0x22')]);_0x406f90['offset']=qs['offset'](_0x13f892[_0x225c('0x40')][_0x225c('0x20')]);}return _0x2dc2db[_0x225c('0x139')](_0x406f90);}})['then'](function(_0x5a6d13){if(_0x5a6d13){return _0x5a6d13?{'count':_0x47b7e4,'rows':_0x5a6d13}:null;}})[_0x225c('0x13')](respondWithResult(_0x29d01b,null))['catch'](handleError(_0x29d01b,null));};exports[_0x225c('0x13a')]=function(_0xb1a24e,_0xf18fe4){var _0x396cae={};var _0x3277e0={};var _0x198057;var _0x5ed17c;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0xb1a24e[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0xf18fe4,null))[_0x225c('0x13')](function(_0x117504){if(_0x117504){_0x198057=_0x117504;_0x3277e0[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['FaxAccount']['rawAttributes']);_0x3277e0['query']=_['keys'](_0xb1a24e['query']);_0x3277e0[_0x225c('0x52')]=_[_0x225c('0x53')](_0x3277e0[_0x225c('0x4f')],_0x3277e0[_0x225c('0x40')]);_0x396cae[_0x225c('0x42')]=_[_0x225c('0x53')](_0x3277e0[_0x225c('0x4f')],qs[_0x225c('0x54')](_0xb1a24e[_0x225c('0x40')]['fields']));_0x396cae[_0x225c('0x42')]=_0x396cae[_0x225c('0x42')][_0x225c('0x46')]?_0x396cae[_0x225c('0x42')]:_0x3277e0[_0x225c('0x4f')];_0x396cae[_0x225c('0xca')]=qs['sort'](_0xb1a24e[_0x225c('0x40')][_0x225c('0xcb')]);_0x396cae['where']=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0xb1a24e[_0x225c('0x40')],_0x3277e0[_0x225c('0x52')]));if(_0xb1a24e[_0x225c('0x40')][_0x225c('0x2f')]){_0x396cae['where']=_['merge'](_0x396cae[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x396cae[_0x225c('0x42')],function(_0x46ac69){var _0x33109f={};_0x33109f[_0x46ac69]={'$like':'%'+_0xb1a24e[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x33109f;})});}_0x396cae=_[_0x225c('0x56')]({},_0x396cae,_0xb1a24e[_0x225c('0x57')]);return _0x198057[_0x225c('0x13a')](_0x396cae);}})['then'](function(_0x4e6b1c){if(_0x4e6b1c){_0x5ed17c=_0x4e6b1c[_0x225c('0x46')];if(!_0xb1a24e[_0x225c('0x40')]['hasOwnProperty'](_0x225c('0xd0'))){_0x396cae[_0x225c('0x22')]=qs[_0x225c('0x22')](_0xb1a24e['query'][_0x225c('0x22')]);_0x396cae[_0x225c('0x20')]=qs[_0x225c('0x20')](_0xb1a24e[_0x225c('0x40')]['offset']);}return _0x198057[_0x225c('0x13a')](_0x396cae);}})[_0x225c('0x13')](function(_0x3f95b1){if(_0x3f95b1){return _0x3f95b1?{'count':_0x5ed17c,'rows':_0x3f95b1}:null;}})[_0x225c('0x13')](respondWithResult(_0xf18fe4,null))[_0x225c('0x1c')](handleError(_0xf18fe4,null));};exports[_0x225c('0x13b')]=function(_0x2cc578,_0x4c04e5){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x2cc578[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4c04e5,null))[_0x225c('0x13')](function(_0x293e23){if(_0x293e23){return _0x293e23['addFaxAccounts'](_0x2cc578[_0x225c('0x5b')][_0x225c('0x5f')],_['omit'](_0x2cc578[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{});}})[_0x225c('0x13')](respondWithResult(_0x4c04e5,null))[_0x225c('0x1c')](handleError(_0x4c04e5,null));};exports[_0x225c('0x13c')]=function(_0x4bf269,_0x3a3a59){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x4bf269[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x3a3a59,null))[_0x225c('0x13')](function(_0x5aa79f){if(_0x5aa79f){return _0x5aa79f['removeFaxAccounts'](_0x4bf269[_0x225c('0x40')][_0x225c('0x5f')]);}})['then'](respondWithStatusCode(_0x3a3a59,null))['catch'](handleError(_0x3a3a59,null));};exports['getMailAccounts']=function(_0x5dbaae,_0x4ff6e6){var _0x115889={};var _0x24cf91={};var _0x3807f0;var _0x4f183f;return db['User'][_0x225c('0x96')]({'where':{'id':_0x5dbaae[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4ff6e6,null))[_0x225c('0x13')](function(_0x215c77){if(_0x215c77){_0x3807f0=_0x215c77;_0x24cf91[_0x225c('0x4f')]=_[_0x225c('0xc8')](db[_0x225c('0x13d')][_0x225c('0x39')]);_0x24cf91[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x5dbaae[_0x225c('0x40')]);_0x24cf91[_0x225c('0x52')]=_[_0x225c('0x53')](_0x24cf91[_0x225c('0x4f')],_0x24cf91['query']);_0x115889[_0x225c('0x42')]=_[_0x225c('0x53')](_0x24cf91[_0x225c('0x4f')],qs[_0x225c('0x54')](_0x5dbaae[_0x225c('0x40')]['fields']));_0x115889['attributes']=_0x115889['attributes']['length']?_0x115889[_0x225c('0x42')]:_0x24cf91[_0x225c('0x4f')];_0x115889[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x5dbaae[_0x225c('0x40')][_0x225c('0xcb')]);_0x115889[_0x225c('0x3f')]=qs['filters'](_[_0x225c('0xd2')](_0x5dbaae[_0x225c('0x40')],_0x24cf91[_0x225c('0x52')]));if(_0x5dbaae['query'][_0x225c('0x2f')]){_0x115889[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x115889['where'],{'$or':_[_0x225c('0x8a')](_0x115889['attributes'],function(_0x3779c2){var _0x459539={};_0x459539[_0x3779c2]={'$like':'%'+_0x5dbaae[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x459539;})});}_0x115889=_[_0x225c('0x56')]({},_0x115889,_0x5dbaae[_0x225c('0x57')]);return _0x3807f0['getMailAccounts'](_0x115889);}})['then'](function(_0x4a6d79){if(_0x4a6d79){_0x4f183f=_0x4a6d79['length'];if(!_0x5dbaae[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0x115889[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x5dbaae[_0x225c('0x40')][_0x225c('0x22')]);_0x115889['offset']=qs['offset'](_0x5dbaae[_0x225c('0x40')]['offset']);}return _0x3807f0[_0x225c('0x13e')](_0x115889);}})[_0x225c('0x13')](function(_0xd4c680){if(_0xd4c680){return _0xd4c680?{'count':_0x4f183f,'rows':_0xd4c680}:null;}})[_0x225c('0x13')](respondWithResult(_0x4ff6e6,null))['catch'](handleError(_0x4ff6e6,null));};exports[_0x225c('0x13f')]=function(_0x70e83b,_0x4eb627){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x70e83b['params']['id']}})['then'](handleEntityNotFound(_0x4eb627,null))[_0x225c('0x13')](function(_0x617a12){if(_0x617a12){return _0x617a12[_0x225c('0x13f')](_0x70e83b[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x70e83b[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{});}})['then'](respondWithResult(_0x4eb627,null))[_0x225c('0x1c')](handleError(_0x4eb627,null));};exports[_0x225c('0x140')]=function(_0x324717,_0x4b5084){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x324717[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4b5084,null))['then'](function(_0x369cf5){if(_0x369cf5){return _0x369cf5[_0x225c('0x140')](_0x324717[_0x225c('0x40')][_0x225c('0x5f')]);}})['then'](respondWithStatusCode(_0x4b5084,null))['catch'](handleError(_0x4b5084,null));};exports[_0x225c('0x141')]=function(_0x10385f,_0x28e617){var _0x26d56c={};var _0x2fb097={};var _0x107748;var _0x32f236;return db[_0x225c('0x38')]['findOne']({'where':{'id':_0x10385f['params']['id']}})['then'](handleEntityNotFound(_0x28e617,null))['then'](function(_0x5c4954){if(_0x5c4954){_0x107748=_0x5c4954;_0x2fb097[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['OpenchannelAccount'][_0x225c('0x39')]);_0x2fb097[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x10385f[_0x225c('0x40')]);_0x2fb097[_0x225c('0x52')]=_[_0x225c('0x53')](_0x2fb097[_0x225c('0x4f')],_0x2fb097[_0x225c('0x40')]);_0x26d56c[_0x225c('0x42')]=_[_0x225c('0x53')](_0x2fb097[_0x225c('0x4f')],qs['fields'](_0x10385f[_0x225c('0x40')][_0x225c('0x54')]));_0x26d56c[_0x225c('0x42')]=_0x26d56c[_0x225c('0x42')][_0x225c('0x46')]?_0x26d56c[_0x225c('0x42')]:_0x2fb097[_0x225c('0x4f')];_0x26d56c[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x10385f[_0x225c('0x40')][_0x225c('0xcb')]);_0x26d56c['where']=qs['filters'](_['pick'](_0x10385f[_0x225c('0x40')],_0x2fb097[_0x225c('0x52')]));if(_0x10385f[_0x225c('0x40')][_0x225c('0x2f')]){_0x26d56c[_0x225c('0x3f')]=_['merge'](_0x26d56c[_0x225c('0x3f')],{'$or':_['map'](_0x26d56c[_0x225c('0x42')],function(_0x294bf4){var _0x1b00c5={};_0x1b00c5[_0x294bf4]={'$like':'%'+_0x10385f[_0x225c('0x40')]['filter']+'%'};return _0x1b00c5;})});}_0x26d56c=_[_0x225c('0x56')]({},_0x26d56c,_0x10385f[_0x225c('0x57')]);return _0x107748[_0x225c('0x141')](_0x26d56c);}})[_0x225c('0x13')](function(_0x49f822){if(_0x49f822){_0x32f236=_0x49f822['length'];if(!_0x10385f[_0x225c('0x40')][_0x225c('0xcc')]('nolimit')){_0x26d56c[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x10385f[_0x225c('0x40')][_0x225c('0x22')]);_0x26d56c[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x10385f[_0x225c('0x40')][_0x225c('0x20')]);}return _0x107748[_0x225c('0x141')](_0x26d56c);}})['then'](function(_0x390784){if(_0x390784){return _0x390784?{'count':_0x32f236,'rows':_0x390784}:null;}})[_0x225c('0x13')](respondWithResult(_0x28e617,null))[_0x225c('0x1c')](handleError(_0x28e617,null));};exports[_0x225c('0x142')]=function(_0x39e413,_0x21603d){return db['User'][_0x225c('0x5e')]({'where':{'id':_0x39e413['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x21603d,null))['then'](function(_0x3b0317){if(_0x3b0317){return _0x3b0317[_0x225c('0x142')](_0x39e413[_0x225c('0x5b')][_0x225c('0x5f')],_['omit'](_0x39e413[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{});}})['then'](respondWithResult(_0x21603d,null))[_0x225c('0x1c')](handleError(_0x21603d,null));};exports['removeOpenchannelAccounts']=function(_0x4c6c39,_0x27b918){return db['User']['find']({'where':{'id':_0x4c6c39['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x27b918,null))['then'](function(_0x54e7ac){if(_0x54e7ac){return _0x54e7ac[_0x225c('0x143')](_0x4c6c39[_0x225c('0x40')]['ids']);}})[_0x225c('0x13')](respondWithStatusCode(_0x27b918,null))['catch'](handleError(_0x27b918,null));};exports[_0x225c('0x144')]=function(_0xb8ef49,_0x374a1f){var _0x515d2d={};var _0x54b5fc={};var _0x3ebe6d;var _0x2d1611;return db[_0x225c('0x38')]['findOne']({'where':{'id':_0xb8ef49['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x374a1f,null))[_0x225c('0x13')](function(_0x3a06db){if(_0x3a06db){_0x3ebe6d=_0x3a06db;_0x54b5fc[_0x225c('0x4f')]=_[_0x225c('0xc8')](db['SmsAccount'][_0x225c('0x39')]);_0x54b5fc['query']=_[_0x225c('0xc8')](_0xb8ef49[_0x225c('0x40')]);_0x54b5fc[_0x225c('0x52')]=_['intersection'](_0x54b5fc['model'],_0x54b5fc['query']);_0x515d2d[_0x225c('0x42')]=_['intersection'](_0x54b5fc[_0x225c('0x4f')],qs['fields'](_0xb8ef49['query']['fields']));_0x515d2d['attributes']=_0x515d2d['attributes']['length']?_0x515d2d['attributes']:_0x54b5fc[_0x225c('0x4f')];_0x515d2d[_0x225c('0xca')]=qs['sort'](_0xb8ef49[_0x225c('0x40')][_0x225c('0xcb')]);_0x515d2d[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0xb8ef49['query'],_0x54b5fc[_0x225c('0x52')]));if(_0xb8ef49[_0x225c('0x40')]['filter']){_0x515d2d['where']=_[_0x225c('0x56')](_0x515d2d[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x515d2d[_0x225c('0x42')],function(_0x5b2646){var _0xe6e5d9={};_0xe6e5d9[_0x5b2646]={'$like':'%'+_0xb8ef49[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0xe6e5d9;})});}_0x515d2d=_[_0x225c('0x56')]({},_0x515d2d,_0xb8ef49['options']);return _0x3ebe6d[_0x225c('0x144')](_0x515d2d);}})['then'](function(_0x3f3d01){if(_0x3f3d01){_0x2d1611=_0x3f3d01[_0x225c('0x46')];if(!_0xb8ef49['query'][_0x225c('0xcc')]('nolimit')){_0x515d2d['limit']=qs['limit'](_0xb8ef49['query'][_0x225c('0x22')]);_0x515d2d[_0x225c('0x20')]=qs[_0x225c('0x20')](_0xb8ef49[_0x225c('0x40')][_0x225c('0x20')]);}return _0x3ebe6d[_0x225c('0x144')](_0x515d2d);}})[_0x225c('0x13')](function(_0x4fa3a5){if(_0x4fa3a5){return _0x4fa3a5?{'count':_0x2d1611,'rows':_0x4fa3a5}:null;}})[_0x225c('0x13')](respondWithResult(_0x374a1f,null))[_0x225c('0x1c')](handleError(_0x374a1f,null));};exports[_0x225c('0x145')]=function(_0x55eb9f,_0x383a3b){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x55eb9f['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x383a3b,null))['then'](function(_0x4cfbb3){if(_0x4cfbb3){return _0x4cfbb3[_0x225c('0x145')](_0x55eb9f['body'][_0x225c('0x5f')],_[_0x225c('0x60')](_0x55eb9f['body'],[_0x225c('0x5f'),'id'])||{});}})['then'](respondWithResult(_0x383a3b,null))[_0x225c('0x1c')](handleError(_0x383a3b,null));};exports[_0x225c('0x146')]=function(_0x4fb53a,_0x268bf6){return db[_0x225c('0x38')]['find']({'where':{'id':_0x4fb53a[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x268bf6,null))[_0x225c('0x13')](function(_0x355096){if(_0x355096){return _0x355096[_0x225c('0x146')](_0x4fb53a[_0x225c('0x40')]['ids']);}})[_0x225c('0x13')](respondWithStatusCode(_0x268bf6,null))[_0x225c('0x1c')](handleError(_0x268bf6,null));};exports[_0x225c('0x147')]=function(_0x528ca3,_0x193728){var _0xe8c744={};var _0x4d32ac={};var _0x1a7e5b;var _0x1e83bf;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x528ca3[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x193728,null))[_0x225c('0x13')](function(_0xa05813){if(_0xa05813){_0x1a7e5b=_0xa05813;_0x4d32ac['model']=_[_0x225c('0xc8')](db[_0x225c('0x148')][_0x225c('0x39')]);_0x4d32ac[_0x225c('0x40')]=_['keys'](_0x528ca3['query']);_0x4d32ac[_0x225c('0x52')]=_[_0x225c('0x53')](_0x4d32ac[_0x225c('0x4f')],_0x4d32ac[_0x225c('0x40')]);_0xe8c744[_0x225c('0x42')]=_['intersection'](_0x4d32ac['model'],qs[_0x225c('0x54')](_0x528ca3[_0x225c('0x40')][_0x225c('0x54')]));_0xe8c744[_0x225c('0x42')]=_0xe8c744[_0x225c('0x42')]['length']?_0xe8c744[_0x225c('0x42')]:_0x4d32ac['model'];_0xe8c744[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x528ca3[_0x225c('0x40')][_0x225c('0xcb')]);_0xe8c744[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x528ca3[_0x225c('0x40')],_0x4d32ac[_0x225c('0x52')]));if(_0x528ca3[_0x225c('0x40')][_0x225c('0x2f')]){_0xe8c744[_0x225c('0x3f')]=_[_0x225c('0x56')](_0xe8c744['where'],{'$or':_[_0x225c('0x8a')](_0xe8c744[_0x225c('0x42')],function(_0x102599){var _0x213302={};_0x213302[_0x102599]={'$like':'%'+_0x528ca3[_0x225c('0x40')]['filter']+'%'};return _0x213302;})});}_0xe8c744=_[_0x225c('0x56')]({},_0xe8c744,_0x528ca3[_0x225c('0x57')]);return _0x1a7e5b[_0x225c('0x147')](_0xe8c744);}})[_0x225c('0x13')](function(_0x27f9d1){if(_0x27f9d1){_0x1e83bf=_0x27f9d1[_0x225c('0x46')];if(!_0x528ca3[_0x225c('0x40')][_0x225c('0xcc')](_0x225c('0xd0'))){_0xe8c744['limit']=qs['limit'](_0x528ca3[_0x225c('0x40')][_0x225c('0x22')]);_0xe8c744[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x528ca3[_0x225c('0x40')][_0x225c('0x20')]);}return _0x1a7e5b['getChatWebsites'](_0xe8c744);}})[_0x225c('0x13')](function(_0x3c1a01){if(_0x3c1a01){return _0x3c1a01?{'count':_0x1e83bf,'rows':_0x3c1a01}:null;}})['then'](respondWithResult(_0x193728,null))[_0x225c('0x1c')](handleError(_0x193728,null));};exports[_0x225c('0x149')]=function(_0x45301d,_0x511e03){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x45301d[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x511e03,null))[_0x225c('0x13')](function(_0x2570fd){if(_0x2570fd){return _0x2570fd[_0x225c('0x149')](_0x45301d['body'][_0x225c('0x5f')],_[_0x225c('0x60')](_0x45301d[_0x225c('0x5b')],['ids','id'])||{});}})[_0x225c('0x13')](respondWithResult(_0x511e03,null))[_0x225c('0x1c')](handleError(_0x511e03,null));};exports['removeChatWebsites']=function(_0x1298bb,_0xc3544){return db['User'][_0x225c('0x5e')]({'where':{'id':_0x1298bb[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0xc3544,null))[_0x225c('0x13')](function(_0x23ef62){if(_0x23ef62){return _0x23ef62['removeChatWebsites'](_0x1298bb[_0x225c('0x40')]['ids']);}})[_0x225c('0x13')](respondWithStatusCode(_0xc3544,null))[_0x225c('0x1c')](handleError(_0xc3544,null));};exports[_0x225c('0x14a')]=function(_0x24b875,_0x19cbf0){var _0x599bc3={};var _0x1f2f61={};var _0x3e5253;var _0x4b3c5c;return db[_0x225c('0x38')][_0x225c('0x96')]({'where':{'id':_0x24b875[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x19cbf0,null))['then'](function(_0x332e0d){if(_0x332e0d){_0x3e5253=_0x332e0d;_0x1f2f61['model']=_[_0x225c('0xc8')](db[_0x225c('0x14b')][_0x225c('0x39')]);_0x1f2f61[_0x225c('0x40')]=_[_0x225c('0xc8')](_0x24b875[_0x225c('0x40')]);_0x1f2f61['filters']=_[_0x225c('0x53')](_0x1f2f61[_0x225c('0x4f')],_0x1f2f61['query']);_0x599bc3[_0x225c('0x42')]=_[_0x225c('0x53')](_0x1f2f61['model'],qs[_0x225c('0x54')](_0x24b875[_0x225c('0x40')][_0x225c('0x54')]));_0x599bc3['attributes']=_0x599bc3[_0x225c('0x42')][_0x225c('0x46')]?_0x599bc3['attributes']:_0x1f2f61[_0x225c('0x4f')];_0x599bc3[_0x225c('0xca')]=qs[_0x225c('0xcb')](_0x24b875[_0x225c('0x40')][_0x225c('0xcb')]);_0x599bc3[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x24b875[_0x225c('0x40')],_0x1f2f61[_0x225c('0x52')]));if(_0x24b875[_0x225c('0x40')][_0x225c('0x2f')]){_0x599bc3[_0x225c('0x3f')]=_['merge'](_0x599bc3[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x599bc3['attributes'],function(_0x35912c){var _0x1946a5={};_0x1946a5[_0x35912c]={'$like':'%'+_0x24b875['query']['filter']+'%'};return _0x1946a5;})});}_0x599bc3=_[_0x225c('0x56')]({},_0x599bc3,_0x24b875[_0x225c('0x57')]);return _0x3e5253[_0x225c('0x14a')](_0x599bc3);}})[_0x225c('0x13')](function(_0x2ba400){if(_0x2ba400){_0x4b3c5c=_0x2ba400[_0x225c('0x46')];if(!_0x24b875['query'][_0x225c('0xcc')](_0x225c('0xd0'))){_0x599bc3[_0x225c('0x22')]=qs['limit'](_0x24b875[_0x225c('0x40')][_0x225c('0x22')]);_0x599bc3[_0x225c('0x20')]=qs['offset'](_0x24b875[_0x225c('0x40')][_0x225c('0x20')]);}return _0x3e5253['getWhatsappAccounts'](_0x599bc3);}})['then'](function(_0x4d32d0){if(_0x4d32d0){return _0x4d32d0?{'count':_0x4b3c5c,'rows':_0x4d32d0}:null;}})['then'](respondWithResult(_0x19cbf0,null))[_0x225c('0x1c')](handleError(_0x19cbf0,null));};exports[_0x225c('0x14c')]=function(_0x510b7e,_0x4d3bae){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x510b7e[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x4d3bae,null))[_0x225c('0x13')](function(_0x49be8c){if(_0x49be8c){return _0x49be8c['addWhatsappAccounts'](_0x510b7e[_0x225c('0x5b')]['ids'],_[_0x225c('0x60')](_0x510b7e[_0x225c('0x5b')],['ids','id'])||{});}})[_0x225c('0x13')](respondWithResult(_0x4d3bae,null))[_0x225c('0x1c')](handleError(_0x4d3bae,null));};exports[_0x225c('0x14d')]=function(_0x22d1b9,_0x10ceed){return db[_0x225c('0x38')]['find']({'where':{'id':_0x22d1b9['params']['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x10ceed,null))[_0x225c('0x13')](function(_0x4db787){if(_0x4db787){return _0x4db787[_0x225c('0x14d')](_0x22d1b9[_0x225c('0x40')][_0x225c('0x5f')]);}})[_0x225c('0x13')](respondWithStatusCode(_0x10ceed,null))['catch'](handleError(_0x10ceed,null));};exports[_0x225c('0x14e')]=function(_0x1e8772,_0x5b4e5e){var _0x5b9b5b={};var _0x37e936={};var _0x38bff0;var _0x4893b3;return db['User']['findOne']({'where':{'id':_0x1e8772[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5b4e5e,null))['then'](function(_0x128406){if(_0x128406){_0x38bff0=_0x128406;_0x37e936[_0x225c('0x4f')]=_['keys'](db[_0x225c('0x14f')][_0x225c('0x39')]);_0x37e936['query']=_['keys'](_0x1e8772[_0x225c('0x40')]);_0x37e936[_0x225c('0x52')]=_['intersection'](_0x37e936[_0x225c('0x4f')],_0x37e936[_0x225c('0x40')]);_0x5b9b5b[_0x225c('0x42')]=_[_0x225c('0x53')](_0x37e936['model'],qs[_0x225c('0x54')](_0x1e8772[_0x225c('0x40')][_0x225c('0x54')]));_0x5b9b5b[_0x225c('0x42')]=_0x5b9b5b[_0x225c('0x42')][_0x225c('0x46')]?_0x5b9b5b[_0x225c('0x42')]:_0x37e936[_0x225c('0x4f')];_0x5b9b5b['order']=qs[_0x225c('0xcb')](_0x1e8772[_0x225c('0x40')][_0x225c('0xcb')]);_0x5b9b5b[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x1e8772[_0x225c('0x40')],_0x37e936[_0x225c('0x52')]));if(_0x1e8772[_0x225c('0x40')][_0x225c('0x2f')]){_0x5b9b5b[_0x225c('0x3f')]=_['merge'](_0x5b9b5b['where'],{'$or':_[_0x225c('0x8a')](_0x5b9b5b['attributes'],function(_0x2c2b23){var _0x893e39={};_0x893e39[_0x2c2b23]={'$like':'%'+_0x1e8772[_0x225c('0x40')][_0x225c('0x2f')]+'%'};return _0x893e39;})});}_0x5b9b5b=_[_0x225c('0x56')]({},_0x5b9b5b,_0x1e8772[_0x225c('0x57')]);return _0x38bff0[_0x225c('0x14e')](_0x5b9b5b);}})[_0x225c('0x13')](function(_0x236a57){if(_0x236a57){_0x4893b3=_0x236a57['length'];if(!_0x1e8772[_0x225c('0x40')][_0x225c('0xcc')]('nolimit')){_0x5b9b5b[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x1e8772[_0x225c('0x40')][_0x225c('0x22')]);_0x5b9b5b[_0x225c('0x20')]=qs['offset'](_0x1e8772[_0x225c('0x40')][_0x225c('0x20')]);}return _0x38bff0[_0x225c('0x14e')](_0x5b9b5b);}})['then'](function(_0x54e20c){if(_0x54e20c){return _0x54e20c?{'count':_0x4893b3,'rows':_0x54e20c}:null;}})['then'](respondWithResult(_0x5b4e5e,null))['catch'](handleError(_0x5b4e5e,null));};exports[_0x225c('0x150')]=function(_0x590d79,_0x3c0ea2){return db['User']['find']({'where':{'id':_0x590d79['params']['id']}})['then'](handleEntityNotFound(_0x3c0ea2,null))[_0x225c('0x13')](function(_0x460ad6){if(_0x460ad6){return _0x460ad6[_0x225c('0x150')](_0x590d79[_0x225c('0x5b')][_0x225c('0x5f')],_[_0x225c('0x60')](_0x590d79[_0x225c('0x5b')],[_0x225c('0x5f'),'id'])||{});}})[_0x225c('0x13')](respondWithResult(_0x3c0ea2,null))[_0x225c('0x1c')](handleError(_0x3c0ea2,null));};exports[_0x225c('0x151')]=function(_0x4e0071,_0xe2c491){return db[_0x225c('0x38')][_0x225c('0x5e')]({'where':{'id':_0x4e0071[_0x225c('0x4e')]['id']}})['then'](handleEntityNotFound(_0xe2c491,null))[_0x225c('0x13')](function(_0x58d6c6){if(_0x58d6c6){return _0x58d6c6[_0x225c('0x151')](_0x4e0071[_0x225c('0x40')][_0x225c('0x5f')]);}})['then'](respondWithStatusCode(_0xe2c491,null))['catch'](handleError(_0xe2c491,null));};exports[_0x225c('0x152')]=function(_0x3c8aeb,_0x4ce28e){var _0x243829={},_0x2cd6bd={},_0x2552be={'count':0x0,'rows':[]};var _0x140331=db[_0x225c('0x153')]['rawAttributes'];_0x2cd6bd[_0x225c('0x4f')]=_[_0x225c('0xc8')](_0x140331);_0x2cd6bd[_0x225c('0x40')]=_['keys'](_0x3c8aeb['query']);_0x2cd6bd['filters']=_[_0x225c('0x53')](_0x2cd6bd['model'],_0x2cd6bd[_0x225c('0x40')]);_0x2cd6bd[_0x225c('0x52')]=_[_0x225c('0xf6')](_0x2cd6bd[_0x225c('0x52')],[_0x225c('0x154'),_0x225c('0x155'),_0x225c('0x156'),_0x225c('0x157'),_0x225c('0x158'),'$lte','$ne',_0x225c('0x159'),_0x225c('0x15a'),'$between','$notBetween',_0x225c('0x15b'),_0x225c('0x15c'),_0x225c('0x15d'),_0x225c('0x15e'),_0x225c('0x15f'),_0x225c('0x160'),_0x225c('0x15d'),_0x225c('0x161'),_0x225c('0x162'),_0x225c('0x163'),'$any']);_0x243829[_0x225c('0x42')]=_[_0x225c('0x53')](_0x2cd6bd[_0x225c('0x4f')],qs['fields'](_0x3c8aeb[_0x225c('0x40')][_0x225c('0x54')]));_0x243829[_0x225c('0x42')]=_0x243829[_0x225c('0x42')]['length']?_0x243829[_0x225c('0x42')]:_0x2cd6bd[_0x225c('0x4f')];if(!_0x3c8aeb[_0x225c('0x40')]['hasOwnProperty'](_0x225c('0xd0'))){_0x243829[_0x225c('0x22')]=qs[_0x225c('0x22')](_0x3c8aeb[_0x225c('0x40')][_0x225c('0x22')]);_0x243829[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x3c8aeb[_0x225c('0x40')]['offset']);}_0x243829[_0x225c('0xca')]=qs['sort'](_0x3c8aeb['query'][_0x225c('0xcb')]);_0x243829[_0x225c('0x3f')]=qs[_0x225c('0x52')](_[_0x225c('0xd2')](_0x3c8aeb['query'],_0x2cd6bd[_0x225c('0x52')]));if(_0x3c8aeb['query'][_0x225c('0x2f')]){_0x243829[_0x225c('0x3f')]=_[_0x225c('0x56')](_0x243829[_0x225c('0x3f')],{'$or':_[_0x225c('0x8a')](_0x243829[_0x225c('0x42')],function(_0x1c5bdd){var _0x4c46bf={};_0x4c46bf[_0x1c5bdd]={'$like':'%'+_0x3c8aeb[_0x225c('0x40')]['filter']+'%'};return _0x4c46bf;})});}_0x243829[_0x225c('0x3f')]={'$and':[_0x243829[_0x225c('0x3f')],{'$or':[{'UserId':_0x3c8aeb[_0x225c('0x4e')]['id']},{'OwnerId':_0x3c8aeb['params']['id']}]}]};_0x243829=_[_0x225c('0x56')]({},_0x243829,_0x3c8aeb[_0x225c('0x57')]);var _0x3d60bc={'where':_0x243829[_0x225c('0x3f')]};return db[_0x225c('0x153')][_0x225c('0x23')](_0x3d60bc)['then'](function(_0x46e7e0){_0x2552be[_0x225c('0x23')]=_0x46e7e0;if(_0x3c8aeb['query'][_0x225c('0x55')]){_0x243829[_0x225c('0x41')]=[{'attributes':['id',_0x225c('0x164'),_0x225c('0x165'),'phone'],'model':db[_0x225c('0xc9')],'as':'Contact'},{'attributes':['id',_0x225c('0x35'),_0x225c('0x166')],'model':db[_0x225c('0xaa')],'as':_0x225c('0xd3')}];}return db[_0x225c('0x153')][_0x225c('0x89')](_0x243829);})['then'](function(_0x45776b){_0x2552be['rows']=_0x45776b;return _0x2552be;})[_0x225c('0x13')](respondWithFilteredResult(_0x4ce28e,_0x243829))[_0x225c('0x1c')](handleError(_0x4ce28e,null));};exports[_0x225c('0x167')]=function(_0x5623ad,_0x50d10d){if(!_[_0x225c('0x64')](_0x5623ad[_0x225c('0x2a')]['id'])&&(_0x5623ad[_0x225c('0x2a')]['role']=='admin'||_0x5623ad['user']['role']==_0x225c('0x2a'))){return db['User'][_0x225c('0x96')]({'where':{'id':_0x5623ad['params']['id']},'raw':!![]})[_0x225c('0x13')](function(_0x28f4b6){return authService[_0x225c('0x168')](_0x28f4b6);})[_0x225c('0x13')](function(_0x1f5338){if(_0x1f5338){return _0x50d10d[_0x225c('0x24')](0xc8)[_0x225c('0x1f')]({'api_key':_0x1f5338[_0x225c('0x169')]});}else{return _0x50d10d[_0x225c('0x24')](0xcc)[_0x225c('0x1f')]({'message':'No\x20API\x20access\x20key\x20found!'});}})[_0x225c('0x1c')](handleError(_0x50d10d,0x193));}else{return _0x50d10d['status'](0x191)[_0x225c('0x1f')]({'message':_0x225c('0x16a')});}};exports[_0x225c('0x16b')]=function(_0x1dd379,_0x30e145){if(!_[_0x225c('0x64')](_0x1dd379[_0x225c('0x2a')]['id'])&&(_0x1dd379[_0x225c('0x2a')]['role']==_0x225c('0x28')||_0x1dd379[_0x225c('0x2a')][_0x225c('0x27')]=='user')){return db[_0x225c('0x38')]['find']({'where':{'id':_0x1dd379['params']['id']}})['then'](function(_0x2169af){return authService[_0x225c('0x16c')](_0x2169af);})['then'](function(_0x30c754){return db['User']['update']({'apiKeyIat':_0x30c754[_0x225c('0x16d')],'apiKeyNonce':_0x30c754['nonce']},{'where':{'id':_0x1dd379['params']['id']}})[_0x225c('0x13')](function(){return _0x30e145[_0x225c('0x24')](0xc8)[_0x225c('0x1f')]({'api_key':_0x30c754[_0x225c('0x169')]});});})[_0x225c('0x1c')](handleError(_0x30e145,0x193));}else{return _0x30e145[_0x225c('0x24')](0x191)[_0x225c('0x1f')]({'message':_0x225c('0x16a')});}};exports[_0x225c('0x16e')]=function(_0x21e3f4,_0x16e216){if(!_[_0x225c('0x64')](_0x21e3f4['user']['id'])&&(_0x21e3f4[_0x225c('0x2a')]['role']==_0x225c('0x28')||_0x21e3f4[_0x225c('0x2a')]['role']==_0x225c('0x2a'))){return db[_0x225c('0x38')]['find']({'where':{'id':_0x21e3f4[_0x225c('0x4e')]['id']}})[_0x225c('0x13')](handleEntityNotFound(_0x16e216,null))['then'](function(_0x2396c7){if(_0x2396c7&&_0x2396c7[_0x225c('0x16f')]&&_0x2396c7['apiKeyIat'])return _0x2396c7;else throw{'message':'API\x20key\x20not\x20available'};})['then'](function(_0x1bde71){return db['User'][_0x225c('0x25')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x21e3f4[_0x225c('0x4e')]['id']}});})['then'](respondWithStatusCode(_0x16e216,0xc8))['catch'](handleError(_0x16e216,0x193));}else{return _0x16e216[_0x225c('0x24')](0x191)[_0x225c('0x1f')]({'message':_0x225c('0x16a')});}};exports[_0x225c('0x170')]=function(_0x5070a4,_0x2a8657){var _0x13f624=_0x5070a4[_0x225c('0x2a')][_0x225c('0x26')]({'plain':!![]});if(!_0x13f624){return _0x2a8657[_0x225c('0x24')](0x191)[_0x225c('0x36')](_0x225c('0x171'));}else{return _0x2a8657[_0x225c('0x24')](0xc8)['json'](_0x13f624);}};exports[_0x225c('0x172')]=function(_0x5bb053,_0x4681be){var _0x502f1c={'offset':0x0},_0x4b333a={'count':0x0,'rows':[]};Promise['resolve']()[_0x225c('0x13')](function(){if(!_0x5bb053['query'][_0x225c('0x2f')]&&!_0x5bb053[_0x225c('0x40')]['teams']&&!_0x5bb053[_0x225c('0x40')]['queues'])return[];return Promise[_0x225c('0xf9')]()['then'](function(){var _0x3e5673=[];if(!_[_0x225c('0x173')](_0x5bb053[_0x225c('0x40')][_0x225c('0x174')])){_0x3e5673[_0x225c('0x43')](db['Team']['findAll']({'attributes':['id','name'],'where':{'id':_0x5bb053['query'][_0x225c('0x174')]}}));}if(!_[_0x225c('0x173')](_0x5bb053['query'][_0x225c('0x175')])){_0x3e5673[_0x225c('0x43')](db[_0x225c('0xaa')]['findAll']({'attributes':['id',_0x225c('0x35')],'type':_0x225c('0x176'),'where':{'id':_0x5bb053['query'][_0x225c('0x175')]}}));}return Promise['all'](_0x3e5673);})[_0x225c('0x13')](function(_0x44fe06){var _0x25bd63=_['flatten'](_0x44fe06)[_0x225c('0x8a')](function(_0x31517c){return _0x31517c[_0x225c('0x11f')]({'attributes':['id',_0x225c('0x35'),'internal',_0x225c('0x9d')],'raw':!![]});});return Promise[_0x225c('0x4c')](_0x25bd63);})[_0x225c('0x13')](function(_0x2adba3){var _0x3a9424=_[_0x225c('0x113')](_0x2adba3);if(!_0x5bb053[_0x225c('0x40')][_0x225c('0x2f')])return _0x3a9424;if(_[_0x225c('0x173')](_0x3a9424)){return db[_0x225c('0x38')]['findAll']({'attributes':['id',_0x225c('0x35'),_0x225c('0x65'),_0x225c('0x9d')],'where':{'role':_0x225c('0x2c'),'$or':[db[_0x225c('0x68')][_0x225c('0x3f')](db[_0x225c('0x68')]['fn'](_0x225c('0x177'),db[_0x225c('0x68')][_0x225c('0x178')](_0x225c('0x35'))),{'$like':'%'+_0x5bb053['query'][_0x225c('0x2f')][_0x225c('0xa4')]()+'%'}),{'internal':{'$like':'%'+_0x5bb053[_0x225c('0x40')][_0x225c('0x2f')]+'%'}}]},'raw':!![]});}else{return _(_0x3a9424)[_0x225c('0x113')]()[_0x225c('0x2f')](function(_0x41fc44){return _0x41fc44['name'][_0x225c('0xa4')]()[_0x225c('0x32')](_0x5bb053[_0x225c('0x40')][_0x225c('0x2f')][_0x225c('0xa4')]())||_0x41fc44[_0x225c('0x65')]['toString']()['includes'](_0x5bb053[_0x225c('0x40')][_0x225c('0x2f')]);})[_0x225c('0x31')]();}})[_0x225c('0x13')](function(_0x31b84c){var _0x8036f=_0x225c('0x35');var _0x32d6cd=_0x225c('0x179');if(_0x5bb053[_0x225c('0x40')][_0x225c('0xcb')]){var _0x32d6cd=_0x5bb053[_0x225c('0x40')][_0x225c('0xcb')][0x0]==='-'?_0x225c('0x17a'):_0x225c('0x179');var _0x8036f=_0x32d6cd===_0x225c('0x179')?_0x5bb053[_0x225c('0x40')][_0x225c('0xcb')]:_0x5bb053['query']['sort']['substring'](0x1);}return _(_0x31b84c)['uniqBy']('id')[_0x225c('0x17b')]([function(_0x2be0d1){return _0x8036f===_0x225c('0x35')?_0x2be0d1[_0x8036f][_0x225c('0xa4')]():_0x2be0d1[_0x8036f];}],[_0x32d6cd])[_0x225c('0x8a')](function(_0x3e2a5a){return _[_0x225c('0xd2')](_0x3e2a5a,['id',_0x225c('0x35'),_0x225c('0x65'),_0x225c('0x9d')]);})[_0x225c('0x31')]();})[_0x225c('0x13')](function(_0x26e01f){return client['request'](_0x225c('0x2b'),_0x5bb053)[_0x225c('0x13')](function(_0x567406){if(_0x567406[_0x225c('0x19')])throw new Error(_0x225c('0x17c'));var _0x360bfa=_0x567406['result'];var _0x13394e=jayson[_0x225c('0x17d')]['http']({'port':0x232c});return _0x13394e['request'](_0x225c('0x2b'),_0x5bb053)[_0x225c('0x13')](function(_0x3c47eb){if(_0x3c47eb[_0x225c('0x19')])throw new Error(_0x225c('0x17e'));var _0x261b1b=_0x3c47eb[_0x225c('0x1b')];return _['merge']({},_0x261b1b,_0x360bfa);});})[_0x225c('0x13')](function(_0x1fdb0f){return _[_0x225c('0x8a')](_0x26e01f,function(_0x5d1ccf){var _0x35e6fa=_[_0x225c('0x5e')](_0x1fdb0f[_0x225c('0x44')],['id',_0x5d1ccf['id']]);if(!_0x35e6fa||!_0x5d1ccf['online']){_0x5d1ccf['status']=_0x225c('0x17f');}else if(_0x35e6fa['voicePause']){_0x5d1ccf[_0x225c('0x24')]=_0x225c('0xfb');}else{_0x5d1ccf[_0x225c('0x24')]=_[_0x225c('0x32')]([_0x225c('0x180'),_0x225c('0x181'),_0x225c('0x182'),_0x225c('0x183'),null,undefined],_0x35e6fa[_0x225c('0x184')])?_0x225c('0x9d'):_0x225c('0x185');}return _0x5d1ccf;});});});})['then'](function(_0xfd74c2){if(!_0x5bb053['query'][_0x225c('0xcc')](_0x225c('0xd0'))){_0x502f1c['limit']=qs[_0x225c('0x22')](_0x5bb053[_0x225c('0x40')][_0x225c('0x22')]||0xa);_0x502f1c[_0x225c('0x20')]=qs[_0x225c('0x20')](_0x5bb053['query'][_0x225c('0x20')]);}_0x4b333a[_0x225c('0x23')]=_0xfd74c2[_0x225c('0x46')];_0x4b333a[_0x225c('0x44')]=_0x502f1c['limit']?_0xfd74c2[_0x225c('0x186')](_0x502f1c[_0x225c('0x20')],_0x502f1c['offset']+_0x502f1c[_0x225c('0x22')]):_0xfd74c2;return _0x4b333a;})['then'](respondWithFilteredResult(_0x4681be,_0x502f1c))['catch'](handleError(_0x4681be,null));};function get_open_tabs(_0x20a9f0,_0x2d94b8){var _0x3242cb=_0x20a9f0[_0x225c('0x187')](0x0)[_0x225c('0x188')]()+_0x20a9f0['slice'](0x1);var _0x32e98c={'type':db[_0x225c('0x90')][_0x225c('0x69')]['SELECT'],'raw':!![]};return new BPromise(function(_0x584ed5,_0x36d91a){var _0xd7ea9e=squel['select']()[_0x225c('0x189')](_0x225c('0x18a')+_0x3242cb+'InteractionId','id')[_0x225c('0x189')]('ui.createdAt')[_0x225c('0x6b')](_0x225c('0x18b')+_0x20a9f0+'_interactions','ui')['where']('ui.UserId\x20=\x20?',_0x2d94b8['id']);return db['sequelize'][_0x225c('0x40')](_0xd7ea9e[_0x225c('0x18c')](),_0x32e98c)[_0x225c('0x13')](function(_0x23dfec){_0x2d94b8[_0x3242cb+_0x225c('0x18d')]=_0x23dfec;_0x584ed5(_0x23dfec);})[_0x225c('0x1c')](function(_0x5cad2c){_0x36d91a(_0x5cad2c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd819=['hasOwnProperty','hook','exports','events','../../mysqldb','User','setMaxListeners','save','update','remove','emit'];(function(_0x187a8d,_0xc3c8e1){var _0xf29c8b=function(_0x1eeb0e){while(--_0x1eeb0e){_0x187a8d['push'](_0x187a8d['shift']());}};_0xf29c8b(++_0xc3c8e1);}(_0xd819,0x163));var _0x9d81=function(_0x88620a,_0x1bc1d5){_0x88620a=_0x88620a-0x0;var _0x28983a=_0xd819[_0x88620a];return _0x28983a;};'use strict';var EventEmitter=require(_0x9d81('0x0'));var User=require(_0x9d81('0x1'))['db'][_0x9d81('0x2')];var UserEvents=new EventEmitter();UserEvents[_0x9d81('0x3')](0x0);var events={'afterCreate':_0x9d81('0x4'),'afterUpdate':_0x9d81('0x5'),'afterDestroy':_0x9d81('0x6')};function emitEvent(_0x2f4444){return function(_0x5b3935,_0xf9fb50,_0x565c3f){UserEvents[_0x9d81('0x7')](_0x2f4444+':'+_0x5b3935['id'],_0x5b3935);UserEvents['emit'](_0x2f4444,_0x5b3935);_0x565c3f(null);};}for(var e in events){if(events[_0x9d81('0x8')](e)){var event=events[e];User[_0x9d81('0x9')](e,emitEvent(event));}}module[_0x9d81('0xa')]=UserEvents;
\ No newline at end of file
+var _0x4146=['hook','exports','events','../../mysqldb','User','save','update','remove','emit'];(function(_0x1a595a,_0x263824){var _0x33f008=function(_0x1e2f9c){while(--_0x1e2f9c){_0x1a595a['push'](_0x1a595a['shift']());}};_0x33f008(++_0x263824);}(_0x4146,0x1d6));var _0x6414=function(_0x3b2d00,_0x2748ed){_0x3b2d00=_0x3b2d00-0x0;var _0x3e333a=_0x4146[_0x3b2d00];return _0x3e333a;};'use strict';var EventEmitter=require(_0x6414('0x0'));var User=require(_0x6414('0x1'))['db'][_0x6414('0x2')];var UserEvents=new EventEmitter();UserEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6414('0x3'),'afterUpdate':_0x6414('0x4'),'afterDestroy':_0x6414('0x5')};function emitEvent(_0x5c372f){return function(_0x4985b9,_0x5d8620,_0x50f112){UserEvents[_0x6414('0x6')](_0x5c372f+':'+_0x4985b9['id'],_0x4985b9);UserEvents[_0x6414('0x6')](_0x5c372f,_0x4985b9);_0x50f112(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];User[_0x6414('0x7')](e,emitEvent(event));}}module[_0x6414('0x8')]=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7f57=['resolve','find','then','privacyEnabled','updateMd5Password','UserProfile','changed','updatePassword','VoiceExtension','chanspy','bulkCreate','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','base64','salt','pbkdf2Sync','sha1','toString','indexOf','provider','Invalid\x20password','makeSalt','md5secret','bluebird','crypto','md5','google','context','from-sip','system','length','format','%s%s','prefix','merge','CDR(type)=%s','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','push','Authenticate','password','ChanSpy','options','join','StopMixMonitor','wav','WAV','gsm','Set','CDR(type)=internal','extensionMonitor','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','name','Hangup','defaults','VoiceChanSpy','findAll','internal','concat','catch','exports','define','User','users','userProfileId','undefined'];(function(_0x26d6d9,_0x431cb8){var _0x1b4875=function(_0x41111f){while(--_0x41111f){_0x26d6d9['push'](_0x26d6d9['shift']());}};_0x1b4875(++_0x431cb8);}(_0x7f57,0x146));var _0x77f5=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x7f57[_0x4565bf];return _0x5610ba;};'use strict';var BPromise=require(_0x77f5('0x0'));var crypto=require(_0x77f5('0x1'));var util=require('util');var md5=require(_0x77f5('0x2'));var _=require('lodash');var attributes=require('./user.attributes');var authTypes=[_0x77f5('0x3')];var validatePresenceOf=function(_0x211699){return _0x211699&&_0x211699['length'];};var getChanSpyApplications=function(_0x4a9a5a,_0x1567ed,_0x39d3f8){var _0x47a915={'context':_0x4a9a5a[_0x77f5('0x4')]||_0x77f5('0x5'),'type':_0x77f5('0x6'),'isApp':![],'UserId':_0x4a9a5a['id']};var _0x17c980=[];for(var _0x4f0b0e=0x0,_0x37a4b3=0x1;_0x4f0b0e<_0x39d3f8[_0x77f5('0x7')];_0x4f0b0e++,_0x37a4b3=0x1){var _0x6603bb={'exten':util[_0x77f5('0x8')](_0x77f5('0x9'),_0x39d3f8[_0x4f0b0e][_0x77f5('0xa')],_0x1567ed),'ChanSpyId':_0x39d3f8[_0x4f0b0e]['id']};_0x17c980['push'](_[_0x77f5('0xb')]({'app':'Set','appdata':util[_0x77f5('0x8')](_0x77f5('0xc'),'chanspy'),'priority':_0x37a4b3++},_0x47a915,_0x6603bb));if(_0x39d3f8[_0x4f0b0e][_0x77f5('0xd')]){_0x17c980['push'](_[_0x77f5('0xb')]({'app':_0x77f5('0xe'),'appdata':util[_0x77f5('0x8')](_0x77f5('0xf'),_0x39d3f8[_0x4f0b0e][_0x77f5('0x10')]),'priority':_0x37a4b3++},_0x47a915,_0x6603bb));}if(_0x39d3f8[_0x4f0b0e][_0x77f5('0x11')]){_0x17c980[_0x77f5('0x12')](_[_0x77f5('0xb')]({'app':_0x77f5('0x13'),'appdata':_0x39d3f8[_0x4f0b0e][_0x77f5('0x14')],'priority':_0x37a4b3++},_0x47a915,_0x6603bb));}_0x17c980[_0x77f5('0x12')](_[_0x77f5('0xb')]({'app':_0x77f5('0x15'),'appdata':util[_0x77f5('0x8')]('SIP/%s,%s',_0x4a9a5a['name'],_0x39d3f8[_0x4f0b0e][_0x77f5('0x16')]?_0x39d3f8[_0x4f0b0e]['options'][_0x77f5('0x17')](''):''),'priority':_0x37a4b3++},_0x47a915,_0x6603bb));if(_0x39d3f8[_0x4f0b0e]['record']){_0x17c980['push'](_[_0x77f5('0xb')]({'app':_0x77f5('0x18'),'priority':_0x37a4b3++},_0x47a915,_0x6603bb));}}return _0x17c980;};var getUserApplications=function(_0x48f149,_0x54c139){var _0x2bd428=[_0x77f5('0x19'),_0x77f5('0x1a'),_0x77f5('0x1b')];var _0x409eac={'context':_0x48f149['context']||'from-sip','exten':_0x54c139,'type':_0x77f5('0x6'),'isApp':![],'UserId':_0x48f149['id']};var _0x214bd7=[{'app':_0x77f5('0x1c'),'appdata':_0x77f5('0x1d')}];if(_0x48f149[_0x77f5('0x1e')]&&_['includes'](_0x2bd428,_0x48f149[_0x77f5('0x1e')])){_0x214bd7[_0x77f5('0x12')]({'app':_0x77f5('0x1c'),'appdata':_0x77f5('0x1f')});_0x214bd7['push']({'app':'Set','appdata':util[_0x77f5('0x8')]('_XCALLY_MIXMONITOR_FORMAT=%s',_0x48f149[_0x77f5('0x1e')])});_0x214bd7[_0x77f5('0x12')]({'app':_0x77f5('0x20'),'appdata':util[_0x77f5('0x8')](_0x77f5('0x21'),_0x48f149['name'])});}else{_0x214bd7[_0x77f5('0x12')]({'app':'Dial','appdata':util[_0x77f5('0x8')](_0x77f5('0x22'),_0x48f149[_0x77f5('0x23')])});}_0x214bd7['push']({'app':_0x77f5('0x24')});for(var _0x43d8bf=0x0;_0x43d8bf<_0x214bd7[_0x77f5('0x7')];_0x43d8bf++){_0x214bd7[_0x43d8bf]['priority']=_0x43d8bf+0x1;_0x214bd7[_0x43d8bf]=_[_0x77f5('0x25')](_0x214bd7[_0x43d8bf],_0x409eac);}return _0x214bd7;};var getChanSpyPromise=function(_0x1c02ec,_0x246f9e){return new BPromise(function(_0x113d93,_0x555b5d){return _0x1c02ec[_0x77f5('0x26')][_0x77f5('0x27')]()['then'](function(_0x58e1a7){if(_0x58e1a7){var _0x53fbee=getChanSpyApplications(_0x246f9e,_0x246f9e['internal'],_0x58e1a7);if(_0x246f9e[_0x77f5('0x28')]!=_0x246f9e[_0x77f5('0x23')]){_0x53fbee=_0x53fbee[_0x77f5('0x29')](getChanSpyApplications(_0x246f9e,_0x246f9e[_0x77f5('0x23')],_0x58e1a7));}return _0x113d93(_0x53fbee);}return _0x113d93([]);})[_0x77f5('0x2a')](function(_0x1c1303){_0x555b5d(_0x1c1303);});});};module[_0x77f5('0x2b')]=function(_0x3a0624,_0x980dea){var _0x3283e0=_0x3a0624['models'];return _0x3a0624[_0x77f5('0x2c')](_0x77f5('0x2d'),attributes,{'tableName':_0x77f5('0x2e'),'charset':'utf8','collate':'utf8_bin','hooks':{'beforeCreate':function(_0x2f4a22,_0x36f715,_0x3f5b11){var _0x1f223e=typeof _0x2f4a22[_0x77f5('0x2f')]===_0x77f5('0x30')?BPromise[_0x77f5('0x31')](null):_0x3283e0['UserProfile'][_0x77f5('0x32')]({'where':{'id':_0x2f4a22[_0x77f5('0x2f')]}});_0x1f223e[_0x77f5('0x33')](function(_0x2c2f6b){if(_0x2c2f6b){_0x2f4a22[_0x77f5('0x34')]=_0x2c2f6b[_0x77f5('0x34')];}})['then'](function(){_0x2f4a22[_0x77f5('0x35')]();_0x2f4a22['updatePassword'](_0x3f5b11);})[_0x77f5('0x2a')](function(_0x3ee012){_0x3f5b11(_0x3ee012);});},'beforeUpdate':function(_0x2c1ce6,_0x2fbd78,_0x1e4563){Promise[_0x77f5('0x31')]()[_0x77f5('0x33')](function(){if(_0x2c1ce6['changed'](_0x77f5('0x2f'))===![])return;return _0x3283e0[_0x77f5('0x36')][_0x77f5('0x32')]({'where':{'id':_0x2c1ce6[_0x77f5('0x2f')]}})[_0x77f5('0x33')](function(_0x3c56ad){if(_0x3c56ad)_0x2c1ce6[_0x77f5('0x34')]=_0x3c56ad[_0x77f5('0x34')];return;});})['then'](function(){if(_0x2c1ce6[_0x77f5('0x37')](_0x77f5('0x14'))){_0x2c1ce6[_0x77f5('0x35')]();return _0x2c1ce6[_0x77f5('0x38')](_0x1e4563);}_0x1e4563();})['catch'](function(_0x52fc28){_0x1e4563(_0x52fc28);});},'afterCreate':function(_0x30db0c,_0x12c3d2,_0x347633){var _0x5328ef=getUserApplications(_0x30db0c,_0x30db0c[_0x77f5('0x28')]);if(_0x30db0c[_0x77f5('0x28')]!=_0x30db0c[_0x77f5('0x23')]){_0x5328ef=_0x5328ef[_0x77f5('0x29')](getUserApplications(_0x30db0c,_0x30db0c[_0x77f5('0x23')]));}return _0x3283e0[_0x77f5('0x39')]['bulkCreate'](_0x5328ef)['then'](function(){if(_0x30db0c[_0x77f5('0x3a')]){return getChanSpyPromise(_0x3283e0,_0x30db0c);}})[_0x77f5('0x33')](function(_0x388efd){if(_0x388efd&&_0x388efd[_0x77f5('0x7')]){return _0x3283e0[_0x77f5('0x39')][_0x77f5('0x3b')](_0x388efd);}})[_0x77f5('0x33')](function(){_0x347633();})[_0x77f5('0x2a')](function(_0x474cdb){_0x347633(_0x474cdb);});},'afterUpdate':function(_0x51f958,_0x4140d8,_0x5c249f){return BPromise[_0x77f5('0x31')]()['then'](function(){if(_0x51f958[_0x77f5('0x37')]('chanspy')||_0x51f958['changed'](_0x77f5('0x4'))){return _0x3283e0[_0x77f5('0x39')][_0x77f5('0x3c')]({'where':{'UserId':_0x51f958['id'],'type':'system','ChanSpyId':{'$ne':null}}})[_0x77f5('0x33')](function(){if(_0x51f958[_0x77f5('0x3a')]){return getChanSpyPromise(_0x3283e0,_0x51f958)['then'](function(_0x4f121e){if(_0x4f121e&&_0x4f121e[_0x77f5('0x7')]){return _0x3283e0[_0x77f5('0x39')][_0x77f5('0x3b')](_0x4f121e);}});}});}})[_0x77f5('0x33')](function(){if(_0x51f958[_0x77f5('0x37')](_0x77f5('0x1e'))||_0x51f958[_0x77f5('0x37')](_0x77f5('0x4'))){return _0x3283e0[_0x77f5('0x39')]['destroy']({'where':{'UserId':_0x51f958['id'],'type':'system','ChanSpyId':null}})[_0x77f5('0x33')](function(){var _0x4f83f4=getUserApplications(_0x51f958,_0x51f958[_0x77f5('0x28')]);if(_0x51f958['internal']!=_0x51f958[_0x77f5('0x23')]){_0x4f83f4=_0x4f83f4[_0x77f5('0x29')](getUserApplications(_0x51f958,_0x51f958[_0x77f5('0x23')]));}return _0x3283e0[_0x77f5('0x39')][_0x77f5('0x3b')](_0x4f83f4);});}})['then'](function(){_0x5c249f();})[_0x77f5('0x2a')](function(_0x5ef458){_0x5c249f(_0x5ef458);});},'afterDestroy':function(_0x1262aa,_0x3eaec9){return _0x3283e0['VoiceExtension'][_0x77f5('0x3c')]({'where':{'UserId':_0x1262aa['id'],'type':_0x77f5('0x6')}});}},'instanceMethods':{'authenticate':function(_0x241e1a,_0x50e69e){if(!_0x50e69e){return this['password']===this[_0x77f5('0x3d')](_0x241e1a);}var _0x492e98=this;this['encryptPassword'](_0x241e1a,function(_0x317875,_0x4b063f){if(_0x317875){_0x50e69e(_0x317875);}if(_0x492e98[_0x77f5('0x14')]===_0x4b063f){_0x50e69e(null,!![]);}else{_0x50e69e(null,![]);}});},'makeSalt':function(_0x45087f,_0x52a37a){var _0x1a3311=0x10;if(typeof arguments[0x0]===_0x77f5('0x3e')){_0x52a37a=arguments[0x0];_0x45087f=_0x1a3311;}else if(typeof arguments[0x1]===_0x77f5('0x3e')){_0x52a37a=arguments[0x1];}else{throw new Error(_0x77f5('0x3f'));}if(!_0x45087f){_0x45087f=_0x1a3311;}return crypto[_0x77f5('0x40')](_0x45087f,function(_0x202221,_0x4e9939){if(_0x202221){_0x52a37a(_0x202221);}return _0x52a37a(null,_0x4e9939['toString'](_0x77f5('0x41')));});},'encryptPassword':function(_0x10492f,_0x597eb5){if(!_0x10492f||!this[_0x77f5('0x42')]){return _0x597eb5?_0x597eb5(null):null;}var _0x5d3fa6=0x2710;var _0xae4862=0x40;var _0x3f1502=new Buffer(this[_0x77f5('0x42')],_0x77f5('0x41'));if(!_0x597eb5){return crypto[_0x77f5('0x43')](_0x10492f,_0x3f1502,_0x5d3fa6,_0xae4862,_0x77f5('0x44'))[_0x77f5('0x45')](_0x77f5('0x41'));}return crypto['pbkdf2'](_0x10492f,_0x3f1502,_0x5d3fa6,_0xae4862,'sha1',function(_0x2f942f,_0x127ba0){if(_0x2f942f){_0x597eb5(_0x2f942f);}return _0x597eb5(null,_0x127ba0[_0x77f5('0x45')]('base64'));});},'updatePassword':function(_0x531309){if(!this['password']){return _0x531309(null);}if(!validatePresenceOf(this[_0x77f5('0x14')])&&authTypes[_0x77f5('0x46')](this[_0x77f5('0x47')])===-0x1){_0x531309(new Error(_0x77f5('0x48')));}var _0x447a98=this;this[_0x77f5('0x49')](function(_0x4c7377,_0x457b60){if(_0x4c7377){return _0x531309(_0x4c7377);}_0x447a98[_0x77f5('0x42')]=_0x457b60;_0x447a98[_0x77f5('0x3d')](_0x447a98['password'],function(_0x537a48,_0x40e75a){if(_0x537a48){_0x531309(_0x537a48);}_0x447a98['password']=_0x40e75a;_0x531309(null);});});},'updateMd5Password':function(){this[_0x77f5('0x4a')]=md5(this[_0x77f5('0x23')]+':asterisk:'+this[_0x77f5('0x14')]);return this[_0x77f5('0x4a')];}}});};
\ No newline at end of file
+var _0xf417=['then','internal','exports','models','User','users','utf8','userProfileId','undefined','resolve','UserProfile','find','privacyEnabled','updateMd5Password','updatePassword','catch','password','concat','VoiceExtension','bulkCreate','changed','destroy','encryptPassword','function','Missing\x20Callback','randomBytes','salt','sha1','toString','base64','pbkdf2','indexOf','provider','Invalid\x20password','md5secret',':asterisk:','crypto','util','lodash','./user.attributes','google','length','context','format','%s%s','push','merge','Set','CDR(type)=%s','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','SIP/%s,%s','options','join','StopMixMonitor','wav','WAV','gsm','system','CDR(type)=internal','extensionMonitor','_XCALLY_MIXMONITOR_FORMAT=%s','SIP/%s,,tTxXU(xcally-mixmonitor-context)','SIP/%s,,tTxX','name','Hangup','priority','defaults','VoiceChanSpy','findAll'];(function(_0x28e742,_0x1a4d49){var _0x5164de=function(_0x3a571b){while(--_0x3a571b){_0x28e742['push'](_0x28e742['shift']());}};_0x5164de(++_0x1a4d49);}(_0xf417,0x105));var _0x7f41=function(_0x873d48,_0x3cf3c0){_0x873d48=_0x873d48-0x0;var _0x50c8ca=_0xf417[_0x873d48];return _0x50c8ca;};'use strict';var BPromise=require('bluebird');var crypto=require(_0x7f41('0x0'));var util=require(_0x7f41('0x1'));var md5=require('md5');var _=require(_0x7f41('0x2'));var attributes=require(_0x7f41('0x3'));var authTypes=[_0x7f41('0x4')];var validatePresenceOf=function(_0x3094ba){return _0x3094ba&&_0x3094ba[_0x7f41('0x5')];};var getChanSpyApplications=function(_0x17ddbf,_0x8c78f9,_0x283754){var _0x39d551={'context':_0x17ddbf[_0x7f41('0x6')]||'from-sip','type':'system','isApp':![],'UserId':_0x17ddbf['id']};var _0x1fda7d=[];for(var _0x27016b=0x0,_0x311a83=0x1;_0x27016b<_0x283754[_0x7f41('0x5')];_0x27016b++,_0x311a83=0x1){var _0x215802={'exten':util[_0x7f41('0x7')](_0x7f41('0x8'),_0x283754[_0x27016b]['prefix'],_0x8c78f9),'ChanSpyId':_0x283754[_0x27016b]['id']};_0x1fda7d[_0x7f41('0x9')](_[_0x7f41('0xa')]({'app':_0x7f41('0xb'),'appdata':util[_0x7f41('0x7')](_0x7f41('0xc'),_0x7f41('0xd')),'priority':_0x311a83++},_0x39d551,_0x215802));if(_0x283754[_0x27016b][_0x7f41('0xe')]){_0x1fda7d[_0x7f41('0x9')](_['merge']({'app':_0x7f41('0xf'),'appdata':util[_0x7f41('0x7')](_0x7f41('0x10'),_0x283754[_0x27016b][_0x7f41('0x11')]),'priority':_0x311a83++},_0x39d551,_0x215802));}if(_0x283754[_0x27016b][_0x7f41('0x12')]){_0x1fda7d[_0x7f41('0x9')](_[_0x7f41('0xa')]({'app':_0x7f41('0x13'),'appdata':_0x283754[_0x27016b]['password'],'priority':_0x311a83++},_0x39d551,_0x215802));}_0x1fda7d['push'](_[_0x7f41('0xa')]({'app':'ChanSpy','appdata':util[_0x7f41('0x7')](_0x7f41('0x14'),_0x17ddbf['name'],_0x283754[_0x27016b][_0x7f41('0x15')]?_0x283754[_0x27016b][_0x7f41('0x15')][_0x7f41('0x16')](''):''),'priority':_0x311a83++},_0x39d551,_0x215802));if(_0x283754[_0x27016b]['record']){_0x1fda7d['push'](_[_0x7f41('0xa')]({'app':_0x7f41('0x17'),'priority':_0x311a83++},_0x39d551,_0x215802));}}return _0x1fda7d;};var getUserApplications=function(_0xcad0b6,_0x50f391){var _0x380c53=[_0x7f41('0x18'),_0x7f41('0x19'),_0x7f41('0x1a')];var _0x3fad09={'context':_0xcad0b6[_0x7f41('0x6')]||'from-sip','exten':_0x50f391,'type':_0x7f41('0x1b'),'isApp':![],'UserId':_0xcad0b6['id']};var _0x5f364f=[{'app':_0x7f41('0xb'),'appdata':_0x7f41('0x1c')}];if(_0xcad0b6['extensionMonitor']&&_['includes'](_0x380c53,_0xcad0b6[_0x7f41('0x1d')])){_0x5f364f[_0x7f41('0x9')]({'app':_0x7f41('0xb'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'});_0x5f364f[_0x7f41('0x9')]({'app':_0x7f41('0xb'),'appdata':util[_0x7f41('0x7')](_0x7f41('0x1e'),_0xcad0b6['extensionMonitor'])});_0x5f364f['push']({'app':'Dial','appdata':util[_0x7f41('0x7')](_0x7f41('0x1f'),_0xcad0b6['name'])});}else{_0x5f364f['push']({'app':'Dial','appdata':util['format'](_0x7f41('0x20'),_0xcad0b6[_0x7f41('0x21')])});}_0x5f364f[_0x7f41('0x9')]({'app':_0x7f41('0x22')});for(var _0x44da05=0x0;_0x44da05<_0x5f364f[_0x7f41('0x5')];_0x44da05++){_0x5f364f[_0x44da05][_0x7f41('0x23')]=_0x44da05+0x1;_0x5f364f[_0x44da05]=_[_0x7f41('0x24')](_0x5f364f[_0x44da05],_0x3fad09);}return _0x5f364f;};var getChanSpyPromise=function(_0x643425,_0x181597){return new BPromise(function(_0x1c9159,_0x6c8263){return _0x643425[_0x7f41('0x25')][_0x7f41('0x26')]()[_0x7f41('0x27')](function(_0x423718){if(_0x423718){var _0x2986c8=getChanSpyApplications(_0x181597,_0x181597[_0x7f41('0x28')],_0x423718);if(_0x181597[_0x7f41('0x28')]!=_0x181597['name']){_0x2986c8=_0x2986c8['concat'](getChanSpyApplications(_0x181597,_0x181597['name'],_0x423718));}return _0x1c9159(_0x2986c8);}return _0x1c9159([]);})['catch'](function(_0x4f9ad2){_0x6c8263(_0x4f9ad2);});});};module[_0x7f41('0x29')]=function(_0x36d96b,_0x1eba20){var _0x30bc48=_0x36d96b[_0x7f41('0x2a')];return _0x36d96b['define'](_0x7f41('0x2b'),attributes,{'tableName':_0x7f41('0x2c'),'charset':_0x7f41('0x2d'),'collate':'utf8_bin','hooks':{'beforeCreate':function(_0x1a2bd1,_0xe73308,_0x3d9296){var _0x346624=typeof _0x1a2bd1[_0x7f41('0x2e')]===_0x7f41('0x2f')?BPromise[_0x7f41('0x30')](null):_0x30bc48[_0x7f41('0x31')][_0x7f41('0x32')]({'where':{'id':_0x1a2bd1['userProfileId']}});_0x346624['then'](function(_0x3d7c40){if(_0x3d7c40){_0x1a2bd1[_0x7f41('0x33')]=_0x3d7c40[_0x7f41('0x33')];}})[_0x7f41('0x27')](function(){_0x1a2bd1[_0x7f41('0x34')]();_0x1a2bd1[_0x7f41('0x35')](_0x3d9296);})[_0x7f41('0x36')](function(_0x4133ea){_0x3d9296(_0x4133ea);});},'beforeUpdate':function(_0x3ba512,_0x36164d,_0xd7b308){Promise[_0x7f41('0x30')]()[_0x7f41('0x27')](function(){if(_0x3ba512['changed'](_0x7f41('0x2e'))===![])return;return _0x30bc48[_0x7f41('0x31')][_0x7f41('0x32')]({'where':{'id':_0x3ba512[_0x7f41('0x2e')]}})[_0x7f41('0x27')](function(_0x91f0d){if(_0x91f0d)_0x3ba512[_0x7f41('0x33')]=_0x91f0d[_0x7f41('0x33')];return;});})[_0x7f41('0x27')](function(){if(_0x3ba512['changed'](_0x7f41('0x37'))){_0x3ba512[_0x7f41('0x34')]();return _0x3ba512[_0x7f41('0x35')](_0xd7b308);}_0xd7b308();})[_0x7f41('0x36')](function(_0x2d2004){_0xd7b308(_0x2d2004);});},'afterCreate':function(_0x1785cf,_0x5e65f2,_0x3c5333){var _0x4d3b9a=getUserApplications(_0x1785cf,_0x1785cf['internal']);if(_0x1785cf[_0x7f41('0x28')]!=_0x1785cf[_0x7f41('0x21')]){_0x4d3b9a=_0x4d3b9a[_0x7f41('0x38')](getUserApplications(_0x1785cf,_0x1785cf[_0x7f41('0x21')]));}return _0x30bc48[_0x7f41('0x39')][_0x7f41('0x3a')](_0x4d3b9a)[_0x7f41('0x27')](function(){if(_0x1785cf[_0x7f41('0xd')]){return getChanSpyPromise(_0x30bc48,_0x1785cf);}})[_0x7f41('0x27')](function(_0x3d9cad){if(_0x3d9cad&&_0x3d9cad[_0x7f41('0x5')]){return _0x30bc48[_0x7f41('0x39')][_0x7f41('0x3a')](_0x3d9cad);}})['then'](function(){_0x3c5333();})[_0x7f41('0x36')](function(_0x5a9164){_0x3c5333(_0x5a9164);});},'afterUpdate':function(_0x12494a,_0x29a813,_0x16291f){return BPromise[_0x7f41('0x30')]()[_0x7f41('0x27')](function(){if(_0x12494a[_0x7f41('0x3b')]('chanspy')||_0x12494a['changed'](_0x7f41('0x6'))){return _0x30bc48[_0x7f41('0x39')][_0x7f41('0x3c')]({'where':{'UserId':_0x12494a['id'],'type':_0x7f41('0x1b'),'ChanSpyId':{'$ne':null}}})[_0x7f41('0x27')](function(){if(_0x12494a['chanspy']){return getChanSpyPromise(_0x30bc48,_0x12494a)[_0x7f41('0x27')](function(_0x448093){if(_0x448093&&_0x448093[_0x7f41('0x5')]){return _0x30bc48['VoiceExtension'][_0x7f41('0x3a')](_0x448093);}});}});}})[_0x7f41('0x27')](function(){if(_0x12494a[_0x7f41('0x3b')](_0x7f41('0x1d'))||_0x12494a[_0x7f41('0x3b')](_0x7f41('0x6'))){return _0x30bc48['VoiceExtension'][_0x7f41('0x3c')]({'where':{'UserId':_0x12494a['id'],'type':_0x7f41('0x1b'),'ChanSpyId':null}})[_0x7f41('0x27')](function(){var _0x47272d=getUserApplications(_0x12494a,_0x12494a[_0x7f41('0x28')]);if(_0x12494a['internal']!=_0x12494a['name']){_0x47272d=_0x47272d[_0x7f41('0x38')](getUserApplications(_0x12494a,_0x12494a[_0x7f41('0x21')]));}return _0x30bc48[_0x7f41('0x39')][_0x7f41('0x3a')](_0x47272d);});}})['then'](function(){_0x16291f();})[_0x7f41('0x36')](function(_0x3b908f){_0x16291f(_0x3b908f);});},'afterDestroy':function(_0x355bf6,_0x336f21){return _0x30bc48[_0x7f41('0x39')][_0x7f41('0x3c')]({'where':{'UserId':_0x355bf6['id'],'type':_0x7f41('0x1b')}});}},'instanceMethods':{'authenticate':function(_0x2667f6,_0x352427){if(!_0x352427){return this[_0x7f41('0x37')]===this[_0x7f41('0x3d')](_0x2667f6);}var _0x8aa82c=this;this[_0x7f41('0x3d')](_0x2667f6,function(_0x5e39cf,_0x54ce34){if(_0x5e39cf){_0x352427(_0x5e39cf);}if(_0x8aa82c[_0x7f41('0x37')]===_0x54ce34){_0x352427(null,!![]);}else{_0x352427(null,![]);}});},'makeSalt':function(_0x5d1e59,_0x5bbc2d){var _0xf30dae=0x10;if(typeof arguments[0x0]===_0x7f41('0x3e')){_0x5bbc2d=arguments[0x0];_0x5d1e59=_0xf30dae;}else if(typeof arguments[0x1]===_0x7f41('0x3e')){_0x5bbc2d=arguments[0x1];}else{throw new Error(_0x7f41('0x3f'));}if(!_0x5d1e59){_0x5d1e59=_0xf30dae;}return crypto[_0x7f41('0x40')](_0x5d1e59,function(_0x18c827,_0x5a79f4){if(_0x18c827){_0x5bbc2d(_0x18c827);}return _0x5bbc2d(null,_0x5a79f4['toString']('base64'));});},'encryptPassword':function(_0x548e1c,_0xc87b00){if(!_0x548e1c||!this[_0x7f41('0x41')]){return _0xc87b00?_0xc87b00(null):null;}var _0x195159=0x2710;var _0x519f43=0x40;var _0x2db19d=new Buffer(this[_0x7f41('0x41')],'base64');if(!_0xc87b00){return crypto['pbkdf2Sync'](_0x548e1c,_0x2db19d,_0x195159,_0x519f43,_0x7f41('0x42'))[_0x7f41('0x43')](_0x7f41('0x44'));}return crypto[_0x7f41('0x45')](_0x548e1c,_0x2db19d,_0x195159,_0x519f43,_0x7f41('0x42'),function(_0x27b63f,_0x419c53){if(_0x27b63f){_0xc87b00(_0x27b63f);}return _0xc87b00(null,_0x419c53[_0x7f41('0x43')]('base64'));});},'updatePassword':function(_0x457875){if(!this[_0x7f41('0x37')]){return _0x457875(null);}if(!validatePresenceOf(this['password'])&&authTypes[_0x7f41('0x46')](this[_0x7f41('0x47')])===-0x1){_0x457875(new Error(_0x7f41('0x48')));}var _0x2190e7=this;this['makeSalt'](function(_0x396d0e,_0xcc778b){if(_0x396d0e){return _0x457875(_0x396d0e);}_0x2190e7['salt']=_0xcc778b;_0x2190e7[_0x7f41('0x3d')](_0x2190e7['password'],function(_0x2e5c3d,_0x576c18){if(_0x2e5c3d){_0x457875(_0x2e5c3d);}_0x2190e7[_0x7f41('0x37')]=_0x576c18;_0x457875(null);});});},'updateMd5Password':function(){this[_0x7f41('0x49')]=md5(this['name']+_0x7f41('0x4a')+this[_0x7f41('0x37')]);return this['md5secret'];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x898c=['bulkCreate','UnpauseUser','channel','isValidChannel','Unknown\x20channel','voice','PAUSE','mail','chat','sms','whatsapp','system','set','%s%s','Pause','push','all','LogoutUser','findOne','UserVoiceQueueRt','destroy','LoginUser','mobile','agent','../../config/license/util','getLicense','Maximum\x20login\x20has\x20been\x20reached','upsert','loginInPause','UserVoiceQueue.penalty','merge','LOGIN','callysquare','concat','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./user.socket','register','request','then','info','User,\x20%s,\x20%s','debug','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetUser','User','findAll','options','where','attributes','limit','include','map','model','find','raw','ShowUser','name','role','internal','interface','update','MemberReport','length','format','updateAttributes','getChannels','forEach','isNil','SIP/%s','YYYY-MM-DD\x20HH:mm:ss','body','type','DEFAULT\x20PAUSE'];(function(_0x50ba29,_0xb624df){var _0x373800=function(_0x1cb391){while(--_0x1cb391){_0x50ba29['push'](_0x50ba29['shift']());}};_0x373800(++_0xb624df);}(_0x898c,0xdc));var _0xc898=function(_0x5a596f,_0x776d83){_0x5a596f=_0x5a596f-0x0;var _0x23a0e9=_0x898c[_0x5a596f];return _0x23a0e9;};'use strict';var _=require(_0xc898('0x0'));var util=require(_0xc898('0x1'));var moment=require(_0xc898('0x2'));var BPromise=require(_0xc898('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc898('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xc898('0x5'));var logger=require(_0xc898('0x6'))('rpc');var config=require(_0xc898('0x7'));var jayson=require(_0xc898('0x8'));var client=jayson[_0xc898('0x9')][_0xc898('0xa')]({'port':0x232a});config[_0xc898('0xb')]=_[_0xc898('0xc')](config['redis'],{'host':_0xc898('0xd'),'port':0x18eb});var socket=require(_0xc898('0xe'))(new Redis(config['redis']));require(_0xc898('0xf'))[_0xc898('0x10')](socket);function respondWithRpcPromise(_0xcc709f,_0x17c622,_0x1a346e){return new BPromise(function(_0x32c81c,_0x233553){return client[_0xc898('0x11')](_0xcc709f,_0x1a346e)[_0xc898('0x12')](function(_0x2b434d){logger[_0xc898('0x13')](_0xc898('0x14'),_0x17c622,'request\x20sent');logger[_0xc898('0x15')](_0xc898('0x16'),_0x17c622,_0xc898('0x17'),JSON[_0xc898('0x18')](_0x2b434d));if(_0x2b434d[_0xc898('0x19')]){if(_0x2b434d['error'][_0xc898('0x1a')]===0x1f4){logger[_0xc898('0x19')](_0xc898('0x14'),_0x17c622,_0x2b434d['error'][_0xc898('0x1b')]);return _0x233553(_0x2b434d['error']['message']);}logger[_0xc898('0x19')](_0xc898('0x14'),_0x17c622,_0x2b434d['error']['message']);return _0x32c81c(_0x2b434d[_0xc898('0x19')][_0xc898('0x1b')]);}else{logger[_0xc898('0x13')](_0xc898('0x14'),_0x17c622,'request\x20sent');_0x32c81c(_0x2b434d['result'][_0xc898('0x1b')]);}})[_0xc898('0x1c')](function(_0x1a71d0){logger['error'](_0xc898('0x14'),_0x17c622,_0x1a71d0);_0x233553(_0x1a71d0);});});}exports[_0xc898('0x1d')]=function(_0x5a3ecd){var _0x5e3566=this;return new Promise(function(_0xad30e5,_0x428bc4){return db[_0xc898('0x1e')][_0xc898('0x1f')]({'raw':_0x5a3ecd[_0xc898('0x20')]?_0x5a3ecd['options']['raw']===undefined?!![]:![]:!![],'where':_0x5a3ecd[_0xc898('0x20')]?_0x5a3ecd[_0xc898('0x20')][_0xc898('0x21')]||null:null,'attributes':_0x5a3ecd['options']?_0x5a3ecd[_0xc898('0x20')][_0xc898('0x22')]||null:null,'limit':_0x5a3ecd[_0xc898('0x20')]?_0x5a3ecd[_0xc898('0x20')][_0xc898('0x23')]||null:null,'include':_0x5a3ecd[_0xc898('0x20')]?_0x5a3ecd['options'][_0xc898('0x24')]?_[_0xc898('0x25')](_0x5a3ecd[_0xc898('0x20')][_0xc898('0x24')],function(_0x5295fd){return{'model':db[_0x5295fd[_0xc898('0x26')]],'as':_0x5295fd['as'],'attributes':_0x5295fd['attributes'],'include':_0x5295fd['include']?_[_0xc898('0x25')](_0x5295fd[_0xc898('0x24')],function(_0x3f43b0){return{'model':db[_0x3f43b0[_0xc898('0x26')]],'as':_0x3f43b0['as'],'attributes':_0x3f43b0[_0xc898('0x22')],'include':_0x3f43b0[_0xc898('0x24')]?_[_0xc898('0x25')](_0x3f43b0[_0xc898('0x24')],function(_0x8e42cd){return{'model':db[_0x8e42cd[_0xc898('0x26')]],'as':_0x8e42cd['as'],'attributes':_0x8e42cd['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x5276e5){logger['info'](_0xc898('0x1d'),_0x5a3ecd);logger['debug'](_0xc898('0x1d'),_0x5a3ecd,JSON[_0xc898('0x18')](_0x5276e5));_0xad30e5(_0x5276e5);})[_0xc898('0x1c')](function(_0x4d7f9d){logger[_0xc898('0x19')](_0xc898('0x1d'),_0x4d7f9d[_0xc898('0x1b')],_0x5a3ecd);_0x428bc4(_0x5e3566['error'](0x1f4,_0x4d7f9d['message']));});});};exports['ShowUser']=function(_0x38c0c2){var _0x5a5138=this;return new Promise(function(_0x78d519,_0x407759){return db[_0xc898('0x1e')][_0xc898('0x27')]({'raw':_0x38c0c2[_0xc898('0x20')]?_0x38c0c2[_0xc898('0x20')][_0xc898('0x28')]===undefined?!![]:![]:!![],'where':_0x38c0c2[_0xc898('0x20')]?_0x38c0c2[_0xc898('0x20')][_0xc898('0x21')]||null:null,'attributes':_0x38c0c2['options']?_0x38c0c2['options'][_0xc898('0x22')]||null:null,'include':_0x38c0c2[_0xc898('0x20')]?_0x38c0c2[_0xc898('0x20')][_0xc898('0x24')]?_[_0xc898('0x25')](_0x38c0c2['options']['include'],function(_0x86ce26){return{'model':db[_0x86ce26[_0xc898('0x26')]],'as':_0x86ce26['as'],'attributes':_0x86ce26[_0xc898('0x22')],'include':_0x86ce26['include']?_[_0xc898('0x25')](_0x86ce26[_0xc898('0x24')],function(_0x1d4c20){return{'model':db[_0x1d4c20[_0xc898('0x26')]],'as':_0x1d4c20['as'],'attributes':_0x1d4c20['attributes'],'include':_0x1d4c20['include']?_['map'](_0x1d4c20[_0xc898('0x24')],function(_0x1c1c9f){return{'model':db[_0x1c1c9f[_0xc898('0x26')]],'as':_0x1c1c9f['as'],'attributes':_0x1c1c9f['attributes']};}):[]};}):[]};}):[]:[]})[_0xc898('0x12')](function(_0x451a2e){logger[_0xc898('0x13')](_0xc898('0x29'),_0x38c0c2);logger[_0xc898('0x15')](_0xc898('0x29'),_0x38c0c2,JSON[_0xc898('0x18')](_0x451a2e));_0x78d519(_0x451a2e);})[_0xc898('0x1c')](function(_0x57fce0){logger['error']('ShowUser',_0x57fce0[_0xc898('0x1b')],_0x38c0c2);_0x407759(_0x5a5138[_0xc898('0x19')](0x1f4,_0x57fce0[_0xc898('0x1b')]));});});};exports['PauseUser']=function(_0x171c62){var _0x54eb89=this;return new Promise(function(_0x5a3beb,_0x400b33){var _0x91081b;return db['User']['find']({'where':_0x171c62[_0xc898('0x20')][_0xc898('0x21')]||{},'attributes':['id',_0xc898('0x2a'),_0xc898('0x2b'),_0xc898('0x2c'),_0xc898('0x2d')]})[_0xc898('0x12')](function(_0x4ac5b7){if(_0x4ac5b7){_0x91081b=_0x4ac5b7;return db['UserVoiceQueueRt'][_0xc898('0x2e')]({'paused':0x1},{'where':{'UserId':_0x91081b['id']},'individualHooks':!![]});}})['then'](function(){if(_0x91081b){return db[_0xc898('0x2f')][_0xc898('0x1f')]({'where':{'membername':_0x91081b['name'],'type':'PAUSE','exitAt':null}});}})[_0xc898('0x12')](function(_0x559ec5){if(_0x91081b){if(_0x559ec5&&_0x559ec5[_0xc898('0x30')]){var _0x3f59be=moment()[_0xc898('0x31')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x3a504b=0x0,_0x36c90b=_0x559ec5[_0xc898('0x30')];_0x3a504b<_0x36c90b;_0x3a504b++){_0x559ec5[_0x3a504b][_0xc898('0x32')]({'exitAt':_0x3f59be});}}}})[_0xc898('0x12')](function(){if(_0x91081b){var _0x3170cf=[];var _0x26a87b=utils[_0xc898('0x33')]();_0x26a87b[_0xc898('0x34')](function(_0x30acd3){_0x3170cf['push']({'channel':_0x30acd3,'membername':_0x91081b[_0xc898('0x2a')],'interface':_[_0xc898('0x35')](_0x91081b['interface'])?util[_0xc898('0x31')](_0xc898('0x36'),_0x91081b['name']):_0x91081b[_0xc898('0x2d')],'type':'PAUSE','enterAt':moment()['format'](_0xc898('0x37')),'data1':_0x171c62[_0xc898('0x38')][_0xc898('0x39')]||_0xc898('0x3a'),'role':_0x91081b[_0xc898('0x2b')],'internal':_0x91081b['internal'],'uniqueid':_0x171c62['body']['uniqueid']||null});});return db[_0xc898('0x2f')][_0xc898('0x3b')](_0x3170cf,{'individualHooks':!![]});}})[_0xc898('0x12')](function(){if(_0x91081b){return _0x91081b[_0xc898('0x2e')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x171c62[_0xc898('0x38')]['type']||_0xc898('0x3a'),'lastPauseAt':moment()[_0xc898('0x31')]('YYYY-MM-DD\x20HH:mm:ss')});}})[_0xc898('0x12')](function(_0x260550){_0x5a3beb(_0x260550);})[_0xc898('0x1c')](function(_0x36b090){_0x400b33(_0x54eb89[_0xc898('0x19')](0x1f4,_0x36b090['message']));});});};exports[_0xc898('0x3c')]=function(_0x3983fb){var _0x5b5d97=this;return new Promise(function(_0x13c691,_0x967a84){var _0x18a6d1;return db[_0xc898('0x1e')]['findOne']({'where':_0x3983fb[_0xc898('0x20')][_0xc898('0x21')]||{},'attributes':['id','name']})[_0xc898('0x12')](function(_0x459cd9){if(_0x459cd9){_0x18a6d1=_0x459cd9;if(_0x3983fb['body'][_0xc898('0x3d')]&&!utils[_0xc898('0x3e')](_0x3983fb[_0xc898('0x38')]['channel'])){throw new Error(_0xc898('0x3f'));}switch(_0x3983fb[_0xc898('0x38')][_0xc898('0x3d')]){case _0xc898('0x40'):return db['UserVoiceQueueRt'][_0xc898('0x2e')]({'paused':0x0},{'where':{'UserId':_0x18a6d1['id']}})[_0xc898('0x12')](function(){return db[_0xc898('0x2f')][_0xc898('0x27')]({'where':{'channel':_0x3983fb[_0xc898('0x38')][_0xc898('0x3d')],'membername':_0x18a6d1[_0xc898('0x2a')],'type':_0xc898('0x41'),'exitAt':null}});})[_0xc898('0x12')](function(_0x1cc805){if(_0x1cc805){return _0x1cc805[_0xc898('0x2e')]({'exitAt':moment()[_0xc898('0x31')](_0xc898('0x37')),'data2':'system'},{'individualHooks':!![]});}return null;})[_0xc898('0x12')](function(){return _0x18a6d1[_0xc898('0x2e')]({'voicePause':![]});});case _0xc898('0x42'):case _0xc898('0x43'):case'fax':case _0xc898('0x44'):case'openchannel':case _0xc898('0x45'):return db[_0xc898('0x2f')][_0xc898('0x27')]({'where':{'channel':_0x3983fb['body']['channel'],'membername':_0x18a6d1[_0xc898('0x2a')],'type':_0xc898('0x41'),'exitAt':null}})['then'](function(_0x4013d1){return _0x4013d1[_0xc898('0x2e')]({'exitAt':moment()[_0xc898('0x31')](_0xc898('0x37')),'data2':_0xc898('0x46')},{'individualHooks':!![]});})[_0xc898('0x12')](function(){var _0x340f0d={};_[_0xc898('0x47')](_0x340f0d,util['format'](_0xc898('0x48'),_0x3983fb['body'][_0xc898('0x3d')],_0xc898('0x49')),![]);return _0x18a6d1[_0xc898('0x2e')](_0x340f0d);});default:return db['UserVoiceQueueRt'][_0xc898('0x2e')]({'paused':0x0},{'where':{'UserId':_0x18a6d1['id']}})['then'](function(){return db[_0xc898('0x2f')][_0xc898('0x1f')]({'where':{'membername':_0x18a6d1[_0xc898('0x2a')],'type':_0xc898('0x41'),'exitAt':null}});})[_0xc898('0x12')](function(_0x50f9c1){var _0x209cbd=[];_0x50f9c1[_0xc898('0x34')](function(_0x14a229){_0x209cbd[_0xc898('0x4a')](_0x14a229['update']({'exitAt':moment()[_0xc898('0x31')](_0xc898('0x37')),'data2':_0xc898('0x46')}));});return BPromise[_0xc898('0x4b')](_0x209cbd);})[_0xc898('0x12')](function(){return _0x18a6d1['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0xc898('0x12')](function(_0xda014e){_0x13c691(_0xda014e);})[_0xc898('0x1c')](function(_0xe25e54){_0x967a84(_0x5b5d97[_0xc898('0x19')](0x1f4,_0xe25e54[_0xc898('0x1b')]));});});};exports[_0xc898('0x4c')]=function(_0x179cd9){var _0x552b86=this;return new Promise(function(_0x2f03be,_0x216525){var _0x152069;return db[_0xc898('0x1e')][_0xc898('0x4d')]({'where':_0x179cd9['options']['where']||{},'attributes':['id','name']})[_0xc898('0x12')](function(_0x2bacee){if(_0x2bacee){_0x152069=_0x2bacee;return db[_0xc898('0x4e')][_0xc898('0x4f')]({'where':{'membername':_0x152069[_0xc898('0x2a')]},'individualHooks':!![]});}})['then'](function(){if(_0x152069){return db[_0xc898('0x2f')][_0xc898('0x1f')]({'where':{'membername':_0x152069['name'],'exitAt':null}});}})['then'](function(_0x33dd51){if(_0x152069){if(_0x33dd51&&_0x33dd51[_0xc898('0x30')]){var _0x43b4a0=[];_0x33dd51['forEach'](function(_0x189ef5){_0x43b4a0[_0xc898('0x4a')](_0x189ef5[_0xc898('0x2e')]({'exitAt':moment()[_0xc898('0x31')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x43b4a0);}}})[_0xc898('0x12')](function(){if(_0x152069){return _0x152069['update']({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xc898('0x12')](function(_0x1d53be){_0x2f03be(_0x1d53be);})[_0xc898('0x1c')](function(_0x5a0889){_0x216525(_0x552b86[_0xc898('0x19')](0x1f4,_0x5a0889['message']));});});};exports[_0xc898('0x50')]=function(_0x49a9a9){var _0x177176=this;return new Promise(function(_0x428974,_0x5f4f43){var _0x21c180;var _0x1a888d;var _0x845d0f;var _0x3c7aa7;return db[_0xc898('0x1e')][_0xc898('0x4d')]({'where':_0x49a9a9[_0xc898('0x20')][_0xc898('0x21')]||{},'attributes':['id',_0xc898('0x2a'),'role',_0xc898('0x51'),'phone',_0xc898('0x2c'),'loginInPause','interface']})[_0xc898('0x12')](function(_0x30ca31){if(_0x30ca31){_0x21c180=_0x30ca31;_0x3c7aa7=_0x49a9a9['body'][_0xc898('0x2d')]?_0x49a9a9[_0xc898('0x38')]['interface']:util['format'](_0xc898('0x36'),_0x21c180[_0xc898('0x2a')]);return db[_0xc898('0x1e')]['count']({'where':{'role':_0xc898('0x52'),'online':!![],'id':{'$ne':_0x21c180['id']}}});}})[_0xc898('0x12')](function(_0x2ac657){if(_0x2ac657){_0x845d0f=_0x2ac657;return require(_0xc898('0x53'))[_0xc898('0x54')]();}})['then'](function(_0x5b6341){if(_0x5b6341&&_0x5b6341['agents']&&_0x845d0f>=_0x5b6341['agents']){throw new Error(_0xc898('0x55'));}})['then'](function(){if(_0x21c180){return db[_0xc898('0x4e')][_0xc898('0x4f')]({'where':{'membername':_0x21c180['name']},'individualHooks':!![]});}})[_0xc898('0x12')](function(){if(_0x21c180){return _0x21c180['getVoiceQueues']({'raw':!![]});}})[_0xc898('0x12')](function(_0x54c601){if(_0x21c180){if(_0x54c601){var _0x275310=[];_0x1a888d=_0x54c601;if(_0x1a888d[_0xc898('0x30')]){for(var _0x5906e2=0x0;_0x5906e2<_0x1a888d['length'];_0x5906e2++){_0x275310['push'](db[_0xc898('0x4e')][_0xc898('0x56')]({'membername':_0x21c180[_0xc898('0x2a')],'UserId':_0x21c180['id'],'queue_name':_0x1a888d[_0x5906e2][_0xc898('0x2a')],'VoiceQueueId':_0x1a888d[_0x5906e2]['id'],'interface':_0x3c7aa7,'paused':_0x21c180[_0xc898('0x57')]||![],'penalty':_0x1a888d[_0x5906e2][_0xc898('0x58')]||0x0}));}return BPromise['all'](_0x275310);}}}})['then'](function(){if(_0x21c180){return db[_0xc898('0x2f')][_0xc898('0x1f')]({'where':{'membername':_0x21c180[_0xc898('0x2a')],'exitAt':null}});}})[_0xc898('0x12')](function(_0x313920){if(_0x21c180){if(_0x313920&&_0x313920[_0xc898('0x30')]){var _0xd44bee=[];_0x313920[_0xc898('0x34')](function(_0xd0f250){_0xd44bee[_0xc898('0x4a')](_0xd0f250['update']({'exitAt':moment()[_0xc898('0x31')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0xc898('0x4b')](_0xd44bee);}}})['then'](function(_0x518d4a){if(_0x21c180){var _0x23b51a=[];var _0x5735a9=[];var _0x5c20a9=utils['getChannels']();var _0x5bc79e={'membername':_0x21c180[_0xc898('0x2a')],'interface':_0x3c7aa7,'enterAt':moment()[_0xc898('0x31')](_0xc898('0x37')),'role':_0x21c180[_0xc898('0x2b')],'internal':_0x21c180[_0xc898('0x2c')]};_0x5c20a9[_0xc898('0x34')](function(_0xd58aaa){_0x23b51a[_0xc898('0x4a')](_[_0xc898('0x59')]({'channel':_0xd58aaa,'type':_0xc898('0x5a'),'data1':_0xc898('0x5b'),'data2':_0x3c7aa7},_0x5bc79e));if(_0x21c180[_0xc898('0x57')]){_0x5735a9[_0xc898('0x4a')](_[_0xc898('0x59')]({'channel':_0xd58aaa,'type':'PAUSE','data1':'LOGININPAUSE'},_0x5bc79e));}});return db[_0xc898('0x2f')][_0xc898('0x3b')](_0x23b51a[_0xc898('0x5c')](_0x5735a9),{'individualHooks':!![]});}})[_0xc898('0x12')](function(){if(_0x21c180){return _0x21c180[_0xc898('0x2e')]({'online':!![],'lastLoginAt':moment()[_0xc898('0x31')](_0xc898('0x37')),'voicePause':_0x21c180['loginInPause']||![],'mailPause':_0x21c180['loginInPause']||![],'chatPause':_0x21c180['loginInPause']||![],'faxPause':_0x21c180[_0xc898('0x57')]||![],'smsPause':_0x21c180[_0xc898('0x57')]||![],'openchannelPause':_0x21c180[_0xc898('0x57')]||![],'pauseType':_0x21c180[_0xc898('0x57')]?'LOGININPAUSE':null,'lastPauseAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x3c7aa7});}})[_0xc898('0x12')](function(_0x34e88b){_0x428974(_0x34e88b);})[_0xc898('0x1c')](function(_0x375e81){_0x5f4f43(_0x177176[_0xc898('0x19')](0x1f4,_0x375e81['message']));});});};
\ No newline at end of file
+var _0x3c20=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./user.socket','register','request','info','User,\x20%s,\x20%s','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetUser','User','findAll','options','where','attributes','limit','include','model','map','catch','ShowUser','find','raw','then','PauseUser','name','role','interface','UserVoiceQueueRt','MemberReport','PAUSE','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','isNil','SIP/%s','type','DEFAULT\x20PAUSE','internal','body','uniqueid','bulkCreate','format','findOne','channel','isValidChannel','update','system','chat','sms','openchannel','whatsapp','set','Pause','push','all','LogoutUser','destroy','LoginUser','mobile','phone','count','agent','../../config/license/util','getLicense','agents','getVoiceQueues','UserVoiceQueue.penalty','merge','LOGIN','callysquare','loginInPause','LOGININPAUSE','lodash','moment','bluebird','randomstring'];(function(_0x18cac4,_0x57a4d5){var _0x2227c6=function(_0x72934d){while(--_0x72934d){_0x18cac4['push'](_0x18cac4['shift']());}};_0x2227c6(++_0x57a4d5);}(_0x3c20,0x116));var _0x03c2=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0x3c20[_0x2763f2];return _0x3ef471;};'use strict';var _=require(_0x03c2('0x0'));var util=require('util');var moment=require(_0x03c2('0x1'));var BPromise=require(_0x03c2('0x2'));var rs=require(_0x03c2('0x3'));var fs=require('fs');var Redis=require(_0x03c2('0x4'));var db=require(_0x03c2('0x5'))['db'];var utils=require(_0x03c2('0x6'));var logger=require(_0x03c2('0x7'))(_0x03c2('0x8'));var config=require(_0x03c2('0x9'));var jayson=require(_0x03c2('0xa'));var client=jayson[_0x03c2('0xb')]['http']({'port':0x232a});config[_0x03c2('0xc')]=_[_0x03c2('0xd')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x03c2('0xe'))(new Redis(config[_0x03c2('0xc')]));require(_0x03c2('0xf'))[_0x03c2('0x10')](socket);function respondWithRpcPromise(_0x4104c1,_0x27bafa,_0x503b4b){return new BPromise(function(_0x1c9da8,_0x118df2){return client[_0x03c2('0x11')](_0x4104c1,_0x503b4b)['then'](function(_0xee7a47){logger[_0x03c2('0x12')](_0x03c2('0x13'),_0x27bafa,_0x03c2('0x14'));logger[_0x03c2('0x15')](_0x03c2('0x16'),_0x27bafa,'request\x20sent',JSON[_0x03c2('0x17')](_0xee7a47));if(_0xee7a47[_0x03c2('0x18')]){if(_0xee7a47[_0x03c2('0x18')][_0x03c2('0x19')]===0x1f4){logger[_0x03c2('0x18')](_0x03c2('0x13'),_0x27bafa,_0xee7a47['error'][_0x03c2('0x1a')]);return _0x118df2(_0xee7a47[_0x03c2('0x18')][_0x03c2('0x1a')]);}logger['error'](_0x03c2('0x13'),_0x27bafa,_0xee7a47['error']['message']);return _0x1c9da8(_0xee7a47[_0x03c2('0x18')][_0x03c2('0x1a')]);}else{logger[_0x03c2('0x12')](_0x03c2('0x13'),_0x27bafa,_0x03c2('0x14'));_0x1c9da8(_0xee7a47[_0x03c2('0x1b')]['message']);}})['catch'](function(_0x5b0118){logger['error'](_0x03c2('0x13'),_0x27bafa,_0x5b0118);_0x118df2(_0x5b0118);});});}exports[_0x03c2('0x1c')]=function(_0x2a60d9){var _0x3e6d0e=this;return new Promise(function(_0x2224ac,_0x575757){return db[_0x03c2('0x1d')][_0x03c2('0x1e')]({'raw':_0x2a60d9[_0x03c2('0x1f')]?_0x2a60d9[_0x03c2('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x2a60d9[_0x03c2('0x1f')]?_0x2a60d9[_0x03c2('0x1f')][_0x03c2('0x20')]||null:null,'attributes':_0x2a60d9[_0x03c2('0x1f')]?_0x2a60d9[_0x03c2('0x1f')][_0x03c2('0x21')]||null:null,'limit':_0x2a60d9[_0x03c2('0x1f')]?_0x2a60d9[_0x03c2('0x1f')][_0x03c2('0x22')]||null:null,'include':_0x2a60d9[_0x03c2('0x1f')]?_0x2a60d9[_0x03c2('0x1f')]['include']?_['map'](_0x2a60d9[_0x03c2('0x1f')][_0x03c2('0x23')],function(_0x554b16){return{'model':db[_0x554b16[_0x03c2('0x24')]],'as':_0x554b16['as'],'attributes':_0x554b16[_0x03c2('0x21')],'include':_0x554b16[_0x03c2('0x23')]?_[_0x03c2('0x25')](_0x554b16['include'],function(_0x294cec){return{'model':db[_0x294cec[_0x03c2('0x24')]],'as':_0x294cec['as'],'attributes':_0x294cec['attributes'],'include':_0x294cec[_0x03c2('0x23')]?_['map'](_0x294cec[_0x03c2('0x23')],function(_0x70e33){return{'model':db[_0x70e33[_0x03c2('0x24')]],'as':_0x70e33['as'],'attributes':_0x70e33['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x29e503){logger[_0x03c2('0x12')](_0x03c2('0x1c'),_0x2a60d9);logger['debug']('GetUser',_0x2a60d9,JSON['stringify'](_0x29e503));_0x2224ac(_0x29e503);})[_0x03c2('0x26')](function(_0x50d6b5){logger[_0x03c2('0x18')]('GetUser',_0x50d6b5['message'],_0x2a60d9);_0x575757(_0x3e6d0e['error'](0x1f4,_0x50d6b5[_0x03c2('0x1a')]));});});};exports[_0x03c2('0x27')]=function(_0x2db413){var _0x22a97a=this;return new Promise(function(_0x16414f,_0x3a363e){return db['User'][_0x03c2('0x28')]({'raw':_0x2db413[_0x03c2('0x1f')]?_0x2db413[_0x03c2('0x1f')][_0x03c2('0x29')]===undefined?!![]:![]:!![],'where':_0x2db413[_0x03c2('0x1f')]?_0x2db413['options'][_0x03c2('0x20')]||null:null,'attributes':_0x2db413[_0x03c2('0x1f')]?_0x2db413[_0x03c2('0x1f')]['attributes']||null:null,'include':_0x2db413['options']?_0x2db413[_0x03c2('0x1f')]['include']?_[_0x03c2('0x25')](_0x2db413[_0x03c2('0x1f')][_0x03c2('0x23')],function(_0x9b1768){return{'model':db[_0x9b1768[_0x03c2('0x24')]],'as':_0x9b1768['as'],'attributes':_0x9b1768[_0x03c2('0x21')],'include':_0x9b1768[_0x03c2('0x23')]?_[_0x03c2('0x25')](_0x9b1768[_0x03c2('0x23')],function(_0x5047cc){return{'model':db[_0x5047cc[_0x03c2('0x24')]],'as':_0x5047cc['as'],'attributes':_0x5047cc[_0x03c2('0x21')],'include':_0x5047cc[_0x03c2('0x23')]?_[_0x03c2('0x25')](_0x5047cc[_0x03c2('0x23')],function(_0x16c4fa){return{'model':db[_0x16c4fa[_0x03c2('0x24')]],'as':_0x16c4fa['as'],'attributes':_0x16c4fa['attributes']};}):[]};}):[]};}):[]:[]})[_0x03c2('0x2a')](function(_0x5275a8){logger[_0x03c2('0x12')]('ShowUser',_0x2db413);logger['debug'](_0x03c2('0x27'),_0x2db413,JSON[_0x03c2('0x17')](_0x5275a8));_0x16414f(_0x5275a8);})[_0x03c2('0x26')](function(_0x29682a){logger[_0x03c2('0x18')]('ShowUser',_0x29682a[_0x03c2('0x1a')],_0x2db413);_0x3a363e(_0x22a97a[_0x03c2('0x18')](0x1f4,_0x29682a[_0x03c2('0x1a')]));});});};exports[_0x03c2('0x2b')]=function(_0x51d72d){var _0x576af1=this;return new Promise(function(_0x14ad7f,_0xacca06){var _0x5aacf4;return db[_0x03c2('0x1d')]['find']({'where':_0x51d72d[_0x03c2('0x1f')]['where']||{},'attributes':['id',_0x03c2('0x2c'),_0x03c2('0x2d'),'internal',_0x03c2('0x2e')]})[_0x03c2('0x2a')](function(_0x5c4adc){if(_0x5c4adc){_0x5aacf4=_0x5c4adc;return db[_0x03c2('0x2f')]['update']({'paused':0x1},{'where':{'UserId':_0x5aacf4['id']},'individualHooks':!![]});}})[_0x03c2('0x2a')](function(){if(_0x5aacf4){return db[_0x03c2('0x30')][_0x03c2('0x1e')]({'where':{'membername':_0x5aacf4[_0x03c2('0x2c')],'type':_0x03c2('0x31'),'exitAt':null}});}})['then'](function(_0x2bbd60){if(_0x5aacf4){if(_0x2bbd60&&_0x2bbd60[_0x03c2('0x32')]){var _0x59b8c9=moment()['format'](_0x03c2('0x33'));for(var _0xd91dd6=0x0,_0x3c7ed5=_0x2bbd60[_0x03c2('0x32')];_0xd91dd6<_0x3c7ed5;_0xd91dd6++){_0x2bbd60[_0xd91dd6][_0x03c2('0x34')]({'exitAt':_0x59b8c9});}}}})[_0x03c2('0x2a')](function(){if(_0x5aacf4){var _0x355f1d=[];var _0x50c339=utils[_0x03c2('0x35')]();_0x50c339[_0x03c2('0x36')](function(_0x3a2717){_0x355f1d['push']({'channel':_0x3a2717,'membername':_0x5aacf4[_0x03c2('0x2c')],'interface':_[_0x03c2('0x37')](_0x5aacf4[_0x03c2('0x2e')])?util['format'](_0x03c2('0x38'),_0x5aacf4[_0x03c2('0x2c')]):_0x5aacf4[_0x03c2('0x2e')],'type':_0x03c2('0x31'),'enterAt':moment()['format'](_0x03c2('0x33')),'data1':_0x51d72d['body'][_0x03c2('0x39')]||_0x03c2('0x3a'),'role':_0x5aacf4[_0x03c2('0x2d')],'internal':_0x5aacf4[_0x03c2('0x3b')],'uniqueid':_0x51d72d[_0x03c2('0x3c')][_0x03c2('0x3d')]||null});});return db[_0x03c2('0x30')][_0x03c2('0x3e')](_0x355f1d,{'individualHooks':!![]});}})['then'](function(){if(_0x5aacf4){return _0x5aacf4['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x51d72d['body'][_0x03c2('0x39')]||_0x03c2('0x3a'),'lastPauseAt':moment()[_0x03c2('0x3f')](_0x03c2('0x33'))});}})[_0x03c2('0x2a')](function(_0x35521e){_0x14ad7f(_0x35521e);})['catch'](function(_0x1d10d6){_0xacca06(_0x576af1[_0x03c2('0x18')](0x1f4,_0x1d10d6[_0x03c2('0x1a')]));});});};exports['UnpauseUser']=function(_0x17a67b){var _0x10d0c9=this;return new Promise(function(_0x50b033,_0x5dd4b9){var _0x29aa7f;return db[_0x03c2('0x1d')][_0x03c2('0x40')]({'where':_0x17a67b[_0x03c2('0x1f')]['where']||{},'attributes':['id',_0x03c2('0x2c')]})[_0x03c2('0x2a')](function(_0x22cf34){if(_0x22cf34){_0x29aa7f=_0x22cf34;if(_0x17a67b[_0x03c2('0x3c')][_0x03c2('0x41')]&&!utils[_0x03c2('0x42')](_0x17a67b[_0x03c2('0x3c')][_0x03c2('0x41')])){throw new Error('Unknown\x20channel');}switch(_0x17a67b[_0x03c2('0x3c')][_0x03c2('0x41')]){case'voice':return db[_0x03c2('0x2f')][_0x03c2('0x43')]({'paused':0x0},{'where':{'UserId':_0x29aa7f['id']}})[_0x03c2('0x2a')](function(){return db[_0x03c2('0x30')][_0x03c2('0x28')]({'where':{'channel':_0x17a67b[_0x03c2('0x3c')][_0x03c2('0x41')],'membername':_0x29aa7f['name'],'type':_0x03c2('0x31'),'exitAt':null}});})[_0x03c2('0x2a')](function(_0x4f9a0d){if(_0x4f9a0d){return _0x4f9a0d[_0x03c2('0x43')]({'exitAt':moment()['format'](_0x03c2('0x33')),'data2':_0x03c2('0x44')},{'individualHooks':!![]});}return null;})[_0x03c2('0x2a')](function(){return _0x29aa7f[_0x03c2('0x43')]({'voicePause':![]});});case'mail':case _0x03c2('0x45'):case'fax':case _0x03c2('0x46'):case _0x03c2('0x47'):case _0x03c2('0x48'):return db[_0x03c2('0x30')][_0x03c2('0x28')]({'where':{'channel':_0x17a67b['body'][_0x03c2('0x41')],'membername':_0x29aa7f[_0x03c2('0x2c')],'type':'PAUSE','exitAt':null}})[_0x03c2('0x2a')](function(_0x35c831){return _0x35c831[_0x03c2('0x43')]({'exitAt':moment()[_0x03c2('0x3f')](_0x03c2('0x33')),'data2':_0x03c2('0x44')},{'individualHooks':!![]});})[_0x03c2('0x2a')](function(){var _0xb87783={};_[_0x03c2('0x49')](_0xb87783,util[_0x03c2('0x3f')]('%s%s',_0x17a67b[_0x03c2('0x3c')][_0x03c2('0x41')],_0x03c2('0x4a')),![]);return _0x29aa7f['update'](_0xb87783);});default:return db[_0x03c2('0x2f')][_0x03c2('0x43')]({'paused':0x0},{'where':{'UserId':_0x29aa7f['id']}})[_0x03c2('0x2a')](function(){return db[_0x03c2('0x30')][_0x03c2('0x1e')]({'where':{'membername':_0x29aa7f[_0x03c2('0x2c')],'type':_0x03c2('0x31'),'exitAt':null}});})[_0x03c2('0x2a')](function(_0x132526){var _0x32ac1e=[];_0x132526[_0x03c2('0x36')](function(_0x2fca8e){_0x32ac1e[_0x03c2('0x4b')](_0x2fca8e['update']({'exitAt':moment()[_0x03c2('0x3f')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x03c2('0x44')}));});return BPromise[_0x03c2('0x4c')](_0x32ac1e);})['then'](function(){return _0x29aa7f[_0x03c2('0x43')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})['then'](function(_0x3176f3){_0x50b033(_0x3176f3);})[_0x03c2('0x26')](function(_0xc8f51e){_0x5dd4b9(_0x10d0c9[_0x03c2('0x18')](0x1f4,_0xc8f51e[_0x03c2('0x1a')]));});});};exports[_0x03c2('0x4d')]=function(_0xae8e08){var _0x3962e6=this;return new Promise(function(_0x3c112a,_0x1a1301){var _0x2eb79a;return db['User'][_0x03c2('0x40')]({'where':_0xae8e08['options'][_0x03c2('0x20')]||{},'attributes':['id',_0x03c2('0x2c')]})[_0x03c2('0x2a')](function(_0x240140){if(_0x240140){_0x2eb79a=_0x240140;return db[_0x03c2('0x2f')][_0x03c2('0x4e')]({'where':{'membername':_0x2eb79a[_0x03c2('0x2c')]},'individualHooks':!![]});}})[_0x03c2('0x2a')](function(){if(_0x2eb79a){return db[_0x03c2('0x30')][_0x03c2('0x1e')]({'where':{'membername':_0x2eb79a['name'],'exitAt':null}});}})[_0x03c2('0x2a')](function(_0x150656){if(_0x2eb79a){if(_0x150656&&_0x150656[_0x03c2('0x32')]){var _0x719481=[];_0x150656[_0x03c2('0x36')](function(_0x199afa){_0x719481[_0x03c2('0x4b')](_0x199afa[_0x03c2('0x43')]({'exitAt':moment()[_0x03c2('0x3f')](_0x03c2('0x33'))}));});return BPromise[_0x03c2('0x4c')](_0x719481);}}})[_0x03c2('0x2a')](function(){if(_0x2eb79a){return _0x2eb79a[_0x03c2('0x43')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x03c2('0x2a')](function(_0x4e6499){_0x3c112a(_0x4e6499);})[_0x03c2('0x26')](function(_0x339a01){_0x1a1301(_0x3962e6[_0x03c2('0x18')](0x1f4,_0x339a01['message']));});});};exports[_0x03c2('0x4f')]=function(_0x1620ab){var _0x4ba9c7=this;return new Promise(function(_0x38fdd3,_0x337746){var _0xc77f3d;var _0x1d010e;var _0xc0bec;var _0x145688;return db[_0x03c2('0x1d')][_0x03c2('0x40')]({'where':_0x1620ab[_0x03c2('0x1f')][_0x03c2('0x20')]||{},'attributes':['id',_0x03c2('0x2c'),_0x03c2('0x2d'),_0x03c2('0x50'),_0x03c2('0x51'),_0x03c2('0x3b'),'loginInPause',_0x03c2('0x2e')]})[_0x03c2('0x2a')](function(_0x3ca9bd){if(_0x3ca9bd){_0xc77f3d=_0x3ca9bd;_0x145688=_0x1620ab['body'][_0x03c2('0x2e')]?_0x1620ab[_0x03c2('0x3c')][_0x03c2('0x2e')]:util[_0x03c2('0x3f')](_0x03c2('0x38'),_0xc77f3d[_0x03c2('0x2c')]);return db['User'][_0x03c2('0x52')]({'where':{'role':_0x03c2('0x53'),'online':!![],'id':{'$ne':_0xc77f3d['id']}}});}})['then'](function(_0x284962){if(_0x284962){_0xc0bec=_0x284962;return require(_0x03c2('0x54'))[_0x03c2('0x55')]();}})[_0x03c2('0x2a')](function(_0x85d107){if(_0x85d107&&_0x85d107[_0x03c2('0x56')]&&_0xc0bec>=_0x85d107[_0x03c2('0x56')]){throw new Error('Maximum\x20login\x20has\x20been\x20reached');}})[_0x03c2('0x2a')](function(){if(_0xc77f3d){return db['UserVoiceQueueRt'][_0x03c2('0x4e')]({'where':{'membername':_0xc77f3d['name']},'individualHooks':!![]});}})[_0x03c2('0x2a')](function(){if(_0xc77f3d){return _0xc77f3d[_0x03c2('0x57')]({'raw':!![]});}})[_0x03c2('0x2a')](function(_0x55ec16){if(_0xc77f3d){if(_0x55ec16){var _0x4f680a=[];_0x1d010e=_0x55ec16;if(_0x1d010e[_0x03c2('0x32')]){for(var _0x3ba36a=0x0;_0x3ba36a<_0x1d010e[_0x03c2('0x32')];_0x3ba36a++){_0x4f680a[_0x03c2('0x4b')](db[_0x03c2('0x2f')]['upsert']({'membername':_0xc77f3d[_0x03c2('0x2c')],'UserId':_0xc77f3d['id'],'queue_name':_0x1d010e[_0x3ba36a][_0x03c2('0x2c')],'VoiceQueueId':_0x1d010e[_0x3ba36a]['id'],'interface':_0x145688,'paused':_0xc77f3d['loginInPause']||![],'penalty':_0x1d010e[_0x3ba36a][_0x03c2('0x58')]||0x0}));}return BPromise[_0x03c2('0x4c')](_0x4f680a);}}}})[_0x03c2('0x2a')](function(){if(_0xc77f3d){return db[_0x03c2('0x30')]['findAll']({'where':{'membername':_0xc77f3d[_0x03c2('0x2c')],'exitAt':null}});}})[_0x03c2('0x2a')](function(_0x2ffca3){if(_0xc77f3d){if(_0x2ffca3&&_0x2ffca3[_0x03c2('0x32')]){var _0x3d9990=[];_0x2ffca3[_0x03c2('0x36')](function(_0x39a797){_0x3d9990[_0x03c2('0x4b')](_0x39a797[_0x03c2('0x43')]({'exitAt':moment()['format'](_0x03c2('0x33'))}));});return BPromise[_0x03c2('0x4c')](_0x3d9990);}}})['then'](function(_0x47e365){if(_0xc77f3d){var _0x5de129=[];var _0x13d2f9=[];var _0xf2bbe1=utils[_0x03c2('0x35')]();var _0x4cb7e7={'membername':_0xc77f3d['name'],'interface':_0x145688,'enterAt':moment()[_0x03c2('0x3f')](_0x03c2('0x33')),'role':_0xc77f3d[_0x03c2('0x2d')],'internal':_0xc77f3d['internal']};_0xf2bbe1[_0x03c2('0x36')](function(_0x117b35){_0x5de129[_0x03c2('0x4b')](_[_0x03c2('0x59')]({'channel':_0x117b35,'type':_0x03c2('0x5a'),'data1':_0x03c2('0x5b'),'data2':_0x145688},_0x4cb7e7));if(_0xc77f3d[_0x03c2('0x5c')]){_0x13d2f9['push'](_['merge']({'channel':_0x117b35,'type':_0x03c2('0x31'),'data1':_0x03c2('0x5d')},_0x4cb7e7));}});return db[_0x03c2('0x30')]['bulkCreate'](_0x5de129['concat'](_0x13d2f9),{'individualHooks':!![]});}})[_0x03c2('0x2a')](function(){if(_0xc77f3d){return _0xc77f3d[_0x03c2('0x43')]({'online':!![],'lastLoginAt':moment()[_0x03c2('0x3f')](_0x03c2('0x33')),'voicePause':_0xc77f3d[_0x03c2('0x5c')]||![],'mailPause':_0xc77f3d[_0x03c2('0x5c')]||![],'chatPause':_0xc77f3d[_0x03c2('0x5c')]||![],'faxPause':_0xc77f3d['loginInPause']||![],'smsPause':_0xc77f3d[_0x03c2('0x5c')]||![],'openchannelPause':_0xc77f3d[_0x03c2('0x5c')]||![],'pauseType':_0xc77f3d[_0x03c2('0x5c')]?'LOGININPAUSE':null,'lastPauseAt':moment()[_0x03c2('0x3f')](_0x03c2('0x33')),'interface':_0x145688});}})[_0x03c2('0x2a')](function(_0x5dc96c){_0x38fdd3(_0x5dc96c);})[_0x03c2('0x26')](function(_0x4d9577){_0x337746(_0x4ba9c7[_0x03c2('0x18')](0x1f4,_0x4d9577['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x03d9=['./user.events','save','emit','removeListener','register','length','user:'];(function(_0x517648,_0x3e4708){var _0xb5372a=function(_0x4b0628){while(--_0x4b0628){_0x517648['push'](_0x517648['shift']());}};_0xb5372a(++_0x3e4708);}(_0x03d9,0x1b9));var _0x903d=function(_0x51f664,_0x62b70){_0x51f664=_0x51f664-0x0;var _0x46be14=_0x03d9[_0x51f664];return _0x46be14;};'use strict';var UserEvents=require(_0x903d('0x0'));var events=[_0x903d('0x1'),'remove','update'];function createListener(_0x4785a6,_0x32c357){return function(_0xcdea4f){_0x32c357[_0x903d('0x2')](_0x4785a6,_0xcdea4f);};}function removeListener(_0x195c50,_0x2dc46f){return function(){UserEvents[_0x903d('0x3')](_0x195c50,_0x2dc46f);};}exports[_0x903d('0x4')]=function(_0x3a01d8){for(var _0x5c4a6a=0x0,_0x1974f6=events[_0x903d('0x5')];_0x5c4a6a<_0x1974f6;_0x5c4a6a++){var _0x3b1063=events[_0x5c4a6a];var _0x30cb0f=createListener(_0x903d('0x6')+_0x3b1063,_0x3a01d8);UserEvents['on'](_0x3b1063,_0x30cb0f);}};
\ No newline at end of file
+var _0x136f=['removeListener','register','user:','./user.events','save','remove','update'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x136f,0x65));var _0xf136=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x136f[_0x1cc8fe];return _0x230054;};'use strict';var UserEvents=require(_0xf136('0x0'));var events=[_0xf136('0x1'),_0xf136('0x2'),_0xf136('0x3')];function createListener(_0x59a63e,_0x565e5e){return function(_0x26f107){_0x565e5e['emit'](_0x59a63e,_0x26f107);};}function removeListener(_0x3b5c71,_0x37553e){return function(){UserEvents[_0xf136('0x4')](_0x3b5c71,_0x37553e);};}exports[_0xf136('0x5')]=function(_0x37f958){for(var _0x1c7526=0x0,_0x308c02=events['length'];_0x1c7526<_0x308c02;_0x1c7526++){var _0x2527c4=events[_0x1c7526];var _0x5372a5=createListener(_0xf136('0x6')+_0x2527c4,_0x37f958);UserEvents['on'](_0x2527c4,_0x5372a5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x4ff1c5,_0x5be999){var _0x4800d3=function(_0x311c24){while(--_0x311c24){_0x4ff1c5['push'](_0x4ff1c5['shift']());}};_0x4800d3(++_0x5be999);}(_0xe706,0xa3));var _0x6e70=function(_0xaeff8a,_0x506724){_0xaeff8a=_0xaeff8a-0x0;var _0x8a6ce3=_0xe706[_0xaeff8a];return _0x8a6ce3;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x474e3a,_0x16a0a0){var _0x4946c0=function(_0x7c7c27){while(--_0x7c7c27){_0x474e3a['push'](_0x474e3a['shift']());}};_0x4946c0(++_0x16a0a0);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x53b8e0,_0x55d46e){_0x53b8e0=_0x53b8e0-0x0;var _0x10630c=_0xcb91[_0x53b8e0];return _0x10630c;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfd9=['exports','INTEGER'];(function(_0x56f8a4,_0x352c07){var _0x354ccc=function(_0xfd0f25){while(--_0xfd0f25){_0x56f8a4['push'](_0x56f8a4['shift']());}};_0x354ccc(++_0x352c07);}(_0xbfd9,0x108));var _0x9bfd=function(_0x4c4053,_0x201609){_0x4c4053=_0x4c4053-0x0;var _0x2babbc=_0xbfd9[_0x4c4053];return _0x2babbc;};'use strict';var Sequelize=require('sequelize');module[_0x9bfd('0x0')]={'penalty':{'type':Sequelize[_0x9bfd('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x9235=['sequelize','exports','INTEGER'];(function(_0x11d92a,_0x1fc6d7){var _0x5739df=function(_0x4fe90a){while(--_0x4fe90a){_0x11d92a['push'](_0x11d92a['shift']());}};_0x5739df(++_0x1fc6d7);}(_0x9235,0xba));var _0x5923=function(_0x5af32d,_0x52c366){_0x5af32d=_0x5af32d-0x0;var _0x3ee481=_0x9235[_0x5af32d];return _0x3ee481;};'use strict';var Sequelize=require(_0x5923('0x0'));module[_0x5923('0x1')]={'penalty':{'type':Sequelize[_0x5923('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x601e=['UserChatQueue','user_has_chat_queues','lodash','../../config/logger','moment','request-promise','path','define'];(function(_0xe06c0a,_0x51e656){var _0x33e68e=function(_0x13aff1){while(--_0x13aff1){_0xe06c0a['push'](_0xe06c0a['shift']());}};_0x33e68e(++_0x51e656);}(_0x601e,0x1c2));var _0xe601=function(_0x1fa841,_0x37a70c){_0x1fa841=_0x1fa841-0x0;var _0x384b67=_0x601e[_0x1fa841];return _0x384b67;};'use strict';var _=require(_0xe601('0x0'));var util=require('util');var logger=require(_0xe601('0x1'))('api');var moment=require(_0xe601('0x2'));var BPromise=require('bluebird');var rp=require(_0xe601('0x3'));var fs=require('fs');var path=require(_0xe601('0x4'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./userChatQueue.attributes');module['exports']=function(_0x39d617,_0x4f3bb8){return _0x39d617[_0xe601('0x5')](_0xe601('0x6'),attributes,{'tableName':_0xe601('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3fab=['path','./userChatQueue.attributes','exports','define','user_has_chat_queues','lodash','moment','request-promise'];(function(_0x5cff55,_0x4319e1){var _0x2ed25c=function(_0x55277a){while(--_0x55277a){_0x5cff55['push'](_0x5cff55['shift']());}};_0x2ed25c(++_0x4319e1);}(_0x3fab,0x12d));var _0xb3fa=function(_0x419c48,_0x3e8726){_0x419c48=_0x419c48-0x0;var _0x3f05bc=_0x3fab[_0x419c48];return _0x3f05bc;};'use strict';var _=require(_0xb3fa('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xb3fa('0x1'));var BPromise=require('bluebird');var rp=require(_0xb3fa('0x2'));var fs=require('fs');var path=require(_0xb3fa('0x3'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xb3fa('0x4'));module[_0xb3fa('0x5')]=function(_0x3871b4,_0x42bc3){return _0x3871b4[_0xb3fa('0x6')]('UserChatQueue',attributes,{'tableName':_0xb3fa('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84fa=['jayson/promise','client','request','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0xe176ee,_0x87f575){var _0x1797d7=function(_0x2f7b68){while(--_0x2f7b68){_0xe176ee['push'](_0xe176ee['shift']());}};_0x1797d7(++_0x87f575);}(_0x84fa,0x65));var _0xa84f=function(_0x2df507,_0x553862){_0x2df507=_0x2df507-0x0;var _0x1f7167=_0x84fa[_0x2df507];return _0x1f7167;};'use strict';var _=require('lodash');var util=require(_0xa84f('0x0'));var moment=require(_0xa84f('0x1'));var BPromise=require(_0xa84f('0x2'));var rs=require(_0xa84f('0x3'));var fs=require('fs');var Redis=require(_0xa84f('0x4'));var db=require(_0xa84f('0x5'))['db'];var utils=require(_0xa84f('0x6'));var logger=require('../../config/logger')(_0xa84f('0x7'));var config=require(_0xa84f('0x8'));var jayson=require(_0xa84f('0x9'));var client=jayson[_0xa84f('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x16e1a1,_0x3d9c2a,_0xf48503){return new BPromise(function(_0x4f1d95,_0x190bba){return client[_0xa84f('0xb')](_0x16e1a1,_0xf48503)[_0xa84f('0xc')](function(_0x581362){logger[_0xa84f('0xd')](_0xa84f('0xe'),_0x3d9c2a,_0xa84f('0xf'));logger['debug'](_0xa84f('0x10'),_0x3d9c2a,_0xa84f('0xf'),JSON[_0xa84f('0x11')](_0x581362));if(_0x581362[_0xa84f('0x12')]){if(_0x581362[_0xa84f('0x12')]['code']===0x1f4){logger['error'](_0xa84f('0xe'),_0x3d9c2a,_0x581362[_0xa84f('0x12')][_0xa84f('0x13')]);return _0x190bba(_0x581362[_0xa84f('0x12')][_0xa84f('0x13')]);}logger[_0xa84f('0x12')]('UserChatQueue,\x20%s,\x20%s',_0x3d9c2a,_0x581362[_0xa84f('0x12')]['message']);return _0x4f1d95(_0x581362[_0xa84f('0x12')]['message']);}else{logger[_0xa84f('0xd')](_0xa84f('0xe'),_0x3d9c2a,_0xa84f('0xf'));_0x4f1d95(_0x581362[_0xa84f('0x14')][_0xa84f('0x13')]);}})[_0xa84f('0x15')](function(_0x1eb59b){logger[_0xa84f('0x12')](_0xa84f('0xe'),_0x3d9c2a,_0x1eb59b);_0x190bba(_0x1eb59b);});});}
\ No newline at end of file
+var _0x734c=['jayson/promise','client','http','request','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','debug','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment'];(function(_0x2386a0,_0xa935ca){var _0x3626db=function(_0x449eca){while(--_0x449eca){_0x2386a0['push'](_0x2386a0['shift']());}};_0x3626db(++_0xa935ca);}(_0x734c,0x116));var _0xc734=function(_0x2a1c69,_0x54f265){_0x2a1c69=_0x2a1c69-0x0;var _0x713207=_0x734c[_0x2a1c69];return _0x713207;};'use strict';var _=require(_0xc734('0x0'));var util=require(_0xc734('0x1'));var moment=require(_0xc734('0x2'));var BPromise=require(_0xc734('0x3'));var rs=require(_0xc734('0x4'));var fs=require('fs');var Redis=require(_0xc734('0x5'));var db=require(_0xc734('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xc734('0x7'))(_0xc734('0x8'));var config=require(_0xc734('0x9'));var jayson=require(_0xc734('0xa'));var client=jayson[_0xc734('0xb')][_0xc734('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1ee319,_0x486d56,_0x2180be){return new BPromise(function(_0x5c445b,_0x4cdbd2){return client[_0xc734('0xd')](_0x1ee319,_0x2180be)[_0xc734('0xe')](function(_0x3bdd81){logger[_0xc734('0xf')](_0xc734('0x10'),_0x486d56,_0xc734('0x11'));logger[_0xc734('0x12')](_0xc734('0x13'),_0x486d56,'request\x20sent',JSON[_0xc734('0x14')](_0x3bdd81));if(_0x3bdd81[_0xc734('0x15')]){if(_0x3bdd81['error']['code']===0x1f4){logger['error'](_0xc734('0x10'),_0x486d56,_0x3bdd81['error']['message']);return _0x4cdbd2(_0x3bdd81[_0xc734('0x15')]['message']);}logger[_0xc734('0x15')]('UserChatQueue,\x20%s,\x20%s',_0x486d56,_0x3bdd81[_0xc734('0x15')][_0xc734('0x16')]);return _0x5c445b(_0x3bdd81[_0xc734('0x15')]['message']);}else{logger[_0xc734('0xf')](_0xc734('0x10'),_0x486d56,_0xc734('0x11'));_0x5c445b(_0x3bdd81['result'][_0xc734('0x16')]);}})[_0xc734('0x17')](function(_0x25c031){logger[_0xc734('0x15')](_0xc734('0x10'),_0x486d56,_0x25c031);_0x4cdbd2(_0x25c031);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x1cf6a9,_0x190ed2){var _0x3700f3=function(_0x42b1fc){while(--_0x42b1fc){_0x1cf6a9['push'](_0x1cf6a9['shift']());}};_0x3700f3(++_0x190ed2);}(_0xe706,0xa3));var _0x6e70=function(_0x5e8b46,_0x21eb4a){_0x5e8b46=_0x5e8b46-0x0;var _0x252814=_0xe706[_0x5e8b46];return _0x252814;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0xe480f0,_0x4c0dc1){var _0x57b198=function(_0x4d8304){while(--_0x4d8304){_0xe480f0['push'](_0xe480f0['shift']());}};_0x57b198(++_0x4c0dc1);}(_0x9c44,0x178));var _0x49c4=function(_0x3b0731,_0xcf9925){_0x3b0731=_0x3b0731-0x0;var _0x4204d7=_0x9c44[_0x3b0731];return _0x4204d7;};'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 fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa35b=['exports','INTEGER','STRING','sequelize'];(function(_0x44b82e,_0x2ca14b){var _0xd49f44=function(_0x55ff33){while(--_0x55ff33){_0x44b82e['push'](_0x44b82e['shift']());}};_0xd49f44(++_0x2ca14b);}(_0xa35b,0x15b));var _0xba35=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0xa35b[_0x40a045];return _0x1a687c;};'use strict';var Sequelize=require(_0xba35('0x0'));module[_0xba35('0x1')]={'penalty':{'type':Sequelize[_0xba35('0x2')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xba35('0x2')],'defaultValue':0x0},'queue':{'type':Sequelize[_0xba35('0x3')]}};
\ No newline at end of file
+var _0x28e9=['STRING','INTEGER'];(function(_0x21ea48,_0x28c2f5){var _0x233e9a=function(_0x69acf3){while(--_0x69acf3){_0x21ea48['push'](_0x21ea48['shift']());}};_0x233e9a(++_0x28c2f5);}(_0x28e9,0x95));var _0x928e=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x28e9[_0x4a9fb1];return _0x348672;};'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize[_0x928e('0x0')],'defaultValue':0x0},'assigned':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'queue':{'type':Sequelize[_0x928e('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7c99=['user_has_fax_queues','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./userFaxQueue.attributes','exports','define','UserFaxQueue'];(function(_0x45ad09,_0x521ab1){var _0x2084fd=function(_0x6fd212){while(--_0x6fd212){_0x45ad09['push'](_0x45ad09['shift']());}};_0x2084fd(++_0x521ab1);}(_0x7c99,0x17a));var _0x97c9=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x7c99[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require(_0x97c9('0x0'));var util=require(_0x97c9('0x1'));var logger=require('../../config/logger')(_0x97c9('0x2'));var moment=require(_0x97c9('0x3'));var BPromise=require(_0x97c9('0x4'));var rp=require(_0x97c9('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x97c9('0x6'));var config=require(_0x97c9('0x7'));var attributes=require(_0x97c9('0x8'));module[_0x97c9('0x9')]=function(_0x4a0a41,_0x31926e){return _0x4a0a41[_0x97c9('0xa')](_0x97c9('0xb'),attributes,{'tableName':_0x97c9('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe311=['define','UserFaxQueue','user_has_fax_queues','lodash','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./userFaxQueue.attributes'];(function(_0x2390cc,_0x52baaa){var _0x227be9=function(_0x34b40c){while(--_0x34b40c){_0x2390cc['push'](_0x2390cc['shift']());}};_0x227be9(++_0x52baaa);}(_0xe311,0x183));var _0x1e31=function(_0x24cf8c,_0xb4b7fc){_0x24cf8c=_0x24cf8c-0x0;var _0x3bfd8b=_0xe311[_0x24cf8c];return _0x3bfd8b;};'use strict';var _=require(_0x1e31('0x0'));var util=require('util');var logger=require(_0x1e31('0x1'))(_0x1e31('0x2'));var moment=require('moment');var BPromise=require(_0x1e31('0x3'));var rp=require(_0x1e31('0x4'));var fs=require('fs');var path=require(_0x1e31('0x5'));var rimraf=require(_0x1e31('0x6'));var config=require(_0x1e31('0x7'));var attributes=require(_0x1e31('0x8'));module['exports']=function(_0x689d2,_0x147b11){return _0x689d2[_0x1e31('0x9')](_0x1e31('0xa'),attributes,{'tableName':_0x1e31('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60aa=['info','result','catch','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','UserFaxQueue,\x20%s,\x20%s','request\x20sent','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x60aa,0x12f));var _0xa60a=function(_0x1a3875,_0x593b5b){_0x1a3875=_0x1a3875-0x0;var _0x2de814=_0x60aa[_0x1a3875];return _0x2de814;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xa60a('0x0'));var rs=require(_0xa60a('0x1'));var fs=require('fs');var Redis=require(_0xa60a('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xa60a('0x3'));var logger=require(_0xa60a('0x4'))(_0xa60a('0x5'));var config=require(_0xa60a('0x6'));var jayson=require(_0xa60a('0x7'));var client=jayson[_0xa60a('0x8')][_0xa60a('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1d4ff2,_0x2164c9,_0x23e515){return new BPromise(function(_0x351ee1,_0x4571c3){return client['request'](_0x1d4ff2,_0x23e515)[_0xa60a('0xa')](function(_0x5a5d53){logger['info'](_0xa60a('0xb'),_0x2164c9,_0xa60a('0xc'));logger['debug'](_0xa60a('0xd'),_0x2164c9,'request\x20sent',JSON[_0xa60a('0xe')](_0x5a5d53));if(_0x5a5d53[_0xa60a('0xf')]){if(_0x5a5d53[_0xa60a('0xf')]['code']===0x1f4){logger[_0xa60a('0xf')](_0xa60a('0xb'),_0x2164c9,_0x5a5d53[_0xa60a('0xf')][_0xa60a('0x10')]);return _0x4571c3(_0x5a5d53[_0xa60a('0xf')]['message']);}logger[_0xa60a('0xf')](_0xa60a('0xb'),_0x2164c9,_0x5a5d53[_0xa60a('0xf')][_0xa60a('0x10')]);return _0x351ee1(_0x5a5d53[_0xa60a('0xf')][_0xa60a('0x10')]);}else{logger[_0xa60a('0x11')](_0xa60a('0xb'),_0x2164c9,'request\x20sent');_0x351ee1(_0x5a5d53[_0xa60a('0x12')][_0xa60a('0x10')]);}})[_0xa60a('0x13')](function(_0x521703){logger[_0xa60a('0xf')](_0xa60a('0xb'),_0x2164c9,_0x521703);_0x4571c3(_0x521703);});});}
\ No newline at end of file
+var _0x196a=['UserFaxQueue,\x20%s,\x20%s','request\x20sent','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info'];(function(_0x4fde08,_0x463a36){var _0x12e725=function(_0x2670c5){while(--_0x2670c5){_0x4fde08['push'](_0x4fde08['shift']());}};_0x12e725(++_0x463a36);}(_0x196a,0x153));var _0xa196=function(_0x3f14ed,_0x5d9916){_0x3f14ed=_0x3f14ed-0x0;var _0x22077d=_0x196a[_0x3f14ed];return _0x22077d;};'use strict';var _=require(_0xa196('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xa196('0x1'));var rs=require(_0xa196('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa196('0x3'))['db'];var utils=require(_0xa196('0x4'));var logger=require(_0xa196('0x5'))(_0xa196('0x6'));var config=require(_0xa196('0x7'));var jayson=require(_0xa196('0x8'));var client=jayson[_0xa196('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x342749,_0x4520fe,_0x5bcabd){return new BPromise(function(_0x471d8d,_0x16db0f){return client[_0xa196('0xa')](_0x342749,_0x5bcabd)[_0xa196('0xb')](function(_0x1e6442){logger[_0xa196('0xc')](_0xa196('0xd'),_0x4520fe,_0xa196('0xe'));logger['debug'](_0xa196('0xf'),_0x4520fe,'request\x20sent',JSON[_0xa196('0x10')](_0x1e6442));if(_0x1e6442[_0xa196('0x11')]){if(_0x1e6442[_0xa196('0x11')][_0xa196('0x12')]===0x1f4){logger[_0xa196('0x11')](_0xa196('0xd'),_0x4520fe,_0x1e6442[_0xa196('0x11')][_0xa196('0x13')]);return _0x16db0f(_0x1e6442[_0xa196('0x11')][_0xa196('0x13')]);}logger['error'](_0xa196('0xd'),_0x4520fe,_0x1e6442[_0xa196('0x11')][_0xa196('0x13')]);return _0x471d8d(_0x1e6442[_0xa196('0x11')][_0xa196('0x13')]);}else{logger['info'](_0xa196('0xd'),_0x4520fe,_0xa196('0xe'));_0x471d8d(_0x1e6442[_0xa196('0x14')][_0xa196('0x13')]);}})[_0xa196('0x15')](function(_0x296e4b){logger['error'](_0xa196('0xd'),_0x4520fe,_0x296e4b);_0x16db0f(_0x296e4b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x4231d0,_0x43f325){var _0x85cfa9=function(_0x24a9fe){while(--_0x24a9fe){_0x4231d0['push'](_0x4231d0['shift']());}};_0x85cfa9(++_0x43f325);}(_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 fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x4db1d7,_0xe0d557){var _0x53f2d7=function(_0x167c55){while(--_0x167c55){_0x4db1d7['push'](_0x4db1d7['shift']());}};_0x53f2d7(++_0xe0d557);}(_0x9c44,0x178));var _0x49c4=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0x9c44[_0x4f9b18];return _0x29f20c;};'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 fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f22=['sequelize'];(function(_0x16595e,_0x44b278){var _0x52a0ef=function(_0x15a279){while(--_0x15a279){_0x16595e['push'](_0x16595e['shift']());}};_0x52a0ef(++_0x44b278);}(_0x4f22,0xcb));var _0x24f2=function(_0x1f68a,_0x1afe7c){_0x1f68a=_0x1f68a-0x0;var _0xe8d888=_0x4f22[_0x1f68a];return _0xe8d888;};'use strict';var Sequelize=require(_0x24f2('0x0'));module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd178=['INTEGER','sequelize'];(function(_0x252638,_0x47860d){var _0x562981=function(_0x4a3117){while(--_0x4a3117){_0x252638['push'](_0x252638['shift']());}};_0x562981(++_0x47860d);}(_0xd178,0x1c9));var _0x8d17=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xd178[_0x173d7e];return _0x2220d6;};'use strict';var Sequelize=require(_0x8d17('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x8d17('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29d0=['define','UserMailQueue','user_has_mail_queues','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./userMailQueue.attributes','exports'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0x29d0,0xe7));var _0x029d=function(_0x33e5a6,_0x4ff7b1){_0x33e5a6=_0x33e5a6-0x0;var _0x408d3a=_0x29d0[_0x33e5a6];return _0x408d3a;};'use strict';var _=require('lodash');var util=require(_0x029d('0x0'));var logger=require(_0x029d('0x1'))(_0x029d('0x2'));var moment=require(_0x029d('0x3'));var BPromise=require(_0x029d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x029d('0x5'));var config=require(_0x029d('0x6'));var attributes=require(_0x029d('0x7'));module[_0x029d('0x8')]=function(_0x56bdec,_0x376c63){return _0x56bdec[_0x029d('0x9')](_0x029d('0xa'),attributes,{'tableName':_0x029d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeb35=['api','path','rimraf','../../config/environment','./userMailQueue.attributes','exports','define','user_has_mail_queues','lodash','util'];(function(_0x12d603,_0x170b32){var _0x24c8fe=function(_0x5483d8){while(--_0x5483d8){_0x12d603['push'](_0x12d603['shift']());}};_0x24c8fe(++_0x170b32);}(_0xeb35,0x1d4));var _0x5eb3=function(_0x28ac7d,_0xfec552){_0x28ac7d=_0x28ac7d-0x0;var _0x35e348=_0xeb35[_0x28ac7d];return _0x35e348;};'use strict';var _=require(_0x5eb3('0x0'));var util=require(_0x5eb3('0x1'));var logger=require('../../config/logger')(_0x5eb3('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x5eb3('0x3'));var rimraf=require(_0x5eb3('0x4'));var config=require(_0x5eb3('0x5'));var attributes=require(_0x5eb3('0x6'));module[_0x5eb3('0x7')]=function(_0x133a1f,_0x5d6bb6){return _0x133a1f[_0x5eb3('0x8')]('UserMailQueue',attributes,{'tableName':_0x5eb3('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x4abf3a,_0x36b1dd){var _0x36ab58=function(_0x1aa1ff){while(--_0x1aa1ff){_0x4abf3a['push'](_0x4abf3a['shift']());}};_0x36ab58(++_0x36b1dd);}(_0x34e8,0x12c));var _0x834e=function(_0x56a8ac,_0x3637e1){_0x56a8ac=_0x56a8ac-0x0;var _0x4a6bd1=_0x34e8[_0x56a8ac];return _0x4a6bd1;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var moment=require(_0x834e('0x2'));var BPromise=require(_0x834e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x834e('0x4'));var db=require(_0x834e('0x5'))['db'];var utils=require(_0x834e('0x6'));var logger=require(_0x834e('0x7'))(_0x834e('0x8'));var config=require(_0x834e('0x9'));var jayson=require(_0x834e('0xa'));var client=jayson['client'][_0x834e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x52056d,_0x3e16d2,_0x3cc2e3){return new BPromise(function(_0x3a3ef6,_0x2e69e2){return client[_0x834e('0xc')](_0x52056d,_0x3cc2e3)[_0x834e('0xd')](function(_0x363786){logger[_0x834e('0xe')](_0x834e('0xf'),_0x3e16d2,_0x834e('0x10'));logger[_0x834e('0x11')](_0x834e('0x12'),_0x3e16d2,_0x834e('0x10'),JSON[_0x834e('0x13')](_0x363786));if(_0x363786[_0x834e('0x14')]){if(_0x363786[_0x834e('0x14')][_0x834e('0x15')]===0x1f4){logger['error'](_0x834e('0xf'),_0x3e16d2,_0x363786[_0x834e('0x14')]['message']);return _0x2e69e2(_0x363786[_0x834e('0x14')][_0x834e('0x16')]);}logger[_0x834e('0x14')](_0x834e('0xf'),_0x3e16d2,_0x363786['error'][_0x834e('0x16')]);return _0x3a3ef6(_0x363786[_0x834e('0x14')]['message']);}else{logger[_0x834e('0xe')]('UserMailQueue,\x20%s,\x20%s',_0x3e16d2,_0x834e('0x10'));_0x3a3ef6(_0x363786[_0x834e('0x17')]['message']);}})[_0x834e('0x18')](function(_0x22106e){logger[_0x834e('0x14')]('UserMailQueue,\x20%s,\x20%s',_0x3e16d2,_0x22106e);_0x2e69e2(_0x22106e);});});}
\ No newline at end of file
+var _0xe14b=['../../config/environment','jayson/promise','client','http','then','info','UserMailQueue,\x20%s,\x20%s','UserMailQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','lodash','util','randomstring','ioredis','../../config/utils'];(function(_0x503aed,_0x1e95ed){var _0x135c07=function(_0x2cbaff){while(--_0x2cbaff){_0x503aed['push'](_0x503aed['shift']());}};_0x135c07(++_0x1e95ed);}(_0xe14b,0x93));var _0xbe14=function(_0x2b969e,_0x51b0d2){_0x2b969e=_0x2b969e-0x0;var _0x3b39f6=_0xe14b[_0x2b969e];return _0x3b39f6;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xbe14('0x2'));var fs=require('fs');var Redis=require(_0xbe14('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xbe14('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xbe14('0x5'));var jayson=require(_0xbe14('0x6'));var client=jayson[_0xbe14('0x7')][_0xbe14('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1d9ade,_0x39387e,_0x196fca){return new BPromise(function(_0x566ae7,_0x50f909){return client['request'](_0x1d9ade,_0x196fca)[_0xbe14('0x9')](function(_0x6fceff){logger[_0xbe14('0xa')](_0xbe14('0xb'),_0x39387e,'request\x20sent');logger['debug'](_0xbe14('0xc'),_0x39387e,_0xbe14('0xd'),JSON['stringify'](_0x6fceff));if(_0x6fceff[_0xbe14('0xe')]){if(_0x6fceff[_0xbe14('0xe')][_0xbe14('0xf')]===0x1f4){logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);return _0x50f909(_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);}logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);return _0x566ae7(_0x6fceff['error']['message']);}else{logger[_0xbe14('0xa')](_0xbe14('0xb'),_0x39387e,_0xbe14('0xd'));_0x566ae7(_0x6fceff[_0xbe14('0x11')]['message']);}})[_0xbe14('0x12')](function(_0xe9c3ec){logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0xe9c3ec);_0x50f909(_0xe9c3ec);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66e6=['post','isAuthenticated','sendUserNotification','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userNotification.controller'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x66e6,0x184));var _0x666e=function(_0x21f388,_0x4e60f9){_0x21f388=_0x21f388-0x0;var _0x2811bd=_0x66e6[_0x21f388];return _0x2811bd;};'use strict';var multer=require(_0x666e('0x0'));var util=require('util');var path=require(_0x666e('0x1'));var timeout=require(_0x666e('0x2'));var express=require('express');var router=express[_0x666e('0x3')]();var fs_extra=require(_0x666e('0x4'));var auth=require(_0x666e('0x5'));var interaction=require(_0x666e('0x6'));var config=require('../../config/environment');var controller=require(_0x666e('0x7'));router[_0x666e('0x8')]('/',auth[_0x666e('0x9')](),controller[_0x666e('0xa')]);module['exports']=router;
\ No newline at end of file
+var _0xe588=['express','Router','fs-extra','../../components/interaction/service','../../config/environment','post','isAuthenticated','sendUserNotification','exports','multer','util','connect-timeout'];(function(_0x360b40,_0x4e6825){var _0x1f45da=function(_0x3ba545){while(--_0x3ba545){_0x360b40['push'](_0x360b40['shift']());}};_0x1f45da(++_0x4e6825);}(_0xe588,0x81));var _0x8e58=function(_0x47ea55,_0x4ca911){_0x47ea55=_0x47ea55-0x0;var _0x41c5a1=_0xe588[_0x47ea55];return _0x41c5a1;};'use strict';var multer=require(_0x8e58('0x0'));var util=require(_0x8e58('0x1'));var path=require('path');var timeout=require(_0x8e58('0x2'));var express=require(_0x8e58('0x3'));var router=express[_0x8e58('0x4')]();var fs_extra=require(_0x8e58('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x8e58('0x6'));var config=require(_0x8e58('0x7'));var controller=require('./userNotification.controller');router[_0x8e58('0x8')]('/',auth[_0x8e58('0x9')](),controller[_0x8e58('0xa')]);module[_0x8e58('0xb')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c9d=['BOOLEAN','sequelize','exports','TEXT'];(function(_0x348771,_0x450e8b){var _0x59fd3a=function(_0x1f8f65){while(--_0x1f8f65){_0x348771['push'](_0x348771['shift']());}};_0x59fd3a(++_0x450e8b);}(_0x8c9d,0x1e1));var _0xd8c9=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x8c9d[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require(_0xd8c9('0x0'));module[_0xd8c9('0x1')]={'body':{'type':Sequelize[_0xd8c9('0x2')]},'senderName':{'type':Sequelize['STRING']},'recipientsId':{'type':Sequelize[_0xd8c9('0x2')]},'recipientsDescription':{'type':Sequelize['STRING']},'beep':{'type':Sequelize[_0xd8c9('0x3')]}};
\ No newline at end of file
+var _0x1b55=['TEXT','STRING','BOOLEAN','sequelize'];(function(_0x99187d,_0x450b35){var _0x32d5bf=function(_0x508a77){while(--_0x508a77){_0x99187d['push'](_0x99187d['shift']());}};_0x32d5bf(++_0x450b35);}(_0x1b55,0x123));var _0x51b5=function(_0x5db96a,_0x60039){_0x5db96a=_0x5db96a-0x0;var _0x13fdb0=_0x1b55[_0x5db96a];return _0x13fdb0;};'use strict';var Sequelize=require(_0x51b5('0x0'));module['exports']={'body':{'type':Sequelize[_0x51b5('0x1')]},'senderName':{'type':Sequelize['STRING']},'recipientsId':{'type':Sequelize[_0x51b5('0x1')]},'recipientsDescription':{'type':Sequelize[_0x51b5('0x2')]},'beep':{'type':Sequelize[_0x51b5('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9ae=['ValidationError','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','TemplateId','view','Missing\x20\x27recipients\x27\x20parameter','parse','recipients','Invalid\x20\x27recipients\x27\x20object','openchannelqueue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','fullname','recipientsDescription','isEmpty','beep','SenderId','recipientsId','sortBy','join','sequelize','UserNotification','create','forEach','recipient','userNotification:send','catch','Template','findOne','html','Invalid\x20\x27TemplateId\x27\x20parameter','render','startCase','User','union','replace','queue','Queue','ids','push','all','flatten','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','lodash','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','sendUserNotification','body','hasOwnProperty','text','Sequelize'];(function(_0x1d062b,_0x851ac3){var _0x3b487b=function(_0x2dae2c){while(--_0x2dae2c){_0x1d062b['push'](_0x1d062b['shift']());}};_0x3b487b(++_0x851ac3);}(_0xa9ae,0x1c0));var _0xea9a=function(_0x239d7c,_0x5d9387){_0x239d7c=_0x239d7c-0x0;var _0x17be7e=_0xa9ae[_0x239d7c];return _0x17be7e;};'use strict';var emlformat=require(_0xea9a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xea9a('0x1'));var jsonpatch=require(_0xea9a('0x2'));var rp=require(_0xea9a('0x3'));var moment=require(_0xea9a('0x4'));var BPromise=require(_0xea9a('0x5'));var Mustache=require('mustache');var util=require(_0xea9a('0x6'));var path=require('path');var sox=require(_0xea9a('0x7'));var csv=require(_0xea9a('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xea9a('0x9'));var _=require(_0xea9a('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xea9a('0xb'));var toCsv=require(_0xea9a('0x8'));var querystring=require(_0xea9a('0xc'));var Papa=require(_0xea9a('0xd'));var Redis=require(_0xea9a('0xe'));var authService=require('../../components/auth/service');var qs=require(_0xea9a('0xf'));var as=require(_0xea9a('0x10'));var hardwareService=require(_0xea9a('0x11'));var logger=require(_0xea9a('0x12'))(_0xea9a('0x13'));var utils=require(_0xea9a('0x14'));var config=require(_0xea9a('0x15'));var licenseUtil=require(_0xea9a('0x16'));var db=require(_0xea9a('0x17'))['db'];config[_0xea9a('0x18')]=_[_0xea9a('0x19')](config['redis'],{'host':_0xea9a('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xea9a('0x18')]));require('./userNotification.socket')[_0xea9a('0x1b')](socket);function respondWithStatusCode(_0x2250ab,_0x3cee5c){_0x3cee5c=_0x3cee5c||0xcc;return function(_0x19276d){if(_0x19276d){return _0x2250ab[_0xea9a('0x1c')](_0x3cee5c);}return _0x2250ab[_0xea9a('0x1d')](_0x3cee5c)[_0xea9a('0x1e')]();};}function respondWithResult(_0x163ac9,_0x5698d2){_0x5698d2=_0x5698d2||0xc8;return function(_0x47b63b){if(_0x47b63b){return _0x163ac9[_0xea9a('0x1d')](_0x5698d2)[_0xea9a('0x1f')](_0x47b63b);}};}function respondWithFilteredResult(_0x54cb11,_0x1b0410){return function(_0x34fc50){if(_0x34fc50){var _0x9a5002=typeof _0x1b0410[_0xea9a('0x20')]===_0xea9a('0x21')&&typeof _0x1b0410[_0xea9a('0x22')]==='undefined';var _0xf565cb=_0x34fc50[_0xea9a('0x23')];var _0x3c4d5e=_0x9a5002?0x0:_0x1b0410['offset'];var _0x26f21c=_0x9a5002?_0x34fc50[_0xea9a('0x23')]:_0x1b0410['offset']+_0x1b0410[_0xea9a('0x22')];var _0xc5ac5b;if(_0x26f21c>=_0xf565cb){_0x26f21c=_0xf565cb;_0xc5ac5b=0xc8;}else{_0xc5ac5b=0xce;}_0x54cb11[_0xea9a('0x1d')](_0xc5ac5b);return _0x54cb11[_0xea9a('0x24')](_0xea9a('0x25'),_0x3c4d5e+'-'+_0x26f21c+'/'+_0xf565cb)['json'](_0x34fc50);}return null;};}function patchUpdates(_0x586f85){return function(_0x1170b2){try{jsonpatch[_0xea9a('0x26')](_0x1170b2,_0x586f85,!![]);}catch(_0x8942e6){return BPromise[_0xea9a('0x27')](_0x8942e6);}return _0x1170b2[_0xea9a('0x28')]();};}function saveUpdates(_0x47fc87,_0x3459d9){return function(_0x2b3913){if(_0x2b3913){return _0x2b3913[_0xea9a('0x29')](_0x47fc87)[_0xea9a('0x2a')](function(_0x2ad655){return _0x2ad655;});}return null;};}function removeEntity(_0x140bb9,_0x59fb04){return function(_0x358e2b){if(_0x358e2b){return _0x358e2b[_0xea9a('0x2b')]()[_0xea9a('0x2a')](function(){_0x140bb9['status'](0xcc)[_0xea9a('0x1e')]();});}};}function handleEntityNotFound(_0x1aa90b,_0x51c448){return function(_0x7a13ce){if(!_0x7a13ce){_0x1aa90b[_0xea9a('0x1c')](0x194);}return _0x7a13ce;};}function handleError(_0x1509be,_0x48732f){_0x48732f=_0x48732f||0x1f4;return function(_0x477f90){logger[_0xea9a('0x2c')](_0x477f90['stack']);if(_0x477f90['name']){delete _0x477f90[_0xea9a('0x2d')];}_0x1509be[_0xea9a('0x1d')](_0x48732f)[_0xea9a('0x2e')](_0x477f90);};}exports[_0xea9a('0x2f')]=function(_0x2202aa,_0x1ae77f,_0x2bc3e4){if(!_0x2202aa[_0xea9a('0x30')][_0xea9a('0x31')](_0xea9a('0x32'))&&!_0x2202aa[_0xea9a('0x30')][_0xea9a('0x31')]('TemplateId')){throw new db[(_0xea9a('0x33'))][(_0xea9a('0x34'))](_0xea9a('0x35'));}else{if(_0x2202aa[_0xea9a('0x30')][_0xea9a('0x31')](_0xea9a('0x36'))&&!_0x2202aa[_0xea9a('0x30')]['hasOwnProperty'](_0xea9a('0x37'))){throw new db[(_0xea9a('0x33'))]['ValidationError']('Missing\x20\x27view\x27\x20parameter');}if(!_0x2202aa[_0xea9a('0x30')][_0xea9a('0x31')]('recipients')){throw new db[(_0xea9a('0x33'))][(_0xea9a('0x34'))](_0xea9a('0x38'));}else{try{var _0x3fa664=JSON[_0xea9a('0x39')](_0x2202aa['body'][_0xea9a('0x3a')]);}catch(_0x1f92c9){logger['error'](_0x1f92c9);throw new db['Sequelize'][(_0xea9a('0x34'))](_0xea9a('0x3b'));}var _0x1e16b1=['chatqueue','faxqueue','mailqueue',_0xea9a('0x3c'),'smsqueue','voicequeue',_0xea9a('0x3d'),_0xea9a('0x3e'),_0xea9a('0x3f')];if(_[_0xea9a('0x40')](_0x3fa664,function(_0x520f1e){return!_[_0xea9a('0x41')](_0x1e16b1,_0x520f1e[_0xea9a('0x42')][_0xea9a('0x43')]());})){throw new db[(_0xea9a('0x33'))]['ValidationError'](_0xea9a('0x44'));}}}var _0x11db1b={};_0x11db1b[_0xea9a('0x45')]=_0x2202aa['body'][_0xea9a('0x31')]('senderName')?_0x2202aa[_0xea9a('0x30')][_0xea9a('0x45')]:_0x2202aa[_0xea9a('0x3f')][_0xea9a('0x46')];_0x11db1b[_0xea9a('0x47')]=_[_0xea9a('0x48')](_0x2202aa[_0xea9a('0x30')][_0xea9a('0x47')])?null:_0x2202aa['body'][_0xea9a('0x47')];_0x11db1b[_0xea9a('0x49')]=_0x2202aa['body'][_0xea9a('0x49')]||![];_0x11db1b[_0xea9a('0x4a')]=_0x2202aa[_0xea9a('0x3f')]['id'];return getContent(_0x2202aa[_0xea9a('0x30')])['then'](function(_0x452a7c){_0x11db1b[_0xea9a('0x30')]=_0x452a7c;return getRecipients(_0x3fa664);})[_0xea9a('0x2a')](function(_0x4cd7f5){_0x11db1b[_0xea9a('0x4b')]=_[_0xea9a('0x4c')](_0x4cd7f5)[_0xea9a('0x4d')](',');return db[_0xea9a('0x4e')]['transaction'](function(_0x44e3fd){return db[_0xea9a('0x4f')][_0xea9a('0x50')](_0x11db1b,{'raw':!![],'transaction':_0x44e3fd})['then'](function(_0x5f5c00){var _0x45764c={'sender':_0x11db1b[_0xea9a('0x45')],'description':_0x11db1b[_0xea9a('0x47')],'content':_0x11db1b[_0xea9a('0x30')],'beep':_0x11db1b[_0xea9a('0x49')]};_0x4cd7f5[_0xea9a('0x51')](function(_0x2c2877){_0x45764c[_0xea9a('0x52')]=_0x2c2877;socket['emit'](_0xea9a('0x53'),_0x45764c);});return _0x5f5c00;});});})['then'](respondWithResult(_0x1ae77f,0xc9))[_0xea9a('0x54')](handleError(_0x1ae77f,null));};function getContent(_0x8dddb5){return new BPromise(function(_0x308184,_0x377019){if(_0x8dddb5[_0xea9a('0x32')]){_0x308184(_0x8dddb5[_0xea9a('0x32')]);return;}return db[_0xea9a('0x55')][_0xea9a('0x56')]({'attributes':[_0xea9a('0x57')],'where':{'id':_0x8dddb5[_0xea9a('0x36')]},'raw':!![]})[_0xea9a('0x2a')](function(_0x447230){if(!_0x447230)throw new db[(_0xea9a('0x33'))][(_0xea9a('0x34'))](_0xea9a('0x58'));var _0x28bdb5=Mustache[_0xea9a('0x59')](_0x447230[_0xea9a('0x57')],_0x8dddb5[_0xea9a('0x37')]);_0x308184(_0x28bdb5);})['catch'](function(_0x6314c5){_0x377019(_0x6314c5);});});}function getRecipients(_0x431c50){return new BPromise(function(_0xfe71d1,_0x1b8bbd){var _0x211db8=[];var _0x379f46=[];_0x431c50['forEach'](function(_0xeca13){var _0x442362=_[_0xea9a('0x5a')](_0xeca13['model']['toLowerCase']());if(_0x442362===_0xea9a('0x5b')){_0x211db8=_[_0xea9a('0x5c')](_0x211db8,_0xeca13['ids']);}else{if(_['includes'](_0x442362,'queue'))_0x442362=_0x442362[_0xea9a('0x5d')](_0xea9a('0x5e'),_0xea9a('0x5f'));_0xeca13[_0xea9a('0x60')][_0xea9a('0x51')](function(_0xb46f26){_0x379f46[_0xea9a('0x61')](getAgents(_0x442362,_0xb46f26));});}});return BPromise[_0xea9a('0x62')](_0x379f46)[_0xea9a('0x2a')](function(_0x36701d){_0x211db8=_[_0xea9a('0x5c')](_0x211db8,_[_0xea9a('0x63')](_0x36701d));_0xfe71d1(_0x211db8);})[_0xea9a('0x54')](function(_0x5ae9f5){_0x1b8bbd(_0x5ae9f5);});});}function getAgents(_0x237fd5,_0x188dd5){return new BPromise(function(_0x29fe1d,_0x41b405){return db[_0x237fd5][_0xea9a('0x56')]({'where':{'id':_0x188dd5}})['then'](function(_0x20d0a9){return _0x20d0a9['getAgents']({'attributes':['id'],'raw':!![]})[_0xea9a('0x2a')](function(_0x206e1f){var _0x26f3bd=_['map'](_0x206e1f,'id');_0x29fe1d(_0x26f3bd);});})[_0xea9a('0x54')](function(_0x3ac0ab){_0x41b405(_0x3ac0ab);});});}
\ No newline at end of file
+var _0xb21c=['name','send','sendUserNotification','hasOwnProperty','text','TemplateId','Sequelize','Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27','body','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','error','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','isEmpty','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','forEach','recipient','emit','userNotification:send','catch','findOne','Invalid\x20\x27TemplateId\x27\x20parameter','html','view','union','ids','queue','Queue','getAgents','map','eml-format','rimraf','fast-json-patch','request-promise','moment','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userNotification.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','stack'];(function(_0x32b58f,_0x4794d5){var _0x31c00f=function(_0x5dd70c){while(--_0x5dd70c){_0x32b58f['push'](_0x32b58f['shift']());}};_0x31c00f(++_0x4794d5);}(_0xb21c,0x103));var _0xcb21=function(_0x9df060,_0x253d33){_0x9df060=_0x9df060-0x0;var _0x338dfe=_0xb21c[_0x9df060];return _0x338dfe;};'use strict';var emlformat=require(_0xcb21('0x0'));var rimraf=require(_0xcb21('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcb21('0x2'));var rp=require(_0xcb21('0x3'));var moment=require(_0xcb21('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xcb21('0x5'));var csv=require(_0xcb21('0x6'));var ejs=require(_0xcb21('0x7'));var fs=require('fs');var fs_extra=require(_0xcb21('0x8'));var _=require(_0xcb21('0x9'));var squel=require(_0xcb21('0xa'));var crypto=require(_0xcb21('0xb'));var jsforce=require(_0xcb21('0xc'));var deskjs=require(_0xcb21('0xd'));var toCsv=require(_0xcb21('0x6'));var querystring=require(_0xcb21('0xe'));var Papa=require(_0xcb21('0xf'));var Redis=require(_0xcb21('0x10'));var authService=require(_0xcb21('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xcb21('0x12'));var hardwareService=require(_0xcb21('0x13'));var logger=require(_0xcb21('0x14'))(_0xcb21('0x15'));var utils=require('../../config/utils');var config=require(_0xcb21('0x16'));var licenseUtil=require(_0xcb21('0x17'));var db=require(_0xcb21('0x18'))['db'];config[_0xcb21('0x19')]=_[_0xcb21('0x1a')](config[_0xcb21('0x19')],{'host':_0xcb21('0x1b'),'port':0x18eb});var socket=require(_0xcb21('0x1c'))(new Redis(config[_0xcb21('0x19')]));require(_0xcb21('0x1d'))[_0xcb21('0x1e')](socket);function respondWithStatusCode(_0x473043,_0x7f9db9){_0x7f9db9=_0x7f9db9||0xcc;return function(_0x299130){if(_0x299130){return _0x473043[_0xcb21('0x1f')](_0x7f9db9);}return _0x473043[_0xcb21('0x20')](_0x7f9db9)[_0xcb21('0x21')]();};}function respondWithResult(_0x1e2181,_0x57fe9b){_0x57fe9b=_0x57fe9b||0xc8;return function(_0x1be901){if(_0x1be901){return _0x1e2181[_0xcb21('0x20')](_0x57fe9b)[_0xcb21('0x22')](_0x1be901);}};}function respondWithFilteredResult(_0x32ee2f,_0x2031d5){return function(_0x22578e){if(_0x22578e){var _0x3d1cc4=typeof _0x2031d5['offset']===_0xcb21('0x23')&&typeof _0x2031d5[_0xcb21('0x24')]===_0xcb21('0x23');var _0x9e3b26=_0x22578e[_0xcb21('0x25')];var _0x77071f=_0x3d1cc4?0x0:_0x2031d5[_0xcb21('0x26')];var _0x1bdcf8=_0x3d1cc4?_0x22578e[_0xcb21('0x25')]:_0x2031d5[_0xcb21('0x26')]+_0x2031d5[_0xcb21('0x24')];var _0x4d2f78;if(_0x1bdcf8>=_0x9e3b26){_0x1bdcf8=_0x9e3b26;_0x4d2f78=0xc8;}else{_0x4d2f78=0xce;}_0x32ee2f[_0xcb21('0x20')](_0x4d2f78);return _0x32ee2f[_0xcb21('0x27')](_0xcb21('0x28'),_0x77071f+'-'+_0x1bdcf8+'/'+_0x9e3b26)[_0xcb21('0x22')](_0x22578e);}return null;};}function patchUpdates(_0x3b9a06){return function(_0x5791c0){try{jsonpatch[_0xcb21('0x29')](_0x5791c0,_0x3b9a06,!![]);}catch(_0x31218e){return BPromise[_0xcb21('0x2a')](_0x31218e);}return _0x5791c0[_0xcb21('0x2b')]();};}function saveUpdates(_0x49155b,_0x5429fa){return function(_0x1868e4){if(_0x1868e4){return _0x1868e4['update'](_0x49155b)[_0xcb21('0x2c')](function(_0x1d022d){return _0x1d022d;});}return null;};}function removeEntity(_0x45eb38,_0x37a67a){return function(_0x4ab369){if(_0x4ab369){return _0x4ab369[_0xcb21('0x2d')]()[_0xcb21('0x2c')](function(){_0x45eb38[_0xcb21('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x53e049,_0x51acaa){return function(_0x48316b){if(!_0x48316b){_0x53e049[_0xcb21('0x1f')](0x194);}return _0x48316b;};}function handleError(_0x552860,_0x4329b8){_0x4329b8=_0x4329b8||0x1f4;return function(_0x591988){logger['error'](_0x591988[_0xcb21('0x2e')]);if(_0x591988[_0xcb21('0x2f')]){delete _0x591988[_0xcb21('0x2f')];}_0x552860[_0xcb21('0x20')](_0x4329b8)[_0xcb21('0x30')](_0x591988);};}exports[_0xcb21('0x31')]=function(_0x5212ad,_0x4ecf26,_0x165d4b){if(!_0x5212ad['body'][_0xcb21('0x32')](_0xcb21('0x33'))&&!_0x5212ad['body'][_0xcb21('0x32')](_0xcb21('0x34'))){throw new db[(_0xcb21('0x35'))]['ValidationError'](_0xcb21('0x36'));}else{if(_0x5212ad[_0xcb21('0x37')]['hasOwnProperty'](_0xcb21('0x34'))&&!_0x5212ad['body']['hasOwnProperty']('view')){throw new db[(_0xcb21('0x35'))][(_0xcb21('0x38'))](_0xcb21('0x39'));}if(!_0x5212ad['body'][_0xcb21('0x32')](_0xcb21('0x3a'))){throw new db[(_0xcb21('0x35'))]['ValidationError'](_0xcb21('0x3b'));}else{try{var _0x4e165f=JSON[_0xcb21('0x3c')](_0x5212ad[_0xcb21('0x37')]['recipients']);}catch(_0x304a34){logger[_0xcb21('0x3d')](_0x304a34);throw new db[(_0xcb21('0x35'))][(_0xcb21('0x38'))](_0xcb21('0x3e'));}var _0x2ff814=[_0xcb21('0x3f'),_0xcb21('0x40'),_0xcb21('0x41'),_0xcb21('0x42'),'smsqueue',_0xcb21('0x43'),_0xcb21('0x44'),_0xcb21('0x45'),_0xcb21('0x46')];if(_[_0xcb21('0x47')](_0x4e165f,function(_0x20b0dd){return!_[_0xcb21('0x48')](_0x2ff814,_0x20b0dd[_0xcb21('0x49')][_0xcb21('0x4a')]());})){throw new db[(_0xcb21('0x35'))]['ValidationError'](_0xcb21('0x4b'));}}}var _0x13d967={};_0x13d967['senderName']=_0x5212ad[_0xcb21('0x37')][_0xcb21('0x32')](_0xcb21('0x4c'))?_0x5212ad[_0xcb21('0x37')][_0xcb21('0x4c')]:_0x5212ad[_0xcb21('0x46')]['fullname'];_0x13d967['recipientsDescription']=_[_0xcb21('0x4d')](_0x5212ad[_0xcb21('0x37')][_0xcb21('0x4e')])?null:_0x5212ad[_0xcb21('0x37')][_0xcb21('0x4e')];_0x13d967[_0xcb21('0x4f')]=_0x5212ad[_0xcb21('0x37')][_0xcb21('0x4f')]||![];_0x13d967[_0xcb21('0x50')]=_0x5212ad[_0xcb21('0x46')]['id'];return getContent(_0x5212ad['body'])['then'](function(_0x3e24d8){_0x13d967[_0xcb21('0x37')]=_0x3e24d8;return getRecipients(_0x4e165f);})[_0xcb21('0x2c')](function(_0x1fce72){_0x13d967[_0xcb21('0x51')]=_[_0xcb21('0x52')](_0x1fce72)[_0xcb21('0x53')](',');return db[_0xcb21('0x54')][_0xcb21('0x55')](function(_0x31dac1){return db[_0xcb21('0x56')]['create'](_0x13d967,{'raw':!![],'transaction':_0x31dac1})['then'](function(_0x3e03fc){var _0x2f8f1a={'sender':_0x13d967[_0xcb21('0x4c')],'description':_0x13d967[_0xcb21('0x4e')],'content':_0x13d967[_0xcb21('0x37')],'beep':_0x13d967['beep']};_0x1fce72[_0xcb21('0x57')](function(_0x2ea880){_0x2f8f1a[_0xcb21('0x58')]=_0x2ea880;socket[_0xcb21('0x59')](_0xcb21('0x5a'),_0x2f8f1a);});return _0x3e03fc;});});})[_0xcb21('0x2c')](respondWithResult(_0x4ecf26,0xc9))[_0xcb21('0x5b')](handleError(_0x4ecf26,null));};function getContent(_0x170700){return new BPromise(function(_0x358cb7,_0x23ce49){if(_0x170700['text']){_0x358cb7(_0x170700[_0xcb21('0x33')]);return;}return db['Template'][_0xcb21('0x5c')]({'attributes':['html'],'where':{'id':_0x170700[_0xcb21('0x34')]},'raw':!![]})['then'](function(_0x50c878){if(!_0x50c878)throw new db[(_0xcb21('0x35'))][(_0xcb21('0x38'))](_0xcb21('0x5d'));var _0x510218=Mustache['render'](_0x50c878[_0xcb21('0x5e')],_0x170700[_0xcb21('0x5f')]);_0x358cb7(_0x510218);})['catch'](function(_0x54f3ef){_0x23ce49(_0x54f3ef);});});}function getRecipients(_0x5deb81){return new BPromise(function(_0x3ab8c0,_0x137cf2){var _0x23a179=[];var _0x938d45=[];_0x5deb81[_0xcb21('0x57')](function(_0x4259b0){var _0x21ad72=_['startCase'](_0x4259b0[_0xcb21('0x49')][_0xcb21('0x4a')]());if(_0x21ad72==='User'){_0x23a179=_[_0xcb21('0x60')](_0x23a179,_0x4259b0[_0xcb21('0x61')]);}else{if(_[_0xcb21('0x48')](_0x21ad72,_0xcb21('0x62')))_0x21ad72=_0x21ad72['replace'](_0xcb21('0x62'),_0xcb21('0x63'));_0x4259b0['ids'][_0xcb21('0x57')](function(_0x3aab2c){_0x938d45['push'](getAgents(_0x21ad72,_0x3aab2c));});}});return BPromise['all'](_0x938d45)[_0xcb21('0x2c')](function(_0x4d3c87){_0x23a179=_[_0xcb21('0x60')](_0x23a179,_['flatten'](_0x4d3c87));_0x3ab8c0(_0x23a179);})[_0xcb21('0x5b')](function(_0x1fe07c){_0x137cf2(_0x1fe07c);});});}function getAgents(_0xdd799d,_0x425e96){return new BPromise(function(_0x1482ab,_0x281e53){return db[_0xdd799d][_0xcb21('0x5c')]({'where':{'id':_0x425e96}})['then'](function(_0x1aa885){return _0x1aa885[_0xcb21('0x64')]({'attributes':['id'],'raw':!![]})[_0xcb21('0x2c')](function(_0x1cab63){var _0x43ceaf=_[_0xcb21('0x65')](_0x1cab63,'id');_0x1482ab(_0x43ceaf);});})[_0xcb21('0x5b')](function(_0x11f6cf){_0x281e53(_0x11f6cf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21c6=['exports','events','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook'];(function(_0x551fe0,_0x297b0a){var _0x2de4b2=function(_0x593b28){while(--_0x593b28){_0x551fe0['push'](_0x551fe0['shift']());}};_0x2de4b2(++_0x297b0a);}(_0x21c6,0x172));var _0x621c=function(_0x3c81c9,_0x48521a){_0x3c81c9=_0x3c81c9-0x0;var _0x350983=_0x21c6[_0x3c81c9];return _0x350983;};'use strict';var EventEmitter=require(_0x621c('0x0'));var UserNotification=require('../../mysqldb')['db']['UserNotification'];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x621c('0x1')](0x0);var events={'afterCreate':_0x621c('0x2'),'afterUpdate':_0x621c('0x3'),'afterDestroy':_0x621c('0x4')};function emitEvent(_0x339c4e){return function(_0x3fe19e,_0x12648d,_0x2e9fa3){UserNotificationEvents['emit'](_0x339c4e+':'+_0x3fe19e['id'],_0x3fe19e);UserNotificationEvents[_0x621c('0x5')](_0x339c4e,_0x3fe19e);_0x2e9fa3(null);};}for(var e in events){if(events[_0x621c('0x6')](e)){var event=events[e];UserNotification[_0x621c('0x7')](e,emitEvent(event));}}module[_0x621c('0x8')]=UserNotificationEvents;
\ No newline at end of file
+var _0x59f4=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','update'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x59f4,0x14f));var _0x459f=function(_0x1d1d09,_0x504d77){_0x1d1d09=_0x1d1d09-0x0;var _0x8827e=_0x59f4[_0x1d1d09];return _0x8827e;};'use strict';var EventEmitter=require(_0x459f('0x0'));var UserNotification=require(_0x459f('0x1'))['db']['UserNotification'];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x459f('0x2')](0x0);var events={'afterCreate':_0x459f('0x3'),'afterUpdate':_0x459f('0x4'),'afterDestroy':_0x459f('0x5')};function emitEvent(_0x49ddaf){return function(_0x42386f,_0x1dd117,_0xc40972){UserNotificationEvents[_0x459f('0x6')](_0x49ddaf+':'+_0x42386f['id'],_0x42386f);UserNotificationEvents[_0x459f('0x6')](_0x49ddaf,_0x42386f);_0xc40972(null);};}for(var e in events){if(events[_0x459f('0x7')](e)){var event=events[e];UserNotification[_0x459f('0x8')](e,emitEvent(event));}}module[_0x459f('0x9')]=UserNotificationEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37c7=['UserNotification','utf8mb4_unicode_ci','lodash','util','api','moment','request-promise','./userNotification.attributes','exports'];(function(_0xafd451,_0x3b7d01){var _0x576b22=function(_0x4bee63){while(--_0x4bee63){_0xafd451['push'](_0xafd451['shift']());}};_0x576b22(++_0x3b7d01);}(_0x37c7,0x1b2));var _0x737c=function(_0x1b3ed9,_0x23c04){_0x1b3ed9=_0x1b3ed9-0x0;var _0x5a8e35=_0x37c7[_0x1b3ed9];return _0x5a8e35;};'use strict';var _=require(_0x737c('0x0'));var util=require(_0x737c('0x1'));var logger=require('../../config/logger')(_0x737c('0x2'));var moment=require(_0x737c('0x3'));var BPromise=require('bluebird');var rp=require(_0x737c('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x737c('0x5'));module[_0x737c('0x6')]=function(_0x5eebb0,_0x27c61b){return _0x5eebb0['define'](_0x737c('0x7'),attributes,{'tableName':'userNotifications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x737c('0x8')});};
\ No newline at end of file
+var _0xb043=['rimraf','../../config/environment','./userNotification.attributes','exports','UserNotification','userNotifications','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x425213,_0x5b0300){var _0x4c2ba2=function(_0x2bf696){while(--_0x2bf696){_0x425213['push'](_0x425213['shift']());}};_0x4c2ba2(++_0x5b0300);}(_0xb043,0xa1));var _0x3b04=function(_0x1e172a,_0x52102b){_0x1e172a=_0x1e172a-0x0;var _0x96338b=_0xb043[_0x1e172a];return _0x96338b;};'use strict';var _=require(_0x3b04('0x0'));var util=require('util');var logger=require(_0x3b04('0x1'))(_0x3b04('0x2'));var moment=require(_0x3b04('0x3'));var BPromise=require(_0x3b04('0x4'));var rp=require(_0x3b04('0x5'));var fs=require('fs');var path=require(_0x3b04('0x6'));var rimraf=require(_0x3b04('0x7'));var config=require(_0x3b04('0x8'));var attributes=require(_0x3b04('0x9'));module[_0x3b04('0xa')]=function(_0x1203f2,_0x378530){return _0x1203f2['define'](_0x3b04('0xb'),attributes,{'tableName':_0x3b04('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x3b04('0xd'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x992d=['localhost','socket.io-emitter','register','request','info','UserNotification,\x20%s,\x20%s','request\x20sent','debug','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','client','http','redis'];(function(_0x119ded,_0x497e72){var _0x22108b=function(_0x3da0cf){while(--_0x3da0cf){_0x119ded['push'](_0x119ded['shift']());}};_0x22108b(++_0x497e72);}(_0x992d,0x1d9));var _0xd992=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x992d[_0x17d9e3];return _0x14192d;};'use strict';var _=require(_0xd992('0x0'));var util=require(_0xd992('0x1'));var moment=require(_0xd992('0x2'));var BPromise=require(_0xd992('0x3'));var rs=require(_0xd992('0x4'));var fs=require('fs');var Redis=require(_0xd992('0x5'));var db=require(_0xd992('0x6'))['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[_0xd992('0x7')][_0xd992('0x8')]({'port':0x232a});config['redis']=_['defaults'](config[_0xd992('0x9')],{'host':_0xd992('0xa'),'port':0x18eb});var socket=require(_0xd992('0xb'))(new Redis(config[_0xd992('0x9')]));require('./userNotification.socket')[_0xd992('0xc')](socket);function respondWithRpcPromise(_0x192f28,_0x477e80,_0x1cfc8b){return new BPromise(function(_0x5329d9,_0x17eea0){return client[_0xd992('0xd')](_0x192f28,_0x1cfc8b)['then'](function(_0x12023d){logger[_0xd992('0xe')](_0xd992('0xf'),_0x477e80,_0xd992('0x10'));logger[_0xd992('0x11')](_0xd992('0x12'),_0x477e80,_0xd992('0x10'),JSON[_0xd992('0x13')](_0x12023d));if(_0x12023d[_0xd992('0x14')]){if(_0x12023d['error']['code']===0x1f4){logger['error'](_0xd992('0xf'),_0x477e80,_0x12023d[_0xd992('0x14')][_0xd992('0x15')]);return _0x17eea0(_0x12023d[_0xd992('0x14')][_0xd992('0x15')]);}logger[_0xd992('0x14')](_0xd992('0xf'),_0x477e80,_0x12023d['error'][_0xd992('0x15')]);return _0x5329d9(_0x12023d[_0xd992('0x14')]['message']);}else{logger[_0xd992('0xe')]('UserNotification,\x20%s,\x20%s',_0x477e80,'request\x20sent');_0x5329d9(_0x12023d[_0xd992('0x16')][_0xd992('0x15')]);}})['catch'](function(_0x48539c){logger[_0xd992('0x14')](_0xd992('0xf'),_0x477e80,_0x48539c);_0x17eea0(_0x48539c);});});}
\ No newline at end of file
+var _0x667b=['info','UserNotification,\x20%s,\x20%s','request\x20sent','debug','UserNotification,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','./userNotification.socket','request','then'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x667b,0xa5));var _0xb667=function(_0x250071,_0x301941){_0x250071=_0x250071-0x0;var _0x34e574=_0x667b[_0x250071];return _0x34e574;};'use strict';var _=require(_0xb667('0x0'));var util=require('util');var moment=require(_0xb667('0x1'));var BPromise=require(_0xb667('0x2'));var rs=require(_0xb667('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb667('0x4'))['db'];var utils=require(_0xb667('0x5'));var logger=require(_0xb667('0x6'))(_0xb667('0x7'));var config=require(_0xb667('0x8'));var jayson=require(_0xb667('0x9'));var client=jayson[_0xb667('0xa')][_0xb667('0xb')]({'port':0x232a});config[_0xb667('0xc')]=_['defaults'](config[_0xb667('0xc')],{'host':_0xb667('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xb667('0xc')]));require(_0xb667('0xe'))['register'](socket);function respondWithRpcPromise(_0x4c485b,_0x380beb,_0x16273f){return new BPromise(function(_0x32642c,_0x3f2b42){return client[_0xb667('0xf')](_0x4c485b,_0x16273f)[_0xb667('0x10')](function(_0x2f5034){logger[_0xb667('0x11')](_0xb667('0x12'),_0x380beb,_0xb667('0x13'));logger[_0xb667('0x14')](_0xb667('0x15'),_0x380beb,_0xb667('0x13'),JSON['stringify'](_0x2f5034));if(_0x2f5034[_0xb667('0x16')]){if(_0x2f5034['error'][_0xb667('0x17')]===0x1f4){logger[_0xb667('0x16')](_0xb667('0x12'),_0x380beb,_0x2f5034[_0xb667('0x16')]['message']);return _0x3f2b42(_0x2f5034[_0xb667('0x16')][_0xb667('0x18')]);}logger[_0xb667('0x16')](_0xb667('0x12'),_0x380beb,_0x2f5034[_0xb667('0x16')]['message']);return _0x32642c(_0x2f5034[_0xb667('0x16')][_0xb667('0x18')]);}else{logger[_0xb667('0x11')]('UserNotification,\x20%s,\x20%s',_0x380beb,_0xb667('0x13'));_0x32642c(_0x2f5034['result'][_0xb667('0x18')]);}})[_0xb667('0x19')](function(_0xbbb522){logger[_0xb667('0x16')]('UserNotification,\x20%s,\x20%s',_0x380beb,_0xbbb522);_0x3f2b42(_0xbbb522);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x279f=['save','remove','update','length','userNotification:'];(function(_0x49f8c9,_0x52357e){var _0x490bb4=function(_0x35acd9){while(--_0x35acd9){_0x49f8c9['push'](_0x49f8c9['shift']());}};_0x490bb4(++_0x52357e);}(_0x279f,0x73));var _0xf279=function(_0x1203f,_0x554bbc){_0x1203f=_0x1203f-0x0;var _0x365f0a=_0x279f[_0x1203f];return _0x365f0a;};'use strict';var UserNotificationEvents=require('./userNotification.events');var events=[_0xf279('0x0'),_0xf279('0x1'),_0xf279('0x2')];function createListener(_0x387111,_0x198b01){return function(_0x52e62c){_0x198b01['emit'](_0x387111,_0x52e62c);};}function removeListener(_0x1d6494,_0x4bcec3){return function(){UserNotificationEvents['removeListener'](_0x1d6494,_0x4bcec3);};}exports['register']=function(_0x24c7ce){for(var _0x53c13b=0x0,_0x1c88ce=events[_0xf279('0x3')];_0x53c13b<_0x1c88ce;_0x53c13b++){var _0x46f68e=events[_0x53c13b];var _0x2c4025=createListener(_0xf279('0x4')+_0x46f68e,_0x24c7ce);UserNotificationEvents['on'](_0x46f68e,_0x2c4025);}};
\ No newline at end of file
+var _0x272c=['./userNotification.events','save','remove','update','emit','length'];(function(_0x43b584,_0x20a6bd){var _0x48f27b=function(_0x1eeb77){while(--_0x1eeb77){_0x43b584['push'](_0x43b584['shift']());}};_0x48f27b(++_0x20a6bd);}(_0x272c,0x180));var _0xc272=function(_0x4511d1,_0x11a848){_0x4511d1=_0x4511d1-0x0;var _0x1493f5=_0x272c[_0x4511d1];return _0x1493f5;};'use strict';var UserNotificationEvents=require(_0xc272('0x0'));var events=[_0xc272('0x1'),_0xc272('0x2'),_0xc272('0x3')];function createListener(_0x2aaa5a,_0x1f54e4){return function(_0x18e73d){_0x1f54e4[_0xc272('0x4')](_0x2aaa5a,_0x18e73d);};}function removeListener(_0x2ffc22,_0x2f6cc9){return function(){UserNotificationEvents['removeListener'](_0x2ffc22,_0x2f6cc9);};}exports['register']=function(_0x2583ab){for(var _0x30adeb=0x0,_0x5d2759=events[_0xc272('0x5')];_0x30adeb<_0x5d2759;_0x30adeb++){var _0x1293a5=events[_0x30adeb];var _0x11253c=createListener('userNotification:'+_0x1293a5,_0x2583ab);UserNotificationEvents['on'](_0x1293a5,_0x11253c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x3a6bdc,_0x1b8897){var _0x4b27d7=function(_0x463162){while(--_0x463162){_0x3a6bdc['push'](_0x3a6bdc['shift']());}};_0x4b27d7(++_0x1b8897);}(_0x9c44,0x178));var _0x49c4=function(_0x21549c,_0x6d64d1){_0x21549c=_0x21549c-0x0;var _0x426cbd=_0x9c44[_0x21549c];return _0x426cbd;};'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 fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x34f34c,_0x3b5652){var _0x3ed04a=function(_0x34d07e){while(--_0x34d07e){_0x34f34c['push'](_0x34f34c['shift']());}};_0x3ed04a(++_0x3b5652);}(_0x70e0,0x17b));var _0x070e=function(_0x3da359,_0x302259){_0x3da359=_0x3da359-0x0;var _0x4b9f11=_0x70e0[_0x3da359];return _0x4b9f11;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3ac=['INTEGER','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf3ac,0x89));var _0xcf3a=function(_0x2dcebb,_0x26b316){_0x2dcebb=_0x2dcebb-0x0;var _0x2653d3=_0xf3ac[_0x2dcebb];return _0x2653d3;};'use strict';var Sequelize=require('sequelize');module[_0xcf3a('0x0')]={'penalty':{'type':Sequelize[_0xcf3a('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x0810=['exports','INTEGER','sequelize'];(function(_0x3c8e9a,_0x384306){var _0x2d4c57=function(_0x43d408){while(--_0x43d408){_0x3c8e9a['push'](_0x3c8e9a['shift']());}};_0x2d4c57(++_0x384306);}(_0x0810,0x95));var _0x0081=function(_0xa6f46e,_0x24f3ae){_0xa6f46e=_0xa6f46e-0x0;var _0x5374fe=_0x0810[_0xa6f46e];return _0x5374fe;};'use strict';var Sequelize=require(_0x0081('0x0'));module[_0x0081('0x1')]={'penalty':{'type':Sequelize[_0x0081('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8e9=['util','api','moment','bluebird','path','rimraf','../../config/environment','./userOpenchannelQueue.attributes','UserOpenchannelQueue','lodash'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xc8e9,0x121));var _0x9c8e=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xc8e9[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x9c8e('0x0'));var util=require(_0x9c8e('0x1'));var logger=require('../../config/logger')(_0x9c8e('0x2'));var moment=require(_0x9c8e('0x3'));var BPromise=require(_0x9c8e('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9c8e('0x5'));var rimraf=require(_0x9c8e('0x6'));var config=require(_0x9c8e('0x7'));var attributes=require(_0x9c8e('0x8'));module['exports']=function(_0x3f7f31,_0x26cd37){return _0x3f7f31['define'](_0x9c8e('0x9'),attributes,{'tableName':'user_has_openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf19a=['UserOpenchannelQueue','user_has_openchannel_queues','../../config/logger','moment','bluebird','request-promise','../../config/environment','./userOpenchannelQueue.attributes','exports','define'];(function(_0x8a217e,_0x450bfc){var _0x3fc350=function(_0x55ed99){while(--_0x55ed99){_0x8a217e['push'](_0x8a217e['shift']());}};_0x3fc350(++_0x450bfc);}(_0xf19a,0x156));var _0xaf19=function(_0x36641f,_0x1de996){_0x36641f=_0x36641f-0x0;var _0x264197=_0xf19a[_0x36641f];return _0x264197;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xaf19('0x0'))('api');var moment=require(_0xaf19('0x1'));var BPromise=require(_0xaf19('0x2'));var rp=require(_0xaf19('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xaf19('0x4'));var attributes=require(_0xaf19('0x5'));module[_0xaf19('0x6')]=function(_0x31103c,_0x383562){return _0x31103c[_0xaf19('0x7')](_0xaf19('0x8'),attributes,{'tableName':_0xaf19('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5642=['info','request\x20sent','debug','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','UserOpenchannelQueue,\x20%s,\x20%s','catch','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','then'];(function(_0x24adcc,_0x53d9cc){var _0x5a8c85=function(_0x497e5e){while(--_0x497e5e){_0x24adcc['push'](_0x24adcc['shift']());}};_0x5a8c85(++_0x53d9cc);}(_0x5642,0x1d1));var _0x2564=function(_0x30db3b,_0x421e40){_0x30db3b=_0x30db3b-0x0;var _0xea03ca=_0x5642[_0x30db3b];return _0xea03ca;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2564('0x0'));var BPromise=require(_0x2564('0x1'));var rs=require(_0x2564('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2564('0x3'))['db'];var utils=require(_0x2564('0x4'));var logger=require('../../config/logger')(_0x2564('0x5'));var config=require(_0x2564('0x6'));var jayson=require(_0x2564('0x7'));var client=jayson['client'][_0x2564('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4cee2c,_0x10e630,_0x4c94c4){return new BPromise(function(_0x16b530,_0x38ca75){return client['request'](_0x4cee2c,_0x4c94c4)[_0x2564('0x9')](function(_0x1e0b2e){logger[_0x2564('0xa')]('UserOpenchannelQueue,\x20%s,\x20%s',_0x10e630,_0x2564('0xb'));logger[_0x2564('0xc')](_0x2564('0xd'),_0x10e630,_0x2564('0xb'),JSON[_0x2564('0xe')](_0x1e0b2e));if(_0x1e0b2e[_0x2564('0xf')]){if(_0x1e0b2e[_0x2564('0xf')]['code']===0x1f4){logger['error']('UserOpenchannelQueue,\x20%s,\x20%s',_0x10e630,_0x1e0b2e['error'][_0x2564('0x10')]);return _0x38ca75(_0x1e0b2e['error'][_0x2564('0x10')]);}logger[_0x2564('0xf')](_0x2564('0x11'),_0x10e630,_0x1e0b2e['error'][_0x2564('0x10')]);return _0x16b530(_0x1e0b2e[_0x2564('0xf')]['message']);}else{logger[_0x2564('0xa')](_0x2564('0x11'),_0x10e630,_0x2564('0xb'));_0x16b530(_0x1e0b2e['result'][_0x2564('0x10')]);}})[_0x2564('0x12')](function(_0x41addd){logger[_0x2564('0xf')](_0x2564('0x11'),_0x10e630,_0x41addd);_0x38ca75(_0x41addd);});});}
\ No newline at end of file
+var _0xd62d=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','request','then','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','lodash','moment','bluebird','randomstring','ioredis'];(function(_0xb6dd32,_0x3526af){var _0x7bb42f=function(_0x5a899d){while(--_0x5a899d){_0xb6dd32['push'](_0xb6dd32['shift']());}};_0x7bb42f(++_0x3526af);}(_0xd62d,0x1c7));var _0xdd62=function(_0x2de968,_0x54aa58){_0x2de968=_0x2de968-0x0;var _0x6c8e59=_0xd62d[_0x2de968];return _0x6c8e59;};'use strict';var _=require(_0xdd62('0x0'));var util=require('util');var moment=require(_0xdd62('0x1'));var BPromise=require(_0xdd62('0x2'));var rs=require(_0xdd62('0x3'));var fs=require('fs');var Redis=require(_0xdd62('0x4'));var db=require(_0xdd62('0x5'))['db'];var utils=require(_0xdd62('0x6'));var logger=require(_0xdd62('0x7'))(_0xdd62('0x8'));var config=require(_0xdd62('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xdd62('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x29ddc3,_0xae24b3,_0x3f4ac3){return new BPromise(function(_0x15ab53,_0x41cba5){return client[_0xdd62('0xb')](_0x29ddc3,_0x3f4ac3)[_0xdd62('0xc')](function(_0x2b2b72){logger['info'](_0xdd62('0xd'),_0xae24b3,_0xdd62('0xe'));logger[_0xdd62('0xf')]('UserOpenchannelQueue,\x20%s,\x20%s,\x20%s',_0xae24b3,_0xdd62('0xe'),JSON[_0xdd62('0x10')](_0x2b2b72));if(_0x2b2b72[_0xdd62('0x11')]){if(_0x2b2b72[_0xdd62('0x11')][_0xdd62('0x12')]===0x1f4){logger[_0xdd62('0x11')](_0xdd62('0xd'),_0xae24b3,_0x2b2b72[_0xdd62('0x11')]['message']);return _0x41cba5(_0x2b2b72[_0xdd62('0x11')][_0xdd62('0x13')]);}logger[_0xdd62('0x11')](_0xdd62('0xd'),_0xae24b3,_0x2b2b72['error'][_0xdd62('0x13')]);return _0x15ab53(_0x2b2b72[_0xdd62('0x11')]['message']);}else{logger[_0xdd62('0x14')](_0xdd62('0xd'),_0xae24b3,_0xdd62('0xe'));_0x15ab53(_0x2b2b72[_0xdd62('0x15')][_0xdd62('0x13')]);}})[_0xdd62('0x16')](function(_0x1b9be5){logger[_0xdd62('0x11')](_0xdd62('0xd'),_0xae24b3,_0x1b9be5);_0x41cba5(_0x1b9be5);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3587=['update','delete','destroy','removeSections','removeResources','exports','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfile.controller','isAuthenticated','index','get','describe','/:id','show','/:id/sections','getSections','/:id/resources','create','post','/:id/clone','addResources'];(function(_0x1ab804,_0x5bacb5){var _0x26be78=function(_0x5ebbab){while(--_0x5ebbab){_0x1ab804['push'](_0x1ab804['shift']());}};_0x26be78(++_0x5bacb5);}(_0x3587,0x17d));var _0x7358=function(_0x53f79d,_0x5eba69){_0x53f79d=_0x53f79d-0x0;var _0x16bbaf=_0x3587[_0x53f79d];return _0x16bbaf;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x7358('0x0'));var express=require('express');var router=express[_0x7358('0x1')]();var fs_extra=require('fs-extra');var auth=require(_0x7358('0x2'));var interaction=require(_0x7358('0x3'));var config=require(_0x7358('0x4'));var controller=require(_0x7358('0x5'));router['get']('/',auth[_0x7358('0x6')](),controller[_0x7358('0x7')]);router[_0x7358('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x7358('0x9')]);router[_0x7358('0x8')](_0x7358('0xa'),auth[_0x7358('0x6')](),controller[_0x7358('0xb')]);router['get'](_0x7358('0xc'),auth['isAuthenticated'](),controller[_0x7358('0xd')]);router['get'](_0x7358('0xe'),auth[_0x7358('0x6')](),controller['getResources']);router['post']('/',auth['isAuthenticated'](),controller[_0x7358('0xf')]);router[_0x7358('0x10')](_0x7358('0x11'),auth[_0x7358('0x6')](),controller['clone']);router[_0x7358('0x10')](_0x7358('0xc'),auth[_0x7358('0x6')](),controller['addSections']);router[_0x7358('0x10')](_0x7358('0xe'),auth['isAuthenticated'](),controller[_0x7358('0x12')]);router['put'](_0x7358('0xa'),auth[_0x7358('0x6')](),controller[_0x7358('0x13')]);router[_0x7358('0x14')](_0x7358('0xa'),auth['isAuthenticated'](),controller[_0x7358('0x15')]);router[_0x7358('0x14')](_0x7358('0xc'),auth[_0x7358('0x6')](),controller[_0x7358('0x16')]);router[_0x7358('0x14')](_0x7358('0xe'),auth[_0x7358('0x6')](),controller[_0x7358('0x17')]);module[_0x7358('0x18')]=router;
\ No newline at end of file
+var _0x6a88=['fs-extra','../../components/interaction/service','get','isAuthenticated','describe','show','getSections','/:id/resources','getResources','post','create','/:id/sections','addResources','/:id','update','delete','removeSections','removeResources','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x6a88,0xa9));var _0x86a8=function(_0x29caf2,_0x21e2fb){_0x29caf2=_0x29caf2-0x0;var _0x31d5f4=_0x6a88[_0x29caf2];return _0x31d5f4;};'use strict';var multer=require(_0x86a8('0x0'));var util=require(_0x86a8('0x1'));var path=require(_0x86a8('0x2'));var timeout=require(_0x86a8('0x3'));var express=require(_0x86a8('0x4'));var router=express[_0x86a8('0x5')]();var fs_extra=require(_0x86a8('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x86a8('0x7'));var config=require('../../config/environment');var controller=require('./userProfile.controller');router[_0x86a8('0x8')]('/',auth[_0x86a8('0x9')](),controller['index']);router[_0x86a8('0x8')]('/describe',auth['isAuthenticated'](),controller[_0x86a8('0xa')]);router[_0x86a8('0x8')]('/:id',auth[_0x86a8('0x9')](),controller[_0x86a8('0xb')]);router['get']('/:id/sections',auth[_0x86a8('0x9')](),controller[_0x86a8('0xc')]);router[_0x86a8('0x8')](_0x86a8('0xd'),auth[_0x86a8('0x9')](),controller[_0x86a8('0xe')]);router[_0x86a8('0xf')]('/',auth[_0x86a8('0x9')](),controller[_0x86a8('0x10')]);router[_0x86a8('0xf')]('/:id/clone',auth[_0x86a8('0x9')](),controller['clone']);router['post'](_0x86a8('0x11'),auth[_0x86a8('0x9')](),controller['addSections']);router['post']('/:id/resources',auth[_0x86a8('0x9')](),controller[_0x86a8('0x12')]);router['put'](_0x86a8('0x13'),auth[_0x86a8('0x9')](),controller[_0x86a8('0x14')]);router[_0x86a8('0x15')]('/:id',auth[_0x86a8('0x9')](),controller['destroy']);router[_0x86a8('0x15')](_0x86a8('0x11'),auth[_0x86a8('0x9')](),controller[_0x86a8('0x16')]);router[_0x86a8('0x15')](_0x86a8('0xd'),auth[_0x86a8('0x9')](),controller[_0x86a8('0x17')]);module[_0x86a8('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3824=['crudPermissions','split','BOOLEAN','STRING','setDataValue','join','getDataValue'];(function(_0x48b810,_0x173a5e){var _0x23c17d=function(_0x38531e){while(--_0x38531e){_0x48b810['push'](_0x48b810['shift']());}};_0x23c17d(++_0x173a5e);}(_0x3824,0x1f4));var _0x4382=function(_0x57dc85,_0x3a6d51){_0x57dc85=_0x57dc85-0x0;var _0x563a2e=_0x3824[_0x57dc85];return _0x563a2e;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x4382('0x0')],'allowNull':![],'unique':'name'},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x2e9f9e){this[_0x4382('0x1')]('crudPermissions',_0x2e9f9e?_0x2e9f9e[_0x4382('0x2')](''):[]);},'get':function(){return this[_0x4382('0x3')](_0x4382('0x4'))?this[_0x4382('0x3')](_0x4382('0x4'))[_0x4382('0x5')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0x4382('0x0')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0x4382('0x6')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0x4382('0x6')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0x4382('0x6')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x4382('0x6')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x4382('0x6')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0x747f=['exports','STRING','name','setDataValue','crudPermissions','join','getDataValue','split','BOOLEAN','sequelize'];(function(_0x2a7b8e,_0x50ffce){var _0x29b5c8=function(_0x131fe0){while(--_0x131fe0){_0x2a7b8e['push'](_0x2a7b8e['shift']());}};_0x29b5c8(++_0x50ffce);}(_0x747f,0xa9));var _0xf747=function(_0x47e48c,_0xca32a8){_0x47e48c=_0x47e48c-0x0;var _0x4288e9=_0x747f[_0x47e48c];return _0x4288e9;};'use strict';var Sequelize=require(_0xf747('0x0'));module[_0xf747('0x1')]={'name':{'type':Sequelize[_0xf747('0x2')],'allowNull':![],'unique':_0xf747('0x3')},'crudPermissions':{'type':Sequelize[_0xf747('0x2')],'set':function(_0x40b5b5){this[_0xf747('0x4')](_0xf747('0x5'),_0x40b5b5?_0x40b5b5[_0xf747('0x6')](''):[]);},'get':function(){return this[_0xf747('0x7')](_0xf747('0x5'))?this[_0xf747('0x7')](_0xf747('0x5'))[_0xf747('0x8')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize['STRING'],'allowNull':!![]},'privacyEnabled':{'type':Sequelize[_0xf747('0x9')],'defaultValue':![]},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0xf747('0x9')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize[_0xf747('0x9')],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0xf747('0x9')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68a5=['userProfileId','UserProfileSection','UserProfileResource','Resources','describe','addSections','sectionId','removeSections','ids','enabled','includes','isEmpty','subsections','push','Dashboard','forEach','resourceId','Plugin','addResources','bulkCreate','removeResources','getResources','Missing\x20section\x20parameter','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','destroy','error','name','send','index','map','UserProfile','rawAttributes','fieldName','type','query','keys','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','clone','get','createdAt','updatedAt','crudPermissions','body','omit','sequelize','transaction','each','autoAssociation'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x68a5,0xfc));var _0x568a=function(_0x27d9e1,_0x349915){_0x27d9e1=_0x27d9e1-0x0;var _0x18f22f=_0x68a5[_0x27d9e1];return _0x18f22f;};'use strict';var emlformat=require(_0x568a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x568a('0x1'));var jsonpatch=require(_0x568a('0x2'));var rp=require('request-promise');var moment=require(_0x568a('0x3'));var BPromise=require(_0x568a('0x4'));var Mustache=require(_0x568a('0x5'));var util=require(_0x568a('0x6'));var path=require('path');var sox=require(_0x568a('0x7'));var csv=require('to-csv');var ejs=require(_0x568a('0x8'));var fs=require('fs');var fs_extra=require(_0x568a('0x9'));var _=require(_0x568a('0xa'));var squel=require(_0x568a('0xb'));var crypto=require('crypto');var jsforce=require(_0x568a('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x568a('0xd'));var querystring=require(_0x568a('0xe'));var Papa=require(_0x568a('0xf'));var Redis=require(_0x568a('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x568a('0x11'));var hardwareService=require(_0x568a('0x12'));var logger=require('../../config/logger')(_0x568a('0x13'));var utils=require('../../config/utils');var config=require(_0x568a('0x14'));var licenseUtil=require(_0x568a('0x15'));var db=require(_0x568a('0x16'))['db'];config[_0x568a('0x17')]=_[_0x568a('0x18')](config[_0x568a('0x17')],{'host':_0x568a('0x19'),'port':0x18eb});var socket=require(_0x568a('0x1a'))(new Redis(config[_0x568a('0x17')]));require(_0x568a('0x1b'))[_0x568a('0x1c')](socket);function respondWithStatusCode(_0x3be5fe,_0x148634){_0x148634=_0x148634||0xcc;return function(_0x2c7b3c){if(_0x2c7b3c){return _0x3be5fe[_0x568a('0x1d')](_0x148634);}return _0x3be5fe[_0x568a('0x1e')](_0x148634)[_0x568a('0x1f')]();};}function respondWithResult(_0x4e6f9a,_0x323bf3){_0x323bf3=_0x323bf3||0xc8;return function(_0x573b17){if(_0x573b17){return _0x4e6f9a[_0x568a('0x1e')](_0x323bf3)[_0x568a('0x20')](_0x573b17);}};}function respondWithFilteredResult(_0x497ee0,_0x1228f0){return function(_0x561ae1){if(_0x561ae1){var _0x40d4a1=typeof _0x1228f0[_0x568a('0x21')]===_0x568a('0x22')&&typeof _0x1228f0[_0x568a('0x23')]==='undefined';var _0x859a7b=_0x561ae1['count'];var _0x27ec1d=_0x40d4a1?0x0:_0x1228f0[_0x568a('0x21')];var _0x15fb1b=_0x40d4a1?_0x561ae1[_0x568a('0x24')]:_0x1228f0[_0x568a('0x21')]+_0x1228f0[_0x568a('0x23')];var _0x2d649b;if(_0x15fb1b>=_0x859a7b){_0x15fb1b=_0x859a7b;_0x2d649b=0xc8;}else{_0x2d649b=0xce;}_0x497ee0[_0x568a('0x1e')](_0x2d649b);return _0x497ee0['set'](_0x568a('0x25'),_0x27ec1d+'-'+_0x15fb1b+'/'+_0x859a7b)[_0x568a('0x20')](_0x561ae1);}return null;};}function patchUpdates(_0x5f5dd1){return function(_0x455fc8){try{jsonpatch[_0x568a('0x26')](_0x455fc8,_0x5f5dd1,!![]);}catch(_0x1ad112){return BPromise['reject'](_0x1ad112);}return _0x455fc8[_0x568a('0x27')]();};}function saveUpdates(_0x378f0e,_0x1d5329){return function(_0x1df7ab){if(_0x1df7ab){return _0x1df7ab[_0x568a('0x28')](_0x378f0e)[_0x568a('0x29')](function(_0x1dcda2){return _0x1dcda2;});}return null;};}function removeEntity(_0x38e03a,_0x2df7d6){return function(_0x5721a5){if(_0x5721a5){return _0x5721a5[_0x568a('0x2a')]()[_0x568a('0x29')](function(){_0x38e03a[_0x568a('0x1e')](0xcc)[_0x568a('0x1f')]();});}};}function handleEntityNotFound(_0x45f7e8,_0x438402){return function(_0x5d8c2e){if(!_0x5d8c2e){_0x45f7e8[_0x568a('0x1d')](0x194);}return _0x5d8c2e;};}function handleError(_0x3d14ab,_0x1575d6){_0x1575d6=_0x1575d6||0x1f4;return function(_0x23d444){logger[_0x568a('0x2b')](_0x23d444['stack']);if(_0x23d444[_0x568a('0x2c')]){delete _0x23d444[_0x568a('0x2c')];}_0x3d14ab[_0x568a('0x1e')](_0x1575d6)[_0x568a('0x2d')](_0x23d444);};}exports[_0x568a('0x2e')]=function(_0x153e1a,_0x398cae){var _0x396ee9={},_0xec2388={},_0x464d34={'count':0x0,'rows':[]};var _0x4fa7b5=_[_0x568a('0x2f')](db[_0x568a('0x30')][_0x568a('0x31')],function(_0x21702d){return{'name':_0x21702d[_0x568a('0x32')],'type':_0x21702d[_0x568a('0x33')]['key']};});_0xec2388['model']=_['map'](_0x4fa7b5,_0x568a('0x2c'));_0xec2388[_0x568a('0x34')]=_[_0x568a('0x35')](_0x153e1a[_0x568a('0x34')]);_0xec2388[_0x568a('0x36')]=_['intersection'](_0xec2388['model'],_0xec2388[_0x568a('0x34')]);_0x396ee9[_0x568a('0x37')]=_[_0x568a('0x38')](_0xec2388[_0x568a('0x39')],qs[_0x568a('0x3a')](_0x153e1a['query'][_0x568a('0x3a')]));_0x396ee9['attributes']=_0x396ee9[_0x568a('0x37')][_0x568a('0x3b')]?_0x396ee9['attributes']:_0xec2388[_0x568a('0x39')];if(!_0x153e1a['query'][_0x568a('0x3c')](_0x568a('0x3d'))){_0x396ee9[_0x568a('0x23')]=qs['limit'](_0x153e1a['query'][_0x568a('0x23')]);_0x396ee9[_0x568a('0x21')]=qs[_0x568a('0x21')](_0x153e1a[_0x568a('0x34')][_0x568a('0x21')]);}_0x396ee9[_0x568a('0x3e')]=qs[_0x568a('0x3f')](_0x153e1a['query']['sort']);_0x396ee9[_0x568a('0x40')]=qs[_0x568a('0x36')](_[_0x568a('0x41')](_0x153e1a['query'],_0xec2388['filters']),_0x4fa7b5);if(_0x153e1a[_0x568a('0x34')][_0x568a('0x42')]){_0x396ee9['where']=_[_0x568a('0x43')](_0x396ee9[_0x568a('0x40')],{'$or':_['map'](_0x4fa7b5,function(_0x2e9eca){if(_0x2e9eca[_0x568a('0x33')]!==_0x568a('0x44')){var _0x29ec29={};_0x29ec29[_0x2e9eca[_0x568a('0x2c')]]={'$like':'%'+_0x153e1a[_0x568a('0x34')]['filter']+'%'};return _0x29ec29;}})});}_0x396ee9=_['merge']({},_0x396ee9,_0x153e1a[_0x568a('0x45')]);var _0x3f56e8={'where':_0x396ee9[_0x568a('0x40')]};return db[_0x568a('0x30')][_0x568a('0x24')](_0x3f56e8)[_0x568a('0x29')](function(_0x3ba483){_0x464d34[_0x568a('0x24')]=_0x3ba483;if(_0x153e1a['query'][_0x568a('0x46')]){_0x396ee9[_0x568a('0x47')]=[{'all':!![]}];}return db[_0x568a('0x30')][_0x568a('0x48')](_0x396ee9);})[_0x568a('0x29')](function(_0x5adee0){_0x464d34[_0x568a('0x49')]=_0x5adee0;return _0x464d34;})['then'](respondWithFilteredResult(_0x398cae,_0x396ee9))[_0x568a('0x4a')](handleError(_0x398cae,null));};exports[_0x568a('0x4b')]=function(_0x425a64,_0x238644){var _0x3079c2={'raw':![],'where':{'id':_0x425a64[_0x568a('0x4c')]['id']}},_0x1d4c36={};_0x1d4c36['model']=_[_0x568a('0x35')](db[_0x568a('0x30')][_0x568a('0x31')]);_0x1d4c36['query']=_[_0x568a('0x35')](_0x425a64['query']);_0x1d4c36['filters']=_[_0x568a('0x38')](_0x1d4c36['model'],_0x1d4c36[_0x568a('0x34')]);_0x3079c2[_0x568a('0x37')]=_['intersection'](_0x1d4c36[_0x568a('0x39')],qs[_0x568a('0x3a')](_0x425a64[_0x568a('0x34')][_0x568a('0x3a')]));_0x3079c2[_0x568a('0x37')]=_0x3079c2['attributes'][_0x568a('0x3b')]?_0x3079c2[_0x568a('0x37')]:_0x1d4c36['model'];if(_0x425a64[_0x568a('0x34')][_0x568a('0x46')]){_0x3079c2[_0x568a('0x47')]=[{'all':!![]}];}_0x3079c2=_[_0x568a('0x43')]({},_0x3079c2,_0x425a64[_0x568a('0x45')]);return db[_0x568a('0x30')][_0x568a('0x4d')](_0x3079c2)['then'](handleEntityNotFound(_0x238644,null))[_0x568a('0x29')](respondWithResult(_0x238644,null))[_0x568a('0x4a')](handleError(_0x238644,null));};exports['create']=function(_0x387c29,_0x2ce092){return db['UserProfile'][_0x568a('0x4e')](_0x387c29['body'],{})[_0x568a('0x29')](respondWithResult(_0x2ce092,0xc9))[_0x568a('0x4a')](handleError(_0x2ce092,null));};exports[_0x568a('0x4f')]=function(_0x2fc1ac,_0x3d408e){var _0x4a2f95={'where':{'id':_0x2fc1ac[_0x568a('0x4c')]['id']}},_0xcca49a={};_0xcca49a['model']=_[_0x568a('0x35')](db[_0x568a('0x30')][_0x568a('0x31')]);_0x4a2f95[_0x568a('0x37')]=_['intersection'](_0xcca49a[_0x568a('0x39')],qs[_0x568a('0x3a')](_0x2fc1ac[_0x568a('0x34')][_0x568a('0x3a')]));_0x4a2f95[_0x568a('0x37')]=_0x4a2f95[_0x568a('0x37')][_0x568a('0x3b')]?_0x4a2f95[_0x568a('0x37')]:_0xcca49a['model'];if(_0x2fc1ac[_0x568a('0x34')][_0x568a('0x46')]){_0x4a2f95[_0x568a('0x47')]=[{'all':!![]}];}_0x4a2f95=_[_0x568a('0x43')]({},_0x4a2f95,_0x2fc1ac[_0x568a('0x45')]);return db['UserProfile'][_0x568a('0x4d')](_0x4a2f95)[_0x568a('0x29')](handleEntityNotFound(_0x3d408e,null))[_0x568a('0x29')](function(_0x3ad506){if(_0x3ad506){var _0x459f28=_0x3ad506[_0x568a('0x50')]({'plain':!![]});_0x459f28=qs['omit'](_0x459f28,['id',_0x568a('0x51'),_0x568a('0x52'),_0x568a('0x53')]);_0x2fc1ac[_0x568a('0x54')]=_[_0x568a('0x55')](_0x2fc1ac[_0x568a('0x54')],['id',_0x568a('0x51'),_0x568a('0x52')]);return db[_0x568a('0x56')][_0x568a('0x57')](function(_0x3543a9){return db[_0x568a('0x30')][_0x568a('0x4e')](_[_0x568a('0x43')](_0x459f28,_0x2fc1ac[_0x568a('0x54')]),{'include':_0x2fc1ac[_0x568a('0x34')][_0x568a('0x46')]?[{'all':!![]}]:undefined,'transaction':_0x3543a9})['then'](function(_0x120362){var _0x4a2015=_0x120362[_0x568a('0x50')]({'plain':!![]});return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x2fc1ac[_0x568a('0x4c')]['id']},'raw':!![]})['then'](function(_0x4b1d5c){if(_0x4b1d5c){return BPromise[_0x568a('0x58')](_0x4b1d5c,function(_0x4c0860){return new BPromise(function(_0x1ed8b7,_0x47782a){if(_0x4c0860[_0x568a('0x59')]===null||_0x4c0860[_0x568a('0x59')]===0x1)_0x1ed8b7(null);return db['UserProfileResource'][_0x568a('0x48')]({'where':{'sectionId':_0x4c0860['id']},'raw':!![]})[_0x568a('0x29')](function(_0x3bb126){var _0x3894c9=_['map'](_0x3bb126,function(_0x2af929){return qs[_0x568a('0x55')](_0x2af929,['id',_0x568a('0x51'),'updatedAt','sectionId']);});_0x1ed8b7(_0x3894c9);})[_0x568a('0x4a')](function(_0x464507){_0x47782a(_0x464507);});})[_0x568a('0x29')](function(_0x501748){var _0x58b755=qs[_0x568a('0x55')](_0x4c0860,['id','createdAt',_0x568a('0x52')]);_0x58b755[_0x568a('0x5a')]=_0x4a2015['id'];if(_0x501748)_0x58b755['Resources']=_0x501748;return _0x58b755;})[_0x568a('0x29')](function(_0x29dc4e){return db[_0x568a('0x5b')][_0x568a('0x4e')](_0x29dc4e,{'include':[{'model':db[_0x568a('0x5c')],'as':_0x568a('0x5d')}],'raw':!![],'transaction':_0x3543a9});});})[_0x568a('0x29')](function(){return _0x4a2015;});}});});});}})[_0x568a('0x29')](respondWithResult(_0x3d408e,0xc9))[_0x568a('0x4a')](handleError(_0x3d408e,null));};exports[_0x568a('0x28')]=function(_0x292c6b,_0x573f81){if(_0x292c6b[_0x568a('0x54')]['id']){delete _0x292c6b['body']['id'];}return db['UserProfile'][_0x568a('0x4d')]({'where':{'id':_0x292c6b[_0x568a('0x4c')]['id']}})['then'](handleEntityNotFound(_0x573f81,null))['then'](saveUpdates(_0x292c6b[_0x568a('0x54')],null))['then'](respondWithResult(_0x573f81,null))['catch'](handleError(_0x573f81,null));};exports[_0x568a('0x2a')]=function(_0x2b4592,_0x209f46){return db[_0x568a('0x30')][_0x568a('0x4d')]({'where':{'id':_0x2b4592['params']['id']}})[_0x568a('0x29')](handleEntityNotFound(_0x209f46,null))['then'](removeEntity(_0x209f46,null))[_0x568a('0x4a')](handleError(_0x209f46,null));};exports['describe']=function(_0x46770a,_0x1e3bf8){return db['UserProfile'][_0x568a('0x5e')]()[_0x568a('0x29')](respondWithResult(_0x1e3bf8,null))[_0x568a('0x4a')](handleError(_0x1e3bf8,null));};exports[_0x568a('0x5f')]=function(_0x5d0c80,_0x17c09c){var _0x205425=_0x5d0c80[_0x568a('0x54')];return db[_0x568a('0x30')][_0x568a('0x4d')]({'where':{'id':_0x5d0c80[_0x568a('0x4c')]['id']}})['then'](handleEntityNotFound(_0x17c09c,null))['then'](function(_0x52e3c7){if(_0x52e3c7){return db[_0x568a('0x56')][_0x568a('0x57')](function(_0x331faa){return db[_0x568a('0x5b')][_0x568a('0x2a')]({'where':{'userProfileId':_0x5d0c80[_0x568a('0x4c')]['id'],'sectionId':_[_0x568a('0x2f')](_0x205425,function(_0x3539a1){return _0x3539a1[_0x568a('0x60')];})},'transaction':_0x331faa})[_0x568a('0x29')](function(){var _0x223078=_[_0x568a('0x2f')](_0x205425,function(_0x1f551e){_0x1f551e['userProfileId']=_0x5d0c80[_0x568a('0x4c')]['id'];return _0x1f551e;});var _0x45dc5d=[];return BPromise['each'](_0x223078,function(_0x536b8c){return db[_0x568a('0x5b')][_0x568a('0x4e')](_0x536b8c,{'include':[{'model':db['UserProfileResource'],'as':_0x568a('0x5d')}],'raw':!![],'transaction':_0x331faa})[_0x568a('0x29')](function(_0x557e0a){_0x45dc5d['push'](_0x557e0a[_0x568a('0x50')]({'plain':!![]}));});})[_0x568a('0x29')](function(){return _0x45dc5d;});});});}})[_0x568a('0x29')](function(_0x13b9ee){return _0x13b9ee;})[_0x568a('0x29')](respondWithResult(_0x17c09c,null))[_0x568a('0x4a')](handleError(_0x17c09c,null));};exports[_0x568a('0x61')]=function(_0x3cd5b7,_0x112ef6){var _0x27b4a1;return db[_0x568a('0x30')][_0x568a('0x4d')]({'where':{'id':_0x3cd5b7[_0x568a('0x4c')]['id']},'attributes':['id',_0x568a('0x2c')]})[_0x568a('0x29')](handleEntityNotFound(_0x112ef6,null))[_0x568a('0x29')](function(_0x3cc68b){if(_0x3cc68b){_0x27b4a1=_0x3cc68b;return db[_0x568a('0x5b')][_0x568a('0x2a')]({'where':{'userProfileId':_0x3cd5b7[_0x568a('0x4c')]['id'],'sectionId':_0x3cd5b7[_0x568a('0x34')][_0x568a('0x62')]}});}})[_0x568a('0x29')](function(){return _0x27b4a1;})[_0x568a('0x29')](respondWithStatusCode(_0x112ef6,null))[_0x568a('0x4a')](handleError(_0x112ef6,null));};exports['getSections']=function(_0x5d2994,_0x2c7052){var _0x51243d=[];var _0xa9ba7d=[];return db[_0x568a('0x5b')][_0x568a('0x48')]({'where':{'userProfileId':_0x5d2994['params']['id']},'raw':!![]})[_0x568a('0x29')](function(_0x5a529a){_0x51243d=_[_0x568a('0x42')](_0x5a529a,function(_0x3ea4f0){return _0x3ea4f0[_0x568a('0x63')]===0x1||_[_0x568a('0x64')]([0x3eb,0x709],_0x3ea4f0[_0x568a('0x60')]);});if(!_[_0x568a('0x65')](_0x51243d)){return _['map'](_0x51243d,function(_0x413109){return _0x413109[_0x568a('0x60')];});}else{return;}})[_0x568a('0x29')](function(_0x530394){if(_0x530394)_0xa9ba7d=_0x530394;if(_[_0x568a('0x64')](_0xa9ba7d,0x64)){var _0x24fee4=_[_0x568a('0x4d')](_0x51243d,{'sectionId':0x64});return hasDefaultDashboard(_0x24fee4)['then'](function(_0x601aeb){return _[_0x568a('0x2f')](_0x51243d,function(_0x4fa3b2){if(_0x4fa3b2[_0x568a('0x60')]===0x64){_0x4fa3b2[_0x568a('0x66')]=_0x601aeb;}return _0x4fa3b2;});});}else{return;}})[_0x568a('0x29')](function(_0x146283){if(_0x146283)_0x51243d=_0x146283;if(_[_0x568a('0x64')](_0xa9ba7d,0x3eb)){var _0x2eac41=_[_0x568a('0x4d')](_0x51243d,{'sectionId':0x3eb});return getCustomDashboards(_0x2eac41)[_0x568a('0x29')](function(_0x32c674){return _[_0x568a('0x2f')](_0x51243d,function(_0x184f59){if(_0x2eac41[_0x568a('0x63')]){if(_0x184f59[_0x568a('0x60')]===0x3eb){_0x184f59[_0x568a('0x66')]=_0x32c674;}}else{if(_0x184f59[_0x568a('0x60')]===0x64){_0x184f59['subsections']=_0x32c674;}}return _0x184f59;});});}else{return;}})[_0x568a('0x29')](function(_0x34fead){if(_0x34fead)_0x51243d=_0x34fead;if(_[_0x568a('0x64')](_0xa9ba7d,0x709)){var _0x30c6d5=_['find'](_0x51243d,{'sectionId':0x709});return getPlugins(_0x30c6d5)[_0x568a('0x29')](function(_0x143b73){if(_0x30c6d5['enabled']){return _[_0x568a('0x2f')](_0x51243d,function(_0x247fee){if(_0x247fee['sectionId']===0x709){_0x247fee['subsections']=_0x143b73;}return _0x247fee;});}else{var _0x432716={'sectionId':0x76c,'enabled':0x1,'subsections':_0x143b73};var _0x15203b=_[_0x568a('0x2f')](_0x51243d);_0x15203b[_0x568a('0x67')](_0x432716);return _0x15203b;}});}else{return;}})['then'](function(_0x3eca45){if(_0x3eca45)_0x51243d=_0x3eca45;return _[_0x568a('0x42')](_0x51243d,[_0x568a('0x63'),0x1]);})[_0x568a('0x29')](respondWithResult(_0x2c7052,null))['catch'](handleError(_0x2c7052,null));};function hasDefaultDashboard(_0x3f230e){var _0x4586f6=[0x65];return new BPromise(function(_0xda417f,_0x114982){try{if(_0x3f230e['autoAssociation']){_0xda417f(_0x4586f6);}else{return db[_0x568a('0x5c')]['findOne']({'where':{'sectionId':_0x3f230e['id']},'raw':!![]})[_0x568a('0x29')](function(_0xc4c656){_0xc4c656?_0xda417f(_0x4586f6):_0xda417f();});}}catch(_0x319869){_0x114982(_0x319869);}});}function getCustomDashboards(_0x326753){var _0xa3301e=[];return new BPromise(function(_0x45a799,_0x268fa8){try{if(_0x326753[_0x568a('0x59')]){return db[_0x568a('0x68')][_0x568a('0x48')]({'raw':!![]})[_0x568a('0x29')](function(_0x36fd36){_0x36fd36[_0x568a('0x69')](function(_0x346528){_0xa3301e['push'](_0x346528['id']+0x1869f);});_0x45a799(_0xa3301e);});}else{return db['UserProfileResource'][_0x568a('0x48')]({'where':{'sectionId':_0x326753['id']},'raw':!![]})[_0x568a('0x29')](function(_0x192f3e){_0x192f3e[_0x568a('0x69')](function(_0xb59d00){_0xa3301e[_0x568a('0x67')](_0xb59d00[_0x568a('0x6a')]+0x1869f);});_0x45a799(_0xa3301e);});}}catch(_0x2de2f1){_0x268fa8(_0x2de2f1);}});}function getPlugins(_0x159cd8){var _0x45f8cf=[];return new BPromise(function(_0x432ab2,_0xea8738){try{if(_0x159cd8[_0x568a('0x59')]){return db[_0x568a('0x6b')][_0x568a('0x48')]({'raw':!![]})[_0x568a('0x29')](function(_0x5ba5be){_0x5ba5be[_0x568a('0x69')](function(_0x5b17e6){_0x45f8cf['push'](_0x5b17e6['id']+0x15b38);});_0x432ab2(_0x45f8cf);});}else{return db[_0x568a('0x5c')]['findAll']({'where':{'sectionId':_0x159cd8['id']},'raw':!![]})[_0x568a('0x29')](function(_0x139aa2){_0x139aa2[_0x568a('0x69')](function(_0x1f2464){_0x45f8cf[_0x568a('0x67')](_0x1f2464['resourceId']+0x15b38);});_0x432ab2(_0x45f8cf);});}}catch(_0x5520ad){_0xea8738(_0x5520ad);}});}exports[_0x568a('0x6c')]=function(_0x2701d9,_0x2d6a81){return db[_0x568a('0x30')]['find']({'where':{'id':_0x2701d9[_0x568a('0x4c')]['id']}})[_0x568a('0x29')](handleEntityNotFound(_0x2d6a81,null))['then'](function(_0x568944){if(_0x568944){return db['sequelize'][_0x568a('0x57')](function(_0x43bd88){return db[_0x568a('0x5b')]['findAll']({'where':{'userProfileId':_0x2701d9[_0x568a('0x4c')]['id']},'attributes':['id'],'raw':!![]})[_0x568a('0x29')](function(_0x5d8e5e){if(_0x5d8e5e){return db[_0x568a('0x5b')][_0x568a('0x2a')]({'where':{'userProfileId':_0x2701d9['params']['id'],'id':_[_0x568a('0x2f')](_0x5d8e5e,function(_0x252fbf){return _0x252fbf['id'];})},'transaction':_0x43bd88});}})[_0x568a('0x29')](function(_0x29711d){var _0x323b47=_[_0x568a('0x2f')](_0x2701d9[_0x568a('0x54')],function(_0xc36624){_0xc36624[_0x568a('0x5a')]=_0x2701d9['params']['id'];return _0xc36624;});return db[_0x568a('0x5b')]['bulkCreate'](_0x323b47,{'raw':!![],'transaction':_0x43bd88});})[_0x568a('0x29')](function(_0x3ec87c){var _0x351456=_[_0x568a('0x42')](_[_0x568a('0x2f')](_0x3ec87c,function(_0x164ecb){return _0x164ecb[_0x568a('0x50')]({'plain':!![]});}),{'includeAll':![]});if(_0x351456){return db[_0x568a('0x5b')][_0x568a('0x48')]({'where':{'userProfileId':_0x2701d9[_0x568a('0x4c')]['id'],'sectionId':_[_0x568a('0x2f')](_0x351456,function(_0x406c35){return _0x406c35[_0x568a('0x60')];})},'attributes':['id',_0x568a('0x60')],'raw':!![]})[_0x568a('0x29')](function(_0x1e5fc4){var _0x3e5a74=_[_0x568a('0x2f')](_0x2701d9[_0x568a('0x54')],function(_0x3a64b8){_0x3a64b8['userProfileId']=_0x2701d9['params']['id'];return _0x3a64b8;});return db[_0x568a('0x5c')][_0x568a('0x6d')](_0x3e5a74,{'raw':!![],'transaction':_0x43bd88});});}})[_0x568a('0x4a')](handleError(_0x2d6a81,null));});}})['then'](function(_0x2056fd){var _0x4fd635=_[_0x568a('0x2f')](_0x2056fd,function(_0x13a62f){return _0x13a62f[_0x568a('0x50')]({'plain':!![]});});})[_0x568a('0x29')](respondWithResult(_0x2d6a81,null))[_0x568a('0x4a')](handleError(_0x2d6a81,null));};exports[_0x568a('0x6e')]=function(_0x2e6283,_0x5b02b9,_0x38cbf8){return db['UserProfile'][_0x568a('0x4d')]({'where':{'id':_0x2e6283[_0x568a('0x4c')]['id']}})[_0x568a('0x29')](handleEntityNotFound(_0x5b02b9,null))[_0x568a('0x29')](function(_0x2e28f9){if(_0x2e28f9){return _0x2e28f9[_0x568a('0x6e')](_0x2e6283['query']['ids']);}})[_0x568a('0x29')](respondWithStatusCode(_0x5b02b9,null))['catch'](handleError(_0x5b02b9,null));};exports[_0x568a('0x6f')]=function(_0x134234,_0x1fd626){var _0x41dda6={};if(!_0x134234[_0x568a('0x34')]['section'])throw new Error(_0x568a('0x70'));if(!_0x134234[_0x568a('0x34')][_0x568a('0x3c')](_0x568a('0x3d'))){_0x41dda6[_0x568a('0x23')]=qs['limit'](_0x134234[_0x568a('0x34')][_0x568a('0x23')]);_0x41dda6[_0x568a('0x21')]=qs[_0x568a('0x21')](_0x134234[_0x568a('0x34')][_0x568a('0x21')]);}return db[_0x568a('0x30')]['find']({'where':{'id':_0x134234[_0x568a('0x4c')]['id']}})['then'](function(_0x2fc73a){if(!_0x2fc73a)throw new Error(_0x568a('0x71')+_0x134234[_0x568a('0x4c')]['id']);return db[_0x568a('0x30')][_0x568a('0x6f')](_0x134234);})[_0x568a('0x29')](respondWithFilteredResult(_0x1fd626,_0x41dda6))[_0x568a('0x4a')](handleError(_0x1fd626,null));};
\ No newline at end of file
+var _0xf34f=['querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','register','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','update','then','error','stack','name','send','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','merge','options','UserProfile','include','findAll','catch','show','params','find','create','clone','includeAll','get','omit','updatedAt','crudPermissions','body','createdAt','sequelize','UserProfileSection','each','autoAssociation','UserProfileResource','userProfileId','Resources','destroy','describe','addSections','sectionId','removeSections','enabled','includes','isEmpty','subsections','push','findOne','Dashboard','forEach','Plugin','resourceId','transaction','bulkCreate','removeResources','getResources','section','Missing\x20section\x20parameter','eml-format','zip-dir','request-promise','bluebird','mustache','util','sox','ejs','lodash','crypto','jsforce'];(function(_0x5da651,_0x4fd5d5){var _0x3cd331=function(_0x982a85){while(--_0x982a85){_0x5da651['push'](_0x5da651['shift']());}};_0x3cd331(++_0x4fd5d5);}(_0xf34f,0x64));var _0xff34=function(_0x24d42b,_0x29fd7){_0x24d42b=_0x24d42b-0x0;var _0x33f943=_0xf34f[_0x24d42b];return _0x33f943;};'use strict';var emlformat=require(_0xff34('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xff34('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xff34('0x2'));var moment=require('moment');var BPromise=require(_0xff34('0x3'));var Mustache=require(_0xff34('0x4'));var util=require(_0xff34('0x5'));var path=require('path');var sox=require(_0xff34('0x6'));var csv=require('to-csv');var ejs=require(_0xff34('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xff34('0x8'));var squel=require('squel');var crypto=require(_0xff34('0x9'));var jsforce=require(_0xff34('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xff34('0xb'));var Papa=require(_0xff34('0xc'));var Redis=require(_0xff34('0xd'));var authService=require('../../components/auth/service');var qs=require(_0xff34('0xe'));var as=require(_0xff34('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xff34('0x10'))(_0xff34('0x11'));var utils=require(_0xff34('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xff34('0x13'));var db=require(_0xff34('0x14'))['db'];config[_0xff34('0x15')]=_[_0xff34('0x16')](config[_0xff34('0x15')],{'host':_0xff34('0x17'),'port':0x18eb});var socket=require(_0xff34('0x18'))(new Redis(config[_0xff34('0x15')]));require(_0xff34('0x19'))[_0xff34('0x1a')](socket);function respondWithStatusCode(_0x2fe6b1,_0x1a88af){_0x1a88af=_0x1a88af||0xcc;return function(_0xcba1c3){if(_0xcba1c3){return _0x2fe6b1[_0xff34('0x1b')](_0x1a88af);}return _0x2fe6b1[_0xff34('0x1c')](_0x1a88af)[_0xff34('0x1d')]();};}function respondWithResult(_0x23023f,_0x3b7af5){_0x3b7af5=_0x3b7af5||0xc8;return function(_0x31fdfd){if(_0x31fdfd){return _0x23023f[_0xff34('0x1c')](_0x3b7af5)['json'](_0x31fdfd);}};}function respondWithFilteredResult(_0x95a2b0,_0x53bcbe){return function(_0x2fe34c){if(_0x2fe34c){var _0x50bfa5=typeof _0x53bcbe[_0xff34('0x1e')]===_0xff34('0x1f')&&typeof _0x53bcbe['limit']==='undefined';var _0x1a3a6d=_0x2fe34c[_0xff34('0x20')];var _0x2b967f=_0x50bfa5?0x0:_0x53bcbe[_0xff34('0x1e')];var _0x2e96cb=_0x50bfa5?_0x2fe34c[_0xff34('0x20')]:_0x53bcbe[_0xff34('0x1e')]+_0x53bcbe[_0xff34('0x21')];var _0x2b0891;if(_0x2e96cb>=_0x1a3a6d){_0x2e96cb=_0x1a3a6d;_0x2b0891=0xc8;}else{_0x2b0891=0xce;}_0x95a2b0[_0xff34('0x1c')](_0x2b0891);return _0x95a2b0[_0xff34('0x22')](_0xff34('0x23'),_0x2b967f+'-'+_0x2e96cb+'/'+_0x1a3a6d)[_0xff34('0x24')](_0x2fe34c);}return null;};}function patchUpdates(_0x244e8f){return function(_0x43ea3b){try{jsonpatch[_0xff34('0x25')](_0x43ea3b,_0x244e8f,!![]);}catch(_0x2a988d){return BPromise[_0xff34('0x26')](_0x2a988d);}return _0x43ea3b[_0xff34('0x27')]();};}function saveUpdates(_0x1bbcff,_0x2fde63){return function(_0x48cd5d){if(_0x48cd5d){return _0x48cd5d[_0xff34('0x28')](_0x1bbcff)[_0xff34('0x29')](function(_0x66df01){return _0x66df01;});}return null;};}function removeEntity(_0x266abb,_0x147b68){return function(_0x5dd28d){if(_0x5dd28d){return _0x5dd28d['destroy']()[_0xff34('0x29')](function(){_0x266abb[_0xff34('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x284696,_0x119c88){return function(_0x206dc3){if(!_0x206dc3){_0x284696['sendStatus'](0x194);}return _0x206dc3;};}function handleError(_0x20ca49,_0x52629f){_0x52629f=_0x52629f||0x1f4;return function(_0x3939fa){logger[_0xff34('0x2a')](_0x3939fa[_0xff34('0x2b')]);if(_0x3939fa['name']){delete _0x3939fa[_0xff34('0x2c')];}_0x20ca49[_0xff34('0x1c')](_0x52629f)[_0xff34('0x2d')](_0x3939fa);};}exports['index']=function(_0x2acdfc,_0x140a50){var _0x2294f1={},_0x22613a={},_0x1050de={'count':0x0,'rows':[]};var _0x212097=_['map'](db['UserProfile'][_0xff34('0x2e')],function(_0x58b12e){return{'name':_0x58b12e[_0xff34('0x2f')],'type':_0x58b12e[_0xff34('0x30')]['key']};});_0x22613a[_0xff34('0x31')]=_[_0xff34('0x32')](_0x212097,_0xff34('0x2c'));_0x22613a[_0xff34('0x33')]=_[_0xff34('0x34')](_0x2acdfc[_0xff34('0x33')]);_0x22613a[_0xff34('0x35')]=_[_0xff34('0x36')](_0x22613a[_0xff34('0x31')],_0x22613a['query']);_0x2294f1[_0xff34('0x37')]=_['intersection'](_0x22613a[_0xff34('0x31')],qs[_0xff34('0x38')](_0x2acdfc['query']['fields']));_0x2294f1[_0xff34('0x37')]=_0x2294f1[_0xff34('0x37')][_0xff34('0x39')]?_0x2294f1[_0xff34('0x37')]:_0x22613a[_0xff34('0x31')];if(!_0x2acdfc['query'][_0xff34('0x3a')](_0xff34('0x3b'))){_0x2294f1['limit']=qs[_0xff34('0x21')](_0x2acdfc[_0xff34('0x33')]['limit']);_0x2294f1[_0xff34('0x1e')]=qs['offset'](_0x2acdfc[_0xff34('0x33')][_0xff34('0x1e')]);}_0x2294f1['order']=qs[_0xff34('0x3c')](_0x2acdfc[_0xff34('0x33')][_0xff34('0x3c')]);_0x2294f1[_0xff34('0x3d')]=qs[_0xff34('0x35')](_[_0xff34('0x3e')](_0x2acdfc[_0xff34('0x33')],_0x22613a['filters']),_0x212097);if(_0x2acdfc['query'][_0xff34('0x3f')]){_0x2294f1[_0xff34('0x3d')]=_['merge'](_0x2294f1[_0xff34('0x3d')],{'$or':_[_0xff34('0x32')](_0x212097,function(_0x248e7e){if(_0x248e7e[_0xff34('0x30')]!==_0xff34('0x40')){var _0x12a4ff={};_0x12a4ff[_0x248e7e[_0xff34('0x2c')]]={'$like':'%'+_0x2acdfc[_0xff34('0x33')][_0xff34('0x3f')]+'%'};return _0x12a4ff;}})});}_0x2294f1=_[_0xff34('0x41')]({},_0x2294f1,_0x2acdfc[_0xff34('0x42')]);var _0x329146={'where':_0x2294f1[_0xff34('0x3d')]};return db[_0xff34('0x43')][_0xff34('0x20')](_0x329146)[_0xff34('0x29')](function(_0x5e33e2){_0x1050de[_0xff34('0x20')]=_0x5e33e2;if(_0x2acdfc[_0xff34('0x33')]['includeAll']){_0x2294f1[_0xff34('0x44')]=[{'all':!![]}];}return db[_0xff34('0x43')][_0xff34('0x45')](_0x2294f1);})[_0xff34('0x29')](function(_0x107c58){_0x1050de['rows']=_0x107c58;return _0x1050de;})['then'](respondWithFilteredResult(_0x140a50,_0x2294f1))[_0xff34('0x46')](handleError(_0x140a50,null));};exports[_0xff34('0x47')]=function(_0x5a1971,_0xc5f15a){var _0x236f65={'raw':![],'where':{'id':_0x5a1971[_0xff34('0x48')]['id']}},_0x44cf97={};_0x44cf97[_0xff34('0x31')]=_['keys'](db['UserProfile'][_0xff34('0x2e')]);_0x44cf97['query']=_[_0xff34('0x34')](_0x5a1971['query']);_0x44cf97[_0xff34('0x35')]=_['intersection'](_0x44cf97[_0xff34('0x31')],_0x44cf97['query']);_0x236f65[_0xff34('0x37')]=_[_0xff34('0x36')](_0x44cf97['model'],qs[_0xff34('0x38')](_0x5a1971[_0xff34('0x33')][_0xff34('0x38')]));_0x236f65[_0xff34('0x37')]=_0x236f65[_0xff34('0x37')][_0xff34('0x39')]?_0x236f65[_0xff34('0x37')]:_0x44cf97['model'];if(_0x5a1971[_0xff34('0x33')]['includeAll']){_0x236f65['include']=[{'all':!![]}];}_0x236f65=_['merge']({},_0x236f65,_0x5a1971[_0xff34('0x42')]);return db['UserProfile'][_0xff34('0x49')](_0x236f65)[_0xff34('0x29')](handleEntityNotFound(_0xc5f15a,null))[_0xff34('0x29')](respondWithResult(_0xc5f15a,null))[_0xff34('0x46')](handleError(_0xc5f15a,null));};exports['create']=function(_0x4b63c6,_0x366f66){return db[_0xff34('0x43')][_0xff34('0x4a')](_0x4b63c6['body'],{})['then'](respondWithResult(_0x366f66,0xc9))['catch'](handleError(_0x366f66,null));};exports[_0xff34('0x4b')]=function(_0x139002,_0x293f05){var _0x5f10c0={'where':{'id':_0x139002['params']['id']}},_0x17bea4={};_0x17bea4[_0xff34('0x31')]=_['keys'](db[_0xff34('0x43')][_0xff34('0x2e')]);_0x5f10c0[_0xff34('0x37')]=_['intersection'](_0x17bea4[_0xff34('0x31')],qs['fields'](_0x139002[_0xff34('0x33')][_0xff34('0x38')]));_0x5f10c0['attributes']=_0x5f10c0[_0xff34('0x37')][_0xff34('0x39')]?_0x5f10c0[_0xff34('0x37')]:_0x17bea4['model'];if(_0x139002[_0xff34('0x33')][_0xff34('0x4c')]){_0x5f10c0['include']=[{'all':!![]}];}_0x5f10c0=_[_0xff34('0x41')]({},_0x5f10c0,_0x139002[_0xff34('0x42')]);return db[_0xff34('0x43')]['find'](_0x5f10c0)[_0xff34('0x29')](handleEntityNotFound(_0x293f05,null))['then'](function(_0x12a658){if(_0x12a658){var _0x31216a=_0x12a658[_0xff34('0x4d')]({'plain':!![]});_0x31216a=qs[_0xff34('0x4e')](_0x31216a,['id','createdAt',_0xff34('0x4f'),_0xff34('0x50')]);_0x139002[_0xff34('0x51')]=_[_0xff34('0x4e')](_0x139002['body'],['id',_0xff34('0x52'),_0xff34('0x4f')]);return db[_0xff34('0x53')]['transaction'](function(_0x537411){return db['UserProfile'][_0xff34('0x4a')](_['merge'](_0x31216a,_0x139002['body']),{'include':_0x139002[_0xff34('0x33')][_0xff34('0x4c')]?[{'all':!![]}]:undefined,'transaction':_0x537411})[_0xff34('0x29')](function(_0x974e2){var _0x5abe79=_0x974e2[_0xff34('0x4d')]({'plain':!![]});return db[_0xff34('0x54')]['findAll']({'where':{'userProfileId':_0x139002[_0xff34('0x48')]['id']},'raw':!![]})[_0xff34('0x29')](function(_0x1a45da){if(_0x1a45da){return BPromise[_0xff34('0x55')](_0x1a45da,function(_0x15ccf0){return new BPromise(function(_0x2333b0,_0x1cf8f9){if(_0x15ccf0[_0xff34('0x56')]===null||_0x15ccf0[_0xff34('0x56')]===0x1)_0x2333b0(null);return db[_0xff34('0x57')][_0xff34('0x45')]({'where':{'sectionId':_0x15ccf0['id']},'raw':!![]})[_0xff34('0x29')](function(_0x28e065){var _0x220c6b=_[_0xff34('0x32')](_0x28e065,function(_0x134dd3){return qs[_0xff34('0x4e')](_0x134dd3,['id','createdAt',_0xff34('0x4f'),'sectionId']);});_0x2333b0(_0x220c6b);})['catch'](function(_0x150834){_0x1cf8f9(_0x150834);});})[_0xff34('0x29')](function(_0x490fad){var _0x4cc790=qs['omit'](_0x15ccf0,['id',_0xff34('0x52'),_0xff34('0x4f')]);_0x4cc790[_0xff34('0x58')]=_0x5abe79['id'];if(_0x490fad)_0x4cc790[_0xff34('0x59')]=_0x490fad;return _0x4cc790;})['then'](function(_0x4658eb){return db['UserProfileSection']['create'](_0x4658eb,{'include':[{'model':db['UserProfileResource'],'as':_0xff34('0x59')}],'raw':!![],'transaction':_0x537411});});})['then'](function(){return _0x5abe79;});}});});});}})[_0xff34('0x29')](respondWithResult(_0x293f05,0xc9))[_0xff34('0x46')](handleError(_0x293f05,null));};exports[_0xff34('0x28')]=function(_0x31ab78,_0x2ed6ec){if(_0x31ab78[_0xff34('0x51')]['id']){delete _0x31ab78['body']['id'];}return db[_0xff34('0x43')][_0xff34('0x49')]({'where':{'id':_0x31ab78[_0xff34('0x48')]['id']}})[_0xff34('0x29')](handleEntityNotFound(_0x2ed6ec,null))[_0xff34('0x29')](saveUpdates(_0x31ab78['body'],null))[_0xff34('0x29')](respondWithResult(_0x2ed6ec,null))[_0xff34('0x46')](handleError(_0x2ed6ec,null));};exports[_0xff34('0x5a')]=function(_0x50b11f,_0x2005df){return db[_0xff34('0x43')][_0xff34('0x49')]({'where':{'id':_0x50b11f['params']['id']}})[_0xff34('0x29')](handleEntityNotFound(_0x2005df,null))[_0xff34('0x29')](removeEntity(_0x2005df,null))[_0xff34('0x46')](handleError(_0x2005df,null));};exports[_0xff34('0x5b')]=function(_0x55217c,_0x1f5bf4){return db[_0xff34('0x43')][_0xff34('0x5b')]()['then'](respondWithResult(_0x1f5bf4,null))[_0xff34('0x46')](handleError(_0x1f5bf4,null));};exports[_0xff34('0x5c')]=function(_0x422b27,_0x35a525){var _0x4b9846=_0x422b27[_0xff34('0x51')];return db[_0xff34('0x43')][_0xff34('0x49')]({'where':{'id':_0x422b27['params']['id']}})[_0xff34('0x29')](handleEntityNotFound(_0x35a525,null))['then'](function(_0x3f6b76){if(_0x3f6b76){return db[_0xff34('0x53')]['transaction'](function(_0x2f4258){return db[_0xff34('0x54')][_0xff34('0x5a')]({'where':{'userProfileId':_0x422b27['params']['id'],'sectionId':_[_0xff34('0x32')](_0x4b9846,function(_0x197789){return _0x197789[_0xff34('0x5d')];})},'transaction':_0x2f4258})[_0xff34('0x29')](function(){var _0x25e1a0=_[_0xff34('0x32')](_0x4b9846,function(_0x3728bc){_0x3728bc['userProfileId']=_0x422b27['params']['id'];return _0x3728bc;});var _0x45461a=[];return BPromise[_0xff34('0x55')](_0x25e1a0,function(_0xc27b9b){return db[_0xff34('0x54')][_0xff34('0x4a')](_0xc27b9b,{'include':[{'model':db[_0xff34('0x57')],'as':_0xff34('0x59')}],'raw':!![],'transaction':_0x2f4258})[_0xff34('0x29')](function(_0x33d396){_0x45461a['push'](_0x33d396[_0xff34('0x4d')]({'plain':!![]}));});})[_0xff34('0x29')](function(){return _0x45461a;});});});}})[_0xff34('0x29')](function(_0x3755f7){return _0x3755f7;})[_0xff34('0x29')](respondWithResult(_0x35a525,null))[_0xff34('0x46')](handleError(_0x35a525,null));};exports[_0xff34('0x5e')]=function(_0x2ad642,_0x2bda40){var _0x4d34d3;return db[_0xff34('0x43')][_0xff34('0x49')]({'where':{'id':_0x2ad642['params']['id']},'attributes':['id',_0xff34('0x2c')]})[_0xff34('0x29')](handleEntityNotFound(_0x2bda40,null))[_0xff34('0x29')](function(_0x107a05){if(_0x107a05){_0x4d34d3=_0x107a05;return db['UserProfileSection'][_0xff34('0x5a')]({'where':{'userProfileId':_0x2ad642[_0xff34('0x48')]['id'],'sectionId':_0x2ad642['query']['ids']}});}})[_0xff34('0x29')](function(){return _0x4d34d3;})[_0xff34('0x29')](respondWithStatusCode(_0x2bda40,null))['catch'](handleError(_0x2bda40,null));};exports['getSections']=function(_0x398ff6,_0x4cc2fd){var _0x3f345c=[];var _0x49faa3=[];return db[_0xff34('0x54')]['findAll']({'where':{'userProfileId':_0x398ff6[_0xff34('0x48')]['id']},'raw':!![]})[_0xff34('0x29')](function(_0x2ef2b6){_0x3f345c=_['filter'](_0x2ef2b6,function(_0x46e545){return _0x46e545[_0xff34('0x5f')]===0x1||_[_0xff34('0x60')]([0x3eb,0x709],_0x46e545[_0xff34('0x5d')]);});if(!_[_0xff34('0x61')](_0x3f345c)){return _['map'](_0x3f345c,function(_0x3202a6){return _0x3202a6[_0xff34('0x5d')];});}else{return;}})['then'](function(_0x311e04){if(_0x311e04)_0x49faa3=_0x311e04;if(_[_0xff34('0x60')](_0x49faa3,0x64)){var _0x3ebcbf=_[_0xff34('0x49')](_0x3f345c,{'sectionId':0x64});return hasDefaultDashboard(_0x3ebcbf)['then'](function(_0x5a4de7){return _[_0xff34('0x32')](_0x3f345c,function(_0x275f83){if(_0x275f83[_0xff34('0x5d')]===0x64){_0x275f83[_0xff34('0x62')]=_0x5a4de7;}return _0x275f83;});});}else{return;}})[_0xff34('0x29')](function(_0x37d922){if(_0x37d922)_0x3f345c=_0x37d922;if(_['includes'](_0x49faa3,0x3eb)){var _0x36f8d4=_[_0xff34('0x49')](_0x3f345c,{'sectionId':0x3eb});return getCustomDashboards(_0x36f8d4)[_0xff34('0x29')](function(_0x416938){return _[_0xff34('0x32')](_0x3f345c,function(_0x576497){if(_0x36f8d4[_0xff34('0x5f')]){if(_0x576497[_0xff34('0x5d')]===0x3eb){_0x576497[_0xff34('0x62')]=_0x416938;}}else{if(_0x576497['sectionId']===0x64){_0x576497['subsections']=_0x416938;}}return _0x576497;});});}else{return;}})[_0xff34('0x29')](function(_0x373160){if(_0x373160)_0x3f345c=_0x373160;if(_[_0xff34('0x60')](_0x49faa3,0x709)){var _0x484c52=_[_0xff34('0x49')](_0x3f345c,{'sectionId':0x709});return getPlugins(_0x484c52)['then'](function(_0x365cd7){if(_0x484c52['enabled']){return _['map'](_0x3f345c,function(_0x3de81b){if(_0x3de81b[_0xff34('0x5d')]===0x709){_0x3de81b[_0xff34('0x62')]=_0x365cd7;}return _0x3de81b;});}else{var _0x16b3e9={'sectionId':0x76c,'enabled':0x1,'subsections':_0x365cd7};var _0x325d3e=_[_0xff34('0x32')](_0x3f345c);_0x325d3e[_0xff34('0x63')](_0x16b3e9);return _0x325d3e;}});}else{return;}})[_0xff34('0x29')](function(_0x533567){if(_0x533567)_0x3f345c=_0x533567;return _[_0xff34('0x3f')](_0x3f345c,['enabled',0x1]);})[_0xff34('0x29')](respondWithResult(_0x4cc2fd,null))[_0xff34('0x46')](handleError(_0x4cc2fd,null));};function hasDefaultDashboard(_0x10e143){var _0x202cc4=[0x65];return new BPromise(function(_0x31f5b3,_0x4b96b6){try{if(_0x10e143[_0xff34('0x56')]){_0x31f5b3(_0x202cc4);}else{return db[_0xff34('0x57')][_0xff34('0x64')]({'where':{'sectionId':_0x10e143['id']},'raw':!![]})[_0xff34('0x29')](function(_0x3743f9){_0x3743f9?_0x31f5b3(_0x202cc4):_0x31f5b3();});}}catch(_0x153f1e){_0x4b96b6(_0x153f1e);}});}function getCustomDashboards(_0x4e0347){var _0x260204=[];return new BPromise(function(_0x3cef7a,_0x2e8681){try{if(_0x4e0347[_0xff34('0x56')]){return db[_0xff34('0x65')][_0xff34('0x45')]({'raw':!![]})[_0xff34('0x29')](function(_0x330e3a){_0x330e3a[_0xff34('0x66')](function(_0x3d1e7b){_0x260204[_0xff34('0x63')](_0x3d1e7b['id']+0x1869f);});_0x3cef7a(_0x260204);});}else{return db[_0xff34('0x57')][_0xff34('0x45')]({'where':{'sectionId':_0x4e0347['id']},'raw':!![]})[_0xff34('0x29')](function(_0x18ef66){_0x18ef66[_0xff34('0x66')](function(_0x39fb59){_0x260204[_0xff34('0x63')](_0x39fb59['resourceId']+0x1869f);});_0x3cef7a(_0x260204);});}}catch(_0x1d05bc){_0x2e8681(_0x1d05bc);}});}function getPlugins(_0x5895de){var _0x57d971=[];return new BPromise(function(_0x197191,_0x367890){try{if(_0x5895de[_0xff34('0x56')]){return db[_0xff34('0x67')]['findAll']({'raw':!![]})[_0xff34('0x29')](function(_0xb3702b){_0xb3702b[_0xff34('0x66')](function(_0x5b88b8){_0x57d971[_0xff34('0x63')](_0x5b88b8['id']+0x15b38);});_0x197191(_0x57d971);});}else{return db[_0xff34('0x57')][_0xff34('0x45')]({'where':{'sectionId':_0x5895de['id']},'raw':!![]})[_0xff34('0x29')](function(_0x4c2ce3){_0x4c2ce3[_0xff34('0x66')](function(_0x1d4262){_0x57d971[_0xff34('0x63')](_0x1d4262[_0xff34('0x68')]+0x15b38);});_0x197191(_0x57d971);});}}catch(_0x1fb32c){_0x367890(_0x1fb32c);}});}exports['addResources']=function(_0x2f1028,_0x5ecd16){return db['UserProfile'][_0xff34('0x49')]({'where':{'id':_0x2f1028[_0xff34('0x48')]['id']}})[_0xff34('0x29')](handleEntityNotFound(_0x5ecd16,null))[_0xff34('0x29')](function(_0x72f30b){if(_0x72f30b){return db[_0xff34('0x53')][_0xff34('0x69')](function(_0x256ce8){return db[_0xff34('0x54')][_0xff34('0x45')]({'where':{'userProfileId':_0x2f1028[_0xff34('0x48')]['id']},'attributes':['id'],'raw':!![]})[_0xff34('0x29')](function(_0x1a2a4f){if(_0x1a2a4f){return db['UserProfileSection']['destroy']({'where':{'userProfileId':_0x2f1028['params']['id'],'id':_[_0xff34('0x32')](_0x1a2a4f,function(_0x363232){return _0x363232['id'];})},'transaction':_0x256ce8});}})[_0xff34('0x29')](function(_0x15b7bd){var _0x41bd33=_[_0xff34('0x32')](_0x2f1028['body'],function(_0x256469){_0x256469['userProfileId']=_0x2f1028[_0xff34('0x48')]['id'];return _0x256469;});return db[_0xff34('0x54')][_0xff34('0x6a')](_0x41bd33,{'raw':!![],'transaction':_0x256ce8});})[_0xff34('0x29')](function(_0x1cb8e8){var _0x278e24=_['filter'](_['map'](_0x1cb8e8,function(_0x3dd0b1){return _0x3dd0b1[_0xff34('0x4d')]({'plain':!![]});}),{'includeAll':![]});if(_0x278e24){return db[_0xff34('0x54')]['findAll']({'where':{'userProfileId':_0x2f1028[_0xff34('0x48')]['id'],'sectionId':_[_0xff34('0x32')](_0x278e24,function(_0x33004d){return _0x33004d[_0xff34('0x5d')];})},'attributes':['id',_0xff34('0x5d')],'raw':!![]})[_0xff34('0x29')](function(_0x461bf6){var _0x3fc825=_[_0xff34('0x32')](_0x2f1028[_0xff34('0x51')],function(_0xe7bea4){_0xe7bea4[_0xff34('0x58')]=_0x2f1028[_0xff34('0x48')]['id'];return _0xe7bea4;});return db[_0xff34('0x57')][_0xff34('0x6a')](_0x3fc825,{'raw':!![],'transaction':_0x256ce8});});}})[_0xff34('0x46')](handleError(_0x5ecd16,null));});}})['then'](function(_0x230834){var _0x416316=_[_0xff34('0x32')](_0x230834,function(_0x3bddde){return _0x3bddde['get']({'plain':!![]});});})[_0xff34('0x29')](respondWithResult(_0x5ecd16,null))[_0xff34('0x46')](handleError(_0x5ecd16,null));};exports[_0xff34('0x6b')]=function(_0x485912,_0x3edcd8,_0x4e7003){return db['UserProfile'][_0xff34('0x49')]({'where':{'id':_0x485912[_0xff34('0x48')]['id']}})[_0xff34('0x29')](handleEntityNotFound(_0x3edcd8,null))[_0xff34('0x29')](function(_0x425f30){if(_0x425f30){return _0x425f30[_0xff34('0x6b')](_0x485912[_0xff34('0x33')]['ids']);}})[_0xff34('0x29')](respondWithStatusCode(_0x3edcd8,null))[_0xff34('0x46')](handleError(_0x3edcd8,null));};exports[_0xff34('0x6c')]=function(_0x1b75ae,_0x4bb5fc){var _0x2abaf8={};if(!_0x1b75ae[_0xff34('0x33')][_0xff34('0x6d')])throw new Error(_0xff34('0x6e'));if(!_0x1b75ae[_0xff34('0x33')][_0xff34('0x3a')](_0xff34('0x3b'))){_0x2abaf8[_0xff34('0x21')]=qs[_0xff34('0x21')](_0x1b75ae[_0xff34('0x33')][_0xff34('0x21')]);_0x2abaf8[_0xff34('0x1e')]=qs['offset'](_0x1b75ae[_0xff34('0x33')]['offset']);}return db[_0xff34('0x43')][_0xff34('0x49')]({'where':{'id':_0x1b75ae[_0xff34('0x48')]['id']}})[_0xff34('0x29')](function(_0x5d3513){if(!_0x5d3513)throw new Error('No\x20User\x20Profile\x20found\x20for\x20id\x20'+_0x1b75ae[_0xff34('0x48')]['id']);return db[_0xff34('0x43')]['getResources'](_0x1b75ae);})['then'](respondWithFilteredResult(_0x4bb5fc,_0x2abaf8))['catch'](handleError(_0x4bb5fc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd916=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','UserProfile','setMaxListeners','save','remove'];(function(_0x1e9287,_0x37f584){var _0x44342e=function(_0x2f559e){while(--_0x2f559e){_0x1e9287['push'](_0x1e9287['shift']());}};_0x44342e(++_0x37f584);}(_0xd916,0x18a));var _0x6d91=function(_0x4ba86d,_0x28c896){_0x4ba86d=_0x4ba86d-0x0;var _0x52d473=_0xd916[_0x4ba86d];return _0x52d473;};'use strict';var EventEmitter=require(_0x6d91('0x0'));var UserProfile=require(_0x6d91('0x1'))['db'][_0x6d91('0x2')];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x6d91('0x3')](0x0);var events={'afterCreate':_0x6d91('0x4'),'afterUpdate':'update','afterDestroy':_0x6d91('0x5')};function emitEvent(_0x3644e5){return function(_0x5a4b38,_0x4f82b3,_0x35101c){UserProfileEvents[_0x6d91('0x6')](_0x3644e5+':'+_0x5a4b38['id'],_0x5a4b38);UserProfileEvents['emit'](_0x3644e5,_0x5a4b38);_0x35101c(null);};}for(var e in events){if(events[_0x6d91('0x7')](e)){var event=events[e];UserProfile[_0x6d91('0x8')](e,emitEvent(event));}}module[_0x6d91('0x9')]=UserProfileEvents;
\ No newline at end of file
+var _0x078a=['exports','events','../../mysqldb','UserProfile','setMaxListeners','save','update','emit','hasOwnProperty','hook'];(function(_0x35885a,_0x42fed7){var _0xe86249=function(_0x98edb3){while(--_0x98edb3){_0x35885a['push'](_0x35885a['shift']());}};_0xe86249(++_0x42fed7);}(_0x078a,0x12d));var _0xa078=function(_0x129aab,_0x2338e4){_0x129aab=_0x129aab-0x0;var _0x2f8974=_0x078a[_0x129aab];return _0x2f8974;};'use strict';var EventEmitter=require(_0xa078('0x0'));var UserProfile=require(_0xa078('0x1'))['db'][_0xa078('0x2')];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0xa078('0x3')](0x0);var events={'afterCreate':_0xa078('0x4'),'afterUpdate':_0xa078('0x5'),'afterDestroy':'remove'};function emitEvent(_0x267649){return function(_0x44af33,_0x2f4616,_0x51963f){UserProfileEvents[_0xa078('0x6')](_0x267649+':'+_0x44af33['id'],_0x44af33);UserProfileEvents['emit'](_0x267649,_0x44af33);_0x51963f(null);};}for(var e in events){if(events[_0xa078('0x7')](e)){var event=events[e];UserProfile[_0xa078('0x8')](e,emitEvent(event));}}module[_0xa078('0x9')]=UserProfileEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2675=['outbound','VoiceChanSpy','VoicePrefix','ivrcampaigns','mailqueues','mailsubstatuses','MailSubstatus','openchannelqueues','OpenchannelQueue','openchannelaccounts','smsqueues','SmsQueue','smsaccounts','SmsAccount','whatsappqueues','WhatsappQueue','whatsappaccounts','WhatsappAccount','teams','voicequeues','queuecampaigns','agents','Users','admin','user','Telephones','ZendeskAccount','salesforceaccounts','freshdeskaccounts','FreshdeskAccount','sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','cannedanswers','CannedAnswer','Disposition','customdashboards','Dashboard','intervals','Interval','Pause','scheduler','Schedule','sounds','Tag','Trigger','trunks','Trunk','variables','Variable','plugins','extractedreports','Reports','reportId','charAt','toUpperCase','slice','Sequelize','QueryTypes','select','InteractionId','ui.createdAt','from','where','ui.UserId\x20=\x20?','sequelize','toString','OpenTabs','UserProfile','user_profiles','query','Invalid\x20section\x20\x27','isEmpty','length','push','UserProfileSection','find','all','ignore','autoAssociation','keys','fields','attributes','hasOwnProperty','nolimit','limit','offset','order','sort','pick','filters','merge','key','foreignKey','options','includeAll','include','forEach','reportType','default','DefaultReports','custom','CustomReports','count','rows','Tags','color','ThroughTags','tag','true','sms','dataValues','fax','lodash','exports','models','filter','value','then','associatedResources','map','catch','field','model','findAll','resolve','UserProfileResource','AnalyticExtractedReport','type','resourceId','toLowerCase','squareprojects','childModel','SquareProject','odbc','SquareOdbc','squarerecordings','parentSections','SquareProjects','projectName','JscriptyProject','contacts','CmContact','lists','CmList','CmCompany','globalcustomfields','ChatQueue','chatwebsites','faxqueues','FaxQueue','faxaccounts','FaxAccount','inboundroutes','internalroutes','VoiceExtension','VoiceContext','voicemails','voicerecordings','VoiceRecording','Agents','name','membername','User','agent','role','telephone','VoiceQueues','VoiceQueue','inbound','QueueCampaigns','queue'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2675,0x75));var _0x5267=function(_0x45ba42,_0x39b3b9){_0x45ba42=_0x45ba42-0x0;var _0x794520=_0x2675[_0x45ba42];return _0x794520;};'use strict';var _=require(_0x5267('0x0'));var attributes=require('./userProfile.attributes');var qs=require('../../components/parsers/qs');var squel=require('squel');module[_0x5267('0x1')]=function(_0x2ae442){var _0x57c95a=_0x2ae442[_0x5267('0x2')];function _0x36bdf0(_0x4e2548,_0x328776){return new Promise(function(_0xf2b350,_0x4bd042){if(!_0x328776)return _0xf2b350(null);var _0x10f92c=_0x328776[_0x5267('0x3')]?{[_0x328776[_0x5267('0x3')]['field']]:_0x328776[_0x5267('0x3')][_0x5267('0x4')]}:undefined;return _0x57c95a[_0x4e2548]['findAll']({'where':_0x10f92c,'raw':!![]})[_0x5267('0x5')](function(_0x5d6645){_0x328776[_0x5267('0x6')]=_[_0x5267('0x7')](_0x5d6645,'id');_0xf2b350(_0x328776);})[_0x5267('0x8')](function(_0x534c2b){_0x4bd042(_0x534c2b);});});}function _0x3e6964(_0x5060b3,_0x445151){return new Promise(function(_0x5bbf00,_0x31ea34){var _0x23d71b=_0x5060b3[_0x5267('0x3')]?{[_0x5060b3[_0x5267('0x3')][_0x5267('0x9')]]:_0x5060b3[_0x5267('0x3')][_0x5267('0x4')]}:undefined;return _0x57c95a[_0x5060b3[_0x5267('0xa')]][_0x5267('0xb')]({'where':_0x23d71b,'raw':!![]})[_0x5267('0x5')](function(_0x16e5a7){_0x445151[_0x5267('0x6')]=_[_0x5267('0x7')](_0x16e5a7,function(_0x548040){return _0x548040['name'];});_0x5bbf00(_0x445151);})[_0x5267('0x8')](function(_0x40d897){_0x31ea34(_0x40d897);});});}function _0x38a147(_0x3f5344,_0x46b2c2,_0x27e5c6){if(!_0x46b2c2)return Promise[_0x5267('0xc')](null);return new Promise(function(_0x6831e0,_0x15d81e){return _0x57c95a[_0x5267('0xd')][_0x5267('0xb')]({'where':{'sectionId':_0x46b2c2['id']},'raw':!![]})[_0x5267('0x5')](function(_0x528d61){if(_0x3f5344[_0x5267('0x9')]&&_0x3f5344[_0x5267('0x9')]!=='id'){_0x46b2c2['associatedResources']=_[_0x5267('0x7')](_0x528d61,function(_0x56733e){return _0x56733e[_0x3f5344[_0x5267('0x9')]];});}else{if(_0x27e5c6===_0x5267('0xe')){_0x46b2c2[_0x5267('0x6')]=_[_0x5267('0x7')](_0x528d61,function(_0x5ca9c6){return{'id':_0x5ca9c6['resourceId'],'type':_0x5ca9c6[_0x5267('0xf')]};});}else{_0x46b2c2['associatedResources']=_[_0x5267('0x7')](_0x528d61,function(_0x420fb8){return _0x420fb8[_0x5267('0x10')];});}}_0x6831e0(_0x46b2c2);})['catch'](function(_0x499f19){_0x15d81e(_0x499f19);});});}function _0x5546e2(_0x4a17c7,_0x5ea6a6){var _0x26c7f8={'parentSections':[]};switch(_0x4a17c7[_0x5267('0x11')]()){case _0x5267('0x12'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x14');break;case _0x5267('0x15'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x16');break;case _0x5267('0x17'):_0x26c7f8['childModel']='SquareRecording';_0x26c7f8[_0x5267('0x18')]=[{'name':_0x5267('0x19'),'field':'name','foreignKey':_0x5267('0x1a')}];break;case'projects':_0x26c7f8['childModel']=_0x5267('0x1b');break;case _0x5267('0x1c'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x1d');_0x26c7f8[_0x5267('0x18')]=[{'name':'Lists','field':'id','foreignKey':'ListId'}];break;case _0x5267('0x1e'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x1f');break;case'companies':_0x26c7f8['childModel']=_0x5267('0x20');break;case _0x5267('0x21'):_0x26c7f8[_0x5267('0x13')]='CmCustomField';break;case'chatqueues':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x22');break;case _0x5267('0x23'):_0x26c7f8[_0x5267('0x13')]='ChatWebsite';break;case _0x5267('0x24'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x25');break;case _0x5267('0x26'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x27');break;case _0x5267('0x28'):case _0x5267('0x29'):case'outboundroutes':_0x26c7f8['childModel']=_0x5267('0x2a');break;case'contexts':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x2b');break;case _0x5267('0x2c'):_0x26c7f8[_0x5267('0x13')]='VoiceMail';break;case _0x5267('0x2d'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x2e');_0x26c7f8[_0x5267('0x18')]=[{'name':_0x5267('0x2f'),'field':_0x5267('0x30'),'foreignKey':_0x5267('0x31'),'model':_0x5267('0x32'),'filter':{'field':'role','value':[_0x5267('0x33')]}},{'name':'Telephones','field':_0x5267('0x30'),'foreignKey':_0x5267('0x31'),'model':_0x5267('0x32'),'filter':{'field':_0x5267('0x34'),'value':[_0x5267('0x35')]}},{'name':_0x5267('0x36'),'field':_0x5267('0x30'),'foreignKey':'queue','model':_0x5267('0x37'),'filter':{'field':_0x5267('0xf'),'value':[_0x5267('0x38')]}},{'name':_0x5267('0x39'),'field':_0x5267('0x30'),'foreignKey':_0x5267('0x3a'),'model':_0x5267('0x37'),'filter':{'field':'type','value':[_0x5267('0x3b')]}}];break;case'musiconholds':_0x26c7f8[_0x5267('0x13')]='VoiceMusicOnHold';break;case'chanspies':_0x26c7f8['childModel']=_0x5267('0x3c');break;case'voiceprefixes':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x3d');break;case _0x5267('0x3e'):_0x26c7f8[_0x5267('0x13')]='Campaign';break;case _0x5267('0x3f'):_0x26c7f8[_0x5267('0x13')]='MailQueue';break;case'mailaccounts':_0x26c7f8[_0x5267('0x13')]='MailAccount';break;case _0x5267('0x40'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x41');break;case _0x5267('0x42'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x43');break;case _0x5267('0x44'):_0x26c7f8['childModel']='OpenchannelAccount';break;case _0x5267('0x45'):_0x26c7f8['childModel']=_0x5267('0x46');break;case _0x5267('0x47'):_0x26c7f8['childModel']=_0x5267('0x48');break;case _0x5267('0x49'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x4a');break;case _0x5267('0x4b'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x4c');break;case _0x5267('0x4d'):_0x26c7f8[_0x5267('0x13')]='Team';break;case _0x5267('0x4e'):case _0x5267('0x4f'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x37');if(_0x5ea6a6){_0x26c7f8[_0x5267('0x18')]=[{'name':'VoiceQueues'},{'name':_0x5267('0x39')}];}break;case'users':case _0x5267('0x50'):case'telephones':_0x26c7f8['childModel']=_0x5267('0x32');if(_0x5ea6a6){_0x26c7f8['parentSections']=[{'name':_0x5267('0x51'),'filter':{'field':_0x5267('0x34'),'value':[_0x5267('0x52'),_0x5267('0x53')]},'ignore':!![]},{'name':'Agents'},{'name':_0x5267('0x54')}];}break;case'zendeskaccounts':_0x26c7f8['childModel']=_0x5267('0x55');break;case _0x5267('0x56'):_0x26c7f8['childModel']='SalesforceAccount';break;case _0x5267('0x57'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x58');break;case _0x5267('0x59'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x5a');break;case _0x5267('0x5b'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x5c');break;case _0x5267('0x5d'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x5e');break;case _0x5267('0x5f'):_0x26c7f8[_0x5267('0x13')]='User';break;case _0x5267('0x60'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x61');break;case'dispositions':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x62');break;case _0x5267('0x63'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x64');break;case _0x5267('0x65'):_0x26c7f8['childModel']=_0x5267('0x66');break;case'pauses':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x67');break;case _0x5267('0x68'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x69');break;case _0x5267('0x6a'):_0x26c7f8[_0x5267('0x13')]='Sound';break;case'tags':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x6b');break;case'templates':_0x26c7f8[_0x5267('0x13')]='Template';break;case'triggers':_0x26c7f8[_0x5267('0x13')]=_0x5267('0x6c');break;case _0x5267('0x6d'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x6e');break;case _0x5267('0x6f'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0x70');break;case _0x5267('0x71'):_0x26c7f8[_0x5267('0x13')]='Plugin';break;case _0x5267('0x72'):_0x26c7f8[_0x5267('0x13')]=_0x5267('0xe');_0x26c7f8[_0x5267('0x18')]=[{'name':_0x5267('0x73'),'field':'id','foreignKey':_0x5267('0x74')}];break;case'metrics':_0x26c7f8[_0x5267('0x13')]='AnalyticMetric';break;}return _0x26c7f8;}function _0x1522d6(_0x3b0b6a,_0x19fd1c){var _0x4a72c3=_0x3b0b6a[_0x5267('0x75')](0x0)[_0x5267('0x76')]()+_0x3b0b6a[_0x5267('0x77')](0x1);var _0x213bdc={'type':_0x57c95a[_0x5267('0x78')][_0x5267('0x79')]['SELECT'],'raw':!![]};return new Promise(function(_0x1ef14e,_0x190d02){var _0x186667=squel[_0x5267('0x7a')]()['field']('ui.'+_0x4a72c3+_0x5267('0x7b'),'id')['field'](_0x5267('0x7c'))[_0x5267('0x7d')]('user_has_'+_0x3b0b6a+'_interactions','ui')[_0x5267('0x7e')](_0x5267('0x7f'),_0x19fd1c['id']);return _0x57c95a[_0x5267('0x80')]['query'](_0x186667[_0x5267('0x81')](),_0x213bdc)[_0x5267('0x5')](function(_0x293e61){_0x19fd1c[_0x4a72c3+_0x5267('0x82')]=_0x293e61;_0x1ef14e(_0x293e61);})['catch'](function(_0x5a87b5){_0x190d02(_0x5a87b5);});});}return _0x2ae442['define'](_0x5267('0x83'),attributes,{'tableName':_0x5267('0x84'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x45ee25){var _0x378068={'raw':![],'where':{}};var _0x456e94={};var _0x446ba4={'count':0x0,'rows':[]};var _0x2a032a=_0x45ee25[_0x5267('0x85')]['section'];var _0x1ddfad=_0x45ee25[_0x5267('0x85')]['mergeResources']||![];var _0x412511=_0x5546e2(_0x2a032a,_0x1ddfad);if(!_0x412511[_0x5267('0x13')])throw new Error(_0x5267('0x86')+_0x2a032a+'\x27');var _0x1b6dd7=[{'name':_0x2a032a}];if(!_[_0x5267('0x87')](_0x412511[_0x5267('0x18')]))_0x1b6dd7=_0x412511['parentSections'];var _0x2ca259=[];for(var _0x726410=0x0;_0x726410<_0x1b6dd7[_0x5267('0x88')];_0x726410++){_0x2ca259[_0x5267('0x89')](_0x57c95a[_0x5267('0x8a')][_0x5267('0x8b')]({'where':{'userProfileId':_0x45ee25['params']['id'],'name':_0x1b6dd7[_0x726410][_0x5267('0x30')]},'raw':!![]}));}return Promise[_0x5267('0x8c')](_0x2ca259)[_0x5267('0x5')](function(_0x14c3ac){var _0x1a4016=_[_0x5267('0x3')](_0x14c3ac,function(_0x47d359){return _0x47d359?_0x47d359:undefined;});var _0x283423=_[_0x5267('0x3')](_0x1b6dd7,[_0x5267('0x8d'),!![]]);var _0x3bedcf=_['isEmpty'](_0x1a4016)&&_['isEmpty'](_0x283423)?null:_['union'](_0x283423,_0x1a4016);if(!_0x3bedcf)return null;var _0x910f97=[];for(var _0x5cca85=0x0;_0x5cca85<_0x3bedcf[_0x5267('0x88')];_0x5cca85++){var _0x580748=_[_0x5267('0x8b')](_0x1b6dd7,function(_0x1150ba){return _0x3bedcf[_0x5cca85]?_0x1150ba[_0x5267('0x30')]===_0x3bedcf[_0x5cca85][_0x5267('0x30')]:null;});if(_0x580748){if(_0x3bedcf[_0x5cca85][_0x5267('0x8d')]){_0x910f97[_0x5267('0x89')](_0x36bdf0(_0x412511[_0x5267('0x13')],_0x3bedcf[_0x5cca85]));}else{if(!_0x3bedcf[_0x5cca85][_0x5267('0x8e')]){_0x910f97['push'](_0x38a147(_0x580748,_0x3bedcf[_0x5cca85],_0x412511['childModel']));}else{if(_0x580748['model']){_0x910f97[_0x5267('0x89')](_0x3e6964(_0x580748,_0x3bedcf[_0x5cca85]));}}}}}return Promise[_0x5267('0x8c')](_0x910f97);})[_0x5267('0x5')](function(_0x457d84){var _0x4974d1=_0x457d84;var _0x3f2b5d=null;if(_0x4974d1){_0x3f2b5d=_0x4974d1[_0x5267('0x88')]===0x1?_0x4974d1[0x0]:null;}if(!_0x3f2b5d&&!_0x4974d1)return _0x446ba4;var _0x3c547f=_0x57c95a[_0x412511[_0x5267('0x13')]]['rawAttributes'];_0x456e94[_0x5267('0xa')]=_[_0x5267('0x8f')](_0x3c547f);_0x456e94['query']=_[_0x5267('0x8f')](_0x45ee25[_0x5267('0x85')]);_0x456e94['filters']=_['intersection'](_0x456e94[_0x5267('0xa')],_0x456e94[_0x5267('0x85')]);_0x378068['attributes']=_['intersection'](_0x456e94[_0x5267('0xa')],qs[_0x5267('0x90')](_0x45ee25[_0x5267('0x85')][_0x5267('0x90')]));_0x378068[_0x5267('0x91')]=_0x378068['attributes'][_0x5267('0x88')]?_0x378068[_0x5267('0x91')]:_0x456e94['model'];if(!_0x45ee25[_0x5267('0x85')][_0x5267('0x92')](_0x5267('0x93'))){_0x378068[_0x5267('0x94')]=qs[_0x5267('0x94')](_0x45ee25[_0x5267('0x85')][_0x5267('0x94')]);_0x378068[_0x5267('0x95')]=qs['offset'](_0x45ee25['query'][_0x5267('0x95')]);}_0x378068[_0x5267('0x96')]=qs[_0x5267('0x97')](_0x45ee25[_0x5267('0x85')]['sort']);_0x378068[_0x5267('0x7e')]=qs['filters'](_[_0x5267('0x98')](_0x45ee25[_0x5267('0x85')],_0x456e94[_0x5267('0x99')]));if(_0x45ee25[_0x5267('0x85')]['filter']){_0x378068['where']=_[_0x5267('0x9a')](_0x378068[_0x5267('0x7e')],{'$or':_[_0x5267('0x7')](_0x3c547f,function(_0x360a1b){if(_0x360a1b[_0x5267('0xf')][_0x5267('0x9b')]!=='VIRTUAL'){var _0x1b8d72={};_0x1b8d72[_0x360a1b['field']]={'$like':'%'+_0x45ee25[_0x5267('0x85')]['filter']+'%'};return _0x1b8d72;}})});}var _0x2c2b95=[];var _0x20888d=null;var _0x3f31ac={};if(_0x3f2b5d){_0x20888d=_[_0x5267('0x8b')](_0x1b6dd7,[_0x5267('0x30'),_0x3f2b5d[_0x5267('0x30')]]);if(_0x20888d[_0x5267('0x9')]){_0x3f31ac={};if(_0x412511[_0x5267('0x13')]===_0x5267('0xe')){_0x3f31ac[_0x20888d[_0x5267('0x9c')]]=_[_0x5267('0x7')](_0x3f2b5d['associatedResources'],'id');}else{_0x3f31ac[_0x20888d[_0x5267('0x9c')]]=_0x3f2b5d[_0x5267('0x6')];}_0x2c2b95['push'](_0x3f31ac);}else{_0x378068[_0x5267('0x7e')]['id']=_0x3f2b5d[_0x5267('0x6')];}}else{for(var _0x3ebda6=0x0;_0x3ebda6<_0x4974d1[_0x5267('0x88')];_0x3ebda6++){_0x20888d=_[_0x5267('0x8b')](_0x1b6dd7,[_0x5267('0x30'),_0x4974d1[_0x3ebda6][_0x5267('0x30')]]);if(_0x20888d['field']){_0x3f31ac={};_0x3f31ac[_0x20888d[_0x5267('0x9c')]]=_0x4974d1[_0x3ebda6][_0x5267('0x6')];_0x2c2b95[_0x5267('0x89')](_0x3f31ac);}else{if(!_0x378068[_0x5267('0x7e')]['id'])_0x378068[_0x5267('0x7e')]['id']=[];_0x4974d1[_0x3ebda6]['associatedResources']['forEach'](function(_0x34d446){_0x378068[_0x5267('0x7e')]['id'][_0x5267('0x89')](_0x34d446);});}}}if(!_[_0x5267('0x87')](_0x2c2b95)){_0x378068['where']=_[_0x5267('0x9a')](_0x378068[_0x5267('0x7e')],{'$and':{'$or':_0x2c2b95}});}_0x378068=_[_0x5267('0x9a')]({},_0x378068,_0x45ee25[_0x5267('0x9d')]);if(_0x3f2b5d&&!_0x3f2b5d[_0x5267('0x8e')]&&_0x412511[_0x5267('0x13')]===_0x5267('0xe')){if(_0x45ee25[_0x5267('0x85')][_0x5267('0x9e')]){_0x378068[_0x5267('0x9f')]=[{'all':!![]}];}return _0x57c95a[_0x412511[_0x5267('0x13')]][_0x5267('0xb')](_0x378068)[_0x5267('0x5')](function(_0x4a0422){var _0x29c114=[];_0x4a0422[_0x5267('0xa0')](function(_0x45d1cc){var _0x16374d;switch(_0x45d1cc[_0x5267('0xa1')]){case _0x5267('0xa2'):_0x16374d=_[_0x5267('0x8b')](_0x3f2b5d[_0x5267('0x6')],function(_0x42694a){return _0x42694a['id']===_0x45d1cc[_0x5267('0x74')]&&_0x42694a[_0x5267('0xf')]===_0x5267('0xa3');});break;case _0x5267('0xa4'):_0x16374d=_[_0x5267('0x8b')](_0x3f2b5d[_0x5267('0x6')],function(_0x78a2a4){return _0x78a2a4['id']===_0x45d1cc[_0x5267('0x74')]&&_0x78a2a4[_0x5267('0xf')]===_0x5267('0xa5');});break;}if(_0x16374d)_0x29c114[_0x5267('0x89')](_0x45d1cc);});_0x446ba4[_0x5267('0xa6')]=_0x29c114[_0x5267('0x88')];_0x446ba4[_0x5267('0xa7')]=_0x29c114;return _0x446ba4;});}else{return _0x57c95a[_0x412511['childModel']][_0x5267('0xa6')]({'where':_0x378068[_0x5267('0x7e')]})[_0x5267('0x5')](function(_0x405eb4){_0x446ba4[_0x5267('0xa6')]=_0x405eb4;if(_0x45ee25['query'][_0x5267('0x9e')]){if(_0x412511[_0x5267('0x13')]==='CmContact'){_0x378068['include']=[{'model':_0x57c95a['Tag'],'as':_0x5267('0xa8'),'attributes':['id','name',_0x5267('0xa9')],'required':_0x45ee25['query']['tag']?!![]:![]},{'model':_0x57c95a[_0x5267('0x6b')],'as':_0x5267('0xaa'),'attributes':['id',_0x5267('0x30'),_0x5267('0xa9')],'through':_0x45ee25[_0x5267('0x85')]['tag']?{'attributes':[],'where':{'TagId':_0x45ee25['query'][_0x5267('0xab')]||undefined}}:{},'required':_0x45ee25[_0x5267('0x85')][_0x5267('0xab')]?!![]:![]}];}else{_0x378068[_0x5267('0x9f')]=[{'all':!![]}];}}return _0x57c95a[_0x412511[_0x5267('0x13')]]['findAll'](_0x378068);})[_0x5267('0x5')](function(_0x5bece1){_0x446ba4['rows']=_0x5bece1;if(_0x2a032a===_0x5267('0x2f')&&_0x45ee25['query']['openTabs']===_0x5267('0xac')){var _0x321322=[];for(var _0x5085d8=0x0;_0x5085d8<_0x446ba4['rows']['length'];_0x5085d8++){_0x321322[_0x5267('0x89')](_0x1522d6('chat',_0x446ba4[_0x5267('0xa7')][_0x5085d8]['dataValues']));_0x321322[_0x5267('0x89')](_0x1522d6(_0x5267('0xad'),_0x446ba4['rows'][_0x5085d8][_0x5267('0xae')]));_0x321322[_0x5267('0x89')](_0x1522d6(_0x5267('0xaf'),_0x446ba4[_0x5267('0xa7')][_0x5085d8][_0x5267('0xae')]));_0x321322[_0x5267('0x89')](_0x1522d6('mail',_0x446ba4['rows'][_0x5085d8][_0x5267('0xae')]));_0x321322['push'](_0x1522d6('openchannel',_0x446ba4[_0x5267('0xa7')][_0x5085d8]['dataValues']));_0x321322[_0x5267('0x89')](_0x1522d6('whatsapp',_0x446ba4[_0x5267('0xa7')][_0x5085d8]['dataValues']));}return Promise[_0x5267('0x8c')](_0x321322)[_0x5267('0x5')](function(){return _0x446ba4;});}return _0x446ba4;});}});}}});};
\ No newline at end of file
+var _0x719a=['membername','User','role','agent','Telephones','telephone','VoiceQueues','queue','VoiceQueue','inbound','QueueCampaigns','outbound','musiconholds','VoiceMusicOnHold','chanspies','voiceprefixes','VoicePrefix','ivrcampaigns','MailQueue','mailaccounts','MailAccount','mailsubstatuses','OpenchannelQueue','OpenchannelAccount','smsqueues','SmsQueue','SmsAccount','whatsappqueues','WhatsappQueue','whatsappaccounts','teams','voicequeues','users','agents','telephones','Users','user','zendeskaccounts','salesforceaccounts','freshdeskaccounts','FreshdeskAccount','sugarcrmaccounts','deskaccounts','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','cannedanswers','CannedAnswer','dispositions','Dashboard','intervals','Interval','pauses','scheduler','Schedule','sounds','Sound','tags','Tag','templates','Template','triggers','Trigger','trunks','Trunk','Plugin','extractedreports','AnalyticExtractedReport','reportId','metrics','AnalyticMetric','WhatsappAccount','charAt','toUpperCase','slice','QueryTypes','SELECT','select','InteractionId','ui.createdAt','_interactions','where','ui.UserId\x20=\x20?','query','OpenTabs','UserProfile','user_profiles','mergeResources','Invalid\x20section\x20\x27','push','UserProfileSection','find','params','all','ignore','isEmpty','union','length','autoAssociation','model','keys','filters','intersection','attributes','fields','nolimit','limit','offset','sort','pick','merge','type','key','VIRTUAL','foreignKey','options','includeAll','include','default','DefaultReports','custom','count','rows','Tags','color','tag','ThroughTags','openTabs','chat','dataValues','sms','mail','openchannel','./userProfile.attributes','exports','filter','field','value','findAll','then','map','associatedResources','name','catch','UserProfileResource','resourceId','toLowerCase','squareprojects','childModel','SquareProject','odbc','SquareOdbc','SquareRecording','parentSections','SquareProjects','projectName','projects','contacts','CmContact','Lists','companies','CmCustomField','chatqueues','ChatQueue','chatwebsites','ChatWebsite','faxqueues','faxaccounts','FaxAccount','inboundroutes','internalroutes','outboundroutes','VoiceContext','voicemails','VoiceMail','voicerecordings','VoiceRecording','Agents'];(function(_0x112951,_0x539733){var _0x267661=function(_0x2a3560){while(--_0x2a3560){_0x112951['push'](_0x112951['shift']());}};_0x267661(++_0x539733);}(_0x719a,0x139));var _0xa719=function(_0x4a3da1,_0xe962f0){_0x4a3da1=_0x4a3da1-0x0;var _0x303766=_0x719a[_0x4a3da1];return _0x303766;};'use strict';var _=require('lodash');var attributes=require(_0xa719('0x0'));var qs=require('../../components/parsers/qs');module[_0xa719('0x1')]=function(_0xb9507e){var _0x5ae60d=_0xb9507e['models'];function _0x29ee98(_0x192492,_0x132330){return new Promise(function(_0x486d0d,_0x928d15){if(!_0x132330)return _0x486d0d(null);var _0x2318a1=_0x132330['filter']?{[_0x132330[_0xa719('0x2')][_0xa719('0x3')]]:_0x132330[_0xa719('0x2')][_0xa719('0x4')]}:undefined;return _0x5ae60d[_0x192492][_0xa719('0x5')]({'where':_0x2318a1,'raw':!![]})[_0xa719('0x6')](function(_0x2b648d){_0x132330['associatedResources']=_[_0xa719('0x7')](_0x2b648d,'id');_0x486d0d(_0x132330);})['catch'](function(_0x59e4a7){_0x928d15(_0x59e4a7);});});}function _0x1c3c4a(_0x4a7294,_0x1b89c2){return new Promise(function(_0x136137,_0x1c3dad){var _0x1564bc=_0x4a7294['filter']?{[_0x4a7294[_0xa719('0x2')][_0xa719('0x3')]]:_0x4a7294[_0xa719('0x2')][_0xa719('0x4')]}:undefined;return _0x5ae60d[_0x4a7294['model']]['findAll']({'where':_0x1564bc,'raw':!![]})['then'](function(_0x3e76f4){_0x1b89c2[_0xa719('0x8')]=_['map'](_0x3e76f4,function(_0x120395){return _0x120395[_0xa719('0x9')];});_0x136137(_0x1b89c2);})[_0xa719('0xa')](function(_0x40866a){_0x1c3dad(_0x40866a);});});}function _0x51cf5e(_0x179fc7,_0x3ed6d4,_0x306459){if(!_0x3ed6d4)return resolve(null);return new Promise(function(_0x45b45c,_0x3c953e){return _0x5ae60d[_0xa719('0xb')]['findAll']({'where':{'sectionId':_0x3ed6d4['id']},'raw':!![]})[_0xa719('0x6')](function(_0x57ba32){if(_0x179fc7[_0xa719('0x3')]&&_0x179fc7[_0xa719('0x3')]!=='id'){_0x3ed6d4[_0xa719('0x8')]=_['map'](_0x57ba32,function(_0x485566){return _0x485566[_0x179fc7['field']];});}else{if(_0x306459==='AnalyticExtractedReport'){_0x3ed6d4['associatedResources']=_[_0xa719('0x7')](_0x57ba32,function(_0x195274){return{'id':_0x195274['resourceId'],'type':_0x195274['type']};});}else{_0x3ed6d4['associatedResources']=_[_0xa719('0x7')](_0x57ba32,function(_0x4541a0){return _0x4541a0[_0xa719('0xc')];});}}_0x45b45c(_0x3ed6d4);})[_0xa719('0xa')](function(_0x3d696d){_0x3c953e(_0x3d696d);});});}function _0x105dc7(_0x3cc3ae,_0x52afe4){var _0x66b842={'parentSections':[]};switch(_0x3cc3ae[_0xa719('0xd')]()){case _0xa719('0xe'):_0x66b842[_0xa719('0xf')]=_0xa719('0x10');break;case _0xa719('0x11'):_0x66b842[_0xa719('0xf')]=_0xa719('0x12');break;case'squarerecordings':_0x66b842[_0xa719('0xf')]=_0xa719('0x13');_0x66b842[_0xa719('0x14')]=[{'name':_0xa719('0x15'),'field':_0xa719('0x9'),'foreignKey':_0xa719('0x16')}];break;case _0xa719('0x17'):_0x66b842[_0xa719('0xf')]='JscriptyProject';break;case _0xa719('0x18'):_0x66b842[_0xa719('0xf')]=_0xa719('0x19');_0x66b842['parentSections']=[{'name':_0xa719('0x1a'),'field':'id','foreignKey':'ListId'}];break;case'lists':_0x66b842[_0xa719('0xf')]='CmList';break;case _0xa719('0x1b'):_0x66b842[_0xa719('0xf')]='CmCompany';break;case'globalcustomfields':_0x66b842['childModel']=_0xa719('0x1c');break;case _0xa719('0x1d'):_0x66b842[_0xa719('0xf')]=_0xa719('0x1e');break;case _0xa719('0x1f'):_0x66b842[_0xa719('0xf')]=_0xa719('0x20');break;case _0xa719('0x21'):_0x66b842[_0xa719('0xf')]='FaxQueue';break;case _0xa719('0x22'):_0x66b842['childModel']=_0xa719('0x23');break;case _0xa719('0x24'):case _0xa719('0x25'):case _0xa719('0x26'):_0x66b842[_0xa719('0xf')]='VoiceExtension';break;case'contexts':_0x66b842['childModel']=_0xa719('0x27');break;case _0xa719('0x28'):_0x66b842[_0xa719('0xf')]=_0xa719('0x29');break;case _0xa719('0x2a'):_0x66b842[_0xa719('0xf')]=_0xa719('0x2b');_0x66b842['parentSections']=[{'name':_0xa719('0x2c'),'field':_0xa719('0x9'),'foreignKey':_0xa719('0x2d'),'model':_0xa719('0x2e'),'filter':{'field':_0xa719('0x2f'),'value':[_0xa719('0x30')]}},{'name':_0xa719('0x31'),'field':_0xa719('0x9'),'foreignKey':_0xa719('0x2d'),'model':_0xa719('0x2e'),'filter':{'field':_0xa719('0x2f'),'value':[_0xa719('0x32')]}},{'name':_0xa719('0x33'),'field':_0xa719('0x9'),'foreignKey':_0xa719('0x34'),'model':_0xa719('0x35'),'filter':{'field':'type','value':[_0xa719('0x36')]}},{'name':_0xa719('0x37'),'field':_0xa719('0x9'),'foreignKey':'queue','model':'VoiceQueue','filter':{'field':'type','value':[_0xa719('0x38')]}}];break;case _0xa719('0x39'):_0x66b842[_0xa719('0xf')]=_0xa719('0x3a');break;case _0xa719('0x3b'):_0x66b842['childModel']='VoiceChanSpy';break;case _0xa719('0x3c'):_0x66b842[_0xa719('0xf')]=_0xa719('0x3d');break;case _0xa719('0x3e'):_0x66b842[_0xa719('0xf')]='Campaign';break;case'mailqueues':_0x66b842[_0xa719('0xf')]=_0xa719('0x3f');break;case _0xa719('0x40'):_0x66b842[_0xa719('0xf')]=_0xa719('0x41');break;case _0xa719('0x42'):_0x66b842[_0xa719('0xf')]='MailSubstatus';break;case'openchannelqueues':_0x66b842[_0xa719('0xf')]=_0xa719('0x43');break;case'openchannelaccounts':_0x66b842[_0xa719('0xf')]=_0xa719('0x44');break;case _0xa719('0x45'):_0x66b842['childModel']=_0xa719('0x46');break;case'smsaccounts':_0x66b842[_0xa719('0xf')]=_0xa719('0x47');break;case _0xa719('0x48'):_0x66b842[_0xa719('0xf')]=_0xa719('0x49');break;case _0xa719('0x4a'):_0x66b842[_0xa719('0xf')]='WhatsappAccount';break;case _0xa719('0x4b'):_0x66b842[_0xa719('0xf')]='Team';break;case _0xa719('0x4c'):case'queuecampaigns':_0x66b842[_0xa719('0xf')]=_0xa719('0x35');if(_0x52afe4){_0x66b842['parentSections']=[{'name':_0xa719('0x33')},{'name':_0xa719('0x37')}];}break;case _0xa719('0x4d'):case _0xa719('0x4e'):case _0xa719('0x4f'):_0x66b842['childModel']='User';if(_0x52afe4){_0x66b842[_0xa719('0x14')]=[{'name':_0xa719('0x50'),'filter':{'field':_0xa719('0x2f'),'value':['admin',_0xa719('0x51')]},'ignore':!![]},{'name':_0xa719('0x2c')},{'name':'Telephones'}];}break;case _0xa719('0x52'):_0x66b842[_0xa719('0xf')]='ZendeskAccount';break;case _0xa719('0x53'):_0x66b842[_0xa719('0xf')]='SalesforceAccount';break;case _0xa719('0x54'):_0x66b842['childModel']=_0xa719('0x55');break;case _0xa719('0x56'):_0x66b842[_0xa719('0xf')]='SugarcrmAccount';break;case _0xa719('0x57'):_0x66b842[_0xa719('0xf')]=_0xa719('0x58');break;case _0xa719('0x59'):_0x66b842['childModel']=_0xa719('0x5a');break;case _0xa719('0x5b'):_0x66b842[_0xa719('0xf')]='User';break;case _0xa719('0x5c'):_0x66b842['childModel']=_0xa719('0x5d');break;case _0xa719('0x5e'):_0x66b842[_0xa719('0xf')]='Disposition';break;case'customdashboards':_0x66b842['childModel']=_0xa719('0x5f');break;case _0xa719('0x60'):_0x66b842[_0xa719('0xf')]=_0xa719('0x61');break;case _0xa719('0x62'):_0x66b842[_0xa719('0xf')]='Pause';break;case _0xa719('0x63'):_0x66b842[_0xa719('0xf')]=_0xa719('0x64');break;case _0xa719('0x65'):_0x66b842[_0xa719('0xf')]=_0xa719('0x66');break;case _0xa719('0x67'):_0x66b842[_0xa719('0xf')]=_0xa719('0x68');break;case _0xa719('0x69'):_0x66b842['childModel']=_0xa719('0x6a');break;case _0xa719('0x6b'):_0x66b842[_0xa719('0xf')]=_0xa719('0x6c');break;case _0xa719('0x6d'):_0x66b842[_0xa719('0xf')]=_0xa719('0x6e');break;case'variables':_0x66b842['childModel']='Variable';break;case'plugins':_0x66b842[_0xa719('0xf')]=_0xa719('0x6f');break;case _0xa719('0x70'):_0x66b842['childModel']=_0xa719('0x71');_0x66b842['parentSections']=[{'name':'Reports','field':'id','foreignKey':_0xa719('0x72')}];break;case _0xa719('0x73'):_0x66b842[_0xa719('0xf')]=_0xa719('0x74');break;case _0xa719('0x4a'):_0x66b842['childModel']=_0xa719('0x75');break;}return _0x66b842;}function _0x4cc1d9(_0x4676c4,_0x51ad45){var _0xb1036f=_0x4676c4[_0xa719('0x76')](0x0)[_0xa719('0x77')]()+_0x4676c4[_0xa719('0x78')](0x1);var _0x263123={'type':_0x5ae60d['Sequelize'][_0xa719('0x79')][_0xa719('0x7a')],'raw':!![]};return new BPromise(function(_0x45d86b,_0x457de0){var _0x185b79=squel[_0xa719('0x7b')]()['field']('ui.'+_0xb1036f+_0xa719('0x7c'),'id')[_0xa719('0x3')](_0xa719('0x7d'))['from']('user_has_'+_0x4676c4+_0xa719('0x7e'),'ui')[_0xa719('0x7f')](_0xa719('0x80'),_0x51ad45['id']);return _0x5ae60d['sequelize'][_0xa719('0x81')](_0x185b79['toString'](),_0x263123)[_0xa719('0x6')](function(_0x2e1510){_0x51ad45[_0xb1036f+_0xa719('0x82')]=_0x2e1510;_0x45d86b(_0x2e1510);})[_0xa719('0xa')](function(_0xe869c2){_0x457de0(_0xe869c2);});});}return _0xb9507e['define'](_0xa719('0x83'),attributes,{'tableName':_0xa719('0x84'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x46ea63){var _0x336e96={'raw':![],'where':{}};var _0x43b3a2={};var _0x4e821a={'count':0x0,'rows':[]};var _0x425f56=_0x46ea63[_0xa719('0x81')]['section'];var _0x417637=_0x46ea63['query'][_0xa719('0x85')]||![];var _0x5780d4=_0x105dc7(_0x425f56,_0x417637);if(!_0x5780d4[_0xa719('0xf')])throw new Error(_0xa719('0x86')+_0x425f56+'\x27');var _0x243c7f=[{'name':_0x425f56}];if(!_['isEmpty'](_0x5780d4[_0xa719('0x14')]))_0x243c7f=_0x5780d4['parentSections'];var _0x3e125e=[];for(var _0x2d8945=0x0;_0x2d8945<_0x243c7f['length'];_0x2d8945++){_0x3e125e[_0xa719('0x87')](_0x5ae60d[_0xa719('0x88')][_0xa719('0x89')]({'where':{'userProfileId':_0x46ea63[_0xa719('0x8a')]['id'],'name':_0x243c7f[_0x2d8945][_0xa719('0x9')]},'raw':!![]}));}return Promise[_0xa719('0x8b')](_0x3e125e)['then'](function(_0x93ffa8){var _0x1892bc=_[_0xa719('0x2')](_0x93ffa8,function(_0x3055da){return _0x3055da?_0x3055da:undefined;});var _0x3a198a=_[_0xa719('0x2')](_0x243c7f,[_0xa719('0x8c'),!![]]);var _0x39232a=_['isEmpty'](_0x1892bc)&&_[_0xa719('0x8d')](_0x3a198a)?null:_[_0xa719('0x8e')](_0x3a198a,_0x1892bc);if(!_0x39232a)return null;var _0x153aeb=[];for(var _0x377e0f=0x0;_0x377e0f<_0x39232a[_0xa719('0x8f')];_0x377e0f++){var _0x25ccba=_[_0xa719('0x89')](_0x243c7f,function(_0x7bbc3a){return _0x39232a[_0x377e0f]?_0x7bbc3a[_0xa719('0x9')]===_0x39232a[_0x377e0f]['name']:null;});if(_0x25ccba){if(_0x39232a[_0x377e0f][_0xa719('0x8c')]){_0x153aeb[_0xa719('0x87')](_0x29ee98(_0x5780d4['childModel'],_0x39232a[_0x377e0f]));}else{if(!_0x39232a[_0x377e0f][_0xa719('0x90')]){_0x153aeb[_0xa719('0x87')](_0x51cf5e(_0x25ccba,_0x39232a[_0x377e0f],_0x5780d4[_0xa719('0xf')]));}else{if(_0x25ccba[_0xa719('0x91')]){_0x153aeb[_0xa719('0x87')](_0x1c3c4a(_0x25ccba,_0x39232a[_0x377e0f]));}}}}}return Promise[_0xa719('0x8b')](_0x153aeb);})['then'](function(_0x50f3ea){var _0x56a4ac=_0x50f3ea;var _0x36701f=null;if(_0x56a4ac){_0x36701f=_0x56a4ac[_0xa719('0x8f')]===0x1?_0x56a4ac[0x0]:null;}if(!_0x36701f&&!_0x56a4ac)return _0x4e821a;var _0x3178b0=_0x5ae60d[_0x5780d4['childModel']]['rawAttributes'];_0x43b3a2[_0xa719('0x91')]=_[_0xa719('0x92')](_0x3178b0);_0x43b3a2['query']=_[_0xa719('0x92')](_0x46ea63[_0xa719('0x81')]);_0x43b3a2[_0xa719('0x93')]=_[_0xa719('0x94')](_0x43b3a2[_0xa719('0x91')],_0x43b3a2[_0xa719('0x81')]);_0x336e96[_0xa719('0x95')]=_['intersection'](_0x43b3a2[_0xa719('0x91')],qs['fields'](_0x46ea63[_0xa719('0x81')][_0xa719('0x96')]));_0x336e96[_0xa719('0x95')]=_0x336e96[_0xa719('0x95')][_0xa719('0x8f')]?_0x336e96['attributes']:_0x43b3a2['model'];if(!_0x46ea63['query']['hasOwnProperty'](_0xa719('0x97'))){_0x336e96[_0xa719('0x98')]=qs[_0xa719('0x98')](_0x46ea63[_0xa719('0x81')][_0xa719('0x98')]);_0x336e96[_0xa719('0x99')]=qs[_0xa719('0x99')](_0x46ea63[_0xa719('0x81')][_0xa719('0x99')]);}_0x336e96['order']=qs[_0xa719('0x9a')](_0x46ea63[_0xa719('0x81')]['sort']);_0x336e96['where']=qs[_0xa719('0x93')](_[_0xa719('0x9b')](_0x46ea63[_0xa719('0x81')],_0x43b3a2[_0xa719('0x93')]));if(_0x46ea63['query'][_0xa719('0x2')]){_0x336e96[_0xa719('0x7f')]=_[_0xa719('0x9c')](_0x336e96[_0xa719('0x7f')],{'$or':_[_0xa719('0x7')](_0x3178b0,function(_0xc16cab){if(_0xc16cab[_0xa719('0x9d')][_0xa719('0x9e')]!==_0xa719('0x9f')){var _0x28e71c={};_0x28e71c[_0xc16cab['field']]={'$like':'%'+_0x46ea63[_0xa719('0x81')][_0xa719('0x2')]+'%'};return _0x28e71c;}})});}var _0xfc397e=[];if(_0x36701f){var _0x51b6cc=_[_0xa719('0x89')](_0x243c7f,[_0xa719('0x9'),_0x36701f[_0xa719('0x9')]]);if(_0x51b6cc['field']){var _0x3e444c={};if(_0x5780d4[_0xa719('0xf')]===_0xa719('0x71')){_0x3e444c[_0x51b6cc['foreignKey']]=_[_0xa719('0x7')](_0x36701f['associatedResources'],'id');}else{_0x3e444c[_0x51b6cc[_0xa719('0xa0')]]=_0x36701f['associatedResources'];}_0xfc397e[_0xa719('0x87')](_0x3e444c);}else{_0x336e96[_0xa719('0x7f')]['id']=_0x36701f[_0xa719('0x8')];}}else{for(var _0x306c41=0x0;_0x306c41<_0x56a4ac[_0xa719('0x8f')];_0x306c41++){var _0x51b6cc=_['find'](_0x243c7f,['name',_0x56a4ac[_0x306c41][_0xa719('0x9')]]);if(_0x51b6cc['field']){var _0x3e444c={};_0x3e444c[_0x51b6cc[_0xa719('0xa0')]]=_0x56a4ac[_0x306c41][_0xa719('0x8')];_0xfc397e[_0xa719('0x87')](_0x3e444c);}else{if(!_0x336e96[_0xa719('0x7f')]['id'])_0x336e96[_0xa719('0x7f')]['id']=[];_0x56a4ac[_0x306c41]['associatedResources']['forEach'](function(_0x350ecb){_0x336e96[_0xa719('0x7f')]['id'][_0xa719('0x87')](_0x350ecb);});}}}if(!_['isEmpty'](_0xfc397e)){_0x336e96[_0xa719('0x7f')]=_[_0xa719('0x9c')](_0x336e96[_0xa719('0x7f')],{'$and':{'$or':_0xfc397e}});}_0x336e96=_[_0xa719('0x9c')]({},_0x336e96,_0x46ea63[_0xa719('0xa1')]);if(_0x36701f&&!_0x36701f[_0xa719('0x90')]&&_0x5780d4[_0xa719('0xf')]==='AnalyticExtractedReport'){if(_0x46ea63['query'][_0xa719('0xa2')]){_0x336e96[_0xa719('0xa3')]=[{'all':!![]}];}return _0x5ae60d[_0x5780d4['childModel']][_0xa719('0x5')](_0x336e96)[_0xa719('0x6')](function(_0x361dd3){var _0x1a2b63=[];_0x361dd3['forEach'](function(_0x55fd6a){var _0x1f0071;switch(_0x55fd6a['reportType']){case _0xa719('0xa4'):_0x1f0071=_[_0xa719('0x89')](_0x36701f['associatedResources'],function(_0x1ecd63){return _0x1ecd63['id']===_0x55fd6a['reportId']&&_0x1ecd63['type']===_0xa719('0xa5');});break;case _0xa719('0xa6'):_0x1f0071=_[_0xa719('0x89')](_0x36701f[_0xa719('0x8')],function(_0x16d2df){return _0x16d2df['id']===_0x55fd6a[_0xa719('0x72')]&&_0x16d2df[_0xa719('0x9d')]==='CustomReports';});break;}if(_0x1f0071)_0x1a2b63[_0xa719('0x87')](_0x55fd6a);});_0x4e821a[_0xa719('0xa7')]=_0x1a2b63[_0xa719('0x8f')];_0x4e821a[_0xa719('0xa8')]=_0x1a2b63;return _0x4e821a;});}else{return _0x5ae60d[_0x5780d4[_0xa719('0xf')]]['count']({'where':_0x336e96['where']})[_0xa719('0x6')](function(_0x4bc5dc){_0x4e821a[_0xa719('0xa7')]=_0x4bc5dc;if(_0x46ea63[_0xa719('0x81')][_0xa719('0xa2')]){if(_0x5780d4[_0xa719('0xf')]===_0xa719('0x19')){_0x336e96[_0xa719('0xa3')]=[{'model':_0x5ae60d[_0xa719('0x68')],'as':_0xa719('0xa9'),'attributes':['id',_0xa719('0x9'),_0xa719('0xaa')],'required':_0x46ea63[_0xa719('0x81')][_0xa719('0xab')]?!![]:![]},{'model':_0x5ae60d[_0xa719('0x68')],'as':_0xa719('0xac'),'attributes':['id','name',_0xa719('0xaa')],'through':_0x46ea63[_0xa719('0x81')]['tag']?{'attributes':[],'where':{'TagId':_0x46ea63[_0xa719('0x81')]['tag']||undefined}}:{},'required':_0x46ea63[_0xa719('0x81')][_0xa719('0xab')]?!![]:![]}];}else{_0x336e96[_0xa719('0xa3')]=[{'all':!![]}];}}return _0x5ae60d[_0x5780d4[_0xa719('0xf')]]['findAll'](_0x336e96);})['then'](function(_0x4df427){_0x4e821a['rows']=_0x4df427;if(_0x425f56===_0xa719('0x2c')&&_0x46ea63['query'][_0xa719('0xad')]==='true'){var _0xf65f75=[];for(var _0x314a26=0x0;_0x314a26<_0x4e821a[_0xa719('0xa8')][_0xa719('0x8f')];_0x314a26++){_0xf65f75['push'](_0x4cc1d9(_0xa719('0xae'),_0x4e821a[_0xa719('0xa8')][_0x314a26][_0xa719('0xaf')]));_0xf65f75['push'](_0x4cc1d9(_0xa719('0xb0'),_0x4e821a[_0xa719('0xa8')][_0x314a26][_0xa719('0xaf')]));_0xf65f75['push'](_0x4cc1d9('fax',_0x4e821a[_0xa719('0xa8')][_0x314a26][_0xa719('0xaf')]));_0xf65f75[_0xa719('0x87')](_0x4cc1d9(_0xa719('0xb1'),_0x4e821a['rows'][_0x314a26]['dataValues']));_0xf65f75[_0xa719('0x87')](_0x4cc1d9(_0xa719('0xb2'),_0x4e821a['rows'][_0x314a26]['dataValues']));_0xf65f75['push'](_0x4cc1d9('whatsapp',_0x4e821a[_0xa719('0xa8')][_0x314a26][_0xa719('0xaf')]));}return Promise[_0xa719('0x8b')](_0xf65f75)['then'](function(){return _0x4e821a;});}return _0x4e821a;});}});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf98=['debug','error','message','request\x20sent','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./userProfile.socket','register','request','then','info','UserProfile,\x20%s,\x20%s'];(function(_0x55ea44,_0xf4a38e){var _0x13ac15=function(_0x13d8d0){while(--_0x13d8d0){_0x55ea44['push'](_0x55ea44['shift']());}};_0x13ac15(++_0xf4a38e);}(_0xcf98,0x8d));var _0x8cf9=function(_0x5e51c3,_0x55bef1){_0x5e51c3=_0x5e51c3-0x0;var _0x2e0e13=_0xcf98[_0x5e51c3];return _0x2e0e13;};'use strict';var _=require('lodash');var util=require(_0x8cf9('0x0'));var moment=require(_0x8cf9('0x1'));var BPromise=require(_0x8cf9('0x2'));var rs=require(_0x8cf9('0x3'));var fs=require('fs');var Redis=require(_0x8cf9('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x8cf9('0x5'))(_0x8cf9('0x6'));var config=require(_0x8cf9('0x7'));var jayson=require(_0x8cf9('0x8'));var client=jayson[_0x8cf9('0x9')][_0x8cf9('0xa')]({'port':0x232a});config[_0x8cf9('0xb')]=_[_0x8cf9('0xc')](config[_0x8cf9('0xb')],{'host':_0x8cf9('0xd'),'port':0x18eb});var socket=require(_0x8cf9('0xe'))(new Redis(config['redis']));require(_0x8cf9('0xf'))[_0x8cf9('0x10')](socket);function respondWithRpcPromise(_0x4f4ab3,_0xfe2da1,_0x5b9daa){return new BPromise(function(_0x23eb35,_0x432742){return client[_0x8cf9('0x11')](_0x4f4ab3,_0x5b9daa)[_0x8cf9('0x12')](function(_0x236fbd){logger[_0x8cf9('0x13')](_0x8cf9('0x14'),_0xfe2da1,'request\x20sent');logger[_0x8cf9('0x15')]('UserProfile,\x20%s,\x20%s,\x20%s',_0xfe2da1,'request\x20sent',JSON['stringify'](_0x236fbd));if(_0x236fbd[_0x8cf9('0x16')]){if(_0x236fbd['error']['code']===0x1f4){logger[_0x8cf9('0x16')](_0x8cf9('0x14'),_0xfe2da1,_0x236fbd[_0x8cf9('0x16')]['message']);return _0x432742(_0x236fbd[_0x8cf9('0x16')][_0x8cf9('0x17')]);}logger['error'](_0x8cf9('0x14'),_0xfe2da1,_0x236fbd[_0x8cf9('0x16')][_0x8cf9('0x17')]);return _0x23eb35(_0x236fbd[_0x8cf9('0x16')][_0x8cf9('0x17')]);}else{logger[_0x8cf9('0x13')](_0x8cf9('0x14'),_0xfe2da1,_0x8cf9('0x18'));_0x23eb35(_0x236fbd[_0x8cf9('0x19')][_0x8cf9('0x17')]);}})[_0x8cf9('0x1a')](function(_0x2929ee){logger[_0x8cf9('0x16')](_0x8cf9('0x14'),_0xfe2da1,_0x2929ee);_0x432742(_0x2929ee);});});}
\ No newline at end of file
+var _0xe062=['client','localhost','socket.io-emitter','register','request','then','info','UserProfile,\x20%s,\x20%s','request\x20sent','UserProfile,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x4d4b38,_0x3bdb2c){var _0x20e91e=function(_0x404117){while(--_0x404117){_0x4d4b38['push'](_0x4d4b38['shift']());}};_0x20e91e(++_0x3bdb2c);}(_0xe062,0x1b8));var _0x2e06=function(_0x5edc5e,_0x4d5115){_0x5edc5e=_0x5edc5e-0x0;var _0x5314bc=_0xe062[_0x5edc5e];return _0x5314bc;};'use strict';var _=require(_0x2e06('0x0'));var util=require(_0x2e06('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x2e06('0x2'));var fs=require('fs');var Redis=require(_0x2e06('0x3'));var db=require(_0x2e06('0x4'))['db'];var utils=require(_0x2e06('0x5'));var logger=require(_0x2e06('0x6'))(_0x2e06('0x7'));var config=require(_0x2e06('0x8'));var jayson=require(_0x2e06('0x9'));var client=jayson[_0x2e06('0xa')]['http']({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0x2e06('0xb'),'port':0x18eb});var socket=require(_0x2e06('0xc'))(new Redis(config['redis']));require('./userProfile.socket')[_0x2e06('0xd')](socket);function respondWithRpcPromise(_0x28433e,_0x6be39d,_0x29a813){return new BPromise(function(_0x18552c,_0x450369){return client[_0x2e06('0xe')](_0x28433e,_0x29a813)[_0x2e06('0xf')](function(_0x396810){logger[_0x2e06('0x10')](_0x2e06('0x11'),_0x6be39d,_0x2e06('0x12'));logger['debug'](_0x2e06('0x13'),_0x6be39d,_0x2e06('0x12'),JSON['stringify'](_0x396810));if(_0x396810['error']){if(_0x396810[_0x2e06('0x14')][_0x2e06('0x15')]===0x1f4){logger['error']('UserProfile,\x20%s,\x20%s',_0x6be39d,_0x396810[_0x2e06('0x14')]['message']);return _0x450369(_0x396810['error'][_0x2e06('0x16')]);}logger[_0x2e06('0x14')]('UserProfile,\x20%s,\x20%s',_0x6be39d,_0x396810[_0x2e06('0x14')]['message']);return _0x18552c(_0x396810[_0x2e06('0x14')]['message']);}else{logger[_0x2e06('0x10')](_0x2e06('0x11'),_0x6be39d,_0x2e06('0x12'));_0x18552c(_0x396810[_0x2e06('0x17')][_0x2e06('0x16')]);}})[_0x2e06('0x18')](function(_0x3773fa){logger['error'](_0x2e06('0x11'),_0x6be39d,_0x3773fa);_0x450369(_0x3773fa);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x046d=['length','userProfile:','./userProfile.events','save','emit'];(function(_0x2c7b86,_0x59ef3c){var _0x256735=function(_0x352e33){while(--_0x352e33){_0x2c7b86['push'](_0x2c7b86['shift']());}};_0x256735(++_0x59ef3c);}(_0x046d,0x13d));var _0xd046=function(_0x53a28c,_0x3f9abb){_0x53a28c=_0x53a28c-0x0;var _0x21dabf=_0x046d[_0x53a28c];return _0x21dabf;};'use strict';var UserProfileEvents=require(_0xd046('0x0'));var events=[_0xd046('0x1'),'remove','update'];function createListener(_0x5696f4,_0x4354e9){return function(_0x302210){_0x4354e9[_0xd046('0x2')](_0x5696f4,_0x302210);};}function removeListener(_0x11b61c,_0x53bb69){return function(){UserProfileEvents['removeListener'](_0x11b61c,_0x53bb69);};}exports['register']=function(_0x26d3f6){for(var _0x1ec038=0x0,_0x2204e2=events[_0xd046('0x3')];_0x1ec038<_0x2204e2;_0x1ec038++){var _0x5e9079=events[_0x1ec038];var _0x44da6d=createListener(_0xd046('0x4')+_0x5e9079,_0x26d3f6);UserProfileEvents['on'](_0x5e9079,_0x44da6d);}};
\ No newline at end of file
+var _0x5f73=['userProfile:','remove','update','emit','removeListener','length'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5f73,0x1cf));var _0x35f7=function(_0x2955bc,_0x55cab2){_0x2955bc=_0x2955bc-0x0;var _0x3b88d9=_0x5f73[_0x2955bc];return _0x3b88d9;};'use strict';var UserProfileEvents=require('./userProfile.events');var events=['save',_0x35f7('0x0'),_0x35f7('0x1')];function createListener(_0x130e23,_0x42e503){return function(_0x4a883e){_0x42e503[_0x35f7('0x2')](_0x130e23,_0x4a883e);};}function removeListener(_0x1725e1,_0x2604ab){return function(){UserProfileEvents[_0x35f7('0x3')](_0x1725e1,_0x2604ab);};}exports['register']=function(_0x3298a0){for(var _0x549143=0x0,_0x118fc7=events[_0x35f7('0x4')];_0x549143<_0x118fc7;_0x549143++){var _0x47ec7d=events[_0x549143];var _0x1f1f96=createListener(_0x35f7('0x5')+_0x47ec7d,_0x3298a0);UserProfileEvents['on'](_0x47ec7d,_0x1f1f96);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9152=['exports','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','get','isAuthenticated','show','/:id','update','delete','destroy'];(function(_0x296176,_0x3b7b88){var _0x283854=function(_0x266321){while(--_0x266321){_0x296176['push'](_0x296176['shift']());}};_0x283854(++_0x3b7b88);}(_0x9152,0x187));var _0x2915=function(_0x3a41fb,_0x2a9a6d){_0x3a41fb=_0x3a41fb-0x0;var _0x27b6c0=_0x9152[_0x3a41fb];return _0x27b6c0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x2915('0x0'));var timeout=require('connect-timeout');var express=require(_0x2915('0x1'));var router=express[_0x2915('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x2915('0x3'));var interaction=require(_0x2915('0x4'));var config=require(_0x2915('0x5'));var controller=require(_0x2915('0x6'));router[_0x2915('0x7')]('/',auth[_0x2915('0x8')](),controller['index']);router[_0x2915('0x7')]('/describe',auth[_0x2915('0x8')](),controller['describe']);router[_0x2915('0x7')]('/:id',auth[_0x2915('0x8')](),controller[_0x2915('0x9')]);router['post']('/',auth[_0x2915('0x8')](),controller['create']);router['put'](_0x2915('0xa'),auth[_0x2915('0x8')](),controller[_0x2915('0xb')]);router[_0x2915('0xc')]('/:id',auth[_0x2915('0x8')](),controller[_0x2915('0xd')]);module[_0x2915('0xe')]=router;
\ No newline at end of file
+var _0xe654=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileResource.controller','get','isAuthenticated','index','describe','/:id','show','post','create','put','update','delete','destroy','multer','util'];(function(_0x3355ba,_0x4390da){var _0x56b655=function(_0x433bdd){while(--_0x433bdd){_0x3355ba['push'](_0x3355ba['shift']());}};_0x56b655(++_0x4390da);}(_0xe654,0x19c));var _0x4e65=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe654[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0x4e65('0x0'));var util=require(_0x4e65('0x1'));var path=require(_0x4e65('0x2'));var timeout=require(_0x4e65('0x3'));var express=require(_0x4e65('0x4'));var router=express[_0x4e65('0x5')]();var fs_extra=require(_0x4e65('0x6'));var auth=require(_0x4e65('0x7'));var interaction=require(_0x4e65('0x8'));var config=require(_0x4e65('0x9'));var controller=require(_0x4e65('0xa'));router[_0x4e65('0xb')]('/',auth[_0x4e65('0xc')](),controller[_0x4e65('0xd')]);router[_0x4e65('0xb')]('/describe',auth[_0x4e65('0xc')](),controller[_0x4e65('0xe')]);router['get'](_0x4e65('0xf'),auth[_0x4e65('0xc')](),controller[_0x4e65('0x10')]);router[_0x4e65('0x11')]('/',auth[_0x4e65('0xc')](),controller[_0x4e65('0x12')]);router[_0x4e65('0x13')](_0x4e65('0xf'),auth['isAuthenticated'](),controller[_0x4e65('0x14')]);router[_0x4e65('0x15')](_0x4e65('0xf'),auth[_0x4e65('0xc')](),controller[_0x4e65('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe933=['INTEGER','sequelize','exports','STRING'];(function(_0x53e14c,_0x16b9fd){var _0x22a33e=function(_0x39a9de){while(--_0x39a9de){_0x53e14c['push'](_0x53e14c['shift']());}};_0x22a33e(++_0x16b9fd);}(_0xe933,0x199));var _0x3e93=function(_0x2c7618,_0x26be9c){_0x2c7618=_0x2c7618-0x0;var _0x5ce3f0=_0xe933[_0x2c7618];return _0x5ce3f0;};'use strict';var Sequelize=require(_0x3e93('0x0'));module[_0x3e93('0x1')]={'name':{'type':Sequelize[_0x3e93('0x2')],'allowNull':![]},'resourceId':{'type':Sequelize[_0x3e93('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0x3e93('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x3ba1=['STRING','exports'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x3ba1,0x79));var _0x13ba=function(_0x4417ff,_0x1aaf67){_0x4417ff=_0x4417ff-0x0;var _0x132809=_0x3ba1[_0x4417ff];return _0x132809;};'use strict';var Sequelize=require('sequelize');module[_0x13ba('0x0')]={'name':{'type':Sequelize[_0x13ba('0x1')],'allowNull':![]},'resourceId':{'type':Sequelize['INTEGER'],'allowNull':![]},'type':{'type':Sequelize[_0x13ba('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x524e=['end','json','offset','limit','count','set','apply','reject','save','update','destroy','name','send','index','map','rawAttributes','key','model','keys','filters','intersection','attributes','fields','query','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','UserProfileResource','then','includeAll','include','findAll','rows','catch','show','length','find','create','body','params','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x181895,_0x21b64f){var _0x5d9fd2=function(_0xd693d8){while(--_0xd693d8){_0x181895['push'](_0x181895['shift']());}};_0x5d9fd2(++_0x21b64f);}(_0x524e,0x15e));var _0xe524=function(_0x1ffa88,_0x316af9){_0x1ffa88=_0x1ffa88-0x0;var _0x1ce399=_0x524e[_0x1ffa88];return _0x1ce399;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe524('0x0'));var jsonpatch=require(_0xe524('0x1'));var rp=require(_0xe524('0x2'));var moment=require(_0xe524('0x3'));var BPromise=require(_0xe524('0x4'));var Mustache=require(_0xe524('0x5'));var util=require(_0xe524('0x6'));var path=require(_0xe524('0x7'));var sox=require(_0xe524('0x8'));var csv=require(_0xe524('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe524('0xa'));var _=require(_0xe524('0xb'));var squel=require(_0xe524('0xc'));var crypto=require('crypto');var jsforce=require(_0xe524('0xd'));var deskjs=require(_0xe524('0xe'));var toCsv=require(_0xe524('0x9'));var querystring=require(_0xe524('0xf'));var Papa=require(_0xe524('0x10'));var Redis=require(_0xe524('0x11'));var authService=require(_0xe524('0x12'));var qs=require(_0xe524('0x13'));var as=require(_0xe524('0x14'));var hardwareService=require(_0xe524('0x15'));var logger=require(_0xe524('0x16'))(_0xe524('0x17'));var utils=require(_0xe524('0x18'));var config=require(_0xe524('0x19'));var licenseUtil=require(_0xe524('0x1a'));var db=require(_0xe524('0x1b'))['db'];function respondWithStatusCode(_0x5077c1,_0x4b0f51){_0x4b0f51=_0x4b0f51||0xcc;return function(_0xfdc2a5){if(_0xfdc2a5){return _0x5077c1[_0xe524('0x1c')](_0x4b0f51);}return _0x5077c1[_0xe524('0x1d')](_0x4b0f51)[_0xe524('0x1e')]();};}function respondWithResult(_0x20a852,_0x57c1b6){_0x57c1b6=_0x57c1b6||0xc8;return function(_0x12ff75){if(_0x12ff75){return _0x20a852['status'](_0x57c1b6)[_0xe524('0x1f')](_0x12ff75);}};}function respondWithFilteredResult(_0x1b0af6,_0x48165e){return function(_0x569660){if(_0x569660){var _0x488fce=typeof _0x48165e[_0xe524('0x20')]==='undefined'&&typeof _0x48165e[_0xe524('0x21')]==='undefined';var _0x5c8736=_0x569660['count'];var _0x3a4027=_0x488fce?0x0:_0x48165e['offset'];var _0x11b2a1=_0x488fce?_0x569660[_0xe524('0x22')]:_0x48165e[_0xe524('0x20')]+_0x48165e[_0xe524('0x21')];var _0x5d7b17;if(_0x11b2a1>=_0x5c8736){_0x11b2a1=_0x5c8736;_0x5d7b17=0xc8;}else{_0x5d7b17=0xce;}_0x1b0af6[_0xe524('0x1d')](_0x5d7b17);return _0x1b0af6[_0xe524('0x23')]('Content-Range',_0x3a4027+'-'+_0x11b2a1+'/'+_0x5c8736)[_0xe524('0x1f')](_0x569660);}return null;};}function patchUpdates(_0x309f85){return function(_0x43a4f9){try{jsonpatch[_0xe524('0x24')](_0x43a4f9,_0x309f85,!![]);}catch(_0x1c4194){return BPromise[_0xe524('0x25')](_0x1c4194);}return _0x43a4f9[_0xe524('0x26')]();};}function saveUpdates(_0x375219,_0x7dfe97){return function(_0x5c4d21){if(_0x5c4d21){return _0x5c4d21[_0xe524('0x27')](_0x375219)['then'](function(_0x577d1f){return _0x577d1f;});}return null;};}function removeEntity(_0x2d2f83,_0x23df5e){return function(_0x1ad106){if(_0x1ad106){return _0x1ad106[_0xe524('0x28')]()['then'](function(){_0x2d2f83[_0xe524('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x17e245,_0xcf5db){return function(_0xd62772){if(!_0xd62772){_0x17e245[_0xe524('0x1c')](0x194);}return _0xd62772;};}function handleError(_0x4102d9,_0xfd5965){_0xfd5965=_0xfd5965||0x1f4;return function(_0x2141db){logger['error'](_0x2141db['stack']);if(_0x2141db[_0xe524('0x29')]){delete _0x2141db[_0xe524('0x29')];}_0x4102d9[_0xe524('0x1d')](_0xfd5965)[_0xe524('0x2a')](_0x2141db);};}exports[_0xe524('0x2b')]=function(_0x5405e4,_0x52f140){var _0x4b1ff={},_0x25e7a7={},_0x3aedd9={'count':0x0,'rows':[]};var _0x8070e4=_[_0xe524('0x2c')](db['UserProfileResource'][_0xe524('0x2d')],function(_0x9a7e98){return{'name':_0x9a7e98['fieldName'],'type':_0x9a7e98['type'][_0xe524('0x2e')]};});_0x25e7a7[_0xe524('0x2f')]=_['map'](_0x8070e4,_0xe524('0x29'));_0x25e7a7['query']=_[_0xe524('0x30')](_0x5405e4['query']);_0x25e7a7[_0xe524('0x31')]=_[_0xe524('0x32')](_0x25e7a7[_0xe524('0x2f')],_0x25e7a7['query']);_0x4b1ff[_0xe524('0x33')]=_['intersection'](_0x25e7a7[_0xe524('0x2f')],qs[_0xe524('0x34')](_0x5405e4[_0xe524('0x35')]['fields']));_0x4b1ff[_0xe524('0x33')]=_0x4b1ff[_0xe524('0x33')]['length']?_0x4b1ff[_0xe524('0x33')]:_0x25e7a7[_0xe524('0x2f')];if(!_0x5405e4[_0xe524('0x35')][_0xe524('0x36')]('nolimit')){_0x4b1ff[_0xe524('0x21')]=qs[_0xe524('0x21')](_0x5405e4[_0xe524('0x35')][_0xe524('0x21')]);_0x4b1ff[_0xe524('0x20')]=qs[_0xe524('0x20')](_0x5405e4[_0xe524('0x35')][_0xe524('0x20')]);}_0x4b1ff['order']=qs[_0xe524('0x37')](_0x5405e4['query'][_0xe524('0x37')]);_0x4b1ff[_0xe524('0x38')]=qs['filters'](_[_0xe524('0x39')](_0x5405e4['query'],_0x25e7a7[_0xe524('0x31')]),_0x8070e4);if(_0x5405e4[_0xe524('0x35')][_0xe524('0x3a')]){_0x4b1ff[_0xe524('0x38')]=_[_0xe524('0x3b')](_0x4b1ff[_0xe524('0x38')],{'$or':_[_0xe524('0x2c')](_0x8070e4,function(_0x13762c){if(_0x13762c['type']!==_0xe524('0x3c')){var _0x940c05={};_0x940c05[_0x13762c[_0xe524('0x29')]]={'$like':'%'+_0x5405e4[_0xe524('0x35')][_0xe524('0x3a')]+'%'};return _0x940c05;}})});}_0x4b1ff=_[_0xe524('0x3b')]({},_0x4b1ff,_0x5405e4[_0xe524('0x3d')]);var _0x158d45={'where':_0x4b1ff['where']};return db[_0xe524('0x3e')][_0xe524('0x22')](_0x158d45)[_0xe524('0x3f')](function(_0x59781b){_0x3aedd9[_0xe524('0x22')]=_0x59781b;if(_0x5405e4['query'][_0xe524('0x40')]){_0x4b1ff[_0xe524('0x41')]=[{'all':!![]}];}return db[_0xe524('0x3e')][_0xe524('0x42')](_0x4b1ff);})[_0xe524('0x3f')](function(_0x4746cd){_0x3aedd9[_0xe524('0x43')]=_0x4746cd;return _0x3aedd9;})['then'](respondWithFilteredResult(_0x52f140,_0x4b1ff))[_0xe524('0x44')](handleError(_0x52f140,null));};exports[_0xe524('0x45')]=function(_0x13c54c,_0x376505){var _0x438962={'raw':![],'where':{'id':_0x13c54c['params']['id']}},_0x1ae283={};_0x1ae283[_0xe524('0x2f')]=_[_0xe524('0x30')](db[_0xe524('0x3e')]['rawAttributes']);_0x1ae283[_0xe524('0x35')]=_['keys'](_0x13c54c['query']);_0x1ae283[_0xe524('0x31')]=_[_0xe524('0x32')](_0x1ae283['model'],_0x1ae283[_0xe524('0x35')]);_0x438962[_0xe524('0x33')]=_[_0xe524('0x32')](_0x1ae283[_0xe524('0x2f')],qs['fields'](_0x13c54c['query'][_0xe524('0x34')]));_0x438962[_0xe524('0x33')]=_0x438962['attributes'][_0xe524('0x46')]?_0x438962['attributes']:_0x1ae283[_0xe524('0x2f')];if(_0x13c54c[_0xe524('0x35')][_0xe524('0x40')]){_0x438962[_0xe524('0x41')]=[{'all':!![]}];}_0x438962=_[_0xe524('0x3b')]({},_0x438962,_0x13c54c[_0xe524('0x3d')]);return db[_0xe524('0x3e')][_0xe524('0x47')](_0x438962)[_0xe524('0x3f')](handleEntityNotFound(_0x376505,null))[_0xe524('0x3f')](respondWithResult(_0x376505,null))[_0xe524('0x44')](handleError(_0x376505,null));};exports[_0xe524('0x48')]=function(_0x3d7ab7,_0x33b1c8){return db[_0xe524('0x3e')]['create'](_0x3d7ab7[_0xe524('0x49')],{})['then'](respondWithResult(_0x33b1c8,0xc9))['catch'](handleError(_0x33b1c8,null));};exports[_0xe524('0x27')]=function(_0x59fe6b,_0x232cf0){if(_0x59fe6b[_0xe524('0x49')]['id']){delete _0x59fe6b['body']['id'];}return db[_0xe524('0x3e')]['find']({'where':{'id':_0x59fe6b['params']['id']}})[_0xe524('0x3f')](handleEntityNotFound(_0x232cf0,null))[_0xe524('0x3f')](saveUpdates(_0x59fe6b[_0xe524('0x49')],null))['then'](respondWithResult(_0x232cf0,null))['catch'](handleError(_0x232cf0,null));};exports['destroy']=function(_0x4e9c3b,_0x4f7a64){return db['UserProfileResource'][_0xe524('0x47')]({'where':{'id':_0x4e9c3b[_0xe524('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4f7a64,null))[_0xe524('0x3f')](removeEntity(_0x4f7a64,null))[_0xe524('0x44')](handleError(_0x4f7a64,null));};exports[_0xe524('0x4b')]=function(_0x208aa8,_0x2fa143){return db['UserProfileResource'][_0xe524('0x4b')]()[_0xe524('0x3f')](respondWithResult(_0x2fa143,null))[_0xe524('0x44')](handleError(_0x2fa143,null));};
\ No newline at end of file
+var _0x9f0e=['../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','destroy','end','error','name','send','index','map','UserProfileResource','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','options','find','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9f0e,0x116));var _0xe9f0=function(_0x3a8cad,_0x29082b){_0x3a8cad=_0x3a8cad-0x0;var _0xb90d9c=_0x9f0e[_0x3a8cad];return _0xb90d9c;};'use strict';var emlformat=require(_0xe9f0('0x0'));var rimraf=require(_0xe9f0('0x1'));var zipdir=require(_0xe9f0('0x2'));var jsonpatch=require(_0xe9f0('0x3'));var rp=require(_0xe9f0('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe9f0('0x5'));var util=require(_0xe9f0('0x6'));var path=require(_0xe9f0('0x7'));var sox=require(_0xe9f0('0x8'));var csv=require(_0xe9f0('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe9f0('0xa'));var squel=require(_0xe9f0('0xb'));var crypto=require(_0xe9f0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xe9f0('0xd'));var toCsv=require(_0xe9f0('0x9'));var querystring=require(_0xe9f0('0xe'));var Papa=require(_0xe9f0('0xf'));var Redis=require(_0xe9f0('0x10'));var authService=require(_0xe9f0('0x11'));var qs=require(_0xe9f0('0x12'));var as=require(_0xe9f0('0x13'));var hardwareService=require(_0xe9f0('0x14'));var logger=require('../../config/logger')(_0xe9f0('0x15'));var utils=require(_0xe9f0('0x16'));var config=require(_0xe9f0('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xe9f0('0x18'))['db'];function respondWithStatusCode(_0x586763,_0x367545){_0x367545=_0x367545||0xcc;return function(_0xd82420){if(_0xd82420){return _0x586763[_0xe9f0('0x19')](_0x367545);}return _0x586763[_0xe9f0('0x1a')](_0x367545)['end']();};}function respondWithResult(_0x2cf75d,_0x5a10c6){_0x5a10c6=_0x5a10c6||0xc8;return function(_0x1e3ba8){if(_0x1e3ba8){return _0x2cf75d[_0xe9f0('0x1a')](_0x5a10c6)[_0xe9f0('0x1b')](_0x1e3ba8);}};}function respondWithFilteredResult(_0x59320d,_0x28bfac){return function(_0x33e9e4){if(_0x33e9e4){var _0x2e68ef=typeof _0x28bfac['offset']===_0xe9f0('0x1c')&&typeof _0x28bfac[_0xe9f0('0x1d')]===_0xe9f0('0x1c');var _0xd71ac8=_0x33e9e4[_0xe9f0('0x1e')];var _0x2ab12b=_0x2e68ef?0x0:_0x28bfac[_0xe9f0('0x1f')];var _0x59bf5a=_0x2e68ef?_0x33e9e4[_0xe9f0('0x1e')]:_0x28bfac[_0xe9f0('0x1f')]+_0x28bfac[_0xe9f0('0x1d')];var _0x5c4182;if(_0x59bf5a>=_0xd71ac8){_0x59bf5a=_0xd71ac8;_0x5c4182=0xc8;}else{_0x5c4182=0xce;}_0x59320d[_0xe9f0('0x1a')](_0x5c4182);return _0x59320d[_0xe9f0('0x20')](_0xe9f0('0x21'),_0x2ab12b+'-'+_0x59bf5a+'/'+_0xd71ac8)[_0xe9f0('0x1b')](_0x33e9e4);}return null;};}function patchUpdates(_0x5ba788){return function(_0x33f143){try{jsonpatch[_0xe9f0('0x22')](_0x33f143,_0x5ba788,!![]);}catch(_0x583687){return BPromise['reject'](_0x583687);}return _0x33f143['save']();};}function saveUpdates(_0x12fe9f,_0xa1ddc){return function(_0x1211ae){if(_0x1211ae){return _0x1211ae[_0xe9f0('0x23')](_0x12fe9f)[_0xe9f0('0x24')](function(_0x4a5c27){return _0x4a5c27;});}return null;};}function removeEntity(_0x229fe0,_0x38b7ee){return function(_0x437d43){if(_0x437d43){return _0x437d43[_0xe9f0('0x25')]()[_0xe9f0('0x24')](function(){_0x229fe0[_0xe9f0('0x1a')](0xcc)[_0xe9f0('0x26')]();});}};}function handleEntityNotFound(_0x1321bb,_0x3c4ba9){return function(_0x3fce54){if(!_0x3fce54){_0x1321bb['sendStatus'](0x194);}return _0x3fce54;};}function handleError(_0x371095,_0x27541f){_0x27541f=_0x27541f||0x1f4;return function(_0x2ddfba){logger[_0xe9f0('0x27')](_0x2ddfba['stack']);if(_0x2ddfba[_0xe9f0('0x28')]){delete _0x2ddfba[_0xe9f0('0x28')];}_0x371095[_0xe9f0('0x1a')](_0x27541f)[_0xe9f0('0x29')](_0x2ddfba);};}exports[_0xe9f0('0x2a')]=function(_0x5457f6,_0x130f96){var _0xdc16bc={},_0x44fb5b={},_0xab3d81={'count':0x0,'rows':[]};var _0xa27c84=_[_0xe9f0('0x2b')](db[_0xe9f0('0x2c')][_0xe9f0('0x2d')],function(_0x2b6503){return{'name':_0x2b6503[_0xe9f0('0x2e')],'type':_0x2b6503[_0xe9f0('0x2f')][_0xe9f0('0x30')]};});_0x44fb5b[_0xe9f0('0x31')]=_[_0xe9f0('0x2b')](_0xa27c84,_0xe9f0('0x28'));_0x44fb5b[_0xe9f0('0x32')]=_[_0xe9f0('0x33')](_0x5457f6[_0xe9f0('0x32')]);_0x44fb5b[_0xe9f0('0x34')]=_[_0xe9f0('0x35')](_0x44fb5b[_0xe9f0('0x31')],_0x44fb5b[_0xe9f0('0x32')]);_0xdc16bc[_0xe9f0('0x36')]=_[_0xe9f0('0x35')](_0x44fb5b['model'],qs['fields'](_0x5457f6['query'][_0xe9f0('0x37')]));_0xdc16bc['attributes']=_0xdc16bc[_0xe9f0('0x36')][_0xe9f0('0x38')]?_0xdc16bc['attributes']:_0x44fb5b[_0xe9f0('0x31')];if(!_0x5457f6['query']['hasOwnProperty']('nolimit')){_0xdc16bc[_0xe9f0('0x1d')]=qs[_0xe9f0('0x1d')](_0x5457f6['query'][_0xe9f0('0x1d')]);_0xdc16bc[_0xe9f0('0x1f')]=qs[_0xe9f0('0x1f')](_0x5457f6['query']['offset']);}_0xdc16bc[_0xe9f0('0x39')]=qs[_0xe9f0('0x3a')](_0x5457f6[_0xe9f0('0x32')]['sort']);_0xdc16bc[_0xe9f0('0x3b')]=qs[_0xe9f0('0x34')](_[_0xe9f0('0x3c')](_0x5457f6[_0xe9f0('0x32')],_0x44fb5b[_0xe9f0('0x34')]),_0xa27c84);if(_0x5457f6['query'][_0xe9f0('0x3d')]){_0xdc16bc[_0xe9f0('0x3b')]=_[_0xe9f0('0x3e')](_0xdc16bc['where'],{'$or':_[_0xe9f0('0x2b')](_0xa27c84,function(_0xbec11f){if(_0xbec11f['type']!==_0xe9f0('0x3f')){var _0x5154c3={};_0x5154c3[_0xbec11f[_0xe9f0('0x28')]]={'$like':'%'+_0x5457f6['query']['filter']+'%'};return _0x5154c3;}})});}_0xdc16bc=_['merge']({},_0xdc16bc,_0x5457f6['options']);var _0x5165f7={'where':_0xdc16bc[_0xe9f0('0x3b')]};return db[_0xe9f0('0x2c')][_0xe9f0('0x1e')](_0x5165f7)[_0xe9f0('0x24')](function(_0x2560c6){_0xab3d81[_0xe9f0('0x1e')]=_0x2560c6;if(_0x5457f6[_0xe9f0('0x32')][_0xe9f0('0x40')]){_0xdc16bc[_0xe9f0('0x41')]=[{'all':!![]}];}return db['UserProfileResource'][_0xe9f0('0x42')](_0xdc16bc);})[_0xe9f0('0x24')](function(_0x36b00a){_0xab3d81['rows']=_0x36b00a;return _0xab3d81;})['then'](respondWithFilteredResult(_0x130f96,_0xdc16bc))[_0xe9f0('0x43')](handleError(_0x130f96,null));};exports['show']=function(_0x297689,_0x52613a){var _0x314f0e={'raw':![],'where':{'id':_0x297689['params']['id']}},_0x42d9d2={};_0x42d9d2[_0xe9f0('0x31')]=_[_0xe9f0('0x33')](db[_0xe9f0('0x2c')][_0xe9f0('0x2d')]);_0x42d9d2[_0xe9f0('0x32')]=_['keys'](_0x297689[_0xe9f0('0x32')]);_0x42d9d2[_0xe9f0('0x34')]=_[_0xe9f0('0x35')](_0x42d9d2[_0xe9f0('0x31')],_0x42d9d2[_0xe9f0('0x32')]);_0x314f0e['attributes']=_[_0xe9f0('0x35')](_0x42d9d2['model'],qs['fields'](_0x297689[_0xe9f0('0x32')][_0xe9f0('0x37')]));_0x314f0e['attributes']=_0x314f0e[_0xe9f0('0x36')][_0xe9f0('0x38')]?_0x314f0e[_0xe9f0('0x36')]:_0x42d9d2[_0xe9f0('0x31')];if(_0x297689[_0xe9f0('0x32')][_0xe9f0('0x40')]){_0x314f0e[_0xe9f0('0x41')]=[{'all':!![]}];}_0x314f0e=_['merge']({},_0x314f0e,_0x297689[_0xe9f0('0x44')]);return db['UserProfileResource'][_0xe9f0('0x45')](_0x314f0e)['then'](handleEntityNotFound(_0x52613a,null))[_0xe9f0('0x24')](respondWithResult(_0x52613a,null))['catch'](handleError(_0x52613a,null));};exports[_0xe9f0('0x46')]=function(_0x2023b4,_0x422324){return db['UserProfileResource'][_0xe9f0('0x46')](_0x2023b4[_0xe9f0('0x47')],{})[_0xe9f0('0x24')](respondWithResult(_0x422324,0xc9))[_0xe9f0('0x43')](handleError(_0x422324,null));};exports[_0xe9f0('0x23')]=function(_0x135175,_0x6ece3f){if(_0x135175[_0xe9f0('0x47')]['id']){delete _0x135175[_0xe9f0('0x47')]['id'];}return db[_0xe9f0('0x2c')][_0xe9f0('0x45')]({'where':{'id':_0x135175[_0xe9f0('0x48')]['id']}})['then'](handleEntityNotFound(_0x6ece3f,null))['then'](saveUpdates(_0x135175[_0xe9f0('0x47')],null))[_0xe9f0('0x24')](respondWithResult(_0x6ece3f,null))[_0xe9f0('0x43')](handleError(_0x6ece3f,null));};exports['destroy']=function(_0x1ac381,_0x4d8b2e){return db[_0xe9f0('0x2c')][_0xe9f0('0x45')]({'where':{'id':_0x1ac381[_0xe9f0('0x48')]['id']}})[_0xe9f0('0x24')](handleEntityNotFound(_0x4d8b2e,null))['then'](removeEntity(_0x4d8b2e,null))[_0xe9f0('0x43')](handleError(_0x4d8b2e,null));};exports[_0xe9f0('0x49')]=function(_0x5163ea,_0x2bf65c){return db[_0xe9f0('0x2c')][_0xe9f0('0x49')]()[_0xe9f0('0x24')](respondWithResult(_0x2bf65c,null))['catch'](handleError(_0x2bf65c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccd3=['define','UserProfileResource','user_profile_has_resources','compositeIndex','resourceId','sectionId','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./userProfileResource.attributes'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xccd3,0x1d1));var _0x3ccd=function(_0x1f2e26,_0x3d985b){_0x1f2e26=_0x1f2e26-0x0;var _0x37a06f=_0xccd3[_0x1f2e26];return _0x37a06f;};'use strict';var _=require(_0x3ccd('0x0'));var util=require(_0x3ccd('0x1'));var logger=require(_0x3ccd('0x2'))(_0x3ccd('0x3'));var moment=require(_0x3ccd('0x4'));var BPromise=require(_0x3ccd('0x5'));var rp=require(_0x3ccd('0x6'));var fs=require('fs');var path=require(_0x3ccd('0x7'));var rimraf=require(_0x3ccd('0x8'));var config=require(_0x3ccd('0x9'));var attributes=require(_0x3ccd('0xa'));module['exports']=function(_0x102b3c,_0x2f2e39){return _0x102b3c[_0x3ccd('0xb')](_0x3ccd('0xc'),attributes,{'tableName':_0x3ccd('0xd'),'paranoid':![],'indexes':[{'name':_0x3ccd('0xe'),'fields':[_0x3ccd('0xf'),_0x3ccd('0x10')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x3c06=['sectionId','util','../../config/logger','bluebird','request-promise','path','../../config/environment','./userProfileResource.attributes','exports','define','user_profile_has_resources','compositeIndex','resourceId'];(function(_0x42aec7,_0x1bf5bf){var _0x39aaca=function(_0x422201){while(--_0x422201){_0x42aec7['push'](_0x42aec7['shift']());}};_0x39aaca(++_0x1bf5bf);}(_0x3c06,0x11f));var _0x63c0=function(_0x5957c0,_0x33813b){_0x5957c0=_0x5957c0-0x0;var _0x5d0529=_0x3c06[_0x5957c0];return _0x5d0529;};'use strict';var _=require('lodash');var util=require(_0x63c0('0x0'));var logger=require(_0x63c0('0x1'))('api');var moment=require('moment');var BPromise=require(_0x63c0('0x2'));var rp=require(_0x63c0('0x3'));var fs=require('fs');var path=require(_0x63c0('0x4'));var rimraf=require('rimraf');var config=require(_0x63c0('0x5'));var attributes=require(_0x63c0('0x6'));module[_0x63c0('0x7')]=function(_0x341011,_0xaf00bb){return _0x341011[_0x63c0('0x8')]('UserProfileResource',attributes,{'tableName':_0x63c0('0x9'),'paranoid':![],'indexes':[{'name':_0x63c0('0xa'),'fields':[_0x63c0('0xb'),_0x63c0('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3600=['http','request','then','info','UserProfileResource,\x20%s,\x20%s','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x1c770b,_0x247f88){var _0xb127c9=function(_0x548e69){while(--_0x548e69){_0x1c770b['push'](_0x1c770b['shift']());}};_0xb127c9(++_0x247f88);}(_0x3600,0x7a));var _0x0360=function(_0x33450e,_0x26cb88){_0x33450e=_0x33450e-0x0;var _0x4b9d44=_0x3600[_0x33450e];return _0x4b9d44;};'use strict';var _=require(_0x0360('0x0'));var util=require(_0x0360('0x1'));var moment=require(_0x0360('0x2'));var BPromise=require(_0x0360('0x3'));var rs=require(_0x0360('0x4'));var fs=require('fs');var Redis=require(_0x0360('0x5'));var db=require(_0x0360('0x6'))['db'];var utils=require(_0x0360('0x7'));var logger=require(_0x0360('0x8'))(_0x0360('0x9'));var config=require(_0x0360('0xa'));var jayson=require(_0x0360('0xb'));var client=jayson[_0x0360('0xc')][_0x0360('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x14bb17,_0x4b4915,_0x1a2d91){return new BPromise(function(_0x444f11,_0x288fca){return client[_0x0360('0xe')](_0x14bb17,_0x1a2d91)[_0x0360('0xf')](function(_0x172ac3){logger[_0x0360('0x10')](_0x0360('0x11'),_0x4b4915,'request\x20sent');logger[_0x0360('0x12')](_0x0360('0x13'),_0x4b4915,_0x0360('0x14'),JSON[_0x0360('0x15')](_0x172ac3));if(_0x172ac3[_0x0360('0x16')]){if(_0x172ac3[_0x0360('0x16')][_0x0360('0x17')]===0x1f4){logger[_0x0360('0x16')]('UserProfileResource,\x20%s,\x20%s',_0x4b4915,_0x172ac3[_0x0360('0x16')]['message']);return _0x288fca(_0x172ac3[_0x0360('0x16')][_0x0360('0x18')]);}logger['error']('UserProfileResource,\x20%s,\x20%s',_0x4b4915,_0x172ac3[_0x0360('0x16')]['message']);return _0x444f11(_0x172ac3[_0x0360('0x16')][_0x0360('0x18')]);}else{logger[_0x0360('0x10')](_0x0360('0x11'),_0x4b4915,'request\x20sent');_0x444f11(_0x172ac3[_0x0360('0x19')][_0x0360('0x18')]);}})[_0x0360('0x1a')](function(_0x320788){logger[_0x0360('0x16')](_0x0360('0x11'),_0x4b4915,_0x320788);_0x288fca(_0x320788);});});}
\ No newline at end of file
+var _0xe0bf=['rpc','../../config/environment','http','request','UserProfileResource,\x20%s,\x20%s','debug','UserProfileResource,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','lodash','util','bluebird','../../mysqldb','../../config/utils'];(function(_0x1da41c,_0x31b47c){var _0x2a950a=function(_0x5edb5f){while(--_0x5edb5f){_0x1da41c['push'](_0x1da41c['shift']());}};_0x2a950a(++_0x31b47c);}(_0xe0bf,0x164));var _0xfe0b=function(_0x155d7f,_0x4a8f54){_0x155d7f=_0x155d7f-0x0;var _0x46b528=_0xe0bf[_0x155d7f];return _0x46b528;};'use strict';var _=require(_0xfe0b('0x0'));var util=require(_0xfe0b('0x1'));var moment=require('moment');var BPromise=require(_0xfe0b('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfe0b('0x3'))['db'];var utils=require(_0xfe0b('0x4'));var logger=require('../../config/logger')(_0xfe0b('0x5'));var config=require(_0xfe0b('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0xfe0b('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x553b51,_0x18ede8,_0x5e0ee4){return new BPromise(function(_0x495d82,_0x27800a){return client[_0xfe0b('0x8')](_0x553b51,_0x5e0ee4)['then'](function(_0x14088b){logger['info'](_0xfe0b('0x9'),_0x18ede8,'request\x20sent');logger[_0xfe0b('0xa')](_0xfe0b('0xb'),_0x18ede8,_0xfe0b('0xc'),JSON[_0xfe0b('0xd')](_0x14088b));if(_0x14088b[_0xfe0b('0xe')]){if(_0x14088b[_0xfe0b('0xe')][_0xfe0b('0xf')]===0x1f4){logger[_0xfe0b('0xe')]('UserProfileResource,\x20%s,\x20%s',_0x18ede8,_0x14088b[_0xfe0b('0xe')]['message']);return _0x27800a(_0x14088b[_0xfe0b('0xe')][_0xfe0b('0x10')]);}logger[_0xfe0b('0xe')](_0xfe0b('0x9'),_0x18ede8,_0x14088b[_0xfe0b('0xe')][_0xfe0b('0x10')]);return _0x495d82(_0x14088b[_0xfe0b('0xe')][_0xfe0b('0x10')]);}else{logger[_0xfe0b('0x11')]('UserProfileResource,\x20%s,\x20%s',_0x18ede8,'request\x20sent');_0x495d82(_0x14088b[_0xfe0b('0x12')][_0xfe0b('0x10')]);}})['catch'](function(_0x379c0c){logger['error'](_0xfe0b('0x9'),_0x18ede8,_0x379c0c);_0x27800a(_0x379c0c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6d1=['get','index','/describe','isAuthenticated','describe','/:id','show','post','create','delete','destroy','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileSection.controller'];(function(_0x4c6cf0,_0x826f70){var _0x108145=function(_0x299f69){while(--_0x299f69){_0x4c6cf0['push'](_0x4c6cf0['shift']());}};_0x108145(++_0x826f70);}(_0xe6d1,0xc9));var _0x1e6d=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0xe6d1[_0x4e676e];return _0x336a3c;};'use strict';var multer=require(_0x1e6d('0x0'));var util=require('util');var path=require(_0x1e6d('0x1'));var timeout=require(_0x1e6d('0x2'));var express=require('express');var router=express[_0x1e6d('0x3')]();var fs_extra=require(_0x1e6d('0x4'));var auth=require(_0x1e6d('0x5'));var interaction=require(_0x1e6d('0x6'));var config=require(_0x1e6d('0x7'));var controller=require(_0x1e6d('0x8'));router[_0x1e6d('0x9')]('/',auth['isAuthenticated'](),controller[_0x1e6d('0xa')]);router[_0x1e6d('0x9')](_0x1e6d('0xb'),auth[_0x1e6d('0xc')](),controller[_0x1e6d('0xd')]);router['get'](_0x1e6d('0xe'),auth[_0x1e6d('0xc')](),controller[_0x1e6d('0xf')]);router[_0x1e6d('0x10')]('/',auth['isAuthenticated'](),controller[_0x1e6d('0x11')]);router['put'](_0x1e6d('0xe'),auth[_0x1e6d('0xc')](),controller['update']);router[_0x1e6d('0x12')](_0x1e6d('0xe'),auth['isAuthenticated'](),controller[_0x1e6d('0x13')]);module[_0x1e6d('0x14')]=router;
\ No newline at end of file
+var _0x1b5e=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfileSection.controller','isAuthenticated','index','get','describe','show','post','put','delete','/:id','exports','multer','util'];(function(_0x5e8e82,_0x18f9ec){var _0x4e6805=function(_0x49e820){while(--_0x49e820){_0x5e8e82['push'](_0x5e8e82['shift']());}};_0x4e6805(++_0x18f9ec);}(_0x1b5e,0x167));var _0xe1b5=function(_0x48e766,_0x4e7c2a){_0x48e766=_0x48e766-0x0;var _0x49b9b8=_0x1b5e[_0x48e766];return _0x49b9b8;};'use strict';var multer=require(_0xe1b5('0x0'));var util=require(_0xe1b5('0x1'));var path=require('path');var timeout=require(_0xe1b5('0x2'));var express=require('express');var router=express[_0xe1b5('0x3')]();var fs_extra=require(_0xe1b5('0x4'));var auth=require(_0xe1b5('0x5'));var interaction=require(_0xe1b5('0x6'));var config=require(_0xe1b5('0x7'));var controller=require(_0xe1b5('0x8'));router['get']('/',auth[_0xe1b5('0x9')](),controller[_0xe1b5('0xa')]);router[_0xe1b5('0xb')]('/describe',auth[_0xe1b5('0x9')](),controller[_0xe1b5('0xc')]);router[_0xe1b5('0xb')]('/:id',auth[_0xe1b5('0x9')](),controller[_0xe1b5('0xd')]);router[_0xe1b5('0xe')]('/',auth[_0xe1b5('0x9')](),controller['create']);router[_0xe1b5('0xf')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0xe1b5('0x10')](_0xe1b5('0x11'),auth[_0xe1b5('0x9')](),controller['destroy']);module[_0xe1b5('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb78e=['STRING','INTEGER','BOOLEAN','setDataValue','crudPermissions','getDataValue','split','sequelize','exports'];(function(_0x4d4107,_0xeb457c){var _0x190def=function(_0x4c29dc){while(--_0x4c29dc){_0x4d4107['push'](_0x4d4107['shift']());}};_0x190def(++_0xeb457c);}(_0xb78e,0x1c9));var _0xeb78=function(_0x47bf9f,_0x22cde1){_0x47bf9f=_0x47bf9f-0x0;var _0x1004c3=_0xb78e[_0x47bf9f];return _0x1004c3;};'use strict';var Sequelize=require(_0xeb78('0x0'));module[_0xeb78('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'category':{'type':Sequelize[_0xeb78('0x2')],'allowNull':![]},'sectionId':{'type':Sequelize[_0xeb78('0x3')],'allowNull':![]},'enabled':{'type':Sequelize[_0xeb78('0x4')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xeb78('0x4')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0xeb78('0x2')],'set':function(_0x308d12){this[_0xeb78('0x5')](_0xeb78('0x6'),_0x308d12?_0x308d12['join'](''):[]);},'get':function(){return this[_0xeb78('0x7')](_0xeb78('0x6'))?this[_0xeb78('0x7')](_0xeb78('0x6'))[_0xeb78('0x8')](''):[];}}};
\ No newline at end of file
+var _0x1775=['INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split','exports','STRING'];(function(_0x42b180,_0x45eb41){var _0x2a0be4=function(_0x56cca0){while(--_0x56cca0){_0x42b180['push'](_0x42b180['shift']());}};_0x2a0be4(++_0x45eb41);}(_0x1775,0x1db));var _0x5177=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x1775[_0x19e35c];return _0x3e1fe8;};'use strict';var Sequelize=require('sequelize');module[_0x5177('0x0')]={'name':{'type':Sequelize[_0x5177('0x1')],'allowNull':![]},'category':{'type':Sequelize[_0x5177('0x1')],'allowNull':![]},'sectionId':{'type':Sequelize[_0x5177('0x2')],'allowNull':![]},'enabled':{'type':Sequelize[_0x5177('0x3')],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0x5177('0x3')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0x5177('0x1')],'set':function(_0x2027bf){this[_0x5177('0x4')](_0x5177('0x5'),_0x2027bf?_0x2027bf[_0x5177('0x6')](''):[]);},'get':function(){return this[_0x5177('0x7')](_0x5177('0x5'))?this[_0x5177('0x7')](_0x5177('0x5'))[_0x5177('0x8')](''):[];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5238=['map','fieldName','type','model','query','keys','fields','attributes','length','nolimit','sort','pick','filters','filter','where','options','UserProfileSection','includeAll','rows','catch','show','params','rawAttributes','intersection','include','merge','find','create','body','describe','rimraf','fast-json-patch','request-promise','moment','mustache','util','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','offset','limit','undefined','count','set','Content-Range','reject','save','update','then','destroy','end','sendStatus','error','stack','name','send'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5238,0xb0));var _0x8523=function(_0x2f6e08,_0x2b5450){_0x2f6e08=_0x2f6e08-0x0;var _0x369008=_0x5238[_0x2f6e08];return _0x369008;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8523('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8523('0x1'));var rp=require(_0x8523('0x2'));var moment=require(_0x8523('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8523('0x4'));var util=require(_0x8523('0x5'));var path=require('path');var sox=require(_0x8523('0x6'));var csv=require('to-csv');var ejs=require(_0x8523('0x7'));var fs=require('fs');var fs_extra=require(_0x8523('0x8'));var _=require(_0x8523('0x9'));var squel=require('squel');var crypto=require(_0x8523('0xa'));var jsforce=require(_0x8523('0xb'));var deskjs=require(_0x8523('0xc'));var toCsv=require(_0x8523('0xd'));var querystring=require(_0x8523('0xe'));var Papa=require('papaparse');var Redis=require(_0x8523('0xf'));var authService=require(_0x8523('0x10'));var qs=require(_0x8523('0x11'));var as=require(_0x8523('0x12'));var hardwareService=require(_0x8523('0x13'));var logger=require(_0x8523('0x14'))('api');var utils=require(_0x8523('0x15'));var config=require(_0x8523('0x16'));var licenseUtil=require(_0x8523('0x17'));var db=require(_0x8523('0x18'))['db'];function respondWithStatusCode(_0x382bc6,_0x4f7b59){_0x4f7b59=_0x4f7b59||0xcc;return function(_0x4fb6ac){if(_0x4fb6ac){return _0x382bc6['sendStatus'](_0x4f7b59);}return _0x382bc6[_0x8523('0x19')](_0x4f7b59)['end']();};}function respondWithResult(_0xcc4ae8,_0x126eef){_0x126eef=_0x126eef||0xc8;return function(_0x15c9f4){if(_0x15c9f4){return _0xcc4ae8[_0x8523('0x19')](_0x126eef)['json'](_0x15c9f4);}};}function respondWithFilteredResult(_0x1b80a9,_0x4158a9){return function(_0x2a58b0){if(_0x2a58b0){var _0xea3c20=typeof _0x4158a9[_0x8523('0x1a')]==='undefined'&&typeof _0x4158a9[_0x8523('0x1b')]===_0x8523('0x1c');var _0x42c9f0=_0x2a58b0[_0x8523('0x1d')];var _0x53e0dc=_0xea3c20?0x0:_0x4158a9['offset'];var _0x3e6d21=_0xea3c20?_0x2a58b0[_0x8523('0x1d')]:_0x4158a9['offset']+_0x4158a9[_0x8523('0x1b')];var _0x468574;if(_0x3e6d21>=_0x42c9f0){_0x3e6d21=_0x42c9f0;_0x468574=0xc8;}else{_0x468574=0xce;}_0x1b80a9[_0x8523('0x19')](_0x468574);return _0x1b80a9[_0x8523('0x1e')](_0x8523('0x1f'),_0x53e0dc+'-'+_0x3e6d21+'/'+_0x42c9f0)['json'](_0x2a58b0);}return null;};}function patchUpdates(_0x586a04){return function(_0x46d58c){try{jsonpatch['apply'](_0x46d58c,_0x586a04,!![]);}catch(_0x3e6ed6){return BPromise[_0x8523('0x20')](_0x3e6ed6);}return _0x46d58c[_0x8523('0x21')]();};}function saveUpdates(_0x4c3bf0,_0x3707e4){return function(_0x2a8978){if(_0x2a8978){return _0x2a8978[_0x8523('0x22')](_0x4c3bf0)[_0x8523('0x23')](function(_0x1a8c0c){return _0x1a8c0c;});}return null;};}function removeEntity(_0x274ada,_0x372696){return function(_0x48e000){if(_0x48e000){return _0x48e000[_0x8523('0x24')]()[_0x8523('0x23')](function(){_0x274ada[_0x8523('0x19')](0xcc)[_0x8523('0x25')]();});}};}function handleEntityNotFound(_0x4700bd,_0x22b3f9){return function(_0x530028){if(!_0x530028){_0x4700bd[_0x8523('0x26')](0x194);}return _0x530028;};}function handleError(_0x58c042,_0x24d71d){_0x24d71d=_0x24d71d||0x1f4;return function(_0x4c464a){logger[_0x8523('0x27')](_0x4c464a[_0x8523('0x28')]);if(_0x4c464a[_0x8523('0x29')]){delete _0x4c464a[_0x8523('0x29')];}_0x58c042[_0x8523('0x19')](_0x24d71d)[_0x8523('0x2a')](_0x4c464a);};}exports['index']=function(_0x439f2b,_0x188ab8){var _0xaa49a={},_0x36b48a={},_0x5b0170={'count':0x0,'rows':[]};var _0x49f69c=_[_0x8523('0x2b')](db['UserProfileSection']['rawAttributes'],function(_0x5c9998){return{'name':_0x5c9998[_0x8523('0x2c')],'type':_0x5c9998[_0x8523('0x2d')]['key']};});_0x36b48a[_0x8523('0x2e')]=_[_0x8523('0x2b')](_0x49f69c,'name');_0x36b48a[_0x8523('0x2f')]=_[_0x8523('0x30')](_0x439f2b[_0x8523('0x2f')]);_0x36b48a['filters']=_['intersection'](_0x36b48a[_0x8523('0x2e')],_0x36b48a[_0x8523('0x2f')]);_0xaa49a['attributes']=_['intersection'](_0x36b48a[_0x8523('0x2e')],qs[_0x8523('0x31')](_0x439f2b[_0x8523('0x2f')]['fields']));_0xaa49a[_0x8523('0x32')]=_0xaa49a['attributes'][_0x8523('0x33')]?_0xaa49a[_0x8523('0x32')]:_0x36b48a[_0x8523('0x2e')];if(!_0x439f2b['query']['hasOwnProperty'](_0x8523('0x34'))){_0xaa49a[_0x8523('0x1b')]=qs['limit'](_0x439f2b['query'][_0x8523('0x1b')]);_0xaa49a[_0x8523('0x1a')]=qs['offset'](_0x439f2b['query'][_0x8523('0x1a')]);}_0xaa49a['order']=qs[_0x8523('0x35')](_0x439f2b[_0x8523('0x2f')][_0x8523('0x35')]);_0xaa49a['where']=qs['filters'](_[_0x8523('0x36')](_0x439f2b[_0x8523('0x2f')],_0x36b48a[_0x8523('0x37')]),_0x49f69c);if(_0x439f2b[_0x8523('0x2f')][_0x8523('0x38')]){_0xaa49a[_0x8523('0x39')]=_['merge'](_0xaa49a[_0x8523('0x39')],{'$or':_[_0x8523('0x2b')](_0x49f69c,function(_0x76afca){if(_0x76afca[_0x8523('0x2d')]!=='VIRTUAL'){var _0x3ccd17={};_0x3ccd17[_0x76afca['name']]={'$like':'%'+_0x439f2b[_0x8523('0x2f')]['filter']+'%'};return _0x3ccd17;}})});}_0xaa49a=_['merge']({},_0xaa49a,_0x439f2b[_0x8523('0x3a')]);var _0x38b3ab={'where':_0xaa49a[_0x8523('0x39')]};return db[_0x8523('0x3b')]['count'](_0x38b3ab)[_0x8523('0x23')](function(_0x3d1181){_0x5b0170[_0x8523('0x1d')]=_0x3d1181;if(_0x439f2b[_0x8523('0x2f')][_0x8523('0x3c')]){_0xaa49a['include']=[{'all':!![]}];}return db[_0x8523('0x3b')]['findAll'](_0xaa49a);})[_0x8523('0x23')](function(_0x413039){_0x5b0170[_0x8523('0x3d')]=_0x413039;return _0x5b0170;})[_0x8523('0x23')](respondWithFilteredResult(_0x188ab8,_0xaa49a))[_0x8523('0x3e')](handleError(_0x188ab8,null));};exports[_0x8523('0x3f')]=function(_0x357a4d,_0xb5b1e2){var _0x56ce10={'raw':![],'where':{'id':_0x357a4d[_0x8523('0x40')]['id']}},_0x5190d5={};_0x5190d5[_0x8523('0x2e')]=_[_0x8523('0x30')](db['UserProfileSection'][_0x8523('0x41')]);_0x5190d5[_0x8523('0x2f')]=_[_0x8523('0x30')](_0x357a4d[_0x8523('0x2f')]);_0x5190d5['filters']=_[_0x8523('0x42')](_0x5190d5['model'],_0x5190d5[_0x8523('0x2f')]);_0x56ce10[_0x8523('0x32')]=_[_0x8523('0x42')](_0x5190d5['model'],qs[_0x8523('0x31')](_0x357a4d[_0x8523('0x2f')]['fields']));_0x56ce10[_0x8523('0x32')]=_0x56ce10['attributes'][_0x8523('0x33')]?_0x56ce10[_0x8523('0x32')]:_0x5190d5[_0x8523('0x2e')];if(_0x357a4d[_0x8523('0x2f')][_0x8523('0x3c')]){_0x56ce10[_0x8523('0x43')]=[{'all':!![]}];}_0x56ce10=_[_0x8523('0x44')]({},_0x56ce10,_0x357a4d['options']);return db[_0x8523('0x3b')][_0x8523('0x45')](_0x56ce10)[_0x8523('0x23')](handleEntityNotFound(_0xb5b1e2,null))['then'](respondWithResult(_0xb5b1e2,null))[_0x8523('0x3e')](handleError(_0xb5b1e2,null));};exports[_0x8523('0x46')]=function(_0x1a297d,_0x328ef6){return db[_0x8523('0x3b')][_0x8523('0x46')](_0x1a297d[_0x8523('0x47')],{})[_0x8523('0x23')](respondWithResult(_0x328ef6,0xc9))[_0x8523('0x3e')](handleError(_0x328ef6,null));};exports['update']=function(_0x40e186,_0x100d00){if(_0x40e186['body']['id']){delete _0x40e186[_0x8523('0x47')]['id'];}return db[_0x8523('0x3b')][_0x8523('0x45')]({'where':{'id':_0x40e186['params']['id']}})[_0x8523('0x23')](handleEntityNotFound(_0x100d00,null))['then'](saveUpdates(_0x40e186[_0x8523('0x47')],null))[_0x8523('0x23')](respondWithResult(_0x100d00,null))[_0x8523('0x3e')](handleError(_0x100d00,null));};exports[_0x8523('0x24')]=function(_0x3ce513,_0x3a45da){return db[_0x8523('0x3b')][_0x8523('0x45')]({'where':{'id':_0x3ce513['params']['id']}})['then'](handleEntityNotFound(_0x3a45da,null))[_0x8523('0x23')](removeEntity(_0x3a45da,null))['catch'](handleError(_0x3a45da,null));};exports['describe']=function(_0x569eee,_0x16f86b){return db['UserProfileSection'][_0x8523('0x48')]()['then'](respondWithResult(_0x16f86b,null))[_0x8523('0x3e')](handleError(_0x16f86b,null));};
\ No newline at end of file
+var _0x649b=['describe','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','count','limit','set','Content-Range','apply','reject','save','destroy','then','end','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','filters','intersection','query','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','UserProfileSection','includeAll','include','findAll','rows','catch','show','params','create','update','body','find'];(function(_0x23be93,_0x484e0b){var _0x5f2995=function(_0x37cc92){while(--_0x37cc92){_0x23be93['push'](_0x23be93['shift']());}};_0x5f2995(++_0x484e0b);}(_0x649b,0x182));var _0xb649=function(_0x5b08f8,_0x134f21){_0x5b08f8=_0x5b08f8-0x0;var _0x46d950=_0x649b[_0x5b08f8];return _0x46d950;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb649('0x0'));var zipdir=require(_0xb649('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb649('0x2'));var moment=require(_0xb649('0x3'));var BPromise=require(_0xb649('0x4'));var Mustache=require(_0xb649('0x5'));var util=require(_0xb649('0x6'));var path=require(_0xb649('0x7'));var sox=require(_0xb649('0x8'));var csv=require('to-csv');var ejs=require(_0xb649('0x9'));var fs=require('fs');var fs_extra=require(_0xb649('0xa'));var _=require('lodash');var squel=require(_0xb649('0xb'));var crypto=require(_0xb649('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xb649('0xd'));var toCsv=require(_0xb649('0xe'));var querystring=require(_0xb649('0xf'));var Papa=require(_0xb649('0x10'));var Redis=require(_0xb649('0x11'));var authService=require(_0xb649('0x12'));var qs=require(_0xb649('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb649('0x14'));var logger=require(_0xb649('0x15'))('api');var utils=require(_0xb649('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xb649('0x17'));var db=require(_0xb649('0x18'))['db'];function respondWithStatusCode(_0x5df6ca,_0x21b6c){_0x21b6c=_0x21b6c||0xcc;return function(_0x4eb184){if(_0x4eb184){return _0x5df6ca['sendStatus'](_0x21b6c);}return _0x5df6ca[_0xb649('0x19')](_0x21b6c)['end']();};}function respondWithResult(_0x488952,_0x14c484){_0x14c484=_0x14c484||0xc8;return function(_0x202550){if(_0x202550){return _0x488952[_0xb649('0x19')](_0x14c484)[_0xb649('0x1a')](_0x202550);}};}function respondWithFilteredResult(_0x59f6a0,_0x48baf8){return function(_0x4c0180){if(_0x4c0180){var _0x34cc34=typeof _0x48baf8[_0xb649('0x1b')]==='undefined'&&typeof _0x48baf8['limit']==='undefined';var _0x1a3d84=_0x4c0180[_0xb649('0x1c')];var _0x2198f8=_0x34cc34?0x0:_0x48baf8[_0xb649('0x1b')];var _0x2b9f3e=_0x34cc34?_0x4c0180[_0xb649('0x1c')]:_0x48baf8[_0xb649('0x1b')]+_0x48baf8[_0xb649('0x1d')];var _0x3daf36;if(_0x2b9f3e>=_0x1a3d84){_0x2b9f3e=_0x1a3d84;_0x3daf36=0xc8;}else{_0x3daf36=0xce;}_0x59f6a0[_0xb649('0x19')](_0x3daf36);return _0x59f6a0[_0xb649('0x1e')](_0xb649('0x1f'),_0x2198f8+'-'+_0x2b9f3e+'/'+_0x1a3d84)[_0xb649('0x1a')](_0x4c0180);}return null;};}function patchUpdates(_0x3c727c){return function(_0x3f8239){try{jsonpatch[_0xb649('0x20')](_0x3f8239,_0x3c727c,!![]);}catch(_0x1b38b9){return BPromise[_0xb649('0x21')](_0x1b38b9);}return _0x3f8239[_0xb649('0x22')]();};}function saveUpdates(_0x42d160,_0x27c9e2){return function(_0x541af8){if(_0x541af8){return _0x541af8['update'](_0x42d160)['then'](function(_0x387fec){return _0x387fec;});}return null;};}function removeEntity(_0x14d79d,_0x22602f){return function(_0x5e4bea){if(_0x5e4bea){return _0x5e4bea[_0xb649('0x23')]()[_0xb649('0x24')](function(){_0x14d79d[_0xb649('0x19')](0xcc)[_0xb649('0x25')]();});}};}function handleEntityNotFound(_0xf37014,_0x182fea){return function(_0x31d460){if(!_0x31d460){_0xf37014['sendStatus'](0x194);}return _0x31d460;};}function handleError(_0x213049,_0x73c27e){_0x73c27e=_0x73c27e||0x1f4;return function(_0x524ef8){logger['error'](_0x524ef8[_0xb649('0x26')]);if(_0x524ef8[_0xb649('0x27')]){delete _0x524ef8[_0xb649('0x27')];}_0x213049['status'](_0x73c27e)[_0xb649('0x28')](_0x524ef8);};}exports[_0xb649('0x29')]=function(_0x3ea599,_0x32260a){var _0xd9593f={},_0x55f619={},_0x22d54f={'count':0x0,'rows':[]};var _0x5ecadd=_[_0xb649('0x2a')](db['UserProfileSection'][_0xb649('0x2b')],function(_0x129d16){return{'name':_0x129d16[_0xb649('0x2c')],'type':_0x129d16[_0xb649('0x2d')][_0xb649('0x2e')]};});_0x55f619[_0xb649('0x2f')]=_[_0xb649('0x2a')](_0x5ecadd,'name');_0x55f619['query']=_[_0xb649('0x30')](_0x3ea599['query']);_0x55f619[_0xb649('0x31')]=_[_0xb649('0x32')](_0x55f619[_0xb649('0x2f')],_0x55f619[_0xb649('0x33')]);_0xd9593f[_0xb649('0x34')]=_['intersection'](_0x55f619[_0xb649('0x2f')],qs[_0xb649('0x35')](_0x3ea599[_0xb649('0x33')][_0xb649('0x35')]));_0xd9593f[_0xb649('0x34')]=_0xd9593f['attributes']['length']?_0xd9593f['attributes']:_0x55f619[_0xb649('0x2f')];if(!_0x3ea599[_0xb649('0x33')][_0xb649('0x36')](_0xb649('0x37'))){_0xd9593f[_0xb649('0x1d')]=qs['limit'](_0x3ea599[_0xb649('0x33')][_0xb649('0x1d')]);_0xd9593f[_0xb649('0x1b')]=qs[_0xb649('0x1b')](_0x3ea599[_0xb649('0x33')][_0xb649('0x1b')]);}_0xd9593f[_0xb649('0x38')]=qs[_0xb649('0x39')](_0x3ea599['query'][_0xb649('0x39')]);_0xd9593f[_0xb649('0x3a')]=qs['filters'](_[_0xb649('0x3b')](_0x3ea599[_0xb649('0x33')],_0x55f619[_0xb649('0x31')]),_0x5ecadd);if(_0x3ea599[_0xb649('0x33')]['filter']){_0xd9593f[_0xb649('0x3a')]=_[_0xb649('0x3c')](_0xd9593f[_0xb649('0x3a')],{'$or':_[_0xb649('0x2a')](_0x5ecadd,function(_0x5625b6){if(_0x5625b6['type']!==_0xb649('0x3d')){var _0x214209={};_0x214209[_0x5625b6['name']]={'$like':'%'+_0x3ea599[_0xb649('0x33')][_0xb649('0x3e')]+'%'};return _0x214209;}})});}_0xd9593f=_[_0xb649('0x3c')]({},_0xd9593f,_0x3ea599[_0xb649('0x3f')]);var _0x191f98={'where':_0xd9593f[_0xb649('0x3a')]};return db[_0xb649('0x40')]['count'](_0x191f98)[_0xb649('0x24')](function(_0x908726){_0x22d54f[_0xb649('0x1c')]=_0x908726;if(_0x3ea599[_0xb649('0x33')][_0xb649('0x41')]){_0xd9593f[_0xb649('0x42')]=[{'all':!![]}];}return db[_0xb649('0x40')][_0xb649('0x43')](_0xd9593f);})['then'](function(_0x2c32c8){_0x22d54f[_0xb649('0x44')]=_0x2c32c8;return _0x22d54f;})['then'](respondWithFilteredResult(_0x32260a,_0xd9593f))[_0xb649('0x45')](handleError(_0x32260a,null));};exports[_0xb649('0x46')]=function(_0x23800b,_0x4f6d2d){var _0x161230={'raw':![],'where':{'id':_0x23800b[_0xb649('0x47')]['id']}},_0x512a18={};_0x512a18[_0xb649('0x2f')]=_['keys'](db[_0xb649('0x40')]['rawAttributes']);_0x512a18['query']=_[_0xb649('0x30')](_0x23800b['query']);_0x512a18[_0xb649('0x31')]=_['intersection'](_0x512a18[_0xb649('0x2f')],_0x512a18[_0xb649('0x33')]);_0x161230[_0xb649('0x34')]=_[_0xb649('0x32')](_0x512a18['model'],qs[_0xb649('0x35')](_0x23800b[_0xb649('0x33')][_0xb649('0x35')]));_0x161230['attributes']=_0x161230[_0xb649('0x34')]['length']?_0x161230[_0xb649('0x34')]:_0x512a18['model'];if(_0x23800b[_0xb649('0x33')]['includeAll']){_0x161230['include']=[{'all':!![]}];}_0x161230=_[_0xb649('0x3c')]({},_0x161230,_0x23800b[_0xb649('0x3f')]);return db[_0xb649('0x40')]['find'](_0x161230)[_0xb649('0x24')](handleEntityNotFound(_0x4f6d2d,null))[_0xb649('0x24')](respondWithResult(_0x4f6d2d,null))[_0xb649('0x45')](handleError(_0x4f6d2d,null));};exports[_0xb649('0x48')]=function(_0x50375e,_0x1c3c4d){return db['UserProfileSection'][_0xb649('0x48')](_0x50375e['body'],{})[_0xb649('0x24')](respondWithResult(_0x1c3c4d,0xc9))['catch'](handleError(_0x1c3c4d,null));};exports[_0xb649('0x49')]=function(_0x4d23a9,_0x29e9f2){if(_0x4d23a9[_0xb649('0x4a')]['id']){delete _0x4d23a9[_0xb649('0x4a')]['id'];}return db[_0xb649('0x40')][_0xb649('0x4b')]({'where':{'id':_0x4d23a9[_0xb649('0x47')]['id']}})['then'](handleEntityNotFound(_0x29e9f2,null))['then'](saveUpdates(_0x4d23a9[_0xb649('0x4a')],null))[_0xb649('0x24')](respondWithResult(_0x29e9f2,null))[_0xb649('0x45')](handleError(_0x29e9f2,null));};exports[_0xb649('0x23')]=function(_0x2c3be1,_0x30322e){return db[_0xb649('0x40')]['find']({'where':{'id':_0x2c3be1[_0xb649('0x47')]['id']}})[_0xb649('0x24')](handleEntityNotFound(_0x30322e,null))[_0xb649('0x24')](removeEntity(_0x30322e,null))[_0xb649('0x45')](handleError(_0x30322e,null));};exports[_0xb649('0x4c')]=function(_0x2be332,_0x5b4677){return db[_0xb649('0x40')][_0xb649('0x4c')]()[_0xb649('0x24')](respondWithResult(_0x5b4677,null))[_0xb649('0x45')](handleError(_0x5b4677,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffd8=['exports','define','compositeIndex','sectionId','userProfileId','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x9242fc,_0x3acc7a){var _0xf75290=function(_0x4d095b){while(--_0x4d095b){_0x9242fc['push'](_0x9242fc['shift']());}};_0xf75290(++_0x3acc7a);}(_0xffd8,0x1bf));var _0x8ffd=function(_0x41bcdc,_0x58756a){_0x41bcdc=_0x41bcdc-0x0;var _0x197674=_0xffd8[_0x41bcdc];return _0x197674;};'use strict';var _=require(_0x8ffd('0x0'));var util=require(_0x8ffd('0x1'));var logger=require('../../config/logger')(_0x8ffd('0x2'));var moment=require('moment');var BPromise=require(_0x8ffd('0x3'));var rp=require(_0x8ffd('0x4'));var fs=require('fs');var path=require(_0x8ffd('0x5'));var rimraf=require(_0x8ffd('0x6'));var config=require(_0x8ffd('0x7'));var attributes=require('./userProfileSection.attributes');module[_0x8ffd('0x8')]=function(_0x4d4582,_0x3d717d){return _0x4d4582[_0x8ffd('0x9')]('UserProfileSection',attributes,{'tableName':'user_profile_has_sections','paranoid':![],'indexes':[{'name':_0x8ffd('0xa'),'fields':[_0x8ffd('0xb'),_0x8ffd('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x50c4=['path','rimraf','../../config/environment','./userProfileSection.attributes','exports','define','compositeIndex','sectionId','userProfileId','lodash','../../config/logger','moment','bluebird','request-promise'];(function(_0xeec739,_0x10a2e0){var _0x272e0a=function(_0x2faba1){while(--_0x2faba1){_0xeec739['push'](_0xeec739['shift']());}};_0x272e0a(++_0x10a2e0);}(_0x50c4,0x87));var _0x450c=function(_0x38d9cb,_0x30654d){_0x38d9cb=_0x38d9cb-0x0;var _0x15102a=_0x50c4[_0x38d9cb];return _0x15102a;};'use strict';var _=require(_0x450c('0x0'));var util=require('util');var logger=require(_0x450c('0x1'))('api');var moment=require(_0x450c('0x2'));var BPromise=require(_0x450c('0x3'));var rp=require(_0x450c('0x4'));var fs=require('fs');var path=require(_0x450c('0x5'));var rimraf=require(_0x450c('0x6'));var config=require(_0x450c('0x7'));var attributes=require(_0x450c('0x8'));module[_0x450c('0x9')]=function(_0x4296e7,_0x4561af){return _0x4296e7[_0x450c('0xa')]('UserProfileSection',attributes,{'tableName':'user_profile_has_sections','paranoid':![],'indexes':[{'name':_0x450c('0xb'),'fields':[_0x450c('0xc'),_0x450c('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a48=['util','moment','bluebird','ioredis','../../config/utils','jayson/promise','client','http','request','info','UserProfileSection,\x20%s,\x20%s','request\x20sent','debug','UserProfileSection,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash'];(function(_0x3bfb6f,_0x495034){var _0x36223c=function(_0x276b67){while(--_0x276b67){_0x3bfb6f['push'](_0x3bfb6f['shift']());}};_0x36223c(++_0x495034);}(_0x6a48,0x117));var _0x86a4=function(_0x8924fc,_0x114f28){_0x8924fc=_0x8924fc-0x0;var _0x639fa3=_0x6a48[_0x8924fc];return _0x639fa3;};'use strict';var _=require(_0x86a4('0x0'));var util=require(_0x86a4('0x1'));var moment=require(_0x86a4('0x2'));var BPromise=require(_0x86a4('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x86a4('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x86a4('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x86a4('0x6'));var client=jayson[_0x86a4('0x7')][_0x86a4('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x597c63,_0x44270b,_0x4de5a7){return new BPromise(function(_0x1d986c,_0x5386b2){return client[_0x86a4('0x9')](_0x597c63,_0x4de5a7)['then'](function(_0x3707f3){logger[_0x86a4('0xa')](_0x86a4('0xb'),_0x44270b,_0x86a4('0xc'));logger[_0x86a4('0xd')](_0x86a4('0xe'),_0x44270b,'request\x20sent',JSON[_0x86a4('0xf')](_0x3707f3));if(_0x3707f3[_0x86a4('0x10')]){if(_0x3707f3[_0x86a4('0x10')]['code']===0x1f4){logger[_0x86a4('0x10')](_0x86a4('0xb'),_0x44270b,_0x3707f3['error'][_0x86a4('0x11')]);return _0x5386b2(_0x3707f3[_0x86a4('0x10')][_0x86a4('0x11')]);}logger['error'](_0x86a4('0xb'),_0x44270b,_0x3707f3[_0x86a4('0x10')][_0x86a4('0x11')]);return _0x1d986c(_0x3707f3[_0x86a4('0x10')][_0x86a4('0x11')]);}else{logger[_0x86a4('0xa')](_0x86a4('0xb'),_0x44270b,'request\x20sent');_0x1d986c(_0x3707f3[_0x86a4('0x12')][_0x86a4('0x11')]);}})[_0x86a4('0x13')](function(_0x34e317){logger[_0x86a4('0x10')](_0x86a4('0xb'),_0x44270b,_0x34e317);_0x5386b2(_0x34e317);});});}
\ No newline at end of file
+var _0x85b3=['error','code','message','catch','lodash','moment','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','UserProfileSection,\x20%s,\x20%s','request\x20sent','UserProfileSection,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x9aef40,_0x4f069d){var _0x5c1ef7=function(_0x7d8d19){while(--_0x7d8d19){_0x9aef40['push'](_0x9aef40['shift']());}};_0x5c1ef7(++_0x4f069d);}(_0x85b3,0x90));var _0x385b=function(_0x1b222a,_0x2612be){_0x1b222a=_0x1b222a-0x0;var _0x288ee2=_0x85b3[_0x1b222a];return _0x288ee2;};'use strict';var _=require(_0x385b('0x0'));var util=require('util');var moment=require(_0x385b('0x1'));var BPromise=require('bluebird');var rs=require(_0x385b('0x2'));var fs=require('fs');var Redis=require(_0x385b('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x385b('0x4'));var logger=require('../../config/logger')(_0x385b('0x5'));var config=require(_0x385b('0x6'));var jayson=require(_0x385b('0x7'));var client=jayson[_0x385b('0x8')][_0x385b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3997c8,_0x4598e3,_0xf6d567){return new BPromise(function(_0x22595c,_0x5788a3){return client[_0x385b('0xa')](_0x3997c8,_0xf6d567)[_0x385b('0xb')](function(_0x14e7bb){logger['info'](_0x385b('0xc'),_0x4598e3,_0x385b('0xd'));logger['debug'](_0x385b('0xe'),_0x4598e3,_0x385b('0xd'),JSON[_0x385b('0xf')](_0x14e7bb));if(_0x14e7bb[_0x385b('0x10')]){if(_0x14e7bb[_0x385b('0x10')][_0x385b('0x11')]===0x1f4){logger['error'](_0x385b('0xc'),_0x4598e3,_0x14e7bb['error'][_0x385b('0x12')]);return _0x5788a3(_0x14e7bb[_0x385b('0x10')][_0x385b('0x12')]);}logger[_0x385b('0x10')](_0x385b('0xc'),_0x4598e3,_0x14e7bb[_0x385b('0x10')][_0x385b('0x12')]);return _0x22595c(_0x14e7bb[_0x385b('0x10')][_0x385b('0x12')]);}else{logger['info'](_0x385b('0xc'),_0x4598e3,'request\x20sent');_0x22595c(_0x14e7bb['result'][_0x385b('0x12')]);}})[_0x385b('0x13')](function(_0x455263){logger[_0x385b('0x10')](_0x385b('0xc'),_0x4598e3,_0x455263);_0x5788a3(_0x455263);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x13bb35,_0x5dafe5){var _0x45a08c=function(_0x5147a7){while(--_0x5147a7){_0x13bb35['push'](_0x13bb35['shift']());}};_0x45a08c(++_0x5dafe5);}(_0xe706,0xa3));var _0x6e70=function(_0x4d82e1,_0x5ac72b){_0x4d82e1=_0x4d82e1-0x0;var _0x5f3bd9=_0xe706[_0x4d82e1];return _0x5f3bd9;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x2f3216,_0xcca8c){var _0x38743a=function(_0x5deb6e){while(--_0x5deb6e){_0x2f3216['push'](_0x2f3216['shift']());}};_0x38743a(++_0xcca8c);}(_0x70e0,0x17b));var _0x070e=function(_0x378d11,_0x1860ea){_0x378d11=_0x378d11-0x0;var _0x14aa6b=_0x70e0[_0x378d11];return _0x14aa6b;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x437c=['sequelize','exports','INTEGER'];(function(_0x49e533,_0x5daa8a){var _0x17769d=function(_0x22c440){while(--_0x22c440){_0x49e533['push'](_0x49e533['shift']());}};_0x17769d(++_0x5daa8a);}(_0x437c,0xd8));var _0xc437=function(_0x508cb7,_0x544080){_0x508cb7=_0x508cb7-0x0;var _0x27cd5c=_0x437c[_0x508cb7];return _0x27cd5c;};'use strict';var Sequelize=require(_0xc437('0x0'));module[_0xc437('0x1')]={'penalty':{'type':Sequelize[_0xc437('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x95d0=['exports','sequelize'];(function(_0x1f62c3,_0x1ff95b){var _0x385c1c=function(_0x1db580){while(--_0x1db580){_0x1f62c3['push'](_0x1f62c3['shift']());}};_0x385c1c(++_0x1ff95b);}(_0x95d0,0x1d1));var _0x095d=function(_0x483884,_0x213f67){_0x483884=_0x483884-0x0;var _0x3233a9=_0x95d0[_0x483884];return _0x3233a9;};'use strict';var Sequelize=require(_0x095d('0x0'));module[_0x095d('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5430=['../../config/logger','api','moment','bluebird','rimraf','exports','define','UserSmsQueue','lodash','util'];(function(_0x4bf3ca,_0x285aeb){var _0x4f7b33=function(_0x40ea4c){while(--_0x40ea4c){_0x4bf3ca['push'](_0x4bf3ca['shift']());}};_0x4f7b33(++_0x285aeb);}(_0x5430,0x10c));var _0x0543=function(_0x27959a,_0x3c35cf){_0x27959a=_0x27959a-0x0;var _0x24ef7c=_0x5430[_0x27959a];return _0x24ef7c;};'use strict';var _=require(_0x0543('0x0'));var util=require(_0x0543('0x1'));var logger=require(_0x0543('0x2'))(_0x0543('0x3'));var moment=require(_0x0543('0x4'));var BPromise=require(_0x0543('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x0543('0x6'));var config=require('../../config/environment');var attributes=require('./userSmsQueue.attributes');module[_0x0543('0x7')]=function(_0x45b909,_0x9754ba){return _0x45b909[_0x0543('0x8')](_0x0543('0x9'),attributes,{'tableName':'user_has_sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1883=['../../config/environment','./userSmsQueue.attributes','exports','define','UserSmsQueue','user_has_sms_queues','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x28afbe,_0x4d655b){var _0x16a494=function(_0x1efdc5){while(--_0x1efdc5){_0x28afbe['push'](_0x28afbe['shift']());}};_0x16a494(++_0x4d655b);}(_0x1883,0xab));var _0x3188=function(_0x4a2af,_0x1d58d9){_0x4a2af=_0x4a2af-0x0;var _0x3f3e37=_0x1883[_0x4a2af];return _0x3f3e37;};'use strict';var _=require(_0x3188('0x0'));var util=require(_0x3188('0x1'));var logger=require(_0x3188('0x2'))(_0x3188('0x3'));var moment=require(_0x3188('0x4'));var BPromise=require(_0x3188('0x5'));var rp=require(_0x3188('0x6'));var fs=require('fs');var path=require(_0x3188('0x7'));var rimraf=require(_0x3188('0x8'));var config=require(_0x3188('0x9'));var attributes=require(_0x3188('0xa'));module[_0x3188('0xb')]=function(_0x408ae0,_0x33b62d){return _0x408ae0[_0x3188('0xc')](_0x3188('0xd'),attributes,{'tableName':_0x3188('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa322=['then','UserSmsQueue,\x20%s,\x20%s','request\x20sent','UserSmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xa322,0x12b));var _0x2a32=function(_0xbfcc35,_0x5e3375){_0xbfcc35=_0xbfcc35-0x0;var _0x90e28c=_0xa322[_0xbfcc35];return _0x90e28c;};'use strict';var _=require(_0x2a32('0x0'));var util=require('util');var moment=require(_0x2a32('0x1'));var BPromise=require(_0x2a32('0x2'));var rs=require(_0x2a32('0x3'));var fs=require('fs');var Redis=require(_0x2a32('0x4'));var db=require(_0x2a32('0x5'))['db'];var utils=require(_0x2a32('0x6'));var logger=require(_0x2a32('0x7'))(_0x2a32('0x8'));var config=require(_0x2a32('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x2a32('0xa')][_0x2a32('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2c7b50,_0x63ec59,_0x4c09a9){return new BPromise(function(_0x2fa88a,_0x9a08d4){return client[_0x2a32('0xc')](_0x2c7b50,_0x4c09a9)[_0x2a32('0xd')](function(_0x41428d){logger['info'](_0x2a32('0xe'),_0x63ec59,_0x2a32('0xf'));logger['debug'](_0x2a32('0x10'),_0x63ec59,_0x2a32('0xf'),JSON[_0x2a32('0x11')](_0x41428d));if(_0x41428d[_0x2a32('0x12')]){if(_0x41428d[_0x2a32('0x12')][_0x2a32('0x13')]===0x1f4){logger[_0x2a32('0x12')](_0x2a32('0xe'),_0x63ec59,_0x41428d[_0x2a32('0x12')]['message']);return _0x9a08d4(_0x41428d[_0x2a32('0x12')][_0x2a32('0x14')]);}logger['error'](_0x2a32('0xe'),_0x63ec59,_0x41428d['error'][_0x2a32('0x14')]);return _0x2fa88a(_0x41428d[_0x2a32('0x12')][_0x2a32('0x14')]);}else{logger[_0x2a32('0x15')]('UserSmsQueue,\x20%s,\x20%s',_0x63ec59,_0x2a32('0xf'));_0x2fa88a(_0x41428d[_0x2a32('0x16')][_0x2a32('0x14')]);}})[_0x2a32('0x17')](function(_0x330bf4){logger['error'](_0x2a32('0xe'),_0x63ec59,_0x330bf4);_0x9a08d4(_0x330bf4);});});}
\ No newline at end of file
+var _0xee5e=['../../config/utils','../../config/logger','rpc','client','request','then','UserSmsQueue,\x20%s,\x20%s','request\x20sent','UserSmsQueue,\x20%s,\x20%s,\x20%s','error','message','info','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x49a0e1,_0x142af1){var _0x5d7d39=function(_0x40d77b){while(--_0x40d77b){_0x49a0e1['push'](_0x49a0e1['shift']());}};_0x5d7d39(++_0x142af1);}(_0xee5e,0x72));var _0xeee5=function(_0x2444a0,_0x2c7cb3){_0x2444a0=_0x2444a0-0x0;var _0x18d570=_0xee5e[_0x2444a0];return _0x18d570;};'use strict';var _=require(_0xeee5('0x0'));var util=require('util');var moment=require(_0xeee5('0x1'));var BPromise=require(_0xeee5('0x2'));var rs=require(_0xeee5('0x3'));var fs=require('fs');var Redis=require(_0xeee5('0x4'));var db=require(_0xeee5('0x5'))['db'];var utils=require(_0xeee5('0x6'));var logger=require(_0xeee5('0x7'))(_0xeee5('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xeee5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5fd03e,_0x3f599e,_0x32bdac){return new BPromise(function(_0x3cdc8e,_0x45261d){return client[_0xeee5('0xa')](_0x5fd03e,_0x32bdac)[_0xeee5('0xb')](function(_0x28bb60){logger['info'](_0xeee5('0xc'),_0x3f599e,_0xeee5('0xd'));logger['debug'](_0xeee5('0xe'),_0x3f599e,_0xeee5('0xd'),JSON['stringify'](_0x28bb60));if(_0x28bb60[_0xeee5('0xf')]){if(_0x28bb60['error']['code']===0x1f4){logger[_0xeee5('0xf')](_0xeee5('0xc'),_0x3f599e,_0x28bb60['error'][_0xeee5('0x10')]);return _0x45261d(_0x28bb60[_0xeee5('0xf')][_0xeee5('0x10')]);}logger[_0xeee5('0xf')]('UserSmsQueue,\x20%s,\x20%s',_0x3f599e,_0x28bb60[_0xeee5('0xf')][_0xeee5('0x10')]);return _0x3cdc8e(_0x28bb60['error'][_0xeee5('0x10')]);}else{logger[_0xeee5('0x11')](_0xeee5('0xc'),_0x3f599e,_0xeee5('0xd'));_0x3cdc8e(_0x28bb60[_0xeee5('0x12')][_0xeee5('0x10')]);}})[_0xeee5('0x13')](function(_0x201b12){logger['error'](_0xeee5('0xc'),_0x3f599e,_0x201b12);_0x45261d(_0x201b12);});});}
\ 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 _0xa9e0=['../../config/environment','./userVoicePrefix.attributes','exports','define','UserVoicePrefix','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0xd97f5a,_0x144b1f){var _0xd8243f=function(_0x30f439){while(--_0x30f439){_0xd97f5a['push'](_0xd97f5a['shift']());}};_0xd8243f(++_0x144b1f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5e3b04,_0xbb6795){_0x5e3b04=_0x5e3b04-0x0;var _0x1fc44d=_0xa9e0[_0x5e3b04];return _0x1fc44d;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'user_has_voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x26b622,_0x237e9e){var _0x58a028=function(_0xde1652){while(--_0xde1652){_0x26b622['push'](_0x26b622['shift']());}};_0x58a028(++_0x237e9e);}(_0x9c44,0x178));var _0x49c4=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x9c44[_0x4b055c];return _0x4b62bb;};'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 fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x2c45e1,_0x387a37){var _0xae359d=function(_0x45744e){while(--_0x45744e){_0x2c45e1['push'](_0x2c45e1['shift']());}};_0xae359d(++_0x387a37);}(_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 fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd035=['INTEGER','sequelize','exports'];(function(_0x28470a,_0x37e9fe){var _0xcb3c52=function(_0x13208e){while(--_0x13208e){_0x28470a['push'](_0x28470a['shift']());}};_0xcb3c52(++_0x37e9fe);}(_0xd035,0xdc));var _0x5d03=function(_0x2b305c,_0x5ae303){_0x2b305c=_0x2b305c-0x0;var _0x5d8c85=_0xd035[_0x2b305c];return _0x5d8c85;};'use strict';var Sequelize=require(_0x5d03('0x0'));module[_0x5d03('0x1')]={'penalty':{'type':Sequelize[_0x5d03('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x48b9=['sequelize'];(function(_0x1e504a,_0x5d3e34){var _0x15ac53=function(_0x3439e3){while(--_0x3439e3){_0x1e504a['push'](_0x1e504a['shift']());}};_0x15ac53(++_0x5d3e34);}(_0x48b9,0x1b3));var _0x948b=function(_0x26d034,_0x2c22db){_0x26d034=_0x26d034-0x0;var _0x3015aa=_0x48b9[_0x26d034];return _0x3015aa;};'use strict';var Sequelize=require(_0x948b('0x0'));module['exports']={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc531=['request-promise','path','rimraf','../../config/environment','UserVoiceQueue','user_has_voice_queues','util','../../config/logger','api','moment'];(function(_0x1bb6eb,_0x42b973){var _0x3cda74=function(_0x5a3317){while(--_0x5a3317){_0x1bb6eb['push'](_0x1bb6eb['shift']());}};_0x3cda74(++_0x42b973);}(_0xc531,0x9c));var _0x1c53=function(_0x256f56,_0x12109e){_0x256f56=_0x256f56-0x0;var _0x456ea2=_0xc531[_0x256f56];return _0x456ea2;};'use strict';var _=require('lodash');var util=require(_0x1c53('0x0'));var logger=require(_0x1c53('0x1'))(_0x1c53('0x2'));var moment=require(_0x1c53('0x3'));var BPromise=require('bluebird');var rp=require(_0x1c53('0x4'));var fs=require('fs');var path=require(_0x1c53('0x5'));var rimraf=require(_0x1c53('0x6'));var config=require(_0x1c53('0x7'));var attributes=require('./userVoiceQueue.attributes');module['exports']=function(_0x759e67,_0x3bd054){return _0x759e67['define'](_0x1c53('0x8'),attributes,{'tableName':_0x1c53('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa92c=['define','UserVoiceQueue','user_has_voice_queues','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./userVoiceQueue.attributes','exports'];(function(_0x546fc8,_0x4d1433){var _0x507cec=function(_0xb9d402){while(--_0xb9d402){_0x546fc8['push'](_0x546fc8['shift']());}};_0x507cec(++_0x4d1433);}(_0xa92c,0x18b));var _0xca92=function(_0x163040,_0x38a58c){_0x163040=_0x163040-0x0;var _0x364667=_0xa92c[_0x163040];return _0x364667;};'use strict';var _=require(_0xca92('0x0'));var util=require(_0xca92('0x1'));var logger=require(_0xca92('0x2'))(_0xca92('0x3'));var moment=require(_0xca92('0x4'));var BPromise=require('bluebird');var rp=require(_0xca92('0x5'));var fs=require('fs');var path=require(_0xca92('0x6'));var rimraf=require(_0xca92('0x7'));var config=require(_0xca92('0x8'));var attributes=require(_0xca92('0x9'));module[_0xca92('0xa')]=function(_0x33a6fe,_0x5f4341){return _0x33a6fe[_0xca92('0xb')](_0xca92('0xc'),attributes,{'tableName':_0xca92('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f62=['catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/environment','client','http','request','then','info','request\x20sent','debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','UserVoiceQueue,\x20%s,\x20%s','message','result'];(function(_0x334841,_0x2bbc4c){var _0x5beb4b=function(_0x4bea72){while(--_0x4bea72){_0x334841['push'](_0x334841['shift']());}};_0x5beb4b(++_0x2bbc4c);}(_0x1f62,0x6f));var _0x21f6=function(_0x4bd882,_0x350341){_0x4bd882=_0x4bd882-0x0;var _0x2f0513=_0x1f62[_0x4bd882];return _0x2f0513;};'use strict';var _=require(_0x21f6('0x0'));var util=require('util');var moment=require(_0x21f6('0x1'));var BPromise=require(_0x21f6('0x2'));var rs=require(_0x21f6('0x3'));var fs=require('fs');var Redis=require(_0x21f6('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x21f6('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x21f6('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x21f6('0x7')][_0x21f6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4dd2f3,_0x1c7794,_0x255ddd){return new BPromise(function(_0x12a2a6,_0x3b7465){return client[_0x21f6('0x9')](_0x4dd2f3,_0x255ddd)[_0x21f6('0xa')](function(_0xada972){logger[_0x21f6('0xb')]('UserVoiceQueue,\x20%s,\x20%s',_0x1c7794,_0x21f6('0xc'));logger[_0x21f6('0xd')](_0x21f6('0xe'),_0x1c7794,'request\x20sent',JSON[_0x21f6('0xf')](_0xada972));if(_0xada972[_0x21f6('0x10')]){if(_0xada972['error'][_0x21f6('0x11')]===0x1f4){logger[_0x21f6('0x10')](_0x21f6('0x12'),_0x1c7794,_0xada972[_0x21f6('0x10')]['message']);return _0x3b7465(_0xada972[_0x21f6('0x10')]['message']);}logger[_0x21f6('0x10')](_0x21f6('0x12'),_0x1c7794,_0xada972[_0x21f6('0x10')][_0x21f6('0x13')]);return _0x12a2a6(_0xada972[_0x21f6('0x10')][_0x21f6('0x13')]);}else{logger[_0x21f6('0xb')]('UserVoiceQueue,\x20%s,\x20%s',_0x1c7794,_0x21f6('0xc'));_0x12a2a6(_0xada972[_0x21f6('0x14')][_0x21f6('0x13')]);}})[_0x21f6('0x15')](function(_0x3a4ec4){logger['error'](_0x21f6('0x12'),_0x1c7794,_0x3a4ec4);_0x3b7465(_0x3a4ec4);});});}
\ No newline at end of file
+var _0xf9ef=['ioredis','../../config/utils','../../config/logger','../../config/environment','client','request','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','util','moment','bluebird','randomstring'];(function(_0x543a6c,_0x2e1f1e){var _0x2bc79c=function(_0x347c9c){while(--_0x347c9c){_0x543a6c['push'](_0x543a6c['shift']());}};_0x2bc79c(++_0x2e1f1e);}(_0xf9ef,0xe0));var _0xff9e=function(_0x107208,_0x3833d2){_0x107208=_0x107208-0x0;var _0x13924e=_0xf9ef[_0x107208];return _0x13924e;};'use strict';var _=require('lodash');var util=require(_0xff9e('0x0'));var moment=require(_0xff9e('0x1'));var BPromise=require(_0xff9e('0x2'));var rs=require(_0xff9e('0x3'));var fs=require('fs');var Redis=require(_0xff9e('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xff9e('0x5'));var logger=require(_0xff9e('0x6'))('rpc');var config=require(_0xff9e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xff9e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2ba363,_0x484e80,_0x1a6502){return new BPromise(function(_0x26a70e,_0x23e4ca){return client[_0xff9e('0x9')](_0x2ba363,_0x1a6502)['then'](function(_0x5d2cce){logger[_0xff9e('0xa')](_0xff9e('0xb'),_0x484e80,_0xff9e('0xc'));logger[_0xff9e('0xd')](_0xff9e('0xe'),_0x484e80,_0xff9e('0xc'),JSON[_0xff9e('0xf')](_0x5d2cce));if(_0x5d2cce[_0xff9e('0x10')]){if(_0x5d2cce[_0xff9e('0x10')]['code']===0x1f4){logger[_0xff9e('0x10')](_0xff9e('0xb'),_0x484e80,_0x5d2cce['error'][_0xff9e('0x11')]);return _0x23e4ca(_0x5d2cce[_0xff9e('0x10')][_0xff9e('0x11')]);}logger[_0xff9e('0x10')](_0xff9e('0xb'),_0x484e80,_0x5d2cce[_0xff9e('0x10')]['message']);return _0x26a70e(_0x5d2cce[_0xff9e('0x10')][_0xff9e('0x11')]);}else{logger[_0xff9e('0xa')](_0xff9e('0xb'),_0x484e80,_0xff9e('0xc'));_0x26a70e(_0x5d2cce[_0xff9e('0x12')][_0xff9e('0x11')]);}})['catch'](function(_0x2a3646){logger[_0xff9e('0x10')](_0xff9e('0xb'),_0x484e80,_0x2a3646);_0x23e4ca(_0x2a3646);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x284321,_0x4e0767){var _0x4b184d=function(_0x2eaab5){while(--_0x2eaab5){_0x284321['push'](_0x284321['shift']());}};_0x4b184d(++_0x4e0767);}(_0x9c44,0x178));var _0x49c4=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x9c44[_0x1caf6a];return _0x1bf493;};'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 fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x34528e,_0x482db5){var _0x2b4f16=function(_0xd7b50){while(--_0xd7b50){_0x34528e['push'](_0x34528e['shift']());}};_0x2b4f16(++_0x482db5);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'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 fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d0a=['INTEGER','STRING','Required\x20by\x20Asterisk','queue_interface','sequelize','exports'];(function(_0x305884,_0x3150c9){var _0x2667d1=function(_0xc5c7d8){while(--_0xc5c7d8){_0x305884['push'](_0x305884['shift']());}};_0x2667d1(++_0x3150c9);}(_0x8d0a,0x172));var _0xa8d0=function(_0x125899,_0x17035c){_0x125899=_0x125899-0x0;var _0x745dc3=_0x8d0a[_0x125899];return _0x745dc3;};'use strict';var Sequelize=require(_0xa8d0('0x0'));module[_0xa8d0('0x1')]={'uniqueid':{'type':Sequelize[_0xa8d0('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':'Required\x20by\x20Asterisk'},'membername':{'type':Sequelize[_0xa8d0('0x3')],'allowNull':![],'comment':_0xa8d0('0x4')},'UserId':{'type':Sequelize['INTEGER'],'allowNull':![]},'queue_name':{'type':Sequelize[_0xa8d0('0x3')],'allowNull':![],'unique':_0xa8d0('0x5'),'comment':_0xa8d0('0x4')},'VoiceQueueId':{'type':Sequelize['INTEGER'],'allowNull':![]},'interface':{'type':Sequelize[_0xa8d0('0x3')],'allowNull':![],'unique':_0xa8d0('0x5'),'comment':_0xa8d0('0x4')},'penalty':{'type':Sequelize[_0xa8d0('0x2')](0xb),'defaultValue':0x0,'comment':_0xa8d0('0x4')},'paused':{'type':Sequelize[_0xa8d0('0x2')](0xb),'defaultValue':0x0,'comment':_0xa8d0('0x4')}};
\ No newline at end of file
+var _0x103f=['Required\x20by\x20Asterisk','queue_interface','sequelize','exports','INTEGER','STRING'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x103f,0x14c));var _0xf103=function(_0x4aac46,_0x12d218){_0x4aac46=_0x4aac46-0x0;var _0x525299=_0x103f[_0x4aac46];return _0x525299;};'use strict';var Sequelize=require(_0xf103('0x0'));module[_0xf103('0x1')]={'uniqueid':{'type':Sequelize[_0xf103('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':'Required\x20by\x20Asterisk'},'membername':{'type':Sequelize[_0xf103('0x3')],'allowNull':![],'comment':_0xf103('0x4')},'UserId':{'type':Sequelize[_0xf103('0x2')],'allowNull':![]},'queue_name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xf103('0x5'),'comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize[_0xf103('0x2')],'allowNull':![]},'interface':{'type':Sequelize[_0xf103('0x3')],'allowNull':![],'unique':'queue_interface','comment':_0xf103('0x4')},'penalty':{'type':Sequelize[_0xf103('0x2')](0xb),'defaultValue':0x0,'comment':_0xf103('0x4')},'paused':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'comment':_0xf103('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee2c=['update','remove','emit','hook','exports','events','setMaxListeners','save'];(function(_0x10bd3d,_0x478dfb){var _0x48d6fd=function(_0xdf597f){while(--_0xdf597f){_0x10bd3d['push'](_0x10bd3d['shift']());}};_0x48d6fd(++_0x478dfb);}(_0xee2c,0x1ad));var _0xcee2=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0xee2c[_0x4a9fb1];return _0x348672;};'use strict';var EventEmitter=require(_0xcee2('0x0'));var UserVoiceQueueRt=require('../../mysqldb')['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0xcee2('0x1')](0x0);var events={'afterCreate':_0xcee2('0x2'),'afterUpdate':_0xcee2('0x3'),'afterDestroy':_0xcee2('0x4')};function emitEvent(_0x1c1356){return function(_0x585bf3,_0x1cbdf7,_0x371657){UserVoiceQueueRtEvents[_0xcee2('0x5')](_0x1c1356+':'+_0x585bf3['id'],_0x585bf3);UserVoiceQueueRtEvents['emit'](_0x1c1356,_0x585bf3);_0x371657(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];UserVoiceQueueRt[_0xcee2('0x6')](e,emitEvent(event));}}module[_0xcee2('0x7')]=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0x3c12=['hasOwnProperty','hook','exports','../../mysqldb','setMaxListeners','save','update','emit'];(function(_0x134827,_0x21f6ed){var _0x366671=function(_0x4dc8d4){while(--_0x4dc8d4){_0x134827['push'](_0x134827['shift']());}};_0x366671(++_0x21f6ed);}(_0x3c12,0x183));var _0x23c1=function(_0x48e1ec,_0x35f468){_0x48e1ec=_0x48e1ec-0x0;var _0x3b33eb=_0x3c12[_0x48e1ec];return _0x3b33eb;};'use strict';var EventEmitter=require('events');var UserVoiceQueueRt=require(_0x23c1('0x0'))['db']['UserVoiceQueueRt'];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x23c1('0x1')](0x0);var events={'afterCreate':_0x23c1('0x2'),'afterUpdate':_0x23c1('0x3'),'afterDestroy':'remove'};function emitEvent(_0x33642c){return function(_0x153e00,_0x4e1670,_0xfea38f){UserVoiceQueueRtEvents[_0x23c1('0x4')](_0x33642c+':'+_0x153e00['id'],_0x153e00);UserVoiceQueueRtEvents[_0x23c1('0x4')](_0x33642c,_0x153e00);_0xfea38f(null);};}for(var e in events){if(events[_0x23c1('0x5')](e)){var event=events[e];UserVoiceQueueRt[_0x23c1('0x6')](e,emitEvent(event));}}module[_0x23c1('0x7')]=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd562=['../../config/environment','./userVoiceQueueRt.attributes','exports','define','UserVoiceQueueRt','user_has_voice_queues_rt','lodash','util','../../config/logger','moment','bluebird','path','rimraf'];(function(_0x1f95ca,_0x5e0e02){var _0xabf72e=function(_0x116092){while(--_0x116092){_0x1f95ca['push'](_0x1f95ca['shift']());}};_0xabf72e(++_0x5e0e02);}(_0xd562,0x1e7));var _0x2d56=function(_0x5d794b,_0x53ecd2){_0x5d794b=_0x5d794b-0x0;var _0x49803a=_0xd562[_0x5d794b];return _0x49803a;};'use strict';var _=require(_0x2d56('0x0'));var util=require(_0x2d56('0x1'));var logger=require(_0x2d56('0x2'))('api');var moment=require(_0x2d56('0x3'));var BPromise=require(_0x2d56('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2d56('0x5'));var rimraf=require(_0x2d56('0x6'));var config=require(_0x2d56('0x7'));var attributes=require(_0x2d56('0x8'));module[_0x2d56('0x9')]=function(_0x110a6f,_0x1d1569){return _0x110a6f[_0x2d56('0xa')](_0x2d56('0xb'),attributes,{'tableName':_0x2d56('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xede4=['UserVoiceQueueRt','user_has_voice_queues_rt','lodash','../../config/logger','api','bluebird','path','../../config/environment','./userVoiceQueueRt.attributes','exports'];(function(_0xac26b6,_0x18fd13){var _0x2aa755=function(_0x5ee89b){while(--_0x5ee89b){_0xac26b6['push'](_0xac26b6['shift']());}};_0x2aa755(++_0x18fd13);}(_0xede4,0x124));var _0x4ede=function(_0x4b941e,_0x502d34){_0x4b941e=_0x4b941e-0x0;var _0x24f851=_0xede4[_0x4b941e];return _0x24f851;};'use strict';var _=require(_0x4ede('0x0'));var util=require('util');var logger=require(_0x4ede('0x1'))(_0x4ede('0x2'));var moment=require('moment');var BPromise=require(_0x4ede('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4ede('0x4'));var rimraf=require('rimraf');var config=require(_0x4ede('0x5'));var attributes=require(_0x4ede('0x6'));module[_0x4ede('0x7')]=function(_0x303e3c,_0x21b85b){return _0x303e3c['define'](_0x4ede('0x8'),attributes,{'tableName':_0x4ede('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b6b=['options','raw','where','sequelize','COUNT','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','catch','lodash','util','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','redis','defaults','localhost','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','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll'];(function(_0x450dcf,_0x510f82){var _0x187cb8=function(_0x126175){while(--_0x126175){_0x450dcf['push'](_0x450dcf['shift']());}};_0x187cb8(++_0x510f82);}(_0x9b6b,0xe6));var _0xb9b6=function(_0x323c23,_0xc05e0d){_0x323c23=_0x323c23-0x0;var _0x6be441=_0x9b6b[_0x323c23];return _0x6be441;};'use strict';var _=require(_0xb9b6('0x0'));var util=require(_0xb9b6('0x1'));var moment=require('moment');var BPromise=require(_0xb9b6('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xb9b6('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xb9b6('0x4'));var logger=require(_0xb9b6('0x5'))(_0xb9b6('0x6'));var config=require('../../config/environment');var jayson=require(_0xb9b6('0x7'));var client=jayson[_0xb9b6('0x8')]['http']({'port':0x232a});config[_0xb9b6('0x9')]=_[_0xb9b6('0xa')](config[_0xb9b6('0x9')],{'host':_0xb9b6('0xb'),'port':0x18eb});var socket=require(_0xb9b6('0xc'))(new Redis(config['redis']));require(_0xb9b6('0xd'))[_0xb9b6('0xe')](socket);function respondWithRpcPromise(_0x262fc2,_0x237e04,_0x1a97d0){return new BPromise(function(_0x1a0c03,_0xe5781b){return client[_0xb9b6('0xf')](_0x262fc2,_0x1a97d0)[_0xb9b6('0x10')](function(_0x28c776){logger[_0xb9b6('0x11')](_0xb9b6('0x12'),_0x237e04,_0xb9b6('0x13'));logger[_0xb9b6('0x14')](_0xb9b6('0x15'),_0x237e04,_0xb9b6('0x13'),JSON[_0xb9b6('0x16')](_0x28c776));if(_0x28c776[_0xb9b6('0x17')]){if(_0x28c776['error'][_0xb9b6('0x18')]===0x1f4){logger['error'](_0xb9b6('0x12'),_0x237e04,_0x28c776['error']['message']);return _0xe5781b(_0x28c776[_0xb9b6('0x17')][_0xb9b6('0x19')]);}logger['error'](_0xb9b6('0x12'),_0x237e04,_0x28c776['error']['message']);return _0x1a0c03(_0x28c776[_0xb9b6('0x17')][_0xb9b6('0x19')]);}else{logger['info']('UserVoiceQueueRt,\x20%s,\x20%s',_0x237e04,_0xb9b6('0x13'));_0x1a0c03(_0x28c776['result']['message']);}})['catch'](function(_0x113a2e){logger[_0xb9b6('0x17')](_0xb9b6('0x12'),_0x237e04,_0x113a2e);_0xe5781b(_0x113a2e);});});}exports[_0xb9b6('0x1a')]=function(_0x5cfed7){var _0x41290d=this;return new Promise(function(_0x4877ee,_0x22e8c2){return db[_0xb9b6('0x1b')][_0xb9b6('0x1c')]({'raw':_0x5cfed7[_0xb9b6('0x1d')]?_0x5cfed7[_0xb9b6('0x1d')][_0xb9b6('0x1e')]===undefined?!![]:![]:!![],'where':_0x5cfed7[_0xb9b6('0x1d')]?_0x5cfed7[_0xb9b6('0x1d')][_0xb9b6('0x1f')]||null:null,'attributes':[[db[_0xb9b6('0x20')]['fn'](_0xb9b6('0x21'),db[_0xb9b6('0x20')]['fn']('IF',db[_0xb9b6('0x20')]['literal'](_0xb9b6('0x22')))),_0xb9b6('0x23')]]})[_0xb9b6('0x10')](function(_0x173569){logger[_0xb9b6('0x11')](_0xb9b6('0x1a'),_0x5cfed7);logger[_0xb9b6('0x14')]('GetVoiceQueueRtPauses',_0x5cfed7,JSON[_0xb9b6('0x16')](_0x173569));_0x4877ee(_0x173569);})[_0xb9b6('0x24')](function(_0x1b6052){logger[_0xb9b6('0x17')]('GetVoiceQueueRtPauses',_0x1b6052[_0xb9b6('0x19')],_0x5cfed7);_0x22e8c2(_0x41290d['error'](0x1f4,_0x1b6052[_0xb9b6('0x19')]));});});};
\ No newline at end of file
+var _0xba67=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./userVoiceQueueRt.socket','register','then','info','UserVoiceQueueRt,\x20%s,\x20%s','debug','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','COUNT','sequelize','literal','`paused`\x20=\x201,\x201,\x20null','lodash','util','moment','bluebird'];(function(_0x4cb10e,_0x424e46){var _0x43ea1d=function(_0x4d3b24){while(--_0x4d3b24){_0x4cb10e['push'](_0x4cb10e['shift']());}};_0x43ea1d(++_0x424e46);}(_0xba67,0xf2));var _0x7ba6=function(_0x4f713e,_0x35ac92){_0x4f713e=_0x4f713e-0x0;var _0x5ef783=_0xba67[_0x4f713e];return _0x5ef783;};'use strict';var _=require(_0x7ba6('0x0'));var util=require(_0x7ba6('0x1'));var moment=require(_0x7ba6('0x2'));var BPromise=require(_0x7ba6('0x3'));var rs=require(_0x7ba6('0x4'));var fs=require('fs');var Redis=require(_0x7ba6('0x5'));var db=require(_0x7ba6('0x6'))['db'];var utils=require(_0x7ba6('0x7'));var logger=require(_0x7ba6('0x8'))(_0x7ba6('0x9'));var config=require(_0x7ba6('0xa'));var jayson=require(_0x7ba6('0xb'));var client=jayson[_0x7ba6('0xc')][_0x7ba6('0xd')]({'port':0x232a});config[_0x7ba6('0xe')]=_[_0x7ba6('0xf')](config[_0x7ba6('0xe')],{'host':_0x7ba6('0x10'),'port':0x18eb});var socket=require(_0x7ba6('0x11'))(new Redis(config[_0x7ba6('0xe')]));require(_0x7ba6('0x12'))[_0x7ba6('0x13')](socket);function respondWithRpcPromise(_0x536d8c,_0xd28be4,_0xe00e7){return new BPromise(function(_0x45bf6e,_0x549802){return client['request'](_0x536d8c,_0xe00e7)[_0x7ba6('0x14')](function(_0x9a6cb9){logger[_0x7ba6('0x15')](_0x7ba6('0x16'),_0xd28be4,'request\x20sent');logger[_0x7ba6('0x17')](_0x7ba6('0x18'),_0xd28be4,_0x7ba6('0x19'),JSON[_0x7ba6('0x1a')](_0x9a6cb9));if(_0x9a6cb9['error']){if(_0x9a6cb9['error'][_0x7ba6('0x1b')]===0x1f4){logger[_0x7ba6('0x1c')](_0x7ba6('0x16'),_0xd28be4,_0x9a6cb9[_0x7ba6('0x1c')][_0x7ba6('0x1d')]);return _0x549802(_0x9a6cb9[_0x7ba6('0x1c')]['message']);}logger['error'](_0x7ba6('0x16'),_0xd28be4,_0x9a6cb9[_0x7ba6('0x1c')][_0x7ba6('0x1d')]);return _0x45bf6e(_0x9a6cb9[_0x7ba6('0x1c')][_0x7ba6('0x1d')]);}else{logger[_0x7ba6('0x15')](_0x7ba6('0x16'),_0xd28be4,_0x7ba6('0x19'));_0x45bf6e(_0x9a6cb9['result']['message']);}})[_0x7ba6('0x1e')](function(_0x2f78ae){logger[_0x7ba6('0x1c')](_0x7ba6('0x16'),_0xd28be4,_0x2f78ae);_0x549802(_0x2f78ae);});});}exports[_0x7ba6('0x1f')]=function(_0x2d8c10){var _0x34548a=this;return new Promise(function(_0x15d8f8,_0x4a8e9d){return db[_0x7ba6('0x20')][_0x7ba6('0x21')]({'raw':_0x2d8c10[_0x7ba6('0x22')]?_0x2d8c10[_0x7ba6('0x22')][_0x7ba6('0x23')]===undefined?!![]:![]:!![],'where':_0x2d8c10[_0x7ba6('0x22')]?_0x2d8c10[_0x7ba6('0x22')][_0x7ba6('0x24')]||null:null,'attributes':[[db['sequelize']['fn'](_0x7ba6('0x25'),db[_0x7ba6('0x26')]['fn']('IF',db['sequelize'][_0x7ba6('0x27')](_0x7ba6('0x28')))),'outboundQueuePauses']]})[_0x7ba6('0x14')](function(_0x3e0f1f){logger[_0x7ba6('0x15')]('GetVoiceQueueRtPauses',_0x2d8c10);logger['debug'](_0x7ba6('0x1f'),_0x2d8c10,JSON['stringify'](_0x3e0f1f));_0x15d8f8(_0x3e0f1f);})[_0x7ba6('0x1e')](function(_0xa05036){logger[_0x7ba6('0x1c')]('GetVoiceQueueRtPauses',_0xa05036['message'],_0x2d8c10);_0x4a8e9d(_0x34548a[_0x7ba6('0x1c')](0x1f4,_0xa05036['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafca=['update','emit','removeListener','length','userVoiceQueueRt:','./userVoiceQueueRt.events','remove'];(function(_0x5e3b04,_0xbb6795){var _0x1fc44d=function(_0x3472a1){while(--_0x3472a1){_0x5e3b04['push'](_0x5e3b04['shift']());}};_0x1fc44d(++_0xbb6795);}(_0xafca,0x1ef));var _0xaafc=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xafca[_0x20a584];return _0x4b41a8;};'use strict';var UserVoiceQueueRtEvents=require(_0xaafc('0x0'));var events=['save',_0xaafc('0x1'),_0xaafc('0x2')];function createListener(_0x494c61,_0x484f85){return function(_0x1769ab){_0x484f85[_0xaafc('0x3')](_0x494c61,_0x1769ab);};}function removeListener(_0x379add,_0xd5021b){return function(){UserVoiceQueueRtEvents[_0xaafc('0x4')](_0x379add,_0xd5021b);};}exports['register']=function(_0x3db4ed){for(var _0x418fca=0x0,_0x978cf0=events[_0xaafc('0x5')];_0x418fca<_0x978cf0;_0x418fca++){var _0x83ea82=events[_0x418fca];var _0x2cf865=createListener(_0xaafc('0x6')+_0x83ea82,_0x3db4ed);UserVoiceQueueRtEvents['on'](_0x83ea82,_0x2cf865);}};
\ No newline at end of file
+var _0x9efe=['remove','update','emit','removeListener','register','userVoiceQueueRt:','save'];(function(_0x1219ee,_0x582e6d){var _0x41d945=function(_0x52ed5c){while(--_0x52ed5c){_0x1219ee['push'](_0x1219ee['shift']());}};_0x41d945(++_0x582e6d);}(_0x9efe,0xca));var _0xe9ef=function(_0x3ec5ab,_0x17b398){_0x3ec5ab=_0x3ec5ab-0x0;var _0x39e35e=_0x9efe[_0x3ec5ab];return _0x39e35e;};'use strict';var UserVoiceQueueRtEvents=require('./userVoiceQueueRt.events');var events=[_0xe9ef('0x0'),_0xe9ef('0x1'),_0xe9ef('0x2')];function createListener(_0x24c094,_0x41a87c){return function(_0x50b614){_0x41a87c[_0xe9ef('0x3')](_0x24c094,_0x50b614);};}function removeListener(_0x186a70,_0x3deea3){return function(){UserVoiceQueueRtEvents[_0xe9ef('0x4')](_0x186a70,_0x3deea3);};}exports[_0xe9ef('0x5')]=function(_0x2cc202){for(var _0x466baf=0x0,_0x58d664=events['length'];_0x466baf<_0x58d664;_0x466baf++){var _0x590cea=events[_0x466baf];var _0x40ffdc=createListener(_0xe9ef('0x6')+_0x590cea,_0x2cc202);UserVoiceQueueRtEvents['on'](_0x590cea,_0x40ffdc);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x3585a4,_0x2884f6){var _0xc72f18=function(_0x3a0f20){while(--_0x3a0f20){_0x3585a4['push'](_0x3585a4['shift']());}};_0xc72f18(++_0x2884f6);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4eafed,_0x26e2bc){_0x4eafed=_0x4eafed-0x0;var _0x159c85=_0xcb91[_0x4eafed];return _0x159c85;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x189e7c,_0x1de1c0){var _0xf85261=function(_0x482cbd){while(--_0x482cbd){_0x189e7c['push'](_0x189e7c['shift']());}};_0xf85261(++_0x1de1c0);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'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 fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x631e=['INTEGER','sequelize','exports'];(function(_0x4ae829,_0x2c842c){var _0x256b31=function(_0x34f104){while(--_0x34f104){_0x4ae829['push'](_0x4ae829['shift']());}};_0x256b31(++_0x2c842c);}(_0x631e,0x1b4));var _0xe631=function(_0x2739fd,_0x137b50){_0x2739fd=_0x2739fd-0x0;var _0x5b7c5a=_0x631e[_0x2739fd];return _0x5b7c5a;};'use strict';var Sequelize=require(_0xe631('0x0'));module[_0xe631('0x1')]={'penalty':{'type':Sequelize[_0xe631('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x41c5=['exports','INTEGER','sequelize'];(function(_0x3720b0,_0x4ef8b8){var _0x2caf49=function(_0x130f44){while(--_0x130f44){_0x3720b0['push'](_0x3720b0['shift']());}};_0x2caf49(++_0x4ef8b8);}(_0x41c5,0x146));var _0x541c=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x41c5[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require(_0x541c('0x0'));module[_0x541c('0x1')]={'penalty':{'type':Sequelize[_0x541c('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6413=['./userWhatsappQueue.attributes','define','user_has_whatsapp_queues','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x19091e,_0x3da6df){var _0x2a5058=function(_0xb8a5e6){while(--_0xb8a5e6){_0x19091e['push'](_0x19091e['shift']());}};_0x2a5058(++_0x3da6df);}(_0x6413,0x1cb));var _0x3641=function(_0x4ac655,_0x24cebe){_0x4ac655=_0x4ac655-0x0;var _0x1adbae=_0x6413[_0x4ac655];return _0x1adbae;};'use strict';var _=require(_0x3641('0x0'));var util=require(_0x3641('0x1'));var logger=require('../../config/logger')(_0x3641('0x2'));var moment=require(_0x3641('0x3'));var BPromise=require(_0x3641('0x4'));var rp=require(_0x3641('0x5'));var fs=require('fs');var path=require(_0x3641('0x6'));var rimraf=require(_0x3641('0x7'));var config=require(_0x3641('0x8'));var attributes=require(_0x3641('0x9'));module['exports']=function(_0x443afa,_0x23aaec){return _0x443afa[_0x3641('0xa')]('UserWhatsappQueue',attributes,{'tableName':_0x3641('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0798=['lodash','util','api','moment','bluebird','request-promise','path','exports','define','user_has_whatsapp_queues'];(function(_0x1aece3,_0x4ce790){var _0x36254e=function(_0x9c8723){while(--_0x9c8723){_0x1aece3['push'](_0x1aece3['shift']());}};_0x36254e(++_0x4ce790);}(_0x0798,0x136));var _0x8079=function(_0x1ab1a2,_0x560626){_0x1ab1a2=_0x1ab1a2-0x0;var _0x5eb122=_0x0798[_0x1ab1a2];return _0x5eb122;};'use strict';var _=require(_0x8079('0x0'));var util=require(_0x8079('0x1'));var logger=require('../../config/logger')(_0x8079('0x2'));var moment=require(_0x8079('0x3'));var BPromise=require(_0x8079('0x4'));var rp=require(_0x8079('0x5'));var fs=require('fs');var path=require(_0x8079('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./userWhatsappQueue.attributes');module[_0x8079('0x7')]=function(_0x29c4e9,_0x99ac9e){return _0x29c4e9[_0x8079('0x8')]('UserWhatsappQueue',attributes,{'tableName':_0x8079('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8464=['debug','UserWhatsappQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x8464,0xfd));var _0x4846=function(_0x4d0bc7,_0x209ea0){_0x4d0bc7=_0x4d0bc7-0x0;var _0x1fb653=_0x8464[_0x4d0bc7];return _0x1fb653;};'use strict';var _=require(_0x4846('0x0'));var util=require(_0x4846('0x1'));var moment=require(_0x4846('0x2'));var BPromise=require('bluebird');var rs=require(_0x4846('0x3'));var fs=require('fs');var Redis=require(_0x4846('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x4846('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x4846('0x6'));var jayson=require(_0x4846('0x7'));var client=jayson[_0x4846('0x8')][_0x4846('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x20dfdb,_0xbba605,_0x213ada){return new BPromise(function(_0xfd2664,_0x3613fe){return client['request'](_0x20dfdb,_0x213ada)['then'](function(_0xf6c5c7){logger[_0x4846('0xa')](_0x4846('0xb'),_0xbba605,_0x4846('0xc'));logger[_0x4846('0xd')](_0x4846('0xe'),_0xbba605,'request\x20sent',JSON[_0x4846('0xf')](_0xf6c5c7));if(_0xf6c5c7[_0x4846('0x10')]){if(_0xf6c5c7['error']['code']===0x1f4){logger[_0x4846('0x10')](_0x4846('0xb'),_0xbba605,_0xf6c5c7['error']['message']);return _0x3613fe(_0xf6c5c7['error'][_0x4846('0x11')]);}logger['error'](_0x4846('0xb'),_0xbba605,_0xf6c5c7[_0x4846('0x10')][_0x4846('0x11')]);return _0xfd2664(_0xf6c5c7[_0x4846('0x10')][_0x4846('0x11')]);}else{logger[_0x4846('0xa')](_0x4846('0xb'),_0xbba605,_0x4846('0xc'));_0xfd2664(_0xf6c5c7['result'][_0x4846('0x11')]);}})[_0x4846('0x12')](function(_0x2eb333){logger['error'](_0x4846('0xb'),_0xbba605,_0x2eb333);_0x3613fe(_0x2eb333);});});}
\ No newline at end of file
+var _0x8edb=['info','UserWhatsappQueue,\x20%s,\x20%s','debug','UserWhatsappQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger','rpc','jayson/promise','http','request','then'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0x8edb,0x14b));var _0xb8ed=function(_0x5644cf,_0x3ce5c7){_0x5644cf=_0x5644cf-0x0;var _0x79bc95=_0x8edb[_0x5644cf];return _0x79bc95;};'use strict';var _=require('lodash');var util=require(_0xb8ed('0x0'));var moment=require(_0xb8ed('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb8ed('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xb8ed('0x3'))(_0xb8ed('0x4'));var config=require('../../config/environment');var jayson=require(_0xb8ed('0x5'));var client=jayson['client'][_0xb8ed('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x2145cb,_0x6c9d2c,_0xc4f0ab){return new BPromise(function(_0x132264,_0x1272ad){return client[_0xb8ed('0x7')](_0x2145cb,_0xc4f0ab)[_0xb8ed('0x8')](function(_0x40f28f){logger[_0xb8ed('0x9')](_0xb8ed('0xa'),_0x6c9d2c,'request\x20sent');logger[_0xb8ed('0xb')](_0xb8ed('0xc'),_0x6c9d2c,_0xb8ed('0xd'),JSON[_0xb8ed('0xe')](_0x40f28f));if(_0x40f28f['error']){if(_0x40f28f[_0xb8ed('0xf')][_0xb8ed('0x10')]===0x1f4){logger[_0xb8ed('0xf')](_0xb8ed('0xa'),_0x6c9d2c,_0x40f28f['error'][_0xb8ed('0x11')]);return _0x1272ad(_0x40f28f[_0xb8ed('0xf')][_0xb8ed('0x11')]);}logger[_0xb8ed('0xf')](_0xb8ed('0xa'),_0x6c9d2c,_0x40f28f[_0xb8ed('0xf')]['message']);return _0x132264(_0x40f28f[_0xb8ed('0xf')]['message']);}else{logger['info'](_0xb8ed('0xa'),_0x6c9d2c,_0xb8ed('0xd'));_0x132264(_0x40f28f[_0xb8ed('0x12')][_0xb8ed('0x11')]);}})[_0xb8ed('0x13')](function(_0x233364){logger[_0xb8ed('0xf')](_0xb8ed('0xa'),_0x6c9d2c,_0x233364);_0x1272ad(_0x233364);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d6a=['../../config/environment','./variable.controller','get','isAuthenticated','/:id','show','post','create','update','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x59e821,_0x86c723){var _0x5333f6=function(_0x5dc2c9){while(--_0x5dc2c9){_0x59e821['push'](_0x59e821['shift']());}};_0x5333f6(++_0x86c723);}(_0x0d6a,0xc9));var _0xa0d6=function(_0x55abd9,_0x1148af){_0x55abd9=_0x55abd9-0x0;var _0x3e5669=_0x0d6a[_0x55abd9];return _0x3e5669;};'use strict';var multer=require(_0xa0d6('0x0'));var util=require(_0xa0d6('0x1'));var path=require('path');var timeout=require(_0xa0d6('0x2'));var express=require(_0xa0d6('0x3'));var router=express[_0xa0d6('0x4')]();var fs_extra=require(_0xa0d6('0x5'));var auth=require(_0xa0d6('0x6'));var interaction=require(_0xa0d6('0x7'));var config=require(_0xa0d6('0x8'));var controller=require(_0xa0d6('0x9'));router[_0xa0d6('0xa')]('/',auth[_0xa0d6('0xb')](),controller['index']);router[_0xa0d6('0xa')](_0xa0d6('0xc'),auth[_0xa0d6('0xb')](),controller[_0xa0d6('0xd')]);router[_0xa0d6('0xe')]('/',auth['isAuthenticated'](),controller[_0xa0d6('0xf')]);router['put'](_0xa0d6('0xc'),auth['isAuthenticated'](),controller[_0xa0d6('0x10')]);router['delete'](_0xa0d6('0xc'),auth[_0xa0d6('0xb')](),controller[_0xa0d6('0x11')]);module[_0xa0d6('0x12')]=router;
\ No newline at end of file
+var _0x0c29=['../../config/environment','./variable.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','path','express','Router','fs-extra'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0c29,0xb7));var _0x90c2=function(_0xb1174e,_0x1e68a7){_0xb1174e=_0xb1174e-0x0;var _0x285bac=_0x0c29[_0xb1174e];return _0x285bac;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x90c2('0x0'));var timeout=require('connect-timeout');var express=require(_0x90c2('0x1'));var router=express[_0x90c2('0x2')]();var fs_extra=require(_0x90c2('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x90c2('0x4'));var controller=require(_0x90c2('0x5'));router[_0x90c2('0x6')]('/',auth[_0x90c2('0x7')](),controller[_0x90c2('0x8')]);router[_0x90c2('0x6')](_0x90c2('0x9'),auth[_0x90c2('0x7')](),controller[_0x90c2('0xa')]);router[_0x90c2('0xb')]('/',auth[_0x90c2('0x7')](),controller[_0x90c2('0xc')]);router[_0x90c2('0xd')](_0x90c2('0x9'),auth[_0x90c2('0x7')](),controller[_0x90c2('0xe')]);router[_0x90c2('0xf')](_0x90c2('0x9'),auth[_0x90c2('0x7')](),controller[_0x90c2('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0609=['sequelize','exports','STRING'];(function(_0x2b1552,_0x17993f){var _0x4cd48e=function(_0x30c176){while(--_0x30c176){_0x2b1552['push'](_0x2b1552['shift']());}};_0x4cd48e(++_0x17993f);}(_0x0609,0x159));var _0x9060=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x0609[_0x167cc1];return _0x10bc4b;};'use strict';var Sequelize=require(_0x9060('0x0'));module[_0x9060('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x9060('0x2')]}};
\ No newline at end of file
+var _0x92a4=['sequelize','name'];(function(_0x23e207,_0x34850b){var _0x2e25fa=function(_0x41bf81){while(--_0x41bf81){_0x23e207['push'](_0x23e207['shift']());}};_0x2e25fa(++_0x34850b);}(_0x92a4,0xb4));var _0x492a=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x92a4[_0x21a9d9];return _0x46adce;};'use strict';var Sequelize=require(_0x492a('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0x492a('0x1'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3cf2=['Content-Range','apply','reject','save','update','then','destroy','Variables','UserProfileResource','end','error','name','send','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','order','sort','where','filter','merge','VIRTUAL','options','Variable','includeAll','include','findAll','rows','show','params','find','catch','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','rimraf','fast-json-patch','moment','bluebird','to-csv','ejs','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count'];(function(_0x2932cf,_0x362fd9){var _0x1711dd=function(_0x2d8de6){while(--_0x2d8de6){_0x2932cf['push'](_0x2932cf['shift']());}};_0x1711dd(++_0x362fd9);}(_0x3cf2,0xd0));var _0x23cf=function(_0x8823c8,_0x52afd3){_0x8823c8=_0x8823c8-0x0;var _0x486f5b=_0x3cf2[_0x8823c8];return _0x486f5b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x23cf('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x23cf('0x1'));var rp=require('request-promise');var moment=require(_0x23cf('0x2'));var BPromise=require(_0x23cf('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x23cf('0x4'));var ejs=require(_0x23cf('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x23cf('0x6'));var squel=require(_0x23cf('0x7'));var crypto=require(_0x23cf('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x23cf('0x9'));var toCsv=require(_0x23cf('0x4'));var querystring=require('querystring');var Papa=require(_0x23cf('0xa'));var Redis=require(_0x23cf('0xb'));var authService=require('../../components/auth/service');var qs=require(_0x23cf('0xc'));var as=require(_0x23cf('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x23cf('0xe'))(_0x23cf('0xf'));var utils=require('../../config/utils');var config=require(_0x23cf('0x10'));var licenseUtil=require(_0x23cf('0x11'));var db=require(_0x23cf('0x12'))['db'];function respondWithStatusCode(_0x4b18e7,_0x3b27a2){_0x3b27a2=_0x3b27a2||0xcc;return function(_0x480d95){if(_0x480d95){return _0x4b18e7[_0x23cf('0x13')](_0x3b27a2);}return _0x4b18e7[_0x23cf('0x14')](_0x3b27a2)['end']();};}function respondWithResult(_0x52d7ce,_0x1d5ff8){_0x1d5ff8=_0x1d5ff8||0xc8;return function(_0x59745e){if(_0x59745e){return _0x52d7ce[_0x23cf('0x14')](_0x1d5ff8)[_0x23cf('0x15')](_0x59745e);}};}function respondWithFilteredResult(_0x30fcbd,_0x20a7a9){return function(_0x552de3){if(_0x552de3){var _0xffa1e8=typeof _0x20a7a9[_0x23cf('0x16')]===_0x23cf('0x17')&&typeof _0x20a7a9[_0x23cf('0x18')]==='undefined';var _0x29363b=_0x552de3[_0x23cf('0x19')];var _0x51e4c9=_0xffa1e8?0x0:_0x20a7a9[_0x23cf('0x16')];var _0x35e280=_0xffa1e8?_0x552de3[_0x23cf('0x19')]:_0x20a7a9['offset']+_0x20a7a9[_0x23cf('0x18')];var _0x9cbf;if(_0x35e280>=_0x29363b){_0x35e280=_0x29363b;_0x9cbf=0xc8;}else{_0x9cbf=0xce;}_0x30fcbd[_0x23cf('0x14')](_0x9cbf);return _0x30fcbd['set'](_0x23cf('0x1a'),_0x51e4c9+'-'+_0x35e280+'/'+_0x29363b)[_0x23cf('0x15')](_0x552de3);}return null;};}function patchUpdates(_0x3c8a40){return function(_0x35e15b){try{jsonpatch[_0x23cf('0x1b')](_0x35e15b,_0x3c8a40,!![]);}catch(_0x2b571e){return BPromise[_0x23cf('0x1c')](_0x2b571e);}return _0x35e15b[_0x23cf('0x1d')]();};}function saveUpdates(_0x2af79b,_0x71f3f6){return function(_0x54bc5a){if(_0x54bc5a){return _0x54bc5a[_0x23cf('0x1e')](_0x2af79b)[_0x23cf('0x1f')](function(_0x54b793){return _0x54b793;});}return null;};}function removeEntity(_0x5687d6,_0x58648e){return function(_0x5ba70e){if(_0x5ba70e){return _0x5ba70e[_0x23cf('0x20')]()['then'](function(){var _0xcc7dc1=_0x5ba70e['get']({'plain':!![]});var _0x5aebfa=_0x23cf('0x21');return db[_0x23cf('0x22')]['destroy']({'where':{'type':_0x5aebfa,'resourceId':_0xcc7dc1['id']}})[_0x23cf('0x1f')](function(){return _0x5ba70e;});})[_0x23cf('0x1f')](function(){_0x5687d6[_0x23cf('0x14')](0xcc)[_0x23cf('0x23')]();});}};}function handleEntityNotFound(_0x3a4153,_0x5d1dd1){return function(_0x48f968){if(!_0x48f968){_0x3a4153[_0x23cf('0x13')](0x194);}return _0x48f968;};}function handleError(_0x183285,_0x8d3017){_0x8d3017=_0x8d3017||0x1f4;return function(_0x6af127){logger[_0x23cf('0x24')](_0x6af127['stack']);if(_0x6af127[_0x23cf('0x25')]){delete _0x6af127[_0x23cf('0x25')];}_0x183285[_0x23cf('0x14')](_0x8d3017)[_0x23cf('0x26')](_0x6af127);};}exports['index']=function(_0x3f3d93,_0x24e392){var _0x18ff60={},_0x3da9ea={},_0x2bbea6={'count':0x0,'rows':[]};var _0x47e5e2=_[_0x23cf('0x27')](db['Variable'][_0x23cf('0x28')],function(_0xd1c5d2){return{'name':_0xd1c5d2[_0x23cf('0x29')],'type':_0xd1c5d2[_0x23cf('0x2a')][_0x23cf('0x2b')]};});_0x3da9ea[_0x23cf('0x2c')]=_[_0x23cf('0x27')](_0x47e5e2,_0x23cf('0x25'));_0x3da9ea[_0x23cf('0x2d')]=_[_0x23cf('0x2e')](_0x3f3d93[_0x23cf('0x2d')]);_0x3da9ea[_0x23cf('0x2f')]=_[_0x23cf('0x30')](_0x3da9ea[_0x23cf('0x2c')],_0x3da9ea[_0x23cf('0x2d')]);_0x18ff60['attributes']=_[_0x23cf('0x30')](_0x3da9ea[_0x23cf('0x2c')],qs[_0x23cf('0x31')](_0x3f3d93[_0x23cf('0x2d')][_0x23cf('0x31')]));_0x18ff60[_0x23cf('0x32')]=_0x18ff60['attributes'][_0x23cf('0x33')]?_0x18ff60[_0x23cf('0x32')]:_0x3da9ea['model'];if(!_0x3f3d93[_0x23cf('0x2d')]['hasOwnProperty']('nolimit')){_0x18ff60['limit']=qs[_0x23cf('0x18')](_0x3f3d93['query'][_0x23cf('0x18')]);_0x18ff60[_0x23cf('0x16')]=qs[_0x23cf('0x16')](_0x3f3d93['query']['offset']);}_0x18ff60[_0x23cf('0x34')]=qs['sort'](_0x3f3d93[_0x23cf('0x2d')][_0x23cf('0x35')]);_0x18ff60[_0x23cf('0x36')]=qs[_0x23cf('0x2f')](_['pick'](_0x3f3d93[_0x23cf('0x2d')],_0x3da9ea['filters']),_0x47e5e2);if(_0x3f3d93[_0x23cf('0x2d')][_0x23cf('0x37')]){_0x18ff60['where']=_[_0x23cf('0x38')](_0x18ff60[_0x23cf('0x36')],{'$or':_['map'](_0x47e5e2,function(_0x559ce3){if(_0x559ce3[_0x23cf('0x2a')]!==_0x23cf('0x39')){var _0x5f3c5b={};_0x5f3c5b[_0x559ce3[_0x23cf('0x25')]]={'$like':'%'+_0x3f3d93[_0x23cf('0x2d')]['filter']+'%'};return _0x5f3c5b;}})});}_0x18ff60=_['merge']({},_0x18ff60,_0x3f3d93[_0x23cf('0x3a')]);var _0x312574={'where':_0x18ff60[_0x23cf('0x36')]};return db[_0x23cf('0x3b')]['count'](_0x312574)[_0x23cf('0x1f')](function(_0x487326){_0x2bbea6[_0x23cf('0x19')]=_0x487326;if(_0x3f3d93['query'][_0x23cf('0x3c')]){_0x18ff60[_0x23cf('0x3d')]=[{'all':!![]}];}return db[_0x23cf('0x3b')][_0x23cf('0x3e')](_0x18ff60);})[_0x23cf('0x1f')](function(_0x261ffa){_0x2bbea6[_0x23cf('0x3f')]=_0x261ffa;return _0x2bbea6;})[_0x23cf('0x1f')](respondWithFilteredResult(_0x24e392,_0x18ff60))['catch'](handleError(_0x24e392,null));};exports[_0x23cf('0x40')]=function(_0x5ad608,_0x7dd5a2){var _0x18f02a={'raw':!![],'where':{'id':_0x5ad608[_0x23cf('0x41')]['id']}},_0x2827f2={};_0x2827f2['model']=_[_0x23cf('0x2e')](db[_0x23cf('0x3b')][_0x23cf('0x28')]);_0x2827f2[_0x23cf('0x2d')]=_[_0x23cf('0x2e')](_0x5ad608[_0x23cf('0x2d')]);_0x2827f2[_0x23cf('0x2f')]=_[_0x23cf('0x30')](_0x2827f2[_0x23cf('0x2c')],_0x2827f2[_0x23cf('0x2d')]);_0x18f02a[_0x23cf('0x32')]=_['intersection'](_0x2827f2[_0x23cf('0x2c')],qs[_0x23cf('0x31')](_0x5ad608['query'][_0x23cf('0x31')]));_0x18f02a[_0x23cf('0x32')]=_0x18f02a['attributes'][_0x23cf('0x33')]?_0x18f02a[_0x23cf('0x32')]:_0x2827f2[_0x23cf('0x2c')];if(_0x5ad608[_0x23cf('0x2d')][_0x23cf('0x3c')]){_0x18f02a[_0x23cf('0x3d')]=[{'all':!![]}];}_0x18f02a=_[_0x23cf('0x38')]({},_0x18f02a,_0x5ad608['options']);return db[_0x23cf('0x3b')][_0x23cf('0x42')](_0x18f02a)[_0x23cf('0x1f')](handleEntityNotFound(_0x7dd5a2,null))[_0x23cf('0x1f')](respondWithResult(_0x7dd5a2,null))[_0x23cf('0x43')](handleError(_0x7dd5a2,null));};exports[_0x23cf('0x44')]=function(_0x5e038d,_0x522c3f){return db[_0x23cf('0x3b')][_0x23cf('0x44')](_0x5e038d['body'],{})[_0x23cf('0x1f')](function(_0x4302a4){var _0x28c719=_0x5e038d['user'][_0x23cf('0x45')]({'plain':!![]});if(!_0x28c719)throw new Error(_0x23cf('0x46'));if(_0x28c719[_0x23cf('0x47')]===_0x23cf('0x48')){var _0x59e251=_0x4302a4[_0x23cf('0x45')]({'plain':!![]});var _0x23dc6f=_0x23cf('0x21');return db[_0x23cf('0x49')][_0x23cf('0x42')]({'where':{'name':_0x23dc6f,'userProfileId':_0x28c719[_0x23cf('0x4a')]},'raw':!![]})[_0x23cf('0x1f')](function(_0x28ab36){if(_0x28ab36&&_0x28ab36[_0x23cf('0x4b')]===0x0){return db[_0x23cf('0x22')]['create']({'name':_0x59e251[_0x23cf('0x25')],'resourceId':_0x59e251['id'],'type':_0x28ab36['name'],'sectionId':_0x28ab36['id']},{})[_0x23cf('0x1f')](function(){return _0x4302a4;});}else{return _0x4302a4;}})[_0x23cf('0x43')](function(_0x13ebd0){logger[_0x23cf('0x24')](_0x23cf('0x4c'),_0x13ebd0);throw _0x13ebd0;});}return _0x4302a4;})['then'](respondWithResult(_0x522c3f,0xc9))[_0x23cf('0x43')](handleError(_0x522c3f,null));};exports[_0x23cf('0x1e')]=function(_0x1cb534,_0x286e67){if(_0x1cb534[_0x23cf('0x4d')]['id']){delete _0x1cb534[_0x23cf('0x4d')]['id'];}return db['Variable'][_0x23cf('0x42')]({'where':{'id':_0x1cb534['params']['id']}})[_0x23cf('0x1f')](handleEntityNotFound(_0x286e67,null))['then'](saveUpdates(_0x1cb534[_0x23cf('0x4d')],null))[_0x23cf('0x1f')](respondWithResult(_0x286e67,null))['catch'](handleError(_0x286e67,null));};exports['destroy']=function(_0x17f81d,_0x5525f5){return db[_0x23cf('0x3b')]['find']({'where':{'id':_0x17f81d[_0x23cf('0x41')]['id']}})[_0x23cf('0x1f')](handleEntityNotFound(_0x5525f5,null))[_0x23cf('0x1f')](removeEntity(_0x5525f5,null))[_0x23cf('0x43')](handleError(_0x5525f5,null));};
\ No newline at end of file
+var _0x48d2=['moment','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','end','status','offset','undefined','limit','count','set','json','apply','reject','save','then','destroy','Variables','UserProfileResource','sendStatus','error','stack','name','send','map','Variable','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','keys','length','merge','find','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','eml-format','rimraf','zip-dir'];(function(_0xbbf553,_0x4c197f){var _0x8f5a7a=function(_0x2b7a68){while(--_0x2b7a68){_0xbbf553['push'](_0xbbf553['shift']());}};_0x8f5a7a(++_0x4c197f);}(_0x48d2,0xff));var _0x248d=function(_0x3e6d5d,_0x264c7a){_0x3e6d5d=_0x3e6d5d-0x0;var _0x238923=_0x48d2[_0x3e6d5d];return _0x238923;};'use strict';var emlformat=require(_0x248d('0x0'));var rimraf=require(_0x248d('0x1'));var zipdir=require(_0x248d('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x248d('0x3'));var BPromise=require(_0x248d('0x4'));var Mustache=require(_0x248d('0x5'));var util=require(_0x248d('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x248d('0x7'));var ejs=require(_0x248d('0x8'));var fs=require('fs');var fs_extra=require(_0x248d('0x9'));var _=require(_0x248d('0xa'));var squel=require(_0x248d('0xb'));var crypto=require(_0x248d('0xc'));var jsforce=require(_0x248d('0xd'));var deskjs=require(_0x248d('0xe'));var toCsv=require(_0x248d('0x7'));var querystring=require(_0x248d('0xf'));var Papa=require(_0x248d('0x10'));var Redis=require('ioredis');var authService=require(_0x248d('0x11'));var qs=require(_0x248d('0x12'));var as=require(_0x248d('0x13'));var hardwareService=require(_0x248d('0x14'));var logger=require(_0x248d('0x15'))(_0x248d('0x16'));var utils=require(_0x248d('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x248d('0x18'));var db=require(_0x248d('0x19'))['db'];function respondWithStatusCode(_0x2d7e57,_0x37cd53){_0x37cd53=_0x37cd53||0xcc;return function(_0x197aec){if(_0x197aec){return _0x2d7e57['sendStatus'](_0x37cd53);}return _0x2d7e57['status'](_0x37cd53)[_0x248d('0x1a')]();};}function respondWithResult(_0x1d42ee,_0x517256){_0x517256=_0x517256||0xc8;return function(_0x471998){if(_0x471998){return _0x1d42ee[_0x248d('0x1b')](_0x517256)['json'](_0x471998);}};}function respondWithFilteredResult(_0x15b6e0,_0x1dd6e2){return function(_0x21902b){if(_0x21902b){var _0x5adbd3=typeof _0x1dd6e2[_0x248d('0x1c')]===_0x248d('0x1d')&&typeof _0x1dd6e2[_0x248d('0x1e')]===_0x248d('0x1d');var _0x5d8ec7=_0x21902b[_0x248d('0x1f')];var _0x4b0691=_0x5adbd3?0x0:_0x1dd6e2[_0x248d('0x1c')];var _0x170c46=_0x5adbd3?_0x21902b[_0x248d('0x1f')]:_0x1dd6e2[_0x248d('0x1c')]+_0x1dd6e2['limit'];var _0x21f05a;if(_0x170c46>=_0x5d8ec7){_0x170c46=_0x5d8ec7;_0x21f05a=0xc8;}else{_0x21f05a=0xce;}_0x15b6e0[_0x248d('0x1b')](_0x21f05a);return _0x15b6e0[_0x248d('0x20')]('Content-Range',_0x4b0691+'-'+_0x170c46+'/'+_0x5d8ec7)[_0x248d('0x21')](_0x21902b);}return null;};}function patchUpdates(_0x2f29ef){return function(_0x4737e3){try{jsonpatch[_0x248d('0x22')](_0x4737e3,_0x2f29ef,!![]);}catch(_0x5c739a){return BPromise[_0x248d('0x23')](_0x5c739a);}return _0x4737e3[_0x248d('0x24')]();};}function saveUpdates(_0x1f29cc,_0x1db9dd){return function(_0x13d01e){if(_0x13d01e){return _0x13d01e['update'](_0x1f29cc)[_0x248d('0x25')](function(_0x1f3225){return _0x1f3225;});}return null;};}function removeEntity(_0x95d72c,_0x28fe5a){return function(_0xb68e94){if(_0xb68e94){return _0xb68e94[_0x248d('0x26')]()[_0x248d('0x25')](function(){var _0x14844e=_0xb68e94['get']({'plain':!![]});var _0x4eb8fd=_0x248d('0x27');return db[_0x248d('0x28')][_0x248d('0x26')]({'where':{'type':_0x4eb8fd,'resourceId':_0x14844e['id']}})['then'](function(){return _0xb68e94;});})[_0x248d('0x25')](function(){_0x95d72c[_0x248d('0x1b')](0xcc)[_0x248d('0x1a')]();});}};}function handleEntityNotFound(_0xc16b4a,_0x501e5d){return function(_0x593161){if(!_0x593161){_0xc16b4a[_0x248d('0x29')](0x194);}return _0x593161;};}function handleError(_0x33592f,_0x358550){_0x358550=_0x358550||0x1f4;return function(_0x3c14ea){logger[_0x248d('0x2a')](_0x3c14ea[_0x248d('0x2b')]);if(_0x3c14ea['name']){delete _0x3c14ea[_0x248d('0x2c')];}_0x33592f[_0x248d('0x1b')](_0x358550)[_0x248d('0x2d')](_0x3c14ea);};}exports['index']=function(_0x1aed84,_0x2d00bd){var _0x5af575={},_0x1ddb6b={},_0xaed9e7={'count':0x0,'rows':[]};var _0xe249ae=_[_0x248d('0x2e')](db[_0x248d('0x2f')][_0x248d('0x30')],function(_0x3098da){return{'name':_0x3098da[_0x248d('0x31')],'type':_0x3098da[_0x248d('0x32')]['key']};});_0x1ddb6b[_0x248d('0x33')]=_[_0x248d('0x2e')](_0xe249ae,_0x248d('0x2c'));_0x1ddb6b[_0x248d('0x34')]=_['keys'](_0x1aed84['query']);_0x1ddb6b[_0x248d('0x35')]=_[_0x248d('0x36')](_0x1ddb6b[_0x248d('0x33')],_0x1ddb6b['query']);_0x5af575[_0x248d('0x37')]=_[_0x248d('0x36')](_0x1ddb6b[_0x248d('0x33')],qs[_0x248d('0x38')](_0x1aed84[_0x248d('0x34')]['fields']));_0x5af575[_0x248d('0x37')]=_0x5af575['attributes']['length']?_0x5af575[_0x248d('0x37')]:_0x1ddb6b[_0x248d('0x33')];if(!_0x1aed84[_0x248d('0x34')][_0x248d('0x39')]('nolimit')){_0x5af575[_0x248d('0x1e')]=qs[_0x248d('0x1e')](_0x1aed84[_0x248d('0x34')]['limit']);_0x5af575[_0x248d('0x1c')]=qs[_0x248d('0x1c')](_0x1aed84[_0x248d('0x34')][_0x248d('0x1c')]);}_0x5af575[_0x248d('0x3a')]=qs[_0x248d('0x3b')](_0x1aed84['query'][_0x248d('0x3b')]);_0x5af575[_0x248d('0x3c')]=qs[_0x248d('0x35')](_[_0x248d('0x3d')](_0x1aed84['query'],_0x1ddb6b['filters']),_0xe249ae);if(_0x1aed84[_0x248d('0x34')][_0x248d('0x3e')]){_0x5af575['where']=_['merge'](_0x5af575[_0x248d('0x3c')],{'$or':_[_0x248d('0x2e')](_0xe249ae,function(_0x42af67){if(_0x42af67[_0x248d('0x32')]!==_0x248d('0x3f')){var _0x4f3a0d={};_0x4f3a0d[_0x42af67['name']]={'$like':'%'+_0x1aed84['query']['filter']+'%'};return _0x4f3a0d;}})});}_0x5af575=_['merge']({},_0x5af575,_0x1aed84[_0x248d('0x40')]);var _0x6d9d2c={'where':_0x5af575[_0x248d('0x3c')]};return db[_0x248d('0x2f')][_0x248d('0x1f')](_0x6d9d2c)[_0x248d('0x25')](function(_0x256c4c){_0xaed9e7['count']=_0x256c4c;if(_0x1aed84[_0x248d('0x34')][_0x248d('0x41')]){_0x5af575[_0x248d('0x42')]=[{'all':!![]}];}return db[_0x248d('0x2f')][_0x248d('0x43')](_0x5af575);})[_0x248d('0x25')](function(_0x3e9f78){_0xaed9e7[_0x248d('0x44')]=_0x3e9f78;return _0xaed9e7;})['then'](respondWithFilteredResult(_0x2d00bd,_0x5af575))[_0x248d('0x45')](handleError(_0x2d00bd,null));};exports[_0x248d('0x46')]=function(_0x440ef6,_0x1d80e9){var _0x3a9744={'raw':!![],'where':{'id':_0x440ef6['params']['id']}},_0x189f56={};_0x189f56[_0x248d('0x33')]=_[_0x248d('0x47')](db['Variable'][_0x248d('0x30')]);_0x189f56[_0x248d('0x34')]=_[_0x248d('0x47')](_0x440ef6[_0x248d('0x34')]);_0x189f56[_0x248d('0x35')]=_['intersection'](_0x189f56['model'],_0x189f56[_0x248d('0x34')]);_0x3a9744[_0x248d('0x37')]=_['intersection'](_0x189f56[_0x248d('0x33')],qs['fields'](_0x440ef6[_0x248d('0x34')][_0x248d('0x38')]));_0x3a9744[_0x248d('0x37')]=_0x3a9744[_0x248d('0x37')][_0x248d('0x48')]?_0x3a9744[_0x248d('0x37')]:_0x189f56['model'];if(_0x440ef6[_0x248d('0x34')][_0x248d('0x41')]){_0x3a9744[_0x248d('0x42')]=[{'all':!![]}];}_0x3a9744=_[_0x248d('0x49')]({},_0x3a9744,_0x440ef6[_0x248d('0x40')]);return db[_0x248d('0x2f')][_0x248d('0x4a')](_0x3a9744)[_0x248d('0x25')](handleEntityNotFound(_0x1d80e9,null))[_0x248d('0x25')](respondWithResult(_0x1d80e9,null))[_0x248d('0x45')](handleError(_0x1d80e9,null));};exports[_0x248d('0x4b')]=function(_0x5c7556,_0x552bcb){return db[_0x248d('0x2f')][_0x248d('0x4b')](_0x5c7556['body'],{})['then'](function(_0x27ba1d){var _0x5041f1=_0x5c7556['user'][_0x248d('0x4c')]({'plain':!![]});if(!_0x5041f1)throw new Error(_0x248d('0x4d'));if(_0x5041f1[_0x248d('0x4e')]===_0x248d('0x4f')){var _0x192a60=_0x27ba1d[_0x248d('0x4c')]({'plain':!![]});var _0xce5636=_0x248d('0x27');return db[_0x248d('0x50')][_0x248d('0x4a')]({'where':{'name':_0xce5636,'userProfileId':_0x5041f1['userProfileId']},'raw':!![]})[_0x248d('0x25')](function(_0x4b0938){if(_0x4b0938&&_0x4b0938[_0x248d('0x51')]===0x0){return db[_0x248d('0x28')][_0x248d('0x4b')]({'name':_0x192a60[_0x248d('0x2c')],'resourceId':_0x192a60['id'],'type':_0x4b0938['name'],'sectionId':_0x4b0938['id']},{})[_0x248d('0x25')](function(){return _0x27ba1d;});}else{return _0x27ba1d;}})[_0x248d('0x45')](function(_0xca22bb){logger[_0x248d('0x2a')](_0x248d('0x52'),_0xca22bb);throw _0xca22bb;});}return _0x27ba1d;})['then'](respondWithResult(_0x552bcb,0xc9))[_0x248d('0x45')](handleError(_0x552bcb,null));};exports[_0x248d('0x53')]=function(_0x73374,_0x347d5c){if(_0x73374[_0x248d('0x54')]['id']){delete _0x73374[_0x248d('0x54')]['id'];}return db[_0x248d('0x2f')][_0x248d('0x4a')]({'where':{'id':_0x73374['params']['id']}})['then'](handleEntityNotFound(_0x347d5c,null))[_0x248d('0x25')](saveUpdates(_0x73374[_0x248d('0x54')],null))[_0x248d('0x25')](respondWithResult(_0x347d5c,null))[_0x248d('0x45')](handleError(_0x347d5c,null));};exports[_0x248d('0x26')]=function(_0x2aa0e9,_0x1410f9){return db[_0x248d('0x2f')][_0x248d('0x4a')]({'where':{'id':_0x2aa0e9[_0x248d('0x55')]['id']}})['then'](handleEntityNotFound(_0x1410f9,null))['then'](removeEntity(_0x1410f9,null))['catch'](handleError(_0x1410f9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x774a=['request-promise','path','rimraf','../../config/environment','./variable.attributes','exports','Variable','tools_variables','util','../../config/logger','api','bluebird'];(function(_0x36fb70,_0x4b3e35){var _0x4c09d0=function(_0x3bab7a){while(--_0x3bab7a){_0x36fb70['push'](_0x36fb70['shift']());}};_0x4c09d0(++_0x4b3e35);}(_0x774a,0x1e8));var _0xa774=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x774a[_0x432682];return _0x463d05;};'use strict';var _=require('lodash');var util=require(_0xa774('0x0'));var logger=require(_0xa774('0x1'))(_0xa774('0x2'));var moment=require('moment');var BPromise=require(_0xa774('0x3'));var rp=require(_0xa774('0x4'));var fs=require('fs');var path=require(_0xa774('0x5'));var rimraf=require(_0xa774('0x6'));var config=require(_0xa774('0x7'));var attributes=require(_0xa774('0x8'));module[_0xa774('0x9')]=function(_0xda8dc,_0x5c00d){return _0xda8dc['define'](_0xa774('0xa'),attributes,{'tableName':_0xa774('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a1b=['tools_variables','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./variable.attributes','exports','define','Variable'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7a1b,0x1ae));var _0xb7a1=function(_0x36d8a4,_0x55dfed){_0x36d8a4=_0x36d8a4-0x0;var _0x83d5ea=_0x7a1b[_0x36d8a4];return _0x83d5ea;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xb7a1('0x0'))(_0xb7a1('0x1'));var moment=require('moment');var BPromise=require(_0xb7a1('0x2'));var rp=require(_0xb7a1('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb7a1('0x4'));var config=require(_0xb7a1('0x5'));var attributes=require(_0xb7a1('0x6'));module[_0xb7a1('0x7')]=function(_0x429e65,_0x4f70b5){return _0x429e65[_0xb7a1('0x8')](_0xb7a1('0x9'),attributes,{'tableName':_0xb7a1('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ef6=['result','catch','Variable','find','options','raw','include','model','attributes','map','ShowVariable','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','Variable,\x20%s,\x20%s','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x43371b,_0x1cb4cf){var _0x19cd26=function(_0x5f43bf){while(--_0x5f43bf){_0x43371b['push'](_0x43371b['shift']());}};_0x19cd26(++_0x1cb4cf);}(_0x8ef6,0xf2));var _0x68ef=function(_0x480d02,_0x207b40){_0x480d02=_0x480d02-0x0;var _0xda784b=_0x8ef6[_0x480d02];return _0xda784b;};'use strict';var _=require(_0x68ef('0x0'));var util=require(_0x68ef('0x1'));var moment=require(_0x68ef('0x2'));var BPromise=require(_0x68ef('0x3'));var rs=require(_0x68ef('0x4'));var fs=require('fs');var Redis=require(_0x68ef('0x5'));var db=require(_0x68ef('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x68ef('0x7'))(_0x68ef('0x8'));var config=require(_0x68ef('0x9'));var jayson=require(_0x68ef('0xa'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3c2ff3,_0x4740e8,_0x2de776){return new BPromise(function(_0x4eb5eb,_0x228967){return client[_0x68ef('0xb')](_0x3c2ff3,_0x2de776)[_0x68ef('0xc')](function(_0x22ae26){logger[_0x68ef('0xd')](_0x68ef('0xe'),_0x4740e8,_0x68ef('0xf'));logger[_0x68ef('0x10')](_0x68ef('0x11'),_0x4740e8,_0x68ef('0xf'),JSON[_0x68ef('0x12')](_0x22ae26));if(_0x22ae26[_0x68ef('0x13')]){if(_0x22ae26['error'][_0x68ef('0x14')]===0x1f4){logger[_0x68ef('0x13')](_0x68ef('0xe'),_0x4740e8,_0x22ae26[_0x68ef('0x13')][_0x68ef('0x15')]);return _0x228967(_0x22ae26[_0x68ef('0x13')]['message']);}logger[_0x68ef('0x13')](_0x68ef('0xe'),_0x4740e8,_0x22ae26[_0x68ef('0x13')]['message']);return _0x4eb5eb(_0x22ae26[_0x68ef('0x13')][_0x68ef('0x15')]);}else{logger[_0x68ef('0xd')]('Variable,\x20%s,\x20%s',_0x4740e8,_0x68ef('0xf'));_0x4eb5eb(_0x22ae26[_0x68ef('0x16')][_0x68ef('0x15')]);}})[_0x68ef('0x17')](function(_0x5c4456){logger[_0x68ef('0x13')]('Variable,\x20%s,\x20%s',_0x4740e8,_0x5c4456);_0x228967(_0x5c4456);});});}exports['ShowVariable']=function(_0x2633c1){var _0x404870=this;return new Promise(function(_0x4ade0d,_0x527870){return db[_0x68ef('0x18')][_0x68ef('0x19')]({'raw':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1['options'][_0x68ef('0x1b')]===undefined?!![]:![]:!![],'where':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1[_0x68ef('0x1a')]['where']||null:null,'attributes':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1[_0x68ef('0x1a')]['attributes']||null:null,'include':_0x2633c1[_0x68ef('0x1a')]?_0x2633c1[_0x68ef('0x1a')][_0x68ef('0x1c')]?_['map'](_0x2633c1['options']['include'],function(_0x26018d){return{'model':db[_0x26018d[_0x68ef('0x1d')]],'as':_0x26018d['as'],'attributes':_0x26018d[_0x68ef('0x1e')],'include':_0x26018d[_0x68ef('0x1c')]?_[_0x68ef('0x1f')](_0x26018d[_0x68ef('0x1c')],function(_0x258cd5){return{'model':db[_0x258cd5[_0x68ef('0x1d')]],'as':_0x258cd5['as'],'attributes':_0x258cd5[_0x68ef('0x1e')],'include':_0x258cd5[_0x68ef('0x1c')]?_['map'](_0x258cd5[_0x68ef('0x1c')],function(_0x57f9ee){return{'model':db[_0x57f9ee['model']],'as':_0x57f9ee['as'],'attributes':_0x57f9ee['attributes']};}):[]};}):[]};}):[]:[]})[_0x68ef('0xc')](function(_0x268f32){logger[_0x68ef('0xd')](_0x68ef('0x20'),_0x2633c1);logger['debug']('ShowVariable',_0x2633c1,JSON[_0x68ef('0x12')](_0x268f32));_0x4ade0d(_0x268f32);})[_0x68ef('0x17')](function(_0x7bf96){logger[_0x68ef('0x13')](_0x68ef('0x20'),_0x7bf96[_0x68ef('0x15')],_0x2633c1);_0x527870(_0x404870[_0x68ef('0x13')](0x1f4,_0x7bf96[_0x68ef('0x15')]));});});};
\ No newline at end of file
+var _0x4b84=['catch','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','http','then','info','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','Variable,\x20%s,\x20%s','message','ShowVariable','Variable','find','options','raw','where','attributes','include','map','model'];(function(_0x5cedb2,_0x4ae4fe){var _0x4af7eb=function(_0x447604){while(--_0x447604){_0x5cedb2['push'](_0x5cedb2['shift']());}};_0x4af7eb(++_0x4ae4fe);}(_0x4b84,0x1cc));var _0x44b8=function(_0x55e08b,_0x421620){_0x55e08b=_0x55e08b-0x0;var _0xd1a7ff=_0x4b84[_0x55e08b];return _0xd1a7ff;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x44b8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x44b8('0x3'));var logger=require(_0x44b8('0x4'))(_0x44b8('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x44b8('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x54274b,_0x327f59,_0x5947f7){return new BPromise(function(_0x3e87c5,_0x5a2353){return client['request'](_0x54274b,_0x5947f7)[_0x44b8('0x7')](function(_0x42319d){logger[_0x44b8('0x8')]('Variable,\x20%s,\x20%s',_0x327f59,_0x44b8('0x9'));logger[_0x44b8('0xa')](_0x44b8('0xb'),_0x327f59,_0x44b8('0x9'),JSON[_0x44b8('0xc')](_0x42319d));if(_0x42319d[_0x44b8('0xd')]){if(_0x42319d[_0x44b8('0xd')]['code']===0x1f4){logger[_0x44b8('0xd')](_0x44b8('0xe'),_0x327f59,_0x42319d['error'][_0x44b8('0xf')]);return _0x5a2353(_0x42319d['error'][_0x44b8('0xf')]);}logger[_0x44b8('0xd')]('Variable,\x20%s,\x20%s',_0x327f59,_0x42319d[_0x44b8('0xd')]['message']);return _0x3e87c5(_0x42319d['error'][_0x44b8('0xf')]);}else{logger[_0x44b8('0x8')](_0x44b8('0xe'),_0x327f59,_0x44b8('0x9'));_0x3e87c5(_0x42319d['result']['message']);}})['catch'](function(_0x3fe9fb){logger['error'](_0x44b8('0xe'),_0x327f59,_0x3fe9fb);_0x5a2353(_0x3fe9fb);});});}exports[_0x44b8('0x10')]=function(_0x55e258){var _0x36743e=this;return new Promise(function(_0xe3de8f,_0x5103f5){return db[_0x44b8('0x11')][_0x44b8('0x12')]({'raw':_0x55e258['options']?_0x55e258[_0x44b8('0x13')][_0x44b8('0x14')]===undefined?!![]:![]:!![],'where':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x15')]||null:null,'attributes':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x16')]||null:null,'include':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x17')]?_[_0x44b8('0x18')](_0x55e258['options'][_0x44b8('0x17')],function(_0x3a8aa4){return{'model':db[_0x3a8aa4[_0x44b8('0x19')]],'as':_0x3a8aa4['as'],'attributes':_0x3a8aa4[_0x44b8('0x16')],'include':_0x3a8aa4[_0x44b8('0x17')]?_['map'](_0x3a8aa4[_0x44b8('0x17')],function(_0x54677c){return{'model':db[_0x54677c[_0x44b8('0x19')]],'as':_0x54677c['as'],'attributes':_0x54677c[_0x44b8('0x16')],'include':_0x54677c[_0x44b8('0x17')]?_[_0x44b8('0x18')](_0x54677c[_0x44b8('0x17')],function(_0x59acbc){return{'model':db[_0x59acbc[_0x44b8('0x19')]],'as':_0x59acbc['as'],'attributes':_0x59acbc['attributes']};}):[]};}):[]};}):[]:[]})[_0x44b8('0x7')](function(_0x350482){logger['info'](_0x44b8('0x10'),_0x55e258);logger[_0x44b8('0xa')](_0x44b8('0x10'),_0x55e258,JSON['stringify'](_0x350482));_0xe3de8f(_0x350482);})[_0x44b8('0x1a')](function(_0x242342){logger['error'](_0x44b8('0x10'),_0x242342['message'],_0x55e258);_0x5103f5(_0x36743e[_0x44b8('0xd')](0x1f4,_0x242342['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc51e=['/restart','restart','/migrations','exports','express','../../components/auth/service','./version.controller','get','/fetch','isAuthenticated','/reset','reset','pull'];(function(_0x29aa5a,_0x3def3d){var _0x18e7a4=function(_0x30fe0e){while(--_0x30fe0e){_0x29aa5a['push'](_0x29aa5a['shift']());}};_0x18e7a4(++_0x3def3d);}(_0xc51e,0x122));var _0xec51=function(_0x2850c0,_0x1363a7){_0x2850c0=_0x2850c0-0x0;var _0x21e830=_0xc51e[_0x2850c0];return _0x21e830;};'use strict';var express=require(_0xec51('0x0'));var router=express['Router']();var auth=require(_0xec51('0x1'));var controller=require(_0xec51('0x2'));router[_0xec51('0x3')]('/',controller['index']);router[_0xec51('0x3')](_0xec51('0x4'),auth[_0xec51('0x5')](),auth['canUpdate'](),controller['fetch']);router['get'](_0xec51('0x6'),auth[_0xec51('0x5')](),auth['canUpdate'](),controller[_0xec51('0x7')]);router[_0xec51('0x3')]('/pull',auth[_0xec51('0x5')](),auth['canUpdate'](),controller[_0xec51('0x8')]);router[_0xec51('0x3')](_0xec51('0x9'),auth[_0xec51('0x5')](),controller[_0xec51('0xa')]);router[_0xec51('0x3')](_0xec51('0xb'),controller['migrations']);module[_0xec51('0xc')]=router;
\ No newline at end of file
+var _0x9ca5=['./version.controller','get','isAuthenticated','canUpdate','/reset','/pull','pull','restart','migrations','express','../../components/auth/service'];(function(_0x4ddc7b,_0xa13ed8){var _0x2ac651=function(_0x5d4ef7){while(--_0x5d4ef7){_0x4ddc7b['push'](_0x4ddc7b['shift']());}};_0x2ac651(++_0xa13ed8);}(_0x9ca5,0x127));var _0x59ca=function(_0x3a96e2,_0x5ecb0f){_0x3a96e2=_0x3a96e2-0x0;var _0x2c1e1f=_0x9ca5[_0x3a96e2];return _0x2c1e1f;};'use strict';var express=require(_0x59ca('0x0'));var router=express['Router']();var auth=require(_0x59ca('0x1'));var controller=require(_0x59ca('0x2'));router[_0x59ca('0x3')]('/',controller['index']);router[_0x59ca('0x3')]('/fetch',auth[_0x59ca('0x4')](),auth[_0x59ca('0x5')](),controller['fetch']);router['get'](_0x59ca('0x6'),auth['isAuthenticated'](),auth[_0x59ca('0x5')](),controller['reset']);router[_0x59ca('0x3')](_0x59ca('0x7'),auth['isAuthenticated'](),auth[_0x59ca('0x5')](),controller[_0x59ca('0x8')]);router[_0x59ca('0x3')]('/restart',auth[_0x59ca('0x4')](),controller[_0x59ca('0x9')]);router[_0x59ca('0x3')]('/migrations',controller[_0x59ca('0xa')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x534e=['status','master','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','error','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','then','info','pm2\x20restart\x20motion\x20%s','catch','migrations','readdirSync','replace','.js','push','length','sort','sequelize','Migration','join','map','Database\x20migrated\x20successfully\x20from\x20version\x20','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','pkginfo','version','compare-versions','child_process','exec','../../mysqldb','../../config/environment','../../config/logger','update','simple-git','root','index','query','latest','fetch','tags','exports','2.0.0','json'];(function(_0x403c8d,_0x5e3825){var _0x4ca60d=function(_0x9326c1){while(--_0x9326c1){_0x403c8d['push'](_0x403c8d['shift']());}};_0x4ca60d(++_0x5e3825);}(_0x534e,0x128));var _0xe534=function(_0x4b4638,_0xe99cda){_0x4b4638=_0x4b4638-0x0;var _0x59e92b=_0x534e[_0x4b4638];return _0x59e92b;};'use strict';var Umzug=require(_0xe534('0x0'));var path=require(_0xe534('0x1'));var fs=require('fs');var _=require(_0xe534('0x2'));var pkginfo=require(_0xe534('0x3'))(module,_0xe534('0x4'));var compareVersions=require(_0xe534('0x5'));var exec=require(_0xe534('0x6'))[_0xe534('0x7')];var db=require(_0xe534('0x8'))['db'];var config=require(_0xe534('0x9'));var pm2=require('../../config/pm2');var logger=require(_0xe534('0xa'))(_0xe534('0xb'));var git=require(_0xe534('0xc'))(config[_0xe534('0xd')]);exports[_0xe534('0xe')]=function(_0x10221f,_0x499c8d){var _0x398c6b={'current':module['exports'][_0xe534('0x4')],'phonebar':0x2};if(_0x10221f[_0xe534('0xf')]&&_0x10221f[_0xe534('0xf')][_0xe534('0x10')]){return git[_0xe534('0x11')]()[_0xe534('0x12')](function(_0x4cb377,_0x2fcb5c){_0x398c6b[_0xe534('0x10')]=(_0x4cb377?module[_0xe534('0x13')][_0xe534('0x4')]:_0x2fcb5c['latest'])||_0xe534('0x14');return _0x499c8d['status'](0xc8)[_0xe534('0x15')](_0x398c6b);});}else{return _0x499c8d[_0xe534('0x16')](0xc8)[_0xe534('0x15')](_0x398c6b);}};exports[_0xe534('0x11')]=function(_0xec8d5f,_0x429829){return git['fetch'](['origin',_0xe534('0x17')],function(_0x358249){if(_0x358249){logger['error'](_0x358249);return _0x429829['status'](0x1f4)[_0xe534('0x15')](_0x358249);}logger['info'](_0xe534('0x18'));return _0x429829['status'](0xc8)[_0xe534('0x15')]({'output':_0xe534('0x19')});});};exports[_0xe534('0x1a')]=function(_0x5e8d98,_0x45ced3){return git[_0xe534('0x1a')]([_0xe534('0x1b'),'FETCH_HEAD'],function(_0x1a5417){if(_0x1a5417){logger[_0xe534('0x1c')](_0x1a5417);return _0x45ced3['status'](0x1f4)['json'](_0x1a5417);}logger['info'](_0xe534('0x1d'));return _0x45ced3[_0xe534('0x16')](0xc8)['json']({'output':_0xe534('0x1e')});});};exports[_0xe534('0x1f')]=function(_0x35fa9b,_0x589150){exec(_0xe534('0x20'),function(_0xe90614,_0x3ff6f8,_0x2e41c6){logger['info'](_0x3ff6f8);logger['info'](_0x2e41c6);if(_0xe90614){logger[_0xe534('0x1c')](_0xe90614);return _0x589150[_0xe534('0x16')](0x1f4)[_0xe534('0x15')](_0xe90614);}return _0x589150[_0xe534('0x16')](0xc8)[_0xe534('0x15')]({'output':_0x3ff6f8});});};exports[_0xe534('0x21')]=function(_0x22b564,_0x3dab28){return pm2[_0xe534('0x21')](_0xe534('0x22'))[_0xe534('0x23')](function(_0x35ae31){logger[_0xe534('0x24')](_0xe534('0x25'),_0x35ae31);return _0x3dab28[_0xe534('0x16')](0xc8)['json']({'output':'Your\x20system\x20has\x20been\x20restart\x20successfully'});})[_0xe534('0x26')](function(_0xaca75d){logger['error'](_0xaca75d);return _0x3dab28['status'](0x1f4)[_0xe534('0x15')](_0xaca75d);});};exports[_0xe534('0x27')]=function(_0x1a8f84,_0x34ff5e){var _0x2f05ec=fs[_0xe534('0x28')](path['join'](config[_0xe534('0xd')],'server',_0xe534('0x27')));var _0x1120e9=[];for(var _0xc26247=0x0;_0xc26247<_0x2f05ec['length'];_0xc26247++){var _0x14d957=_0x2f05ec[_0xc26247][_0xe534('0x29')](_0xe534('0x2a'),'');if(compareVersions(module[_0xe534('0x13')][_0xe534('0x4')],_0x14d957)===-0x1){_0x1120e9[_0xe534('0x2b')](_0x14d957);}}if(_0x1120e9[_0xe534('0x2c')]){var _0x23cdad=_0x1120e9[_0xe534('0x2d')](compareVersions);var _0x183947=new Umzug({'storage':_0xe534('0x2e'),'storageOptions':{'model':db[_0xe534('0x2f')],'modelName':'Migration','columnName':_0xe534('0x4')},'migrations':{'params':[db[_0xe534('0x2e')]['getQueryInterface'](),db[_0xe534('0x2e')]['constructor'],function(){throw new Error('Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.');}],'path':path[_0xe534('0x30')](config[_0xe534('0xd')],'server',_0xe534('0x27')),'pattern':/\.js$/}});_0x183947['up']({'migrations':_[_0xe534('0x31')](_0x23cdad,function(_0x279455){return _0x279455+_0xe534('0x2a');})})[_0xe534('0x23')](function(){return _0x34ff5e[_0xe534('0x16')](0xc8)[_0xe534('0x15')]({'output':_0xe534('0x32')+module[_0xe534('0x13')][_0xe534('0x4')]+'\x20to\x20'+_['last'](_0x23cdad),'migrations':_[_0xe534('0x30')](_0x23cdad)});})[_0xe534('0x26')](function(_0x25f22d){if(_0x25f22d instanceof db[_0xe534('0x2e')][_0xe534('0x33')]){return _0x34ff5e['status'](0xc8)['json']({'output':_0xe534('0x34')});}else{return _0x34ff5e['status'](0x1f4)['json'](_0x25f22d);}});}else{return _0x34ff5e['status'](0xc8)['json']({'output':_0xe534('0x34')});}};
\ No newline at end of file
+var _0x3137=['exec','../../mysqldb','../../config/environment','../../config/pm2','../../config/logger','simple-git','root','index','exports','query','fetch','tags','latest','2.0.0','status','json','origin','master','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','error','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','catch','migrations','readdirSync','join','server','replace','push','length','sort','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.','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','lodash','pkginfo','version','compare-versions','child_process'];(function(_0x10745e,_0x4cd185){var _0x5bded5=function(_0x52b406){while(--_0x52b406){_0x10745e['push'](_0x10745e['shift']());}};_0x5bded5(++_0x4cd185);}(_0x3137,0x11c));var _0x7313=function(_0xa3259c,_0x5ccc5b){_0xa3259c=_0xa3259c-0x0;var _0x1d72a5=_0x3137[_0xa3259c];return _0x1d72a5;};'use strict';var Umzug=require(_0x7313('0x0'));var path=require('path');var fs=require('fs');var _=require(_0x7313('0x1'));var pkginfo=require(_0x7313('0x2'))(module,_0x7313('0x3'));var compareVersions=require(_0x7313('0x4'));var exec=require(_0x7313('0x5'))[_0x7313('0x6')];var db=require(_0x7313('0x7'))['db'];var config=require(_0x7313('0x8'));var pm2=require(_0x7313('0x9'));var logger=require(_0x7313('0xa'))('update');var git=require(_0x7313('0xb'))(config[_0x7313('0xc')]);exports[_0x7313('0xd')]=function(_0x50858f,_0x4a2103){var _0x544468={'current':module[_0x7313('0xe')][_0x7313('0x3')],'phonebar':0x2};if(_0x50858f[_0x7313('0xf')]&&_0x50858f[_0x7313('0xf')]['latest']){return git[_0x7313('0x10')]()[_0x7313('0x11')](function(_0x2677a9,_0x188955){_0x544468['latest']=(_0x2677a9?module[_0x7313('0xe')]['version']:_0x188955[_0x7313('0x12')])||_0x7313('0x13');return _0x4a2103[_0x7313('0x14')](0xc8)[_0x7313('0x15')](_0x544468);});}else{return _0x4a2103[_0x7313('0x14')](0xc8)['json'](_0x544468);}};exports['fetch']=function(_0x13a6e1,_0x573a05){return git[_0x7313('0x10')]([_0x7313('0x16'),_0x7313('0x17')],function(_0x2a4516){if(_0x2a4516){logger['error'](_0x2a4516);return _0x573a05[_0x7313('0x14')](0x1f4)[_0x7313('0x15')](_0x2a4516);}logger[_0x7313('0x18')](_0x7313('0x19'));return _0x573a05[_0x7313('0x14')](0xc8)[_0x7313('0x15')]({'output':_0x7313('0x1a')});});};exports[_0x7313('0x1b')]=function(_0x214682,_0x12a9ea){return git[_0x7313('0x1b')]([_0x7313('0x1c'),_0x7313('0x1d')],function(_0x2935ce){if(_0x2935ce){logger[_0x7313('0x1e')](_0x2935ce);return _0x12a9ea[_0x7313('0x14')](0x1f4)[_0x7313('0x15')](_0x2935ce);}logger[_0x7313('0x18')](_0x7313('0x1f'));return _0x12a9ea['status'](0xc8)[_0x7313('0x15')]({'output':_0x7313('0x20')});});};exports[_0x7313('0x21')]=function(_0x42b0c5,_0x9a5ecc){exec(_0x7313('0x22'),function(_0x39ecf4,_0x474c81,_0x2d2af6){logger['info'](_0x474c81);logger['info'](_0x2d2af6);if(_0x39ecf4){logger[_0x7313('0x1e')](_0x39ecf4);return _0x9a5ecc[_0x7313('0x14')](0x1f4)[_0x7313('0x15')](_0x39ecf4);}return _0x9a5ecc[_0x7313('0x14')](0xc8)[_0x7313('0x15')]({'output':_0x474c81});});};exports[_0x7313('0x23')]=function(_0xfcaa1c,_0x19060f){return pm2[_0x7313('0x23')](_0x7313('0x24'))[_0x7313('0x25')](function(_0x5e6905){logger[_0x7313('0x18')](_0x7313('0x26'),_0x5e6905);return _0x19060f[_0x7313('0x14')](0xc8)[_0x7313('0x15')]({'output':_0x7313('0x27')});})[_0x7313('0x28')](function(_0x1df155){logger[_0x7313('0x1e')](_0x1df155);return _0x19060f[_0x7313('0x14')](0x1f4)[_0x7313('0x15')](_0x1df155);});};exports[_0x7313('0x29')]=function(_0x4b9b57,_0x4e76f2){var _0x3459e7=fs[_0x7313('0x2a')](path[_0x7313('0x2b')](config[_0x7313('0xc')],_0x7313('0x2c'),_0x7313('0x29')));var _0x3b4670=[];for(var _0x53c10f=0x0;_0x53c10f<_0x3459e7['length'];_0x53c10f++){var _0x27e871=_0x3459e7[_0x53c10f][_0x7313('0x2d')]('.js','');if(compareVersions(module[_0x7313('0xe')][_0x7313('0x3')],_0x27e871)===-0x1){_0x3b4670[_0x7313('0x2e')](_0x27e871);}}if(_0x3b4670[_0x7313('0x2f')]){var _0xd0f319=_0x3b4670[_0x7313('0x30')](compareVersions);var _0x1dfb43=new Umzug({'storage':_0x7313('0x31'),'storageOptions':{'model':db[_0x7313('0x32')],'modelName':'Migration','columnName':_0x7313('0x3')},'migrations':{'params':[db[_0x7313('0x31')][_0x7313('0x33')](),db['sequelize'][_0x7313('0x34')],function(){throw new Error(_0x7313('0x35'));}],'path':path[_0x7313('0x2b')](config[_0x7313('0xc')],_0x7313('0x2c'),_0x7313('0x29')),'pattern':/\.js$/}});_0x1dfb43['up']({'migrations':_['map'](_0xd0f319,function(_0x58ab22){return _0x58ab22+'.js';})})[_0x7313('0x25')](function(){return _0x4e76f2[_0x7313('0x14')](0xc8)[_0x7313('0x15')]({'output':'Database\x20migrated\x20successfully\x20from\x20version\x20'+module['exports'][_0x7313('0x3')]+_0x7313('0x36')+_[_0x7313('0x37')](_0xd0f319),'migrations':_['join'](_0xd0f319)});})[_0x7313('0x28')](function(_0x1ae10c){if(_0x1ae10c instanceof db[_0x7313('0x31')][_0x7313('0x38')]){return _0x4e76f2[_0x7313('0x14')](0xc8)[_0x7313('0x15')]({'output':_0x7313('0x39')});}else{return _0x4e76f2[_0x7313('0x14')](0x1f4)['json'](_0x1ae10c);}});}else{return _0x4e76f2[_0x7313('0x14')](0xc8)[_0x7313('0x15')]({'output':_0x7313('0x39')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ce8=['post','create','put','delete','/:id','destroy','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated'];(function(_0x26c12e,_0x55ef42){var _0xbab0c7=function(_0x35eecb){while(--_0x35eecb){_0x26c12e['push'](_0x26c12e['shift']());}};_0xbab0c7(++_0x55ef42);}(_0x5ce8,0x1ed));var _0x85ce=function(_0x1eea0d,_0x5022c8){_0x1eea0d=_0x1eea0d-0x0;var _0x9e6dac=_0x5ce8[_0x1eea0d];return _0x9e6dac;};'use strict';var multer=require(_0x85ce('0x0'));var util=require('util');var path=require(_0x85ce('0x1'));var timeout=require(_0x85ce('0x2'));var express=require('express');var router=express[_0x85ce('0x3')]();var fs_extra=require(_0x85ce('0x4'));var auth=require(_0x85ce('0x5'));var interaction=require(_0x85ce('0x6'));var config=require(_0x85ce('0x7'));var controller=require(_0x85ce('0x8'));router[_0x85ce('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x85ce('0x9')]('/describe',auth[_0x85ce('0xa')](),controller['describe']);router['get']('/:id',auth[_0x85ce('0xa')](),controller['show']);router[_0x85ce('0xb')]('/',auth[_0x85ce('0xa')](),controller[_0x85ce('0xc')]);router[_0x85ce('0xd')]('/:id',auth[_0x85ce('0xa')](),controller['update']);router[_0x85ce('0xe')](_0x85ce('0xf'),auth[_0x85ce('0xa')](),controller[_0x85ce('0x10')]);module[_0x85ce('0x11')]=router;
\ No newline at end of file
+var _0xa1f0=['get','isAuthenticated','index','show','create','put','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceAgentReport.controller'];(function(_0x40f31d,_0x166318){var _0x10d4e4=function(_0x427148){while(--_0x427148){_0x40f31d['push'](_0x40f31d['shift']());}};_0x10d4e4(++_0x166318);}(_0xa1f0,0x10e));var _0x0a1f=function(_0x23f95a,_0x5e6497){_0x23f95a=_0x23f95a-0x0;var _0xe4cde=_0xa1f0[_0x23f95a];return _0xe4cde;};'use strict';var multer=require(_0x0a1f('0x0'));var util=require(_0x0a1f('0x1'));var path=require(_0x0a1f('0x2'));var timeout=require(_0x0a1f('0x3'));var express=require(_0x0a1f('0x4'));var router=express[_0x0a1f('0x5')]();var fs_extra=require(_0x0a1f('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x0a1f('0x7'));var config=require(_0x0a1f('0x8'));var controller=require(_0x0a1f('0x9'));router[_0x0a1f('0xa')]('/',auth[_0x0a1f('0xb')](),controller[_0x0a1f('0xc')]);router[_0x0a1f('0xa')]('/describe',auth[_0x0a1f('0xb')](),controller['describe']);router[_0x0a1f('0xa')]('/:id',auth[_0x0a1f('0xb')](),controller[_0x0a1f('0xd')]);router['post']('/',auth[_0x0a1f('0xb')](),controller[_0x0a1f('0xe')]);router[_0x0a1f('0xf')](_0x0a1f('0x10'),auth['isAuthenticated'](),controller['update']);router[_0x0a1f('0x11')](_0x0a1f('0x10'),auth[_0x0a1f('0xb')](),controller[_0x0a1f('0x12')]);module[_0x0a1f('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd6e=['DATE','BOOLEAN','INTEGER','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports','STRING'];(function(_0x4b26b5,_0x4f71fd){var _0x4dec71=function(_0x184329){while(--_0x184329){_0x4b26b5['push'](_0x4b26b5['shift']());}};_0x4dec71(++_0x4f71fd);}(_0xdd6e,0xa5));var _0xedd6=function(_0x210ff9,_0x24430d){_0x210ff9=_0x210ff9-0x0;var _0x539f5e=_0xdd6e[_0x210ff9];return _0x539f5e;};'use strict';var Sequelize=require(_0xedd6('0x0'));module[_0xedd6('0x1')]={'type':{'type':Sequelize[_0xedd6('0x2')]},'uniqueid':{'type':Sequelize[_0xedd6('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0xedd6('0x2')]},'queue':{'type':Sequelize[_0xedd6('0x2')]},'interface':{'type':Sequelize[_0xedd6('0x2')]},'membername':{'type':Sequelize[_0xedd6('0x2')]},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize['DATE']},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0xedd6('0x3')]},'agentdumpAt':{'type':Sequelize[_0xedd6('0x3')]},'holdtime':{'type':Sequelize['INTEGER']},'agentcomplete':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'talktime':{'type':Sequelize[_0xedd6('0x5')]},'agentacw':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize['STRING']},'lastevent':{'type':Sequelize[_0xedd6('0x2')]},'channel':{'type':Sequelize[_0xedd6('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0xedd6('0x2')]},'connectedlinenum':{'type':Sequelize[_0xedd6('0x2')]},'connectedlinename':{'type':Sequelize[_0xedd6('0x2')]},'language':{'type':Sequelize[_0xedd6('0x2')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xedd6('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xedd6('0x2')]},'destchannel':{'type':Sequelize[_0xedd6('0x2')]},'destchannelstate':{'type':Sequelize[_0xedd6('0x5')]},'destchannelstatedesc':{'type':Sequelize[_0xedd6('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0xedd6('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0xedd6('0x2')]},'destconnectedlinename':{'type':Sequelize[_0xedd6('0x2')]},'destlanguage':{'type':Sequelize[_0xedd6('0x2')]},'destaccountcode':{'type':Sequelize[_0xedd6('0x2')]},'destcontext':{'type':Sequelize[_0xedd6('0x2')]},'destexten':{'type':Sequelize[_0xedd6('0x2')]},'destpriority':{'type':Sequelize[_0xedd6('0x2')]},'destuniqueid':{'type':Sequelize[_0xedd6('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0xedd6('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0xedd6('0x2')]},'transfer':{'type':Sequelize[_0xedd6('0x4')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':_0xedd6('0x6')},'transferexten':{'type':Sequelize[_0xedd6('0x2')]},'transferuniqueid':{'type':Sequelize[_0xedd6('0x2')]},'agententerreason':{'type':Sequelize[_0xedd6('0x5')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x15b8=['FORWARD,\x20BLIND,\x20ATTENDED','exports','STRING','DATE','INTEGER','BOOLEAN'];(function(_0x20a618,_0x3d1a7b){var _0x3be658=function(_0x2cef18){while(--_0x2cef18){_0x20a618['push'](_0x20a618['shift']());}};_0x3be658(++_0x3d1a7b);}(_0x15b8,0xcd));var _0x815b=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0x15b8[_0x2064e5];return _0x21a233;};'use strict';var Sequelize=require('sequelize');module[_0x815b('0x0')]={'type':{'type':Sequelize[_0x815b('0x1')]},'uniqueid':{'type':Sequelize[_0x815b('0x1')]},'calleridnum':{'type':Sequelize[_0x815b('0x1')]},'calleridname':{'type':Sequelize[_0x815b('0x1')]},'queue':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0x815b('0x1')]},'membername':{'type':Sequelize[_0x815b('0x1')]},'agentcalledAt':{'type':Sequelize[_0x815b('0x2')]},'agentconnectAt':{'type':Sequelize[_0x815b('0x2')]},'agentcompleteAt':{'type':Sequelize[_0x815b('0x2')]},'agentringnoanswerAt':{'type':Sequelize[_0x815b('0x2')]},'agentdumpAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0x815b('0x3')]},'agentcomplete':{'type':Sequelize[_0x815b('0x4')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x815b('0x4')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x815b('0x4')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x815b('0x3')]},'agentacw':{'type':Sequelize[_0x815b('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x815b('0x3')]},'reason':{'type':Sequelize[_0x815b('0x1')]},'lastevent':{'type':Sequelize[_0x815b('0x1')]},'channel':{'type':Sequelize[_0x815b('0x1')]},'channelstate':{'type':Sequelize[_0x815b('0x3')]},'channelstatedesc':{'type':Sequelize[_0x815b('0x1')]},'connectedlinenum':{'type':Sequelize[_0x815b('0x1')]},'connectedlinename':{'type':Sequelize[_0x815b('0x1')]},'language':{'type':Sequelize[_0x815b('0x1')]},'accountcode':{'type':Sequelize[_0x815b('0x1')]},'context':{'type':Sequelize[_0x815b('0x1')]},'exten':{'type':Sequelize[_0x815b('0x1')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize['STRING']},'destchannelstate':{'type':Sequelize[_0x815b('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x815b('0x1')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x815b('0x1')]},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0x815b('0x1')]},'destexten':{'type':Sequelize[_0x815b('0x1')]},'destpriority':{'type':Sequelize[_0x815b('0x1')]},'destuniqueid':{'type':Sequelize['STRING']},'answeredelsewheredestinationuniqueid':{'type':Sequelize['STRING']},'answeredelsewheremembername':{'type':Sequelize[_0x815b('0x1')]},'transfer':{'type':Sequelize[_0x815b('0x4')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x815b('0x1')],'comment':_0x815b('0x5')},'transferexten':{'type':Sequelize[_0x815b('0x1')]},'transferuniqueid':{'type':Sequelize[_0x815b('0x1')]},'agententerreason':{'type':Sequelize[_0x815b('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x2235bf,_0x3a06a7){var _0x4c3a64=function(_0x3b3bb6){while(--_0x3b3bb6){_0x2235bf['push'](_0x2235bf['shift']());}};_0x4c3a64(++_0x3a06a7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0xa9e0[_0x32d457];return _0x338386;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));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 authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
+var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x2235bf,_0x3a06a7){var _0x4c3a64=function(_0x3b3bb6){while(--_0x3b3bb6){_0x2235bf['push'](_0x2235bf['shift']());}};_0x4c3a64(++_0x3a06a7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x387777,_0x356171){_0x387777=_0x387777-0x0;var _0x3f84c0=_0xa9e0[_0x387777];return _0x3f84c0;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));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 authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x304b=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','exports','define','VoiceAgentReport','report_agent','uniqueid','destuniqueid','util'];(function(_0x2b639e,_0x26fe0c){var _0x509b29=function(_0x41bdb1){while(--_0x41bdb1){_0x2b639e['push'](_0x2b639e['shift']());}};_0x509b29(++_0x26fe0c);}(_0x304b,0xfb));var _0xb304=function(_0x23ffd4,_0x56b92b){_0x23ffd4=_0x23ffd4-0x0;var _0x4ab2c0=_0x304b[_0x23ffd4];return _0x4ab2c0;};'use strict';var _=require('lodash');var util=require(_0xb304('0x0'));var logger=require(_0xb304('0x1'))(_0xb304('0x2'));var moment=require(_0xb304('0x3'));var BPromise=require(_0xb304('0x4'));var rp=require(_0xb304('0x5'));var fs=require('fs');var path=require(_0xb304('0x6'));var rimraf=require(_0xb304('0x7'));var config=require('../../config/environment');var attributes=require('./voiceAgentReport.attributes');module[_0xb304('0x8')]=function(_0x301a2e,_0x1eef78){return _0x301a2e[_0xb304('0x9')](_0xb304('0xa'),attributes,{'tableName':_0xb304('0xb'),'paranoid':![],'indexes':[{'fields':[_0xb304('0xc'),_0xb304('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5785=['moment','request-promise','path','rimraf','../../config/environment','./voiceAgentReport.attributes','exports','define','VoiceAgentReport','uniqueid','destuniqueid','lodash','util','../../config/logger','api'];(function(_0x1694f5,_0x49b7c3){var _0x5b4321=function(_0x58c183){while(--_0x58c183){_0x1694f5['push'](_0x1694f5['shift']());}};_0x5b4321(++_0x49b7c3);}(_0x5785,0x119));var _0x5578=function(_0x263a74,_0xc31414){_0x263a74=_0x263a74-0x0;var _0x2aa86c=_0x5785[_0x263a74];return _0x2aa86c;};'use strict';var _=require(_0x5578('0x0'));var util=require(_0x5578('0x1'));var logger=require(_0x5578('0x2'))(_0x5578('0x3'));var moment=require(_0x5578('0x4'));var BPromise=require('bluebird');var rp=require(_0x5578('0x5'));var fs=require('fs');var path=require(_0x5578('0x6'));var rimraf=require(_0x5578('0x7'));var config=require(_0x5578('0x8'));var attributes=require(_0x5578('0x9'));module[_0x5578('0xa')]=function(_0x35a1f4,_0x1a9d73){return _0x35a1f4[_0x5578('0xb')](_0x5578('0xc'),attributes,{'tableName':'report_agent','paranoid':![],'indexes':[{'fields':[_0x5578('0xd'),_0x5578('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2397=['where','attributes','limit','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','http','request','info','VoiceAgentReport,\x20%s,\x20%s','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','VoiceAgentReport','create','body','options','raw','then','CreateVoiceAgentReport','UpdateVoiceAgentReport','update'];(function(_0xc23dbb,_0x423b9c){var _0x18bad1=function(_0x2ca1a3){while(--_0x2ca1a3){_0xc23dbb['push'](_0xc23dbb['shift']());}};_0x18bad1(++_0x423b9c);}(_0x2397,0x1c3));var _0x7239=function(_0x1f7de2,_0x1912f3){_0x1f7de2=_0x1f7de2-0x0;var _0x1c6483=_0x2397[_0x1f7de2];return _0x1c6483;};'use strict';var _=require(_0x7239('0x0'));var util=require(_0x7239('0x1'));var moment=require('moment');var BPromise=require(_0x7239('0x2'));var rs=require(_0x7239('0x3'));var fs=require('fs');var Redis=require(_0x7239('0x4'));var db=require(_0x7239('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x7239('0x6'))(_0x7239('0x7'));var config=require('../../config/environment');var jayson=require(_0x7239('0x8'));var client=jayson['client'][_0x7239('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x7bb2e5,_0x59e9ed,_0x5904ed){return new BPromise(function(_0x2816a1,_0x1dc47f){return client[_0x7239('0xa')](_0x7bb2e5,_0x5904ed)['then'](function(_0x254b3a){logger[_0x7239('0xb')](_0x7239('0xc'),_0x59e9ed,'request\x20sent');logger[_0x7239('0xd')](_0x7239('0xe'),_0x59e9ed,'request\x20sent',JSON[_0x7239('0xf')](_0x254b3a));if(_0x254b3a[_0x7239('0x10')]){if(_0x254b3a['error']['code']===0x1f4){logger[_0x7239('0x10')](_0x7239('0xc'),_0x59e9ed,_0x254b3a[_0x7239('0x10')][_0x7239('0x11')]);return _0x1dc47f(_0x254b3a[_0x7239('0x10')][_0x7239('0x11')]);}logger[_0x7239('0x10')](_0x7239('0xc'),_0x59e9ed,_0x254b3a[_0x7239('0x10')]['message']);return _0x2816a1(_0x254b3a[_0x7239('0x10')][_0x7239('0x11')]);}else{logger[_0x7239('0xb')](_0x7239('0xc'),_0x59e9ed,_0x7239('0x12'));_0x2816a1(_0x254b3a['result'][_0x7239('0x11')]);}})[_0x7239('0x13')](function(_0x377b6f){logger[_0x7239('0x10')](_0x7239('0xc'),_0x59e9ed,_0x377b6f);_0x1dc47f(_0x377b6f);});});}exports['CreateVoiceAgentReport']=function(_0x260734){var _0x3bdfb1=this;return new Promise(function(_0x35c75f,_0x724901){return db[_0x7239('0x14')][_0x7239('0x15')](_0x260734[_0x7239('0x16')],{'raw':_0x260734[_0x7239('0x17')]?_0x260734[_0x7239('0x17')][_0x7239('0x18')]===undefined?!![]:![]:!![]})[_0x7239('0x19')](function(_0x3fe778){logger[_0x7239('0xb')]('CreateVoiceAgentReport',_0x260734);logger['debug'](_0x7239('0x1a'),_0x260734,JSON[_0x7239('0xf')](_0x3fe778));_0x35c75f(_0x3fe778);})[_0x7239('0x13')](function(_0x534ba6){logger[_0x7239('0x10')](_0x7239('0x1a'),_0x534ba6[_0x7239('0x11')],_0x260734);_0x724901(_0x3bdfb1[_0x7239('0x10')](0x1f4,_0x534ba6[_0x7239('0x11')]));});});};exports[_0x7239('0x1b')]=function(_0x4d17a6){var _0x2fc61e=this;return new Promise(function(_0x3b87a8,_0x46ffb6){return db[_0x7239('0x14')][_0x7239('0x1c')](_0x4d17a6[_0x7239('0x16')],{'raw':_0x4d17a6[_0x7239('0x17')]?_0x4d17a6[_0x7239('0x17')][_0x7239('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4d17a6[_0x7239('0x17')]?_0x4d17a6[_0x7239('0x17')][_0x7239('0x1d')]||null:null,'attributes':_0x4d17a6['options']?_0x4d17a6['options'][_0x7239('0x1e')]||null:null,'limit':_0x4d17a6[_0x7239('0x17')]?_0x4d17a6['options'][_0x7239('0x1f')]||null:null})[_0x7239('0x19')](function(_0x10559b){logger['info']('UpdateVoiceAgentReport',_0x4d17a6);logger[_0x7239('0xd')](_0x7239('0x1b'),_0x4d17a6,JSON[_0x7239('0xf')](_0x10559b));_0x3b87a8(_0x10559b);})[_0x7239('0x13')](function(_0x35de91){logger['error'](_0x7239('0x1b'),_0x35de91[_0x7239('0x11')],_0x4d17a6);_0x46ffb6(_0x2fc61e[_0x7239('0x10')](0x1f4,_0x35de91[_0x7239('0x11')]));});});};
\ No newline at end of file
+var _0xff69=['VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','CreateVoiceAgentReport','create','body','options','raw','UpdateVoiceAgentReport','update','attributes','lodash','util','moment','bluebird','randomstring','../../config/logger','jayson/promise','http','request','then','info','VoiceAgentReport,\x20%s,\x20%s','debug'];(function(_0x306e30,_0x107fe3){var _0x247281=function(_0x2930a9){while(--_0x2930a9){_0x306e30['push'](_0x306e30['shift']());}};_0x247281(++_0x107fe3);}(_0xff69,0x189));var _0x9ff6=function(_0x5ad67c,_0x144860){_0x5ad67c=_0x5ad67c-0x0;var _0xccce2e=_0xff69[_0x5ad67c];return _0xccce2e;};'use strict';var _=require(_0x9ff6('0x0'));var util=require(_0x9ff6('0x1'));var moment=require(_0x9ff6('0x2'));var BPromise=require(_0x9ff6('0x3'));var rs=require(_0x9ff6('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x9ff6('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0x9ff6('0x6'));var client=jayson['client'][_0x9ff6('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x272895,_0x2d24f4,_0x56c1d6){return new BPromise(function(_0x2b8c5c,_0x51a790){return client[_0x9ff6('0x8')](_0x272895,_0x56c1d6)[_0x9ff6('0x9')](function(_0x46eb2f){logger[_0x9ff6('0xa')](_0x9ff6('0xb'),_0x2d24f4,'request\x20sent');logger[_0x9ff6('0xc')](_0x9ff6('0xd'),_0x2d24f4,'request\x20sent',JSON[_0x9ff6('0xe')](_0x46eb2f));if(_0x46eb2f[_0x9ff6('0xf')]){if(_0x46eb2f[_0x9ff6('0xf')][_0x9ff6('0x10')]===0x1f4){logger[_0x9ff6('0xf')]('VoiceAgentReport,\x20%s,\x20%s',_0x2d24f4,_0x46eb2f[_0x9ff6('0xf')]['message']);return _0x51a790(_0x46eb2f['error']['message']);}logger['error'](_0x9ff6('0xb'),_0x2d24f4,_0x46eb2f[_0x9ff6('0xf')][_0x9ff6('0x11')]);return _0x2b8c5c(_0x46eb2f[_0x9ff6('0xf')][_0x9ff6('0x11')]);}else{logger[_0x9ff6('0xa')](_0x9ff6('0xb'),_0x2d24f4,_0x9ff6('0x12'));_0x2b8c5c(_0x46eb2f[_0x9ff6('0x13')]['message']);}})[_0x9ff6('0x14')](function(_0x154867){logger[_0x9ff6('0xf')](_0x9ff6('0xb'),_0x2d24f4,_0x154867);_0x51a790(_0x154867);});});}exports[_0x9ff6('0x15')]=function(_0x11d260){var _0x57adac=this;return new Promise(function(_0x1a20e6,_0x1fd43b){return db['VoiceAgentReport'][_0x9ff6('0x16')](_0x11d260[_0x9ff6('0x17')],{'raw':_0x11d260[_0x9ff6('0x18')]?_0x11d260[_0x9ff6('0x18')][_0x9ff6('0x19')]===undefined?!![]:![]:!![]})[_0x9ff6('0x9')](function(_0x56a5fc){logger[_0x9ff6('0xa')](_0x9ff6('0x15'),_0x11d260);logger[_0x9ff6('0xc')](_0x9ff6('0x15'),_0x11d260,JSON[_0x9ff6('0xe')](_0x56a5fc));_0x1a20e6(_0x56a5fc);})[_0x9ff6('0x14')](function(_0x5545ce){logger[_0x9ff6('0xf')](_0x9ff6('0x15'),_0x5545ce[_0x9ff6('0x11')],_0x11d260);_0x1fd43b(_0x57adac[_0x9ff6('0xf')](0x1f4,_0x5545ce['message']));});});};exports[_0x9ff6('0x1a')]=function(_0x1f75bc){var _0xf68c=this;return new Promise(function(_0x2f6f36,_0x1b377d){return db['VoiceAgentReport'][_0x9ff6('0x1b')](_0x1f75bc[_0x9ff6('0x17')],{'raw':_0x1f75bc[_0x9ff6('0x18')]?_0x1f75bc[_0x9ff6('0x18')][_0x9ff6('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1f75bc[_0x9ff6('0x18')]?_0x1f75bc[_0x9ff6('0x18')]['where']||null:null,'attributes':_0x1f75bc[_0x9ff6('0x18')]?_0x1f75bc['options'][_0x9ff6('0x1c')]||null:null,'limit':_0x1f75bc[_0x9ff6('0x18')]?_0x1f75bc[_0x9ff6('0x18')]['limit']||null:null})['then'](function(_0x53d398){logger[_0x9ff6('0xa')](_0x9ff6('0x1a'),_0x1f75bc);logger['debug']('UpdateVoiceAgentReport',_0x1f75bc,JSON['stringify'](_0x53d398));_0x2f6f36(_0x53d398);})[_0x9ff6('0x14')](function(_0x386014){logger[_0x9ff6('0xf')]('UpdateVoiceAgentReport',_0x386014[_0x9ff6('0x11')],_0x1f75bc);_0x1b377d(_0xf68c[_0x9ff6('0xf')](0x1f4,_0x386014[_0x9ff6('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceCallReport.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','delete'];(function(_0x46f390,_0x4bf251){var _0x67e3a8=function(_0x547e6a){while(--_0x547e6a){_0x46f390['push'](_0x46f390['shift']());}};_0x67e3a8(++_0x4bf251);}(_0x34e8,0x12c));var _0x834e=function(_0x21abfa,_0x56dcb7){_0x21abfa=_0x21abfa-0x0;var _0x1c710b=_0x34e8[_0x21abfa];return _0x1c710b;};'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 fs_extra=require(_0x834e('0x5'));var auth=require(_0x834e('0x6'));var interaction=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var controller=require(_0x834e('0x9'));router[_0x834e('0xa')]('/',auth['isAuthenticated'](),controller[_0x834e('0xb')]);router['get'](_0x834e('0xc'),auth[_0x834e('0xd')](),controller[_0x834e('0xe')]);router[_0x834e('0xa')](_0x834e('0xf'),auth[_0x834e('0xd')](),controller[_0x834e('0x10')]);router[_0x834e('0x11')]('/',auth[_0x834e('0xd')](),controller[_0x834e('0x12')]);router[_0x834e('0x13')](_0x834e('0xf'),auth[_0x834e('0xd')](),controller[_0x834e('0x14')]);router[_0x834e('0x15')](_0x834e('0xf'),auth[_0x834e('0xd')](),controller['destroy']);module[_0x834e('0x16')]=router;
\ No newline at end of file
+var _0x4b84=['update','delete','destroy','exports','multer','util','express','../../components/auth/service','../../components/interaction/service','../../config/environment','index','/describe','describe','isAuthenticated','show','post','create','put','/:id'];(function(_0x2fb16e,_0x161667){var _0x5e0882=function(_0x4ed56d){while(--_0x4ed56d){_0x2fb16e['push'](_0x2fb16e['shift']());}};_0x5e0882(++_0x161667);}(_0x4b84,0x1cc));var _0x44b8=function(_0x4d521e,_0x58ba39){_0x4d521e=_0x4d521e-0x0;var _0x3beb42=_0x4b84[_0x4d521e];return _0x3beb42;};'use strict';var multer=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x44b8('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x44b8('0x3'));var interaction=require(_0x44b8('0x4'));var config=require(_0x44b8('0x5'));var controller=require('./voiceCallReport.controller');router['get']('/',auth['isAuthenticated'](),controller[_0x44b8('0x6')]);router['get'](_0x44b8('0x7'),auth['isAuthenticated'](),controller[_0x44b8('0x8')]);router['get']('/:id',auth[_0x44b8('0x9')](),controller[_0x44b8('0xa')]);router[_0x44b8('0xb')]('/',auth['isAuthenticated'](),controller[_0x44b8('0xc')]);router[_0x44b8('0xd')](_0x44b8('0xe'),auth[_0x44b8('0x9')](),controller[_0x44b8('0xf')]);router[_0x44b8('0x10')](_0x44b8('0xe'),auth['isAuthenticated'](),controller[_0x44b8('0x11')]);module[_0x44b8('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x26fb=['inbound','internal','outbound','inbound-fax','dialer','TEXT','DATE','INTEGER','sequelize','exports','STRING','ENUM'];(function(_0x2573c6,_0x56ad17){var _0x5c66b=function(_0x267389){while(--_0x267389){_0x2573c6['push'](_0x2573c6['shift']());}};_0x5c66b(++_0x56ad17);}(_0x26fb,0x1f4));var _0xb26f=function(_0x1cf4d6,_0x50fa41){_0x1cf4d6=_0x1cf4d6-0x0;var _0x41c1b9=_0x26fb[_0x1cf4d6];return _0x41c1b9;};'use strict';var Sequelize=require(_0xb26f('0x0'));module[_0xb26f('0x1')]={'uniqueid':{'type':Sequelize[_0xb26f('0x2')]},'type':{'type':Sequelize[_0xb26f('0x3')](_0xb26f('0x4'),_0xb26f('0x5'),_0xb26f('0x6'),_0xb26f('0x7'),'outbound-fax',_0xb26f('0x8'))},'tag':{'type':Sequelize[_0xb26f('0x2')]},'accountcode':{'type':Sequelize[_0xb26f('0x2')]},'source':{'type':Sequelize[_0xb26f('0x2')]},'destination':{'type':Sequelize[_0xb26f('0x2')]},'destinationcontext':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0xb26f('0x2')]},'channel':{'type':Sequelize[_0xb26f('0x2')]},'destinationchannel':{'type':Sequelize[_0xb26f('0x2')]},'lastapplication':{'type':Sequelize[_0xb26f('0x2')]},'lastdata':{'type':Sequelize[_0xb26f('0x9')]},'starttime':{'type':Sequelize['DATE']},'systemanswertime':{'type':Sequelize[_0xb26f('0xa')]},'answertime':{'type':Sequelize[_0xb26f('0xa')]},'endtime':{'type':Sequelize[_0xb26f('0xa')]},'duration':{'type':Sequelize[_0xb26f('0xb')]},'billableseconds':{'type':Sequelize[_0xb26f('0xb')]},'mohtime':{'type':Sequelize[_0xb26f('0xb')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xb26f('0x2')]},'amaflags':{'type':Sequelize[_0xb26f('0x2')]},'userfield':{'type':Sequelize[_0xb26f('0x2')]},'userDisposition':{'type':Sequelize[_0xb26f('0x2')]},'userSecondDisposition':{'type':Sequelize[_0xb26f('0x2')]},'userThirdDisposition':{'type':Sequelize[_0xb26f('0x2')]},'note':{'type':Sequelize[_0xb26f('0x2')]},'prefix':{'type':Sequelize[_0xb26f('0x2')]},'routeid':{'type':Sequelize['INTEGER']},'sipcallid':{'type':Sequelize[_0xb26f('0x2')]}};
\ No newline at end of file
+var _0xae41=['dialer','TEXT','DATE','INTEGER','sequelize','exports','STRING','ENUM','inbound-fax'];(function(_0x5d5054,_0x5e97f2){var _0x32dbb6=function(_0x1ec1fa){while(--_0x1ec1fa){_0x5d5054['push'](_0x5d5054['shift']());}};_0x32dbb6(++_0x5e97f2);}(_0xae41,0xaf));var _0x1ae4=function(_0x19bea9,_0x388b72){_0x19bea9=_0x19bea9-0x0;var _0x408219=_0xae41[_0x19bea9];return _0x408219;};'use strict';var Sequelize=require(_0x1ae4('0x0'));module[_0x1ae4('0x1')]={'uniqueid':{'type':Sequelize[_0x1ae4('0x2')]},'type':{'type':Sequelize[_0x1ae4('0x3')]('inbound','internal','outbound',_0x1ae4('0x4'),'outbound-fax',_0x1ae4('0x5'))},'tag':{'type':Sequelize[_0x1ae4('0x2')]},'accountcode':{'type':Sequelize['STRING']},'source':{'type':Sequelize[_0x1ae4('0x2')]},'destination':{'type':Sequelize['STRING']},'destinationcontext':{'type':Sequelize[_0x1ae4('0x2')]},'callerid':{'type':Sequelize[_0x1ae4('0x2')]},'channel':{'type':Sequelize[_0x1ae4('0x2')]},'destinationchannel':{'type':Sequelize['STRING']},'lastapplication':{'type':Sequelize[_0x1ae4('0x2')]},'lastdata':{'type':Sequelize[_0x1ae4('0x6')]},'starttime':{'type':Sequelize[_0x1ae4('0x7')]},'systemanswertime':{'type':Sequelize[_0x1ae4('0x7')]},'answertime':{'type':Sequelize[_0x1ae4('0x7')]},'endtime':{'type':Sequelize['DATE']},'duration':{'type':Sequelize['INTEGER']},'billableseconds':{'type':Sequelize['INTEGER']},'mohtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x1ae4('0x2')]},'amaflags':{'type':Sequelize['STRING']},'userfield':{'type':Sequelize[_0x1ae4('0x2')]},'userDisposition':{'type':Sequelize[_0x1ae4('0x2')]},'userSecondDisposition':{'type':Sequelize[_0x1ae4('0x2')]},'userThirdDisposition':{'type':Sequelize[_0x1ae4('0x2')]},'note':{'type':Sequelize['STRING']},'prefix':{'type':Sequelize[_0x1ae4('0x2')]},'routeid':{'type':Sequelize[_0x1ae4('0x8')]},'sipcallid':{'type':Sequelize[_0x1ae4('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2032=['../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','sendStatus','error','stack','name','send','index','map','VoiceCallReport','fieldName','type','key','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filters','filter','merge','where','options','alias','User','rows','catch','show','params','keys','rawAttributes','includeAll','include','create','body','find','describe','uniqueid','user','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2032,0xd9));var _0x2203=function(_0xc35080,_0x54f29e){_0xc35080=_0xc35080-0x0;var _0x1c0d9e=_0x2032[_0xc35080];return _0x1c0d9e;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2203('0x0'));var zipdir=require(_0x2203('0x1'));var jsonpatch=require(_0x2203('0x2'));var rp=require('request-promise');var moment=require(_0x2203('0x3'));var BPromise=require(_0x2203('0x4'));var Mustache=require('mustache');var util=require(_0x2203('0x5'));var path=require(_0x2203('0x6'));var sox=require(_0x2203('0x7'));var csv=require(_0x2203('0x8'));var ejs=require(_0x2203('0x9'));var fs=require('fs');var fs_extra=require(_0x2203('0xa'));var _=require(_0x2203('0xb'));var squel=require(_0x2203('0xc'));var crypto=require(_0x2203('0xd'));var jsforce=require(_0x2203('0xe'));var deskjs=require(_0x2203('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2203('0x10'));var Redis=require('ioredis');var authService=require(_0x2203('0x11'));var qs=require(_0x2203('0x12'));var as=require(_0x2203('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2203('0x14'))('api');var utils=require(_0x2203('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x2203('0x16'));var db=require(_0x2203('0x17'))['db'];function respondWithStatusCode(_0x4b9376,_0x583bc7){_0x583bc7=_0x583bc7||0xcc;return function(_0x585c76){if(_0x585c76){return _0x4b9376['sendStatus'](_0x583bc7);}return _0x4b9376['status'](_0x583bc7)[_0x2203('0x18')]();};}function respondWithResult(_0x538b30,_0x592e47){_0x592e47=_0x592e47||0xc8;return function(_0x21a3af){if(_0x21a3af){return _0x538b30[_0x2203('0x19')](_0x592e47)[_0x2203('0x1a')](_0x21a3af);}};}function respondWithFilteredResult(_0x41af85,_0x226209){return function(_0x3fe0a8){if(_0x3fe0a8){var _0x2c36e6=typeof _0x226209[_0x2203('0x1b')]===_0x2203('0x1c')&&typeof _0x226209[_0x2203('0x1d')]==='undefined';var _0x280eda=_0x3fe0a8[_0x2203('0x1e')];var _0x4893ff=_0x2c36e6?0x0:_0x226209[_0x2203('0x1b')];var _0x8906e1=_0x2c36e6?_0x3fe0a8['count']:_0x226209[_0x2203('0x1b')]+_0x226209['limit'];var _0x2904ba;if(_0x8906e1>=_0x280eda){_0x8906e1=_0x280eda;_0x2904ba=0xc8;}else{_0x2904ba=0xce;}_0x41af85[_0x2203('0x19')](_0x2904ba);return _0x41af85[_0x2203('0x1f')](_0x2203('0x20'),_0x4893ff+'-'+_0x8906e1+'/'+_0x280eda)[_0x2203('0x1a')](_0x3fe0a8);}return null;};}function patchUpdates(_0x449039){return function(_0x538c23){try{jsonpatch[_0x2203('0x21')](_0x538c23,_0x449039,!![]);}catch(_0x50822b){return BPromise['reject'](_0x50822b);}return _0x538c23[_0x2203('0x22')]();};}function saveUpdates(_0x496d82,_0x3b8ef9){return function(_0x5bfe61){if(_0x5bfe61){return _0x5bfe61['update'](_0x496d82)[_0x2203('0x23')](function(_0x5e29cd){return _0x5e29cd;});}return null;};}function removeEntity(_0x5c8da9,_0x226374){return function(_0x2718f5){if(_0x2718f5){return _0x2718f5[_0x2203('0x24')]()[_0x2203('0x23')](function(){_0x5c8da9[_0x2203('0x19')](0xcc)[_0x2203('0x18')]();});}};}function handleEntityNotFound(_0x49c12,_0x250349){return function(_0x576378){if(!_0x576378){_0x49c12[_0x2203('0x25')](0x194);}return _0x576378;};}function handleError(_0x36b958,_0x39a11a){_0x39a11a=_0x39a11a||0x1f4;return function(_0x5f11bf){logger[_0x2203('0x26')](_0x5f11bf[_0x2203('0x27')]);if(_0x5f11bf['name']){delete _0x5f11bf[_0x2203('0x28')];}_0x36b958[_0x2203('0x19')](_0x39a11a)[_0x2203('0x29')](_0x5f11bf);};}exports[_0x2203('0x2a')]=function(_0x28ae02,_0x1df508){var _0x9c53f={},_0x5a95c1={},_0x34b8ba={'count':0x0,'rows':[]};var _0x616ed8=_[_0x2203('0x2b')](db[_0x2203('0x2c')]['rawAttributes'],function(_0x3a8e23){return{'name':_0x3a8e23[_0x2203('0x2d')],'type':_0x3a8e23[_0x2203('0x2e')][_0x2203('0x2f')]};});_0x5a95c1['model']=_[_0x2203('0x2b')](_0x616ed8,_0x2203('0x28'));_0x5a95c1['query']=_['keys'](_0x28ae02[_0x2203('0x30')]);_0x5a95c1['filters']=_['intersection'](_0x5a95c1[_0x2203('0x31')],_0x5a95c1[_0x2203('0x30')]);_0x9c53f[_0x2203('0x32')]=_[_0x2203('0x33')](_0x5a95c1[_0x2203('0x31')],qs['fields'](_0x28ae02[_0x2203('0x30')][_0x2203('0x34')]));_0x9c53f['attributes']=_0x9c53f[_0x2203('0x32')][_0x2203('0x35')]?_0x9c53f[_0x2203('0x32')]:_0x5a95c1[_0x2203('0x31')];if(!_0x28ae02[_0x2203('0x30')][_0x2203('0x36')](_0x2203('0x37'))){_0x9c53f[_0x2203('0x1d')]=qs[_0x2203('0x1d')](_0x28ae02['query'][_0x2203('0x1d')]);_0x9c53f[_0x2203('0x1b')]=qs['offset'](_0x28ae02['query'][_0x2203('0x1b')]);}_0x9c53f['order']=qs[_0x2203('0x38')](_0x28ae02[_0x2203('0x30')][_0x2203('0x38')]);_0x9c53f['where']=qs['filters'](_[_0x2203('0x39')](_0x28ae02['query'],_0x5a95c1[_0x2203('0x3a')]),_0x616ed8);if(_0x28ae02['query'][_0x2203('0x3b')]){_0x9c53f['where']=_[_0x2203('0x3c')](_0x9c53f[_0x2203('0x3d')],{'$or':_[_0x2203('0x2b')](_0x616ed8,function(_0x40a793){if(_0x40a793[_0x2203('0x2e')]!=='VIRTUAL'){var _0x5f1561={};_0x5f1561[_0x40a793['name']]={'$like':'%'+_0x28ae02[_0x2203('0x30')][_0x2203('0x3b')]+'%'};return _0x5f1561;}})});}_0x9c53f=_[_0x2203('0x3c')]({},_0x9c53f,_0x28ae02[_0x2203('0x3e')]);var _0x3283fb={'where':_0x9c53f[_0x2203('0x3d')]};return db[_0x2203('0x2c')]['count'](_0x3283fb)[_0x2203('0x23')](function(_0x1b12c3){_0x34b8ba[_0x2203('0x1e')]=_0x1b12c3;if(_0x28ae02[_0x2203('0x30')]['includeAll']){_0x9c53f['include']=[{'attributes':['id',_0x2203('0x28'),'fullname',_0x2203('0x3f')],'model':db[_0x2203('0x40')],'as':_0x2203('0x40')}];}return db['VoiceCallReport']['findAll'](_0x9c53f);})[_0x2203('0x23')](function(_0x3739f6){_0x34b8ba[_0x2203('0x41')]=_0x3739f6;return _0x34b8ba;})[_0x2203('0x23')](respondWithFilteredResult(_0x1df508,_0x9c53f))[_0x2203('0x42')](handleError(_0x1df508,null));};exports[_0x2203('0x43')]=function(_0x5cd573,_0x15d3b6){var _0x165a3f={'raw':!![],'where':{'id':_0x5cd573[_0x2203('0x44')]['id']}},_0x3a866c={};_0x3a866c[_0x2203('0x31')]=_[_0x2203('0x45')](db[_0x2203('0x2c')][_0x2203('0x46')]);_0x3a866c[_0x2203('0x30')]=_[_0x2203('0x45')](_0x5cd573['query']);_0x3a866c[_0x2203('0x3a')]=_[_0x2203('0x33')](_0x3a866c[_0x2203('0x31')],_0x3a866c[_0x2203('0x30')]);_0x165a3f['attributes']=_['intersection'](_0x3a866c[_0x2203('0x31')],qs['fields'](_0x5cd573[_0x2203('0x30')][_0x2203('0x34')]));_0x165a3f[_0x2203('0x32')]=_0x165a3f[_0x2203('0x32')]['length']?_0x165a3f[_0x2203('0x32')]:_0x3a866c[_0x2203('0x31')];if(_0x5cd573['query'][_0x2203('0x47')]){_0x165a3f[_0x2203('0x48')]=[{'all':!![]}];}_0x165a3f=_[_0x2203('0x3c')]({},_0x165a3f,_0x5cd573[_0x2203('0x3e')]);return db['VoiceCallReport']['find'](_0x165a3f)[_0x2203('0x23')](handleEntityNotFound(_0x15d3b6,null))['then'](respondWithResult(_0x15d3b6,null))['catch'](handleError(_0x15d3b6,null));};exports[_0x2203('0x49')]=function(_0x33b7b5,_0x1a2665){return db['VoiceCallReport']['create'](_0x33b7b5[_0x2203('0x4a')],{})[_0x2203('0x23')](respondWithResult(_0x1a2665,0xc9))[_0x2203('0x42')](handleError(_0x1a2665,null));};exports[_0x2203('0x24')]=function(_0x225b0e,_0x21fd78){return db['VoiceCallReport'][_0x2203('0x4b')]({'where':{'id':_0x225b0e['params']['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x21fd78,null))[_0x2203('0x23')](removeEntity(_0x21fd78,null))[_0x2203('0x42')](handleError(_0x21fd78,null));};exports[_0x2203('0x4c')]=function(_0x58b9bb,_0x506795){return db[_0x2203('0x2c')][_0x2203('0x4c')]()[_0x2203('0x23')](respondWithResult(_0x506795,null))[_0x2203('0x42')](handleError(_0x506795,null));};exports['update']=function(_0x4de47a,_0x49999a){if(_0x4de47a[_0x2203('0x4a')][_0x2203('0x4d')]){delete _0x4de47a['body'][_0x2203('0x4d')];}return db[_0x2203('0x2c')]['find']({'where':{'uniqueid':_0x4de47a[_0x2203('0x44')]['id'],'UserId':{'$or':[null,_0x4de47a[_0x2203('0x4e')]['id']]}}})[_0x2203('0x23')](handleEntityNotFound(_0x49999a,null))[_0x2203('0x23')](saveUpdates(_0x4de47a['body'],null))[_0x2203('0x23')](respondWithResult(_0x49999a,null))['catch'](handleError(_0x49999a,null));};
\ No newline at end of file
+var _0x2032=['../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','sendStatus','error','stack','name','send','index','map','VoiceCallReport','fieldName','type','key','query','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','pick','filters','filter','merge','where','options','alias','User','rows','catch','show','params','keys','rawAttributes','includeAll','include','create','body','find','describe','uniqueid','user','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2032,0xd9));var _0x2203=function(_0x25e1e3,_0x25ee77){_0x25e1e3=_0x25e1e3-0x0;var _0x461671=_0x2032[_0x25e1e3];return _0x461671;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2203('0x0'));var zipdir=require(_0x2203('0x1'));var jsonpatch=require(_0x2203('0x2'));var rp=require('request-promise');var moment=require(_0x2203('0x3'));var BPromise=require(_0x2203('0x4'));var Mustache=require('mustache');var util=require(_0x2203('0x5'));var path=require(_0x2203('0x6'));var sox=require(_0x2203('0x7'));var csv=require(_0x2203('0x8'));var ejs=require(_0x2203('0x9'));var fs=require('fs');var fs_extra=require(_0x2203('0xa'));var _=require(_0x2203('0xb'));var squel=require(_0x2203('0xc'));var crypto=require(_0x2203('0xd'));var jsforce=require(_0x2203('0xe'));var deskjs=require(_0x2203('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x2203('0x10'));var Redis=require('ioredis');var authService=require(_0x2203('0x11'));var qs=require(_0x2203('0x12'));var as=require(_0x2203('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2203('0x14'))('api');var utils=require(_0x2203('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x2203('0x16'));var db=require(_0x2203('0x17'))['db'];function respondWithStatusCode(_0x4b9376,_0x583bc7){_0x583bc7=_0x583bc7||0xcc;return function(_0x585c76){if(_0x585c76){return _0x4b9376['sendStatus'](_0x583bc7);}return _0x4b9376['status'](_0x583bc7)[_0x2203('0x18')]();};}function respondWithResult(_0x538b30,_0x592e47){_0x592e47=_0x592e47||0xc8;return function(_0x21a3af){if(_0x21a3af){return _0x538b30[_0x2203('0x19')](_0x592e47)[_0x2203('0x1a')](_0x21a3af);}};}function respondWithFilteredResult(_0x41af85,_0x226209){return function(_0x3fe0a8){if(_0x3fe0a8){var _0x2c36e6=typeof _0x226209[_0x2203('0x1b')]===_0x2203('0x1c')&&typeof _0x226209[_0x2203('0x1d')]==='undefined';var _0x280eda=_0x3fe0a8[_0x2203('0x1e')];var _0x4893ff=_0x2c36e6?0x0:_0x226209[_0x2203('0x1b')];var _0x8906e1=_0x2c36e6?_0x3fe0a8['count']:_0x226209[_0x2203('0x1b')]+_0x226209['limit'];var _0x2904ba;if(_0x8906e1>=_0x280eda){_0x8906e1=_0x280eda;_0x2904ba=0xc8;}else{_0x2904ba=0xce;}_0x41af85[_0x2203('0x19')](_0x2904ba);return _0x41af85[_0x2203('0x1f')](_0x2203('0x20'),_0x4893ff+'-'+_0x8906e1+'/'+_0x280eda)[_0x2203('0x1a')](_0x3fe0a8);}return null;};}function patchUpdates(_0x449039){return function(_0x538c23){try{jsonpatch[_0x2203('0x21')](_0x538c23,_0x449039,!![]);}catch(_0x50822b){return BPromise['reject'](_0x50822b);}return _0x538c23[_0x2203('0x22')]();};}function saveUpdates(_0x496d82,_0x3b8ef9){return function(_0x5bfe61){if(_0x5bfe61){return _0x5bfe61['update'](_0x496d82)[_0x2203('0x23')](function(_0x5e29cd){return _0x5e29cd;});}return null;};}function removeEntity(_0x5c8da9,_0x226374){return function(_0x2718f5){if(_0x2718f5){return _0x2718f5[_0x2203('0x24')]()[_0x2203('0x23')](function(){_0x5c8da9[_0x2203('0x19')](0xcc)[_0x2203('0x18')]();});}};}function handleEntityNotFound(_0x49c12,_0x250349){return function(_0x576378){if(!_0x576378){_0x49c12[_0x2203('0x25')](0x194);}return _0x576378;};}function handleError(_0x36b958,_0x39a11a){_0x39a11a=_0x39a11a||0x1f4;return function(_0x5f11bf){logger[_0x2203('0x26')](_0x5f11bf[_0x2203('0x27')]);if(_0x5f11bf['name']){delete _0x5f11bf[_0x2203('0x28')];}_0x36b958[_0x2203('0x19')](_0x39a11a)[_0x2203('0x29')](_0x5f11bf);};}exports[_0x2203('0x2a')]=function(_0x28ae02,_0x1df508){var _0x9c53f={},_0x5a95c1={},_0x34b8ba={'count':0x0,'rows':[]};var _0x616ed8=_[_0x2203('0x2b')](db[_0x2203('0x2c')]['rawAttributes'],function(_0x3a8e23){return{'name':_0x3a8e23[_0x2203('0x2d')],'type':_0x3a8e23[_0x2203('0x2e')][_0x2203('0x2f')]};});_0x5a95c1['model']=_[_0x2203('0x2b')](_0x616ed8,_0x2203('0x28'));_0x5a95c1['query']=_['keys'](_0x28ae02[_0x2203('0x30')]);_0x5a95c1['filters']=_['intersection'](_0x5a95c1[_0x2203('0x31')],_0x5a95c1[_0x2203('0x30')]);_0x9c53f[_0x2203('0x32')]=_[_0x2203('0x33')](_0x5a95c1[_0x2203('0x31')],qs['fields'](_0x28ae02[_0x2203('0x30')][_0x2203('0x34')]));_0x9c53f['attributes']=_0x9c53f[_0x2203('0x32')][_0x2203('0x35')]?_0x9c53f[_0x2203('0x32')]:_0x5a95c1[_0x2203('0x31')];if(!_0x28ae02[_0x2203('0x30')][_0x2203('0x36')](_0x2203('0x37'))){_0x9c53f[_0x2203('0x1d')]=qs[_0x2203('0x1d')](_0x28ae02['query'][_0x2203('0x1d')]);_0x9c53f[_0x2203('0x1b')]=qs['offset'](_0x28ae02['query'][_0x2203('0x1b')]);}_0x9c53f['order']=qs[_0x2203('0x38')](_0x28ae02[_0x2203('0x30')][_0x2203('0x38')]);_0x9c53f['where']=qs['filters'](_[_0x2203('0x39')](_0x28ae02['query'],_0x5a95c1[_0x2203('0x3a')]),_0x616ed8);if(_0x28ae02['query'][_0x2203('0x3b')]){_0x9c53f['where']=_[_0x2203('0x3c')](_0x9c53f[_0x2203('0x3d')],{'$or':_[_0x2203('0x2b')](_0x616ed8,function(_0x40a793){if(_0x40a793[_0x2203('0x2e')]!=='VIRTUAL'){var _0x5f1561={};_0x5f1561[_0x40a793['name']]={'$like':'%'+_0x28ae02[_0x2203('0x30')][_0x2203('0x3b')]+'%'};return _0x5f1561;}})});}_0x9c53f=_[_0x2203('0x3c')]({},_0x9c53f,_0x28ae02[_0x2203('0x3e')]);var _0x3283fb={'where':_0x9c53f[_0x2203('0x3d')]};return db[_0x2203('0x2c')]['count'](_0x3283fb)[_0x2203('0x23')](function(_0x1b12c3){_0x34b8ba[_0x2203('0x1e')]=_0x1b12c3;if(_0x28ae02[_0x2203('0x30')]['includeAll']){_0x9c53f['include']=[{'attributes':['id',_0x2203('0x28'),'fullname',_0x2203('0x3f')],'model':db[_0x2203('0x40')],'as':_0x2203('0x40')}];}return db['VoiceCallReport']['findAll'](_0x9c53f);})[_0x2203('0x23')](function(_0x3739f6){_0x34b8ba[_0x2203('0x41')]=_0x3739f6;return _0x34b8ba;})[_0x2203('0x23')](respondWithFilteredResult(_0x1df508,_0x9c53f))[_0x2203('0x42')](handleError(_0x1df508,null));};exports[_0x2203('0x43')]=function(_0x5cd573,_0x15d3b6){var _0x165a3f={'raw':!![],'where':{'id':_0x5cd573[_0x2203('0x44')]['id']}},_0x3a866c={};_0x3a866c[_0x2203('0x31')]=_[_0x2203('0x45')](db[_0x2203('0x2c')][_0x2203('0x46')]);_0x3a866c[_0x2203('0x30')]=_[_0x2203('0x45')](_0x5cd573['query']);_0x3a866c[_0x2203('0x3a')]=_[_0x2203('0x33')](_0x3a866c[_0x2203('0x31')],_0x3a866c[_0x2203('0x30')]);_0x165a3f['attributes']=_['intersection'](_0x3a866c[_0x2203('0x31')],qs['fields'](_0x5cd573[_0x2203('0x30')][_0x2203('0x34')]));_0x165a3f[_0x2203('0x32')]=_0x165a3f[_0x2203('0x32')]['length']?_0x165a3f[_0x2203('0x32')]:_0x3a866c[_0x2203('0x31')];if(_0x5cd573['query'][_0x2203('0x47')]){_0x165a3f[_0x2203('0x48')]=[{'all':!![]}];}_0x165a3f=_[_0x2203('0x3c')]({},_0x165a3f,_0x5cd573[_0x2203('0x3e')]);return db['VoiceCallReport']['find'](_0x165a3f)[_0x2203('0x23')](handleEntityNotFound(_0x15d3b6,null))['then'](respondWithResult(_0x15d3b6,null))['catch'](handleError(_0x15d3b6,null));};exports[_0x2203('0x49')]=function(_0x33b7b5,_0x1a2665){return db['VoiceCallReport']['create'](_0x33b7b5[_0x2203('0x4a')],{})[_0x2203('0x23')](respondWithResult(_0x1a2665,0xc9))[_0x2203('0x42')](handleError(_0x1a2665,null));};exports[_0x2203('0x24')]=function(_0x225b0e,_0x21fd78){return db['VoiceCallReport'][_0x2203('0x4b')]({'where':{'id':_0x225b0e['params']['id']}})[_0x2203('0x23')](handleEntityNotFound(_0x21fd78,null))[_0x2203('0x23')](removeEntity(_0x21fd78,null))[_0x2203('0x42')](handleError(_0x21fd78,null));};exports[_0x2203('0x4c')]=function(_0x58b9bb,_0x506795){return db[_0x2203('0x2c')][_0x2203('0x4c')]()[_0x2203('0x23')](respondWithResult(_0x506795,null))[_0x2203('0x42')](handleError(_0x506795,null));};exports['update']=function(_0x4de47a,_0x49999a){if(_0x4de47a[_0x2203('0x4a')][_0x2203('0x4d')]){delete _0x4de47a['body'][_0x2203('0x4d')];}return db[_0x2203('0x2c')]['find']({'where':{'uniqueid':_0x4de47a[_0x2203('0x44')]['id'],'UserId':{'$or':[null,_0x4de47a[_0x2203('0x4e')]['id']]}}})[_0x2203('0x23')](handleEntityNotFound(_0x49999a,null))[_0x2203('0x23')](saveUpdates(_0x4de47a['body'],null))[_0x2203('0x23')](respondWithResult(_0x49999a,null))['catch'](handleError(_0x49999a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac22=['request-promise','path','rimraf','../../config/environment','./voiceCallReport.attributes','exports','define','VoiceCallReport','report_call','uniqueid','lodash','util','../../config/logger','api','bluebird'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0xac22,0x172));var _0x2ac2=function(_0x1d2155,_0x135477){_0x1d2155=_0x1d2155-0x0;var _0x315bcc=_0xac22[_0x1d2155];return _0x315bcc;};'use strict';var _=require(_0x2ac2('0x0'));var util=require(_0x2ac2('0x1'));var logger=require(_0x2ac2('0x2'))(_0x2ac2('0x3'));var moment=require('moment');var BPromise=require(_0x2ac2('0x4'));var rp=require(_0x2ac2('0x5'));var fs=require('fs');var path=require(_0x2ac2('0x6'));var rimraf=require(_0x2ac2('0x7'));var config=require(_0x2ac2('0x8'));var attributes=require(_0x2ac2('0x9'));module[_0x2ac2('0xa')]=function(_0x57c3c3,_0x385015){return _0x57c3c3[_0x2ac2('0xb')](_0x2ac2('0xc'),attributes,{'tableName':_0x2ac2('0xd'),'paranoid':![],'indexes':[{'fields':[_0x2ac2('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x48c3=['moment','bluebird','request-promise','../../config/environment','./voiceCallReport.attributes','exports','define','VoiceCallReport','report_call','uniqueid','../../config/logger'];(function(_0x19e1f6,_0x52d013){var _0x4b9242=function(_0x372dab){while(--_0x372dab){_0x19e1f6['push'](_0x19e1f6['shift']());}};_0x4b9242(++_0x52d013);}(_0x48c3,0x16a));var _0x348c=function(_0x29a74b,_0x148b86){_0x29a74b=_0x29a74b-0x0;var _0x310ce9=_0x48c3[_0x29a74b];return _0x310ce9;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x348c('0x0'))('api');var moment=require(_0x348c('0x1'));var BPromise=require(_0x348c('0x2'));var rp=require(_0x348c('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x348c('0x4'));var attributes=require(_0x348c('0x5'));module[_0x348c('0x6')]=function(_0xb73007,_0xca8ae8){return _0xb73007[_0x348c('0x7')](_0x348c('0x8'),attributes,{'tableName':_0x348c('0x9'),'paranoid':![],'indexes':[{'fields':[_0x348c('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2958=['VoiceCallReport','update','limit','lodash','util','moment','bluebird','ioredis','../../config/utils','rpc','../../config/environment','client','http','request','then','info','VoiceCallReport,\x20%s,\x20%s','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','catch','options','raw','where','attributes','include','map','GetVoiceCallReport','CreateVoiceCallReport','create','body','UpdateVoiceCallReport'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x2958,0x93));var _0x8295=function(_0x47fb9,_0x3a8d11){_0x47fb9=_0x47fb9-0x0;var _0x259393=_0x2958[_0x47fb9];return _0x259393;};'use strict';var _=require(_0x8295('0x0'));var util=require(_0x8295('0x1'));var moment=require(_0x8295('0x2'));var BPromise=require(_0x8295('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8295('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x8295('0x5'));var logger=require('../../config/logger')(_0x8295('0x6'));var config=require(_0x8295('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x8295('0x8')][_0x8295('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x29ab23,_0x30e006,_0x210dbb){return new BPromise(function(_0xc55c8b,_0x129ccc){return client[_0x8295('0xa')](_0x29ab23,_0x210dbb)[_0x8295('0xb')](function(_0x449f46){logger[_0x8295('0xc')](_0x8295('0xd'),_0x30e006,'request\x20sent');logger[_0x8295('0xe')](_0x8295('0xf'),_0x30e006,_0x8295('0x10'),JSON[_0x8295('0x11')](_0x449f46));if(_0x449f46['error']){if(_0x449f46['error'][_0x8295('0x12')]===0x1f4){logger['error'](_0x8295('0xd'),_0x30e006,_0x449f46[_0x8295('0x13')][_0x8295('0x14')]);return _0x129ccc(_0x449f46['error'][_0x8295('0x14')]);}logger[_0x8295('0x13')]('VoiceCallReport,\x20%s,\x20%s',_0x30e006,_0x449f46['error'][_0x8295('0x14')]);return _0xc55c8b(_0x449f46[_0x8295('0x13')]['message']);}else{logger[_0x8295('0xc')](_0x8295('0xd'),_0x30e006,_0x8295('0x10'));_0xc55c8b(_0x449f46['result']['message']);}})[_0x8295('0x15')](function(_0x361823){logger[_0x8295('0x13')](_0x8295('0xd'),_0x30e006,_0x361823);_0x129ccc(_0x361823);});});}exports['GetVoiceCallReport']=function(_0x4cd1c2){var _0x2934b9=this;return new Promise(function(_0xaf5ebd,_0x1c0550){return db['VoiceCallReport']['findAll']({'raw':_0x4cd1c2[_0x8295('0x16')]?_0x4cd1c2[_0x8295('0x16')][_0x8295('0x17')]===undefined?!![]:![]:!![],'where':_0x4cd1c2['options']?_0x4cd1c2['options'][_0x8295('0x18')]||null:null,'attributes':_0x4cd1c2[_0x8295('0x16')]?_0x4cd1c2[_0x8295('0x16')][_0x8295('0x19')]||null:null,'limit':_0x4cd1c2[_0x8295('0x16')]?_0x4cd1c2[_0x8295('0x16')]['limit']||null:null,'include':_0x4cd1c2['options']?_0x4cd1c2[_0x8295('0x16')][_0x8295('0x1a')]?_[_0x8295('0x1b')](_0x4cd1c2[_0x8295('0x16')][_0x8295('0x1a')],function(_0x2c37b3){return{'model':db[_0x2c37b3['model']],'as':_0x2c37b3['as'],'attributes':_0x2c37b3['attributes'],'include':_0x2c37b3[_0x8295('0x1a')]?_[_0x8295('0x1b')](_0x2c37b3[_0x8295('0x1a')],function(_0x39558f){return{'model':db[_0x39558f['model']],'as':_0x39558f['as'],'attributes':_0x39558f[_0x8295('0x19')],'include':_0x39558f[_0x8295('0x1a')]?_['map'](_0x39558f[_0x8295('0x1a')],function(_0x4519cd){return{'model':db[_0x4519cd['model']],'as':_0x4519cd['as'],'attributes':_0x4519cd[_0x8295('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x10a68b){logger[_0x8295('0xc')](_0x8295('0x1c'),_0x4cd1c2);logger[_0x8295('0xe')]('GetVoiceCallReport',_0x4cd1c2,JSON[_0x8295('0x11')](_0x10a68b));_0xaf5ebd(_0x10a68b);})[_0x8295('0x15')](function(_0x26ff26){logger['error'](_0x8295('0x1c'),_0x26ff26['message'],_0x4cd1c2);_0x1c0550(_0x2934b9[_0x8295('0x13')](0x1f4,_0x26ff26[_0x8295('0x14')]));});});};exports[_0x8295('0x1d')]=function(_0x232942){var _0x12df06=this;return new Promise(function(_0x1c2321,_0x50c9a5){return db['VoiceCallReport'][_0x8295('0x1e')](_0x232942[_0x8295('0x1f')],{'raw':_0x232942['options']?_0x232942[_0x8295('0x16')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x14ce18){logger[_0x8295('0xc')](_0x8295('0x1d'),_0x232942);logger[_0x8295('0xe')](_0x8295('0x1d'),_0x232942,JSON[_0x8295('0x11')](_0x14ce18));_0x1c2321(_0x14ce18);})['catch'](function(_0x2c74dc){logger[_0x8295('0x13')](_0x8295('0x1d'),_0x2c74dc[_0x8295('0x14')],_0x232942);_0x50c9a5(_0x12df06[_0x8295('0x13')](0x1f4,_0x2c74dc['message']));});});};exports[_0x8295('0x20')]=function(_0x4983e1){var _0x1e92c5=this;return new Promise(function(_0x1855fa,_0x316396){return db[_0x8295('0x21')][_0x8295('0x22')](_0x4983e1['body'],{'raw':_0x4983e1[_0x8295('0x16')]?_0x4983e1[_0x8295('0x16')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4983e1[_0x8295('0x16')]?_0x4983e1[_0x8295('0x16')][_0x8295('0x18')]||null:null,'attributes':_0x4983e1['options']?_0x4983e1[_0x8295('0x16')]['attributes']||null:null,'limit':_0x4983e1['options']?_0x4983e1['options'][_0x8295('0x23')]||null:null})['then'](function(_0x279d38){logger['info']('UpdateVoiceCallReport',_0x4983e1);logger[_0x8295('0xe')](_0x8295('0x20'),_0x4983e1,JSON[_0x8295('0x11')](_0x279d38));_0x1855fa(_0x279d38);})[_0x8295('0x15')](function(_0x2a5aa6){logger[_0x8295('0x13')](_0x8295('0x20'),_0x2a5aa6[_0x8295('0x14')],_0x4983e1);_0x316396(_0x1e92c5[_0x8295('0x13')](0x1f4,_0x2a5aa6[_0x8295('0x14')]));});});};
\ No newline at end of file
+var _0xa4bc=['http','request','info','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','VoiceCallReport,\x20%s,\x20%s','result','catch','GetVoiceCallReport','VoiceCallReport','options','attributes','limit','include','map','model','then','CreateVoiceCallReport','body','raw','update','UpdateVoiceCallReport','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x55d8c5,_0x10287a){var _0x225ae5=function(_0x2ba03a){while(--_0x2ba03a){_0x55d8c5['push'](_0x55d8c5['shift']());}};_0x225ae5(++_0x10287a);}(_0xa4bc,0x1d6));var _0xca4b=function(_0x5ecadc,_0x1cf9f1){_0x5ecadc=_0x5ecadc-0x0;var _0x565037=_0xa4bc[_0x5ecadc];return _0x565037;};'use strict';var _=require(_0xca4b('0x0'));var util=require('util');var moment=require(_0xca4b('0x1'));var BPromise=require(_0xca4b('0x2'));var rs=require(_0xca4b('0x3'));var fs=require('fs');var Redis=require(_0xca4b('0x4'));var db=require(_0xca4b('0x5'))['db'];var utils=require(_0xca4b('0x6'));var logger=require(_0xca4b('0x7'))('rpc');var config=require(_0xca4b('0x8'));var jayson=require(_0xca4b('0x9'));var client=jayson[_0xca4b('0xa')][_0xca4b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5ed222,_0x349cc5,_0x3fd4e2){return new BPromise(function(_0x39f74e,_0x29d031){return client[_0xca4b('0xc')](_0x5ed222,_0x3fd4e2)['then'](function(_0x4b0438){logger[_0xca4b('0xd')]('VoiceCallReport,\x20%s,\x20%s',_0x349cc5,'request\x20sent');logger[_0xca4b('0xe')](_0xca4b('0xf'),_0x349cc5,_0xca4b('0x10'),JSON[_0xca4b('0x11')](_0x4b0438));if(_0x4b0438['error']){if(_0x4b0438[_0xca4b('0x12')]['code']===0x1f4){logger['error']('VoiceCallReport,\x20%s,\x20%s',_0x349cc5,_0x4b0438[_0xca4b('0x12')]['message']);return _0x29d031(_0x4b0438[_0xca4b('0x12')][_0xca4b('0x13')]);}logger[_0xca4b('0x12')]('VoiceCallReport,\x20%s,\x20%s',_0x349cc5,_0x4b0438['error']['message']);return _0x39f74e(_0x4b0438['error'][_0xca4b('0x13')]);}else{logger['info'](_0xca4b('0x14'),_0x349cc5,_0xca4b('0x10'));_0x39f74e(_0x4b0438[_0xca4b('0x15')][_0xca4b('0x13')]);}})[_0xca4b('0x16')](function(_0x1033ce){logger[_0xca4b('0x12')](_0xca4b('0x14'),_0x349cc5,_0x1033ce);_0x29d031(_0x1033ce);});});}exports[_0xca4b('0x17')]=function(_0x56cc5a){var _0xb0e43e=this;return new Promise(function(_0x1208e6,_0x2c1e0d){return db[_0xca4b('0x18')]['findAll']({'raw':_0x56cc5a[_0xca4b('0x19')]?_0x56cc5a[_0xca4b('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x56cc5a[_0xca4b('0x19')]?_0x56cc5a['options']['where']||null:null,'attributes':_0x56cc5a['options']?_0x56cc5a[_0xca4b('0x19')][_0xca4b('0x1a')]||null:null,'limit':_0x56cc5a[_0xca4b('0x19')]?_0x56cc5a[_0xca4b('0x19')][_0xca4b('0x1b')]||null:null,'include':_0x56cc5a[_0xca4b('0x19')]?_0x56cc5a['options'][_0xca4b('0x1c')]?_[_0xca4b('0x1d')](_0x56cc5a[_0xca4b('0x19')][_0xca4b('0x1c')],function(_0x4adabe){return{'model':db[_0x4adabe['model']],'as':_0x4adabe['as'],'attributes':_0x4adabe['attributes'],'include':_0x4adabe[_0xca4b('0x1c')]?_['map'](_0x4adabe[_0xca4b('0x1c')],function(_0x13e764){return{'model':db[_0x13e764[_0xca4b('0x1e')]],'as':_0x13e764['as'],'attributes':_0x13e764[_0xca4b('0x1a')],'include':_0x13e764['include']?_['map'](_0x13e764[_0xca4b('0x1c')],function(_0x2ef421){return{'model':db[_0x2ef421[_0xca4b('0x1e')]],'as':_0x2ef421['as'],'attributes':_0x2ef421[_0xca4b('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xca4b('0x1f')](function(_0x279d65){logger[_0xca4b('0xd')](_0xca4b('0x17'),_0x56cc5a);logger['debug'](_0xca4b('0x17'),_0x56cc5a,JSON[_0xca4b('0x11')](_0x279d65));_0x1208e6(_0x279d65);})[_0xca4b('0x16')](function(_0x54410b){logger[_0xca4b('0x12')]('GetVoiceCallReport',_0x54410b[_0xca4b('0x13')],_0x56cc5a);_0x2c1e0d(_0xb0e43e[_0xca4b('0x12')](0x1f4,_0x54410b[_0xca4b('0x13')]));});});};exports[_0xca4b('0x20')]=function(_0x338e69){var _0x5e2aa5=this;return new Promise(function(_0x4df1e4,_0x521ce1){return db[_0xca4b('0x18')]['create'](_0x338e69[_0xca4b('0x21')],{'raw':_0x338e69['options']?_0x338e69[_0xca4b('0x19')][_0xca4b('0x22')]===undefined?!![]:![]:!![]})['then'](function(_0x1ca190){logger['info'](_0xca4b('0x20'),_0x338e69);logger[_0xca4b('0xe')](_0xca4b('0x20'),_0x338e69,JSON[_0xca4b('0x11')](_0x1ca190));_0x4df1e4(_0x1ca190);})[_0xca4b('0x16')](function(_0x1c3e3c){logger[_0xca4b('0x12')](_0xca4b('0x20'),_0x1c3e3c[_0xca4b('0x13')],_0x338e69);_0x521ce1(_0x5e2aa5[_0xca4b('0x12')](0x1f4,_0x1c3e3c[_0xca4b('0x13')]));});});};exports['UpdateVoiceCallReport']=function(_0x140b9a){var _0x4355ef=this;return new Promise(function(_0x18b533,_0x462a46){return db[_0xca4b('0x18')][_0xca4b('0x23')](_0x140b9a[_0xca4b('0x21')],{'raw':_0x140b9a[_0xca4b('0x19')]?_0x140b9a['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x140b9a[_0xca4b('0x19')]?_0x140b9a[_0xca4b('0x19')]['where']||null:null,'attributes':_0x140b9a[_0xca4b('0x19')]?_0x140b9a[_0xca4b('0x19')][_0xca4b('0x1a')]||null:null,'limit':_0x140b9a[_0xca4b('0x19')]?_0x140b9a[_0xca4b('0x19')][_0xca4b('0x1b')]||null:null})[_0xca4b('0x1f')](function(_0x4633a6){logger[_0xca4b('0xd')](_0xca4b('0x24'),_0x140b9a);logger[_0xca4b('0xe')]('UpdateVoiceCallReport',_0x140b9a,JSON[_0xca4b('0x11')](_0x4633a6));_0x18b533(_0x4633a6);})[_0xca4b('0x16')](function(_0x2953fa){logger[_0xca4b('0x12')]('UpdateVoiceCallReport',_0x2953fa[_0xca4b('0x13')],_0x140b9a);_0x462a46(_0x4355ef[_0xca4b('0x12')](0x1f4,_0x2953fa[_0xca4b('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a6b=['../../config/environment','./voiceChanSpy.controller','get','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0xd5a925,_0xe115f7){var _0x17f6e8=function(_0x110b0e){while(--_0x110b0e){_0xd5a925['push'](_0xd5a925['shift']());}};_0x17f6e8(++_0xe115f7);}(_0x9a6b,0x13e));var _0xb9a6=function(_0x46cd52,_0x1200fa){_0x46cd52=_0x46cd52-0x0;var _0x3b67fe=_0x9a6b[_0x46cd52];return _0x3b67fe;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb9a6('0x0'));var router=express[_0xb9a6('0x1')]();var fs_extra=require(_0xb9a6('0x2'));var auth=require(_0xb9a6('0x3'));var interaction=require(_0xb9a6('0x4'));var config=require(_0xb9a6('0x5'));var controller=require(_0xb9a6('0x6'));router[_0xb9a6('0x7')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xb9a6('0x8'),auth[_0xb9a6('0x9')](),controller[_0xb9a6('0xa')]);router[_0xb9a6('0xb')]('/',auth['isAuthenticated'](),controller[_0xb9a6('0xc')]);router[_0xb9a6('0xd')]('/:id',auth[_0xb9a6('0x9')](),controller[_0xb9a6('0xe')]);router[_0xb9a6('0xf')](_0xb9a6('0x8'),auth[_0xb9a6('0x9')](),controller[_0xb9a6('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xaeba=['create','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./voiceChanSpy.controller','get','isAuthenticated','index','/:id','show','post'];(function(_0x2ee262,_0xe9335f){var _0x5d4b22=function(_0x2f43fc){while(--_0x2f43fc){_0x2ee262['push'](_0x2ee262['shift']());}};_0x5d4b22(++_0xe9335f);}(_0xaeba,0x194));var _0xaaeb=function(_0xb2f0a9,_0x19b16b){_0xb2f0a9=_0xb2f0a9-0x0;var _0x40f282=_0xaeba[_0xb2f0a9];return _0x40f282;};'use strict';var multer=require(_0xaaeb('0x0'));var util=require(_0xaaeb('0x1'));var path=require(_0xaaeb('0x2'));var timeout=require(_0xaaeb('0x3'));var express=require(_0xaaeb('0x4'));var router=express[_0xaaeb('0x5')]();var fs_extra=require(_0xaaeb('0x6'));var auth=require(_0xaaeb('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xaaeb('0x8'));var controller=require(_0xaaeb('0x9'));router[_0xaaeb('0xa')]('/',auth[_0xaaeb('0xb')](),controller[_0xaaeb('0xc')]);router[_0xaaeb('0xa')](_0xaaeb('0xd'),auth['isAuthenticated'](),controller[_0xaaeb('0xe')]);router[_0xaaeb('0xf')]('/',auth[_0xaaeb('0xb')](),controller[_0xaaeb('0x10')]);router['put']('/:id',auth[_0xaaeb('0xb')](),controller[_0xaaeb('0x11')]);router[_0xaaeb('0x12')](_0xaaeb('0xd'),auth['isAuthenticated'](),controller['destroy']);module[_0xaaeb('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d7e=['STRING','name','setDataValue','options','getDataValue','BOOLEAN','sequelize','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6d7e,0xee));var _0xe6d7=function(_0xbbecbd,_0x20b9f4){_0xbbecbd=_0xbbecbd-0x0;var _0x2a57e5=_0x6d7e[_0xbbecbd];return _0x2a57e5;};'use strict';var Sequelize=require(_0xe6d7('0x0'));module[_0xe6d7('0x1')]={'name':{'type':Sequelize[_0xe6d7('0x2')]},'prefix':{'type':Sequelize[_0xe6d7('0x2')],'unique':_0xe6d7('0x3'),'allowNull':![]},'options':{'type':Sequelize[_0xe6d7('0x2')],'set':function(_0x2a78d4){this[_0xe6d7('0x4')](_0xe6d7('0x5'),_0x2a78d4?_0x2a78d4['join'](''):[]);},'get':function(){return this[_0xe6d7('0x6')](_0xe6d7('0x5'))?this['getDataValue'](_0xe6d7('0x5'))['split'](''):[];}},'auth':{'type':Sequelize[_0xe6d7('0x7')],'defaultValue':![]},'password':{'type':Sequelize['STRING']},'record':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'recordingFormat':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xe6d7('0x2')]}};
\ No newline at end of file
+var _0x43bc=['BOOLEAN','sequelize','name','STRING','setDataValue','join','getDataValue','options','split'];(function(_0x25a4e9,_0xaf8c5e){var _0x3c3b73=function(_0x3dbe4e){while(--_0x3dbe4e){_0x25a4e9['push'](_0x25a4e9['shift']());}};_0x3c3b73(++_0xaf8c5e);}(_0x43bc,0xfd));var _0xc43b=function(_0x2ff762,_0x342c0b){_0x2ff762=_0x2ff762-0x0;var _0x158b02=_0x43bc[_0x2ff762];return _0x158b02;};'use strict';var Sequelize=require(_0xc43b('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'prefix':{'type':Sequelize['STRING'],'unique':_0xc43b('0x1'),'allowNull':![]},'options':{'type':Sequelize[_0xc43b('0x2')],'set':function(_0x488261){this[_0xc43b('0x3')]('options',_0x488261?_0x488261[_0xc43b('0x4')](''):[]);},'get':function(){return this[_0xc43b('0x5')](_0xc43b('0x6'))?this[_0xc43b('0x5')](_0xc43b('0x6'))[_0xc43b('0x7')](''):[];}},'auth':{'type':Sequelize[_0xc43b('0x8')],'defaultValue':![]},'password':{'type':Sequelize['STRING']},'record':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0xc43b('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x574d=['options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','ChanSpies','UserProfileResource','error','stack','name','send','index','map','VoiceChanSpy','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','rows','catch','show','params','length'];(function(_0x28c608,_0x432ee1){var _0x3ace3e=function(_0xea6cf7){while(--_0xea6cf7){_0x28c608['push'](_0x28c608['shift']());}};_0x3ace3e(++_0x432ee1);}(_0x574d,0xc0));var _0xd574=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x574d[_0x2641f9];return _0x585741;};'use strict';var emlformat=require(_0xd574('0x0'));var rimraf=require(_0xd574('0x1'));var zipdir=require(_0xd574('0x2'));var jsonpatch=require(_0xd574('0x3'));var rp=require(_0xd574('0x4'));var moment=require(_0xd574('0x5'));var BPromise=require(_0xd574('0x6'));var Mustache=require('mustache');var util=require(_0xd574('0x7'));var path=require(_0xd574('0x8'));var sox=require(_0xd574('0x9'));var csv=require(_0xd574('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd574('0xb'));var _=require(_0xd574('0xc'));var squel=require(_0xd574('0xd'));var crypto=require(_0xd574('0xe'));var jsforce=require(_0xd574('0xf'));var deskjs=require(_0xd574('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xd574('0x11'));var Redis=require(_0xd574('0x12'));var authService=require(_0xd574('0x13'));var qs=require(_0xd574('0x14'));var as=require(_0xd574('0x15'));var hardwareService=require(_0xd574('0x16'));var logger=require(_0xd574('0x17'))('api');var utils=require(_0xd574('0x18'));var config=require(_0xd574('0x19'));var licenseUtil=require(_0xd574('0x1a'));var db=require(_0xd574('0x1b'))['db'];function respondWithStatusCode(_0x1ddedb,_0x6c93de){_0x6c93de=_0x6c93de||0xcc;return function(_0x8dd760){if(_0x8dd760){return _0x1ddedb[_0xd574('0x1c')](_0x6c93de);}return _0x1ddedb[_0xd574('0x1d')](_0x6c93de)[_0xd574('0x1e')]();};}function respondWithResult(_0x43e251,_0x2cc660){_0x2cc660=_0x2cc660||0xc8;return function(_0x564b36){if(_0x564b36){return _0x43e251[_0xd574('0x1d')](_0x2cc660)[_0xd574('0x1f')](_0x564b36);}};}function respondWithFilteredResult(_0x2d66be,_0x1537f4){return function(_0x46fb4c){if(_0x46fb4c){var _0x341463=typeof _0x1537f4[_0xd574('0x20')]===_0xd574('0x21')&&typeof _0x1537f4['limit']==='undefined';var _0x1486c7=_0x46fb4c[_0xd574('0x22')];var _0x2ac01d=_0x341463?0x0:_0x1537f4['offset'];var _0x58a74b=_0x341463?_0x46fb4c[_0xd574('0x22')]:_0x1537f4[_0xd574('0x20')]+_0x1537f4[_0xd574('0x23')];var _0x46e331;if(_0x58a74b>=_0x1486c7){_0x58a74b=_0x1486c7;_0x46e331=0xc8;}else{_0x46e331=0xce;}_0x2d66be[_0xd574('0x1d')](_0x46e331);return _0x2d66be[_0xd574('0x24')](_0xd574('0x25'),_0x2ac01d+'-'+_0x58a74b+'/'+_0x1486c7)[_0xd574('0x1f')](_0x46fb4c);}return null;};}function patchUpdates(_0xefe45f){return function(_0x9f980d){try{jsonpatch[_0xd574('0x26')](_0x9f980d,_0xefe45f,!![]);}catch(_0x587f62){return BPromise[_0xd574('0x27')](_0x587f62);}return _0x9f980d[_0xd574('0x28')]();};}function saveUpdates(_0x481564,_0x39c39d){return function(_0x5e5b9f){if(_0x5e5b9f){return _0x5e5b9f[_0xd574('0x29')](_0x481564)[_0xd574('0x2a')](function(_0x199756){return _0x199756;});}return null;};}function removeEntity(_0x3f85cf,_0x1aec00){return function(_0x72d2b8){if(_0x72d2b8){return _0x72d2b8[_0xd574('0x2b')]()[_0xd574('0x2a')](function(){var _0x1e3316=_0x72d2b8[_0xd574('0x2c')]({'plain':!![]});var _0x1fbd81=_0xd574('0x2d');return db[_0xd574('0x2e')][_0xd574('0x2b')]({'where':{'type':_0x1fbd81,'resourceId':_0x1e3316['id']}})['then'](function(){return _0x72d2b8;});})[_0xd574('0x2a')](function(){_0x3f85cf['status'](0xcc)[_0xd574('0x1e')]();});}};}function handleEntityNotFound(_0x5c9224,_0x49f2e9){return function(_0x379d47){if(!_0x379d47){_0x5c9224[_0xd574('0x1c')](0x194);}return _0x379d47;};}function handleError(_0x2153d0,_0x5a36cc){_0x5a36cc=_0x5a36cc||0x1f4;return function(_0x2a8e86){logger[_0xd574('0x2f')](_0x2a8e86[_0xd574('0x30')]);if(_0x2a8e86[_0xd574('0x31')]){delete _0x2a8e86['name'];}_0x2153d0['status'](_0x5a36cc)[_0xd574('0x32')](_0x2a8e86);};}exports[_0xd574('0x33')]=function(_0x203bcb,_0x23a495){var _0x1e65b5={},_0x1c01f0={},_0x5b66eb={'count':0x0,'rows':[]};var _0x5575a8=_[_0xd574('0x34')](db[_0xd574('0x35')][_0xd574('0x36')],function(_0x18749f){return{'name':_0x18749f[_0xd574('0x37')],'type':_0x18749f[_0xd574('0x38')][_0xd574('0x39')]};});_0x1c01f0[_0xd574('0x3a')]=_['map'](_0x5575a8,'name');_0x1c01f0[_0xd574('0x3b')]=_[_0xd574('0x3c')](_0x203bcb[_0xd574('0x3b')]);_0x1c01f0[_0xd574('0x3d')]=_[_0xd574('0x3e')](_0x1c01f0['model'],_0x1c01f0[_0xd574('0x3b')]);_0x1e65b5[_0xd574('0x3f')]=_[_0xd574('0x3e')](_0x1c01f0[_0xd574('0x3a')],qs[_0xd574('0x40')](_0x203bcb[_0xd574('0x3b')][_0xd574('0x40')]));_0x1e65b5['attributes']=_0x1e65b5[_0xd574('0x3f')]['length']?_0x1e65b5[_0xd574('0x3f')]:_0x1c01f0[_0xd574('0x3a')];if(!_0x203bcb[_0xd574('0x3b')][_0xd574('0x41')](_0xd574('0x42'))){_0x1e65b5[_0xd574('0x23')]=qs[_0xd574('0x23')](_0x203bcb[_0xd574('0x3b')][_0xd574('0x23')]);_0x1e65b5[_0xd574('0x20')]=qs[_0xd574('0x20')](_0x203bcb['query'][_0xd574('0x20')]);}_0x1e65b5[_0xd574('0x43')]=qs[_0xd574('0x44')](_0x203bcb['query'][_0xd574('0x44')]);_0x1e65b5[_0xd574('0x45')]=qs[_0xd574('0x3d')](_[_0xd574('0x46')](_0x203bcb[_0xd574('0x3b')],_0x1c01f0[_0xd574('0x3d')]),_0x5575a8);if(_0x203bcb['query'][_0xd574('0x47')]){_0x1e65b5[_0xd574('0x45')]=_[_0xd574('0x48')](_0x1e65b5[_0xd574('0x45')],{'$or':_[_0xd574('0x34')](_0x5575a8,function(_0x4c154e){if(_0x4c154e[_0xd574('0x38')]!==_0xd574('0x49')){var _0x37b588={};_0x37b588[_0x4c154e['name']]={'$like':'%'+_0x203bcb['query']['filter']+'%'};return _0x37b588;}})});}_0x1e65b5=_[_0xd574('0x48')]({},_0x1e65b5,_0x203bcb['options']);var _0x5874e4={'where':_0x1e65b5['where']};return db[_0xd574('0x35')][_0xd574('0x22')](_0x5874e4)[_0xd574('0x2a')](function(_0x20b570){_0x5b66eb['count']=_0x20b570;if(_0x203bcb[_0xd574('0x3b')][_0xd574('0x4a')]){_0x1e65b5[_0xd574('0x4b')]=[{'all':!![]}];}return db[_0xd574('0x35')]['findAll'](_0x1e65b5);})[_0xd574('0x2a')](function(_0x4caf06){_0x5b66eb[_0xd574('0x4c')]=_0x4caf06;return _0x5b66eb;})[_0xd574('0x2a')](respondWithFilteredResult(_0x23a495,_0x1e65b5))[_0xd574('0x4d')](handleError(_0x23a495,null));};exports[_0xd574('0x4e')]=function(_0xcd3231,_0x1baedc){var _0x391b76={'raw':![],'where':{'id':_0xcd3231[_0xd574('0x4f')]['id']}},_0x323882={};_0x323882[_0xd574('0x3a')]=_[_0xd574('0x3c')](db[_0xd574('0x35')][_0xd574('0x36')]);_0x323882['query']=_[_0xd574('0x3c')](_0xcd3231['query']);_0x323882['filters']=_[_0xd574('0x3e')](_0x323882[_0xd574('0x3a')],_0x323882['query']);_0x391b76[_0xd574('0x3f')]=_[_0xd574('0x3e')](_0x323882[_0xd574('0x3a')],qs['fields'](_0xcd3231[_0xd574('0x3b')][_0xd574('0x40')]));_0x391b76[_0xd574('0x3f')]=_0x391b76[_0xd574('0x3f')][_0xd574('0x50')]?_0x391b76[_0xd574('0x3f')]:_0x323882['model'];if(_0xcd3231[_0xd574('0x3b')][_0xd574('0x4a')]){_0x391b76[_0xd574('0x4b')]=[{'all':!![]}];}_0x391b76=_[_0xd574('0x48')]({},_0x391b76,_0xcd3231[_0xd574('0x51')]);return db[_0xd574('0x35')][_0xd574('0x52')](_0x391b76)[_0xd574('0x2a')](handleEntityNotFound(_0x1baedc,null))[_0xd574('0x2a')](respondWithResult(_0x1baedc,null))[_0xd574('0x4d')](handleError(_0x1baedc,null));};exports[_0xd574('0x53')]=function(_0x3aa4e6,_0x1cad77){return db[_0xd574('0x35')][_0xd574('0x53')](_0x3aa4e6[_0xd574('0x54')],{})['then'](function(_0x3dbfdc){var _0x3be45f=_0x3aa4e6['user'][_0xd574('0x2c')]({'plain':!![]});if(!_0x3be45f)throw new Error(_0xd574('0x55'));if(_0x3be45f[_0xd574('0x56')]===_0xd574('0x57')){var _0x2fcf85=_0x3dbfdc[_0xd574('0x2c')]({'plain':!![]});var _0x462e5e=_0xd574('0x2d');return db[_0xd574('0x58')][_0xd574('0x52')]({'where':{'name':_0x462e5e,'userProfileId':_0x3be45f['userProfileId']},'raw':!![]})[_0xd574('0x2a')](function(_0xf27716){if(_0xf27716&&_0xf27716[_0xd574('0x59')]===0x0){return db[_0xd574('0x2e')][_0xd574('0x53')]({'name':_0x2fcf85[_0xd574('0x31')],'resourceId':_0x2fcf85['id'],'type':_0xf27716[_0xd574('0x31')],'sectionId':_0xf27716['id']},{})[_0xd574('0x2a')](function(){return _0x3dbfdc;});}else{return _0x3dbfdc;}})[_0xd574('0x4d')](function(_0xba391f){logger[_0xd574('0x2f')](_0xd574('0x5a'),_0xba391f);throw _0xba391f;});}return _0x3dbfdc;})[_0xd574('0x2a')](respondWithResult(_0x1cad77,0xc9))[_0xd574('0x4d')](handleError(_0x1cad77,null));};exports[_0xd574('0x29')]=function(_0xcd1e61,_0x7c3273){if(_0xcd1e61[_0xd574('0x54')]['id']){delete _0xcd1e61[_0xd574('0x54')]['id'];}return db[_0xd574('0x35')][_0xd574('0x52')]({'where':{'id':_0xcd1e61[_0xd574('0x4f')]['id']}})[_0xd574('0x2a')](handleEntityNotFound(_0x7c3273,null))[_0xd574('0x2a')](saveUpdates(_0xcd1e61[_0xd574('0x54')],null))['then'](respondWithResult(_0x7c3273,null))[_0xd574('0x4d')](handleError(_0x7c3273,null));};exports[_0xd574('0x2b')]=function(_0x2ec166,_0xd1a7e3){return db[_0xd574('0x35')][_0xd574('0x52')]({'where':{'id':_0x2ec166[_0xd574('0x4f')]['id']}})[_0xd574('0x2a')](handleEntityNotFound(_0xd1a7e3,null))[_0xd574('0x2a')](removeEntity(_0xd1a7e3,null))['catch'](handleError(_0xd1a7e3,null));};
\ No newline at end of file
+var _0x5d31=['where','includeAll','include','findAll','rows','catch','show','params','find','Unable\x20to\x20retrieve\x20the\x20current\x20user','ChanSpies','UserProfileSection','userProfileId','UserProfileResource','create','body','rimraf','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','update','then','destroy','get','error','name','send','map','VoiceChanSpy','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','merge','VIRTUAL','options'];(function(_0xfafd53,_0x5be3e9){var _0x1ca35b=function(_0x2d771a){while(--_0x2d771a){_0xfafd53['push'](_0xfafd53['shift']());}};_0x1ca35b(++_0x5be3e9);}(_0x5d31,0xf7));var _0x15d3=function(_0x39dbcb,_0x4f63d7){_0x39dbcb=_0x39dbcb-0x0;var _0x5aadb2=_0x5d31[_0x39dbcb];return _0x5aadb2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x15d3('0x0'));var zipdir=require(_0x15d3('0x1'));var jsonpatch=require(_0x15d3('0x2'));var rp=require('request-promise');var moment=require(_0x15d3('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x15d3('0x4'));var path=require(_0x15d3('0x5'));var sox=require(_0x15d3('0x6'));var csv=require(_0x15d3('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x15d3('0x8'));var _=require(_0x15d3('0x9'));var squel=require(_0x15d3('0xa'));var crypto=require(_0x15d3('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x15d3('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x15d3('0xd'));var Redis=require('ioredis');var authService=require(_0x15d3('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x15d3('0xf'));var logger=require(_0x15d3('0x10'))(_0x15d3('0x11'));var utils=require(_0x15d3('0x12'));var config=require(_0x15d3('0x13'));var licenseUtil=require(_0x15d3('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x219867,_0x1397d8){_0x1397d8=_0x1397d8||0xcc;return function(_0x2811b5){if(_0x2811b5){return _0x219867[_0x15d3('0x15')](_0x1397d8);}return _0x219867[_0x15d3('0x16')](_0x1397d8)[_0x15d3('0x17')]();};}function respondWithResult(_0x24eb07,_0x1658cf){_0x1658cf=_0x1658cf||0xc8;return function(_0x44b5a4){if(_0x44b5a4){return _0x24eb07[_0x15d3('0x16')](_0x1658cf)[_0x15d3('0x18')](_0x44b5a4);}};}function respondWithFilteredResult(_0x4af3a7,_0x304a13){return function(_0x17401b){if(_0x17401b){var _0x5bbfef=typeof _0x304a13[_0x15d3('0x19')]===_0x15d3('0x1a')&&typeof _0x304a13[_0x15d3('0x1b')]===_0x15d3('0x1a');var _0x1b7b3f=_0x17401b[_0x15d3('0x1c')];var _0x46f9ce=_0x5bbfef?0x0:_0x304a13[_0x15d3('0x19')];var _0x46e18b=_0x5bbfef?_0x17401b[_0x15d3('0x1c')]:_0x304a13[_0x15d3('0x19')]+_0x304a13['limit'];var _0x41c358;if(_0x46e18b>=_0x1b7b3f){_0x46e18b=_0x1b7b3f;_0x41c358=0xc8;}else{_0x41c358=0xce;}_0x4af3a7[_0x15d3('0x16')](_0x41c358);return _0x4af3a7['set']('Content-Range',_0x46f9ce+'-'+_0x46e18b+'/'+_0x1b7b3f)['json'](_0x17401b);}return null;};}function patchUpdates(_0x4ebc97){return function(_0x39bb05){try{jsonpatch[_0x15d3('0x1d')](_0x39bb05,_0x4ebc97,!![]);}catch(_0x40a327){return BPromise[_0x15d3('0x1e')](_0x40a327);}return _0x39bb05[_0x15d3('0x1f')]();};}function saveUpdates(_0x2fa13c,_0x4da198){return function(_0x49eb89){if(_0x49eb89){return _0x49eb89[_0x15d3('0x20')](_0x2fa13c)[_0x15d3('0x21')](function(_0x444075){return _0x444075;});}return null;};}function removeEntity(_0x72852f,_0x5b06cc){return function(_0x232078){if(_0x232078){return _0x232078[_0x15d3('0x22')]()[_0x15d3('0x21')](function(){var _0x539626=_0x232078[_0x15d3('0x23')]({'plain':!![]});var _0x240cf4='ChanSpies';return db['UserProfileResource']['destroy']({'where':{'type':_0x240cf4,'resourceId':_0x539626['id']}})[_0x15d3('0x21')](function(){return _0x232078;});})[_0x15d3('0x21')](function(){_0x72852f[_0x15d3('0x16')](0xcc)[_0x15d3('0x17')]();});}};}function handleEntityNotFound(_0x26ec4b,_0x24bf3c){return function(_0x247fab){if(!_0x247fab){_0x26ec4b[_0x15d3('0x15')](0x194);}return _0x247fab;};}function handleError(_0x3b1ba4,_0x49b865){_0x49b865=_0x49b865||0x1f4;return function(_0x5f445a){logger[_0x15d3('0x24')](_0x5f445a['stack']);if(_0x5f445a[_0x15d3('0x25')]){delete _0x5f445a['name'];}_0x3b1ba4[_0x15d3('0x16')](_0x49b865)[_0x15d3('0x26')](_0x5f445a);};}exports['index']=function(_0x424756,_0x29a947){var _0x477624={},_0x61822={},_0x246874={'count':0x0,'rows':[]};var _0x14491b=_[_0x15d3('0x27')](db[_0x15d3('0x28')][_0x15d3('0x29')],function(_0x18452c){return{'name':_0x18452c['fieldName'],'type':_0x18452c[_0x15d3('0x2a')][_0x15d3('0x2b')]};});_0x61822[_0x15d3('0x2c')]=_[_0x15d3('0x27')](_0x14491b,_0x15d3('0x25'));_0x61822[_0x15d3('0x2d')]=_[_0x15d3('0x2e')](_0x424756[_0x15d3('0x2d')]);_0x61822['filters']=_[_0x15d3('0x2f')](_0x61822['model'],_0x61822[_0x15d3('0x2d')]);_0x477624[_0x15d3('0x30')]=_[_0x15d3('0x2f')](_0x61822[_0x15d3('0x2c')],qs[_0x15d3('0x31')](_0x424756[_0x15d3('0x2d')][_0x15d3('0x31')]));_0x477624[_0x15d3('0x30')]=_0x477624[_0x15d3('0x30')][_0x15d3('0x32')]?_0x477624[_0x15d3('0x30')]:_0x61822[_0x15d3('0x2c')];if(!_0x424756[_0x15d3('0x2d')][_0x15d3('0x33')](_0x15d3('0x34'))){_0x477624['limit']=qs[_0x15d3('0x1b')](_0x424756[_0x15d3('0x2d')]['limit']);_0x477624[_0x15d3('0x19')]=qs[_0x15d3('0x19')](_0x424756[_0x15d3('0x2d')]['offset']);}_0x477624[_0x15d3('0x35')]=qs['sort'](_0x424756[_0x15d3('0x2d')][_0x15d3('0x36')]);_0x477624['where']=qs[_0x15d3('0x37')](_[_0x15d3('0x38')](_0x424756[_0x15d3('0x2d')],_0x61822[_0x15d3('0x37')]),_0x14491b);if(_0x424756[_0x15d3('0x2d')][_0x15d3('0x39')]){_0x477624['where']=_[_0x15d3('0x3a')](_0x477624['where'],{'$or':_[_0x15d3('0x27')](_0x14491b,function(_0x21c799){if(_0x21c799[_0x15d3('0x2a')]!==_0x15d3('0x3b')){var _0x204676={};_0x204676[_0x21c799[_0x15d3('0x25')]]={'$like':'%'+_0x424756[_0x15d3('0x2d')][_0x15d3('0x39')]+'%'};return _0x204676;}})});}_0x477624=_[_0x15d3('0x3a')]({},_0x477624,_0x424756[_0x15d3('0x3c')]);var _0x5a18b6={'where':_0x477624[_0x15d3('0x3d')]};return db[_0x15d3('0x28')]['count'](_0x5a18b6)['then'](function(_0x108254){_0x246874[_0x15d3('0x1c')]=_0x108254;if(_0x424756[_0x15d3('0x2d')][_0x15d3('0x3e')]){_0x477624[_0x15d3('0x3f')]=[{'all':!![]}];}return db[_0x15d3('0x28')][_0x15d3('0x40')](_0x477624);})[_0x15d3('0x21')](function(_0x25fa1d){_0x246874[_0x15d3('0x41')]=_0x25fa1d;return _0x246874;})['then'](respondWithFilteredResult(_0x29a947,_0x477624))[_0x15d3('0x42')](handleError(_0x29a947,null));};exports[_0x15d3('0x43')]=function(_0x534928,_0x1581dc){var _0x5c9829={'raw':![],'where':{'id':_0x534928[_0x15d3('0x44')]['id']}},_0x4d7f72={};_0x4d7f72[_0x15d3('0x2c')]=_[_0x15d3('0x2e')](db['VoiceChanSpy'][_0x15d3('0x29')]);_0x4d7f72['query']=_[_0x15d3('0x2e')](_0x534928[_0x15d3('0x2d')]);_0x4d7f72[_0x15d3('0x37')]=_[_0x15d3('0x2f')](_0x4d7f72[_0x15d3('0x2c')],_0x4d7f72['query']);_0x5c9829['attributes']=_['intersection'](_0x4d7f72[_0x15d3('0x2c')],qs['fields'](_0x534928[_0x15d3('0x2d')][_0x15d3('0x31')]));_0x5c9829[_0x15d3('0x30')]=_0x5c9829['attributes'][_0x15d3('0x32')]?_0x5c9829[_0x15d3('0x30')]:_0x4d7f72[_0x15d3('0x2c')];if(_0x534928[_0x15d3('0x2d')][_0x15d3('0x3e')]){_0x5c9829[_0x15d3('0x3f')]=[{'all':!![]}];}_0x5c9829=_[_0x15d3('0x3a')]({},_0x5c9829,_0x534928[_0x15d3('0x3c')]);return db[_0x15d3('0x28')][_0x15d3('0x45')](_0x5c9829)[_0x15d3('0x21')](handleEntityNotFound(_0x1581dc,null))[_0x15d3('0x21')](respondWithResult(_0x1581dc,null))['catch'](handleError(_0x1581dc,null));};exports['create']=function(_0x264487,_0x446929){return db[_0x15d3('0x28')]['create'](_0x264487['body'],{})[_0x15d3('0x21')](function(_0x4a825d){var _0x454ad3=_0x264487['user'][_0x15d3('0x23')]({'plain':!![]});if(!_0x454ad3)throw new Error(_0x15d3('0x46'));if(_0x454ad3['role']==='user'){var _0x480c9d=_0x4a825d['get']({'plain':!![]});var _0x5547ab=_0x15d3('0x47');return db[_0x15d3('0x48')]['find']({'where':{'name':_0x5547ab,'userProfileId':_0x454ad3[_0x15d3('0x49')]},'raw':!![]})[_0x15d3('0x21')](function(_0x323717){if(_0x323717&&_0x323717['autoAssociation']===0x0){return db[_0x15d3('0x4a')][_0x15d3('0x4b')]({'name':_0x480c9d[_0x15d3('0x25')],'resourceId':_0x480c9d['id'],'type':_0x323717[_0x15d3('0x25')],'sectionId':_0x323717['id']},{})[_0x15d3('0x21')](function(){return _0x4a825d;});}else{return _0x4a825d;}})[_0x15d3('0x42')](function(_0x5f0a42){logger[_0x15d3('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5f0a42);throw _0x5f0a42;});}return _0x4a825d;})['then'](respondWithResult(_0x446929,0xc9))[_0x15d3('0x42')](handleError(_0x446929,null));};exports['update']=function(_0x16e6bc,_0x54599a){if(_0x16e6bc[_0x15d3('0x4c')]['id']){delete _0x16e6bc[_0x15d3('0x4c')]['id'];}return db[_0x15d3('0x28')][_0x15d3('0x45')]({'where':{'id':_0x16e6bc[_0x15d3('0x44')]['id']}})['then'](handleEntityNotFound(_0x54599a,null))['then'](saveUpdates(_0x16e6bc[_0x15d3('0x4c')],null))['then'](respondWithResult(_0x54599a,null))[_0x15d3('0x42')](handleError(_0x54599a,null));};exports[_0x15d3('0x22')]=function(_0x3cccc5,_0x23f439){return db[_0x15d3('0x28')][_0x15d3('0x45')]({'where':{'id':_0x3cccc5[_0x15d3('0x44')]['id']}})['then'](handleEntityNotFound(_0x23f439,null))[_0x15d3('0x21')](removeEntity(_0x23f439,null))[_0x15d3('0x42')](handleError(_0x23f439,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79f9=['concat','name','findAll','agent','catch','exports','VoiceChanSpy','VoiceExtension','bulkCreate','then','destroy','bluebird','context','from-sip','format','%s%s','prefix','system','merge','Set','CDR(type)=%s','push','MixMonitor','recordingFormat','auth','Authenticate','SIP/%s,%s','options','join','record','StopMixMonitor','length','internal'];(function(_0x347c81,_0x134d09){var _0x3f3011=function(_0x400801){while(--_0x400801){_0x347c81['push'](_0x347c81['shift']());}};_0x3f3011(++_0x134d09);}(_0x79f9,0x113));var _0x979f=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x79f9[_0x122ef9];return _0x42fba0;};'use strict';var _=require('lodash');var util=require('util');var BPromise=require(_0x979f('0x0'));var attributes=require('./voiceChanSpy.attributes');var getUserApplications=function(_0x7bfed5,_0x350b65,_0x7468e4){var _0x44610c=0x1;var _0x4f99fa=[];var _0x428b47={'context':_0x350b65[_0x979f('0x1')]||_0x979f('0x2'),'exten':util[_0x979f('0x3')](_0x979f('0x4'),_0x7bfed5[_0x979f('0x5')],_0x7468e4),'type':_0x979f('0x6'),'isApp':![],'ChanSpyId':_0x7bfed5['id'],'UserId':_0x350b65['id']};_0x4f99fa['push'](_[_0x979f('0x7')]({'app':_0x979f('0x8'),'appdata':util[_0x979f('0x3')](_0x979f('0x9'),'chanspy'),'priority':_0x44610c++},_0x428b47));if(_0x7bfed5['record']){_0x4f99fa[_0x979f('0xa')](_[_0x979f('0x7')]({'app':_0x979f('0xb'),'appdata':util[_0x979f('0x3')]('${UNIQUEID}.%s,a',_0x7bfed5[_0x979f('0xc')]),'priority':_0x44610c++},_0x428b47));}if(_0x7bfed5[_0x979f('0xd')]){_0x4f99fa['push'](_[_0x979f('0x7')]({'app':_0x979f('0xe'),'appdata':_0x7bfed5['password'],'priority':_0x44610c++},_0x428b47));}_0x4f99fa[_0x979f('0xa')](_['merge']({'app':'ChanSpy','appdata':util['format'](_0x979f('0xf'),_0x350b65['name'],_0x7bfed5['options']?_0x7bfed5[_0x979f('0x10')][_0x979f('0x11')](''):''),'priority':_0x44610c++},_0x428b47));if(_0x7bfed5[_0x979f('0x12')]){_0x4f99fa[_0x979f('0xa')](_['merge']({'app':_0x979f('0x13'),'priority':_0x44610c++},_0x428b47));}return _0x4f99fa;};var getChanSpyApplications=function(_0x196dc5,_0x78710f){var _0x5e0559=[];for(var _0x544c92=0x0,_0x32a1fa=0x1;_0x544c92<_0x78710f[_0x979f('0x14')];_0x544c92++,_0x32a1fa=0x1){_0x5e0559=_0x5e0559['concat'](getUserApplications(_0x196dc5,_0x78710f[_0x544c92],_0x78710f[_0x544c92]['internal']));if(_0x78710f[_0x544c92][_0x979f('0x15')]!=_0x78710f[_0x544c92]['name']){_0x5e0559=_0x5e0559[_0x979f('0x16')](getUserApplications(_0x196dc5,_0x78710f[_0x544c92],_0x78710f[_0x544c92][_0x979f('0x17')]));}}return _0x5e0559;};var getChanSpyPromise=function(_0x39ef03,_0x14cf95){return new BPromise(function(_0x2bc3eb,_0x1a552a){return _0x39ef03['User'][_0x979f('0x18')]({'attributes':['id',_0x979f('0x17'),'internal'],'where':{'role':_0x979f('0x19'),'chanspy':!![]},'raw':!![]})['then'](function(_0x19ee87){if(_0x19ee87){return _0x2bc3eb(getChanSpyApplications(_0x14cf95,_0x19ee87));}return _0x2bc3eb([]);})[_0x979f('0x1a')](function(_0x29b0fc){_0x1a552a(_0x29b0fc);});});};module[_0x979f('0x1b')]=function(_0x11696f,_0x2e9250){var _0xf69f0b=_0x11696f['models'];return _0x11696f['define'](_0x979f('0x1c'),attributes,{'tableName':'voice_chanspy','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x3daf47,_0x82e32a,_0xaf867e){return getChanSpyPromise(_0xf69f0b,_0x3daf47)['then'](function(_0xce234e){if(_0xce234e&&_0xce234e['length']){return _0xf69f0b[_0x979f('0x1d')][_0x979f('0x1e')](_0xce234e);}})[_0x979f('0x1f')](function(){_0xaf867e();})[_0x979f('0x1a')](function(_0xe4c409){_0xaf867e(_0xe4c409);});},'afterUpdate':function(_0x15ca27,_0x5d01d1,_0x18afc1){return _0xf69f0b[_0x979f('0x1d')]['destroy']({'where':{'ChanSpyId':_0x15ca27['id']}})['then'](function(){return getChanSpyPromise(_0xf69f0b,_0x15ca27);})[_0x979f('0x1f')](function(_0x510c6a){if(_0x510c6a&&_0x510c6a[_0x979f('0x14')]){return _0xf69f0b['VoiceExtension']['bulkCreate'](_0x510c6a);}})[_0x979f('0x1f')](function(){_0x18afc1();})['catch'](function(_0x5a4804){_0x18afc1(_0x5a4804);});},'afterDestroy':function(_0xd6caf,_0x57f58f,_0x2f1c56){return _0xf69f0b[_0x979f('0x1d')][_0x979f('0x20')]({'where':{'ChanSpyId':_0xd6caf['id']}})['then'](function(){_0x2f1c56();})[_0x979f('0x1a')](function(_0x2494a1){_0x2f1c56(_0x2494a1);});}}});};
\ No newline at end of file
+var _0xbf48=['SIP/%s,%s','options','record','concat','internal','name','User','findAll','agent','then','catch','models','define','VoiceChanSpy','voice_chanspy','VoiceExtension','destroy','length','lodash','util','bluebird','./voiceChanSpy.attributes','context','format','%s%s','prefix','system','merge','Set','CDR(type)=%s','chanspy','push','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','password'];(function(_0x33e566,_0x3e90f4){var _0x828b80=function(_0x2b67d2){while(--_0x2b67d2){_0x33e566['push'](_0x33e566['shift']());}};_0x828b80(++_0x3e90f4);}(_0xbf48,0x13a));var _0x8bf4=function(_0x51b7f4,_0x38cbb8){_0x51b7f4=_0x51b7f4-0x0;var _0x468020=_0xbf48[_0x51b7f4];return _0x468020;};'use strict';var _=require(_0x8bf4('0x0'));var util=require(_0x8bf4('0x1'));var BPromise=require(_0x8bf4('0x2'));var attributes=require(_0x8bf4('0x3'));var getUserApplications=function(_0x4a022f,_0xf71b7e,_0x41e1ed){var _0x9608d8=0x1;var _0x41173e=[];var _0x443f74={'context':_0xf71b7e[_0x8bf4('0x4')]||'from-sip','exten':util[_0x8bf4('0x5')](_0x8bf4('0x6'),_0x4a022f[_0x8bf4('0x7')],_0x41e1ed),'type':_0x8bf4('0x8'),'isApp':![],'ChanSpyId':_0x4a022f['id'],'UserId':_0xf71b7e['id']};_0x41173e['push'](_[_0x8bf4('0x9')]({'app':_0x8bf4('0xa'),'appdata':util[_0x8bf4('0x5')](_0x8bf4('0xb'),_0x8bf4('0xc')),'priority':_0x9608d8++},_0x443f74));if(_0x4a022f['record']){_0x41173e[_0x8bf4('0xd')](_[_0x8bf4('0x9')]({'app':_0x8bf4('0xe'),'appdata':util['format'](_0x8bf4('0xf'),_0x4a022f[_0x8bf4('0x10')]),'priority':_0x9608d8++},_0x443f74));}if(_0x4a022f[_0x8bf4('0x11')]){_0x41173e[_0x8bf4('0xd')](_['merge']({'app':'Authenticate','appdata':_0x4a022f[_0x8bf4('0x12')],'priority':_0x9608d8++},_0x443f74));}_0x41173e[_0x8bf4('0xd')](_[_0x8bf4('0x9')]({'app':'ChanSpy','appdata':util[_0x8bf4('0x5')](_0x8bf4('0x13'),_0xf71b7e['name'],_0x4a022f['options']?_0x4a022f[_0x8bf4('0x14')]['join'](''):''),'priority':_0x9608d8++},_0x443f74));if(_0x4a022f[_0x8bf4('0x15')]){_0x41173e[_0x8bf4('0xd')](_['merge']({'app':'StopMixMonitor','priority':_0x9608d8++},_0x443f74));}return _0x41173e;};var getChanSpyApplications=function(_0x3167d7,_0x4e1a6d){var _0x22cb64=[];for(var _0x136140=0x0,_0xa3ed7=0x1;_0x136140<_0x4e1a6d['length'];_0x136140++,_0xa3ed7=0x1){_0x22cb64=_0x22cb64[_0x8bf4('0x16')](getUserApplications(_0x3167d7,_0x4e1a6d[_0x136140],_0x4e1a6d[_0x136140][_0x8bf4('0x17')]));if(_0x4e1a6d[_0x136140][_0x8bf4('0x17')]!=_0x4e1a6d[_0x136140][_0x8bf4('0x18')]){_0x22cb64=_0x22cb64['concat'](getUserApplications(_0x3167d7,_0x4e1a6d[_0x136140],_0x4e1a6d[_0x136140]['name']));}}return _0x22cb64;};var getChanSpyPromise=function(_0xa5cdd6,_0x5993d2){return new BPromise(function(_0x33aeb4,_0x31e22b){return _0xa5cdd6[_0x8bf4('0x19')][_0x8bf4('0x1a')]({'attributes':['id','name','internal'],'where':{'role':_0x8bf4('0x1b'),'chanspy':!![]},'raw':!![]})[_0x8bf4('0x1c')](function(_0x1d5063){if(_0x1d5063){return _0x33aeb4(getChanSpyApplications(_0x5993d2,_0x1d5063));}return _0x33aeb4([]);})[_0x8bf4('0x1d')](function(_0x58ffdf){_0x31e22b(_0x58ffdf);});});};module['exports']=function(_0x5c431c,_0x467967){var _0x22fa33=_0x5c431c[_0x8bf4('0x1e')];return _0x5c431c[_0x8bf4('0x1f')](_0x8bf4('0x20'),attributes,{'tableName':_0x8bf4('0x21'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x3a2d41,_0xeb97d4,_0x36ae0f){return getChanSpyPromise(_0x22fa33,_0x3a2d41)[_0x8bf4('0x1c')](function(_0x3e0e27){if(_0x3e0e27&&_0x3e0e27['length']){return _0x22fa33[_0x8bf4('0x22')]['bulkCreate'](_0x3e0e27);}})['then'](function(){_0x36ae0f();})['catch'](function(_0x427b7a){_0x36ae0f(_0x427b7a);});},'afterUpdate':function(_0x1c0ce2,_0x4c8c8d,_0x3d421d){return _0x22fa33[_0x8bf4('0x22')][_0x8bf4('0x23')]({'where':{'ChanSpyId':_0x1c0ce2['id']}})[_0x8bf4('0x1c')](function(){return getChanSpyPromise(_0x22fa33,_0x1c0ce2);})[_0x8bf4('0x1c')](function(_0x37c163){if(_0x37c163&&_0x37c163[_0x8bf4('0x24')]){return _0x22fa33[_0x8bf4('0x22')]['bulkCreate'](_0x37c163);}})[_0x8bf4('0x1c')](function(){_0x3d421d();})[_0x8bf4('0x1d')](function(_0x14d554){_0x3d421d(_0x14d554);});},'afterDestroy':function(_0x13e3e4,_0x2b1a28,_0x51fd73){return _0x22fa33[_0x8bf4('0x22')][_0x8bf4('0x23')]({'where':{'ChanSpyId':_0x13e3e4['id']}})[_0x8bf4('0x1c')](function(){_0x51fd73();})[_0x8bf4('0x1d')](function(_0x4a349e){_0x51fd73(_0x4a349e);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c76=['request\x20sent','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','jayson/promise','client','request','info','VoiceChanSpy,\x20%s,\x20%s'];(function(_0x5b7712,_0x346914){var _0x4fa082=function(_0x2c0018){while(--_0x2c0018){_0x5b7712['push'](_0x5b7712['shift']());}};_0x4fa082(++_0x346914);}(_0x6c76,0x184));var _0x66c7=function(_0x179785,_0x5d3c71){_0x179785=_0x179785-0x0;var _0x4b794a=_0x6c76[_0x179785];return _0x4b794a;};'use strict';var _=require(_0x66c7('0x0'));var util=require(_0x66c7('0x1'));var moment=require(_0x66c7('0x2'));var BPromise=require('bluebird');var rs=require(_0x66c7('0x3'));var fs=require('fs');var Redis=require(_0x66c7('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x66c7('0x5'))(_0x66c7('0x6'));var config=require('../../config/environment');var jayson=require(_0x66c7('0x7'));var client=jayson[_0x66c7('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x23408c,_0x4dffcd,_0x4fa6ce){return new BPromise(function(_0x208d06,_0x2b0065){return client[_0x66c7('0x9')](_0x23408c,_0x4fa6ce)['then'](function(_0x20c010){logger[_0x66c7('0xa')](_0x66c7('0xb'),_0x4dffcd,_0x66c7('0xc'));logger['debug'](_0x66c7('0xd'),_0x4dffcd,_0x66c7('0xc'),JSON[_0x66c7('0xe')](_0x20c010));if(_0x20c010[_0x66c7('0xf')]){if(_0x20c010[_0x66c7('0xf')][_0x66c7('0x10')]===0x1f4){logger[_0x66c7('0xf')]('VoiceChanSpy,\x20%s,\x20%s',_0x4dffcd,_0x20c010[_0x66c7('0xf')][_0x66c7('0x11')]);return _0x2b0065(_0x20c010[_0x66c7('0xf')][_0x66c7('0x11')]);}logger[_0x66c7('0xf')](_0x66c7('0xb'),_0x4dffcd,_0x20c010[_0x66c7('0xf')][_0x66c7('0x11')]);return _0x208d06(_0x20c010[_0x66c7('0xf')]['message']);}else{logger[_0x66c7('0xa')]('VoiceChanSpy,\x20%s,\x20%s',_0x4dffcd,_0x66c7('0xc'));_0x208d06(_0x20c010[_0x66c7('0x12')][_0x66c7('0x11')]);}})[_0x66c7('0x13')](function(_0x22b262){logger['error']('VoiceChanSpy,\x20%s,\x20%s',_0x4dffcd,_0x22b262);_0x2b0065(_0x22b262);});});}
\ No newline at end of file
+var _0x407f=['rpc','../../config/environment','jayson/promise','client','http','then','info','VoiceChanSpy,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x47df54,_0x1aeb61){var _0x261b87=function(_0x54bc77){while(--_0x54bc77){_0x47df54['push'](_0x47df54['shift']());}};_0x261b87(++_0x1aeb61);}(_0x407f,0xc2));var _0xf407=function(_0x5c9c86,_0x429dec){_0x5c9c86=_0x5c9c86-0x0;var _0x10bacc=_0x407f[_0x5c9c86];return _0x10bacc;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xf407('0x0'));var rs=require(_0xf407('0x1'));var fs=require('fs');var Redis=require(_0xf407('0x2'));var db=require(_0xf407('0x3'))['db'];var utils=require(_0xf407('0x4'));var logger=require(_0xf407('0x5'))(_0xf407('0x6'));var config=require(_0xf407('0x7'));var jayson=require(_0xf407('0x8'));var client=jayson[_0xf407('0x9')][_0xf407('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2bce9d,_0x2d4ec6,_0x3ac774){return new BPromise(function(_0x38ee37,_0x3ab539){return client['request'](_0x2bce9d,_0x3ac774)[_0xf407('0xb')](function(_0xc3473a){logger[_0xf407('0xc')](_0xf407('0xd'),_0x2d4ec6,'request\x20sent');logger['debug']('VoiceChanSpy,\x20%s,\x20%s,\x20%s',_0x2d4ec6,_0xf407('0xe'),JSON[_0xf407('0xf')](_0xc3473a));if(_0xc3473a[_0xf407('0x10')]){if(_0xc3473a[_0xf407('0x10')][_0xf407('0x11')]===0x1f4){logger['error'](_0xf407('0xd'),_0x2d4ec6,_0xc3473a[_0xf407('0x10')][_0xf407('0x12')]);return _0x3ab539(_0xc3473a[_0xf407('0x10')][_0xf407('0x12')]);}logger[_0xf407('0x10')](_0xf407('0xd'),_0x2d4ec6,_0xc3473a[_0xf407('0x10')]['message']);return _0x38ee37(_0xc3473a['error'][_0xf407('0x12')]);}else{logger['info'](_0xf407('0xd'),_0x2d4ec6,'request\x20sent');_0x38ee37(_0xc3473a['result'][_0xf407('0x12')]);}})[_0xf407('0x13')](function(_0x1cdc81){logger[_0xf407('0x10')](_0xf407('0xd'),_0x2d4ec6,_0x1cdc81);_0x3ab539(_0x1cdc81);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1026=['/:id','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceContext.controller','get','isAuthenticated','index','show','create'];(function(_0x5271cd,_0x251ab3){var _0x1df1ae=function(_0x36b822){while(--_0x36b822){_0x5271cd['push'](_0x5271cd['shift']());}};_0x1df1ae(++_0x251ab3);}(_0x1026,0x1b9));var _0x6102=function(_0x187399,_0x40c56d){_0x187399=_0x187399-0x0;var _0x40fa92=_0x1026[_0x187399];return _0x40fa92;};'use strict';var multer=require(_0x6102('0x0'));var util=require(_0x6102('0x1'));var path=require(_0x6102('0x2'));var timeout=require(_0x6102('0x3'));var express=require(_0x6102('0x4'));var router=express[_0x6102('0x5')]();var fs_extra=require(_0x6102('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x6102('0x7'));var config=require(_0x6102('0x8'));var controller=require(_0x6102('0x9'));router[_0x6102('0xa')]('/',auth[_0x6102('0xb')](),controller[_0x6102('0xc')]);router[_0x6102('0xa')]('/:id',auth[_0x6102('0xb')](),controller[_0x6102('0xd')]);router['post']('/',auth[_0x6102('0xb')](),controller[_0x6102('0xe')]);router['put'](_0x6102('0xf'),auth[_0x6102('0xb')](),controller[_0x6102('0x10')]);router[_0x6102('0x11')]('/:id',auth[_0x6102('0xb')](),controller['destroy']);module[_0x6102('0x12')]=router;
\ No newline at end of file
+var _0x44fe=['exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated','show','post','create','put','delete','destroy'];(function(_0x416ce9,_0x27d8a9){var _0x2373e8=function(_0x13760a){while(--_0x13760a){_0x416ce9['push'](_0x416ce9['shift']());}};_0x2373e8(++_0x27d8a9);}(_0x44fe,0x91));var _0xe44f=function(_0x5a69d4,_0x5df724){_0x5a69d4=_0x5a69d4-0x0;var _0x29f3da=_0x44fe[_0x5a69d4];return _0x29f3da;};'use strict';var multer=require('multer');var util=require(_0xe44f('0x0'));var path=require(_0xe44f('0x1'));var timeout=require(_0xe44f('0x2'));var express=require(_0xe44f('0x3'));var router=express['Router']();var fs_extra=require(_0xe44f('0x4'));var auth=require(_0xe44f('0x5'));var interaction=require(_0xe44f('0x6'));var config=require(_0xe44f('0x7'));var controller=require('./voiceContext.controller');router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xe44f('0x8')](_0xe44f('0x9'),auth[_0xe44f('0xa')](),controller[_0xe44f('0xb')]);router[_0xe44f('0xc')]('/',auth[_0xe44f('0xa')](),controller[_0xe44f('0xd')]);router[_0xe44f('0xe')]('/:id',auth[_0xe44f('0xa')](),controller['update']);router[_0xe44f('0xf')](_0xe44f('0x9'),auth['isAuthenticated'](),controller[_0xe44f('0x10')]);module[_0xe44f('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x882f=['STRING','name','BOOLEAN','sequelize'];(function(_0x260461,_0x176cf7){var _0x44aaa9=function(_0x5966e0){while(--_0x5966e0){_0x260461['push'](_0x260461['shift']());}};_0x44aaa9(++_0x176cf7);}(_0x882f,0x103));var _0xf882=function(_0x4667b2,_0x135b67){_0x4667b2=_0x4667b2-0x0;var _0x1070f2=_0x882f[_0x4667b2];return _0x1070f2;};'use strict';var Sequelize=require(_0xf882('0x0'));module['exports']={'name':{'type':Sequelize[_0xf882('0x1')],'unique':_0xf882('0x2')},'description':{'type':Sequelize[_0xf882('0x1')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0xf882('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x802c=['exports','STRING','name','BOOLEAN','sequelize'];(function(_0x30a191,_0x38b23b){var _0xf6f720=function(_0x127ac0){while(--_0x127ac0){_0x30a191['push'](_0x30a191['shift']());}};_0xf6f720(++_0x38b23b);}(_0x802c,0xd1));var _0xc802=function(_0x5d4554,_0x3336ba){_0x5d4554=_0x5d4554-0x0;var _0x1fd075=_0x802c[_0x5d4554];return _0x1fd075;};'use strict';var Sequelize=require(_0xc802('0x0'));module[_0xc802('0x1')]={'name':{'type':Sequelize[_0xc802('0x2')],'unique':_0xc802('0x3')},'description':{'type':Sequelize[_0xc802('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0xc802('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1dce=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','root','server/files/templates/context.ejs','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','end','status','limit','undefined','count','offset','set','json','reject','destroy','get','Contexts','UserProfileResource','name','send','index','map','VoiceContext','fieldName','type','key','model','query','keys','filters','fields','attributes','nolimit','sort','where','pick','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','intersection','length','create','body','readFileSync','join','utf8','render','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','Reload','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','autoAssociation'];(function(_0x496f40,_0x9ffaf3){var _0x1b96c5=function(_0x1eee08){while(--_0x1eee08){_0x496f40['push'](_0x496f40['shift']());}};_0x1b96c5(++_0x9ffaf3);}(_0x1dce,0x133));var _0xe1dc=function(_0x2dff19,_0x757cd0){_0x2dff19=_0x2dff19-0x0;var _0xef5d53=_0x1dce[_0x2dff19];return _0xef5d53;};'use strict';var emlformat=require(_0xe1dc('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe1dc('0x1'));var jsonpatch=require(_0xe1dc('0x2'));var rp=require(_0xe1dc('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xe1dc('0x4'));var util=require(_0xe1dc('0x5'));var path=require(_0xe1dc('0x6'));var sox=require(_0xe1dc('0x7'));var csv=require(_0xe1dc('0x8'));var ejs=require(_0xe1dc('0x9'));var fs=require('fs');var fs_extra=require(_0xe1dc('0xa'));var _=require(_0xe1dc('0xb'));var squel=require(_0xe1dc('0xc'));var crypto=require(_0xe1dc('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe1dc('0x8'));var querystring=require(_0xe1dc('0xe'));var Papa=require(_0xe1dc('0xf'));var Redis=require(_0xe1dc('0x10'));var authService=require(_0xe1dc('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe1dc('0x12'));var logger=require('../../config/logger')(_0xe1dc('0x13'));var utils=require(_0xe1dc('0x14'));var config=require(_0xe1dc('0x15'));var licenseUtil=require(_0xe1dc('0x16'));var db=require('../../mysqldb')['db'];var jayson=require(_0xe1dc('0x17'));var client=jayson[_0xe1dc('0x18')][_0xe1dc('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x22e20d,_0x45361f,_0xe835ba,_0x2da444){return new BPromise(function(_0xc7cfd9,_0x5a3ca1){var _0x33e6bf=_0x2da444||client;return _0x33e6bf['request'](_0x22e20d,_0xe835ba)[_0xe1dc('0x1a')](function(_0x9dc1e2){logger[_0xe1dc('0x1b')](_0xe1dc('0x1c'),_0x45361f,_0xe1dc('0x1d'));logger[_0xe1dc('0x1e')](_0xe1dc('0x1f'),_0x45361f,_0xe1dc('0x1d'),JSON[_0xe1dc('0x20')](_0x9dc1e2));if(_0x9dc1e2[_0xe1dc('0x21')]){if(_0x9dc1e2['error'][_0xe1dc('0x22')]===0x1f4){logger['error']('VoiceContext,\x20%s,\x20%s',_0x45361f,_0x9dc1e2[_0xe1dc('0x21')][_0xe1dc('0x23')]);return _0x5a3ca1(_0x9dc1e2[_0xe1dc('0x21')][_0xe1dc('0x23')]);}logger[_0xe1dc('0x21')](_0xe1dc('0x1c'),_0x45361f,_0x9dc1e2[_0xe1dc('0x21')][_0xe1dc('0x23')]);return _0xc7cfd9(_0x9dc1e2[_0xe1dc('0x21')][_0xe1dc('0x23')]);}else{logger[_0xe1dc('0x1b')](_0xe1dc('0x1c'),_0x45361f,_0xe1dc('0x1d'));_0xc7cfd9(_0x9dc1e2[_0xe1dc('0x24')][_0xe1dc('0x23')]);}})[_0xe1dc('0x25')](function(_0x347026){logger['error']('VoiceContext,\x20%s,\x20%s',_0x45361f,_0x347026);_0x5a3ca1(_0x347026);});});}function respondWithStatusCode(_0x4fcf2d,_0x3db72c){_0x3db72c=_0x3db72c||0xcc;return function(_0x59e86e){if(_0x59e86e){return _0x4fcf2d[_0xe1dc('0x26')](_0x3db72c);}return _0x4fcf2d['status'](_0x3db72c)[_0xe1dc('0x27')]();};}function respondWithResult(_0x723b4c,_0x513868){_0x513868=_0x513868||0xc8;return function(_0x4e3d68){if(_0x4e3d68){return _0x723b4c[_0xe1dc('0x28')](_0x513868)['json'](_0x4e3d68);}};}function respondWithFilteredResult(_0x48119f,_0x1fc1a1){return function(_0x48c1a1){if(_0x48c1a1){var _0x4e30ab=typeof _0x1fc1a1['offset']==='undefined'&&typeof _0x1fc1a1[_0xe1dc('0x29')]===_0xe1dc('0x2a');var _0x50f5cb=_0x48c1a1[_0xe1dc('0x2b')];var _0x39aff4=_0x4e30ab?0x0:_0x1fc1a1[_0xe1dc('0x2c')];var _0x5b730=_0x4e30ab?_0x48c1a1['count']:_0x1fc1a1[_0xe1dc('0x2c')]+_0x1fc1a1[_0xe1dc('0x29')];var _0x1a46f2;if(_0x5b730>=_0x50f5cb){_0x5b730=_0x50f5cb;_0x1a46f2=0xc8;}else{_0x1a46f2=0xce;}_0x48119f['status'](_0x1a46f2);return _0x48119f[_0xe1dc('0x2d')]('Content-Range',_0x39aff4+'-'+_0x5b730+'/'+_0x50f5cb)[_0xe1dc('0x2e')](_0x48c1a1);}return null;};}function patchUpdates(_0x1bdfc9){return function(_0x24459f){try{jsonpatch['apply'](_0x24459f,_0x1bdfc9,!![]);}catch(_0x2af180){return BPromise[_0xe1dc('0x2f')](_0x2af180);}return _0x24459f['save']();};}function saveUpdates(_0xf7401a,_0xf07958){return function(_0xf71f25){if(_0xf71f25){return _0xf71f25['update'](_0xf7401a)[_0xe1dc('0x1a')](function(_0x52ad1f){return _0x52ad1f;});}return null;};}function removeEntity(_0x4d1ee3,_0x3721d1){return function(_0x31a821){if(_0x31a821){return _0x31a821[_0xe1dc('0x30')]()[_0xe1dc('0x1a')](function(){var _0x1d6969=_0x31a821[_0xe1dc('0x31')]({'plain':!![]});var _0x657b9=_0xe1dc('0x32');return db[_0xe1dc('0x33')]['destroy']({'where':{'type':_0x657b9,'resourceId':_0x1d6969['id']}})['then'](function(){return _0x31a821;});})['then'](function(){_0x4d1ee3[_0xe1dc('0x28')](0xcc)[_0xe1dc('0x27')]();});}};}function handleEntityNotFound(_0x5706cf,_0x4830b7){return function(_0x1208d5){if(!_0x1208d5){_0x5706cf[_0xe1dc('0x26')](0x194);}return _0x1208d5;};}function handleError(_0x51be32,_0x164e6f){_0x164e6f=_0x164e6f||0x1f4;return function(_0x54c328){logger[_0xe1dc('0x21')](_0x54c328['stack']);if(_0x54c328[_0xe1dc('0x34')]){delete _0x54c328[_0xe1dc('0x34')];}_0x51be32[_0xe1dc('0x28')](_0x164e6f)[_0xe1dc('0x35')](_0x54c328);};}exports[_0xe1dc('0x36')]=function(_0x53f751,_0x3d90e4){var _0x10826b={},_0x528b8e={},_0x5e8be6={'count':0x0,'rows':[]};var _0x189c0b=_[_0xe1dc('0x37')](db[_0xe1dc('0x38')]['rawAttributes'],function(_0x29a5b4){return{'name':_0x29a5b4[_0xe1dc('0x39')],'type':_0x29a5b4[_0xe1dc('0x3a')][_0xe1dc('0x3b')]};});_0x528b8e[_0xe1dc('0x3c')]=_[_0xe1dc('0x37')](_0x189c0b,'name');_0x528b8e[_0xe1dc('0x3d')]=_[_0xe1dc('0x3e')](_0x53f751[_0xe1dc('0x3d')]);_0x528b8e[_0xe1dc('0x3f')]=_['intersection'](_0x528b8e[_0xe1dc('0x3c')],_0x528b8e[_0xe1dc('0x3d')]);_0x10826b['attributes']=_['intersection'](_0x528b8e[_0xe1dc('0x3c')],qs[_0xe1dc('0x40')](_0x53f751['query']['fields']));_0x10826b[_0xe1dc('0x41')]=_0x10826b['attributes']['length']?_0x10826b[_0xe1dc('0x41')]:_0x528b8e[_0xe1dc('0x3c')];if(!_0x53f751[_0xe1dc('0x3d')]['hasOwnProperty'](_0xe1dc('0x42'))){_0x10826b[_0xe1dc('0x29')]=qs[_0xe1dc('0x29')](_0x53f751['query'][_0xe1dc('0x29')]);_0x10826b['offset']=qs[_0xe1dc('0x2c')](_0x53f751[_0xe1dc('0x3d')][_0xe1dc('0x2c')]);}_0x10826b['order']=qs[_0xe1dc('0x43')](_0x53f751[_0xe1dc('0x3d')]['sort']);_0x10826b[_0xe1dc('0x44')]=qs[_0xe1dc('0x3f')](_[_0xe1dc('0x45')](_0x53f751[_0xe1dc('0x3d')],_0x528b8e['filters']),_0x189c0b);if(_0x53f751['query']['filter']){_0x10826b[_0xe1dc('0x44')]=_['merge'](_0x10826b[_0xe1dc('0x44')],{'$or':_[_0xe1dc('0x37')](_0x189c0b,function(_0x3eb9c4){if(_0x3eb9c4[_0xe1dc('0x3a')]!==_0xe1dc('0x46')){var _0x32199d={};_0x32199d[_0x3eb9c4[_0xe1dc('0x34')]]={'$like':'%'+_0x53f751[_0xe1dc('0x3d')]['filter']+'%'};return _0x32199d;}})});}_0x10826b=_[_0xe1dc('0x47')]({},_0x10826b,_0x53f751[_0xe1dc('0x48')]);var _0x3f080f={'where':_0x10826b[_0xe1dc('0x44')]};return db[_0xe1dc('0x38')]['count'](_0x3f080f)[_0xe1dc('0x1a')](function(_0x25661c){_0x5e8be6[_0xe1dc('0x2b')]=_0x25661c;if(_0x53f751['query'][_0xe1dc('0x49')]){_0x10826b[_0xe1dc('0x4a')]=[{'all':!![]}];}return db['VoiceContext'][_0xe1dc('0x4b')](_0x10826b);})[_0xe1dc('0x1a')](function(_0x12d451){_0x5e8be6[_0xe1dc('0x4c')]=_0x12d451;return _0x5e8be6;})[_0xe1dc('0x1a')](respondWithFilteredResult(_0x3d90e4,_0x10826b))[_0xe1dc('0x25')](handleError(_0x3d90e4,null));};exports[_0xe1dc('0x4d')]=function(_0x4dabdd,_0x3f5ffa){var _0x4b89c0={'raw':![],'where':{'id':_0x4dabdd[_0xe1dc('0x4e')]['id']}},_0x59b26f={};_0x59b26f[_0xe1dc('0x3c')]=_['keys'](db['VoiceContext']['rawAttributes']);_0x59b26f[_0xe1dc('0x3d')]=_[_0xe1dc('0x3e')](_0x4dabdd[_0xe1dc('0x3d')]);_0x59b26f[_0xe1dc('0x3f')]=_[_0xe1dc('0x4f')](_0x59b26f[_0xe1dc('0x3c')],_0x59b26f[_0xe1dc('0x3d')]);_0x4b89c0[_0xe1dc('0x41')]=_[_0xe1dc('0x4f')](_0x59b26f['model'],qs[_0xe1dc('0x40')](_0x4dabdd[_0xe1dc('0x3d')][_0xe1dc('0x40')]));_0x4b89c0[_0xe1dc('0x41')]=_0x4b89c0['attributes'][_0xe1dc('0x50')]?_0x4b89c0[_0xe1dc('0x41')]:_0x59b26f['model'];if(_0x4dabdd[_0xe1dc('0x3d')][_0xe1dc('0x49')]){_0x4b89c0[_0xe1dc('0x4a')]=[{'all':!![]}];}_0x4b89c0=_['merge']({},_0x4b89c0,_0x4dabdd[_0xe1dc('0x48')]);return db[_0xe1dc('0x38')]['find'](_0x4b89c0)['then'](handleEntityNotFound(_0x3f5ffa,null))[_0xe1dc('0x1a')](respondWithResult(_0x3f5ffa,null))[_0xe1dc('0x25')](handleError(_0x3f5ffa,null));};exports[_0xe1dc('0x51')]=function(_0x39d082,_0x354b12,_0x1d9663){var _0x4c584a;return db[_0xe1dc('0x38')][_0xe1dc('0x51')](_0x39d082[_0xe1dc('0x52')],{'raw':!![]})['then'](function(_0x1a864e){_0x4c584a=_0x1a864e;return db[_0xe1dc('0x38')][_0xe1dc('0x4b')]({'raw':!![]});})[_0xe1dc('0x1a')](function(_0x30f831){var _0x1ef3e5=fs[_0xe1dc('0x53')](path[_0xe1dc('0x54')](config['root'],'server/files/templates/context.ejs'),_0xe1dc('0x55'));var _0x38c323=ejs[_0xe1dc('0x56')](_0x1ef3e5,{'contexts':_0x30f831||[]});fs[_0xe1dc('0x57')](_0xe1dc('0x58'),_0x38c323);})['then'](function(){return respondWithRpcPromise(_0xe1dc('0x59'),'create',{'module':_0xe1dc('0x5a')});})['then'](function(){var _0x1cb62c=_0x39d082[_0xe1dc('0x5b')]['get']({'plain':!![]});if(!_0x1cb62c)throw new Error(_0xe1dc('0x5c'));if(_0x1cb62c['role']==='user'){var _0x51fc50=_0x4c584a[_0xe1dc('0x31')]({'plain':!![]});return db[_0xe1dc('0x5d')][_0xe1dc('0x5e')]({'where':{'name':_0xe1dc('0x32'),'userProfileId':_0x1cb62c[_0xe1dc('0x5f')]},'raw':!![]})[_0xe1dc('0x1a')](function(_0x48918a){if(_0x48918a&&_0x48918a[_0xe1dc('0x60')]===0x0){return db[_0xe1dc('0x33')]['create']({'name':_0x51fc50[_0xe1dc('0x34')],'resourceId':_0x51fc50['id'],'type':_0x48918a['name'],'sectionId':_0x48918a['id']},{})[_0xe1dc('0x1a')](function(){return _0x4c584a;});}else{return _0x4c584a;}})[_0xe1dc('0x25')](function(_0x37c620){logger['error'](_0xe1dc('0x61'),_0x37c620);throw _0x37c620;});}return _0x4c584a;})['then'](respondWithResult(_0x354b12,0xc9))[_0xe1dc('0x25')](handleError(_0x354b12,null));};exports[_0xe1dc('0x62')]=function(_0x5b92bf,_0x2c678f,_0x53a25a){var _0x2bbc77;return db[_0xe1dc('0x38')][_0xe1dc('0x5e')]({'where':{'id':_0x5b92bf[_0xe1dc('0x4e')]['id']}})[_0xe1dc('0x1a')](handleEntityNotFound(_0x2c678f,null))[_0xe1dc('0x1a')](saveUpdates(_0x5b92bf[_0xe1dc('0x52')],null))[_0xe1dc('0x1a')](function(_0x4928d4){if(_0x4928d4){_0x2bbc77=_0x4928d4;return db[_0xe1dc('0x38')]['findAll']({'raw':!![]});}})[_0xe1dc('0x1a')](function(_0x1b3971){var _0x2d1ef8=fs[_0xe1dc('0x53')](path[_0xe1dc('0x54')](config[_0xe1dc('0x63')],_0xe1dc('0x64')),_0xe1dc('0x55'));var _0x2a2f14=ejs[_0xe1dc('0x56')](_0x2d1ef8,{'contexts':_0x1b3971||[]});fs[_0xe1dc('0x57')](_0xe1dc('0x58'),_0x2a2f14);})[_0xe1dc('0x1a')](function(){return respondWithRpcPromise('Reload','update',{'module':_0xe1dc('0x5a')});})[_0xe1dc('0x1a')](function(){return _0x2bbc77;})[_0xe1dc('0x1a')](respondWithResult(_0x2c678f,null))[_0xe1dc('0x25')](handleError(_0x2c678f,null));};exports[_0xe1dc('0x30')]=function(_0xf0ec40,_0x14fd86,_0x568796){var _0x398582;return db[_0xe1dc('0x38')][_0xe1dc('0x5e')]({'where':{'id':_0xf0ec40[_0xe1dc('0x4e')]['id']}})[_0xe1dc('0x1a')](handleEntityNotFound(_0x14fd86,null))[_0xe1dc('0x1a')](removeEntity(_0x14fd86,null))[_0xe1dc('0x1a')](function(){return db[_0xe1dc('0x38')][_0xe1dc('0x4b')]({'raw':!![]});})[_0xe1dc('0x1a')](function(_0x543b10){var _0x4c6c14=fs[_0xe1dc('0x53')](path[_0xe1dc('0x54')](config[_0xe1dc('0x63')],_0xe1dc('0x64')),_0xe1dc('0x55'));var _0x2b00bc=ejs[_0xe1dc('0x56')](_0x4c6c14,{'contexts':_0x543b10});fs[_0xe1dc('0x57')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x2b00bc);return respondWithRpcPromise(_0xe1dc('0x59'),_0xe1dc('0x30'),{'module':'chan_sip.so'});})['catch'](handleError(_0x14fd86,null));};
\ No newline at end of file
+var _0x5809=['UserProfileResource','stack','name','send','index','VoiceContext','rawAttributes','fieldName','type','key','map','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick','merge','VIRTUAL','filter','findAll','rows','show','params','include','options','create','body','readFileSync','root','writeFileSync','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','find','join','server/files/templates/context.ejs','utf8','Reload','render','eml-format','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','squel','jsforce','to-csv','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','client','http','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','offset','undefined','count','limit','apply','reject','save','update','destroy','get','Contexts'];(function(_0x584ec4,_0x35b3fb){var _0x2c312e=function(_0x44fd6e){while(--_0x44fd6e){_0x584ec4['push'](_0x584ec4['shift']());}};_0x2c312e(++_0x35b3fb);}(_0x5809,0x168));var _0x9580=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x5809[_0x40a045];return _0x1a687c;};'use strict';var emlformat=require(_0x9580('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x9580('0x1'));var rp=require(_0x9580('0x2'));var moment=require(_0x9580('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x9580('0x4'));var util=require(_0x9580('0x5'));var path=require(_0x9580('0x6'));var sox=require(_0x9580('0x7'));var csv=require('to-csv');var ejs=require(_0x9580('0x8'));var fs=require('fs');var fs_extra=require(_0x9580('0x9'));var _=require('lodash');var squel=require(_0x9580('0xa'));var crypto=require('crypto');var jsforce=require(_0x9580('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x9580('0xc'));var querystring=require(_0x9580('0xd'));var Papa=require(_0x9580('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x9580('0xf'));var as=require(_0x9580('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9580('0x11'))(_0x9580('0x12'));var utils=require(_0x9580('0x13'));var config=require(_0x9580('0x14'));var licenseUtil=require(_0x9580('0x15'));var db=require(_0x9580('0x16'))['db'];var jayson=require('jayson/promise');var client=jayson[_0x9580('0x17')][_0x9580('0x18')]({'port':0x232a});function respondWithRpcPromise(_0x38462a,_0x238127,_0x1d8e61,_0x5629dc){return new BPromise(function(_0x3b34ca,_0x7f813f){var _0x360273=_0x5629dc||client;return _0x360273[_0x9580('0x19')](_0x38462a,_0x1d8e61)[_0x9580('0x1a')](function(_0x3a9f3a){logger[_0x9580('0x1b')](_0x9580('0x1c'),_0x238127,_0x9580('0x1d'));logger[_0x9580('0x1e')](_0x9580('0x1f'),_0x238127,_0x9580('0x1d'),JSON[_0x9580('0x20')](_0x3a9f3a));if(_0x3a9f3a[_0x9580('0x21')]){if(_0x3a9f3a['error']['code']===0x1f4){logger[_0x9580('0x21')](_0x9580('0x1c'),_0x238127,_0x3a9f3a[_0x9580('0x21')]['message']);return _0x7f813f(_0x3a9f3a[_0x9580('0x21')]['message']);}logger[_0x9580('0x21')](_0x9580('0x1c'),_0x238127,_0x3a9f3a['error'][_0x9580('0x22')]);return _0x3b34ca(_0x3a9f3a[_0x9580('0x21')]['message']);}else{logger[_0x9580('0x1b')](_0x9580('0x1c'),_0x238127,'request\x20sent');_0x3b34ca(_0x3a9f3a[_0x9580('0x23')][_0x9580('0x22')]);}})[_0x9580('0x24')](function(_0x5681e8){logger[_0x9580('0x21')](_0x9580('0x1c'),_0x238127,_0x5681e8);_0x7f813f(_0x5681e8);});});}function respondWithStatusCode(_0x24c214,_0x1c078c){_0x1c078c=_0x1c078c||0xcc;return function(_0x128c46){if(_0x128c46){return _0x24c214[_0x9580('0x25')](_0x1c078c);}return _0x24c214[_0x9580('0x26')](_0x1c078c)[_0x9580('0x27')]();};}function respondWithResult(_0x184f7e,_0x4ea319){_0x4ea319=_0x4ea319||0xc8;return function(_0x36d0d3){if(_0x36d0d3){return _0x184f7e[_0x9580('0x26')](_0x4ea319)[_0x9580('0x28')](_0x36d0d3);}};}function respondWithFilteredResult(_0xd43f1,_0x3fe008){return function(_0x418dac){if(_0x418dac){var _0x1f7a96=typeof _0x3fe008[_0x9580('0x29')]===_0x9580('0x2a')&&typeof _0x3fe008['limit']===_0x9580('0x2a');var _0x1a6856=_0x418dac[_0x9580('0x2b')];var _0x4d1827=_0x1f7a96?0x0:_0x3fe008[_0x9580('0x29')];var _0x289fe8=_0x1f7a96?_0x418dac[_0x9580('0x2b')]:_0x3fe008[_0x9580('0x29')]+_0x3fe008[_0x9580('0x2c')];var _0x4d88cf;if(_0x289fe8>=_0x1a6856){_0x289fe8=_0x1a6856;_0x4d88cf=0xc8;}else{_0x4d88cf=0xce;}_0xd43f1[_0x9580('0x26')](_0x4d88cf);return _0xd43f1['set']('Content-Range',_0x4d1827+'-'+_0x289fe8+'/'+_0x1a6856)['json'](_0x418dac);}return null;};}function patchUpdates(_0x117101){return function(_0x5cfb6a){try{jsonpatch[_0x9580('0x2d')](_0x5cfb6a,_0x117101,!![]);}catch(_0x14cc5a){return BPromise[_0x9580('0x2e')](_0x14cc5a);}return _0x5cfb6a[_0x9580('0x2f')]();};}function saveUpdates(_0x1d8488,_0x1de128){return function(_0xfb5418){if(_0xfb5418){return _0xfb5418[_0x9580('0x30')](_0x1d8488)[_0x9580('0x1a')](function(_0x56c619){return _0x56c619;});}return null;};}function removeEntity(_0x33392c,_0x1fa3eb){return function(_0x26e197){if(_0x26e197){return _0x26e197[_0x9580('0x31')]()[_0x9580('0x1a')](function(){var _0x3cbc82=_0x26e197[_0x9580('0x32')]({'plain':!![]});var _0x1f2a75=_0x9580('0x33');return db[_0x9580('0x34')]['destroy']({'where':{'type':_0x1f2a75,'resourceId':_0x3cbc82['id']}})[_0x9580('0x1a')](function(){return _0x26e197;});})[_0x9580('0x1a')](function(){_0x33392c[_0x9580('0x26')](0xcc)[_0x9580('0x27')]();});}};}function handleEntityNotFound(_0x337fd3,_0x8066fc){return function(_0x35a9a7){if(!_0x35a9a7){_0x337fd3[_0x9580('0x25')](0x194);}return _0x35a9a7;};}function handleError(_0xdbe938,_0x597b47){_0x597b47=_0x597b47||0x1f4;return function(_0x5690c3){logger['error'](_0x5690c3[_0x9580('0x35')]);if(_0x5690c3['name']){delete _0x5690c3[_0x9580('0x36')];}_0xdbe938['status'](_0x597b47)[_0x9580('0x37')](_0x5690c3);};}exports[_0x9580('0x38')]=function(_0x3fe5ba,_0x3219c7){var _0x5c09db={},_0x5bb012={},_0x8fac5b={'count':0x0,'rows':[]};var _0x1fb4fa=_['map'](db[_0x9580('0x39')][_0x9580('0x3a')],function(_0x1c4bdc){return{'name':_0x1c4bdc[_0x9580('0x3b')],'type':_0x1c4bdc[_0x9580('0x3c')][_0x9580('0x3d')]};});_0x5bb012['model']=_[_0x9580('0x3e')](_0x1fb4fa,_0x9580('0x36'));_0x5bb012[_0x9580('0x3f')]=_[_0x9580('0x40')](_0x3fe5ba['query']);_0x5bb012['filters']=_[_0x9580('0x41')](_0x5bb012[_0x9580('0x42')],_0x5bb012[_0x9580('0x3f')]);_0x5c09db['attributes']=_[_0x9580('0x41')](_0x5bb012[_0x9580('0x42')],qs[_0x9580('0x43')](_0x3fe5ba[_0x9580('0x3f')][_0x9580('0x43')]));_0x5c09db[_0x9580('0x44')]=_0x5c09db['attributes'][_0x9580('0x45')]?_0x5c09db['attributes']:_0x5bb012[_0x9580('0x42')];if(!_0x3fe5ba[_0x9580('0x3f')][_0x9580('0x46')]('nolimit')){_0x5c09db[_0x9580('0x2c')]=qs[_0x9580('0x2c')](_0x3fe5ba['query']['limit']);_0x5c09db['offset']=qs[_0x9580('0x29')](_0x3fe5ba[_0x9580('0x3f')][_0x9580('0x29')]);}_0x5c09db[_0x9580('0x47')]=qs['sort'](_0x3fe5ba[_0x9580('0x3f')][_0x9580('0x48')]);_0x5c09db[_0x9580('0x49')]=qs[_0x9580('0x4a')](_[_0x9580('0x4b')](_0x3fe5ba[_0x9580('0x3f')],_0x5bb012[_0x9580('0x4a')]),_0x1fb4fa);if(_0x3fe5ba[_0x9580('0x3f')]['filter']){_0x5c09db[_0x9580('0x49')]=_[_0x9580('0x4c')](_0x5c09db[_0x9580('0x49')],{'$or':_[_0x9580('0x3e')](_0x1fb4fa,function(_0x1f4475){if(_0x1f4475[_0x9580('0x3c')]!==_0x9580('0x4d')){var _0xccfe07={};_0xccfe07[_0x1f4475[_0x9580('0x36')]]={'$like':'%'+_0x3fe5ba[_0x9580('0x3f')][_0x9580('0x4e')]+'%'};return _0xccfe07;}})});}_0x5c09db=_[_0x9580('0x4c')]({},_0x5c09db,_0x3fe5ba['options']);var _0x4b0d10={'where':_0x5c09db[_0x9580('0x49')]};return db[_0x9580('0x39')][_0x9580('0x2b')](_0x4b0d10)[_0x9580('0x1a')](function(_0x3873e9){_0x8fac5b[_0x9580('0x2b')]=_0x3873e9;if(_0x3fe5ba[_0x9580('0x3f')]['includeAll']){_0x5c09db['include']=[{'all':!![]}];}return db[_0x9580('0x39')][_0x9580('0x4f')](_0x5c09db);})[_0x9580('0x1a')](function(_0x1a884f){_0x8fac5b[_0x9580('0x50')]=_0x1a884f;return _0x8fac5b;})[_0x9580('0x1a')](respondWithFilteredResult(_0x3219c7,_0x5c09db))[_0x9580('0x24')](handleError(_0x3219c7,null));};exports[_0x9580('0x51')]=function(_0x1e806d,_0x2188a5){var _0x3b2aba={'raw':![],'where':{'id':_0x1e806d[_0x9580('0x52')]['id']}},_0x58730a={};_0x58730a[_0x9580('0x42')]=_[_0x9580('0x40')](db[_0x9580('0x39')][_0x9580('0x3a')]);_0x58730a[_0x9580('0x3f')]=_[_0x9580('0x40')](_0x1e806d[_0x9580('0x3f')]);_0x58730a['filters']=_[_0x9580('0x41')](_0x58730a[_0x9580('0x42')],_0x58730a[_0x9580('0x3f')]);_0x3b2aba[_0x9580('0x44')]=_['intersection'](_0x58730a[_0x9580('0x42')],qs[_0x9580('0x43')](_0x1e806d[_0x9580('0x3f')][_0x9580('0x43')]));_0x3b2aba[_0x9580('0x44')]=_0x3b2aba[_0x9580('0x44')][_0x9580('0x45')]?_0x3b2aba['attributes']:_0x58730a['model'];if(_0x1e806d[_0x9580('0x3f')]['includeAll']){_0x3b2aba[_0x9580('0x53')]=[{'all':!![]}];}_0x3b2aba=_[_0x9580('0x4c')]({},_0x3b2aba,_0x1e806d[_0x9580('0x54')]);return db[_0x9580('0x39')]['find'](_0x3b2aba)[_0x9580('0x1a')](handleEntityNotFound(_0x2188a5,null))[_0x9580('0x1a')](respondWithResult(_0x2188a5,null))[_0x9580('0x24')](handleError(_0x2188a5,null));};exports[_0x9580('0x55')]=function(_0x3fc40b,_0x3051fe,_0x361752){var _0x2fa766;return db[_0x9580('0x39')][_0x9580('0x55')](_0x3fc40b[_0x9580('0x56')],{'raw':!![]})[_0x9580('0x1a')](function(_0xe6e56a){_0x2fa766=_0xe6e56a;return db[_0x9580('0x39')][_0x9580('0x4f')]({'raw':!![]});})[_0x9580('0x1a')](function(_0x118718){var _0x63aa4e=fs[_0x9580('0x57')](path['join'](config[_0x9580('0x58')],'server/files/templates/context.ejs'),'utf8');var _0x2f1fa7=ejs['render'](_0x63aa4e,{'contexts':_0x118718||[]});fs[_0x9580('0x59')](_0x9580('0x5a'),_0x2f1fa7);})[_0x9580('0x1a')](function(){return respondWithRpcPromise('Reload',_0x9580('0x55'),{'module':_0x9580('0x5b')});})[_0x9580('0x1a')](function(){var _0x220145=_0x3fc40b[_0x9580('0x5c')][_0x9580('0x32')]({'plain':!![]});if(!_0x220145)throw new Error(_0x9580('0x5d'));if(_0x220145['role']==='user'){var _0x52fb83=_0x2fa766['get']({'plain':!![]});return db[_0x9580('0x5e')]['find']({'where':{'name':_0x9580('0x33'),'userProfileId':_0x220145[_0x9580('0x5f')]},'raw':!![]})[_0x9580('0x1a')](function(_0x584f25){if(_0x584f25&&_0x584f25['autoAssociation']===0x0){return db[_0x9580('0x34')][_0x9580('0x55')]({'name':_0x52fb83[_0x9580('0x36')],'resourceId':_0x52fb83['id'],'type':_0x584f25[_0x9580('0x36')],'sectionId':_0x584f25['id']},{})[_0x9580('0x1a')](function(){return _0x2fa766;});}else{return _0x2fa766;}})['catch'](function(_0x39af86){logger['error'](_0x9580('0x60'),_0x39af86);throw _0x39af86;});}return _0x2fa766;})[_0x9580('0x1a')](respondWithResult(_0x3051fe,0xc9))[_0x9580('0x24')](handleError(_0x3051fe,null));};exports[_0x9580('0x30')]=function(_0x2116e9,_0x2f7251,_0x545bbf){var _0x1b4904;return db['VoiceContext'][_0x9580('0x61')]({'where':{'id':_0x2116e9[_0x9580('0x52')]['id']}})[_0x9580('0x1a')](handleEntityNotFound(_0x2f7251,null))[_0x9580('0x1a')](saveUpdates(_0x2116e9[_0x9580('0x56')],null))[_0x9580('0x1a')](function(_0x16df3c){if(_0x16df3c){_0x1b4904=_0x16df3c;return db['VoiceContext'][_0x9580('0x4f')]({'raw':!![]});}})[_0x9580('0x1a')](function(_0x4ac1d0){var _0x172aba=fs[_0x9580('0x57')](path[_0x9580('0x62')](config[_0x9580('0x58')],_0x9580('0x63')),_0x9580('0x64'));var _0x5906ea=ejs['render'](_0x172aba,{'contexts':_0x4ac1d0||[]});fs['writeFileSync'](_0x9580('0x5a'),_0x5906ea);})['then'](function(){return respondWithRpcPromise(_0x9580('0x65'),_0x9580('0x30'),{'module':'chan_sip.so'});})[_0x9580('0x1a')](function(){return _0x1b4904;})[_0x9580('0x1a')](respondWithResult(_0x2f7251,null))[_0x9580('0x24')](handleError(_0x2f7251,null));};exports[_0x9580('0x31')]=function(_0x38a4b3,_0x3e60ff,_0x366f5f){var _0x3d6a58;return db[_0x9580('0x39')][_0x9580('0x61')]({'where':{'id':_0x38a4b3[_0x9580('0x52')]['id']}})[_0x9580('0x1a')](handleEntityNotFound(_0x3e60ff,null))['then'](removeEntity(_0x3e60ff,null))[_0x9580('0x1a')](function(){return db[_0x9580('0x39')][_0x9580('0x4f')]({'raw':!![]});})['then'](function(_0x36048e){var _0x33d887=fs[_0x9580('0x57')](path[_0x9580('0x62')](config[_0x9580('0x58')],_0x9580('0x63')),_0x9580('0x64'));var _0x56fc34=ejs[_0x9580('0x66')](_0x33d887,{'contexts':_0x36048e});fs[_0x9580('0x59')](_0x9580('0x5a'),_0x56fc34);return respondWithRpcPromise(_0x9580('0x65'),_0x9580('0x31'),{'module':_0x9580('0x5b')});})[_0x9580('0x24')](handleError(_0x3e60ff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31d9=['../../config/logger','api','moment','bluebird','request-promise','rimraf','./voiceContext.attributes','VoiceContext','voice_contexts','lodash','util'];(function(_0x34a0cc,_0x27b8ed){var _0x50f4c9=function(_0xb4e426){while(--_0xb4e426){_0x34a0cc['push'](_0x34a0cc['shift']());}};_0x50f4c9(++_0x27b8ed);}(_0x31d9,0x1ab));var _0x931d=function(_0x33ab79,_0x4f7c50){_0x33ab79=_0x33ab79-0x0;var _0x10ac00=_0x31d9[_0x33ab79];return _0x10ac00;};'use strict';var _=require(_0x931d('0x0'));var util=require(_0x931d('0x1'));var logger=require(_0x931d('0x2'))(_0x931d('0x3'));var moment=require(_0x931d('0x4'));var BPromise=require(_0x931d('0x5'));var rp=require(_0x931d('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x931d('0x7'));var config=require('../../config/environment');var attributes=require(_0x931d('0x8'));module['exports']=function(_0x3bbda6,_0x471213){return _0x3bbda6['define'](_0x931d('0x9'),attributes,{'tableName':_0x931d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5a2a=['VoiceContext','voice_contexts','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./voiceContext.attributes','exports','define'];(function(_0x1da918,_0xeda2fe){var _0x4c6907=function(_0x5ec0d5){while(--_0x5ec0d5){_0x1da918['push'](_0x1da918['shift']());}};_0x4c6907(++_0xeda2fe);}(_0x5a2a,0xaa));var _0xa5a2=function(_0x4e07c1,_0xb4c150){_0x4e07c1=_0x4e07c1-0x0;var _0x3d1c0e=_0x5a2a[_0x4e07c1];return _0x3d1c0e;};'use strict';var _=require(_0xa5a2('0x0'));var util=require(_0xa5a2('0x1'));var logger=require(_0xa5a2('0x2'))(_0xa5a2('0x3'));var moment=require(_0xa5a2('0x4'));var BPromise=require(_0xa5a2('0x5'));var rp=require(_0xa5a2('0x6'));var fs=require('fs');var path=require(_0xa5a2('0x7'));var rimraf=require(_0xa5a2('0x8'));var config=require('../../config/environment');var attributes=require(_0xa5a2('0x9'));module[_0xa5a2('0xa')]=function(_0x2a6880,_0xebc05a){return _0x2a6880[_0xa5a2('0xb')](_0xa5a2('0xc'),attributes,{'tableName':_0xa5a2('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2cb0=['../../config/environment','jayson/promise','client','http','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','info','result','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc'];(function(_0x122096,_0x60c295){var _0x3d1966=function(_0x3d569e){while(--_0x3d569e){_0x122096['push'](_0x122096['shift']());}};_0x3d1966(++_0x60c295);}(_0x2cb0,0x12c));var _0x02cb=function(_0xc0dcd7,_0x3bbe9d){_0xc0dcd7=_0xc0dcd7-0x0;var _0x3f1de1=_0x2cb0[_0xc0dcd7];return _0x3f1de1;};'use strict';var _=require(_0x02cb('0x0'));var util=require(_0x02cb('0x1'));var moment=require('moment');var BPromise=require(_0x02cb('0x2'));var rs=require(_0x02cb('0x3'));var fs=require('fs');var Redis=require(_0x02cb('0x4'));var db=require(_0x02cb('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x02cb('0x6'))(_0x02cb('0x7'));var config=require(_0x02cb('0x8'));var jayson=require(_0x02cb('0x9'));var client=jayson[_0x02cb('0xa')][_0x02cb('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x291240,_0x19713d,_0x5afd2a){return new BPromise(function(_0x175b98,_0x294182){return client[_0x02cb('0xc')](_0x291240,_0x5afd2a)[_0x02cb('0xd')](function(_0xcdfc87){logger['info'](_0x02cb('0xe'),_0x19713d,_0x02cb('0xf'));logger[_0x02cb('0x10')]('VoiceContext,\x20%s,\x20%s,\x20%s',_0x19713d,_0x02cb('0xf'),JSON[_0x02cb('0x11')](_0xcdfc87));if(_0xcdfc87[_0x02cb('0x12')]){if(_0xcdfc87[_0x02cb('0x12')]['code']===0x1f4){logger[_0x02cb('0x12')](_0x02cb('0xe'),_0x19713d,_0xcdfc87[_0x02cb('0x12')][_0x02cb('0x13')]);return _0x294182(_0xcdfc87[_0x02cb('0x12')][_0x02cb('0x13')]);}logger['error'](_0x02cb('0xe'),_0x19713d,_0xcdfc87[_0x02cb('0x12')][_0x02cb('0x13')]);return _0x175b98(_0xcdfc87['error'][_0x02cb('0x13')]);}else{logger[_0x02cb('0x14')](_0x02cb('0xe'),_0x19713d,_0x02cb('0xf'));_0x175b98(_0xcdfc87[_0x02cb('0x15')]['message']);}})['catch'](function(_0x30f8c6){logger[_0x02cb('0x12')](_0x02cb('0xe'),_0x19713d,_0x30f8c6);_0x294182(_0x30f8c6);});});}
\ No newline at end of file
+var _0xc8ce=['lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch'];(function(_0x546c68,_0x5c0116){var _0x4a2389=function(_0x5aa205){while(--_0x5aa205){_0x546c68['push'](_0x546c68['shift']());}};_0x4a2389(++_0x5c0116);}(_0xc8ce,0x176));var _0xec8c=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xc8ce[_0x45e98e];return _0x374dba;};'use strict';var _=require(_0xec8c('0x0'));var util=require('util');var moment=require(_0xec8c('0x1'));var BPromise=require(_0xec8c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xec8c('0x3'));var db=require(_0xec8c('0x4'))['db'];var utils=require(_0xec8c('0x5'));var logger=require('../../config/logger')(_0xec8c('0x6'));var config=require(_0xec8c('0x7'));var jayson=require(_0xec8c('0x8'));var client=jayson[_0xec8c('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x543f7c,_0x1229b8,_0x3567f9){return new BPromise(function(_0x8aa65f,_0x9335df){return client[_0xec8c('0xa')](_0x543f7c,_0x3567f9)[_0xec8c('0xb')](function(_0x26239b){logger[_0xec8c('0xc')](_0xec8c('0xd'),_0x1229b8,_0xec8c('0xe'));logger[_0xec8c('0xf')](_0xec8c('0x10'),_0x1229b8,_0xec8c('0xe'),JSON[_0xec8c('0x11')](_0x26239b));if(_0x26239b[_0xec8c('0x12')]){if(_0x26239b[_0xec8c('0x12')]['code']===0x1f4){logger[_0xec8c('0x12')]('VoiceContext,\x20%s,\x20%s',_0x1229b8,_0x26239b['error'][_0xec8c('0x13')]);return _0x9335df(_0x26239b[_0xec8c('0x12')][_0xec8c('0x13')]);}logger[_0xec8c('0x12')]('VoiceContext,\x20%s,\x20%s',_0x1229b8,_0x26239b[_0xec8c('0x12')][_0xec8c('0x13')]);return _0x8aa65f(_0x26239b[_0xec8c('0x12')][_0xec8c('0x13')]);}else{logger['info']('VoiceContext,\x20%s,\x20%s',_0x1229b8,_0xec8c('0xe'));_0x8aa65f(_0x26239b[_0xec8c('0x14')][_0xec8c('0x13')]);}})[_0xec8c('0x15')](function(_0x343d3f){logger['error'](_0xec8c('0xd'),_0x1229b8,_0x343d3f);_0x9335df(_0x343d3f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70fe=['../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe','describe','/:id','show','post','create','update','delete','destroy','exports','multer','util','express','Router','../../components/auth/service'];(function(_0x40f3a2,_0x532dc2){var _0x7facea=function(_0x14cbb3){while(--_0x14cbb3){_0x40f3a2['push'](_0x40f3a2['shift']());}};_0x7facea(++_0x532dc2);}(_0x70fe,0x1d6));var _0xe70f=function(_0x6405ad,_0x104815){_0x6405ad=_0x6405ad-0x0;var _0x2d14a2=_0x70fe[_0x6405ad];return _0x2d14a2;};'use strict';var multer=require(_0xe70f('0x0'));var util=require(_0xe70f('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xe70f('0x2'));var router=express[_0xe70f('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xe70f('0x4'));var interaction=require(_0xe70f('0x5'));var config=require(_0xe70f('0x6'));var controller=require('./voiceDialReport.controller');router[_0xe70f('0x7')]('/',auth[_0xe70f('0x8')](),controller['index']);router[_0xe70f('0x7')](_0xe70f('0x9'),auth['isAuthenticated'](),controller[_0xe70f('0xa')]);router[_0xe70f('0x7')](_0xe70f('0xb'),auth['isAuthenticated'](),controller[_0xe70f('0xc')]);router[_0xe70f('0xd')]('/',auth['isAuthenticated'](),controller[_0xe70f('0xe')]);router['put'](_0xe70f('0xb'),auth[_0xe70f('0x8')](),controller[_0xe70f('0xf')]);router[_0xe70f('0x10')]('/:id',auth[_0xe70f('0x8')](),controller[_0xe70f('0x11')]);module[_0xe70f('0x12')]=router;
\ No newline at end of file
+var _0x79d8=['fs-extra','../../components/interaction/service','../../config/environment','./voiceDialReport.controller','isAuthenticated','index','get','/describe','describe','/:id','show','update','exports','multer','util','path','connect-timeout','Router'];(function(_0x486ab6,_0x257c0a){var _0x1ce5ea=function(_0x1443a5){while(--_0x1443a5){_0x486ab6['push'](_0x486ab6['shift']());}};_0x1ce5ea(++_0x257c0a);}(_0x79d8,0x67));var _0x879d=function(_0x5df843,_0x35331a){_0x5df843=_0x5df843-0x0;var _0x160f4f=_0x79d8[_0x5df843];return _0x160f4f;};'use strict';var multer=require(_0x879d('0x0'));var util=require(_0x879d('0x1'));var path=require(_0x879d('0x2'));var timeout=require(_0x879d('0x3'));var express=require('express');var router=express[_0x879d('0x4')]();var fs_extra=require(_0x879d('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x879d('0x6'));var config=require(_0x879d('0x7'));var controller=require(_0x879d('0x8'));router['get']('/',auth[_0x879d('0x9')](),controller[_0x879d('0xa')]);router[_0x879d('0xb')](_0x879d('0xc'),auth['isAuthenticated'](),controller[_0x879d('0xd')]);router[_0x879d('0xb')](_0x879d('0xe'),auth[_0x879d('0x9')](),controller[_0x879d('0xf')]);router['post']('/',auth[_0x879d('0x9')](),controller['create']);router['put'](_0x879d('0xe'),auth[_0x879d('0x9')](),controller[_0x879d('0x10')]);router['delete'](_0x879d('0xe'),auth[_0x879d('0x9')](),controller['destroy']);module[_0x879d('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f0d=['STRING','INTEGER','DATE','called,connect,complete','exports'];(function(_0x15697d,_0xdbacf8){var _0x230198=function(_0x35f87b){while(--_0x35f87b){_0x15697d['push'](_0x15697d['shift']());}};_0x230198(++_0xdbacf8);}(_0x6f0d,0x16c));var _0xd6f0=function(_0x226f94,_0x111cb2){_0x226f94=_0x226f94-0x0;var _0xb4249f=_0x6f0d[_0x226f94];return _0xb4249f;};'use strict';var Sequelize=require('sequelize');module[_0xd6f0('0x0')]={'privilege':{'type':Sequelize[_0xd6f0('0x1')]},'channel':{'type':Sequelize[_0xd6f0('0x1')]},'channelstate':{'type':Sequelize[_0xd6f0('0x2')]},'channelstatedesc':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xd6f0('0x1')]},'calleridname':{'type':Sequelize[_0xd6f0('0x1')]},'connectedlinenum':{'type':Sequelize[_0xd6f0('0x1')]},'connectedlinename':{'type':Sequelize[_0xd6f0('0x1')]},'language':{'type':Sequelize[_0xd6f0('0x1')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xd6f0('0x1')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xd6f0('0x2')]},'uniqueid':{'type':Sequelize[_0xd6f0('0x1')]},'linkedid':{'type':Sequelize[_0xd6f0('0x1')]},'destchannel':{'type':Sequelize[_0xd6f0('0x1')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0xd6f0('0x1')]},'destcalleridname':{'type':Sequelize[_0xd6f0('0x1')]},'destconnectedlinenum':{'type':Sequelize[_0xd6f0('0x1')]},'destconnectedlinename':{'type':Sequelize[_0xd6f0('0x1')]},'destlanguage':{'type':Sequelize[_0xd6f0('0x1')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0xd6f0('0x1')]},'destexten':{'type':Sequelize[_0xd6f0('0x1')]},'destpriority':{'type':Sequelize[_0xd6f0('0x2')]},'destuniqueid':{'type':Sequelize[_0xd6f0('0x1')]},'destlinkedid':{'type':Sequelize['STRING']},'dialstring':{'type':Sequelize[_0xd6f0('0x1')]},'dialstatus':{'type':Sequelize[_0xd6f0('0x1')]},'starttime':{'type':Sequelize[_0xd6f0('0x3')]},'answertime':{'type':Sequelize[_0xd6f0('0x3')]},'endtime':{'type':Sequelize[_0xd6f0('0x3')]},'lastevent':{'type':Sequelize[_0xd6f0('0x1')],'comment':_0xd6f0('0x4')},'routeId':{'type':Sequelize[_0xd6f0('0x2')]},'duration':{'type':Sequelize[_0xd6f0('0x2')]},'holdtime':{'type':Sequelize['INTEGER']},'billableseconds':{'type':Sequelize[_0xd6f0('0x2')]}};
\ No newline at end of file
+var _0xd6d6=['STRING','INTEGER','DATE','called,connect,complete','sequelize','exports'];(function(_0x38782c,_0x5c9fef){var _0x3708bf=function(_0x595e13){while(--_0x595e13){_0x38782c['push'](_0x38782c['shift']());}};_0x3708bf(++_0x5c9fef);}(_0xd6d6,0xbe));var _0x6d6d=function(_0x5d5d29,_0x2921b7){_0x5d5d29=_0x5d5d29-0x0;var _0x3838b9=_0xd6d6[_0x5d5d29];return _0x3838b9;};'use strict';var Sequelize=require(_0x6d6d('0x0'));module[_0x6d6d('0x1')]={'privilege':{'type':Sequelize[_0x6d6d('0x2')]},'channel':{'type':Sequelize[_0x6d6d('0x2')]},'channelstate':{'type':Sequelize['INTEGER']},'channelstatedesc':{'type':Sequelize[_0x6d6d('0x2')]},'calleridnum':{'type':Sequelize[_0x6d6d('0x2')]},'calleridname':{'type':Sequelize[_0x6d6d('0x2')]},'connectedlinenum':{'type':Sequelize[_0x6d6d('0x2')]},'connectedlinename':{'type':Sequelize[_0x6d6d('0x2')]},'language':{'type':Sequelize[_0x6d6d('0x2')]},'accountcode':{'type':Sequelize[_0x6d6d('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x6d6d('0x2')]},'priority':{'type':Sequelize[_0x6d6d('0x3')]},'uniqueid':{'type':Sequelize[_0x6d6d('0x2')]},'linkedid':{'type':Sequelize[_0x6d6d('0x2')]},'destchannel':{'type':Sequelize[_0x6d6d('0x2')]},'destchannelstate':{'type':Sequelize[_0x6d6d('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x6d6d('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0x6d6d('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x6d6d('0x2')]},'destlanguage':{'type':Sequelize[_0x6d6d('0x2')]},'destaccountcode':{'type':Sequelize[_0x6d6d('0x2')]},'destcontext':{'type':Sequelize[_0x6d6d('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x6d6d('0x3')]},'destuniqueid':{'type':Sequelize[_0x6d6d('0x2')]},'destlinkedid':{'type':Sequelize['STRING']},'dialstring':{'type':Sequelize['STRING']},'dialstatus':{'type':Sequelize[_0x6d6d('0x2')]},'starttime':{'type':Sequelize[_0x6d6d('0x4')]},'answertime':{'type':Sequelize[_0x6d6d('0x4')]},'endtime':{'type':Sequelize[_0x6d6d('0x4')]},'lastevent':{'type':Sequelize[_0x6d6d('0x2')],'comment':_0x6d6d('0x5')},'routeId':{'type':Sequelize[_0x6d6d('0x3')]},'duration':{'type':Sequelize[_0x6d6d('0x3')]},'holdtime':{'type':Sequelize['INTEGER']},'billableseconds':{'type':Sequelize[_0x6d6d('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4f9=['../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','then','error','stack','name','send','map','VoiceDialReport','rawAttributes','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','length','include','find','create','body','update','params','describe','eml-format','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xb4f9,0x169));var _0x9b4f=function(_0x57cc54,_0x6862b1){_0x57cc54=_0x57cc54-0x0;var _0xa93acc=_0xb4f9[_0x57cc54];return _0xa93acc;};'use strict';var emlformat=require(_0x9b4f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9b4f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x9b4f('0x2'));var BPromise=require(_0x9b4f('0x3'));var Mustache=require(_0x9b4f('0x4'));var util=require(_0x9b4f('0x5'));var path=require(_0x9b4f('0x6'));var sox=require(_0x9b4f('0x7'));var csv=require(_0x9b4f('0x8'));var ejs=require(_0x9b4f('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9b4f('0xa'));var squel=require(_0x9b4f('0xb'));var crypto=require('crypto');var jsforce=require(_0x9b4f('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x9b4f('0x8'));var querystring=require('querystring');var Papa=require(_0x9b4f('0xd'));var Redis=require(_0x9b4f('0xe'));var authService=require(_0x9b4f('0xf'));var qs=require(_0x9b4f('0x10'));var as=require(_0x9b4f('0x11'));var hardwareService=require(_0x9b4f('0x12'));var logger=require(_0x9b4f('0x13'))(_0x9b4f('0x14'));var utils=require(_0x9b4f('0x15'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9b4f('0x16'))['db'];function respondWithStatusCode(_0x1f4643,_0x46a30d){_0x46a30d=_0x46a30d||0xcc;return function(_0x2c3d19){if(_0x2c3d19){return _0x1f4643[_0x9b4f('0x17')](_0x46a30d);}return _0x1f4643['status'](_0x46a30d)[_0x9b4f('0x18')]();};}function respondWithResult(_0x528287,_0x1e32fc){_0x1e32fc=_0x1e32fc||0xc8;return function(_0x2fd3c7){if(_0x2fd3c7){return _0x528287[_0x9b4f('0x19')](_0x1e32fc)[_0x9b4f('0x1a')](_0x2fd3c7);}};}function respondWithFilteredResult(_0x155d4f,_0x3a42ce){return function(_0x2115c0){if(_0x2115c0){var _0x55074a=typeof _0x3a42ce[_0x9b4f('0x1b')]===_0x9b4f('0x1c')&&typeof _0x3a42ce[_0x9b4f('0x1d')]==='undefined';var _0x49d26d=_0x2115c0[_0x9b4f('0x1e')];var _0x12a8b2=_0x55074a?0x0:_0x3a42ce[_0x9b4f('0x1b')];var _0x51f2f6=_0x55074a?_0x2115c0[_0x9b4f('0x1e')]:_0x3a42ce[_0x9b4f('0x1b')]+_0x3a42ce[_0x9b4f('0x1d')];var _0x2c19a7;if(_0x51f2f6>=_0x49d26d){_0x51f2f6=_0x49d26d;_0x2c19a7=0xc8;}else{_0x2c19a7=0xce;}_0x155d4f[_0x9b4f('0x19')](_0x2c19a7);return _0x155d4f[_0x9b4f('0x1f')](_0x9b4f('0x20'),_0x12a8b2+'-'+_0x51f2f6+'/'+_0x49d26d)[_0x9b4f('0x1a')](_0x2115c0);}return null;};}function patchUpdates(_0x2fbe01){return function(_0x5d8b22){try{jsonpatch[_0x9b4f('0x21')](_0x5d8b22,_0x2fbe01,!![]);}catch(_0x800ff8){return BPromise[_0x9b4f('0x22')](_0x800ff8);}return _0x5d8b22[_0x9b4f('0x23')]();};}function saveUpdates(_0x5b62b1,_0x209576){return function(_0x167cfd){if(_0x167cfd){return _0x167cfd['update'](_0x5b62b1)['then'](function(_0x139ae3){return _0x139ae3;});}return null;};}function removeEntity(_0x1da713,_0x16f74f){return function(_0x348dff){if(_0x348dff){return _0x348dff[_0x9b4f('0x24')]()[_0x9b4f('0x25')](function(){_0x1da713[_0x9b4f('0x19')](0xcc)[_0x9b4f('0x18')]();});}};}function handleEntityNotFound(_0x4f9342,_0x3184d0){return function(_0x5751cb){if(!_0x5751cb){_0x4f9342[_0x9b4f('0x17')](0x194);}return _0x5751cb;};}function handleError(_0x544003,_0x4eb792){_0x4eb792=_0x4eb792||0x1f4;return function(_0x51dff5){logger[_0x9b4f('0x26')](_0x51dff5[_0x9b4f('0x27')]);if(_0x51dff5[_0x9b4f('0x28')]){delete _0x51dff5[_0x9b4f('0x28')];}_0x544003[_0x9b4f('0x19')](_0x4eb792)[_0x9b4f('0x29')](_0x51dff5);};}exports['index']=function(_0x45a0dd,_0x5311d1){var _0x48d621={},_0x2d7607={},_0x278c75={'count':0x0,'rows':[]};var _0x505024=_[_0x9b4f('0x2a')](db[_0x9b4f('0x2b')][_0x9b4f('0x2c')],function(_0x58c553){return{'name':_0x58c553['fieldName'],'type':_0x58c553[_0x9b4f('0x2d')][_0x9b4f('0x2e')]};});_0x2d7607['model']=_[_0x9b4f('0x2a')](_0x505024,_0x9b4f('0x28'));_0x2d7607[_0x9b4f('0x2f')]=_[_0x9b4f('0x30')](_0x45a0dd[_0x9b4f('0x2f')]);_0x2d7607[_0x9b4f('0x31')]=_[_0x9b4f('0x32')](_0x2d7607[_0x9b4f('0x33')],_0x2d7607[_0x9b4f('0x2f')]);_0x48d621[_0x9b4f('0x34')]=_[_0x9b4f('0x32')](_0x2d7607[_0x9b4f('0x33')],qs[_0x9b4f('0x35')](_0x45a0dd[_0x9b4f('0x2f')][_0x9b4f('0x35')]));_0x48d621['attributes']=_0x48d621[_0x9b4f('0x34')]['length']?_0x48d621[_0x9b4f('0x34')]:_0x2d7607[_0x9b4f('0x33')];if(!_0x45a0dd[_0x9b4f('0x2f')][_0x9b4f('0x36')](_0x9b4f('0x37'))){_0x48d621[_0x9b4f('0x1d')]=qs[_0x9b4f('0x1d')](_0x45a0dd['query']['limit']);_0x48d621[_0x9b4f('0x1b')]=qs['offset'](_0x45a0dd[_0x9b4f('0x2f')][_0x9b4f('0x1b')]);}_0x48d621['order']=qs[_0x9b4f('0x38')](_0x45a0dd['query'][_0x9b4f('0x38')]);_0x48d621['where']=qs[_0x9b4f('0x31')](_[_0x9b4f('0x39')](_0x45a0dd[_0x9b4f('0x2f')],_0x2d7607[_0x9b4f('0x31')]),_0x505024);if(_0x45a0dd[_0x9b4f('0x2f')][_0x9b4f('0x3a')]){_0x48d621[_0x9b4f('0x3b')]=_[_0x9b4f('0x3c')](_0x48d621['where'],{'$or':_[_0x9b4f('0x2a')](_0x505024,function(_0x28a785){if(_0x28a785['type']!==_0x9b4f('0x3d')){var _0x19f28f={};_0x19f28f[_0x28a785['name']]={'$like':'%'+_0x45a0dd[_0x9b4f('0x2f')][_0x9b4f('0x3a')]+'%'};return _0x19f28f;}})});}_0x48d621=_[_0x9b4f('0x3c')]({},_0x48d621,_0x45a0dd[_0x9b4f('0x3e')]);var _0x1e9f1c={'where':_0x48d621['where']};return db[_0x9b4f('0x2b')][_0x9b4f('0x1e')](_0x1e9f1c)[_0x9b4f('0x25')](function(_0x52b04e){_0x278c75[_0x9b4f('0x1e')]=_0x52b04e;if(_0x45a0dd['query'][_0x9b4f('0x3f')]){_0x48d621['include']=[{'all':!![]}];}return db[_0x9b4f('0x2b')][_0x9b4f('0x40')](_0x48d621);})[_0x9b4f('0x25')](function(_0x32985b){_0x278c75[_0x9b4f('0x41')]=_0x32985b;return _0x278c75;})['then'](respondWithFilteredResult(_0x5311d1,_0x48d621))[_0x9b4f('0x42')](handleError(_0x5311d1,null));};exports[_0x9b4f('0x43')]=function(_0x5723a8,_0x108241){var _0x4b5ad9={'raw':!![],'where':{'id':_0x5723a8['params']['id']}},_0x50c558={};_0x50c558['model']=_['keys'](db[_0x9b4f('0x2b')][_0x9b4f('0x2c')]);_0x50c558[_0x9b4f('0x2f')]=_[_0x9b4f('0x30')](_0x5723a8[_0x9b4f('0x2f')]);_0x50c558[_0x9b4f('0x31')]=_[_0x9b4f('0x32')](_0x50c558[_0x9b4f('0x33')],_0x50c558[_0x9b4f('0x2f')]);_0x4b5ad9[_0x9b4f('0x34')]=_['intersection'](_0x50c558[_0x9b4f('0x33')],qs[_0x9b4f('0x35')](_0x5723a8[_0x9b4f('0x2f')][_0x9b4f('0x35')]));_0x4b5ad9['attributes']=_0x4b5ad9[_0x9b4f('0x34')][_0x9b4f('0x44')]?_0x4b5ad9[_0x9b4f('0x34')]:_0x50c558['model'];if(_0x5723a8[_0x9b4f('0x2f')][_0x9b4f('0x3f')]){_0x4b5ad9[_0x9b4f('0x45')]=[{'all':!![]}];}_0x4b5ad9=_[_0x9b4f('0x3c')]({},_0x4b5ad9,_0x5723a8['options']);return db['VoiceDialReport'][_0x9b4f('0x46')](_0x4b5ad9)[_0x9b4f('0x25')](handleEntityNotFound(_0x108241,null))[_0x9b4f('0x25')](respondWithResult(_0x108241,null))[_0x9b4f('0x42')](handleError(_0x108241,null));};exports[_0x9b4f('0x47')]=function(_0x995fea,_0x2679e9){return db[_0x9b4f('0x2b')]['create'](_0x995fea[_0x9b4f('0x48')],{})[_0x9b4f('0x25')](respondWithResult(_0x2679e9,0xc9))[_0x9b4f('0x42')](handleError(_0x2679e9,null));};exports[_0x9b4f('0x49')]=function(_0x5c5553,_0x15b85c){if(_0x5c5553['body']['id']){delete _0x5c5553['body']['id'];}return db[_0x9b4f('0x2b')][_0x9b4f('0x46')]({'where':{'id':_0x5c5553[_0x9b4f('0x4a')]['id']}})[_0x9b4f('0x25')](handleEntityNotFound(_0x15b85c,null))[_0x9b4f('0x25')](saveUpdates(_0x5c5553['body'],null))[_0x9b4f('0x25')](respondWithResult(_0x15b85c,null))[_0x9b4f('0x42')](handleError(_0x15b85c,null));};exports[_0x9b4f('0x24')]=function(_0xaa484,_0x66484){return db[_0x9b4f('0x2b')]['find']({'where':{'id':_0xaa484[_0x9b4f('0x4a')]['id']}})[_0x9b4f('0x25')](handleEntityNotFound(_0x66484,null))[_0x9b4f('0x25')](removeEntity(_0x66484,null))[_0x9b4f('0x42')](handleError(_0x66484,null));};exports[_0x9b4f('0x4b')]=function(_0x1cf280,_0x5fdc36){return db[_0x9b4f('0x2b')][_0x9b4f('0x4b')]()['then'](respondWithResult(_0x5fdc36,null))[_0x9b4f('0x42')](handleError(_0x5fdc36,null));};
\ No newline at end of file
+var _0x87eb=['model','query','keys','filters','intersection','attributes','fields','sort','filter','VIRTUAL','merge','options','where','then','includeAll','findAll','rows','catch','show','length','include','find','create','body','params','fast-json-patch','moment','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','VoiceDialReport','rawAttributes','fieldName','type'];(function(_0x196ce1,_0x46e836){var _0x360a64=function(_0x3f339f){while(--_0x3f339f){_0x196ce1['push'](_0x196ce1['shift']());}};_0x360a64(++_0x46e836);}(_0x87eb,0x9f));var _0xb87e=function(_0x4c440b,_0x3ea627){_0x4c440b=_0x4c440b-0x0;var _0x2d48cf=_0x87eb[_0x4c440b];return _0x2d48cf;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb87e('0x0'));var rp=require('request-promise');var moment=require(_0xb87e('0x1'));var BPromise=require('bluebird');var Mustache=require(_0xb87e('0x2'));var util=require(_0xb87e('0x3'));var path=require(_0xb87e('0x4'));var sox=require(_0xb87e('0x5'));var csv=require('to-csv');var ejs=require(_0xb87e('0x6'));var fs=require('fs');var fs_extra=require(_0xb87e('0x7'));var _=require(_0xb87e('0x8'));var squel=require('squel');var crypto=require(_0xb87e('0x9'));var jsforce=require('jsforce');var deskjs=require(_0xb87e('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb87e('0xb'));var Redis=require(_0xb87e('0xc'));var authService=require(_0xb87e('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xb87e('0xe'))('api');var utils=require(_0xb87e('0xf'));var config=require(_0xb87e('0x10'));var licenseUtil=require(_0xb87e('0x11'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x41d4ae,_0x4323fd){_0x4323fd=_0x4323fd||0xcc;return function(_0x3ec506){if(_0x3ec506){return _0x41d4ae[_0xb87e('0x12')](_0x4323fd);}return _0x41d4ae[_0xb87e('0x13')](_0x4323fd)[_0xb87e('0x14')]();};}function respondWithResult(_0x4dfe89,_0x415692){_0x415692=_0x415692||0xc8;return function(_0x3aaf63){if(_0x3aaf63){return _0x4dfe89['status'](_0x415692)[_0xb87e('0x15')](_0x3aaf63);}};}function respondWithFilteredResult(_0x2fa96a,_0x3f9b12){return function(_0x161c92){if(_0x161c92){var _0x2acdce=typeof _0x3f9b12['offset']===_0xb87e('0x16')&&typeof _0x3f9b12['limit']===_0xb87e('0x16');var _0x11bb72=_0x161c92[_0xb87e('0x17')];var _0x7a85b1=_0x2acdce?0x0:_0x3f9b12[_0xb87e('0x18')];var _0x59547e=_0x2acdce?_0x161c92['count']:_0x3f9b12[_0xb87e('0x18')]+_0x3f9b12[_0xb87e('0x19')];var _0x756462;if(_0x59547e>=_0x11bb72){_0x59547e=_0x11bb72;_0x756462=0xc8;}else{_0x756462=0xce;}_0x2fa96a[_0xb87e('0x13')](_0x756462);return _0x2fa96a['set'](_0xb87e('0x1a'),_0x7a85b1+'-'+_0x59547e+'/'+_0x11bb72)[_0xb87e('0x15')](_0x161c92);}return null;};}function patchUpdates(_0x18fe6f){return function(_0x11e9eb){try{jsonpatch[_0xb87e('0x1b')](_0x11e9eb,_0x18fe6f,!![]);}catch(_0x328f93){return BPromise[_0xb87e('0x1c')](_0x328f93);}return _0x11e9eb[_0xb87e('0x1d')]();};}function saveUpdates(_0x1a7f9d,_0x594e7e){return function(_0x28835e){if(_0x28835e){return _0x28835e[_0xb87e('0x1e')](_0x1a7f9d)['then'](function(_0x200e20){return _0x200e20;});}return null;};}function removeEntity(_0x5bd9de,_0x46fa61){return function(_0x29857e){if(_0x29857e){return _0x29857e[_0xb87e('0x1f')]()['then'](function(){_0x5bd9de[_0xb87e('0x13')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41a66b,_0x48bcb4){return function(_0x20bad5){if(!_0x20bad5){_0x41a66b[_0xb87e('0x12')](0x194);}return _0x20bad5;};}function handleError(_0xd10757,_0x3b6ad2){_0x3b6ad2=_0x3b6ad2||0x1f4;return function(_0x2a6847){logger[_0xb87e('0x20')](_0x2a6847[_0xb87e('0x21')]);if(_0x2a6847[_0xb87e('0x22')]){delete _0x2a6847[_0xb87e('0x22')];}_0xd10757[_0xb87e('0x13')](_0x3b6ad2)[_0xb87e('0x23')](_0x2a6847);};}exports[_0xb87e('0x24')]=function(_0x555aba,_0x38669d){var _0x256c52={},_0x164432={},_0x2fd83e={'count':0x0,'rows':[]};var _0x5b1c14=_[_0xb87e('0x25')](db[_0xb87e('0x26')][_0xb87e('0x27')],function(_0x290eec){return{'name':_0x290eec[_0xb87e('0x28')],'type':_0x290eec[_0xb87e('0x29')]['key']};});_0x164432[_0xb87e('0x2a')]=_[_0xb87e('0x25')](_0x5b1c14,_0xb87e('0x22'));_0x164432[_0xb87e('0x2b')]=_[_0xb87e('0x2c')](_0x555aba[_0xb87e('0x2b')]);_0x164432[_0xb87e('0x2d')]=_[_0xb87e('0x2e')](_0x164432[_0xb87e('0x2a')],_0x164432[_0xb87e('0x2b')]);_0x256c52[_0xb87e('0x2f')]=_[_0xb87e('0x2e')](_0x164432[_0xb87e('0x2a')],qs[_0xb87e('0x30')](_0x555aba[_0xb87e('0x2b')][_0xb87e('0x30')]));_0x256c52[_0xb87e('0x2f')]=_0x256c52['attributes']['length']?_0x256c52[_0xb87e('0x2f')]:_0x164432['model'];if(!_0x555aba[_0xb87e('0x2b')]['hasOwnProperty']('nolimit')){_0x256c52[_0xb87e('0x19')]=qs[_0xb87e('0x19')](_0x555aba[_0xb87e('0x2b')]['limit']);_0x256c52['offset']=qs[_0xb87e('0x18')](_0x555aba[_0xb87e('0x2b')][_0xb87e('0x18')]);}_0x256c52['order']=qs['sort'](_0x555aba[_0xb87e('0x2b')][_0xb87e('0x31')]);_0x256c52['where']=qs[_0xb87e('0x2d')](_['pick'](_0x555aba[_0xb87e('0x2b')],_0x164432[_0xb87e('0x2d')]),_0x5b1c14);if(_0x555aba[_0xb87e('0x2b')][_0xb87e('0x32')]){_0x256c52['where']=_['merge'](_0x256c52['where'],{'$or':_[_0xb87e('0x25')](_0x5b1c14,function(_0xdac33){if(_0xdac33[_0xb87e('0x29')]!==_0xb87e('0x33')){var _0xb44952={};_0xb44952[_0xdac33[_0xb87e('0x22')]]={'$like':'%'+_0x555aba[_0xb87e('0x2b')][_0xb87e('0x32')]+'%'};return _0xb44952;}})});}_0x256c52=_[_0xb87e('0x34')]({},_0x256c52,_0x555aba[_0xb87e('0x35')]);var _0x51d295={'where':_0x256c52[_0xb87e('0x36')]};return db[_0xb87e('0x26')]['count'](_0x51d295)[_0xb87e('0x37')](function(_0x510246){_0x2fd83e['count']=_0x510246;if(_0x555aba['query'][_0xb87e('0x38')]){_0x256c52['include']=[{'all':!![]}];}return db[_0xb87e('0x26')][_0xb87e('0x39')](_0x256c52);})['then'](function(_0x1dcccc){_0x2fd83e[_0xb87e('0x3a')]=_0x1dcccc;return _0x2fd83e;})['then'](respondWithFilteredResult(_0x38669d,_0x256c52))[_0xb87e('0x3b')](handleError(_0x38669d,null));};exports[_0xb87e('0x3c')]=function(_0x22dff1,_0x519e2b){var _0x6e2e3c={'raw':!![],'where':{'id':_0x22dff1['params']['id']}},_0x4a5f42={};_0x4a5f42[_0xb87e('0x2a')]=_[_0xb87e('0x2c')](db[_0xb87e('0x26')]['rawAttributes']);_0x4a5f42['query']=_[_0xb87e('0x2c')](_0x22dff1[_0xb87e('0x2b')]);_0x4a5f42[_0xb87e('0x2d')]=_[_0xb87e('0x2e')](_0x4a5f42[_0xb87e('0x2a')],_0x4a5f42[_0xb87e('0x2b')]);_0x6e2e3c[_0xb87e('0x2f')]=_['intersection'](_0x4a5f42['model'],qs[_0xb87e('0x30')](_0x22dff1[_0xb87e('0x2b')][_0xb87e('0x30')]));_0x6e2e3c[_0xb87e('0x2f')]=_0x6e2e3c[_0xb87e('0x2f')][_0xb87e('0x3d')]?_0x6e2e3c[_0xb87e('0x2f')]:_0x4a5f42['model'];if(_0x22dff1['query'][_0xb87e('0x38')]){_0x6e2e3c[_0xb87e('0x3e')]=[{'all':!![]}];}_0x6e2e3c=_[_0xb87e('0x34')]({},_0x6e2e3c,_0x22dff1[_0xb87e('0x35')]);return db[_0xb87e('0x26')][_0xb87e('0x3f')](_0x6e2e3c)['then'](handleEntityNotFound(_0x519e2b,null))[_0xb87e('0x37')](respondWithResult(_0x519e2b,null))[_0xb87e('0x3b')](handleError(_0x519e2b,null));};exports[_0xb87e('0x40')]=function(_0x392db8,_0x29ff23){return db['VoiceDialReport'][_0xb87e('0x40')](_0x392db8[_0xb87e('0x41')],{})[_0xb87e('0x37')](respondWithResult(_0x29ff23,0xc9))['catch'](handleError(_0x29ff23,null));};exports[_0xb87e('0x1e')]=function(_0x55a1b0,_0x335776){if(_0x55a1b0[_0xb87e('0x41')]['id']){delete _0x55a1b0['body']['id'];}return db[_0xb87e('0x26')][_0xb87e('0x3f')]({'where':{'id':_0x55a1b0[_0xb87e('0x42')]['id']}})[_0xb87e('0x37')](handleEntityNotFound(_0x335776,null))[_0xb87e('0x37')](saveUpdates(_0x55a1b0['body'],null))[_0xb87e('0x37')](respondWithResult(_0x335776,null))[_0xb87e('0x3b')](handleError(_0x335776,null));};exports[_0xb87e('0x1f')]=function(_0x3333e1,_0x211a95){return db['VoiceDialReport'][_0xb87e('0x3f')]({'where':{'id':_0x3333e1['params']['id']}})['then'](handleEntityNotFound(_0x211a95,null))[_0xb87e('0x37')](removeEntity(_0x211a95,null))[_0xb87e('0x3b')](handleError(_0x211a95,null));};exports['describe']=function(_0x162c00,_0x4dc8d5){return db['VoiceDialReport']['describe']()[_0xb87e('0x37')](respondWithResult(_0x4dc8d5,null))[_0xb87e('0x3b')](handleError(_0x4dc8d5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb8c8=['bluebird','request-promise','path','rimraf','../../config/environment','./voiceDialReport.attributes','define','VoiceDialReport','lodash','../../config/logger','api','moment'];(function(_0x3480a0,_0x38cd0a){var _0x5f432e=function(_0x30e912){while(--_0x30e912){_0x3480a0['push'](_0x3480a0['shift']());}};_0x5f432e(++_0x38cd0a);}(_0xb8c8,0x11c));var _0x8b8c=function(_0x318b37,_0x527443){_0x318b37=_0x318b37-0x0;var _0x46d297=_0xb8c8[_0x318b37];return _0x46d297;};'use strict';var _=require(_0x8b8c('0x0'));var util=require('util');var logger=require(_0x8b8c('0x1'))(_0x8b8c('0x2'));var moment=require(_0x8b8c('0x3'));var BPromise=require(_0x8b8c('0x4'));var rp=require(_0x8b8c('0x5'));var fs=require('fs');var path=require(_0x8b8c('0x6'));var rimraf=require(_0x8b8c('0x7'));var config=require(_0x8b8c('0x8'));var attributes=require(_0x8b8c('0x9'));module['exports']=function(_0x4078f4,_0x1d4d50){return _0x4078f4[_0x8b8c('0xa')](_0x8b8c('0xb'),attributes,{'tableName':'report_dial','paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb59=['uniqueid','lodash','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./voiceDialReport.attributes','exports','define','report_dial'];(function(_0x7a0d27,_0x166eeb){var _0x5ee426=function(_0x540545){while(--_0x540545){_0x7a0d27['push'](_0x7a0d27['shift']());}};_0x5ee426(++_0x166eeb);}(_0xcb59,0x146));var _0x9cb5=function(_0x19da72,_0x84a38f){_0x19da72=_0x19da72-0x0;var _0x60239e=_0xcb59[_0x19da72];return _0x60239e;};'use strict';var _=require(_0x9cb5('0x0'));var util=require('util');var logger=require(_0x9cb5('0x1'))(_0x9cb5('0x2'));var moment=require(_0x9cb5('0x3'));var BPromise=require(_0x9cb5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9cb5('0x5'));var rimraf=require(_0x9cb5('0x6'));var config=require(_0x9cb5('0x7'));var attributes=require(_0x9cb5('0x8'));module[_0x9cb5('0x9')]=function(_0x431e7a,_0x5a69c7){return _0x431e7a[_0x9cb5('0xa')]('VoiceDialReport',attributes,{'tableName':_0x9cb5('0xb'),'paranoid':![],'indexes':[{'fields':[_0x9cb5('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3395=['error','code','message','result','catch','CreateVoiceDialReport','options','raw','then','update','body','where','attributes','limit','UpdateVoiceDialReport','util','moment','ioredis','../../config/logger','rpc','jayson/promise','request','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x34d3ac,_0x58d3bf){var _0x56ff94=function(_0x61920e){while(--_0x61920e){_0x34d3ac['push'](_0x34d3ac['shift']());}};_0x56ff94(++_0x58d3bf);}(_0x3395,0x127));var _0x5339=function(_0x2de00d,_0x21084f){_0x2de00d=_0x2de00d-0x0;var _0x4f4d8f=_0x3395[_0x2de00d];return _0x4f4d8f;};'use strict';var _=require('lodash');var util=require(_0x5339('0x0'));var moment=require(_0x5339('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5339('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x5339('0x3'))(_0x5339('0x4'));var config=require('../../config/environment');var jayson=require(_0x5339('0x5'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x21e6a4,_0x3b1927,_0x2b558b){return new BPromise(function(_0x459bf0,_0x2c8af8){return client[_0x5339('0x6')](_0x21e6a4,_0x2b558b)['then'](function(_0x2f0fcf){logger[_0x5339('0x7')](_0x5339('0x8'),_0x3b1927,_0x5339('0x9'));logger[_0x5339('0xa')](_0x5339('0xb'),_0x3b1927,'request\x20sent',JSON[_0x5339('0xc')](_0x2f0fcf));if(_0x2f0fcf['error']){if(_0x2f0fcf[_0x5339('0xd')][_0x5339('0xe')]===0x1f4){logger[_0x5339('0xd')](_0x5339('0x8'),_0x3b1927,_0x2f0fcf[_0x5339('0xd')][_0x5339('0xf')]);return _0x2c8af8(_0x2f0fcf[_0x5339('0xd')][_0x5339('0xf')]);}logger[_0x5339('0xd')](_0x5339('0x8'),_0x3b1927,_0x2f0fcf[_0x5339('0xd')][_0x5339('0xf')]);return _0x459bf0(_0x2f0fcf[_0x5339('0xd')]['message']);}else{logger[_0x5339('0x7')](_0x5339('0x8'),_0x3b1927,_0x5339('0x9'));_0x459bf0(_0x2f0fcf[_0x5339('0x10')][_0x5339('0xf')]);}})[_0x5339('0x11')](function(_0x42b3aa){logger[_0x5339('0xd')](_0x5339('0x8'),_0x3b1927,_0x42b3aa);_0x2c8af8(_0x42b3aa);});});}exports[_0x5339('0x12')]=function(_0x56b2a2){var _0x3899eb=this;return new Promise(function(_0x33abc6,_0x42e053){return db['VoiceDialReport']['create'](_0x56b2a2['body'],{'raw':_0x56b2a2['options']?_0x56b2a2[_0x5339('0x13')][_0x5339('0x14')]===undefined?!![]:![]:!![]})[_0x5339('0x15')](function(_0x15bbf2){logger[_0x5339('0x7')](_0x5339('0x12'),_0x56b2a2);logger[_0x5339('0xa')](_0x5339('0x12'),_0x56b2a2,JSON[_0x5339('0xc')](_0x15bbf2));_0x33abc6(_0x15bbf2);})['catch'](function(_0x35d129){logger[_0x5339('0xd')](_0x5339('0x12'),_0x35d129[_0x5339('0xf')],_0x56b2a2);_0x42e053(_0x3899eb['error'](0x1f4,_0x35d129['message']));});});};exports['UpdateVoiceDialReport']=function(_0x1e52ab){var _0x5d4aba=this;return new Promise(function(_0x469f04,_0xdf4c2){return db['VoiceDialReport'][_0x5339('0x16')](_0x1e52ab[_0x5339('0x17')],{'raw':_0x1e52ab[_0x5339('0x13')]?_0x1e52ab[_0x5339('0x13')][_0x5339('0x14')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1e52ab[_0x5339('0x13')]?_0x1e52ab[_0x5339('0x13')][_0x5339('0x18')]||null:null,'attributes':_0x1e52ab[_0x5339('0x13')]?_0x1e52ab[_0x5339('0x13')][_0x5339('0x19')]||null:null,'limit':_0x1e52ab[_0x5339('0x13')]?_0x1e52ab[_0x5339('0x13')][_0x5339('0x1a')]||null:null})['then'](function(_0x1ef5ac){logger[_0x5339('0x7')](_0x5339('0x1b'),_0x1e52ab);logger[_0x5339('0xa')](_0x5339('0x1b'),_0x1e52ab,JSON['stringify'](_0x1ef5ac));_0x469f04(_0x1ef5ac);})[_0x5339('0x11')](function(_0x4de417){logger[_0x5339('0xd')]('UpdateVoiceDialReport',_0x4de417[_0x5339('0xf')],_0x1e52ab);_0xdf4c2(_0x5d4aba[_0x5339('0xd')](0x1f4,_0x4de417[_0x5339('0xf')]));});});};
\ No newline at end of file
+var _0xf2b3=['stringify','UpdateVoiceDialReport','update','attributes','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','VoiceDialReport,\x20%s,\x20%s','debug','request\x20sent','error','code','message','result','catch','CreateVoiceDialReport','VoiceDialReport','create','body','options'];(function(_0x58e049,_0x5eeaef){var _0x271fea=function(_0x5078f9){while(--_0x5078f9){_0x58e049['push'](_0x58e049['shift']());}};_0x271fea(++_0x5eeaef);}(_0xf2b3,0xe4));var _0x3f2b=function(_0x18a4b0,_0x11c42d){_0x18a4b0=_0x18a4b0-0x0;var _0x5de4ef=_0xf2b3[_0x18a4b0];return _0x5de4ef;};'use strict';var _=require(_0x3f2b('0x0'));var util=require(_0x3f2b('0x1'));var moment=require('moment');var BPromise=require(_0x3f2b('0x2'));var rs=require(_0x3f2b('0x3'));var fs=require('fs');var Redis=require(_0x3f2b('0x4'));var db=require(_0x3f2b('0x5'))['db'];var utils=require(_0x3f2b('0x6'));var logger=require(_0x3f2b('0x7'))(_0x3f2b('0x8'));var config=require(_0x3f2b('0x9'));var jayson=require(_0x3f2b('0xa'));var client=jayson[_0x3f2b('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x27f93b,_0x42fa0a,_0x164cf7){return new BPromise(function(_0x3b5910,_0x433f06){return client[_0x3f2b('0xc')](_0x27f93b,_0x164cf7)[_0x3f2b('0xd')](function(_0x4eed5a){logger[_0x3f2b('0xe')](_0x3f2b('0xf'),_0x42fa0a,'request\x20sent');logger[_0x3f2b('0x10')]('VoiceDialReport,\x20%s,\x20%s,\x20%s',_0x42fa0a,_0x3f2b('0x11'),JSON['stringify'](_0x4eed5a));if(_0x4eed5a[_0x3f2b('0x12')]){if(_0x4eed5a[_0x3f2b('0x12')][_0x3f2b('0x13')]===0x1f4){logger[_0x3f2b('0x12')](_0x3f2b('0xf'),_0x42fa0a,_0x4eed5a[_0x3f2b('0x12')][_0x3f2b('0x14')]);return _0x433f06(_0x4eed5a[_0x3f2b('0x12')][_0x3f2b('0x14')]);}logger['error'](_0x3f2b('0xf'),_0x42fa0a,_0x4eed5a['error'][_0x3f2b('0x14')]);return _0x3b5910(_0x4eed5a[_0x3f2b('0x12')][_0x3f2b('0x14')]);}else{logger['info']('VoiceDialReport,\x20%s,\x20%s',_0x42fa0a,_0x3f2b('0x11'));_0x3b5910(_0x4eed5a[_0x3f2b('0x15')][_0x3f2b('0x14')]);}})[_0x3f2b('0x16')](function(_0x178ac9){logger[_0x3f2b('0x12')]('VoiceDialReport,\x20%s,\x20%s',_0x42fa0a,_0x178ac9);_0x433f06(_0x178ac9);});});}exports[_0x3f2b('0x17')]=function(_0x40a504){var _0x937bd5=this;return new Promise(function(_0x1ccbe2,_0x1476b8){return db[_0x3f2b('0x18')][_0x3f2b('0x19')](_0x40a504[_0x3f2b('0x1a')],{'raw':_0x40a504[_0x3f2b('0x1b')]?_0x40a504[_0x3f2b('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x3f2b('0xd')](function(_0x2f5f1c){logger[_0x3f2b('0xe')](_0x3f2b('0x17'),_0x40a504);logger[_0x3f2b('0x10')]('CreateVoiceDialReport',_0x40a504,JSON[_0x3f2b('0x1c')](_0x2f5f1c));_0x1ccbe2(_0x2f5f1c);})[_0x3f2b('0x16')](function(_0x3ec72a){logger[_0x3f2b('0x12')](_0x3f2b('0x17'),_0x3ec72a[_0x3f2b('0x14')],_0x40a504);_0x1476b8(_0x937bd5[_0x3f2b('0x12')](0x1f4,_0x3ec72a['message']));});});};exports[_0x3f2b('0x1d')]=function(_0x4f2d34){var _0x58a5ed=this;return new Promise(function(_0x3555b7,_0x301963){return db[_0x3f2b('0x18')][_0x3f2b('0x1e')](_0x4f2d34['body'],{'raw':_0x4f2d34[_0x3f2b('0x1b')]?_0x4f2d34[_0x3f2b('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4f2d34[_0x3f2b('0x1b')]?_0x4f2d34[_0x3f2b('0x1b')]['where']||null:null,'attributes':_0x4f2d34[_0x3f2b('0x1b')]?_0x4f2d34['options'][_0x3f2b('0x1f')]||null:null,'limit':_0x4f2d34[_0x3f2b('0x1b')]?_0x4f2d34[_0x3f2b('0x1b')]['limit']||null:null})[_0x3f2b('0xd')](function(_0x4e798f){logger['info'](_0x3f2b('0x1d'),_0x4f2d34);logger['debug'](_0x3f2b('0x1d'),_0x4f2d34,JSON[_0x3f2b('0x1c')](_0x4e798f));_0x3555b7(_0x4e798f);})[_0x3f2b('0x16')](function(_0x27158d){logger[_0x3f2b('0x12')](_0x3f2b('0x1d'),_0x27158d[_0x3f2b('0x14')],_0x4f2d34);_0x301963(_0x58a5ed[_0x3f2b('0x12')](0x1f4,_0x27158d[_0x3f2b('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x904f=['util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./voiceExtension.controller','get','isAuthenticated','index','/:id','show','post','create','/:id/applications','addApplications','put','update','destroy','multer'];(function(_0x349199,_0x2f89cc){var _0x1728c5=function(_0x2497e0){while(--_0x2497e0){_0x349199['push'](_0x349199['shift']());}};_0x1728c5(++_0x2f89cc);}(_0x904f,0x14f));var _0xf904=function(_0x39d637,_0x40777f){_0x39d637=_0x39d637-0x0;var _0x26b8d4=_0x904f[_0x39d637];return _0x26b8d4;};'use strict';var multer=require(_0xf904('0x0'));var util=require(_0xf904('0x1'));var path=require('path');var timeout=require(_0xf904('0x2'));var express=require(_0xf904('0x3'));var router=express[_0xf904('0x4')]();var fs_extra=require(_0xf904('0x5'));var auth=require(_0xf904('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xf904('0x7'));var controller=require(_0xf904('0x8'));router[_0xf904('0x9')]('/',auth[_0xf904('0xa')](),controller[_0xf904('0xb')]);router[_0xf904('0x9')](_0xf904('0xc'),auth[_0xf904('0xa')](),controller[_0xf904('0xd')]);router[_0xf904('0xe')]('/',auth['isAuthenticated'](),controller[_0xf904('0xf')]);router[_0xf904('0xe')](_0xf904('0x10'),auth[_0xf904('0xa')](),controller[_0xf904('0x11')]);router[_0xf904('0x12')](_0xf904('0xc'),auth[_0xf904('0xa')](),controller[_0xf904('0x13')]);router['delete'](_0xf904('0xc'),auth[_0xf904('0xa')](),controller[_0xf904('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x882a=['delete','destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceExtension.controller','get','isAuthenticated','index','/:id','show','post','create','/:id/applications','addApplications'];(function(_0x1c9249,_0x18b465){var _0x104200=function(_0x343406){while(--_0x343406){_0x1c9249['push'](_0x1c9249['shift']());}};_0x104200(++_0x18b465);}(_0x882a,0x143));var _0xa882=function(_0x225013,_0x4e421e){_0x225013=_0x225013-0x0;var _0x38d461=_0x882a[_0x225013];return _0x38d461;};'use strict';var multer=require(_0xa882('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xa882('0x1'));var express=require(_0xa882('0x2'));var router=express[_0xa882('0x3')]();var fs_extra=require(_0xa882('0x4'));var auth=require(_0xa882('0x5'));var interaction=require(_0xa882('0x6'));var config=require('../../config/environment');var controller=require(_0xa882('0x7'));router[_0xa882('0x8')]('/',auth[_0xa882('0x9')](),controller[_0xa882('0xa')]);router[_0xa882('0x8')](_0xa882('0xb'),auth[_0xa882('0x9')](),controller[_0xa882('0xc')]);router[_0xa882('0xd')]('/',auth[_0xa882('0x9')](),controller[_0xa882('0xe')]);router['post'](_0xa882('0xf'),auth[_0xa882('0x9')](),controller[_0xa882('0x10')]);router['put'](_0xa882('0xb'),auth[_0xa882('0x9')](),controller['update']);router[_0xa882('0x11')](_0xa882('0xb'),auth[_0xa882('0x9')](),controller[_0xa882('0x12')]);module[_0xa882('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb45=['NoOp','inbound','internal','inbound-fax','outbound-fax','any','*,*,*,*','INTEGER','BOOLEAN','wav','exten','sequelize','compositeIndex','STRING'];(function(_0x16a924,_0x534279){var _0x218fcc=function(_0x4bb243){while(--_0x4bb243){_0x16a924['push'](_0x16a924['shift']());}};_0x218fcc(++_0x534279);}(_0xdb45,0x97));var _0x5db4=function(_0x572618,_0x287468){_0x572618=_0x572618-0x0;var _0x113a44=_0xdb45[_0x572618];return _0x113a44;};'use strict';var Sequelize=require(_0x5db4('0x0'));module['exports']={'context':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x5db4('0x1'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x5db4('0x2')],'allowNull':![],'unique':_0x5db4('0x1')},'priority':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'1','unique':_0x5db4('0x1')},'tag':{'type':Sequelize[_0x5db4('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0x5db4('0x2')],'allowNull':![],'defaultValue':_0x5db4('0x3')},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize['ENUM'](_0x5db4('0x4'),'outbound',_0x5db4('0x5'),_0x5db4('0x6'),_0x5db4('0x7'),'system',_0x5db4('0x8')),'allowNull':![]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x5db4('0x2')],'allowNull':![],'defaultValue':_0x5db4('0x9')},'IntervalId':{'type':Sequelize[_0x5db4('0xa')]},'isApp':{'type':Sequelize[_0x5db4('0xb')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x5db4('0x2')],'defaultValue':null},'callerID':{'type':Sequelize['STRING'],'allowNull':!![]},'record':{'type':Sequelize[_0x5db4('0xb')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x5db4('0xa')]},'recordingFormat':{'type':Sequelize['STRING'],'defaultValue':_0x5db4('0xc')},'answer':{'type':Sequelize[_0x5db4('0xb')],'defaultValue':!![]},'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x3a4d9b){return this['getDataValue'](_0x5db4('0xd'));}},'alias':{'type':Sequelize[_0x5db4('0x2')],'allowNull':!![]}};
\ No newline at end of file
+var _0x7ff5=['outbound-fax','system','*,*,*,*','INTEGER','BOOLEAN','wav','VIRTUAL','getDataValue','exports','STRING','compositeIndex','NoOp','ENUM','internal'];(function(_0x5f3259,_0x271818){var _0x816d85=function(_0x1e1915){while(--_0x1e1915){_0x5f3259['push'](_0x5f3259['shift']());}};_0x816d85(++_0x271818);}(_0x7ff5,0x13c));var _0x57ff=function(_0x4c68bc,_0xab812f){_0x4c68bc=_0x4c68bc-0x0;var _0x547c43=_0x7ff5[_0x4c68bc];return _0x547c43;};'use strict';var Sequelize=require('sequelize');module[_0x57ff('0x0')]={'context':{'type':Sequelize[_0x57ff('0x1')],'allowNull':![],'unique':_0x57ff('0x2'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0x57ff('0x1')],'allowNull':![],'unique':'compositeIndex'},'priority':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'1','unique':_0x57ff('0x2')},'tag':{'type':Sequelize[_0x57ff('0x1')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0x57ff('0x1')],'allowNull':![],'defaultValue':_0x57ff('0x3')},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0x57ff('0x4')]('inbound','outbound',_0x57ff('0x5'),'inbound-fax',_0x57ff('0x6'),_0x57ff('0x7'),'any'),'allowNull':![]},'description':{'type':Sequelize[_0x57ff('0x1')]},'interval':{'type':Sequelize[_0x57ff('0x1')],'allowNull':![],'defaultValue':_0x57ff('0x8')},'IntervalId':{'type':Sequelize[_0x57ff('0x9')]},'isApp':{'type':Sequelize[_0x57ff('0xa')],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0x57ff('0x1')],'defaultValue':null},'callerID':{'type':Sequelize[_0x57ff('0x1')],'allowNull':!![]},'record':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0x57ff('0x9')]},'recordingFormat':{'type':Sequelize[_0x57ff('0x1')],'defaultValue':_0x57ff('0xb')},'answer':{'type':Sequelize[_0x57ff('0xa')],'defaultValue':!![]},'name':{'type':Sequelize[_0x57ff('0xc')],'get':function(_0x73fa){return this[_0x57ff('0xd')]('exten');}},'alias':{'type':Sequelize['STRING'],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x280d=['cutdigits','alias','context','addApplications','findOne','sequelize','transaction','VoiceExtensionId','isApp','log','bulkCreate','cast(priority\x20as\x20unsigned)','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','status','json','offset','undefined','count','limit','set','destroy','then','get','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','value','includes','type','name','end','error','stack','index','VoiceExtension','rawAttributes','fieldName','key','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','options','include','findAll','rows','catch','show','params','find','body','exten','concat','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','update','description','recordingFormat'];(function(_0x5c9b4b,_0x164610){var _0x544467=function(_0x37b5cd){while(--_0x37b5cd){_0x5c9b4b['push'](_0x5c9b4b['shift']());}};_0x544467(++_0x164610);}(_0x280d,0x69));var _0xd280=function(_0x5720c1,_0x43051f){_0x5720c1=_0x5720c1-0x0;var _0x537585=_0x280d[_0x5720c1];return _0x537585;};'use strict';var _=require(_0xd280('0x0'));var Redis=require(_0xd280('0x1'));var qs=require(_0xd280('0x2'));var logger=require(_0xd280('0x3'))(_0xd280('0x4'));var config=require(_0xd280('0x5'));var db=require(_0xd280('0x6'))['db'];config[_0xd280('0x7')]=_['defaults'](config['redis'],{'host':_0xd280('0x8'),'port':0x18eb});var socket=require(_0xd280('0x9'))(new Redis(config['redis']));require('./voiceExtension.socket')[_0xd280('0xa')](socket);function respondWithStatusCode(_0x23e765,_0x1991e9){_0x1991e9=_0x1991e9||0xcc;return function(_0x40bb14){if(_0x40bb14){return _0x23e765[_0xd280('0xb')](_0x1991e9);}return _0x23e765[_0xd280('0xc')](_0x1991e9)['end']();};}function respondWithResult(_0x35e8c1,_0x229e37){_0x229e37=_0x229e37||0xc8;return function(_0xacdf01){if(_0xacdf01){return _0x35e8c1[_0xd280('0xc')](_0x229e37)[_0xd280('0xd')](_0xacdf01);}};}function respondWithFilteredResult(_0x336f3e,_0xedb0fe){return function(_0x23971c){if(_0x23971c){var _0x2d55d9=typeof _0xedb0fe[_0xd280('0xe')]===_0xd280('0xf')&&typeof _0xedb0fe['limit']===_0xd280('0xf');var _0xa79c8f=_0x23971c[_0xd280('0x10')];var _0x348dd0=_0x2d55d9?0x0:_0xedb0fe['offset'];var _0xe3d2b2=_0x2d55d9?_0x23971c[_0xd280('0x10')]:_0xedb0fe[_0xd280('0xe')]+_0xedb0fe[_0xd280('0x11')];var _0x5efc69;if(_0xe3d2b2>=_0xa79c8f){_0xe3d2b2=_0xa79c8f;_0x5efc69=0xc8;}else{_0x5efc69=0xce;}_0x336f3e[_0xd280('0xc')](_0x5efc69);return _0x336f3e[_0xd280('0x12')]('Content-Range',_0x348dd0+'-'+_0xe3d2b2+'/'+_0xa79c8f)[_0xd280('0xd')](_0x23971c);}return null;};}function removeEntity(_0x50e159){return function(_0x4aeb7f){if(_0x4aeb7f){return _0x4aeb7f[_0xd280('0x13')]()[_0xd280('0x14')](function(){var _0xa562ab=_0x4aeb7f[_0xd280('0x15')]({'plain':!![]});var _0x1a0e65=[{'name':_0xd280('0x16'),'value':_0xd280('0x17'),'ignore':![]},{'name':_0xd280('0x18'),'value':_0xd280('0x19'),'ignore':![]},{'name':_0xd280('0x1a'),'value':_0xd280('0x1b'),'ignore':![]}];var _0x366f25=_(_0x1a0e65)[_0xd280('0x1c')](_0xd280('0x1d'))['map']('value')[_0xd280('0x1e')]();if(_[_0xd280('0x1f')](_0x366f25,_0xa562ab[_0xd280('0x20')])){return;}var _0x2a4869=_['find'](_0x1a0e65,[_0xd280('0x1e'),_0xa562ab[_0xd280('0x20')]])[_0xd280('0x21')];return db['UserProfileResource']['destroy']({'where':{'type':_0x2a4869,'resourceId':_0xa562ab['id']}})['then'](function(){return _0x4aeb7f;});})[_0xd280('0x14')](function(){_0x50e159[_0xd280('0xc')](0xcc)[_0xd280('0x22')]();});}};}function handleEntityNotFound(_0x4b9fff){return function(_0x12e8ac){if(!_0x12e8ac){_0x4b9fff[_0xd280('0xb')](0x194);}return _0x12e8ac;};}function handleError(_0x445db8,_0x50de0e){_0x50de0e=_0x50de0e||0x1f4;return function(_0x54cbcc){logger[_0xd280('0x23')](_0x54cbcc[_0xd280('0x24')]);if(_0x54cbcc['name']){delete _0x54cbcc[_0xd280('0x21')];}_0x445db8[_0xd280('0xc')](_0x50de0e)['send'](_0x54cbcc);};}exports[_0xd280('0x25')]=function(_0x77ccc3,_0x38f6fb){var _0x461607={},_0x6e7af0={},_0x15a84a={'count':0x0,'rows':[]};var _0x5ccaf0=_['map'](db[_0xd280('0x26')][_0xd280('0x27')],function(_0x12ff12){return{'name':_0x12ff12[_0xd280('0x28')],'type':_0x12ff12[_0xd280('0x20')][_0xd280('0x29')]};});_0x6e7af0[_0xd280('0x2a')]=_[_0xd280('0x2b')](_0x5ccaf0,_0xd280('0x21'));_0x6e7af0[_0xd280('0x2c')]=_[_0xd280('0x2d')](_0x77ccc3[_0xd280('0x2c')]);_0x6e7af0['filters']=_['intersection'](_0x6e7af0[_0xd280('0x2a')],_0x6e7af0['query']);_0x461607[_0xd280('0x2e')]=_[_0xd280('0x2f')](_0x6e7af0[_0xd280('0x2a')],qs[_0xd280('0x30')](_0x77ccc3['query'][_0xd280('0x30')]));_0x461607[_0xd280('0x2e')]=_0x461607[_0xd280('0x2e')][_0xd280('0x31')]?_0x461607['attributes']:_0x6e7af0['model'];if(!_0x77ccc3[_0xd280('0x2c')][_0xd280('0x32')](_0xd280('0x33'))){_0x461607['limit']=qs[_0xd280('0x11')](_0x77ccc3[_0xd280('0x2c')][_0xd280('0x11')]);_0x461607[_0xd280('0xe')]=qs['offset'](_0x77ccc3[_0xd280('0x2c')][_0xd280('0xe')]);}_0x461607[_0xd280('0x34')]=qs[_0xd280('0x35')](_0x77ccc3[_0xd280('0x2c')]['sort']);_0x461607[_0xd280('0x36')]=qs[_0xd280('0x37')](_[_0xd280('0x38')](_0x77ccc3['query'],_0x6e7af0['filters']),_0x5ccaf0);if(_0x77ccc3[_0xd280('0x2c')][_0xd280('0x1c')]){_0x461607['where']=_[_0xd280('0x39')](_0x461607[_0xd280('0x36')],{'$or':_[_0xd280('0x2b')](_0x5ccaf0,function(_0x369bef){if(_0x369bef['type']!==_0xd280('0x3a')){var _0x51b45c={};_0x51b45c[_0x369bef['name']]={'$like':'%'+_0x77ccc3['query'][_0xd280('0x1c')]+'%'};return _0x51b45c;}})});}_0x461607=_[_0xd280('0x39')]({},_0x461607,_0x77ccc3[_0xd280('0x3b')]);var _0x18140c={'where':_0x461607[_0xd280('0x36')]};return db['VoiceExtension'][_0xd280('0x10')](_0x18140c)[_0xd280('0x14')](function(_0x4b3fb0){_0x15a84a[_0xd280('0x10')]=_0x4b3fb0;if(_0x77ccc3[_0xd280('0x2c')]['includeAll']){_0x461607[_0xd280('0x3c')]=[{'all':!![]}];}return db['VoiceExtension'][_0xd280('0x3d')](_0x461607);})[_0xd280('0x14')](function(_0x49cc85){_0x15a84a[_0xd280('0x3e')]=_0x49cc85;return _0x15a84a;})[_0xd280('0x14')](respondWithFilteredResult(_0x38f6fb,_0x461607))[_0xd280('0x3f')](handleError(_0x38f6fb,null));};exports[_0xd280('0x40')]=function(_0x3f9248,_0x18d5b8){var _0x50f02d={'raw':![],'where':{'id':_0x3f9248[_0xd280('0x41')]['id']}},_0x453a0c={};_0x453a0c[_0xd280('0x2a')]=_['keys'](db[_0xd280('0x26')][_0xd280('0x27')]);_0x453a0c['query']=_[_0xd280('0x2d')](_0x3f9248[_0xd280('0x2c')]);_0x453a0c[_0xd280('0x37')]=_[_0xd280('0x2f')](_0x453a0c[_0xd280('0x2a')],_0x453a0c[_0xd280('0x2c')]);_0x50f02d[_0xd280('0x2e')]=_[_0xd280('0x2f')](_0x453a0c[_0xd280('0x2a')],qs['fields'](_0x3f9248[_0xd280('0x2c')][_0xd280('0x30')]));_0x50f02d[_0xd280('0x2e')]=_0x50f02d[_0xd280('0x2e')][_0xd280('0x31')]?_0x50f02d[_0xd280('0x2e')]:_0x453a0c[_0xd280('0x2a')];if(_0x3f9248[_0xd280('0x2c')]['includeAll']){_0x50f02d[_0xd280('0x3c')]=[{'all':!![]}];}_0x50f02d=_[_0xd280('0x39')]({},_0x50f02d,_0x3f9248[_0xd280('0x3b')]);return db[_0xd280('0x26')][_0xd280('0x42')](_0x50f02d)['then'](handleEntityNotFound(_0x18d5b8,null))[_0xd280('0x14')](respondWithResult(_0x18d5b8,null))[_0xd280('0x3f')](handleError(_0x18d5b8,null));};exports[_0xd280('0x13')]=function(_0x15c571,_0x3a295c){return db['VoiceExtension'][_0xd280('0x42')]({'where':{'id':_0x15c571[_0xd280('0x41')]['id']}})[_0xd280('0x14')](handleEntityNotFound(_0x3a295c,null))['then'](removeEntity(_0x3a295c,null))[_0xd280('0x3f')](handleError(_0x3a295c,null));};exports['create']=function(_0x4b417d,_0x704edc){if(_0x4b417d[_0xd280('0x43')]['type']===_0xd280('0x19')&&!_['startsWith'](_0x4b417d['body']['exten'],'_')){_0x4b417d['body'][_0xd280('0x44')]='_'[_0xd280('0x45')](_0x4b417d[_0xd280('0x43')]['exten']);}return db[_0xd280('0x26')][_0xd280('0x46')](_0x4b417d['body'],{'raw':![]})['then'](function(_0x18c880){var _0x112ffe=_0x4b417d[_0xd280('0x47')][_0xd280('0x15')]({'plain':!![]});if(!_0x112ffe)throw new Error(_0xd280('0x48'));if(_0x112ffe[_0xd280('0x49')]===_0xd280('0x47')){var _0x57df7f=_0x18c880[_0xd280('0x15')]({'plain':!![]});var _0x7eb2d1=[{'name':'InboundRoutes','value':_0xd280('0x17')},{'name':_0xd280('0x18'),'value':_0xd280('0x19')},{'name':_0xd280('0x1a'),'value':_0xd280('0x1b')}];var _0x27d940=_[_0xd280('0x42')](_0x7eb2d1,[_0xd280('0x1e'),_0x57df7f[_0xd280('0x20')]])[_0xd280('0x21')];return db[_0xd280('0x4a')][_0xd280('0x42')]({'where':{'name':_0x27d940,'userProfileId':_0x112ffe[_0xd280('0x4b')]},'raw':!![]})[_0xd280('0x14')](function(_0x30b54d){if(_0x30b54d&&_0x30b54d[_0xd280('0x4c')]===0x0){return db[_0xd280('0x4d')][_0xd280('0x46')]({'name':_0x57df7f['name'],'resourceId':_0x57df7f['id'],'type':_0x30b54d[_0xd280('0x21')],'sectionId':_0x30b54d['id']},{})[_0xd280('0x14')](function(){return _0x18c880;});}else{return _0x18c880;}})[_0xd280('0x3f')](function(_0x1d5a66){logger[_0xd280('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1d5a66);throw _0x1d5a66;});}return _0x18c880;})[_0xd280('0x14')](respondWithResult(_0x704edc,0xc9))[_0xd280('0x3f')](handleError(_0x704edc,null));};exports[_0xd280('0x4e')]=function(_0x58cfc4,_0x51d933){if(_0x58cfc4[_0xd280('0x43')]['id']){delete _0x58cfc4[_0xd280('0x43')]['id'];}return db[_0xd280('0x26')]['find']({'where':{'id':_0x58cfc4['params']['id']}})[_0xd280('0x14')](handleEntityNotFound(_0x51d933,null))[_0xd280('0x14')](function(_0x4d1eda){if(_0x4d1eda){return db['VoiceExtension'][_0xd280('0x4e')](_[_0xd280('0x38')](_0x58cfc4[_0xd280('0x43')],[_0xd280('0x44'),'context',_0xd280('0x4f'),_0xd280('0x50'),_0xd280('0x51'),'mandatoryDisposition',_0xd280('0x52')]),{'where':{'context':_0x4d1eda[_0xd280('0x53')],'exten':_0x4d1eda[_0xd280('0x44')]},'individualHooks':!![]})[_0xd280('0x14')](function(_0x1b61b6){return _0x1b61b6;});}return null;})['then'](respondWithStatusCode(_0x51d933,null))[_0xd280('0x3f')](handleError(_0x51d933,null));};exports[_0xd280('0x54')]=function(_0x995122,_0x3daedc){return db[_0xd280('0x26')][_0xd280('0x55')]({'where':{'id':_0x995122[_0xd280('0x41')]['id']}})[_0xd280('0x14')](function(_0x46f7d5){if(_0x46f7d5){return db[_0xd280('0x56')][_0xd280('0x57')](function(_0x246342){return db[_0xd280('0x26')][_0xd280('0x13')]({'where':{'VoiceExtensionId':_0x995122[_0xd280('0x41')]['id']},'transaction':_0x246342})['then'](function(){var _0x21fd67=_['map'](_0x995122['body'],function(_0x171693){_0x171693[_0xd280('0x58')]=_0x995122['params']['id'];_0x171693[_0xd280('0x59')]=!![];return _0x171693;});return _0x46f7d5['createRouting'](_0x21fd67);})[_0xd280('0x14')](function(_0xb30042){console[_0xd280('0x5a')]('LOG\x20~\x20.then\x20~\x20routing',_0xb30042);return db[_0xd280('0x26')][_0xd280('0x5b')](_0xb30042,{'transaction':_0x246342});});})[_0xd280('0x14')](function(){return db[_0xd280('0x26')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x995122['params']['id']},'order':_0xd280('0x5c')});});}})[_0xd280('0x14')](respondWithResult(_0x3daedc,null))[_0xd280('0x3f')](handleError(_0x3daedc,null));};
\ No newline at end of file
+var _0x839c=['json','apply','save','then','destroy','get','InboundRoutes','InternalRoutes','internal','filter','ignore','map','value','includes','type','name','error','stack','send','VoiceExtension','rawAttributes','fieldName','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','merge','where','VIRTUAL','options','include','findAll','catch','show','params','find','create','body','outbound','startsWith','exten','user','role','inbound','OutboundRoutes','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','recordingFormat','mandatoryDisposition','alias','context','addApplications','findOne','sequelize','VoiceExtensionId','rewriteDial','toLowerCase','true','createRouting','bulkCreate','findAndCountAll','cast(priority\x20as\x20unsigned)','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range'];(function(_0x5c51e5,_0x390c97){var _0x1cf1c9=function(_0x143b3d){while(--_0x143b3d){_0x5c51e5['push'](_0x5c51e5['shift']());}};_0x1cf1c9(++_0x390c97);}(_0x839c,0x132));var _0xc839=function(_0xb093,_0x5403c4){_0xb093=_0xb093-0x0;var _0x516bac=_0x839c[_0xb093];return _0x516bac;};'use strict';var emlformat=require(_0xc839('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc839('0x1'));var jsonpatch=require(_0xc839('0x2'));var rp=require(_0xc839('0x3'));var moment=require(_0xc839('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc839('0x5'));var util=require(_0xc839('0x6'));var path=require(_0xc839('0x7'));var sox=require(_0xc839('0x8'));var csv=require('to-csv');var ejs=require(_0xc839('0x9'));var fs=require('fs');var fs_extra=require(_0xc839('0xa'));var _=require(_0xc839('0xb'));var squel=require('squel');var crypto=require(_0xc839('0xc'));var jsforce=require(_0xc839('0xd'));var deskjs=require(_0xc839('0xe'));var toCsv=require(_0xc839('0xf'));var querystring=require(_0xc839('0x10'));var Papa=require('papaparse');var Redis=require(_0xc839('0x11'));var authService=require(_0xc839('0x12'));var qs=require(_0xc839('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc839('0x14'));var logger=require(_0xc839('0x15'))(_0xc839('0x16'));var utils=require('../../config/utils');var config=require(_0xc839('0x17'));var licenseUtil=require(_0xc839('0x18'));var db=require(_0xc839('0x19'))['db'];config['redis']=_['defaults'](config[_0xc839('0x1a')],{'host':_0xc839('0x1b'),'port':0x18eb});var socket=require(_0xc839('0x1c'))(new Redis(config[_0xc839('0x1a')]));require('./voiceExtension.socket')[_0xc839('0x1d')](socket);function respondWithStatusCode(_0x431058,_0x58c92d){_0x58c92d=_0x58c92d||0xcc;return function(_0x27ab00){if(_0x27ab00){return _0x431058[_0xc839('0x1e')](_0x58c92d);}return _0x431058['status'](_0x58c92d)[_0xc839('0x1f')]();};}function respondWithResult(_0x47f807,_0x45bd22){_0x45bd22=_0x45bd22||0xc8;return function(_0x39b925){if(_0x39b925){return _0x47f807[_0xc839('0x20')](_0x45bd22)['json'](_0x39b925);}};}function respondWithFilteredResult(_0x3c9b8e,_0x109c36){return function(_0x3d7477){if(_0x3d7477){var _0x4ff0e2=typeof _0x109c36[_0xc839('0x21')]==='undefined'&&typeof _0x109c36['limit']===_0xc839('0x22');var _0x42a409=_0x3d7477[_0xc839('0x23')];var _0x19c9fd=_0x4ff0e2?0x0:_0x109c36[_0xc839('0x21')];var _0x4d37c2=_0x4ff0e2?_0x3d7477[_0xc839('0x23')]:_0x109c36[_0xc839('0x21')]+_0x109c36[_0xc839('0x24')];var _0x6f0907;if(_0x4d37c2>=_0x42a409){_0x4d37c2=_0x42a409;_0x6f0907=0xc8;}else{_0x6f0907=0xce;}_0x3c9b8e[_0xc839('0x20')](_0x6f0907);return _0x3c9b8e[_0xc839('0x25')](_0xc839('0x26'),_0x19c9fd+'-'+_0x4d37c2+'/'+_0x42a409)[_0xc839('0x27')](_0x3d7477);}return null;};}function patchUpdates(_0x23379a){return function(_0x1b3ece){try{jsonpatch[_0xc839('0x28')](_0x1b3ece,_0x23379a,!![]);}catch(_0x22ff53){return BPromise['reject'](_0x22ff53);}return _0x1b3ece[_0xc839('0x29')]();};}function saveUpdates(_0x1e3254,_0x544624){return function(_0xf8abb9){if(_0xf8abb9){return _0xf8abb9['update'](_0x1e3254)[_0xc839('0x2a')](function(_0x56ad9b){return _0x56ad9b;});}return null;};}function removeEntity(_0x895389,_0x3efacf){return function(_0x581fb5){if(_0x581fb5){return _0x581fb5[_0xc839('0x2b')]()['then'](function(){var _0x4ca602=_0x581fb5[_0xc839('0x2c')]({'plain':!![]});var _0x523feb=[{'name':_0xc839('0x2d'),'value':'inbound','ignore':![]},{'name':'OutboundRoutes','value':'outbound','ignore':![]},{'name':_0xc839('0x2e'),'value':_0xc839('0x2f'),'ignore':![]}];var _0x148923=_(_0x523feb)[_0xc839('0x30')](_0xc839('0x31'))[_0xc839('0x32')]('value')[_0xc839('0x33')]();if(_[_0xc839('0x34')](_0x148923,_0x4ca602[_0xc839('0x35')])){return;}var _0x1d7b07=_['find'](_0x523feb,[_0xc839('0x33'),_0x4ca602[_0xc839('0x35')]])[_0xc839('0x36')];return db['UserProfileResource'][_0xc839('0x2b')]({'where':{'type':_0x1d7b07,'resourceId':_0x4ca602['id']}})[_0xc839('0x2a')](function(){return _0x581fb5;});})[_0xc839('0x2a')](function(){_0x895389['status'](0xcc)[_0xc839('0x1f')]();});}};}function handleEntityNotFound(_0x4ee93c,_0x5eed0d){return function(_0x11ce14){if(!_0x11ce14){_0x4ee93c[_0xc839('0x1e')](0x194);}return _0x11ce14;};}function handleError(_0x5f3f8c,_0x65808b){_0x65808b=_0x65808b||0x1f4;return function(_0x3d7a08){logger[_0xc839('0x37')](_0x3d7a08[_0xc839('0x38')]);if(_0x3d7a08[_0xc839('0x36')]){delete _0x3d7a08[_0xc839('0x36')];}_0x5f3f8c[_0xc839('0x20')](_0x65808b)[_0xc839('0x39')](_0x3d7a08);};}exports['index']=function(_0x43ba5c,_0x30856a){var _0x17a542={},_0xf7fc82={},_0x10f465={'count':0x0,'rows':[]};var _0x178084=_['map'](db[_0xc839('0x3a')][_0xc839('0x3b')],function(_0x543a75){return{'name':_0x543a75[_0xc839('0x3c')],'type':_0x543a75[_0xc839('0x35')][_0xc839('0x3d')]};});_0xf7fc82['model']=_[_0xc839('0x32')](_0x178084,_0xc839('0x36'));_0xf7fc82[_0xc839('0x3e')]=_[_0xc839('0x3f')](_0x43ba5c[_0xc839('0x3e')]);_0xf7fc82['filters']=_[_0xc839('0x40')](_0xf7fc82[_0xc839('0x41')],_0xf7fc82[_0xc839('0x3e')]);_0x17a542[_0xc839('0x42')]=_['intersection'](_0xf7fc82[_0xc839('0x41')],qs[_0xc839('0x43')](_0x43ba5c[_0xc839('0x3e')][_0xc839('0x43')]));_0x17a542[_0xc839('0x42')]=_0x17a542['attributes'][_0xc839('0x44')]?_0x17a542[_0xc839('0x42')]:_0xf7fc82['model'];if(!_0x43ba5c[_0xc839('0x3e')][_0xc839('0x45')](_0xc839('0x46'))){_0x17a542[_0xc839('0x24')]=qs[_0xc839('0x24')](_0x43ba5c[_0xc839('0x3e')][_0xc839('0x24')]);_0x17a542['offset']=qs['offset'](_0x43ba5c[_0xc839('0x3e')][_0xc839('0x21')]);}_0x17a542[_0xc839('0x47')]=qs[_0xc839('0x48')](_0x43ba5c[_0xc839('0x3e')][_0xc839('0x48')]);_0x17a542['where']=qs[_0xc839('0x49')](_[_0xc839('0x4a')](_0x43ba5c[_0xc839('0x3e')],_0xf7fc82[_0xc839('0x49')]),_0x178084);if(_0x43ba5c['query'][_0xc839('0x30')]){_0x17a542['where']=_[_0xc839('0x4b')](_0x17a542[_0xc839('0x4c')],{'$or':_[_0xc839('0x32')](_0x178084,function(_0x35a5f7){if(_0x35a5f7['type']!==_0xc839('0x4d')){var _0x7d0966={};_0x7d0966[_0x35a5f7[_0xc839('0x36')]]={'$like':'%'+_0x43ba5c[_0xc839('0x3e')][_0xc839('0x30')]+'%'};return _0x7d0966;}})});}_0x17a542=_[_0xc839('0x4b')]({},_0x17a542,_0x43ba5c[_0xc839('0x4e')]);var _0xb4ff8a={'where':_0x17a542[_0xc839('0x4c')]};return db['VoiceExtension'][_0xc839('0x23')](_0xb4ff8a)[_0xc839('0x2a')](function(_0x248296){_0x10f465[_0xc839('0x23')]=_0x248296;if(_0x43ba5c[_0xc839('0x3e')]['includeAll']){_0x17a542[_0xc839('0x4f')]=[{'all':!![]}];}return db['VoiceExtension'][_0xc839('0x50')](_0x17a542);})[_0xc839('0x2a')](function(_0x437a7a){_0x10f465['rows']=_0x437a7a;return _0x10f465;})[_0xc839('0x2a')](respondWithFilteredResult(_0x30856a,_0x17a542))[_0xc839('0x51')](handleError(_0x30856a,null));};exports[_0xc839('0x52')]=function(_0x149cba,_0x330ba2){var _0x559229={'raw':![],'where':{'id':_0x149cba[_0xc839('0x53')]['id']}},_0x458a1f={};_0x458a1f[_0xc839('0x41')]=_[_0xc839('0x3f')](db[_0xc839('0x3a')]['rawAttributes']);_0x458a1f[_0xc839('0x3e')]=_[_0xc839('0x3f')](_0x149cba[_0xc839('0x3e')]);_0x458a1f[_0xc839('0x49')]=_[_0xc839('0x40')](_0x458a1f['model'],_0x458a1f[_0xc839('0x3e')]);_0x559229[_0xc839('0x42')]=_[_0xc839('0x40')](_0x458a1f[_0xc839('0x41')],qs[_0xc839('0x43')](_0x149cba[_0xc839('0x3e')][_0xc839('0x43')]));_0x559229[_0xc839('0x42')]=_0x559229[_0xc839('0x42')][_0xc839('0x44')]?_0x559229[_0xc839('0x42')]:_0x458a1f[_0xc839('0x41')];if(_0x149cba[_0xc839('0x3e')]['includeAll']){_0x559229[_0xc839('0x4f')]=[{'all':!![]}];}_0x559229=_[_0xc839('0x4b')]({},_0x559229,_0x149cba['options']);return db['VoiceExtension']['find'](_0x559229)[_0xc839('0x2a')](handleEntityNotFound(_0x330ba2,null))[_0xc839('0x2a')](respondWithResult(_0x330ba2,null))[_0xc839('0x51')](handleError(_0x330ba2,null));};exports['destroy']=function(_0x5c49e4,_0xe3d00d){return db[_0xc839('0x3a')][_0xc839('0x54')]({'where':{'id':_0x5c49e4['params']['id']}})[_0xc839('0x2a')](handleEntityNotFound(_0xe3d00d,null))['then'](removeEntity(_0xe3d00d,null))[_0xc839('0x51')](handleError(_0xe3d00d,null));};exports[_0xc839('0x55')]=function(_0x36af76,_0x5c0cf5){if(_0x36af76[_0xc839('0x56')][_0xc839('0x35')]===_0xc839('0x57')&&!_[_0xc839('0x58')](_0x36af76[_0xc839('0x56')][_0xc839('0x59')],'_')){_0x36af76['body']['exten']='_'['concat'](_0x36af76[_0xc839('0x56')]['exten']);}return db[_0xc839('0x3a')]['create'](_0x36af76[_0xc839('0x56')],{'raw':![]})[_0xc839('0x2a')](function(_0x431f03){var _0x461ba0=_0x36af76[_0xc839('0x5a')][_0xc839('0x2c')]({'plain':!![]});if(!_0x461ba0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x461ba0[_0xc839('0x5b')]===_0xc839('0x5a')){var _0x2f5888=_0x431f03[_0xc839('0x2c')]({'plain':!![]});var _0x541fd0=[{'name':'InboundRoutes','value':_0xc839('0x5c')},{'name':_0xc839('0x5d'),'value':_0xc839('0x57')},{'name':'InternalRoutes','value':'internal'}];var _0x34de96=_['find'](_0x541fd0,['value',_0x2f5888[_0xc839('0x35')]])[_0xc839('0x36')];return db[_0xc839('0x5e')][_0xc839('0x54')]({'where':{'name':_0x34de96,'userProfileId':_0x461ba0[_0xc839('0x5f')]},'raw':!![]})[_0xc839('0x2a')](function(_0x2fb5d7){if(_0x2fb5d7&&_0x2fb5d7[_0xc839('0x60')]===0x0){return db[_0xc839('0x61')][_0xc839('0x55')]({'name':_0x2f5888[_0xc839('0x36')],'resourceId':_0x2f5888['id'],'type':_0x2fb5d7[_0xc839('0x36')],'sectionId':_0x2fb5d7['id']},{})[_0xc839('0x2a')](function(){return _0x431f03;});}else{return _0x431f03;}})[_0xc839('0x51')](function(_0x3feb4c){logger['error'](_0xc839('0x62'),_0x3feb4c);throw _0x3feb4c;});}return _0x431f03;})[_0xc839('0x2a')](respondWithResult(_0x5c0cf5,0xc9))[_0xc839('0x51')](handleError(_0x5c0cf5,null));};exports[_0xc839('0x63')]=function(_0x3f61ca,_0x19874f){if(_0x3f61ca[_0xc839('0x56')]['id']){delete _0x3f61ca[_0xc839('0x56')]['id'];}return db['VoiceExtension']['find']({'where':{'id':_0x3f61ca['params']['id']}})[_0xc839('0x2a')](handleEntityNotFound(_0x19874f,null))['then'](function(_0x13a268){if(_0x13a268){return db[_0xc839('0x3a')]['update'](_[_0xc839('0x4a')](_0x3f61ca['body'],[_0xc839('0x59'),'context','description',_0xc839('0x64'),'cutdigits',_0xc839('0x65'),_0xc839('0x66')]),{'where':{'context':_0x13a268[_0xc839('0x67')],'exten':_0x13a268[_0xc839('0x59')]},'individualHooks':!![]})[_0xc839('0x2a')](function(_0x25ab7e){return _0x25ab7e;});}return null;})['then'](respondWithStatusCode(_0x19874f,null))[_0xc839('0x51')](handleError(_0x19874f,null));};exports[_0xc839('0x68')]=function(_0x35b7a1,_0xb50fa7){return db[_0xc839('0x3a')][_0xc839('0x69')]({'where':{'id':_0x35b7a1['params']['id']}})['then'](function(_0x16b914){if(_0x16b914){return db[_0xc839('0x6a')]['transaction'](function(_0x2929f7){return db[_0xc839('0x3a')]['destroy']({'where':{'VoiceExtensionId':_0x35b7a1[_0xc839('0x53')]['id']},'transaction':_0x2929f7})[_0xc839('0x2a')](function(){var _0x16718c=_['map'](_0x35b7a1[_0xc839('0x56')],function(_0xbda81e){_0xbda81e[_0xc839('0x6b')]=_0x35b7a1['params']['id'];_0xbda81e['isApp']=!![];return _0xbda81e;});var _0x10c485=_0x35b7a1[_0xc839('0x3e')][_0xc839('0x6c')]&&_0x35b7a1['query'][_0xc839('0x6c')][_0xc839('0x6d')]()===_0xc839('0x6e')?!![]:![];return _0x16b914[_0xc839('0x6f')](_0x16718c,_0x10c485);})[_0xc839('0x2a')](function(_0x44a54d){return db['VoiceExtension'][_0xc839('0x70')](_0x44a54d,{'transaction':_0x2929f7});});})[_0xc839('0x2a')](function(){return db['VoiceExtension'][_0xc839('0x71')]({'where':{'isApp':!![],'VoiceExtensionId':_0x35b7a1['params']['id']},'order':_0xc839('0x72')});});}})[_0xc839('0x2a')](respondWithResult(_0xb50fa7,null))[_0xc839('0x51')](handleError(_0xb50fa7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb6d=['update','emit','hasOwnProperty','exports','../../mysqldb','VoiceExtension','setMaxListeners'];(function(_0x5c934b,_0x44801a){var _0x4b1087=function(_0x2d4ada){while(--_0x2d4ada){_0x5c934b['push'](_0x5c934b['shift']());}};_0x4b1087(++_0x44801a);}(_0xcb6d,0x131));var _0xdcb6=function(_0x1cf3b4,_0x210d81){_0x1cf3b4=_0x1cf3b4-0x0;var _0x3d5a37=_0xcb6d[_0x1cf3b4];return _0x3d5a37;};'use strict';var EventEmitter=require('events');var VoiceExtension=require(_0xdcb6('0x0'))['db'][_0xdcb6('0x1')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0xdcb6('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xdcb6('0x3'),'afterDestroy':'remove'};function emitEvent(_0x41ac66){return function(_0x23ce7e,_0x401ef1,_0x1ab930){VoiceExtensionEvents[_0xdcb6('0x4')](_0x41ac66+':'+_0x23ce7e['id'],_0x23ce7e);VoiceExtensionEvents[_0xdcb6('0x4')](_0x41ac66,_0x23ce7e);_0x1ab930(null);};}for(var e in events){if(events[_0xdcb6('0x5')](e)){var event=events[e];VoiceExtension['hook'](e,emitEvent(event));}}module[_0xdcb6('0x6')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0xf849=['remove','emit','exports','events','VoiceExtension','setMaxListeners','save','update'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf849,0x1eb));var _0x9f84=function(_0x37e8e8,_0x1be63e){_0x37e8e8=_0x37e8e8-0x0;var _0x2c3c9e=_0xf849[_0x37e8e8];return _0x2c3c9e;};'use strict';var EventEmitter=require(_0x9f84('0x0'));var VoiceExtension=require('../../mysqldb')['db'][_0x9f84('0x1')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0x9f84('0x2')](0x0);var events={'afterCreate':_0x9f84('0x3'),'afterUpdate':_0x9f84('0x4'),'afterDestroy':_0x9f84('0x5')};function emitEvent(_0x24143e){return function(_0x510e9a,_0x2b7269,_0x4198e2){VoiceExtensionEvents[_0x9f84('0x6')](_0x24143e+':'+_0x510e9a['id'],_0x510e9a);VoiceExtensionEvents['emit'](_0x24143e,_0x510e9a);_0x4198e2(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceExtension['hook'](e,emitEvent(event));}}module[_0x9f84('0x7')]=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9917=['catch','define','VoiceExtension','voice_extensions','get','lodash','exports','type','Set','CDR(type)=','context','alias','NoOp','No\x20alias\x20set','inbound','push','CDR(routeid)=','exten','XCALLY-MOTION-ANSWER=0','MONITOR_OPTIONS=ab','outbound','CDR(routeAlias)=','cutdigits','${EXTEN}','ExecIf','CDR(prefix)=noprefix','XCALLY-MOTION-PROGRESS=0','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','trunk','timeout','url','split','length','name','param','phone','prefix','${EXTEN:','SIP','join','options','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','IntervalId','then','intervals','map','toLowerCase','hasOwnProperty','tag','CDR(tag)=','callerID','NoOp(No\x20number\x20available)','answer','queue','playback','includes','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','appdata','priority','concat','last'];(function(_0xd59133,_0x574a6b){var _0x541147=function(_0x3b885c){while(--_0x3b885c){_0xd59133['push'](_0xd59133['shift']());}};_0x541147(++_0x574a6b);}(_0x9917,0xe6));var _0x7991=function(_0x495590,_0x416ed8){_0x495590=_0x495590-0x0;var _0x4985d0=_0x9917[_0x495590];return _0x4985d0;};'use strict';var _=require(_0x7991('0x0'));var attributes=require('./voiceExtension.attributes');module[_0x7991('0x1')]=function(_0x476027){var _0x641973=_0x476027['models'];function _0x41ee5c(_0x2d2a2a){var _0x37462c=0x2;var _0x1b44c1=[{'type':_0x2d2a2a[_0x7991('0x2')],'app':_0x7991('0x3'),'appdata':_0x7991('0x4')+_0x2d2a2a[_0x7991('0x2')],'context':_0x2d2a2a[_0x7991('0x5')],'exten':_0x2d2a2a['exten'],'priority':_0x37462c++,'VoiceExtensionId':_0x2d2a2a['id']},{'type':_0x2d2a2a[_0x7991('0x2')],'app':_0x2d2a2a[_0x7991('0x6')]?'Set':_0x7991('0x7'),'appdata':_0x2d2a2a[_0x7991('0x6')]?'CDR(routeAlias)='+_0x2d2a2a[_0x7991('0x6')]:_0x7991('0x8'),'context':_0x2d2a2a[_0x7991('0x5')],'exten':_0x2d2a2a['exten'],'priority':_0x37462c++,'VoiceExtensionId':_0x2d2a2a['id']}];if(_0x2d2a2a[_0x7991('0x2')]===_0x7991('0x9')){_0x1b44c1[_0x7991('0xa')]({'type':'inbound','app':_0x7991('0x3'),'appdata':_0x7991('0xb')+_0x2d2a2a['id'],'context':_0x2d2a2a[_0x7991('0x5')],'exten':_0x2d2a2a[_0x7991('0xc')],'priority':_0x37462c++,'VoiceExtensionId':_0x2d2a2a['id']});}_0x1b44c1[_0x7991('0xa')]({'type':_0x2d2a2a[_0x7991('0x2')],'app':_0x7991('0x3'),'appdata':_0x7991('0xd'),'context':_0x2d2a2a[_0x7991('0x5')],'exten':_0x2d2a2a[_0x7991('0xc')],'priority':_0x37462c++,'VoiceExtensionId':_0x2d2a2a['id']},{'type':_0x2d2a2a['type'],'app':_0x7991('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x2d2a2a[_0x7991('0x5')],'exten':_0x2d2a2a[_0x7991('0xc')],'priority':_0x37462c++,'VoiceExtensionId':_0x2d2a2a['id']},{'type':_0x2d2a2a['type'],'app':'Set','appdata':_0x7991('0xe'),'context':_0x2d2a2a[_0x7991('0x5')],'exten':_0x2d2a2a[_0x7991('0xc')],'priority':_0x37462c++,'VoiceExtensionId':_0x2d2a2a['id']});return _0x1b44c1;}function _0x1aa645(_0x199eab){var _0x488a96=0x2;var _0x320373=[{'type':'outbound','app':'Set','appdata':'CDR(type)=outbound','context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x199eab[_0x7991('0x6')]?'Set':'NoOp','appdata':_0x199eab[_0x7991('0x6')]?_0x7991('0x10')+_0x199eab[_0x7991('0x6')]:_0x7991('0x8'),'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':'CDR(destination)='+(_0x199eab[_0x7991('0x11')]?'${EXTEN:'+_0x199eab['cutdigits']+'}':_0x7991('0x12')),'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':_0x7991('0xb')+_0x199eab['id'],'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x13'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x488a96+0x2)+'):Goto('+(_0x488a96+0x1)+')','context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab['exten'],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':'outbound','app':_0x7991('0x3'),'appdata':_0x199eab['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0x199eab[_0x7991('0x11')]+'}':_0x7991('0x14'),'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab['exten'],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':_0x7991('0xd'),'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':_0x7991('0x15'),'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':_0x7991('0xe'),'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab['exten'],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':'outboundrouteid='+_0x199eab['id'],'context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']}];if(_0x199eab['hasOwnProperty'](_0x7991('0x16'))&&_0x199eab['recordingFormat']!==_0x7991('0x17')){_0x320373[_0x7991('0xa')]({'type':'outbound','app':_0x7991('0x3'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']},{'type':_0x7991('0xf'),'app':_0x7991('0x3'),'appdata':_0x7991('0x18')+_0x199eab[_0x7991('0x16')]||'wav','context':_0x199eab[_0x7991('0x5')],'exten':_0x199eab[_0x7991('0xc')],'priority':_0x488a96++,'VoiceExtensionId':_0x199eab['id']});}return _0x320373;}function _0x5a6656(_0x54e62e,_0x44b4e1){var _0x164dde=[{'name':_0x7991('0x19'),'param':0x0},{'name':_0x7991('0x1a'),'param':0x1},{'name':'options','param':0x2},{'name':_0x7991('0x1b'),'param':0x3}];var _0x20a090={};var _0x41c14e=_0x44b4e1[_0x7991('0x1c')](',');var _0x3e0dbb=[];for(var _0x1aaaf0=0x0;_0x1aaaf0<_0x164dde[_0x7991('0x1d')];_0x1aaaf0++){switch(_0x164dde[_0x1aaaf0][_0x7991('0x1e')]){case _0x7991('0x19'):_0x20a090[_0x7991('0x19')]=_0x41c14e[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]][_0x7991('0x1c')]('/')[0x1];_0x20a090[_0x7991('0x20')]=_0x41c14e[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]][_0x7991('0x1c')]('/')[0x2];_0x20a090[_0x7991('0x21')]=_0x20a090[_0x7991('0x20')]?_0x20a090[_0x7991('0x20')][_0x7991('0x1c')]('$')[0x0]:undefined;_0x20a090[_0x7991('0x20')]=_0x54e62e[_0x7991('0x11')]?(_0x20a090[_0x7991('0x21')]||'')+_0x7991('0x22')+_0x54e62e[_0x7991('0x11')]+'}':(_0x20a090[_0x7991('0x21')]||'')+_0x7991('0x12');_0x3e0dbb[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]]=[_0x7991('0x23'),_0x20a090['trunk'],_0x20a090[_0x7991('0x20')]][_0x7991('0x24')]('/');break;case _0x7991('0x25'):_0x20a090[_0x7991('0x25')]=_0x41c14e[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]];if(_0x54e62e['recordingFormat']!==_0x7991('0x17')){if(_0x20a090[_0x7991('0x25')]['indexOf'](_0x7991('0x26'))<0x0){_0x20a090['options']+=_0x7991('0x26');}}else{_0x20a090[_0x7991('0x25')]=_0x20a090['options'][_0x7991('0x27')](_0x7991('0x26'),'');}_0x3e0dbb[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]]=_0x20a090[_0x7991('0x25')];break;default:_0x3e0dbb[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]]=_0x41c14e[_0x164dde[_0x1aaaf0][_0x7991('0x1f')]];}}return _0x3e0dbb[_0x7991('0x24')](',');}function _0x45f239(_0x1bc8b5,_0x59c6ee,_0x10dc38){return new Promise(function(_0x425b66,_0x58e2e7){var _0x22fa85=[];if(_[_0x7991('0x28')](_0x59c6ee))return _0x425b66(_0x22fa85);_0x641973[_0x7991('0x29')][_0x7991('0x2a')]({'attributes':['id',_0x7991('0x2b'),_0x7991('0x2c')],'raw':!![]})[_0x7991('0x2d')](function(_0x2943e4){for(var _0x28ff62=0x0,_0xd342d6=0x0;_0x28ff62<_0x59c6ee[_0x7991('0x1d')];_0x28ff62++,_0xd342d6=0x0){var _0x387898=_0x59c6ee[_0x28ff62];var _0xab8950=[];var _0x19d00c=[];delete _0x387898['id'];if(_0x387898[_0x7991('0x2b')]!=='*,*,*,*'){_0x387898['intervals']=[_0x387898[_0x7991('0x2b')]];}else{_0x387898[_0x7991('0x2e')]=_0x387898[_0x7991('0x2c')]?_[_0x7991('0x2f')](_['filter'](_0x2943e4,{'IntervalId':_0x387898['IntervalId']}),'interval'):[];}_0x387898['context']=_0x1bc8b5['context'];_0x387898[_0x7991('0xc')]=_0x1bc8b5['exten'];if(_0x387898[_0x7991('0x2')])_0x387898[_0x7991('0x2')]=_0x387898[_0x7991('0x2')][_0x7991('0x30')]();if(_0x1bc8b5[_0x7991('0x2')]==='outbound'){if(_0x387898[_0x7991('0x31')](_0x7991('0x32'))&&_0x387898[_0x7991('0x32')]&&_0x387898['tag']!=='--'){_0xab8950['push']({'type':_0x387898[_0x7991('0x2')][_0x7991('0x30')](),'app':_0x7991('0x3'),'appdata':_0x7991('0x33')+_0x387898['tag'],'context':_0x1bc8b5['context'],'exten':_0x1bc8b5[_0x7991('0xc')],'priority':_0x387898[_0x7991('0x2e')][_0x7991('0x1d')]+_0x10dc38+_0xd342d6++,'VoiceExtensionId':_0x1bc8b5['id']});}_0xab8950[_0x7991('0xa')]({'type':_0x387898[_0x7991('0x2')]['toLowerCase'](),'app':'ExecIf','appdata':'$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):'+(_0x387898[_0x7991('0x34')]?'Set(CALLERID(all)='+_0x387898[_0x7991('0x34')]+')':_0x7991('0x35')),'context':_0x1bc8b5[_0x7991('0x5')],'exten':_0x1bc8b5['exten'],'priority':_0x387898[_0x7991('0x2e')][_0x7991('0x1d')]+_0x10dc38+_0xd342d6++,'VoiceExtensionId':_0x1bc8b5['id']});}else{if(_0x387898[_0x7991('0x31')](_0x7991('0x36'))){if([_0x7991('0x37'),_0x7991('0x38')][_0x7991('0x39')](_0x387898['app'][_0x7991('0x30')]())&&_0x387898[_0x7991('0x3a')]!==_0x7991('0x3b')){if(_0x387898['answer']){_0xab8950[_0x7991('0xa')]({'type':_0x387898[_0x7991('0x2')][_0x7991('0x30')](),'app':'ExecIf','appdata':_0x7991('0x3c'),'context':_0x1bc8b5[_0x7991('0x5')],'exten':_0x1bc8b5['exten'],'priority':_0x387898[_0x7991('0x2e')]['length']+_0x10dc38+_0xd342d6++,'VoiceExtensionId':_0x1bc8b5['id']});_0xab8950['push']({'type':_0x387898[_0x7991('0x2')][_0x7991('0x30')](),'app':'Set','appdata':_0x7991('0x3d'),'context':_0x1bc8b5[_0x7991('0x5')],'exten':_0x1bc8b5[_0x7991('0xc')],'priority':_0x387898[_0x7991('0x2e')][_0x7991('0x1d')]+_0x10dc38+_0xd342d6++,'VoiceExtensionId':_0x1bc8b5['id']});}else{_0xab8950[_0x7991('0xa')]({'type':_0x387898[_0x7991('0x2')][_0x7991('0x30')](),'app':_0x7991('0x13'),'appdata':_0x7991('0x3e'),'context':_0x1bc8b5['context'],'exten':_0x1bc8b5[_0x7991('0xc')],'priority':_0x387898['intervals'][_0x7991('0x1d')]+_0x10dc38+_0xd342d6++,'VoiceExtensionId':_0x1bc8b5['id']});_0xab8950[_0x7991('0xa')]({'type':_0x387898[_0x7991('0x2')][_0x7991('0x30')](),'app':_0x7991('0x3'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x1bc8b5[_0x7991('0x5')],'exten':_0x1bc8b5[_0x7991('0xc')],'priority':_0x387898[_0x7991('0x2e')][_0x7991('0x1d')]+_0x10dc38+_0xd342d6++,'VoiceExtensionId':_0x1bc8b5['id']});}}}}for(var _0x3d612d=0x0;_0x3d612d<_0x387898[_0x7991('0x2e')][_0x7991('0x1d')];_0x3d612d++){var _0x2b490e=_0x10dc38+_0x387898[_0x7991('0x2e')][_0x7991('0x1d')];var _0x27207b=_0x3d612d===_0x387898[_0x7991('0x2e')][_0x7991('0x1d')]-0x1?_0x10dc38+_0xab8950['length']+_0x19d00c[_0x7991('0x1d')]+0x2:_0x10dc38+_0x3d612d+0x1;_0xab8950[_0x7991('0x3f')](_0x3d612d,0x0,{'type':_0x1bc8b5['type'],'app':_0x7991('0x40'),'appdata':_0x387898[_0x7991('0x2e')][_0x3d612d]+'?'+_0x1bc8b5[_0x7991('0x5')]+_0x7991('0x41')+_0x2b490e+':'+_0x1bc8b5[_0x7991('0x5')]+_0x7991('0x41')+_0x27207b,'exten':_0x1bc8b5[_0x7991('0xc')],'context':_0x1bc8b5[_0x7991('0x5')],'priority':_0x10dc38+_0x3d612d,'VoiceExtensionId':_0x1bc8b5['id']});}if(_0x387898[_0x7991('0x3a')]==='outboundDial')_0x387898[_0x7991('0x42')]=_0x5a6656(_0x1bc8b5,_0x387898['appdata']);_0x387898[_0x7991('0x43')]=_0xab8950[_0x7991('0x1d')]?_['last'](_0xab8950)[_0x7991('0x43')]+0x1:_0x10dc38;_0x22fa85=_[_0x7991('0x44')](_0x22fa85,_0xab8950,[_0x387898],_0x19d00c);_0x10dc38=_[_0x7991('0x45')](_0x22fa85)[_0x7991('0x43')]+0x1;}return _0x425b66(_0x22fa85);})[_0x7991('0x46')](function(_0x1618ff){_0x58e2e7(_0x1618ff);});});}return _0x476027[_0x7991('0x47')](_0x7991('0x48'),attributes,{'tableName':_0x7991('0x49'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x51f24b){var _0x2491ec=this[_0x7991('0x4a')]({'plain':!![]});var _0x165d62=_0x2491ec[_0x7991('0x2')]===_0x7991('0xf')?_0x1aa645(_0x2491ec):_0x41ee5c(_0x2491ec);return _0x45f239(_0x2491ec,_0x51f24b,_[_0x7991('0x45')](_0x165d62)['priority']+0x1)[_0x7991('0x2d')](function(_0x4cb677){var _0x2a9477=_[_0x7991('0x44')](_0x165d62,_0x4cb677);_0x2a9477[_0x7991('0xa')]({'type':_0x2491ec[_0x7991('0x2')],'app':'Hangup','exten':_0x2491ec['exten'],'context':_0x2491ec[_0x7991('0x5')],'priority':_[_0x7991('0x45')](_0x2a9477)[_0x7991('0x43')]+0x1,'VoiceExtensionId':_0x2491ec['id']});return _0x2a9477;});}}});};
\ No newline at end of file
+var _0x5f4a=['appdata','priority','last','concat','catch','define','voice_extensions','Hangup','util','lodash','./voiceExtension.attributes','models','type','Set','CDR(type)=','exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','context','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(destination)=','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','XCALLY-MOTION-ANSWER=0','outboundrouteid=','hasOwnProperty','recordingFormat','none','_XCALLY_MIXMONITOR_FORMAT=','wav','trunk','timeout','options','url','split','name','param','prefix','phone','cutdigits','${EXTEN}','SIP','join','U(xcally-mixmonitor-context)','replace','Interval','findAll','interval','IntervalId','then','length','*,*,*,*','intervals','map','tag','toLowerCase','CDR(tag)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','includes','app','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','GotoIfTime',',${EXTEN},','appType','outboundDial'];(function(_0x591413,_0x381684){var _0x3e9c05=function(_0x4740a8){while(--_0x4740a8){_0x591413['push'](_0x591413['shift']());}};_0x3e9c05(++_0x381684);}(_0x5f4a,0x101));var _0xa5f4=function(_0x149046,_0x528f93){_0x149046=_0x149046-0x0;var _0x254c96=_0x5f4a[_0x149046];return _0x254c96;};'use strict';var util=require(_0xa5f4('0x0'));var _=require(_0xa5f4('0x1'));var attributes=require(_0xa5f4('0x2'));module['exports']=function(_0x1809b5){var _0xe2763d=_0x1809b5[_0xa5f4('0x3')];function _0x4392b4(_0x51b85c){var _0x1184d6=0x2;var _0x36d0c1=[{'type':_0x51b85c[_0xa5f4('0x4')],'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x6')+_0x51b85c[_0xa5f4('0x4')],'context':_0x51b85c['context'],'exten':_0x51b85c[_0xa5f4('0x7')],'priority':_0x1184d6++,'VoiceExtensionId':_0x51b85c['id']},{'type':_0x51b85c[_0xa5f4('0x4')],'app':_0x51b85c[_0xa5f4('0x8')]?'Set':_0xa5f4('0x9'),'appdata':_0x51b85c['alias']?_0xa5f4('0xa')+_0x51b85c['alias']:_0xa5f4('0xb'),'context':_0x51b85c['context'],'exten':_0x51b85c[_0xa5f4('0x7')],'priority':_0x1184d6++,'VoiceExtensionId':_0x51b85c['id']}];if(_0x51b85c['type']===_0xa5f4('0xc')){_0x36d0c1[_0xa5f4('0xd')]({'type':'inbound','app':_0xa5f4('0x5'),'appdata':_0xa5f4('0xe')+_0x51b85c['id'],'context':_0x51b85c['context'],'exten':_0x51b85c['exten'],'priority':_0x1184d6++,'VoiceExtensionId':_0x51b85c['id']});}_0x36d0c1['push']({'type':_0x51b85c[_0xa5f4('0x4')],'app':_0xa5f4('0x5'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x51b85c[_0xa5f4('0xf')],'exten':_0x51b85c[_0xa5f4('0x7')],'priority':_0x1184d6++,'VoiceExtensionId':_0x51b85c['id']},{'type':_0x51b85c['type'],'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x10'),'context':_0x51b85c['context'],'exten':_0x51b85c[_0xa5f4('0x7')],'priority':_0x1184d6++,'VoiceExtensionId':_0x51b85c['id']},{'type':_0x51b85c[_0xa5f4('0x4')],'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x11'),'context':_0x51b85c['context'],'exten':_0x51b85c['exten'],'priority':_0x1184d6++,'VoiceExtensionId':_0x51b85c['id']});return _0x36d0c1;}function _0x594df2(_0x330dbc){var _0x57d0d0=0x2;var _0x4f83eb=[{'type':_0xa5f4('0x12'),'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x13'),'context':_0x330dbc['context'],'exten':_0x330dbc['exten'],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':_0x330dbc[_0xa5f4('0x8')]?_0xa5f4('0x5'):'NoOp','appdata':_0x330dbc[_0xa5f4('0x8')]?_0xa5f4('0xa')+_0x330dbc[_0xa5f4('0x8')]:_0xa5f4('0xb'),'context':_0x330dbc['context'],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x14')+(_0x330dbc['cutdigits']?'${EXTEN:'+_0x330dbc['cutdigits']+'}':'${EXTEN}'),'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':_0xa5f4('0x5'),'appdata':'CDR(routeid)='+_0x330dbc['id'],'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc['exten'],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':'outbound','app':'ExecIf','appdata':_0xa5f4('0x15')+(_0x57d0d0+0x2)+'):Goto('+(_0x57d0d0+0x1)+')','context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':'Set','appdata':_0x330dbc['cutdigits']?_0xa5f4('0x16')+_0x330dbc['cutdigits']+'}':_0xa5f4('0x17'),'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc['exten'],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':'outbound','app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x18'),'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc['exten'],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x10'),'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':'Set','appdata':_0xa5f4('0x11'),'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':_0xa5f4('0x12'),'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x19')+_0x330dbc['id'],'context':_0x330dbc['context'],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']}];if(_0x330dbc[_0xa5f4('0x1a')](_0xa5f4('0x1b'))&&_0x330dbc[_0xa5f4('0x1b')]!==_0xa5f4('0x1c')){_0x4f83eb['push']({'type':_0xa5f4('0x12'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']},{'type':'outbound','app':'Set','appdata':_0xa5f4('0x1d')+_0x330dbc[_0xa5f4('0x1b')]||_0xa5f4('0x1e'),'context':_0x330dbc[_0xa5f4('0xf')],'exten':_0x330dbc[_0xa5f4('0x7')],'priority':_0x57d0d0++,'VoiceExtensionId':_0x330dbc['id']});}return _0x4f83eb;}function _0x1bd11f(_0x3a3c61){var _0x5dc1e1=[{'name':_0xa5f4('0x1f'),'param':0x0},{'name':_0xa5f4('0x20'),'param':0x1},{'name':_0xa5f4('0x21'),'param':0x2},{'name':_0xa5f4('0x22'),'param':0x3}];var _0x3eeec6={};var _0x51cf74=_0x3a3c61[_0xa5f4('0x23')](',');var _0x48ef80=[];for(var _0x3bf2af=0x0;_0x3bf2af<_0x5dc1e1['length'];_0x3bf2af++){switch(_0x5dc1e1[_0x3bf2af][_0xa5f4('0x24')]){case _0xa5f4('0x1f'):_0x3eeec6[_0xa5f4('0x1f')]=_0x51cf74[_0x5dc1e1[_0x3bf2af][_0xa5f4('0x25')]][_0xa5f4('0x23')]('/')[0x1];_0x3eeec6['phone']=_0x51cf74[_0x5dc1e1[_0x3bf2af]['param']][_0xa5f4('0x23')]('/')[0x2];_0x3eeec6[_0xa5f4('0x26')]=_0x3eeec6['phone']?_0x3eeec6[_0xa5f4('0x27')][_0xa5f4('0x23')]('$')[0x0]:undefined;_0x3eeec6[_0xa5f4('0x27')]=route[_0xa5f4('0x28')]?(_0x3eeec6[_0xa5f4('0x26')]||'')+'${EXTEN:'+route[_0xa5f4('0x28')]+'}':(_0x3eeec6['prefix']||'')+_0xa5f4('0x29');_0x48ef80[_0x5dc1e1[_0x3bf2af][_0xa5f4('0x25')]]=[_0xa5f4('0x2a'),_0x3eeec6['trunk'],_0x3eeec6[_0xa5f4('0x27')]][_0xa5f4('0x2b')]('/');break;case'options':_0x3eeec6[_0xa5f4('0x21')]=_0x51cf74[_0x5dc1e1[_0x3bf2af]['param']];if(route['recordingFormat']!==_0xa5f4('0x1c')){if(_0x3eeec6[_0xa5f4('0x21')]['indexOf'](_0xa5f4('0x2c'))<0x0){_0x3eeec6[_0xa5f4('0x21')]+=_0xa5f4('0x2c');}}else{_0x3eeec6[_0xa5f4('0x21')]=_0x3eeec6[_0xa5f4('0x21')][_0xa5f4('0x2d')](_0xa5f4('0x2c'),'');}_0x48ef80[_0x5dc1e1[_0x3bf2af][_0xa5f4('0x25')]]=_0x3eeec6[_0xa5f4('0x21')];break;default:_0x48ef80[_0x5dc1e1[_0x3bf2af][_0xa5f4('0x25')]]=_0x51cf74[_0x5dc1e1[_0x3bf2af][_0xa5f4('0x25')]];}}return _0x48ef80[_0xa5f4('0x2b')](',');}function _0x4628e1(_0x9076ee,_0x5d4f84,_0x322ce6,_0x1dd493){return new Promise(function(_0x26c215,_0x240b3c){var _0x2a5e49=[];if(_['isEmpty'](_0x5d4f84))return _0x26c215(_0x2a5e49);_0xe2763d[_0xa5f4('0x2e')][_0xa5f4('0x2f')]({'attributes':['id',_0xa5f4('0x30'),_0xa5f4('0x31')],'raw':!![]})[_0xa5f4('0x32')](function(_0x1ae93b){for(var _0x53771c=0x0,_0x3eaf4c=0x0;_0x53771c<_0x5d4f84[_0xa5f4('0x33')];_0x53771c++,_0x3eaf4c=0x0){var _0x11cd31=_0x5d4f84[_0x53771c];var _0x3b23f9=[];var _0x2c3466=[];if(_0x11cd31['interval']!==_0xa5f4('0x34')){_0x11cd31[_0xa5f4('0x35')]=[_0x11cd31[_0xa5f4('0x30')]];}else{_0x11cd31[_0xa5f4('0x35')]=_0x11cd31['IntervalId']?_[_0xa5f4('0x36')](_['filter'](_0x1ae93b,{'IntervalId':_0x11cd31['IntervalId']}),_0xa5f4('0x30')):[];}_0x11cd31['context']=_0x9076ee[_0xa5f4('0xf')];_0x11cd31['exten']=_0x9076ee[_0xa5f4('0x7')];if(_0x11cd31['type'])_0x11cd31[_0xa5f4('0x4')]=_0x11cd31[_0xa5f4('0x4')]['toLowerCase']();if(_0x9076ee['type']===_0xa5f4('0x12')){if(_0x11cd31['hasOwnProperty'](_0xa5f4('0x37'))&&_0x11cd31[_0xa5f4('0x37')]&&_0x11cd31[_0xa5f4('0x37')]!=='--'){_0x3b23f9[_0xa5f4('0xd')]({'type':_0x11cd31[_0xa5f4('0x4')][_0xa5f4('0x38')](),'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x39')+_0x11cd31['tag'],'context':_0x9076ee['context'],'exten':_0x9076ee['exten'],'priority':_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')]+_0x322ce6+_0x3eaf4c++,'VoiceExtensionId':_0x9076ee['id']});}_0x3b23f9[_0xa5f4('0xd')]({'type':_0x11cd31[_0xa5f4('0x4')][_0xa5f4('0x38')](),'app':_0xa5f4('0x3a'),'appdata':_0xa5f4('0x3b')+(_0x11cd31[_0xa5f4('0x3c')]?_0xa5f4('0x3d')+_0x11cd31[_0xa5f4('0x3c')]+')':_0xa5f4('0x3e')),'context':_0x9076ee[_0xa5f4('0xf')],'exten':_0x9076ee[_0xa5f4('0x7')],'priority':_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')]+_0x322ce6+_0x3eaf4c++,'VoiceExtensionId':_0x9076ee['id']});}else{if(_0x11cd31[_0xa5f4('0x1a')](_0xa5f4('0x3f'))){if([_0xa5f4('0x40'),'playback'][_0xa5f4('0x41')](_0x11cd31[_0xa5f4('0x42')][_0xa5f4('0x38')]())&&_0x11cd31['appType']!==_0xa5f4('0x43')){if(_0x11cd31[_0xa5f4('0x3f')]){_0x3b23f9[_0xa5f4('0xd')]({'type':_0x11cd31[_0xa5f4('0x4')][_0xa5f4('0x38')](),'app':_0xa5f4('0x3a'),'appdata':_0xa5f4('0x44'),'context':_0x9076ee[_0xa5f4('0xf')],'exten':_0x9076ee[_0xa5f4('0x7')],'priority':_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')]+_0x322ce6+_0x3eaf4c++,'VoiceExtensionId':_0x9076ee['id']});_0x3b23f9['push']({'type':_0x11cd31[_0xa5f4('0x4')][_0xa5f4('0x38')](),'app':_0xa5f4('0x5'),'appdata':_0xa5f4('0x45'),'context':_0x9076ee[_0xa5f4('0xf')],'exten':_0x9076ee[_0xa5f4('0x7')],'priority':_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')]+_0x322ce6+_0x3eaf4c++,'VoiceExtensionId':_0x9076ee['id']});}else{_0x3b23f9['push']({'type':_0x11cd31[_0xa5f4('0x4')][_0xa5f4('0x38')](),'app':_0xa5f4('0x3a'),'appdata':_0xa5f4('0x46'),'context':_0x9076ee['context'],'exten':_0x9076ee[_0xa5f4('0x7')],'priority':_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')]+_0x322ce6+_0x3eaf4c++,'VoiceExtensionId':_0x9076ee['id']});_0x3b23f9[_0xa5f4('0xd')]({'type':_0x11cd31['type'][_0xa5f4('0x38')](),'app':_0xa5f4('0x5'),'appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x9076ee[_0xa5f4('0xf')],'exten':_0x9076ee[_0xa5f4('0x7')],'priority':_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')]+_0x322ce6+_0x3eaf4c++,'VoiceExtensionId':_0x9076ee['id']});}}}}for(var _0x259ab1=0x0;_0x259ab1<_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')];_0x259ab1++){var _0x3033b6=_0x322ce6+_0x11cd31[_0xa5f4('0x35')][_0xa5f4('0x33')];var _0x50cff1=_0x259ab1===_0x11cd31[_0xa5f4('0x35')]['length']-0x1?_0x322ce6+_0x3b23f9[_0xa5f4('0x33')]+_0x2c3466[_0xa5f4('0x33')]+0x2:_0x322ce6+_0x259ab1+0x1;_0x3b23f9['splice'](_0x259ab1,0x0,{'type':_0x9076ee[_0xa5f4('0x4')],'app':_0xa5f4('0x47'),'appdata':_0x11cd31[_0xa5f4('0x35')][_0x259ab1]+'?'+_0x9076ee[_0xa5f4('0xf')]+_0xa5f4('0x48')+_0x3033b6+':'+_0x9076ee[_0xa5f4('0xf')]+_0xa5f4('0x48')+_0x50cff1,'exten':_0x9076ee[_0xa5f4('0x7')],'context':_0x9076ee[_0xa5f4('0xf')],'priority':_0x322ce6+_0x259ab1,'VoiceExtensionId':_0x9076ee['id']});}if(_0x1dd493&&_0x11cd31[_0xa5f4('0x49')]===_0xa5f4('0x4a'))_0x11cd31[_0xa5f4('0x4b')]=_0x1bd11f(_0x11cd31[_0xa5f4('0x4b')]);_0x11cd31[_0xa5f4('0x4c')]=_0x3b23f9[_0xa5f4('0x33')]?_[_0xa5f4('0x4d')](_0x3b23f9)[_0xa5f4('0x4c')]+0x1:_0x322ce6;_0x2a5e49=_[_0xa5f4('0x4e')](_0x2a5e49,_0x3b23f9,[_0x11cd31],_0x2c3466);_0x322ce6=_[_0xa5f4('0x4d')](_0x2a5e49)[_0xa5f4('0x4c')]+0x1;}return _0x26c215(_0x2a5e49);})[_0xa5f4('0x4f')](function(_0x523dee){_0x240b3c(_0x523dee);});});}return _0x1809b5[_0xa5f4('0x50')]('VoiceExtension',attributes,{'tableName':_0xa5f4('0x51'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x47b70e,_0x1bbbb4){var _0x10f89d=this;var _0xbfbded=_0x10f89d[_0xa5f4('0x4')]===_0xa5f4('0x12')?_0x594df2(_0x10f89d):_0x4392b4(_0x10f89d);return _0x4628e1(_0x10f89d,_0x47b70e,_[_0xa5f4('0x4d')](_0xbfbded)[_0xa5f4('0x4c')]+0x1,_0x1bbbb4)[_0xa5f4('0x32')](function(_0x1715bd){var _0x2667d4=_[_0xa5f4('0x4e')](_0xbfbded,_0x1715bd);_0x2667d4[_0xa5f4('0xd')]({'type':_0x10f89d[_0xa5f4('0x4')],'app':_0xa5f4('0x52'),'exten':_0x10f89d['exten'],'context':_0x10f89d[_0xa5f4('0xf')],'priority':_[_0xa5f4('0x4d')](_0x2667d4)[_0xa5f4('0x4c')]+0x1,'VoiceExtensionId':_0x10f89d['id']});return _0x2667d4;});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78b7=['socket.io-emitter','./voiceExtension.socket','register','request','then','info','debug','VoiceExtension,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','VoiceExtension,\x20%s,\x20%s','message','result','catch','GetVoiceExtension','VoiceExtension','options','where','include','map','model','attributes','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','localhost'];(function(_0x339088,_0x3c39cb){var _0x11a3f3=function(_0x5536d2){while(--_0x5536d2){_0x339088['push'](_0x339088['shift']());}};_0x11a3f3(++_0x3c39cb);}(_0x78b7,0x194));var _0x778b=function(_0x517894,_0x1bba74){_0x517894=_0x517894-0x0;var _0x326379=_0x78b7[_0x517894];return _0x326379;};'use strict';var _=require(_0x778b('0x0'));var util=require(_0x778b('0x1'));var moment=require('moment');var BPromise=require(_0x778b('0x2'));var rs=require(_0x778b('0x3'));var fs=require('fs');var Redis=require(_0x778b('0x4'));var db=require(_0x778b('0x5'))['db'];var utils=require(_0x778b('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x778b('0x7'));var jayson=require(_0x778b('0x8'));var client=jayson[_0x778b('0x9')][_0x778b('0xa')]({'port':0x232a});config[_0x778b('0xb')]=_[_0x778b('0xc')](config['redis'],{'host':_0x778b('0xd'),'port':0x18eb});var socket=require(_0x778b('0xe'))(new Redis(config[_0x778b('0xb')]));require(_0x778b('0xf'))[_0x778b('0x10')](socket);function respondWithRpcPromise(_0x4fd441,_0x754708,_0x28a29e){return new BPromise(function(_0x5e7359,_0x413ac2){return client[_0x778b('0x11')](_0x4fd441,_0x28a29e)[_0x778b('0x12')](function(_0x42b37c){logger[_0x778b('0x13')]('VoiceExtension,\x20%s,\x20%s',_0x754708,'request\x20sent');logger[_0x778b('0x14')](_0x778b('0x15'),_0x754708,_0x778b('0x16'),JSON[_0x778b('0x17')](_0x42b37c));if(_0x42b37c[_0x778b('0x18')]){if(_0x42b37c[_0x778b('0x18')][_0x778b('0x19')]===0x1f4){logger['error'](_0x778b('0x1a'),_0x754708,_0x42b37c[_0x778b('0x18')][_0x778b('0x1b')]);return _0x413ac2(_0x42b37c[_0x778b('0x18')][_0x778b('0x1b')]);}logger['error'](_0x778b('0x1a'),_0x754708,_0x42b37c['error'][_0x778b('0x1b')]);return _0x5e7359(_0x42b37c[_0x778b('0x18')]['message']);}else{logger[_0x778b('0x13')]('VoiceExtension,\x20%s,\x20%s',_0x754708,_0x778b('0x16'));_0x5e7359(_0x42b37c[_0x778b('0x1c')]['message']);}})[_0x778b('0x1d')](function(_0x26a094){logger[_0x778b('0x18')]('VoiceExtension,\x20%s,\x20%s',_0x754708,_0x26a094);_0x413ac2(_0x26a094);});});}exports[_0x778b('0x1e')]=function(_0xe0ba94){var _0x1b1dc6=this;return new Promise(function(_0xa7b66f,_0x128388){return db[_0x778b('0x1f')]['findAll']({'raw':_0xe0ba94[_0x778b('0x20')]?_0xe0ba94[_0x778b('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0xe0ba94[_0x778b('0x20')]?_0xe0ba94['options'][_0x778b('0x21')]||null:null,'attributes':_0xe0ba94['options']?_0xe0ba94[_0x778b('0x20')]['attributes']||null:null,'limit':_0xe0ba94['options']?_0xe0ba94[_0x778b('0x20')]['limit']||null:null,'include':_0xe0ba94[_0x778b('0x20')]?_0xe0ba94[_0x778b('0x20')][_0x778b('0x22')]?_[_0x778b('0x23')](_0xe0ba94[_0x778b('0x20')]['include'],function(_0xa9083a){return{'model':db[_0xa9083a[_0x778b('0x24')]],'as':_0xa9083a['as'],'attributes':_0xa9083a[_0x778b('0x25')],'include':_0xa9083a['include']?_['map'](_0xa9083a[_0x778b('0x22')],function(_0x208fad){return{'model':db[_0x208fad[_0x778b('0x24')]],'as':_0x208fad['as'],'attributes':_0x208fad[_0x778b('0x25')],'include':_0x208fad[_0x778b('0x22')]?_[_0x778b('0x23')](_0x208fad['include'],function(_0x527051){return{'model':db[_0x527051['model']],'as':_0x527051['as'],'attributes':_0x527051[_0x778b('0x25')]};}):[]};}):[]};}):[]:[]})[_0x778b('0x12')](function(_0x26dfed){logger['info'](_0x778b('0x1e'),_0xe0ba94);logger[_0x778b('0x14')](_0x778b('0x1e'),_0xe0ba94,JSON[_0x778b('0x17')](_0x26dfed));_0xa7b66f(_0x26dfed);})[_0x778b('0x1d')](function(_0x4dae9c){logger[_0x778b('0x18')](_0x778b('0x1e'),_0x4dae9c['message'],_0xe0ba94);_0x128388(_0x1b1dc6['error'](0x1f4,_0x4dae9c[_0x778b('0x1b')]));});});};
\ No newline at end of file
+var _0x3974=['findAll','options','limit','include','model','attributes','map','debug','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','localhost','socket.io-emitter','register','request','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetVoiceExtension','VoiceExtension'];(function(_0x56a061,_0x53fb1b){var _0x105fa0=function(_0x164d08){while(--_0x164d08){_0x56a061['push'](_0x56a061['shift']());}};_0x105fa0(++_0x53fb1b);}(_0x3974,0xbc));var _0x4397=function(_0x31aa77,_0x1e209b){_0x31aa77=_0x31aa77-0x0;var _0x4e3b1d=_0x3974[_0x31aa77];return _0x4e3b1d;};'use strict';var _=require(_0x4397('0x0'));var util=require(_0x4397('0x1'));var moment=require(_0x4397('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4397('0x3'));var db=require(_0x4397('0x4'))['db'];var utils=require(_0x4397('0x5'));var logger=require(_0x4397('0x6'))(_0x4397('0x7'));var config=require('../../config/environment');var jayson=require(_0x4397('0x8'));var client=jayson[_0x4397('0x9')][_0x4397('0xa')]({'port':0x232a});config[_0x4397('0xb')]=_['defaults'](config[_0x4397('0xb')],{'host':_0x4397('0xc'),'port':0x18eb});var socket=require(_0x4397('0xd'))(new Redis(config[_0x4397('0xb')]));require('./voiceExtension.socket')[_0x4397('0xe')](socket);function respondWithRpcPromise(_0x26f0ab,_0x13a0e8,_0x54419f){return new BPromise(function(_0x47e207,_0x41d0da){return client[_0x4397('0xf')](_0x26f0ab,_0x54419f)[_0x4397('0x10')](function(_0x4afa76){logger[_0x4397('0x11')](_0x4397('0x12'),_0x13a0e8,_0x4397('0x13'));logger['debug'](_0x4397('0x14'),_0x13a0e8,_0x4397('0x13'),JSON[_0x4397('0x15')](_0x4afa76));if(_0x4afa76['error']){if(_0x4afa76[_0x4397('0x16')]['code']===0x1f4){logger[_0x4397('0x16')]('VoiceExtension,\x20%s,\x20%s',_0x13a0e8,_0x4afa76[_0x4397('0x16')][_0x4397('0x17')]);return _0x41d0da(_0x4afa76[_0x4397('0x16')][_0x4397('0x17')]);}logger[_0x4397('0x16')](_0x4397('0x12'),_0x13a0e8,_0x4afa76['error'][_0x4397('0x17')]);return _0x47e207(_0x4afa76[_0x4397('0x16')][_0x4397('0x17')]);}else{logger[_0x4397('0x11')](_0x4397('0x12'),_0x13a0e8,_0x4397('0x13'));_0x47e207(_0x4afa76[_0x4397('0x18')][_0x4397('0x17')]);}})[_0x4397('0x19')](function(_0x5270d7){logger['error'](_0x4397('0x12'),_0x13a0e8,_0x5270d7);_0x41d0da(_0x5270d7);});});}exports[_0x4397('0x1a')]=function(_0x6ebced){var _0xaf9b09=this;return new Promise(function(_0x5619bb,_0x523002){return db[_0x4397('0x1b')][_0x4397('0x1c')]({'raw':_0x6ebced['options']?_0x6ebced['options']['raw']===undefined?!![]:![]:!![],'where':_0x6ebced[_0x4397('0x1d')]?_0x6ebced[_0x4397('0x1d')]['where']||null:null,'attributes':_0x6ebced[_0x4397('0x1d')]?_0x6ebced[_0x4397('0x1d')]['attributes']||null:null,'limit':_0x6ebced[_0x4397('0x1d')]?_0x6ebced[_0x4397('0x1d')][_0x4397('0x1e')]||null:null,'include':_0x6ebced[_0x4397('0x1d')]?_0x6ebced['options']['include']?_['map'](_0x6ebced[_0x4397('0x1d')][_0x4397('0x1f')],function(_0x1d8f8e){return{'model':db[_0x1d8f8e[_0x4397('0x20')]],'as':_0x1d8f8e['as'],'attributes':_0x1d8f8e[_0x4397('0x21')],'include':_0x1d8f8e[_0x4397('0x1f')]?_[_0x4397('0x22')](_0x1d8f8e[_0x4397('0x1f')],function(_0x47161d){return{'model':db[_0x47161d[_0x4397('0x20')]],'as':_0x47161d['as'],'attributes':_0x47161d[_0x4397('0x21')],'include':_0x47161d[_0x4397('0x1f')]?_[_0x4397('0x22')](_0x47161d[_0x4397('0x1f')],function(_0x550b0d){return{'model':db[_0x550b0d['model']],'as':_0x550b0d['as'],'attributes':_0x550b0d[_0x4397('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3d6188){logger[_0x4397('0x11')]('GetVoiceExtension',_0x6ebced);logger[_0x4397('0x23')](_0x4397('0x1a'),_0x6ebced,JSON[_0x4397('0x15')](_0x3d6188));_0x5619bb(_0x3d6188);})['catch'](function(_0x132d2e){logger[_0x4397('0x16')](_0x4397('0x1a'),_0x132d2e['message'],_0x6ebced);_0x523002(_0xaf9b09[_0x4397('0x16')](0x1f4,_0x132d2e['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['remove','update','removeListener','register','length','./voiceExtension.events','save'];(function(_0x561442,_0x10b795){var _0x344855=function(_0x2b149d){while(--_0x2b149d){_0x561442['push'](_0x561442['shift']());}};_0x344855(++_0x10b795);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x342baa,_0x4a110f){_0x342baa=_0x342baa-0x0;var _0x1208f3=_0xc4aa[_0x342baa];return _0x1208f3;};'use strict';var VoiceExtensionEvents=require(_0xac4a('0x0'));var events=[_0xac4a('0x1'),_0xac4a('0x2'),_0xac4a('0x3')];function createListener(_0x275161,_0x22469d){return function(_0x58634e){_0x22469d['emit'](_0x275161,_0x58634e);};}function removeListener(_0x47d4f6,_0x2f48ed){return function(){VoiceExtensionEvents[_0xac4a('0x4')](_0x47d4f6,_0x2f48ed);};}exports[_0xac4a('0x5')]=function(_0x215f39){for(var _0x96be2b=0x0,_0x15cd34=events[_0xac4a('0x6')];_0x96be2b<_0x15cd34;_0x96be2b++){var _0x10525b=events[_0x96be2b];var _0x5c6179=createListener('voiceExtension:'+_0x10525b,_0x215f39);VoiceExtensionEvents['on'](_0x10525b,_0x5c6179);}};
\ No newline at end of file
+var _0xc4aa=['remove','update','removeListener','register','length','./voiceExtension.events','save'];(function(_0x401cd2,_0x45e36b){var _0x49f835=function(_0x1aeb17){while(--_0x1aeb17){_0x401cd2['push'](_0x401cd2['shift']());}};_0x49f835(++_0x45e36b);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x1b2ff7,_0x12a034){_0x1b2ff7=_0x1b2ff7-0x0;var _0x31656a=_0xc4aa[_0x1b2ff7];return _0x31656a;};'use strict';var VoiceExtensionEvents=require(_0xac4a('0x0'));var events=[_0xac4a('0x1'),_0xac4a('0x2'),_0xac4a('0x3')];function createListener(_0x275161,_0x22469d){return function(_0x58634e){_0x22469d['emit'](_0x275161,_0x58634e);};}function removeListener(_0x47d4f6,_0x2f48ed){return function(){VoiceExtensionEvents[_0xac4a('0x4')](_0x47d4f6,_0x2f48ed);};}exports[_0xac4a('0x5')]=function(_0x215f39){for(var _0x96be2b=0x0,_0x15cd34=events[_0xac4a('0x6')];_0x96be2b<_0x15cd34;_0x96be2b++){var _0x10525b=events[_0x96be2b];var _0x5c6179=createListener('voiceExtension:'+_0x10525b,_0x215f39);VoiceExtensionEvents['on'](_0x10525b,_0x5c6179);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77d4=['index','show','getMessages','post','create','/:id','update','delete','destroy','util','connect-timeout','Router','fs-extra','../../config/environment','./voiceMail.controller','get','isAuthenticated'];(function(_0x4953e6,_0x4fc820){var _0x4ebff4=function(_0x4d8581){while(--_0x4d8581){_0x4953e6['push'](_0x4953e6['shift']());}};_0x4ebff4(++_0x4fc820);}(_0x77d4,0x108));var _0x477d=function(_0x1394fa,_0x7245d9){_0x1394fa=_0x1394fa-0x0;var _0x100629=_0x77d4[_0x1394fa];return _0x100629;};'use strict';var multer=require('multer');var util=require(_0x477d('0x0'));var path=require('path');var timeout=require(_0x477d('0x1'));var express=require('express');var router=express[_0x477d('0x2')]();var fs_extra=require(_0x477d('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x477d('0x4'));var controller=require(_0x477d('0x5'));router[_0x477d('0x6')]('/',auth[_0x477d('0x7')](),controller[_0x477d('0x8')]);router[_0x477d('0x6')]('/:id',auth['isAuthenticated'](),controller[_0x477d('0x9')]);router['get']('/:id/messages',auth[_0x477d('0x7')](),controller[_0x477d('0xa')]);router[_0x477d('0xb')]('/',auth[_0x477d('0x7')](),controller[_0x477d('0xc')]);router['put'](_0x477d('0xd'),auth['isAuthenticated'](),controller[_0x477d('0xe')]);router[_0x477d('0xf')]('/:id',auth[_0x477d('0x7')](),controller[_0x477d('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0xb091=['getMessages','post','create','put','/:id','update','delete','destroy','exports','util','path','connect-timeout','express','fs-extra','../../config/environment','./voiceMail.controller','isAuthenticated','index','get','show','/:id/messages'];(function(_0x39c734,_0x2f3e06){var _0xb2a2f9=function(_0x502f3f){while(--_0x502f3f){_0x39c734['push'](_0x39c734['shift']());}};_0xb2a2f9(++_0x2f3e06);}(_0xb091,0x16e));var _0x1b09=function(_0x3ef2cf,_0x329230){_0x3ef2cf=_0x3ef2cf-0x0;var _0x396d30=_0xb091[_0x3ef2cf];return _0x396d30;};'use strict';var multer=require('multer');var util=require(_0x1b09('0x0'));var path=require(_0x1b09('0x1'));var timeout=require(_0x1b09('0x2'));var express=require(_0x1b09('0x3'));var router=express['Router']();var fs_extra=require(_0x1b09('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x1b09('0x5'));var controller=require(_0x1b09('0x6'));router['get']('/',auth[_0x1b09('0x7')](),controller[_0x1b09('0x8')]);router[_0x1b09('0x9')]('/:id',auth[_0x1b09('0x7')](),controller[_0x1b09('0xa')]);router[_0x1b09('0x9')](_0x1b09('0xb'),auth[_0x1b09('0x7')](),controller[_0x1b09('0xc')]);router[_0x1b09('0xd')]('/',auth[_0x1b09('0x7')](),controller[_0x1b09('0xe')]);router[_0x1b09('0xf')](_0x1b09('0x10'),auth['isAuthenticated'](),controller[_0x1b09('0x11')]);router[_0x1b09('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x1b09('0x13')]);module[_0x1b09('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6c4=['fullname','\x20-\x20','mailbox','sequelize','STRING','from-voicemail','contest_mailbox','email','trim','central','ENUM','yes','TINYINT(4)','TIMESTAMP','INTEGER','VIRTUAL','getDataValue'];(function(_0x47b751,_0x354400){var _0x575df9=function(_0x1bc733){while(--_0x1bc733){_0x47b751['push'](_0x47b751['shift']());}};_0x575df9(++_0x354400);}(_0xb6c4,0xf1));var _0x4b6c=function(_0x4a8428,_0x271b81){_0x4a8428=_0x4a8428-0x0;var _0x559859=_0xb6c4[_0x4a8428];return _0x559859;};'use strict';var Sequelize=require(_0x4b6c('0x0'));module['exports']={'customer_id':{'type':Sequelize[_0x4b6c('0x1')]},'context':{'type':Sequelize[_0x4b6c('0x1')],'defaultValue':_0x4b6c('0x2'),'unique':_0x4b6c('0x3')},'mailbox':{'type':Sequelize[_0x4b6c('0x1')],'defaultValue':'','allowNull':![],'unique':_0x4b6c('0x3')},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0x4b6c('0x1')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]},'set':function(_0x404a80){this['setDataValue'](_0x4b6c('0x4'),typeof _0x404a80==='string'&&_0x404a80['trim']()?_0x404a80[_0x4b6c('0x5')]():null);}},'pager':{'type':Sequelize[_0x4b6c('0x1')]},'tz':{'type':Sequelize[_0x4b6c('0x1')],'defaultValue':_0x4b6c('0x6')},'attach':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':_0x4b6c('0x8'),'allowNull':![]},'saycid':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':_0x4b6c('0x8'),'allowNull':![]},'dialout':{'type':Sequelize[_0x4b6c('0x1')]},'callback':{'type':Sequelize[_0x4b6c('0x1')]},'review':{'type':Sequelize[_0x4b6c('0x7')]('yes','no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize['ENUM'](_0x4b6c('0x8'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x4b6c('0x9'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0x4b6c('0x7')]('yes','no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':_0x4b6c('0x8'),'allowNull':![]},'forcename':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x4b6c('0x7')](_0x4b6c('0x8'),'no'),'defaultValue':_0x4b6c('0x8'),'allowNull':![]},'stamp':{'type':_0x4b6c('0xa')},'emailsubject':{'type':Sequelize['STRING']},'emailbody':{'type':Sequelize[_0x4b6c('0x1')]},'maxsecs':{'type':Sequelize[_0x4b6c('0xb')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0x4b6c('0xc')],'get':function(){return this[_0x4b6c('0xd')](_0x4b6c('0xe'))+_0x4b6c('0xf')+this[_0x4b6c('0xd')](_0x4b6c('0x10'));}}};
\ No newline at end of file
+var _0xbac9=['central','ENUM','yes','TINYINT(4)','TIMESTAMP','INTEGER','fullname','\x20-\x20','getDataValue','mailbox','sequelize','exports','STRING','contest_mailbox','email','string','trim'];(function(_0x35a755,_0x538568){var _0x58fdf7=function(_0x269f85){while(--_0x269f85){_0x35a755['push'](_0x35a755['shift']());}};_0x58fdf7(++_0x538568);}(_0xbac9,0x1d5));var _0x9bac=function(_0x52de74,_0x152687){_0x52de74=_0x52de74-0x0;var _0x33113e=_0xbac9[_0x52de74];return _0x33113e;};'use strict';var Sequelize=require(_0x9bac('0x0'));module[_0x9bac('0x1')]={'customer_id':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x9bac('0x2')],'defaultValue':'from-voicemail','unique':_0x9bac('0x3')},'mailbox':{'type':Sequelize[_0x9bac('0x2')],'defaultValue':'','allowNull':![],'unique':'contest_mailbox'},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0x9bac('0x2')]},'email':{'type':Sequelize[_0x9bac('0x2')],'validate':{'isEmail':!![]},'set':function(_0x2be2d1){this['setDataValue'](_0x9bac('0x4'),typeof _0x2be2d1===_0x9bac('0x5')&&_0x2be2d1[_0x9bac('0x6')]()?_0x2be2d1['trim']():null);}},'pager':{'type':Sequelize[_0x9bac('0x2')]},'tz':{'type':Sequelize['STRING'],'defaultValue':_0x9bac('0x7')},'attach':{'type':Sequelize[_0x9bac('0x8')](_0x9bac('0x9'),'no'),'defaultValue':_0x9bac('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0x9bac('0x8')]('yes','no'),'defaultValue':_0x9bac('0x9'),'allowNull':![]},'dialout':{'type':Sequelize['STRING']},'callback':{'type':Sequelize[_0x9bac('0x2')]},'review':{'type':Sequelize['ENUM'](_0x9bac('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0x9bac('0x8')](_0x9bac('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0x9bac('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x9bac('0x8')](_0x9bac('0x9'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x9bac('0xa'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize['ENUM'](_0x9bac('0x9'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0x9bac('0x8')](_0x9bac('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0x9bac('0x8')](_0x9bac('0x9'),'no'),'defaultValue':_0x9bac('0x9'),'allowNull':![]},'forcename':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x9bac('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x9bac('0x8')](_0x9bac('0x9'),'no'),'defaultValue':_0x9bac('0x9'),'allowNull':![]},'stamp':{'type':_0x9bac('0xb')},'emailsubject':{'type':Sequelize[_0x9bac('0x2')]},'emailbody':{'type':Sequelize[_0x9bac('0x2')]},'maxsecs':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x9bac('0xc')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this['getDataValue'](_0x9bac('0xd'))+_0x9bac('0xe')+this[_0x9bac('0xf')](_0x9bac('0x10'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x16d2=['sort','pick','filter','where','merge','options','findAll','rows','show','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','Voicemails','UserProfileSection','userProfileId','UserProfileResource','catch','update','destroy','params','getMessages','findOne','VoiceMailMessage','nolimit','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','apply','reject','save','then','get','error','stack','name','send','index','map','VoiceMail','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','order'];(function(_0x11ce66,_0x546bb0){var _0x232168=function(_0x3e56b0){while(--_0x3e56b0){_0x11ce66['push'](_0x11ce66['shift']());}};_0x232168(++_0x546bb0);}(_0x16d2,0x123));var _0x216d=function(_0x39f8b4,_0x492452){_0x39f8b4=_0x39f8b4-0x0;var _0x2e8275=_0x16d2[_0x39f8b4];return _0x2e8275;};'use strict';var emlformat=require(_0x216d('0x0'));var rimraf=require(_0x216d('0x1'));var zipdir=require(_0x216d('0x2'));var jsonpatch=require(_0x216d('0x3'));var rp=require(_0x216d('0x4'));var moment=require(_0x216d('0x5'));var BPromise=require(_0x216d('0x6'));var Mustache=require(_0x216d('0x7'));var util=require(_0x216d('0x8'));var path=require('path');var sox=require(_0x216d('0x9'));var csv=require(_0x216d('0xa'));var ejs=require(_0x216d('0xb'));var fs=require('fs');var fs_extra=require(_0x216d('0xc'));var _=require(_0x216d('0xd'));var squel=require(_0x216d('0xe'));var crypto=require(_0x216d('0xf'));var jsforce=require(_0x216d('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x216d('0xa'));var querystring=require(_0x216d('0x11'));var Papa=require(_0x216d('0x12'));var Redis=require(_0x216d('0x13'));var authService=require(_0x216d('0x14'));var qs=require(_0x216d('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x216d('0x16'));var logger=require('../../config/logger')(_0x216d('0x17'));var utils=require(_0x216d('0x18'));var config=require(_0x216d('0x19'));var licenseUtil=require(_0x216d('0x1a'));var db=require(_0x216d('0x1b'))['db'];function respondWithStatusCode(_0x23ecf9,_0x4c92d9){_0x4c92d9=_0x4c92d9||0xcc;return function(_0xb36a43){if(_0xb36a43){return _0x23ecf9['sendStatus'](_0x4c92d9);}return _0x23ecf9[_0x216d('0x1c')](_0x4c92d9)[_0x216d('0x1d')]();};}function respondWithResult(_0x4dc2a2,_0x165c19){_0x165c19=_0x165c19||0xc8;return function(_0x322e4b){if(_0x322e4b){return _0x4dc2a2['status'](_0x165c19)[_0x216d('0x1e')](_0x322e4b);}};}function respondWithFilteredResult(_0x494e92,_0x448c0d){return function(_0xf571a4){if(_0xf571a4){var _0x4631b0=typeof _0x448c0d[_0x216d('0x1f')]===_0x216d('0x20')&&typeof _0x448c0d[_0x216d('0x21')]===_0x216d('0x20');var _0x1496fe=_0xf571a4[_0x216d('0x22')];var _0x53d464=_0x4631b0?0x0:_0x448c0d[_0x216d('0x1f')];var _0x5124ab=_0x4631b0?_0xf571a4['count']:_0x448c0d[_0x216d('0x1f')]+_0x448c0d[_0x216d('0x21')];var _0x574758;if(_0x5124ab>=_0x1496fe){_0x5124ab=_0x1496fe;_0x574758=0xc8;}else{_0x574758=0xce;}_0x494e92[_0x216d('0x1c')](_0x574758);return _0x494e92[_0x216d('0x23')]('Content-Range',_0x53d464+'-'+_0x5124ab+'/'+_0x1496fe)[_0x216d('0x1e')](_0xf571a4);}return null;};}function patchUpdates(_0x13b8e0){return function(_0x430e81){try{jsonpatch[_0x216d('0x24')](_0x430e81,_0x13b8e0,!![]);}catch(_0x5c3e03){return BPromise[_0x216d('0x25')](_0x5c3e03);}return _0x430e81[_0x216d('0x26')]();};}function saveUpdates(_0x10f299,_0x438981){return function(_0x206782){if(_0x206782){return _0x206782['update'](_0x10f299)[_0x216d('0x27')](function(_0x1bd4db){return _0x1bd4db;});}return null;};}function removeEntity(_0x188494,_0x2880c6){return function(_0x6fa4b3){if(_0x6fa4b3){return _0x6fa4b3['destroy']()[_0x216d('0x27')](function(){var _0xab672=_0x6fa4b3[_0x216d('0x28')]({'plain':!![]});var _0x5998a1='Voicemails';return db['UserProfileResource']['destroy']({'where':{'type':_0x5998a1,'resourceId':_0xab672['id']}})['then'](function(){return _0x6fa4b3;});})[_0x216d('0x27')](function(){_0x188494[_0x216d('0x1c')](0xcc)[_0x216d('0x1d')]();});}};}function handleEntityNotFound(_0x73b509,_0x46d0ef){return function(_0x47fa6d){if(!_0x47fa6d){_0x73b509['sendStatus'](0x194);}return _0x47fa6d;};}function handleError(_0xa7624a,_0x51b2bd){_0x51b2bd=_0x51b2bd||0x1f4;return function(_0x23d1c3){logger[_0x216d('0x29')](_0x23d1c3[_0x216d('0x2a')]);if(_0x23d1c3[_0x216d('0x2b')]){delete _0x23d1c3[_0x216d('0x2b')];}_0xa7624a[_0x216d('0x1c')](_0x51b2bd)[_0x216d('0x2c')](_0x23d1c3);};}exports[_0x216d('0x2d')]=function(_0x169cfa,_0x28f56a){var _0x11be90={},_0x260134={},_0x4537fd={'count':0x0,'rows':[]};var _0x483324=_[_0x216d('0x2e')](db[_0x216d('0x2f')][_0x216d('0x30')],function(_0x510ad9){return{'name':_0x510ad9[_0x216d('0x31')],'type':_0x510ad9[_0x216d('0x32')][_0x216d('0x33')]};});_0x260134[_0x216d('0x34')]=_['map'](_0x483324,_0x216d('0x2b'));_0x260134[_0x216d('0x35')]=_[_0x216d('0x36')](_0x169cfa[_0x216d('0x35')]);_0x260134[_0x216d('0x37')]=_[_0x216d('0x38')](_0x260134[_0x216d('0x34')],_0x260134[_0x216d('0x35')]);_0x11be90[_0x216d('0x39')]=_[_0x216d('0x38')](_0x260134[_0x216d('0x34')],qs['fields'](_0x169cfa[_0x216d('0x35')][_0x216d('0x3a')]));_0x11be90[_0x216d('0x39')]=_0x11be90['attributes'][_0x216d('0x3b')]?_0x11be90[_0x216d('0x39')]:_0x260134['model'];if(!_0x169cfa[_0x216d('0x35')]['hasOwnProperty']('nolimit')){_0x11be90[_0x216d('0x21')]=qs[_0x216d('0x21')](_0x169cfa[_0x216d('0x35')][_0x216d('0x21')]);_0x11be90['offset']=qs['offset'](_0x169cfa['query'][_0x216d('0x1f')]);}_0x11be90[_0x216d('0x3c')]=qs['sort'](_0x169cfa[_0x216d('0x35')][_0x216d('0x3d')]);_0x11be90['where']=qs[_0x216d('0x37')](_[_0x216d('0x3e')](_0x169cfa[_0x216d('0x35')],_0x260134[_0x216d('0x37')]),_0x483324);if(_0x169cfa[_0x216d('0x35')][_0x216d('0x3f')]){_0x11be90[_0x216d('0x40')]=_[_0x216d('0x41')](_0x11be90['where'],{'$or':_['map'](_0x483324,function(_0x281a88){if(_0x281a88[_0x216d('0x32')]!=='VIRTUAL'){var _0xf33f9c={};_0xf33f9c[_0x281a88[_0x216d('0x2b')]]={'$like':'%'+_0x169cfa[_0x216d('0x35')]['filter']+'%'};return _0xf33f9c;}})});}_0x11be90=_[_0x216d('0x41')]({},_0x11be90,_0x169cfa[_0x216d('0x42')]);var _0x13d787={'where':_0x11be90[_0x216d('0x40')]};return db['VoiceMail'][_0x216d('0x22')](_0x13d787)[_0x216d('0x27')](function(_0x5665d7){_0x4537fd[_0x216d('0x22')]=_0x5665d7;if(_0x169cfa[_0x216d('0x35')]['includeAll']){_0x11be90['include']=[{'all':!![]}];}return db[_0x216d('0x2f')][_0x216d('0x43')](_0x11be90);})[_0x216d('0x27')](function(_0x498efe){_0x4537fd[_0x216d('0x44')]=_0x498efe;return _0x4537fd;})['then'](respondWithFilteredResult(_0x28f56a,_0x11be90))['catch'](handleError(_0x28f56a,null));};exports[_0x216d('0x45')]=function(_0x43336e,_0xac81f){var _0x5ddaeb={'raw':!![],'where':{'id':_0x43336e['params']['id']}},_0xaccf45={};_0xaccf45[_0x216d('0x34')]=_[_0x216d('0x36')](db[_0x216d('0x2f')]['rawAttributes']);_0xaccf45[_0x216d('0x35')]=_[_0x216d('0x36')](_0x43336e[_0x216d('0x35')]);_0xaccf45[_0x216d('0x37')]=_['intersection'](_0xaccf45['model'],_0xaccf45['query']);_0x5ddaeb[_0x216d('0x39')]=_[_0x216d('0x38')](_0xaccf45[_0x216d('0x34')],qs[_0x216d('0x3a')](_0x43336e[_0x216d('0x35')][_0x216d('0x3a')]));_0x5ddaeb[_0x216d('0x39')]=_0x5ddaeb[_0x216d('0x39')]['length']?_0x5ddaeb[_0x216d('0x39')]:_0xaccf45[_0x216d('0x34')];if(_0x43336e[_0x216d('0x35')][_0x216d('0x46')]){_0x5ddaeb['include']=[{'all':!![]}];}_0x5ddaeb=_[_0x216d('0x41')]({},_0x5ddaeb,_0x43336e['options']);return db[_0x216d('0x2f')][_0x216d('0x47')](_0x5ddaeb)[_0x216d('0x27')](handleEntityNotFound(_0xac81f,null))['then'](respondWithResult(_0xac81f,null))['catch'](handleError(_0xac81f,null));};exports[_0x216d('0x48')]=function(_0x32d499,_0x3932a3){return db[_0x216d('0x2f')][_0x216d('0x48')](_0x32d499[_0x216d('0x49')],{})['then'](function(_0x4f9274){var _0x26209c=_0x32d499['user'][_0x216d('0x28')]({'plain':!![]});if(!_0x26209c)throw new Error(_0x216d('0x4a'));if(_0x26209c['role']==='user'){var _0x5f37e3=_0x4f9274['get']({'plain':!![]});var _0x1ae9b7=_0x216d('0x4b');return db[_0x216d('0x4c')][_0x216d('0x47')]({'where':{'name':_0x1ae9b7,'userProfileId':_0x26209c[_0x216d('0x4d')]},'raw':!![]})[_0x216d('0x27')](function(_0x29efa8){if(_0x29efa8&&_0x29efa8['autoAssociation']===0x0){return db[_0x216d('0x4e')][_0x216d('0x48')]({'name':_0x5f37e3[_0x216d('0x2b')],'resourceId':_0x5f37e3['id'],'type':_0x29efa8['name'],'sectionId':_0x29efa8['id']},{})[_0x216d('0x27')](function(){return _0x4f9274;});}else{return _0x4f9274;}})[_0x216d('0x4f')](function(_0x2c7c67){logger[_0x216d('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2c7c67);throw _0x2c7c67;});}return _0x4f9274;})[_0x216d('0x27')](respondWithResult(_0x3932a3,0xc9))[_0x216d('0x4f')](handleError(_0x3932a3,null));};exports[_0x216d('0x50')]=function(_0x1a4761,_0x4d7705){if(_0x1a4761[_0x216d('0x49')]['id']){delete _0x1a4761[_0x216d('0x49')]['id'];}return db['VoiceMail'][_0x216d('0x47')]({'where':{'id':_0x1a4761['params']['id']}})[_0x216d('0x27')](handleEntityNotFound(_0x4d7705,null))[_0x216d('0x27')](saveUpdates(_0x1a4761[_0x216d('0x49')],null))[_0x216d('0x27')](respondWithResult(_0x4d7705,null))[_0x216d('0x4f')](handleError(_0x4d7705,null));};exports[_0x216d('0x51')]=function(_0x24297f,_0x2c6cb6){return db[_0x216d('0x2f')]['find']({'where':{'id':_0x24297f[_0x216d('0x52')]['id']}})[_0x216d('0x27')](handleEntityNotFound(_0x2c6cb6,null))['then'](removeEntity(_0x2c6cb6,null))[_0x216d('0x4f')](handleError(_0x2c6cb6,null));};exports[_0x216d('0x53')]=function(_0x59fa28,_0x4edf77,_0x3a0ee7){return db['VoiceMail'][_0x216d('0x54')]({'where':{'id':_0x59fa28[_0x216d('0x52')]['id']}})[_0x216d('0x27')](handleEntityNotFound(_0x4edf77,null))['then'](function(_0x3acd4b){var _0x5112ea;var _0x5d96b3={},_0x462225={};_0x462225[_0x216d('0x34')]=_['keys'](db[_0x216d('0x55')][_0x216d('0x30')]);_0x462225[_0x216d('0x35')]=_[_0x216d('0x36')](_0x59fa28[_0x216d('0x35')]);_0x462225[_0x216d('0x37')]=_['intersection'](_0x462225['model'],_0x462225[_0x216d('0x35')]);_0x5d96b3[_0x216d('0x39')]=_[_0x216d('0x38')](_0x462225[_0x216d('0x34')],qs[_0x216d('0x3a')](_0x59fa28[_0x216d('0x35')][_0x216d('0x3a')]));_0x5d96b3[_0x216d('0x39')]=_0x5d96b3[_0x216d('0x39')][_0x216d('0x3b')]?_0x5d96b3[_0x216d('0x39')]:_0x462225[_0x216d('0x34')];if(!_0x59fa28['query']['hasOwnProperty'](_0x216d('0x56'))){_0x5d96b3[_0x216d('0x21')]=qs['limit'](_0x59fa28[_0x216d('0x35')]['limit']);_0x5d96b3['offset']=qs[_0x216d('0x1f')](_0x59fa28[_0x216d('0x35')][_0x216d('0x1f')]);}_0x5d96b3[_0x216d('0x3c')]=qs[_0x216d('0x3d')](_0x59fa28[_0x216d('0x35')][_0x216d('0x3d')]);_0x5d96b3[_0x216d('0x40')]=qs[_0x216d('0x37')](_[_0x216d('0x3e')](_0x59fa28[_0x216d('0x35')],_0x462225[_0x216d('0x37')]));if(_0x59fa28[_0x216d('0x35')][_0x216d('0x3f')]){_0x5d96b3[_0x216d('0x40')]=_[_0x216d('0x41')](_0x5d96b3[_0x216d('0x40')],{'$or':_[_0x216d('0x2e')](_0x5d96b3[_0x216d('0x39')],function(_0x34540e){var _0xb9302={};_0xb9302[_0x34540e]={'$like':'%'+_0x59fa28[_0x216d('0x35')]['filter']+'%'};return _0xb9302;})});}_0x5d96b3[_0x216d('0x40')]=_['merge'](_0x5d96b3[_0x216d('0x40')],{'mailboxuser':_0x3acd4b['mailbox']});_0x5d96b3=_[_0x216d('0x41')]({},_0x5d96b3,_0x59fa28[_0x216d('0x42')]);return db['VoiceMailMessage'][_0x216d('0x57')](_0x5d96b3)[_0x216d('0x27')](respondWithFilteredResult(_0x4edf77,_0x5d96b3));})[_0x216d('0x4f')](handleError(_0x4edf77,null));};
\ No newline at end of file
+var _0x1c7c=['sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','reject','save','update','then','destroy','get','Voicemails','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','VoiceMail','includeAll','include','findAll','rows','catch','params','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','getMessages','mailbox','VoiceMailMessage','findAndCountAll','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path'];(function(_0x1d70db,_0x142b63){var _0x3060c6=function(_0x347866){while(--_0x347866){_0x1d70db['push'](_0x1d70db['shift']());}};_0x3060c6(++_0x142b63);}(_0x1c7c,0x164));var _0xc1c7=function(_0xccf4a7,_0x41e50d){_0xccf4a7=_0xccf4a7-0x0;var _0x392495=_0x1c7c[_0xccf4a7];return _0x392495;};'use strict';var emlformat=require(_0xc1c7('0x0'));var rimraf=require(_0xc1c7('0x1'));var zipdir=require(_0xc1c7('0x2'));var jsonpatch=require(_0xc1c7('0x3'));var rp=require('request-promise');var moment=require(_0xc1c7('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xc1c7('0x5'));var util=require(_0xc1c7('0x6'));var path=require(_0xc1c7('0x7'));var sox=require(_0xc1c7('0x8'));var csv=require(_0xc1c7('0x9'));var ejs=require(_0xc1c7('0xa'));var fs=require('fs');var fs_extra=require(_0xc1c7('0xb'));var _=require(_0xc1c7('0xc'));var squel=require(_0xc1c7('0xd'));var crypto=require(_0xc1c7('0xe'));var jsforce=require(_0xc1c7('0xf'));var deskjs=require(_0xc1c7('0x10'));var toCsv=require(_0xc1c7('0x9'));var querystring=require(_0xc1c7('0x11'));var Papa=require(_0xc1c7('0x12'));var Redis=require(_0xc1c7('0x13'));var authService=require(_0xc1c7('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xc1c7('0x15'));var hardwareService=require(_0xc1c7('0x16'));var logger=require('../../config/logger')(_0xc1c7('0x17'));var utils=require(_0xc1c7('0x18'));var config=require(_0xc1c7('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xc1c7('0x1a'))['db'];function respondWithStatusCode(_0x44bf88,_0x376cab){_0x376cab=_0x376cab||0xcc;return function(_0x35feaa){if(_0x35feaa){return _0x44bf88[_0xc1c7('0x1b')](_0x376cab);}return _0x44bf88[_0xc1c7('0x1c')](_0x376cab)[_0xc1c7('0x1d')]();};}function respondWithResult(_0x1b57ab,_0xdfc7d9){_0xdfc7d9=_0xdfc7d9||0xc8;return function(_0x1b6905){if(_0x1b6905){return _0x1b57ab[_0xc1c7('0x1c')](_0xdfc7d9)[_0xc1c7('0x1e')](_0x1b6905);}};}function respondWithFilteredResult(_0x49576d,_0x3e1f0e){return function(_0x335600){if(_0x335600){var _0x21911c=typeof _0x3e1f0e['offset']===_0xc1c7('0x1f')&&typeof _0x3e1f0e[_0xc1c7('0x20')]===_0xc1c7('0x1f');var _0x39ac54=_0x335600[_0xc1c7('0x21')];var _0xb42702=_0x21911c?0x0:_0x3e1f0e[_0xc1c7('0x22')];var _0x2e93e5=_0x21911c?_0x335600['count']:_0x3e1f0e[_0xc1c7('0x22')]+_0x3e1f0e[_0xc1c7('0x20')];var _0x3ec66a;if(_0x2e93e5>=_0x39ac54){_0x2e93e5=_0x39ac54;_0x3ec66a=0xc8;}else{_0x3ec66a=0xce;}_0x49576d[_0xc1c7('0x1c')](_0x3ec66a);return _0x49576d['set'](_0xc1c7('0x23'),_0xb42702+'-'+_0x2e93e5+'/'+_0x39ac54)['json'](_0x335600);}return null;};}function patchUpdates(_0x5e7e4a){return function(_0x195c5f){try{jsonpatch['apply'](_0x195c5f,_0x5e7e4a,!![]);}catch(_0x5846f0){return BPromise[_0xc1c7('0x24')](_0x5846f0);}return _0x195c5f[_0xc1c7('0x25')]();};}function saveUpdates(_0x2f1b87,_0x4c6b34){return function(_0x813853){if(_0x813853){return _0x813853[_0xc1c7('0x26')](_0x2f1b87)[_0xc1c7('0x27')](function(_0x31a0e0){return _0x31a0e0;});}return null;};}function removeEntity(_0x2e64c4,_0x3a2483){return function(_0x3180fd){if(_0x3180fd){return _0x3180fd[_0xc1c7('0x28')]()[_0xc1c7('0x27')](function(){var _0x1540c1=_0x3180fd[_0xc1c7('0x29')]({'plain':!![]});var _0x363fbc=_0xc1c7('0x2a');return db[_0xc1c7('0x2b')][_0xc1c7('0x28')]({'where':{'type':_0x363fbc,'resourceId':_0x1540c1['id']}})[_0xc1c7('0x27')](function(){return _0x3180fd;});})['then'](function(){_0x2e64c4[_0xc1c7('0x1c')](0xcc)[_0xc1c7('0x1d')]();});}};}function handleEntityNotFound(_0x4e1721,_0x52a1d5){return function(_0x352f24){if(!_0x352f24){_0x4e1721['sendStatus'](0x194);}return _0x352f24;};}function handleError(_0x544fbb,_0x541f12){_0x541f12=_0x541f12||0x1f4;return function(_0x1b873c){logger[_0xc1c7('0x2c')](_0x1b873c[_0xc1c7('0x2d')]);if(_0x1b873c[_0xc1c7('0x2e')]){delete _0x1b873c['name'];}_0x544fbb['status'](_0x541f12)[_0xc1c7('0x2f')](_0x1b873c);};}exports[_0xc1c7('0x30')]=function(_0x9a0ab3,_0x3a786f){var _0x2e35f1={},_0x4968b0={},_0x50042f={'count':0x0,'rows':[]};var _0x125920=_[_0xc1c7('0x31')](db['VoiceMail'][_0xc1c7('0x32')],function(_0x3cf425){return{'name':_0x3cf425[_0xc1c7('0x33')],'type':_0x3cf425[_0xc1c7('0x34')][_0xc1c7('0x35')]};});_0x4968b0[_0xc1c7('0x36')]=_[_0xc1c7('0x31')](_0x125920,'name');_0x4968b0[_0xc1c7('0x37')]=_[_0xc1c7('0x38')](_0x9a0ab3[_0xc1c7('0x37')]);_0x4968b0[_0xc1c7('0x39')]=_[_0xc1c7('0x3a')](_0x4968b0[_0xc1c7('0x36')],_0x4968b0[_0xc1c7('0x37')]);_0x2e35f1[_0xc1c7('0x3b')]=_[_0xc1c7('0x3a')](_0x4968b0['model'],qs['fields'](_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x3c')]));_0x2e35f1[_0xc1c7('0x3b')]=_0x2e35f1[_0xc1c7('0x3b')][_0xc1c7('0x3d')]?_0x2e35f1[_0xc1c7('0x3b')]:_0x4968b0[_0xc1c7('0x36')];if(!_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x3e')](_0xc1c7('0x3f'))){_0x2e35f1[_0xc1c7('0x20')]=qs[_0xc1c7('0x20')](_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x20')]);_0x2e35f1[_0xc1c7('0x22')]=qs[_0xc1c7('0x22')](_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x22')]);}_0x2e35f1[_0xc1c7('0x40')]=qs[_0xc1c7('0x41')](_0x9a0ab3[_0xc1c7('0x37')]['sort']);_0x2e35f1['where']=qs['filters'](_[_0xc1c7('0x42')](_0x9a0ab3['query'],_0x4968b0['filters']),_0x125920);if(_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x43')]){_0x2e35f1[_0xc1c7('0x44')]=_[_0xc1c7('0x45')](_0x2e35f1['where'],{'$or':_[_0xc1c7('0x31')](_0x125920,function(_0x25e005){if(_0x25e005[_0xc1c7('0x34')]!==_0xc1c7('0x46')){var _0x1a395c={};_0x1a395c[_0x25e005[_0xc1c7('0x2e')]]={'$like':'%'+_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x43')]+'%'};return _0x1a395c;}})});}_0x2e35f1=_[_0xc1c7('0x45')]({},_0x2e35f1,_0x9a0ab3[_0xc1c7('0x47')]);var _0x955ba6={'where':_0x2e35f1[_0xc1c7('0x44')]};return db[_0xc1c7('0x48')]['count'](_0x955ba6)[_0xc1c7('0x27')](function(_0x412520){_0x50042f['count']=_0x412520;if(_0x9a0ab3[_0xc1c7('0x37')][_0xc1c7('0x49')]){_0x2e35f1[_0xc1c7('0x4a')]=[{'all':!![]}];}return db[_0xc1c7('0x48')][_0xc1c7('0x4b')](_0x2e35f1);})[_0xc1c7('0x27')](function(_0xd5e06a){_0x50042f[_0xc1c7('0x4c')]=_0xd5e06a;return _0x50042f;})[_0xc1c7('0x27')](respondWithFilteredResult(_0x3a786f,_0x2e35f1))[_0xc1c7('0x4d')](handleError(_0x3a786f,null));};exports['show']=function(_0x14b61f,_0x16fbf5){var _0x519665={'raw':!![],'where':{'id':_0x14b61f[_0xc1c7('0x4e')]['id']}},_0x4c6834={};_0x4c6834[_0xc1c7('0x36')]=_[_0xc1c7('0x38')](db[_0xc1c7('0x48')][_0xc1c7('0x32')]);_0x4c6834['query']=_[_0xc1c7('0x38')](_0x14b61f[_0xc1c7('0x37')]);_0x4c6834['filters']=_['intersection'](_0x4c6834['model'],_0x4c6834[_0xc1c7('0x37')]);_0x519665[_0xc1c7('0x3b')]=_[_0xc1c7('0x3a')](_0x4c6834['model'],qs[_0xc1c7('0x3c')](_0x14b61f[_0xc1c7('0x37')]['fields']));_0x519665[_0xc1c7('0x3b')]=_0x519665[_0xc1c7('0x3b')][_0xc1c7('0x3d')]?_0x519665[_0xc1c7('0x3b')]:_0x4c6834[_0xc1c7('0x36')];if(_0x14b61f[_0xc1c7('0x37')][_0xc1c7('0x49')]){_0x519665[_0xc1c7('0x4a')]=[{'all':!![]}];}_0x519665=_[_0xc1c7('0x45')]({},_0x519665,_0x14b61f[_0xc1c7('0x47')]);return db[_0xc1c7('0x48')][_0xc1c7('0x4f')](_0x519665)[_0xc1c7('0x27')](handleEntityNotFound(_0x16fbf5,null))[_0xc1c7('0x27')](respondWithResult(_0x16fbf5,null))[_0xc1c7('0x4d')](handleError(_0x16fbf5,null));};exports[_0xc1c7('0x50')]=function(_0x2967b7,_0x1addc8){return db['VoiceMail'][_0xc1c7('0x50')](_0x2967b7['body'],{})[_0xc1c7('0x27')](function(_0x23f42f){var _0x2840a3=_0x2967b7['user'][_0xc1c7('0x29')]({'plain':!![]});if(!_0x2840a3)throw new Error(_0xc1c7('0x51'));if(_0x2840a3['role']==='user'){var _0x5c96cc=_0x23f42f[_0xc1c7('0x29')]({'plain':!![]});var _0x415416='Voicemails';return db[_0xc1c7('0x52')][_0xc1c7('0x4f')]({'where':{'name':_0x415416,'userProfileId':_0x2840a3[_0xc1c7('0x53')]},'raw':!![]})[_0xc1c7('0x27')](function(_0x37374c){if(_0x37374c&&_0x37374c[_0xc1c7('0x54')]===0x0){return db['UserProfileResource'][_0xc1c7('0x50')]({'name':_0x5c96cc['name'],'resourceId':_0x5c96cc['id'],'type':_0x37374c[_0xc1c7('0x2e')],'sectionId':_0x37374c['id']},{})[_0xc1c7('0x27')](function(){return _0x23f42f;});}else{return _0x23f42f;}})[_0xc1c7('0x4d')](function(_0x557cb6){logger[_0xc1c7('0x2c')](_0xc1c7('0x55'),_0x557cb6);throw _0x557cb6;});}return _0x23f42f;})[_0xc1c7('0x27')](respondWithResult(_0x1addc8,0xc9))[_0xc1c7('0x4d')](handleError(_0x1addc8,null));};exports[_0xc1c7('0x26')]=function(_0x45dfa2,_0x1dc39f){if(_0x45dfa2[_0xc1c7('0x56')]['id']){delete _0x45dfa2['body']['id'];}return db[_0xc1c7('0x48')][_0xc1c7('0x4f')]({'where':{'id':_0x45dfa2[_0xc1c7('0x4e')]['id']}})['then'](handleEntityNotFound(_0x1dc39f,null))['then'](saveUpdates(_0x45dfa2[_0xc1c7('0x56')],null))[_0xc1c7('0x27')](respondWithResult(_0x1dc39f,null))[_0xc1c7('0x4d')](handleError(_0x1dc39f,null));};exports['destroy']=function(_0x1c636c,_0x48304a){return db[_0xc1c7('0x48')][_0xc1c7('0x4f')]({'where':{'id':_0x1c636c[_0xc1c7('0x4e')]['id']}})[_0xc1c7('0x27')](handleEntityNotFound(_0x48304a,null))[_0xc1c7('0x27')](removeEntity(_0x48304a,null))[_0xc1c7('0x4d')](handleError(_0x48304a,null));};exports[_0xc1c7('0x57')]=function(_0x4df2f8,_0x11c116,_0x2ad2d5){return db[_0xc1c7('0x48')]['findOne']({'where':{'id':_0x4df2f8[_0xc1c7('0x4e')]['id']}})['then'](handleEntityNotFound(_0x11c116,null))[_0xc1c7('0x27')](function(_0x528986){var _0x39d3e2;var _0x212d53={},_0x314232={};_0x314232[_0xc1c7('0x36')]=_[_0xc1c7('0x38')](db['VoiceMailMessage']['rawAttributes']);_0x314232['query']=_[_0xc1c7('0x38')](_0x4df2f8[_0xc1c7('0x37')]);_0x314232[_0xc1c7('0x39')]=_[_0xc1c7('0x3a')](_0x314232[_0xc1c7('0x36')],_0x314232[_0xc1c7('0x37')]);_0x212d53['attributes']=_[_0xc1c7('0x3a')](_0x314232[_0xc1c7('0x36')],qs[_0xc1c7('0x3c')](_0x4df2f8[_0xc1c7('0x37')]['fields']));_0x212d53[_0xc1c7('0x3b')]=_0x212d53[_0xc1c7('0x3b')][_0xc1c7('0x3d')]?_0x212d53['attributes']:_0x314232[_0xc1c7('0x36')];if(!_0x4df2f8[_0xc1c7('0x37')][_0xc1c7('0x3e')](_0xc1c7('0x3f'))){_0x212d53['limit']=qs['limit'](_0x4df2f8[_0xc1c7('0x37')][_0xc1c7('0x20')]);_0x212d53['offset']=qs[_0xc1c7('0x22')](_0x4df2f8[_0xc1c7('0x37')]['offset']);}_0x212d53[_0xc1c7('0x40')]=qs[_0xc1c7('0x41')](_0x4df2f8['query'][_0xc1c7('0x41')]);_0x212d53[_0xc1c7('0x44')]=qs[_0xc1c7('0x39')](_[_0xc1c7('0x42')](_0x4df2f8[_0xc1c7('0x37')],_0x314232[_0xc1c7('0x39')]));if(_0x4df2f8[_0xc1c7('0x37')][_0xc1c7('0x43')]){_0x212d53[_0xc1c7('0x44')]=_[_0xc1c7('0x45')](_0x212d53[_0xc1c7('0x44')],{'$or':_[_0xc1c7('0x31')](_0x212d53[_0xc1c7('0x3b')],function(_0x3c9ffe){var _0x342fc8={};_0x342fc8[_0x3c9ffe]={'$like':'%'+_0x4df2f8[_0xc1c7('0x37')][_0xc1c7('0x43')]+'%'};return _0x342fc8;})});}_0x212d53[_0xc1c7('0x44')]=_[_0xc1c7('0x45')](_0x212d53[_0xc1c7('0x44')],{'mailboxuser':_0x528986[_0xc1c7('0x58')]});_0x212d53=_[_0xc1c7('0x45')]({},_0x212d53,_0x4df2f8[_0xc1c7('0x47')]);return db[_0xc1c7('0x59')][_0xc1c7('0x5a')](_0x212d53)[_0xc1c7('0x27')](respondWithFilteredResult(_0x11c116,_0x212d53));})[_0xc1c7('0x4d')](handleError(_0x11c116,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40a2=['../../config/environment','exports','define','VoiceMail','voice_voicemail','mailbox_context','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x49a05e,_0x39a3e3){var _0xbf2391=function(_0x36ca04){while(--_0x36ca04){_0x49a05e['push'](_0x49a05e['shift']());}};_0xbf2391(++_0x39a3e3);}(_0x40a2,0x1d4));var _0x240a=function(_0xccdc5c,_0x4fb2dd){_0xccdc5c=_0xccdc5c-0x0;var _0x454a8c=_0x40a2[_0xccdc5c];return _0x454a8c;};'use strict';var _=require(_0x240a('0x0'));var util=require(_0x240a('0x1'));var logger=require(_0x240a('0x2'))(_0x240a('0x3'));var moment=require(_0x240a('0x4'));var BPromise=require(_0x240a('0x5'));var rp=require(_0x240a('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x240a('0x7'));var config=require(_0x240a('0x8'));var attributes=require('./voiceMail.attributes');module[_0x240a('0x9')]=function(_0x42769b,_0xa24cd2){return _0x42769b[_0x240a('0xa')](_0x240a('0xb'),attributes,{'tableName':_0x240a('0xc'),'paranoid':![],'indexes':[{'name':_0x240a('0xd'),'fields':['mailbox','context']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xcee6=['path','../../config/environment','define','VoiceMail','voice_voicemail','mailbox_context','mailbox','context','util','../../config/logger','api','moment','request-promise'];(function(_0x3d5da8,_0x368f59){var _0x1b8412=function(_0x4d94a3){while(--_0x4d94a3){_0x3d5da8['push'](_0x3d5da8['shift']());}};_0x1b8412(++_0x368f59);}(_0xcee6,0xbe));var _0x6cee=function(_0x2405bc,_0x2f28a1){_0x2405bc=_0x2405bc-0x0;var _0x5272d4=_0xcee6[_0x2405bc];return _0x5272d4;};'use strict';var _=require('lodash');var util=require(_0x6cee('0x0'));var logger=require(_0x6cee('0x1'))(_0x6cee('0x2'));var moment=require(_0x6cee('0x3'));var BPromise=require('bluebird');var rp=require(_0x6cee('0x4'));var fs=require('fs');var path=require(_0x6cee('0x5'));var rimraf=require('rimraf');var config=require(_0x6cee('0x6'));var attributes=require('./voiceMail.attributes');module['exports']=function(_0x40e56b,_0x3ef339){return _0x40e56b[_0x6cee('0x7')](_0x6cee('0x8'),attributes,{'tableName':_0x6cee('0x9'),'paranoid':![],'indexes':[{'name':_0x6cee('0xa'),'fields':[_0x6cee('0xb'),_0x6cee('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x291f=['http','request','info','VoiceMail,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x1f8282,_0x3213f5){var _0x4ef5f3=function(_0x2abd72){while(--_0x2abd72){_0x1f8282['push'](_0x1f8282['shift']());}};_0x4ef5f3(++_0x3213f5);}(_0x291f,0xb2));var _0xf291=function(_0x421512,_0x399a71){_0x421512=_0x421512-0x0;var _0x3c5bb0=_0x291f[_0x421512];return _0x3c5bb0;};'use strict';var _=require('lodash');var util=require(_0xf291('0x0'));var moment=require(_0xf291('0x1'));var BPromise=require(_0xf291('0x2'));var rs=require(_0xf291('0x3'));var fs=require('fs');var Redis=require(_0xf291('0x4'));var db=require(_0xf291('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xf291('0x6'))(_0xf291('0x7'));var config=require(_0xf291('0x8'));var jayson=require(_0xf291('0x9'));var client=jayson[_0xf291('0xa')][_0xf291('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x559bce,_0x198079,_0x3cb299){return new BPromise(function(_0x18607b,_0x31aadc){return client[_0xf291('0xc')](_0x559bce,_0x3cb299)['then'](function(_0x4b6ca1){logger[_0xf291('0xd')](_0xf291('0xe'),_0x198079,_0xf291('0xf'));logger[_0xf291('0x10')]('VoiceMail,\x20%s,\x20%s,\x20%s',_0x198079,_0xf291('0xf'),JSON[_0xf291('0x11')](_0x4b6ca1));if(_0x4b6ca1[_0xf291('0x12')]){if(_0x4b6ca1[_0xf291('0x12')]['code']===0x1f4){logger[_0xf291('0x12')](_0xf291('0xe'),_0x198079,_0x4b6ca1[_0xf291('0x12')][_0xf291('0x13')]);return _0x31aadc(_0x4b6ca1[_0xf291('0x12')][_0xf291('0x13')]);}logger['error'](_0xf291('0xe'),_0x198079,_0x4b6ca1['error'][_0xf291('0x13')]);return _0x18607b(_0x4b6ca1[_0xf291('0x12')][_0xf291('0x13')]);}else{logger[_0xf291('0xd')]('VoiceMail,\x20%s,\x20%s',_0x198079,_0xf291('0xf'));_0x18607b(_0x4b6ca1[_0xf291('0x14')][_0xf291('0x13')]);}})['catch'](function(_0x29ae43){logger['error'](_0xf291('0xe'),_0x198079,_0x29ae43);_0x31aadc(_0x29ae43);});});}
\ No newline at end of file
+var _0xf4c7=['stringify','error','code','message','info','result','catch','lodash','util','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','VoiceMail,\x20%s,\x20%s','debug','request\x20sent'];(function(_0x24c13b,_0x124dfe){var _0x5d0b3b=function(_0x3855da){while(--_0x3855da){_0x24c13b['push'](_0x24c13b['shift']());}};_0x5d0b3b(++_0x124dfe);}(_0xf4c7,0x193));var _0x7f4c=function(_0x14a513,_0x3239f){_0x14a513=_0x14a513-0x0;var _0x47236c=_0xf4c7[_0x14a513];return _0x47236c;};'use strict';var _=require(_0x7f4c('0x0'));var util=require(_0x7f4c('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x7f4c('0x2'));var fs=require('fs');var Redis=require(_0x7f4c('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x7f4c('0x4'));var logger=require('../../config/logger')(_0x7f4c('0x5'));var config=require(_0x7f4c('0x6'));var jayson=require(_0x7f4c('0x7'));var client=jayson[_0x7f4c('0x8')][_0x7f4c('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x50ad37,_0x4cb361,_0x1731e9){return new BPromise(function(_0x7f04ca,_0x3b8d91){return client[_0x7f4c('0xa')](_0x50ad37,_0x1731e9)[_0x7f4c('0xb')](function(_0x3ccb79){logger['info'](_0x7f4c('0xc'),_0x4cb361,'request\x20sent');logger[_0x7f4c('0xd')]('VoiceMail,\x20%s,\x20%s,\x20%s',_0x4cb361,_0x7f4c('0xe'),JSON[_0x7f4c('0xf')](_0x3ccb79));if(_0x3ccb79['error']){if(_0x3ccb79[_0x7f4c('0x10')][_0x7f4c('0x11')]===0x1f4){logger[_0x7f4c('0x10')](_0x7f4c('0xc'),_0x4cb361,_0x3ccb79[_0x7f4c('0x10')][_0x7f4c('0x12')]);return _0x3b8d91(_0x3ccb79[_0x7f4c('0x10')]['message']);}logger['error'](_0x7f4c('0xc'),_0x4cb361,_0x3ccb79[_0x7f4c('0x10')][_0x7f4c('0x12')]);return _0x7f04ca(_0x3ccb79[_0x7f4c('0x10')][_0x7f4c('0x12')]);}else{logger[_0x7f4c('0x13')](_0x7f4c('0xc'),_0x4cb361,_0x7f4c('0xe'));_0x7f04ca(_0x3ccb79[_0x7f4c('0x14')][_0x7f4c('0x12')]);}})[_0x7f4c('0x15')](function(_0x4a8cff){logger[_0x7f4c('0x10')](_0x7f4c('0xc'),_0x4cb361,_0x4a8cff);_0x3b8d91(_0x4a8cff);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb8=['fs-extra','../../components/auth/service','../../config/environment','./voiceMailMessage.controller','index','/:id','show','/:id/download','download','post','create','put','update','delete','isAuthenticated','destroy','multer','util','path','connect-timeout'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xadb8,0x164));var _0x8adb=function(_0x46ce98,_0x52d764){_0x46ce98=_0x46ce98-0x0;var _0x172f46=_0xadb8[_0x46ce98];return _0x172f46;};'use strict';var multer=require(_0x8adb('0x0'));var util=require(_0x8adb('0x1'));var path=require(_0x8adb('0x2'));var timeout=require(_0x8adb('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x8adb('0x4'));var auth=require(_0x8adb('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x8adb('0x6'));var controller=require(_0x8adb('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x8adb('0x8')]);router['get'](_0x8adb('0x9'),auth['isAuthenticated'](),controller[_0x8adb('0xa')]);router['get'](_0x8adb('0xb'),auth['isAuthenticated'](),controller[_0x8adb('0xc')]);router[_0x8adb('0xd')]('/',auth['isAuthenticated'](),controller[_0x8adb('0xe')]);router[_0x8adb('0xf')](_0x8adb('0x9'),auth['isAuthenticated'](),controller[_0x8adb('0x10')]);router[_0x8adb('0x11')](_0x8adb('0x9'),auth[_0x8adb('0x12')](),controller[_0x8adb('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0xc70b=['/:id','show','download','update','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','./voiceMailMessage.controller','isAuthenticated','index','get'];(function(_0x53143b,_0x300df7){var _0x509f40=function(_0x5a340a){while(--_0x5a340a){_0x53143b['push'](_0x53143b['shift']());}};_0x509f40(++_0x300df7);}(_0xc70b,0x1a5));var _0xbc70=function(_0x508010,_0x113bb7){_0x508010=_0x508010-0x0;var _0x29213c=_0xc70b[_0x508010];return _0x29213c;};'use strict';var multer=require(_0xbc70('0x0'));var util=require(_0xbc70('0x1'));var path=require(_0xbc70('0x2'));var timeout=require(_0xbc70('0x3'));var express=require(_0xbc70('0x4'));var router=express['Router']();var fs_extra=require(_0xbc70('0x5'));var auth=require(_0xbc70('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xbc70('0x7'));router['get']('/',auth[_0xbc70('0x8')](),controller[_0xbc70('0x9')]);router[_0xbc70('0xa')](_0xbc70('0xb'),auth[_0xbc70('0x8')](),controller[_0xbc70('0xc')]);router[_0xbc70('0xa')]('/:id/download',auth[_0xbc70('0x8')](),controller[_0xbc70('0xd')]);router['post']('/',auth[_0xbc70('0x8')](),controller['create']);router['put'](_0xbc70('0xb'),auth[_0xbc70('0x8')](),controller[_0xbc70('0xe')]);router['delete'](_0xbc70('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xbc70('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd8a=['VIRTUAL','STRING','TIMESTAMP','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize','exports'];(function(_0x481bf7,_0x437f69){var _0x461787=function(_0xb3bc9d){while(--_0xb3bc9d){_0x481bf7['push'](_0x481bf7['shift']());}};_0x461787(++_0x437f69);}(_0xdd8a,0x67));var _0xadd8=function(_0x4b3e49,_0x9e566c){_0x4b3e49=_0x4b3e49-0x0;var _0x57e339=_0xdd8a[_0x4b3e49];return _0x57e339;};'use strict';var Sequelize=require(_0xadd8('0x0'));module[_0xadd8('0x1')]={'name':{'type':Sequelize[_0xadd8('0x2')],'get':function(_0xdebd35){return this['getDataValue']('id');}},'msgnum':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xadd8('0x3')],'defaultValue':''},'context':{'type':Sequelize[_0xadd8('0x3')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0xadd8('0x3')],'defaultValue':''},'callerid':{'type':Sequelize['STRING'],'defaultValue':''},'origtime':{'type':Sequelize[_0xadd8('0x3')],'defaultValue':''},'duration':{'type':Sequelize['STRING'],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0xadd8('0x3')],'defaultValue':''},'mailboxcontext':{'type':Sequelize['STRING'],'defaultValue':''},'recording':{'type':Sequelize['BLOB']('long'),'defaultValue':null},'flag':{'type':Sequelize[_0xadd8('0x3')],'defaultValue':''},'msg_id':{'type':Sequelize['STRING'],'defaultValue':''},'stamp':{'type':_0xadd8('0x4'),'defaultValue':Sequelize[_0xadd8('0x5')](_0xadd8('0x6'))}};
\ No newline at end of file
+var _0x2b54=['getDataValue','INTEGER','STRING','TIMESTAMP','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP','sequelize','exports','VIRTUAL'];(function(_0x24f31b,_0x44b8f3){var _0x488401=function(_0x204caf){while(--_0x204caf){_0x24f31b['push'](_0x24f31b['shift']());}};_0x488401(++_0x44b8f3);}(_0x2b54,0x153));var _0x42b5=function(_0x4bf5f0,_0x576274){_0x4bf5f0=_0x4bf5f0-0x0;var _0x397ef4=_0x2b54[_0x4bf5f0];return _0x397ef4;};'use strict';var Sequelize=require(_0x42b5('0x0'));module[_0x42b5('0x1')]={'name':{'type':Sequelize[_0x42b5('0x2')],'get':function(_0x3835cc){return this[_0x42b5('0x3')]('id');}},'msgnum':{'type':Sequelize[_0x42b5('0x4')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize['STRING'],'defaultValue':''},'context':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'callerid':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'origtime':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'duration':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'mailboxuser':{'type':Sequelize['STRING'],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'recording':{'type':Sequelize['BLOB']('long'),'defaultValue':null},'flag':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'msg_id':{'type':Sequelize[_0x42b5('0x5')],'defaultValue':''},'stamp':{'type':_0x42b5('0x6'),'defaultValue':Sequelize[_0x42b5('0x7')](_0x42b5('0x8'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56f9=['differenceBy','name','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','filters','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','rawAttributes','find','create','body','catch','destroy','download','recording','msg_id','Sequelize','ValidationError','audio/wav','.wav\x22','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','error','stack','send','index','map','VoiceMailMessage','fieldName','type','key','model'];(function(_0x1b3290,_0x581748){var _0x2140ca=function(_0x52bbf6){while(--_0x52bbf6){_0x1b3290['push'](_0x1b3290['shift']());}};_0x2140ca(++_0x581748);}(_0x56f9,0x174));var _0x956f=function(_0x12fdc7,_0x5bd907){_0x12fdc7=_0x12fdc7-0x0;var _0x5a6522=_0x56f9[_0x12fdc7];return _0x5a6522;};'use strict';var emlformat=require(_0x956f('0x0'));var rimraf=require(_0x956f('0x1'));var zipdir=require(_0x956f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x956f('0x3'));var moment=require(_0x956f('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x956f('0x5'));var util=require(_0x956f('0x6'));var path=require(_0x956f('0x7'));var sox=require(_0x956f('0x8'));var csv=require(_0x956f('0x9'));var ejs=require(_0x956f('0xa'));var fs=require('fs');var fs_extra=require(_0x956f('0xb'));var _=require('lodash');var squel=require(_0x956f('0xc'));var crypto=require(_0x956f('0xd'));var jsforce=require(_0x956f('0xe'));var deskjs=require(_0x956f('0xf'));var toCsv=require(_0x956f('0x9'));var querystring=require(_0x956f('0x10'));var Papa=require(_0x956f('0x11'));var Redis=require(_0x956f('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x956f('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x956f('0x14'));var logger=require('../../config/logger')(_0x956f('0x15'));var utils=require(_0x956f('0x16'));var config=require(_0x956f('0x17'));var licenseUtil=require(_0x956f('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x510c4b,_0x456f3b){_0x456f3b=_0x456f3b||0xcc;return function(_0x3f869e){if(_0x3f869e){return _0x510c4b[_0x956f('0x19')](_0x456f3b);}return _0x510c4b[_0x956f('0x1a')](_0x456f3b)[_0x956f('0x1b')]();};}function respondWithResult(_0x48155c,_0x3455b1){_0x3455b1=_0x3455b1||0xc8;return function(_0x23a5c7){if(_0x23a5c7){return _0x48155c[_0x956f('0x1a')](_0x3455b1)[_0x956f('0x1c')](_0x23a5c7);}};}function respondWithFilteredResult(_0x64b224,_0x11e3c6){return function(_0x4939b8){if(_0x4939b8){var _0x5ca3e6=typeof _0x11e3c6[_0x956f('0x1d')]===_0x956f('0x1e')&&typeof _0x11e3c6[_0x956f('0x1f')]===_0x956f('0x1e');var _0x50a8ab=_0x4939b8[_0x956f('0x20')];var _0x4668db=_0x5ca3e6?0x0:_0x11e3c6['offset'];var _0x2ecb5c=_0x5ca3e6?_0x4939b8[_0x956f('0x20')]:_0x11e3c6[_0x956f('0x1d')]+_0x11e3c6[_0x956f('0x1f')];var _0x53d81d;if(_0x2ecb5c>=_0x50a8ab){_0x2ecb5c=_0x50a8ab;_0x53d81d=0xc8;}else{_0x53d81d=0xce;}_0x64b224[_0x956f('0x1a')](_0x53d81d);return _0x64b224[_0x956f('0x21')](_0x956f('0x22'),_0x4668db+'-'+_0x2ecb5c+'/'+_0x50a8ab)[_0x956f('0x1c')](_0x4939b8);}return null;};}function patchUpdates(_0x421fe7){return function(_0x25d630){try{jsonpatch[_0x956f('0x23')](_0x25d630,_0x421fe7,!![]);}catch(_0x456ce9){return BPromise['reject'](_0x456ce9);}return _0x25d630['save']();};}function saveUpdates(_0x544ebc,_0x3f2d17){return function(_0xd459d7){if(_0xd459d7){return _0xd459d7[_0x956f('0x24')](_0x544ebc)[_0x956f('0x25')](function(_0x4a5e2f){return _0x4a5e2f;});}return null;};}function removeEntity(_0x2f0ae9,_0x5317da){return function(_0x4aa69a){if(_0x4aa69a){return _0x4aa69a['destroy']()['then'](function(){_0x2f0ae9['status'](0xcc)[_0x956f('0x1b')]();});}};}function handleEntityNotFound(_0x39cc91,_0x2eae15){return function(_0x98f80f){if(!_0x98f80f){_0x39cc91['sendStatus'](0x194);}return _0x98f80f;};}function handleError(_0x5f39b7,_0x1d89d9){_0x1d89d9=_0x1d89d9||0x1f4;return function(_0x9a4483){logger[_0x956f('0x26')](_0x9a4483[_0x956f('0x27')]);if(_0x9a4483['name']){delete _0x9a4483['name'];}_0x5f39b7[_0x956f('0x1a')](_0x1d89d9)[_0x956f('0x28')](_0x9a4483);};}exports[_0x956f('0x29')]=function(_0x50cc84,_0x4bcb3f){var _0x3d0964={},_0x208482={},_0x33ca0a={'count':0x0,'rows':[]};var _0x371874=_[_0x956f('0x2a')](db[_0x956f('0x2b')]['rawAttributes'],function(_0x2ad413){return{'name':_0x2ad413[_0x956f('0x2c')],'type':_0x2ad413[_0x956f('0x2d')][_0x956f('0x2e')]};});_0x208482[_0x956f('0x2f')]=_[_0x956f('0x30')](_[_0x956f('0x2a')](_0x371874,_0x956f('0x31')),['name']);_0x208482[_0x956f('0x32')]=_[_0x956f('0x33')](_0x50cc84['query']);_0x208482['filters']=_[_0x956f('0x34')](_0x208482[_0x956f('0x2f')],_0x208482[_0x956f('0x32')]);_0x3d0964[_0x956f('0x35')]=_[_0x956f('0x34')](_0x208482[_0x956f('0x2f')],qs[_0x956f('0x36')](_0x50cc84[_0x956f('0x32')][_0x956f('0x36')]));_0x3d0964[_0x956f('0x35')]=_0x3d0964[_0x956f('0x35')][_0x956f('0x37')]?_0x3d0964['attributes']:_0x208482[_0x956f('0x2f')];if(!_0x50cc84[_0x956f('0x32')][_0x956f('0x38')](_0x956f('0x39'))){_0x3d0964[_0x956f('0x1f')]=qs[_0x956f('0x1f')](_0x50cc84['query']['limit']);_0x3d0964[_0x956f('0x1d')]=qs[_0x956f('0x1d')](_0x50cc84[_0x956f('0x32')][_0x956f('0x1d')]);}_0x3d0964[_0x956f('0x3a')]=qs['sort'](_0x50cc84[_0x956f('0x32')]['sort']);_0x3d0964['where']=qs[_0x956f('0x3b')](_['pick'](_0x50cc84[_0x956f('0x32')],_0x208482[_0x956f('0x3b')]),_0x371874);if(_0x50cc84[_0x956f('0x32')][_0x956f('0x3c')]){_0x3d0964[_0x956f('0x3d')]=_[_0x956f('0x3e')](_0x3d0964[_0x956f('0x3d')],{'$or':_[_0x956f('0x2a')](_0x371874,function(_0x135203){if(_0x135203[_0x956f('0x2d')]!==_0x956f('0x3f')){var _0x5209f9={};_0x5209f9[_0x135203['name']]={'$like':'%'+_0x50cc84[_0x956f('0x32')][_0x956f('0x3c')]+'%'};return _0x5209f9;}})});}_0x3d0964=_[_0x956f('0x3e')]({},_0x3d0964,_0x50cc84[_0x956f('0x40')]);var _0x170537={'where':_0x3d0964[_0x956f('0x3d')]};return db[_0x956f('0x2b')][_0x956f('0x20')](_0x170537)[_0x956f('0x25')](function(_0x5467b1){_0x33ca0a[_0x956f('0x20')]=_0x5467b1;if(_0x50cc84[_0x956f('0x32')][_0x956f('0x41')]){_0x3d0964[_0x956f('0x42')]=[{'all':!![]}];}return db[_0x956f('0x2b')][_0x956f('0x43')](_0x3d0964);})[_0x956f('0x25')](function(_0x12cc2c){_0x33ca0a[_0x956f('0x44')]=_0x12cc2c;return _0x33ca0a;})[_0x956f('0x25')](respondWithFilteredResult(_0x4bcb3f,_0x3d0964))['catch'](handleError(_0x4bcb3f,null));};exports[_0x956f('0x45')]=function(_0x56e961,_0x5f3fa4){var _0x5731e5={'raw':!![],'where':{'id':_0x56e961[_0x956f('0x46')]['id']}},_0x3b2cfa={};_0x3b2cfa[_0x956f('0x2f')]=_[_0x956f('0x33')](db[_0x956f('0x2b')][_0x956f('0x47')]);_0x3b2cfa['query']=_['keys'](_0x56e961['query']);_0x3b2cfa[_0x956f('0x3b')]=_[_0x956f('0x34')](_0x3b2cfa[_0x956f('0x2f')],_0x3b2cfa['query']);_0x5731e5[_0x956f('0x35')]=_[_0x956f('0x34')](_0x3b2cfa[_0x956f('0x2f')],qs[_0x956f('0x36')](_0x56e961[_0x956f('0x32')][_0x956f('0x36')]));_0x5731e5[_0x956f('0x35')]=_0x5731e5[_0x956f('0x35')]['length']?_0x5731e5[_0x956f('0x35')]:_0x3b2cfa[_0x956f('0x2f')];if(_0x56e961[_0x956f('0x32')]['includeAll']){_0x5731e5[_0x956f('0x42')]=[{'all':!![]}];}_0x5731e5=_[_0x956f('0x3e')]({},_0x5731e5,_0x56e961[_0x956f('0x40')]);return db[_0x956f('0x2b')][_0x956f('0x48')](_0x5731e5)[_0x956f('0x25')](handleEntityNotFound(_0x5f3fa4,null))['then'](respondWithResult(_0x5f3fa4,null))['catch'](handleError(_0x5f3fa4,null));};exports[_0x956f('0x49')]=function(_0x373ab1,_0x14deb7){return db[_0x956f('0x2b')][_0x956f('0x49')](_0x373ab1[_0x956f('0x4a')],{})['then'](respondWithResult(_0x14deb7,0xc9))[_0x956f('0x4b')](handleError(_0x14deb7,null));};exports[_0x956f('0x24')]=function(_0x20f66a,_0xe9ecda){if(_0x20f66a['body']['id']){delete _0x20f66a[_0x956f('0x4a')]['id'];}return db[_0x956f('0x2b')][_0x956f('0x48')]({'where':{'id':_0x20f66a['params']['id']}})[_0x956f('0x25')](handleEntityNotFound(_0xe9ecda,null))['then'](saveUpdates(_0x20f66a[_0x956f('0x4a')],null))['then'](respondWithResult(_0xe9ecda,null))[_0x956f('0x4b')](handleError(_0xe9ecda,null));};exports[_0x956f('0x4c')]=function(_0x24760d,_0x55892d){return db[_0x956f('0x2b')][_0x956f('0x48')]({'where':{'id':_0x24760d['params']['id']}})['then'](handleEntityNotFound(_0x55892d,null))[_0x956f('0x25')](removeEntity(_0x55892d,null))[_0x956f('0x4b')](handleError(_0x55892d,null));};exports[_0x956f('0x4d')]=function(_0x4123ee,_0x56179b,_0x469115){return db[_0x956f('0x2b')][_0x956f('0x48')]({'where':{'id':_0x4123ee[_0x956f('0x46')]['id']},'attributes':['id',_0x956f('0x4e'),_0x956f('0x4f')]})['then'](handleEntityNotFound(_0x56179b,null))[_0x956f('0x25')](function(_0x30a2de){if(_0x30a2de){if(!_0x30a2de['recording']){throw new db[(_0x956f('0x50'))][(_0x956f('0x51'))]('VoiceMailMessage\x20not\x20found');}var _0x1f9965={'Content-Type':_0x956f('0x52'),'Content-Disposition':'attachment'};if(_0x30a2de[_0x956f('0x4f')]){_0x1f9965['Content-Disposition']='attachment;\x20filename=\x22'+_0x30a2de[_0x956f('0x4f')]+_0x956f('0x53');}_0x56179b[_0x956f('0x21')](_0x1f9965);return _0x56179b[_0x956f('0x28')](new Buffer(_0x30a2de[_0x956f('0x4e')]));}})[_0x956f('0x4b')](handleError(_0x56179b,null));};
\ No newline at end of file
+var _0xd939=['sendStatus','name','send','map','VoiceMailMessage','rawAttributes','type','key','model','differenceBy','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','merge','where','VIRTUAL','options','includeAll','include','catch','show','params','length','find','create','body','msg_id','recording','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','attachment','Content-Disposition','attachment;\x20filename=\x22','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy'];(function(_0x4ecedb,_0x2dffa3){var _0x3544cc=function(_0x107383){while(--_0x107383){_0x4ecedb['push'](_0x4ecedb['shift']());}};_0x3544cc(++_0x2dffa3);}(_0xd939,0x16e));var _0x9d93=function(_0x4c05da,_0x414720){_0x4c05da=_0x4c05da-0x0;var _0x1614db=_0xd939[_0x4c05da];return _0x1614db;};'use strict';var emlformat=require(_0x9d93('0x0'));var rimraf=require(_0x9d93('0x1'));var zipdir=require(_0x9d93('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9d93('0x3'));var moment=require(_0x9d93('0x4'));var BPromise=require(_0x9d93('0x5'));var Mustache=require(_0x9d93('0x6'));var util=require(_0x9d93('0x7'));var path=require('path');var sox=require(_0x9d93('0x8'));var csv=require(_0x9d93('0x9'));var ejs=require(_0x9d93('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9d93('0xb'));var squel=require('squel');var crypto=require(_0x9d93('0xc'));var jsforce=require(_0x9d93('0xd'));var deskjs=require(_0x9d93('0xe'));var toCsv=require(_0x9d93('0x9'));var querystring=require(_0x9d93('0xf'));var Papa=require(_0x9d93('0x10'));var Redis=require(_0x9d93('0x11'));var authService=require(_0x9d93('0x12'));var qs=require(_0x9d93('0x13'));var as=require(_0x9d93('0x14'));var hardwareService=require(_0x9d93('0x15'));var logger=require('../../config/logger')('api');var utils=require(_0x9d93('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x9d93('0x17'));var db=require(_0x9d93('0x18'))['db'];function respondWithStatusCode(_0x2a604e,_0x3f967a){_0x3f967a=_0x3f967a||0xcc;return function(_0x73d87d){if(_0x73d87d){return _0x2a604e['sendStatus'](_0x3f967a);}return _0x2a604e[_0x9d93('0x19')](_0x3f967a)[_0x9d93('0x1a')]();};}function respondWithResult(_0x293ab9,_0x182ca5){_0x182ca5=_0x182ca5||0xc8;return function(_0x5ed3b5){if(_0x5ed3b5){return _0x293ab9[_0x9d93('0x19')](_0x182ca5)[_0x9d93('0x1b')](_0x5ed3b5);}};}function respondWithFilteredResult(_0x4b6b38,_0xad9d86){return function(_0x32a473){if(_0x32a473){var _0x1f8a33=typeof _0xad9d86[_0x9d93('0x1c')]===_0x9d93('0x1d')&&typeof _0xad9d86[_0x9d93('0x1e')]==='undefined';var _0x5abec8=_0x32a473[_0x9d93('0x1f')];var _0x5cf0fc=_0x1f8a33?0x0:_0xad9d86[_0x9d93('0x1c')];var _0x3f5b16=_0x1f8a33?_0x32a473[_0x9d93('0x1f')]:_0xad9d86[_0x9d93('0x1c')]+_0xad9d86['limit'];var _0x5232dd;if(_0x3f5b16>=_0x5abec8){_0x3f5b16=_0x5abec8;_0x5232dd=0xc8;}else{_0x5232dd=0xce;}_0x4b6b38[_0x9d93('0x19')](_0x5232dd);return _0x4b6b38[_0x9d93('0x20')](_0x9d93('0x21'),_0x5cf0fc+'-'+_0x3f5b16+'/'+_0x5abec8)[_0x9d93('0x1b')](_0x32a473);}return null;};}function patchUpdates(_0x1d90c3){return function(_0x1becfd){try{jsonpatch[_0x9d93('0x22')](_0x1becfd,_0x1d90c3,!![]);}catch(_0x8751b7){return BPromise['reject'](_0x8751b7);}return _0x1becfd[_0x9d93('0x23')]();};}function saveUpdates(_0x33da7c,_0x57df3a){return function(_0x46eeef){if(_0x46eeef){return _0x46eeef[_0x9d93('0x24')](_0x33da7c)[_0x9d93('0x25')](function(_0x3ad7e5){return _0x3ad7e5;});}return null;};}function removeEntity(_0x2c6c4a,_0x1082d2){return function(_0x30476f){if(_0x30476f){return _0x30476f[_0x9d93('0x26')]()['then'](function(){_0x2c6c4a[_0x9d93('0x19')](0xcc)[_0x9d93('0x1a')]();});}};}function handleEntityNotFound(_0x21d6fa,_0x9fab5b){return function(_0x2e8d08){if(!_0x2e8d08){_0x21d6fa[_0x9d93('0x27')](0x194);}return _0x2e8d08;};}function handleError(_0x272960,_0x4570ad){_0x4570ad=_0x4570ad||0x1f4;return function(_0x4f49a5){logger['error'](_0x4f49a5['stack']);if(_0x4f49a5[_0x9d93('0x28')]){delete _0x4f49a5[_0x9d93('0x28')];}_0x272960[_0x9d93('0x19')](_0x4570ad)[_0x9d93('0x29')](_0x4f49a5);};}exports['index']=function(_0x433ee9,_0x5e0eae){var _0x48b855={},_0x1e3039={},_0x1b64cc={'count':0x0,'rows':[]};var _0x5cc37f=_[_0x9d93('0x2a')](db[_0x9d93('0x2b')][_0x9d93('0x2c')],function(_0x1ab5ca){return{'name':_0x1ab5ca['fieldName'],'type':_0x1ab5ca[_0x9d93('0x2d')][_0x9d93('0x2e')]};});_0x1e3039[_0x9d93('0x2f')]=_[_0x9d93('0x30')](_[_0x9d93('0x2a')](_0x5cc37f,_0x9d93('0x28')),[_0x9d93('0x28')]);_0x1e3039[_0x9d93('0x31')]=_[_0x9d93('0x32')](_0x433ee9[_0x9d93('0x31')]);_0x1e3039[_0x9d93('0x33')]=_[_0x9d93('0x34')](_0x1e3039['model'],_0x1e3039[_0x9d93('0x31')]);_0x48b855[_0x9d93('0x35')]=_[_0x9d93('0x34')](_0x1e3039['model'],qs['fields'](_0x433ee9[_0x9d93('0x31')][_0x9d93('0x36')]));_0x48b855[_0x9d93('0x35')]=_0x48b855[_0x9d93('0x35')]['length']?_0x48b855[_0x9d93('0x35')]:_0x1e3039[_0x9d93('0x2f')];if(!_0x433ee9[_0x9d93('0x31')][_0x9d93('0x37')]('nolimit')){_0x48b855[_0x9d93('0x1e')]=qs[_0x9d93('0x1e')](_0x433ee9[_0x9d93('0x31')][_0x9d93('0x1e')]);_0x48b855[_0x9d93('0x1c')]=qs[_0x9d93('0x1c')](_0x433ee9['query'][_0x9d93('0x1c')]);}_0x48b855[_0x9d93('0x38')]=qs['sort'](_0x433ee9[_0x9d93('0x31')][_0x9d93('0x39')]);_0x48b855['where']=qs[_0x9d93('0x33')](_[_0x9d93('0x3a')](_0x433ee9[_0x9d93('0x31')],_0x1e3039['filters']),_0x5cc37f);if(_0x433ee9[_0x9d93('0x31')][_0x9d93('0x3b')]){_0x48b855['where']=_[_0x9d93('0x3c')](_0x48b855[_0x9d93('0x3d')],{'$or':_[_0x9d93('0x2a')](_0x5cc37f,function(_0x4f82f2){if(_0x4f82f2[_0x9d93('0x2d')]!==_0x9d93('0x3e')){var _0x3c4477={};_0x3c4477[_0x4f82f2[_0x9d93('0x28')]]={'$like':'%'+_0x433ee9[_0x9d93('0x31')][_0x9d93('0x3b')]+'%'};return _0x3c4477;}})});}_0x48b855=_[_0x9d93('0x3c')]({},_0x48b855,_0x433ee9[_0x9d93('0x3f')]);var _0x3cd003={'where':_0x48b855['where']};return db[_0x9d93('0x2b')][_0x9d93('0x1f')](_0x3cd003)[_0x9d93('0x25')](function(_0x51cb33){_0x1b64cc[_0x9d93('0x1f')]=_0x51cb33;if(_0x433ee9[_0x9d93('0x31')][_0x9d93('0x40')]){_0x48b855[_0x9d93('0x41')]=[{'all':!![]}];}return db[_0x9d93('0x2b')]['findAll'](_0x48b855);})[_0x9d93('0x25')](function(_0x4af7b7){_0x1b64cc['rows']=_0x4af7b7;return _0x1b64cc;})[_0x9d93('0x25')](respondWithFilteredResult(_0x5e0eae,_0x48b855))[_0x9d93('0x42')](handleError(_0x5e0eae,null));};exports[_0x9d93('0x43')]=function(_0x21ab2f,_0x545825){var _0x1d5fa2={'raw':!![],'where':{'id':_0x21ab2f[_0x9d93('0x44')]['id']}},_0x41eee6={};_0x41eee6[_0x9d93('0x2f')]=_[_0x9d93('0x32')](db[_0x9d93('0x2b')][_0x9d93('0x2c')]);_0x41eee6[_0x9d93('0x31')]=_[_0x9d93('0x32')](_0x21ab2f[_0x9d93('0x31')]);_0x41eee6['filters']=_[_0x9d93('0x34')](_0x41eee6[_0x9d93('0x2f')],_0x41eee6[_0x9d93('0x31')]);_0x1d5fa2['attributes']=_[_0x9d93('0x34')](_0x41eee6[_0x9d93('0x2f')],qs[_0x9d93('0x36')](_0x21ab2f[_0x9d93('0x31')][_0x9d93('0x36')]));_0x1d5fa2[_0x9d93('0x35')]=_0x1d5fa2['attributes'][_0x9d93('0x45')]?_0x1d5fa2[_0x9d93('0x35')]:_0x41eee6[_0x9d93('0x2f')];if(_0x21ab2f[_0x9d93('0x31')]['includeAll']){_0x1d5fa2['include']=[{'all':!![]}];}_0x1d5fa2=_[_0x9d93('0x3c')]({},_0x1d5fa2,_0x21ab2f[_0x9d93('0x3f')]);return db['VoiceMailMessage'][_0x9d93('0x46')](_0x1d5fa2)['then'](handleEntityNotFound(_0x545825,null))[_0x9d93('0x25')](respondWithResult(_0x545825,null))['catch'](handleError(_0x545825,null));};exports['create']=function(_0x1613aa,_0x248cde){return db[_0x9d93('0x2b')][_0x9d93('0x47')](_0x1613aa['body'],{})[_0x9d93('0x25')](respondWithResult(_0x248cde,0xc9))['catch'](handleError(_0x248cde,null));};exports[_0x9d93('0x24')]=function(_0x5893a3,_0x486a7e){if(_0x5893a3[_0x9d93('0x48')]['id']){delete _0x5893a3['body']['id'];}return db['VoiceMailMessage'][_0x9d93('0x46')]({'where':{'id':_0x5893a3[_0x9d93('0x44')]['id']}})[_0x9d93('0x25')](handleEntityNotFound(_0x486a7e,null))['then'](saveUpdates(_0x5893a3['body'],null))[_0x9d93('0x25')](respondWithResult(_0x486a7e,null))[_0x9d93('0x42')](handleError(_0x486a7e,null));};exports[_0x9d93('0x26')]=function(_0x330c03,_0x59c1c6){return db[_0x9d93('0x2b')][_0x9d93('0x46')]({'where':{'id':_0x330c03[_0x9d93('0x44')]['id']}})['then'](handleEntityNotFound(_0x59c1c6,null))[_0x9d93('0x25')](removeEntity(_0x59c1c6,null))['catch'](handleError(_0x59c1c6,null));};exports['download']=function(_0x58f823,_0x5ea6aa,_0x2536bf){return db[_0x9d93('0x2b')][_0x9d93('0x46')]({'where':{'id':_0x58f823[_0x9d93('0x44')]['id']},'attributes':['id','recording',_0x9d93('0x49')]})[_0x9d93('0x25')](handleEntityNotFound(_0x5ea6aa,null))['then'](function(_0x5da6d2){if(_0x5da6d2){if(!_0x5da6d2[_0x9d93('0x4a')]){throw new db[(_0x9d93('0x4b'))][(_0x9d93('0x4c'))](_0x9d93('0x4d'));}var _0x2cdf8a={'Content-Type':'audio/wav','Content-Disposition':_0x9d93('0x4e')};if(_0x5da6d2[_0x9d93('0x49')]){_0x2cdf8a[_0x9d93('0x4f')]=_0x9d93('0x50')+_0x5da6d2[_0x9d93('0x49')]+'.wav\x22';}_0x5ea6aa[_0x9d93('0x20')](_0x2cdf8a);return _0x5ea6aa[_0x9d93('0x29')](new Buffer(_0x5da6d2[_0x9d93('0x4a')]));}})[_0x9d93('0x42')](handleError(_0x5ea6aa,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbc4=['bluebird','request-promise','path','rimraf','../../config/environment','./voiceMailMessage.attributes','exports','define','voice_voicemail_messages','dir','lodash','util','../../config/logger','moment'];(function(_0x1b9479,_0x138a56){var _0x3c7dc5=function(_0x193a56){while(--_0x193a56){_0x1b9479['push'](_0x1b9479['shift']());}};_0x3c7dc5(++_0x138a56);}(_0xdbc4,0x13e));var _0x4dbc=function(_0xb2f422,_0x44aacd){_0xb2f422=_0xb2f422-0x0;var _0x16f74a=_0xdbc4[_0xb2f422];return _0x16f74a;};'use strict';var _=require(_0x4dbc('0x0'));var util=require(_0x4dbc('0x1'));var logger=require(_0x4dbc('0x2'))('api');var moment=require(_0x4dbc('0x3'));var BPromise=require(_0x4dbc('0x4'));var rp=require(_0x4dbc('0x5'));var fs=require('fs');var path=require(_0x4dbc('0x6'));var rimraf=require(_0x4dbc('0x7'));var config=require(_0x4dbc('0x8'));var attributes=require(_0x4dbc('0x9'));module[_0x4dbc('0xa')]=function(_0x721b28,_0x1c332c){return _0x721b28[_0x4dbc('0xb')]('VoiceMailMessage',attributes,{'tableName':_0x4dbc('0xc'),'paranoid':![],'indexes':[{'name':_0x4dbc('0xd'),'fields':['dir']}],'timestamps':![]});};
\ No newline at end of file
+var _0x77b5=['path','rimraf','../../config/environment','./voiceMailMessage.attributes','exports','define','VoiceMailMessage','voice_voicemail_messages','dir','lodash','util','../../config/logger','moment','request-promise'];(function(_0x54b2a6,_0x2bdc00){var _0x4450eb=function(_0x59843b){while(--_0x59843b){_0x54b2a6['push'](_0x54b2a6['shift']());}};_0x4450eb(++_0x2bdc00);}(_0x77b5,0x95));var _0x577b=function(_0x4e1caa,_0x595090){_0x4e1caa=_0x4e1caa-0x0;var _0x50ffba=_0x77b5[_0x4e1caa];return _0x50ffba;};'use strict';var _=require(_0x577b('0x0'));var util=require(_0x577b('0x1'));var logger=require(_0x577b('0x2'))('api');var moment=require(_0x577b('0x3'));var BPromise=require('bluebird');var rp=require(_0x577b('0x4'));var fs=require('fs');var path=require(_0x577b('0x5'));var rimraf=require(_0x577b('0x6'));var config=require(_0x577b('0x7'));var attributes=require(_0x577b('0x8'));module[_0x577b('0x9')]=function(_0x5d4f8e,_0x37bc68){return _0x5d4f8e[_0x577b('0xa')](_0x577b('0xb'),attributes,{'tableName':_0x577b('0xc'),'paranoid':![],'indexes':[{'name':_0x577b('0xd'),'fields':[_0x577b('0xd')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6be=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceMailMessage,\x20%s,\x20%s','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','error','code','message','request\x20sent','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb'];(function(_0x1ed579,_0x206ebc){var _0x793273=function(_0x56c373){while(--_0x56c373){_0x1ed579['push'](_0x1ed579['shift']());}};_0x793273(++_0x206ebc);}(_0xf6be,0xc1));var _0xef6b=function(_0x2e2104,_0x11287d){_0x2e2104=_0x2e2104-0x0;var _0x1280c5=_0xf6be[_0x2e2104];return _0x1280c5;};'use strict';var _=require(_0xef6b('0x0'));var util=require('util');var moment=require(_0xef6b('0x1'));var BPromise=require('bluebird');var rs=require(_0xef6b('0x2'));var fs=require('fs');var Redis=require(_0xef6b('0x3'));var db=require(_0xef6b('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xef6b('0x5'))(_0xef6b('0x6'));var config=require(_0xef6b('0x7'));var jayson=require(_0xef6b('0x8'));var client=jayson[_0xef6b('0x9')][_0xef6b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3ae000,_0x556c1c,_0x2c805d){return new BPromise(function(_0x1e3204,_0x6b9e54){return client[_0xef6b('0xb')](_0x3ae000,_0x2c805d)['then'](function(_0x41a5b5){logger[_0xef6b('0xc')](_0xef6b('0xd'),_0x556c1c,'request\x20sent');logger[_0xef6b('0xe')](_0xef6b('0xf'),_0x556c1c,'request\x20sent',JSON['stringify'](_0x41a5b5));if(_0x41a5b5[_0xef6b('0x10')]){if(_0x41a5b5['error'][_0xef6b('0x11')]===0x1f4){logger['error'](_0xef6b('0xd'),_0x556c1c,_0x41a5b5['error']['message']);return _0x6b9e54(_0x41a5b5['error'][_0xef6b('0x12')]);}logger[_0xef6b('0x10')](_0xef6b('0xd'),_0x556c1c,_0x41a5b5['error']['message']);return _0x1e3204(_0x41a5b5[_0xef6b('0x10')][_0xef6b('0x12')]);}else{logger['info'](_0xef6b('0xd'),_0x556c1c,_0xef6b('0x13'));_0x1e3204(_0x41a5b5[_0xef6b('0x14')][_0xef6b('0x12')]);}})[_0xef6b('0x15')](function(_0x1b5fe6){logger[_0xef6b('0x10')](_0xef6b('0xd'),_0x556c1c,_0x1b5fe6);_0x6b9e54(_0x1b5fe6);});});}
\ No newline at end of file
+var _0x7eb3=['message','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','VoiceMailMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code'];(function(_0x17a32f,_0x5a51a){var _0x15a293=function(_0x55fbd3){while(--_0x55fbd3){_0x17a32f['push'](_0x17a32f['shift']());}};_0x15a293(++_0x5a51a);}(_0x7eb3,0x129));var _0x37eb=function(_0x42f3f6,_0x33c73e){_0x42f3f6=_0x42f3f6-0x0;var _0x503864=_0x7eb3[_0x42f3f6];return _0x503864;};'use strict';var _=require(_0x37eb('0x0'));var util=require(_0x37eb('0x1'));var moment=require(_0x37eb('0x2'));var BPromise=require('bluebird');var rs=require(_0x37eb('0x3'));var fs=require('fs');var Redis=require(_0x37eb('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x37eb('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x37eb('0x6'));var jayson=require(_0x37eb('0x7'));var client=jayson[_0x37eb('0x8')][_0x37eb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c03f8,_0x4966f5,_0x3cd185){return new BPromise(function(_0x2cce68,_0x61479d){return client['request'](_0x4c03f8,_0x3cd185)[_0x37eb('0xa')](function(_0x1ed802){logger[_0x37eb('0xb')](_0x37eb('0xc'),_0x4966f5,_0x37eb('0xd'));logger[_0x37eb('0xe')]('VoiceMailMessage,\x20%s,\x20%s,\x20%s',_0x4966f5,_0x37eb('0xd'),JSON[_0x37eb('0xf')](_0x1ed802));if(_0x1ed802[_0x37eb('0x10')]){if(_0x1ed802[_0x37eb('0x10')][_0x37eb('0x11')]===0x1f4){logger[_0x37eb('0x10')](_0x37eb('0xc'),_0x4966f5,_0x1ed802[_0x37eb('0x10')][_0x37eb('0x12')]);return _0x61479d(_0x1ed802[_0x37eb('0x10')][_0x37eb('0x12')]);}logger[_0x37eb('0x10')](_0x37eb('0xc'),_0x4966f5,_0x1ed802['error']['message']);return _0x2cce68(_0x1ed802['error']['message']);}else{logger['info'](_0x37eb('0xc'),_0x4966f5,'request\x20sent');_0x2cce68(_0x1ed802[_0x37eb('0x13')][_0x37eb('0x12')]);}})[_0x37eb('0x14')](function(_0x5e3c34){logger[_0x37eb('0x10')](_0x37eb('0xc'),_0x4966f5,_0x5e3c34);_0x61479d(_0x5e3c34);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabae=['delete','exports','util','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceMusicOnHold.controller','get','isAuthenticated','index','/:id','/:id/sounds','getSounds','create','addSound','update','destroy'];(function(_0x4bc4c8,_0x3139d3){var _0x3bb121=function(_0x95ad12){while(--_0x95ad12){_0x4bc4c8['push'](_0x4bc4c8['shift']());}};_0x3bb121(++_0x3139d3);}(_0xabae,0xf9));var _0xeaba=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xabae[_0x20a584];return _0x4b41a8;};'use strict';var multer=require('multer');var util=require(_0xeaba('0x0'));var path=require('path');var timeout=require(_0xeaba('0x1'));var express=require(_0xeaba('0x2'));var router=express['Router']();var fs_extra=require(_0xeaba('0x3'));var auth=require(_0xeaba('0x4'));var interaction=require(_0xeaba('0x5'));var config=require('../../config/environment');var controller=require(_0xeaba('0x6'));router[_0xeaba('0x7')]('/',auth[_0xeaba('0x8')](),controller[_0xeaba('0x9')]);router[_0xeaba('0x7')](_0xeaba('0xa'),auth[_0xeaba('0x8')](),controller['show']);router['get'](_0xeaba('0xb'),auth[_0xeaba('0x8')](),controller[_0xeaba('0xc')]);router['post']('/',auth[_0xeaba('0x8')](),controller[_0xeaba('0xd')]);router['post'](_0xeaba('0xb'),auth[_0xeaba('0x8')](),controller[_0xeaba('0xe')]);router['put'](_0xeaba('0xa'),auth['isAuthenticated'](),controller[_0xeaba('0xf')]);router['delete']('/:id',auth[_0xeaba('0x8')](),controller[_0xeaba('0x10')]);router[_0xeaba('0x11')]('/:id/sounds/:id2',auth[_0xeaba('0x8')](),controller['removeSound']);module[_0xeaba('0x12')]=router;
\ No newline at end of file
+var _0x6562=['util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','/:id/sounds','getSounds','post','create','addSound','put','update','delete','destroy','/:id/sounds/:id2','removeSound'];(function(_0x1e869d,_0x454a5d){var _0x9b7d1e=function(_0x2bcfc0){while(--_0x2bcfc0){_0x1e869d['push'](_0x1e869d['shift']());}};_0x9b7d1e(++_0x454a5d);}(_0x6562,0x1ce));var _0x2656=function(_0x4d934b,_0x52f8e9){_0x4d934b=_0x4d934b-0x0;var _0xc0338b=_0x6562[_0x4d934b];return _0xc0338b;};'use strict';var multer=require('multer');var util=require(_0x2656('0x0'));var path=require(_0x2656('0x1'));var timeout=require(_0x2656('0x2'));var express=require(_0x2656('0x3'));var router=express[_0x2656('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x2656('0x5'));var interaction=require(_0x2656('0x6'));var config=require(_0x2656('0x7'));var controller=require('./voiceMusicOnHold.controller');router[_0x2656('0x8')]('/',auth[_0x2656('0x9')](),controller['index']);router[_0x2656('0x8')](_0x2656('0xa'),auth[_0x2656('0x9')](),controller['show']);router[_0x2656('0x8')](_0x2656('0xb'),auth[_0x2656('0x9')](),controller[_0x2656('0xc')]);router[_0x2656('0xd')]('/',auth[_0x2656('0x9')](),controller[_0x2656('0xe')]);router[_0x2656('0xd')]('/:id/sounds',auth[_0x2656('0x9')](),controller[_0x2656('0xf')]);router[_0x2656('0x10')](_0x2656('0xa'),auth[_0x2656('0x9')](),controller[_0x2656('0x11')]);router[_0x2656('0x12')](_0x2656('0xa'),auth[_0x2656('0x9')](),controller[_0x2656('0x13')]);router[_0x2656('0x12')](_0x2656('0x14'),auth[_0x2656('0x9')](),controller[_0x2656('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ef9=['quietmp3nb','quietmp3','mp3','STRING','alpha','TIMESTAMP','BOOLEAN','sequelize','exports','ENUM','custom'];(function(_0x50c599,_0x21de75){var _0x245ca1=function(_0x3a1de8){while(--_0x3a1de8){_0x50c599['push'](_0x50c599['shift']());}};_0x245ca1(++_0x21de75);}(_0x9ef9,0x15c));var _0x99ef=function(_0x4bef09,_0x31f09e){_0x4bef09=_0x4bef09-0x0;var _0x26acd1=_0x9ef9[_0x4bef09];return _0x26acd1;};'use strict';var Sequelize=require(_0x99ef('0x0'));module[_0x99ef('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0x99ef('0x2')](_0x99ef('0x3'),'files','mp3nb',_0x99ef('0x4'),_0x99ef('0x5'),_0x99ef('0x6')),'allowNull':!![],'defaultValue':'files'},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize[_0x99ef('0x7')],'allowNull':!![]},'digit':{'type':Sequelize['STRING'],'allowNull':!![]},'sort':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x99ef('0x8')},'format':{'type':Sequelize[_0x99ef('0x7')],'allowNull':!![]},'stamp':{'type':_0x99ef('0x9')},'defaultEntry':{'type':Sequelize[_0x99ef('0xa')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xa566=['ENUM','custom','files','mp3nb','quietmp3nb','mp3','STRING','alpha','TIMESTAMP','sequelize','name'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xa566,0x195));var _0x6a56=function(_0x59ac1b,_0x508c53){_0x59ac1b=_0x59ac1b-0x0;var _0x8c7e03=_0xa566[_0x59ac1b];return _0x8c7e03;};'use strict';var Sequelize=require(_0x6a56('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x6a56('0x1')},'mode':{'type':Sequelize[_0x6a56('0x2')](_0x6a56('0x3'),_0x6a56('0x4'),_0x6a56('0x5'),_0x6a56('0x6'),'quietmp3',_0x6a56('0x7')),'allowNull':!![],'defaultValue':_0x6a56('0x4')},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize[_0x6a56('0x8')],'allowNull':!![]},'digit':{'type':Sequelize[_0x6a56('0x8')],'allowNull':!![]},'sort':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0x6a56('0x9')},'format':{'type':Sequelize[_0x6a56('0x8')],'allowNull':!![]},'stamp':{'type':_0x6a56('0xa')},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d57=['undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','MusicOnHolds','UserProfileResource','status','error','stack','index','map','VoiceMusicOnHold','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','name','includeAll','include','findAll','rows','catch','show','rawAttributes','options','find','body','create','sequelize','mode','files','directory','join','root','server/files/moh','0777','user','get','role','userProfileId','params','readdirSync','forEach','unlinkSync','ValidationError','addSound','transaction','Sound','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','message','findOne','removeSound','id2','Sequelize','getSounds','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','json'];(function(_0x4fb540,_0x4a1559){var _0x4a21e7=function(_0x3bafd8){while(--_0x3bafd8){_0x4fb540['push'](_0x4fb540['shift']());}};_0x4a21e7(++_0x4a1559);}(_0x3d57,0x13a));var _0x73d5=function(_0x37e04b,_0x4df455){_0x37e04b=_0x37e04b-0x0;var _0x526aab=_0x3d57[_0x37e04b];return _0x526aab;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x73d5('0x0'));var zipdir=require(_0x73d5('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x73d5('0x2'));var moment=require(_0x73d5('0x3'));var BPromise=require(_0x73d5('0x4'));var Mustache=require(_0x73d5('0x5'));var util=require('util');var path=require(_0x73d5('0x6'));var sox=require(_0x73d5('0x7'));var csv=require(_0x73d5('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x73d5('0x9'));var squel=require(_0x73d5('0xa'));var crypto=require(_0x73d5('0xb'));var jsforce=require(_0x73d5('0xc'));var deskjs=require(_0x73d5('0xd'));var toCsv=require(_0x73d5('0x8'));var querystring=require(_0x73d5('0xe'));var Papa=require(_0x73d5('0xf'));var Redis=require('ioredis');var authService=require(_0x73d5('0x10'));var qs=require(_0x73d5('0x11'));var as=require(_0x73d5('0x12'));var hardwareService=require(_0x73d5('0x13'));var logger=require(_0x73d5('0x14'))(_0x73d5('0x15'));var utils=require(_0x73d5('0x16'));var config=require(_0x73d5('0x17'));var licenseUtil=require(_0x73d5('0x18'));var db=require(_0x73d5('0x19'))['db'];function respondWithStatusCode(_0x1e305e,_0x228961){_0x228961=_0x228961||0xcc;return function(_0x6b1e77){if(_0x6b1e77){return _0x1e305e['sendStatus'](_0x228961);}return _0x1e305e['status'](_0x228961)[_0x73d5('0x1a')]();};}function respondWithResult(_0x301dc7,_0x5b971c){_0x5b971c=_0x5b971c||0xc8;return function(_0x58eea9){if(_0x58eea9){return _0x301dc7['status'](_0x5b971c)[_0x73d5('0x1b')](_0x58eea9);}};}function respondWithFilteredResult(_0x5b6faa,_0x35b445){return function(_0x45130b){if(_0x45130b){var _0xd28c4c=typeof _0x35b445['offset']===_0x73d5('0x1c')&&typeof _0x35b445[_0x73d5('0x1d')]===_0x73d5('0x1c');var _0x16ed5a=_0x45130b[_0x73d5('0x1e')];var _0x327383=_0xd28c4c?0x0:_0x35b445[_0x73d5('0x1f')];var _0x561ff1=_0xd28c4c?_0x45130b[_0x73d5('0x1e')]:_0x35b445['offset']+_0x35b445['limit'];var _0x43933a;if(_0x561ff1>=_0x16ed5a){_0x561ff1=_0x16ed5a;_0x43933a=0xc8;}else{_0x43933a=0xce;}_0x5b6faa['status'](_0x43933a);return _0x5b6faa[_0x73d5('0x20')](_0x73d5('0x21'),_0x327383+'-'+_0x561ff1+'/'+_0x16ed5a)[_0x73d5('0x1b')](_0x45130b);}return null;};}function patchUpdates(_0x312eea){return function(_0x1882f0){try{jsonpatch[_0x73d5('0x22')](_0x1882f0,_0x312eea,!![]);}catch(_0x1b28fb){return BPromise[_0x73d5('0x23')](_0x1b28fb);}return _0x1882f0[_0x73d5('0x24')]();};}function saveUpdates(_0x47ba1f,_0x1e3eff){return function(_0x296e1e){if(_0x296e1e){return _0x296e1e[_0x73d5('0x25')](_0x47ba1f)[_0x73d5('0x26')](function(_0x46aa48){return _0x46aa48;});}return null;};}function removeEntity(_0x57ad50,_0xff67d3){return function(_0x3dd62f){if(_0x3dd62f){return _0x3dd62f[_0x73d5('0x27')]()['then'](function(){var _0x1794a9=_0x3dd62f['get']({'plain':!![]});var _0x22c5c3=_0x73d5('0x28');return db[_0x73d5('0x29')][_0x73d5('0x27')]({'where':{'type':_0x22c5c3,'resourceId':_0x1794a9['id']}})['then'](function(){return _0x3dd62f;});})['then'](function(){_0x57ad50[_0x73d5('0x2a')](0xcc)[_0x73d5('0x1a')]();});}};}function handleEntityNotFound(_0x557642,_0x103fae){return function(_0x5e351e){if(!_0x5e351e){_0x557642['sendStatus'](0x194);}return _0x5e351e;};}function handleError(_0x571db9,_0x3dd94e){_0x3dd94e=_0x3dd94e||0x1f4;return function(_0x50950e){logger[_0x73d5('0x2b')](_0x50950e[_0x73d5('0x2c')]);if(_0x50950e['name']){delete _0x50950e['name'];}_0x571db9[_0x73d5('0x2a')](_0x3dd94e)['send'](_0x50950e);};}exports[_0x73d5('0x2d')]=function(_0x3fe3e7,_0x46e2a7){var _0x4a02bf={},_0x205c9d={},_0x1c7037={'count':0x0,'rows':[]};var _0x32d44a=_[_0x73d5('0x2e')](db[_0x73d5('0x2f')]['rawAttributes'],function(_0x63dcfd){return{'name':_0x63dcfd[_0x73d5('0x30')],'type':_0x63dcfd[_0x73d5('0x31')][_0x73d5('0x32')]};});_0x205c9d[_0x73d5('0x33')]=_[_0x73d5('0x2e')](_0x32d44a,'name');_0x205c9d['query']=_[_0x73d5('0x34')](_0x3fe3e7[_0x73d5('0x35')]);_0x205c9d[_0x73d5('0x36')]=_[_0x73d5('0x37')](_0x205c9d[_0x73d5('0x33')],_0x205c9d[_0x73d5('0x35')]);_0x4a02bf[_0x73d5('0x38')]=_[_0x73d5('0x37')](_0x205c9d['model'],qs['fields'](_0x3fe3e7[_0x73d5('0x35')][_0x73d5('0x39')]));_0x4a02bf[_0x73d5('0x38')]=_0x4a02bf[_0x73d5('0x38')][_0x73d5('0x3a')]?_0x4a02bf['attributes']:_0x205c9d['model'];if(!_0x3fe3e7['query'][_0x73d5('0x3b')](_0x73d5('0x3c'))){_0x4a02bf[_0x73d5('0x1d')]=qs[_0x73d5('0x1d')](_0x3fe3e7[_0x73d5('0x35')][_0x73d5('0x1d')]);_0x4a02bf[_0x73d5('0x1f')]=qs[_0x73d5('0x1f')](_0x3fe3e7['query']['offset']);}_0x4a02bf[_0x73d5('0x3d')]=qs[_0x73d5('0x3e')](_0x3fe3e7[_0x73d5('0x35')][_0x73d5('0x3e')]);delete _0x3fe3e7['query'][_0x73d5('0x3e')];_0x4a02bf[_0x73d5('0x3f')]=qs[_0x73d5('0x36')](_[_0x73d5('0x40')](_0x3fe3e7[_0x73d5('0x35')],_0x205c9d[_0x73d5('0x36')]),_0x32d44a);if(_0x3fe3e7[_0x73d5('0x35')][_0x73d5('0x41')]){_0x4a02bf[_0x73d5('0x3f')]=_[_0x73d5('0x42')](_0x4a02bf['where'],{'$or':_[_0x73d5('0x2e')](_0x32d44a,function(_0x57d9e2){if(_0x57d9e2['type']!=='VIRTUAL'){var _0x4944f6={};_0x4944f6[_0x57d9e2[_0x73d5('0x43')]]={'$like':'%'+_0x3fe3e7[_0x73d5('0x35')][_0x73d5('0x41')]+'%'};return _0x4944f6;}})});}_0x4a02bf=_[_0x73d5('0x42')]({},_0x4a02bf,_0x3fe3e7['options']);var _0x428f19={'where':_0x4a02bf['where']};return db[_0x73d5('0x2f')]['count'](_0x428f19)['then'](function(_0x4bc44e){_0x1c7037[_0x73d5('0x1e')]=_0x4bc44e;if(_0x3fe3e7[_0x73d5('0x35')][_0x73d5('0x44')]){_0x4a02bf[_0x73d5('0x45')]=[{'all':!![]}];}return db[_0x73d5('0x2f')][_0x73d5('0x46')](_0x4a02bf);})[_0x73d5('0x26')](function(_0xb2c38e){_0x1c7037[_0x73d5('0x47')]=_0xb2c38e;return _0x1c7037;})[_0x73d5('0x26')](respondWithFilteredResult(_0x46e2a7,_0x4a02bf))[_0x73d5('0x48')](handleError(_0x46e2a7,null));};exports[_0x73d5('0x49')]=function(_0xbce440,_0x50e026){var _0x4bfa00={'raw':![],'where':{'id':_0xbce440['params']['id']}},_0x2dc834={};_0x2dc834[_0x73d5('0x33')]=_[_0x73d5('0x34')](db[_0x73d5('0x2f')][_0x73d5('0x4a')]);_0x2dc834[_0x73d5('0x35')]=_[_0x73d5('0x34')](_0xbce440[_0x73d5('0x35')]);_0x2dc834[_0x73d5('0x36')]=_[_0x73d5('0x37')](_0x2dc834[_0x73d5('0x33')],_0x2dc834[_0x73d5('0x35')]);_0x4bfa00[_0x73d5('0x38')]=_[_0x73d5('0x37')](_0x2dc834[_0x73d5('0x33')],qs[_0x73d5('0x39')](_0xbce440['query'][_0x73d5('0x39')]));_0x4bfa00[_0x73d5('0x38')]=_0x4bfa00['attributes'][_0x73d5('0x3a')]?_0x4bfa00[_0x73d5('0x38')]:_0x2dc834[_0x73d5('0x33')];if(_0xbce440['query'][_0x73d5('0x44')]){_0x4bfa00[_0x73d5('0x45')]=[{'all':!![]}];}_0x4bfa00=_[_0x73d5('0x42')]({},_0x4bfa00,_0xbce440[_0x73d5('0x4b')]);return db['VoiceMusicOnHold'][_0x73d5('0x4c')](_0x4bfa00)[_0x73d5('0x26')](handleEntityNotFound(_0x50e026,null))[_0x73d5('0x26')](respondWithResult(_0x50e026,null))['catch'](handleError(_0x50e026,null));};exports[_0x73d5('0x25')]=function(_0x470576,_0x1beba7){if(_0x470576[_0x73d5('0x4d')]['id']){delete _0x470576[_0x73d5('0x4d')]['id'];}return db[_0x73d5('0x2f')][_0x73d5('0x4c')]({'where':{'id':_0x470576['params']['id']}})['then'](handleEntityNotFound(_0x1beba7,null))[_0x73d5('0x26')](saveUpdates(_0x470576[_0x73d5('0x4d')],null))[_0x73d5('0x26')](respondWithResult(_0x1beba7,null))[_0x73d5('0x48')](handleError(_0x1beba7,null));};exports[_0x73d5('0x4e')]=function(_0x2c69b9,_0x1e1ec7,_0x16e95d){return db[_0x73d5('0x4f')]['transaction'](function(_0x18e2b4){if(_0x2c69b9['body'][_0x73d5('0x50')]===_0x73d5('0x51')){_0x2c69b9[_0x73d5('0x4d')][_0x73d5('0x52')]=path[_0x73d5('0x53')](config[_0x73d5('0x54')],_0x73d5('0x55'),_0x2c69b9['body']['name']);}return db[_0x73d5('0x2f')]['create'](_0x2c69b9[_0x73d5('0x4d')],{'transaction':_0x18e2b4})[_0x73d5('0x26')](function(_0xf9a1cb){if(_0x2c69b9[_0x73d5('0x4d')]['mode']===_0x73d5('0x51')){fs['mkdirSync'](_0xf9a1cb[_0x73d5('0x52')],parseInt(_0x73d5('0x56'),0x8));}var _0xe202d1=_0x2c69b9[_0x73d5('0x57')][_0x73d5('0x58')]({'plain':!![]});if(!_0xe202d1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xe202d1[_0x73d5('0x59')]===_0x73d5('0x57')){var _0x4af8f4=_0xf9a1cb['get']({'plain':!![]});return db['UserProfileSection'][_0x73d5('0x4c')]({'where':{'name':_0x73d5('0x28'),'userProfileId':_0xe202d1[_0x73d5('0x5a')]},'raw':!![]})[_0x73d5('0x26')](function(_0x360d25){if(_0x360d25&&_0x360d25['autoAssociation']===0x0){return db[_0x73d5('0x29')]['create']({'name':_0x4af8f4['name'],'resourceId':_0x4af8f4['id'],'type':_0x360d25['name'],'sectionId':_0x360d25['id']},{})[_0x73d5('0x26')](function(){return _0xf9a1cb;});}else{return _0xf9a1cb;}})[_0x73d5('0x48')](function(_0x486425){logger[_0x73d5('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x486425);});}return _0xf9a1cb;});})[_0x73d5('0x26')](respondWithResult(_0x1e1ec7,0xc9))[_0x73d5('0x48')](handleError(_0x1e1ec7,null));};exports[_0x73d5('0x27')]=function(_0x5ddadf,_0x2691cc,_0x5594b3){var _0x2cd7a0;return db[_0x73d5('0x2f')]['find']({'where':{'id':_0x5ddadf[_0x73d5('0x5b')]['id']}})[_0x73d5('0x26')](function(_0x3b5da4){if(_0x3b5da4){return db[_0x73d5('0x4f')]['transaction'](function(_0x1754bc){return _0x3b5da4[_0x73d5('0x27')]({'transaction':_0x1754bc,'raw':!![]})[_0x73d5('0x26')](function(_0x451503){if(_0x451503[_0x73d5('0x52')]){fs[_0x73d5('0x5c')](_0x451503[_0x73d5('0x52')])[_0x73d5('0x5d')](function(_0x15ba66){fs[_0x73d5('0x5e')](path[_0x73d5('0x53')](_0x451503[_0x73d5('0x52')],_0x15ba66));});fs['rmdirSync'](_0x451503[_0x73d5('0x52')]);}return _0x451503;});})[_0x73d5('0x48')](function(_0x435c6e){throw new db['Sequelize'][(_0x73d5('0x5f'))](_0x435c6e['message']);});}})['then'](handleEntityNotFound(_0x2691cc,null))[_0x73d5('0x26')](removeEntity(_0x2691cc,null))[_0x73d5('0x48')](handleError(_0x2691cc,null));};exports[_0x73d5('0x60')]=function(_0x28c7bd,_0x54c40e,_0x5be7bf){return db[_0x73d5('0x4f')][_0x73d5('0x61')](function(_0x17c7f0){var _0x43cf05;return db[_0x73d5('0x2f')][_0x73d5('0x4c')]({'where':{'id':_0x28c7bd[_0x73d5('0x5b')]['id']}})[_0x73d5('0x26')](function(_0x23acfb){if(_0x23acfb){_0x43cf05=_0x23acfb;return _0x23acfb[_0x73d5('0x60')](_0x28c7bd['body']['id'],{'transaction':_0x17c7f0});}})[_0x73d5('0x26')](function(_0x37fa1c){if(_0x37fa1c){return db[_0x73d5('0x62')]['findOne']({'where':{'id':_0x28c7bd[_0x73d5('0x4d')]['id']},'attributes':['id',_0x73d5('0x43'),_0x73d5('0x63'),_0x73d5('0x64'),_0x73d5('0x65')],'raw':!![]});}})[_0x73d5('0x26')](function(_0x9be8da){if(_0x9be8da){var _0x180625=path[_0x73d5('0x53')](config['root'],_0x73d5('0x66'),util[_0x73d5('0x67')](_0x73d5('0x68'),path[_0x73d5('0x69')](_0x9be8da[_0x73d5('0x63')],path[_0x73d5('0x6a')](_0x9be8da['save_name'])),_0x9be8da[_0x73d5('0x64')]));var _0x529b01=path[_0x73d5('0x53')](config[_0x73d5('0x54')],_0x73d5('0x55'),_0x43cf05['name'],util[_0x73d5('0x67')](_0x73d5('0x68'),_0x9be8da[_0x73d5('0x43')],_0x9be8da[_0x73d5('0x64')]));fs[_0x73d5('0x6b')](_0x180625,_0x529b01);return _0x9be8da;}})[_0x73d5('0x48')](function(_0x553153){throw new db['Sequelize'][(_0x73d5('0x5f'))](_0x553153[_0x73d5('0x6c')]);});})[_0x73d5('0x26')](handleEntityNotFound(_0x54c40e,null))[_0x73d5('0x26')](respondWithResult(_0x54c40e,0xc9))[_0x73d5('0x48')](handleError(_0x54c40e,null));};exports['removeSound']=function(_0x4a4b00,_0x76a7a2,_0x2ec4ab){return db['sequelize'][_0x73d5('0x61')](function(_0x4b27a6){var _0x486e3d;return db[_0x73d5('0x2f')][_0x73d5('0x6d')]({'where':{'id':_0x4a4b00['params']['id']}})['then'](handleEntityNotFound(_0x76a7a2,null))[_0x73d5('0x26')](function(_0x47c027){if(_0x47c027){_0x486e3d=_0x47c027;return _0x47c027[_0x73d5('0x6e')](_0x4a4b00[_0x73d5('0x5b')][_0x73d5('0x6f')]);}})[_0x73d5('0x26')](function(_0x52aa21){if(_0x52aa21){return db[_0x73d5('0x62')][_0x73d5('0x6d')]({'where':{'id':_0x4a4b00[_0x73d5('0x5b')]['id2']},'attributes':['id','name',_0x73d5('0x63'),_0x73d5('0x64'),'createdAt'],'raw':!![]});}})[_0x73d5('0x26')](function(_0x465f7a){if(_0x465f7a){fs['unlinkSync'](path[_0x73d5('0x53')](_0x486e3d[_0x73d5('0x52')],util['format']('%s.%s',_0x465f7a[_0x73d5('0x43')],_0x465f7a['converted_format'])));return _0x465f7a;}})[_0x73d5('0x48')](function(_0x13c3c3){throw new db[(_0x73d5('0x70'))]['ValidationError'](_0x13c3c3[_0x73d5('0x6c')]);});})['then'](handleEntityNotFound(_0x76a7a2,null))['then'](respondWithStatusCode(_0x76a7a2,0xcc))[_0x73d5('0x48')](handleError(_0x76a7a2,null));};exports['getSounds']=function(_0xe3ee00,_0x97a345,_0x3fd035){var _0x4340d8={};var _0x588747={};var _0x3a8139;var _0x364083;return db[_0x73d5('0x2f')][_0x73d5('0x6d')]({'where':{'id':_0xe3ee00[_0x73d5('0x5b')]['id']}})[_0x73d5('0x26')](handleEntityNotFound(_0x97a345,null))[_0x73d5('0x26')](function(_0x38519d){if(_0x38519d){_0x3a8139=_0x38519d;_0x588747[_0x73d5('0x33')]=_[_0x73d5('0x34')](db['Sound'][_0x73d5('0x4a')]);_0x588747[_0x73d5('0x35')]=_[_0x73d5('0x34')](_0xe3ee00[_0x73d5('0x35')]);_0x588747[_0x73d5('0x36')]=_[_0x73d5('0x37')](_0x588747[_0x73d5('0x33')],_0x588747[_0x73d5('0x35')]);_0x4340d8[_0x73d5('0x38')]=_[_0x73d5('0x37')](_0x588747[_0x73d5('0x33')],qs[_0x73d5('0x39')](_0xe3ee00[_0x73d5('0x35')]['fields']));_0x4340d8[_0x73d5('0x38')]=_0x4340d8[_0x73d5('0x38')][_0x73d5('0x3a')]?_0x4340d8[_0x73d5('0x38')]:_0x588747[_0x73d5('0x33')];_0x4340d8['order']=qs[_0x73d5('0x3e')](_0xe3ee00[_0x73d5('0x35')][_0x73d5('0x3e')]);_0x4340d8['where']=qs[_0x73d5('0x36')](_[_0x73d5('0x40')](_0xe3ee00['query'],_0x588747['filters']));if(_0xe3ee00[_0x73d5('0x35')][_0x73d5('0x41')]){_0x4340d8['where']=_[_0x73d5('0x42')](_0x4340d8[_0x73d5('0x3f')],{'$or':_['map'](_0x4340d8['attributes'],function(_0x1eec38){var _0x259bf4={};_0x259bf4[_0x1eec38]={'$like':'%'+_0xe3ee00[_0x73d5('0x35')]['filter']+'%'};return _0x259bf4;})});}_0x4340d8=_['merge']({},_0x4340d8,_0xe3ee00[_0x73d5('0x4b')]);return _0x3a8139[_0x73d5('0x71')](_0x4340d8);}})[_0x73d5('0x26')](function(_0x5734c7){if(_0x5734c7){_0x364083=_0x5734c7[_0x73d5('0x3a')];if(!_0xe3ee00['query'][_0x73d5('0x3b')]('nolimit')){_0x4340d8[_0x73d5('0x1d')]=qs[_0x73d5('0x1d')](_0xe3ee00[_0x73d5('0x35')][_0x73d5('0x1d')]);_0x4340d8['offset']=qs[_0x73d5('0x1f')](_0xe3ee00[_0x73d5('0x35')][_0x73d5('0x1f')]);}return _0x3a8139[_0x73d5('0x71')](_0x4340d8);}})[_0x73d5('0x26')](function(_0x59c26c){if(_0x59c26c){return _0x59c26c?{'count':_0x364083,'rows':_0x59c26c}:null;}})[_0x73d5('0x26')](respondWithResult(_0x97a345,null))[_0x73d5('0x48')](handleError(_0x97a345,null));};
\ No newline at end of file
+var _0xc26e=['addSound','Sound','findOne','save_name','converted_format','createdAt','server/files/sounds/converted','format','%s.%s','basename','extname','symlinkSync','removeSound','id2','getSounds','pick','hasOwnProperty','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','destroy','then','get','MusicOnHolds','UserProfileResource','error','stack','name','send','map','rawAttributes','key','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','type','VIRTUAL','merge','options','includeAll','include','VoiceMusicOnHold','findAll','rows','catch','show','params','find','body','create','sequelize','mode','files','directory','join','root','server/files/moh','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','transaction','readdirSync','forEach','unlinkSync','Sequelize','ValidationError','message'];(function(_0x5cc3b6,_0x249e4f){var _0x3ea2e0=function(_0x8ab600){while(--_0x8ab600){_0x5cc3b6['push'](_0x5cc3b6['shift']());}};_0x3ea2e0(++_0x249e4f);}(_0xc26e,0x86));var _0xec26=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc26e[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xec26('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xec26('0x1'));var rp=require(_0xec26('0x2'));var moment=require('moment');var BPromise=require(_0xec26('0x3'));var Mustache=require(_0xec26('0x4'));var util=require(_0xec26('0x5'));var path=require(_0xec26('0x6'));var sox=require(_0xec26('0x7'));var csv=require(_0xec26('0x8'));var ejs=require(_0xec26('0x9'));var fs=require('fs');var fs_extra=require(_0xec26('0xa'));var _=require(_0xec26('0xb'));var squel=require(_0xec26('0xc'));var crypto=require(_0xec26('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xec26('0xe'));var toCsv=require('to-csv');var querystring=require(_0xec26('0xf'));var Papa=require(_0xec26('0x10'));var Redis=require(_0xec26('0x11'));var authService=require(_0xec26('0x12'));var qs=require(_0xec26('0x13'));var as=require(_0xec26('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xec26('0x15'))('api');var utils=require(_0xec26('0x16'));var config=require(_0xec26('0x17'));var licenseUtil=require(_0xec26('0x18'));var db=require(_0xec26('0x19'))['db'];function respondWithStatusCode(_0x3f5f60,_0x1ec8c9){_0x1ec8c9=_0x1ec8c9||0xcc;return function(_0x175889){if(_0x175889){return _0x3f5f60[_0xec26('0x1a')](_0x1ec8c9);}return _0x3f5f60['status'](_0x1ec8c9)[_0xec26('0x1b')]();};}function respondWithResult(_0xf91101,_0x7dfbdb){_0x7dfbdb=_0x7dfbdb||0xc8;return function(_0x4ae1bf){if(_0x4ae1bf){return _0xf91101[_0xec26('0x1c')](_0x7dfbdb)[_0xec26('0x1d')](_0x4ae1bf);}};}function respondWithFilteredResult(_0x12d576,_0x2e853a){return function(_0xd4196c){if(_0xd4196c){var _0x4b6469=typeof _0x2e853a['offset']===_0xec26('0x1e')&&typeof _0x2e853a[_0xec26('0x1f')]===_0xec26('0x1e');var _0x20cd87=_0xd4196c[_0xec26('0x20')];var _0x365a4e=_0x4b6469?0x0:_0x2e853a[_0xec26('0x21')];var _0xcca347=_0x4b6469?_0xd4196c[_0xec26('0x20')]:_0x2e853a[_0xec26('0x21')]+_0x2e853a['limit'];var _0x415579;if(_0xcca347>=_0x20cd87){_0xcca347=_0x20cd87;_0x415579=0xc8;}else{_0x415579=0xce;}_0x12d576[_0xec26('0x1c')](_0x415579);return _0x12d576[_0xec26('0x22')](_0xec26('0x23'),_0x365a4e+'-'+_0xcca347+'/'+_0x20cd87)[_0xec26('0x1d')](_0xd4196c);}return null;};}function patchUpdates(_0x21487d){return function(_0x5b5422){try{jsonpatch[_0xec26('0x24')](_0x5b5422,_0x21487d,!![]);}catch(_0x235a8b){return BPromise[_0xec26('0x25')](_0x235a8b);}return _0x5b5422['save']();};}function saveUpdates(_0x47277d,_0x466def){return function(_0x1d53fc){if(_0x1d53fc){return _0x1d53fc[_0xec26('0x26')](_0x47277d)['then'](function(_0x2c24b4){return _0x2c24b4;});}return null;};}function removeEntity(_0x246521,_0x10cb98){return function(_0x1a1173){if(_0x1a1173){return _0x1a1173[_0xec26('0x27')]()[_0xec26('0x28')](function(){var _0x2d9793=_0x1a1173[_0xec26('0x29')]({'plain':!![]});var _0x563b8a=_0xec26('0x2a');return db[_0xec26('0x2b')][_0xec26('0x27')]({'where':{'type':_0x563b8a,'resourceId':_0x2d9793['id']}})[_0xec26('0x28')](function(){return _0x1a1173;});})[_0xec26('0x28')](function(){_0x246521[_0xec26('0x1c')](0xcc)[_0xec26('0x1b')]();});}};}function handleEntityNotFound(_0x3448c2,_0x3b05fb){return function(_0x24e889){if(!_0x24e889){_0x3448c2['sendStatus'](0x194);}return _0x24e889;};}function handleError(_0x578606,_0x5cba6f){_0x5cba6f=_0x5cba6f||0x1f4;return function(_0x352aab){logger[_0xec26('0x2c')](_0x352aab[_0xec26('0x2d')]);if(_0x352aab[_0xec26('0x2e')]){delete _0x352aab['name'];}_0x578606['status'](_0x5cba6f)[_0xec26('0x2f')](_0x352aab);};}exports['index']=function(_0x1b7a53,_0x26a7e4){var _0x32680c={},_0x5aef56={},_0x12a32a={'count':0x0,'rows':[]};var _0x4f37d2=_[_0xec26('0x30')](db['VoiceMusicOnHold'][_0xec26('0x31')],function(_0x5dbcc8){return{'name':_0x5dbcc8['fieldName'],'type':_0x5dbcc8['type'][_0xec26('0x32')]};});_0x5aef56[_0xec26('0x33')]=_[_0xec26('0x30')](_0x4f37d2,_0xec26('0x2e'));_0x5aef56['query']=_[_0xec26('0x34')](_0x1b7a53[_0xec26('0x35')]);_0x5aef56[_0xec26('0x36')]=_[_0xec26('0x37')](_0x5aef56[_0xec26('0x33')],_0x5aef56[_0xec26('0x35')]);_0x32680c[_0xec26('0x38')]=_[_0xec26('0x37')](_0x5aef56[_0xec26('0x33')],qs[_0xec26('0x39')](_0x1b7a53[_0xec26('0x35')][_0xec26('0x39')]));_0x32680c['attributes']=_0x32680c[_0xec26('0x38')][_0xec26('0x3a')]?_0x32680c[_0xec26('0x38')]:_0x5aef56[_0xec26('0x33')];if(!_0x1b7a53[_0xec26('0x35')]['hasOwnProperty'](_0xec26('0x3b'))){_0x32680c[_0xec26('0x1f')]=qs[_0xec26('0x1f')](_0x1b7a53[_0xec26('0x35')]['limit']);_0x32680c[_0xec26('0x21')]=qs['offset'](_0x1b7a53['query'][_0xec26('0x21')]);}_0x32680c[_0xec26('0x3c')]=qs['sort'](_0x1b7a53[_0xec26('0x35')][_0xec26('0x3d')]);delete _0x1b7a53[_0xec26('0x35')]['sort'];_0x32680c[_0xec26('0x3e')]=qs[_0xec26('0x36')](_['pick'](_0x1b7a53[_0xec26('0x35')],_0x5aef56[_0xec26('0x36')]),_0x4f37d2);if(_0x1b7a53[_0xec26('0x35')][_0xec26('0x3f')]){_0x32680c['where']=_['merge'](_0x32680c[_0xec26('0x3e')],{'$or':_['map'](_0x4f37d2,function(_0x4deee0){if(_0x4deee0[_0xec26('0x40')]!==_0xec26('0x41')){var _0x50eeeb={};_0x50eeeb[_0x4deee0[_0xec26('0x2e')]]={'$like':'%'+_0x1b7a53[_0xec26('0x35')]['filter']+'%'};return _0x50eeeb;}})});}_0x32680c=_[_0xec26('0x42')]({},_0x32680c,_0x1b7a53[_0xec26('0x43')]);var _0x23c807={'where':_0x32680c[_0xec26('0x3e')]};return db['VoiceMusicOnHold'][_0xec26('0x20')](_0x23c807)[_0xec26('0x28')](function(_0x5443f1){_0x12a32a[_0xec26('0x20')]=_0x5443f1;if(_0x1b7a53['query'][_0xec26('0x44')]){_0x32680c[_0xec26('0x45')]=[{'all':!![]}];}return db[_0xec26('0x46')][_0xec26('0x47')](_0x32680c);})[_0xec26('0x28')](function(_0x3e164c){_0x12a32a[_0xec26('0x48')]=_0x3e164c;return _0x12a32a;})[_0xec26('0x28')](respondWithFilteredResult(_0x26a7e4,_0x32680c))[_0xec26('0x49')](handleError(_0x26a7e4,null));};exports[_0xec26('0x4a')]=function(_0x4e449c,_0x1a06e1){var _0x4d31c2={'raw':![],'where':{'id':_0x4e449c[_0xec26('0x4b')]['id']}},_0x58c359={};_0x58c359[_0xec26('0x33')]=_[_0xec26('0x34')](db[_0xec26('0x46')][_0xec26('0x31')]);_0x58c359['query']=_['keys'](_0x4e449c[_0xec26('0x35')]);_0x58c359[_0xec26('0x36')]=_[_0xec26('0x37')](_0x58c359[_0xec26('0x33')],_0x58c359[_0xec26('0x35')]);_0x4d31c2[_0xec26('0x38')]=_[_0xec26('0x37')](_0x58c359[_0xec26('0x33')],qs['fields'](_0x4e449c[_0xec26('0x35')][_0xec26('0x39')]));_0x4d31c2[_0xec26('0x38')]=_0x4d31c2[_0xec26('0x38')][_0xec26('0x3a')]?_0x4d31c2[_0xec26('0x38')]:_0x58c359['model'];if(_0x4e449c[_0xec26('0x35')][_0xec26('0x44')]){_0x4d31c2[_0xec26('0x45')]=[{'all':!![]}];}_0x4d31c2=_[_0xec26('0x42')]({},_0x4d31c2,_0x4e449c['options']);return db[_0xec26('0x46')][_0xec26('0x4c')](_0x4d31c2)[_0xec26('0x28')](handleEntityNotFound(_0x1a06e1,null))[_0xec26('0x28')](respondWithResult(_0x1a06e1,null))['catch'](handleError(_0x1a06e1,null));};exports['update']=function(_0xd54311,_0x5e44d8){if(_0xd54311[_0xec26('0x4d')]['id']){delete _0xd54311[_0xec26('0x4d')]['id'];}return db[_0xec26('0x46')]['find']({'where':{'id':_0xd54311[_0xec26('0x4b')]['id']}})[_0xec26('0x28')](handleEntityNotFound(_0x5e44d8,null))[_0xec26('0x28')](saveUpdates(_0xd54311[_0xec26('0x4d')],null))[_0xec26('0x28')](respondWithResult(_0x5e44d8,null))[_0xec26('0x49')](handleError(_0x5e44d8,null));};exports[_0xec26('0x4e')]=function(_0x5eebd4,_0x4d4c56,_0x5e2394){return db[_0xec26('0x4f')]['transaction'](function(_0x4efc0b){if(_0x5eebd4[_0xec26('0x4d')][_0xec26('0x50')]===_0xec26('0x51')){_0x5eebd4[_0xec26('0x4d')][_0xec26('0x52')]=path[_0xec26('0x53')](config[_0xec26('0x54')],_0xec26('0x55'),_0x5eebd4[_0xec26('0x4d')][_0xec26('0x2e')]);}return db[_0xec26('0x46')]['create'](_0x5eebd4[_0xec26('0x4d')],{'transaction':_0x4efc0b})['then'](function(_0x3fefd6){if(_0x5eebd4[_0xec26('0x4d')][_0xec26('0x50')]===_0xec26('0x51')){fs[_0xec26('0x56')](_0x3fefd6['directory'],parseInt(_0xec26('0x57'),0x8));}var _0x51d91c=_0x5eebd4[_0xec26('0x58')][_0xec26('0x29')]({'plain':!![]});if(!_0x51d91c)throw new Error(_0xec26('0x59'));if(_0x51d91c[_0xec26('0x5a')]===_0xec26('0x58')){var _0x328a39=_0x3fefd6[_0xec26('0x29')]({'plain':!![]});return db[_0xec26('0x5b')][_0xec26('0x4c')]({'where':{'name':_0xec26('0x2a'),'userProfileId':_0x51d91c['userProfileId']},'raw':!![]})[_0xec26('0x28')](function(_0x13b270){if(_0x13b270&&_0x13b270[_0xec26('0x5c')]===0x0){return db[_0xec26('0x2b')][_0xec26('0x4e')]({'name':_0x328a39['name'],'resourceId':_0x328a39['id'],'type':_0x13b270[_0xec26('0x2e')],'sectionId':_0x13b270['id']},{})[_0xec26('0x28')](function(){return _0x3fefd6;});}else{return _0x3fefd6;}})[_0xec26('0x49')](function(_0x1ac977){logger[_0xec26('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1ac977);});}return _0x3fefd6;});})['then'](respondWithResult(_0x4d4c56,0xc9))['catch'](handleError(_0x4d4c56,null));};exports[_0xec26('0x27')]=function(_0xa8514f,_0x295bcf,_0x1784e7){var _0x149561;return db['VoiceMusicOnHold'][_0xec26('0x4c')]({'where':{'id':_0xa8514f[_0xec26('0x4b')]['id']}})[_0xec26('0x28')](function(_0x3a178d){if(_0x3a178d){return db[_0xec26('0x4f')][_0xec26('0x5d')](function(_0x2a8a05){return _0x3a178d[_0xec26('0x27')]({'transaction':_0x2a8a05,'raw':!![]})['then'](function(_0x231d23){if(_0x231d23[_0xec26('0x52')]){fs[_0xec26('0x5e')](_0x231d23[_0xec26('0x52')])[_0xec26('0x5f')](function(_0xc433f8){fs[_0xec26('0x60')](path[_0xec26('0x53')](_0x231d23[_0xec26('0x52')],_0xc433f8));});fs['rmdirSync'](_0x231d23[_0xec26('0x52')]);}return _0x231d23;});})[_0xec26('0x49')](function(_0x20def4){throw new db[(_0xec26('0x61'))][(_0xec26('0x62'))](_0x20def4[_0xec26('0x63')]);});}})[_0xec26('0x28')](handleEntityNotFound(_0x295bcf,null))[_0xec26('0x28')](removeEntity(_0x295bcf,null))[_0xec26('0x49')](handleError(_0x295bcf,null));};exports['addSound']=function(_0x274591,_0x120f34,_0x271ee2){return db[_0xec26('0x4f')][_0xec26('0x5d')](function(_0xba2262){var _0x41f297;return db[_0xec26('0x46')][_0xec26('0x4c')]({'where':{'id':_0x274591[_0xec26('0x4b')]['id']}})['then'](function(_0x19c8ff){if(_0x19c8ff){_0x41f297=_0x19c8ff;return _0x19c8ff[_0xec26('0x64')](_0x274591[_0xec26('0x4d')]['id'],{'transaction':_0xba2262});}})[_0xec26('0x28')](function(_0x25713f){if(_0x25713f){return db[_0xec26('0x65')][_0xec26('0x66')]({'where':{'id':_0x274591[_0xec26('0x4d')]['id']},'attributes':['id',_0xec26('0x2e'),_0xec26('0x67'),_0xec26('0x68'),_0xec26('0x69')],'raw':!![]});}})['then'](function(_0xe45526){if(_0xe45526){var _0x55d89e=path['join'](config[_0xec26('0x54')],_0xec26('0x6a'),util[_0xec26('0x6b')](_0xec26('0x6c'),path[_0xec26('0x6d')](_0xe45526[_0xec26('0x67')],path[_0xec26('0x6e')](_0xe45526[_0xec26('0x67')])),_0xe45526['converted_format']));var _0x37f470=path['join'](config[_0xec26('0x54')],_0xec26('0x55'),_0x41f297[_0xec26('0x2e')],util['format'](_0xec26('0x6c'),_0xe45526[_0xec26('0x2e')],_0xe45526[_0xec26('0x68')]));fs[_0xec26('0x6f')](_0x55d89e,_0x37f470);return _0xe45526;}})['catch'](function(_0x1f48bf){throw new db[(_0xec26('0x61'))]['ValidationError'](_0x1f48bf[_0xec26('0x63')]);});})['then'](handleEntityNotFound(_0x120f34,null))[_0xec26('0x28')](respondWithResult(_0x120f34,0xc9))[_0xec26('0x49')](handleError(_0x120f34,null));};exports['removeSound']=function(_0x514fa2,_0x39d430,_0x1cf1a6){return db['sequelize'][_0xec26('0x5d')](function(_0x17ec3d){var _0xe80ea0;return db[_0xec26('0x46')][_0xec26('0x66')]({'where':{'id':_0x514fa2[_0xec26('0x4b')]['id']}})[_0xec26('0x28')](handleEntityNotFound(_0x39d430,null))[_0xec26('0x28')](function(_0x399d40){if(_0x399d40){_0xe80ea0=_0x399d40;return _0x399d40[_0xec26('0x70')](_0x514fa2[_0xec26('0x4b')][_0xec26('0x71')]);}})[_0xec26('0x28')](function(_0x578892){if(_0x578892){return db['Sound'][_0xec26('0x66')]({'where':{'id':_0x514fa2[_0xec26('0x4b')]['id2']},'attributes':['id',_0xec26('0x2e'),_0xec26('0x67'),'converted_format','createdAt'],'raw':!![]});}})[_0xec26('0x28')](function(_0x51a658){if(_0x51a658){fs[_0xec26('0x60')](path[_0xec26('0x53')](_0xe80ea0[_0xec26('0x52')],util[_0xec26('0x6b')](_0xec26('0x6c'),_0x51a658[_0xec26('0x2e')],_0x51a658['converted_format'])));return _0x51a658;}})[_0xec26('0x49')](function(_0x17e793){throw new db['Sequelize']['ValidationError'](_0x17e793['message']);});})[_0xec26('0x28')](handleEntityNotFound(_0x39d430,null))[_0xec26('0x28')](respondWithStatusCode(_0x39d430,0xcc))[_0xec26('0x49')](handleError(_0x39d430,null));};exports[_0xec26('0x72')]=function(_0x6e948d,_0x21eb62,_0x123649){var _0x36b733={};var _0x5a337a={};var _0x1394b1;var _0x565d05;return db[_0xec26('0x46')][_0xec26('0x66')]({'where':{'id':_0x6e948d[_0xec26('0x4b')]['id']}})[_0xec26('0x28')](handleEntityNotFound(_0x21eb62,null))[_0xec26('0x28')](function(_0x2396df){if(_0x2396df){_0x1394b1=_0x2396df;_0x5a337a[_0xec26('0x33')]=_[_0xec26('0x34')](db['Sound'][_0xec26('0x31')]);_0x5a337a[_0xec26('0x35')]=_['keys'](_0x6e948d[_0xec26('0x35')]);_0x5a337a['filters']=_[_0xec26('0x37')](_0x5a337a['model'],_0x5a337a[_0xec26('0x35')]);_0x36b733[_0xec26('0x38')]=_[_0xec26('0x37')](_0x5a337a[_0xec26('0x33')],qs[_0xec26('0x39')](_0x6e948d['query']['fields']));_0x36b733['attributes']=_0x36b733[_0xec26('0x38')][_0xec26('0x3a')]?_0x36b733['attributes']:_0x5a337a['model'];_0x36b733['order']=qs[_0xec26('0x3d')](_0x6e948d['query'][_0xec26('0x3d')]);_0x36b733['where']=qs[_0xec26('0x36')](_[_0xec26('0x73')](_0x6e948d[_0xec26('0x35')],_0x5a337a['filters']));if(_0x6e948d[_0xec26('0x35')]['filter']){_0x36b733['where']=_[_0xec26('0x42')](_0x36b733[_0xec26('0x3e')],{'$or':_[_0xec26('0x30')](_0x36b733[_0xec26('0x38')],function(_0x26f2ec){var _0x401c62={};_0x401c62[_0x26f2ec]={'$like':'%'+_0x6e948d[_0xec26('0x35')]['filter']+'%'};return _0x401c62;})});}_0x36b733=_[_0xec26('0x42')]({},_0x36b733,_0x6e948d[_0xec26('0x43')]);return _0x1394b1['getSounds'](_0x36b733);}})[_0xec26('0x28')](function(_0x4023e8){if(_0x4023e8){_0x565d05=_0x4023e8['length'];if(!_0x6e948d['query'][_0xec26('0x74')](_0xec26('0x3b'))){_0x36b733['limit']=qs[_0xec26('0x1f')](_0x6e948d[_0xec26('0x35')]['limit']);_0x36b733['offset']=qs[_0xec26('0x21')](_0x6e948d[_0xec26('0x35')][_0xec26('0x21')]);}return _0x1394b1['getSounds'](_0x36b733);}})[_0xec26('0x28')](function(_0x5d6387){if(_0x5d6387){return _0x5d6387?{'count':_0x565d05,'rows':_0x5d6387}:null;}})[_0xec26('0x28')](respondWithResult(_0x21eb62,null))[_0xec26('0x49')](handleError(_0x21eb62,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d8e=['../../config/environment','./voiceMusicOnHold.attributes','exports','define','VoiceMusicOnHold','voice_musiconhold','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0x16e9f8,_0x34b303){var _0x4a1901=function(_0x5e2233){while(--_0x5e2233){_0x16e9f8['push'](_0x16e9f8['shift']());}};_0x4a1901(++_0x34b303);}(_0x9d8e,0x148));var _0xe9d8=function(_0x4fe955,_0xf2975d){_0x4fe955=_0x4fe955-0x0;var _0x1caaef=_0x9d8e[_0x4fe955];return _0x1caaef;};'use strict';var _=require(_0xe9d8('0x0'));var util=require(_0xe9d8('0x1'));var logger=require(_0xe9d8('0x2'))(_0xe9d8('0x3'));var moment=require('moment');var BPromise=require(_0xe9d8('0x4'));var rp=require(_0xe9d8('0x5'));var fs=require('fs');var path=require(_0xe9d8('0x6'));var rimraf=require(_0xe9d8('0x7'));var config=require(_0xe9d8('0x8'));var attributes=require(_0xe9d8('0x9'));module[_0xe9d8('0xa')]=function(_0x5f5ac3,_0x1d4ed2){return _0x5f5ac3[_0xe9d8('0xb')](_0xe9d8('0xc'),attributes,{'tableName':_0xe9d8('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd5f9=['path','rimraf','../../config/environment','./voiceMusicOnHold.attributes','exports','define','voice_musiconhold','util','moment','bluebird'];(function(_0xc0a2f4,_0x17a96a){var _0x52f7de=function(_0x43e407){while(--_0x43e407){_0xc0a2f4['push'](_0xc0a2f4['shift']());}};_0x52f7de(++_0x17a96a);}(_0xd5f9,0x16f));var _0x9d5f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd5f9[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x9d5f('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x9d5f('0x1'));var BPromise=require(_0x9d5f('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9d5f('0x3'));var rimraf=require(_0x9d5f('0x4'));var config=require(_0x9d5f('0x5'));var attributes=require(_0x9d5f('0x6'));module[_0x9d5f('0x7')]=function(_0xa11545,_0x3068b5){return _0xa11545[_0x9d5f('0x8')]('VoiceMusicOnHold',attributes,{'tableName':_0x9d5f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['stringify','error','code','message','catch','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','request','info','VoiceMusicOnHold,\x20%s,\x20%s','request\x20sent','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s'];(function(_0x4c1cbf,_0x19d09d){var _0x518daa=function(_0x36f1a2){while(--_0x36f1a2){_0x4c1cbf['push'](_0x4c1cbf['shift']());}};_0x518daa(++_0x19d09d);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0xcb91[_0x45d55e];return _0x29812a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1cb9('0x0'));var BPromise=require(_0x1cb9('0x1'));var rs=require(_0x1cb9('0x2'));var fs=require('fs');var Redis=require(_0x1cb9('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x1cb9('0x4'));var logger=require(_0x1cb9('0x5'))('rpc');var config=require(_0x1cb9('0x6'));var jayson=require(_0x1cb9('0x7'));var client=jayson['client'][_0x1cb9('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3f7deb,_0x4ffe20,_0x38737d){return new BPromise(function(_0x12567c,_0x59d1be){return client[_0x1cb9('0x9')](_0x3f7deb,_0x38737d)['then'](function(_0x567139){logger[_0x1cb9('0xa')](_0x1cb9('0xb'),_0x4ffe20,_0x1cb9('0xc'));logger[_0x1cb9('0xd')](_0x1cb9('0xe'),_0x4ffe20,'request\x20sent',JSON[_0x1cb9('0xf')](_0x567139));if(_0x567139[_0x1cb9('0x10')]){if(_0x567139[_0x1cb9('0x10')][_0x1cb9('0x11')]===0x1f4){logger[_0x1cb9('0x10')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x4ffe20,_0x567139['error']['message']);return _0x59d1be(_0x567139[_0x1cb9('0x10')][_0x1cb9('0x12')]);}logger[_0x1cb9('0x10')](_0x1cb9('0xb'),_0x4ffe20,_0x567139['error'][_0x1cb9('0x12')]);return _0x12567c(_0x567139[_0x1cb9('0x10')][_0x1cb9('0x12')]);}else{logger[_0x1cb9('0xa')](_0x1cb9('0xb'),_0x4ffe20,'request\x20sent');_0x12567c(_0x567139['result'][_0x1cb9('0x12')]);}})[_0x1cb9('0x13')](function(_0x3904b7){logger[_0x1cb9('0x10')](_0x1cb9('0xb'),_0x4ffe20,_0x3904b7);_0x59d1be(_0x3904b7);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','VoiceMusicOnHold,\x20%s,\x20%s','request\x20sent','debug','VoiceMusicOnHold,\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(_0x1fd9ca,_0x2401a6){var _0x55a884=function(_0xfec0c8){while(--_0xfec0c8){_0x1fd9ca['push'](_0x1fd9ca['shift']());}};_0x55a884(++_0x2401a6);}(_0xa9e0,0x123));var _0x0a9e=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xa9e0[_0x491a7f];return _0x3d8f44;};'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 _0x5f10=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voicePrefix.controller','isAuthenticated','index','get','describe','/:id','show','/:id/users','getAgents','/:id/teams','post','create','addAgents','addTeams','update','delete','destroy','removeAgents','removeTeams','exports','multer','util','Router'];(function(_0x31906a,_0x226de5){var _0x235eed=function(_0x20e767){while(--_0x20e767){_0x31906a['push'](_0x31906a['shift']());}};_0x235eed(++_0x226de5);}(_0x5f10,0xd5));var _0x05f1=function(_0x307060,_0x26dc3d){_0x307060=_0x307060-0x0;var _0x3a2587=_0x5f10[_0x307060];return _0x3a2587;};'use strict';var multer=require(_0x05f1('0x0'));var util=require(_0x05f1('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x05f1('0x2')]();var fs_extra=require(_0x05f1('0x3'));var auth=require(_0x05f1('0x4'));var interaction=require(_0x05f1('0x5'));var config=require(_0x05f1('0x6'));var controller=require(_0x05f1('0x7'));router['get']('/',auth[_0x05f1('0x8')](),controller[_0x05f1('0x9')]);router[_0x05f1('0xa')]('/describe',auth[_0x05f1('0x8')](),controller[_0x05f1('0xb')]);router[_0x05f1('0xa')](_0x05f1('0xc'),auth[_0x05f1('0x8')](),controller[_0x05f1('0xd')]);router['get'](_0x05f1('0xe'),auth[_0x05f1('0x8')](),controller[_0x05f1('0xf')]);router[_0x05f1('0xa')](_0x05f1('0x10'),auth[_0x05f1('0x8')](),controller['getTeams']);router[_0x05f1('0x11')]('/',auth['isAuthenticated'](),controller[_0x05f1('0x12')]);router[_0x05f1('0x11')](_0x05f1('0xe'),auth[_0x05f1('0x8')](),controller[_0x05f1('0x13')]);router[_0x05f1('0x11')](_0x05f1('0x10'),auth[_0x05f1('0x8')](),controller[_0x05f1('0x14')]);router['put'](_0x05f1('0xc'),auth[_0x05f1('0x8')](),controller[_0x05f1('0x15')]);router[_0x05f1('0x16')]('/:id',auth[_0x05f1('0x8')](),controller[_0x05f1('0x17')]);router[_0x05f1('0x16')](_0x05f1('0xe'),auth[_0x05f1('0x8')](),controller[_0x05f1('0x18')]);router[_0x05f1('0x16')](_0x05f1('0x10'),auth[_0x05f1('0x8')](),controller[_0x05f1('0x19')]);module[_0x05f1('0x1a')]=router;
\ No newline at end of file
+var _0xc1cf=['isAuthenticated','describe','/:id','getAgents','post','create','/:id/users','addAgents','put','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./voicePrefix.controller','get','index','/describe'];(function(_0x3d659f,_0x44f566){var _0x1e7801=function(_0x2c0bec){while(--_0x2c0bec){_0x3d659f['push'](_0x3d659f['shift']());}};_0x1e7801(++_0x44f566);}(_0xc1cf,0x165));var _0xfc1c=function(_0x5c8d1e,_0x458578){_0x5c8d1e=_0x5c8d1e-0x0;var _0x99ed5d=_0xc1cf[_0x5c8d1e];return _0x99ed5d;};'use strict';var multer=require(_0xfc1c('0x0'));var util=require('util');var path=require(_0xfc1c('0x1'));var timeout=require(_0xfc1c('0x2'));var express=require(_0xfc1c('0x3'));var router=express[_0xfc1c('0x4')]();var fs_extra=require(_0xfc1c('0x5'));var auth=require(_0xfc1c('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xfc1c('0x7'));router[_0xfc1c('0x8')]('/',auth['isAuthenticated'](),controller[_0xfc1c('0x9')]);router['get'](_0xfc1c('0xa'),auth[_0xfc1c('0xb')](),controller[_0xfc1c('0xc')]);router[_0xfc1c('0x8')](_0xfc1c('0xd'),auth['isAuthenticated'](),controller['show']);router[_0xfc1c('0x8')]('/:id/users',auth['isAuthenticated'](),controller[_0xfc1c('0xe')]);router[_0xfc1c('0xf')]('/',auth[_0xfc1c('0xb')](),controller[_0xfc1c('0x10')]);router['post'](_0xfc1c('0x11'),auth[_0xfc1c('0xb')](),controller[_0xfc1c('0x12')]);router[_0xfc1c('0x13')](_0xfc1c('0xd'),auth[_0xfc1c('0xb')](),controller['update']);router[_0xfc1c('0x14')]('/:id',auth['isAuthenticated'](),controller[_0xfc1c('0x15')]);router[_0xfc1c('0x14')](_0xfc1c('0x11'),auth[_0xfc1c('0xb')](),controller['removeAgents']);module[_0xfc1c('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf003=['VIRTUAL','system-','getDataValue','sequelize','STRING','name'];(function(_0x628eee,_0x3f3fba){var _0x447718=function(_0x38112b){while(--_0x38112b){_0x628eee['push'](_0x628eee['shift']());}};_0x447718(++_0x3f3fba);}(_0xf003,0x75));var _0x3f00=function(_0x3b1e3f,_0xf8826b){_0x3b1e3f=_0x3b1e3f-0x0;var _0x3b1cd3=_0xf003[_0x3b1e3f];return _0x3b1cd3;};'use strict';var Sequelize=require(_0x3f00('0x0'));module['exports']={'name':{'type':Sequelize[_0x3f00('0x1')],'allowNull':![],'unique':_0x3f00('0x2')},'prefix':{'type':Sequelize[_0x3f00('0x3')],'get':function(_0x4c4ccc){return _0x3f00('0x4')+this[_0x3f00('0x5')](_0x3f00('0x2'))+'-';}},'description':{'type':Sequelize['STRING']},'callerIdAll':{'type':Sequelize[_0x3f00('0x1')]},'VoiceExtensionId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0x2638=['STRING','INTEGER','sequelize','exports','system-','getDataValue','name'];(function(_0x270af6,_0x87f513){var _0x55a014=function(_0x10f83b){while(--_0x10f83b){_0x270af6['push'](_0x270af6['shift']());}};_0x55a014(++_0x87f513);}(_0x2638,0xe2));var _0x8263=function(_0x50d0dc,_0x23bcb0){_0x50d0dc=_0x50d0dc-0x0;var _0x49f2a9=_0x2638[_0x50d0dc];return _0x49f2a9;};'use strict';var Sequelize=require(_0x8263('0x0'));module[_0x8263('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'prefix':{'type':Sequelize['VIRTUAL'],'get':function(_0xd9ecff){return _0x8263('0x2')+this[_0x8263('0x3')](_0x8263('0x4'))+'-';}},'description':{'type':Sequelize[_0x8263('0x5')]},'callerIdAll':{'type':Sequelize[_0x8263('0x5')]},'VoiceExtensionId':{'type':Sequelize[_0x8263('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4f4=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','localhost','./voicePrefix.socket','register','sendStatus','end','status','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','get','VoicePrefixes','UserProfileResource','error','stack','name','send','index','rawAttributes','fieldName','type','key','map','query','intersection','model','attributes','fields','hasOwnProperty','nolimit','offset','order','sort','where','filters','filter','merge','options','includeAll','include','VoicePrefix','rows','catch','show','keys','find','params','describe','sequelize','create','body','VoiceExtension','VoiceExtensionId','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','from-sip','exten','system','description','priority','prefix','NoOp','Voice\x20Prefix','bulkCreate','push','Set','CDR(prefix)=','callerIdAll','goto','${EXTEN:','length','charAt','system-','findById','addAgents','ids','omit','spread','emit','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','getAgents','findOne','User','pick','getTeams','findAll','Agents','online','voicePause','interface','flatMap','transaction','addTeams','each','TeamVoicePrefix','upsert','UserVoicePrefix','findOrCreate','forEach','removeTeams','Team','field','tq.TeamId','from','team_has_voice_prefixes','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoicePrefixId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','QueryTypes','TeamId','includes','union','compact','value','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x23a409,_0x21ab5f){var _0x2cddda=function(_0x533329){while(--_0x533329){_0x23a409['push'](_0x23a409['shift']());}};_0x2cddda(++_0x21ab5f);}(_0xd4f4,0x8b));var _0x4d4f=function(_0x311451,_0x3b015e){_0x311451=_0x311451-0x0;var _0x5d352d=_0xd4f4[_0x311451];return _0x5d352d;};'use strict';var emlformat=require(_0x4d4f('0x0'));var rimraf=require(_0x4d4f('0x1'));var zipdir=require(_0x4d4f('0x2'));var jsonpatch=require(_0x4d4f('0x3'));var rp=require(_0x4d4f('0x4'));var moment=require(_0x4d4f('0x5'));var BPromise=require(_0x4d4f('0x6'));var Mustache=require(_0x4d4f('0x7'));var util=require(_0x4d4f('0x8'));var path=require(_0x4d4f('0x9'));var sox=require(_0x4d4f('0xa'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4d4f('0xb'));var squel=require(_0x4d4f('0xc'));var crypto=require(_0x4d4f('0xd'));var jsforce=require(_0x4d4f('0xe'));var deskjs=require(_0x4d4f('0xf'));var toCsv=require(_0x4d4f('0x10'));var querystring=require(_0x4d4f('0x11'));var Papa=require(_0x4d4f('0x12'));var Redis=require(_0x4d4f('0x13'));var authService=require(_0x4d4f('0x14'));var qs=require(_0x4d4f('0x15'));var as=require(_0x4d4f('0x16'));var hardwareService=require(_0x4d4f('0x17'));var logger=require(_0x4d4f('0x18'))(_0x4d4f('0x19'));var utils=require(_0x4d4f('0x1a'));var config=require(_0x4d4f('0x1b'));var licenseUtil=require(_0x4d4f('0x1c'));var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0x4d4f('0x1d')],{'host':_0x4d4f('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4d4f('0x1d')]));require(_0x4d4f('0x1f'))[_0x4d4f('0x20')](socket);function respondWithStatusCode(_0x59252c,_0x145804){_0x145804=_0x145804||0xcc;return function(_0x2e736b){if(_0x2e736b){return _0x59252c[_0x4d4f('0x21')](_0x145804);}return _0x59252c['status'](_0x145804)[_0x4d4f('0x22')]();};}function respondWithResult(_0x5e4ff5,_0x18a528){_0x18a528=_0x18a528||0xc8;return function(_0x16f8e7){if(_0x16f8e7){return _0x5e4ff5[_0x4d4f('0x23')](_0x18a528)['json'](_0x16f8e7);}};}function respondWithFilteredResult(_0x30b6b1,_0x17a437){return function(_0x51dcf1){if(_0x51dcf1){var _0x5dbbeb=typeof _0x17a437['offset']==='undefined'&&typeof _0x17a437['limit']===_0x4d4f('0x24');var _0x15100a=_0x51dcf1[_0x4d4f('0x25')];var _0x3566a5=_0x5dbbeb?0x0:_0x17a437['offset'];var _0x5b2863=_0x5dbbeb?_0x51dcf1[_0x4d4f('0x25')]:_0x17a437['offset']+_0x17a437[_0x4d4f('0x26')];var _0x1e3e9a;if(_0x5b2863>=_0x15100a){_0x5b2863=_0x15100a;_0x1e3e9a=0xc8;}else{_0x1e3e9a=0xce;}_0x30b6b1[_0x4d4f('0x23')](_0x1e3e9a);return _0x30b6b1[_0x4d4f('0x27')](_0x4d4f('0x28'),_0x3566a5+'-'+_0x5b2863+'/'+_0x15100a)['json'](_0x51dcf1);}return null;};}function patchUpdates(_0x570520){return function(_0x4043f2){try{jsonpatch['apply'](_0x4043f2,_0x570520,!![]);}catch(_0x247077){return BPromise[_0x4d4f('0x29')](_0x247077);}return _0x4043f2[_0x4d4f('0x2a')]();};}function saveUpdates(_0x3f4a55,_0xf3f7a4){return function(_0x497cec){if(_0x497cec){return _0x497cec[_0x4d4f('0x2b')](_0x3f4a55)[_0x4d4f('0x2c')](function(_0x1cf365){return _0x1cf365;});}return null;};}function removeEntity(_0x28443b,_0x5cf9e7){return function(_0x51a7c5){if(_0x51a7c5){return _0x51a7c5[_0x4d4f('0x2d')]()[_0x4d4f('0x2c')](function(){var _0xa2492c=_0x51a7c5[_0x4d4f('0x2e')]({'plain':!![]});var _0x58acbe=_0x4d4f('0x2f');return db[_0x4d4f('0x30')][_0x4d4f('0x2d')]({'where':{'type':_0x58acbe,'resourceId':_0xa2492c['id']}})[_0x4d4f('0x2c')](function(){return _0x51a7c5;});})['then'](function(){_0x28443b[_0x4d4f('0x23')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1688bb,_0x333a40){return function(_0x550040){if(!_0x550040){_0x1688bb[_0x4d4f('0x21')](0x194);}return _0x550040;};}function handleError(_0x123383,_0x287a09){_0x287a09=_0x287a09||0x1f4;return function(_0x3d7f14){logger[_0x4d4f('0x31')](_0x3d7f14[_0x4d4f('0x32')]);if(_0x3d7f14['name']){delete _0x3d7f14[_0x4d4f('0x33')];}_0x123383[_0x4d4f('0x23')](_0x287a09)[_0x4d4f('0x34')](_0x3d7f14);};}exports[_0x4d4f('0x35')]=function(_0x104104,_0x4e47e5){var _0x2d6565={},_0x486e33={},_0x35f9e2={'count':0x0,'rows':[]};var _0x537a47=_['map'](db['VoicePrefix'][_0x4d4f('0x36')],function(_0x57fc2b){return{'name':_0x57fc2b[_0x4d4f('0x37')],'type':_0x57fc2b[_0x4d4f('0x38')][_0x4d4f('0x39')]};});_0x486e33['model']=_[_0x4d4f('0x3a')](_0x537a47,_0x4d4f('0x33'));_0x486e33[_0x4d4f('0x3b')]=_['keys'](_0x104104[_0x4d4f('0x3b')]);_0x486e33['filters']=_[_0x4d4f('0x3c')](_0x486e33[_0x4d4f('0x3d')],_0x486e33[_0x4d4f('0x3b')]);_0x2d6565[_0x4d4f('0x3e')]=_[_0x4d4f('0x3c')](_0x486e33[_0x4d4f('0x3d')],qs[_0x4d4f('0x3f')](_0x104104[_0x4d4f('0x3b')]['fields']));_0x2d6565['attributes']=_0x2d6565[_0x4d4f('0x3e')]['length']?_0x2d6565['attributes']:_0x486e33[_0x4d4f('0x3d')];if(!_0x104104[_0x4d4f('0x3b')][_0x4d4f('0x40')](_0x4d4f('0x41'))){_0x2d6565[_0x4d4f('0x26')]=qs['limit'](_0x104104[_0x4d4f('0x3b')][_0x4d4f('0x26')]);_0x2d6565['offset']=qs[_0x4d4f('0x42')](_0x104104[_0x4d4f('0x3b')][_0x4d4f('0x42')]);}_0x2d6565[_0x4d4f('0x43')]=qs[_0x4d4f('0x44')](_0x104104[_0x4d4f('0x3b')][_0x4d4f('0x44')]);_0x2d6565[_0x4d4f('0x45')]=qs[_0x4d4f('0x46')](_['pick'](_0x104104['query'],_0x486e33[_0x4d4f('0x46')]),_0x537a47);if(_0x104104[_0x4d4f('0x3b')][_0x4d4f('0x47')]){_0x2d6565[_0x4d4f('0x45')]=_['merge'](_0x2d6565['where'],{'$or':_[_0x4d4f('0x3a')](_0x537a47,function(_0x3c34bd){if(_0x3c34bd['type']!=='VIRTUAL'){var _0x3591b7={};_0x3591b7[_0x3c34bd[_0x4d4f('0x33')]]={'$like':'%'+_0x104104['query'][_0x4d4f('0x47')]+'%'};return _0x3591b7;}})});}_0x2d6565=_[_0x4d4f('0x48')]({},_0x2d6565,_0x104104[_0x4d4f('0x49')]);var _0x32c6ff={'where':_0x2d6565[_0x4d4f('0x45')]};return db['VoicePrefix'][_0x4d4f('0x25')](_0x32c6ff)['then'](function(_0x45a0c1){_0x35f9e2[_0x4d4f('0x25')]=_0x45a0c1;if(_0x104104['query'][_0x4d4f('0x4a')]){_0x2d6565[_0x4d4f('0x4b')]=[{'all':!![]}];}return db[_0x4d4f('0x4c')]['findAll'](_0x2d6565);})[_0x4d4f('0x2c')](function(_0x48caa2){_0x35f9e2[_0x4d4f('0x4d')]=_0x48caa2;return _0x35f9e2;})['then'](respondWithFilteredResult(_0x4e47e5,_0x2d6565))[_0x4d4f('0x4e')](handleError(_0x4e47e5,null));};exports[_0x4d4f('0x4f')]=function(_0x231134,_0x2939cb){var _0x198c3a={'raw':![],'where':{'id':_0x231134['params']['id']}},_0x4a53e4={};_0x4a53e4[_0x4d4f('0x3d')]=_[_0x4d4f('0x50')](db[_0x4d4f('0x4c')][_0x4d4f('0x36')]);_0x4a53e4['query']=_['keys'](_0x231134['query']);_0x4a53e4[_0x4d4f('0x46')]=_[_0x4d4f('0x3c')](_0x4a53e4[_0x4d4f('0x3d')],_0x4a53e4[_0x4d4f('0x3b')]);_0x198c3a[_0x4d4f('0x3e')]=_[_0x4d4f('0x3c')](_0x4a53e4[_0x4d4f('0x3d')],qs[_0x4d4f('0x3f')](_0x231134[_0x4d4f('0x3b')][_0x4d4f('0x3f')]));_0x198c3a[_0x4d4f('0x3e')]=_0x198c3a[_0x4d4f('0x3e')]['length']?_0x198c3a[_0x4d4f('0x3e')]:_0x4a53e4[_0x4d4f('0x3d')];if(_0x231134['query'][_0x4d4f('0x4a')]){_0x198c3a['include']=[{'all':!![]}];}_0x198c3a=_[_0x4d4f('0x48')]({},_0x198c3a,_0x231134[_0x4d4f('0x49')]);return db['VoicePrefix'][_0x4d4f('0x51')](_0x198c3a)[_0x4d4f('0x2c')](handleEntityNotFound(_0x2939cb,null))[_0x4d4f('0x2c')](respondWithResult(_0x2939cb,null))[_0x4d4f('0x4e')](handleError(_0x2939cb,null));};exports[_0x4d4f('0x2d')]=function(_0x3eae74,_0x11a63e){return db[_0x4d4f('0x4c')][_0x4d4f('0x51')]({'where':{'id':_0x3eae74[_0x4d4f('0x52')]['id']}})[_0x4d4f('0x2c')](handleEntityNotFound(_0x11a63e,null))[_0x4d4f('0x2c')](removeEntity(_0x11a63e,null))['catch'](handleError(_0x11a63e,null));};exports[_0x4d4f('0x53')]=function(_0x539088,_0x59d245){return db['VoicePrefix'][_0x4d4f('0x53')]()[_0x4d4f('0x2c')](respondWithResult(_0x59d245,null))['catch'](handleError(_0x59d245,null));};exports['create']=function(_0x2a3bc4,_0x4c80c4){var _0x5adc7b;return db[_0x4d4f('0x54')]['transaction'](function(_0x17b59e){return db[_0x4d4f('0x4c')][_0x4d4f('0x55')](_0x2a3bc4[_0x4d4f('0x56')],{'transaction':_0x17b59e})['then'](function(_0x224b83){_0x5adc7b=_0x224b83[_0x4d4f('0x2e')]({'plain':!![]});return db[_0x4d4f('0x57')][_0x4d4f('0x51')]({'where':{'id':_0x5adc7b[_0x4d4f('0x58')]},'raw':!![]})['then'](function(_0x10f94e){return createVoicePrefixExtensions(_0x5adc7b,_0x10f94e,_0x17b59e);});});})['then'](function(){var _0x32cba6=_0x2a3bc4['user'][_0x4d4f('0x2e')]({'plain':!![]});if(!_0x32cba6)throw new Error(_0x4d4f('0x59'));if(_0x32cba6['role']===_0x4d4f('0x5a')){var _0x1d8ae6=_0x5adc7b;return db['UserProfileSection'][_0x4d4f('0x51')]({'where':{'name':'VoicePrefixes','userProfileId':_0x32cba6[_0x4d4f('0x5b')]},'raw':!![]})['then'](function(_0x48ad06){if(_0x48ad06&&_0x48ad06[_0x4d4f('0x5c')]===0x0){return db[_0x4d4f('0x30')][_0x4d4f('0x55')]({'name':_0x1d8ae6[_0x4d4f('0x33')],'resourceId':_0x1d8ae6['id'],'type':_0x48ad06[_0x4d4f('0x33')],'sectionId':_0x48ad06['id']},{})['then'](function(){return _0x5adc7b;});}else{return _0x5adc7b;}})['catch'](function(_0xeaccdd){logger['error'](_0x4d4f('0x5d'),_0xeaccdd);throw _0xeaccdd;});}return _0x5adc7b;})[_0x4d4f('0x2c')](respondWithResult(_0x4c80c4,null))[_0x4d4f('0x4e')](handleError(_0x4c80c4,null));};function Extension(_0x4585b5,_0x31aba3,_0x39ae15,_0x585764){this[_0x4d4f('0x5e')]=_0x4d4f('0x5f');this[_0x4d4f('0x60')]=_0x4585b5;this['app']=_0x39ae15;this[_0x4d4f('0x38')]=_0x4d4f('0x61');this[_0x4d4f('0x62')]='Voice\x20Prefix\x20Extension';this[_0x4d4f('0x63')]=_0x31aba3;this['appdata']=_0x585764;}function createVoicePrefixExtensions(_0xcdab8b,_0x2145ca,_0x1fe5ca){return new BPromise(function(_0xe8d3e2,_0x1edb3d){var _0x2e55f5=new Extension(formatPrefixName(_0xcdab8b[_0x4d4f('0x64')]),0x1,_0x4d4f('0x65'),_0x4d4f('0x66'));_0x2e55f5['VoicePrefixId']=_0xcdab8b['id'];return db[_0x4d4f('0x57')][_0x4d4f('0x55')](_0x2e55f5,{'transaction':_0x1fe5ca})['then'](function(_0x1bd4b1){var _0x2a3738=_0x1bd4b1[_0x4d4f('0x2e')]({'plain':!![]});var _0xae8fe=_['map'](addVoicePrefixExtensions(_0xcdab8b,_0x2145ca),function(_0x4013a9){_0x4013a9[_0x4d4f('0x58')]=_0x2a3738['id'];_0x4013a9['VoicePrefixId']=_0xcdab8b['id'];return _0x4013a9;});return db['VoiceExtension'][_0x4d4f('0x67')](_0xae8fe,{'transaction':_0x1fe5ca})[_0x4d4f('0x2c')](function(_0x53b2db){if(!_0x53b2db){return _0x1edb3d('Extensions\x20creation\x20failed');}else{return _0xe8d3e2(_0x53b2db);}})['catch'](function(_0x4752bd){return _0x1edb3d(_0x4752bd);});});;});};function addVoicePrefixExtensions(_0x351fb5,_0x5e0ead){var _0x347bb1=[];var _0xc596ea=formatPrefixName(_0x351fb5[_0x4d4f('0x64')]);_0x347bb1[_0x4d4f('0x68')](new Extension(_0xc596ea,0x2,_0x4d4f('0x69'),_0x4d4f('0x6a')+_0x351fb5[_0x4d4f('0x33')]));if(_0x351fb5[_0x4d4f('0x6b')]){_0x347bb1['push'](new Extension(_0xc596ea,0x3,_0x4d4f('0x69'),'PREFIX-CALLERIDALL='+_0x351fb5[_0x4d4f('0x6b')]));}else{_0x347bb1[_0x4d4f('0x68')](new Extension(_0xc596ea,0x3,_0x4d4f('0x65'),'No\x20callerid\x20available'));}_0x347bb1[_0x4d4f('0x68')](new Extension(_0xc596ea,0x4,_0x4d4f('0x6c'),_0x5e0ead[_0x4d4f('0x5e')]+','+_0x4d4f('0x6d')+(0x8+_0x351fb5['name'][_0x4d4f('0x6e')])+'}'+','+0x1));return _0x347bb1;}function formatPrefixName(_0x4bf7bd){var _0x268b34='_';for(var _0x50d0da=0x0;_0x50d0da<_0x4bf7bd['length'];_0x50d0da++){if(_0x4bf7bd[_0x4d4f('0x6f')](_0x50d0da)=='-'){_0x268b34+=_0x4bf7bd[_0x4d4f('0x6f')](_0x50d0da);}else{_0x268b34+='['+_0x4bf7bd['charAt'](_0x50d0da)+']';}}_0x268b34+='.';return _0x268b34;}exports[_0x4d4f('0x2b')]=function(_0x53a18b,_0x41ffe7,_0x4420f0){var _0x111c01=_0x53a18b[_0x4d4f('0x56')];_0x111c01['prefix']=_0x4d4f('0x70')+_0x111c01[_0x4d4f('0x33')]+'-';return db[_0x4d4f('0x54')]['transaction'](function(_0x781877){return db[_0x4d4f('0x4c')][_0x4d4f('0x2b')](_0x111c01,{'where':{'id':_0x111c01['id']},'transaction':_0x781877})[_0x4d4f('0x2c')](function(){return db[_0x4d4f('0x57')][_0x4d4f('0x2d')]({'where':{'VoicePrefixId':_0x111c01['id']},'transaction':_0x781877})['then'](function(){return db['VoiceExtension'][_0x4d4f('0x51')]({'where':{'id':_0x111c01[_0x4d4f('0x58')]},'raw':!![]})['then'](function(_0x26ed6f){return createVoicePrefixExtensions(_0x111c01,_0x26ed6f,_0x781877);});});});})[_0x4d4f('0x2c')](function(){return db[_0x4d4f('0x4c')][_0x4d4f('0x71')](_0x111c01['id']);})[_0x4d4f('0x2c')](respondWithResult(_0x41ffe7,null))[_0x4d4f('0x4e')](handleError(_0x41ffe7,null));};exports[_0x4d4f('0x72')]=function(_0x1c764b,_0x302cde,_0x44f0c2){return db[_0x4d4f('0x4c')][_0x4d4f('0x51')]({'where':{'id':_0x1c764b[_0x4d4f('0x52')]['id']}})[_0x4d4f('0x2c')](handleEntityNotFound(_0x302cde,null))[_0x4d4f('0x2c')](function(_0x518252){if(_0x518252){return _0x518252[_0x4d4f('0x72')](_0x1c764b[_0x4d4f('0x56')][_0x4d4f('0x73')],_[_0x4d4f('0x74')](_0x1c764b['body'],['ids','id'])||{})[_0x4d4f('0x75')](function(_0x3c8a64){for(var _0x4736db=0x0;_0x4736db<_0x1c764b[_0x4d4f('0x56')][_0x4d4f('0x73')][_0x4d4f('0x6e')];_0x4736db+=0x1){socket[_0x4d4f('0x76')](_0x4d4f('0x77'),{'UserId':Number(_0x1c764b[_0x4d4f('0x56')][_0x4d4f('0x73')][_0x4736db]),'VoicePrefixId':Number(_0x1c764b['params']['id'])});}return _0x3c8a64;});}})[_0x4d4f('0x2c')](respondWithResult(_0x302cde,null))[_0x4d4f('0x4e')](handleError(_0x302cde,null));};exports[_0x4d4f('0x78')]=function(_0x2c8c79,_0x584c53,_0x5240be){return db['VoicePrefix'][_0x4d4f('0x51')]({'where':{'id':_0x2c8c79['params']['id']}})[_0x4d4f('0x2c')](handleEntityNotFound(_0x584c53,null))[_0x4d4f('0x2c')](function(_0xa63721){if(_0xa63721){return _0xa63721[_0x4d4f('0x78')](_0x2c8c79[_0x4d4f('0x3b')][_0x4d4f('0x73')])[_0x4d4f('0x2c')](function(){if(_[_0x4d4f('0x79')](_0x2c8c79['query']['ids'])){for(var _0x42c66c=0x0;_0x42c66c<_0x2c8c79['query'][_0x4d4f('0x73')][_0x4d4f('0x6e')];_0x42c66c+=0x1){socket[_0x4d4f('0x76')]('userVoicePrefix:remove',{'UserId':Number(_0x2c8c79['query']['ids'][_0x42c66c]),'VoicePrefixId':Number(_0x2c8c79[_0x4d4f('0x52')]['id'])});}}else{socket['emit'](_0x4d4f('0x7a'),{'UserId':Number(_0x2c8c79['query'][_0x4d4f('0x73')]),'VoicePrefixId':Number(_0x2c8c79[_0x4d4f('0x52')]['id'])});}});}})[_0x4d4f('0x2c')](respondWithStatusCode(_0x584c53,null))[_0x4d4f('0x4e')](handleError(_0x584c53,null));};exports[_0x4d4f('0x7b')]=function(_0x1670fd,_0x548709,_0x18274e){var _0x3beacf={};var _0x4691b7={};var _0x1f62e0;var _0x328528;return db['VoicePrefix'][_0x4d4f('0x7c')]({'where':{'id':_0x1670fd['params']['id']}})[_0x4d4f('0x2c')](handleEntityNotFound(_0x548709,null))[_0x4d4f('0x2c')](function(_0x2511c8){if(_0x2511c8){_0x1f62e0=_0x2511c8;_0x4691b7[_0x4d4f('0x3d')]=_[_0x4d4f('0x50')](db[_0x4d4f('0x7d')][_0x4d4f('0x36')]);_0x4691b7['query']=_[_0x4d4f('0x50')](_0x1670fd[_0x4d4f('0x3b')]);_0x4691b7[_0x4d4f('0x46')]=_['intersection'](_0x4691b7[_0x4d4f('0x3d')],_0x4691b7['query']);_0x3beacf[_0x4d4f('0x3e')]=_['intersection'](_0x4691b7[_0x4d4f('0x3d')],qs[_0x4d4f('0x3f')](_0x1670fd[_0x4d4f('0x3b')]['fields']));_0x3beacf[_0x4d4f('0x3e')]=_0x3beacf[_0x4d4f('0x3e')][_0x4d4f('0x6e')]?_0x3beacf[_0x4d4f('0x3e')]:_0x4691b7['model'];_0x3beacf[_0x4d4f('0x43')]=qs[_0x4d4f('0x44')](_0x1670fd['query'][_0x4d4f('0x44')]);_0x3beacf[_0x4d4f('0x45')]=qs[_0x4d4f('0x46')](_[_0x4d4f('0x7e')](_0x1670fd[_0x4d4f('0x3b')],_0x4691b7[_0x4d4f('0x46')]));if(_0x1670fd['query'][_0x4d4f('0x47')]){_0x3beacf[_0x4d4f('0x45')]=_['merge'](_0x3beacf[_0x4d4f('0x45')],{'$or':_[_0x4d4f('0x3a')](_0x3beacf[_0x4d4f('0x3e')],function(_0x4686b9){var _0x16d1f7={};_0x16d1f7[_0x4686b9]={'$like':'%'+_0x1670fd[_0x4d4f('0x3b')][_0x4d4f('0x47')]+'%'};return _0x16d1f7;})});}_0x3beacf=_[_0x4d4f('0x48')]({},_0x3beacf,_0x1670fd['options']);return _0x1f62e0[_0x4d4f('0x7b')](_0x3beacf);}})[_0x4d4f('0x2c')](function(_0x4dd3f6){if(_0x4dd3f6){_0x328528=_0x4dd3f6[_0x4d4f('0x6e')];if(!_0x1670fd['query'][_0x4d4f('0x40')]('nolimit')){_0x3beacf[_0x4d4f('0x26')]=qs[_0x4d4f('0x26')](_0x1670fd[_0x4d4f('0x3b')][_0x4d4f('0x26')]);_0x3beacf[_0x4d4f('0x42')]=qs[_0x4d4f('0x42')](_0x1670fd[_0x4d4f('0x3b')][_0x4d4f('0x42')]);}return _0x1f62e0[_0x4d4f('0x7b')](_0x3beacf);}})[_0x4d4f('0x2c')](function(_0x10f882){if(_0x10f882){return _0x10f882?{'count':_0x328528,'rows':_0x10f882}:null;}})[_0x4d4f('0x2c')](respondWithResult(_0x548709,null))['catch'](handleError(_0x548709,null));};exports['getTeams']=function(_0x41c81d,_0x5d6abf,_0x2208d8){var _0x2b096e={};var _0x4e6da6={};var _0x53817f;var _0x10955f;return db[_0x4d4f('0x4c')][_0x4d4f('0x7c')]({'where':{'id':_0x41c81d['params']['id']}})['then'](handleEntityNotFound(_0x5d6abf,null))[_0x4d4f('0x2c')](function(_0x274ff2){if(_0x274ff2){_0x53817f=_0x274ff2;_0x4e6da6[_0x4d4f('0x3d')]=_[_0x4d4f('0x50')](db['Team'][_0x4d4f('0x36')]);_0x4e6da6[_0x4d4f('0x3b')]=_[_0x4d4f('0x50')](_0x41c81d['query']);_0x4e6da6['filters']=_[_0x4d4f('0x3c')](_0x4e6da6[_0x4d4f('0x3d')],_0x4e6da6[_0x4d4f('0x3b')]);_0x2b096e[_0x4d4f('0x3e')]=_[_0x4d4f('0x3c')](_0x4e6da6['model'],qs[_0x4d4f('0x3f')](_0x41c81d[_0x4d4f('0x3b')][_0x4d4f('0x3f')]));_0x2b096e['attributes']=_0x2b096e[_0x4d4f('0x3e')]['length']?_0x2b096e[_0x4d4f('0x3e')]:_0x4e6da6[_0x4d4f('0x3d')];_0x2b096e[_0x4d4f('0x43')]=qs[_0x4d4f('0x44')](_0x41c81d[_0x4d4f('0x3b')]['sort']);_0x2b096e[_0x4d4f('0x45')]=qs[_0x4d4f('0x46')](_[_0x4d4f('0x7e')](_0x41c81d[_0x4d4f('0x3b')],_0x4e6da6['filters']));if(_0x41c81d[_0x4d4f('0x3b')]['filter']){_0x2b096e['where']=_[_0x4d4f('0x48')](_0x2b096e[_0x4d4f('0x45')],{'$or':_['map'](_0x2b096e[_0x4d4f('0x3e')],function(_0x50b0a3){var _0x1177a3={};_0x1177a3[_0x50b0a3]={'$like':'%'+_0x41c81d[_0x4d4f('0x3b')][_0x4d4f('0x47')]+'%'};return _0x1177a3;})});}_0x2b096e=_[_0x4d4f('0x48')]({},_0x2b096e,_0x41c81d[_0x4d4f('0x49')]);return _0x53817f[_0x4d4f('0x7f')](_0x2b096e);}})[_0x4d4f('0x2c')](function(_0x3fe348){if(_0x3fe348){_0x10955f=_0x3fe348['length'];if(!_0x41c81d[_0x4d4f('0x3b')][_0x4d4f('0x40')]('nolimit')){_0x2b096e[_0x4d4f('0x26')]=qs['limit'](_0x41c81d[_0x4d4f('0x3b')][_0x4d4f('0x26')]);_0x2b096e[_0x4d4f('0x42')]=qs['offset'](_0x41c81d['query']['offset']);}return _0x53817f[_0x4d4f('0x7f')](_0x2b096e);}})['then'](function(_0xb5d71b){if(_0xb5d71b){return _0xb5d71b?{'count':_0x10955f,'rows':_0xb5d71b}:null;}})[_0x4d4f('0x2c')](respondWithResult(_0x5d6abf,null))[_0x4d4f('0x4e')](handleError(_0x5d6abf,null));};exports['addTeams']=function(_0x5b6061,_0x230ff0,_0x28ae80){var _0x42be25=_0x5b6061[_0x4d4f('0x56')][_0x4d4f('0x73')];var _0x13279e;return db['Team'][_0x4d4f('0x80')]({'where':{'id':_0x42be25},'attributes':['id'],'include':[{'model':db[_0x4d4f('0x7d')],'as':_0x4d4f('0x81'),'attributes':['id',_0x4d4f('0x33'),_0x4d4f('0x82'),_0x4d4f('0x83'),_0x4d4f('0x84')],'raw':!![]}]})[_0x4d4f('0x2c')](function(_0x1a1e6f){if(_0x1a1e6f){_0x13279e=_0x1a1e6f;var _0x152400=_[_0x4d4f('0x85')](_0x1a1e6f,function(_0x3c6f1b){var _0x25e63c=_0x3c6f1b[_0x4d4f('0x2e')]({'plain':!![]});return _0x25e63c['Agents'];});return db[_0x4d4f('0x4c')][_0x4d4f('0x51')]({'where':{'id':_0x5b6061[_0x4d4f('0x52')]['id']}})[_0x4d4f('0x2c')](function(_0xc01ac4){return db[_0x4d4f('0x54')][_0x4d4f('0x86')](function(_0x472938){return _0xc01ac4[_0x4d4f('0x87')](_0x42be25,{'transaction':_0x472938})['then'](function(){return BPromise[_0x4d4f('0x88')](_0x13279e,function(_0x72d583){return db[_0x4d4f('0x89')][_0x4d4f('0x8a')]({'TeamId':_0x72d583['id'],'VoicePrefixId':_0x5b6061[_0x4d4f('0x52')]['id']},{'transaction':_0x472938});});})[_0x4d4f('0x2c')](function(){return BPromise[_0x4d4f('0x88')](_0x152400,function(_0x28fd35){return db[_0x4d4f('0x8b')][_0x4d4f('0x8c')]({'where':{'UserId':_0x28fd35['id'],'VoicePrefixId':_0x5b6061['params']['id']},'transaction':_0x472938});});})['then'](function(){_0x152400[_0x4d4f('0x8d')](function(_0x8850a4){socket['emit'](_0x4d4f('0x77'),{'UserId':_0x8850a4['id'],'VoicePrefixId':_0xc01ac4['id']});});});});});}})[_0x4d4f('0x2c')](respondWithStatusCode(_0x230ff0,null))[_0x4d4f('0x4e')](handleError(_0x230ff0,null));};exports[_0x4d4f('0x8e')]=function(_0x15028c,_0x1659f6,_0x77dac1){return db[_0x4d4f('0x8f')][_0x4d4f('0x80')]({'where':{'id':_0x15028c[_0x4d4f('0x3b')][_0x4d4f('0x73')]},'attributes':['id'],'include':[{'model':db[_0x4d4f('0x7d')],'as':_0x4d4f('0x81'),'attributes':['id'],'raw':!![]}]})[_0x4d4f('0x2c')](handleEntityNotFound(_0x1659f6,null))['then'](function(_0x342b63){var _0x524ed0=_[_0x4d4f('0x3a')](_0x342b63,'id');var _0x3fd499=[];var _0x17a39f=[];var _0x27b4d6=squel['select']();_0x27b4d6[_0x4d4f('0x90')](_0x4d4f('0x91'))[_0x4d4f('0x92')](_0x4d4f('0x93'),'tq')[_0x4d4f('0x94')](_0x4d4f('0x95'),'ut',_0x4d4f('0x96'))['where'](_0x4d4f('0x97'),_0x15028c[_0x4d4f('0x52')]['id']);for(var _0x2f4bad=0x0;_0x2f4bad<_0x342b63[_0x4d4f('0x6e')];_0x2f4bad+=0x1){let _0x4501b5=_0x342b63[_0x2f4bad];for(var _0x12eda1=0x0;_0x12eda1<_0x4501b5['Agents']['length'];_0x12eda1+=0x1){let _0x11ee76=_0x4501b5['Agents'][_0x12eda1];var _0x2ea6b4=_0x27b4d6[_0x4d4f('0x98')]();_0x2ea6b4['where'](_0x4d4f('0x99'),_0x11ee76['id']);_0x17a39f[_0x4d4f('0x68')](db[_0x4d4f('0x54')][_0x4d4f('0x3b')](_0x2ea6b4[_0x4d4f('0x9a')](),{'type':db[_0x4d4f('0x54')][_0x4d4f('0x9b')]['SELECT']})[_0x4d4f('0x2c')](function(_0x5d05cb){if(_0x5d05cb[_0x4d4f('0x6e')]===0x1){return _0x11ee76['id'];}else{var _0x2d1337=_['every'](_['map'](_0x5d05cb,_0x4d4f('0x9c')),function(_0x17894c){return _[_0x4d4f('0x9d')](_0x524ed0,_0x17894c);});if(_0x2d1337){return _0x11ee76['id'];}}}));}}return BPromise['all'](_0x17a39f)[_0x4d4f('0x2c')](function(_0x118642){_0x3fd499=_(_0x3fd499)[_0x4d4f('0x9e')](_0x118642)[_0x4d4f('0x9f')]()[_0x4d4f('0xa0')]();return db[_0x4d4f('0x4c')][_0x4d4f('0x51')]({'where':{'id':_0x15028c[_0x4d4f('0x52')]['id']}})[_0x4d4f('0x2c')](function(_0x51e70f){return db[_0x4d4f('0x54')][_0x4d4f('0x86')](function(_0x23485f){return _0x51e70f[_0x4d4f('0x8e')](_0x15028c['query'][_0x4d4f('0x73')],{'transaction':_0x23485f})['then'](function(){if(!_['isEmpty'](_0x3fd499)){return _0x51e70f[_0x4d4f('0x78')](_0x3fd499,{'transaction':_0x23485f});}})[_0x4d4f('0x2c')](function(){_0x3fd499[_0x4d4f('0x8d')](function(_0x3de9b3){socket[_0x4d4f('0x76')](_0x4d4f('0x7a'),{'UserId':_0x3de9b3,'VoicePrefixId':_0x51e70f['id']});});});});});});})[_0x4d4f('0x2c')](respondWithStatusCode(_0x1659f6,null))[_0x4d4f('0x4e')](handleError(_0x1659f6,null));};
\ No newline at end of file
+var _0x47c7=['charAt','findById','addAgents','ids','omit','spread','emit','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','findOne','User','pick','getAgents','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./voicePrefix.socket','register','sendStatus','status','end','offset','undefined','limit','set','Content-Range','apply','reject','update','destroy','get','VoicePrefixes','UserProfileResource','then','error','stack','name','send','index','map','VoicePrefix','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','count','findAll','rows','catch','params','includeAll','options','describe','create','sequelize','body','find','VoiceExtensionId','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','from-sip','app','priority','appdata','prefix','NoOp','VoicePrefixId','VoiceExtension','bulkCreate','Extensions\x20creation\x20failed','Set','CDR(prefix)=','callerIdAll','push','No\x20callerid\x20available','goto','${EXTEN:'];(function(_0x44dd0f,_0x23b88d){var _0x2acd26=function(_0x5b68ab){while(--_0x5b68ab){_0x44dd0f['push'](_0x44dd0f['shift']());}};_0x2acd26(++_0x23b88d);}(_0x47c7,0x1f3));var _0x747c=function(_0x4e9d3c,_0x1f4b98){_0x4e9d3c=_0x4e9d3c-0x0;var _0x2d0825=_0x47c7[_0x4e9d3c];return _0x2d0825;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x747c('0x0'));var zipdir=require(_0x747c('0x1'));var jsonpatch=require(_0x747c('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x747c('0x3'));var Mustache=require(_0x747c('0x4'));var util=require(_0x747c('0x5'));var path=require(_0x747c('0x6'));var sox=require('sox');var csv=require(_0x747c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x747c('0x8'));var _=require(_0x747c('0x9'));var squel=require(_0x747c('0xa'));var crypto=require(_0x747c('0xb'));var jsforce=require(_0x747c('0xc'));var deskjs=require(_0x747c('0xd'));var toCsv=require(_0x747c('0x7'));var querystring=require(_0x747c('0xe'));var Papa=require(_0x747c('0xf'));var Redis=require(_0x747c('0x10'));var authService=require(_0x747c('0x11'));var qs=require(_0x747c('0x12'));var as=require(_0x747c('0x13'));var hardwareService=require(_0x747c('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x747c('0x15'));var config=require(_0x747c('0x16'));var licenseUtil=require(_0x747c('0x17'));var db=require(_0x747c('0x18'))['db'];config['redis']=_['defaults'](config[_0x747c('0x19')],{'host':_0x747c('0x1a'),'port':0x18eb});var socket=require(_0x747c('0x1b'))(new Redis(config[_0x747c('0x19')]));require(_0x747c('0x1c'))[_0x747c('0x1d')](socket);function respondWithStatusCode(_0x3a8d64,_0xfdec09){_0xfdec09=_0xfdec09||0xcc;return function(_0x4d5e53){if(_0x4d5e53){return _0x3a8d64[_0x747c('0x1e')](_0xfdec09);}return _0x3a8d64[_0x747c('0x1f')](_0xfdec09)[_0x747c('0x20')]();};}function respondWithResult(_0x4381a3,_0x590861){_0x590861=_0x590861||0xc8;return function(_0x35f14b){if(_0x35f14b){return _0x4381a3[_0x747c('0x1f')](_0x590861)['json'](_0x35f14b);}};}function respondWithFilteredResult(_0x479ddc,_0x57087a){return function(_0x45e2fe){if(_0x45e2fe){var _0x55a983=typeof _0x57087a[_0x747c('0x21')]===_0x747c('0x22')&&typeof _0x57087a[_0x747c('0x23')]===_0x747c('0x22');var _0x3af7df=_0x45e2fe['count'];var _0x46a24d=_0x55a983?0x0:_0x57087a['offset'];var _0x250488=_0x55a983?_0x45e2fe['count']:_0x57087a[_0x747c('0x21')]+_0x57087a[_0x747c('0x23')];var _0x1eb0f5;if(_0x250488>=_0x3af7df){_0x250488=_0x3af7df;_0x1eb0f5=0xc8;}else{_0x1eb0f5=0xce;}_0x479ddc['status'](_0x1eb0f5);return _0x479ddc[_0x747c('0x24')](_0x747c('0x25'),_0x46a24d+'-'+_0x250488+'/'+_0x3af7df)['json'](_0x45e2fe);}return null;};}function patchUpdates(_0x71016e){return function(_0xd60bab){try{jsonpatch[_0x747c('0x26')](_0xd60bab,_0x71016e,!![]);}catch(_0x3fafc7){return BPromise[_0x747c('0x27')](_0x3fafc7);}return _0xd60bab['save']();};}function saveUpdates(_0x5f0040,_0xc6269b){return function(_0x5cb78b){if(_0x5cb78b){return _0x5cb78b[_0x747c('0x28')](_0x5f0040)['then'](function(_0x52768d){return _0x52768d;});}return null;};}function removeEntity(_0x34a39e,_0x5ccb3e){return function(_0x4e86b1){if(_0x4e86b1){return _0x4e86b1[_0x747c('0x29')]()['then'](function(){var _0x4999b6=_0x4e86b1[_0x747c('0x2a')]({'plain':!![]});var _0x23d1cb=_0x747c('0x2b');return db[_0x747c('0x2c')][_0x747c('0x29')]({'where':{'type':_0x23d1cb,'resourceId':_0x4999b6['id']}})[_0x747c('0x2d')](function(){return _0x4e86b1;});})[_0x747c('0x2d')](function(){_0x34a39e[_0x747c('0x1f')](0xcc)[_0x747c('0x20')]();});}};}function handleEntityNotFound(_0x53650f,_0x57e82a){return function(_0x401808){if(!_0x401808){_0x53650f[_0x747c('0x1e')](0x194);}return _0x401808;};}function handleError(_0x568038,_0xa7c129){_0xa7c129=_0xa7c129||0x1f4;return function(_0x4e4b2d){logger[_0x747c('0x2e')](_0x4e4b2d[_0x747c('0x2f')]);if(_0x4e4b2d['name']){delete _0x4e4b2d[_0x747c('0x30')];}_0x568038[_0x747c('0x1f')](_0xa7c129)[_0x747c('0x31')](_0x4e4b2d);};}exports[_0x747c('0x32')]=function(_0x43f7b5,_0x1f7a76){var _0x215d4c={},_0x46366a={},_0x438eeb={'count':0x0,'rows':[]};var _0x1caa73=_[_0x747c('0x33')](db[_0x747c('0x34')][_0x747c('0x35')],function(_0x340c3a){return{'name':_0x340c3a['fieldName'],'type':_0x340c3a[_0x747c('0x36')]['key']};});_0x46366a[_0x747c('0x37')]=_[_0x747c('0x33')](_0x1caa73,'name');_0x46366a[_0x747c('0x38')]=_[_0x747c('0x39')](_0x43f7b5[_0x747c('0x38')]);_0x46366a[_0x747c('0x3a')]=_[_0x747c('0x3b')](_0x46366a[_0x747c('0x37')],_0x46366a[_0x747c('0x38')]);_0x215d4c[_0x747c('0x3c')]=_[_0x747c('0x3b')](_0x46366a['model'],qs[_0x747c('0x3d')](_0x43f7b5[_0x747c('0x38')][_0x747c('0x3d')]));_0x215d4c[_0x747c('0x3c')]=_0x215d4c[_0x747c('0x3c')][_0x747c('0x3e')]?_0x215d4c[_0x747c('0x3c')]:_0x46366a['model'];if(!_0x43f7b5[_0x747c('0x38')][_0x747c('0x3f')](_0x747c('0x40'))){_0x215d4c[_0x747c('0x23')]=qs[_0x747c('0x23')](_0x43f7b5['query']['limit']);_0x215d4c[_0x747c('0x21')]=qs[_0x747c('0x21')](_0x43f7b5[_0x747c('0x38')]['offset']);}_0x215d4c[_0x747c('0x41')]=qs[_0x747c('0x42')](_0x43f7b5[_0x747c('0x38')][_0x747c('0x42')]);_0x215d4c[_0x747c('0x43')]=qs[_0x747c('0x3a')](_['pick'](_0x43f7b5[_0x747c('0x38')],_0x46366a[_0x747c('0x3a')]),_0x1caa73);if(_0x43f7b5[_0x747c('0x38')][_0x747c('0x44')]){_0x215d4c[_0x747c('0x43')]=_[_0x747c('0x45')](_0x215d4c[_0x747c('0x43')],{'$or':_[_0x747c('0x33')](_0x1caa73,function(_0xf30b4b){if(_0xf30b4b[_0x747c('0x36')]!=='VIRTUAL'){var _0x526f85={};_0x526f85[_0xf30b4b['name']]={'$like':'%'+_0x43f7b5['query'][_0x747c('0x44')]+'%'};return _0x526f85;}})});}_0x215d4c=_['merge']({},_0x215d4c,_0x43f7b5['options']);var _0x3859cb={'where':_0x215d4c[_0x747c('0x43')]};return db[_0x747c('0x34')][_0x747c('0x46')](_0x3859cb)[_0x747c('0x2d')](function(_0x3f8ac3){_0x438eeb['count']=_0x3f8ac3;if(_0x43f7b5['query']['includeAll']){_0x215d4c['include']=[{'all':!![]}];}return db['VoicePrefix'][_0x747c('0x47')](_0x215d4c);})[_0x747c('0x2d')](function(_0x19c9af){_0x438eeb[_0x747c('0x48')]=_0x19c9af;return _0x438eeb;})[_0x747c('0x2d')](respondWithFilteredResult(_0x1f7a76,_0x215d4c))[_0x747c('0x49')](handleError(_0x1f7a76,null));};exports['show']=function(_0xf9e7d9,_0x3e0e5d){var _0x3ad427={'raw':![],'where':{'id':_0xf9e7d9[_0x747c('0x4a')]['id']}},_0x461f7f={};_0x461f7f[_0x747c('0x37')]=_[_0x747c('0x39')](db['VoicePrefix'][_0x747c('0x35')]);_0x461f7f[_0x747c('0x38')]=_[_0x747c('0x39')](_0xf9e7d9[_0x747c('0x38')]);_0x461f7f[_0x747c('0x3a')]=_[_0x747c('0x3b')](_0x461f7f[_0x747c('0x37')],_0x461f7f[_0x747c('0x38')]);_0x3ad427['attributes']=_['intersection'](_0x461f7f[_0x747c('0x37')],qs[_0x747c('0x3d')](_0xf9e7d9[_0x747c('0x38')]['fields']));_0x3ad427[_0x747c('0x3c')]=_0x3ad427[_0x747c('0x3c')][_0x747c('0x3e')]?_0x3ad427[_0x747c('0x3c')]:_0x461f7f[_0x747c('0x37')];if(_0xf9e7d9['query'][_0x747c('0x4b')]){_0x3ad427['include']=[{'all':!![]}];}_0x3ad427=_['merge']({},_0x3ad427,_0xf9e7d9[_0x747c('0x4c')]);return db['VoicePrefix']['find'](_0x3ad427)[_0x747c('0x2d')](handleEntityNotFound(_0x3e0e5d,null))[_0x747c('0x2d')](respondWithResult(_0x3e0e5d,null))[_0x747c('0x49')](handleError(_0x3e0e5d,null));};exports[_0x747c('0x29')]=function(_0x10b430,_0x46789c){return db[_0x747c('0x34')]['find']({'where':{'id':_0x10b430[_0x747c('0x4a')]['id']}})[_0x747c('0x2d')](handleEntityNotFound(_0x46789c,null))[_0x747c('0x2d')](removeEntity(_0x46789c,null))[_0x747c('0x49')](handleError(_0x46789c,null));};exports[_0x747c('0x4d')]=function(_0xc2fa66,_0x3fb2a8){return db[_0x747c('0x34')][_0x747c('0x4d')]()[_0x747c('0x2d')](respondWithResult(_0x3fb2a8,null))[_0x747c('0x49')](handleError(_0x3fb2a8,null));};exports[_0x747c('0x4e')]=function(_0x599c70,_0x401d16){var _0x1639d7;return db[_0x747c('0x4f')]['transaction'](function(_0x215e7a){return db[_0x747c('0x34')]['create'](_0x599c70[_0x747c('0x50')],{'transaction':_0x215e7a})[_0x747c('0x2d')](function(_0x3bf7ac){_0x1639d7=_0x3bf7ac[_0x747c('0x2a')]({'plain':!![]});return db['VoiceExtension'][_0x747c('0x51')]({'where':{'id':_0x1639d7[_0x747c('0x52')]},'raw':!![]})['then'](function(_0x59e264){return createVoicePrefixExtensions(_0x1639d7,_0x59e264,_0x215e7a);});});})[_0x747c('0x2d')](function(){var _0x5c17b3=_0x599c70[_0x747c('0x53')]['get']({'plain':!![]});if(!_0x5c17b3)throw new Error(_0x747c('0x54'));if(_0x5c17b3['role']==='user'){var _0x375973=_0x1639d7;return db['UserProfileSection'][_0x747c('0x51')]({'where':{'name':_0x747c('0x2b'),'userProfileId':_0x5c17b3[_0x747c('0x55')]},'raw':!![]})[_0x747c('0x2d')](function(_0x455c9c){if(_0x455c9c&&_0x455c9c[_0x747c('0x56')]===0x0){return db[_0x747c('0x2c')][_0x747c('0x4e')]({'name':_0x375973[_0x747c('0x30')],'resourceId':_0x375973['id'],'type':_0x455c9c[_0x747c('0x30')],'sectionId':_0x455c9c['id']},{})[_0x747c('0x2d')](function(){return _0x1639d7;});}else{return _0x1639d7;}})[_0x747c('0x49')](function(_0x208b46){logger['error'](_0x747c('0x57'),_0x208b46);throw _0x208b46;});}return _0x1639d7;})[_0x747c('0x2d')](respondWithResult(_0x401d16,null))[_0x747c('0x49')](handleError(_0x401d16,null));};function Extension(_0x4fa0da,_0x542649,_0x1002d7,_0x1bd828){this[_0x747c('0x58')]=_0x747c('0x59');this['exten']=_0x4fa0da;this[_0x747c('0x5a')]=_0x1002d7;this['type']='system';this['description']='Voice\x20Prefix\x20Extension';this[_0x747c('0x5b')]=_0x542649;this[_0x747c('0x5c')]=_0x1bd828;}function createVoicePrefixExtensions(_0x376706,_0xbc9ced,_0x14c455){return new BPromise(function(_0x12db83,_0x221a9f){var _0xf97581=new Extension(formatPrefixName(_0x376706[_0x747c('0x5d')]),0x1,_0x747c('0x5e'),'Voice\x20Prefix');_0xf97581[_0x747c('0x5f')]=_0x376706['id'];return db[_0x747c('0x60')][_0x747c('0x4e')](_0xf97581,{'transaction':_0x14c455})[_0x747c('0x2d')](function(_0x2064df){var _0x18ecb2=_0x2064df[_0x747c('0x2a')]({'plain':!![]});var _0x485394=_['map'](addVoicePrefixExtensions(_0x376706,_0xbc9ced),function(_0x45fdee){_0x45fdee[_0x747c('0x52')]=_0x18ecb2['id'];_0x45fdee[_0x747c('0x5f')]=_0x376706['id'];return _0x45fdee;});return db[_0x747c('0x60')][_0x747c('0x61')](_0x485394,{'transaction':_0x14c455})[_0x747c('0x2d')](function(_0x2826fa){if(!_0x2826fa){return _0x221a9f(_0x747c('0x62'));}else{return _0x12db83(_0x2826fa);}})[_0x747c('0x49')](function(_0x1b7701){return _0x221a9f(_0x1b7701);});});;});};function addVoicePrefixExtensions(_0x54cbf9,_0xed4771){var _0x1b9857=[];var _0x420afc=formatPrefixName(_0x54cbf9[_0x747c('0x5d')]);_0x1b9857['push'](new Extension(_0x420afc,0x2,_0x747c('0x63'),_0x747c('0x64')+_0x54cbf9[_0x747c('0x30')]));if(_0x54cbf9[_0x747c('0x65')]){_0x1b9857[_0x747c('0x66')](new Extension(_0x420afc,0x3,_0x747c('0x63'),'PREFIX-CALLERIDALL='+_0x54cbf9[_0x747c('0x65')]));}else{_0x1b9857[_0x747c('0x66')](new Extension(_0x420afc,0x3,_0x747c('0x5e'),_0x747c('0x67')));}_0x1b9857['push'](new Extension(_0x420afc,0x4,_0x747c('0x68'),_0xed4771[_0x747c('0x58')]+','+_0x747c('0x69')+(0x8+_0x54cbf9[_0x747c('0x30')][_0x747c('0x3e')])+'}'+','+0x1));return _0x1b9857;}function formatPrefixName(_0x351c78){var _0x324bb8='_';for(var _0x21b76f=0x0;_0x21b76f<_0x351c78[_0x747c('0x3e')];_0x21b76f++){if(_0x351c78[_0x747c('0x6a')](_0x21b76f)=='-'){_0x324bb8+=_0x351c78['charAt'](_0x21b76f);}else{_0x324bb8+='['+_0x351c78[_0x747c('0x6a')](_0x21b76f)+']';}}_0x324bb8+='.';return _0x324bb8;}exports['update']=function(_0x4f3518,_0x3dfbf7,_0x59c7b3){var _0x49358b=_0x4f3518[_0x747c('0x50')];_0x49358b[_0x747c('0x5d')]='system-'+_0x49358b[_0x747c('0x30')]+'-';return db[_0x747c('0x4f')]['transaction'](function(_0x58cc0f){return db[_0x747c('0x34')][_0x747c('0x28')](_0x49358b,{'where':{'id':_0x49358b['id']},'transaction':_0x58cc0f})['then'](function(){return db['VoiceExtension']['destroy']({'where':{'VoicePrefixId':_0x49358b['id']},'transaction':_0x58cc0f})[_0x747c('0x2d')](function(){return db['VoiceExtension'][_0x747c('0x51')]({'where':{'id':_0x49358b[_0x747c('0x52')]},'raw':!![]})[_0x747c('0x2d')](function(_0x57c582){return createVoicePrefixExtensions(_0x49358b,_0x57c582,_0x58cc0f);});});});})[_0x747c('0x2d')](function(){return db[_0x747c('0x34')][_0x747c('0x6b')](_0x49358b['id']);})[_0x747c('0x2d')](respondWithResult(_0x3dfbf7,null))['catch'](handleError(_0x3dfbf7,null));};exports['addAgents']=function(_0x5866b1,_0x798561,_0x21c865){return db[_0x747c('0x34')][_0x747c('0x51')]({'where':{'id':_0x5866b1[_0x747c('0x4a')]['id']}})[_0x747c('0x2d')](handleEntityNotFound(_0x798561,null))[_0x747c('0x2d')](function(_0x3c8d21){if(_0x3c8d21){return _0x3c8d21[_0x747c('0x6c')](_0x5866b1[_0x747c('0x50')][_0x747c('0x6d')],_[_0x747c('0x6e')](_0x5866b1[_0x747c('0x50')],[_0x747c('0x6d'),'id'])||{})[_0x747c('0x6f')](function(_0x5aa7e4){for(var _0x4d6a58=0x0;_0x4d6a58<_0x5866b1[_0x747c('0x50')][_0x747c('0x6d')]['length'];_0x4d6a58+=0x1){socket[_0x747c('0x70')](_0x747c('0x71'),{'UserId':Number(_0x5866b1['body'][_0x747c('0x6d')][_0x4d6a58]),'VoicePrefixId':Number(_0x5866b1[_0x747c('0x4a')]['id'])});}return _0x5aa7e4;});}})[_0x747c('0x2d')](respondWithResult(_0x798561,null))[_0x747c('0x49')](handleError(_0x798561,null));};exports[_0x747c('0x72')]=function(_0x55cbdc,_0x3ebd7e,_0x2d716c){return db[_0x747c('0x34')]['find']({'where':{'id':_0x55cbdc[_0x747c('0x4a')]['id']}})[_0x747c('0x2d')](handleEntityNotFound(_0x3ebd7e,null))[_0x747c('0x2d')](function(_0x52c80a){if(_0x52c80a){return _0x52c80a[_0x747c('0x72')](_0x55cbdc[_0x747c('0x38')]['ids'])[_0x747c('0x2d')](function(){if(_[_0x747c('0x73')](_0x55cbdc[_0x747c('0x38')][_0x747c('0x6d')])){for(var _0x5081de=0x0;_0x5081de<_0x55cbdc[_0x747c('0x38')]['ids'][_0x747c('0x3e')];_0x5081de+=0x1){socket[_0x747c('0x70')](_0x747c('0x74'),{'UserId':Number(_0x55cbdc[_0x747c('0x38')][_0x747c('0x6d')][_0x5081de]),'VoicePrefixId':Number(_0x55cbdc[_0x747c('0x4a')]['id'])});}}else{socket[_0x747c('0x70')](_0x747c('0x74'),{'UserId':Number(_0x55cbdc['query']['ids']),'VoicePrefixId':Number(_0x55cbdc['params']['id'])});}});}})[_0x747c('0x2d')](respondWithStatusCode(_0x3ebd7e,null))[_0x747c('0x49')](handleError(_0x3ebd7e,null));};exports['getAgents']=function(_0x11a3f7,_0x434c06,_0x33014c){var _0x199c72={};var _0x451b53={};var _0x485fbf;var _0x39295a;return db[_0x747c('0x34')][_0x747c('0x75')]({'where':{'id':_0x11a3f7[_0x747c('0x4a')]['id']}})['then'](handleEntityNotFound(_0x434c06,null))[_0x747c('0x2d')](function(_0x43446e){if(_0x43446e){_0x485fbf=_0x43446e;_0x451b53[_0x747c('0x37')]=_[_0x747c('0x39')](db[_0x747c('0x76')][_0x747c('0x35')]);_0x451b53[_0x747c('0x38')]=_[_0x747c('0x39')](_0x11a3f7[_0x747c('0x38')]);_0x451b53[_0x747c('0x3a')]=_[_0x747c('0x3b')](_0x451b53[_0x747c('0x37')],_0x451b53[_0x747c('0x38')]);_0x199c72['attributes']=_[_0x747c('0x3b')](_0x451b53[_0x747c('0x37')],qs[_0x747c('0x3d')](_0x11a3f7[_0x747c('0x38')][_0x747c('0x3d')]));_0x199c72[_0x747c('0x3c')]=_0x199c72[_0x747c('0x3c')]['length']?_0x199c72[_0x747c('0x3c')]:_0x451b53[_0x747c('0x37')];_0x199c72[_0x747c('0x41')]=qs[_0x747c('0x42')](_0x11a3f7['query'][_0x747c('0x42')]);_0x199c72[_0x747c('0x43')]=qs[_0x747c('0x3a')](_[_0x747c('0x77')](_0x11a3f7[_0x747c('0x38')],_0x451b53[_0x747c('0x3a')]));if(_0x11a3f7[_0x747c('0x38')][_0x747c('0x44')]){_0x199c72[_0x747c('0x43')]=_[_0x747c('0x45')](_0x199c72[_0x747c('0x43')],{'$or':_[_0x747c('0x33')](_0x199c72[_0x747c('0x3c')],function(_0x1fa630){var _0x31a6b9={};_0x31a6b9[_0x1fa630]={'$like':'%'+_0x11a3f7['query'][_0x747c('0x44')]+'%'};return _0x31a6b9;})});}_0x199c72=_['merge']({},_0x199c72,_0x11a3f7['options']);return _0x485fbf[_0x747c('0x78')](_0x199c72);}})[_0x747c('0x2d')](function(_0x22cb76){if(_0x22cb76){_0x39295a=_0x22cb76[_0x747c('0x3e')];if(!_0x11a3f7[_0x747c('0x38')]['hasOwnProperty'](_0x747c('0x40'))){_0x199c72[_0x747c('0x23')]=qs[_0x747c('0x23')](_0x11a3f7[_0x747c('0x38')][_0x747c('0x23')]);_0x199c72[_0x747c('0x21')]=qs[_0x747c('0x21')](_0x11a3f7[_0x747c('0x38')][_0x747c('0x21')]);}return _0x485fbf['getAgents'](_0x199c72);}})[_0x747c('0x2d')](function(_0x21656b){if(_0x21656b){return _0x21656b?{'count':_0x39295a,'rows':_0x21656b}:null;}})['then'](respondWithResult(_0x434c06,null))[_0x747c('0x49')](handleError(_0x434c06,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa84b=['events','../../mysqldb','save','update','remove','hook','exports'];(function(_0x5f00bb,_0x33e39b){var _0x2f69f1=function(_0x4c94ab){while(--_0x4c94ab){_0x5f00bb['push'](_0x5f00bb['shift']());}};_0x2f69f1(++_0x33e39b);}(_0xa84b,0x142));var _0xba84=function(_0x282536,_0x3ba66a){_0x282536=_0x282536-0x0;var _0x76aa80=_0xa84b[_0x282536];return _0x76aa80;};'use strict';var EventEmitter=require(_0xba84('0x0'));var VoicePrefix=require(_0xba84('0x1'))['db']['VoicePrefix'];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xba84('0x2'),'afterUpdate':_0xba84('0x3'),'afterDestroy':_0xba84('0x4')};function emitEvent(_0x1908eb){return function(_0x12693d,_0x36e576,_0xd556d3){VoicePrefixEvents['emit'](_0x1908eb+':'+_0x12693d['id'],_0x12693d);VoicePrefixEvents['emit'](_0x1908eb,_0x12693d);_0xd556d3(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoicePrefix[_0xba84('0x5')](e,emitEvent(event));}}module[_0xba84('0x6')]=VoicePrefixEvents;
\ No newline at end of file
+var _0x2fd7=['hook','exports','VoicePrefix','setMaxListeners','update','remove','emit'];(function(_0x41770f,_0x2c79c8){var _0x5a107a=function(_0x51f921){while(--_0x51f921){_0x41770f['push'](_0x41770f['shift']());}};_0x5a107a(++_0x2c79c8);}(_0x2fd7,0x16e));var _0x72fd=function(_0x1d1c46,_0x2723ae){_0x1d1c46=_0x1d1c46-0x0;var _0x12d15f=_0x2fd7[_0x1d1c46];return _0x12d15f;};'use strict';var EventEmitter=require('events');var VoicePrefix=require('../../mysqldb')['db'][_0x72fd('0x0')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0x72fd('0x1')](0x0);var events={'afterCreate':'save','afterUpdate':_0x72fd('0x2'),'afterDestroy':_0x72fd('0x3')};function emitEvent(_0x53bd2d){return function(_0x16f985,_0x50aa96,_0x4e298){VoicePrefixEvents[_0x72fd('0x4')](_0x53bd2d+':'+_0x16f985['id'],_0x16f985);VoicePrefixEvents[_0x72fd('0x4')](_0x53bd2d,_0x16f985);_0x4e298(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoicePrefix[_0x72fd('0x5')](e,emitEvent(event));}}module[_0x72fd('0x6')]=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0679=['path','rimraf','../../config/environment','./voicePrefix.attributes','exports','define','voice_prefixes','lodash','util','api','moment','bluebird','request-promise'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x0679,0xb0));var _0x9067=function(_0x2d2c16,_0x4e88b6){_0x2d2c16=_0x2d2c16-0x0;var _0x53f2fb=_0x0679[_0x2d2c16];return _0x53f2fb;};'use strict';var _=require(_0x9067('0x0'));var util=require(_0x9067('0x1'));var logger=require('../../config/logger')(_0x9067('0x2'));var moment=require(_0x9067('0x3'));var BPromise=require(_0x9067('0x4'));var rp=require(_0x9067('0x5'));var fs=require('fs');var path=require(_0x9067('0x6'));var rimraf=require(_0x9067('0x7'));var config=require(_0x9067('0x8'));var attributes=require(_0x9067('0x9'));module[_0x9067('0xa')]=function(_0x53dc3a,_0x2382f6){return _0x53dc3a[_0x9067('0xb')]('VoicePrefix',attributes,{'tableName':_0x9067('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5766=['../../config/environment','define','VoicePrefix','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf'];(function(_0x5c697d,_0xe8128){var _0x17d8df=function(_0x412300){while(--_0x412300){_0x5c697d['push'](_0x5c697d['shift']());}};_0x17d8df(++_0xe8128);}(_0x5766,0x1d1));var _0x6576=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x5766[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6576('0x0'));var util=require(_0x6576('0x1'));var logger=require(_0x6576('0x2'))(_0x6576('0x3'));var moment=require(_0x6576('0x4'));var BPromise=require(_0x6576('0x5'));var rp=require(_0x6576('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6576('0x7'));var config=require(_0x6576('0x8'));var attributes=require('./voicePrefix.attributes');module['exports']=function(_0x598775,_0x435c73){return _0x598775[_0x6576('0x9')](_0x6576('0xa'),attributes,{'tableName':'voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb94c=['../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','register','request','then','info','VoicePrefix,\x20%s,\x20%s','request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','lodash','util','bluebird','randomstring'];(function(_0x599130,_0x3ae268){var _0x140910=function(_0x3c6a1f){while(--_0x3c6a1f){_0x599130['push'](_0x599130['shift']());}};_0x140910(++_0x3ae268);}(_0xb94c,0x176));var _0xcb94=function(_0x52272d,_0x32757b){_0x52272d=_0x52272d-0x0;var _0x144092=_0xb94c[_0x52272d];return _0x144092;};'use strict';var _=require(_0xcb94('0x0'));var util=require(_0xcb94('0x1'));var moment=require('moment');var BPromise=require(_0xcb94('0x2'));var rs=require(_0xcb94('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xcb94('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xcb94('0x5'))(_0xcb94('0x6'));var config=require(_0xcb94('0x7'));var jayson=require(_0xcb94('0x8'));var client=jayson[_0xcb94('0x9')]['http']({'port':0x232a});config[_0xcb94('0xa')]=_[_0xcb94('0xb')](config[_0xcb94('0xa')],{'host':_0xcb94('0xc'),'port':0x18eb});var socket=require(_0xcb94('0xd'))(new Redis(config['redis']));require(_0xcb94('0xe'))[_0xcb94('0xf')](socket);function respondWithRpcPromise(_0x4374ea,_0x327f46,_0x513702){return new BPromise(function(_0x459102,_0x338ca1){return client[_0xcb94('0x10')](_0x4374ea,_0x513702)[_0xcb94('0x11')](function(_0x3887ce){logger[_0xcb94('0x12')](_0xcb94('0x13'),_0x327f46,_0xcb94('0x14'));logger[_0xcb94('0x15')](_0xcb94('0x16'),_0x327f46,'request\x20sent',JSON[_0xcb94('0x17')](_0x3887ce));if(_0x3887ce[_0xcb94('0x18')]){if(_0x3887ce['error']['code']===0x1f4){logger['error']('VoicePrefix,\x20%s,\x20%s',_0x327f46,_0x3887ce[_0xcb94('0x18')][_0xcb94('0x19')]);return _0x338ca1(_0x3887ce[_0xcb94('0x18')]['message']);}logger[_0xcb94('0x18')]('VoicePrefix,\x20%s,\x20%s',_0x327f46,_0x3887ce[_0xcb94('0x18')][_0xcb94('0x19')]);return _0x459102(_0x3887ce[_0xcb94('0x18')][_0xcb94('0x19')]);}else{logger[_0xcb94('0x12')]('VoicePrefix,\x20%s,\x20%s',_0x327f46,_0xcb94('0x14'));_0x459102(_0x3887ce['result']['message']);}})[_0xcb94('0x1a')](function(_0x19097c){logger[_0xcb94('0x18')](_0xcb94('0x13'),_0x327f46,_0x19097c);_0x338ca1(_0x19097c);});});}
\ No newline at end of file
+var _0x0650=['debug','VoicePrefix,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','catch','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','defaults','redis','localhost','socket.io-emitter','./voicePrefix.socket','register','info','VoicePrefix,\x20%s,\x20%s'];(function(_0x291ec3,_0x2f19a7){var _0x423b99=function(_0x345ddd){while(--_0x345ddd){_0x291ec3['push'](_0x291ec3['shift']());}};_0x423b99(++_0x2f19a7);}(_0x0650,0xed));var _0x0065=function(_0x16fd68,_0x3d394d){_0x16fd68=_0x16fd68-0x0;var _0x12cf8e=_0x0650[_0x16fd68];return _0x12cf8e;};'use strict';var _=require(_0x0065('0x0'));var util=require('util');var moment=require(_0x0065('0x1'));var BPromise=require(_0x0065('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0065('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0065('0x4'));var logger=require(_0x0065('0x5'))(_0x0065('0x6'));var config=require('../../config/environment');var jayson=require(_0x0065('0x7'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0x0065('0x8')](config[_0x0065('0x9')],{'host':_0x0065('0xa'),'port':0x18eb});var socket=require(_0x0065('0xb'))(new Redis(config[_0x0065('0x9')]));require(_0x0065('0xc'))[_0x0065('0xd')](socket);function respondWithRpcPromise(_0x3e96dd,_0x409066,_0x5907e4){return new BPromise(function(_0x2850c0,_0xda5ef2){return client['request'](_0x3e96dd,_0x5907e4)['then'](function(_0x4c8f33){logger[_0x0065('0xe')](_0x0065('0xf'),_0x409066,'request\x20sent');logger[_0x0065('0x10')](_0x0065('0x11'),_0x409066,'request\x20sent',JSON[_0x0065('0x12')](_0x4c8f33));if(_0x4c8f33[_0x0065('0x13')]){if(_0x4c8f33['error']['code']===0x1f4){logger[_0x0065('0x13')]('VoicePrefix,\x20%s,\x20%s',_0x409066,_0x4c8f33['error'][_0x0065('0x14')]);return _0xda5ef2(_0x4c8f33['error'][_0x0065('0x14')]);}logger['error'](_0x0065('0xf'),_0x409066,_0x4c8f33[_0x0065('0x13')][_0x0065('0x14')]);return _0x2850c0(_0x4c8f33[_0x0065('0x13')][_0x0065('0x14')]);}else{logger[_0x0065('0xe')](_0x0065('0xf'),_0x409066,_0x0065('0x15'));_0x2850c0(_0x4c8f33['result'][_0x0065('0x14')]);}})[_0x0065('0x16')](function(_0x49de99){logger[_0x0065('0x13')](_0x0065('0xf'),_0x409066,_0x49de99);_0xda5ef2(_0x49de99);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5eb1=['update','removeListener','register','voicePrefix:','save','remove'];(function(_0x148785,_0x195ee5){var _0x17a172=function(_0x478b94){while(--_0x478b94){_0x148785['push'](_0x148785['shift']());}};_0x17a172(++_0x195ee5);}(_0x5eb1,0x7c));var _0x15eb=function(_0x55fe01,_0x12ed37){_0x55fe01=_0x55fe01-0x0;var _0x5b42f0=_0x5eb1[_0x55fe01];return _0x5b42f0;};'use strict';var VoicePrefixEvents=require('./voicePrefix.events');var events=[_0x15eb('0x0'),_0x15eb('0x1'),_0x15eb('0x2')];function createListener(_0x3ef699,_0x2b9937){return function(_0x1c2f32){_0x2b9937['emit'](_0x3ef699,_0x1c2f32);};}function removeListener(_0x3ba774,_0x19d816){return function(){VoicePrefixEvents[_0x15eb('0x3')](_0x3ba774,_0x19d816);};}exports[_0x15eb('0x4')]=function(_0x47e341){for(var _0x1be042=0x0,_0x212692=events['length'];_0x1be042<_0x212692;_0x1be042++){var _0xe4d8ce=events[_0x1be042];var _0x160879=createListener(_0x15eb('0x5')+_0xe4d8ce,_0x47e341);VoicePrefixEvents['on'](_0xe4d8ce,_0x160879);}};
\ No newline at end of file
+var _0xbc4a=['voicePrefix:','./voicePrefix.events','save','remove','removeListener','register','length'];(function(_0x104e21,_0x2ea86f){var _0x605b37=function(_0x580fce){while(--_0x580fce){_0x104e21['push'](_0x104e21['shift']());}};_0x605b37(++_0x2ea86f);}(_0xbc4a,0x1dd));var _0xabc4=function(_0xcb0d57,_0x196f3f){_0xcb0d57=_0xcb0d57-0x0;var _0x8cc03f=_0xbc4a[_0xcb0d57];return _0x8cc03f;};'use strict';var VoicePrefixEvents=require(_0xabc4('0x0'));var events=[_0xabc4('0x1'),_0xabc4('0x2'),'update'];function createListener(_0x497e18,_0x4d2996){return function(_0x4fc0f9){_0x4d2996['emit'](_0x497e18,_0x4fc0f9);};}function removeListener(_0x145a9d,_0x4e84f9){return function(){VoicePrefixEvents[_0xabc4('0x3')](_0x145a9d,_0x4e84f9);};}exports[_0xabc4('0x4')]=function(_0x282a1e){for(var _0x422903=0x0,_0x244d3a=events[_0xabc4('0x5')];_0x422903<_0x244d3a;_0x422903++){var _0x244a46=events[_0x422903];var _0x28ea0b=createListener(_0xabc4('0x6')+_0x244a46,_0x282a1e);VoicePrefixEvents['on'](_0x244a46,_0x28ea0b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x974e=['show','/:id/hoppers','getHoppers','/:id/hopper_histories','/:id/hopper_finals','getHopperFinals','/:id/hopper_black','getHopperBlacks','/:id/teams','getAgents','/:id/members','getMembers','/:id/blacklists','getBlackLists','post','create','/:id/clone','clone','/:id/lists','addBlackLists','update','delete','destroy','removeTeams','/:id/users','removeAgents','removeLists','removeBlackLists','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceQueue.controller','isAuthenticated','index','get','/:id'];(function(_0x32516a,_0x58931b){var _0x4086c1=function(_0x147a83){while(--_0x147a83){_0x32516a['push'](_0x32516a['shift']());}};_0x4086c1(++_0x58931b);}(_0x974e,0x1a0));var _0xe974=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x974e[_0x2c91e9];return _0x13f0ff;};'use strict';var multer=require(_0xe974('0x0'));var util=require(_0xe974('0x1'));var path=require(_0xe974('0x2'));var timeout=require(_0xe974('0x3'));var express=require(_0xe974('0x4'));var router=express[_0xe974('0x5')]();var fs_extra=require(_0xe974('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0xe974('0x7'));var config=require(_0xe974('0x8'));var controller=require(_0xe974('0x9'));router['get']('/',auth[_0xe974('0xa')](),controller[_0xe974('0xb')]);router[_0xe974('0xc')](_0xe974('0xd'),auth['isAuthenticated'](),controller[_0xe974('0xe')]);router[_0xe974('0xc')](_0xe974('0xf'),auth[_0xe974('0xa')](),controller[_0xe974('0x10')]);router[_0xe974('0xc')](_0xe974('0x11'),auth[_0xe974('0xa')](),controller['getHopperHistories']);router[_0xe974('0xc')](_0xe974('0x12'),auth[_0xe974('0xa')](),controller[_0xe974('0x13')]);router[_0xe974('0xc')](_0xe974('0x14'),auth[_0xe974('0xa')](),controller[_0xe974('0x15')]);router['get'](_0xe974('0x16'),auth[_0xe974('0xa')](),controller['getTeams']);router[_0xe974('0xc')]('/:id/users',auth[_0xe974('0xa')](),controller[_0xe974('0x17')]);router['get'](_0xe974('0x18'),auth[_0xe974('0xa')](),controller[_0xe974('0x19')]);router['get']('/:id/lists',auth[_0xe974('0xa')](),controller['getLists']);router[_0xe974('0xc')](_0xe974('0x1a'),auth[_0xe974('0xa')](),controller[_0xe974('0x1b')]);router[_0xe974('0x1c')]('/',auth[_0xe974('0xa')](),controller[_0xe974('0x1d')]);router[_0xe974('0x1c')](_0xe974('0x1e'),auth[_0xe974('0xa')](),controller[_0xe974('0x1f')]);router[_0xe974('0x1c')]('/:id/teams',auth[_0xe974('0xa')](),controller['addTeams']);router['post']('/:id/users',auth['isAuthenticated'](),controller['addAgents']);router[_0xe974('0x1c')](_0xe974('0x20'),auth['isAuthenticated'](),controller['addLists']);router[_0xe974('0x1c')]('/:id/blacklists',auth['isAuthenticated'](),controller[_0xe974('0x21')]);router['put']('/:id',auth[_0xe974('0xa')](),controller[_0xe974('0x22')]);router[_0xe974('0x23')](_0xe974('0xd'),auth[_0xe974('0xa')](),controller[_0xe974('0x24')]);router['delete'](_0xe974('0x16'),auth[_0xe974('0xa')](),controller[_0xe974('0x25')]);router[_0xe974('0x23')](_0xe974('0x26'),auth[_0xe974('0xa')](),controller[_0xe974('0x27')]);router['delete'](_0xe974('0x20'),auth[_0xe974('0xa')](),controller[_0xe974('0x28')]);router[_0xe974('0x23')](_0xe974('0x1a'),auth[_0xe974('0xa')](),controller[_0xe974('0x29')]);module[_0xe974('0x2a')]=router;
\ No newline at end of file
+var _0x5ed0=['/:id/clone','clone','addTeams','addAgents','addBlackLists','/:id','update','destroy','delete','removeTeams','removeAgents','removeLists','removeBlackLists','exports','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','index','get','isAuthenticated','/:id/hoppers','getHopperHistories','/:id/hopper_finals','/:id/hopper_black','/:id/teams','getTeams','/:id/users','getAgents','/:id/members','/:id/lists','/:id/blacklists','getBlackLists','post'];(function(_0x422905,_0x3bce3a){var _0x33dc6c=function(_0x4852c9){while(--_0x4852c9){_0x422905['push'](_0x422905['shift']());}};_0x33dc6c(++_0x3bce3a);}(_0x5ed0,0xe6));var _0x05ed=function(_0x153da2,_0x451e54){_0x153da2=_0x153da2-0x0;var _0x181311=_0x5ed0[_0x153da2];return _0x181311;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x05ed('0x0'));var router=express['Router']();var fs_extra=require(_0x05ed('0x1'));var auth=require(_0x05ed('0x2'));var interaction=require(_0x05ed('0x3'));var config=require(_0x05ed('0x4'));var controller=require(_0x05ed('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x05ed('0x6')]);router[_0x05ed('0x7')]('/:id',auth[_0x05ed('0x8')](),controller['show']);router[_0x05ed('0x7')](_0x05ed('0x9'),auth['isAuthenticated'](),controller['getHoppers']);router[_0x05ed('0x7')]('/:id/hopper_histories',auth[_0x05ed('0x8')](),controller[_0x05ed('0xa')]);router[_0x05ed('0x7')](_0x05ed('0xb'),auth['isAuthenticated'](),controller['getHopperFinals']);router['get'](_0x05ed('0xc'),auth[_0x05ed('0x8')](),controller['getHopperBlacks']);router['get'](_0x05ed('0xd'),auth[_0x05ed('0x8')](),controller[_0x05ed('0xe')]);router[_0x05ed('0x7')](_0x05ed('0xf'),auth[_0x05ed('0x8')](),controller[_0x05ed('0x10')]);router[_0x05ed('0x7')](_0x05ed('0x11'),auth['isAuthenticated'](),controller['getMembers']);router[_0x05ed('0x7')](_0x05ed('0x12'),auth['isAuthenticated'](),controller['getLists']);router[_0x05ed('0x7')](_0x05ed('0x13'),auth[_0x05ed('0x8')](),controller[_0x05ed('0x14')]);router[_0x05ed('0x15')]('/',auth[_0x05ed('0x8')](),controller['create']);router[_0x05ed('0x15')](_0x05ed('0x16'),auth['isAuthenticated'](),controller[_0x05ed('0x17')]);router[_0x05ed('0x15')](_0x05ed('0xd'),auth['isAuthenticated'](),controller[_0x05ed('0x18')]);router[_0x05ed('0x15')](_0x05ed('0xf'),auth[_0x05ed('0x8')](),controller[_0x05ed('0x19')]);router['post'](_0x05ed('0x12'),auth[_0x05ed('0x8')](),controller['addLists']);router['post'](_0x05ed('0x13'),auth['isAuthenticated'](),controller[_0x05ed('0x1a')]);router['put'](_0x05ed('0x1b'),auth[_0x05ed('0x8')](),controller[_0x05ed('0x1c')]);router['delete'](_0x05ed('0x1b'),auth[_0x05ed('0x8')](),controller[_0x05ed('0x1d')]);router[_0x05ed('0x1e')]('/:id/teams',auth[_0x05ed('0x8')](),controller[_0x05ed('0x1f')]);router[_0x05ed('0x1e')]('/:id/users',auth[_0x05ed('0x8')](),controller[_0x05ed('0x20')]);router[_0x05ed('0x1e')](_0x05ed('0x12'),auth[_0x05ed('0x8')](),controller[_0x05ed('0x21')]);router[_0x05ed('0x1e')]('/:id/blacklists',auth[_0x05ed('0x8')](),controller[_0x05ed('0x22')]);module[_0x05ed('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77d9=['power','INTEGER','yes','all','once','periodic_announce','split','joinempty','join','leavewhenempty','BOOLEAN','acw','wrapuptime','Active/Disactive\x20Campaign','preview','Dial\x20Method.','UNSIGNED','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','dropRate','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','#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,*,*,*','never','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Maximum\x20Word\x20Length','#RecallMe\x20Timeout\x20(min:1)','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','mandatoryDispositionPauseId','ENUM','inbound','STRING','leastrecent','random','rrmemory','linear','wrandom','rrordered','setDataValue','getDataValue','dialMethod','booked','progressive','predictive'];(function(_0x1172ce,_0x357625){var _0x3dd576=function(_0xf14b50){while(--_0xf14b50){_0x1172ce['push'](_0x1172ce['shift']());}};_0x3dd576(++_0x357625);}(_0x77d9,0x159));var _0x977d=function(_0x468a77,_0x1382be){_0x468a77=_0x468a77-0x0;var _0x2d1c33=_0x77d9[_0x468a77];return _0x2d1c33;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x1'),'outbound'),'allowNull':![],'defaultValue':_0x977d('0x1')},'musiconhold':{'type':Sequelize[_0x977d('0x2')],'defaultValue':'default'},'announce':{'type':Sequelize[_0x977d('0x2')],'defaultValue':''},'strategy':{'type':Sequelize[_0x977d('0x0')]('rr','ringall',_0x977d('0x3'),'fewestcalls',_0x977d('0x4'),_0x977d('0x5'),_0x977d('0x6'),_0x977d('0x7'),_0x977d('0x8')),'allowNull':![],'defaultValue':'ringall','set':function(_0x356a83){this[_0x977d('0x9')]('strategy',_0x356a83?_0x356a83:_0x977d('0x5'));},'get':function(){var _0x43fbe4=this[_0x977d('0xa')]('type');var _0x1ec675=this['getDataValue'](_0x977d('0xb'));var _0x6a7f83=this[_0x977d('0xa')]('strategy');if(_0x43fbe4===_0x977d('0x1')){return _0x6a7f83;}if(_0x1ec675==='booked'&&_0x6a7f83===_0x977d('0x5')||_0x1ec675===_0x977d('0xc')&&_0x6a7f83==='roundrobin'){return _0x6a7f83;}if(_0x1ec675===_0x977d('0xd')||_0x1ec675===_0x977d('0xe')||_0x1ec675===_0x977d('0xf')){return _0x6a7f83;}return null;}},'servicelevel':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'context':{'type':Sequelize['STRING'],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x977d('0x10')](0xb)},'timeout':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize['STRING']},'weight':{'type':Sequelize[_0x977d('0x10')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x11'),'no'),'defaultValue':'yes'},'autopause':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x11'),'no',_0x977d('0x12')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x977d('0x10')](0xb)},'autopausebusy':{'type':Sequelize[_0x977d('0x0')]('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize['ENUM'](_0x977d('0x11'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize['ENUM'](_0x977d('0x11'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x11'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x977d('0x0')]('yes','no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize['ENUM'](_0x977d('0x11'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize[_0x977d('0x2')],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x977d('0x2')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x11'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x977d('0x0')]('yes','no'),'defaultValue':_0x977d('0x11')},'announce_holdtime':{'type':Sequelize[_0x977d('0x0')]('yes','no',_0x977d('0x13')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x977d('0x2')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize['ENUM']('yes','no')},'announce_position_limit':{'type':Sequelize[_0x977d('0x10')](0xb)},'announce_round_seconds':{'type':Sequelize[_0x977d('0x0')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x977d('0x2')],'defaultValue':''},'monitor_type':{'type':Sequelize['STRING']},'queue_youarenext':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'queue_minute':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'queue_thankyou':{'type':Sequelize['STRING'],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x977d('0x2')]},'queue_quantity1':{'type':Sequelize[_0x977d('0x2')]},'queue_quantity2':{'type':Sequelize['STRING']},'queue_periodic_announce':{'type':Sequelize[_0x977d('0x2')]},'queue_less_than':{'type':Sequelize[_0x977d('0x2')]},'periodic_announce':{'type':Sequelize['TEXT'],'set':function(_0x282944){this[_0x977d('0x9')]('periodic_announce',_0x282944?_0x282944['join'](','):[]);},'get':function(){return this['getDataValue'](_0x977d('0x14'))?this[_0x977d('0xa')](_0x977d('0x14'))[_0x977d('0x15')](','):[];}},'joinempty':{'type':Sequelize[_0x977d('0x2')],'defaultValue':_0x977d('0x11'),'set':function(_0x421c2d){this[_0x977d('0x9')](_0x977d('0x16'),_0x421c2d?_0x421c2d[_0x977d('0x17')](','):undefined);},'get':function(){return this[_0x977d('0xa')](_0x977d('0x16'))?this[_0x977d('0xa')](_0x977d('0x16'))['split'](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x977d('0x2')],'defaultValue':'no','set':function(_0xe4f221){this[_0x977d('0x9')]('leavewhenempty',_0xe4f221?_0xe4f221[_0x977d('0x17')](','):undefined);},'get':function(){return this[_0x977d('0xa')](_0x977d('0x18'))?this[_0x977d('0xa')](_0x977d('0x18'))[_0x977d('0x15')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x11'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize['ENUM'](_0x977d('0x11'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x11'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x977d('0x2')]},'description':{'type':Sequelize['STRING']},'acw':{'type':Sequelize[_0x977d('0x19')],'defaultValue':0x0,'set':function(_0x3fcd97){this[_0x977d('0x9')](_0x977d('0x1a'),_0x3fcd97);if(_0x3fcd97){if(this[_0x977d('0xa')](_0x977d('0x1b'))<0x2){this['setDataValue']('wrapuptime',0x2);}}}},'acwTimeout':{'type':Sequelize[_0x977d('0x10')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x977d('0x19')],'defaultValue':0x0,'comment':_0x977d('0x1c')},'dialMethod':{'type':Sequelize[_0x977d('0x0')](_0x977d('0x1d'),'progressive','power','predictive',_0x977d('0xc')),'defaultValue':_0x977d('0xd'),'comment':_0x977d('0x1e')},'dialLimitChannel':{'type':Sequelize[_0x977d('0x10')](0x4)[_0x977d('0x1f')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20channels,\x200\x20means\x20unlimited.'},'dialLimitQueue':{'type':Sequelize[_0x977d('0x10')](0x4)[_0x977d('0x1f')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x977d('0x20')},'dialPowerLevel':{'type':Sequelize[_0x977d('0x21')](0x2)['UNSIGNED'],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x977d('0x22')},'dialPredictiveOptimization':{'type':Sequelize[_0x977d('0x0')]('agentBusyFactor',_0x977d('0x23')),'defaultValue':'dropRate','comment':'Only\x20for\x20predictive\x20method.'},'dialPredictiveOptimizationPercentage':{'type':Sequelize['FLOAT'](0x2)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x977d('0x24')},'dialPredictiveInterval':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x977d('0x25')},'dialOriginateCallerIdName':{'type':Sequelize['STRING']},'dialOriginateCallerIdNumber':{'type':Sequelize['STRING']},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0x977d('0x1f')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':'Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueOptions':{'type':Sequelize[_0x977d('0x2')],'defaultValue':_0x977d('0x26'),'comment':_0x977d('0x27')},'dialQueueTimeout':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x977d('0x28')},'dialQueueProject':{'type':Sequelize[_0x977d('0x2')],'comment':_0x977d('0x29')},'dialCongestionMaxRetry':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x977d('0x1f')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x977d('0x2a')},'dialBusyMaxRetry':{'type':Sequelize[_0x977d('0x10')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x977d('0x2b')},'dialBusyRetryFrequency':{'type':Sequelize[_0x977d('0x10')](0x5)[_0x977d('0x1f')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'comment':_0x977d('0x2c')},'dialNoAnswerRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x977d('0x2d')},'dialGlobalMaxRetry':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x977d('0x2e')},'dialTimezone':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x977d('0x2')],'defaultValue':_0x977d('0x2f')},'dialPrefix':{'type':Sequelize[_0x977d('0x2')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x977d('0x0')]('always',_0x977d('0x30'),_0x977d('0x31')),'defaultValue':_0x977d('0x32')},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x977d('0x33')},'dialAMDInitialSilence':{'type':Sequelize[_0x977d('0x10')](0x9)[_0x977d('0x1f')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x977d('0x34')},'dialAMDGreeting':{'type':Sequelize[_0x977d('0x10')](0x9)['UNSIGNED'],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x977d('0x35')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x977d('0x10')](0x9)[_0x977d('0x1f')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x977d('0x36')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x977d('0x10')](0x9)[_0x977d('0x1f')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Total\x20Analysis\x20Time'},'dialAMDMinWordLength':{'type':Sequelize[_0x977d('0x10')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x977d('0x10')](0x9)[_0x977d('0x1f')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x977d('0x37')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x977d('0x10')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize[_0x977d('0x10')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':'#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)'},'dialAMDMaximumWordLength':{'type':Sequelize['INTEGER'](0x9)[_0x977d('0x1f')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x977d('0x38')},'dialRecallMeTimeout':{'type':Sequelize[_0x977d('0x10')](0x5)['UNSIGNED'],'validate':{'min':0x1},'defaultValue':0x1e,'comment':_0x977d('0x39')},'dialRecallInQueue':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Active/Disactive\x20Recall\x20In\x20Queue'},'dialOrderByScheduledAt':{'type':Sequelize['ENUM'](_0x977d('0x3a'),_0x977d('0x3b')),'defaultValue':_0x977d('0x3a')},'dialQueueProject2':{'type':Sequelize[_0x977d('0x2')],'comment':_0x977d('0x29')},'dialAgiAfterHangupClient':{'type':Sequelize[_0x977d('0x19')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x977d('0x19')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x977d('0x3c')},'dialCutDigit':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x977d('0x3d')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x977d('0x3e')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x977d('0x10')](0x5)[_0x977d('0x1f')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x977d('0x3f')},'dialDropMaxRetry':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0x977d('0x10')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x977d('0x40')},'dialAbandonedMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x977d('0x41')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x977d('0x10')](0x5)[_0x977d('0x1f')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialMachineMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x977d('0x42')},'dialMachineRetryFrequency':{'type':Sequelize[_0x977d('0x10')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x977d('0x43')},'dialAgentRejectMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x977d('0x1f')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x977d('0x44')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x977d('0x10')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x977d('0x45')},'mandatoryDispositionPauseId':{'type':Sequelize[_0x977d('0x10')],'allowNull':!![],'comment':_0x977d('0x46')},'mandatoryDisposition':{'type':Sequelize[_0x977d('0x19')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x491f02){if(!_0x491f02)this[_0x977d('0x9')](_0x977d('0x47'),null);this['setDataValue']('mandatoryDisposition',_0x491f02);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x977d('0x10')](0x3)[_0x977d('0x1f')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
+var _0xdc97=['inbound','default','ringall','fewestcalls','linear','wrandom','rrordered','strategy','rrmemory','getDataValue','type','booked','roundrobin','progressive','predictive','power','INTEGER','yes','once','TEXT','setDataValue','joinempty','join','leavewhenempty','split','acw','wrapuptime','BOOLEAN','Active/Disactive\x20Campaign','preview','Dial\x20Method.','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','#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)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','onlyIfOpen','always','#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','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)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','ENUM','outbound'];(function(_0x19fc44,_0x4bca56){var _0x3414ec=function(_0x696b3d){while(--_0x696b3d){_0x19fc44['push'](_0x19fc44['shift']());}};_0x3414ec(++_0x4bca56);}(_0xdc97,0x13b));var _0x7dc9=function(_0x1fc75a,_0x38f324){_0x1fc75a=_0x1fc75a-0x0;var _0x2e6b54=_0xdc97[_0x1fc75a];return _0x2e6b54;};'use strict';var Sequelize=require(_0x7dc9('0x0'));module[_0x7dc9('0x1')]={'name':{'type':Sequelize[_0x7dc9('0x2')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x7dc9('0x3')]('inbound',_0x7dc9('0x4')),'allowNull':![],'defaultValue':_0x7dc9('0x5')},'musiconhold':{'type':Sequelize['STRING'],'defaultValue':_0x7dc9('0x6')},'announce':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':''},'strategy':{'type':Sequelize[_0x7dc9('0x3')]('rr',_0x7dc9('0x7'),'leastrecent',_0x7dc9('0x8'),'random','rrmemory',_0x7dc9('0x9'),_0x7dc9('0xa'),_0x7dc9('0xb')),'allowNull':![],'defaultValue':_0x7dc9('0x7'),'set':function(_0x3dd07e){this['setDataValue'](_0x7dc9('0xc'),_0x3dd07e?_0x3dd07e:_0x7dc9('0xd'));},'get':function(){var _0x37dfc=this[_0x7dc9('0xe')](_0x7dc9('0xf'));var _0x3c2af5=this[_0x7dc9('0xe')]('dialMethod');var _0x4b47d0=this['getDataValue']('strategy');if(_0x37dfc===_0x7dc9('0x5')){return _0x4b47d0;}if(_0x3c2af5===_0x7dc9('0x10')&&_0x4b47d0==='rrmemory'||_0x3c2af5===_0x7dc9('0x10')&&_0x4b47d0===_0x7dc9('0x11')){return _0x4b47d0;}if(_0x3c2af5===_0x7dc9('0x12')||_0x3c2af5===_0x7dc9('0x13')||_0x3c2af5===_0x7dc9('0x14')){return _0x4b47d0;}return null;}},'servicelevel':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x0},'context':{'type':Sequelize['STRING'],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x7dc9('0x15')](0xb)},'timeout':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0x7dc9('0x2')]},'weight':{'type':Sequelize[_0x7dc9('0x15')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defaultValue':_0x7dc9('0x16')},'autopause':{'type':Sequelize['ENUM'](_0x7dc9('0x16'),'no','all'),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x7dc9('0x15')](0xb)},'autopausebusy':{'type':Sequelize[_0x7dc9('0x3')]('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x7dc9('0x3')]('yes','no'),'defaultValue':'no'},'membermacro':{'type':Sequelize['STRING'],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x7dc9('0x2')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x7dc9('0x3')]('yes','no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defaultValue':_0x7dc9('0x16')},'announce_holdtime':{'type':Sequelize['ENUM'](_0x7dc9('0x16'),'no',_0x7dc9('0x17')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize['ENUM']('yes','no')},'announce_position_limit':{'type':Sequelize['INTEGER'](0xb)},'announce_round_seconds':{'type':Sequelize[_0x7dc9('0x3')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':''},'monitor_type':{'type':Sequelize['STRING']},'queue_youarenext':{'type':Sequelize['STRING'],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize['STRING'],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x7dc9('0x2')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x7dc9('0x2')]},'queue_quantity1':{'type':Sequelize[_0x7dc9('0x2')]},'queue_quantity2':{'type':Sequelize[_0x7dc9('0x2')]},'queue_periodic_announce':{'type':Sequelize[_0x7dc9('0x2')]},'queue_less_than':{'type':Sequelize[_0x7dc9('0x2')]},'periodic_announce':{'type':Sequelize[_0x7dc9('0x18')],'set':function(_0x2a456c){this['setDataValue']('periodic_announce',_0x2a456c?_0x2a456c['join'](','):[]);},'get':function(){return this['getDataValue']('periodic_announce')?this['getDataValue']('periodic_announce')['split'](','):[];}},'joinempty':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':_0x7dc9('0x16'),'set':function(_0x29dcef){this[_0x7dc9('0x19')](_0x7dc9('0x1a'),_0x29dcef?_0x29dcef[_0x7dc9('0x1b')](','):undefined);},'get':function(){return this['getDataValue']('joinempty')?this['getDataValue'](_0x7dc9('0x1a'))['split'](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':'no','set':function(_0x448e46){this[_0x7dc9('0x19')](_0x7dc9('0x1c'),_0x448e46?_0x448e46[_0x7dc9('0x1b')](','):undefined);},'get':function(){return this[_0x7dc9('0xe')](_0x7dc9('0x1c'))?this[_0x7dc9('0xe')]('leavewhenempty')[_0x7dc9('0x1d')](','):undefined;}},'reportholdtime':{'type':Sequelize['ENUM'](_0x7dc9('0x16'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x16'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize['ENUM'](_0x7dc9('0x16'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x7dc9('0x2')]},'acw':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'set':function(_0x590bed){this[_0x7dc9('0x19')](_0x7dc9('0x1e'),_0x590bed);if(_0x590bed){if(this[_0x7dc9('0xe')](_0x7dc9('0x1f'))<0x2){this['setDataValue'](_0x7dc9('0x1f'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0x7dc9('0x15')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x7dc9('0x20')],'defaultValue':0x0,'comment':_0x7dc9('0x21')},'dialMethod':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x22'),_0x7dc9('0x12'),_0x7dc9('0x14'),_0x7dc9('0x13'),_0x7dc9('0x10')),'defaultValue':_0x7dc9('0x12'),'comment':_0x7dc9('0x23')},'dialLimitChannel':{'type':Sequelize['INTEGER'](0x4)[_0x7dc9('0x24')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x7dc9('0x25')},'dialLimitQueue':{'type':Sequelize[_0x7dc9('0x15')](0x4)[_0x7dc9('0x24')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.'},'dialPowerLevel':{'type':Sequelize[_0x7dc9('0x26')](0x2)[_0x7dc9('0x24')],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x7dc9('0x27')},'dialPredictiveOptimization':{'type':Sequelize[_0x7dc9('0x3')](_0x7dc9('0x28'),_0x7dc9('0x29')),'defaultValue':'dropRate','comment':'Only\x20for\x20predictive\x20method.'},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x7dc9('0x26')](0x2)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':'Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)'},'dialPredictiveInterval':{'type':Sequelize[_0x7dc9('0x15')](0x3)['UNSIGNED'],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x7dc9('0x2a')},'dialOriginateCallerIdName':{'type':Sequelize[_0x7dc9('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x7dc9('0x2')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0x7dc9('0x24')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x7dc9('0x2b')},'dialQueueOptions':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':_0x7dc9('0x2c'),'comment':_0x7dc9('0x2d')},'dialQueueTimeout':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)'},'dialQueueProject':{'type':Sequelize[_0x7dc9('0x2')],'comment':'AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)'},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x7dc9('0x2e')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x7dc9('0x15')](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x2f')},'dialBusyMaxRetry':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x7dc9('0x30')},'dialBusyRetryFrequency':{'type':Sequelize[_0x7dc9('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x31')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'comment':_0x7dc9('0x32')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x7dc9('0x15')](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialGlobalMaxRetry':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x7dc9('0x2')],'defaultValue':_0x7dc9('0x33')},'dialPrefix':{'type':Sequelize['STRING'],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x7dc9('0x3')]('always','never',_0x7dc9('0x34')),'defaultValue':_0x7dc9('0x35')},'dialAMDActive':{'type':Sequelize[_0x7dc9('0x20')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize['INTEGER'](0x9)[_0x7dc9('0x24')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize[_0x7dc9('0x15')](0x9)[_0x7dc9('0x24')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x7dc9('0x15')](0x9)[_0x7dc9('0x24')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x7dc9('0x36')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x7dc9('0x15')](0x9)[_0x7dc9('0x24')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x7dc9('0x37')},'dialAMDMinWordLength':{'type':Sequelize[_0x7dc9('0x15')](0x9)[_0x7dc9('0x24')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x7dc9('0x38')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x7dc9('0x15')](0x9)[_0x7dc9('0x24')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x7dc9('0x39')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x7dc9('0x15')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x7dc9('0x3a')},'dialAMDSilenceThreshold':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x7dc9('0x3b')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x7dc9('0x15')](0x9)[_0x7dc9('0x24')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x7dc9('0x3c')},'dialRecallMeTimeout':{'type':Sequelize[_0x7dc9('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x1},'defaultValue':0x1e,'comment':_0x7dc9('0x3d')},'dialRecallInQueue':{'type':Sequelize[_0x7dc9('0x20')],'defaultValue':0x0,'comment':_0x7dc9('0x3e')},'dialOrderByScheduledAt':{'type':Sequelize['ENUM'](_0x7dc9('0x3f'),_0x7dc9('0x40')),'defaultValue':_0x7dc9('0x3f')},'dialQueueProject2':{'type':Sequelize[_0x7dc9('0x2')],'comment':_0x7dc9('0x41')},'dialAgiAfterHangupClient':{'type':Sequelize[_0x7dc9('0x20')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x7dc9('0x42')},'dialCutDigit':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x7dc9('0x43')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x7dc9('0x44')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x7dc9('0x15')](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x45')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x7dc9('0x46')},'dialDropRetryFrequency':{'type':Sequelize[_0x7dc9('0x15')](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x47')},'dialAbandonedMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x7dc9('0x48')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x7dc9('0x15')](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x49')},'dialMachineMaxRetry':{'type':Sequelize[_0x7dc9('0x15')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x4a')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#AgentReject\x20Retry\x20(min:1,\x20max:999)'},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x7dc9('0x24')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x7dc9('0x4b')},'mandatoryDispositionPauseId':{'type':Sequelize[_0x7dc9('0x15')],'allowNull':!![],'comment':_0x7dc9('0x4c')},'mandatoryDisposition':{'type':Sequelize[_0x7dc9('0x20')],'defaultValue':![],'comment':_0x7dc9('0x4d'),'set':function(_0x1318fc){if(!_0x1318fc)this['setDataValue'](_0x7dc9('0x4e'),null);this[_0x7dc9('0x19')](_0x7dc9('0x4f'),_0x1318fc);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x7dc9('0x15')](0x3)[_0x7dc9('0x24')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize['INTEGER'](0x3)[_0x7dc9('0x24')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e2d=['QueueCampaigns','outbound','filter','ignore','map','value','includes','find','type','name','UserProfileResource','destroy','error','stack','send','index','VoiceQueue','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filters','VIRTUAL','include','findAll','rows','catch','show','params','merge','create','body','user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','includeAll','options','omit','createdAt','updatedAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','getHoppers','findOne','hasOwnProperty','VoiceQueueId','CmHopper','getHopperHistories','CmHopperHistory','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getTeams','Team','addTeams','teams','User','interface','flatMap','Agents','forEach','penalty','transaction','TeamVoiceQueue','upsert','UserVoiceQueue','findOrCreate','isNil','emit','removeTeams','ids','select','field','from','team_has_voice_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','sequelize','QueryTypes','SELECT','every','all','union','isEmpty','UserVoiceQueueRt','userVoiceQueue:remove','addAgents','userVoiceQueue:save','online','voicePause','SIP/%s','removeAgents','isArray','getAgents','getMembers','CmList','getLists','addLists','dialCheckDuplicateType','always','insert','cm_hopper','fromQuery','phone','ContactId','ListId','NOW()','scheduledAt','CmListId','toString','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','VoiceQueueId\x20=\x20?','COALESCE(phone,\x27\x27)','onlyIfOpen','into','removeLists','getBlackLists','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./voiceQueue.socket','register','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','get','VoiceQueues','inbound'];(function(_0x4050da,_0x37c8ed){var _0x3a013d=function(_0x1d3812){while(--_0x1d3812){_0x4050da['push'](_0x4050da['shift']());}};_0x3a013d(++_0x37c8ed);}(_0x5e2d,0x8e));var _0xd5e2=function(_0x7ddc69,_0x4fbded){_0x7ddc69=_0x7ddc69-0x0;var _0x62f85c=_0x5e2d[_0x7ddc69];return _0x62f85c;};'use strict';var emlformat=require(_0xd5e2('0x0'));var rimraf=require(_0xd5e2('0x1'));var zipdir=require(_0xd5e2('0x2'));var jsonpatch=require(_0xd5e2('0x3'));var rp=require(_0xd5e2('0x4'));var moment=require(_0xd5e2('0x5'));var BPromise=require(_0xd5e2('0x6'));var Mustache=require(_0xd5e2('0x7'));var util=require(_0xd5e2('0x8'));var path=require(_0xd5e2('0x9'));var sox=require(_0xd5e2('0xa'));var csv=require(_0xd5e2('0xb'));var ejs=require(_0xd5e2('0xc'));var fs=require('fs');var fs_extra=require(_0xd5e2('0xd'));var _=require('lodash');var squel=require(_0xd5e2('0xe'));var crypto=require(_0xd5e2('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xd5e2('0x10'));var toCsv=require(_0xd5e2('0xb'));var querystring=require(_0xd5e2('0x11'));var Papa=require('papaparse');var Redis=require(_0xd5e2('0x12'));var authService=require(_0xd5e2('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xd5e2('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd5e2('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xd5e2('0x16'));var licenseUtil=require(_0xd5e2('0x17'));var db=require(_0xd5e2('0x18'))['db'];config['redis']=_[_0xd5e2('0x19')](config[_0xd5e2('0x1a')],{'host':_0xd5e2('0x1b'),'port':0x18eb});var socket=require(_0xd5e2('0x1c'))(new Redis(config[_0xd5e2('0x1a')]));require(_0xd5e2('0x1d'))[_0xd5e2('0x1e')](socket);function respondWithStatusCode(_0x4f92bb,_0x3171ca){_0x3171ca=_0x3171ca||0xcc;return function(_0x1f3e95){if(_0x1f3e95){return _0x4f92bb['sendStatus'](_0x3171ca);}return _0x4f92bb[_0xd5e2('0x1f')](_0x3171ca)[_0xd5e2('0x20')]();};}function respondWithResult(_0xdb62a8,_0x13342c){_0x13342c=_0x13342c||0xc8;return function(_0x2ffaa9){if(_0x2ffaa9){return _0xdb62a8[_0xd5e2('0x1f')](_0x13342c)[_0xd5e2('0x21')](_0x2ffaa9);}};}function respondWithFilteredResult(_0x164713,_0x50a570){return function(_0x4127e7){if(_0x4127e7){var _0x16c6ab=typeof _0x50a570[_0xd5e2('0x22')]==='undefined'&&typeof _0x50a570[_0xd5e2('0x23')]===_0xd5e2('0x24');var _0x2bedc6=_0x4127e7[_0xd5e2('0x25')];var _0x507155=_0x16c6ab?0x0:_0x50a570[_0xd5e2('0x22')];var _0x50f85c=_0x16c6ab?_0x4127e7[_0xd5e2('0x25')]:_0x50a570['offset']+_0x50a570['limit'];var _0x2cacb2;if(_0x50f85c>=_0x2bedc6){_0x50f85c=_0x2bedc6;_0x2cacb2=0xc8;}else{_0x2cacb2=0xce;}_0x164713['status'](_0x2cacb2);return _0x164713[_0xd5e2('0x26')]('Content-Range',_0x507155+'-'+_0x50f85c+'/'+_0x2bedc6)[_0xd5e2('0x21')](_0x4127e7);}return null;};}function patchUpdates(_0x5c99b9){return function(_0x354b1b){try{jsonpatch[_0xd5e2('0x27')](_0x354b1b,_0x5c99b9,!![]);}catch(_0x2c0749){return BPromise[_0xd5e2('0x28')](_0x2c0749);}return _0x354b1b[_0xd5e2('0x29')]();};}function saveUpdates(_0x855cd2,_0x3f03e2){return function(_0x41a187){if(_0x41a187){return _0x41a187[_0xd5e2('0x2a')](_0x855cd2)[_0xd5e2('0x2b')](function(_0x428b41){return _0x428b41;});}return null;};}function removeEntity(_0x1e11da,_0x5eb8eb){return function(_0x3abfe1){if(_0x3abfe1){return _0x3abfe1['destroy']()['then'](function(){var _0x5f1eda=_0x3abfe1[_0xd5e2('0x2c')]({'plain':!![]});var _0x4cbe26=[{'name':_0xd5e2('0x2d'),'value':_0xd5e2('0x2e'),'ignore':![]},{'name':_0xd5e2('0x2f'),'value':_0xd5e2('0x30'),'ignore':![]}];var _0x4ecd8a=_(_0x4cbe26)[_0xd5e2('0x31')](_0xd5e2('0x32'))[_0xd5e2('0x33')]('value')[_0xd5e2('0x34')]();if(_[_0xd5e2('0x35')](_0x4ecd8a,_0x5f1eda['type'])){return;}var _0x348b67=_[_0xd5e2('0x36')](_0x4cbe26,['value',_0x5f1eda[_0xd5e2('0x37')]])[_0xd5e2('0x38')];return db[_0xd5e2('0x39')][_0xd5e2('0x3a')]({'where':{'type':_0x348b67,'resourceId':_0x5f1eda['id']}})[_0xd5e2('0x2b')](function(){return _0x3abfe1;});})[_0xd5e2('0x2b')](function(){_0x1e11da[_0xd5e2('0x1f')](0xcc)[_0xd5e2('0x20')]();});}};}function handleEntityNotFound(_0x2d8cd4,_0x85419d){return function(_0x2a5a92){if(!_0x2a5a92){_0x2d8cd4['sendStatus'](0x194);}return _0x2a5a92;};}function handleError(_0x349fab,_0x5f4f69){_0x5f4f69=_0x5f4f69||0x1f4;return function(_0x3fa533){logger[_0xd5e2('0x3b')](_0x3fa533[_0xd5e2('0x3c')]);if(_0x3fa533[_0xd5e2('0x38')]){delete _0x3fa533[_0xd5e2('0x38')];}_0x349fab[_0xd5e2('0x1f')](_0x5f4f69)[_0xd5e2('0x3d')](_0x3fa533);};}exports[_0xd5e2('0x3e')]=function(_0x3d5089,_0x3391e5){var _0x2a8d16={},_0x25607e={},_0x22e301={'count':0x0,'rows':[]};var _0x17d71c=_[_0xd5e2('0x33')](db[_0xd5e2('0x3f')][_0xd5e2('0x40')],function(_0x258ace){return{'name':_0x258ace[_0xd5e2('0x41')],'type':_0x258ace['type'][_0xd5e2('0x42')]};});_0x25607e[_0xd5e2('0x43')]=_[_0xd5e2('0x33')](_0x17d71c,_0xd5e2('0x38'));_0x25607e[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x3d5089[_0xd5e2('0x44')]);_0x25607e['filters']=_[_0xd5e2('0x46')](_0x25607e['model'],_0x25607e[_0xd5e2('0x44')]);_0x2a8d16[_0xd5e2('0x47')]=_[_0xd5e2('0x46')](_0x25607e[_0xd5e2('0x43')],qs[_0xd5e2('0x48')](_0x3d5089[_0xd5e2('0x44')]['fields']));_0x2a8d16[_0xd5e2('0x47')]=_0x2a8d16[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x2a8d16[_0xd5e2('0x47')]:_0x25607e[_0xd5e2('0x43')];if(!_0x3d5089[_0xd5e2('0x44')]['hasOwnProperty'](_0xd5e2('0x4a'))){_0x2a8d16[_0xd5e2('0x23')]=qs[_0xd5e2('0x23')](_0x3d5089[_0xd5e2('0x44')][_0xd5e2('0x23')]);_0x2a8d16[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x3d5089[_0xd5e2('0x44')][_0xd5e2('0x22')]);}_0x2a8d16[_0xd5e2('0x4b')]=qs[_0xd5e2('0x4c')](_0x3d5089['query'][_0xd5e2('0x4c')]);_0x2a8d16[_0xd5e2('0x4d')]=qs['filters'](_[_0xd5e2('0x4e')](_0x3d5089[_0xd5e2('0x44')],_0x25607e[_0xd5e2('0x4f')]),_0x17d71c);if(_0x3d5089[_0xd5e2('0x44')]['filter']){_0x2a8d16[_0xd5e2('0x4d')]=_['merge'](_0x2a8d16[_0xd5e2('0x4d')],{'$or':_[_0xd5e2('0x33')](_0x17d71c,function(_0x263c9b){if(_0x263c9b[_0xd5e2('0x37')]!==_0xd5e2('0x50')){var _0x436217={};_0x436217[_0x263c9b[_0xd5e2('0x38')]]={'$like':'%'+_0x3d5089[_0xd5e2('0x44')][_0xd5e2('0x31')]+'%'};return _0x436217;}})});}_0x2a8d16=_['merge']({},_0x2a8d16,_0x3d5089['options']);var _0x283ade={'where':_0x2a8d16[_0xd5e2('0x4d')]};return db['VoiceQueue'][_0xd5e2('0x25')](_0x283ade)['then'](function(_0x2be167){_0x22e301[_0xd5e2('0x25')]=_0x2be167;if(_0x3d5089[_0xd5e2('0x44')]['includeAll']){_0x2a8d16[_0xd5e2('0x51')]=[{'all':!![]}];}return db['VoiceQueue'][_0xd5e2('0x52')](_0x2a8d16);})[_0xd5e2('0x2b')](function(_0x3f65fb){_0x22e301[_0xd5e2('0x53')]=_0x3f65fb;return _0x22e301;})['then'](respondWithFilteredResult(_0x3391e5,_0x2a8d16))[_0xd5e2('0x54')](handleError(_0x3391e5,null));};exports[_0xd5e2('0x55')]=function(_0x4ccf95,_0x17aa97){var _0x11d88d={'raw':![],'where':{'id':_0x4ccf95[_0xd5e2('0x56')]['id']}},_0x3039f2={};_0x3039f2[_0xd5e2('0x43')]=_[_0xd5e2('0x45')](db[_0xd5e2('0x3f')][_0xd5e2('0x40')]);_0x3039f2['query']=_['keys'](_0x4ccf95[_0xd5e2('0x44')]);_0x3039f2['filters']=_['intersection'](_0x3039f2[_0xd5e2('0x43')],_0x3039f2['query']);_0x11d88d['attributes']=_['intersection'](_0x3039f2['model'],qs[_0xd5e2('0x48')](_0x4ccf95[_0xd5e2('0x44')]['fields']));_0x11d88d[_0xd5e2('0x47')]=_0x11d88d[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x11d88d[_0xd5e2('0x47')]:_0x3039f2['model'];if(_0x4ccf95[_0xd5e2('0x44')]['includeAll']){_0x11d88d[_0xd5e2('0x51')]=[{'all':!![]}];}_0x11d88d=_[_0xd5e2('0x57')]({},_0x11d88d,_0x4ccf95['options']);return db[_0xd5e2('0x3f')]['find'](_0x11d88d)[_0xd5e2('0x2b')](handleEntityNotFound(_0x17aa97,null))[_0xd5e2('0x2b')](respondWithResult(_0x17aa97,null))[_0xd5e2('0x54')](handleError(_0x17aa97,null));};exports[_0xd5e2('0x58')]=function(_0x739d1b,_0x3689d3){return db[_0xd5e2('0x3f')][_0xd5e2('0x58')](_0x739d1b[_0xd5e2('0x59')],{})[_0xd5e2('0x2b')](function(_0x45392e){var _0x16f6f0=_0x739d1b[_0xd5e2('0x5a')][_0xd5e2('0x2c')]({'plain':!![]});if(!_0x16f6f0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x16f6f0[_0xd5e2('0x5b')]===_0xd5e2('0x5a')){var _0x535019=_0x45392e[_0xd5e2('0x2c')]({'plain':!![]});var _0x2afd2c=[{'name':_0xd5e2('0x2d'),'value':_0xd5e2('0x2e')},{'name':'QueueCampaigns','value':_0xd5e2('0x30')}];var _0x10d7a1=_['find'](_0x2afd2c,[_0xd5e2('0x34'),_0x535019[_0xd5e2('0x37')]])[_0xd5e2('0x38')];return db['UserProfileSection'][_0xd5e2('0x36')]({'where':{'name':_0x10d7a1,'userProfileId':_0x16f6f0[_0xd5e2('0x5c')]},'raw':!![]})[_0xd5e2('0x2b')](function(_0x24b2df){if(_0x24b2df&&_0x24b2df[_0xd5e2('0x5d')]===0x0){return db[_0xd5e2('0x39')][_0xd5e2('0x58')]({'name':_0x535019[_0xd5e2('0x38')],'resourceId':_0x535019['id'],'type':_0x24b2df[_0xd5e2('0x38')],'sectionId':_0x24b2df['id']},{})[_0xd5e2('0x2b')](function(){return _0x45392e;});}else{return _0x45392e;}})[_0xd5e2('0x54')](function(_0x4262b9){logger['error'](_0xd5e2('0x5e'),_0x4262b9);throw _0x4262b9;});}return _0x45392e;})[_0xd5e2('0x2b')](respondWithResult(_0x3689d3,0xc9))[_0xd5e2('0x54')](handleError(_0x3689d3,null));};exports[_0xd5e2('0x5f')]=function(_0x3c00f2,_0x35c6c1){var _0x26e34c={'where':{'id':_0x3c00f2[_0xd5e2('0x56')]['id']}},_0xe6854c={};_0xe6854c[_0xd5e2('0x43')]=_[_0xd5e2('0x45')](db[_0xd5e2('0x3f')]['rawAttributes']);_0x26e34c[_0xd5e2('0x47')]=_[_0xd5e2('0x46')](_0xe6854c[_0xd5e2('0x43')],qs[_0xd5e2('0x48')](_0x3c00f2[_0xd5e2('0x44')][_0xd5e2('0x48')]));_0x26e34c[_0xd5e2('0x47')]=_0x26e34c[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x26e34c[_0xd5e2('0x47')]:_0xe6854c[_0xd5e2('0x43')];if(_0x3c00f2[_0xd5e2('0x44')][_0xd5e2('0x60')]){_0x26e34c[_0xd5e2('0x51')]=[{'all':!![]}];}_0x26e34c=_['merge']({},_0x26e34c,_0x3c00f2[_0xd5e2('0x61')]);return db[_0xd5e2('0x3f')]['find'](_0x26e34c)[_0xd5e2('0x2b')](handleEntityNotFound(_0x35c6c1,null))['then'](function(_0x441f46){if(_0x441f46){var _0x123a85=_0x441f46[_0xd5e2('0x2c')]({'plain':!![]});_0x123a85=qs[_0xd5e2('0x62')](_0x123a85,['id',_0xd5e2('0x63'),_0xd5e2('0x64')]);_0x3c00f2['body']=_['omit'](_0x3c00f2[_0xd5e2('0x59')],['id',_0xd5e2('0x63'),'updatedAt']);return db[_0xd5e2('0x3f')][_0xd5e2('0x58')](_[_0xd5e2('0x57')](_0x123a85,_0x3c00f2['body']),{'include':_0x3c00f2[_0xd5e2('0x44')][_0xd5e2('0x60')]?[{'all':!![]}]:undefined})[_0xd5e2('0x2b')](function(_0x55e452){var _0x55fb03=_0x3c00f2[_0xd5e2('0x5a')]['get']({'plain':!![]});if(!_0x55fb03)throw new Error(_0xd5e2('0x65'));if(_0x55fb03[_0xd5e2('0x5b')]===_0xd5e2('0x5a')){var _0xce8a6f=_0x55e452[_0xd5e2('0x2c')]({'plain':!![]});var _0x4e4c6e=[{'name':_0xd5e2('0x2d'),'value':_0xd5e2('0x2e')},{'name':_0xd5e2('0x2f'),'value':_0xd5e2('0x30')}];var _0x95bcc=_[_0xd5e2('0x36')](_0x4e4c6e,[_0xd5e2('0x34'),_0xce8a6f[_0xd5e2('0x37')]])[_0xd5e2('0x38')];return db[_0xd5e2('0x66')][_0xd5e2('0x36')]({'where':{'name':_0x95bcc,'userProfileId':_0x55fb03[_0xd5e2('0x5c')]},'raw':!![]})[_0xd5e2('0x2b')](function(_0x1b9e5c){if(_0x1b9e5c&&_0x1b9e5c['autoAssociation']===0x0){return db[_0xd5e2('0x39')][_0xd5e2('0x58')]({'name':_0xce8a6f[_0xd5e2('0x38')],'resourceId':_0xce8a6f['id'],'type':_0x1b9e5c['name'],'sectionId':_0x1b9e5c['id']},{})[_0xd5e2('0x2b')](function(){return _0x55e452;});}else{return _0x55e452;}})['catch'](function(_0x1d0bb9){logger[_0xd5e2('0x3b')](_0xd5e2('0x5e'),_0x1d0bb9);throw _0x1d0bb9;});}return _0x55e452;});}})[_0xd5e2('0x2b')](respondWithResult(_0x35c6c1,0xc9))['catch'](handleError(_0x35c6c1,null));};exports['update']=function(_0x263eec,_0x33b988){if(_0x263eec['body']['id']){delete _0x263eec[_0xd5e2('0x59')]['id'];}return db[_0xd5e2('0x3f')][_0xd5e2('0x36')]({'where':{'id':_0x263eec[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x33b988,null))[_0xd5e2('0x2b')](saveUpdates(_0x263eec['body'],null))[_0xd5e2('0x2b')](respondWithResult(_0x33b988,null))['catch'](handleError(_0x33b988,null));};exports[_0xd5e2('0x3a')]=function(_0x5a5839,_0x2082b7){return db[_0xd5e2('0x3f')][_0xd5e2('0x36')]({'where':{'id':_0x5a5839[_0xd5e2('0x56')]['id']}})['then'](handleEntityNotFound(_0x2082b7,null))[_0xd5e2('0x2b')](removeEntity(_0x2082b7,null))[_0xd5e2('0x54')](handleError(_0x2082b7,null));};exports[_0xd5e2('0x67')]=function(_0x375c0b,_0x5d35e5,_0x49d5a1){var _0x23c5eb={'raw':![],'where':{}};var _0x17ddc0={};var _0x2327c0={'count':0x0,'rows':[]};return db['VoiceQueue'][_0xd5e2('0x68')]({'where':{'id':_0x375c0b[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x5d35e5,null))[_0xd5e2('0x2b')](function(_0x6a465a){if(_0x6a465a){_0x17ddc0[_0xd5e2('0x43')]=_[_0xd5e2('0x45')](db['CmHopper'][_0xd5e2('0x40')]);_0x17ddc0['query']=_['keys'](_0x375c0b[_0xd5e2('0x44')]);_0x17ddc0[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0x17ddc0[_0xd5e2('0x43')],_0x17ddc0['query']);_0x23c5eb[_0xd5e2('0x47')]=_['intersection'](_0x17ddc0[_0xd5e2('0x43')],qs[_0xd5e2('0x48')](_0x375c0b[_0xd5e2('0x44')]['fields']));_0x23c5eb[_0xd5e2('0x47')]=_0x23c5eb[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x23c5eb[_0xd5e2('0x47')]:_0x17ddc0[_0xd5e2('0x43')];if(!_0x375c0b[_0xd5e2('0x44')][_0xd5e2('0x69')](_0xd5e2('0x4a'))){_0x23c5eb['limit']=qs[_0xd5e2('0x23')](_0x375c0b['query'][_0xd5e2('0x23')]);_0x23c5eb[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x375c0b[_0xd5e2('0x44')][_0xd5e2('0x22')]);}_0x23c5eb['order']=qs[_0xd5e2('0x4c')](_0x375c0b['query'][_0xd5e2('0x4c')]);_0x23c5eb[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_[_0xd5e2('0x4e')](_0x375c0b[_0xd5e2('0x44')],_0x17ddc0[_0xd5e2('0x4f')]));_0x23c5eb[_0xd5e2('0x4d')][_0xd5e2('0x6a')]=_0x6a465a['id'];if(_0x375c0b[_0xd5e2('0x44')]['filter']){_0x23c5eb[_0xd5e2('0x4d')]=_['merge'](_0x23c5eb[_0xd5e2('0x4d')],{'$or':_[_0xd5e2('0x33')](_0x23c5eb[_0xd5e2('0x47')],function(_0x1d58f5){var _0x50faab={};_0x50faab[_0x1d58f5]={'$like':'%'+_0x375c0b[_0xd5e2('0x44')]['filter']+'%'};return _0x50faab;})});}_0x23c5eb=_[_0xd5e2('0x57')]({},_0x23c5eb,_0x375c0b[_0xd5e2('0x61')]);return db[_0xd5e2('0x6b')][_0xd5e2('0x25')]({'where':_0x23c5eb[_0xd5e2('0x4d')]})[_0xd5e2('0x2b')](function(_0x52d425){_0x2327c0['count']=_0x52d425;if(_0x375c0b[_0xd5e2('0x44')]['includeAll']){_0x23c5eb[_0xd5e2('0x51')]=[{'all':!![]}];}return db[_0xd5e2('0x6b')][_0xd5e2('0x52')](_0x23c5eb);})['then'](function(_0x1e32e5){_0x2327c0[_0xd5e2('0x53')]=_0x1e32e5;return _0x2327c0;});}})[_0xd5e2('0x2b')](respondWithFilteredResult(_0x5d35e5,_0x23c5eb))['catch'](handleError(_0x5d35e5,null));};exports[_0xd5e2('0x6c')]=function(_0x53c328,_0x17e644,_0x1c5f71){var _0x446872={'raw':!![],'where':{}};var _0xe19589={};var _0x20bfb3={'count':0x0,'rows':[]};return db[_0xd5e2('0x3f')][_0xd5e2('0x68')]({'where':{'id':_0x53c328[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x17e644,null))[_0xd5e2('0x2b')](function(_0x46eb0e){if(_0x46eb0e){_0xe19589[_0xd5e2('0x43')]=_['keys'](db['CmHopperHistory'][_0xd5e2('0x40')]);_0xe19589['query']=_['keys'](_0x53c328[_0xd5e2('0x44')]);_0xe19589[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0xe19589['model'],_0xe19589['query']);_0x446872['attributes']=_[_0xd5e2('0x46')](_0xe19589[_0xd5e2('0x43')],qs['fields'](_0x53c328['query']['fields']));_0x446872[_0xd5e2('0x47')]=_0x446872['attributes'][_0xd5e2('0x49')]?_0x446872[_0xd5e2('0x47')]:_0xe19589[_0xd5e2('0x43')];if(!_0x53c328['query']['hasOwnProperty']('nolimit')){_0x446872[_0xd5e2('0x23')]=qs[_0xd5e2('0x23')](_0x53c328['query']['limit']);_0x446872[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x53c328[_0xd5e2('0x44')][_0xd5e2('0x22')]);}_0x446872[_0xd5e2('0x4b')]=qs['sort'](_0x53c328[_0xd5e2('0x44')][_0xd5e2('0x4c')]);_0x446872[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_[_0xd5e2('0x4e')](_0x53c328[_0xd5e2('0x44')],_0xe19589[_0xd5e2('0x4f')]));_0x446872[_0xd5e2('0x4d')]['VoiceQueueId']=_0x46eb0e['id'];if(_0x53c328[_0xd5e2('0x44')][_0xd5e2('0x31')]){_0x446872[_0xd5e2('0x4d')]=_[_0xd5e2('0x57')](_0x446872[_0xd5e2('0x4d')],{'$or':_[_0xd5e2('0x33')](_0x446872[_0xd5e2('0x47')],function(_0x50f503){var _0x35a3ee={};_0x35a3ee[_0x50f503]={'$like':'%'+_0x53c328[_0xd5e2('0x44')][_0xd5e2('0x31')]+'%'};return _0x35a3ee;})});}_0x446872=_[_0xd5e2('0x57')]({},_0x446872,_0x53c328[_0xd5e2('0x61')]);return db[_0xd5e2('0x6d')][_0xd5e2('0x25')]({'where':_0x446872[_0xd5e2('0x4d')]})[_0xd5e2('0x2b')](function(_0x12b11){_0x20bfb3[_0xd5e2('0x25')]=_0x12b11;if(_0x53c328['query'][_0xd5e2('0x60')]){_0x446872[_0xd5e2('0x51')]=[{'all':!![]}];}return db[_0xd5e2('0x6d')][_0xd5e2('0x52')](_0x446872);})[_0xd5e2('0x2b')](function(_0x17a5ef){_0x20bfb3['rows']=_0x17a5ef;return _0x20bfb3;});}})[_0xd5e2('0x2b')](respondWithFilteredResult(_0x17e644,_0x446872))[_0xd5e2('0x54')](handleError(_0x17e644,null));};exports[_0xd5e2('0x6e')]=function(_0x165494,_0x60da6,_0x14b07d){var _0x516829={'raw':!![],'where':{}};var _0x20a736={};var _0x3b21f2={'count':0x0,'rows':[]};return db['VoiceQueue']['findOne']({'where':{'id':_0x165494[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x60da6,null))['then'](function(_0x14795d){if(_0x14795d){_0x20a736['model']=_[_0xd5e2('0x45')](db[_0xd5e2('0x6f')][_0xd5e2('0x40')]);_0x20a736[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x165494[_0xd5e2('0x44')]);_0x20a736[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0x20a736[_0xd5e2('0x43')],_0x20a736[_0xd5e2('0x44')]);_0x516829['attributes']=_['intersection'](_0x20a736['model'],qs[_0xd5e2('0x48')](_0x165494[_0xd5e2('0x44')][_0xd5e2('0x48')]));_0x516829[_0xd5e2('0x47')]=_0x516829[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x516829[_0xd5e2('0x47')]:_0x20a736[_0xd5e2('0x43')];if(!_0x165494[_0xd5e2('0x44')]['hasOwnProperty'](_0xd5e2('0x4a'))){_0x516829['limit']=qs['limit'](_0x165494['query'][_0xd5e2('0x23')]);_0x516829[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x165494[_0xd5e2('0x44')][_0xd5e2('0x22')]);}_0x516829[_0xd5e2('0x4b')]=qs['sort'](_0x165494['query'][_0xd5e2('0x4c')]);_0x516829[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_['pick'](_0x165494[_0xd5e2('0x44')],_0x20a736[_0xd5e2('0x4f')]));_0x516829[_0xd5e2('0x4d')][_0xd5e2('0x6a')]=_0x14795d['id'];if(_0x165494[_0xd5e2('0x44')]['filter']){_0x516829[_0xd5e2('0x4d')]=_[_0xd5e2('0x57')](_0x516829[_0xd5e2('0x4d')],{'$or':_['map'](_0x516829['attributes'],function(_0x36a873){var _0x43a7a6={};_0x43a7a6[_0x36a873]={'$like':'%'+_0x165494[_0xd5e2('0x44')][_0xd5e2('0x31')]+'%'};return _0x43a7a6;})});}_0x516829=_[_0xd5e2('0x57')]({},_0x516829,_0x165494[_0xd5e2('0x61')]);return db[_0xd5e2('0x6f')][_0xd5e2('0x25')]({'where':_0x516829[_0xd5e2('0x4d')]})[_0xd5e2('0x2b')](function(_0x50b6ee){_0x3b21f2[_0xd5e2('0x25')]=_0x50b6ee;if(_0x165494[_0xd5e2('0x44')]['includeAll']){_0x516829[_0xd5e2('0x51')]=[{'all':!![]}];}return db[_0xd5e2('0x6f')]['findAll'](_0x516829);})[_0xd5e2('0x2b')](function(_0x262d29){_0x3b21f2[_0xd5e2('0x53')]=_0x262d29;return _0x3b21f2;});}})[_0xd5e2('0x2b')](respondWithFilteredResult(_0x60da6,_0x516829))[_0xd5e2('0x54')](handleError(_0x60da6,null));};exports[_0xd5e2('0x70')]=function(_0x2f93c9,_0x53c47d,_0x366c7f){var _0x1895cd={'raw':!![],'where':{}};var _0x2d8c5c={};var _0x195ad2={'count':0x0,'rows':[]};return db[_0xd5e2('0x3f')][_0xd5e2('0x68')]({'where':{'id':_0x2f93c9[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x53c47d,null))[_0xd5e2('0x2b')](function(_0x1c808d){if(_0x1c808d){_0x2d8c5c[_0xd5e2('0x43')]=_['keys'](db['CmHopperBlack'][_0xd5e2('0x40')]);_0x2d8c5c[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x2f93c9[_0xd5e2('0x44')]);_0x2d8c5c[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0x2d8c5c[_0xd5e2('0x43')],_0x2d8c5c['query']);_0x1895cd['attributes']=_['intersection'](_0x2d8c5c[_0xd5e2('0x43')],qs['fields'](_0x2f93c9[_0xd5e2('0x44')][_0xd5e2('0x48')]));_0x1895cd[_0xd5e2('0x47')]=_0x1895cd['attributes']['length']?_0x1895cd[_0xd5e2('0x47')]:_0x2d8c5c[_0xd5e2('0x43')];if(!_0x2f93c9[_0xd5e2('0x44')][_0xd5e2('0x69')]('nolimit')){_0x1895cd[_0xd5e2('0x23')]=qs[_0xd5e2('0x23')](_0x2f93c9['query'][_0xd5e2('0x23')]);_0x1895cd[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x2f93c9[_0xd5e2('0x44')][_0xd5e2('0x22')]);}_0x1895cd['order']=qs['sort'](_0x2f93c9[_0xd5e2('0x44')][_0xd5e2('0x4c')]);_0x1895cd[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_[_0xd5e2('0x4e')](_0x2f93c9[_0xd5e2('0x44')],_0x2d8c5c[_0xd5e2('0x4f')]));_0x1895cd['where'][_0xd5e2('0x6a')]=_0x1c808d['id'];if(_0x2f93c9['query'][_0xd5e2('0x31')]){_0x1895cd['where']=_[_0xd5e2('0x57')](_0x1895cd['where'],{'$or':_[_0xd5e2('0x33')](_0x1895cd[_0xd5e2('0x47')],function(_0x30cdd3){var _0x472097={};_0x472097[_0x30cdd3]={'$like':'%'+_0x2f93c9[_0xd5e2('0x44')]['filter']+'%'};return _0x472097;})});}_0x1895cd=_[_0xd5e2('0x57')]({},_0x1895cd,_0x2f93c9[_0xd5e2('0x61')]);return db['CmHopperBlack']['count']({'where':_0x1895cd['where']})[_0xd5e2('0x2b')](function(_0x2e6209){_0x195ad2[_0xd5e2('0x25')]=_0x2e6209;if(_0x2f93c9[_0xd5e2('0x44')][_0xd5e2('0x60')]){_0x1895cd['include']=[{'all':!![]}];}return db[_0xd5e2('0x71')][_0xd5e2('0x52')](_0x1895cd);})[_0xd5e2('0x2b')](function(_0x5bce17){_0x195ad2['rows']=_0x5bce17;return _0x195ad2;});}})[_0xd5e2('0x2b')](respondWithFilteredResult(_0x53c47d,_0x1895cd))[_0xd5e2('0x54')](handleError(_0x53c47d,null));};exports[_0xd5e2('0x72')]=function(_0x1a1a39,_0x37d18c,_0x303106){var _0x4df2f1={};var _0x4d1226={};var _0x55c6e6;var _0x4662e5;return db['VoiceQueue'][_0xd5e2('0x68')]({'where':{'id':_0x1a1a39['params']['id']}})['then'](handleEntityNotFound(_0x37d18c,null))[_0xd5e2('0x2b')](function(_0x4676bf){if(_0x4676bf){_0x55c6e6=_0x4676bf;_0x4d1226[_0xd5e2('0x43')]=_[_0xd5e2('0x45')](db[_0xd5e2('0x73')][_0xd5e2('0x40')]);_0x4d1226[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x1a1a39[_0xd5e2('0x44')]);_0x4d1226[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0x4d1226[_0xd5e2('0x43')],_0x4d1226[_0xd5e2('0x44')]);_0x4df2f1['attributes']=_[_0xd5e2('0x46')](_0x4d1226[_0xd5e2('0x43')],qs[_0xd5e2('0x48')](_0x1a1a39['query'][_0xd5e2('0x48')]));_0x4df2f1[_0xd5e2('0x47')]=_0x4df2f1['attributes'][_0xd5e2('0x49')]?_0x4df2f1['attributes']:_0x4d1226[_0xd5e2('0x43')];_0x4df2f1[_0xd5e2('0x4b')]=qs[_0xd5e2('0x4c')](_0x1a1a39[_0xd5e2('0x44')][_0xd5e2('0x4c')]);_0x4df2f1[_0xd5e2('0x4d')]=qs['filters'](_['pick'](_0x1a1a39[_0xd5e2('0x44')],_0x4d1226[_0xd5e2('0x4f')]));if(_0x1a1a39['query'][_0xd5e2('0x31')]){_0x4df2f1['where']=_[_0xd5e2('0x57')](_0x4df2f1[_0xd5e2('0x4d')],{'$or':_['map'](_0x4df2f1[_0xd5e2('0x47')],function(_0x59d4f0){var _0x6a6448={};_0x6a6448[_0x59d4f0]={'$like':'%'+_0x1a1a39[_0xd5e2('0x44')][_0xd5e2('0x31')]+'%'};return _0x6a6448;})});}_0x4df2f1=_['merge']({},_0x4df2f1,_0x1a1a39[_0xd5e2('0x61')]);return _0x55c6e6[_0xd5e2('0x72')](_0x4df2f1);}})[_0xd5e2('0x2b')](function(_0x17389f){if(_0x17389f){_0x4662e5=_0x17389f[_0xd5e2('0x49')];if(!_0x1a1a39[_0xd5e2('0x44')][_0xd5e2('0x69')](_0xd5e2('0x4a'))){_0x4df2f1[_0xd5e2('0x23')]=qs['limit'](_0x1a1a39[_0xd5e2('0x44')][_0xd5e2('0x23')]);_0x4df2f1[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x1a1a39[_0xd5e2('0x44')][_0xd5e2('0x22')]);}return _0x55c6e6[_0xd5e2('0x72')](_0x4df2f1);}})[_0xd5e2('0x2b')](function(_0x103e4f){if(_0x103e4f){return _0x103e4f?{'count':_0x4662e5,'rows':_0x103e4f}:null;}})[_0xd5e2('0x2b')](respondWithResult(_0x37d18c,null))[_0xd5e2('0x54')](handleError(_0x37d18c,null));};exports[_0xd5e2('0x74')]=function(_0x348f73,_0xc0b24d,_0x5455e3){var _0x3b4b6b=_0x348f73[_0xd5e2('0x59')][_0xd5e2('0x75')];var _0x574507=_[_0xd5e2('0x33')](_0x3b4b6b,'id');return db['Team'][_0xd5e2('0x52')]({'where':{'id':_0x574507},'attributes':['id'],'include':[{'model':db[_0xd5e2('0x76')],'as':'Agents','attributes':['id',_0xd5e2('0x38'),'online','voicePause',_0xd5e2('0x77')],'raw':!![]}]})[_0xd5e2('0x2b')](function(_0x42f901){if(_0x42f901){var _0x2e2516=_[_0xd5e2('0x78')](_0x42f901,function(_0x10d357){var _0x5ab575=_0x10d357[_0xd5e2('0x2c')]({'plain':!![]});_0x5ab575[_0xd5e2('0x79')][_0xd5e2('0x7a')](function(_0x38bd49){_0x38bd49[_0xd5e2('0x7b')]=_[_0xd5e2('0x36')](_0x3b4b6b,{'id':_0x5ab575['id']})[_0xd5e2('0x7b')];});return _0x5ab575[_0xd5e2('0x79')];});return db['VoiceQueue']['find']({'where':{'id':_0x348f73['params']['id']}})[_0xd5e2('0x2b')](function(_0x4d9285){return db['sequelize'][_0xd5e2('0x7c')](function(_0x5bebf1){return _0x4d9285[_0xd5e2('0x74')](_0x574507,{'transaction':_0x5bebf1})[_0xd5e2('0x2b')](function(){return BPromise['each'](_0x3b4b6b,function(_0x3fb83f){return db[_0xd5e2('0x7d')][_0xd5e2('0x7e')]({'TeamId':_0x3fb83f['id'],'VoiceQueueId':_0x348f73[_0xd5e2('0x56')]['id'],'penalty':_0x3fb83f[_0xd5e2('0x7b')]},{'transaction':_0x5bebf1});});})[_0xd5e2('0x2b')](function(){return BPromise['each'](_0x2e2516,function(_0x6045d6){return db[_0xd5e2('0x7f')][_0xd5e2('0x80')]({'where':{'UserId':_0x6045d6['id'],'VoiceQueueId':_0x348f73[_0xd5e2('0x56')]['id']},'defaults':{'penalty':_0x6045d6['penalty']},'transaction':_0x5bebf1});});})['then'](function(){return BPromise['each'](_[_0xd5e2('0x31')](_0x2e2516,{'online':!![]}),function(_0x1cb3c6){return db['UserVoiceQueueRt'][_0xd5e2('0x7e')]({'membername':_0x1cb3c6[_0xd5e2('0x38')],'UserId':_0x1cb3c6['id'],'queue_name':_0x4d9285['name'],'VoiceQueueId':_0x4d9285['id'],'interface':_[_0xd5e2('0x81')](_0x1cb3c6['interface'])?util['format']('SIP/%s',_0x1cb3c6['name']):_0x1cb3c6[_0xd5e2('0x77')],'paused':_0x1cb3c6['voicePause']||![],'penalty':_0x1cb3c6['penalty']},{'transaction':_0x5bebf1});});})[_0xd5e2('0x2b')](function(){_0x2e2516[_0xd5e2('0x7a')](function(_0x515c4b){socket[_0xd5e2('0x82')]('userVoiceQueue:save',{'UserId':_0x515c4b['id'],'VoiceQueueId':_0x4d9285['id']});});});});});}})[_0xd5e2('0x2b')](respondWithStatusCode(_0xc0b24d,null))[_0xd5e2('0x54')](handleError(_0xc0b24d,null));};exports[_0xd5e2('0x83')]=function(_0x3f7fe1,_0x31eeac,_0x34a62d){return db[_0xd5e2('0x73')][_0xd5e2('0x52')]({'where':{'id':_0x3f7fe1[_0xd5e2('0x44')][_0xd5e2('0x84')]},'attributes':['id'],'include':[{'model':db[_0xd5e2('0x76')],'as':_0xd5e2('0x79'),'attributes':['id'],'raw':!![]}]})[_0xd5e2('0x2b')](handleEntityNotFound(_0x31eeac,null))[_0xd5e2('0x2b')](function(_0x21d0bb){var _0x53a535=_[_0xd5e2('0x33')](_0x21d0bb,'id');var _0xdb095f=[];var _0x4ca4f3=[];var _0x1f4ef9=squel[_0xd5e2('0x85')]();_0x1f4ef9[_0xd5e2('0x86')]('tq.TeamId')[_0xd5e2('0x87')](_0xd5e2('0x88'),'tq')[_0xd5e2('0x89')](_0xd5e2('0x8a'),'ut',_0xd5e2('0x8b'))['where']('VoiceQueueId\x20=\x20?',_0x3f7fe1[_0xd5e2('0x56')]['id']);for(var _0xeb834c=0x0;_0xeb834c<_0x21d0bb['length'];_0xeb834c+=0x1){let _0x2d951c=_0x21d0bb[_0xeb834c];for(var _0x2aa44a=0x0;_0x2aa44a<_0x2d951c[_0xd5e2('0x79')][_0xd5e2('0x49')];_0x2aa44a+=0x1){let _0x468afc=_0x2d951c['Agents'][_0x2aa44a];var _0x11af60=_0x1f4ef9[_0xd5e2('0x5f')]();_0x11af60[_0xd5e2('0x4d')](_0xd5e2('0x8c'),_0x468afc['id']);_0x4ca4f3[_0xd5e2('0x8d')](db['sequelize'][_0xd5e2('0x44')](_0x11af60['toString'](),{'type':db[_0xd5e2('0x8e')][_0xd5e2('0x8f')][_0xd5e2('0x90')]})[_0xd5e2('0x2b')](function(_0x2956d6){if(_0x2956d6['length']===0x1){return _0x468afc['id'];}else{var _0x2960a3=_[_0xd5e2('0x91')](_[_0xd5e2('0x33')](_0x2956d6,'TeamId'),function(_0x4190ac){return _[_0xd5e2('0x35')](_0x53a535,_0x4190ac);});if(_0x2960a3){return _0x468afc['id'];}}}));}}return BPromise[_0xd5e2('0x92')](_0x4ca4f3)[_0xd5e2('0x2b')](function(_0x2426d6){_0xdb095f=_(_0xdb095f)[_0xd5e2('0x93')](_0x2426d6)['compact']()['value']();return db[_0xd5e2('0x3f')][_0xd5e2('0x36')]({'where':{'id':_0x3f7fe1[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](function(_0x4f13d0){return db[_0xd5e2('0x8e')][_0xd5e2('0x7c')](function(_0x3fd746){return _0x4f13d0[_0xd5e2('0x83')](_0x3f7fe1[_0xd5e2('0x44')][_0xd5e2('0x84')],{'transaction':_0x3fd746})['then'](function(){if(!_[_0xd5e2('0x94')](_0xdb095f)){return _0x4f13d0['removeAgents'](_0xdb095f,{'transaction':_0x3fd746})['then'](function(){return db[_0xd5e2('0x95')]['destroy']({'where':{'VoiceQueueId':_0x3f7fe1[_0xd5e2('0x56')]['id'],'UserId':_0xdb095f},'transaction':_0x3fd746});});}})[_0xd5e2('0x2b')](function(){_0xdb095f[_0xd5e2('0x7a')](function(_0x4efc05){socket[_0xd5e2('0x82')](_0xd5e2('0x96'),{'UserId':_0x4efc05,'VoiceQueueId':_0x4f13d0['id']});});});});});});})['then'](respondWithStatusCode(_0x31eeac,null))['catch'](handleError(_0x31eeac,null));};exports[_0xd5e2('0x97')]=function(_0x225ef3,_0x5c5d2e,_0x3dba92){var _0x5a8dc1,_0x29ece4;return db[_0xd5e2('0x3f')][_0xd5e2('0x36')]({'where':{'id':_0x225ef3[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x5c5d2e,null))[_0xd5e2('0x2b')](function(_0x438e78){if(_0x438e78){_0x29ece4=_0x438e78;return _0x438e78['addAgents'](_0x225ef3['body']['ids'],_[_0xd5e2('0x62')](_0x225ef3[_0xd5e2('0x59')],[_0xd5e2('0x84'),'id'])||{})['spread'](function(_0x22e5d5){for(var _0x430685=0x0;_0x430685<_0x225ef3[_0xd5e2('0x59')][_0xd5e2('0x84')][_0xd5e2('0x49')];_0x430685+=0x1){socket['emit'](_0xd5e2('0x98'),{'UserId':Number(_0x225ef3[_0xd5e2('0x59')]['ids'][_0x430685]),'VoiceQueueId':Number(_0x225ef3[_0xd5e2('0x56')]['id'])});}return _0x22e5d5;});}})[_0xd5e2('0x2b')](function(_0x48343a){_0x5a8dc1=_0x48343a||[];if(_0x29ece4){return db[_0xd5e2('0x76')][_0xd5e2('0x52')]({'where':{'id':_0x225ef3[_0xd5e2('0x59')][_0xd5e2('0x84')]},'attributes':['id',_0xd5e2('0x38'),_0xd5e2('0x99'),_0xd5e2('0x9a'),_0xd5e2('0x77')],'raw':!![]});}})['then'](function(_0x3df604){if(!_[_0xd5e2('0x94')](_0x3df604)){var _0x2c0ce6=[];for(var _0x3e3191=0x0;_0x3e3191<_0x3df604[_0xd5e2('0x49')];_0x3e3191++){if(_0x3df604[_0x3e3191][_0xd5e2('0x99')]){_0x2c0ce6[_0xd5e2('0x8d')](db['UserVoiceQueueRt'][_0xd5e2('0x7e')]({'membername':_0x3df604[_0x3e3191][_0xd5e2('0x38')],'UserId':_0x3df604[_0x3e3191]['id'],'queue_name':_0x29ece4[_0xd5e2('0x38')],'VoiceQueueId':_0x29ece4['id'],'interface':_[_0xd5e2('0x81')](_0x3df604[_0x3e3191][_0xd5e2('0x77')])?util['format'](_0xd5e2('0x9b'),_0x3df604[_0x3e3191][_0xd5e2('0x38')]):_0x3df604[_0x3e3191][_0xd5e2('0x77')],'paused':_0x3df604[_0x3e3191][_0xd5e2('0x9a')]||![],'penalty':_0x225ef3[_0xd5e2('0x59')][_0xd5e2('0x7b')]||0x0}));}}return BPromise[_0xd5e2('0x92')](_0x2c0ce6);}})[_0xd5e2('0x2b')](function(){return _0x5a8dc1;})['then'](respondWithResult(_0x5c5d2e,null))[_0xd5e2('0x54')](handleError(_0x5c5d2e,null));};exports[_0xd5e2('0x9c')]=function(_0xf15b00,_0x437302,_0x5c96ad){return db['VoiceQueue'][_0xd5e2('0x36')]({'where':{'id':_0xf15b00[_0xd5e2('0x56')]['id']}})['then'](handleEntityNotFound(_0x437302,null))[_0xd5e2('0x2b')](function(_0x748015){if(_0x748015){return _0x748015['removeAgents'](_0xf15b00[_0xd5e2('0x44')]['ids'])[_0xd5e2('0x2b')](function(){if(_[_0xd5e2('0x9d')](_0xf15b00['query']['ids'])){for(var _0x19e3b4=0x0;_0x19e3b4<_0xf15b00[_0xd5e2('0x44')]['ids'][_0xd5e2('0x49')];_0x19e3b4+=0x1){socket['emit'](_0xd5e2('0x96'),{'UserId':Number(_0xf15b00[_0xd5e2('0x44')][_0xd5e2('0x84')][_0x19e3b4]),'VoiceQueueId':Number(_0xf15b00[_0xd5e2('0x56')]['id'])});}}else{socket[_0xd5e2('0x82')](_0xd5e2('0x96'),{'UserId':Number(_0xf15b00[_0xd5e2('0x44')][_0xd5e2('0x84')]),'VoiceQueueId':Number(_0xf15b00['params']['id'])});}});}})[_0xd5e2('0x2b')](function(_0x5967c5){return db['UserVoiceQueueRt'][_0xd5e2('0x3a')]({'where':{'VoiceQueueId':_0xf15b00[_0xd5e2('0x56')]['id'],'UserId':_0xf15b00[_0xd5e2('0x44')][_0xd5e2('0x84')]}})[_0xd5e2('0x2b')](function(){return _0x5967c5;});})['then'](respondWithStatusCode(_0x437302,null))[_0xd5e2('0x54')](handleError(_0x437302,null));};exports[_0xd5e2('0x9e')]=function(_0x456544,_0x408c19,_0x224f81){var _0x481bde={};var _0x59e934={};var _0x137471;var _0x5f5bc5;return db['VoiceQueue'][_0xd5e2('0x68')]({'where':{'id':_0x456544[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x408c19,null))[_0xd5e2('0x2b')](function(_0xf96a84){if(_0xf96a84){_0x137471=_0xf96a84;_0x59e934[_0xd5e2('0x43')]=_[_0xd5e2('0x45')](db[_0xd5e2('0x76')]['rawAttributes']);_0x59e934['query']=_[_0xd5e2('0x45')](_0x456544[_0xd5e2('0x44')]);_0x59e934['filters']=_[_0xd5e2('0x46')](_0x59e934[_0xd5e2('0x43')],_0x59e934[_0xd5e2('0x44')]);_0x481bde[_0xd5e2('0x47')]=_['intersection'](_0x59e934[_0xd5e2('0x43')],qs['fields'](_0x456544['query']['fields']));_0x481bde['attributes']=_0x481bde['attributes'][_0xd5e2('0x49')]?_0x481bde[_0xd5e2('0x47')]:_0x59e934[_0xd5e2('0x43')];_0x481bde[_0xd5e2('0x4b')]=qs[_0xd5e2('0x4c')](_0x456544['query'][_0xd5e2('0x4c')]);_0x481bde[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_[_0xd5e2('0x4e')](_0x456544[_0xd5e2('0x44')],_0x59e934[_0xd5e2('0x4f')]));if(_0x456544[_0xd5e2('0x44')][_0xd5e2('0x31')]){_0x481bde['where']=_['merge'](_0x481bde[_0xd5e2('0x4d')],{'$or':_['map'](_0x481bde[_0xd5e2('0x47')],function(_0x3132f1){var _0x16000e={};_0x16000e[_0x3132f1]={'$like':'%'+_0x456544['query'][_0xd5e2('0x31')]+'%'};return _0x16000e;})});}_0x481bde=_[_0xd5e2('0x57')]({},_0x481bde,_0x456544['options']);return _0x137471['getAgents'](_0x481bde);}})['then'](function(_0x3a6ed6){if(_0x3a6ed6){_0x5f5bc5=_0x3a6ed6['length'];if(!_0x456544[_0xd5e2('0x44')][_0xd5e2('0x69')](_0xd5e2('0x4a'))){_0x481bde[_0xd5e2('0x23')]=qs[_0xd5e2('0x23')](_0x456544[_0xd5e2('0x44')]['limit']);_0x481bde[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x456544[_0xd5e2('0x44')][_0xd5e2('0x22')]);}return _0x137471[_0xd5e2('0x9e')](_0x481bde);}})[_0xd5e2('0x2b')](function(_0x7bda70){if(_0x7bda70){return _0x7bda70?{'count':_0x5f5bc5,'rows':_0x7bda70}:null;}})[_0xd5e2('0x2b')](respondWithResult(_0x408c19,null))['catch'](handleError(_0x408c19,null));};exports['getMembers']=function(_0x4d9118,_0x432b5d,_0x23fd50){var _0x3703f7={};var _0x3df9e3={};var _0x49a968;var _0x428594;return db[_0xd5e2('0x3f')][_0xd5e2('0x68')]({'where':{'id':_0x4d9118[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x432b5d,null))[_0xd5e2('0x2b')](function(_0xd97109){if(_0xd97109){_0x49a968=_0xd97109;_0x3df9e3[_0xd5e2('0x43')]=_['keys'](db[_0xd5e2('0x95')][_0xd5e2('0x40')]);_0x3df9e3[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x4d9118[_0xd5e2('0x44')]);_0x3df9e3['filters']=_[_0xd5e2('0x46')](_0x3df9e3['model'],_0x3df9e3[_0xd5e2('0x44')]);_0x3703f7[_0xd5e2('0x47')]=_[_0xd5e2('0x46')](_0x3df9e3[_0xd5e2('0x43')],qs[_0xd5e2('0x48')](_0x4d9118[_0xd5e2('0x44')][_0xd5e2('0x48')]));_0x3703f7[_0xd5e2('0x47')]=_0x3703f7['attributes'][_0xd5e2('0x49')]?_0x3703f7[_0xd5e2('0x47')]:_0x3df9e3[_0xd5e2('0x43')];_0x3703f7[_0xd5e2('0x4b')]=qs[_0xd5e2('0x4c')](_0x4d9118[_0xd5e2('0x44')][_0xd5e2('0x4c')]);_0x3703f7[_0xd5e2('0x4d')]=qs['filters'](_[_0xd5e2('0x4e')](_0x4d9118['query'],_0x3df9e3[_0xd5e2('0x4f')]));if(_0x4d9118[_0xd5e2('0x44')][_0xd5e2('0x31')]){_0x3703f7[_0xd5e2('0x4d')]=_[_0xd5e2('0x57')](_0x3703f7[_0xd5e2('0x4d')],{'$or':_['map'](_0x3703f7[_0xd5e2('0x47')],function(_0x238a1f){var _0x5dc63f={};_0x5dc63f[_0x238a1f]={'$like':'%'+_0x4d9118[_0xd5e2('0x44')][_0xd5e2('0x31')]+'%'};return _0x5dc63f;})});}_0x3703f7=_[_0xd5e2('0x57')]({},_0x3703f7,_0x4d9118[_0xd5e2('0x61')]);return _0x49a968[_0xd5e2('0x9f')](_0x3703f7);}})[_0xd5e2('0x2b')](function(_0x29fcc9){if(_0x29fcc9){_0x428594=_0x29fcc9[_0xd5e2('0x49')];if(!_0x4d9118['query'][_0xd5e2('0x69')](_0xd5e2('0x4a'))){_0x3703f7['limit']=qs['limit'](_0x4d9118[_0xd5e2('0x44')][_0xd5e2('0x23')]);_0x3703f7[_0xd5e2('0x22')]=qs['offset'](_0x4d9118[_0xd5e2('0x44')][_0xd5e2('0x22')]);}return _0x49a968[_0xd5e2('0x9f')](_0x3703f7);}})[_0xd5e2('0x2b')](function(_0x3ce6a0){return _0x3ce6a0?{'count':_0x428594,'rows':_0x3ce6a0}:null;})[_0xd5e2('0x2b')](respondWithResult(_0x432b5d,null))[_0xd5e2('0x54')](handleError(_0x432b5d,null));};exports['getLists']=function(_0x252693,_0x5458c9,_0x34a3e2){var _0x50e7de={};var _0x3a2aa8={};var _0x565561;var _0x5012b7;return db[_0xd5e2('0x3f')][_0xd5e2('0x68')]({'where':{'id':_0x252693['params']['id']}})['then'](handleEntityNotFound(_0x5458c9,null))[_0xd5e2('0x2b')](function(_0x7cdeb7){if(_0x7cdeb7){_0x565561=_0x7cdeb7;_0x3a2aa8['model']=_['keys'](db[_0xd5e2('0xa0')][_0xd5e2('0x40')]);_0x3a2aa8[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x252693['query']);_0x3a2aa8[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0x3a2aa8['model'],_0x3a2aa8[_0xd5e2('0x44')]);_0x50e7de[_0xd5e2('0x47')]=_['intersection'](_0x3a2aa8['model'],qs[_0xd5e2('0x48')](_0x252693['query']['fields']));_0x50e7de[_0xd5e2('0x47')]=_0x50e7de[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x50e7de['attributes']:_0x3a2aa8['model'];_0x50e7de['order']=qs[_0xd5e2('0x4c')](_0x252693['query'][_0xd5e2('0x4c')]);_0x50e7de[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_['pick'](_0x252693[_0xd5e2('0x44')],_0x3a2aa8['filters']));if(_0x252693['query']['filter']){_0x50e7de['where']=_[_0xd5e2('0x57')](_0x50e7de['where'],{'$or':_[_0xd5e2('0x33')](_0x50e7de[_0xd5e2('0x47')],function(_0x37b168){var _0x5a93db={};_0x5a93db[_0x37b168]={'$like':'%'+_0x252693['query']['filter']+'%'};return _0x5a93db;})});}_0x50e7de=_[_0xd5e2('0x57')]({},_0x50e7de,_0x252693[_0xd5e2('0x61')]);return _0x565561[_0xd5e2('0xa1')](_0x50e7de);}})[_0xd5e2('0x2b')](function(_0x35eba2){if(_0x35eba2){_0x5012b7=_0x35eba2[_0xd5e2('0x49')];if(!_0x252693[_0xd5e2('0x44')][_0xd5e2('0x69')](_0xd5e2('0x4a'))){_0x50e7de[_0xd5e2('0x23')]=qs[_0xd5e2('0x23')](_0x252693[_0xd5e2('0x44')]['limit']);_0x50e7de[_0xd5e2('0x22')]=qs[_0xd5e2('0x22')](_0x252693[_0xd5e2('0x44')][_0xd5e2('0x22')]);}return _0x565561[_0xd5e2('0xa1')](_0x50e7de);}})[_0xd5e2('0x2b')](function(_0x1b4ffb){if(_0x1b4ffb){return _0x1b4ffb?{'count':_0x5012b7,'rows':_0x1b4ffb}:null;}})[_0xd5e2('0x2b')](respondWithResult(_0x5458c9,null))[_0xd5e2('0x54')](handleError(_0x5458c9,null));};exports[_0xd5e2('0xa2')]=function(_0x431261,_0x15c6e3,_0x886166){var _0x59b0b7,_0x1ba02a;return db[_0xd5e2('0x3f')]['find']({'where':{'id':_0x431261[_0xd5e2('0x56')]['id']}})['then'](handleEntityNotFound(_0x15c6e3,null))[_0xd5e2('0x2b')](function(_0x376a54){if(_0x376a54){_0x1ba02a=_0x376a54;return _0x376a54[_0xd5e2('0xa2')](_0x431261[_0xd5e2('0x59')][_0xd5e2('0x84')],_[_0xd5e2('0x62')](_0x431261[_0xd5e2('0x59')],[_0xd5e2('0x84'),'id'])||{});}return null;})['spread'](function(_0x216af4){var _0x436b73;_0x59b0b7=_0x216af4||[];var _0x94fed=[];if(_0x216af4){for(var _0x5a3d29=0x0;_0x5a3d29<_0x216af4[_0xd5e2('0x49')];_0x5a3d29+=0x1){var _0x3f55c5=_0x216af4[_0x5a3d29]['get']({'plain':!![]});_0x1ba02a[_0xd5e2('0xa3')]=_0x431261[_0xd5e2('0x59')][_0xd5e2('0xa3')]?_0x431261[_0xd5e2('0x59')]['dialCheckDuplicateType']:_0x1ba02a[_0xd5e2('0xa3')];switch(_0x1ba02a[_0xd5e2('0xa3')]){case _0xd5e2('0xa4'):_0x436b73=squel[_0xd5e2('0xa5')]()['into'](_0xd5e2('0xa6'))[_0xd5e2('0xa7')]([_0xd5e2('0xa8'),'scheduledAt',_0xd5e2('0xa9'),_0xd5e2('0xaa'),_0xd5e2('0x6a'),_0xd5e2('0x63'),_0xd5e2('0x64')],squel[_0xd5e2('0x85')]()[_0xd5e2('0x86')]('phone',_0xd5e2('0xa8'))[_0xd5e2('0x86')](_0xd5e2('0xab'),_0xd5e2('0xac'))[_0xd5e2('0x86')]('id',_0xd5e2('0xa9'))[_0xd5e2('0x86')](_0x3f55c5[_0xd5e2('0xad')][_0xd5e2('0xae')](),_0xd5e2('0xaa'))[_0xd5e2('0x86')](_0x431261[_0xd5e2('0x56')]['id'][_0xd5e2('0xae')](),'VoiceQueueId')[_0xd5e2('0x86')]('NOW()','createdAt')[_0xd5e2('0x86')]('NOW()',_0xd5e2('0x64'))[_0xd5e2('0x87')](_0xd5e2('0xaf'))['where'](_0xd5e2('0xb0'))['where'](_0xd5e2('0xb1'),_0x3f55c5[_0xd5e2('0xad')]['toString']())[_0xd5e2('0x4d')](_0xd5e2('0xb2'))[_0xd5e2('0x4d')](_0xd5e2('0xb3'),squel[_0xd5e2('0x85')]()[_0xd5e2('0x86')](_0xd5e2('0xb4'))[_0xd5e2('0x87')](_0xd5e2('0xb5'))['where'](_0xd5e2('0xb6'),_0x431261[_0xd5e2('0x56')]['id']['toString']()))[_0xd5e2('0x4d')](_0xd5e2('0xb3'),squel[_0xd5e2('0x85')]()[_0xd5e2('0x86')](_0xd5e2('0xb7'))[_0xd5e2('0x87')](_0xd5e2('0xa6'))[_0xd5e2('0x4d')]('VoiceQueueId\x20=\x20?',_0x431261[_0xd5e2('0x56')]['id'][_0xd5e2('0xae')]())))[_0xd5e2('0xae')]();break;case _0xd5e2('0xb8'):_0x436b73=squel[_0xd5e2('0xa5')]()['into']('cm_hopper')['fromQuery']([_0xd5e2('0xa8'),_0xd5e2('0xac'),_0xd5e2('0xa9'),_0xd5e2('0xaa'),_0xd5e2('0x6a'),_0xd5e2('0x63'),'updatedAt'],squel['select']()[_0xd5e2('0x86')](_0xd5e2('0xa8'),_0xd5e2('0xa8'))['field']('NOW()',_0xd5e2('0xac'))['field']('id',_0xd5e2('0xa9'))[_0xd5e2('0x86')](_0x3f55c5[_0xd5e2('0xad')][_0xd5e2('0xae')](),'ListId')['field'](_0x431261[_0xd5e2('0x56')]['id'][_0xd5e2('0xae')](),_0xd5e2('0x6a'))[_0xd5e2('0x86')]('NOW()',_0xd5e2('0x63'))[_0xd5e2('0x86')](_0xd5e2('0xab'),_0xd5e2('0x64'))['from'](_0xd5e2('0xaf'))['where'](_0xd5e2('0xb0'))[_0xd5e2('0x4d')](_0xd5e2('0xb1'),_0x3f55c5[_0xd5e2('0xad')][_0xd5e2('0xae')]())[_0xd5e2('0x4d')](_0xd5e2('0xb2'))[_0xd5e2('0x4d')]('phone\x20NOT\x20IN\x20(?)',squel[_0xd5e2('0x85')]()[_0xd5e2('0x86')](_0xd5e2('0xb7'))[_0xd5e2('0x87')](_0xd5e2('0xa6'))[_0xd5e2('0x4d')](_0xd5e2('0xb6'),_0x431261[_0xd5e2('0x56')]['id'][_0xd5e2('0xae')]())))[_0xd5e2('0xae')]();break;default:_0x436b73=squel['insert']()[_0xd5e2('0xb9')](_0xd5e2('0xa6'))[_0xd5e2('0xa7')]([_0xd5e2('0xa8'),'scheduledAt',_0xd5e2('0xa9'),_0xd5e2('0xaa'),'VoiceQueueId',_0xd5e2('0x63'),'updatedAt'],squel[_0xd5e2('0x85')]()[_0xd5e2('0x86')]('phone',_0xd5e2('0xa8'))['field'](_0xd5e2('0xab'),_0xd5e2('0xac'))['field']('id',_0xd5e2('0xa9'))['field'](_0x3f55c5[_0xd5e2('0xad')][_0xd5e2('0xae')](),_0xd5e2('0xaa'))['field'](_0x431261[_0xd5e2('0x56')]['id'][_0xd5e2('0xae')](),_0xd5e2('0x6a'))['field'](_0xd5e2('0xab'),_0xd5e2('0x63'))[_0xd5e2('0x86')]('NOW()',_0xd5e2('0x64'))[_0xd5e2('0x87')](_0xd5e2('0xaf'))[_0xd5e2('0x4d')](_0xd5e2('0xb0'))['where']('ListId\x20=\x20?',_0x3f55c5['CmListId'][_0xd5e2('0xae')]())[_0xd5e2('0x4d')](_0xd5e2('0xb2')))[_0xd5e2('0xae')]();}_0x94fed['push'](db[_0xd5e2('0x8e')]['query'](_0x436b73));}return BPromise[_0xd5e2('0x92')](_0x94fed);}})['then'](function(){return _0x59b0b7;})[_0xd5e2('0x2b')](respondWithResult(_0x15c6e3,null))['catch'](handleError(_0x15c6e3,null));};exports['removeLists']=function(_0x36e259,_0xb1ed7f,_0x126066){return db[_0xd5e2('0x3f')][_0xd5e2('0x36')]({'where':{'id':_0x36e259[_0xd5e2('0x56')]['id']}})['then'](handleEntityNotFound(_0xb1ed7f,null))['then'](function(_0x17e9f7){if(_0x17e9f7){return _0x17e9f7[_0xd5e2('0xba')](_0x36e259[_0xd5e2('0x44')][_0xd5e2('0x84')]);}})[_0xd5e2('0x2b')](function(_0x28d937){if(_0x28d937){return db[_0xd5e2('0x6b')][_0xd5e2('0x3a')]({'where':{'ListId':_0x36e259['query'][_0xd5e2('0x84')],'VoiceQueueId':_0x36e259['params']['id']}})['then'](function(){return _0x28d937;});}})['then'](respondWithStatusCode(_0xb1ed7f,null))['catch'](handleError(_0xb1ed7f,null));};exports['getBlackLists']=function(_0x21b7ce,_0x19341e,_0x301430){var _0x3ede15={};var _0x48c586={};var _0x916e9;var _0x3cd440;return db[_0xd5e2('0x3f')][_0xd5e2('0x68')]({'where':{'id':_0x21b7ce['params']['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x19341e,null))[_0xd5e2('0x2b')](function(_0x492125){if(_0x492125){_0x916e9=_0x492125;_0x48c586['model']=_['keys'](db[_0xd5e2('0xa0')][_0xd5e2('0x40')]);_0x48c586[_0xd5e2('0x44')]=_[_0xd5e2('0x45')](_0x21b7ce[_0xd5e2('0x44')]);_0x48c586[_0xd5e2('0x4f')]=_[_0xd5e2('0x46')](_0x48c586['model'],_0x48c586['query']);_0x3ede15['attributes']=_[_0xd5e2('0x46')](_0x48c586['model'],qs[_0xd5e2('0x48')](_0x21b7ce[_0xd5e2('0x44')][_0xd5e2('0x48')]));_0x3ede15[_0xd5e2('0x47')]=_0x3ede15[_0xd5e2('0x47')][_0xd5e2('0x49')]?_0x3ede15[_0xd5e2('0x47')]:_0x48c586[_0xd5e2('0x43')];_0x3ede15[_0xd5e2('0x4b')]=qs[_0xd5e2('0x4c')](_0x21b7ce[_0xd5e2('0x44')][_0xd5e2('0x4c')]);_0x3ede15[_0xd5e2('0x4d')]=qs[_0xd5e2('0x4f')](_[_0xd5e2('0x4e')](_0x21b7ce[_0xd5e2('0x44')],_0x48c586[_0xd5e2('0x4f')]));if(_0x21b7ce['query'][_0xd5e2('0x31')]){_0x3ede15[_0xd5e2('0x4d')]=_['merge'](_0x3ede15['where'],{'$or':_['map'](_0x3ede15[_0xd5e2('0x47')],function(_0x3358b3){var _0x4efab7={};_0x4efab7[_0x3358b3]={'$like':'%'+_0x21b7ce[_0xd5e2('0x44')][_0xd5e2('0x31')]+'%'};return _0x4efab7;})});}_0x3ede15=_['merge']({},_0x3ede15,_0x21b7ce[_0xd5e2('0x61')]);return _0x916e9['getBlackLists'](_0x3ede15);}})['then'](function(_0x59a40a){if(_0x59a40a){_0x3cd440=_0x59a40a['length'];if(!_0x21b7ce[_0xd5e2('0x44')][_0xd5e2('0x69')](_0xd5e2('0x4a'))){_0x3ede15[_0xd5e2('0x23')]=qs[_0xd5e2('0x23')](_0x21b7ce[_0xd5e2('0x44')][_0xd5e2('0x23')]);_0x3ede15['offset']=qs[_0xd5e2('0x22')](_0x21b7ce[_0xd5e2('0x44')][_0xd5e2('0x22')]);}return _0x916e9[_0xd5e2('0xbb')](_0x3ede15);}})[_0xd5e2('0x2b')](function(_0x1e77b5){if(_0x1e77b5){return _0x1e77b5?{'count':_0x3cd440,'rows':_0x1e77b5}:null;}})[_0xd5e2('0x2b')](respondWithResult(_0x19341e,null))[_0xd5e2('0x54')](handleError(_0x19341e,null));};exports['addBlackLists']=function(_0x15ad3a,_0x2fd414,_0x526674){var _0x363a00,_0x193697;return db['VoiceQueue']['find']({'where':{'id':_0x15ad3a[_0xd5e2('0x56')]['id']}})['then'](handleEntityNotFound(_0x2fd414,null))[_0xd5e2('0x2b')](function(_0x13562c){if(_0x13562c){_0x193697=_0x13562c;return _0x13562c['addBlackLists'](_0x15ad3a[_0xd5e2('0x59')][_0xd5e2('0x84')],_[_0xd5e2('0x62')](_0x15ad3a[_0xd5e2('0x59')],[_0xd5e2('0x84'),'id'])||{});}return null;})['spread'](function(_0x306d25){var _0x2a00d2;_0x363a00=_0x306d25||[];var _0x55812d=[];if(_0x306d25){for(var _0x423056=0x0;_0x423056<_0x306d25['length'];_0x423056+=0x1){var _0x432708=_0x306d25[_0x423056][_0xd5e2('0x2c')]({'plain':!![]});_0x2a00d2=squel[_0xd5e2('0xa5')]()['into']('cm_hopper_black')['fromQuery']([_0xd5e2('0xa8'),_0xd5e2('0xa9'),_0xd5e2('0xaa'),_0xd5e2('0x6a'),'createdAt',_0xd5e2('0x64')],squel[_0xd5e2('0x85')]()['field'](_0xd5e2('0xa8'),_0xd5e2('0xa8'))['field']('id',_0xd5e2('0xa9'))[_0xd5e2('0x86')](_0x432708[_0xd5e2('0xad')][_0xd5e2('0xae')](),_0xd5e2('0xaa'))[_0xd5e2('0x86')](_0x15ad3a['params']['id'][_0xd5e2('0xae')](),_0xd5e2('0x6a'))['field']('NOW()',_0xd5e2('0x63'))['field']('NOW()',_0xd5e2('0x64'))[_0xd5e2('0x87')](_0xd5e2('0xaf'))[_0xd5e2('0x4d')](_0xd5e2('0xb0'))[_0xd5e2('0x4d')](_0xd5e2('0xb1'),_0x432708[_0xd5e2('0xad')][_0xd5e2('0xae')]())[_0xd5e2('0x4d')](_0xd5e2('0xb2')))[_0xd5e2('0xae')]();_0x55812d[_0xd5e2('0x8d')](db['sequelize']['query'](_0x2a00d2));}return BPromise[_0xd5e2('0x92')](_0x55812d);}})[_0xd5e2('0x2b')](function(){return _0x363a00;})[_0xd5e2('0x2b')](respondWithResult(_0x2fd414,null))[_0xd5e2('0x54')](handleError(_0x2fd414,null));};exports['removeBlackLists']=function(_0x55e45e,_0x5ec887,_0x5522eb){return db[_0xd5e2('0x3f')][_0xd5e2('0x36')]({'where':{'id':_0x55e45e[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](handleEntityNotFound(_0x5ec887,null))[_0xd5e2('0x2b')](function(_0xb32c8){if(_0xb32c8){return _0xb32c8[_0xd5e2('0xbc')](_0x55e45e[_0xd5e2('0x44')][_0xd5e2('0x84')]);}})[_0xd5e2('0x2b')](function(_0x1989b4){if(_0x1989b4){return db[_0xd5e2('0x71')][_0xd5e2('0x3a')]({'where':{'ListId':_0x55e45e[_0xd5e2('0x44')][_0xd5e2('0x84')],'VoiceQueueId':_0x55e45e[_0xd5e2('0x56')]['id']}})[_0xd5e2('0x2b')](function(){return _0x1989b4;});}})['then'](respondWithStatusCode(_0x5ec887,null))['catch'](handleError(_0x5ec887,null));};
\ No newline at end of file
+var _0xcb21=['params','length','include','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','inbound','userProfileId','clone','omit','createdAt','updatedAt','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','findOne','CmHopper','VoiceQueueId','getHopperHistories','CmHopperHistory','getHopperFinals','CmHopperFinal','CmHopperBlack','Team','getTeams','teams','Agents','online','voicePause','flatMap','forEach','penalty','addTeams','each','TeamVoiceQueue','upsert','UserVoiceQueue','UserVoiceQueueRt','isNil','format','SIP/%s','emit','ids','User','select','field','tq.TeamId','from','team_has_voice_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','every','TeamId','all','compact','transaction','removeTeams','userVoiceQueue:remove','addAgents','userVoiceQueue:save','interface','isEmpty','removeAgents','isArray','getAgents','getMembers','getLists','addLists','dialCheckDuplicateType','always','insert','into','cm_hopper','fromQuery','phone','scheduledAt','ListId','NOW()','ContactId','CmListId','cm_contacts','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','phone\x20NOT\x20IN\x20(?)','COALESCE(phone,\x27\x27)','onlyIfOpen','deletedAt\x20IS\x20NULL','removeLists','getBlackLists','CmList','addBlackLists','spread','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','save','update','then','destroy','get','VoiceQueues','QueueCampaigns','outbound','ignore','map','value','includes','find','name','UserProfileResource','sendStatus','error','send','index','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoiceQueue','includeAll','findAll','rows','show'];(function(_0x50fc6a,_0x412fa3){var _0x31e10a=function(_0xc9acf){while(--_0xc9acf){_0x50fc6a['push'](_0x50fc6a['shift']());}};_0x31e10a(++_0x412fa3);}(_0xcb21,0x1de));var _0x1cb2=function(_0x4d65d1,_0x57c106){_0x4d65d1=_0x4d65d1-0x0;var _0x2e2c14=_0xcb21[_0x4d65d1];return _0x2e2c14;};'use strict';var emlformat=require(_0x1cb2('0x0'));var rimraf=require(_0x1cb2('0x1'));var zipdir=require(_0x1cb2('0x2'));var jsonpatch=require(_0x1cb2('0x3'));var rp=require(_0x1cb2('0x4'));var moment=require(_0x1cb2('0x5'));var BPromise=require(_0x1cb2('0x6'));var Mustache=require(_0x1cb2('0x7'));var util=require('util');var path=require(_0x1cb2('0x8'));var sox=require(_0x1cb2('0x9'));var csv=require(_0x1cb2('0xa'));var ejs=require(_0x1cb2('0xb'));var fs=require('fs');var fs_extra=require(_0x1cb2('0xc'));var _=require('lodash');var squel=require(_0x1cb2('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x1cb2('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x1cb2('0xf'));var Redis=require(_0x1cb2('0x10'));var authService=require(_0x1cb2('0x11'));var qs=require(_0x1cb2('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x1cb2('0x13'))(_0x1cb2('0x14'));var utils=require('../../config/utils');var config=require(_0x1cb2('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x1cb2('0x16'))['db'];config[_0x1cb2('0x17')]=_[_0x1cb2('0x18')](config['redis'],{'host':_0x1cb2('0x19'),'port':0x18eb});var socket=require(_0x1cb2('0x1a'))(new Redis(config['redis']));require('./voiceQueue.socket')[_0x1cb2('0x1b')](socket);function respondWithStatusCode(_0x500840,_0x39d829){_0x39d829=_0x39d829||0xcc;return function(_0x5a2d64){if(_0x5a2d64){return _0x500840['sendStatus'](_0x39d829);}return _0x500840[_0x1cb2('0x1c')](_0x39d829)[_0x1cb2('0x1d')]();};}function respondWithResult(_0x1868df,_0x568104){_0x568104=_0x568104||0xc8;return function(_0x566d79){if(_0x566d79){return _0x1868df[_0x1cb2('0x1c')](_0x568104)['json'](_0x566d79);}};}function respondWithFilteredResult(_0x630d9b,_0x4a5c29){return function(_0x5c3cd4){if(_0x5c3cd4){var _0xef1773=typeof _0x4a5c29[_0x1cb2('0x1e')]===_0x1cb2('0x1f')&&typeof _0x4a5c29[_0x1cb2('0x20')]==='undefined';var _0x79cfca=_0x5c3cd4['count'];var _0xfc46cd=_0xef1773?0x0:_0x4a5c29[_0x1cb2('0x1e')];var _0x16a37d=_0xef1773?_0x5c3cd4[_0x1cb2('0x21')]:_0x4a5c29['offset']+_0x4a5c29[_0x1cb2('0x20')];var _0x2bc260;if(_0x16a37d>=_0x79cfca){_0x16a37d=_0x79cfca;_0x2bc260=0xc8;}else{_0x2bc260=0xce;}_0x630d9b[_0x1cb2('0x1c')](_0x2bc260);return _0x630d9b[_0x1cb2('0x22')](_0x1cb2('0x23'),_0xfc46cd+'-'+_0x16a37d+'/'+_0x79cfca)[_0x1cb2('0x24')](_0x5c3cd4);}return null;};}function patchUpdates(_0x3d743b){return function(_0xe547b0){try{jsonpatch[_0x1cb2('0x25')](_0xe547b0,_0x3d743b,!![]);}catch(_0x53d514){return BPromise['reject'](_0x53d514);}return _0xe547b0[_0x1cb2('0x26')]();};}function saveUpdates(_0x150e10,_0x5a0ee0){return function(_0x249163){if(_0x249163){return _0x249163[_0x1cb2('0x27')](_0x150e10)[_0x1cb2('0x28')](function(_0x18e641){return _0x18e641;});}return null;};}function removeEntity(_0x4bd79a,_0x165e50){return function(_0x46505a){if(_0x46505a){return _0x46505a[_0x1cb2('0x29')]()['then'](function(){var _0x643cf9=_0x46505a[_0x1cb2('0x2a')]({'plain':!![]});var _0xa5f407=[{'name':_0x1cb2('0x2b'),'value':'inbound','ignore':![]},{'name':_0x1cb2('0x2c'),'value':_0x1cb2('0x2d'),'ignore':![]}];var _0x124b13=_(_0xa5f407)['filter'](_0x1cb2('0x2e'))[_0x1cb2('0x2f')](_0x1cb2('0x30'))['value']();if(_[_0x1cb2('0x31')](_0x124b13,_0x643cf9['type'])){return;}var _0x39bfe1=_[_0x1cb2('0x32')](_0xa5f407,[_0x1cb2('0x30'),_0x643cf9['type']])[_0x1cb2('0x33')];return db[_0x1cb2('0x34')][_0x1cb2('0x29')]({'where':{'type':_0x39bfe1,'resourceId':_0x643cf9['id']}})[_0x1cb2('0x28')](function(){return _0x46505a;});})[_0x1cb2('0x28')](function(){_0x4bd79a[_0x1cb2('0x1c')](0xcc)[_0x1cb2('0x1d')]();});}};}function handleEntityNotFound(_0x5dc2f,_0x444e0d){return function(_0x4139c2){if(!_0x4139c2){_0x5dc2f[_0x1cb2('0x35')](0x194);}return _0x4139c2;};}function handleError(_0x56e517,_0x536285){_0x536285=_0x536285||0x1f4;return function(_0x239b6c){logger[_0x1cb2('0x36')](_0x239b6c['stack']);if(_0x239b6c[_0x1cb2('0x33')]){delete _0x239b6c['name'];}_0x56e517['status'](_0x536285)[_0x1cb2('0x37')](_0x239b6c);};}exports[_0x1cb2('0x38')]=function(_0x2e3248,_0x2fb41e){var _0x256f2b={},_0x1000a0={},_0x14b373={'count':0x0,'rows':[]};var _0x37d217=_[_0x1cb2('0x2f')](db['VoiceQueue'][_0x1cb2('0x39')],function(_0x2cca9f){return{'name':_0x2cca9f[_0x1cb2('0x3a')],'type':_0x2cca9f[_0x1cb2('0x3b')][_0x1cb2('0x3c')]};});_0x1000a0['model']=_['map'](_0x37d217,_0x1cb2('0x33'));_0x1000a0['query']=_[_0x1cb2('0x3d')](_0x2e3248[_0x1cb2('0x3e')]);_0x1000a0[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x1000a0[_0x1cb2('0x41')],_0x1000a0[_0x1cb2('0x3e')]);_0x256f2b[_0x1cb2('0x42')]=_[_0x1cb2('0x40')](_0x1000a0[_0x1cb2('0x41')],qs[_0x1cb2('0x43')](_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x256f2b[_0x1cb2('0x42')]=_0x256f2b[_0x1cb2('0x42')]['length']?_0x256f2b[_0x1cb2('0x42')]:_0x1000a0[_0x1cb2('0x41')];if(!_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x44')](_0x1cb2('0x45'))){_0x256f2b[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x256f2b[_0x1cb2('0x1e')]=qs['offset'](_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x1e')]);}_0x256f2b[_0x1cb2('0x46')]=qs[_0x1cb2('0x47')](_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x47')]);_0x256f2b[_0x1cb2('0x48')]=qs[_0x1cb2('0x3f')](_[_0x1cb2('0x49')](_0x2e3248['query'],_0x1000a0[_0x1cb2('0x3f')]),_0x37d217);if(_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x4a')]){_0x256f2b[_0x1cb2('0x48')]=_[_0x1cb2('0x4b')](_0x256f2b[_0x1cb2('0x48')],{'$or':_[_0x1cb2('0x2f')](_0x37d217,function(_0x2f5931){if(_0x2f5931[_0x1cb2('0x3b')]!==_0x1cb2('0x4c')){var _0x11dc99={};_0x11dc99[_0x2f5931['name']]={'$like':'%'+_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x11dc99;}})});}_0x256f2b=_['merge']({},_0x256f2b,_0x2e3248[_0x1cb2('0x4d')]);var _0x274ded={'where':_0x256f2b[_0x1cb2('0x48')]};return db[_0x1cb2('0x4e')]['count'](_0x274ded)[_0x1cb2('0x28')](function(_0x984cb7){_0x14b373[_0x1cb2('0x21')]=_0x984cb7;if(_0x2e3248[_0x1cb2('0x3e')][_0x1cb2('0x4f')]){_0x256f2b['include']=[{'all':!![]}];}return db[_0x1cb2('0x4e')][_0x1cb2('0x50')](_0x256f2b);})[_0x1cb2('0x28')](function(_0x44aced){_0x14b373[_0x1cb2('0x51')]=_0x44aced;return _0x14b373;})[_0x1cb2('0x28')](respondWithFilteredResult(_0x2fb41e,_0x256f2b))['catch'](handleError(_0x2fb41e,null));};exports[_0x1cb2('0x52')]=function(_0x335994,_0x4d5bb9){var _0x32cc8f={'raw':![],'where':{'id':_0x335994[_0x1cb2('0x53')]['id']}},_0x3e2a47={};_0x3e2a47['model']=_[_0x1cb2('0x3d')](db['VoiceQueue'][_0x1cb2('0x39')]);_0x3e2a47['query']=_['keys'](_0x335994[_0x1cb2('0x3e')]);_0x3e2a47[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x3e2a47[_0x1cb2('0x41')],_0x3e2a47[_0x1cb2('0x3e')]);_0x32cc8f['attributes']=_[_0x1cb2('0x40')](_0x3e2a47['model'],qs[_0x1cb2('0x43')](_0x335994['query'][_0x1cb2('0x43')]));_0x32cc8f[_0x1cb2('0x42')]=_0x32cc8f[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x32cc8f[_0x1cb2('0x42')]:_0x3e2a47['model'];if(_0x335994[_0x1cb2('0x3e')][_0x1cb2('0x4f')]){_0x32cc8f[_0x1cb2('0x55')]=[{'all':!![]}];}_0x32cc8f=_[_0x1cb2('0x4b')]({},_0x32cc8f,_0x335994[_0x1cb2('0x4d')]);return db['VoiceQueue']['find'](_0x32cc8f)['then'](handleEntityNotFound(_0x4d5bb9,null))[_0x1cb2('0x28')](respondWithResult(_0x4d5bb9,null))[_0x1cb2('0x56')](handleError(_0x4d5bb9,null));};exports[_0x1cb2('0x57')]=function(_0x55d960,_0x56af7a){return db[_0x1cb2('0x4e')][_0x1cb2('0x57')](_0x55d960[_0x1cb2('0x58')],{})[_0x1cb2('0x28')](function(_0x4c953b){var _0x23a37e=_0x55d960[_0x1cb2('0x59')][_0x1cb2('0x2a')]({'plain':!![]});if(!_0x23a37e)throw new Error(_0x1cb2('0x5a'));if(_0x23a37e[_0x1cb2('0x5b')]===_0x1cb2('0x59')){var _0x343cb3=_0x4c953b[_0x1cb2('0x2a')]({'plain':!![]});var _0x301023=[{'name':'VoiceQueues','value':_0x1cb2('0x5c')},{'name':'QueueCampaigns','value':_0x1cb2('0x2d')}];var _0x334ce6=_[_0x1cb2('0x32')](_0x301023,[_0x1cb2('0x30'),_0x343cb3[_0x1cb2('0x3b')]])[_0x1cb2('0x33')];return db['UserProfileSection']['find']({'where':{'name':_0x334ce6,'userProfileId':_0x23a37e[_0x1cb2('0x5d')]},'raw':!![]})[_0x1cb2('0x28')](function(_0x278a68){if(_0x278a68&&_0x278a68['autoAssociation']===0x0){return db['UserProfileResource'][_0x1cb2('0x57')]({'name':_0x343cb3['name'],'resourceId':_0x343cb3['id'],'type':_0x278a68['name'],'sectionId':_0x278a68['id']},{})[_0x1cb2('0x28')](function(){return _0x4c953b;});}else{return _0x4c953b;}})[_0x1cb2('0x56')](function(_0x1ffbb9){logger[_0x1cb2('0x36')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1ffbb9);throw _0x1ffbb9;});}return _0x4c953b;})['then'](respondWithResult(_0x56af7a,0xc9))['catch'](handleError(_0x56af7a,null));};exports[_0x1cb2('0x5e')]=function(_0x4f33af,_0x4ca75e){var _0x4ef157={'where':{'id':_0x4f33af[_0x1cb2('0x53')]['id']}},_0x50abe2={};_0x50abe2['model']=_[_0x1cb2('0x3d')](db[_0x1cb2('0x4e')][_0x1cb2('0x39')]);_0x4ef157['attributes']=_[_0x1cb2('0x40')](_0x50abe2[_0x1cb2('0x41')],qs[_0x1cb2('0x43')](_0x4f33af['query'][_0x1cb2('0x43')]));_0x4ef157[_0x1cb2('0x42')]=_0x4ef157['attributes'][_0x1cb2('0x54')]?_0x4ef157['attributes']:_0x50abe2[_0x1cb2('0x41')];if(_0x4f33af['query'][_0x1cb2('0x4f')]){_0x4ef157[_0x1cb2('0x55')]=[{'all':!![]}];}_0x4ef157=_[_0x1cb2('0x4b')]({},_0x4ef157,_0x4f33af[_0x1cb2('0x4d')]);return db['VoiceQueue'][_0x1cb2('0x32')](_0x4ef157)[_0x1cb2('0x28')](handleEntityNotFound(_0x4ca75e,null))['then'](function(_0x180d16){if(_0x180d16){var _0x6b29e2=_0x180d16[_0x1cb2('0x2a')]({'plain':!![]});_0x6b29e2=qs[_0x1cb2('0x5f')](_0x6b29e2,['id',_0x1cb2('0x60'),_0x1cb2('0x61')]);_0x4f33af[_0x1cb2('0x58')]=_[_0x1cb2('0x5f')](_0x4f33af[_0x1cb2('0x58')],['id','createdAt',_0x1cb2('0x61')]);return db[_0x1cb2('0x4e')][_0x1cb2('0x57')](_['merge'](_0x6b29e2,_0x4f33af[_0x1cb2('0x58')]),{'include':_0x4f33af['query'][_0x1cb2('0x4f')]?[{'all':!![]}]:undefined})[_0x1cb2('0x28')](function(_0xbd515e){var _0x1d3f9e=_0x4f33af[_0x1cb2('0x59')][_0x1cb2('0x2a')]({'plain':!![]});if(!_0x1d3f9e)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1d3f9e[_0x1cb2('0x5b')]===_0x1cb2('0x59')){var _0xebf156=_0xbd515e[_0x1cb2('0x2a')]({'plain':!![]});var _0x4a4875=[{'name':_0x1cb2('0x2b'),'value':'inbound'},{'name':'QueueCampaigns','value':_0x1cb2('0x2d')}];var _0x584741=_[_0x1cb2('0x32')](_0x4a4875,[_0x1cb2('0x30'),_0xebf156[_0x1cb2('0x3b')]])[_0x1cb2('0x33')];return db['UserProfileSection'][_0x1cb2('0x32')]({'where':{'name':_0x584741,'userProfileId':_0x1d3f9e['userProfileId']},'raw':!![]})[_0x1cb2('0x28')](function(_0x3f5cb5){if(_0x3f5cb5&&_0x3f5cb5['autoAssociation']===0x0){return db[_0x1cb2('0x34')][_0x1cb2('0x57')]({'name':_0xebf156[_0x1cb2('0x33')],'resourceId':_0xebf156['id'],'type':_0x3f5cb5[_0x1cb2('0x33')],'sectionId':_0x3f5cb5['id']},{})[_0x1cb2('0x28')](function(){return _0xbd515e;});}else{return _0xbd515e;}})[_0x1cb2('0x56')](function(_0x594be1){logger['error'](_0x1cb2('0x62'),_0x594be1);throw _0x594be1;});}return _0xbd515e;});}})[_0x1cb2('0x28')](respondWithResult(_0x4ca75e,0xc9))[_0x1cb2('0x56')](handleError(_0x4ca75e,null));};exports[_0x1cb2('0x27')]=function(_0x1f1b5e,_0x5720a9){if(_0x1f1b5e[_0x1cb2('0x58')]['id']){delete _0x1f1b5e[_0x1cb2('0x58')]['id'];}return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x1f1b5e['params']['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x5720a9,null))[_0x1cb2('0x28')](saveUpdates(_0x1f1b5e['body'],null))[_0x1cb2('0x28')](respondWithResult(_0x5720a9,null))[_0x1cb2('0x56')](handleError(_0x5720a9,null));};exports[_0x1cb2('0x29')]=function(_0x566273,_0x297b87){return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x566273['params']['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x297b87,null))['then'](removeEntity(_0x297b87,null))[_0x1cb2('0x56')](handleError(_0x297b87,null));};exports['getHoppers']=function(_0xf2f0ed,_0x38e58b,_0x3b29d0){var _0x310f8d={'raw':![],'where':{}};var _0x8c3191={};var _0x50c34d={'count':0x0,'rows':[]};return db[_0x1cb2('0x4e')][_0x1cb2('0x63')]({'where':{'id':_0xf2f0ed['params']['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x38e58b,null))[_0x1cb2('0x28')](function(_0x415052){if(_0x415052){_0x8c3191[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0x64')][_0x1cb2('0x39')]);_0x8c3191[_0x1cb2('0x3e')]=_[_0x1cb2('0x3d')](_0xf2f0ed[_0x1cb2('0x3e')]);_0x8c3191[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x8c3191['model'],_0x8c3191[_0x1cb2('0x3e')]);_0x310f8d[_0x1cb2('0x42')]=_['intersection'](_0x8c3191[_0x1cb2('0x41')],qs[_0x1cb2('0x43')](_0xf2f0ed[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x310f8d['attributes']=_0x310f8d[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x310f8d[_0x1cb2('0x42')]:_0x8c3191[_0x1cb2('0x41')];if(!_0xf2f0ed['query'][_0x1cb2('0x44')](_0x1cb2('0x45'))){_0x310f8d[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0xf2f0ed[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x310f8d[_0x1cb2('0x1e')]=qs['offset'](_0xf2f0ed['query'][_0x1cb2('0x1e')]);}_0x310f8d[_0x1cb2('0x46')]=qs['sort'](_0xf2f0ed[_0x1cb2('0x3e')]['sort']);_0x310f8d[_0x1cb2('0x48')]=qs['filters'](_[_0x1cb2('0x49')](_0xf2f0ed['query'],_0x8c3191[_0x1cb2('0x3f')]));_0x310f8d[_0x1cb2('0x48')][_0x1cb2('0x65')]=_0x415052['id'];if(_0xf2f0ed[_0x1cb2('0x3e')][_0x1cb2('0x4a')]){_0x310f8d['where']=_[_0x1cb2('0x4b')](_0x310f8d[_0x1cb2('0x48')],{'$or':_[_0x1cb2('0x2f')](_0x310f8d[_0x1cb2('0x42')],function(_0x39dbef){var _0x135e64={};_0x135e64[_0x39dbef]={'$like':'%'+_0xf2f0ed[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x135e64;})});}_0x310f8d=_[_0x1cb2('0x4b')]({},_0x310f8d,_0xf2f0ed['options']);return db[_0x1cb2('0x64')]['count']({'where':_0x310f8d[_0x1cb2('0x48')]})[_0x1cb2('0x28')](function(_0x21b6e7){_0x50c34d['count']=_0x21b6e7;if(_0xf2f0ed[_0x1cb2('0x3e')][_0x1cb2('0x4f')]){_0x310f8d[_0x1cb2('0x55')]=[{'all':!![]}];}return db[_0x1cb2('0x64')][_0x1cb2('0x50')](_0x310f8d);})[_0x1cb2('0x28')](function(_0x55ccb1){_0x50c34d[_0x1cb2('0x51')]=_0x55ccb1;return _0x50c34d;});}})[_0x1cb2('0x28')](respondWithFilteredResult(_0x38e58b,_0x310f8d))[_0x1cb2('0x56')](handleError(_0x38e58b,null));};exports[_0x1cb2('0x66')]=function(_0x210ca7,_0xa0e9a1,_0x5b4df6){var _0x230577={'raw':!![],'where':{}};var _0x2f34b9={};var _0x3d3f3a={'count':0x0,'rows':[]};return db[_0x1cb2('0x4e')]['findOne']({'where':{'id':_0x210ca7[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0xa0e9a1,null))['then'](function(_0x8d4773){if(_0x8d4773){_0x2f34b9[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0x67')]['rawAttributes']);_0x2f34b9['query']=_[_0x1cb2('0x3d')](_0x210ca7[_0x1cb2('0x3e')]);_0x2f34b9[_0x1cb2('0x3f')]=_['intersection'](_0x2f34b9[_0x1cb2('0x41')],_0x2f34b9[_0x1cb2('0x3e')]);_0x230577[_0x1cb2('0x42')]=_[_0x1cb2('0x40')](_0x2f34b9[_0x1cb2('0x41')],qs[_0x1cb2('0x43')](_0x210ca7['query'][_0x1cb2('0x43')]));_0x230577[_0x1cb2('0x42')]=_0x230577[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x230577[_0x1cb2('0x42')]:_0x2f34b9[_0x1cb2('0x41')];if(!_0x210ca7['query']['hasOwnProperty'](_0x1cb2('0x45'))){_0x230577[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0x210ca7[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x230577[_0x1cb2('0x1e')]=qs['offset'](_0x210ca7[_0x1cb2('0x3e')][_0x1cb2('0x1e')]);}_0x230577[_0x1cb2('0x46')]=qs['sort'](_0x210ca7['query'][_0x1cb2('0x47')]);_0x230577['where']=qs[_0x1cb2('0x3f')](_[_0x1cb2('0x49')](_0x210ca7[_0x1cb2('0x3e')],_0x2f34b9[_0x1cb2('0x3f')]));_0x230577[_0x1cb2('0x48')][_0x1cb2('0x65')]=_0x8d4773['id'];if(_0x210ca7[_0x1cb2('0x3e')][_0x1cb2('0x4a')]){_0x230577['where']=_[_0x1cb2('0x4b')](_0x230577[_0x1cb2('0x48')],{'$or':_[_0x1cb2('0x2f')](_0x230577[_0x1cb2('0x42')],function(_0x269e41){var _0x4c0230={};_0x4c0230[_0x269e41]={'$like':'%'+_0x210ca7[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x4c0230;})});}_0x230577=_[_0x1cb2('0x4b')]({},_0x230577,_0x210ca7[_0x1cb2('0x4d')]);return db['CmHopperHistory'][_0x1cb2('0x21')]({'where':_0x230577[_0x1cb2('0x48')]})[_0x1cb2('0x28')](function(_0x409545){_0x3d3f3a[_0x1cb2('0x21')]=_0x409545;if(_0x210ca7['query'][_0x1cb2('0x4f')]){_0x230577[_0x1cb2('0x55')]=[{'all':!![]}];}return db[_0x1cb2('0x67')][_0x1cb2('0x50')](_0x230577);})[_0x1cb2('0x28')](function(_0x2e7f2c){_0x3d3f3a[_0x1cb2('0x51')]=_0x2e7f2c;return _0x3d3f3a;});}})['then'](respondWithFilteredResult(_0xa0e9a1,_0x230577))[_0x1cb2('0x56')](handleError(_0xa0e9a1,null));};exports[_0x1cb2('0x68')]=function(_0x1e645d,_0x38ba95,_0x11628f){var _0x466c09={'raw':!![],'where':{}};var _0x54c01c={};var _0x316e5a={'count':0x0,'rows':[]};return db[_0x1cb2('0x4e')][_0x1cb2('0x63')]({'where':{'id':_0x1e645d[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x38ba95,null))[_0x1cb2('0x28')](function(_0x474299){if(_0x474299){_0x54c01c[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0x69')][_0x1cb2('0x39')]);_0x54c01c[_0x1cb2('0x3e')]=_[_0x1cb2('0x3d')](_0x1e645d[_0x1cb2('0x3e')]);_0x54c01c[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x54c01c[_0x1cb2('0x41')],_0x54c01c['query']);_0x466c09[_0x1cb2('0x42')]=_[_0x1cb2('0x40')](_0x54c01c['model'],qs['fields'](_0x1e645d[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x466c09[_0x1cb2('0x42')]=_0x466c09[_0x1cb2('0x42')]['length']?_0x466c09[_0x1cb2('0x42')]:_0x54c01c[_0x1cb2('0x41')];if(!_0x1e645d[_0x1cb2('0x3e')][_0x1cb2('0x44')]('nolimit')){_0x466c09[_0x1cb2('0x20')]=qs['limit'](_0x1e645d[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x466c09['offset']=qs[_0x1cb2('0x1e')](_0x1e645d[_0x1cb2('0x3e')]['offset']);}_0x466c09[_0x1cb2('0x46')]=qs[_0x1cb2('0x47')](_0x1e645d[_0x1cb2('0x3e')][_0x1cb2('0x47')]);_0x466c09[_0x1cb2('0x48')]=qs[_0x1cb2('0x3f')](_[_0x1cb2('0x49')](_0x1e645d[_0x1cb2('0x3e')],_0x54c01c[_0x1cb2('0x3f')]));_0x466c09[_0x1cb2('0x48')][_0x1cb2('0x65')]=_0x474299['id'];if(_0x1e645d['query']['filter']){_0x466c09[_0x1cb2('0x48')]=_[_0x1cb2('0x4b')](_0x466c09[_0x1cb2('0x48')],{'$or':_[_0x1cb2('0x2f')](_0x466c09[_0x1cb2('0x42')],function(_0x28ba68){var _0x1b9296={};_0x1b9296[_0x28ba68]={'$like':'%'+_0x1e645d[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x1b9296;})});}_0x466c09=_[_0x1cb2('0x4b')]({},_0x466c09,_0x1e645d[_0x1cb2('0x4d')]);return db[_0x1cb2('0x69')][_0x1cb2('0x21')]({'where':_0x466c09['where']})['then'](function(_0x200a7a){_0x316e5a[_0x1cb2('0x21')]=_0x200a7a;if(_0x1e645d[_0x1cb2('0x3e')][_0x1cb2('0x4f')]){_0x466c09[_0x1cb2('0x55')]=[{'all':!![]}];}return db['CmHopperFinal'][_0x1cb2('0x50')](_0x466c09);})[_0x1cb2('0x28')](function(_0x5c9be5){_0x316e5a[_0x1cb2('0x51')]=_0x5c9be5;return _0x316e5a;});}})['then'](respondWithFilteredResult(_0x38ba95,_0x466c09))['catch'](handleError(_0x38ba95,null));};exports['getHopperBlacks']=function(_0x4397f9,_0x1b1aae,_0x155ec3){var _0x26e7cc={'raw':!![],'where':{}};var _0x5dc6dd={};var _0x4fa913={'count':0x0,'rows':[]};return db[_0x1cb2('0x4e')]['findOne']({'where':{'id':_0x4397f9[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x1b1aae,null))[_0x1cb2('0x28')](function(_0x4f0798){if(_0x4f0798){_0x5dc6dd['model']=_[_0x1cb2('0x3d')](db[_0x1cb2('0x6a')]['rawAttributes']);_0x5dc6dd[_0x1cb2('0x3e')]=_[_0x1cb2('0x3d')](_0x4397f9[_0x1cb2('0x3e')]);_0x5dc6dd[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x5dc6dd[_0x1cb2('0x41')],_0x5dc6dd[_0x1cb2('0x3e')]);_0x26e7cc['attributes']=_[_0x1cb2('0x40')](_0x5dc6dd[_0x1cb2('0x41')],qs['fields'](_0x4397f9[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x26e7cc[_0x1cb2('0x42')]=_0x26e7cc[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x26e7cc[_0x1cb2('0x42')]:_0x5dc6dd[_0x1cb2('0x41')];if(!_0x4397f9[_0x1cb2('0x3e')]['hasOwnProperty'](_0x1cb2('0x45'))){_0x26e7cc['limit']=qs[_0x1cb2('0x20')](_0x4397f9[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x26e7cc[_0x1cb2('0x1e')]=qs[_0x1cb2('0x1e')](_0x4397f9[_0x1cb2('0x3e')][_0x1cb2('0x1e')]);}_0x26e7cc[_0x1cb2('0x46')]=qs['sort'](_0x4397f9['query'][_0x1cb2('0x47')]);_0x26e7cc[_0x1cb2('0x48')]=qs[_0x1cb2('0x3f')](_['pick'](_0x4397f9[_0x1cb2('0x3e')],_0x5dc6dd[_0x1cb2('0x3f')]));_0x26e7cc[_0x1cb2('0x48')][_0x1cb2('0x65')]=_0x4f0798['id'];if(_0x4397f9['query'][_0x1cb2('0x4a')]){_0x26e7cc[_0x1cb2('0x48')]=_[_0x1cb2('0x4b')](_0x26e7cc[_0x1cb2('0x48')],{'$or':_[_0x1cb2('0x2f')](_0x26e7cc[_0x1cb2('0x42')],function(_0x3edca5){var _0x5d84e4={};_0x5d84e4[_0x3edca5]={'$like':'%'+_0x4397f9[_0x1cb2('0x3e')]['filter']+'%'};return _0x5d84e4;})});}_0x26e7cc=_[_0x1cb2('0x4b')]({},_0x26e7cc,_0x4397f9['options']);return db[_0x1cb2('0x6a')]['count']({'where':_0x26e7cc[_0x1cb2('0x48')]})[_0x1cb2('0x28')](function(_0x1a53c5){_0x4fa913[_0x1cb2('0x21')]=_0x1a53c5;if(_0x4397f9['query'][_0x1cb2('0x4f')]){_0x26e7cc[_0x1cb2('0x55')]=[{'all':!![]}];}return db[_0x1cb2('0x6a')][_0x1cb2('0x50')](_0x26e7cc);})[_0x1cb2('0x28')](function(_0x4365bb){_0x4fa913[_0x1cb2('0x51')]=_0x4365bb;return _0x4fa913;});}})[_0x1cb2('0x28')](respondWithFilteredResult(_0x1b1aae,_0x26e7cc))[_0x1cb2('0x56')](handleError(_0x1b1aae,null));};exports['getTeams']=function(_0x428e21,_0xdadf03,_0x9427cf){var _0x589bc8={};var _0x18b53b={};var _0x26173a;var _0x2bcb60;return db[_0x1cb2('0x4e')]['findOne']({'where':{'id':_0x428e21[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0xdadf03,null))[_0x1cb2('0x28')](function(_0x421c0e){if(_0x421c0e){_0x26173a=_0x421c0e;_0x18b53b[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0x6b')][_0x1cb2('0x39')]);_0x18b53b[_0x1cb2('0x3e')]=_[_0x1cb2('0x3d')](_0x428e21[_0x1cb2('0x3e')]);_0x18b53b[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x18b53b[_0x1cb2('0x41')],_0x18b53b[_0x1cb2('0x3e')]);_0x589bc8[_0x1cb2('0x42')]=_[_0x1cb2('0x40')](_0x18b53b[_0x1cb2('0x41')],qs['fields'](_0x428e21['query'][_0x1cb2('0x43')]));_0x589bc8[_0x1cb2('0x42')]=_0x589bc8[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x589bc8[_0x1cb2('0x42')]:_0x18b53b[_0x1cb2('0x41')];_0x589bc8[_0x1cb2('0x46')]=qs['sort'](_0x428e21[_0x1cb2('0x3e')]['sort']);_0x589bc8['where']=qs[_0x1cb2('0x3f')](_['pick'](_0x428e21[_0x1cb2('0x3e')],_0x18b53b[_0x1cb2('0x3f')]));if(_0x428e21['query'][_0x1cb2('0x4a')]){_0x589bc8[_0x1cb2('0x48')]=_[_0x1cb2('0x4b')](_0x589bc8['where'],{'$or':_[_0x1cb2('0x2f')](_0x589bc8[_0x1cb2('0x42')],function(_0x33da38){var _0x3ab949={};_0x3ab949[_0x33da38]={'$like':'%'+_0x428e21[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x3ab949;})});}_0x589bc8=_[_0x1cb2('0x4b')]({},_0x589bc8,_0x428e21[_0x1cb2('0x4d')]);return _0x26173a[_0x1cb2('0x6c')](_0x589bc8);}})[_0x1cb2('0x28')](function(_0x5c4494){if(_0x5c4494){_0x2bcb60=_0x5c4494[_0x1cb2('0x54')];if(!_0x428e21[_0x1cb2('0x3e')][_0x1cb2('0x44')](_0x1cb2('0x45'))){_0x589bc8[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0x428e21[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x589bc8[_0x1cb2('0x1e')]=qs['offset'](_0x428e21[_0x1cb2('0x3e')]['offset']);}return _0x26173a['getTeams'](_0x589bc8);}})[_0x1cb2('0x28')](function(_0x2866fa){if(_0x2866fa){return _0x2866fa?{'count':_0x2bcb60,'rows':_0x2866fa}:null;}})['then'](respondWithResult(_0xdadf03,null))[_0x1cb2('0x56')](handleError(_0xdadf03,null));};exports['addTeams']=function(_0x178a02,_0x2c94d6,_0x9a76c7){var _0x1bbd74=_0x178a02[_0x1cb2('0x58')][_0x1cb2('0x6d')];var _0x2cee12=_['map'](_0x1bbd74,'id');return db[_0x1cb2('0x6b')]['findAll']({'where':{'id':_0x2cee12},'attributes':['id'],'include':[{'model':db['User'],'as':_0x1cb2('0x6e'),'attributes':['id','name',_0x1cb2('0x6f'),_0x1cb2('0x70'),'interface'],'raw':!![]}]})[_0x1cb2('0x28')](function(_0x14d19b){if(_0x14d19b){var _0x36351a=_[_0x1cb2('0x71')](_0x14d19b,function(_0x342ab9){var _0x59d2cf=_0x342ab9[_0x1cb2('0x2a')]({'plain':!![]});_0x59d2cf[_0x1cb2('0x6e')][_0x1cb2('0x72')](function(_0x245206){_0x245206['penalty']=_[_0x1cb2('0x32')](_0x1bbd74,{'id':_0x59d2cf['id']})[_0x1cb2('0x73')];});return _0x59d2cf[_0x1cb2('0x6e')];});return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x178a02[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](function(_0x42e958){return db['sequelize']['transaction'](function(_0x147e70){return _0x42e958[_0x1cb2('0x74')](_0x2cee12,{'transaction':_0x147e70})[_0x1cb2('0x28')](function(){return BPromise[_0x1cb2('0x75')](_0x1bbd74,function(_0x482a12){return db[_0x1cb2('0x76')][_0x1cb2('0x77')]({'TeamId':_0x482a12['id'],'VoiceQueueId':_0x178a02[_0x1cb2('0x53')]['id'],'penalty':_0x482a12['penalty']},{'transaction':_0x147e70});});})[_0x1cb2('0x28')](function(){return BPromise[_0x1cb2('0x75')](_0x36351a,function(_0x1ec713){return db[_0x1cb2('0x78')]['findOrCreate']({'where':{'UserId':_0x1ec713['id'],'VoiceQueueId':_0x178a02[_0x1cb2('0x53')]['id']},'defaults':{'penalty':_0x1ec713[_0x1cb2('0x73')]},'transaction':_0x147e70});});})[_0x1cb2('0x28')](function(){return BPromise['each'](_[_0x1cb2('0x4a')](_0x36351a,{'online':!![]}),function(_0x2fc960){return db[_0x1cb2('0x79')][_0x1cb2('0x77')]({'membername':_0x2fc960['name'],'UserId':_0x2fc960['id'],'queue_name':_0x42e958['name'],'VoiceQueueId':_0x42e958['id'],'interface':_[_0x1cb2('0x7a')](_0x2fc960['interface'])?util[_0x1cb2('0x7b')](_0x1cb2('0x7c'),_0x2fc960[_0x1cb2('0x33')]):_0x2fc960['interface'],'paused':_0x2fc960[_0x1cb2('0x70')]||![],'penalty':_0x2fc960['penalty']},{'transaction':_0x147e70});});})[_0x1cb2('0x28')](function(){_0x36351a[_0x1cb2('0x72')](function(_0x17f978){socket[_0x1cb2('0x7d')]('userVoiceQueue:save',{'UserId':_0x17f978['id'],'VoiceQueueId':_0x42e958['id']});});});});});}})[_0x1cb2('0x28')](respondWithStatusCode(_0x2c94d6,null))['catch'](handleError(_0x2c94d6,null));};exports['removeTeams']=function(_0x2265ce,_0x3c359a,_0x1ba1ce){return db[_0x1cb2('0x6b')][_0x1cb2('0x50')]({'where':{'id':_0x2265ce[_0x1cb2('0x3e')][_0x1cb2('0x7e')]},'attributes':['id'],'include':[{'model':db[_0x1cb2('0x7f')],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x3c359a,null))[_0x1cb2('0x28')](function(_0x199aa3){var _0x26ba36=_['map'](_0x199aa3,'id');var _0x909ce4=[];var _0x1bfdc7=[];var _0x7514b8=squel[_0x1cb2('0x80')]();_0x7514b8[_0x1cb2('0x81')](_0x1cb2('0x82'))[_0x1cb2('0x83')](_0x1cb2('0x84'),'tq')['join'](_0x1cb2('0x85'),'ut',_0x1cb2('0x86'))[_0x1cb2('0x48')](_0x1cb2('0x87'),_0x2265ce[_0x1cb2('0x53')]['id']);for(var _0x536dbc=0x0;_0x536dbc<_0x199aa3[_0x1cb2('0x54')];_0x536dbc+=0x1){let _0x12ccbd=_0x199aa3[_0x536dbc];for(var _0x5b195a=0x0;_0x5b195a<_0x12ccbd[_0x1cb2('0x6e')][_0x1cb2('0x54')];_0x5b195a+=0x1){let _0x46b656=_0x12ccbd[_0x1cb2('0x6e')][_0x5b195a];var _0x2f56dc=_0x7514b8[_0x1cb2('0x5e')]();_0x2f56dc[_0x1cb2('0x48')](_0x1cb2('0x88'),_0x46b656['id']);_0x1bfdc7[_0x1cb2('0x89')](db[_0x1cb2('0x8a')][_0x1cb2('0x3e')](_0x2f56dc[_0x1cb2('0x8b')](),{'type':db[_0x1cb2('0x8a')][_0x1cb2('0x8c')][_0x1cb2('0x8d')]})['then'](function(_0x112d58){if(_0x112d58[_0x1cb2('0x54')]===0x1){return _0x46b656['id'];}else{var _0x3e5db8=_[_0x1cb2('0x8e')](_[_0x1cb2('0x2f')](_0x112d58,_0x1cb2('0x8f')),function(_0x3146d2){return _[_0x1cb2('0x31')](_0x26ba36,_0x3146d2);});if(_0x3e5db8){return _0x46b656['id'];}}}));}}return BPromise[_0x1cb2('0x90')](_0x1bfdc7)[_0x1cb2('0x28')](function(_0x2ecd07){_0x909ce4=_(_0x909ce4)['union'](_0x2ecd07)[_0x1cb2('0x91')]()['value']();return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x2265ce['params']['id']}})['then'](function(_0x32efd2){return db[_0x1cb2('0x8a')][_0x1cb2('0x92')](function(_0x569235){return _0x32efd2[_0x1cb2('0x93')](_0x2265ce['query']['ids'],{'transaction':_0x569235})[_0x1cb2('0x28')](function(){if(!_['isEmpty'](_0x909ce4)){return _0x32efd2['removeAgents'](_0x909ce4,{'transaction':_0x569235})['then'](function(){return db[_0x1cb2('0x79')][_0x1cb2('0x29')]({'where':{'VoiceQueueId':_0x2265ce[_0x1cb2('0x53')]['id'],'UserId':_0x909ce4},'transaction':_0x569235});});}})[_0x1cb2('0x28')](function(){_0x909ce4[_0x1cb2('0x72')](function(_0x91b7ea){socket[_0x1cb2('0x7d')](_0x1cb2('0x94'),{'UserId':_0x91b7ea,'VoiceQueueId':_0x32efd2['id']});});});});});});})[_0x1cb2('0x28')](respondWithStatusCode(_0x3c359a,null))[_0x1cb2('0x56')](handleError(_0x3c359a,null));};exports[_0x1cb2('0x95')]=function(_0x125996,_0x545dea,_0x5f59af){var _0x231038,_0x4d7805;return db[_0x1cb2('0x4e')]['find']({'where':{'id':_0x125996[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x545dea,null))['then'](function(_0x393b2f){if(_0x393b2f){_0x4d7805=_0x393b2f;return _0x393b2f[_0x1cb2('0x95')](_0x125996[_0x1cb2('0x58')][_0x1cb2('0x7e')],_[_0x1cb2('0x5f')](_0x125996[_0x1cb2('0x58')],[_0x1cb2('0x7e'),'id'])||{})['spread'](function(_0xcdcf43){for(var _0x2f04cc=0x0;_0x2f04cc<_0x125996['body'][_0x1cb2('0x7e')][_0x1cb2('0x54')];_0x2f04cc+=0x1){socket[_0x1cb2('0x7d')](_0x1cb2('0x96'),{'UserId':Number(_0x125996[_0x1cb2('0x58')]['ids'][_0x2f04cc]),'VoiceQueueId':Number(_0x125996[_0x1cb2('0x53')]['id'])});}return _0xcdcf43;});}})[_0x1cb2('0x28')](function(_0x52b174){_0x231038=_0x52b174||[];if(_0x4d7805){return db[_0x1cb2('0x7f')][_0x1cb2('0x50')]({'where':{'id':_0x125996[_0x1cb2('0x58')][_0x1cb2('0x7e')]},'attributes':['id','name','online',_0x1cb2('0x70'),_0x1cb2('0x97')],'raw':!![]});}})[_0x1cb2('0x28')](function(_0x2f5ef1){if(!_[_0x1cb2('0x98')](_0x2f5ef1)){var _0x3029e1=[];for(var _0xd731aa=0x0;_0xd731aa<_0x2f5ef1['length'];_0xd731aa++){if(_0x2f5ef1[_0xd731aa]['online']){_0x3029e1[_0x1cb2('0x89')](db[_0x1cb2('0x79')][_0x1cb2('0x77')]({'membername':_0x2f5ef1[_0xd731aa][_0x1cb2('0x33')],'UserId':_0x2f5ef1[_0xd731aa]['id'],'queue_name':_0x4d7805['name'],'VoiceQueueId':_0x4d7805['id'],'interface':_[_0x1cb2('0x7a')](_0x2f5ef1[_0xd731aa][_0x1cb2('0x97')])?util[_0x1cb2('0x7b')](_0x1cb2('0x7c'),_0x2f5ef1[_0xd731aa][_0x1cb2('0x33')]):_0x2f5ef1[_0xd731aa][_0x1cb2('0x97')],'paused':_0x2f5ef1[_0xd731aa][_0x1cb2('0x70')]||![],'penalty':_0x125996['body'][_0x1cb2('0x73')]||0x0}));}}return BPromise['all'](_0x3029e1);}})[_0x1cb2('0x28')](function(){return _0x231038;})[_0x1cb2('0x28')](respondWithResult(_0x545dea,null))[_0x1cb2('0x56')](handleError(_0x545dea,null));};exports['removeAgents']=function(_0x1fdef4,_0x4605bd,_0x422940){return db['VoiceQueue']['find']({'where':{'id':_0x1fdef4[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x4605bd,null))[_0x1cb2('0x28')](function(_0x31c6ee){if(_0x31c6ee){return _0x31c6ee[_0x1cb2('0x99')](_0x1fdef4[_0x1cb2('0x3e')][_0x1cb2('0x7e')])['then'](function(){if(_[_0x1cb2('0x9a')](_0x1fdef4[_0x1cb2('0x3e')][_0x1cb2('0x7e')])){for(var _0x360c77=0x0;_0x360c77<_0x1fdef4[_0x1cb2('0x3e')][_0x1cb2('0x7e')][_0x1cb2('0x54')];_0x360c77+=0x1){socket['emit'](_0x1cb2('0x94'),{'UserId':Number(_0x1fdef4[_0x1cb2('0x3e')][_0x1cb2('0x7e')][_0x360c77]),'VoiceQueueId':Number(_0x1fdef4[_0x1cb2('0x53')]['id'])});}}else{socket[_0x1cb2('0x7d')](_0x1cb2('0x94'),{'UserId':Number(_0x1fdef4[_0x1cb2('0x3e')]['ids']),'VoiceQueueId':Number(_0x1fdef4[_0x1cb2('0x53')]['id'])});}});}})['then'](function(_0x3f0d43){return db[_0x1cb2('0x79')][_0x1cb2('0x29')]({'where':{'VoiceQueueId':_0x1fdef4[_0x1cb2('0x53')]['id'],'UserId':_0x1fdef4[_0x1cb2('0x3e')][_0x1cb2('0x7e')]}})[_0x1cb2('0x28')](function(){return _0x3f0d43;});})[_0x1cb2('0x28')](respondWithStatusCode(_0x4605bd,null))[_0x1cb2('0x56')](handleError(_0x4605bd,null));};exports[_0x1cb2('0x9b')]=function(_0x511398,_0x2332b2,_0x4d1d89){var _0x546c97={};var _0x5167ed={};var _0x3a28ac;var _0x2c5373;return db[_0x1cb2('0x4e')]['findOne']({'where':{'id':_0x511398[_0x1cb2('0x53')]['id']}})['then'](handleEntityNotFound(_0x2332b2,null))[_0x1cb2('0x28')](function(_0x1813cd){if(_0x1813cd){_0x3a28ac=_0x1813cd;_0x5167ed[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0x7f')]['rawAttributes']);_0x5167ed[_0x1cb2('0x3e')]=_[_0x1cb2('0x3d')](_0x511398[_0x1cb2('0x3e')]);_0x5167ed[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x5167ed[_0x1cb2('0x41')],_0x5167ed[_0x1cb2('0x3e')]);_0x546c97['attributes']=_['intersection'](_0x5167ed[_0x1cb2('0x41')],qs['fields'](_0x511398[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x546c97[_0x1cb2('0x42')]=_0x546c97[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x546c97[_0x1cb2('0x42')]:_0x5167ed['model'];_0x546c97[_0x1cb2('0x46')]=qs[_0x1cb2('0x47')](_0x511398[_0x1cb2('0x3e')]['sort']);_0x546c97['where']=qs[_0x1cb2('0x3f')](_[_0x1cb2('0x49')](_0x511398[_0x1cb2('0x3e')],_0x5167ed[_0x1cb2('0x3f')]));if(_0x511398[_0x1cb2('0x3e')]['filter']){_0x546c97[_0x1cb2('0x48')]=_[_0x1cb2('0x4b')](_0x546c97['where'],{'$or':_[_0x1cb2('0x2f')](_0x546c97[_0x1cb2('0x42')],function(_0x2d9f32){var _0x415c50={};_0x415c50[_0x2d9f32]={'$like':'%'+_0x511398[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x415c50;})});}_0x546c97=_[_0x1cb2('0x4b')]({},_0x546c97,_0x511398[_0x1cb2('0x4d')]);return _0x3a28ac[_0x1cb2('0x9b')](_0x546c97);}})[_0x1cb2('0x28')](function(_0x3c9344){if(_0x3c9344){_0x2c5373=_0x3c9344[_0x1cb2('0x54')];if(!_0x511398[_0x1cb2('0x3e')][_0x1cb2('0x44')](_0x1cb2('0x45'))){_0x546c97[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0x511398[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x546c97[_0x1cb2('0x1e')]=qs['offset'](_0x511398[_0x1cb2('0x3e')][_0x1cb2('0x1e')]);}return _0x3a28ac[_0x1cb2('0x9b')](_0x546c97);}})[_0x1cb2('0x28')](function(_0x30f193){if(_0x30f193){return _0x30f193?{'count':_0x2c5373,'rows':_0x30f193}:null;}})[_0x1cb2('0x28')](respondWithResult(_0x2332b2,null))[_0x1cb2('0x56')](handleError(_0x2332b2,null));};exports['getMembers']=function(_0x69c62f,_0x53cd2b,_0x5b2e51){var _0x540437={};var _0x420387={};var _0x2e4083;var _0x3a309f;return db[_0x1cb2('0x4e')][_0x1cb2('0x63')]({'where':{'id':_0x69c62f['params']['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x53cd2b,null))[_0x1cb2('0x28')](function(_0x3253ce){if(_0x3253ce){_0x2e4083=_0x3253ce;_0x420387[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0x79')][_0x1cb2('0x39')]);_0x420387[_0x1cb2('0x3e')]=_[_0x1cb2('0x3d')](_0x69c62f[_0x1cb2('0x3e')]);_0x420387[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x420387[_0x1cb2('0x41')],_0x420387['query']);_0x540437['attributes']=_[_0x1cb2('0x40')](_0x420387['model'],qs[_0x1cb2('0x43')](_0x69c62f[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x540437['attributes']=_0x540437['attributes'][_0x1cb2('0x54')]?_0x540437[_0x1cb2('0x42')]:_0x420387[_0x1cb2('0x41')];_0x540437[_0x1cb2('0x46')]=qs[_0x1cb2('0x47')](_0x69c62f[_0x1cb2('0x3e')]['sort']);_0x540437[_0x1cb2('0x48')]=qs['filters'](_['pick'](_0x69c62f['query'],_0x420387[_0x1cb2('0x3f')]));if(_0x69c62f[_0x1cb2('0x3e')][_0x1cb2('0x4a')]){_0x540437['where']=_[_0x1cb2('0x4b')](_0x540437[_0x1cb2('0x48')],{'$or':_[_0x1cb2('0x2f')](_0x540437['attributes'],function(_0x2126dd){var _0x55682c={};_0x55682c[_0x2126dd]={'$like':'%'+_0x69c62f[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x55682c;})});}_0x540437=_[_0x1cb2('0x4b')]({},_0x540437,_0x69c62f['options']);return _0x2e4083[_0x1cb2('0x9c')](_0x540437);}})[_0x1cb2('0x28')](function(_0x2ea964){if(_0x2ea964){_0x3a309f=_0x2ea964[_0x1cb2('0x54')];if(!_0x69c62f[_0x1cb2('0x3e')][_0x1cb2('0x44')]('nolimit')){_0x540437[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0x69c62f[_0x1cb2('0x3e')][_0x1cb2('0x20')]);_0x540437[_0x1cb2('0x1e')]=qs[_0x1cb2('0x1e')](_0x69c62f['query'][_0x1cb2('0x1e')]);}return _0x2e4083[_0x1cb2('0x9c')](_0x540437);}})[_0x1cb2('0x28')](function(_0x5e0eef){return _0x5e0eef?{'count':_0x3a309f,'rows':_0x5e0eef}:null;})['then'](respondWithResult(_0x53cd2b,null))[_0x1cb2('0x56')](handleError(_0x53cd2b,null));};exports[_0x1cb2('0x9d')]=function(_0x521fc5,_0x3a97b9,_0x38b03c){var _0x37bee1={};var _0x117ce6={};var _0x314a84;var _0x3821c6;return db[_0x1cb2('0x4e')][_0x1cb2('0x63')]({'where':{'id':_0x521fc5[_0x1cb2('0x53')]['id']}})['then'](handleEntityNotFound(_0x3a97b9,null))[_0x1cb2('0x28')](function(_0x4afb86){if(_0x4afb86){_0x314a84=_0x4afb86;_0x117ce6['model']=_['keys'](db['CmList'][_0x1cb2('0x39')]);_0x117ce6['query']=_[_0x1cb2('0x3d')](_0x521fc5['query']);_0x117ce6[_0x1cb2('0x3f')]=_['intersection'](_0x117ce6[_0x1cb2('0x41')],_0x117ce6['query']);_0x37bee1[_0x1cb2('0x42')]=_['intersection'](_0x117ce6[_0x1cb2('0x41')],qs['fields'](_0x521fc5['query']['fields']));_0x37bee1[_0x1cb2('0x42')]=_0x37bee1['attributes'][_0x1cb2('0x54')]?_0x37bee1[_0x1cb2('0x42')]:_0x117ce6['model'];_0x37bee1[_0x1cb2('0x46')]=qs['sort'](_0x521fc5['query']['sort']);_0x37bee1[_0x1cb2('0x48')]=qs['filters'](_['pick'](_0x521fc5['query'],_0x117ce6['filters']));if(_0x521fc5[_0x1cb2('0x3e')]['filter']){_0x37bee1[_0x1cb2('0x48')]=_['merge'](_0x37bee1[_0x1cb2('0x48')],{'$or':_['map'](_0x37bee1[_0x1cb2('0x42')],function(_0x4110ac){var _0x113c0a={};_0x113c0a[_0x4110ac]={'$like':'%'+_0x521fc5[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x113c0a;})});}_0x37bee1=_[_0x1cb2('0x4b')]({},_0x37bee1,_0x521fc5[_0x1cb2('0x4d')]);return _0x314a84[_0x1cb2('0x9d')](_0x37bee1);}})[_0x1cb2('0x28')](function(_0x4d6fd4){if(_0x4d6fd4){_0x3821c6=_0x4d6fd4['length'];if(!_0x521fc5[_0x1cb2('0x3e')]['hasOwnProperty']('nolimit')){_0x37bee1[_0x1cb2('0x20')]=qs['limit'](_0x521fc5[_0x1cb2('0x3e')]['limit']);_0x37bee1[_0x1cb2('0x1e')]=qs[_0x1cb2('0x1e')](_0x521fc5['query'][_0x1cb2('0x1e')]);}return _0x314a84[_0x1cb2('0x9d')](_0x37bee1);}})[_0x1cb2('0x28')](function(_0x1fa77a){if(_0x1fa77a){return _0x1fa77a?{'count':_0x3821c6,'rows':_0x1fa77a}:null;}})[_0x1cb2('0x28')](respondWithResult(_0x3a97b9,null))[_0x1cb2('0x56')](handleError(_0x3a97b9,null));};exports['addLists']=function(_0x3b63fd,_0xb990db,_0x176262){var _0xbace1d,_0x1263e9;return db['VoiceQueue'][_0x1cb2('0x32')]({'where':{'id':_0x3b63fd[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0xb990db,null))[_0x1cb2('0x28')](function(_0x3bd911){if(_0x3bd911){_0x1263e9=_0x3bd911;return _0x3bd911[_0x1cb2('0x9e')](_0x3b63fd['body'][_0x1cb2('0x7e')],_['omit'](_0x3b63fd[_0x1cb2('0x58')],[_0x1cb2('0x7e'),'id'])||{});}return null;})['spread'](function(_0x44bb35){var _0x172179;_0xbace1d=_0x44bb35||[];var _0x579f23=[];if(_0x44bb35){for(var _0x259d9d=0x0;_0x259d9d<_0x44bb35[_0x1cb2('0x54')];_0x259d9d+=0x1){var _0x3e7563=_0x44bb35[_0x259d9d][_0x1cb2('0x2a')]({'plain':!![]});_0x1263e9['dialCheckDuplicateType']=_0x3b63fd[_0x1cb2('0x58')][_0x1cb2('0x9f')]?_0x3b63fd[_0x1cb2('0x58')][_0x1cb2('0x9f')]:_0x1263e9[_0x1cb2('0x9f')];switch(_0x1263e9[_0x1cb2('0x9f')]){case _0x1cb2('0xa0'):_0x172179=squel[_0x1cb2('0xa1')]()[_0x1cb2('0xa2')](_0x1cb2('0xa3'))[_0x1cb2('0xa4')]([_0x1cb2('0xa5'),_0x1cb2('0xa6'),'ContactId',_0x1cb2('0xa7'),_0x1cb2('0x65'),'createdAt','updatedAt'],squel[_0x1cb2('0x80')]()['field'](_0x1cb2('0xa5'),_0x1cb2('0xa5'))[_0x1cb2('0x81')](_0x1cb2('0xa8'),_0x1cb2('0xa6'))[_0x1cb2('0x81')]('id',_0x1cb2('0xa9'))['field'](_0x3e7563[_0x1cb2('0xaa')]['toString'](),_0x1cb2('0xa7'))[_0x1cb2('0x81')](_0x3b63fd['params']['id'][_0x1cb2('0x8b')](),'VoiceQueueId')['field'](_0x1cb2('0xa8'),'createdAt')[_0x1cb2('0x81')](_0x1cb2('0xa8'),_0x1cb2('0x61'))[_0x1cb2('0x83')](_0x1cb2('0xab'))[_0x1cb2('0x48')]('deletedAt\x20IS\x20NULL')[_0x1cb2('0x48')](_0x1cb2('0xac'),_0x3e7563[_0x1cb2('0xaa')][_0x1cb2('0x8b')]())[_0x1cb2('0x48')](_0x1cb2('0xad'))[_0x1cb2('0x48')]('phone\x20NOT\x20IN\x20(?)',squel['select']()[_0x1cb2('0x81')](_0x1cb2('0xae'))[_0x1cb2('0x83')](_0x1cb2('0xaf'))['where'](_0x1cb2('0x87'),_0x3b63fd[_0x1cb2('0x53')]['id']['toString']()))[_0x1cb2('0x48')](_0x1cb2('0xb0'),squel['select']()[_0x1cb2('0x81')](_0x1cb2('0xb1'))['from']('cm_hopper')[_0x1cb2('0x48')](_0x1cb2('0x87'),_0x3b63fd[_0x1cb2('0x53')]['id'][_0x1cb2('0x8b')]())))[_0x1cb2('0x8b')]();break;case _0x1cb2('0xb2'):_0x172179=squel['insert']()[_0x1cb2('0xa2')](_0x1cb2('0xa3'))[_0x1cb2('0xa4')]([_0x1cb2('0xa5'),'scheduledAt',_0x1cb2('0xa9'),_0x1cb2('0xa7'),_0x1cb2('0x65'),_0x1cb2('0x60'),_0x1cb2('0x61')],squel[_0x1cb2('0x80')]()[_0x1cb2('0x81')](_0x1cb2('0xa5'),_0x1cb2('0xa5'))['field'](_0x1cb2('0xa8'),'scheduledAt')[_0x1cb2('0x81')]('id',_0x1cb2('0xa9'))[_0x1cb2('0x81')](_0x3e7563[_0x1cb2('0xaa')][_0x1cb2('0x8b')](),_0x1cb2('0xa7'))[_0x1cb2('0x81')](_0x3b63fd[_0x1cb2('0x53')]['id']['toString'](),_0x1cb2('0x65'))[_0x1cb2('0x81')](_0x1cb2('0xa8'),'createdAt')[_0x1cb2('0x81')](_0x1cb2('0xa8'),_0x1cb2('0x61'))[_0x1cb2('0x83')](_0x1cb2('0xab'))['where'](_0x1cb2('0xb3'))[_0x1cb2('0x48')]('ListId\x20=\x20?',_0x3e7563['CmListId'][_0x1cb2('0x8b')]())['where']('phone\x20IS\x20NOT\x20NULL')['where']('phone\x20NOT\x20IN\x20(?)',squel['select']()[_0x1cb2('0x81')](_0x1cb2('0xb1'))[_0x1cb2('0x83')](_0x1cb2('0xa3'))[_0x1cb2('0x48')](_0x1cb2('0x87'),_0x3b63fd['params']['id'][_0x1cb2('0x8b')]())))[_0x1cb2('0x8b')]();break;default:_0x172179=squel[_0x1cb2('0xa1')]()[_0x1cb2('0xa2')](_0x1cb2('0xa3'))[_0x1cb2('0xa4')]([_0x1cb2('0xa5'),_0x1cb2('0xa6'),'ContactId','ListId',_0x1cb2('0x65'),_0x1cb2('0x60'),'updatedAt'],squel['select']()[_0x1cb2('0x81')](_0x1cb2('0xa5'),'phone')[_0x1cb2('0x81')](_0x1cb2('0xa8'),_0x1cb2('0xa6'))['field']('id',_0x1cb2('0xa9'))[_0x1cb2('0x81')](_0x3e7563[_0x1cb2('0xaa')][_0x1cb2('0x8b')](),_0x1cb2('0xa7'))[_0x1cb2('0x81')](_0x3b63fd[_0x1cb2('0x53')]['id'][_0x1cb2('0x8b')](),_0x1cb2('0x65'))['field'](_0x1cb2('0xa8'),_0x1cb2('0x60'))['field'](_0x1cb2('0xa8'),'updatedAt')[_0x1cb2('0x83')]('cm_contacts')[_0x1cb2('0x48')](_0x1cb2('0xb3'))[_0x1cb2('0x48')]('ListId\x20=\x20?',_0x3e7563[_0x1cb2('0xaa')][_0x1cb2('0x8b')]())[_0x1cb2('0x48')](_0x1cb2('0xad')))[_0x1cb2('0x8b')]();}_0x579f23[_0x1cb2('0x89')](db['sequelize']['query'](_0x172179));}return BPromise[_0x1cb2('0x90')](_0x579f23);}})[_0x1cb2('0x28')](function(){return _0xbace1d;})[_0x1cb2('0x28')](respondWithResult(_0xb990db,null))[_0x1cb2('0x56')](handleError(_0xb990db,null));};exports[_0x1cb2('0xb4')]=function(_0x2516be,_0x326d5a,_0x5e97e2){return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x2516be[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x326d5a,null))[_0x1cb2('0x28')](function(_0x41cd13){if(_0x41cd13){return _0x41cd13[_0x1cb2('0xb4')](_0x2516be['query'][_0x1cb2('0x7e')]);}})['then'](function(_0x4fa331){if(_0x4fa331){return db['CmHopper'][_0x1cb2('0x29')]({'where':{'ListId':_0x2516be[_0x1cb2('0x3e')][_0x1cb2('0x7e')],'VoiceQueueId':_0x2516be[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](function(){return _0x4fa331;});}})['then'](respondWithStatusCode(_0x326d5a,null))[_0x1cb2('0x56')](handleError(_0x326d5a,null));};exports[_0x1cb2('0xb5')]=function(_0x38a091,_0x12824f,_0x5cf6fe){var _0x337413={};var _0x5b8dc3={};var _0x869de0;var _0x467ff0;return db[_0x1cb2('0x4e')][_0x1cb2('0x63')]({'where':{'id':_0x38a091[_0x1cb2('0x53')]['id']}})['then'](handleEntityNotFound(_0x12824f,null))[_0x1cb2('0x28')](function(_0x35d157){if(_0x35d157){_0x869de0=_0x35d157;_0x5b8dc3[_0x1cb2('0x41')]=_[_0x1cb2('0x3d')](db[_0x1cb2('0xb6')][_0x1cb2('0x39')]);_0x5b8dc3[_0x1cb2('0x3e')]=_['keys'](_0x38a091[_0x1cb2('0x3e')]);_0x5b8dc3[_0x1cb2('0x3f')]=_[_0x1cb2('0x40')](_0x5b8dc3[_0x1cb2('0x41')],_0x5b8dc3[_0x1cb2('0x3e')]);_0x337413['attributes']=_[_0x1cb2('0x40')](_0x5b8dc3[_0x1cb2('0x41')],qs[_0x1cb2('0x43')](_0x38a091[_0x1cb2('0x3e')][_0x1cb2('0x43')]));_0x337413[_0x1cb2('0x42')]=_0x337413[_0x1cb2('0x42')][_0x1cb2('0x54')]?_0x337413[_0x1cb2('0x42')]:_0x5b8dc3[_0x1cb2('0x41')];_0x337413[_0x1cb2('0x46')]=qs[_0x1cb2('0x47')](_0x38a091[_0x1cb2('0x3e')][_0x1cb2('0x47')]);_0x337413[_0x1cb2('0x48')]=qs[_0x1cb2('0x3f')](_['pick'](_0x38a091[_0x1cb2('0x3e')],_0x5b8dc3['filters']));if(_0x38a091[_0x1cb2('0x3e')]['filter']){_0x337413[_0x1cb2('0x48')]=_[_0x1cb2('0x4b')](_0x337413['where'],{'$or':_[_0x1cb2('0x2f')](_0x337413[_0x1cb2('0x42')],function(_0x41ae9d){var _0x19deeb={};_0x19deeb[_0x41ae9d]={'$like':'%'+_0x38a091[_0x1cb2('0x3e')][_0x1cb2('0x4a')]+'%'};return _0x19deeb;})});}_0x337413=_[_0x1cb2('0x4b')]({},_0x337413,_0x38a091[_0x1cb2('0x4d')]);return _0x869de0[_0x1cb2('0xb5')](_0x337413);}})['then'](function(_0x59ddee){if(_0x59ddee){_0x467ff0=_0x59ddee['length'];if(!_0x38a091[_0x1cb2('0x3e')]['hasOwnProperty'](_0x1cb2('0x45'))){_0x337413[_0x1cb2('0x20')]=qs[_0x1cb2('0x20')](_0x38a091['query']['limit']);_0x337413[_0x1cb2('0x1e')]=qs[_0x1cb2('0x1e')](_0x38a091[_0x1cb2('0x3e')][_0x1cb2('0x1e')]);}return _0x869de0['getBlackLists'](_0x337413);}})['then'](function(_0x4eb483){if(_0x4eb483){return _0x4eb483?{'count':_0x467ff0,'rows':_0x4eb483}:null;}})[_0x1cb2('0x28')](respondWithResult(_0x12824f,null))[_0x1cb2('0x56')](handleError(_0x12824f,null));};exports['addBlackLists']=function(_0x3da3b5,_0x3577d8,_0x4d7095){var _0x464e79,_0x34a7d9;return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x3da3b5['params']['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x3577d8,null))[_0x1cb2('0x28')](function(_0x512bd6){if(_0x512bd6){_0x34a7d9=_0x512bd6;return _0x512bd6[_0x1cb2('0xb7')](_0x3da3b5[_0x1cb2('0x58')][_0x1cb2('0x7e')],_['omit'](_0x3da3b5[_0x1cb2('0x58')],[_0x1cb2('0x7e'),'id'])||{});}return null;})[_0x1cb2('0xb8')](function(_0x47a453){var _0x536ac9;_0x464e79=_0x47a453||[];var _0x497c95=[];if(_0x47a453){for(var _0x1bd22a=0x0;_0x1bd22a<_0x47a453[_0x1cb2('0x54')];_0x1bd22a+=0x1){var _0x1b77ed=_0x47a453[_0x1bd22a][_0x1cb2('0x2a')]({'plain':!![]});_0x536ac9=squel[_0x1cb2('0xa1')]()[_0x1cb2('0xa2')](_0x1cb2('0xb9'))[_0x1cb2('0xa4')]([_0x1cb2('0xa5'),'ContactId','ListId','VoiceQueueId','createdAt',_0x1cb2('0x61')],squel[_0x1cb2('0x80')]()[_0x1cb2('0x81')](_0x1cb2('0xa5'),_0x1cb2('0xa5'))['field']('id','ContactId')[_0x1cb2('0x81')](_0x1b77ed[_0x1cb2('0xaa')][_0x1cb2('0x8b')](),_0x1cb2('0xa7'))[_0x1cb2('0x81')](_0x3da3b5[_0x1cb2('0x53')]['id']['toString'](),_0x1cb2('0x65'))['field'](_0x1cb2('0xa8'),_0x1cb2('0x60'))[_0x1cb2('0x81')]('NOW()','updatedAt')[_0x1cb2('0x83')]('cm_contacts')[_0x1cb2('0x48')](_0x1cb2('0xb3'))[_0x1cb2('0x48')]('ListId\x20=\x20?',_0x1b77ed['CmListId'][_0x1cb2('0x8b')]())[_0x1cb2('0x48')](_0x1cb2('0xad')))[_0x1cb2('0x8b')]();_0x497c95['push'](db[_0x1cb2('0x8a')][_0x1cb2('0x3e')](_0x536ac9));}return BPromise['all'](_0x497c95);}})[_0x1cb2('0x28')](function(){return _0x464e79;})[_0x1cb2('0x28')](respondWithResult(_0x3577d8,null))[_0x1cb2('0x56')](handleError(_0x3577d8,null));};exports[_0x1cb2('0xba')]=function(_0x436067,_0x993be8,_0x23f33a){return db[_0x1cb2('0x4e')][_0x1cb2('0x32')]({'where':{'id':_0x436067[_0x1cb2('0x53')]['id']}})[_0x1cb2('0x28')](handleEntityNotFound(_0x993be8,null))[_0x1cb2('0x28')](function(_0x3de12d){if(_0x3de12d){return _0x3de12d[_0x1cb2('0xba')](_0x436067[_0x1cb2('0x3e')][_0x1cb2('0x7e')]);}})['then'](function(_0x400396){if(_0x400396){return db[_0x1cb2('0x6a')][_0x1cb2('0x29')]({'where':{'ListId':_0x436067[_0x1cb2('0x3e')][_0x1cb2('0x7e')],'VoiceQueueId':_0x436067['params']['id']}})[_0x1cb2('0x28')](function(){return _0x400396;});}})['then'](respondWithStatusCode(_0x993be8,null))['catch'](handleError(_0x993be8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1feb=['../../mysqldb','VoiceQueue','save','update','emit','hasOwnProperty','hook','exports','events'];(function(_0x501873,_0x19c345){var _0x306e43=function(_0x632711){while(--_0x632711){_0x501873['push'](_0x501873['shift']());}};_0x306e43(++_0x19c345);}(_0x1feb,0x179));var _0xb1fe=function(_0x1a20e6,_0x35fece){_0x1a20e6=_0x1a20e6-0x0;var _0x521e1e=_0x1feb[_0x1a20e6];return _0x521e1e;};'use strict';var EventEmitter=require(_0xb1fe('0x0'));var VoiceQueue=require(_0xb1fe('0x1'))['db'][_0xb1fe('0x2')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb1fe('0x3'),'afterUpdate':_0xb1fe('0x4'),'afterDestroy':'remove'};function emitEvent(_0xcd3bfe){return function(_0x283914,_0x4cb627,_0x222ff2){VoiceQueueEvents['emit'](_0xcd3bfe+':'+_0x283914['id'],_0x283914);VoiceQueueEvents[_0xb1fe('0x5')](_0xcd3bfe,_0x283914);_0x222ff2(null);};}for(var e in events){if(events[_0xb1fe('0x6')](e)){var event=events[e];VoiceQueue[_0xb1fe('0x7')](e,emitEvent(event));}}module[_0xb1fe('0x8')]=VoiceQueueEvents;
\ No newline at end of file
+var _0xff88=['events','../../mysqldb','VoiceQueue','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x598876,_0x2baab0){var _0x415dca=function(_0x4ba2ee){while(--_0x4ba2ee){_0x598876['push'](_0x598876['shift']());}};_0x415dca(++_0x2baab0);}(_0xff88,0x1c3));var _0x8ff8=function(_0x59123a,_0x4b88c3){_0x59123a=_0x59123a-0x0;var _0x2ef094=_0xff88[_0x59123a];return _0x2ef094;};'use strict';var EventEmitter=require(_0x8ff8('0x0'));var VoiceQueue=require(_0x8ff8('0x1'))['db'][_0x8ff8('0x2')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0x8ff8('0x3')](0x0);var events={'afterCreate':_0x8ff8('0x4'),'afterUpdate':_0x8ff8('0x5'),'afterDestroy':_0x8ff8('0x6')};function emitEvent(_0x3cb599){return function(_0xd30ea8,_0x3c9978,_0x4dee36){VoiceQueueEvents[_0x8ff8('0x7')](_0x3cb599+':'+_0xd30ea8['id'],_0xd30ea8);VoiceQueueEvents[_0x8ff8('0x7')](_0x3cb599,_0xd30ea8);_0x4dee36(null);};}for(var e in events){if(events[_0x8ff8('0x8')](e)){var event=events[e];VoiceQueue[_0x8ff8('0x9')](e,emitEvent(event));}}module[_0x8ff8('0xa')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['./voiceQueue.attributes','exports','define','voice_queues','lodash','util','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x3f25b2,_0x412bd4){var _0xd8caeb=function(_0x52d252){while(--_0x52d252){_0x3f25b2['push'](_0x3f25b2['shift']());}};_0xd8caeb(++_0x412bd4);}(_0x55ca,0x126));var _0xa55c=function(_0x243bba,_0x1ea69f){_0x243bba=_0x243bba-0x0;var _0x12e696=_0x55ca[_0x243bba];return _0x12e696;};'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 fs=require('fs');var path=require('path');var rimraf=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var attributes=require(_0xa55c('0x6'));module[_0xa55c('0x7')]=function(_0x3c97c8,_0x279caa){return _0x3c97c8[_0xa55c('0x8')]('VoiceQueue',attributes,{'tableName':_0xa55c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3e74=['exports','VoiceQueue','voice_queues','lodash','../../config/logger','api','moment','path','../../config/environment','./voiceQueue.attributes'];(function(_0x119a07,_0x2289f6){var _0x36025c=function(_0xf28f4){while(--_0xf28f4){_0x119a07['push'](_0x119a07['shift']());}};_0x36025c(++_0x2289f6);}(_0x3e74,0x175));var _0x43e7=function(_0x87ee6c,_0x3560db){_0x87ee6c=_0x87ee6c-0x0;var _0x3edb07=_0x3e74[_0x87ee6c];return _0x3edb07;};'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 fs=require('fs');var path=require(_0x43e7('0x4'));var rimraf=require('rimraf');var config=require(_0x43e7('0x5'));var attributes=require(_0x43e7('0x6'));module[_0x43e7('0x7')]=function(_0x1c503b,_0xc98b9c){return _0x1c503b['define'](_0x43e7('0x8'),attributes,{'tableName':_0x43e7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff43=['register','then','info','VoiceQueue,\x20%s,\x20%s','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceQueue','VoiceQueue','findAll','options','attributes','include','map','model','find','raw','where','ShowVoiceQueue','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./voiceQueue.socket'];(function(_0x9bb80d,_0x3e8047){var _0x581a29=function(_0x5951ab){while(--_0x5951ab){_0x9bb80d['push'](_0x9bb80d['shift']());}};_0x581a29(++_0x3e8047);}(_0xff43,0x122));var _0x3ff4=function(_0x308a68,_0x3d8e6b){_0x308a68=_0x308a68-0x0;var _0x52bf4b=_0xff43[_0x308a68];return _0x52bf4b;};'use strict';var _=require('lodash');var util=require(_0x3ff4('0x0'));var moment=require(_0x3ff4('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x3ff4('0x2'));var db=require(_0x3ff4('0x3'))['db'];var utils=require(_0x3ff4('0x4'));var logger=require(_0x3ff4('0x5'))(_0x3ff4('0x6'));var config=require(_0x3ff4('0x7'));var jayson=require(_0x3ff4('0x8'));var client=jayson[_0x3ff4('0x9')][_0x3ff4('0xa')]({'port':0x232a});config[_0x3ff4('0xb')]=_['defaults'](config[_0x3ff4('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x3ff4('0xc'))(new Redis(config[_0x3ff4('0xb')]));require(_0x3ff4('0xd'))[_0x3ff4('0xe')](socket);function respondWithRpcPromise(_0x1b74df,_0x5125d8,_0x4a809c){return new BPromise(function(_0x2eba94,_0x24fa17){return client['request'](_0x1b74df,_0x4a809c)[_0x3ff4('0xf')](function(_0x4e72ed){logger[_0x3ff4('0x10')](_0x3ff4('0x11'),_0x5125d8,'request\x20sent');logger[_0x3ff4('0x12')](_0x3ff4('0x13'),_0x5125d8,'request\x20sent',JSON[_0x3ff4('0x14')](_0x4e72ed));if(_0x4e72ed['error']){if(_0x4e72ed[_0x3ff4('0x15')][_0x3ff4('0x16')]===0x1f4){logger[_0x3ff4('0x15')](_0x3ff4('0x11'),_0x5125d8,_0x4e72ed[_0x3ff4('0x15')]['message']);return _0x24fa17(_0x4e72ed[_0x3ff4('0x15')][_0x3ff4('0x17')]);}logger['error'](_0x3ff4('0x11'),_0x5125d8,_0x4e72ed['error']['message']);return _0x2eba94(_0x4e72ed[_0x3ff4('0x15')][_0x3ff4('0x17')]);}else{logger[_0x3ff4('0x10')]('VoiceQueue,\x20%s,\x20%s',_0x5125d8,'request\x20sent');_0x2eba94(_0x4e72ed[_0x3ff4('0x18')]['message']);}})[_0x3ff4('0x19')](function(_0x175b3d){logger[_0x3ff4('0x15')](_0x3ff4('0x11'),_0x5125d8,_0x175b3d);_0x24fa17(_0x175b3d);});});}exports[_0x3ff4('0x1a')]=function(_0x5037f4){var _0x3065a6=this;return new Promise(function(_0x21849c,_0x500830){return db[_0x3ff4('0x1b')][_0x3ff4('0x1c')]({'raw':_0x5037f4[_0x3ff4('0x1d')]?_0x5037f4['options']['raw']===undefined?!![]:![]:!![],'where':_0x5037f4[_0x3ff4('0x1d')]?_0x5037f4[_0x3ff4('0x1d')]['where']||null:null,'attributes':_0x5037f4[_0x3ff4('0x1d')]?_0x5037f4[_0x3ff4('0x1d')][_0x3ff4('0x1e')]||null:null,'limit':_0x5037f4['options']?_0x5037f4['options']['limit']||null:null,'include':_0x5037f4[_0x3ff4('0x1d')]?_0x5037f4[_0x3ff4('0x1d')][_0x3ff4('0x1f')]?_[_0x3ff4('0x20')](_0x5037f4['options']['include'],function(_0xbf29d7){return{'model':db[_0xbf29d7[_0x3ff4('0x21')]],'as':_0xbf29d7['as'],'attributes':_0xbf29d7[_0x3ff4('0x1e')],'include':_0xbf29d7['include']?_['map'](_0xbf29d7[_0x3ff4('0x1f')],function(_0x3b47ff){return{'model':db[_0x3b47ff[_0x3ff4('0x21')]],'as':_0x3b47ff['as'],'attributes':_0x3b47ff['attributes'],'include':_0x3b47ff[_0x3ff4('0x1f')]?_[_0x3ff4('0x20')](_0x3b47ff['include'],function(_0xfe6ae4){return{'model':db[_0xfe6ae4[_0x3ff4('0x21')]],'as':_0xfe6ae4['as'],'attributes':_0xfe6ae4['attributes']};}):[]};}):[]};}):[]:[]})[_0x3ff4('0xf')](function(_0x41cb3f){logger[_0x3ff4('0x10')](_0x3ff4('0x1a'),_0x5037f4);logger[_0x3ff4('0x12')]('GetVoiceQueue',_0x5037f4,JSON[_0x3ff4('0x14')](_0x41cb3f));_0x21849c(_0x41cb3f);})['catch'](function(_0xd3432d){logger[_0x3ff4('0x15')](_0x3ff4('0x1a'),_0xd3432d['message'],_0x5037f4);_0x500830(_0x3065a6[_0x3ff4('0x15')](0x1f4,_0xd3432d[_0x3ff4('0x17')]));});});};exports['ShowVoiceQueue']=function(_0x12113a){var _0x4bd497=this;return new Promise(function(_0x655b8f,_0x5435bc){return db[_0x3ff4('0x1b')][_0x3ff4('0x22')]({'raw':_0x12113a[_0x3ff4('0x1d')]?_0x12113a['options'][_0x3ff4('0x23')]===undefined?!![]:![]:!![],'where':_0x12113a[_0x3ff4('0x1d')]?_0x12113a[_0x3ff4('0x1d')][_0x3ff4('0x24')]||null:null,'attributes':_0x12113a['options']?_0x12113a[_0x3ff4('0x1d')]['attributes']||null:null,'include':_0x12113a[_0x3ff4('0x1d')]?_0x12113a[_0x3ff4('0x1d')][_0x3ff4('0x1f')]?_[_0x3ff4('0x20')](_0x12113a['options'][_0x3ff4('0x1f')],function(_0x66f668){return{'model':db[_0x66f668[_0x3ff4('0x21')]],'as':_0x66f668['as'],'attributes':_0x66f668['attributes'],'include':_0x66f668['include']?_[_0x3ff4('0x20')](_0x66f668[_0x3ff4('0x1f')],function(_0x5de25c){return{'model':db[_0x5de25c['model']],'as':_0x5de25c['as'],'attributes':_0x5de25c[_0x3ff4('0x1e')],'include':_0x5de25c['include']?_['map'](_0x5de25c[_0x3ff4('0x1f')],function(_0x1b8845){return{'model':db[_0x1b8845[_0x3ff4('0x21')]],'as':_0x1b8845['as'],'attributes':_0x1b8845[_0x3ff4('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2e0e1b){logger['info'](_0x3ff4('0x25'),_0x12113a);logger[_0x3ff4('0x12')](_0x3ff4('0x25'),_0x12113a,JSON[_0x3ff4('0x14')](_0x2e0e1b));_0x655b8f(_0x2e0e1b);})[_0x3ff4('0x19')](function(_0x2c657b){logger['error'](_0x3ff4('0x25'),_0x2c657b[_0x3ff4('0x17')],_0x12113a);_0x5435bc(_0x4bd497[_0x3ff4('0x15')](0x1f4,_0x2c657b['message']));});});};
\ No newline at end of file
+var _0x9763=['map','model','ShowVoiceQueue','find','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','./voiceQueue.socket','register','request','then','info','VoiceQueue,\x20%s,\x20%s','request\x20sent','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','GetVoiceQueue','VoiceQueue','options','raw','where','attributes','include'];(function(_0x1ebd60,_0x4440f8){var _0xa9ea17=function(_0x4f993d){while(--_0x4f993d){_0x1ebd60['push'](_0x1ebd60['shift']());}};_0xa9ea17(++_0x4440f8);}(_0x9763,0x180));var _0x3976=function(_0x5a0681,_0x5cbc10){_0x5a0681=_0x5a0681-0x0;var _0x2d3a74=_0x9763[_0x5a0681];return _0x2d3a74;};'use strict';var _=require(_0x3976('0x0'));var util=require(_0x3976('0x1'));var moment=require(_0x3976('0x2'));var BPromise=require('bluebird');var rs=require(_0x3976('0x3'));var fs=require('fs');var Redis=require(_0x3976('0x4'));var db=require(_0x3976('0x5'))['db'];var utils=require(_0x3976('0x6'));var logger=require(_0x3976('0x7'))(_0x3976('0x8'));var config=require(_0x3976('0x9'));var jayson=require(_0x3976('0xa'));var client=jayson['client']['http']({'port':0x232a});config[_0x3976('0xb')]=_[_0x3976('0xc')](config[_0x3976('0xb')],{'host':_0x3976('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3976('0xb')]));require(_0x3976('0xe'))[_0x3976('0xf')](socket);function respondWithRpcPromise(_0x1e1dc7,_0x30c0ef,_0x1fec5f){return new BPromise(function(_0x2742e4,_0x246f8f){return client[_0x3976('0x10')](_0x1e1dc7,_0x1fec5f)[_0x3976('0x11')](function(_0x17e31c){logger[_0x3976('0x12')](_0x3976('0x13'),_0x30c0ef,_0x3976('0x14'));logger[_0x3976('0x15')](_0x3976('0x16'),_0x30c0ef,'request\x20sent',JSON[_0x3976('0x17')](_0x17e31c));if(_0x17e31c[_0x3976('0x18')]){if(_0x17e31c[_0x3976('0x18')][_0x3976('0x19')]===0x1f4){logger[_0x3976('0x18')](_0x3976('0x13'),_0x30c0ef,_0x17e31c[_0x3976('0x18')][_0x3976('0x1a')]);return _0x246f8f(_0x17e31c[_0x3976('0x18')][_0x3976('0x1a')]);}logger[_0x3976('0x18')](_0x3976('0x13'),_0x30c0ef,_0x17e31c[_0x3976('0x18')][_0x3976('0x1a')]);return _0x2742e4(_0x17e31c['error'][_0x3976('0x1a')]);}else{logger[_0x3976('0x12')](_0x3976('0x13'),_0x30c0ef,'request\x20sent');_0x2742e4(_0x17e31c['result']['message']);}})['catch'](function(_0x7a0501){logger[_0x3976('0x18')](_0x3976('0x13'),_0x30c0ef,_0x7a0501);_0x246f8f(_0x7a0501);});});}exports[_0x3976('0x1b')]=function(_0x19d047){var _0x29db5d=this;return new Promise(function(_0x56460a,_0x9e61ea){return db[_0x3976('0x1c')]['findAll']({'raw':_0x19d047[_0x3976('0x1d')]?_0x19d047[_0x3976('0x1d')][_0x3976('0x1e')]===undefined?!![]:![]:!![],'where':_0x19d047[_0x3976('0x1d')]?_0x19d047['options'][_0x3976('0x1f')]||null:null,'attributes':_0x19d047['options']?_0x19d047['options'][_0x3976('0x20')]||null:null,'limit':_0x19d047[_0x3976('0x1d')]?_0x19d047[_0x3976('0x1d')]['limit']||null:null,'include':_0x19d047[_0x3976('0x1d')]?_0x19d047[_0x3976('0x1d')][_0x3976('0x21')]?_[_0x3976('0x22')](_0x19d047[_0x3976('0x1d')][_0x3976('0x21')],function(_0x31f64c){return{'model':db[_0x31f64c[_0x3976('0x23')]],'as':_0x31f64c['as'],'attributes':_0x31f64c['attributes'],'include':_0x31f64c[_0x3976('0x21')]?_[_0x3976('0x22')](_0x31f64c[_0x3976('0x21')],function(_0x5999d8){return{'model':db[_0x5999d8[_0x3976('0x23')]],'as':_0x5999d8['as'],'attributes':_0x5999d8[_0x3976('0x20')],'include':_0x5999d8['include']?_['map'](_0x5999d8[_0x3976('0x21')],function(_0x4394f1){return{'model':db[_0x4394f1[_0x3976('0x23')]],'as':_0x4394f1['as'],'attributes':_0x4394f1[_0x3976('0x20')]};}):[]};}):[]};}):[]:[]})[_0x3976('0x11')](function(_0x44bf8a){logger[_0x3976('0x12')](_0x3976('0x1b'),_0x19d047);logger[_0x3976('0x15')](_0x3976('0x1b'),_0x19d047,JSON[_0x3976('0x17')](_0x44bf8a));_0x56460a(_0x44bf8a);})['catch'](function(_0x5b03f1){logger[_0x3976('0x18')](_0x3976('0x1b'),_0x5b03f1[_0x3976('0x1a')],_0x19d047);_0x9e61ea(_0x29db5d['error'](0x1f4,_0x5b03f1[_0x3976('0x1a')]));});});};exports[_0x3976('0x24')]=function(_0x5be1db){var _0x25940a=this;return new Promise(function(_0x2225fb,_0x5eac05){return db[_0x3976('0x1c')][_0x3976('0x25')]({'raw':_0x5be1db[_0x3976('0x1d')]?_0x5be1db[_0x3976('0x1d')][_0x3976('0x1e')]===undefined?!![]:![]:!![],'where':_0x5be1db[_0x3976('0x1d')]?_0x5be1db[_0x3976('0x1d')]['where']||null:null,'attributes':_0x5be1db[_0x3976('0x1d')]?_0x5be1db[_0x3976('0x1d')][_0x3976('0x20')]||null:null,'include':_0x5be1db['options']?_0x5be1db['options']['include']?_['map'](_0x5be1db[_0x3976('0x1d')]['include'],function(_0x15c787){return{'model':db[_0x15c787[_0x3976('0x23')]],'as':_0x15c787['as'],'attributes':_0x15c787['attributes'],'include':_0x15c787[_0x3976('0x21')]?_[_0x3976('0x22')](_0x15c787[_0x3976('0x21')],function(_0x249a6a){return{'model':db[_0x249a6a['model']],'as':_0x249a6a['as'],'attributes':_0x249a6a[_0x3976('0x20')],'include':_0x249a6a[_0x3976('0x21')]?_[_0x3976('0x22')](_0x249a6a[_0x3976('0x21')],function(_0x45b23e){return{'model':db[_0x45b23e[_0x3976('0x23')]],'as':_0x45b23e['as'],'attributes':_0x45b23e[_0x3976('0x20')]};}):[]};}):[]};}):[]:[]})[_0x3976('0x11')](function(_0x5ed46d){logger['info'](_0x3976('0x24'),_0x5be1db);logger[_0x3976('0x15')](_0x3976('0x24'),_0x5be1db,JSON['stringify'](_0x5ed46d));_0x2225fb(_0x5ed46d);})['catch'](function(_0x36c08e){logger[_0x3976('0x18')](_0x3976('0x24'),_0x36c08e[_0x3976('0x1a')],_0x5be1db);_0x5eac05(_0x25940a['error'](0x1f4,_0x36c08e[_0x3976('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x012c=['removeListener','register','length','voiceQueue:','./voiceQueue.events','save','update','emit'];(function(_0x46538c,_0x3cdb9f){var _0x12130e=function(_0xff25e8){while(--_0xff25e8){_0x46538c['push'](_0x46538c['shift']());}};_0x12130e(++_0x3cdb9f);}(_0x012c,0x1ec));var _0xc012=function(_0x330d1f,_0x47c710){_0x330d1f=_0x330d1f-0x0;var _0x1df784=_0x012c[_0x330d1f];return _0x1df784;};'use strict';var VoiceQueueEvents=require(_0xc012('0x0'));var events=[_0xc012('0x1'),'remove',_0xc012('0x2')];function createListener(_0x4e0ad1,_0x2cec95){return function(_0x43f0d0){_0x2cec95[_0xc012('0x3')](_0x4e0ad1,_0x43f0d0);};}function removeListener(_0x4bbdbf,_0x387efb){return function(){VoiceQueueEvents[_0xc012('0x4')](_0x4bbdbf,_0x387efb);};}exports[_0xc012('0x5')]=function(_0x1fc21d){for(var _0x48a9f1=0x0,_0x402dc2=events[_0xc012('0x6')];_0x48a9f1<_0x402dc2;_0x48a9f1++){var _0x1118e1=events[_0x48a9f1];var _0x19f6b8=createListener(_0xc012('0x7')+_0x1118e1,_0x1fc21d);VoiceQueueEvents['on'](_0x1118e1,_0x19f6b8);}};
\ No newline at end of file
+var _0x22c8=['update','emit','register','voiceQueue:','./voiceQueue.events','save','remove'];(function(_0x1ca18a,_0x3235bc){var _0x8b22c6=function(_0x31f6ec){while(--_0x31f6ec){_0x1ca18a['push'](_0x1ca18a['shift']());}};_0x8b22c6(++_0x3235bc);}(_0x22c8,0x193));var _0x822c=function(_0x45d55e,_0x2fede3){_0x45d55e=_0x45d55e-0x0;var _0x29812a=_0x22c8[_0x45d55e];return _0x29812a;};'use strict';var VoiceQueueEvents=require(_0x822c('0x0'));var events=[_0x822c('0x1'),_0x822c('0x2'),_0x822c('0x3')];function createListener(_0x12a98f,_0x2f6f07){return function(_0xc17ad6){_0x2f6f07[_0x822c('0x4')](_0x12a98f,_0xc17ad6);};}function removeListener(_0x1f6420,_0x4ffc50){return function(){VoiceQueueEvents['removeListener'](_0x1f6420,_0x4ffc50);};}exports[_0x822c('0x5')]=function(_0x336a0b){for(var _0xd5011c=0x0,_0x584517=events['length'];_0xd5011c<_0x584517;_0xd5011c++){var _0x4dbf37=events[_0xd5011c];var _0x480c73=createListener(_0x822c('0x6')+_0x4dbf37,_0x336a0b);VoiceQueueEvents['on'](_0x4dbf37,_0x480c73);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc0f5=['get','isAuthenticated','/describe','describe','/index','getVoiceQueuesReport','/:id','show','create','put','update','delete','exports','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueueReport.controller'];(function(_0x299784,_0xb0918f){var _0x5ab008=function(_0x49c1f5){while(--_0x49c1f5){_0x299784['push'](_0x299784['shift']());}};_0x5ab008(++_0xb0918f);}(_0xc0f5,0x148));var _0x5c0f=function(_0x123325,_0x1747d7){_0x123325=_0x123325-0x0;var _0x5af2d4=_0xc0f5[_0x123325];return _0x5af2d4;};'use strict';var multer=require('multer');var util=require(_0x5c0f('0x0'));var path=require(_0x5c0f('0x1'));var timeout=require(_0x5c0f('0x2'));var express=require('express');var router=express[_0x5c0f('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x5c0f('0x4'));var interaction=require(_0x5c0f('0x5'));var config=require(_0x5c0f('0x6'));var controller=require(_0x5c0f('0x7'));router[_0x5c0f('0x8')]('/',auth[_0x5c0f('0x9')](),controller['index']);router[_0x5c0f('0x8')](_0x5c0f('0xa'),auth['isAuthenticated'](),controller[_0x5c0f('0xb')]);router[_0x5c0f('0x8')](_0x5c0f('0xc'),auth['isAuthenticated'](),controller[_0x5c0f('0xd')]);router['get'](_0x5c0f('0xe'),auth[_0x5c0f('0x9')](),controller[_0x5c0f('0xf')]);router['post']('/',auth[_0x5c0f('0x9')](),controller[_0x5c0f('0x10')]);router[_0x5c0f('0x11')]('/:id',auth[_0x5c0f('0x9')](),controller[_0x5c0f('0x12')]);router[_0x5c0f('0x13')](_0x5c0f('0xe'),auth[_0x5c0f('0x9')](),controller['destroy']);module[_0x5c0f('0x14')]=router;
\ No newline at end of file
+var _0x24e2=['delete','destroy','exports','multer','util','path','Router','../../components/auth/service','../../config/environment','./voiceQueueReport.controller','get','isAuthenticated','index','/describe','describe','/index','/:id','show','post','create','update'];(function(_0x5ea06d,_0x5148bc){var _0x126ab4=function(_0x2b1346){while(--_0x2b1346){_0x5ea06d['push'](_0x5ea06d['shift']());}};_0x126ab4(++_0x5148bc);}(_0x24e2,0xd5));var _0x224e=function(_0x5265dc,_0x24798b){_0x5265dc=_0x5265dc-0x0;var _0x4b24d4=_0x24e2[_0x5265dc];return _0x4b24d4;};'use strict';var multer=require(_0x224e('0x0'));var util=require(_0x224e('0x1'));var path=require(_0x224e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x224e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x224e('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x224e('0x5'));var controller=require(_0x224e('0x6'));router[_0x224e('0x7')]('/',auth[_0x224e('0x8')](),controller[_0x224e('0x9')]);router['get'](_0x224e('0xa'),auth[_0x224e('0x8')](),controller[_0x224e('0xb')]);router[_0x224e('0x7')](_0x224e('0xc'),auth[_0x224e('0x8')](),controller['getVoiceQueuesReport']);router[_0x224e('0x7')](_0x224e('0xd'),auth[_0x224e('0x8')](),controller[_0x224e('0xe')]);router[_0x224e('0xf')]('/',auth[_0x224e('0x8')](),controller[_0x224e('0x10')]);router['put'](_0x224e('0xd'),auth['isAuthenticated'](),controller[_0x224e('0x11')]);router[_0x224e('0x12')](_0x224e('0xd'),auth['isAuthenticated'](),controller[_0x224e('0x13')]);module[_0x224e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9155=['holdtime','INTEGER','BOOLEAN','COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','exports','STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','queuecallerleaveAt','setDataValue'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x9155,0x19d));var _0x5915=function(_0x4bd950,_0x184ed5){_0x4bd950=_0x4bd950-0x0;var _0x5dc59a=_0x9155[_0x4bd950];return _0x5dc59a;};'use strict';var Sequelize=require(_0x5915('0x0'));var moment=require('moment');module[_0x5915('0x1')]={'type':{'type':Sequelize[_0x5915('0x2')]},'uniqueid':{'type':Sequelize[_0x5915('0x2')]},'calleridnum':{'type':Sequelize[_0x5915('0x2')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x5915('0x2')]},'queuecallerjoinAt':{'type':Sequelize[_0x5915('0x3')]},'queuecallerleaveAt':{'type':Sequelize[_0x5915('0x3')],'set':function(_0x1cdbc2){var _0x748406=moment(_0x1cdbc2);var _0x31b1d5=moment(this[_0x5915('0x4')](_0x5915('0x5')))[_0x5915('0x6')](_0x5915('0x7'));var _0x2e5897=_0x748406[_0x5915('0x8')](_0x31b1d5,_0x5915('0x9'));this['setDataValue'](_0x5915('0xa'),_0x1cdbc2);this[_0x5915('0xb')](_0x5915('0xc'),_0x2e5897||null);}},'position':{'type':Sequelize[_0x5915('0xd')]},'count':{'type':Sequelize[_0x5915('0xd')]},'queuecallerabandon':{'type':Sequelize[_0x5915('0xe')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0x5915('0x3')]},'queuecallercomplete':{'type':Sequelize[_0x5915('0xe')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0x5915('0x3')]},'queuecallerexit':{'type':Sequelize[_0x5915('0xe')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0x5915('0x3')]},'queuecallerexitreason':{'type':Sequelize[_0x5915('0x2')],'comment':_0x5915('0xf')},'originalposition':{'type':Sequelize[_0x5915('0xd')]},'channel':{'type':Sequelize[_0x5915('0x2')]},'connectedlinenum':{'type':Sequelize[_0x5915('0x2')]},'connectedlinename':{'type':Sequelize[_0x5915('0x2')]},'accountcode':{'type':Sequelize[_0x5915('0x2')]},'context':{'type':Sequelize[_0x5915('0x2')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x5915('0x2')]},'holdtime':{'type':Sequelize[_0x5915('0xd')]},'mohtime':{'type':Sequelize[_0x5915('0xd')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x5915('0xe')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0x5915('0x2')]},'transfer':{'type':Sequelize[_0x5915('0xe')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x5915('0x2')],'comment':_0x5915('0x10')},'transferexten':{'type':Sequelize[_0x5915('0x2')]},'transferuniqueid':{'type':Sequelize[_0x5915('0x2')]},'disposition':{'type':Sequelize[_0x5915('0x2')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize['STRING']},'queuecallerenterreason':{'type':Sequelize[_0x5915('0xd')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xcf04=['seconds','setDataValue','queuecallerleaveAt','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED','sequelize','moment','exports','STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff'];(function(_0x5568f3,_0x9bdfe2){var _0x25a4ec=function(_0x32ea0a){while(--_0x32ea0a){_0x5568f3['push'](_0x5568f3['shift']());}};_0x25a4ec(++_0x9bdfe2);}(_0xcf04,0xf6));var _0x4cf0=function(_0xc17a39,_0x5d6dad){_0xc17a39=_0xc17a39-0x0;var _0x13e917=_0xcf04[_0xc17a39];return _0x13e917;};'use strict';var Sequelize=require(_0x4cf0('0x0'));var moment=require(_0x4cf0('0x1'));module[_0x4cf0('0x2')]={'type':{'type':Sequelize[_0x4cf0('0x3')]},'uniqueid':{'type':Sequelize[_0x4cf0('0x3')]},'calleridnum':{'type':Sequelize[_0x4cf0('0x3')]},'calleridname':{'type':Sequelize[_0x4cf0('0x3')]},'queue':{'type':Sequelize[_0x4cf0('0x3')]},'queuecallerjoinAt':{'type':Sequelize[_0x4cf0('0x4')]},'queuecallerleaveAt':{'type':Sequelize[_0x4cf0('0x4')],'set':function(_0x410ef6){var _0x345994=moment(_0x410ef6);var _0x225e14=moment(this[_0x4cf0('0x5')](_0x4cf0('0x6')))[_0x4cf0('0x7')](_0x4cf0('0x8'));var _0x4adcd7=_0x345994[_0x4cf0('0x9')](_0x225e14,_0x4cf0('0xa'));this[_0x4cf0('0xb')](_0x4cf0('0xc'),_0x410ef6);this[_0x4cf0('0xb')]('holdtime',_0x4adcd7||null);}},'position':{'type':Sequelize['INTEGER']},'count':{'type':Sequelize[_0x4cf0('0xd')]},'queuecallerabandon':{'type':Sequelize[_0x4cf0('0xe')],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize['DATE']},'queuecallercomplete':{'type':Sequelize[_0x4cf0('0xe')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0x4cf0('0x4')]},'queuecallerexit':{'type':Sequelize[_0x4cf0('0xe')],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize[_0x4cf0('0x4')]},'queuecallerexitreason':{'type':Sequelize[_0x4cf0('0x3')],'comment':'COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT'},'originalposition':{'type':Sequelize['INTEGER']},'channel':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x4cf0('0x3')]},'connectedlinename':{'type':Sequelize[_0x4cf0('0x3')]},'accountcode':{'type':Sequelize[_0x4cf0('0x3')]},'context':{'type':Sequelize[_0x4cf0('0x3')]},'exten':{'type':Sequelize[_0x4cf0('0x3')]},'priority':{'type':Sequelize[_0x4cf0('0x3')]},'holdtime':{'type':Sequelize[_0x4cf0('0xd')]},'mohtime':{'type':Sequelize[_0x4cf0('0xd')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0x4cf0('0xe')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0x4cf0('0x3')]},'transfer':{'type':Sequelize[_0x4cf0('0xe')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x4cf0('0x3')],'comment':_0x4cf0('0xf')},'transferexten':{'type':Sequelize[_0x4cf0('0x3')]},'transferuniqueid':{'type':Sequelize[_0x4cf0('0x3')]},'disposition':{'type':Sequelize[_0x4cf0('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x4cf0('0x3')]},'queuecallerenterreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebc6=['socket.io-emitter','./voiceQueueReport.socket','sendStatus','status','end','undefined','limit','count','offset','Content-Range','json','apply','reject','save','then','destroy','error','stack','name','send','VoiceQueueReport','fieldName','type','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','create','body','describe','getVoiceQueuesReport','order','pick','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','defaults','redis','localhost'];(function(_0x2ba0f9,_0x563faa){var _0xf8ad6e=function(_0x505be0){while(--_0x505be0){_0x2ba0f9['push'](_0x2ba0f9['shift']());}};_0xf8ad6e(++_0x563faa);}(_0xebc6,0x1d0));var _0x6ebc=function(_0x3074f1,_0x4901aa){_0x3074f1=_0x3074f1-0x0;var _0x149af8=_0xebc6[_0x3074f1];return _0x149af8;};'use strict';var emlformat=require(_0x6ebc('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6ebc('0x1'));var rp=require(_0x6ebc('0x2'));var moment=require(_0x6ebc('0x3'));var BPromise=require(_0x6ebc('0x4'));var Mustache=require(_0x6ebc('0x5'));var util=require(_0x6ebc('0x6'));var path=require(_0x6ebc('0x7'));var sox=require(_0x6ebc('0x8'));var csv=require('to-csv');var ejs=require(_0x6ebc('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x6ebc('0xa'));var crypto=require(_0x6ebc('0xb'));var jsforce=require(_0x6ebc('0xc'));var deskjs=require(_0x6ebc('0xd'));var toCsv=require(_0x6ebc('0xe'));var querystring=require(_0x6ebc('0xf'));var Papa=require(_0x6ebc('0x10'));var Redis=require('ioredis');var authService=require(_0x6ebc('0x11'));var qs=require(_0x6ebc('0x12'));var as=require(_0x6ebc('0x13'));var hardwareService=require(_0x6ebc('0x14'));var logger=require(_0x6ebc('0x15'))(_0x6ebc('0x16'));var utils=require(_0x6ebc('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x6ebc('0x18'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x6ebc('0x19')](config[_0x6ebc('0x1a')],{'host':_0x6ebc('0x1b'),'port':0x18eb});var socket=require(_0x6ebc('0x1c'))(new Redis(config[_0x6ebc('0x1a')]));require(_0x6ebc('0x1d'))['register'](socket);function respondWithStatusCode(_0x312a19,_0x1b3de7){_0x1b3de7=_0x1b3de7||0xcc;return function(_0x1f24ef){if(_0x1f24ef){return _0x312a19[_0x6ebc('0x1e')](_0x1b3de7);}return _0x312a19[_0x6ebc('0x1f')](_0x1b3de7)[_0x6ebc('0x20')]();};}function respondWithResult(_0x3a9428,_0x20545d){_0x20545d=_0x20545d||0xc8;return function(_0x4eddc5){if(_0x4eddc5){return _0x3a9428[_0x6ebc('0x1f')](_0x20545d)['json'](_0x4eddc5);}};}function respondWithFilteredResult(_0x1772cd,_0x5e6d5c){return function(_0x32b550){if(_0x32b550){var _0x14f0fb=typeof _0x5e6d5c['offset']===_0x6ebc('0x21')&&typeof _0x5e6d5c[_0x6ebc('0x22')]===_0x6ebc('0x21');var _0x189e26=_0x32b550[_0x6ebc('0x23')];var _0x51dd30=_0x14f0fb?0x0:_0x5e6d5c[_0x6ebc('0x24')];var _0x1e6aea=_0x14f0fb?_0x32b550['count']:_0x5e6d5c[_0x6ebc('0x24')]+_0x5e6d5c[_0x6ebc('0x22')];var _0x3a8d2f;if(_0x1e6aea>=_0x189e26){_0x1e6aea=_0x189e26;_0x3a8d2f=0xc8;}else{_0x3a8d2f=0xce;}_0x1772cd[_0x6ebc('0x1f')](_0x3a8d2f);return _0x1772cd['set'](_0x6ebc('0x25'),_0x51dd30+'-'+_0x1e6aea+'/'+_0x189e26)[_0x6ebc('0x26')](_0x32b550);}return null;};}function patchUpdates(_0x500275){return function(_0x4d87d0){try{jsonpatch[_0x6ebc('0x27')](_0x4d87d0,_0x500275,!![]);}catch(_0x40016f){return BPromise[_0x6ebc('0x28')](_0x40016f);}return _0x4d87d0[_0x6ebc('0x29')]();};}function saveUpdates(_0x10dcc1,_0x3ff839){return function(_0x6f4082){if(_0x6f4082){return _0x6f4082['update'](_0x10dcc1)[_0x6ebc('0x2a')](function(_0x3f2f4d){return _0x3f2f4d;});}return null;};}function removeEntity(_0x5d10bf,_0x151d3d){return function(_0x1a1254){if(_0x1a1254){return _0x1a1254[_0x6ebc('0x2b')]()['then'](function(){_0x5d10bf[_0x6ebc('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e787d,_0x5991fa){return function(_0x1c3462){if(!_0x1c3462){_0x4e787d[_0x6ebc('0x1e')](0x194);}return _0x1c3462;};}function handleError(_0xf3aaff,_0xd8c9a4){_0xd8c9a4=_0xd8c9a4||0x1f4;return function(_0x30b96c){logger[_0x6ebc('0x2c')](_0x30b96c[_0x6ebc('0x2d')]);if(_0x30b96c['name']){delete _0x30b96c[_0x6ebc('0x2e')];}_0xf3aaff[_0x6ebc('0x1f')](_0xd8c9a4)[_0x6ebc('0x2f')](_0x30b96c);};}exports['index']=function(_0x38ac08,_0x42bce7){var _0x1b5cea={},_0x3c9c3c={},_0x4e0b47={'count':0x0,'rows':[]};var _0x352b73=_['map'](db[_0x6ebc('0x30')]['rawAttributes'],function(_0xd17776){return{'name':_0xd17776[_0x6ebc('0x31')],'type':_0xd17776[_0x6ebc('0x32')]['key']};});_0x3c9c3c[_0x6ebc('0x33')]=_[_0x6ebc('0x34')](_0x352b73,_0x6ebc('0x2e'));_0x3c9c3c[_0x6ebc('0x35')]=_[_0x6ebc('0x36')](_0x38ac08[_0x6ebc('0x35')]);_0x3c9c3c['filters']=_[_0x6ebc('0x37')](_0x3c9c3c[_0x6ebc('0x33')],_0x3c9c3c[_0x6ebc('0x35')]);_0x1b5cea[_0x6ebc('0x38')]=_[_0x6ebc('0x37')](_0x3c9c3c['model'],qs[_0x6ebc('0x39')](_0x38ac08['query']['fields']));_0x1b5cea['attributes']=_0x1b5cea[_0x6ebc('0x38')][_0x6ebc('0x3a')]?_0x1b5cea[_0x6ebc('0x38')]:_0x3c9c3c[_0x6ebc('0x33')];if(!_0x38ac08['query'][_0x6ebc('0x3b')](_0x6ebc('0x3c'))){_0x1b5cea[_0x6ebc('0x22')]=qs[_0x6ebc('0x22')](_0x38ac08[_0x6ebc('0x35')][_0x6ebc('0x22')]);_0x1b5cea[_0x6ebc('0x24')]=qs[_0x6ebc('0x24')](_0x38ac08['query'][_0x6ebc('0x24')]);}_0x1b5cea['order']=qs[_0x6ebc('0x3d')](_0x38ac08[_0x6ebc('0x35')][_0x6ebc('0x3d')]);_0x1b5cea[_0x6ebc('0x3e')]=qs[_0x6ebc('0x3f')](_['pick'](_0x38ac08[_0x6ebc('0x35')],_0x3c9c3c[_0x6ebc('0x3f')]),_0x352b73);if(_0x38ac08[_0x6ebc('0x35')][_0x6ebc('0x40')]){_0x1b5cea[_0x6ebc('0x3e')]=_[_0x6ebc('0x41')](_0x1b5cea[_0x6ebc('0x3e')],{'$or':_[_0x6ebc('0x34')](_0x352b73,function(_0xc09a3d){if(_0xc09a3d[_0x6ebc('0x32')]!=='VIRTUAL'){var _0x59203b={};_0x59203b[_0xc09a3d['name']]={'$like':'%'+_0x38ac08[_0x6ebc('0x35')][_0x6ebc('0x40')]+'%'};return _0x59203b;}})});}_0x1b5cea=_['merge']({},_0x1b5cea,_0x38ac08[_0x6ebc('0x42')]);var _0x4e4b51={'where':_0x1b5cea[_0x6ebc('0x3e')]};return db['VoiceQueueReport']['count'](_0x4e4b51)[_0x6ebc('0x2a')](function(_0x31f347){_0x4e0b47[_0x6ebc('0x23')]=_0x31f347;if(_0x38ac08['query'][_0x6ebc('0x43')]){_0x1b5cea[_0x6ebc('0x44')]=[{'all':!![]}];}return db[_0x6ebc('0x30')][_0x6ebc('0x45')](_0x1b5cea);})[_0x6ebc('0x2a')](function(_0x1f24b5){_0x4e0b47[_0x6ebc('0x46')]=_0x1f24b5;return _0x4e0b47;})[_0x6ebc('0x2a')](respondWithFilteredResult(_0x42bce7,_0x1b5cea))[_0x6ebc('0x47')](handleError(_0x42bce7,null));};exports[_0x6ebc('0x48')]=function(_0x26dfd6,_0x3c066b){var _0x1664d1={'raw':![],'where':{'id':_0x26dfd6[_0x6ebc('0x49')]['id']}},_0x165efc={};_0x165efc[_0x6ebc('0x33')]=_[_0x6ebc('0x36')](db[_0x6ebc('0x30')][_0x6ebc('0x4a')]);_0x165efc[_0x6ebc('0x35')]=_[_0x6ebc('0x36')](_0x26dfd6[_0x6ebc('0x35')]);_0x165efc['filters']=_[_0x6ebc('0x37')](_0x165efc[_0x6ebc('0x33')],_0x165efc['query']);_0x1664d1[_0x6ebc('0x38')]=_[_0x6ebc('0x37')](_0x165efc[_0x6ebc('0x33')],qs[_0x6ebc('0x39')](_0x26dfd6[_0x6ebc('0x35')]['fields']));_0x1664d1[_0x6ebc('0x38')]=_0x1664d1[_0x6ebc('0x38')][_0x6ebc('0x3a')]?_0x1664d1[_0x6ebc('0x38')]:_0x165efc[_0x6ebc('0x33')];if(_0x26dfd6['query']['includeAll']){_0x1664d1[_0x6ebc('0x44')]=[{'all':!![]}];}_0x1664d1=_[_0x6ebc('0x41')]({},_0x1664d1,_0x26dfd6[_0x6ebc('0x42')]);return db[_0x6ebc('0x30')][_0x6ebc('0x4b')](_0x1664d1)[_0x6ebc('0x2a')](handleEntityNotFound(_0x3c066b,null))['then'](respondWithResult(_0x3c066b,null))[_0x6ebc('0x47')](handleError(_0x3c066b,null));};exports['create']=function(_0x2cf81a,_0x1ebe59){return db[_0x6ebc('0x30')][_0x6ebc('0x4c')](_0x2cf81a[_0x6ebc('0x4d')],{})[_0x6ebc('0x2a')](respondWithResult(_0x1ebe59,0xc9))[_0x6ebc('0x47')](handleError(_0x1ebe59,null));};exports['update']=function(_0xa952a9,_0x13f7b3){if(_0xa952a9['body']['id']){delete _0xa952a9['body']['id'];}return db[_0x6ebc('0x30')][_0x6ebc('0x4b')]({'where':{'id':_0xa952a9['params']['id']}})['then'](handleEntityNotFound(_0x13f7b3,null))[_0x6ebc('0x2a')](saveUpdates(_0xa952a9[_0x6ebc('0x4d')],null))[_0x6ebc('0x2a')](respondWithResult(_0x13f7b3,null))[_0x6ebc('0x47')](handleError(_0x13f7b3,null));};exports[_0x6ebc('0x2b')]=function(_0x413256,_0x189648){return db[_0x6ebc('0x30')][_0x6ebc('0x4b')]({'where':{'id':_0x413256[_0x6ebc('0x49')]['id']}})[_0x6ebc('0x2a')](handleEntityNotFound(_0x189648,null))[_0x6ebc('0x2a')](removeEntity(_0x189648,null))[_0x6ebc('0x47')](handleError(_0x189648,null));};exports[_0x6ebc('0x4e')]=function(_0xa6b903,_0x27ec8b){return db['VoiceQueueReport']['describe']()[_0x6ebc('0x2a')](respondWithResult(_0x27ec8b,null))[_0x6ebc('0x47')](handleError(_0x27ec8b,null));};exports[_0x6ebc('0x4f')]=function(_0x240829,_0x4bc143){var _0x32b03e={},_0x520c5e={},_0x446ebb={'count':0x0,'rows':[]};_0x520c5e[_0x6ebc('0x33')]=_['keys'](db[_0x6ebc('0x30')][_0x6ebc('0x4a')]);_0x520c5e[_0x6ebc('0x35')]=_[_0x6ebc('0x36')](_0x240829['query']);_0x520c5e[_0x6ebc('0x3f')]=_[_0x6ebc('0x37')](_0x520c5e[_0x6ebc('0x33')],_0x520c5e['query']);_0x32b03e[_0x6ebc('0x38')]=_[_0x6ebc('0x37')](_0x520c5e[_0x6ebc('0x33')],qs[_0x6ebc('0x39')](_0x240829[_0x6ebc('0x35')][_0x6ebc('0x39')]));_0x32b03e[_0x6ebc('0x38')]=_0x32b03e[_0x6ebc('0x38')][_0x6ebc('0x3a')]?_0x32b03e[_0x6ebc('0x38')]:_0x520c5e['model'];if(!_0x240829[_0x6ebc('0x35')][_0x6ebc('0x3b')](_0x6ebc('0x3c'))){_0x32b03e[_0x6ebc('0x22')]=qs[_0x6ebc('0x22')](_0x240829['query'][_0x6ebc('0x22')]);_0x32b03e['offset']=qs[_0x6ebc('0x24')](_0x240829[_0x6ebc('0x35')]['offset']);}_0x32b03e[_0x6ebc('0x50')]=qs[_0x6ebc('0x3d')](_0x240829[_0x6ebc('0x35')]['sort']);_0x32b03e[_0x6ebc('0x3e')]=qs[_0x6ebc('0x3f')](_[_0x6ebc('0x51')](_0x240829[_0x6ebc('0x35')],_0x520c5e[_0x6ebc('0x3f')]));if(_0x240829[_0x6ebc('0x35')]['filter']){_0x32b03e['where']=_[_0x6ebc('0x41')](_0x32b03e[_0x6ebc('0x3e')],{'$or':_[_0x6ebc('0x34')](_0x32b03e['attributes'],function(_0x37b092){var _0x9a53f2={};_0x9a53f2[_0x37b092]={'$like':'%'+_0x240829[_0x6ebc('0x35')][_0x6ebc('0x40')]+'%'};return _0x9a53f2;})});}_0x32b03e=_['merge']({},_0x32b03e,_0x240829[_0x6ebc('0x42')]);var _0x10721c={'where':_0x32b03e[_0x6ebc('0x3e')]};return db[_0x6ebc('0x30')]['count'](_0x10721c)[_0x6ebc('0x2a')](function(_0x5339b5){_0x446ebb['count']=_0x5339b5;if(_0x240829['query'][_0x6ebc('0x43')]){_0x32b03e['include']=[{'all':!![]}];}return db[_0x6ebc('0x30')][_0x6ebc('0x45')](_0x32b03e);})['then'](function(_0x3cee5e){_0x446ebb['rows']=_0x3cee5e;return _0x446ebb;})['then'](respondWithFilteredResult(_0x4bc143,_0x32b03e,_0x6ebc('0x4f')))[_0x6ebc('0x47')](handleError(_0x4bc143,null,'getVoiceQueuesReport'));};
\ No newline at end of file
+var _0x4ba3=['create','body','find','describe','getVoiceQueuesReport','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueueReport.socket','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','end','stack','name','send','map','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','VoiceQueueReport','includeAll','include','findAll','rows','show','params','catch'];(function(_0x286fee,_0x167eb0){var _0x1585fc=function(_0xbd5973){while(--_0xbd5973){_0x286fee['push'](_0x286fee['shift']());}};_0x1585fc(++_0x167eb0);}(_0x4ba3,0x13d));var _0x34ba=function(_0x1612d6,_0x5577bf){_0x1612d6=_0x1612d6-0x0;var _0x27a583=_0x4ba3[_0x1612d6];return _0x27a583;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x34ba('0x0'));var zipdir=require(_0x34ba('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x34ba('0x2'));var moment=require(_0x34ba('0x3'));var BPromise=require(_0x34ba('0x4'));var Mustache=require(_0x34ba('0x5'));var util=require('util');var path=require(_0x34ba('0x6'));var sox=require(_0x34ba('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x34ba('0x8'));var _=require(_0x34ba('0x9'));var squel=require(_0x34ba('0xa'));var crypto=require('crypto');var jsforce=require(_0x34ba('0xb'));var deskjs=require(_0x34ba('0xc'));var toCsv=require('to-csv');var querystring=require(_0x34ba('0xd'));var Papa=require(_0x34ba('0xe'));var Redis=require('ioredis');var authService=require(_0x34ba('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x34ba('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x34ba('0x11'))('api');var utils=require(_0x34ba('0x12'));var config=require(_0x34ba('0x13'));var licenseUtil=require(_0x34ba('0x14'));var db=require(_0x34ba('0x15'))['db'];config[_0x34ba('0x16')]=_[_0x34ba('0x17')](config[_0x34ba('0x16')],{'host':_0x34ba('0x18'),'port':0x18eb});var socket=require(_0x34ba('0x19'))(new Redis(config['redis']));require(_0x34ba('0x1a'))['register'](socket);function respondWithStatusCode(_0x12bbe2,_0x4f1332){_0x4f1332=_0x4f1332||0xcc;return function(_0x331257){if(_0x331257){return _0x12bbe2[_0x34ba('0x1b')](_0x4f1332);}return _0x12bbe2[_0x34ba('0x1c')](_0x4f1332)['end']();};}function respondWithResult(_0x5ce9a2,_0x586657){_0x586657=_0x586657||0xc8;return function(_0x4b8e7b){if(_0x4b8e7b){return _0x5ce9a2[_0x34ba('0x1c')](_0x586657)[_0x34ba('0x1d')](_0x4b8e7b);}};}function respondWithFilteredResult(_0x46f4d6,_0x483a01){return function(_0x2098b1){if(_0x2098b1){var _0x502e62=typeof _0x483a01[_0x34ba('0x1e')]===_0x34ba('0x1f')&&typeof _0x483a01['limit']==='undefined';var _0x46dd82=_0x2098b1[_0x34ba('0x20')];var _0x597646=_0x502e62?0x0:_0x483a01[_0x34ba('0x1e')];var _0x15c2b8=_0x502e62?_0x2098b1[_0x34ba('0x20')]:_0x483a01[_0x34ba('0x1e')]+_0x483a01[_0x34ba('0x21')];var _0x26278c;if(_0x15c2b8>=_0x46dd82){_0x15c2b8=_0x46dd82;_0x26278c=0xc8;}else{_0x26278c=0xce;}_0x46f4d6[_0x34ba('0x1c')](_0x26278c);return _0x46f4d6[_0x34ba('0x22')](_0x34ba('0x23'),_0x597646+'-'+_0x15c2b8+'/'+_0x46dd82)[_0x34ba('0x1d')](_0x2098b1);}return null;};}function patchUpdates(_0xc80aa8){return function(_0x999ac5){try{jsonpatch[_0x34ba('0x24')](_0x999ac5,_0xc80aa8,!![]);}catch(_0x2c1edf){return BPromise[_0x34ba('0x25')](_0x2c1edf);}return _0x999ac5['save']();};}function saveUpdates(_0x2fbbc2,_0x1bd04b){return function(_0x259d9b){if(_0x259d9b){return _0x259d9b[_0x34ba('0x26')](_0x2fbbc2)['then'](function(_0xad1297){return _0xad1297;});}return null;};}function removeEntity(_0x56219d,_0x5c2d4e){return function(_0x1de11f){if(_0x1de11f){return _0x1de11f['destroy']()[_0x34ba('0x27')](function(){_0x56219d['status'](0xcc)[_0x34ba('0x28')]();});}};}function handleEntityNotFound(_0x48bab0,_0x32ccba){return function(_0x3e8b48){if(!_0x3e8b48){_0x48bab0[_0x34ba('0x1b')](0x194);}return _0x3e8b48;};}function handleError(_0x6b61ae,_0x558010){_0x558010=_0x558010||0x1f4;return function(_0x49e020){logger['error'](_0x49e020[_0x34ba('0x29')]);if(_0x49e020[_0x34ba('0x2a')]){delete _0x49e020[_0x34ba('0x2a')];}_0x6b61ae[_0x34ba('0x1c')](_0x558010)[_0x34ba('0x2b')](_0x49e020);};}exports['index']=function(_0x43e04a,_0x56313c){var _0x66c121={},_0x3b7f81={},_0x198e06={'count':0x0,'rows':[]};var _0x2417be=_[_0x34ba('0x2c')](db['VoiceQueueReport'][_0x34ba('0x2d')],function(_0x51cc67){return{'name':_0x51cc67['fieldName'],'type':_0x51cc67[_0x34ba('0x2e')][_0x34ba('0x2f')]};});_0x3b7f81[_0x34ba('0x30')]=_[_0x34ba('0x2c')](_0x2417be,_0x34ba('0x2a'));_0x3b7f81[_0x34ba('0x31')]=_[_0x34ba('0x32')](_0x43e04a[_0x34ba('0x31')]);_0x3b7f81[_0x34ba('0x33')]=_[_0x34ba('0x34')](_0x3b7f81[_0x34ba('0x30')],_0x3b7f81['query']);_0x66c121[_0x34ba('0x35')]=_['intersection'](_0x3b7f81['model'],qs[_0x34ba('0x36')](_0x43e04a[_0x34ba('0x31')][_0x34ba('0x36')]));_0x66c121[_0x34ba('0x35')]=_0x66c121[_0x34ba('0x35')][_0x34ba('0x37')]?_0x66c121[_0x34ba('0x35')]:_0x3b7f81[_0x34ba('0x30')];if(!_0x43e04a['query'][_0x34ba('0x38')](_0x34ba('0x39'))){_0x66c121[_0x34ba('0x21')]=qs[_0x34ba('0x21')](_0x43e04a[_0x34ba('0x31')][_0x34ba('0x21')]);_0x66c121[_0x34ba('0x1e')]=qs['offset'](_0x43e04a[_0x34ba('0x31')][_0x34ba('0x1e')]);}_0x66c121[_0x34ba('0x3a')]=qs['sort'](_0x43e04a[_0x34ba('0x31')][_0x34ba('0x3b')]);_0x66c121[_0x34ba('0x3c')]=qs[_0x34ba('0x33')](_[_0x34ba('0x3d')](_0x43e04a[_0x34ba('0x31')],_0x3b7f81['filters']),_0x2417be);if(_0x43e04a['query'][_0x34ba('0x3e')]){_0x66c121[_0x34ba('0x3c')]=_[_0x34ba('0x3f')](_0x66c121[_0x34ba('0x3c')],{'$or':_[_0x34ba('0x2c')](_0x2417be,function(_0x3a0c79){if(_0x3a0c79[_0x34ba('0x2e')]!=='VIRTUAL'){var _0x5ce604={};_0x5ce604[_0x3a0c79['name']]={'$like':'%'+_0x43e04a['query'][_0x34ba('0x3e')]+'%'};return _0x5ce604;}})});}_0x66c121=_[_0x34ba('0x3f')]({},_0x66c121,_0x43e04a[_0x34ba('0x40')]);var _0x3bcfcc={'where':_0x66c121[_0x34ba('0x3c')]};return db[_0x34ba('0x41')][_0x34ba('0x20')](_0x3bcfcc)['then'](function(_0x729379){_0x198e06[_0x34ba('0x20')]=_0x729379;if(_0x43e04a['query'][_0x34ba('0x42')]){_0x66c121[_0x34ba('0x43')]=[{'all':!![]}];}return db[_0x34ba('0x41')][_0x34ba('0x44')](_0x66c121);})[_0x34ba('0x27')](function(_0x1d4670){_0x198e06[_0x34ba('0x45')]=_0x1d4670;return _0x198e06;})[_0x34ba('0x27')](respondWithFilteredResult(_0x56313c,_0x66c121))['catch'](handleError(_0x56313c,null));};exports[_0x34ba('0x46')]=function(_0x3a0e3d,_0x1277d4){var _0x337f08={'raw':![],'where':{'id':_0x3a0e3d[_0x34ba('0x47')]['id']}},_0x49761a={};_0x49761a[_0x34ba('0x30')]=_[_0x34ba('0x32')](db[_0x34ba('0x41')]['rawAttributes']);_0x49761a[_0x34ba('0x31')]=_[_0x34ba('0x32')](_0x3a0e3d[_0x34ba('0x31')]);_0x49761a[_0x34ba('0x33')]=_[_0x34ba('0x34')](_0x49761a[_0x34ba('0x30')],_0x49761a['query']);_0x337f08[_0x34ba('0x35')]=_[_0x34ba('0x34')](_0x49761a[_0x34ba('0x30')],qs['fields'](_0x3a0e3d['query'][_0x34ba('0x36')]));_0x337f08['attributes']=_0x337f08[_0x34ba('0x35')][_0x34ba('0x37')]?_0x337f08[_0x34ba('0x35')]:_0x49761a['model'];if(_0x3a0e3d[_0x34ba('0x31')][_0x34ba('0x42')]){_0x337f08[_0x34ba('0x43')]=[{'all':!![]}];}_0x337f08=_[_0x34ba('0x3f')]({},_0x337f08,_0x3a0e3d[_0x34ba('0x40')]);return db[_0x34ba('0x41')]['find'](_0x337f08)[_0x34ba('0x27')](handleEntityNotFound(_0x1277d4,null))[_0x34ba('0x27')](respondWithResult(_0x1277d4,null))[_0x34ba('0x48')](handleError(_0x1277d4,null));};exports[_0x34ba('0x49')]=function(_0x4522e4,_0x5da2af){return db[_0x34ba('0x41')][_0x34ba('0x49')](_0x4522e4['body'],{})[_0x34ba('0x27')](respondWithResult(_0x5da2af,0xc9))['catch'](handleError(_0x5da2af,null));};exports[_0x34ba('0x26')]=function(_0xb6d383,_0xb92a9f){if(_0xb6d383[_0x34ba('0x4a')]['id']){delete _0xb6d383[_0x34ba('0x4a')]['id'];}return db[_0x34ba('0x41')]['find']({'where':{'id':_0xb6d383[_0x34ba('0x47')]['id']}})[_0x34ba('0x27')](handleEntityNotFound(_0xb92a9f,null))['then'](saveUpdates(_0xb6d383[_0x34ba('0x4a')],null))[_0x34ba('0x27')](respondWithResult(_0xb92a9f,null))[_0x34ba('0x48')](handleError(_0xb92a9f,null));};exports['destroy']=function(_0x5e2f29,_0x5d0fca){return db[_0x34ba('0x41')][_0x34ba('0x4b')]({'where':{'id':_0x5e2f29['params']['id']}})[_0x34ba('0x27')](handleEntityNotFound(_0x5d0fca,null))[_0x34ba('0x27')](removeEntity(_0x5d0fca,null))[_0x34ba('0x48')](handleError(_0x5d0fca,null));};exports['describe']=function(_0x7f307,_0x13deda){return db[_0x34ba('0x41')][_0x34ba('0x4c')]()['then'](respondWithResult(_0x13deda,null))[_0x34ba('0x48')](handleError(_0x13deda,null));};exports[_0x34ba('0x4d')]=function(_0x22ae39,_0x1b806){var _0x239879={},_0x54355e={},_0x251bf7={'count':0x0,'rows':[]};_0x54355e[_0x34ba('0x30')]=_[_0x34ba('0x32')](db[_0x34ba('0x41')][_0x34ba('0x2d')]);_0x54355e[_0x34ba('0x31')]=_['keys'](_0x22ae39['query']);_0x54355e[_0x34ba('0x33')]=_[_0x34ba('0x34')](_0x54355e['model'],_0x54355e[_0x34ba('0x31')]);_0x239879[_0x34ba('0x35')]=_[_0x34ba('0x34')](_0x54355e[_0x34ba('0x30')],qs[_0x34ba('0x36')](_0x22ae39[_0x34ba('0x31')]['fields']));_0x239879['attributes']=_0x239879[_0x34ba('0x35')][_0x34ba('0x37')]?_0x239879[_0x34ba('0x35')]:_0x54355e['model'];if(!_0x22ae39[_0x34ba('0x31')][_0x34ba('0x38')](_0x34ba('0x39'))){_0x239879['limit']=qs[_0x34ba('0x21')](_0x22ae39['query'][_0x34ba('0x21')]);_0x239879[_0x34ba('0x1e')]=qs[_0x34ba('0x1e')](_0x22ae39[_0x34ba('0x31')][_0x34ba('0x1e')]);}_0x239879[_0x34ba('0x3a')]=qs[_0x34ba('0x3b')](_0x22ae39[_0x34ba('0x31')]['sort']);_0x239879[_0x34ba('0x3c')]=qs[_0x34ba('0x33')](_[_0x34ba('0x3d')](_0x22ae39[_0x34ba('0x31')],_0x54355e[_0x34ba('0x33')]));if(_0x22ae39['query'][_0x34ba('0x3e')]){_0x239879[_0x34ba('0x3c')]=_[_0x34ba('0x3f')](_0x239879[_0x34ba('0x3c')],{'$or':_[_0x34ba('0x2c')](_0x239879['attributes'],function(_0x1c5e1c){var _0x3abc8a={};_0x3abc8a[_0x1c5e1c]={'$like':'%'+_0x22ae39['query'][_0x34ba('0x3e')]+'%'};return _0x3abc8a;})});}_0x239879=_[_0x34ba('0x3f')]({},_0x239879,_0x22ae39['options']);var _0x4cd4a6={'where':_0x239879[_0x34ba('0x3c')]};return db[_0x34ba('0x41')]['count'](_0x4cd4a6)[_0x34ba('0x27')](function(_0x27b773){_0x251bf7[_0x34ba('0x20')]=_0x27b773;if(_0x22ae39[_0x34ba('0x31')][_0x34ba('0x42')]){_0x239879[_0x34ba('0x43')]=[{'all':!![]}];}return db[_0x34ba('0x41')][_0x34ba('0x44')](_0x239879);})['then'](function(_0x3a2708){_0x251bf7[_0x34ba('0x45')]=_0x3a2708;return _0x251bf7;})[_0x34ba('0x27')](respondWithFilteredResult(_0x1b806,_0x239879,'getVoiceQueuesReport'))['catch'](handleError(_0x1b806,null,_0x34ba('0x4d')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3c4=['save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','VoiceQueueReport','setMaxListeners'];(function(_0x362c1f,_0x21580e){var _0x48ba7d=function(_0x7311d3){while(--_0x7311d3){_0x362c1f['push'](_0x362c1f['shift']());}};_0x48ba7d(++_0x21580e);}(_0xe3c4,0x193));var _0x4e3c=function(_0x472b9a,_0x5e89cd){_0x472b9a=_0x472b9a-0x0;var _0x2bc47c=_0xe3c4[_0x472b9a];return _0x2bc47c;};'use strict';var EventEmitter=require(_0x4e3c('0x0'));var VoiceQueueReport=require(_0x4e3c('0x1'))['db'][_0x4e3c('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0x4e3c('0x3')](0x0);var events={'afterCreate':_0x4e3c('0x4'),'afterUpdate':_0x4e3c('0x5'),'afterDestroy':_0x4e3c('0x6')};function emitEvent(_0xde5faf){return function(_0x5f019b,_0x33972f,_0x8b248a){VoiceQueueReportEvents[_0x4e3c('0x7')](_0xde5faf+':'+_0x5f019b['id'],_0x5f019b);VoiceQueueReportEvents[_0x4e3c('0x7')](_0xde5faf,_0x5f019b);_0x8b248a(null);};}for(var e in events){if(events[_0x4e3c('0x8')](e)){var event=events[e];VoiceQueueReport[_0x4e3c('0x9')](e,emitEvent(event));}}module[_0x4e3c('0xa')]=VoiceQueueReportEvents;
\ No newline at end of file
+var _0x2b54=['hook','events','../../mysqldb','VoiceQueueReport','update','remove','emit','hasOwnProperty'];(function(_0x2043d7,_0x352c51){var _0x855013=function(_0x1789bb){while(--_0x1789bb){_0x2043d7['push'](_0x2043d7['shift']());}};_0x855013(++_0x352c51);}(_0x2b54,0xa9));var _0x42b5=function(_0x493a6b,_0x27e92f){_0x493a6b=_0x493a6b-0x0;var _0x4306e3=_0x2b54[_0x493a6b];return _0x4306e3;};'use strict';var EventEmitter=require(_0x42b5('0x0'));var VoiceQueueReport=require(_0x42b5('0x1'))['db'][_0x42b5('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x42b5('0x3'),'afterDestroy':_0x42b5('0x4')};function emitEvent(_0x1b23ad){return function(_0x42ee09,_0x5d0f33,_0x577c05){VoiceQueueReportEvents[_0x42b5('0x5')](_0x1b23ad+':'+_0x42ee09['id'],_0x42ee09);VoiceQueueReportEvents['emit'](_0x1b23ad,_0x42ee09);_0x577c05(null);};}for(var e in events){if(events[_0x42b5('0x6')](e)){var event=events[e];VoiceQueueReport[_0x42b5('0x7')](e,emitEvent(event));}}module['exports']=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07b4=['calleridnum','util','../../config/logger','api','moment','path','../../config/environment','exports','VoiceQueueReport','report_queue','uniqueid'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x07b4,0x109));var _0x407b=function(_0x44e765,_0x4ec29a){_0x44e765=_0x44e765-0x0;var _0x8a737=_0x07b4[_0x44e765];return _0x8a737;};'use strict';var _=require('lodash');var util=require(_0x407b('0x0'));var logger=require(_0x407b('0x1'))(_0x407b('0x2'));var moment=require(_0x407b('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x407b('0x4'));var rimraf=require('rimraf');var config=require(_0x407b('0x5'));var attributes=require('./voiceQueueReport.attributes');module[_0x407b('0x6')]=function(_0x2c5baf,_0x4b7915){return _0x2c5baf['define'](_0x407b('0x7'),attributes,{'tableName':_0x407b('0x8'),'paranoid':![],'indexes':[{'fields':[_0x407b('0x9')]},{'fields':[_0x407b('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb1c1=['VoiceQueueReport','uniqueid','lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./voiceQueueReport.attributes','exports','define'];(function(_0x88cd7b,_0x4c884c){var _0x56fcc8=function(_0x513b3d){while(--_0x513b3d){_0x88cd7b['push'](_0x88cd7b['shift']());}};_0x56fcc8(++_0x4c884c);}(_0xb1c1,0x1af));var _0x1b1c=function(_0x1603aa,_0x309935){_0x1603aa=_0x1603aa-0x0;var _0x20584b=_0xb1c1[_0x1603aa];return _0x20584b;};'use strict';var _=require(_0x1b1c('0x0'));var util=require(_0x1b1c('0x1'));var logger=require(_0x1b1c('0x2'))('api');var moment=require(_0x1b1c('0x3'));var BPromise=require('bluebird');var rp=require(_0x1b1c('0x4'));var fs=require('fs');var path=require(_0x1b1c('0x5'));var rimraf=require(_0x1b1c('0x6'));var config=require(_0x1b1c('0x7'));var attributes=require(_0x1b1c('0x8'));module[_0x1b1c('0x9')]=function(_0xa47ee5,_0x13867a){return _0xa47ee5[_0x1b1c('0xa')](_0x1b1c('0xb'),attributes,{'tableName':'report_queue','paranoid':![],'indexes':[{'fields':[_0x1b1c('0xc')]},{'fields':['calleridnum']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2113=['../../config/logger','rpc','../../config/environment','jayson/promise','http','defaults','redis','localhost','./voiceQueueReport.socket','then','info','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','VoiceQueueReport','options','where','attributes','limit','include','map','model','GetVoiceQueueReport','debug','body','raw','CreateVoiceQueueReport','UpdateVoiceQueueReport','update','lodash','util','randomstring','ioredis','../../config/utils'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2113,0x151));var _0x3211=function(_0x3c4e0c,_0x46a7a8){_0x3c4e0c=_0x3c4e0c-0x0;var _0x1ef6ba=_0x2113[_0x3c4e0c];return _0x1ef6ba;};'use strict';var _=require(_0x3211('0x0'));var util=require(_0x3211('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x3211('0x2'));var fs=require('fs');var Redis=require(_0x3211('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x3211('0x4'));var logger=require(_0x3211('0x5'))(_0x3211('0x6'));var config=require(_0x3211('0x7'));var jayson=require(_0x3211('0x8'));var client=jayson['client'][_0x3211('0x9')]({'port':0x232a});config['redis']=_[_0x3211('0xa')](config[_0x3211('0xb')],{'host':_0x3211('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x3211('0xd'))['register'](socket);function respondWithRpcPromise(_0x18aba7,_0x4b3293,_0x46d9aa){return new BPromise(function(_0x324c08,_0x2a7ffe){return client['request'](_0x18aba7,_0x46d9aa)[_0x3211('0xe')](function(_0x954682){logger[_0x3211('0xf')](_0x3211('0x10'),_0x4b3293,_0x3211('0x11'));logger['debug']('VoiceQueueReport,\x20%s,\x20%s,\x20%s',_0x4b3293,_0x3211('0x11'),JSON[_0x3211('0x12')](_0x954682));if(_0x954682[_0x3211('0x13')]){if(_0x954682[_0x3211('0x13')][_0x3211('0x14')]===0x1f4){logger[_0x3211('0x13')](_0x3211('0x10'),_0x4b3293,_0x954682['error'][_0x3211('0x15')]);return _0x2a7ffe(_0x954682[_0x3211('0x13')]['message']);}logger[_0x3211('0x13')](_0x3211('0x10'),_0x4b3293,_0x954682[_0x3211('0x13')][_0x3211('0x15')]);return _0x324c08(_0x954682[_0x3211('0x13')][_0x3211('0x15')]);}else{logger[_0x3211('0xf')](_0x3211('0x10'),_0x4b3293,'request\x20sent');_0x324c08(_0x954682['result'][_0x3211('0x15')]);}})[_0x3211('0x16')](function(_0x4a039b){logger[_0x3211('0x13')](_0x3211('0x10'),_0x4b3293,_0x4a039b);_0x2a7ffe(_0x4a039b);});});}exports['GetVoiceQueueReport']=function(_0x240c0b){var _0x34f972=this;return new Promise(function(_0x4c7e88,_0x475627){return db[_0x3211('0x17')]['findAll']({'raw':_0x240c0b[_0x3211('0x18')]?_0x240c0b[_0x3211('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x240c0b[_0x3211('0x18')]?_0x240c0b[_0x3211('0x18')][_0x3211('0x19')]||null:null,'attributes':_0x240c0b[_0x3211('0x18')]?_0x240c0b['options'][_0x3211('0x1a')]||null:null,'limit':_0x240c0b['options']?_0x240c0b[_0x3211('0x18')][_0x3211('0x1b')]||null:null,'include':_0x240c0b[_0x3211('0x18')]?_0x240c0b['options'][_0x3211('0x1c')]?_[_0x3211('0x1d')](_0x240c0b[_0x3211('0x18')][_0x3211('0x1c')],function(_0xd5597){return{'model':db[_0xd5597[_0x3211('0x1e')]],'as':_0xd5597['as'],'attributes':_0xd5597['attributes'],'include':_0xd5597['include']?_[_0x3211('0x1d')](_0xd5597['include'],function(_0x3aaa8f){return{'model':db[_0x3aaa8f['model']],'as':_0x3aaa8f['as'],'attributes':_0x3aaa8f[_0x3211('0x1a')],'include':_0x3aaa8f['include']?_[_0x3211('0x1d')](_0x3aaa8f[_0x3211('0x1c')],function(_0x28e4d7){return{'model':db[_0x28e4d7['model']],'as':_0x28e4d7['as'],'attributes':_0x28e4d7[_0x3211('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x3211('0xe')](function(_0x53229b){logger['info'](_0x3211('0x1f'),_0x240c0b);logger[_0x3211('0x20')]('GetVoiceQueueReport',_0x240c0b,JSON[_0x3211('0x12')](_0x53229b));_0x4c7e88(_0x53229b);})[_0x3211('0x16')](function(_0x34b199){logger['error']('GetVoiceQueueReport',_0x34b199[_0x3211('0x15')],_0x240c0b);_0x475627(_0x34f972[_0x3211('0x13')](0x1f4,_0x34b199[_0x3211('0x15')]));});});};exports['CreateVoiceQueueReport']=function(_0x2b9d3b){var _0x154de8=this;return new Promise(function(_0x370e73,_0x2f4ed0){return db['VoiceQueueReport']['create'](_0x2b9d3b[_0x3211('0x21')],{'raw':_0x2b9d3b['options']?_0x2b9d3b[_0x3211('0x18')][_0x3211('0x22')]===undefined?!![]:![]:!![]})[_0x3211('0xe')](function(_0x585bbc){logger[_0x3211('0xf')](_0x3211('0x23'),_0x2b9d3b);logger[_0x3211('0x20')](_0x3211('0x23'),_0x2b9d3b,JSON[_0x3211('0x12')](_0x585bbc));_0x370e73(_0x585bbc);})[_0x3211('0x16')](function(_0x4b54e3){logger[_0x3211('0x13')](_0x3211('0x23'),_0x4b54e3['message'],_0x2b9d3b);_0x2f4ed0(_0x154de8[_0x3211('0x13')](0x1f4,_0x4b54e3[_0x3211('0x15')]));});});};exports[_0x3211('0x24')]=function(_0x347ecf){var _0x15faf9=this;return new Promise(function(_0x247068,_0x19df07){return db[_0x3211('0x17')][_0x3211('0x25')](_0x347ecf[_0x3211('0x21')],{'raw':_0x347ecf[_0x3211('0x18')]?_0x347ecf[_0x3211('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x347ecf[_0x3211('0x18')]?_0x347ecf[_0x3211('0x18')][_0x3211('0x19')]||null:null,'attributes':_0x347ecf[_0x3211('0x18')]?_0x347ecf[_0x3211('0x18')]['attributes']||null:null,'limit':_0x347ecf[_0x3211('0x18')]?_0x347ecf[_0x3211('0x18')][_0x3211('0x1b')]||null:null})[_0x3211('0xe')](function(_0x59eee2){logger[_0x3211('0xf')](_0x3211('0x24'),_0x347ecf);logger[_0x3211('0x20')](_0x3211('0x24'),_0x347ecf,JSON[_0x3211('0x12')](_0x59eee2));_0x247068(_0x59eee2);})[_0x3211('0x16')](function(_0x5acb4f){logger[_0x3211('0x13')](_0x3211('0x24'),_0x5acb4f[_0x3211('0x15')],_0x347ecf);_0x19df07(_0x15faf9['error'](0x1f4,_0x5acb4f[_0x3211('0x15')]));});});};
\ No newline at end of file
+var _0x6df8=['attributes','limit','include','map','model','CreateVoiceQueueReport','create','body','raw','info','UpdateVoiceQueueReport','update','where','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','request','then','VoiceQueueReport,\x20%s,\x20%s','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceQueueReport','options'];(function(_0x4faa06,_0x2cd369){var _0x5b808a=function(_0x244764){while(--_0x244764){_0x4faa06['push'](_0x4faa06['shift']());}};_0x5b808a(++_0x2cd369);}(_0x6df8,0x15d));var _0x86df=function(_0x6843cf,_0x1e69bd){_0x6843cf=_0x6843cf-0x0;var _0x416fbd=_0x6df8[_0x6843cf];return _0x416fbd;};'use strict';var _=require('lodash');var util=require(_0x86df('0x0'));var moment=require(_0x86df('0x1'));var BPromise=require(_0x86df('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x86df('0x3'));var db=require(_0x86df('0x4'))['db'];var utils=require(_0x86df('0x5'));var logger=require(_0x86df('0x6'))(_0x86df('0x7'));var config=require(_0x86df('0x8'));var jayson=require(_0x86df('0x9'));var client=jayson['client'][_0x86df('0xa')]({'port':0x232a});config[_0x86df('0xb')]=_['defaults'](config[_0x86df('0xb')],{'host':_0x86df('0xc'),'port':0x18eb});var socket=require(_0x86df('0xd'))(new Redis(config[_0x86df('0xb')]));require(_0x86df('0xe'))['register'](socket);function respondWithRpcPromise(_0x468dc0,_0x30a195,_0xe75706){return new BPromise(function(_0x17af3b,_0x423317){return client[_0x86df('0xf')](_0x468dc0,_0xe75706)[_0x86df('0x10')](function(_0x56cc54){logger['info'](_0x86df('0x11'),_0x30a195,_0x86df('0x12'));logger[_0x86df('0x13')](_0x86df('0x14'),_0x30a195,_0x86df('0x12'),JSON[_0x86df('0x15')](_0x56cc54));if(_0x56cc54[_0x86df('0x16')]){if(_0x56cc54[_0x86df('0x16')][_0x86df('0x17')]===0x1f4){logger['error'](_0x86df('0x11'),_0x30a195,_0x56cc54[_0x86df('0x16')]['message']);return _0x423317(_0x56cc54[_0x86df('0x16')]['message']);}logger['error']('VoiceQueueReport,\x20%s,\x20%s',_0x30a195,_0x56cc54['error'][_0x86df('0x18')]);return _0x17af3b(_0x56cc54[_0x86df('0x16')]['message']);}else{logger['info'](_0x86df('0x11'),_0x30a195,_0x86df('0x12'));_0x17af3b(_0x56cc54[_0x86df('0x19')][_0x86df('0x18')]);}})[_0x86df('0x1a')](function(_0x8e5d6a){logger[_0x86df('0x16')]('VoiceQueueReport,\x20%s,\x20%s',_0x30a195,_0x8e5d6a);_0x423317(_0x8e5d6a);});});}exports[_0x86df('0x1b')]=function(_0x376a27){var _0x30a7f1=this;return new Promise(function(_0x5ce0cd,_0x1464ae){return db['VoiceQueueReport']['findAll']({'raw':_0x376a27['options']?_0x376a27[_0x86df('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x376a27[_0x86df('0x1c')]?_0x376a27[_0x86df('0x1c')]['where']||null:null,'attributes':_0x376a27[_0x86df('0x1c')]?_0x376a27[_0x86df('0x1c')][_0x86df('0x1d')]||null:null,'limit':_0x376a27['options']?_0x376a27[_0x86df('0x1c')][_0x86df('0x1e')]||null:null,'include':_0x376a27[_0x86df('0x1c')]?_0x376a27[_0x86df('0x1c')][_0x86df('0x1f')]?_[_0x86df('0x20')](_0x376a27['options'][_0x86df('0x1f')],function(_0x12c2c3){return{'model':db[_0x12c2c3[_0x86df('0x21')]],'as':_0x12c2c3['as'],'attributes':_0x12c2c3[_0x86df('0x1d')],'include':_0x12c2c3[_0x86df('0x1f')]?_['map'](_0x12c2c3[_0x86df('0x1f')],function(_0x20812e){return{'model':db[_0x20812e[_0x86df('0x21')]],'as':_0x20812e['as'],'attributes':_0x20812e[_0x86df('0x1d')],'include':_0x20812e[_0x86df('0x1f')]?_[_0x86df('0x20')](_0x20812e[_0x86df('0x1f')],function(_0x40a934){return{'model':db[_0x40a934[_0x86df('0x21')]],'as':_0x40a934['as'],'attributes':_0x40a934[_0x86df('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x86df('0x10')](function(_0x389296){logger['info'](_0x86df('0x1b'),_0x376a27);logger['debug'](_0x86df('0x1b'),_0x376a27,JSON[_0x86df('0x15')](_0x389296));_0x5ce0cd(_0x389296);})['catch'](function(_0x5ee36b){logger[_0x86df('0x16')](_0x86df('0x1b'),_0x5ee36b[_0x86df('0x18')],_0x376a27);_0x1464ae(_0x30a7f1[_0x86df('0x16')](0x1f4,_0x5ee36b[_0x86df('0x18')]));});});};exports[_0x86df('0x22')]=function(_0x32d0a8){var _0x31050e=this;return new Promise(function(_0x1cafdd,_0x457640){return db['VoiceQueueReport'][_0x86df('0x23')](_0x32d0a8[_0x86df('0x24')],{'raw':_0x32d0a8[_0x86df('0x1c')]?_0x32d0a8[_0x86df('0x1c')][_0x86df('0x25')]===undefined?!![]:![]:!![]})[_0x86df('0x10')](function(_0x34ce97){logger[_0x86df('0x26')](_0x86df('0x22'),_0x32d0a8);logger[_0x86df('0x13')]('CreateVoiceQueueReport',_0x32d0a8,JSON[_0x86df('0x15')](_0x34ce97));_0x1cafdd(_0x34ce97);})['catch'](function(_0xc0ae28){logger[_0x86df('0x16')](_0x86df('0x22'),_0xc0ae28[_0x86df('0x18')],_0x32d0a8);_0x457640(_0x31050e['error'](0x1f4,_0xc0ae28[_0x86df('0x18')]));});});};exports[_0x86df('0x27')]=function(_0x20eed5){var _0x9f0f2f=this;return new Promise(function(_0x29a044,_0x48fa02){return db['VoiceQueueReport'][_0x86df('0x28')](_0x20eed5[_0x86df('0x24')],{'raw':_0x20eed5[_0x86df('0x1c')]?_0x20eed5[_0x86df('0x1c')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x20eed5[_0x86df('0x1c')]?_0x20eed5['options'][_0x86df('0x29')]||null:null,'attributes':_0x20eed5[_0x86df('0x1c')]?_0x20eed5[_0x86df('0x1c')][_0x86df('0x1d')]||null:null,'limit':_0x20eed5['options']?_0x20eed5[_0x86df('0x1c')][_0x86df('0x1e')]||null:null})[_0x86df('0x10')](function(_0x307a10){logger[_0x86df('0x26')](_0x86df('0x27'),_0x20eed5);logger['debug'](_0x86df('0x27'),_0x20eed5,JSON[_0x86df('0x15')](_0x307a10));_0x29a044(_0x307a10);})[_0x86df('0x1a')](function(_0x41a3c0){logger['error'](_0x86df('0x27'),_0x41a3c0[_0x86df('0x18')],_0x20eed5);_0x48fa02(_0x9f0f2f[_0x86df('0x16')](0x1f4,_0x41a3c0[_0x86df('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7345=['remove','emit','removeListener','length','voiceQueueReport:','./voiceQueueReport.events','save'];(function(_0x4bf792,_0x5de8f0){var _0x1b4f3f=function(_0x7aba00){while(--_0x7aba00){_0x4bf792['push'](_0x4bf792['shift']());}};_0x1b4f3f(++_0x5de8f0);}(_0x7345,0x163));var _0x5734=function(_0x5aba09,_0x2aef58){_0x5aba09=_0x5aba09-0x0;var _0x4a4e4e=_0x7345[_0x5aba09];return _0x4a4e4e;};'use strict';var VoiceQueueReportEvents=require(_0x5734('0x0'));var events=[_0x5734('0x1'),_0x5734('0x2'),'update'];function createListener(_0xd032bf,_0x4d4738){return function(_0x547981){_0x4d4738[_0x5734('0x3')](_0xd032bf,_0x547981);};}function removeListener(_0x33a857,_0x597dcd){return function(){VoiceQueueReportEvents[_0x5734('0x4')](_0x33a857,_0x597dcd);};}exports['register']=function(_0x4253a4){for(var _0x152395=0x0,_0x469af9=events[_0x5734('0x5')];_0x152395<_0x469af9;_0x152395++){var _0x1b7db1=events[_0x152395];var _0x3142ff=createListener(_0x5734('0x6')+_0x1b7db1,_0x4253a4);VoiceQueueReportEvents['on'](_0x1b7db1,_0x3142ff);}};
\ No newline at end of file
+var _0xbca0=['remove','update','emit','removeListener','voiceQueueReport:','./voiceQueueReport.events','save'];(function(_0x54c734,_0xc5cf3a){var _0x6bdb37=function(_0x1cd617){while(--_0x1cd617){_0x54c734['push'](_0x54c734['shift']());}};_0x6bdb37(++_0xc5cf3a);}(_0xbca0,0x17f));var _0x0bca=function(_0x16d773,_0x39069d){_0x16d773=_0x16d773-0x0;var _0x113b85=_0xbca0[_0x16d773];return _0x113b85;};'use strict';var VoiceQueueReportEvents=require(_0x0bca('0x0'));var events=[_0x0bca('0x1'),_0x0bca('0x2'),_0x0bca('0x3')];function createListener(_0x4c242b,_0x4bf9e4){return function(_0x38ea6d){_0x4bf9e4[_0x0bca('0x4')](_0x4c242b,_0x38ea6d);};}function removeListener(_0x5be3b4,_0x4a9f79){return function(){VoiceQueueReportEvents[_0x0bca('0x5')](_0x5be3b4,_0x4a9f79);};}exports['register']=function(_0x18efed){for(var _0x380958=0x0,_0x2feafd=events['length'];_0x380958<_0x2feafd;_0x380958++){var _0x14bb50=events[_0x380958];var _0x45b8d2=createListener(_0x0bca('0x6')+_0x14bb50,_0x18efed);VoiceQueueReportEvents['on'](_0x14bb50,_0x45b8d2);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0be7=['isAuthenticated','get','show','post','create','update','delete','destroy','exports','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueuesLog.controller'];(function(_0x26cc37,_0x1c49d2){var _0x244e5c=function(_0xa9d9d9){while(--_0xa9d9d9){_0x26cc37['push'](_0x26cc37['shift']());}};_0x244e5c(++_0x1c49d2);}(_0x0be7,0xc4));var _0x70be=function(_0x3af1b7,_0x36ad66){_0x3af1b7=_0x3af1b7-0x0;var _0x5517a1=_0x0be7[_0x3af1b7];return _0x5517a1;};'use strict';var multer=require('multer');var util=require(_0x70be('0x0'));var path=require('path');var timeout=require(_0x70be('0x1'));var express=require('express');var router=express[_0x70be('0x2')]();var fs_extra=require(_0x70be('0x3'));var auth=require(_0x70be('0x4'));var interaction=require(_0x70be('0x5'));var config=require(_0x70be('0x6'));var controller=require(_0x70be('0x7'));router['get']('/',auth[_0x70be('0x8')](),controller['index']);router[_0x70be('0x9')]('/:id',auth[_0x70be('0x8')](),controller[_0x70be('0xa')]);router[_0x70be('0xb')]('/',auth[_0x70be('0x8')](),controller[_0x70be('0xc')]);router['put']('/:id',auth[_0x70be('0x8')](),controller[_0x70be('0xd')]);router[_0x70be('0xe')]('/:id',auth[_0x70be('0x8')](),controller[_0x70be('0xf')]);module[_0x70be('0x10')]=router;
\ No newline at end of file
+var _0x819a=['Router','../../components/auth/service','./voiceQueuesLog.controller','get','index','/:id','isAuthenticated','show','post','create','put','multer','util','path','connect-timeout','express'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x819a,0x16b));var _0xa819=function(_0x452968,_0x31e391){_0x452968=_0x452968-0x0;var _0xb6f9ae=_0x819a[_0x452968];return _0xb6f9ae;};'use strict';var multer=require(_0xa819('0x0'));var util=require(_0xa819('0x1'));var path=require(_0xa819('0x2'));var timeout=require(_0xa819('0x3'));var express=require(_0xa819('0x4'));var router=express[_0xa819('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xa819('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xa819('0x7'));router[_0xa819('0x8')]('/',auth['isAuthenticated'](),controller[_0xa819('0x9')]);router[_0xa819('0x8')](_0xa819('0xa'),auth[_0xa819('0xb')](),controller[_0xa819('0xc')]);router[_0xa819('0xd')]('/',auth[_0xa819('0xb')](),controller[_0xa819('0xe')]);router[_0xa819('0xf')](_0xa819('0xa'),auth[_0xa819('0xb')](),controller['update']);router['delete'](_0xa819('0xa'),auth[_0xa819('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc809=['DATE','YYYY-MM-DD\x20HH:mm:ss','sequelize','moment','exports','STRING'];(function(_0x230a9b,_0x3bbee7){var _0x28dfd1=function(_0x18f00a){while(--_0x18f00a){_0x230a9b['push'](_0x230a9b['shift']());}};_0x28dfd1(++_0x3bbee7);}(_0xc809,0x1b8));var _0x9c80=function(_0x42d8ab,_0x1ca643){_0x42d8ab=_0x42d8ab-0x0;var _0x4b06e0=_0xc809[_0x42d8ab];return _0x4b06e0;};'use strict';var Sequelize=require(_0x9c80('0x0'));var moment=require(_0x9c80('0x1'));module[_0x9c80('0x2')]={'time':{'type':Sequelize[_0x9c80('0x3')]},'callid':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x9c80('0x3')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x9c80('0x4')],'allowNull':![],'defaultValue':moment()['format'](_0x9c80('0x5'))}};
\ No newline at end of file
+var _0x7534=['format','YYYY-MM-DD\x20HH:mm:ss','sequelize','moment','exports','STRING','DATE'];(function(_0x1fcc1e,_0x39efee){var _0x13497a=function(_0x56d1fe){while(--_0x56d1fe){_0x1fcc1e['push'](_0x1fcc1e['shift']());}};_0x13497a(++_0x39efee);}(_0x7534,0x121));var _0x4753=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x7534[_0x432682];return _0x463d05;};'use strict';var Sequelize=require(_0x4753('0x0'));var moment=require(_0x4753('0x1'));module[_0x4753('0x2')]={'time':{'type':Sequelize[_0x4753('0x3')]},'callid':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x4753('0x3')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x4753('0x4')],'allowNull':![],'defaultValue':moment()[_0x4753('0x5')](_0x4753('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ea1=['sort','where','pick','VIRTUAL','merge','VoiceQueuesLog','findAll','rows','catch','show','params','includeAll','include','options','find','create','body','update','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','then','destroy','end','error','stack','name','send','index','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order'];(function(_0x8c867d,_0x442004){var _0x575eae=function(_0x25b443){while(--_0x25b443){_0x8c867d['push'](_0x8c867d['shift']());}};_0x575eae(++_0x442004);}(_0x1ea1,0x17f));var _0x11ea=function(_0x1ac2ab,_0x1f65a2){_0x1ac2ab=_0x1ac2ab-0x0;var _0x5c6291=_0x1ea1[_0x1ac2ab];return _0x5c6291;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x11ea('0x0'));var zipdir=require(_0x11ea('0x1'));var jsonpatch=require(_0x11ea('0x2'));var rp=require(_0x11ea('0x3'));var moment=require('moment');var BPromise=require(_0x11ea('0x4'));var Mustache=require(_0x11ea('0x5'));var util=require('util');var path=require(_0x11ea('0x6'));var sox=require('sox');var csv=require(_0x11ea('0x7'));var ejs=require(_0x11ea('0x8'));var fs=require('fs');var fs_extra=require(_0x11ea('0x9'));var _=require(_0x11ea('0xa'));var squel=require('squel');var crypto=require(_0x11ea('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x11ea('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x11ea('0xd'));var qs=require(_0x11ea('0xe'));var as=require(_0x11ea('0xf'));var hardwareService=require(_0x11ea('0x10'));var logger=require('../../config/logger')(_0x11ea('0x11'));var utils=require(_0x11ea('0x12'));var config=require(_0x11ea('0x13'));var licenseUtil=require(_0x11ea('0x14'));var db=require(_0x11ea('0x15'))['db'];function respondWithStatusCode(_0x3a0e30,_0x465fcd){_0x465fcd=_0x465fcd||0xcc;return function(_0x2112f2){if(_0x2112f2){return _0x3a0e30[_0x11ea('0x16')](_0x465fcd);}return _0x3a0e30[_0x11ea('0x17')](_0x465fcd)['end']();};}function respondWithResult(_0x3dd6cc,_0x2b21d4){_0x2b21d4=_0x2b21d4||0xc8;return function(_0x45e406){if(_0x45e406){return _0x3dd6cc[_0x11ea('0x17')](_0x2b21d4)[_0x11ea('0x18')](_0x45e406);}};}function respondWithFilteredResult(_0xfbbda5,_0x1998b5){return function(_0x551170){if(_0x551170){var _0x1cf26d=typeof _0x1998b5[_0x11ea('0x19')]===_0x11ea('0x1a')&&typeof _0x1998b5[_0x11ea('0x1b')]===_0x11ea('0x1a');var _0x4d773b=_0x551170[_0x11ea('0x1c')];var _0x26b404=_0x1cf26d?0x0:_0x1998b5[_0x11ea('0x19')];var _0x37c723=_0x1cf26d?_0x551170[_0x11ea('0x1c')]:_0x1998b5['offset']+_0x1998b5[_0x11ea('0x1b')];var _0x241c88;if(_0x37c723>=_0x4d773b){_0x37c723=_0x4d773b;_0x241c88=0xc8;}else{_0x241c88=0xce;}_0xfbbda5['status'](_0x241c88);return _0xfbbda5[_0x11ea('0x1d')]('Content-Range',_0x26b404+'-'+_0x37c723+'/'+_0x4d773b)[_0x11ea('0x18')](_0x551170);}return null;};}function patchUpdates(_0x360d27){return function(_0x2bfaed){try{jsonpatch[_0x11ea('0x1e')](_0x2bfaed,_0x360d27,!![]);}catch(_0x266fef){return BPromise[_0x11ea('0x1f')](_0x266fef);}return _0x2bfaed['save']();};}function saveUpdates(_0x41c331,_0x2a62b4){return function(_0x4f0719){if(_0x4f0719){return _0x4f0719['update'](_0x41c331)[_0x11ea('0x20')](function(_0x3b68f6){return _0x3b68f6;});}return null;};}function removeEntity(_0x4cbd87,_0x5bd3cc){return function(_0x3d61f6){if(_0x3d61f6){return _0x3d61f6[_0x11ea('0x21')]()[_0x11ea('0x20')](function(){_0x4cbd87['status'](0xcc)[_0x11ea('0x22')]();});}};}function handleEntityNotFound(_0x25cf98,_0x5d1bfe){return function(_0x3eb946){if(!_0x3eb946){_0x25cf98['sendStatus'](0x194);}return _0x3eb946;};}function handleError(_0x5e282b,_0x215fb2){_0x215fb2=_0x215fb2||0x1f4;return function(_0x53a105){logger[_0x11ea('0x23')](_0x53a105[_0x11ea('0x24')]);if(_0x53a105[_0x11ea('0x25')]){delete _0x53a105['name'];}_0x5e282b[_0x11ea('0x17')](_0x215fb2)[_0x11ea('0x26')](_0x53a105);};}exports[_0x11ea('0x27')]=function(_0x397b80,_0x39fa38){var _0x26f83f={},_0x39aaf9={},_0x40085a={'count':0x0,'rows':[]};var _0x529a0b=_['map'](db['VoiceQueuesLog'][_0x11ea('0x28')],function(_0x1922b7){return{'name':_0x1922b7[_0x11ea('0x29')],'type':_0x1922b7[_0x11ea('0x2a')]['key']};});_0x39aaf9['model']=_[_0x11ea('0x2b')](_0x529a0b,_0x11ea('0x25'));_0x39aaf9[_0x11ea('0x2c')]=_[_0x11ea('0x2d')](_0x397b80['query']);_0x39aaf9[_0x11ea('0x2e')]=_['intersection'](_0x39aaf9['model'],_0x39aaf9[_0x11ea('0x2c')]);_0x26f83f['attributes']=_[_0x11ea('0x2f')](_0x39aaf9[_0x11ea('0x30')],qs[_0x11ea('0x31')](_0x397b80[_0x11ea('0x2c')][_0x11ea('0x31')]));_0x26f83f[_0x11ea('0x32')]=_0x26f83f[_0x11ea('0x32')][_0x11ea('0x33')]?_0x26f83f['attributes']:_0x39aaf9[_0x11ea('0x30')];if(!_0x397b80[_0x11ea('0x2c')][_0x11ea('0x34')](_0x11ea('0x35'))){_0x26f83f[_0x11ea('0x1b')]=qs[_0x11ea('0x1b')](_0x397b80[_0x11ea('0x2c')][_0x11ea('0x1b')]);_0x26f83f[_0x11ea('0x19')]=qs[_0x11ea('0x19')](_0x397b80[_0x11ea('0x2c')][_0x11ea('0x19')]);}_0x26f83f[_0x11ea('0x36')]=qs[_0x11ea('0x37')](_0x397b80['query'][_0x11ea('0x37')]);_0x26f83f[_0x11ea('0x38')]=qs[_0x11ea('0x2e')](_[_0x11ea('0x39')](_0x397b80[_0x11ea('0x2c')],_0x39aaf9[_0x11ea('0x2e')]),_0x529a0b);if(_0x397b80[_0x11ea('0x2c')]['filter']){_0x26f83f['where']=_['merge'](_0x26f83f[_0x11ea('0x38')],{'$or':_[_0x11ea('0x2b')](_0x529a0b,function(_0x9a8cd6){if(_0x9a8cd6['type']!==_0x11ea('0x3a')){var _0xcb0a5e={};_0xcb0a5e[_0x9a8cd6[_0x11ea('0x25')]]={'$like':'%'+_0x397b80[_0x11ea('0x2c')]['filter']+'%'};return _0xcb0a5e;}})});}_0x26f83f=_[_0x11ea('0x3b')]({},_0x26f83f,_0x397b80['options']);var _0x562aed={'where':_0x26f83f[_0x11ea('0x38')]};return db['VoiceQueuesLog'][_0x11ea('0x1c')](_0x562aed)[_0x11ea('0x20')](function(_0x1b2c2c){_0x40085a[_0x11ea('0x1c')]=_0x1b2c2c;if(_0x397b80['query']['includeAll']){_0x26f83f['include']=[{'all':!![]}];}return db[_0x11ea('0x3c')][_0x11ea('0x3d')](_0x26f83f);})[_0x11ea('0x20')](function(_0x218c0a){_0x40085a[_0x11ea('0x3e')]=_0x218c0a;return _0x40085a;})[_0x11ea('0x20')](respondWithFilteredResult(_0x39fa38,_0x26f83f))[_0x11ea('0x3f')](handleError(_0x39fa38,null));};exports[_0x11ea('0x40')]=function(_0x5613a8,_0x5ccc7b){var _0x46c2ad={'raw':!![],'where':{'id':_0x5613a8[_0x11ea('0x41')]['id']}},_0x2e9b13={};_0x2e9b13[_0x11ea('0x30')]=_[_0x11ea('0x2d')](db[_0x11ea('0x3c')][_0x11ea('0x28')]);_0x2e9b13[_0x11ea('0x2c')]=_[_0x11ea('0x2d')](_0x5613a8['query']);_0x2e9b13[_0x11ea('0x2e')]=_['intersection'](_0x2e9b13[_0x11ea('0x30')],_0x2e9b13[_0x11ea('0x2c')]);_0x46c2ad[_0x11ea('0x32')]=_[_0x11ea('0x2f')](_0x2e9b13['model'],qs[_0x11ea('0x31')](_0x5613a8[_0x11ea('0x2c')][_0x11ea('0x31')]));_0x46c2ad[_0x11ea('0x32')]=_0x46c2ad['attributes']['length']?_0x46c2ad[_0x11ea('0x32')]:_0x2e9b13[_0x11ea('0x30')];if(_0x5613a8[_0x11ea('0x2c')][_0x11ea('0x42')]){_0x46c2ad[_0x11ea('0x43')]=[{'all':!![]}];}_0x46c2ad=_['merge']({},_0x46c2ad,_0x5613a8[_0x11ea('0x44')]);return db['VoiceQueuesLog'][_0x11ea('0x45')](_0x46c2ad)['then'](handleEntityNotFound(_0x5ccc7b,null))['then'](respondWithResult(_0x5ccc7b,null))[_0x11ea('0x3f')](handleError(_0x5ccc7b,null));};exports[_0x11ea('0x46')]=function(_0x1a3ae2,_0x1dad05){return db[_0x11ea('0x3c')][_0x11ea('0x46')](_0x1a3ae2[_0x11ea('0x47')],{})[_0x11ea('0x20')](respondWithResult(_0x1dad05,0xc9))[_0x11ea('0x3f')](handleError(_0x1dad05,null));};exports[_0x11ea('0x48')]=function(_0x46fe0e,_0x2bf6ec){if(_0x46fe0e[_0x11ea('0x47')]['id']){delete _0x46fe0e[_0x11ea('0x47')]['id'];}return db[_0x11ea('0x3c')][_0x11ea('0x45')]({'where':{'id':_0x46fe0e['params']['id']}})[_0x11ea('0x20')](handleEntityNotFound(_0x2bf6ec,null))[_0x11ea('0x20')](saveUpdates(_0x46fe0e['body'],null))[_0x11ea('0x20')](respondWithResult(_0x2bf6ec,null))['catch'](handleError(_0x2bf6ec,null));};exports['destroy']=function(_0x314358,_0x1a6ef7){return db[_0x11ea('0x3c')][_0x11ea('0x45')]({'where':{'id':_0x314358['params']['id']}})[_0x11ea('0x20')](handleEntityNotFound(_0x1a6ef7,null))[_0x11ea('0x20')](removeEntity(_0x1a6ef7,null))[_0x11ea('0x3f')](handleError(_0x1a6ef7,null));};
\ No newline at end of file
+var _0xb0f6=['body','eml-format','rimraf','zip-dir','request-promise','moment','util','path','to-csv','ejs','lodash','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','name','send','index','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','where','pick','filter','merge','options','include','findAll','rows','catch','show','params','VoiceQueuesLog','length','find','create'];(function(_0x568882,_0x184404){var _0x25dd59=function(_0x3d0aea){while(--_0x3d0aea){_0x568882['push'](_0x568882['shift']());}};_0x25dd59(++_0x184404);}(_0xb0f6,0xd9));var _0x6b0f=function(_0x2787cd,_0x2b9402){_0x2787cd=_0x2787cd-0x0;var _0x42380a=_0xb0f6[_0x2787cd];return _0x42380a;};'use strict';var emlformat=require(_0x6b0f('0x0'));var rimraf=require(_0x6b0f('0x1'));var zipdir=require(_0x6b0f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6b0f('0x3'));var moment=require(_0x6b0f('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6b0f('0x5'));var path=require(_0x6b0f('0x6'));var sox=require('sox');var csv=require(_0x6b0f('0x7'));var ejs=require(_0x6b0f('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6b0f('0x9'));var squel=require('squel');var crypto=require(_0x6b0f('0xa'));var jsforce=require('jsforce');var deskjs=require(_0x6b0f('0xb'));var toCsv=require(_0x6b0f('0x7'));var querystring=require(_0x6b0f('0xc'));var Papa=require('papaparse');var Redis=require(_0x6b0f('0xd'));var authService=require(_0x6b0f('0xe'));var qs=require(_0x6b0f('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6b0f('0x10'));var logger=require(_0x6b0f('0x11'))(_0x6b0f('0x12'));var utils=require(_0x6b0f('0x13'));var config=require(_0x6b0f('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x6b0f('0x15'))['db'];function respondWithStatusCode(_0x268871,_0x5705ec){_0x5705ec=_0x5705ec||0xcc;return function(_0xb21a1e){if(_0xb21a1e){return _0x268871['sendStatus'](_0x5705ec);}return _0x268871[_0x6b0f('0x16')](_0x5705ec)[_0x6b0f('0x17')]();};}function respondWithResult(_0x422fdb,_0x363f6a){_0x363f6a=_0x363f6a||0xc8;return function(_0x378fcc){if(_0x378fcc){return _0x422fdb['status'](_0x363f6a)[_0x6b0f('0x18')](_0x378fcc);}};}function respondWithFilteredResult(_0x59139e,_0x5f4f94){return function(_0x397296){if(_0x397296){var _0x453fd0=typeof _0x5f4f94[_0x6b0f('0x19')]===_0x6b0f('0x1a')&&typeof _0x5f4f94[_0x6b0f('0x1b')]===_0x6b0f('0x1a');var _0x24a306=_0x397296[_0x6b0f('0x1c')];var _0x51cf8c=_0x453fd0?0x0:_0x5f4f94['offset'];var _0x1a3f90=_0x453fd0?_0x397296['count']:_0x5f4f94[_0x6b0f('0x19')]+_0x5f4f94[_0x6b0f('0x1b')];var _0x1c47c1;if(_0x1a3f90>=_0x24a306){_0x1a3f90=_0x24a306;_0x1c47c1=0xc8;}else{_0x1c47c1=0xce;}_0x59139e[_0x6b0f('0x16')](_0x1c47c1);return _0x59139e[_0x6b0f('0x1d')](_0x6b0f('0x1e'),_0x51cf8c+'-'+_0x1a3f90+'/'+_0x24a306)['json'](_0x397296);}return null;};}function patchUpdates(_0x50726c){return function(_0xbc77ee){try{jsonpatch[_0x6b0f('0x1f')](_0xbc77ee,_0x50726c,!![]);}catch(_0x27aeb8){return BPromise[_0x6b0f('0x20')](_0x27aeb8);}return _0xbc77ee[_0x6b0f('0x21')]();};}function saveUpdates(_0x590fbe,_0x9e78b4){return function(_0xee2899){if(_0xee2899){return _0xee2899[_0x6b0f('0x22')](_0x590fbe)[_0x6b0f('0x23')](function(_0x30d672){return _0x30d672;});}return null;};}function removeEntity(_0x47740c,_0x33f53b){return function(_0x4d04b0){if(_0x4d04b0){return _0x4d04b0[_0x6b0f('0x24')]()[_0x6b0f('0x23')](function(){_0x47740c['status'](0xcc)[_0x6b0f('0x17')]();});}};}function handleEntityNotFound(_0xa91b4f,_0x38a90e){return function(_0x312b37){if(!_0x312b37){_0xa91b4f[_0x6b0f('0x25')](0x194);}return _0x312b37;};}function handleError(_0xe367bc,_0x4048dc){_0x4048dc=_0x4048dc||0x1f4;return function(_0x197e1f){logger[_0x6b0f('0x26')](_0x197e1f['stack']);if(_0x197e1f[_0x6b0f('0x27')]){delete _0x197e1f[_0x6b0f('0x27')];}_0xe367bc[_0x6b0f('0x16')](_0x4048dc)[_0x6b0f('0x28')](_0x197e1f);};}exports[_0x6b0f('0x29')]=function(_0x120e01,_0x4d2367){var _0x173064={},_0x5455b0={},_0x123360={'count':0x0,'rows':[]};var _0x2e815f=_['map'](db['VoiceQueuesLog'][_0x6b0f('0x2a')],function(_0x3bd5a8){return{'name':_0x3bd5a8[_0x6b0f('0x2b')],'type':_0x3bd5a8['type'][_0x6b0f('0x2c')]};});_0x5455b0[_0x6b0f('0x2d')]=_[_0x6b0f('0x2e')](_0x2e815f,_0x6b0f('0x27'));_0x5455b0[_0x6b0f('0x2f')]=_[_0x6b0f('0x30')](_0x120e01['query']);_0x5455b0[_0x6b0f('0x31')]=_[_0x6b0f('0x32')](_0x5455b0['model'],_0x5455b0[_0x6b0f('0x2f')]);_0x173064[_0x6b0f('0x33')]=_[_0x6b0f('0x32')](_0x5455b0[_0x6b0f('0x2d')],qs[_0x6b0f('0x34')](_0x120e01[_0x6b0f('0x2f')]['fields']));_0x173064[_0x6b0f('0x33')]=_0x173064[_0x6b0f('0x33')]['length']?_0x173064[_0x6b0f('0x33')]:_0x5455b0[_0x6b0f('0x2d')];if(!_0x120e01[_0x6b0f('0x2f')][_0x6b0f('0x35')](_0x6b0f('0x36'))){_0x173064['limit']=qs['limit'](_0x120e01[_0x6b0f('0x2f')][_0x6b0f('0x1b')]);_0x173064['offset']=qs[_0x6b0f('0x19')](_0x120e01[_0x6b0f('0x2f')][_0x6b0f('0x19')]);}_0x173064[_0x6b0f('0x37')]=qs['sort'](_0x120e01[_0x6b0f('0x2f')]['sort']);_0x173064[_0x6b0f('0x38')]=qs[_0x6b0f('0x31')](_[_0x6b0f('0x39')](_0x120e01[_0x6b0f('0x2f')],_0x5455b0[_0x6b0f('0x31')]),_0x2e815f);if(_0x120e01[_0x6b0f('0x2f')][_0x6b0f('0x3a')]){_0x173064[_0x6b0f('0x38')]=_[_0x6b0f('0x3b')](_0x173064[_0x6b0f('0x38')],{'$or':_[_0x6b0f('0x2e')](_0x2e815f,function(_0xf8af4a){if(_0xf8af4a['type']!=='VIRTUAL'){var _0x550610={};_0x550610[_0xf8af4a[_0x6b0f('0x27')]]={'$like':'%'+_0x120e01[_0x6b0f('0x2f')][_0x6b0f('0x3a')]+'%'};return _0x550610;}})});}_0x173064=_[_0x6b0f('0x3b')]({},_0x173064,_0x120e01[_0x6b0f('0x3c')]);var _0x58e427={'where':_0x173064[_0x6b0f('0x38')]};return db['VoiceQueuesLog']['count'](_0x58e427)['then'](function(_0x7e01d){_0x123360[_0x6b0f('0x1c')]=_0x7e01d;if(_0x120e01[_0x6b0f('0x2f')]['includeAll']){_0x173064[_0x6b0f('0x3d')]=[{'all':!![]}];}return db['VoiceQueuesLog'][_0x6b0f('0x3e')](_0x173064);})['then'](function(_0x4acd49){_0x123360[_0x6b0f('0x3f')]=_0x4acd49;return _0x123360;})[_0x6b0f('0x23')](respondWithFilteredResult(_0x4d2367,_0x173064))[_0x6b0f('0x40')](handleError(_0x4d2367,null));};exports[_0x6b0f('0x41')]=function(_0x2cba31,_0x57685c){var _0x31cd3f={'raw':!![],'where':{'id':_0x2cba31[_0x6b0f('0x42')]['id']}},_0x35dc6d={};_0x35dc6d[_0x6b0f('0x2d')]=_[_0x6b0f('0x30')](db[_0x6b0f('0x43')][_0x6b0f('0x2a')]);_0x35dc6d[_0x6b0f('0x2f')]=_[_0x6b0f('0x30')](_0x2cba31[_0x6b0f('0x2f')]);_0x35dc6d[_0x6b0f('0x31')]=_[_0x6b0f('0x32')](_0x35dc6d[_0x6b0f('0x2d')],_0x35dc6d[_0x6b0f('0x2f')]);_0x31cd3f['attributes']=_[_0x6b0f('0x32')](_0x35dc6d['model'],qs[_0x6b0f('0x34')](_0x2cba31[_0x6b0f('0x2f')][_0x6b0f('0x34')]));_0x31cd3f[_0x6b0f('0x33')]=_0x31cd3f[_0x6b0f('0x33')][_0x6b0f('0x44')]?_0x31cd3f['attributes']:_0x35dc6d['model'];if(_0x2cba31[_0x6b0f('0x2f')]['includeAll']){_0x31cd3f['include']=[{'all':!![]}];}_0x31cd3f=_[_0x6b0f('0x3b')]({},_0x31cd3f,_0x2cba31['options']);return db[_0x6b0f('0x43')][_0x6b0f('0x45')](_0x31cd3f)[_0x6b0f('0x23')](handleEntityNotFound(_0x57685c,null))[_0x6b0f('0x23')](respondWithResult(_0x57685c,null))['catch'](handleError(_0x57685c,null));};exports[_0x6b0f('0x46')]=function(_0x3e9f5d,_0x6d6aaf){return db['VoiceQueuesLog']['create'](_0x3e9f5d[_0x6b0f('0x47')],{})[_0x6b0f('0x23')](respondWithResult(_0x6d6aaf,0xc9))[_0x6b0f('0x40')](handleError(_0x6d6aaf,null));};exports['update']=function(_0x329768,_0x236bce){if(_0x329768[_0x6b0f('0x47')]['id']){delete _0x329768[_0x6b0f('0x47')]['id'];}return db[_0x6b0f('0x43')][_0x6b0f('0x45')]({'where':{'id':_0x329768[_0x6b0f('0x42')]['id']}})[_0x6b0f('0x23')](handleEntityNotFound(_0x236bce,null))[_0x6b0f('0x23')](saveUpdates(_0x329768[_0x6b0f('0x47')],null))['then'](respondWithResult(_0x236bce,null))['catch'](handleError(_0x236bce,null));};exports[_0x6b0f('0x24')]=function(_0x507263,_0xc1a368){return db[_0x6b0f('0x43')]['find']({'where':{'id':_0x507263[_0x6b0f('0x42')]['id']}})['then'](handleEntityNotFound(_0xc1a368,null))[_0x6b0f('0x23')](removeEntity(_0xc1a368,null))[_0x6b0f('0x40')](handleError(_0xc1a368,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3be=['rimraf','../../config/environment','./voiceQueuesLog.attributes','exports','define','VoiceQueuesLog','event','dtm','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path'];(function(_0x4cdcfa,_0x40bedd){var _0x5c5360=function(_0x22c19a){while(--_0x22c19a){_0x4cdcfa['push'](_0x4cdcfa['shift']());}};_0x5c5360(++_0x40bedd);}(_0xf3be,0x178));var _0xef3b=function(_0x34a36c,_0x5e328a){_0x34a36c=_0x34a36c-0x0;var _0x231cb9=_0xf3be[_0x34a36c];return _0x231cb9;};'use strict';var _=require(_0xef3b('0x0'));var util=require(_0xef3b('0x1'));var logger=require(_0xef3b('0x2'))(_0xef3b('0x3'));var moment=require(_0xef3b('0x4'));var BPromise=require(_0xef3b('0x5'));var rp=require(_0xef3b('0x6'));var fs=require('fs');var path=require(_0xef3b('0x7'));var rimraf=require(_0xef3b('0x8'));var config=require(_0xef3b('0x9'));var attributes=require(_0xef3b('0xa'));module[_0xef3b('0xb')]=function(_0xb704d5,_0x1b887c){return _0xb704d5[_0xef3b('0xc')](_0xef3b('0xd'),attributes,{'tableName':'voice_queues_log','paranoid':![],'indexes':[{'name':'event_dtm','fields':[_0xef3b('0xe'),_0xef3b('0xf')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x38c3=['./voiceQueuesLog.attributes','VoiceQueuesLog','voice_queues_log','event_dtm','dtm','lodash','util','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x3ae34a,_0x5f36d8){var _0x3ba4a4=function(_0x2f754f){while(--_0x2f754f){_0x3ae34a['push'](_0x3ae34a['shift']());}};_0x3ba4a4(++_0x5f36d8);}(_0x38c3,0x13d));var _0x338c=function(_0x2c0931,_0x503573){_0x2c0931=_0x2c0931-0x0;var _0x3d781f=_0x38c3[_0x2c0931];return _0x3d781f;};'use strict';var _=require(_0x338c('0x0'));var util=require(_0x338c('0x1'));var logger=require('../../config/logger')(_0x338c('0x2'));var moment=require(_0x338c('0x3'));var BPromise=require(_0x338c('0x4'));var rp=require(_0x338c('0x5'));var fs=require('fs');var path=require(_0x338c('0x6'));var rimraf=require(_0x338c('0x7'));var config=require('../../config/environment');var attributes=require(_0x338c('0x8'));module['exports']=function(_0x41c16d,_0x28eeb3){return _0x41c16d['define'](_0x338c('0x9'),attributes,{'tableName':_0x338c('0xa'),'paranoid':![],'indexes':[{'name':_0x338c('0xb'),'fields':['event',_0x338c('0xc')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53b7=['../../config/utils','rpc','jayson/promise','client','http','request','then','VoiceQueuesLog,\x20%s,\x20%s','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x2e1de4,_0x5bcc81){var _0xd9004b=function(_0x2e2c84){while(--_0x2e2c84){_0x2e1de4['push'](_0x2e1de4['shift']());}};_0xd9004b(++_0x5bcc81);}(_0x53b7,0x170));var _0x753b=function(_0x44459f,_0x3e6e32){_0x44459f=_0x44459f-0x0;var _0x53eeaa=_0x53b7[_0x44459f];return _0x53eeaa;};'use strict';var _=require(_0x753b('0x0'));var util=require(_0x753b('0x1'));var moment=require(_0x753b('0x2'));var BPromise=require(_0x753b('0x3'));var rs=require(_0x753b('0x4'));var fs=require('fs');var Redis=require(_0x753b('0x5'));var db=require(_0x753b('0x6'))['db'];var utils=require(_0x753b('0x7'));var logger=require('../../config/logger')(_0x753b('0x8'));var config=require('../../config/environment');var jayson=require(_0x753b('0x9'));var client=jayson[_0x753b('0xa')][_0x753b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3bb0da,_0x3ed3cc,_0x1a3b67){return new BPromise(function(_0x2014b7,_0x2fbac8){return client[_0x753b('0xc')](_0x3bb0da,_0x1a3b67)[_0x753b('0xd')](function(_0x36431a){logger['info'](_0x753b('0xe'),_0x3ed3cc,'request\x20sent');logger[_0x753b('0xf')](_0x753b('0x10'),_0x3ed3cc,_0x753b('0x11'),JSON[_0x753b('0x12')](_0x36431a));if(_0x36431a[_0x753b('0x13')]){if(_0x36431a[_0x753b('0x13')][_0x753b('0x14')]===0x1f4){logger[_0x753b('0x13')](_0x753b('0xe'),_0x3ed3cc,_0x36431a[_0x753b('0x13')][_0x753b('0x15')]);return _0x2fbac8(_0x36431a['error']['message']);}logger['error'](_0x753b('0xe'),_0x3ed3cc,_0x36431a[_0x753b('0x13')]['message']);return _0x2014b7(_0x36431a[_0x753b('0x13')][_0x753b('0x15')]);}else{logger[_0x753b('0x16')](_0x753b('0xe'),_0x3ed3cc,_0x753b('0x11'));_0x2014b7(_0x36431a[_0x753b('0x17')][_0x753b('0x15')]);}})[_0x753b('0x18')](function(_0x5a6834){logger[_0x753b('0x13')](_0x753b('0xe'),_0x3ed3cc,_0x5a6834);_0x2fbac8(_0x5a6834);});});}
\ No newline at end of file
+var _0x2fc8=['request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceQueuesLog,\x20%s,\x20%s','message','result','catch','util','moment','bluebird','randomstring','ioredis','rpc','../../config/environment','client','request','info'];(function(_0x5a77ef,_0x15d235){var _0x5e0779=function(_0xa4535b){while(--_0xa4535b){_0x5a77ef['push'](_0x5a77ef['shift']());}};_0x5e0779(++_0x15d235);}(_0x2fc8,0x14a));var _0x82fc=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x2fc8[_0x5ddb1c];return _0x354adc;};'use strict';var _=require('lodash');var util=require(_0x82fc('0x0'));var moment=require(_0x82fc('0x1'));var BPromise=require(_0x82fc('0x2'));var rs=require(_0x82fc('0x3'));var fs=require('fs');var Redis=require(_0x82fc('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x82fc('0x5'));var config=require(_0x82fc('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x82fc('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1f6590,_0x12540d,_0xd9d510){return new BPromise(function(_0x38c045,_0x47ae39){return client[_0x82fc('0x8')](_0x1f6590,_0xd9d510)['then'](function(_0x50f121){logger[_0x82fc('0x9')]('VoiceQueuesLog,\x20%s,\x20%s',_0x12540d,_0x82fc('0xa'));logger[_0x82fc('0xb')](_0x82fc('0xc'),_0x12540d,_0x82fc('0xa'),JSON[_0x82fc('0xd')](_0x50f121));if(_0x50f121['error']){if(_0x50f121[_0x82fc('0xe')][_0x82fc('0xf')]===0x1f4){logger['error'](_0x82fc('0x10'),_0x12540d,_0x50f121[_0x82fc('0xe')][_0x82fc('0x11')]);return _0x47ae39(_0x50f121[_0x82fc('0xe')]['message']);}logger[_0x82fc('0xe')](_0x82fc('0x10'),_0x12540d,_0x50f121[_0x82fc('0xe')][_0x82fc('0x11')]);return _0x38c045(_0x50f121[_0x82fc('0xe')][_0x82fc('0x11')]);}else{logger[_0x82fc('0x9')]('VoiceQueuesLog,\x20%s,\x20%s',_0x12540d,_0x82fc('0xa'));_0x38c045(_0x50f121[_0x82fc('0x12')][_0x82fc('0x11')]);}})[_0x82fc('0x13')](function(_0x3c3444){logger[_0x82fc('0xe')](_0x82fc('0x10'),_0x12540d,_0x3c3444);_0x47ae39(_0x3c3444);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f9b=['multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','index','describe','/:id','download','/:id/downloads','get','downloadTranscribe','post','create','/:id/transcribe','runTranscribe','update','exports'];(function(_0x246f31,_0x37e853){var _0x164150=function(_0x1fa658){while(--_0x1fa658){_0x246f31['push'](_0x246f31['shift']());}};_0x164150(++_0x37e853);}(_0x4f9b,0x84));var _0xb4f9=function(_0xf1f80b,_0x44d17f){_0xf1f80b=_0xf1f80b-0x0;var _0x480b6a=_0x4f9b[_0xf1f80b];return _0x480b6a;};'use strict';var multer=require(_0xb4f9('0x0'));var util=require(_0xb4f9('0x1'));var path=require('path');var timeout=require(_0xb4f9('0x2'));var express=require(_0xb4f9('0x3'));var router=express[_0xb4f9('0x4')]();var fs_extra=require(_0xb4f9('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xb4f9('0x6'));var config=require(_0xb4f9('0x7'));var controller=require('./voiceRecording.controller');router['get']('/',auth[_0xb4f9('0x8')](),controller[_0xb4f9('0x9')]);router['get']('/describe',auth[_0xb4f9('0x8')](),controller[_0xb4f9('0xa')]);router['get'](_0xb4f9('0xb'),auth[_0xb4f9('0x8')](),controller['show']);router['get']('/:id/download',auth[_0xb4f9('0x8')](),controller[_0xb4f9('0xc')]);router['get'](_0xb4f9('0xd'),controller['downloads']);router[_0xb4f9('0xe')]('/:id/transcribe',auth[_0xb4f9('0x8')](),controller[_0xb4f9('0xf')]);router[_0xb4f9('0x10')]('/',auth[_0xb4f9('0x8')](),controller[_0xb4f9('0x11')]);router[_0xb4f9('0x10')](_0xb4f9('0x12'),auth['isAuthenticated'](),controller[_0xb4f9('0x13')]);router['put'](_0xb4f9('0xb'),auth[_0xb4f9('0x8')](),controller[_0xb4f9('0x14')]);router['delete'](_0xb4f9('0xb'),auth[_0xb4f9('0x8')](),controller['destroy']);module[_0xb4f9('0x15')]=router;
\ No newline at end of file
+var _0x7769=['get','isAuthenticated','index','describe','/:id','/:id/download','download','/:id/downloads','downloads','/:id/transcribe','downloadTranscribe','post','create','runTranscribe','delete','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceRecording.controller'];(function(_0x201247,_0x504fb9){var _0x294d02=function(_0x180019){while(--_0x180019){_0x201247['push'](_0x201247['shift']());}};_0x294d02(++_0x504fb9);}(_0x7769,0x92));var _0x9776=function(_0xe1abf6,_0x32879d){_0xe1abf6=_0xe1abf6-0x0;var _0x77f645=_0x7769[_0xe1abf6];return _0x77f645;};'use strict';var multer=require(_0x9776('0x0'));var util=require(_0x9776('0x1'));var path=require(_0x9776('0x2'));var timeout=require(_0x9776('0x3'));var express=require('express');var router=express[_0x9776('0x4')]();var fs_extra=require(_0x9776('0x5'));var auth=require(_0x9776('0x6'));var interaction=require(_0x9776('0x7'));var config=require(_0x9776('0x8'));var controller=require(_0x9776('0x9'));router[_0x9776('0xa')]('/',auth[_0x9776('0xb')](),controller[_0x9776('0xc')]);router['get']('/describe',auth[_0x9776('0xb')](),controller[_0x9776('0xd')]);router['get'](_0x9776('0xe'),auth[_0x9776('0xb')](),controller['show']);router[_0x9776('0xa')](_0x9776('0xf'),auth['isAuthenticated'](),controller[_0x9776('0x10')]);router['get'](_0x9776('0x11'),controller[_0x9776('0x12')]);router[_0x9776('0xa')](_0x9776('0x13'),auth[_0x9776('0xb')](),controller[_0x9776('0x14')]);router[_0x9776('0x15')]('/',auth[_0x9776('0xb')](),controller[_0x9776('0x16')]);router[_0x9776('0x15')](_0x9776('0x13'),auth['isAuthenticated'](),controller[_0x9776('0x17')]);router['put'](_0x9776('0xe'),auth['isAuthenticated'](),controller['update']);router[_0x9776('0x18')](_0x9776('0xe'),auth[_0x9776('0xb')](),controller[_0x9776('0x19')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x50007c,_0x1cbf11){var _0x5c1ec7=function(_0x52d038){while(--_0x52d038){_0x50007c['push'](_0x50007c['shift']());}};_0x5c1ec7(++_0x1cbf11);}(_0xa9e0,0x123));var _0x0a9e=function(_0x8de54f,_0x271987){_0x8de54f=_0x8de54f-0x0;var _0x14cba4=_0xa9e0[_0x8de54f];return _0x14cba4;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
+var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x5f0089,_0x227e2c){var _0x193892=function(_0x24051f){while(--_0x24051f){_0x5f0089['push'](_0x5f0089['shift']());}};_0x193892(++_0x227e2c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x34bc30,_0x177cb0){_0x34bc30=_0x34bc30-0x0;var _0x5706de=_0xa9e0[_0x34bc30];return _0x5706de;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8d7=['includeAll','include','findAll','rows','catch','show','params','find','create','update','body','describe','download','../../components/encryptor','uniqueid','value','format','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','VoiceRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','downloads','sequelize','col','$and','push','ValidationError','isNil','Entity\x20not\x20found','info','File:\x20\x22','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','createBucket','upload','TranscribeService','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','Bucket','location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJob','TranscriptionJobName','transcribeStatus','TranscriptionJobStatus','runTranscribe','findOne','Voice\x20Recording\x20not\x20found','Setting','transcribe','transcribeAccountId','transcribeRegion','language','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentAccountId','sentimentRegion','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','Cloud\x20Provider\x20not\x20available','data1','Cloud\x20Provider\x20not\x20configured','data2','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS','tempSentiment','updateAttributes','writeFile','downloadTranscribe','fileText','root','/server/files/transcribes/transcribe_','.txt','rimraf','fast-json-patch','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','aws-sdk','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','name','send','index','map','rawAttributes','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','VoiceRecording'];(function(_0x334651,_0x6e99f6){var _0x29657c=function(_0x420a94){while(--_0x420a94){_0x334651['push'](_0x334651['shift']());}};_0x29657c(++_0x6e99f6);}(_0xa8d7,0xfc));var _0x7a8d=function(_0x1b4b23,_0x5dd6d6){_0x1b4b23=_0x1b4b23-0x0;var _0x2a325b=_0xa8d7[_0x1b4b23];return _0x2a325b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7a8d('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7a8d('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x7a8d('0x2'));var util=require(_0x7a8d('0x3'));var path=require('path');var sox=require(_0x7a8d('0x4'));var csv=require(_0x7a8d('0x5'));var ejs=require(_0x7a8d('0x6'));var fs=require('fs');var fs_extra=require(_0x7a8d('0x7'));var _=require(_0x7a8d('0x8'));var squel=require(_0x7a8d('0x9'));var crypto=require(_0x7a8d('0xa'));var jsforce=require(_0x7a8d('0xb'));var deskjs=require(_0x7a8d('0xc'));var toCsv=require(_0x7a8d('0x5'));var querystring=require(_0x7a8d('0xd'));var Papa=require(_0x7a8d('0xe'));var AWS=require(_0x7a8d('0xf'));var uuidv4=require('uuid/v4');var Redis=require(_0x7a8d('0x10'));var authService=require(_0x7a8d('0x11'));var qs=require(_0x7a8d('0x12'));var as=require(_0x7a8d('0x13'));var hardwareService=require(_0x7a8d('0x14'));var logger=require(_0x7a8d('0x15'))(_0x7a8d('0x16'));var utils=require(_0x7a8d('0x17'));var config=require(_0x7a8d('0x18'));var licenseUtil=require(_0x7a8d('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x56cf18,_0x1acadb){_0x1acadb=_0x1acadb||0xcc;return function(_0x4ccb4e){if(_0x4ccb4e){return _0x56cf18['sendStatus'](_0x1acadb);}return _0x56cf18['status'](_0x1acadb)[_0x7a8d('0x1a')]();};}function respondWithResult(_0x352503,_0x39ab91){_0x39ab91=_0x39ab91||0xc8;return function(_0x4d9a9e){if(_0x4d9a9e){return _0x352503[_0x7a8d('0x1b')](_0x39ab91)[_0x7a8d('0x1c')](_0x4d9a9e);}};}function respondWithFilteredResult(_0x2ee243,_0x5dbac0){return function(_0x1ecb00){if(_0x1ecb00){var _0x3eb55d=typeof _0x5dbac0['offset']===_0x7a8d('0x1d')&&typeof _0x5dbac0[_0x7a8d('0x1e')]===_0x7a8d('0x1d');var _0x231f47=_0x1ecb00[_0x7a8d('0x1f')];var _0x154070=_0x3eb55d?0x0:_0x5dbac0[_0x7a8d('0x20')];var _0x2b8cc7=_0x3eb55d?_0x1ecb00[_0x7a8d('0x1f')]:_0x5dbac0['offset']+_0x5dbac0['limit'];var _0x2c09b1;if(_0x2b8cc7>=_0x231f47){_0x2b8cc7=_0x231f47;_0x2c09b1=0xc8;}else{_0x2c09b1=0xce;}_0x2ee243[_0x7a8d('0x1b')](_0x2c09b1);return _0x2ee243[_0x7a8d('0x21')](_0x7a8d('0x22'),_0x154070+'-'+_0x2b8cc7+'/'+_0x231f47)['json'](_0x1ecb00);}return null;};}function patchUpdates(_0x567a09){return function(_0x52da8a){try{jsonpatch[_0x7a8d('0x23')](_0x52da8a,_0x567a09,!![]);}catch(_0x157529){return BPromise[_0x7a8d('0x24')](_0x157529);}return _0x52da8a[_0x7a8d('0x25')]();};}function saveUpdates(_0x1eb89e,_0x23625b){return function(_0x47628e){if(_0x47628e){return _0x47628e['update'](_0x1eb89e)[_0x7a8d('0x26')](function(_0x5940aa){return _0x5940aa;});}return null;};}function removeEntity(_0xc3798a,_0x1de62c){return function(_0x4371bb){if(_0x4371bb){return _0x4371bb[_0x7a8d('0x27')]()[_0x7a8d('0x26')](function(){_0xc3798a[_0x7a8d('0x1b')](0xcc)[_0x7a8d('0x1a')]();});}};}function handleEntityNotFound(_0x3809a6,_0x4b5271){return function(_0x40182b){if(!_0x40182b){_0x3809a6[_0x7a8d('0x28')](0x194);}return _0x40182b;};}function handleError(_0x45b454,_0x3c3a97){_0x3c3a97=_0x3c3a97||0x1f4;return function(_0x56c15e){logger[_0x7a8d('0x29')](_0x56c15e['stack']);if(_0x56c15e[_0x7a8d('0x2a')]){delete _0x56c15e[_0x7a8d('0x2a')];}_0x45b454[_0x7a8d('0x1b')](_0x3c3a97)[_0x7a8d('0x2b')](_0x56c15e);};}exports[_0x7a8d('0x2c')]=function(_0x127a80,_0x1bc11b){var _0x5e1597={},_0x2d9fd7={},_0x4b2627={'count':0x0,'rows':[]};var _0x553e3e=_[_0x7a8d('0x2d')](db['VoiceRecording'][_0x7a8d('0x2e')],function(_0x5e8c4f){return{'name':_0x5e8c4f['fieldName'],'type':_0x5e8c4f[_0x7a8d('0x2f')]['key']};});_0x2d9fd7[_0x7a8d('0x30')]=_['differenceBy'](_[_0x7a8d('0x2d')](_0x553e3e,_0x7a8d('0x2a')),['format']);_0x2d9fd7[_0x7a8d('0x31')]=_['keys'](_0x127a80[_0x7a8d('0x31')]);_0x2d9fd7[_0x7a8d('0x32')]=_[_0x7a8d('0x33')](_0x2d9fd7[_0x7a8d('0x30')],_0x2d9fd7[_0x7a8d('0x31')]);_0x5e1597[_0x7a8d('0x34')]=_[_0x7a8d('0x33')](_0x2d9fd7[_0x7a8d('0x30')],qs[_0x7a8d('0x35')](_0x127a80['query'][_0x7a8d('0x35')]));_0x5e1597['attributes']=_0x5e1597[_0x7a8d('0x34')][_0x7a8d('0x36')]?_0x5e1597[_0x7a8d('0x34')]:_0x2d9fd7['model'];if(!_0x127a80['query'][_0x7a8d('0x37')](_0x7a8d('0x38'))){_0x5e1597['limit']=qs[_0x7a8d('0x1e')](_0x127a80[_0x7a8d('0x31')][_0x7a8d('0x1e')]);_0x5e1597[_0x7a8d('0x20')]=qs[_0x7a8d('0x20')](_0x127a80[_0x7a8d('0x31')][_0x7a8d('0x20')]);}_0x5e1597[_0x7a8d('0x39')]=qs[_0x7a8d('0x3a')](_0x127a80[_0x7a8d('0x31')][_0x7a8d('0x3a')]);_0x5e1597[_0x7a8d('0x3b')]=qs[_0x7a8d('0x32')](_[_0x7a8d('0x3c')](_0x127a80[_0x7a8d('0x31')],_0x2d9fd7['filters']),_0x553e3e);if(_0x127a80['query'][_0x7a8d('0x3d')]){_0x5e1597['where']=_[_0x7a8d('0x3e')](_0x5e1597['where'],{'$or':_[_0x7a8d('0x2d')](_0x553e3e,function(_0x33674b){if(_0x33674b[_0x7a8d('0x2f')]!==_0x7a8d('0x3f')){var _0x26d0a3={};_0x26d0a3[_0x33674b['name']]={'$like':'%'+_0x127a80[_0x7a8d('0x31')][_0x7a8d('0x3d')]+'%'};return _0x26d0a3;}})});}_0x5e1597=_[_0x7a8d('0x3e')]({},_0x5e1597,_0x127a80[_0x7a8d('0x40')]);var _0x1fe117={'where':_0x5e1597[_0x7a8d('0x3b')]};return db[_0x7a8d('0x41')][_0x7a8d('0x1f')](_0x1fe117)[_0x7a8d('0x26')](function(_0x1d8b00){_0x4b2627['count']=_0x1d8b00;if(_0x127a80['query'][_0x7a8d('0x42')]){_0x5e1597[_0x7a8d('0x43')]=[{'all':!![]}];}return db[_0x7a8d('0x41')][_0x7a8d('0x44')](_0x5e1597);})['then'](function(_0x152fa3){_0x4b2627[_0x7a8d('0x45')]=_0x152fa3;return _0x4b2627;})[_0x7a8d('0x26')](respondWithFilteredResult(_0x1bc11b,_0x5e1597))[_0x7a8d('0x46')](handleError(_0x1bc11b,null));};exports[_0x7a8d('0x47')]=function(_0x4fbb25,_0x4f7d6f){var _0x590fb2={'raw':![],'where':{'id':_0x4fbb25[_0x7a8d('0x48')]['id']}},_0x1b12f8={};_0x1b12f8[_0x7a8d('0x30')]=_['keys'](db['VoiceRecording'][_0x7a8d('0x2e')]);_0x1b12f8[_0x7a8d('0x31')]=_['keys'](_0x4fbb25[_0x7a8d('0x31')]);_0x1b12f8[_0x7a8d('0x32')]=_[_0x7a8d('0x33')](_0x1b12f8['model'],_0x1b12f8[_0x7a8d('0x31')]);_0x590fb2[_0x7a8d('0x34')]=_[_0x7a8d('0x33')](_0x1b12f8['model'],qs[_0x7a8d('0x35')](_0x4fbb25[_0x7a8d('0x31')]['fields']));_0x590fb2[_0x7a8d('0x34')]=_0x590fb2[_0x7a8d('0x34')][_0x7a8d('0x36')]?_0x590fb2['attributes']:_0x1b12f8['model'];if(_0x4fbb25[_0x7a8d('0x31')][_0x7a8d('0x42')]){_0x590fb2[_0x7a8d('0x43')]=[{'all':!![]}];}_0x590fb2=_[_0x7a8d('0x3e')]({},_0x590fb2,_0x4fbb25['options']);return db['VoiceRecording'][_0x7a8d('0x49')](_0x590fb2)[_0x7a8d('0x26')](handleEntityNotFound(_0x4f7d6f,null))[_0x7a8d('0x26')](respondWithResult(_0x4f7d6f,null))[_0x7a8d('0x46')](handleError(_0x4f7d6f,null));};exports[_0x7a8d('0x4a')]=function(_0x4f8813,_0x148c44){return db[_0x7a8d('0x41')][_0x7a8d('0x4a')](_0x4f8813['body'],{})['then'](respondWithResult(_0x148c44,0xc9))['catch'](handleError(_0x148c44,null));};exports[_0x7a8d('0x4b')]=function(_0x407e81,_0x22a5c5){if(_0x407e81[_0x7a8d('0x4c')]['id']){delete _0x407e81[_0x7a8d('0x4c')]['id'];}return db[_0x7a8d('0x41')][_0x7a8d('0x49')]({'where':{'id':_0x407e81[_0x7a8d('0x48')]['id']}})[_0x7a8d('0x26')](handleEntityNotFound(_0x22a5c5,null))['then'](saveUpdates(_0x407e81[_0x7a8d('0x4c')],null))['then'](respondWithResult(_0x22a5c5,null))[_0x7a8d('0x46')](handleError(_0x22a5c5,null));};exports[_0x7a8d('0x4d')]=function(_0x370211,_0x5d166a){return db[_0x7a8d('0x41')][_0x7a8d('0x4d')]()[_0x7a8d('0x26')](respondWithResult(_0x5d166a,null))['catch'](handleError(_0x5d166a,null));};exports[_0x7a8d('0x4e')]=function(_0x26b907,_0x94dd4a,_0x548dcd){var _0x5ef207=require(_0x7a8d('0x4f'));var _0x1cf3f9=![];var _0x293556={};if(_0x26b907[_0x7a8d('0x31')]['type']&&_0x26b907[_0x7a8d('0x31')][_0x7a8d('0x2f')]==='uniqueid'){_0x293556[_0x7a8d('0x50')]=_0x26b907[_0x7a8d('0x48')]['id'];}else{_0x293556['id']=_0x26b907[_0x7a8d('0x48')]['id'];}return db['VoiceRecording'][_0x7a8d('0x49')]({'where':_0x293556,'attributes':['id',_0x7a8d('0x51')],'raw':!![]})[_0x7a8d('0x26')](handleEntityNotFound(_0x94dd4a,null))[_0x7a8d('0x26')](function(_0x4d1109){if(_0x4d1109){var _0xb74ff=_0x4d1109['value'];var _0x263da7=util[_0x7a8d('0x52')](_0x7a8d('0x53'),_0xb74ff);if(fs[_0x7a8d('0x54')](_0x263da7)){_0x1cf3f9=!![];return _0x5ef207[_0x7a8d('0x55')](_0x263da7,_0xb74ff,config[_0x7a8d('0x56')][_0x7a8d('0x57')])[_0x7a8d('0x26')](function(){return _0x4d1109;});}return _0x4d1109;}})[_0x7a8d('0x26')](function(_0x5d3f70){if(_0x5d3f70){var _0x2c80d3=_0x5d3f70[_0x7a8d('0x51')];if(!fs[_0x7a8d('0x54')](_0x2c80d3)){throw new db[(_0x7a8d('0x58'))]['ValidationError'](_0x7a8d('0x59'));}if(_0x5d3f70[_0x7a8d('0x5a')]){return _0x94dd4a[_0x7a8d('0x4e')](_0x2c80d3,_0x5d3f70[_0x7a8d('0x5a')]+path[_0x7a8d('0x5b')](_0x2c80d3),function(){if(_0x1cf3f9){fs['unlink'](_0x2c80d3);}});}else{return _0x94dd4a[_0x7a8d('0x4e')](_0x2c80d3,function(_0x2835e7){if(_0x1cf3f9){fs[_0x7a8d('0x5c')](_0x2c80d3);}});}}})[_0x7a8d('0x46')](function(_0x84401f){if(_0x84401f[_0x7a8d('0x5d')]===_0x7a8d('0x59')){_0x94dd4a[_0x7a8d('0x1b')](0x194)['send'](_0x7a8d('0x5e'));}else{return handleError(_0x94dd4a,null);}});};exports[_0x7a8d('0x5f')]=function(_0x250f4e,_0x39a4bf,_0x418130){var _0x2e41a3=require(_0x7a8d('0x4f'));var _0x1471b0=![];var _0x16740c={'$and':[db[_0x7a8d('0x60')]['where'](db['sequelize']['fn']('MD5',db[_0x7a8d('0x60')][_0x7a8d('0x61')](_0x7a8d('0x50'))),_0x250f4e['query']['token'])]};if(_0x250f4e[_0x7a8d('0x31')][_0x7a8d('0x2f')]&&_0x250f4e['query'][_0x7a8d('0x2f')]===_0x7a8d('0x50')){_0x16740c[_0x7a8d('0x62')]['push']({'uniqueid':_0x250f4e[_0x7a8d('0x48')]['id']});}else{_0x16740c[_0x7a8d('0x62')][_0x7a8d('0x63')]({'id':_0x250f4e[_0x7a8d('0x48')]['id']});}return db[_0x7a8d('0x41')][_0x7a8d('0x49')]({'where':_0x16740c,'attributes':['id','value'],'raw':!![]})[_0x7a8d('0x26')](handleEntityNotFound(_0x39a4bf,null))[_0x7a8d('0x26')](function(_0x5ba32b){if(_0x5ba32b){var _0x50bfe8=util[_0x7a8d('0x52')]('%s.cypher',_0x5ba32b[_0x7a8d('0x51')]);if(fs[_0x7a8d('0x54')](_0x50bfe8)){_0x1471b0=!![];return _0x2e41a3['decryptFile'](_0x50bfe8,_0x5ba32b['value'],config[_0x7a8d('0x56')]['recording'])[_0x7a8d('0x26')](function(){return _0x5ba32b;});}return _0x5ba32b;}})[_0x7a8d('0x26')](function(_0x402a79){if(_0x402a79){if(!fs['existsSync'](_0x402a79[_0x7a8d('0x51')])){throw new db[(_0x7a8d('0x58'))][(_0x7a8d('0x64'))](_0x7a8d('0x59'));}if(_0x402a79[_0x7a8d('0x5a')]){return _0x39a4bf[_0x7a8d('0x4e')](_0x402a79[_0x7a8d('0x51')],_0x402a79[_0x7a8d('0x5a')]+path[_0x7a8d('0x5b')](_0x402a79['value']),function(){if(_0x1471b0){fs[_0x7a8d('0x5c')](_0x402a79['value']);}});}else{return _0x39a4bf[_0x7a8d('0x4e')](_0x402a79['value'],function(_0x31fe85){if(_0x1471b0){fs[_0x7a8d('0x5c')](_0x402a79[_0x7a8d('0x51')]);}});}}})[_0x7a8d('0x46')](handleError(_0x39a4bf,null));};exports[_0x7a8d('0x27')]=function(_0x2d3505,_0x939c17){return db['VoiceRecording'][_0x7a8d('0x49')]({'where':{'id':_0x2d3505['params']['id']}})['then'](function(_0x517c23){if(_[_0x7a8d('0x65')](_0x517c23)){throw new ReferenceError(_0x7a8d('0x66'));}return _0x517c23;})[_0x7a8d('0x26')](function(_0x13f75e){var _0x1588a4=_0x13f75e[_0x7a8d('0x51')];logger[_0x7a8d('0x67')]('cancellazione\x20fisica\x20documento\x20%s',_0x1588a4);if(!_[_0x7a8d('0x65')](_0x13f75e[_0x7a8d('0x51')])&&fs[_0x7a8d('0x54')](_0x1588a4)){logger[_0x7a8d('0x67')](_0x7a8d('0x68')+_0x1588a4+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x1588a4);}_0x1588a4=_0x1588a4+_0x7a8d('0x69');if(!_['isNil'](_0x13f75e[_0x7a8d('0x51')])&&fs['existsSync'](_0x1588a4)){logger[_0x7a8d('0x67')]('File:\x20\x22'+_0x1588a4+_0x7a8d('0x6a'));fs[_0x7a8d('0x6b')](_0x1588a4);}return _0x13f75e;})[_0x7a8d('0x26')](function(_0x43412d){if(!_0x43412d)throw new InternalError();return _0x43412d[_0x7a8d('0x27')]();})[_0x7a8d('0x26')](function(){_0x939c17['status'](0xcc)[_0x7a8d('0x1a')]();})[_0x7a8d('0x46')](handleError(_0x939c17,null));};function getBucketslist(_0x4cee23,_0x52f2bf,_0x5a67fb){return new Promise(function(_0xac7144,_0x2250b4){var _0x51912d=new AWS['S3']({'accessKeyId':_0x52f2bf,'secretAccessKey':_0x4cee23,'region':_0x5a67fb});_0x51912d['listBuckets']({},function(_0xdb285c,_0x1423a0){if(_0xdb285c){return _0x2250b4(_0xdb285c);}else{return _0xac7144(_0x1423a0);}});});}function createBucket(_0x44d255,_0x2fe785,_0x13807c,_0x2cc1c5){return new Promise(function(_0x2a0a13,_0x19d6b1){var _0x796bd5=new AWS['S3']({'accessKeyId':_0x2fe785,'secretAccessKey':_0x44d255,'region':_0x13807c});_0x796bd5[_0x7a8d('0x6c')]({'Bucket':_0x2cc1c5},function(_0x3bea4c,_0x4f7854){if(_0x3bea4c){return _0x19d6b1(_0x3bea4c);}else{return _0x2a0a13(_0x4f7854);}});});}function uploadFile(_0xe10948,_0xe1c9f4,_0x5b186a,_0x3b0a40,_0x5330bf,_0x136fae){return new Promise(function(_0x40f00a,_0x31c517){var _0x175ac8=new AWS['S3']({'accessKeyId':_0xe1c9f4,'secretAccessKey':_0xe10948,'region':_0x5b186a});_0x175ac8[_0x7a8d('0x6d')]({'Bucket':_0x3b0a40,'Key':_0x5330bf,'Body':_0x136fae},function(_0x34c26d,_0x156db9){if(_0x34c26d){return _0x31c517(_0x34c26d);}else{return _0x40f00a(_0x156db9);}});});}function startTranscribe(_0x3c07c0,_0x441d20,_0x19c856,_0x35d18d,_0x2bed78,_0x478a80){return new Promise(function(_0x309671,_0x41e717){var _0xcdb2b0=new AWS[(_0x7a8d('0x6e'))]({'accessKeyId':_0x441d20,'secretAccessKey':_0x3c07c0,'region':_0x19c856});_0xcdb2b0[_0x7a8d('0x6f')]({'TranscriptionJobName':_0x35d18d,'LanguageCode':_0x2bed78,'Media':{'MediaFileUri':_0x478a80}},function(_0x2e3c4f,_0x420568){if(_0x2e3c4f){return _0x41e717(_0x2e3c4f);}else{return _0x309671(_0x420568);}});});}function transcribe(_0x1c065c,_0x403bfe,_0x5c2d8e,_0x4667ec,_0x4a4f38,_0x408bca,_0x37582e){return new Promise(function(_0x4606ca,_0x401cdf){var _0x320ec7={};logger[_0x7a8d('0x67')](util[_0x7a8d('0x52')](_0x7a8d('0x70'),_0x1c065c,_0x4a4f38));return uploadFile(_0x403bfe,_0x5c2d8e,_0x4667ec,_0x4a4f38,path[_0x7a8d('0x71')](_0x408bca),fs[_0x7a8d('0x72')](_0x408bca))[_0x7a8d('0x26')](function(_0x147c6f){logger[_0x7a8d('0x67')](util[_0x7a8d('0x52')](_0x7a8d('0x73'),_0x1c065c,_0x4a4f38,_0x147c6f[_0x7a8d('0x74')]));_0x320ec7[_0x7a8d('0x75')]=_0x147c6f[_0x7a8d('0x76')];_0x320ec7[_0x7a8d('0x77')]=_0x147c6f[_0x7a8d('0x74')];logger[_0x7a8d('0x67')](util['format'](_0x7a8d('0x78'),_0x1c065c));return startTranscribe(_0x403bfe,_0x5c2d8e,_0x4667ec,uuidv4(),_0x37582e,_0x147c6f['Location']);})[_0x7a8d('0x26')](function(_0x39e8c7){logger[_0x7a8d('0x67')](util[_0x7a8d('0x52')](_0x7a8d('0x79'),_0x1c065c,_0x39e8c7[_0x7a8d('0x7a')][_0x7a8d('0x7b')]));_0x320ec7['transcribeName']=_0x39e8c7['TranscriptionJob']['TranscriptionJobName'];_0x320ec7[_0x7a8d('0x7c')]=_0x39e8c7[_0x7a8d('0x7a')][_0x7a8d('0x7d')];return _0x4606ca(_0x320ec7);})['catch'](function(_0x2b50c5){return _0x401cdf(_0x2b50c5);});});}exports[_0x7a8d('0x7e')]=function(_0x506e90,_0x25adcd,_0x104e30){var _0x12ceca;var _0x3c2cef;var _0x56bc42;var _0x4f810e=require('../../components/encryptor');return db[_0x7a8d('0x41')][_0x7a8d('0x7f')]({'where':{'id':_0x506e90[_0x7a8d('0x48')]['id']}})[_0x7a8d('0x26')](function(_0x29d2c6){if(_0x29d2c6){var _0x30b2bb=util[_0x7a8d('0x52')](_0x7a8d('0x53'),_0x29d2c6[_0x7a8d('0x51')]);if(fs[_0x7a8d('0x54')](_0x30b2bb)){cypher=!![];return _0x4f810e[_0x7a8d('0x55')](_0x30b2bb,_0x29d2c6[_0x7a8d('0x51')],config[_0x7a8d('0x56')][_0x7a8d('0x57')])[_0x7a8d('0x26')](function(){return _0x29d2c6;});}return _0x29d2c6;}})[_0x7a8d('0x26')](function(_0x5484c6){if(!_0x5484c6){throw new db['Sequelize']['ValidationError'](_0x7a8d('0x80'));}_0x3c2cef=_0x5484c6;return db[_0x7a8d('0x81')]['findOne']({'where':{'id':0x1}});})[_0x7a8d('0x26')](handleEntityNotFound(_0x25adcd,null))[_0x7a8d('0x26')](function(_0x116009){if(_0x116009){_0x12ceca=_0x116009;if(!_0x12ceca[_0x7a8d('0x82')]||!_0x12ceca[_0x7a8d('0x83')]||!_0x12ceca[_0x7a8d('0x84')]||!_0x12ceca[_0x7a8d('0x85')]||!_0x12ceca['bucket']){throw new db[(_0x7a8d('0x58'))][(_0x7a8d('0x64'))](_0x7a8d('0x86'));}if(_0x506e90[_0x7a8d('0x4c')][_0x7a8d('0x87')]&&(!_0x12ceca[_0x7a8d('0x88')]||!_0x12ceca[_0x7a8d('0x89')]||!_0x12ceca[_0x7a8d('0x8a')]||!_0x12ceca[_0x7a8d('0x85')]||!_0x12ceca[_0x7a8d('0x75')])){throw new db[(_0x7a8d('0x58'))]['ValidationError'](_0x7a8d('0x8b'));}return db[_0x7a8d('0x8c')][_0x7a8d('0x7f')]({'where':{'id':_0x12ceca['transcribeAccountId']}});}})['then'](function(_0x2313fc){if(!_0x2313fc){throw new db[(_0x7a8d('0x58'))]['ValidationError'](_0x7a8d('0x8d'));}if(!_0x2313fc[_0x7a8d('0x8e')]||!_0x2313fc['data2']){throw new db[(_0x7a8d('0x58'))][(_0x7a8d('0x64'))](_0x7a8d('0x8f'));}_0x56bc42=_0x2313fc;return getBucketslist(_0x56bc42[_0x7a8d('0x8e')],_0x56bc42[_0x7a8d('0x90')],_0x12ceca[_0x7a8d('0x84')]);})['then'](function(_0x21e38e){if(_0x21e38e&&_0x21e38e[_0x7a8d('0x91')]){var _0x3dc6e7=_['find'](_0x21e38e['Buckets'],function(_0xab8669){return _0xab8669[_0x7a8d('0x92')]===_0x12ceca[_0x7a8d('0x75')];});if(!_0x3dc6e7){logger[_0x7a8d('0x67')](util[_0x7a8d('0x52')]('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available',_0x506e90[_0x7a8d('0x48')]['id'],_0x12ceca[_0x7a8d('0x75')]));return createBucket(_0x56bc42['data1'],_0x56bc42[_0x7a8d('0x90')],_0x12ceca['transcribeRegion'],_0x12ceca[_0x7a8d('0x75')]);}logger[_0x7a8d('0x67')](util[_0x7a8d('0x52')](_0x7a8d('0x93'),_0x506e90[_0x7a8d('0x48')]['id'],_0x12ceca[_0x7a8d('0x75')]));return;}})[_0x7a8d('0x26')](function(_0x51e0a7){if(_0x3c2cef['transcribeStatus']===_0x7a8d('0x94')){return transcribe(_0x506e90['params']['id'],_0x56bc42['data1'],_0x56bc42[_0x7a8d('0x90')],_0x12ceca[_0x7a8d('0x84')],_0x12ceca[_0x7a8d('0x75')],_0x3c2cef[_0x7a8d('0x51')],_0x12ceca[_0x7a8d('0x85')]);}else{logger['info'](util[_0x7a8d('0x52')](_0x7a8d('0x95'),_0x506e90[_0x7a8d('0x48')]['id']));return{'transcribeStatus':_0x7a8d('0x96')};}})[_0x7a8d('0x26')](function(_0x5eb1c6){if(_0x5eb1c6){_0x5eb1c6[_0x7a8d('0x97')]=_0x506e90[_0x7a8d('0x4c')][_0x7a8d('0x87')];return _0x3c2cef[_0x7a8d('0x98')](_0x5eb1c6);}})[_0x7a8d('0x26')](respondWithResult(_0x25adcd,null))[_0x7a8d('0x46')](handleError(_0x25adcd,null));};function writeFile(_0x1789c7,_0x18b653){return new Promise(function(_0x153b2a,_0x140dab){fs[_0x7a8d('0x99')](_0x18b653,_0x1789c7,function(_0x110274,_0x514332){if(_0x110274){return _0x140dab(_0x110274);}else{return _0x153b2a(_0x514332);}});});}exports[_0x7a8d('0x9a')]=function(_0x5b8694,_0x1fa559,_0x1246f2){return db[_0x7a8d('0x41')]['findOne']({'where':{'id':_0x5b8694[_0x7a8d('0x48')]['id']}})['then'](handleEntityNotFound(_0x1fa559))['then'](function(_0x1165f5){if(_0x1165f5&&_0x1165f5[_0x7a8d('0x9b')]){var _0x17d366=_0x1165f5[_0x7a8d('0x9b')];var _0x3a15f7=config[_0x7a8d('0x9c')]+_0x7a8d('0x9d')+_0x1165f5['id']+_0x7a8d('0x9e');if(fs[_0x7a8d('0x54')](_0x3a15f7)){return _0x3a15f7;}return writeFile(_0x17d366,_0x3a15f7)['then'](function(){return _0x3a15f7;});}else{throw new db[(_0x7a8d('0x58'))][(_0x7a8d('0x64'))]('Transcript\x20not\x20available');}})[_0x7a8d('0x26')](function(_0x2ba072){return _0x1fa559['download'](_0x2ba072);})[_0x7a8d('0x46')](handleError(_0x1fa559));};
\ No newline at end of file
+var _0x9f3b=['TranscriptionJobStatus','runTranscribe','Voice\x20Recording\x20not\x20found','findOne','transcribe','language','runSentiment','sentimentAccountId','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','transcribeAccountId','Cloud\x20Provider\x20not\x20available','data1','Cloud\x20Provider\x20not\x20configured','transcribeRegion','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','data2','IN_PROGRESS','tempSentiment','updateAttributes','writeFile','downloadTranscribe','fileText','/server/files/transcribes/transcribe_','.txt','eml-format','rimraf','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','limit','undefined','count','set','apply','reject','save','update','then','sendStatus','error','stack','name','send','index','map','VoiceRecording','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','find','create','body','uniqueid','format','%s.cypher','existsSync','decryptFile','secrets','recording','value','ValidationError','VoiceRecording\x20not\x20found','filename','download','extname','unlink','message','../../components/encryptor','MD5','$and','push','Sequelize','destroy','isNil','Entity\x20not\x20found','unlinkSync','.cypher','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','listBuckets','createBucket','upload','TranscribeService','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','info','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','TranscriptionJob','TranscriptionJobName','transcribeStatus'];(function(_0x290d95,_0x2c7887){var _0x2e2be3=function(_0x38c5b8){while(--_0x38c5b8){_0x290d95['push'](_0x290d95['shift']());}};_0x2e2be3(++_0x2c7887);}(_0x9f3b,0x1d6));var _0xb9f3=function(_0x3653c7,_0xadb356){_0x3653c7=_0x3653c7-0x0;var _0x58a021=_0x9f3b[_0x3653c7];return _0x58a021;};'use strict';var emlformat=require(_0xb9f3('0x0'));var rimraf=require(_0xb9f3('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb9f3('0x2'));var moment=require(_0xb9f3('0x3'));var BPromise=require(_0xb9f3('0x4'));var Mustache=require(_0xb9f3('0x5'));var util=require(_0xb9f3('0x6'));var path=require(_0xb9f3('0x7'));var sox=require(_0xb9f3('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb9f3('0x9'));var _=require(_0xb9f3('0xa'));var squel=require('squel');var crypto=require(_0xb9f3('0xb'));var jsforce=require(_0xb9f3('0xc'));var deskjs=require(_0xb9f3('0xd'));var toCsv=require(_0xb9f3('0xe'));var querystring=require(_0xb9f3('0xf'));var Papa=require(_0xb9f3('0x10'));var AWS=require('aws-sdk');var uuidv4=require(_0xb9f3('0x11'));var Redis=require(_0xb9f3('0x12'));var authService=require(_0xb9f3('0x13'));var qs=require(_0xb9f3('0x14'));var as=require(_0xb9f3('0x15'));var hardwareService=require(_0xb9f3('0x16'));var logger=require(_0xb9f3('0x17'))(_0xb9f3('0x18'));var utils=require(_0xb9f3('0x19'));var config=require(_0xb9f3('0x1a'));var licenseUtil=require(_0xb9f3('0x1b'));var db=require(_0xb9f3('0x1c'))['db'];function respondWithStatusCode(_0x1c5080,_0xf3fc1d){_0xf3fc1d=_0xf3fc1d||0xcc;return function(_0x1cf9ea){if(_0x1cf9ea){return _0x1c5080['sendStatus'](_0xf3fc1d);}return _0x1c5080[_0xb9f3('0x1d')](_0xf3fc1d)[_0xb9f3('0x1e')]();};}function respondWithResult(_0x4444e6,_0x57a3fe){_0x57a3fe=_0x57a3fe||0xc8;return function(_0x2ed5da){if(_0x2ed5da){return _0x4444e6[_0xb9f3('0x1d')](_0x57a3fe)[_0xb9f3('0x1f')](_0x2ed5da);}};}function respondWithFilteredResult(_0x46db68,_0x1a72bc){return function(_0x5511c4){if(_0x5511c4){var _0x8197bb=typeof _0x1a72bc[_0xb9f3('0x20')]==='undefined'&&typeof _0x1a72bc[_0xb9f3('0x21')]===_0xb9f3('0x22');var _0x37ba52=_0x5511c4[_0xb9f3('0x23')];var _0x1649bc=_0x8197bb?0x0:_0x1a72bc[_0xb9f3('0x20')];var _0x30d6b3=_0x8197bb?_0x5511c4[_0xb9f3('0x23')]:_0x1a72bc[_0xb9f3('0x20')]+_0x1a72bc['limit'];var _0xe2b62f;if(_0x30d6b3>=_0x37ba52){_0x30d6b3=_0x37ba52;_0xe2b62f=0xc8;}else{_0xe2b62f=0xce;}_0x46db68[_0xb9f3('0x1d')](_0xe2b62f);return _0x46db68[_0xb9f3('0x24')]('Content-Range',_0x1649bc+'-'+_0x30d6b3+'/'+_0x37ba52)[_0xb9f3('0x1f')](_0x5511c4);}return null;};}function patchUpdates(_0x448fbb){return function(_0x4a762c){try{jsonpatch[_0xb9f3('0x25')](_0x4a762c,_0x448fbb,!![]);}catch(_0xabcbd1){return BPromise[_0xb9f3('0x26')](_0xabcbd1);}return _0x4a762c[_0xb9f3('0x27')]();};}function saveUpdates(_0x1448a1,_0x2f7cbb){return function(_0x13ebf6){if(_0x13ebf6){return _0x13ebf6[_0xb9f3('0x28')](_0x1448a1)[_0xb9f3('0x29')](function(_0x6954d0){return _0x6954d0;});}return null;};}function removeEntity(_0x46e009,_0x37e6e0){return function(_0x89f649){if(_0x89f649){return _0x89f649['destroy']()['then'](function(){_0x46e009[_0xb9f3('0x1d')](0xcc)[_0xb9f3('0x1e')]();});}};}function handleEntityNotFound(_0x28882a,_0x146f06){return function(_0x3fe2ed){if(!_0x3fe2ed){_0x28882a[_0xb9f3('0x2a')](0x194);}return _0x3fe2ed;};}function handleError(_0x54a694,_0x5d53e7){_0x5d53e7=_0x5d53e7||0x1f4;return function(_0x539686){logger[_0xb9f3('0x2b')](_0x539686[_0xb9f3('0x2c')]);if(_0x539686[_0xb9f3('0x2d')]){delete _0x539686['name'];}_0x54a694[_0xb9f3('0x1d')](_0x5d53e7)[_0xb9f3('0x2e')](_0x539686);};}exports[_0xb9f3('0x2f')]=function(_0x5cb691,_0x592379){var _0x497e7d={},_0x20671a={},_0x4fbab7={'count':0x0,'rows':[]};var _0xc7fe3a=_[_0xb9f3('0x30')](db[_0xb9f3('0x31')][_0xb9f3('0x32')],function(_0x3268a9){return{'name':_0x3268a9[_0xb9f3('0x33')],'type':_0x3268a9[_0xb9f3('0x34')][_0xb9f3('0x35')]};});_0x20671a[_0xb9f3('0x36')]=_['differenceBy'](_[_0xb9f3('0x30')](_0xc7fe3a,_0xb9f3('0x2d')),['format']);_0x20671a['query']=_[_0xb9f3('0x37')](_0x5cb691[_0xb9f3('0x38')]);_0x20671a[_0xb9f3('0x39')]=_[_0xb9f3('0x3a')](_0x20671a[_0xb9f3('0x36')],_0x20671a[_0xb9f3('0x38')]);_0x497e7d[_0xb9f3('0x3b')]=_[_0xb9f3('0x3a')](_0x20671a[_0xb9f3('0x36')],qs[_0xb9f3('0x3c')](_0x5cb691['query']['fields']));_0x497e7d['attributes']=_0x497e7d[_0xb9f3('0x3b')][_0xb9f3('0x3d')]?_0x497e7d[_0xb9f3('0x3b')]:_0x20671a[_0xb9f3('0x36')];if(!_0x5cb691[_0xb9f3('0x38')][_0xb9f3('0x3e')](_0xb9f3('0x3f'))){_0x497e7d['limit']=qs[_0xb9f3('0x21')](_0x5cb691[_0xb9f3('0x38')]['limit']);_0x497e7d['offset']=qs[_0xb9f3('0x20')](_0x5cb691['query'][_0xb9f3('0x20')]);}_0x497e7d['order']=qs[_0xb9f3('0x40')](_0x5cb691[_0xb9f3('0x38')]['sort']);_0x497e7d[_0xb9f3('0x41')]=qs[_0xb9f3('0x39')](_[_0xb9f3('0x42')](_0x5cb691[_0xb9f3('0x38')],_0x20671a[_0xb9f3('0x39')]),_0xc7fe3a);if(_0x5cb691[_0xb9f3('0x38')]['filter']){_0x497e7d[_0xb9f3('0x41')]=_[_0xb9f3('0x43')](_0x497e7d[_0xb9f3('0x41')],{'$or':_[_0xb9f3('0x30')](_0xc7fe3a,function(_0x3c8b2d){if(_0x3c8b2d[_0xb9f3('0x34')]!==_0xb9f3('0x44')){var _0x9f78c7={};_0x9f78c7[_0x3c8b2d[_0xb9f3('0x2d')]]={'$like':'%'+_0x5cb691[_0xb9f3('0x38')]['filter']+'%'};return _0x9f78c7;}})});}_0x497e7d=_[_0xb9f3('0x43')]({},_0x497e7d,_0x5cb691[_0xb9f3('0x45')]);var _0x10b784={'where':_0x497e7d[_0xb9f3('0x41')]};return db[_0xb9f3('0x31')][_0xb9f3('0x23')](_0x10b784)[_0xb9f3('0x29')](function(_0x39b9d9){_0x4fbab7[_0xb9f3('0x23')]=_0x39b9d9;if(_0x5cb691['query'][_0xb9f3('0x46')]){_0x497e7d[_0xb9f3('0x47')]=[{'all':!![]}];}return db[_0xb9f3('0x31')][_0xb9f3('0x48')](_0x497e7d);})[_0xb9f3('0x29')](function(_0x4933b9){_0x4fbab7['rows']=_0x4933b9;return _0x4fbab7;})['then'](respondWithFilteredResult(_0x592379,_0x497e7d))[_0xb9f3('0x49')](handleError(_0x592379,null));};exports['show']=function(_0x52527c,_0x5a0c38){var _0x343c60={'raw':![],'where':{'id':_0x52527c[_0xb9f3('0x4a')]['id']}},_0xb046f2={};_0xb046f2[_0xb9f3('0x36')]=_[_0xb9f3('0x37')](db['VoiceRecording'][_0xb9f3('0x32')]);_0xb046f2[_0xb9f3('0x38')]=_[_0xb9f3('0x37')](_0x52527c[_0xb9f3('0x38')]);_0xb046f2[_0xb9f3('0x39')]=_[_0xb9f3('0x3a')](_0xb046f2[_0xb9f3('0x36')],_0xb046f2[_0xb9f3('0x38')]);_0x343c60[_0xb9f3('0x3b')]=_['intersection'](_0xb046f2['model'],qs['fields'](_0x52527c[_0xb9f3('0x38')][_0xb9f3('0x3c')]));_0x343c60['attributes']=_0x343c60[_0xb9f3('0x3b')][_0xb9f3('0x3d')]?_0x343c60[_0xb9f3('0x3b')]:_0xb046f2[_0xb9f3('0x36')];if(_0x52527c[_0xb9f3('0x38')][_0xb9f3('0x46')]){_0x343c60['include']=[{'all':!![]}];}_0x343c60=_[_0xb9f3('0x43')]({},_0x343c60,_0x52527c[_0xb9f3('0x45')]);return db['VoiceRecording'][_0xb9f3('0x4b')](_0x343c60)[_0xb9f3('0x29')](handleEntityNotFound(_0x5a0c38,null))[_0xb9f3('0x29')](respondWithResult(_0x5a0c38,null))[_0xb9f3('0x49')](handleError(_0x5a0c38,null));};exports[_0xb9f3('0x4c')]=function(_0x3f87fe,_0x436f47){return db['VoiceRecording'][_0xb9f3('0x4c')](_0x3f87fe[_0xb9f3('0x4d')],{})[_0xb9f3('0x29')](respondWithResult(_0x436f47,0xc9))[_0xb9f3('0x49')](handleError(_0x436f47,null));};exports[_0xb9f3('0x28')]=function(_0x3947b4,_0x2b520c){if(_0x3947b4[_0xb9f3('0x4d')]['id']){delete _0x3947b4[_0xb9f3('0x4d')]['id'];}return db[_0xb9f3('0x31')][_0xb9f3('0x4b')]({'where':{'id':_0x3947b4[_0xb9f3('0x4a')]['id']}})[_0xb9f3('0x29')](handleEntityNotFound(_0x2b520c,null))[_0xb9f3('0x29')](saveUpdates(_0x3947b4['body'],null))[_0xb9f3('0x29')](respondWithResult(_0x2b520c,null))['catch'](handleError(_0x2b520c,null));};exports['describe']=function(_0x3b446c,_0x5289ad){return db[_0xb9f3('0x31')]['describe']()[_0xb9f3('0x29')](respondWithResult(_0x5289ad,null))[_0xb9f3('0x49')](handleError(_0x5289ad,null));};exports['download']=function(_0xa75edd,_0x1bb215,_0x4196d8){var _0x14e4b7=require('../../components/encryptor');var _0x5de32a=![];var _0x5c4b0d={};if(_0xa75edd[_0xb9f3('0x38')][_0xb9f3('0x34')]&&_0xa75edd['query'][_0xb9f3('0x34')]===_0xb9f3('0x4e')){_0x5c4b0d[_0xb9f3('0x4e')]=_0xa75edd[_0xb9f3('0x4a')]['id'];}else{_0x5c4b0d['id']=_0xa75edd[_0xb9f3('0x4a')]['id'];}return db['VoiceRecording'][_0xb9f3('0x4b')]({'where':_0x5c4b0d,'attributes':['id','value'],'raw':!![]})[_0xb9f3('0x29')](handleEntityNotFound(_0x1bb215,null))[_0xb9f3('0x29')](function(_0x384896){if(_0x384896){var _0x3640a3=_0x384896['value'];var _0x102c9c=util[_0xb9f3('0x4f')](_0xb9f3('0x50'),_0x3640a3);if(fs[_0xb9f3('0x51')](_0x102c9c)){_0x5de32a=!![];return _0x14e4b7[_0xb9f3('0x52')](_0x102c9c,_0x3640a3,config[_0xb9f3('0x53')][_0xb9f3('0x54')])[_0xb9f3('0x29')](function(){return _0x384896;});}return _0x384896;}})[_0xb9f3('0x29')](function(_0x5ba607){if(_0x5ba607){var _0x2efb1e=_0x5ba607[_0xb9f3('0x55')];if(!fs[_0xb9f3('0x51')](_0x2efb1e)){throw new db['Sequelize'][(_0xb9f3('0x56'))](_0xb9f3('0x57'));}if(_0x5ba607[_0xb9f3('0x58')]){return _0x1bb215[_0xb9f3('0x59')](_0x2efb1e,_0x5ba607[_0xb9f3('0x58')]+path[_0xb9f3('0x5a')](_0x2efb1e),function(){if(_0x5de32a){fs[_0xb9f3('0x5b')](_0x2efb1e);}});}else{return _0x1bb215['download'](_0x2efb1e,function(_0x2bd22e){if(_0x5de32a){fs[_0xb9f3('0x5b')](_0x2efb1e);}});}}})['catch'](function(_0x3e04e9){if(_0x3e04e9[_0xb9f3('0x5c')]===_0xb9f3('0x57')){_0x1bb215[_0xb9f3('0x1d')](0x194)['send']('Not\x20found');}else{return handleError(_0x1bb215,null);}});};exports['downloads']=function(_0x42c54d,_0x26bbe9,_0x4e46a2){var _0x5037ea=require(_0xb9f3('0x5d'));var _0x2c189c=![];var _0x2c7b85={'$and':[db['sequelize'][_0xb9f3('0x41')](db['sequelize']['fn'](_0xb9f3('0x5e'),db['sequelize']['col'](_0xb9f3('0x4e'))),_0x42c54d[_0xb9f3('0x38')]['token'])]};if(_0x42c54d[_0xb9f3('0x38')][_0xb9f3('0x34')]&&_0x42c54d['query'][_0xb9f3('0x34')]===_0xb9f3('0x4e')){_0x2c7b85[_0xb9f3('0x5f')]['push']({'uniqueid':_0x42c54d[_0xb9f3('0x4a')]['id']});}else{_0x2c7b85[_0xb9f3('0x5f')][_0xb9f3('0x60')]({'id':_0x42c54d[_0xb9f3('0x4a')]['id']});}return db[_0xb9f3('0x31')][_0xb9f3('0x4b')]({'where':_0x2c7b85,'attributes':['id',_0xb9f3('0x55')],'raw':!![]})[_0xb9f3('0x29')](handleEntityNotFound(_0x26bbe9,null))[_0xb9f3('0x29')](function(_0x3dbe3c){if(_0x3dbe3c){var _0x4b4373=util[_0xb9f3('0x4f')](_0xb9f3('0x50'),_0x3dbe3c[_0xb9f3('0x55')]);if(fs[_0xb9f3('0x51')](_0x4b4373)){_0x2c189c=!![];return _0x5037ea[_0xb9f3('0x52')](_0x4b4373,_0x3dbe3c['value'],config[_0xb9f3('0x53')]['recording'])[_0xb9f3('0x29')](function(){return _0x3dbe3c;});}return _0x3dbe3c;}})[_0xb9f3('0x29')](function(_0x17c663){if(_0x17c663){if(!fs[_0xb9f3('0x51')](_0x17c663[_0xb9f3('0x55')])){throw new db[(_0xb9f3('0x61'))][(_0xb9f3('0x56'))]('VoiceRecording\x20not\x20found');}if(_0x17c663['filename']){return _0x26bbe9[_0xb9f3('0x59')](_0x17c663['value'],_0x17c663[_0xb9f3('0x58')]+path[_0xb9f3('0x5a')](_0x17c663[_0xb9f3('0x55')]),function(){if(_0x2c189c){fs[_0xb9f3('0x5b')](_0x17c663[_0xb9f3('0x55')]);}});}else{return _0x26bbe9[_0xb9f3('0x59')](_0x17c663[_0xb9f3('0x55')],function(_0x1f0e64){if(_0x2c189c){fs[_0xb9f3('0x5b')](_0x17c663[_0xb9f3('0x55')]);}});}}})[_0xb9f3('0x49')](handleError(_0x26bbe9,null));};exports[_0xb9f3('0x62')]=function(_0x598216,_0x77d363){return db['VoiceRecording'][_0xb9f3('0x4b')]({'where':{'id':_0x598216[_0xb9f3('0x4a')]['id']}})[_0xb9f3('0x29')](function(_0x153aa0){if(_[_0xb9f3('0x63')](_0x153aa0)){throw new ReferenceError(_0xb9f3('0x64'));}return _0x153aa0;})[_0xb9f3('0x29')](function(_0x30c818){var _0x3e0e6a=_0x30c818[_0xb9f3('0x55')];logger['info']('cancellazione\x20fisica\x20documento\x20%s',_0x3e0e6a);if(!_['isNil'](_0x30c818[_0xb9f3('0x55')])&&fs['existsSync'](_0x3e0e6a)){logger['info']('File:\x20\x22'+_0x3e0e6a+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xb9f3('0x65')](_0x3e0e6a);}_0x3e0e6a=_0x3e0e6a+_0xb9f3('0x66');if(!_['isNil'](_0x30c818[_0xb9f3('0x55')])&&fs[_0xb9f3('0x51')](_0x3e0e6a)){logger['info'](_0xb9f3('0x67')+_0x3e0e6a+_0xb9f3('0x68'));fs['unlinkSync'](_0x3e0e6a);}return _0x30c818;})[_0xb9f3('0x29')](function(_0x41bcde){if(!_0x41bcde)throw new InternalError();return _0x41bcde[_0xb9f3('0x62')]();})[_0xb9f3('0x29')](function(){_0x77d363['status'](0xcc)[_0xb9f3('0x1e')]();})[_0xb9f3('0x49')](handleError(_0x77d363,null));};function getBucketslist(_0xaad595,_0x503127,_0x5e2947){return new Promise(function(_0x478cf1,_0x24d262){var _0x5b21cb=new AWS['S3']({'accessKeyId':_0x503127,'secretAccessKey':_0xaad595,'region':_0x5e2947});_0x5b21cb[_0xb9f3('0x69')]({},function(_0xf50772,_0x54ad93){if(_0xf50772){return _0x24d262(_0xf50772);}else{return _0x478cf1(_0x54ad93);}});});}function createBucket(_0x5cf136,_0x325727,_0x3870b4,_0x4152af){return new Promise(function(_0x52de12,_0x2219ec){var _0x5b915d=new AWS['S3']({'accessKeyId':_0x325727,'secretAccessKey':_0x5cf136,'region':_0x3870b4});_0x5b915d[_0xb9f3('0x6a')]({'Bucket':_0x4152af},function(_0x382690,_0x58e080){if(_0x382690){return _0x2219ec(_0x382690);}else{return _0x52de12(_0x58e080);}});});}function uploadFile(_0x708abe,_0x3c0347,_0x4b7331,_0x589e1e,_0x213851,_0x877b17){return new Promise(function(_0x46d660,_0x1c0a64){var _0xf1b6c9=new AWS['S3']({'accessKeyId':_0x3c0347,'secretAccessKey':_0x708abe,'region':_0x4b7331});_0xf1b6c9[_0xb9f3('0x6b')]({'Bucket':_0x589e1e,'Key':_0x213851,'Body':_0x877b17},function(_0x564f89,_0x4a5a2d){if(_0x564f89){return _0x1c0a64(_0x564f89);}else{return _0x46d660(_0x4a5a2d);}});});}function startTranscribe(_0x23c677,_0x217533,_0x5e3a90,_0x348a91,_0x141d0e,_0xd04c94){return new Promise(function(_0x3c63a8,_0x2363e5){var _0x30705f=new AWS[(_0xb9f3('0x6c'))]({'accessKeyId':_0x217533,'secretAccessKey':_0x23c677,'region':_0x5e3a90});_0x30705f[_0xb9f3('0x6d')]({'TranscriptionJobName':_0x348a91,'LanguageCode':_0x141d0e,'Media':{'MediaFileUri':_0xd04c94}},function(_0x2215c0,_0x4d36a9){if(_0x2215c0){return _0x2363e5(_0x2215c0);}else{return _0x3c63a8(_0x4d36a9);}});});}function transcribe(_0x40a725,_0x288752,_0x10b23b,_0x598de0,_0x4284bd,_0xbb0263,_0x3edfe4){return new Promise(function(_0x3ba82f,_0xda47c7){var _0x4840bb={};logger['info'](util['format'](_0xb9f3('0x6e'),_0x40a725,_0x4284bd));return uploadFile(_0x288752,_0x10b23b,_0x598de0,_0x4284bd,path[_0xb9f3('0x6f')](_0xbb0263),fs[_0xb9f3('0x70')](_0xbb0263))['then'](function(_0x47eec9){logger[_0xb9f3('0x71')](util[_0xb9f3('0x4f')](_0xb9f3('0x72'),_0x40a725,_0x4284bd,_0x47eec9[_0xb9f3('0x73')]));_0x4840bb[_0xb9f3('0x74')]=_0x47eec9['Bucket'];_0x4840bb[_0xb9f3('0x75')]=_0x47eec9['Location'];logger[_0xb9f3('0x71')](util['format'](_0xb9f3('0x76'),_0x40a725));return startTranscribe(_0x288752,_0x10b23b,_0x598de0,uuidv4(),_0x3edfe4,_0x47eec9[_0xb9f3('0x73')]);})[_0xb9f3('0x29')](function(_0x59892e){logger[_0xb9f3('0x71')](util[_0xb9f3('0x4f')]('[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created',_0x40a725,_0x59892e[_0xb9f3('0x77')]['TranscriptionJobName']));_0x4840bb['transcribeName']=_0x59892e[_0xb9f3('0x77')][_0xb9f3('0x78')];_0x4840bb[_0xb9f3('0x79')]=_0x59892e[_0xb9f3('0x77')][_0xb9f3('0x7a')];return _0x3ba82f(_0x4840bb);})[_0xb9f3('0x49')](function(_0x3cc600){return _0xda47c7(_0x3cc600);});});}exports[_0xb9f3('0x7b')]=function(_0x5b9b4b,_0x314b4e,_0x246370){var _0x184767;var _0x12e9d4;var _0x234a5d;var _0x26ced8=require(_0xb9f3('0x5d'));return db[_0xb9f3('0x31')]['findOne']({'where':{'id':_0x5b9b4b[_0xb9f3('0x4a')]['id']}})[_0xb9f3('0x29')](function(_0x2e643f){if(_0x2e643f){var _0x1d623d=util['format'](_0xb9f3('0x50'),_0x2e643f[_0xb9f3('0x55')]);if(fs[_0xb9f3('0x51')](_0x1d623d)){cypher=!![];return _0x26ced8['decryptFile'](_0x1d623d,_0x2e643f[_0xb9f3('0x55')],config[_0xb9f3('0x53')][_0xb9f3('0x54')])[_0xb9f3('0x29')](function(){return _0x2e643f;});}return _0x2e643f;}})[_0xb9f3('0x29')](function(_0x34dfa3){if(!_0x34dfa3){throw new db[(_0xb9f3('0x61'))]['ValidationError'](_0xb9f3('0x7c'));}_0x12e9d4=_0x34dfa3;return db['Setting'][_0xb9f3('0x7d')]({'where':{'id':0x1}});})[_0xb9f3('0x29')](handleEntityNotFound(_0x314b4e,null))['then'](function(_0x1e1470){if(_0x1e1470){_0x184767=_0x1e1470;if(!_0x184767[_0xb9f3('0x7e')]||!_0x184767['transcribeAccountId']||!_0x184767['transcribeRegion']||!_0x184767[_0xb9f3('0x7f')]||!_0x184767[_0xb9f3('0x74')]){throw new db[(_0xb9f3('0x61'))][(_0xb9f3('0x56'))]('Transcribe\x20not\x20configured');}if(_0x5b9b4b[_0xb9f3('0x4d')][_0xb9f3('0x80')]&&(!_0x184767['sentiment']||!_0x184767[_0xb9f3('0x81')]||!_0x184767['sentimentRegion']||!_0x184767['language']||!_0x184767[_0xb9f3('0x74')])){throw new db['Sequelize'][(_0xb9f3('0x56'))](_0xb9f3('0x82'));}return db[_0xb9f3('0x83')][_0xb9f3('0x7d')]({'where':{'id':_0x184767[_0xb9f3('0x84')]}});}})[_0xb9f3('0x29')](function(_0x3c7ca6){if(!_0x3c7ca6){throw new db[(_0xb9f3('0x61'))][(_0xb9f3('0x56'))](_0xb9f3('0x85'));}if(!_0x3c7ca6[_0xb9f3('0x86')]||!_0x3c7ca6['data2']){throw new db['Sequelize'][(_0xb9f3('0x56'))](_0xb9f3('0x87'));}_0x234a5d=_0x3c7ca6;return getBucketslist(_0x234a5d[_0xb9f3('0x86')],_0x234a5d['data2'],_0x184767[_0xb9f3('0x88')]);})['then'](function(_0x311a5e){if(_0x311a5e&&_0x311a5e['Buckets']){var _0x15ad8c=_[_0xb9f3('0x4b')](_0x311a5e['Buckets'],function(_0x3e6d41){return _0x3e6d41['Name']===_0x184767[_0xb9f3('0x74')];});if(!_0x15ad8c){logger['info'](util[_0xb9f3('0x4f')]('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available',_0x5b9b4b[_0xb9f3('0x4a')]['id'],_0x184767[_0xb9f3('0x74')]));return createBucket(_0x234a5d[_0xb9f3('0x86')],_0x234a5d['data2'],_0x184767[_0xb9f3('0x88')],_0x184767[_0xb9f3('0x74')]);}logger[_0xb9f3('0x71')](util[_0xb9f3('0x4f')](_0xb9f3('0x89'),_0x5b9b4b['params']['id'],_0x184767[_0xb9f3('0x74')]));return;}})[_0xb9f3('0x29')](function(_0x4566d9){if(_0x12e9d4['transcribeStatus']===_0xb9f3('0x8a')){return transcribe(_0x5b9b4b['params']['id'],_0x234a5d[_0xb9f3('0x86')],_0x234a5d[_0xb9f3('0x8b')],_0x184767['transcribeRegion'],_0x184767[_0xb9f3('0x74')],_0x12e9d4[_0xb9f3('0x55')],_0x184767[_0xb9f3('0x7f')]);}else{logger[_0xb9f3('0x71')](util[_0xb9f3('0x4f')]('[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested',_0x5b9b4b['params']['id']));return{'transcribeStatus':_0xb9f3('0x8c')};}})[_0xb9f3('0x29')](function(_0x2f9c0d){if(_0x2f9c0d){_0x2f9c0d[_0xb9f3('0x8d')]=_0x5b9b4b[_0xb9f3('0x4d')][_0xb9f3('0x80')];return _0x12e9d4[_0xb9f3('0x8e')](_0x2f9c0d);}})[_0xb9f3('0x29')](respondWithResult(_0x314b4e,null))['catch'](handleError(_0x314b4e,null));};function writeFile(_0x440aac,_0x53a385){return new Promise(function(_0x35ca77,_0x27b046){fs[_0xb9f3('0x8f')](_0x53a385,_0x440aac,function(_0x33e451,_0x54ed21){if(_0x33e451){return _0x27b046(_0x33e451);}else{return _0x35ca77(_0x54ed21);}});});}exports[_0xb9f3('0x90')]=function(_0x5b0fe5,_0x423352,_0x263e7b){return db[_0xb9f3('0x31')]['findOne']({'where':{'id':_0x5b0fe5[_0xb9f3('0x4a')]['id']}})[_0xb9f3('0x29')](handleEntityNotFound(_0x423352))['then'](function(_0x218dcf){if(_0x218dcf&&_0x218dcf[_0xb9f3('0x91')]){var _0x383c78=_0x218dcf[_0xb9f3('0x91')];var _0x558de0=config['root']+_0xb9f3('0x92')+_0x218dcf['id']+_0xb9f3('0x93');if(fs[_0xb9f3('0x51')](_0x558de0)){return _0x558de0;}return writeFile(_0x383c78,_0x558de0)[_0xb9f3('0x29')](function(){return _0x558de0;});}else{throw new db[(_0xb9f3('0x61'))]['ValidationError']('Transcript\x20not\x20available');}})[_0xb9f3('0x29')](function(_0x37aa93){return _0x423352[_0xb9f3('0x59')](_0x37aa93);})[_0xb9f3('0x49')](handleError(_0x423352));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d14=['uniqueid','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./voiceRecording.attributes','exports','voice_recordings'];(function(_0xb61897,_0x5832b7){var _0x2f2f67=function(_0xc5b6b5){while(--_0xc5b6b5){_0xb61897['push'](_0xb61897['shift']());}};_0x2f2f67(++_0x5832b7);}(_0x7d14,0x6d));var _0x47d1=function(_0x4ac2d2,_0x547088){_0x4ac2d2=_0x4ac2d2-0x0;var _0x175eda=_0x7d14[_0x4ac2d2];return _0x175eda;};'use strict';var _=require(_0x47d1('0x0'));var util=require(_0x47d1('0x1'));var logger=require('../../config/logger')(_0x47d1('0x2'));var moment=require(_0x47d1('0x3'));var BPromise=require(_0x47d1('0x4'));var rp=require(_0x47d1('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x47d1('0x6'));var config=require(_0x47d1('0x7'));var attributes=require(_0x47d1('0x8'));module[_0x47d1('0x9')]=function(_0x1b2f47,_0x550ee2){return _0x1b2f47['define']('VoiceRecording',attributes,{'tableName':_0x47d1('0xa'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x47d1('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x322b=['uniqueid','lodash','../../config/logger','api','path','../../config/environment','./voiceRecording.attributes','VoiceRecording','voice_recordings'];(function(_0x5e3a45,_0x45f0c5){var _0x13419f=function(_0x5ac996){while(--_0x5ac996){_0x5e3a45['push'](_0x5e3a45['shift']());}};_0x13419f(++_0x45f0c5);}(_0x322b,0x106));var _0xb322=function(_0x5e0b59,_0x218ea1){_0x5e0b59=_0x5e0b59-0x0;var _0x3a1f0d=_0x322b[_0x5e0b59];return _0x3a1f0d;};'use strict';var _=require(_0xb322('0x0'));var util=require('util');var logger=require(_0xb322('0x1'))(_0xb322('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xb322('0x3'));var rimraf=require('rimraf');var config=require(_0xb322('0x4'));var attributes=require(_0xb322('0x5'));module['exports']=function(_0x210cdf,_0x34986d){return _0x210cdf['define'](_0xb322('0x6'),attributes,{'tableName':_0xb322('0x7'),'paranoid':![],'indexes':[{'name':_0xb322('0x8'),'fields':[_0xb322('0x8')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['options','raw','attributes','limit','debug','CreateVoiceRecording','../../components/encryptor','Setting','findOne','create','existsSync','value','format','%s.cypher','encryptFile','secrets','unlink','CreateVoiceRecording\x20file\x20encrypted','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','VoiceRecording,\x20%s,\x20%s','VoiceRecording,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','UpdateVoiceRecording','VoiceRecording','body'];(function(_0x4e7d25,_0x58285f){var _0x526fe6=function(_0x4f0aec){while(--_0x4f0aec){_0x4e7d25['push'](_0x4e7d25['shift']());}};_0x526fe6(++_0x58285f);}(_0x2ef3,0xba));var _0x32ef=function(_0x301e55,_0x4246af){_0x301e55=_0x301e55-0x0;var _0x3ccb8d=_0x2ef3[_0x301e55];return _0x3ccb8d;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('VoiceRecording,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('VoiceRecording,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}exports[_0x32ef('0x15')]=function(_0x1a9476){var _0x286bfb=this;return new Promise(function(_0x57863c,_0xbe37f6){return db[_0x32ef('0x16')]['update'](_0x1a9476[_0x32ef('0x17')],{'raw':_0x1a9476[_0x32ef('0x18')]?_0x1a9476[_0x32ef('0x18')][_0x32ef('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1a9476[_0x32ef('0x18')]?_0x1a9476[_0x32ef('0x18')]['where']||null:null,'attributes':_0x1a9476[_0x32ef('0x18')]?_0x1a9476['options'][_0x32ef('0x1a')]||null:null,'limit':_0x1a9476[_0x32ef('0x18')]?_0x1a9476['options'][_0x32ef('0x1b')]||null:null})[_0x32ef('0xb')](function(_0x5e8898){logger['info']('UpdateVoiceRecording',_0x1a9476);logger[_0x32ef('0x1c')](_0x32ef('0x15'),_0x1a9476,JSON[_0x32ef('0x10')](_0x5e8898));_0x57863c(_0x5e8898);})['catch'](function(_0x59585f){logger[_0x32ef('0x11')]('UpdateVoiceRecording',_0x59585f['message'],_0x1a9476);_0xbe37f6(_0x286bfb[_0x32ef('0x11')](0x1f4,_0x59585f[_0x32ef('0x13')]));});});};exports[_0x32ef('0x1d')]=function(_0x1dbe98){var _0x15ce54=this;return new Promise(function(_0x234175,_0x1874ea){var _0x38aed5=require(_0x32ef('0x1e'));var _0x2f52d7;return db[_0x32ef('0x1f')][_0x32ef('0x20')]({'attributes':['id','callRecordingEncryption'],'where':{'id':0x1},'raw':!![]})[_0x32ef('0xb')](function(_0x2f5d06){_0x2f52d7=_0x2f5d06;return db['VoiceRecording'][_0x32ef('0x21')](_0x1dbe98[_0x32ef('0x17')]);})[_0x32ef('0xb')](function(_0x26e207){if(_0x2f52d7['callRecordingEncryption']&&fs[_0x32ef('0x22')](_0x26e207[_0x32ef('0x23')])){var _0x31dbc3=util[_0x32ef('0x24')](_0x32ef('0x25'),_0x26e207[_0x32ef('0x23')]);return _0x38aed5[_0x32ef('0x26')](_0x26e207['value'],_0x31dbc3,config[_0x32ef('0x27')]['recording'])[_0x32ef('0xb')](function(){fs[_0x32ef('0x28')](_0x26e207['value']);logger[_0x32ef('0xc')](_0x32ef('0x29'));return _0x26e207;});}return _0x26e207;})[_0x32ef('0xb')](function(_0x20b467){logger[_0x32ef('0xc')]('CreateVoiceRecording',_0x1dbe98);logger['debug'](_0x32ef('0x1d'),_0x1dbe98,JSON['stringify'](_0x20b467));_0x234175(_0x20b467);})[_0x32ef('0x14')](function(_0x15b873){logger[_0x32ef('0x11')](_0x32ef('0x1d'),_0x15b873[_0x32ef('0x13')],_0x1dbe98);_0x1874ea(_0x15ce54[_0x32ef('0x11')](0x1f4,_0x15b873['message']));});});};
\ No newline at end of file
+var _0xd7d1=['unlink','CreateVoiceRecording\x20file\x20encrypted','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','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','raw','where','CreateVoiceRecording','../../components/encryptor','Setting','findOne','callRecordingEncryption','VoiceRecording','create','existsSync','format','%s.cypher','value','encryptFile','secrets','recording'];(function(_0x3203a1,_0x46c498){var _0x24215e=function(_0x4ffab0){while(--_0x4ffab0){_0x3203a1['push'](_0x3203a1['shift']());}};_0x24215e(++_0x46c498);}(_0xd7d1,0x1b3));var _0x1d7d=function(_0x3a8391,_0x4c7803){_0x3a8391=_0x3a8391-0x0;var _0x5a3d36=_0xd7d1[_0x3a8391];return _0x5a3d36;};'use strict';var _=require(_0x1d7d('0x0'));var util=require(_0x1d7d('0x1'));var moment=require(_0x1d7d('0x2'));var BPromise=require(_0x1d7d('0x3'));var rs=require(_0x1d7d('0x4'));var fs=require('fs');var Redis=require(_0x1d7d('0x5'));var db=require(_0x1d7d('0x6'))['db'];var utils=require(_0x1d7d('0x7'));var logger=require(_0x1d7d('0x8'))(_0x1d7d('0x9'));var config=require(_0x1d7d('0xa'));var jayson=require(_0x1d7d('0xb'));var client=jayson[_0x1d7d('0xc')]['http']({'port':0x232a});function respondWithRpcPromise(_0x462ef8,_0x1aa456,_0x14dbf6){return new BPromise(function(_0x3675a2,_0xd6189e){return client[_0x1d7d('0xd')](_0x462ef8,_0x14dbf6)[_0x1d7d('0xe')](function(_0xa44223){logger[_0x1d7d('0xf')](_0x1d7d('0x10'),_0x1aa456,_0x1d7d('0x11'));logger['debug'](_0x1d7d('0x12'),_0x1aa456,'request\x20sent',JSON[_0x1d7d('0x13')](_0xa44223));if(_0xa44223[_0x1d7d('0x14')]){if(_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x15')]===0x1f4){logger['error'](_0x1d7d('0x10'),_0x1aa456,_0xa44223['error']['message']);return _0xd6189e(_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x16')]);}logger['error']('VoiceRecording,\x20%s,\x20%s',_0x1aa456,_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x16')]);return _0x3675a2(_0xa44223[_0x1d7d('0x14')][_0x1d7d('0x16')]);}else{logger[_0x1d7d('0xf')]('VoiceRecording,\x20%s,\x20%s',_0x1aa456,_0x1d7d('0x11'));_0x3675a2(_0xa44223[_0x1d7d('0x17')]['message']);}})[_0x1d7d('0x18')](function(_0x162c3a){logger[_0x1d7d('0x14')](_0x1d7d('0x10'),_0x1aa456,_0x162c3a);_0xd6189e(_0x162c3a);});});}exports[_0x1d7d('0x19')]=function(_0x4db4f2){var _0x664e3f=this;return new Promise(function(_0x191024,_0x5cbb8f){return db['VoiceRecording'][_0x1d7d('0x1a')](_0x4db4f2[_0x1d7d('0x1b')],{'raw':_0x4db4f2[_0x1d7d('0x1c')]?_0x4db4f2[_0x1d7d('0x1c')][_0x1d7d('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4db4f2[_0x1d7d('0x1c')]?_0x4db4f2['options'][_0x1d7d('0x1e')]||null:null,'attributes':_0x4db4f2[_0x1d7d('0x1c')]?_0x4db4f2[_0x1d7d('0x1c')]['attributes']||null:null,'limit':_0x4db4f2[_0x1d7d('0x1c')]?_0x4db4f2[_0x1d7d('0x1c')]['limit']||null:null})['then'](function(_0x1dcaf2){logger[_0x1d7d('0xf')](_0x1d7d('0x19'),_0x4db4f2);logger['debug'](_0x1d7d('0x19'),_0x4db4f2,JSON[_0x1d7d('0x13')](_0x1dcaf2));_0x191024(_0x1dcaf2);})[_0x1d7d('0x18')](function(_0x21e59){logger['error'](_0x1d7d('0x19'),_0x21e59[_0x1d7d('0x16')],_0x4db4f2);_0x5cbb8f(_0x664e3f['error'](0x1f4,_0x21e59['message']));});});};exports[_0x1d7d('0x1f')]=function(_0x52c618){var _0x38c323=this;return new Promise(function(_0x2d4de4,_0x3bc6e8){var _0x22c40d=require(_0x1d7d('0x20'));var _0x59f827;return db[_0x1d7d('0x21')][_0x1d7d('0x22')]({'attributes':['id',_0x1d7d('0x23')],'where':{'id':0x1},'raw':!![]})['then'](function(_0x78adbe){_0x59f827=_0x78adbe;return db[_0x1d7d('0x24')][_0x1d7d('0x25')](_0x52c618['body']);})['then'](function(_0x53e25c){if(_0x59f827[_0x1d7d('0x23')]&&fs[_0x1d7d('0x26')](_0x53e25c['value'])){var _0x1ebcbc=util[_0x1d7d('0x27')](_0x1d7d('0x28'),_0x53e25c[_0x1d7d('0x29')]);return _0x22c40d[_0x1d7d('0x2a')](_0x53e25c[_0x1d7d('0x29')],_0x1ebcbc,config[_0x1d7d('0x2b')][_0x1d7d('0x2c')])[_0x1d7d('0xe')](function(){fs[_0x1d7d('0x2d')](_0x53e25c['value']);logger['info'](_0x1d7d('0x2e'));return _0x53e25c;});}return _0x53e25c;})[_0x1d7d('0xe')](function(_0x90e852){logger[_0x1d7d('0xf')](_0x1d7d('0x1f'),_0x52c618);logger[_0x1d7d('0x2f')](_0x1d7d('0x1f'),_0x52c618,JSON[_0x1d7d('0x13')](_0x90e852));_0x2d4de4(_0x90e852);})[_0x1d7d('0x18')](function(_0x47b6b2){logger[_0x1d7d('0x14')](_0x1d7d('0x1f'),_0x47b6b2[_0x1d7d('0x16')],_0x52c618);_0x3bc6e8(_0x38c323[_0x1d7d('0x14')](0x1f4,_0x47b6b2['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff09=['express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceTransferReport.controller','get','isAuthenticated','index','/describe','describe','show','put','/:id','update','delete','destroy','exports','multer','util','connect-timeout'];(function(_0x29eacf,_0x4cc057){var _0x2dc2be=function(_0x4bf0e5){while(--_0x4bf0e5){_0x29eacf['push'](_0x29eacf['shift']());}};_0x2dc2be(++_0x4cc057);}(_0xff09,0x1cb));var _0x9ff0=function(_0x45fd60,_0x227000){_0x45fd60=_0x45fd60-0x0;var _0x209c68=_0xff09[_0x45fd60];return _0x209c68;};'use strict';var multer=require(_0x9ff0('0x0'));var util=require(_0x9ff0('0x1'));var path=require('path');var timeout=require(_0x9ff0('0x2'));var express=require(_0x9ff0('0x3'));var router=express[_0x9ff0('0x4')]();var fs_extra=require(_0x9ff0('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x9ff0('0x6'));var config=require(_0x9ff0('0x7'));var controller=require(_0x9ff0('0x8'));router[_0x9ff0('0x9')]('/',auth[_0x9ff0('0xa')](),controller[_0x9ff0('0xb')]);router['get'](_0x9ff0('0xc'),auth['isAuthenticated'](),controller[_0x9ff0('0xd')]);router[_0x9ff0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0x9ff0('0xe')]);router['post']('/',auth[_0x9ff0('0xa')](),controller['create']);router[_0x9ff0('0xf')](_0x9ff0('0x10'),auth['isAuthenticated'](),controller[_0x9ff0('0x11')]);router[_0x9ff0('0x12')]('/:id',auth[_0x9ff0('0xa')](),controller[_0x9ff0('0x13')]);module[_0x9ff0('0x14')]=router;
\ No newline at end of file
+var _0x10c8=['path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./voiceTransferReport.controller','isAuthenticated','index','get','/describe','describe','/:id','show','put','update','delete','destroy','multer','util'];(function(_0x5d2d3c,_0x49cb70){var _0x1f150e=function(_0xd6e363){while(--_0xd6e363){_0x5d2d3c['push'](_0x5d2d3c['shift']());}};_0x1f150e(++_0x49cb70);}(_0x10c8,0x13e));var _0x810c=function(_0x333999,_0xc287bd){_0x333999=_0x333999-0x0;var _0x448aa7=_0x10c8[_0x333999];return _0x448aa7;};'use strict';var multer=require(_0x810c('0x0'));var util=require(_0x810c('0x1'));var path=require(_0x810c('0x2'));var timeout=require(_0x810c('0x3'));var express=require(_0x810c('0x4'));var router=express['Router']();var fs_extra=require(_0x810c('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x810c('0x6'));var config=require(_0x810c('0x7'));var controller=require(_0x810c('0x8'));router['get']('/',auth[_0x810c('0x9')](),controller[_0x810c('0xa')]);router[_0x810c('0xb')](_0x810c('0xc'),auth['isAuthenticated'](),controller[_0x810c('0xd')]);router['get'](_0x810c('0xe'),auth[_0x810c('0x9')](),controller[_0x810c('0xf')]);router['post']('/',auth[_0x810c('0x9')](),controller['create']);router[_0x810c('0x10')](_0x810c('0xe'),auth['isAuthenticated'](),controller[_0x810c('0x11')]);router[_0x810c('0x12')](_0x810c('0xe'),auth['isAuthenticated'](),controller[_0x810c('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f97=['Yes','moment','exports','ENUM','blind','attended','STRING'];(function(_0x47be93,_0x296be0){var _0xc9b6f5=function(_0x553c29){while(--_0x553c29){_0x47be93['push'](_0x47be93['shift']());}};_0xc9b6f5(++_0x296be0);}(_0x1f97,0x104));var _0x71f9=function(_0x25a584,_0x28710e){_0x25a584=_0x25a584-0x0;var _0x5bed24=_0x1f97[_0x25a584];return _0x5bed24;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x71f9('0x0'));module[_0x71f9('0x1')]={'type':{'type':Sequelize[_0x71f9('0x2')](_0x71f9('0x3'),_0x71f9('0x4'))},'result':{'type':Sequelize[_0x71f9('0x5')]},'transfererchannel':{'type':Sequelize[_0x71f9('0x5')]},'transferercalleridnum':{'type':Sequelize[_0x71f9('0x5')]},'transferercalleridname':{'type':Sequelize[_0x71f9('0x5')]},'transfererconnectedlinenum':{'type':Sequelize[_0x71f9('0x5')]},'transfererconnectedlinename':{'type':Sequelize[_0x71f9('0x5')]},'transfereraccountcode':{'type':Sequelize[_0x71f9('0x5')]},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize[_0x71f9('0x5')]},'transfereechannel':{'type':Sequelize[_0x71f9('0x5')]},'transfereecalleridnum':{'type':Sequelize['STRING']},'transfereecalleridname':{'type':Sequelize[_0x71f9('0x5')]},'transfereeconnectedlinenum':{'type':Sequelize[_0x71f9('0x5')]},'transfereeconnectedlinename':{'type':Sequelize[_0x71f9('0x5')]},'transfereeaccountcode':{'type':Sequelize['STRING']},'transfereecontext':{'type':Sequelize[_0x71f9('0x5')]},'transfereeexten':{'type':Sequelize['STRING']},'transfereelinkedid':{'type':Sequelize[_0x71f9('0x5')]},'isexternal':{'type':Sequelize[_0x71f9('0x2')](_0x71f9('0x6'),'No')},'context':{'type':Sequelize[_0x71f9('0x5')]},'extension':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x5e32=['ENUM','Yes','sequelize','moment','STRING'];(function(_0x1458e2,_0x1b45c2){var _0x4d191c=function(_0x5e1696){while(--_0x5e1696){_0x1458e2['push'](_0x1458e2['shift']());}};_0x4d191c(++_0x1b45c2);}(_0x5e32,0xd4));var _0x25e3=function(_0x28e99c,_0xc4cde3){_0x28e99c=_0x28e99c-0x0;var _0x43b9d4=_0x5e32[_0x28e99c];return _0x43b9d4;};'use strict';var Sequelize=require(_0x25e3('0x0'));var moment=require(_0x25e3('0x1'));module['exports']={'type':{'type':Sequelize['ENUM']('blind','attended')},'result':{'type':Sequelize[_0x25e3('0x2')]},'transfererchannel':{'type':Sequelize[_0x25e3('0x2')]},'transferercalleridnum':{'type':Sequelize[_0x25e3('0x2')]},'transferercalleridname':{'type':Sequelize['STRING']},'transfererconnectedlinenum':{'type':Sequelize[_0x25e3('0x2')]},'transfererconnectedlinename':{'type':Sequelize[_0x25e3('0x2')]},'transfereraccountcode':{'type':Sequelize[_0x25e3('0x2')]},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize['STRING']},'transfereechannel':{'type':Sequelize[_0x25e3('0x2')]},'transfereecalleridnum':{'type':Sequelize[_0x25e3('0x2')]},'transfereecalleridname':{'type':Sequelize['STRING']},'transfereeconnectedlinenum':{'type':Sequelize[_0x25e3('0x2')]},'transfereeconnectedlinename':{'type':Sequelize[_0x25e3('0x2')]},'transfereeaccountcode':{'type':Sequelize[_0x25e3('0x2')]},'transfereecontext':{'type':Sequelize[_0x25e3('0x2')]},'transfereeexten':{'type':Sequelize[_0x25e3('0x2')]},'transfereelinkedid':{'type':Sequelize[_0x25e3('0x2')]},'isexternal':{'type':Sequelize[_0x25e3('0x3')](_0x25e3('0x4'),'No')},'context':{'type':Sequelize['STRING']},'extension':{'type':Sequelize[_0x25e3('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdb4=['findAll','rows','catch','show','params','include','find','create','body','describe','eml-format','rimraf','moment','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','save','update','then','error','name','send','index','rawAttributes','fieldName','type','model','map','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','merge','options','where','includeAll','VoiceTransferReport'];(function(_0x452cc1,_0x2b7ddf){var _0x404875=function(_0x5c22ca){while(--_0x5c22ca){_0x452cc1['push'](_0x452cc1['shift']());}};_0x404875(++_0x2b7ddf);}(_0xcdb4,0x92));var _0x4cdb=function(_0x432312,_0x2c0f27){_0x432312=_0x432312-0x0;var _0x595bc8=_0xcdb4[_0x432312];return _0x595bc8;};'use strict';var emlformat=require(_0x4cdb('0x0'));var rimraf=require(_0x4cdb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x4cdb('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x4cdb('0x3'));var util=require(_0x4cdb('0x4'));var path=require(_0x4cdb('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4cdb('0x6'));var fs=require('fs');var fs_extra=require(_0x4cdb('0x7'));var _=require('lodash');var squel=require(_0x4cdb('0x8'));var crypto=require(_0x4cdb('0x9'));var jsforce=require(_0x4cdb('0xa'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x4cdb('0xb'));var Redis=require(_0x4cdb('0xc'));var authService=require(_0x4cdb('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4cdb('0xe'));var logger=require(_0x4cdb('0xf'))(_0x4cdb('0x10'));var utils=require(_0x4cdb('0x11'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4cdb('0x12'))['db'];function respondWithStatusCode(_0x5a21b1,_0x3f5c48){_0x3f5c48=_0x3f5c48||0xcc;return function(_0x17ac5d){if(_0x17ac5d){return _0x5a21b1['sendStatus'](_0x3f5c48);}return _0x5a21b1[_0x4cdb('0x13')](_0x3f5c48)[_0x4cdb('0x14')]();};}function respondWithResult(_0x5bce5a,_0x2ccd10){_0x2ccd10=_0x2ccd10||0xc8;return function(_0xa724c8){if(_0xa724c8){return _0x5bce5a['status'](_0x2ccd10)['json'](_0xa724c8);}};}function respondWithFilteredResult(_0x306f68,_0x38985c){return function(_0x26d0e0){if(_0x26d0e0){var _0x2d8db7=typeof _0x38985c[_0x4cdb('0x15')]===_0x4cdb('0x16')&&typeof _0x38985c['limit']===_0x4cdb('0x16');var _0x2fa519=_0x26d0e0[_0x4cdb('0x17')];var _0x37f7c6=_0x2d8db7?0x0:_0x38985c['offset'];var _0x97fcef=_0x2d8db7?_0x26d0e0[_0x4cdb('0x17')]:_0x38985c['offset']+_0x38985c[_0x4cdb('0x18')];var _0x8e0c42;if(_0x97fcef>=_0x2fa519){_0x97fcef=_0x2fa519;_0x8e0c42=0xc8;}else{_0x8e0c42=0xce;}_0x306f68[_0x4cdb('0x13')](_0x8e0c42);return _0x306f68[_0x4cdb('0x19')](_0x4cdb('0x1a'),_0x37f7c6+'-'+_0x97fcef+'/'+_0x2fa519)[_0x4cdb('0x1b')](_0x26d0e0);}return null;};}function patchUpdates(_0x1672c9){return function(_0x33ed8a){try{jsonpatch[_0x4cdb('0x1c')](_0x33ed8a,_0x1672c9,!![]);}catch(_0x305ff8){return BPromise['reject'](_0x305ff8);}return _0x33ed8a[_0x4cdb('0x1d')]();};}function saveUpdates(_0x45638b,_0x2d042b){return function(_0x568169){if(_0x568169){return _0x568169[_0x4cdb('0x1e')](_0x45638b)[_0x4cdb('0x1f')](function(_0x106d90){return _0x106d90;});}return null;};}function removeEntity(_0x11fef1,_0x4891b8){return function(_0x32b52e){if(_0x32b52e){return _0x32b52e['destroy']()[_0x4cdb('0x1f')](function(){_0x11fef1[_0x4cdb('0x13')](0xcc)[_0x4cdb('0x14')]();});}};}function handleEntityNotFound(_0x3a5f7f,_0x527cd6){return function(_0x40c1fe){if(!_0x40c1fe){_0x3a5f7f['sendStatus'](0x194);}return _0x40c1fe;};}function handleError(_0x590702,_0x2faad0){_0x2faad0=_0x2faad0||0x1f4;return function(_0x11732e){logger[_0x4cdb('0x20')](_0x11732e['stack']);if(_0x11732e['name']){delete _0x11732e[_0x4cdb('0x21')];}_0x590702[_0x4cdb('0x13')](_0x2faad0)[_0x4cdb('0x22')](_0x11732e);};}exports[_0x4cdb('0x23')]=function(_0x304fb7,_0x246249){var _0x588023={},_0x1af7d6={},_0x5778a7={'count':0x0,'rows':[]};var _0x55ca4f=_['map'](db['VoiceTransferReport'][_0x4cdb('0x24')],function(_0xe820db){return{'name':_0xe820db[_0x4cdb('0x25')],'type':_0xe820db[_0x4cdb('0x26')]['key']};});_0x1af7d6[_0x4cdb('0x27')]=_[_0x4cdb('0x28')](_0x55ca4f,_0x4cdb('0x21'));_0x1af7d6['query']=_[_0x4cdb('0x29')](_0x304fb7[_0x4cdb('0x2a')]);_0x1af7d6[_0x4cdb('0x2b')]=_[_0x4cdb('0x2c')](_0x1af7d6[_0x4cdb('0x27')],_0x1af7d6['query']);_0x588023[_0x4cdb('0x2d')]=_[_0x4cdb('0x2c')](_0x1af7d6[_0x4cdb('0x27')],qs[_0x4cdb('0x2e')](_0x304fb7[_0x4cdb('0x2a')][_0x4cdb('0x2e')]));_0x588023[_0x4cdb('0x2d')]=_0x588023[_0x4cdb('0x2d')][_0x4cdb('0x2f')]?_0x588023[_0x4cdb('0x2d')]:_0x1af7d6[_0x4cdb('0x27')];if(!_0x304fb7[_0x4cdb('0x2a')][_0x4cdb('0x30')](_0x4cdb('0x31'))){_0x588023[_0x4cdb('0x18')]=qs[_0x4cdb('0x18')](_0x304fb7[_0x4cdb('0x2a')][_0x4cdb('0x18')]);_0x588023[_0x4cdb('0x15')]=qs[_0x4cdb('0x15')](_0x304fb7[_0x4cdb('0x2a')][_0x4cdb('0x15')]);}_0x588023[_0x4cdb('0x32')]=qs[_0x4cdb('0x33')](_0x304fb7[_0x4cdb('0x2a')][_0x4cdb('0x33')]);_0x588023['where']=qs[_0x4cdb('0x2b')](_[_0x4cdb('0x34')](_0x304fb7[_0x4cdb('0x2a')],_0x1af7d6[_0x4cdb('0x2b')]),_0x55ca4f);if(_0x304fb7[_0x4cdb('0x2a')]['filter']){_0x588023['where']=_['merge'](_0x588023['where'],{'$or':_['map'](_0x55ca4f,function(_0x4115d7){if(_0x4115d7[_0x4cdb('0x26')]!=='VIRTUAL'){var _0x38732c={};_0x38732c[_0x4115d7[_0x4cdb('0x21')]]={'$like':'%'+_0x304fb7['query']['filter']+'%'};return _0x38732c;}})});}_0x588023=_[_0x4cdb('0x35')]({},_0x588023,_0x304fb7[_0x4cdb('0x36')]);var _0x1b2aad={'where':_0x588023[_0x4cdb('0x37')]};return db['VoiceTransferReport'][_0x4cdb('0x17')](_0x1b2aad)[_0x4cdb('0x1f')](function(_0x5eb361){_0x5778a7[_0x4cdb('0x17')]=_0x5eb361;if(_0x304fb7[_0x4cdb('0x2a')][_0x4cdb('0x38')]){_0x588023['include']=[{'all':!![]}];}return db[_0x4cdb('0x39')][_0x4cdb('0x3a')](_0x588023);})['then'](function(_0x58e783){_0x5778a7[_0x4cdb('0x3b')]=_0x58e783;return _0x5778a7;})[_0x4cdb('0x1f')](respondWithFilteredResult(_0x246249,_0x588023))[_0x4cdb('0x3c')](handleError(_0x246249,null));};exports[_0x4cdb('0x3d')]=function(_0x21ff61,_0x1a7892){var _0x23bc6f={'raw':!![],'where':{'id':_0x21ff61[_0x4cdb('0x3e')]['id']}},_0x25a42f={};_0x25a42f['model']=_[_0x4cdb('0x29')](db[_0x4cdb('0x39')][_0x4cdb('0x24')]);_0x25a42f[_0x4cdb('0x2a')]=_[_0x4cdb('0x29')](_0x21ff61['query']);_0x25a42f[_0x4cdb('0x2b')]=_['intersection'](_0x25a42f['model'],_0x25a42f[_0x4cdb('0x2a')]);_0x23bc6f['attributes']=_[_0x4cdb('0x2c')](_0x25a42f['model'],qs[_0x4cdb('0x2e')](_0x21ff61[_0x4cdb('0x2a')][_0x4cdb('0x2e')]));_0x23bc6f['attributes']=_0x23bc6f['attributes']['length']?_0x23bc6f[_0x4cdb('0x2d')]:_0x25a42f[_0x4cdb('0x27')];if(_0x21ff61[_0x4cdb('0x2a')][_0x4cdb('0x38')]){_0x23bc6f[_0x4cdb('0x3f')]=[{'all':!![]}];}_0x23bc6f=_[_0x4cdb('0x35')]({},_0x23bc6f,_0x21ff61['options']);return db[_0x4cdb('0x39')][_0x4cdb('0x40')](_0x23bc6f)['then'](handleEntityNotFound(_0x1a7892,null))[_0x4cdb('0x1f')](respondWithResult(_0x1a7892,null))[_0x4cdb('0x3c')](handleError(_0x1a7892,null));};exports[_0x4cdb('0x41')]=function(_0x1968b2,_0x3773b0){return db['VoiceTransferReport'][_0x4cdb('0x41')](_0x1968b2['body'],{})[_0x4cdb('0x1f')](respondWithResult(_0x3773b0,0xc9))[_0x4cdb('0x3c')](handleError(_0x3773b0,null));};exports[_0x4cdb('0x1e')]=function(_0x5d5b6a,_0x56ec4f){if(_0x5d5b6a[_0x4cdb('0x42')]['id']){delete _0x5d5b6a[_0x4cdb('0x42')]['id'];}return db[_0x4cdb('0x39')][_0x4cdb('0x40')]({'where':{'id':_0x5d5b6a[_0x4cdb('0x3e')]['id']}})['then'](handleEntityNotFound(_0x56ec4f,null))[_0x4cdb('0x1f')](saveUpdates(_0x5d5b6a['body'],null))[_0x4cdb('0x1f')](respondWithResult(_0x56ec4f,null))[_0x4cdb('0x3c')](handleError(_0x56ec4f,null));};exports['destroy']=function(_0x2357a,_0xc8692d){return db[_0x4cdb('0x39')][_0x4cdb('0x40')]({'where':{'id':_0x2357a[_0x4cdb('0x3e')]['id']}})[_0x4cdb('0x1f')](handleEntityNotFound(_0xc8692d,null))[_0x4cdb('0x1f')](removeEntity(_0xc8692d,null))[_0x4cdb('0x3c')](handleError(_0xc8692d,null));};exports[_0x4cdb('0x43')]=function(_0x1f55dd,_0x55293a){return db[_0x4cdb('0x39')][_0x4cdb('0x43')]()[_0x4cdb('0x1f')](respondWithResult(_0x55293a,null))[_0x4cdb('0x3c')](handleError(_0x55293a,null));};
\ No newline at end of file
+var _0xfee4=['params','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','offset','undefined','count','limit','Content-Range','json','apply','reject','save','update','destroy','then','end','error','stack','name','send','index','map','VoiceTransferReport','type','key','query','keys','filters','intersection','attributes','model','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','include','findAll','rows','catch','show','fields','includeAll','find','body'];(function(_0x425594,_0x2d8c9d){var _0x37f898=function(_0x287d8f){while(--_0x287d8f){_0x425594['push'](_0x425594['shift']());}};_0x37f898(++_0x2d8c9d);}(_0xfee4,0x132));var _0x4fee=function(_0x173f74,_0x7b2e96){_0x173f74=_0x173f74-0x0;var _0x10fa3f=_0xfee4[_0x173f74];return _0x10fa3f;};'use strict';var emlformat=require(_0x4fee('0x0'));var rimraf=require(_0x4fee('0x1'));var zipdir=require(_0x4fee('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4fee('0x3'));var moment=require(_0x4fee('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4fee('0x5'));var util=require(_0x4fee('0x6'));var path=require(_0x4fee('0x7'));var sox=require(_0x4fee('0x8'));var csv=require('to-csv');var ejs=require(_0x4fee('0x9'));var fs=require('fs');var fs_extra=require(_0x4fee('0xa'));var _=require(_0x4fee('0xb'));var squel=require(_0x4fee('0xc'));var crypto=require(_0x4fee('0xd'));var jsforce=require(_0x4fee('0xe'));var deskjs=require(_0x4fee('0xf'));var toCsv=require(_0x4fee('0x10'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x4fee('0x11'));var authService=require(_0x4fee('0x12'));var qs=require(_0x4fee('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4fee('0x14'));var logger=require(_0x4fee('0x15'))(_0x4fee('0x16'));var utils=require(_0x4fee('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x4fee('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xee5885,_0x42d2b9){_0x42d2b9=_0x42d2b9||0xcc;return function(_0x35c27d){if(_0x35c27d){return _0xee5885[_0x4fee('0x19')](_0x42d2b9);}return _0xee5885[_0x4fee('0x1a')](_0x42d2b9)['end']();};}function respondWithResult(_0x41e67b,_0x97108f){_0x97108f=_0x97108f||0xc8;return function(_0x5e3d9e){if(_0x5e3d9e){return _0x41e67b[_0x4fee('0x1a')](_0x97108f)['json'](_0x5e3d9e);}};}function respondWithFilteredResult(_0x443579,_0x4add9a){return function(_0x312794){if(_0x312794){var _0x8355e7=typeof _0x4add9a[_0x4fee('0x1b')]===_0x4fee('0x1c')&&typeof _0x4add9a['limit']==='undefined';var _0x39dd0d=_0x312794[_0x4fee('0x1d')];var _0xf069c4=_0x8355e7?0x0:_0x4add9a[_0x4fee('0x1b')];var _0x3a67a7=_0x8355e7?_0x312794[_0x4fee('0x1d')]:_0x4add9a[_0x4fee('0x1b')]+_0x4add9a[_0x4fee('0x1e')];var _0x5c5499;if(_0x3a67a7>=_0x39dd0d){_0x3a67a7=_0x39dd0d;_0x5c5499=0xc8;}else{_0x5c5499=0xce;}_0x443579[_0x4fee('0x1a')](_0x5c5499);return _0x443579['set'](_0x4fee('0x1f'),_0xf069c4+'-'+_0x3a67a7+'/'+_0x39dd0d)[_0x4fee('0x20')](_0x312794);}return null;};}function patchUpdates(_0x8d1b4c){return function(_0x3f7ae2){try{jsonpatch[_0x4fee('0x21')](_0x3f7ae2,_0x8d1b4c,!![]);}catch(_0x4f34e9){return BPromise[_0x4fee('0x22')](_0x4f34e9);}return _0x3f7ae2[_0x4fee('0x23')]();};}function saveUpdates(_0x4d6b62,_0x50a53b){return function(_0x5281af){if(_0x5281af){return _0x5281af[_0x4fee('0x24')](_0x4d6b62)['then'](function(_0x3634ae){return _0x3634ae;});}return null;};}function removeEntity(_0x4a3475,_0x549180){return function(_0x88c829){if(_0x88c829){return _0x88c829[_0x4fee('0x25')]()[_0x4fee('0x26')](function(){_0x4a3475[_0x4fee('0x1a')](0xcc)[_0x4fee('0x27')]();});}};}function handleEntityNotFound(_0x185465,_0x398bfe){return function(_0x578f6c){if(!_0x578f6c){_0x185465[_0x4fee('0x19')](0x194);}return _0x578f6c;};}function handleError(_0x21bef8,_0x387516){_0x387516=_0x387516||0x1f4;return function(_0x17369a){logger[_0x4fee('0x28')](_0x17369a[_0x4fee('0x29')]);if(_0x17369a[_0x4fee('0x2a')]){delete _0x17369a[_0x4fee('0x2a')];}_0x21bef8[_0x4fee('0x1a')](_0x387516)[_0x4fee('0x2b')](_0x17369a);};}exports[_0x4fee('0x2c')]=function(_0x1d5d3b,_0x271107){var _0x3a3df5={},_0x44ba4d={},_0x54dc4f={'count':0x0,'rows':[]};var _0x258978=_[_0x4fee('0x2d')](db[_0x4fee('0x2e')]['rawAttributes'],function(_0x28edd2){return{'name':_0x28edd2['fieldName'],'type':_0x28edd2[_0x4fee('0x2f')][_0x4fee('0x30')]};});_0x44ba4d['model']=_[_0x4fee('0x2d')](_0x258978,'name');_0x44ba4d[_0x4fee('0x31')]=_[_0x4fee('0x32')](_0x1d5d3b[_0x4fee('0x31')]);_0x44ba4d[_0x4fee('0x33')]=_[_0x4fee('0x34')](_0x44ba4d['model'],_0x44ba4d['query']);_0x3a3df5[_0x4fee('0x35')]=_[_0x4fee('0x34')](_0x44ba4d[_0x4fee('0x36')],qs['fields'](_0x1d5d3b['query']['fields']));_0x3a3df5[_0x4fee('0x35')]=_0x3a3df5[_0x4fee('0x35')][_0x4fee('0x37')]?_0x3a3df5['attributes']:_0x44ba4d[_0x4fee('0x36')];if(!_0x1d5d3b[_0x4fee('0x31')][_0x4fee('0x38')](_0x4fee('0x39'))){_0x3a3df5[_0x4fee('0x1e')]=qs[_0x4fee('0x1e')](_0x1d5d3b['query'][_0x4fee('0x1e')]);_0x3a3df5[_0x4fee('0x1b')]=qs[_0x4fee('0x1b')](_0x1d5d3b[_0x4fee('0x31')][_0x4fee('0x1b')]);}_0x3a3df5[_0x4fee('0x3a')]=qs[_0x4fee('0x3b')](_0x1d5d3b[_0x4fee('0x31')][_0x4fee('0x3b')]);_0x3a3df5[_0x4fee('0x3c')]=qs[_0x4fee('0x33')](_[_0x4fee('0x3d')](_0x1d5d3b[_0x4fee('0x31')],_0x44ba4d['filters']),_0x258978);if(_0x1d5d3b[_0x4fee('0x31')][_0x4fee('0x3e')]){_0x3a3df5[_0x4fee('0x3c')]=_[_0x4fee('0x3f')](_0x3a3df5[_0x4fee('0x3c')],{'$or':_[_0x4fee('0x2d')](_0x258978,function(_0x2be0d3){if(_0x2be0d3[_0x4fee('0x2f')]!=='VIRTUAL'){var _0x508450={};_0x508450[_0x2be0d3[_0x4fee('0x2a')]]={'$like':'%'+_0x1d5d3b[_0x4fee('0x31')][_0x4fee('0x3e')]+'%'};return _0x508450;}})});}_0x3a3df5=_[_0x4fee('0x3f')]({},_0x3a3df5,_0x1d5d3b[_0x4fee('0x40')]);var _0x3f4cb7={'where':_0x3a3df5[_0x4fee('0x3c')]};return db[_0x4fee('0x2e')][_0x4fee('0x1d')](_0x3f4cb7)['then'](function(_0x290ff9){_0x54dc4f[_0x4fee('0x1d')]=_0x290ff9;if(_0x1d5d3b['query']['includeAll']){_0x3a3df5[_0x4fee('0x41')]=[{'all':!![]}];}return db['VoiceTransferReport'][_0x4fee('0x42')](_0x3a3df5);})[_0x4fee('0x26')](function(_0x1e5b10){_0x54dc4f[_0x4fee('0x43')]=_0x1e5b10;return _0x54dc4f;})[_0x4fee('0x26')](respondWithFilteredResult(_0x271107,_0x3a3df5))[_0x4fee('0x44')](handleError(_0x271107,null));};exports[_0x4fee('0x45')]=function(_0x55c00e,_0x2c88be){var _0x5efc7b={'raw':!![],'where':{'id':_0x55c00e['params']['id']}},_0xa01693={};_0xa01693[_0x4fee('0x36')]=_[_0x4fee('0x32')](db[_0x4fee('0x2e')]['rawAttributes']);_0xa01693['query']=_[_0x4fee('0x32')](_0x55c00e[_0x4fee('0x31')]);_0xa01693[_0x4fee('0x33')]=_[_0x4fee('0x34')](_0xa01693['model'],_0xa01693['query']);_0x5efc7b[_0x4fee('0x35')]=_['intersection'](_0xa01693['model'],qs[_0x4fee('0x46')](_0x55c00e[_0x4fee('0x31')][_0x4fee('0x46')]));_0x5efc7b[_0x4fee('0x35')]=_0x5efc7b[_0x4fee('0x35')]['length']?_0x5efc7b['attributes']:_0xa01693[_0x4fee('0x36')];if(_0x55c00e[_0x4fee('0x31')][_0x4fee('0x47')]){_0x5efc7b[_0x4fee('0x41')]=[{'all':!![]}];}_0x5efc7b=_[_0x4fee('0x3f')]({},_0x5efc7b,_0x55c00e[_0x4fee('0x40')]);return db[_0x4fee('0x2e')][_0x4fee('0x48')](_0x5efc7b)[_0x4fee('0x26')](handleEntityNotFound(_0x2c88be,null))['then'](respondWithResult(_0x2c88be,null))[_0x4fee('0x44')](handleError(_0x2c88be,null));};exports['create']=function(_0xe7bb88,_0x140654){return db[_0x4fee('0x2e')]['create'](_0xe7bb88[_0x4fee('0x49')],{})['then'](respondWithResult(_0x140654,0xc9))['catch'](handleError(_0x140654,null));};exports[_0x4fee('0x24')]=function(_0x5904d9,_0x5c557a){if(_0x5904d9[_0x4fee('0x49')]['id']){delete _0x5904d9[_0x4fee('0x49')]['id'];}return db[_0x4fee('0x2e')]['find']({'where':{'id':_0x5904d9[_0x4fee('0x4a')]['id']}})['then'](handleEntityNotFound(_0x5c557a,null))[_0x4fee('0x26')](saveUpdates(_0x5904d9[_0x4fee('0x49')],null))[_0x4fee('0x26')](respondWithResult(_0x5c557a,null))[_0x4fee('0x44')](handleError(_0x5c557a,null));};exports[_0x4fee('0x25')]=function(_0x270d5a,_0x180929){return db[_0x4fee('0x2e')][_0x4fee('0x48')]({'where':{'id':_0x270d5a['params']['id']}})[_0x4fee('0x26')](handleEntityNotFound(_0x180929,null))[_0x4fee('0x26')](removeEntity(_0x180929,null))[_0x4fee('0x44')](handleError(_0x180929,null));};exports[_0x4fee('0x4b')]=function(_0x11f786,_0x4240ce){return db[_0x4fee('0x2e')][_0x4fee('0x4b')]()[_0x4fee('0x26')](respondWithResult(_0x4240ce,null))[_0x4fee('0x44')](handleError(_0x4240ce,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x819e=['bluebird','request-promise','path','rimraf','./voiceTransferReport.attributes','util','../../config/logger','api'];(function(_0x21bd41,_0x37dfe3){var _0x36e525=function(_0x558059){while(--_0x558059){_0x21bd41['push'](_0x21bd41['shift']());}};_0x36e525(++_0x37dfe3);}(_0x819e,0x155));var _0xe819=function(_0x3bcf9e,_0x148a5d){_0x3bcf9e=_0x3bcf9e-0x0;var _0x1bb37c=_0x819e[_0x3bcf9e];return _0x1bb37c;};'use strict';var _=require('lodash');var util=require(_0xe819('0x0'));var logger=require(_0xe819('0x1'))(_0xe819('0x2'));var moment=require('moment');var BPromise=require(_0xe819('0x3'));var rp=require(_0xe819('0x4'));var fs=require('fs');var path=require(_0xe819('0x5'));var rimraf=require(_0xe819('0x6'));var config=require('../../config/environment');var attributes=require(_0xe819('0x7'));module['exports']=function(_0x2937a8,_0x257dc0){return _0x2937a8['define']('VoiceTransferReport',attributes,{'tableName':'report_call_transfer','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xccb6=['../../config/environment','./voiceTransferReport.attributes','define','report_call_transfer','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf'];(function(_0x39ba3c,_0x318beb){var _0x6ba38f=function(_0x50f1c9){while(--_0x50f1c9){_0x39ba3c['push'](_0x39ba3c['shift']());}};_0x6ba38f(++_0x318beb);}(_0xccb6,0x178));var _0x6ccb=function(_0x46bf45,_0x201aaf){_0x46bf45=_0x46bf45-0x0;var _0x10cdc3=_0xccb6[_0x46bf45];return _0x10cdc3;};'use strict';var _=require(_0x6ccb('0x0'));var util=require(_0x6ccb('0x1'));var logger=require(_0x6ccb('0x2'))(_0x6ccb('0x3'));var moment=require(_0x6ccb('0x4'));var BPromise=require(_0x6ccb('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6ccb('0x6'));var rimraf=require(_0x6ccb('0x7'));var config=require(_0x6ccb('0x8'));var attributes=require(_0x6ccb('0x9'));module['exports']=function(_0x1df313,_0x21a382){return _0x1df313[_0x6ccb('0xa')]('VoiceTransferReport',attributes,{'tableName':_0x6ccb('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6a1=['debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','VoiceTransferReport,\x20%s,\x20%s','message','result','catch','CreateVoiceTransferReport','VoiceTransferReport','create','body','options','raw','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','info','request\x20sent'];(function(_0xc6ea98,_0x1f0fe7){var _0x154999=function(_0x5c0555){while(--_0x5c0555){_0xc6ea98['push'](_0xc6ea98['shift']());}};_0x154999(++_0x1f0fe7);}(_0xe6a1,0x101));var _0x1e6a=function(_0x42129e,_0x312d80){_0x42129e=_0x42129e-0x0;var _0x3d4917=_0xe6a1[_0x42129e];return _0x3d4917;};'use strict';var _=require(_0x1e6a('0x0'));var util=require('util');var moment=require(_0x1e6a('0x1'));var BPromise=require('bluebird');var rs=require(_0x1e6a('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1e6a('0x3'))['db'];var utils=require(_0x1e6a('0x4'));var logger=require(_0x1e6a('0x5'))(_0x1e6a('0x6'));var config=require(_0x1e6a('0x7'));var jayson=require(_0x1e6a('0x8'));var client=jayson[_0x1e6a('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4289a9,_0x21a4a4,_0x456e08){return new BPromise(function(_0x2fbc11,_0x23a06d){return client['request'](_0x4289a9,_0x456e08)[_0x1e6a('0xa')](function(_0x460c63){logger[_0x1e6a('0xb')]('VoiceTransferReport,\x20%s,\x20%s',_0x21a4a4,_0x1e6a('0xc'));logger[_0x1e6a('0xd')](_0x1e6a('0xe'),_0x21a4a4,_0x1e6a('0xc'),JSON[_0x1e6a('0xf')](_0x460c63));if(_0x460c63[_0x1e6a('0x10')]){if(_0x460c63['error']['code']===0x1f4){logger[_0x1e6a('0x10')](_0x1e6a('0x11'),_0x21a4a4,_0x460c63[_0x1e6a('0x10')][_0x1e6a('0x12')]);return _0x23a06d(_0x460c63[_0x1e6a('0x10')][_0x1e6a('0x12')]);}logger[_0x1e6a('0x10')](_0x1e6a('0x11'),_0x21a4a4,_0x460c63['error'][_0x1e6a('0x12')]);return _0x2fbc11(_0x460c63[_0x1e6a('0x10')]['message']);}else{logger[_0x1e6a('0xb')]('VoiceTransferReport,\x20%s,\x20%s',_0x21a4a4,_0x1e6a('0xc'));_0x2fbc11(_0x460c63[_0x1e6a('0x13')]['message']);}})[_0x1e6a('0x14')](function(_0x4f6358){logger['error'](_0x1e6a('0x11'),_0x21a4a4,_0x4f6358);_0x23a06d(_0x4f6358);});});}exports[_0x1e6a('0x15')]=function(_0x3c5680){var _0x50e14b=this;return new Promise(function(_0x5179f5,_0x45c83a){return db[_0x1e6a('0x16')][_0x1e6a('0x17')](_0x3c5680[_0x1e6a('0x18')],{'raw':_0x3c5680[_0x1e6a('0x19')]?_0x3c5680[_0x1e6a('0x19')][_0x1e6a('0x1a')]===undefined?!![]:![]:!![]})[_0x1e6a('0xa')](function(_0x407162){logger[_0x1e6a('0xb')](_0x1e6a('0x15'),_0x3c5680);logger[_0x1e6a('0xd')](_0x1e6a('0x15'),_0x3c5680,JSON['stringify'](_0x407162));_0x5179f5(_0x407162);})['catch'](function(_0x4d9ef1){logger['error'](_0x1e6a('0x15'),_0x4d9ef1['message'],_0x3c5680);_0x45c83a(_0x50e14b['error'](0x1f4,_0x4d9ef1['message']));});});};
\ No newline at end of file
+var _0x56e5=['bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceTransferReport,\x20%s,\x20%s','VoiceTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','code','error','message','result','catch','VoiceTransferReport','body','options','raw','then','CreateVoiceTransferReport','stringify','lodash','util','moment'];(function(_0x58db4e,_0x439d8d){var _0x40139a=function(_0x34cae4){while(--_0x34cae4){_0x58db4e['push'](_0x58db4e['shift']());}};_0x40139a(++_0x439d8d);}(_0x56e5,0x131));var _0x556e=function(_0x3a3500,_0x37c562){_0x3a3500=_0x3a3500-0x0;var _0x84a50d=_0x56e5[_0x3a3500];return _0x84a50d;};'use strict';var _=require(_0x556e('0x0'));var util=require(_0x556e('0x1'));var moment=require(_0x556e('0x2'));var BPromise=require(_0x556e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x556e('0x4'));var logger=require(_0x556e('0x5'))(_0x556e('0x6'));var config=require(_0x556e('0x7'));var jayson=require(_0x556e('0x8'));var client=jayson[_0x556e('0x9')][_0x556e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x393fbc,_0x102e05,_0x137b2c){return new BPromise(function(_0x3f831a,_0x264510){return client[_0x556e('0xb')](_0x393fbc,_0x137b2c)['then'](function(_0xf8cd7){logger[_0x556e('0xc')](_0x556e('0xd'),_0x102e05,'request\x20sent');logger['debug'](_0x556e('0xe'),_0x102e05,_0x556e('0xf'),JSON['stringify'](_0xf8cd7));if(_0xf8cd7['error']){if(_0xf8cd7['error'][_0x556e('0x10')]===0x1f4){logger[_0x556e('0x11')](_0x556e('0xd'),_0x102e05,_0xf8cd7['error'][_0x556e('0x12')]);return _0x264510(_0xf8cd7[_0x556e('0x11')]['message']);}logger[_0x556e('0x11')]('VoiceTransferReport,\x20%s,\x20%s',_0x102e05,_0xf8cd7['error'][_0x556e('0x12')]);return _0x3f831a(_0xf8cd7[_0x556e('0x11')][_0x556e('0x12')]);}else{logger[_0x556e('0xc')](_0x556e('0xd'),_0x102e05,_0x556e('0xf'));_0x3f831a(_0xf8cd7[_0x556e('0x13')][_0x556e('0x12')]);}})[_0x556e('0x14')](function(_0x3d5c36){logger[_0x556e('0x11')]('VoiceTransferReport,\x20%s,\x20%s',_0x102e05,_0x3d5c36);_0x264510(_0x3d5c36);});});}exports['CreateVoiceTransferReport']=function(_0x16cf7f){var _0x209116=this;return new Promise(function(_0x108b46,_0x496bf0){return db[_0x556e('0x15')]['create'](_0x16cf7f[_0x556e('0x16')],{'raw':_0x16cf7f[_0x556e('0x17')]?_0x16cf7f['options'][_0x556e('0x18')]===undefined?!![]:![]:!![]})[_0x556e('0x19')](function(_0x3cc29d){logger['info'](_0x556e('0x1a'),_0x16cf7f);logger['debug']('CreateVoiceTransferReport',_0x16cf7f,JSON[_0x556e('0x1b')](_0x3cc29d));_0x108b46(_0x3cc29d);})[_0x556e('0x14')](function(_0x1e3254){logger[_0x556e('0x11')](_0x556e('0x1a'),_0x1e3254[_0x556e('0x12')],_0x16cf7f);_0x496bf0(_0x209116[_0x556e('0x11')](0x1f4,_0x1e3254[_0x556e('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x22c6=['canUpdate','/hangup','hangup','/answer','answer','/hold','hold','/unhold','calls','transfer','exports','Router','post','/originate','isAuthenticated'];(function(_0x376b45,_0x5964fb){var _0x2341b3=function(_0x5a7f01){while(--_0x5a7f01){_0x376b45['push'](_0x376b45['shift']());}};_0x2341b3(++_0x5964fb);}(_0x22c6,0xdd));var _0x622c=function(_0x5a0da6,_0x40ad80){_0x5a0da6=_0x5a0da6-0x0;var _0x5ebe30=_0x22c6[_0x5a0da6];return _0x5ebe30;};'use strict';var express=require('express');var router=express[_0x622c('0x0')]();var auth=require('../../components/auth/service');var controller=require('./webbar.controller');router[_0x622c('0x1')](_0x622c('0x2'),auth[_0x622c('0x3')](),auth[_0x622c('0x4')](),controller['originate']);router[_0x622c('0x1')](_0x622c('0x5'),auth[_0x622c('0x3')](),auth[_0x622c('0x4')](),controller[_0x622c('0x6')]);router['post'](_0x622c('0x7'),auth[_0x622c('0x3')](),auth['canUpdate'](),controller[_0x622c('0x8')]);router[_0x622c('0x1')](_0x622c('0x9'),auth['isAuthenticated'](),auth[_0x622c('0x4')](),controller[_0x622c('0xa')]);router[_0x622c('0x1')](_0x622c('0xb'),auth[_0x622c('0x3')](),auth[_0x622c('0x4')](),controller['unhold']);router['post']('/calls',auth[_0x622c('0x3')](),auth[_0x622c('0x4')](),controller[_0x622c('0xc')]);router[_0x622c('0x1')]('/transfer',auth[_0x622c('0x3')](),auth[_0x622c('0x4')](),controller[_0x622c('0xd')]);module[_0x622c('0xe')]=router;
\ No newline at end of file
+var _0xb81f=['/calls','calls','/transfer','transfer','express','Router','../../components/auth/service','post','/originate','canUpdate','isAuthenticated','hangup','answer','/hold','hold'];(function(_0x3666ef,_0x151024){var _0xc5226e=function(_0x3d82f0){while(--_0x3d82f0){_0x3666ef['push'](_0x3666ef['shift']());}};_0xc5226e(++_0x151024);}(_0xb81f,0xa9));var _0xfb81=function(_0x3d2881,_0x54f08c){_0x3d2881=_0x3d2881-0x0;var _0xedb22b=_0xb81f[_0x3d2881];return _0xedb22b;};'use strict';var express=require(_0xfb81('0x0'));var router=express[_0xfb81('0x1')]();var auth=require(_0xfb81('0x2'));var controller=require('./webbar.controller');router[_0xfb81('0x3')](_0xfb81('0x4'),auth['isAuthenticated'](),auth[_0xfb81('0x5')](),controller['originate']);router[_0xfb81('0x3')]('/hangup',auth[_0xfb81('0x6')](),auth[_0xfb81('0x5')](),controller[_0xfb81('0x7')]);router[_0xfb81('0x3')]('/answer',auth[_0xfb81('0x6')](),auth['canUpdate'](),controller[_0xfb81('0x8')]);router['post'](_0xfb81('0x9'),auth['isAuthenticated'](),auth[_0xfb81('0x5')](),controller[_0xfb81('0xa')]);router['post']('/unhold',auth[_0xfb81('0x6')](),auth[_0xfb81('0x5')](),controller['unhold']);router['post'](_0xfb81('0xb'),auth[_0xfb81('0x6')](),auth['canUpdate'](),controller[_0xfb81('0xc')]);router[_0xfb81('0x3')](_0xfb81('0xd'),auth['isAuthenticated'](),auth[_0xfb81('0x5')](),controller[_0xfb81('0xe')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc03=['send','NotFound','request','then','code','message','result','catch','User','agent','VoiceChannels','filter','UserId','sessionId','length','sessionId\x20','\x20not\x20found!','originate','originate\x20fired:','body','userId','callNumber','callerId','callbackUrl','info','format','json','originate\x20executed!','hangup','hangup\x20fired:','user:%s','webbar:hangup','hangup\x20executed!','answer','answer\x20fired:','entityFound:','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold','unhold','unhold\x20fired:','webbar:unhold','unhold\x20executed!','calls','rows','conference','conference\x20fired:','webbar:conference','conference\x20executed!','transfer\x20fired:','transferNumber','webbar:transfer','transfer\x20executed!','path','../../mysqldb','../../config/environment','bluebird','client','http','../../config/logger','webbarapi','ioredis','redis','defaults','socket.io-emitter','validate','number','userId\x20is\x20required','string','transferNumber\x20is\x20required','stringify','handleError:','error','stack','name','status'];(function(_0x38112f,_0x49ff89){var _0xa328ee=function(_0x103223){while(--_0x103223){_0x38112f['push'](_0x38112f['shift']());}};_0xa328ee(++_0x49ff89);}(_0xfc03,0x16f));var _0x3fc0=function(_0x1a9204,_0x1c9e00){_0x1a9204=_0x1a9204-0x0;var _0x17ca68=_0xfc03[_0x1a9204];return _0x17ca68;};'use strict';var path=require(_0x3fc0('0x0'));var fs=require('fs');var _=require('lodash');var db=require(_0x3fc0('0x1'))['db'];var config=require(_0x3fc0('0x2'));var util=require('util');var BPromise=require(_0x3fc0('0x3'));var jayson=require('jayson/promise');var amiClient=jayson[_0x3fc0('0x4')][_0x3fc0('0x5')]({'port':0x232a});var logger=require(_0x3fc0('0x6'))(_0x3fc0('0x7'));var Redis=require(_0x3fc0('0x8'));config[_0x3fc0('0x9')]=_[_0x3fc0('0xa')](config[_0x3fc0('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0x3fc0('0xb'))(new Redis(config['redis']));var Schema=require(_0x3fc0('0xc'));var originateValidation=new Schema({'userId':{'type':_0x3fc0('0xd'),'required':[!![],_0x3fc0('0xe')]},'callNumber':{'type':_0x3fc0('0xf'),'required':[!![],'callNumber\x20is\x20required']},'callerId':{'type':_0x3fc0('0xf')},'callbackUrl':{'type':_0x3fc0('0xf')}});var hangupValidation=new Schema({'userId':{'type':_0x3fc0('0xd'),'required':[!![],_0x3fc0('0xe')]},'sessionId':{'type':_0x3fc0('0xf'),'required':![]}});var answerValidation=new Schema({'userId':{'type':'number','required':[!![],_0x3fc0('0xe')]},'sessionId':{'type':_0x3fc0('0xf'),'required':![]}});var transferValidation=new Schema({'userId':{'type':_0x3fc0('0xd'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0x3fc0('0xf'),'required':[!![],'sessionId\x20is\x20required']},'transferNumber':{'type':_0x3fc0('0xf'),'required':[!![],_0x3fc0('0x10')]}});var holdValidation=new Schema({'userId':{'type':'number','required':[!![],_0x3fc0('0xe')]},'sessionId':{'type':_0x3fc0('0xf'),'required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x3fc0('0xd'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0x3fc0('0xf'),'required':![]}});var callsValidation=new Schema({'userId':{'type':_0x3fc0('0xd'),'required':[!![],_0x3fc0('0xe')]}});var conferenceValidation=new Schema({'userId':{'type':_0x3fc0('0xd'),'required':[!![],'userId\x20is\x20required']}});function emit(_0x277dbf,_0x3d869e,_0x3ef95e){logger['info'](_0x277dbf,_0x3d869e,JSON[_0x3fc0('0x11')](_0x3ef95e));io['to'](_0x277dbf)['emit'](_0x3d869e,_0x3ef95e);}function handleError(_0x121931){return function(_0x3c5026){console['log'](_0x3fc0('0x12'),_0x3c5026,_0x3c5026 instanceof RangeError);logger[_0x3fc0('0x13')](_0x3c5026[_0x3fc0('0x14')]);if(_0x3c5026 instanceof RangeError){if(_0x3c5026[_0x3fc0('0x15')]){delete _0x3c5026[_0x3fc0('0x15')];}_0x121931[_0x3fc0('0x16')](0x194)[_0x3fc0('0x17')](_0x3c5026);}else{if(_0x3c5026[_0x3fc0('0x15')]){delete _0x3c5026[_0x3fc0('0x15')];}_0x121931['status'](0x1f4)[_0x3fc0('0x17')](_0x3c5026);}};}function checkError(){return function(_0x9ab2c5){if(!_0x9ab2c5){throw new RangeError(_0x3fc0('0x18'));}return _0x9ab2c5;};}function respondWithRpcPromise(_0x3d6c0a,_0x3a09cd){return new BPromise(function(_0x448293,_0x47c770){var _0x477674=amiClient;return _0x477674[_0x3fc0('0x19')](_0x3d6c0a,_0x3a09cd)[_0x3fc0('0x1a')](function(_0x28fc65){if(_0x28fc65[_0x3fc0('0x13')]){if(_0x28fc65[_0x3fc0('0x13')][_0x3fc0('0x1b')]===0x1f4){return _0x47c770(_0x28fc65[_0x3fc0('0x13')][_0x3fc0('0x1c')]);}return _0x448293(_0x28fc65[_0x3fc0('0x13')][_0x3fc0('0x1c')]);}else{_0x448293(_0x28fc65[_0x3fc0('0x1d')]);}})[_0x3fc0('0x1e')](function(_0xba1a23){_0x47c770(_0xba1a23);});});}function getAgent(_0x55f507){return db[_0x3fc0('0x1f')]['findOne']({'where':{'id':_0x55f507,'role':_0x3fc0('0x20')}})[_0x3fc0('0x1a')](checkError());}function getAgentCheckSession(_0x1d9932,_0x35c34c){return new BPromise(function(_0x5a9179,_0x134317){var _0x197dfa=respondWithRpcPromise(_0x3fc0('0x21'));var _0x2645b4=getAgent(_0x1d9932);Promise['all']([_0x197dfa,_0x2645b4])[_0x3fc0('0x1a')](function(_0x1a2261){var _0x1960a4=_0x1a2261[0x0];var _0xac736c=_0x1a2261[0x1];var _0x29aa32=_[_0x3fc0('0x22')](_0x1960a4['rows'],function(_0xd9ecae){return _0xd9ecae[_0x3fc0('0x23')]==_0xac736c['id']&&_0xd9ecae[_0x3fc0('0x24')]==_0x35c34c;});if(_0x29aa32[_0x3fc0('0x25')]==0x1){_0x5a9179(_0xac736c);}else{_0x134317(new RangeError(_0x3fc0('0x26')+_0x35c34c+_0x3fc0('0x27')));}});});}exports[_0x3fc0('0x28')]=function(_0x164a96,_0x4d6551){logger['info'](_0x3fc0('0x29'),_0x164a96['body']);var _0x58d698=originateValidation[_0x3fc0('0xc')](_0x164a96[_0x3fc0('0x2a')]);if(_0x58d698[_0x3fc0('0x25')]>0x0){return _0x4d6551[_0x3fc0('0x16')](0x190)['json'](_0x58d698);}var _0x4dc8cd=_0x164a96[_0x3fc0('0x2a')][_0x3fc0('0x2b')];var _0x151492=_0x164a96[_0x3fc0('0x2a')][_0x3fc0('0x2c')];var _0x5f0ca1=_0x164a96[_0x3fc0('0x2a')][_0x3fc0('0x2d')];var _0x399c9c=_0x164a96['body'][_0x3fc0('0x2e')];return getAgent(_0x4dc8cd)[_0x3fc0('0x1a')](function(_0x325a2f){logger[_0x3fc0('0x2f')]('entityFound:',_0x325a2f[_0x3fc0('0x15')]);emit(util[_0x3fc0('0x30')]('user:%s',_0x325a2f[_0x3fc0('0x15')]),'webbar:originate',{'callNumber':_0x151492,'callerId':_0x5f0ca1,'callbackUrl':_0x399c9c});return _0x4d6551[_0x3fc0('0x16')](0xc8)[_0x3fc0('0x31')]({'error':![],'message':_0x3fc0('0x32')});})[_0x3fc0('0x1e')](handleError(_0x4d6551));};exports[_0x3fc0('0x33')]=function(_0x104332,_0x469d4b){logger[_0x3fc0('0x2f')](_0x3fc0('0x34'),_0x104332[_0x3fc0('0x2a')]);var _0x41b4b3=hangupValidation['validate'](_0x104332[_0x3fc0('0x2a')]);if(_0x41b4b3[_0x3fc0('0x25')]>0x0){return _0x469d4b[_0x3fc0('0x16')](0x190)[_0x3fc0('0x31')](_0x41b4b3);}var _0x21de4c=_0x104332[_0x3fc0('0x2a')]['userId'];var _0x5ae22c=_0x104332[_0x3fc0('0x2a')][_0x3fc0('0x24')];return getAgent(_0x21de4c)[_0x3fc0('0x1a')](function(_0x3e285f){logger[_0x3fc0('0x2f')]('entityFound:',_0x3e285f['name']);emit(util['format'](_0x3fc0('0x35'),_0x3e285f[_0x3fc0('0x15')]),_0x3fc0('0x36'),{'sessionId':_0x5ae22c});return _0x469d4b['status'](0xc8)['json']({'error':![],'message':_0x3fc0('0x37')});})[_0x3fc0('0x1e')](handleError(_0x469d4b));};exports[_0x3fc0('0x38')]=function(_0x10b845,_0x494c66){logger['info'](_0x3fc0('0x39'),_0x10b845[_0x3fc0('0x2a')]);var _0x547670=answerValidation[_0x3fc0('0xc')](_0x10b845['body']);if(_0x547670[_0x3fc0('0x25')]>0x0){return _0x494c66[_0x3fc0('0x16')](0x190)[_0x3fc0('0x31')](_0x547670);}var _0x90120f=_0x10b845[_0x3fc0('0x2a')][_0x3fc0('0x2b')];var _0x80dfee=_0x10b845[_0x3fc0('0x2a')]['sessionId'];return getAgent(_0x90120f)[_0x3fc0('0x1a')](function(_0x5bd6a8){logger[_0x3fc0('0x2f')](_0x3fc0('0x3a'),_0x5bd6a8[_0x3fc0('0x15')]);emit(util[_0x3fc0('0x30')](_0x3fc0('0x35'),_0x5bd6a8['name']),_0x3fc0('0x3b'),{'sessionId':_0x80dfee});return _0x494c66[_0x3fc0('0x16')](0xc8)[_0x3fc0('0x31')]({'error':![],'message':_0x3fc0('0x3c')});})['catch'](handleError(_0x494c66));};exports[_0x3fc0('0x3d')]=function(_0x5a1672,_0x21c065){logger[_0x3fc0('0x2f')](_0x3fc0('0x3e'),_0x5a1672[_0x3fc0('0x2a')]);var _0x277480=holdValidation['validate'](_0x5a1672[_0x3fc0('0x2a')]);if(_0x277480[_0x3fc0('0x25')]>0x0){return _0x21c065[_0x3fc0('0x16')](0x190)['json'](_0x277480);}var _0x3df404=_0x5a1672[_0x3fc0('0x2a')]['userId'];var _0x1f5e6a=_0x5a1672[_0x3fc0('0x2a')][_0x3fc0('0x24')];return getAgent(_0x3df404)['then'](function(_0x5e5c73){logger[_0x3fc0('0x2f')](_0x3fc0('0x3a'),_0x5e5c73[_0x3fc0('0x15')]);emit(util['format'](_0x3fc0('0x35'),_0x5e5c73['name']),_0x3fc0('0x3f'),{'sessionId':_0x1f5e6a});return _0x21c065['status'](0xc8)['json']({'error':![],'message':'hold\x20executed!'});})[_0x3fc0('0x1e')](handleError(_0x21c065));};exports[_0x3fc0('0x40')]=function(_0x141b4c,_0x3730f5){logger[_0x3fc0('0x2f')](_0x3fc0('0x41'),_0x141b4c['body']);var _0x2cf279=unholdValidation[_0x3fc0('0xc')](_0x141b4c['body']);if(_0x2cf279['length']>0x0){return _0x3730f5[_0x3fc0('0x16')](0x190)[_0x3fc0('0x31')](_0x2cf279);}var _0x1f070b=_0x141b4c[_0x3fc0('0x2a')][_0x3fc0('0x2b')];var _0x330b8f=_0x141b4c[_0x3fc0('0x2a')][_0x3fc0('0x24')];return getAgent(_0x1f070b)[_0x3fc0('0x1a')](function(_0x1cc9f2){logger[_0x3fc0('0x2f')](_0x3fc0('0x3a'),_0x1cc9f2['name']);emit(util[_0x3fc0('0x30')](_0x3fc0('0x35'),_0x1cc9f2[_0x3fc0('0x15')]),_0x3fc0('0x42'),{'sessionId':_0x330b8f});return _0x3730f5[_0x3fc0('0x16')](0xc8)['json']({'error':![],'message':_0x3fc0('0x43')});})['catch'](handleError(_0x3730f5));};exports[_0x3fc0('0x44')]=function(_0xa4864f,_0x397434){logger[_0x3fc0('0x2f')]('calls\x20fired:',_0x397434[_0x3fc0('0x2a')]);var _0xd903e3=callsValidation[_0x3fc0('0xc')](_0xa4864f[_0x3fc0('0x2a')]);if(_0xd903e3[_0x3fc0('0x25')]>0x0){return _0x397434[_0x3fc0('0x16')](0x190)['json'](_0xd903e3);}var _0x2c5ca1=_0xa4864f[_0x3fc0('0x2a')][_0x3fc0('0x2b')];var _0x21c46f=respondWithRpcPromise(_0x3fc0('0x21'));var _0x737d45=getAgent(_0x2c5ca1);return Promise['all']([_0x21c46f,_0x737d45])[_0x3fc0('0x1a')](function(_0x258a27){var _0x3e04a1=_0x258a27[0x0];var _0x5a3732=_0x258a27[0x1];var _0x2cc735=_[_0x3fc0('0x22')](_0x3e04a1[_0x3fc0('0x45')],function(_0x2b709c){return _0x2b709c[_0x3fc0('0x23')]==_0x5a3732['id'];});return _0x397434[_0x3fc0('0x16')](0xc8)[_0x3fc0('0x31')]({'count':_0x2cc735[_0x3fc0('0x25')],'rows':_0x2cc735});})[_0x3fc0('0x1e')](handleError(_0x397434));};exports[_0x3fc0('0x46')]=function(_0x4a5b96,_0x194a3b){logger[_0x3fc0('0x2f')](_0x3fc0('0x47'),_0x4a5b96[_0x3fc0('0x2a')]);var _0x4cb346=conferenceValidation[_0x3fc0('0xc')](_0x4a5b96[_0x3fc0('0x2a')]);if(_0x4cb346[_0x3fc0('0x25')]>0x0){return _0x194a3b[_0x3fc0('0x16')](0x190)[_0x3fc0('0x31')](_0x4cb346);}var _0x27a828=_0x4a5b96[_0x3fc0('0x2a')][_0x3fc0('0x2b')];return getAgent(_0x27a828)[_0x3fc0('0x1a')](function(_0x2b9226){logger['info'](_0x3fc0('0x3a'),_0x2b9226[_0x3fc0('0x15')]);emit(util[_0x3fc0('0x30')](_0x3fc0('0x35'),_0x2b9226[_0x3fc0('0x15')]),_0x3fc0('0x48'));return _0x194a3b['status'](0xc8)[_0x3fc0('0x31')]({'error':![],'message':_0x3fc0('0x49')});})[_0x3fc0('0x1e')](handleError(_0x194a3b));};exports['transfer']=function(_0x40f6d8,_0x431087){logger[_0x3fc0('0x2f')](_0x3fc0('0x4a'),_0x40f6d8[_0x3fc0('0x2a')]);var _0x12758a=transferValidation[_0x3fc0('0xc')](_0x40f6d8[_0x3fc0('0x2a')]);if(_0x12758a[_0x3fc0('0x25')]>0x0){return _0x431087['status'](0x190)[_0x3fc0('0x31')](_0x12758a);}var _0x16cd67=_0x40f6d8[_0x3fc0('0x2a')][_0x3fc0('0x2b')];var _0x3b9b6f=_0x40f6d8['body'][_0x3fc0('0x24')];var _0x42c1ee=_0x40f6d8[_0x3fc0('0x2a')][_0x3fc0('0x4b')];return getAgent(_0x16cd67)[_0x3fc0('0x1a')](function(_0x20e372){logger[_0x3fc0('0x2f')](_0x3fc0('0x3a'),_0x20e372[_0x3fc0('0x15')]);emit(util[_0x3fc0('0x30')](_0x3fc0('0x35'),_0x20e372['name']),_0x3fc0('0x4c'),{'sessionId':_0x3b9b6f,'transferNumber':_0x42c1ee});return _0x431087['status'](0xc8)[_0x3fc0('0x31')]({'error':![],'message':_0x3fc0('0x4d')});})[_0x3fc0('0x1e')](handleError(_0x431087));};
\ No newline at end of file
+var _0xf403=['answer\x20fired:','webbar:answer','answer\x20executed!','hold','hold\x20fired:','webbar:hold','hold\x20executed!','unhold','webbar:unhold','unhold\x20executed!','calls','calls\x20fired:','conference\x20fired:','conference\x20executed!','transfer','transfer\x20fired:','transfer\x20executed!','path','../../mysqldb','../../config/environment','util','bluebird','jayson/promise','client','http','../../config/logger','redis','defaults','localhost','userId\x20is\x20required','string','callNumber\x20is\x20required','number','transferNumber\x20is\x20required','stringify','emit','log','error','stack','name','status','send','NotFound','request','then','code','result','User','findOne','agent','VoiceChannels','all','filter','rows','UserId','sessionId','length','sessionId\x20','originate','info','originate\x20fired:','validate','body','json','userId','callNumber','callerId','callbackUrl','entityFound:','format','user:%s','webbar:originate','originate\x20executed!','catch','hangup'];(function(_0x3f4c7a,_0x510df5){var _0x13367f=function(_0x4a93d6){while(--_0x4a93d6){_0x3f4c7a['push'](_0x3f4c7a['shift']());}};_0x13367f(++_0x510df5);}(_0xf403,0x1d3));var _0x3f40=function(_0x449aba,_0x3205bb){_0x449aba=_0x449aba-0x0;var _0xb6b9cc=_0xf403[_0x449aba];return _0xb6b9cc;};'use strict';var path=require(_0x3f40('0x0'));var fs=require('fs');var _=require('lodash');var db=require(_0x3f40('0x1'))['db'];var config=require(_0x3f40('0x2'));var util=require(_0x3f40('0x3'));var BPromise=require(_0x3f40('0x4'));var jayson=require(_0x3f40('0x5'));var amiClient=jayson[_0x3f40('0x6')][_0x3f40('0x7')]({'port':0x232a});var logger=require(_0x3f40('0x8'))('webbarapi');var Redis=require('ioredis');config[_0x3f40('0x9')]=_[_0x3f40('0xa')](config[_0x3f40('0x9')],{'host':_0x3f40('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x3f40('0x9')]));var Schema=require('validate');var originateValidation=new Schema({'userId':{'type':'number','required':[!![],_0x3f40('0xc')]},'callNumber':{'type':_0x3f40('0xd'),'required':[!![],_0x3f40('0xe')]},'callerId':{'type':'string'},'callbackUrl':{'type':'string'}});var hangupValidation=new Schema({'userId':{'type':_0x3f40('0xf'),'required':[!![],_0x3f40('0xc')]},'sessionId':{'type':_0x3f40('0xd'),'required':![]}});var answerValidation=new Schema({'userId':{'type':'number','required':[!![],_0x3f40('0xc')]},'sessionId':{'type':_0x3f40('0xd'),'required':![]}});var transferValidation=new Schema({'userId':{'type':_0x3f40('0xf'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0x3f40('0xd'),'required':[!![],'sessionId\x20is\x20required']},'transferNumber':{'type':_0x3f40('0xd'),'required':[!![],_0x3f40('0x10')]}});var holdValidation=new Schema({'userId':{'type':_0x3f40('0xf'),'required':[!![],_0x3f40('0xc')]},'sessionId':{'type':'string','required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x3f40('0xf'),'required':[!![],_0x3f40('0xc')]},'sessionId':{'type':_0x3f40('0xd'),'required':![]}});var callsValidation=new Schema({'userId':{'type':_0x3f40('0xf'),'required':[!![],_0x3f40('0xc')]}});var conferenceValidation=new Schema({'userId':{'type':'number','required':[!![],_0x3f40('0xc')]}});function emit(_0x3d11c9,_0x535f85,_0x4ef80e){logger['info'](_0x3d11c9,_0x535f85,JSON[_0x3f40('0x11')](_0x4ef80e));io['to'](_0x3d11c9)[_0x3f40('0x12')](_0x535f85,_0x4ef80e);}function handleError(_0x59718c){return function(_0x131e55){console[_0x3f40('0x13')]('handleError:',_0x131e55,_0x131e55 instanceof RangeError);logger[_0x3f40('0x14')](_0x131e55[_0x3f40('0x15')]);if(_0x131e55 instanceof RangeError){if(_0x131e55[_0x3f40('0x16')]){delete _0x131e55[_0x3f40('0x16')];}_0x59718c[_0x3f40('0x17')](0x194)['send'](_0x131e55);}else{if(_0x131e55[_0x3f40('0x16')]){delete _0x131e55['name'];}_0x59718c[_0x3f40('0x17')](0x1f4)[_0x3f40('0x18')](_0x131e55);}};}function checkError(){return function(_0x3f4a93){if(!_0x3f4a93){throw new RangeError(_0x3f40('0x19'));}return _0x3f4a93;};}function respondWithRpcPromise(_0x628816,_0x4aa559){return new BPromise(function(_0x27f5a5,_0x379b4e){var _0x117823=amiClient;return _0x117823[_0x3f40('0x1a')](_0x628816,_0x4aa559)[_0x3f40('0x1b')](function(_0xa1f39d){if(_0xa1f39d['error']){if(_0xa1f39d[_0x3f40('0x14')][_0x3f40('0x1c')]===0x1f4){return _0x379b4e(_0xa1f39d[_0x3f40('0x14')]['message']);}return _0x27f5a5(_0xa1f39d[_0x3f40('0x14')]['message']);}else{_0x27f5a5(_0xa1f39d[_0x3f40('0x1d')]);}})['catch'](function(_0x4b206b){_0x379b4e(_0x4b206b);});});}function getAgent(_0x4b0ade){return db[_0x3f40('0x1e')][_0x3f40('0x1f')]({'where':{'id':_0x4b0ade,'role':_0x3f40('0x20')}})[_0x3f40('0x1b')](checkError());}function getAgentCheckSession(_0x5b1079,_0x300665){return new BPromise(function(_0x47ec1c,_0x319997){var _0xbaf5d4=respondWithRpcPromise(_0x3f40('0x21'));var _0x5e0f25=getAgent(_0x5b1079);Promise[_0x3f40('0x22')]([_0xbaf5d4,_0x5e0f25])['then'](function(_0x1cab5c){var _0x5b9079=_0x1cab5c[0x0];var _0x49057b=_0x1cab5c[0x1];var _0xb6ab4d=_[_0x3f40('0x23')](_0x5b9079[_0x3f40('0x24')],function(_0xb23186){return _0xb23186[_0x3f40('0x25')]==_0x49057b['id']&&_0xb23186[_0x3f40('0x26')]==_0x300665;});if(_0xb6ab4d[_0x3f40('0x27')]==0x1){_0x47ec1c(_0x49057b);}else{_0x319997(new RangeError(_0x3f40('0x28')+_0x300665+'\x20not\x20found!'));}});});}exports[_0x3f40('0x29')]=function(_0x2d2624,_0x18dbb3){logger[_0x3f40('0x2a')](_0x3f40('0x2b'),_0x2d2624['body']);var _0x42b6b4=originateValidation[_0x3f40('0x2c')](_0x2d2624[_0x3f40('0x2d')]);if(_0x42b6b4['length']>0x0){return _0x18dbb3[_0x3f40('0x17')](0x190)[_0x3f40('0x2e')](_0x42b6b4);}var _0x239fd5=_0x2d2624[_0x3f40('0x2d')][_0x3f40('0x2f')];var _0x323908=_0x2d2624[_0x3f40('0x2d')][_0x3f40('0x30')];var _0x10356d=_0x2d2624[_0x3f40('0x2d')][_0x3f40('0x31')];var _0x25399a=_0x2d2624[_0x3f40('0x2d')][_0x3f40('0x32')];return getAgent(_0x239fd5)[_0x3f40('0x1b')](function(_0xf26a2f){logger[_0x3f40('0x2a')](_0x3f40('0x33'),_0xf26a2f[_0x3f40('0x16')]);emit(util[_0x3f40('0x34')](_0x3f40('0x35'),_0xf26a2f[_0x3f40('0x16')]),_0x3f40('0x36'),{'callNumber':_0x323908,'callerId':_0x10356d,'callbackUrl':_0x25399a});return _0x18dbb3[_0x3f40('0x17')](0xc8)[_0x3f40('0x2e')]({'error':![],'message':_0x3f40('0x37')});})[_0x3f40('0x38')](handleError(_0x18dbb3));};exports[_0x3f40('0x39')]=function(_0x411c98,_0x2df15b){logger['info']('hangup\x20fired:',_0x411c98[_0x3f40('0x2d')]);var _0x1b005e=hangupValidation[_0x3f40('0x2c')](_0x411c98[_0x3f40('0x2d')]);if(_0x1b005e[_0x3f40('0x27')]>0x0){return _0x2df15b[_0x3f40('0x17')](0x190)[_0x3f40('0x2e')](_0x1b005e);}var _0x4de3e7=_0x411c98[_0x3f40('0x2d')]['userId'];var _0x229bff=_0x411c98[_0x3f40('0x2d')][_0x3f40('0x26')];return getAgent(_0x4de3e7)['then'](function(_0x37a83d){logger[_0x3f40('0x2a')]('entityFound:',_0x37a83d[_0x3f40('0x16')]);emit(util[_0x3f40('0x34')]('user:%s',_0x37a83d[_0x3f40('0x16')]),'webbar:hangup',{'sessionId':_0x229bff});return _0x2df15b[_0x3f40('0x17')](0xc8)['json']({'error':![],'message':'hangup\x20executed!'});})[_0x3f40('0x38')](handleError(_0x2df15b));};exports['answer']=function(_0x2210bc,_0xe04271){logger[_0x3f40('0x2a')](_0x3f40('0x3a'),_0x2210bc['body']);var _0x237c91=answerValidation['validate'](_0x2210bc[_0x3f40('0x2d')]);if(_0x237c91[_0x3f40('0x27')]>0x0){return _0xe04271[_0x3f40('0x17')](0x190)['json'](_0x237c91);}var _0x4a198d=_0x2210bc[_0x3f40('0x2d')][_0x3f40('0x2f')];var _0x41bd93=_0x2210bc[_0x3f40('0x2d')][_0x3f40('0x26')];return getAgent(_0x4a198d)[_0x3f40('0x1b')](function(_0x38c5d6){logger[_0x3f40('0x2a')]('entityFound:',_0x38c5d6[_0x3f40('0x16')]);emit(util['format']('user:%s',_0x38c5d6[_0x3f40('0x16')]),_0x3f40('0x3b'),{'sessionId':_0x41bd93});return _0xe04271[_0x3f40('0x17')](0xc8)[_0x3f40('0x2e')]({'error':![],'message':_0x3f40('0x3c')});})[_0x3f40('0x38')](handleError(_0xe04271));};exports[_0x3f40('0x3d')]=function(_0x3d6cf8,_0x1cc958){logger[_0x3f40('0x2a')](_0x3f40('0x3e'),_0x3d6cf8[_0x3f40('0x2d')]);var _0x2068ab=holdValidation[_0x3f40('0x2c')](_0x3d6cf8['body']);if(_0x2068ab[_0x3f40('0x27')]>0x0){return _0x1cc958['status'](0x190)[_0x3f40('0x2e')](_0x2068ab);}var _0x2f16d6=_0x3d6cf8['body'][_0x3f40('0x2f')];var _0x1f66fa=_0x3d6cf8[_0x3f40('0x2d')][_0x3f40('0x26')];return getAgent(_0x2f16d6)[_0x3f40('0x1b')](function(_0x268ae4){logger[_0x3f40('0x2a')](_0x3f40('0x33'),_0x268ae4[_0x3f40('0x16')]);emit(util[_0x3f40('0x34')](_0x3f40('0x35'),_0x268ae4[_0x3f40('0x16')]),_0x3f40('0x3f'),{'sessionId':_0x1f66fa});return _0x1cc958[_0x3f40('0x17')](0xc8)[_0x3f40('0x2e')]({'error':![],'message':_0x3f40('0x40')});})[_0x3f40('0x38')](handleError(_0x1cc958));};exports[_0x3f40('0x41')]=function(_0x32bd05,_0x2d7e66){logger[_0x3f40('0x2a')]('unhold\x20fired:',_0x32bd05[_0x3f40('0x2d')]);var _0x50db96=unholdValidation[_0x3f40('0x2c')](_0x32bd05[_0x3f40('0x2d')]);if(_0x50db96[_0x3f40('0x27')]>0x0){return _0x2d7e66['status'](0x190)['json'](_0x50db96);}var _0x54b7cd=_0x32bd05[_0x3f40('0x2d')][_0x3f40('0x2f')];var _0x5f4f1a=_0x32bd05[_0x3f40('0x2d')][_0x3f40('0x26')];return getAgent(_0x54b7cd)['then'](function(_0x1cd70d){logger['info'](_0x3f40('0x33'),_0x1cd70d[_0x3f40('0x16')]);emit(util[_0x3f40('0x34')](_0x3f40('0x35'),_0x1cd70d[_0x3f40('0x16')]),_0x3f40('0x42'),{'sessionId':_0x5f4f1a});return _0x2d7e66[_0x3f40('0x17')](0xc8)[_0x3f40('0x2e')]({'error':![],'message':_0x3f40('0x43')});})[_0x3f40('0x38')](handleError(_0x2d7e66));};exports[_0x3f40('0x44')]=function(_0x13f191,_0x109752){logger['info'](_0x3f40('0x45'),_0x109752[_0x3f40('0x2d')]);var _0x1c94a1=callsValidation[_0x3f40('0x2c')](_0x13f191[_0x3f40('0x2d')]);if(_0x1c94a1['length']>0x0){return _0x109752[_0x3f40('0x17')](0x190)[_0x3f40('0x2e')](_0x1c94a1);}var _0x1c4b44=_0x13f191[_0x3f40('0x2d')][_0x3f40('0x2f')];var _0x5c030a=respondWithRpcPromise('VoiceChannels');var _0x6c81fe=getAgent(_0x1c4b44);return Promise[_0x3f40('0x22')]([_0x5c030a,_0x6c81fe])['then'](function(_0x701ed0){var _0x5a3456=_0x701ed0[0x0];var _0x204cff=_0x701ed0[0x1];var _0x557c0c=_[_0x3f40('0x23')](_0x5a3456['rows'],function(_0xab34b){return _0xab34b[_0x3f40('0x25')]==_0x204cff['id'];});return _0x109752[_0x3f40('0x17')](0xc8)['json']({'count':_0x557c0c['length'],'rows':_0x557c0c});})['catch'](handleError(_0x109752));};exports['conference']=function(_0x273739,_0x4e1c35){logger['info'](_0x3f40('0x46'),_0x273739[_0x3f40('0x2d')]);var _0x37f636=conferenceValidation[_0x3f40('0x2c')](_0x273739['body']);if(_0x37f636[_0x3f40('0x27')]>0x0){return _0x4e1c35['status'](0x190)['json'](_0x37f636);}var _0x48b0ed=_0x273739[_0x3f40('0x2d')]['userId'];return getAgent(_0x48b0ed)['then'](function(_0x45d7e5){logger[_0x3f40('0x2a')](_0x3f40('0x33'),_0x45d7e5[_0x3f40('0x16')]);emit(util[_0x3f40('0x34')]('user:%s',_0x45d7e5[_0x3f40('0x16')]),'webbar:conference');return _0x4e1c35[_0x3f40('0x17')](0xc8)[_0x3f40('0x2e')]({'error':![],'message':_0x3f40('0x47')});})['catch'](handleError(_0x4e1c35));};exports[_0x3f40('0x48')]=function(_0x2408f4,_0x46821c){logger[_0x3f40('0x2a')](_0x3f40('0x49'),_0x2408f4['body']);var _0x2f76a1=transferValidation[_0x3f40('0x2c')](_0x2408f4[_0x3f40('0x2d')]);if(_0x2f76a1[_0x3f40('0x27')]>0x0){return _0x46821c[_0x3f40('0x17')](0x190)[_0x3f40('0x2e')](_0x2f76a1);}var _0x29fdfc=_0x2408f4[_0x3f40('0x2d')][_0x3f40('0x2f')];var _0x37add1=_0x2408f4[_0x3f40('0x2d')][_0x3f40('0x26')];var _0x52c075=_0x2408f4['body']['transferNumber'];return getAgent(_0x29fdfc)[_0x3f40('0x1b')](function(_0x137cd8){logger[_0x3f40('0x2a')](_0x3f40('0x33'),_0x137cd8[_0x3f40('0x16')]);emit(util[_0x3f40('0x34')]('user:%s',_0x137cd8[_0x3f40('0x16')]),'webbar:transfer',{'sessionId':_0x37add1,'transferNumber':_0x52c075});return _0x46821c[_0x3f40('0x17')](0xc8)[_0x3f40('0x2e')]({'error':![],'message':_0x3f40('0x4a')});})[_0x3f40('0x38')](handleError(_0x46821c));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['removeDispositions','removeAgents','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','/:id/users','getAgents','getApplications','post','create','addDisposition','addAnswer','addAgents','/:id/applications','addApplications','notify','/:id/send','put','update','delete','destroy'];(function(_0xcd8eed,_0x59774d){var _0x36d61a=function(_0x385738){while(--_0x385738){_0xcd8eed['push'](_0xcd8eed['shift']());}};_0x36d61a(++_0x59774d);}(_0xdb28,0x106));var _0x8db2=function(_0x208ae8,_0x3d93a6){_0x208ae8=_0x208ae8-0x0;var _0x58faf4=_0xdb28[_0x208ae8];return _0x58faf4;};'use strict';var multer=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var path=require(_0x8db2('0x2'));var timeout=require(_0x8db2('0x3'));var express=require('express');var router=express[_0x8db2('0x4')]();var fs_extra=require(_0x8db2('0x5'));var auth=require(_0x8db2('0x6'));var interaction=require(_0x8db2('0x7'));var config=require(_0x8db2('0x8'));var controller=require('./whatsappAccount.controller');router[_0x8db2('0x9')]('/',auth[_0x8db2('0xa')](),controller['index']);router['get'](_0x8db2('0xb'),auth[_0x8db2('0xa')](),controller[_0x8db2('0xc')]);router[_0x8db2('0x9')](_0x8db2('0xd'),auth[_0x8db2('0xa')](),controller[_0x8db2('0xe')]);router['get'](_0x8db2('0xf'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x10')]);router['get'](_0x8db2('0x11'),auth[_0x8db2('0xa')](),controller['getAnswers']);router[_0x8db2('0x9')](_0x8db2('0x12'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x13')]);router[_0x8db2('0x9')]('/:id/applications',auth['isAuthenticated'](),controller[_0x8db2('0x14')]);router[_0x8db2('0x15')]('/',auth[_0x8db2('0xa')](),controller[_0x8db2('0x16')]);router[_0x8db2('0x15')](_0x8db2('0xf'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x17')]);router[_0x8db2('0x15')](_0x8db2('0x11'),auth['isAuthenticated'](),controller[_0x8db2('0x18')]);router[_0x8db2('0x15')]('/:id/users',auth[_0x8db2('0xa')](),controller[_0x8db2('0x19')]);router[_0x8db2('0x15')](_0x8db2('0x1a'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x1b')]);router['post']('/:id/notify',controller[_0x8db2('0x1c')]);router[_0x8db2('0x15')](_0x8db2('0x1d'),auth[_0x8db2('0xa')](),controller['send']);router[_0x8db2('0x1e')](_0x8db2('0xd'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x1f')]);router[_0x8db2('0x20')]('/:id',auth[_0x8db2('0xa')](),controller[_0x8db2('0x21')]);router[_0x8db2('0x20')](_0x8db2('0xf'),auth[_0x8db2('0xa')](),controller[_0x8db2('0x22')]);router[_0x8db2('0x20')]('/:id/canned_answers',auth[_0x8db2('0xa')](),controller['removeAnswers']);router['delete']('/:id/users',auth['isAuthenticated'](),controller[_0x8db2('0x23')]);module[_0x8db2('0x24')]=router;
\ No newline at end of file
+var _0xef0f=['multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/users','/:id/applications','getApplications','post','create','addAnswer','addAgents','addApplications','/:id/notify','notify','/:id/send','send','put','update','delete','removeAnswers','exports'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0xef0f,0x168));var _0xfef0=function(_0x19aea6,_0x143cd3){_0x19aea6=_0x19aea6-0x0;var _0x462bb6=_0xef0f[_0x19aea6];return _0x462bb6;};'use strict';var multer=require(_0xfef0('0x0'));var util=require('util');var path=require(_0xfef0('0x1'));var timeout=require(_0xfef0('0x2'));var express=require(_0xfef0('0x3'));var router=express['Router']();var fs_extra=require(_0xfef0('0x4'));var auth=require(_0xfef0('0x5'));var interaction=require(_0xfef0('0x6'));var config=require('../../config/environment');var controller=require(_0xfef0('0x7'));router[_0xfef0('0x8')]('/',auth[_0xfef0('0x9')](),controller[_0xfef0('0xa')]);router[_0xfef0('0x8')](_0xfef0('0xb'),auth['isAuthenticated'](),controller[_0xfef0('0xc')]);router['get'](_0xfef0('0xd'),auth[_0xfef0('0x9')](),controller[_0xfef0('0xe')]);router[_0xfef0('0x8')](_0xfef0('0xf'),auth[_0xfef0('0x9')](),controller[_0xfef0('0x10')]);router[_0xfef0('0x8')](_0xfef0('0x11'),auth[_0xfef0('0x9')](),controller[_0xfef0('0x12')]);router[_0xfef0('0x8')](_0xfef0('0x13'),auth[_0xfef0('0x9')](),controller['getAgents']);router[_0xfef0('0x8')](_0xfef0('0x14'),auth[_0xfef0('0x9')](),controller[_0xfef0('0x15')]);router[_0xfef0('0x16')]('/',auth[_0xfef0('0x9')](),controller[_0xfef0('0x17')]);router['post'](_0xfef0('0xf'),auth['isAuthenticated'](),controller['addDisposition']);router['post'](_0xfef0('0x11'),auth[_0xfef0('0x9')](),controller[_0xfef0('0x18')]);router[_0xfef0('0x16')](_0xfef0('0x13'),auth[_0xfef0('0x9')](),controller[_0xfef0('0x19')]);router[_0xfef0('0x16')]('/:id/applications',auth[_0xfef0('0x9')](),controller[_0xfef0('0x1a')]);router[_0xfef0('0x16')](_0xfef0('0x1b'),controller[_0xfef0('0x1c')]);router['post'](_0xfef0('0x1d'),auth['isAuthenticated'](),controller[_0xfef0('0x1e')]);router[_0xfef0('0x1f')](_0xfef0('0xd'),auth['isAuthenticated'](),controller[_0xfef0('0x20')]);router['delete'](_0xfef0('0xd'),auth[_0xfef0('0x9')](),controller['destroy']);router['delete']('/:id/dispositions',auth[_0xfef0('0x9')](),controller['removeDispositions']);router[_0xfef0('0x21')](_0xfef0('0x11'),auth[_0xfef0('0x9')](),controller[_0xfef0('0x22')]);router[_0xfef0('0x21')](_0xfef0('0x13'),auth['isAuthenticated'](),controller['removeAgents']);module[_0xfef0('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fca=['Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','sequelize','randomstring','exports','STRING','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'];(function(_0x42f009,_0x5e27b1){var _0x22a1e0=function(_0x297993){while(--_0x297993){_0x42f009['push'](_0x42f009['shift']());}};_0x22a1e0(++_0x5e27b1);}(_0x7fca,0x1d0));var _0xa7fc=function(_0x55fc1f,_0x9fe63a){_0x55fc1f=_0x55fc1f-0x0;var _0x4cddfd=_0x7fca[_0x55fc1f];return _0x4cddfd;};'use strict';var Sequelize=require(_0xa7fc('0x0'));var rs=require(_0xa7fc('0x1'));module[_0xa7fc('0x2')]={'name':{'type':Sequelize[_0xa7fc('0x3')],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0xa7fc('0x3')],'allowNull':![]},'remote':{'type':Sequelize[_0xa7fc('0x3')],'allowNull':![]},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs['generate']();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize['ENUM']('twilio')},'accountSid':{'type':Sequelize[_0xa7fc('0x3')]},'authToken':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0xa7fc('0x4')],'defaultValue':function(){return _0xa7fc('0x5');}},'notificationSound':{'type':Sequelize[_0xa7fc('0x6')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0xa7fc('0x6')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xa7fc('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xa7fc('0x6')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xa7fc('0x6')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xa7fc('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xa7fc('0x7')],'comment':_0xa7fc('0x8')},'mandatoryDisposition':{'type':Sequelize[_0xa7fc('0x6')],'defaultValue':![],'comment':_0xa7fc('0x9'),'set':function(_0x4794f8){if(!_0x4794f8){this['setDataValue']('mandatoryDispositionPauseId',null);}this[_0xa7fc('0xa')]('mandatoryDisposition',_0x4794f8);}},'description':{'type':Sequelize[_0xa7fc('0x3')]}};
\ No newline at end of file
+var _0x73c1=['randomstring','exports','STRING','generate','ENUM','twilio','TEXT','BOOLEAN','INTEGER','setDataValue','mandatoryDisposition','sequelize'];(function(_0x1ab0e6,_0x17ba8d){var _0x248815=function(_0x5d2b40){while(--_0x5d2b40){_0x1ab0e6['push'](_0x1ab0e6['shift']());}};_0x248815(++_0x17ba8d);}(_0x73c1,0x1eb));var _0x173c=function(_0x3282a2,_0xb4b2c9){_0x3282a2=_0x3282a2-0x0;var _0xdec417=_0x73c1[_0x3282a2];return _0xdec417;};'use strict';var Sequelize=require(_0x173c('0x0'));var rs=require(_0x173c('0x1'));module[_0x173c('0x2')]={'name':{'type':Sequelize[_0x173c('0x3')],'unique':'name','allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0x173c('0x3')],'defaultValue':function(){return rs[_0x173c('0x4')]();}},'phone':{'type':Sequelize[_0x173c('0x3')]},'type':{'type':Sequelize[_0x173c('0x5')](_0x173c('0x6'))},'accountSid':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0x173c('0x7')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x173c('0x8')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x173c('0x8')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x173c('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x173c('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x173c('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x173c('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x173c('0x8')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x381120){if(!_0x381120){this['setDataValue']('mandatoryDispositionPauseId',null);}this[_0x173c('0xa')](_0x173c('0xb'),_0x381120);}},'description':{'type':Sequelize[_0x173c('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b7d=['debug','error','code','message','info','request\x20sent','catch','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','destroy','WhatsappAccounts','stack','name','send','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes','fieldName','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','type','options','includeAll','include','findAll','rows','show','intersection','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','addDisposition','WhatsappAccountId','Disposition','getDispositions','findOne','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addAgents','omit','spread','userWhatsappAccount:save','removeAgents','isArray','emit','userWhatsappAccount:remove','User','getAgents','transaction','WhatsappApplication','bulkCreate','findAndCountAll','priority','getApplications','notify','Applications','account','applications','orderBy','asc','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','from','From','replace','whatsapp:','messageId','isNil','from\x20is\x20mandatory','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','Contacts','DESC','list','contact','WhatsappInteraction','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','WhatsappMessage','ContactId','AttachmentId','UserId','unshift','agent','waitForTheAssignedAgent','startRouting','Start','WhatsappAccount,\x20%s,\x20%s,\x20%s','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','stringify','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','to\x20is\x20mandatory','List','out','Messages','dataValues','eml-format','rimraf','request-promise','moment','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./whatsappAccount.socket','jayson/promise','http','request','then','WhatsappAccount,\x20%s,\x20%s'];(function(_0x420b24,_0x382adc){var _0x4da552=function(_0x4e1623){while(--_0x4e1623){_0x420b24['push'](_0x420b24['shift']());}};_0x4da552(++_0x382adc);}(_0x8b7d,0x9e));var _0xd8b7=function(_0x2a8167,_0x2ce9d0){_0x2a8167=_0x2a8167-0x0;var _0x483e55=_0x8b7d[_0x2a8167];return _0x483e55;};'use strict';var emlformat=require(_0xd8b7('0x0'));var rimraf=require(_0xd8b7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xd8b7('0x2'));var moment=require(_0xd8b7('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xd8b7('0x4'));var csv=require(_0xd8b7('0x5'));var ejs=require(_0xd8b7('0x6'));var fs=require('fs');var fs_extra=require(_0xd8b7('0x7'));var _=require(_0xd8b7('0x8'));var squel=require(_0xd8b7('0x9'));var crypto=require('crypto');var jsforce=require(_0xd8b7('0xa'));var deskjs=require(_0xd8b7('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xd8b7('0xc'));var authService=require(_0xd8b7('0xd'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xd8b7('0xe'));var logger=require('../../config/logger')(_0xd8b7('0xf'));var utils=require(_0xd8b7('0x10'));var config=require(_0xd8b7('0x11'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xd8b7('0x12')]=_[_0xd8b7('0x13')](config[_0xd8b7('0x12')],{'host':_0xd8b7('0x14'),'port':0x18eb});var socket=require(_0xd8b7('0x15'))(new Redis(config['redis']));require(_0xd8b7('0x16'))['register'](socket);var jayson=require(_0xd8b7('0x17'));var client=jayson['client'][_0xd8b7('0x18')]({'port':0x232c});function respondWithRpcPromise(_0x2ab997,_0x2ecc7e,_0x3014fc,_0x2d5b70){return new BPromise(function(_0x4b94d1,_0x27ef7a){var _0x400510=_0x2d5b70||client;return _0x400510[_0xd8b7('0x19')](_0x2ab997,_0x3014fc)[_0xd8b7('0x1a')](function(_0x176cb5){logger['info'](_0xd8b7('0x1b'),_0x2ecc7e,'request\x20sent');logger[_0xd8b7('0x1c')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x2ecc7e,'request\x20sent',JSON['stringify'](_0x176cb5));if(_0x176cb5[_0xd8b7('0x1d')]){if(_0x176cb5[_0xd8b7('0x1d')][_0xd8b7('0x1e')]===0x1f4){logger[_0xd8b7('0x1d')]('WhatsappAccount,\x20%s,\x20%s',_0x2ecc7e,_0x176cb5[_0xd8b7('0x1d')]['message']);return _0x27ef7a(_0x176cb5['error']['message']);}logger[_0xd8b7('0x1d')](_0xd8b7('0x1b'),_0x2ecc7e,_0x176cb5[_0xd8b7('0x1d')][_0xd8b7('0x1f')]);return _0x4b94d1(_0x176cb5[_0xd8b7('0x1d')]['message']);}else{logger[_0xd8b7('0x20')](_0xd8b7('0x1b'),_0x2ecc7e,_0xd8b7('0x21'));_0x4b94d1(_0x176cb5['result'][_0xd8b7('0x1f')]);}})[_0xd8b7('0x22')](function(_0xf8b6d2){logger[_0xd8b7('0x1d')]('WhatsappAccount,\x20%s,\x20%s',_0x2ecc7e,_0xf8b6d2);_0x27ef7a(_0xf8b6d2);});});}function respondWithStatusCode(_0x33fd42,_0x1a354f){_0x1a354f=_0x1a354f||0xcc;return function(_0x5f1995){if(_0x5f1995){return _0x33fd42[_0xd8b7('0x23')](_0x1a354f);}return _0x33fd42[_0xd8b7('0x24')](_0x1a354f)[_0xd8b7('0x25')]();};}function respondWithResult(_0x2e1398,_0x2c4561){_0x2c4561=_0x2c4561||0xc8;return function(_0x16e295){if(_0x16e295){return _0x2e1398['status'](_0x2c4561)[_0xd8b7('0x26')](_0x16e295);}};}function respondWithFilteredResult(_0x494f77,_0x6fded3){return function(_0x12df89){if(_0x12df89){var _0x505de5=typeof _0x6fded3['offset']===_0xd8b7('0x27')&&typeof _0x6fded3[_0xd8b7('0x28')]===_0xd8b7('0x27');var _0x2a0f46=_0x12df89['count'];var _0x1765d8=_0x505de5?0x0:_0x6fded3[_0xd8b7('0x29')];var _0x18447e=_0x505de5?_0x12df89[_0xd8b7('0x2a')]:_0x6fded3['offset']+_0x6fded3[_0xd8b7('0x28')];var _0x321800;if(_0x18447e>=_0x2a0f46){_0x18447e=_0x2a0f46;_0x321800=0xc8;}else{_0x321800=0xce;}_0x494f77[_0xd8b7('0x24')](_0x321800);return _0x494f77[_0xd8b7('0x2b')](_0xd8b7('0x2c'),_0x1765d8+'-'+_0x18447e+'/'+_0x2a0f46)[_0xd8b7('0x26')](_0x12df89);}return null;};}function patchUpdates(_0x4d4b63){return function(_0x51bbe4){try{jsonpatch[_0xd8b7('0x2d')](_0x51bbe4,_0x4d4b63,!![]);}catch(_0x23e0ad){return BPromise[_0xd8b7('0x2e')](_0x23e0ad);}return _0x51bbe4[_0xd8b7('0x2f')]();};}function saveUpdates(_0x20ca71,_0x2a9d78){return function(_0x20c3b0){if(_0x20c3b0){return _0x20c3b0['update'](_0x20ca71)[_0xd8b7('0x1a')](function(_0x177d58){return _0x177d58;});}return null;};}function removeEntity(_0x5f095f,_0x5e8e61){return function(_0x303555){if(_0x303555){return _0x303555[_0xd8b7('0x30')]()[_0xd8b7('0x1a')](function(){var _0x2e602b=_0x303555['get']({'plain':!![]});var _0xe5612d=_0xd8b7('0x31');return db['UserProfileResource'][_0xd8b7('0x30')]({'where':{'type':_0xe5612d,'resourceId':_0x2e602b['id']}})[_0xd8b7('0x1a')](function(){return _0x303555;});})[_0xd8b7('0x1a')](function(){_0x5f095f[_0xd8b7('0x24')](0xcc)[_0xd8b7('0x25')]();});}};}function handleEntityNotFound(_0x16fe32,_0x14bea2){return function(_0x1b6dc0){if(!_0x1b6dc0){_0x16fe32[_0xd8b7('0x23')](0x194);}return _0x1b6dc0;};}function handleError(_0x35c61e,_0x4d965b){_0x4d965b=_0x4d965b||0x1f4;return function(_0x201bf5){logger[_0xd8b7('0x1d')](_0x201bf5[_0xd8b7('0x32')]);if(_0x201bf5[_0xd8b7('0x33')]){delete _0x201bf5[_0xd8b7('0x33')];}_0x35c61e['status'](_0x4d965b)[_0xd8b7('0x34')](_0x201bf5);};}exports[_0xd8b7('0x35')]=function(_0x2f91b2,_0x26547c){var _0x43820f={'include':[{'model':db[_0xd8b7('0x36')],'as':_0xd8b7('0x37')}]},_0x2ad01f={},_0x356d29={'count':0x0,'rows':[]};var _0x4917b9=_[_0xd8b7('0x38')](db[_0xd8b7('0x39')][_0xd8b7('0x3a')],function(_0x456c1e){return{'name':_0x456c1e[_0xd8b7('0x3b')],'type':_0x456c1e['type'][_0xd8b7('0x3c')]};});_0x2ad01f[_0xd8b7('0x3d')]=_[_0xd8b7('0x38')](_0x4917b9,_0xd8b7('0x33'));_0x2ad01f[_0xd8b7('0x3e')]=_[_0xd8b7('0x3f')](_0x2f91b2[_0xd8b7('0x3e')]);_0x2ad01f[_0xd8b7('0x40')]=_['intersection'](_0x2ad01f[_0xd8b7('0x3d')],_0x2ad01f[_0xd8b7('0x3e')]);_0x43820f[_0xd8b7('0x41')]=_['intersection'](_0x2ad01f[_0xd8b7('0x3d')],qs[_0xd8b7('0x42')](_0x2f91b2[_0xd8b7('0x3e')][_0xd8b7('0x42')]));_0x43820f['attributes']=_0x43820f['attributes'][_0xd8b7('0x43')]?_0x43820f['attributes']:_0x2ad01f[_0xd8b7('0x3d')];if(!_0x2f91b2[_0xd8b7('0x3e')][_0xd8b7('0x44')](_0xd8b7('0x45'))){_0x43820f[_0xd8b7('0x28')]=qs['limit'](_0x2f91b2[_0xd8b7('0x3e')][_0xd8b7('0x28')]);_0x43820f['offset']=qs[_0xd8b7('0x29')](_0x2f91b2[_0xd8b7('0x3e')][_0xd8b7('0x29')]);}_0x43820f[_0xd8b7('0x46')]=qs[_0xd8b7('0x47')](_0x2f91b2[_0xd8b7('0x3e')]['sort']);_0x43820f['where']=qs[_0xd8b7('0x40')](_[_0xd8b7('0x48')](_0x2f91b2[_0xd8b7('0x3e')],_0x2ad01f[_0xd8b7('0x40')]),_0x4917b9);if(_0x2f91b2['query'][_0xd8b7('0x49')]){_0x43820f['where']=_[_0xd8b7('0x4a')](_0x43820f[_0xd8b7('0x4b')],{'$or':_[_0xd8b7('0x38')](_0x4917b9,function(_0x4c8006){if(_0x4c8006[_0xd8b7('0x4c')]!=='VIRTUAL'){var _0x18b22b={};_0x18b22b[_0x4c8006[_0xd8b7('0x33')]]={'$like':'%'+_0x2f91b2['query'][_0xd8b7('0x49')]+'%'};return _0x18b22b;}})});}_0x43820f=_[_0xd8b7('0x4a')]({},_0x43820f,_0x2f91b2[_0xd8b7('0x4d')]);var _0xe182c8={'where':_0x43820f['where']};return db[_0xd8b7('0x39')][_0xd8b7('0x2a')](_0xe182c8)[_0xd8b7('0x1a')](function(_0x3fe8dc){_0x356d29['count']=_0x3fe8dc;if(_0x2f91b2[_0xd8b7('0x3e')][_0xd8b7('0x4e')]){_0x43820f[_0xd8b7('0x4f')]=[{'all':!![]}];}return db[_0xd8b7('0x39')][_0xd8b7('0x50')](_0x43820f);})[_0xd8b7('0x1a')](function(_0x55c28f){_0x356d29[_0xd8b7('0x51')]=_0x55c28f;return _0x356d29;})[_0xd8b7('0x1a')](respondWithFilteredResult(_0x26547c,_0x43820f))['catch'](handleError(_0x26547c,null));};exports[_0xd8b7('0x52')]=function(_0x3db6fd,_0x361f8b){var _0x194469={'raw':![],'where':{'id':_0x3db6fd['params']['id']},'include':[{'model':db[_0xd8b7('0x36')],'as':_0xd8b7('0x37')}]},_0x22a54b={};_0x22a54b[_0xd8b7('0x3d')]=_[_0xd8b7('0x3f')](db[_0xd8b7('0x39')]['rawAttributes']);_0x22a54b[_0xd8b7('0x3e')]=_['keys'](_0x3db6fd[_0xd8b7('0x3e')]);_0x22a54b[_0xd8b7('0x40')]=_['intersection'](_0x22a54b[_0xd8b7('0x3d')],_0x22a54b['query']);_0x194469[_0xd8b7('0x41')]=_[_0xd8b7('0x53')](_0x22a54b[_0xd8b7('0x3d')],qs[_0xd8b7('0x42')](_0x3db6fd[_0xd8b7('0x3e')][_0xd8b7('0x42')]));_0x194469['attributes']=_0x194469[_0xd8b7('0x41')]['length']?_0x194469[_0xd8b7('0x41')]:_0x22a54b[_0xd8b7('0x3d')];if(_0x3db6fd['query'][_0xd8b7('0x4e')]){_0x194469[_0xd8b7('0x4f')]=[{'all':!![]}];}_0x194469=_[_0xd8b7('0x4a')]({},_0x194469,_0x3db6fd[_0xd8b7('0x4d')]);return db['WhatsappAccount'][_0xd8b7('0x54')](_0x194469)[_0xd8b7('0x1a')](handleEntityNotFound(_0x361f8b,null))[_0xd8b7('0x1a')](respondWithResult(_0x361f8b,null))[_0xd8b7('0x22')](handleError(_0x361f8b,null));};exports['create']=function(_0x30d9e7,_0x122ab2){return db[_0xd8b7('0x39')][_0xd8b7('0x55')](_0x30d9e7[_0xd8b7('0x56')],{})['then'](function(_0x1a7d7c){var _0x26da24=_0x30d9e7[_0xd8b7('0x57')]['get']({'plain':!![]});if(!_0x26da24)throw new Error(_0xd8b7('0x58'));if(_0x26da24[_0xd8b7('0x59')]===_0xd8b7('0x57')){var _0x43e86e=_0x1a7d7c[_0xd8b7('0x5a')]({'plain':!![]});var _0xe96f84=_0xd8b7('0x31');return db[_0xd8b7('0x5b')][_0xd8b7('0x54')]({'where':{'name':_0xe96f84,'userProfileId':_0x26da24[_0xd8b7('0x5c')]},'raw':!![]})[_0xd8b7('0x1a')](function(_0x58d710){if(_0x58d710&&_0x58d710[_0xd8b7('0x5d')]===0x0){return db['UserProfileResource'][_0xd8b7('0x55')]({'name':_0x43e86e[_0xd8b7('0x33')],'resourceId':_0x43e86e['id'],'type':_0x58d710['name'],'sectionId':_0x58d710['id']},{})[_0xd8b7('0x1a')](function(){return _0x1a7d7c;});}else{return _0x1a7d7c;}})[_0xd8b7('0x22')](function(_0x144949){logger['error'](_0xd8b7('0x5e'),_0x144949);throw _0x144949;});}return _0x1a7d7c;})['then'](respondWithResult(_0x122ab2,0xc9))['catch'](handleError(_0x122ab2,null));};exports['update']=function(_0x1e1420,_0x540d52){if(_0x1e1420[_0xd8b7('0x56')]['id']){delete _0x1e1420[_0xd8b7('0x56')]['id'];}return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x1e1420['params']['id']},'include':[{'model':db[_0xd8b7('0x36')],'as':_0xd8b7('0x37')}]})[_0xd8b7('0x1a')](handleEntityNotFound(_0x540d52,null))[_0xd8b7('0x1a')](saveUpdates(_0x1e1420['body'],null))[_0xd8b7('0x1a')](respondWithResult(_0x540d52,null))[_0xd8b7('0x22')](handleError(_0x540d52,null));};exports[_0xd8b7('0x30')]=function(_0x3af341,_0x25f259){return db['WhatsappAccount']['find']({'where':{'id':_0x3af341[_0xd8b7('0x5f')]['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x25f259,null))['then'](removeEntity(_0x25f259,null))[_0xd8b7('0x22')](handleError(_0x25f259,null));};exports['describe']=function(_0x21bdc6,_0x17048e){return db[_0xd8b7('0x39')][_0xd8b7('0x60')]()[_0xd8b7('0x1a')](respondWithResult(_0x17048e,null))[_0xd8b7('0x22')](handleError(_0x17048e,null));};exports[_0xd8b7('0x61')]=function(_0x6c511c,_0x3bbe21,_0x4aab4f){if(_0x6c511c['body']['id']){delete _0x6c511c[_0xd8b7('0x56')]['id'];}return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x6c511c['params']['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x3bbe21,null))['then'](function(_0x4eed25){if(_0x4eed25){_0x6c511c[_0xd8b7('0x56')][_0xd8b7('0x62')]=_0x4eed25['id'];return db[_0xd8b7('0x63')]['create'](_0x6c511c['body']);}})[_0xd8b7('0x1a')](respondWithResult(_0x3bbe21,null))['catch'](handleError(_0x3bbe21,null));};exports[_0xd8b7('0x64')]=function(_0xec8458,_0x329191,_0x7e5117){var _0x441e0d={'raw':![],'where':{}};var _0x38499d={};var _0x42930f={'count':0x0,'rows':[]};return db[_0xd8b7('0x39')][_0xd8b7('0x65')]({'where':{'id':_0xec8458['params']['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x329191,null))['then'](function(_0xb6246c){if(_0xb6246c){_0x38499d['model']=_[_0xd8b7('0x3f')](db[_0xd8b7('0x63')][_0xd8b7('0x3a')]);_0x38499d[_0xd8b7('0x3e')]=_['keys'](_0xec8458['query']);_0x38499d[_0xd8b7('0x40')]=_[_0xd8b7('0x53')](_0x38499d['model'],_0x38499d[_0xd8b7('0x3e')]);_0x441e0d[_0xd8b7('0x41')]=_[_0xd8b7('0x53')](_0x38499d['model'],qs[_0xd8b7('0x42')](_0xec8458['query']['fields']));_0x441e0d['attributes']=_0x441e0d['attributes'][_0xd8b7('0x43')]?_0x441e0d[_0xd8b7('0x41')]:_0x38499d[_0xd8b7('0x3d')];if(!_0xec8458['query'][_0xd8b7('0x44')](_0xd8b7('0x45'))){_0x441e0d[_0xd8b7('0x28')]=qs[_0xd8b7('0x28')](_0xec8458[_0xd8b7('0x3e')][_0xd8b7('0x28')]);_0x441e0d['offset']=qs[_0xd8b7('0x29')](_0xec8458[_0xd8b7('0x3e')]['offset']);}_0x441e0d[_0xd8b7('0x46')]=qs[_0xd8b7('0x47')](_0xec8458[_0xd8b7('0x3e')]['sort']);_0x441e0d[_0xd8b7('0x4b')]=qs['filters'](_[_0xd8b7('0x48')](_0xec8458[_0xd8b7('0x3e')],_0x38499d[_0xd8b7('0x40')]));_0x441e0d[_0xd8b7('0x4b')][_0xd8b7('0x62')]=_0xb6246c['id'];if(_0xec8458[_0xd8b7('0x3e')][_0xd8b7('0x49')]){_0x441e0d[_0xd8b7('0x4b')]=_[_0xd8b7('0x4a')](_0x441e0d[_0xd8b7('0x4b')],{'$or':_['map'](_0x441e0d[_0xd8b7('0x41')],function(_0x4605e9){var _0xd358c8={};_0xd358c8[_0x4605e9]={'$like':'%'+_0xec8458[_0xd8b7('0x3e')][_0xd8b7('0x49')]+'%'};return _0xd358c8;})});}_0x441e0d=_['merge']({},_0x441e0d,_0xec8458[_0xd8b7('0x4d')]);return db['Disposition'][_0xd8b7('0x2a')]({'where':_0x441e0d[_0xd8b7('0x4b')]})[_0xd8b7('0x1a')](function(_0x3d46c0){_0x42930f[_0xd8b7('0x2a')]=_0x3d46c0;if(_0xec8458['query'][_0xd8b7('0x4e')]){_0x441e0d[_0xd8b7('0x4f')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x441e0d);})[_0xd8b7('0x1a')](function(_0x46d496){_0x42930f[_0xd8b7('0x51')]=_0x46d496;return _0x42930f;});}})['then'](respondWithFilteredResult(_0x329191,_0x441e0d))['catch'](handleError(_0x329191,null));};exports['removeDispositions']=function(_0x4ecd1c,_0x22d575,_0x28b01a){return db[_0xd8b7('0x39')]['find']({'where':{'id':_0x4ecd1c['params']['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x22d575,null))[_0xd8b7('0x1a')](function(_0x1a5a1e){if(_0x1a5a1e){return _0x1a5a1e[_0xd8b7('0x66')](_0x4ecd1c[_0xd8b7('0x3e')][_0xd8b7('0x67')]);}})[_0xd8b7('0x1a')](respondWithStatusCode(_0x22d575,null))[_0xd8b7('0x22')](handleError(_0x22d575,null));};exports[_0xd8b7('0x68')]=function(_0x1069e2,_0x7111a1,_0x4c252a){if(_0x1069e2[_0xd8b7('0x56')]['id']){delete _0x1069e2[_0xd8b7('0x56')]['id'];}return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x1069e2[_0xd8b7('0x5f')]['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x7111a1,null))[_0xd8b7('0x1a')](function(_0xcb63e3){if(_0xcb63e3){_0x1069e2['body'][_0xd8b7('0x62')]=_0xcb63e3['id'];return db[_0xd8b7('0x69')][_0xd8b7('0x55')](_0x1069e2['body']);}})['then'](respondWithResult(_0x7111a1,null))[_0xd8b7('0x22')](handleError(_0x7111a1,null));};exports[_0xd8b7('0x6a')]=function(_0x7d0c89,_0x2da66c,_0x2f014d){var _0x645aae={'raw':![],'where':{}};var _0xfc45f1={};var _0x7c8f5a={'count':0x0,'rows':[]};return db[_0xd8b7('0x39')][_0xd8b7('0x65')]({'where':{'id':_0x7d0c89[_0xd8b7('0x5f')]['id']}})['then'](handleEntityNotFound(_0x2da66c,null))[_0xd8b7('0x1a')](function(_0x175554){if(_0x175554){_0xfc45f1[_0xd8b7('0x3d')]=_['keys'](db[_0xd8b7('0x69')][_0xd8b7('0x3a')]);_0xfc45f1[_0xd8b7('0x3e')]=_[_0xd8b7('0x3f')](_0x7d0c89['query']);_0xfc45f1['filters']=_[_0xd8b7('0x53')](_0xfc45f1['model'],_0xfc45f1['query']);_0x645aae[_0xd8b7('0x41')]=_[_0xd8b7('0x53')](_0xfc45f1[_0xd8b7('0x3d')],qs[_0xd8b7('0x42')](_0x7d0c89[_0xd8b7('0x3e')][_0xd8b7('0x42')]));_0x645aae[_0xd8b7('0x41')]=_0x645aae[_0xd8b7('0x41')][_0xd8b7('0x43')]?_0x645aae['attributes']:_0xfc45f1[_0xd8b7('0x3d')];if(!_0x7d0c89[_0xd8b7('0x3e')][_0xd8b7('0x44')](_0xd8b7('0x45'))){_0x645aae[_0xd8b7('0x28')]=qs[_0xd8b7('0x28')](_0x7d0c89[_0xd8b7('0x3e')]['limit']);_0x645aae[_0xd8b7('0x29')]=qs[_0xd8b7('0x29')](_0x7d0c89['query'][_0xd8b7('0x29')]);}_0x645aae[_0xd8b7('0x46')]=qs['sort'](_0x7d0c89[_0xd8b7('0x3e')][_0xd8b7('0x47')]);_0x645aae[_0xd8b7('0x4b')]=qs[_0xd8b7('0x40')](_[_0xd8b7('0x48')](_0x7d0c89[_0xd8b7('0x3e')],_0xfc45f1[_0xd8b7('0x40')]));_0x645aae['where'][_0xd8b7('0x62')]=_0x175554['id'];if(_0x7d0c89[_0xd8b7('0x3e')][_0xd8b7('0x49')]){_0x645aae['where']=_['merge'](_0x645aae[_0xd8b7('0x4b')],{'$or':_[_0xd8b7('0x38')](_0x645aae['attributes'],function(_0x1566eb){var _0x3bccae={};_0x3bccae[_0x1566eb]={'$like':'%'+_0x7d0c89[_0xd8b7('0x3e')][_0xd8b7('0x49')]+'%'};return _0x3bccae;})});}_0x645aae=_['merge']({},_0x645aae,_0x7d0c89[_0xd8b7('0x4d')]);return db['CannedAnswer'][_0xd8b7('0x2a')]({'where':_0x645aae[_0xd8b7('0x4b')]})[_0xd8b7('0x1a')](function(_0x59068e){_0x7c8f5a['count']=_0x59068e;if(_0x7d0c89[_0xd8b7('0x3e')][_0xd8b7('0x4e')]){_0x645aae[_0xd8b7('0x4f')]=[{'all':!![]}];}return db[_0xd8b7('0x69')][_0xd8b7('0x50')](_0x645aae);})[_0xd8b7('0x1a')](function(_0x3b7e97){_0x7c8f5a['rows']=_0x3b7e97;return _0x7c8f5a;});}})[_0xd8b7('0x1a')](respondWithFilteredResult(_0x2da66c,_0x645aae))['catch'](handleError(_0x2da66c,null));};exports[_0xd8b7('0x6b')]=function(_0x6d6822,_0x2fc8e6,_0x5cf788){return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x6d6822['params']['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x2fc8e6,null))[_0xd8b7('0x1a')](function(_0x14ff71){if(_0x14ff71){return _0x14ff71[_0xd8b7('0x6b')](_0x6d6822[_0xd8b7('0x3e')]['ids']);}})['then'](respondWithStatusCode(_0x2fc8e6,null))['catch'](handleError(_0x2fc8e6,null));};exports['addAgents']=function(_0x41d7ed,_0x457aa1,_0x273199){return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x41d7ed[_0xd8b7('0x5f')]['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x457aa1,null))['then'](function(_0x49634e){if(_0x49634e){return _0x49634e[_0xd8b7('0x6c')](_0x41d7ed[_0xd8b7('0x56')][_0xd8b7('0x67')],_[_0xd8b7('0x6d')](_0x41d7ed['body'],[_0xd8b7('0x67'),'id'])||{})[_0xd8b7('0x6e')](function(_0x54cac4){for(var _0x31a7bc=0x0;_0x31a7bc<_0x41d7ed[_0xd8b7('0x56')][_0xd8b7('0x67')]['length'];_0x31a7bc+=0x1){socket['emit'](_0xd8b7('0x6f'),{'UserId':Number(_0x41d7ed[_0xd8b7('0x56')][_0xd8b7('0x67')][_0x31a7bc]),'WhatsappAccountId':Number(_0x41d7ed[_0xd8b7('0x5f')]['id'])});}return _0x54cac4;});}})['then'](respondWithResult(_0x457aa1,null))[_0xd8b7('0x22')](handleError(_0x457aa1,null));};exports[_0xd8b7('0x70')]=function(_0x245de7,_0x4fb749,_0x29f074){return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x245de7[_0xd8b7('0x5f')]['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x4fb749,null))['then'](function(_0x45f2d4){if(_0x45f2d4){return _0x45f2d4['removeAgents'](_0x245de7['query'][_0xd8b7('0x67')])['then'](function(){if(_[_0xd8b7('0x71')](_0x245de7['query'][_0xd8b7('0x67')])){for(var _0x527467=0x0;_0x527467<_0x245de7[_0xd8b7('0x3e')]['ids'][_0xd8b7('0x43')];_0x527467+=0x1){socket[_0xd8b7('0x72')](_0xd8b7('0x73'),{'UserId':Number(_0x245de7['query'][_0xd8b7('0x67')][_0x527467]),'WhatsappAccountId':Number(_0x245de7[_0xd8b7('0x5f')]['id'])});}}else{socket[_0xd8b7('0x72')](_0xd8b7('0x73'),{'UserId':Number(_0x245de7[_0xd8b7('0x3e')][_0xd8b7('0x67')]),'WhatsappAccountId':Number(_0x245de7[_0xd8b7('0x5f')]['id'])});}});}})[_0xd8b7('0x1a')](respondWithStatusCode(_0x4fb749,null))[_0xd8b7('0x22')](handleError(_0x4fb749,null));};exports['getAgents']=function(_0x8fc106,_0x4d2107,_0x3a2995){var _0x468448={};var _0x5740fe={};var _0x37ac5a;var _0x2ab99d;return db[_0xd8b7('0x39')][_0xd8b7('0x65')]({'where':{'id':_0x8fc106[_0xd8b7('0x5f')]['id']}})['then'](handleEntityNotFound(_0x4d2107,null))[_0xd8b7('0x1a')](function(_0x42bacb){if(_0x42bacb){_0x37ac5a=_0x42bacb;_0x5740fe['model']=_[_0xd8b7('0x3f')](db[_0xd8b7('0x74')][_0xd8b7('0x3a')]);_0x5740fe[_0xd8b7('0x3e')]=_[_0xd8b7('0x3f')](_0x8fc106[_0xd8b7('0x3e')]);_0x5740fe[_0xd8b7('0x40')]=_[_0xd8b7('0x53')](_0x5740fe['model'],_0x5740fe[_0xd8b7('0x3e')]);_0x468448[_0xd8b7('0x41')]=_[_0xd8b7('0x53')](_0x5740fe[_0xd8b7('0x3d')],qs['fields'](_0x8fc106[_0xd8b7('0x3e')][_0xd8b7('0x42')]));_0x468448[_0xd8b7('0x41')]=_0x468448[_0xd8b7('0x41')]['length']?_0x468448[_0xd8b7('0x41')]:_0x5740fe[_0xd8b7('0x3d')];_0x468448[_0xd8b7('0x46')]=qs[_0xd8b7('0x47')](_0x8fc106['query']['sort']);_0x468448[_0xd8b7('0x4b')]=qs[_0xd8b7('0x40')](_[_0xd8b7('0x48')](_0x8fc106['query'],_0x5740fe[_0xd8b7('0x40')]));if(_0x8fc106[_0xd8b7('0x3e')]['filter']){_0x468448['where']=_[_0xd8b7('0x4a')](_0x468448[_0xd8b7('0x4b')],{'$or':_['map'](_0x468448[_0xd8b7('0x41')],function(_0xbf758c){var _0x3c2612={};_0x3c2612[_0xbf758c]={'$like':'%'+_0x8fc106[_0xd8b7('0x3e')]['filter']+'%'};return _0x3c2612;})});}_0x468448=_[_0xd8b7('0x4a')]({},_0x468448,_0x8fc106[_0xd8b7('0x4d')]);return _0x37ac5a[_0xd8b7('0x75')](_0x468448);}})[_0xd8b7('0x1a')](function(_0x37e511){if(_0x37e511){_0x2ab99d=_0x37e511[_0xd8b7('0x43')];if(!_0x8fc106[_0xd8b7('0x3e')][_0xd8b7('0x44')](_0xd8b7('0x45'))){_0x468448['limit']=qs['limit'](_0x8fc106['query'][_0xd8b7('0x28')]);_0x468448[_0xd8b7('0x29')]=qs['offset'](_0x8fc106[_0xd8b7('0x3e')][_0xd8b7('0x29')]);}return _0x37ac5a['getAgents'](_0x468448);}})[_0xd8b7('0x1a')](function(_0x44e5be){if(_0x44e5be){return _0x44e5be?{'count':_0x2ab99d,'rows':_0x44e5be}:null;}})[_0xd8b7('0x1a')](respondWithResult(_0x4d2107,null))[_0xd8b7('0x22')](handleError(_0x4d2107,null));};exports['addApplications']=function(_0x24264c,_0x35b355,_0x4e284b){return db['WhatsappAccount'][_0xd8b7('0x65')]({'where':{'id':_0x24264c[_0xd8b7('0x5f')]['id']}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x35b355,null))['then'](function(_0x2f5606){if(_0x2f5606){return db['sequelize'][_0xd8b7('0x76')](function(_0x1cc7ec){return db['WhatsappApplication']['destroy']({'where':{'WhatsappAccountId':_0x24264c[_0xd8b7('0x5f')]['id']},'transaction':_0x1cc7ec})[_0xd8b7('0x1a')](function(_0x2fda0e){var _0x388dfa=_[_0xd8b7('0x38')](_0x24264c[_0xd8b7('0x56')],function(_0x53d399){_0x53d399[_0xd8b7('0x62')]=_0x24264c[_0xd8b7('0x5f')]['id'];return _0x53d399;});return db[_0xd8b7('0x77')][_0xd8b7('0x78')](_0x388dfa,{'transaction':_0x1cc7ec});});})[_0xd8b7('0x1a')](function(){return db[_0xd8b7('0x77')][_0xd8b7('0x79')]({'where':{'WhatsappAccountId':_0x24264c['params']['id']},'order':_0xd8b7('0x7a')});});}})[_0xd8b7('0x1a')](respondWithResult(_0x35b355,null))[_0xd8b7('0x22')](handleError(_0x35b355,null));};exports['getApplications']=function(_0x51fb48,_0x27c958,_0x1532f4){var _0x5cc2cc={};var _0x201a63={};var _0x4a7bac;var _0x49ce06;return db[_0xd8b7('0x39')]['findOne']({'where':{'id':_0x51fb48[_0xd8b7('0x5f')]['id']}})['then'](handleEntityNotFound(_0x27c958,null))['then'](function(_0x1440f3){if(_0x1440f3){_0x4a7bac=_0x1440f3;_0x201a63['model']=_[_0xd8b7('0x3f')](db[_0xd8b7('0x77')][_0xd8b7('0x3a')]);_0x201a63[_0xd8b7('0x3e')]=_[_0xd8b7('0x3f')](_0x51fb48[_0xd8b7('0x3e')]);_0x201a63[_0xd8b7('0x40')]=_[_0xd8b7('0x53')](_0x201a63[_0xd8b7('0x3d')],_0x201a63['query']);_0x5cc2cc['attributes']=_[_0xd8b7('0x53')](_0x201a63[_0xd8b7('0x3d')],qs['fields'](_0x51fb48[_0xd8b7('0x3e')][_0xd8b7('0x42')]));_0x5cc2cc['attributes']=_0x5cc2cc['attributes'][_0xd8b7('0x43')]?_0x5cc2cc[_0xd8b7('0x41')]:_0x201a63['model'];_0x5cc2cc[_0xd8b7('0x46')]=qs[_0xd8b7('0x47')](_0x51fb48[_0xd8b7('0x3e')][_0xd8b7('0x47')]);_0x5cc2cc['where']=qs[_0xd8b7('0x40')](_[_0xd8b7('0x48')](_0x51fb48[_0xd8b7('0x3e')],_0x201a63['filters']));if(_0x51fb48[_0xd8b7('0x3e')][_0xd8b7('0x49')]){_0x5cc2cc[_0xd8b7('0x4b')]=_[_0xd8b7('0x4a')](_0x5cc2cc['where'],{'$or':_[_0xd8b7('0x38')](_0x5cc2cc[_0xd8b7('0x41')],function(_0x4c9ec1){var _0xa3e03c={};_0xa3e03c[_0x4c9ec1]={'$like':'%'+_0x51fb48[_0xd8b7('0x3e')][_0xd8b7('0x49')]+'%'};return _0xa3e03c;})});}_0x5cc2cc=_['merge']({},_0x5cc2cc,_0x51fb48[_0xd8b7('0x4d')]);return _0x4a7bac['getApplications'](_0x5cc2cc);}})['then'](function(_0x2c64c3){if(_0x2c64c3){_0x49ce06=_0x2c64c3['length'];if(!_0x51fb48[_0xd8b7('0x3e')][_0xd8b7('0x44')](_0xd8b7('0x45'))){_0x5cc2cc[_0xd8b7('0x28')]=qs[_0xd8b7('0x28')](_0x51fb48[_0xd8b7('0x3e')][_0xd8b7('0x28')]);_0x5cc2cc[_0xd8b7('0x29')]=qs[_0xd8b7('0x29')](_0x51fb48['query'][_0xd8b7('0x29')]);}return _0x4a7bac[_0xd8b7('0x7b')](_0x5cc2cc);}})[_0xd8b7('0x1a')](function(_0x2370e8){if(_0x2370e8){return _0x2370e8?{'count':_0x49ce06,'rows':_0x2370e8}:null;}})[_0xd8b7('0x1a')](respondWithResult(_0x27c958,null))['catch'](handleError(_0x27c958,null));};exports[_0xd8b7('0x7c')]=function(_0x255deb,_0x43568c,_0x23fd32){var _0x3e859a={'channel':'whatsapp'};var _0x6d0e38=[];var _0x2117c7=[];var _0x42bf2a={};return db[_0xd8b7('0x39')][_0xd8b7('0x54')]({'where':{'id':_0x255deb[_0xd8b7('0x5f')]['id']},'include':[{'model':db[_0xd8b7('0x77')],'as':_0xd8b7('0x7d')}]})[_0xd8b7('0x1a')](handleEntityNotFound(_0x43568c,null))[_0xd8b7('0x1a')](function(_0x4ca4f5){_0x3e859a[_0xd8b7('0x7e')]=_0x4ca4f5;_0x3e859a[_0xd8b7('0x7f')]=_[_0xd8b7('0x80')](_0x4ca4f5[_0xd8b7('0x7d')],['priority'],[_0xd8b7('0x81')]);if(_0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0x7d')]){delete _0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0x7d')];}return db[_0xd8b7('0x82')][_0xd8b7('0x60')]();})[_0xd8b7('0x1a')](function(_0x4b7d41){if(!_0x4b7d41){throw new db[(_0xd8b7('0x83'))][(_0xd8b7('0x84'))](_0xd8b7('0x85'));}_0x6d0e38=_[_0xd8b7('0x86')](_[_0xd8b7('0x3f')](_0x4b7d41),['createdAt','updatedAt']);_0x2117c7=_[_0xd8b7('0x86')](_[_0xd8b7('0x3f')](_0x4b7d41),[_0xd8b7('0x87'),_0xd8b7('0x88'),_0xd8b7('0x89'),_0xd8b7('0x8a')]);_0x3e859a[_0xd8b7('0x56')]={'mapKey':_0xd8b7('0x8b')};if(_0x3e859a['account'][_0xd8b7('0x4c')]&&_0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0x4c')]===_0xd8b7('0x8c')){_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x8d')]=_0x255deb[_0xd8b7('0x56')][_0xd8b7('0x8e')][_0xd8b7('0x8f')](_0xd8b7('0x90'),'');_0x3e859a['body'][_0xd8b7('0x56')]=_0x255deb['body']['Body'];_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x91')]=_0x255deb[_0xd8b7('0x56')]['MessageSid'];}if(_0x3e859a[_0xd8b7('0x56')]['id']){delete _0x3e859a['body']['id'];}if(_[_0xd8b7('0x92')](_0x3e859a[_0xd8b7('0x56')]['from'])){throw new db['Sequelize']['ValidationError'](_0xd8b7('0x93'));}if(_[_0xd8b7('0x92')](_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x56')])||_0x3e859a[_0xd8b7('0x56')]['body']===''){throw new db[(_0xd8b7('0x83'))][(_0xd8b7('0x84'))](_0xd8b7('0x94'));}if(_['isNil'](_0x3e859a['body'][_0xd8b7('0x95')])){throw new db[(_0xd8b7('0x83'))][(_0xd8b7('0x84'))](_0xd8b7('0x96')+_0x2117c7);}if(!_[_0xd8b7('0x97')](_0x2117c7,_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x95')])){throw new db[(_0xd8b7('0x83'))][(_0xd8b7('0x84'))](_0xd8b7('0x98')+_0x2117c7);}_0x42bf2a[_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x95')]]=_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x8d')];return db[_0xd8b7('0x99')]['find']({'where':{'id':_0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0x8a')]},'include':[{'model':db[_0xd8b7('0x82')],'as':_0xd8b7('0x9a'),'where':_0x42bf2a,'limit':0x1,'order':[[_0xd8b7('0x88'),_0xd8b7('0x9b')]]}]});})[_0xd8b7('0x1a')](handleEntityNotFound(_0x43568c,null))['then'](function(_0x7b61d5){if(_0x7b61d5){_0x3e859a[_0xd8b7('0x9c')]=_[_0xd8b7('0x6d')](_0x7b61d5,[_0xd8b7('0x9a')]);if(_0x7b61d5['Contacts']['length']){return _0x7b61d5[_0xd8b7('0x9a')][0x0];}var _0x45492b=_['defaults'](_0x3e859a['body'],{'firstName':_0x3e859a['body'][_0xd8b7('0x8d')],'ListId':_0x7b61d5['id']});_0x45492b[_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x95')]]=_0x3e859a['body'][_0xd8b7('0x8d')];return db['CmContact'][_0xd8b7('0x55')](_0x45492b,{'fields':_0x6d0e38,'raw':!![]});}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x43568c,null))[_0xd8b7('0x1a')](function(_0x13b567){if(_0x13b567){_0x3e859a[_0xd8b7('0x9d')]=_0x13b567;var _0x125a4b={'ContactId':_0x13b567['id'],'phone':_0x3e859a[_0xd8b7('0x56')]['from'],'WhatsappAccountId':_0x255deb[_0xd8b7('0x5f')]['id']};var _0x4f2026={'ContactId':_0x13b567['id'],'WhatsappAccountId':_0x255deb['params']['id'],'closed':![]};return db[_0xd8b7('0x9e')][_0xd8b7('0x54')]({'where':_0x4f2026})[_0xd8b7('0x1a')](function(_0x2e7191){if(_0x2e7191){return[_0x2e7191,![]];}return db[_0xd8b7('0x9e')][_0xd8b7('0x55')](_0x125a4b)[_0xd8b7('0x1a')](function(_0x20dbd3){return[_0x20dbd3,!![]];});});}})['spread'](function(_0x55b116,_0x37ae77){_0x3e859a[_0xd8b7('0x9f')]=_0x55b116[_0xd8b7('0x5a')]({'plain':!![]});_0x3e859a[_0xd8b7('0x9f')][_0xd8b7('0xa0')]=![];if(_0x37ae77){if(_0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0xa1')]){_0x3e859a[_0xd8b7('0x7f')][_0xd8b7('0xa2')]({'id':0x0,'priority':_0x3e859a[_0xd8b7('0x7f')]['length']+0x1,'app':_0xd8b7('0xa3'),'appdata':_0xd8b7('0xa4'),'interval':_0xd8b7('0xa5')});}_0x3e859a['interaction'][_0xd8b7('0xa0')]=!![];}return db[_0xd8b7('0xa6')]['create']({'phone':_0x3e859a[_0xd8b7('0x56')]['from'],'messageId':_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x91')],'body':_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0x56')],'WhatsappAccountId':_0x255deb[_0xd8b7('0x5f')]['id'],'WhatsappInteractionId':_0x55b116['id'],'direction':'in','ContactId':_0x55b116[_0xd8b7('0xa7')],'AttachmentId':_0x3e859a[_0xd8b7('0x56')][_0xd8b7('0xa8')]});})[_0xd8b7('0x1a')](function(_0x43d31f){_0x3e859a[_0xd8b7('0x1f')]=_0x43d31f;if(_0x3e859a[_0xd8b7('0x9f')]['UserId']){return db['User'][_0xd8b7('0x54')]({'attributes':['id',_0xd8b7('0x33')],'where':{'id':_0x3e859a['interaction'][_0xd8b7('0xa9')]}})[_0xd8b7('0x1a')](function(_0x29d982){if(_0x29d982){_0x3e859a[_0xd8b7('0x7f')][_0xd8b7('0xaa')]({'id':0x0,'priority':0x0,'app':_0xd8b7('0xab'),'appdata':_0x29d982[_0xd8b7('0x33')]+','+(_0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0xac')]||0xa),'interval':_0xd8b7('0xa5')});}return respondWithRpcPromise('Start',_0xd8b7('0xad'),_0x3e859a);});}return respondWithRpcPromise(_0xd8b7('0xae'),_0xd8b7('0xad'),_0x3e859a);})[_0xd8b7('0x1a')](function(_0x12e3dc){if(_0x12e3dc){var _0x1bb6f3=0xc8;var _0x12102e='receiveMessage';logger['info'](_0xd8b7('0xaf'),_0x12102e,_0x1bb6f3,_0xd8b7('0xb0'));logger[_0xd8b7('0x1c')](_0xd8b7('0xb1'),_0x12102e,_0x1bb6f3,_0xd8b7('0xb0'),JSON[_0xd8b7('0xb2')](_0x12e3dc));if(_0x3e859a[_0xd8b7('0x7e')][_0xd8b7('0x4c')]===_0xd8b7('0x8c')){return _0x43568c[_0xd8b7('0x24')](_0x1bb6f3)[_0xd8b7('0x2b')]('Content-Type',_0xd8b7('0xb3'))['send'](_0xd8b7('0xb4'));}else{return _0x43568c[_0xd8b7('0x24')](_0x1bb6f3)[_0xd8b7('0x26')](_0x12e3dc);}}})[_0xd8b7('0x22')](handleError(_0x43568c,null));};exports[_0xd8b7('0x34')]=function(_0x36b94a,_0x2ba71f,_0x35e6f4){var _0x51c979,_0x1ac68d,_0x213dd9;if(_[_0xd8b7('0x92')](_0x36b94a[_0xd8b7('0x56')][_0xd8b7('0x56')])||_0x36b94a[_0xd8b7('0x56')][_0xd8b7('0x56')]===''){throw new db['Sequelize']['ValidationError'](_0xd8b7('0x94'));}if(_[_0xd8b7('0x92')](_0x36b94a[_0xd8b7('0x56')]['to'])){throw new db['Sequelize'][(_0xd8b7('0x84'))](_0xd8b7('0xb5'));}_0x51c979=_0x36b94a[_0xd8b7('0x56')]['to'];return db['WhatsappAccount'][_0xd8b7('0x54')]({'where':{'id':_0x36b94a[_0xd8b7('0x5f')]['id']},'include':[{'model':db[_0xd8b7('0x99')],'as':_0xd8b7('0xb6'),'include':[{'model':db[_0xd8b7('0x82')],'as':_0xd8b7('0x9a'),'where':{'mobile':_0x51c979},'limit':0x1,'order':[[_0xd8b7('0x88'),_0xd8b7('0x9b')]]}]}]})[_0xd8b7('0x1a')](handleEntityNotFound(_0x2ba71f,null))[_0xd8b7('0x1a')](function(_0x4a31b0){if(_0x4a31b0&&_0x4a31b0[_0xd8b7('0xb6')]){_0x1ac68d=_0x4a31b0[_0xd8b7('0x5a')]({'plain':!![]});if(_0x1ac68d[_0xd8b7('0xb6')]&&_0x1ac68d[_0xd8b7('0xb6')][_0xd8b7('0x9a')][_0xd8b7('0x43')]){return _0x1ac68d['List'][_0xd8b7('0x9a')][0x0];}return db[_0xd8b7('0x82')]['create'](_[_0xd8b7('0x13')](_0x36b94a['body'],{'firstName':_0x51c979,'mobile':_0x51c979,'phone':_0x51c979,'ListId':_0x1ac68d[_0xd8b7('0x8a')]}));}})[_0xd8b7('0x1a')](handleEntityNotFound(_0x2ba71f,null))['then'](function(_0x5e0c76){if(_0x5e0c76){_0x213dd9=_0x5e0c76;return db[_0xd8b7('0x9e')][_0xd8b7('0x54')]({'where':{'ContactId':_0x213dd9['id'],'closed':![],'WhatsappAccountId':_0x1ac68d['id']}})['then'](function(_0x59adde){if(_0x59adde){return[_0x59adde,![]];}return db[_0xd8b7('0x9e')]['create']({'UserId':_0x36b94a[_0xd8b7('0x57')]['id'],'ContactId':_0x213dd9['id'],'WhatsappAccountId':_0x1ac68d['id'],'phone':_0x51c979,'firstMsgDirection':_0xd8b7('0xb7'),'Messages':[_[_0xd8b7('0x4a')](_0x36b94a[_0xd8b7('0x56')],{'read':![],'body':_0x36b94a[_0xd8b7('0x56')][_0xd8b7('0x56')],'phone':_0x51c979,'WhatsappAccountId':_0x1ac68d['id'],'UserId':_0x36b94a['user']['id'],'ContactId':_0x213dd9['id']})]},{'include':[{'model':db[_0xd8b7('0xa6')],'as':_0xd8b7('0xb8')}]})['then'](function(_0x1bba16){return[_0x1bba16,!![]];});});}})[_0xd8b7('0x6e')](function(_0x17e62d,_0x4b5c6e){if(_0x4b5c6e){return _0x17e62d;}return db[_0xd8b7('0xa6')][_0xd8b7('0x55')](_[_0xd8b7('0x4a')](_0x36b94a[_0xd8b7('0x56')],{'read':![],'body':_0x36b94a[_0xd8b7('0x56')][_0xd8b7('0x56')],'phone':_0x51c979,'WhatsappAccountId':_0x1ac68d['id'],'WhatsappInteractionId':_0x17e62d['id'],'UserId':_0x36b94a[_0xd8b7('0x57')]['id'],'ContactId':_0x213dd9['id']}))[_0xd8b7('0x1a')](function(_0x117fa2){_0x17e62d['dataValues'][_0xd8b7('0xb8')]=[];_0x17e62d[_0xd8b7('0xb9')][_0xd8b7('0xb8')][_0xd8b7('0xa2')](_0x117fa2[_0xd8b7('0xb9')]);return _0x17e62d;});})['then'](respondWithResult(_0x2ba71f,null))[_0xd8b7('0x22')](handleError(_0x2ba71f,null));};
\ No newline at end of file
+var _0x1e99=['params','Pause','length','includeAll','options','find','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','UserProfileResource','create','describe','addDisposition','WhatsappAccountId','Disposition','getDispositions','hasOwnProperty','filter','removeDispositions','ids','addAnswer','findOne','CannedAnswer','removeAnswers','addAgents','emit','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','getAgents','User','transaction','WhatsappApplication','bulkCreate','findAndCountAll','priority','getApplications','notify','whatsapp','Applications','applications','orderBy','asc','account','Sequelize','ValidationError','difference','updatedAt','createdAt','CompanyId','mobile','twilio','from','From','replace','Body','MessageSid','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','CmList','ListId','CmContact','Contacts','DESC','list','omit','defaults','WhatsappInteraction','spread','interaction','close','created','WhatsappMessage','messageId','ContactId','AttachmentId','UserId','unshift','*,*,*,*','Start','startRouting','entity\x20found','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','List','out','Messages','dataValues','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','./whatsappAccount.socket','register','jayson/promise','client','http','request','then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','apply','update','destroy','name','send','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','VIRTUAL','merge','include','findAll','rows'];(function(_0xdd7fdf,_0x2d6685){var _0x1ec9af=function(_0x309739){while(--_0x309739){_0xdd7fdf['push'](_0xdd7fdf['shift']());}};_0x1ec9af(++_0x2d6685);}(_0x1e99,0x1d7));var _0x91e9=function(_0x585df5,_0x4d8571){_0x585df5=_0x585df5-0x0;var _0x381a14=_0x1e99[_0x585df5];return _0x381a14;};'use strict';var emlformat=require(_0x91e9('0x0'));var rimraf=require(_0x91e9('0x1'));var zipdir=require(_0x91e9('0x2'));var jsonpatch=require(_0x91e9('0x3'));var rp=require(_0x91e9('0x4'));var moment=require(_0x91e9('0x5'));var BPromise=require(_0x91e9('0x6'));var Mustache=require(_0x91e9('0x7'));var util=require(_0x91e9('0x8'));var path=require('path');var sox=require(_0x91e9('0x9'));var csv=require(_0x91e9('0xa'));var ejs=require(_0x91e9('0xb'));var fs=require('fs');var fs_extra=require(_0x91e9('0xc'));var _=require(_0x91e9('0xd'));var squel=require(_0x91e9('0xe'));var crypto=require(_0x91e9('0xf'));var jsforce=require(_0x91e9('0x10'));var deskjs=require(_0x91e9('0x11'));var toCsv=require(_0x91e9('0xa'));var querystring=require(_0x91e9('0x12'));var Papa=require('papaparse');var Redis=require(_0x91e9('0x13'));var authService=require(_0x91e9('0x14'));var qs=require(_0x91e9('0x15'));var as=require(_0x91e9('0x16'));var hardwareService=require(_0x91e9('0x17'));var logger=require(_0x91e9('0x18'))(_0x91e9('0x19'));var utils=require(_0x91e9('0x1a'));var config=require(_0x91e9('0x1b'));var licenseUtil=require(_0x91e9('0x1c'));var db=require(_0x91e9('0x1d'))['db'];config['redis']=_['defaults'](config[_0x91e9('0x1e')],{'host':_0x91e9('0x1f'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x91e9('0x1e')]));require(_0x91e9('0x20'))[_0x91e9('0x21')](socket);var jayson=require(_0x91e9('0x22'));var client=jayson[_0x91e9('0x23')][_0x91e9('0x24')]({'port':0x232c});function respondWithRpcPromise(_0x1a8606,_0x3bf0bd,_0x2b6009,_0x5596df){return new BPromise(function(_0x5a240e,_0x2c5c5e){var _0x14378d=_0x5596df||client;return _0x14378d[_0x91e9('0x25')](_0x1a8606,_0x2b6009)[_0x91e9('0x26')](function(_0x2f65ff){logger[_0x91e9('0x27')](_0x91e9('0x28'),_0x3bf0bd,_0x91e9('0x29'));logger['debug'](_0x91e9('0x2a'),_0x3bf0bd,_0x91e9('0x29'),JSON[_0x91e9('0x2b')](_0x2f65ff));if(_0x2f65ff['error']){if(_0x2f65ff[_0x91e9('0x2c')][_0x91e9('0x2d')]===0x1f4){logger[_0x91e9('0x2c')](_0x91e9('0x28'),_0x3bf0bd,_0x2f65ff[_0x91e9('0x2c')][_0x91e9('0x2e')]);return _0x2c5c5e(_0x2f65ff['error']['message']);}logger[_0x91e9('0x2c')]('WhatsappAccount,\x20%s,\x20%s',_0x3bf0bd,_0x2f65ff['error']['message']);return _0x5a240e(_0x2f65ff['error'][_0x91e9('0x2e')]);}else{logger[_0x91e9('0x27')](_0x91e9('0x28'),_0x3bf0bd,_0x91e9('0x29'));_0x5a240e(_0x2f65ff[_0x91e9('0x2f')][_0x91e9('0x2e')]);}})[_0x91e9('0x30')](function(_0x1c5dd7){logger[_0x91e9('0x2c')](_0x91e9('0x28'),_0x3bf0bd,_0x1c5dd7);_0x2c5c5e(_0x1c5dd7);});});}function respondWithStatusCode(_0x2c6e43,_0x2b0749){_0x2b0749=_0x2b0749||0xcc;return function(_0x1f7cb3){if(_0x1f7cb3){return _0x2c6e43[_0x91e9('0x31')](_0x2b0749);}return _0x2c6e43[_0x91e9('0x32')](_0x2b0749)[_0x91e9('0x33')]();};}function respondWithResult(_0x35a502,_0x126c9a){_0x126c9a=_0x126c9a||0xc8;return function(_0x4209e7){if(_0x4209e7){return _0x35a502[_0x91e9('0x32')](_0x126c9a)[_0x91e9('0x34')](_0x4209e7);}};}function respondWithFilteredResult(_0x2d60e7,_0x2c3518){return function(_0x5ad970){if(_0x5ad970){var _0x1782b4=typeof _0x2c3518[_0x91e9('0x35')]==='undefined'&&typeof _0x2c3518[_0x91e9('0x36')]===_0x91e9('0x37');var _0x411a78=_0x5ad970[_0x91e9('0x38')];var _0x12318d=_0x1782b4?0x0:_0x2c3518['offset'];var _0x52153c=_0x1782b4?_0x5ad970[_0x91e9('0x38')]:_0x2c3518[_0x91e9('0x35')]+_0x2c3518[_0x91e9('0x36')];var _0x16e144;if(_0x52153c>=_0x411a78){_0x52153c=_0x411a78;_0x16e144=0xc8;}else{_0x16e144=0xce;}_0x2d60e7[_0x91e9('0x32')](_0x16e144);return _0x2d60e7[_0x91e9('0x39')](_0x91e9('0x3a'),_0x12318d+'-'+_0x52153c+'/'+_0x411a78)['json'](_0x5ad970);}return null;};}function patchUpdates(_0x28cfcd){return function(_0x2ada5d){try{jsonpatch[_0x91e9('0x3b')](_0x2ada5d,_0x28cfcd,!![]);}catch(_0x3e249f){return BPromise['reject'](_0x3e249f);}return _0x2ada5d['save']();};}function saveUpdates(_0x457bf2,_0xc0219f){return function(_0x19d77d){if(_0x19d77d){return _0x19d77d[_0x91e9('0x3c')](_0x457bf2)[_0x91e9('0x26')](function(_0x25fc2d){return _0x25fc2d;});}return null;};}function removeEntity(_0x182961,_0x1aca9e){return function(_0x1610c1){if(_0x1610c1){return _0x1610c1['destroy']()['then'](function(){var _0x46475a=_0x1610c1['get']({'plain':!![]});var _0x2654b5='WhatsappAccounts';return db['UserProfileResource'][_0x91e9('0x3d')]({'where':{'type':_0x2654b5,'resourceId':_0x46475a['id']}})['then'](function(){return _0x1610c1;});})[_0x91e9('0x26')](function(){_0x182961[_0x91e9('0x32')](0xcc)[_0x91e9('0x33')]();});}};}function handleEntityNotFound(_0xe83352,_0x21637e){return function(_0x3c365b){if(!_0x3c365b){_0xe83352['sendStatus'](0x194);}return _0x3c365b;};}function handleError(_0x4e5bdd,_0x28f06b){_0x28f06b=_0x28f06b||0x1f4;return function(_0x1caad5){logger['error'](_0x1caad5['stack']);if(_0x1caad5['name']){delete _0x1caad5[_0x91e9('0x3e')];}_0x4e5bdd[_0x91e9('0x32')](_0x28f06b)[_0x91e9('0x3f')](_0x1caad5);};}exports['index']=function(_0x25ec4e,_0x5381ac){var _0x16ea30={'include':[{'model':db['Pause'],'as':_0x91e9('0x40')}]},_0x2dc5cf={},_0x34afc6={'count':0x0,'rows':[]};var _0x22dc06=_[_0x91e9('0x41')](db[_0x91e9('0x42')][_0x91e9('0x43')],function(_0x11136f){return{'name':_0x11136f['fieldName'],'type':_0x11136f[_0x91e9('0x44')][_0x91e9('0x45')]};});_0x2dc5cf[_0x91e9('0x46')]=_[_0x91e9('0x41')](_0x22dc06,_0x91e9('0x3e'));_0x2dc5cf[_0x91e9('0x47')]=_[_0x91e9('0x48')](_0x25ec4e[_0x91e9('0x47')]);_0x2dc5cf[_0x91e9('0x49')]=_[_0x91e9('0x4a')](_0x2dc5cf[_0x91e9('0x46')],_0x2dc5cf[_0x91e9('0x47')]);_0x16ea30[_0x91e9('0x4b')]=_[_0x91e9('0x4a')](_0x2dc5cf[_0x91e9('0x46')],qs[_0x91e9('0x4c')](_0x25ec4e[_0x91e9('0x47')][_0x91e9('0x4c')]));_0x16ea30[_0x91e9('0x4b')]=_0x16ea30['attributes']['length']?_0x16ea30[_0x91e9('0x4b')]:_0x2dc5cf[_0x91e9('0x46')];if(!_0x25ec4e[_0x91e9('0x47')]['hasOwnProperty'](_0x91e9('0x4d'))){_0x16ea30['limit']=qs[_0x91e9('0x36')](_0x25ec4e[_0x91e9('0x47')][_0x91e9('0x36')]);_0x16ea30[_0x91e9('0x35')]=qs[_0x91e9('0x35')](_0x25ec4e[_0x91e9('0x47')][_0x91e9('0x35')]);}_0x16ea30[_0x91e9('0x4e')]=qs['sort'](_0x25ec4e['query'][_0x91e9('0x4f')]);_0x16ea30[_0x91e9('0x50')]=qs['filters'](_[_0x91e9('0x51')](_0x25ec4e[_0x91e9('0x47')],_0x2dc5cf[_0x91e9('0x49')]),_0x22dc06);if(_0x25ec4e['query']['filter']){_0x16ea30[_0x91e9('0x50')]=_['merge'](_0x16ea30[_0x91e9('0x50')],{'$or':_[_0x91e9('0x41')](_0x22dc06,function(_0x3d716f){if(_0x3d716f[_0x91e9('0x44')]!==_0x91e9('0x52')){var _0xb92e3c={};_0xb92e3c[_0x3d716f[_0x91e9('0x3e')]]={'$like':'%'+_0x25ec4e[_0x91e9('0x47')]['filter']+'%'};return _0xb92e3c;}})});}_0x16ea30=_[_0x91e9('0x53')]({},_0x16ea30,_0x25ec4e['options']);var _0x4a2c83={'where':_0x16ea30['where']};return db[_0x91e9('0x42')][_0x91e9('0x38')](_0x4a2c83)[_0x91e9('0x26')](function(_0x2707bf){_0x34afc6[_0x91e9('0x38')]=_0x2707bf;if(_0x25ec4e['query']['includeAll']){_0x16ea30[_0x91e9('0x54')]=[{'all':!![]}];}return db[_0x91e9('0x42')][_0x91e9('0x55')](_0x16ea30);})['then'](function(_0x254753){_0x34afc6[_0x91e9('0x56')]=_0x254753;return _0x34afc6;})[_0x91e9('0x26')](respondWithFilteredResult(_0x5381ac,_0x16ea30))[_0x91e9('0x30')](handleError(_0x5381ac,null));};exports['show']=function(_0x2bf5d3,_0x8f9202){var _0x261e71={'raw':![],'where':{'id':_0x2bf5d3[_0x91e9('0x57')]['id']},'include':[{'model':db[_0x91e9('0x58')],'as':_0x91e9('0x40')}]},_0x82c82f={};_0x82c82f[_0x91e9('0x46')]=_[_0x91e9('0x48')](db['WhatsappAccount'][_0x91e9('0x43')]);_0x82c82f[_0x91e9('0x47')]=_[_0x91e9('0x48')](_0x2bf5d3[_0x91e9('0x47')]);_0x82c82f['filters']=_[_0x91e9('0x4a')](_0x82c82f[_0x91e9('0x46')],_0x82c82f[_0x91e9('0x47')]);_0x261e71['attributes']=_[_0x91e9('0x4a')](_0x82c82f[_0x91e9('0x46')],qs[_0x91e9('0x4c')](_0x2bf5d3[_0x91e9('0x47')][_0x91e9('0x4c')]));_0x261e71[_0x91e9('0x4b')]=_0x261e71[_0x91e9('0x4b')][_0x91e9('0x59')]?_0x261e71[_0x91e9('0x4b')]:_0x82c82f[_0x91e9('0x46')];if(_0x2bf5d3['query'][_0x91e9('0x5a')]){_0x261e71['include']=[{'all':!![]}];}_0x261e71=_[_0x91e9('0x53')]({},_0x261e71,_0x2bf5d3[_0x91e9('0x5b')]);return db[_0x91e9('0x42')][_0x91e9('0x5c')](_0x261e71)[_0x91e9('0x26')](handleEntityNotFound(_0x8f9202,null))[_0x91e9('0x26')](respondWithResult(_0x8f9202,null))[_0x91e9('0x30')](handleError(_0x8f9202,null));};exports['create']=function(_0x4deb37,_0x5040b9){return db[_0x91e9('0x42')]['create'](_0x4deb37[_0x91e9('0x5d')],{})['then'](function(_0x3dbca7){var _0x4a6177=_0x4deb37[_0x91e9('0x5e')][_0x91e9('0x5f')]({'plain':!![]});if(!_0x4a6177)throw new Error(_0x91e9('0x60'));if(_0x4a6177['role']==='user'){var _0x3c12c3=_0x3dbca7[_0x91e9('0x5f')]({'plain':!![]});var _0x2d659b='WhatsappAccounts';return db[_0x91e9('0x61')][_0x91e9('0x5c')]({'where':{'name':_0x2d659b,'userProfileId':_0x4a6177[_0x91e9('0x62')]},'raw':!![]})[_0x91e9('0x26')](function(_0x3d2c73){if(_0x3d2c73&&_0x3d2c73['autoAssociation']===0x0){return db[_0x91e9('0x63')][_0x91e9('0x64')]({'name':_0x3c12c3[_0x91e9('0x3e')],'resourceId':_0x3c12c3['id'],'type':_0x3d2c73[_0x91e9('0x3e')],'sectionId':_0x3d2c73['id']},{})[_0x91e9('0x26')](function(){return _0x3dbca7;});}else{return _0x3dbca7;}})[_0x91e9('0x30')](function(_0x1156fa){logger[_0x91e9('0x2c')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1156fa);throw _0x1156fa;});}return _0x3dbca7;})[_0x91e9('0x26')](respondWithResult(_0x5040b9,0xc9))['catch'](handleError(_0x5040b9,null));};exports[_0x91e9('0x3c')]=function(_0x1ff7fa,_0x4959df){if(_0x1ff7fa['body']['id']){delete _0x1ff7fa[_0x91e9('0x5d')]['id'];}return db[_0x91e9('0x42')][_0x91e9('0x5c')]({'where':{'id':_0x1ff7fa[_0x91e9('0x57')]['id']},'include':[{'model':db[_0x91e9('0x58')],'as':_0x91e9('0x40')}]})['then'](handleEntityNotFound(_0x4959df,null))[_0x91e9('0x26')](saveUpdates(_0x1ff7fa[_0x91e9('0x5d')],null))[_0x91e9('0x26')](respondWithResult(_0x4959df,null))[_0x91e9('0x30')](handleError(_0x4959df,null));};exports[_0x91e9('0x3d')]=function(_0x1e4993,_0x2ea240){return db[_0x91e9('0x42')][_0x91e9('0x5c')]({'where':{'id':_0x1e4993[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x2ea240,null))['then'](removeEntity(_0x2ea240,null))['catch'](handleError(_0x2ea240,null));};exports['describe']=function(_0x503091,_0x3a8c51){return db['WhatsappAccount'][_0x91e9('0x65')]()[_0x91e9('0x26')](respondWithResult(_0x3a8c51,null))[_0x91e9('0x30')](handleError(_0x3a8c51,null));};exports[_0x91e9('0x66')]=function(_0x55f634,_0x1261b7,_0x4d54ea){if(_0x55f634['body']['id']){delete _0x55f634[_0x91e9('0x5d')]['id'];}return db[_0x91e9('0x42')]['find']({'where':{'id':_0x55f634[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x1261b7,null))[_0x91e9('0x26')](function(_0x4fb7c3){if(_0x4fb7c3){_0x55f634['body'][_0x91e9('0x67')]=_0x4fb7c3['id'];return db[_0x91e9('0x68')][_0x91e9('0x64')](_0x55f634[_0x91e9('0x5d')]);}})[_0x91e9('0x26')](respondWithResult(_0x1261b7,null))[_0x91e9('0x30')](handleError(_0x1261b7,null));};exports[_0x91e9('0x69')]=function(_0x58c4c3,_0x4a9072,_0x281566){var _0x213626={'raw':![],'where':{}};var _0x5358bc={};var _0x4c5cbe={'count':0x0,'rows':[]};return db[_0x91e9('0x42')]['findOne']({'where':{'id':_0x58c4c3[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x4a9072,null))[_0x91e9('0x26')](function(_0x14d3ba){if(_0x14d3ba){_0x5358bc['model']=_[_0x91e9('0x48')](db[_0x91e9('0x68')]['rawAttributes']);_0x5358bc['query']=_[_0x91e9('0x48')](_0x58c4c3[_0x91e9('0x47')]);_0x5358bc['filters']=_[_0x91e9('0x4a')](_0x5358bc[_0x91e9('0x46')],_0x5358bc['query']);_0x213626['attributes']=_[_0x91e9('0x4a')](_0x5358bc[_0x91e9('0x46')],qs[_0x91e9('0x4c')](_0x58c4c3['query']['fields']));_0x213626[_0x91e9('0x4b')]=_0x213626[_0x91e9('0x4b')][_0x91e9('0x59')]?_0x213626[_0x91e9('0x4b')]:_0x5358bc[_0x91e9('0x46')];if(!_0x58c4c3[_0x91e9('0x47')][_0x91e9('0x6a')]('nolimit')){_0x213626['limit']=qs['limit'](_0x58c4c3[_0x91e9('0x47')]['limit']);_0x213626[_0x91e9('0x35')]=qs[_0x91e9('0x35')](_0x58c4c3[_0x91e9('0x47')]['offset']);}_0x213626[_0x91e9('0x4e')]=qs[_0x91e9('0x4f')](_0x58c4c3[_0x91e9('0x47')]['sort']);_0x213626[_0x91e9('0x50')]=qs['filters'](_[_0x91e9('0x51')](_0x58c4c3['query'],_0x5358bc[_0x91e9('0x49')]));_0x213626[_0x91e9('0x50')][_0x91e9('0x67')]=_0x14d3ba['id'];if(_0x58c4c3[_0x91e9('0x47')][_0x91e9('0x6b')]){_0x213626['where']=_['merge'](_0x213626[_0x91e9('0x50')],{'$or':_['map'](_0x213626[_0x91e9('0x4b')],function(_0x1d7625){var _0x736250={};_0x736250[_0x1d7625]={'$like':'%'+_0x58c4c3['query']['filter']+'%'};return _0x736250;})});}_0x213626=_[_0x91e9('0x53')]({},_0x213626,_0x58c4c3[_0x91e9('0x5b')]);return db[_0x91e9('0x68')]['count']({'where':_0x213626[_0x91e9('0x50')]})['then'](function(_0x32fe1e){_0x4c5cbe[_0x91e9('0x38')]=_0x32fe1e;if(_0x58c4c3[_0x91e9('0x47')][_0x91e9('0x5a')]){_0x213626[_0x91e9('0x54')]=[{'all':!![]}];}return db[_0x91e9('0x68')][_0x91e9('0x55')](_0x213626);})[_0x91e9('0x26')](function(_0xb47e8f){_0x4c5cbe[_0x91e9('0x56')]=_0xb47e8f;return _0x4c5cbe;});}})[_0x91e9('0x26')](respondWithFilteredResult(_0x4a9072,_0x213626))[_0x91e9('0x30')](handleError(_0x4a9072,null));};exports['removeDispositions']=function(_0x3b594a,_0x36b4a3,_0x46b0d6){return db[_0x91e9('0x42')]['find']({'where':{'id':_0x3b594a[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x36b4a3,null))['then'](function(_0x15aa2e){if(_0x15aa2e){return _0x15aa2e[_0x91e9('0x6c')](_0x3b594a['query'][_0x91e9('0x6d')]);}})[_0x91e9('0x26')](respondWithStatusCode(_0x36b4a3,null))[_0x91e9('0x30')](handleError(_0x36b4a3,null));};exports[_0x91e9('0x6e')]=function(_0x3841d7,_0x4559f9,_0x3311d5){if(_0x3841d7['body']['id']){delete _0x3841d7[_0x91e9('0x5d')]['id'];}return db[_0x91e9('0x42')][_0x91e9('0x5c')]({'where':{'id':_0x3841d7[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x4559f9,null))[_0x91e9('0x26')](function(_0x3410b6){if(_0x3410b6){_0x3841d7[_0x91e9('0x5d')][_0x91e9('0x67')]=_0x3410b6['id'];return db['CannedAnswer'][_0x91e9('0x64')](_0x3841d7[_0x91e9('0x5d')]);}})['then'](respondWithResult(_0x4559f9,null))[_0x91e9('0x30')](handleError(_0x4559f9,null));};exports['getAnswers']=function(_0x18921c,_0xd17177,_0x260c29){var _0x393e35={'raw':![],'where':{}};var _0x1265d3={};var _0x2783ff={'count':0x0,'rows':[]};return db['WhatsappAccount'][_0x91e9('0x6f')]({'where':{'id':_0x18921c[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0xd17177,null))[_0x91e9('0x26')](function(_0x207be5){if(_0x207be5){_0x1265d3[_0x91e9('0x46')]=_[_0x91e9('0x48')](db[_0x91e9('0x70')][_0x91e9('0x43')]);_0x1265d3[_0x91e9('0x47')]=_[_0x91e9('0x48')](_0x18921c[_0x91e9('0x47')]);_0x1265d3[_0x91e9('0x49')]=_[_0x91e9('0x4a')](_0x1265d3[_0x91e9('0x46')],_0x1265d3[_0x91e9('0x47')]);_0x393e35[_0x91e9('0x4b')]=_[_0x91e9('0x4a')](_0x1265d3[_0x91e9('0x46')],qs[_0x91e9('0x4c')](_0x18921c['query'][_0x91e9('0x4c')]));_0x393e35[_0x91e9('0x4b')]=_0x393e35[_0x91e9('0x4b')][_0x91e9('0x59')]?_0x393e35['attributes']:_0x1265d3[_0x91e9('0x46')];if(!_0x18921c[_0x91e9('0x47')]['hasOwnProperty']('nolimit')){_0x393e35[_0x91e9('0x36')]=qs[_0x91e9('0x36')](_0x18921c[_0x91e9('0x47')][_0x91e9('0x36')]);_0x393e35[_0x91e9('0x35')]=qs['offset'](_0x18921c[_0x91e9('0x47')][_0x91e9('0x35')]);}_0x393e35[_0x91e9('0x4e')]=qs['sort'](_0x18921c[_0x91e9('0x47')]['sort']);_0x393e35[_0x91e9('0x50')]=qs[_0x91e9('0x49')](_[_0x91e9('0x51')](_0x18921c['query'],_0x1265d3[_0x91e9('0x49')]));_0x393e35[_0x91e9('0x50')][_0x91e9('0x67')]=_0x207be5['id'];if(_0x18921c[_0x91e9('0x47')]['filter']){_0x393e35['where']=_[_0x91e9('0x53')](_0x393e35[_0x91e9('0x50')],{'$or':_['map'](_0x393e35[_0x91e9('0x4b')],function(_0x56020e){var _0x66a8e2={};_0x66a8e2[_0x56020e]={'$like':'%'+_0x18921c[_0x91e9('0x47')][_0x91e9('0x6b')]+'%'};return _0x66a8e2;})});}_0x393e35=_[_0x91e9('0x53')]({},_0x393e35,_0x18921c['options']);return db[_0x91e9('0x70')][_0x91e9('0x38')]({'where':_0x393e35[_0x91e9('0x50')]})['then'](function(_0x5bf608){_0x2783ff[_0x91e9('0x38')]=_0x5bf608;if(_0x18921c['query'][_0x91e9('0x5a')]){_0x393e35[_0x91e9('0x54')]=[{'all':!![]}];}return db[_0x91e9('0x70')][_0x91e9('0x55')](_0x393e35);})[_0x91e9('0x26')](function(_0x112dcd){_0x2783ff['rows']=_0x112dcd;return _0x2783ff;});}})[_0x91e9('0x26')](respondWithFilteredResult(_0xd17177,_0x393e35))[_0x91e9('0x30')](handleError(_0xd17177,null));};exports[_0x91e9('0x71')]=function(_0x1d6b83,_0x4b2cb5,_0xf62d78){return db[_0x91e9('0x42')][_0x91e9('0x5c')]({'where':{'id':_0x1d6b83[_0x91e9('0x57')]['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x4b2cb5,null))[_0x91e9('0x26')](function(_0x1562f6){if(_0x1562f6){return _0x1562f6[_0x91e9('0x71')](_0x1d6b83[_0x91e9('0x47')]['ids']);}})['then'](respondWithStatusCode(_0x4b2cb5,null))[_0x91e9('0x30')](handleError(_0x4b2cb5,null));};exports['addAgents']=function(_0x1055eb,_0x4530e7,_0x52e7db){return db[_0x91e9('0x42')]['find']({'where':{'id':_0x1055eb[_0x91e9('0x57')]['id']}})['then'](handleEntityNotFound(_0x4530e7,null))[_0x91e9('0x26')](function(_0x175f89){if(_0x175f89){return _0x175f89[_0x91e9('0x72')](_0x1055eb[_0x91e9('0x5d')]['ids'],_['omit'](_0x1055eb[_0x91e9('0x5d')],[_0x91e9('0x6d'),'id'])||{})['spread'](function(_0x1321f1){for(var _0x4f7f9=0x0;_0x4f7f9<_0x1055eb[_0x91e9('0x5d')][_0x91e9('0x6d')]['length'];_0x4f7f9+=0x1){socket[_0x91e9('0x73')](_0x91e9('0x74'),{'UserId':Number(_0x1055eb[_0x91e9('0x5d')][_0x91e9('0x6d')][_0x4f7f9]),'WhatsappAccountId':Number(_0x1055eb[_0x91e9('0x57')]['id'])});}return _0x1321f1;});}})[_0x91e9('0x26')](respondWithResult(_0x4530e7,null))['catch'](handleError(_0x4530e7,null));};exports['removeAgents']=function(_0x160e7a,_0x2d5276,_0x450e3f){return db['WhatsappAccount'][_0x91e9('0x5c')]({'where':{'id':_0x160e7a['params']['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x2d5276,null))[_0x91e9('0x26')](function(_0x3819c2){if(_0x3819c2){return _0x3819c2[_0x91e9('0x75')](_0x160e7a[_0x91e9('0x47')][_0x91e9('0x6d')])[_0x91e9('0x26')](function(){if(_[_0x91e9('0x76')](_0x160e7a[_0x91e9('0x47')][_0x91e9('0x6d')])){for(var _0x169270=0x0;_0x169270<_0x160e7a[_0x91e9('0x47')][_0x91e9('0x6d')][_0x91e9('0x59')];_0x169270+=0x1){socket[_0x91e9('0x73')](_0x91e9('0x77'),{'UserId':Number(_0x160e7a[_0x91e9('0x47')][_0x91e9('0x6d')][_0x169270]),'WhatsappAccountId':Number(_0x160e7a['params']['id'])});}}else{socket['emit'](_0x91e9('0x77'),{'UserId':Number(_0x160e7a[_0x91e9('0x47')][_0x91e9('0x6d')]),'WhatsappAccountId':Number(_0x160e7a['params']['id'])});}});}})['then'](respondWithStatusCode(_0x2d5276,null))['catch'](handleError(_0x2d5276,null));};exports[_0x91e9('0x78')]=function(_0x33ba81,_0x253026,_0x2d2fd1){var _0x5c978d={};var _0x105182={};var _0xe21024;var _0x577d6e;return db['WhatsappAccount']['findOne']({'where':{'id':_0x33ba81['params']['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x253026,null))[_0x91e9('0x26')](function(_0x16eee4){if(_0x16eee4){_0xe21024=_0x16eee4;_0x105182[_0x91e9('0x46')]=_[_0x91e9('0x48')](db[_0x91e9('0x79')]['rawAttributes']);_0x105182[_0x91e9('0x47')]=_[_0x91e9('0x48')](_0x33ba81[_0x91e9('0x47')]);_0x105182['filters']=_[_0x91e9('0x4a')](_0x105182['model'],_0x105182[_0x91e9('0x47')]);_0x5c978d[_0x91e9('0x4b')]=_['intersection'](_0x105182[_0x91e9('0x46')],qs[_0x91e9('0x4c')](_0x33ba81[_0x91e9('0x47')][_0x91e9('0x4c')]));_0x5c978d[_0x91e9('0x4b')]=_0x5c978d[_0x91e9('0x4b')]['length']?_0x5c978d['attributes']:_0x105182[_0x91e9('0x46')];_0x5c978d[_0x91e9('0x4e')]=qs[_0x91e9('0x4f')](_0x33ba81['query']['sort']);_0x5c978d[_0x91e9('0x50')]=qs['filters'](_[_0x91e9('0x51')](_0x33ba81['query'],_0x105182[_0x91e9('0x49')]));if(_0x33ba81[_0x91e9('0x47')][_0x91e9('0x6b')]){_0x5c978d[_0x91e9('0x50')]=_[_0x91e9('0x53')](_0x5c978d[_0x91e9('0x50')],{'$or':_['map'](_0x5c978d[_0x91e9('0x4b')],function(_0x1451da){var _0x316e82={};_0x316e82[_0x1451da]={'$like':'%'+_0x33ba81[_0x91e9('0x47')][_0x91e9('0x6b')]+'%'};return _0x316e82;})});}_0x5c978d=_[_0x91e9('0x53')]({},_0x5c978d,_0x33ba81[_0x91e9('0x5b')]);return _0xe21024[_0x91e9('0x78')](_0x5c978d);}})[_0x91e9('0x26')](function(_0x1d114c){if(_0x1d114c){_0x577d6e=_0x1d114c[_0x91e9('0x59')];if(!_0x33ba81[_0x91e9('0x47')][_0x91e9('0x6a')]('nolimit')){_0x5c978d[_0x91e9('0x36')]=qs[_0x91e9('0x36')](_0x33ba81[_0x91e9('0x47')][_0x91e9('0x36')]);_0x5c978d['offset']=qs[_0x91e9('0x35')](_0x33ba81[_0x91e9('0x47')][_0x91e9('0x35')]);}return _0xe21024['getAgents'](_0x5c978d);}})[_0x91e9('0x26')](function(_0x2e9303){if(_0x2e9303){return _0x2e9303?{'count':_0x577d6e,'rows':_0x2e9303}:null;}})[_0x91e9('0x26')](respondWithResult(_0x253026,null))[_0x91e9('0x30')](handleError(_0x253026,null));};exports['addApplications']=function(_0x4b2610,_0x786641,_0x267e77){return db[_0x91e9('0x42')][_0x91e9('0x6f')]({'where':{'id':_0x4b2610['params']['id']}})['then'](handleEntityNotFound(_0x786641,null))[_0x91e9('0x26')](function(_0x3a0abc){if(_0x3a0abc){return db['sequelize'][_0x91e9('0x7a')](function(_0x5ae3dc){return db[_0x91e9('0x7b')][_0x91e9('0x3d')]({'where':{'WhatsappAccountId':_0x4b2610['params']['id']},'transaction':_0x5ae3dc})[_0x91e9('0x26')](function(_0x4e3bdf){var _0x477423=_[_0x91e9('0x41')](_0x4b2610['body'],function(_0x1ce5aa){_0x1ce5aa[_0x91e9('0x67')]=_0x4b2610[_0x91e9('0x57')]['id'];return _0x1ce5aa;});return db[_0x91e9('0x7b')][_0x91e9('0x7c')](_0x477423,{'transaction':_0x5ae3dc});});})['then'](function(){return db['WhatsappApplication'][_0x91e9('0x7d')]({'where':{'WhatsappAccountId':_0x4b2610[_0x91e9('0x57')]['id']},'order':_0x91e9('0x7e')});});}})['then'](respondWithResult(_0x786641,null))[_0x91e9('0x30')](handleError(_0x786641,null));};exports[_0x91e9('0x7f')]=function(_0x471110,_0x42d4dd,_0x586ffb){var _0x7ae96e={};var _0x5dd596={};var _0x4634a7;var _0x3ecc64;return db[_0x91e9('0x42')][_0x91e9('0x6f')]({'where':{'id':_0x471110['params']['id']}})[_0x91e9('0x26')](handleEntityNotFound(_0x42d4dd,null))[_0x91e9('0x26')](function(_0x5eb323){if(_0x5eb323){_0x4634a7=_0x5eb323;_0x5dd596[_0x91e9('0x46')]=_['keys'](db[_0x91e9('0x7b')][_0x91e9('0x43')]);_0x5dd596[_0x91e9('0x47')]=_[_0x91e9('0x48')](_0x471110[_0x91e9('0x47')]);_0x5dd596[_0x91e9('0x49')]=_[_0x91e9('0x4a')](_0x5dd596[_0x91e9('0x46')],_0x5dd596[_0x91e9('0x47')]);_0x7ae96e[_0x91e9('0x4b')]=_[_0x91e9('0x4a')](_0x5dd596['model'],qs[_0x91e9('0x4c')](_0x471110['query']['fields']));_0x7ae96e[_0x91e9('0x4b')]=_0x7ae96e[_0x91e9('0x4b')][_0x91e9('0x59')]?_0x7ae96e['attributes']:_0x5dd596[_0x91e9('0x46')];_0x7ae96e[_0x91e9('0x4e')]=qs[_0x91e9('0x4f')](_0x471110[_0x91e9('0x47')][_0x91e9('0x4f')]);_0x7ae96e[_0x91e9('0x50')]=qs[_0x91e9('0x49')](_['pick'](_0x471110[_0x91e9('0x47')],_0x5dd596[_0x91e9('0x49')]));if(_0x471110[_0x91e9('0x47')][_0x91e9('0x6b')]){_0x7ae96e['where']=_[_0x91e9('0x53')](_0x7ae96e['where'],{'$or':_['map'](_0x7ae96e['attributes'],function(_0x2925f4){var _0xafa982={};_0xafa982[_0x2925f4]={'$like':'%'+_0x471110[_0x91e9('0x47')][_0x91e9('0x6b')]+'%'};return _0xafa982;})});}_0x7ae96e=_[_0x91e9('0x53')]({},_0x7ae96e,_0x471110['options']);return _0x4634a7[_0x91e9('0x7f')](_0x7ae96e);}})[_0x91e9('0x26')](function(_0xba23f2){if(_0xba23f2){_0x3ecc64=_0xba23f2['length'];if(!_0x471110[_0x91e9('0x47')]['hasOwnProperty'](_0x91e9('0x4d'))){_0x7ae96e['limit']=qs[_0x91e9('0x36')](_0x471110[_0x91e9('0x47')][_0x91e9('0x36')]);_0x7ae96e[_0x91e9('0x35')]=qs[_0x91e9('0x35')](_0x471110['query'][_0x91e9('0x35')]);}return _0x4634a7[_0x91e9('0x7f')](_0x7ae96e);}})[_0x91e9('0x26')](function(_0x4a71f9){if(_0x4a71f9){return _0x4a71f9?{'count':_0x3ecc64,'rows':_0x4a71f9}:null;}})[_0x91e9('0x26')](respondWithResult(_0x42d4dd,null))['catch'](handleError(_0x42d4dd,null));};exports[_0x91e9('0x80')]=function(_0xd8b488,_0x5873fb,_0x3fe242){var _0x50e879={'channel':_0x91e9('0x81')};var _0x5b16e3=[];var _0x51dead=[];var _0x1beb3e={};return db[_0x91e9('0x42')][_0x91e9('0x5c')]({'where':{'id':_0xd8b488['params']['id']},'include':[{'model':db['WhatsappApplication'],'as':_0x91e9('0x82')}]})[_0x91e9('0x26')](handleEntityNotFound(_0x5873fb,null))[_0x91e9('0x26')](function(_0x46f154){_0x50e879['account']=_0x46f154;_0x50e879[_0x91e9('0x83')]=_[_0x91e9('0x84')](_0x46f154[_0x91e9('0x82')],[_0x91e9('0x7e')],[_0x91e9('0x85')]);if(_0x50e879[_0x91e9('0x86')][_0x91e9('0x82')]){delete _0x50e879[_0x91e9('0x86')]['Applications'];}return db['CmContact'][_0x91e9('0x65')]();})[_0x91e9('0x26')](function(_0x258ead){if(!_0x258ead){throw new db[(_0x91e9('0x87'))][(_0x91e9('0x88'))]('no\x20available\x20attributes');}_0x5b16e3=_[_0x91e9('0x89')](_['keys'](_0x258ead),['createdAt',_0x91e9('0x8a')]);_0x51dead=_[_0x91e9('0x89')](_['keys'](_0x258ead),[_0x91e9('0x8b'),_0x91e9('0x8a'),_0x91e9('0x8c'),'ListId']);_0x50e879[_0x91e9('0x5d')]={'mapKey':_0x91e9('0x8d')};if(_0x50e879[_0x91e9('0x86')]['type']&&_0x50e879['account'][_0x91e9('0x44')]===_0x91e9('0x8e')){_0x50e879[_0x91e9('0x5d')][_0x91e9('0x8f')]=_0xd8b488['body'][_0x91e9('0x90')][_0x91e9('0x91')]('whatsapp:','');_0x50e879[_0x91e9('0x5d')][_0x91e9('0x5d')]=_0xd8b488['body'][_0x91e9('0x92')];_0x50e879[_0x91e9('0x5d')]['messageId']=_0xd8b488[_0x91e9('0x5d')][_0x91e9('0x93')];}if(_0x50e879[_0x91e9('0x5d')]['id']){delete _0x50e879[_0x91e9('0x5d')]['id'];}if(_['isNil'](_0x50e879[_0x91e9('0x5d')]['from'])){throw new db[(_0x91e9('0x87'))][(_0x91e9('0x88'))](_0x91e9('0x94'));}if(_[_0x91e9('0x95')](_0x50e879[_0x91e9('0x5d')]['body'])||_0x50e879[_0x91e9('0x5d')][_0x91e9('0x5d')]===''){throw new db[(_0x91e9('0x87'))][(_0x91e9('0x88'))](_0x91e9('0x96'));}if(_[_0x91e9('0x95')](_0x50e879['body'][_0x91e9('0x97')])){throw new db[(_0x91e9('0x87'))]['ValidationError'](_0x91e9('0x98')+_0x51dead);}if(!_[_0x91e9('0x99')](_0x51dead,_0x50e879['body']['mapKey'])){throw new db[(_0x91e9('0x87'))][(_0x91e9('0x88'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x51dead);}_0x1beb3e[_0x50e879['body'][_0x91e9('0x97')]]=_0x50e879[_0x91e9('0x5d')][_0x91e9('0x8f')];return db[_0x91e9('0x9a')][_0x91e9('0x5c')]({'where':{'id':_0x50e879[_0x91e9('0x86')][_0x91e9('0x9b')]},'include':[{'model':db[_0x91e9('0x9c')],'as':_0x91e9('0x9d'),'where':_0x1beb3e,'limit':0x1,'order':[[_0x91e9('0x8a'),_0x91e9('0x9e')]]}]});})[_0x91e9('0x26')](handleEntityNotFound(_0x5873fb,null))[_0x91e9('0x26')](function(_0x158e8c){if(_0x158e8c){_0x50e879[_0x91e9('0x9f')]=_[_0x91e9('0xa0')](_0x158e8c,['Contacts']);if(_0x158e8c[_0x91e9('0x9d')][_0x91e9('0x59')]){return _0x158e8c[_0x91e9('0x9d')][0x0];}var _0x5c2127=_[_0x91e9('0xa1')](_0x50e879[_0x91e9('0x5d')],{'firstName':_0x50e879[_0x91e9('0x5d')][_0x91e9('0x8f')],'ListId':_0x158e8c['id']});_0x5c2127[_0x50e879[_0x91e9('0x5d')]['mapKey']]=_0x50e879['body'][_0x91e9('0x8f')];return db[_0x91e9('0x9c')][_0x91e9('0x64')](_0x5c2127,{'fields':_0x5b16e3,'raw':!![]});}})[_0x91e9('0x26')](handleEntityNotFound(_0x5873fb,null))[_0x91e9('0x26')](function(_0x1ac231){if(_0x1ac231){_0x50e879['contact']=_0x1ac231;var _0xf5e81f={'ContactId':_0x1ac231['id'],'phone':_0x50e879[_0x91e9('0x5d')][_0x91e9('0x8f')],'WhatsappAccountId':_0xd8b488['params']['id']};var _0x481875={'ContactId':_0x1ac231['id'],'WhatsappAccountId':_0xd8b488[_0x91e9('0x57')]['id'],'closed':![]};return db['WhatsappInteraction'][_0x91e9('0x5c')]({'where':_0x481875})[_0x91e9('0x26')](function(_0x38be68){if(_0x38be68){return[_0x38be68,![]];}return db[_0x91e9('0xa2')][_0x91e9('0x64')](_0xf5e81f)[_0x91e9('0x26')](function(_0x5191ae){return[_0x5191ae,!![]];});});}})[_0x91e9('0xa3')](function(_0x503897,_0x21839d){_0x50e879[_0x91e9('0xa4')]=_0x503897[_0x91e9('0x5f')]({'plain':!![]});_0x50e879[_0x91e9('0xa4')]['created']=![];if(_0x21839d){if(_0x50e879[_0x91e9('0x86')]['autoclose']){_0x50e879[_0x91e9('0x83')]['push']({'id':0x0,'priority':_0x50e879[_0x91e9('0x83')][_0x91e9('0x59')]+0x1,'app':_0x91e9('0xa5'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x50e879[_0x91e9('0xa4')][_0x91e9('0xa6')]=!![];}return db[_0x91e9('0xa7')][_0x91e9('0x64')]({'phone':_0x50e879[_0x91e9('0x5d')][_0x91e9('0x8f')],'messageId':_0x50e879[_0x91e9('0x5d')][_0x91e9('0xa8')],'body':_0x50e879[_0x91e9('0x5d')][_0x91e9('0x5d')],'WhatsappAccountId':_0xd8b488[_0x91e9('0x57')]['id'],'WhatsappInteractionId':_0x503897['id'],'direction':'in','ContactId':_0x503897[_0x91e9('0xa9')],'AttachmentId':_0x50e879[_0x91e9('0x5d')][_0x91e9('0xaa')]});})[_0x91e9('0x26')](function(_0x478682){_0x50e879[_0x91e9('0x2e')]=_0x478682;if(_0x50e879['interaction'][_0x91e9('0xab')]){return db[_0x91e9('0x79')]['find']({'attributes':['id',_0x91e9('0x3e')],'where':{'id':_0x50e879[_0x91e9('0xa4')][_0x91e9('0xab')]}})[_0x91e9('0x26')](function(_0x2e99f3){if(_0x2e99f3){_0x50e879[_0x91e9('0x83')][_0x91e9('0xac')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2e99f3['name']+','+(_0x50e879['account']['waitForTheAssignedAgent']||0xa),'interval':_0x91e9('0xad')});}return respondWithRpcPromise(_0x91e9('0xae'),_0x91e9('0xaf'),_0x50e879);});}return respondWithRpcPromise(_0x91e9('0xae'),'startRouting',_0x50e879);})[_0x91e9('0x26')](function(_0x3c4c75){if(_0x3c4c75){var _0xe9cb25=0xc8;var _0x543262='receiveMessage';logger['info'](_0x91e9('0x2a'),_0x543262,_0xe9cb25,_0x91e9('0xb0'));logger[_0x91e9('0xb1')](_0x91e9('0xb2'),_0x543262,_0xe9cb25,'entity\x20found',JSON[_0x91e9('0x2b')](_0x3c4c75));if(_0x50e879['account'][_0x91e9('0x44')]===_0x91e9('0x8e')){return _0x5873fb[_0x91e9('0x32')](_0xe9cb25)[_0x91e9('0x39')](_0x91e9('0xb3'),_0x91e9('0xb4'))[_0x91e9('0x3f')](_0x91e9('0xb5'));}else{return _0x5873fb[_0x91e9('0x32')](_0xe9cb25)['json'](_0x3c4c75);}}})[_0x91e9('0x30')](handleError(_0x5873fb,null));};exports[_0x91e9('0x3f')]=function(_0x587171,_0x54fa55,_0x29db06){var _0x3a191f,_0x30eb36,_0x44cce6;if(_[_0x91e9('0x95')](_0x587171[_0x91e9('0x5d')][_0x91e9('0x5d')])||_0x587171[_0x91e9('0x5d')][_0x91e9('0x5d')]===''){throw new db[(_0x91e9('0x87'))][(_0x91e9('0x88'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x587171[_0x91e9('0x5d')]['to'])){throw new db[(_0x91e9('0x87'))]['ValidationError']('to\x20is\x20mandatory');}_0x3a191f=_0x587171['body']['to'];return db[_0x91e9('0x42')]['find']({'where':{'id':_0x587171[_0x91e9('0x57')]['id']},'include':[{'model':db['CmList'],'as':_0x91e9('0xb6'),'include':[{'model':db[_0x91e9('0x9c')],'as':_0x91e9('0x9d'),'where':{'mobile':_0x3a191f},'limit':0x1,'order':[[_0x91e9('0x8a'),'DESC']]}]}]})[_0x91e9('0x26')](handleEntityNotFound(_0x54fa55,null))[_0x91e9('0x26')](function(_0x304778){if(_0x304778&&_0x304778[_0x91e9('0xb6')]){_0x30eb36=_0x304778[_0x91e9('0x5f')]({'plain':!![]});if(_0x30eb36['List']&&_0x30eb36['List'][_0x91e9('0x9d')][_0x91e9('0x59')]){return _0x30eb36[_0x91e9('0xb6')]['Contacts'][0x0];}return db['CmContact'][_0x91e9('0x64')](_[_0x91e9('0xa1')](_0x587171['body'],{'firstName':_0x3a191f,'mobile':_0x3a191f,'phone':_0x3a191f,'ListId':_0x30eb36[_0x91e9('0x9b')]}));}})[_0x91e9('0x26')](handleEntityNotFound(_0x54fa55,null))[_0x91e9('0x26')](function(_0x3fd7ad){if(_0x3fd7ad){_0x44cce6=_0x3fd7ad;return db[_0x91e9('0xa2')][_0x91e9('0x5c')]({'where':{'ContactId':_0x44cce6['id'],'closed':![],'WhatsappAccountId':_0x30eb36['id']}})[_0x91e9('0x26')](function(_0xdd86ef){if(_0xdd86ef){return[_0xdd86ef,![]];}return db[_0x91e9('0xa2')]['create']({'UserId':_0x587171['user']['id'],'ContactId':_0x44cce6['id'],'WhatsappAccountId':_0x30eb36['id'],'phone':_0x3a191f,'firstMsgDirection':_0x91e9('0xb7'),'Messages':[_['merge'](_0x587171[_0x91e9('0x5d')],{'read':![],'body':_0x587171[_0x91e9('0x5d')][_0x91e9('0x5d')],'phone':_0x3a191f,'WhatsappAccountId':_0x30eb36['id'],'UserId':_0x587171['user']['id'],'ContactId':_0x44cce6['id']})]},{'include':[{'model':db[_0x91e9('0xa7')],'as':_0x91e9('0xb8')}]})[_0x91e9('0x26')](function(_0xd3c557){return[_0xd3c557,!![]];});});}})['spread'](function(_0x1f727f,_0x54e4a6){if(_0x54e4a6){return _0x1f727f;}return db[_0x91e9('0xa7')][_0x91e9('0x64')](_[_0x91e9('0x53')](_0x587171['body'],{'read':![],'body':_0x587171[_0x91e9('0x5d')]['body'],'phone':_0x3a191f,'WhatsappAccountId':_0x30eb36['id'],'WhatsappInteractionId':_0x1f727f['id'],'UserId':_0x587171[_0x91e9('0x5e')]['id'],'ContactId':_0x44cce6['id']}))['then'](function(_0x1cbdba){_0x1f727f['dataValues']['Messages']=[];_0x1f727f[_0x91e9('0xb9')]['Messages']['push'](_0x1cbdba[_0x91e9('0xb9')]);return _0x1f727f;});})[_0x91e9('0x26')](respondWithResult(_0x54fa55,null))[_0x91e9('0x30')](handleError(_0x54fa55,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4621=['events','WhatsappAccount','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x4621,0x19e));var _0x1462=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x4621[_0x40a045];return _0x1a687c;};'use strict';var EventEmitter=require(_0x1462('0x0'));var WhatsappAccount=require('../../mysqldb')['db'][_0x1462('0x1')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x1462('0x2')](0x0);var events={'afterCreate':_0x1462('0x3'),'afterUpdate':_0x1462('0x4'),'afterDestroy':_0x1462('0x5')};function emitEvent(_0x12f456){return function(_0x5161d4,_0x4ae1f9,_0x11b313){WhatsappAccountEvents['emit'](_0x12f456+':'+_0x5161d4['id'],_0x5161d4);WhatsappAccountEvents[_0x1462('0x6')](_0x12f456,_0x5161d4);_0x11b313(null);};}for(var e in events){if(events[_0x1462('0x7')](e)){var event=events[e];WhatsappAccount['hook'](e,emitEvent(event));}}module[_0x1462('0x8')]=WhatsappAccountEvents;
\ No newline at end of file
+var _0xb7d4=['../../mysqldb','WhatsappAccount','setMaxListeners','save','update','hook','exports','events'];(function(_0x537be1,_0x35870f){var _0xa7590a=function(_0x53bdb0){while(--_0x53bdb0){_0x537be1['push'](_0x537be1['shift']());}};_0xa7590a(++_0x35870f);}(_0xb7d4,0x17f));var _0x4b7d=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xb7d4[_0x4565bf];return _0x5610ba;};'use strict';var EventEmitter=require(_0x4b7d('0x0'));var WhatsappAccount=require(_0x4b7d('0x1'))['db'][_0x4b7d('0x2')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x4b7d('0x3')](0x0);var events={'afterCreate':_0x4b7d('0x4'),'afterUpdate':_0x4b7d('0x5'),'afterDestroy':'remove'};function emitEvent(_0x1cc981){return function(_0x553b83,_0x45a865,_0x353d61){WhatsappAccountEvents['emit'](_0x1cc981+':'+_0x553b83['id'],_0x553b83);WhatsappAccountEvents['emit'](_0x1cc981,_0x553b83);_0x353d61(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappAccount[_0x4b7d('0x6')](e,emitEvent(event));}}module[_0x4b7d('0x7')]=WhatsappAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5668=['request-promise','path','../../config/environment','./whatsappAccount.attributes','exports','define','whatsapp_accounts','lodash','../../config/logger','api','moment','bluebird'];(function(_0x7c18b3,_0x3cd707){var _0x36c353=function(_0x1b646d){while(--_0x1b646d){_0x7c18b3['push'](_0x7c18b3['shift']());}};_0x36c353(++_0x3cd707);}(_0x5668,0x11b));var _0x8566=function(_0x11f816,_0x4b82ec){_0x11f816=_0x11f816-0x0;var _0x1a3824=_0x5668[_0x11f816];return _0x1a3824;};'use strict';var _=require(_0x8566('0x0'));var util=require('util');var logger=require(_0x8566('0x1'))(_0x8566('0x2'));var moment=require(_0x8566('0x3'));var BPromise=require(_0x8566('0x4'));var rp=require(_0x8566('0x5'));var fs=require('fs');var path=require(_0x8566('0x6'));var rimraf=require('rimraf');var config=require(_0x8566('0x7'));var attributes=require(_0x8566('0x8'));module[_0x8566('0x9')]=function(_0x4b613f,_0x44d074){return _0x4b613f[_0x8566('0xa')]('WhatsappAccount',attributes,{'tableName':_0x8566('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9fbc=['./whatsappAccount.attributes','define','WhatsappAccount','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x9fbc,0x153));var _0xc9fb=function(_0x54fadc,_0x1fb2a8){_0x54fadc=_0x54fadc-0x0;var _0x2cc5e8=_0x9fbc[_0x54fadc];return _0x2cc5e8;};'use strict';var _=require('lodash');var util=require(_0xc9fb('0x0'));var logger=require(_0xc9fb('0x1'))(_0xc9fb('0x2'));var moment=require(_0xc9fb('0x3'));var BPromise=require(_0xc9fb('0x4'));var rp=require(_0xc9fb('0x5'));var fs=require('fs');var path=require(_0xc9fb('0x6'));var rimraf=require(_0xc9fb('0x7'));var config=require(_0xc9fb('0x8'));var attributes=require(_0xc9fb('0x9'));module['exports']=function(_0x17a2c7,_0x30c500){return _0x17a2c7[_0xc9fb('0xa')](_0xc9fb('0xb'),attributes,{'tableName':'whatsapp_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8102=['ioredis','../../config/utils','jayson/promise','client','http','defaults','redis','socket.io-emitter','./whatsappAccount.socket','register','debug','request\x20sent','stringify','error','code','WhatsappAccount,\x20%s,\x20%s','message','catch','ShowWhatsappAccount','WhatsappAccount','options','where','attributes','include','map','model','then','info','lodash','util','bluebird','randomstring'];(function(_0x29c875,_0x2f9b9d){var _0x59210b=function(_0x9ef269){while(--_0x9ef269){_0x29c875['push'](_0x29c875['shift']());}};_0x59210b(++_0x2f9b9d);}(_0x8102,0x9c));var _0x2810=function(_0x1e8098,_0x3c1c91){_0x1e8098=_0x1e8098-0x0;var _0x1331dd=_0x8102[_0x1e8098];return _0x1331dd;};'use strict';var _=require(_0x2810('0x0'));var util=require(_0x2810('0x1'));var moment=require('moment');var BPromise=require(_0x2810('0x2'));var rs=require(_0x2810('0x3'));var fs=require('fs');var Redis=require(_0x2810('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2810('0x5'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x2810('0x6'));var client=jayson[_0x2810('0x7')][_0x2810('0x8')]({'port':0x232a});config['redis']=_[_0x2810('0x9')](config[_0x2810('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x2810('0xb'))(new Redis(config[_0x2810('0xa')]));require(_0x2810('0xc'))[_0x2810('0xd')](socket);function respondWithRpcPromise(_0x20b79d,_0x1215e2,_0x5ade0d){return new BPromise(function(_0x2dffd3,_0x542eff){return client['request'](_0x20b79d,_0x5ade0d)['then'](function(_0x1682e5){logger['info']('WhatsappAccount,\x20%s,\x20%s',_0x1215e2,'request\x20sent');logger[_0x2810('0xe')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x1215e2,_0x2810('0xf'),JSON[_0x2810('0x10')](_0x1682e5));if(_0x1682e5[_0x2810('0x11')]){if(_0x1682e5[_0x2810('0x11')][_0x2810('0x12')]===0x1f4){logger[_0x2810('0x11')](_0x2810('0x13'),_0x1215e2,_0x1682e5['error']['message']);return _0x542eff(_0x1682e5[_0x2810('0x11')]['message']);}logger[_0x2810('0x11')](_0x2810('0x13'),_0x1215e2,_0x1682e5[_0x2810('0x11')][_0x2810('0x14')]);return _0x2dffd3(_0x1682e5['error']['message']);}else{logger['info'](_0x2810('0x13'),_0x1215e2,_0x2810('0xf'));_0x2dffd3(_0x1682e5['result'][_0x2810('0x14')]);}})[_0x2810('0x15')](function(_0x160f70){logger[_0x2810('0x11')](_0x2810('0x13'),_0x1215e2,_0x160f70);_0x542eff(_0x160f70);});});}exports[_0x2810('0x16')]=function(_0x25e1d8){var _0x443523=this;return new Promise(function(_0x4ae328,_0x44cd62){return db[_0x2810('0x17')]['find']({'raw':_0x25e1d8['options']?_0x25e1d8['options']['raw']===undefined?!![]:![]:!![],'where':_0x25e1d8[_0x2810('0x18')]?_0x25e1d8['options'][_0x2810('0x19')]||null:null,'attributes':_0x25e1d8[_0x2810('0x18')]?_0x25e1d8[_0x2810('0x18')][_0x2810('0x1a')]||null:null,'include':_0x25e1d8[_0x2810('0x18')]?_0x25e1d8[_0x2810('0x18')][_0x2810('0x1b')]?_[_0x2810('0x1c')](_0x25e1d8[_0x2810('0x18')][_0x2810('0x1b')],function(_0x4d98aa){return{'model':db[_0x4d98aa['model']],'as':_0x4d98aa['as'],'attributes':_0x4d98aa[_0x2810('0x1a')],'include':_0x4d98aa[_0x2810('0x1b')]?_[_0x2810('0x1c')](_0x4d98aa[_0x2810('0x1b')],function(_0xb25df8){return{'model':db[_0xb25df8[_0x2810('0x1d')]],'as':_0xb25df8['as'],'attributes':_0xb25df8['attributes'],'include':_0xb25df8[_0x2810('0x1b')]?_[_0x2810('0x1c')](_0xb25df8['include'],function(_0x4863e4){return{'model':db[_0x4863e4[_0x2810('0x1d')]],'as':_0x4863e4['as'],'attributes':_0x4863e4[_0x2810('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x2810('0x1e')](function(_0x10d874){logger[_0x2810('0x1f')](_0x2810('0x16'),_0x25e1d8);logger[_0x2810('0xe')](_0x2810('0x16'),_0x25e1d8,JSON['stringify'](_0x10d874));_0x4ae328(_0x10d874);})[_0x2810('0x15')](function(_0xbbf2e4){logger[_0x2810('0x11')]('ShowWhatsappAccount',_0xbbf2e4['message'],_0x25e1d8);_0x44cd62(_0x443523[_0x2810('0x11')](0x1f4,_0xbbf2e4[_0x2810('0x14')]));});});};
\ No newline at end of file
+var _0x5a1a=['stringify','error','code','WhatsappAccount,\x20%s,\x20%s','message','request\x20sent','result','ShowWhatsappAccount','find','options','raw','where','include','model','attributes','map','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','defaults','redis','localhost','./whatsappAccount.socket','register','request','then','info','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s'];(function(_0x20076b,_0x4f218e){var _0x1ae3de=function(_0x545d7a){while(--_0x545d7a){_0x20076b['push'](_0x20076b['shift']());}};_0x1ae3de(++_0x4f218e);}(_0x5a1a,0xa4));var _0xa5a1=function(_0x24696b,_0x12de19){_0x24696b=_0x24696b-0x0;var _0x3f86b0=_0x5a1a[_0x24696b];return _0x3f86b0;};'use strict';var _=require(_0xa5a1('0x0'));var util=require(_0xa5a1('0x1'));var moment=require(_0xa5a1('0x2'));var BPromise=require(_0xa5a1('0x3'));var rs=require(_0xa5a1('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xa5a1('0x5'));var logger=require(_0xa5a1('0x6'))(_0xa5a1('0x7'));var config=require('../../config/environment');var jayson=require(_0xa5a1('0x8'));var client=jayson[_0xa5a1('0x9')][_0xa5a1('0xa')]({'port':0x232a});config['redis']=_[_0xa5a1('0xb')](config[_0xa5a1('0xc')],{'host':_0xa5a1('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa5a1('0xe'))[_0xa5a1('0xf')](socket);function respondWithRpcPromise(_0x4358d2,_0x19c4ba,_0x30ceaa){return new BPromise(function(_0x10f580,_0x5d620e){return client[_0xa5a1('0x10')](_0x4358d2,_0x30ceaa)[_0xa5a1('0x11')](function(_0x41dbed){logger[_0xa5a1('0x12')]('WhatsappAccount,\x20%s,\x20%s',_0x19c4ba,'request\x20sent');logger[_0xa5a1('0x13')](_0xa5a1('0x14'),_0x19c4ba,'request\x20sent',JSON[_0xa5a1('0x15')](_0x41dbed));if(_0x41dbed['error']){if(_0x41dbed[_0xa5a1('0x16')][_0xa5a1('0x17')]===0x1f4){logger['error'](_0xa5a1('0x18'),_0x19c4ba,_0x41dbed[_0xa5a1('0x16')]['message']);return _0x5d620e(_0x41dbed[_0xa5a1('0x16')][_0xa5a1('0x19')]);}logger['error'](_0xa5a1('0x18'),_0x19c4ba,_0x41dbed[_0xa5a1('0x16')]['message']);return _0x10f580(_0x41dbed[_0xa5a1('0x16')][_0xa5a1('0x19')]);}else{logger[_0xa5a1('0x12')]('WhatsappAccount,\x20%s,\x20%s',_0x19c4ba,_0xa5a1('0x1a'));_0x10f580(_0x41dbed[_0xa5a1('0x1b')]['message']);}})['catch'](function(_0x67ef40){logger[_0xa5a1('0x16')](_0xa5a1('0x18'),_0x19c4ba,_0x67ef40);_0x5d620e(_0x67ef40);});});}exports[_0xa5a1('0x1c')]=function(_0x72a23c){var _0x352038=this;return new Promise(function(_0x32d4b4,_0x19413e){return db['WhatsappAccount'][_0xa5a1('0x1d')]({'raw':_0x72a23c[_0xa5a1('0x1e')]?_0x72a23c[_0xa5a1('0x1e')][_0xa5a1('0x1f')]===undefined?!![]:![]:!![],'where':_0x72a23c[_0xa5a1('0x1e')]?_0x72a23c[_0xa5a1('0x1e')][_0xa5a1('0x20')]||null:null,'attributes':_0x72a23c[_0xa5a1('0x1e')]?_0x72a23c[_0xa5a1('0x1e')]['attributes']||null:null,'include':_0x72a23c[_0xa5a1('0x1e')]?_0x72a23c[_0xa5a1('0x1e')][_0xa5a1('0x21')]?_['map'](_0x72a23c[_0xa5a1('0x1e')][_0xa5a1('0x21')],function(_0x5a3169){return{'model':db[_0x5a3169[_0xa5a1('0x22')]],'as':_0x5a3169['as'],'attributes':_0x5a3169[_0xa5a1('0x23')],'include':_0x5a3169[_0xa5a1('0x21')]?_['map'](_0x5a3169['include'],function(_0x5b3931){return{'model':db[_0x5b3931[_0xa5a1('0x22')]],'as':_0x5b3931['as'],'attributes':_0x5b3931[_0xa5a1('0x23')],'include':_0x5b3931['include']?_[_0xa5a1('0x24')](_0x5b3931[_0xa5a1('0x21')],function(_0x135df5){return{'model':db[_0x135df5['model']],'as':_0x135df5['as'],'attributes':_0x135df5['attributes']};}):[]};}):[]};}):[]:[]})[_0xa5a1('0x11')](function(_0x1b4bdc){logger['info'](_0xa5a1('0x1c'),_0x72a23c);logger[_0xa5a1('0x13')](_0xa5a1('0x1c'),_0x72a23c,JSON[_0xa5a1('0x15')](_0x1b4bdc));_0x32d4b4(_0x1b4bdc);})['catch'](function(_0x125b65){logger[_0xa5a1('0x16')](_0xa5a1('0x1c'),_0x125b65[_0xa5a1('0x19')],_0x72a23c);_0x19413e(_0x352038['error'](0x1f4,_0x125b65['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac84=['whatsappAccount:','./whatsappAccount.events','save','remove','update','emit','removeListener','length'];(function(_0xa4c906,_0x3a42aa){var _0x4f98ab=function(_0xa450ee){while(--_0xa450ee){_0xa4c906['push'](_0xa4c906['shift']());}};_0x4f98ab(++_0x3a42aa);}(_0xac84,0x121));var _0x4ac8=function(_0x39e9c4,_0x1fcc4a){_0x39e9c4=_0x39e9c4-0x0;var _0x2c6ad1=_0xac84[_0x39e9c4];return _0x2c6ad1;};'use strict';var WhatsappAccountEvents=require(_0x4ac8('0x0'));var events=[_0x4ac8('0x1'),_0x4ac8('0x2'),_0x4ac8('0x3')];function createListener(_0x146c9d,_0xfaa6d2){return function(_0x45ad1a){_0xfaa6d2[_0x4ac8('0x4')](_0x146c9d,_0x45ad1a);};}function removeListener(_0x14c40c,_0x3951f8){return function(){WhatsappAccountEvents[_0x4ac8('0x5')](_0x14c40c,_0x3951f8);};}exports['register']=function(_0x1f5e8d){for(var _0xfe03=0x0,_0x140270=events[_0x4ac8('0x6')];_0xfe03<_0x140270;_0xfe03++){var _0x5f40d7=events[_0xfe03];var _0x1c8ded=createListener(_0x4ac8('0x7')+_0x5f40d7,_0x1f5e8d);WhatsappAccountEvents['on'](_0x5f40d7,_0x1c8ded);}};
\ No newline at end of file
+var _0x568a=['whatsappAccount:','./whatsappAccount.events','save','remove','update','emit','removeListener','length'];(function(_0xc3685c,_0x5c486a){var _0x116a65=function(_0xdf6c0e){while(--_0xdf6c0e){_0xc3685c['push'](_0xc3685c['shift']());}};_0x116a65(++_0x5c486a);}(_0x568a,0x111));var _0xa568=function(_0x1fc122,_0x5e2c17){_0x1fc122=_0x1fc122-0x0;var _0xa2cb13=_0x568a[_0x1fc122];return _0xa2cb13;};'use strict';var WhatsappAccountEvents=require(_0xa568('0x0'));var events=[_0xa568('0x1'),_0xa568('0x2'),_0xa568('0x3')];function createListener(_0x25a43d,_0x1162fc){return function(_0x109e34){_0x1162fc[_0xa568('0x4')](_0x25a43d,_0x109e34);};}function removeListener(_0x55e2b4,_0x1ab08e){return function(){WhatsappAccountEvents[_0xa568('0x5')](_0x55e2b4,_0x1ab08e);};}exports['register']=function(_0x52429b){for(var _0x33c218=0x0,_0x1dd9ee=events[_0xa568('0x6')];_0x33c218<_0x1dd9ee;_0x33c218++){var _0x3a88b3=events[_0x33c218];var _0x1d46a3=createListener(_0xa568('0x7')+_0x3a88b3,_0x52429b);WhatsappAccountEvents['on'](_0x3a88b3,_0x1d46a3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5190=['/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','./whatsappApplication.controller','get','isAuthenticated','index','show','post','create'];(function(_0x57645b,_0x25f73a){var _0xe82f00=function(_0x526b4){while(--_0x526b4){_0x57645b['push'](_0x57645b['shift']());}};_0xe82f00(++_0x25f73a);}(_0x5190,0x122));var _0x0519=function(_0x4191af,_0x5783da){_0x4191af=_0x4191af-0x0;var _0x27bebf=_0x5190[_0x4191af];return _0x27bebf;};'use strict';var multer=require(_0x0519('0x0'));var util=require(_0x0519('0x1'));var path=require(_0x0519('0x2'));var timeout=require(_0x0519('0x3'));var express=require('express');var router=express[_0x0519('0x4')]();var fs_extra=require(_0x0519('0x5'));var auth=require(_0x0519('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x0519('0x7'));router[_0x0519('0x8')]('/',auth[_0x0519('0x9')](),controller[_0x0519('0xa')]);router[_0x0519('0x8')]('/:id',auth[_0x0519('0x9')](),controller[_0x0519('0xb')]);router[_0x0519('0xc')]('/',auth[_0x0519('0x9')](),controller[_0x0519('0xd')]);router['put'](_0x0519('0xe'),auth[_0x0519('0x9')](),controller[_0x0519('0xf')]);router[_0x0519('0x10')](_0x0519('0xe'),auth[_0x0519('0x9')](),controller[_0x0519('0x11')]);module[_0x0519('0x12')]=router;
\ No newline at end of file
+var _0x3051=['update','destroy','exports','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappApplication.controller','get','/:id','isAuthenticated','show','post','create','put'];(function(_0x3695cf,_0x2e7298){var _0x5e2ced=function(_0x1579b6){while(--_0x1579b6){_0x3695cf['push'](_0x3695cf['shift']());}};_0x5e2ced(++_0x2e7298);}(_0x3051,0xc9));var _0x1305=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x3051[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require('multer');var util=require(_0x1305('0x0'));var path=require(_0x1305('0x1'));var timeout=require(_0x1305('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x1305('0x3'));var auth=require(_0x1305('0x4'));var interaction=require(_0x1305('0x5'));var config=require(_0x1305('0x6'));var controller=require(_0x1305('0x7'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0x1305('0x8')](_0x1305('0x9'),auth[_0x1305('0xa')](),controller[_0x1305('0xb')]);router[_0x1305('0xc')]('/',auth[_0x1305('0xa')](),controller[_0x1305('0xd')]);router[_0x1305('0xe')]('/:id',auth[_0x1305('0xa')](),controller[_0x1305('0xf')]);router['delete'](_0x1305('0x9'),auth[_0x1305('0xa')](),controller[_0x1305('0x10')]);module[_0x1305('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x880a=['TEXT','sequelize','INTEGER','STRING','noop'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x880a,0x6f));var _0xa880=function(_0x457b24,_0x3cab85){_0x457b24=_0x457b24-0x0;var _0x4ace17=_0x880a[_0x457b24];return _0x4ace17;};'use strict';var Sequelize=require(_0xa880('0x0'));module['exports']={'priority':{'type':Sequelize[_0xa880('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0xa880('0x2')],'allowNull':![],'defaultValue':_0xa880('0x3')},'appdata':{'type':Sequelize[_0xa880('0x4')]()},'description':{'type':Sequelize[_0xa880('0x2')]},'interval':{'type':Sequelize['STRING'],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0x7fe7=['sequelize','exports','STRING','noop','*,*,*,*'];(function(_0x4ff6f9,_0x2e8c68){var _0x10185e=function(_0x1b7d8d){while(--_0x1b7d8d){_0x4ff6f9['push'](_0x4ff6f9['shift']());}};_0x10185e(++_0x2e8c68);}(_0x7fe7,0x104));var _0x77fe=function(_0x455abf,_0x4ae86d){_0x455abf=_0x455abf-0x0;var _0x3ab136=_0x7fe7[_0x455abf];return _0x3ab136;};'use strict';var Sequelize=require(_0x77fe('0x0'));module[_0x77fe('0x1')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0x77fe('0x2')],'allowNull':![],'defaultValue':_0x77fe('0x3')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0x77fe('0x2')]},'interval':{'type':Sequelize[_0x77fe('0x2')],'defaultValue':_0x77fe('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6337=['filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','params','create','body','find','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','index','map','WhatsappApplication','fieldName','model','query','keys'];(function(_0x34ec3b,_0x23dc5f){var _0x41c940=function(_0x9f5fed){while(--_0x9f5fed){_0x34ec3b['push'](_0x34ec3b['shift']());}};_0x41c940(++_0x23dc5f);}(_0x6337,0x18a));var _0x7633=function(_0x150ac0,_0x37c47a){_0x150ac0=_0x150ac0-0x0;var _0x57fe41=_0x6337[_0x150ac0];return _0x57fe41;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x7633('0x0'));var zipdir=require(_0x7633('0x1'));var jsonpatch=require(_0x7633('0x2'));var rp=require(_0x7633('0x3'));var moment=require(_0x7633('0x4'));var BPromise=require(_0x7633('0x5'));var Mustache=require(_0x7633('0x6'));var util=require(_0x7633('0x7'));var path=require(_0x7633('0x8'));var sox=require('sox');var csv=require(_0x7633('0x9'));var ejs=require(_0x7633('0xa'));var fs=require('fs');var fs_extra=require(_0x7633('0xb'));var _=require('lodash');var squel=require(_0x7633('0xc'));var crypto=require('crypto');var jsforce=require(_0x7633('0xd'));var deskjs=require(_0x7633('0xe'));var toCsv=require('to-csv');var querystring=require(_0x7633('0xf'));var Papa=require('papaparse');var Redis=require(_0x7633('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x7633('0x11'));var as=require(_0x7633('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7633('0x13'))(_0x7633('0x14'));var utils=require(_0x7633('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x7633('0x16'));var db=require(_0x7633('0x17'))['db'];function respondWithStatusCode(_0xeef065,_0x563006){_0x563006=_0x563006||0xcc;return function(_0x2007bc){if(_0x2007bc){return _0xeef065[_0x7633('0x18')](_0x563006);}return _0xeef065[_0x7633('0x19')](_0x563006)['end']();};}function respondWithResult(_0x5654bc,_0x50e10c){_0x50e10c=_0x50e10c||0xc8;return function(_0x18abe4){if(_0x18abe4){return _0x5654bc[_0x7633('0x19')](_0x50e10c)[_0x7633('0x1a')](_0x18abe4);}};}function respondWithFilteredResult(_0x3666a1,_0x25e7d5){return function(_0x1c9957){if(_0x1c9957){var _0x47e212=typeof _0x25e7d5[_0x7633('0x1b')]===_0x7633('0x1c')&&typeof _0x25e7d5['limit']===_0x7633('0x1c');var _0x4c4e1=_0x1c9957[_0x7633('0x1d')];var _0x321043=_0x47e212?0x0:_0x25e7d5[_0x7633('0x1b')];var _0x5c7609=_0x47e212?_0x1c9957[_0x7633('0x1d')]:_0x25e7d5[_0x7633('0x1b')]+_0x25e7d5[_0x7633('0x1e')];var _0x5988d4;if(_0x5c7609>=_0x4c4e1){_0x5c7609=_0x4c4e1;_0x5988d4=0xc8;}else{_0x5988d4=0xce;}_0x3666a1[_0x7633('0x19')](_0x5988d4);return _0x3666a1[_0x7633('0x1f')](_0x7633('0x20'),_0x321043+'-'+_0x5c7609+'/'+_0x4c4e1)[_0x7633('0x1a')](_0x1c9957);}return null;};}function patchUpdates(_0x14df18){return function(_0x503d13){try{jsonpatch[_0x7633('0x21')](_0x503d13,_0x14df18,!![]);}catch(_0x1140cd){return BPromise[_0x7633('0x22')](_0x1140cd);}return _0x503d13[_0x7633('0x23')]();};}function saveUpdates(_0x1c8efc,_0x55715b){return function(_0x38a915){if(_0x38a915){return _0x38a915[_0x7633('0x24')](_0x1c8efc)[_0x7633('0x25')](function(_0x2471b7){return _0x2471b7;});}return null;};}function removeEntity(_0x531e8f,_0x135a75){return function(_0x9152df){if(_0x9152df){return _0x9152df[_0x7633('0x26')]()[_0x7633('0x25')](function(){_0x531e8f['status'](0xcc)[_0x7633('0x27')]();});}};}function handleEntityNotFound(_0x34aa76,_0x555923){return function(_0x1eb275){if(!_0x1eb275){_0x34aa76['sendStatus'](0x194);}return _0x1eb275;};}function handleError(_0x47f2cb,_0x42b4a7){_0x42b4a7=_0x42b4a7||0x1f4;return function(_0x1b2920){logger[_0x7633('0x28')](_0x1b2920[_0x7633('0x29')]);if(_0x1b2920[_0x7633('0x2a')]){delete _0x1b2920[_0x7633('0x2a')];}_0x47f2cb[_0x7633('0x19')](_0x42b4a7)['send'](_0x1b2920);};}exports[_0x7633('0x2b')]=function(_0x7b9d8b,_0x266944){var _0x3d0b0c={},_0x323e00={},_0x1abaed={'count':0x0,'rows':[]};var _0x5d79ce=_[_0x7633('0x2c')](db[_0x7633('0x2d')]['rawAttributes'],function(_0x8fcf83){return{'name':_0x8fcf83[_0x7633('0x2e')],'type':_0x8fcf83['type']['key']};});_0x323e00[_0x7633('0x2f')]=_['map'](_0x5d79ce,_0x7633('0x2a'));_0x323e00[_0x7633('0x30')]=_[_0x7633('0x31')](_0x7b9d8b[_0x7633('0x30')]);_0x323e00[_0x7633('0x32')]=_[_0x7633('0x33')](_0x323e00['model'],_0x323e00[_0x7633('0x30')]);_0x3d0b0c[_0x7633('0x34')]=_['intersection'](_0x323e00['model'],qs[_0x7633('0x35')](_0x7b9d8b['query'][_0x7633('0x35')]));_0x3d0b0c['attributes']=_0x3d0b0c['attributes'][_0x7633('0x36')]?_0x3d0b0c[_0x7633('0x34')]:_0x323e00[_0x7633('0x2f')];if(!_0x7b9d8b[_0x7633('0x30')][_0x7633('0x37')](_0x7633('0x38'))){_0x3d0b0c['limit']=qs[_0x7633('0x1e')](_0x7b9d8b['query'][_0x7633('0x1e')]);_0x3d0b0c[_0x7633('0x1b')]=qs[_0x7633('0x1b')](_0x7b9d8b[_0x7633('0x30')][_0x7633('0x1b')]);}_0x3d0b0c[_0x7633('0x39')]=qs['sort'](_0x7b9d8b[_0x7633('0x30')][_0x7633('0x3a')]);_0x3d0b0c['where']=qs[_0x7633('0x32')](_[_0x7633('0x3b')](_0x7b9d8b[_0x7633('0x30')],_0x323e00[_0x7633('0x32')]),_0x5d79ce);if(_0x7b9d8b['query'][_0x7633('0x3c')]){_0x3d0b0c[_0x7633('0x3d')]=_[_0x7633('0x3e')](_0x3d0b0c[_0x7633('0x3d')],{'$or':_[_0x7633('0x2c')](_0x5d79ce,function(_0x552927){if(_0x552927[_0x7633('0x3f')]!==_0x7633('0x40')){var _0x2d6459={};_0x2d6459[_0x552927['name']]={'$like':'%'+_0x7b9d8b[_0x7633('0x30')][_0x7633('0x3c')]+'%'};return _0x2d6459;}})});}_0x3d0b0c=_[_0x7633('0x3e')]({},_0x3d0b0c,_0x7b9d8b[_0x7633('0x41')]);var _0x5371d7={'where':_0x3d0b0c['where']};return db[_0x7633('0x2d')][_0x7633('0x1d')](_0x5371d7)[_0x7633('0x25')](function(_0x50856e){_0x1abaed[_0x7633('0x1d')]=_0x50856e;if(_0x7b9d8b[_0x7633('0x30')][_0x7633('0x42')]){_0x3d0b0c[_0x7633('0x43')]=[{'all':!![]}];}return db['WhatsappApplication'][_0x7633('0x44')](_0x3d0b0c);})['then'](function(_0x25a22e){_0x1abaed['rows']=_0x25a22e;return _0x1abaed;})[_0x7633('0x25')](respondWithFilteredResult(_0x266944,_0x3d0b0c))[_0x7633('0x45')](handleError(_0x266944,null));};exports['show']=function(_0x46e83f,_0x27209e){var _0x3f24b2={'raw':!![],'where':{'id':_0x46e83f[_0x7633('0x46')]['id']}},_0x79c2d0={};_0x79c2d0[_0x7633('0x2f')]=_[_0x7633('0x31')](db['WhatsappApplication']['rawAttributes']);_0x79c2d0[_0x7633('0x30')]=_['keys'](_0x46e83f[_0x7633('0x30')]);_0x79c2d0[_0x7633('0x32')]=_[_0x7633('0x33')](_0x79c2d0[_0x7633('0x2f')],_0x79c2d0[_0x7633('0x30')]);_0x3f24b2[_0x7633('0x34')]=_[_0x7633('0x33')](_0x79c2d0[_0x7633('0x2f')],qs[_0x7633('0x35')](_0x46e83f[_0x7633('0x30')][_0x7633('0x35')]));_0x3f24b2[_0x7633('0x34')]=_0x3f24b2[_0x7633('0x34')]['length']?_0x3f24b2['attributes']:_0x79c2d0[_0x7633('0x2f')];if(_0x46e83f[_0x7633('0x30')][_0x7633('0x42')]){_0x3f24b2[_0x7633('0x43')]=[{'all':!![]}];}_0x3f24b2=_[_0x7633('0x3e')]({},_0x3f24b2,_0x46e83f[_0x7633('0x41')]);return db['WhatsappApplication']['find'](_0x3f24b2)[_0x7633('0x25')](handleEntityNotFound(_0x27209e,null))[_0x7633('0x25')](respondWithResult(_0x27209e,null))[_0x7633('0x45')](handleError(_0x27209e,null));};exports[_0x7633('0x47')]=function(_0x599601,_0x5d9a0d){return db[_0x7633('0x2d')][_0x7633('0x47')](_0x599601[_0x7633('0x48')],{})['then'](respondWithResult(_0x5d9a0d,0xc9))[_0x7633('0x45')](handleError(_0x5d9a0d,null));};exports[_0x7633('0x24')]=function(_0x31f166,_0x3c79cb){if(_0x31f166[_0x7633('0x48')]['id']){delete _0x31f166[_0x7633('0x48')]['id'];}return db['WhatsappApplication'][_0x7633('0x49')]({'where':{'id':_0x31f166[_0x7633('0x46')]['id']}})[_0x7633('0x25')](handleEntityNotFound(_0x3c79cb,null))['then'](saveUpdates(_0x31f166[_0x7633('0x48')],null))[_0x7633('0x25')](respondWithResult(_0x3c79cb,null))[_0x7633('0x45')](handleError(_0x3c79cb,null));};exports['destroy']=function(_0x54d4c1,_0x436788){return db[_0x7633('0x2d')][_0x7633('0x49')]({'where':{'id':_0x54d4c1[_0x7633('0x46')]['id']}})['then'](handleEntityNotFound(_0x436788,null))[_0x7633('0x25')](removeEntity(_0x436788,null))[_0x7633('0x45')](handleError(_0x436788,null));};
\ No newline at end of file
+var _0x77e6=['stack','name','send','index','map','WhatsappApplication','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','find','create','catch','update','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','lodash','jsforce','desk.js','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','destroy','then','end'];(function(_0x3eee78,_0x5acc63){var _0x53a5e5=function(_0x472fb6){while(--_0x472fb6){_0x3eee78['push'](_0x3eee78['shift']());}};_0x53a5e5(++_0x5acc63);}(_0x77e6,0x1a6));var _0x677e=function(_0x481213,_0x3dfc1c){_0x481213=_0x481213-0x0;var _0x3345eb=_0x77e6[_0x481213];return _0x3345eb;};'use strict';var emlformat=require(_0x677e('0x0'));var rimraf=require(_0x677e('0x1'));var zipdir=require(_0x677e('0x2'));var jsonpatch=require(_0x677e('0x3'));var rp=require(_0x677e('0x4'));var moment=require(_0x677e('0x5'));var BPromise=require(_0x677e('0x6'));var Mustache=require(_0x677e('0x7'));var util=require('util');var path=require(_0x677e('0x8'));var sox=require(_0x677e('0x9'));var csv=require('to-csv');var ejs=require(_0x677e('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x677e('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x677e('0xc'));var deskjs=require(_0x677e('0xd'));var toCsv=require(_0x677e('0xe'));var querystring=require(_0x677e('0xf'));var Papa=require('papaparse');var Redis=require(_0x677e('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x677e('0x11'));var as=require(_0x677e('0x12'));var hardwareService=require(_0x677e('0x13'));var logger=require(_0x677e('0x14'))(_0x677e('0x15'));var utils=require(_0x677e('0x16'));var config=require(_0x677e('0x17'));var licenseUtil=require(_0x677e('0x18'));var db=require(_0x677e('0x19'))['db'];function respondWithStatusCode(_0x46a67e,_0x366490){_0x366490=_0x366490||0xcc;return function(_0x2a5f95){if(_0x2a5f95){return _0x46a67e[_0x677e('0x1a')](_0x366490);}return _0x46a67e[_0x677e('0x1b')](_0x366490)['end']();};}function respondWithResult(_0x512631,_0x5c7351){_0x5c7351=_0x5c7351||0xc8;return function(_0x213a50){if(_0x213a50){return _0x512631[_0x677e('0x1b')](_0x5c7351)[_0x677e('0x1c')](_0x213a50);}};}function respondWithFilteredResult(_0x36e976,_0x4daa04){return function(_0x42d0c3){if(_0x42d0c3){var _0x24c9eb=typeof _0x4daa04[_0x677e('0x1d')]===_0x677e('0x1e')&&typeof _0x4daa04[_0x677e('0x1f')]===_0x677e('0x1e');var _0xe4d960=_0x42d0c3['count'];var _0x1c5124=_0x24c9eb?0x0:_0x4daa04[_0x677e('0x1d')];var _0x385b06=_0x24c9eb?_0x42d0c3[_0x677e('0x20')]:_0x4daa04[_0x677e('0x1d')]+_0x4daa04[_0x677e('0x1f')];var _0x52f65d;if(_0x385b06>=_0xe4d960){_0x385b06=_0xe4d960;_0x52f65d=0xc8;}else{_0x52f65d=0xce;}_0x36e976[_0x677e('0x1b')](_0x52f65d);return _0x36e976['set'](_0x677e('0x21'),_0x1c5124+'-'+_0x385b06+'/'+_0xe4d960)[_0x677e('0x1c')](_0x42d0c3);}return null;};}function patchUpdates(_0x26e9c5){return function(_0x593aed){try{jsonpatch[_0x677e('0x22')](_0x593aed,_0x26e9c5,!![]);}catch(_0x1a6122){return BPromise[_0x677e('0x23')](_0x1a6122);}return _0x593aed[_0x677e('0x24')]();};}function saveUpdates(_0x295964,_0x8732e0){return function(_0x3a7895){if(_0x3a7895){return _0x3a7895['update'](_0x295964)['then'](function(_0x52d915){return _0x52d915;});}return null;};}function removeEntity(_0x357466,_0x154fce){return function(_0x31a1e4){if(_0x31a1e4){return _0x31a1e4[_0x677e('0x25')]()[_0x677e('0x26')](function(){_0x357466[_0x677e('0x1b')](0xcc)[_0x677e('0x27')]();});}};}function handleEntityNotFound(_0x42f2b8,_0x2c51d3){return function(_0x3f0646){if(!_0x3f0646){_0x42f2b8['sendStatus'](0x194);}return _0x3f0646;};}function handleError(_0x5f0ba2,_0x3d3370){_0x3d3370=_0x3d3370||0x1f4;return function(_0x184f68){logger['error'](_0x184f68[_0x677e('0x28')]);if(_0x184f68[_0x677e('0x29')]){delete _0x184f68[_0x677e('0x29')];}_0x5f0ba2[_0x677e('0x1b')](_0x3d3370)[_0x677e('0x2a')](_0x184f68);};}exports[_0x677e('0x2b')]=function(_0x56ad40,_0xcd4646){var _0x2a6033={},_0xeca8e2={},_0x1e2694={'count':0x0,'rows':[]};var _0x22e44c=_[_0x677e('0x2c')](db[_0x677e('0x2d')][_0x677e('0x2e')],function(_0x9d49b5){return{'name':_0x9d49b5['fieldName'],'type':_0x9d49b5[_0x677e('0x2f')][_0x677e('0x30')]};});_0xeca8e2[_0x677e('0x31')]=_[_0x677e('0x2c')](_0x22e44c,_0x677e('0x29'));_0xeca8e2[_0x677e('0x32')]=_[_0x677e('0x33')](_0x56ad40[_0x677e('0x32')]);_0xeca8e2[_0x677e('0x34')]=_[_0x677e('0x35')](_0xeca8e2['model'],_0xeca8e2[_0x677e('0x32')]);_0x2a6033[_0x677e('0x36')]=_[_0x677e('0x35')](_0xeca8e2[_0x677e('0x31')],qs[_0x677e('0x37')](_0x56ad40[_0x677e('0x32')]['fields']));_0x2a6033[_0x677e('0x36')]=_0x2a6033[_0x677e('0x36')][_0x677e('0x38')]?_0x2a6033['attributes']:_0xeca8e2[_0x677e('0x31')];if(!_0x56ad40[_0x677e('0x32')][_0x677e('0x39')](_0x677e('0x3a'))){_0x2a6033[_0x677e('0x1f')]=qs['limit'](_0x56ad40[_0x677e('0x32')][_0x677e('0x1f')]);_0x2a6033[_0x677e('0x1d')]=qs[_0x677e('0x1d')](_0x56ad40['query'][_0x677e('0x1d')]);}_0x2a6033[_0x677e('0x3b')]=qs[_0x677e('0x3c')](_0x56ad40['query']['sort']);_0x2a6033[_0x677e('0x3d')]=qs[_0x677e('0x34')](_['pick'](_0x56ad40[_0x677e('0x32')],_0xeca8e2[_0x677e('0x34')]),_0x22e44c);if(_0x56ad40['query']['filter']){_0x2a6033[_0x677e('0x3d')]=_[_0x677e('0x3e')](_0x2a6033['where'],{'$or':_['map'](_0x22e44c,function(_0x42ce2c){if(_0x42ce2c[_0x677e('0x2f')]!==_0x677e('0x3f')){var _0x5bb080={};_0x5bb080[_0x42ce2c[_0x677e('0x29')]]={'$like':'%'+_0x56ad40[_0x677e('0x32')][_0x677e('0x40')]+'%'};return _0x5bb080;}})});}_0x2a6033=_[_0x677e('0x3e')]({},_0x2a6033,_0x56ad40[_0x677e('0x41')]);var _0x4b34fa={'where':_0x2a6033['where']};return db[_0x677e('0x2d')][_0x677e('0x20')](_0x4b34fa)[_0x677e('0x26')](function(_0x1db5b4){_0x1e2694[_0x677e('0x20')]=_0x1db5b4;if(_0x56ad40[_0x677e('0x32')][_0x677e('0x42')]){_0x2a6033[_0x677e('0x43')]=[{'all':!![]}];}return db[_0x677e('0x2d')][_0x677e('0x44')](_0x2a6033);})['then'](function(_0x56eb30){_0x1e2694[_0x677e('0x45')]=_0x56eb30;return _0x1e2694;})[_0x677e('0x26')](respondWithFilteredResult(_0xcd4646,_0x2a6033))['catch'](handleError(_0xcd4646,null));};exports[_0x677e('0x46')]=function(_0x511125,_0x16362e){var _0x29b9c0={'raw':!![],'where':{'id':_0x511125[_0x677e('0x47')]['id']}},_0x283aaa={};_0x283aaa[_0x677e('0x31')]=_[_0x677e('0x33')](db['WhatsappApplication'][_0x677e('0x2e')]);_0x283aaa[_0x677e('0x32')]=_[_0x677e('0x33')](_0x511125[_0x677e('0x32')]);_0x283aaa[_0x677e('0x34')]=_[_0x677e('0x35')](_0x283aaa['model'],_0x283aaa[_0x677e('0x32')]);_0x29b9c0['attributes']=_[_0x677e('0x35')](_0x283aaa[_0x677e('0x31')],qs[_0x677e('0x37')](_0x511125[_0x677e('0x32')][_0x677e('0x37')]));_0x29b9c0[_0x677e('0x36')]=_0x29b9c0[_0x677e('0x36')][_0x677e('0x38')]?_0x29b9c0[_0x677e('0x36')]:_0x283aaa[_0x677e('0x31')];if(_0x511125['query'][_0x677e('0x42')]){_0x29b9c0['include']=[{'all':!![]}];}_0x29b9c0=_['merge']({},_0x29b9c0,_0x511125[_0x677e('0x41')]);return db[_0x677e('0x2d')][_0x677e('0x48')](_0x29b9c0)[_0x677e('0x26')](handleEntityNotFound(_0x16362e,null))[_0x677e('0x26')](respondWithResult(_0x16362e,null))['catch'](handleError(_0x16362e,null));};exports[_0x677e('0x49')]=function(_0x136b77,_0x3cb653){return db[_0x677e('0x2d')][_0x677e('0x49')](_0x136b77['body'],{})[_0x677e('0x26')](respondWithResult(_0x3cb653,0xc9))[_0x677e('0x4a')](handleError(_0x3cb653,null));};exports[_0x677e('0x4b')]=function(_0x496627,_0x30ed5c){if(_0x496627['body']['id']){delete _0x496627[_0x677e('0x4c')]['id'];}return db['WhatsappApplication']['find']({'where':{'id':_0x496627[_0x677e('0x47')]['id']}})[_0x677e('0x26')](handleEntityNotFound(_0x30ed5c,null))[_0x677e('0x26')](saveUpdates(_0x496627[_0x677e('0x4c')],null))['then'](respondWithResult(_0x30ed5c,null))[_0x677e('0x4a')](handleError(_0x30ed5c,null));};exports[_0x677e('0x25')]=function(_0x51b2b8,_0x5e93e9){return db[_0x677e('0x2d')][_0x677e('0x48')]({'where':{'id':_0x51b2b8[_0x677e('0x47')]['id']}})[_0x677e('0x26')](handleEntityNotFound(_0x5e93e9,null))['then'](removeEntity(_0x5e93e9,null))[_0x677e('0x4a')](handleError(_0x5e93e9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ddd=['moment','bluebird','path','../../config/environment','exports','WhatsappApplication','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','../../config/logger','api'];(function(_0x49beea,_0x47add1){var _0x27693a=function(_0x192ed8){while(--_0x192ed8){_0x49beea['push'](_0x49beea['shift']());}};_0x27693a(++_0x47add1);}(_0x6ddd,0xae));var _0xd6dd=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0x6ddd[_0x2b4411];return _0x8e41ef;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xd6dd('0x0'))(_0xd6dd('0x1'));var moment=require(_0xd6dd('0x2'));var BPromise=require(_0xd6dd('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd6dd('0x4'));var rimraf=require('rimraf');var config=require(_0xd6dd('0x5'));var attributes=require('./whatsappApplication.attributes');module[_0xd6dd('0x6')]=function(_0x27439a,_0x47005f){return _0x27439a['define'](_0xd6dd('0x7'),attributes,{'tableName':_0xd6dd('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd6dd('0x9'),'collate':_0xd6dd('0xa')});};
\ No newline at end of file
+var _0xe0c3=['path','rimraf','../../config/environment','./whatsappApplication.attributes','define','WhatsappApplication','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird','request-promise'];(function(_0x352d28,_0x444033){var _0x387d7e=function(_0x40be0e){while(--_0x40be0e){_0x352d28['push'](_0x352d28['shift']());}};_0x387d7e(++_0x444033);}(_0xe0c3,0xea));var _0x3e0c=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe0c3[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x3e0c('0x0'));var util=require('util');var logger=require(_0x3e0c('0x1'))(_0x3e0c('0x2'));var moment=require(_0x3e0c('0x3'));var BPromise=require(_0x3e0c('0x4'));var rp=require(_0x3e0c('0x5'));var fs=require('fs');var path=require(_0x3e0c('0x6'));var rimraf=require(_0x3e0c('0x7'));var config=require(_0x3e0c('0x8'));var attributes=require(_0x3e0c('0x9'));module['exports']=function(_0x530ebf,_0x163adf){return _0x530ebf[_0x3e0c('0xa')](_0x3e0c('0xb'),attributes,{'tableName':_0x3e0c('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x3e0c('0xd'),'collate':_0x3e0c('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f62=['util','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','WhatsappApplication,\x20%s,\x20%s','WhatsappApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','result','catch'];(function(_0x20610f,_0xbe2167){var _0x4ef310=function(_0x1b5395){while(--_0x1b5395){_0x20610f['push'](_0x20610f['shift']());}};_0x4ef310(++_0xbe2167);}(_0x9f62,0x154));var _0x29f6=function(_0xdccaf4,_0x4a7c8b){_0xdccaf4=_0xdccaf4-0x0;var _0x1c58b8=_0x9f62[_0xdccaf4];return _0x1c58b8;};'use strict';var _=require('lodash');var util=require(_0x29f6('0x0'));var moment=require('moment');var BPromise=require(_0x29f6('0x1'));var rs=require(_0x29f6('0x2'));var fs=require('fs');var Redis=require(_0x29f6('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x29f6('0x4'))(_0x29f6('0x5'));var config=require(_0x29f6('0x6'));var jayson=require(_0x29f6('0x7'));var client=jayson['client'][_0x29f6('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x272876,_0x9a43fe,_0x2ba602){return new BPromise(function(_0x416c6c,_0x5e9945){return client['request'](_0x272876,_0x2ba602)['then'](function(_0x549f64){logger[_0x29f6('0x9')](_0x29f6('0xa'),_0x9a43fe,'request\x20sent');logger['debug'](_0x29f6('0xb'),_0x9a43fe,_0x29f6('0xc'),JSON['stringify'](_0x549f64));if(_0x549f64[_0x29f6('0xd')]){if(_0x549f64[_0x29f6('0xd')]['code']===0x1f4){logger['error']('WhatsappApplication,\x20%s,\x20%s',_0x9a43fe,_0x549f64['error'][_0x29f6('0xe')]);return _0x5e9945(_0x549f64[_0x29f6('0xd')][_0x29f6('0xe')]);}logger[_0x29f6('0xd')](_0x29f6('0xa'),_0x9a43fe,_0x549f64[_0x29f6('0xd')][_0x29f6('0xe')]);return _0x416c6c(_0x549f64[_0x29f6('0xd')][_0x29f6('0xe')]);}else{logger[_0x29f6('0x9')](_0x29f6('0xa'),_0x9a43fe,_0x29f6('0xc'));_0x416c6c(_0x549f64[_0x29f6('0xf')][_0x29f6('0xe')]);}})[_0x29f6('0x10')](function(_0x14dd56){logger[_0x29f6('0xd')]('WhatsappApplication,\x20%s,\x20%s',_0x9a43fe,_0x14dd56);_0x5e9945(_0x14dd56);});});}
\ No newline at end of file
+var _0x008c=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info','WhatsappApplication,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','WhatsappApplication,\x20%s,\x20%s','message','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x008c,0x188));var _0xc008=function(_0x5537e6,_0xddf3dc){_0x5537e6=_0x5537e6-0x0;var _0x44115a=_0x008c[_0x5537e6];return _0x44115a;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var moment=require(_0xc008('0x2'));var BPromise=require(_0xc008('0x3'));var rs=require(_0xc008('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc008('0x5'))['db'];var utils=require(_0xc008('0x6'));var logger=require(_0xc008('0x7'))(_0xc008('0x8'));var config=require(_0xc008('0x9'));var jayson=require(_0xc008('0xa'));var client=jayson[_0xc008('0xb')][_0xc008('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x9c8cb2,_0x4af530,_0x428fa9){return new BPromise(function(_0x5aa09b,_0x30be38){return client['request'](_0x9c8cb2,_0x428fa9)['then'](function(_0x27830d){logger[_0xc008('0xd')]('WhatsappApplication,\x20%s,\x20%s',_0x4af530,'request\x20sent');logger['debug'](_0xc008('0xe'),_0x4af530,_0xc008('0xf'),JSON['stringify'](_0x27830d));if(_0x27830d[_0xc008('0x10')]){if(_0x27830d[_0xc008('0x10')][_0xc008('0x11')]===0x1f4){logger[_0xc008('0x10')](_0xc008('0x12'),_0x4af530,_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);return _0x30be38(_0x27830d['error']['message']);}logger[_0xc008('0x10')]('WhatsappApplication,\x20%s,\x20%s',_0x4af530,_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);return _0x5aa09b(_0x27830d[_0xc008('0x10')][_0xc008('0x13')]);}else{logger[_0xc008('0xd')]('WhatsappApplication,\x20%s,\x20%s',_0x4af530,'request\x20sent');_0x5aa09b(_0x27830d['result'][_0xc008('0x13')]);}})[_0xc008('0x14')](function(_0x3cafe3){logger[_0xc008('0x10')]('WhatsappApplication,\x20%s,\x20%s',_0x4af530,_0x3cafe3);_0x30be38(_0x3cafe3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bd0=['exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./whatsappInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','download','post','create','/:id/tags','tracked','whatsapp','whatsappinteraction:addtags','addTags','put','whatsappinteraction:update','update','delete','destroy','removeTags'];(function(_0x36c588,_0x445881){var _0x77ef81=function(_0x4c2de2){while(--_0x4c2de2){_0x36c588['push'](_0x36c588['shift']());}};_0x77ef81(++_0x445881);}(_0x7bd0,0x111));var _0x07bd=function(_0x45518f,_0x475a6b){_0x45518f=_0x45518f-0x0;var _0x198175=_0x7bd0[_0x45518f];return _0x198175;};'use strict';var multer=require(_0x07bd('0x0'));var util=require(_0x07bd('0x1'));var path=require(_0x07bd('0x2'));var timeout=require(_0x07bd('0x3'));var express=require(_0x07bd('0x4'));var router=express[_0x07bd('0x5')]();var fs_extra=require(_0x07bd('0x6'));var auth=require(_0x07bd('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x07bd('0x8'));var controller=require(_0x07bd('0x9'));router[_0x07bd('0xa')]('/',auth[_0x07bd('0xb')](),controller[_0x07bd('0xc')]);router[_0x07bd('0xa')](_0x07bd('0xd'),auth['isAuthenticated'](),controller[_0x07bd('0xe')]);router['get'](_0x07bd('0xf'),auth[_0x07bd('0xb')](),controller[_0x07bd('0x10')]);router['get'](_0x07bd('0x11'),auth[_0x07bd('0xb')](),controller[_0x07bd('0x12')]);router[_0x07bd('0xa')]('/:id/download',auth[_0x07bd('0xb')](),controller[_0x07bd('0x13')]);router[_0x07bd('0x14')]('/',auth[_0x07bd('0xb')](),controller[_0x07bd('0x15')]);router[_0x07bd('0x14')](_0x07bd('0x11'),auth[_0x07bd('0xb')](),controller['addMessage']);router['post'](_0x07bd('0x16'),auth[_0x07bd('0xb')](),interaction[_0x07bd('0x17')](_0x07bd('0x18'),_0x07bd('0x19')),controller[_0x07bd('0x1a')]);router[_0x07bd('0x1b')]('/:id',auth[_0x07bd('0xb')](),interaction['tracked'](_0x07bd('0x18'),_0x07bd('0x1c')),controller[_0x07bd('0x1d')]);router[_0x07bd('0x1e')](_0x07bd('0xf'),auth['isAuthenticated'](),interaction[_0x07bd('0x17')](_0x07bd('0x18'),'whatsappinteraction:destroy'),controller[_0x07bd('0x1f')]);router[_0x07bd('0x1e')](_0x07bd('0x16'),auth[_0x07bd('0xb')](),controller[_0x07bd('0x20')]);module[_0x07bd('0x21')]=router;
\ No newline at end of file
+var _0x3f8a=['create','addMessage','/:id/tags','whatsapp','whatsappinteraction:addtags','addTags','put','tracked','whatsappinteraction:update','update','delete','destroy','removeTags','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','download','post'];(function(_0x34044d,_0x10b169){var _0x6e9d0e=function(_0x2284bb){while(--_0x2284bb){_0x34044d['push'](_0x34044d['shift']());}};_0x6e9d0e(++_0x10b169);}(_0x3f8a,0x1d5));var _0xa3f8=function(_0xdd8280,_0x5696b9){_0xdd8280=_0xdd8280-0x0;var _0x1f2b3b=_0x3f8a[_0xdd8280];return _0x1f2b3b;};'use strict';var multer=require(_0xa3f8('0x0'));var util=require(_0xa3f8('0x1'));var path=require(_0xa3f8('0x2'));var timeout=require(_0xa3f8('0x3'));var express=require('express');var router=express[_0xa3f8('0x4')]();var fs_extra=require(_0xa3f8('0x5'));var auth=require(_0xa3f8('0x6'));var interaction=require(_0xa3f8('0x7'));var config=require(_0xa3f8('0x8'));var controller=require(_0xa3f8('0x9'));router[_0xa3f8('0xa')]('/',auth[_0xa3f8('0xb')](),controller[_0xa3f8('0xc')]);router[_0xa3f8('0xa')](_0xa3f8('0xd'),auth[_0xa3f8('0xb')](),controller[_0xa3f8('0xe')]);router[_0xa3f8('0xa')](_0xa3f8('0xf'),auth[_0xa3f8('0xb')](),controller[_0xa3f8('0x10')]);router['get'](_0xa3f8('0x11'),auth[_0xa3f8('0xb')](),controller[_0xa3f8('0x12')]);router[_0xa3f8('0xa')]('/:id/download',auth[_0xa3f8('0xb')](),controller[_0xa3f8('0x13')]);router[_0xa3f8('0x14')]('/',auth[_0xa3f8('0xb')](),controller[_0xa3f8('0x15')]);router[_0xa3f8('0x14')](_0xa3f8('0x11'),auth[_0xa3f8('0xb')](),controller[_0xa3f8('0x16')]);router[_0xa3f8('0x14')](_0xa3f8('0x17'),auth[_0xa3f8('0xb')](),interaction['tracked'](_0xa3f8('0x18'),_0xa3f8('0x19')),controller[_0xa3f8('0x1a')]);router[_0xa3f8('0x1b')]('/:id',auth[_0xa3f8('0xb')](),interaction[_0xa3f8('0x1c')](_0xa3f8('0x18'),_0xa3f8('0x1d')),controller[_0xa3f8('0x1e')]);router[_0xa3f8('0x1f')](_0xa3f8('0xf'),auth[_0xa3f8('0xb')](),interaction[_0xa3f8('0x1c')](_0xa3f8('0x18'),'whatsappinteraction:destroy'),controller[_0xa3f8('0x20')]);router['delete'](_0xa3f8('0x17'),auth[_0xa3f8('0xb')](),controller[_0xa3f8('0x21')]);module[_0xa3f8('0x22')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41f2=['moment','BOOLEAN','DATE','STRING','ENUM','out','sequelize'];(function(_0x379cc4,_0x5d8632){var _0xad760b=function(_0x4c908c){while(--_0x4c908c){_0x379cc4['push'](_0x379cc4['shift']());}};_0xad760b(++_0x5d8632);}(_0x41f2,0x14f));var _0x241f=function(_0x3087f6,_0x292c9f){_0x3087f6=_0x3087f6-0x0;var _0xa0fdee=_0x41f2[_0x3087f6];return _0xa0fdee;};'use strict';var Sequelize=require(_0x241f('0x0'));var moment=require(_0x241f('0x1'));module['exports']={'closed':{'type':Sequelize[_0x241f('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x241f('0x3')]},'disposition':{'type':Sequelize[_0x241f('0x4')]},'secondDisposition':{'type':Sequelize[_0x241f('0x4')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x241f('0x4')]},'phone':{'type':Sequelize[_0x241f('0x4')]},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x241f('0x5')]('in',_0x241f('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x241f('0x3')]},'lastMsgDirection':{'type':Sequelize[_0x241f('0x5')]('in',_0x241f('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xb0df=['moment','exports','BOOLEAN','DATE','STRING','ENUM','out'];(function(_0x489799,_0x52a174){var _0x5c2c49=function(_0x54a732){while(--_0x54a732){_0x489799['push'](_0x489799['shift']());}};_0x5c2c49(++_0x52a174);}(_0xb0df,0x85));var _0xfb0d=function(_0x323419,_0x2a6172){_0x323419=_0x323419-0x0;var _0x4c0be7=_0xb0df[_0x323419];return _0x4c0be7;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xfb0d('0x0'));module[_0xfb0d('0x1')]={'closed':{'type':Sequelize[_0xfb0d('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xfb0d('0x3')]},'disposition':{'type':Sequelize[_0xfb0d('0x4')]},'secondDisposition':{'type':Sequelize[_0xfb0d('0x4')]},'thirdDisposition':{'type':Sequelize[_0xfb0d('0x4')]},'note':{'type':Sequelize[_0xfb0d('0x4')]},'phone':{'type':Sequelize[_0xfb0d('0x4')]},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0xfb0d('0x5')]('in',_0xfb0d('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xfb0d('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xfb0d('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24e2=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappInteraction.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','name','send','map','fullname','TagIds','Tags','split','push','catch','WhatsappInteraction','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','select','field','color','from','tools_tags','u.id','ui.WhatsappInteractionId','user_has_whatsapp_interactions','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','left_join','users','o.id\x20=\x20i.UserId','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','expr','search','parseSearch','conditions','find','unreadMessages','value','having','`\x20>\x200','$substring','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','compact','isEmpty','WhatsappAccountId','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','resolve','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','Contact.fax','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','WhatsappInteractionId','all','rows','params','include','options','create','describe','addMessage','WhatsappMessage','omit','ids','getMessages','format','findAll','addTags','setTags','spread','Tag','emit','whatsappInteractionTags:save','removeTags','unix','root','server','files','tmp','join','attachments','CmContact','Contact','firstName','lastName','Attachment','Messages','direction','WhatsappAccount','User','Owner','Whatsapp','N.A.','closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','existsSync','createReadStream','pipe','createWriteStream','System','out','renderFile','downloadInteraction.ejs','transcript-','.pdf','createPdfFromHTML','download','log','err','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x49e773,_0x2b2fb7){var _0x67d3d0=function(_0x49a5d9){while(--_0x49a5d9){_0x49e773['push'](_0x49e773['shift']());}};_0x67d3d0(++_0x2b2fb7);}(_0x24e2,0x1c1));var _0x224e=function(_0x58addb,_0x14adec){_0x58addb=_0x58addb-0x0;var _0x154cf7=_0x24e2[_0x58addb];return _0x154cf7;};'use strict';var emlformat=require(_0x224e('0x0'));var rimraf=require(_0x224e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x224e('0x2'));var rp=require(_0x224e('0x3'));var moment=require(_0x224e('0x4'));var BPromise=require(_0x224e('0x5'));var Mustache=require('mustache');var util=require(_0x224e('0x6'));var path=require(_0x224e('0x7'));var sox=require(_0x224e('0x8'));var csv=require(_0x224e('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x224e('0xa'));var _=require(_0x224e('0xb'));var squel=require(_0x224e('0xc'));var crypto=require('crypto');var jsforce=require(_0x224e('0xd'));var deskjs=require(_0x224e('0xe'));var toCsv=require(_0x224e('0x9'));var querystring=require(_0x224e('0xf'));var Papa=require('papaparse');var Redis=require(_0x224e('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x224e('0x11'));var as=require(_0x224e('0x12'));var pdf=require('../../components/export/pdf');var hardwareService=require(_0x224e('0x13'));var logger=require(_0x224e('0x14'))(_0x224e('0x15'));var utils=require(_0x224e('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x224e('0x17'))['db'];config[_0x224e('0x18')]=_[_0x224e('0x19')](config[_0x224e('0x18')],{'host':_0x224e('0x1a'),'port':0x18eb});var socket=require(_0x224e('0x1b'))(new Redis(config[_0x224e('0x18')]));require(_0x224e('0x1c'))[_0x224e('0x1d')](socket);function respondWithStatusCode(_0x216f71,_0x9a21b0){_0x9a21b0=_0x9a21b0||0xcc;return function(_0x2116a1){if(_0x2116a1){return _0x216f71[_0x224e('0x1e')](_0x9a21b0);}return _0x216f71['status'](_0x9a21b0)[_0x224e('0x1f')]();};}function respondWithResult(_0x48156f,_0x35ea1b){_0x35ea1b=_0x35ea1b||0xc8;return function(_0x3f772a){if(_0x3f772a){return _0x48156f[_0x224e('0x20')](_0x35ea1b)[_0x224e('0x21')](_0x3f772a);}};}function respondWithFilteredResult(_0x3839b1,_0x112b82){return function(_0x24582c){if(_0x24582c){var _0x3000fd=typeof _0x112b82[_0x224e('0x22')]===_0x224e('0x23')&&typeof _0x112b82[_0x224e('0x24')]===_0x224e('0x23');var _0x3ce8c7=_0x24582c[_0x224e('0x25')];var _0x39df57=_0x3000fd?0x0:_0x112b82[_0x224e('0x22')];var _0x316628=_0x3000fd?_0x24582c['count']:_0x112b82['offset']+_0x112b82[_0x224e('0x24')];var _0x580ee3;if(_0x316628>=_0x3ce8c7){_0x316628=_0x3ce8c7;_0x580ee3=0xc8;}else{_0x580ee3=0xce;}_0x3839b1[_0x224e('0x20')](_0x580ee3);return _0x3839b1['set'](_0x224e('0x26'),_0x39df57+'-'+_0x316628+'/'+_0x3ce8c7)['json'](_0x24582c);}return null;};}function patchUpdates(_0x50c442){return function(_0x2eb041){try{jsonpatch[_0x224e('0x27')](_0x2eb041,_0x50c442,!![]);}catch(_0x2de8c5){return BPromise[_0x224e('0x28')](_0x2de8c5);}return _0x2eb041[_0x224e('0x29')]();};}function saveUpdates(_0xd3bfc8,_0x804692){return function(_0x3a4f25){if(_0x3a4f25){return _0x3a4f25[_0x224e('0x2a')](_0xd3bfc8)[_0x224e('0x2b')](function(_0x161783){return _0x161783;});}return null;};}function removeEntity(_0x35e6f1,_0x1cfa10){return function(_0x765851){if(_0x765851){return _0x765851[_0x224e('0x2c')]()[_0x224e('0x2b')](function(){_0x35e6f1[_0x224e('0x20')](0xcc)[_0x224e('0x1f')]();});}};}function handleEntityNotFound(_0x5a7bb3,_0x5495fb){return function(_0x311b6b){if(!_0x311b6b){_0x5a7bb3[_0x224e('0x1e')](0x194);}return _0x311b6b;};}function handleError(_0x2130b2,_0x3f0723){_0x3f0723=_0x3f0723||0x1f4;return function(_0x1640e5){logger['error'](_0x1640e5['stack']);if(_0x1640e5['name']){delete _0x1640e5[_0x224e('0x2d')];}_0x2130b2[_0x224e('0x20')](_0x3f0723)[_0x224e('0x2e')](_0x1640e5);};}function getInteractionUsers(_0x112221,_0x34abeb){return new BPromise(function(_0x976149,_0x2b5523){try{if(_0x34abeb[_0x112221['id']]){_0x112221['Users']=_[_0x224e('0x2f')](_0x34abeb[_0x112221['id']],function(_0x920f85){return{'id':_0x920f85['id'],'fullname':_0x920f85[_0x224e('0x30')]};});}}catch(_0x5af107){_0x2b5523(_0x5af107);}_0x976149(_0x112221);});}function getInteractionTags(_0x57e086,_0x4ccb53){return new BPromise(function(_0x30b5a7,_0x2f1303){try{if(_0x57e086[_0x224e('0x31')]){_0x57e086[_0x224e('0x32')]=[];_0x57e086[_0x224e('0x31')][_0x224e('0x33')](',')['forEach'](function(_0x3b1419){_0x57e086['Tags'][_0x224e('0x34')](_0x4ccb53[_0x3b1419]);});}delete _0x57e086[_0x224e('0x31')];}catch(_0x5b33c8){_0x2f1303(_0x5b33c8);}_0x30b5a7(_0x57e086);});}function updateWhatsappInteraction(_0x1c8746,_0x17bc67,_0x3c652a){return new BPromise(function(_0x13450b,_0x2d6307){return getInteractionUsers(_0x1c8746,_0x3c652a)['then'](function(_0x273ed5){return getInteractionTags(_0x273ed5,_0x17bc67);})[_0x224e('0x2b')](function(_0x154e5c){_0x13450b(_0x154e5c);})[_0x224e('0x35')](function(_0x3135f2){_0x2d6307(_0x3135f2);});});}exports['index']=function(_0x162b82,_0x2fc0ce){var _0x55586c={},_0x1ceebf={},_0x440932={'count':0x0,'rows':[]};var _0x2684e1=_[_0x224e('0x2f')](db[_0x224e('0x36')][_0x224e('0x37')],function(_0x5afe86){return{'name':_0x5afe86[_0x224e('0x38')],'type':_0x5afe86[_0x224e('0x39')][_0x224e('0x3a')]};});_0x1ceebf['model']=_[_0x224e('0x2f')](_0x2684e1,'name');_0x1ceebf['query']=_[_0x224e('0x3b')](_0x162b82[_0x224e('0x3c')]);_0x1ceebf[_0x224e('0x3d')]=_[_0x224e('0x3e')](_0x1ceebf[_0x224e('0x3f')],_0x1ceebf[_0x224e('0x3c')]);_0x55586c[_0x224e('0x40')]=_[_0x224e('0x3e')](_0x1ceebf['model'],qs['fields'](_0x162b82[_0x224e('0x3c')][_0x224e('0x41')]));_0x55586c[_0x224e('0x40')]=_0x55586c[_0x224e('0x40')][_0x224e('0x42')]?_0x55586c[_0x224e('0x40')]:_0x1ceebf['model'];if(!_0x162b82[_0x224e('0x3c')][_0x224e('0x43')](_0x224e('0x44'))){_0x55586c[_0x224e('0x24')]=qs[_0x224e('0x24')](_0x162b82['query'][_0x224e('0x24')]);_0x55586c[_0x224e('0x22')]=qs[_0x224e('0x22')](_0x162b82['query']['offset']);}_0x55586c['order']=qs[_0x224e('0x45')](_0x162b82[_0x224e('0x3c')][_0x224e('0x45')]);_0x55586c[_0x224e('0x46')]=qs[_0x224e('0x3d')](_[_0x224e('0x47')](_0x162b82[_0x224e('0x3c')],_0x1ceebf[_0x224e('0x3d')]),_0x2684e1);var _0x5c927c=[];var _0x1220e5=squel[_0x224e('0x48')]()[_0x224e('0x49')]('id')[_0x224e('0x49')]('name')[_0x224e('0x49')](_0x224e('0x4a'))[_0x224e('0x4b')](_0x224e('0x4c'));var _0x233576=squel[_0x224e('0x48')]()[_0x224e('0x49')](_0x224e('0x4d'))[_0x224e('0x49')]('u.fullname')[_0x224e('0x49')](_0x224e('0x4e'))[_0x224e('0x4b')](_0x224e('0x4f'),'ui')['left_join']('users','u',_0x224e('0x50'));var _0x379952=squel[_0x224e('0x48')]()['from'](_0x224e('0x51'),'i')['left_join'](_0x224e('0x52'),'c',_0x224e('0x53'))[_0x224e('0x54')](_0x224e('0x55'),'o',_0x224e('0x56'))[_0x224e('0x54')](_0x224e('0x57'),'a',_0x224e('0x58'))[_0x224e('0x54')](_0x224e('0x59'),'me',_0x224e('0x5a'))[_0x224e('0x54')](_0x224e('0x5b'),'it','it.WhatsappInteractionId\x20=\x20i.id')['left_join'](_0x224e('0x4c'),'t','t.id\x20=\x20it.TagId');var _0x7c6c47=squel['expr']();var _0x3f64a9=[];var _0x14ca73=squel[_0x224e('0x5c')]();var _0x5f2bad;if(_0x162b82[_0x224e('0x3c')][_0x224e('0x5d')]){_0x5f2bad=as[_0x224e('0x5e')](_0x162b82[_0x224e('0x3c')]['search']);var _0x540755=_0x5f2bad['sqlOperator'];for(var _0x237fcf=0x0;_0x237fcf<_0x5f2bad[_0x224e('0x5f')][_0x224e('0x42')];_0x237fcf++){var _0xdbb929=_0x5f2bad['conditions'][_0x237fcf];var _0x1e759d='i';var _0x5e030b=_[_0x224e('0x60')](_0x2684e1,['name',_0xdbb929[_0x224e('0x49')]]);if(!_0x5e030b){switch(_0xdbb929[_0x224e('0x49')]){case _0x224e('0x61'):if(_0xdbb929[_0x224e('0x62')]==0x1){_0x379952[_0x224e('0x63')]('`'+_0xdbb929[_0x224e('0x49')]+'`\x20=\x200');}else{_0x379952[_0x224e('0x63')]('`'+_0xdbb929[_0x224e('0x49')]+_0x224e('0x64'));}break;case'Contact':if(_0xdbb929['operator']===_0x224e('0x65')){if(_0xdbb929[_0x224e('0x62')][_0x224e('0x33')]('\x20')[_0x224e('0x42')]>0x1){_0x7c6c47[_0x540755]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0xdbb929['value']),null);}else{var _0x28dd07='%'+_0xdbb929['value']+'%';_0x7c6c47[_0x540755](_0x224e('0x66'),_0x28dd07,_0x28dd07,_0x28dd07);}}else{_0x5e030b=_[_0x224e('0x60')](_0x2684e1,[_0x224e('0x2d'),_0x224e('0x67')]);_0xdbb929['field']=_0x224e('0x67');_0xac289c=as[_0x224e('0x68')](_0x1e759d,_0x5e030b[_0x224e('0x39')],_0xdbb929);_0x7c6c47[_0x540755](_0xac289c[_0x224e('0x69')],_0xac289c[_0x224e('0x62')][_0x224e('0x6a')],_0xac289c[_0x224e('0x62')][_0x224e('0x1f')]);}break;case'Tag':var _0x440f7c=_0xdbb929['value'][_0x224e('0x33')](',')[_0x224e('0x2f')](function(_0x16cd3c){return Number(_0x16cd3c);});_0x440f7c[_0x224e('0x6b')](function(_0x4e65a0){_0x14ca73['or'](_0x224e('0x6c'),'%,'+_0x4e65a0+',%');});_0x3f64a9=_[_0x224e('0x6d')](_0x3f64a9,_0x440f7c);break;case'User':if(_0xdbb929[_0x224e('0x6e')]==='$substring'){_0x7c6c47[_0x540755](_0x224e('0x6f'),'%'+_0xdbb929[_0x224e('0x62')]+'%',null);}else{_0x5e030b=_[_0x224e('0x60')](_0x2684e1,[_0x224e('0x2d'),_0x224e('0x70')]);_0xdbb929[_0x224e('0x49')]=_0x224e('0x70');_0xac289c=as['buildExpression'](_0x1e759d,_0x5e030b['type'],_0xdbb929);_0x7c6c47[_0x540755](_0xac289c[_0x224e('0x69')],_0xac289c[_0x224e('0x62')][_0x224e('0x6a')],_0xac289c[_0x224e('0x62')][_0x224e('0x1f')]);}break;case _0x224e('0x71'):_0xac289c=as[_0x224e('0x68')]('me',null,_0xdbb929);_0x7c6c47[_0x540755](_0xac289c[_0x224e('0x69')],_0xac289c[_0x224e('0x62')][_0x224e('0x6a')],_0xac289c[_0x224e('0x62')][_0x224e('0x1f')]);break;}}else{var _0xac289c=as[_0x224e('0x68')](_0x1e759d,_0x5e030b[_0x224e('0x39')],_0xdbb929);_0x7c6c47[_0x540755](_0xac289c[_0x224e('0x69')],_0xac289c[_0x224e('0x62')][_0x224e('0x6a')],_0xac289c[_0x224e('0x62')][_0x224e('0x1f')]);}}}else{var _0x5d8668=_(_0x162b82['query'])[_0x224e('0x3b')]()[_0x224e('0x2f')](function(_0x121e5a){return _['some'](_0x2684e1,[_0x224e('0x2d'),_0x121e5a])?_0x121e5a:undefined;})[_0x224e('0x72')]()[_0x224e('0x62')]();if(!_[_0x224e('0x73')](_0x5d8668)){_0x5d8668[_0x224e('0x6b')](function(_0x362ba2){if(_0x362ba2===_0x224e('0x74')){_0x379952[_0x224e('0x46')](_0x224e('0x75'),[][_0x224e('0x76')](_0x162b82['query'][_0x362ba2]));}else if(_0x362ba2===_0x224e('0x77')){var _0x1b7425=JSON[_0x224e('0x78')](_0x162b82['query'][_0x362ba2])[_0x224e('0x79')];var _0x333997=JSON[_0x224e('0x78')](_0x162b82['query'][_0x362ba2])[_0x224e('0x7a')];_0x379952['where'](_0x224e('0x7b'),_0x1b7425,_0x333997);}else{if(_0x162b82[_0x224e('0x3c')][_0x362ba2]===_0x224e('0x7c')){_0x379952[_0x224e('0x46')]('i.'+_0x362ba2+'\x20IS\x20NULL');}else{_0x379952['where']('i.'+_0x362ba2+_0x224e('0x7d'),_0x162b82[_0x224e('0x3c')][_0x362ba2]);}}});}if(_0x162b82['query'][_0x224e('0x7e')]){if(_0x162b82[_0x224e('0x3c')][_0x224e('0x7e')]==0x1){_0x379952[_0x224e('0x63')](_0x224e('0x7f'));}else{_0x379952[_0x224e('0x63')]('`unreadMessages`\x20>\x200');}}if(_0x162b82[_0x224e('0x3c')][_0x224e('0x80')]){_0x3f64a9=_[_0x224e('0x81')](_0x162b82['query'][_0x224e('0x80')])?_0x162b82[_0x224e('0x3c')][_0x224e('0x80')]:new Array(_0x162b82[_0x224e('0x3c')][_0x224e('0x80')]);_0x3f64a9[_0x224e('0x6b')](function(_0x71aa26){_0x14ca73['or'](_0x224e('0x6c'),'%,'+_0x71aa26+',%');});}if(_0x162b82[_0x224e('0x3c')]['filter']){var _0x3e2736=_0x162b82[_0x224e('0x3c')][_0x224e('0x82')][_0x224e('0x83')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x224e('0x84')](_0x3e2736)){_0x7c6c47['or'](_0x224e('0x85'),_0x3e2736+'%')['or'](_0x224e('0x86'),_0x3e2736+'%');}else{_0x7c6c47['or'](_0x224e('0x87'),qs['getFullTextValue'](_0x3e2736))['or'](_0x224e('0x88'),_0x3e2736+'%');}}}_0x379952['where'](_0x7c6c47);_0x379952[_0x224e('0x89')](_0x224e('0x8a'));var _0x474280={'type':db['Sequelize'][_0x224e('0x8b')][_0x224e('0x8c')],'raw':!![]};var _0xbe219b=_0x379952[_0x224e('0x8d')]();_0xbe219b[_0x224e('0x49')](_0x224e('0x8a'));_0xbe219b['field'](_0x224e('0x8e'),_0x224e('0x61'));if(_0x55586c[_0x224e('0x8f')]){_0x55586c['order'][_0x224e('0x6b')](function(_0x416c2f){var _0x460f67=_0x416c2f[0x0]==='contactName'?_0x416c2f[0x0]:'i.'+_0x416c2f[0x0];_0x379952[_0x224e('0x8f')](_0x460f67,_0x416c2f[0x1]===_0x224e('0x90')?![]:!![]);});}if(!_[_0x224e('0x73')](_0x3f64a9)){_0x379952[_0x224e('0x63')](_0x14ca73);_0xbe219b[_0x224e('0x46')]('t.id\x20IN\x20?',_0x3f64a9);}BPromise[_0x224e('0x91')]()[_0x224e('0x2b')](function(){if(!_0x5f2bad){if(_0x162b82['query']['WhatsappAccountId'])return;_0xbe219b[_0x224e('0x46')]('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');_0x379952[_0x224e('0x46')](_0x224e('0x92'));return;}if(_0x162b82[_0x224e('0x93')][_0x224e('0x94')]!==_0x224e('0x95'))return;return _0x162b82['user'][_0x224e('0x96')]({'attributes':['id'],'raw':!![]})['then'](function(_0x520e03){if(_[_0x224e('0x73')](_0x520e03)){_0xbe219b['where'](_0x224e('0x97'));_0x379952[_0x224e('0x46')](_0x224e('0x97'));}else{_0xbe219b[_0x224e('0x46')](_0x224e('0x75'),_[_0x224e('0x2f')](_0x520e03,'id'));_0x379952[_0x224e('0x46')](_0x224e('0x75'),_[_0x224e('0x2f')](_0x520e03,'id'));}});})[_0x224e('0x2b')](function(){if(_0x162b82[_0x224e('0x93')][_0x224e('0x94')]===_0x224e('0x95')&&!_0x5f2bad&&!_0x162b82[_0x224e('0x3c')][_0x224e('0x74')])return[];return db[_0x224e('0x98')][_0x224e('0x3c')](_0xbe219b[_0x224e('0x99')](),_0x474280);})[_0x224e('0x2b')](function(_0x40e02c){_0x440932[_0x224e('0x25')]=_0x40e02c[_0x224e('0x42')];if(_0x440932[_0x224e('0x25')]===0x0)return[];return db['sequelize'][_0x224e('0x3c')](_0x1220e5[_0x224e('0x99')](),_0x474280)['then'](function(_0x2dea2a){_0x5c927c=_[_0x224e('0x9a')](_0x2dea2a,'id');_0x474280=_[_0x224e('0x9b')](_0x474280,{'model':db['WhatsappInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x162b82[_0x224e('0x3c')][_0x224e('0x41')]){_0x55586c[_0x224e('0x40')][_0x224e('0x6b')](function(_0x809503){_0x379952[_0x224e('0x49')]('i.'+_0x809503);});}else{_0x379952[_0x224e('0x49')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x224e('0x61'));_0x379952[_0x224e('0x49')](_0x224e('0x9c'),_0x224e('0x9d'));_0x379952[_0x224e('0x49')](_0x224e('0x9e'),'Account.mandatoryDisposition');_0x379952[_0x224e('0x49')](_0x224e('0x9f'),_0x224e('0xa0'));_0x379952['field'](_0x224e('0xa1'));_0x379952[_0x224e('0x49')](_0x224e('0xa2'),_0x224e('0xa3'));_0x379952['field'](_0x224e('0xa4'),_0x224e('0xa5'));_0x379952[_0x224e('0x49')](_0x224e('0xa6'),_0x224e('0xa7'));_0x379952[_0x224e('0x49')]('c.phone',_0x224e('0xa8'));_0x379952[_0x224e('0x49')](_0x224e('0xa9'),'Contact.mobile');_0x379952[_0x224e('0x49')]('c.fax',_0x224e('0xaa'));_0x379952['field']('o.fullname',_0x224e('0xab'));_0x379952['field'](_0x224e('0xac'),'Owner.internal');_0x379952['field'](_0x224e('0xad'),_0x224e('0x31'));}if(_0x55586c[_0x224e('0x24')])_0x379952['limit'](_0x55586c['limit']);if(_0x55586c[_0x224e('0x22')])_0x379952[_0x224e('0x22')](_0x55586c[_0x224e('0x22')]);return db['sequelize'][_0x224e('0x3c')](_0x379952[_0x224e('0x99')](),_0x474280);})['then'](function(_0x52dfac){if(_0x52dfac[_0x224e('0x42')]>0x0)_0x233576[_0x224e('0x46')]('ui.WhatsappInteractionId\x20IN\x20?',_[_0x224e('0x2f')](_0x52dfac,'id'));return db[_0x224e('0x98')][_0x224e('0x3c')](_0x233576['toString'](),_0x474280)['then'](function(_0x49d88d){var _0x495980=_[_0x224e('0xae')](_0x49d88d,_0x224e('0xaf'));var _0x3be8f0=[];_0x52dfac[_0x224e('0x6b')](function(_0x203dfa){_0x3be8f0['push'](updateWhatsappInteraction(_0x203dfa,_0x5c927c,_0x495980));});return BPromise[_0x224e('0xb0')](_0x3be8f0);});});})[_0x224e('0x2b')](function(_0xa1e99e){_0x440932[_0x224e('0xb1')]=_0xa1e99e;return _0x440932;})[_0x224e('0x2b')](respondWithFilteredResult(_0x2fc0ce,_0x55586c))[_0x224e('0x35')](handleError(_0x2fc0ce,null));};exports['show']=function(_0x1f8b01,_0x1d8ca1){var _0x2abb27={'raw':![],'where':{'id':_0x1f8b01[_0x224e('0xb2')]['id']}},_0x1bb728={};_0x1bb728[_0x224e('0x3f')]=_[_0x224e('0x3b')](db['WhatsappInteraction'][_0x224e('0x37')]);_0x1bb728[_0x224e('0x3c')]=_['keys'](_0x1f8b01[_0x224e('0x3c')]);_0x1bb728[_0x224e('0x3d')]=_[_0x224e('0x3e')](_0x1bb728[_0x224e('0x3f')],_0x1bb728['query']);_0x2abb27[_0x224e('0x40')]=_[_0x224e('0x3e')](_0x1bb728['model'],qs[_0x224e('0x41')](_0x1f8b01[_0x224e('0x3c')][_0x224e('0x41')]));_0x2abb27[_0x224e('0x40')]=_0x2abb27['attributes']['length']?_0x2abb27[_0x224e('0x40')]:_0x1bb728[_0x224e('0x3f')];if(_0x1f8b01[_0x224e('0x3c')]['includeAll']){_0x2abb27[_0x224e('0xb3')]=[{'all':!![]}];}_0x2abb27=_['merge']({},_0x2abb27,_0x1f8b01[_0x224e('0xb4')]);return db[_0x224e('0x36')][_0x224e('0x60')](_0x2abb27)[_0x224e('0x2b')](handleEntityNotFound(_0x1d8ca1,null))[_0x224e('0x2b')](respondWithResult(_0x1d8ca1,null))[_0x224e('0x35')](handleError(_0x1d8ca1,null));};exports[_0x224e('0xb5')]=function(_0x27d601,_0x4d7150){return db[_0x224e('0x36')][_0x224e('0xb5')](_0x27d601[_0x224e('0x71')],{})[_0x224e('0x2b')](respondWithResult(_0x4d7150,0xc9))['catch'](handleError(_0x4d7150,null));};exports[_0x224e('0x2a')]=function(_0x41350f,_0x5c489f){if(_0x41350f[_0x224e('0x71')]['id']){delete _0x41350f[_0x224e('0x71')]['id'];}return db[_0x224e('0x36')][_0x224e('0x60')]({'where':{'id':_0x41350f[_0x224e('0xb2')]['id']}})[_0x224e('0x2b')](handleEntityNotFound(_0x5c489f,null))[_0x224e('0x2b')](saveUpdates(_0x41350f[_0x224e('0x71')],null))[_0x224e('0x2b')](respondWithResult(_0x5c489f,null))[_0x224e('0x35')](handleError(_0x5c489f,null));};exports[_0x224e('0x2c')]=function(_0x2461d7,_0x48c8b2){return db[_0x224e('0x36')][_0x224e('0x60')]({'where':{'id':_0x2461d7[_0x224e('0xb2')]['id']}})[_0x224e('0x2b')](handleEntityNotFound(_0x48c8b2,null))[_0x224e('0x2b')](removeEntity(_0x48c8b2,null))[_0x224e('0x35')](handleError(_0x48c8b2,null));};exports[_0x224e('0xb6')]=function(_0x1680eb,_0x5c326a){return db['WhatsappInteraction'][_0x224e('0xb6')]()[_0x224e('0x2b')](respondWithResult(_0x5c326a,null))[_0x224e('0x35')](handleError(_0x5c326a,null));};exports[_0x224e('0xb7')]=function(_0x54280b,_0x52fb7c,_0x4817e3){return db[_0x224e('0xb8')][_0x224e('0x60')]({'where':{'id':_0x54280b[_0x224e('0xb2')]['id']}})[_0x224e('0x2b')](handleEntityNotFound(_0x52fb7c,null))[_0x224e('0x2b')](function(_0x366209){if(_0x366209){return _0x366209[_0x224e('0xb7')](_0x54280b[_0x224e('0x71')]['ids'],_[_0x224e('0xb9')](_0x54280b[_0x224e('0x71')],[_0x224e('0xba'),'id'])||{});}})['then'](respondWithResult(_0x52fb7c,null))[_0x224e('0x35')](handleError(_0x52fb7c,null));};exports[_0x224e('0xbb')]=function(_0x11fde8,_0x58b7ad,_0x3f7760){var _0x1b12bb={'raw':![],'where':{}};var _0x3476d1={};var _0x3840f8={'count':0x0,'rows':[]};return db[_0x224e('0x36')]['findOne']({'where':{'id':_0x11fde8[_0x224e('0xb2')]['id']}})[_0x224e('0x2b')](handleEntityNotFound(_0x58b7ad,null))[_0x224e('0x2b')](function(_0x5e80f8){if(_0x5e80f8){_0x3476d1[_0x224e('0x3f')]=_['keys'](db['WhatsappMessage'][_0x224e('0x37')]);_0x3476d1['query']=_[_0x224e('0x3b')](_0x11fde8['query']);_0x3476d1[_0x224e('0x3d')]=_[_0x224e('0x3e')](_0x3476d1[_0x224e('0x3f')],_0x3476d1[_0x224e('0x3c')]);_0x1b12bb[_0x224e('0x40')]=_[_0x224e('0x3e')](_0x3476d1[_0x224e('0x3f')],qs[_0x224e('0x41')](_0x11fde8[_0x224e('0x3c')][_0x224e('0x41')]));_0x1b12bb[_0x224e('0x40')]=_0x1b12bb[_0x224e('0x40')][_0x224e('0x42')]?_0x1b12bb[_0x224e('0x40')]:_0x3476d1['model'];if(!_0x11fde8[_0x224e('0x3c')][_0x224e('0x43')](_0x224e('0x44'))){_0x1b12bb[_0x224e('0x24')]=qs['limit'](_0x11fde8[_0x224e('0x3c')][_0x224e('0x24')]);_0x1b12bb[_0x224e('0x22')]=qs[_0x224e('0x22')](_0x11fde8[_0x224e('0x3c')][_0x224e('0x22')]);}_0x1b12bb[_0x224e('0x8f')]=qs['sort'](_0x11fde8[_0x224e('0x3c')][_0x224e('0x45')]);_0x1b12bb['where']=qs[_0x224e('0x3d')](_[_0x224e('0x47')](_0x11fde8[_0x224e('0x3c')],_0x3476d1[_0x224e('0x3d')]));_0x1b12bb['where'][_0x224e('0xaf')]=_0x5e80f8['id'];if(_0x11fde8['query'][_0x224e('0x82')]){_0x1b12bb[_0x224e('0x46')]=_[_0x224e('0x9b')](_0x1b12bb[_0x224e('0x46')],{'$or':_['map'](_0x1b12bb[_0x224e('0x40')],function(_0x32c460){var _0x2d4987={};_0x2d4987[_0x32c460]={'$like':'%'+_0x11fde8[_0x224e('0x3c')][_0x224e('0x82')]+'%'};return _0x2d4987;})});}if(_0x11fde8[_0x224e('0x3c')]['$gte']){var _0x518c80=_0x11fde8[_0x224e('0x3c')][_0x224e('0x79')][_0x224e('0x33')](',');var _0x2b2459={};_0x2b2459[_0x518c80[0x0]]={'$gte':moment(_0x518c80[0x1])[_0x224e('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')};_0x1b12bb['where']=_['merge'](_0x1b12bb[_0x224e('0x46')],_0x2b2459);}_0x1b12bb=_[_0x224e('0x9b')]({},_0x1b12bb,_0x11fde8[_0x224e('0xb4')]);return db[_0x224e('0xb8')][_0x224e('0x25')]({'where':_0x1b12bb[_0x224e('0x46')]})[_0x224e('0x2b')](function(_0x2b6cf5){_0x3840f8[_0x224e('0x25')]=_0x2b6cf5;if(_0x11fde8[_0x224e('0x3c')]['includeAll']){_0x1b12bb[_0x224e('0xb3')]=[{'all':!![]}];}return db[_0x224e('0xb8')][_0x224e('0xbd')](_0x1b12bb);})[_0x224e('0x2b')](function(_0x307580){_0x3840f8['rows']=_0x307580;return _0x3840f8;});}})[_0x224e('0x2b')](respondWithFilteredResult(_0x58b7ad,_0x1b12bb))[_0x224e('0x35')](handleError(_0x58b7ad,null));};exports[_0x224e('0xbe')]=function(_0x3b8df9,_0x541d8b,_0x33473f){return db[_0x224e('0x36')][_0x224e('0x60')]({'where':{'id':_0x3b8df9[_0x224e('0xb2')]['id']}})[_0x224e('0x2b')](handleEntityNotFound(_0x541d8b,null))[_0x224e('0x2b')](function(_0x114a78){if(_0x114a78){return _0x114a78[_0x224e('0xbf')](_0x3b8df9[_0x224e('0x71')]['ids'],_[_0x224e('0xb9')](_0x3b8df9[_0x224e('0x71')],['ids','id'])||{})[_0x224e('0xc0')](function(){return db[_0x224e('0xc1')][_0x224e('0xbd')]({'attributes':['id',_0x224e('0x2d'),_0x224e('0x4a')],'where':{'id':_0x3b8df9[_0x224e('0x71')]['ids']}});})['then'](function(_0x19157e){socket[_0x224e('0xc2')](_0x224e('0xc3'),{'id':Number(_0x3b8df9[_0x224e('0xb2')]['id']),'tags':_0x19157e||[]});return{'id':Number(_0x3b8df9['params']['id']),'tags':_0x19157e||[]};});}})[_0x224e('0x2b')](respondWithResult(_0x541d8b,null))[_0x224e('0x35')](handleError(_0x541d8b,null));};exports[_0x224e('0xc4')]=function(_0x590b0c,_0x417732,_0x2a0ba0){return db['WhatsappInteraction']['find']({'where':{'id':_0x590b0c[_0x224e('0xb2')]['id']}})[_0x224e('0x2b')](handleEntityNotFound(_0x417732,null))['then'](function(_0x1faace){if(_0x1faace){return _0x1faace[_0x224e('0xc4')](_0x590b0c['query'][_0x224e('0xba')]);}})['then'](respondWithStatusCode(_0x417732,null))['catch'](handleError(_0x417732,null));};exports['download']=function(_0x4881fd,_0x5ef7c0){var _0x3f319c=moment()[_0x224e('0xc5')]()[_0x224e('0x99')]();var _0x4c10a6=path['join'](config[_0x224e('0xc6')],_0x224e('0xc7'),_0x224e('0xc8'),_0x224e('0xc9'));var _0x5e22cd=path[_0x224e('0xca')](config[_0x224e('0xc6')],_0x224e('0xc7'),_0x224e('0xc8'),_0x224e('0xcb'));var _0x5d55f8=path[_0x224e('0xca')](_0x4c10a6,_0x3f319c);var _0x5efdfb=util[_0x224e('0xbc')]('transcript-%d-%s.zip',_0x4881fd[_0x224e('0xb2')]['id'],_0x3f319c);var _0x408c81=path['join'](_0x4c10a6,_0x5efdfb);var _0x1a7c51=[];_0x1a7c51[_0x224e('0x34')]({'model':db['User'],'as':'User','attributes':['id',_0x224e('0x30')],'raw':!![]});_0x1a7c51[_0x224e('0x34')]({'model':db[_0x224e('0xcc')],'as':_0x224e('0xcd'),'attributes':['id',_0x224e('0xce'),_0x224e('0xcf')],'raw':!![]});if(_0x4881fd[_0x224e('0x3c')][_0x224e('0xcb')]){_0x1a7c51[_0x224e('0x34')]({'model':db[_0x224e('0xd0')],'as':_0x224e('0xd0'),'raw':!![]});}var _0x85562e=[{'model':db['WhatsappMessage'],'as':_0x224e('0xd1'),'attributes':['id','body',_0x224e('0x77'),_0x224e('0xd2'),'secret',_0x224e('0x7e')],'include':_0x1a7c51}];_0x85562e[_0x224e('0x34')]({'model':db[_0x224e('0xd3')],'as':'Account','attributes':['id','name']});_0x85562e[_0x224e('0x34')]({'model':db[_0x224e('0xd4')],'as':_0x224e('0xd5'),'attributes':['id','fullname']});return db[_0x224e('0x36')]['find']({'where':{'id':_0x4881fd[_0x224e('0xb2')]['id']},'include':_0x85562e})[_0x224e('0x2b')](handleEntityNotFound(_0x5ef7c0,null))[_0x224e('0x2b')](function(_0xc1647a){if(_0xc1647a){var _0x5068fa=_0xc1647a['get']({'plain':!![]});fs['mkdirSync'](_0x5d55f8);var _0x19c34e={'channel':_0x224e('0xd6'),'account':_0x5068fa['Account'][_0x224e('0x2d')],'agent':_0x5068fa[_0x224e('0xd5')]?_0x5068fa[_0x224e('0xd5')]['fullname']:_0x224e('0xd7'),'createdAt':moment(_0x5068fa[_0x224e('0x77')])[_0x224e('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')[_0x224e('0x99')](),'closedAt':_0x5068fa[_0x224e('0xd8')]?moment(_0x5068fa[_0x224e('0xd9')])[_0x224e('0xbc')](_0x224e('0xda'))[_0x224e('0x99')]():'','disposition':_0x5068fa['disposition'],'messages':_(_0x5068fa['Messages'])[_0x224e('0x82')]({'secret':![]})[_0x224e('0x2f')](function(_0x595483){if(_0x595483[_0x224e('0xd0')]){var _0x3ab471=path[_0x224e('0xca')](_0x5e22cd,_0x595483[_0x224e('0xd0')]['basename']);if(fs[_0x224e('0xdb')](_0x3ab471)){fs[_0x224e('0xdc')](_0x3ab471)[_0x224e('0xdd')](fs[_0x224e('0xde')](path[_0x224e('0xca')](_0x5d55f8,_0x595483[_0x224e('0xd0')]['basename'])));}}return{'date':moment(_0x595483[_0x224e('0x77')])[_0x224e('0xbc')](_0x224e('0xda'))[_0x224e('0x99')](),'sender':_0x595483[_0x224e('0xd2')]==='out'?_0x595483[_0x224e('0xd4')]?_0x595483['User'][_0x224e('0x30')]:_0x224e('0xdf'):_0x595483[_0x224e('0xcd')][_0x224e('0xce')]+(_0x595483['Contact'][_0x224e('0xcf')]?'\x20'+_0x595483[_0x224e('0xcd')][_0x224e('0xcf')]:''),'body':_0x595483[_0x224e('0xd0')]?_0x595483['Attachment']['basename']:_0x595483['body'],'direction':_0x595483[_0x224e('0xd2')]===_0x224e('0xe0')?'A':'C','secret':_0x595483['secret'],'read':_0x595483[_0x224e('0x7e')],'attachment':_0x595483[_0x224e('0xd0')]};})[_0x224e('0x62')]()};return ejs[_0x224e('0xe1')](path[_0x224e('0xca')](config[_0x224e('0xc6')],_0x224e('0xc7'),'views',_0x224e('0xe2')),{'interaction':_0x19c34e})[_0x224e('0x2b')](function(_0x37ee5f){var _0x2de923=path[_0x224e('0xca')](_0x5d55f8,_0x224e('0xe3')+_0x5068fa['id']+'-'+_0x3f319c+_0x224e('0xe4'));var _0x42674e={'path':_0x2de923,'channel':_0x224e('0xd6'),'interactionId':_0x5068fa['id']};return pdf[_0x224e('0xe5')](_0x37ee5f,_0x42674e);})[_0x224e('0x2b')](function(){return new BPromise(function(_0x17faa7,_0x53fa18){zipdir(_0x5d55f8,{'saveTo':_0x408c81},function(_0x280818,_0x3cba54){if(_0x280818)return _0x53fa18(_0x280818);return _0x17faa7(_0x3cba54);});})[_0x224e('0x2b')](function(){return new BPromise(function(_0x51fdbf,_0x594e32){rimraf(_0x5d55f8,function(_0x4b7ec5){if(_0x4b7ec5)_0x594e32(_0x4b7ec5);return _0x51fdbf();});});})[_0x224e('0x2b')](function(){return _0x5ef7c0[_0x224e('0xe6')](_0x408c81,_0x5efdfb,function(_0x59681e){if(_0x59681e){console[_0x224e('0xe7')](_0x224e('0xe8'),_0x59681e);}else{fs[_0x224e('0xe9')](_0x408c81);}});});});}else{return _0x5ef7c0[_0x224e('0x1e')](0xc8);}})[_0x224e('0x35')](handleError(_0x5ef7c0,null));};
\ No newline at end of file
+var _0x37a4=['offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','TagIds','split','forEach','push','catch','index','map','WhatsappInteraction','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','select','field','from','tools_tags','u.id','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','o.id\x20=\x20i.UserId','whatsapp_accounts','a.id\x20=\x20i.WhatsappAccountId','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','length','conditions','find','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','some','compact','isEmpty','WhatsappAccountId','where','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','order','contactName','DESC','resolve','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','i.WhatsappAccountId\x20IN\x20?','sequelize','toString','keyBy','merge','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','o.fullname','Owner.fullname','Owner.internal','ui.WhatsappInteractionId\x20IN\x20?','WhatsappInteractionId','all','rows','show','includeAll','include','options','create','body','describe','addMessage','WhatsappMessage','params','ids','omit','getMessages','format','findAll','setTags','spread','Tag','color','emit','removeTags','unix','join','root','server','tmp','files','transcript-%d-%s.zip','User','CmContact','firstName','lastName','attachments','Attachment','Messages','WhatsappAccount','Account','Owner','fullname','get','mkdirSync','Whatsapp','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt','basename','createReadStream','pipe','out','System','direction','secret','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','download','log','eml-format','zip-dir','request-promise','moment','bluebird','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./whatsappInteraction.socket','register','sendStatus','status','end','json'];(function(_0x1e1299,_0x4fbdf0){var _0x3cfaf9=function(_0x256a66){while(--_0x256a66){_0x1e1299['push'](_0x1e1299['shift']());}};_0x3cfaf9(++_0x4fbdf0);}(_0x37a4,0xcb));var _0x437a=function(_0x57c231,_0x200a3f){_0x57c231=_0x57c231-0x0;var _0x2d7935=_0x37a4[_0x57c231];return _0x2d7935;};'use strict';var emlformat=require(_0x437a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x437a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x437a('0x2'));var moment=require(_0x437a('0x3'));var BPromise=require(_0x437a('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x437a('0x5'));var sox=require(_0x437a('0x6'));var csv=require(_0x437a('0x7'));var ejs=require(_0x437a('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x437a('0x9'));var squel=require(_0x437a('0xa'));var crypto=require('crypto');var jsforce=require(_0x437a('0xb'));var deskjs=require(_0x437a('0xc'));var toCsv=require(_0x437a('0x7'));var querystring=require(_0x437a('0xd'));var Papa=require(_0x437a('0xe'));var Redis=require(_0x437a('0xf'));var authService=require(_0x437a('0x10'));var qs=require(_0x437a('0x11'));var as=require(_0x437a('0x12'));var pdf=require(_0x437a('0x13'));var hardwareService=require(_0x437a('0x14'));var logger=require('../../config/logger')(_0x437a('0x15'));var utils=require(_0x437a('0x16'));var config=require(_0x437a('0x17'));var licenseUtil=require(_0x437a('0x18'));var db=require(_0x437a('0x19'))['db'];config['redis']=_[_0x437a('0x1a')](config['redis'],{'host':_0x437a('0x1b'),'port':0x18eb});var socket=require(_0x437a('0x1c'))(new Redis(config[_0x437a('0x1d')]));require(_0x437a('0x1e'))[_0x437a('0x1f')](socket);function respondWithStatusCode(_0x89cb08,_0x372161){_0x372161=_0x372161||0xcc;return function(_0x1a1956){if(_0x1a1956){return _0x89cb08[_0x437a('0x20')](_0x372161);}return _0x89cb08[_0x437a('0x21')](_0x372161)[_0x437a('0x22')]();};}function respondWithResult(_0x16aa9c,_0x4a44d6){_0x4a44d6=_0x4a44d6||0xc8;return function(_0x469122){if(_0x469122){return _0x16aa9c['status'](_0x4a44d6)[_0x437a('0x23')](_0x469122);}};}function respondWithFilteredResult(_0x20173b,_0x170ba3){return function(_0x60f54b){if(_0x60f54b){var _0x3d1a23=typeof _0x170ba3[_0x437a('0x24')]==='undefined'&&typeof _0x170ba3[_0x437a('0x25')]===_0x437a('0x26');var _0x2b04d3=_0x60f54b['count'];var _0x229ef2=_0x3d1a23?0x0:_0x170ba3['offset'];var _0x2d7088=_0x3d1a23?_0x60f54b[_0x437a('0x27')]:_0x170ba3['offset']+_0x170ba3[_0x437a('0x25')];var _0x4b19ba;if(_0x2d7088>=_0x2b04d3){_0x2d7088=_0x2b04d3;_0x4b19ba=0xc8;}else{_0x4b19ba=0xce;}_0x20173b[_0x437a('0x21')](_0x4b19ba);return _0x20173b[_0x437a('0x28')](_0x437a('0x29'),_0x229ef2+'-'+_0x2d7088+'/'+_0x2b04d3)[_0x437a('0x23')](_0x60f54b);}return null;};}function patchUpdates(_0x263b61){return function(_0x40bcfd){try{jsonpatch[_0x437a('0x2a')](_0x40bcfd,_0x263b61,!![]);}catch(_0x1b49d8){return BPromise[_0x437a('0x2b')](_0x1b49d8);}return _0x40bcfd[_0x437a('0x2c')]();};}function saveUpdates(_0x1adcc7,_0x46ebad){return function(_0x53089f){if(_0x53089f){return _0x53089f[_0x437a('0x2d')](_0x1adcc7)[_0x437a('0x2e')](function(_0x39f79b){return _0x39f79b;});}return null;};}function removeEntity(_0x4d6707,_0x224d7){return function(_0x56f12d){if(_0x56f12d){return _0x56f12d[_0x437a('0x2f')]()[_0x437a('0x2e')](function(){_0x4d6707[_0x437a('0x21')](0xcc)[_0x437a('0x22')]();});}};}function handleEntityNotFound(_0x2a22a8,_0x1c00f1){return function(_0x212490){if(!_0x212490){_0x2a22a8[_0x437a('0x20')](0x194);}return _0x212490;};}function handleError(_0x1c3bef,_0x484cee){_0x484cee=_0x484cee||0x1f4;return function(_0x5a6bf4){logger['error'](_0x5a6bf4[_0x437a('0x30')]);if(_0x5a6bf4[_0x437a('0x31')]){delete _0x5a6bf4[_0x437a('0x31')];}_0x1c3bef['status'](_0x484cee)[_0x437a('0x32')](_0x5a6bf4);};}function getInteractionUsers(_0x3cbc11,_0x392f4b){return new BPromise(function(_0x2b886c,_0x902594){try{if(_0x392f4b[_0x3cbc11['id']]){_0x3cbc11['Users']=_['map'](_0x392f4b[_0x3cbc11['id']],function(_0x5d600a){return{'id':_0x5d600a['id'],'fullname':_0x5d600a['fullname']};});}}catch(_0x3693dc){_0x902594(_0x3693dc);}_0x2b886c(_0x3cbc11);});}function getInteractionTags(_0x374d61,_0x312df5){return new BPromise(function(_0x4a66d9,_0x4f5413){try{if(_0x374d61['TagIds']){_0x374d61['Tags']=[];_0x374d61[_0x437a('0x33')][_0x437a('0x34')](',')[_0x437a('0x35')](function(_0x503789){_0x374d61['Tags'][_0x437a('0x36')](_0x312df5[_0x503789]);});}delete _0x374d61['TagIds'];}catch(_0x192774){_0x4f5413(_0x192774);}_0x4a66d9(_0x374d61);});}function updateWhatsappInteraction(_0x3f70d3,_0x2fde6c,_0x34332d){return new BPromise(function(_0x2fca86,_0xdb2afa){return getInteractionUsers(_0x3f70d3,_0x34332d)[_0x437a('0x2e')](function(_0x2bf476){return getInteractionTags(_0x2bf476,_0x2fde6c);})['then'](function(_0x42627f){_0x2fca86(_0x42627f);})[_0x437a('0x37')](function(_0x4f7512){_0xdb2afa(_0x4f7512);});});}exports[_0x437a('0x38')]=function(_0x1d4e59,_0x558496){var _0x4e8c4f={},_0x48618e={},_0x21f4dd={'count':0x0,'rows':[]};var _0xf49d04=_[_0x437a('0x39')](db[_0x437a('0x3a')][_0x437a('0x3b')],function(_0x2d5279){return{'name':_0x2d5279[_0x437a('0x3c')],'type':_0x2d5279[_0x437a('0x3d')]['key']};});_0x48618e[_0x437a('0x3e')]=_[_0x437a('0x39')](_0xf49d04,_0x437a('0x31'));_0x48618e[_0x437a('0x3f')]=_[_0x437a('0x40')](_0x1d4e59[_0x437a('0x3f')]);_0x48618e[_0x437a('0x41')]=_[_0x437a('0x42')](_0x48618e[_0x437a('0x3e')],_0x48618e['query']);_0x4e8c4f[_0x437a('0x43')]=_['intersection'](_0x48618e[_0x437a('0x3e')],qs[_0x437a('0x44')](_0x1d4e59[_0x437a('0x3f')][_0x437a('0x44')]));_0x4e8c4f[_0x437a('0x43')]=_0x4e8c4f[_0x437a('0x43')]['length']?_0x4e8c4f[_0x437a('0x43')]:_0x48618e[_0x437a('0x3e')];if(!_0x1d4e59[_0x437a('0x3f')][_0x437a('0x45')](_0x437a('0x46'))){_0x4e8c4f[_0x437a('0x25')]=qs[_0x437a('0x25')](_0x1d4e59['query']['limit']);_0x4e8c4f['offset']=qs[_0x437a('0x24')](_0x1d4e59[_0x437a('0x3f')][_0x437a('0x24')]);}_0x4e8c4f['order']=qs[_0x437a('0x47')](_0x1d4e59[_0x437a('0x3f')][_0x437a('0x47')]);_0x4e8c4f['where']=qs['filters'](_['pick'](_0x1d4e59[_0x437a('0x3f')],_0x48618e[_0x437a('0x41')]),_0xf49d04);var _0x795b60=[];var _0x295406=squel[_0x437a('0x48')]()[_0x437a('0x49')]('id')[_0x437a('0x49')](_0x437a('0x31'))[_0x437a('0x49')]('color')[_0x437a('0x4a')](_0x437a('0x4b'));var _0x27d989=squel[_0x437a('0x48')]()['field'](_0x437a('0x4c'))[_0x437a('0x49')]('u.fullname')[_0x437a('0x49')](_0x437a('0x4d'))['from'](_0x437a('0x4e'),'ui')[_0x437a('0x4f')](_0x437a('0x50'),'u',_0x437a('0x51'));var _0x1b4a85=squel[_0x437a('0x48')]()[_0x437a('0x4a')]('whatsapp_interactions','i')['left_join'](_0x437a('0x52'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x437a('0x4f')]('users','o',_0x437a('0x53'))[_0x437a('0x4f')](_0x437a('0x54'),'a',_0x437a('0x55'))['left_join']('whatsapp_messages','me',_0x437a('0x56'))[_0x437a('0x4f')](_0x437a('0x57'),'it',_0x437a('0x58'))[_0x437a('0x4f')](_0x437a('0x4b'),'t',_0x437a('0x59'));var _0x12d2f3=squel[_0x437a('0x5a')]();var _0x4de7b2=[];var _0x3381bd=squel[_0x437a('0x5a')]();var _0x465c4e;if(_0x1d4e59[_0x437a('0x3f')][_0x437a('0x5b')]){_0x465c4e=as[_0x437a('0x5c')](_0x1d4e59['query'][_0x437a('0x5b')]);var _0x1c02e6=_0x465c4e[_0x437a('0x5d')];for(var _0x4aa49e=0x0;_0x4aa49e<_0x465c4e['conditions'][_0x437a('0x5e')];_0x4aa49e++){var _0xa32248=_0x465c4e[_0x437a('0x5f')][_0x4aa49e];var _0x20a4e3='i';var _0x54175d=_[_0x437a('0x60')](_0xf49d04,[_0x437a('0x31'),_0xa32248['field']]);if(!_0x54175d){switch(_0xa32248[_0x437a('0x49')]){case'unreadMessages':if(_0xa32248['value']==0x1){_0x1b4a85[_0x437a('0x61')]('`'+_0xa32248[_0x437a('0x49')]+_0x437a('0x62'));}else{_0x1b4a85[_0x437a('0x61')]('`'+_0xa32248[_0x437a('0x49')]+_0x437a('0x63'));}break;case _0x437a('0x64'):if(_0xa32248[_0x437a('0x65')]===_0x437a('0x66')){if(_0xa32248[_0x437a('0x67')][_0x437a('0x34')]('\x20')[_0x437a('0x5e')]>0x1){_0x12d2f3[_0x1c02e6](_0x437a('0x68'),qs[_0x437a('0x69')](_0xa32248[_0x437a('0x67')]),null);}else{var _0x941b8='%'+_0xa32248['value']+'%';_0x12d2f3[_0x1c02e6]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x941b8,_0x941b8,_0x941b8);}}else{_0x54175d=_[_0x437a('0x60')](_0xf49d04,[_0x437a('0x31'),_0x437a('0x6a')]);_0xa32248[_0x437a('0x49')]=_0x437a('0x6a');_0x568cd0=as['buildExpression'](_0x20a4e3,_0x54175d[_0x437a('0x3d')],_0xa32248);_0x12d2f3[_0x1c02e6](_0x568cd0[_0x437a('0x6b')],_0x568cd0['value'][_0x437a('0x6c')],_0x568cd0[_0x437a('0x67')][_0x437a('0x22')]);}break;case'Tag':var _0x2ab953=_0xa32248['value'][_0x437a('0x34')](',')[_0x437a('0x39')](function(_0x4b9306){return Number(_0x4b9306);});_0x2ab953[_0x437a('0x35')](function(_0x1bbff8){_0x3381bd['or'](_0x437a('0x6d'),'%,'+_0x1bbff8+',%');});_0x4de7b2=_[_0x437a('0x6e')](_0x4de7b2,_0x2ab953);break;case'User':if(_0xa32248[_0x437a('0x65')]==='$substring'){_0x12d2f3[_0x1c02e6](_0x437a('0x6f'),'%'+_0xa32248[_0x437a('0x67')]+'%',null);}else{_0x54175d=_[_0x437a('0x60')](_0xf49d04,[_0x437a('0x31'),_0x437a('0x70')]);_0xa32248[_0x437a('0x49')]='UserId';_0x568cd0=as[_0x437a('0x71')](_0x20a4e3,_0x54175d['type'],_0xa32248);_0x12d2f3[_0x1c02e6](_0x568cd0['text'],_0x568cd0[_0x437a('0x67')][_0x437a('0x6c')],_0x568cd0[_0x437a('0x67')][_0x437a('0x22')]);}break;case'body':_0x568cd0=as[_0x437a('0x71')]('me',null,_0xa32248);_0x12d2f3[_0x1c02e6](_0x568cd0[_0x437a('0x6b')],_0x568cd0[_0x437a('0x67')][_0x437a('0x6c')],_0x568cd0['value'][_0x437a('0x22')]);break;}}else{var _0x568cd0=as[_0x437a('0x71')](_0x20a4e3,_0x54175d[_0x437a('0x3d')],_0xa32248);_0x12d2f3[_0x1c02e6](_0x568cd0['text'],_0x568cd0[_0x437a('0x67')][_0x437a('0x6c')],_0x568cd0[_0x437a('0x67')][_0x437a('0x22')]);}}}else{var _0x45c37d=_(_0x1d4e59['query'])[_0x437a('0x40')]()[_0x437a('0x39')](function(_0x4d0171){return _[_0x437a('0x72')](_0xf49d04,[_0x437a('0x31'),_0x4d0171])?_0x4d0171:undefined;})[_0x437a('0x73')]()['value']();if(!_[_0x437a('0x74')](_0x45c37d)){_0x45c37d[_0x437a('0x35')](function(_0x37b145){if(_0x37b145===_0x437a('0x75')){_0x1b4a85[_0x437a('0x76')]('i.WhatsappAccountId\x20IN\x20?',[][_0x437a('0x77')](_0x1d4e59[_0x437a('0x3f')][_0x37b145]));}else if(_0x37b145===_0x437a('0x78')){var _0x7776a4=JSON[_0x437a('0x79')](_0x1d4e59[_0x437a('0x3f')][_0x37b145])[_0x437a('0x7a')];var _0x5c9013=JSON['parse'](_0x1d4e59[_0x437a('0x3f')][_0x37b145])[_0x437a('0x7b')];_0x1b4a85[_0x437a('0x76')](_0x437a('0x7c'),_0x7776a4,_0x5c9013);}else{if(_0x1d4e59[_0x437a('0x3f')][_0x37b145]===_0x437a('0x7d')){_0x1b4a85['where']('i.'+_0x37b145+_0x437a('0x7e'));}else{_0x1b4a85[_0x437a('0x76')]('i.'+_0x37b145+_0x437a('0x7f'),_0x1d4e59[_0x437a('0x3f')][_0x37b145]);}}});}if(_0x1d4e59[_0x437a('0x3f')]['read']){if(_0x1d4e59[_0x437a('0x3f')][_0x437a('0x80')]==0x1){_0x1b4a85[_0x437a('0x61')](_0x437a('0x81'));}else{_0x1b4a85[_0x437a('0x61')](_0x437a('0x82'));}}if(_0x1d4e59[_0x437a('0x3f')][_0x437a('0x83')]){_0x4de7b2=_[_0x437a('0x84')](_0x1d4e59['query'][_0x437a('0x83')])?_0x1d4e59['query']['tag']:new Array(_0x1d4e59[_0x437a('0x3f')][_0x437a('0x83')]);_0x4de7b2[_0x437a('0x35')](function(_0x7da21a){_0x3381bd['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x7da21a+',%');});}if(_0x1d4e59[_0x437a('0x3f')]['filter']){var _0xcb996=_0x1d4e59[_0x437a('0x3f')][_0x437a('0x85')][_0x437a('0x86')]('\x5c','\x5c\x5c')[_0x437a('0x86')](/'/g,'\x27\x27');if(qs[_0x437a('0x87')](_0xcb996)){_0x12d2f3['or'](_0x437a('0x88'),_0xcb996+'%')['or'](_0x437a('0x89'),_0xcb996+'%');}else{_0x12d2f3['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x437a('0x69')](_0xcb996))['or'](_0x437a('0x8a'),_0xcb996+'%');}}}_0x1b4a85[_0x437a('0x76')](_0x12d2f3);_0x1b4a85['group'](_0x437a('0x8b'));var _0x255e69={'type':db[_0x437a('0x8c')][_0x437a('0x8d')][_0x437a('0x8e')],'raw':!![]};var _0x2f0a56=_0x1b4a85[_0x437a('0x8f')]();_0x2f0a56['field'](_0x437a('0x8b'));_0x2f0a56['field'](_0x437a('0x90'),_0x437a('0x91'));if(_0x4e8c4f[_0x437a('0x92')]){_0x4e8c4f[_0x437a('0x92')][_0x437a('0x35')](function(_0x25cbd0){var _0x49ab9b=_0x25cbd0[0x0]===_0x437a('0x93')?_0x25cbd0[0x0]:'i.'+_0x25cbd0[0x0];_0x1b4a85[_0x437a('0x92')](_0x49ab9b,_0x25cbd0[0x1]===_0x437a('0x94')?![]:!![]);});}if(!_[_0x437a('0x74')](_0x4de7b2)){_0x1b4a85[_0x437a('0x61')](_0x3381bd);_0x2f0a56['where']('t.id\x20IN\x20?',_0x4de7b2);}BPromise[_0x437a('0x95')]()[_0x437a('0x2e')](function(){if(!_0x465c4e){if(_0x1d4e59[_0x437a('0x3f')]['WhatsappAccountId'])return;_0x2f0a56[_0x437a('0x76')](_0x437a('0x96'));_0x1b4a85[_0x437a('0x76')]('i.WhatsappAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x1d4e59[_0x437a('0x97')][_0x437a('0x98')]!==_0x437a('0x99'))return;return _0x1d4e59[_0x437a('0x97')][_0x437a('0x9a')]({'attributes':['id'],'raw':!![]})[_0x437a('0x2e')](function(_0x3cd388){if(_[_0x437a('0x74')](_0x3cd388)){_0x2f0a56[_0x437a('0x76')](_0x437a('0x9b'));_0x1b4a85[_0x437a('0x76')](_0x437a('0x9b'));}else{_0x2f0a56[_0x437a('0x76')](_0x437a('0x9c'),_[_0x437a('0x39')](_0x3cd388,'id'));_0x1b4a85[_0x437a('0x76')]('i.WhatsappAccountId\x20IN\x20?',_[_0x437a('0x39')](_0x3cd388,'id'));}});})[_0x437a('0x2e')](function(){if(_0x1d4e59[_0x437a('0x97')][_0x437a('0x98')]===_0x437a('0x99')&&!_0x465c4e&&!_0x1d4e59['query']['WhatsappAccountId'])return[];return db['sequelize']['query'](_0x2f0a56['toString'](),_0x255e69);})[_0x437a('0x2e')](function(_0x2c588b){_0x21f4dd[_0x437a('0x27')]=_0x2c588b[_0x437a('0x5e')];if(_0x21f4dd[_0x437a('0x27')]===0x0)return[];return db[_0x437a('0x9d')][_0x437a('0x3f')](_0x295406[_0x437a('0x9e')](),_0x255e69)[_0x437a('0x2e')](function(_0x2921c5){_0x795b60=_[_0x437a('0x9f')](_0x2921c5,'id');_0x255e69=_[_0x437a('0xa0')](_0x255e69,{'model':db[_0x437a('0x3a')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x1d4e59[_0x437a('0x3f')]['fields']){_0x4e8c4f[_0x437a('0x43')][_0x437a('0x35')](function(_0x14c8b4){_0x1b4a85[_0x437a('0x49')]('i.'+_0x14c8b4);});}else{_0x1b4a85[_0x437a('0x49')](_0x437a('0x90'),'unreadMessages');_0x1b4a85[_0x437a('0x49')](_0x437a('0xa1'),'Account.key');_0x1b4a85[_0x437a('0x49')](_0x437a('0xa2'),_0x437a('0xa3'));_0x1b4a85[_0x437a('0x49')](_0x437a('0xa4'),_0x437a('0x93'));_0x1b4a85['field'](_0x437a('0xa5'));_0x1b4a85['field'](_0x437a('0xa6'),'Contact.firstName');_0x1b4a85['field'](_0x437a('0xa7'),_0x437a('0xa8'));_0x1b4a85[_0x437a('0x49')](_0x437a('0xa9'),_0x437a('0xaa'));_0x1b4a85[_0x437a('0x49')](_0x437a('0xab'),_0x437a('0xac'));_0x1b4a85[_0x437a('0x49')]('c.mobile',_0x437a('0xad'));_0x1b4a85[_0x437a('0x49')]('c.fax','Contact.fax');_0x1b4a85[_0x437a('0x49')](_0x437a('0xae'),_0x437a('0xaf'));_0x1b4a85[_0x437a('0x49')]('o.internal',_0x437a('0xb0'));_0x1b4a85[_0x437a('0x49')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x437a('0x33'));}if(_0x4e8c4f[_0x437a('0x25')])_0x1b4a85[_0x437a('0x25')](_0x4e8c4f['limit']);if(_0x4e8c4f[_0x437a('0x24')])_0x1b4a85[_0x437a('0x24')](_0x4e8c4f[_0x437a('0x24')]);return db[_0x437a('0x9d')][_0x437a('0x3f')](_0x1b4a85[_0x437a('0x9e')](),_0x255e69);})[_0x437a('0x2e')](function(_0x21e932){if(_0x21e932[_0x437a('0x5e')]>0x0)_0x27d989['where'](_0x437a('0xb1'),_[_0x437a('0x39')](_0x21e932,'id'));return db[_0x437a('0x9d')][_0x437a('0x3f')](_0x27d989[_0x437a('0x9e')](),_0x255e69)[_0x437a('0x2e')](function(_0x590c1a){var _0x2fd68f=_['groupBy'](_0x590c1a,_0x437a('0xb2'));var _0x369edc=[];_0x21e932[_0x437a('0x35')](function(_0x18d091){_0x369edc[_0x437a('0x36')](updateWhatsappInteraction(_0x18d091,_0x795b60,_0x2fd68f));});return BPromise[_0x437a('0xb3')](_0x369edc);});});})['then'](function(_0x554712){_0x21f4dd[_0x437a('0xb4')]=_0x554712;return _0x21f4dd;})[_0x437a('0x2e')](respondWithFilteredResult(_0x558496,_0x4e8c4f))[_0x437a('0x37')](handleError(_0x558496,null));};exports[_0x437a('0xb5')]=function(_0x181026,_0x46ceda){var _0xb291fc={'raw':![],'where':{'id':_0x181026['params']['id']}},_0x4e3df4={};_0x4e3df4[_0x437a('0x3e')]=_[_0x437a('0x40')](db[_0x437a('0x3a')][_0x437a('0x3b')]);_0x4e3df4['query']=_[_0x437a('0x40')](_0x181026[_0x437a('0x3f')]);_0x4e3df4[_0x437a('0x41')]=_['intersection'](_0x4e3df4[_0x437a('0x3e')],_0x4e3df4[_0x437a('0x3f')]);_0xb291fc[_0x437a('0x43')]=_[_0x437a('0x42')](_0x4e3df4['model'],qs['fields'](_0x181026[_0x437a('0x3f')][_0x437a('0x44')]));_0xb291fc[_0x437a('0x43')]=_0xb291fc['attributes']['length']?_0xb291fc['attributes']:_0x4e3df4['model'];if(_0x181026[_0x437a('0x3f')][_0x437a('0xb6')]){_0xb291fc[_0x437a('0xb7')]=[{'all':!![]}];}_0xb291fc=_[_0x437a('0xa0')]({},_0xb291fc,_0x181026[_0x437a('0xb8')]);return db[_0x437a('0x3a')][_0x437a('0x60')](_0xb291fc)['then'](handleEntityNotFound(_0x46ceda,null))['then'](respondWithResult(_0x46ceda,null))[_0x437a('0x37')](handleError(_0x46ceda,null));};exports[_0x437a('0xb9')]=function(_0x464c4d,_0x1c9eb4){return db[_0x437a('0x3a')][_0x437a('0xb9')](_0x464c4d['body'],{})[_0x437a('0x2e')](respondWithResult(_0x1c9eb4,0xc9))[_0x437a('0x37')](handleError(_0x1c9eb4,null));};exports[_0x437a('0x2d')]=function(_0x27b12c,_0x227076){if(_0x27b12c[_0x437a('0xba')]['id']){delete _0x27b12c[_0x437a('0xba')]['id'];}return db[_0x437a('0x3a')][_0x437a('0x60')]({'where':{'id':_0x27b12c['params']['id']}})[_0x437a('0x2e')](handleEntityNotFound(_0x227076,null))['then'](saveUpdates(_0x27b12c['body'],null))[_0x437a('0x2e')](respondWithResult(_0x227076,null))[_0x437a('0x37')](handleError(_0x227076,null));};exports['destroy']=function(_0x3d68d5,_0xa45f63){return db[_0x437a('0x3a')]['find']({'where':{'id':_0x3d68d5['params']['id']}})[_0x437a('0x2e')](handleEntityNotFound(_0xa45f63,null))[_0x437a('0x2e')](removeEntity(_0xa45f63,null))[_0x437a('0x37')](handleError(_0xa45f63,null));};exports['describe']=function(_0x204383,_0x56b326){return db['WhatsappInteraction'][_0x437a('0xbb')]()[_0x437a('0x2e')](respondWithResult(_0x56b326,null))[_0x437a('0x37')](handleError(_0x56b326,null));};exports[_0x437a('0xbc')]=function(_0x3bbe7d,_0x302393,_0x4edcf){return db[_0x437a('0xbd')]['find']({'where':{'id':_0x3bbe7d[_0x437a('0xbe')]['id']}})[_0x437a('0x2e')](handleEntityNotFound(_0x302393,null))[_0x437a('0x2e')](function(_0x191ace){if(_0x191ace){return _0x191ace[_0x437a('0xbc')](_0x3bbe7d['body'][_0x437a('0xbf')],_[_0x437a('0xc0')](_0x3bbe7d[_0x437a('0xba')],[_0x437a('0xbf'),'id'])||{});}})[_0x437a('0x2e')](respondWithResult(_0x302393,null))[_0x437a('0x37')](handleError(_0x302393,null));};exports[_0x437a('0xc1')]=function(_0x53ba1a,_0x2817eb,_0x33408a){var _0x1ae2bf={'raw':![],'where':{}};var _0x42bb8c={};var _0x14d344={'count':0x0,'rows':[]};return db[_0x437a('0x3a')]['findOne']({'where':{'id':_0x53ba1a[_0x437a('0xbe')]['id']}})['then'](handleEntityNotFound(_0x2817eb,null))[_0x437a('0x2e')](function(_0x413e99){if(_0x413e99){_0x42bb8c[_0x437a('0x3e')]=_[_0x437a('0x40')](db[_0x437a('0xbd')][_0x437a('0x3b')]);_0x42bb8c[_0x437a('0x3f')]=_[_0x437a('0x40')](_0x53ba1a[_0x437a('0x3f')]);_0x42bb8c[_0x437a('0x41')]=_[_0x437a('0x42')](_0x42bb8c['model'],_0x42bb8c[_0x437a('0x3f')]);_0x1ae2bf[_0x437a('0x43')]=_['intersection'](_0x42bb8c[_0x437a('0x3e')],qs['fields'](_0x53ba1a[_0x437a('0x3f')][_0x437a('0x44')]));_0x1ae2bf[_0x437a('0x43')]=_0x1ae2bf[_0x437a('0x43')][_0x437a('0x5e')]?_0x1ae2bf[_0x437a('0x43')]:_0x42bb8c[_0x437a('0x3e')];if(!_0x53ba1a[_0x437a('0x3f')]['hasOwnProperty'](_0x437a('0x46'))){_0x1ae2bf['limit']=qs[_0x437a('0x25')](_0x53ba1a[_0x437a('0x3f')]['limit']);_0x1ae2bf[_0x437a('0x24')]=qs[_0x437a('0x24')](_0x53ba1a[_0x437a('0x3f')][_0x437a('0x24')]);}_0x1ae2bf[_0x437a('0x92')]=qs['sort'](_0x53ba1a['query'][_0x437a('0x47')]);_0x1ae2bf[_0x437a('0x76')]=qs[_0x437a('0x41')](_['pick'](_0x53ba1a[_0x437a('0x3f')],_0x42bb8c[_0x437a('0x41')]));_0x1ae2bf[_0x437a('0x76')][_0x437a('0xb2')]=_0x413e99['id'];if(_0x53ba1a['query']['filter']){_0x1ae2bf['where']=_['merge'](_0x1ae2bf['where'],{'$or':_[_0x437a('0x39')](_0x1ae2bf['attributes'],function(_0x23284e){var _0x15f2da={};_0x15f2da[_0x23284e]={'$like':'%'+_0x53ba1a[_0x437a('0x3f')]['filter']+'%'};return _0x15f2da;})});}if(_0x53ba1a[_0x437a('0x3f')][_0x437a('0x7a')]){var _0x4b785d=_0x53ba1a[_0x437a('0x3f')][_0x437a('0x7a')][_0x437a('0x34')](',');var _0x425137={};_0x425137[_0x4b785d[0x0]]={'$gte':moment(_0x4b785d[0x1])[_0x437a('0xc2')]('YYYY-MM-DD\x20HH:mm:ss')};_0x1ae2bf[_0x437a('0x76')]=_['merge'](_0x1ae2bf[_0x437a('0x76')],_0x425137);}_0x1ae2bf=_['merge']({},_0x1ae2bf,_0x53ba1a[_0x437a('0xb8')]);return db[_0x437a('0xbd')][_0x437a('0x27')]({'where':_0x1ae2bf['where']})[_0x437a('0x2e')](function(_0x1a312b){_0x14d344[_0x437a('0x27')]=_0x1a312b;if(_0x53ba1a['query'][_0x437a('0xb6')]){_0x1ae2bf[_0x437a('0xb7')]=[{'all':!![]}];}return db['WhatsappMessage'][_0x437a('0xc3')](_0x1ae2bf);})[_0x437a('0x2e')](function(_0x190e93){_0x14d344['rows']=_0x190e93;return _0x14d344;});}})[_0x437a('0x2e')](respondWithFilteredResult(_0x2817eb,_0x1ae2bf))[_0x437a('0x37')](handleError(_0x2817eb,null));};exports['addTags']=function(_0x4a1f18,_0x2cd25e,_0x36a9b8){return db['WhatsappInteraction'][_0x437a('0x60')]({'where':{'id':_0x4a1f18['params']['id']}})[_0x437a('0x2e')](handleEntityNotFound(_0x2cd25e,null))[_0x437a('0x2e')](function(_0x1f1d60){if(_0x1f1d60){return _0x1f1d60[_0x437a('0xc4')](_0x4a1f18[_0x437a('0xba')][_0x437a('0xbf')],_[_0x437a('0xc0')](_0x4a1f18[_0x437a('0xba')],[_0x437a('0xbf'),'id'])||{})[_0x437a('0xc5')](function(){return db[_0x437a('0xc6')]['findAll']({'attributes':['id',_0x437a('0x31'),_0x437a('0xc7')],'where':{'id':_0x4a1f18[_0x437a('0xba')]['ids']}});})[_0x437a('0x2e')](function(_0x3fe7e5){socket[_0x437a('0xc8')]('whatsappInteractionTags:save',{'id':Number(_0x4a1f18[_0x437a('0xbe')]['id']),'tags':_0x3fe7e5||[]});return{'id':Number(_0x4a1f18[_0x437a('0xbe')]['id']),'tags':_0x3fe7e5||[]};});}})['then'](respondWithResult(_0x2cd25e,null))['catch'](handleError(_0x2cd25e,null));};exports[_0x437a('0xc9')]=function(_0xe987c,_0x52904b,_0x316874){return db[_0x437a('0x3a')][_0x437a('0x60')]({'where':{'id':_0xe987c[_0x437a('0xbe')]['id']}})[_0x437a('0x2e')](handleEntityNotFound(_0x52904b,null))[_0x437a('0x2e')](function(_0x4f214e){if(_0x4f214e){return _0x4f214e[_0x437a('0xc9')](_0xe987c[_0x437a('0x3f')][_0x437a('0xbf')]);}})[_0x437a('0x2e')](respondWithStatusCode(_0x52904b,null))[_0x437a('0x37')](handleError(_0x52904b,null));};exports['download']=function(_0xdaa936,_0x8fc2ab){var _0x5f9bf4=moment()[_0x437a('0xca')]()[_0x437a('0x9e')]();var _0x5986a=path[_0x437a('0xcb')](config[_0x437a('0xcc')],_0x437a('0xcd'),'files',_0x437a('0xce'));var _0x467f16=path[_0x437a('0xcb')](config[_0x437a('0xcc')],_0x437a('0xcd'),_0x437a('0xcf'),'attachments');var _0x5ee200=path[_0x437a('0xcb')](_0x5986a,_0x5f9bf4);var _0x53d84a=util[_0x437a('0xc2')](_0x437a('0xd0'),_0xdaa936[_0x437a('0xbe')]['id'],_0x5f9bf4);var _0xae058c=path['join'](_0x5986a,_0x53d84a);var _0x40cb14=[];_0x40cb14[_0x437a('0x36')]({'model':db[_0x437a('0xd1')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x40cb14['push']({'model':db[_0x437a('0xd2')],'as':'Contact','attributes':['id',_0x437a('0xd3'),_0x437a('0xd4')],'raw':!![]});if(_0xdaa936[_0x437a('0x3f')][_0x437a('0xd5')]){_0x40cb14[_0x437a('0x36')]({'model':db[_0x437a('0xd6')],'as':'Attachment','raw':!![]});}var _0x20b44b=[{'model':db[_0x437a('0xbd')],'as':_0x437a('0xd7'),'attributes':['id','body',_0x437a('0x78'),'direction','secret',_0x437a('0x80')],'include':_0x40cb14}];_0x20b44b[_0x437a('0x36')]({'model':db[_0x437a('0xd8')],'as':_0x437a('0xd9'),'attributes':['id',_0x437a('0x31')]});_0x20b44b[_0x437a('0x36')]({'model':db['User'],'as':_0x437a('0xda'),'attributes':['id',_0x437a('0xdb')]});return db[_0x437a('0x3a')][_0x437a('0x60')]({'where':{'id':_0xdaa936[_0x437a('0xbe')]['id']},'include':_0x20b44b})['then'](handleEntityNotFound(_0x8fc2ab,null))[_0x437a('0x2e')](function(_0x152c77){if(_0x152c77){var _0x5d6613=_0x152c77[_0x437a('0xdc')]({'plain':!![]});fs[_0x437a('0xdd')](_0x5ee200);var _0x5523d4={'channel':_0x437a('0xde'),'account':_0x5d6613[_0x437a('0xd9')][_0x437a('0x31')],'agent':_0x5d6613['Owner']?_0x5d6613[_0x437a('0xda')][_0x437a('0xdb')]:'N.A.','createdAt':moment(_0x5d6613[_0x437a('0x78')])[_0x437a('0xc2')](_0x437a('0xdf'))[_0x437a('0x9e')](),'closedAt':_0x5d6613[_0x437a('0xe0')]?moment(_0x5d6613[_0x437a('0xe1')])[_0x437a('0xc2')](_0x437a('0xdf'))[_0x437a('0x9e')]():'','disposition':_0x5d6613['disposition'],'messages':_(_0x5d6613['Messages'])[_0x437a('0x85')]({'secret':![]})['map'](function(_0x1f62b7){if(_0x1f62b7[_0x437a('0xd6')]){var _0x202c83=path[_0x437a('0xcb')](_0x467f16,_0x1f62b7[_0x437a('0xd6')][_0x437a('0xe2')]);if(fs['existsSync'](_0x202c83)){fs[_0x437a('0xe3')](_0x202c83)[_0x437a('0xe4')](fs['createWriteStream'](path[_0x437a('0xcb')](_0x5ee200,_0x1f62b7['Attachment']['basename'])));}}return{'date':moment(_0x1f62b7[_0x437a('0x78')])[_0x437a('0xc2')](_0x437a('0xdf'))[_0x437a('0x9e')](),'sender':_0x1f62b7['direction']===_0x437a('0xe5')?_0x1f62b7[_0x437a('0xd1')]?_0x1f62b7[_0x437a('0xd1')][_0x437a('0xdb')]:_0x437a('0xe6'):_0x1f62b7['Contact'][_0x437a('0xd3')]+(_0x1f62b7[_0x437a('0x64')][_0x437a('0xd4')]?'\x20'+_0x1f62b7[_0x437a('0x64')]['lastName']:''),'body':_0x1f62b7[_0x437a('0xd6')]?_0x1f62b7[_0x437a('0xd6')][_0x437a('0xe2')]:_0x1f62b7[_0x437a('0xba')],'direction':_0x1f62b7[_0x437a('0xe7')]==='out'?'A':'C','secret':_0x1f62b7[_0x437a('0xe8')],'read':_0x1f62b7[_0x437a('0x80')],'attachment':_0x1f62b7['Attachment']};})[_0x437a('0x67')]()};return ejs['renderFile'](path['join'](config[_0x437a('0xcc')],_0x437a('0xcd'),_0x437a('0xe9'),_0x437a('0xea')),{'interaction':_0x5523d4})['then'](function(_0x11fb28){var _0x4cce82=path[_0x437a('0xcb')](_0x5ee200,_0x437a('0xeb')+_0x5d6613['id']+'-'+_0x5f9bf4+'.pdf');var _0x16aeb1={'path':_0x4cce82,'channel':_0x437a('0xde'),'interactionId':_0x5d6613['id']};return pdf[_0x437a('0xec')](_0x11fb28,_0x16aeb1);})[_0x437a('0x2e')](function(){return new BPromise(function(_0xd823c0,_0xefde3f){zipdir(_0x5ee200,{'saveTo':_0xae058c},function(_0x2af91c,_0x17c99b){if(_0x2af91c)return _0xefde3f(_0x2af91c);return _0xd823c0(_0x17c99b);});})[_0x437a('0x2e')](function(){return new BPromise(function(_0x29dd31,_0x169a5f){rimraf(_0x5ee200,function(_0x14f1d0){if(_0x14f1d0)_0x169a5f(_0x14f1d0);return _0x29dd31();});});})['then'](function(){return _0x8fc2ab[_0x437a('0xed')](_0xae058c,_0x53d84a,function(_0x57b719){if(_0x57b719){console[_0x437a('0xee')]('err',_0x57b719);}else{fs['unlinkSync'](_0xae058c);}});});});}else{return _0x8fc2ab['sendStatus'](0xc8);}})[_0x437a('0x37')](handleError(_0x8fc2ab,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4522=['hook','exports','WhatsappInteraction','../../mysqldb','WhatsappMessage','save','update','remove','getUsers','then','setDataValue','Users','map','findAll','unreadMessages','emit','catch','hasOwnProperty'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4522,0x1a0));var _0x2452=function(_0x212bc9,_0x1d2f44){_0x212bc9=_0x212bc9-0x0;var _0x3aee06=_0x4522[_0x212bc9];return _0x3aee06;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require('../../mysqldb')['db'][_0x2452('0x0')];var WhatsappMessage=require(_0x2452('0x1'))['db'][_0x2452('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x2452('0x3'),'afterUpdate':_0x2452('0x4'),'afterDestroy':_0x2452('0x5')};function emitEvent(_0x2f21dc){return function(_0x34ff44,_0x243893,_0x15fc69){_0x34ff44[_0x2452('0x6')]({'attributes':['id'],'raw':!![]})[_0x2452('0x7')](function(_0x149807){_0x34ff44[_0x2452('0x8')](_0x2452('0x9'),_0x149807[_0x2452('0xa')](function(_0x365b1f){return{'id':_0x365b1f['id']};}));return WhatsappMessage[_0x2452('0xb')]({'where':{'WhatsappInteractionId':_0x34ff44['id'],'direction':'in','read':![]},'raw':!![]});})[_0x2452('0x7')](function(_0x5a38e0){_0x34ff44['setDataValue'](_0x2452('0xc'),_0x5a38e0['length']);WhatsappInteractionEvents['emit'](_0x2f21dc+':'+_0x34ff44['id'],_0x34ff44);WhatsappInteractionEvents[_0x2452('0xd')](_0x2f21dc,_0x34ff44);_0x15fc69(null);})[_0x2452('0xe')](_0x15fc69(null));};}for(var e in events){if(events[_0x2452('0xf')](e)){var event=events[e];WhatsappInteraction[_0x2452('0x10')](e,emitEvent(event));}}module[_0x2452('0x11')]=WhatsappInteractionEvents;
\ No newline at end of file
+var _0x152f=['exports','events','../../mysqldb','WhatsappInteraction','WhatsappMessage','save','update','remove','getUsers','map','then','unreadMessages','length','emit','catch','hasOwnProperty','hook'];(function(_0x4a8c26,_0x187c47){var _0x2810f9=function(_0x22a73d){while(--_0x22a73d){_0x4a8c26['push'](_0x4a8c26['shift']());}};_0x2810f9(++_0x187c47);}(_0x152f,0x144));var _0xf152=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0x152f[_0x3b5250];return _0xc844a1;};'use strict';var EventEmitter=require(_0xf152('0x0'));var WhatsappInteraction=require(_0xf152('0x1'))['db'][_0xf152('0x2')];var WhatsappMessage=require(_0xf152('0x1'))['db'][_0xf152('0x3')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xf152('0x4'),'afterUpdate':_0xf152('0x5'),'afterDestroy':_0xf152('0x6')};function emitEvent(_0x303e32){return function(_0x51ddec,_0x286a5f,_0x542973){_0x51ddec[_0xf152('0x7')]({'attributes':['id'],'raw':!![]})['then'](function(_0x36498a){_0x51ddec['setDataValue']('Users',_0x36498a[_0xf152('0x8')](function(_0x270135){return{'id':_0x270135['id']};}));return WhatsappMessage['findAll']({'where':{'WhatsappInteractionId':_0x51ddec['id'],'direction':'in','read':![]},'raw':!![]});})[_0xf152('0x9')](function(_0x3223fa){_0x51ddec['setDataValue'](_0xf152('0xa'),_0x3223fa[_0xf152('0xb')]);WhatsappInteractionEvents[_0xf152('0xc')](_0x303e32+':'+_0x51ddec['id'],_0x51ddec);WhatsappInteractionEvents[_0xf152('0xc')](_0x303e32,_0x51ddec);_0x542973(null);})[_0xf152('0xd')](_0x542973(null));};}for(var e in events){if(events[_0xf152('0xe')](e)){var event=events[e];WhatsappInteraction[_0xf152('0xf')](e,emitEvent(event));}}module[_0xf152('0x10')]=WhatsappInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d53=['define','WhatsappInteraction','whatsapp_interactions','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','bluebird','request-promise','path','exports'];(function(_0x2cecd5,_0x53b508){var _0x53b2dc=function(_0x255ff6){while(--_0x255ff6){_0x2cecd5['push'](_0x2cecd5['shift']());}};_0x53b2dc(++_0x53b508);}(_0x4d53,0x170));var _0x34d5=function(_0x47b58b,_0x41a189){_0x47b58b=_0x47b58b-0x0;var _0x46bebe=_0x4d53[_0x47b58b];return _0x46bebe;};'use strict';var _=require(_0x34d5('0x0'));var util=require(_0x34d5('0x1'));var logger=require(_0x34d5('0x2'))('api');var moment=require('moment');var BPromise=require(_0x34d5('0x3'));var rp=require(_0x34d5('0x4'));var fs=require('fs');var path=require(_0x34d5('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./whatsappInteraction.attributes');module[_0x34d5('0x6')]=function(_0x3254a9,_0x41d488){return _0x3254a9[_0x34d5('0x7')](_0x34d5('0x8'),attributes,{'tableName':_0x34d5('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5c9e99,_0x251f08,_0x4abb4c){if(_0x5c9e99[_0x34d5('0xa')](_0x34d5('0xb'))){_0x5c9e99[_0x34d5('0xc')]=moment()[_0x34d5('0xd')](_0x34d5('0xe'));}_0x4abb4c(null,_0x5c9e99);}}});};
\ No newline at end of file
+var _0x204c=['changed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappInteraction.attributes','exports','define','WhatsappInteraction'];(function(_0x254744,_0x219e6b){var _0x2a6a96=function(_0x26aceb){while(--_0x26aceb){_0x254744['push'](_0x254744['shift']());}};_0x2a6a96(++_0x219e6b);}(_0x204c,0xdc));var _0xc204=function(_0x54509d,_0x48cc0a){_0x54509d=_0x54509d-0x0;var _0x84b37a=_0x204c[_0x54509d];return _0x84b37a;};'use strict';var _=require(_0xc204('0x0'));var util=require(_0xc204('0x1'));var logger=require(_0xc204('0x2'))(_0xc204('0x3'));var moment=require(_0xc204('0x4'));var BPromise=require(_0xc204('0x5'));var rp=require(_0xc204('0x6'));var fs=require('fs');var path=require(_0xc204('0x7'));var rimraf=require(_0xc204('0x8'));var config=require(_0xc204('0x9'));var attributes=require(_0xc204('0xa'));module[_0xc204('0xb')]=function(_0x5cb76f,_0x33557b){return _0x5cb76f[_0xc204('0xc')](_0xc204('0xd'),attributes,{'tableName':'whatsapp_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x44ddcd,_0x4be484,_0x2f810d){if(_0x44ddcd[_0xc204('0xe')]('closed')){_0x44ddcd[_0xc204('0xf')]=moment()[_0xc204('0x10')](_0xc204('0x11'));}_0x2f810d(null,_0x44ddcd);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x77a1=['body','options','raw','where','AddTagsToWhatsappInteraction','find','addTags','ids','omit','AddTags','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','redis','defaults','localhost','socket.io-emitter','./whatsappInteraction.socket','register','request','then','info','WhatsappInteraction,\x20%s,\x20%s','debug','WhatsappInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','UpdateWhatsappInteraction','WhatsappInteraction','update'];(function(_0x1014c2,_0x28a357){var _0x4d8a79=function(_0x13a829){while(--_0x13a829){_0x1014c2['push'](_0x1014c2['shift']());}};_0x4d8a79(++_0x28a357);}(_0x77a1,0x1c2));var _0x177a=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x77a1[_0x17d9e3];return _0x14192d;};'use strict';var _=require(_0x177a('0x0'));var util=require(_0x177a('0x1'));var moment=require(_0x177a('0x2'));var BPromise=require(_0x177a('0x3'));var rs=require(_0x177a('0x4'));var fs=require('fs');var Redis=require(_0x177a('0x5'));var db=require(_0x177a('0x6'))['db'];var utils=require(_0x177a('0x7'));var logger=require(_0x177a('0x8'))(_0x177a('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x177a('0xa')][_0x177a('0xb')]({'port':0x232a});config[_0x177a('0xc')]=_[_0x177a('0xd')](config[_0x177a('0xc')],{'host':_0x177a('0xe'),'port':0x18eb});var socket=require(_0x177a('0xf'))(new Redis(config['redis']));require(_0x177a('0x10'))[_0x177a('0x11')](socket);function respondWithRpcPromise(_0x5da4b5,_0x31a198,_0x50ece4){return new BPromise(function(_0x5e9067,_0x23fae5){return client[_0x177a('0x12')](_0x5da4b5,_0x50ece4)[_0x177a('0x13')](function(_0x4608ce){logger[_0x177a('0x14')](_0x177a('0x15'),_0x31a198,'request\x20sent');logger[_0x177a('0x16')](_0x177a('0x17'),_0x31a198,_0x177a('0x18'),JSON[_0x177a('0x19')](_0x4608ce));if(_0x4608ce[_0x177a('0x1a')]){if(_0x4608ce['error'][_0x177a('0x1b')]===0x1f4){logger[_0x177a('0x1a')](_0x177a('0x15'),_0x31a198,_0x4608ce[_0x177a('0x1a')][_0x177a('0x1c')]);return _0x23fae5(_0x4608ce['error'][_0x177a('0x1c')]);}logger[_0x177a('0x1a')]('WhatsappInteraction,\x20%s,\x20%s',_0x31a198,_0x4608ce['error']['message']);return _0x5e9067(_0x4608ce[_0x177a('0x1a')][_0x177a('0x1c')]);}else{logger[_0x177a('0x14')]('WhatsappInteraction,\x20%s,\x20%s',_0x31a198,_0x177a('0x18'));_0x5e9067(_0x4608ce[_0x177a('0x1d')]['message']);}})[_0x177a('0x1e')](function(_0x23430b){logger[_0x177a('0x1a')](_0x177a('0x15'),_0x31a198,_0x23430b);_0x23fae5(_0x23430b);});});}exports[_0x177a('0x1f')]=function(_0x5e1d74){var _0x42d175=this;return new Promise(function(_0x4ff351,_0x3e1c6b){return db[_0x177a('0x20')][_0x177a('0x21')](_0x5e1d74[_0x177a('0x22')],{'raw':_0x5e1d74[_0x177a('0x23')]?_0x5e1d74[_0x177a('0x23')][_0x177a('0x24')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5e1d74[_0x177a('0x23')]?_0x5e1d74[_0x177a('0x23')][_0x177a('0x25')]||null:null,'attributes':_0x5e1d74['options']?_0x5e1d74[_0x177a('0x23')]['attributes']||null:null,'limit':_0x5e1d74['options']?_0x5e1d74[_0x177a('0x23')]['limit']||null:null})[_0x177a('0x13')](function(_0x23eddf){logger['info'](_0x177a('0x1f'),_0x5e1d74);logger['debug']('UpdateWhatsappInteraction',_0x5e1d74,JSON['stringify'](_0x23eddf));_0x4ff351(_0x23eddf);})[_0x177a('0x1e')](function(_0x23c66c){logger[_0x177a('0x1a')](_0x177a('0x1f'),_0x23c66c['message'],_0x5e1d74);_0x3e1c6b(_0x42d175['error'](0x1f4,_0x23c66c['message']));});});};exports[_0x177a('0x26')]=function(_0x4e20e8){return new Promise(function(_0x107122,_0x2a102a){return db[_0x177a('0x20')][_0x177a('0x27')]({'where':_0x4e20e8[_0x177a('0x23')]?_0x4e20e8[_0x177a('0x23')][_0x177a('0x25')]||null:null})[_0x177a('0x13')](function(_0x21b185){if(_0x21b185){return _0x21b185[_0x177a('0x28')](_0x4e20e8[_0x177a('0x22')][_0x177a('0x29')],_[_0x177a('0x2a')](_0x4e20e8[_0x177a('0x22')],[_0x177a('0x29'),'id'])||{});}})['spread'](function(_0x484170){logger[_0x177a('0x14')](_0x177a('0x2b'),_0x4e20e8);logger[_0x177a('0x16')](_0x177a('0x2b'),_0x4e20e8,JSON[_0x177a('0x19')](_0x484170));_0x107122(_0x484170);})[_0x177a('0x1e')](function(_0x1377be){logger[_0x177a('0x1a')](_0x177a('0x2b'),_0x1377be[_0x177a('0x1c')],_0x4e20e8);_0x2a102a(_this[_0x177a('0x1a')](0x1f4,_0x1377be[_0x177a('0x1c')]));});});};
\ No newline at end of file
+var _0x1c5f=['AddTagsToWhatsappInteraction','find','addTags','body','ids','omit','spread','AddTags','lodash','util','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./whatsappInteraction.socket','register','request','then','WhatsappInteraction,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','UpdateWhatsappInteraction','WhatsappInteraction','update','options','raw','where','attributes','limit','debug','catch'];(function(_0x34536e,_0x1a8e43){var _0x1494f2=function(_0x3c734e){while(--_0x3c734e){_0x34536e['push'](_0x34536e['shift']());}};_0x1494f2(++_0x1a8e43);}(_0x1c5f,0x1d6));var _0xf1c5=function(_0x3f223b,_0x8936fb){_0x3f223b=_0x3f223b-0x0;var _0x292dd1=_0x1c5f[_0x3f223b];return _0x292dd1;};'use strict';var _=require(_0xf1c5('0x0'));var util=require(_0xf1c5('0x1'));var moment=require('moment');var BPromise=require(_0xf1c5('0x2'));var rs=require(_0xf1c5('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf1c5('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xf1c5('0x5'));var config=require(_0xf1c5('0x6'));var jayson=require(_0xf1c5('0x7'));var client=jayson[_0xf1c5('0x8')][_0xf1c5('0x9')]({'port':0x232a});config[_0xf1c5('0xa')]=_[_0xf1c5('0xb')](config[_0xf1c5('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xf1c5('0xc'))(new Redis(config['redis']));require(_0xf1c5('0xd'))[_0xf1c5('0xe')](socket);function respondWithRpcPromise(_0x5779cf,_0x569068,_0x2a6507){return new BPromise(function(_0x2d7bfa,_0xd67ff3){return client[_0xf1c5('0xf')](_0x5779cf,_0x2a6507)[_0xf1c5('0x10')](function(_0x4d1afe){logger['info'](_0xf1c5('0x11'),_0x569068,'request\x20sent');logger['debug']('WhatsappInteraction,\x20%s,\x20%s,\x20%s',_0x569068,'request\x20sent',JSON[_0xf1c5('0x12')](_0x4d1afe));if(_0x4d1afe[_0xf1c5('0x13')]){if(_0x4d1afe[_0xf1c5('0x13')][_0xf1c5('0x14')]===0x1f4){logger[_0xf1c5('0x13')](_0xf1c5('0x11'),_0x569068,_0x4d1afe[_0xf1c5('0x13')][_0xf1c5('0x15')]);return _0xd67ff3(_0x4d1afe[_0xf1c5('0x13')][_0xf1c5('0x15')]);}logger[_0xf1c5('0x13')](_0xf1c5('0x11'),_0x569068,_0x4d1afe[_0xf1c5('0x13')][_0xf1c5('0x15')]);return _0x2d7bfa(_0x4d1afe['error']['message']);}else{logger[_0xf1c5('0x16')](_0xf1c5('0x11'),_0x569068,_0xf1c5('0x17'));_0x2d7bfa(_0x4d1afe['result']['message']);}})['catch'](function(_0x407c10){logger['error']('WhatsappInteraction,\x20%s,\x20%s',_0x569068,_0x407c10);_0xd67ff3(_0x407c10);});});}exports[_0xf1c5('0x18')]=function(_0x5e2537){var _0x19643c=this;return new Promise(function(_0x4f5fe5,_0x2d0631){return db[_0xf1c5('0x19')][_0xf1c5('0x1a')](_0x5e2537['body'],{'raw':_0x5e2537['options']?_0x5e2537[_0xf1c5('0x1b')][_0xf1c5('0x1c')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5e2537['options']?_0x5e2537['options'][_0xf1c5('0x1d')]||null:null,'attributes':_0x5e2537['options']?_0x5e2537[_0xf1c5('0x1b')][_0xf1c5('0x1e')]||null:null,'limit':_0x5e2537[_0xf1c5('0x1b')]?_0x5e2537[_0xf1c5('0x1b')][_0xf1c5('0x1f')]||null:null})[_0xf1c5('0x10')](function(_0x3bfeec){logger[_0xf1c5('0x16')](_0xf1c5('0x18'),_0x5e2537);logger[_0xf1c5('0x20')](_0xf1c5('0x18'),_0x5e2537,JSON[_0xf1c5('0x12')](_0x3bfeec));_0x4f5fe5(_0x3bfeec);})[_0xf1c5('0x21')](function(_0x16dc0b){logger[_0xf1c5('0x13')](_0xf1c5('0x18'),_0x16dc0b[_0xf1c5('0x15')],_0x5e2537);_0x2d0631(_0x19643c[_0xf1c5('0x13')](0x1f4,_0x16dc0b['message']));});});};exports[_0xf1c5('0x22')]=function(_0x27adef){return new Promise(function(_0x5e4466,_0x1f7979){return db[_0xf1c5('0x19')][_0xf1c5('0x23')]({'where':_0x27adef[_0xf1c5('0x1b')]?_0x27adef['options']['where']||null:null})[_0xf1c5('0x10')](function(_0x311480){if(_0x311480){return _0x311480[_0xf1c5('0x24')](_0x27adef[_0xf1c5('0x25')][_0xf1c5('0x26')],_[_0xf1c5('0x27')](_0x27adef[_0xf1c5('0x25')],[_0xf1c5('0x26'),'id'])||{});}})[_0xf1c5('0x28')](function(_0x57e5e1){logger[_0xf1c5('0x16')]('AddTags',_0x27adef);logger['debug'](_0xf1c5('0x29'),_0x27adef,JSON[_0xf1c5('0x12')](_0x57e5e1));_0x5e4466(_0x57e5e1);})[_0xf1c5('0x21')](function(_0x5f203d){logger[_0xf1c5('0x13')](_0xf1c5('0x29'),_0x5f203d['message'],_0x27adef);_0x1f7979(_this[_0xf1c5('0x13')](0x1f4,_0x5f203d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e6c=['register','length','whatsappInteraction:','update','emit'];(function(_0x25c68f,_0x13c86e){var _0x472510=function(_0x2a241f){while(--_0x2a241f){_0x25c68f['push'](_0x25c68f['shift']());}};_0x472510(++_0x13c86e);}(_0x9e6c,0x85));var _0xc9e6=function(_0x43808e,_0x3cdab9){_0x43808e=_0x43808e-0x0;var _0xd215a3=_0x9e6c[_0x43808e];return _0xd215a3;};'use strict';var WhatsappInteractionEvents=require('./whatsappInteraction.events');var events=['save','remove',_0xc9e6('0x0')];function createListener(_0x521bfa,_0x378fbe){return function(_0x2ab90c){_0x378fbe[_0xc9e6('0x1')](_0x521bfa,_0x2ab90c);};}function removeListener(_0x1e9671,_0x3e7c0a){return function(){WhatsappInteractionEvents['removeListener'](_0x1e9671,_0x3e7c0a);};}exports[_0xc9e6('0x2')]=function(_0x1d5fc9){for(var _0x206c36=0x0,_0x5504aa=events[_0xc9e6('0x3')];_0x206c36<_0x5504aa;_0x206c36++){var _0x33169f=events[_0x206c36];var _0x5a910a=createListener(_0xc9e6('0x4')+_0x33169f,_0x1d5fc9);WhatsappInteractionEvents['on'](_0x33169f,_0x5a910a);}};
\ No newline at end of file
+var _0x7672=['register','whatsappInteraction:','./whatsappInteraction.events','save','remove','update','emit'];(function(_0x2a0e45,_0x370c5d){var _0x3595b8=function(_0x25aa8d){while(--_0x25aa8d){_0x2a0e45['push'](_0x2a0e45['shift']());}};_0x3595b8(++_0x370c5d);}(_0x7672,0x1bb));var _0x2767=function(_0x1315b3,_0x37314f){_0x1315b3=_0x1315b3-0x0;var _0x307d5d=_0x7672[_0x1315b3];return _0x307d5d;};'use strict';var WhatsappInteractionEvents=require(_0x2767('0x0'));var events=[_0x2767('0x1'),_0x2767('0x2'),_0x2767('0x3')];function createListener(_0x4e510f,_0x3a2f29){return function(_0x3e1de3){_0x3a2f29[_0x2767('0x4')](_0x4e510f,_0x3e1de3);};}function removeListener(_0x15010f,_0x309a7e){return function(){WhatsappInteractionEvents['removeListener'](_0x15010f,_0x309a7e);};}exports[_0x2767('0x5')]=function(_0x1e4e6e){for(var _0x19cb83=0x0,_0x34a3b0=events['length'];_0x19cb83<_0x34a3b0;_0x19cb83++){var _0x91cd3e=events[_0x19cb83];var _0x5ab86a=createListener(_0x2767('0x6')+_0x91cd3e,_0x1e4e6e);WhatsappInteractionEvents['on'](_0x91cd3e,_0x5ab86a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd388=['post','whatsapp','create','/:id/status','/:id/accept','accept','put','/:id/reject','reject','delete','/:id','destroy','exports','multer','path','express','../../components/auth/service','../../components/interaction/service','./whatsappMessage.controller','isAuthenticated','index','get','/describe','describe'];(function(_0x400fda,_0x4e7da8){var _0x31f3e6=function(_0x285983){while(--_0x285983){_0x400fda['push'](_0x400fda['shift']());}};_0x31f3e6(++_0x4e7da8);}(_0xd388,0xfd));var _0x8d38=function(_0x549832,_0x497d6e){_0x549832=_0x549832-0x0;var _0x1fbfb6=_0xd388[_0x549832];return _0x1fbfb6;};'use strict';var multer=require(_0x8d38('0x0'));var util=require('util');var path=require(_0x8d38('0x1'));var timeout=require('connect-timeout');var express=require(_0x8d38('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x8d38('0x3'));var interaction=require(_0x8d38('0x4'));var config=require('../../config/environment');var controller=require(_0x8d38('0x5'));router['get']('/',auth[_0x8d38('0x6')](),controller[_0x8d38('0x7')]);router[_0x8d38('0x8')](_0x8d38('0x9'),auth[_0x8d38('0x6')](),controller[_0x8d38('0xa')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0x8d38('0xb')]('/',auth[_0x8d38('0x6')](),interaction['tracked'](_0x8d38('0xc'),'whatsappmessage:create'),controller[_0x8d38('0xd')]);router[_0x8d38('0xb')](_0x8d38('0xe'),controller['status']);router['put']('/:id',auth[_0x8d38('0x6')](),controller['update']);router['put'](_0x8d38('0xf'),auth[_0x8d38('0x6')](),controller[_0x8d38('0x10')]);router[_0x8d38('0x11')](_0x8d38('0x12'),auth[_0x8d38('0x6')](),controller[_0x8d38('0x13')]);router[_0x8d38('0x14')](_0x8d38('0x15'),auth['isAuthenticated'](),controller[_0x8d38('0x16')]);module[_0x8d38('0x17')]=router;
\ No newline at end of file
+var _0xd72c=['show','post','whatsapp','whatsappmessage:create','create','/:id/status','status','put','update','/:id/accept','accept','/:id/reject','delete','destroy','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappMessage.controller','get','index','/describe','isAuthenticated','describe','/:id'];(function(_0x5d8f9a,_0x1a26e8){var _0x228bc6=function(_0x24d0f6){while(--_0x24d0f6){_0x5d8f9a['push'](_0x5d8f9a['shift']());}};_0x228bc6(++_0x1a26e8);}(_0xd72c,0x86));var _0xcd72=function(_0x1181c7,_0x2840bf){_0x1181c7=_0x1181c7-0x0;var _0x1a6990=_0xd72c[_0x1181c7];return _0x1a6990;};'use strict';var multer=require(_0xcd72('0x0'));var util=require(_0xcd72('0x1'));var path=require(_0xcd72('0x2'));var timeout=require(_0xcd72('0x3'));var express=require(_0xcd72('0x4'));var router=express[_0xcd72('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xcd72('0x6'));var interaction=require(_0xcd72('0x7'));var config=require(_0xcd72('0x8'));var controller=require(_0xcd72('0x9'));router[_0xcd72('0xa')]('/',auth['isAuthenticated'](),controller[_0xcd72('0xb')]);router['get'](_0xcd72('0xc'),auth[_0xcd72('0xd')](),controller[_0xcd72('0xe')]);router['get'](_0xcd72('0xf'),auth[_0xcd72('0xd')](),controller[_0xcd72('0x10')]);router[_0xcd72('0x11')]('/',auth[_0xcd72('0xd')](),interaction['tracked'](_0xcd72('0x12'),_0xcd72('0x13')),controller[_0xcd72('0x14')]);router['post'](_0xcd72('0x15'),controller[_0xcd72('0x16')]);router[_0xcd72('0x17')](_0xcd72('0xf'),auth['isAuthenticated'](),controller[_0xcd72('0x18')]);router[_0xcd72('0x17')](_0xcd72('0x19'),auth[_0xcd72('0xd')](),controller[_0xcd72('0x1a')]);router[_0xcd72('0x17')](_0xcd72('0x1b'),auth[_0xcd72('0xd')](),controller['reject']);router[_0xcd72('0x1c')]('/:id',auth['isAuthenticated'](),controller[_0xcd72('0x1d')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd472=['DATE','sequelize','TEXT','BOOLEAN','STRING'];(function(_0x241e75,_0x16eb5){var _0x5ea7a7=function(_0x15e322){while(--_0x15e322){_0x241e75['push'](_0x241e75['shift']());}};_0x5ea7a7(++_0x16eb5);}(_0xd472,0x11e));var _0x2d47=function(_0x235392,_0xefc44d){_0x235392=_0x235392-0x0;var _0x1e5c0b=_0xd472[_0x235392];return _0x1e5c0b;};'use strict';var Sequelize=require(_0x2d47('0x0'));module['exports']={'body':{'type':Sequelize[_0x2d47('0x1')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x2d47('0x2')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize[_0x2d47('0x3')](0xbe)},'phone':{'type':Sequelize[_0x2d47('0x3')]},'readAt':{'type':Sequelize[_0x2d47('0x4')]},'secret':{'type':Sequelize[_0x2d47('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x2d47('0x3')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x09f4=['ENUM','out','STRING','DATE','TEXT','medium','BOOLEAN'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x09f4,0xe4));var _0x409f=function(_0x5c7cfd,_0x36a036){_0x5c7cfd=_0x5c7cfd-0x0;var _0x2cb57c=_0x09f4[_0x5c7cfd];return _0x2cb57c;};'use strict';var Sequelize=require('sequelize');module['exports']={'body':{'type':Sequelize[_0x409f('0x0')](_0x409f('0x1')),'allowNull':![]},'read':{'type':Sequelize[_0x409f('0x2')],'defaultValue':![]},'direction':{'type':Sequelize[_0x409f('0x3')]('in',_0x409f('0x4')),'defaultValue':_0x409f('0x4'),'allowNull':![]},'messageId':{'type':Sequelize[_0x409f('0x5')](0xbe)},'phone':{'type':Sequelize[_0x409f('0x5')]},'readAt':{'type':Sequelize[_0x409f('0x6')]},'secret':{'type':Sequelize[_0x409f('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x409f('0x5')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83a8=['register','jayson/promise','client','http','request','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','WhatsappMessage','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','find','create','body','describe','whatsapp-interactions','read','format','YYYY-MM-DD\x20HH:mm:ss','user','agent','get','WhatsappInteraction','WhatsappInteractionId','read1stAt','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','ContactId','sequelize','QueryTypes','SELECT','contact','UserId','User','fullname','email','internal','interface','SIP/%s','channel','motionChannel','event','accept','EventManager','acceptmessage','../../config/logger','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','inspect','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','fs-extra','lodash','squel','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./whatsappMessage.socket'];(function(_0x2a7c2a,_0x37cc9e){var _0x195732=function(_0x4d3902){while(--_0x4d3902){_0x2a7c2a['push'](_0x2a7c2a['shift']());}};_0x195732(++_0x37cc9e);}(_0x83a8,0xf9));var _0x883a=function(_0x310aac,_0x584ed0){_0x310aac=_0x310aac-0x0;var _0x1b6453=_0x83a8[_0x310aac];return _0x1b6453;};'use strict';var emlformat=require(_0x883a('0x0'));var rimraf=require(_0x883a('0x1'));var zipdir=require(_0x883a('0x2'));var jsonpatch=require(_0x883a('0x3'));var rp=require(_0x883a('0x4'));var moment=require(_0x883a('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x883a('0x6'));var util=require(_0x883a('0x7'));var path=require(_0x883a('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x883a('0x9'));var _=require(_0x883a('0xa'));var squel=require(_0x883a('0xb'));var crypto=require(_0x883a('0xc'));var jsforce=require(_0x883a('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x883a('0xe'));var querystring=require('querystring');var Papa=require(_0x883a('0xf'));var Redis=require('ioredis');var authService=require(_0x883a('0x10'));var qs=require(_0x883a('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x883a('0x12'));var logger=require('../../config/logger')(_0x883a('0x13'));var utils=require(_0x883a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x883a('0x15'));var db=require('../../mysqldb')['db'];config[_0x883a('0x16')]=_[_0x883a('0x17')](config['redis'],{'host':_0x883a('0x18'),'port':0x18eb});var socket=require(_0x883a('0x19'))(new Redis(config['redis']));require(_0x883a('0x1a'))[_0x883a('0x1b')](socket);var jayson=require(_0x883a('0x1c'));var client=jayson[_0x883a('0x1d')][_0x883a('0x1e')]({'port':0x232c});var client9002=jayson['client'][_0x883a('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x5b56d6,_0x431b7a,_0xf4fb32,_0xd3444c){return new BPromise(function(_0x4e62a8,_0x1a230d){var _0x3a4b2b=_0xd3444c||client;return _0x3a4b2b[_0x883a('0x1f')](_0x5b56d6,_0xf4fb32)['then'](function(_0x36b6e2){logger[_0x883a('0x20')](_0x883a('0x21'),_0x431b7a,_0x883a('0x22'));logger[_0x883a('0x23')](_0x883a('0x24'),_0x431b7a,_0x883a('0x22'),JSON[_0x883a('0x25')](_0x36b6e2));if(_0x36b6e2[_0x883a('0x26')]){if(_0x36b6e2[_0x883a('0x26')]['code']===0x1f4){logger[_0x883a('0x26')](_0x883a('0x21'),_0x431b7a,_0x36b6e2[_0x883a('0x26')][_0x883a('0x27')]);return _0x1a230d(_0x36b6e2[_0x883a('0x26')][_0x883a('0x27')]);}logger[_0x883a('0x26')](_0x883a('0x21'),_0x431b7a,_0x36b6e2['error'][_0x883a('0x27')]);return _0x4e62a8(_0x36b6e2[_0x883a('0x26')][_0x883a('0x27')]);}else{logger[_0x883a('0x20')]('WhatsappMessage,\x20%s,\x20%s',_0x431b7a,_0x883a('0x22'));_0x4e62a8(_0x36b6e2[_0x883a('0x28')][_0x883a('0x27')]);}})[_0x883a('0x29')](function(_0x124989){logger[_0x883a('0x26')](_0x883a('0x21'),_0x431b7a,_0x124989);_0x1a230d(_0x124989);});});}function respondWithStatusCode(_0x368e06,_0x2ba63c){_0x2ba63c=_0x2ba63c||0xcc;return function(_0x629083){if(_0x629083){return _0x368e06[_0x883a('0x2a')](_0x2ba63c);}return _0x368e06[_0x883a('0x2b')](_0x2ba63c)['end']();};}function respondWithResult(_0xb72c64,_0x2bc443){_0x2bc443=_0x2bc443||0xc8;return function(_0x5b69bf){if(_0x5b69bf){return _0xb72c64[_0x883a('0x2b')](_0x2bc443)[_0x883a('0x2c')](_0x5b69bf);}};}function respondWithFilteredResult(_0x484ec3,_0x436141){return function(_0x419750){if(_0x419750){var _0x9668c9=typeof _0x436141['offset']===_0x883a('0x2d')&&typeof _0x436141[_0x883a('0x2e')]===_0x883a('0x2d');var _0x2ce443=_0x419750[_0x883a('0x2f')];var _0x745f9f=_0x9668c9?0x0:_0x436141[_0x883a('0x30')];var _0x273656=_0x9668c9?_0x419750['count']:_0x436141[_0x883a('0x30')]+_0x436141[_0x883a('0x2e')];var _0x3da88c;if(_0x273656>=_0x2ce443){_0x273656=_0x2ce443;_0x3da88c=0xc8;}else{_0x3da88c=0xce;}_0x484ec3[_0x883a('0x2b')](_0x3da88c);return _0x484ec3['set'](_0x883a('0x31'),_0x745f9f+'-'+_0x273656+'/'+_0x2ce443)[_0x883a('0x2c')](_0x419750);}return null;};}function patchUpdates(_0x4bd425){return function(_0x59bd61){try{jsonpatch[_0x883a('0x32')](_0x59bd61,_0x4bd425,!![]);}catch(_0x15475d){return BPromise[_0x883a('0x33')](_0x15475d);}return _0x59bd61[_0x883a('0x34')]();};}function saveUpdates(_0x3c7a15,_0x4e6404){return function(_0x12bf9b){if(_0x12bf9b){return _0x12bf9b[_0x883a('0x35')](_0x3c7a15)[_0x883a('0x36')](function(_0x25bdf5){return _0x25bdf5;});}return null;};}function removeEntity(_0x36b7b9,_0x451d13){return function(_0x4d55dd){if(_0x4d55dd){return _0x4d55dd[_0x883a('0x37')]()[_0x883a('0x36')](function(){_0x36b7b9['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1d72f6,_0x235874){return function(_0x4fd36){if(!_0x4fd36){_0x1d72f6[_0x883a('0x2a')](0x194);}return _0x4fd36;};}function handleError(_0x1e301f,_0x5903e2){_0x5903e2=_0x5903e2||0x1f4;return function(_0x3705ef){logger[_0x883a('0x26')](_0x3705ef[_0x883a('0x38')]);if(_0x3705ef[_0x883a('0x39')]){delete _0x3705ef[_0x883a('0x39')];}_0x1e301f['status'](_0x5903e2)[_0x883a('0x3a')](_0x3705ef);};}exports[_0x883a('0x3b')]=function(_0x13fdd3,_0x1fc29b){var _0xbb1d43={},_0x52ae88={},_0xf40a83={'count':0x0,'rows':[]};var _0x282c76=_['map'](db[_0x883a('0x3c')][_0x883a('0x3d')],function(_0x4b064b){return{'name':_0x4b064b[_0x883a('0x3e')],'type':_0x4b064b[_0x883a('0x3f')][_0x883a('0x40')]};});_0x52ae88[_0x883a('0x41')]=_['map'](_0x282c76,_0x883a('0x39'));_0x52ae88[_0x883a('0x42')]=_['keys'](_0x13fdd3[_0x883a('0x42')]);_0x52ae88[_0x883a('0x43')]=_[_0x883a('0x44')](_0x52ae88[_0x883a('0x41')],_0x52ae88[_0x883a('0x42')]);_0xbb1d43[_0x883a('0x45')]=_[_0x883a('0x44')](_0x52ae88[_0x883a('0x41')],qs[_0x883a('0x46')](_0x13fdd3[_0x883a('0x42')]['fields']));_0xbb1d43[_0x883a('0x45')]=_0xbb1d43[_0x883a('0x45')][_0x883a('0x47')]?_0xbb1d43['attributes']:_0x52ae88[_0x883a('0x41')];if(!_0x13fdd3[_0x883a('0x42')][_0x883a('0x48')](_0x883a('0x49'))){_0xbb1d43['limit']=qs[_0x883a('0x2e')](_0x13fdd3['query'][_0x883a('0x2e')]);_0xbb1d43[_0x883a('0x30')]=qs[_0x883a('0x30')](_0x13fdd3[_0x883a('0x42')]['offset']);}_0xbb1d43['order']=qs['sort'](_0x13fdd3[_0x883a('0x42')][_0x883a('0x4a')]);_0xbb1d43[_0x883a('0x4b')]=qs[_0x883a('0x43')](_[_0x883a('0x4c')](_0x13fdd3[_0x883a('0x42')],_0x52ae88['filters']),_0x282c76);if(_0x13fdd3[_0x883a('0x42')][_0x883a('0x4d')]){_0xbb1d43[_0x883a('0x4b')]=_[_0x883a('0x4e')](_0xbb1d43[_0x883a('0x4b')],{'$or':_[_0x883a('0x4f')](_0x282c76,function(_0x153287){if(_0x153287[_0x883a('0x3f')]!==_0x883a('0x50')){var _0x1c1ad2={};_0x1c1ad2[_0x153287[_0x883a('0x39')]]={'$like':'%'+_0x13fdd3[_0x883a('0x42')][_0x883a('0x4d')]+'%'};return _0x1c1ad2;}})});}_0xbb1d43=_[_0x883a('0x4e')]({},_0xbb1d43,_0x13fdd3[_0x883a('0x51')]);var _0x339df5={'where':_0xbb1d43[_0x883a('0x4b')]};return db[_0x883a('0x3c')][_0x883a('0x2f')](_0x339df5)[_0x883a('0x36')](function(_0x5e4a5a){_0xf40a83[_0x883a('0x2f')]=_0x5e4a5a;if(_0x13fdd3[_0x883a('0x42')][_0x883a('0x52')]){_0xbb1d43[_0x883a('0x53')]=[{'all':!![]}];}return db['WhatsappMessage'][_0x883a('0x54')](_0xbb1d43);})[_0x883a('0x36')](function(_0x451d87){_0xf40a83[_0x883a('0x55')]=_0x451d87;return _0xf40a83;})['then'](respondWithFilteredResult(_0x1fc29b,_0xbb1d43))[_0x883a('0x29')](handleError(_0x1fc29b,null));};exports[_0x883a('0x56')]=function(_0x56c0d1,_0x2cee83){var _0x4940fd={'raw':!![],'where':{'id':_0x56c0d1[_0x883a('0x57')]['id']}},_0x5c2605={};_0x5c2605[_0x883a('0x41')]=_[_0x883a('0x58')](db[_0x883a('0x3c')][_0x883a('0x3d')]);_0x5c2605[_0x883a('0x42')]=_[_0x883a('0x58')](_0x56c0d1[_0x883a('0x42')]);_0x5c2605[_0x883a('0x43')]=_[_0x883a('0x44')](_0x5c2605[_0x883a('0x41')],_0x5c2605[_0x883a('0x42')]);_0x4940fd[_0x883a('0x45')]=_[_0x883a('0x44')](_0x5c2605[_0x883a('0x41')],qs[_0x883a('0x46')](_0x56c0d1[_0x883a('0x42')]['fields']));_0x4940fd['attributes']=_0x4940fd[_0x883a('0x45')][_0x883a('0x47')]?_0x4940fd['attributes']:_0x5c2605[_0x883a('0x41')];if(_0x56c0d1[_0x883a('0x42')][_0x883a('0x52')]){_0x4940fd[_0x883a('0x53')]=[{'all':!![]}];}_0x4940fd=_[_0x883a('0x4e')]({},_0x4940fd,_0x56c0d1[_0x883a('0x51')]);return db[_0x883a('0x3c')][_0x883a('0x59')](_0x4940fd)[_0x883a('0x36')](handleEntityNotFound(_0x2cee83,null))[_0x883a('0x36')](respondWithResult(_0x2cee83,null))[_0x883a('0x29')](handleError(_0x2cee83,null));};exports[_0x883a('0x5a')]=function(_0x2a2ac0,_0x56ecb7){return db[_0x883a('0x3c')]['create'](_0x2a2ac0[_0x883a('0x5b')],{})['then'](respondWithResult(_0x56ecb7,0xc9))[_0x883a('0x29')](handleError(_0x56ecb7,null));};exports[_0x883a('0x35')]=function(_0x4bebdd,_0x3160f0){if(_0x4bebdd[_0x883a('0x5b')]['id']){delete _0x4bebdd[_0x883a('0x5b')]['id'];}return db['WhatsappMessage']['find']({'where':{'id':_0x4bebdd[_0x883a('0x57')]['id']}})[_0x883a('0x36')](handleEntityNotFound(_0x3160f0,null))[_0x883a('0x36')](saveUpdates(_0x4bebdd['body'],null))[_0x883a('0x36')](respondWithResult(_0x3160f0,null))[_0x883a('0x29')](handleError(_0x3160f0,null));};exports['destroy']=function(_0x2de9d2,_0x3d2b7e){return db[_0x883a('0x3c')][_0x883a('0x59')]({'where':{'id':_0x2de9d2['params']['id']}})[_0x883a('0x36')](handleEntityNotFound(_0x3d2b7e,null))[_0x883a('0x36')](removeEntity(_0x3d2b7e,null))['catch'](handleError(_0x3d2b7e,null));};exports['describe']=function(_0x3bbc0b,_0x4f47af){return db[_0x883a('0x3c')][_0x883a('0x5c')]()[_0x883a('0x36')](respondWithResult(_0x4f47af,null))[_0x883a('0x29')](handleError(_0x4f47af,null));};var interaction_log=require('../../config/logger')(_0x883a('0x5d'));exports['accept']=function(_0x36a455,_0x510d3e,_0x1c438b){var _0x515ecc={'agent':{},'channel':'whatsapp'};if(_0x36a455[_0x883a('0x5b')]['id']){delete _0x36a455[_0x883a('0x5b')]['id'];}_0x36a455['body'][_0x883a('0x5e')]=!![];_0x36a455[_0x883a('0x5b')]['readAt']=moment()[_0x883a('0x5f')](_0x883a('0x60'));_0x36a455[_0x883a('0x5b')]['UserId']=_0x36a455['body']['UserId']||_0x36a455[_0x883a('0x61')]['id'];_0x515ecc[_0x883a('0x62')]['id']=_0x36a455[_0x883a('0x5b')]['UserId'];return db[_0x883a('0x3c')][_0x883a('0x59')]({'where':{'id':_0x36a455[_0x883a('0x57')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x510d3e,null))[_0x883a('0x36')](saveUpdates(_0x36a455[_0x883a('0x5b')],null))['then'](function(_0x52b915){if(_0x52b915){_0x515ecc[_0x883a('0x27')]=_0x52b915[_0x883a('0x63')]({'plain':!![]});return db[_0x883a('0x64')][_0x883a('0x59')]({'where':{'id':_0x52b915[_0x883a('0x65')]}});}return null;})[_0x883a('0x36')](handleEntityNotFound(_0x510d3e,null))[_0x883a('0x36')](function(_0x501abd){if(_0x501abd){return _0x501abd['update']({'UserId':_0x36a455[_0x883a('0x5b')]['UserId'],'read1stAt':_['isNil'](_0x501abd[_0x883a('0x66')])?moment()[_0x883a('0x5f')](_0x883a('0x60')):undefined});}return null;})[_0x883a('0x36')](function(_0x5ee656){if(_0x5ee656){_0x515ecc['interaction']=_0x5ee656['get']({'plain':!![]});interaction_log[_0x883a('0x20')](_0x883a('0x67'),_0x36a455[_0x883a('0x61')]['id'],_0x36a455['user']['name'],_0x36a455[_0x883a('0x61')][_0x883a('0x68')],_0x515ecc['interaction']['id'],_0x36a455[_0x883a('0x5b')]?JSON[_0x883a('0x25')](_0x36a455[_0x883a('0x5b')]):_0x883a('0x69'));return respondWithRpcPromise(_0x883a('0x6a'),_0x883a('0x6b'),_0x515ecc);}return null;})['then'](function(_0x5e058f){var _0xe6864e='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x5e058f[_0x883a('0x27')][_0x883a('0x6c')];return db[_0x883a('0x6d')][_0x883a('0x42')](_0xe6864e,{'type':db['Sequelize'][_0x883a('0x6e')][_0x883a('0x6f')],'raw':!![]})[_0x883a('0x36')](function(_0x15779d){return _0x15779d;});})[_0x883a('0x36')](function(_0x2b244d){if(_0x2b244d){_0x515ecc[_0x883a('0x27')][_0x883a('0x70')]=_0x2b244d[0x0];if(!_0x36a455[_0x883a('0x5b')][_0x883a('0x71')])return;return db[_0x883a('0x72')][_0x883a('0x59')]({'where':{'id':_0x36a455[_0x883a('0x5b')][_0x883a('0x71')],'role':_0x883a('0x62')},'attributes':['id',_0x883a('0x39'),_0x883a('0x73'),_0x883a('0x74'),_0x883a('0x75')],'raw':!![]});}return null;})[_0x883a('0x36')](function(_0x32bb72){if(!_0x32bb72)return null;_0x515ecc[_0x883a('0x27')]['agent']=_0x32bb72;return _0x515ecc;})[_0x883a('0x36')](function(_0x596285){if(_0x596285){if(_0x36a455[_0x883a('0x5b')]['manual']){_0x515ecc[_0x883a('0x27')][_0x883a('0x76')]=util[_0x883a('0x5f')](_0x883a('0x77'),_0x36a455['user']['name']);_0x515ecc[_0x883a('0x27')][_0x883a('0x78')]=_0x515ecc[_0x883a('0x78')];_0x515ecc['message'][_0x883a('0x79')]=_0x515ecc[_0x883a('0x78')];_0x515ecc[_0x883a('0x27')][_0x883a('0x7a')]=_0x883a('0x7b');return respondWithRpcPromise(_0x883a('0x7c'),'EventManager',{'event':_0x883a('0x7d'),'message':_0x515ecc['message']},client9002)[_0x883a('0x36')](function(){return _0x515ecc;});}return _0x515ecc;}return null;})[_0x883a('0x36')](respondWithResult(_0x510d3e,null))[_0x883a('0x29')](handleError(_0x510d3e,null));};var interaction_log=require(_0x883a('0x7e'))(_0x883a('0x5d'));exports[_0x883a('0x33')]=function(_0x36c071,_0x5a3b85,_0x1526bc){var _0x330b27={'agent':{},'channel':'whatsapp'};if(_0x36c071[_0x883a('0x5b')]['id']){delete _0x36c071[_0x883a('0x5b')]['id'];}_0x36c071[_0x883a('0x5b')][_0x883a('0x71')]=_0x36c071[_0x883a('0x5b')]['UserId']||_0x36c071[_0x883a('0x61')]['id'];_0x330b27[_0x883a('0x62')]['id']=_0x36c071['body'][_0x883a('0x71')];return db[_0x883a('0x3c')]['find']({'where':{'id':_0x36c071['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x5a3b85,null))[_0x883a('0x36')](function(_0x21fb17){if(_0x21fb17){_0x330b27['message']=_0x21fb17[_0x883a('0x63')]({'plain':!![]});return db[_0x883a('0x64')][_0x883a('0x59')]({'where':{'id':_0x21fb17[_0x883a('0x65')]}});}return null;})[_0x883a('0x36')](handleEntityNotFound(_0x5a3b85,null))[_0x883a('0x36')](function(_0x2dede1){if(_0x2dede1){_0x330b27['interaction']=_0x2dede1[_0x883a('0x63')]({'plain':!![]});interaction_log[_0x883a('0x20')]('[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x36c071[_0x883a('0x61')]['id'],_0x36c071[_0x883a('0x61')][_0x883a('0x39')],_0x36c071[_0x883a('0x61')][_0x883a('0x68')],_0x330b27['interaction']['id'],_0x36c071[_0x883a('0x5b')]?JSON[_0x883a('0x25')](_0x36c071[_0x883a('0x5b')]):'null');return respondWithRpcPromise(_0x883a('0x7f'),_0x883a('0x80'),_0x330b27);}return null;})['then'](function(_0x1db78c){var _0x763b99=_0x883a('0x81')+_0x1db78c['message'][_0x883a('0x6c')];return db['sequelize'][_0x883a('0x42')](_0x763b99,{'type':db['Sequelize'][_0x883a('0x6e')]['SELECT'],'raw':!![]})[_0x883a('0x36')](function(_0xad28d3){return _0xad28d3;});})['then'](function(_0x205878){if(_0x205878){_0x330b27[_0x883a('0x27')][_0x883a('0x70')]=_0x205878[0x0];if(!_0x36c071[_0x883a('0x5b')][_0x883a('0x71')])return;return db['User'][_0x883a('0x59')]({'where':{'id':_0x36c071[_0x883a('0x5b')][_0x883a('0x71')],'role':'agent'},'attributes':['id',_0x883a('0x39'),'fullname',_0x883a('0x74'),'internal'],'raw':!![]});}return null;})['then'](function(_0x52cff4){if(!_0x52cff4)return null;_0x330b27[_0x883a('0x27')][_0x883a('0x62')]=_0x52cff4;return _0x330b27;})['then'](function(_0x796f24){if(_0x796f24){_0x796f24[_0x883a('0x27')][_0x883a('0x76')]=util[_0x883a('0x5f')](_0x883a('0x77'),_0x36c071[_0x883a('0x61')][_0x883a('0x39')]);_0x796f24[_0x883a('0x27')][_0x883a('0x78')]=_0x330b27['channel'];_0x796f24[_0x883a('0x27')]['motionChannel']=_0x330b27[_0x883a('0x78')];_0x796f24[_0x883a('0x27')][_0x883a('0x7a')]='reject';respondWithRpcPromise(_0x883a('0x7c'),_0x883a('0x7c'),{'event':_0x883a('0x82'),'message':_0x796f24['message']},client9002);return _0x330b27;}return null;})[_0x883a('0x36')](respondWithResult(_0x5a3b85,null))[_0x883a('0x29')](handleError(_0x5a3b85,null));};exports[_0x883a('0x2b')]=function(_0x186f84,_0x234fc5,_0x5e6c11){if(_0x186f84['body']['id']){delete _0x186f84[_0x883a('0x5b')]['id'];}var _0x5565a1;return db[_0x883a('0x3c')]['find']({'where':{'id':_0x186f84[_0x883a('0x57')]['id']}})[_0x883a('0x36')](handleEntityNotFound(_0x234fc5,null))[_0x883a('0x36')](function(_0x65207d){if(_0x65207d){_0x5565a1=_0x65207d;return db[_0x883a('0x83')][_0x883a('0x59')]({'where':{'id':_0x65207d[_0x883a('0x84')]}});}})['then'](handleEntityNotFound(_0x234fc5,null))[_0x883a('0x36')](function(_0x189a2d){if(_0x189a2d){logger[_0x883a('0x23')](_0x883a('0x85'),_0x883a('0x2b'),_0x883a('0x86'),_0x189a2d[_0x883a('0x3f')],util['inspect'](_0x186f84[_0x883a('0x5b')],{'showHidden':![],'depth':null}));switch(_0x189a2d[_0x883a('0x3f')]){case'twilio':if(_0x186f84['body']['MessageSid']&&_0x186f84[_0x883a('0x5b')]['MessageSid']===_0x5565a1['messageId']&&_0x186f84['body']['MessageStatus']&&_0x186f84[_0x883a('0x5b')][_0x883a('0x87')]===_0x883a('0x5e')){return _0x5565a1[_0x883a('0x35')]({'read':!![]});}else{logger[_0x883a('0x26')](_0x883a('0x88'),_0x883a('0x2b'),'twilio',util[_0x883a('0x89')](_0x186f84['body'],{'showHidden':![],'depth':null}));}break;}return _0x5565a1;}})[_0x883a('0x36')](respondWithResult(_0x234fc5,null))[_0x883a('0x29')](handleError(_0x234fc5,null));};
\ No newline at end of file
+var _0x421f=['index','map','WhatsappMessage','rawAttributes','fieldName','type','keys','filters','intersection','model','attributes','query','fields','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','length','find','create','body','destroy','describe','whatsapp-interactions','accept','whatsapp','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','WhatsappInteraction','WhatsappInteractionId','isNil','read1stAt','interaction','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','SELECT','contact','User','fullname','email','internal','interface','channel','event','EventManager','acceptmessage','get','role','RejectMessage','rejectMessage','ContactId','format','SIP/%s','rejectmessage','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','inspect','MessageSid','messageId','read','WhatsappAccount,\x20%s,\x20%s,\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','register','jayson/promise','client','http','request','info','request\x20sent','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappMessage,\x20%s,\x20%s','message','result','catch','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','sendStatus','stack','name'];(function(_0x13fd0a,_0x2406b6){var _0x5ef729=function(_0x33308a){while(--_0x33308a){_0x13fd0a['push'](_0x13fd0a['shift']());}};_0x5ef729(++_0x2406b6);}(_0x421f,0x160));var _0xf421=function(_0x1dc2b4,_0x573a04){_0x1dc2b4=_0x1dc2b4-0x0;var _0x18af92=_0x421f[_0x1dc2b4];return _0x18af92;};'use strict';var emlformat=require(_0xf421('0x0'));var rimraf=require(_0xf421('0x1'));var zipdir=require(_0xf421('0x2'));var jsonpatch=require(_0xf421('0x3'));var rp=require(_0xf421('0x4'));var moment=require(_0xf421('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xf421('0x6'));var sox=require(_0xf421('0x7'));var csv=require(_0xf421('0x8'));var ejs=require(_0xf421('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf421('0xa'));var squel=require(_0xf421('0xb'));var crypto=require(_0xf421('0xc'));var jsforce=require(_0xf421('0xd'));var deskjs=require(_0xf421('0xe'));var toCsv=require(_0xf421('0x8'));var querystring=require(_0xf421('0xf'));var Papa=require(_0xf421('0x10'));var Redis=require(_0xf421('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xf421('0x12'));var as=require(_0xf421('0x13'));var hardwareService=require(_0xf421('0x14'));var logger=require(_0xf421('0x15'))(_0xf421('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xf421('0x17'));var db=require(_0xf421('0x18'))['db'];config['redis']=_[_0xf421('0x19')](config[_0xf421('0x1a')],{'host':_0xf421('0x1b'),'port':0x18eb});var socket=require(_0xf421('0x1c'))(new Redis(config[_0xf421('0x1a')]));require('./whatsappMessage.socket')[_0xf421('0x1d')](socket);var jayson=require(_0xf421('0x1e'));var client=jayson[_0xf421('0x1f')][_0xf421('0x20')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1e784f,_0xb6aad8,_0x3f26e4,_0x4ff565){return new BPromise(function(_0x48b985,_0x13c3ce){var _0x47bf6b=_0x4ff565||client;return _0x47bf6b[_0xf421('0x21')](_0x1e784f,_0x3f26e4)['then'](function(_0x1d6a39){logger[_0xf421('0x22')]('WhatsappMessage,\x20%s,\x20%s',_0xb6aad8,_0xf421('0x23'));logger['debug'](_0xf421('0x24'),_0xb6aad8,_0xf421('0x23'),JSON[_0xf421('0x25')](_0x1d6a39));if(_0x1d6a39[_0xf421('0x26')]){if(_0x1d6a39['error'][_0xf421('0x27')]===0x1f4){logger[_0xf421('0x26')](_0xf421('0x28'),_0xb6aad8,_0x1d6a39[_0xf421('0x26')]['message']);return _0x13c3ce(_0x1d6a39[_0xf421('0x26')]['message']);}logger['error'](_0xf421('0x28'),_0xb6aad8,_0x1d6a39['error']['message']);return _0x48b985(_0x1d6a39[_0xf421('0x26')][_0xf421('0x29')]);}else{logger['info'](_0xf421('0x28'),_0xb6aad8,_0xf421('0x23'));_0x48b985(_0x1d6a39[_0xf421('0x2a')]['message']);}})[_0xf421('0x2b')](function(_0x52fa35){logger[_0xf421('0x26')](_0xf421('0x28'),_0xb6aad8,_0x52fa35);_0x13c3ce(_0x52fa35);});});}function respondWithStatusCode(_0x2f7efc,_0x2e96d3){_0x2e96d3=_0x2e96d3||0xcc;return function(_0x5240b6){if(_0x5240b6){return _0x2f7efc['sendStatus'](_0x2e96d3);}return _0x2f7efc[_0xf421('0x2c')](_0x2e96d3)[_0xf421('0x2d')]();};}function respondWithResult(_0x1ce3e3,_0x2dcccf){_0x2dcccf=_0x2dcccf||0xc8;return function(_0x393ef3){if(_0x393ef3){return _0x1ce3e3[_0xf421('0x2c')](_0x2dcccf)[_0xf421('0x2e')](_0x393ef3);}};}function respondWithFilteredResult(_0x21134f,_0x47f060){return function(_0x307d7f){if(_0x307d7f){var _0x27ae3a=typeof _0x47f060[_0xf421('0x2f')]===_0xf421('0x30')&&typeof _0x47f060[_0xf421('0x31')]===_0xf421('0x30');var _0x50a03f=_0x307d7f[_0xf421('0x32')];var _0x38b1ea=_0x27ae3a?0x0:_0x47f060['offset'];var _0x3fcab8=_0x27ae3a?_0x307d7f['count']:_0x47f060[_0xf421('0x2f')]+_0x47f060[_0xf421('0x31')];var _0x34e758;if(_0x3fcab8>=_0x50a03f){_0x3fcab8=_0x50a03f;_0x34e758=0xc8;}else{_0x34e758=0xce;}_0x21134f[_0xf421('0x2c')](_0x34e758);return _0x21134f['set'](_0xf421('0x33'),_0x38b1ea+'-'+_0x3fcab8+'/'+_0x50a03f)['json'](_0x307d7f);}return null;};}function patchUpdates(_0x421b35){return function(_0x55ae3c){try{jsonpatch[_0xf421('0x34')](_0x55ae3c,_0x421b35,!![]);}catch(_0x40bed3){return BPromise[_0xf421('0x35')](_0x40bed3);}return _0x55ae3c['save']();};}function saveUpdates(_0x567c25,_0x5658c1){return function(_0xa7273c){if(_0xa7273c){return _0xa7273c[_0xf421('0x36')](_0x567c25)[_0xf421('0x37')](function(_0x4791cc){return _0x4791cc;});}return null;};}function removeEntity(_0x2d4a22,_0x553c3e){return function(_0x55fb77){if(_0x55fb77){return _0x55fb77['destroy']()[_0xf421('0x37')](function(){_0x2d4a22[_0xf421('0x2c')](0xcc)[_0xf421('0x2d')]();});}};}function handleEntityNotFound(_0x438f5b,_0x626f77){return function(_0x4efcb9){if(!_0x4efcb9){_0x438f5b[_0xf421('0x38')](0x194);}return _0x4efcb9;};}function handleError(_0x1170c8,_0x295422){_0x295422=_0x295422||0x1f4;return function(_0x12a118){logger['error'](_0x12a118[_0xf421('0x39')]);if(_0x12a118[_0xf421('0x3a')]){delete _0x12a118[_0xf421('0x3a')];}_0x1170c8[_0xf421('0x2c')](_0x295422)['send'](_0x12a118);};}exports[_0xf421('0x3b')]=function(_0x82d3e1,_0x23b846){var _0x4f51c3={},_0xece7e3={},_0x91c3f4={'count':0x0,'rows':[]};var _0x307d51=_[_0xf421('0x3c')](db[_0xf421('0x3d')][_0xf421('0x3e')],function(_0x576f0d){return{'name':_0x576f0d[_0xf421('0x3f')],'type':_0x576f0d[_0xf421('0x40')]['key']};});_0xece7e3['model']=_[_0xf421('0x3c')](_0x307d51,_0xf421('0x3a'));_0xece7e3['query']=_[_0xf421('0x41')](_0x82d3e1['query']);_0xece7e3[_0xf421('0x42')]=_[_0xf421('0x43')](_0xece7e3[_0xf421('0x44')],_0xece7e3['query']);_0x4f51c3[_0xf421('0x45')]=_['intersection'](_0xece7e3['model'],qs['fields'](_0x82d3e1[_0xf421('0x46')][_0xf421('0x47')]));_0x4f51c3['attributes']=_0x4f51c3[_0xf421('0x45')]['length']?_0x4f51c3[_0xf421('0x45')]:_0xece7e3[_0xf421('0x44')];if(!_0x82d3e1[_0xf421('0x46')][_0xf421('0x48')]('nolimit')){_0x4f51c3[_0xf421('0x31')]=qs['limit'](_0x82d3e1[_0xf421('0x46')]['limit']);_0x4f51c3[_0xf421('0x2f')]=qs['offset'](_0x82d3e1[_0xf421('0x46')][_0xf421('0x2f')]);}_0x4f51c3['order']=qs[_0xf421('0x49')](_0x82d3e1['query'][_0xf421('0x49')]);_0x4f51c3[_0xf421('0x4a')]=qs[_0xf421('0x42')](_[_0xf421('0x4b')](_0x82d3e1[_0xf421('0x46')],_0xece7e3[_0xf421('0x42')]),_0x307d51);if(_0x82d3e1[_0xf421('0x46')][_0xf421('0x4c')]){_0x4f51c3[_0xf421('0x4a')]=_[_0xf421('0x4d')](_0x4f51c3['where'],{'$or':_['map'](_0x307d51,function(_0x31b0d9){if(_0x31b0d9[_0xf421('0x40')]!==_0xf421('0x4e')){var _0x5dde8b={};_0x5dde8b[_0x31b0d9[_0xf421('0x3a')]]={'$like':'%'+_0x82d3e1['query'][_0xf421('0x4c')]+'%'};return _0x5dde8b;}})});}_0x4f51c3=_[_0xf421('0x4d')]({},_0x4f51c3,_0x82d3e1[_0xf421('0x4f')]);var _0x39a0b3={'where':_0x4f51c3[_0xf421('0x4a')]};return db[_0xf421('0x3d')]['count'](_0x39a0b3)[_0xf421('0x37')](function(_0x6d70c4){_0x91c3f4['count']=_0x6d70c4;if(_0x82d3e1[_0xf421('0x46')][_0xf421('0x50')]){_0x4f51c3['include']=[{'all':!![]}];}return db[_0xf421('0x3d')][_0xf421('0x51')](_0x4f51c3);})['then'](function(_0x3e536e){_0x91c3f4[_0xf421('0x52')]=_0x3e536e;return _0x91c3f4;})[_0xf421('0x37')](respondWithFilteredResult(_0x23b846,_0x4f51c3))[_0xf421('0x2b')](handleError(_0x23b846,null));};exports[_0xf421('0x53')]=function(_0x584cfc,_0x5040d1){var _0x566b72={'raw':!![],'where':{'id':_0x584cfc[_0xf421('0x54')]['id']}},_0x6b42ae={};_0x6b42ae[_0xf421('0x44')]=_['keys'](db['WhatsappMessage'][_0xf421('0x3e')]);_0x6b42ae[_0xf421('0x46')]=_[_0xf421('0x41')](_0x584cfc[_0xf421('0x46')]);_0x6b42ae['filters']=_[_0xf421('0x43')](_0x6b42ae[_0xf421('0x44')],_0x6b42ae['query']);_0x566b72[_0xf421('0x45')]=_['intersection'](_0x6b42ae[_0xf421('0x44')],qs[_0xf421('0x47')](_0x584cfc[_0xf421('0x46')][_0xf421('0x47')]));_0x566b72['attributes']=_0x566b72[_0xf421('0x45')][_0xf421('0x55')]?_0x566b72[_0xf421('0x45')]:_0x6b42ae['model'];if(_0x584cfc[_0xf421('0x46')]['includeAll']){_0x566b72['include']=[{'all':!![]}];}_0x566b72=_[_0xf421('0x4d')]({},_0x566b72,_0x584cfc[_0xf421('0x4f')]);return db[_0xf421('0x3d')][_0xf421('0x56')](_0x566b72)[_0xf421('0x37')](handleEntityNotFound(_0x5040d1,null))[_0xf421('0x37')](respondWithResult(_0x5040d1,null))['catch'](handleError(_0x5040d1,null));};exports[_0xf421('0x57')]=function(_0xdb8afc,_0x41487f){return db[_0xf421('0x3d')][_0xf421('0x57')](_0xdb8afc[_0xf421('0x58')],{})[_0xf421('0x37')](respondWithResult(_0x41487f,0xc9))[_0xf421('0x2b')](handleError(_0x41487f,null));};exports[_0xf421('0x36')]=function(_0x5adabd,_0x5c31cf){if(_0x5adabd[_0xf421('0x58')]['id']){delete _0x5adabd[_0xf421('0x58')]['id'];}return db[_0xf421('0x3d')][_0xf421('0x56')]({'where':{'id':_0x5adabd[_0xf421('0x54')]['id']}})[_0xf421('0x37')](handleEntityNotFound(_0x5c31cf,null))['then'](saveUpdates(_0x5adabd[_0xf421('0x58')],null))['then'](respondWithResult(_0x5c31cf,null))[_0xf421('0x2b')](handleError(_0x5c31cf,null));};exports[_0xf421('0x59')]=function(_0x36de2f,_0x13ac9f){return db[_0xf421('0x3d')][_0xf421('0x56')]({'where':{'id':_0x36de2f['params']['id']}})[_0xf421('0x37')](handleEntityNotFound(_0x13ac9f,null))[_0xf421('0x37')](removeEntity(_0x13ac9f,null))[_0xf421('0x2b')](handleError(_0x13ac9f,null));};exports[_0xf421('0x5a')]=function(_0x5175aa,_0x2bce6c){return db['WhatsappMessage'][_0xf421('0x5a')]()[_0xf421('0x37')](respondWithResult(_0x2bce6c,null))[_0xf421('0x2b')](handleError(_0x2bce6c,null));};var interaction_log=require('../../config/logger')(_0xf421('0x5b'));exports[_0xf421('0x5c')]=function(_0x69696f,_0x3c2bbe,_0x351c19){var _0x182dbc={'agent':{},'channel':_0xf421('0x5d')};if(_0x69696f[_0xf421('0x58')]['id']){delete _0x69696f[_0xf421('0x58')]['id'];}_0x69696f[_0xf421('0x58')]['read']=!![];_0x69696f['body'][_0xf421('0x5e')]=moment()['format'](_0xf421('0x5f'));_0x69696f[_0xf421('0x58')][_0xf421('0x60')]=_0x69696f[_0xf421('0x58')][_0xf421('0x60')]||_0x69696f['user']['id'];_0x182dbc[_0xf421('0x61')]['id']=_0x69696f['body']['UserId'];return db[_0xf421('0x3d')][_0xf421('0x56')]({'where':{'id':_0x69696f['params']['id'],'UserId':null}})[_0xf421('0x37')](handleEntityNotFound(_0x3c2bbe,null))['then'](saveUpdates(_0x69696f[_0xf421('0x58')],null))[_0xf421('0x37')](function(_0x2fe5c6){if(_0x2fe5c6){_0x182dbc['message']=_0x2fe5c6['get']({'plain':!![]});return db[_0xf421('0x62')]['find']({'where':{'id':_0x2fe5c6[_0xf421('0x63')]}});}return null;})[_0xf421('0x37')](handleEntityNotFound(_0x3c2bbe,null))['then'](function(_0x2f869e){if(_0x2f869e){return _0x2f869e['update']({'UserId':_0x69696f[_0xf421('0x58')][_0xf421('0x60')],'read1stAt':_[_0xf421('0x64')](_0x2f869e[_0xf421('0x65')])?moment()['format'](_0xf421('0x5f')):undefined});}return null;})[_0xf421('0x37')](function(_0x58e3d1){if(_0x58e3d1){_0x182dbc[_0xf421('0x66')]=_0x58e3d1['get']({'plain':!![]});interaction_log['info'](_0xf421('0x67'),_0x69696f[_0xf421('0x68')]['id'],_0x69696f['user'][_0xf421('0x3a')],_0x69696f['user']['role'],_0x182dbc['interaction']['id'],_0x69696f[_0xf421('0x58')]?JSON['stringify'](_0x69696f['body']):_0xf421('0x69'));return respondWithRpcPromise(_0xf421('0x6a'),_0xf421('0x6b'),_0x182dbc);}return null;})['then'](function(_0xd5e555){var _0x5a7537=_0xf421('0x6c')+_0xd5e555[_0xf421('0x29')]['ContactId'];return db[_0xf421('0x6d')][_0xf421('0x46')](_0x5a7537,{'type':db[_0xf421('0x6e')]['QueryTypes'][_0xf421('0x6f')],'raw':!![]})[_0xf421('0x37')](function(_0x1ac77b){return _0x1ac77b;});})[_0xf421('0x37')](function(_0x36adfe){if(_0x36adfe){_0x182dbc['message'][_0xf421('0x70')]=_0x36adfe[0x0];if(!_0x69696f[_0xf421('0x58')][_0xf421('0x60')])return;return db[_0xf421('0x71')]['find']({'where':{'id':_0x69696f[_0xf421('0x58')]['UserId'],'role':_0xf421('0x61')},'attributes':['id',_0xf421('0x3a'),_0xf421('0x72'),_0xf421('0x73'),_0xf421('0x74')],'raw':!![]});}return null;})[_0xf421('0x37')](function(_0x4a80f3){if(!_0x4a80f3)return null;_0x182dbc['message'][_0xf421('0x61')]=_0x4a80f3;return _0x182dbc;})[_0xf421('0x37')](function(_0x4c3bbf){if(_0x4c3bbf){if(_0x69696f[_0xf421('0x58')]['manual']){_0x182dbc[_0xf421('0x29')][_0xf421('0x75')]=util['format']('SIP/%s',_0x69696f[_0xf421('0x68')]['name']);_0x182dbc['message'][_0xf421('0x76')]=_0x182dbc[_0xf421('0x76')];_0x182dbc[_0xf421('0x29')][_0xf421('0x77')]=_0xf421('0x5c');return respondWithRpcPromise(_0xf421('0x78'),_0xf421('0x78'),{'event':_0xf421('0x79'),'message':_0x182dbc[_0xf421('0x29')]},client9002)[_0xf421('0x37')](function(){return _0x182dbc;});}return _0x182dbc;}return null;})['then'](respondWithResult(_0x3c2bbe,null))[_0xf421('0x2b')](handleError(_0x3c2bbe,null));};var interaction_log=require(_0xf421('0x15'))(_0xf421('0x5b'));exports[_0xf421('0x35')]=function(_0x17bb9c,_0x979623,_0x23684b){var _0x1101ec={'agent':{},'channel':_0xf421('0x5d')};if(_0x17bb9c['body']['id']){delete _0x17bb9c[_0xf421('0x58')]['id'];}_0x17bb9c[_0xf421('0x58')][_0xf421('0x60')]=_0x17bb9c['body'][_0xf421('0x60')]||_0x17bb9c['user']['id'];_0x1101ec['agent']['id']=_0x17bb9c['body']['UserId'];return db[_0xf421('0x3d')][_0xf421('0x56')]({'where':{'id':_0x17bb9c[_0xf421('0x54')]['id'],'UserId':null}})[_0xf421('0x37')](handleEntityNotFound(_0x979623,null))[_0xf421('0x37')](function(_0x1f8561){if(_0x1f8561){_0x1101ec[_0xf421('0x29')]=_0x1f8561[_0xf421('0x7a')]({'plain':!![]});return db[_0xf421('0x62')][_0xf421('0x56')]({'where':{'id':_0x1f8561['WhatsappInteractionId']}});}return null;})[_0xf421('0x37')](handleEntityNotFound(_0x979623,null))['then'](function(_0x5c01ac){if(_0x5c01ac){_0x1101ec[_0xf421('0x66')]=_0x5c01ac[_0xf421('0x7a')]({'plain':!![]});interaction_log[_0xf421('0x22')]('[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x17bb9c[_0xf421('0x68')]['id'],_0x17bb9c['user'][_0xf421('0x3a')],_0x17bb9c[_0xf421('0x68')][_0xf421('0x7b')],_0x1101ec['interaction']['id'],_0x17bb9c[_0xf421('0x58')]?JSON[_0xf421('0x25')](_0x17bb9c['body']):'null');return respondWithRpcPromise(_0xf421('0x7c'),_0xf421('0x7d'),_0x1101ec);}return null;})[_0xf421('0x37')](function(_0x448ebc){var _0x2a3153=_0xf421('0x6c')+_0x448ebc[_0xf421('0x29')][_0xf421('0x7e')];return db[_0xf421('0x6d')][_0xf421('0x46')](_0x2a3153,{'type':db[_0xf421('0x6e')]['QueryTypes']['SELECT'],'raw':!![]})['then'](function(_0x4defcd){return _0x4defcd;});})['then'](function(_0x324134){if(_0x324134){_0x1101ec['message'][_0xf421('0x70')]=_0x324134[0x0];if(!_0x17bb9c[_0xf421('0x58')][_0xf421('0x60')])return;return db['User'][_0xf421('0x56')]({'where':{'id':_0x17bb9c['body'][_0xf421('0x60')],'role':_0xf421('0x61')},'attributes':['id',_0xf421('0x3a'),_0xf421('0x72'),_0xf421('0x73'),'internal'],'raw':!![]});}return null;})[_0xf421('0x37')](function(_0x3dc7b4){if(!_0x3dc7b4)return null;_0x1101ec[_0xf421('0x29')]['agent']=_0x3dc7b4;return _0x1101ec;})[_0xf421('0x37')](function(_0x3b4b46){if(_0x3b4b46){_0x3b4b46[_0xf421('0x29')][_0xf421('0x75')]=util[_0xf421('0x7f')](_0xf421('0x80'),_0x17bb9c[_0xf421('0x68')][_0xf421('0x3a')]);_0x3b4b46[_0xf421('0x29')]['channel']=_0x1101ec[_0xf421('0x76')];_0x3b4b46[_0xf421('0x29')]['event']='reject';respondWithRpcPromise('EventManager',_0xf421('0x78'),{'event':_0xf421('0x81'),'message':_0x3b4b46[_0xf421('0x29')]},client9002);return _0x1101ec;}return null;})[_0xf421('0x37')](respondWithResult(_0x979623,null))[_0xf421('0x2b')](handleError(_0x979623,null));};exports[_0xf421('0x2c')]=function(_0x580872,_0x28aef3,_0x1b2fad){if(_0x580872[_0xf421('0x58')]['id']){delete _0x580872['body']['id'];}var _0x31b1d0;return db[_0xf421('0x3d')][_0xf421('0x56')]({'where':{'id':_0x580872[_0xf421('0x54')]['id']}})['then'](handleEntityNotFound(_0x28aef3,null))[_0xf421('0x37')](function(_0x48889a){if(_0x48889a){_0x31b1d0=_0x48889a;return db['WhatsappAccount']['find']({'where':{'id':_0x48889a[_0xf421('0x82')]}});}})['then'](handleEntityNotFound(_0x28aef3,null))['then'](function(_0x22b37a){if(_0x22b37a){logger['debug'](_0xf421('0x83'),'status','received\x20delivery\x20report\x20from',_0x22b37a[_0xf421('0x40')],util[_0xf421('0x84')](_0x580872['body'],{'showHidden':![],'depth':null}));switch(_0x22b37a[_0xf421('0x40')]){case'twilio':if(_0x580872[_0xf421('0x58')][_0xf421('0x85')]&&_0x580872['body']['MessageSid']===_0x31b1d0[_0xf421('0x86')]&&_0x580872[_0xf421('0x58')]['MessageStatus']&&_0x580872['body']['MessageStatus']===_0xf421('0x87')){return _0x31b1d0[_0xf421('0x36')]({'read':!![]});}else{logger['error'](_0xf421('0x88'),'status','twilio',util[_0xf421('0x84')](_0x580872[_0xf421('0x58')],{'showHidden':![],'depth':null}));}break;}return _0x31b1d0;}})['then'](respondWithResult(_0x28aef3,null))[_0xf421('0x2b')](handleError(_0x28aef3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc901=['events','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x36884e,_0x48008f){var _0x1cc367=function(_0x388a78){while(--_0x388a78){_0x36884e['push'](_0x36884e['shift']());}};_0x1cc367(++_0x48008f);}(_0xc901,0x142));var _0x1c90=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xc901[_0x42cae2];return _0x5f256f;};'use strict';var EventEmitter=require(_0x1c90('0x0'));var WhatsappMessage=require('../../mysqldb')['db']['WhatsappMessage'];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x1c90('0x1'),'afterDestroy':_0x1c90('0x2')};function emitEvent(_0x5e6fa5){return function(_0x197c65,_0x317443,_0x3dcf02){WhatsappMessageEvents[_0x1c90('0x3')](_0x5e6fa5+':'+_0x197c65['id'],_0x197c65);WhatsappMessageEvents[_0x1c90('0x3')](_0x5e6fa5,_0x197c65);_0x3dcf02(null);};}for(var e in events){if(events[_0x1c90('0x4')](e)){var event=events[e];WhatsappMessage[_0x1c90('0x5')](e,emitEvent(event));}}module[_0x1c90('0x6')]=WhatsappMessageEvents;
\ No newline at end of file
+var _0x06ef=['emit','WhatsappMessage'];(function(_0x39d544,_0x35c14f){var _0x5a5ff2=function(_0x2271fb){while(--_0x2271fb){_0x39d544['push'](_0x39d544['shift']());}};_0x5a5ff2(++_0x35c14f);}(_0x06ef,0x185));var _0xf06e=function(_0x219781,_0x5971ec){_0x219781=_0x219781-0x0;var _0x243a6a=_0x06ef[_0x219781];return _0x243a6a;};'use strict';var EventEmitter=require('events');var WhatsappMessage=require('../../mysqldb')['db'][_0xf06e('0x0')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x404485){return function(_0x1281ca,_0x16d4da,_0x569390){WhatsappMessageEvents[_0xf06e('0x1')](_0x404485+':'+_0x1281ca['id'],_0x1281ca);WhatsappMessageEvents[_0xf06e('0x1')](_0x404485,_0x1281ca);_0x569390(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappMessage['hook'](e,emitEvent(event));}}module['exports']=WhatsappMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60e1=['inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','utf8mb4','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','secret','isNil','UserId','WhatsappInteraction','WhatsappInteractionId','then','update','error','out','find','WhatsappAccountId','type','twilio','authToken','accountSid','messages','phone','remote','/status?token=','sid','catch','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0x60e1,0x14c));var _0x160e=function(_0x41012c,_0x5051aa){_0x41012c=_0x41012c-0x0;var _0xdd3a63=_0x60e1[_0x41012c];return _0xdd3a63;};'use strict';var _=require(_0x160e('0x0'));var util=require('util');var logger=require(_0x160e('0x1'))(_0x160e('0x2'));var moment=require(_0x160e('0x3'));var BPromise=require(_0x160e('0x4'));var rp=require(_0x160e('0x5'));var fs=require('fs');var path=require(_0x160e('0x6'));var rimraf=require(_0x160e('0x7'));var config=require(_0x160e('0x8'));var attributes=require(_0x160e('0x9'));module[_0x160e('0xa')]=function(_0x58161d,_0x257940){return _0x58161d['define'](_0x160e('0xb'),attributes,{'tableName':_0x160e('0xc'),'paranoid':![],'indexes':[{'name':_0x160e('0xd'),'fields':['messageId']},{'name':_0x160e('0xe'),'fields':[_0x160e('0xf')],'type':_0x160e('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2b44c4,_0x148fd1,_0x84e873){var _0x54deb2=_0x58161d[_0x160e('0x11')];var _0x1cf926=_0x2b44c4[_0x160e('0x12')]({'plain':!![]});if(_0x1cf926[_0x160e('0x13')][_0x160e('0x14')]()==='in'||_0x1cf926[_0x160e('0x13')][_0x160e('0x14')]()==='out'&&!_0x1cf926[_0x160e('0x15')]&&!_[_0x160e('0x16')](_0x1cf926[_0x160e('0x17')])){_0x54deb2[_0x160e('0x18')]['findOne']({'where':{'id':_0x1cf926[_0x160e('0x19')]}})[_0x160e('0x1a')](function(_0x3e0d93){if(_0x3e0d93){_0x3e0d93[_0x160e('0x1b')]({'lastMsgAt':_0x1cf926['createdAt'],'lastMsgDirection':_0x1cf926['direction']['toLowerCase']()});}})['catch'](function(_0x302052){console[_0x160e('0x1c')](_0x302052);});}if(_0x1cf926[_0x160e('0x13')]===_0x160e('0x1d')&&!_0x1cf926[_0x160e('0x15')]){var _0x1ed6aa;_0x54deb2['WhatsappAccount'][_0x160e('0x1e')]({'where':{'id':_0x1cf926[_0x160e('0x1f')]},'raw':!![]})['then'](function(_0x38561b){_0x1ed6aa=_0x38561b;if(_0x1ed6aa&&_0x1ed6aa[_0x160e('0x20')]){switch(_0x1ed6aa[_0x160e('0x20')]){case _0x160e('0x21'):var _0x60ddcb=require(_0x160e('0x21'));if(_0x1ed6aa['accountSid']&&_0x1ed6aa[_0x160e('0x22')]&&_0x1ed6aa['phone']){var _0x25ab88=new _0x60ddcb(_0x1ed6aa[_0x160e('0x23')],_0x1ed6aa['authToken']);_0x25ab88[_0x160e('0x24')]['create']({'body':_0x1cf926[_0x160e('0xf')],'to':'whatsapp:'+_0x1cf926[_0x160e('0x25')],'from':'whatsapp:'+_0x1ed6aa[_0x160e('0x25')],'statusCallback':_0x1ed6aa[_0x160e('0x26')]+'/api/whatsapp/messages/'+_0x1cf926['id']+_0x160e('0x27')+_0x1ed6aa['token']})[_0x160e('0x1a')](function(_0x5180bc){if(_0x5180bc[_0x160e('0x28')]){return _0x2b44c4['update']({'messageId':_0x5180bc['sid']});}})[_0x160e('0x29')](function(_0x38fcce){logger[_0x160e('0x1c')](_0x160e('0x2a'),_0x160e('0x2b'),_0x160e('0x21'),util[_0x160e('0x2c')](_0x38fcce,{'showHidden':![],'depth':null}));});}else{logger[_0x160e('0x1c')](_0x160e('0x2a'),_0x160e('0x2b'),_0x160e('0x21'),_0x160e('0x2d'));}break;}}})['finally'](function(){_0x84e873();});}else{_0x84e873();}}},'charset':_0x160e('0x2e'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x92aa=['Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','../../config/environment','exports','define','WhatsappMessage','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','toLowerCase','direction','out','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','catch','error','WhatsappAccount','find','twilio','accountSid','phone','authToken','messages','create','whatsapp:','remote','/status?token=','token','update','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect'];(function(_0x5492f7,_0x571985){var _0x30ae51=function(_0x3f73c7){while(--_0x3f73c7){_0x5492f7['push'](_0x5492f7['shift']());}};_0x30ae51(++_0x571985);}(_0x92aa,0xf3));var _0xa92a=function(_0x31b925,_0x2fa91e){_0x31b925=_0x31b925-0x0;var _0x43e001=_0x92aa[_0x31b925];return _0x43e001;};'use strict';var _=require(_0xa92a('0x0'));var util=require(_0xa92a('0x1'));var logger=require(_0xa92a('0x2'))(_0xa92a('0x3'));var moment=require(_0xa92a('0x4'));var BPromise=require('bluebird');var rp=require(_0xa92a('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xa92a('0x6'));var attributes=require('./whatsappMessage.attributes');module[_0xa92a('0x7')]=function(_0x50a3e1,_0x53e138){return _0x50a3e1[_0xa92a('0x8')](_0xa92a('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0xa92a('0xa'),'fields':[_0xa92a('0xa')]},{'name':_0xa92a('0xb'),'fields':[_0xa92a('0xc')],'type':_0xa92a('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x493e2f,_0x686f93,_0x391553){var _0x4dbf5a=_0x50a3e1[_0xa92a('0xe')];var _0x57cebb=_0x493e2f[_0xa92a('0xf')]({'plain':!![]});if(_0x57cebb['direction'][_0xa92a('0x10')]()==='in'||_0x57cebb[_0xa92a('0x11')][_0xa92a('0x10')]()===_0xa92a('0x12')&&!_0x57cebb[_0xa92a('0x13')]&&!_[_0xa92a('0x14')](_0x57cebb[_0xa92a('0x15')])){_0x4dbf5a[_0xa92a('0x16')][_0xa92a('0x17')]({'where':{'id':_0x57cebb[_0xa92a('0x18')]}})[_0xa92a('0x19')](function(_0x3ae339){if(_0x3ae339){_0x3ae339['update']({'lastMsgAt':_0x57cebb['createdAt'],'lastMsgDirection':_0x57cebb['direction'][_0xa92a('0x10')]()});}})[_0xa92a('0x1a')](function(_0x2508eb){console[_0xa92a('0x1b')](_0x2508eb);});}if(_0x57cebb[_0xa92a('0x11')]===_0xa92a('0x12')&&!_0x57cebb[_0xa92a('0x13')]){var _0x296713;_0x4dbf5a[_0xa92a('0x1c')][_0xa92a('0x1d')]({'where':{'id':_0x57cebb['WhatsappAccountId']},'raw':!![]})[_0xa92a('0x19')](function(_0x3f2154){_0x296713=_0x3f2154;if(_0x296713&&_0x296713['type']){switch(_0x296713['type']){case _0xa92a('0x1e'):var _0x3a6c4c=require('twilio');if(_0x296713[_0xa92a('0x1f')]&&_0x296713['authToken']&&_0x296713[_0xa92a('0x20')]){var _0x4fcdbf=new _0x3a6c4c(_0x296713[_0xa92a('0x1f')],_0x296713[_0xa92a('0x21')]);_0x4fcdbf[_0xa92a('0x22')][_0xa92a('0x23')]({'body':_0x57cebb[_0xa92a('0xc')],'to':_0xa92a('0x24')+_0x57cebb[_0xa92a('0x20')],'from':'whatsapp:'+_0x296713[_0xa92a('0x20')],'statusCallback':_0x296713[_0xa92a('0x25')]+'/api/whatsapp/messages/'+_0x57cebb['id']+_0xa92a('0x26')+_0x296713[_0xa92a('0x27')]})['then'](function(_0x3fe260){if(_0x3fe260['sid']){return _0x493e2f[_0xa92a('0x28')]({'messageId':_0x3fe260[_0xa92a('0x29')]});}})[_0xa92a('0x1a')](function(_0x3c4ab6){logger[_0xa92a('0x1b')](_0xa92a('0x2a'),_0xa92a('0x2b'),_0xa92a('0x1e'),util[_0xa92a('0x2c')](_0x3c4ab6,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xa92a('0x2a'),_0xa92a('0x2b'),_0xa92a('0x1e'),_0xa92a('0x2d'));}break;}}})['finally'](function(){_0x391553();});}else{_0x391553();}}},'charset':_0xa92a('0x2e'),'collate':_0xa92a('0x2f')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb45=['defaults','socket.io-emitter','./whatsappMessage.socket','register','request','info','WhatsappMessage,\x20%s,\x20%s','WhatsappMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','CreateWhatsappMessage','WhatsappMessage','body','options','raw','debug','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis'];(function(_0x521dff,_0x4dbb86){var _0x567e21=function(_0x28133c){while(--_0x28133c){_0x521dff['push'](_0x521dff['shift']());}};_0x567e21(++_0x4dbb86);}(_0xeb45,0x1a1));var _0x5eb4=function(_0x5ea6c3,_0x4cbc0b){_0x5ea6c3=_0x5ea6c3-0x0;var _0x2e643f=_0xeb45[_0x5ea6c3];return _0x2e643f;};'use strict';var _=require(_0x5eb4('0x0'));var util=require(_0x5eb4('0x1'));var moment=require(_0x5eb4('0x2'));var BPromise=require(_0x5eb4('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5eb4('0x4'))['db'];var utils=require(_0x5eb4('0x5'));var logger=require(_0x5eb4('0x6'))('rpc');var config=require(_0x5eb4('0x7'));var jayson=require(_0x5eb4('0x8'));var client=jayson[_0x5eb4('0x9')][_0x5eb4('0xa')]({'port':0x232a});config[_0x5eb4('0xb')]=_[_0x5eb4('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x5eb4('0xd'))(new Redis(config['redis']));require(_0x5eb4('0xe'))[_0x5eb4('0xf')](socket);function respondWithRpcPromise(_0x2eda74,_0x37d3bf,_0x3b8835){return new BPromise(function(_0x1e6904,_0x3f1b61){return client[_0x5eb4('0x10')](_0x2eda74,_0x3b8835)['then'](function(_0x45a374){logger[_0x5eb4('0x11')](_0x5eb4('0x12'),_0x37d3bf,'request\x20sent');logger['debug'](_0x5eb4('0x13'),_0x37d3bf,_0x5eb4('0x14'),JSON[_0x5eb4('0x15')](_0x45a374));if(_0x45a374['error']){if(_0x45a374[_0x5eb4('0x16')][_0x5eb4('0x17')]===0x1f4){logger[_0x5eb4('0x16')](_0x5eb4('0x12'),_0x37d3bf,_0x45a374[_0x5eb4('0x16')][_0x5eb4('0x18')]);return _0x3f1b61(_0x45a374['error'][_0x5eb4('0x18')]);}logger[_0x5eb4('0x16')](_0x5eb4('0x12'),_0x37d3bf,_0x45a374[_0x5eb4('0x16')][_0x5eb4('0x18')]);return _0x1e6904(_0x45a374['error'][_0x5eb4('0x18')]);}else{logger[_0x5eb4('0x11')](_0x5eb4('0x12'),_0x37d3bf,_0x5eb4('0x14'));_0x1e6904(_0x45a374[_0x5eb4('0x19')]['message']);}})['catch'](function(_0xb47447){logger[_0x5eb4('0x16')](_0x5eb4('0x12'),_0x37d3bf,_0xb47447);_0x3f1b61(_0xb47447);});});}exports[_0x5eb4('0x1a')]=function(_0x1af83d){var _0x1dd885=this;return new Promise(function(_0x3037bf,_0x100156){return db[_0x5eb4('0x1b')]['create'](_0x1af83d[_0x5eb4('0x1c')],{'raw':_0x1af83d[_0x5eb4('0x1d')]?_0x1af83d[_0x5eb4('0x1d')][_0x5eb4('0x1e')]===undefined?!![]:![]:!![]})['then'](function(_0x328aa4){logger[_0x5eb4('0x11')](_0x5eb4('0x1a'),_0x1af83d);logger[_0x5eb4('0x1f')](_0x5eb4('0x1a'),_0x1af83d,JSON[_0x5eb4('0x15')](_0x328aa4));_0x3037bf(_0x328aa4);})[_0x5eb4('0x20')](function(_0x12ddda){logger[_0x5eb4('0x16')]('CreateWhatsappMessage',_0x12ddda[_0x5eb4('0x18')],_0x1af83d);_0x100156(_0x1dd885[_0x5eb4('0x16')](0x1f4,_0x12ddda[_0x5eb4('0x18')]));});});};
\ No newline at end of file
+var _0x81ef=['info','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappMessage,\x20%s,\x20%s','message','result','catch','WhatsappMessage','create','body','options','CreateWhatsappMessage','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','localhost','socket.io-emitter','./whatsappMessage.socket','register','request','then'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x81ef,0x120));var _0xf81e=function(_0x4d1068,_0x2b7d73){_0x4d1068=_0x4d1068-0x0;var _0x35086e=_0x81ef[_0x4d1068];return _0x35086e;};'use strict';var _=require('lodash');var util=require(_0xf81e('0x0'));var moment=require(_0xf81e('0x1'));var BPromise=require(_0xf81e('0x2'));var rs=require(_0xf81e('0x3'));var fs=require('fs');var Redis=require(_0xf81e('0x4'));var db=require(_0xf81e('0x5'))['db'];var utils=require(_0xf81e('0x6'));var logger=require(_0xf81e('0x7'))(_0xf81e('0x8'));var config=require(_0xf81e('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xf81e('0xa')]['http']({'port':0x232a});config[_0xf81e('0xb')]=_['defaults'](config['redis'],{'host':_0xf81e('0xc'),'port':0x18eb});var socket=require(_0xf81e('0xd'))(new Redis(config[_0xf81e('0xb')]));require(_0xf81e('0xe'))[_0xf81e('0xf')](socket);function respondWithRpcPromise(_0x692db5,_0x1448cf,_0x2ffc01){return new BPromise(function(_0x568b16,_0x31b096){return client[_0xf81e('0x10')](_0x692db5,_0x2ffc01)[_0xf81e('0x11')](function(_0x4458ca){logger[_0xf81e('0x12')]('WhatsappMessage,\x20%s,\x20%s',_0x1448cf,_0xf81e('0x13'));logger[_0xf81e('0x14')](_0xf81e('0x15'),_0x1448cf,'request\x20sent',JSON[_0xf81e('0x16')](_0x4458ca));if(_0x4458ca['error']){if(_0x4458ca[_0xf81e('0x17')][_0xf81e('0x18')]===0x1f4){logger[_0xf81e('0x17')](_0xf81e('0x19'),_0x1448cf,_0x4458ca[_0xf81e('0x17')][_0xf81e('0x1a')]);return _0x31b096(_0x4458ca[_0xf81e('0x17')]['message']);}logger[_0xf81e('0x17')](_0xf81e('0x19'),_0x1448cf,_0x4458ca[_0xf81e('0x17')][_0xf81e('0x1a')]);return _0x568b16(_0x4458ca[_0xf81e('0x17')][_0xf81e('0x1a')]);}else{logger['info']('WhatsappMessage,\x20%s,\x20%s',_0x1448cf,'request\x20sent');_0x568b16(_0x4458ca[_0xf81e('0x1b')][_0xf81e('0x1a')]);}})[_0xf81e('0x1c')](function(_0x20703d){logger[_0xf81e('0x17')]('WhatsappMessage,\x20%s,\x20%s',_0x1448cf,_0x20703d);_0x31b096(_0x20703d);});});}exports['CreateWhatsappMessage']=function(_0x2bc1a6){var _0x107f46=this;return new Promise(function(_0x2dd772,_0x4feace){return db[_0xf81e('0x1d')][_0xf81e('0x1e')](_0x2bc1a6[_0xf81e('0x1f')],{'raw':_0x2bc1a6[_0xf81e('0x20')]?_0x2bc1a6[_0xf81e('0x20')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x33eac0){logger[_0xf81e('0x12')]('CreateWhatsappMessage',_0x2bc1a6);logger[_0xf81e('0x14')](_0xf81e('0x21'),_0x2bc1a6,JSON[_0xf81e('0x16')](_0x33eac0));_0x2dd772(_0x33eac0);})[_0xf81e('0x1c')](function(_0x3eac4d){logger['error']('CreateWhatsappMessage',_0x3eac4d['message'],_0x2bc1a6);_0x4feace(_0x107f46['error'](0x1f4,_0x3eac4d[_0xf81e('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5105=['save','remove','update','emit','removeListener','register','length','whatsappMessage:'];(function(_0x540314,_0x30e8a5){var _0xff9b2a=function(_0x292a71){while(--_0x292a71){_0x540314['push'](_0x540314['shift']());}};_0xff9b2a(++_0x30e8a5);}(_0x5105,0x160));var _0x5510=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x5105[_0x57b54c];return _0x59cc19;};'use strict';var WhatsappMessageEvents=require('./whatsappMessage.events');var events=[_0x5510('0x0'),_0x5510('0x1'),_0x5510('0x2')];function createListener(_0x4249ce,_0x2d5aef){return function(_0xfa4c59){_0x2d5aef[_0x5510('0x3')](_0x4249ce,_0xfa4c59);};}function removeListener(_0x25cdf0,_0x1ea471){return function(){WhatsappMessageEvents[_0x5510('0x4')](_0x25cdf0,_0x1ea471);};}exports[_0x5510('0x5')]=function(_0x5ac40e){for(var _0x393a02=0x0,_0x5e1cb4=events[_0x5510('0x6')];_0x393a02<_0x5e1cb4;_0x393a02++){var _0x4024d9=events[_0x393a02];var _0x3700cc=createListener(_0x5510('0x7')+_0x4024d9,_0x5ac40e);WhatsappMessageEvents['on'](_0x4024d9,_0x3700cc);}};
\ No newline at end of file
+var _0x8e0a=['removeListener','length','whatsappMessage:','./whatsappMessage.events','save','remove','emit'];(function(_0x1d8bb0,_0x43e0f3){var _0x4d032d=function(_0xeac56){while(--_0xeac56){_0x1d8bb0['push'](_0x1d8bb0['shift']());}};_0x4d032d(++_0x43e0f3);}(_0x8e0a,0x1d8));var _0xa8e0=function(_0x5b183d,_0x1c26c8){_0x5b183d=_0x5b183d-0x0;var _0x5f2f0a=_0x8e0a[_0x5b183d];return _0x5f2f0a;};'use strict';var WhatsappMessageEvents=require(_0xa8e0('0x0'));var events=[_0xa8e0('0x1'),_0xa8e0('0x2'),'update'];function createListener(_0x27662a,_0x430d5b){return function(_0x3ec4d9){_0x430d5b[_0xa8e0('0x3')](_0x27662a,_0x3ec4d9);};}function removeListener(_0x3df25e,_0xef5eb){return function(){WhatsappMessageEvents[_0xa8e0('0x4')](_0x3df25e,_0xef5eb);};}exports['register']=function(_0x311346){for(var _0x11d2b4=0x0,_0x103676=events[_0xa8e0('0x5')];_0x11d2b4<_0x103676;_0x11d2b4++){var _0x5a5dfc=events[_0x11d2b4];var _0x926e44=createListener(_0xa8e0('0x6')+_0x5a5dfc,_0x311346);WhatsappMessageEvents['on'](_0x5a5dfc,_0x926e44);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b06=['isAuthenticated','describe','/:id','show','/:id/members','/:id/teams','/:id/users','getAgents','create','post','addTeams','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueue.controller','get','index'];(function(_0x498c42,_0x592189){var _0x2577ec=function(_0xfafec8){while(--_0xfafec8){_0x498c42['push'](_0x498c42['shift']());}};_0x2577ec(++_0x592189);}(_0x6b06,0x1e4));var _0x66b0=function(_0x5c051c,_0x16ca8e){_0x5c051c=_0x5c051c-0x0;var _0x5a2603=_0x6b06[_0x5c051c];return _0x5a2603;};'use strict';var multer=require(_0x66b0('0x0'));var util=require(_0x66b0('0x1'));var path=require(_0x66b0('0x2'));var timeout=require('connect-timeout');var express=require(_0x66b0('0x3'));var router=express[_0x66b0('0x4')]();var fs_extra=require(_0x66b0('0x5'));var auth=require(_0x66b0('0x6'));var interaction=require(_0x66b0('0x7'));var config=require(_0x66b0('0x8'));var controller=require(_0x66b0('0x9'));router[_0x66b0('0xa')]('/',auth['isAuthenticated'](),controller[_0x66b0('0xb')]);router[_0x66b0('0xa')]('/describe',auth[_0x66b0('0xc')](),controller[_0x66b0('0xd')]);router['get'](_0x66b0('0xe'),auth[_0x66b0('0xc')](),controller[_0x66b0('0xf')]);router[_0x66b0('0xa')](_0x66b0('0x10'),auth[_0x66b0('0xc')](),controller['getMembers']);router['get'](_0x66b0('0x11'),auth[_0x66b0('0xc')](),controller['getTeams']);router['get'](_0x66b0('0x12'),auth[_0x66b0('0xc')](),controller[_0x66b0('0x13')]);router['post']('/',auth[_0x66b0('0xc')](),controller[_0x66b0('0x14')]);router[_0x66b0('0x15')]('/:id/teams',auth[_0x66b0('0xc')](),controller[_0x66b0('0x16')]);router[_0x66b0('0x15')]('/:id/users',auth['isAuthenticated'](),controller[_0x66b0('0x17')]);router[_0x66b0('0x18')](_0x66b0('0xe'),auth['isAuthenticated'](),controller[_0x66b0('0x19')]);router[_0x66b0('0x1a')]('/:id',auth[_0x66b0('0xc')](),controller[_0x66b0('0x1b')]);router[_0x66b0('0x1a')](_0x66b0('0x11'),auth[_0x66b0('0xc')](),controller[_0x66b0('0x1c')]);router[_0x66b0('0x1a')](_0x66b0('0x12'),auth[_0x66b0('0xc')](),controller[_0x66b0('0x1d')]);module[_0x66b0('0x1e')]=router;
\ No newline at end of file
+var _0x2c24=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappQueue.controller','get','index','/describe','isAuthenticated','describe','/:id','/:id/members','/:id/teams','/:id/users','post','addTeams','addAgents','put','update','delete','removeTeams','removeAgents'];(function(_0x10061a,_0x4f33bd){var _0x390954=function(_0x596d3c){while(--_0x596d3c){_0x10061a['push'](_0x10061a['shift']());}};_0x390954(++_0x4f33bd);}(_0x2c24,0x1e6));var _0x42c2=function(_0x17a0b9,_0x206a9c){_0x17a0b9=_0x17a0b9-0x0;var _0xb0b361=_0x2c24[_0x17a0b9];return _0xb0b361;};'use strict';var multer=require(_0x42c2('0x0'));var util=require(_0x42c2('0x1'));var path=require(_0x42c2('0x2'));var timeout=require(_0x42c2('0x3'));var express=require(_0x42c2('0x4'));var router=express[_0x42c2('0x5')]();var fs_extra=require(_0x42c2('0x6'));var auth=require(_0x42c2('0x7'));var interaction=require(_0x42c2('0x8'));var config=require('../../config/environment');var controller=require(_0x42c2('0x9'));router[_0x42c2('0xa')]('/',auth['isAuthenticated'](),controller[_0x42c2('0xb')]);router[_0x42c2('0xa')](_0x42c2('0xc'),auth[_0x42c2('0xd')](),controller[_0x42c2('0xe')]);router[_0x42c2('0xa')](_0x42c2('0xf'),auth['isAuthenticated'](),controller['show']);router[_0x42c2('0xa')](_0x42c2('0x10'),auth[_0x42c2('0xd')](),controller['getMembers']);router[_0x42c2('0xa')](_0x42c2('0x11'),auth['isAuthenticated'](),controller['getTeams']);router[_0x42c2('0xa')](_0x42c2('0x12'),auth['isAuthenticated'](),controller['getAgents']);router[_0x42c2('0x13')]('/',auth[_0x42c2('0xd')](),controller['create']);router[_0x42c2('0x13')](_0x42c2('0x11'),auth[_0x42c2('0xd')](),controller[_0x42c2('0x14')]);router[_0x42c2('0x13')](_0x42c2('0x12'),auth[_0x42c2('0xd')](),controller[_0x42c2('0x15')]);router[_0x42c2('0x16')](_0x42c2('0xf'),auth[_0x42c2('0xd')](),controller[_0x42c2('0x17')]);router['delete'](_0x42c2('0xf'),auth[_0x42c2('0xd')](),controller['destroy']);router[_0x42c2('0x18')]('/:id/teams',auth[_0x42c2('0xd')](),controller[_0x42c2('0x19')]);router['delete'](_0x42c2('0x12'),auth[_0x42c2('0xd')](),controller[_0x42c2('0x1a')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c54=['STRING','INTEGER','ENUM','rrmemory','beepall','roundrobin','sequelize','exports'];(function(_0xa228a4,_0x3d5f8d){var _0x2fddf8=function(_0x41929f){while(--_0x41929f){_0xa228a4['push'](_0xa228a4['shift']());}};_0x2fddf8(++_0x3d5f8d);}(_0x2c54,0x136));var _0x42c5=function(_0x5c1158,_0x19cf8c){_0x5c1158=_0x5c1158-0x0;var _0x4fd024=_0x2c54[_0x5c1158];return _0x4fd024;};'use strict';var Sequelize=require(_0x42c5('0x0'));module[_0x42c5('0x1')]={'name':{'type':Sequelize[_0x42c5('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x42c5('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x42c5('0x4')](_0x42c5('0x5'),_0x42c5('0x6'),_0x42c5('0x7'))},'description':{'type':Sequelize[_0x42c5('0x2')]}};
\ No newline at end of file
+var _0xfa68=['roundrobin','sequelize','exports','STRING','INTEGER','ENUM','rrmemory'];(function(_0x4310c9,_0x3424ff){var _0x3455c8=function(_0x4329a7){while(--_0x4329a7){_0x4310c9['push'](_0x4310c9['shift']());}};_0x3455c8(++_0x3424ff);}(_0xfa68,0x86));var _0x8fa6=function(_0x16df4c,_0x5d9616){_0x16df4c=_0x16df4c-0x0;var _0x57546a=_0xfa68[_0x16df4c];return _0x57546a;};'use strict';var Sequelize=require(_0x8fa6('0x0'));module[_0x8fa6('0x1')]={'name':{'type':Sequelize[_0x8fa6('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x8fa6('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x8fa6('0x4')](_0x8fa6('0x5'),'beepall',_0x8fa6('0x6'))},'description':{'type':Sequelize[_0x8fa6('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaadc=['userWhatsappQueue:save','ids','User','select','field','tq.TeamId','from','team_has_whatsapp_queues','join','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','SELECT','every','TeamId','all','union','compact','value','transaction','removeTeams','isEmpty','removeAgents','userWhatsappQueue:remove','addAgents','omit','spread','getAgents','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./whatsappQueue.socket','register','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','reject','update','then','destroy','get','WhatsappQueues','UserProfileResource','end','error','stack','name','send','map','WhatsappQueue','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','type','include','findAll','rows','show','params','length','includeAll','options','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','describe','getMembers','UserWhatsappQueue','hasOwnProperty','WhatsappQueueId','findAndCountAll','agent','whatsappPause','updatedAt','createdAt','format','SIP','getTeams','Team','Agents','voicePause','interface','flatMap','sequelize','addTeams','each','findOrCreate','forEach','emit'];(function(_0x2ba70e,_0x359463){var _0x29dd9b=function(_0x29a828){while(--_0x29a828){_0x2ba70e['push'](_0x2ba70e['shift']());}};_0x29dd9b(++_0x359463);}(_0xaadc,0x1c2));var _0xcaad=function(_0x3a8f75,_0x34eb99){_0x3a8f75=_0x3a8f75-0x0;var _0x4e386d=_0xaadc[_0x3a8f75];return _0x4e386d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcaad('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcaad('0x1'));var rp=require(_0xcaad('0x2'));var moment=require(_0xcaad('0x3'));var BPromise=require(_0xcaad('0x4'));var Mustache=require('mustache');var util=require(_0xcaad('0x5'));var path=require('path');var sox=require(_0xcaad('0x6'));var csv=require(_0xcaad('0x7'));var ejs=require(_0xcaad('0x8'));var fs=require('fs');var fs_extra=require(_0xcaad('0x9'));var _=require(_0xcaad('0xa'));var squel=require(_0xcaad('0xb'));var crypto=require(_0xcaad('0xc'));var jsforce=require(_0xcaad('0xd'));var deskjs=require(_0xcaad('0xe'));var toCsv=require(_0xcaad('0x7'));var querystring=require(_0xcaad('0xf'));var Papa=require('papaparse');var Redis=require(_0xcaad('0x10'));var authService=require(_0xcaad('0x11'));var qs=require(_0xcaad('0x12'));var as=require(_0xcaad('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcaad('0x14'))(_0xcaad('0x15'));var utils=require('../../config/utils');var config=require(_0xcaad('0x16'));var licenseUtil=require(_0xcaad('0x17'));var db=require(_0xcaad('0x18'))['db'];config['redis']=_[_0xcaad('0x19')](config[_0xcaad('0x1a')],{'host':_0xcaad('0x1b'),'port':0x18eb});var socket=require(_0xcaad('0x1c'))(new Redis(config[_0xcaad('0x1a')]));require(_0xcaad('0x1d'))[_0xcaad('0x1e')](socket);function respondWithStatusCode(_0x329998,_0x927621){_0x927621=_0x927621||0xcc;return function(_0x2c5f70){if(_0x2c5f70){return _0x329998[_0xcaad('0x1f')](_0x927621);}return _0x329998[_0xcaad('0x20')](_0x927621)['end']();};}function respondWithResult(_0x3f4483,_0x4eadf0){_0x4eadf0=_0x4eadf0||0xc8;return function(_0x139967){if(_0x139967){return _0x3f4483[_0xcaad('0x20')](_0x4eadf0)[_0xcaad('0x21')](_0x139967);}};}function respondWithFilteredResult(_0x1beacf,_0x10ee0c){return function(_0x20cc95){if(_0x20cc95){var _0x5211c4=typeof _0x10ee0c[_0xcaad('0x22')]===_0xcaad('0x23')&&typeof _0x10ee0c['limit']==='undefined';var _0x1eabd8=_0x20cc95[_0xcaad('0x24')];var _0x111684=_0x5211c4?0x0:_0x10ee0c[_0xcaad('0x22')];var _0x3da3be=_0x5211c4?_0x20cc95[_0xcaad('0x24')]:_0x10ee0c[_0xcaad('0x22')]+_0x10ee0c[_0xcaad('0x25')];var _0xbff018;if(_0x3da3be>=_0x1eabd8){_0x3da3be=_0x1eabd8;_0xbff018=0xc8;}else{_0xbff018=0xce;}_0x1beacf[_0xcaad('0x20')](_0xbff018);return _0x1beacf[_0xcaad('0x26')](_0xcaad('0x27'),_0x111684+'-'+_0x3da3be+'/'+_0x1eabd8)[_0xcaad('0x21')](_0x20cc95);}return null;};}function patchUpdates(_0x3e4a2b){return function(_0x5c186d){try{jsonpatch['apply'](_0x5c186d,_0x3e4a2b,!![]);}catch(_0x2bb758){return BPromise[_0xcaad('0x28')](_0x2bb758);}return _0x5c186d['save']();};}function saveUpdates(_0x58057a,_0x472845){return function(_0x341043){if(_0x341043){return _0x341043[_0xcaad('0x29')](_0x58057a)[_0xcaad('0x2a')](function(_0x1ddd01){return _0x1ddd01;});}return null;};}function removeEntity(_0x4d2a15,_0x31172c){return function(_0x169f18){if(_0x169f18){return _0x169f18[_0xcaad('0x2b')]()[_0xcaad('0x2a')](function(){var _0x3c8780=_0x169f18[_0xcaad('0x2c')]({'plain':!![]});var _0x271361=_0xcaad('0x2d');return db[_0xcaad('0x2e')][_0xcaad('0x2b')]({'where':{'type':_0x271361,'resourceId':_0x3c8780['id']}})['then'](function(){return _0x169f18;});})[_0xcaad('0x2a')](function(){_0x4d2a15[_0xcaad('0x20')](0xcc)[_0xcaad('0x2f')]();});}};}function handleEntityNotFound(_0x447613,_0xfd5612){return function(_0x126697){if(!_0x126697){_0x447613[_0xcaad('0x1f')](0x194);}return _0x126697;};}function handleError(_0x3d609d,_0x2f9252){_0x2f9252=_0x2f9252||0x1f4;return function(_0x15d392){logger[_0xcaad('0x30')](_0x15d392[_0xcaad('0x31')]);if(_0x15d392[_0xcaad('0x32')]){delete _0x15d392['name'];}_0x3d609d['status'](_0x2f9252)[_0xcaad('0x33')](_0x15d392);};}exports['index']=function(_0x42b29a,_0x2bdd6c){var _0x2242cb={},_0x3da5fe={},_0x42db22={'count':0x0,'rows':[]};var _0x40a3bd=_[_0xcaad('0x34')](db[_0xcaad('0x35')][_0xcaad('0x36')],function(_0xee8e32){return{'name':_0xee8e32[_0xcaad('0x37')],'type':_0xee8e32['type'][_0xcaad('0x38')]};});_0x3da5fe[_0xcaad('0x39')]=_[_0xcaad('0x34')](_0x40a3bd,_0xcaad('0x32'));_0x3da5fe[_0xcaad('0x3a')]=_[_0xcaad('0x3b')](_0x42b29a[_0xcaad('0x3a')]);_0x3da5fe[_0xcaad('0x3c')]=_[_0xcaad('0x3d')](_0x3da5fe[_0xcaad('0x39')],_0x3da5fe[_0xcaad('0x3a')]);_0x2242cb[_0xcaad('0x3e')]=_[_0xcaad('0x3d')](_0x3da5fe[_0xcaad('0x39')],qs[_0xcaad('0x3f')](_0x42b29a[_0xcaad('0x3a')][_0xcaad('0x3f')]));_0x2242cb[_0xcaad('0x3e')]=_0x2242cb['attributes']['length']?_0x2242cb[_0xcaad('0x3e')]:_0x3da5fe[_0xcaad('0x39')];if(!_0x42b29a['query']['hasOwnProperty'](_0xcaad('0x40'))){_0x2242cb[_0xcaad('0x25')]=qs['limit'](_0x42b29a['query'][_0xcaad('0x25')]);_0x2242cb['offset']=qs[_0xcaad('0x22')](_0x42b29a[_0xcaad('0x3a')][_0xcaad('0x22')]);}_0x2242cb[_0xcaad('0x41')]=qs[_0xcaad('0x42')](_0x42b29a['query']['sort']);_0x2242cb[_0xcaad('0x43')]=qs[_0xcaad('0x3c')](_[_0xcaad('0x44')](_0x42b29a['query'],_0x3da5fe[_0xcaad('0x3c')]),_0x40a3bd);if(_0x42b29a[_0xcaad('0x3a')][_0xcaad('0x45')]){_0x2242cb['where']=_[_0xcaad('0x46')](_0x2242cb[_0xcaad('0x43')],{'$or':_['map'](_0x40a3bd,function(_0x17001e){if(_0x17001e[_0xcaad('0x47')]!=='VIRTUAL'){var _0x4ee647={};_0x4ee647[_0x17001e[_0xcaad('0x32')]]={'$like':'%'+_0x42b29a[_0xcaad('0x3a')][_0xcaad('0x45')]+'%'};return _0x4ee647;}})});}_0x2242cb=_[_0xcaad('0x46')]({},_0x2242cb,_0x42b29a['options']);var _0xe13615={'where':_0x2242cb['where']};return db[_0xcaad('0x35')][_0xcaad('0x24')](_0xe13615)[_0xcaad('0x2a')](function(_0x108a89){_0x42db22[_0xcaad('0x24')]=_0x108a89;if(_0x42b29a['query']['includeAll']){_0x2242cb[_0xcaad('0x48')]=[{'all':!![]}];}return db[_0xcaad('0x35')][_0xcaad('0x49')](_0x2242cb);})[_0xcaad('0x2a')](function(_0x38dd03){_0x42db22[_0xcaad('0x4a')]=_0x38dd03;return _0x42db22;})['then'](respondWithFilteredResult(_0x2bdd6c,_0x2242cb))['catch'](handleError(_0x2bdd6c,null));};exports[_0xcaad('0x4b')]=function(_0x55f900,_0x3113b9){var _0x3b51b8={'raw':!![],'where':{'id':_0x55f900[_0xcaad('0x4c')]['id']}},_0x1558e1={};_0x1558e1[_0xcaad('0x39')]=_[_0xcaad('0x3b')](db[_0xcaad('0x35')][_0xcaad('0x36')]);_0x1558e1['query']=_['keys'](_0x55f900[_0xcaad('0x3a')]);_0x1558e1[_0xcaad('0x3c')]=_[_0xcaad('0x3d')](_0x1558e1['model'],_0x1558e1[_0xcaad('0x3a')]);_0x3b51b8['attributes']=_[_0xcaad('0x3d')](_0x1558e1[_0xcaad('0x39')],qs[_0xcaad('0x3f')](_0x55f900[_0xcaad('0x3a')][_0xcaad('0x3f')]));_0x3b51b8['attributes']=_0x3b51b8['attributes'][_0xcaad('0x4d')]?_0x3b51b8['attributes']:_0x1558e1[_0xcaad('0x39')];if(_0x55f900[_0xcaad('0x3a')][_0xcaad('0x4e')]){_0x3b51b8[_0xcaad('0x48')]=[{'all':!![]}];}_0x3b51b8=_['merge']({},_0x3b51b8,_0x55f900[_0xcaad('0x4f')]);return db['WhatsappQueue'][_0xcaad('0x50')](_0x3b51b8)[_0xcaad('0x2a')](handleEntityNotFound(_0x3113b9,null))[_0xcaad('0x2a')](respondWithResult(_0x3113b9,null))[_0xcaad('0x51')](handleError(_0x3113b9,null));};exports['create']=function(_0x8f5056,_0x5e9635){return db[_0xcaad('0x35')][_0xcaad('0x52')](_0x8f5056[_0xcaad('0x53')],{})['then'](function(_0x5b524b){var _0x1c3568=_0x8f5056[_0xcaad('0x54')][_0xcaad('0x2c')]({'plain':!![]});if(!_0x1c3568)throw new Error(_0xcaad('0x55'));if(_0x1c3568['role']===_0xcaad('0x54')){var _0x5ba95b=_0x5b524b[_0xcaad('0x2c')]({'plain':!![]});var _0x25a360='WhatsappQueues';return db['UserProfileSection'][_0xcaad('0x50')]({'where':{'name':_0x25a360,'userProfileId':_0x1c3568['userProfileId']},'raw':!![]})[_0xcaad('0x2a')](function(_0x32af51){if(_0x32af51&&_0x32af51['autoAssociation']===0x0){return db[_0xcaad('0x2e')][_0xcaad('0x52')]({'name':_0x5ba95b[_0xcaad('0x32')],'resourceId':_0x5ba95b['id'],'type':_0x32af51[_0xcaad('0x32')],'sectionId':_0x32af51['id']},{})[_0xcaad('0x2a')](function(){return _0x5b524b;});}else{return _0x5b524b;}})[_0xcaad('0x51')](function(_0xc7c5ca){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xc7c5ca);throw _0xc7c5ca;});}return _0x5b524b;})[_0xcaad('0x2a')](respondWithResult(_0x5e9635,0xc9))[_0xcaad('0x51')](handleError(_0x5e9635,null));};exports[_0xcaad('0x29')]=function(_0x4f49dd,_0x11ca88){if(_0x4f49dd['body']['id']){delete _0x4f49dd[_0xcaad('0x53')]['id'];}return db['WhatsappQueue']['find']({'where':{'id':_0x4f49dd[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](handleEntityNotFound(_0x11ca88,null))['then'](saveUpdates(_0x4f49dd[_0xcaad('0x53')],null))[_0xcaad('0x2a')](respondWithResult(_0x11ca88,null))[_0xcaad('0x51')](handleError(_0x11ca88,null));};exports[_0xcaad('0x2b')]=function(_0x441ae1,_0x559d9f){return db['WhatsappQueue'][_0xcaad('0x50')]({'where':{'id':_0x441ae1[_0xcaad('0x4c')]['id']}})['then'](handleEntityNotFound(_0x559d9f,null))['then'](removeEntity(_0x559d9f,null))['catch'](handleError(_0x559d9f,null));};exports[_0xcaad('0x56')]=function(_0x30a30a,_0x76f18d){return db[_0xcaad('0x35')][_0xcaad('0x56')]()[_0xcaad('0x2a')](respondWithResult(_0x76f18d,null))[_0xcaad('0x51')](handleError(_0x76f18d,null));};exports[_0xcaad('0x57')]=function(_0xc18e31,_0x407b95,_0x106393){var _0x267f82={'raw':!![],'where':{}},_0x36d2b9={},_0x144225;return db['WhatsappQueue']['findOne']({'where':{'id':_0xc18e31[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](handleEntityNotFound(_0x407b95,null))[_0xcaad('0x2a')](function(_0x5b59ee){if(_0x5b59ee){_0x144225=_0x5b59ee[_0xcaad('0x2c')]({'plain':!![]});_0x36d2b9['model']=_[_0xcaad('0x3b')](db[_0xcaad('0x58')][_0xcaad('0x36')]);_0x36d2b9['query']=_['keys'](_0xc18e31[_0xcaad('0x3a')]);_0x36d2b9['filters']=_[_0xcaad('0x3d')](_0x36d2b9['model'],_0x36d2b9[_0xcaad('0x3a')]);_0x267f82['attributes']=_[_0xcaad('0x3d')](_0x36d2b9[_0xcaad('0x39')],qs[_0xcaad('0x3f')](_0xc18e31[_0xcaad('0x3a')][_0xcaad('0x3f')]));_0x267f82['attributes']=_0x267f82['attributes'][_0xcaad('0x4d')]?_0x267f82[_0xcaad('0x3e')]:_0x36d2b9[_0xcaad('0x39')];if(!_0xc18e31[_0xcaad('0x3a')][_0xcaad('0x59')](_0xcaad('0x40'))){_0x267f82[_0xcaad('0x25')]=qs[_0xcaad('0x25')](_0xc18e31[_0xcaad('0x3a')]['limit']);_0x267f82['offset']=qs[_0xcaad('0x22')](_0xc18e31['query'][_0xcaad('0x22')]);}_0x267f82[_0xcaad('0x41')]=qs[_0xcaad('0x42')](_0xc18e31[_0xcaad('0x3a')][_0xcaad('0x42')]);_0x267f82[_0xcaad('0x43')]=qs[_0xcaad('0x3c')](_[_0xcaad('0x44')](_0xc18e31[_0xcaad('0x3a')],_0x36d2b9[_0xcaad('0x3c')]));_0x267f82[_0xcaad('0x43')][_0xcaad('0x5a')]=_0x5b59ee['id'];if(_0xc18e31[_0xcaad('0x3a')][_0xcaad('0x45')]){_0x267f82[_0xcaad('0x43')]=_[_0xcaad('0x46')](_0x267f82[_0xcaad('0x43')],{'$or':_[_0xcaad('0x34')](_0x267f82['attributes'],function(_0x2d3f28){var _0x3eb109={};_0x3eb109[_0x2d3f28]={'$like':'%'+_0xc18e31[_0xcaad('0x3a')][_0xcaad('0x45')]+'%'};return _0x3eb109;})});}_0x267f82=_[_0xcaad('0x46')]({},_0x267f82,_0xc18e31[_0xcaad('0x4f')]);return db[_0xcaad('0x58')][_0xcaad('0x49')](_0x267f82);}})[_0xcaad('0x2a')](function(_0x7c95b0){if(_0x7c95b0){return db['User'][_0xcaad('0x5b')]({'where':{'id':_['map'](_0x7c95b0,'UserId'),'role':_0xcaad('0x5c')},'attributes':['id',_0xcaad('0x32'),_0xcaad('0x5d'),_0xcaad('0x5e'),_0xcaad('0x5f')]});}})[_0xcaad('0x2a')](function(_0x3c38bc){if(_0x3c38bc){return{'count':_0x3c38bc[_0xcaad('0x24')],'rows':_[_0xcaad('0x34')](_0x3c38bc[_0xcaad('0x4a')],function(_0x2ba52b){return{'membername':_0x2ba52b[_0xcaad('0x32')],'UserId':_0x2ba52b['id'],'queue_name':_0x144225['name'],'WhatsappQueueId':_0x144225['id'],'interface':util[_0xcaad('0x60')]('%s/%s',_0xcaad('0x61'),_0x2ba52b[_0xcaad('0x32')]),'penalty':0x0,'paused':_0x2ba52b['whatsappPause'],'createdAt':_0x2ba52b[_0xcaad('0x5f')],'updatedAt':_0x2ba52b['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0xcaad('0x2a')](respondWithFilteredResult(_0x407b95,_0x267f82))['catch'](handleError(_0x407b95,null));};exports[_0xcaad('0x62')]=function(_0x1d7d91,_0xffb0eb,_0x48f0f0){var _0x308f89={};var _0x4747f8={};var _0x5cf17d;var _0x4c73ce;return db[_0xcaad('0x35')]['findOne']({'where':{'id':_0x1d7d91[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](handleEntityNotFound(_0xffb0eb,null))[_0xcaad('0x2a')](function(_0x5e82c2){if(_0x5e82c2){_0x5cf17d=_0x5e82c2;_0x4747f8[_0xcaad('0x39')]=_[_0xcaad('0x3b')](db[_0xcaad('0x63')][_0xcaad('0x36')]);_0x4747f8[_0xcaad('0x3a')]=_[_0xcaad('0x3b')](_0x1d7d91['query']);_0x4747f8[_0xcaad('0x3c')]=_['intersection'](_0x4747f8[_0xcaad('0x39')],_0x4747f8[_0xcaad('0x3a')]);_0x308f89[_0xcaad('0x3e')]=_[_0xcaad('0x3d')](_0x4747f8[_0xcaad('0x39')],qs[_0xcaad('0x3f')](_0x1d7d91[_0xcaad('0x3a')]['fields']));_0x308f89[_0xcaad('0x3e')]=_0x308f89[_0xcaad('0x3e')]['length']?_0x308f89['attributes']:_0x4747f8[_0xcaad('0x39')];_0x308f89[_0xcaad('0x41')]=qs[_0xcaad('0x42')](_0x1d7d91[_0xcaad('0x3a')][_0xcaad('0x42')]);_0x308f89[_0xcaad('0x43')]=qs[_0xcaad('0x3c')](_[_0xcaad('0x44')](_0x1d7d91[_0xcaad('0x3a')],_0x4747f8[_0xcaad('0x3c')]));if(_0x1d7d91[_0xcaad('0x3a')][_0xcaad('0x45')]){_0x308f89['where']=_[_0xcaad('0x46')](_0x308f89[_0xcaad('0x43')],{'$or':_[_0xcaad('0x34')](_0x308f89['attributes'],function(_0x8991f5){var _0x5d8221={};_0x5d8221[_0x8991f5]={'$like':'%'+_0x1d7d91['query'][_0xcaad('0x45')]+'%'};return _0x5d8221;})});}_0x308f89=_[_0xcaad('0x46')]({},_0x308f89,_0x1d7d91[_0xcaad('0x4f')]);return _0x5cf17d[_0xcaad('0x62')](_0x308f89);}})[_0xcaad('0x2a')](function(_0x109fd7){if(_0x109fd7){_0x4c73ce=_0x109fd7['length'];if(!_0x1d7d91['query'][_0xcaad('0x59')](_0xcaad('0x40'))){_0x308f89[_0xcaad('0x25')]=qs[_0xcaad('0x25')](_0x1d7d91['query'][_0xcaad('0x25')]);_0x308f89[_0xcaad('0x22')]=qs['offset'](_0x1d7d91['query']['offset']);}return _0x5cf17d[_0xcaad('0x62')](_0x308f89);}})[_0xcaad('0x2a')](function(_0x1d9b6e){if(_0x1d9b6e){return _0x1d9b6e?{'count':_0x4c73ce,'rows':_0x1d9b6e}:null;}})[_0xcaad('0x2a')](respondWithResult(_0xffb0eb,null))[_0xcaad('0x51')](handleError(_0xffb0eb,null));};exports['addTeams']=function(_0xf6faa1,_0x2d8cb9,_0x23ca68){var _0x3f79a9=_0xf6faa1[_0xcaad('0x53')]['ids'];return db['Team'][_0xcaad('0x49')]({'where':{'id':_0x3f79a9},'attributes':['id'],'include':[{'model':db['User'],'as':_0xcaad('0x64'),'attributes':['id','name','online',_0xcaad('0x65'),_0xcaad('0x66')],'raw':!![]}]})[_0xcaad('0x2a')](function(_0x511a0b){if(_0x511a0b){var _0x3b02b6=_[_0xcaad('0x67')](_0x511a0b,function(_0x34f7df){var _0x540765=_0x34f7df[_0xcaad('0x2c')]({'plain':!![]});return _0x540765[_0xcaad('0x64')];});return db[_0xcaad('0x35')][_0xcaad('0x50')]({'where':{'id':_0xf6faa1[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](function(_0x10e160){return db[_0xcaad('0x68')]['transaction'](function(_0x3c7ab1){return _0x10e160[_0xcaad('0x69')](_0x3f79a9,{'transaction':_0x3c7ab1})[_0xcaad('0x2a')](function(){return BPromise[_0xcaad('0x6a')](_0x3b02b6,function(_0x2fe7df){return db[_0xcaad('0x58')][_0xcaad('0x6b')]({'where':{'UserId':_0x2fe7df['id'],'WhatsappQueueId':_0xf6faa1['params']['id']},'transaction':_0x3c7ab1});});})['then'](function(){_0x3b02b6[_0xcaad('0x6c')](function(_0x50d59e){socket[_0xcaad('0x6d')](_0xcaad('0x6e'),{'UserId':_0x50d59e['id'],'WhatsappQueueId':_0x10e160['id']});});});});});}})[_0xcaad('0x2a')](respondWithStatusCode(_0x2d8cb9,null))[_0xcaad('0x51')](handleError(_0x2d8cb9,null));};exports['removeTeams']=function(_0x3c7db0,_0x243d68,_0x38ff65){return db[_0xcaad('0x63')][_0xcaad('0x49')]({'where':{'id':_0x3c7db0[_0xcaad('0x3a')][_0xcaad('0x6f')]},'attributes':['id'],'include':[{'model':db[_0xcaad('0x70')],'as':'Agents','attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x243d68,null))[_0xcaad('0x2a')](function(_0x3e41b1){var _0x570008=_[_0xcaad('0x34')](_0x3e41b1,'id');var _0x723df0=[];var _0x1ee2d0=[];var _0x2440d9=squel[_0xcaad('0x71')]();_0x2440d9[_0xcaad('0x72')](_0xcaad('0x73'))[_0xcaad('0x74')](_0xcaad('0x75'),'tq')[_0xcaad('0x76')]('user_has_teams','ut',_0xcaad('0x77'))['where'](_0xcaad('0x78'),_0x3c7db0[_0xcaad('0x4c')]['id']);for(var _0x17e003=0x0;_0x17e003<_0x3e41b1[_0xcaad('0x4d')];_0x17e003+=0x1){let _0x2131b4=_0x3e41b1[_0x17e003];for(var _0x488dc4=0x0;_0x488dc4<_0x2131b4[_0xcaad('0x64')][_0xcaad('0x4d')];_0x488dc4+=0x1){let _0x25a776=_0x2131b4[_0xcaad('0x64')][_0x488dc4];var _0x155565=_0x2440d9[_0xcaad('0x79')]();_0x155565[_0xcaad('0x43')](_0xcaad('0x7a'),_0x25a776['id']);_0x1ee2d0['push'](db['sequelize'][_0xcaad('0x3a')](_0x155565[_0xcaad('0x7b')](),{'type':db[_0xcaad('0x68')]['QueryTypes'][_0xcaad('0x7c')]})['then'](function(_0x25cf19){if(_0x25cf19['length']===0x1){return _0x25a776['id'];}else{var _0x7c7e99=_[_0xcaad('0x7d')](_['map'](_0x25cf19,_0xcaad('0x7e')),function(_0x13d93c){return _['includes'](_0x570008,_0x13d93c);});if(_0x7c7e99){return _0x25a776['id'];}}}));}}return BPromise[_0xcaad('0x7f')](_0x1ee2d0)[_0xcaad('0x2a')](function(_0x30f55a){_0x723df0=_(_0x723df0)[_0xcaad('0x80')](_0x30f55a)[_0xcaad('0x81')]()[_0xcaad('0x82')]();return db[_0xcaad('0x35')]['find']({'where':{'id':_0x3c7db0[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](function(_0x1920af){return db[_0xcaad('0x68')][_0xcaad('0x83')](function(_0x56d92a){return _0x1920af[_0xcaad('0x84')](_0x3c7db0[_0xcaad('0x3a')][_0xcaad('0x6f')],{'transaction':_0x56d92a})[_0xcaad('0x2a')](function(){if(!_[_0xcaad('0x85')](_0x723df0)){return _0x1920af[_0xcaad('0x86')](_0x723df0,{'transaction':_0x56d92a});}})[_0xcaad('0x2a')](function(){_0x723df0[_0xcaad('0x6c')](function(_0x3cf6dc){socket[_0xcaad('0x6d')](_0xcaad('0x87'),{'UserId':_0x3cf6dc,'WhatsappQueueId':_0x1920af['id']});});});});});});})[_0xcaad('0x2a')](respondWithStatusCode(_0x243d68,null))[_0xcaad('0x51')](handleError(_0x243d68,null));};exports[_0xcaad('0x88')]=function(_0x99badd,_0x4f3d45,_0x1a50ca){return db[_0xcaad('0x35')][_0xcaad('0x50')]({'where':{'id':_0x99badd[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](handleEntityNotFound(_0x4f3d45,null))[_0xcaad('0x2a')](function(_0x4849a9){if(_0x4849a9){return _0x4849a9[_0xcaad('0x88')](_0x99badd[_0xcaad('0x53')]['ids'],_[_0xcaad('0x89')](_0x99badd[_0xcaad('0x53')],[_0xcaad('0x6f'),'id'])||{})[_0xcaad('0x8a')](function(_0x33da6e){for(var _0x2c312f=0x0;_0x2c312f<_0x99badd[_0xcaad('0x53')][_0xcaad('0x6f')][_0xcaad('0x4d')];_0x2c312f+=0x1){socket[_0xcaad('0x6d')](_0xcaad('0x6e'),{'UserId':Number(_0x99badd[_0xcaad('0x53')][_0xcaad('0x6f')][_0x2c312f]),'WhatsappQueueId':Number(_0x99badd['params']['id'])});}return _0x33da6e;});}})['then'](respondWithResult(_0x4f3d45,null))[_0xcaad('0x51')](handleError(_0x4f3d45,null));};exports[_0xcaad('0x86')]=function(_0x5aedd5,_0xe6cfa6,_0x4f87a2){return db['WhatsappQueue'][_0xcaad('0x50')]({'where':{'id':_0x5aedd5[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](handleEntityNotFound(_0xe6cfa6,null))[_0xcaad('0x2a')](function(_0x49ad57){if(_0x49ad57){return _0x49ad57['removeAgents'](_0x5aedd5['query']['ids'])[_0xcaad('0x2a')](function(){if(_['isArray'](_0x5aedd5[_0xcaad('0x3a')][_0xcaad('0x6f')])){for(var _0x38b62d=0x0;_0x38b62d<_0x5aedd5[_0xcaad('0x3a')][_0xcaad('0x6f')][_0xcaad('0x4d')];_0x38b62d+=0x1){socket[_0xcaad('0x6d')](_0xcaad('0x87'),{'UserId':Number(_0x5aedd5[_0xcaad('0x3a')][_0xcaad('0x6f')][_0x38b62d]),'WhatsappQueueId':Number(_0x5aedd5[_0xcaad('0x4c')]['id'])});}}else{socket[_0xcaad('0x6d')](_0xcaad('0x87'),{'UserId':Number(_0x5aedd5['query'][_0xcaad('0x6f')]),'WhatsappQueueId':Number(_0x5aedd5[_0xcaad('0x4c')]['id'])});}});}})[_0xcaad('0x2a')](respondWithStatusCode(_0xe6cfa6,null))[_0xcaad('0x51')](handleError(_0xe6cfa6,null));};exports[_0xcaad('0x8b')]=function(_0xe46b49,_0x38a662,_0xcb30d4){var _0x3271b4={};var _0x4ed4fc={};var _0x326b40;var _0x159f1c;return db[_0xcaad('0x35')]['findOne']({'where':{'id':_0xe46b49[_0xcaad('0x4c')]['id']}})[_0xcaad('0x2a')](handleEntityNotFound(_0x38a662,null))['then'](function(_0x58d2ad){if(_0x58d2ad){_0x326b40=_0x58d2ad;_0x4ed4fc[_0xcaad('0x39')]=_[_0xcaad('0x3b')](db[_0xcaad('0x70')][_0xcaad('0x36')]);_0x4ed4fc[_0xcaad('0x3a')]=_[_0xcaad('0x3b')](_0xe46b49[_0xcaad('0x3a')]);_0x4ed4fc['filters']=_['intersection'](_0x4ed4fc[_0xcaad('0x39')],_0x4ed4fc[_0xcaad('0x3a')]);_0x3271b4[_0xcaad('0x3e')]=_[_0xcaad('0x3d')](_0x4ed4fc[_0xcaad('0x39')],qs['fields'](_0xe46b49[_0xcaad('0x3a')][_0xcaad('0x3f')]));_0x3271b4['attributes']=_0x3271b4['attributes']['length']?_0x3271b4[_0xcaad('0x3e')]:_0x4ed4fc[_0xcaad('0x39')];_0x3271b4[_0xcaad('0x41')]=qs[_0xcaad('0x42')](_0xe46b49[_0xcaad('0x3a')][_0xcaad('0x42')]);_0x3271b4[_0xcaad('0x43')]=qs[_0xcaad('0x3c')](_[_0xcaad('0x44')](_0xe46b49[_0xcaad('0x3a')],_0x4ed4fc[_0xcaad('0x3c')]));if(_0xe46b49[_0xcaad('0x3a')]['filter']){_0x3271b4['where']=_[_0xcaad('0x46')](_0x3271b4[_0xcaad('0x43')],{'$or':_[_0xcaad('0x34')](_0x3271b4[_0xcaad('0x3e')],function(_0x18e5be){var _0x317120={};_0x317120[_0x18e5be]={'$like':'%'+_0xe46b49['query'][_0xcaad('0x45')]+'%'};return _0x317120;})});}_0x3271b4=_[_0xcaad('0x46')]({},_0x3271b4,_0xe46b49[_0xcaad('0x4f')]);return _0x326b40['getAgents'](_0x3271b4);}})[_0xcaad('0x2a')](function(_0xe8c5c8){if(_0xe8c5c8){_0x159f1c=_0xe8c5c8['length'];if(!_0xe46b49[_0xcaad('0x3a')][_0xcaad('0x59')](_0xcaad('0x40'))){_0x3271b4[_0xcaad('0x25')]=qs[_0xcaad('0x25')](_0xe46b49[_0xcaad('0x3a')][_0xcaad('0x25')]);_0x3271b4[_0xcaad('0x22')]=qs[_0xcaad('0x22')](_0xe46b49[_0xcaad('0x3a')][_0xcaad('0x22')]);}return _0x326b40[_0xcaad('0x8b')](_0x3271b4);}})[_0xcaad('0x2a')](function(_0x59741d){if(_0x59741d){return _0x59741d?{'count':_0x159f1c,'rows':_0x59741d}:null;}})[_0xcaad('0x2a')](respondWithResult(_0x38a662,null))[_0xcaad('0x51')](handleError(_0x38a662,null));};
\ No newline at end of file
+var _0xf8d4=['spread','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./whatsappQueue.socket','end','status','offset','undefined','limit','count','set','json','reject','save','update','destroy','get','WhatsappQueues','UserProfileResource','then','error','name','send','map','WhatsappQueue','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','where','merge','VIRTUAL','filter','catch','show','params','includeAll','include','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','findOne','UserWhatsappQueue','sort','pick','WhatsappQueueId','findAndCountAll','UserId','agent','whatsappPause','createdAt','rows','format','%s/%s','SIP','getTeams','Team','addTeams','ids','findAll','User','Agents','online','voicePause','interface','flatMap','each','findOrCreate','forEach','emit','userWhatsappQueue:save','removeTeams','select','tq.TeamId','from','team_has_whatsapp_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','value','isEmpty','removeAgents','userWhatsappQueue:remove','omit'];(function(_0x58b1f4,_0x55c96e){var _0x246c42=function(_0x3202f9){while(--_0x3202f9){_0x58b1f4['push'](_0x58b1f4['shift']());}};_0x246c42(++_0x55c96e);}(_0xf8d4,0x94));var _0x4f8d=function(_0x362e87,_0x38d17c){_0x362e87=_0x362e87-0x0;var _0x334244=_0xf8d4[_0x362e87];return _0x334244;};'use strict';var emlformat=require(_0x4f8d('0x0'));var rimraf=require(_0x4f8d('0x1'));var zipdir=require(_0x4f8d('0x2'));var jsonpatch=require(_0x4f8d('0x3'));var rp=require(_0x4f8d('0x4'));var moment=require(_0x4f8d('0x5'));var BPromise=require(_0x4f8d('0x6'));var Mustache=require(_0x4f8d('0x7'));var util=require('util');var path=require(_0x4f8d('0x8'));var sox=require(_0x4f8d('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4f8d('0xa'));var _=require(_0x4f8d('0xb'));var squel=require(_0x4f8d('0xc'));var crypto=require('crypto');var jsforce=require(_0x4f8d('0xd'));var deskjs=require(_0x4f8d('0xe'));var toCsv=require(_0x4f8d('0xf'));var querystring=require(_0x4f8d('0x10'));var Papa=require(_0x4f8d('0x11'));var Redis=require(_0x4f8d('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x4f8d('0x13'));var as=require(_0x4f8d('0x14'));var hardwareService=require(_0x4f8d('0x15'));var logger=require(_0x4f8d('0x16'))(_0x4f8d('0x17'));var utils=require(_0x4f8d('0x18'));var config=require(_0x4f8d('0x19'));var licenseUtil=require(_0x4f8d('0x1a'));var db=require(_0x4f8d('0x1b'))['db'];config[_0x4f8d('0x1c')]=_[_0x4f8d('0x1d')](config[_0x4f8d('0x1c')],{'host':_0x4f8d('0x1e'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4f8d('0x1c')]));require(_0x4f8d('0x1f'))['register'](socket);function respondWithStatusCode(_0x2a48df,_0x358889){_0x358889=_0x358889||0xcc;return function(_0x5b8bbc){if(_0x5b8bbc){return _0x2a48df['sendStatus'](_0x358889);}return _0x2a48df['status'](_0x358889)[_0x4f8d('0x20')]();};}function respondWithResult(_0x13b22d,_0x1afe55){_0x1afe55=_0x1afe55||0xc8;return function(_0x31dd42){if(_0x31dd42){return _0x13b22d[_0x4f8d('0x21')](_0x1afe55)['json'](_0x31dd42);}};}function respondWithFilteredResult(_0x35ee94,_0x38123c){return function(_0x38d3bb){if(_0x38d3bb){var _0x3bcfa5=typeof _0x38123c[_0x4f8d('0x22')]===_0x4f8d('0x23')&&typeof _0x38123c[_0x4f8d('0x24')]===_0x4f8d('0x23');var _0x40a0d4=_0x38d3bb[_0x4f8d('0x25')];var _0x18f778=_0x3bcfa5?0x0:_0x38123c[_0x4f8d('0x22')];var _0x2a730f=_0x3bcfa5?_0x38d3bb[_0x4f8d('0x25')]:_0x38123c[_0x4f8d('0x22')]+_0x38123c[_0x4f8d('0x24')];var _0x517202;if(_0x2a730f>=_0x40a0d4){_0x2a730f=_0x40a0d4;_0x517202=0xc8;}else{_0x517202=0xce;}_0x35ee94[_0x4f8d('0x21')](_0x517202);return _0x35ee94[_0x4f8d('0x26')]('Content-Range',_0x18f778+'-'+_0x2a730f+'/'+_0x40a0d4)[_0x4f8d('0x27')](_0x38d3bb);}return null;};}function patchUpdates(_0x2c249b){return function(_0x18c082){try{jsonpatch['apply'](_0x18c082,_0x2c249b,!![]);}catch(_0xfa701a){return BPromise[_0x4f8d('0x28')](_0xfa701a);}return _0x18c082[_0x4f8d('0x29')]();};}function saveUpdates(_0x32985f,_0x6e8fed){return function(_0x26d3aa){if(_0x26d3aa){return _0x26d3aa[_0x4f8d('0x2a')](_0x32985f)['then'](function(_0xd44930){return _0xd44930;});}return null;};}function removeEntity(_0x36902a,_0x5908dc){return function(_0x14a712){if(_0x14a712){return _0x14a712[_0x4f8d('0x2b')]()['then'](function(){var _0x2f07c4=_0x14a712[_0x4f8d('0x2c')]({'plain':!![]});var _0xab453c=_0x4f8d('0x2d');return db[_0x4f8d('0x2e')]['destroy']({'where':{'type':_0xab453c,'resourceId':_0x2f07c4['id']}})[_0x4f8d('0x2f')](function(){return _0x14a712;});})[_0x4f8d('0x2f')](function(){_0x36902a[_0x4f8d('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a2bc0,_0x140cce){return function(_0xd136d9){if(!_0xd136d9){_0x1a2bc0['sendStatus'](0x194);}return _0xd136d9;};}function handleError(_0x568fbd,_0x32835c){_0x32835c=_0x32835c||0x1f4;return function(_0x285b9b){logger[_0x4f8d('0x30')](_0x285b9b['stack']);if(_0x285b9b[_0x4f8d('0x31')]){delete _0x285b9b[_0x4f8d('0x31')];}_0x568fbd['status'](_0x32835c)[_0x4f8d('0x32')](_0x285b9b);};}exports['index']=function(_0x149bad,_0x5b8f1d){var _0x2e5ba3={},_0xd99c6a={},_0x1c1bce={'count':0x0,'rows':[]};var _0x42c1f1=_[_0x4f8d('0x33')](db[_0x4f8d('0x34')][_0x4f8d('0x35')],function(_0x9314ae){return{'name':_0x9314ae[_0x4f8d('0x36')],'type':_0x9314ae['type'][_0x4f8d('0x37')]};});_0xd99c6a[_0x4f8d('0x38')]=_[_0x4f8d('0x33')](_0x42c1f1,_0x4f8d('0x31'));_0xd99c6a[_0x4f8d('0x39')]=_[_0x4f8d('0x3a')](_0x149bad[_0x4f8d('0x39')]);_0xd99c6a[_0x4f8d('0x3b')]=_['intersection'](_0xd99c6a[_0x4f8d('0x38')],_0xd99c6a[_0x4f8d('0x39')]);_0x2e5ba3[_0x4f8d('0x3c')]=_[_0x4f8d('0x3d')](_0xd99c6a[_0x4f8d('0x38')],qs[_0x4f8d('0x3e')](_0x149bad[_0x4f8d('0x39')][_0x4f8d('0x3e')]));_0x2e5ba3['attributes']=_0x2e5ba3[_0x4f8d('0x3c')][_0x4f8d('0x3f')]?_0x2e5ba3['attributes']:_0xd99c6a['model'];if(!_0x149bad[_0x4f8d('0x39')][_0x4f8d('0x40')](_0x4f8d('0x41'))){_0x2e5ba3[_0x4f8d('0x24')]=qs[_0x4f8d('0x24')](_0x149bad[_0x4f8d('0x39')]['limit']);_0x2e5ba3['offset']=qs[_0x4f8d('0x22')](_0x149bad['query'][_0x4f8d('0x22')]);}_0x2e5ba3[_0x4f8d('0x42')]=qs['sort'](_0x149bad[_0x4f8d('0x39')]['sort']);_0x2e5ba3['where']=qs[_0x4f8d('0x3b')](_['pick'](_0x149bad[_0x4f8d('0x39')],_0xd99c6a[_0x4f8d('0x3b')]),_0x42c1f1);if(_0x149bad[_0x4f8d('0x39')]['filter']){_0x2e5ba3[_0x4f8d('0x43')]=_[_0x4f8d('0x44')](_0x2e5ba3[_0x4f8d('0x43')],{'$or':_[_0x4f8d('0x33')](_0x42c1f1,function(_0x13ea40){if(_0x13ea40['type']!==_0x4f8d('0x45')){var _0x22deef={};_0x22deef[_0x13ea40[_0x4f8d('0x31')]]={'$like':'%'+_0x149bad[_0x4f8d('0x39')][_0x4f8d('0x46')]+'%'};return _0x22deef;}})});}_0x2e5ba3=_[_0x4f8d('0x44')]({},_0x2e5ba3,_0x149bad['options']);var _0x21aaa2={'where':_0x2e5ba3['where']};return db['WhatsappQueue'][_0x4f8d('0x25')](_0x21aaa2)[_0x4f8d('0x2f')](function(_0x202f2a){_0x1c1bce[_0x4f8d('0x25')]=_0x202f2a;if(_0x149bad['query']['includeAll']){_0x2e5ba3['include']=[{'all':!![]}];}return db[_0x4f8d('0x34')]['findAll'](_0x2e5ba3);})[_0x4f8d('0x2f')](function(_0x36f025){_0x1c1bce['rows']=_0x36f025;return _0x1c1bce;})[_0x4f8d('0x2f')](respondWithFilteredResult(_0x5b8f1d,_0x2e5ba3))[_0x4f8d('0x47')](handleError(_0x5b8f1d,null));};exports[_0x4f8d('0x48')]=function(_0x45d699,_0x10123b){var _0x1cedab={'raw':!![],'where':{'id':_0x45d699[_0x4f8d('0x49')]['id']}},_0x21e920={};_0x21e920[_0x4f8d('0x38')]=_[_0x4f8d('0x3a')](db['WhatsappQueue']['rawAttributes']);_0x21e920[_0x4f8d('0x39')]=_[_0x4f8d('0x3a')](_0x45d699[_0x4f8d('0x39')]);_0x21e920[_0x4f8d('0x3b')]=_['intersection'](_0x21e920['model'],_0x21e920['query']);_0x1cedab[_0x4f8d('0x3c')]=_[_0x4f8d('0x3d')](_0x21e920[_0x4f8d('0x38')],qs[_0x4f8d('0x3e')](_0x45d699['query'][_0x4f8d('0x3e')]));_0x1cedab[_0x4f8d('0x3c')]=_0x1cedab['attributes']['length']?_0x1cedab[_0x4f8d('0x3c')]:_0x21e920[_0x4f8d('0x38')];if(_0x45d699[_0x4f8d('0x39')][_0x4f8d('0x4a')]){_0x1cedab[_0x4f8d('0x4b')]=[{'all':!![]}];}_0x1cedab=_[_0x4f8d('0x44')]({},_0x1cedab,_0x45d699[_0x4f8d('0x4c')]);return db[_0x4f8d('0x34')][_0x4f8d('0x4d')](_0x1cedab)[_0x4f8d('0x2f')](handleEntityNotFound(_0x10123b,null))[_0x4f8d('0x2f')](respondWithResult(_0x10123b,null))[_0x4f8d('0x47')](handleError(_0x10123b,null));};exports[_0x4f8d('0x4e')]=function(_0x50308e,_0x3e137b){return db[_0x4f8d('0x34')][_0x4f8d('0x4e')](_0x50308e['body'],{})[_0x4f8d('0x2f')](function(_0x319f88){var _0x4563e7=_0x50308e[_0x4f8d('0x4f')][_0x4f8d('0x2c')]({'plain':!![]});if(!_0x4563e7)throw new Error(_0x4f8d('0x50'));if(_0x4563e7[_0x4f8d('0x51')]==='user'){var _0x500a06=_0x319f88['get']({'plain':!![]});var _0x567542='WhatsappQueues';return db[_0x4f8d('0x52')][_0x4f8d('0x4d')]({'where':{'name':_0x567542,'userProfileId':_0x4563e7[_0x4f8d('0x53')]},'raw':!![]})[_0x4f8d('0x2f')](function(_0x116414){if(_0x116414&&_0x116414[_0x4f8d('0x54')]===0x0){return db[_0x4f8d('0x2e')]['create']({'name':_0x500a06[_0x4f8d('0x31')],'resourceId':_0x500a06['id'],'type':_0x116414['name'],'sectionId':_0x116414['id']},{})[_0x4f8d('0x2f')](function(){return _0x319f88;});}else{return _0x319f88;}})[_0x4f8d('0x47')](function(_0x1bd506){logger['error'](_0x4f8d('0x55'),_0x1bd506);throw _0x1bd506;});}return _0x319f88;})[_0x4f8d('0x2f')](respondWithResult(_0x3e137b,0xc9))[_0x4f8d('0x47')](handleError(_0x3e137b,null));};exports[_0x4f8d('0x2a')]=function(_0x1f7b26,_0x27d7c9){if(_0x1f7b26[_0x4f8d('0x56')]['id']){delete _0x1f7b26['body']['id'];}return db[_0x4f8d('0x34')][_0x4f8d('0x4d')]({'where':{'id':_0x1f7b26[_0x4f8d('0x49')]['id']}})[_0x4f8d('0x2f')](handleEntityNotFound(_0x27d7c9,null))[_0x4f8d('0x2f')](saveUpdates(_0x1f7b26[_0x4f8d('0x56')],null))[_0x4f8d('0x2f')](respondWithResult(_0x27d7c9,null))[_0x4f8d('0x47')](handleError(_0x27d7c9,null));};exports[_0x4f8d('0x2b')]=function(_0x5bad5a,_0x2e026e){return db['WhatsappQueue']['find']({'where':{'id':_0x5bad5a[_0x4f8d('0x49')]['id']}})[_0x4f8d('0x2f')](handleEntityNotFound(_0x2e026e,null))[_0x4f8d('0x2f')](removeEntity(_0x2e026e,null))[_0x4f8d('0x47')](handleError(_0x2e026e,null));};exports[_0x4f8d('0x57')]=function(_0x4306f4,_0x33b98d){return db[_0x4f8d('0x34')][_0x4f8d('0x57')]()[_0x4f8d('0x2f')](respondWithResult(_0x33b98d,null))[_0x4f8d('0x47')](handleError(_0x33b98d,null));};exports['getMembers']=function(_0x4faf1d,_0x972ef6,_0xe4ae54){var _0x12f713={'raw':!![],'where':{}},_0x9b5206={},_0x48e537;return db[_0x4f8d('0x34')][_0x4f8d('0x58')]({'where':{'id':_0x4faf1d['params']['id']}})[_0x4f8d('0x2f')](handleEntityNotFound(_0x972ef6,null))[_0x4f8d('0x2f')](function(_0x503562){if(_0x503562){_0x48e537=_0x503562[_0x4f8d('0x2c')]({'plain':!![]});_0x9b5206['model']=_[_0x4f8d('0x3a')](db[_0x4f8d('0x59')][_0x4f8d('0x35')]);_0x9b5206[_0x4f8d('0x39')]=_[_0x4f8d('0x3a')](_0x4faf1d[_0x4f8d('0x39')]);_0x9b5206['filters']=_[_0x4f8d('0x3d')](_0x9b5206[_0x4f8d('0x38')],_0x9b5206[_0x4f8d('0x39')]);_0x12f713[_0x4f8d('0x3c')]=_[_0x4f8d('0x3d')](_0x9b5206['model'],qs[_0x4f8d('0x3e')](_0x4faf1d['query'][_0x4f8d('0x3e')]));_0x12f713['attributes']=_0x12f713[_0x4f8d('0x3c')]['length']?_0x12f713[_0x4f8d('0x3c')]:_0x9b5206[_0x4f8d('0x38')];if(!_0x4faf1d[_0x4f8d('0x39')]['hasOwnProperty']('nolimit')){_0x12f713[_0x4f8d('0x24')]=qs[_0x4f8d('0x24')](_0x4faf1d[_0x4f8d('0x39')]['limit']);_0x12f713[_0x4f8d('0x22')]=qs[_0x4f8d('0x22')](_0x4faf1d[_0x4f8d('0x39')]['offset']);}_0x12f713[_0x4f8d('0x42')]=qs[_0x4f8d('0x5a')](_0x4faf1d[_0x4f8d('0x39')][_0x4f8d('0x5a')]);_0x12f713[_0x4f8d('0x43')]=qs['filters'](_[_0x4f8d('0x5b')](_0x4faf1d[_0x4f8d('0x39')],_0x9b5206[_0x4f8d('0x3b')]));_0x12f713[_0x4f8d('0x43')][_0x4f8d('0x5c')]=_0x503562['id'];if(_0x4faf1d[_0x4f8d('0x39')][_0x4f8d('0x46')]){_0x12f713['where']=_[_0x4f8d('0x44')](_0x12f713[_0x4f8d('0x43')],{'$or':_[_0x4f8d('0x33')](_0x12f713[_0x4f8d('0x3c')],function(_0x2577cf){var _0x153266={};_0x153266[_0x2577cf]={'$like':'%'+_0x4faf1d[_0x4f8d('0x39')][_0x4f8d('0x46')]+'%'};return _0x153266;})});}_0x12f713=_['merge']({},_0x12f713,_0x4faf1d['options']);return db[_0x4f8d('0x59')]['findAll'](_0x12f713);}})[_0x4f8d('0x2f')](function(_0x3a8801){if(_0x3a8801){return db['User'][_0x4f8d('0x5d')]({'where':{'id':_['map'](_0x3a8801,_0x4f8d('0x5e')),'role':_0x4f8d('0x5f')},'attributes':['id',_0x4f8d('0x31'),_0x4f8d('0x60'),'updatedAt',_0x4f8d('0x61')]});}})[_0x4f8d('0x2f')](function(_0x510414){if(_0x510414){return{'count':_0x510414[_0x4f8d('0x25')],'rows':_[_0x4f8d('0x33')](_0x510414[_0x4f8d('0x62')],function(_0x8eec6){return{'membername':_0x8eec6[_0x4f8d('0x31')],'UserId':_0x8eec6['id'],'queue_name':_0x48e537['name'],'WhatsappQueueId':_0x48e537['id'],'interface':util[_0x4f8d('0x63')](_0x4f8d('0x64'),_0x4f8d('0x65'),_0x8eec6[_0x4f8d('0x31')]),'penalty':0x0,'paused':_0x8eec6[_0x4f8d('0x60')],'createdAt':_0x8eec6[_0x4f8d('0x61')],'updatedAt':_0x8eec6['updatedAt']};})};}else{return{'count':0x0,'rows':[]};}})[_0x4f8d('0x2f')](respondWithFilteredResult(_0x972ef6,_0x12f713))['catch'](handleError(_0x972ef6,null));};exports[_0x4f8d('0x66')]=function(_0x42842d,_0x69165d,_0x47176a){var _0x17af8f={};var _0x46a967={};var _0x538d38;var _0x14dc1d;return db[_0x4f8d('0x34')][_0x4f8d('0x58')]({'where':{'id':_0x42842d[_0x4f8d('0x49')]['id']}})['then'](handleEntityNotFound(_0x69165d,null))[_0x4f8d('0x2f')](function(_0x4759a3){if(_0x4759a3){_0x538d38=_0x4759a3;_0x46a967[_0x4f8d('0x38')]=_['keys'](db[_0x4f8d('0x67')][_0x4f8d('0x35')]);_0x46a967[_0x4f8d('0x39')]=_[_0x4f8d('0x3a')](_0x42842d['query']);_0x46a967[_0x4f8d('0x3b')]=_['intersection'](_0x46a967[_0x4f8d('0x38')],_0x46a967[_0x4f8d('0x39')]);_0x17af8f[_0x4f8d('0x3c')]=_['intersection'](_0x46a967['model'],qs[_0x4f8d('0x3e')](_0x42842d[_0x4f8d('0x39')][_0x4f8d('0x3e')]));_0x17af8f[_0x4f8d('0x3c')]=_0x17af8f[_0x4f8d('0x3c')][_0x4f8d('0x3f')]?_0x17af8f[_0x4f8d('0x3c')]:_0x46a967[_0x4f8d('0x38')];_0x17af8f[_0x4f8d('0x42')]=qs[_0x4f8d('0x5a')](_0x42842d[_0x4f8d('0x39')][_0x4f8d('0x5a')]);_0x17af8f[_0x4f8d('0x43')]=qs[_0x4f8d('0x3b')](_[_0x4f8d('0x5b')](_0x42842d[_0x4f8d('0x39')],_0x46a967[_0x4f8d('0x3b')]));if(_0x42842d[_0x4f8d('0x39')][_0x4f8d('0x46')]){_0x17af8f[_0x4f8d('0x43')]=_[_0x4f8d('0x44')](_0x17af8f['where'],{'$or':_[_0x4f8d('0x33')](_0x17af8f[_0x4f8d('0x3c')],function(_0xbb2f83){var _0x405763={};_0x405763[_0xbb2f83]={'$like':'%'+_0x42842d['query'][_0x4f8d('0x46')]+'%'};return _0x405763;})});}_0x17af8f=_['merge']({},_0x17af8f,_0x42842d[_0x4f8d('0x4c')]);return _0x538d38['getTeams'](_0x17af8f);}})[_0x4f8d('0x2f')](function(_0x20356f){if(_0x20356f){_0x14dc1d=_0x20356f[_0x4f8d('0x3f')];if(!_0x42842d[_0x4f8d('0x39')][_0x4f8d('0x40')](_0x4f8d('0x41'))){_0x17af8f[_0x4f8d('0x24')]=qs['limit'](_0x42842d[_0x4f8d('0x39')][_0x4f8d('0x24')]);_0x17af8f[_0x4f8d('0x22')]=qs[_0x4f8d('0x22')](_0x42842d[_0x4f8d('0x39')][_0x4f8d('0x22')]);}return _0x538d38['getTeams'](_0x17af8f);}})[_0x4f8d('0x2f')](function(_0x459221){if(_0x459221){return _0x459221?{'count':_0x14dc1d,'rows':_0x459221}:null;}})['then'](respondWithResult(_0x69165d,null))[_0x4f8d('0x47')](handleError(_0x69165d,null));};exports[_0x4f8d('0x68')]=function(_0x4033bf,_0x3b7fef,_0x4815d8){var _0x519e87=_0x4033bf[_0x4f8d('0x56')][_0x4f8d('0x69')];return db[_0x4f8d('0x67')][_0x4f8d('0x6a')]({'where':{'id':_0x519e87},'attributes':['id'],'include':[{'model':db[_0x4f8d('0x6b')],'as':_0x4f8d('0x6c'),'attributes':['id',_0x4f8d('0x31'),_0x4f8d('0x6d'),_0x4f8d('0x6e'),_0x4f8d('0x6f')],'raw':!![]}]})[_0x4f8d('0x2f')](function(_0x5f4b03){if(_0x5f4b03){var _0x23aaf7=_[_0x4f8d('0x70')](_0x5f4b03,function(_0x556e05){var _0x14bf84=_0x556e05[_0x4f8d('0x2c')]({'plain':!![]});return _0x14bf84[_0x4f8d('0x6c')];});return db[_0x4f8d('0x34')][_0x4f8d('0x4d')]({'where':{'id':_0x4033bf['params']['id']}})[_0x4f8d('0x2f')](function(_0x528290){return db['sequelize']['transaction'](function(_0x1b48e2){return _0x528290[_0x4f8d('0x68')](_0x519e87,{'transaction':_0x1b48e2})['then'](function(){return BPromise[_0x4f8d('0x71')](_0x23aaf7,function(_0x44e68b){return db[_0x4f8d('0x59')][_0x4f8d('0x72')]({'where':{'UserId':_0x44e68b['id'],'WhatsappQueueId':_0x4033bf[_0x4f8d('0x49')]['id']},'transaction':_0x1b48e2});});})[_0x4f8d('0x2f')](function(){_0x23aaf7[_0x4f8d('0x73')](function(_0x3942dd){socket[_0x4f8d('0x74')](_0x4f8d('0x75'),{'UserId':_0x3942dd['id'],'WhatsappQueueId':_0x528290['id']});});});});});}})['then'](respondWithStatusCode(_0x3b7fef,null))[_0x4f8d('0x47')](handleError(_0x3b7fef,null));};exports[_0x4f8d('0x76')]=function(_0x7040fc,_0x468b1f,_0xf011d0){return db['Team'][_0x4f8d('0x6a')]({'where':{'id':_0x7040fc['query'][_0x4f8d('0x69')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x4f8d('0x6c'),'attributes':['id'],'raw':!![]}]})[_0x4f8d('0x2f')](handleEntityNotFound(_0x468b1f,null))[_0x4f8d('0x2f')](function(_0x289bed){var _0x286040=_['map'](_0x289bed,'id');var _0x5cd567=[];var _0x1c8269=[];var _0x3a5ba5=squel[_0x4f8d('0x77')]();_0x3a5ba5['field'](_0x4f8d('0x78'))[_0x4f8d('0x79')](_0x4f8d('0x7a'),'tq')[_0x4f8d('0x7b')](_0x4f8d('0x7c'),'ut',_0x4f8d('0x7d'))['where']('WhatsappQueueId\x20=\x20?',_0x7040fc[_0x4f8d('0x49')]['id']);for(var _0x70e136=0x0;_0x70e136<_0x289bed['length'];_0x70e136+=0x1){let _0x529f5c=_0x289bed[_0x70e136];for(var _0x4e8530=0x0;_0x4e8530<_0x529f5c['Agents']['length'];_0x4e8530+=0x1){let _0x1a7d4f=_0x529f5c[_0x4f8d('0x6c')][_0x4e8530];var _0x18c3db=_0x3a5ba5['clone']();_0x18c3db['where'](_0x4f8d('0x7e'),_0x1a7d4f['id']);_0x1c8269[_0x4f8d('0x7f')](db[_0x4f8d('0x80')][_0x4f8d('0x39')](_0x18c3db[_0x4f8d('0x81')](),{'type':db['sequelize'][_0x4f8d('0x82')][_0x4f8d('0x83')]})[_0x4f8d('0x2f')](function(_0x4be209){if(_0x4be209[_0x4f8d('0x3f')]===0x1){return _0x1a7d4f['id'];}else{var _0x43b78a=_[_0x4f8d('0x84')](_['map'](_0x4be209,_0x4f8d('0x85')),function(_0x84bfba){return _[_0x4f8d('0x86')](_0x286040,_0x84bfba);});if(_0x43b78a){return _0x1a7d4f['id'];}}}));}}return BPromise[_0x4f8d('0x87')](_0x1c8269)[_0x4f8d('0x2f')](function(_0x4ea361){_0x5cd567=_(_0x5cd567)[_0x4f8d('0x88')](_0x4ea361)['compact']()[_0x4f8d('0x89')]();return db[_0x4f8d('0x34')]['find']({'where':{'id':_0x7040fc[_0x4f8d('0x49')]['id']}})['then'](function(_0x4ba5cc){return db['sequelize']['transaction'](function(_0x1535de){return _0x4ba5cc[_0x4f8d('0x76')](_0x7040fc[_0x4f8d('0x39')][_0x4f8d('0x69')],{'transaction':_0x1535de})[_0x4f8d('0x2f')](function(){if(!_[_0x4f8d('0x8a')](_0x5cd567)){return _0x4ba5cc[_0x4f8d('0x8b')](_0x5cd567,{'transaction':_0x1535de});}})['then'](function(){_0x5cd567[_0x4f8d('0x73')](function(_0x1fed85){socket[_0x4f8d('0x74')](_0x4f8d('0x8c'),{'UserId':_0x1fed85,'WhatsappQueueId':_0x4ba5cc['id']});});});});});});})['then'](respondWithStatusCode(_0x468b1f,null))[_0x4f8d('0x47')](handleError(_0x468b1f,null));};exports['addAgents']=function(_0x1178fa,_0x51663e,_0x2d8597){return db[_0x4f8d('0x34')]['find']({'where':{'id':_0x1178fa[_0x4f8d('0x49')]['id']}})[_0x4f8d('0x2f')](handleEntityNotFound(_0x51663e,null))[_0x4f8d('0x2f')](function(_0x3444bd){if(_0x3444bd){return _0x3444bd['addAgents'](_0x1178fa[_0x4f8d('0x56')][_0x4f8d('0x69')],_[_0x4f8d('0x8d')](_0x1178fa[_0x4f8d('0x56')],[_0x4f8d('0x69'),'id'])||{})[_0x4f8d('0x8e')](function(_0x16cfc4){for(var _0x5bb88e=0x0;_0x5bb88e<_0x1178fa[_0x4f8d('0x56')][_0x4f8d('0x69')][_0x4f8d('0x3f')];_0x5bb88e+=0x1){socket['emit'](_0x4f8d('0x75'),{'UserId':Number(_0x1178fa['body'][_0x4f8d('0x69')][_0x5bb88e]),'WhatsappQueueId':Number(_0x1178fa[_0x4f8d('0x49')]['id'])});}return _0x16cfc4;});}})['then'](respondWithResult(_0x51663e,null))[_0x4f8d('0x47')](handleError(_0x51663e,null));};exports[_0x4f8d('0x8b')]=function(_0x4d0f8a,_0x10e900,_0x17ab1c){return db['WhatsappQueue'][_0x4f8d('0x4d')]({'where':{'id':_0x4d0f8a[_0x4f8d('0x49')]['id']}})[_0x4f8d('0x2f')](handleEntityNotFound(_0x10e900,null))['then'](function(_0x13ae91){if(_0x13ae91){return _0x13ae91[_0x4f8d('0x8b')](_0x4d0f8a['query'][_0x4f8d('0x69')])[_0x4f8d('0x2f')](function(){if(_[_0x4f8d('0x8f')](_0x4d0f8a[_0x4f8d('0x39')][_0x4f8d('0x69')])){for(var _0x26a060=0x0;_0x26a060<_0x4d0f8a['query']['ids'][_0x4f8d('0x3f')];_0x26a060+=0x1){socket[_0x4f8d('0x74')](_0x4f8d('0x8c'),{'UserId':Number(_0x4d0f8a[_0x4f8d('0x39')][_0x4f8d('0x69')][_0x26a060]),'WhatsappQueueId':Number(_0x4d0f8a[_0x4f8d('0x49')]['id'])});}}else{socket[_0x4f8d('0x74')](_0x4f8d('0x8c'),{'UserId':Number(_0x4d0f8a[_0x4f8d('0x39')][_0x4f8d('0x69')]),'WhatsappQueueId':Number(_0x4d0f8a[_0x4f8d('0x49')]['id'])});}});}})[_0x4f8d('0x2f')](respondWithStatusCode(_0x10e900,null))[_0x4f8d('0x47')](handleError(_0x10e900,null));};exports[_0x4f8d('0x90')]=function(_0x1a5807,_0x2076ad,_0x6f16c){var _0x472ae1={};var _0x5cc3e5={};var _0x5d7697;var _0x3891dc;return db[_0x4f8d('0x34')][_0x4f8d('0x58')]({'where':{'id':_0x1a5807['params']['id']}})[_0x4f8d('0x2f')](handleEntityNotFound(_0x2076ad,null))[_0x4f8d('0x2f')](function(_0x67f551){if(_0x67f551){_0x5d7697=_0x67f551;_0x5cc3e5['model']=_[_0x4f8d('0x3a')](db[_0x4f8d('0x6b')][_0x4f8d('0x35')]);_0x5cc3e5[_0x4f8d('0x39')]=_['keys'](_0x1a5807[_0x4f8d('0x39')]);_0x5cc3e5[_0x4f8d('0x3b')]=_[_0x4f8d('0x3d')](_0x5cc3e5[_0x4f8d('0x38')],_0x5cc3e5['query']);_0x472ae1['attributes']=_['intersection'](_0x5cc3e5[_0x4f8d('0x38')],qs['fields'](_0x1a5807[_0x4f8d('0x39')]['fields']));_0x472ae1['attributes']=_0x472ae1[_0x4f8d('0x3c')][_0x4f8d('0x3f')]?_0x472ae1[_0x4f8d('0x3c')]:_0x5cc3e5[_0x4f8d('0x38')];_0x472ae1[_0x4f8d('0x42')]=qs[_0x4f8d('0x5a')](_0x1a5807[_0x4f8d('0x39')]['sort']);_0x472ae1['where']=qs[_0x4f8d('0x3b')](_[_0x4f8d('0x5b')](_0x1a5807[_0x4f8d('0x39')],_0x5cc3e5[_0x4f8d('0x3b')]));if(_0x1a5807[_0x4f8d('0x39')]['filter']){_0x472ae1[_0x4f8d('0x43')]=_[_0x4f8d('0x44')](_0x472ae1[_0x4f8d('0x43')],{'$or':_[_0x4f8d('0x33')](_0x472ae1[_0x4f8d('0x3c')],function(_0x2d2776){var _0x357833={};_0x357833[_0x2d2776]={'$like':'%'+_0x1a5807[_0x4f8d('0x39')][_0x4f8d('0x46')]+'%'};return _0x357833;})});}_0x472ae1=_[_0x4f8d('0x44')]({},_0x472ae1,_0x1a5807[_0x4f8d('0x4c')]);return _0x5d7697[_0x4f8d('0x90')](_0x472ae1);}})[_0x4f8d('0x2f')](function(_0x1ee06c){if(_0x1ee06c){_0x3891dc=_0x1ee06c[_0x4f8d('0x3f')];if(!_0x1a5807[_0x4f8d('0x39')]['hasOwnProperty'](_0x4f8d('0x41'))){_0x472ae1['limit']=qs[_0x4f8d('0x24')](_0x1a5807[_0x4f8d('0x39')][_0x4f8d('0x24')]);_0x472ae1['offset']=qs[_0x4f8d('0x22')](_0x1a5807[_0x4f8d('0x39')][_0x4f8d('0x22')]);}return _0x5d7697['getAgents'](_0x472ae1);}})[_0x4f8d('0x2f')](function(_0x1b60eb){if(_0x1b60eb){return _0x1b60eb?{'count':_0x3891dc,'rows':_0x1b60eb}:null;}})[_0x4f8d('0x2f')](respondWithResult(_0x2076ad,null))[_0x4f8d('0x47')](handleError(_0x2076ad,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb41=['setMaxListeners','save','update','emit','hook','exports','events','../../mysqldb','WhatsappQueue'];(function(_0x1c2ff4,_0x2a1ef6){var _0x50be31=function(_0x50fb9f){while(--_0x50fb9f){_0x1c2ff4['push'](_0x1c2ff4['shift']());}};_0x50be31(++_0x2a1ef6);}(_0xeb41,0x192));var _0x1eb4=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xeb41[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0x1eb4('0x0'));var WhatsappQueue=require(_0x1eb4('0x1'))['db'][_0x1eb4('0x2')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0x1eb4('0x3')](0x0);var events={'afterCreate':_0x1eb4('0x4'),'afterUpdate':_0x1eb4('0x5'),'afterDestroy':'remove'};function emitEvent(_0x7a6a4a){return function(_0x34714f,_0x3ea04b,_0x48b709){WhatsappQueueEvents[_0x1eb4('0x6')](_0x7a6a4a+':'+_0x34714f['id'],_0x34714f);WhatsappQueueEvents[_0x1eb4('0x6')](_0x7a6a4a,_0x34714f);_0x48b709(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappQueue[_0x1eb4('0x7')](e,emitEvent(event));}}module[_0x1eb4('0x8')]=WhatsappQueueEvents;
\ No newline at end of file
+var _0x387e=['exports','events','../../mysqldb','WhatsappQueue','setMaxListeners','save','update','emit','hook'];(function(_0x20589d,_0x55d5bf){var _0x422de9=function(_0x44cbbb){while(--_0x44cbbb){_0x20589d['push'](_0x20589d['shift']());}};_0x422de9(++_0x55d5bf);}(_0x387e,0x1a8));var _0xe387=function(_0x43a1b8,_0x1c90c8){_0x43a1b8=_0x43a1b8-0x0;var _0x324ecc=_0x387e[_0x43a1b8];return _0x324ecc;};'use strict';var EventEmitter=require(_0xe387('0x0'));var WhatsappQueue=require(_0xe387('0x1'))['db'][_0xe387('0x2')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0xe387('0x3')](0x0);var events={'afterCreate':_0xe387('0x4'),'afterUpdate':_0xe387('0x5'),'afterDestroy':'remove'};function emitEvent(_0x29156a){return function(_0xbe53ae,_0x2acccf,_0x276336){WhatsappQueueEvents[_0xe387('0x6')](_0x29156a+':'+_0xbe53ae['id'],_0xbe53ae);WhatsappQueueEvents[_0xe387('0x6')](_0x29156a,_0xbe53ae);_0x276336(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappQueue[_0xe387('0x7')](e,emitEvent(event));}}module[_0xe387('0x8')]=WhatsappQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7958=['util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./whatsappQueue.attributes','exports','whatsapp_queues','lodash'];(function(_0x6eb4cb,_0x6babc1){var _0x2876eb=function(_0x2740c3){while(--_0x2740c3){_0x6eb4cb['push'](_0x6eb4cb['shift']());}};_0x2876eb(++_0x6babc1);}(_0x7958,0xd0));var _0x8795=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x7958[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x8795('0x0'));var util=require(_0x8795('0x1'));var logger=require(_0x8795('0x2'))(_0x8795('0x3'));var moment=require('moment');var BPromise=require(_0x8795('0x4'));var rp=require(_0x8795('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8795('0x6'));var config=require(_0x8795('0x7'));var attributes=require(_0x8795('0x8'));module[_0x8795('0x9')]=function(_0x8c632,_0xee5d79){return _0x8c632['define']('WhatsappQueue',attributes,{'tableName':_0x8795('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6e87=['./whatsappQueue.attributes','exports','define','WhatsappQueue','lodash','../../config/logger','api','moment','bluebird','../../config/environment'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x6e87,0x19e));var _0x76e8=function(_0x5a4e67,_0x1bc05c){_0x5a4e67=_0x5a4e67-0x0;var _0x42df7a=_0x6e87[_0x5a4e67];return _0x42df7a;};'use strict';var _=require(_0x76e8('0x0'));var util=require('util');var logger=require(_0x76e8('0x1'))(_0x76e8('0x2'));var moment=require(_0x76e8('0x3'));var BPromise=require(_0x76e8('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x76e8('0x5'));var attributes=require(_0x76e8('0x6'));module[_0x76e8('0x7')]=function(_0x1b8892,_0x5f1050){return _0x1b8892[_0x76e8('0x8')](_0x76e8('0x9'),attributes,{'tableName':'whatsapp_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc759=['attributes','limit','map','include','model','GetWhatsappQueue','ShowWhatsappQueue','find','lodash','bluebird','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./whatsappQueue.socket','request','then','WhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','WhatsappQueue','findAll','options','raw','where'];(function(_0x1875c8,_0x4e5f7a){var _0x28ed91=function(_0x326695){while(--_0x326695){_0x1875c8['push'](_0x1875c8['shift']());}};_0x28ed91(++_0x4e5f7a);}(_0xc759,0x1c4));var _0x9c75=function(_0x496acf,_0x37c943){_0x496acf=_0x496acf-0x0;var _0x176089=_0xc759[_0x496acf];return _0x176089;};'use strict';var _=require(_0x9c75('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x9c75('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9c75('0x2'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x9c75('0x3'));var config=require(_0x9c75('0x4'));var jayson=require(_0x9c75('0x5'));var client=jayson[_0x9c75('0x6')][_0x9c75('0x7')]({'port':0x232a});config[_0x9c75('0x8')]=_['defaults'](config[_0x9c75('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0x9c75('0x9'))(new Redis(config[_0x9c75('0x8')]));require(_0x9c75('0xa'))['register'](socket);function respondWithRpcPromise(_0x45e677,_0x2ca803,_0x529367){return new BPromise(function(_0x21a512,_0x1a3f24){return client[_0x9c75('0xb')](_0x45e677,_0x529367)[_0x9c75('0xc')](function(_0x40bcc8){logger['info'](_0x9c75('0xd'),_0x2ca803,_0x9c75('0xe'));logger[_0x9c75('0xf')](_0x9c75('0x10'),_0x2ca803,_0x9c75('0xe'),JSON[_0x9c75('0x11')](_0x40bcc8));if(_0x40bcc8[_0x9c75('0x12')]){if(_0x40bcc8[_0x9c75('0x12')][_0x9c75('0x13')]===0x1f4){logger[_0x9c75('0x12')](_0x9c75('0xd'),_0x2ca803,_0x40bcc8[_0x9c75('0x12')]['message']);return _0x1a3f24(_0x40bcc8['error'][_0x9c75('0x14')]);}logger[_0x9c75('0x12')](_0x9c75('0xd'),_0x2ca803,_0x40bcc8[_0x9c75('0x12')][_0x9c75('0x14')]);return _0x21a512(_0x40bcc8[_0x9c75('0x12')][_0x9c75('0x14')]);}else{logger[_0x9c75('0x15')]('WhatsappQueue,\x20%s,\x20%s',_0x2ca803,_0x9c75('0xe'));_0x21a512(_0x40bcc8[_0x9c75('0x16')][_0x9c75('0x14')]);}})[_0x9c75('0x17')](function(_0x113580){logger[_0x9c75('0x12')](_0x9c75('0xd'),_0x2ca803,_0x113580);_0x1a3f24(_0x113580);});});}exports['GetWhatsappQueue']=function(_0x43ea7c){var _0x5b3151=this;return new Promise(function(_0x47fd6d,_0x19c9a2){return db[_0x9c75('0x18')][_0x9c75('0x19')]({'raw':_0x43ea7c[_0x9c75('0x1a')]?_0x43ea7c[_0x9c75('0x1a')][_0x9c75('0x1b')]===undefined?!![]:![]:!![],'where':_0x43ea7c[_0x9c75('0x1a')]?_0x43ea7c[_0x9c75('0x1a')][_0x9c75('0x1c')]||null:null,'attributes':_0x43ea7c['options']?_0x43ea7c['options'][_0x9c75('0x1d')]||null:null,'limit':_0x43ea7c[_0x9c75('0x1a')]?_0x43ea7c['options'][_0x9c75('0x1e')]||null:null,'include':_0x43ea7c[_0x9c75('0x1a')]?_0x43ea7c[_0x9c75('0x1a')]['include']?_[_0x9c75('0x1f')](_0x43ea7c[_0x9c75('0x1a')][_0x9c75('0x20')],function(_0x5c2480){return{'model':db[_0x5c2480[_0x9c75('0x21')]],'as':_0x5c2480['as'],'attributes':_0x5c2480[_0x9c75('0x1d')],'include':_0x5c2480[_0x9c75('0x20')]?_[_0x9c75('0x1f')](_0x5c2480[_0x9c75('0x20')],function(_0x1a0c52){return{'model':db[_0x1a0c52['model']],'as':_0x1a0c52['as'],'attributes':_0x1a0c52['attributes'],'include':_0x1a0c52[_0x9c75('0x20')]?_['map'](_0x1a0c52[_0x9c75('0x20')],function(_0x1d15fe){return{'model':db[_0x1d15fe[_0x9c75('0x21')]],'as':_0x1d15fe['as'],'attributes':_0x1d15fe[_0x9c75('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x9c75('0xc')](function(_0xb9fa20){logger[_0x9c75('0x15')](_0x9c75('0x22'),_0x43ea7c);logger[_0x9c75('0xf')](_0x9c75('0x22'),_0x43ea7c,JSON[_0x9c75('0x11')](_0xb9fa20));_0x47fd6d(_0xb9fa20);})[_0x9c75('0x17')](function(_0x40b723){logger[_0x9c75('0x12')](_0x9c75('0x22'),_0x40b723['message'],_0x43ea7c);_0x19c9a2(_0x5b3151[_0x9c75('0x12')](0x1f4,_0x40b723['message']));});});};exports[_0x9c75('0x23')]=function(_0x4edbb7){var _0x4a7bdb=this;return new Promise(function(_0x4204b3,_0x26203c){return db[_0x9c75('0x18')][_0x9c75('0x24')]({'raw':_0x4edbb7[_0x9c75('0x1a')]?_0x4edbb7[_0x9c75('0x1a')][_0x9c75('0x1b')]===undefined?!![]:![]:!![],'where':_0x4edbb7[_0x9c75('0x1a')]?_0x4edbb7[_0x9c75('0x1a')]['where']||null:null,'attributes':_0x4edbb7[_0x9c75('0x1a')]?_0x4edbb7['options']['attributes']||null:null,'include':_0x4edbb7[_0x9c75('0x1a')]?_0x4edbb7[_0x9c75('0x1a')]['include']?_[_0x9c75('0x1f')](_0x4edbb7['options'][_0x9c75('0x20')],function(_0x2f3748){return{'model':db[_0x2f3748[_0x9c75('0x21')]],'as':_0x2f3748['as'],'attributes':_0x2f3748[_0x9c75('0x1d')],'include':_0x2f3748[_0x9c75('0x20')]?_[_0x9c75('0x1f')](_0x2f3748[_0x9c75('0x20')],function(_0x76f9bc){return{'model':db[_0x76f9bc['model']],'as':_0x76f9bc['as'],'attributes':_0x76f9bc[_0x9c75('0x1d')],'include':_0x76f9bc['include']?_['map'](_0x76f9bc[_0x9c75('0x20')],function(_0x42a30e){return{'model':db[_0x42a30e[_0x9c75('0x21')]],'as':_0x42a30e['as'],'attributes':_0x42a30e[_0x9c75('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x9c75('0xc')](function(_0x5ac994){logger[_0x9c75('0x15')](_0x9c75('0x23'),_0x4edbb7);logger[_0x9c75('0xf')]('ShowWhatsappQueue',_0x4edbb7,JSON[_0x9c75('0x11')](_0x5ac994));_0x4204b3(_0x5ac994);})[_0x9c75('0x17')](function(_0x17b0ee){logger['error'](_0x9c75('0x23'),_0x17b0ee['message'],_0x4edbb7);_0x26203c(_0x4a7bdb['error'](0x1f4,_0x17b0ee[_0x9c75('0x14')]));});});};
\ No newline at end of file
+var _0x68cf=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','./whatsappQueue.socket','register','request','then','info','WhatsappQueue,\x20%s,\x20%s','WhatsappQueue,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetWhatsappQueue','WhatsappQueue','findAll','options','attributes','limit','include','map','model','find','where','ShowWhatsappQueue','stringify','lodash'];(function(_0x22d520,_0x2848ce){var _0x2b9844=function(_0x4942a7){while(--_0x4942a7){_0x22d520['push'](_0x22d520['shift']());}};_0x2b9844(++_0x2848ce);}(_0x68cf,0xa3));var _0xf68c=function(_0x246517,_0x5ca29e){_0x246517=_0x246517-0x0;var _0x2b2eb1=_0x68cf[_0x246517];return _0x2b2eb1;};'use strict';var _=require(_0xf68c('0x0'));var util=require(_0xf68c('0x1'));var moment=require(_0xf68c('0x2'));var BPromise=require(_0xf68c('0x3'));var rs=require(_0xf68c('0x4'));var fs=require('fs');var Redis=require(_0xf68c('0x5'));var db=require(_0xf68c('0x6'))['db'];var utils=require(_0xf68c('0x7'));var logger=require('../../config/logger')(_0xf68c('0x8'));var config=require(_0xf68c('0x9'));var jayson=require(_0xf68c('0xa'));var client=jayson[_0xf68c('0xb')]['http']({'port':0x232a});config[_0xf68c('0xc')]=_[_0xf68c('0xd')](config[_0xf68c('0xc')],{'host':_0xf68c('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xf68c('0xf'))[_0xf68c('0x10')](socket);function respondWithRpcPromise(_0x2dad52,_0x2d76d8,_0x3e6281){return new BPromise(function(_0x548dd9,_0x3f28a1){return client[_0xf68c('0x11')](_0x2dad52,_0x3e6281)[_0xf68c('0x12')](function(_0x5d08bf){logger[_0xf68c('0x13')](_0xf68c('0x14'),_0x2d76d8,'request\x20sent');logger['debug'](_0xf68c('0x15'),_0x2d76d8,_0xf68c('0x16'),JSON['stringify'](_0x5d08bf));if(_0x5d08bf[_0xf68c('0x17')]){if(_0x5d08bf['error'][_0xf68c('0x18')]===0x1f4){logger[_0xf68c('0x17')]('WhatsappQueue,\x20%s,\x20%s',_0x2d76d8,_0x5d08bf[_0xf68c('0x17')][_0xf68c('0x19')]);return _0x3f28a1(_0x5d08bf[_0xf68c('0x17')][_0xf68c('0x19')]);}logger['error'](_0xf68c('0x14'),_0x2d76d8,_0x5d08bf[_0xf68c('0x17')][_0xf68c('0x19')]);return _0x548dd9(_0x5d08bf['error'][_0xf68c('0x19')]);}else{logger['info'](_0xf68c('0x14'),_0x2d76d8,'request\x20sent');_0x548dd9(_0x5d08bf[_0xf68c('0x1a')]['message']);}})[_0xf68c('0x1b')](function(_0x163cf7){logger['error']('WhatsappQueue,\x20%s,\x20%s',_0x2d76d8,_0x163cf7);_0x3f28a1(_0x163cf7);});});}exports[_0xf68c('0x1c')]=function(_0x107a5d){var _0x252664=this;return new Promise(function(_0x384ed3,_0x2867b9){return db[_0xf68c('0x1d')][_0xf68c('0x1e')]({'raw':_0x107a5d['options']?_0x107a5d[_0xf68c('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x107a5d['options']?_0x107a5d[_0xf68c('0x1f')]['where']||null:null,'attributes':_0x107a5d[_0xf68c('0x1f')]?_0x107a5d[_0xf68c('0x1f')][_0xf68c('0x20')]||null:null,'limit':_0x107a5d[_0xf68c('0x1f')]?_0x107a5d[_0xf68c('0x1f')][_0xf68c('0x21')]||null:null,'include':_0x107a5d[_0xf68c('0x1f')]?_0x107a5d[_0xf68c('0x1f')][_0xf68c('0x22')]?_[_0xf68c('0x23')](_0x107a5d[_0xf68c('0x1f')]['include'],function(_0x4f7fbe){return{'model':db[_0x4f7fbe[_0xf68c('0x24')]],'as':_0x4f7fbe['as'],'attributes':_0x4f7fbe['attributes'],'include':_0x4f7fbe[_0xf68c('0x22')]?_[_0xf68c('0x23')](_0x4f7fbe[_0xf68c('0x22')],function(_0x5c4c9b){return{'model':db[_0x5c4c9b[_0xf68c('0x24')]],'as':_0x5c4c9b['as'],'attributes':_0x5c4c9b[_0xf68c('0x20')],'include':_0x5c4c9b['include']?_[_0xf68c('0x23')](_0x5c4c9b['include'],function(_0x428058){return{'model':db[_0x428058[_0xf68c('0x24')]],'as':_0x428058['as'],'attributes':_0x428058[_0xf68c('0x20')]};}):[]};}):[]};}):[]:[]})[_0xf68c('0x12')](function(_0x2f7d39){logger[_0xf68c('0x13')](_0xf68c('0x1c'),_0x107a5d);logger['debug'](_0xf68c('0x1c'),_0x107a5d,JSON['stringify'](_0x2f7d39));_0x384ed3(_0x2f7d39);})['catch'](function(_0x464b1e){logger[_0xf68c('0x17')](_0xf68c('0x1c'),_0x464b1e['message'],_0x107a5d);_0x2867b9(_0x252664[_0xf68c('0x17')](0x1f4,_0x464b1e[_0xf68c('0x19')]));});});};exports['ShowWhatsappQueue']=function(_0x4f90a5){var _0x1e2e04=this;return new Promise(function(_0x5123e5,_0x48e045){return db[_0xf68c('0x1d')][_0xf68c('0x25')]({'raw':_0x4f90a5[_0xf68c('0x1f')]?_0x4f90a5[_0xf68c('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x4f90a5[_0xf68c('0x1f')]?_0x4f90a5[_0xf68c('0x1f')][_0xf68c('0x26')]||null:null,'attributes':_0x4f90a5['options']?_0x4f90a5[_0xf68c('0x1f')][_0xf68c('0x20')]||null:null,'include':_0x4f90a5[_0xf68c('0x1f')]?_0x4f90a5[_0xf68c('0x1f')][_0xf68c('0x22')]?_[_0xf68c('0x23')](_0x4f90a5[_0xf68c('0x1f')]['include'],function(_0xef3280){return{'model':db[_0xef3280[_0xf68c('0x24')]],'as':_0xef3280['as'],'attributes':_0xef3280[_0xf68c('0x20')],'include':_0xef3280[_0xf68c('0x22')]?_[_0xf68c('0x23')](_0xef3280[_0xf68c('0x22')],function(_0x586145){return{'model':db[_0x586145[_0xf68c('0x24')]],'as':_0x586145['as'],'attributes':_0x586145['attributes'],'include':_0x586145[_0xf68c('0x22')]?_[_0xf68c('0x23')](_0x586145['include'],function(_0x5a85cb){return{'model':db[_0x5a85cb[_0xf68c('0x24')]],'as':_0x5a85cb['as'],'attributes':_0x5a85cb[_0xf68c('0x20')]};}):[]};}):[]};}):[]:[]})[_0xf68c('0x12')](function(_0x454c69){logger[_0xf68c('0x13')]('ShowWhatsappQueue',_0x4f90a5);logger['debug'](_0xf68c('0x27'),_0x4f90a5,JSON[_0xf68c('0x28')](_0x454c69));_0x5123e5(_0x454c69);})[_0xf68c('0x1b')](function(_0x53a959){logger[_0xf68c('0x17')](_0xf68c('0x27'),_0x53a959[_0xf68c('0x19')],_0x4f90a5);_0x48e045(_0x1e2e04[_0xf68c('0x17')](0x1f4,_0x53a959[_0xf68c('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ccf=['./whatsappQueue.events','save','remove','update','removeListener','register','length','whatsappQueue:'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0ccf,0xb8));var _0xf0cc=function(_0x21d6ea,_0x5c79ea){_0x21d6ea=_0x21d6ea-0x0;var _0x3dd45d=_0x0ccf[_0x21d6ea];return _0x3dd45d;};'use strict';var WhatsappQueueEvents=require(_0xf0cc('0x0'));var events=[_0xf0cc('0x1'),_0xf0cc('0x2'),_0xf0cc('0x3')];function createListener(_0x2c9c0a,_0x2bbf10){return function(_0x9830ae){_0x2bbf10['emit'](_0x2c9c0a,_0x9830ae);};}function removeListener(_0x4b43e1,_0x5bf489){return function(){WhatsappQueueEvents[_0xf0cc('0x4')](_0x4b43e1,_0x5bf489);};}exports[_0xf0cc('0x5')]=function(_0x3bf81b){for(var _0x297cd2=0x0,_0x4bc202=events[_0xf0cc('0x6')];_0x297cd2<_0x4bc202;_0x297cd2++){var _0x287314=events[_0x297cd2];var _0x14b178=createListener(_0xf0cc('0x7')+_0x287314,_0x3bf81b);WhatsappQueueEvents['on'](_0x287314,_0x14b178);}};
\ No newline at end of file
+var _0x5469=['emit','removeListener','./whatsappQueue.events','save','remove','update'];(function(_0x3ab0d0,_0x946c4e){var _0x3ee9a7=function(_0x24281b){while(--_0x24281b){_0x3ab0d0['push'](_0x3ab0d0['shift']());}};_0x3ee9a7(++_0x946c4e);}(_0x5469,0x1ca));var _0x9546=function(_0x1dfa63,_0x362bd4){_0x1dfa63=_0x1dfa63-0x0;var _0x26f2a9=_0x5469[_0x1dfa63];return _0x26f2a9;};'use strict';var WhatsappQueueEvents=require(_0x9546('0x0'));var events=[_0x9546('0x1'),_0x9546('0x2'),_0x9546('0x3')];function createListener(_0x368f3b,_0x530916){return function(_0x11f451){_0x530916[_0x9546('0x4')](_0x368f3b,_0x11f451);};}function removeListener(_0x16f351,_0x4e9395){return function(){WhatsappQueueEvents[_0x9546('0x5')](_0x16f351,_0x4e9395);};}exports['register']=function(_0x3c9ec7){for(var _0x1a00b6=0x0,_0x44beb6=events['length'];_0x1a00b6<_0x44beb6;_0x1a00b6++){var _0x2e05a4=events[_0x1a00b6];var _0x44b628=createListener('whatsappQueue:'+_0x2e05a4,_0x3c9ec7);WhatsappQueueEvents['on'](_0x2e05a4,_0x44b628);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb263=['destroy','util','path','express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe','describe','/:id','show','update'];(function(_0x1b36ac,_0x27aa0b){var _0x2a992c=function(_0x19a3d9){while(--_0x19a3d9){_0x1b36ac['push'](_0x1b36ac['shift']());}};_0x2a992c(++_0x27aa0b);}(_0xb263,0x1eb));var _0x3b26=function(_0x2d7853,_0x537281){_0x2d7853=_0x2d7853-0x0;var _0x4af9f6=_0xb263[_0x2d7853];return _0x4af9f6;};'use strict';var multer=require('multer');var util=require(_0x3b26('0x0'));var path=require(_0x3b26('0x1'));var timeout=require('connect-timeout');var express=require(_0x3b26('0x2'));var router=express[_0x3b26('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x3b26('0x4'));var config=require(_0x3b26('0x5'));var controller=require('./whatsappQueueReport.controller');router[_0x3b26('0x6')]('/',auth[_0x3b26('0x7')](),controller['index']);router['get'](_0x3b26('0x8'),auth[_0x3b26('0x7')](),controller[_0x3b26('0x9')]);router['get'](_0x3b26('0xa'),auth[_0x3b26('0x7')](),controller[_0x3b26('0xb')]);router['post']('/',auth[_0x3b26('0x7')](),controller['create']);router['put'](_0x3b26('0xa'),auth[_0x3b26('0x7')](),controller[_0x3b26('0xc')]);router['delete'](_0x3b26('0xa'),auth[_0x3b26('0x7')](),controller[_0x3b26('0xd')]);module['exports']=router;
\ No newline at end of file
+var _0x3392=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueueReport.controller','get','isAuthenticated','post','put','delete','/:id','destroy','exports','util','path','connect-timeout','express'];(function(_0x2faa85,_0x5a3620){var _0x16095b=function(_0x3d1154){while(--_0x3d1154){_0x2faa85['push'](_0x2faa85['shift']());}};_0x16095b(++_0x5a3620);}(_0x3392,0xb7));var _0x2339=function(_0x2cace8,_0x4fa6eb){_0x2cace8=_0x2cace8-0x0;var _0x560128=_0x3392[_0x2cace8];return _0x560128;};'use strict';var multer=require('multer');var util=require(_0x2339('0x0'));var path=require(_0x2339('0x1'));var timeout=require(_0x2339('0x2'));var express=require(_0x2339('0x3'));var router=express['Router']();var fs_extra=require(_0x2339('0x4'));var auth=require(_0x2339('0x5'));var interaction=require(_0x2339('0x6'));var config=require(_0x2339('0x7'));var controller=require(_0x2339('0x8'));router[_0x2339('0x9')]('/',auth[_0x2339('0xa')](),controller['index']);router[_0x2339('0x9')]('/describe',auth[_0x2339('0xa')](),controller['describe']);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0x2339('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x2339('0xc')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x2339('0xd')](_0x2339('0xe'),auth[_0x2339('0xa')](),controller[_0x2339('0xf')]);module[_0x2339('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['STRING','DATE','sequelize','exports'];(function(_0x35d018,_0x956f27){var _0x173490=function(_0x82f543){while(--_0x82f543){_0x35d018['push'](_0x35d018['shift']());}};_0x173490(++_0x956f27);}(_0x7a54,0x106));var _0x47a5=function(_0x397685,_0xfbd645){_0x397685=_0x397685-0x0;var _0x326b42=_0x7a54[_0x397685];return _0x326b42;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'uniqueid':{'type':Sequelize[_0x47a5('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x47a5('0x3')]},'leaveAt':{'type':Sequelize[_0x47a5('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x47a5('0x3')]},'reason':{'type':Sequelize[_0x47a5('0x2')]}};
\ No newline at end of file
+var _0x7a54=['STRING','DATE','sequelize','exports'];(function(_0x5da697,_0x5594ca){var _0x5d6b02=function(_0x5629a2){while(--_0x5629a2){_0x5da697['push'](_0x5da697['shift']());}};_0x5d6b02(++_0x5594ca);}(_0x7a54,0x106));var _0x47a5=function(_0x5e5599,_0x2b3696){_0x5e5599=_0x5e5599-0x0;var _0x3994a0=_0x7a54[_0x5e5599];return _0x3994a0;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'uniqueid':{'type':Sequelize[_0x47a5('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x47a5('0x3')]},'leaveAt':{'type':Sequelize[_0x47a5('0x3')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x47a5('0x3')]},'reason':{'type':Sequelize[_0x47a5('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf66=['json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','stack','name','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','WhatsappQueueReport','catch','show','params','rawAttributes','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','sendStatus','status','end'];(function(_0x3ee7d7,_0x47ff89){var _0x51c014=function(_0x4f3279){while(--_0x4f3279){_0x3ee7d7['push'](_0x3ee7d7['shift']());}};_0x51c014(++_0x47ff89);}(_0xcf66,0x71));var _0x6cf6=function(_0x2b9516,_0x3bdf15){_0x2b9516=_0x2b9516-0x0;var _0x524633=_0xcf66[_0x2b9516];return _0x524633;};'use strict';var emlformat=require(_0x6cf6('0x0'));var rimraf=require(_0x6cf6('0x1'));var zipdir=require(_0x6cf6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6cf6('0x3'));var moment=require(_0x6cf6('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x6cf6('0x5'));var path=require(_0x6cf6('0x6'));var sox=require('sox');var csv=require(_0x6cf6('0x7'));var ejs=require(_0x6cf6('0x8'));var fs=require('fs');var fs_extra=require(_0x6cf6('0x9'));var _=require('lodash');var squel=require(_0x6cf6('0xa'));var crypto=require(_0x6cf6('0xb'));var jsforce=require(_0x6cf6('0xc'));var deskjs=require(_0x6cf6('0xd'));var toCsv=require(_0x6cf6('0x7'));var querystring=require(_0x6cf6('0xe'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6cf6('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6cf6('0x10'));var logger=require(_0x6cf6('0x11'))(_0x6cf6('0x12'));var utils=require(_0x6cf6('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3fdfea,_0x13b1ad){_0x13b1ad=_0x13b1ad||0xcc;return function(_0x372d12){if(_0x372d12){return _0x3fdfea[_0x6cf6('0x14')](_0x13b1ad);}return _0x3fdfea[_0x6cf6('0x15')](_0x13b1ad)[_0x6cf6('0x16')]();};}function respondWithResult(_0x57909f,_0x32fe64){_0x32fe64=_0x32fe64||0xc8;return function(_0x494ece){if(_0x494ece){return _0x57909f[_0x6cf6('0x15')](_0x32fe64)[_0x6cf6('0x17')](_0x494ece);}};}function respondWithFilteredResult(_0x4b073f,_0x40e413){return function(_0x1b40f8){if(_0x1b40f8){var _0x2d23ab=typeof _0x40e413[_0x6cf6('0x18')]===_0x6cf6('0x19')&&typeof _0x40e413[_0x6cf6('0x1a')]===_0x6cf6('0x19');var _0x39ec25=_0x1b40f8[_0x6cf6('0x1b')];var _0x2ca2b1=_0x2d23ab?0x0:_0x40e413['offset'];var _0x11d994=_0x2d23ab?_0x1b40f8[_0x6cf6('0x1b')]:_0x40e413[_0x6cf6('0x18')]+_0x40e413['limit'];var _0x18abd9;if(_0x11d994>=_0x39ec25){_0x11d994=_0x39ec25;_0x18abd9=0xc8;}else{_0x18abd9=0xce;}_0x4b073f[_0x6cf6('0x15')](_0x18abd9);return _0x4b073f[_0x6cf6('0x1c')](_0x6cf6('0x1d'),_0x2ca2b1+'-'+_0x11d994+'/'+_0x39ec25)[_0x6cf6('0x17')](_0x1b40f8);}return null;};}function patchUpdates(_0x21e903){return function(_0x123993){try{jsonpatch['apply'](_0x123993,_0x21e903,!![]);}catch(_0x19f2cd){return BPromise[_0x6cf6('0x1e')](_0x19f2cd);}return _0x123993[_0x6cf6('0x1f')]();};}function saveUpdates(_0x380a40,_0x5cba3a){return function(_0x470ea4){if(_0x470ea4){return _0x470ea4[_0x6cf6('0x20')](_0x380a40)[_0x6cf6('0x21')](function(_0x5b2767){return _0x5b2767;});}return null;};}function removeEntity(_0x5b30e0,_0x276225){return function(_0x59f838){if(_0x59f838){return _0x59f838[_0x6cf6('0x22')]()[_0x6cf6('0x21')](function(){_0x5b30e0[_0x6cf6('0x15')](0xcc)[_0x6cf6('0x16')]();});}};}function handleEntityNotFound(_0x3f9871,_0x565fad){return function(_0x1c966e){if(!_0x1c966e){_0x3f9871['sendStatus'](0x194);}return _0x1c966e;};}function handleError(_0x2779b7,_0xc7b489){_0xc7b489=_0xc7b489||0x1f4;return function(_0x3eaa31){logger['error'](_0x3eaa31[_0x6cf6('0x23')]);if(_0x3eaa31[_0x6cf6('0x24')]){delete _0x3eaa31[_0x6cf6('0x24')];}_0x2779b7[_0x6cf6('0x15')](_0xc7b489)['send'](_0x3eaa31);};}exports['index']=function(_0x2afe84,_0x4521af){var _0x57099f={},_0x5869e9={},_0x5ccc8f={'count':0x0,'rows':[]};var _0x2afc06=_['map'](db['WhatsappQueueReport']['rawAttributes'],function(_0x10bde5){return{'name':_0x10bde5[_0x6cf6('0x25')],'type':_0x10bde5[_0x6cf6('0x26')][_0x6cf6('0x27')]};});_0x5869e9[_0x6cf6('0x28')]=_['map'](_0x2afc06,_0x6cf6('0x24'));_0x5869e9[_0x6cf6('0x29')]=_[_0x6cf6('0x2a')](_0x2afe84['query']);_0x5869e9[_0x6cf6('0x2b')]=_[_0x6cf6('0x2c')](_0x5869e9[_0x6cf6('0x28')],_0x5869e9[_0x6cf6('0x29')]);_0x57099f[_0x6cf6('0x2d')]=_[_0x6cf6('0x2c')](_0x5869e9[_0x6cf6('0x28')],qs[_0x6cf6('0x2e')](_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x2e')]));_0x57099f[_0x6cf6('0x2d')]=_0x57099f[_0x6cf6('0x2d')][_0x6cf6('0x2f')]?_0x57099f[_0x6cf6('0x2d')]:_0x5869e9[_0x6cf6('0x28')];if(!_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x30')](_0x6cf6('0x31'))){_0x57099f['limit']=qs[_0x6cf6('0x1a')](_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x1a')]);_0x57099f[_0x6cf6('0x18')]=qs[_0x6cf6('0x18')](_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x18')]);}_0x57099f[_0x6cf6('0x32')]=qs[_0x6cf6('0x33')](_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x33')]);_0x57099f['where']=qs[_0x6cf6('0x2b')](_[_0x6cf6('0x34')](_0x2afe84[_0x6cf6('0x29')],_0x5869e9[_0x6cf6('0x2b')]),_0x2afc06);if(_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x35')]){_0x57099f[_0x6cf6('0x36')]=_[_0x6cf6('0x37')](_0x57099f[_0x6cf6('0x36')],{'$or':_['map'](_0x2afc06,function(_0x1c5eda){if(_0x1c5eda[_0x6cf6('0x26')]!==_0x6cf6('0x38')){var _0x3e906f={};_0x3e906f[_0x1c5eda[_0x6cf6('0x24')]]={'$like':'%'+_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x35')]+'%'};return _0x3e906f;}})});}_0x57099f=_[_0x6cf6('0x37')]({},_0x57099f,_0x2afe84[_0x6cf6('0x39')]);var _0x5ed61f={'where':_0x57099f[_0x6cf6('0x36')]};return db['WhatsappQueueReport'][_0x6cf6('0x1b')](_0x5ed61f)[_0x6cf6('0x21')](function(_0x23d280){_0x5ccc8f[_0x6cf6('0x1b')]=_0x23d280;if(_0x2afe84[_0x6cf6('0x29')][_0x6cf6('0x3a')]){_0x57099f[_0x6cf6('0x3b')]=[{'all':!![]}];}return db[_0x6cf6('0x3c')]['findAll'](_0x57099f);})[_0x6cf6('0x21')](function(_0x335dce){_0x5ccc8f['rows']=_0x335dce;return _0x5ccc8f;})[_0x6cf6('0x21')](respondWithFilteredResult(_0x4521af,_0x57099f))[_0x6cf6('0x3d')](handleError(_0x4521af,null));};exports[_0x6cf6('0x3e')]=function(_0x4874c0,_0x10bb9b){var _0x128f7a={'raw':!![],'where':{'id':_0x4874c0[_0x6cf6('0x3f')]['id']}},_0x51d915={};_0x51d915[_0x6cf6('0x28')]=_[_0x6cf6('0x2a')](db[_0x6cf6('0x3c')][_0x6cf6('0x40')]);_0x51d915[_0x6cf6('0x29')]=_[_0x6cf6('0x2a')](_0x4874c0['query']);_0x51d915[_0x6cf6('0x2b')]=_['intersection'](_0x51d915[_0x6cf6('0x28')],_0x51d915[_0x6cf6('0x29')]);_0x128f7a['attributes']=_[_0x6cf6('0x2c')](_0x51d915[_0x6cf6('0x28')],qs[_0x6cf6('0x2e')](_0x4874c0[_0x6cf6('0x29')][_0x6cf6('0x2e')]));_0x128f7a['attributes']=_0x128f7a[_0x6cf6('0x2d')][_0x6cf6('0x2f')]?_0x128f7a[_0x6cf6('0x2d')]:_0x51d915['model'];if(_0x4874c0[_0x6cf6('0x29')][_0x6cf6('0x3a')]){_0x128f7a[_0x6cf6('0x3b')]=[{'all':!![]}];}_0x128f7a=_['merge']({},_0x128f7a,_0x4874c0[_0x6cf6('0x39')]);return db['WhatsappQueueReport']['find'](_0x128f7a)[_0x6cf6('0x21')](handleEntityNotFound(_0x10bb9b,null))[_0x6cf6('0x21')](respondWithResult(_0x10bb9b,null))[_0x6cf6('0x3d')](handleError(_0x10bb9b,null));};exports[_0x6cf6('0x41')]=function(_0xb8788a,_0x311745){return db[_0x6cf6('0x3c')][_0x6cf6('0x41')](_0xb8788a[_0x6cf6('0x42')],{})[_0x6cf6('0x21')](respondWithResult(_0x311745,0xc9))[_0x6cf6('0x3d')](handleError(_0x311745,null));};exports[_0x6cf6('0x20')]=function(_0x3786d1,_0x4c8ada){if(_0x3786d1[_0x6cf6('0x42')]['id']){delete _0x3786d1[_0x6cf6('0x42')]['id'];}return db['WhatsappQueueReport']['find']({'where':{'id':_0x3786d1[_0x6cf6('0x3f')]['id']}})[_0x6cf6('0x21')](handleEntityNotFound(_0x4c8ada,null))[_0x6cf6('0x21')](saveUpdates(_0x3786d1[_0x6cf6('0x42')],null))[_0x6cf6('0x21')](respondWithResult(_0x4c8ada,null))[_0x6cf6('0x3d')](handleError(_0x4c8ada,null));};exports['destroy']=function(_0x115b9b,_0x262c23){return db[_0x6cf6('0x3c')]['find']({'where':{'id':_0x115b9b['params']['id']}})[_0x6cf6('0x21')](handleEntityNotFound(_0x262c23,null))[_0x6cf6('0x21')](removeEntity(_0x262c23,null))[_0x6cf6('0x3d')](handleError(_0x262c23,null));};exports[_0x6cf6('0x43')]=function(_0x2dbd71,_0x1fb6f1){return db[_0x6cf6('0x3c')][_0x6cf6('0x43')]()[_0x6cf6('0x21')](respondWithResult(_0x1fb6f1,null))[_0x6cf6('0x3d')](handleError(_0x1fb6f1,null));};
\ No newline at end of file
+var _0xb58b=['save','update','destroy','then','error','stack','name','send','index','map','WhatsappQueueReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','options','include','findAll','rows','catch','find','create','body','params','describe','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','count','limit','set','Content-Range','apply','reject'];(function(_0x15f15d,_0x445248){var _0x1bdab0=function(_0x5f06d8){while(--_0x5f06d8){_0x15f15d['push'](_0x15f15d['shift']());}};_0x1bdab0(++_0x445248);}(_0xb58b,0x1f1));var _0xbb58=function(_0x5e71c8,_0xe96cb2){_0x5e71c8=_0x5e71c8-0x0;var _0x3fdee9=_0xb58b[_0x5e71c8];return _0x3fdee9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbb58('0x0'));var zipdir=require(_0xbb58('0x1'));var jsonpatch=require(_0xbb58('0x2'));var rp=require('request-promise');var moment=require(_0xbb58('0x3'));var BPromise=require(_0xbb58('0x4'));var Mustache=require('mustache');var util=require(_0xbb58('0x5'));var path=require('path');var sox=require(_0xbb58('0x6'));var csv=require(_0xbb58('0x7'));var ejs=require(_0xbb58('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbb58('0x9'));var squel=require(_0xbb58('0xa'));var crypto=require(_0xbb58('0xb'));var jsforce=require(_0xbb58('0xc'));var deskjs=require(_0xbb58('0xd'));var toCsv=require(_0xbb58('0x7'));var querystring=require(_0xbb58('0xe'));var Papa=require(_0xbb58('0xf'));var Redis=require(_0xbb58('0x10'));var authService=require(_0xbb58('0x11'));var qs=require(_0xbb58('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbb58('0x13'));var logger=require('../../config/logger')(_0xbb58('0x14'));var utils=require(_0xbb58('0x15'));var config=require(_0xbb58('0x16'));var licenseUtil=require(_0xbb58('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xe88799,_0x18810f){_0x18810f=_0x18810f||0xcc;return function(_0x4cda21){if(_0x4cda21){return _0xe88799[_0xbb58('0x18')](_0x18810f);}return _0xe88799[_0xbb58('0x19')](_0x18810f)[_0xbb58('0x1a')]();};}function respondWithResult(_0x3b9406,_0x19ceda){_0x19ceda=_0x19ceda||0xc8;return function(_0x58245f){if(_0x58245f){return _0x3b9406[_0xbb58('0x19')](_0x19ceda)[_0xbb58('0x1b')](_0x58245f);}};}function respondWithFilteredResult(_0x5f4751,_0x4ba30e){return function(_0x33c20f){if(_0x33c20f){var _0x445b1f=typeof _0x4ba30e[_0xbb58('0x1c')]==='undefined'&&typeof _0x4ba30e['limit']==='undefined';var _0x55156e=_0x33c20f[_0xbb58('0x1d')];var _0x3134ea=_0x445b1f?0x0:_0x4ba30e['offset'];var _0xbee66=_0x445b1f?_0x33c20f['count']:_0x4ba30e[_0xbb58('0x1c')]+_0x4ba30e[_0xbb58('0x1e')];var _0x3c33d9;if(_0xbee66>=_0x55156e){_0xbee66=_0x55156e;_0x3c33d9=0xc8;}else{_0x3c33d9=0xce;}_0x5f4751[_0xbb58('0x19')](_0x3c33d9);return _0x5f4751[_0xbb58('0x1f')](_0xbb58('0x20'),_0x3134ea+'-'+_0xbee66+'/'+_0x55156e)[_0xbb58('0x1b')](_0x33c20f);}return null;};}function patchUpdates(_0x497fd0){return function(_0x84f34){try{jsonpatch[_0xbb58('0x21')](_0x84f34,_0x497fd0,!![]);}catch(_0x3e64fe){return BPromise[_0xbb58('0x22')](_0x3e64fe);}return _0x84f34[_0xbb58('0x23')]();};}function saveUpdates(_0x5d4a91,_0x49453a){return function(_0x350be7){if(_0x350be7){return _0x350be7[_0xbb58('0x24')](_0x5d4a91)['then'](function(_0x27806d){return _0x27806d;});}return null;};}function removeEntity(_0x53b693,_0x21964d){return function(_0x287822){if(_0x287822){return _0x287822[_0xbb58('0x25')]()[_0xbb58('0x26')](function(){_0x53b693[_0xbb58('0x19')](0xcc)[_0xbb58('0x1a')]();});}};}function handleEntityNotFound(_0x2d556a,_0x15e4c5){return function(_0x4e0303){if(!_0x4e0303){_0x2d556a[_0xbb58('0x18')](0x194);}return _0x4e0303;};}function handleError(_0x3bd550,_0x1be0ae){_0x1be0ae=_0x1be0ae||0x1f4;return function(_0x129094){logger[_0xbb58('0x27')](_0x129094[_0xbb58('0x28')]);if(_0x129094[_0xbb58('0x29')]){delete _0x129094[_0xbb58('0x29')];}_0x3bd550[_0xbb58('0x19')](_0x1be0ae)[_0xbb58('0x2a')](_0x129094);};}exports[_0xbb58('0x2b')]=function(_0x28b3a3,_0x2a0481){var _0x4157c4={},_0x3559b6={},_0x573cca={'count':0x0,'rows':[]};var _0x2b0f73=_[_0xbb58('0x2c')](db[_0xbb58('0x2d')][_0xbb58('0x2e')],function(_0x3304b9){return{'name':_0x3304b9[_0xbb58('0x2f')],'type':_0x3304b9[_0xbb58('0x30')][_0xbb58('0x31')]};});_0x3559b6[_0xbb58('0x32')]=_['map'](_0x2b0f73,_0xbb58('0x29'));_0x3559b6[_0xbb58('0x33')]=_[_0xbb58('0x34')](_0x28b3a3[_0xbb58('0x33')]);_0x3559b6[_0xbb58('0x35')]=_[_0xbb58('0x36')](_0x3559b6[_0xbb58('0x32')],_0x3559b6[_0xbb58('0x33')]);_0x4157c4[_0xbb58('0x37')]=_[_0xbb58('0x36')](_0x3559b6[_0xbb58('0x32')],qs[_0xbb58('0x38')](_0x28b3a3[_0xbb58('0x33')]['fields']));_0x4157c4['attributes']=_0x4157c4['attributes'][_0xbb58('0x39')]?_0x4157c4[_0xbb58('0x37')]:_0x3559b6[_0xbb58('0x32')];if(!_0x28b3a3[_0xbb58('0x33')][_0xbb58('0x3a')](_0xbb58('0x3b'))){_0x4157c4[_0xbb58('0x1e')]=qs[_0xbb58('0x1e')](_0x28b3a3['query'][_0xbb58('0x1e')]);_0x4157c4[_0xbb58('0x1c')]=qs['offset'](_0x28b3a3[_0xbb58('0x33')]['offset']);}_0x4157c4[_0xbb58('0x3c')]=qs['sort'](_0x28b3a3[_0xbb58('0x33')][_0xbb58('0x3d')]);_0x4157c4['where']=qs[_0xbb58('0x35')](_[_0xbb58('0x3e')](_0x28b3a3[_0xbb58('0x33')],_0x3559b6[_0xbb58('0x35')]),_0x2b0f73);if(_0x28b3a3[_0xbb58('0x33')][_0xbb58('0x3f')]){_0x4157c4[_0xbb58('0x40')]=_[_0xbb58('0x41')](_0x4157c4['where'],{'$or':_[_0xbb58('0x2c')](_0x2b0f73,function(_0x31aa4b){if(_0x31aa4b[_0xbb58('0x30')]!=='VIRTUAL'){var _0x4dbd5e={};_0x4dbd5e[_0x31aa4b[_0xbb58('0x29')]]={'$like':'%'+_0x28b3a3['query'][_0xbb58('0x3f')]+'%'};return _0x4dbd5e;}})});}_0x4157c4=_[_0xbb58('0x41')]({},_0x4157c4,_0x28b3a3[_0xbb58('0x42')]);var _0x560911={'where':_0x4157c4['where']};return db[_0xbb58('0x2d')][_0xbb58('0x1d')](_0x560911)[_0xbb58('0x26')](function(_0x24d82d){_0x573cca[_0xbb58('0x1d')]=_0x24d82d;if(_0x28b3a3[_0xbb58('0x33')]['includeAll']){_0x4157c4[_0xbb58('0x43')]=[{'all':!![]}];}return db[_0xbb58('0x2d')][_0xbb58('0x44')](_0x4157c4);})[_0xbb58('0x26')](function(_0x1185b3){_0x573cca[_0xbb58('0x45')]=_0x1185b3;return _0x573cca;})['then'](respondWithFilteredResult(_0x2a0481,_0x4157c4))[_0xbb58('0x46')](handleError(_0x2a0481,null));};exports['show']=function(_0x22f1c3,_0x285ad4){var _0x29fb1c={'raw':!![],'where':{'id':_0x22f1c3['params']['id']}},_0x45817f={};_0x45817f[_0xbb58('0x32')]=_[_0xbb58('0x34')](db[_0xbb58('0x2d')][_0xbb58('0x2e')]);_0x45817f['query']=_[_0xbb58('0x34')](_0x22f1c3['query']);_0x45817f[_0xbb58('0x35')]=_[_0xbb58('0x36')](_0x45817f[_0xbb58('0x32')],_0x45817f[_0xbb58('0x33')]);_0x29fb1c[_0xbb58('0x37')]=_[_0xbb58('0x36')](_0x45817f[_0xbb58('0x32')],qs[_0xbb58('0x38')](_0x22f1c3[_0xbb58('0x33')][_0xbb58('0x38')]));_0x29fb1c[_0xbb58('0x37')]=_0x29fb1c[_0xbb58('0x37')][_0xbb58('0x39')]?_0x29fb1c['attributes']:_0x45817f[_0xbb58('0x32')];if(_0x22f1c3['query']['includeAll']){_0x29fb1c[_0xbb58('0x43')]=[{'all':!![]}];}_0x29fb1c=_[_0xbb58('0x41')]({},_0x29fb1c,_0x22f1c3[_0xbb58('0x42')]);return db[_0xbb58('0x2d')][_0xbb58('0x47')](_0x29fb1c)[_0xbb58('0x26')](handleEntityNotFound(_0x285ad4,null))[_0xbb58('0x26')](respondWithResult(_0x285ad4,null))[_0xbb58('0x46')](handleError(_0x285ad4,null));};exports[_0xbb58('0x48')]=function(_0x39995e,_0x440fb3){return db['WhatsappQueueReport'][_0xbb58('0x48')](_0x39995e[_0xbb58('0x49')],{})['then'](respondWithResult(_0x440fb3,0xc9))[_0xbb58('0x46')](handleError(_0x440fb3,null));};exports[_0xbb58('0x24')]=function(_0xf94897,_0xdb0ff7){if(_0xf94897['body']['id']){delete _0xf94897[_0xbb58('0x49')]['id'];}return db['WhatsappQueueReport'][_0xbb58('0x47')]({'where':{'id':_0xf94897[_0xbb58('0x4a')]['id']}})[_0xbb58('0x26')](handleEntityNotFound(_0xdb0ff7,null))['then'](saveUpdates(_0xf94897[_0xbb58('0x49')],null))[_0xbb58('0x26')](respondWithResult(_0xdb0ff7,null))['catch'](handleError(_0xdb0ff7,null));};exports[_0xbb58('0x25')]=function(_0x4ca201,_0x28301d){return db[_0xbb58('0x2d')][_0xbb58('0x47')]({'where':{'id':_0x4ca201[_0xbb58('0x4a')]['id']}})[_0xbb58('0x26')](handleEntityNotFound(_0x28301d,null))[_0xbb58('0x26')](removeEntity(_0x28301d,null))[_0xbb58('0x46')](handleError(_0x28301d,null));};exports['describe']=function(_0x449088,_0x1fd892){return db['WhatsappQueueReport'][_0xbb58('0x4b')]()[_0xbb58('0x26')](respondWithResult(_0x1fd892,null))['catch'](handleError(_0x1fd892,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7b8=['request-promise','rimraf','../../config/environment','./whatsappQueueReport.attributes','define','WhatsappQueueReport','uniqueid','util','../../config/logger','api','moment','bluebird'];(function(_0x2873c9,_0x54f131){var _0x3d93cc=function(_0x228fb1){while(--_0x228fb1){_0x2873c9['push'](_0x2873c9['shift']());}};_0x3d93cc(++_0x54f131);}(_0xc7b8,0x97));var _0x8c7b=function(_0x57a822,_0x428b18){_0x57a822=_0x57a822-0x0;var _0x49d4a0=_0xc7b8[_0x57a822];return _0x49d4a0;};'use strict';var _=require('lodash');var util=require(_0x8c7b('0x0'));var logger=require(_0x8c7b('0x1'))(_0x8c7b('0x2'));var moment=require(_0x8c7b('0x3'));var BPromise=require(_0x8c7b('0x4'));var rp=require(_0x8c7b('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x8c7b('0x6'));var config=require(_0x8c7b('0x7'));var attributes=require(_0x8c7b('0x8'));module['exports']=function(_0x1f9682,_0x1e9818){return _0x1f9682[_0x8c7b('0x9')](_0x8c7b('0xa'),attributes,{'tableName':'report_whatsapp_queue','paranoid':![],'indexes':[{'name':_0x8c7b('0xb'),'fields':[_0x8c7b('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1f6e=['lodash','../../config/logger','moment','request-promise','path','rimraf','./whatsappQueueReport.attributes','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid'];(function(_0x7d6ab0,_0x4dcbfe){var _0x2874ed=function(_0x1af760){while(--_0x1af760){_0x7d6ab0['push'](_0x7d6ab0['shift']());}};_0x2874ed(++_0x4dcbfe);}(_0x1f6e,0xfd));var _0xe1f6=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x1f6e[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0xe1f6('0x0'));var util=require('util');var logger=require(_0xe1f6('0x1'))('api');var moment=require(_0xe1f6('0x2'));var BPromise=require('bluebird');var rp=require(_0xe1f6('0x3'));var fs=require('fs');var path=require(_0xe1f6('0x4'));var rimraf=require(_0xe1f6('0x5'));var config=require('../../config/environment');var attributes=require(_0xe1f6('0x6'));module['exports']=function(_0x499ded,_0x2e75cc){return _0x499ded[_0xe1f6('0x7')](_0xe1f6('0x8'),attributes,{'tableName':_0xe1f6('0x9'),'paranoid':![],'indexes':[{'name':_0xe1f6('0xa'),'fields':[_0xe1f6('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb630=['result','CreateWhatsappQueueReport','WhatsappQueueReport','create','body','raw','catch','UpdateWhatsappQueueReport','update','options','attributes','limit','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','then','info','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x217e4e,_0x6db009){var _0x456afd=function(_0x2e4f20){while(--_0x2e4f20){_0x217e4e['push'](_0x217e4e['shift']());}};_0x456afd(++_0x6db009);}(_0xb630,0xb1));var _0x0b63=function(_0x10291b,_0x518773){_0x10291b=_0x10291b-0x0;var _0x1d5fbe=_0xb630[_0x10291b];return _0x1d5fbe;};'use strict';var _=require(_0x0b63('0x0'));var util=require(_0x0b63('0x1'));var moment=require(_0x0b63('0x2'));var BPromise=require(_0x0b63('0x3'));var rs=require(_0x0b63('0x4'));var fs=require('fs');var Redis=require(_0x0b63('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x0b63('0x6'));var logger=require(_0x0b63('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x0b63('0x8'));var client=jayson[_0x0b63('0x9')][_0x0b63('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1c9011,_0x2aee6c,_0x5473c7){return new BPromise(function(_0x16a938,_0x578932){return client['request'](_0x1c9011,_0x5473c7)[_0x0b63('0xb')](function(_0x2532e9){logger[_0x0b63('0xc')](_0x0b63('0xd'),_0x2aee6c,_0x0b63('0xe'));logger[_0x0b63('0xf')](_0x0b63('0x10'),_0x2aee6c,_0x0b63('0xe'),JSON[_0x0b63('0x11')](_0x2532e9));if(_0x2532e9[_0x0b63('0x12')]){if(_0x2532e9[_0x0b63('0x12')][_0x0b63('0x13')]===0x1f4){logger['error']('WhatsappQueueReport,\x20%s,\x20%s',_0x2aee6c,_0x2532e9[_0x0b63('0x12')][_0x0b63('0x14')]);return _0x578932(_0x2532e9[_0x0b63('0x12')]['message']);}logger['error'](_0x0b63('0xd'),_0x2aee6c,_0x2532e9[_0x0b63('0x12')][_0x0b63('0x14')]);return _0x16a938(_0x2532e9[_0x0b63('0x12')][_0x0b63('0x14')]);}else{logger[_0x0b63('0xc')]('WhatsappQueueReport,\x20%s,\x20%s',_0x2aee6c,_0x0b63('0xe'));_0x16a938(_0x2532e9[_0x0b63('0x15')][_0x0b63('0x14')]);}})['catch'](function(_0x1b11ab){logger['error']('WhatsappQueueReport,\x20%s,\x20%s',_0x2aee6c,_0x1b11ab);_0x578932(_0x1b11ab);});});}exports[_0x0b63('0x16')]=function(_0x5b234b){var _0x2b21af=this;return new Promise(function(_0x267ced,_0x1a1821){return db[_0x0b63('0x17')][_0x0b63('0x18')](_0x5b234b[_0x0b63('0x19')],{'raw':_0x5b234b['options']?_0x5b234b['options'][_0x0b63('0x1a')]===undefined?!![]:![]:!![]})[_0x0b63('0xb')](function(_0x325928){logger[_0x0b63('0xc')](_0x0b63('0x16'),_0x5b234b);logger[_0x0b63('0xf')]('CreateWhatsappQueueReport',_0x5b234b,JSON[_0x0b63('0x11')](_0x325928));_0x267ced(_0x325928);})[_0x0b63('0x1b')](function(_0x147c44){logger['error'](_0x0b63('0x16'),_0x147c44[_0x0b63('0x14')],_0x5b234b);_0x1a1821(_0x2b21af[_0x0b63('0x12')](0x1f4,_0x147c44[_0x0b63('0x14')]));});});};exports[_0x0b63('0x1c')]=function(_0x4867be){var _0x54e9f1=this;return new Promise(function(_0x287806,_0x70b703){return db[_0x0b63('0x17')][_0x0b63('0x1d')](_0x4867be[_0x0b63('0x19')],{'raw':_0x4867be['options']?_0x4867be['options'][_0x0b63('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4867be[_0x0b63('0x1e')]?_0x4867be[_0x0b63('0x1e')]['where']||null:null,'attributes':_0x4867be[_0x0b63('0x1e')]?_0x4867be[_0x0b63('0x1e')][_0x0b63('0x1f')]||null:null,'limit':_0x4867be[_0x0b63('0x1e')]?_0x4867be[_0x0b63('0x1e')][_0x0b63('0x20')]||null:null})[_0x0b63('0xb')](function(_0x2617f2){logger['info'](_0x0b63('0x1c'),_0x4867be);logger['debug'](_0x0b63('0x1c'),_0x4867be,JSON['stringify'](_0x2617f2));_0x287806(_0x2617f2);})[_0x0b63('0x1b')](function(_0xa0e5f3){logger[_0x0b63('0x12')](_0x0b63('0x1c'),_0xa0e5f3[_0x0b63('0x14')],_0x4867be);_0x70b703(_0x54e9f1['error'](0x1f4,_0xa0e5f3[_0x0b63('0x14')]));});});};
\ No newline at end of file
+var _0xcc6d=['result','catch','CreateWhatsappQueueReport','WhatsappQueueReport','create','body','options','update','raw','where','limit','UpdateWhatsappQueueReport','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','WhatsappQueueReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x499c07,_0x2066f7){var _0x1058fb=function(_0x2284b5){while(--_0x2284b5){_0x499c07['push'](_0x499c07['shift']());}};_0x1058fb(++_0x2066f7);}(_0xcc6d,0x9c));var _0xdcc6=function(_0x1dc9a4,_0x398c6c){_0x1dc9a4=_0x1dc9a4-0x0;var _0x5a7208=_0xcc6d[_0x1dc9a4];return _0x5a7208;};'use strict';var _=require(_0xdcc6('0x0'));var util=require(_0xdcc6('0x1'));var moment=require(_0xdcc6('0x2'));var BPromise=require(_0xdcc6('0x3'));var rs=require(_0xdcc6('0x4'));var fs=require('fs');var Redis=require(_0xdcc6('0x5'));var db=require(_0xdcc6('0x6'))['db'];var utils=require(_0xdcc6('0x7'));var logger=require(_0xdcc6('0x8'))(_0xdcc6('0x9'));var config=require(_0xdcc6('0xa'));var jayson=require(_0xdcc6('0xb'));var client=jayson['client'][_0xdcc6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1e158f,_0xdf61fa,_0x9bc30d){return new BPromise(function(_0x426f99,_0x5eee77){return client[_0xdcc6('0xd')](_0x1e158f,_0x9bc30d)[_0xdcc6('0xe')](function(_0x2149d1){logger[_0xdcc6('0xf')](_0xdcc6('0x10'),_0xdf61fa,_0xdcc6('0x11'));logger[_0xdcc6('0x12')](_0xdcc6('0x13'),_0xdf61fa,'request\x20sent',JSON[_0xdcc6('0x14')](_0x2149d1));if(_0x2149d1[_0xdcc6('0x15')]){if(_0x2149d1[_0xdcc6('0x15')][_0xdcc6('0x16')]===0x1f4){logger[_0xdcc6('0x15')](_0xdcc6('0x10'),_0xdf61fa,_0x2149d1['error'][_0xdcc6('0x17')]);return _0x5eee77(_0x2149d1[_0xdcc6('0x15')][_0xdcc6('0x17')]);}logger[_0xdcc6('0x15')]('WhatsappQueueReport,\x20%s,\x20%s',_0xdf61fa,_0x2149d1[_0xdcc6('0x15')][_0xdcc6('0x17')]);return _0x426f99(_0x2149d1['error'][_0xdcc6('0x17')]);}else{logger[_0xdcc6('0xf')](_0xdcc6('0x10'),_0xdf61fa,_0xdcc6('0x11'));_0x426f99(_0x2149d1[_0xdcc6('0x18')]['message']);}})[_0xdcc6('0x19')](function(_0x3b2de5){logger[_0xdcc6('0x15')]('WhatsappQueueReport,\x20%s,\x20%s',_0xdf61fa,_0x3b2de5);_0x5eee77(_0x3b2de5);});});}exports[_0xdcc6('0x1a')]=function(_0x5305a0){var _0x75c34=this;return new Promise(function(_0x2b7e87,_0x8c8fe7){return db[_0xdcc6('0x1b')][_0xdcc6('0x1c')](_0x5305a0[_0xdcc6('0x1d')],{'raw':_0x5305a0[_0xdcc6('0x1e')]?_0x5305a0['options']['raw']===undefined?!![]:![]:!![]})[_0xdcc6('0xe')](function(_0xe875a4){logger[_0xdcc6('0xf')]('CreateWhatsappQueueReport',_0x5305a0);logger[_0xdcc6('0x12')](_0xdcc6('0x1a'),_0x5305a0,JSON[_0xdcc6('0x14')](_0xe875a4));_0x2b7e87(_0xe875a4);})[_0xdcc6('0x19')](function(_0x49defa){logger['error']('CreateWhatsappQueueReport',_0x49defa[_0xdcc6('0x17')],_0x5305a0);_0x8c8fe7(_0x75c34[_0xdcc6('0x15')](0x1f4,_0x49defa[_0xdcc6('0x17')]));});});};exports['UpdateWhatsappQueueReport']=function(_0x25e619){var _0x1190e2=this;return new Promise(function(_0x47fe45,_0x5156e2){return db[_0xdcc6('0x1b')][_0xdcc6('0x1f')](_0x25e619[_0xdcc6('0x1d')],{'raw':_0x25e619['options']?_0x25e619[_0xdcc6('0x1e')][_0xdcc6('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x25e619[_0xdcc6('0x1e')]?_0x25e619[_0xdcc6('0x1e')][_0xdcc6('0x21')]||null:null,'attributes':_0x25e619[_0xdcc6('0x1e')]?_0x25e619[_0xdcc6('0x1e')]['attributes']||null:null,'limit':_0x25e619[_0xdcc6('0x1e')]?_0x25e619['options'][_0xdcc6('0x22')]||null:null})[_0xdcc6('0xe')](function(_0xfdea7e){logger[_0xdcc6('0xf')](_0xdcc6('0x23'),_0x25e619);logger[_0xdcc6('0x12')](_0xdcc6('0x23'),_0x25e619,JSON[_0xdcc6('0x14')](_0xfdea7e));_0x47fe45(_0xfdea7e);})[_0xdcc6('0x19')](function(_0x5a807a){logger['error'](_0xdcc6('0x23'),_0x5a807a[_0xdcc6('0x17')],_0x25e619);_0x5156e2(_0x1190e2[_0xdcc6('0x15')](0x1f4,_0x5a807a['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x19bb=['fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/:id','post','create','put','update','delete','destroy','exports','multer','connect-timeout'];(function(_0x570016,_0x111cb9){var _0x3b4176=function(_0x147f5b){while(--_0x147f5b){_0x570016['push'](_0x570016['shift']());}};_0x3b4176(++_0x111cb9);}(_0x19bb,0x7e));var _0xb19b=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x19bb[_0x42cae2];return _0x5f256f;};'use strict';var multer=require(_0xb19b('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xb19b('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xb19b('0x2'));var auth=require(_0xb19b('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0xb19b('0x4'));var controller=require('./whatsappTransferReport.controller');router[_0xb19b('0x5')]('/',auth[_0xb19b('0x6')](),controller[_0xb19b('0x7')]);router[_0xb19b('0x5')]('/describe',auth[_0xb19b('0x6')](),controller['describe']);router[_0xb19b('0x5')](_0xb19b('0x8'),auth[_0xb19b('0x6')](),controller['show']);router[_0xb19b('0x9')]('/',auth[_0xb19b('0x6')](),controller[_0xb19b('0xa')]);router[_0xb19b('0xb')](_0xb19b('0x8'),auth[_0xb19b('0x6')](),controller[_0xb19b('0xc')]);router[_0xb19b('0xd')](_0xb19b('0x8'),auth['isAuthenticated'](),controller[_0xb19b('0xe')]);module[_0xb19b('0xf')]=router;
\ No newline at end of file
+var _0x300a=['delete','/:id','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller','isAuthenticated','index','get','/describe','describe','show','post','put','update'];(function(_0x5a4fcb,_0x393d1e){var _0x226e13=function(_0x5d6e1c){while(--_0x5d6e1c){_0x5a4fcb['push'](_0x5a4fcb['shift']());}};_0x226e13(++_0x393d1e);}(_0x300a,0x1a5));var _0xa300=function(_0x29db14,_0x4fcd9f){_0x29db14=_0x29db14-0x0;var _0x5cfc55=_0x300a[_0x29db14];return _0x5cfc55;};'use strict';var multer=require('multer');var util=require(_0xa300('0x0'));var path=require(_0xa300('0x1'));var timeout=require(_0xa300('0x2'));var express=require(_0xa300('0x3'));var router=express[_0xa300('0x4')]();var fs_extra=require(_0xa300('0x5'));var auth=require(_0xa300('0x6'));var interaction=require(_0xa300('0x7'));var config=require(_0xa300('0x8'));var controller=require(_0xa300('0x9'));router['get']('/',auth[_0xa300('0xa')](),controller[_0xa300('0xb')]);router[_0xa300('0xc')](_0xa300('0xd'),auth['isAuthenticated'](),controller[_0xa300('0xe')]);router['get']('/:id',auth[_0xa300('0xa')](),controller[_0xa300('0xf')]);router[_0xa300('0x10')]('/',auth[_0xa300('0xa')](),controller['create']);router[_0xa300('0x11')]('/:id',auth[_0xa300('0xa')](),controller[_0xa300('0x12')]);router[_0xa300('0x13')](_0xa300('0x14'),auth['isAuthenticated'](),controller['destroy']);module[_0xa300('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe77c=['agent','queue','DATE','sequelize','exports','STRING','account'];(function(_0x1443eb,_0x203408){var _0x2b8810=function(_0x48bc4e){while(--_0x48bc4e){_0x1443eb['push'](_0x1443eb['shift']());}};_0x2b8810(++_0x203408);}(_0xe77c,0x176));var _0xce77=function(_0x2d2f17,_0x2bd8a9){_0x2d2f17=_0x2d2f17-0x0;var _0x5a49ae=_0xe77c[_0x2d2f17];return _0x5a49ae;};'use strict';var Sequelize=require(_0xce77('0x0'));module[_0xce77('0x1')]={'uniqueid':{'type':Sequelize[_0xce77('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xce77('0x3'),_0xce77('0x4'),_0xce77('0x5')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0xce77('0x6')]}};
\ No newline at end of file
+var _0x26f9=['queue','DATE','sequelize','exports','ENUM'];(function(_0x201244,_0x164b93){var _0x3a5598=function(_0x418039){while(--_0x418039){_0x201244['push'](_0x201244['shift']());}};_0x3a5598(++_0x164b93);}(_0x26f9,0x16f));var _0x926f=function(_0x42835a,_0x5259a7){_0x42835a=_0x42835a-0x0;var _0xa4f23b=_0x26f9[_0x42835a];return _0xa4f23b;};'use strict';var Sequelize=require(_0x926f('0x0'));module[_0x926f('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x926f('0x2')]('account','agent',_0x926f('0x3')),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x926f('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d37=['where','filters','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','rawAttributes','find','create','body','update','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','destroy','then','stack','name','send','index','map','WhatsappTransferReport','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x6d37,0x18e));var _0x76d3=function(_0x2aa07b,_0x570749){_0x2aa07b=_0x2aa07b-0x0;var _0xc1b6af=_0x6d37[_0x2aa07b];return _0xc1b6af;};'use strict';var emlformat=require(_0x76d3('0x0'));var rimraf=require(_0x76d3('0x1'));var zipdir=require(_0x76d3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x76d3('0x3'));var moment=require(_0x76d3('0x4'));var BPromise=require(_0x76d3('0x5'));var Mustache=require(_0x76d3('0x6'));var util=require(_0x76d3('0x7'));var path=require(_0x76d3('0x8'));var sox=require(_0x76d3('0x9'));var csv=require(_0x76d3('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x76d3('0xb'));var _=require('lodash');var squel=require(_0x76d3('0xc'));var crypto=require(_0x76d3('0xd'));var jsforce=require(_0x76d3('0xe'));var deskjs=require(_0x76d3('0xf'));var toCsv=require(_0x76d3('0xa'));var querystring=require(_0x76d3('0x10'));var Papa=require(_0x76d3('0x11'));var Redis=require(_0x76d3('0x12'));var authService=require(_0x76d3('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x76d3('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x76d3('0x15'))(_0x76d3('0x16'));var utils=require(_0x76d3('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0x76d3('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2fb168,_0x20ebf2){_0x20ebf2=_0x20ebf2||0xcc;return function(_0x4d9137){if(_0x4d9137){return _0x2fb168[_0x76d3('0x19')](_0x20ebf2);}return _0x2fb168[_0x76d3('0x1a')](_0x20ebf2)[_0x76d3('0x1b')]();};}function respondWithResult(_0x2558cf,_0x569e59){_0x569e59=_0x569e59||0xc8;return function(_0x3fb904){if(_0x3fb904){return _0x2558cf[_0x76d3('0x1a')](_0x569e59)['json'](_0x3fb904);}};}function respondWithFilteredResult(_0x23e4aa,_0x54a2b1){return function(_0x4171ae){if(_0x4171ae){var _0x483765=typeof _0x54a2b1[_0x76d3('0x1c')]===_0x76d3('0x1d')&&typeof _0x54a2b1[_0x76d3('0x1e')]===_0x76d3('0x1d');var _0x5e7534=_0x4171ae[_0x76d3('0x1f')];var _0x29bfcf=_0x483765?0x0:_0x54a2b1[_0x76d3('0x1c')];var _0x140565=_0x483765?_0x4171ae[_0x76d3('0x1f')]:_0x54a2b1[_0x76d3('0x1c')]+_0x54a2b1['limit'];var _0x5b6fa7;if(_0x140565>=_0x5e7534){_0x140565=_0x5e7534;_0x5b6fa7=0xc8;}else{_0x5b6fa7=0xce;}_0x23e4aa[_0x76d3('0x1a')](_0x5b6fa7);return _0x23e4aa[_0x76d3('0x20')](_0x76d3('0x21'),_0x29bfcf+'-'+_0x140565+'/'+_0x5e7534)['json'](_0x4171ae);}return null;};}function patchUpdates(_0x44419d){return function(_0x1bd0b3){try{jsonpatch[_0x76d3('0x22')](_0x1bd0b3,_0x44419d,!![]);}catch(_0x3ae70f){return BPromise[_0x76d3('0x23')](_0x3ae70f);}return _0x1bd0b3[_0x76d3('0x24')]();};}function saveUpdates(_0x214c34,_0x21ab29){return function(_0x5a53bd){if(_0x5a53bd){return _0x5a53bd['update'](_0x214c34)['then'](function(_0x5380b1){return _0x5380b1;});}return null;};}function removeEntity(_0xf9c9e9,_0xdfd552){return function(_0x24e1bb){if(_0x24e1bb){return _0x24e1bb[_0x76d3('0x25')]()[_0x76d3('0x26')](function(){_0xf9c9e9[_0x76d3('0x1a')](0xcc)[_0x76d3('0x1b')]();});}};}function handleEntityNotFound(_0x5e00e2,_0x116d04){return function(_0x31c2d4){if(!_0x31c2d4){_0x5e00e2[_0x76d3('0x19')](0x194);}return _0x31c2d4;};}function handleError(_0x43bd4f,_0x3d2ae7){_0x3d2ae7=_0x3d2ae7||0x1f4;return function(_0xdebb3a){logger['error'](_0xdebb3a[_0x76d3('0x27')]);if(_0xdebb3a[_0x76d3('0x28')]){delete _0xdebb3a[_0x76d3('0x28')];}_0x43bd4f[_0x76d3('0x1a')](_0x3d2ae7)[_0x76d3('0x29')](_0xdebb3a);};}exports[_0x76d3('0x2a')]=function(_0x331b8d,_0xa06fae){var _0x52f406={},_0x4b8944={},_0x282d62={'count':0x0,'rows':[]};var _0x15579a=_[_0x76d3('0x2b')](db[_0x76d3('0x2c')]['rawAttributes'],function(_0x3f636e){return{'name':_0x3f636e[_0x76d3('0x2d')],'type':_0x3f636e[_0x76d3('0x2e')][_0x76d3('0x2f')]};});_0x4b8944[_0x76d3('0x30')]=_[_0x76d3('0x2b')](_0x15579a,_0x76d3('0x28'));_0x4b8944[_0x76d3('0x31')]=_[_0x76d3('0x32')](_0x331b8d[_0x76d3('0x31')]);_0x4b8944['filters']=_[_0x76d3('0x33')](_0x4b8944['model'],_0x4b8944[_0x76d3('0x31')]);_0x52f406['attributes']=_[_0x76d3('0x33')](_0x4b8944[_0x76d3('0x30')],qs[_0x76d3('0x34')](_0x331b8d['query']['fields']));_0x52f406[_0x76d3('0x35')]=_0x52f406[_0x76d3('0x35')][_0x76d3('0x36')]?_0x52f406[_0x76d3('0x35')]:_0x4b8944[_0x76d3('0x30')];if(!_0x331b8d['query'][_0x76d3('0x37')](_0x76d3('0x38'))){_0x52f406[_0x76d3('0x1e')]=qs[_0x76d3('0x1e')](_0x331b8d[_0x76d3('0x31')][_0x76d3('0x1e')]);_0x52f406[_0x76d3('0x1c')]=qs[_0x76d3('0x1c')](_0x331b8d[_0x76d3('0x31')]['offset']);}_0x52f406[_0x76d3('0x39')]=qs['sort'](_0x331b8d[_0x76d3('0x31')]['sort']);_0x52f406[_0x76d3('0x3a')]=qs[_0x76d3('0x3b')](_['pick'](_0x331b8d[_0x76d3('0x31')],_0x4b8944['filters']),_0x15579a);if(_0x331b8d['query'][_0x76d3('0x3c')]){_0x52f406['where']=_[_0x76d3('0x3d')](_0x52f406['where'],{'$or':_['map'](_0x15579a,function(_0xaf44e2){if(_0xaf44e2[_0x76d3('0x2e')]!==_0x76d3('0x3e')){var _0x40d9aa={};_0x40d9aa[_0xaf44e2[_0x76d3('0x28')]]={'$like':'%'+_0x331b8d[_0x76d3('0x31')][_0x76d3('0x3c')]+'%'};return _0x40d9aa;}})});}_0x52f406=_[_0x76d3('0x3d')]({},_0x52f406,_0x331b8d[_0x76d3('0x3f')]);var _0xae9696={'where':_0x52f406[_0x76d3('0x3a')]};return db[_0x76d3('0x2c')][_0x76d3('0x1f')](_0xae9696)['then'](function(_0x4dfea8){_0x282d62[_0x76d3('0x1f')]=_0x4dfea8;if(_0x331b8d[_0x76d3('0x31')][_0x76d3('0x40')]){_0x52f406[_0x76d3('0x41')]=[{'all':!![]}];}return db[_0x76d3('0x2c')][_0x76d3('0x42')](_0x52f406);})[_0x76d3('0x26')](function(_0x3a2d61){_0x282d62[_0x76d3('0x43')]=_0x3a2d61;return _0x282d62;})[_0x76d3('0x26')](respondWithFilteredResult(_0xa06fae,_0x52f406))[_0x76d3('0x44')](handleError(_0xa06fae,null));};exports['show']=function(_0x321f77,_0x234a8a){var _0x45995e={'raw':!![],'where':{'id':_0x321f77[_0x76d3('0x45')]['id']}},_0x6c7ef={};_0x6c7ef[_0x76d3('0x30')]=_[_0x76d3('0x32')](db[_0x76d3('0x2c')][_0x76d3('0x46')]);_0x6c7ef['query']=_[_0x76d3('0x32')](_0x321f77['query']);_0x6c7ef['filters']=_[_0x76d3('0x33')](_0x6c7ef[_0x76d3('0x30')],_0x6c7ef[_0x76d3('0x31')]);_0x45995e['attributes']=_[_0x76d3('0x33')](_0x6c7ef[_0x76d3('0x30')],qs[_0x76d3('0x34')](_0x321f77[_0x76d3('0x31')]['fields']));_0x45995e['attributes']=_0x45995e[_0x76d3('0x35')][_0x76d3('0x36')]?_0x45995e[_0x76d3('0x35')]:_0x6c7ef[_0x76d3('0x30')];if(_0x321f77[_0x76d3('0x31')]['includeAll']){_0x45995e[_0x76d3('0x41')]=[{'all':!![]}];}_0x45995e=_['merge']({},_0x45995e,_0x321f77[_0x76d3('0x3f')]);return db[_0x76d3('0x2c')][_0x76d3('0x47')](_0x45995e)[_0x76d3('0x26')](handleEntityNotFound(_0x234a8a,null))[_0x76d3('0x26')](respondWithResult(_0x234a8a,null))[_0x76d3('0x44')](handleError(_0x234a8a,null));};exports[_0x76d3('0x48')]=function(_0x206577,_0x49b2cd){return db[_0x76d3('0x2c')][_0x76d3('0x48')](_0x206577[_0x76d3('0x49')],{})[_0x76d3('0x26')](respondWithResult(_0x49b2cd,0xc9))['catch'](handleError(_0x49b2cd,null));};exports[_0x76d3('0x4a')]=function(_0x33b23b,_0x76e731){if(_0x33b23b[_0x76d3('0x49')]['id']){delete _0x33b23b[_0x76d3('0x49')]['id'];}return db[_0x76d3('0x2c')]['find']({'where':{'id':_0x33b23b[_0x76d3('0x45')]['id']}})[_0x76d3('0x26')](handleEntityNotFound(_0x76e731,null))['then'](saveUpdates(_0x33b23b['body'],null))['then'](respondWithResult(_0x76e731,null))[_0x76d3('0x44')](handleError(_0x76e731,null));};exports[_0x76d3('0x25')]=function(_0x16f14b,_0x3c7a03){return db['WhatsappTransferReport'][_0x76d3('0x47')]({'where':{'id':_0x16f14b[_0x76d3('0x45')]['id']}})['then'](handleEntityNotFound(_0x3c7a03,null))['then'](removeEntity(_0x3c7a03,null))[_0x76d3('0x44')](handleError(_0x3c7a03,null));};exports[_0x76d3('0x4b')]=function(_0x5e23c8,_0x55bcde){return db[_0x76d3('0x2c')][_0x76d3('0x4b')]()[_0x76d3('0x26')](respondWithResult(_0x55bcde,null))[_0x76d3('0x44')](handleError(_0x55bcde,null));};
\ No newline at end of file
+var _0xca7e=['eml-format','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','end','error','stack','name','index','map','WhatsappTransferReport','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','filters','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','create','body','find','describe'];(function(_0x4a747d,_0x3b747f){var _0x3a5b5c=function(_0x4b3e81){while(--_0x4b3e81){_0x4a747d['push'](_0x4a747d['shift']());}};_0x3a5b5c(++_0x3b747f);}(_0xca7e,0xde));var _0xeca7=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xca7e[_0x465028];return _0xb783d4;};'use strict';var emlformat=require(_0xeca7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xeca7('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xeca7('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xeca7('0x3'));var util=require(_0xeca7('0x4'));var path=require(_0xeca7('0x5'));var sox=require(_0xeca7('0x6'));var csv=require(_0xeca7('0x7'));var ejs=require(_0xeca7('0x8'));var fs=require('fs');var fs_extra=require(_0xeca7('0x9'));var _=require('lodash');var squel=require(_0xeca7('0xa'));var crypto=require(_0xeca7('0xb'));var jsforce=require(_0xeca7('0xc'));var deskjs=require(_0xeca7('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xeca7('0xe'));var authService=require(_0xeca7('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xeca7('0x10'));var hardwareService=require(_0xeca7('0x11'));var logger=require(_0xeca7('0x12'))('api');var utils=require(_0xeca7('0x13'));var config=require(_0xeca7('0x14'));var licenseUtil=require(_0xeca7('0x15'));var db=require(_0xeca7('0x16'))['db'];function respondWithStatusCode(_0x57cfc5,_0x3ff56f){_0x3ff56f=_0x3ff56f||0xcc;return function(_0x3f72db){if(_0x3f72db){return _0x57cfc5[_0xeca7('0x17')](_0x3ff56f);}return _0x57cfc5[_0xeca7('0x18')](_0x3ff56f)['end']();};}function respondWithResult(_0x45907b,_0x32a799){_0x32a799=_0x32a799||0xc8;return function(_0x5bcead){if(_0x5bcead){return _0x45907b['status'](_0x32a799)[_0xeca7('0x19')](_0x5bcead);}};}function respondWithFilteredResult(_0x55e471,_0x4358d6){return function(_0x47c86c){if(_0x47c86c){var _0x107077=typeof _0x4358d6[_0xeca7('0x1a')]===_0xeca7('0x1b')&&typeof _0x4358d6[_0xeca7('0x1c')]===_0xeca7('0x1b');var _0x42f09d=_0x47c86c['count'];var _0x48bdfa=_0x107077?0x0:_0x4358d6[_0xeca7('0x1a')];var _0x155ad0=_0x107077?_0x47c86c[_0xeca7('0x1d')]:_0x4358d6['offset']+_0x4358d6[_0xeca7('0x1c')];var _0x2cf503;if(_0x155ad0>=_0x42f09d){_0x155ad0=_0x42f09d;_0x2cf503=0xc8;}else{_0x2cf503=0xce;}_0x55e471['status'](_0x2cf503);return _0x55e471[_0xeca7('0x1e')](_0xeca7('0x1f'),_0x48bdfa+'-'+_0x155ad0+'/'+_0x42f09d)[_0xeca7('0x19')](_0x47c86c);}return null;};}function patchUpdates(_0x2e9cd6){return function(_0x4d0dc7){try{jsonpatch[_0xeca7('0x20')](_0x4d0dc7,_0x2e9cd6,!![]);}catch(_0xe2961e){return BPromise[_0xeca7('0x21')](_0xe2961e);}return _0x4d0dc7['save']();};}function saveUpdates(_0x3b76cd,_0x4b77f2){return function(_0x1b3ac2){if(_0x1b3ac2){return _0x1b3ac2[_0xeca7('0x22')](_0x3b76cd)[_0xeca7('0x23')](function(_0x2c4202){return _0x2c4202;});}return null;};}function removeEntity(_0x391d90,_0x5c9795){return function(_0x59db5a){if(_0x59db5a){return _0x59db5a[_0xeca7('0x24')]()['then'](function(){_0x391d90[_0xeca7('0x18')](0xcc)[_0xeca7('0x25')]();});}};}function handleEntityNotFound(_0x195fed,_0x319aa6){return function(_0x294800){if(!_0x294800){_0x195fed[_0xeca7('0x17')](0x194);}return _0x294800;};}function handleError(_0x1aee41,_0x472ef2){_0x472ef2=_0x472ef2||0x1f4;return function(_0x328abf){logger[_0xeca7('0x26')](_0x328abf[_0xeca7('0x27')]);if(_0x328abf[_0xeca7('0x28')]){delete _0x328abf[_0xeca7('0x28')];}_0x1aee41['status'](_0x472ef2)['send'](_0x328abf);};}exports[_0xeca7('0x29')]=function(_0x205157,_0x582a04){var _0x490eb0={},_0x1e0acf={},_0x573e29={'count':0x0,'rows':[]};var _0x53e519=_[_0xeca7('0x2a')](db[_0xeca7('0x2b')][_0xeca7('0x2c')],function(_0x3e78d0){return{'name':_0x3e78d0[_0xeca7('0x2d')],'type':_0x3e78d0[_0xeca7('0x2e')][_0xeca7('0x2f')]};});_0x1e0acf[_0xeca7('0x30')]=_[_0xeca7('0x2a')](_0x53e519,_0xeca7('0x28'));_0x1e0acf[_0xeca7('0x31')]=_[_0xeca7('0x32')](_0x205157[_0xeca7('0x31')]);_0x1e0acf['filters']=_[_0xeca7('0x33')](_0x1e0acf[_0xeca7('0x30')],_0x1e0acf[_0xeca7('0x31')]);_0x490eb0['attributes']=_[_0xeca7('0x33')](_0x1e0acf[_0xeca7('0x30')],qs[_0xeca7('0x34')](_0x205157[_0xeca7('0x31')][_0xeca7('0x34')]));_0x490eb0[_0xeca7('0x35')]=_0x490eb0[_0xeca7('0x35')][_0xeca7('0x36')]?_0x490eb0[_0xeca7('0x35')]:_0x1e0acf[_0xeca7('0x30')];if(!_0x205157['query'][_0xeca7('0x37')]('nolimit')){_0x490eb0[_0xeca7('0x1c')]=qs['limit'](_0x205157['query'][_0xeca7('0x1c')]);_0x490eb0[_0xeca7('0x1a')]=qs['offset'](_0x205157[_0xeca7('0x31')]['offset']);}_0x490eb0[_0xeca7('0x38')]=qs[_0xeca7('0x39')](_0x205157[_0xeca7('0x31')][_0xeca7('0x39')]);_0x490eb0[_0xeca7('0x3a')]=qs[_0xeca7('0x3b')](_[_0xeca7('0x3c')](_0x205157[_0xeca7('0x31')],_0x1e0acf[_0xeca7('0x3b')]),_0x53e519);if(_0x205157[_0xeca7('0x31')]['filter']){_0x490eb0[_0xeca7('0x3a')]=_[_0xeca7('0x3d')](_0x490eb0[_0xeca7('0x3a')],{'$or':_[_0xeca7('0x2a')](_0x53e519,function(_0x162600){if(_0x162600[_0xeca7('0x2e')]!==_0xeca7('0x3e')){var _0x1703a9={};_0x1703a9[_0x162600['name']]={'$like':'%'+_0x205157[_0xeca7('0x31')]['filter']+'%'};return _0x1703a9;}})});}_0x490eb0=_['merge']({},_0x490eb0,_0x205157[_0xeca7('0x3f')]);var _0x512692={'where':_0x490eb0[_0xeca7('0x3a')]};return db[_0xeca7('0x2b')][_0xeca7('0x1d')](_0x512692)[_0xeca7('0x23')](function(_0x1d9381){_0x573e29[_0xeca7('0x1d')]=_0x1d9381;if(_0x205157['query'][_0xeca7('0x40')]){_0x490eb0[_0xeca7('0x41')]=[{'all':!![]}];}return db[_0xeca7('0x2b')][_0xeca7('0x42')](_0x490eb0);})['then'](function(_0x16c6e8){_0x573e29[_0xeca7('0x43')]=_0x16c6e8;return _0x573e29;})[_0xeca7('0x23')](respondWithFilteredResult(_0x582a04,_0x490eb0))[_0xeca7('0x44')](handleError(_0x582a04,null));};exports['show']=function(_0x42c3a6,_0x2b6822){var _0x4044f9={'raw':!![],'where':{'id':_0x42c3a6[_0xeca7('0x45')]['id']}},_0x1ecf35={};_0x1ecf35[_0xeca7('0x30')]=_[_0xeca7('0x32')](db[_0xeca7('0x2b')][_0xeca7('0x2c')]);_0x1ecf35[_0xeca7('0x31')]=_['keys'](_0x42c3a6[_0xeca7('0x31')]);_0x1ecf35[_0xeca7('0x3b')]=_[_0xeca7('0x33')](_0x1ecf35[_0xeca7('0x30')],_0x1ecf35[_0xeca7('0x31')]);_0x4044f9['attributes']=_['intersection'](_0x1ecf35[_0xeca7('0x30')],qs[_0xeca7('0x34')](_0x42c3a6['query'][_0xeca7('0x34')]));_0x4044f9[_0xeca7('0x35')]=_0x4044f9[_0xeca7('0x35')][_0xeca7('0x36')]?_0x4044f9[_0xeca7('0x35')]:_0x1ecf35[_0xeca7('0x30')];if(_0x42c3a6['query'][_0xeca7('0x40')]){_0x4044f9[_0xeca7('0x41')]=[{'all':!![]}];}_0x4044f9=_[_0xeca7('0x3d')]({},_0x4044f9,_0x42c3a6['options']);return db['WhatsappTransferReport']['find'](_0x4044f9)[_0xeca7('0x23')](handleEntityNotFound(_0x2b6822,null))[_0xeca7('0x23')](respondWithResult(_0x2b6822,null))[_0xeca7('0x44')](handleError(_0x2b6822,null));};exports[_0xeca7('0x46')]=function(_0x1c48b3,_0x1a4a7f){return db[_0xeca7('0x2b')][_0xeca7('0x46')](_0x1c48b3['body'],{})[_0xeca7('0x23')](respondWithResult(_0x1a4a7f,0xc9))[_0xeca7('0x44')](handleError(_0x1a4a7f,null));};exports[_0xeca7('0x22')]=function(_0x2a8936,_0x19fd37){if(_0x2a8936[_0xeca7('0x47')]['id']){delete _0x2a8936['body']['id'];}return db['WhatsappTransferReport']['find']({'where':{'id':_0x2a8936[_0xeca7('0x45')]['id']}})[_0xeca7('0x23')](handleEntityNotFound(_0x19fd37,null))['then'](saveUpdates(_0x2a8936['body'],null))[_0xeca7('0x23')](respondWithResult(_0x19fd37,null))[_0xeca7('0x44')](handleError(_0x19fd37,null));};exports[_0xeca7('0x24')]=function(_0x248bf4,_0x2a6d3e){return db['WhatsappTransferReport'][_0xeca7('0x48')]({'where':{'id':_0x248bf4[_0xeca7('0x45')]['id']}})[_0xeca7('0x23')](handleEntityNotFound(_0x2a6d3e,null))[_0xeca7('0x23')](removeEntity(_0x2a6d3e,null))[_0xeca7('0x44')](handleError(_0x2a6d3e,null));};exports['describe']=function(_0x4269c2,_0x33d96c){return db['WhatsappTransferReport'][_0xeca7('0x49')]()['then'](respondWithResult(_0x33d96c,null))[_0xeca7('0x44')](handleError(_0x33d96c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58f8=['exports','define','WhatsappTransferReport','report_whatsapp_transfer','uniqueid','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappTransferReport.attributes'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x58f8,0x7d));var _0x858f=function(_0x551c70,_0x5b2121){_0x551c70=_0x551c70-0x0;var _0x470d2a=_0x58f8[_0x551c70];return _0x470d2a;};'use strict';var _=require(_0x858f('0x0'));var util=require('util');var logger=require(_0x858f('0x1'))(_0x858f('0x2'));var moment=require(_0x858f('0x3'));var BPromise=require(_0x858f('0x4'));var rp=require(_0x858f('0x5'));var fs=require('fs');var path=require(_0x858f('0x6'));var rimraf=require(_0x858f('0x7'));var config=require(_0x858f('0x8'));var attributes=require(_0x858f('0x9'));module[_0x858f('0xa')]=function(_0x2a7b5a,_0x1c9922){return _0x2a7b5a[_0x858f('0xb')](_0x858f('0xc'),attributes,{'tableName':_0x858f('0xd'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x858f('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8342=['rimraf','./whatsappTransferReport.attributes','exports','define','WhatsappTransferReport','report_whatsapp_transfer','uniqueid','../../config/logger','api','bluebird','request-promise','path'];(function(_0x98a823,_0x3de336){var _0xb964f9=function(_0x326ce7){while(--_0x326ce7){_0x98a823['push'](_0x98a823['shift']());}};_0xb964f9(++_0x3de336);}(_0x8342,0xa3));var _0x2834=function(_0x32f845,_0x335cb9){_0x32f845=_0x32f845-0x0;var _0x3c0de4=_0x8342[_0x32f845];return _0x3c0de4;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x2834('0x0'))(_0x2834('0x1'));var moment=require('moment');var BPromise=require(_0x2834('0x2'));var rp=require(_0x2834('0x3'));var fs=require('fs');var path=require(_0x2834('0x4'));var rimraf=require(_0x2834('0x5'));var config=require('../../config/environment');var attributes=require(_0x2834('0x6'));module[_0x2834('0x7')]=function(_0x10a13c,_0x4c2671){return _0x10a13c[_0x2834('0x8')](_0x2834('0x9'),attributes,{'tableName':_0x2834('0xa'),'paranoid':![],'indexes':[{'name':_0x2834('0xb'),'fields':[_0x2834('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf99=['code','message','WhatsappTransferReport,\x20%s,\x20%s','info','result','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','then','request\x20sent','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x151334,_0x1e11ac){var _0x3d03da=function(_0x2099cf){while(--_0x2099cf){_0x151334['push'](_0x151334['shift']());}};_0x3d03da(++_0x1e11ac);}(_0xaf99,0x13a));var _0x9af9=function(_0x55a3d5,_0x21b473){_0x55a3d5=_0x55a3d5-0x0;var _0x42f3d1=_0xaf99[_0x55a3d5];return _0x42f3d1;};'use strict';var _=require('lodash');var util=require(_0x9af9('0x0'));var moment=require(_0x9af9('0x1'));var BPromise=require(_0x9af9('0x2'));var rs=require(_0x9af9('0x3'));var fs=require('fs');var Redis=require(_0x9af9('0x4'));var db=require(_0x9af9('0x5'))['db'];var utils=require(_0x9af9('0x6'));var logger=require('../../config/logger')(_0x9af9('0x7'));var config=require(_0x9af9('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x9af9('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x32ea51,_0x468c5b,_0x590f7a){return new BPromise(function(_0x4edd56,_0x2cf581){return client[_0x9af9('0xa')](_0x32ea51,_0x590f7a)[_0x9af9('0xb')](function(_0x412f08){logger['info']('WhatsappTransferReport,\x20%s,\x20%s',_0x468c5b,_0x9af9('0xc'));logger['debug'](_0x9af9('0xd'),_0x468c5b,_0x9af9('0xc'),JSON[_0x9af9('0xe')](_0x412f08));if(_0x412f08[_0x9af9('0xf')]){if(_0x412f08['error'][_0x9af9('0x10')]===0x1f4){logger['error']('WhatsappTransferReport,\x20%s,\x20%s',_0x468c5b,_0x412f08[_0x9af9('0xf')][_0x9af9('0x11')]);return _0x2cf581(_0x412f08['error']['message']);}logger[_0x9af9('0xf')](_0x9af9('0x12'),_0x468c5b,_0x412f08[_0x9af9('0xf')][_0x9af9('0x11')]);return _0x4edd56(_0x412f08['error'][_0x9af9('0x11')]);}else{logger[_0x9af9('0x13')](_0x9af9('0x12'),_0x468c5b,'request\x20sent');_0x4edd56(_0x412f08[_0x9af9('0x14')]['message']);}})[_0x9af9('0x15')](function(_0x2bba3b){logger[_0x9af9('0xf')](_0x9af9('0x12'),_0x468c5b,_0x2bba3b);_0x2cf581(_0x2bba3b);});});}
\ No newline at end of file
+var _0x8e7c=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','WhatsappTransferReport,\x20%s,\x20%s','request\x20sent','debug','WhatsappTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch'];(function(_0xd09668,_0x1435b2){var _0x68726=function(_0x54a030){while(--_0x54a030){_0xd09668['push'](_0xd09668['shift']());}};_0x68726(++_0x1435b2);}(_0x8e7c,0x90));var _0xc8e7=function(_0x3996ab,_0x2ff7f1){_0x3996ab=_0x3996ab-0x0;var _0x29beb4=_0x8e7c[_0x3996ab];return _0x29beb4;};'use strict';var _=require(_0xc8e7('0x0'));var util=require(_0xc8e7('0x1'));var moment=require(_0xc8e7('0x2'));var BPromise=require(_0xc8e7('0x3'));var rs=require(_0xc8e7('0x4'));var fs=require('fs');var Redis=require(_0xc8e7('0x5'));var db=require(_0xc8e7('0x6'))['db'];var utils=require(_0xc8e7('0x7'));var logger=require('../../config/logger')(_0xc8e7('0x8'));var config=require(_0xc8e7('0x9'));var jayson=require(_0xc8e7('0xa'));var client=jayson[_0xc8e7('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2ce0e9,_0x2029b5,_0x3f4ebb){return new BPromise(function(_0x1d26e8,_0x4d0946){return client[_0xc8e7('0xc')](_0x2ce0e9,_0x3f4ebb)[_0xc8e7('0xd')](function(_0x428989){logger['info'](_0xc8e7('0xe'),_0x2029b5,_0xc8e7('0xf'));logger[_0xc8e7('0x10')](_0xc8e7('0x11'),_0x2029b5,_0xc8e7('0xf'),JSON[_0xc8e7('0x12')](_0x428989));if(_0x428989[_0xc8e7('0x13')]){if(_0x428989['error']['code']===0x1f4){logger[_0xc8e7('0x13')](_0xc8e7('0xe'),_0x2029b5,_0x428989[_0xc8e7('0x13')][_0xc8e7('0x14')]);return _0x4d0946(_0x428989[_0xc8e7('0x13')]['message']);}logger[_0xc8e7('0x13')](_0xc8e7('0xe'),_0x2029b5,_0x428989[_0xc8e7('0x13')][_0xc8e7('0x14')]);return _0x1d26e8(_0x428989[_0xc8e7('0x13')]['message']);}else{logger[_0xc8e7('0x15')](_0xc8e7('0xe'),_0x2029b5,_0xc8e7('0xf'));_0x1d26e8(_0x428989[_0xc8e7('0x16')][_0xc8e7('0x14')]);}})[_0xc8e7('0x17')](function(_0x1a5707){logger[_0xc8e7('0x13')](_0xc8e7('0xe'),_0x2029b5,_0x1a5707);_0x4d0946(_0x1a5707);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7ec=['lodash','./mysqldb','./rpc','./config/logger','app','./config/pm2','./config/pm2/config','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','sequelize','sync','then','info','start','Online\x20apps:','map','filter','online','name','join','status','None','seedDB','default','catch','error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit'];(function(_0x3a9f05,_0x4920ae){var _0x542061=function(_0x22a55b){while(--_0x22a55b){_0x3a9f05['push'](_0x3a9f05['shift']());}};_0x542061(++_0x4920ae);}(_0xe7ec,0x1b3));var _0xce7e=function(_0x3c4f1f,_0x20d3ec){_0x3c4f1f=_0x3c4f1f-0x0;var _0x19cb69=_0xe7ec[_0x3c4f1f];return _0x19cb69;};'use strict';var _=require(_0xce7e('0x0'));var mysqldb=require(_0xce7e('0x1'));var rpc=require(_0xce7e('0x2'));var config=require('./config/environment');var logger=require(_0xce7e('0x3'))(_0xce7e('0x4'));var pm2=require(_0xce7e('0x5'));var pm2Config=require(_0xce7e('0x6'));var schedule=require('./config/schedule');var chat=require(_0xce7e('0x7'));var whatsapp=require(_0xce7e('0x8'));var transcribe=require(_0xce7e('0x9'));function main(){return mysqldb['db'][_0xce7e('0xa')][_0xce7e('0xb')]()[_0xce7e('0xc')](function(){return rpc['listen']();})['then'](function(_0x507ee6){logger[_0xce7e('0xd')](_0x507ee6);return chat['start']();})['then'](function(){return whatsapp['start']();})['then'](function(){return schedule['start']();})['then'](function(){return transcribe[_0xce7e('0xe')]();})[_0xce7e('0xc')](function(_0x23542f){logger['info'](_0x23542f);return pm2[_0xce7e('0xe')](pm2Config);})[_0xce7e('0xc')](function(_0x1db705){logger[_0xce7e('0xd')](_0xce7e('0xf'),_[_0xce7e('0x10')](_[_0xce7e('0x11')](_0x1db705,{'status':_0xce7e('0x12')}),_0xce7e('0x13'))[_0xce7e('0x14')]());logger['info']('Offline\x20apps:',_[_0xce7e('0x10')](_[_0xce7e('0x11')](_0x1db705,function(_0x1d2adf){return _0x1d2adf[_0xce7e('0x15')]!==_0xce7e('0x12');}),_0xce7e('0x13'))['join']()||_0xce7e('0x16'));config[_0xce7e('0x17')]&&require('./config/seedDB')['default']();require('./config/license')[_0xce7e('0x18')]();})[_0xce7e('0x19')](function(_0x24ec15){logger[_0xce7e('0x1a')](_0xce7e('0x1b'),_0x24ec15);process[_0xce7e('0x1c')](0x1);});}main();
\ No newline at end of file
+var _0x6f1b=['Offline\x20apps:','status','None','./config/license','catch','error','exit','lodash','./mysqldb','./config/environment','./config/logger','app','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','sequelize','sync','then','listen','start','info','map','filter','online','name','join'];(function(_0x297553,_0x4a1a53){var _0x77ace3=function(_0x598c15){while(--_0x598c15){_0x297553['push'](_0x297553['shift']());}};_0x77ace3(++_0x4a1a53);}(_0x6f1b,0x18d));var _0xb6f1=function(_0x99f7e3,_0x23fae3){_0x99f7e3=_0x99f7e3-0x0;var _0x72f563=_0x6f1b[_0x99f7e3];return _0x72f563;};'use strict';var _=require(_0xb6f1('0x0'));var mysqldb=require(_0xb6f1('0x1'));var rpc=require('./rpc');var config=require(_0xb6f1('0x2'));var logger=require(_0xb6f1('0x3'))(_0xb6f1('0x4'));var pm2=require('./config/pm2');var pm2Config=require('./config/pm2/config');var schedule=require(_0xb6f1('0x5'));var chat=require(_0xb6f1('0x6'));var whatsapp=require(_0xb6f1('0x7'));var transcribe=require('./config/schedule/transcribe');function main(){return mysqldb['db'][_0xb6f1('0x8')][_0xb6f1('0x9')]()[_0xb6f1('0xa')](function(){return rpc[_0xb6f1('0xb')]();})['then'](function(_0x3d85de){logger['info'](_0x3d85de);return chat[_0xb6f1('0xc')]();})['then'](function(){return whatsapp[_0xb6f1('0xc')]();})[_0xb6f1('0xa')](function(){return schedule[_0xb6f1('0xc')]();})[_0xb6f1('0xa')](function(){return transcribe[_0xb6f1('0xc')]();})[_0xb6f1('0xa')](function(_0x1c70c1){logger[_0xb6f1('0xd')](_0x1c70c1);return pm2[_0xb6f1('0xc')](pm2Config);})[_0xb6f1('0xa')](function(_0x205845){logger[_0xb6f1('0xd')]('Online\x20apps:',_[_0xb6f1('0xe')](_[_0xb6f1('0xf')](_0x205845,{'status':_0xb6f1('0x10')}),_0xb6f1('0x11'))[_0xb6f1('0x12')]());logger[_0xb6f1('0xd')](_0xb6f1('0x13'),_[_0xb6f1('0xe')](_[_0xb6f1('0xf')](_0x205845,function(_0xcba40f){return _0xcba40f[_0xb6f1('0x14')]!==_0xb6f1('0x10');}),_0xb6f1('0x11'))[_0xb6f1('0x12')]()||_0xb6f1('0x15'));config['seedDB']&&require('./config/seedDB')['default']();require(_0xb6f1('0x16'))['default']();})[_0xb6f1('0x17')](function(_0x20a3e9){logger[_0xb6f1('0x18')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x20a3e9);process[_0xb6f1('0x19')](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b4f=['express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','secrets','role','fullname','userpic','permissions','md5secret','voicePause','chatPause','smsPause','openchannelPause','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','use','user','ChatInteraction','findOne','params','then','closed','status','disposition','unmanaged','json','Unmanaged.','Forbidden.','headers','authorization','startsWith','Basic','User','find','authenticate','pass','Wrong\x20credentials.','catch','Bearer','Unknown\x20authorization\x20format','query','getUuid','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','nonce','disabled','Invalid\x20API\x20access\x20key','blocked','blockedAt','add','minutes','User\x20not\x20found.','User\x20object\x20not\x20found.','getLicense','update','Forbidden','isMiddleware','signToken','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','redirect','/dashboards/general','retrieveApiKey','isNil','apiKeyIat','regenerateApiKey','apikey','validatePasswordPattern','test','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','validatePasswordHistory','decryptString','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','Sequelize','ValidationError','split','length','splice','unshift','encryptString','join','promisify','sign','session','payload','options','verify','randomBytes','toString','hex','floor','HS512','../../config/environment','../../config/license/util','../encryptor','lodash','jsonwebtoken'];(function(_0x12a554,_0x3d7ef8){var _0x244ba0=function(_0x5eb5ff){while(--_0x5eb5ff){_0x12a554['push'](_0x12a554['shift']());}};_0x244ba0(++_0x3d7ef8);}(_0x7b4f,0x7a));var _0xf7b4=function(_0x5ecadc,_0x1cf9f1){_0x5ecadc=_0x5ecadc-0x0;var _0x565037=_0x7b4f[_0x5ecadc];return _0x565037;};'use strict';var db=require('../../mysqldb')['db'];var config=require(_0xf7b4('0x0'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0xf7b4('0x1'));var encryptor=require(_0xf7b4('0x2'));var _=require(_0xf7b4('0x3'));var jwt=require(_0xf7b4('0x4'));var expressJwt=require(_0xf7b4('0x5'));var compose=require(_0xf7b4('0x6'));var basicAuth=require(_0xf7b4('0x7'));var crypto=require(_0xf7b4('0x8'));var BPromise=require(_0xf7b4('0x9'));var util=require(_0xf7b4('0xa'));var moment=require('moment');var validateJwt=expressJwt({'secret':config[_0xf7b4('0xb')]['session']});var userAttributes=['id',_0xf7b4('0xc'),_0xf7b4('0xd'),'name','internal','email',_0xf7b4('0xe'),_0xf7b4('0xf'),_0xf7b4('0x10'),_0xf7b4('0x11'),_0xf7b4('0x12'),'mailPause','faxPause',_0xf7b4('0x13'),_0xf7b4('0x14'),'pauseType',_0xf7b4('0x15'),_0xf7b4('0x16'),_0xf7b4('0x17'),_0xf7b4('0x18'),_0xf7b4('0x19'),_0xf7b4('0x1a'),'alias',_0xf7b4('0x1b'),_0xf7b4('0x1c'),_0xf7b4('0x1d'),_0xf7b4('0x1e'),_0xf7b4('0x1f'),_0xf7b4('0x20'),_0xf7b4('0x21'),_0xf7b4('0x22'),'phoneBarRemoteControl','phoneBarRemoteControlPort',_0xf7b4('0x23'),_0xf7b4('0x24'),_0xf7b4('0x25'),_0xf7b4('0x26'),_0xf7b4('0x27'),_0xf7b4('0x28'),'downloadVoiceRecordings','downloadOmnichannelInteractions',_0xf7b4('0x29')];exports[_0xf7b4('0x2a')]=function(){return this[_0xf7b4('0x2b')](!![])[_0xf7b4('0x2c')](function(_0x337c44,_0xb36c9e,_0x346f1e){if(_0x337c44[_0xf7b4('0x2d')]){_0x346f1e();}else{return db[_0xf7b4('0x2e')][_0xf7b4('0x2f')]({'where':{'id':_0x337c44[_0xf7b4('0x30')]['id']},'attributes':['id','closed','disposition'],'raw':!![]})[_0xf7b4('0x31')](function(_0x49df95){if(_0x49df95&&_0x49df95[_0xf7b4('0x32')]){return _0xb36c9e[_0xf7b4('0x33')](_0x49df95[_0xf7b4('0x34')]===_0xf7b4('0x35')?0x195:0x193)[_0xf7b4('0x36')]({'message':_0x49df95['disposition']==='unmanaged'?_0xf7b4('0x37'):_0xf7b4('0x38')});}else{_0x346f1e();}})['catch'](function(_0x2a0b9f){_0x346f1e(_0x2a0b9f);});}});};exports[_0xf7b4('0x2b')]=function isAuthenticated(_0x551608){return compose()[_0xf7b4('0x2c')](function(_0x277811,_0x506d11,_0x51bceb){var _0xcc7c12;if(_0x277811[_0xf7b4('0x39')][_0xf7b4('0x3a')]){if(_[_0xf7b4('0x3b')](_0x277811[_0xf7b4('0x39')][_0xf7b4('0x3a')],_0xf7b4('0x3c'))){var _0x532907=basicAuth(_0x277811);db[_0xf7b4('0x3d')][_0xf7b4('0x3e')]({'where':{'name':_0x532907['name']}})[_0xf7b4('0x31')](function(_0x38180a){if(!_0x38180a||!_0x38180a[_0xf7b4('0x3f')](_0x532907[_0xf7b4('0x40')])){return _0x506d11['status'](0x191)[_0xf7b4('0x36')]({'message':_0xf7b4('0x41')});}_0x277811[_0xf7b4('0x2d')]={'id':_0x38180a['id']};_0x51bceb();})[_0xf7b4('0x42')](function(_0x3b8ada){_0x51bceb(_0x3b8ada);});}else if(_[_0xf7b4('0x3b')](_0x277811[_0xf7b4('0x39')][_0xf7b4('0x3a')],_0xf7b4('0x43'))){validateJwt(_0x277811,_0x506d11,_0x51bceb);}else{if(_0x551608){_0x51bceb();}else{return _0x506d11['status'](0x193)[_0xf7b4('0x36')]({'message':_0xf7b4('0x44')});}}}else if(_0x277811[_0xf7b4('0x45')]['apikey']){try{var _0x252d04={'audience':hardwareConf[_0xf7b4('0x46')](),'issuer':hardwareConf['getUuid']()};verifyJwt(_0x277811['query']['apikey'],_0x252d04)[_0xf7b4('0x31')](function(_0x45635a){return db[_0xf7b4('0x3d')][_0xf7b4('0x3e')]({'where':{'id':_0x45635a[_0xf7b4('0x47')]}})[_0xf7b4('0x31')](function(_0x42eddc){_0xcc7c12=_0x42eddc;return db[_0xf7b4('0x48')][_0xf7b4('0x2f')]({'where':{'id':0x1},'attributes':[_0xf7b4('0x49'),_0xf7b4('0x4a')],'raw':!![]});})[_0xf7b4('0x31')](function(_0x3045ed){if(!_0xcc7c12||!_[_0xf7b4('0x4b')](_0xcc7c12[_0xf7b4('0x4c')],_0x45635a[_0xf7b4('0x4d')])){return _0x506d11[_0xf7b4('0x33')](0x191)[_0xf7b4('0x36')]({'message':'API\x20access\x20key\x20is\x20not\x20valid\x20anymore'});}if(_0xcc7c12[_0xf7b4('0x4e')]){return _0x506d11[_0xf7b4('0x33')](0x191)[_0xf7b4('0x36')]({'message':_0xf7b4('0x4f')});}if(_0xcc7c12[_0xf7b4('0x50')]){if(_0x3045ed[_0xf7b4('0x4a')]>0x0){if(moment(_0xcc7c12[_0xf7b4('0x51')])[_0xf7b4('0x52')](_0x3045ed[_0xf7b4('0x4a')],_0xf7b4('0x53'))>moment()){return _0x506d11['status'](0x191)[_0xf7b4('0x36')]({'message':_0xf7b4('0x4f')});}}else{return _0x506d11[_0xf7b4('0x33')](0x191)[_0xf7b4('0x36')]({'message':_0xf7b4('0x4f')});}}_0x277811[_0xf7b4('0x2d')]={'id':_0xcc7c12['id']};_0x51bceb();});})[_0xf7b4('0x42')](function(){return _0x506d11[_0xf7b4('0x33')](0x191)[_0xf7b4('0x36')]({'message':_0xf7b4('0x4f')});});}catch(_0x472da7){_0x51bceb(_0x472da7);}}else if(_0x551608){_0x51bceb();}else{return _0x506d11[_0xf7b4('0x33')](0x193)['json']({'message':_0xf7b4('0x44')});}})[_0xf7b4('0x2c')](function(_0x138e09,_0x17351c,_0x493cdb){if(_0x138e09[_0xf7b4('0x2d')]){db[_0xf7b4('0x3d')][_0xf7b4('0x3e')]({'where':{'id':_0x138e09[_0xf7b4('0x2d')]['id']},'attributes':userAttributes})[_0xf7b4('0x31')](function(_0x1bc341){if(!_0x1bc341){return _0x17351c['status'](0x194)[_0xf7b4('0x36')]({'message':_0xf7b4('0x54')});}_0x138e09[_0xf7b4('0x2d')]=_0x1bc341;_0x493cdb();})['catch'](function(_0x48a6de){_0x493cdb(_0x48a6de);});}else if(_0x551608){_0x493cdb();}else{return _0x17351c['status'](0x194)[_0xf7b4('0x36')]({'message':_0xf7b4('0x55')});}});};exports['canUpdate']=function canUpdate(){return compose()[_0xf7b4('0x2c')](function(_0x4feb98,_0x3b58ff,_0x3831d4){return licenseUtil[_0xf7b4('0x56')]()[_0xf7b4('0x31')](function(_0x44dae9){if(_0x44dae9[_0xf7b4('0x57')]){_0x3831d4();}else{return _0x3b58ff[_0xf7b4('0x33')](0x193)[_0xf7b4('0x36')]({'message':_0xf7b4('0x58')});}})[_0xf7b4('0x42')](function(_0x20daf0){_0x3831d4(_0x20daf0);});});};exports['isMiddleware']=function(_0x309d52,_0x1bcda4,_0x2f2771){_0x309d52[_0xf7b4('0x59')]=!![];return _0x2f2771();};exports[_0xf7b4('0x5a')]=function signToken(_0x5759d9){return signJwt(_0x5759d9);};exports[_0xf7b4('0x5b')]=function(_0x1ae5ff,_0x7e2b4d){if(!_0x1ae5ff[_0xf7b4('0x2d')]){return _0x7e2b4d[_0xf7b4('0x33')](0x194)[_0xf7b4('0x36')]({'message':_0xf7b4('0x5c')});}var _0x5beb44={'payload':{'id':_0x1ae5ff['user']['id'],'role':_0x1ae5ff[_0xf7b4('0x2d')][_0xf7b4('0xc')]},'options':{'expiresIn':0x15180}};return signJwt(_0x5beb44)[_0xf7b4('0x31')](function(_0x4ce388){_0x7e2b4d['cookie']('motion.token',_0x4ce388);_0x7e2b4d[_0xf7b4('0x5d')](_0xf7b4('0x5e'));})[_0xf7b4('0x42')](function(_0x56db02){return _0x7e2b4d[_0xf7b4('0x33')](0x1f4)['send'](_0x56db02);});};exports[_0xf7b4('0x5f')]=function(_0x234b75){if(_[_0xf7b4('0x60')](_0x234b75[_0xf7b4('0x4c')])||_[_0xf7b4('0x60')](_0x234b75[_0xf7b4('0x61')])){return null;}else{return createJwt(_0x234b75);}};exports['generateApiKey']=function(_0x142506){_0x142506[_0xf7b4('0x4c')]=generateNonce();_0x142506[_0xf7b4('0x61')]=generateIssuedAt();return createJwt(_0x142506);};exports[_0xf7b4('0x62')]=function(_0x2e5686,_0x38caac){var _0xbcd536=_0x2e5686[_0xf7b4('0x45')][_0xf7b4('0x63')];if(_0xbcd536){var _0x34590f={'nonce':_0x38caac[_0xf7b4('0x4c')],'iat':_0x38caac[_0xf7b4('0x61')],'audience':hardwareConf[_0xf7b4('0x46')](),'issuer':hardwareConf[_0xf7b4('0x46')]()};return verifyJwt(_0xbcd536,_0x34590f)['then'](function(){return generateApiKey(_0x38caac);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0xf7b4('0x64')]=function(_0x1c5cfa){var _0x431b5b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x431b5b[_0xf7b4('0x65')](_0x1c5cfa))throw new db['Sequelize']['ValidationError'](_0xf7b4('0x66'));return;};exports[_0xf7b4('0x67')]=function(_0x396a4e,_0x5731cf,_0x4c7cd5){var _0x398b65=encryptor[_0xf7b4('0x68')](_0x5731cf)['split'](',');for(var _0xb74118=0x0;_0xb74118<_0x4c7cd5;_0xb74118++){if(!_0x398b65[_0xb74118])break;if(_0x396a4e[_0xf7b4('0x69')]()===_0x398b65[_0xb74118][_0xf7b4('0x69')]()){var _0x293abc=util[_0xf7b4('0x6a')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x4c7cd5);if(_0x4c7cd5===0x1){_0x293abc=_0xf7b4('0x6b');}throw new db[(_0xf7b4('0x6c'))][(_0xf7b4('0x6d'))](_0x293abc);}}return;};exports['updatePasswordsHistory']=function(_0x554649,_0x50a502){var _0x1b952a=_0x50a502?encryptor['decryptString'](_0x50a502)[_0xf7b4('0x6e')](','):[];if(_0x1b952a[_0xf7b4('0x6f')]===0x5){_0x1b952a[_0xf7b4('0x70')](-0x1,0x1);}_0x1b952a[_0xf7b4('0x71')](_0x554649);return encryptor[_0xf7b4('0x72')](_0x1b952a[_0xf7b4('0x73')](','));};function signJwt(_0x1d1ad2){var _0x3c61bf=BPromise[_0xf7b4('0x74')](jwt[_0xf7b4('0x75')],{'context':jwt});var _0x9e6bfc=_0x1d1ad2['secret']||config[_0xf7b4('0xb')][_0xf7b4('0x76')];return new BPromise(function(_0x4d4eeb,_0x5eb685){_0x3c61bf(_0x1d1ad2[_0xf7b4('0x77')],_0x9e6bfc,_0x1d1ad2[_0xf7b4('0x78')])['then'](function(_0x2ec905){_0x4d4eeb(_0x2ec905);})[_0xf7b4('0x42')](function(_0x107d7a){_0x5eb685(_0x107d7a);});});}function verifyJwt(_0x19333a,_0x3c7d5d,_0x2b386a){var _0x536089=BPromise['promisify'](jwt[_0xf7b4('0x79')],{'context':jwt});var _0x495f8f=_0x2b386a||config[_0xf7b4('0xb')][_0xf7b4('0x76')];return new BPromise(function(_0x565bd3,_0x96886){_0x536089(_0x19333a,_0x495f8f,_0x3c7d5d)[_0xf7b4('0x31')](function(_0x554946){_0x565bd3(_0x554946);})[_0xf7b4('0x42')](function(_0x76d018){_0x96886(_0x76d018);});});}function generateNonce(){return crypto[_0xf7b4('0x7a')](0x10)[_0xf7b4('0x7b')](_0xf7b4('0x7c'));}function generateIssuedAt(){return Math[_0xf7b4('0x7d')](Date['now']()/0x3e8)[_0xf7b4('0x7b')]();}function createJwt(_0x63fb71){var _0x316f55={'payload':{'iat':_0x63fb71[_0xf7b4('0x61')],'nonce':_0x63fb71[_0xf7b4('0x4c')]},'options':{'algorithm':_0xf7b4('0x7e'),'subject':_0x63fb71['id'][_0xf7b4('0x7b')](),'issuer':hardwareConf[_0xf7b4('0x46')](),'audience':hardwareConf[_0xf7b4('0x46')]()}};return signJwt(_0x316f55)[_0xf7b4('0x31')](function(_0x4eb39e){return{'iat':_0x63fb71[_0xf7b4('0x61')],'nonce':_0x63fb71[_0xf7b4('0x4c')],'token':_0x4eb39e};});}
\ No newline at end of file
+var _0x7d85=['Invalid\x20API\x20access\x20key','add','minutes','use','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','getLicense','update','Forbidden','isMiddleware','setTokenCookie','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','motion.token','redirect','/dashboards/general','retrieveApiKey','isNil','apiKeyIat','generateApiKey','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','Sequelize','ValidationError','decryptString','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','length','splice','unshift','encryptString','join','promisify','sign','options','verify','secrets','randomBytes','toString','hex','floor','now','HS512','../../mysqldb','../../config/environment','../../config/license/util','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','util','moment','session','role','name','internal','permissions','md5secret','voicePause','chatPause','mailPause','faxPause','openchannelPause','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','allowmessenger','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarExpires','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','hotdesk','interface','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','isChatInteractionAuthorized','isAuthenticated','params','closed','disposition','then','unmanaged','json','Forbidden.','authorization','startsWith','headers','Basic','User','find','status','Wrong\x20credentials.','user','catch','Bearer','Unknown\x20authorization\x20format','query','getUuid','apikey','sub','Setting','findOne','allowedLoginAttempts','blockDuration','apiKeyNonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled'];(function(_0x570a79,_0x37d8e1){var _0x3aa17f=function(_0x27d4cb){while(--_0x27d4cb){_0x570a79['push'](_0x570a79['shift']());}};_0x3aa17f(++_0x37d8e1);}(_0x7d85,0x12a));var _0x57d8=function(_0x3f1482,_0x233af8){_0x3f1482=_0x3f1482-0x0;var _0x3d3988=_0x7d85[_0x3f1482];return _0x3d3988;};'use strict';var db=require(_0x57d8('0x0'))['db'];var config=require(_0x57d8('0x1'));var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x57d8('0x2'));var encryptor=require('../encryptor');var _=require(_0x57d8('0x3'));var jwt=require(_0x57d8('0x4'));var expressJwt=require(_0x57d8('0x5'));var compose=require(_0x57d8('0x6'));var basicAuth=require(_0x57d8('0x7'));var crypto=require(_0x57d8('0x8'));var BPromise=require(_0x57d8('0x9'));var util=require(_0x57d8('0xa'));var moment=require(_0x57d8('0xb'));var validateJwt=expressJwt({'secret':config['secrets'][_0x57d8('0xc')]});var userAttributes=['id',_0x57d8('0xd'),'fullname',_0x57d8('0xe'),_0x57d8('0xf'),'email','userpic',_0x57d8('0x10'),_0x57d8('0x11'),_0x57d8('0x12'),_0x57d8('0x13'),_0x57d8('0x14'),_0x57d8('0x15'),'smsPause',_0x57d8('0x16'),'pauseType',_0x57d8('0x17'),_0x57d8('0x18'),_0x57d8('0x19'),_0x57d8('0x1a'),_0x57d8('0x1b'),_0x57d8('0x1c'),_0x57d8('0x1d'),_0x57d8('0x1e'),'phoneBarAutoAnswerDelay',_0x57d8('0x1f'),_0x57d8('0x20'),_0x57d8('0x21'),_0x57d8('0x22'),_0x57d8('0x23'),_0x57d8('0x24'),_0x57d8('0x25'),_0x57d8('0x26'),_0x57d8('0x27'),_0x57d8('0x28'),_0x57d8('0x29'),_0x57d8('0x2a'),_0x57d8('0x2b'),_0x57d8('0x2c'),_0x57d8('0x2d'),_0x57d8('0x2e'),_0x57d8('0x2f')];exports[_0x57d8('0x30')]=function(){return this[_0x57d8('0x31')](!![])['use'](function(_0x23dc0f,_0x43b33c,_0x437a53){if(_0x23dc0f['user']){_0x437a53();}else{return db['ChatInteraction']['findOne']({'where':{'id':_0x23dc0f[_0x57d8('0x32')]['id']},'attributes':['id',_0x57d8('0x33'),_0x57d8('0x34')],'raw':!![]})[_0x57d8('0x35')](function(_0x1e134a){if(_0x1e134a&&_0x1e134a['closed']){return _0x43b33c['status'](_0x1e134a[_0x57d8('0x34')]===_0x57d8('0x36')?0x195:0x193)[_0x57d8('0x37')]({'message':_0x1e134a[_0x57d8('0x34')]===_0x57d8('0x36')?'Unmanaged.':_0x57d8('0x38')});}else{_0x437a53();}})['catch'](function(_0x50a17d){_0x437a53(_0x50a17d);});}});};exports[_0x57d8('0x31')]=function isAuthenticated(_0x4d7230){return compose()['use'](function(_0x15e668,_0xbb3e58,_0x1b9808){var _0x256fa7;if(_0x15e668['headers'][_0x57d8('0x39')]){if(_[_0x57d8('0x3a')](_0x15e668[_0x57d8('0x3b')][_0x57d8('0x39')],_0x57d8('0x3c'))){var _0x127037=basicAuth(_0x15e668);db[_0x57d8('0x3d')][_0x57d8('0x3e')]({'where':{'name':_0x127037[_0x57d8('0xe')]}})[_0x57d8('0x35')](function(_0x5cdea4){if(!_0x5cdea4||!_0x5cdea4['authenticate'](_0x127037['pass'])){return _0xbb3e58[_0x57d8('0x3f')](0x191)[_0x57d8('0x37')]({'message':_0x57d8('0x40')});}_0x15e668[_0x57d8('0x41')]={'id':_0x5cdea4['id']};_0x1b9808();})[_0x57d8('0x42')](function(_0x57b453){_0x1b9808(_0x57b453);});}else if(_[_0x57d8('0x3a')](_0x15e668[_0x57d8('0x3b')][_0x57d8('0x39')],_0x57d8('0x43'))){validateJwt(_0x15e668,_0xbb3e58,_0x1b9808);}else{if(_0x4d7230){_0x1b9808();}else{return _0xbb3e58[_0x57d8('0x3f')](0x193)[_0x57d8('0x37')]({'message':_0x57d8('0x44')});}}}else if(_0x15e668[_0x57d8('0x45')]['apikey']){try{var _0x5a02cb={'audience':hardwareConf[_0x57d8('0x46')](),'issuer':hardwareConf[_0x57d8('0x46')]()};verifyJwt(_0x15e668[_0x57d8('0x45')][_0x57d8('0x47')],_0x5a02cb)[_0x57d8('0x35')](function(_0x4006e6){return db[_0x57d8('0x3d')]['find']({'where':{'id':_0x4006e6[_0x57d8('0x48')]}})['then'](function(_0x5cf7bd){_0x256fa7=_0x5cf7bd;return db[_0x57d8('0x49')][_0x57d8('0x4a')]({'where':{'id':0x1},'attributes':[_0x57d8('0x4b'),_0x57d8('0x4c')],'raw':!![]});})['then'](function(_0x9ed556){if(!_0x256fa7||!_['isEqual'](_0x256fa7[_0x57d8('0x4d')],_0x4006e6['nonce'])){return _0xbb3e58[_0x57d8('0x3f')](0x191)[_0x57d8('0x37')]({'message':_0x57d8('0x4e')});}if(_0x256fa7[_0x57d8('0x4f')]){return _0xbb3e58[_0x57d8('0x3f')](0x191)[_0x57d8('0x37')]({'message':_0x57d8('0x50')});}if(_0x256fa7['blocked']){if(_0x9ed556['blockDuration']>0x0){if(moment(_0x256fa7['blockedAt'])[_0x57d8('0x51')](_0x9ed556[_0x57d8('0x4c')],_0x57d8('0x52'))>moment()){return _0xbb3e58['status'](0x191)['json']({'message':_0x57d8('0x50')});}}else{return _0xbb3e58[_0x57d8('0x3f')](0x191)['json']({'message':_0x57d8('0x50')});}}_0x15e668[_0x57d8('0x41')]={'id':_0x256fa7['id']};_0x1b9808();});})[_0x57d8('0x42')](function(){return _0xbb3e58[_0x57d8('0x3f')](0x191)[_0x57d8('0x37')]({'message':_0x57d8('0x50')});});}catch(_0x1e54fd){_0x1b9808(_0x1e54fd);}}else if(_0x4d7230){_0x1b9808();}else{return _0xbb3e58[_0x57d8('0x3f')](0x193)[_0x57d8('0x37')]({'message':_0x57d8('0x44')});}})[_0x57d8('0x53')](function(_0x3977b0,_0x77b96c,_0x1238cd){if(_0x3977b0[_0x57d8('0x41')]){db[_0x57d8('0x3d')][_0x57d8('0x3e')]({'where':{'id':_0x3977b0[_0x57d8('0x41')]['id']},'attributes':userAttributes})[_0x57d8('0x35')](function(_0x3645ef){if(!_0x3645ef){return _0x77b96c['status'](0x194)[_0x57d8('0x37')]({'message':_0x57d8('0x54')});}_0x3977b0[_0x57d8('0x41')]=_0x3645ef;_0x1238cd();})[_0x57d8('0x42')](function(_0x4f8ec3){_0x1238cd(_0x4f8ec3);});}else if(_0x4d7230){_0x1238cd();}else{return _0x77b96c[_0x57d8('0x3f')](0x194)[_0x57d8('0x37')]({'message':_0x57d8('0x55')});}});};exports[_0x57d8('0x56')]=function canUpdate(){return compose()[_0x57d8('0x53')](function(_0x4ba73b,_0x38d38d,_0x4c5d6a){return licenseUtil[_0x57d8('0x57')]()[_0x57d8('0x35')](function(_0x433733){if(_0x433733[_0x57d8('0x58')]){_0x4c5d6a();}else{return _0x38d38d[_0x57d8('0x3f')](0x193)[_0x57d8('0x37')]({'message':_0x57d8('0x59')});}})[_0x57d8('0x42')](function(_0x267ff1){_0x4c5d6a(_0x267ff1);});});};exports[_0x57d8('0x5a')]=function(_0x21bfd7,_0x56c31e,_0x4dd0d0){_0x21bfd7[_0x57d8('0x5a')]=!![];return _0x4dd0d0();};exports['signToken']=function signToken(_0x539c0c){return signJwt(_0x539c0c);};exports[_0x57d8('0x5b')]=function(_0x2ace5d,_0x31aec8){if(!_0x2ace5d[_0x57d8('0x41')]){return _0x31aec8[_0x57d8('0x3f')](0x194)[_0x57d8('0x37')]({'message':_0x57d8('0x5c')});}var _0x408b62={'payload':{'id':_0x2ace5d[_0x57d8('0x41')]['id'],'role':_0x2ace5d[_0x57d8('0x41')][_0x57d8('0xd')]},'options':{'expiresIn':0x15180}};return signJwt(_0x408b62)['then'](function(_0x4f9612){_0x31aec8['cookie'](_0x57d8('0x5d'),_0x4f9612);_0x31aec8[_0x57d8('0x5e')](_0x57d8('0x5f'));})[_0x57d8('0x42')](function(_0x31f367){return _0x31aec8[_0x57d8('0x3f')](0x1f4)['send'](_0x31f367);});};exports[_0x57d8('0x60')]=function(_0x48cec3){if(_[_0x57d8('0x61')](_0x48cec3[_0x57d8('0x4d')])||_['isNil'](_0x48cec3[_0x57d8('0x62')])){return null;}else{return createJwt(_0x48cec3);}};exports[_0x57d8('0x63')]=function(_0x4a16b1){_0x4a16b1[_0x57d8('0x4d')]=generateNonce();_0x4a16b1[_0x57d8('0x62')]=generateIssuedAt();return createJwt(_0x4a16b1);};exports[_0x57d8('0x64')]=function(_0x578013,_0x26c722){var _0x568c64=_0x578013[_0x57d8('0x45')]['apikey'];if(_0x568c64){var _0x4cf548={'nonce':_0x26c722[_0x57d8('0x4d')],'iat':_0x26c722[_0x57d8('0x62')],'audience':hardwareConf['getUuid'](),'issuer':hardwareConf[_0x57d8('0x46')]()};return verifyJwt(_0x568c64,_0x4cf548)[_0x57d8('0x35')](function(){return generateApiKey(_0x26c722);});}else{throw{'message':_0x57d8('0x65')};}};exports['validatePasswordPattern']=function(_0x3f0586){var _0x4e8472=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x4e8472['test'](_0x3f0586))throw new db[(_0x57d8('0x66'))][(_0x57d8('0x67'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');return;};exports['validatePasswordHistory']=function(_0x28df60,_0x1f1bb9,_0x40ab07){var _0x55c7ed=encryptor[_0x57d8('0x68')](_0x1f1bb9)[_0x57d8('0x69')](',');for(var _0x2c2f8f=0x0;_0x2c2f8f<_0x40ab07;_0x2c2f8f++){if(!_0x55c7ed[_0x2c2f8f])break;if(_0x28df60[_0x57d8('0x6a')]()===_0x55c7ed[_0x2c2f8f]['toLowerCase']()){var _0x5ba7ac=util[_0x57d8('0x6b')](_0x57d8('0x6c'),_0x40ab07);if(_0x40ab07===0x1){_0x5ba7ac='The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.';}throw new db[(_0x57d8('0x66'))][(_0x57d8('0x67'))](_0x5ba7ac);}}return;};exports[_0x57d8('0x6d')]=function(_0x3d150b,_0x1b1fe4){var _0x1ed880=_0x1b1fe4?encryptor[_0x57d8('0x68')](_0x1b1fe4)[_0x57d8('0x69')](','):[];if(_0x1ed880[_0x57d8('0x6e')]===0x5){_0x1ed880[_0x57d8('0x6f')](-0x1,0x1);}_0x1ed880[_0x57d8('0x70')](_0x3d150b);return encryptor[_0x57d8('0x71')](_0x1ed880[_0x57d8('0x72')](','));};function signJwt(_0x794c48){var _0x3caf8e=BPromise[_0x57d8('0x73')](jwt[_0x57d8('0x74')],{'context':jwt});var _0x5e311a=_0x794c48['secret']||config['secrets'][_0x57d8('0xc')];return new BPromise(function(_0x3452cd,_0x5cbda7){_0x3caf8e(_0x794c48['payload'],_0x5e311a,_0x794c48[_0x57d8('0x75')])[_0x57d8('0x35')](function(_0x2b1de3){_0x3452cd(_0x2b1de3);})[_0x57d8('0x42')](function(_0x3252e3){_0x5cbda7(_0x3252e3);});});}function verifyJwt(_0x47a0af,_0x5bc8f7,_0x3426cd){var _0x44e46e=BPromise['promisify'](jwt[_0x57d8('0x76')],{'context':jwt});var _0x4068dc=_0x3426cd||config[_0x57d8('0x77')]['session'];return new BPromise(function(_0x197fad,_0x2eda8a){_0x44e46e(_0x47a0af,_0x4068dc,_0x5bc8f7)[_0x57d8('0x35')](function(_0x4cc83a){_0x197fad(_0x4cc83a);})['catch'](function(_0x21fa06){_0x2eda8a(_0x21fa06);});});}function generateNonce(){return crypto[_0x57d8('0x78')](0x10)[_0x57d8('0x79')](_0x57d8('0x7a'));}function generateIssuedAt(){return Math[_0x57d8('0x7b')](Date[_0x57d8('0x7c')]()/0x3e8)[_0x57d8('0x79')]();}function createJwt(_0x1c8cfa){var _0x410222={'payload':{'iat':_0x1c8cfa[_0x57d8('0x62')],'nonce':_0x1c8cfa[_0x57d8('0x4d')]},'options':{'algorithm':_0x57d8('0x7d'),'subject':_0x1c8cfa['id'][_0x57d8('0x79')](),'issuer':hardwareConf[_0x57d8('0x46')](),'audience':hardwareConf['getUuid']()}};return signJwt(_0x410222)[_0x57d8('0x35')](function(_0x4b5495){return{'iat':_0x1c8cfa['apiKeyIat'],'nonce':_0x1c8cfa[_0x57d8('0x4d')],'token':_0x4b5495};});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x083c=['base64','decryptString','crypto','lodash','../../config/environment','../../config/logger','app','secrets','session','aes-256-ctr','aes192','encrypt','algorithm','join','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','getCiphers','indexOf','hasOwnProperty','encryptFile','createReadStream','createWriteStream','createCipher','data','update','binary','write','final','end','close','unlink','createDecipher','encryptString','secret'];(function(_0x175ee9,_0x6405af){var _0x355c70=function(_0xa3b488){while(--_0xa3b488){_0x175ee9['push'](_0x175ee9['shift']());}};_0x355c70(++_0x6405af);}(_0x083c,0x1ec));var _0xc083=function(_0x4abd58,_0x523c62){_0x4abd58=_0x4abd58-0x0;var _0x3608a8=_0x083c[_0x4abd58];return _0x3608a8;};'use strict';var crypto=require(_0xc083('0x0'));var fs=require('fs');var BPromise=require('bluebird');var _=require(_0xc083('0x1'));var config=require(_0xc083('0x2'));var logger=require(_0xc083('0x3'))(_0xc083('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0xc083('0x5')][_0xc083('0x6')],'algorithm':_0xc083('0x7')};const fileOptions={'algorithm':_0xc083('0x8')};if(config[_0xc083('0x9')]&&config[_0xc083('0x9')]['algorithm']){var isSupported=isAlgorithmSupported(config[_0xc083('0x9')][_0xc083('0xa')]);if(isSupported){fileOptions[_0xc083('0xa')]=config[_0xc083('0x9')][_0xc083('0xa')];}else{var supportedAlgorithms=getSupportedCiphers()[_0xc083('0xb')](',\x20');logger[_0xc083('0xc')](config[_0xc083('0x9')][_0xc083('0xa')],_0xc083('0xd'),supportedAlgorithms);}}function isASupportedCipher(_0x510661){return AES_SUPPORTED_RX[_0xc083('0xe')](_0x510661);}function getSupportedCiphers(){return crypto[_0xc083('0xf')]()['filter'](isASupportedCipher);}function isAlgorithmSupported(_0x4c491b){return getSupportedCiphers()[_0xc083('0x10')](_0x4c491b)>-0x1;}function combineOptions(_0x7fafcc){var _0x33c863={};for(var _0x5553aa in fileOptions){if(fileOptions[_0xc083('0x11')](_0x5553aa)){_0x33c863[_0x5553aa]=fileOptions[_0x5553aa];}}if(_0x7fafcc){for(var _0x1d5ae6 in _0x7fafcc){if(_0x7fafcc['hasOwnProperty'](_0x1d5ae6)){_0x33c863[_0x1d5ae6]=_0x7fafcc[_0x1d5ae6];}}}return _0x33c863;}exports[_0xc083('0x12')]=function(_0x54e958,_0x492fa9,_0x1f0695,_0xebe357){return new BPromise(function(_0x29ccb9,_0x5014b3){_0xebe357=combineOptions(_0xebe357);var _0xf3001e=new Buffer(_0x1f0695);var _0x4bc0e4=fs[_0xc083('0x13')](_0x54e958);var _0x5d2ab6=fs[_0xc083('0x14')](_0x492fa9);var _0xb42d43=crypto[_0xc083('0x15')](_0xebe357['algorithm'],_0xf3001e);_0x4bc0e4['on'](_0xc083('0x16'),function(_0x304b3b){var _0x24f09d=new Buffer(_0xb42d43[_0xc083('0x17')](_0x304b3b),_0xc083('0x18'));_0x5d2ab6[_0xc083('0x19')](_0x24f09d);});_0x4bc0e4['on']('end',function(){try{var _0x5a6b4a=new Buffer(_0xb42d43[_0xc083('0x1a')](_0xc083('0x18')),'binary');_0x5d2ab6[_0xc083('0x19')](_0x5a6b4a);_0x5d2ab6[_0xc083('0x1b')]();_0x5d2ab6['on'](_0xc083('0x1c'),function(){return _0x29ccb9(_0x492fa9);});}catch(_0x7784e9){fs[_0xc083('0x1d')](_0x492fa9);return _0x5014b3(_0x7784e9);}});});};exports['decryptFile']=function(_0x546001,_0x4a52ae,_0x5bab4d,_0x549a3a){return new BPromise(function(_0x206f60,_0x5f2956){_0x549a3a=combineOptions(_0x549a3a);var _0x47f533=new Buffer(_0x5bab4d);var _0x4c273d=fs['createReadStream'](_0x546001);var _0x4900c9=fs[_0xc083('0x14')](_0x4a52ae);var _0x5089fe=crypto[_0xc083('0x1e')](_0x549a3a[_0xc083('0xa')],_0x47f533);_0x4c273d['on'](_0xc083('0x16'),function(_0x32fd13){var _0x1e29c7=new Buffer(_0x5089fe['update'](_0x32fd13),_0xc083('0x18'));_0x4900c9[_0xc083('0x19')](_0x1e29c7);});_0x4c273d['on'](_0xc083('0x1b'),function(){try{var _0x45a2bd=new Buffer(_0x5089fe[_0xc083('0x1a')](_0xc083('0x18')),_0xc083('0x18'));_0x4900c9['write'](_0x45a2bd);_0x4900c9[_0xc083('0x1b')]();_0x4900c9['on'](_0xc083('0x1c'),function(){return _0x206f60(_0x4a52ae);});}catch(_0x5f27f0){fs[_0xc083('0x1d')](_0x4a52ae);return _0x5f2956(_0x5f27f0);}});});};exports[_0xc083('0x1f')]=function(_0x42b1e6,_0x532d03,_0x2f06f1){var _0x54edba=_0x2f06f1||stringOptions['algorithm'];var _0x4a11f4=_0x532d03||stringOptions[_0xc083('0x20')];var _0x5000ed=crypto[_0xc083('0x15')](_0x54edba,_0x4a11f4);var _0x4b458d=_0x5000ed[_0xc083('0x17')](_0x42b1e6,'utf8','base64');_0x4b458d+=_0x5000ed['final'](_0xc083('0x21'));return _0x4b458d;};exports[_0xc083('0x22')]=function(_0x4a17cb,_0x281b5c,_0x54ebe0){var _0x282538=_0x54ebe0||stringOptions[_0xc083('0xa')];var _0x5e5e68=_0x281b5c||stringOptions[_0xc083('0x20')];var _0x430b34=crypto['createDecipher'](_0x282538,_0x5e5e68);var _0x5807a8=_0x430b34[_0xc083('0x17')](_0x4a17cb,_0xc083('0x21'),'utf8');_0x5807a8+=_0x430b34['final']('utf8');return _0x5807a8;};
\ No newline at end of file
+var _0x42d1=['app','secrets','session','aes-256-ctr','aes192','encrypt','algorithm','join','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','getCiphers','filter','indexOf','hasOwnProperty','createReadStream','createWriteStream','createCipher','data','update','binary','write','end','final','close','decryptFile','createDecipher','encryptString','secret','base64','decryptString','utf8','crypto','bluebird','../../config/environment'];(function(_0x3505b7,_0x3dc5cf){var _0x29316c=function(_0x5683c1){while(--_0x5683c1){_0x3505b7['push'](_0x3505b7['shift']());}};_0x29316c(++_0x3dc5cf);}(_0x42d1,0x195));var _0x142d=function(_0x5ce35d,_0x98776d){_0x5ce35d=_0x5ce35d-0x0;var _0x5a01fb=_0x42d1[_0x5ce35d];return _0x5a01fb;};'use strict';var crypto=require(_0x142d('0x0'));var fs=require('fs');var BPromise=require(_0x142d('0x1'));var _=require('lodash');var config=require(_0x142d('0x2'));var logger=require('../../config/logger')(_0x142d('0x3'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x142d('0x4')][_0x142d('0x5')],'algorithm':_0x142d('0x6')};const fileOptions={'algorithm':_0x142d('0x7')};if(config[_0x142d('0x8')]&&config[_0x142d('0x8')]['algorithm']){var isSupported=isAlgorithmSupported(config['encrypt'][_0x142d('0x9')]);if(isSupported){fileOptions[_0x142d('0x9')]=config['encrypt']['algorithm'];}else{var supportedAlgorithms=getSupportedCiphers()[_0x142d('0xa')](',\x20');logger[_0x142d('0xb')](config[_0x142d('0x8')][_0x142d('0x9')],_0x142d('0xc'),supportedAlgorithms);}}function isASupportedCipher(_0x5ca541){return AES_SUPPORTED_RX['test'](_0x5ca541);}function getSupportedCiphers(){return crypto[_0x142d('0xd')]()[_0x142d('0xe')](isASupportedCipher);}function isAlgorithmSupported(_0x49e994){return getSupportedCiphers()[_0x142d('0xf')](_0x49e994)>-0x1;}function combineOptions(_0x3e582e){var _0x58ef6d={};for(var _0x1d1ee4 in fileOptions){if(fileOptions[_0x142d('0x10')](_0x1d1ee4)){_0x58ef6d[_0x1d1ee4]=fileOptions[_0x1d1ee4];}}if(_0x3e582e){for(var _0x2a02fe in _0x3e582e){if(_0x3e582e[_0x142d('0x10')](_0x2a02fe)){_0x58ef6d[_0x2a02fe]=_0x3e582e[_0x2a02fe];}}}return _0x58ef6d;}exports['encryptFile']=function(_0x4ba1cb,_0x1d296b,_0x4926e1,_0x5ee845){return new BPromise(function(_0x401d21,_0x397abe){_0x5ee845=combineOptions(_0x5ee845);var _0x1e36d6=new Buffer(_0x4926e1);var _0x27529c=fs[_0x142d('0x11')](_0x4ba1cb);var _0x2d0ee1=fs[_0x142d('0x12')](_0x1d296b);var _0x7ab848=crypto[_0x142d('0x13')](_0x5ee845[_0x142d('0x9')],_0x1e36d6);_0x27529c['on'](_0x142d('0x14'),function(_0x1767c3){var _0x539869=new Buffer(_0x7ab848[_0x142d('0x15')](_0x1767c3),_0x142d('0x16'));_0x2d0ee1[_0x142d('0x17')](_0x539869);});_0x27529c['on'](_0x142d('0x18'),function(){try{var _0x408847=new Buffer(_0x7ab848[_0x142d('0x19')](_0x142d('0x16')),_0x142d('0x16'));_0x2d0ee1['write'](_0x408847);_0x2d0ee1[_0x142d('0x18')]();_0x2d0ee1['on'](_0x142d('0x1a'),function(){return _0x401d21(_0x1d296b);});}catch(_0x1e4927){fs['unlink'](_0x1d296b);return _0x397abe(_0x1e4927);}});});};exports[_0x142d('0x1b')]=function(_0x2ad0c7,_0x28cb8f,_0x129f48,_0x19bc05){return new BPromise(function(_0x5a7381,_0x52704b){_0x19bc05=combineOptions(_0x19bc05);var _0x1bc953=new Buffer(_0x129f48);var _0xb2f21f=fs['createReadStream'](_0x2ad0c7);var _0x285298=fs[_0x142d('0x12')](_0x28cb8f);var _0x4e8725=crypto[_0x142d('0x1c')](_0x19bc05[_0x142d('0x9')],_0x1bc953);_0xb2f21f['on']('data',function(_0x47c3c9){var _0x199f79=new Buffer(_0x4e8725['update'](_0x47c3c9),_0x142d('0x16'));_0x285298[_0x142d('0x17')](_0x199f79);});_0xb2f21f['on'](_0x142d('0x18'),function(){try{var _0x5a0b32=new Buffer(_0x4e8725[_0x142d('0x19')](_0x142d('0x16')),'binary');_0x285298[_0x142d('0x17')](_0x5a0b32);_0x285298[_0x142d('0x18')]();_0x285298['on'](_0x142d('0x1a'),function(){return _0x5a7381(_0x28cb8f);});}catch(_0x42f155){fs['unlink'](_0x28cb8f);return _0x52704b(_0x42f155);}});});};exports[_0x142d('0x1d')]=function(_0x268bd5,_0x1c1e6a,_0x5300ac){var _0x1a8231=_0x5300ac||stringOptions['algorithm'];var _0x5e2631=_0x1c1e6a||stringOptions[_0x142d('0x1e')];var _0x4fa60f=crypto[_0x142d('0x13')](_0x1a8231,_0x5e2631);var _0x461a2a=_0x4fa60f[_0x142d('0x15')](_0x268bd5,'utf8',_0x142d('0x1f'));_0x461a2a+=_0x4fa60f['final']('base64');return _0x461a2a;};exports[_0x142d('0x20')]=function(_0x41758a,_0x28d0e3,_0x282f83){var _0x11e4ce=_0x282f83||stringOptions[_0x142d('0x9')];var _0x56dd38=_0x28d0e3||stringOptions['secret'];var _0x2ad652=crypto[_0x142d('0x1c')](_0x11e4ce,_0x56dd38);var _0x400127=_0x2ad652['update'](_0x41758a,_0x142d('0x1f'),_0x142d('0x21'));_0x400127+=_0x2ad652[_0x142d('0x19')](_0x142d('0x21'));return _0x400127;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c6a=['argv','savename','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','splitSizeCsv','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','length','existsSync','join','mkdirSync','each','%s%d.%s','csv','writeFileSync','%s.%s','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','zip','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','util','path','lodash','to-csv','zip-dir','rimraf','dbH','analytics'];(function(_0x59c620,_0x16cee3){var _0x115d99=function(_0x31e016){while(--_0x31e016){_0x59c620['push'](_0x59c620['shift']());}};_0x115d99(++_0x16cee3);}(_0x5c6a,0xfc));var _0xa5c6=function(_0x56d31e,_0xfb354){_0x56d31e=_0x56d31e-0x0;var _0x585090=_0x5c6a[_0x56d31e];return _0x585090;};'use strict';var util=require(_0xa5c6('0x0'));var path=require(_0xa5c6('0x1'));var _=require(_0xa5c6('0x2'));var csv=require(_0xa5c6('0x3'));var fs=require('fs');var BPromise=require('bluebird');var zipdir=require(_0xa5c6('0x4'));var rimraf=require(_0xa5c6('0x5'));var db=require('../../mysqldb')['db'];var dbH=require('../../mysqldb')[_0xa5c6('0x6')];var logger=require('../../config/logger')(_0xa5c6('0x7'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xa5c6('0x8')][0x3];var PATH=process[_0xa5c6('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0xebd94a,_0x26352e){var _0xf948ce={'status':_0xebd94a};var _0x3cd68c={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x26352e){_0xf948ce[_0xa5c6('0x9')]=_0x26352e;}return db['AnalyticExtractedReport'][_0xa5c6('0xa')](_0xf948ce,_0x3cd68c);}function main(){var _0x366a68=0x1388;var _0x5f4e5b;logger[_0xa5c6('0xb')](util[_0xa5c6('0xc')](_0xa5c6('0xd'),EXTRACTED_REPORT_ID,_0xa5c6('0xe')));return db[_0xa5c6('0xf')][_0xa5c6('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xa5c6('0x11')]})[_0xa5c6('0x12')](function(_0x56f807){if(_0x56f807){_0x5f4e5b=_0x56f807;_0x366a68=_0x5f4e5b['splitSizeCsv']||0x1388;}})[_0xa5c6('0x12')](function(){return dbH[_0xa5c6('0x13')][_0xa5c6('0x14')](util[_0xa5c6('0xc')](_0xa5c6('0x15'),QUERY),{'type':dbH[_0xa5c6('0x13')][_0xa5c6('0x16')][_0xa5c6('0x17')]});})[_0xa5c6('0x12')](function(_0x435446){if(!_0x435446[0x0][_0xa5c6('0x18')]){return analyticExtractedReport(_0xa5c6('0x19'));}var _0x1c8315=[];var _0x33c119=0x0;if(_0x5f4e5b[_0xa5c6('0x1a')]){if(_0x435446&&_0x435446['length']){var _0x1f17a1=_[_0xa5c6('0x1b')](_0x435446[0x0]['num']/_0x366a68);var _0x4c0e04=Number[_0xa5c6('0x1c')](_0x435446[0x0][_0xa5c6('0x18')]/_0x366a68)?_0x435446[0x0]['num']%_0x366a68:0x0;_0x1f17a1[_0xa5c6('0x1d')](function(_0x3fa0ba){if(_0x3fa0ba>0x0){_0x33c119+=_0x366a68;}_0x1c8315[_0xa5c6('0x1e')](dbH[_0xa5c6('0x13')][_0xa5c6('0x14')](util['format'](_0xa5c6('0x1f'),QUERY,_0x366a68,_0x33c119),{'type':dbH['sequelize'][_0xa5c6('0x16')][_0xa5c6('0x17')]}));});if(_0x4c0e04>0x0){_0x33c119+=_0x366a68;_0x1c8315['push'](dbH[_0xa5c6('0x13')][_0xa5c6('0x14')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x4c0e04,_0x33c119),{'type':dbH[_0xa5c6('0x13')][_0xa5c6('0x16')]['SELECT']}));}}}else{_0x1c8315[_0xa5c6('0x1e')](dbH['sequelize']['query'](QUERY,{'type':dbH[_0xa5c6('0x13')][_0xa5c6('0x16')][_0xa5c6('0x17')]}));}var _0x27f76d=path[_0xa5c6('0x20')](PATH);var _0x28cfb7=path[_0xa5c6('0x21')](PATH,_0xa5c6('0x22'));var _0x686abf=_0x5f4e5b[_0xa5c6('0x1a')]&&_0x1c8315[_0xa5c6('0x23')]>0x1;var _0x325834=[];if(!fs[_0xa5c6('0x24')](path[_0xa5c6('0x25')](_0x27f76d,_0x28cfb7))&&_0x686abf){fs[_0xa5c6('0x26')](path[_0xa5c6('0x25')](_0x27f76d,_0x28cfb7));}return BPromise[_0xa5c6('0x27')](_0x1c8315,function(_0x14e3eb){_0x325834[_0xa5c6('0x1e')](_0x14e3eb);})[_0xa5c6('0x12')](function(){for(var _0x2ece03=0x0;_0x2ece03<_0x325834['length'];_0x2ece03+=0x1){var _0xd5f725;var _0x9d1199=_0x325834[_0x2ece03];if(_0x686abf){_0xd5f725=path[_0xa5c6('0x25')](_0x27f76d,_0x28cfb7,util['format'](_0xa5c6('0x28'),_0x28cfb7,_0x2ece03,_0xa5c6('0x29')));}else{_0xd5f725=path[_0xa5c6('0x25')](_0x27f76d,util[_0xa5c6('0xc')]('%s.%s',_0x28cfb7,'csv'));}fs[_0xa5c6('0x2a')](_0xd5f725,csv(_0x9d1199));}})[_0xa5c6('0x12')](function(){if(_0x686abf){return new Promise(function(_0x284ef4){zipdir(path[_0xa5c6('0x25')](_0x27f76d,_0x28cfb7),{'saveTo':path[_0xa5c6('0x25')](_0x27f76d,util[_0xa5c6('0xc')](_0xa5c6('0x2b'),_0x28cfb7,'zip'))},function(_0x1e80df,_0x410dc0){rimraf(path['join'](_0x27f76d,_0x28cfb7),function(){});_0x284ef4(_0xa5c6('0x2c'));});});}})[_0xa5c6('0x12')](function(){logger['info'](util['format'](_0xa5c6('0x2d'),EXTRACTED_REPORT_ID,_0xa5c6('0xe')));return analyticExtractedReport(_0xa5c6('0x2e'),_0x686abf?util['format'](_0xa5c6('0x2b'),_0x28cfb7,_0x686abf?_0xa5c6('0x2f'):_0xa5c6('0x29')):null);});})[_0xa5c6('0x30')](function(_0x321770){logger[_0xa5c6('0xb')](util[_0xa5c6('0xc')](_0xa5c6('0x31'),EXTRACTED_REPORT_ID,_0xa5c6('0xe')),util['inspect'](_0x321770,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xa5c6('0x32'));})[_0xa5c6('0x33')](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
+var _0x19c1=['catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','inspect','Failed','finally','exit','path','lodash','to-csv','bluebird','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','find','split','splitSizeCsv','then','query','QueryTypes','SELECT','Empty','length','range','isInteger','num','forEach','push','sequelize','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','each','%s%d.%s','csv','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed'];(function(_0x2f32c4,_0x531dc6){var _0x3f3018=function(_0x406998){while(--_0x406998){_0x2f32c4['push'](_0x2f32c4['shift']());}};_0x3f3018(++_0x531dc6);}(_0x19c1,0xa3));var _0x119c=function(_0x263d88,_0x6342db){_0x263d88=_0x263d88-0x0;var _0x30c92b=_0x19c1[_0x263d88];return _0x30c92b;};'use strict';var util=require('util');var path=require(_0x119c('0x0'));var _=require(_0x119c('0x1'));var csv=require(_0x119c('0x2'));var fs=require('fs');var BPromise=require(_0x119c('0x3'));var zipdir=require('zip-dir');var rimraf=require(_0x119c('0x4'));var db=require(_0x119c('0x5'))['db'];var dbH=require('../../mysqldb')[_0x119c('0x6')];var logger=require('../../config/logger')(_0x119c('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0x119c('0x8')][0x2]);var QUERY=process['argv'][0x3];var PATH=process[_0x119c('0x8')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x221726,_0x3bc78e){var _0x116caa={'status':_0x221726};var _0x27a74f={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3bc78e){_0x116caa[_0x119c('0x9')]=_0x3bc78e;}return db[_0x119c('0xa')][_0x119c('0xb')](_0x116caa,_0x27a74f);}function main(){var _0x6601b3=0x1388;var _0x57d97a;logger[_0x119c('0xc')](util[_0x119c('0xd')](_0x119c('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0x119c('0xf')][_0x119c('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x119c('0x11'),_0x119c('0x12')]})['then'](function(_0x19acdc){if(_0x19acdc){_0x57d97a=_0x19acdc;_0x6601b3=_0x57d97a[_0x119c('0x12')]||0x1388;}})[_0x119c('0x13')](function(){return dbH['sequelize'][_0x119c('0x14')](util[_0x119c('0xd')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x119c('0x15')][_0x119c('0x16')]});})['then'](function(_0x3cd73b){if(!_0x3cd73b[0x0]['num']){return analyticExtractedReport(_0x119c('0x17'));}var _0x2fc900=[];var _0x2c0ff1=0x0;if(_0x57d97a[_0x119c('0x11')]){if(_0x3cd73b&&_0x3cd73b[_0x119c('0x18')]){var _0x823d0d=_[_0x119c('0x19')](_0x3cd73b[0x0]['num']/_0x6601b3);var _0x1148d1=Number[_0x119c('0x1a')](_0x3cd73b[0x0][_0x119c('0x1b')]/_0x6601b3)?_0x3cd73b[0x0]['num']%_0x6601b3:0x0;_0x823d0d[_0x119c('0x1c')](function(_0x1de854){if(_0x1de854>0x0){_0x2c0ff1+=_0x6601b3;}_0x2fc900[_0x119c('0x1d')](dbH[_0x119c('0x1e')]['query'](util['format'](_0x119c('0x1f'),QUERY,_0x6601b3,_0x2c0ff1),{'type':dbH['sequelize']['QueryTypes'][_0x119c('0x16')]}));});if(_0x1148d1>0x0){_0x2c0ff1+=_0x6601b3;_0x2fc900['push'](dbH['sequelize'][_0x119c('0x14')](util['format'](_0x119c('0x1f'),QUERY,_0x1148d1,_0x2c0ff1),{'type':dbH[_0x119c('0x1e')]['QueryTypes']['SELECT']}));}}}else{_0x2fc900[_0x119c('0x1d')](dbH['sequelize'][_0x119c('0x14')](QUERY,{'type':dbH['sequelize'][_0x119c('0x15')][_0x119c('0x16')]}));}var _0x1d94fc=path[_0x119c('0x20')](PATH);var _0x1e2739=path[_0x119c('0x21')](PATH,_0x119c('0x22'));var _0x290af1=_0x57d97a['split']&&_0x2fc900[_0x119c('0x18')]>0x1;var _0x238a36=[];if(!fs[_0x119c('0x23')](path['join'](_0x1d94fc,_0x1e2739))&&_0x290af1){fs['mkdirSync'](path[_0x119c('0x24')](_0x1d94fc,_0x1e2739));}return BPromise[_0x119c('0x25')](_0x2fc900,function(_0x3bfa00){_0x238a36[_0x119c('0x1d')](_0x3bfa00);})['then'](function(){for(var _0x1245c4=0x0;_0x1245c4<_0x238a36[_0x119c('0x18')];_0x1245c4+=0x1){var _0x25cfc2;var _0x122306=_0x238a36[_0x1245c4];if(_0x290af1){_0x25cfc2=path['join'](_0x1d94fc,_0x1e2739,util[_0x119c('0xd')](_0x119c('0x26'),_0x1e2739,_0x1245c4,_0x119c('0x27')));}else{_0x25cfc2=path[_0x119c('0x24')](_0x1d94fc,util['format'](_0x119c('0x28'),_0x1e2739,_0x119c('0x27')));}fs['writeFileSync'](_0x25cfc2,csv(_0x122306));}})[_0x119c('0x13')](function(){if(_0x290af1){return new Promise(function(_0x2f62f7){zipdir(path[_0x119c('0x24')](_0x1d94fc,_0x1e2739),{'saveTo':path['join'](_0x1d94fc,util[_0x119c('0xd')]('%s.%s',_0x1e2739,_0x119c('0x29')))},function(_0x2a6c45,_0x1e9f90){rimraf(path[_0x119c('0x24')](_0x1d94fc,_0x1e2739),function(){});_0x2f62f7(_0x119c('0x2a'));});});}})['then'](function(){logger[_0x119c('0xc')](util['format'](_0x119c('0x2b'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x119c('0x2c'),_0x290af1?util[_0x119c('0xd')]('%s.%s',_0x1e2739,_0x290af1?_0x119c('0x29'):_0x119c('0x27')):null);});})[_0x119c('0x2d')](function(_0x2be5be){logger['info'](util[_0x119c('0xd')](_0x119c('0x2e'),EXTRACTED_REPORT_ID,_0x119c('0x2f')),util[_0x119c('0x30')](_0x2be5be,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x119c('0x31'));})[_0x119c('0x32')](function(){process[_0x119c('0x33')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec40=['format','name','startDate','length','header','pageBreak','before','push','landscape','toString','\x20/\x20','footer','Arial','Empty','Setting','find','split','then','splitSizePdf','range','num','isInteger','query','QueryTypes','SELECT','%s\x20limit\x20%d\x20OFFSET\x20%d','sequelize','dirname','basename','.pdf','join','mkdirSync','each','createPdfKitDocument','%s%d.%s','%s.%s','pdf','all','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','pipe','createWriteStream','finish','error','createPdfFromHTML','lodash','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','savename','AnalyticExtractedReport','update','pick','map','value','fill','auto','body','chunk','keys','forEach'];(function(_0x43ad44,_0x245019){var _0x15da55=function(_0x1bf41b){while(--_0x1bf41b){_0x43ad44['push'](_0x43ad44['shift']());}};_0x15da55(++_0x245019);}(_0xec40,0xf4));var _0x0ec4=function(_0x4cae38,_0x1f7372){_0x4cae38=_0x4cae38-0x0;var _0x4fc0d6=_0xec40[_0x4cae38];return _0x4fc0d6;};'use strict';var _=require(_0x0ec4('0x0'));var fs=require('fs');var util=require(_0x0ec4('0x1'));var path=require(_0x0ec4('0x2'));var moment=require(_0x0ec4('0x3'));var htmlToPdfmake=require(_0x0ec4('0x4'));var PdfPrinter=require(_0x0ec4('0x5'));var zipdir=require(_0x0ec4('0x6'));var rimraf=require('rimraf');var JSDOM=require(_0x0ec4('0x7'))[_0x0ec4('0x8')];var window=new JSDOM('')[_0x0ec4('0x9')];var BPromise=require(_0x0ec4('0xa'));var db=require(_0x0ec4('0xb'))['db'];var dbH=require(_0x0ec4('0xb'))[_0x0ec4('0xc')];var logger=require(_0x0ec4('0xd'))(_0x0ec4('0xe'));var EXTRACTED_REPORT_ID=Number(process[_0x0ec4('0xf')][0x2]);var QUERY=process[_0x0ec4('0xf')][0x3];var PATH=process[_0x0ec4('0xf')][0x4];var NAME=process[_0x0ec4('0xf')][0x5];var FORMAT=_0x0ec4('0x10');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x4a44b0,_0x3816f7){var _0x27eae9={'status':_0x4a44b0};var _0x2b5165={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3816f7){_0x27eae9[_0x0ec4('0x11')]=_0x3816f7;}return db[_0x0ec4('0x12')][_0x0ec4('0x13')](_0x27eae9,_0x2b5165);}function getHeaders(_0x55c0e9){return _['map'](_0x55c0e9,function(_0x14bc1b){return{'text':_0x14bc1b,'style':'tableHeader'};});}function getRows(_0x5c19a8,_0x264f7e){return _['map'](_0x264f7e,function(_0x239b7b){return _(_0x239b7b)[_0x0ec4('0x14')](_0x5c19a8)[_0x0ec4('0x15')](function(_0x228a78){return _0x228a78?_['toString'](_0x228a78):'';})[_0x0ec4('0x16')]();});}function createTable(_0x1869f7,_0x2a728e){var _0x2d5aa4={'widths':_[_0x0ec4('0x17')](Array(_0x1869f7['length']),0x91),'heights':function(_0x3e0f76){return _0x3e0f76===0x0?_0x0ec4('0x18'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0xc2cd80=getHeaders(_0x1869f7);_0x2d5aa4[_0x0ec4('0x19')]['push'](_0xc2cd80);var _0x3021ec=getRows(_0x1869f7,_0x2a728e);_0x2d5aa4[_0x0ec4('0x19')]=_0x2d5aa4['body']['concat'](_0x3021ec);return _0x2d5aa4;}function createTables(_0x2e9fa7){var _0x50fd0c=[];var _0x1e7b06=_[_0x0ec4('0x1a')](Object[_0x0ec4('0x1b')](_0x2e9fa7[0x0]),0x5);_0x1e7b06[_0x0ec4('0x1c')](function(_0x304f09){_0x50fd0c['push'](createTable(_0x304f09,_0x2e9fa7));});return _0x50fd0c;}function getPDFDocDefinition(_0x29da78){var _0x1ec124=util[_0x0ec4('0x1d')]('Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s',NAME,EXTRACTED_REPORT[_0x0ec4('0x1e')],moment(EXTRACTED_REPORT[_0x0ec4('0x1f')])[_0x0ec4('0x1d')](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0x0ec4('0x1d')](FORMAT));var _0x1b6735=[];for(var _0x36549b=0x0;_0x36549b<_0x29da78[_0x0ec4('0x20')];_0x36549b++){var _0x3a1a9a=[];if(_0x36549b===0x0){_0x3a1a9a['push']({'text':_0x1ec124,'style':_0x0ec4('0x21')});}var _0x5df376={'table':_0x29da78[_0x36549b]};if(_0x36549b>0x0){_0x5df376[_0x0ec4('0x22')]=_0x0ec4('0x23');_0x5df376['margin']=[0x0,0x46,0x0,0x0];}_0x3a1a9a['push'](_0x5df376);_0x1b6735[_0x0ec4('0x24')](_0x3a1a9a);}return{'pageSize':'A4','pageOrientation':_0x0ec4('0x25'),'content':_0x1b6735,'footer':function(_0x1998a1,_0x58ef75){return{'text':_0x1998a1[_0x0ec4('0x26')]()+_0x0ec4('0x27')+_0x58ef75,'style':_0x0ec4('0x28')};},'defaultStyle':{'font':_0x0ec4('0x29')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x4db9fd){var _0x59a129=0x1388;var _0x2936de;if(!_0x4db9fd[0x0]['num']){return analyticExtractedReport(_0x0ec4('0x2a'));}return db[_0x0ec4('0x2b')][_0x0ec4('0x2c')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x0ec4('0x2d'),'splitSizePdf']})[_0x0ec4('0x2e')](function(_0x3880dd){if(_0x3880dd){_0x2936de=_0x3880dd;_0x59a129=_0x2936de[_0x0ec4('0x2f')]||0x3e8;}})['then'](function(){var _0x275afb=[];var _0x99a10e=0x0;if(_0x2936de[_0x0ec4('0x2d')]){if(_0x4db9fd&&_0x4db9fd['length']){var _0xfa7b2c=_[_0x0ec4('0x30')](_0x4db9fd[0x0][_0x0ec4('0x31')]/_0x59a129);var _0x282d2e=Number[_0x0ec4('0x32')](_0x4db9fd[0x0][_0x0ec4('0x31')]/_0x59a129)?_0x4db9fd[0x0][_0x0ec4('0x31')]%_0x59a129:0x0;_0xfa7b2c[_0x0ec4('0x1c')](function(_0x17ab56){if(_0x17ab56>0x0){_0x99a10e+=_0x59a129;}_0x275afb[_0x0ec4('0x24')](dbH['sequelize'][_0x0ec4('0x33')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x59a129,_0x99a10e),{'type':dbH['sequelize'][_0x0ec4('0x34')][_0x0ec4('0x35')]}));});if(_0x282d2e>0x0){_0x99a10e+=_0x59a129;_0x275afb['push'](dbH['sequelize'][_0x0ec4('0x33')](util[_0x0ec4('0x1d')](_0x0ec4('0x36'),QUERY,_0x282d2e,_0x99a10e),{'type':dbH['sequelize']['QueryTypes'][_0x0ec4('0x35')]}));}}}else{_0x275afb[_0x0ec4('0x24')](dbH[_0x0ec4('0x37')][_0x0ec4('0x33')](QUERY,{'type':dbH['sequelize'][_0x0ec4('0x34')][_0x0ec4('0x35')]}));}var _0x2244da=path[_0x0ec4('0x38')](PATH);var _0x491698=path[_0x0ec4('0x39')](PATH,_0x0ec4('0x3a'));var _0x3f63f5=_0x2936de[_0x0ec4('0x2d')]&&_0x275afb['length']>0x1;var _0x32656f=[];if(!fs['existsSync'](path[_0x0ec4('0x3b')](_0x2244da,_0x491698))&&_0x3f63f5){fs[_0x0ec4('0x3c')](path[_0x0ec4('0x3b')](_0x2244da,_0x491698));}return BPromise[_0x0ec4('0x3d')](_0x275afb,function(_0x1170f8){_0x32656f[_0x0ec4('0x24')](_0x1170f8);})[_0x0ec4('0x2e')](function(){var _0xda084f=[];for(var _0x405ef4=0x0;_0x405ef4<_0x32656f[_0x0ec4('0x20')];_0x405ef4+=0x1){var _0x20bd09=_0x32656f[_0x405ef4];var _0x5ad396=createTables(_['flatten'](_0x20bd09));var _0x2416fd;var _0x1be7ef=getPDFDocDefinition(_0x5ad396);var _0x2de479=getPDFPrinter();var _0x488747=_0x2de479[_0x0ec4('0x3e')](_0x1be7ef);if(_0x3f63f5){_0x2416fd=path[_0x0ec4('0x3b')](_0x2244da,_0x491698,util[_0x0ec4('0x1d')](_0x0ec4('0x3f'),_0x491698,_0x405ef4,'pdf'));}else{_0x2416fd=path['join'](_0x2244da,util['format'](_0x0ec4('0x40'),_0x491698,_0x0ec4('0x41')));}_0xda084f[_0x0ec4('0x24')](writePDFDocument(_0x488747,_0x2416fd));}return Promise[_0x0ec4('0x42')](_0xda084f);})[_0x0ec4('0x2e')](function(){if(_0x3f63f5){return new Promise(function(_0x4299a6){zipdir(path['join'](_0x2244da,_0x491698),{'saveTo':path[_0x0ec4('0x3b')](_0x2244da,util[_0x0ec4('0x1d')]('%s.%s',_0x491698,_0x0ec4('0x43')))},function(){rimraf(path[_0x0ec4('0x3b')](_0x2244da,_0x491698),function(){});_0x4299a6(_0x0ec4('0x44'));});});}})[_0x0ec4('0x2e')](function(){if(!_0x3f63f5)return;rimraf(path[_0x0ec4('0x3b')](_0x2244da,_0x491698),function(){});})[_0x0ec4('0x2e')](function(){logger[_0x0ec4('0x45')](util[_0x0ec4('0x1d')](_0x0ec4('0x46'),EXTRACTED_REPORT_ID,_0x0ec4('0x47')));return analyticExtractedReport(_0x0ec4('0x48'),_0x3f63f5?util['format']('%s.%s',_0x491698,_0x3f63f5?_0x0ec4('0x43'):_0x0ec4('0x41')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger['info'](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x0ec4('0x47')));return db[_0x0ec4('0x12')][_0x0ec4('0x49')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0x0ec4('0x2e')](function(_0x30697e){EXTRACTED_REPORT=_0x30697e;return dbH[_0x0ec4('0x37')][_0x0ec4('0x33')](util['format'](_0x0ec4('0x4a'),QUERY),{'type':dbH[_0x0ec4('0x37')][_0x0ec4('0x34')]['SELECT']});})[_0x0ec4('0x2e')](extractReport)[_0x0ec4('0x4b')](function(_0x1582b5){logger[_0x0ec4('0x45')](util[_0x0ec4('0x1d')](_0x0ec4('0x4c'),EXTRACTED_REPORT_ID,_0x0ec4('0x47')),util[_0x0ec4('0x4d')](_0x1582b5,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x0ec4('0x4e'));})['finally'](function(){process['exit'](EXIT_CODE);});}main();function getPDFPrinter(){var _0x466826=new PdfPrinter({'Arial':{'normal':__dirname+_0x0ec4('0x4f'),'bold':__dirname+_0x0ec4('0x50'),'italics':__dirname+'/fonts/arial-italic.ttf','bolditalics':__dirname+'/fonts/arial-bold-italic.ttf'}});return _0x466826;}function getPDFDocDefinitionFromHTML(_0xfe2fe0,_0x2fcc2d){var _0x46c8bb=util['format']('%s\x20#%d',_0x2fcc2d[_0x0ec4('0x51')],_0x2fcc2d[_0x0ec4('0x52')]);var _0x582c11=moment()['format'](_0x0ec4('0x53'))[_0x0ec4('0x26')]();var _0x16c201=htmlToPdfmake(_0xfe2fe0,{'window':window,'tableAutoSize':!![]});return{'content':[_0x16c201],'defaultStyle':{'font':_0x0ec4('0x29')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':'center','margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x0ec4('0x54'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0x0ec4('0x54')}},'header':function(){return[{'text':_0x0ec4('0x55'),'style':_0x0ec4('0x21')}];},'footer':function(_0x44d06b,_0x471475){return[{'text':util[_0x0ec4('0x1d')]('\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s',_0x46c8bb,_0x44d06b,_0x471475,_0x582c11),'style':_0x0ec4('0x28')}];}};}function writePDFDocument(_0x1ae913,_0x31357c){return new Promise(function(_0x4cb2ab,_0x2210ec){var _0x235473=_0x1ae913[_0x0ec4('0x56')](fs[_0x0ec4('0x57')](_0x31357c));_0x235473['on'](_0x0ec4('0x58'),function(){_0x4cb2ab(_0x0ec4('0x58'));});_0x235473['on'](_0x0ec4('0x59'),function(_0x250c39){_0x2210ec(_0x250c39);});_0x1ae913['end']();});}exports[_0x0ec4('0x5a')]=function(_0x3b807d,_0x21a45c){var _0x4fe9e2=getPDFPrinter();var _0x1aa2fc=getPDFDocDefinitionFromHTML(_0x3b807d,_0x21a45c);var _0x549b2e=_0x4fe9e2[_0x0ec4('0x3e')](_0x1aa2fc);return writePDFDocument(_0x549b2e,_0x21a45c[_0x0ec4('0x2')])[_0x0ec4('0x4b')](function(_0x131325){throw _0x131325;});};
\ No newline at end of file
+var _0x96d3=['concat','keys','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','header','pageBreak','margin','landscape','toString','Arial','black','right','num','Setting','find','split','splitSizePdf','then','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','dirname','basename','.pdf','existsSync','join','mkdirSync','each','flatten','createPdfKitDocument','%s.%s','all','zip','zip\x20finished','info','PDF','Completed','pdf','AnalyticExtractedReport','QueryTypes','catch','inspect','Failed','exit','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','interactionId','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','pipe','createWriteStream','error','end','createPdfFromHTML','lodash','util','path','moment','html-to-pdfmake','pdfmake/src/printer','zip-dir','jsdom','JSDOM','window','bluebird','../../mysqldb','dbH','argv','savename','update','map','tableHeader','pick','value','fill','length','auto','push','body'];(function(_0x8a3198,_0x1624c3){var _0x111aa8=function(_0x31997d){while(--_0x31997d){_0x8a3198['push'](_0x8a3198['shift']());}};_0x111aa8(++_0x1624c3);}(_0x96d3,0x97));var _0x396d=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x96d3[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0x396d('0x0'));var fs=require('fs');var util=require(_0x396d('0x1'));var path=require(_0x396d('0x2'));var moment=require(_0x396d('0x3'));var htmlToPdfmake=require(_0x396d('0x4'));var PdfPrinter=require(_0x396d('0x5'));var zipdir=require(_0x396d('0x6'));var rimraf=require('rimraf');var JSDOM=require(_0x396d('0x7'))[_0x396d('0x8')];var window=new JSDOM('')[_0x396d('0x9')];var BPromise=require(_0x396d('0xa'));var db=require('../../mysqldb')['db'];var dbH=require(_0x396d('0xb'))[_0x396d('0xc')];var logger=require('../../config/logger')('analytics');var EXTRACTED_REPORT_ID=Number(process[_0x396d('0xd')][0x2]);var QUERY=process[_0x396d('0xd')][0x3];var PATH=process[_0x396d('0xd')][0x4];var NAME=process[_0x396d('0xd')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x543109,_0x15e574){var _0x2993ee={'status':_0x543109};var _0x20283b={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x15e574){_0x2993ee[_0x396d('0xe')]=_0x15e574;}return db['AnalyticExtractedReport'][_0x396d('0xf')](_0x2993ee,_0x20283b);}function getHeaders(_0x4d7f2f){return _[_0x396d('0x10')](_0x4d7f2f,function(_0x296600){return{'text':_0x296600,'style':_0x396d('0x11')};});}function getRows(_0x5f317a,_0x3fb5d5){return _[_0x396d('0x10')](_0x3fb5d5,function(_0x376e7b){return _(_0x376e7b)[_0x396d('0x12')](_0x5f317a)[_0x396d('0x10')](function(_0xffac1f){return _0xffac1f?_['toString'](_0xffac1f):'';})[_0x396d('0x13')]();});}function createTable(_0x31507d,_0x1d1892){var _0x349661={'widths':_[_0x396d('0x14')](Array(_0x31507d[_0x396d('0x15')]),0x91),'heights':function(_0x5b5463){return _0x5b5463===0x0?_0x396d('0x16'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x34c2ae=getHeaders(_0x31507d);_0x349661['body'][_0x396d('0x17')](_0x34c2ae);var _0x113105=getRows(_0x31507d,_0x1d1892);_0x349661[_0x396d('0x18')]=_0x349661[_0x396d('0x18')][_0x396d('0x19')](_0x113105);return _0x349661;}function createTables(_0x441f08){var _0x5804d1=[];var _0x135afc=_['chunk'](Object[_0x396d('0x1a')](_0x441f08[0x0]),0x5);_0x135afc['forEach'](function(_0x36c1b3){_0x5804d1['push'](createTable(_0x36c1b3,_0x441f08));});return _0x5804d1;}function getPDFDocDefinition(_0x2ababc){var _0x15cbac=util[_0x396d('0x1b')](_0x396d('0x1c'),NAME,EXTRACTED_REPORT[_0x396d('0x1d')],moment(EXTRACTED_REPORT[_0x396d('0x1e')])[_0x396d('0x1b')](FORMAT),moment(EXTRACTED_REPORT[_0x396d('0x1f')])[_0x396d('0x1b')](FORMAT));var _0x3dd17c=[];for(var _0x41451e=0x0;_0x41451e<_0x2ababc[_0x396d('0x15')];_0x41451e++){var _0x281a49=[];if(_0x41451e===0x0){_0x281a49[_0x396d('0x17')]({'text':_0x15cbac,'style':_0x396d('0x20')});}var _0x340b8a={'table':_0x2ababc[_0x41451e]};if(_0x41451e>0x0){_0x340b8a[_0x396d('0x21')]='before';_0x340b8a[_0x396d('0x22')]=[0x0,0x46,0x0,0x0];}_0x281a49['push'](_0x340b8a);_0x3dd17c[_0x396d('0x17')](_0x281a49);}return{'pageSize':'A4','pageOrientation':_0x396d('0x23'),'content':_0x3dd17c,'footer':function(_0x31b115,_0x629d03){return{'text':_0x31b115[_0x396d('0x24')]()+'\x20/\x20'+_0x629d03,'style':'footer'};},'defaultStyle':{'font':_0x396d('0x25')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':_0x396d('0x26')},'footer':{'alignment':_0x396d('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x249e5b){var _0x59b12a=0x1388;var _0x3818de;if(!_0x249e5b[0x0][_0x396d('0x28')]){return analyticExtractedReport('Empty');}return db[_0x396d('0x29')][_0x396d('0x2a')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x396d('0x2b'),_0x396d('0x2c')]})['then'](function(_0x4bf001){if(_0x4bf001){_0x3818de=_0x4bf001;_0x59b12a=_0x3818de['splitSizePdf']||0x3e8;}})[_0x396d('0x2d')](function(){var _0x56b42a=[];var _0x417ede=0x0;if(_0x3818de['split']){if(_0x249e5b&&_0x249e5b[_0x396d('0x15')]){var _0x34dd22=_[_0x396d('0x2e')](_0x249e5b[0x0][_0x396d('0x28')]/_0x59b12a);var _0x2d0112=Number[_0x396d('0x2f')](_0x249e5b[0x0][_0x396d('0x28')]/_0x59b12a)?_0x249e5b[0x0][_0x396d('0x28')]%_0x59b12a:0x0;_0x34dd22['forEach'](function(_0x27fa22){if(_0x27fa22>0x0){_0x417ede+=_0x59b12a;}_0x56b42a[_0x396d('0x17')](dbH[_0x396d('0x30')][_0x396d('0x31')](util[_0x396d('0x1b')](_0x396d('0x32'),QUERY,_0x59b12a,_0x417ede),{'type':dbH['sequelize']['QueryTypes']['SELECT']}));});if(_0x2d0112>0x0){_0x417ede+=_0x59b12a;_0x56b42a['push'](dbH[_0x396d('0x30')][_0x396d('0x31')](util[_0x396d('0x1b')](_0x396d('0x32'),QUERY,_0x2d0112,_0x417ede),{'type':dbH[_0x396d('0x30')]['QueryTypes'][_0x396d('0x33')]}));}}}else{_0x56b42a[_0x396d('0x17')](dbH['sequelize'][_0x396d('0x31')](QUERY,{'type':dbH[_0x396d('0x30')]['QueryTypes'][_0x396d('0x33')]}));}var _0x4d5249=path[_0x396d('0x34')](PATH);var _0x3c821d=path[_0x396d('0x35')](PATH,_0x396d('0x36'));var _0x16e0e6=_0x3818de['split']&&_0x56b42a[_0x396d('0x15')]>0x1;var _0x54b150=[];if(!fs[_0x396d('0x37')](path[_0x396d('0x38')](_0x4d5249,_0x3c821d))&&_0x16e0e6){fs[_0x396d('0x39')](path[_0x396d('0x38')](_0x4d5249,_0x3c821d));}return BPromise[_0x396d('0x3a')](_0x56b42a,function(_0x3be712){_0x54b150[_0x396d('0x17')](_0x3be712);})[_0x396d('0x2d')](function(){var _0x2aec34=[];for(var _0x1da122=0x0;_0x1da122<_0x54b150[_0x396d('0x15')];_0x1da122+=0x1){var _0x29c152=_0x54b150[_0x1da122];var _0x49927e=createTables(_[_0x396d('0x3b')](_0x29c152));var _0x3396a1;var _0x45ae51=getPDFDocDefinition(_0x49927e);var _0x1b4e00=getPDFPrinter();var _0x79c21a=_0x1b4e00[_0x396d('0x3c')](_0x45ae51);if(_0x16e0e6){_0x3396a1=path[_0x396d('0x38')](_0x4d5249,_0x3c821d,util['format']('%s%d.%s',_0x3c821d,_0x1da122,'pdf'));}else{_0x3396a1=path[_0x396d('0x38')](_0x4d5249,util[_0x396d('0x1b')](_0x396d('0x3d'),_0x3c821d,'pdf'));}_0x2aec34[_0x396d('0x17')](writePDFDocument(_0x79c21a,_0x3396a1));}return Promise[_0x396d('0x3e')](_0x2aec34);})[_0x396d('0x2d')](function(){if(_0x16e0e6){return new Promise(function(_0x120810){zipdir(path[_0x396d('0x38')](_0x4d5249,_0x3c821d),{'saveTo':path[_0x396d('0x38')](_0x4d5249,util[_0x396d('0x1b')]('%s.%s',_0x3c821d,_0x396d('0x3f')))},function(){rimraf(path[_0x396d('0x38')](_0x4d5249,_0x3c821d),function(){});_0x120810(_0x396d('0x40'));});});}})[_0x396d('0x2d')](function(){if(!_0x16e0e6)return;rimraf(path['join'](_0x4d5249,_0x3c821d),function(){});})[_0x396d('0x2d')](function(){logger[_0x396d('0x41')](util[_0x396d('0x1b')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,_0x396d('0x42')));return analyticExtractedReport(_0x396d('0x43'),_0x16e0e6?util[_0x396d('0x1b')]('%s.%s',_0x3c821d,_0x16e0e6?_0x396d('0x3f'):_0x396d('0x44')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0x396d('0x41')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'PDF'));return db[_0x396d('0x45')]['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})[_0x396d('0x2d')](function(_0x176592){EXTRACTED_REPORT=_0x176592;return dbH[_0x396d('0x30')]['query'](util[_0x396d('0x1b')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x396d('0x46')]['SELECT']});})[_0x396d('0x2d')](extractReport)[_0x396d('0x47')](function(_0x5af682){logger[_0x396d('0x41')](util[_0x396d('0x1b')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x396d('0x42')),util[_0x396d('0x48')](_0x5af682,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x396d('0x49'));})['finally'](function(){process[_0x396d('0x4a')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x1b5843=new PdfPrinter({'Arial':{'normal':__dirname+'/fonts/arial-regular.ttf','bold':__dirname+_0x396d('0x4b'),'italics':__dirname+_0x396d('0x4c'),'bolditalics':__dirname+_0x396d('0x4d')}});return _0x1b5843;}function getPDFDocDefinitionFromHTML(_0x412204,_0x558c3b){var _0x1b90cf=util[_0x396d('0x1b')](_0x396d('0x4e'),_0x558c3b['channel'],_0x558c3b[_0x396d('0x4f')]);var _0x28d294=moment()[_0x396d('0x1b')]('YYYY-MM-DD')[_0x396d('0x24')]();var _0x573e25=htmlToPdfmake(_0x412204,{'window':window,'tableAutoSize':!![]});return{'content':[_0x573e25],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0x396d('0x50'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0x396d('0x50'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0x396d('0x51'),'style':_0x396d('0x20')}];},'footer':function(_0x14e98c,_0xe1930b){return[{'text':util['format'](_0x396d('0x52'),_0x1b90cf,_0x14e98c,_0xe1930b,_0x28d294),'style':'footer'}];}};}function writePDFDocument(_0x11184a,_0x1c1ffa){return new Promise(function(_0x53f0ce,_0x6dd3f){var _0x47b7d9=_0x11184a[_0x396d('0x53')](fs[_0x396d('0x54')](_0x1c1ffa));_0x47b7d9['on']('finish',function(){_0x53f0ce('finish');});_0x47b7d9['on'](_0x396d('0x55'),function(_0x47772c){_0x6dd3f(_0x47772c);});_0x11184a[_0x396d('0x56')]();});}exports[_0x396d('0x57')]=function(_0x23e89a,_0x5bcc12){var _0x2d5f73=getPDFPrinter();var _0xc7547f=getPDFDocDefinitionFromHTML(_0x23e89a,_0x5bcc12);var _0x36274f=_0x2d5f73[_0x396d('0x3c')](_0xc7547f);return writePDFDocument(_0x36274f,_0x5bcc12['path'])[_0x396d('0x47')](function(_0x13e292){throw _0x13e292;});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b6a=['AnalyticExtractedReport','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','find','split','splitSizeXlsx','then','sequelize','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','length','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.xlsx','existsSync','join','each','%s%d.%s','writeFileSync','binary','%s.%s','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','XLSX','xlsx','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','path','json2xls','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename'];(function(_0x44e324,_0x4b10ad){var _0x39a6ec=function(_0x1f0019){while(--_0x1f0019){_0x44e324['push'](_0x44e324['shift']());}};_0x39a6ec(++_0x4b10ad);}(_0x4b6a,0x146));var _0xa4b6=function(_0x1fccb1,_0x39bd47){_0x1fccb1=_0x1fccb1-0x0;var _0x107b67=_0x4b6a[_0x1fccb1];return _0x107b67;};'use strict';var util=require('util');var path=require(_0xa4b6('0x0'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0xa4b6('0x1'));var BPromise=require('bluebird');var zipdir=require(_0xa4b6('0x2'));var rimraf=require(_0xa4b6('0x3'));var db=require(_0xa4b6('0x4'))['db'];var dbH=require(_0xa4b6('0x4'))[_0xa4b6('0x5')];var logger=require(_0xa4b6('0x6'))(_0xa4b6('0x7'));var EXTRACTED_REPORT_ID=Number(process[_0xa4b6('0x8')][0x2]);var QUERY=process[_0xa4b6('0x8')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x45f709,_0x2bb4c0){var _0xf54ab={'status':_0x45f709};var _0x355ba3={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x2bb4c0){_0xf54ab[_0xa4b6('0x9')]=_0x2bb4c0;}return db[_0xa4b6('0xa')]['update'](_0xf54ab,_0x355ba3);}function main(){var _0x321d07=0x1388;var _0x2629e9;logger[_0xa4b6('0xb')](util[_0xa4b6('0xc')](_0xa4b6('0xd'),EXTRACTED_REPORT_ID,'XLSX'));return db['Setting'][_0xa4b6('0xe')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xa4b6('0xf'),_0xa4b6('0x10')]})['then'](function(_0xe71d66){if(_0xe71d66){_0x2629e9=_0xe71d66;_0x321d07=_0x2629e9[_0xa4b6('0x10')]||0x1388;}})[_0xa4b6('0x11')](function(){return dbH[_0xa4b6('0x12')][_0xa4b6('0x13')](util[_0xa4b6('0xc')](_0xa4b6('0x14'),QUERY),{'type':dbH[_0xa4b6('0x12')][_0xa4b6('0x15')][_0xa4b6('0x16')]});})[_0xa4b6('0x11')](function(_0x40d8e4){if(!_0x40d8e4[0x0][_0xa4b6('0x17')]){return analyticExtractedReport('Empty');}var _0x3c3272=[];var _0x5a4e89=0x0;if(_0x2629e9[_0xa4b6('0xf')]){if(_0x40d8e4&&_0x40d8e4[_0xa4b6('0x18')]){var _0x4c25e2=_['range'](_0x40d8e4[0x0]['num']/_0x321d07);var _0x389926=Number[_0xa4b6('0x19')](_0x40d8e4[0x0]['num']/_0x321d07)?_0x40d8e4[0x0][_0xa4b6('0x17')]%_0x321d07:0x0;_0x4c25e2[_0xa4b6('0x1a')](function(_0x2cd932){if(_0x2cd932>0x0){_0x5a4e89+=_0x321d07;}_0x3c3272[_0xa4b6('0x1b')](dbH[_0xa4b6('0x12')][_0xa4b6('0x13')](util['format'](_0xa4b6('0x1c'),QUERY,_0x321d07,_0x5a4e89),{'type':dbH['sequelize'][_0xa4b6('0x15')][_0xa4b6('0x16')]}));});if(_0x389926>0x0){_0x5a4e89+=_0x321d07;_0x3c3272[_0xa4b6('0x1b')](dbH[_0xa4b6('0x12')][_0xa4b6('0x13')](util['format'](_0xa4b6('0x1c'),QUERY,_0x389926,_0x5a4e89),{'type':dbH[_0xa4b6('0x12')]['QueryTypes'][_0xa4b6('0x16')]}));}}}else{_0x3c3272[_0xa4b6('0x1b')](dbH[_0xa4b6('0x12')][_0xa4b6('0x13')](QUERY,{'type':dbH['sequelize'][_0xa4b6('0x15')][_0xa4b6('0x16')]}));}var _0x461d70=path['dirname'](PATH);var _0x485b55=path[_0xa4b6('0x1d')](PATH,_0xa4b6('0x1e'));var _0x1092af=_0x2629e9['split']&&_0x3c3272[_0xa4b6('0x18')]>0x1;var _0x17fa04=[];if(!fs[_0xa4b6('0x1f')](path[_0xa4b6('0x20')](_0x461d70,_0x485b55))&&_0x1092af){fs['mkdirSync'](path[_0xa4b6('0x20')](_0x461d70,_0x485b55));}return BPromise[_0xa4b6('0x21')](_0x3c3272,function(_0x678ffd){_0x17fa04[_0xa4b6('0x1b')](_0x678ffd);})[_0xa4b6('0x11')](function(){for(var _0x260411=0x0;_0x260411<_0x17fa04['length'];_0x260411+=0x1){var _0x3e8dc5;var _0x93d374=_0x17fa04[_0x260411];if(_0x1092af){_0x3e8dc5=path['join'](_0x461d70,_0x485b55,util['format'](_0xa4b6('0x22'),_0x485b55,_0x260411,'xlsx'));}else{_0x3e8dc5=path[_0xa4b6('0x20')](_0x461d70,util[_0xa4b6('0xc')]('%s.%s',_0x485b55,'xlsx'));}fs[_0xa4b6('0x23')](_0x3e8dc5,json2xls(_0x93d374),_0xa4b6('0x24'));}})[_0xa4b6('0x11')](function(){if(_0x1092af){return new Promise(function(_0x186709){zipdir(path[_0xa4b6('0x20')](_0x461d70,_0x485b55),{'saveTo':path[_0xa4b6('0x20')](_0x461d70,util[_0xa4b6('0xc')](_0xa4b6('0x25'),_0x485b55,'zip'))},function(_0x4aeede,_0x486ce7){rimraf(path['join'](_0x461d70,_0x485b55),function(){});_0x186709(_0xa4b6('0x26'));});});}})['then'](function(){logger['info'](util[_0xa4b6('0xc')](_0xa4b6('0x27'),EXTRACTED_REPORT_ID,_0xa4b6('0x28')));return analyticExtractedReport('Completed',_0x1092af?util[_0xa4b6('0xc')](_0xa4b6('0x25'),_0x485b55,_0x1092af?'zip':_0xa4b6('0x29')):null);});})[_0xa4b6('0x2a')](function(_0x3d7890){logger['info'](util['format'](_0xa4b6('0x2b'),EXTRACTED_REPORT_ID,'XLSX'),util[_0xa4b6('0x2c')](_0x3d7890,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xa4b6('0x2d'));})[_0xa4b6('0x2e')](function(){process[_0xa4b6('0x2f')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0x8d92=['forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','QueryTypes','SELECT','.xlsx','length','existsSync','join','mkdirSync','each','xlsx','%s.%s','writeFileSync','binary','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','exit','util','path','lodash','json2xls','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','split','splitSizeXlsx','then','query','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','sequelize','num','isInteger'];(function(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0x8d92,0x13c));var _0x28d9=function(_0x362519,_0x5d067b){_0x362519=_0x362519-0x0;var _0x134ba4=_0x8d92[_0x362519];return _0x134ba4;};'use strict';var util=require(_0x28d9('0x0'));var path=require(_0x28d9('0x1'));var _=require(_0x28d9('0x2'));var fs=require('fs');var json2xls=require(_0x28d9('0x3'));var BPromise=require('bluebird');var zipdir=require(_0x28d9('0x4'));var rimraf=require(_0x28d9('0x5'));var db=require(_0x28d9('0x6'))['db'];var dbH=require(_0x28d9('0x6'))[_0x28d9('0x7')];var logger=require(_0x28d9('0x8'))(_0x28d9('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x28d9('0xa')][0x2]);var QUERY=process[_0x28d9('0xa')][0x3];var PATH=process[_0x28d9('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2e7a8f,_0x4e3c16){var _0x50c129={'status':_0x2e7a8f};var _0x208b9c={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x4e3c16){_0x50c129[_0x28d9('0xb')]=_0x4e3c16;}return db[_0x28d9('0xc')][_0x28d9('0xd')](_0x50c129,_0x208b9c);}function main(){var _0x5b36a7=0x1388;var _0x4f8786;logger[_0x28d9('0xe')](util[_0x28d9('0xf')](_0x28d9('0x10'),EXTRACTED_REPORT_ID,_0x28d9('0x11')));return db[_0x28d9('0x12')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x28d9('0x13'),_0x28d9('0x14')]})[_0x28d9('0x15')](function(_0xc56ce9){if(_0xc56ce9){_0x4f8786=_0xc56ce9;_0x5b36a7=_0x4f8786[_0x28d9('0x14')]||0x1388;}})[_0x28d9('0x15')](function(){return dbH['sequelize'][_0x28d9('0x16')](util['format'](_0x28d9('0x17'),QUERY),{'type':dbH[_0x28d9('0x18')]['QueryTypes']['SELECT']});})[_0x28d9('0x15')](function(_0x54739d){if(!_0x54739d[0x0][_0x28d9('0x19')]){return analyticExtractedReport('Empty');}var _0x350c29=[];var _0x1b4fd3=0x0;if(_0x4f8786[_0x28d9('0x13')]){if(_0x54739d&&_0x54739d['length']){var _0x340756=_['range'](_0x54739d[0x0]['num']/_0x5b36a7);var _0xe57b8=Number[_0x28d9('0x1a')](_0x54739d[0x0][_0x28d9('0x19')]/_0x5b36a7)?_0x54739d[0x0][_0x28d9('0x19')]%_0x5b36a7:0x0;_0x340756[_0x28d9('0x1b')](function(_0x4d74ed){if(_0x4d74ed>0x0){_0x1b4fd3+=_0x5b36a7;}_0x350c29[_0x28d9('0x1c')](dbH[_0x28d9('0x18')][_0x28d9('0x16')](util[_0x28d9('0xf')](_0x28d9('0x1d'),QUERY,_0x5b36a7,_0x1b4fd3),{'type':dbH['sequelize'][_0x28d9('0x1e')]['SELECT']}));});if(_0xe57b8>0x0){_0x1b4fd3+=_0x5b36a7;_0x350c29[_0x28d9('0x1c')](dbH[_0x28d9('0x18')]['query'](util[_0x28d9('0xf')](_0x28d9('0x1d'),QUERY,_0xe57b8,_0x1b4fd3),{'type':dbH['sequelize']['QueryTypes'][_0x28d9('0x1f')]}));}}}else{_0x350c29['push'](dbH[_0x28d9('0x18')][_0x28d9('0x16')](QUERY,{'type':dbH[_0x28d9('0x18')][_0x28d9('0x1e')][_0x28d9('0x1f')]}));}var _0x145059=path['dirname'](PATH);var _0x117a54=path['basename'](PATH,_0x28d9('0x20'));var _0x350555=_0x4f8786[_0x28d9('0x13')]&&_0x350c29[_0x28d9('0x21')]>0x1;var _0x529b2c=[];if(!fs[_0x28d9('0x22')](path[_0x28d9('0x23')](_0x145059,_0x117a54))&&_0x350555){fs[_0x28d9('0x24')](path[_0x28d9('0x23')](_0x145059,_0x117a54));}return BPromise[_0x28d9('0x25')](_0x350c29,function(_0x6820c2){_0x529b2c[_0x28d9('0x1c')](_0x6820c2);})[_0x28d9('0x15')](function(){for(var _0x10d13e=0x0;_0x10d13e<_0x529b2c[_0x28d9('0x21')];_0x10d13e+=0x1){var _0x30b6a9;var _0xce142b=_0x529b2c[_0x10d13e];if(_0x350555){_0x30b6a9=path[_0x28d9('0x23')](_0x145059,_0x117a54,util[_0x28d9('0xf')]('%s%d.%s',_0x117a54,_0x10d13e,_0x28d9('0x26')));}else{_0x30b6a9=path[_0x28d9('0x23')](_0x145059,util['format'](_0x28d9('0x27'),_0x117a54,_0x28d9('0x26')));}fs[_0x28d9('0x28')](_0x30b6a9,json2xls(_0xce142b),_0x28d9('0x29'));}})[_0x28d9('0x15')](function(){if(_0x350555){return new Promise(function(_0x3e8900){zipdir(path['join'](_0x145059,_0x117a54),{'saveTo':path['join'](_0x145059,util['format']('%s.%s',_0x117a54,_0x28d9('0x2a')))},function(_0x486d31,_0x312fba){rimraf(path[_0x28d9('0x23')](_0x145059,_0x117a54),function(){});_0x3e8900(_0x28d9('0x2b'));});});}})[_0x28d9('0x15')](function(){logger[_0x28d9('0xe')](util[_0x28d9('0xf')](_0x28d9('0x2c'),EXTRACTED_REPORT_ID,_0x28d9('0x11')));return analyticExtractedReport(_0x28d9('0x2d'),_0x350555?util['format'](_0x28d9('0x27'),_0x117a54,_0x350555?_0x28d9('0x2a'):_0x28d9('0x26')):null);});})[_0x28d9('0x2e')](function(_0x7ae749){logger['info'](util[_0x28d9('0xf')](_0x28d9('0x2f'),EXTRACTED_REPORT_ID,_0x28d9('0x11')),util['inspect'](_0x7ae749,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport('Failed');})['finally'](function(){process[_0x28d9('0x30')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a48=['_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','length','toLowerCase','createdAt','updatedAt','interval','*,*,*,*','map','tag','CDR(tag)=','hasOwnProperty','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1',',${EXTEN},','last','concat','transaction','bulkCreate','sortBy','catch','error','rewrite','lodash','util','models','findAll','then','intervals','VoiceExtension','IntervalId','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','exten','queue','playback','priority','extension','find','extensions','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','push','CDR(routeid)=','outbound','CDR(destination)=','cutdigits','${EXTEN}','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','recordingFormat'];(function(_0x23a18e,_0xef0888){var _0xbe623=function(_0xf8653a){while(--_0xf8653a){_0x23a18e['push'](_0x23a18e['shift']());}};_0xbe623(++_0xef0888);}(_0x9a48,0x1ce));var _0x89a4=function(_0x239a4b,_0x90265a){_0x239a4b=_0x239a4b-0x0;var _0xd6307e=_0x9a48[_0x239a4b];return _0xd6307e;};'use strict';var _=require(_0x89a4('0x0'));var util=require(_0x89a4('0x1'));function rewrite(_0x283354,_0x3955ed){var _0x3f31a9=this;return _0x283354[_0x89a4('0x2')]['Interval'][_0x89a4('0x3')]({'raw':!![]})[_0x89a4('0x4')](function(_0x5e8cf6){_0x3f31a9[_0x89a4('0x5')]=_0x5e8cf6;return _0x283354['models'][_0x89a4('0x6')]['findAll']({'where':{'IntervalId':_0x3955ed[_0x89a4('0x7')]},'raw':!![]});})[_0x89a4('0x4')](function(_0x20a984){return _0x283354['models'][_0x89a4('0x6')]['findAll']({'where':{'exten':{'$in':_['uniq'](_['map'](_0x20a984,'exten'))}},'order':[{'raw':_0x89a4('0x8')}],'raw':!![]});})[_0x89a4('0x4')](function(_0x14020d){var _0x469b37=_[_0x89a4('0x9')](_0x14020d,{'priority':'1'});var _0x127cd1=_['filter'](_0x14020d,{'isApp':0x1});var _0x1fca57=_[_0x89a4('0xa')](_0x127cd1,_0x89a4('0xb'));var _0x2add85=[_0x89a4('0xc'),_0x89a4('0xd')];var _0x2d0cfc=[];var _0x4ac986=[];for(var _0x4596a5 in _0x1fca57){if(_0x1fca57['hasOwnProperty'](_0x4596a5)){_0x3f31a9[_0x89a4('0xe')]=0x2;_0x3f31a9['extensions']=[];_0x3f31a9[_0x89a4('0xf')]=_[_0x89a4('0x10')](_0x469b37,{'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')]});_0x3f31a9[_0x89a4('0x11')]['push']({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':util[_0x89a4('0x14')](_0x89a4('0x15'),_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')]),'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});if(_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')]===_0x89a4('0x18')){_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x1a')+_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')],'context':_0x1fca57[_0x4596a5][0x0]['context'],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});}else if(_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')]===_0x89a4('0x1b')){if(_0x3f31a9[_0x89a4('0xf')]){_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x1c')+(_0x3f31a9[_0x89a4('0xf')][_0x89a4('0x1d')]?'${EXTEN:'+_0x3f31a9[_0x89a4('0xf')]['cutdigits']+'}':_0x89a4('0x1e')),'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});}_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x1a')+_0x1fca57[_0x4596a5][0x0]['VoiceExtensionId'],'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});var _0x2cbc8c=_0x3f31a9[_0x89a4('0xe')]++;_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':'ExecIf','appdata':_0x89a4('0x1f')+(_0x2cbc8c+0x2)+_0x89a4('0x20')+(_0x2cbc8c+0x1)+')','context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x2cbc8c,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});if(_0x3f31a9[_0x89a4('0xf')]){_0x3f31a9[_0x89a4('0x11')]['push']({'type':_0x1fca57[_0x4596a5][0x0]['type'],'app':'Set','appdata':_0x3f31a9[_0x89a4('0xf')][_0x89a4('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x3f31a9[_0x89a4('0xf')][_0x89a4('0x1d')]+'}':_0x89a4('0x21'),'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});}_0x3f31a9['extensions'][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':'outboundrouteid='+_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')],'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0]['VoiceExtensionId']});if(_0x3f31a9[_0x89a4('0xf')]&&_0x3f31a9['extension']['hasOwnProperty']('recordingFormat')&&_0x3f31a9['extension'][_0x89a4('0x22')]!=='none'){_0x3f31a9['extensions']['push']({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x23'),'context':_0x1fca57[_0x4596a5][0x0]['context'],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9['priority']++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});_0x3f31a9['extensions'][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':'Set','appdata':_0x89a4('0x24')+_0x3f31a9[_0x89a4('0xf')][_0x89a4('0x22')]||_0x89a4('0x25'),'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});}}_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':'Set','appdata':_0x89a4('0x26'),'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0]['exten'],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x27'),'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});_0x3f31a9[_0x89a4('0x11')][_0x89a4('0x19')]({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':'MONITOR_OPTIONS=ab','context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'exten':_0x1fca57[_0x4596a5][0x0]['exten'],'priority':_0x3f31a9[_0x89a4('0xe')]++,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});for(var _0x2d6230=0x0,_0x2b9b01=0x0;_0x2d6230<_0x1fca57[_0x4596a5][_0x89a4('0x28')];_0x2d6230+=0x1,_0x2b9b01=0x0){var _0x1c0a01=_0x1fca57[_0x4596a5][_0x2d6230];if(_0x1c0a01[_0x89a4('0x12')]){_0x1c0a01['type']=_0x1c0a01[_0x89a4('0x12')][_0x89a4('0x29')]();}var _0x1636e4=[];var _0x173fa8=[];delete _0x1c0a01['id'];delete _0x1c0a01[_0x89a4('0x2a')];delete _0x1c0a01[_0x89a4('0x2b')];var _0x1a3913=_0x1c0a01[_0x89a4('0x2c')]!==_0x89a4('0x2d')?[_0x1c0a01['interval']]:_0x1c0a01[_0x89a4('0x7')]?_[_0x89a4('0x2e')](_[_0x89a4('0x9')](_0x3f31a9[_0x89a4('0x5')],{'IntervalId':_0x1c0a01[_0x89a4('0x7')]}),_0x89a4('0x2c')):[];if(_0x1c0a01['hasOwnProperty'](_0x89a4('0x2f'))){if(_0x1c0a01['tag']&&_0x1c0a01[_0x89a4('0x2f')]!=='--'){_0x1636e4['push']({'type':_0x1c0a01[_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x30')+_0x1c0a01[_0x89a4('0x2f')],'context':_0x1c0a01[_0x89a4('0x16')],'exten':_0x1c0a01[_0x89a4('0xb')],'priority':_0x1a3913[_0x89a4('0x28')]+_0x3f31a9['priority']+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01[_0x89a4('0x17')]});}}if(_0x1c0a01['type']===_0x89a4('0x1b')&&_0x1c0a01[_0x89a4('0x31')](_0x89a4('0x32'))){if(_0x1c0a01[_0x89a4('0x32')]){_0x1636e4[_0x89a4('0x19')]({'type':_0x1c0a01[_0x89a4('0x12')],'app':_0x89a4('0x33'),'appdata':_0x89a4('0x34')+_0x1c0a01[_0x89a4('0x32')]+')','context':_0x1c0a01['context'],'exten':_0x1c0a01[_0x89a4('0xb')],'priority':_0x1a3913[_0x89a4('0x28')]+_0x3f31a9[_0x89a4('0xe')]+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01[_0x89a4('0x17')]});}else{_0x1636e4[_0x89a4('0x19')]({'type':_0x1c0a01['type'],'app':_0x89a4('0x33'),'appdata':_0x89a4('0x35'),'context':_0x1c0a01[_0x89a4('0x16')],'exten':_0x1c0a01[_0x89a4('0xb')],'priority':_0x1a3913['length']+_0x3f31a9[_0x89a4('0xe')]+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01[_0x89a4('0x17')]});}}if(_0x1c0a01[_0x89a4('0x31')](_0x89a4('0x36'))){if(_0x2add85[_0x89a4('0x37')](_0x1c0a01[_0x89a4('0x38')][_0x89a4('0x29')]())>=0x0&&_0x1c0a01[_0x89a4('0x39')]!==_0x89a4('0x3a')){if(_0x1c0a01[_0x89a4('0x36')]){_0x1636e4['push']({'type':_0x1c0a01[_0x89a4('0x12')],'app':_0x89a4('0x33'),'appdata':'$[${XCALLY-MOTION-ANSWER}=0]?Answer','context':_0x1c0a01[_0x89a4('0x16')],'exten':_0x1c0a01[_0x89a4('0xb')],'priority':_0x1a3913[_0x89a4('0x28')]+_0x3f31a9[_0x89a4('0xe')]+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01['VoiceExtensionId']});_0x1636e4[_0x89a4('0x19')]({'type':_0x1c0a01[_0x89a4('0x12')],'app':'Set','appdata':_0x89a4('0x3b'),'context':_0x1c0a01[_0x89a4('0x16')],'exten':_0x1c0a01['exten'],'priority':_0x1a3913[_0x89a4('0x28')]+_0x3f31a9[_0x89a4('0xe')]+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01['VoiceExtensionId']});}else{_0x1636e4[_0x89a4('0x19')]({'type':_0x1c0a01[_0x89a4('0x12')],'app':'ExecIf','appdata':_0x89a4('0x3c'),'context':_0x1c0a01[_0x89a4('0x16')],'exten':_0x1c0a01['exten'],'priority':_0x1a3913[_0x89a4('0x28')]+_0x3f31a9[_0x89a4('0xe')]+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01['VoiceExtensionId']});_0x1636e4[_0x89a4('0x19')]({'type':_0x1c0a01[_0x89a4('0x12')],'app':_0x89a4('0x13'),'appdata':_0x89a4('0x3d'),'context':_0x1c0a01[_0x89a4('0x16')],'exten':_0x1c0a01[_0x89a4('0xb')],'priority':_0x1a3913[_0x89a4('0x28')]+_0x3f31a9[_0x89a4('0xe')]+_0x2b9b01++,'VoiceExtensionId':_0x1c0a01[_0x89a4('0x17')]});}}}for(var _0xa0c47c=0x0;_0xa0c47c<_0x1a3913[_0x89a4('0x28')];_0xa0c47c+=0x1){var _0x1a26bc=_0x3f31a9[_0x89a4('0xe')]+_0x1a3913[_0x89a4('0x28')];var _0x45c7a0=_0xa0c47c===_0x1a3913[_0x89a4('0x28')]-0x1?_0x3f31a9['priority']+_0x1636e4[_0x89a4('0x28')]+_0x173fa8[_0x89a4('0x28')]+0x2:_0x3f31a9[_0x89a4('0xe')]+_0xa0c47c+0x1;_0x1636e4['splice'](_0xa0c47c,0x0,{'type':_0x1c0a01[_0x89a4('0x12')],'app':'GotoIfTime','appdata':_0x1a3913[_0xa0c47c]+'?'+_0x1c0a01[_0x89a4('0x16')]+_0x89a4('0x3e')+_0x1a26bc+':'+_0x1c0a01['context']+_0x89a4('0x3e')+_0x45c7a0,'exten':_0x1c0a01['exten'],'context':_0x1c0a01[_0x89a4('0x16')],'priority':_0x3f31a9[_0x89a4('0xe')]+_0xa0c47c,'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0]['VoiceExtensionId']});}_0x1c0a01[_0x89a4('0xe')]=_0x1636e4[_0x89a4('0x28')]?_['last'](_0x1636e4)[_0x89a4('0xe')]+0x1:_0x3f31a9[_0x89a4('0xe')];_0x3f31a9[_0x89a4('0xe')]=(_0x173fa8[_0x89a4('0x28')]?_[_0x89a4('0x3f')](_0x173fa8)[_0x89a4('0xe')]:_0x1c0a01[_0x89a4('0xe')])+0x1;_0x3f31a9[_0x89a4('0x11')]=_[_0x89a4('0x40')](_0x3f31a9[_0x89a4('0x11')],_0x1636e4,[_0x1c0a01],_0x173fa8);}_0x3f31a9[_0x89a4('0x11')]['push']({'type':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x12')],'app':'Hangup','exten':_0x1fca57[_0x4596a5][0x0][_0x89a4('0xb')],'context':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x16')],'priority':_0x3f31a9[_0x89a4('0xe')],'VoiceExtensionId':_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]});_0x2d0cfc[_0x89a4('0x19')](_0x1fca57[_0x4596a5][0x0][_0x89a4('0x17')]);_0x4ac986=_['concat'](_0x4ac986,_0x3f31a9[_0x89a4('0x11')]);}}return _0x283354[_0x89a4('0x41')](function(_0x2a9d82){return _0x283354[_0x89a4('0x2')][_0x89a4('0x6')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x2d0cfc}},'transaction':_0x2a9d82})[_0x89a4('0x4')](function(_0x5105be){return _0x283354['models'][_0x89a4('0x6')][_0x89a4('0x42')](_[_0x89a4('0x43')](_0x4ac986,_0x89a4('0xe')),{'transaction':_0x2a9d82});});});})[_0x89a4('0x44')](function(_0x24214b){console[_0x89a4('0x45')](_0x24214b);});}exports[_0x89a4('0x46')]=rewrite;
\ No newline at end of file
+var _0x4239=['${EXTEN:','cutdigits','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','recordingFormat','_XCALLY_MIXMONITOR_FORMAT=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','length','createdAt','updatedAt','*,*,*,*','interval','IntervalId','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','toLowerCase','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','splice','GotoIfTime',',${EXTEN},','concat','Hangup','transaction','destroy','bulkCreate','catch','error','rewrite','lodash','Interval','intervals','models','findAll','then','uniq','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','exten','playback','hasOwnProperty','extensions','extension','find','push','type','Set','format','CDR(type)=%s','context','VoiceExtensionId','inbound','CDR(routeid)=','priority','outbound'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4239,0xb3));var _0x9423=function(_0x119b3e,_0x588d50){_0x119b3e=_0x119b3e-0x0;var _0x1169ae=_0x4239[_0x119b3e];return _0x1169ae;};'use strict';var _=require(_0x9423('0x0'));var util=require('util');function rewrite(_0x262020,_0x50dc54){var _0x1e7a6c=this;return _0x262020['models'][_0x9423('0x1')]['findAll']({'raw':!![]})['then'](function(_0x251724){_0x1e7a6c[_0x9423('0x2')]=_0x251724;return _0x262020[_0x9423('0x3')]['VoiceExtension'][_0x9423('0x4')]({'where':{'IntervalId':_0x50dc54['IntervalId']},'raw':!![]});})[_0x9423('0x5')](function(_0x4fe159){return _0x262020['models']['VoiceExtension'][_0x9423('0x4')]({'where':{'exten':{'$in':_[_0x9423('0x6')](_[_0x9423('0x7')](_0x4fe159,'exten'))}},'order':[{'raw':_0x9423('0x8')}],'raw':!![]});})[_0x9423('0x5')](function(_0xec0948){var _0x13e8e0=_['filter'](_0xec0948,{'priority':'1'});var _0x539f57=_[_0x9423('0x9')](_0xec0948,{'isApp':0x1});var _0x5607e3=_[_0x9423('0xa')](_0x539f57,_0x9423('0xb'));var _0x4b7e5d=['queue',_0x9423('0xc')];var _0x19a342=[];var _0x1398e5=[];for(var _0x5c6840 in _0x5607e3){if(_0x5607e3[_0x9423('0xd')](_0x5c6840)){_0x1e7a6c['priority']=0x2;_0x1e7a6c[_0x9423('0xe')]=[];_0x1e7a6c[_0x9423('0xf')]=_[_0x9423('0x10')](_0x13e8e0,{'exten':_0x5607e3[_0x5c6840][0x0][_0x9423('0xb')]});_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':util[_0x9423('0x14')](_0x9423('0x15'),_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')]),'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0][_0x9423('0xb')],'priority':_0x1e7a6c['priority']++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});if(_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')]===_0x9423('0x18')){_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':_0x9423('0x19')+_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')],'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0][_0x9423('0xb')],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0]['VoiceExtensionId']});}else if(_0x5607e3[_0x5c6840][0x0]['type']===_0x9423('0x1b')){if(_0x1e7a6c[_0x9423('0xf')]){_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':'CDR(destination)='+(_0x1e7a6c[_0x9423('0xf')]['cutdigits']?_0x9423('0x1c')+_0x1e7a6c[_0x9423('0xf')][_0x9423('0x1d')]+'}':_0x9423('0x1e')),'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0]['VoiceExtensionId']});}_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':'Set','appdata':_0x9423('0x19')+_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')],'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});var _0x1b7739=_0x1e7a6c['priority']++;_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x1f'),'appdata':_0x9423('0x20')+(_0x1b7739+0x2)+_0x9423('0x21')+(_0x1b7739+0x1)+')','context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1b7739,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0]['VoiceExtensionId']});if(_0x1e7a6c[_0x9423('0xf')]){_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':_0x1e7a6c['extension'][_0x9423('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x1e7a6c['extension'][_0x9423('0x1d')]+'}':_0x9423('0x22'),'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});}_0x1e7a6c[_0x9423('0xe')]['push']({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':'outboundrouteid='+_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')],'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0][_0x9423('0xb')],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});if(_0x1e7a6c['extension']&&_0x1e7a6c[_0x9423('0xf')][_0x9423('0xd')](_0x9423('0x23'))&&_0x1e7a6c[_0x9423('0xf')][_0x9423('0x23')]!=='none'){_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0]['type'],'app':_0x9423('0x13'),'appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0]['type'],'app':_0x9423('0x13'),'appdata':_0x9423('0x24')+_0x1e7a6c[_0x9423('0xf')][_0x9423('0x23')]||'wav','context':_0x5607e3[_0x5c6840][0x0]['context'],'exten':_0x5607e3[_0x5c6840][0x0][_0x9423('0xb')],'priority':_0x1e7a6c['priority']++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});}}_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0]['VoiceExtensionId']});_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0]['type'],'app':'Set','appdata':_0x9423('0x25'),'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});_0x1e7a6c[_0x9423('0xe')][_0x9423('0x11')]({'type':_0x5607e3[_0x5c6840][0x0]['type'],'app':_0x9423('0x13'),'appdata':_0x9423('0x26'),'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'exten':_0x5607e3[_0x5c6840][0x0][_0x9423('0xb')],'priority':_0x1e7a6c[_0x9423('0x1a')]++,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0]['VoiceExtensionId']});for(var _0x1a993e=0x0,_0x5c9b21=0x0;_0x1a993e<_0x5607e3[_0x5c6840][_0x9423('0x27')];_0x1a993e+=0x1,_0x5c9b21=0x0){var _0x17c5c1=_0x5607e3[_0x5c6840][_0x1a993e];if(_0x17c5c1['type']){_0x17c5c1[_0x9423('0x12')]=_0x17c5c1[_0x9423('0x12')]['toLowerCase']();}var _0x555c6b=[];var _0x1ad2eb=[];delete _0x17c5c1['id'];delete _0x17c5c1[_0x9423('0x28')];delete _0x17c5c1[_0x9423('0x29')];var _0x53993f=_0x17c5c1['interval']!==_0x9423('0x2a')?[_0x17c5c1[_0x9423('0x2b')]]:_0x17c5c1[_0x9423('0x2c')]?_[_0x9423('0x7')](_[_0x9423('0x9')](_0x1e7a6c[_0x9423('0x2')],{'IntervalId':_0x17c5c1[_0x9423('0x2c')]}),_0x9423('0x2b')):[];if(_0x17c5c1['hasOwnProperty']('tag')){if(_0x17c5c1[_0x9423('0x2d')]&&_0x17c5c1[_0x9423('0x2d')]!=='--'){_0x555c6b[_0x9423('0x11')]({'type':_0x17c5c1[_0x9423('0x12')],'app':_0x9423('0x13'),'appdata':_0x9423('0x2e')+_0x17c5c1['tag'],'context':_0x17c5c1[_0x9423('0x16')],'exten':_0x17c5c1[_0x9423('0xb')],'priority':_0x53993f[_0x9423('0x27')]+_0x1e7a6c[_0x9423('0x1a')]+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});}}if(_0x17c5c1[_0x9423('0x12')]===_0x9423('0x1b')&&_0x17c5c1[_0x9423('0xd')](_0x9423('0x2f'))){if(_0x17c5c1['callerID']){_0x555c6b[_0x9423('0x11')]({'type':_0x17c5c1[_0x9423('0x12')],'app':'ExecIf','appdata':_0x9423('0x30')+_0x17c5c1[_0x9423('0x2f')]+')','context':_0x17c5c1[_0x9423('0x16')],'exten':_0x17c5c1[_0x9423('0xb')],'priority':_0x53993f[_0x9423('0x27')]+_0x1e7a6c[_0x9423('0x1a')]+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});}else{_0x555c6b['push']({'type':_0x17c5c1[_0x9423('0x12')],'app':_0x9423('0x1f'),'appdata':_0x9423('0x31'),'context':_0x17c5c1['context'],'exten':_0x17c5c1[_0x9423('0xb')],'priority':_0x53993f['length']+_0x1e7a6c[_0x9423('0x1a')]+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});}}if(_0x17c5c1[_0x9423('0xd')](_0x9423('0x32'))){if(_0x4b7e5d[_0x9423('0x33')](_0x17c5c1[_0x9423('0x34')][_0x9423('0x35')]())>=0x0&&_0x17c5c1['appType']!==_0x9423('0x36')){if(_0x17c5c1[_0x9423('0x32')]){_0x555c6b['push']({'type':_0x17c5c1['type'],'app':'ExecIf','appdata':_0x9423('0x37'),'context':_0x17c5c1[_0x9423('0x16')],'exten':_0x17c5c1[_0x9423('0xb')],'priority':_0x53993f[_0x9423('0x27')]+_0x1e7a6c['priority']+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});_0x555c6b[_0x9423('0x11')]({'type':_0x17c5c1['type'],'app':_0x9423('0x13'),'appdata':_0x9423('0x38'),'context':_0x17c5c1['context'],'exten':_0x17c5c1['exten'],'priority':_0x53993f['length']+_0x1e7a6c[_0x9423('0x1a')]+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});}else{_0x555c6b[_0x9423('0x11')]({'type':_0x17c5c1[_0x9423('0x12')],'app':_0x9423('0x1f'),'appdata':_0x9423('0x39'),'context':_0x17c5c1[_0x9423('0x16')],'exten':_0x17c5c1['exten'],'priority':_0x53993f[_0x9423('0x27')]+_0x1e7a6c['priority']+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});_0x555c6b[_0x9423('0x11')]({'type':_0x17c5c1[_0x9423('0x12')],'app':'Set','appdata':'XCALLY-MOTION-PROGRESS=1','context':_0x17c5c1[_0x9423('0x16')],'exten':_0x17c5c1['exten'],'priority':_0x53993f[_0x9423('0x27')]+_0x1e7a6c[_0x9423('0x1a')]+_0x5c9b21++,'VoiceExtensionId':_0x17c5c1[_0x9423('0x17')]});}}}for(var _0xce0385=0x0;_0xce0385<_0x53993f[_0x9423('0x27')];_0xce0385+=0x1){var _0x50ffef=_0x1e7a6c[_0x9423('0x1a')]+_0x53993f[_0x9423('0x27')];var _0x25e514=_0xce0385===_0x53993f['length']-0x1?_0x1e7a6c[_0x9423('0x1a')]+_0x555c6b[_0x9423('0x27')]+_0x1ad2eb['length']+0x2:_0x1e7a6c[_0x9423('0x1a')]+_0xce0385+0x1;_0x555c6b[_0x9423('0x3a')](_0xce0385,0x0,{'type':_0x17c5c1[_0x9423('0x12')],'app':_0x9423('0x3b'),'appdata':_0x53993f[_0xce0385]+'?'+_0x17c5c1[_0x9423('0x16')]+',${EXTEN},'+_0x50ffef+':'+_0x17c5c1[_0x9423('0x16')]+_0x9423('0x3c')+_0x25e514,'exten':_0x17c5c1[_0x9423('0xb')],'context':_0x17c5c1['context'],'priority':_0x1e7a6c[_0x9423('0x1a')]+_0xce0385,'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});}_0x17c5c1['priority']=_0x555c6b[_0x9423('0x27')]?_['last'](_0x555c6b)[_0x9423('0x1a')]+0x1:_0x1e7a6c[_0x9423('0x1a')];_0x1e7a6c['priority']=(_0x1ad2eb['length']?_['last'](_0x1ad2eb)[_0x9423('0x1a')]:_0x17c5c1['priority'])+0x1;_0x1e7a6c[_0x9423('0xe')]=_[_0x9423('0x3d')](_0x1e7a6c[_0x9423('0xe')],_0x555c6b,[_0x17c5c1],_0x1ad2eb);}_0x1e7a6c['extensions']['push']({'type':_0x5607e3[_0x5c6840][0x0][_0x9423('0x12')],'app':_0x9423('0x3e'),'exten':_0x5607e3[_0x5c6840][0x0]['exten'],'context':_0x5607e3[_0x5c6840][0x0][_0x9423('0x16')],'priority':_0x1e7a6c[_0x9423('0x1a')],'VoiceExtensionId':_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]});_0x19a342[_0x9423('0x11')](_0x5607e3[_0x5c6840][0x0][_0x9423('0x17')]);_0x1398e5=_[_0x9423('0x3d')](_0x1398e5,_0x1e7a6c[_0x9423('0xe')]);}}return _0x262020[_0x9423('0x3f')](function(_0x30c326){return _0x262020['models']['VoiceExtension'][_0x9423('0x40')]({'where':{'VoiceExtensionId':{'$in':_0x19a342}},'transaction':_0x30c326})[_0x9423('0x5')](function(_0x4a82dc){return _0x262020[_0x9423('0x3')]['VoiceExtension'][_0x9423('0x41')](_['sortBy'](_0x1398e5,_0x9423('0x1a')),{'transaction':_0x30c326});});});})[_0x9423('0x42')](function(_0x3ae410){console[_0x9423('0x43')](_0x3ae410);});}exports[_0x9423('0x44')]=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf428=['undefined','null','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','contact','index','test','isNil','error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','length','errors','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','create','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','checkHopper','into','fromQuery','ContactId','ListId','createdAt','updatedAt','select','field','NOW()','scheduledAt','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','phone','cm_hopper','\x20=\x20?','id\x20IN\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','calleridnum','insert','str','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','get','always','sequelize','query','onlyIfOpen','VoiceQueueId','BlackLists','CampaignId','all','generalCheckHopper','message','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','resume','resolve','unlinkSync','exit','info','createReadStream','parse','CSV\x20parsed\x20correctly!','bluebird','util','ioredis','../../../mysqldb','../../../config/environment','redis','defaults','localhost','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv'];(function(_0x1ee9a1,_0x5f1434){var _0x21270f=function(_0x303251){while(--_0x303251){_0x1ee9a1['push'](_0x1ee9a1['shift']());}};_0x21270f(++_0x5f1434);}(_0xf428,0x129));var _0x8f42=function(_0x236ea7,_0x3f94be){_0x236ea7=_0x236ea7-0x0;var _0x3ff928=_0xf428[_0x236ea7];return _0x3ff928;};'use strict';var BPromise=require(_0x8f42('0x0'));var util=require(_0x8f42('0x1'));var _=require('lodash');var fs=require('fs');var squel=require('squel');var Papa=require('papaparse');var Redis=require(_0x8f42('0x2'));var db=require(_0x8f42('0x3'))['db'];var config=require(_0x8f42('0x4'));var logger=require('../../../config/logger')('api');config[_0x8f42('0x5')]=_[_0x8f42('0x6')](config[_0x8f42('0x5')],{'host':_0x8f42('0x7'),'port':0x18eb});var socket=require(_0x8f42('0x8'))(new Redis(config[_0x8f42('0x5')]));require(_0x8f42('0x9'))[_0x8f42('0xa')](socket);try{if(!process[_0x8f42('0xb')][0x2]||process[_0x8f42('0xb')][0x2]==='undefined'||process[_0x8f42('0xb')][0x2]==='null'){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process[_0x8f42('0xb')][0x2];if(!process[_0x8f42('0xb')][0x3]||process[_0x8f42('0xb')][0x3]===_0x8f42('0xc')||process[_0x8f42('0xb')][0x3]==='null'||!process['argv'][0x4]||process['argv'][0x4]===_0x8f42('0xc')||process[_0x8f42('0xb')][0x4]===_0x8f42('0xd')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_['zipObject'](process['argv'][0x3][_0x8f42('0xe')](','),process[_0x8f42('0xb')][0x4][_0x8f42('0xe')](','));if(!process[_0x8f42('0xb')][0x5]||process['argv'][0x5]==='undefined'||process[_0x8f42('0xb')][0x5]===_0x8f42('0xd')){throw new Error(_0x8f42('0xf'));}var LISTID=process[_0x8f42('0xb')][0x5];var COMPANYID=process[_0x8f42('0xb')][0x6]&&process[_0x8f42('0xb')][0x6]!==_0x8f42('0xc')&&process[_0x8f42('0xb')][0x6]!=='null'?process[_0x8f42('0xb')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0x8f42('0xb')][0x7]!==_0x8f42('0xc')&&process[_0x8f42('0xb')][0x7]!==_0x8f42('0xd')?process[_0x8f42('0xb')][0x7]:null;if(!process['argv'][0x8]||process[_0x8f42('0xb')][0x8]===_0x8f42('0xc')||process[_0x8f42('0xb')][0x8]===_0x8f42('0xd')){throw new Error(_0x8f42('0x10'));}var SOCKET_TIMESTAMP=process[_0x8f42('0xb')][0x8];}catch(_0xafe651){logger['error'](_0xafe651);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(_0x2ebaae,_0x4c2f84,_0x10d2ca,_0x5e5051){var _0x14973c={'message':_0x4c2f84};_0x14973c[_0x2ebaae]=!![];if(_0x10d2ca){_0x14973c[_0x8f42('0x11')]=_0x10d2ca;}if(_0x5e5051){_0x14973c[_0x8f42('0x12')]=_0x5e5051;}return _0x14973c;}function isEmail(_0x3c46c0){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))*$/[_0x8f42('0x13')](_0x3c46c0);}function checkRow(_0x10c903,_0xa06945,_0x552c35){return new BPromise(function(_0x5a080a,_0xc3820b){if(_[_0x8f42('0x14')](_0x10c903)){return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),_0x8f42('0x16'),null,_0x552c35));}if(_0x10c903['errors']&&_0x10c903['errors'][_0x8f42('0x17')]){var _0x50b3fb=_['map'](_0x10c903[_0x8f42('0x18')],'message')['join'](';');return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),_0x50b3fb,null,_0x552c35));}var _0x2bd9e2={};for(var _0x44daf3 in FIELDS){if(FIELDS[_0x8f42('0x19')](_0x44daf3)&&FIELDS[_0x44daf3]){_0x2bd9e2[_0x44daf3]=_0x10c903['data'][0x0][FIELDS[_0x44daf3]]||_0x10c903[_0x8f42('0x1a')][0x0]['\ufeff'+FIELDS[_0x44daf3]];}}if(!_0x2bd9e2[_0x8f42('0x1b')]){return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),_0x8f42('0x1c'),null,_0x552c35));}if(!_0x2bd9e2['phone']){return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),_0x8f42('0x1d'),null,_0x552c35));}if(_0x2bd9e2[_0x8f42('0x1e')]){var _0x569105=moment(_0x2bd9e2[_0x8f42('0x1e')],_0x8f42('0x1f'));if(!_0x569105[_0x8f42('0x20')]()){return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),_0x8f42('0x21'),null,_0x552c35));}}if(_0x2bd9e2[_0x8f42('0x22')]){if(!isEmail(_0x2bd9e2[_0x8f42('0x22')])){return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),'email\x20format\x20is\x20not\x20valid!',null,_0x552c35));}}_0x2bd9e2['ListId']=LISTID;_0x2bd9e2[_0x8f42('0x23')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x8f42('0x17')]&&_0xa06945){var _0x170a08={};for(var _0x3ee3fa=0x0,_0x21e89b=DUPLICATES[_0x8f42('0x17')];_0x3ee3fa<_0x21e89b;_0x3ee3fa+=0x1){_0x170a08[DUPLICATES[_0x3ee3fa]]=_0x2bd9e2[DUPLICATES[_0x3ee3fa]];}var _0x11a114=_[_0x8f42('0x24')](_0xa06945,_0x170a08);if(_0x11a114){return _0xc3820b(handleCheckRowError(_0x8f42('0x25'),_0x8f42('0x26'),_0x11a114,_0x552c35));}}return db[_0x8f42('0x27')][_0x8f42('0x28')](_0x2bd9e2,{'raw':!![],'hooks':![],'fields':_['keys'](_0x2bd9e2)})[_0x8f42('0x29')](function(_0x497617){if(DUPLICATES&&DUPLICATES['length']&&_0xa06945){_0xa06945[_0x8f42('0x2a')](_[_0x8f42('0x2b')](_0x2bd9e2,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x497617['id'];return _0x5a080a();})[_0x8f42('0x2c')](function(_0x166152){return _0xc3820b(handleCheckRowError(_0x8f42('0x15'),_0x8f42('0x2d')+(_0x166152['message']||JSON[_0x8f42('0x2e')](_0x166152)),null,_0x552c35));});});}function checkHopper(){function _0x34bc43(){return function(_0x5e4ff8){logger[_0x8f42('0x15')]('cmContact',_0x8f42('0x2f'),util['inspect'](_0x5e4ff8,{'showHidden':![],'depth':null}));};}var _0x427009=function(_0x51f004,_0x55d221){var _0x489b21=squel['insert']()[_0x8f42('0x30')]('cm_hopper')[_0x8f42('0x31')](['phone','scheduledAt',_0x8f42('0x32'),_0x8f42('0x33'),_0x55d221,_0x8f42('0x34'),_0x8f42('0x35')],squel[_0x8f42('0x36')]()[_0x8f42('0x37')]('phone','phone')[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x39'))[_0x8f42('0x37')]('id',_0x8f42('0x32'))[_0x8f42('0x37')](LISTID[_0x8f42('0x3a')](),_0x8f42('0x33'))[_0x8f42('0x37')](_0x51f004['id'][_0x8f42('0x3a')](),_0x55d221)[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x34'))[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x35'))[_0x8f42('0x3b')](_0x8f42('0x3c'))['where'](_0x8f42('0x3d'))[_0x8f42('0x3e')](_0x8f42('0x3f'),LISTID['toString']())[_0x8f42('0x3e')]('phone\x20IS\x20NOT\x20NULL')[_0x8f42('0x3e')]('phone\x20NOT\x20IN\x20(?)',squel[_0x8f42('0x36')]()[_0x8f42('0x37')](_0x8f42('0x40'))[_0x8f42('0x3b')](_0x8f42('0x41'))['where'](_0x55d221+_0x8f42('0x42'),_0x51f004['id'][_0x8f42('0x3a')]())))['toString']();return _0x489b21;};var _0x57085b=function(_0x356445,_0x5d4d7c){var _0x488cae=squel['insert']()[_0x8f42('0x30')]('cm_hopper')[_0x8f42('0x31')]([_0x8f42('0x40'),_0x8f42('0x39'),_0x8f42('0x32'),_0x8f42('0x33'),_0x5d4d7c,'createdAt',_0x8f42('0x35')],squel[_0x8f42('0x36')]()[_0x8f42('0x37')]('phone',_0x8f42('0x40'))[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x39'))['field']('id',_0x8f42('0x32'))[_0x8f42('0x37')](LISTID[_0x8f42('0x3a')](),_0x8f42('0x33'))[_0x8f42('0x37')](_0x356445['id'][_0x8f42('0x3a')](),_0x5d4d7c)[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x34'))[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x35'))[_0x8f42('0x3b')](_0x8f42('0x3c'))[_0x8f42('0x3e')]('deletedAt\x20IS\x20NULL')[_0x8f42('0x3e')]('ListId\x20=\x20?',LISTID[_0x8f42('0x3a')]())[_0x8f42('0x3e')](_0x8f42('0x43'),squel['str'](hopperContacts))[_0x8f42('0x3e')](_0x8f42('0x44'))['where'](_0x8f42('0x45'),squel[_0x8f42('0x36')]()[_0x8f42('0x37')](_0x8f42('0x46'))[_0x8f42('0x3b')]('cm_hopper_final')[_0x8f42('0x3e')](_0x5d4d7c+_0x8f42('0x42'),_0x356445['id'][_0x8f42('0x3a')]()))[_0x8f42('0x3e')](_0x8f42('0x45'),squel[_0x8f42('0x36')]()[_0x8f42('0x37')](_0x8f42('0x40'))['from'](_0x8f42('0x41'))[_0x8f42('0x3e')](_0x5d4d7c+_0x8f42('0x42'),_0x356445['id'][_0x8f42('0x3a')]())))[_0x8f42('0x3a')]();return _0x488cae;};function _0x2c5785(_0x15dd8d,_0x241d84){var _0x527006=squel[_0x8f42('0x47')]()[_0x8f42('0x30')](_0x8f42('0x41'))[_0x8f42('0x31')]([_0x8f42('0x40'),'scheduledAt',_0x8f42('0x32'),'ListId',_0x241d84,_0x8f42('0x34'),_0x8f42('0x35')],squel['select']()[_0x8f42('0x37')](_0x8f42('0x40'),'phone')['field']('NOW()',_0x8f42('0x39'))[_0x8f42('0x37')]('id',_0x8f42('0x32'))[_0x8f42('0x37')](LISTID[_0x8f42('0x3a')](),'ListId')[_0x8f42('0x37')](_0x15dd8d['id'][_0x8f42('0x3a')](),_0x241d84)[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x34'))[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x35'))[_0x8f42('0x3b')](_0x8f42('0x3c'))['where'](_0x8f42('0x3d'))[_0x8f42('0x3e')](_0x8f42('0x3f'),LISTID[_0x8f42('0x3a')]())[_0x8f42('0x3e')]('id\x20IN\x20?',squel[_0x8f42('0x48')](hopperContacts))[_0x8f42('0x3e')]('phone\x20IS\x20NOT\x20NULL'))['toString']();return _0x527006;}function _0x12c947(_0x279081,_0x69fd08){var _0x4c8ea2=squel['insert']()[_0x8f42('0x30')](_0x8f42('0x49'))[_0x8f42('0x31')]([_0x8f42('0x40'),_0x8f42('0x32'),'ListId',_0x69fd08,_0x8f42('0x34'),_0x8f42('0x35')],squel[_0x8f42('0x36')]()[_0x8f42('0x37')](_0x8f42('0x40'),_0x8f42('0x40'))[_0x8f42('0x37')]('id',_0x8f42('0x32'))[_0x8f42('0x37')](LISTID[_0x8f42('0x3a')](),'ListId')[_0x8f42('0x37')](_0x279081['id'][_0x8f42('0x3a')](),_0x69fd08)[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x34'))[_0x8f42('0x37')](_0x8f42('0x38'),_0x8f42('0x35'))[_0x8f42('0x3b')](_0x8f42('0x3c'))[_0x8f42('0x3e')](_0x8f42('0x3d'))['where']('ListId\x20=\x20?',LISTID[_0x8f42('0x3a')]())['where']('id\x20IN\x20?',squel[_0x8f42('0x48')](hopperContacts))[_0x8f42('0x3e')](_0x8f42('0x44')))[_0x8f42('0x3a')]();return _0x4c8ea2;}return db[_0x8f42('0x4a')][_0x8f42('0x4b')]({'where':{'type':_0x8f42('0x4c')},'attributes':['id',_0x8f42('0x4d')],'include':[{'model':db[_0x8f42('0x4e')],'as':_0x8f42('0x4f'),'where':{'id':LISTID}}]})[_0x8f42('0x29')](function(_0x4adae8){var _0x8720f=[];if(_0x4adae8){var _0x1cc915;for(var _0x1c56f7=0x0,_0x237780;_0x1c56f7<_0x4adae8[_0x8f42('0x17')];_0x1c56f7+=0x1){_0x237780=_0x4adae8[_0x1c56f7][_0x8f42('0x50')]({'plain':!![]});switch(_0x237780['dialCheckDuplicateType']){case _0x8f42('0x51'):_0x8720f[_0x8f42('0x2a')](db[_0x8f42('0x52')][_0x8f42('0x53')](_0x57085b(_0x237780,'VoiceQueueId'))['then'](function(){})[_0x8f42('0x2c')](_0x34bc43()));break;case _0x8f42('0x54'):_0x8720f['push'](db[_0x8f42('0x52')]['query'](_0x427009(_0x237780,_0x8f42('0x55')))[_0x8f42('0x29')](function(){})[_0x8f42('0x2c')](_0x34bc43()));break;default:_0x8720f['push'](db[_0x8f42('0x52')][_0x8f42('0x53')](_0x2c5785(_0x237780,'VoiceQueueId'))[_0x8f42('0x29')](function(){})['catch'](_0x34bc43()));}}}return _0x8720f;})['all']()['then'](function(){return db['VoiceQueue'][_0x8f42('0x4b')]({'where':{'type':_0x8f42('0x4c')},'attributes':['id'],'include':[{'model':db[_0x8f42('0x4e')],'as':_0x8f42('0x56'),'where':{'id':LISTID}}]})[_0x8f42('0x29')](function(_0x274cf4){var _0x4fb7b5=[];if(_0x274cf4){var _0xfc462d;for(var _0x13e3da=0x0,_0x16d346;_0x13e3da<_0x274cf4[_0x8f42('0x17')];_0x13e3da+=0x1){_0x16d346=_0x274cf4[_0x13e3da]['get']({'plain':!![]});_0x4fb7b5[_0x8f42('0x2a')](db['sequelize'][_0x8f42('0x53')](_0x12c947(_0x16d346,_0x8f42('0x55')))[_0x8f42('0x29')](function(){})[_0x8f42('0x2c')](_0x34bc43()));}}return _0x4fb7b5;})['all']();})[_0x8f42('0x29')](function(){return db['Campaign'][_0x8f42('0x4b')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x8f42('0x4e')],'as':_0x8f42('0x4f'),'where':{'id':LISTID}}]})[_0x8f42('0x29')](function(_0x49ffe8){var _0x2f0b94=[];if(_0x49ffe8){for(var _0x27d45b=0x0,_0x244d4d;_0x27d45b<_0x49ffe8[_0x8f42('0x17')];_0x27d45b+=0x1){_0x244d4d=_0x49ffe8[_0x27d45b][_0x8f42('0x50')]({'plain':!![]});switch(_0x244d4d[_0x8f42('0x4d')]){case'always':_0x2f0b94['push'](db[_0x8f42('0x52')]['query'](_0x57085b(_0x244d4d,'CampaignId'))['then'](function(){})['catch'](_0x34bc43()));break;case _0x8f42('0x54'):_0x2f0b94[_0x8f42('0x2a')](db[_0x8f42('0x52')][_0x8f42('0x53')](_0x427009(_0x244d4d,_0x8f42('0x57')))[_0x8f42('0x29')](function(){})['catch'](_0x34bc43()));break;default:_0x2f0b94[_0x8f42('0x2a')](db['sequelize']['query'](_0x2c5785(_0x244d4d,_0x8f42('0x57')))[_0x8f42('0x29')](function(){})[_0x8f42('0x2c')](_0x34bc43()));}}}return _0x2f0b94;})[_0x8f42('0x58')]();})[_0x8f42('0x29')](function(){return db['Campaign']['findAll']({'attributes':['id'],'include':[{'model':db[_0x8f42('0x4e')],'as':_0x8f42('0x56'),'where':{'id':LISTID}}]})['then'](function(_0x173054){var _0x42a2bf=[];if(_0x173054){for(var _0x2f4133=0x0,_0x2f96ff;_0x2f4133<_0x173054['length'];_0x2f4133+=0x1){_0x2f96ff=_0x173054[_0x2f4133]['get']({'plain':!![]});_0x42a2bf[_0x8f42('0x2a')](db[_0x8f42('0x52')][_0x8f42('0x53')](_0x12c947(_0x2f96ff,_0x8f42('0x57')))['then'](function(){})[_0x8f42('0x2c')](_0x34bc43()));}}return _0x42a2bf;})[_0x8f42('0x58')]();})[_0x8f42('0x2c')](function(_0x60f78a){logger[_0x8f42('0x15')]('cmContact,\x20%s,\x20%s',_0x8f42('0x59'),_0x60f78a[_0x8f42('0x5a')]);});}var processPromises=function(_0x3c965f){return BPromise[_0x8f42('0x58')](promises)[_0x8f42('0x29')](function(_0x197e29){})['catch'](function(_0x1ba922){logger[_0x8f42('0x15')](_0x8f42('0x5b'),JSON[_0x8f42('0x2e')](_0x1ba922));})[_0x8f42('0x5c')](function(){socket[_0x8f42('0x5d')](_0x8f42('0x5e')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x3c965f){return _0x3c965f[_0x8f42('0x5f')]();}});};var endCsv=function(){return BPromise[_0x8f42('0x60')]()[_0x8f42('0x29')](function(){if(hopperContacts){return checkHopper();}})[_0x8f42('0x29')](function(){socket[_0x8f42('0x5d')](_0x8f42('0x5e')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x8f42('0x61')](FILEPATH);}catch(_0x59f176){logger[_0x8f42('0x15')]('Unable\x20to\x20delete\x20temp\x20file:',JSON[_0x8f42('0x2e')](_0x59f176));}finally{process[_0x8f42('0x62')](0x0);}});};process['on']('SIGINT',function(){logger[_0x8f42('0x63')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise[_0x8f42('0x60')]()[_0x8f42('0x29')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x8f42('0xe')](',');return db[_0x8f42('0x27')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})['then'](function(_0x5787af){var _0x49cec6=fs[_0x8f42('0x64')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x8f42('0x65')](_0x49cec6,{'header':!![],'skipEmptyLines':!![],'step':function(_0xad42ce,_0x3fa043){total+=0x1;var _0x4dcf4a=total;promises[_0x8f42('0x2a')](checkRow(_0xad42ce,_0x5787af,_0x4dcf4a)[_0x8f42('0x29')](function(){success+=0x1;})['catch'](function(_0x2180a1){if(_0x2180a1[_0x8f42('0x15')]){errors+=0x1;delete _0x2180a1[_0x8f42('0x15')];}else if(_0x2180a1[_0x8f42('0x25')]){duplicates+=0x1;delete _0x2180a1[_0x8f42('0x25')];}rows['push'](_0x2180a1);}));if(total%0xc8===0x0){_0x3fa043['pause']();return processPromises(_0x3fa043);}},'complete':function(){return processPromises()[_0x8f42('0x29')](function(){logger[_0x8f42('0x63')](_0x8f42('0x66'));endCsv();});},'error':function(_0x3d1e18,_0x4631e8){logger['info']('CSV\x20parse\x20error',JSON[_0x8f42('0x2e')](_0x3d1e18));endCsv();}});})[_0x8f42('0x2c')](function(_0x5c70d8){logger[_0x8f42('0x15')]('Error\x20executing\x20contact\x20csv\x20import:',JSON[_0x8f42('0x2e')](_0x5c70d8));});}main();
\ No newline at end of file
+var _0x5c97=['Unable\x20to\x20delete\x20temp\x20file:','SIGINT','CSV\x20import\x20process\x20stopped!','createReadStream','parse','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','defaults','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','Missing\x20filepath\x20parameter!','null','zipObject','split','Missing\x20ListId\x20parameter!','error','contact','index','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','message','join','data','firstName','phone','phone\x20not\x20specified!','birthDate','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','ListId','CompanyId','duplicate','CmContact','create','then','push','pick','catch','stringify','cmContact','checkHopper','inspect','insert','ContactId','createdAt','updatedAt','select','field','scheduledAt','NOW()','cm_contacts','deletedAt\x20IS\x20NULL','where','ListId\x20=\x20?','toString','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','from','cm_hopper','into','fromQuery','id\x20IN\x20?','str','calleridnum','cm_hopper_final','\x20=\x20?','cm_hopper_black','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','always','sequelize','query','VoiceQueueId','all','get','Campaign','CampaignId','BlackLists','cmContact,\x20%s,\x20%s','contact:csv_','resume','resolve','unlinkSync'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5c97,0x6d));var _0x75c9=function(_0x38d832,_0xf2104d){_0x38d832=_0x38d832-0x0;var _0x2e166e=_0x5c97[_0x38d832];return _0x2e166e;};'use strict';var BPromise=require(_0x75c9('0x0'));var util=require('util');var _=require(_0x75c9('0x1'));var fs=require('fs');var squel=require(_0x75c9('0x2'));var Papa=require(_0x75c9('0x3'));var Redis=require(_0x75c9('0x4'));var db=require(_0x75c9('0x5'))['db'];var config=require(_0x75c9('0x6'));var logger=require(_0x75c9('0x7'))(_0x75c9('0x8'));config[_0x75c9('0x9')]=_[_0x75c9('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x75c9('0xb'))(new Redis(config[_0x75c9('0x9')]));require(_0x75c9('0xc'))[_0x75c9('0xd')](socket);try{if(!process[_0x75c9('0xe')][0x2]||process[_0x75c9('0xe')][0x2]===_0x75c9('0xf')||process[_0x75c9('0xe')][0x2]==='null'){throw new Error(_0x75c9('0x10'));}var FILEPATH=process[_0x75c9('0xe')][0x2];if(!process[_0x75c9('0xe')][0x3]||process[_0x75c9('0xe')][0x3]==='undefined'||process[_0x75c9('0xe')][0x3]==='null'||!process['argv'][0x4]||process[_0x75c9('0xe')][0x4]===_0x75c9('0xf')||process[_0x75c9('0xe')][0x4]===_0x75c9('0x11')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x75c9('0x12')](process[_0x75c9('0xe')][0x3][_0x75c9('0x13')](','),process[_0x75c9('0xe')][0x4][_0x75c9('0x13')](','));if(!process['argv'][0x5]||process[_0x75c9('0xe')][0x5]===_0x75c9('0xf')||process[_0x75c9('0xe')][0x5]==='null'){throw new Error(_0x75c9('0x14'));}var LISTID=process[_0x75c9('0xe')][0x5];var COMPANYID=process[_0x75c9('0xe')][0x6]&&process[_0x75c9('0xe')][0x6]!==_0x75c9('0xf')&&process[_0x75c9('0xe')][0x6]!==_0x75c9('0x11')?process['argv'][0x6]:null;var DUPLICATES=process[_0x75c9('0xe')][0x7]&&process[_0x75c9('0xe')][0x7]!=='undefined'&&process['argv'][0x7]!==_0x75c9('0x11')?process[_0x75c9('0xe')][0x7]:null;if(!process[_0x75c9('0xe')][0x8]||process['argv'][0x8]==='undefined'||process[_0x75c9('0xe')][0x8]===_0x75c9('0x11')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0x75c9('0xe')][0x8];}catch(_0x3b87c7){logger[_0x75c9('0x15')](_0x3b87c7);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(_0xb0f461,_0x201eee,_0x3af4b2,_0x233f19){var _0x4abaef={'message':_0x201eee};_0x4abaef[_0xb0f461]=!![];if(_0x3af4b2){_0x4abaef[_0x75c9('0x16')]=_0x3af4b2;}if(_0x233f19){_0x4abaef[_0x75c9('0x17')]=_0x233f19;}return _0x4abaef;}function isEmail(_0xf0769){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))*$/['test'](_0xf0769);}function checkRow(_0x3beba9,_0x1ea4a4,_0x4d0ba8){return new BPromise(function(_0x3fe489,_0x18c0f9){if(_[_0x75c9('0x18')](_0x3beba9)){return _0x18c0f9(handleCheckRowError('error',_0x75c9('0x19'),null,_0x4d0ba8));}if(_0x3beba9['errors']&&_0x3beba9[_0x75c9('0x1a')][_0x75c9('0x1b')]){var _0x43dc3d=_['map'](_0x3beba9[_0x75c9('0x1a')],_0x75c9('0x1c'))[_0x75c9('0x1d')](';');return _0x18c0f9(handleCheckRowError(_0x75c9('0x15'),_0x43dc3d,null,_0x4d0ba8));}var _0x41489d={};for(var _0x27ad28 in FIELDS){if(FIELDS['hasOwnProperty'](_0x27ad28)&&FIELDS[_0x27ad28]){_0x41489d[_0x27ad28]=_0x3beba9[_0x75c9('0x1e')][0x0][FIELDS[_0x27ad28]]||_0x3beba9[_0x75c9('0x1e')][0x0]['\ufeff'+FIELDS[_0x27ad28]];}}if(!_0x41489d[_0x75c9('0x1f')]){return _0x18c0f9(handleCheckRowError('error','firstName\x20not\x20specified!',null,_0x4d0ba8));}if(!_0x41489d[_0x75c9('0x20')]){return _0x18c0f9(handleCheckRowError(_0x75c9('0x15'),_0x75c9('0x21'),null,_0x4d0ba8));}if(_0x41489d[_0x75c9('0x22')]){var _0x71dde0=moment(_0x41489d[_0x75c9('0x22')],'YYYY-MM-DD');if(!_0x71dde0['isValid']()){return _0x18c0f9(handleCheckRowError('error',_0x75c9('0x23'),null,_0x4d0ba8));}}if(_0x41489d[_0x75c9('0x24')]){if(!isEmail(_0x41489d[_0x75c9('0x24')])){return _0x18c0f9(handleCheckRowError(_0x75c9('0x15'),'email\x20format\x20is\x20not\x20valid!',null,_0x4d0ba8));}}_0x41489d[_0x75c9('0x25')]=LISTID;_0x41489d[_0x75c9('0x26')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x75c9('0x1b')]&&_0x1ea4a4){var _0x53937e={};for(var _0x2f9bdf=0x0,_0xcc3484=DUPLICATES[_0x75c9('0x1b')];_0x2f9bdf<_0xcc3484;_0x2f9bdf+=0x1){_0x53937e[DUPLICATES[_0x2f9bdf]]=_0x41489d[DUPLICATES[_0x2f9bdf]];}var _0x52cb94=_['find'](_0x1ea4a4,_0x53937e);if(_0x52cb94){return _0x18c0f9(handleCheckRowError(_0x75c9('0x27'),'Duplicate\x20Contact',_0x52cb94,_0x4d0ba8));}}return db[_0x75c9('0x28')][_0x75c9('0x29')](_0x41489d,{'raw':!![],'hooks':![],'fields':_['keys'](_0x41489d)})[_0x75c9('0x2a')](function(_0x4b579e){if(DUPLICATES&&DUPLICATES[_0x75c9('0x1b')]&&_0x1ea4a4){_0x1ea4a4[_0x75c9('0x2b')](_[_0x75c9('0x2c')](_0x41489d,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4b579e['id'];return _0x3fe489();})[_0x75c9('0x2d')](function(_0xdab919){return _0x18c0f9(handleCheckRowError('error','Error\x20while\x20creating\x20contact:\x20'+(_0xdab919[_0x75c9('0x1c')]||JSON[_0x75c9('0x2e')](_0xdab919)),null,_0x4d0ba8));});});}function checkHopper(){function _0x2e6965(){return function(_0x279b68){logger[_0x75c9('0x15')](_0x75c9('0x2f'),_0x75c9('0x30'),util[_0x75c9('0x31')](_0x279b68,{'showHidden':![],'depth':null}));};}var _0x3417d1=function(_0x2515a7,_0x212417){var _0x1f0e26=squel[_0x75c9('0x32')]()['into']('cm_hopper')['fromQuery']([_0x75c9('0x20'),'scheduledAt',_0x75c9('0x33'),_0x75c9('0x25'),_0x212417,_0x75c9('0x34'),_0x75c9('0x35')],squel[_0x75c9('0x36')]()[_0x75c9('0x37')](_0x75c9('0x20'),'phone')[_0x75c9('0x37')]('NOW()',_0x75c9('0x38'))[_0x75c9('0x37')]('id',_0x75c9('0x33'))['field'](LISTID['toString'](),'ListId')['field'](_0x2515a7['id']['toString'](),_0x212417)[_0x75c9('0x37')]('NOW()',_0x75c9('0x34'))[_0x75c9('0x37')](_0x75c9('0x39'),'updatedAt')['from'](_0x75c9('0x3a'))['where'](_0x75c9('0x3b'))[_0x75c9('0x3c')](_0x75c9('0x3d'),LISTID[_0x75c9('0x3e')]())['where'](_0x75c9('0x3f'))['where'](_0x75c9('0x40'),squel['select']()[_0x75c9('0x37')](_0x75c9('0x20'))[_0x75c9('0x41')](_0x75c9('0x42'))[_0x75c9('0x3c')](_0x212417+'\x20=\x20?',_0x2515a7['id'][_0x75c9('0x3e')]())))['toString']();return _0x1f0e26;};var _0xc25feb=function(_0x2919b9,_0x580310){var _0x347515=squel[_0x75c9('0x32')]()[_0x75c9('0x43')](_0x75c9('0x42'))[_0x75c9('0x44')]([_0x75c9('0x20'),_0x75c9('0x38'),_0x75c9('0x33'),_0x75c9('0x25'),_0x580310,_0x75c9('0x34'),_0x75c9('0x35')],squel['select']()[_0x75c9('0x37')](_0x75c9('0x20'),_0x75c9('0x20'))[_0x75c9('0x37')](_0x75c9('0x39'),_0x75c9('0x38'))[_0x75c9('0x37')]('id',_0x75c9('0x33'))['field'](LISTID['toString'](),_0x75c9('0x25'))[_0x75c9('0x37')](_0x2919b9['id']['toString'](),_0x580310)['field'](_0x75c9('0x39'),_0x75c9('0x34'))[_0x75c9('0x37')](_0x75c9('0x39'),'updatedAt')[_0x75c9('0x41')](_0x75c9('0x3a'))[_0x75c9('0x3c')](_0x75c9('0x3b'))[_0x75c9('0x3c')](_0x75c9('0x3d'),LISTID['toString']())['where'](_0x75c9('0x45'),squel[_0x75c9('0x46')](hopperContacts))[_0x75c9('0x3c')](_0x75c9('0x3f'))['where'](_0x75c9('0x40'),squel['select']()[_0x75c9('0x37')](_0x75c9('0x47'))[_0x75c9('0x41')](_0x75c9('0x48'))['where'](_0x580310+'\x20=\x20?',_0x2919b9['id'][_0x75c9('0x3e')]()))[_0x75c9('0x3c')](_0x75c9('0x40'),squel['select']()[_0x75c9('0x37')](_0x75c9('0x20'))[_0x75c9('0x41')](_0x75c9('0x42'))['where'](_0x580310+_0x75c9('0x49'),_0x2919b9['id'][_0x75c9('0x3e')]())))['toString']();return _0x347515;};function _0x4bd888(_0x4f6e64,_0x5f0018){var _0x2b0639=squel[_0x75c9('0x32')]()['into'](_0x75c9('0x42'))[_0x75c9('0x44')]([_0x75c9('0x20'),'scheduledAt','ContactId',_0x75c9('0x25'),_0x5f0018,'createdAt','updatedAt'],squel['select']()[_0x75c9('0x37')](_0x75c9('0x20'),'phone')[_0x75c9('0x37')]('NOW()',_0x75c9('0x38'))[_0x75c9('0x37')]('id',_0x75c9('0x33'))[_0x75c9('0x37')](LISTID[_0x75c9('0x3e')](),_0x75c9('0x25'))[_0x75c9('0x37')](_0x4f6e64['id'][_0x75c9('0x3e')](),_0x5f0018)[_0x75c9('0x37')]('NOW()',_0x75c9('0x34'))[_0x75c9('0x37')](_0x75c9('0x39'),'updatedAt')['from'](_0x75c9('0x3a'))[_0x75c9('0x3c')](_0x75c9('0x3b'))['where'](_0x75c9('0x3d'),LISTID[_0x75c9('0x3e')]())[_0x75c9('0x3c')]('id\x20IN\x20?',squel[_0x75c9('0x46')](hopperContacts))[_0x75c9('0x3c')](_0x75c9('0x3f')))[_0x75c9('0x3e')]();return _0x2b0639;}function _0x57b1f1(_0x13e26d,_0x535c86){var _0x292092=squel[_0x75c9('0x32')]()[_0x75c9('0x43')](_0x75c9('0x4a'))[_0x75c9('0x44')]([_0x75c9('0x20'),_0x75c9('0x33'),_0x75c9('0x25'),_0x535c86,_0x75c9('0x34'),_0x75c9('0x35')],squel['select']()[_0x75c9('0x37')](_0x75c9('0x20'),_0x75c9('0x20'))[_0x75c9('0x37')]('id',_0x75c9('0x33'))['field'](LISTID['toString'](),_0x75c9('0x25'))['field'](_0x13e26d['id'][_0x75c9('0x3e')](),_0x535c86)[_0x75c9('0x37')](_0x75c9('0x39'),_0x75c9('0x34'))['field']('NOW()',_0x75c9('0x35'))['from']('cm_contacts')['where'](_0x75c9('0x3b'))[_0x75c9('0x3c')](_0x75c9('0x3d'),LISTID[_0x75c9('0x3e')]())[_0x75c9('0x3c')](_0x75c9('0x45'),squel['str'](hopperContacts))[_0x75c9('0x3c')](_0x75c9('0x3f')))['toString']();return _0x292092;}return db[_0x75c9('0x4b')][_0x75c9('0x4c')]({'where':{'type':_0x75c9('0x4d')},'attributes':['id',_0x75c9('0x4e')],'include':[{'model':db[_0x75c9('0x4f')],'as':_0x75c9('0x50'),'where':{'id':LISTID}}]})[_0x75c9('0x2a')](function(_0x23b332){var _0x1cc1b1=[];if(_0x23b332){var _0x28c784;for(var _0x197392=0x0,_0x49e382;_0x197392<_0x23b332[_0x75c9('0x1b')];_0x197392+=0x1){_0x49e382=_0x23b332[_0x197392]['get']({'plain':!![]});switch(_0x49e382['dialCheckDuplicateType']){case _0x75c9('0x51'):_0x1cc1b1[_0x75c9('0x2b')](db[_0x75c9('0x52')]['query'](_0xc25feb(_0x49e382,'VoiceQueueId'))[_0x75c9('0x2a')](function(){})[_0x75c9('0x2d')](_0x2e6965()));break;case'onlyIfOpen':_0x1cc1b1[_0x75c9('0x2b')](db[_0x75c9('0x52')][_0x75c9('0x53')](_0x3417d1(_0x49e382,_0x75c9('0x54')))['then'](function(){})[_0x75c9('0x2d')](_0x2e6965()));break;default:_0x1cc1b1[_0x75c9('0x2b')](db[_0x75c9('0x52')][_0x75c9('0x53')](_0x4bd888(_0x49e382,'VoiceQueueId'))['then'](function(){})[_0x75c9('0x2d')](_0x2e6965()));}}}return _0x1cc1b1;})[_0x75c9('0x55')]()[_0x75c9('0x2a')](function(){return db['VoiceQueue'][_0x75c9('0x4c')]({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0x75c9('0x4f')],'as':'BlackLists','where':{'id':LISTID}}]})['then'](function(_0x16fdfb){var _0x44c64a=[];if(_0x16fdfb){var _0x19b8a7;for(var _0x46194d=0x0,_0x445ad9;_0x46194d<_0x16fdfb[_0x75c9('0x1b')];_0x46194d+=0x1){_0x445ad9=_0x16fdfb[_0x46194d][_0x75c9('0x56')]({'plain':!![]});_0x44c64a[_0x75c9('0x2b')](db[_0x75c9('0x52')][_0x75c9('0x53')](_0x57b1f1(_0x445ad9,_0x75c9('0x54')))[_0x75c9('0x2a')](function(){})['catch'](_0x2e6965()));}}return _0x44c64a;})[_0x75c9('0x55')]();})['then'](function(){return db[_0x75c9('0x57')][_0x75c9('0x4c')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db['CmList'],'as':_0x75c9('0x50'),'where':{'id':LISTID}}]})['then'](function(_0x126e62){var _0x5290ad=[];if(_0x126e62){for(var _0x1efc5d=0x0,_0x1a388e;_0x1efc5d<_0x126e62[_0x75c9('0x1b')];_0x1efc5d+=0x1){_0x1a388e=_0x126e62[_0x1efc5d][_0x75c9('0x56')]({'plain':!![]});switch(_0x1a388e[_0x75c9('0x4e')]){case _0x75c9('0x51'):_0x5290ad[_0x75c9('0x2b')](db[_0x75c9('0x52')][_0x75c9('0x53')](_0xc25feb(_0x1a388e,'CampaignId'))[_0x75c9('0x2a')](function(){})[_0x75c9('0x2d')](_0x2e6965()));break;case'onlyIfOpen':_0x5290ad[_0x75c9('0x2b')](db['sequelize']['query'](_0x3417d1(_0x1a388e,_0x75c9('0x58')))['then'](function(){})[_0x75c9('0x2d')](_0x2e6965()));break;default:_0x5290ad['push'](db[_0x75c9('0x52')][_0x75c9('0x53')](_0x4bd888(_0x1a388e,_0x75c9('0x58')))[_0x75c9('0x2a')](function(){})['catch'](_0x2e6965()));}}}return _0x5290ad;})[_0x75c9('0x55')]();})['then'](function(){return db['Campaign'][_0x75c9('0x4c')]({'attributes':['id'],'include':[{'model':db[_0x75c9('0x4f')],'as':_0x75c9('0x59'),'where':{'id':LISTID}}]})['then'](function(_0x2b65b4){var _0x36cbbc=[];if(_0x2b65b4){for(var _0xf8b623=0x0,_0x5cb89e;_0xf8b623<_0x2b65b4[_0x75c9('0x1b')];_0xf8b623+=0x1){_0x5cb89e=_0x2b65b4[_0xf8b623][_0x75c9('0x56')]({'plain':!![]});_0x36cbbc['push'](db[_0x75c9('0x52')][_0x75c9('0x53')](_0x57b1f1(_0x5cb89e,'CampaignId'))[_0x75c9('0x2a')](function(){})[_0x75c9('0x2d')](_0x2e6965()));}}return _0x36cbbc;})[_0x75c9('0x55')]();})[_0x75c9('0x2d')](function(_0x459531){logger[_0x75c9('0x15')](_0x75c9('0x5a'),'generalCheckHopper',_0x459531[_0x75c9('0x1c')]);});}var processPromises=function(_0x2fc54){return BPromise[_0x75c9('0x55')](promises)[_0x75c9('0x2a')](function(_0x27b655){})[_0x75c9('0x2d')](function(_0x5e6c62){logger[_0x75c9('0x15')]('Error\x20processing\x20rows\x20block:',JSON[_0x75c9('0x2e')](_0x5e6c62));})['finally'](function(){socket['emit'](_0x75c9('0x5b')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x2fc54){return _0x2fc54[_0x75c9('0x5c')]();}});};var endCsv=function(){return BPromise[_0x75c9('0x5d')]()[_0x75c9('0x2a')](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket['emit'](_0x75c9('0x5b')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x75c9('0x5e')](FILEPATH);}catch(_0x4784c0){logger[_0x75c9('0x15')](_0x75c9('0x5f'),JSON['stringify'](_0x4784c0));}finally{process['exit'](0x0);}});};process['on'](_0x75c9('0x60'),function(){logger['info'](_0x75c9('0x61'));endCsv();});function main(){return BPromise[_0x75c9('0x5d')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x75c9('0x13')](',');return db[_0x75c9('0x28')][_0x75c9('0x4c')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x75c9('0x2a')](function(_0x22a9c0){var _0x33d0be=fs[_0x75c9('0x62')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x75c9('0x63')](_0x33d0be,{'header':!![],'skipEmptyLines':!![],'step':function(_0x323b64,_0x587869){total+=0x1;var _0x2e5c7f=total;promises[_0x75c9('0x2b')](checkRow(_0x323b64,_0x22a9c0,_0x2e5c7f)[_0x75c9('0x2a')](function(){success+=0x1;})[_0x75c9('0x2d')](function(_0x43354e){if(_0x43354e[_0x75c9('0x15')]){errors+=0x1;delete _0x43354e[_0x75c9('0x15')];}else if(_0x43354e[_0x75c9('0x27')]){duplicates+=0x1;delete _0x43354e[_0x75c9('0x27')];}rows[_0x75c9('0x2b')](_0x43354e);}));if(total%0xc8===0x0){_0x587869['pause']();return processPromises(_0x587869);}},'complete':function(){return processPromises()[_0x75c9('0x2a')](function(){logger['info']('CSV\x20parsed\x20correctly!');endCsv();});},'error':function(_0x69b941,_0x36b379){logger['info'](_0x75c9('0x64'),JSON[_0x75c9('0x2e')](_0x69b941));endCsv();}});})[_0x75c9('0x2d')](function(_0x135aa4){logger[_0x75c9('0x15')](_0x75c9('0x65'),JSON[_0x75c9('0x2e')](_0x135aa4));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8c5=['cm_contacts.phone','cm_contacts.id','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','cm_hopper','ContactId','ListId','createdAt','updatedAt','priority','from','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','.id\x20=\x20','where','.CmListId\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','toString','cm_contacts.ListId','cm_hopper_black','fromQuery','fields','ListId\x20=\x20?','keys','CompanyId',')\x20NOT\x20IN\x20?','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','exit','errors','push','code','sequelize','spread','catch','main','stringify','start','binding','socket_timestamp','root','.csv','header','writeFileSync','createReadStream','rows','data','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','UserId','isNumber','includes','agent\x20not\x20exists','email','email\x20wrong\x20format','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','length','SystemRow','appendFileSync','contact:import:','Abort\x20parser','abort','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','isNil','scheduledat',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns','CampaignId','campaigns_has_cm_blacklists','then','finish','affectedRows','unlink','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','existsSync','parse','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','map','No\x20agent\x20available','uncaughtException','path','papaparse','util','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','localhost','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','test','select','phone','join'];(function(_0x1c14ae,_0x25ecce){var _0x24c7cf=function(_0x167c24){while(--_0x167c24){_0x1c14ae['push'](_0x1c14ae['shift']());}};_0x24c7cf(++_0x25ecce);}(_0xa8c5,0xf0));var _0x5a8c=function(_0x21eb21,_0x223fa2){_0x21eb21=_0x21eb21-0x0;var _0x3a8b1f=_0xa8c5[_0x21eb21];return _0x3a8b1f;};'use strict';var fs=require('fs');var path=require(_0x5a8c('0x0'));var _=require('lodash');var Papa=require(_0x5a8c('0x1'));var util=require(_0x5a8c('0x2'));var BPromise=require(_0x5a8c('0x3'));var moment=require(_0x5a8c('0x4'));var squel=require(_0x5a8c('0x5'));var Redis=require(_0x5a8c('0x6'));var db=require(_0x5a8c('0x7'))['db'];var config=require(_0x5a8c('0x8'));var logger=require(_0x5a8c('0x9'))('import');config[_0x5a8c('0xa')]=_[_0x5a8c('0xb')](config[_0x5a8c('0xa')],{'host':_0x5a8c('0xc'),'port':0x18eb});var socket=require(_0x5a8c('0xd'))(new Redis(config[_0x5a8c('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x5a8c('0xe')](_0x5a8c('0xf'));function isEmail(_0x125081){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))*$/[_0x5a8c('0x10')](_0x125081);}function selectNotIn(_0x4f5b1c,_0x53d796,_0x3b8ed2,_0x502797,_0x5ef758){return squel[_0x5a8c('0x11')]()['field'](_0x5a8c('0x12'))['from'](_0x502797)[_0x5a8c('0x13')](_0x53d796,null,_0x53d796+'.id\x20=\x20'+_0x502797+'.'+_0x3b8ed2)['where'](_0x502797+'.'+_0x3b8ed2+'\x20=\x20'+_0x4f5b1c+'.'+_0x3b8ed2)['where'](_0x53d796+'.dialCheckDuplicateType\x20IN\x20('+_0x5ef758[_0x5a8c('0x13')]()+')');}function insertCmHopper(_0x1e8adc,_0x521833,_0x58592b,_0x5ad9b5,_0xdfd146){var _0x1eb503=[_0x5a8c('0x14'),'cm_contacts.scheduledat',_0x5a8c('0x15'),'cm_contacts.ListId',_0x521833+'.'+_0x5ad9b5,_0x5a8c('0x16'),_0x5a8c('0x17'),_0x5a8c('0x18'),_0x5a8c('0x19'),'\x22'+_0xdfd146+'\x22'];return squel[_0x5a8c('0x1a')]()[_0x5a8c('0x1b')](_0x5a8c('0x1c'))['fromQuery']([_0x5a8c('0x12'),'scheduledat',_0x5a8c('0x1d'),_0x5a8c('0x1e'),_0x5ad9b5,_0x5a8c('0x1f'),_0x5a8c('0x20'),_0x5a8c('0x21'),'UserId','recallme'],squel[_0x5a8c('0x11')]()['fields'](_0x1eb503)[_0x5a8c('0x22')](_0x521833)[_0x5a8c('0x13')](_0x5a8c('0x23'),null,_0x5a8c('0x24')+_0x521833+_0x5a8c('0x25'))[_0x5a8c('0x13')](_0x58592b,null,_0x58592b+_0x5a8c('0x26')+_0x521833+'.'+_0x5ad9b5)[_0x5a8c('0x27')](_0x521833+_0x5a8c('0x28'),_0x1e8adc)[_0x5a8c('0x27')]('cm_contacts.createdAt\x20=\x20?',NOW)['where'](_0x5a8c('0x29'),selectNotIn(_0x521833,_0x58592b,_0x5ad9b5,_0x5a8c('0x1c'),[_0x5a8c('0x2a'),'\x22onlyIfOpen\x22']))[_0x5a8c('0x27')](_0x5a8c('0x29'),selectNotIn(_0x521833,_0x58592b,_0x5ad9b5,_0x5a8c('0x1c'),[_0x5a8c('0x2a')])))[_0x5a8c('0x2b')]();}function insertCmHopperBlack(_0x5f11ee,_0x4c569e,_0x18787a,_0x17a907){var _0x23944d=[_0x5a8c('0x14'),'cm_contacts.id',_0x5a8c('0x2c'),_0x4c569e+'.'+_0x17a907,_0x5a8c('0x16'),_0x5a8c('0x17')];return squel[_0x5a8c('0x1a')]()['into'](_0x5a8c('0x2d'))[_0x5a8c('0x2e')]([_0x5a8c('0x12'),_0x5a8c('0x1d'),_0x5a8c('0x1e'),_0x17a907,_0x5a8c('0x1f'),_0x5a8c('0x20')],squel[_0x5a8c('0x11')]()[_0x5a8c('0x2f')](_0x23944d)[_0x5a8c('0x22')](_0x4c569e)[_0x5a8c('0x13')]('cm_contacts',null,_0x5a8c('0x24')+_0x4c569e+_0x5a8c('0x25'))[_0x5a8c('0x13')](_0x18787a,null,_0x18787a+'.id\x20=\x20'+_0x4c569e+'.'+_0x17a907)[_0x5a8c('0x27')](_0x4c569e+_0x5a8c('0x28'),_0x5f11ee)['where']('cm_contacts.createdAt\x20=\x20?',NOW)['where'](_0x5a8c('0x29'),squel[_0x5a8c('0x11')]()['field'](_0x5a8c('0x12'))[_0x5a8c('0x22')]('cm_hopper_black')[_0x5a8c('0x27')](_0x5a8c('0x30'),_0x5f11ee)['where'](_0x17a907+'\x20=\x20?',_0x4c569e+'.'+_0x17a907)))[_0x5a8c('0x2b')]();}function insertCmContact(_0x441fa5,_0x395f70,_0x558727,_0x3bd096){var _0x4b9e40=_['concat'](_[_0x5a8c('0x31')](_0x3bd096),['ListId',_0x5a8c('0x32'),_0x5a8c('0x1f'),_0x5a8c('0x20')]);return squel['insert']()[_0x5a8c('0x1b')](_0x5a8c('0x23'))[_0x5a8c('0x2e')](_0x4b9e40,squel[_0x5a8c('0x11')]()['fields'](_0x4b9e40)['from'](_0x395f70)[_0x5a8c('0x27')]('('+_0x558727[_0x5a8c('0x13')](',')+_0x5a8c('0x33'),squel[_0x5a8c('0x11')]()[_0x5a8c('0x2f')](_0x558727)[_0x5a8c('0x22')](_0x5a8c('0x23'))['where'](_0x5a8c('0x30'),_0x441fa5)[_0x5a8c('0x27')]('deletedAt\x20IS\x20NULL'))[_0x5a8c('0x27')](_0x5a8c('0x34'),squel[_0x5a8c('0x11')]()['field'](_0x5a8c('0x35'),_0x5a8c('0x36'))[_0x5a8c('0x22')](_0x395f70)[_0x5a8c('0x37')](_0x558727[_0x5a8c('0x13')](','))))['toString']();}function handleStop(){logger[_0x5a8c('0x38')](_0x5a8c('0x39'));stopped=!![];}function handleUncaughtException(_0x2b3b20){logger[_0x5a8c('0x3a')](_0x2b3b20[_0x5a8c('0x3b')]);process[_0x5a8c('0x3c')](0x1);}function handleError(_0x575ad1,_0x3ae3a1){stats[_0x5a8c('0x3d')][_0x5a8c('0x3e')]({'name':_0x3ae3a1[_0x5a8c('0x3f')],'message':_0x3ae3a1['message'],'row':_0x575ad1});}function handleQuery(_0x2cf127){logger[_0x5a8c('0x38')](_0x2cf127);return db[_0x5a8c('0x40')]['query'](_0x2cf127)[_0x5a8c('0x41')](function(_0x38f8dc){results[_0x5a8c('0x3e')](_0x38f8dc);})[_0x5a8c('0x42')](function(_0x49fb7c){logger[_0x5a8c('0x3a')](_0x49fb7c[_0x5a8c('0x3b')]);});}function main(_0x234b10,_0x2ea503,_0x40297f,_0x5930a8){logger[_0x5a8c('0x38')](_0x5a8c('0x43'),_0x234b10,JSON[_0x5a8c('0x44')](_0x2ea503));process['send'](_0x5a8c('0x45'));var _0x28c316=_0x2ea503[_0x5a8c('0x46')];var _0x56daa9=_0x2ea503[_0x5a8c('0x47')];var _0x4f3c0d=path[_0x5a8c('0x13')](config[_0x5a8c('0x48')],'server/files/tmp',_0x56daa9+_0x5a8c('0x49'));var _0xc63133=_[_0x5a8c('0x31')](_0x28c316)[_0x5a8c('0x13')]();logger[_0x5a8c('0x38')](_0x5a8c('0x4a'),_0xc63133);fs[_0x5a8c('0x4b')](_0x4f3c0d,_0xc63133+'\x0a');Papa['parse'](fs[_0x5a8c('0x4c')](_0x234b10),{'header':!![],'skipEmptyLines':!![],'step':function(_0x5b9597,_0xb3ad4e){try{for(var _0xab705c=0x0,_0x55c5a3=[];_0xab705c<_0x5b9597['data']['length'];_0xab705c++){stats[_0x5a8c('0x4d')]+=0x1;if(_0x5b9597[_0x5a8c('0x3d')][_0xab705c]){handleError(_0x5b9597[_0x5a8c('0x4e')][_0xab705c],_0x5b9597[_0x5a8c('0x3d')][_0xab705c]);}else{var _0x4238e4=[];for(var _0x58654e in _0x28c316){if(_0x28c316['hasOwnProperty'](_0x58654e)){if(_0x5b9597[_0x5a8c('0x4e')][_0xab705c][_0x28c316[_0x58654e]]){var _0x4761ea=_['trim'](_0x5b9597[_0x5a8c('0x4e')][_0xab705c][_0x28c316[_0x58654e]][_0x5a8c('0x4f')](/"/g,'\x27'));switch(_0x58654e){case'scheduledat':var _0x5d5548=moment(_0x4761ea,_0x5a8c('0xf'),!![]);if(_0x5d5548[_0x5a8c('0x50')]()){_0x55c5a3[_0x5a8c('0x3e')]('\x22'+_0x4761ea+'\x22');}else{_0x4238e4[_0x5a8c('0x3e')](_0x5a8c('0x51'));}break;case _0x5a8c('0x21'):var _0x4be883=parseInt(_0x4761ea);_0x4761ea=_[_0x5a8c('0x52')](_0x4be883)||_0x4be883<0x0||_0x4be883>0x4?_0x5930a8?0x3:0x2:_0x4be883;_0x55c5a3[_0x5a8c('0x3e')]('\x22'+_0x4761ea+'\x22');break;case _0x5a8c('0x53'):var _0x174426=parseInt(_0x4761ea);if(_[_0x5a8c('0x54')](_0x174426)&&_[_0x5a8c('0x55')](_0x40297f,_0x174426)){_0x55c5a3['push']('\x22'+_0x174426+'\x22');}else{_0x4238e4['push'](_0x5a8c('0x56'));}break;case _0x5a8c('0x57'):if(isEmail(_0x4761ea)){_0x55c5a3[_0x5a8c('0x3e')]('\x22'+_0x4761ea+'\x22');}else{_0x4238e4[_0x5a8c('0x3e')](_0x5a8c('0x58'));}break;case'dateOfBirth':var _0x372218=moment(_0x4761ea,_0x5a8c('0x59'),!![]);if(_0x372218['isValid']()){_0x55c5a3[_0x5a8c('0x3e')]('\x22'+_0x4761ea+'\x22');}else{_0x4238e4[_0x5a8c('0x3e')](_0x5a8c('0x5a'));}break;default:_0x55c5a3[_0x5a8c('0x3e')]('\x22'+_0x4761ea+'\x22');}}else{switch(_0x58654e){case _0x5a8c('0x5b'):case _0x5a8c('0x12'):_0x4238e4['push'](_0x58654e+'\x20not\x20specified');break;default:_0x55c5a3[_0x5a8c('0x3e')]('\x22\x22');}}}}if(_0x4238e4[_0x5a8c('0x5c')]){handleError(_0x5b9597['data'][_0xab705c],{'code':_0x5a8c('0x5d'),'message':_0x4238e4[_0x5a8c('0x13')]()});}else{fs[_0x5a8c('0x5e')](_0x4f3c0d,_0x55c5a3['join']()+'\x0a');}_0x55c5a3=[];}if(!(stats[_0x5a8c('0x4d')]%0xc8)){socket['emit'](_0x5a8c('0x5f')+_0x56daa9,stats);stats[_0x5a8c('0x3d')]=[];}}if(stopped){logger[_0x5a8c('0x38')](_0x5a8c('0x60'));_0xb3ad4e[_0x5a8c('0x61')]();}}catch(_0x3f1f98){handleError(_0x5b9597[_0x5a8c('0x4e')][_0xab705c],{'code':'SystemError','message':_0x3f1f98[_0x5a8c('0x3b')]});logger['error']('step',_0x3f1f98[_0x5a8c('0x3b')]);}},'complete':function(){try{var _0xb167d8=[];var _0x4e28e6=_0x5a8c('0x23');if(_0x2ea503[_0x5a8c('0x62')]&&_0x2ea503[_0x5a8c('0x62')][_0x5a8c('0x5c')]){_0x4e28e6=_0x5a8c('0x63')+_0x56daa9;_0xb167d8[_0x5a8c('0x3e')](_0x5a8c('0x64')+_0x4e28e6+_0x5a8c('0x65'));}var _0x2aab53=util[_0x5a8c('0xe')]('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',_0x4f3c0d,_0x4e28e6,_0xc63133,_0x2ea503['ListId'],_0x2ea503[_0x5a8c('0x32')]||null,NOW,NOW);if(_[_0x5a8c('0x66')](_0x28c316[_0x5a8c('0x67')])){_0x2aab53+=_0x5a8c('0x68');}_0xb167d8[_0x5a8c('0x3e')](_0x2aab53);if(_0x2ea503['duplicates']&&_0x2ea503['duplicates'][_0x5a8c('0x5c')]){_0xb167d8[_0x5a8c('0x3e')](insertCmContact(_0x2ea503[_0x5a8c('0x1e')],_0x4e28e6,_0x2ea503[_0x5a8c('0x62')],_0x28c316));_0xb167d8[_0x5a8c('0x3e')](_0x5a8c('0x69')+_0x4e28e6+';');}_0xb167d8['push'](insertCmHopper(_0x2ea503[_0x5a8c('0x1e')],_0x5a8c('0x6a'),_0x5a8c('0x6b'),_0x5a8c('0x6c'),_0x5930a8));_0xb167d8['push'](insertCmHopperBlack(_0x2ea503[_0x5a8c('0x1e')],_0x5a8c('0x6d'),_0x5a8c('0x6b'),_0x5a8c('0x6c')));_0xb167d8['push'](insertCmHopper(_0x2ea503[_0x5a8c('0x1e')],_0x5a8c('0x6e'),_0x5a8c('0x6f'),_0x5a8c('0x70'),_0x5930a8));_0xb167d8[_0x5a8c('0x3e')](insertCmHopperBlack(_0x2ea503[_0x5a8c('0x1e')],_0x5a8c('0x71'),_0x5a8c('0x6f'),_0x5a8c('0x70')));BPromise['each'](_0xb167d8,handleQuery)[_0x5a8c('0x72')](function(_0x173473){stats[_0x5a8c('0x73')]=!![];stats[_0x5a8c('0x74')]=_0x2ea503[_0x5a8c('0x62')]&&_0x2ea503[_0x5a8c('0x62')][_0x5a8c('0x5c')]?results[0x2][_0x5a8c('0x74')]:results[0x0][_0x5a8c('0x74')];socket['emit'](_0x5a8c('0x5f')+_0x56daa9,stats);fs[_0x5a8c('0x75')](_0x234b10);fs[_0x5a8c('0x75')](_0x4f3c0d);process['exit'](0x0);})['catch'](function(_0x3367f8){logger[_0x5a8c('0x3a')](_0x3367f8[_0x5a8c('0x3b')]);process[_0x5a8c('0x3c')](0x1);});}catch(_0x67a7a4){logger[_0x5a8c('0x3a')](_0x5a8c('0x76'),_0x67a7a4[_0x5a8c('0x3b')]);process['exit'](0x1);}},'error':function(_0x43a655,_0x797d63,_0x2f2b6b,_0xefa7ac){throw new Error(_0xefa7ac);}});}function validate(){if(process[_0x5a8c('0x77')]&&process[_0x5a8c('0x77')][_0x5a8c('0x5c')]<0x4){throw new Error(_0x5a8c('0x78'));}var _0x7fbdd2=path[_0x5a8c('0x13')](config['root'],'server/files/tmp',process[_0x5a8c('0x77')][0x2]);if(!fs[_0x5a8c('0x79')](_0x7fbdd2)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x397f36={};try{_0x397f36=JSON[_0x5a8c('0x7a')](process[_0x5a8c('0x77')][0x3]);if(!_0x397f36[_0x5a8c('0x46')]){throw new Error(_0x5a8c('0x7b'));}if(!_0x397f36['binding'][_0x5a8c('0x12')]){throw new Error(_0x5a8c('0x7c'));}if(!_0x397f36[_0x5a8c('0x46')][_0x5a8c('0x5b')]){throw new Error(_0x5a8c('0x7d'));}var _0x1f27fb=0x0;if(_0x397f36['binding'][_0x5a8c('0x53')]){_0x1f27fb=0x1;}if(!_0x397f36['ListId']){throw new Error(_0x5a8c('0x7e'));}}catch(_0x58f776){throw new Error('body\x20id\x20mandatory');}var _0x29f7ec=[];try{_0x29f7ec=_[_0x5a8c('0x7f')](JSON[_0x5a8c('0x7a')](process[_0x5a8c('0x77')][0x4]),'id');}catch(_0x5c049c){logger[_0x5a8c('0x38')](_0x5a8c('0x80'));}main(_0x7fbdd2,_0x397f36,_0x29f7ec,_0x1f27fb);}validate();process['on']('SIGINT',handleStop);process['on'](_0x5a8c('0x81'),handleUncaughtException);
\ No newline at end of file
+var _0x2905=['phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','SIGINT','uncaughtException','path','lodash','papaparse','bluebird','moment','squel','ioredis','../../../mysqldb','../../../config/logger','import','redis','localhost','socket.io-emitter','test','select','phone','join','.id\x20=\x20','where','\x20=\x20','cm_contacts.phone','cm_contacts.scheduledat','cm_contacts.id','cm_contacts.ListId','cm_contacts.updatedAt','cm_contacts.priority','insert','into','cm_hopper','fromQuery','scheduledat','ContactId','ListId','createdAt','updatedAt','UserId','recallme','fields','from','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22onlyIfOpen\x22','\x22always\x22','toString','cm_contacts.createdAt','.CmListId\x20=\x20?','field','cm_hopper_black','\x20=\x20?','keys',')\x20NOT\x20IN\x20?','ListId\x20=\x20?','id\x20IN\x20?','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','errors','push','code','sequelize','query','spread','catch','main','stringify','send','root','server/files/tmp','.csv','header','parse','createReadStream','data','length','rows','hasOwnProperty','replace','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','priority','isNaN','includes','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','isValid','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','\x20not\x20specified','SystemRow','appendFileSync','emit','contact:import:','abort','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','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','VoiceQueueId','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns','CampaignId','then','finish','affectedRows','unlink','exit','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','binding','binding\x20doesn\x27t\x20exists'];(function(_0x1b6faa,_0xb34346){var _0x10bee9=function(_0x472323){while(--_0x472323){_0x1b6faa['push'](_0x1b6faa['shift']());}};_0x10bee9(++_0xb34346);}(_0x2905,0x19c));var _0x5290=function(_0x19e35c,_0x29cd1e){_0x19e35c=_0x19e35c-0x0;var _0x3e1fe8=_0x2905[_0x19e35c];return _0x3e1fe8;};'use strict';var fs=require('fs');var path=require(_0x5290('0x0'));var _=require(_0x5290('0x1'));var Papa=require(_0x5290('0x2'));var util=require('util');var BPromise=require(_0x5290('0x3'));var moment=require(_0x5290('0x4'));var squel=require(_0x5290('0x5'));var Redis=require(_0x5290('0x6'));var db=require(_0x5290('0x7'))['db'];var config=require('../../../config/environment');var logger=require(_0x5290('0x8'))(_0x5290('0x9'));config[_0x5290('0xa')]=_['defaults'](config['redis'],{'host':_0x5290('0xb'),'port':0x18eb});var socket=require(_0x5290('0xc'))(new Redis(config[_0x5290('0xa')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');function isEmail(_0x15fc1e){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))*$/[_0x5290('0xd')](_0x15fc1e);}function selectNotIn(_0x965777,_0x569eba,_0x2b8c47,_0x4913ea,_0x5bf69f){return squel[_0x5290('0xe')]()['field'](_0x5290('0xf'))['from'](_0x4913ea)[_0x5290('0x10')](_0x569eba,null,_0x569eba+_0x5290('0x11')+_0x4913ea+'.'+_0x2b8c47)[_0x5290('0x12')](_0x4913ea+'.'+_0x2b8c47+_0x5290('0x13')+_0x965777+'.'+_0x2b8c47)[_0x5290('0x12')](_0x569eba+'.dialCheckDuplicateType\x20IN\x20('+_0x5bf69f[_0x5290('0x10')]()+')');}function insertCmHopper(_0x4ca236,_0x13246f,_0x70f6d5,_0x45f7ce,_0x3616eb){var _0x6e5148=[_0x5290('0x14'),_0x5290('0x15'),_0x5290('0x16'),_0x5290('0x17'),_0x13246f+'.'+_0x45f7ce,'cm_contacts.createdAt',_0x5290('0x18'),_0x5290('0x19'),'cm_contacts.UserId','\x22'+_0x3616eb+'\x22'];return squel[_0x5290('0x1a')]()[_0x5290('0x1b')](_0x5290('0x1c'))[_0x5290('0x1d')]([_0x5290('0xf'),_0x5290('0x1e'),_0x5290('0x1f'),_0x5290('0x20'),_0x45f7ce,_0x5290('0x21'),_0x5290('0x22'),'priority',_0x5290('0x23'),_0x5290('0x24')],squel['select']()[_0x5290('0x25')](_0x6e5148)[_0x5290('0x26')](_0x13246f)['join'](_0x5290('0x27'),null,_0x5290('0x28')+_0x13246f+_0x5290('0x29'))[_0x5290('0x10')](_0x70f6d5,null,_0x70f6d5+_0x5290('0x11')+_0x13246f+'.'+_0x45f7ce)['where'](_0x13246f+'.CmListId\x20=\x20?',_0x4ca236)[_0x5290('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x5290('0x12')](_0x5290('0x2a'),selectNotIn(_0x13246f,_0x70f6d5,_0x45f7ce,_0x5290('0x1c'),['\x22always\x22',_0x5290('0x2b')]))[_0x5290('0x12')](_0x5290('0x2a'),selectNotIn(_0x13246f,_0x70f6d5,_0x45f7ce,_0x5290('0x1c'),[_0x5290('0x2c')])))[_0x5290('0x2d')]();}function insertCmHopperBlack(_0x1380b5,_0x4c9132,_0x43c29d,_0x3b103c){var _0x1dbecc=[_0x5290('0x14'),'cm_contacts.id',_0x5290('0x17'),_0x4c9132+'.'+_0x3b103c,_0x5290('0x2e'),_0x5290('0x18')];return squel[_0x5290('0x1a')]()[_0x5290('0x1b')]('cm_hopper_black')[_0x5290('0x1d')](['phone',_0x5290('0x1f'),'ListId',_0x3b103c,_0x5290('0x21'),_0x5290('0x22')],squel[_0x5290('0xe')]()[_0x5290('0x25')](_0x1dbecc)[_0x5290('0x26')](_0x4c9132)[_0x5290('0x10')]('cm_contacts',null,_0x5290('0x28')+_0x4c9132+_0x5290('0x29'))['join'](_0x43c29d,null,_0x43c29d+'.id\x20=\x20'+_0x4c9132+'.'+_0x3b103c)[_0x5290('0x12')](_0x4c9132+_0x5290('0x2f'),_0x1380b5)[_0x5290('0x12')]('cm_contacts.createdAt\x20=\x20?',NOW)[_0x5290('0x12')](_0x5290('0x2a'),squel[_0x5290('0xe')]()[_0x5290('0x30')]('phone')[_0x5290('0x26')](_0x5290('0x31'))[_0x5290('0x12')]('ListId\x20=\x20?',_0x1380b5)[_0x5290('0x12')](_0x3b103c+_0x5290('0x32'),_0x4c9132+'.'+_0x3b103c)))['toString']();}function insertCmContact(_0x4db081,_0x1c4a16,_0x30e823,_0x3113d8){var _0x2a327b=_['concat'](_[_0x5290('0x33')](_0x3113d8),['ListId','CompanyId',_0x5290('0x21'),_0x5290('0x22')]);return squel[_0x5290('0x1a')]()[_0x5290('0x1b')]('cm_contacts')[_0x5290('0x1d')](_0x2a327b,squel['select']()[_0x5290('0x25')](_0x2a327b)['from'](_0x1c4a16)[_0x5290('0x12')]('('+_0x30e823[_0x5290('0x10')](',')+_0x5290('0x34'),squel[_0x5290('0xe')]()[_0x5290('0x25')](_0x30e823)[_0x5290('0x26')](_0x5290('0x27'))[_0x5290('0x12')](_0x5290('0x35'),_0x4db081)[_0x5290('0x12')]('deletedAt\x20IS\x20NULL'))[_0x5290('0x12')](_0x5290('0x36'),squel[_0x5290('0xe')]()['field'](_0x5290('0x37'),_0x5290('0x38'))[_0x5290('0x26')](_0x1c4a16)[_0x5290('0x39')](_0x30e823[_0x5290('0x10')](','))))[_0x5290('0x2d')]();}function handleStop(){logger[_0x5290('0x3a')](_0x5290('0x3b'));stopped=!![];}function handleUncaughtException(_0x2c8951){logger[_0x5290('0x3c')](_0x2c8951[_0x5290('0x3d')]);process['exit'](0x1);}function handleError(_0x12f3ce,_0x35efed){stats[_0x5290('0x3e')][_0x5290('0x3f')]({'name':_0x35efed[_0x5290('0x40')],'message':_0x35efed[_0x5290('0x3d')],'row':_0x12f3ce});}function handleQuery(_0x6d3743){logger[_0x5290('0x3a')](_0x6d3743);return db[_0x5290('0x41')][_0x5290('0x42')](_0x6d3743)[_0x5290('0x43')](function(_0x5d100b){results[_0x5290('0x3f')](_0x5d100b);})[_0x5290('0x44')](function(_0x2ba979){logger['error'](_0x2ba979[_0x5290('0x3d')]);});}function main(_0x51b435,_0x3ef366,_0x2833e9,_0x267d89){logger[_0x5290('0x3a')](_0x5290('0x45'),_0x51b435,JSON[_0x5290('0x46')](_0x3ef366));process[_0x5290('0x47')]('start');var _0x60143d=_0x3ef366['binding'];var _0x3a1d46=_0x3ef366['socket_timestamp'];var _0x5c2b62=path[_0x5290('0x10')](config[_0x5290('0x48')],_0x5290('0x49'),_0x3a1d46+_0x5290('0x4a'));var _0x43b6b7=_[_0x5290('0x33')](_0x60143d)[_0x5290('0x10')]();logger[_0x5290('0x3a')](_0x5290('0x4b'),_0x43b6b7);fs['writeFileSync'](_0x5c2b62,_0x43b6b7+'\x0a');Papa[_0x5290('0x4c')](fs[_0x5290('0x4d')](_0x51b435),{'header':!![],'skipEmptyLines':!![],'step':function(_0x1ae523,_0x584381){try{for(var _0x378b41=0x0,_0x3bfb69=[];_0x378b41<_0x1ae523[_0x5290('0x4e')][_0x5290('0x4f')];_0x378b41++){stats[_0x5290('0x50')]+=0x1;if(_0x1ae523[_0x5290('0x3e')][_0x378b41]){handleError(_0x1ae523[_0x5290('0x4e')][_0x378b41],_0x1ae523[_0x5290('0x3e')][_0x378b41]);}else{var _0x1e0e7b=[];for(var _0x3097e9 in _0x60143d){if(_0x60143d[_0x5290('0x51')](_0x3097e9)){if(_0x1ae523['data'][_0x378b41][_0x60143d[_0x3097e9]]){var _0x25fdfb=_['trim'](_0x1ae523[_0x5290('0x4e')][_0x378b41][_0x60143d[_0x3097e9]][_0x5290('0x52')](/"/g,'\x27'));switch(_0x3097e9){case _0x5290('0x1e'):var _0x517b6c=moment(_0x25fdfb,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x517b6c['isValid']()){_0x3bfb69['push']('\x22'+_0x25fdfb+'\x22');}else{_0x1e0e7b[_0x5290('0x3f')](_0x5290('0x53'));}break;case _0x5290('0x54'):var _0x5496ed=parseInt(_0x25fdfb);_0x25fdfb=_[_0x5290('0x55')](_0x5496ed)||_0x5496ed<0x0||_0x5496ed>0x4?_0x267d89?0x3:0x2:_0x5496ed;_0x3bfb69['push']('\x22'+_0x25fdfb+'\x22');break;case _0x5290('0x23'):var _0x1ea9a2=parseInt(_0x25fdfb);if(_['isNumber'](_0x1ea9a2)&&_[_0x5290('0x56')](_0x2833e9,_0x1ea9a2)){_0x3bfb69[_0x5290('0x3f')]('\x22'+_0x1ea9a2+'\x22');}else{_0x1e0e7b[_0x5290('0x3f')]('agent\x20not\x20exists');}break;case _0x5290('0x57'):if(isEmail(_0x25fdfb)){_0x3bfb69[_0x5290('0x3f')]('\x22'+_0x25fdfb+'\x22');}else{_0x1e0e7b[_0x5290('0x3f')](_0x5290('0x58'));}break;case _0x5290('0x59'):var _0x157eda=moment(_0x25fdfb,_0x5290('0x5a'),!![]);if(_0x157eda[_0x5290('0x5b')]()){_0x3bfb69[_0x5290('0x3f')]('\x22'+_0x25fdfb+'\x22');}else{_0x1e0e7b['push'](_0x5290('0x5c'));}break;default:_0x3bfb69['push']('\x22'+_0x25fdfb+'\x22');}}else{switch(_0x3097e9){case _0x5290('0x5d'):case _0x5290('0xf'):_0x1e0e7b[_0x5290('0x3f')](_0x3097e9+_0x5290('0x5e'));break;default:_0x3bfb69[_0x5290('0x3f')]('\x22\x22');}}}}if(_0x1e0e7b[_0x5290('0x4f')]){handleError(_0x1ae523[_0x5290('0x4e')][_0x378b41],{'code':_0x5290('0x5f'),'message':_0x1e0e7b[_0x5290('0x10')]()});}else{fs[_0x5290('0x60')](_0x5c2b62,_0x3bfb69[_0x5290('0x10')]()+'\x0a');}_0x3bfb69=[];}if(!(stats['rows']%0xc8)){socket[_0x5290('0x61')](_0x5290('0x62')+_0x3a1d46,stats);stats[_0x5290('0x3e')]=[];}}if(stopped){logger[_0x5290('0x3a')]('Abort\x20parser');_0x584381[_0x5290('0x63')]();}}catch(_0x40b18f){handleError(_0x1ae523[_0x5290('0x4e')][_0x378b41],{'code':'SystemError','message':_0x40b18f[_0x5290('0x3d')]});logger[_0x5290('0x3c')](_0x5290('0x64'),_0x40b18f[_0x5290('0x3d')]);}},'complete':function(){try{var _0x2342e5=[];var _0x538466=_0x5290('0x27');if(_0x3ef366[_0x5290('0x65')]&&_0x3ef366['duplicates'][_0x5290('0x4f')]){_0x538466=_0x5290('0x66')+_0x3a1d46;_0x2342e5[_0x5290('0x3f')](_0x5290('0x67')+_0x538466+_0x5290('0x68'));}var _0x152692=util[_0x5290('0x69')](_0x5290('0x6a'),_0x5c2b62,_0x538466,_0x43b6b7,_0x3ef366[_0x5290('0x20')],_0x3ef366[_0x5290('0x6b')]||null,NOW,NOW);if(_[_0x5290('0x6c')](_0x60143d[_0x5290('0x1e')])){_0x152692+=_0x5290('0x6d');}_0x2342e5[_0x5290('0x3f')](_0x152692);if(_0x3ef366[_0x5290('0x65')]&&_0x3ef366[_0x5290('0x65')][_0x5290('0x4f')]){_0x2342e5[_0x5290('0x3f')](insertCmContact(_0x3ef366['ListId'],_0x538466,_0x3ef366[_0x5290('0x65')],_0x60143d));_0x2342e5[_0x5290('0x3f')](_0x5290('0x6e')+_0x538466+';');}_0x2342e5[_0x5290('0x3f')](insertCmHopper(_0x3ef366[_0x5290('0x20')],_0x5290('0x6f'),_0x5290('0x70'),_0x5290('0x71'),_0x267d89));_0x2342e5[_0x5290('0x3f')](insertCmHopperBlack(_0x3ef366[_0x5290('0x20')],_0x5290('0x72'),'voice_queues','VoiceQueueId'));_0x2342e5[_0x5290('0x3f')](insertCmHopper(_0x3ef366[_0x5290('0x20')],_0x5290('0x73'),_0x5290('0x74'),_0x5290('0x75'),_0x267d89));_0x2342e5[_0x5290('0x3f')](insertCmHopperBlack(_0x3ef366[_0x5290('0x20')],'campaigns_has_cm_blacklists','campaigns',_0x5290('0x75')));BPromise['each'](_0x2342e5,handleQuery)[_0x5290('0x76')](function(_0x45ebd3){stats[_0x5290('0x77')]=!![];stats[_0x5290('0x78')]=_0x3ef366['duplicates']&&_0x3ef366['duplicates'][_0x5290('0x4f')]?results[0x2][_0x5290('0x78')]:results[0x0][_0x5290('0x78')];socket[_0x5290('0x61')]('contact:import:'+_0x3a1d46,stats);fs[_0x5290('0x79')](_0x51b435);fs[_0x5290('0x79')](_0x5c2b62);process['exit'](0x0);})['catch'](function(_0x281494){logger['error'](_0x281494[_0x5290('0x3d')]);process[_0x5290('0x7a')](0x1);});}catch(_0x58f3bb){logger[_0x5290('0x3c')](_0x5290('0x7b'),_0x58f3bb[_0x5290('0x3d')]);process[_0x5290('0x7a')](0x1);}},'error':function(_0x4f3fa7,_0x87fd35,_0x46d394,_0x2bf887){throw new Error(_0x2bf887);}});}function validate(){if(process[_0x5290('0x7c')]&&process[_0x5290('0x7c')][_0x5290('0x4f')]<0x4){throw new Error(_0x5290('0x7d'));}var _0x421119=path[_0x5290('0x10')](config[_0x5290('0x48')],'server/files/tmp',process[_0x5290('0x7c')][0x2]);if(!fs['existsSync'](_0x421119)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x1bf9ea={};try{_0x1bf9ea=JSON[_0x5290('0x4c')](process['argv'][0x3]);if(!_0x1bf9ea[_0x5290('0x7e')]){throw new Error(_0x5290('0x7f'));}if(!_0x1bf9ea[_0x5290('0x7e')]['phone']){throw new Error(_0x5290('0x80'));}if(!_0x1bf9ea[_0x5290('0x7e')][_0x5290('0x5d')]){throw new Error(_0x5290('0x81'));}var _0x2ec5c4=0x0;if(_0x1bf9ea[_0x5290('0x7e')]['UserId']){_0x2ec5c4=0x1;}if(!_0x1bf9ea['ListId']){throw new Error(_0x5290('0x82'));}}catch(_0x2426fd){throw new Error(_0x5290('0x83'));}var _0x3be5fd=[];try{_0x3be5fd=_[_0x5290('0x84')](JSON[_0x5290('0x4c')](process[_0x5290('0x7c')][0x4]),'id');}catch(_0x2d1902){logger['info']('No\x20agent\x20available');}main(_0x421119,_0x1bf9ea,_0x3be5fd,_0x2ec5c4);}validate();process['on'](_0x5290('0x85'),handleStop);process['on'](_0x5290('0x86'),handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9af3=['membername','answertime','endtime','duration','Billable\x20Time','billableseconds','toLowerCase','voice','push','variable','queue','outbound','string','Outbound\x20Call','getDescriptions','***\x20Call\x20Info\x20***','calleridnum','keyValue','Caller\x20Name','calleridname','Call\x20To','destexten','Queue','UniqueId','uniqueid','Date','agentcalledAt','***\x20Agent\x20Info\x20***','Agent\x20Name','Agent\x20Number','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt','agentcompleteAt','holdtime','Talk\x20Time','talktime','Called\x20Number','destcalleridnum','Member\x20Name'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x9af3,0xd3));var _0x39af=function(_0xe872a0,_0x1a9185){_0xe872a0=_0xe872a0-0x0;var _0xd18f7e=_0x9af3[_0xe872a0];return _0xd18f7e;};'use strict';exports['getSubjects']=function(_0xcc34a7,_0x58f6a0){var _0x293561=[{'type':'string','content':'[xCALLY\x20Ticket]','variableName':null}];switch(_0xcc34a7[_0x39af('0x0')]()){case _0x39af('0x1'):switch(_0x58f6a0[_0x39af('0x0')]()){case'inbound':_0x293561[_0x39af('0x2')]({'type':_0x39af('0x3'),'content':'','variableName':_0x39af('0x4')});_0x293561[_0x39af('0x2')]({'type':_0x39af('0x3'),'content':'','variableName':'calleridnum'});break;case _0x39af('0x5'):_0x293561[_0x39af('0x2')]({'type':_0x39af('0x6'),'content':_0x39af('0x7'),'variableName':null});_0x293561['push']({'type':_0x39af('0x3'),'content':'','variableName':'destcalleridnum'});break;}}return _0x293561;};exports[_0x39af('0x8')]=function(_0x1f89ea,_0x2d95cf){var _0x2ca950=[];switch(_0x1f89ea[_0x39af('0x0')]()){case _0x39af('0x1'):switch(_0x2d95cf[_0x39af('0x0')]()){case'inbound':_0x2ca950=[{'type':_0x39af('0x6'),'content':_0x39af('0x9'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':'Caller\x20Number','keyType':_0x39af('0x3'),'variableName':_0x39af('0xa')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0xc'),'keyType':'variable','variableName':_0x39af('0xd')},{'type':'keyValue','content':'','key':_0x39af('0xe'),'keyType':'variable','variableName':_0x39af('0xf')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x10'),'keyType':_0x39af('0x3'),'variableName':_0x39af('0x4')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x11'),'keyType':_0x39af('0x3'),'variableName':_0x39af('0x12')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x13'),'keyType':_0x39af('0x3'),'variableName':_0x39af('0x14')},{'type':_0x39af('0x6'),'content':_0x39af('0x15'),'key':null,'keyType':null,'variableName':null},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x16'),'keyType':_0x39af('0x3'),'variableName':'destcalleridname'},{'type':'keyValue','content':'','key':_0x39af('0x17'),'keyType':'variable','variableName':'destcalleridnum'},{'type':'string','content':_0x39af('0x18'),'key':null,'keyType':null,'variableName':null},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x19'),'keyType':'variable','variableName':_0x39af('0x14')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x1a'),'keyType':_0x39af('0x3'),'variableName':_0x39af('0x1b')},{'type':_0x39af('0xb'),'content':'','key':'Agent\x20Complete','keyType':_0x39af('0x3'),'variableName':_0x39af('0x1c')},{'type':_0x39af('0xb'),'content':'','key':'Hold\x20Time','keyType':_0x39af('0x3'),'variableName':_0x39af('0x1d')},{'type':'keyValue','content':'','key':_0x39af('0x1e'),'keyType':_0x39af('0x3'),'variableName':_0x39af('0x1f')}];break;case _0x39af('0x5'):_0x2ca950=[{'type':'string','content':_0x39af('0x9'),'variableName':null},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x20'),'keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x21')},{'type':'keyValue','content':'','key':_0x39af('0x22'),'keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x23')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x11'),'keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x12')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x13'),'keyType':_0x39af('0x3'),'keyContent':'','variableName':'starttime'},{'type':_0x39af('0x6'),'content':_0x39af('0x18')},{'type':_0x39af('0xb'),'content':'','key':'Answer\x20Time','keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x24')},{'type':_0x39af('0xb'),'content':'','key':'Complete\x20Time','keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x25')},{'type':_0x39af('0xb'),'content':'','key':'Duration','keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x26')},{'type':_0x39af('0xb'),'content':'','key':_0x39af('0x27'),'keyType':_0x39af('0x3'),'keyContent':'','variableName':_0x39af('0x28')}];break;}}return _0x2ca950;};
\ No newline at end of file
+var _0x6243=['answertime','Complete\x20Time','Duration','duration','Billable\x20Time','billableseconds','getSubjects','string','voice','variable','queue','push','outbound','destcalleridnum','getDescriptions','toLowerCase','inbound','***\x20Call\x20Info\x20***','keyValue','calleridnum','Caller\x20Name','calleridname','destexten','Queue','UniqueId','***\x20Agent\x20Info\x20***','Agent\x20Name','***\x20Time\x20Info\x20***','Agent\x20Ring','agentcalledAt','Agent\x20Connect','Agent\x20Complete','agentcompleteAt','Hold\x20Time','talktime','Called\x20Number','membername','uniqueid','Date','starttime','Answer\x20Time'];(function(_0x532ac3,_0x55e608){var _0x37bd3e=function(_0x59f198){while(--_0x59f198){_0x532ac3['push'](_0x532ac3['shift']());}};_0x37bd3e(++_0x55e608);}(_0x6243,0x1f2));var _0x3624=function(_0x3aff7a,_0x2a915a){_0x3aff7a=_0x3aff7a-0x0;var _0x43d0ff=_0x6243[_0x3aff7a];return _0x43d0ff;};'use strict';exports[_0x3624('0x0')]=function(_0x165178,_0x580565){var _0x436197=[{'type':_0x3624('0x1'),'content':'[xCALLY\x20Ticket]','variableName':null}];switch(_0x165178['toLowerCase']()){case _0x3624('0x2'):switch(_0x580565['toLowerCase']()){case'inbound':_0x436197['push']({'type':_0x3624('0x3'),'content':'','variableName':_0x3624('0x4')});_0x436197[_0x3624('0x5')]({'type':_0x3624('0x3'),'content':'','variableName':'calleridnum'});break;case _0x3624('0x6'):_0x436197[_0x3624('0x5')]({'type':_0x3624('0x1'),'content':'Outbound\x20Call','variableName':null});_0x436197[_0x3624('0x5')]({'type':_0x3624('0x3'),'content':'','variableName':_0x3624('0x7')});break;}}return _0x436197;};exports[_0x3624('0x8')]=function(_0x505c23,_0x711edd){var _0x130f5a=[];switch(_0x505c23[_0x3624('0x9')]()){case _0x3624('0x2'):switch(_0x711edd[_0x3624('0x9')]()){case _0x3624('0xa'):_0x130f5a=[{'type':_0x3624('0x1'),'content':_0x3624('0xb'),'key':null,'keyType':null,'variableName':null},{'type':_0x3624('0xc'),'content':'','key':'Caller\x20Number','keyType':_0x3624('0x3'),'variableName':_0x3624('0xd')},{'type':'keyValue','content':'','key':_0x3624('0xe'),'keyType':_0x3624('0x3'),'variableName':_0x3624('0xf')},{'type':_0x3624('0xc'),'content':'','key':'Call\x20To','keyType':_0x3624('0x3'),'variableName':_0x3624('0x10')},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x11'),'keyType':_0x3624('0x3'),'variableName':_0x3624('0x4')},{'type':'keyValue','content':'','key':_0x3624('0x12'),'keyType':_0x3624('0x3'),'variableName':'uniqueid'},{'type':_0x3624('0xc'),'content':'','key':'Date','keyType':'variable','variableName':'agentcalledAt'},{'type':'string','content':_0x3624('0x13'),'key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':_0x3624('0x14'),'keyType':'variable','variableName':'destcalleridname'},{'type':_0x3624('0xc'),'content':'','key':'Agent\x20Number','keyType':'variable','variableName':_0x3624('0x7')},{'type':'string','content':_0x3624('0x15'),'key':null,'keyType':null,'variableName':null},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x16'),'keyType':'variable','variableName':_0x3624('0x17')},{'type':'keyValue','content':'','key':_0x3624('0x18'),'keyType':_0x3624('0x3'),'variableName':'agentconnectAt'},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x19'),'keyType':'variable','variableName':_0x3624('0x1a')},{'type':'keyValue','content':'','key':_0x3624('0x1b'),'keyType':_0x3624('0x3'),'variableName':'holdtime'},{'type':_0x3624('0xc'),'content':'','key':'Talk\x20Time','keyType':_0x3624('0x3'),'variableName':_0x3624('0x1c')}];break;case _0x3624('0x6'):_0x130f5a=[{'type':_0x3624('0x1'),'content':_0x3624('0xb'),'variableName':null},{'type':'keyValue','content':'','key':_0x3624('0x1d'),'keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x7')},{'type':_0x3624('0xc'),'content':'','key':'Member\x20Name','keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x1e')},{'type':_0x3624('0xc'),'content':'','key':'UniqueId','keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x1f')},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x20'),'keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x21')},{'type':'string','content':_0x3624('0x15')},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x22'),'keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x23')},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x24'),'keyType':'variable','keyContent':'','variableName':'endtime'},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x25'),'keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x26')},{'type':_0x3624('0xc'),'content':'','key':_0x3624('0x27'),'keyType':_0x3624('0x3'),'keyContent':'','variableName':_0x3624('0x28')}];break;}}return _0x130f5a;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca8c=['mail-interactions','fax-interactions','chat-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','toLowerCase','name','role','stringify','null','then','info','catch','tracked','user','query','clone','body','omit','html','phone','fax','mobile','../../mysqldb','../../config/logger','openchannel-interactions'];(function(_0x328db6,_0x1b8952){var _0x24dea8=function(_0x151510){while(--_0x151510){_0x328db6['push'](_0x328db6['shift']());}};_0x24dea8(++_0x1b8952);}(_0xca8c,0xdd));var _0xcca8=function(_0x368986,_0x47a157){_0x368986=_0x368986-0x0;var _0x76d194=_0xca8c[_0x368986];return _0x76d194;};'use strict';var _=require('lodash');var db=require(_0xcca8('0x0'))['db'];var loggers={'openchannel':require(_0xcca8('0x1'))(_0xcca8('0x2')),'mail':require('../../config/logger')(_0xcca8('0x3')),'fax':require(_0xcca8('0x1'))(_0xcca8('0x4')),'sms':require('../../config/logger')('sms-interactions'),'chat':require('../../config/logger')(_0xcca8('0x5')),'whatsapp':require(_0xcca8('0x1'))(_0xcca8('0x6'))};function getInteractionId(_0x1fb702,_0x4d8a78,_0x4c1b49){if(_0x1fb702&&_0x1fb702[_[_0xcca8('0x7')](_0x4c1b49)+_0xcca8('0x8')]){return _0x1fb702[_[_0xcca8('0x7')](_0x4c1b49)+_0xcca8('0x8')];}else if(_0x1fb702&&_0x1fb702['id']){return _0x1fb702['id'];}else if(_0x4d8a78&&_0x4d8a78['id']){return _0x4d8a78['id'];}else{return _0xcca8('0x9');}}function log(_0x36124d,_0x48917f,_0x2699dd,_0xce28eb,_0x3ce574,_0x5affae){loggers[_0x3ce574[_0xcca8('0xa')]()][_0x36124d]('[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x5affae['toUpperCase'](),_0x48917f?_0x48917f['id']:null,_0x48917f?_0x48917f[_0xcca8('0xb')]:null,_0x48917f?_0x48917f[_0xcca8('0xc')]:null,getInteractionId(_0x2699dd,_0xce28eb,_0x3ce574),_0x2699dd?JSON[_0xcca8('0xd')](_0x2699dd):_0xcca8('0xe'));}function updateUser(_0x4f6e6e,_0x146a30,_0x2ca9c8,_0x1ef2b5,_0x38b52a){db[_[_0xcca8('0x7')](_0x1ef2b5)+'Interaction']['findOne']({'where':{'id':getInteractionId(_0x146a30,_0x2ca9c8,_0x1ef2b5)}})[_0xcca8('0xf')](function(_0x1cec0f){if(_0x1cec0f){return _0x1cec0f['update']({'UserId':_0x4f6e6e?_0x4f6e6e['id']:null});}})['then'](function(_0x47fe9e){if(_0x47fe9e){log(_0xcca8('0x10'),_0x4f6e6e,_0x146a30,_0x2ca9c8,_0x1ef2b5,_0x38b52a);}})[_0xcca8('0x11')](function(){log('error',_0x4f6e6e,_0x146a30,_0x2ca9c8,_0x1ef2b5,_0x38b52a);});}exports[_0xcca8('0x12')]=function(_0x449931,_0x5db18b){return function(_0x7b702c,_0xfa4098,_0x184f11){var _0x4a2973=_0x7b702c[_0xcca8('0x13')];var _0x5be894={};var _0x5272f3=_0x7b702c[_0xcca8('0x14')];if(_0x5be894){_0x5be894=_[_0xcca8('0x15')](_0x7b702c[_0xcca8('0x16')]);_0x5be894=_[_0xcca8('0x17')](_0x5be894,[_0xcca8('0x16'),_0xcca8('0x18'),_0xcca8('0x19'),_0xcca8('0x1a'),_0xcca8('0x1b')]);}updateUser(_0x4a2973,_0x5be894,_0x5272f3,_0x449931,_0x5db18b);_0x184f11(null);};};
\ No newline at end of file
+var _0x4ae4=['mobile','lodash','../../config/logger','mail-interactions','fax-interactions','sms-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','toLowerCase','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','name','role','stringify','Interaction','findOne','then','update','info','catch','error','user','query','clone','omit','html','phone','fax'];(function(_0x459b4f,_0x27d389){var _0x1538b3=function(_0x93f4af){while(--_0x93f4af){_0x459b4f['push'](_0x459b4f['shift']());}};_0x1538b3(++_0x27d389);}(_0x4ae4,0xaf));var _0x44ae=function(_0x3a60f1,_0xd1087b){_0x3a60f1=_0x3a60f1-0x0;var _0xb3c20b=_0x4ae4[_0x3a60f1];return _0xb3c20b;};'use strict';var _=require(_0x44ae('0x0'));var db=require('../../mysqldb')['db'];var loggers={'openchannel':require('../../config/logger')('openchannel-interactions'),'mail':require(_0x44ae('0x1'))(_0x44ae('0x2')),'fax':require(_0x44ae('0x1'))(_0x44ae('0x3')),'sms':require('../../config/logger')(_0x44ae('0x4')),'chat':require('../../config/logger')('chat-interactions'),'whatsapp':require('../../config/logger')(_0x44ae('0x5'))};function getInteractionId(_0x199c9d,_0x1b12ba,_0x2c9746){if(_0x199c9d&&_0x199c9d[_[_0x44ae('0x6')](_0x2c9746)+_0x44ae('0x7')]){return _0x199c9d[_[_0x44ae('0x6')](_0x2c9746)+'InteractionId'];}else if(_0x199c9d&&_0x199c9d['id']){return _0x199c9d['id'];}else if(_0x1b12ba&&_0x1b12ba['id']){return _0x1b12ba['id'];}else{return _0x44ae('0x8');}}function log(_0x2eb55a,_0x10e601,_0x319d49,_0x2f99db,_0x37f055,_0x5cb765){loggers[_0x37f055[_0x44ae('0x9')]()][_0x2eb55a](_0x44ae('0xa'),_0x5cb765['toUpperCase'](),_0x10e601?_0x10e601['id']:null,_0x10e601?_0x10e601[_0x44ae('0xb')]:null,_0x10e601?_0x10e601[_0x44ae('0xc')]:null,getInteractionId(_0x319d49,_0x2f99db,_0x37f055),_0x319d49?JSON[_0x44ae('0xd')](_0x319d49):'null');}function updateUser(_0x19cbfa,_0x4a0d07,_0x36e1e9,_0x1fe3d4,_0x976b59){db[_[_0x44ae('0x6')](_0x1fe3d4)+_0x44ae('0xe')][_0x44ae('0xf')]({'where':{'id':getInteractionId(_0x4a0d07,_0x36e1e9,_0x1fe3d4)}})[_0x44ae('0x10')](function(_0x489c1a){if(_0x489c1a){return _0x489c1a[_0x44ae('0x11')]({'UserId':_0x19cbfa?_0x19cbfa['id']:null});}})[_0x44ae('0x10')](function(_0x3465d1){if(_0x3465d1){log(_0x44ae('0x12'),_0x19cbfa,_0x4a0d07,_0x36e1e9,_0x1fe3d4,_0x976b59);}})[_0x44ae('0x13')](function(){log(_0x44ae('0x14'),_0x19cbfa,_0x4a0d07,_0x36e1e9,_0x1fe3d4,_0x976b59);});}exports['tracked']=function(_0x1f4a20,_0x1b7610){return function(_0x47b98,_0x2df961,_0x11345a){var _0x268992=_0x47b98[_0x44ae('0x15')];var _0x2b4265={};var _0x59f14b=_0x47b98[_0x44ae('0x16')];if(_0x2b4265){_0x2b4265=_[_0x44ae('0x17')](_0x47b98['body']);_0x2b4265=_[_0x44ae('0x18')](_0x2b4265,['body',_0x44ae('0x19'),_0x44ae('0x1a'),_0x44ae('0x1b'),_0x44ae('0x1c')]);}updateUser(_0x268992,_0x2b4265,_0x59f14b,_0x1f4a20,_0x1b7610);_0x11345a(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x576f=['User','admin','user','crypto','util','composable-middleware','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','update','base64','utf8','final','parse','hasOwnProperty','use','License','findOne','then','count','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users'];(function(_0x36c7ab,_0x10da84){var _0xa8b9ce=function(_0x272676){while(--_0x272676){_0x36c7ab['push'](_0x36c7ab['shift']());}};_0xa8b9ce(++_0x10da84);}(_0x576f,0x17c));var _0xf576=function(_0x37f7e2,_0xfa6eec){_0x37f7e2=_0x37f7e2-0x0;var _0x243a8b=_0x576f[_0x37f7e2];return _0x243a8b;};'use strict';var crypto=require(_0xf576('0x0'));var util=require(_0xf576('0x1'));var compose=require(_0xf576('0x2'));var db=require('../../mysqldb')['db'];var config=require(_0xf576('0x3'));function getValueFromLicense(_0x44c327,_0x530210){if(_0x44c327&&_0x530210){if(_0x530210[_0xf576('0x4')]&&_0x530210['license']){var _0x4d2f24=_0x530210[_0xf576('0x4')];var _0x95219b=_0x530210[_0xf576('0x5')];var _0x368576=_0x4d2f24['split']('-')[0x4];var _0x5cd4b9=_0x4d2f24[_0xf576('0x6')]('-')[0x0];var _0x2225b4=crypto[_0xf576('0x7')](_0xf576('0x8'),util[_0xf576('0x9')]('%s:%s:%s',_0x368576,_0x4d2f24,_0x5cd4b9));var _0x591fdd=_0x2225b4[_0xf576('0xa')](_0x95219b,_0xf576('0xb'),_0xf576('0xc'));_0x591fdd+=_0x2225b4[_0xf576('0xd')](_0xf576('0xc'));var _0x509e40=JSON[_0xf576('0xe')](_0x591fdd);return _0x509e40[_0xf576('0xf')](_0x44c327)?_0x509e40[_0x44c327]:null;}}return null;}function isLimit(_0x1e0bc4,_0x16a1b8,_0x4c9639,_0x399c69){var _0x4cca9=_0x16a1b8;return compose()[_0xf576('0x10')](function(_0x2daa65,_0x1c1b48,_0x2515b5){return db[_0xf576('0x11')][_0xf576('0x12')]({'where':{'id':0x1},'raw':!![]})[_0xf576('0x13')](function(_0x5a0607){var _0x513381=getValueFromLicense(_0x1e0bc4,_0x5a0607);return _0x513381?_0x513381:_0x4cca9;})[_0xf576('0x13')](function(_0x3c770c){_0x4cca9=_0x3c770c;return _0x4c9639[_0xf576('0x14')](_0x399c69);})[_0xf576('0x13')](function(_0x617276){if(_0x617276>=_0x4cca9){return _0x1c1b48[_0xf576('0x15')](0x193)[_0xf576('0x16')]({'message':util['format'](_0xf576('0x17'),_0x1e0bc4)});}_0x2515b5();})[_0xf576('0x18')](function(_0x300324){_0x2515b5(_0x300324);});});}function isUserLimit(){return isLimit(_0xf576('0x19'),0x1,db[_0xf576('0x1a')],{'where':{'$or':[{'role':_0xf576('0x1b')},{'role':_0xf576('0x1c')}]}});}exports['isUserLimit']=isUserLimit;
\ No newline at end of file
+var _0x85dd=['split','createDecipher','aes-256-ctr','format','%s:%s:%s','update','base64','utf8','final','parse','hasOwnProperty','use','License','findOne','then','status','json','Maximum\x20%s\x20limit\x20have\x20been\x20reached','users','User','admin','user','crypto','util','../../mysqldb','../../config/environment','data1','license'];(function(_0x359b1e,_0x8036ad){var _0x32923a=function(_0x3f2a14){while(--_0x3f2a14){_0x359b1e['push'](_0x359b1e['shift']());}};_0x32923a(++_0x8036ad);}(_0x85dd,0x1ba));var _0xd85d=function(_0x49ca18,_0x5e6d05){_0x49ca18=_0x49ca18-0x0;var _0x145d54=_0x85dd[_0x49ca18];return _0x145d54;};'use strict';var crypto=require(_0xd85d('0x0'));var util=require(_0xd85d('0x1'));var compose=require('composable-middleware');var db=require(_0xd85d('0x2'))['db'];var config=require(_0xd85d('0x3'));function getValueFromLicense(_0x239389,_0x36986f){if(_0x239389&&_0x36986f){if(_0x36986f[_0xd85d('0x4')]&&_0x36986f[_0xd85d('0x5')]){var _0x39d7c4=_0x36986f['data1'];var _0x1693ea=_0x36986f[_0xd85d('0x5')];var _0x1aa1ac=_0x39d7c4[_0xd85d('0x6')]('-')[0x4];var _0x520d49=_0x39d7c4[_0xd85d('0x6')]('-')[0x0];var _0x344dde=crypto[_0xd85d('0x7')](_0xd85d('0x8'),util[_0xd85d('0x9')](_0xd85d('0xa'),_0x1aa1ac,_0x39d7c4,_0x520d49));var _0x18ed0c=_0x344dde[_0xd85d('0xb')](_0x1693ea,_0xd85d('0xc'),_0xd85d('0xd'));_0x18ed0c+=_0x344dde[_0xd85d('0xe')](_0xd85d('0xd'));var _0x1b5bed=JSON[_0xd85d('0xf')](_0x18ed0c);return _0x1b5bed[_0xd85d('0x10')](_0x239389)?_0x1b5bed[_0x239389]:null;}}return null;}function isLimit(_0x5f453e,_0x216d46,_0x31e131,_0x1864fe){var _0x8dfe01=_0x216d46;return compose()[_0xd85d('0x11')](function(_0x2ee090,_0x3c2d83,_0x13b614){return db[_0xd85d('0x12')][_0xd85d('0x13')]({'where':{'id':0x1},'raw':!![]})[_0xd85d('0x14')](function(_0x59fa97){var _0x38c4c9=getValueFromLicense(_0x5f453e,_0x59fa97);return _0x38c4c9?_0x38c4c9:_0x8dfe01;})[_0xd85d('0x14')](function(_0x4f609f){_0x8dfe01=_0x4f609f;return _0x31e131['count'](_0x1864fe);})[_0xd85d('0x14')](function(_0x1980db){if(_0x1980db>=_0x8dfe01){return _0x3c2d83[_0xd85d('0x15')](0x193)[_0xd85d('0x16')]({'message':util['format'](_0xd85d('0x17'),_0x5f453e)});}_0x13b614();})['catch'](function(_0x5a919e){_0x13b614(_0x5a919e);});});}function isUserLimit(){return isLimit(_0xd85d('0x18'),0x1,db[_0xd85d('0x19')],{'where':{'$or':[{'role':_0xd85d('0x1a')},{'role':_0xd85d('0x1b')}]}});}exports['isUserLimit']=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xacd9=['push','buildExpression','DATE','operator','value','includes','$lte','days','YYYY-MM-DD','castTo','text','CAST(','field','\x20AS\x20','$ne','$notIn','\x20OR\x20','\x20IS\x20NULL)','$in','IN\x20?','NOT\x20IN\x20?','$eq','=\x20?','<>\x20?','$substring','$startsWith','LIKE\x20?','<\x20?','$gt','>\x20?','<=\x20?','>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','pop','utcOffset','add','minutes','format','lodash','moment','startsWith','[$or]','and','replace','split','forEach','shift','match','filter','indexOf','conditions'];(function(_0x3dadc8,_0x5726e4){var _0x3f37e7=function(_0x452403){while(--_0x452403){_0x3dadc8['push'](_0x3dadc8['shift']());}};_0x3f37e7(++_0x5726e4);}(_0xacd9,0xfc));var _0x9acd=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0xacd9[_0x139a3c];return _0x2b375b;};'use strict';var _=require(_0x9acd('0x0'));var moment=require(_0x9acd('0x1'));exports['parseSearch']=function(_0x3d715f){var _0x581e47={'conditions':[]};_0x581e47['sqlOperator']=_[_0x9acd('0x2')](_0x3d715f,_0x9acd('0x3'))?'or':_0x9acd('0x4');var _0x2120a8=_0x3d715f[_0x9acd('0x5')]('[$and]','')[_0x9acd('0x5')](_0x9acd('0x3'),'')[_0x9acd('0x6')]('||');for(var _0xc3aa50=0x0;_0xc3aa50<_0x2120a8['length'];_0xc3aa50++){var _0x3d2c52=_0x2120a8[_0xc3aa50][_0x9acd('0x6')](':=');var _0x449255=_0x3d2c52[0x0];var _0x5ed633=_0x3d2c52['slice'](0x1);_0x5ed633[_0x9acd('0x7')](function(_0x42ee8f){var _0x216ff5=_0x42ee8f['split']('[')[_0x9acd('0x8')]();var _0x336258=_0x42ee8f[_0x9acd('0x9')](/\[(.*?)\]/g);_0x336258['forEach'](function(_0x346265){var _0x25f46d=_0x346265[_0x9acd('0x6')]('[')[_0x9acd('0xa')](function(_0x3dd1ea){return _0x3dd1ea[_0x9acd('0xb')](']')>-0x1;})['map'](function(_0x59478b){return _0x59478b[_0x9acd('0x6')](']')[0x0];})[0x0];_0x581e47[_0x9acd('0xc')][_0x9acd('0xd')]({'field':_0x449255,'operator':_0x216ff5,'value':_0x25f46d});});});}return _0x581e47;};exports[_0x9acd('0xe')]=function(_0x33b1cf,_0x991ae4,_0x6909e4){var _0x376b20={};if(_0x991ae4===_0x9acd('0xf')){if(_0x6909e4['operator']==='$eq'){_0x6909e4[_0x9acd('0x10')]='$between';_0x6909e4['value']+=','+_0x6909e4[_0x9acd('0x11')];}else if(_[_0x9acd('0x12')](['$gt',_0x9acd('0x13')],_0x6909e4[_0x9acd('0x10')])){_0x6909e4[_0x9acd('0x11')]=moment(_0x6909e4['value'])['add'](0x1,_0x9acd('0x14'))['format'](_0x9acd('0x15'));}}if(_0x6909e4[_0x9acd('0x16')]){_0x991ae4=_0x6909e4[_0x9acd('0x16')];_0x376b20[_0x9acd('0x17')]=_0x9acd('0x18')+_0x33b1cf+'.'+_0x6909e4[_0x9acd('0x19')]+_0x9acd('0x1a')+_0x6909e4[_0x9acd('0x16')]+')\x20'+parseOperator(_0x6909e4['operator']);}else{_0x376b20[_0x9acd('0x17')]=_0x33b1cf+'.'+_0x6909e4[_0x9acd('0x19')]+'\x20'+parseOperator(_0x6909e4[_0x9acd('0x10')]);}if(_[_0x9acd('0x12')]([_0x9acd('0x1b'),_0x9acd('0x1c')],_0x6909e4[_0x9acd('0x10')]))_0x376b20[_0x9acd('0x17')]='('+_0x376b20[_0x9acd('0x17')]+_0x9acd('0x1d')+_0x33b1cf+'.'+_0x6909e4[_0x9acd('0x19')]+_0x9acd('0x1e');_0x376b20[_0x9acd('0x11')]=parseValue(_0x991ae4,_0x6909e4[_0x9acd('0x10')],_0x6909e4[_0x9acd('0x11')]);return _0x376b20;};function parseOperator(_0x72efdc){var _0x53a1f7;switch(_0x72efdc){case _0x9acd('0x1f'):_0x53a1f7=_0x9acd('0x20');break;case'$notIn':_0x53a1f7=_0x9acd('0x21');break;case _0x9acd('0x22'):_0x53a1f7=_0x9acd('0x23');break;case _0x9acd('0x1b'):_0x53a1f7=_0x9acd('0x24');break;case _0x9acd('0x25'):case _0x9acd('0x26'):case'$endsWith':_0x53a1f7=_0x9acd('0x27');break;case'$lt':_0x53a1f7=_0x9acd('0x28');break;case _0x9acd('0x29'):_0x53a1f7=_0x9acd('0x2a');break;case _0x9acd('0x13'):_0x53a1f7=_0x9acd('0x2b');break;case'$gte':_0x53a1f7=_0x9acd('0x2c');break;case _0x9acd('0x2d'):_0x53a1f7=_0x9acd('0x2e');break;}return _0x53a1f7;}function parseValue(_0x2fa1ba,_0x5c75f4,_0x413b9e){var _0xb9da44={'start':undefined,'end':undefined};switch(_0x5c75f4){case _0x9acd('0x1f'):case _0x9acd('0x1c'):_0xb9da44[_0x9acd('0x2f')]=_0x413b9e[_0x9acd('0x6')](',');break;case _0x9acd('0x25'):_0xb9da44[_0x9acd('0x2f')]='%'+_0x413b9e+'%';break;case _0x9acd('0x26'):_0xb9da44[_0x9acd('0x2f')]=_0x413b9e+'%';break;case'$endsWith':_0xb9da44[_0x9acd('0x2f')]='%'+_0x413b9e;break;case _0x9acd('0x2d'):var _0x5021ea=_0x413b9e[_0x9acd('0x6')](',');var _0x413b9e=_0x5021ea[_0x9acd('0x8')]();var _0x262519=_0x5021ea[_0x9acd('0x30')]();if(_0x2fa1ba===_0x9acd('0xf')){_0x413b9e=moment(_0x413b9e)[_0x9acd('0x31')](0x0,!![])['format']();_0x262519=moment(_0x262519)[_0x9acd('0x31')](0x0,!![])['add'](0x17,'hours')[_0x9acd('0x32')](0x3b,_0x9acd('0x33'))[_0x9acd('0x32')](0x3b,'seconds')[_0x9acd('0x34')]();}_0xb9da44={'start':_0x413b9e,'end':_0x262519};break;default:_0xb9da44[_0x9acd('0x2f')]=_0x413b9e;break;}return _0xb9da44;}
\ No newline at end of file
+var _0x5ea6=['$lt','<\x20?','>\x20?','$lte','<=\x20?','$gte','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','$between','utcOffset','format','hours','minutes','seconds','lodash','moment','sqlOperator','[$or]','and','[$and]','replace','split','length','shift','match','forEach','filter','indexOf','map','conditions','push','buildExpression','DATE','operator','$eq','value','$gt','add','days','YYYY-MM-DD','castTo','text','field','$ne','\x20OR\x20','\x20IS\x20NULL)','$in','IN\x20?','$notIn','NOT\x20IN\x20?','=\x20?','<>\x20?','$substring','$startsWith','$endsWith','LIKE\x20?'];(function(_0x3b31d1,_0x4e7c44){var _0x3d70ab=function(_0x5bca1a){while(--_0x5bca1a){_0x3b31d1['push'](_0x3b31d1['shift']());}};_0x3d70ab(++_0x4e7c44);}(_0x5ea6,0x19e));var _0x65ea=function(_0x4b418f,_0x3b6a96){_0x4b418f=_0x4b418f-0x0;var _0x2ed208=_0x5ea6[_0x4b418f];return _0x2ed208;};'use strict';var _=require(_0x65ea('0x0'));var moment=require(_0x65ea('0x1'));exports['parseSearch']=function(_0x4e6d21){var _0x37c198={'conditions':[]};_0x37c198[_0x65ea('0x2')]=_['startsWith'](_0x4e6d21,_0x65ea('0x3'))?'or':_0x65ea('0x4');var _0x5ec088=_0x4e6d21['replace'](_0x65ea('0x5'),'')[_0x65ea('0x6')](_0x65ea('0x3'),'')[_0x65ea('0x7')]('||');for(var _0x40e648=0x0;_0x40e648<_0x5ec088[_0x65ea('0x8')];_0x40e648++){var _0x5c3806=_0x5ec088[_0x40e648]['split'](':=');var _0x33e8f4=_0x5c3806[0x0];var _0x5b39ba=_0x5c3806['slice'](0x1);_0x5b39ba['forEach'](function(_0x256f28){var _0x2e219c=_0x256f28[_0x65ea('0x7')]('[')[_0x65ea('0x9')]();var _0x37f2fa=_0x256f28[_0x65ea('0xa')](/\[(.*?)\]/g);_0x37f2fa[_0x65ea('0xb')](function(_0x5b3880){var _0x3a237b=_0x5b3880['split']('[')[_0x65ea('0xc')](function(_0x32cba6){return _0x32cba6[_0x65ea('0xd')](']')>-0x1;})[_0x65ea('0xe')](function(_0x5294f1){return _0x5294f1[_0x65ea('0x7')](']')[0x0];})[0x0];_0x37c198[_0x65ea('0xf')][_0x65ea('0x10')]({'field':_0x33e8f4,'operator':_0x2e219c,'value':_0x3a237b});});});}return _0x37c198;};exports[_0x65ea('0x11')]=function(_0x3b0afe,_0x514c31,_0xfc76f4){var _0x17b5ad={};if(_0x514c31===_0x65ea('0x12')){if(_0xfc76f4[_0x65ea('0x13')]===_0x65ea('0x14')){_0xfc76f4['operator']='$between';_0xfc76f4[_0x65ea('0x15')]+=','+_0xfc76f4['value'];}else if(_['includes']([_0x65ea('0x16'),'$lte'],_0xfc76f4[_0x65ea('0x13')])){_0xfc76f4[_0x65ea('0x15')]=moment(_0xfc76f4[_0x65ea('0x15')])[_0x65ea('0x17')](0x1,_0x65ea('0x18'))['format'](_0x65ea('0x19'));}}if(_0xfc76f4[_0x65ea('0x1a')]){_0x514c31=_0xfc76f4[_0x65ea('0x1a')];_0x17b5ad[_0x65ea('0x1b')]='CAST('+_0x3b0afe+'.'+_0xfc76f4[_0x65ea('0x1c')]+'\x20AS\x20'+_0xfc76f4['castTo']+')\x20'+parseOperator(_0xfc76f4[_0x65ea('0x13')]);}else{_0x17b5ad[_0x65ea('0x1b')]=_0x3b0afe+'.'+_0xfc76f4[_0x65ea('0x1c')]+'\x20'+parseOperator(_0xfc76f4[_0x65ea('0x13')]);}if(_['includes']([_0x65ea('0x1d'),'$notIn'],_0xfc76f4[_0x65ea('0x13')]))_0x17b5ad['text']='('+_0x17b5ad[_0x65ea('0x1b')]+_0x65ea('0x1e')+_0x3b0afe+'.'+_0xfc76f4[_0x65ea('0x1c')]+_0x65ea('0x1f');_0x17b5ad[_0x65ea('0x15')]=parseValue(_0x514c31,_0xfc76f4['operator'],_0xfc76f4['value']);return _0x17b5ad;};function parseOperator(_0x5f1b71){var _0x54dfc3;switch(_0x5f1b71){case _0x65ea('0x20'):_0x54dfc3=_0x65ea('0x21');break;case _0x65ea('0x22'):_0x54dfc3=_0x65ea('0x23');break;case'$eq':_0x54dfc3=_0x65ea('0x24');break;case'$ne':_0x54dfc3=_0x65ea('0x25');break;case _0x65ea('0x26'):case _0x65ea('0x27'):case _0x65ea('0x28'):_0x54dfc3=_0x65ea('0x29');break;case _0x65ea('0x2a'):_0x54dfc3=_0x65ea('0x2b');break;case'$gt':_0x54dfc3=_0x65ea('0x2c');break;case _0x65ea('0x2d'):_0x54dfc3=_0x65ea('0x2e');break;case _0x65ea('0x2f'):_0x54dfc3=_0x65ea('0x30');break;case'$between':_0x54dfc3=_0x65ea('0x31');break;}return _0x54dfc3;}function parseValue(_0x2f39ec,_0x520716,_0x51f3f8){var _0x3805ca={'start':undefined,'end':undefined};switch(_0x520716){case _0x65ea('0x20'):case _0x65ea('0x22'):_0x3805ca[_0x65ea('0x32')]=_0x51f3f8[_0x65ea('0x7')](',');break;case _0x65ea('0x26'):_0x3805ca[_0x65ea('0x32')]='%'+_0x51f3f8+'%';break;case'$startsWith':_0x3805ca[_0x65ea('0x32')]=_0x51f3f8+'%';break;case _0x65ea('0x28'):_0x3805ca[_0x65ea('0x32')]='%'+_0x51f3f8;break;case _0x65ea('0x33'):var _0x3e7a99=_0x51f3f8[_0x65ea('0x7')](',');var _0x51f3f8=_0x3e7a99['shift']();var _0x2b205c=_0x3e7a99['pop']();if(_0x2f39ec==='DATE'){_0x51f3f8=moment(_0x51f3f8)[_0x65ea('0x34')](0x0,!![])[_0x65ea('0x35')]();_0x2b205c=moment(_0x2b205c)[_0x65ea('0x34')](0x0,!![])['add'](0x17,_0x65ea('0x36'))[_0x65ea('0x17')](0x3b,_0x65ea('0x37'))[_0x65ea('0x17')](0x3b,_0x65ea('0x38'))['format']();}_0x3805ca={'start':_0x51f3f8,'end':_0x2b205c};break;default:_0x3805ca[_0x65ea('0x32')]=_0x51f3f8;break;}return _0x3805ca;}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccc0=['intersection','attributes','nolimit','offset','order','where','filters','pick','filter','merge','options','lodash','moment','parse','keys','includes','fields','isEmpty','forOwn','find','type','DATE','$gte','utc','format','$lte','YYYY-MM-DD','subtract','uniqueid','isArray','limit','sort','split','map','indexOf','cast','col','priority','substr','DESC','unsigned','ASC','omit','length','isObject','hasOwnProperty','isNumeric','^[+]?[0-9]*$','isEmail','match','getFullTextValue','forEach','replace','getOptions','query','$id','model','name'];(function(_0x52f777,_0x298744){var _0x304352=function(_0x476e25){while(--_0x476e25){_0x52f777['push'](_0x52f777['shift']());}};_0x304352(++_0x298744);}(_0xccc0,0x7f));var _0x0ccc=function(_0x321985,_0x1dcc9b){_0x321985=_0x321985-0x0;var _0x3c9349=_0xccc0[_0x321985];return _0x3c9349;};'use strict';var _=require(_0x0ccc('0x0'));var sequelize=require('sequelize');var moment=require(_0x0ccc('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x25775a){var _0x5796cf=['ne'];try{var _0x533ebc=JSON[_0x0ccc('0x2')](_0x25775a);var _0xc1151a=Object[_0x0ccc('0x3')](_0x533ebc)[0x0];return _0x5796cf[_0x0ccc('0x4')](_0xc1151a);}catch(_0x196e8e){return![];}}function getOperatorValue(_0x333c2f){var _0x220348=JSON[_0x0ccc('0x2')](_0x333c2f);var _0x448ba8=Object[_0x0ccc('0x3')](_0x220348)[0x0];var _0x4978e4=_0x220348[_0x448ba8];return{['$'+_0x448ba8]:_0x4978e4};}exports[_0x0ccc('0x5')]=function(_0x17fec5){var _0x98e87f=null;if(_0x17fec5){_0x98e87f=_0x17fec5['split'](',');}return _0x98e87f;};exports['filters']=function(_0x49f4fa,_0x156574){var _0x3de92e={};if(!_[_0x0ccc('0x6')](_0x49f4fa)){_[_0x0ccc('0x7')](_0x49f4fa,function(_0x5db88f,_0x19daab){try{if(_0x156574){var _0x243446=_[_0x0ccc('0x8')](_0x156574,{'name':_0x19daab})||{};if(hasSequelizeOperator(_0x5db88f)){_0x3de92e[_0x19daab]=getOperatorValue(_0x5db88f);}else if(_0x243446[_0x0ccc('0x9')]===_0x0ccc('0xa')&&_['isPlainObject'](_0x5db88f)){var _0x16ae42=JSON[_0x0ccc('0x2')](_0x5db88f);var _0x25bc88={'$gte':moment(moment(_0x16ae42[_0x0ccc('0xb')])['format']('YYYY-MM-DD'))[_0x0ccc('0xc')]()[_0x0ccc('0xd')](),'$lte':moment(moment(_0x16ae42[_0x0ccc('0xe')])[_0x0ccc('0xd')](_0x0ccc('0xf')))[_0x0ccc('0xc')]()[_0x0ccc('0x10')](0x1,'s')[_0x0ccc('0xd')]()};_0x3de92e[_0x19daab]=_0x25bc88;}else if(_0x243446['name']===_0x0ccc('0x11')){_0x3de92e[_0x19daab]=_0x5db88f;}else{_0x3de92e[_0x19daab]=_[_0x0ccc('0x12')](_0x5db88f)?_0x5db88f:JSON[_0x0ccc('0x2')](_0x5db88f);}}else{_0x3de92e[_0x19daab]=_[_0x0ccc('0x12')](_0x5db88f)?_0x5db88f:JSON['parse'](_0x5db88f);}}catch(_0x54cc32){_0x3de92e[_0x19daab]=_0x5db88f['split'](',');}});}return _0x3de92e;};exports[_0x0ccc('0x13')]=function(_0x4ed165){_0x4ed165=parseInt(_0x4ed165,0xa);if(!_0x4ed165||_0x4ed165<0x0){_0x4ed165=LIMIT_VALUE;}return _0x4ed165;};exports['offset']=function(_0x1a2180){_0x1a2180=parseInt(_0x1a2180,0xa);if(!_0x1a2180||_0x1a2180<0x0){_0x1a2180=0x0;}return _0x1a2180;};exports[_0x0ccc('0x14')]=function(_0x126a7f){var _0x1ce790,_0xd9aed8=null;if(_0x126a7f){_0x1ce790=_0x126a7f[_0x0ccc('0x15')](',');_0xd9aed8=_[_0x0ccc('0x16')](_0x1ce790,function(_0x52a884){if(_0x52a884[_0x0ccc('0x17')]('-')===0x0){return[_0x52a884==='priority'?sequelize[_0x0ccc('0x18')](sequelize[_0x0ccc('0x19')](_0x0ccc('0x1a')),'unsigned'):_0x52a884[_0x0ccc('0x1b')](0x1),_0x0ccc('0x1c')];}else{return[_0x52a884===_0x0ccc('0x1a')?sequelize['cast'](sequelize[_0x0ccc('0x19')](_0x0ccc('0x1a')),_0x0ccc('0x1d')):_0x52a884,_0x0ccc('0x1e')];}});}return _0xd9aed8;};exports[_0x0ccc('0x1f')]=function(_0x4c4c81,_0x3db867){if(_[_0x0ccc('0x6')](_0x4c4c81)){return _0x4c4c81;}if(_['isArray'](_0x4c4c81)){for(var _0x40ae0e=0x0;_0x40ae0e<_0x4c4c81[_0x0ccc('0x20')];_0x40ae0e+=0x1){_0x4c4c81[_0x40ae0e]=this[_0x0ccc('0x1f')](_0x4c4c81[_0x40ae0e],_0x3db867);}return _0x4c4c81;}if(!_[_0x0ccc('0x21')](_0x4c4c81)){return _0x4c4c81;}if(_['isString'](_0x3db867)){_0x3db867=[_0x3db867];}if(!_[_0x0ccc('0x12')](_0x3db867)){return _0x4c4c81;}for(var _0x2b86c2=0x0;_0x2b86c2<_0x3db867[_0x0ccc('0x20')];_0x2b86c2+=0x1){_['unset'](_0x4c4c81,_0x3db867[_0x2b86c2]);}for(var _0xba5a67 in _0x4c4c81){if(_0x4c4c81[_0x0ccc('0x22')](_0xba5a67)){_0x4c4c81[_0xba5a67]=this[_0x0ccc('0x1f')](_0x4c4c81[_0xba5a67],_0x3db867);}}return _0x4c4c81;};exports[_0x0ccc('0x23')]=function(_0x409797){return _0x409797['match'](RegExp(_0x0ccc('0x24')))?!![]:![];};exports[_0x0ccc('0x25')]=function(_0xadf88f){return _0xadf88f[_0x0ccc('0x26')](/^\S+@\S+$/)?!![]:![];};exports[_0x0ccc('0x27')]=function(_0x126a7c){var _0x1403a9=[];_0x126a7c[_0x0ccc('0x15')](/[ ,]+/)[_0x0ccc('0x28')](function(_0x1aef8a){_0x1aef8a=_0x1aef8a[_0x0ccc('0x29')](/([^:]")"+/g,'$1');_0x1aef8a='+'+_0x1aef8a+'*';if(_0x1aef8a['includes']('@'))_0x1aef8a='\x22'+_0x1aef8a+'\x22';_0x1403a9['push'](_0x1aef8a);});return _0x1403a9['join']('\x20');};exports[_0x0ccc('0x2a')]=function(_0x4582e5,_0x35b34e,_0x4c548a){var _0x1a7995={},_0x250030={};if(_0x35b34e['query']['$id']){_0x35b34e['query']['id']=_0x35b34e[_0x0ccc('0x2b')][_0x0ccc('0x2c')];delete _0x35b34e[_0x0ccc('0x2b')][_0x0ccc('0x2c')];}_0x1a7995[_0x0ccc('0x2d')]=_[_0x0ccc('0x16')](_0x4582e5,_0x0ccc('0x2e'));_0x1a7995['query']=_[_0x0ccc('0x3')](_0x35b34e['query']);_0x1a7995['filters']=_[_0x0ccc('0x2f')](_0x1a7995[_0x0ccc('0x2d')],_0x1a7995[_0x0ccc('0x2b')]);_0x250030[_0x0ccc('0x30')]=_[_0x0ccc('0x2f')](_0x1a7995[_0x0ccc('0x2d')],this['fields'](_0x35b34e[_0x0ccc('0x2b')][_0x0ccc('0x5')]));_0x250030[_0x0ccc('0x30')]=_0x250030[_0x0ccc('0x30')][_0x0ccc('0x20')]?_0x250030[_0x0ccc('0x30')]:_0x1a7995[_0x0ccc('0x2d')];if(!_0x35b34e[_0x0ccc('0x2b')][_0x0ccc('0x22')](_0x0ccc('0x31'))){_0x250030[_0x0ccc('0x13')]=this[_0x0ccc('0x13')](_0x35b34e[_0x0ccc('0x2b')]['limit']);_0x250030[_0x0ccc('0x32')]=this[_0x0ccc('0x32')](_0x35b34e['query'][_0x0ccc('0x32')]);}_0x250030[_0x0ccc('0x33')]=this['sort'](_0x35b34e[_0x0ccc('0x2b')][_0x0ccc('0x14')]);_0x250030[_0x0ccc('0x34')]=this[_0x0ccc('0x35')](_[_0x0ccc('0x36')](_0x35b34e[_0x0ccc('0x2b')],_0x1a7995[_0x0ccc('0x35')]),_0x4582e5);if(_0x35b34e[_0x0ccc('0x2b')]['filter']){_0x250030[_0x0ccc('0x34')]=_['merge'](_0x250030[_0x0ccc('0x34')],{'$or':_[_0x0ccc('0x16')](_0x4582e5,function(_0x27bbba){if(_0x27bbba[_0x0ccc('0x9')]!=='VIRTUAL'){if(_0x4c548a){return sequelize['where'](sequelize['fn']('lower',sequelize['col'](_0x27bbba[_0x0ccc('0x2e')])),{'$like':sequelize['fn']('lower','%'+_0x35b34e[_0x0ccc('0x2b')][_0x0ccc('0x37')]+'%')});}else{var _0x95bfb3={};_0x95bfb3[_0x27bbba[_0x0ccc('0x2e')]]={'$like':'%'+_0x35b34e['query']['filter']+'%'};return _0x95bfb3;}}})});}_0x250030=_[_0x0ccc('0x38')]({},_0x250030,_0x35b34e[_0x0ccc('0x39')]);return _0x250030;};
\ No newline at end of file
+var _0xf0c8=['format','$lte','name','isArray','split','sort','map','indexOf','col','substr','DESC','priority','unsigned','ASC','length','omit','isObject','isString','unset','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','replace','push','getOptions','query','$id','filters','model','attributes','fields','hasOwnProperty','nolimit','limit','offset','order','where','pick','filter','merge','type','VIRTUAL','lower','lodash','sequelize','moment','keys','includes','parse','isEmpty','forOwn','DATE','isPlainObject','$gte','YYYY-MM-DD','utc'];(function(_0x14363e,_0x4f0e0d){var _0x17c56d=function(_0x1c7bac){while(--_0x1c7bac){_0x14363e['push'](_0x14363e['shift']());}};_0x17c56d(++_0x4f0e0d);}(_0xf0c8,0xa1));var _0x8f0c=function(_0x251e8c,_0x277c33){_0x251e8c=_0x251e8c-0x0;var _0x1e0c1d=_0xf0c8[_0x251e8c];return _0x1e0c1d;};'use strict';var _=require(_0x8f0c('0x0'));var sequelize=require(_0x8f0c('0x1'));var moment=require(_0x8f0c('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x39c420){var _0x46adde=['ne'];try{var _0x136a0a=JSON['parse'](_0x39c420);var _0x84c84f=Object[_0x8f0c('0x3')](_0x136a0a)[0x0];return _0x46adde[_0x8f0c('0x4')](_0x84c84f);}catch(_0x541f39){return![];}}function getOperatorValue(_0x5cac97){var _0x127942=JSON[_0x8f0c('0x5')](_0x5cac97);var _0x114916=Object[_0x8f0c('0x3')](_0x127942)[0x0];var _0x245b07=_0x127942[_0x114916];return{['$'+_0x114916]:_0x245b07};}exports['fields']=function(_0x575ff0){var _0x4a3ee1=null;if(_0x575ff0){_0x4a3ee1=_0x575ff0['split'](',');}return _0x4a3ee1;};exports['filters']=function(_0x4145a7,_0xe8e921){var _0x3b4d82={};if(!_[_0x8f0c('0x6')](_0x4145a7)){_[_0x8f0c('0x7')](_0x4145a7,function(_0x1bfc05,_0x57596b){try{if(_0xe8e921){var _0x416628=_['find'](_0xe8e921,{'name':_0x57596b})||{};if(hasSequelizeOperator(_0x1bfc05)){_0x3b4d82[_0x57596b]=getOperatorValue(_0x1bfc05);}else if(_0x416628['type']===_0x8f0c('0x8')&&_[_0x8f0c('0x9')](_0x1bfc05)){var _0x1958fd=JSON[_0x8f0c('0x5')](_0x1bfc05);var _0x367631={'$gte':moment(moment(_0x1958fd[_0x8f0c('0xa')])['format'](_0x8f0c('0xb')))[_0x8f0c('0xc')]()[_0x8f0c('0xd')](),'$lte':moment(moment(_0x1958fd[_0x8f0c('0xe')])[_0x8f0c('0xd')](_0x8f0c('0xb')))[_0x8f0c('0xc')]()['subtract'](0x1,'s')[_0x8f0c('0xd')]()};_0x3b4d82[_0x57596b]=_0x367631;}else if(_0x416628[_0x8f0c('0xf')]==='uniqueid'){_0x3b4d82[_0x57596b]=_0x1bfc05;}else{_0x3b4d82[_0x57596b]=_[_0x8f0c('0x10')](_0x1bfc05)?_0x1bfc05:JSON[_0x8f0c('0x5')](_0x1bfc05);}}else{_0x3b4d82[_0x57596b]=_[_0x8f0c('0x10')](_0x1bfc05)?_0x1bfc05:JSON[_0x8f0c('0x5')](_0x1bfc05);}}catch(_0x5cf3b2){_0x3b4d82[_0x57596b]=_0x1bfc05[_0x8f0c('0x11')](',');}});}return _0x3b4d82;};exports['limit']=function(_0xd2635c){_0xd2635c=parseInt(_0xd2635c,0xa);if(!_0xd2635c||_0xd2635c<0x0){_0xd2635c=LIMIT_VALUE;}return _0xd2635c;};exports['offset']=function(_0x2a50bc){_0x2a50bc=parseInt(_0x2a50bc,0xa);if(!_0x2a50bc||_0x2a50bc<0x0){_0x2a50bc=0x0;}return _0x2a50bc;};exports[_0x8f0c('0x12')]=function(_0x5d128c){var _0x4f1c7a,_0x48d1fc=null;if(_0x5d128c){_0x4f1c7a=_0x5d128c[_0x8f0c('0x11')](',');_0x48d1fc=_[_0x8f0c('0x13')](_0x4f1c7a,function(_0x186038){if(_0x186038[_0x8f0c('0x14')]('-')===0x0){return[_0x186038==='priority'?sequelize['cast'](sequelize[_0x8f0c('0x15')]('priority'),'unsigned'):_0x186038[_0x8f0c('0x16')](0x1),_0x8f0c('0x17')];}else{return[_0x186038===_0x8f0c('0x18')?sequelize['cast'](sequelize[_0x8f0c('0x15')]('priority'),_0x8f0c('0x19')):_0x186038,_0x8f0c('0x1a')];}});}return _0x48d1fc;};exports['omit']=function(_0xdb6f93,_0x1f0f35){if(_[_0x8f0c('0x6')](_0xdb6f93)){return _0xdb6f93;}if(_['isArray'](_0xdb6f93)){for(var _0x306c1f=0x0;_0x306c1f<_0xdb6f93[_0x8f0c('0x1b')];_0x306c1f+=0x1){_0xdb6f93[_0x306c1f]=this[_0x8f0c('0x1c')](_0xdb6f93[_0x306c1f],_0x1f0f35);}return _0xdb6f93;}if(!_[_0x8f0c('0x1d')](_0xdb6f93)){return _0xdb6f93;}if(_[_0x8f0c('0x1e')](_0x1f0f35)){_0x1f0f35=[_0x1f0f35];}if(!_[_0x8f0c('0x10')](_0x1f0f35)){return _0xdb6f93;}for(var _0x39b13b=0x0;_0x39b13b<_0x1f0f35[_0x8f0c('0x1b')];_0x39b13b+=0x1){_[_0x8f0c('0x1f')](_0xdb6f93,_0x1f0f35[_0x39b13b]);}for(var _0x300966 in _0xdb6f93){if(_0xdb6f93['hasOwnProperty'](_0x300966)){_0xdb6f93[_0x300966]=this[_0x8f0c('0x1c')](_0xdb6f93[_0x300966],_0x1f0f35);}}return _0xdb6f93;};exports[_0x8f0c('0x20')]=function(_0x55d8db){return _0x55d8db[_0x8f0c('0x21')](RegExp(_0x8f0c('0x22')))?!![]:![];};exports[_0x8f0c('0x23')]=function(_0x1dde92){return _0x1dde92[_0x8f0c('0x21')](/^\S+@\S+$/)?!![]:![];};exports[_0x8f0c('0x24')]=function(_0x53d0ab){var _0x1c4dcb=[];_0x53d0ab[_0x8f0c('0x11')](/[ ,]+/)['forEach'](function(_0x3a7f5f){_0x3a7f5f=_0x3a7f5f[_0x8f0c('0x25')](/([^:]")"+/g,'$1');_0x3a7f5f='+'+_0x3a7f5f+'*';if(_0x3a7f5f[_0x8f0c('0x4')]('@'))_0x3a7f5f='\x22'+_0x3a7f5f+'\x22';_0x1c4dcb[_0x8f0c('0x26')](_0x3a7f5f);});return _0x1c4dcb['join']('\x20');};exports[_0x8f0c('0x27')]=function(_0x1c5c0c,_0x2f416c,_0x26b193){var _0xf3db3f={},_0x2fe904={};if(_0x2f416c[_0x8f0c('0x28')]['$id']){_0x2f416c[_0x8f0c('0x28')]['id']=_0x2f416c[_0x8f0c('0x28')][_0x8f0c('0x29')];delete _0x2f416c[_0x8f0c('0x28')]['$id'];}_0xf3db3f['model']=_[_0x8f0c('0x13')](_0x1c5c0c,_0x8f0c('0xf'));_0xf3db3f[_0x8f0c('0x28')]=_['keys'](_0x2f416c[_0x8f0c('0x28')]);_0xf3db3f[_0x8f0c('0x2a')]=_['intersection'](_0xf3db3f[_0x8f0c('0x2b')],_0xf3db3f[_0x8f0c('0x28')]);_0x2fe904[_0x8f0c('0x2c')]=_['intersection'](_0xf3db3f[_0x8f0c('0x2b')],this[_0x8f0c('0x2d')](_0x2f416c[_0x8f0c('0x28')][_0x8f0c('0x2d')]));_0x2fe904[_0x8f0c('0x2c')]=_0x2fe904[_0x8f0c('0x2c')]['length']?_0x2fe904[_0x8f0c('0x2c')]:_0xf3db3f[_0x8f0c('0x2b')];if(!_0x2f416c['query'][_0x8f0c('0x2e')](_0x8f0c('0x2f'))){_0x2fe904[_0x8f0c('0x30')]=this[_0x8f0c('0x30')](_0x2f416c[_0x8f0c('0x28')]['limit']);_0x2fe904['offset']=this[_0x8f0c('0x31')](_0x2f416c[_0x8f0c('0x28')][_0x8f0c('0x31')]);}_0x2fe904[_0x8f0c('0x32')]=this[_0x8f0c('0x12')](_0x2f416c[_0x8f0c('0x28')][_0x8f0c('0x12')]);_0x2fe904[_0x8f0c('0x33')]=this[_0x8f0c('0x2a')](_[_0x8f0c('0x34')](_0x2f416c['query'],_0xf3db3f[_0x8f0c('0x2a')]),_0x1c5c0c);if(_0x2f416c['query'][_0x8f0c('0x35')]){_0x2fe904[_0x8f0c('0x33')]=_[_0x8f0c('0x36')](_0x2fe904[_0x8f0c('0x33')],{'$or':_[_0x8f0c('0x13')](_0x1c5c0c,function(_0x5dca74){if(_0x5dca74[_0x8f0c('0x37')]!==_0x8f0c('0x38')){if(_0x26b193){return sequelize[_0x8f0c('0x33')](sequelize['fn']('lower',sequelize['col'](_0x5dca74[_0x8f0c('0xf')])),{'$like':sequelize['fn'](_0x8f0c('0x39'),'%'+_0x2f416c[_0x8f0c('0x28')][_0x8f0c('0x35')]+'%')});}else{var _0x3e9d56={};_0x3e9d56[_0x5dca74[_0x8f0c('0xf')]]={'$like':'%'+_0x2f416c[_0x8f0c('0x28')][_0x8f0c('0x35')]+'%'};return _0x3e9d56;}}})});}_0x2fe904=_[_0x8f0c('0x36')]({},_0x2fe904,_0x2f416c['options']);return _0x2fe904;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a9c=['use','json\x20replacer','toISOString','split','static','views','engine','html','ejs','renderFile','50mb','json','initialize','serve-favicon','body-parser','method-override','cookie-parser','path','passport','moment','./environment','../mysqldb','default','get','env','production','set','join','root','public','development','appPath','client'];(function(_0x10bda0,_0x344610){var _0x5825fe=function(_0x303978){while(--_0x303978){_0x10bda0['push'](_0x10bda0['shift']());}};_0x5825fe(++_0x344610);}(_0x1a9c,0x1db));var _0xc1a9=function(_0x3a5af1,_0xe55183){_0x3a5af1=_0x3a5af1-0x0;var _0x3ae7a7=_0x1a9c[_0x3a5af1];return _0x3ae7a7;};'use strict';var express=require('express');var favicon=require(_0xc1a9('0x0'));var bodyParser=require(_0xc1a9('0x1'));var methodOverride=require(_0xc1a9('0x2'));var cookieParser=require(_0xc1a9('0x3'));var errorHandler=require('errorhandler');var path=require(_0xc1a9('0x4'));var passport=require(_0xc1a9('0x5'));var cors=require('cors');var moment=require(_0xc1a9('0x6'));var config=require(_0xc1a9('0x7'));var db=require(_0xc1a9('0x8'))['db'];exports[_0xc1a9('0x9')]=function(_0x131310){var _0x225fa8=_0x131310[_0xc1a9('0xa')](_0xc1a9('0xb'));if(_0x225fa8===_0xc1a9('0xc')){_0x131310[_0xc1a9('0xd')]('appPath',path[_0xc1a9('0xe')](config[_0xc1a9('0xf')],_0xc1a9('0x10')));}if(_0x225fa8===_0xc1a9('0x11')||_0x225fa8==='test'){_0x131310[_0xc1a9('0xd')](_0xc1a9('0x12'),path[_0xc1a9('0xe')](config[_0xc1a9('0xf')],_0xc1a9('0x13')));_0x131310[_0xc1a9('0x14')](errorHandler());}_0x131310[_0xc1a9('0xd')](_0xc1a9('0x15'),function(_0x2885a0,_0x5ac59d){if(this[_0x2885a0]instanceof Date){_0x5ac59d=this[_0x2885a0][_0xc1a9('0x16')]()[_0xc1a9('0x17')]('.')[0x0]+'Z';}return _0x5ac59d;});_0x131310['use'](express[_0xc1a9('0x18')](_0x131310['get'](_0xc1a9('0x12'))));_0x131310[_0xc1a9('0xd')](_0xc1a9('0x19'),config[_0xc1a9('0xf')]+'/server/views');_0x131310[_0xc1a9('0x1a')](_0xc1a9('0x1b'),require(_0xc1a9('0x1c'))[_0xc1a9('0x1d')]);_0x131310[_0xc1a9('0xd')]('view\x20engine','html');_0x131310[_0xc1a9('0x14')](bodyParser['urlencoded']({'limit':_0xc1a9('0x1e'),'extended':!![]}));_0x131310[_0xc1a9('0x14')](bodyParser[_0xc1a9('0x1f')]({'limit':'50mb'}));_0x131310[_0xc1a9('0x14')](cors());_0x131310[_0xc1a9('0x14')](methodOverride());_0x131310[_0xc1a9('0x14')](cookieParser());_0x131310[_0xc1a9('0x14')](passport[_0xc1a9('0x20')]());};
\ No newline at end of file
+var _0xe2a5=['serve-favicon','body-parser','method-override','cookie-parser','passport','moment','./environment','../mysqldb','default','get','env','set','appPath','join','root','public','development','test','client','use','json\x20replacer','split','static','views','/server/views','engine','html','renderFile','view\x20engine','urlencoded','50mb','initialize','express'];(function(_0x39bd2c,_0x15737a){var _0x196aaa=function(_0x46d64b){while(--_0x46d64b){_0x39bd2c['push'](_0x39bd2c['shift']());}};_0x196aaa(++_0x15737a);}(_0xe2a5,0xa4));var _0x5e2a=function(_0x3cc2c2,_0x3db826){_0x3cc2c2=_0x3cc2c2-0x0;var _0x1e50fc=_0xe2a5[_0x3cc2c2];return _0x1e50fc;};'use strict';var express=require(_0x5e2a('0x0'));var favicon=require(_0x5e2a('0x1'));var bodyParser=require(_0x5e2a('0x2'));var methodOverride=require(_0x5e2a('0x3'));var cookieParser=require(_0x5e2a('0x4'));var errorHandler=require('errorhandler');var path=require('path');var passport=require(_0x5e2a('0x5'));var cors=require('cors');var moment=require(_0x5e2a('0x6'));var config=require(_0x5e2a('0x7'));var db=require(_0x5e2a('0x8'))['db'];exports[_0x5e2a('0x9')]=function(_0x320f0b){var _0x26f529=_0x320f0b[_0x5e2a('0xa')](_0x5e2a('0xb'));if(_0x26f529==='production'){_0x320f0b[_0x5e2a('0xc')](_0x5e2a('0xd'),path[_0x5e2a('0xe')](config[_0x5e2a('0xf')],_0x5e2a('0x10')));}if(_0x26f529===_0x5e2a('0x11')||_0x26f529===_0x5e2a('0x12')){_0x320f0b['set']('appPath',path[_0x5e2a('0xe')](config[_0x5e2a('0xf')],_0x5e2a('0x13')));_0x320f0b[_0x5e2a('0x14')](errorHandler());}_0x320f0b['set'](_0x5e2a('0x15'),function(_0x35e3c4,_0x3f620f){if(this[_0x35e3c4]instanceof Date){_0x3f620f=this[_0x35e3c4]['toISOString']()[_0x5e2a('0x16')]('.')[0x0]+'Z';}return _0x3f620f;});_0x320f0b[_0x5e2a('0x14')](express[_0x5e2a('0x17')](_0x320f0b[_0x5e2a('0xa')]('appPath')));_0x320f0b[_0x5e2a('0xc')](_0x5e2a('0x18'),config[_0x5e2a('0xf')]+_0x5e2a('0x19'));_0x320f0b[_0x5e2a('0x1a')](_0x5e2a('0x1b'),require('ejs')[_0x5e2a('0x1c')]);_0x320f0b['set'](_0x5e2a('0x1d'),_0x5e2a('0x1b'));_0x320f0b[_0x5e2a('0x14')](bodyParser[_0x5e2a('0x1e')]({'limit':_0x5e2a('0x1f'),'extended':!![]}));_0x320f0b[_0x5e2a('0x14')](bodyParser['json']({'limit':'50mb'}));_0x320f0b[_0x5e2a('0x14')](cors());_0x320f0b['use'](methodOverride());_0x320f0b[_0x5e2a('0x14')](cookieParser());_0x320f0b[_0x5e2a('0x14')](passport[_0x5e2a('0x20')]());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fba=['execSync','../environment','networkInterfaces','keys','length','filter','family','internal','concat','head','mac','address','127.0.0.1','getFirstInterface','orderBy','cpus','map','model','createHash','update','digest','hex','getUuid','platform','licenseToken','test','win32','dmidecode\x20--string\x20system-uuid','replace','hostname','macAddress','ipAddress','md5','substring','lodash','crypto','bimedia-machine-uuid','child_process'];(function(_0x76c716,_0x3df75d){var _0x4f6c15=function(_0x2142c){while(--_0x2142c){_0x76c716['push'](_0x76c716['shift']());}};_0x4f6c15(++_0x3df75d);}(_0x5fba,0x94));var _0xa5fb=function(_0x2be224,_0x32fd9e){_0x2be224=_0x2be224-0x0;var _0x52308a=_0x5fba[_0x2be224];return _0x52308a;};'use strict';var _=require(_0xa5fb('0x0'));var os=require('os');var crypto=require(_0xa5fb('0x1'));var machine=require(_0xa5fb('0x2'));var exec=require(_0xa5fb('0x3'))[_0xa5fb('0x4')];var config=require(_0xa5fb('0x5'));function getInterfaces(){var _0x513669=[];var _0x3ace91=os[_0xa5fb('0x6')]();var _0x3808e1=_['orderBy'](_[_0xa5fb('0x7')](_0x3ace91));for(var _0x5f1e77=0x0;_0x5f1e77<_0x3808e1[_0xa5fb('0x8')];_0x5f1e77++){var _0xd7fb44=_0x3ace91[_0x3808e1[_0x5f1e77]][_0xa5fb('0x9')](function(_0x31c07e){return _0x31c07e[_0xa5fb('0xa')]==='IPv4'&&_0x31c07e[_0xa5fb('0xb')]===![];});_0x513669=_0x513669[_0xa5fb('0xc')](_0xd7fb44);}return _0x513669;}function getFirstInterface(){var _0x5f0f9e=_[_0xa5fb('0xd')](getInterfaces());return{'macAddress':_0x5f0f9e&&_0x5f0f9e['mac']?_0x5f0f9e[_0xa5fb('0xe')]:'00:00:00:00:00:00','ipAddress':_0x5f0f9e&&_0x5f0f9e[_0xa5fb('0xf')]?_0x5f0f9e[_0xa5fb('0xf')]:_0xa5fb('0x10')};}exports[_0xa5fb('0x11')]=getFirstInterface;function getCPUhash(){var _0xffbbbc=_[_0xa5fb('0x12')](os[_0xa5fb('0x13')]()[_0xa5fb('0x14')](function(_0x261113){return _0x261113[_0xa5fb('0x15')];}))['join'](':');return crypto[_0xa5fb('0x16')]('md5')[_0xa5fb('0x17')](_0xffbbbc)[_0xa5fb('0x18')](_0xa5fb('0x19'));}exports[_0xa5fb('0x1a')]=function(){var _0x4aa36e=os[_0xa5fb('0x1b')]();var _0x980ed4=/[0-9a-f-]{36}/;if(config[_0xa5fb('0x1c')]&&_0x980ed4[_0xa5fb('0x1d')](config['licenseToken'])){return config[_0xa5fb('0x1c')];}else if(_0x4aa36e===_0xa5fb('0x1e')){return exec(_0xa5fb('0x1f'),{'encoding':'utf8'})[_0xa5fb('0x20')]('\x0d\x0a','');}else{var _0x3ce579=getFirstInterface();var _0x631e39=getCPUhash();var _0x3f3911=_0x631e39+'|'+os[_0xa5fb('0x21')]()+'|'+_0x3ce579[_0xa5fb('0x22')]+'|'+_0x3ce579[_0xa5fb('0x23')];var _0xc17a5=crypto[_0xa5fb('0x16')](_0xa5fb('0x24'))[_0xa5fb('0x17')](_0x3f3911)['digest'](_0xa5fb('0x19'));return _0xc17a5[_0xa5fb('0x25')](0x0,0x8)+'-'+_0xc17a5[_0xa5fb('0x25')](0x8,0xc)+'-'+_0xc17a5['substring'](0xc,0x10)+'-'+_0xc17a5[_0xa5fb('0x25')](0x10,0x14)+'-'+_0xc17a5[_0xa5fb('0x25')](0x14);}};
\ No newline at end of file
+var _0xb9b9=['createHash','md5','update','digest','platform','licenseToken','dmidecode\x20--string\x20system-uuid','utf8','replace','hostname','macAddress','hex','substring','lodash','crypto','bimedia-machine-uuid','child_process','../environment','networkInterfaces','orderBy','keys','length','family','IPv4','head','mac','00:00:00:00:00:00','address','cpus','map','join'];(function(_0x55ec31,_0x3f1d64){var _0x47a20e=function(_0x312d99){while(--_0x312d99){_0x55ec31['push'](_0x55ec31['shift']());}};_0x47a20e(++_0x3f1d64);}(_0xb9b9,0x162));var _0x9b9b=function(_0x4b5529,_0x279132){_0x4b5529=_0x4b5529-0x0;var _0x13b053=_0xb9b9[_0x4b5529];return _0x13b053;};'use strict';var _=require(_0x9b9b('0x0'));var os=require('os');var crypto=require(_0x9b9b('0x1'));var machine=require(_0x9b9b('0x2'));var exec=require(_0x9b9b('0x3'))['execSync'];var config=require(_0x9b9b('0x4'));function getInterfaces(){var _0x56955a=[];var _0x10b833=os[_0x9b9b('0x5')]();var _0x1fb914=_[_0x9b9b('0x6')](_[_0x9b9b('0x7')](_0x10b833));for(var _0x25fb4c=0x0;_0x25fb4c<_0x1fb914[_0x9b9b('0x8')];_0x25fb4c++){var _0x1d6770=_0x10b833[_0x1fb914[_0x25fb4c]]['filter'](function(_0xd8a001){return _0xd8a001[_0x9b9b('0x9')]===_0x9b9b('0xa')&&_0xd8a001['internal']===![];});_0x56955a=_0x56955a['concat'](_0x1d6770);}return _0x56955a;}function getFirstInterface(){var _0x224441=_[_0x9b9b('0xb')](getInterfaces());return{'macAddress':_0x224441&&_0x224441[_0x9b9b('0xc')]?_0x224441[_0x9b9b('0xc')]:_0x9b9b('0xd'),'ipAddress':_0x224441&&_0x224441[_0x9b9b('0xe')]?_0x224441['address']:'127.0.0.1'};}exports['getFirstInterface']=getFirstInterface;function getCPUhash(){var _0xa092d3=_[_0x9b9b('0x6')](os[_0x9b9b('0xf')]()[_0x9b9b('0x10')](function(_0x2e1fbf){return _0x2e1fbf['model'];}))[_0x9b9b('0x11')](':');return crypto[_0x9b9b('0x12')](_0x9b9b('0x13'))[_0x9b9b('0x14')](_0xa092d3)[_0x9b9b('0x15')]('hex');}exports['getUuid']=function(){var _0x29596a=os[_0x9b9b('0x16')]();var _0x493644=/[0-9a-f-]{36}/;if(config['licenseToken']&&_0x493644['test'](config[_0x9b9b('0x17')])){return config[_0x9b9b('0x17')];}else if(_0x29596a==='win32'){return exec(_0x9b9b('0x18'),{'encoding':_0x9b9b('0x19')})[_0x9b9b('0x1a')]('\x0d\x0a','');}else{var _0xb58695=getFirstInterface();var _0x6b1678=getCPUhash();var _0x2e0d6b=_0x6b1678+'|'+os[_0x9b9b('0x1b')]()+'|'+_0xb58695[_0x9b9b('0x1c')]+'|'+_0xb58695['ipAddress'];var _0x1e623b=crypto[_0x9b9b('0x12')]('md5')[_0x9b9b('0x14')](_0x2e0d6b)[_0x9b9b('0x15')](_0x9b9b('0x1d'));return _0x1e623b[_0x9b9b('0x1e')](0x0,0x8)+'-'+_0x1e623b['substring'](0x8,0xc)+'-'+_0x1e623b[_0x9b9b('0x1e')](0xc,0x10)+'-'+_0x1e623b[_0x9b9b('0x1e')](0x10,0x14)+'-'+_0x1e623b['substring'](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x213f=['../../mysqldb','../../components/encryptor','./hardware','../logger','https://www.xcallymotion.com','format','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','then','catch','get','data1','data2','active','license','info','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED','Changed','YYYY-MM-DD\x20HH:mm','encryptString','diff','decryptString','DEMO\x20START\x20AT\x20%s','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','error','getUuid','License','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','request-promise','bluebird','pkginfo','version'];(function(_0x56049c,_0x376c22){var _0x3e67b5=function(_0x4f5c61){while(--_0x4f5c61){_0x56049c['push'](_0x56049c['shift']());}};_0x3e67b5(++_0x376c22);}(_0x213f,0x10d));var _0xf213=function(_0x5e723f,_0x416706){_0x5e723f=_0x5e723f-0x0;var _0x4df904=_0x213f[_0x5e723f];return _0x4df904;};'use strict';var util=require('util');var moment=require('moment');var rp=require(_0xf213('0x0'));var BPromise=require(_0xf213('0x1'));var pkginfo=require(_0xf213('0x2'))(module,_0xf213('0x3'));var db=require(_0xf213('0x4'))['db'];var encryptor=require(_0xf213('0x5'));var hardware=require(_0xf213('0x6'));var logger=require(_0xf213('0x7'))('license');var HOST=_0xf213('0x8');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x307a82){return new BPromise(function(_0x463b8c,_0x52d447){var _0x54a038=util[_0xf213('0x9')]('%s/api/servers/%s/check?version=%s',HOST,_0x307a82,module[_0xf213('0xa')]['version']);if(oldToken){_0x54a038=util['format'](_0xf213('0xb'),HOST,_0x307a82,module[_0xf213('0xa')][_0xf213('0x3')],oldToken);}var _0x90c21d={'uri':_0x54a038,'method':_0xf213('0xc'),'timeout':0xea60,'json':!![]};return rp(_0x90c21d)[_0xf213('0xd')](function(_0x3f8b10){_0x463b8c(_0x3f8b10);})[_0xf213('0xe')](function(_0x43d9c3){_0x52d447(_0x43d9c3);});});}function manageLicense(_0x2a30af,_0x5f1459){var _0x22e38a=_0x5f1459[_0xf213('0xf')]({'plain':!![]});if(!isOldTokenSent&&_0x22e38a[_0xf213('0x10')]!==_0x2a30af&&!_0x22e38a[_0xf213('0x11')]){oldToken=_0x22e38a[_0xf213('0x10')];}httpRequest(_0x2a30af)[_0xf213('0xd')](function(_0x15779d){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x15779d[_0xf213('0x12')]){isOldTokenSent=![];if(!_0x22e38a['license']&&_0x22e38a[_0xf213('0x13')]!=_0x15779d[_0xf213('0x13')]||_0x22e38a[_0xf213('0x13')]&&_0x22e38a[_0xf213('0x11')]){logger[_0xf213('0x14')](_0xf213('0x15'));}if(_0x22e38a['license']&&!_0x22e38a[_0xf213('0x11')]&&_0x22e38a[_0xf213('0x13')]!=_0x15779d[_0xf213('0x13')]){logger[_0xf213('0x14')](_0xf213('0x16'));}if(_0x22e38a['license']&&!_0x22e38a[_0xf213('0x11')]&&_0x22e38a[_0xf213('0x13')]==_0x15779d[_0xf213('0x13')]){return _0x5f1459;}return _0x5f1459[_0xf213('0x17')]({'data1':_0x2a30af,'data2':null,'license':_0x15779d[_0xf213('0x13')]});}else{if(_0x15779d[_0xf213('0x13')]||_0x22e38a[_0xf213('0x13')]){if(!_0x22e38a[_0xf213('0x11')]){if(_0x22e38a[_0xf213('0x10')]==_0x2a30af){GRAY_PERIOD_REASON=_0xf213('0x18');logger['info'](_0xf213('0x19'));}else{GRAY_PERIOD_REASON=_0xf213('0x1a');logger['info']('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x22e38a[_0xf213('0x10')],_0x2a30af);}logger[_0xf213('0x14')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON['toUpperCase'](),moment()['format'](_0xf213('0x1b')));return _0x5f1459[_0xf213('0x17')]({'data2':encryptor[_0xf213('0x1c')](moment()[_0xf213('0x9')]('YYYY-MM-DD\x20HH:mm'))});}else{if(moment()[_0xf213('0x1d')](encryptor[_0xf213('0x1e')](_0x22e38a[_0xf213('0x11')]),'days')>DAYS){logger[_0xf213('0x14')](_0xf213('0x1f'),moment()[_0xf213('0x9')]('YYYY-MM-DD\x20HH:mm'));isOldTokenSent=![];return _0x5f1459[_0xf213('0x17')]({'data1':_0x2a30af,'data2':null,'license':null});}}}else{if(_0x22e38a[_0xf213('0x10')]!=_0x2a30af){logger[_0xf213('0x14')](_0xf213('0x20'),_0x22e38a[_0xf213('0x10')],_0x2a30af);return _0x5f1459[_0xf213('0x17')]({'data1':_0x2a30af,'data2':null,'license':null});}}}return _0x5f1459;})[_0xf213('0xd')](function(_0x441a7b){_0x5f1459=_0x441a7b;})[_0xf213('0xe')](function(_0x2a8df7){logger[_0xf213('0x21')](_0x2a8df7['message']);})['finally'](function(){setTimeout(function(){manageLicense(hardware[_0xf213('0x22')](),_0x5f1459);},TIME);});}function defaultLicense(){var _0x44bcd0=hardware[_0xf213('0x22')]();if(_0x44bcd0){return db[_0xf213('0x23')][_0xf213('0x24')]({'where':{'id':0x1},'defaults':{'data1':_0x44bcd0}})[_0xf213('0x25')](function(_0x364c71,_0x17909e){logger['info'](_0xf213('0x26'),_0x44bcd0);manageLicense(_0x44bcd0,_0x364c71);})['catch'](function(_0x5103c4){logger[_0xf213('0x21')](_0x5103c4['message']);});}}exports['default']=defaultLicense;
\ No newline at end of file
+var _0xacd7=['../../mysqldb','./hardware','../logger','license','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','GET','then','catch','get','data1','active','data2','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','info','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Changed','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','toUpperCase','YYYY-MM-DD\x20HH:mm','encryptString','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','error','finally','findOrCreate','spread','SERVICE\x20LICENSE\x20STARTED\x20%s','message','default','util','moment','version'];(function(_0x5b80ab,_0x1fbb2c){var _0xa558d=function(_0x1905ac){while(--_0x1905ac){_0x5b80ab['push'](_0x5b80ab['shift']());}};_0xa558d(++_0x1fbb2c);}(_0xacd7,0x99));var _0x7acd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xacd7[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x7acd('0x0'));var moment=require(_0x7acd('0x1'));var rp=require('request-promise');var BPromise=require('bluebird');var pkginfo=require('pkginfo')(module,_0x7acd('0x2'));var db=require(_0x7acd('0x3'))['db'];var encryptor=require('../../components/encryptor');var hardware=require(_0x7acd('0x4'));var logger=require(_0x7acd('0x5'))(_0x7acd('0x6'));var HOST=_0x7acd('0x7');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x49e3ad){return new BPromise(function(_0x34580f,_0x9068ae){var _0x20d4c7=util[_0x7acd('0x8')](_0x7acd('0x9'),HOST,_0x49e3ad,module[_0x7acd('0xa')][_0x7acd('0x2')]);if(oldToken){_0x20d4c7=util[_0x7acd('0x8')]('%s/api/servers/%s/check?version=%s&oldtoken=%s',HOST,_0x49e3ad,module[_0x7acd('0xa')]['version'],oldToken);}var _0xa3a964={'uri':_0x20d4c7,'method':_0x7acd('0xb'),'timeout':0xea60,'json':!![]};return rp(_0xa3a964)[_0x7acd('0xc')](function(_0x52bfbf){_0x34580f(_0x52bfbf);})[_0x7acd('0xd')](function(_0x218e64){_0x9068ae(_0x218e64);});});}function manageLicense(_0x394596,_0xa8b89d){var _0x4dd587=_0xa8b89d[_0x7acd('0xe')]({'plain':!![]});if(!isOldTokenSent&&_0x4dd587[_0x7acd('0xf')]!==_0x394596&&!_0x4dd587['data2']){oldToken=_0x4dd587['data1'];}httpRequest(_0x394596)[_0x7acd('0xc')](function(_0x4dd9cb){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x4dd9cb[_0x7acd('0x10')]){isOldTokenSent=![];if(!_0x4dd587['license']&&_0x4dd587[_0x7acd('0x6')]!=_0x4dd9cb[_0x7acd('0x6')]||_0x4dd587[_0x7acd('0x6')]&&_0x4dd587[_0x7acd('0x11')]){logger['info'](_0x7acd('0x12'));}if(_0x4dd587[_0x7acd('0x6')]&&!_0x4dd587[_0x7acd('0x11')]&&_0x4dd587[_0x7acd('0x6')]!=_0x4dd9cb[_0x7acd('0x6')]){logger[_0x7acd('0x13')](_0x7acd('0x14'));}if(_0x4dd587['license']&&!_0x4dd587[_0x7acd('0x11')]&&_0x4dd587[_0x7acd('0x6')]==_0x4dd9cb[_0x7acd('0x6')]){return _0xa8b89d;}return _0xa8b89d[_0x7acd('0x15')]({'data1':_0x394596,'data2':null,'license':_0x4dd9cb['license']});}else{if(_0x4dd9cb[_0x7acd('0x6')]||_0x4dd587[_0x7acd('0x6')]){if(!_0x4dd587[_0x7acd('0x11')]){if(_0x4dd587[_0x7acd('0xf')]==_0x394596){GRAY_PERIOD_REASON='Disabled';logger['info']('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0x7acd('0x16');logger[_0x7acd('0x13')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x4dd587[_0x7acd('0xf')],_0x394596);}logger[_0x7acd('0x13')](_0x7acd('0x17'),GRAY_PERIOD_REASON[_0x7acd('0x18')](),moment()[_0x7acd('0x8')](_0x7acd('0x19')));return _0xa8b89d[_0x7acd('0x15')]({'data2':encryptor[_0x7acd('0x1a')](moment()[_0x7acd('0x8')](_0x7acd('0x19')))});}else{if(moment()[_0x7acd('0x1b')](encryptor[_0x7acd('0x1c')](_0x4dd587[_0x7acd('0x11')]),_0x7acd('0x1d'))>DAYS){logger[_0x7acd('0x13')](_0x7acd('0x1e'),moment()[_0x7acd('0x8')](_0x7acd('0x19')));isOldTokenSent=![];return _0xa8b89d['update']({'data1':_0x394596,'data2':null,'license':null});}}}else{if(_0x4dd587[_0x7acd('0xf')]!=_0x394596){logger[_0x7acd('0x13')](_0x7acd('0x1f'),_0x4dd587[_0x7acd('0xf')],_0x394596);return _0xa8b89d[_0x7acd('0x15')]({'data1':_0x394596,'data2':null,'license':null});}}}return _0xa8b89d;})[_0x7acd('0xc')](function(_0x2b364b){_0xa8b89d=_0x2b364b;})[_0x7acd('0xd')](function(_0x4cb4c1){logger[_0x7acd('0x20')](_0x4cb4c1['message']);})[_0x7acd('0x21')](function(){setTimeout(function(){manageLicense(hardware['getUuid'](),_0xa8b89d);},TIME);});}function defaultLicense(){var _0x4f0e82=hardware['getUuid']();if(_0x4f0e82){return db['License'][_0x7acd('0x22')]({'where':{'id':0x1},'defaults':{'data1':_0x4f0e82}})[_0x7acd('0x23')](function(_0x173aed,_0x2d1178){logger[_0x7acd('0x13')](_0x7acd('0x24'),_0x4f0e82);manageLicense(_0x4f0e82,_0x173aed);})[_0x7acd('0xd')](function(_0x5eb52d){logger[_0x7acd('0x20')](_0x5eb52d[_0x7acd('0x25')]);});}}exports[_0x7acd('0x26')]=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb874=['uuid','machineUuid','deadline','days','grayReason','changed','message','User','findAll','role','sequelize','COUNT','col','count','admin','telephone','users','telephones','forEach','user','pick','countBy','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','lodash','moment','bluebird','../../components/encryptor','../../mysqldb','Demo\x20license','getUuid','2027-01-01T00:00:00.000Z','Breaking\x20license','License','find','defaults','then','catch','data1','license','isEmpty','License\x20key\x20value\x20not\x20found','data2','split','decryptString','%s:%s:%s','parse','demo'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xb874,0xac));var _0x4b87=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xb874[_0x20a584];return _0x4b41a8;};'use strict';var util=require('util');var _=require(_0x4b87('0x0'));var moment=require(_0x4b87('0x1'));var BPromise=require(_0x4b87('0x2'));var hardware=require('./hardware');var encryptor=require(_0x4b87('0x3'));var db=require(_0x4b87('0x4'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0x4b87('0x5'),'machineUuid':hardware[_0x4b87('0x6')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0x4b87('0x7'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0x4b87('0x8'),'machineUuid':hardware[_0x4b87('0x6')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x503e5a){return new BPromise(function(_0x184e6a,_0x291279){return db[_0x4b87('0x9')][_0x4b87('0xa')](_[_0x4b87('0xb')](_0x503e5a,{'raw':!![],'where':{'id':0x1}}))[_0x4b87('0xc')](function(_0x18a7e7){return checkLicense(_0x18a7e7,null);})[_0x4b87('0xc')](function(_0x48bfb0){_0x184e6a(_0x48bfb0);return;})[_0x4b87('0xd')](function(_0xd60a4){_0x291279(_0xd60a4);});});}function checkLicense(_0x62c4bb,_0xef8fdf){if(!_0x62c4bb){demoLicense['uuid']=_0x62c4bb[_0x4b87('0xe')];return demoLicense;}try{var _0x29e694=_0xef8fdf||_0x62c4bb[_0x4b87('0xf')];if(_[_0x4b87('0x10')](_0x29e694)){throw new Error(_0x4b87('0x11'));}var _0x24c779=_0x62c4bb[_0x4b87('0xe')];var _0x21bb42=_0x62c4bb[_0x4b87('0x12')];var _0x248c73=_0x24c779[_0x4b87('0x13')]('-')[0x4];var _0x43713e=_0x24c779[_0x4b87('0x13')]('-')[0x0];var _0x2a8e73=encryptor[_0x4b87('0x14')](_0x29e694,util['format'](_0x4b87('0x15'),_0x248c73,_0x24c779,_0x43713e));var _0x46a2ce=JSON[_0x4b87('0x16')](_0x2a8e73);_0x46a2ce[_0x4b87('0x17')]=![];_0x46a2ce[_0x4b87('0x18')]=_0x24c779;_0x46a2ce[_0x4b87('0x19')]=hardware['getUuid']();if(_0x21bb42){var _0x51ed51=encryptor[_0x4b87('0x14')](_0x21bb42);_0x46a2ce['gray']=_0x51ed51;_0x46a2ce[_0x4b87('0x1a')]=moment(_0x51ed51)['add'](0x7,_0x4b87('0x1b'))['format']();_0x46a2ce[_0x4b87('0x1c')]=_0x46a2ce[_0x4b87('0x18')]!=_0x46a2ce[_0x4b87('0x19')]?_0x4b87('0x1d'):'disabled';}return _0x46a2ce;}catch(_0x6c0dc7){breakingLicense[_0x4b87('0x18')]=_0x62c4bb[_0x4b87('0xe')];breakingLicense['message']=_0x6c0dc7[_0x4b87('0x1e')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x2a1805,_0x57a173){getLicense()['then'](function(_0x36bba1){return db[_0x4b87('0x1f')][_0x4b87('0x20')]({'attributes':[_0x4b87('0x21'),[db[_0x4b87('0x22')]['fn'](_0x4b87('0x23'),db['sequelize'][_0x4b87('0x24')](_0x4b87('0x21'))),_0x4b87('0x25')]],'group':_0x4b87('0x21'),'where':{'role':{'$or':[_0x4b87('0x26'),'user',_0x4b87('0x27')]}},'raw':!![]})[_0x4b87('0xc')](function(_0x570257){var _0xa17a9c={'user':_0x36bba1[_0x4b87('0x28')]||0x0,'telephone':_0x36bba1[_0x4b87('0x29')]||0x0};_0x570257[_0x4b87('0x2a')](function(_0x532dfb){var _0x63e05a=_0x532dfb[_0x4b87('0x21')]===_0x4b87('0x26')?_0x4b87('0x2b'):_0x532dfb[_0x4b87('0x21')];_0xa17a9c[_0x63e05a]-=_0x532dfb[_0x4b87('0x25')];if(_0xa17a9c[_0x63e05a]<0x0)_0xa17a9c[_0x63e05a]=0x0;});_0x2a1805(_0xa17a9c);return;});})['catch'](function(_0x18857e){_0x57a173(_0x18857e);});});}function checkUserLimits(_0x1aec62){return new BPromise(function(_0x2d2aff,_0x1766a7){getLimits()[_0x4b87('0xc')](function(_0x1696bc){var _0x3f681c=_[_0x4b87('0x2c')](_[_0x4b87('0x2d')](_0x1aec62,_0x4b87('0x21')),[_0x4b87('0x26'),_0x4b87('0x2b'),_0x4b87('0x27')]);var _0x84a5f0=(_0x3f681c[_0x4b87('0x26')]||0x0)+(_0x3f681c['user']||0x0);var _0x410e24=_0x3f681c[_0x4b87('0x27')]||0x0;if(_0x84a5f0>_0x1696bc[_0x4b87('0x2b')])return _0x1766a7(_0x4b87('0x2e'));if(_0x410e24>_0x1696bc['telephone'])return _0x1766a7(_0x4b87('0x2f'));return _0x2d2aff();})[_0x4b87('0xd')](function(_0x531230){_0x1766a7(_0x531230);});});}module[_0x4b87('0x30')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
+var _0xe5fc=['users','telephones','forEach','countBy','License\x20limit\x20reached\x20for\x20users','util','moment','bluebird','./hardware','../../components/encryptor','../../mysqldb','Demo\x20license','getUuid','2027-01-01T00:00:00.000Z','Breaking\x20license','License','find','defaults','then','catch','data1','license','isEmpty','License\x20key\x20value\x20not\x20found','data2','split','decryptString','%s:%s:%s','parse','demo','uuid','machineUuid','gray','deadline','add','days','changed','message','User','role','sequelize','COUNT','col','count','admin','user','telephone'];(function(_0x528399,_0x433287){var _0x137bba=function(_0xc9f226){while(--_0xc9f226){_0x528399['push'](_0x528399['shift']());}};_0x137bba(++_0x433287);}(_0xe5fc,0xf0));var _0xce5f=function(_0x15653a,_0x54d78d){_0x15653a=_0x15653a-0x0;var _0x433cda=_0xe5fc[_0x15653a];return _0x433cda;};'use strict';var util=require(_0xce5f('0x0'));var _=require('lodash');var moment=require(_0xce5f('0x1'));var BPromise=require(_0xce5f('0x2'));var hardware=require(_0xce5f('0x3'));var encryptor=require(_0xce5f('0x4'));var db=require(_0xce5f('0x5'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xce5f('0x6'),'machineUuid':hardware[_0xce5f('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xce5f('0x8'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xce5f('0x9'),'machineUuid':hardware[_0xce5f('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x35faec){return new BPromise(function(_0x32506b,_0x543e14){return db[_0xce5f('0xa')][_0xce5f('0xb')](_[_0xce5f('0xc')](_0x35faec,{'raw':!![],'where':{'id':0x1}}))[_0xce5f('0xd')](function(_0x2cce90){return checkLicense(_0x2cce90,null);})[_0xce5f('0xd')](function(_0x318772){_0x32506b(_0x318772);return;})[_0xce5f('0xe')](function(_0xb7e4cf){_0x543e14(_0xb7e4cf);});});}function checkLicense(_0x10e2c5,_0x397e8a){if(!_0x10e2c5){demoLicense['uuid']=_0x10e2c5[_0xce5f('0xf')];return demoLicense;}try{var _0x100437=_0x397e8a||_0x10e2c5[_0xce5f('0x10')];if(_[_0xce5f('0x11')](_0x100437)){throw new Error(_0xce5f('0x12'));}var _0x2892e7=_0x10e2c5[_0xce5f('0xf')];var _0x1d777b=_0x10e2c5[_0xce5f('0x13')];var _0x5c3b17=_0x2892e7[_0xce5f('0x14')]('-')[0x4];var _0xad580f=_0x2892e7[_0xce5f('0x14')]('-')[0x0];var _0x37887b=encryptor[_0xce5f('0x15')](_0x100437,util['format'](_0xce5f('0x16'),_0x5c3b17,_0x2892e7,_0xad580f));var _0xccaf2d=JSON[_0xce5f('0x17')](_0x37887b);_0xccaf2d[_0xce5f('0x18')]=![];_0xccaf2d[_0xce5f('0x19')]=_0x2892e7;_0xccaf2d[_0xce5f('0x1a')]=hardware[_0xce5f('0x7')]();if(_0x1d777b){var _0x1690d0=encryptor[_0xce5f('0x15')](_0x1d777b);_0xccaf2d[_0xce5f('0x1b')]=_0x1690d0;_0xccaf2d[_0xce5f('0x1c')]=moment(_0x1690d0)[_0xce5f('0x1d')](0x7,_0xce5f('0x1e'))['format']();_0xccaf2d['grayReason']=_0xccaf2d[_0xce5f('0x19')]!=_0xccaf2d[_0xce5f('0x1a')]?_0xce5f('0x1f'):'disabled';}return _0xccaf2d;}catch(_0x33569d){breakingLicense['uuid']=_0x10e2c5['data1'];breakingLicense[_0xce5f('0x20')]=_0x33569d[_0xce5f('0x20')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x48173f,_0x2b8d01){getLicense()[_0xce5f('0xd')](function(_0x2642ac){return db[_0xce5f('0x21')]['findAll']({'attributes':[_0xce5f('0x22'),[db[_0xce5f('0x23')]['fn'](_0xce5f('0x24'),db[_0xce5f('0x23')][_0xce5f('0x25')]('role')),_0xce5f('0x26')]],'group':'role','where':{'role':{'$or':[_0xce5f('0x27'),_0xce5f('0x28'),_0xce5f('0x29')]}},'raw':!![]})['then'](function(_0x1b118c){var _0x22b7f0={'user':_0x2642ac[_0xce5f('0x2a')]||0x0,'telephone':_0x2642ac[_0xce5f('0x2b')]||0x0};_0x1b118c[_0xce5f('0x2c')](function(_0x4f17e2){var _0x5066c6=_0x4f17e2[_0xce5f('0x22')]===_0xce5f('0x27')?_0xce5f('0x28'):_0x4f17e2[_0xce5f('0x22')];_0x22b7f0[_0x5066c6]-=_0x4f17e2[_0xce5f('0x26')];if(_0x22b7f0[_0x5066c6]<0x0)_0x22b7f0[_0x5066c6]=0x0;});_0x48173f(_0x22b7f0);return;});})['catch'](function(_0x39b0c6){_0x2b8d01(_0x39b0c6);});});}function checkUserLimits(_0x4187bc){return new BPromise(function(_0xb06700,_0x152a53){getLimits()[_0xce5f('0xd')](function(_0x1fb823){var _0x3f4be9=_['pick'](_[_0xce5f('0x2d')](_0x4187bc,_0xce5f('0x22')),[_0xce5f('0x27'),_0xce5f('0x28'),_0xce5f('0x29')]);var _0x3f0a1c=(_0x3f4be9[_0xce5f('0x27')]||0x0)+(_0x3f4be9['user']||0x0);var _0x1bdb8e=_0x3f4be9[_0xce5f('0x29')]||0x0;if(_0x3f0a1c>_0x1fb823['user'])return _0x152a53(_0xce5f('0x2e'));if(_0x1bdb8e>_0x1fb823[_0xce5f('0x29')])return _0x152a53('License\x20limit\x20reached\x20for\x20telephones');return _0xb06700();})[_0xce5f('0xe')](function(_0x4bc566){_0x152a53(_0x4bc566);});});}module['exports']={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x160f=['http://localhost:9000','myappanuglar-secret','app-id','exports'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x160f,0x1ef));var _0xf160=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x160f[_0x3dd15e];return _0x231fd0;};'use strict';module[_0xf160('0x0')]={'DOMAIN':_0xf160('0x1'),'SESSION_SECRET':_0xf160('0x2'),'GOOGLE_ID':_0xf160('0x3'),'GOOGLE_SECRET':'secret','DEBUG':''};
\ No newline at end of file
+var _0xef0f=['exports','myappanuglar-secret','app-id','secret'];(function(_0x5dd335,_0x10d72a){var _0x35d3b4=function(_0x435dc6){while(--_0x435dc6){_0x5dd335['push'](_0x5dd335['shift']());}};_0x35d3b4(++_0x10d72a);}(_0xef0f,0x168));var _0xfef0=function(_0x316c00,_0x1cca31){_0x316c00=_0x316c00-0x0;var _0x8d4b88=_0xef0f[_0x316c00];return _0x8d4b88;};'use strict';module[_0xfef0('0x0')]={'DOMAIN':'http://localhost:9000','SESSION_SECRET':_0xfef0('0x1'),'GOOGLE_ID':_0xfef0('0x2'),'GOOGLE_SECRET':_0xfef0('0x3'),'DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6198=['}}}','format','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','File','%s-%s','error','info','transports','env','debugLevel','moment','winston','path','INFO','join','/var','xcally','%s-%s.log','message','replace'];(function(_0x3b9a05,_0x37f95b){var _0x5a3fe7=function(_0x5b687c){while(--_0x5b687c){_0x3b9a05['push'](_0x3b9a05['shift']());}};_0x5a3fe7(++_0x37f95b);}(_0x6198,0xf3));var _0x8619=function(_0x471c80,_0x3d9e5f){_0x471c80=_0x471c80-0x0;var _0x188adc=_0x6198[_0x471c80];return _0x188adc;};'use strict';var moment=require(_0x8619('0x0'));var winston=require(_0x8619('0x1'));var util=require('util');var path=require(_0x8619('0x2'));var debugLevel=_0x8619('0x3');function filename(_0x4b30d8,_0xa3fb3a){return path[_0x8619('0x4')](_0x8619('0x5'),'log',_0x8619('0x6'),util['format'](_0x8619('0x7'),_0x4b30d8,_0xa3fb3a));}function formatter(_0x424f11,_0x202cea){_0x202cea[_0x8619('0x8')]=_0x202cea[_0x8619('0x8')][_0x8619('0x9')](/@@{/g,'{{{')[_0x8619('0x9')](/}@@/g,_0x8619('0xa'))[_0x8619('0x9')](/@{/g,'{{')[_0x8619('0x9')](/}@/g,'}}');return util[_0x8619('0xb')]('[%s]\x20[%s]\x20%s\x20-\x20%s',moment()[_0x8619('0xb')](_0x8619('0xc')),_0x202cea[_0x8619('0xd')][_0x8619('0xe')](),_0x424f11,_0x202cea['message']);}module[_0x8619('0xf')]=function(_0x42698c){return new winston['Logger']({'transports':[new winston['transports'][(_0x8619('0x10'))]({'name':util[_0x8619('0xb')](_0x8619('0x11'),_0x42698c,_0x8619('0x12')),'filename':filename(_0x42698c,_0x8619('0x12')),'level':_0x8619('0x12'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x65844b){return formatter(_0x42698c,_0x65844b);}}),new winston['transports'][(_0x8619('0x10'))]({'name':util['format']('%s-%s',_0x42698c,_0x8619('0x13')),'filename':filename(_0x42698c,'info'),'level':'info','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x403d1c){return formatter(_0x42698c,_0x403d1c);}}),new winston[(_0x8619('0x14'))]['Console']({'level':process[_0x8619('0x15')][_0x8619('0x16')]||debugLevel,'json':![],'formatter':function(_0x458ee5){return formatter(_0x42698c,_0x458ee5);}})]});};
\ No newline at end of file
+var _0x9fd0=['}}}','YYYY-MM-DD\x20HH:mm:ss','level','toUpperCase','exports','Logger','transports','File','%s-%s','error','info','env','debugLevel','moment','winston','INFO','join','/var','log','xcally','format','%s-%s.log','message','replace'];(function(_0xbebf50,_0x44ec09){var _0xce1496=function(_0x1bf94d){while(--_0x1bf94d){_0xbebf50['push'](_0xbebf50['shift']());}};_0xce1496(++_0x44ec09);}(_0x9fd0,0x9d));var _0x09fd=function(_0x43014f,_0x108442){_0x43014f=_0x43014f-0x0;var _0x200ff0=_0x9fd0[_0x43014f];return _0x200ff0;};'use strict';var moment=require(_0x09fd('0x0'));var winston=require(_0x09fd('0x1'));var util=require('util');var path=require('path');var debugLevel=_0x09fd('0x2');function filename(_0x2c96ee,_0x307570){return path[_0x09fd('0x3')](_0x09fd('0x4'),_0x09fd('0x5'),_0x09fd('0x6'),util[_0x09fd('0x7')](_0x09fd('0x8'),_0x2c96ee,_0x307570));}function formatter(_0x2ec740,_0x4120c0){_0x4120c0[_0x09fd('0x9')]=_0x4120c0[_0x09fd('0x9')][_0x09fd('0xa')](/@@{/g,'{{{')[_0x09fd('0xa')](/}@@/g,_0x09fd('0xb'))['replace'](/@{/g,'{{')[_0x09fd('0xa')](/}@/g,'}}');return util[_0x09fd('0x7')]('[%s]\x20[%s]\x20%s\x20-\x20%s',moment()['format'](_0x09fd('0xc')),_0x4120c0[_0x09fd('0xd')][_0x09fd('0xe')](),_0x2ec740,_0x4120c0['message']);}module[_0x09fd('0xf')]=function(_0x59014c){return new winston[(_0x09fd('0x10'))]({'transports':[new winston[(_0x09fd('0x11'))][(_0x09fd('0x12'))]({'name':util['format'](_0x09fd('0x13'),_0x59014c,_0x09fd('0x14')),'filename':filename(_0x59014c,'error'),'level':_0x09fd('0x14'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x1e1939){return formatter(_0x59014c,_0x1e1939);}}),new winston[(_0x09fd('0x11'))][(_0x09fd('0x12'))]({'name':util[_0x09fd('0x7')](_0x09fd('0x13'),_0x59014c,_0x09fd('0x15')),'filename':filename(_0x59014c,_0x09fd('0x15')),'level':_0x09fd('0x15'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x56df1e){return formatter(_0x59014c,_0x56df1e);}}),new winston[(_0x09fd('0x11'))]['Console']({'level':process[_0x09fd('0x16')][_0x09fd('0x17')]||debugLevel,'json':![],'formatter':function(_0x5ae878){return formatter(_0x59014c,_0x5ae878);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe402=['../../services/xdr/index.js','exports','express','join','ami','../../services/ami/index.js','agi','../../services/agi/index.js','email','routing','../../services/routing/index.js','xdr'];(function(_0x4501ff,_0x144b32){var _0x224284=function(_0x57fd58){while(--_0x57fd58){_0x4501ff['push'](_0x4501ff['shift']());}};_0x224284(++_0x144b32);}(_0xe402,0x1d6));var _0x2e40=function(_0x16d73e,_0x56f741){_0x16d73e=_0x16d73e-0x0;var _0x167c4d=_0xe402[_0x16d73e];return _0x167c4d;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':_0x2e40('0x0'),'script':path[_0x2e40('0x1')](__dirname,'../../services/express/index.js')},{'name':_0x2e40('0x2'),'script':path[_0x2e40('0x1')](__dirname,_0x2e40('0x3'))},{'name':_0x2e40('0x4'),'script':path[_0x2e40('0x1')](__dirname,_0x2e40('0x5'))},{'name':_0x2e40('0x6'),'script':path[_0x2e40('0x1')](__dirname,'../../services/email/index.js')},{'name':_0x2e40('0x7'),'script':path[_0x2e40('0x1')](__dirname,_0x2e40('0x8'))},{'name':_0x2e40('0x9'),'script':path['join'](__dirname,_0x2e40('0xa'))}]};module[_0x2e40('0xb')]=config;
\ No newline at end of file
+var _0x0bf2=['../../services/agi/index.js','../../services/email/index.js','routing','../../services/routing/index.js','xdr','../../services/xdr/index.js','exports','express','../../services/express/index.js','ami','join','../../services/ami/index.js','agi'];(function(_0x1793cf,_0x583e4b){var _0x4ce5da=function(_0x9e0bdb){while(--_0x9e0bdb){_0x1793cf['push'](_0x1793cf['shift']());}};_0x4ce5da(++_0x583e4b);}(_0x0bf2,0x159));var _0x20bf=function(_0x35fbc8,_0x4d71f9){_0x35fbc8=_0x35fbc8-0x0;var _0x2a49d9=_0x0bf2[_0x35fbc8];return _0x2a49d9;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':_0x20bf('0x0'),'script':path['join'](__dirname,_0x20bf('0x1'))},{'name':_0x20bf('0x2'),'script':path[_0x20bf('0x3')](__dirname,_0x20bf('0x4'))},{'name':_0x20bf('0x5'),'script':path[_0x20bf('0x3')](__dirname,_0x20bf('0x6'))},{'name':'email','script':path[_0x20bf('0x3')](__dirname,_0x20bf('0x7'))},{'name':_0x20bf('0x8'),'script':path[_0x20bf('0x3')](__dirname,_0x20bf('0x9'))},{'name':_0x20bf('0xa'),'script':path[_0x20bf('0x3')](__dirname,_0x20bf('0xb'))}]};module[_0x20bf('0xc')]=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6c6=['./config','connect','then','disconnect','stop','restart','describe','delete','dump','pm2','bluebird'];(function(_0x765c20,_0x428c93){var _0x30b47f=function(_0x3acfc3){while(--_0x3acfc3){_0x765c20['push'](_0x765c20['shift']());}};_0x30b47f(++_0x428c93);}(_0xf6c6,0x1b6));var _0x6f6c=function(_0x220f3f,_0x11c540){_0x220f3f=_0x220f3f-0x0;var _0x1f170e=_0xf6c6[_0x220f3f];return _0x1f170e;};'use strict';var pm2=require(_0x6f6c('0x0'));var BPromise=require(_0x6f6c('0x1'));var config=require(_0x6f6c('0x2'));function connect(){return new BPromise(function(_0x5b8452,_0x2fd8d7){return pm2[_0x6f6c('0x3')](function(_0x447aaa){if(_0x447aaa){return _0x2fd8d7(_0x447aaa);}return _0x5b8452('connected');});});};exports['start']=function(_0x767b00){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0xab4f0a,_0x558a06){return pm2['start'](_0x767b00,function(_0x1171dc,_0x4fc2c9){if(_0x1171dc){return _0x558a06(_0x1171dc);}pm2[_0x6f6c('0x5')]();return _0xab4f0a(_0x4fc2c9);});});});};exports[_0x6f6c('0x6')]=function(_0x508a26){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0x1d7f4c,_0x2040b5){return pm2[_0x6f6c('0x6')](_0x508a26,function(_0xbc1896,_0x19c1d6){if(_0xbc1896){return _0x2040b5(_0xbc1896);}pm2[_0x6f6c('0x5')]();return _0x1d7f4c(_0x19c1d6);});});});};exports['restart']=function(_0x5b69fd){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0x535560,_0x12d50f){return pm2[_0x6f6c('0x7')](_0x5b69fd,function(_0x3281bc,_0x274f8f){if(_0x3281bc){return _0x12d50f(_0x3281bc);}pm2['disconnect']();return _0x535560(_0x274f8f);});});});};exports['list']=function(){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0x402154,_0x23f0e4){return pm2['list'](function(_0x21d087,_0x10b096){if(_0x21d087){return _0x23f0e4(_0x21d087);}pm2['disconnect']();return _0x402154(_0x10b096);});});});};exports[_0x6f6c('0x8')]=function(_0x425a8c){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0x371064,_0xaa6016){return pm2[_0x6f6c('0x8')](_0x425a8c,function(_0x22143e,_0x5a027a){if(_0x22143e){return _0xaa6016(_0x22143e);}pm2[_0x6f6c('0x5')]();return _0x371064(_0x5a027a);});});});};exports[_0x6f6c('0x9')]=function(_0x1e0f14){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0x3e1d07,_0x5ab66a){return pm2[_0x6f6c('0x9')](_0x1e0f14,function(_0x8f210f,_0xf1b1cd){if(_0x8f210f){return _0x5ab66a(_0x8f210f);}pm2['disconnect']();return _0x3e1d07(_0xf1b1cd);});});});};exports[_0x6f6c('0xa')]=function(){return connect()[_0x6f6c('0x4')](function(){return new BPromise(function(_0x217c67,_0xcbd444){return pm2[_0x6f6c('0xa')](function(_0x45e9fb){if(_0x45e9fb){return _0xcbd444(_0x45e9fb);}return _0x217c67('saved');});});});};
\ No newline at end of file
+var _0x0262=['stop','restart','then','list','describe','delete','dump','pm2','bluebird','connect','connected','start','disconnect'];(function(_0x117f85,_0x5afa65){var _0x1c61a7=function(_0x5be223){while(--_0x5be223){_0x117f85['push'](_0x117f85['shift']());}};_0x1c61a7(++_0x5afa65);}(_0x0262,0x18d));var _0x2026=function(_0x205acf,_0x24cf00){_0x205acf=_0x205acf-0x0;var _0x4b1251=_0x0262[_0x205acf];return _0x4b1251;};'use strict';var pm2=require(_0x2026('0x0'));var BPromise=require(_0x2026('0x1'));var config=require('./config');function connect(){return new BPromise(function(_0x43dd68,_0x1dcfcb){return pm2[_0x2026('0x2')](function(_0x414ca1){if(_0x414ca1){return _0x1dcfcb(_0x414ca1);}return _0x43dd68(_0x2026('0x3'));});});};exports[_0x2026('0x4')]=function(_0x102293){return connect()['then'](function(){return new BPromise(function(_0x561790,_0x17a6d0){return pm2[_0x2026('0x4')](_0x102293,function(_0x399471,_0x5a3e6f){if(_0x399471){return _0x17a6d0(_0x399471);}pm2[_0x2026('0x5')]();return _0x561790(_0x5a3e6f);});});});};exports['stop']=function(_0x1f13b6){return connect()['then'](function(){return new BPromise(function(_0x1b0039,_0x3c2ac5){return pm2[_0x2026('0x6')](_0x1f13b6,function(_0x3d6392,_0x1ef50b){if(_0x3d6392){return _0x3c2ac5(_0x3d6392);}pm2['disconnect']();return _0x1b0039(_0x1ef50b);});});});};exports[_0x2026('0x7')]=function(_0x5b0522){return connect()[_0x2026('0x8')](function(){return new BPromise(function(_0x25abc7,_0x552ba8){return pm2[_0x2026('0x7')](_0x5b0522,function(_0x403ebb,_0x2476b0){if(_0x403ebb){return _0x552ba8(_0x403ebb);}pm2[_0x2026('0x5')]();return _0x25abc7(_0x2476b0);});});});};exports[_0x2026('0x9')]=function(){return connect()[_0x2026('0x8')](function(){return new BPromise(function(_0xb923f9,_0x1367f6){return pm2['list'](function(_0x1726a2,_0x4f5409){if(_0x1726a2){return _0x1367f6(_0x1726a2);}pm2[_0x2026('0x5')]();return _0xb923f9(_0x4f5409);});});});};exports[_0x2026('0xa')]=function(_0x116fc8){return connect()[_0x2026('0x8')](function(){return new BPromise(function(_0x2d48bf,_0x208040){return pm2[_0x2026('0xa')](_0x116fc8,function(_0x3dd2b8,_0x51ac9f){if(_0x3dd2b8){return _0x208040(_0x3dd2b8);}pm2['disconnect']();return _0x2d48bf(_0x51ac9f);});});});};exports[_0x2026('0xb')]=function(_0x3ac68d){return connect()[_0x2026('0x8')](function(){return new BPromise(function(_0x38fb7b,_0x39d57f){return pm2['delete'](_0x3ac68d,function(_0x18da5e,_0x5456be){if(_0x18da5e){return _0x39d57f(_0x18da5e);}pm2[_0x2026('0x5')]();return _0x38fb7b(_0x5456be);});});});};exports[_0x2026('0xc')]=function(){return connect()[_0x2026('0x8')](function(){return new BPromise(function(_0x4d0f31,_0x4d8848){return pm2[_0x2026('0xc')](function(_0x554929){if(_0x554929){return _0x4d8848(_0x554929);}return _0x4d0f31('saved');});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fea=['minutes','length','map','[CHAT]\x20Interactions\x20to\x20close:','join','update','system','format','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','inspect','start','moment','util','../../config/environment','../logger','schedule','redis','defaults','localhost','socket.io-emitter','find','chatTimeout','then','ChatInteraction','lastMsgAt'];(function(_0x4480b9,_0x5c2949){var _0x3f0f02=function(_0x43502f){while(--_0x43502f){_0x4480b9['push'](_0x4480b9['shift']());}};_0x3f0f02(++_0x5c2949);}(_0x1fea,0xbd));var _0xa1fe=function(_0x22fb85,_0x225142){_0x22fb85=_0x22fb85-0x0;var _0x4f7d62=_0x1fea[_0x22fb85];return _0x4f7d62;};'use strict';var _=require('lodash');var moment=require(_0xa1fe('0x0'));var Redis=require('ioredis');var util=require(_0xa1fe('0x1'));var config=require(_0xa1fe('0x2'));var db=require('../../mysqldb')['db'];var logger=require(_0xa1fe('0x3'))(_0xa1fe('0x4'));config[_0xa1fe('0x5')]=_[_0xa1fe('0x6')](config[_0xa1fe('0x5')],{'host':_0xa1fe('0x7'),'port':0x18eb});var io=require(_0xa1fe('0x8'))(new Redis(config[_0xa1fe('0x5')]));function closeInteractions(){var _0x444ccc=0x0;var _0x1aae47=[];return db['Setting'][_0xa1fe('0x9')]({'raw':!![],'attributes':['id',_0xa1fe('0xa')],'where':{'id':0x1}})[_0xa1fe('0xb')](function(_0x3aabe8){_0x444ccc=_0x3aabe8[_0xa1fe('0xa')];if(_0x444ccc){return db[_0xa1fe('0xc')]['findAll']({'raw':!![],'attributes':['id',_0xa1fe('0xd')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()['subtract'](_0x3aabe8[_0xa1fe('0xa')],_0xa1fe('0xe'))}}});}else{return[];}})['then'](function(_0x59579e){if(_0x59579e&&_0x59579e[_0xa1fe('0xf')]){_0x1aae47=_[_0xa1fe('0x10')](_0x59579e||[],'id');logger['info'](_0xa1fe('0x11'),_0x1aae47[_0xa1fe('0x12')]());return db[_0xa1fe('0xc')][_0xa1fe('0x13')]({'closeReason':_0xa1fe('0x14'),'disposition':'timeout','closed':!![],'closedAt':moment()[_0xa1fe('0x15')]('YYYY-MM-DD\x20HH:mm:ss')},{'where':{'id':_0x1aae47}});}})[_0xa1fe('0xb')](function(){if(_0x1aae47&&_0x1aae47[_0xa1fe('0xf')]){logger['info']('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x1aae47[_0xa1fe('0x12')]());for(var _0x527e5b=0x0;_0x527e5b<_0x1aae47[_0xa1fe('0xf')];_0x527e5b++){io[_0xa1fe('0x16')](_0xa1fe('0x17'),{'id':_0x1aae47[_0x527e5b],'closed':!![]});}}})[_0xa1fe('0x18')](function(_0x56924a){logger[_0xa1fe('0x19')](_0xa1fe('0x1a'),_0x56924a?util[_0xa1fe('0x1b')](_0x56924a,{'showHidden':![],'depth':null}):'');});}exports[_0xa1fe('0x1c')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x359d=['lodash','moment','ioredis','util','../../config/environment','../../mysqldb','schedule','redis','localhost','Setting','find','then','chatTimeout','ChatInteraction','findAll','subtract','minutes','length','map','[CHAT]\x20Interactions\x20to\x20close:','update','system','timeout','format','info','join','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','inspect','start'];(function(_0x3eadef,_0x4eb7fc){var _0x4db5e2=function(_0x25a430){while(--_0x25a430){_0x3eadef['push'](_0x3eadef['shift']());}};_0x4db5e2(++_0x4eb7fc);}(_0x359d,0xc6));var _0xd359=function(_0x4a3898,_0x4c9853){_0x4a3898=_0x4a3898-0x0;var _0x25ceb0=_0x359d[_0x4a3898];return _0x25ceb0;};'use strict';var _=require(_0xd359('0x0'));var moment=require(_0xd359('0x1'));var Redis=require(_0xd359('0x2'));var util=require(_0xd359('0x3'));var config=require(_0xd359('0x4'));var db=require(_0xd359('0x5'))['db'];var logger=require('../logger')(_0xd359('0x6'));config[_0xd359('0x7')]=_['defaults'](config[_0xd359('0x7')],{'host':_0xd359('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xd359('0x7')]));function closeInteractions(){var _0x35c99d=0x0;var _0x6a834e=[];return db[_0xd359('0x9')][_0xd359('0xa')]({'raw':!![],'attributes':['id','chatTimeout'],'where':{'id':0x1}})[_0xd359('0xb')](function(_0x2c2bd7){_0x35c99d=_0x2c2bd7[_0xd359('0xc')];if(_0x35c99d){return db[_0xd359('0xd')][_0xd359('0xe')]({'raw':!![],'attributes':['id','lastMsgAt'],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xd359('0xf')](_0x2c2bd7['chatTimeout'],_0xd359('0x10'))}}});}else{return[];}})['then'](function(_0x136f48){if(_0x136f48&&_0x136f48[_0xd359('0x11')]){_0x6a834e=_[_0xd359('0x12')](_0x136f48||[],'id');logger['info'](_0xd359('0x13'),_0x6a834e['join']());return db[_0xd359('0xd')][_0xd359('0x14')]({'closeReason':_0xd359('0x15'),'disposition':_0xd359('0x16'),'closed':!![],'closedAt':moment()[_0xd359('0x17')]('YYYY-MM-DD\x20HH:mm:ss')},{'where':{'id':_0x6a834e}});}})[_0xd359('0xb')](function(){if(_0x6a834e&&_0x6a834e['length']){logger[_0xd359('0x18')]('[CHAT]\x20Sending\x20updates\x20for\x20interactions:',_0x6a834e[_0xd359('0x19')]());for(var _0x1de317=0x0;_0x1de317<_0x6a834e[_0xd359('0x11')];_0x1de317++){io[_0xd359('0x1a')](_0xd359('0x1b'),{'id':_0x6a834e[_0x1de317],'closed':!![]});}}})[_0xd359('0x1c')](function(_0x151679){logger[_0xd359('0x1d')](_0xd359('0x1e'),_0x151679?util[_0xd359('0x1f')](_0x151679,{'showHidden':![],'depth':null}):'');});}exports[_0xd359('0x20')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x340b=['resolve','cron','active','isBetween','startAt','endAt','start','update','update\x20cron','stop\x20cron','path','lodash','moment','cron-job-manager','jayson/promise','bluebird','../logger','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','Smtp','service','host','port','secure','pass','format','\x22%s\x22\x20<%s>','name','bcc','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','../../files/reports','savename','basename','extname','status','Sent','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','existsSync','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','SendMail','error','email\x20sent','error\x20mail','data','isNil','subtractNumber\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','catch','CustomReportId','no\x20report\x20id','Schedule','MailServerOut','then','keys','jobs','map','toString','difference','intersection','exists','stop','deleteJob','toRun','length','index','my\x20id'];(function(_0xa9eaa0,_0x4ba2b4){var _0x30897a=function(_0x2caa01){while(--_0x2caa01){_0xa9eaa0['push'](_0xa9eaa0['shift']());}};_0x30897a(++_0x4ba2b4);}(_0x340b,0x10c));var _0xb340=function(_0x14eae2,_0x437089){_0x14eae2=_0x14eae2-0x0;var _0x3d7ed9=_0x340b[_0x14eae2];return _0x3d7ed9;};'use strict';var fs=require('fs');var util=require('util');var path=require(_0xb340('0x0'));var _=require(_0xb340('0x1'));var moment=require(_0xb340('0x2'));var CronJobManager=require(_0xb340('0x3'));var jayson=require(_0xb340('0x4'));var BPromise=require(_0xb340('0x5'));var logger=require(_0xb340('0x6'))(_0xb340('0x7'));var db=require(_0xb340('0x8'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0xb340('0x9'));var client=jayson['client'][_0xb340('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x17d7ad,_0x46bb94){return function(){logger[_0xb340('0xb')](_0xb340('0xc'),_0x17d7ad[_0xb340('0xd')]);var _0x1de7c3=!![];var _0xc01b97={'tls':{'rejectUnauthorized':![]}};if(_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')][_0xb340('0x10')]){_0xc01b97[_0xb340('0x10')]=_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')][_0xb340('0x10')];}else{_0xc01b97[_0xb340('0x11')]=_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')][_0xb340('0x11')];_0xc01b97[_0xb340('0x12')]=_0x17d7ad['MailAccount']['Smtp'][_0xb340('0x12')];_0xc01b97[_0xb340('0x13')]=_0x17d7ad[_0xb340('0xe')]['Smtp'][_0xb340('0x13')];}if(_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')]['authentication']){_0xc01b97['auth']={'user':_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')]['user'],'pass':_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')][_0xb340('0x14')]};}var _0xf12829={'account':_0xc01b97,'message':{'from':util[_0xb340('0x15')](_0xb340('0x16'),_0x17d7ad['MailAccount'][_0xb340('0x17')],_0x17d7ad[_0xb340('0xe')][_0xb340('0xd')]||_0x17d7ad[_0xb340('0xe')][_0xb340('0xf')]['user']),'to':_0x17d7ad['email'],'cc':_0x17d7ad['cc'],'bcc':_0x17d7ad[_0xb340('0x18')],'subject':util[_0xb340('0x15')](_0xb340('0x19'),_0x46bb94[_0xb340('0x17')],_0x17d7ad[_0xb340('0x1a')],_0x17d7ad[_0xb340('0x1b')])}};var _0x406dfe=path[_0xb340('0x1c')](__dirname,_0xb340('0x1d'));var _0x449b2c=_0x46bb94[_0xb340('0x1e')];var _0xc853a6=util['format']('%s.%s',path[_0xb340('0x1f')](_0x46bb94[_0xb340('0x1e')],path[_0xb340('0x20')](_0x46bb94['savename'])),'zip');var _0x8c991d=path['join'](_0x406dfe,_0x449b2c);var _0x34cdae=path[_0xb340('0x1c')](_0x406dfe,_0xc853a6);if(fs['existsSync'](_0x8c991d)){_0x46bb94[_0xb340('0x21')]=_0xb340('0x22');_0xf12829[_0xb340('0x23')][_0xb340('0x24')]=[{'filename':_0x449b2c,'path':_0x8c991d}];_0xf12829[_0xb340('0x23')][_0xb340('0x25')]=util[_0xb340('0x15')](_0xb340('0x26'),JSON[_0xb340('0x27')](_0x46bb94,null,0x2));}else if(fs[_0xb340('0x28')](_0x34cdae)){_0x46bb94['status']=_0xb340('0x22');_0xf12829[_0xb340('0x23')][_0xb340('0x24')]=[{'filename':_0xc853a6,'path':_0x34cdae}];}else{_0xf12829[_0xb340('0x23')][_0xb340('0x25')]=_0xb340('0x29');if(!_0x17d7ad[_0xb340('0x2a')]){_0x1de7c3=![];logger[_0xb340('0xb')](_0xb340('0x2b'));}}if(_0x1de7c3){return client['request'](_0xb340('0x2c'),_0xf12829)['then'](function(_0xc98267){if(_0xc98267[_0xb340('0x2d')]){return logger['error']('error\x20mail',JSON['stringify'](_0xc98267));}return logger[_0xb340('0xb')](_0xb340('0x2e'));})['catch'](function(_0x134551){return logger[_0xb340('0x2d')](_0xb340('0x2f'),JSON[_0xb340('0x27')](_0x134551));});}};}function handleError(){return function(_0x49f1f7){return logger[_0xb340('0x2d')](JSON['stringify'](_0x49f1f7));};}function handleResult(_0x5979e6){return function(_0x1266a6){logger['info'](_0xb340('0x30'),JSON[_0xb340('0x27')](_0x1266a6));if(_0x5979e6[_0xb340('0xe')]&&_0x5979e6[_0xb340('0xe')]['Smtp']&&!_[_0xb340('0x31')](_0x5979e6[_0xb340('0xd')])){setTimeout(handleSendEmail(_0x5979e6,_0x1266a6),0x3c*0x3e8);}};}function handleJob(_0x49f38b){return function(){try{if(_['isNil'](_0x49f38b[_0xb340('0x1a')])){return logger[_0xb340('0xb')](_0xb340('0x32'));}if(_['isNil'](_0x49f38b[_0xb340('0x1b')])){return logger[_0xb340('0xb')]('subtractUnit\x20null\x20or\x20undefined');}var _0x424daf={'startDate':moment()['subtract'](_0x49f38b[_0xb340('0x1a')],_0x49f38b[_0xb340('0x1b')])[_0xb340('0x15')](_0xb340('0x33')),'endDate':moment()[_0xb340('0x15')](_0xb340('0x33')),'type':_0xb340('0x34'),'output':_0x49f38b[_0xb340('0x35')],'name':_0x49f38b[_0xb340('0x17')]};if(!_[_0xb340('0x31')](_0x49f38b[_0xb340('0x36')])){logger[_0xb340('0xb')](_0xb340('0x37'),_0x49f38b[_0xb340('0x36')]);return analyticDefaultReportController[_0xb340('0x38')]({'id':_0x49f38b[_0xb340('0x36')]},_0x424daf)['then'](handleResult(_0x49f38b))[_0xb340('0x39')](handleError());}if(!_[_0xb340('0x31')](_0x49f38b['CustomReportId'])){logger[_0xb340('0xb')]('exec\x20custom\x20report\x20id:%s',_0x49f38b[_0xb340('0x3a')]);return analyticCustomReportController[_0xb340('0x38')]({'id':_0x49f38b[_0xb340('0x3a')]},_0x424daf)['then'](handleResult(_0x49f38b))['catch'](handleError());}}catch(_0x57ac70){logger['error'](JSON[_0xb340('0x27')](_0x57ac70));}return logger[_0xb340('0xb')](_0xb340('0x3b'));};}function getJobs(_0x5f3a54){var _0x36eed0={};if(_0x5f3a54){_0x36eed0['id']=_0x5f3a54;}return db[_0xb340('0x3c')]['findAll']({'where':_0x36eed0,'include':[{'model':db[_0xb340('0xe')],'attributes':['id',_0xb340('0x17'),_0xb340('0xd')],'include':[{'model':db[_0xb340('0x3d')],'as':_0xb340('0xf')}]}]})[_0xb340('0x3e')](function(_0x509f74){var _0x4178d4=_[_0xb340('0x3f')](manager[_0xb340('0x40')]);var _0x12fb43=_[_0xb340('0x41')](_0x509f74,function(_0x5efffd){return _0x5efffd['id'][_0xb340('0x42')]();});var _0x44fd11=_['keyBy'](_0x509f74,function(_0x1b6b38){return _0x1b6b38['id'][_0xb340('0x42')]();});var _0x2dcff5=_0x5f3a54?_0x12fb43:_[_0xb340('0x43')](_0x12fb43,_0x4178d4);var _0x14b470=_[_0xb340('0x44')](_0x12fb43,_0x4178d4);var _0x41517c=_[_0xb340('0x43')](_0x4178d4,_0x12fb43);var _0x7688fe;var _0x2911ed;for(_0x7688fe=0x0;_0x7688fe<_0x41517c['length']&&!_0x5f3a54;_0x7688fe+=0x1){_0x2911ed=_0x41517c[_0x7688fe][_0xb340('0x42')]();if(manager[_0xb340('0x45')](_0x2911ed)){manager[_0xb340('0x46')](_0x2911ed);manager[_0xb340('0x47')](_0x2911ed);logger[_0xb340('0xb')]('delete\x20cron',_0x2911ed);}}logger[_0xb340('0xb')](_0xb340('0x48'),JSON[_0xb340('0x27')](_0x2dcff5));for(_0x7688fe=0x0;_0x7688fe<_0x2dcff5[_0xb340('0x49')];_0x7688fe+=0x1){_0x2911ed=_0x2dcff5[_0x7688fe][_0xb340('0x42')]();logger[_0xb340('0xb')](_0xb340('0x4a'),_0x2911ed);if(_0x5f3a54){logger[_0xb340('0xb')](_0xb340('0x4b'),_0x5f3a54);logger['info'](JSON[_0xb340('0x27')](_0x44fd11[_0x2911ed]));BPromise[_0xb340('0x4c')]()[_0xb340('0x3e')](handleJob(_0x44fd11[_0x2911ed]));logger['info']('run\x20job',_0x44fd11[_0x2911ed][_0xb340('0x17')],_0x44fd11[_0x2911ed][_0xb340('0x4d')]);}else if(_0x44fd11[_0x2911ed]['cron']&&_0x44fd11[_0x2911ed][_0xb340('0x4e')]&&moment()[_0xb340('0x4f')](_0x44fd11[_0x2911ed][_0xb340('0x50')],_0x44fd11[_0x2911ed][_0xb340('0x51')])){manager['add'](_0x2911ed,_0x44fd11[_0x2911ed][_0xb340('0x4d')],handleJob(_0x44fd11[_0x2911ed]));manager[_0xb340('0x52')](_0x2911ed);logger['info']('add\x20cron',_0x44fd11[_0x2911ed][_0xb340('0x17')],_0x44fd11[_0x2911ed][_0xb340('0x4d')]);}else if(manager['exists'](_0x2911ed)){manager['stop'](_0x2911ed);manager[_0xb340('0x47')](_0x2911ed);logger[_0xb340('0xb')]('stop\x20cron',_0x44fd11[_0x2911ed][_0xb340('0x17')],_0x44fd11[_0x2911ed][_0xb340('0x4d')]);}}for(_0x7688fe=0x0,_0x2911ed;_0x7688fe<_0x14b470['length']&&!_0x5f3a54;_0x7688fe+=0x1){_0x2911ed=_0x14b470[_0x7688fe]['toString']();if(manager[_0xb340('0x45')](_0x2911ed)){if(_0x44fd11[_0x2911ed][_0xb340('0x4d')]&&_0x44fd11[_0x2911ed][_0xb340('0x4e')]&&moment()[_0xb340('0x4f')](_0x44fd11[_0x2911ed]['startAt'],_0x44fd11[_0x2911ed][_0xb340('0x51')])){manager[_0xb340('0x53')](_0x2911ed,_0x44fd11[_0x2911ed]['cron'],handleJob(_0x44fd11[_0x2911ed]));logger['info'](_0xb340('0x54'),_0x44fd11[_0x2911ed][_0xb340('0x17')],_0x44fd11[_0x2911ed][_0xb340('0x4d')]);}else{manager[_0xb340('0x46')](_0x2911ed);manager[_0xb340('0x47')](_0x2911ed);logger[_0xb340('0xb')](_0xb340('0x55'),_0x44fd11[_0x2911ed]['name'],_0x44fd11[_0x2911ed]['cron']);}}}})[_0xb340('0x39')](function(_0x3a9eaf){logger[_0xb340('0x2d')](JSON[_0xb340('0x27')](_0x3a9eaf));});}exports['run']=function(_0x5b7ab2){return getJobs(_0x5b7ab2);};exports[_0xb340('0x52')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0x1775=['bcc','format','Report\x20%s\x20last\x20%s\x20%s','subtractNumber','subtractUnit','join','savename','basename','zip','existsSync','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','Sent','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','error','error\x20mail','stringify','email\x20sent','catch','isNil','subtractNumber\x20null\x20or\x20undefined','subtractUnit\x20null\x20or\x20undefined','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','name','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','then','exec\x20custom\x20report\x20id:%s','CustomReportId','no\x20report\x20id','Schedule','MailServerOut','toString','keyBy','difference','intersection','length','exists','stop','deleteJob','delete\x20cron','index','my\x20id','resolve','run\x20job','cron','isBetween','startAt','endAt','start','add\x20cron','stop\x20cron','active','update','run','util','path','lodash','moment','bluebird','../logger','schedule','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','MailAccount','service','Smtp','host','port','secure','authentication','auth','pass','\x22%s\x22\x20<%s>','user'];(function(_0x3cb465,_0x36d920){var _0x4e197b=function(_0x25fd7d){while(--_0x25fd7d){_0x3cb465['push'](_0x3cb465['shift']());}};_0x4e197b(++_0x36d920);}(_0x1775,0x99));var _0x5177=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x1775[_0x432682];return _0x463d05;};'use strict';var fs=require('fs');var util=require(_0x5177('0x0'));var path=require(_0x5177('0x1'));var _=require(_0x5177('0x2'));var moment=require(_0x5177('0x3'));var CronJobManager=require('cron-job-manager');var jayson=require('jayson/promise');var BPromise=require(_0x5177('0x4'));var logger=require(_0x5177('0x5'))(_0x5177('0x6'));var db=require(_0x5177('0x7'))['db'];var analyticCustomReportController=require(_0x5177('0x8'));var analyticDefaultReportController=require(_0x5177('0x9'));var client=jayson['client'][_0x5177('0xa')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x8de98c,_0x161041){return function(){logger[_0x5177('0xb')](_0x5177('0xc'),_0x8de98c[_0x5177('0xd')]);var _0x1e5a5b=!![];var _0x210f01={'tls':{'rejectUnauthorized':![]}};if(_0x8de98c[_0x5177('0xe')]['Smtp'][_0x5177('0xf')]){_0x210f01[_0x5177('0xf')]=_0x8de98c[_0x5177('0xe')][_0x5177('0x10')][_0x5177('0xf')];}else{_0x210f01['host']=_0x8de98c[_0x5177('0xe')][_0x5177('0x10')][_0x5177('0x11')];_0x210f01[_0x5177('0x12')]=_0x8de98c['MailAccount'][_0x5177('0x10')][_0x5177('0x12')];_0x210f01[_0x5177('0x13')]=_0x8de98c[_0x5177('0xe')][_0x5177('0x10')][_0x5177('0x13')];}if(_0x8de98c[_0x5177('0xe')][_0x5177('0x10')][_0x5177('0x14')]){_0x210f01[_0x5177('0x15')]={'user':_0x8de98c[_0x5177('0xe')][_0x5177('0x10')]['user'],'pass':_0x8de98c['MailAccount'][_0x5177('0x10')][_0x5177('0x16')]};}var _0x2c1282={'account':_0x210f01,'message':{'from':util['format'](_0x5177('0x17'),_0x8de98c[_0x5177('0xe')]['name'],_0x8de98c['MailAccount'][_0x5177('0xd')]||_0x8de98c[_0x5177('0xe')][_0x5177('0x10')][_0x5177('0x18')]),'to':_0x8de98c[_0x5177('0xd')],'cc':_0x8de98c['cc'],'bcc':_0x8de98c[_0x5177('0x19')],'subject':util[_0x5177('0x1a')](_0x5177('0x1b'),_0x161041['name'],_0x8de98c[_0x5177('0x1c')],_0x8de98c[_0x5177('0x1d')])}};var _0x1767eb=path[_0x5177('0x1e')](__dirname,'../../files/reports');var _0x4ff95b=_0x161041[_0x5177('0x1f')];var _0x387be9=util[_0x5177('0x1a')]('%s.%s',path[_0x5177('0x20')](_0x161041[_0x5177('0x1f')],path['extname'](_0x161041[_0x5177('0x1f')])),_0x5177('0x21'));var _0x2e7185=path[_0x5177('0x1e')](_0x1767eb,_0x4ff95b);var _0x3cafac=path[_0x5177('0x1e')](_0x1767eb,_0x387be9);if(fs[_0x5177('0x22')](_0x2e7185)){_0x161041['status']='Sent';_0x2c1282[_0x5177('0x23')][_0x5177('0x24')]=[{'filename':_0x4ff95b,'path':_0x2e7185}];_0x2c1282[_0x5177('0x23')][_0x5177('0x25')]=util['format'](_0x5177('0x26'),JSON['stringify'](_0x161041,null,0x2));}else if(fs[_0x5177('0x22')](_0x3cafac)){_0x161041['status']=_0x5177('0x27');_0x2c1282[_0x5177('0x23')]['attachments']=[{'filename':_0x387be9,'path':_0x3cafac}];}else{_0x2c1282[_0x5177('0x23')][_0x5177('0x25')]=_0x5177('0x28');if(!_0x8de98c['sendIfEmpty']){_0x1e5a5b=![];logger[_0x5177('0xb')](_0x5177('0x29'));}}if(_0x1e5a5b){return client[_0x5177('0x2a')](_0x5177('0x2b'),_0x2c1282)['then'](function(_0x4728e2){if(_0x4728e2[_0x5177('0x2c')]){return logger[_0x5177('0x2c')](_0x5177('0x2d'),JSON[_0x5177('0x2e')](_0x4728e2));}return logger[_0x5177('0xb')](_0x5177('0x2f'));})[_0x5177('0x30')](function(_0x48d174){return logger['error'](_0x5177('0x2d'),JSON['stringify'](_0x48d174));});}};}function handleError(){return function(_0x2dfc8d){return logger[_0x5177('0x2c')](JSON['stringify'](_0x2dfc8d));};}function handleResult(_0x111a28){return function(_0x8e2fab){logger[_0x5177('0xb')]('data',JSON[_0x5177('0x2e')](_0x8e2fab));if(_0x111a28[_0x5177('0xe')]&&_0x111a28['MailAccount']['Smtp']&&!_[_0x5177('0x31')](_0x111a28['email'])){setTimeout(handleSendEmail(_0x111a28,_0x8e2fab),0x3c*0x3e8);}};}function handleJob(_0xdfe83a){return function(){try{if(_[_0x5177('0x31')](_0xdfe83a[_0x5177('0x1c')])){return logger[_0x5177('0xb')](_0x5177('0x32'));}if(_[_0x5177('0x31')](_0xdfe83a['subtractUnit'])){return logger[_0x5177('0xb')](_0x5177('0x33'));}var _0x31417b={'startDate':moment()[_0x5177('0x34')](_0xdfe83a[_0x5177('0x1c')],_0xdfe83a[_0x5177('0x1d')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'endDate':moment()['format'](_0x5177('0x35')),'type':_0x5177('0x36'),'output':_0xdfe83a[_0x5177('0x37')],'name':_0xdfe83a[_0x5177('0x38')]};if(!_[_0x5177('0x31')](_0xdfe83a[_0x5177('0x39')])){logger[_0x5177('0xb')](_0x5177('0x3a'),_0xdfe83a[_0x5177('0x39')]);return analyticDefaultReportController[_0x5177('0x3b')]({'id':_0xdfe83a[_0x5177('0x39')]},_0x31417b)[_0x5177('0x3c')](handleResult(_0xdfe83a))['catch'](handleError());}if(!_[_0x5177('0x31')](_0xdfe83a['CustomReportId'])){logger[_0x5177('0xb')](_0x5177('0x3d'),_0xdfe83a[_0x5177('0x3e')]);return analyticCustomReportController[_0x5177('0x3b')]({'id':_0xdfe83a[_0x5177('0x3e')]},_0x31417b)[_0x5177('0x3c')](handleResult(_0xdfe83a))['catch'](handleError());}}catch(_0x37ded0){logger[_0x5177('0x2c')](JSON[_0x5177('0x2e')](_0x37ded0));}return logger[_0x5177('0xb')](_0x5177('0x3f'));};}function getJobs(_0x249257){var _0x563711={};if(_0x249257){_0x563711['id']=_0x249257;}return db[_0x5177('0x40')]['findAll']({'where':_0x563711,'include':[{'model':db[_0x5177('0xe')],'attributes':['id','name','email'],'include':[{'model':db[_0x5177('0x41')],'as':_0x5177('0x10')}]}]})[_0x5177('0x3c')](function(_0x11d15e){var _0x592eae=_['keys'](manager['jobs']);var _0x2ead56=_['map'](_0x11d15e,function(_0x482d0c){return _0x482d0c['id'][_0x5177('0x42')]();});var _0x59f77b=_[_0x5177('0x43')](_0x11d15e,function(_0x76c574){return _0x76c574['id'][_0x5177('0x42')]();});var _0x28e6bc=_0x249257?_0x2ead56:_[_0x5177('0x44')](_0x2ead56,_0x592eae);var _0x1d2fb6=_[_0x5177('0x45')](_0x2ead56,_0x592eae);var _0x1ff73f=_[_0x5177('0x44')](_0x592eae,_0x2ead56);var _0x25e250;var _0x2b3bac;for(_0x25e250=0x0;_0x25e250<_0x1ff73f[_0x5177('0x46')]&&!_0x249257;_0x25e250+=0x1){_0x2b3bac=_0x1ff73f[_0x25e250][_0x5177('0x42')]();if(manager[_0x5177('0x47')](_0x2b3bac)){manager[_0x5177('0x48')](_0x2b3bac);manager[_0x5177('0x49')](_0x2b3bac);logger[_0x5177('0xb')](_0x5177('0x4a'),_0x2b3bac);}}logger[_0x5177('0xb')]('toRun',JSON[_0x5177('0x2e')](_0x28e6bc));for(_0x25e250=0x0;_0x25e250<_0x28e6bc[_0x5177('0x46')];_0x25e250+=0x1){_0x2b3bac=_0x28e6bc[_0x25e250][_0x5177('0x42')]();logger['info'](_0x5177('0x4b'),_0x2b3bac);if(_0x249257){logger[_0x5177('0xb')](_0x5177('0x4c'),_0x249257);logger['info'](JSON[_0x5177('0x2e')](_0x59f77b[_0x2b3bac]));BPromise[_0x5177('0x4d')]()[_0x5177('0x3c')](handleJob(_0x59f77b[_0x2b3bac]));logger[_0x5177('0xb')](_0x5177('0x4e'),_0x59f77b[_0x2b3bac]['name'],_0x59f77b[_0x2b3bac][_0x5177('0x4f')]);}else if(_0x59f77b[_0x2b3bac]['cron']&&_0x59f77b[_0x2b3bac]['active']&&moment()[_0x5177('0x50')](_0x59f77b[_0x2b3bac][_0x5177('0x51')],_0x59f77b[_0x2b3bac][_0x5177('0x52')])){manager['add'](_0x2b3bac,_0x59f77b[_0x2b3bac][_0x5177('0x4f')],handleJob(_0x59f77b[_0x2b3bac]));manager[_0x5177('0x53')](_0x2b3bac);logger[_0x5177('0xb')](_0x5177('0x54'),_0x59f77b[_0x2b3bac][_0x5177('0x38')],_0x59f77b[_0x2b3bac][_0x5177('0x4f')]);}else if(manager[_0x5177('0x47')](_0x2b3bac)){manager[_0x5177('0x48')](_0x2b3bac);manager[_0x5177('0x49')](_0x2b3bac);logger['info'](_0x5177('0x55'),_0x59f77b[_0x2b3bac]['name'],_0x59f77b[_0x2b3bac][_0x5177('0x4f')]);}}for(_0x25e250=0x0,_0x2b3bac;_0x25e250<_0x1d2fb6[_0x5177('0x46')]&&!_0x249257;_0x25e250+=0x1){_0x2b3bac=_0x1d2fb6[_0x25e250][_0x5177('0x42')]();if(manager[_0x5177('0x47')](_0x2b3bac)){if(_0x59f77b[_0x2b3bac][_0x5177('0x4f')]&&_0x59f77b[_0x2b3bac][_0x5177('0x56')]&&moment()['isBetween'](_0x59f77b[_0x2b3bac][_0x5177('0x51')],_0x59f77b[_0x2b3bac][_0x5177('0x52')])){manager[_0x5177('0x57')](_0x2b3bac,_0x59f77b[_0x2b3bac][_0x5177('0x4f')],handleJob(_0x59f77b[_0x2b3bac]));logger['info']('update\x20cron',_0x59f77b[_0x2b3bac][_0x5177('0x38')],_0x59f77b[_0x2b3bac][_0x5177('0x4f')]);}else{manager[_0x5177('0x48')](_0x2b3bac);manager[_0x5177('0x49')](_0x2b3bac);logger[_0x5177('0xb')]('stop\x20cron',_0x59f77b[_0x2b3bac]['name'],_0x59f77b[_0x2b3bac][_0x5177('0x4f')]);}}}})['catch'](function(_0x13cbea){logger[_0x5177('0x2c')](JSON[_0x5177('0x2e')](_0x13cbea));});}exports[_0x5177('0x58')]=function(_0x50f265){return getJobs(_0x50f265);};exports['start']=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ffd=['Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','findOne','Cloud\x20Provider\x20not\x20available','data2','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','Sentiment','SentimentScore','FAILED','FailureReason','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Positive','Mixed','Neutral','name','SequelizeValidationError','inspect','VoiceRecording','findAll','IN_PROGRESS','length','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','all','start','lodash','aws-sdk','request-promise','bluebird','../../mysqldb','../../config/logger','transcribe','TranscribeService','getTranscriptionJob','Comprehend','detectSentiment','substring','info','format','transcribeName','data1','transcribeRegion','TranscriptionJob','TranscriptionJobStatus','fileText','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','[RECORDING:%d]\x20Transcript\x20downloaded','results','transcripts','transcript','update','then','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','language','bucket','ValidationError'];(function(_0x5d4607,_0x6b5e7b){var _0x5e4a86=function(_0x46891a){while(--_0x46891a){_0x5d4607['push'](_0x5d4607['shift']());}};_0x5e4a86(++_0x6b5e7b);}(_0x9ffd,0xaa));var _0xd9ff=function(_0x1a5789,_0x3bb0af){_0x1a5789=_0x1a5789-0x0;var _0x4d30da=_0x9ffd[_0x1a5789];return _0x4d30da;};var _=require(_0xd9ff('0x0'));var AWS=require(_0xd9ff('0x1'));var rp=require(_0xd9ff('0x2'));var util=require('util');var BPromise=require(_0xd9ff('0x3'));var db=require(_0xd9ff('0x4'))['db'];var logger=require(_0xd9ff('0x5'))(_0xd9ff('0x6'));function getTranscriptionJob(_0x53e962,_0x1c9460,_0x111697,_0x5b8b99){return new Promise(function(_0x3aa26b,_0x2982c3){var _0x13ea8c=new AWS[(_0xd9ff('0x7'))]({'accessKeyId':_0x1c9460,'secretAccessKey':_0x53e962,'region':_0x111697});_0x13ea8c[_0xd9ff('0x8')]({'TranscriptionJobName':_0x5b8b99},function(_0x66282d,_0x13954e){if(_0x66282d){return _0x2982c3(_0x66282d);}else{return _0x3aa26b(_0x13954e);}});});}function sentiment(_0x41ae79,_0x977487,_0x58e728,_0x54a555,_0x567f79){return new Promise(function(_0x5aa954,_0x2355ab){var _0x2fd77a=new AWS[(_0xd9ff('0x9'))]({'accessKeyId':_0x977487,'secretAccessKey':_0x41ae79,'region':_0x58e728});_0x2fd77a[_0xd9ff('0xa')]({'Text':_0x54a555,'LanguageCode':_0x567f79[_0xd9ff('0xb')](0x0,0x2)},function(_0x27ea97,_0x1885da){if(_0x27ea97){return _0x2355ab(_0x27ea97);}else{return _0x5aa954(_0x1885da);}});});}function checkTranscribeJob(_0x1c2a16,_0x47d842,_0x47b0d7){var _0xaaf7af;return new BPromise(function(_0x16a0d9,_0x415c58){logger[_0xd9ff('0xc')](util[_0xd9ff('0xd')]('[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)',_0x1c2a16['id'],_0x1c2a16[_0xd9ff('0xe')]));return getTranscriptionJob(_0x47b0d7[_0xd9ff('0xf')],_0x47b0d7['data2'],_0x47d842[_0xd9ff('0x10')],_0x1c2a16['transcribeName'])['then'](function(_0x547e28){logger['info'](util[_0xd9ff('0xd')]('[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s',_0x1c2a16['id'],_0x1c2a16[_0xd9ff('0xe')],_0x547e28[_0xd9ff('0x11')][_0xd9ff('0x12')]));if(!_0x1c2a16[_0xd9ff('0x13')]){switch(_0x547e28[_0xd9ff('0x11')][_0xd9ff('0x12')]){case _0xd9ff('0x14'):var _0x128588={'transcribeStatus':_0x547e28[_0xd9ff('0x11')][_0xd9ff('0x12')],'fileUri':_0x547e28[_0xd9ff('0x11')][_0xd9ff('0x15')][_0xd9ff('0x16')]};logger['info'](util['format'](_0xd9ff('0x17'),_0x1c2a16['id']));return rp({'uri':_0x547e28[_0xd9ff('0x11')]['Transcript']['TranscriptFileUri'],'json':!![]})['then'](function(_0x4b1477){logger[_0xd9ff('0xc')](util['format'](_0xd9ff('0x18'),_0x1c2a16['id']));if(_0x4b1477&&_0x4b1477[_0xd9ff('0x19')]&&_0x4b1477[_0xd9ff('0x19')][_0xd9ff('0x1a')]&&_0x4b1477[_0xd9ff('0x19')][_0xd9ff('0x1a')]['length']){_0x128588['fileText']='';for(var _0x1136e9=0x0;_0x1136e9<_0x4b1477['results'][_0xd9ff('0x1a')]['length'];_0x1136e9++){_0x128588[_0xd9ff('0x13')]+=_0x4b1477['results'][_0xd9ff('0x1a')][_0x1136e9][_0xd9ff('0x1b')]+'';}}return _0x1c2a16[_0xd9ff('0x1c')](_0x128588);})[_0xd9ff('0x1d')](function(){logger['info'](util[_0xd9ff('0xd')](_0xd9ff('0x1e'),_0x1c2a16['id']));if(!_0x1c2a16[_0xd9ff('0x1f')]){throw new db[(_0xd9ff('0x20'))]['ValidationError'](_0xd9ff('0x21'));}if(!_0x47d842[_0xd9ff('0x22')]||!_0x47d842[_0xd9ff('0x23')]||!_0x47d842[_0xd9ff('0x24')]||!_0x47d842[_0xd9ff('0x25')]||!_0x47d842[_0xd9ff('0x26')]){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))](_0xd9ff('0x28'));}if(!_0x128588['fileText']){throw new Error(_0xd9ff('0x29'));}if(_0x47d842['sentimentAccountId']===_0x47b0d7['id']){return _0x47b0d7;}else{return db[_0xd9ff('0x2a')][_0xd9ff('0x2b')]({'where':{'id':_settings[_0xd9ff('0x23')]}});}})['then'](function(_0x2ba4d3){if(!_0x2ba4d3){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))](_0xd9ff('0x2c'));}if(!_0x2ba4d3['data1']||!_0x2ba4d3[_0xd9ff('0x2d')]){throw new db['Sequelize'][(_0xd9ff('0x27'))](_0xd9ff('0x2e'));}_0xaaf7af=_0x2ba4d3;logger[_0xd9ff('0xc')](util[_0xd9ff('0xd')](_0xd9ff('0x2f'),_0x1c2a16['id']));return sentiment(_0xaaf7af[_0xd9ff('0xf')],_0xaaf7af[_0xd9ff('0x2d')],_0x47d842[_0xd9ff('0x24')],_0x128588[_0xd9ff('0x13')],_0x47d842[_0xd9ff('0x25')]);})[_0xd9ff('0x1d')](function(_0x34e9a9){logger[_0xd9ff('0xc')](util[_0xd9ff('0xd')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x1c2a16['id']));return _0x1c2a16[_0xd9ff('0x1c')]({'sentiment':_0x34e9a9[_0xd9ff('0x30')],'sPositive':_0x34e9a9[_0xd9ff('0x31')]['Positive'],'sNegative':_0x34e9a9[_0xd9ff('0x31')]['Negative'],'sMixed':_0x34e9a9[_0xd9ff('0x31')]['Mixed'],'sNeutral':_0x34e9a9[_0xd9ff('0x31')]['Neutral']});})[_0xd9ff('0x1d')](function(){logger[_0xd9ff('0xc')](util[_0xd9ff('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x1c2a16['id']));_0x16a0d9();});case'FAILED':return _0x1c2a16['update']({'transcribeStatus':_0xd9ff('0x32'),'failureReason':_0x547e28[_0xd9ff('0x11')][_0xd9ff('0x33')]})[_0xd9ff('0x1d')](function(){logger[_0xd9ff('0xc')](util[_0xd9ff('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x1c2a16['id']));_0x16a0d9();});default:logger['info'](util['format'](_0xd9ff('0x34'),_0x1c2a16['id']));break;}}else{return BPromise[_0xd9ff('0x35')]()[_0xd9ff('0x1d')](function(){if(!_0x1c2a16[_0xd9ff('0x1f')]){throw new db['Sequelize'][(_0xd9ff('0x27'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x47d842[_0xd9ff('0x22')]||!_0x47d842[_0xd9ff('0x23')]||!_0x47d842[_0xd9ff('0x24')]||!_0x47d842[_0xd9ff('0x25')]||!_0x47d842['bucket']){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x1c2a16[_0xd9ff('0x13')]){throw new Error(_0xd9ff('0x29'));}if(_0x47d842[_0xd9ff('0x23')]===_0x47b0d7['id']){return _0x47b0d7;}else{return db[_0xd9ff('0x2a')][_0xd9ff('0x2b')]({'where':{'id':_settings[_0xd9ff('0x23')]}});}})['then'](function(_0x294c89){if(!_0x294c89){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))](_0xd9ff('0x2c'));}if(!_0x294c89[_0xd9ff('0xf')]||!_0x294c89['data2']){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))](_0xd9ff('0x2e'));}_0xaaf7af=_0x294c89;logger['info'](util['format'](_0xd9ff('0x2f'),_0x1c2a16['id']));return sentiment(_0xaaf7af[_0xd9ff('0xf')],_0xaaf7af[_0xd9ff('0x2d')],_0x47d842[_0xd9ff('0x24')],_0x1c2a16[_0xd9ff('0x13')],_0x47d842[_0xd9ff('0x25')]);})['then'](function(_0xd64585){logger[_0xd9ff('0xc')](util['format'](_0xd9ff('0x36'),_0x1c2a16['id']));return _0x1c2a16[_0xd9ff('0x1c')]({'sentiment':_0xd64585[_0xd9ff('0x30')],'sPositive':_0xd64585[_0xd9ff('0x31')][_0xd9ff('0x37')],'sNegative':_0xd64585['SentimentScore']['Negative'],'sMixed':_0xd64585['SentimentScore'][_0xd9ff('0x38')],'sNeutral':_0xd64585['SentimentScore'][_0xd9ff('0x39')],'transcribeStatus':_0xd9ff('0x14')});})[_0xd9ff('0x1d')](function(){logger['info'](util[_0xd9ff('0xd')](_0xd9ff('0x1e'),_0x1c2a16['id']));_0x16a0d9();});}})['catch'](function(_0x5be7cf){if(_0x5be7cf){if(!_0x5be7cf[_0xd9ff('0x3a')]||_0x5be7cf[_0xd9ff('0x3a')]!==_0xd9ff('0x3b')){logger['error'](util[_0xd9ff('0xd')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0x1c2a16['id']),util[_0xd9ff('0x3c')](_0x5be7cf,{'showHidden':![],'depth':null}));}}_0x16a0d9();});});}function checkTranscribe(){var _0x4dc0ae;var _0x450ca1;var _0x3d91e6;return db[_0xd9ff('0x3d')][_0xd9ff('0x3e')]({'where':{'transcribeStatus':_0xd9ff('0x3f')}})['then'](function(_0x2d5237){if(!_0x2d5237||!_0x2d5237[_0xd9ff('0x40')]){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))]('No\x20transcribe\x20job\x20to\x20check');}_0x4dc0ae=_0x2d5237;return db['Setting']['findOne']({'where':{'id':0x1}});})[_0xd9ff('0x1d')](function(_0x40be56){if(!_0x40be56){throw new db[(_0xd9ff('0x20'))]['ValidationError'](_0xd9ff('0x41'));}_0x450ca1=_0x40be56;if(!_0x450ca1[_0xd9ff('0x6')]||!_0x450ca1[_0xd9ff('0x42')]||!_0x450ca1[_0xd9ff('0x10')]||!_0x450ca1[_0xd9ff('0x25')]||!_0x450ca1[_0xd9ff('0x26')]){throw new db[(_0xd9ff('0x20'))][(_0xd9ff('0x27'))](_0xd9ff('0x43'));}return db[_0xd9ff('0x2a')][_0xd9ff('0x2b')]({'where':{'id':_0x450ca1[_0xd9ff('0x42')]}});})[_0xd9ff('0x1d')](function(_0x487b07){if(!_0x487b07){throw new db[(_0xd9ff('0x20'))]['ValidationError'](_0xd9ff('0x2c'));}if(!_0x487b07['data1']||!_0x487b07[_0xd9ff('0x2d')]){throw new db['Sequelize'][(_0xd9ff('0x27'))]('Cloud\x20Provider\x20not\x20configured');}_0x3d91e6=_0x487b07;var _0x3aea70=[];_0x4dc0ae['forEach'](function(_0x3fbeda){_0x3aea70['push'](checkTranscribeJob(_0x3fbeda,_0x450ca1,_0x3d91e6));});return BPromise[_0xd9ff('0x44')](_0x3aea70);})['catch'](function(_0x3eb87b){if(_0x3eb87b){if(!_0x3eb87b[_0xd9ff('0x3a')]||_0x3eb87b[_0xd9ff('0x3a')]!==_0xd9ff('0x3b')){logger['error'](util[_0xd9ff('0x3c')](_0x3eb87b,{'showHidden':![],'depth':null}));}}});}exports[_0xd9ff('0x45')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
+var _0xeea4=['then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','fileText','COMPLETED','Transcript','TranscriptFileUri','[RECORDING:%d]\x20Get\x20transcript','transcripts','results','length','transcript','update','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','tempSentiment','Sequelize','sentiment','sentimentAccountId','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','findOne','ValidationError','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','Sentiment','Positive','SentimentScore','Negative','Mixed','FAILED','FailureReason','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','sentimentRegion','language','Cloud\x20Provider\x20not\x20available','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','catch','SequelizeValidationError','error','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Settings\x20not\x20available','transcribeAccountId','transcribeRegion','bucket','forEach','push','all','name','start','lodash','aws-sdk','request-promise','util','bluebird','../../mysqldb','../../config/logger','transcribe','getTranscriptionJob','Comprehend','detectSentiment','substring','info','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','data2'];(function(_0x3160be,_0x4d4a92){var _0x4b9ca8=function(_0x8930a2){while(--_0x8930a2){_0x3160be['push'](_0x3160be['shift']());}};_0x4b9ca8(++_0x4d4a92);}(_0xeea4,0x19e));var _0x4eea=function(_0xb1356,_0x2e4b5b){_0xb1356=_0xb1356-0x0;var _0x1ecb3c=_0xeea4[_0xb1356];return _0x1ecb3c;};var _=require(_0x4eea('0x0'));var AWS=require(_0x4eea('0x1'));var rp=require(_0x4eea('0x2'));var util=require(_0x4eea('0x3'));var BPromise=require(_0x4eea('0x4'));var db=require(_0x4eea('0x5'))['db'];var logger=require(_0x4eea('0x6'))(_0x4eea('0x7'));function getTranscriptionJob(_0x27997a,_0x5c02db,_0x399e8b,_0x54136a){return new Promise(function(_0x2df4ae,_0x383566){var _0x3d5aa8=new AWS['TranscribeService']({'accessKeyId':_0x5c02db,'secretAccessKey':_0x27997a,'region':_0x399e8b});_0x3d5aa8[_0x4eea('0x8')]({'TranscriptionJobName':_0x54136a},function(_0x44116a,_0x4cc630){if(_0x44116a){return _0x383566(_0x44116a);}else{return _0x2df4ae(_0x4cc630);}});});}function sentiment(_0x9ccc45,_0x3e2b87,_0x2bba91,_0x411654,_0x5b3147){return new Promise(function(_0xe54f2f,_0x2c4038){var _0x136d51=new AWS[(_0x4eea('0x9'))]({'accessKeyId':_0x3e2b87,'secretAccessKey':_0x9ccc45,'region':_0x2bba91});_0x136d51[_0x4eea('0xa')]({'Text':_0x411654,'LanguageCode':_0x5b3147[_0x4eea('0xb')](0x0,0x2)},function(_0x35dcab,_0x1a84fb){if(_0x35dcab){return _0x2c4038(_0x35dcab);}else{return _0xe54f2f(_0x1a84fb);}});});}function checkTranscribeJob(_0x9648cb,_0x130507,_0x47b971){var _0x54fa8c;return new BPromise(function(_0x3db69c,_0x862b96){logger[_0x4eea('0xc')](util[_0x4eea('0xd')](_0x4eea('0xe'),_0x9648cb['id'],_0x9648cb[_0x4eea('0xf')]));return getTranscriptionJob(_0x47b971[_0x4eea('0x10')],_0x47b971[_0x4eea('0x11')],_0x130507['transcribeRegion'],_0x9648cb[_0x4eea('0xf')])[_0x4eea('0x12')](function(_0x150d60){logger[_0x4eea('0xc')](util['format'](_0x4eea('0x13'),_0x9648cb['id'],_0x9648cb[_0x4eea('0xf')],_0x150d60[_0x4eea('0x14')][_0x4eea('0x15')]));if(!_0x9648cb[_0x4eea('0x16')]){switch(_0x150d60['TranscriptionJob'][_0x4eea('0x15')]){case _0x4eea('0x17'):var _0x4cb07b={'transcribeStatus':_0x150d60[_0x4eea('0x14')][_0x4eea('0x15')],'fileUri':_0x150d60[_0x4eea('0x14')][_0x4eea('0x18')][_0x4eea('0x19')]};logger[_0x4eea('0xc')](util['format'](_0x4eea('0x1a'),_0x9648cb['id']));return rp({'uri':_0x150d60[_0x4eea('0x14')][_0x4eea('0x18')][_0x4eea('0x19')],'json':!![]})[_0x4eea('0x12')](function(_0x496ab6){logger['info'](util[_0x4eea('0xd')]('[RECORDING:%d]\x20Transcript\x20downloaded',_0x9648cb['id']));if(_0x496ab6&&_0x496ab6['results']&&_0x496ab6['results'][_0x4eea('0x1b')]&&_0x496ab6[_0x4eea('0x1c')]['transcripts'][_0x4eea('0x1d')]){_0x4cb07b['fileText']='';for(var _0x3f0a2c=0x0;_0x3f0a2c<_0x496ab6['results'][_0x4eea('0x1b')]['length'];_0x3f0a2c++){_0x4cb07b[_0x4eea('0x16')]+=_0x496ab6[_0x4eea('0x1c')][_0x4eea('0x1b')][_0x3f0a2c][_0x4eea('0x1e')]+'';}}return _0x9648cb[_0x4eea('0x1f')](_0x4cb07b);})[_0x4eea('0x12')](function(){logger[_0x4eea('0xc')](util[_0x4eea('0xd')](_0x4eea('0x20'),_0x9648cb['id']));if(!_0x9648cb[_0x4eea('0x21')]){throw new db[(_0x4eea('0x22'))]['ValidationError']('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x130507[_0x4eea('0x23')]||!_0x130507[_0x4eea('0x24')]||!_0x130507['sentimentRegion']||!_0x130507['language']||!_0x130507['bucket']){throw new db[(_0x4eea('0x22'))]['ValidationError'](_0x4eea('0x25'));}if(!_0x4cb07b[_0x4eea('0x16')]){throw new Error(_0x4eea('0x26'));}if(_0x130507['sentimentAccountId']===_0x47b971['id']){return _0x47b971;}else{return db[_0x4eea('0x27')][_0x4eea('0x28')]({'where':{'id':_settings[_0x4eea('0x24')]}});}})['then'](function(_0x1751ce){if(!_0x1751ce){throw new db[(_0x4eea('0x22'))][(_0x4eea('0x29'))]('Cloud\x20Provider\x20not\x20available');}if(!_0x1751ce['data1']||!_0x1751ce[_0x4eea('0x11')]){throw new db[(_0x4eea('0x22'))]['ValidationError'](_0x4eea('0x2a'));}_0x54fa8c=_0x1751ce;logger[_0x4eea('0xc')](util[_0x4eea('0xd')](_0x4eea('0x2b'),_0x9648cb['id']));return sentiment(_0x54fa8c['data1'],_0x54fa8c[_0x4eea('0x11')],_0x130507['sentimentRegion'],_0x4cb07b[_0x4eea('0x16')],_0x130507['language']);})[_0x4eea('0x12')](function(_0x345c41){logger['info'](util[_0x4eea('0xd')]('[RECORDING:%d]\x20Sentiment\x20Analysis\x20available',_0x9648cb['id']));return _0x9648cb[_0x4eea('0x1f')]({'sentiment':_0x345c41[_0x4eea('0x2c')],'sPositive':_0x345c41['SentimentScore'][_0x4eea('0x2d')],'sNegative':_0x345c41[_0x4eea('0x2e')][_0x4eea('0x2f')],'sMixed':_0x345c41['SentimentScore'][_0x4eea('0x30')],'sNeutral':_0x345c41['SentimentScore']['Neutral']});})[_0x4eea('0x12')](function(){logger[_0x4eea('0xc')](util[_0x4eea('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x9648cb['id']));_0x3db69c();});case'FAILED':return _0x9648cb[_0x4eea('0x1f')]({'transcribeStatus':_0x4eea('0x31'),'failureReason':_0x150d60[_0x4eea('0x14')][_0x4eea('0x32')]})[_0x4eea('0x12')](function(){logger['info'](util[_0x4eea('0xd')](_0x4eea('0x20'),_0x9648cb['id']));_0x3db69c();});default:logger[_0x4eea('0xc')](util[_0x4eea('0xd')](_0x4eea('0x33'),_0x9648cb['id']));break;}}else{return BPromise[_0x4eea('0x34')]()[_0x4eea('0x12')](function(){if(!_0x9648cb[_0x4eea('0x21')]){throw new db[(_0x4eea('0x22'))][(_0x4eea('0x29'))]('Sentiment\x20Analysis\x20not\x20requested');}if(!_0x130507[_0x4eea('0x23')]||!_0x130507[_0x4eea('0x24')]||!_0x130507[_0x4eea('0x35')]||!_0x130507[_0x4eea('0x36')]||!_0x130507['bucket']){throw new db['Sequelize'][(_0x4eea('0x29'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x9648cb[_0x4eea('0x16')]){throw new Error('Transcript\x20not\x20available');}if(_0x130507[_0x4eea('0x24')]===_0x47b971['id']){return _0x47b971;}else{return db[_0x4eea('0x27')][_0x4eea('0x28')]({'where':{'id':_settings[_0x4eea('0x24')]}});}})[_0x4eea('0x12')](function(_0x43ad3f){if(!_0x43ad3f){throw new db['Sequelize']['ValidationError'](_0x4eea('0x37'));}if(!_0x43ad3f[_0x4eea('0x10')]||!_0x43ad3f[_0x4eea('0x11')]){throw new db[(_0x4eea('0x22'))][(_0x4eea('0x29'))](_0x4eea('0x2a'));}_0x54fa8c=_0x43ad3f;logger[_0x4eea('0xc')](util[_0x4eea('0xd')](_0x4eea('0x2b'),_0x9648cb['id']));return sentiment(_0x54fa8c[_0x4eea('0x10')],_0x54fa8c[_0x4eea('0x11')],_0x130507[_0x4eea('0x35')],_0x9648cb[_0x4eea('0x16')],_0x130507['language']);})[_0x4eea('0x12')](function(_0x3cf233){logger[_0x4eea('0xc')](util[_0x4eea('0xd')](_0x4eea('0x38'),_0x9648cb['id']));return _0x9648cb[_0x4eea('0x1f')]({'sentiment':_0x3cf233[_0x4eea('0x2c')],'sPositive':_0x3cf233[_0x4eea('0x2e')][_0x4eea('0x2d')],'sNegative':_0x3cf233[_0x4eea('0x2e')]['Negative'],'sMixed':_0x3cf233['SentimentScore'][_0x4eea('0x30')],'sNeutral':_0x3cf233[_0x4eea('0x2e')]['Neutral'],'transcribeStatus':_0x4eea('0x17')});})[_0x4eea('0x12')](function(){logger[_0x4eea('0xc')](util[_0x4eea('0xd')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x9648cb['id']));_0x3db69c();});}})[_0x4eea('0x39')](function(_0x131f0e){if(_0x131f0e){if(!_0x131f0e['name']||_0x131f0e['name']!==_0x4eea('0x3a')){logger[_0x4eea('0x3b')](util[_0x4eea('0xd')]('[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis',_0x9648cb['id']),util['inspect'](_0x131f0e,{'showHidden':![],'depth':null}));}}_0x3db69c();});});}function checkTranscribe(){var _0x37fc67;var _0x18908a;var _0xf9473c;return db['VoiceRecording'][_0x4eea('0x3c')]({'where':{'transcribeStatus':_0x4eea('0x3d')}})[_0x4eea('0x12')](function(_0x4b6535){if(!_0x4b6535||!_0x4b6535[_0x4eea('0x1d')]){throw new db[(_0x4eea('0x22'))]['ValidationError'](_0x4eea('0x3e'));}_0x37fc67=_0x4b6535;return db['Setting'][_0x4eea('0x28')]({'where':{'id':0x1}});})[_0x4eea('0x12')](function(_0x771590){if(!_0x771590){throw new db[(_0x4eea('0x22'))]['ValidationError'](_0x4eea('0x3f'));}_0x18908a=_0x771590;if(!_0x18908a[_0x4eea('0x7')]||!_0x18908a[_0x4eea('0x40')]||!_0x18908a[_0x4eea('0x41')]||!_0x18908a[_0x4eea('0x36')]||!_0x18908a[_0x4eea('0x42')]){throw new db['Sequelize']['ValidationError']('Transcribe\x20not\x20configured');}return db[_0x4eea('0x27')][_0x4eea('0x28')]({'where':{'id':_0x18908a[_0x4eea('0x40')]}});})[_0x4eea('0x12')](function(_0x47ab65){if(!_0x47ab65){throw new db['Sequelize'][(_0x4eea('0x29'))](_0x4eea('0x37'));}if(!_0x47ab65[_0x4eea('0x10')]||!_0x47ab65[_0x4eea('0x11')]){throw new db[(_0x4eea('0x22'))][(_0x4eea('0x29'))](_0x4eea('0x2a'));}_0xf9473c=_0x47ab65;var _0x16158d=[];_0x37fc67[_0x4eea('0x43')](function(_0x318685){_0x16158d[_0x4eea('0x44')](checkTranscribeJob(_0x318685,_0x18908a,_0xf9473c));});return BPromise[_0x4eea('0x45')](_0x16158d);})[_0x4eea('0x39')](function(_0x284b41){if(_0x284b41){if(!_0x284b41[_0x4eea('0x46')]||_0x284b41[_0x4eea('0x46')]!==_0x4eea('0x3a')){logger[_0x4eea('0x3b')](util['inspect'](_0x284b41,{'showHidden':![],'depth':null}));}}});}exports[_0x4eea('0x47')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x87e6=['info','[WHATSAPP]\x20Interactions\x20to\x20close:','join','WhatsappInteraction','timeout','YYYY-MM-DD\x20HH:mm:ss','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','emit','catch','[WHATSAPP]\x20Error\x20closing\x20interactions','start','lodash','moment','ioredis','util','../../config/environment','../../mysqldb','../logger','redis','defaults','socket.io-emitter','lastMsgAt','subtract','hours','then','length','map'];(function(_0x58d70f,_0x595194){var _0x198cc8=function(_0x1da6e3){while(--_0x1da6e3){_0x58d70f['push'](_0x58d70f['shift']());}};_0x198cc8(++_0x595194);}(_0x87e6,0x1bb));var _0x687e=function(_0x930a96,_0x4d299f){_0x930a96=_0x930a96-0x0;var _0x2cdb29=_0x87e6[_0x930a96];return _0x2cdb29;};'use strict';var _=require(_0x687e('0x0'));var moment=require(_0x687e('0x1'));var Redis=require(_0x687e('0x2'));var util=require(_0x687e('0x3'));var config=require(_0x687e('0x4'));var db=require(_0x687e('0x5'))['db'];var logger=require(_0x687e('0x6'))('schedule');config[_0x687e('0x7')]=_[_0x687e('0x8')](config[_0x687e('0x7')],{'host':'localhost','port':0x18eb});var io=require(_0x687e('0x9'))(new Redis(config[_0x687e('0x7')]));function closeInteractions(){var _0x32fd86=[];return db['WhatsappInteraction']['findAll']({'raw':!![],'attributes':['id',_0x687e('0xa')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0x687e('0xb')](0x18,_0x687e('0xc'))}}})[_0x687e('0xd')](function(_0x3bba0d){if(_0x3bba0d&&_0x3bba0d[_0x687e('0xe')]){_0x32fd86=_[_0x687e('0xf')](_0x3bba0d||[],'id');logger[_0x687e('0x10')](_0x687e('0x11'),_0x32fd86[_0x687e('0x12')]());return db[_0x687e('0x13')]['update']({'closeReason':'system','disposition':_0x687e('0x14'),'closed':!![],'closedAt':moment()['format'](_0x687e('0x15'))},{'where':{'id':_0x32fd86}});}})[_0x687e('0xd')](function(){if(_0x32fd86&&_0x32fd86[_0x687e('0xe')]){logger[_0x687e('0x10')](_0x687e('0x16'),_0x32fd86[_0x687e('0x12')]());for(var _0x4c3541=0x0;_0x4c3541<_0x32fd86['length'];_0x4c3541++){io[_0x687e('0x17')]('whatsappInteraction:update',{'id':_0x32fd86[_0x4c3541],'closed':!![]});}}})[_0x687e('0x18')](function(_0x4c0410){logger['error'](_0x687e('0x19'),_0x4c0410?util['inspect'](_0x4c0410,{'showHidden':![],'depth':null}):'');});}exports[_0x687e('0x1a')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x157e=['info','timeout','format','YYYY-MM-DD\x20HH:mm:ss','length','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','join','emit','whatsappInteraction:update','catch','error','[WHATSAPP]\x20Error\x20closing\x20interactions','moment','ioredis','util','../../config/environment','../logger','schedule','redis','WhatsappInteraction','subtract','hours','then','map'];(function(_0x4218b3,_0x1ddda5){var _0x50918f=function(_0x2402a2){while(--_0x2402a2){_0x4218b3['push'](_0x4218b3['shift']());}};_0x50918f(++_0x1ddda5);}(_0x157e,0x1d4));var _0xe157=function(_0x4072d0,_0x2c84bd){_0x4072d0=_0x4072d0-0x0;var _0x2fc971=_0x157e[_0x4072d0];return _0x2fc971;};'use strict';var _=require('lodash');var moment=require(_0xe157('0x0'));var Redis=require(_0xe157('0x1'));var util=require(_0xe157('0x2'));var config=require(_0xe157('0x3'));var db=require('../../mysqldb')['db'];var logger=require(_0xe157('0x4'))(_0xe157('0x5'));config[_0xe157('0x6')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xe157('0x6')]));function closeInteractions(){var _0x3d745d=[];return db[_0xe157('0x7')]['findAll']({'raw':!![],'attributes':['id','lastMsgAt'],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0xe157('0x8')](0x18,_0xe157('0x9'))}}})[_0xe157('0xa')](function(_0x52c41a){if(_0x52c41a&&_0x52c41a['length']){_0x3d745d=_[_0xe157('0xb')](_0x52c41a||[],'id');logger[_0xe157('0xc')]('[WHATSAPP]\x20Interactions\x20to\x20close:',_0x3d745d['join']());return db['WhatsappInteraction']['update']({'closeReason':'system','disposition':_0xe157('0xd'),'closed':!![],'closedAt':moment()[_0xe157('0xe')](_0xe157('0xf'))},{'where':{'id':_0x3d745d}});}})[_0xe157('0xa')](function(){if(_0x3d745d&&_0x3d745d[_0xe157('0x10')]){logger[_0xe157('0xc')](_0xe157('0x11'),_0x3d745d[_0xe157('0x12')]());for(var _0x5bf607=0x0;_0x5bf607<_0x3d745d['length'];_0x5bf607++){io[_0xe157('0x13')](_0xe157('0x14'),{'id':_0x3d745d[_0x5bf607],'closed':!![]});}}})[_0xe157('0x15')](function(_0xa55e3e){logger[_0xe157('0x16')](_0xe157('0x17'),_0xa55e3e?util['inspect'](_0xa55e3e,{'showHidden':![],'depth':null}):'');});}exports['start']=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa935=['contacts1','CmHopper','hopper1','contacts2','hopper2','catch','util','../mysqldb','push','Biondo','@xcally.com','now','innocenzo.biondo','CmContact','destroy','bulkCreate','then','log','finished\x20populating'];(function(_0x2b54e6,_0x550dd5){var _0x5d6d02=function(_0x1f551e){while(--_0x1f551e){_0x2b54e6['push'](_0x2b54e6['shift']());}};_0x5d6d02(++_0x550dd5);}(_0xa935,0x182));var _0x5a93=function(_0x2c9e54,_0x178247){_0x2c9e54=_0x2c9e54-0x0;var _0x25d074=_0xa935[_0x2c9e54];return _0x25d074;};'use strict';var util=require(_0x5a93('0x0'));var db=require(_0x5a93('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x5a93('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':_0x5a93('0x3')+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+_0x5a93('0x4')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x5a93('0x2')]({'id':i,'active':![],'scheduledat':Date[_0x5a93('0x5')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x5a93('0x5')](),'updatedAt':Date[_0x5a93('0x5')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0x5a93('0x2')]({'id':i,'firstName':'Innocenzo'+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0x5a93('0x6')+i+_0x5a93('0x4')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0x5a93('0x2')]({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0x5a93('0x5')]()});}db[_0x5a93('0x7')][_0x5a93('0x8')]({'where':{}})['then'](function(){return db[_0x5a93('0x7')][_0x5a93('0x9')](contacts);})[_0x5a93('0xa')](function(){console[_0x5a93('0xb')](_0x5a93('0xc'),_0x5a93('0xd'));return db[_0x5a93('0xe')][_0x5a93('0x8')]({'where':{}});})[_0x5a93('0xa')](function(){return db['CmHopper']['bulkCreate'](hopper);})['then'](function(){console[_0x5a93('0xb')]('finished\x20populating',_0x5a93('0xf'));return db[_0x5a93('0x7')][_0x5a93('0x9')](contacts2);})[_0x5a93('0xa')](function(){console['log'](_0x5a93('0xc'),_0x5a93('0x10'));return db['CmHopper'][_0x5a93('0x9')](hopper2);})[_0x5a93('0xa')](function(){console['log'](_0x5a93('0xc'),_0x5a93('0x11'));})[_0x5a93('0x12')](function(_0x3d98e5){console[_0x5a93('0xb')](_0x3d98e5);});
\ No newline at end of file
+var _0xeb59=['log','contacts2','hopper2','catch','push','Biondo','innocenzo.biondo','@xcally.com','now','Innocenzo','CmContact','destroy','then','finished\x20populating','contacts1','CmHopper','bulkCreate'];(function(_0x503950,_0x5022eb){var _0x1657a9=function(_0x4c1e8f){while(--_0x4c1e8f){_0x503950['push'](_0x503950['shift']());}};_0x1657a9(++_0x5022eb);}(_0xeb59,0x169));var _0x9eb5=function(_0x81e39d,_0x4c3934){_0x81e39d=_0x81e39d-0x0;var _0x548fbb=_0xeb59[_0x81e39d];return _0x548fbb;};'use strict';var util=require('util');var db=require('../mysqldb')['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0x9eb5('0x0')]({'id':i,'firstName':'Innocenzo'+i,'lastName':_0x9eb5('0x1')+i,'phone':0xf879fb460+i,'email':_0x9eb5('0x2')+i+_0x9eb5('0x3')});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0x9eb5('0x0')]({'id':i,'active':![],'scheduledat':Date[_0x9eb5('0x4')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0x9eb5('0x4')](),'updatedAt':Date[_0x9eb5('0x4')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2['push']({'id':i,'firstName':_0x9eb5('0x5')+i,'lastName':_0x9eb5('0x1')+i,'phone':0xf879fb460+i,'email':_0x9eb5('0x2')+i+_0x9eb5('0x3')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2['push']({'id':i,'active':![],'scheduledat':Date['now'](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0x9eb5('0x4')]()});}db[_0x9eb5('0x6')][_0x9eb5('0x7')]({'where':{}})[_0x9eb5('0x8')](function(){return db['CmContact']['bulkCreate'](contacts);})[_0x9eb5('0x8')](function(){console['log'](_0x9eb5('0x9'),_0x9eb5('0xa'));return db[_0x9eb5('0xb')][_0x9eb5('0x7')]({'where':{}});})[_0x9eb5('0x8')](function(){return db[_0x9eb5('0xb')][_0x9eb5('0xc')](hopper);})[_0x9eb5('0x8')](function(){console[_0x9eb5('0xd')](_0x9eb5('0x9'),'hopper1');return db[_0x9eb5('0x6')]['bulkCreate'](contacts2);})[_0x9eb5('0x8')](function(){console['log'](_0x9eb5('0x9'),_0x9eb5('0xe'));return db[_0x9eb5('0xb')][_0x9eb5('0xc')](hopper2);})[_0x9eb5('0x8')](function(){console[_0x9eb5('0xd')]('finished\x20populating',_0x9eb5('0xf'));})[_0x9eb5('0x10')](function(_0x1e9906){console[_0x9eb5('0xd')](_0x1e9906);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x780f=['friend','udp','ulaw','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','User','then','log','add\x20user','catch','util','../mysqldb','format','%s%s','agent','%s%s@xcally.com','password'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x780f,0xa4));var _0xf780=function(_0x3e91a9,_0x53c466){_0x3e91a9=_0x3e91a9-0x0;var _0x25c9ad=_0x780f[_0x3e91a9];return _0x25c9ad;};'use strict';var util=require(_0xf780('0x0'));var db=require(_0xf780('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users['push']({'name':util[_0xf780('0x2')](_0xf780('0x3'),_0xf780('0x4'),i),'fullname':util[_0xf780('0x2')]('%s%s','agent',i),'email':util[_0xf780('0x2')](_0xf780('0x5'),_0xf780('0x4'),i),'role':_0xf780('0x4'),'password':_0xf780('0x6'),'internal':0xfa0+i,'type':_0xf780('0x7'),'transport':[_0xf780('0x8'),'ws','wss'],'disallow':['all'],'allow':[_0xf780('0x9')],'defaultuser':util[_0xf780('0x2')](_0xf780('0x3'),'agent',i),'encryption':_0xf780('0xa'),'avpf':_0xf780('0xa'),'force_avp':_0xf780('0xa'),'icesupport':_0xf780('0xa'),'dtlsenable':'yes','dtlsverify':'no','dtlscertfile':_0xf780('0xb'),'dtlsprivatekey':_0xf780('0xc'),'dtlssetup':_0xf780('0xd'),'callerid':util[_0xf780('0x2')]('\x22%s\x22\x20<%s>',util['format'](_0xf780('0x3'),_0xf780('0x4'),i),0xfa0+i)});}db[_0xf780('0xe')]['bulkCreate'](users)[_0xf780('0xf')](function(){console[_0xf780('0x10')](_0xf780('0x11'));})[_0xf780('0x12')](function(_0x2de752){console[_0xf780('0x10')](_0x2de752);});
\ No newline at end of file
+var _0xae8d=['bulkCreate','then','log','catch','../mysqldb','push','%s%s','agent','format','%s%s@xcally.com','password','friend','udp','wss','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','User'];(function(_0x1fa48e,_0x9d8448){var _0x5cc93f=function(_0x221980){while(--_0x221980){_0x1fa48e['push'](_0x1fa48e['shift']());}};_0x5cc93f(++_0x9d8448);}(_0xae8d,0x1d0));var _0xdae8=function(_0x2348fd,_0x5d137c){_0x2348fd=_0x2348fd-0x0;var _0x17cc9b=_0xae8d[_0x2348fd];return _0x17cc9b;};'use strict';var util=require('util');var db=require(_0xdae8('0x0'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0xdae8('0x1')]({'name':util['format'](_0xdae8('0x2'),_0xdae8('0x3'),i),'fullname':util['format'](_0xdae8('0x2'),'agent',i),'email':util[_0xdae8('0x4')](_0xdae8('0x5'),_0xdae8('0x3'),i),'role':_0xdae8('0x3'),'password':_0xdae8('0x6'),'internal':0xfa0+i,'type':_0xdae8('0x7'),'transport':[_0xdae8('0x8'),'ws',_0xdae8('0x9')],'disallow':['all'],'allow':['ulaw'],'defaultuser':util['format'](_0xdae8('0x2'),_0xdae8('0x3'),i),'encryption':'yes','avpf':'yes','force_avp':'yes','icesupport':_0xdae8('0xa'),'dtlsenable':_0xdae8('0xa'),'dtlsverify':'no','dtlscertfile':_0xdae8('0xb'),'dtlsprivatekey':_0xdae8('0xc'),'dtlssetup':_0xdae8('0xd'),'callerid':util[_0xdae8('0x4')](_0xdae8('0xe'),util[_0xdae8('0x4')](_0xdae8('0x2'),'agent',i),0xfa0+i)});}db[_0xdae8('0xf')][_0xdae8('0x10')](users)[_0xdae8('0x11')](function(){console[_0xdae8('0x12')]('add\x20user');})[_0xdae8('0x13')](function(_0x37762c){console[_0xdae8('0x12')](_0x37762c);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc953=['Trunks','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getWhatsappQueues','length','voice','chat','fax','sms','whatsapp','campaign:%s:%s','leave','user_has_chat_interactions:remove','removeMailInteractions','emit','removeFaxInteractions','user_has_fax_interactions:remove','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','default','connection','setMaxListeners','address','request','remoteAddress','remotePort','connectedAt','SocketIO\x20','nsp','DISCONNECTED','CONNECTED','lodash','util','bluebird','name','Agents','User','role','agent','telephone','type','ivr','findOne','then','autoAssociation','VoiceQueues','ChatQueues','FaxQueues','MailQueues','WhatsappQueues','findAll','Telephones','IvrCampaigns','UserProfileResource','map','where','format','%s:queue:%s','user:%s','handshake','query','find','userProfileId','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','FaxInteractions','SmsInteraction','SmsInteractions','OpenchannelInteractions','WhatsappInteractions','admin','voice:inbound','voice:outbound','hasOwnProperty','include','push','VoiceQueue','FaxQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','Campaign','user','ChatQueue','SmsQueues','SmsQueue'];(function(_0xfe8a5b,_0x1bc1fb){var _0x407b0a=function(_0x72b694){while(--_0x72b694){_0xfe8a5b['push'](_0xfe8a5b['shift']());}};_0x407b0a(++_0x1bc1fb);}(_0xc953,0x84));var _0x3c95=function(_0x49e584,_0x2886f8){_0x49e584=_0x49e584-0x0;var _0x58b1be=_0xc953[_0x49e584];return _0x58b1be;};'use strict';var _=require(_0x3c95('0x0'));var util=require(_0x3c95('0x1'));var BPromise=require(_0x3c95('0x2'));var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0x3c95('0x3')],'include':[{'as':_0x3c95('0x4'),'model':db[_0x3c95('0x5')],'attributes':['id',_0x3c95('0x3'),_0x3c95('0x6')],'raw':!![],'where':{'role':_0x3c95('0x7')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x3c95('0x3')],'where':{'role':_0x3c95('0x8')}};var queryTrunks={'raw':!![],'attributes':['id','name']};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0x3c95('0x7')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x3c95('0x3'),_0x3c95('0x9')],'where':{'type':_0x3c95('0xa')}};function getAssociatedResources(_0x309dbb,_0xc0ef30,_0x51d5c2){return db['UserProfileSection'][_0x3c95('0xb')]({'where':{'name':_0x309dbb,'userProfileId':_0xc0ef30},'raw':!![]})[_0x3c95('0xc')](function(_0xa37eee){if(_0xa37eee){if(_0xa37eee[_0x3c95('0xd')]){switch(_0x309dbb){case _0x3c95('0xe'):case _0x3c95('0xf'):case _0x3c95('0x10'):case'SmsQueues':case _0x3c95('0x11'):case'OpenchannelQueues':case _0x3c95('0x12'):return db[_0x51d5c2][_0x3c95('0x13')](queryQueues);case _0x3c95('0x14'):return db[_0x51d5c2][_0x3c95('0x13')](queryTelephones);case'Trunks':return db[_0x51d5c2][_0x3c95('0x13')](queryTrunks);case _0x3c95('0x15'):return db[_0x51d5c2][_0x3c95('0x13')](queryCampaigns);}}else{return db[_0x3c95('0x16')][_0x3c95('0x13')]({'attributes':['resourceId'],'where':{'sectionId':_0xa37eee['id']},'raw':!![]})[_0x3c95('0xc')](function(_0x1cbe31){if(_0x1cbe31){var _0xf59068={'where':{'id':_[_0x3c95('0x17')](_0x1cbe31,'resourceId')},'raw':!![]};switch(_0x51d5c2){case _0x3c95('0x5'):_0xf59068[_0x3c95('0x18')][_0x3c95('0x6')]=_0x3c95('0x8');break;case'Campaign':_0xf59068[_0x3c95('0x18')][_0x3c95('0x9')]=_0x3c95('0xa');break;}return db[_0x51d5c2][_0x3c95('0x13')](_0xf59068);}else{return[];}});}}else{return[];}})[_0x3c95('0xc')](function(_0x5c4414){return _0x5c4414;});}function joinOrLeaveQueues(_0x4ae205,_0x5f14ca,_0x2a57d3,_0xd8e550){_0x4ae205[_0x5f14ca](util[_0x3c95('0x19')](_0x3c95('0x1a'),_0x2a57d3,_0xd8e550[_0x3c95('0x3')]));if(_0xd8e550[_0x3c95('0x4')]){for(var _0x4ff909=0x0;_0x4ff909<_0xd8e550['Agents']['length'];_0x4ff909+=0x1){_0x4ae205[_0x5f14ca](util['format'](_0x3c95('0x1b'),_0xd8e550[_0x3c95('0x4')][_0x4ff909]['name']));}}}function joinOrLeave(_0x1c771f,_0x5d8bab,_0x4516e1){var _0x2313ef;if(_0x1c771f[_0x3c95('0x1c')][_0x3c95('0x1d')]['id']){db[_0x3c95('0x5')][_0x3c95('0x1e')]({'attributes':['id',_0x3c95('0x3'),'role',_0x3c95('0x1f')],'where':{'id':_0x1c771f['handshake'][_0x3c95('0x1d')]['id']},'include':[{'model':db['ChatInteraction'],'as':_0x3c95('0x20'),'attributes':['id'],'raw':!![]},{'model':db[_0x3c95('0x21')],'as':_0x3c95('0x22'),'attributes':['id'],'raw':!![]},{'model':db[_0x3c95('0x23')],'as':_0x3c95('0x24'),'attributes':['id'],'raw':!![]},{'model':db[_0x3c95('0x25')],'as':_0x3c95('0x26'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':_0x3c95('0x27'),'attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0x3c95('0x28'),'attributes':['id'],'raw':!![]}]})['then'](function(_0x8e1a87){if(_0x8e1a87){_0x2313ef=_0x8e1a87;_0x1c771f[_0x5d8bab](util[_0x3c95('0x19')]('user:%s',_0x8e1a87[_0x3c95('0x3')]));var _0x2c0202=[];switch(_0x8e1a87[_0x3c95('0x6')]){case _0x3c95('0x29'):_0x1c771f[_0x5d8bab](_0x3c95('0x2a'));_0x1c771f[_0x5d8bab](_0x3c95('0x2b'));if(queryQueues[_0x3c95('0x2c')](_0x3c95('0x2d'))){delete queryQueues[_0x3c95('0x2d')];}_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x2f')]['findAll'](queryQueues));_0x2c0202['push'](db['ChatQueue'][_0x3c95('0x13')](queryQueues));_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x30')][_0x3c95('0x13')](queryQueues));_0x2c0202[_0x3c95('0x2e')](db['SmsQueue'][_0x3c95('0x13')](queryQueues));_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x31')][_0x3c95('0x13')](queryQueues));_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x32')]['findAll'](queryQueues));_0x2c0202['push'](db[_0x3c95('0x33')][_0x3c95('0x13')](queryQueues));_0x2c0202['push'](db[_0x3c95('0x5')][_0x3c95('0x13')](queryTelephones));_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x34')][_0x3c95('0x13')](queryTrunks));_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x35')]['findAll'](queryCampaigns));_0x2c0202['push'](db[_0x3c95('0x5')][_0x3c95('0x13')](queryAgents));break;case _0x3c95('0x36'):_0x1c771f[_0x5d8bab](_0x3c95('0x2a'));_0x1c771f[_0x5d8bab]('voice:outbound');_0x2c0202[_0x3c95('0x2e')](getAssociatedResources(_0x3c95('0xe'),_0x8e1a87[_0x3c95('0x1f')],'VoiceQueue'));_0x2c0202[_0x3c95('0x2e')](getAssociatedResources(_0x3c95('0xf'),_0x8e1a87['userProfileId'],_0x3c95('0x37')));_0x2c0202[_0x3c95('0x2e')](getAssociatedResources(_0x3c95('0x10'),_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x30')));_0x2c0202[_0x3c95('0x2e')](getAssociatedResources(_0x3c95('0x38'),_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x39')));_0x2c0202['push'](getAssociatedResources(_0x3c95('0x11'),_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x31')));_0x2c0202[_0x3c95('0x2e')](getAssociatedResources('OpenchannelQueues',_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x32')));_0x2c0202['push'](getAssociatedResources(_0x3c95('0x12'),_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x33')));_0x2c0202[_0x3c95('0x2e')](getAssociatedResources(_0x3c95('0x14'),_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x5')));_0x2c0202[_0x3c95('0x2e')](getAssociatedResources(_0x3c95('0x3a'),_0x8e1a87[_0x3c95('0x1f')],_0x3c95('0x34')));_0x2c0202['push'](getAssociatedResources(_0x3c95('0x15'),_0x8e1a87['userProfileId'],_0x3c95('0x35')));_0x2c0202[_0x3c95('0x2e')](db[_0x3c95('0x5')]['findAll'](queryAgents));break;case _0x3c95('0x7'):_0x1c771f[_0x5d8bab](_0x3c95('0x2a'));_0x1c771f[_0x5d8bab]('voice:outbound');_0x2c0202[_0x3c95('0x2e')](_0x8e1a87[_0x3c95('0x3b')]({'attributes':['id',_0x3c95('0x3')]}));_0x2c0202['push'](_0x8e1a87[_0x3c95('0x3c')]({'attributes':['id',_0x3c95('0x3')]}));_0x2c0202[_0x3c95('0x2e')](_0x8e1a87[_0x3c95('0x3d')]({'attributes':['id',_0x3c95('0x3')]}));_0x2c0202[_0x3c95('0x2e')](_0x8e1a87[_0x3c95('0x3e')]({'attributes':['id',_0x3c95('0x3')]}));_0x2c0202['push'](_0x8e1a87[_0x3c95('0x3f')]({'attributes':['id',_0x3c95('0x3')]}));_0x2c0202[_0x3c95('0x2e')](_0x8e1a87['getOpenchannelQueues']({'attributes':['id',_0x3c95('0x3')]}));_0x2c0202[_0x3c95('0x2e')](_0x8e1a87[_0x3c95('0x40')]({'attributes':['id',_0x3c95('0x3')]}));break;}return BPromise['all'](_0x2c0202);}})[_0x3c95('0xc')](function(_0x425fc5){if(_0x425fc5&&_0x425fc5[_0x3c95('0x41')]){for(var _0x49d3a2=0x0;_0x49d3a2<_0x425fc5[_0x3c95('0x41')];_0x49d3a2+=0x1){for(var _0x477953=0x0;_0x477953<_0x425fc5[_0x49d3a2][_0x3c95('0x41')];_0x477953+=0x1){switch(_0x49d3a2){case 0x0:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,_0x3c95('0x42'),_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x1:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,_0x3c95('0x43'),_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x2:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,_0x3c95('0x44'),_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x3:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,_0x3c95('0x45'),_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x4:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,'mail',_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x5:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,'openchannel',_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x6:joinOrLeaveQueues(_0x1c771f,_0x5d8bab,_0x3c95('0x46'),_0x425fc5[_0x49d3a2][_0x477953]);break;case 0x7:if(_0x2313ef[_0x3c95('0x6')]!=='agent')_0x1c771f[_0x5d8bab](util['format']('telephone:%s',_0x425fc5[_0x49d3a2][_0x477953][_0x3c95('0x3')]));break;case 0x8:if(_0x2313ef[_0x3c95('0x6')]!==_0x3c95('0x7'))_0x1c771f[_0x5d8bab](util[_0x3c95('0x19')]('trunk:%s',_0x425fc5[_0x49d3a2][_0x477953]['name']));break;case 0x9:if(_0x2313ef[_0x3c95('0x6')]!==_0x3c95('0x7'))_0x1c771f[_0x5d8bab](util['format'](_0x3c95('0x47'),_0x425fc5[_0x49d3a2][_0x477953]['type'],_0x425fc5[_0x49d3a2][_0x477953][_0x3c95('0x3')]));break;case 0xa:_0x1c771f[_0x5d8bab](util[_0x3c95('0x19')](_0x3c95('0x1b'),_0x425fc5[_0x49d3a2][_0x477953][_0x3c95('0x3')]));break;}}}}})[_0x3c95('0xc')](function(){if(_0x5d8bab===_0x3c95('0x48')){var _0x24e141=_['map'](_0x2313ef[_0x3c95('0x20')],'id');return _0x2313ef['removeChatInteractions'](_0x24e141)[_0x3c95('0xc')](function(){for(var _0x3fd511=0x0;_0x3fd511<_0x24e141[_0x3c95('0x41')];_0x3fd511+=0x1){_0x4516e1['emit'](_0x3c95('0x49'),{'ChatInteractionId':Number(_0x24e141[_0x3fd511]),'UserId':Number(_0x2313ef['id'])});}});}})[_0x3c95('0xc')](function(){if(_0x5d8bab===_0x3c95('0x48')){var _0x3e044b=_[_0x3c95('0x17')](_0x2313ef[_0x3c95('0x22')],'id');return _0x2313ef[_0x3c95('0x4a')](_0x3e044b)[_0x3c95('0xc')](function(){for(var _0x17d751=0x0;_0x17d751<_0x3e044b[_0x3c95('0x41')];_0x17d751+=0x1){_0x4516e1[_0x3c95('0x4b')]('user_has_mail_interactions:remove',{'MailInteractionId':Number(_0x3e044b[_0x17d751]),'UserId':Number(_0x2313ef['id'])});}});}})[_0x3c95('0xc')](function(){if(_0x5d8bab===_0x3c95('0x48')){var _0x32bc98=_[_0x3c95('0x17')](_0x2313ef['FaxInteractions'],'id');return _0x2313ef[_0x3c95('0x4c')](_0x32bc98)[_0x3c95('0xc')](function(){for(var _0x434a2c=0x0;_0x434a2c<_0x32bc98[_0x3c95('0x41')];_0x434a2c+=0x1){_0x4516e1[_0x3c95('0x4b')](_0x3c95('0x4d'),{'FaxInteractionId':Number(_0x32bc98[_0x434a2c]),'UserId':Number(_0x2313ef['id'])});}});}})['then'](function(){if(_0x5d8bab==='leave'){var _0x4bfbfd=_['map'](_0x2313ef[_0x3c95('0x26')],'id');return _0x2313ef['removeSmsInteractions'](_0x4bfbfd)[_0x3c95('0xc')](function(){for(var _0x374a06=0x0;_0x374a06<_0x4bfbfd[_0x3c95('0x41')];_0x374a06+=0x1){_0x4516e1[_0x3c95('0x4b')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x4bfbfd[_0x374a06]),'UserId':Number(_0x2313ef['id'])});}});}})[_0x3c95('0xc')](function(){if(_0x5d8bab==='leave'){var _0xa7ae68=_['map'](_0x2313ef['OpenchannelInteractions'],'id');return _0x2313ef['removeOpenchannelInteractions'](_0xa7ae68)[_0x3c95('0xc')](function(){for(var _0x41bfd4=0x0;_0x41bfd4<_0xa7ae68[_0x3c95('0x41')];_0x41bfd4+=0x1){_0x4516e1['emit'](_0x3c95('0x4e'),{'OpenchannelInteractionId':Number(_0xa7ae68[_0x41bfd4]),'UserId':Number(_0x2313ef['id'])});}});}})[_0x3c95('0xc')](function(){if(_0x5d8bab===_0x3c95('0x48')){var _0x302ea8=_['map'](_0x2313ef[_0x3c95('0x28')],'id');return _0x2313ef[_0x3c95('0x4f')](_0x302ea8)[_0x3c95('0xc')](function(){for(var _0x12a024=0x0;_0x12a024<_0x302ea8['length'];_0x12a024+=0x1){_0x4516e1[_0x3c95('0x4b')](_0x3c95('0x50'),{'WhatsappInteractionId':Number(_0x302ea8[_0x12a024]),'UserId':Number(_0x2313ef['id'])});}});}})[_0x3c95('0x51')](function(_0x51acf7){_0x1c771f[_0x3c95('0x52')](_0x51acf7);});}}function onDisconnect(_0x23ad57,_0x408b71){joinOrLeave(_0x23ad57,'leave',_0x408b71);}function onConnect(_0x226502){joinOrLeave(_0x226502,'join');}exports[_0x3c95('0x53')]=function(_0x513d63){_0x513d63['on'](_0x3c95('0x54'),function(_0x53549e){_0x53549e[_0x3c95('0x55')](0x0);_0x53549e[_0x3c95('0x56')]=_0x53549e[_0x3c95('0x57')][_0x3c95('0x54')][_0x3c95('0x58')]+':'+_0x53549e['request'][_0x3c95('0x54')][_0x3c95('0x59')];_0x53549e[_0x3c95('0x5a')]=new Date();_0x53549e[_0x3c95('0x52')]=function(_0x127557){console[_0x3c95('0x52')](_0x3c95('0x5b')+_0x53549e[_0x3c95('0x5c')]['name']+'['+_0x53549e[_0x3c95('0x56')]+']',_0x127557);};_0x53549e['on']('disconnect',function(){onDisconnect(_0x53549e,_0x513d63);_0x53549e[_0x3c95('0x52')](_0x3c95('0x5d'));});onConnect(_0x53549e);_0x53549e['log'](_0x3c95('0x5e'));});};
\ No newline at end of file
+var _0x8ace=['FaxInteraction','FaxInteractions','SmsInteractions','OpenchannelInteraction','WhatsappInteractions','user:%s','admin','voice:outbound','VoiceQueue','push','ChatQueue','FaxQueue','MailQueue','WhatsappQueue','Trunk','voice:inbound','VoiceQueues','MailQueues','OpenchannelQueue','getVoiceQueues','getChatQueues','getFaxQueues','getSmsQueues','getWhatsappQueues','all','length','chat','fax','sms','openchannel','whatsapp','trunk:%s','campaign:%s:%s','type','leave','removeChatInteractions','emit','user_has_chat_interactions:remove','removeMailInteractions','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','connection','request','remotePort','nsp','address','disconnect','DISCONNECTED','CONNECTED','lodash','util','bluebird','../mysqldb','./environment','name','Agents','User','role','agent','telephone','UserProfileSection','findOne','then','autoAssociation','ChatQueues','FaxQueues','SmsQueues','OpenchannelQueues','WhatsappQueues','Telephones','findAll','Trunks','IvrCampaigns','UserProfileResource','resourceId','map','where','Campaign','format','handshake','find','userProfileId','query','ChatInteraction','ChatInteractions'];(function(_0x4a7631,_0x2c85b9){var _0x1a5a6f=function(_0x1ee3fd){while(--_0x1ee3fd){_0x4a7631['push'](_0x4a7631['shift']());}};_0x1a5a6f(++_0x2c85b9);}(_0x8ace,0x1bc));var _0xe8ac=function(_0x4bb32f,_0x2217e){_0x4bb32f=_0x4bb32f-0x0;var _0x2dd6e6=_0x8ace[_0x4bb32f];return _0x2dd6e6;};'use strict';var _=require(_0xe8ac('0x0'));var util=require(_0xe8ac('0x1'));var BPromise=require(_0xe8ac('0x2'));var db=require(_0xe8ac('0x3'))['db'];var config=require(_0xe8ac('0x4'));var queryQueues={'attributes':['id',_0xe8ac('0x5')],'include':[{'as':_0xe8ac('0x6'),'model':db[_0xe8ac('0x7')],'attributes':['id',_0xe8ac('0x5'),_0xe8ac('0x8')],'raw':!![],'where':{'role':_0xe8ac('0x9')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xe8ac('0x5')],'where':{'role':_0xe8ac('0xa')}};var queryTrunks={'raw':!![],'attributes':['id',_0xe8ac('0x5')]};var queryAgents={'raw':!![],'attributes':['id','name'],'where':{'role':_0xe8ac('0x9')}};var queryCampaigns={'raw':!![],'attributes':['id',_0xe8ac('0x5'),'type'],'where':{'type':'ivr'}};function getAssociatedResources(_0x4644ef,_0x513793,_0x1b5467){return db[_0xe8ac('0xb')][_0xe8ac('0xc')]({'where':{'name':_0x4644ef,'userProfileId':_0x513793},'raw':!![]})[_0xe8ac('0xd')](function(_0xa18ae1){if(_0xa18ae1){if(_0xa18ae1[_0xe8ac('0xe')]){switch(_0x4644ef){case'VoiceQueues':case _0xe8ac('0xf'):case _0xe8ac('0x10'):case _0xe8ac('0x11'):case'MailQueues':case _0xe8ac('0x12'):case _0xe8ac('0x13'):return db[_0x1b5467]['findAll'](queryQueues);case _0xe8ac('0x14'):return db[_0x1b5467][_0xe8ac('0x15')](queryTelephones);case _0xe8ac('0x16'):return db[_0x1b5467][_0xe8ac('0x15')](queryTrunks);case _0xe8ac('0x17'):return db[_0x1b5467][_0xe8ac('0x15')](queryCampaigns);}}else{return db[_0xe8ac('0x18')][_0xe8ac('0x15')]({'attributes':[_0xe8ac('0x19')],'where':{'sectionId':_0xa18ae1['id']},'raw':!![]})[_0xe8ac('0xd')](function(_0x5e4495){if(_0x5e4495){var _0x224bda={'where':{'id':_[_0xe8ac('0x1a')](_0x5e4495,'resourceId')},'raw':!![]};switch(_0x1b5467){case _0xe8ac('0x7'):_0x224bda[_0xe8ac('0x1b')][_0xe8ac('0x8')]=_0xe8ac('0xa');break;case _0xe8ac('0x1c'):_0x224bda[_0xe8ac('0x1b')]['type']='ivr';break;}return db[_0x1b5467]['findAll'](_0x224bda);}else{return[];}});}}else{return[];}})[_0xe8ac('0xd')](function(_0x24a346){return _0x24a346;});}function joinOrLeaveQueues(_0x4e5d00,_0x6d7bb2,_0x5bc15e,_0xae385f){_0x4e5d00[_0x6d7bb2](util[_0xe8ac('0x1d')]('%s:queue:%s',_0x5bc15e,_0xae385f[_0xe8ac('0x5')]));if(_0xae385f[_0xe8ac('0x6')]){for(var _0x13aa7c=0x0;_0x13aa7c<_0xae385f[_0xe8ac('0x6')]['length'];_0x13aa7c+=0x1){_0x4e5d00[_0x6d7bb2](util[_0xe8ac('0x1d')]('user:%s',_0xae385f[_0xe8ac('0x6')][_0x13aa7c][_0xe8ac('0x5')]));}}}function joinOrLeave(_0x3c3a78,_0x252440,_0x36108c){var _0x31956a;if(_0x3c3a78[_0xe8ac('0x1e')]['query']['id']){db[_0xe8ac('0x7')][_0xe8ac('0x1f')]({'attributes':['id',_0xe8ac('0x5'),_0xe8ac('0x8'),_0xe8ac('0x20')],'where':{'id':_0x3c3a78[_0xe8ac('0x1e')][_0xe8ac('0x21')]['id']},'include':[{'model':db[_0xe8ac('0x22')],'as':_0xe8ac('0x23'),'attributes':['id'],'raw':!![]},{'model':db['MailInteraction'],'as':'MailInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xe8ac('0x24')],'as':_0xe8ac('0x25'),'attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':_0xe8ac('0x26'),'attributes':['id'],'raw':!![]},{'model':db[_0xe8ac('0x27')],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0xe8ac('0x28'),'attributes':['id'],'raw':!![]}]})[_0xe8ac('0xd')](function(_0x3798c5){if(_0x3798c5){_0x31956a=_0x3798c5;_0x3c3a78[_0x252440](util[_0xe8ac('0x1d')](_0xe8ac('0x29'),_0x3798c5[_0xe8ac('0x5')]));var _0x1a2ef7=[];switch(_0x3798c5['role']){case _0xe8ac('0x2a'):_0x3c3a78[_0x252440]('voice:inbound');_0x3c3a78[_0x252440](_0xe8ac('0x2b'));if(queryQueues['hasOwnProperty']('include')){delete queryQueues['include'];}_0x1a2ef7['push'](db[_0xe8ac('0x2c')][_0xe8ac('0x15')](queryQueues));_0x1a2ef7[_0xe8ac('0x2d')](db[_0xe8ac('0x2e')][_0xe8ac('0x15')](queryQueues));_0x1a2ef7[_0xe8ac('0x2d')](db[_0xe8ac('0x2f')]['findAll'](queryQueues));_0x1a2ef7[_0xe8ac('0x2d')](db['SmsQueue']['findAll'](queryQueues));_0x1a2ef7['push'](db[_0xe8ac('0x30')][_0xe8ac('0x15')](queryQueues));_0x1a2ef7[_0xe8ac('0x2d')](db['OpenchannelQueue']['findAll'](queryQueues));_0x1a2ef7[_0xe8ac('0x2d')](db[_0xe8ac('0x31')][_0xe8ac('0x15')](queryQueues));_0x1a2ef7[_0xe8ac('0x2d')](db['User'][_0xe8ac('0x15')](queryTelephones));_0x1a2ef7[_0xe8ac('0x2d')](db[_0xe8ac('0x32')][_0xe8ac('0x15')](queryTrunks));_0x1a2ef7[_0xe8ac('0x2d')](db[_0xe8ac('0x1c')][_0xe8ac('0x15')](queryCampaigns));_0x1a2ef7['push'](db[_0xe8ac('0x7')][_0xe8ac('0x15')](queryAgents));break;case'user':_0x3c3a78[_0x252440](_0xe8ac('0x33'));_0x3c3a78[_0x252440](_0xe8ac('0x2b'));_0x1a2ef7[_0xe8ac('0x2d')](getAssociatedResources(_0xe8ac('0x34'),_0x3798c5['userProfileId'],_0xe8ac('0x2c')));_0x1a2ef7['push'](getAssociatedResources('ChatQueues',_0x3798c5[_0xe8ac('0x20')],_0xe8ac('0x2e')));_0x1a2ef7[_0xe8ac('0x2d')](getAssociatedResources(_0xe8ac('0x10'),_0x3798c5[_0xe8ac('0x20')],_0xe8ac('0x2f')));_0x1a2ef7[_0xe8ac('0x2d')](getAssociatedResources(_0xe8ac('0x11'),_0x3798c5[_0xe8ac('0x20')],'SmsQueue'));_0x1a2ef7['push'](getAssociatedResources(_0xe8ac('0x35'),_0x3798c5[_0xe8ac('0x20')],'MailQueue'));_0x1a2ef7['push'](getAssociatedResources('OpenchannelQueues',_0x3798c5[_0xe8ac('0x20')],_0xe8ac('0x36')));_0x1a2ef7[_0xe8ac('0x2d')](getAssociatedResources(_0xe8ac('0x13'),_0x3798c5['userProfileId'],_0xe8ac('0x31')));_0x1a2ef7[_0xe8ac('0x2d')](getAssociatedResources('Telephones',_0x3798c5[_0xe8ac('0x20')],_0xe8ac('0x7')));_0x1a2ef7[_0xe8ac('0x2d')](getAssociatedResources(_0xe8ac('0x16'),_0x3798c5['userProfileId'],'Trunk'));_0x1a2ef7['push'](getAssociatedResources(_0xe8ac('0x17'),_0x3798c5[_0xe8ac('0x20')],_0xe8ac('0x1c')));_0x1a2ef7[_0xe8ac('0x2d')](db['User']['findAll'](queryAgents));break;case _0xe8ac('0x9'):_0x3c3a78[_0x252440](_0xe8ac('0x33'));_0x3c3a78[_0x252440](_0xe8ac('0x2b'));_0x1a2ef7[_0xe8ac('0x2d')](_0x3798c5[_0xe8ac('0x37')]({'attributes':['id',_0xe8ac('0x5')]}));_0x1a2ef7[_0xe8ac('0x2d')](_0x3798c5[_0xe8ac('0x38')]({'attributes':['id',_0xe8ac('0x5')]}));_0x1a2ef7[_0xe8ac('0x2d')](_0x3798c5[_0xe8ac('0x39')]({'attributes':['id',_0xe8ac('0x5')]}));_0x1a2ef7[_0xe8ac('0x2d')](_0x3798c5[_0xe8ac('0x3a')]({'attributes':['id','name']}));_0x1a2ef7[_0xe8ac('0x2d')](_0x3798c5['getMailQueues']({'attributes':['id','name']}));_0x1a2ef7['push'](_0x3798c5['getOpenchannelQueues']({'attributes':['id',_0xe8ac('0x5')]}));_0x1a2ef7['push'](_0x3798c5[_0xe8ac('0x3b')]({'attributes':['id','name']}));break;}return BPromise[_0xe8ac('0x3c')](_0x1a2ef7);}})[_0xe8ac('0xd')](function(_0x479430){if(_0x479430&&_0x479430[_0xe8ac('0x3d')]){for(var _0x4ec426=0x0;_0x4ec426<_0x479430[_0xe8ac('0x3d')];_0x4ec426+=0x1){for(var _0x388115=0x0;_0x388115<_0x479430[_0x4ec426][_0xe8ac('0x3d')];_0x388115+=0x1){switch(_0x4ec426){case 0x0:joinOrLeaveQueues(_0x3c3a78,_0x252440,'voice',_0x479430[_0x4ec426][_0x388115]);break;case 0x1:joinOrLeaveQueues(_0x3c3a78,_0x252440,_0xe8ac('0x3e'),_0x479430[_0x4ec426][_0x388115]);break;case 0x2:joinOrLeaveQueues(_0x3c3a78,_0x252440,_0xe8ac('0x3f'),_0x479430[_0x4ec426][_0x388115]);break;case 0x3:joinOrLeaveQueues(_0x3c3a78,_0x252440,_0xe8ac('0x40'),_0x479430[_0x4ec426][_0x388115]);break;case 0x4:joinOrLeaveQueues(_0x3c3a78,_0x252440,'mail',_0x479430[_0x4ec426][_0x388115]);break;case 0x5:joinOrLeaveQueues(_0x3c3a78,_0x252440,_0xe8ac('0x41'),_0x479430[_0x4ec426][_0x388115]);break;case 0x6:joinOrLeaveQueues(_0x3c3a78,_0x252440,_0xe8ac('0x42'),_0x479430[_0x4ec426][_0x388115]);break;case 0x7:if(_0x31956a[_0xe8ac('0x8')]!=='agent')_0x3c3a78[_0x252440](util[_0xe8ac('0x1d')]('telephone:%s',_0x479430[_0x4ec426][_0x388115][_0xe8ac('0x5')]));break;case 0x8:if(_0x31956a[_0xe8ac('0x8')]!==_0xe8ac('0x9'))_0x3c3a78[_0x252440](util['format'](_0xe8ac('0x43'),_0x479430[_0x4ec426][_0x388115][_0xe8ac('0x5')]));break;case 0x9:if(_0x31956a[_0xe8ac('0x8')]!==_0xe8ac('0x9'))_0x3c3a78[_0x252440](util[_0xe8ac('0x1d')](_0xe8ac('0x44'),_0x479430[_0x4ec426][_0x388115][_0xe8ac('0x45')],_0x479430[_0x4ec426][_0x388115][_0xe8ac('0x5')]));break;case 0xa:_0x3c3a78[_0x252440](util[_0xe8ac('0x1d')](_0xe8ac('0x29'),_0x479430[_0x4ec426][_0x388115]['name']));break;}}}}})[_0xe8ac('0xd')](function(){if(_0x252440===_0xe8ac('0x46')){var _0x3abb66=_['map'](_0x31956a[_0xe8ac('0x23')],'id');return _0x31956a[_0xe8ac('0x47')](_0x3abb66)[_0xe8ac('0xd')](function(){for(var _0x8f29a0=0x0;_0x8f29a0<_0x3abb66[_0xe8ac('0x3d')];_0x8f29a0+=0x1){_0x36108c[_0xe8ac('0x48')](_0xe8ac('0x49'),{'ChatInteractionId':Number(_0x3abb66[_0x8f29a0]),'UserId':Number(_0x31956a['id'])});}});}})[_0xe8ac('0xd')](function(){if(_0x252440===_0xe8ac('0x46')){var _0x29fa3b=_[_0xe8ac('0x1a')](_0x31956a['MailInteractions'],'id');return _0x31956a[_0xe8ac('0x4a')](_0x29fa3b)[_0xe8ac('0xd')](function(){for(var _0x19bd80=0x0;_0x19bd80<_0x29fa3b[_0xe8ac('0x3d')];_0x19bd80+=0x1){_0x36108c[_0xe8ac('0x48')](_0xe8ac('0x4b'),{'MailInteractionId':Number(_0x29fa3b[_0x19bd80]),'UserId':Number(_0x31956a['id'])});}});}})[_0xe8ac('0xd')](function(){if(_0x252440===_0xe8ac('0x46')){var _0x199505=_[_0xe8ac('0x1a')](_0x31956a['FaxInteractions'],'id');return _0x31956a[_0xe8ac('0x4c')](_0x199505)[_0xe8ac('0xd')](function(){for(var _0x1ad14a=0x0;_0x1ad14a<_0x199505['length'];_0x1ad14a+=0x1){_0x36108c[_0xe8ac('0x48')](_0xe8ac('0x4d'),{'FaxInteractionId':Number(_0x199505[_0x1ad14a]),'UserId':Number(_0x31956a['id'])});}});}})[_0xe8ac('0xd')](function(){if(_0x252440===_0xe8ac('0x46')){var _0x37dd9d=_[_0xe8ac('0x1a')](_0x31956a[_0xe8ac('0x26')],'id');return _0x31956a[_0xe8ac('0x4e')](_0x37dd9d)[_0xe8ac('0xd')](function(){for(var _0x143594=0x0;_0x143594<_0x37dd9d[_0xe8ac('0x3d')];_0x143594+=0x1){_0x36108c[_0xe8ac('0x48')](_0xe8ac('0x4f'),{'SmsInteractionId':Number(_0x37dd9d[_0x143594]),'UserId':Number(_0x31956a['id'])});}});}})['then'](function(){if(_0x252440===_0xe8ac('0x46')){var _0x2d534a=_[_0xe8ac('0x1a')](_0x31956a['OpenchannelInteractions'],'id');return _0x31956a[_0xe8ac('0x50')](_0x2d534a)['then'](function(){for(var _0x2e2138=0x0;_0x2e2138<_0x2d534a[_0xe8ac('0x3d')];_0x2e2138+=0x1){_0x36108c[_0xe8ac('0x48')](_0xe8ac('0x51'),{'OpenchannelInteractionId':Number(_0x2d534a[_0x2e2138]),'UserId':Number(_0x31956a['id'])});}});}})[_0xe8ac('0xd')](function(){if(_0x252440==='leave'){var _0x5d4e08=_[_0xe8ac('0x1a')](_0x31956a[_0xe8ac('0x28')],'id');return _0x31956a[_0xe8ac('0x52')](_0x5d4e08)['then'](function(){for(var _0x1c9e9b=0x0;_0x1c9e9b<_0x5d4e08[_0xe8ac('0x3d')];_0x1c9e9b+=0x1){_0x36108c[_0xe8ac('0x48')](_0xe8ac('0x53'),{'WhatsappInteractionId':Number(_0x5d4e08[_0x1c9e9b]),'UserId':Number(_0x31956a['id'])});}});}})[_0xe8ac('0x54')](function(_0x8cf2bd){_0x3c3a78[_0xe8ac('0x55')](_0x8cf2bd);});}}function onDisconnect(_0x5c1835,_0x33b2e2){joinOrLeave(_0x5c1835,_0xe8ac('0x46'),_0x33b2e2);}function onConnect(_0x1ec9f9){joinOrLeave(_0x1ec9f9,_0xe8ac('0x56'));}exports[_0xe8ac('0x57')]=function(_0x31fff8){_0x31fff8['on'](_0xe8ac('0x58'),function(_0xa94389){_0xa94389['setMaxListeners'](0x0);_0xa94389['address']=_0xa94389[_0xe8ac('0x59')]['connection']['remoteAddress']+':'+_0xa94389[_0xe8ac('0x59')][_0xe8ac('0x58')][_0xe8ac('0x5a')];_0xa94389['connectedAt']=new Date();_0xa94389['log']=function(_0x5a3bb8){console[_0xe8ac('0x55')]('SocketIO\x20'+_0xa94389[_0xe8ac('0x5b')]['name']+'['+_0xa94389[_0xe8ac('0x5c')]+']',_0x5a3bb8);};_0xa94389['on'](_0xe8ac('0x5d'),function(){onDisconnect(_0xa94389,_0x31fff8);_0xa94389[_0xe8ac('0x55')](_0xe8ac('0x5e'));});onConnect(_0xa94389);_0xa94389[_0xe8ac('0x55')](_0xe8ac('0x5f'));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba47=['channel','event','direction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','QueryTypes','SELECT','UserId','User','find','name','fullname','email','internal','interface','format','SIP/%s','agent','incomingmessage','outgoingmessage','motionChannel','opened','sequelize','contact','changed','closed','substatus','Sequelize','default','length','hasOwnProperty','model','hook','callback','condition','util','jayson/promise','triggers','lodash','http','Chat','ChatInteraction','afterCreate','newinteraction','afterUpdate','closedinteraction','ChatMessage','newmessage','SmsInteraction','Sms','SmsMessage','WhatsappInteraction','Whatsapp','Fax','FaxInteraction','Mail','MailInteraction','MailMessage','OpenchannelInteraction','Openchannel','EventManager','then','info','Trigger,\x20%s','error','code','catch','get'];(function(_0x1204ef,_0x3e477a){var _0x36b82c=function(_0x1c8327){while(--_0x1c8327){_0x1204ef['push'](_0x1204ef['shift']());}};_0x36b82c(++_0x3e477a);}(_0xba47,0xae));var _0x7ba4=function(_0xd11b35,_0x5562e0){_0xd11b35=_0xd11b35-0x0;var _0x1014f4=_0xba47[_0xd11b35];return _0x1014f4;};'use strict';var util=require(_0x7ba4('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x7ba4('0x1'));var logger=require('../logger')(_0x7ba4('0x2'));var _=require(_0x7ba4('0x3'));var client=jayson['client'][_0x7ba4('0x4')]({'port':0x232a});var triggers=[{'channel':_0x7ba4('0x5'),'model':_0x7ba4('0x6'),'event':_0x7ba4('0x7'),'condition':_0x7ba4('0x8'),'callback':afterCreate},{'channel':'Chat','model':_0x7ba4('0x6'),'event':_0x7ba4('0x9'),'condition':_0x7ba4('0xa'),'callback':afterUpdate},{'channel':_0x7ba4('0x5'),'model':_0x7ba4('0xb'),'event':_0x7ba4('0x7'),'condition':_0x7ba4('0xc'),'callback':afterCreateMessage},{'channel':'Sms','model':_0x7ba4('0xd'),'event':_0x7ba4('0x7'),'condition':_0x7ba4('0x8'),'callback':afterCreate},{'channel':_0x7ba4('0xe'),'model':_0x7ba4('0xd'),'event':_0x7ba4('0x9'),'condition':_0x7ba4('0xa'),'callback':afterUpdate},{'channel':_0x7ba4('0xe'),'model':_0x7ba4('0xf'),'event':_0x7ba4('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Whatsapp','model':'WhatsappInteraction','event':'afterCreate','condition':_0x7ba4('0x8'),'callback':afterCreate},{'channel':'Whatsapp','model':_0x7ba4('0x10'),'event':_0x7ba4('0x9'),'condition':_0x7ba4('0xa'),'callback':afterUpdate},{'channel':_0x7ba4('0x11'),'model':'WhatsappMessage','event':'afterCreate','condition':_0x7ba4('0xc'),'callback':afterCreateMessage},{'channel':'Fax','model':'FaxInteraction','event':'afterCreate','condition':_0x7ba4('0x8'),'callback':afterCreate},{'channel':_0x7ba4('0x12'),'model':_0x7ba4('0x13'),'event':_0x7ba4('0x9'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x7ba4('0x12'),'model':'FaxMessage','event':'afterCreate','condition':_0x7ba4('0xc'),'callback':afterCreateMessage},{'channel':_0x7ba4('0x14'),'model':_0x7ba4('0x15'),'event':_0x7ba4('0x7'),'condition':_0x7ba4('0x8'),'callback':afterCreate},{'channel':_0x7ba4('0x14'),'model':'MailInteraction','event':'afterUpdate','condition':_0x7ba4('0xa'),'callback':afterUpdate},{'channel':'Mail','model':_0x7ba4('0x16'),'event':'afterCreate','condition':_0x7ba4('0xc'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x7ba4('0x17'),'event':'afterCreate','condition':'newinteraction','callback':afterCreate},{'channel':_0x7ba4('0x18'),'model':_0x7ba4('0x17'),'event':_0x7ba4('0x9'),'condition':_0x7ba4('0xa'),'callback':afterUpdate},{'channel':_0x7ba4('0x18'),'model':'OpenchannelMessage','event':'afterCreate','condition':_0x7ba4('0xc'),'callback':afterCreateMessage}];function request(_0x1cc2b4){return client['request'](_0x7ba4('0x19'),_0x1cc2b4)[_0x7ba4('0x1a')](function(_0x4a11c3){logger[_0x7ba4('0x1b')](_0x7ba4('0x1c'),'EventManager',_0x4a11c3);if(_0x4a11c3[_0x7ba4('0x1d')]){if(_0x4a11c3[_0x7ba4('0x1d')][_0x7ba4('0x1e')]===0x1f4){logger[_0x7ba4('0x1d')]('Trigger,\x20%s',_0x7ba4('0x19'),_0x4a11c3[_0x7ba4('0x1d')]);}}})[_0x7ba4('0x1f')](function(_0x1e8502){logger['error'](_0x7ba4('0x1c'),_0x7ba4('0x19'),_0x1e8502);});}function afterCreateMessage(_0x4c0940,_0x60d4bc){return function(_0x4a3e33,_0x16f632){_0x4a3e33=_0x4a3e33[_0x7ba4('0x20')]({'plain':!![]});_0x4a3e33[_0x7ba4('0x21')]=_0x4c0940;_0x4a3e33['motionChannel']=_0x4c0940;_0x4a3e33[_0x7ba4('0x22')]=_0x4a3e33[_0x7ba4('0x23')];var _0x1837ef=_0x7ba4('0x24')+_0x4a3e33[_0x7ba4('0x25')];return db['sequelize'][_0x7ba4('0x26')](_0x1837ef,{'type':db['Sequelize'][_0x7ba4('0x27')][_0x7ba4('0x28')],'raw':!![]})[_0x7ba4('0x1a')](function(_0x56e69f){return _0x56e69f;})['then'](function(_0x3d5bef){if(_0x3d5bef){_0x4a3e33['contact']=_0x3d5bef[0x0];}if(_0x4a3e33[_0x7ba4('0x29')]){return db[_0x7ba4('0x2a')][_0x7ba4('0x2b')]({'where':{'id':_0x4a3e33[_0x7ba4('0x29')]},'attributes':['id',_0x7ba4('0x2c'),_0x7ba4('0x2d'),_0x7ba4('0x2e'),_0x7ba4('0x2f')],'raw':!![]})[_0x7ba4('0x1a')](function(_0x3a5287){_0x4a3e33[_0x7ba4('0x30')]=util[_0x7ba4('0x31')](_0x7ba4('0x32'),_0x3a5287[_0x7ba4('0x2c')]);_0x4a3e33[_0x7ba4('0x21')]=_0x4c0940;_0x4a3e33[_0x7ba4('0x33')]=_0x3a5287;return request({'event':_0x7ba4('0x34'),'message':_0x4a3e33});})[_0x7ba4('0x1f')](function(_0x11c8a3){console[_0x7ba4('0x1d')](_0x11c8a3);});}else{return request({'event':_0x7ba4('0x35'),'message':_0x4a3e33});}});};}function afterCreate(_0x4061a2,_0x2947db){return function(_0x5d1fba,_0x38be6a){_0x5d1fba=_0x5d1fba['get']({'plain':!![]});_0x5d1fba['channel']=_0x4061a2;_0x5d1fba[_0x7ba4('0x36')]=_0x4061a2;_0x5d1fba[_0x7ba4('0x22')]=_0x7ba4('0x37');var _0x45e819=_0x7ba4('0x24')+_0x5d1fba[_0x7ba4('0x25')];return db[_0x7ba4('0x38')][_0x7ba4('0x26')](_0x45e819,{'type':db['Sequelize'][_0x7ba4('0x27')][_0x7ba4('0x28')],'raw':!![]})[_0x7ba4('0x1a')](function(_0x3b4ff9){return _0x3b4ff9;})[_0x7ba4('0x1a')](function(_0x1e97d9){if(_0x1e97d9){_0x5d1fba[_0x7ba4('0x39')]=_0x1e97d9[0x0];}return request({'event':_0x2947db,'message':_0x5d1fba});});};}function afterUpdate(_0x1e6970){return function(_0x528d06){var _0x564d14=_0x528d06[_0x7ba4('0x3a')](_0x7ba4('0x3b'))&&_0x528d06['closed'];var _0x60b332=_0x528d06[_0x7ba4('0x3a')](_0x7ba4('0x3c'));if(_0x564d14||_0x60b332){var _0x431d1d=_0x564d14?'closedinteraction':_0x7ba4('0x3c');var _0x508f39=_0x528d06[_0x7ba4('0x20')]({'plain':!![]});_0x508f39['channel']=_0x1e6970;_0x508f39['motionChannel']=_0x1e6970;_0x508f39[_0x7ba4('0x22')]=_0x564d14?'closed':_0x7ba4('0x3c');var _0x38027e=_0x7ba4('0x24')+_0x508f39['ContactId'];return db['sequelize'][_0x7ba4('0x26')](_0x38027e,{'type':db[_0x7ba4('0x3d')][_0x7ba4('0x27')][_0x7ba4('0x28')],'raw':!![]})[_0x7ba4('0x1a')](function(_0x72ac1c){if(_0x72ac1c){_0x508f39[_0x7ba4('0x39')]=_0x72ac1c[0x0];}if(_0x508f39['UserId']){return db[_0x7ba4('0x2a')][_0x7ba4('0x2b')]({'where':{'id':_0x508f39[_0x7ba4('0x29')]},'attributes':['id',_0x7ba4('0x2c'),_0x7ba4('0x2d'),_0x7ba4('0x2e'),_0x7ba4('0x2f')],'raw':!![]})[_0x7ba4('0x1a')](function(_0x4f57da){_0x508f39[_0x7ba4('0x30')]=util[_0x7ba4('0x31')](_0x7ba4('0x32'),_0x4f57da[_0x7ba4('0x2c')]);_0x508f39[_0x7ba4('0x33')]=_0x4f57da;return request({'event':_0x431d1d,'message':_0x508f39});})[_0x7ba4('0x1f')](function(_0x22086c){console[_0x7ba4('0x1d')](_0x22086c);});}else{return request({'event':_0x431d1d,'message':_0x508f39});}});}};}exports[_0x7ba4('0x3e')]=function(){for(var _0x26c932=0x0;_0x26c932<triggers[_0x7ba4('0x3f')];_0x26c932+=0x1){if(db[_0x7ba4('0x40')](triggers[_0x26c932][_0x7ba4('0x41')])){db[triggers[_0x26c932][_0x7ba4('0x41')]][_0x7ba4('0x42')](triggers[_0x26c932][_0x7ba4('0x22')],triggers[_0x26c932][_0x7ba4('0x43')](triggers[_0x26c932]['channel']['toLowerCase'](),triggers[_0x26c932][_0x7ba4('0x44')]));}}};
\ No newline at end of file
+var _0x2a52=['Openchannel','OpenchannelInteraction','OpenchannelMessage','EventManager','then','Trigger,\x20%s','error','code','get','direction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','query','Sequelize','QueryTypes','SELECT','contact','UserId','find','name','fullname','internal','format','SIP/%s','incomingmessage','catch','outgoingmessage','event','opened','sequelize','changed','closed','User','interface','agent','default','hasOwnProperty','model','hook','callback','toLowerCase','condition','util','../../mysqldb','jayson/promise','triggers','Chat','ChatInteraction','newinteraction','afterUpdate','closedinteraction','ChatMessage','afterCreate','newmessage','Sms','SmsInteraction','SmsMessage','WhatsappInteraction','Whatsapp','WhatsappMessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction'];(function(_0x431ba3,_0xb7f6a6){var _0xee20fd=function(_0x57a947){while(--_0x57a947){_0x431ba3['push'](_0x431ba3['shift']());}};_0xee20fd(++_0xb7f6a6);}(_0x2a52,0xac));var _0x22a5=function(_0x59056c,_0x5678f4){_0x59056c=_0x59056c-0x0;var _0x5dbce9=_0x2a52[_0x59056c];return _0x5dbce9;};'use strict';var util=require(_0x22a5('0x0'));var db=require(_0x22a5('0x1'))['db'];var jayson=require(_0x22a5('0x2'));var logger=require('../logger')(_0x22a5('0x3'));var _=require('lodash');var client=jayson['client']['http']({'port':0x232a});var triggers=[{'channel':_0x22a5('0x4'),'model':_0x22a5('0x5'),'event':'afterCreate','condition':_0x22a5('0x6'),'callback':afterCreate},{'channel':_0x22a5('0x4'),'model':_0x22a5('0x5'),'event':_0x22a5('0x7'),'condition':_0x22a5('0x8'),'callback':afterUpdate},{'channel':_0x22a5('0x4'),'model':_0x22a5('0x9'),'event':_0x22a5('0xa'),'condition':_0x22a5('0xb'),'callback':afterCreateMessage},{'channel':_0x22a5('0xc'),'model':_0x22a5('0xd'),'event':'afterCreate','condition':_0x22a5('0x6'),'callback':afterCreate},{'channel':_0x22a5('0xc'),'model':_0x22a5('0xd'),'event':'afterUpdate','condition':_0x22a5('0x8'),'callback':afterUpdate},{'channel':_0x22a5('0xc'),'model':_0x22a5('0xe'),'event':_0x22a5('0xa'),'condition':_0x22a5('0xb'),'callback':afterCreateMessage},{'channel':'Whatsapp','model':_0x22a5('0xf'),'event':_0x22a5('0xa'),'condition':_0x22a5('0x6'),'callback':afterCreate},{'channel':_0x22a5('0x10'),'model':_0x22a5('0xf'),'event':_0x22a5('0x7'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x22a5('0x10'),'model':_0x22a5('0x11'),'event':'afterCreate','condition':_0x22a5('0xb'),'callback':afterCreateMessage},{'channel':_0x22a5('0x12'),'model':_0x22a5('0x13'),'event':_0x22a5('0xa'),'condition':_0x22a5('0x6'),'callback':afterCreate},{'channel':_0x22a5('0x12'),'model':_0x22a5('0x13'),'event':_0x22a5('0x7'),'condition':_0x22a5('0x8'),'callback':afterUpdate},{'channel':_0x22a5('0x12'),'model':_0x22a5('0x14'),'event':_0x22a5('0xa'),'condition':_0x22a5('0xb'),'callback':afterCreateMessage},{'channel':_0x22a5('0x15'),'model':_0x22a5('0x16'),'event':_0x22a5('0xa'),'condition':_0x22a5('0x6'),'callback':afterCreate},{'channel':_0x22a5('0x15'),'model':_0x22a5('0x16'),'event':_0x22a5('0x7'),'condition':_0x22a5('0x8'),'callback':afterUpdate},{'channel':_0x22a5('0x15'),'model':'MailMessage','event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x22a5('0x17'),'model':_0x22a5('0x18'),'event':_0x22a5('0xa'),'condition':_0x22a5('0x6'),'callback':afterCreate},{'channel':_0x22a5('0x17'),'model':_0x22a5('0x18'),'event':_0x22a5('0x7'),'condition':_0x22a5('0x8'),'callback':afterUpdate},{'channel':_0x22a5('0x17'),'model':_0x22a5('0x19'),'event':_0x22a5('0xa'),'condition':_0x22a5('0xb'),'callback':afterCreateMessage}];function request(_0x225798){return client['request'](_0x22a5('0x1a'),_0x225798)[_0x22a5('0x1b')](function(_0x5eef7e){logger['info'](_0x22a5('0x1c'),'EventManager',_0x5eef7e);if(_0x5eef7e['error']){if(_0x5eef7e[_0x22a5('0x1d')][_0x22a5('0x1e')]===0x1f4){logger['error'](_0x22a5('0x1c'),_0x22a5('0x1a'),_0x5eef7e[_0x22a5('0x1d')]);}}})['catch'](function(_0x14ca52){logger[_0x22a5('0x1d')](_0x22a5('0x1c'),_0x22a5('0x1a'),_0x14ca52);});}function afterCreateMessage(_0xf3f62d,_0x73ee73){return function(_0x1982ab,_0x11f6ac){_0x1982ab=_0x1982ab[_0x22a5('0x1f')]({'plain':!![]});_0x1982ab['channel']=_0xf3f62d;_0x1982ab['event']=_0x1982ab[_0x22a5('0x20')];var _0x2c75fd=_0x22a5('0x21')+_0x1982ab[_0x22a5('0x22')];return db['sequelize'][_0x22a5('0x23')](_0x2c75fd,{'type':db[_0x22a5('0x24')][_0x22a5('0x25')][_0x22a5('0x26')],'raw':!![]})[_0x22a5('0x1b')](function(_0x45a629){return _0x45a629;})[_0x22a5('0x1b')](function(_0x5b47ba){if(_0x5b47ba){_0x1982ab[_0x22a5('0x27')]=_0x5b47ba[0x0];}if(_0x1982ab[_0x22a5('0x28')]){return db['User'][_0x22a5('0x29')]({'where':{'id':_0x1982ab[_0x22a5('0x28')]},'attributes':['id',_0x22a5('0x2a'),_0x22a5('0x2b'),'email',_0x22a5('0x2c')],'raw':!![]})[_0x22a5('0x1b')](function(_0x5cb1df){_0x1982ab['interface']=util[_0x22a5('0x2d')](_0x22a5('0x2e'),_0x5cb1df['name']);_0x1982ab['channel']=_0xf3f62d;_0x1982ab['agent']=_0x5cb1df;return request({'event':_0x22a5('0x2f'),'message':_0x1982ab});})[_0x22a5('0x30')](function(_0x4fcc82){console[_0x22a5('0x1d')](_0x4fcc82);});}else{return request({'event':_0x22a5('0x31'),'message':_0x1982ab});}});};}function afterCreate(_0x38268b,_0x3d8f90){return function(_0x5d0def,_0x2a8936){_0x5d0def=_0x5d0def[_0x22a5('0x1f')]({'plain':!![]});_0x5d0def['channel']=_0x38268b;_0x5d0def[_0x22a5('0x32')]=_0x22a5('0x33');var _0x29b727=_0x22a5('0x21')+_0x5d0def[_0x22a5('0x22')];return db[_0x22a5('0x34')]['query'](_0x29b727,{'type':db[_0x22a5('0x24')][_0x22a5('0x25')][_0x22a5('0x26')],'raw':!![]})[_0x22a5('0x1b')](function(_0x2178e7){return _0x2178e7;})[_0x22a5('0x1b')](function(_0x3486bc){if(_0x3486bc){_0x5d0def[_0x22a5('0x27')]=_0x3486bc[0x0];}return request({'event':_0x3d8f90,'message':_0x5d0def});});};}function afterUpdate(_0x2766bd,_0x591e5a){return function(_0x275fbb,_0x40f81b){if(_0x275fbb[_0x22a5('0x35')]('closed')&&_0x275fbb[_0x22a5('0x36')]){_0x275fbb=_0x275fbb[_0x22a5('0x1f')]({'plain':!![]});_0x275fbb['channel']=_0x2766bd;_0x275fbb[_0x22a5('0x32')]=_0x22a5('0x36');var _0x52d759='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x275fbb[_0x22a5('0x22')];return db[_0x22a5('0x34')][_0x22a5('0x23')](_0x52d759,{'type':db[_0x22a5('0x24')]['QueryTypes']['SELECT'],'raw':!![]})[_0x22a5('0x1b')](function(_0x37e382){return _0x37e382;})[_0x22a5('0x1b')](function(_0x318c42){if(_0x318c42){_0x275fbb['contact']=_0x318c42[0x0];}if(_0x275fbb[_0x22a5('0x28')]){return db[_0x22a5('0x37')][_0x22a5('0x29')]({'where':{'id':_0x275fbb[_0x22a5('0x28')]},'attributes':['id','name',_0x22a5('0x2b'),'email','internal'],'raw':!![]})[_0x22a5('0x1b')](function(_0x7f0f31){_0x275fbb[_0x22a5('0x38')]=util[_0x22a5('0x2d')]('SIP/%s',_0x7f0f31[_0x22a5('0x2a')]);_0x275fbb[_0x22a5('0x39')]=_0x7f0f31;return request({'event':_0x591e5a,'message':_0x275fbb});})['catch'](function(_0x26339e){console[_0x22a5('0x1d')](_0x26339e);});}else{return request({'event':_0x591e5a,'message':_0x275fbb});}});}};}exports[_0x22a5('0x3a')]=function(){for(var _0x1995cc=0x0;_0x1995cc<triggers['length'];_0x1995cc+=0x1){if(db[_0x22a5('0x3b')](triggers[_0x1995cc]['model'])){db[triggers[_0x1995cc][_0x22a5('0x3c')]][_0x22a5('0x3d')](triggers[_0x1995cc][_0x22a5('0x32')],triggers[_0x1995cc][_0x22a5('0x3e')](triggers[_0x1995cc]['channel'][_0x22a5('0x3f')](),triggers[_0x1995cc][_0x22a5('0x40')]));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2600=['agent','then','agents','catch','bluebird','../mysqldb','./license/util','voice','chat','sms','whatsapp','openchannel','clearBlockUser','isUndefined','blockedAt','role','User','count'];(function(_0x18d4b5,_0x5d0d2d){var _0x1ff146=function(_0x97b4ee){while(--_0x97b4ee){_0x18d4b5['push'](_0x18d4b5['shift']());}};_0x1ff146(++_0x5d0d2d);}(_0x2600,0x94));var _0x0260=function(_0x3f07e1,_0x2e04c8){_0x3f07e1=_0x3f07e1-0x0;var _0x14c34e=_0x2600[_0x3f07e1];return _0x14c34e;};'use strict';var _=require('lodash');var BPromise=require(_0x0260('0x0'));var db=require(_0x0260('0x1'))['db'];var util=require(_0x0260('0x2'));var channels=[_0x0260('0x3'),'mail',_0x0260('0x4'),'fax',_0x0260('0x5'),_0x0260('0x6'),_0x0260('0x7')];exports['getChannels']=function(){return channels;};exports['isValidChannel']=function(_0x331de5){_0x331de5=_0x331de5['toLowerCase']();return _['includes'](channels,_0x331de5);};exports[_0x0260('0x8')]=function(_0x4b7b32,_0x425d62,_0x4d2b9f,_0xf4ffcd){var _0x3eae93={'loginAttempts':_0x425d62,'blocked':_0x4d2b9f};if(!_[_0x0260('0x9')](_0xf4ffcd)){_0x3eae93[_0x0260('0xa')]=_0xf4ffcd;}return _0x4b7b32['updateAttributes'](_0x3eae93);};exports['getLicense']=function(_0x2dc8b9){return new BPromise(function(_0x368c2c,_0xac6db4){var _0x13ca2b=0x0;if(_0x2dc8b9[_0x0260('0xb')]!=='agent'){_0x368c2c(_0x2dc8b9);}db[_0x0260('0xc')][_0x0260('0xd')]({'where':{'role':_0x0260('0xe'),'online':!![],'id':{'$ne':_0x2dc8b9['id']}}})[_0x0260('0xf')](function(_0x5da03f){_0x13ca2b=_0x5da03f;return util['getLicense']();})[_0x0260('0xf')](function(_0x560b53){if(_0x560b53&&_0x560b53[_0x0260('0x10')]&&_0x13ca2b>=_0x560b53[_0x0260('0x10')]){throw Error('Maximum\x20login\x20has\x20been\x20reached');}_0x368c2c(_0x2dc8b9);})[_0x0260('0x11')](function(_0x3177c8){_0xac6db4(_0x3177c8);});});};
\ No newline at end of file
+var _0x06f4=['./license/util','fax','sms','whatsapp','openchannel','getChannels','isValidChannel','includes','isUndefined','blockedAt','updateAttributes','getLicense','role','User','agent','then','agents','Maximum\x20login\x20has\x20been\x20reached','bluebird','../mysqldb'];(function(_0x463b68,_0x48408b){var _0x27da8a=function(_0x1e7993){while(--_0x1e7993){_0x463b68['push'](_0x463b68['shift']());}};_0x27da8a(++_0x48408b);}(_0x06f4,0x152));var _0x406f=function(_0x5963e5,_0x2cd3a4){_0x5963e5=_0x5963e5-0x0;var _0x2d4c85=_0x06f4[_0x5963e5];return _0x2d4c85;};'use strict';var _=require('lodash');var BPromise=require(_0x406f('0x0'));var db=require(_0x406f('0x1'))['db'];var util=require(_0x406f('0x2'));var channels=['voice','mail','chat',_0x406f('0x3'),_0x406f('0x4'),_0x406f('0x5'),_0x406f('0x6')];exports[_0x406f('0x7')]=function(){return channels;};exports[_0x406f('0x8')]=function(_0x3e34e2){_0x3e34e2=_0x3e34e2['toLowerCase']();return _[_0x406f('0x9')](channels,_0x3e34e2);};exports['clearBlockUser']=function(_0x38cb67,_0x984c67,_0x340ca5,_0x217e89){var _0x26643f={'loginAttempts':_0x984c67,'blocked':_0x340ca5};if(!_[_0x406f('0xa')](_0x217e89)){_0x26643f[_0x406f('0xb')]=_0x217e89;}return _0x38cb67[_0x406f('0xc')](_0x26643f);};exports[_0x406f('0xd')]=function(_0x3c6443){return new BPromise(function(_0x59f239,_0x17aad6){var _0x1f3acd=0x0;if(_0x3c6443[_0x406f('0xe')]!=='agent'){_0x59f239(_0x3c6443);}db[_0x406f('0xf')]['count']({'where':{'role':_0x406f('0x10'),'online':!![],'id':{'$ne':_0x3c6443['id']}}})[_0x406f('0x11')](function(_0x296379){_0x1f3acd=_0x296379;return util[_0x406f('0xd')]();})[_0x406f('0x11')](function(_0x28cde6){if(_0x28cde6&&_0x28cde6[_0x406f('0x12')]&&_0x1f3acd>=_0x28cde6[_0x406f('0x12')]){throw Error(_0x406f('0x13'));}_0x59f239(_0x3c6443);})['catch'](function(_0x2648fb){_0x17aad6(_0x2648fb);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7117=['exports','status'];(function(_0x318229,_0x8461b1){var _0x4958d7=function(_0x2fa180){while(--_0x2fa180){_0x318229['push'](_0x318229['shift']());}};_0x4958d7(++_0x8461b1);}(_0x7117,0x1ec));var _0x7711=function(_0x55564b,_0x3406e5){_0x55564b=_0x55564b-0x0;var _0x5ea9d4=_0x7117[_0x55564b];return _0x5ea9d4;};'use strict';module[_0x7711('0x0')][0x194]=function pageNotFound(_0x40d141,_0x41ae33){var _0x425d2e='404';var _0x3a55de=0x194;var _0x348cc0={'status':_0x3a55de};_0x41ae33['status'](_0x348cc0[_0x7711('0x1')]);_0x41ae33['render'](_0x425d2e,{},function(_0x3fb4d7,_0xc02007){if(_0x3fb4d7){return _0x41ae33[_0x7711('0x1')](_0x348cc0['status'])['json'](_0x348cc0);}_0x41ae33['send'](_0xc02007);});};
\ No newline at end of file
+var _0xc462=['exports','404','status','json','send'];(function(_0x59db19,_0x30c1c6){var _0x5f0f09=function(_0x36e225){while(--_0x36e225){_0x59db19['push'](_0x59db19['shift']());}};_0x5f0f09(++_0x30c1c6);}(_0xc462,0x1d6));var _0x2c46=function(_0x209941,_0x5c9988){_0x209941=_0x209941-0x0;var _0x1e8729=_0xc462[_0x209941];return _0x1e8729;};'use strict';module[_0x2c46('0x0')][0x194]=function pageNotFound(_0x4ca7fe,_0x216110){var _0x4d1f26=_0x2c46('0x1');var _0x21a013=0x194;var _0x1fe561={'status':_0x21a013};_0x216110[_0x2c46('0x2')](_0x1fe561['status']);_0x216110['render'](_0x4d1f26,{},function(_0x117238,_0x4fee3d){if(_0x117238){return _0x216110[_0x2c46('0x2')](_0x1fe561[_0x2c46('0x2')])[_0x2c46('0x3')](_0x1fe561);}_0x216110[_0x2c46('0x4')](_0x4fee3d);});};
\ No newline at end of file
+++ /dev/null
-'use strict';\r
-\r
-var BPromise = require('bluebird');\r
-var util = require('util');\r
-\r
-var logger = require('../config/logger')('migration');\r
-\r
-var Sequence = function() {};\r
-\r
-Sequence.prototype.enqueue = function(fn) {\r
- this.tail = this.tail ? this.tail.finally(fn) : fn();\r
-};\r
-\r
-var Migration = function(queryInterface) {\r
- this.queryInterface = queryInterface;\r
- this.sequence = new Sequence();\r
-};\r
-\r
-Migration.prototype.changeColumn = function(table, column, type) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .changeColumn(table, column, type)\r
- .then(function() {\r
- logger.info('Changed column %s in table %s', column, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.addColumn = function(table, column, type) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .addColumn(table, column, type)\r
- .then(function() {\r
- logger.info('Added column %s to %s', column, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.dropTable = function(table) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .dropTable(table, {\r
- force: true\r
- })\r
- .then(function() {\r
- logger.info('table dropped %s', table);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.addIndex = function(table, column, indexName) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .addIndex(table, column, {\r
- indexName: indexName\r
- })\r
- .then(function() {\r
- logger.info('addIndex %s %s %s', table, column.join(','), indexName);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.removeIndex = function(table, indexName) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .removeIndex(table, indexName)\r
- .then(function() {\r
- logger.info('removeIndex %s %s', table, indexName);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.query = function(sql) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface.sequelize\r
- .query(sql)\r
- .then(function() {\r
- logger.info('query %s', sql);\r
- })\r
- .catch(function(err) {\r
- logger.info(JSON.stringify(err));\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.removeColumn = function(table, column) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .removeColumn(table, column)\r
- .then(function() {\r
- logger.info('Removed column %s from %s', column, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(\r
- util.inspect(err, {\r
- showHidden: false,\r
- depth: null\r
- })\r
- );\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {\r
- var _this = this;\r
- this.sequence.enqueue(function() {\r
- return _this.queryInterface\r
- .renameColumn(table, oldColumn, newColumn)\r
- .then(function() {\r
- logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);\r
- })\r
- .catch(function(err) {\r
- logger.info(\r
- util.inspect(err, {\r
- showHidden: false,\r
- depth: null\r
- })\r
- );\r
- });\r
- });\r
-};\r
-\r
-Migration.prototype.final = function(resolve) {\r
- this.sequence.enqueue(function() {\r
- return resolve();\r
- });\r
-};\r
-\r
-module.exports = {\r
- up: function(queryInterface, Sequelize) {\r
- return new BPromise(function(resolve) {\r
- var migration = new Migration(queryInterface);\r
-\r
- // START FINAL\r
- migration.final(resolve);\r
- // END FINAL\r
- });\r
- },\r
-\r
- down: function(queryInterface, Sequelize) {\r
- // var migration = new Migration(queryInterface);\r
- }\r
-};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','MailServerOut','../api/mailServerOut/mailServerOut.model','../api/mailAccount/mailAccount.model','MailQueue','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailMessage/mailMessage.model','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','../api/dashboardItem/dashboardItem.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','../api/faxMessage/faxMessage.model','FaxQueue','FaxQueueReport','../api/smsAccount/smsAccount.model','../api/smsApplication/smsApplication.model','SmsInteraction','SmsMessage','../api/smsMessage/smsMessage.model','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','ChatApplication','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','../api/chatMessage/chatMessage.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','../api/chatQueue/chatQueue.model','../api/chatGroup/chatGroup.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmContact','../api/cmContact/cmContact.model','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','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','../api/cannedAnswer/cannedAnswer.model','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Interval','../api/interval/interval.model','Pause','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','Trigger','../api/trigger/trigger.model','Variable','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','AnalyticMetric','AnalyticFieldReport','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','FreshdeskConfiguration','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','../api/intVtigerAccount/intVtigerAccount.model','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','ServicenowAccount','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','../api/intServicenowField/intServicenowField.model','Dynamics365Field','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','../api/jscriptyProject/jscriptyProject.model','Setting','SquareOdbc','../api/squareOdbc/squareOdbc.model','../api/squareProject/squareProject.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','../api/license/license.model','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','../api/plugin/plugin.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','../api/smsTransferReport/smsTransferReport.model','CmList','VoicePrefix','../api/voicePrefix/voicePrefix.model','../api/userProfile/userProfile.model','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','WhatsappInteraction','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','WhatsappQueue','../api/whatsappQueue/whatsappQueue.model','../api/cloudProvider/cloudProvider.model','../api/teamVoiceQueue/teamVoiceQueue.model','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','hasOne','VoiceMail','cascade','Recordings','UserId','hasMany','VoiceQueuesRt','Extensions','HopperFinals','HopperHistory','OpenchannelInteractions','ChatInteractions','SmsInteractions','FaxInteractions','MailInteractions','UserNotifications','SenderId','UserProfile','belongsToMany','Groups','chat_group_has_users','Lists','cm_user_has_lists','user_has_teams','user_has_mail_interactions','user_has_chat_interactions','user_has_fax_interactions','user_has_sms_interactions','user_has_whatsapp_interactions','VoiceQueue','VoiceQueues','MailQueues','ChatQueues','FaxQueues','SmsQueue','OpenchannelQueues','WhatsappQueues','ChatWebsites','FaxAccounts','user_has_fax_accounts','MailAccounts','user_has_mail_accounts','user_has_openchannel_accounts','SmsAccount','SmsAccounts','user_has_sms_accounts','WhatsappAccounts','SquareProject','SpiedAgents','ChanSpyId','Sounds','Members','VoiceQueueId','JscriptySessionReport','JscriptySessions','belongsTo','TrunkBackup','TrunkBackupId','IntervalId','mandatoryDispositionPause','voice_queues_has_cm_lists','Agents','Teams','TeamVoiceQueue','BlackLists','Messages','mailboxuser','mailbox','QueueCalls','uniqueid','Contact','ContactId','MailServerIn','MailAccount','MailAccountId','Dispositions','Answers','MailMessage','Interactions','List','team_has_mail_queues','MailInteractionId','Account','mail_interaction_has_tags','ThroughTags','Users','Attachments','Interaction','ChatWebsiteId','ChatOfflineMessageId','restrict','TagId','ListId','DashboardItem','FaxAccountId','Applications','Exntensions','mandatoryDispositionPauseId','FaxMessage','FaxInteractionId','Owner','fax_interaction_has_tags','team_has_fax_queues','SmsAccountId','SmsApplication','SmsInteractionId','sms_interaction_has_tags','Tags','SmsQueueId','team_has_sms_queues','OpenchannelAccountId','OpenchannelApplication','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','team_has_openchannel_queues','ProactiveActions','user_has_chat_websites','Queue','ChatQueueId','Website','ChatMessage','ChatInteractionId','chat_interaction_has_tags','AttachmentId','team_has_chat_queues','ChatGroupId','ChatGroup','Contacts','CompanyId','HopperHistories','CmCompany','cm_user_has_contacts','cm_contact_has_tags','Agent','OwnerId','CampaignId','All','OneAll','AutomationAllId','Any','Actions','ParentId','Intervals','MailApplications','SmsApplications','DefaultReportId','AnalyticCustomReport','VoiceMusicOnHold','Mohs','moh_has_sounds','whatsapp_interaction_has_tags','AllConditions','AllCondition','AnyConditions','TriggerAnyId','Fields','MetricId','Configurations','AccountId','Subjects','SubjectId','Descriptions','DescriptionId','FieldId','Description','Field','VariableId','Subject','DeskConfiguration','int_desk_configuration_has_tags','ZohoConfiguration','ZendeskConfiguration','int_zendesk_configuration_has_tags','VtigerAccount','VtigerConfiguration','ServicenowField','Dynamics365Account','Dynamics365Configuration','FreshsalesAccount','FreshsalesField','FromId','ToId','SessionId','JscriptyProject','ProjectId','JscriptyQuestionReport','user_has_square_projects','team_has_whatsapp_queues','TeamVoicePrefix','VoicePrefixes','Hoppers','TrunkId','SquareProjectId','campaigns_has_cm_lists','MailTransferReport','FromMailAccountId','ToUserId','ToAgent','ToQueue','ToMailAccountId','ToAccount','FromAccount','FromAgent','ToChatQueueId','ToChatWebsiteId','FromFaxAccountId','ToFaxQueueId','ToFaxAccountId','FromOpenchannelAccountId','FromUserId','ToOpenchannelAccountId','SmsTransferReport','ToSmsAccountId','CustomFields','Queues','userProfileId','UserProfileSection','UserProfileSections','Resources','sectionId','WhatsappAccount','WhatsappAccountId','user_has_whatsapp_accounts','WhatsappInteractionId','WhatsappQueueReport','FromWhatsappAccountId','ToWhatsappAccountId','ToQueueId','WhatsappQueueId','exports','lodash','jstz','determine','sequelize','defaultsDeep','motion2','xcall','xC@LL1234','127.0.0.1','mysql','utf8mb4','name','utf8','utf8_general_ci','sequelizeHistory','database','username','password','options','User','import','../api/user/user.model','VoiceChanSpy','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','../api/voiceMusicOnHold/voiceMusicOnHold.model','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','ScreenRecording','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','VoiceAgentReport','../api/voiceAgentReport/voiceAgentReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','Trunk','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','UserChatQueue'];(function(_0x17cdba,_0x30fda6){var _0x5430b7=function(_0x1a6683){while(--_0x1a6683){_0x17cdba['push'](_0x17cdba['shift']());}};_0x5430b7(++_0x30fda6);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var config=require('../config/environment');var Sequelize=require('sequelize');var _=require(_0x3071('0x0'));var jstz=require(_0x3071('0x1'));var timezone=jstz[_0x3071('0x2')]();config[_0x3071('0x3')]=_[_0x3071('0x4')](config['sequelize'],{'database':_0x3071('0x5'),'username':_0x3071('0x6'),'password':_0x3071('0x7'),'options':{'host':_0x3071('0x8'),'port':0xcea,'dialect':_0x3071('0x9'),'dialectOptions':{'charset':_0x3071('0xa')},'logging':![],'timezone':timezone[_0x3071('0xb')](),'define':{'charset':_0x3071('0xc'),'collate':_0x3071('0xd')}}});config[_0x3071('0xe')]=_[_0x3071('0x4')](config[_0x3071('0xe')],{'database':_0x3071('0x5'),'username':'xcall','password':_0x3071('0x7'),'options':{'host':_0x3071('0x8'),'port':0xcea,'dialect':_0x3071('0x9'),'dialectOptions':{'charset':_0x3071('0xa')},'logging':![],'timezone':timezone[_0x3071('0xb')](),'define':{'charset':'utf8','collate':_0x3071('0xd')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x3071('0x3')][_0x3071('0xf')],config[_0x3071('0x3')][_0x3071('0x10')],config['sequelize']['password'],config[_0x3071('0x3')]['options'])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x3071('0xe')][_0x3071('0xf')],config['sequelizeHistory'][_0x3071('0x10')],config['sequelizeHistory'][_0x3071('0x11')],config[_0x3071('0xe')][_0x3071('0x12')])};db[_0x3071('0x13')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x15'));db[_0x3071('0x16')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/voiceChanSpy/voiceChanSpy.model');db[_0x3071('0x17')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x18'));db[_0x3071('0x19')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x1a'));db['VoiceMusicOnHold']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x1b'));db['VoiceQueue']=db[_0x3071('0x3')]['import'](_0x3071('0x1c'));db[_0x3071('0x1d')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x1e'));db[_0x3071('0x1f')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/screenRecording/screenRecording.model');db['VoiceMail']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x20'));db[_0x3071('0x21')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x22'));db[_0x3071('0x23')]=db[_0x3071('0x3')]['import'](_0x3071('0x24'));db[_0x3071('0x25')]=db[_0x3071('0x3')]['import'](_0x3071('0x26'));db[_0x3071('0x27')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x28'));db[_0x3071('0x29')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x2a'));db[_0x3071('0x2b')]=db[_0x3071('0x3')]['import']('../api/memberReport/memberReport.model');db[_0x3071('0x2c')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x2d'));db[_0x3071('0x2e')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x2f'));db['UserVoiceQueueRt']=db['sequelize']['import'](_0x3071('0x30'));db[_0x3071('0x31')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x32'));db[_0x3071('0x33')]=db[_0x3071('0x3')]['import'](_0x3071('0x34'));db[_0x3071('0x35')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x36'));db[_0x3071('0x37')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/userFaxQueue/userFaxQueue.model');db[_0x3071('0x38')]=db['sequelize']['import'](_0x3071('0x39'));db[_0x3071('0x3a')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x3b'));db[_0x3071('0x3c')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x3d'));db['MailServerIn']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/mailServerIn/mailServerIn.model');db[_0x3071('0x3e')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x3f'));db['MailAccount']=db['sequelize'][_0x3071('0x14')](_0x3071('0x40'));db[_0x3071('0x41')]=db['sequelize'][_0x3071('0x14')]('../api/mailQueue/mailQueue.model');db[_0x3071('0x42')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x43'));db[_0x3071('0x44')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/mailInteraction/mailInteraction.model');db['MailMessage']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x45'));db[_0x3071('0x46')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x47'));db[_0x3071('0x48')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x49'));db['Dashboard']=db[_0x3071('0x3')]['import']('../api/dashboard/dashboard.model');db['DashboardItem']=db['sequelize'][_0x3071('0x14')](_0x3071('0x4a'));db[_0x3071('0x4b')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x4c'));db[_0x3071('0x4d')]=db[_0x3071('0x3')]['import'](_0x3071('0x4e'));db[_0x3071('0x4f')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x50'));db['FaxMessage']=db['sequelize'][_0x3071('0x14')](_0x3071('0x51'));db[_0x3071('0x52')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/faxQueue/faxQueue.model');db[_0x3071('0x53')]=db['sequelize'][_0x3071('0x14')]('../api/faxQueueReport/faxQueueReport.model');db['SmsAccount']=db[_0x3071('0x3')]['import'](_0x3071('0x54'));db['SmsApplication']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x55'));db[_0x3071('0x56')]=db['sequelize'][_0x3071('0x14')]('../api/smsInteraction/smsInteraction.model');db[_0x3071('0x57')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x58'));db['SmsQueue']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x59'));db[_0x3071('0x5a')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x5b'));db['OpenchannelApplication']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x5c'));db[_0x3071('0x5d')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x5e'));db[_0x3071('0x5f')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x60'));db[_0x3071('0x61')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x62'));db[_0x3071('0x63')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x64'));db[_0x3071('0x65')]=db[_0x3071('0x3')]['import']('../api/openchannelQueueReport/openchannelQueueReport.model');db[_0x3071('0x66')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x67'));db[_0x3071('0x68')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x69'));db['ChatMessage']=db['sequelize'][_0x3071('0x14')](_0x3071('0x6a'));db[_0x3071('0x6b')]=db[_0x3071('0x3')]['import'](_0x3071('0x6c'));db[_0x3071('0x6d')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x6e'));db['ChatGroup']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x6f'));db[_0x3071('0x70')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x71'));db['CmCompany']=db['sequelize'][_0x3071('0x14')]('../api/cmCompany/cmCompany.model');db[_0x3071('0x72')]=db[_0x3071('0x3')]['import'](_0x3071('0x73'));db[_0x3071('0x74')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x75'));db[_0x3071('0x76')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/cmHopperBlack/cmHopperBlack.model');db[_0x3071('0x77')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/cmHopperFinal/cmHopperFinal.model');db[_0x3071('0x78')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x79'));db[_0x3071('0x7a')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x7b'));db[_0x3071('0x7c')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x7d'));db[_0x3071('0x7e')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x7f'));db[_0x3071('0x80')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x81'));db[_0x3071('0x82')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x83'));db[_0x3071('0x84')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x85'));db[_0x3071('0x86')]=db[_0x3071('0x3')]['import'](_0x3071('0x87'));db[_0x3071('0x88')]=db['sequelize']['import'](_0x3071('0x89'));db[_0x3071('0x8a')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/pause/pause.model');db['Cdr']=db[_0x3071('0x3')]['import']('../api/cdr/cdr.model');db['VoiceQueuesLog']=db['sequelize'][_0x3071('0x14')](_0x3071('0x8b'));db[_0x3071('0x8c')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x8d'));db[_0x3071('0x8e')]=db[_0x3071('0x3')]['import'](_0x3071('0x8f'));db[_0x3071('0x90')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x91'));db[_0x3071('0x92')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x93'));db[_0x3071('0x94')]=db['sequelize']['import'](_0x3071('0x95'));db[_0x3071('0x96')]=db[_0x3071('0x3')]['import']('../api/variable/variable.model');db[_0x3071('0x97')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x98'));db[_0x3071('0x99')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x9a'));db['AnalyticCustomReport']=db[_0x3071('0x3')]['import'](_0x3071('0x9b'));db[_0x3071('0x9c')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x9d'));db[_0x3071('0x9e')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/analyticExtractedReport/analyticExtractedReport.model');db[_0x3071('0x9f')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/analyticMetric/analyticMetric.model');db[_0x3071('0xa0')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/analyticFieldReport/analyticFieldReport.model');db['AnalyticTreeReport']=db[_0x3071('0x3')]['import'](_0x3071('0xa1'));db[_0x3071('0xa2')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xa3'));db[_0x3071('0xa4')]=db[_0x3071('0x3')]['import'](_0x3071('0xa5'));db[_0x3071('0xa6')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xa7'));db[_0x3071('0xa8')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intSugarcrmAccount/intSugarcrmAccount.model');db[_0x3071('0xa9')]=db['sequelize'][_0x3071('0x14')](_0x3071('0xaa'));db[_0x3071('0xab')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xac'));db[_0x3071('0xad')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xae'));db['DeskConfiguration']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intDeskConfiguration/intDeskConfiguration.model');db[_0x3071('0xaf')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb0'));db[_0x3071('0xb1')]=db['sequelize']['import'](_0x3071('0xb2'));db['ZohoConfiguration']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb3'));db[_0x3071('0xb4')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intZohoField/intZohoField.model');db[_0x3071('0xb5')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb6'));db['ZendeskConfiguration']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intZendeskConfiguration/intZendeskConfiguration.model');db[_0x3071('0xb7')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb8'));db[_0x3071('0xb9')]=db['sequelize'][_0x3071('0x14')]('../api/intFreshdeskAccount/intFreshdeskAccount.model');db[_0x3071('0xba')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xbb'));db[_0x3071('0xbc')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xbd'));db['VtigerAccount']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xbe'));db['VtigerConfiguration']=db[_0x3071('0x3')]['import'](_0x3071('0xbf'));db[_0x3071('0xc0')]=db[_0x3071('0x3')]['import'](_0x3071('0xc1'));db[_0x3071('0xc2')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc3'));db[_0x3071('0xc4')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc5'));db['ServicenowField']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc6'));db['Dynamics365Account']=db['sequelize']['import']('../api/intDynamics365Account/intDynamics365Account.model');db['Dynamics365Configuration']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intDynamics365Configuration/intDynamics365Configuration.model');db[_0x3071('0xc7')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intDynamics365Field/intDynamics365Field.model');db['FreshsalesAccount']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc8'));db[_0x3071('0xc9')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xca'));db['FreshsalesField']=db['sequelize'][_0x3071('0x14')](_0x3071('0xcb'));db[_0x3071('0x97')]=db[_0x3071('0x3')]['import'](_0x3071('0x98'));db[_0x3071('0xcc')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xcd'));db[_0x3071('0xce')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/chatQueueReport/chatQueueReport.model');db[_0x3071('0xcf')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd0'));db[_0x3071('0xd1')]=db['sequelize'][_0x3071('0x14')]('../api/jscriptyAnswerReport/jscriptyAnswerReport.model');db['JscriptyQuestionReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd2'));db['JscriptySessionReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd3'));db[_0x3071('0xd4')]=db[_0x3071('0x3')]['import']('../api/smsQueueReport/smsQueueReport.model');db[_0x3071('0xd5')]=db[_0x3071('0x3')]['import'](_0x3071('0xd6'));db[_0x3071('0xd7')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd8'));db['JscriptyProject']=db[_0x3071('0x3')]['import'](_0x3071('0xd9'));db[_0x3071('0xda')]=db['sequelize'][_0x3071('0x14')]('../api/setting/setting.model');db[_0x3071('0xdb')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xdc'));db['SquareProject']=db[_0x3071('0x3')]['import'](_0x3071('0xdd'));db['SquareRecording']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/squareRecording/squareRecording.model');db[_0x3071('0xde')]=db[_0x3071('0x3')]['import'](_0x3071('0xdf'));db[_0x3071('0xe0')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe1'));db[_0x3071('0xe2')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe3'));db[_0x3071('0xe4')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe5'));db[_0x3071('0xe6')]=db[_0x3071('0x3')]['import'](_0x3071('0xe7'));db[_0x3071('0xe8')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe9'));db['Plugin']=db['sequelize'][_0x3071('0x14')](_0x3071('0xea'));db['MailTransferReport']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/mailTransferReport/mailTransferReport.model');db[_0x3071('0xeb')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xec'));db[_0x3071('0xed')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xee'));db[_0x3071('0xef')]=db[_0x3071('0x3')]['import'](_0x3071('0xf0'));db['SmsTransferReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf1'));db[_0x3071('0xf2')]=db['sequelize']['import']('../api/cmList/cmList.model');db[_0x3071('0xf3')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf4'));db['UserProfile']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf5'));db['UserProfileSection']=db['sequelize']['import']('../api/userProfileSection/userProfileSection.model');db[_0x3071('0xf6')]=db[_0x3071('0x3')]['import'](_0x3071('0xf7'));db[_0x3071('0xf8')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf9'));db['WhatsappAccount']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xfa'));db[_0x3071('0xfb')]=db['sequelize'][_0x3071('0x14')]('../api/whatsappApplication/whatsappApplication.model');db[_0x3071('0xfc')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/whatsappInteraction/whatsappInteraction.model');db[_0x3071('0xfd')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xfe'));db['WhatsappQueueReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xff'));db[_0x3071('0x100')]=db[_0x3071('0x3')]['import']('../api/whatsappTransferReport/whatsappTransferReport.model');db[_0x3071('0x101')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x102'));db['CloudProvider']=db['sequelize'][_0x3071('0x14')](_0x3071('0x103'));db['TeamVoiceQueue']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x104'));db['TeamVoicePrefix']=db['sequelize']['import'](_0x3071('0x105'));db[_0x3071('0x106')]=db[_0x3071('0x3')]['import']('../api/userVoicePrefix/userVoicePrefix.model');db[_0x3071('0x13')][_0x3071('0x107')](db[_0x3071('0x108')],{'as':_0x3071('0x108'),'onDelete':_0x3071('0x109'),'foreignKey':'UserId'});db[_0x3071('0x13')]['hasMany'](db[_0x3071('0x1d')],{'as':_0x3071('0x10a'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db['UserVoiceQueueRt'],{'as':_0x3071('0x10d'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x10e'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':'UserId'});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':_0x3071('0x110'),'foreignKey':'UserId'});db[_0x3071('0x13')]['hasMany'](db[_0x3071('0x7a')],{'as':_0x3071('0x7a'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x5d')],{'as':_0x3071('0x111'),'foreignKey':'UserId'});db[_0x3071('0x13')]['hasMany'](db['ChatInteraction'],{'as':_0x3071('0x112'),'foreignKey':_0x3071('0x10b')});db['User'][_0x3071('0x10c')](db['SmsInteraction'],{'as':_0x3071('0x113'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x4f')],{'as':_0x3071('0x114'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x44')],{'as':_0x3071('0x115'),'foreignKey':'UserId'});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0xfc')],{'as':'WhatsappInteractions','foreignKey':_0x3071('0x10b')});db['User'][_0x3071('0x10c')](db[_0x3071('0xf8')],{'as':_0x3071('0x116'),'foreignKey':_0x3071('0x117')});db['User']['belongsTo'](db['UserProfile'],{'as':_0x3071('0x118'),'foreignKey':'userProfileId'});db['User'][_0x3071('0x119')](db['ChatGroup'],{'as':_0x3071('0x11a'),'through':_0x3071('0x11b')});db[_0x3071('0x13')]['belongsToMany'](db[_0x3071('0x72')],{'as':'Contacts','through':'cm_user_has_contacts'});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xf2')],{'as':_0x3071('0x11c'),'through':_0x3071('0x11d')});db[_0x3071('0x13')][_0x3071('0x119')](db['Team'],{'through':_0x3071('0x11e')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x44')],{'as':_0x3071('0x115'),'through':_0x3071('0x11f')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x68')],{'as':'ChatInteractions','through':_0x3071('0x120')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x4f')],{'as':_0x3071('0x114'),'through':_0x3071('0x121')});db[_0x3071('0x13')]['belongsToMany'](db[_0x3071('0x56')],{'as':'SmsInteractions','through':_0x3071('0x122')});db[_0x3071('0x13')][_0x3071('0x119')](db['OpenchannelInteraction'],{'as':'OpenchannelInteractions','through':'user_has_openchannel_interactions'});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xfc')],{'as':'WhatsappInteractions','through':_0x3071('0x123')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x124')],{'as':_0x3071('0x125'),'through':_0x3071('0x31'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xf3')],{'as':'VoicePrefixes','through':_0x3071('0x106'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db['MailQueue'],{'as':_0x3071('0x126'),'through':_0x3071('0x35'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x6d')],{'as':_0x3071('0x127'),'through':_0x3071('0x33'),'required':![],'hooks':!![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x52')],{'as':_0x3071('0x128'),'through':_0x3071('0x37'),'required':![]});db['User'][_0x3071('0x119')](db[_0x3071('0x129')],{'as':'SmsQueues','through':'UserSmsQueue','required':![]});db['User']['belongsToMany'](db[_0x3071('0x61')],{'as':_0x3071('0x12a'),'through':'UserOpenchannelQueue','required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x101')],{'as':_0x3071('0x12b'),'through':_0x3071('0x3c'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xf2')],{'through':_0x3071('0x11d')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x63')],{'as':_0x3071('0x12c'),'through':'user_has_chat_websites'});db[_0x3071('0x13')][_0x3071('0x119')](db['FaxAccount'],{'as':_0x3071('0x12d'),'through':_0x3071('0x12e')});db[_0x3071('0x13')][_0x3071('0x119')](db['MailAccount'],{'as':_0x3071('0x12f'),'through':_0x3071('0x130')});db[_0x3071('0x13')][_0x3071('0x119')](db['OpenchannelAccount'],{'as':'OpenchannelAccounts','through':_0x3071('0x131')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x132')],{'as':_0x3071('0x133'),'through':_0x3071('0x134')});db[_0x3071('0x13')][_0x3071('0x119')](db['WhatsappAccount'],{'as':_0x3071('0x135'),'through':'user_has_whatsapp_accounts'});db['User'][_0x3071('0x119')](db[_0x3071('0x136')],{'as':'SquareProjects','through':'user_has_square_projects'});db[_0x3071('0x16')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x137'),'onDelete':'cascade','foreignKey':_0x3071('0x138')});db[_0x3071('0x17')][_0x3071('0x10c')](db[_0x3071('0x19')],{'onDelete':_0x3071('0x109')});db['VoiceExtension'][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':'Applications','onDelete':'cascade'});db['VoiceMusicOnHold'][_0x3071('0x119')](db[_0x3071('0x8e')],{'as':_0x3071('0x139'),'through':'moh_has_sounds'});db[_0x3071('0x124')][_0x3071('0x10c')](db['UserVoiceQueueRt'],{'as':_0x3071('0x13a'),'foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x74')],{'as':'Hoppers','foreignKey':'VoiceQueueId'});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':'HopperHistories','foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x7a')],{'as':'ReportAgentPreview','foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x76')],{'as':'HopperBlacks','foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')]['hasMany'](db[_0x3071('0x13c')],{'as':_0x3071('0x13d'),'foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x13e')](db['Trunk'],{'as':_0x3071('0x2c'),'foreignKey':'TrunkId'});db[_0x3071('0x124')]['belongsTo'](db[_0x3071('0x2c')],{'as':_0x3071('0x13f'),'foreignKey':_0x3071('0x140')});db[_0x3071('0x124')]['belongsTo'](db[_0x3071('0x88')],{'as':_0x3071('0x88'),'foreignKey':_0x3071('0x141')});db['VoiceQueue'][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x3071('0x124')][_0x3071('0x119')](db[_0x3071('0xf2')],{'as':_0x3071('0x11c'),'through':_0x3071('0x143')});db['VoiceQueue'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x31')});db['VoiceQueue'][_0x3071('0x119')](db[_0x3071('0xe0')],{'as':_0x3071('0x145'),'through':_0x3071('0x146')});db[_0x3071('0x124')][_0x3071('0x119')](db[_0x3071('0xf2')],{'as':_0x3071('0x147'),'through':'voice_queues_has_cm_blacklists'});db['VoiceRecording'][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':'User','foreignKey':_0x3071('0x10b')});db[_0x3071('0x1f')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x13'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x108')]['hasMany'](db[_0x3071('0x21')],{'as':_0x3071('0x148'),'onDelete':'cascade','foreignKey':_0x3071('0x149'),'sourceKey':_0x3071('0x14a')});db[_0x3071('0x21')]['belongsTo'](db[_0x3071('0x108')],{'foreignKey':_0x3071('0x149'),'targetKey':_0x3071('0x14a')});db[_0x3071('0x23')][_0x3071('0x10c')](db[_0x3071('0x29')],{'as':_0x3071('0x14b'),'foreignKey':_0x3071('0x14c'),'constraints':![]});db['VoiceCallReport'][_0x3071('0x10c')](db[_0x3071('0x27')],{'as':'AgentReports','foreignKey':'uniqueid','constraints':![]});db[_0x3071('0x23')]['belongsTo'](db[_0x3071('0x13')],{'as':'User','foreignKey':'UserId'});db[_0x3071('0x23')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x14f')]['belongsTo'](db[_0x3071('0x150')],{'as':_0x3071('0x150'),'foreignKey':'MailAccountId'});db[_0x3071('0x3e')][_0x3071('0x13e')](db['MailAccount'],{'as':_0x3071('0x150'),'foreignKey':_0x3071('0x151')});db[_0x3071('0x150')][_0x3071('0x107')](db[_0x3071('0x14f')],{'as':'Imap','onDelete':_0x3071('0x109')});db[_0x3071('0x150')][_0x3071('0x107')](db[_0x3071('0x3e')],{'as':'Smtp','onDelete':'cascade'});db[_0x3071('0x150')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x151'),'onDelete':_0x3071('0x109')});db[_0x3071('0x150')][_0x3071('0x10c')](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x151')});db[_0x3071('0x150')]['hasMany'](db[_0x3071('0x154')],{'as':'Messages','foreignKey':_0x3071('0x151')});db[_0x3071('0x150')][_0x3071('0x10c')](db[_0x3071('0x44')],{'as':_0x3071('0x155')});db[_0x3071('0x150')][_0x3071('0x10c')](db['MailApplication'],{'as':'Applications'});db[_0x3071('0x150')]['belongsTo'](db['CmList'],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db['MailAccount'][_0x3071('0x13e')](db['Template'],{'as':_0x3071('0x92'),'foreignKey':'TemplateId'});db[_0x3071('0x150')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':'mandatoryDispositionPauseId'});db['MailAccount']['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x130')});db['MailQueue'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x35')});db['MailQueue'][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x157'),'as':_0x3071('0x145')});db[_0x3071('0x44')][_0x3071('0x10c')](db[_0x3071('0x154')],{'as':'Messages','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x158')});db[_0x3071('0x44')][_0x3071('0x13e')](db[_0x3071('0x150')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x151')});db[_0x3071('0x44')]['belongsTo'](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x44')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':'Owner','foreignKey':_0x3071('0x10b')});db[_0x3071('0x44')]['belongsToMany'](db[_0x3071('0x90')],{'through':'mail_interaction_has_tags','as':'Tags'});db[_0x3071('0x44')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x15a'),'as':_0x3071('0x15b')});db[_0x3071('0x44')][_0x3071('0x119')](db['User'],{'as':_0x3071('0x15c'),'through':_0x3071('0x11f'),'foreignKey':'MailInteractionId'});db[_0x3071('0x154')][_0x3071('0x10c')](db[_0x3071('0xe8')],{'as':_0x3071('0x15d'),'onDelete':_0x3071('0x109')});db[_0x3071('0x154')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x13')});db[_0x3071('0x154')][_0x3071('0x13e')](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':'Contact'});db[_0x3071('0x154')]['belongsTo'](db[_0x3071('0x44')],{'as':_0x3071('0x15e'),'foreignKey':_0x3071('0x158')});db[_0x3071('0x154')][_0x3071('0x13e')](db['MailAccount'],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x151')});db['MailMessage']['belongsTo'](db[_0x3071('0x63')],{'as':'ChatWebsite','foreignKey':_0x3071('0x15f')});db['MailMessage'][_0x3071('0x13e')](db['ChatOfflineMessage'],{'as':_0x3071('0x6b'),'foreignKey':_0x3071('0x160')});db[_0x3071('0x46')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x161')});db['MailApplication'][_0x3071('0x13e')](db[_0x3071('0x41')],{'onDelete':'restrict'});db[_0x3071('0x46')]['belongsTo'](db['MailAccount'],{'onDelete':_0x3071('0x161')});db[_0x3071('0x46')][_0x3071('0x13e')](db[_0x3071('0x88')],{'onDelete':_0x3071('0x161'),'foreignKey':'IntervalId'});db[_0x3071('0x46')][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x162')});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x150')],{});db['MailQueueReport']['belongsTo'](db[_0x3071('0xf2')],{'as':'List','foreignKey':_0x3071('0x163')});db[_0x3071('0x48')][_0x3071('0x13e')](db['CmContact'],{'as':'Contact','foreignKey':_0x3071('0x14e')});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x44')],{});db['MailQueueReport'][_0x3071('0x13e')](db[_0x3071('0x154')],{});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x41')],{});db['Dashboard'][_0x3071('0x10c')](db[_0x3071('0x164')],{'as':'Items','onDelete':'cascade'});db[_0x3071('0x4b')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x165'),'onDelete':_0x3071('0x109')});db[_0x3071('0x4b')]['hasMany'](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':'FaxAccountId'});db[_0x3071('0x4b')]['hasMany'](db[_0x3071('0x4f')],{'as':'Interactions'});db[_0x3071('0x4b')][_0x3071('0x10c')](db[_0x3071('0x4d')],{'as':_0x3071('0x166')});db[_0x3071('0x4b')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x167'),'onDelete':_0x3071('0x109')});db[_0x3071('0x4b')][_0x3071('0x10c')](db['FaxMessage'],{'as':_0x3071('0x148')});db[_0x3071('0x4b')][_0x3071('0x13e')](db[_0x3071('0x2c')],{'as':'Trunk'});db['FaxAccount'][_0x3071('0x13e')](db['CmList'],{'as':'List','foreignKey':_0x3071('0x163')});db[_0x3071('0x4b')]['belongsTo'](db[_0x3071('0x8a')],{'as':'mandatoryDispositionPause','foreignKey':_0x3071('0x168')});db[_0x3071('0x4b')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':'user_has_fax_accounts'});db[_0x3071('0x4d')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x161')});db[_0x3071('0x4d')][_0x3071('0x13e')](db[_0x3071('0x52')],{'onDelete':'restrict'});db[_0x3071('0x4d')][_0x3071('0x13e')](db[_0x3071('0x4b')],{'onDelete':_0x3071('0x161')});db['FaxApplication'][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':'restrict','foreignKey':_0x3071('0x162')});db[_0x3071('0x4f')][_0x3071('0x10c')](db[_0x3071('0x169')],{'as':_0x3071('0x148'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x16a')});db['FaxInteraction'][_0x3071('0x13e')](db[_0x3071('0x4b')],{'as':'Account','foreignKey':_0x3071('0x165')});db['FaxInteraction'][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':'Contact','foreignKey':_0x3071('0x14e')});db['FaxInteraction'][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x4f')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':'fax_interaction_has_tags','as':'Tags'});db['FaxInteraction']['belongsToMany'](db[_0x3071('0x90')],{'through':_0x3071('0x16c'),'as':_0x3071('0x15b')});db[_0x3071('0x4f')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':_0x3071('0x121'),'foreignKey':_0x3071('0x16a')});db[_0x3071('0x169')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'as':'User'});db['FaxMessage'][_0x3071('0x13e')](db[_0x3071('0x4f')],{'as':_0x3071('0x15e'),'foreignKey':_0x3071('0x16a')});db[_0x3071('0x169')][_0x3071('0x13e')](db['CmContact'],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d')});db[_0x3071('0x169')][_0x3071('0x13e')](db[_0x3071('0xe8')],{'as':_0x3071('0xe8'),'foreignKey':'AttachmentId'});db[_0x3071('0x169')][_0x3071('0x13e')](db[_0x3071('0x4b')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x165')});db[_0x3071('0x52')]['belongsToMany'](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x37')});db['FaxQueue'][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x16d'),'as':_0x3071('0x145')});db[_0x3071('0x53')][_0x3071('0x13e')](db[_0x3071('0x4b')],{});db[_0x3071('0x53')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0x53')]['belongsTo'](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x53')][_0x3071('0x13e')](db['FaxInteraction'],{});db['FaxQueueReport'][_0x3071('0x13e')](db[_0x3071('0x169')],{});db[_0x3071('0x53')][_0x3071('0x13e')](db['User'],{});db['FaxQueueReport'][_0x3071('0x13e')](db['FaxQueue'],{});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x16e'),'onDelete':_0x3071('0x109')});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x16e')});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x57')],{'as':'Messages','foreignKey':_0x3071('0x16e')});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x56')],{'as':_0x3071('0x155')});db[_0x3071('0x132')]['hasMany'](db[_0x3071('0x16f')],{'as':'Applications'});db[_0x3071('0x132')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db[_0x3071('0x132')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':_0x3071('0x168')});db[_0x3071('0x132')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':'Agents','through':_0x3071('0x134')});db[_0x3071('0x16f')][_0x3071('0x13e')](db['User'],{'onDelete':_0x3071('0x161')});db['SmsApplication'][_0x3071('0x13e')](db[_0x3071('0x129')],{'onDelete':_0x3071('0x161')});db['SmsApplication']['belongsTo'](db[_0x3071('0x132')],{'onDelete':_0x3071('0x161')});db[_0x3071('0x16f')][_0x3071('0x13e')](db[_0x3071('0x88')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x141')});db[_0x3071('0x16f')][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':_0x3071('0x161'),'foreignKey':'TagId'});db['SmsInteraction']['hasMany'](db[_0x3071('0x57')],{'as':_0x3071('0x148'),'onDelete':'cascade','foreignKey':_0x3071('0x170')});db[_0x3071('0x56')][_0x3071('0x13e')](db[_0x3071('0x132')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x16e')});db[_0x3071('0x56')][_0x3071('0x13e')](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x56')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x56')][_0x3071('0x119')](db['Tag'],{'through':_0x3071('0x171'),'as':_0x3071('0x172')});db[_0x3071('0x56')][_0x3071('0x119')](db['Tag'],{'through':_0x3071('0x171'),'as':_0x3071('0x15b')});db[_0x3071('0x56')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':'Users','through':_0x3071('0x122'),'foreignKey':'SmsInteractionId'});db['SmsMessage'][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x13')});db['SmsMessage'][_0x3071('0x13e')](db['CmContact'],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d')});db['SmsMessage'][_0x3071('0x13e')](db[_0x3071('0x56')],{'onDelete':_0x3071('0x109'),'as':'Interaction','foreignKey':_0x3071('0x170')});db[_0x3071('0x57')][_0x3071('0x13e')](db[_0x3071('0x132')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x16e')});db[_0x3071('0x129')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':'UserSmsQueue','foreignKey':_0x3071('0x173')});db[_0x3071('0x129')][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x174'),'as':_0x3071('0x145')});db[_0x3071('0x5a')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':'OpenchannelAccountId','onDelete':_0x3071('0x109')});db[_0x3071('0x5a')]['hasMany'](db['CannedAnswer'],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x175')});db[_0x3071('0x5a')][_0x3071('0x10c')](db[_0x3071('0x5d')],{'as':_0x3071('0x155'),'foreignKey':_0x3071('0x175')});db[_0x3071('0x5a')]['hasMany'](db[_0x3071('0x5f')],{'as':_0x3071('0x148'),'foreignKey':_0x3071('0x175')});db['OpenchannelAccount'][_0x3071('0x10c')](db[_0x3071('0x176')],{'as':'Applications','foreignKey':_0x3071('0x175')});db[_0x3071('0x5a')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0x5a')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':'mandatoryDispositionPause','foreignKey':'mandatoryDispositionPauseId'});db[_0x3071('0x5a')]['belongsToMany'](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x131')});db[_0x3071('0x176')][_0x3071('0x13e')](db['User'],{'onDelete':'restrict'});db['OpenchannelApplication'][_0x3071('0x13e')](db[_0x3071('0x61')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x177')});db['OpenchannelApplication'][_0x3071('0x13e')](db[_0x3071('0x5a')],{'onDelete':'restrict','foreignKey':_0x3071('0x175')});db['OpenchannelApplication']['belongsTo'](db[_0x3071('0x88')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x141')});db[_0x3071('0x176')][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':'restrict','foreignKey':_0x3071('0x162')});db[_0x3071('0x5d')][_0x3071('0x10c')](db[_0x3071('0x5f')],{'as':_0x3071('0x148'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x178')});db[_0x3071('0x5d')]['belongsTo'](db[_0x3071('0x5a')],{'as':'Account','foreignKey':_0x3071('0x175')});db[_0x3071('0x5d')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':'Contact','foreignKey':_0x3071('0x14e')});db[_0x3071('0x5d')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x5d')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x179'),'as':_0x3071('0x172')});db[_0x3071('0x5d')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x179'),'as':_0x3071('0x15b')});db[_0x3071('0x5d')]['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':'user_has_openchannel_interactions','foreignKey':_0x3071('0x178')});db[_0x3071('0x5f')]['belongsTo'](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x13')});db[_0x3071('0x5f')][_0x3071('0x13e')](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d')});db[_0x3071('0x5f')][_0x3071('0x13e')](db['OpenchannelInteraction'],{'onDelete':'cascade','as':_0x3071('0x15e'),'foreignKey':_0x3071('0x178')});db['OpenchannelMessage'][_0x3071('0x13e')](db[_0x3071('0xe8')],{'as':_0x3071('0xe8'),'foreignKey':'AttachmentId'});db['OpenchannelMessage'][_0x3071('0x13e')](db[_0x3071('0x5a')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x175')});db['OpenchannelQueue'][_0x3071('0x119')](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x3a'),'foreignKey':_0x3071('0x177')});db[_0x3071('0x61')]['belongsToMany'](db['Team'],{'through':_0x3071('0x17a'),'as':_0x3071('0x145')});db[_0x3071('0x63')][_0x3071('0x10c')](db['Disposition'],{'as':'Dispositions','foreignKey':'ChatWebsiteId','onDelete':'cascade'});db[_0x3071('0x63')][_0x3071('0x10c')](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x15f')});db[_0x3071('0x63')]['hasMany'](db[_0x3071('0x70')],{'as':_0x3071('0x17b')});db['ChatWebsite']['hasMany'](db[_0x3071('0x68')],{'as':_0x3071('0x155')});db[_0x3071('0x63')][_0x3071('0x10c')](db[_0x3071('0x66')],{'as':'Applications'});db[_0x3071('0x63')][_0x3071('0x10c')](db['ChatMessage'],{'as':_0x3071('0x148')});db[_0x3071('0x63')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':'List','foreignKey':_0x3071('0x163')});db[_0x3071('0x63')][_0x3071('0x13e')](db['Interval'],{'as':_0x3071('0x88'),'foreignKey':_0x3071('0x141')});db[_0x3071('0x63')][_0x3071('0x13e')](db[_0x3071('0x150')],{'as':_0x3071('0x150'),'foreignKey':'MailAccountId'});db[_0x3071('0x63')]['belongsTo'](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':_0x3071('0x168')});db[_0x3071('0x63')]['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x17c')});db[_0x3071('0x65')]['belongsTo'](db[_0x3071('0x5a')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x5d')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x5f')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x61')],{});db[_0x3071('0x66')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':'Agent','foreignKey':'UserId','onDelete':_0x3071('0x161')});db[_0x3071('0x66')]['belongsTo'](db[_0x3071('0x6d')],{'as':_0x3071('0x17d'),'foreignKey':_0x3071('0x17e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x66')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x17f'),'foreignKey':_0x3071('0x15f'),'onDelete':'restrict'});db['ChatApplication'][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x162')});db[_0x3071('0x68')][_0x3071('0x10c')](db[_0x3071('0x180')],{'as':_0x3071('0x148'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x181')});db[_0x3071('0x68')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x15f')});db[_0x3071('0x68')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':'ContactId'});db[_0x3071('0x68')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':'UserId'});db['ChatInteraction']['belongsToMany'](db[_0x3071('0x90')],{'through':_0x3071('0x182'),'as':'Tags'});db[_0x3071('0x68')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x182'),'as':_0x3071('0x15b')});db[_0x3071('0x68')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':'user_has_chat_interactions','foreignKey':_0x3071('0x181')});db['ChatMessage'][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':'cascade','as':_0x3071('0x13')});db['ChatMessage'][_0x3071('0x13e')](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':'Contact','foreignKey':_0x3071('0x14e')});db[_0x3071('0x180')][_0x3071('0x13e')](db[_0x3071('0x68')],{'onDelete':'cascade','as':_0x3071('0x15e'),'foreignKey':_0x3071('0x181')});db['ChatMessage']['belongsTo'](db[_0x3071('0xe8')],{'as':_0x3071('0xe8'),'foreignKey':_0x3071('0x183')});db[_0x3071('0x180')][_0x3071('0x13e')](db['ChatWebsite'],{'as':_0x3071('0x159'),'foreignKey':'ChatWebsiteId'});db[_0x3071('0x6b')][_0x3071('0x10c')](db[_0x3071('0xe8')],{'as':'Attachments','foreignKey':_0x3071('0x160'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x6b')]['belongsTo'](db['CmContact'],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x6b')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x15f')});db[_0x3071('0x6d')]['belongsToMany'](db[_0x3071('0x13')],{'as':'Agents','through':_0x3071('0x33'),'hooks':!![]});db[_0x3071('0x6d')][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x184'),'as':_0x3071('0x145')});db['ChatGroup']['hasMany'](db[_0x3071('0xcf')],{'as':_0x3071('0x148'),'foreignKey':_0x3071('0x185'),'onDelete':'cascade'});db[_0x3071('0x186')]['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x13a'),'through':_0x3071('0x11b')});db[_0x3071('0x70')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x17f'),'foreignKey':_0x3071('0x15f')});db['CmCompany'][_0x3071('0x10c')](db[_0x3071('0x72')],{'as':_0x3071('0x187'),'foreignKey':_0x3071('0x188')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x74')],{'as':'Hoppers','foreignKey':_0x3071('0x14e')});db[_0x3071('0x72')]['hasMany'](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':_0x3071('0x14e')});db['CmContact'][_0x3071('0x10c')](db['CmHopperHistory'],{'as':_0x3071('0x189'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x7a')],{'as':_0x3071('0x7a'),'foreignKey':'ContactId'});db[_0x3071('0x72')][_0x3071('0x10c')](db['JscriptySessionReport'],{'as':'JscriptySessions','foreignKey':_0x3071('0x14e')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x5d')],{'as':_0x3071('0x111'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x68')],{'as':'ChatInteractions','foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x56')],{'as':_0x3071('0x113'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x4f')],{'as':_0x3071('0x114'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x44')],{'as':'MailInteractions','foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')]['belongsTo'](db[_0x3071('0x18a')],{'as':'Company','foreignKey':'CompanyId'});db[_0x3071('0x72')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db[_0x3071('0x72')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':_0x3071('0x18b')});db[_0x3071('0x72')][_0x3071('0x119')](db[_0x3071('0x90')],{'as':_0x3071('0x172'),'through':_0x3071('0x18c')});db[_0x3071('0x72')][_0x3071('0x119')](db['Tag'],{'through':_0x3071('0x18c'),'as':_0x3071('0x15b')});db[_0x3071('0x74')][_0x3071('0x13e')](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e'),'onDelete':'cascade'});db[_0x3071('0x74')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':'List','foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db[_0x3071('0x74')][_0x3071('0x13e')](db['User'],{'as':_0x3071('0x18d'),'foreignKey':'UserId'});db[_0x3071('0x74')][_0x3071('0x13e')](db['VoiceQueue'],{'as':_0x3071('0x17d'),'foreignKey':'VoiceQueueId','onDelete':_0x3071('0x109')});db[_0x3071('0x74')][_0x3071('0x13e')](db[_0x3071('0xe4')],{'as':'Campaign','foreignKey':'CampaignId','onDelete':'cascade'});db[_0x3071('0x74')][_0x3071('0x13e')](db['User'],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x18e')});db[_0x3071('0x76')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x109')});db[_0x3071('0x76')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db['CmHopperBlack'][_0x3071('0x13e')](db[_0x3071('0x124')],{'as':_0x3071('0x17d'),'foreignKey':_0x3071('0x13b'),'onDelete':_0x3071('0x109')});db['CmHopperBlack'][_0x3071('0x13e')](db['Campaign'],{'as':_0x3071('0xe4'),'foreignKey':_0x3071('0x18f'),'onDelete':'cascade'});db[_0x3071('0x80')][_0x3071('0x10c')](db[_0x3071('0x86')],{'as':{'plural':_0x3071('0x190'),'singular':_0x3071('0x191')},'foreignKey':_0x3071('0x192'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x80')][_0x3071('0x10c')](db['Condition'],{'as':{'plural':_0x3071('0x193'),'singular':'OneAny'},'foreignKey':'AutomationAnyId','onDelete':'cascade','hooks':!![]});db['Automation'][_0x3071('0x10c')](db[_0x3071('0x7e')],{'as':_0x3071('0x194'),'foreignKey':'AutomationId','onDelete':'cascade','hooks':!![]});db[_0x3071('0x84')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x195'),'onDelete':_0x3071('0x109')});db[_0x3071('0x88')]['hasMany'](db[_0x3071('0x88')],{'as':_0x3071('0x196'),'foreignKey':_0x3071('0x141'),'onDelete':_0x3071('0x109'),'hooks':!![],'required':![]});db[_0x3071('0x88')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x10e'),'foreignKey':'IntervalId','onDelete':'restrict'});db[_0x3071('0x88')][_0x3071('0x10c')](db['MailApplication'],{'as':_0x3071('0x197'),'foreignKey':'IntervalId'});db[_0x3071('0x88')][_0x3071('0x10c')](db[_0x3071('0x66')],{'as':'ChatApplications','foreignKey':_0x3071('0x141')});db['Interval'][_0x3071('0x10c')](db[_0x3071('0x4d')],{'as':'FaxApplications','foreignKey':_0x3071('0x141')});db[_0x3071('0x88')][_0x3071('0x10c')](db['SmsApplication'],{'as':_0x3071('0x198'),'foreignKey':'IntervalId'});db[_0x3071('0x8c')]['belongsTo'](db[_0x3071('0x150')],{});db['Schedule']['belongsTo'](db['AnalyticDefaultReport'],{'foreignKey':_0x3071('0x199')});db[_0x3071('0x8c')][_0x3071('0x13e')](db[_0x3071('0x19a')],{'foreignKey':'CustomReportId'});db['Sound']['belongsToMany'](db[_0x3071('0x19b')],{'as':_0x3071('0x19c'),'through':_0x3071('0x19d'),'onDelete':_0x3071('0x161')});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x72')],{'through':_0x3071('0x18c')});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x68')],{'through':'chat_interaction_has_tags'});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x44')],{'through':_0x3071('0x15a')});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x56')],{'through':'sms_interaction_has_tags'});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x4f')],{'through':'fax_interaction_has_tags'});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x5d')],{'through':_0x3071('0x179')});db[_0x3071('0x90')][_0x3071('0x119')](db['WhatsappInteraction'],{'through':_0x3071('0x19e')});db[_0x3071('0x94')][_0x3071('0x10c')](db['Condition'],{'as':{'plural':_0x3071('0x19f'),'singular':_0x3071('0x1a0')},'foreignKey':'TriggerAllId','onDelete':'cascade','hooks':!![]});db[_0x3071('0x94')]['hasMany'](db[_0x3071('0x86')],{'as':{'plural':_0x3071('0x1a1'),'singular':'AnyCondition'},'foreignKey':_0x3071('0x1a2'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x94')][_0x3071('0x10c')](db['Action'],{'as':_0x3071('0x194'),'foreignKey':'TriggerId','onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x19a')][_0x3071('0x10c')](db[_0x3071('0xa0')],{'as':_0x3071('0x1a3'),'onDelete':'cascade','foreignKey':'CustomReportId','hooks':!![]});db[_0x3071('0x9c')][_0x3071('0x10c')](db[_0x3071('0xa0')],{'as':'Fields','onDelete':'cascade','foreignKey':'DefaultReportId'});db[_0x3071('0x9f')][_0x3071('0x10c')](db[_0x3071('0xa0')],{'as':'Fields','onDelete':_0x3071('0x109'),'foreignKey':'MetricId'});db['AnalyticFieldReport'][_0x3071('0x13e')](db['AnalyticMetric'],{'foreignKey':_0x3071('0x1a4')});db['SalesforceAccount'][_0x3071('0x10c')](db[_0x3071('0xa4')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xa4')][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1a7'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xa4')][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db['SalesforceConfiguration'][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1a3'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xa4')][_0x3071('0x13e')](db[_0x3071('0xa2')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xa6')]['hasMany'](db[_0x3071('0xa6')],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xa6')][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1ac'),'foreignKey':'DescriptionId'});db['SalesforceField']['hasMany'](db[_0x3071('0xa6')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xa6')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db[_0x3071('0xa8')][_0x3071('0x10c')](db[_0x3071('0xa9')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db['SugarcrmConfiguration']['hasMany'](db[_0x3071('0xab')],{'as':'Subjects','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db['SugarcrmConfiguration'][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xa9')][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':'Fields','onDelete':_0x3071('0x109'),'foreignKey':'FieldId'});db[_0x3071('0xa9')][_0x3071('0x13e')](db[_0x3071('0xa8')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xab')]['hasMany'](db[_0x3071('0xab')],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db['SugarcrmField'][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xab')][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':'Field','foreignKey':_0x3071('0x1ab')});db[_0x3071('0xab')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':'VariableId'});db[_0x3071('0xad')][_0x3071('0x10c')](db[_0x3071('0x1b0')],{'as':'Configurations','onDelete':_0x3071('0x109'),'foreignKey':'AccountId'});db[_0x3071('0x1b0')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':_0x3071('0x1a7'),'onDelete':'cascade','foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b0')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':'Descriptions','onDelete':'cascade','foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b0')][_0x3071('0x10c')](db['DeskField'],{'as':_0x3071('0x1a3'),'onDelete':'cascade','foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b0')][_0x3071('0x13e')](db[_0x3071('0xad')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b0')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x1b1')});db[_0x3071('0xaf')]['hasMany'](db['DeskField'],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db[_0x3071('0xaf')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':'Description','foreignKey':_0x3071('0x1aa')});db[_0x3071('0xaf')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xaf')]['belongsTo'](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db[_0x3071('0xb1')][_0x3071('0x10c')](db[_0x3071('0x1b2')],{'as':_0x3071('0x1a5'),'onDelete':'cascade','foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b2')][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':'Subjects','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db['ZohoConfiguration'][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db['ZohoConfiguration']['hasMany'](db[_0x3071('0xb4')],{'as':'Fields','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b2')]['belongsTo'](db[_0x3071('0xb1')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xb4')][_0x3071('0x10c')](db['ZohoField'],{'as':_0x3071('0x1af'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xb4')][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':'Description','foreignKey':_0x3071('0x1aa')});db[_0x3071('0xb4')][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xb4')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db[_0x3071('0xb5')][_0x3071('0x10c')](db['ZendeskConfiguration'],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b3')][_0x3071('0x10c')](db['ZendeskField'],{'as':_0x3071('0x1a7'),'foreignKey':'SubjectId'});db[_0x3071('0x1b3')]['hasMany'](db[_0x3071('0xb7')],{'as':_0x3071('0x1a9'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b3')][_0x3071('0x10c')](db[_0x3071('0xb7')],{'as':_0x3071('0x1a3'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b3')][_0x3071('0x13e')](db[_0x3071('0xb5')],{'as':'Account','foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b3')]['belongsToMany'](db['Tag'],{'through':_0x3071('0x1b4')});db[_0x3071('0xb7')][_0x3071('0x10c')](db[_0x3071('0xb7')],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xb7')][_0x3071('0x10c')](db[_0x3071('0xb7')],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xb7')][_0x3071('0x10c')](db['ZendeskField'],{'as':_0x3071('0x1ad'),'foreignKey':'FieldId'});db[_0x3071('0xb7')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':'Variable','foreignKey':_0x3071('0x1ae')});db[_0x3071('0xb9')][_0x3071('0x10c')](db[_0x3071('0xba')],{'as':'Configurations','onDelete':'cascade','foreignKey':_0x3071('0x1a6')});db[_0x3071('0xba')][_0x3071('0x10c')](db['FreshdeskField'],{'as':_0x3071('0x1a7'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xba')][_0x3071('0x10c')](db['FreshdeskField'],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':'DescriptionId'});db[_0x3071('0xba')][_0x3071('0x10c')](db[_0x3071('0xbc')],{'as':_0x3071('0x1a3'),'onDelete':_0x3071('0x109'),'foreignKey':'FieldId'});db[_0x3071('0xba')][_0x3071('0x13e')](db['FreshdeskAccount'],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xba')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':'int_freshdesk_configuration_has_tags'});db['FreshdeskField'][_0x3071('0x10c')](db['FreshdeskField'],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xbc')][_0x3071('0x10c')](db['FreshdeskField'],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xbc')][_0x3071('0x10c')](db[_0x3071('0xbc')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xbc')]['belongsTo'](db[_0x3071('0x96')],{'as':'Variable','foreignKey':'VariableId'});db[_0x3071('0x1b5')][_0x3071('0x10c')](db[_0x3071('0x1b6')],{'as':_0x3071('0x1a5'),'onDelete':'cascade','foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b6')][_0x3071('0x10c')](db[_0x3071('0xc0')],{'as':_0x3071('0x1a7'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b6')][_0x3071('0x10c')](db[_0x3071('0xc0')],{'as':_0x3071('0x1a9'),'foreignKey':'DescriptionId'});db[_0x3071('0x1b6')][_0x3071('0x10c')](db[_0x3071('0xc0')],{'as':'Fields','foreignKey':_0x3071('0x1ab')});db['VtigerConfiguration'][_0x3071('0x13e')](db[_0x3071('0x1b5')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db[_0x3071('0xc0')][_0x3071('0x10c')](db['VtigerField'],{'as':_0x3071('0x1af'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xc0')]['hasMany'](db[_0x3071('0xc0')],{'as':'Description','foreignKey':_0x3071('0x1aa')});db[_0x3071('0xc0')][_0x3071('0x10c')](db['VtigerField'],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db['VtigerField'][_0x3071('0x13e')](db['Variable'],{'as':'Variable','foreignKey':'VariableId'});db[_0x3071('0xc2')][_0x3071('0x10c')](db[_0x3071('0xc4')],{'as':'Configurations','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xc4')][_0x3071('0x10c')](db[_0x3071('0x1b7')],{'as':_0x3071('0x1a7'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xc4')][_0x3071('0x10c')](db['ServicenowField'],{'as':_0x3071('0x1a9'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xc4')][_0x3071('0x10c')](db['ServicenowField'],{'as':_0x3071('0x1a3'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xc4')]['belongsTo'](db[_0x3071('0xc2')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db[_0x3071('0x1b7')][_0x3071('0x10c')](db[_0x3071('0x1b7')],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b7')][_0x3071('0x10c')](db['ServicenowField'],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b7')][_0x3071('0x10c')](db[_0x3071('0x1b7')],{'as':'Field','foreignKey':'FieldId'});db[_0x3071('0x1b7')]['belongsTo'](db[_0x3071('0x96')],{'as':'Variable','foreignKey':_0x3071('0x1ae')});db[_0x3071('0x1b8')]['hasMany'](db[_0x3071('0x1b9')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b9')][_0x3071('0x10c')](db['Dynamics365Field'],{'as':'Subjects','onDelete':'cascade','foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b9')]['hasMany'](db[_0x3071('0xc7')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b9')]['hasMany'](db[_0x3071('0xc7')],{'as':_0x3071('0x1a3'),'onDelete':'cascade','foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b9')][_0x3071('0x13e')](db[_0x3071('0x1b8')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db['Dynamics365Field'][_0x3071('0x10c')](db[_0x3071('0xc7')],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db[_0x3071('0xc7')][_0x3071('0x10c')](db[_0x3071('0xc7')],{'as':_0x3071('0x1ac'),'foreignKey':'DescriptionId'});db[_0x3071('0xc7')][_0x3071('0x10c')](db[_0x3071('0xc7')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xc7')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':'Variable','foreignKey':_0x3071('0x1ae')});db[_0x3071('0x1ba')]['hasMany'](db[_0x3071('0xc9')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':'AccountId'});db['FreshsalesConfiguration'][_0x3071('0x10c')](db['FreshsalesField'],{'as':'Subjects','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xc9')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1a9'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xc9')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':'Fields','foreignKey':'FieldId'});db['FreshsalesConfiguration'][_0x3071('0x13e')](db[_0x3071('0x1ba')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db[_0x3071('0x1bb')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db[_0x3071('0x1bb')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1ac'),'foreignKey':'DescriptionId'});db[_0x3071('0x1bb')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1bb')][_0x3071('0x13e')](db['Variable'],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db['ChatQueueReport']['belongsTo'](db[_0x3071('0x63')],{});db[_0x3071('0xce')]['belongsTo'](db['CmList'],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xce')]['belongsTo'](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0xce')][_0x3071('0x13e')](db['ChatInteraction'],{});db[_0x3071('0xce')][_0x3071('0x13e')](db[_0x3071('0x180')],{});db[_0x3071('0xce')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0xce')]['belongsTo'](db[_0x3071('0x6d')],{});db[_0x3071('0xcf')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1bc')});db['ChatInternalMessage'][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1bd')});db[_0x3071('0x13c')]['hasMany'](db['JscriptyQuestionReport'],{'foreignKey':_0x3071('0x1be'),'onDelete':'cascade'});db[_0x3071('0x13c')][_0x3071('0x10c')](db[_0x3071('0xd1')],{'foreignKey':_0x3071('0x1be'),'onDelete':'cascade'});db[_0x3071('0xd4')]['belongsTo'](db['SmsAccount'],{});db[_0x3071('0xd4')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xd4')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db['SmsQueueReport'][_0x3071('0x13e')](db[_0x3071('0x56')],{});db['SmsQueueReport'][_0x3071('0x13e')](db['SmsMessage'],{});db[_0x3071('0xd4')][_0x3071('0x13e')](db['User'],{});db[_0x3071('0xd4')][_0x3071('0x13e')](db[_0x3071('0x129')],{});db[_0x3071('0x1bf')][_0x3071('0x10c')](db[_0x3071('0x13c')],{'foreignKey':_0x3071('0x1c0')});db[_0x3071('0x1bf')]['hasMany'](db[_0x3071('0x1c1')],{'foreignKey':'ProjectId'});db[_0x3071('0x1bf')][_0x3071('0x10c')](db[_0x3071('0xd1')],{'foreignKey':_0x3071('0x1c0')});db[_0x3071('0x136')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':_0x3071('0x1c2')});db['Team'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x11e')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x124')],{'through':_0x3071('0x146'),'as':_0x3071('0x125')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x41')],{'through':_0x3071('0x157'),'as':_0x3071('0x126')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x6d')],{'through':'team_has_chat_queues','as':_0x3071('0x127')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x52')],{'through':'team_has_fax_queues','as':_0x3071('0x128')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x129')],{'through':_0x3071('0x174'),'as':'SmsQueues'});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x61')],{'through':_0x3071('0x17a'),'as':_0x3071('0x12a')});db['Team'][_0x3071('0x119')](db[_0x3071('0x101')],{'through':_0x3071('0x1c3'),'as':_0x3071('0x12b')});db[_0x3071('0xe0')][_0x3071('0x119')](db['VoicePrefix'],{'through':_0x3071('0x1c4'),'as':_0x3071('0x1c5')});db['Campaign'][_0x3071('0x10c')](db['CmHopper'],{'as':_0x3071('0x1c6'),'foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':'HopperFinals','foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':'HopperHistories','foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')][_0x3071('0x10c')](db[_0x3071('0x76')],{'as':'HopperBlacks','foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')]['belongsTo'](db[_0x3071('0x2c')],{'as':_0x3071('0x2c'),'foreignKey':_0x3071('0x1c7')});db['Campaign'][_0x3071('0x13e')](db[_0x3071('0x2c')],{'as':_0x3071('0x13f'),'foreignKey':_0x3071('0x140')});db[_0x3071('0xe4')][_0x3071('0x13e')](db[_0x3071('0x88')],{'as':_0x3071('0x88'),'foreignKey':_0x3071('0x141')});db['Campaign']['belongsTo'](db[_0x3071('0x136')],{'as':'SquareProject','foreignKey':_0x3071('0x1c8')});db[_0x3071('0xe4')]['belongsToMany'](db[_0x3071('0xf2')],{'as':_0x3071('0x11c'),'through':_0x3071('0x1c9')});db[_0x3071('0xe4')]['belongsToMany'](db[_0x3071('0xf2')],{'as':_0x3071('0x147'),'through':'campaigns_has_cm_blacklists'});db[_0x3071('0xe8')][_0x3071('0x13e')](db[_0x3071('0x6b')],{'as':_0x3071('0x6b'),'foreignKey':_0x3071('0x160')});db[_0x3071('0x1ca')]['belongsTo'](db['MailMessage'],{});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x44')],{});db['MailTransferReport']['belongsTo'](db['MailAccount'],{'foreignKey':_0x3071('0x1cb'),'as':'FromAccount'});db['MailTransferReport']['belongsTo'](db[_0x3071('0x13')],{'foreignKey':'FromUserId','as':'FromAgent'});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x41')],{'foreignKey':'ToMailQueueId','as':_0x3071('0x1ce')});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x150')],{'foreignKey':_0x3071('0x1cf'),'as':_0x3071('0x1d0')});db[_0x3071('0xeb')][_0x3071('0x13e')](db['ChatMessage'],{});db['ChatTransferReport'][_0x3071('0x13e')](db['ChatInteraction'],{});db[_0x3071('0xeb')][_0x3071('0x13e')](db[_0x3071('0x63')],{'foreignKey':'FromChatWebsiteId','as':_0x3071('0x1d1')});db[_0x3071('0xeb')][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':'FromUserId','as':_0x3071('0x1d2')});db[_0x3071('0xeb')]['belongsTo'](db[_0x3071('0x13')],{'foreignKey':'ToUserId','as':'ToAgent'});db[_0x3071('0xeb')][_0x3071('0x13e')](db[_0x3071('0x6d')],{'foreignKey':_0x3071('0x1d3'),'as':_0x3071('0x1ce')});db['ChatTransferReport'][_0x3071('0x13e')](db[_0x3071('0x63')],{'foreignKey':_0x3071('0x1d4'),'as':'ToAccount'});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x169')],{});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x4f')],{});db['FaxTransferReport']['belongsTo'](db[_0x3071('0x4b')],{'foreignKey':_0x3071('0x1d5'),'as':'FromAccount'});db['FaxTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':'FromUserId','as':_0x3071('0x1d2')});db['FaxTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x52')],{'foreignKey':_0x3071('0x1d6'),'as':_0x3071('0x1ce')});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x4b')],{'foreignKey':_0x3071('0x1d7'),'as':'ToAccount'});db['OpenchannelTransferReport']['belongsTo'](db[_0x3071('0x5f')],{});db[_0x3071('0xef')][_0x3071('0x13e')](db['OpenchannelInteraction'],{});db[_0x3071('0xef')][_0x3071('0x13e')](db[_0x3071('0x5a')],{'foreignKey':_0x3071('0x1d8'),'as':'FromAccount'});db['OpenchannelTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1d9'),'as':'FromAgent'});db['OpenchannelTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':'ToUserId','as':_0x3071('0x1cd')});db['OpenchannelTransferReport'][_0x3071('0x13e')](db[_0x3071('0x61')],{'foreignKey':'ToOpenchannelQueueId','as':_0x3071('0x1ce')});db[_0x3071('0xef')][_0x3071('0x13e')](db['OpenchannelAccount'],{'foreignKey':_0x3071('0x1da'),'as':_0x3071('0x1d0')});db['SmsTransferReport'][_0x3071('0x13e')](db[_0x3071('0x57')],{});db[_0x3071('0x1db')][_0x3071('0x13e')](db['SmsInteraction'],{});db[_0x3071('0x1db')][_0x3071('0x13e')](db[_0x3071('0x132')],{'foreignKey':'FromSmsAccountId','as':_0x3071('0x1d1')});db['SmsTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1d9'),'as':_0x3071('0x1d2')});db[_0x3071('0x1db')][_0x3071('0x13e')](db['User'],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db['SmsTransferReport'][_0x3071('0x13e')](db[_0x3071('0x129')],{'foreignKey':'ToSmsQueueId','as':_0x3071('0x1ce')});db[_0x3071('0x1db')]['belongsTo'](db[_0x3071('0x132')],{'foreignKey':_0x3071('0x1dc'),'as':_0x3071('0x1d0')});db['CmList'][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db[_0x3071('0xf2')][_0x3071('0x10c')](db['CmCustomField'],{'as':_0x3071('0x1dd'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')]['hasMany'](db['CmContact'],{'as':_0x3071('0x187'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':'ListId'});db[_0x3071('0xf2')][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':_0x3071('0x110'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')][_0x3071('0x10c')](db[_0x3071('0x7a')],{'as':_0x3071('0x7a'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')]['belongsToMany'](db[_0x3071('0x124')],{'as':_0x3071('0x1de'),'through':'voice_queues_has_cm_lists'});db['CmList'][_0x3071('0x119')](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x11d')});db[_0x3071('0xf3')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x10e'),'onDelete':_0x3071('0x109')});db['VoicePrefix'][_0x3071('0x119')](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x106')});db[_0x3071('0xf3')][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x1c4'),'as':_0x3071('0x145')});db[_0x3071('0x118')][_0x3071('0x10c')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'foreignKey':_0x3071('0x1df')});db[_0x3071('0x118')][_0x3071('0x10c')](db[_0x3071('0x1e0')],{'as':_0x3071('0x1e1'),'foreignKey':_0x3071('0x1df'),'onDelete':'cascade'});db[_0x3071('0x1e0')][_0x3071('0x10c')](db[_0x3071('0xf6')],{'as':_0x3071('0x1e2'),'foreignKey':_0x3071('0x1e3'),'onDelete':_0x3071('0x109')});db[_0x3071('0x1e4')]['hasMany'](db['Disposition'],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x1e5'),'onDelete':'cascade'});db[_0x3071('0x1e4')][_0x3071('0x10c')](db['CannedAnswer'],{'as':'Answers','foreignKey':'WhatsappAccountId'});db['WhatsappAccount']['hasMany'](db[_0x3071('0xfd')],{'as':_0x3071('0x148'),'foreignKey':'WhatsappAccountId'});db[_0x3071('0x1e4')][_0x3071('0x10c')](db[_0x3071('0xfc')],{'as':_0x3071('0x155')});db[_0x3071('0x1e4')][_0x3071('0x10c')](db[_0x3071('0xfb')],{'as':_0x3071('0x166')});db[_0x3071('0x1e4')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db[_0x3071('0x1e4')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':_0x3071('0x168')});db['WhatsappAccount'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x1e6')});db[_0x3071('0xfb')]['belongsTo'](db['User'],{'onDelete':_0x3071('0x161')});db['WhatsappApplication']['belongsTo'](db[_0x3071('0x101')],{'onDelete':'restrict'});db[_0x3071('0xfb')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'onDelete':_0x3071('0x161')});db[_0x3071('0xfb')][_0x3071('0x13e')](db[_0x3071('0x88')],{'onDelete':'restrict','foreignKey':_0x3071('0x141')});db[_0x3071('0xfb')][_0x3071('0x13e')](db['Tag'],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x162')});db[_0x3071('0xfc')][_0x3071('0x10c')](db[_0x3071('0xfd')],{'as':'Messages','onDelete':_0x3071('0x109'),'foreignKey':'WhatsappInteractionId'});db[_0x3071('0xfc')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1e5')});db[_0x3071('0xfc')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0xfc')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0xfc')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x19e'),'as':'Tags'});db[_0x3071('0xfc')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x19e'),'as':'ThroughTags'});db[_0x3071('0xfc')]['belongsToMany'](db[_0x3071('0x13')],{'as':'Users','through':_0x3071('0x123'),'foreignKey':_0x3071('0x1e7')});db[_0x3071('0xfd')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x13')});db[_0x3071('0xfd')]['belongsTo'](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':'Contact'});db[_0x3071('0xfd')][_0x3071('0x13e')](db[_0x3071('0xfc')],{'onDelete':_0x3071('0x109'),'as':'Interaction','foreignKey':_0x3071('0x1e7')});db[_0x3071('0xfd')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1e5')});db['WhatsappQueueReport'][_0x3071('0x13e')](db['WhatsappAccount'],{});db['WhatsappQueueReport'][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db[_0x3071('0x1e8')][_0x3071('0x13e')](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x1e8')][_0x3071('0x13e')](db[_0x3071('0xfc')],{});db[_0x3071('0x1e8')][_0x3071('0x13e')](db['WhatsappQueue'],{});db[_0x3071('0x1e8')][_0x3071('0x13e')](db[_0x3071('0xfd')],{});db[_0x3071('0x1e8')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0x100')]['belongsTo'](db['WhatsappMessage'],{});db[_0x3071('0x100')][_0x3071('0x13e')](db[_0x3071('0xfc')],{});db[_0x3071('0x100')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'foreignKey':_0x3071('0x1e9'),'as':_0x3071('0x1d1')});db['WhatsappTransferReport'][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'foreignKey':_0x3071('0x1ea'),'as':'ToAccount'});db[_0x3071('0x100')][_0x3071('0x13e')](db[_0x3071('0x101')],{'foreignKey':_0x3071('0x1eb'),'as':_0x3071('0x1ce')});db[_0x3071('0x100')][_0x3071('0x13e')](db['User'],{'foreignKey':_0x3071('0x1d9'),'as':_0x3071('0x1d2')});db[_0x3071('0x100')][_0x3071('0x13e')](db['User'],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db['WhatsappQueue'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x3c'),'foreignKey':_0x3071('0x1ec')});db[_0x3071('0x101')][_0x3071('0x119')](db['Team'],{'through':_0x3071('0x1c3'),'as':_0x3071('0x145')});module[_0x3071('0x1ed')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0x1b29=['../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','Plugin','MailTransferReport','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','SmsTransferReport','../api/smsTransferReport/smsTransferReport.model','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','UserProfile','../api/userProfile/userProfile.model','UserProfileSection','../api/userProfileSection/userProfileSection.model','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','WhatsappAccount','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','../api/whatsappApplication/whatsappApplication.model','WhatsappInteraction','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','CloudProvider','../api/cloudProvider/cloudProvider.model','../api/realtime/realtime.model','TeamVoiceQueue','../api/teamVoiceQueue/teamVoiceQueue.model','hasOne','cascade','hasMany','Recordings','UserId','UserVoiceQueueRt','VoiceQueuesRt','Extensions','CmHopperFinal','HopperFinals','HopperHistory','ReportAgentPreview','OpenchannelInteractions','ChatInteraction','ChatInteractions','SmsInteractions','MailInteractions','WhatsappInteractions','UserNotifications','belongsTo','userProfileId','belongsToMany','chat_group_has_users','Contacts','cm_user_has_contacts','Lists','cm_user_has_lists','user_has_teams','user_has_chat_interactions','user_has_fax_interactions','user_has_sms_interactions','user_has_openchannel_interactions','user_has_whatsapp_interactions','VoiceQueues','MailQueues','ChatQueues','FaxQueues','SmsQueue','SmsQueues','OpenchannelQueues','WhatsappQueue','VoicePrefixes','user_has_voice_prefixes','ChatWebsites','user_has_chat_websites','FaxAccounts','MailAccount','user_has_mail_accounts','user_has_openchannel_accounts','SmsAccounts','user_has_sms_accounts','user_has_whatsapp_accounts','SquareProject','SquareProjects','ChanSpyId','Applications','Sounds','moh_has_sounds','VoiceQueueId','Hoppers','HopperHistories','HopperBlacks','TrunkId','TrunkBackup','TrunkBackupId','IntervalId','mandatoryDispositionPause','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','Teams','BlackLists','voice_queues_has_cm_blacklists','Messages','mailboxuser','mailbox','QueueCalls','VoiceAgentReport','uniqueid','Contact','Dispositions','MailAccountId','Answers','Interactions','List','ListId','MailInteractionId','Owner','mail_interaction_has_tags','Tags','ThroughTags','Users','user_has_mail_interactions','Attachments','Interaction','ChatWebsiteId','restrict','MailQueueReport','Dashboard','DashboardItem','Items','FaxAccountId','Exntensions','Trunk','TagId','FaxInteractionId','Account','fax_interaction_has_tags','FaxQueueReport','ContactId','SmsMessage','SmsAccountId','SmsInteractionId','sms_interaction_has_tags','SmsQueueId','team_has_sms_queues','OpenchannelAccountId','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','team_has_openchannel_queues','ProactiveActions','OpenchannelQueueReport','Queue','ChatInteractionId','chat_interaction_has_tags','AttachmentId','ChatOfflineMessageId','team_has_chat_queues','ChatGroupId','Members','Website','JscriptySessions','FaxInteractions','Company','cm_contact_has_tags','Agent','CampaignId','OwnerId','All','OneAll','AutomationAllId','Automation','OneAny','AutomationAnyId','Action','Actions','AutomationId','ParentId','Intervals','MailApplications','ChatApplications','FaxApplications','SmsApplications','DefaultReportId','CustomReportId','Mohs','whatsapp_interaction_has_tags','AllConditions','TriggerAllId','AnyConditions','AnyCondition','TriggerAnyId','TriggerId','AnalyticFieldReport','Fields','AnalyticMetric','MetricId','Configurations','AccountId','SubjectId','Descriptions','FieldId','Subject','Description','DescriptionId','Field','VariableId','SugarcrmAccount','Subjects','DeskAccount','int_desk_configuration_has_tags','ZohoField','FreshdeskConfiguration','int_freshdesk_configuration_has_tags','VtigerAccount','ServicenowAccount','Dynamics365Configuration','Dynamics365Field','FromId','ToId','SessionId','SmsQueueReport','ProjectId','user_has_square_projects','team_has_mail_queues','team_has_fax_queues','WhatsappQueues','SquareProjectId','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromMailAccountId','FromUserId','FromAgent','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','ToUserId','ToChatQueueId','ToAccount','FromFaxAccountId','FromAccount','ToFaxAccountId','OpenchannelTransferReport','ToOpenchannelQueueId','ToOpenchannelAccountId','FromSmsAccountId','ToSmsQueueId','ToSmsAccountId','CmCustomField','CustomFields','Queues','UserProfileSections','Resources','sectionId','WhatsappAccountId','WhatsappInteractionId','WhatsappQueueReport','FromWhatsappAccountId','ToWhatsappAccountId','ToQueueId','WhatsappQueueId','team_has_whatsapp_queues','exports','path','../config/environment','sequelize','lodash','jstz','defaultsDeep','xC@LL1234','127.0.0.1','mysql','utf8mb4','utf8','utf8_general_ci','sequelizeHistory','motion2','name','database','username','password','options','User','import','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','VoiceQueue','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','ScreenRecording','../api/screenRecording/screenRecording.model','VoiceMail','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','../api/voiceAgentReport/voiceAgentReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','../api/memberReport/memberReport.model','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','UserChatQueue','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','../api/userFaxQueue/userFaxQueue.model','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','MailServerIn','../api/mailServerIn/mailServerIn.model','MailServerOut','../api/mailServerOut/mailServerOut.model','MailQueue','../api/mailQueue/mailQueue.model','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailInteraction/mailInteraction.model','MailMessage','../api/mailMessage/mailMessage.model','MailApplication','../api/mailQueueReport/mailQueueReport.model','../api/dashboard/dashboard.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','FaxMessage','FaxQueue','../api/faxQueue/faxQueue.model','../api/faxQueueReport/faxQueueReport.model','SmsAccount','../api/smsAccount/smsAccount.model','SmsApplication','../api/smsApplication/smsApplication.model','SmsInteraction','../api/smsInteraction/smsInteraction.model','../api/smsMessage/smsMessage.model','OpenchannelAccount','OpenchannelApplication','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','../api/chatWebsite/chatWebsite.model','../api/openchannelQueueReport/openchannelQueueReport.model','ChatApplication','../api/chatApplication/chatApplication.model','../api/chatInteraction/chatInteraction.model','ChatMessage','../api/chatMessage/chatMessage.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','../api/chatQueue/chatQueue.model','ChatGroup','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','../api/cmCompany/cmCompany.model','CmContact','../api/cmContact/cmContact.model','CmHopper','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','../api/reportAgentPreview/reportAgentPreview.model','../api/action/action.model','CannedAnswer','../api/cannedAnswer/cannedAnswer.model','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Interval','../api/interval/interval.model','Pause','../api/pause/pause.model','Cdr','Schedule','../api/schedule/schedule.model','Sound','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','Trigger','../api/trigger/trigger.model','Variable','../api/variable/variable.model','Integration','../api/integration/integration.model','IntegrationReport','AnalyticCustomReport','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','../api/analyticFieldReport/analyticFieldReport.model','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','../api/intDeskAccount/intDeskAccount.model','DeskConfiguration','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','../api/intZohoField/intZohoField.model','ZendeskAccount','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','../api/intFreshdeskAccount/intFreshdeskAccount.model','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','VtigerConfiguration','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','Dynamics365Account','../api/intDynamics365Account/intDynamics365Account.model','../api/intDynamics365Configuration/intDynamics365Configuration.model','../api/intDynamics365Field/intDynamics365Field.model','FreshsalesAccount','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','FreshsalesField','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','../api/chatQueueReport/chatQueueReport.model','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyAnswerReport/jscriptyAnswerReport.model','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','JscriptySessionReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','JscriptyProject','../api/jscriptyProject/jscriptyProject.model','Setting','SquareOdbc','../api/squareOdbc/squareOdbc.model','SquareRecording','SquareMessage'];(function(_0x2ee99a,_0x4615cd){var _0x252e86=function(_0x10e212){while(--_0x10e212){_0x2ee99a['push'](_0x2ee99a['shift']());}};_0x252e86(++_0x4615cd);}(_0x1b29,0x116));var _0x91b2=function(_0x2f42af,_0x5eccb5){_0x2f42af=_0x2f42af-0x0;var _0x13b553=_0x1b29[_0x2f42af];return _0x13b553;};'use strict';var path=require(_0x91b2('0x0'));var config=require(_0x91b2('0x1'));var Sequelize=require(_0x91b2('0x2'));var _=require(_0x91b2('0x3'));var jstz=require(_0x91b2('0x4'));var timezone=jstz['determine']();config['sequelize']=_[_0x91b2('0x5')](config['sequelize'],{'database':'motion2','username':'xcall','password':_0x91b2('0x6'),'options':{'host':_0x91b2('0x7'),'port':0xcea,'dialect':_0x91b2('0x8'),'dialectOptions':{'charset':_0x91b2('0x9')},'logging':![],'timezone':timezone['name'](),'define':{'charset':_0x91b2('0xa'),'collate':_0x91b2('0xb')}}});config[_0x91b2('0xc')]=_[_0x91b2('0x5')](config[_0x91b2('0xc')],{'database':_0x91b2('0xd'),'username':'xcall','password':_0x91b2('0x6'),'options':{'host':'127.0.0.1','port':0xcea,'dialect':_0x91b2('0x8'),'dialectOptions':{'charset':_0x91b2('0x9')},'logging':![],'timezone':timezone[_0x91b2('0xe')](),'define':{'charset':_0x91b2('0xa'),'collate':_0x91b2('0xb')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x91b2('0x2')][_0x91b2('0xf')],config['sequelize'][_0x91b2('0x10')],config[_0x91b2('0x2')][_0x91b2('0x11')],config[_0x91b2('0x2')][_0x91b2('0x12')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x91b2('0xc')][_0x91b2('0xf')],config[_0x91b2('0xc')][_0x91b2('0x10')],config[_0x91b2('0xc')][_0x91b2('0x11')],config[_0x91b2('0xc')][_0x91b2('0x12')])};db[_0x91b2('0x13')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/user/user.model');db[_0x91b2('0x15')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x16'));db[_0x91b2('0x17')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x18'));db[_0x91b2('0x19')]=db['sequelize']['import'](_0x91b2('0x1a'));db[_0x91b2('0x1b')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x1c'));db[_0x91b2('0x1d')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x1e'));db[_0x91b2('0x1f')]=db['sequelize']['import'](_0x91b2('0x20'));db[_0x91b2('0x21')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x22'));db[_0x91b2('0x23')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x24'));db[_0x91b2('0x25')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x26'));db[_0x91b2('0x27')]=db['sequelize']['import']('../api/voiceCallReport/voiceCallReport.model');db[_0x91b2('0x28')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x29'));db['VoiceAgentReport']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x2a'));db[_0x91b2('0x2b')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x2c'));db[_0x91b2('0x2d')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x2e'));db['Trunk']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x2f'));db[_0x91b2('0x30')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x31'));db['UserVoiceQueueRt']=db[_0x91b2('0x2')]['import'](_0x91b2('0x32'));db[_0x91b2('0x33')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/userVoiceQueue/userVoiceQueue.model');db[_0x91b2('0x34')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x35'));db[_0x91b2('0x36')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x37'));db[_0x91b2('0x38')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x39'));db[_0x91b2('0x3a')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x3b'));db[_0x91b2('0x3c')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x3d'));db[_0x91b2('0x3e')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x3f'));db[_0x91b2('0x40')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x41'));db[_0x91b2('0x42')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x43'));db['MailAccount']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/mailAccount/mailAccount.model');db[_0x91b2('0x44')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x45'));db['MailSubstatus']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x46'));db[_0x91b2('0x47')]=db['sequelize']['import'](_0x91b2('0x48'));db[_0x91b2('0x49')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x4a'));db[_0x91b2('0x4b')]=db[_0x91b2('0x2')]['import']('../api/mailApplication/mailApplication.model');db['MailQueueReport']=db[_0x91b2('0x2')]['import'](_0x91b2('0x4c'));db['Dashboard']=db[_0x91b2('0x2')]['import'](_0x91b2('0x4d'));db['DashboardItem']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/dashboardItem/dashboardItem.model');db[_0x91b2('0x4e')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x4f'));db[_0x91b2('0x50')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x51'));db[_0x91b2('0x52')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x53'));db[_0x91b2('0x54')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/faxMessage/faxMessage.model');db[_0x91b2('0x55')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x56'));db['FaxQueueReport']=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x57'));db[_0x91b2('0x58')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x59'));db[_0x91b2('0x5a')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x5b'));db[_0x91b2('0x5c')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x5d'));db['SmsMessage']=db[_0x91b2('0x2')]['import'](_0x91b2('0x5e'));db['SmsQueue']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/smsQueue/smsQueue.model');db[_0x91b2('0x5f')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/openchannelAccount/openchannelAccount.model');db[_0x91b2('0x60')]=db[_0x91b2('0x2')]['import']('../api/openchannelApplication/openchannelApplication.model');db[_0x91b2('0x61')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x62'));db[_0x91b2('0x63')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x64'));db[_0x91b2('0x65')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x66'));db[_0x91b2('0x67')]=db['sequelize']['import'](_0x91b2('0x68'));db['OpenchannelQueueReport']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x69'));db[_0x91b2('0x6a')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x6b'));db['ChatInteraction']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x6c'));db[_0x91b2('0x6d')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x6e'));db[_0x91b2('0x6f')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x70'));db[_0x91b2('0x71')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x72'));db[_0x91b2('0x73')]=db[_0x91b2('0x2')]['import']('../api/chatGroup/chatGroup.model');db[_0x91b2('0x74')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x75'));db[_0x91b2('0x76')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x77'));db[_0x91b2('0x78')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x79'));db[_0x91b2('0x7a')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/cmHopper/cmHopper.model');db[_0x91b2('0x7b')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x7c'));db['CmHopperFinal']=db[_0x91b2('0x2')]['import']('../api/cmHopperFinal/cmHopperFinal.model');db[_0x91b2('0x7d')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x7e'));db['ReportAgentPreview']=db['sequelize']['import'](_0x91b2('0x7f'));db['CmCustomField']=db['sequelize']['import']('../api/cmCustomField/cmCustomField.model');db['Action']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x80'));db['Automation']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/automation/automation.model');db[_0x91b2('0x81')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x82'));db[_0x91b2('0x83')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x84'));db[_0x91b2('0x85')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x86'));db[_0x91b2('0x87')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x88'));db[_0x91b2('0x89')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x8a'));db[_0x91b2('0x8b')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/cdr/cdr.model');db['VoiceQueuesLog']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/voiceQueuesLog/voiceQueuesLog.model');db[_0x91b2('0x8c')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x8d'));db[_0x91b2('0x8e')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x8f'));db[_0x91b2('0x90')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x91'));db[_0x91b2('0x92')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x93'));db[_0x91b2('0x94')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x95'));db[_0x91b2('0x96')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x97'));db[_0x91b2('0x98')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x99'));db[_0x91b2('0x9a')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/integrationReport/integrationReport.model');db[_0x91b2('0x9b')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x9c'));db[_0x91b2('0x9d')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x9e'));db[_0x91b2('0x9f')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xa0'));db['AnalyticMetric']=db['sequelize'][_0x91b2('0x14')]('../api/analyticMetric/analyticMetric.model');db['AnalyticFieldReport']=db['sequelize']['import'](_0x91b2('0xa1'));db['AnalyticTreeReport']=db['sequelize']['import'](_0x91b2('0xa2'));db[_0x91b2('0xa3')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xa4'));db[_0x91b2('0xa5')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xa6'));db[_0x91b2('0xa7')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xa8'));db['SugarcrmAccount']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xa9'));db[_0x91b2('0xaa')]=db['sequelize'][_0x91b2('0x14')]('../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model');db[_0x91b2('0xab')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xac'));db['DeskAccount']=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xad'));db[_0x91b2('0xae')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xaf'));db[_0x91b2('0xb0')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xb1'));db[_0x91b2('0xb2')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xb3'));db[_0x91b2('0xb4')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xb5'));db['ZohoField']=db[_0x91b2('0x2')]['import'](_0x91b2('0xb6'));db[_0x91b2('0xb7')]=db[_0x91b2('0x2')]['import']('../api/intZendeskAccount/intZendeskAccount.model');db[_0x91b2('0xb8')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xb9'));db[_0x91b2('0xba')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xbb'));db[_0x91b2('0xbc')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xbd'));db['FreshdeskConfiguration']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model');db[_0x91b2('0xbe')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xbf'));db['VtigerAccount']=db['sequelize'][_0x91b2('0x14')]('../api/intVtigerAccount/intVtigerAccount.model');db[_0x91b2('0xc0')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xc1'));db[_0x91b2('0xc2')]=db['sequelize']['import'](_0x91b2('0xc3'));db['ServicenowAccount']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xc4'));db[_0x91b2('0xc5')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xc6'));db[_0x91b2('0xc7')]=db['sequelize']['import'](_0x91b2('0xc8'));db[_0x91b2('0xc9')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xca'));db['Dynamics365Configuration']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xcb'));db['Dynamics365Field']=db[_0x91b2('0x2')]['import'](_0x91b2('0xcc'));db[_0x91b2('0xcd')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xce'));db[_0x91b2('0xcf')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xd0'));db[_0x91b2('0xd1')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xd2'));db['Integration']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x99'));db[_0x91b2('0xd3')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xd4'));db[_0x91b2('0xd5')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xd6'));db[_0x91b2('0xd7')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xd8'));db[_0x91b2('0xd9')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xda'));db[_0x91b2('0xdb')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xdc'));db[_0x91b2('0xdd')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/jscriptySessionReport/jscriptySessionReport.model');db['SmsQueueReport']=db[_0x91b2('0x2')]['import'](_0x91b2('0xde'));db[_0x91b2('0xdf')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xe0'));db[_0x91b2('0xe1')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xe2'));db[_0x91b2('0xe3')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xe4'));db[_0x91b2('0xe5')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/setting/setting.model');db[_0x91b2('0xe6')]=db['sequelize']['import'](_0x91b2('0xe7'));db['SquareProject']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/squareProject/squareProject.model');db[_0x91b2('0xe8')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/squareRecording/squareRecording.model');db[_0x91b2('0xe9')]=db['sequelize']['import'](_0x91b2('0xea'));db[_0x91b2('0xeb')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xec'));db[_0x91b2('0xed')]=db['sequelize'][_0x91b2('0x14')]('../api/license/license.model');db[_0x91b2('0xee')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xef'));db[_0x91b2('0xf0')]=db[_0x91b2('0x2')]['import'](_0x91b2('0xf1'));db[_0x91b2('0xf2')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xf3'));db[_0x91b2('0xf4')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/plugin/plugin.model');db[_0x91b2('0xf5')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/mailTransferReport/mailTransferReport.model');db[_0x91b2('0xf6')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xf7'));db[_0x91b2('0xf8')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/faxTransferReport/faxTransferReport.model');db['OpenchannelTransferReport']=db['sequelize']['import']('../api/openchannelTransferReport/openchannelTransferReport.model');db[_0x91b2('0xf9')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0xfa'));db[_0x91b2('0xfb')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xfc'));db[_0x91b2('0xfd')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0xfe'));db[_0x91b2('0xff')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x100'));db[_0x91b2('0x101')]=db[_0x91b2('0x2')]['import'](_0x91b2('0x102'));db[_0x91b2('0x103')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x104'));db[_0x91b2('0x105')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x106'));db[_0x91b2('0x107')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x108'));db[_0x91b2('0x109')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x10a'));db[_0x91b2('0x10b')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/whatsappInteraction/whatsappInteraction.model');db[_0x91b2('0x10c')]=db['sequelize'][_0x91b2('0x14')](_0x91b2('0x10d'));db['WhatsappQueueReport']=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x10e'));db[_0x91b2('0x10f')]=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/whatsappTransferReport/whatsappTransferReport.model');db['WhatsappQueue']=db[_0x91b2('0x2')][_0x91b2('0x14')]('../api/whatsappQueue/whatsappQueue.model');db[_0x91b2('0x110')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x111'));db['Realtime']=db[_0x91b2('0x2')]['import'](_0x91b2('0x112'));db[_0x91b2('0x113')]=db[_0x91b2('0x2')][_0x91b2('0x14')](_0x91b2('0x114'));db[_0x91b2('0x13')][_0x91b2('0x115')](db[_0x91b2('0x23')],{'as':_0x91b2('0x23'),'onDelete':_0x91b2('0x116'),'foreignKey':'UserId'});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x1f')],{'as':_0x91b2('0x118'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x11a')],{'as':_0x91b2('0x11b'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')]['hasMany'](db['VoiceExtension'],{'as':_0x91b2('0x11c'),'onDelete':_0x91b2('0x116'),'hooks':!![]});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x11d')],{'as':_0x91b2('0x11e'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db['CmHopperHistory'],{'as':_0x91b2('0x11f'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x120')],{'as':'ReportAgentPreview','foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x61')],{'as':_0x91b2('0x121'),'foreignKey':_0x91b2('0x119')});db['User'][_0x91b2('0x117')](db[_0x91b2('0x122')],{'as':_0x91b2('0x123'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x5c')],{'as':_0x91b2('0x124'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x52')],{'as':'FaxInteractions','foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db['MailInteraction'],{'as':_0x91b2('0x125'),'foreignKey':'UserId'});db['User'][_0x91b2('0x117')](db['WhatsappInteraction'],{'as':_0x91b2('0x126'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x13')][_0x91b2('0x117')](db[_0x91b2('0x105')],{'as':_0x91b2('0x127'),'foreignKey':'SenderId'});db[_0x91b2('0x13')][_0x91b2('0x128')](db[_0x91b2('0xff')],{'as':_0x91b2('0xff'),'foreignKey':_0x91b2('0x129')});db['User'][_0x91b2('0x12a')](db[_0x91b2('0x73')],{'as':'Groups','through':_0x91b2('0x12b')});db['User'][_0x91b2('0x12a')](db[_0x91b2('0x78')],{'as':_0x91b2('0x12c'),'through':_0x91b2('0x12d')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db['CmList'],{'as':_0x91b2('0x12e'),'through':_0x91b2('0x12f')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db['Team'],{'through':_0x91b2('0x130')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x47')],{'as':'MailInteractions','through':'user_has_mail_interactions'});db[_0x91b2('0x13')][_0x91b2('0x12a')](db['ChatInteraction'],{'as':_0x91b2('0x123'),'through':_0x91b2('0x131')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x52')],{'as':'FaxInteractions','through':_0x91b2('0x132')});db['User'][_0x91b2('0x12a')](db[_0x91b2('0x5c')],{'as':_0x91b2('0x124'),'through':_0x91b2('0x133')});db[_0x91b2('0x13')]['belongsToMany'](db[_0x91b2('0x61')],{'as':_0x91b2('0x121'),'through':_0x91b2('0x134')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db['WhatsappInteraction'],{'as':_0x91b2('0x126'),'through':_0x91b2('0x135')});db[_0x91b2('0x13')]['belongsToMany'](db['VoiceQueue'],{'as':_0x91b2('0x136'),'through':'UserVoiceQueue','required':![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x44')],{'as':_0x91b2('0x137'),'through':'UserMailQueue','required':![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x71')],{'as':_0x91b2('0x138'),'through':'UserChatQueue','required':![],'hooks':!![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x55')],{'as':_0x91b2('0x139'),'through':_0x91b2('0x38'),'required':![]});db[_0x91b2('0x13')]['belongsToMany'](db[_0x91b2('0x13a')],{'as':_0x91b2('0x13b'),'through':_0x91b2('0x3a'),'required':![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x65')],{'as':_0x91b2('0x13c'),'through':_0x91b2('0x3c'),'required':![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x13d')],{'as':'WhatsappQueues','through':_0x91b2('0x3e'),'required':![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0xfb')],{'through':_0x91b2('0x12f')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0xfd')],{'as':_0x91b2('0x13e'),'through':_0x91b2('0x13f'),'required':![]});db[_0x91b2('0x13')][_0x91b2('0x12a')](db['ChatWebsite'],{'as':_0x91b2('0x140'),'through':_0x91b2('0x141')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x4e')],{'as':_0x91b2('0x142'),'through':'user_has_fax_accounts'});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x143')],{'as':'MailAccounts','through':_0x91b2('0x144')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x5f')],{'as':'OpenchannelAccounts','through':_0x91b2('0x145')});db[_0x91b2('0x13')]['belongsToMany'](db[_0x91b2('0x58')],{'as':_0x91b2('0x146'),'through':_0x91b2('0x147')});db['User'][_0x91b2('0x12a')](db[_0x91b2('0x107')],{'as':'WhatsappAccounts','through':_0x91b2('0x148')});db[_0x91b2('0x13')][_0x91b2('0x12a')](db[_0x91b2('0x149')],{'as':_0x91b2('0x14a'),'through':'user_has_square_projects'});db[_0x91b2('0x15')]['hasMany'](db[_0x91b2('0x19')],{'as':'SpiedAgents','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x14b')});db[_0x91b2('0x17')][_0x91b2('0x117')](db['VoiceExtension'],{'onDelete':_0x91b2('0x116')});db['VoiceExtension']['hasMany'](db[_0x91b2('0x19')],{'as':_0x91b2('0x14c'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x1b')]['belongsToMany'](db[_0x91b2('0x8e')],{'as':_0x91b2('0x14d'),'through':_0x91b2('0x14e')});db['VoiceQueue']['hasMany'](db[_0x91b2('0x11a')],{'as':'Members','foreignKey':_0x91b2('0x14f')});db['VoiceQueue']['hasMany'](db[_0x91b2('0x7a')],{'as':_0x91b2('0x150'),'foreignKey':_0x91b2('0x14f')});db[_0x91b2('0x1d')][_0x91b2('0x117')](db[_0x91b2('0x11d')],{'as':_0x91b2('0x11e'),'foreignKey':_0x91b2('0x14f')});db[_0x91b2('0x1d')][_0x91b2('0x117')](db[_0x91b2('0x7d')],{'as':_0x91b2('0x151'),'foreignKey':'VoiceQueueId'});db[_0x91b2('0x1d')][_0x91b2('0x117')](db[_0x91b2('0x120')],{'as':'ReportAgentPreview','foreignKey':_0x91b2('0x14f')});db[_0x91b2('0x1d')][_0x91b2('0x117')](db[_0x91b2('0x7b')],{'as':_0x91b2('0x152'),'foreignKey':'VoiceQueueId'});db[_0x91b2('0x1d')][_0x91b2('0x117')](db[_0x91b2('0xdd')],{'as':'JscriptySessions','foreignKey':_0x91b2('0x14f')});db[_0x91b2('0x1d')][_0x91b2('0x128')](db['Trunk'],{'as':'Trunk','foreignKey':_0x91b2('0x153')});db[_0x91b2('0x1d')]['belongsTo'](db['Trunk'],{'as':_0x91b2('0x154'),'foreignKey':_0x91b2('0x155')});db[_0x91b2('0x1d')][_0x91b2('0x128')](db[_0x91b2('0x87')],{'as':'Interval','foreignKey':_0x91b2('0x156')});db[_0x91b2('0x1d')][_0x91b2('0x128')](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':_0x91b2('0x158')});db[_0x91b2('0x1d')]['belongsToMany'](db[_0x91b2('0xfb')],{'as':_0x91b2('0x12e'),'through':_0x91b2('0x159')});db[_0x91b2('0x1d')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':_0x91b2('0x33')});db[_0x91b2('0x1d')][_0x91b2('0x12a')](db[_0x91b2('0xeb')],{'as':_0x91b2('0x15b'),'through':_0x91b2('0x113')});db['VoiceQueue'][_0x91b2('0x12a')](db[_0x91b2('0xfb')],{'as':_0x91b2('0x15c'),'through':_0x91b2('0x15d')});db[_0x91b2('0x1f')][_0x91b2('0x128')](db['User'],{'as':'User','foreignKey':_0x91b2('0x119')});db['ScreenRecording'][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x13'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x23')]['hasMany'](db[_0x91b2('0x25')],{'as':_0x91b2('0x15e'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x15f'),'sourceKey':'mailbox'});db['VoiceMailMessage'][_0x91b2('0x128')](db[_0x91b2('0x23')],{'foreignKey':_0x91b2('0x15f'),'targetKey':_0x91b2('0x160')});db[_0x91b2('0x27')][_0x91b2('0x117')](db[_0x91b2('0x2b')],{'as':_0x91b2('0x161'),'foreignKey':'uniqueid','constraints':![]});db[_0x91b2('0x27')][_0x91b2('0x117')](db[_0x91b2('0x162')],{'as':'AgentReports','foreignKey':_0x91b2('0x163'),'constraints':![]});db[_0x91b2('0x27')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x13'),'foreignKey':_0x91b2('0x119')});db['VoiceCallReport'][_0x91b2('0x128')](db['CmContact'],{'as':_0x91b2('0x164'),'foreignKey':'ContactId'});db['MailServerIn'][_0x91b2('0x128')](db[_0x91b2('0x143')],{'as':_0x91b2('0x143'),'foreignKey':'MailAccountId'});db[_0x91b2('0x42')][_0x91b2('0x128')](db[_0x91b2('0x143')],{'as':_0x91b2('0x143'),'foreignKey':'MailAccountId'});db['MailAccount'][_0x91b2('0x115')](db[_0x91b2('0x40')],{'as':'Imap','onDelete':_0x91b2('0x116')});db[_0x91b2('0x143')][_0x91b2('0x115')](db[_0x91b2('0x42')],{'as':'Smtp','onDelete':_0x91b2('0x116')});db['MailAccount'][_0x91b2('0x117')](db[_0x91b2('0x83')],{'as':_0x91b2('0x165'),'foreignKey':_0x91b2('0x166'),'onDelete':_0x91b2('0x116')});db['MailAccount'][_0x91b2('0x117')](db[_0x91b2('0x81')],{'as':_0x91b2('0x167'),'foreignKey':_0x91b2('0x166')});db['MailAccount'][_0x91b2('0x117')](db['MailMessage'],{'as':'Messages','foreignKey':'MailAccountId'});db[_0x91b2('0x143')][_0x91b2('0x117')](db[_0x91b2('0x47')],{'as':_0x91b2('0x168')});db[_0x91b2('0x143')][_0x91b2('0x117')](db[_0x91b2('0x4b')],{'as':'Applications'});db[_0x91b2('0x143')][_0x91b2('0x128')](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x143')][_0x91b2('0x128')](db['Template'],{'as':_0x91b2('0x92'),'foreignKey':'TemplateId'});db['MailAccount'][_0x91b2('0x128')](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':_0x91b2('0x158')});db[_0x91b2('0x143')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':'Agents','through':'user_has_mail_accounts'});db[_0x91b2('0x44')][_0x91b2('0x12a')](db['User'],{'as':'Agents','through':_0x91b2('0x36')});db[_0x91b2('0x44')]['belongsToMany'](db['Team'],{'through':'team_has_mail_queues','as':_0x91b2('0x15b')});db[_0x91b2('0x47')]['hasMany'](db[_0x91b2('0x49')],{'as':_0x91b2('0x15e'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x16b')});db[_0x91b2('0x47')][_0x91b2('0x128')](db[_0x91b2('0x143')],{'as':'Account','foreignKey':'MailAccountId'});db[_0x91b2('0x47')][_0x91b2('0x128')](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':'ContactId'});db[_0x91b2('0x47')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':'UserId'});db['MailInteraction']['belongsToMany'](db['Tag'],{'through':_0x91b2('0x16d'),'as':_0x91b2('0x16e')});db[_0x91b2('0x47')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x16d'),'as':_0x91b2('0x16f')});db['MailInteraction'][_0x91b2('0x12a')](db['User'],{'as':_0x91b2('0x170'),'through':_0x91b2('0x171'),'foreignKey':_0x91b2('0x16b')});db['MailMessage'][_0x91b2('0x117')](db[_0x91b2('0xf2')],{'as':_0x91b2('0x172'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x49')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x13')});db['MailMessage'][_0x91b2('0x128')](db['CmContact'],{'onDelete':'cascade','as':_0x91b2('0x164')});db[_0x91b2('0x49')][_0x91b2('0x128')](db[_0x91b2('0x47')],{'as':_0x91b2('0x173'),'foreignKey':_0x91b2('0x16b')});db[_0x91b2('0x49')][_0x91b2('0x128')](db[_0x91b2('0x143')],{'as':'Account','foreignKey':_0x91b2('0x166')});db['MailMessage'][_0x91b2('0x128')](db[_0x91b2('0x67')],{'as':_0x91b2('0x67'),'foreignKey':_0x91b2('0x174')});db[_0x91b2('0x49')][_0x91b2('0x128')](db[_0x91b2('0x6f')],{'as':_0x91b2('0x6f'),'foreignKey':'ChatOfflineMessageId'});db['MailApplication'][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x4b')][_0x91b2('0x128')](db[_0x91b2('0x44')],{'onDelete':_0x91b2('0x175')});db['MailApplication'][_0x91b2('0x128')](db[_0x91b2('0x143')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x4b')][_0x91b2('0x128')](db[_0x91b2('0x87')],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x156')});db[_0x91b2('0x4b')][_0x91b2('0x128')](db['Tag'],{'onDelete':'restrict','foreignKey':'TagId'});db[_0x91b2('0x176')][_0x91b2('0x128')](db['MailAccount'],{});db[_0x91b2('0x176')][_0x91b2('0x128')](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x176')][_0x91b2('0x128')](db['CmContact'],{'as':'Contact','foreignKey':'ContactId'});db[_0x91b2('0x176')][_0x91b2('0x128')](db[_0x91b2('0x47')],{});db[_0x91b2('0x176')][_0x91b2('0x128')](db[_0x91b2('0x49')],{});db[_0x91b2('0x176')][_0x91b2('0x128')](db[_0x91b2('0x13')],{});db[_0x91b2('0x176')][_0x91b2('0x128')](db[_0x91b2('0x44')],{});db[_0x91b2('0x177')]['hasMany'](db[_0x91b2('0x178')],{'as':_0x91b2('0x179'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x4e')]['hasMany'](db[_0x91b2('0x83')],{'as':'Dispositions','foreignKey':_0x91b2('0x17a'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x4e')][_0x91b2('0x117')](db[_0x91b2('0x81')],{'as':'Answers','foreignKey':_0x91b2('0x17a')});db[_0x91b2('0x4e')]['hasMany'](db[_0x91b2('0x52')],{'as':_0x91b2('0x168')});db[_0x91b2('0x4e')][_0x91b2('0x117')](db[_0x91b2('0x50')],{'as':_0x91b2('0x14c')});db[_0x91b2('0x4e')][_0x91b2('0x117')](db[_0x91b2('0x19')],{'as':_0x91b2('0x17b'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x4e')][_0x91b2('0x117')](db[_0x91b2('0x54')],{'as':_0x91b2('0x15e')});db[_0x91b2('0x4e')][_0x91b2('0x128')](db[_0x91b2('0x17c')],{'as':_0x91b2('0x17c')});db[_0x91b2('0x4e')][_0x91b2('0x128')](db[_0x91b2('0xfb')],{'as':'List','foreignKey':'ListId'});db[_0x91b2('0x4e')][_0x91b2('0x128')](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':_0x91b2('0x158')});db[_0x91b2('0x4e')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':'user_has_fax_accounts'});db[_0x91b2('0x50')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':'restrict'});db[_0x91b2('0x50')][_0x91b2('0x128')](db[_0x91b2('0x55')],{'onDelete':_0x91b2('0x175')});db['FaxApplication']['belongsTo'](db['FaxAccount'],{'onDelete':'restrict'});db[_0x91b2('0x50')][_0x91b2('0x128')](db[_0x91b2('0x90')],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x17d')});db[_0x91b2('0x52')][_0x91b2('0x117')](db[_0x91b2('0x54')],{'as':_0x91b2('0x15e'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x17e')});db[_0x91b2('0x52')]['belongsTo'](db['FaxAccount'],{'as':_0x91b2('0x17f'),'foreignKey':'FaxAccountId'});db['FaxInteraction'][_0x91b2('0x128')](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':'ContactId'});db[_0x91b2('0x52')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x52')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x180'),'as':_0x91b2('0x16e')});db[_0x91b2('0x52')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':'fax_interaction_has_tags','as':'ThroughTags'});db['FaxInteraction'][_0x91b2('0x12a')](db['User'],{'as':_0x91b2('0x170'),'through':_0x91b2('0x132'),'foreignKey':_0x91b2('0x17e')});db[_0x91b2('0x54')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x13')});db[_0x91b2('0x54')][_0x91b2('0x128')](db[_0x91b2('0x52')],{'as':_0x91b2('0x173'),'foreignKey':_0x91b2('0x17e')});db[_0x91b2('0x54')][_0x91b2('0x128')](db[_0x91b2('0x78')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x164')});db['FaxMessage'][_0x91b2('0x128')](db[_0x91b2('0xf2')],{'as':_0x91b2('0xf2'),'foreignKey':'AttachmentId'});db[_0x91b2('0x54')][_0x91b2('0x128')](db[_0x91b2('0x4e')],{'as':'Account','foreignKey':_0x91b2('0x17a')});db[_0x91b2('0x55')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':'UserFaxQueue'});db[_0x91b2('0x55')][_0x91b2('0x12a')](db[_0x91b2('0xeb')],{'through':'team_has_fax_queues','as':_0x91b2('0x15b')});db['FaxQueueReport']['belongsTo'](db[_0x91b2('0x4e')],{});db['FaxQueueReport'][_0x91b2('0x128')](db['CmList'],{'as':'List','foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x181')]['belongsTo'](db['CmContact'],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0x181')][_0x91b2('0x128')](db[_0x91b2('0x52')],{});db[_0x91b2('0x181')][_0x91b2('0x128')](db[_0x91b2('0x54')],{});db[_0x91b2('0x181')][_0x91b2('0x128')](db['User'],{});db[_0x91b2('0x181')][_0x91b2('0x128')](db[_0x91b2('0x55')],{});db['SmsAccount'][_0x91b2('0x117')](db[_0x91b2('0x83')],{'as':_0x91b2('0x165'),'foreignKey':'SmsAccountId','onDelete':_0x91b2('0x116')});db[_0x91b2('0x58')][_0x91b2('0x117')](db[_0x91b2('0x81')],{'as':_0x91b2('0x167'),'foreignKey':'SmsAccountId'});db[_0x91b2('0x58')][_0x91b2('0x117')](db[_0x91b2('0x183')],{'as':_0x91b2('0x15e'),'foreignKey':_0x91b2('0x184')});db[_0x91b2('0x58')][_0x91b2('0x117')](db[_0x91b2('0x5c')],{'as':_0x91b2('0x168')});db['SmsAccount'][_0x91b2('0x117')](db['SmsApplication'],{'as':_0x91b2('0x14c')});db[_0x91b2('0x58')]['belongsTo'](db['CmList'],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x58')][_0x91b2('0x128')](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':'mandatoryDispositionPauseId'});db['SmsAccount'][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':_0x91b2('0x147')});db[_0x91b2('0x5a')]['belongsTo'](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x5a')][_0x91b2('0x128')](db[_0x91b2('0x13a')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x5a')][_0x91b2('0x128')](db[_0x91b2('0x58')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x5a')][_0x91b2('0x128')](db[_0x91b2('0x87')],{'onDelete':'restrict','foreignKey':_0x91b2('0x156')});db[_0x91b2('0x5a')]['belongsTo'](db['Tag'],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x17d')});db[_0x91b2('0x5c')]['hasMany'](db[_0x91b2('0x183')],{'as':_0x91b2('0x15e'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x185')});db[_0x91b2('0x5c')]['belongsTo'](db['SmsAccount'],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x184')});db[_0x91b2('0x5c')]['belongsTo'](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0x5c')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':_0x91b2('0x119')});db['SmsInteraction'][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x186'),'as':_0x91b2('0x16e')});db[_0x91b2('0x5c')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x186'),'as':_0x91b2('0x16f')});db['SmsInteraction']['belongsToMany'](db[_0x91b2('0x13')],{'as':_0x91b2('0x170'),'through':'user_has_sms_interactions','foreignKey':'SmsInteractionId'});db[_0x91b2('0x183')]['belongsTo'](db[_0x91b2('0x13')],{'as':_0x91b2('0x13')});db['SmsMessage']['belongsTo'](db[_0x91b2('0x78')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x164')});db['SmsMessage']['belongsTo'](db[_0x91b2('0x5c')],{'onDelete':'cascade','as':'Interaction','foreignKey':_0x91b2('0x185')});db[_0x91b2('0x183')][_0x91b2('0x128')](db[_0x91b2('0x58')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x184')});db[_0x91b2('0x13a')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':'UserSmsQueue','foreignKey':_0x91b2('0x187')});db[_0x91b2('0x13a')]['belongsToMany'](db[_0x91b2('0xeb')],{'through':_0x91b2('0x188'),'as':'Teams'});db[_0x91b2('0x5f')][_0x91b2('0x117')](db[_0x91b2('0x83')],{'as':_0x91b2('0x165'),'foreignKey':_0x91b2('0x189'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x5f')][_0x91b2('0x117')](db[_0x91b2('0x81')],{'as':_0x91b2('0x167'),'foreignKey':_0x91b2('0x189')});db[_0x91b2('0x5f')]['hasMany'](db[_0x91b2('0x61')],{'as':_0x91b2('0x168'),'foreignKey':_0x91b2('0x189')});db[_0x91b2('0x5f')][_0x91b2('0x117')](db[_0x91b2('0x63')],{'as':_0x91b2('0x15e'),'foreignKey':'OpenchannelAccountId'});db[_0x91b2('0x5f')]['hasMany'](db[_0x91b2('0x60')],{'as':_0x91b2('0x14c'),'foreignKey':'OpenchannelAccountId'});db['OpenchannelAccount']['belongsTo'](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x5f')]['belongsTo'](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x91b2('0x5f')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':'user_has_openchannel_accounts'});db['OpenchannelApplication'][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x60')][_0x91b2('0x128')](db['OpenchannelQueue'],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x18a')});db['OpenchannelApplication']['belongsTo'](db['OpenchannelAccount'],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x189')});db[_0x91b2('0x60')][_0x91b2('0x128')](db[_0x91b2('0x87')],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x156')});db[_0x91b2('0x60')][_0x91b2('0x128')](db[_0x91b2('0x90')],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x17d')});db[_0x91b2('0x61')][_0x91b2('0x117')](db[_0x91b2('0x63')],{'as':_0x91b2('0x15e'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x18b')});db[_0x91b2('0x61')][_0x91b2('0x128')](db['OpenchannelAccount'],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x189')});db['OpenchannelInteraction'][_0x91b2('0x128')](db[_0x91b2('0x78')],{'as':'Contact','foreignKey':_0x91b2('0x182')});db[_0x91b2('0x61')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':'UserId'});db[_0x91b2('0x61')]['belongsToMany'](db[_0x91b2('0x90')],{'through':_0x91b2('0x18c'),'as':_0x91b2('0x16e')});db[_0x91b2('0x61')][_0x91b2('0x12a')](db['Tag'],{'through':_0x91b2('0x18c'),'as':_0x91b2('0x16f')});db[_0x91b2('0x61')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x170'),'through':_0x91b2('0x134'),'foreignKey':'OpenchannelInteractionId'});db[_0x91b2('0x63')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x13')});db[_0x91b2('0x63')]['belongsTo'](db['CmContact'],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x164')});db[_0x91b2('0x63')][_0x91b2('0x128')](db[_0x91b2('0x61')],{'onDelete':'cascade','as':_0x91b2('0x173'),'foreignKey':_0x91b2('0x18b')});db['OpenchannelMessage'][_0x91b2('0x128')](db[_0x91b2('0xf2')],{'as':_0x91b2('0xf2'),'foreignKey':'AttachmentId'});db['OpenchannelMessage'][_0x91b2('0x128')](db[_0x91b2('0x5f')],{'as':_0x91b2('0x17f'),'foreignKey':'OpenchannelAccountId'});db['OpenchannelQueue'][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':_0x91b2('0x3c'),'foreignKey':_0x91b2('0x18a')});db['OpenchannelQueue'][_0x91b2('0x12a')](db[_0x91b2('0xeb')],{'through':_0x91b2('0x18d'),'as':_0x91b2('0x15b')});db[_0x91b2('0x67')]['hasMany'](db[_0x91b2('0x83')],{'as':'Dispositions','foreignKey':_0x91b2('0x174'),'onDelete':'cascade'});db['ChatWebsite'][_0x91b2('0x117')](db[_0x91b2('0x81')],{'as':'Answers','foreignKey':_0x91b2('0x174')});db[_0x91b2('0x67')][_0x91b2('0x117')](db[_0x91b2('0x74')],{'as':_0x91b2('0x18e')});db[_0x91b2('0x67')][_0x91b2('0x117')](db[_0x91b2('0x122')],{'as':_0x91b2('0x168')});db[_0x91b2('0x67')][_0x91b2('0x117')](db['ChatApplication'],{'as':_0x91b2('0x14c')});db[_0x91b2('0x67')][_0x91b2('0x117')](db[_0x91b2('0x6d')],{'as':_0x91b2('0x15e')});db[_0x91b2('0x67')]['belongsTo'](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x67')]['belongsTo'](db[_0x91b2('0x87')],{'as':_0x91b2('0x87'),'foreignKey':_0x91b2('0x156')});db[_0x91b2('0x67')][_0x91b2('0x128')](db[_0x91b2('0x143')],{'as':_0x91b2('0x143'),'foreignKey':_0x91b2('0x166')});db[_0x91b2('0x67')][_0x91b2('0x128')](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':_0x91b2('0x158')});db[_0x91b2('0x67')][_0x91b2('0x12a')](db['User'],{'as':_0x91b2('0x15a'),'through':_0x91b2('0x141')});db[_0x91b2('0x18f')]['belongsTo'](db[_0x91b2('0x5f')],{});db[_0x91b2('0x18f')]['belongsTo'](db['CmList'],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x18f')]['belongsTo'](db['CmContact'],{'as':'Contact','foreignKey':_0x91b2('0x182')});db[_0x91b2('0x18f')][_0x91b2('0x128')](db[_0x91b2('0x61')],{});db['OpenchannelQueueReport'][_0x91b2('0x128')](db[_0x91b2('0x63')],{});db[_0x91b2('0x18f')][_0x91b2('0x128')](db[_0x91b2('0x13')],{});db[_0x91b2('0x18f')][_0x91b2('0x128')](db[_0x91b2('0x65')],{});db['ChatApplication'][_0x91b2('0x128')](db['User'],{'as':'Agent','foreignKey':_0x91b2('0x119'),'onDelete':_0x91b2('0x175')});db[_0x91b2('0x6a')][_0x91b2('0x128')](db[_0x91b2('0x71')],{'as':_0x91b2('0x190'),'foreignKey':'ChatQueueId','onDelete':'restrict'});db[_0x91b2('0x6a')][_0x91b2('0x128')](db[_0x91b2('0x67')],{'as':'Website','foreignKey':_0x91b2('0x174'),'onDelete':'restrict'});db[_0x91b2('0x6a')][_0x91b2('0x128')](db[_0x91b2('0x90')],{'onDelete':'restrict','foreignKey':'TagId'});db['ChatInteraction'][_0x91b2('0x117')](db[_0x91b2('0x6d')],{'as':_0x91b2('0x15e'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x191')});db['ChatInteraction']['belongsTo'](db[_0x91b2('0x67')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x174')});db['ChatInteraction'][_0x91b2('0x128')](db['CmContact'],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db['ChatInteraction'][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':'UserId'});db[_0x91b2('0x122')]['belongsToMany'](db[_0x91b2('0x90')],{'through':_0x91b2('0x192'),'as':_0x91b2('0x16e')});db['ChatInteraction'][_0x91b2('0x12a')](db['Tag'],{'through':_0x91b2('0x192'),'as':'ThroughTags'});db[_0x91b2('0x122')][_0x91b2('0x12a')](db['User'],{'as':_0x91b2('0x170'),'through':_0x91b2('0x131'),'foreignKey':_0x91b2('0x191')});db[_0x91b2('0x6d')]['belongsTo'](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x13')});db['ChatMessage'][_0x91b2('0x128')](db[_0x91b2('0x78')],{'onDelete':'cascade','as':'Contact','foreignKey':_0x91b2('0x182')});db['ChatMessage'][_0x91b2('0x128')](db[_0x91b2('0x122')],{'onDelete':'cascade','as':'Interaction','foreignKey':_0x91b2('0x191')});db[_0x91b2('0x6d')][_0x91b2('0x128')](db[_0x91b2('0xf2')],{'as':'Attachment','foreignKey':_0x91b2('0x193')});db[_0x91b2('0x6d')][_0x91b2('0x128')](db['ChatWebsite'],{'as':_0x91b2('0x17f'),'foreignKey':'ChatWebsiteId'});db[_0x91b2('0x6f')][_0x91b2('0x117')](db[_0x91b2('0xf2')],{'as':_0x91b2('0x172'),'foreignKey':_0x91b2('0x194'),'onDelete':_0x91b2('0x116'),'hooks':!![]});db[_0x91b2('0x6f')][_0x91b2('0x128')](db[_0x91b2('0x78')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0x6f')][_0x91b2('0x128')](db[_0x91b2('0x67')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x174')});db[_0x91b2('0x71')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':_0x91b2('0x34'),'hooks':!![]});db[_0x91b2('0x71')][_0x91b2('0x12a')](db[_0x91b2('0xeb')],{'through':_0x91b2('0x195'),'as':_0x91b2('0x15b')});db['ChatGroup'][_0x91b2('0x117')](db[_0x91b2('0xd7')],{'as':_0x91b2('0x15e'),'foreignKey':_0x91b2('0x196'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x73')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x197'),'through':_0x91b2('0x12b')});db[_0x91b2('0x74')][_0x91b2('0x128')](db[_0x91b2('0x67')],{'as':_0x91b2('0x198'),'foreignKey':'ChatWebsiteId'});db[_0x91b2('0x76')][_0x91b2('0x117')](db['CmContact'],{'as':_0x91b2('0x12c'),'foreignKey':'CompanyId'});db['CmContact'][_0x91b2('0x117')](db[_0x91b2('0x7a')],{'as':'Hoppers','foreignKey':_0x91b2('0x182')});db[_0x91b2('0x78')][_0x91b2('0x117')](db['CmHopperFinal'],{'as':_0x91b2('0x11e'),'foreignKey':'ContactId'});db[_0x91b2('0x78')]['hasMany'](db[_0x91b2('0x7d')],{'as':_0x91b2('0x151'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0x78')]['hasMany'](db[_0x91b2('0x120')],{'as':_0x91b2('0x120'),'foreignKey':_0x91b2('0x182')});db['CmContact'][_0x91b2('0x117')](db[_0x91b2('0xdd')],{'as':_0x91b2('0x199'),'foreignKey':_0x91b2('0x182')});db['CmContact'][_0x91b2('0x117')](db[_0x91b2('0x61')],{'as':'OpenchannelInteractions','foreignKey':_0x91b2('0x182'),'onDelete':_0x91b2('0x175')});db[_0x91b2('0x78')]['hasMany'](db[_0x91b2('0x122')],{'as':'ChatInteractions','foreignKey':_0x91b2('0x182'),'onDelete':_0x91b2('0x175')});db[_0x91b2('0x78')][_0x91b2('0x117')](db[_0x91b2('0x5c')],{'as':'SmsInteractions','foreignKey':_0x91b2('0x182'),'onDelete':'restrict'});db['CmContact'][_0x91b2('0x117')](db[_0x91b2('0x52')],{'as':_0x91b2('0x19a'),'foreignKey':'ContactId','onDelete':_0x91b2('0x175')});db['CmContact']['hasMany'](db['MailInteraction'],{'as':_0x91b2('0x125'),'foreignKey':_0x91b2('0x182'),'onDelete':_0x91b2('0x175')});db[_0x91b2('0x78')][_0x91b2('0x128')](db[_0x91b2('0x76')],{'as':_0x91b2('0x19b'),'foreignKey':'CompanyId'});db[_0x91b2('0x78')]['belongsTo'](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':'ListId','onDelete':_0x91b2('0x116')});db[_0x91b2('0x78')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x170'),'through':'cm_user_has_contacts'});db['CmContact'][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'as':'Tags','through':'cm_contact_has_tags'});db['CmContact'][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x19c'),'as':_0x91b2('0x16f')});db[_0x91b2('0x7a')][_0x91b2('0x128')](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x7a')][_0x91b2('0x128')](db['CmList'],{'as':_0x91b2('0x169'),'foreignKey':'ListId','onDelete':'cascade'});db['CmHopper'][_0x91b2('0x128')](db['User'],{'as':_0x91b2('0x19d'),'foreignKey':_0x91b2('0x119')});db[_0x91b2('0x7a')][_0x91b2('0x128')](db[_0x91b2('0x1d')],{'as':_0x91b2('0x190'),'foreignKey':_0x91b2('0x14f'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x7a')][_0x91b2('0x128')](db[_0x91b2('0xee')],{'as':_0x91b2('0xee'),'foreignKey':_0x91b2('0x19e'),'onDelete':'cascade'});db[_0x91b2('0x7a')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':_0x91b2('0x19f')});db[_0x91b2('0x7b')]['belongsTo'](db['CmContact'],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x7b')][_0x91b2('0x128')](db['CmList'],{'as':'List','foreignKey':'ListId','onDelete':'cascade'});db[_0x91b2('0x7b')][_0x91b2('0x128')](db[_0x91b2('0x1d')],{'as':'Queue','foreignKey':_0x91b2('0x14f'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x7b')][_0x91b2('0x128')](db[_0x91b2('0xee')],{'as':'Campaign','foreignKey':_0x91b2('0x19e'),'onDelete':'cascade'});db['Automation'][_0x91b2('0x117')](db[_0x91b2('0x85')],{'as':{'plural':_0x91b2('0x1a0'),'singular':_0x91b2('0x1a1')},'foreignKey':_0x91b2('0x1a2'),'onDelete':'cascade','hooks':!![]});db[_0x91b2('0x1a3')][_0x91b2('0x117')](db['Condition'],{'as':{'plural':'Any','singular':_0x91b2('0x1a4')},'foreignKey':_0x91b2('0x1a5'),'onDelete':'cascade','hooks':!![]});db['Automation']['hasMany'](db[_0x91b2('0x1a6')],{'as':_0x91b2('0x1a7'),'foreignKey':_0x91b2('0x1a8'),'onDelete':_0x91b2('0x116'),'hooks':!![]});db[_0x91b2('0x83')][_0x91b2('0x117')](db[_0x91b2('0x83')],{'as':_0x91b2('0x165'),'foreignKey':_0x91b2('0x1a9'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x87')][_0x91b2('0x117')](db['Interval'],{'as':_0x91b2('0x1aa'),'foreignKey':_0x91b2('0x156'),'onDelete':_0x91b2('0x116'),'hooks':!![],'required':![]});db[_0x91b2('0x87')][_0x91b2('0x117')](db[_0x91b2('0x19')],{'as':_0x91b2('0x11c'),'foreignKey':'IntervalId','onDelete':_0x91b2('0x175')});db['Interval'][_0x91b2('0x117')](db[_0x91b2('0x4b')],{'as':_0x91b2('0x1ab'),'foreignKey':'IntervalId'});db[_0x91b2('0x87')][_0x91b2('0x117')](db['ChatApplication'],{'as':_0x91b2('0x1ac'),'foreignKey':'IntervalId'});db['Interval']['hasMany'](db[_0x91b2('0x50')],{'as':_0x91b2('0x1ad'),'foreignKey':_0x91b2('0x156')});db[_0x91b2('0x87')][_0x91b2('0x117')](db[_0x91b2('0x5a')],{'as':_0x91b2('0x1ae'),'foreignKey':_0x91b2('0x156')});db[_0x91b2('0x8c')][_0x91b2('0x128')](db[_0x91b2('0x143')],{});db['Schedule'][_0x91b2('0x128')](db[_0x91b2('0x9d')],{'foreignKey':_0x91b2('0x1af')});db[_0x91b2('0x8c')][_0x91b2('0x128')](db['AnalyticCustomReport'],{'foreignKey':_0x91b2('0x1b0')});db['Sound'][_0x91b2('0x12a')](db[_0x91b2('0x1b')],{'as':_0x91b2('0x1b1'),'through':'moh_has_sounds','onDelete':_0x91b2('0x175')});db[_0x91b2('0x90')][_0x91b2('0x12a')](db['CmContact'],{'through':_0x91b2('0x19c')});db[_0x91b2('0x90')][_0x91b2('0x12a')](db[_0x91b2('0x122')],{'through':'chat_interaction_has_tags'});db[_0x91b2('0x90')][_0x91b2('0x12a')](db[_0x91b2('0x47')],{'through':_0x91b2('0x16d')});db[_0x91b2('0x90')]['belongsToMany'](db[_0x91b2('0x5c')],{'through':'sms_interaction_has_tags'});db[_0x91b2('0x90')][_0x91b2('0x12a')](db['FaxInteraction'],{'through':'fax_interaction_has_tags'});db[_0x91b2('0x90')][_0x91b2('0x12a')](db[_0x91b2('0x61')],{'through':_0x91b2('0x18c')});db['Tag'][_0x91b2('0x12a')](db[_0x91b2('0x10b')],{'through':_0x91b2('0x1b2')});db[_0x91b2('0x94')][_0x91b2('0x117')](db[_0x91b2('0x85')],{'as':{'plural':_0x91b2('0x1b3'),'singular':'AllCondition'},'foreignKey':_0x91b2('0x1b4'),'onDelete':_0x91b2('0x116'),'hooks':!![]});db[_0x91b2('0x94')][_0x91b2('0x117')](db['Condition'],{'as':{'plural':_0x91b2('0x1b5'),'singular':_0x91b2('0x1b6')},'foreignKey':_0x91b2('0x1b7'),'onDelete':_0x91b2('0x116'),'hooks':!![]});db['Trigger'][_0x91b2('0x117')](db[_0x91b2('0x1a6')],{'as':'Actions','foreignKey':_0x91b2('0x1b8'),'onDelete':_0x91b2('0x116'),'hooks':!![]});db[_0x91b2('0x9b')][_0x91b2('0x117')](db[_0x91b2('0x1b9')],{'as':_0x91b2('0x1ba'),'onDelete':'cascade','foreignKey':_0x91b2('0x1b0'),'hooks':!![]});db['AnalyticDefaultReport'][_0x91b2('0x117')](db['AnalyticFieldReport'],{'as':_0x91b2('0x1ba'),'onDelete':'cascade','foreignKey':_0x91b2('0x1af')});db[_0x91b2('0x1bb')][_0x91b2('0x117')](db['AnalyticFieldReport'],{'as':_0x91b2('0x1ba'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1bc')});db[_0x91b2('0x1b9')][_0x91b2('0x128')](db[_0x91b2('0x1bb')],{'foreignKey':_0x91b2('0x1bc')});db['SalesforceAccount'][_0x91b2('0x117')](db[_0x91b2('0xa5')],{'as':_0x91b2('0x1bd'),'onDelete':'cascade','foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xa5')][_0x91b2('0x117')](db[_0x91b2('0xa7')],{'as':'Subjects','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0xa5')][_0x91b2('0x117')](db['SalesforceField'],{'as':_0x91b2('0x1c0'),'onDelete':'cascade','foreignKey':'DescriptionId'});db['SalesforceConfiguration'][_0x91b2('0x117')](db[_0x91b2('0xa7')],{'as':_0x91b2('0x1ba'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xa5')][_0x91b2('0x128')](db[_0x91b2('0xa3')],{'as':'Account','foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xa7')][_0x91b2('0x117')](db[_0x91b2('0xa7')],{'as':_0x91b2('0x1c2'),'foreignKey':'SubjectId'});db[_0x91b2('0xa7')][_0x91b2('0x117')](db[_0x91b2('0xa7')],{'as':_0x91b2('0x1c3'),'foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0xa7')][_0x91b2('0x117')](db[_0x91b2('0xa7')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db['SalesforceField']['belongsTo'](db[_0x91b2('0x96')],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db[_0x91b2('0x1c7')]['hasMany'](db[_0x91b2('0xaa')],{'as':_0x91b2('0x1bd'),'onDelete':_0x91b2('0x116'),'foreignKey':'AccountId'});db[_0x91b2('0xaa')]['hasMany'](db[_0x91b2('0xab')],{'as':_0x91b2('0x1c8'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1bf')});db['SugarcrmConfiguration']['hasMany'](db[_0x91b2('0xab')],{'as':'Descriptions','onDelete':_0x91b2('0x116'),'foreignKey':'DescriptionId'});db[_0x91b2('0xaa')][_0x91b2('0x117')](db[_0x91b2('0xab')],{'as':'Fields','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c1')});db['SugarcrmConfiguration'][_0x91b2('0x128')](db[_0x91b2('0x1c7')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xab')][_0x91b2('0x117')](db[_0x91b2('0xab')],{'as':_0x91b2('0x1c2'),'foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0xab')]['hasMany'](db[_0x91b2('0xab')],{'as':_0x91b2('0x1c3'),'foreignKey':_0x91b2('0x1c4')});db['SugarcrmField'][_0x91b2('0x117')](db[_0x91b2('0xab')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xab')][_0x91b2('0x128')](db[_0x91b2('0x96')],{'as':_0x91b2('0x96'),'foreignKey':'VariableId'});db[_0x91b2('0x1c9')][_0x91b2('0x117')](db[_0x91b2('0xae')],{'as':_0x91b2('0x1bd'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xae')][_0x91b2('0x117')](db[_0x91b2('0xb0')],{'as':_0x91b2('0x1c8'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1bf')});db['DeskConfiguration'][_0x91b2('0x117')](db[_0x91b2('0xb0')],{'as':_0x91b2('0x1c0'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0xae')][_0x91b2('0x117')](db['DeskField'],{'as':_0x91b2('0x1ba'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xae')][_0x91b2('0x128')](db[_0x91b2('0x1c9')],{'as':_0x91b2('0x17f'),'foreignKey':'AccountId'});db[_0x91b2('0xae')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x1ca')});db[_0x91b2('0xb0')]['hasMany'](db[_0x91b2('0xb0')],{'as':_0x91b2('0x1c2'),'foreignKey':_0x91b2('0x1bf')});db['DeskField'][_0x91b2('0x117')](db[_0x91b2('0xb0')],{'as':'Description','foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0xb0')][_0x91b2('0x117')](db[_0x91b2('0xb0')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xb0')][_0x91b2('0x128')](db[_0x91b2('0x96')],{'as':_0x91b2('0x96'),'foreignKey':'VariableId'});db[_0x91b2('0xb2')][_0x91b2('0x117')](db[_0x91b2('0xb4')],{'as':_0x91b2('0x1bd'),'onDelete':'cascade','foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xb4')]['hasMany'](db['ZohoField'],{'as':_0x91b2('0x1c8'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0xb4')][_0x91b2('0x117')](db[_0x91b2('0x1cb')],{'as':_0x91b2('0x1c0'),'onDelete':_0x91b2('0x116'),'foreignKey':'DescriptionId'});db[_0x91b2('0xb4')][_0x91b2('0x117')](db[_0x91b2('0x1cb')],{'as':_0x91b2('0x1ba'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c1')});db['ZohoConfiguration']['belongsTo'](db[_0x91b2('0xb2')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0x1cb')][_0x91b2('0x117')](db[_0x91b2('0x1cb')],{'as':_0x91b2('0x1c2'),'foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0x1cb')][_0x91b2('0x117')](db[_0x91b2('0x1cb')],{'as':_0x91b2('0x1c3'),'foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0x1cb')][_0x91b2('0x117')](db[_0x91b2('0x1cb')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0x1cb')][_0x91b2('0x128')](db['Variable'],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db[_0x91b2('0xb7')]['hasMany'](db[_0x91b2('0xb8')],{'as':_0x91b2('0x1bd'),'onDelete':_0x91b2('0x116'),'foreignKey':'AccountId'});db[_0x91b2('0xb8')][_0x91b2('0x117')](db[_0x91b2('0xba')],{'as':_0x91b2('0x1c8'),'foreignKey':_0x91b2('0x1bf')});db['ZendeskConfiguration']['hasMany'](db['ZendeskField'],{'as':_0x91b2('0x1c0'),'foreignKey':'DescriptionId'});db[_0x91b2('0xb8')][_0x91b2('0x117')](db[_0x91b2('0xba')],{'as':_0x91b2('0x1ba'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xb8')]['belongsTo'](db[_0x91b2('0xb7')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xb8')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':'int_zendesk_configuration_has_tags'});db[_0x91b2('0xba')][_0x91b2('0x117')](db[_0x91b2('0xba')],{'as':_0x91b2('0x1c2'),'foreignKey':_0x91b2('0x1bf')});db['ZendeskField']['hasMany'](db[_0x91b2('0xba')],{'as':_0x91b2('0x1c3'),'foreignKey':'DescriptionId'});db['ZendeskField'][_0x91b2('0x117')](db[_0x91b2('0xba')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xba')]['belongsTo'](db[_0x91b2('0x96')],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db['FreshdeskAccount'][_0x91b2('0x117')](db[_0x91b2('0x1cc')],{'as':'Configurations','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0x1cc')]['hasMany'](db['FreshdeskField'],{'as':_0x91b2('0x1c8'),'onDelete':_0x91b2('0x116'),'foreignKey':'SubjectId'});db[_0x91b2('0x1cc')][_0x91b2('0x117')](db[_0x91b2('0xbe')],{'as':'Descriptions','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0x1cc')][_0x91b2('0x117')](db['FreshdeskField'],{'as':'Fields','onDelete':_0x91b2('0x116'),'foreignKey':'FieldId'});db[_0x91b2('0x1cc')][_0x91b2('0x128')](db[_0x91b2('0xbc')],{'as':_0x91b2('0x17f'),'foreignKey':'AccountId'});db[_0x91b2('0x1cc')][_0x91b2('0x12a')](db[_0x91b2('0x90')],{'through':_0x91b2('0x1cd')});db[_0x91b2('0xbe')][_0x91b2('0x117')](db['FreshdeskField'],{'as':_0x91b2('0x1c2'),'foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0xbe')][_0x91b2('0x117')](db[_0x91b2('0xbe')],{'as':_0x91b2('0x1c3'),'foreignKey':'DescriptionId'});db[_0x91b2('0xbe')][_0x91b2('0x117')](db['FreshdeskField'],{'as':'Field','foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xbe')][_0x91b2('0x128')](db['Variable'],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db[_0x91b2('0x1ce')]['hasMany'](db[_0x91b2('0xc0')],{'as':_0x91b2('0x1bd'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xc0')][_0x91b2('0x117')](db[_0x91b2('0xc2')],{'as':'Subjects','foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0xc0')][_0x91b2('0x117')](db[_0x91b2('0xc2')],{'as':'Descriptions','foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0xc0')][_0x91b2('0x117')](db[_0x91b2('0xc2')],{'as':_0x91b2('0x1ba'),'foreignKey':_0x91b2('0x1c1')});db['VtigerConfiguration'][_0x91b2('0x128')](db['VtigerAccount'],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xc2')][_0x91b2('0x117')](db[_0x91b2('0xc2')],{'as':'Subject','foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0xc2')][_0x91b2('0x117')](db[_0x91b2('0xc2')],{'as':_0x91b2('0x1c3'),'foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0xc2')][_0x91b2('0x117')](db[_0x91b2('0xc2')],{'as':'Field','foreignKey':_0x91b2('0x1c1')});db['VtigerField']['belongsTo'](db[_0x91b2('0x96')],{'as':'Variable','foreignKey':_0x91b2('0x1c6')});db[_0x91b2('0x1cf')][_0x91b2('0x117')](db['ServicenowConfiguration'],{'as':'Configurations','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xc5')]['hasMany'](db[_0x91b2('0xc7')],{'as':'Subjects','foreignKey':'SubjectId'});db[_0x91b2('0xc5')]['hasMany'](db[_0x91b2('0xc7')],{'as':'Descriptions','foreignKey':'DescriptionId'});db[_0x91b2('0xc5')][_0x91b2('0x117')](db[_0x91b2('0xc7')],{'as':_0x91b2('0x1ba'),'foreignKey':'FieldId'});db[_0x91b2('0xc5')]['belongsTo'](db['ServicenowAccount'],{'as':'Account','foreignKey':_0x91b2('0x1be')});db['ServicenowField'][_0x91b2('0x117')](db[_0x91b2('0xc7')],{'as':_0x91b2('0x1c2'),'foreignKey':'SubjectId'});db[_0x91b2('0xc7')][_0x91b2('0x117')](db[_0x91b2('0xc7')],{'as':'Description','foreignKey':_0x91b2('0x1c4')});db[_0x91b2('0xc7')][_0x91b2('0x117')](db[_0x91b2('0xc7')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xc7')][_0x91b2('0x128')](db['Variable'],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db[_0x91b2('0xc9')][_0x91b2('0x117')](db[_0x91b2('0x1d0')],{'as':_0x91b2('0x1bd'),'onDelete':_0x91b2('0x116'),'foreignKey':'AccountId'});db[_0x91b2('0x1d0')][_0x91b2('0x117')](db[_0x91b2('0x1d1')],{'as':_0x91b2('0x1c8'),'onDelete':_0x91b2('0x116'),'foreignKey':'SubjectId'});db[_0x91b2('0x1d0')][_0x91b2('0x117')](db[_0x91b2('0x1d1')],{'as':'Descriptions','onDelete':'cascade','foreignKey':'DescriptionId'});db['Dynamics365Configuration']['hasMany'](db['Dynamics365Field'],{'as':'Fields','onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0x1d0')][_0x91b2('0x128')](db[_0x91b2('0xc9')],{'as':_0x91b2('0x17f'),'foreignKey':'AccountId'});db[_0x91b2('0x1d1')][_0x91b2('0x117')](db[_0x91b2('0x1d1')],{'as':'Subject','foreignKey':_0x91b2('0x1bf')});db[_0x91b2('0x1d1')][_0x91b2('0x117')](db[_0x91b2('0x1d1')],{'as':_0x91b2('0x1c3'),'foreignKey':_0x91b2('0x1c4')});db['Dynamics365Field'][_0x91b2('0x117')](db[_0x91b2('0x1d1')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0x1d1')]['belongsTo'](db[_0x91b2('0x96')],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db[_0x91b2('0xcd')][_0x91b2('0x117')](db[_0x91b2('0xcf')],{'as':_0x91b2('0x1bd'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xcf')][_0x91b2('0x117')](db['FreshsalesField'],{'as':_0x91b2('0x1c8'),'foreignKey':'SubjectId'});db[_0x91b2('0xcf')][_0x91b2('0x117')](db[_0x91b2('0xd1')],{'as':'Descriptions','foreignKey':_0x91b2('0x1c4')});db['FreshsalesConfiguration']['hasMany'](db['FreshsalesField'],{'as':_0x91b2('0x1ba'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xcf')][_0x91b2('0x128')](db[_0x91b2('0xcd')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x1be')});db[_0x91b2('0xd1')][_0x91b2('0x117')](db[_0x91b2('0xd1')],{'as':'Subject','foreignKey':'SubjectId'});db[_0x91b2('0xd1')]['hasMany'](db[_0x91b2('0xd1')],{'as':_0x91b2('0x1c3'),'foreignKey':'DescriptionId'});db['FreshsalesField'][_0x91b2('0x117')](db[_0x91b2('0xd1')],{'as':_0x91b2('0x1c5'),'foreignKey':_0x91b2('0x1c1')});db[_0x91b2('0xd1')][_0x91b2('0x128')](db['Variable'],{'as':_0x91b2('0x96'),'foreignKey':_0x91b2('0x1c6')});db['ChatQueueReport'][_0x91b2('0x128')](db[_0x91b2('0x67')],{});db[_0x91b2('0xd5')]['belongsTo'](db['CmList'],{'as':_0x91b2('0x169'),'foreignKey':'ListId'});db[_0x91b2('0xd5')][_0x91b2('0x128')](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0xd5')][_0x91b2('0x128')](db[_0x91b2('0x122')],{});db[_0x91b2('0xd5')]['belongsTo'](db[_0x91b2('0x6d')],{});db[_0x91b2('0xd5')][_0x91b2('0x128')](db['User'],{});db[_0x91b2('0xd5')]['belongsTo'](db['ChatQueue'],{});db[_0x91b2('0xd7')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':'cascade','foreignKey':_0x91b2('0x1d2')});db['ChatInternalMessage'][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x1d3')});db[_0x91b2('0xdd')]['hasMany'](db[_0x91b2('0xdb')],{'foreignKey':_0x91b2('0x1d4'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0xdd')][_0x91b2('0x117')](db[_0x91b2('0xd9')],{'foreignKey':_0x91b2('0x1d4'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db[_0x91b2('0x58')],{});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db[_0x91b2('0x5c')],{});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db[_0x91b2('0x183')],{});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db[_0x91b2('0x13')],{});db[_0x91b2('0x1d5')][_0x91b2('0x128')](db['SmsQueue'],{});db['JscriptyProject']['hasMany'](db[_0x91b2('0xdd')],{'foreignKey':_0x91b2('0x1d6')});db[_0x91b2('0xe3')][_0x91b2('0x117')](db[_0x91b2('0xdb')],{'foreignKey':_0x91b2('0x1d6')});db[_0x91b2('0xe3')][_0x91b2('0x117')](db[_0x91b2('0xd9')],{'foreignKey':'ProjectId'});db[_0x91b2('0x149')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x170'),'through':_0x91b2('0x1d7')});db['Team'][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':_0x91b2('0x15a'),'through':_0x91b2('0x130')});db['Team'][_0x91b2('0x12a')](db['VoiceQueue'],{'through':_0x91b2('0x113'),'as':_0x91b2('0x136')});db[_0x91b2('0xeb')][_0x91b2('0x12a')](db[_0x91b2('0x44')],{'through':_0x91b2('0x1d8'),'as':_0x91b2('0x137')});db[_0x91b2('0xeb')][_0x91b2('0x12a')](db[_0x91b2('0x71')],{'through':'team_has_chat_queues','as':_0x91b2('0x138')});db[_0x91b2('0xeb')][_0x91b2('0x12a')](db['FaxQueue'],{'through':_0x91b2('0x1d9'),'as':_0x91b2('0x139')});db[_0x91b2('0xeb')]['belongsToMany'](db[_0x91b2('0x13a')],{'through':'team_has_sms_queues','as':'SmsQueues'});db[_0x91b2('0xeb')][_0x91b2('0x12a')](db[_0x91b2('0x65')],{'through':_0x91b2('0x18d'),'as':_0x91b2('0x13c')});db[_0x91b2('0xeb')][_0x91b2('0x12a')](db[_0x91b2('0x13d')],{'through':'team_has_whatsapp_queues','as':_0x91b2('0x1da')});db[_0x91b2('0xee')][_0x91b2('0x117')](db[_0x91b2('0x7a')],{'as':'Hoppers','foreignKey':'CampaignId'});db['Campaign'][_0x91b2('0x117')](db['CmHopperFinal'],{'as':_0x91b2('0x11e'),'foreignKey':_0x91b2('0x19e')});db['Campaign'][_0x91b2('0x117')](db[_0x91b2('0x7d')],{'as':_0x91b2('0x151'),'foreignKey':'CampaignId'});db[_0x91b2('0xee')][_0x91b2('0x117')](db[_0x91b2('0x7b')],{'as':_0x91b2('0x152'),'foreignKey':'CampaignId'});db[_0x91b2('0xee')][_0x91b2('0x128')](db[_0x91b2('0x17c')],{'as':_0x91b2('0x17c'),'foreignKey':_0x91b2('0x153')});db['Campaign'][_0x91b2('0x128')](db[_0x91b2('0x17c')],{'as':_0x91b2('0x154'),'foreignKey':_0x91b2('0x155')});db[_0x91b2('0xee')][_0x91b2('0x128')](db['Interval'],{'as':'Interval','foreignKey':'IntervalId'});db[_0x91b2('0xee')]['belongsTo'](db[_0x91b2('0x149')],{'as':_0x91b2('0x149'),'foreignKey':_0x91b2('0x1db')});db[_0x91b2('0xee')][_0x91b2('0x12a')](db['CmList'],{'as':_0x91b2('0x12e'),'through':_0x91b2('0x1dc')});db['Campaign'][_0x91b2('0x12a')](db['CmList'],{'as':_0x91b2('0x15c'),'through':_0x91b2('0x1dd')});db[_0x91b2('0xf2')]['belongsTo'](db[_0x91b2('0x6f')],{'as':_0x91b2('0x6f'),'foreignKey':'ChatOfflineMessageId'});db[_0x91b2('0xf5')][_0x91b2('0x128')](db[_0x91b2('0x49')],{});db[_0x91b2('0xf5')][_0x91b2('0x128')](db['MailInteraction'],{});db[_0x91b2('0xf5')]['belongsTo'](db[_0x91b2('0x143')],{'foreignKey':_0x91b2('0x1de'),'as':'FromAccount'});db[_0x91b2('0xf5')]['belongsTo'](db[_0x91b2('0x13')],{'foreignKey':_0x91b2('0x1df'),'as':_0x91b2('0x1e0')});db[_0x91b2('0xf5')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'foreignKey':'ToUserId','as':_0x91b2('0x1e1')});db['MailTransferReport']['belongsTo'](db['MailQueue'],{'foreignKey':_0x91b2('0x1e2'),'as':_0x91b2('0x1e3')});db[_0x91b2('0xf5')][_0x91b2('0x128')](db['MailAccount'],{'foreignKey':_0x91b2('0x1e4'),'as':'ToAccount'});db[_0x91b2('0xf6')][_0x91b2('0x128')](db[_0x91b2('0x6d')],{});db[_0x91b2('0xf6')][_0x91b2('0x128')](db[_0x91b2('0x122')],{});db[_0x91b2('0xf6')]['belongsTo'](db[_0x91b2('0x67')],{'foreignKey':'FromChatWebsiteId','as':'FromAccount'});db[_0x91b2('0xf6')]['belongsTo'](db[_0x91b2('0x13')],{'foreignKey':_0x91b2('0x1df'),'as':'FromAgent'});db['ChatTransferReport'][_0x91b2('0x128')](db['User'],{'foreignKey':_0x91b2('0x1e5'),'as':_0x91b2('0x1e1')});db['ChatTransferReport']['belongsTo'](db[_0x91b2('0x71')],{'foreignKey':_0x91b2('0x1e6'),'as':_0x91b2('0x1e3')});db['ChatTransferReport'][_0x91b2('0x128')](db[_0x91b2('0x67')],{'foreignKey':'ToChatWebsiteId','as':_0x91b2('0x1e7')});db[_0x91b2('0xf8')][_0x91b2('0x128')](db['FaxMessage'],{});db['FaxTransferReport'][_0x91b2('0x128')](db[_0x91b2('0x52')],{});db[_0x91b2('0xf8')][_0x91b2('0x128')](db[_0x91b2('0x4e')],{'foreignKey':_0x91b2('0x1e8'),'as':_0x91b2('0x1e9')});db[_0x91b2('0xf8')]['belongsTo'](db[_0x91b2('0x13')],{'foreignKey':'FromUserId','as':_0x91b2('0x1e0')});db['FaxTransferReport'][_0x91b2('0x128')](db['User'],{'foreignKey':_0x91b2('0x1e5'),'as':'ToAgent'});db[_0x91b2('0xf8')][_0x91b2('0x128')](db[_0x91b2('0x55')],{'foreignKey':'ToFaxQueueId','as':_0x91b2('0x1e3')});db[_0x91b2('0xf8')]['belongsTo'](db['FaxAccount'],{'foreignKey':_0x91b2('0x1ea'),'as':'ToAccount'});db[_0x91b2('0x1eb')][_0x91b2('0x128')](db[_0x91b2('0x63')],{});db[_0x91b2('0x1eb')][_0x91b2('0x128')](db[_0x91b2('0x61')],{});db['OpenchannelTransferReport'][_0x91b2('0x128')](db[_0x91b2('0x5f')],{'foreignKey':'FromOpenchannelAccountId','as':'FromAccount'});db[_0x91b2('0x1eb')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'foreignKey':_0x91b2('0x1df'),'as':_0x91b2('0x1e0')});db[_0x91b2('0x1eb')]['belongsTo'](db[_0x91b2('0x13')],{'foreignKey':'ToUserId','as':_0x91b2('0x1e1')});db[_0x91b2('0x1eb')][_0x91b2('0x128')](db[_0x91b2('0x65')],{'foreignKey':_0x91b2('0x1ec'),'as':_0x91b2('0x1e3')});db[_0x91b2('0x1eb')][_0x91b2('0x128')](db['OpenchannelAccount'],{'foreignKey':_0x91b2('0x1ed'),'as':_0x91b2('0x1e7')});db[_0x91b2('0xf9')][_0x91b2('0x128')](db[_0x91b2('0x183')],{});db['SmsTransferReport'][_0x91b2('0x128')](db[_0x91b2('0x5c')],{});db['SmsTransferReport']['belongsTo'](db[_0x91b2('0x58')],{'foreignKey':_0x91b2('0x1ee'),'as':_0x91b2('0x1e9')});db[_0x91b2('0xf9')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'foreignKey':_0x91b2('0x1df'),'as':'FromAgent'});db[_0x91b2('0xf9')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'foreignKey':_0x91b2('0x1e5'),'as':_0x91b2('0x1e1')});db[_0x91b2('0xf9')][_0x91b2('0x128')](db[_0x91b2('0x13a')],{'foreignKey':_0x91b2('0x1ef'),'as':'ToQueue'});db[_0x91b2('0xf9')]['belongsTo'](db[_0x91b2('0x58')],{'foreignKey':_0x91b2('0x1f0'),'as':_0x91b2('0x1e7')});db[_0x91b2('0xfb')][_0x91b2('0x117')](db[_0x91b2('0x83')],{'as':'Dispositions','foreignKey':'ListId','onDelete':_0x91b2('0x116')});db[_0x91b2('0xfb')][_0x91b2('0x117')](db[_0x91b2('0x1f1')],{'as':_0x91b2('0x1f2'),'foreignKey':'ListId'});db[_0x91b2('0xfb')][_0x91b2('0x117')](db[_0x91b2('0x78')],{'as':_0x91b2('0x12c'),'onDelete':_0x91b2('0x116'),'foreignKey':_0x91b2('0x16a')});db['CmList'][_0x91b2('0x117')](db[_0x91b2('0x11d')],{'as':'HopperFinals','foreignKey':_0x91b2('0x16a')});db[_0x91b2('0xfb')][_0x91b2('0x117')](db[_0x91b2('0x7d')],{'as':_0x91b2('0x11f'),'foreignKey':_0x91b2('0x16a')});db['CmList'][_0x91b2('0x117')](db['ReportAgentPreview'],{'as':'ReportAgentPreview','foreignKey':_0x91b2('0x16a')});db[_0x91b2('0xfb')][_0x91b2('0x12a')](db[_0x91b2('0x1d')],{'as':_0x91b2('0x1f3'),'through':_0x91b2('0x159')});db['CmList'][_0x91b2('0x12a')](db['User'],{'as':'Agents','through':_0x91b2('0x12f')});db[_0x91b2('0xfd')][_0x91b2('0x117')](db[_0x91b2('0x19')],{'as':'Extensions','onDelete':_0x91b2('0x116')});db[_0x91b2('0xfd')][_0x91b2('0x12a')](db['User'],{'as':'Agents','through':_0x91b2('0x13f')});db['UserProfile'][_0x91b2('0x117')](db[_0x91b2('0x13')],{'as':_0x91b2('0x170'),'foreignKey':'userProfileId'});db[_0x91b2('0xff')][_0x91b2('0x117')](db['UserProfileSection'],{'as':_0x91b2('0x1f4'),'foreignKey':_0x91b2('0x129'),'onDelete':_0x91b2('0x116')});db[_0x91b2('0x101')]['hasMany'](db[_0x91b2('0x103')],{'as':_0x91b2('0x1f5'),'foreignKey':_0x91b2('0x1f6'),'onDelete':'cascade'});db[_0x91b2('0x107')][_0x91b2('0x117')](db['Disposition'],{'as':_0x91b2('0x165'),'foreignKey':_0x91b2('0x1f7'),'onDelete':'cascade'});db[_0x91b2('0x107')][_0x91b2('0x117')](db[_0x91b2('0x81')],{'as':_0x91b2('0x167'),'foreignKey':_0x91b2('0x1f7')});db[_0x91b2('0x107')]['hasMany'](db[_0x91b2('0x10c')],{'as':_0x91b2('0x15e'),'foreignKey':_0x91b2('0x1f7')});db[_0x91b2('0x107')][_0x91b2('0x117')](db[_0x91b2('0x10b')],{'as':_0x91b2('0x168')});db[_0x91b2('0x107')][_0x91b2('0x117')](db[_0x91b2('0x109')],{'as':_0x91b2('0x14c')});db[_0x91b2('0x107')][_0x91b2('0x128')](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db['WhatsappAccount'][_0x91b2('0x128')](db[_0x91b2('0x89')],{'as':_0x91b2('0x157'),'foreignKey':_0x91b2('0x158')});db['WhatsappAccount'][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':'Agents','through':'user_has_whatsapp_accounts'});db[_0x91b2('0x109')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'onDelete':'restrict'});db['WhatsappApplication'][_0x91b2('0x128')](db['WhatsappQueue'],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x109')]['belongsTo'](db[_0x91b2('0x107')],{'onDelete':_0x91b2('0x175')});db[_0x91b2('0x109')]['belongsTo'](db[_0x91b2('0x87')],{'onDelete':_0x91b2('0x175'),'foreignKey':'IntervalId'});db[_0x91b2('0x109')]['belongsTo'](db['Tag'],{'onDelete':_0x91b2('0x175'),'foreignKey':_0x91b2('0x17d')});db[_0x91b2('0x10b')][_0x91b2('0x117')](db[_0x91b2('0x10c')],{'as':_0x91b2('0x15e'),'onDelete':'cascade','foreignKey':_0x91b2('0x1f8')});db[_0x91b2('0x10b')]['belongsTo'](db[_0x91b2('0x107')],{'as':_0x91b2('0x17f'),'foreignKey':_0x91b2('0x1f7')});db[_0x91b2('0x10b')]['belongsTo'](db[_0x91b2('0x78')],{'as':'Contact','foreignKey':_0x91b2('0x182')});db[_0x91b2('0x10b')]['belongsTo'](db[_0x91b2('0x13')],{'as':_0x91b2('0x16c'),'foreignKey':_0x91b2('0x119')});db['WhatsappInteraction']['belongsToMany'](db['Tag'],{'through':_0x91b2('0x1b2'),'as':_0x91b2('0x16e')});db[_0x91b2('0x10b')][_0x91b2('0x12a')](db['Tag'],{'through':'whatsapp_interaction_has_tags','as':_0x91b2('0x16f')});db['WhatsappInteraction']['belongsToMany'](db[_0x91b2('0x13')],{'as':_0x91b2('0x170'),'through':_0x91b2('0x135'),'foreignKey':_0x91b2('0x1f8')});db[_0x91b2('0x10c')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'as':_0x91b2('0x13')});db[_0x91b2('0x10c')][_0x91b2('0x128')](db['CmContact'],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x164')});db[_0x91b2('0x10c')]['belongsTo'](db[_0x91b2('0x10b')],{'onDelete':_0x91b2('0x116'),'as':_0x91b2('0x173'),'foreignKey':_0x91b2('0x1f8')});db[_0x91b2('0x10c')][_0x91b2('0x128')](db[_0x91b2('0x107')],{'as':_0x91b2('0x17f'),'foreignKey':'WhatsappAccountId'});db[_0x91b2('0x1f9')]['belongsTo'](db[_0x91b2('0x107')],{});db[_0x91b2('0x1f9')][_0x91b2('0x128')](db[_0x91b2('0xfb')],{'as':_0x91b2('0x169'),'foreignKey':_0x91b2('0x16a')});db[_0x91b2('0x1f9')]['belongsTo'](db[_0x91b2('0x78')],{'as':_0x91b2('0x164'),'foreignKey':_0x91b2('0x182')});db[_0x91b2('0x1f9')][_0x91b2('0x128')](db[_0x91b2('0x10b')],{});db[_0x91b2('0x1f9')][_0x91b2('0x128')](db['WhatsappQueue'],{});db['WhatsappQueueReport'][_0x91b2('0x128')](db[_0x91b2('0x10c')],{});db[_0x91b2('0x1f9')][_0x91b2('0x128')](db[_0x91b2('0x13')],{});db['WhatsappTransferReport'][_0x91b2('0x128')](db[_0x91b2('0x10c')],{});db['WhatsappTransferReport'][_0x91b2('0x128')](db[_0x91b2('0x10b')],{});db[_0x91b2('0x10f')]['belongsTo'](db[_0x91b2('0x107')],{'foreignKey':_0x91b2('0x1fa'),'as':_0x91b2('0x1e9')});db[_0x91b2('0x10f')]['belongsTo'](db[_0x91b2('0x107')],{'foreignKey':_0x91b2('0x1fb'),'as':_0x91b2('0x1e7')});db[_0x91b2('0x10f')]['belongsTo'](db[_0x91b2('0x13d')],{'foreignKey':_0x91b2('0x1fc'),'as':_0x91b2('0x1e3')});db[_0x91b2('0x10f')][_0x91b2('0x128')](db['User'],{'foreignKey':_0x91b2('0x1df'),'as':_0x91b2('0x1e0')});db[_0x91b2('0x10f')][_0x91b2('0x128')](db[_0x91b2('0x13')],{'foreignKey':_0x91b2('0x1e5'),'as':'ToAgent'});db[_0x91b2('0x13d')][_0x91b2('0x12a')](db[_0x91b2('0x13')],{'as':'Agents','through':_0x91b2('0x3e'),'foreignKey':_0x91b2('0x1fd')});db[_0x91b2('0x13d')][_0x91b2('0x12a')](db[_0x91b2('0xeb')],{'through':_0x91b2('0x1fe'),'as':'Teams'});module[_0x91b2('0x1ff')]={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x583b=['consumerSecret','membername','calleridnum','exten','vidaooApiKey','clientEmail','privateKey','secretaccesskey','key','pass','accountSid','localstationid','dsn','secret','oldPassword','isPlainObject','isArray','length','replace','@@{','}@@','includes','path','express','express-winston','./errors','./config/environment','./config/logger','default','logger','isEmpty','body','format','method','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','user','inspect','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','url','name','role','other','agent_id','agent_name','test','/api/users','./api/user','/api/voice/chanspy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','/api/voice/mohs','./api/voiceMusicOnHold','/api/voice/queues','/api/voice/recordings','./api/voiceRecording','/api/screen/recordings','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','/api/voice/calls/reports','./api/voiceCallReport','/api/voice/dials/reports','/api/voice/agents/reports','/api/voice/queues/reports','./api/voiceQueueReport','/api/members/reports','./api/memberReport','/api/trunks','./api/trunk','/api/voice/transfers/reports','./api/voiceTransferReport','/api/mail/out_servers','./api/mailServerOut','./api/mailAccount','./api/mailQueue','/api/mail/substatuses','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','/api/mail/applications','./api/mailApplication','./api/mailQueueReport','/api/dashboards','./api/dashboard','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','/api/fax/reports/queue','/api/sms/accounts','./api/smsAccount','./api/smsApplication','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','./api/smsQueue','/api/openchannel/accounts','./api/openchannelAccount','/api/openchannel/applications','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/messages','./api/openchannelMessage','/api/openchannel/queues','./api/openchannelQueue','/api/chat/websites','./api/chatWebsite','/api/openchannel/reports/queue','./api/openchannelQueueReport','/api/chat/applications','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','/api/chat/messages','/api/chat/offline_messages','./api/chatOfflineMessage','./api/chatQueue','/api/chat/groups','./api/chatGroup','/api/chat/proactive_actions','./api/cmCompany','/api/cm/contacts','./api/cmContact','/api/cm/hopper','./api/cmHopper','./api/cmHopperBlack','/api/cm/hopper_final','./api/cmHopperFinal','./api/cmCustomField','/api/actions','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','./api/disposition','/api/conditions','./api/condition','./api/cdr','/api/voiceQueuesLog','./api/voiceQueuesLog','/api/schedules','./api/schedule','/api/sounds','/api/tags','./api/tag','/api/templates','./api/template','/api/triggers','./api/trigger','/api/variables','./api/variable','/api/integrations','./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/analyticMetric','/api/analytics/field_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/intSugarcrmField','/api/integrations/desk/accounts','./api/intDeskAccount','/api/integrations/desk/configurations','./api/intDeskConfiguration','./api/intDeskField','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zoho/fields','./api/intZohoField','/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/intFreshdeskConfiguration','./api/intFreshdeskField','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/fields','./api/intServicenowField','/api/integrations/dynamics365/accounts','./api/intDynamics365Account','./api/intDynamics365Configuration','/api/integrations/dynamics365/fields','./api/intDynamics365Field','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','/api/networks','./api/network','/api/chat/reports/queue','./api/chatQueueReport','./api/chatInternalMessage','/api/jscripty/answers/reports','./api/jscriptyAnswerReport','./api/jscriptyQuestionReport','/api/jscripty/sessions/reports','./api/smsQueueReport','/api/square/reports','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','/api/jscripty/projects','./api/jscriptyProject','/api/settings','./api/setting','/api/square/odbc','./api/squareOdbc','./api/squareProject','/api/square/recordings','./api/squareRecording','/api/square/messages','/api/teams','./api/team','/api/license','./api/license','./api/campaign','./api/migration','/api/attachments','/api/plugins','./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/voicePrefix','/api/userProfiles','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','/api/userProfile/resources','./api/userProfileResource','./api/userNotification','/api/whatsapp/accounts','./api/whatsappAccount','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','/api/whatsapp/messages','./api/whatsappMessage','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/cloudProviders','./api/cloudProvider','/api/realtime','./api/realtime','./api/authLocal','./api/authGoogle','/api/jira','./api/jira','/api/rpc','./api/rpc','./api/version','/api/pm2','./api/pm2','./api/webbar','/apidoc','static','join','root','/www','/demo','/snippet','snippet','3.0.0','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','get','sendFile','resolve','/index.html','username','password','newPassword','apiKey','firstName','street','fax','email','clientId','clientSecret','securityToken','code','accessKey','tenantId','token','accessTokenSecret'];(function(_0x20909e,_0x32154a){var _0x5d780e=function(_0xea96d1){while(--_0xea96d1){_0x20909e['push'](_0x20909e['shift']());}};_0x5d780e(++_0x32154a);}(_0x583b,0x165));var _0xb583=function(_0x5dbd84,_0x3126d3){_0x5dbd84=_0x5dbd84-0x0;var _0x3a3f30=_0x583b[_0x5dbd84];return _0x3a3f30;};'use strict';var _=require('lodash');var path=require(_0xb583('0x0'));var express=require(_0xb583('0x1'));var ewinston=require(_0xb583('0x2'));var util=require('util');var errors=require(_0xb583('0x3'));var config=require(_0xb583('0x4'));var logger=require(_0xb583('0x5'))('api');var authLogger=require(_0xb583('0x5'))('auth');exports[_0xb583('0x6')]=function(_0x45455c){_0x45455c['use'](ewinston[_0xb583('0x7')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x357951,_0x580614){var _0x6598d6='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_[_0xb583('0x8')](_0x357951[_0xb583('0x9')])){_0x6598d6+='\x20body=%s';var _0x311adb=_0x357951[_0xb583('0x9')];maskSensitiveData(_0x311adb);}return util[_0xb583('0xa')](_0x6598d6,_0x357951[_0xb583('0xb')],_0x357951[_0xb583('0xc')]['x-forwarded-for']?_0x357951[_0xb583('0xc')][_0xb583('0xd')]:_0x357951[_0xb583('0xe')][_0xb583('0xf')]||_0x357951['ip'],_0x357951['url'],_0x580614[_0xb583('0x10')],_0x580614[_0xb583('0x11')],_0x357951['user']?_0x357951[_0xb583('0x12')]['id']:null,_0x357951[_0xb583('0x12')]?_0x357951[_0xb583('0x12')]['name']:null,_0x357951[_0xb583('0x12')]?_0x357951[_0xb583('0x12')]['role']:null,_0x311adb?util[_0xb583('0x13')](_0x311adb,![],null):'');}}));_0x45455c[_0xb583('0x14')](ewinston['logger']({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0xce60d,_0x187624){var _0x163b47=_0xb583('0x15');if(_0xce60d['body']&&_0xce60d[_0xb583('0x9')][_0xb583('0x16')]&&_0xce60d[_0xb583('0x9')]['agent_id']){_0x163b47='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0xb583('0xa')](_0x163b47,_0xce60d[_0xb583('0xb')],_0xce60d['headers'][_0xb583('0xd')]?_0xce60d[_0xb583('0xc')][_0xb583('0xd')]:_0xce60d['connection'][_0xb583('0xf')]||_0xce60d['ip'],_0xce60d[_0xb583('0x17')],_0x187624[_0xb583('0x10')],_0x187624[_0xb583('0x11')],_0xce60d[_0xb583('0x12')]?_0xce60d['user']['id']:null,_0xce60d[_0xb583('0x12')]?_0xce60d['user'][_0xb583('0x18')]:null,_0xce60d[_0xb583('0x12')]?_0xce60d[_0xb583('0x12')][_0xb583('0x19')]:null,_0xce60d['body']&&_0xce60d[_0xb583('0x9')][_0xb583('0x16')]?_0xce60d[_0xb583('0x9')][_0xb583('0x16')]:_0xb583('0x1a'),_0xce60d['body']&&_0xce60d[_0xb583('0x9')]['agent_id']?_0xce60d[_0xb583('0x9')][_0xb583('0x1b')]:'',_0xce60d[_0xb583('0x9')]&&_0xce60d[_0xb583('0x9')]['agent_name']?_0xce60d[_0xb583('0x9')][_0xb583('0x1c')]:'');},'ignoreRoute':function(_0x502efa){var _0x2788c1=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x2788c1[_0xb583('0x1d')](_0x502efa[_0xb583('0x17')]);}}));_0x45455c[_0xb583('0x14')](_0xb583('0x1e'),require(_0xb583('0x1f')));_0x45455c[_0xb583('0x14')](_0xb583('0x20'),require('./api/voiceChanSpy'));_0x45455c[_0xb583('0x14')](_0xb583('0x21'),require(_0xb583('0x22')));_0x45455c[_0xb583('0x14')](_0xb583('0x23'),require('./api/voiceExtension'));_0x45455c[_0xb583('0x14')](_0xb583('0x24'),require(_0xb583('0x25')));_0x45455c[_0xb583('0x14')](_0xb583('0x26'),require('./api/voiceQueue'));_0x45455c[_0xb583('0x14')](_0xb583('0x27'),require(_0xb583('0x28')));_0x45455c[_0xb583('0x14')](_0xb583('0x29'),require('./api/screenRecording'));_0x45455c[_0xb583('0x14')](_0xb583('0x2a'),require(_0xb583('0x2b')));_0x45455c[_0xb583('0x14')](_0xb583('0x2c'),require(_0xb583('0x2d')));_0x45455c['use'](_0xb583('0x2e'),require(_0xb583('0x2f')));_0x45455c[_0xb583('0x14')](_0xb583('0x30'),require('./api/voiceDialReport'));_0x45455c[_0xb583('0x14')](_0xb583('0x31'),require('./api/voiceAgentReport'));_0x45455c['use'](_0xb583('0x32'),require(_0xb583('0x33')));_0x45455c[_0xb583('0x14')](_0xb583('0x34'),require(_0xb583('0x35')));_0x45455c[_0xb583('0x14')](_0xb583('0x36'),require(_0xb583('0x37')));_0x45455c[_0xb583('0x14')](_0xb583('0x38'),require(_0xb583('0x39')));_0x45455c[_0xb583('0x14')](_0xb583('0x3a'),require(_0xb583('0x3b')));_0x45455c[_0xb583('0x14')]('/api/mail/accounts',require(_0xb583('0x3c')));_0x45455c[_0xb583('0x14')]('/api/mail/queues',require(_0xb583('0x3d')));_0x45455c[_0xb583('0x14')](_0xb583('0x3e'),require('./api/mailSubstatus'));_0x45455c[_0xb583('0x14')](_0xb583('0x3f'),require(_0xb583('0x40')));_0x45455c[_0xb583('0x14')](_0xb583('0x41'),require('./api/mailMessage'));_0x45455c['use'](_0xb583('0x42'),require(_0xb583('0x43')));_0x45455c[_0xb583('0x14')]('/api/mail/reports/queue',require(_0xb583('0x44')));_0x45455c[_0xb583('0x14')](_0xb583('0x45'),require(_0xb583('0x46')));_0x45455c[_0xb583('0x14')]('/api/dashboards/items',require(_0xb583('0x47')));_0x45455c[_0xb583('0x14')](_0xb583('0x48'),require(_0xb583('0x49')));_0x45455c['use'](_0xb583('0x4a'),require(_0xb583('0x4b')));_0x45455c[_0xb583('0x14')](_0xb583('0x4c'),require(_0xb583('0x4d')));_0x45455c[_0xb583('0x14')](_0xb583('0x4e'),require('./api/faxMessage'));_0x45455c[_0xb583('0x14')]('/api/fax/queues',require('./api/faxQueue'));_0x45455c['use'](_0xb583('0x4f'),require('./api/faxQueueReport'));_0x45455c['use'](_0xb583('0x50'),require(_0xb583('0x51')));_0x45455c[_0xb583('0x14')]('/api/sms/applications',require(_0xb583('0x52')));_0x45455c[_0xb583('0x14')](_0xb583('0x53'),require(_0xb583('0x54')));_0x45455c[_0xb583('0x14')](_0xb583('0x55'),require('./api/smsMessage'));_0x45455c['use']('/api/sms/queues',require(_0xb583('0x56')));_0x45455c['use'](_0xb583('0x57'),require(_0xb583('0x58')));_0x45455c[_0xb583('0x14')](_0xb583('0x59'),require(_0xb583('0x5a')));_0x45455c[_0xb583('0x14')](_0xb583('0x5b'),require(_0xb583('0x5c')));_0x45455c[_0xb583('0x14')](_0xb583('0x5d'),require(_0xb583('0x5e')));_0x45455c[_0xb583('0x14')](_0xb583('0x5f'),require(_0xb583('0x60')));_0x45455c[_0xb583('0x14')](_0xb583('0x61'),require(_0xb583('0x62')));_0x45455c['use'](_0xb583('0x63'),require(_0xb583('0x64')));_0x45455c['use'](_0xb583('0x65'),require(_0xb583('0x66')));_0x45455c['use'](_0xb583('0x67'),require(_0xb583('0x68')));_0x45455c[_0xb583('0x14')](_0xb583('0x69'),require('./api/chatMessage'));_0x45455c[_0xb583('0x14')](_0xb583('0x6a'),require(_0xb583('0x6b')));_0x45455c['use']('/api/chat/queues',require(_0xb583('0x6c')));_0x45455c[_0xb583('0x14')](_0xb583('0x6d'),require(_0xb583('0x6e')));_0x45455c[_0xb583('0x14')](_0xb583('0x6f'),require('./api/chatProactiveAction'));_0x45455c['use']('/api/cm/companies',require(_0xb583('0x70')));_0x45455c[_0xb583('0x14')](_0xb583('0x71'),require(_0xb583('0x72')));_0x45455c[_0xb583('0x14')](_0xb583('0x73'),require(_0xb583('0x74')));_0x45455c[_0xb583('0x14')]('/api/cm/hopper_black',require(_0xb583('0x75')));_0x45455c['use'](_0xb583('0x76'),require(_0xb583('0x77')));_0x45455c[_0xb583('0x14')]('/api/cm/hopper_history',require('./api/cmHopperHistory'));_0x45455c[_0xb583('0x14')]('/api/cm/custom_fields',require(_0xb583('0x78')));_0x45455c[_0xb583('0x14')](_0xb583('0x79'),require(_0xb583('0x7a')));_0x45455c[_0xb583('0x14')](_0xb583('0x7b'),require(_0xb583('0x7c')));_0x45455c['use'](_0xb583('0x7d'),require(_0xb583('0x7e')));_0x45455c[_0xb583('0x14')](_0xb583('0x7f'),require(_0xb583('0x80')));_0x45455c[_0xb583('0x14')](_0xb583('0x81'),require(_0xb583('0x82')));_0x45455c['use']('/api/intervals',require('./api/interval'));_0x45455c[_0xb583('0x14')]('/api/pauses',require('./api/pause'));_0x45455c[_0xb583('0x14')]('/api/cdr',require(_0xb583('0x83')));_0x45455c[_0xb583('0x14')](_0xb583('0x84'),require(_0xb583('0x85')));_0x45455c[_0xb583('0x14')](_0xb583('0x86'),require(_0xb583('0x87')));_0x45455c[_0xb583('0x14')](_0xb583('0x88'),require('./api/sound'));_0x45455c[_0xb583('0x14')](_0xb583('0x89'),require(_0xb583('0x8a')));_0x45455c[_0xb583('0x14')](_0xb583('0x8b'),require(_0xb583('0x8c')));_0x45455c[_0xb583('0x14')](_0xb583('0x8d'),require(_0xb583('0x8e')));_0x45455c[_0xb583('0x14')](_0xb583('0x8f'),require(_0xb583('0x90')));_0x45455c['use'](_0xb583('0x91'),require(_0xb583('0x92')));_0x45455c['use'](_0xb583('0x93'),require(_0xb583('0x94')));_0x45455c['use'](_0xb583('0x95'),require(_0xb583('0x96')));_0x45455c[_0xb583('0x14')](_0xb583('0x97'),require(_0xb583('0x98')));_0x45455c[_0xb583('0x14')](_0xb583('0x99'),require(_0xb583('0x9a')));_0x45455c[_0xb583('0x14')]('/api/analytics/metrics',require(_0xb583('0x9b')));_0x45455c[_0xb583('0x14')](_0xb583('0x9c'),require('./api/analyticFieldReport'));_0x45455c[_0xb583('0x14')]('/api/analytics/tree_reports',require(_0xb583('0x9d')));_0x45455c[_0xb583('0x14')](_0xb583('0x9e'),require(_0xb583('0x9f')));_0x45455c[_0xb583('0x14')](_0xb583('0xa0'),require('./api/intSalesforceConfiguration'));_0x45455c[_0xb583('0x14')](_0xb583('0xa1'),require(_0xb583('0xa2')));_0x45455c[_0xb583('0x14')](_0xb583('0xa3'),require(_0xb583('0xa4')));_0x45455c[_0xb583('0x14')](_0xb583('0xa5'),require(_0xb583('0xa6')));_0x45455c[_0xb583('0x14')]('/api/integrations/sugarcrm/fields',require(_0xb583('0xa7')));_0x45455c[_0xb583('0x14')](_0xb583('0xa8'),require(_0xb583('0xa9')));_0x45455c[_0xb583('0x14')](_0xb583('0xaa'),require(_0xb583('0xab')));_0x45455c[_0xb583('0x14')]('/api/integrations/desk/fields',require(_0xb583('0xac')));_0x45455c[_0xb583('0x14')]('/api/integrations/zoho/accounts',require(_0xb583('0xad')));_0x45455c[_0xb583('0x14')](_0xb583('0xae'),require(_0xb583('0xaf')));_0x45455c[_0xb583('0x14')](_0xb583('0xb0'),require(_0xb583('0xb1')));_0x45455c[_0xb583('0x14')](_0xb583('0xb2'),require(_0xb583('0xb3')));_0x45455c[_0xb583('0x14')](_0xb583('0xb4'),require(_0xb583('0xb5')));_0x45455c['use'](_0xb583('0xb6'),require(_0xb583('0xb7')));_0x45455c[_0xb583('0x14')](_0xb583('0xb8'),require(_0xb583('0xb9')));_0x45455c[_0xb583('0x14')]('/api/integrations/freshdesk/configurations',require(_0xb583('0xba')));_0x45455c['use']('/api/integrations/freshdesk/fields',require(_0xb583('0xbb')));_0x45455c[_0xb583('0x14')]('/api/integrations/vtiger/accounts',require('./api/intVtigerAccount'));_0x45455c[_0xb583('0x14')](_0xb583('0xbc'),require(_0xb583('0xbd')));_0x45455c[_0xb583('0x14')]('/api/integrations/vtiger/fields',require(_0xb583('0xbe')));_0x45455c[_0xb583('0x14')](_0xb583('0xbf'),require(_0xb583('0xc0')));_0x45455c['use']('/api/integrations/servicenow/configurations',require('./api/intServicenowConfiguration'));_0x45455c[_0xb583('0x14')](_0xb583('0xc1'),require(_0xb583('0xc2')));_0x45455c[_0xb583('0x14')](_0xb583('0xc3'),require(_0xb583('0xc4')));_0x45455c[_0xb583('0x14')]('/api/integrations/dynamics365/configurations',require(_0xb583('0xc5')));_0x45455c[_0xb583('0x14')](_0xb583('0xc6'),require(_0xb583('0xc7')));_0x45455c[_0xb583('0x14')]('/api/integrations/freshsales/accounts',require('./api/intFreshsalesAccount'));_0x45455c[_0xb583('0x14')](_0xb583('0xc8'),require(_0xb583('0xc9')));_0x45455c['use'](_0xb583('0xca'),require('./api/intFreshsalesField'));_0x45455c[_0xb583('0x14')](_0xb583('0xcb'),require(_0xb583('0xcc')));_0x45455c[_0xb583('0x14')](_0xb583('0xcd'),require(_0xb583('0xce')));_0x45455c[_0xb583('0x14')]('/api/chat/internal/messages',require(_0xb583('0xcf')));_0x45455c[_0xb583('0x14')](_0xb583('0xd0'),require(_0xb583('0xd1')));_0x45455c[_0xb583('0x14')]('/api/jscripty/questions/reports',require(_0xb583('0xd2')));_0x45455c[_0xb583('0x14')](_0xb583('0xd3'),require('./api/jscriptySessionReport'));_0x45455c[_0xb583('0x14')]('/api/sms/reports/queue',require(_0xb583('0xd4')));_0x45455c[_0xb583('0x14')](_0xb583('0xd5'),require(_0xb583('0xd6')));_0x45455c[_0xb583('0x14')](_0xb583('0xd7'),require(_0xb583('0xd8')));_0x45455c['use'](_0xb583('0xd9'),require(_0xb583('0xda')));_0x45455c[_0xb583('0x14')](_0xb583('0xdb'),require(_0xb583('0xdc')));_0x45455c[_0xb583('0x14')](_0xb583('0xdd'),require(_0xb583('0xde')));_0x45455c[_0xb583('0x14')]('/api/square/projects',require(_0xb583('0xdf')));_0x45455c['use'](_0xb583('0xe0'),require(_0xb583('0xe1')));_0x45455c[_0xb583('0x14')](_0xb583('0xe2'),require('./api/squareMessage'));_0x45455c[_0xb583('0x14')](_0xb583('0xe3'),require(_0xb583('0xe4')));_0x45455c[_0xb583('0x14')](_0xb583('0xe5'),require(_0xb583('0xe6')));_0x45455c[_0xb583('0x14')]('/api/campaigns',require(_0xb583('0xe7')));_0x45455c[_0xb583('0x14')]('/api/migrations',require(_0xb583('0xe8')));_0x45455c['use'](_0xb583('0xe9'),require('./api/attachment'));_0x45455c['use'](_0xb583('0xea'),require(_0xb583('0xeb')));_0x45455c['use'](_0xb583('0xec'),require(_0xb583('0xed')));_0x45455c[_0xb583('0x14')](_0xb583('0xee'),require(_0xb583('0xef')));_0x45455c[_0xb583('0x14')](_0xb583('0xf0'),require(_0xb583('0xf1')));_0x45455c[_0xb583('0x14')](_0xb583('0xf2'),require(_0xb583('0xf3')));_0x45455c['use'](_0xb583('0xf4'),require(_0xb583('0xf5')));_0x45455c[_0xb583('0x14')](_0xb583('0xf6'),require(_0xb583('0xf7')));_0x45455c[_0xb583('0x14')]('/api/voice/prefixes',require(_0xb583('0xf8')));_0x45455c['use'](_0xb583('0xf9'),require(_0xb583('0xfa')));_0x45455c['use'](_0xb583('0xfb'),require(_0xb583('0xfc')));_0x45455c[_0xb583('0x14')](_0xb583('0xfd'),require(_0xb583('0xfe')));_0x45455c[_0xb583('0x14')]('/api/userNotifications',require(_0xb583('0xff')));_0x45455c[_0xb583('0x14')](_0xb583('0x100'),require(_0xb583('0x101')));_0x45455c[_0xb583('0x14')]('/api/whatsapp/applications',require(_0xb583('0x102')));_0x45455c[_0xb583('0x14')](_0xb583('0x103'),require(_0xb583('0x104')));_0x45455c[_0xb583('0x14')](_0xb583('0x105'),require(_0xb583('0x106')));_0x45455c[_0xb583('0x14')]('/api/whatsapp/reports/queue',require(_0xb583('0x107')));_0x45455c[_0xb583('0x14')](_0xb583('0x108'),require(_0xb583('0x109')));_0x45455c[_0xb583('0x14')]('/api/whatsapp/queues',require('./api/whatsappQueue'));_0x45455c[_0xb583('0x14')](_0xb583('0x10a'),require(_0xb583('0x10b')));_0x45455c[_0xb583('0x14')](_0xb583('0x10c'),require(_0xb583('0x10d')));_0x45455c[_0xb583('0x14')]('/api/auth/local',require(_0xb583('0x10e')));_0x45455c[_0xb583('0x14')]('/api/auth/google',require(_0xb583('0x10f')));_0x45455c[_0xb583('0x14')](_0xb583('0x110'),require(_0xb583('0x111')));_0x45455c['use'](_0xb583('0x112'),require(_0xb583('0x113')));_0x45455c['use']('/api/version',require(_0xb583('0x114')));_0x45455c['use']('/api/system',require('./api/system'));_0x45455c[_0xb583('0x14')](_0xb583('0x115'),require(_0xb583('0x116')));_0x45455c[_0xb583('0x14')]('/api/webbar',require(_0xb583('0x117')));_0x45455c[_0xb583('0x14')](_0xb583('0x118'),express[_0xb583('0x119')](path[_0xb583('0x11a')](config[_0xb583('0x11b')],_0xb583('0x118'))));_0x45455c[_0xb583('0x14')](_0xb583('0x11c'),express['static'](path[_0xb583('0x11a')](config[_0xb583('0x11b')],_0xb583('0x11c'))));_0x45455c[_0xb583('0x14')](_0xb583('0x11d'),express['static'](path[_0xb583('0x11a')](config['root'],_0xb583('0x11d'))));_0x45455c[_0xb583('0x14')](_0xb583('0x11e'),express[_0xb583('0x119')](path[_0xb583('0x11a')](config[_0xb583('0x11b')],_0xb583('0x11f'),_0xb583('0x120'))));_0x45455c[_0xb583('0x14')](_0xb583('0x121'),express[_0xb583('0x119')](path[_0xb583('0x11a')](config['root'],_0xb583('0x122'))));_0x45455c[_0xb583('0x123')](_0xb583('0x124'))['get'](errors[0x194]);_0x45455c[_0xb583('0x123')]('/*')[_0xb583('0x125')](function(_0x371d62,_0x2d0b62){_0x2d0b62[_0xb583('0x126')](path[_0xb583('0x127')](_0x45455c['get']('appPath')+_0xb583('0x128')));});};var sensitiveFields=[_0xb583('0x129'),_0xb583('0x12a'),_0xb583('0x12b'),_0xb583('0x12c'),_0xb583('0x12d'),'lastName',_0xb583('0x12e'),'phone','mobile',_0xb583('0x12f'),_0xb583('0x130'),_0xb583('0x131'),_0xb583('0x132'),_0xb583('0x133'),_0xb583('0x134'),_0xb583('0x135'),_0xb583('0x136'),_0xb583('0x137'),'channelSecret','accessToken',_0xb583('0x138'),'authToken','consumerKey',_0xb583('0x139'),_0xb583('0x13a'),'calleridname',_0xb583('0x13b'),_0xb583('0x13c'),_0xb583('0x13d'),_0xb583('0x13e'),_0xb583('0x13f'),'accesskeyid',_0xb583('0x140'),_0xb583('0x141'),'user',_0xb583('0x142'),_0xb583('0x143'),_0xb583('0x144'),_0xb583('0x145'),_0xb583('0x146'),'registry',_0xb583('0x147')];function maskSensitiveData(_0x44dc94){var _0x3d9c6c=/(?!^)[\s\S](?!$)/g;if(!_[_0xb583('0x148')](_0x44dc94))return;for(var _0x2627fe in _0x44dc94){if(_[_0xb583('0x149')](_0x44dc94[_0x2627fe])){for(var _0x479561=0x0;_0x479561<_0x44dc94[_0x2627fe][_0xb583('0x14a')];_0x479561++){maskSensitiveData(_0x44dc94[_0x2627fe][_0x479561]);}}else if(_[_0xb583('0x148')](_0x44dc94[_0x2627fe])){maskSensitiveData(_0x44dc94[_0x2627fe]);}else if(_['isString'](_0x44dc94[_0x2627fe])){_0x44dc94[_0x2627fe]=_0x44dc94[_0x2627fe][_0xb583('0x14b')](/{{{/g,_0xb583('0x14c'))['replace'](/}}}/g,_0xb583('0x14d'))['replace'](/{{/g,'@{')[_0xb583('0x14b')](/}}/g,'}@');if(_[_0xb583('0x14e')](sensitiveFields,_0x2627fe)){_0x44dc94[_0x2627fe]=_0x44dc94[_0x2627fe][_0xb583('0x14b')](_0x3d9c6c,'*');}}}}
\ No newline at end of file
+var _0xcca5=['/api/analytics/field_reports','./api/analyticFieldReport','/api/integrations/salesforce/accounts','/api/integrations/salesforce/configurations','./api/intSalesforceConfiguration','./api/intSalesforceField','/api/integrations/sugarcrm/accounts','/api/integrations/sugarcrm/fields','./api/intSugarcrmField','/api/integrations/desk/accounts','/api/integrations/desk/configurations','./api/intDeskConfiguration','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/accounts','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zoho/fields','./api/intZohoField','/api/integrations/zendesk/accounts','/api/integrations/zendesk/configurations','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','/api/integrations/freshdesk/accounts','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','./api/intFreshdeskField','./api/intVtigerAccount','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','./api/intServicenowConfiguration','/api/integrations/servicenow/fields','./api/intServicenowField','./api/intDynamics365Account','/api/integrations/dynamics365/configurations','./api/intDynamics365Configuration','/api/integrations/dynamics365/fields','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','/api/networks','./api/network','/api/chat/reports/queue','./api/chatQueueReport','./api/chatInternalMessage','/api/jscripty/answers/reports','/api/jscripty/questions/reports','./api/jscriptyQuestionReport','./api/jscriptySessionReport','/api/sms/reports/queue','./api/smsQueueReport','/api/square/reports','./api/squareReport','/api/settings','./api/setting','/api/square/odbc','./api/squareOdbc','/api/square/projects','/api/square/recordings','./api/squareRecording','/api/square/messages','./api/squareMessage','./api/team','./api/license','/api/campaigns','./api/campaign','/api/migrations','./api/migration','./api/attachment','/api/plugins','/api/mail/reports/transfer','./api/mailTransferReport','./api/chatTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','./api/smsTransferReport','/api/cm/lists','./api/cmList','/api/voice/prefixes','./api/voicePrefix','/api/userProfiles','./api/userProfile','/api/userProfile/sections','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/userNotification','./api/whatsappAccount','/api/whatsapp/applications','./api/whatsappApplication','/api/whatsapp/messages','./api/whatsappMessage','/api/whatsapp/reports/queue','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/whatsapp/queues','./api/whatsappQueue','/api/cloudProviders','./api/cloudProvider','/api/realtime','/api/auth/local','./api/authLocal','/api/auth/google','./api/authGoogle','/api/jira','./api/jira','./api/rpc','./api/version','/api/system','./api/system','/api/pm2','/apidoc','static','join','/www','/demo','root','snippet','3.0.0','/plugins','/server/files/plugins','route','get','sendFile','appPath','password','apiKey','lastName','street','mobile','fax','email','clientId','securityToken','code','accessKey','tenantId','token','channelSecret','accessTokenSecret','authToken','consumerKey','consumerSecret','calleridname','calleridnum','exten','clientEmail','privateKey','accesskeyid','accountSid','dsn','secret','registry','oldPassword','isPlainObject','isArray','isString','@@{','replace','}@@','includes','express','express-winston','util','./errors','./config/environment','./config/logger','api','auth','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','format','method','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','user','name','role','inspect','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','url','other','agent_name','./api/user','./api/voiceChanSpy','/api/voice/contexts','/api/voice/extensions','/api/voice/mohs','/api/voice/recordings','./api/voiceRecording','/api/voice/mails','./api/voiceMail','/api/voice/calls/reports','./api/voiceCallReport','/api/voice/dials/reports','./api/voiceAgentReport','/api/voice/queues/reports','/api/members/reports','./api/memberReport','/api/trunks','./api/trunk','./api/voiceTransferReport','/api/mail/out_servers','./api/mailServerOut','/api/mail/accounts','./api/mailAccount','/api/mail/substatuses','./api/mailSubstatus','/api/mail/interactions','./api/mailInteraction','/api/mail/messages','./api/mailMessage','/api/mail/applications','/api/mail/reports/queue','./api/dashboard','/api/dashboards/items','./api/dashboardItem','/api/fax/accounts','./api/faxAccount','/api/fax/applications','./api/faxInteraction','/api/fax/messages','./api/faxQueue','./api/faxQueueReport','/api/sms/accounts','./api/smsAccount','/api/sms/applications','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','/api/openchannel/accounts','./api/openchannelAccount','/api/openchannel/applications','/api/openchannel/interactions','/api/openchannel/messages','./api/openchannelMessage','/api/openchannel/queues','./api/openchannelQueue','/api/chat/websites','/api/openchannel/reports/queue','/api/chat/applications','./api/chatInteraction','/api/chat/messages','./api/chatMessage','./api/chatOfflineMessage','/api/chat/queues','/api/chat/groups','/api/chat/proactive_actions','./api/chatProactiveAction','/api/cm/companies','./api/cmCompany','/api/cm/contacts','/api/cm/hopper','./api/cmHopper','./api/cmHopperBlack','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/actions','./api/action','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','./api/disposition','/api/conditions','/api/intervals','/api/pauses','./api/pause','./api/cdr','./api/voiceQueuesLog','/api/schedules','/api/sounds','/api/tags','./api/tag','/api/templates','./api/template','./api/trigger','/api/variables','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports'];(function(_0x417d53,_0x1b92c8){var _0x31c95b=function(_0x5a5c59){while(--_0x5a5c59){_0x417d53['push'](_0x417d53['shift']());}};_0x31c95b(++_0x1b92c8);}(_0xcca5,0xac));var _0x5cca=function(_0x30bd4d,_0x50eb60){_0x30bd4d=_0x30bd4d-0x0;var _0x306915=_0xcca5[_0x30bd4d];return _0x306915;};'use strict';var _=require('lodash');var path=require('path');var express=require(_0x5cca('0x0'));var ewinston=require(_0x5cca('0x1'));var util=require(_0x5cca('0x2'));var errors=require(_0x5cca('0x3'));var config=require(_0x5cca('0x4'));var logger=require(_0x5cca('0x5'))(_0x5cca('0x6'));var authLogger=require(_0x5cca('0x5'))(_0x5cca('0x7'));exports['default']=function(_0x3e3679){_0x3e3679['use'](ewinston[_0x5cca('0x8')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0xa16841,_0x52dec3){var _0x10dcf7=_0x5cca('0x9');if(!_[_0x5cca('0xa')](_0xa16841['body'])){_0x10dcf7+='\x20body=%s';var _0x2ebf81=_0xa16841[_0x5cca('0xb')];maskSensitiveData(_0x2ebf81);}return util[_0x5cca('0xc')](_0x10dcf7,_0xa16841[_0x5cca('0xd')],_0xa16841[_0x5cca('0xe')][_0x5cca('0xf')]?_0xa16841['headers'][_0x5cca('0xf')]:_0xa16841[_0x5cca('0x10')][_0x5cca('0x11')]||_0xa16841['ip'],_0xa16841['url'],_0x52dec3[_0x5cca('0x12')],_0x52dec3[_0x5cca('0x13')],_0xa16841[_0x5cca('0x14')]?_0xa16841[_0x5cca('0x14')]['id']:null,_0xa16841[_0x5cca('0x14')]?_0xa16841[_0x5cca('0x14')][_0x5cca('0x15')]:null,_0xa16841[_0x5cca('0x14')]?_0xa16841[_0x5cca('0x14')][_0x5cca('0x16')]:null,_0x2ebf81?util[_0x5cca('0x17')](_0x2ebf81,![],null):'');}}));_0x3e3679[_0x5cca('0x18')](ewinston[_0x5cca('0x8')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x52954c,_0x4ef950){var _0x448ae8=_0x5cca('0x19');if(_0x52954c[_0x5cca('0xb')]&&_0x52954c[_0x5cca('0xb')][_0x5cca('0x1a')]&&_0x52954c['body'][_0x5cca('0x1b')]){_0x448ae8='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0x5cca('0xc')](_0x448ae8,_0x52954c[_0x5cca('0xd')],_0x52954c['headers']['x-forwarded-for']?_0x52954c[_0x5cca('0xe')][_0x5cca('0xf')]:_0x52954c[_0x5cca('0x10')]['remoteAddress']||_0x52954c['ip'],_0x52954c[_0x5cca('0x1c')],_0x4ef950[_0x5cca('0x12')],_0x4ef950[_0x5cca('0x13')],_0x52954c[_0x5cca('0x14')]?_0x52954c[_0x5cca('0x14')]['id']:null,_0x52954c[_0x5cca('0x14')]?_0x52954c[_0x5cca('0x14')][_0x5cca('0x15')]:null,_0x52954c[_0x5cca('0x14')]?_0x52954c[_0x5cca('0x14')][_0x5cca('0x16')]:null,_0x52954c[_0x5cca('0xb')]&&_0x52954c[_0x5cca('0xb')]['device']?_0x52954c[_0x5cca('0xb')][_0x5cca('0x1a')]:_0x5cca('0x1d'),_0x52954c['body']&&_0x52954c[_0x5cca('0xb')][_0x5cca('0x1b')]?_0x52954c['body']['agent_id']:'',_0x52954c[_0x5cca('0xb')]&&_0x52954c['body'][_0x5cca('0x1e')]?_0x52954c[_0x5cca('0xb')][_0x5cca('0x1e')]:'');},'ignoreRoute':function(_0x5d97bf){var _0x1a516f=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x1a516f['test'](_0x5d97bf['url']);}}));_0x3e3679['use']('/api/users',require(_0x5cca('0x1f')));_0x3e3679['use']('/api/voice/chanspy',require(_0x5cca('0x20')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x21'),require('./api/voiceContext'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x22'),require('./api/voiceExtension'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x23'),require('./api/voiceMusicOnHold'));_0x3e3679[_0x5cca('0x18')]('/api/voice/queues',require('./api/voiceQueue'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x24'),require(_0x5cca('0x25')));_0x3e3679[_0x5cca('0x18')]('/api/screen/recordings',require('./api/screenRecording'));_0x3e3679['use'](_0x5cca('0x26'),require(_0x5cca('0x27')));_0x3e3679[_0x5cca('0x18')]('/api/voice/mails/messages',require('./api/voiceMailMessage'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x28'),require(_0x5cca('0x29')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x2a'),require('./api/voiceDialReport'));_0x3e3679[_0x5cca('0x18')]('/api/voice/agents/reports',require(_0x5cca('0x2b')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x2c'),require('./api/voiceQueueReport'));_0x3e3679['use'](_0x5cca('0x2d'),require(_0x5cca('0x2e')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x2f'),require(_0x5cca('0x30')));_0x3e3679[_0x5cca('0x18')]('/api/voice/transfers/reports',require(_0x5cca('0x31')));_0x3e3679['use'](_0x5cca('0x32'),require(_0x5cca('0x33')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x34'),require(_0x5cca('0x35')));_0x3e3679[_0x5cca('0x18')]('/api/mail/queues',require('./api/mailQueue'));_0x3e3679['use'](_0x5cca('0x36'),require(_0x5cca('0x37')));_0x3e3679['use'](_0x5cca('0x38'),require(_0x5cca('0x39')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x3a'),require(_0x5cca('0x3b')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x3c'),require('./api/mailApplication'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x3d'),require('./api/mailQueueReport'));_0x3e3679['use']('/api/dashboards',require(_0x5cca('0x3e')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x3f'),require(_0x5cca('0x40')));_0x3e3679['use'](_0x5cca('0x41'),require(_0x5cca('0x42')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x43'),require('./api/faxApplication'));_0x3e3679['use']('/api/fax/interactions',require(_0x5cca('0x44')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x45'),require('./api/faxMessage'));_0x3e3679[_0x5cca('0x18')]('/api/fax/queues',require(_0x5cca('0x46')));_0x3e3679[_0x5cca('0x18')]('/api/fax/reports/queue',require(_0x5cca('0x47')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x48'),require(_0x5cca('0x49')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x4a'),require('./api/smsApplication'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x4b'),require(_0x5cca('0x4c')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x4d'),require('./api/smsMessage'));_0x3e3679['use']('/api/sms/queues',require('./api/smsQueue'));_0x3e3679['use'](_0x5cca('0x4e'),require(_0x5cca('0x4f')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x50'),require('./api/openchannelApplication'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x51'),require('./api/openchannelInteraction'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x52'),require(_0x5cca('0x53')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x54'),require(_0x5cca('0x55')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x56'),require('./api/chatWebsite'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x57'),require('./api/openchannelQueueReport'));_0x3e3679['use'](_0x5cca('0x58'),require('./api/chatApplication'));_0x3e3679['use']('/api/chat/interactions',require(_0x5cca('0x59')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x5a'),require(_0x5cca('0x5b')));_0x3e3679[_0x5cca('0x18')]('/api/chat/offline_messages',require(_0x5cca('0x5c')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x5d'),require('./api/chatQueue'));_0x3e3679['use'](_0x5cca('0x5e'),require('./api/chatGroup'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x5f'),require(_0x5cca('0x60')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x61'),require(_0x5cca('0x62')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x63'),require('./api/cmContact'));_0x3e3679['use'](_0x5cca('0x64'),require(_0x5cca('0x65')));_0x3e3679[_0x5cca('0x18')]('/api/cm/hopper_black',require(_0x5cca('0x66')));_0x3e3679[_0x5cca('0x18')]('/api/cm/hopper_final',require(_0x5cca('0x67')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x68'),require(_0x5cca('0x69')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x6a'),require(_0x5cca('0x6b')));_0x3e3679['use'](_0x5cca('0x6c'),require(_0x5cca('0x6d')));_0x3e3679[_0x5cca('0x18')]('/api/automations',require(_0x5cca('0x6e')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x6f'),require(_0x5cca('0x70')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x71'),require(_0x5cca('0x72')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x73'),require('./api/condition'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x74'),require('./api/interval'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x75'),require(_0x5cca('0x76')));_0x3e3679['use']('/api/cdr',require(_0x5cca('0x77')));_0x3e3679['use']('/api/voiceQueuesLog',require(_0x5cca('0x78')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x79'),require('./api/schedule'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x7a'),require('./api/sound'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x7b'),require(_0x5cca('0x7c')));_0x3e3679['use'](_0x5cca('0x7d'),require(_0x5cca('0x7e')));_0x3e3679[_0x5cca('0x18')]('/api/triggers',require(_0x5cca('0x7f')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x80'),require('./api/variable'));_0x3e3679[_0x5cca('0x18')]('/api/integrations',require(_0x5cca('0x81')));_0x3e3679['use'](_0x5cca('0x82'),require(_0x5cca('0x83')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x84'),require('./api/analyticCustomReport'));_0x3e3679[_0x5cca('0x18')]('/api/analytics/default_reports',require('./api/analyticDefaultReport'));_0x3e3679['use']('/api/analytics/extracted_reports',require('./api/analyticExtractedReport'));_0x3e3679[_0x5cca('0x18')]('/api/analytics/metrics',require('./api/analyticMetric'));_0x3e3679['use'](_0x5cca('0x85'),require(_0x5cca('0x86')));_0x3e3679[_0x5cca('0x18')]('/api/analytics/tree_reports',require('./api/analyticTreeReport'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x87'),require('./api/intSalesforceAccount'));_0x3e3679['use'](_0x5cca('0x88'),require(_0x5cca('0x89')));_0x3e3679['use']('/api/integrations/salesforce/fields',require(_0x5cca('0x8a')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x8b'),require('./api/intSugarcrmAccount'));_0x3e3679[_0x5cca('0x18')]('/api/integrations/sugarcrm/configurations',require('./api/intSugarcrmConfiguration'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x8c'),require(_0x5cca('0x8d')));_0x3e3679['use'](_0x5cca('0x8e'),require('./api/intDeskAccount'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x8f'),require(_0x5cca('0x90')));_0x3e3679['use'](_0x5cca('0x91'),require(_0x5cca('0x92')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x93'),require(_0x5cca('0x94')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x95'),require(_0x5cca('0x96')));_0x3e3679['use'](_0x5cca('0x97'),require(_0x5cca('0x98')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x99'),require('./api/intZendeskAccount'));_0x3e3679['use'](_0x5cca('0x9a'),require(_0x5cca('0x9b')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x9c'),require(_0x5cca('0x9d')));_0x3e3679['use'](_0x5cca('0x9e'),require(_0x5cca('0x9f')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xa0'),require(_0x5cca('0xa1')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xa2'),require(_0x5cca('0xa3')));_0x3e3679[_0x5cca('0x18')]('/api/integrations/vtiger/accounts',require(_0x5cca('0xa4')));_0x3e3679['use']('/api/integrations/vtiger/configurations',require(_0x5cca('0xa5')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xa6'),require(_0x5cca('0xa7')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xa8'),require(_0x5cca('0xa9')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xaa'),require(_0x5cca('0xab')));_0x3e3679['use'](_0x5cca('0xac'),require(_0x5cca('0xad')));_0x3e3679[_0x5cca('0x18')]('/api/integrations/dynamics365/accounts',require(_0x5cca('0xae')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xaf'),require(_0x5cca('0xb0')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xb1'),require('./api/intDynamics365Field'));_0x3e3679[_0x5cca('0x18')]('/api/integrations/freshsales/accounts',require('./api/intFreshsalesAccount'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xb2'),require(_0x5cca('0xb3')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xb4'),require('./api/intFreshsalesField'));_0x3e3679['use'](_0x5cca('0xb5'),require(_0x5cca('0xb6')));_0x3e3679['use'](_0x5cca('0xb7'),require(_0x5cca('0xb8')));_0x3e3679[_0x5cca('0x18')]('/api/chat/internal/messages',require(_0x5cca('0xb9')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xba'),require('./api/jscriptyAnswerReport'));_0x3e3679['use'](_0x5cca('0xbb'),require(_0x5cca('0xbc')));_0x3e3679[_0x5cca('0x18')]('/api/jscripty/sessions/reports',require(_0x5cca('0xbd')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xbe'),require(_0x5cca('0xbf')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xc0'),require(_0x5cca('0xc1')));_0x3e3679['use']('/api/square/details/reports',require('./api/squareReportDetail'));_0x3e3679['use']('/api/jscripty/projects',require('./api/jscriptyProject'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xc2'),require(_0x5cca('0xc3')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xc4'),require(_0x5cca('0xc5')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xc6'),require('./api/squareProject'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xc7'),require(_0x5cca('0xc8')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xc9'),require(_0x5cca('0xca')));_0x3e3679['use']('/api/teams',require(_0x5cca('0xcb')));_0x3e3679['use']('/api/license',require(_0x5cca('0xcc')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xcd'),require(_0x5cca('0xce')));_0x3e3679['use'](_0x5cca('0xcf'),require(_0x5cca('0xd0')));_0x3e3679['use']('/api/attachments',require(_0x5cca('0xd1')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xd2'),require('./api/plugin'));_0x3e3679['use'](_0x5cca('0xd3'),require(_0x5cca('0xd4')));_0x3e3679[_0x5cca('0x18')]('/api/chat/reports/transfer',require(_0x5cca('0xd5')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xd6'),require(_0x5cca('0xd7')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xd8'),require(_0x5cca('0xd9')));_0x3e3679[_0x5cca('0x18')]('/api/sms/reports/transfer',require(_0x5cca('0xda')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xdb'),require(_0x5cca('0xdc')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xdd'),require(_0x5cca('0xde')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xdf'),require(_0x5cca('0xe0')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xe1'),require('./api/userProfileSection'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xe2'),require(_0x5cca('0xe3')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xe4'),require(_0x5cca('0xe5')));_0x3e3679[_0x5cca('0x18')]('/api/whatsapp/accounts',require(_0x5cca('0xe6')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xe7'),require(_0x5cca('0xe8')));_0x3e3679[_0x5cca('0x18')]('/api/whatsapp/interactions',require('./api/whatsappInteraction'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xe9'),require(_0x5cca('0xea')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xeb'),require(_0x5cca('0xec')));_0x3e3679['use'](_0x5cca('0xed'),require(_0x5cca('0xee')));_0x3e3679['use'](_0x5cca('0xef'),require(_0x5cca('0xf0')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xf1'),require(_0x5cca('0xf2')));_0x3e3679['use'](_0x5cca('0xf3'),require('./api/realtime'));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xf4'),require(_0x5cca('0xf5')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xf6'),require(_0x5cca('0xf7')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xf8'),require(_0x5cca('0xf9')));_0x3e3679[_0x5cca('0x18')]('/api/rpc',require(_0x5cca('0xfa')));_0x3e3679[_0x5cca('0x18')]('/api/version',require(_0x5cca('0xfb')));_0x3e3679['use'](_0x5cca('0xfc'),require(_0x5cca('0xfd')));_0x3e3679[_0x5cca('0x18')](_0x5cca('0xfe'),require('./api/pm2'));_0x3e3679[_0x5cca('0x18')]('/api/webbar',require('./api/webbar'));_0x3e3679['use'](_0x5cca('0xff'),express[_0x5cca('0x100')](path['join'](config['root'],_0x5cca('0xff'))));_0x3e3679[_0x5cca('0x18')]('/www',express['static'](path[_0x5cca('0x101')](config['root'],_0x5cca('0x102'))));_0x3e3679['use'](_0x5cca('0x103'),express[_0x5cca('0x100')](path[_0x5cca('0x101')](config[_0x5cca('0x104')],'/demo')));_0x3e3679[_0x5cca('0x18')]('/snippet',express[_0x5cca('0x100')](path[_0x5cca('0x101')](config[_0x5cca('0x104')],_0x5cca('0x105'),_0x5cca('0x106'))));_0x3e3679[_0x5cca('0x18')](_0x5cca('0x107'),express[_0x5cca('0x100')](path['join'](config[_0x5cca('0x104')],_0x5cca('0x108'))));_0x3e3679[_0x5cca('0x109')]('/:url(api|auth|components|app|bower_components|assets)/*')[_0x5cca('0x10a')](errors[0x194]);_0x3e3679['route']('/*')[_0x5cca('0x10a')](function(_0x40566f,_0x4461ef){_0x4461ef[_0x5cca('0x10b')](path['resolve'](_0x3e3679[_0x5cca('0x10a')](_0x5cca('0x10c'))+'/index.html'));});};var sensitiveFields=['username',_0x5cca('0x10d'),'newPassword',_0x5cca('0x10e'),'firstName',_0x5cca('0x10f'),_0x5cca('0x110'),'phone',_0x5cca('0x111'),_0x5cca('0x112'),_0x5cca('0x113'),_0x5cca('0x114'),'clientSecret',_0x5cca('0x115'),_0x5cca('0x116'),_0x5cca('0x117'),_0x5cca('0x118'),_0x5cca('0x119'),_0x5cca('0x11a'),'accessToken',_0x5cca('0x11b'),_0x5cca('0x11c'),_0x5cca('0x11d'),_0x5cca('0x11e'),'membername',_0x5cca('0x11f'),_0x5cca('0x120'),_0x5cca('0x121'),'vidaooApiKey',_0x5cca('0x122'),_0x5cca('0x123'),_0x5cca('0x124'),'secretaccesskey','key','user','pass',_0x5cca('0x125'),'localstationid',_0x5cca('0x126'),_0x5cca('0x127'),_0x5cca('0x128'),_0x5cca('0x129')];function maskSensitiveData(_0x44be4a){var _0x21c86e=/(?!^)[\s\S](?!$)/g;if(!_[_0x5cca('0x12a')](_0x44be4a))return;for(var _0x5416b5 in _0x44be4a){if(_[_0x5cca('0x12b')](_0x44be4a[_0x5416b5])){for(var _0xe3a84d=0x0;_0xe3a84d<_0x44be4a[_0x5416b5]['length'];_0xe3a84d++){maskSensitiveData(_0x44be4a[_0x5416b5][_0xe3a84d]);}}else if(_[_0x5cca('0x12a')](_0x44be4a[_0x5416b5])){maskSensitiveData(_0x44be4a[_0x5416b5]);}else if(_[_0x5cca('0x12c')](_0x44be4a[_0x5416b5])){_0x44be4a[_0x5416b5]=_0x44be4a[_0x5416b5]['replace'](/{{{/g,_0x5cca('0x12d'))[_0x5cca('0x12e')](/}}}/g,_0x5cca('0x12f'))[_0x5cca('0x12e')](/{{/g,'@{')[_0x5cca('0x12e')](/}}/g,'}@');if(_[_0x5cca('0x130')](sensitiveFields,_0x5416b5)){_0x44be4a[_0x5416b5]=_0x44be4a[_0x5416b5][_0x5cca('0x12e')](_0x21c86e,'*');}}}}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa375=['../api/intVtigerAccount/intVtigerAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.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/campaign/campaign.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueue/whatsappQueue.rpc','http','rpc','port','localhost','listen','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','RPC\x20listening\x20on\x20','bluebird','lodash','../config/environment','merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/userVoiceQueueRt/userVoiceQueueRt.rpc','../api/mailQueue/mailQueue.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailMessage/mailMessage.rpc','../api/mailApplication/mailApplication.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxInteraction/faxInteraction.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/variable/variable.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intZendeskAccount/intZendeskAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc'];(function(_0x11ce46,_0x177a85){var _0x368a1e=function(_0x425454){while(--_0x425454){_0x11ce46['push'](_0x11ce46['shift']());}};_0x368a1e(++_0x177a85);}(_0xa375,0x129));var _0x5a37=function(_0x251e8c,_0x277c33){_0x251e8c=_0x251e8c-0x0;var _0x1e0c1d=_0xa375[_0x251e8c];return _0x1e0c1d;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0x5a37('0x0'));var _=require(_0x5a37('0x1'));var config=require(_0x5a37('0x2'));exports['listen']=function(){return new BPromise(function(_0x29e2f7,_0x18b2e8){var _0x2755f7={};_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/user/user.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x4')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x5')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/voiceRecording/voiceRecording.rpc'));_0x2755f7=_['merge'](_0x2755f7,require('../api/voiceCallReport/voiceCallReport.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/voiceDialReport/voiceDialReport.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x6')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x7')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x8')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/trunk/trunk.rpc'));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x9')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0xa')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/mailServerIn/mailServerIn.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/mailAccount/mailAccount.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0xb')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0xc')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0xd')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0xe')));_0x2755f7=_['merge'](_0x2755f7,require('../api/mailQueueReport/mailQueueReport.rpc'));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0xf')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x10')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x11')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x12')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/faxQueue/faxQueue.rpc'));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x13')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x14')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x15')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x16')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x17')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x18')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x19')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/openchannelMessage/openchannelMessage.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/openchannelQueue/openchannelQueue.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x1a')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x1b')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x1c')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x1d')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x1e')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/cmHopper/cmHopper.rpc'));_0x2755f7=_['merge'](_0x2755f7,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x1f')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/cmHopperHistory/cmHopperHistory.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x20')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x21')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x22')));_0x2755f7=_['merge'](_0x2755f7,require('../api/sound/sound.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x23')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x24')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x25')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/intSalesforceAccount/intSalesforceAccount.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x26')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x27')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x28')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x29')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x2a')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x2b')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x2c')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x2d')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x2e')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x2f')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x30')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x31')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x32')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/setting/setting.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x33')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x34')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x35')));_0x2755f7=_['merge'](_0x2755f7,require('../api/squareMessage/squareMessage.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x36')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/attachment/attachment.rpc'));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x37')));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x38')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x39')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require(_0x5a37('0x3a')));_0x2755f7=_[_0x5a37('0x3')](_0x2755f7,require('../api/whatsappQueueReport/whatsappQueueReport.rpc'));_0x2755f7=_['merge'](_0x2755f7,require(_0x5a37('0x3b')));var _0x1c4db8=jayson['server'](_0x2755f7)[_0x5a37('0x3c')]();var _0x10059a=config[_0x5a37('0x3d')][_0x5a37('0x3e')]||config[_0x5a37('0x3e')]+0x1;var _0x3a641c=config[_0x5a37('0x3d')]['ip']||_0x5a37('0x3f');_0x1c4db8['on']('error',function(_0xdd43af){return _0x18b2e8(_0xdd43af);});_0x1c4db8[_0x5a37('0x40')](_0x10059a,_0x3a641c,function(){console['log'](_0x5a37('0x41'),_0x3a641c,_0x10059a);require(_0x5a37('0x42'))['default']();return _0x29e2f7(_0x5a37('0x43')+_0x3a641c+':'+_0x10059a);});});};
\ No newline at end of file
+var _0x0a4c=['../api/voiceTransferReport/voiceTransferReport.rpc','../api/mailQueue/mailQueue.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/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.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/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/variable/variable.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intDeskAccount/intDeskAccount.rpc','../api/intZohoAccount/intZohoAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/squareReport/squareReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareRecording/squareRecording.rpc','../api/squareMessage/squareMessage.rpc','../api/campaign/campaign.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','http','port','rpc','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','RPC\x20listening\x20on\x20','jayson/promise','bluebird','lodash','../config/environment','listen','../api/user/user.rpc','merge','../api/voiceExtension/voiceExtension.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc'];(function(_0x59aeb3,_0x32f513){var _0x3c6521=function(_0x1129b2){while(--_0x1129b2){_0x59aeb3['push'](_0x59aeb3['shift']());}};_0x3c6521(++_0x32f513);}(_0x0a4c,0xcc));var _0xc0a4=function(_0x181b9e,_0x243fa0){_0x181b9e=_0x181b9e-0x0;var _0x3c7710=_0x0a4c[_0x181b9e];return _0x3c7710;};'use strict';var jayson=require(_0xc0a4('0x0'));var BPromise=require(_0xc0a4('0x1'));var _=require(_0xc0a4('0x2'));var config=require(_0xc0a4('0x3'));exports[_0xc0a4('0x4')]=function(){return new BPromise(function(_0x19c0ae,_0x5e8f64){var _0x93205a={};_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x5')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x7')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x8')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x9')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0xa')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/voiceDialReport/voiceDialReport.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0xb')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0xc')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0xd')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0xe')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0xf')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/userVoiceQueueRt/userVoiceQueueRt.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/mailServerIn/mailServerIn.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/mailAccount/mailAccount.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x10')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x11')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x12')));_0x93205a=_['merge'](_0x93205a,require('../api/mailApplication/mailApplication.rpc'));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x13')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x14')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x15')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x16')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x17')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x18')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x19')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x1a')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x1b')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x1c')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x1d')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x1e')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x1f')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x20')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x21')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x22')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x23')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/chatMessage/chatMessage.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x24')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x25')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/cmHopper/cmHopper.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x26')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x27')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x28')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/interval/interval.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x29')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x2a')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x2b')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x2c')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x2d')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/intSalesforceAccount/intSalesforceAccount.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x2e')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x2f')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x30')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x31')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x32')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/intServicenowAccount/intServicenowAccount.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x33')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/intFreshsalesAccount/intFreshsalesAccount.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x34')));_0x93205a=_['merge'](_0x93205a,require('../api/smsQueueReport/smsQueueReport.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x35')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x36')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x37')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x38')));_0x93205a=_['merge'](_0x93205a,require(_0xc0a4('0x39')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x3a')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x3b')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x3c')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/attachment/attachment.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/plugin/plugin.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x3d')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require('../api/whatsappInteraction/whatsappInteraction.rpc'));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x3e')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x3f')));_0x93205a=_[_0xc0a4('0x6')](_0x93205a,require(_0xc0a4('0x40')));var _0x871d3=jayson[_0xc0a4('0x41')](_0x93205a)[_0xc0a4('0x42')]();var _0x56c894=config['rpc']['port']||config[_0xc0a4('0x43')]+0x1;var _0xe891dd=config[_0xc0a4('0x44')]['ip']||'localhost';_0x871d3['on']('error',function(_0x1d99c1){return _0x5e8f64(_0x1d99c1);});_0x871d3[_0xc0a4('0x4')](_0x56c894,_0xe891dd,function(){console[_0xc0a4('0x45')](_0xc0a4('0x46'),_0xe891dd,_0x56c894);require(_0xc0a4('0x47'))['default']();return _0x19c0ae(_0xc0a4('0x48')+_0xe891dd+':'+_0x56c894);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd0c=['prototype','sendRequest','sync','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','isArray','EXEC\x20%s\x20%s','setContext','SET\x20CONTEXT\x20%s','setExtension','setPriority','SET\x20PRIORITY\x20%s','setVariable','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','continueAt','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','recordFile','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','exec','AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','./error','call','setEncoding','setTimeout','utf8','headers','emit','ready','line','toLowerCase','hangup','substring','520-Invalid','search','520\x20End\x20of\x20proper','function','no\x20code','replace','result=','substr','indexOf','startsWith','split','length','match','error','E_AGI_SOCKET_ERROR','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write'];(function(_0x2e78e9,_0x42957c){var _0x35aad4=function(_0x360fa1){while(--_0x360fa1){_0x2e78e9['push'](_0x2e78e9['shift']());}};_0x35aad4(++_0x42957c);}(_0xdd0c,0x1ad));var _0xcdd0=function(_0x4cae04,_0x3db69c){_0x4cae04=_0x4cae04-0x0;var _0x3338a0=_0xdd0c[_0x4cae04];return _0x3338a0;};'use strict';var util=require(_0xcdd0('0x0'));var _=require(_0xcdd0('0x1'));var EventEmitter=require(_0xcdd0('0x2'))[_0xcdd0('0x3')];var AGIReply=require('./reply');var AGIError=require(_0xcdd0('0x4'));function AGIChannel(_0xadcf73){var _0x284276=this,_0x221bc5=new AGIReply(),_0x8cb3e2=![],_0x5e5702={};EventEmitter[_0xcdd0('0x5')](_0x284276);_0xadcf73[_0xcdd0('0x6')]('utf8');_0xadcf73[_0xcdd0('0x7')](0x8*0x3c*0x3c*0x3e8);_0x221bc5[_0xcdd0('0x6')](_0xcdd0('0x8'));_0x221bc5['on'](_0xcdd0('0x9'),function(_0x1e0482){for(var _0x1f7ae0 in _0x1e0482){_0x284276[_0x1f7ae0]=_0x1e0482[_0x1f7ae0];}_0x284276[_0xcdd0('0xa')](_0xcdd0('0xb'));});_0x221bc5['on'](_0xcdd0('0xc'),function(_0x2de69f){if(_0x2de69f[_0xcdd0('0xd')]()==_0xcdd0('0xe')){_0x284276[_0xcdd0('0xa')](_0xcdd0('0xe'));return;}if(_0x2de69f[_0xcdd0('0xf')](0x0,0xb)==_0xcdd0('0x10')){_0x8cb3e2=!![];}if(_0x8cb3e2){_0x5e5702['rx']+=_0x2de69f+'\x0a';if(_0x2de69f[_0xcdd0('0x11')](_0xcdd0('0x12'))!=-0x1){_0x8cb3e2=![];}}else{_0x5e5702['rx']=_0x2de69f;}if(_0x8cb3e2){return;}if(typeof _0x5e5702['cb']==_0xcdd0('0x13')){var _0x5d123a=_0x5e5702['rx']['substring'](0x0,0x3),_0x24f51a=null,_0xccaf24=null;_0x5d123a=parseInt(_0x5d123a);if(isNaN(_0x5d123a)){_0x5e5702['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xcdd0('0x14')});return;}if(_0x5d123a!=0xc8){_0x5e5702['cb'](null,{'code':_0x5d123a,'result':-0x1,'extra':'KO'});return;}_0x24f51a=_0x5e5702['rx'][_0xcdd0('0xf')](0x4)[_0xcdd0('0x15')](_0xcdd0('0x16'),'');if(_0x24f51a['indexOf']('\x20')!=-0x1){_0x24f51a=_0x24f51a[_0xcdd0('0x17')](0x0,_0x24f51a[_0xcdd0('0x18')]('\x20'));}if(_[_0xcdd0('0x19')](_0x24f51a,'-1')){_0x24f51a=parseInt(_0x24f51a);}_0xccaf24=_0x5e5702['rx'][_0xcdd0('0x1a')]('\x20');if(_0xccaf24[_0xcdd0('0x1b')]==0x3){_0xccaf24=_0xccaf24[0x2][_0xcdd0('0xf')](0x1,_0xccaf24[0x2][_0xcdd0('0x1b')]-0x1);}else if(_0xccaf24[_0xcdd0('0x1b')]>0x3){var _0x2bf86e=/\((.+)\)/;var _0x1999d0=_0x5e5702['rx'][_0xcdd0('0x1c')](_0x2bf86e);if(_0x1999d0){_0xccaf24=_0x1999d0[0x1];}else{_0xccaf24=null;}}else{_0xccaf24=null;}_0x5e5702['cb'](null,{'code':_0x5d123a,'result':_0x24f51a,'extra':_0xccaf24});}});_0xadcf73['on'](_0xcdd0('0x1d'),function(_0x1376a8){_0x284276[_0xcdd0('0xa')](_0xcdd0('0x1d'),new AGIError(_0xcdd0('0x1e'),_0x1376a8['code']));});_0xadcf73['on']('close',function(){_0x284276[_0xcdd0('0xa')](_0xcdd0('0x1f'),new AGIError(_0xcdd0('0x20')));});_0xadcf73['on'](_0xcdd0('0x21'),function(){_0x284276[_0xcdd0('0xa')]('timeout',new AGIError(_0xcdd0('0x22')));_0xadcf73[_0xcdd0('0x23')]();});_0xadcf73[_0xcdd0('0x24')](_0x221bc5);this[_0xcdd0('0x25')]=function(_0x16c5c4,_0x52241b){var _0x16c5c4=_0x16c5c4||'',_0x52241b=typeof _0x52241b==_0xcdd0('0x13')?_0x52241b:new Function();_0x5e5702={'tx':_0x16c5c4,'rx':'','cb':_0x52241b};_0xadcf73[_0xcdd0('0x26')](_0x16c5c4+'\x0a');},this['close']=function(){_0xadcf73['destroy']();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x28')]=function(_0x506866){return this['command'][_0xcdd0('0x29')](this,_0x506866);};AGIChannel['prototype']['answer']=function(){return this[_0xcdd0('0x28')](_0xcdd0('0x2a'));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x2b')]=function(_0x4c5c1d,_0x3db560,_0x4f68d0){_0x4c5c1d=_0x4c5c1d===undefined?_0xcdd0('0x2c'):_0x4c5c1d;_0x3db560=_0x3db560===undefined?'5':_0x3db560;_0x4f68d0=_0x4f68d0===undefined?'1':_0x4f68d0;return this['sendRequest'](util[_0xcdd0('0x2d')](_0xcdd0('0x2e'),_0x4c5c1d,_0x3db560*0x3e8,_0x4f68d0));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x2f')]=function(_0x3eee3a){_0x3eee3a=_0x3eee3a||_0xcdd0('0x30');return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')](_0xcdd0('0x31'),_0x3eee3a));};AGIChannel['prototype']['exec']=function(_0x5617a2,_0x4bc6c4){if(_[_0xcdd0('0x32')](_0x4bc6c4)){return this[_0xcdd0('0x28')](util['format'](_0xcdd0('0x33'),_0x5617a2,_0x4bc6c4['join'](',')));}return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')](_0xcdd0('0x33'),_0x5617a2,_0x4bc6c4));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x34')]=function(_0x52ff5b){return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')](_0xcdd0('0x35'),_0x52ff5b));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x36')]=function(_0x52fff5){return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')]('SET\x20EXTENSION\x20%s',_0x52fff5));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x37')]=function(_0x550906){return this['sendRequest'](util[_0xcdd0('0x2d')](_0xcdd0('0x38'),_0x550906));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0xe')]=function(){return this[_0xcdd0('0x28')]('HANGUP');};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x39')]=function(_0xdd11b8,_0x1dc411){var _0x3c3c2c=_['isBoolean'](_0x1dc411)||_[_0xcdd0('0x3a')](_0x1dc411)?_0x1dc411['toString']():_0x1dc411;return this[_0xcdd0('0x28')](util['format'](_0xcdd0('0x3b'),_0xdd11b8,_0x3c3c2c?_0x3c3c2c['toString']()[_0xcdd0('0x15')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x3c')]=function(_0x2c543f,_0x53425a){return this[_0xcdd0('0x28')](util['format'](_0xcdd0('0x3d'),_0x2c543f,_0x53425a));};AGIChannel['prototype'][_0xcdd0('0x3e')]=function(_0x185b66,_0x11269f){return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')](_0xcdd0('0x3f'),_0x185b66,_0x11269f));};AGIChannel[_0xcdd0('0x27')]['sayPhonetic']=function(_0x2042b2,_0x6628a1){return this['sendRequest'](util[_0xcdd0('0x2d')](_0xcdd0('0x40'),_0x2042b2,_0x6628a1));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x41')]=function(_0x5aa877,_0x5995c3,_0x40f974){_0x5995c3=_0x5995c3||this['extension'];_0x40f974=_0x40f974||0x1;this['setContext'](_0x5aa877);this[_0xcdd0('0x36')](_0x5995c3);this[_0xcdd0('0x37')](_0x40f974);return this[_0xcdd0('0x2f')](util[_0xcdd0('0x2d')](_0xcdd0('0x42'),_0x5aa877,_0x5995c3,_0x40f974));};AGIChannel['prototype']['getVariable']=function(_0xeadf6e){return this['sendRequest'](util[_0xcdd0('0x2d')](_0xcdd0('0x43'),_0xeadf6e));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x44')]=function(_0x4b343c,_0x1b7dd7,_0x398f10,_0x2202a8,_0x39e763,_0x5b5e40){_0x1b7dd7=_0x1b7dd7||'wav';_0x398f10=_0x398f10||'';_0x2202a8=_0x2202a8===undefined?-0x1:_0x2202a8==='-1'?-0x1:_0x2202a8*0x3e8;_0x39e763=_0x39e763===undefined?'':'s='+_0x39e763;_0x5b5e40=_0x5b5e40?'BEEP':'';return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')](_0xcdd0('0x45'),_0x4b343c,_0x1b7dd7,_0x398f10,_0x2202a8,_0x5b5e40,_0x39e763));};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x46')]=function(_0x19da1c,_0x5c44c9){_0x5c44c9=_0x5c44c9||'';return this[_0xcdd0('0x28')](util[_0xcdd0('0x2d')](_0xcdd0('0x47'),_0x19da1c,_0x5c44c9));};AGIChannel[_0xcdd0('0x27')]['agi']=function(_0x1ba86e){return this[_0xcdd0('0x48')](_0xcdd0('0x49'),_0x1ba86e);};AGIChannel[_0xcdd0('0x27')]['wait']=function(_0x167ac1){return this[_0xcdd0('0x48')](_0xcdd0('0x4a'),_0x167ac1);};AGIChannel[_0xcdd0('0x27')][_0xcdd0('0x1d')]=function(_0x5a83cc,_0xd78767){this[_0xcdd0('0x2f')](util[_0xcdd0('0x2d')](_0xcdd0('0x4b'),_0x5a83cc['id'],_0x5a83cc[_0xcdd0('0x4c')],_0xd78767));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xcdd0('0x4d')]=AGIChannel;
\ No newline at end of file
+var _0xaac6=['replace','result=','indexOf','substr','startsWith','length','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','command','write','destroy','inherits','prototype','sendRequest','sync','answer','ANSWER','getData','beep','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','VERBOSE\x20\x22%s\x22','exec','isArray','EXEC\x20%s\x20%s','join','setContext','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','SAY\x20NUMBER\x20%s\x20%s','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','continueAt','extension','GOTO\x20%s\x20%s\x20%s','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','AGI','wait','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','lodash','events','EventEmitter','call','setEncoding','utf8','emit','ready','line','toLowerCase','hangup','substring','search','520\x20End\x20of\x20proper','function','no\x20code'];(function(_0x1d6ac7,_0xf711e5){var _0x40e26d=function(_0x37b21a){while(--_0x37b21a){_0x1d6ac7['push'](_0x1d6ac7['shift']());}};_0x40e26d(++_0xf711e5);}(_0xaac6,0x11b));var _0x6aac=function(_0x515afd,_0x1a1e91){_0x515afd=_0x515afd-0x0;var _0x536d53=_0xaac6[_0x515afd];return _0x536d53;};'use strict';var util=require(_0x6aac('0x0'));var _=require(_0x6aac('0x1'));var EventEmitter=require(_0x6aac('0x2'))[_0x6aac('0x3')];var AGIReply=require('./reply');var AGIError=require('./error');function AGIChannel(_0x379fc1){var _0x39987c=this,_0x2b6f51=new AGIReply(),_0x5a9a38=![],_0x1a1c9d={};EventEmitter[_0x6aac('0x4')](_0x39987c);_0x379fc1[_0x6aac('0x5')](_0x6aac('0x6'));_0x379fc1['setTimeout'](0x8*0x3c*0x3c*0x3e8);_0x2b6f51[_0x6aac('0x5')](_0x6aac('0x6'));_0x2b6f51['on']('headers',function(_0x2188a3){for(var _0x20c81c in _0x2188a3){_0x39987c[_0x20c81c]=_0x2188a3[_0x20c81c];}_0x39987c[_0x6aac('0x7')](_0x6aac('0x8'));});_0x2b6f51['on'](_0x6aac('0x9'),function(_0x266e8a){if(_0x266e8a[_0x6aac('0xa')]()==_0x6aac('0xb')){_0x39987c[_0x6aac('0x7')]('hangup');return;}if(_0x266e8a[_0x6aac('0xc')](0x0,0xb)=='520-Invalid'){_0x5a9a38=!![];}if(_0x5a9a38){_0x1a1c9d['rx']+=_0x266e8a+'\x0a';if(_0x266e8a[_0x6aac('0xd')](_0x6aac('0xe'))!=-0x1){_0x5a9a38=![];}}else{_0x1a1c9d['rx']=_0x266e8a;}if(_0x5a9a38){return;}if(typeof _0x1a1c9d['cb']==_0x6aac('0xf')){var _0x42757d=_0x1a1c9d['rx'][_0x6aac('0xc')](0x0,0x3),_0x1fa5ce=null,_0x50de03=null;_0x42757d=parseInt(_0x42757d);if(isNaN(_0x42757d)){_0x1a1c9d['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x6aac('0x10')});return;}if(_0x42757d!=0xc8){_0x1a1c9d['cb'](null,{'code':_0x42757d,'result':-0x1,'extra':'KO'});return;}_0x1fa5ce=_0x1a1c9d['rx']['substring'](0x4)[_0x6aac('0x11')](_0x6aac('0x12'),'');if(_0x1fa5ce[_0x6aac('0x13')]('\x20')!=-0x1){_0x1fa5ce=_0x1fa5ce[_0x6aac('0x14')](0x0,_0x1fa5ce['indexOf']('\x20'));}if(_[_0x6aac('0x15')](_0x1fa5ce,'-1')){_0x1fa5ce=parseInt(_0x1fa5ce);}_0x50de03=_0x1a1c9d['rx']['split']('\x20');if(_0x50de03[_0x6aac('0x16')]==0x3){_0x50de03=_0x50de03[0x2][_0x6aac('0xc')](0x1,_0x50de03[0x2][_0x6aac('0x16')]-0x1);}else if(_0x50de03[_0x6aac('0x16')]>0x3){var _0x450de7=/\((.+)\)/;var _0x16ca6a=_0x1a1c9d['rx']['match'](_0x450de7);if(_0x16ca6a){_0x50de03=_0x16ca6a[0x1];}else{_0x50de03=null;}}else{_0x50de03=null;}_0x1a1c9d['cb'](null,{'code':_0x42757d,'result':_0x1fa5ce,'extra':_0x50de03});}});_0x379fc1['on'](_0x6aac('0x17'),function(_0x863602){_0x39987c[_0x6aac('0x7')](_0x6aac('0x17'),new AGIError(_0x6aac('0x18'),_0x863602[_0x6aac('0x19')]));});_0x379fc1['on'](_0x6aac('0x1a'),function(){_0x39987c[_0x6aac('0x7')](_0x6aac('0x1a'),new AGIError(_0x6aac('0x1b')));});_0x379fc1['on'](_0x6aac('0x1c'),function(){_0x39987c[_0x6aac('0x7')](_0x6aac('0x1c'),new AGIError(_0x6aac('0x1d')));_0x379fc1['destroy']();});_0x379fc1['pipe'](_0x2b6f51);this[_0x6aac('0x1e')]=function(_0x3d6694,_0x161570){var _0x3d6694=_0x3d6694||'',_0x161570=typeof _0x161570=='function'?_0x161570:new Function();_0x1a1c9d={'tx':_0x3d6694,'rx':'','cb':_0x161570};_0x379fc1[_0x6aac('0x1f')](_0x3d6694+'\x0a');},this['close']=function(){_0x379fc1[_0x6aac('0x20')]();};}util[_0x6aac('0x21')](AGIChannel,EventEmitter);AGIChannel[_0x6aac('0x22')][_0x6aac('0x23')]=function(_0x4081d3){return this[_0x6aac('0x1e')][_0x6aac('0x24')](this,_0x4081d3);};AGIChannel['prototype'][_0x6aac('0x25')]=function(){return this[_0x6aac('0x23')](_0x6aac('0x26'));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x27')]=function(_0x2ae916,_0x1359f8,_0x56bb4c){_0x2ae916=_0x2ae916===undefined?_0x6aac('0x28'):_0x2ae916;_0x1359f8=_0x1359f8===undefined?'5':_0x1359f8;_0x56bb4c=_0x56bb4c===undefined?'1':_0x56bb4c;return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x2a'),_0x2ae916,_0x1359f8*0x3e8,_0x56bb4c));};AGIChannel['prototype'][_0x6aac('0x2b')]=function(_0x385b1c){_0x385b1c=_0x385b1c||'NO\x20MESSAGE';return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x2c'),_0x385b1c));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x2d')]=function(_0x4eed4f,_0x23f915){if(_[_0x6aac('0x2e')](_0x23f915)){return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x2f'),_0x4eed4f,_0x23f915[_0x6aac('0x30')](',')));}return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x2f'),_0x4eed4f,_0x23f915));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x31')]=function(_0x5607a0){return this[_0x6aac('0x23')](util['format']('SET\x20CONTEXT\x20%s',_0x5607a0));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x32')]=function(_0x10616f){return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x33'),_0x10616f));};AGIChannel[_0x6aac('0x22')]['setPriority']=function(_0x44f8b6){return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x34'),_0x44f8b6));};AGIChannel[_0x6aac('0x22')][_0x6aac('0xb')]=function(){return this['sendRequest'](_0x6aac('0x35'));};AGIChannel['prototype'][_0x6aac('0x36')]=function(_0x42defc,_0x443085){var _0x4d45ac=_[_0x6aac('0x37')](_0x443085)||_[_0x6aac('0x38')](_0x443085)?_0x443085[_0x6aac('0x39')]():_0x443085;return this[_0x6aac('0x23')](util['format'](_0x6aac('0x3a'),_0x42defc,_0x4d45ac?_0x4d45ac['toString']()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0x6aac('0x22')]['sayNumber']=function(_0x59b92f,_0x3a31dc){return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x3b'),_0x59b92f,_0x3a31dc));};AGIChannel['prototype']['sayDigits']=function(_0x56d648,_0xcfab03){return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x3c'),_0x56d648,_0xcfab03));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x3d')]=function(_0x232b9f,_0x588cf6){return this[_0x6aac('0x23')](util[_0x6aac('0x29')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x232b9f,_0x588cf6));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x3e')]=function(_0x4ee798,_0x58a35a,_0x4ed7f8){_0x58a35a=_0x58a35a||this[_0x6aac('0x3f')];_0x4ed7f8=_0x4ed7f8||0x1;this[_0x6aac('0x31')](_0x4ee798);this[_0x6aac('0x32')](_0x58a35a);this['setPriority'](_0x4ed7f8);return this['noop'](util[_0x6aac('0x29')](_0x6aac('0x40'),_0x4ee798,_0x58a35a,_0x4ed7f8));};AGIChannel[_0x6aac('0x22')]['getVariable']=function(_0x1a51d1){return this[_0x6aac('0x23')](util['format']('GET\x20VARIABLE\x20\x22%s\x22',_0x1a51d1));};AGIChannel[_0x6aac('0x22')]['recordFile']=function(_0x46589e,_0x5a5d0d,_0xa6ea21,_0x2ca885,_0x1ca2e8,_0x336d93){_0x5a5d0d=_0x5a5d0d||_0x6aac('0x41');_0xa6ea21=_0xa6ea21||'';_0x2ca885=_0x2ca885===undefined?-0x1:_0x2ca885==='-1'?-0x1:_0x2ca885*0x3e8;_0x1ca2e8=_0x1ca2e8===undefined?'':'s='+_0x1ca2e8;_0x336d93=_0x336d93?_0x6aac('0x42'):'';return this[_0x6aac('0x23')](util['format'](_0x6aac('0x43'),_0x46589e,_0x5a5d0d,_0xa6ea21,_0x2ca885,_0x336d93,_0x1ca2e8));};AGIChannel['prototype']['streamFile']=function(_0x53ac1a,_0x4ea1dd){_0x4ea1dd=_0x4ea1dd||'';return this[_0x6aac('0x23')](util[_0x6aac('0x29')](_0x6aac('0x44'),_0x53ac1a,_0x4ea1dd));};AGIChannel[_0x6aac('0x22')][_0x6aac('0x45')]=function(_0x3a3d78){return this[_0x6aac('0x2d')](_0x6aac('0x46'),_0x3a3d78);};AGIChannel[_0x6aac('0x22')][_0x6aac('0x47')]=function(_0x5e6316){return this['exec']('WAIT',_0x5e6316);};AGIChannel['prototype'][_0x6aac('0x17')]=function(_0x3477d4,_0x166621){this[_0x6aac('0x2b')](util['format'](_0x6aac('0x48'),_0x3477d4['id'],_0x3477d4[_0x6aac('0x49')],_0x166621));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x6aac('0x4a')]=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d60=['name','exports','util','Undefined\x20error.','Server\x20error.\x20Code:\x20%s.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20closed.','Empty\x20command.','E_AGI_UNDEFINED','format','apply','message'];(function(_0x14c6e7,_0x44e5a4){var _0x29a4f1=function(_0x40675b){while(--_0x40675b){_0x14c6e7['push'](_0x14c6e7['shift']());}};_0x29a4f1(++_0x44e5a4);}(_0x2d60,0x1de));var _0x02d6=function(_0x3aa6a8,_0x31e62c){_0x3aa6a8=_0x3aa6a8-0x0;var _0x25b479=_0x2d60[_0x3aa6a8];return _0x25b479;};'use strict';var util=require(_0x02d6('0x0'));var error={'E_AGI_UNDEFINED':_0x02d6('0x1'),'E_AGI_ARGUMENT_PORT':'Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','E_AGI_SERVER_ERROR':_0x02d6('0x2'),'E_AGI_SERVER_CLOSE':_0x02d6('0x3'),'E_AGI_SERVER_MAXCONNECTION':_0x02d6('0x4'),'E_AGI_SERVER_VOICE_DISABLED':_0x02d6('0x5'),'E_AGI_SOCKET_ERROR':'Socket\x20error.\x20Code:\x20%s.','E_AGI_SOCKET_CLOSE':_0x02d6('0x6'),'E_AGI_SOCKET_TIMEOUT':'Socket\x20timeout.','E_AGI_COMMAND_EMPTY':_0x02d6('0x7'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':'Missing\x20\x27ivr.agi_network_script\x27.','E_AGI_IVR_ENTRY':'Missing\x20\x27ivr.entry\x27\x20menu.'};function AGIError(_0x1263fe){var _0x1263fe=_0x1263fe||null,_0x41a522=_0x41a522||[],_0x1eb242=0x1,_0x2d5967='';if(!error[_0x1263fe]){_0x1263fe=_0x02d6('0x8');}_0x41a522['push'](error[_0x1263fe]);while(arguments[_0x1eb242]){_0x41a522['push'](arguments[_0x1eb242]);_0x1eb242++;}_0x2d5967=util[_0x02d6('0x9')][_0x02d6('0xa')](util,_0x41a522);this[_0x02d6('0xb')]=_0x2d5967;this[_0x02d6('0xc')]=_0x1263fe;}module[_0x02d6('0xd')]=AGIError;
\ No newline at end of file
+var _0x067a=['push','format','apply','name','util','Undefined\x20error.','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20error.\x20Code:\x20%s.','Socket\x20timeout.','Missing\x20\x27ivr.agi_network_script\x27.','Missing\x20\x27ivr.entry\x27\x20menu.','E_AGI_UNDEFINED'];(function(_0x8051d7,_0x263ba9){var _0x3fb835=function(_0x3605a6){while(--_0x3605a6){_0x8051d7['push'](_0x8051d7['shift']());}};_0x3fb835(++_0x263ba9);}(_0x067a,0xd6));var _0xa067=function(_0x4b1929,_0x396e4c){_0x4b1929=_0x4b1929-0x0;var _0x5ca4ed=_0x067a[_0x4b1929];return _0x5ca4ed;};'use strict';var util=require(_0xa067('0x0'));var error={'E_AGI_UNDEFINED':_0xa067('0x1'),'E_AGI_ARGUMENT_PORT':_0xa067('0x2'),'E_AGI_SERVER_ERROR':'Server\x20error.\x20Code:\x20%s.','E_AGI_SERVER_CLOSE':'Server\x20closed.','E_AGI_SERVER_MAXCONNECTION':_0xa067('0x3'),'E_AGI_SERVER_VOICE_DISABLED':_0xa067('0x4'),'E_AGI_SOCKET_ERROR':_0xa067('0x5'),'E_AGI_SOCKET_CLOSE':'Socket\x20closed.','E_AGI_SOCKET_TIMEOUT':_0xa067('0x6'),'E_AGI_COMMAND_EMPTY':'Empty\x20command.','E_AGI_IVR_AGI_NETWORK_SCRIPT':_0xa067('0x7'),'E_AGI_IVR_ENTRY':_0xa067('0x8')};function AGIError(_0x217809){var _0x217809=_0x217809||null,_0x1ba497=_0x1ba497||[],_0xb10459=0x1,_0x3b3c3c='';if(!error[_0x217809]){_0x217809=_0xa067('0x9');}_0x1ba497['push'](error[_0x217809]);while(arguments[_0xb10459]){_0x1ba497[_0xa067('0xa')](arguments[_0xb10459]);_0xb10459++;}_0x3b3c3c=util[_0xa067('0xb')][_0xa067('0xc')](util,_0x1ba497);this['message']=_0x3b3c3c;this[_0xa067('0xd')]=_0x217809;}module['exports']=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ccf=['vertices','edges','numberOfEdges','prototype','addEdge','push','size','relations','traverseBFS','info','no\x20vertex\x20found','length','condition','split','agicommand','target','default','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','agi','menu','getdigits'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x9ccf,0x10f));var _0xf9cc=function(_0x574ea0,_0xa9b797){_0x574ea0=_0x574ea0-0x0;var _0x478fb1=_0x9ccf[_0x574ea0];return _0x478fb1;};'use strict';var _=require(_0xf9cc('0x0'));var logger=require('../../../config/logger')(_0xf9cc('0x1'));var verticesWithRetry=[_0xf9cc('0x2'),_0xf9cc('0x3'),'getsecretdigits'];var Graph=function(){this[_0xf9cc('0x4')]={};this[_0xf9cc('0x5')]={};this[_0xf9cc('0x6')]=0x0;};Graph['prototype']['addVertex']=function(_0x1a71d0){this['vertices'][_0x1a71d0['id']]=_0x1a71d0;this[_0xf9cc('0x5')][_0x1a71d0['id']]=[];};Graph[_0xf9cc('0x7')][_0xf9cc('0x8')]=function(_0x4c6315,_0x154002,_0x2b06ad){this['edges'][_0x4c6315][_0xf9cc('0x9')]({'target':_0x154002,'condition':_0x2b06ad});this[_0xf9cc('0x6')]+=0x1;};Graph[_0xf9cc('0x7')][_0xf9cc('0xa')]=function(){return _[_0xf9cc('0xa')](this[_0xf9cc('0x4')]);};Graph['prototype'][_0xf9cc('0xb')]=function(){return this['numberOfEdges'];};Graph[_0xf9cc('0x7')]['getVertex']=function(_0x552c0f){return this[_0xf9cc('0x4')][_0x552c0f];};Graph[_0xf9cc('0x7')][_0xf9cc('0xc')]=function(_0x12b31c,_0x1fbfd4){if(!this[_0xf9cc('0x4')][_0x12b31c]){return logger[_0xf9cc('0xd')](_0xf9cc('0xe'));}var _0x5da276=_0x1fbfd4(this[_0xf9cc('0x4')][_0x12b31c]);if(!_0x5da276){return logger[_0xf9cc('0xd')]('stop\x20traverse');}if(this[_0xf9cc('0x5')][_0x12b31c][_0xf9cc('0xf')]===0x0){return logger[_0xf9cc('0xd')]('no\x20edge/s\x20available');}for(var _0x51b060=0x0,_0x567b03=[],_0x5c9161=![];_0x51b060<this[_0xf9cc('0x5')][_0x12b31c][_0xf9cc('0xf')];_0x51b060+=0x1){if(this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x10')]){_0x567b03=this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x10')][_0xf9cc('0x11')](',');for(var _0x1166e3=0x0;_0x1166e3<_0x567b03[_0xf9cc('0xf')];_0x1166e3+=0x1){if(this[_0xf9cc('0x4')][_0x12b31c][_0xf9cc('0x12')]==='vswitch'&&_0x567b03[_0x1166e3]==='-'){_0x5c9161=this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x13')];logger['info'](_0xf9cc('0x14'),_0x567b03[_0x1166e3],this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x13')]);}else if(this[_0xf9cc('0x4')][_0x12b31c][_0xf9cc('0x12')]==='menu'&&_0x567b03[_0x1166e3]==='i'){_0x5c9161=this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x13')];logger[_0xf9cc('0xd')]('invalid',_0x567b03[_0x1166e3],this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x13')]);}if(_0x567b03[_0x1166e3]===_0x5da276){return this['traverseBFS'](this[_0xf9cc('0x5')][_0x12b31c][_0x51b060][_0xf9cc('0x13')],_0x1fbfd4);}}}else{return this[_0xf9cc('0xc')](this['edges'][_0x12b31c][_0x51b060]['target'],_0x1fbfd4);}}if(_0x567b03[_0xf9cc('0xf')]){if(this[_0xf9cc('0x4')][_0x12b31c][_0xf9cc('0x12')]==='vswitch'){if(_0x5c9161){return this[_0xf9cc('0xc')](_0x5c9161,_0x1fbfd4);}return logger[_0xf9cc('0xd')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0xf9cc('0x15')](verticesWithRetry,this['vertices'][_0x12b31c]['agicommand'])){if(_0x5da276==='-'){return logger[_0xf9cc('0xd')](_0xf9cc('0x16'));}if(_0x5c9161&&_0x5da276!=='t'){return this['traverseBFS'](_0x5c9161,_0x1fbfd4);}return this[_0xf9cc('0xc')](_0x12b31c,_0x1fbfd4);}return logger[_0xf9cc('0xd')](_0xf9cc('0x17'));}};module[_0xf9cc('0x18')]=Graph;
\ No newline at end of file
+var _0x85b0=['no\x20edge/s\x20available','condition','vswitch','target','default','menu','invalid','traverseBFS','agicommand','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger','agi','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','push','size','relations','info','no\x20vertex\x20found','stop\x20traverse','length'];(function(_0x5e4563,_0x3ff918){var _0x8d1bf5=function(_0x3bf7a9){while(--_0x3bf7a9){_0x5e4563['push'](_0x5e4563['shift']());}};_0x8d1bf5(++_0x3ff918);}(_0x85b0,0xdf));var _0x085b=function(_0x1dc612,_0x4d6c4c){_0x1dc612=_0x1dc612-0x0;var _0x2cacb8=_0x85b0[_0x1dc612];return _0x2cacb8;};'use strict';var _=require(_0x085b('0x0'));var logger=require(_0x085b('0x1'))(_0x085b('0x2'));var verticesWithRetry=['menu',_0x085b('0x3'),_0x085b('0x4')];var Graph=function(){this[_0x085b('0x5')]={};this[_0x085b('0x6')]={};this[_0x085b('0x7')]=0x0;};Graph[_0x085b('0x8')][_0x085b('0x9')]=function(_0x2eb3f5){this[_0x085b('0x5')][_0x2eb3f5['id']]=_0x2eb3f5;this[_0x085b('0x6')][_0x2eb3f5['id']]=[];};Graph[_0x085b('0x8')]['addEdge']=function(_0x2b46da,_0x5a9a40,_0x323279){this[_0x085b('0x6')][_0x2b46da][_0x085b('0xa')]({'target':_0x5a9a40,'condition':_0x323279});this[_0x085b('0x7')]+=0x1;};Graph[_0x085b('0x8')][_0x085b('0xb')]=function(){return _[_0x085b('0xb')](this[_0x085b('0x5')]);};Graph[_0x085b('0x8')][_0x085b('0xc')]=function(){return this[_0x085b('0x7')];};Graph['prototype']['getVertex']=function(_0x4a7db1){return this[_0x085b('0x5')][_0x4a7db1];};Graph[_0x085b('0x8')]['traverseBFS']=function(_0x1e5e51,_0x3d7d07){if(!this['vertices'][_0x1e5e51]){return logger[_0x085b('0xd')](_0x085b('0xe'));}var _0x265484=_0x3d7d07(this[_0x085b('0x5')][_0x1e5e51]);if(!_0x265484){return logger[_0x085b('0xd')](_0x085b('0xf'));}if(this[_0x085b('0x6')][_0x1e5e51][_0x085b('0x10')]===0x0){return logger[_0x085b('0xd')](_0x085b('0x11'));}for(var _0x3c1da6=0x0,_0xd026c1=[],_0x36cea3=![];_0x3c1da6<this[_0x085b('0x6')][_0x1e5e51][_0x085b('0x10')];_0x3c1da6+=0x1){if(this[_0x085b('0x6')][_0x1e5e51][_0x3c1da6][_0x085b('0x12')]){_0xd026c1=this[_0x085b('0x6')][_0x1e5e51][_0x3c1da6]['condition']['split'](',');for(var _0x1c4bc4=0x0;_0x1c4bc4<_0xd026c1[_0x085b('0x10')];_0x1c4bc4+=0x1){if(this[_0x085b('0x5')][_0x1e5e51]['agicommand']===_0x085b('0x13')&&_0xd026c1[_0x1c4bc4]==='-'){_0x36cea3=this[_0x085b('0x6')][_0x1e5e51][_0x3c1da6][_0x085b('0x14')];logger[_0x085b('0xd')](_0x085b('0x15'),_0xd026c1[_0x1c4bc4],this['edges'][_0x1e5e51][_0x3c1da6][_0x085b('0x14')]);}else if(this[_0x085b('0x5')][_0x1e5e51]['agicommand']===_0x085b('0x16')&&_0xd026c1[_0x1c4bc4]==='i'){_0x36cea3=this[_0x085b('0x6')][_0x1e5e51][_0x3c1da6][_0x085b('0x14')];logger['info'](_0x085b('0x17'),_0xd026c1[_0x1c4bc4],this['edges'][_0x1e5e51][_0x3c1da6]['target']);}if(_0xd026c1[_0x1c4bc4]===_0x265484){return this[_0x085b('0x18')](this['edges'][_0x1e5e51][_0x3c1da6][_0x085b('0x14')],_0x3d7d07);}}}else{return this['traverseBFS'](this[_0x085b('0x6')][_0x1e5e51][_0x3c1da6]['target'],_0x3d7d07);}}if(_0xd026c1[_0x085b('0x10')]){if(this['vertices'][_0x1e5e51][_0x085b('0x19')]===_0x085b('0x13')){if(_0x36cea3){return this[_0x085b('0x18')](_0x36cea3,_0x3d7d07);}return logger['info']('default\x20on\x20switch\x20not\x20found');}else if(_[_0x085b('0x1a')](verticesWithRetry,this[_0x085b('0x5')][_0x1e5e51][_0x085b('0x19')])){if(_0x265484==='-'){return logger[_0x085b('0xd')](_0x085b('0x1b'));}if(_0x36cea3&&_0x265484!=='t'){return this[_0x085b('0x18')](_0x36cea3,_0x3d7d07);}return this[_0x085b('0x18')](_0x1e5e51,_0x3d7d07);}return logger[_0x085b('0xd')](_0x085b('0x1c'));}};module[_0x085b('0x1d')]=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5257=['target','addEdge','source','value','getSquareProject','then','catch','createSquareReport','indexOf','agi_','substring','inspect','variables','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','sync','production','start','debug','root','joinAt','YYYY-MM-DD\x20HH:mm:ss','mxCell','[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','clear','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','response','result','finally','traverseBFS','vertex','agicommand\x20not\x20found','[END]\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','Project\x20%s\x20not\x20published','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','xml2json','lodash','syncho','util','moment','../../config/environment','../../config/logger','./rpc','./mailRpc','agi','defaults','127.0.0.1','nextTick','error','stack','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','port','name','message','format','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','mxGraphModel','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','isArray','length'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x5257,0x153));var _0x7525=function(_0x36884e,_0x48008f){_0x36884e=_0x36884e-0x0;var _0x1cc367=_0x5257[_0x36884e];return _0x1cc367;};'use strict';var parser=require(_0x7525('0x0'));var _=require(_0x7525('0x1'));var syncho=require(_0x7525('0x2'));var util=require(_0x7525('0x3'));var moment=require(_0x7525('0x4'));var config=require(_0x7525('0x5'));var logger=require(_0x7525('0x6'))('agi');var utilLicense=require('../../config/license/util');var rpc=require(_0x7525('0x7'));var mailRpc=require(_0x7525('0x8'));var Graph=require('./graph');var Vertices=require('./vertices');var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x7525('0x9')]=_[_0x7525('0xa')](config['agi'],{'ip':_0x7525('0xb'),'port':0x11dd});function connectionHandler(_0x4d1c4){process[_0x7525('0xc')](function(){syncho(function(){try{setChannelVariables(_0x4d1c4);agiHandler(_0x4d1c4);}catch(_0x28ca60){logger[_0x7525('0xd')](_0x28ca60[_0x7525('0xe')]);}});});}function listeningHandler(){console['log'](_0x7525('0xf'),config[_0x7525('0x9')]['port']);logger[_0x7525('0x10')](util['format'](_0x7525('0x11'),config['agi']['ip'],config[_0x7525('0x9')][_0x7525('0x12')]));}function errorHandler(_0x321910){if(_0x321910&&_0x321910[_0x7525('0x13')]&&_0x321910[_0x7525('0x14')]){logger[_0x7525('0xd')](util[_0x7525('0x15')]('[%s]\x20%s',_0x321910[_0x7525('0x13')],_0x321910[_0x7525('0x14')]));}else{logger[_0x7525('0xd')](util[_0x7525('0x15')](_0x7525('0x16'),_0x321910['stack']));}}function closeHandler(){logger[_0x7525('0x10')](util[_0x7525('0x15')](_0x7525('0x17'),this[_0x7525('0x18')],this[_0x7525('0x19')],this[_0x7525('0x1a')],this[_0x7525('0x1b')],this[_0x7525('0x1c')]));try{createSquareReport(this);}catch(_0xd00c8a){logger[_0x7525('0xd')](_0xd00c8a['stack']);}}function timeoutHandler(){logger[_0x7525('0x10')](util[_0x7525('0x15')](_0x7525('0x1d'),this[_0x7525('0x18')],this[_0x7525('0x19')],this[_0x7525('0x1a')],this['dnid'],this[_0x7525('0x1c')]));}function hangupHandler(){logger['info'](util[_0x7525('0x15')](_0x7525('0x1e'),this[_0x7525('0x18')],this[_0x7525('0x19')],this['callerid'],this[_0x7525('0x1b')],this[_0x7525('0x1c')]));this[_0x7525('0x1f')]=!![];}function getRoot(_0x69f0d8){return parser['toJson'](_0x69f0d8,{'object':!![]})[_0x7525('0x20')]['root'];}function addVertex(_0x374582,_0x5aa99f,_0x4e5140){_0x5aa99f[_0x7525('0x21')]=_0x4e5140;if(_0x5aa99f[_0x7525('0x22')](_0x7525('0x23'))){_0x5aa99f[_0x7525('0x24')]=parseInt(_0x5aa99f[_0x7525('0x23')],0xa);}_0x374582[_0x7525('0x25')](_[_0x7525('0x26')](_0x5aa99f,'mxCell'));}function initGraph(_0x10103f,_0x26d21f){var _0x569753=new Graph();for(var _0x3e4adc in _0x10103f){if(_0x10103f['hasOwnProperty'](_0x3e4adc)){if(_[_0x7525('0x27')](_0x10103f[_0x3e4adc])){for(var _0x5a9f16=0x0;_0x5a9f16<_0x10103f[_0x3e4adc][_0x7525('0x28')];_0x5a9f16+=0x1){addVertex(_0x569753,_0x10103f[_0x3e4adc][_0x5a9f16],_0x3e4adc);}}else{addVertex(_0x569753,_0x10103f[_0x3e4adc],_0x3e4adc);}}}for(var _0xbe7140=0x0;_0xbe7140<_0x26d21f[_0x7525('0x28')];_0xbe7140+=0x1){if(_0x26d21f[_0xbe7140]['source']&&_0x26d21f[_0xbe7140][_0x7525('0x29')]){_0x569753[_0x7525('0x2a')](_0x26d21f[_0xbe7140][_0x7525('0x2b')],_0x26d21f[_0xbe7140][_0x7525('0x29')],_0x26d21f[_0xbe7140][_0x7525('0x2c')]);}}return _0x569753;}function getSquareProject(_0xb377fa,_0x246836){rpc[_0x7525('0x2d')](_0xb377fa)[_0x7525('0x2e')](function(_0x504d1e){_0x246836(null,_0x504d1e);})[_0x7525('0x2f')](function(_0x5a32e2){_0x246836(null,_0x5a32e2);});}function createSquareReport(_0x7d7bd7,_0x3e1a22){rpc[_0x7525('0x30')](_0x7d7bd7)[_0x7525('0x2e')](function(_0x5daf6d){if(_0x3e1a22){_0x3e1a22(null,_0x5daf6d);}})[_0x7525('0x2f')](function(_0x1cf680){if(_0x3e1a22){_0x3e1a22(null,_0x1cf680);}});}function setChannelVariables(_0x46fdc0){for(var _0x21a05c in _0x46fdc0){if(_0x46fdc0[_0x7525('0x22')](_0x21a05c)){if(_0x21a05c[_0x7525('0x31')](_0x7525('0x32'))===0x0){_0x46fdc0[_0x21a05c[_0x7525('0x33')](0x4)]=_0x46fdc0[_0x21a05c];delete _0x46fdc0[_0x21a05c];}}}}function getLogFromObject(_0x3bea0b){return util[_0x7525('0x34')](_0x3bea0b,{'showHidden':![],'depth':null});}function agiHandler(_0x6d4e11){var _0x54de07,_0x23613d,_0x29bbf6,_0x3c45a1,_0x4dac37;logger['debug'](_0x7525('0x35'),JSON[_0x7525('0x36')](_0x6d4e11,null,0x2));logger['info'](util[_0x7525('0x15')](_0x7525('0x37'),_0x6d4e11['arg_1'],_0x6d4e11[_0x7525('0x19')],_0x6d4e11[_0x7525('0x1a')],_0x6d4e11[_0x7525('0x1b')],_0x6d4e11[_0x7525('0x1c')]));_0x6d4e11['on']('error',errorHandler);_0x6d4e11['on'](_0x7525('0x38'),closeHandler);_0x6d4e11['on'](_0x7525('0x39'),timeoutHandler);_0x6d4e11['evtHangup']=![];_0x6d4e11['on'](_0x7525('0x3a'),hangupHandler);var _0x14cdc5=getSquareProject[_0x7525('0x3b')](null,_0x6d4e11[_0x7525('0x18')]);if(_0x14cdc5){if(_0x14cdc5['production']){_0x54de07=getRoot(_0x14cdc5[_0x7525('0x3c')]);if(_0x54de07&&_0x54de07[_0x7525('0x3d')]){logger[_0x7525('0x3e')](_0x7525('0x3f'),JSON[_0x7525('0x36')](_0x54de07,null,0x2));_0x6d4e11[_0x7525('0x40')]=moment()[_0x7525('0x15')](_0x7525('0x41'));_0x23613d=initGraph(_[_0x7525('0x26')](_0x54de07,_0x7525('0x42')),_0x54de07[_0x7525('0x42')]);_0x29bbf6=new Vertices(_0x6d4e11,rpc,mailRpc);logger['info'](util[_0x7525('0x15')](_0x7525('0x43'),_0x6d4e11[_0x7525('0x18')],_0x6d4e11[_0x7525('0x19')],_0x6d4e11[_0x7525('0x1a')],_0x6d4e11[_0x7525('0x1b')],_0x6d4e11[_0x7525('0x1c')]));_0x23613d['traverseBFS'](_0x54de07[_0x7525('0x3d')]['id'],function(_0x1f7b4b){try{_0x1f7b4b=_0x29bbf6[_0x7525('0x44')](_0x1f7b4b);logger['debug']('vertex',JSON[_0x7525('0x36')](_0x1f7b4b,null,0x2));if(_0x1f7b4b['agicommand']===_0x7525('0x45')){logger[_0x7525('0x10')](_0x7525('0x46'));_0x6d4e11['context']=_0x1f7b4b[_0x7525('0x47')]||_0x6d4e11[_0x7525('0x47')];_0x6d4e11[_0x7525('0x48')]=_0x1f7b4b[_0x7525('0x48')];_0x6d4e11[_0x7525('0x49')]=_0x1f7b4b[_0x7525('0x49')]?_0x1f7b4b[_0x7525('0x49')]-0x1:0x1;return null;}else if(_0x1f7b4b&&_0x29bbf6[_0x1f7b4b[_0x7525('0x21')]]){_0x4dac37=_0x29bbf6[_0x1f7b4b[_0x7525('0x21')]](_0x1f7b4b);logger[_0x7525('0x10')]('response',JSON[_0x7525('0x36')](_0x4dac37,null,0x2));if(_0x4dac37&&_0x4dac37[_0x7525('0x4a')]===AGI_CODE_SUCCESS&&_0x4dac37['result']!==AGI_RESULT_ERROR&&!_0x6d4e11[_0x7525('0x1f')]){logger['debug'](_0x7525('0x4b'),getLogFromObject(_0x4dac37));return _['isUndefined'](_0x4dac37[_0x7525('0x4c')])?null:_0x4dac37['result']['toString']();}else{logger[_0x7525('0xd')](_0x7525('0x4b'),getLogFromObject(_0x4dac37));return null;}}else{logger['error']('agicommand\x20not\x20found');return null;}}catch(_0x583fcb){logger[_0x7525('0xd')](_0x583fcb[_0x7525('0xe')]);return null;}});if(_0x54de07[_0x7525('0x4d')]){logger[_0x7525('0x10')](util[_0x7525('0x15')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x6d4e11['arg_1'],_0x6d4e11[_0x7525('0x19')],_0x6d4e11[_0x7525('0x1a')],_0x6d4e11[_0x7525('0x1b')],_0x6d4e11['uniqueid']));_0x23613d[_0x7525('0x4e')](_0x54de07['finally']['id'],function(_0x5d445e){try{_0x5d445e=_0x29bbf6['clear'](_0x5d445e);logger[_0x7525('0x3e')](_0x7525('0x4f'),JSON[_0x7525('0x36')](_0x5d445e,null,0x2));if(_0x5d445e&&_0x29bbf6[_0x5d445e['agicommand']]){_0x4dac37=_0x29bbf6[_0x5d445e['agicommand']](_0x5d445e);if(_0x4dac37){logger[_0x7525('0x3e')]('response',getLogFromObject(_0x4dac37));return _['isUndefined'](_0x4dac37[_0x7525('0x4c')])?null:_0x4dac37[_0x7525('0x4c')]['toString']();}else{logger[_0x7525('0xd')](_0x7525('0x4b'),getLogFromObject(_0x4dac37));return null;}}else{logger[_0x7525('0xd')](_0x7525('0x50'));return null;}}catch(_0x8915aa){logger[_0x7525('0xd')](_0x8915aa[_0x7525('0xe')]);return null;}});}logger[_0x7525('0x10')](util[_0x7525('0x15')](_0x7525('0x51'),_0x6d4e11[_0x7525('0x18')],_0x6d4e11['calleridname'],_0x6d4e11['callerid'],_0x6d4e11[_0x7525('0x1b')],_0x6d4e11[_0x7525('0x1c')]));logger[_0x7525('0x10')](util[_0x7525('0x15')](_0x7525('0x52'),_0x6d4e11[_0x7525('0x47')],_0x6d4e11[_0x7525('0x48')],parseInt(_0x6d4e11['priority'],0xa)+0x1));_0x6d4e11[_0x7525('0x53')](_0x6d4e11[_0x7525('0x47')],_0x6d4e11[_0x7525('0x48')],parseInt(_0x6d4e11[_0x7525('0x49')],0xa)+0x1);_0x6d4e11['close']();}}else{logger[_0x7525('0xd')](util[_0x7525('0x15')](_0x7525('0x54'),_0x6d4e11[_0x7525('0x18')]));_0x6d4e11[_0x7525('0x53')](_0x6d4e11[_0x7525('0x47')],_0x6d4e11[_0x7525('0x48')],parseInt(_0x6d4e11[_0x7525('0x49')],0xa)+0x1);_0x6d4e11[_0x7525('0x38')]();}}else{logger['error'](util[_0x7525('0x15')](_0x7525('0x55'),_0x6d4e11[_0x7525('0x18')]));_0x6d4e11[_0x7525('0x53')](_0x6d4e11[_0x7525('0x47')],_0x6d4e11['extension'],parseInt(_0x6d4e11['priority'],0xa)+0x1);_0x6d4e11[_0x7525('0x38')]();}}function main(){var _0x1ade79;return utilLicense[_0x7525('0x56')]()[_0x7525('0x2e')](function(_0x2462ee){if(_0x2462ee){if(_0x2462ee[_0x7525('0x57')]){if(_0x2462ee[_0x7525('0x58')]&&_0x2462ee['callysquare']>0x0){logger['info'](util[_0x7525('0x15')]('[LICENSE]\x20CHANNELS:\x20%s',_0x2462ee[_0x7525('0x58')]));_0x1ade79=_0x2462ee['callysquare'];}else{logger['info'](_0x7525('0x59'));}}else{logger['info'](_0x7525('0x5a'));_0x1ade79=-0x1;}}})['catch'](function(_0x523d3d){logger[_0x7525('0xd')](_0x7525('0x5b'),_0x523d3d[_0x7525('0xe')]);})[_0x7525('0x4d')](function(){var _0x1f55e6=require(_0x7525('0x5c'))(config[_0x7525('0x9')][_0x7525('0x12')],config['agi']['ip'],_0x1ade79);_0x1f55e6['on'](_0x7525('0xd'),errorHandler);_0x1f55e6['on'](_0x7525('0x5d'),listeningHandler);_0x1f55e6['on'](_0x7525('0x5e'),connectionHandler);_0x1f55e6['on'](_0x7525('0x38'),closeHandler);});}main();
\ No newline at end of file
+var _0xc5a5=['port','connection','xml2json','lodash','syncho','util','moment','../../config/logger','../../config/license/util','./rpc','./graph','./vertices','agi','defaults','error','stack','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','format','[%s]\x20%s','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','mxGraphModel','agicommand','maxRetry','retry','addVertex','omit','mxCell','hasOwnProperty','length','addEdge','target','value','catch','createSquareReport','then','indexOf','substring','inspect','debug','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','sync','production','start','root','joinAt','YYYY-MM-DD\x20HH:mm:ss','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','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','traverseBFS','clear','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','Project\x20%s\x20not\x20published','continueAt','Project\x20%s\x20not\x20found','getLicense','voice','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server'];(function(_0x34a087,_0x4bd68e){var _0x5c15d7=function(_0x152823){while(--_0x152823){_0x34a087['push'](_0x34a087['shift']());}};_0x5c15d7(++_0x4bd68e);}(_0xc5a5,0x1d3));var _0x5c5a=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xc5a5[_0x20a584];return _0x4b41a8;};'use strict';var parser=require(_0x5c5a('0x0'));var _=require(_0x5c5a('0x1'));var syncho=require(_0x5c5a('0x2'));var util=require(_0x5c5a('0x3'));var moment=require(_0x5c5a('0x4'));var config=require('../../config/environment');var logger=require(_0x5c5a('0x5'))('agi');var utilLicense=require(_0x5c5a('0x6'));var rpc=require(_0x5c5a('0x7'));var mailRpc=require('./mailRpc');var Graph=require(_0x5c5a('0x8'));var Vertices=require(_0x5c5a('0x9'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0x5c5a('0xa')]=_[_0x5c5a('0xb')](config['agi'],{'ip':'127.0.0.1','port':0x11dd});function connectionHandler(_0xf41702){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0xf41702);agiHandler(_0xf41702);}catch(_0x4c31e8){logger[_0x5c5a('0xc')](_0x4c31e8[_0x5c5a('0xd')]);}});});}function listeningHandler(){console[_0x5c5a('0xe')](_0x5c5a('0xf'),config[_0x5c5a('0xa')]['port']);logger[_0x5c5a('0x10')](util['format'](_0x5c5a('0x11'),config[_0x5c5a('0xa')]['ip'],config[_0x5c5a('0xa')]['port']));}function errorHandler(_0x57dadb){if(_0x57dadb&&_0x57dadb[_0x5c5a('0x12')]&&_0x57dadb[_0x5c5a('0x13')]){logger[_0x5c5a('0xc')](util[_0x5c5a('0x14')](_0x5c5a('0x15'),_0x57dadb[_0x5c5a('0x12')],_0x57dadb[_0x5c5a('0x13')]));}else{logger[_0x5c5a('0xc')](util[_0x5c5a('0x14')](_0x5c5a('0x16'),_0x57dadb[_0x5c5a('0xd')]));}}function closeHandler(){logger[_0x5c5a('0x10')](util[_0x5c5a('0x14')](_0x5c5a('0x17'),this[_0x5c5a('0x18')],this['calleridname'],this[_0x5c5a('0x19')],this[_0x5c5a('0x1a')],this[_0x5c5a('0x1b')]));try{createSquareReport(this);}catch(_0x2655bd){logger[_0x5c5a('0xc')](_0x2655bd['stack']);}}function timeoutHandler(){logger[_0x5c5a('0x10')](util[_0x5c5a('0x14')](_0x5c5a('0x1c'),this[_0x5c5a('0x18')],this[_0x5c5a('0x1d')],this['callerid'],this['dnid'],this[_0x5c5a('0x1b')]));}function hangupHandler(){logger[_0x5c5a('0x10')](util[_0x5c5a('0x14')](_0x5c5a('0x1e'),this[_0x5c5a('0x18')],this[_0x5c5a('0x1d')],this[_0x5c5a('0x19')],this[_0x5c5a('0x1a')],this[_0x5c5a('0x1b')]));this[_0x5c5a('0x1f')]=!![];}function getRoot(_0x366aac){return parser[_0x5c5a('0x20')](_0x366aac,{'object':!![]})[_0x5c5a('0x21')]['root'];}function addVertex(_0x1edaca,_0x218964,_0x39c83c){_0x218964[_0x5c5a('0x22')]=_0x39c83c;if(_0x218964['hasOwnProperty']('retry')){_0x218964[_0x5c5a('0x23')]=parseInt(_0x218964[_0x5c5a('0x24')],0xa);}_0x1edaca[_0x5c5a('0x25')](_[_0x5c5a('0x26')](_0x218964,_0x5c5a('0x27')));}function initGraph(_0x5424c9,_0x205ae8){var _0x4ad0bc=new Graph();for(var _0x2f9e9a in _0x5424c9){if(_0x5424c9[_0x5c5a('0x28')](_0x2f9e9a)){if(_['isArray'](_0x5424c9[_0x2f9e9a])){for(var _0x4297b7=0x0;_0x4297b7<_0x5424c9[_0x2f9e9a][_0x5c5a('0x29')];_0x4297b7+=0x1){addVertex(_0x4ad0bc,_0x5424c9[_0x2f9e9a][_0x4297b7],_0x2f9e9a);}}else{addVertex(_0x4ad0bc,_0x5424c9[_0x2f9e9a],_0x2f9e9a);}}}for(var _0x4556f9=0x0;_0x4556f9<_0x205ae8[_0x5c5a('0x29')];_0x4556f9+=0x1){if(_0x205ae8[_0x4556f9]['source']&&_0x205ae8[_0x4556f9]['target']){_0x4ad0bc[_0x5c5a('0x2a')](_0x205ae8[_0x4556f9]['source'],_0x205ae8[_0x4556f9][_0x5c5a('0x2b')],_0x205ae8[_0x4556f9][_0x5c5a('0x2c')]);}}return _0x4ad0bc;}function getSquareProject(_0x2c8f0b,_0x4a20f4){rpc['getSquareProject'](_0x2c8f0b)['then'](function(_0x4d3e2f){_0x4a20f4(null,_0x4d3e2f);})[_0x5c5a('0x2d')](function(_0x2f1491){_0x4a20f4(null,_0x2f1491);});}function createSquareReport(_0x15bb9d,_0x425f6a){rpc[_0x5c5a('0x2e')](_0x15bb9d)[_0x5c5a('0x2f')](function(_0x1d554b){if(_0x425f6a){_0x425f6a(null,_0x1d554b);}})[_0x5c5a('0x2d')](function(_0x28b025){if(_0x425f6a){_0x425f6a(null,_0x28b025);}});}function setChannelVariables(_0xbbefff){for(var _0x5ab750 in _0xbbefff){if(_0xbbefff['hasOwnProperty'](_0x5ab750)){if(_0x5ab750[_0x5c5a('0x30')]('agi_')===0x0){_0xbbefff[_0x5ab750[_0x5c5a('0x31')](0x4)]=_0xbbefff[_0x5ab750];delete _0xbbefff[_0x5ab750];}}}}function getLogFromObject(_0x1a1dcf){return util[_0x5c5a('0x32')](_0x1a1dcf,{'showHidden':![],'depth':null});}function agiHandler(_0x527f9f){var _0x564b8a,_0x5ccac2,_0x29b0ba,_0x32f5cd,_0x559722;logger[_0x5c5a('0x33')]('variables',JSON[_0x5c5a('0x34')](_0x527f9f,null,0x2));logger[_0x5c5a('0x10')](util['format'](_0x5c5a('0x35'),_0x527f9f[_0x5c5a('0x18')],_0x527f9f[_0x5c5a('0x1d')],_0x527f9f[_0x5c5a('0x19')],_0x527f9f[_0x5c5a('0x1a')],_0x527f9f[_0x5c5a('0x1b')]));_0x527f9f['on']('error',errorHandler);_0x527f9f['on'](_0x5c5a('0x36'),closeHandler);_0x527f9f['on'](_0x5c5a('0x37'),timeoutHandler);_0x527f9f[_0x5c5a('0x1f')]=![];_0x527f9f['on'](_0x5c5a('0x38'),hangupHandler);var _0x52a975=getSquareProject[_0x5c5a('0x39')](null,_0x527f9f[_0x5c5a('0x18')]);if(_0x52a975){if(_0x52a975[_0x5c5a('0x3a')]){_0x564b8a=getRoot(_0x52a975[_0x5c5a('0x3a')]);if(_0x564b8a&&_0x564b8a[_0x5c5a('0x3b')]){logger['debug'](_0x5c5a('0x3c'),JSON[_0x5c5a('0x34')](_0x564b8a,null,0x2));_0x527f9f[_0x5c5a('0x3d')]=moment()[_0x5c5a('0x14')](_0x5c5a('0x3e'));_0x5ccac2=initGraph(_['omit'](_0x564b8a,_0x5c5a('0x27')),_0x564b8a[_0x5c5a('0x27')]);_0x29b0ba=new Vertices(_0x527f9f,rpc,mailRpc);logger['info'](util[_0x5c5a('0x14')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x527f9f['arg_1'],_0x527f9f[_0x5c5a('0x1d')],_0x527f9f[_0x5c5a('0x19')],_0x527f9f[_0x5c5a('0x1a')],_0x527f9f[_0x5c5a('0x1b')]));_0x5ccac2['traverseBFS'](_0x564b8a[_0x5c5a('0x3b')]['id'],function(_0x2fb4c4){try{_0x2fb4c4=_0x29b0ba['clear'](_0x2fb4c4);logger[_0x5c5a('0x33')](_0x5c5a('0x3f'),JSON['stringify'](_0x2fb4c4,null,0x2));if(_0x2fb4c4[_0x5c5a('0x22')]===_0x5c5a('0x40')){logger[_0x5c5a('0x10')](_0x5c5a('0x41'));_0x527f9f[_0x5c5a('0x42')]=_0x2fb4c4['context']||_0x527f9f[_0x5c5a('0x42')];_0x527f9f[_0x5c5a('0x43')]=_0x2fb4c4[_0x5c5a('0x43')];_0x527f9f[_0x5c5a('0x44')]=_0x2fb4c4[_0x5c5a('0x44')]?_0x2fb4c4[_0x5c5a('0x44')]-0x1:0x1;return null;}else if(_0x2fb4c4&&_0x29b0ba[_0x2fb4c4[_0x5c5a('0x22')]]){_0x559722=_0x29b0ba[_0x2fb4c4[_0x5c5a('0x22')]](_0x2fb4c4);logger[_0x5c5a('0x10')](_0x5c5a('0x45'),JSON[_0x5c5a('0x34')](_0x559722,null,0x2));if(_0x559722&&_0x559722[_0x5c5a('0x46')]===AGI_CODE_SUCCESS&&_0x559722[_0x5c5a('0x47')]!==AGI_RESULT_ERROR&&!_0x527f9f[_0x5c5a('0x1f')]){logger[_0x5c5a('0x33')](_0x5c5a('0x45'),getLogFromObject(_0x559722));return _[_0x5c5a('0x48')](_0x559722[_0x5c5a('0x47')])?null:_0x559722[_0x5c5a('0x47')][_0x5c5a('0x49')]();}else{logger[_0x5c5a('0xc')](_0x5c5a('0x45'),getLogFromObject(_0x559722));return null;}}else{logger['error'](_0x5c5a('0x4a'));return null;}}catch(_0xc49821){logger[_0x5c5a('0xc')](_0xc49821['stack']);return null;}});if(_0x564b8a[_0x5c5a('0x4b')]){logger[_0x5c5a('0x10')](util[_0x5c5a('0x14')](_0x5c5a('0x4c'),_0x527f9f[_0x5c5a('0x18')],_0x527f9f[_0x5c5a('0x1d')],_0x527f9f['callerid'],_0x527f9f[_0x5c5a('0x1a')],_0x527f9f[_0x5c5a('0x1b')]));_0x5ccac2[_0x5c5a('0x4d')](_0x564b8a['finally']['id'],function(_0x20b0af){try{_0x20b0af=_0x29b0ba[_0x5c5a('0x4e')](_0x20b0af);logger[_0x5c5a('0x33')]('vertex',JSON[_0x5c5a('0x34')](_0x20b0af,null,0x2));if(_0x20b0af&&_0x29b0ba[_0x20b0af[_0x5c5a('0x22')]]){_0x559722=_0x29b0ba[_0x20b0af['agicommand']](_0x20b0af);if(_0x559722){logger[_0x5c5a('0x33')](_0x5c5a('0x45'),getLogFromObject(_0x559722));return _[_0x5c5a('0x48')](_0x559722[_0x5c5a('0x47')])?null:_0x559722[_0x5c5a('0x47')]['toString']();}else{logger[_0x5c5a('0xc')](_0x5c5a('0x45'),getLogFromObject(_0x559722));return null;}}else{logger[_0x5c5a('0xc')](_0x5c5a('0x4a'));return null;}}catch(_0x3a6acf){logger[_0x5c5a('0xc')](_0x3a6acf['stack']);return null;}});}logger['info'](util[_0x5c5a('0x14')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x527f9f[_0x5c5a('0x18')],_0x527f9f['calleridname'],_0x527f9f[_0x5c5a('0x19')],_0x527f9f[_0x5c5a('0x1a')],_0x527f9f[_0x5c5a('0x1b')]));logger[_0x5c5a('0x10')](util[_0x5c5a('0x14')](_0x5c5a('0x4f'),_0x527f9f[_0x5c5a('0x42')],_0x527f9f[_0x5c5a('0x43')],parseInt(_0x527f9f[_0x5c5a('0x44')],0xa)+0x1));_0x527f9f['continueAt'](_0x527f9f[_0x5c5a('0x42')],_0x527f9f[_0x5c5a('0x43')],parseInt(_0x527f9f[_0x5c5a('0x44')],0xa)+0x1);_0x527f9f[_0x5c5a('0x36')]();}}else{logger[_0x5c5a('0xc')](util[_0x5c5a('0x14')](_0x5c5a('0x50'),_0x527f9f['arg_1']));_0x527f9f[_0x5c5a('0x51')](_0x527f9f[_0x5c5a('0x42')],_0x527f9f[_0x5c5a('0x43')],parseInt(_0x527f9f[_0x5c5a('0x44')],0xa)+0x1);_0x527f9f['close']();}}else{logger[_0x5c5a('0xc')](util['format'](_0x5c5a('0x52'),_0x527f9f['arg_1']));_0x527f9f[_0x5c5a('0x51')](_0x527f9f['context'],_0x527f9f[_0x5c5a('0x43')],parseInt(_0x527f9f[_0x5c5a('0x44')],0xa)+0x1);_0x527f9f['close']();}}function main(){var _0x438221;return utilLicense[_0x5c5a('0x53')]()[_0x5c5a('0x2f')](function(_0x1f6e3f){if(_0x1f6e3f){if(_0x1f6e3f[_0x5c5a('0x54')]){if(_0x1f6e3f[_0x5c5a('0x55')]&&_0x1f6e3f['callysquare']>0x0){logger[_0x5c5a('0x10')](util[_0x5c5a('0x14')](_0x5c5a('0x56'),_0x1f6e3f[_0x5c5a('0x55')]));_0x438221=_0x1f6e3f[_0x5c5a('0x55')];}else{logger[_0x5c5a('0x10')](_0x5c5a('0x57'));}}else{logger[_0x5c5a('0x10')](_0x5c5a('0x58'));_0x438221=-0x1;}}})['catch'](function(_0xe57608){logger[_0x5c5a('0xc')](_0x5c5a('0x59'),_0xe57608[_0x5c5a('0xd')]);})['finally'](function(){var _0x425466=require(_0x5c5a('0x5a'))(config[_0x5c5a('0xa')][_0x5c5a('0x5b')],config['agi']['ip'],_0x438221);_0x425466['on'](_0x5c5a('0xc'),errorHandler);_0x425466['on']('listening',listeningHandler);_0x425466['on'](_0x5c5a('0x5c'),connectionHandler);_0x425466['on'](_0x5c5a('0x36'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe912=['sendMailMessage','SendMail','bluebird','http','error','result','catch'];(function(_0x7b48ca,_0x340ea6){var _0x19ad54=function(_0x39e7bb){while(--_0x39e7bb){_0x7b48ca['push'](_0x7b48ca['shift']());}};_0x19ad54(++_0x340ea6);}(_0xe912,0x183));var _0x2e91=function(_0x247d90,_0xeab829){_0x247d90=_0x247d90-0x0;var _0x5afb80=_0xe912[_0x247d90];return _0x5afb80;};'use strict';var BPromise=require(_0x2e91('0x0'));var jayson=require('jayson/promise');var client=jayson['client'][_0x2e91('0x1')]({'port':0x232b});function request(_0x1cf2f7,_0x1b1f22){return new BPromise(function(_0x54f180,_0x5823b0){return client['request'](_0x1cf2f7,_0x1b1f22)['then'](function(_0x1f392f){if(_0x1f392f[_0x2e91('0x2')]){return _0x5823b0(_0x1f392f[_0x2e91('0x2')]['message']);}else{return _0x54f180(_0x1f392f[_0x2e91('0x3')]);}})[_0x2e91('0x4')](function(_0xd630fb){return _0x5823b0(_0xd630fb);});});}exports[_0x2e91('0x5')]=function(_0x635fee,_0x29e8fd){return request(_0x2e91('0x6'),{'account':_0x635fee,'message':_0x29e8fd});};
\ No newline at end of file
+var _0x5362=['catch','sendMailMessage','SendMail','bluebird','client','http','then','error','message'];(function(_0x23ffe8,_0x3ed23e){var _0xceb462=function(_0x5a72e4){while(--_0x5a72e4){_0x23ffe8['push'](_0x23ffe8['shift']());}};_0xceb462(++_0x3ed23e);}(_0x5362,0x78));var _0x2536=function(_0x1b64d8,_0x2a4e60){_0x1b64d8=_0x1b64d8-0x0;var _0x6ddc1e=_0x5362[_0x1b64d8];return _0x6ddc1e;};'use strict';var BPromise=require(_0x2536('0x0'));var jayson=require('jayson/promise');var client=jayson[_0x2536('0x1')][_0x2536('0x2')]({'port':0x232b});function request(_0x5cc802,_0x4acbbd){return new BPromise(function(_0x484d76,_0x35dcb5){return client['request'](_0x5cc802,_0x4acbbd)[_0x2536('0x3')](function(_0x457a36){if(_0x457a36[_0x2536('0x4')]){return _0x35dcb5(_0x457a36[_0x2536('0x4')][_0x2536('0x5')]);}else{return _0x484d76(_0x457a36['result']);}})[_0x2536('0x6')](function(_0x151ff1){return _0x35dcb5(_0x151ff1);});});}exports[_0x2536('0x7')]=function(_0x5e15f9,_0x5bebdc){return request(_0x2536('0x8'),{'account':_0x5e15f9,'message':_0x5bebdc});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x174c=['util','stream','Transform','call','_transform','\x0d\x0a\x0d\x0a','_localBuffer','indexOf','substring','length','trim','slice','emit','line','exports'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x174c,0xf0));var _0xc174=function(_0x10ff4c,_0x35c7e2){_0x10ff4c=_0x10ff4c-0x0;var _0x28bac8=_0x174c[_0x10ff4c];return _0x28bac8;};'use strict';var util=require(_0xc174('0x0'));var Transform=require(_0xc174('0x1'))[_0xc174('0x2')];function AGIReply(_0x1d801b){Transform[_0xc174('0x3')](this,_0x1d801b);this['_localBuffer']='';this['_inBody']=![];}util['inherits'](AGIReply,Transform);AGIReply['prototype'][_0xc174('0x4')]=function(_0x561979,_0x5a3a40,_0x4325b8){var _0x137532='\x0a',_0x4c72f2=['\x0a\x0a',_0xc174('0x5')],_0x3d24cf=-0x1,_0x1fe9d3=-0x1,_0x597a1d='',_0x579955=0x0,_0x4658ca='',_0x540557='';this['_localBuffer']+=_0x561979['toString']();_0x4658ca=this[_0xc174('0x6')];if(!this['_inBody']){_0x579955=0x0;while(_0x4c72f2[_0x579955]){while((_0x1fe9d3=_0x4658ca[_0xc174('0x7')](_0x4c72f2[_0x579955]))!=-0x1){_0x597a1d=_0x4c72f2[_0x579955];_0x540557=_0x4658ca['substring'](0x0,_0x1fe9d3);_0x4658ca=_0x4658ca[_0xc174('0x8')](_0x1fe9d3+_0x597a1d[_0xc174('0x9')]);var _0x442066=_0x540557['split'](_0x137532),_0x21b666=0x0,_0x2cee75={},_0x2375e5='',_0x1e74b1='',_0x3f749a=-0x1;while(_0x442066[_0x21b666]){_0x3f749a=_0x442066[_0x21b666][_0xc174('0x7')](':');if(_0x3f749a!=-0x1){_0x2375e5=_0x442066[_0x21b666]['slice'](0x0,_0x3f749a)[_0xc174('0xa')]();_0x1e74b1=_0x442066[_0x21b666][_0xc174('0xb')](_0x3f749a+0x1)[_0xc174('0xa')]();if(_0x2375e5[_0xc174('0x9')]>0x0){_0x2cee75[_0x2375e5]=_0x1e74b1;}}else{}_0x21b666++;}this[_0xc174('0xc')]('headers',_0x2cee75);this['_inBody']=!![];}_0x579955++;}this[_0xc174('0x6')]=_0x4658ca;}else{while((_0x3d24cf=_0x4658ca[_0xc174('0x7')](_0x137532))!=-0x1){_0x540557=_0x4658ca[_0xc174('0x8')](0x0,_0x3d24cf);this['emit'](_0xc174('0xd'),_0x540557);_0x4658ca=_0x4658ca[_0xc174('0x8')](_0x3d24cf+_0x137532['length']);}this['_localBuffer']=_0x4658ca;}_0x4325b8();};module[_0xc174('0xe')]=AGIReply;
\ No newline at end of file
+var _0x66f4=['slice','trim','length','emit','indexOf','line','exports','stream','call','_localBuffer','_inBody','_transform','toString','substring','split'];(function(_0x353d3d,_0xc7ebc){var _0x1c5409=function(_0x54838e){while(--_0x54838e){_0x353d3d['push'](_0x353d3d['shift']());}};_0x1c5409(++_0xc7ebc);}(_0x66f4,0x7f));var _0x466f=function(_0x3b8ac8,_0x16b0e2){_0x3b8ac8=_0x3b8ac8-0x0;var _0x4840dd=_0x66f4[_0x3b8ac8];return _0x4840dd;};'use strict';var util=require('util');var Transform=require(_0x466f('0x0'))['Transform'];function AGIReply(_0x4a4c10){Transform[_0x466f('0x1')](this,_0x4a4c10);this[_0x466f('0x2')]='';this[_0x466f('0x3')]=![];}util['inherits'](AGIReply,Transform);AGIReply['prototype'][_0x466f('0x4')]=function(_0x53caa9,_0x5388ae,_0x231b3c){var _0x941ea6='\x0a',_0x3e712c=['\x0a\x0a','\x0d\x0a\x0d\x0a'],_0x435b63=-0x1,_0x5224b2=-0x1,_0xb9c5be='',_0x161913=0x0,_0x502318='',_0x4b3c28='';this[_0x466f('0x2')]+=_0x53caa9[_0x466f('0x5')]();_0x502318=this[_0x466f('0x2')];if(!this[_0x466f('0x3')]){_0x161913=0x0;while(_0x3e712c[_0x161913]){while((_0x5224b2=_0x502318['indexOf'](_0x3e712c[_0x161913]))!=-0x1){_0xb9c5be=_0x3e712c[_0x161913];_0x4b3c28=_0x502318[_0x466f('0x6')](0x0,_0x5224b2);_0x502318=_0x502318[_0x466f('0x6')](_0x5224b2+_0xb9c5be['length']);var _0x32ff9c=_0x4b3c28[_0x466f('0x7')](_0x941ea6),_0x2b05bf=0x0,_0x4b742c={},_0x173b69='',_0x393ad3='',_0x4803e4=-0x1;while(_0x32ff9c[_0x2b05bf]){_0x4803e4=_0x32ff9c[_0x2b05bf]['indexOf'](':');if(_0x4803e4!=-0x1){_0x173b69=_0x32ff9c[_0x2b05bf][_0x466f('0x8')](0x0,_0x4803e4)[_0x466f('0x9')]();_0x393ad3=_0x32ff9c[_0x2b05bf]['slice'](_0x4803e4+0x1)['trim']();if(_0x173b69[_0x466f('0xa')]>0x0){_0x4b742c[_0x173b69]=_0x393ad3;}}else{}_0x2b05bf++;}this[_0x466f('0xb')]('headers',_0x4b742c);this[_0x466f('0x3')]=!![];}_0x161913++;}this['_localBuffer']=_0x502318;}else{while((_0x435b63=_0x502318[_0x466f('0xc')](_0x941ea6))!=-0x1){_0x4b3c28=_0x502318['substring'](0x0,_0x435b63);this[_0x466f('0xb')](_0x466f('0xd'),_0x4b3c28);_0x502318=_0x502318['substring'](_0x435b63+_0x941ea6[_0x466f('0xa')]);}this[_0x466f('0x2')]=_0x502318;}_0x231b3c();};module[_0x466f('0xe')]=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76f1=['ShowMailAccount','Smtp','getSquareProjectById','name','getVoiceQueueById','ShowVoiceQueue','getVariableById','getSquareOdbcById','dsn','getUserById','ShowUser','getTrunkById','getSoundById','getIntervalById','ShowInterval','Interval','Intervals','getSmsAccountById','ShowSmsAccount','CreateSmsMessage','createSquareDetailsReport','CreateSquareDetailsReport','CreateSquareReport','merge','arg_2','format','CreateSquareRecording','createSquareMessage','CreateSquareMessage','createCmContact','ShowCmHopper','phone','CreateCmContact','getPauseById','agentLogin','LoginUser','agentPause','PauseUser','agentUnpause','agentLogout','LogoutUser','bluebird','moment','lodash','jayson/promise','client','http','then','error','message','catch','production','getMailAccountById'];(function(_0xf9f261,_0x25250f){var _0x15d265=function(_0x18a6e0){while(--_0x18a6e0){_0xf9f261['push'](_0xf9f261['shift']());}};_0x15d265(++_0x25250f);}(_0x76f1,0x167));var _0x176f=function(_0x2489a4,_0x21967a){_0x2489a4=_0x2489a4-0x0;var _0x25bdf6=_0x76f1[_0x2489a4];return _0x25bdf6;};'use strict';var BPromise=require(_0x176f('0x0'));var moment=require(_0x176f('0x1'));var _=require(_0x176f('0x2'));var util=require('util');var jayson=require(_0x176f('0x3'));var client=jayson[_0x176f('0x4')][_0x176f('0x5')]({'port':0x2329});function request(_0x142857,_0x95f623){return new BPromise(function(_0x5b0a7d,_0x118331){return client['request'](_0x142857,_0x95f623)[_0x176f('0x6')](function(_0x1a05cc){if(_0x1a05cc['error']){return _0x118331(_0x1a05cc[_0x176f('0x7')][_0x176f('0x8')]);}else{return _0x5b0a7d(_0x1a05cc['result']);}})[_0x176f('0x9')](function(_0x1dab06){return _0x118331(_0x1dab06);});});}exports['getSquareProject']=function(_0x4e24f2){return request('ShowSquareProject',{'options':{'raw':![],'where':{'name':_0x4e24f2},'attributes':[_0x176f('0xa')]}});};exports[_0x176f('0xb')]=function(_0x222bbe){return request(_0x176f('0xc'),{'options':{'raw':![],'where':{'id':_0x222bbe},'include':[{'model':'MailServerOut','as':_0x176f('0xd')}],'attributes':['id','name','email']}});};exports[_0x176f('0xe')]=function(_0x47c4d0){return request('ShowSquareProject',{'options':{'where':{'id':_0x47c4d0},'attributes':[_0x176f('0xf')]}});};exports[_0x176f('0x10')]=function(_0x12097d){return request(_0x176f('0x11'),{'options':{'where':{'id':_0x12097d},'attributes':[_0x176f('0xf')]}});};exports[_0x176f('0x12')]=function(_0x597b5d){return request('ShowVariable',{'options':{'where':{'id':_0x597b5d},'attributes':[_0x176f('0xf')]}});};exports[_0x176f('0x13')]=function(_0x36772f){return request('ShowSquareOdbc',{'options':{'where':{'id':_0x36772f},'attributes':[_0x176f('0x14')]}});};exports[_0x176f('0x15')]=function(_0x2cca3f){return request(_0x176f('0x16'),{'options':{'where':{'id':_0x2cca3f},'attributes':['name']}});};exports[_0x176f('0x17')]=function(_0x35b6e9){return request('ShowTrunk',{'options':{'where':{'id':_0x35b6e9},'attributes':['name']}});};exports[_0x176f('0x18')]=function(_0x4b737c){return request('ShowSound',{'options':{'where':{'id':_0x4b737c},'attributes':['save_name']}});};exports[_0x176f('0x19')]=function(_0x1b7907){return request(_0x176f('0x1a'),{'options':{'raw':![],'where':{'id':_0x1b7907},'include':[{'model':_0x176f('0x1b'),'as':_0x176f('0x1c')}]}});};exports[_0x176f('0x1d')]=function(_0x2d57be){return request(_0x176f('0x1e'),{'options':{'where':{'id':_0x2d57be},'attributes':['id',_0x176f('0xf')]}});};exports['createSmsMessage']=function(_0x4a3d54){return request(_0x176f('0x1f'),{'body':_0x4a3d54});};exports[_0x176f('0x20')]=function(_0xf8b110){return request(_0x176f('0x21'),{'body':_0xf8b110});};exports['createSquareReport']=function(_0x55f675){return request(_0x176f('0x22'),{'body':_[_0x176f('0x23')](_0x55f675,{'project_name':_0x55f675['arg_1'],'prev_project_name':_0x55f675['arg_2']||'','is_subproject':_0x55f675[_0x176f('0x24')]?!![]:![],'leaveAt':moment()[_0x176f('0x25')]('YYYY-MM-DD\x20HH:mm:ss')})});};exports['createSquareRecording']=function(_0x45b325){return request(_0x176f('0x26'),{'body':_0x45b325});};exports[_0x176f('0x27')]=function(_0xb3b65e){return request(_0x176f('0x28'),{'body':_0xb3b65e});};exports[_0x176f('0x29')]=function(_0x5bf9df){return request(_0x176f('0x2a'),{'options':{'raw':![],'where':{'phone':_0x5bf9df[_0x176f('0x2b')],'ListId':_0x5bf9df['ListId']}}})[_0x176f('0x6')](function(_0x296c1b){if(_0x296c1b){return _0x296c1b;}return request(_0x176f('0x2c'),{'body':_0x5bf9df});});};exports[_0x176f('0x2d')]=function(_0x33522d){return request('ShowPause',{'options':{'where':{'id':_0x33522d},'attributes':[_0x176f('0xf')]}});};exports[_0x176f('0x2e')]=function(_0x4ec8f1,_0xbfd700){return request(_0x176f('0x2f'),{'body':{'interface':_0xbfd700},'options':{'where':_0x4ec8f1}});};exports[_0x176f('0x30')]=function(_0x29bc1b,_0x391eb9,_0x244196){return request(_0x176f('0x31'),{'body':{'type':_0x391eb9,'uniqueid':_0x244196},'options':{'where':_0x29bc1b}});};exports[_0x176f('0x32')]=function(_0x5809ef){return request('UnpauseUser',{'body':{},'options':{'where':_0x5809ef}});};exports[_0x176f('0x33')]=function(_0x903fdd){return request(_0x176f('0x34'),{'body':{},'options':{'where':_0x903fdd}});};
\ No newline at end of file
+var _0xe28c=['util','jayson/promise','http','then','error','message','catch','getSquareProject','ShowSquareProject','production','getMailAccountById','MailServerOut','name','email','getVoiceQueueById','ShowVoiceQueue','getVariableById','ShowVariable','getSquareOdbcById','ShowSquareOdbc','dsn','getUserById','ShowUser','ShowTrunk','ShowSound','save_name','Interval','Intervals','getSmsAccountById','ShowSmsAccount','createSmsMessage','CreateSmsMessage','CreateSquareDetailsReport','createSquareReport','CreateSquareReport','merge','arg_1','arg_2','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','CreateSquareRecording','createCmContact','ShowCmHopper','phone','ListId','CreateCmContact','getPauseById','agentLogin','LoginUser','PauseUser','UnpauseUser','LogoutUser','bluebird','lodash'];(function(_0x1ba55e,_0x240848){var _0x162311=function(_0x29b9fd){while(--_0x29b9fd){_0x1ba55e['push'](_0x1ba55e['shift']());}};_0x162311(++_0x240848);}(_0xe28c,0xa0));var _0xce28=function(_0x5f5497,_0x50803a){_0x5f5497=_0x5f5497-0x0;var _0x10e943=_0xe28c[_0x5f5497];return _0x10e943;};'use strict';var BPromise=require(_0xce28('0x0'));var moment=require('moment');var _=require(_0xce28('0x1'));var util=require(_0xce28('0x2'));var jayson=require(_0xce28('0x3'));var client=jayson['client'][_0xce28('0x4')]({'port':0x2329});function request(_0x31a296,_0x6939d5){return new BPromise(function(_0x3280b6,_0x5adc91){return client['request'](_0x31a296,_0x6939d5)[_0xce28('0x5')](function(_0x1b994f){if(_0x1b994f[_0xce28('0x6')]){return _0x5adc91(_0x1b994f[_0xce28('0x6')][_0xce28('0x7')]);}else{return _0x3280b6(_0x1b994f['result']);}})[_0xce28('0x8')](function(_0x4a8c3a){return _0x5adc91(_0x4a8c3a);});});}exports[_0xce28('0x9')]=function(_0x63ffb3){return request(_0xce28('0xa'),{'options':{'raw':![],'where':{'name':_0x63ffb3},'attributes':[_0xce28('0xb')]}});};exports[_0xce28('0xc')]=function(_0x2a22bd){return request('ShowMailAccount',{'options':{'raw':![],'where':{'id':_0x2a22bd},'include':[{'model':_0xce28('0xd'),'as':'Smtp'}],'attributes':['id',_0xce28('0xe'),_0xce28('0xf')]}});};exports['getSquareProjectById']=function(_0x392bfb){return request(_0xce28('0xa'),{'options':{'where':{'id':_0x392bfb},'attributes':[_0xce28('0xe')]}});};exports[_0xce28('0x10')]=function(_0x435adf){return request(_0xce28('0x11'),{'options':{'where':{'id':_0x435adf},'attributes':[_0xce28('0xe')]}});};exports[_0xce28('0x12')]=function(_0x42bb5d){return request(_0xce28('0x13'),{'options':{'where':{'id':_0x42bb5d},'attributes':[_0xce28('0xe')]}});};exports[_0xce28('0x14')]=function(_0x425513){return request(_0xce28('0x15'),{'options':{'where':{'id':_0x425513},'attributes':[_0xce28('0x16')]}});};exports[_0xce28('0x17')]=function(_0x3e6a84){return request(_0xce28('0x18'),{'options':{'where':{'id':_0x3e6a84},'attributes':[_0xce28('0xe')]}});};exports['getTrunkById']=function(_0x2eddff){return request(_0xce28('0x19'),{'options':{'where':{'id':_0x2eddff},'attributes':[_0xce28('0xe')]}});};exports['getSoundById']=function(_0x525fd2){return request(_0xce28('0x1a'),{'options':{'where':{'id':_0x525fd2},'attributes':[_0xce28('0x1b')]}});};exports['getIntervalById']=function(_0x2fedd6){return request('ShowInterval',{'options':{'raw':![],'where':{'id':_0x2fedd6},'include':[{'model':_0xce28('0x1c'),'as':_0xce28('0x1d')}]}});};exports[_0xce28('0x1e')]=function(_0x2d5bda){return request(_0xce28('0x1f'),{'options':{'where':{'id':_0x2d5bda},'attributes':['id','name']}});};exports[_0xce28('0x20')]=function(_0x5117f1){return request(_0xce28('0x21'),{'body':_0x5117f1});};exports['createSquareDetailsReport']=function(_0x3151ce){return request(_0xce28('0x22'),{'body':_0x3151ce});};exports[_0xce28('0x23')]=function(_0x3a9169){return request(_0xce28('0x24'),{'body':_[_0xce28('0x25')](_0x3a9169,{'project_name':_0x3a9169[_0xce28('0x26')],'prev_project_name':_0x3a9169[_0xce28('0x27')]||'','is_subproject':_0x3a9169['arg_2']?!![]:![],'leaveAt':moment()['format'](_0xce28('0x28'))})});};exports[_0xce28('0x29')]=function(_0x4a8846){return request(_0xce28('0x2a'),{'body':_0x4a8846});};exports['createSquareMessage']=function(_0x4cc091){return request('CreateSquareMessage',{'body':_0x4cc091});};exports[_0xce28('0x2b')]=function(_0x311446){return request(_0xce28('0x2c'),{'options':{'raw':![],'where':{'phone':_0x311446[_0xce28('0x2d')],'ListId':_0x311446[_0xce28('0x2e')]}}})['then'](function(_0x47c582){if(_0x47c582){return _0x47c582;}return request(_0xce28('0x2f'),{'body':_0x311446});});};exports[_0xce28('0x30')]=function(_0x3fc071){return request('ShowPause',{'options':{'where':{'id':_0x3fc071},'attributes':['name']}});};exports[_0xce28('0x31')]=function(_0x47babe,_0x3c854b){return request(_0xce28('0x32'),{'body':{'interface':_0x3c854b},'options':{'where':_0x47babe}});};exports['agentPause']=function(_0x2e71c5,_0x21a57d,_0x330861){return request(_0xce28('0x33'),{'body':{'type':_0x21a57d,'uniqueid':_0x330861},'options':{'where':_0x2e71c5}});};exports['agentUnpause']=function(_0x500844){return request(_0xce28('0x34'),{'body':{},'options':{'where':_0x500844}});};exports['agentLogout']=function(_0x1ddd73){return request(_0xce28('0x35'),{'body':{},'options':{'where':_0x1ddd73}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2678=['exports','./lex'];(function(_0x24f52c,_0x4bc8b1){var _0x240605=function(_0x3970da){while(--_0x3970da){_0x24f52c['push'](_0x24f52c['shift']());}};_0x240605(++_0x4bc8b1);}(_0x2678,0x1bb));var _0x8267=function(_0x561ff7,_0x156137){_0x561ff7=_0x561ff7-0x0;var _0x33e6a7=_0x2678[_0x561ff7];return _0x33e6a7;};var polly=require('./polly');var lex=require(_0x8267('0x0'));module[_0x8267('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0xb091=['./lex','exports'];(function(_0x4396ce,_0x3ade56){var _0x1427c2=function(_0x46fba2){while(--_0x46fba2){_0x4396ce['push'](_0x4396ce['shift']());}};_0x1427c2(++_0x3ade56);}(_0xb091,0x16e));var _0x1b09=function(_0x1dd431,_0x44e852){_0x1dd431=_0x1dd431-0x0;var _0x51ad93=_0xb091[_0x1dd431];return _0x51ad93;};var polly=require('./polly');var lex=require(_0x1b09('0x0'));module[_0x1b09('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['exports'];(function(_0x1ccdf7,_0x215d5a){var _0x52a0ae=function(_0x40324a){while(--_0x40324a){_0x1ccdf7['push'](_0x1ccdf7['shift']());}};_0x52a0ae(++_0x215d5a);}(_0xda3f,0xec));var _0xfda3=function(_0x5cf03f,_0x261f64){_0x5cf03f=_0x5cf03f-0x0;var _0x42c4c5=_0xda3f[_0x5cf03f];return _0x42c4c5;};'use strict';var lex=require('./lib/api');module[_0xfda3('0x0')]=function(_0xf4e78,_0x534697,_0x5299b0,_0x5d7071,_0x3859fe,_0x581693){return lex(_0xf4e78,_0x534697,_0x5299b0,_0x5d7071,_0x3859fe,_0x581693);};
\ No newline at end of file
+var _0x13f6=['./lib/api','exports'];(function(_0x18a893,_0x2c076e){var _0x30a16c=function(_0x5eebdb){while(--_0x5eebdb){_0x18a893['push'](_0x18a893['shift']());}};_0x30a16c(++_0x2c076e);}(_0x13f6,0x124));var _0x613f=function(_0x3695ef,_0x25fb15){_0x3695ef=_0x3695ef-0x0;var _0xb8062f=_0x13f6[_0x3695ef];return _0xb8062f;};'use strict';var lex=require(_0x613f('0x0'));module[_0x613f('0x1')]=function(_0x5f1b3e,_0x563492,_0xd04cfd,_0x13b50a,_0x12dc5a,_0x5414ff){return lex(_0x5f1b3e,_0x563492,_0xd04cfd,_0x13b50a,_0x12dc5a,_0x5414ff);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x22e056,_0x2cc7bd){var _0x20d872=function(_0x47b125){while(--_0x47b125){_0x22e056['push'](_0x22e056['shift']());}};_0x20d872(++_0x2cc7bd);}(_0xa9e0,0x123));var _0x0a9e=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0xa9e0[_0x43d11d];return _0x38cd08;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
+var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x37710a,_0x5d53d1){var _0x2f6602=function(_0x5cecc6){while(--_0x5cecc6){_0x37710a['push'](_0x37710a['shift']());}};_0x2f6602(++_0x5d53d1);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf139=['exports'];(function(_0x5067ff,_0x18f85f){var _0x57d8ee=function(_0x1edddc){while(--_0x1edddc){_0x5067ff['push'](_0x5067ff['shift']());}};_0x57d8ee(++_0x18f85f);}(_0xf139,0xde));var _0x9f13=function(_0x4c9230,_0x3dcd10){_0x4c9230=_0x4c9230-0x0;var _0xfe49c3=_0xf139[_0x4c9230];return _0xfe49c3;};'use strict';var polly=require('./lib/api');module[_0x9f13('0x0')]=function(_0x3ba1c4,_0x530450,_0x37452c,_0x42649d,_0x48f272,_0xc0e260,_0x2113d9){return polly(_0x3ba1c4,_0x530450,_0x37452c,_0x42649d,_0x48f272,_0xc0e260,_0x2113d9);};
\ No newline at end of file
+var _0x8d35=['./lib/api'];(function(_0x37c6bb,_0x2616d5){var _0x44d117=function(_0x2e80d6){while(--_0x2e80d6){_0x37c6bb['push'](_0x37c6bb['shift']());}};_0x44d117(++_0x2616d5);}(_0x8d35,0x1bb));var _0x58d3=function(_0x9fd887,_0x47f76c){_0x9fd887=_0x9fd887-0x0;var _0x1a54ab=_0x8d35[_0x9fd887];return _0x1a54ab;};'use strict';var polly=require(_0x58d3('0x0'));module['exports']=function(_0xc377e5,_0x32ddf6,_0x4e0c18,_0x16e4b2,_0x1ad466,_0x18d280,_0x1210fb){return polly(_0xc377e5,_0x32ddf6,_0x4e0c18,_0x16e4b2,_0x1ad466,_0x18d280,_0x1210fb);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98dc=['Polly','text','mp3','path','bluebird','randomstring','aws-sdk','AudioStream','writeFile','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!','exports'];(function(_0x4577f6,_0x318d02){var _0x187e4b=function(_0x583ade){while(--_0x583ade){_0x4577f6['push'](_0x4577f6['shift']());}};_0x187e4b(++_0x318d02);}(_0x98dc,0x1d7));var _0xc98d=function(_0xcf1df2,_0xc0a343){_0xcf1df2=_0xcf1df2-0x0;var _0x3ea28f=_0x98dc[_0xcf1df2];return _0x3ea28f;};'use strict';var fs=require('fs');var path=require(_0xc98d('0x0'));var BPromise=require(_0xc98d('0x1'));var rs=require(_0xc98d('0x2'));var AWS=require(_0xc98d('0x3'));function pollyResult(_0x481b50,_0x9df129,_0x349ee8){return new BPromise(function(_0x2a9a14,_0x4cf60e){_0x481b50['synthesizeSpeech'](_0x9df129,function(_0x4e40e8,_0x4d3d6b){if(_0x4e40e8){_0x4cf60e(_0x4e40e8);}else if(_0x4d3d6b){if(_0x4d3d6b[_0xc98d('0x4')]instanceof Buffer){fs[_0xc98d('0x5')](_0x349ee8,_0x4d3d6b[_0xc98d('0x4')],function(_0x29fe37){if(_0x29fe37){_0x4cf60e(_0x29fe37);}else{_0x2a9a14();}});}else{_0x4cf60e(new Error(_0xc98d('0x6')));}}else{_0x4cf60e(new Error(_0xc98d('0x7')));}});});}module[_0xc98d('0x8')]=function(_0x34ad10,_0x14390a,_0xf1d01b,_0x4dbd53,_0x39be9a,_0x8ed679,_0x40358a){var _0x10f934=new AWS[(_0xc98d('0x9'))]({'accessKeyId':_0x34ad10,'secretAccessKey':_0x14390a,'region':_0xf1d01b});var _0x2798b4={'Text':_0x39be9a,'TextType':_0x8ed679||_0xc98d('0xa'),'OutputFormat':_0xc98d('0xb'),'VoiceId':_0x4dbd53};return pollyResult(_0x10f934,_0x2798b4,_0x40358a);};
\ No newline at end of file
+var _0x3428=['randomstring','aws-sdk','synthesizeSpeech','AudioStream','writeFile','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','No\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','mp3','path','bluebird'];(function(_0x4be074,_0x5afa3e){var _0x411aa9=function(_0x53dcb1){while(--_0x53dcb1){_0x4be074['push'](_0x4be074['shift']());}};_0x411aa9(++_0x5afa3e);}(_0x3428,0xf5));var _0x8342=function(_0x88cd7b,_0x4c884c){_0x88cd7b=_0x88cd7b-0x0;var _0x56fcc8=_0x3428[_0x88cd7b];return _0x56fcc8;};'use strict';var fs=require('fs');var path=require(_0x8342('0x0'));var BPromise=require(_0x8342('0x1'));var rs=require(_0x8342('0x2'));var AWS=require(_0x8342('0x3'));function pollyResult(_0x49c6ef,_0x44cbf9,_0x436546){return new BPromise(function(_0x4875f3,_0x2cfa1a){_0x49c6ef[_0x8342('0x4')](_0x44cbf9,function(_0x4eac75,_0x5ec558){if(_0x4eac75){_0x2cfa1a(_0x4eac75);}else if(_0x5ec558){if(_0x5ec558[_0x8342('0x5')]instanceof Buffer){fs[_0x8342('0x6')](_0x436546,_0x5ec558[_0x8342('0x5')],function(_0x17c8f5){if(_0x17c8f5){_0x2cfa1a(_0x17c8f5);}else{_0x4875f3();}});}else{_0x2cfa1a(new Error(_0x8342('0x7')));}}else{_0x2cfa1a(new Error(_0x8342('0x8')));}});});}module[_0x8342('0x9')]=function(_0x4bcdc4,_0x1a56d6,_0x5c7798,_0x5f473a,_0x5df7c2,_0xf920e3,_0x1798b8){var _0x275579=new AWS[(_0x8342('0xa'))]({'accessKeyId':_0x4bcdc4,'secretAccessKey':_0x1a56d6,'region':_0x5c7798});var _0x3f52b5={'Text':_0x5df7c2,'TextType':_0xf920e3||_0x8342('0xb'),'OutputFormat':_0x8342('0xc'),'VoiceId':_0x5f473a};return pollyResult(_0x275579,_0x3f52b5,_0x1798b8);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73c3=['./lib/api','exports'];(function(_0xb31f70,_0x4844aa){var _0x1b0a31=function(_0xeec24f){while(--_0xeec24f){_0xb31f70['push'](_0xb31f70['shift']());}};_0x1b0a31(++_0x4844aa);}(_0x73c3,0x150));var _0x373c=function(_0x1e3272,_0x3a8398){_0x1e3272=_0x1e3272-0x0;var _0x4c4154=_0x73c3[_0x1e3272];return _0x4c4154;};'use strict';var asr=require(_0x373c('0x0'));module[_0x373c('0x1')]=function(_0x376581,_0x762def,_0x320bf6,_0x5efd8a){return asr(_0x376581,_0x762def,_0x320bf6);};
\ No newline at end of file
+var _0x47e0=['exports','./lib/api'];(function(_0x5b0128,_0x411925){var _0x507086=function(_0x5be4c9){while(--_0x5be4c9){_0x5b0128['push'](_0x5b0128['shift']());}};_0x507086(++_0x411925);}(_0x47e0,0x97));var _0x047e=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x47e0[_0x321bb2];return _0x9c12ed;};'use strict';var asr=require(_0x047e('0x0'));module[_0x047e('0x1')]=function(_0x1b0918,_0x3874ff,_0x22231a,_0x37c5d6){return asr(_0x1b0918,_0x3874ff,_0x22231a);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc112=['https://speech.googleapis.com','string','length','filepath\x20should\x20be\x20a\x20string','key\x20should\x20be\x20a\x20string','undefined','readFileSync','toString','POST','/v1/speech:recognize?key=','LINEAR16','8000','url','bluebird'];(function(_0x164eca,_0x555e28){var _0x2ce562=function(_0x148ca6){while(--_0x148ca6){_0x164eca['push'](_0x164eca['shift']());}};_0x2ce562(++_0x555e28);}(_0xc112,0xec));var _0x2c11=function(_0x54ed70,_0x2996ce){_0x54ed70=_0x54ed70-0x0;var _0x58da87=_0xc112[_0x54ed70];return _0x58da87;};'use strict';var url=require(_0x2c11('0x0'));var BPromise=require(_0x2c11('0x1'));var fs=require('fs');var host=_0x2c11('0x2');module['exports']=function(_0x8542d8,_0x40da2e,_0x26e2a3){return new BPromise(function(_0x170832,_0xaa8492){var _0x3a1cda;if(typeof _0x8542d8!==_0x2c11('0x3')||_0x8542d8[_0x2c11('0x4')]===0x0){return _0xaa8492(_0x2c11('0x5'));}if(typeof _0x40da2e!=='string'||_0x40da2e['length']===0x0){return _0xaa8492(_0x2c11('0x6'));}if(typeof _0x26e2a3!==_0x2c11('0x7')&&(typeof _0x26e2a3!==_0x2c11('0x3')||_0x26e2a3[_0x2c11('0x4')]===0x0)){return _0xaa8492('lang\x20should\x20be\x20a\x20string');}try{_0x3a1cda=fs[_0x2c11('0x8')](_0x8542d8)[_0x2c11('0x9')]('base64');}catch(_0xa32d3f){return _0xaa8492(_0xa32d3f);}return _0x170832({'method':_0x2c11('0xa'),'uri':host+_0x2c11('0xb')+_0x40da2e,'body':{'config':{'encoding':_0x2c11('0xc'),'sampleRateHertz':_0x2c11('0xd'),'languageCode':_0x26e2a3},'audio':{'content':_0x3a1cda}},'json':!![]});});};
\ No newline at end of file
+var _0x6fad=['length','key\x20should\x20be\x20a\x20string','lang\x20should\x20be\x20a\x20string','readFileSync','toString','base64','LINEAR16','8000','url','bluebird','https://speech.googleapis.com','exports','string','filepath\x20should\x20be\x20a\x20string'];(function(_0x30405e,_0x4c2594){var _0x6e9698=function(_0x48defe){while(--_0x48defe){_0x30405e['push'](_0x30405e['shift']());}};_0x6e9698(++_0x4c2594);}(_0x6fad,0x174));var _0xd6fa=function(_0x17cfef,_0x59aae0){_0x17cfef=_0x17cfef-0x0;var _0x5751b9=_0x6fad[_0x17cfef];return _0x5751b9;};'use strict';var url=require(_0xd6fa('0x0'));var BPromise=require(_0xd6fa('0x1'));var fs=require('fs');var host=_0xd6fa('0x2');module[_0xd6fa('0x3')]=function(_0x4f8a1c,_0x2f5f9b,_0x4ae415){return new BPromise(function(_0x3e08a3,_0x48f433){var _0x3e76d0;if(typeof _0x4f8a1c!==_0xd6fa('0x4')||_0x4f8a1c['length']===0x0){return _0x48f433(_0xd6fa('0x5'));}if(typeof _0x2f5f9b!==_0xd6fa('0x4')||_0x2f5f9b[_0xd6fa('0x6')]===0x0){return _0x48f433(_0xd6fa('0x7'));}if(typeof _0x4ae415!=='undefined'&&(typeof _0x4ae415!==_0xd6fa('0x4')||_0x4ae415['length']===0x0)){return _0x48f433(_0xd6fa('0x8'));}try{_0x3e76d0=fs[_0xd6fa('0x9')](_0x4f8a1c)[_0xd6fa('0xa')](_0xd6fa('0xb'));}catch(_0x331241){return _0x48f433(_0x331241);}return _0x3e08a3({'method':'POST','uri':host+'/v1/speech:recognize?key='+_0x2f5f9b,'body':{'config':{'encoding':_0xd6fa('0xc'),'sampleRateHertz':_0xd6fa('0xd'),'languageCode':_0x4ae415},'audio':{'content':_0x3e76d0}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae7b=['./asr','exports'];(function(_0x2ffd0e,_0x291f06){var _0x5e6922=function(_0x306e7a){while(--_0x306e7a){_0x2ffd0e['push'](_0x2ffd0e['shift']());}};_0x5e6922(++_0x291f06);}(_0xae7b,0xea));var _0xbae7=function(_0x30a761,_0x2e6e9c){_0x30a761=_0x30a761-0x0;var _0x9971e4=_0xae7b[_0x30a761];return _0x9971e4;};var asr=require(_0xbae7('0x0'));module[_0xbae7('0x1')]={'asr':asr};
\ No newline at end of file
+var _0x9191=['exports','./asr'];(function(_0x5d0915,_0xe25280){var _0x5e8ce8=function(_0x3e3fd9){while(--_0x3e3fd9){_0x5d0915['push'](_0x5d0915['shift']());}};_0x5e8ce8(++_0xe25280);}(_0x9191,0x17f));var _0x1919=function(_0x13c12b,_0x4baa0d){_0x13c12b=_0x13c12b-0x0;var _0x4fcf37=_0x9191[_0x13c12b];return _0x4fcf37;};var asr=require(_0x1919('0x0'));module[_0x1919('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30d2=['writeFileSync','googleASR','asr','uri','results','map','alternatives','transcript','confidence','join','googleASR\x20transcription','googleASR\x20confidence','name','message','googleDialogflow','result','source','resolvedQuery','action','actionIncomplete','fulfillment','score','status','code','metadata','endConversation','replace','sessionPath','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','fulfillmentText','intent','isFallback','languageCode','queryText','responseId','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','model=%s','parse','nda','text','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','dialogflow','http','md5','path','querystring','request-promise','sox','google-tts-api','url','util','./aws','./google','./tilde','../../../config/logger','agi','https:','host','WHAT_EVER','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','close','download\x20error','protocol','data','end','transcode','wav','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','then','chmodSync','777','split','toString','base64','https://texttospeech.googleapis.com/v1/','ssml','input','audioConfig','MP3','text:synthesize','POST','.mp3','from','audioContent','writeFile','unlink','utf8','stringify','jQ1olc','null','slice','parse\x20response\x20failed:\x0a','length','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist'];(function(_0x255d5b,_0x4f6f35){var _0x3e141a=function(_0x249ee2){while(--_0x249ee2){_0x255d5b['push'](_0x255d5b['shift']());}};_0x3e141a(++_0x4f6f35);}(_0x30d2,0x140));var _0x230d=function(_0x150599,_0x3bdfb0){_0x150599=_0x150599-0x0;var _0x12c65f=_0x30d2[_0x150599];return _0x12c65f;};'use strict';var apiai=require(_0x230d('0x0'));var BPromise=require('bluebird');var dialogflow=require(_0x230d('0x1'));var fs=require('fs');var http=require(_0x230d('0x2'));var https=require('https');var md5=require(_0x230d('0x3'));var path=require(_0x230d('0x4'));var querystring=require(_0x230d('0x5'));var rp=require(_0x230d('0x6'));var rs=require('randomstring');var sox=require(_0x230d('0x7'));var tts=require(_0x230d('0x8'));var urlParse=require(_0x230d('0x9'))['parse'];var util=require(_0x230d('0xa'));var aws=require(_0x230d('0xb'));var google=require(_0x230d('0xc'));var sestek=require('./sestek');var tilde=require(_0x230d('0xd'));var logger=require(_0x230d('0xe'))(_0x230d('0xf'));var ISPEECH_API='https://api.ispeech.org/api/rest';function downloadFile(_0x28b581,_0xfee204){return new BPromise(function(_0x24b0c0,_0x27c17d){var _0x5518c0=urlParse(_0x28b581);var _0x14a625=_0x5518c0['protocol']===_0x230d('0x10')?https:http;var _0x2a1dc={'host':_0x5518c0[_0x230d('0x11')],'path':_0x5518c0[_0x230d('0x4')],'headers':{'user-agent':_0x230d('0x12')}};_0x14a625[_0x230d('0x13')](_0x2a1dc,function(_0x3753a7){if(_0x3753a7[_0x230d('0x14')]!==0xc8){logger[_0x230d('0x15')](_0x230d('0x16')+_0x28b581+_0x230d('0x17')+_0x3753a7[_0x230d('0x14')]+'\x20('+_0x3753a7[_0x230d('0x18')]+')');_0x27c17d(new Error(_0x230d('0x16')+_0x28b581+_0x230d('0x17')+_0x3753a7[_0x230d('0x14')]+'\x20('+_0x3753a7[_0x230d('0x18')]+')'));return;}var _0x166cec=fs[_0x230d('0x19')](_0xfee204);_0x166cec['on'](_0x230d('0x1a'),function(){logger[_0x230d('0x1b')]('finish\x20download\x20file');_0x166cec[_0x230d('0x1c')](_0x24b0c0);});_0x166cec['on'](_0x230d('0x15'),function(_0x3471ea){fs['unlink'](_0xfee204);logger['error'](_0x230d('0x1d'),_0x3471ea);_0x27c17d(_0x3471ea);});_0x3753a7['pipe'](_0x166cec);})['on'](_0x230d('0x15'),function(_0x52b1ce){logger[_0x230d('0x15')](_0x52b1ce);_0x27c17d(_0x52b1ce);})['end']();});}function uploadFile(_0x589de0){return new BPromise(function(_0x2cfbc0,_0xf34078){var _0x123747=urlParse(_0x589de0);var _0x532938=_0x123747[_0x230d('0x1e')]===_0x230d('0x10')?https:http;var _0x3b697e={'host':_0x123747[_0x230d('0x11')],'path':_0x123747[_0x230d('0x4')],'headers':{'user-agent':_0x230d('0x12')}};_0x532938[_0x230d('0x13')](_0x3b697e,function(_0xc4da24){if(_0xc4da24['statusCode']!==0xc8){_0xf34078(new Error(_0x230d('0x16')+_0x589de0+_0x230d('0x17')+_0xc4da24[_0x230d('0x14')]+'\x20('+_0xc4da24[_0x230d('0x18')]+')'));return;}var _0x5c8d4b='';_0xc4da24['on'](_0x230d('0x1f'),function(_0x45298b){_0x5c8d4b+=_0x45298b;});_0xc4da24['on'](_0x230d('0x20'),function(){_0x2cfbc0(_0x5c8d4b);});})['on'](_0x230d('0x15'),function(_0x325f08){_0xf34078(_0x325f08);})[_0x230d('0x20')]();});}function convertFile(_0xdab1b3,_0x119767){return new BPromise(function(_0x1d0dcf,_0x3cbec6){var _0x51e56b=sox[_0x230d('0x21')](_0xdab1b3,_0x119767,{'sampleRate':0x1f40,'format':_0x230d('0x22'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x51e56b['on']('error',function(_0x489340){logger['error'](_0x230d('0x23'),_0x489340);_0x3cbec6(_0x489340);});_0x51e56b['on'](_0x230d('0x20'),function(){logger[_0x230d('0x1b')](_0x230d('0x24'));_0x1d0dcf();});_0x51e56b[_0x230d('0x25')]();});}function base64Decode(_0x20f421,_0x487cc3){var _0x2be688=path[_0x230d('0x26')](__dirname,_0x230d('0x27'),rs[_0x230d('0x28')](0x4)+_0x230d('0x29'));fs['writeFileSync'](_0x2be688,_0x20f421,'base64');return convertFile(_0x2be688,_0x487cc3)[_0x230d('0x2a')](function(){try{fs['unlink'](_0x2be688);fs[_0x230d('0x2b')](_0x487cc3,_0x230d('0x2c'));}catch(_0x35caaa){logger[_0x230d('0x15')](_0x35caaa);}return _0x487cc3[_0x230d('0x2d')]('.')[0x0];});}function base64Encode(_0x1163df){var _0xc2d363=fs['readFileSync'](_0x1163df);return new Buffer(_0xc2d363)[_0x230d('0x2e')](_0x230d('0x2f'));}exports['googleCloudTTS']=function(_0x350878,_0xde9af8,_0x33ea8b,_0x257923,_0x22f804,_0x5cdd65){var _0x40c337,_0x394e82;var _0x2c2191=_0x230d('0x30');var _0x9fdbb9='?key='+_0x350878;var _0x53179d={};if(_0xde9af8===_0x230d('0x31')){_0x53179d[_0x230d('0x32')]={'ssml':_0x33ea8b};}else{_0x53179d['input']={'text':_0x33ea8b};};_0x53179d['voice']={'languageCode':_0x257923,'ssmlGender':_0x22f804};_0x53179d[_0x230d('0x33')]={'audioEncoding':_0x230d('0x34'),'sampleRateHertz':0x1f40};var _0x565407={'url':_0x2c2191+_0x230d('0x35')+_0x9fdbb9,'method':_0x230d('0x36'),'json':!![],'body':_0x53179d};return rp(_0x565407)[_0x230d('0x2a')](function(_0x1ddfed){return new BPromise(function(_0x2e1070,_0x380720){_0x40c337=path[_0x230d('0x26')](__dirname,_0x230d('0x27'),rs[_0x230d('0x28')](0x4)+_0x230d('0x37'));var _0x4173fb=Buffer[_0x230d('0x38')](_0x1ddfed[_0x230d('0x39')],_0x230d('0x2f'));return fs[_0x230d('0x3a')](_0x40c337,_0x4173fb,function(_0x21b122){_0x380720(_0x21b122);},function(_0x4d15f5){fs[_0x230d('0x2b')](_0x40c337,_0x230d('0x2c'));_0x2e1070(_0x4d15f5);});});})['then'](function(_0x3c958e){_0x394e82=path[_0x230d('0x26')](__dirname,_0x230d('0x27'),rs[_0x230d('0x28')](0x4)+'.wav');return convertFile(_0x40c337,_0x394e82);})['then'](function(){try{fs[_0x230d('0x3b')](_0x40c337);fs[_0x230d('0x2b')](_0x394e82,_0x230d('0x2c'));}catch(_0x256b8b){logger[_0x230d('0x15')](_0x256b8b);}logger['info']('googleCloudTTS\x20path',_0x394e82[_0x230d('0x2d')]('.')[0x0]);return _0x394e82[_0x230d('0x2d')]('.')[0x0];});};exports['googleTTS']=function(_0x44028d,_0x5f2127){var _0x408fe8='https://translate.google.com/_/TranslateWebserverUi/data/batchexecute';var _0x680fbb,_0x43b6a5;var _0x3f6ee8;var _0x321efa={'encoding':_0x230d('0x3c'),'method':_0x230d('0x36'),'timeout':0x2710,'url':_0x408fe8,'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':'f.req='+encodeURIComponent(JSON[_0x230d('0x3d')]([[[_0x230d('0x3e'),JSON[_0x230d('0x3d')]([_0x44028d,_0x5f2127||'en',![],_0x230d('0x3f')]),null,'generic']]]))};return rp(_0x321efa)[_0x230d('0x2a')](function(_0x5ff108){try{_0x3f6ee8=eval(_0x5ff108[_0x230d('0x40')](0x5))[0x0][0x2];}catch(_0x326793){throw new Error(_0x230d('0x41')+_0x5ff108[_0x230d('0x1f')]);}if(!_0x3f6ee8){if(_0x44028d[_0x230d('0x42')]>0xc8){throw new Error(_0x230d('0x43'));}else{throw new Error(_0x230d('0x44')+_0x5f2127+_0x230d('0x45'));}}try{_0x3f6ee8=eval(_0x3f6ee8)[0x0];}catch(_0x38fc55){throw new Error(_0x230d('0x41')+res[_0x230d('0x1f')]);}const _0x2cb1ef=_0x3f6ee8;_0x680fbb=path[_0x230d('0x26')](__dirname,'tmp',rs[_0x230d('0x28')](0x4)+'.mp3');fs[_0x230d('0x46')](_0x680fbb,_0x3f6ee8,{'encoding':'base64'});_0x43b6a5=path['resolve'](__dirname,'tmp',rs['generate'](0x4)+_0x230d('0x29'));return convertFile(_0x680fbb,_0x43b6a5);})['then'](function(){try{fs[_0x230d('0x3b')](_0x680fbb);fs[_0x230d('0x2b')](_0x43b6a5,_0x230d('0x2c'));}catch(_0x3e8f35){logger[_0x230d('0x15')](_0x3e8f35);}logger[_0x230d('0x1b')]('goggleTTS\x20path',_0x43b6a5['split']('.')[0x0]);return _0x43b6a5[_0x230d('0x2d')]('.')[0x0];});};exports[_0x230d('0x47')]=function(_0x23b99d,_0x4df545,_0x28f6fe){return google[_0x230d('0x48')](_0x23b99d,_0x4df545,_0x28f6fe)[_0x230d('0x2a')](function(_0x3ec1f1){logger['info'](_0x3ec1f1[_0x230d('0x49')]);return rp(_0x3ec1f1);})['then'](function(_0x123f4c){var _0x44c51a='';var _0x22cb38=0x0;try{fs[_0x230d('0x3b')](_0x23b99d);}catch(_0x5ea67e){logger['error'](_0x5ea67e);}if(_0x123f4c&&_0x123f4c[_0x230d('0x4a')]){_0x44c51a=_0x123f4c[_0x230d('0x4a')][_0x230d('0x4b')](function(_0x3149aa){return _0x3149aa&&_0x3149aa[_0x230d('0x4c')][0x0]&&_0x3149aa['alternatives'][0x0][_0x230d('0x4d')]?_0x3149aa['alternatives'][0x0][_0x230d('0x4d')]:'';})['join']('\x0a');_0x22cb38=_0x123f4c[_0x230d('0x4a')][_0x230d('0x4b')](function(_0x5a0c24){return _0x5a0c24&&_0x5a0c24[_0x230d('0x4c')][0x0]&&_0x5a0c24[_0x230d('0x4c')][0x0]['confidence']?_0x5a0c24[_0x230d('0x4c')][0x0][_0x230d('0x4e')]:0x0;})[_0x230d('0x4f')]('\x0a');}logger[_0x230d('0x1b')](_0x230d('0x50'),_0x44c51a);logger[_0x230d('0x1b')](_0x230d('0x51'),_0x22cb38);return{'transcript':_0x44c51a,'confidence':_0x22cb38};})['catch'](function(_0x12285b){logger['error']('[%s]\x20%s:%s',_0x12285b[_0x230d('0x14')],_0x12285b[_0x230d('0x52')],_0x12285b[_0x230d('0x53')]);});};exports[_0x230d('0x54')]=function(_0x5af23b,_0x378eb7,_0x529868,_0x364c74){var _0x23d6ba=apiai(_0x378eb7,{'language':_0x364c74||'en'});return _0x23d6ba['textRequest'](_0x529868,{'sessionId':md5(_0x5af23b)})['then'](function(_0x583791){logger[_0x230d('0x1b')](JSON[_0x230d('0x3d')](_0x583791));return{'source':_0x583791[_0x230d('0x55')][_0x230d('0x56')],'resolvedQuery':_0x583791[_0x230d('0x55')][_0x230d('0x57')],'action':_0x583791[_0x230d('0x55')][_0x230d('0x58')],'actionIncomplete':_0x583791[_0x230d('0x55')][_0x230d('0x59')],'speech':_0x583791[_0x230d('0x55')][_0x230d('0x5a')]['speech'],'score':_0x583791[_0x230d('0x55')][_0x230d('0x5b')],'statusCode':_0x583791[_0x230d('0x5c')][_0x230d('0x5d')],'endConversation':_0x583791[_0x230d('0x55')][_0x230d('0x5e')][_0x230d('0x5f')]||![],'isFallbackIntent':_0x583791[_0x230d('0x55')][_0x230d('0x5e')]['isFallbackIntent']};});};exports['googleDialogflowV2']=function(_0x2e87a8,_0x2768a4,_0x15f647,_0x166af0,_0x4b0f18,_0x4767a0){var _0x372456=_0x166af0[_0x230d('0x60')](/\\n/g,'\x0a');var _0x3270c7={'credentials':{'private_key':_0x372456,'client_email':_0x15f647}};var _0x55ea93=new dialogflow['SessionsClient'](_0x3270c7);var _0xf02bbf=_0x55ea93[_0x230d('0x61')](_0x2768a4,md5(_0x2e87a8));var _0xd3222c={'session':_0xf02bbf,'queryInput':{'text':{'text':_0x4b0f18,'languageCode':_0x4767a0}}};return _0x55ea93['detectIntent'](_0xd3222c)[_0x230d('0x2a')](function(_0x4b8d07){if(_0x4b8d07&&_0x4b8d07['length']){logger[_0x230d('0x1b')]('Dialogflow\x20V2\x20response:',JSON[_0x230d('0x3d')](_0x4b8d07));var _0xc4a60a=_0x4b8d07[0x0];if(_0xc4a60a){var _0x5b54f8={'action':_0xc4a60a[_0x230d('0x62')][_0x230d('0x58')],'allRequiredParamsPresent':_0xc4a60a[_0x230d('0x62')][_0x230d('0x63')],'endConversation':_0xc4a60a[_0x230d('0x62')][_0x230d('0x64')]&&_0xc4a60a['queryResult']['diagnosticInfo']['fields']?_0xc4a60a[_0x230d('0x62')]['diagnosticInfo'][_0x230d('0x65')]['end_conversation']['boolValue']:![],'fulfillmentText':_0xc4a60a[_0x230d('0x62')][_0x230d('0x66')],'intentName':_0xc4a60a[_0x230d('0x62')][_0x230d('0x67')][_0x230d('0x52')],'intentDisplayName':_0xc4a60a['queryResult']['intent']['displayName'],'isFallbackIntent':_0xc4a60a['queryResult'][_0x230d('0x67')][_0x230d('0x68')],'languageCode':_0xc4a60a[_0x230d('0x62')][_0x230d('0x69')],'queryText':_0xc4a60a[_0x230d('0x62')][_0x230d('0x6a')],'responseId':_0xc4a60a[_0x230d('0x6b')],'score':_0xc4a60a['queryResult']['intentDetectionConfidence'],'speech':_0xc4a60a[_0x230d('0x62')][_0x230d('0x66')],'providerResponse':JSON[_0x230d('0x3d')](_0x4b8d07)};return _0x5b54f8;}}});};exports[_0x230d('0x6c')]=function(_0x32160f,_0x1cef40,_0x430d5e,_0x17853e){return tilde['asr'](_0x32160f,_0x1cef40,_0x430d5e,_0x17853e)[_0x230d('0x2a')](function(_0x80dd43){try{fs['unlink'](_0x32160f);}catch(_0x25c8fd){logger[_0x230d('0x15')](_0x25c8fd);}logger[_0x230d('0x1b')](_0x230d('0x6d'),_0x80dd43[_0x230d('0x4d')]);logger[_0x230d('0x1b')](_0x230d('0x6e'),_0x80dd43[_0x230d('0x4e')]);return _0x80dd43;});};exports[_0x230d('0x6f')]=function(_0x4bc20c,_0x4cd57b,_0x87b374,_0x227174,_0x17ffa0,_0x28ad15){var _0x3e7627=path['resolve'](__dirname,'tmp',rs[_0x230d('0x28')](0x4)+_0x230d('0x37'));var _0x470aee;return aws[_0x230d('0x70')](_0x4bc20c,_0x4cd57b,_0x87b374,_0x227174,_0x17ffa0,_0x28ad15,_0x3e7627)[_0x230d('0x2a')](function(){_0x470aee=path[_0x230d('0x26')](__dirname,'tmp',rs[_0x230d('0x28')](0x4)+_0x230d('0x29'));return convertFile(_0x3e7627,_0x470aee);})[_0x230d('0x2a')](function(){try{fs['unlink'](_0x3e7627);fs[_0x230d('0x2b')](_0x470aee,_0x230d('0x2c'));}catch(_0x432b76){logger[_0x230d('0x15')](_0x432b76);}return _0x470aee[_0x230d('0x2d')]('.')[0x0];});};exports['awsLex']=function(_0x49a363,_0x761f11,_0x57da03,_0x2c9c5a,_0x35d572,_0x1e1644){return aws[_0x230d('0x71')](_0x49a363,_0x761f11,_0x57da03,_0x2c9c5a,_0x35d572,_0x1e1644)[_0x230d('0x2a')](function(_0x4f26a1){logger[_0x230d('0x1b')](JSON[_0x230d('0x3d')](_0x4f26a1));return _0x4f26a1;});};exports[_0x230d('0x72')]=function(_0x5486d5,_0x44e02f,_0x2dee85,_0x41e146){var _0x19f7fd=util[_0x230d('0x73')](_0x230d('0x74'),ISPEECH_API,_0x5486d5,encodeURIComponent(_0x44e02f),_0x2dee85,_0x41e146);var _0x441597=path[_0x230d('0x26')](__dirname,_0x230d('0x27'),rs[_0x230d('0x28')](0x4)+_0x230d('0x37'));var _0x12d2cd;return downloadFile(_0x19f7fd,_0x441597)[_0x230d('0x2a')](function(){_0x12d2cd=path[_0x230d('0x26')](__dirname,_0x230d('0x27'),rs['generate'](0x4)+'.wav');return convertFile(_0x441597,_0x12d2cd);})[_0x230d('0x2a')](function(){try{fs[_0x230d('0x3b')](_0x441597);fs[_0x230d('0x2b')](_0x12d2cd,'777');}catch(_0x11d044){logger['error'](_0x11d044);}return _0x12d2cd[_0x230d('0x2d')]('.')[0x0];});};exports[_0x230d('0x75')]=function(_0xeedc67,_0x30fa8e,_0x327c06,_0x278aa4){var _0x1dba11=util[_0x230d('0x73')](_0x230d('0x76'),ISPEECH_API,_0x30fa8e,_0x327c06,base64Encode(_0xeedc67),_0x278aa4?util[_0x230d('0x73')](_0x230d('0x77'),encodeURIComponent(_0x278aa4)):'freeform=3');return uploadFile(_0x1dba11)[_0x230d('0x2a')](function(_0x307630){return querystring[_0x230d('0x78')](_0x307630);});};exports['sestekNDA']=function(_0x15841f,_0x263de2){return sestek[_0x230d('0x79')](_0x15841f,_0x263de2)[_0x230d('0x2a')](function(_0x518112){logger[_0x230d('0x1b')](JSON[_0x230d('0x3d')](_0x518112));var _0x1bdea1={'speech':_0x518112[_0x230d('0x7a')],'action':_0x518112[_0x230d('0x7b')]?_0x518112[_0x230d('0x7b')][_0x230d('0x7c')]:undefined,'actiondata':_0x518112['channelData']?_0x518112[_0x230d('0x7b')][_0x230d('0x7d')]:undefined};if(_0x518112[_0x230d('0x7b')]&&_0x518112['channelData'][_0x230d('0x7e')]){return base64Decode(_0x518112[_0x230d('0x7b')][_0x230d('0x7e')][_0x230d('0x7f')],path['resolve'](__dirname,_0x230d('0x27'),rs[_0x230d('0x28')](0x4)+_0x230d('0x29')))[_0x230d('0x2a')](function(_0x4910bd){_0x1bdea1[_0x230d('0x80')]=_0x4910bd;return _0x1bdea1;});}return _0x1bdea1;});};exports[_0x230d('0x81')]=function(){return __dirname;};
\ No newline at end of file
+var _0x95fd=['diagnosticInfo','fields','end_conversation','boolValue','fulfillmentText','intent','displayName','isFallback','queryText','responseId','intentDetectionConfidence','tildeASR','asr','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','polly','awsLex','ispeechTTS','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','format','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','sestekNDA','nda','CustomAction','CustomActionData','channelData','AudioFromTts','Data','dirName','apiai-promise','bluebird','md5','path','querystring','request-promise','randomstring','sox','google-tts-api','parse','./aws','./google','./sestek','./tilde','agi','https://api.ispeech.org/api/rest','protocol','host','WHAT_EVER','get','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','info','finish\x20download\x20file','error','unlink','download\x20error','pipe','end','https:','data','transcode','wav','error\x20convert','start','writeFileSync','base64','then','chmodSync','777','split','readFileSync','toString','https://texttospeech.googleapis.com/v1/','?key=','ssml','input','voice','audioConfig','MP3','text:synthesize','POST','resolve','tmp','generate','.mp3','from','audioContent','writeFile','.wav','googleCloudTTS\x20path','googleTTS','utf8','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','null','generic','parse\x20response\x20failed:\x0a','length','text\x20length\x20limit\x20reached','lang\x20\x22','\x22\x20might\x20not\x20exist','goggleTTS\x20path','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','name','googleDialogflow','textRequest','result','source','action','actionIncomplete','speech','score','status','code','metadata','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','sessionPath','detectIntent','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent'];(function(_0x3c6ae2,_0x5c52d8){var _0x4edda=function(_0x5593eb){while(--_0x5593eb){_0x3c6ae2['push'](_0x3c6ae2['shift']());}};_0x4edda(++_0x5c52d8);}(_0x95fd,0x131));var _0xd95f=function(_0xef8f5c,_0x57f957){_0xef8f5c=_0xef8f5c-0x0;var _0x5d995f=_0x95fd[_0xef8f5c];return _0x5d995f;};'use strict';var apiai=require(_0xd95f('0x0'));var BPromise=require(_0xd95f('0x1'));var dialogflow=require('dialogflow');var fs=require('fs');var http=require('http');var https=require('https');var md5=require(_0xd95f('0x2'));var path=require(_0xd95f('0x3'));var querystring=require(_0xd95f('0x4'));var rp=require(_0xd95f('0x5'));var rs=require(_0xd95f('0x6'));var sox=require(_0xd95f('0x7'));var tts=require(_0xd95f('0x8'));var urlParse=require('url')[_0xd95f('0x9')];var util=require('util');var aws=require(_0xd95f('0xa'));var google=require(_0xd95f('0xb'));var sestek=require(_0xd95f('0xc'));var tilde=require(_0xd95f('0xd'));var logger=require('../../../config/logger')(_0xd95f('0xe'));var ISPEECH_API=_0xd95f('0xf');function downloadFile(_0x25e3e3,_0x59b025){return new BPromise(function(_0x4da267,_0x4db4d0){var _0x4ce9da=urlParse(_0x25e3e3);var _0x5614df=_0x4ce9da[_0xd95f('0x10')]==='https:'?https:http;var _0x8fae75={'host':_0x4ce9da[_0xd95f('0x11')],'path':_0x4ce9da[_0xd95f('0x3')],'headers':{'user-agent':_0xd95f('0x12')}};_0x5614df[_0xd95f('0x13')](_0x8fae75,function(_0x5adb29){if(_0x5adb29[_0xd95f('0x14')]!==0xc8){logger['error'](_0xd95f('0x15')+_0x25e3e3+_0xd95f('0x16')+_0x5adb29[_0xd95f('0x14')]+'\x20('+_0x5adb29['statusMessage']+')');_0x4db4d0(new Error('request\x20to\x20'+_0x25e3e3+'\x20failed,\x20status\x20code\x20=\x20'+_0x5adb29[_0xd95f('0x14')]+'\x20('+_0x5adb29[_0xd95f('0x17')]+')'));return;}var _0x5a0cfe=fs[_0xd95f('0x18')](_0x59b025);_0x5a0cfe['on'](_0xd95f('0x19'),function(){logger[_0xd95f('0x1a')](_0xd95f('0x1b'));_0x5a0cfe['close'](_0x4da267);});_0x5a0cfe['on'](_0xd95f('0x1c'),function(_0x5237ac){fs[_0xd95f('0x1d')](_0x59b025);logger[_0xd95f('0x1c')](_0xd95f('0x1e'),_0x5237ac);_0x4db4d0(_0x5237ac);});_0x5adb29[_0xd95f('0x1f')](_0x5a0cfe);})['on']('error',function(_0x3f12f9){logger[_0xd95f('0x1c')](_0x3f12f9);_0x4db4d0(_0x3f12f9);})[_0xd95f('0x20')]();});}function uploadFile(_0x4b0380){return new BPromise(function(_0x7b529c,_0xb38c55){var _0x5e8cd3=urlParse(_0x4b0380);var _0x5f166b=_0x5e8cd3['protocol']===_0xd95f('0x21')?https:http;var _0x2e7421={'host':_0x5e8cd3['host'],'path':_0x5e8cd3[_0xd95f('0x3')],'headers':{'user-agent':'WHAT_EVER'}};_0x5f166b[_0xd95f('0x13')](_0x2e7421,function(_0x560618){if(_0x560618[_0xd95f('0x14')]!==0xc8){_0xb38c55(new Error('request\x20to\x20'+_0x4b0380+'\x20failed,\x20status\x20code\x20=\x20'+_0x560618['statusCode']+'\x20('+_0x560618[_0xd95f('0x17')]+')'));return;}var _0x320752='';_0x560618['on'](_0xd95f('0x22'),function(_0x3bd492){_0x320752+=_0x3bd492;});_0x560618['on'](_0xd95f('0x20'),function(){_0x7b529c(_0x320752);});})['on'](_0xd95f('0x1c'),function(_0x446a2){_0xb38c55(_0x446a2);})[_0xd95f('0x20')]();});}function convertFile(_0x3ce241,_0xe0626e){return new BPromise(function(_0xfefecc,_0x429dfc){var _0x3c0e6a=sox[_0xd95f('0x23')](_0x3ce241,_0xe0626e,{'sampleRate':0x1f40,'format':_0xd95f('0x24'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x3c0e6a['on'](_0xd95f('0x1c'),function(_0x20594a){logger['error'](_0xd95f('0x25'),_0x20594a);_0x429dfc(_0x20594a);});_0x3c0e6a['on'](_0xd95f('0x20'),function(){logger[_0xd95f('0x1a')]('finish\x20to\x20convert');_0xfefecc();});_0x3c0e6a[_0xd95f('0x26')]();});}function base64Decode(_0x439a5c,_0xba9a3a){var _0x3f0687=path['resolve'](__dirname,'tmp',rs['generate'](0x4)+'.wav');fs[_0xd95f('0x27')](_0x3f0687,_0x439a5c,_0xd95f('0x28'));return convertFile(_0x3f0687,_0xba9a3a)[_0xd95f('0x29')](function(){try{fs['unlink'](_0x3f0687);fs[_0xd95f('0x2a')](_0xba9a3a,_0xd95f('0x2b'));}catch(_0x20976){logger['error'](_0x20976);}return _0xba9a3a[_0xd95f('0x2c')]('.')[0x0];});}function base64Encode(_0xcf7602){var _0x15f1c0=fs[_0xd95f('0x2d')](_0xcf7602);return new Buffer(_0x15f1c0)[_0xd95f('0x2e')](_0xd95f('0x28'));}exports['googleCloudTTS']=function(_0x56f3d4,_0x3e10a1,_0x10657a,_0x4424c6,_0x5dbfff,_0x525e8d){var _0x59c620,_0x4cbd98;var _0x2188b7=_0xd95f('0x2f');var _0x26744d=_0xd95f('0x30')+_0x56f3d4;var _0x9e315a={};if(_0x3e10a1===_0xd95f('0x31')){_0x9e315a['input']={'ssml':_0x10657a};}else{_0x9e315a[_0xd95f('0x32')]={'text':_0x10657a};};_0x9e315a[_0xd95f('0x33')]={'languageCode':_0x4424c6,'ssmlGender':_0x5dbfff};_0x9e315a[_0xd95f('0x34')]={'audioEncoding':_0xd95f('0x35'),'sampleRateHertz':0x1f40};var _0x501238={'url':_0x2188b7+_0xd95f('0x36')+_0x26744d,'method':_0xd95f('0x37'),'json':!![],'body':_0x9e315a};return rp(_0x501238)[_0xd95f('0x29')](function(_0x1dd85e){return new BPromise(function(_0x15c90c,_0x38f85f){_0x59c620=path[_0xd95f('0x38')](__dirname,_0xd95f('0x39'),rs[_0xd95f('0x3a')](0x4)+_0xd95f('0x3b'));var _0x3a5d1f=Buffer[_0xd95f('0x3c')](_0x1dd85e[_0xd95f('0x3d')],_0xd95f('0x28'));return fs[_0xd95f('0x3e')](_0x59c620,_0x3a5d1f,function(_0x1d571b){_0x38f85f(_0x1d571b);},function(_0x1fe010){fs[_0xd95f('0x2a')](_0x59c620,_0xd95f('0x2b'));_0x15c90c(_0x1fe010);});});})[_0xd95f('0x29')](function(_0x51466a){_0x4cbd98=path['resolve'](__dirname,_0xd95f('0x39'),rs[_0xd95f('0x3a')](0x4)+_0xd95f('0x3f'));return convertFile(_0x59c620,_0x4cbd98);})['then'](function(){try{fs[_0xd95f('0x1d')](_0x59c620);fs[_0xd95f('0x2a')](_0x4cbd98,'777');}catch(_0x1cf59c){logger[_0xd95f('0x1c')](_0x1cf59c);}logger['info'](_0xd95f('0x40'),_0x4cbd98[_0xd95f('0x2c')]('.')[0x0]);return _0x4cbd98[_0xd95f('0x2c')]('.')[0x0];});};exports[_0xd95f('0x41')]=function(_0xa64329,_0xbe5e67){var _0x4a6224='https://translate.google.com/_/TranslateWebserverUi/data/batchexecute';var _0x4163de,_0xb17a6c;var _0x50c8d2;var _0x333a72={'encoding':_0xd95f('0x42'),'method':_0xd95f('0x37'),'timeout':0x2710,'url':_0x4a6224,'headers':{'Content-Type':_0xd95f('0x43')},'body':_0xd95f('0x44')+encodeURIComponent(JSON[_0xd95f('0x45')]([[[_0xd95f('0x46'),JSON[_0xd95f('0x45')]([_0xa64329,_0xbe5e67||'en',![],_0xd95f('0x47')]),null,_0xd95f('0x48')]]]))};return rp(_0x333a72)[_0xd95f('0x29')](function(_0x1d8ed7){try{_0x50c8d2=eval(_0x1d8ed7['slice'](0x5))[0x0][0x2];}catch(_0x515a5e){throw new Error(_0xd95f('0x49')+_0x1d8ed7[_0xd95f('0x22')]);}if(!_0x50c8d2){if(_0xa64329[_0xd95f('0x4a')]>0xc8){throw new Error(_0xd95f('0x4b'));}else{throw new Error(_0xd95f('0x4c')+_0xbe5e67+_0xd95f('0x4d'));}}try{_0x50c8d2=eval(_0x50c8d2)[0x0];}catch(_0x5cd344){throw new Error('parse\x20response\x20failed:\x0a'+res[_0xd95f('0x22')]);}const _0x4360ad=_0x50c8d2;_0x4163de=path[_0xd95f('0x38')](__dirname,_0xd95f('0x39'),rs[_0xd95f('0x3a')](0x4)+_0xd95f('0x3b'));fs['writeFileSync'](_0x4163de,_0x50c8d2,{'encoding':'base64'});_0xb17a6c=path[_0xd95f('0x38')](__dirname,_0xd95f('0x39'),rs['generate'](0x4)+_0xd95f('0x3f'));return convertFile(_0x4163de,_0xb17a6c);})[_0xd95f('0x29')](function(){try{fs['unlink'](_0x4163de);fs[_0xd95f('0x2a')](_0xb17a6c,'777');}catch(_0x3034cf){logger[_0xd95f('0x1c')](_0x3034cf);}logger[_0xd95f('0x1a')](_0xd95f('0x4e'),_0xb17a6c[_0xd95f('0x2c')]('.')[0x0]);return _0xb17a6c[_0xd95f('0x2c')]('.')[0x0];});};exports['googleASR']=function(_0x13eab4,_0x15dcde,_0x1e6601){return google['asr'](_0x13eab4,_0x15dcde,_0x1e6601)[_0xd95f('0x29')](function(_0x2dc8c7){logger[_0xd95f('0x1a')](_0x2dc8c7['uri']);return rp(_0x2dc8c7);})['then'](function(_0x438242){var _0x437694='';var _0x1c3046=0x0;try{fs[_0xd95f('0x1d')](_0x13eab4);}catch(_0x30bf6b){logger[_0xd95f('0x1c')](_0x30bf6b);}if(_0x438242&&_0x438242[_0xd95f('0x4f')]){_0x437694=_0x438242[_0xd95f('0x4f')][_0xd95f('0x50')](function(_0x27321a){return _0x27321a&&_0x27321a[_0xd95f('0x51')][0x0]&&_0x27321a[_0xd95f('0x51')][0x0]['transcript']?_0x27321a['alternatives'][0x0][_0xd95f('0x52')]:'';})[_0xd95f('0x53')]('\x0a');_0x1c3046=_0x438242[_0xd95f('0x4f')][_0xd95f('0x50')](function(_0x4d9ee7){return _0x4d9ee7&&_0x4d9ee7[_0xd95f('0x51')][0x0]&&_0x4d9ee7['alternatives'][0x0][_0xd95f('0x54')]?_0x4d9ee7['alternatives'][0x0]['confidence']:0x0;})['join']('\x0a');}logger['info'](_0xd95f('0x55'),_0x437694);logger[_0xd95f('0x1a')](_0xd95f('0x56'),_0x1c3046);return{'transcript':_0x437694,'confidence':_0x1c3046};})[_0xd95f('0x57')](function(_0x456273){logger[_0xd95f('0x1c')]('[%s]\x20%s:%s',_0x456273[_0xd95f('0x14')],_0x456273[_0xd95f('0x58')],_0x456273['message']);});};exports[_0xd95f('0x59')]=function(_0x425129,_0x3be73d,_0x22951f,_0x3e7e34){var _0x4fd9d2=apiai(_0x3be73d,{'language':_0x3e7e34||'en'});return _0x4fd9d2[_0xd95f('0x5a')](_0x22951f,{'sessionId':md5(_0x425129)})[_0xd95f('0x29')](function(_0x5863b4){logger[_0xd95f('0x1a')](JSON[_0xd95f('0x45')](_0x5863b4));return{'source':_0x5863b4[_0xd95f('0x5b')][_0xd95f('0x5c')],'resolvedQuery':_0x5863b4[_0xd95f('0x5b')]['resolvedQuery'],'action':_0x5863b4[_0xd95f('0x5b')][_0xd95f('0x5d')],'actionIncomplete':_0x5863b4[_0xd95f('0x5b')][_0xd95f('0x5e')],'speech':_0x5863b4['result']['fulfillment'][_0xd95f('0x5f')],'score':_0x5863b4['result'][_0xd95f('0x60')],'statusCode':_0x5863b4[_0xd95f('0x61')][_0xd95f('0x62')],'endConversation':_0x5863b4[_0xd95f('0x5b')][_0xd95f('0x63')]['endConversation']||![],'isFallbackIntent':_0x5863b4[_0xd95f('0x5b')][_0xd95f('0x63')][_0xd95f('0x64')]};});};exports[_0xd95f('0x65')]=function(_0x590bf7,_0x4396bc,_0x3afa34,_0x554a5e,_0x26e633,_0x19e689){var _0x204749=_0x554a5e[_0xd95f('0x66')](/\\n/g,'\x0a');var _0x10ab07={'credentials':{'private_key':_0x204749,'client_email':_0x3afa34}};var _0x3276c7=new dialogflow[(_0xd95f('0x67'))](_0x10ab07);var _0x20ec07=_0x3276c7[_0xd95f('0x68')](_0x4396bc,md5(_0x590bf7));var _0x3dc547={'session':_0x20ec07,'queryInput':{'text':{'text':_0x26e633,'languageCode':_0x19e689}}};return _0x3276c7[_0xd95f('0x69')](_0x3dc547)[_0xd95f('0x29')](function(_0x24c189){if(_0x24c189&&_0x24c189['length']){logger[_0xd95f('0x1a')](_0xd95f('0x6a'),JSON[_0xd95f('0x45')](_0x24c189));var _0x1e5bf0=_0x24c189[0x0];if(_0x1e5bf0){var _0x973d42={'action':_0x1e5bf0[_0xd95f('0x6b')]['action'],'allRequiredParamsPresent':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x6c')],'endConversation':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x6d')]&&_0x1e5bf0['queryResult'][_0xd95f('0x6d')][_0xd95f('0x6e')]?_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x6d')][_0xd95f('0x6e')][_0xd95f('0x6f')][_0xd95f('0x70')]:![],'fulfillmentText':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x71')],'intentName':_0x1e5bf0[_0xd95f('0x6b')]['intent'][_0xd95f('0x58')],'intentDisplayName':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x72')][_0xd95f('0x73')],'isFallbackIntent':_0x1e5bf0['queryResult'][_0xd95f('0x72')][_0xd95f('0x74')],'languageCode':_0x1e5bf0['queryResult']['languageCode'],'queryText':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x75')],'responseId':_0x1e5bf0[_0xd95f('0x76')],'score':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x77')],'speech':_0x1e5bf0[_0xd95f('0x6b')][_0xd95f('0x71')],'providerResponse':JSON[_0xd95f('0x45')](_0x24c189)};return _0x973d42;}}});};exports[_0xd95f('0x78')]=function(_0x241705,_0xdaec60,_0x2145b3,_0x54aea){return tilde[_0xd95f('0x79')](_0x241705,_0xdaec60,_0x2145b3,_0x54aea)[_0xd95f('0x29')](function(_0x509e78){try{fs[_0xd95f('0x1d')](_0x241705);}catch(_0x1b9d07){logger[_0xd95f('0x1c')](_0x1b9d07);}logger[_0xd95f('0x1a')](_0xd95f('0x7a'),_0x509e78[_0xd95f('0x52')]);logger[_0xd95f('0x1a')](_0xd95f('0x7b'),_0x509e78[_0xd95f('0x54')]);return _0x509e78;});};exports['awsPolly']=function(_0x1c50e2,_0xcb977c,_0x3456a8,_0xcd652e,_0x54f9f0,_0x351b3f){var _0x3ba807=path['resolve'](__dirname,_0xd95f('0x39'),rs[_0xd95f('0x3a')](0x4)+_0xd95f('0x3b'));var _0x547de8;return aws[_0xd95f('0x7c')](_0x1c50e2,_0xcb977c,_0x3456a8,_0xcd652e,_0x54f9f0,_0x351b3f,_0x3ba807)['then'](function(){_0x547de8=path['resolve'](__dirname,_0xd95f('0x39'),rs['generate'](0x4)+_0xd95f('0x3f'));return convertFile(_0x3ba807,_0x547de8);})[_0xd95f('0x29')](function(){try{fs['unlink'](_0x3ba807);fs[_0xd95f('0x2a')](_0x547de8,_0xd95f('0x2b'));}catch(_0x5d217c){logger[_0xd95f('0x1c')](_0x5d217c);}return _0x547de8[_0xd95f('0x2c')]('.')[0x0];});};exports[_0xd95f('0x7d')]=function(_0xf43d8b,_0x2d1e4d,_0x3ba265,_0x27041a,_0x22016c,_0x2f26ab){return aws['lex'](_0xf43d8b,_0x2d1e4d,_0x3ba265,_0x27041a,_0x22016c,_0x2f26ab)['then'](function(_0xdabf23){logger[_0xd95f('0x1a')](JSON[_0xd95f('0x45')](_0xdabf23));return _0xdabf23;});};exports[_0xd95f('0x7e')]=function(_0x3e2dbf,_0x169759,_0x359f7c,_0x32f437){var _0x2df729=util['format'](_0xd95f('0x7f'),ISPEECH_API,_0x3e2dbf,encodeURIComponent(_0x169759),_0x359f7c,_0x32f437);var _0x16a9be=path[_0xd95f('0x38')](__dirname,_0xd95f('0x39'),rs[_0xd95f('0x3a')](0x4)+_0xd95f('0x3b'));var _0x2f887e;return downloadFile(_0x2df729,_0x16a9be)[_0xd95f('0x29')](function(){_0x2f887e=path[_0xd95f('0x38')](__dirname,'tmp',rs['generate'](0x4)+_0xd95f('0x3f'));return convertFile(_0x16a9be,_0x2f887e);})[_0xd95f('0x29')](function(){try{fs[_0xd95f('0x1d')](_0x16a9be);fs['chmodSync'](_0x2f887e,_0xd95f('0x2b'));}catch(_0x21e511){logger[_0xd95f('0x1c')](_0x21e511);}return _0x2f887e['split']('.')[0x0];});};exports['ispeechASR']=function(_0x5a9448,_0x4d913d,_0x5f1493,_0x1e88d5){var _0x39ad8e=util[_0xd95f('0x80')](_0xd95f('0x81'),ISPEECH_API,_0x4d913d,_0x5f1493,base64Encode(_0x5a9448),_0x1e88d5?util[_0xd95f('0x80')]('model=%s',encodeURIComponent(_0x1e88d5)):'freeform=3');return uploadFile(_0x39ad8e)[_0xd95f('0x29')](function(_0x411195){return querystring[_0xd95f('0x9')](_0x411195);});};exports[_0xd95f('0x82')]=function(_0x3eab6b,_0x4df6cd){return sestek[_0xd95f('0x83')](_0x3eab6b,_0x4df6cd)[_0xd95f('0x29')](function(_0x2c236b){logger['info'](JSON[_0xd95f('0x45')](_0x2c236b));var _0x5b96ba={'speech':_0x2c236b['text'],'action':_0x2c236b['channelData']?_0x2c236b['channelData'][_0xd95f('0x84')]:undefined,'actiondata':_0x2c236b['channelData']?_0x2c236b['channelData'][_0xd95f('0x85')]:undefined};if(_0x2c236b[_0xd95f('0x86')]&&_0x2c236b[_0xd95f('0x86')]['AudioFromTts']){return base64Decode(_0x2c236b[_0xd95f('0x86')][_0xd95f('0x87')][_0xd95f('0x88')],path[_0xd95f('0x38')](__dirname,_0xd95f('0x39'),rs['generate'](0x4)+'.wav'))['then'](function(_0x12aaf9){_0x5b96ba['audiofile']=_0x12aaf9;return _0x5b96ba;});}return _0x5b96ba;});};exports[_0xd95f('0x89')]=function(){return __dirname;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab81=['./nda','exports'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xab81,0xf6));var _0x1ab8=function(_0xf9a675,_0x37922a){_0xf9a675=_0xf9a675-0x0;var _0x1f3e0e=_0xab81[_0xf9a675];return _0x1f3e0e;};var nda=require(_0x1ab8('0x0'));module[_0x1ab8('0x1')]={'nda':nda};
\ No newline at end of file
+var _0xfcee=['./nda','exports'];(function(_0x24434b,_0x1b96a1){var _0x38486d=function(_0x6fef2){while(--_0x6fef2){_0x24434b['push'](_0x24434b['shift']());}};_0x38486d(++_0x1b96a1);}(_0xfcee,0x166));var _0xefce=function(_0x25286f,_0x2f3074){_0x25286f=_0x25286f-0x0;var _0x5eabe6=_0xfcee[_0x25286f];return _0x5eabe6;};var nda=require(_0xefce('0x0'));module[_0xefce('0x1')]={'nda':nda};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1978=['ndaactivity_type','message','Nda','uniqueid','callerid','dnid','extension','text','Bearer\x20','access_token','project','ProjectName','ndagenerate_audio','body','channelData','audio/wav','CustomAction','custom_action_data','CustomActionData','stringify','url','../../../../../config/logger','agi','exports','POST','resolve','ndauth_url','password','username','then','ndassistant_url','/api/NaturalDialogAssistant/v1/Run'];(function(_0x49b84b,_0x1775c1){var _0x12a897=function(_0x49849c){while(--_0x49849c){_0x49b84b['push'](_0x49b84b['shift']());}};_0x12a897(++_0x1775c1);}(_0x1978,0x174));var _0x8197=function(_0x17523f,_0x33df4b){_0x17523f=_0x17523f-0x0;var _0x193173=_0x1978[_0x17523f];return _0x193173;};'use strict';var rp=require('request-promise');var url=require(_0x8197('0x0'));var logger=require(_0x8197('0x1'))(_0x8197('0x2'));module[_0x8197('0x3')]=function(_0x203bf1,_0x2828d2){var _0x38fffe={'method':_0x8197('0x4'),'uri':url[_0x8197('0x5')](_0x2828d2[_0x8197('0x6')],'/token'),'form':{'grant_type':_0x8197('0x7'),'username':_0x2828d2[_0x8197('0x8')],'password':_0x2828d2[_0x8197('0x7')]},'json':!![]};return rp(_0x38fffe)[_0x8197('0x9')](function(_0x3e8799){var _0x1bc265={'method':_0x8197('0x4'),'uri':url[_0x8197('0x5')](_0x2828d2[_0x8197('0xa')],_0x8197('0xb')),'body':{'type':_0x2828d2[_0x8197('0xc')]||_0x8197('0xd'),'channelId':_0x8197('0xe'),'conversation':{'id':_0x203bf1[_0x8197('0xf')]},'from':{'id':_0x203bf1[_0x8197('0x10')],'name':_0x203bf1['calleridname']},'recipient':{'id':_0x203bf1[_0x8197('0x11')],'name':_0x203bf1[_0x8197('0x12')]},'text':_0x2828d2[_0x8197('0x13')],'channelData':{}},'headers':{'Authorization':_0x8197('0x14')+_0x3e8799[_0x8197('0x15')]},'json':!![]};if(_0x2828d2[_0x8197('0x16')]){_0x1bc265['body']['channelData'][_0x8197('0x17')]=_0x2828d2[_0x8197('0x16')];}if(_0x2828d2[_0x8197('0x18')]=='1'){_0x1bc265[_0x8197('0x19')][_0x8197('0x1a')]['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0x8197('0x1b')};}if(_0x2828d2['custom_action']){_0x1bc265[_0x8197('0x19')]['channelData'][_0x8197('0x1c')]=_0x2828d2['custom_action'];if(_0x2828d2[_0x8197('0x1d')]){_0x1bc265[_0x8197('0x19')]['channelData'][_0x8197('0x1e')]=_0x2828d2['custom_action_data'];}}logger['info'](JSON[_0x8197('0x1f')](_0x1bc265));return rp(_0x1bc265);});};
\ No newline at end of file
+var _0x7427=['uniqueid','callerid','dnid','Bearer\x20','access_token','body','channelData','ndagenerate_audio','custom_action','CustomAction','custom_action_data','CustomActionData','info','request-promise','url','../../../../../config/logger','agi','POST','resolve','ndauth_url','/token','password','then','ndassistant_url','/api/NaturalDialogAssistant/v1/Run','ndaactivity_type'];(function(_0x397cfb,_0xb8f317){var _0x15fed9=function(_0x3eba43){while(--_0x3eba43){_0x397cfb['push'](_0x397cfb['shift']());}};_0x15fed9(++_0xb8f317);}(_0x7427,0x111));var _0x7742=function(_0x2c69a1,_0x201903){_0x2c69a1=_0x2c69a1-0x0;var _0x24bb91=_0x7427[_0x2c69a1];return _0x24bb91;};'use strict';var rp=require(_0x7742('0x0'));var url=require(_0x7742('0x1'));var logger=require(_0x7742('0x2'))(_0x7742('0x3'));module['exports']=function(_0x3b6268,_0x1bfe63){var _0x49ff50={'method':_0x7742('0x4'),'uri':url[_0x7742('0x5')](_0x1bfe63[_0x7742('0x6')],_0x7742('0x7')),'form':{'grant_type':_0x7742('0x8'),'username':_0x1bfe63['username'],'password':_0x1bfe63['password']},'json':!![]};return rp(_0x49ff50)[_0x7742('0x9')](function(_0xd21f94){var _0x3c6ceb={'method':_0x7742('0x4'),'uri':url[_0x7742('0x5')](_0x1bfe63[_0x7742('0xa')],_0x7742('0xb')),'body':{'type':_0x1bfe63[_0x7742('0xc')]||'message','channelId':'Nda','conversation':{'id':_0x3b6268[_0x7742('0xd')]},'from':{'id':_0x3b6268[_0x7742('0xe')],'name':_0x3b6268['calleridname']},'recipient':{'id':_0x3b6268[_0x7742('0xf')],'name':_0x3b6268['extension']},'text':_0x1bfe63['text'],'channelData':{}},'headers':{'Authorization':_0x7742('0x10')+_0xd21f94[_0x7742('0x11')]},'json':!![]};if(_0x1bfe63['project']){_0x3c6ceb[_0x7742('0x12')][_0x7742('0x13')]['ProjectName']=_0x1bfe63['project'];}if(_0x1bfe63[_0x7742('0x14')]=='1'){_0x3c6ceb['body']['channelData']['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':'audio/wav'};}if(_0x1bfe63[_0x7742('0x15')]){_0x3c6ceb['body']['channelData'][_0x7742('0x16')]=_0x1bfe63['custom_action'];if(_0x1bfe63[_0x7742('0x17')]){_0x3c6ceb[_0x7742('0x12')][_0x7742('0x13')][_0x7742('0x18')]=_0x1bfe63[_0x7742('0x17')];}}logger[_0x7742('0x19')](JSON['stringify'](_0x3c6ceb));return rp(_0x3c6ceb);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8b1=['exports','./lib/api'];(function(_0x46b22a,_0x5bf83a){var _0x44c2e8=function(_0x21b6fc){while(--_0x21b6fc){_0x46b22a['push'](_0x46b22a['shift']());}};_0x44c2e8(++_0x5bf83a);}(_0xc8b1,0x17f));var _0x1c8b=function(_0x41cfac,_0x3e5713){_0x41cfac=_0x41cfac-0x0;var _0x54d5c9=_0xc8b1[_0x41cfac];return _0x54d5c9;};'use strict';var asr=require(_0x1c8b('0x0'));module[_0x1c8b('0x1')]=function(_0x30565c,_0x332cc7,_0x33bba7,_0x18ee3d){return asr(_0x30565c,_0x332cc7,_0x33bba7,_0x18ee3d);};
\ No newline at end of file
+var _0x3294=['exports','./lib/api'];(function(_0x3fc8d3,_0x3c21ca){var _0x195eed=function(_0x2f563b){while(--_0x2f563b){_0x3fc8d3['push'](_0x3fc8d3['shift']());}};_0x195eed(++_0x3c21ca);}(_0x3294,0x8f));var _0x4329=function(_0x3508e4,_0x4c6cfe){_0x3508e4=_0x3508e4-0x0;var _0xfc8f93=_0x3294[_0x3508e4];return _0xfc8f93;};'use strict';var asr=require(_0x4329('0x0'));module[_0x4329('0x1')]=function(_0x2f241a,_0x5de3da,_0x2080dd,_0x457c32){return asr(_0x2f241a,_0x5de3da,_0x2080dd,_0x457c32);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf308=['data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','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.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','isNil','open','message','bluebird','lodash','moment','crypto','agi','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','send','stringify','createReadStream'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf308,0x188));var _0x8f30=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf308[_0x321bb2];return _0x9c12ed;};'use strict';var BPromise=require(_0x8f30('0x0'));var _=require(_0x8f30('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x8f30('0x2'));var crypto=require(_0x8f30('0x3'));var logger=require('../../../../../../config/logger')(_0x8f30('0x4'));module['exports']=function(_0x33087b,_0x579670,_0x2f13aa,_0xcbbe8c){return new BPromise(function(_0x14f5c9,_0x9c6195){logger[_0x8f30('0x5')](_0x8f30('0x6'),_0xcbbe8c||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0x4f07d4=new WebSocket(_0xcbbe8c||_0x8f30('0x7'),{'perMessageDeflate':![]});var _0x356d0b='';var _0x2a8206='0';var _0x1c5f09='1';var _0x12b9ca=_0x8f30('0x8');function _0x5aef81(_0x220376){var _0x5efbe8=crypto[_0x8f30('0x9')](_0x8f30('0xa'));_0x5efbe8[_0x8f30('0xb')](_0x220376);return _0x5efbe8[_0x8f30('0xc')](_0x8f30('0xd'));}function _0x5e7a5b(){try{logger[_0x8f30('0x5')](_0x8f30('0xe'));var _0x4b4308=moment()['unix']();var _0x1017e8=_0x5aef81(_0x4b4308+_0x579670+_0x2f13aa);_0x4f07d4[_0x8f30('0xf')](JSON[_0x8f30('0x10')]({'appID':_0x579670,'timestamp':_0x4b4308,'appKey':_0x1017e8}));var _0x4e7bd0=fs[_0x8f30('0x11')](_0x33087b);_0x4e7bd0['on'](_0x8f30('0x12'),function(_0x5f38e3){_0x4f07d4[_0x8f30('0xf')](_0x5f38e3);});_0x4e7bd0['on'](_0x8f30('0x13'),function(){_0x4f07d4[_0x8f30('0xf')](_0x8f30('0x14'));});}catch(_0x2c9042){logger[_0x8f30('0x15')](_0x8f30('0x16'),JSON[_0x8f30('0x10')](_0x2c9042));_0x4f07d4[_0x8f30('0x17')]();}}function _0x5eff8f(_0x595026){try{if(_0x595026){var _0xa19fd9=JSON[_0x8f30('0x18')](_0x595026);switch(_0xa19fd9[_0x8f30('0x19')]){case 0x0:if(_0xa19fd9[_0x8f30('0x1a')]){if(_0xa19fd9[_0x8f30('0x1a')][_0x8f30('0x1b')]){logger[_0x8f30('0x5')](_0x8f30('0x1c'),JSON[_0x8f30('0x10')](_0xa19fd9['result'][_0x8f30('0x1d')]));_0x356d0b=_0xa19fd9['result']['hypotheses'][0x0][_0x8f30('0x1e')];_0x2a8206=_0xa19fd9['result'][_0x8f30('0x1d')][0x0][_0x8f30('0x1f')];_0x1c5f09='0';_0x12b9ca='Success.';_0x4f07d4[_0x8f30('0x17')]();}}break;case 0x1:logger[_0x8f30('0x5')](_0x8f30('0x8'));_0x1c5f09='1';_0x12b9ca=_0x8f30('0x8');break;case 0x2:logger[_0x8f30('0x5')](_0x8f30('0x20'));_0x1c5f09='2';_0x12b9ca=_0x8f30('0x20');break;case 0x9:logger['info'](_0x8f30('0x21'));_0x1c5f09='9';_0x12b9ca=_0x8f30('0x21');break;case 0xa:logger[_0x8f30('0x5')](_0x8f30('0x22'));_0x1c5f09='10';_0x12b9ca=_0x8f30('0x22');break;case 0xb:logger['info'](_0x8f30('0x23'));_0x1c5f09='11';_0x12b9ca='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x302fe2){logger[_0x8f30('0x15')](_0x8f30('0x24'),JSON[_0x8f30('0x10')](_0x302fe2));_0x4f07d4['terminate']();}}function _0x5da8bd(){logger[_0x8f30('0x5')](_0x8f30('0x25'));_0x14f5c9({'transcript':_0x356d0b,'confidence':_0x2a8206,'status':_0x1c5f09,'status_message':_0x12b9ca});}function _0x5aa8ae(_0x45cd94){logger[_0x8f30('0x15')]('Error\x20Tilde\x20ASR\x20socket');if(!_[_0x8f30('0x26')](_0x45cd94)){logger[_0x8f30('0x15')](_['isObject'](_0x45cd94)?JSON[_0x8f30('0x10')](_0x45cd94):_0x45cd94);}}_0x4f07d4['on'](_0x8f30('0x27'),_0x5e7a5b);_0x4f07d4['on'](_0x8f30('0x28'),_0x5eff8f);_0x4f07d4['on'](_0x8f30('0x13'),_0x5da8bd);_0x4f07d4['on'](_0x8f30('0x15'),_0x5aa8ae);});};
\ No newline at end of file
+var _0xe84f=['data','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final','hypotheses','transcript','likelihood','Success.','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message','bluebird','lodash','moment','crypto','../../../../../../config/logger','agi','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','info','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0xe84f,0x120));var _0xfe84=function(_0x28670c,_0x2a82b2){_0x28670c=_0x28670c-0x0;var _0x406828=_0xe84f[_0x28670c];return _0x406828;};'use strict';var BPromise=require(_0xfe84('0x0'));var _=require(_0xfe84('0x1'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0xfe84('0x2'));var crypto=require(_0xfe84('0x3'));var logger=require(_0xfe84('0x4'))(_0xfe84('0x5'));module['exports']=function(_0x569988,_0x264dd3,_0x5e741e,_0x3ce0c5){return new BPromise(function(_0x78ce8d,_0x42904b){logger['info'](_0xfe84('0x6'),_0x3ce0c5||'wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE');var _0x239267=new WebSocket(_0x3ce0c5||_0xfe84('0x7'),{'perMessageDeflate':![]});var _0x1a1d9f='';var _0x5c2006='0';var _0x5f4a27='1';var _0x3e77e5=_0xfe84('0x8');function _0x5012be(_0x39f544){var _0x233c7f=crypto[_0xfe84('0x9')](_0xfe84('0xa'));_0x233c7f[_0xfe84('0xb')](_0x39f544);return _0x233c7f[_0xfe84('0xc')](_0xfe84('0xd'));}function _0x781b9a(){try{logger[_0xfe84('0xe')](_0xfe84('0xf'));var _0xbfeb97=moment()[_0xfe84('0x10')]();var _0x3907c3=_0x5012be(_0xbfeb97+_0x264dd3+_0x5e741e);_0x239267[_0xfe84('0x11')](JSON[_0xfe84('0x12')]({'appID':_0x264dd3,'timestamp':_0xbfeb97,'appKey':_0x3907c3}));var _0x46ecda=fs[_0xfe84('0x13')](_0x569988);_0x46ecda['on'](_0xfe84('0x14'),function(_0x12dd58){_0x239267[_0xfe84('0x11')](_0x12dd58);});_0x46ecda['on'](_0xfe84('0x15'),function(){_0x239267[_0xfe84('0x11')](_0xfe84('0x16'));});}catch(_0x3193b3){logger[_0xfe84('0x17')](_0xfe84('0x18'),JSON[_0xfe84('0x12')](_0x3193b3));_0x239267[_0xfe84('0x19')]();}}function _0xe59118(_0x2ea786){try{if(_0x2ea786){var _0x2df198=JSON[_0xfe84('0x1a')](_0x2ea786);switch(_0x2df198[_0xfe84('0x1b')]){case 0x0:if(_0x2df198['result']){if(_0x2df198[_0xfe84('0x1c')][_0xfe84('0x1d')]){logger[_0xfe84('0xe')]('Tilde\x20ASR\x20hypoteses',JSON[_0xfe84('0x12')](_0x2df198[_0xfe84('0x1c')]['hypotheses']));_0x1a1d9f=_0x2df198[_0xfe84('0x1c')][_0xfe84('0x1e')][0x0][_0xfe84('0x1f')];_0x5c2006=_0x2df198[_0xfe84('0x1c')][_0xfe84('0x1e')][0x0][_0xfe84('0x20')];_0x5f4a27='0';_0x3e77e5=_0xfe84('0x21');_0x239267['terminate']();}}break;case 0x1:logger[_0xfe84('0xe')](_0xfe84('0x8'));_0x5f4a27='1';_0x3e77e5=_0xfe84('0x8');break;case 0x2:logger[_0xfe84('0xe')]('Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.');_0x5f4a27='2';_0x3e77e5=_0xfe84('0x22');break;case 0x9:logger['info'](_0xfe84('0x23'));_0x5f4a27='9';_0x3e77e5=_0xfe84('0x23');break;case 0xa:logger[_0xfe84('0xe')](_0xfe84('0x24'));_0x5f4a27='10';_0x3e77e5='Authentication\x20failed.';break;case 0xb:logger[_0xfe84('0xe')]('All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.');_0x5f4a27='11';_0x3e77e5='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x154482){logger[_0xfe84('0x17')](_0xfe84('0x25'),JSON['stringify'](_0x154482));_0x239267['terminate']();}}function _0x25ecf6(){logger[_0xfe84('0xe')](_0xfe84('0x26'));_0x78ce8d({'transcript':_0x1a1d9f,'confidence':_0x5c2006,'status':_0x5f4a27,'status_message':_0x3e77e5});}function _0xb57cb2(_0x57a015){logger['error'](_0xfe84('0x27'));if(!_[_0xfe84('0x28')](_0x57a015)){logger['error'](_[_0xfe84('0x29')](_0x57a015)?JSON[_0xfe84('0x12')](_0x57a015):_0x57a015);}}_0x239267['on'](_0xfe84('0x2a'),_0x781b9a);_0x239267['on'](_0xfe84('0x2b'),_0xe59118);_0x239267['on'](_0xfe84('0x15'),_0x25ecf6);_0x239267['on']('error',_0xb57cb2);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a96=['exports','./asr'];(function(_0x2c4440,_0x4fe366){var _0x20f1dd=function(_0x7495a5){while(--_0x7495a5){_0x2c4440['push'](_0x2c4440['shift']());}};_0x20f1dd(++_0x4fe366);}(_0x8a96,0xad));var _0x68a9=function(_0x11e60a,_0x43ac19){_0x11e60a=_0x11e60a-0x0;var _0x173974=_0x8a96[_0x11e60a];return _0x173974;};var asr=require(_0x68a9('0x0'));module[_0x68a9('0x1')]={'asr':asr};
\ No newline at end of file
+var _0xa95c=['exports','./asr'];(function(_0x5616ae,_0x20fd92){var _0x550b5f=function(_0x2bb3fa){while(--_0x2bb3fa){_0x5616ae['push'](_0x5616ae['shift']());}};_0x550b5f(++_0x20fd92);}(_0xa95c,0x85));var _0xca95=function(_0x5a2fba,_0x1b4272){_0x5a2fba=_0x5a2fba-0x0;var _0x3ce001=_0xa95c[_0x5a2fba];return _0x3ce001;};var asr=require(_0xca95('0x0'));module[_0xca95('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccb7=['./error','./channel','call','error','E_AGI_ARGUMENT_PORT','createServer','listen','listening','emit','connection','getConnections','E_AGI_SERVER_ERROR','destroy','E_AGI_SERVER_MAXCONNECTION','code','close','E_AGI_SERVER_CLOSE','nextTick','inherits','exports','util','net','events'];(function(_0xeab333,_0x117d75){var _0x5e38bf=function(_0x58bcef){while(--_0x58bcef){_0xeab333['push'](_0xeab333['shift']());}};_0x5e38bf(++_0x117d75);}(_0xccb7,0x184));var _0x7ccb=function(_0x439fbc,_0x184113){_0x439fbc=_0x439fbc-0x0;var _0x27b400=_0xccb7[_0x439fbc];return _0x27b400;};'use strict';var util=require(_0x7ccb('0x0'));var net=require(_0x7ccb('0x1'));var EventEmitter=require(_0x7ccb('0x2'))['EventEmitter'];var AGIError=require(_0x7ccb('0x3'));var AGIChannel=require(_0x7ccb('0x4'));var AGIServer=function(_0x505d2b,_0x3305ae,_0x51ac73){var _0x2e8361=this,_0x505d2b=_0x505d2b||0x11dd,_0x3305ae=_0x3305ae||'127.0.0.1',_0x36cc6f=null,_0x26f0ae=0x0;EventEmitter[_0x7ccb('0x5')](_0x2e8361);function _0x4c22e2(){if(!_0x505d2b){_0x2e8361['emit'](_0x7ccb('0x6'),new AGIError(_0x7ccb('0x7')));return![];}_0x36cc6f=net[_0x7ccb('0x8')]();_0x36cc6f[_0x7ccb('0x9')](_0x505d2b,_0x3305ae);_0x36cc6f['on'](_0x7ccb('0xa'),function(){_0x2e8361[_0x7ccb('0xb')]('listening');});_0x36cc6f['on'](_0x7ccb('0xc'),function(_0x2a1b40){_0x36cc6f[_0x7ccb('0xd')](function(_0x52f3ff,_0x55f8f2){if(_0x52f3ff){_0x2e8361['emit'](_0x7ccb('0x6'),new AGIError(_0x7ccb('0xe'),_0x52f3ff));}else if(_0x51ac73&&_0x51ac73<0x0){_0x2e8361[_0x7ccb('0xb')](_0x7ccb('0x6'),new AGIError('E_AGI_SERVER_VOICE_DISABLED'));_0x2a1b40[_0x7ccb('0xf')]();}else if(_0x51ac73&&_0x51ac73>0x0&&_0x51ac73<_0x55f8f2){_0x26f0ae+=0x1;_0x2e8361[_0x7ccb('0xb')](_0x7ccb('0x6'),new AGIError(_0x7ccb('0x10'),_0x26f0ae));_0x2a1b40['destroy']();}else{var _0x3e8fb7=new AGIChannel(_0x2a1b40);_0x3e8fb7['on']('ready',function(){_0x2e8361['emit'](_0x7ccb('0xc'),_0x3e8fb7);});}});});_0x36cc6f['on'](_0x7ccb('0x6'),function(_0x18977b){_0x2e8361[_0x7ccb('0xb')]('error',new AGIError(_0x7ccb('0xe'),_0x18977b[_0x7ccb('0x11')]));});_0x36cc6f['on'](_0x7ccb('0x12'),function(){_0x2e8361[_0x7ccb('0xb')](_0x7ccb('0x12'),new AGIError(_0x7ccb('0x13')));});}process[_0x7ccb('0x14')](function(){_0x4c22e2();});};util[_0x7ccb('0x15')](AGIServer,EventEmitter);module[_0x7ccb('0x16')]=function(_0x2b7544,_0x283f4e,_0x4f631e){return new AGIServer(_0x2b7544,_0x283f4e,_0x4f631e);};
\ No newline at end of file
+var _0x4d79=['exports','util','net','events','./error','127.0.0.1','call','emit','E_AGI_ARGUMENT_PORT','createServer','listen','listening','connection','getConnections','error','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','ready','E_AGI_SERVER_ERROR','code','close','inherits'];(function(_0x529296,_0x1a6a23){var _0x1796bf=function(_0x3cae53){while(--_0x3cae53){_0x529296['push'](_0x529296['shift']());}};_0x1796bf(++_0x1a6a23);}(_0x4d79,0xb9));var _0x94d7=function(_0x5beda8,_0x1e8554){_0x5beda8=_0x5beda8-0x0;var _0x2aa042=_0x4d79[_0x5beda8];return _0x2aa042;};'use strict';var util=require(_0x94d7('0x0'));var net=require(_0x94d7('0x1'));var EventEmitter=require(_0x94d7('0x2'))['EventEmitter'];var AGIError=require(_0x94d7('0x3'));var AGIChannel=require('./channel');var AGIServer=function(_0x388dac,_0x5cbe2a,_0x19ee3c){var _0x5095a1=this,_0x388dac=_0x388dac||0x11dd,_0x5cbe2a=_0x5cbe2a||_0x94d7('0x4'),_0x5a5f53=null,_0x353e9e=0x0;EventEmitter[_0x94d7('0x5')](_0x5095a1);function _0xdfedc3(){if(!_0x388dac){_0x5095a1[_0x94d7('0x6')]('error',new AGIError(_0x94d7('0x7')));return![];}_0x5a5f53=net[_0x94d7('0x8')]();_0x5a5f53[_0x94d7('0x9')](_0x388dac,_0x5cbe2a);_0x5a5f53['on'](_0x94d7('0xa'),function(){_0x5095a1[_0x94d7('0x6')](_0x94d7('0xa'));});_0x5a5f53['on'](_0x94d7('0xb'),function(_0x2fdd54){_0x5a5f53[_0x94d7('0xc')](function(_0x47437b,_0x20a14b){if(_0x47437b){_0x5095a1[_0x94d7('0x6')](_0x94d7('0xd'),new AGIError('E_AGI_SERVER_ERROR',_0x47437b));}else if(_0x19ee3c&&_0x19ee3c<0x0){_0x5095a1[_0x94d7('0x6')]('error',new AGIError(_0x94d7('0xe')));_0x2fdd54[_0x94d7('0xf')]();}else if(_0x19ee3c&&_0x19ee3c>0x0&&_0x19ee3c<_0x20a14b){_0x353e9e+=0x1;_0x5095a1['emit']('error',new AGIError(_0x94d7('0x10'),_0x353e9e));_0x2fdd54[_0x94d7('0xf')]();}else{var _0xeba8bd=new AGIChannel(_0x2fdd54);_0xeba8bd['on'](_0x94d7('0x11'),function(){_0x5095a1[_0x94d7('0x6')](_0x94d7('0xb'),_0xeba8bd);});}});});_0x5a5f53['on'](_0x94d7('0xd'),function(_0x31f11b){_0x5095a1[_0x94d7('0x6')](_0x94d7('0xd'),new AGIError(_0x94d7('0x12'),_0x31f11b[_0x94d7('0x13')]));});_0x5a5f53['on'](_0x94d7('0x14'),function(){_0x5095a1[_0x94d7('0x6')](_0x94d7('0x14'),new AGIError('E_AGI_SERVER_CLOSE'));});}process['nextTick'](function(){_0xdfedc3();});};util[_0x94d7('0x15')](AGIServer,EventEmitter);module[_0x94d7('0x16')]=function(_0x2a40f7,_0x21a88c,_0x9e73e7){return new AGIServer(_0x2a40f7,_0x21a88c,_0x9e73e7);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x566f=['Enter\x20in\x20MRCPSynth\x20(%s)\x20block','noop','MRCPSynth','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','grammar','no\x20grammar\x20configured','MRCPRecog','RECOG_CONFIDENCE()','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','timeout','Wait\x20%s\x20seconds\x20before\x20answer','wait','Enter\x20in\x20CALLBACK\x20(%s)\x20block','list_id','no\x20list\x20selected','delay','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','custom_app','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','Executed\x20command\x20%s\x20%s','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','no\x20text\x20configured','sestektts','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_INSTANCE','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','SESTEK_ASR_INSTANCE','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','no\x20database\x20selected','odbc_id','no\x20odbc\x20database\x20found','query','no\x20query\x20configured','query:\x20%s','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','keys','forEach','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','dial','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','no\x20user\x20selected','sip_id','no\x20user\x20found','DIAL','SIP/%s','opts','Executed\x20command\x20%s','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','bot','Trying\x20Dialogflow:\x20%s','speech','out','Dialogflow\x20Result\x20%s','dialogflowV2','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','no\x20project_id\x20configured','no\x20private_key\x20configured','Trying\x20DialogflowV2:\x20%s','providerResponse','DIALOGFLOW_%s','DialogflowV2\x20Result\x20%s','sesteknda','ndauth_url','no\x20ndauth\x20url\x20configured','username','password','no\x20password\x20configured','Trying\x20SestekNDA:\x20%s','SESTEK_NDA_%s','audiofile','Sestek\x20NDA\x20%s\x20file\x20created','unlink','.wav','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','Enter\x20in\x20END\x20(%s)\x20block','end','ext_dial','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','SIP/%s/%s','Enter\x20in\x20FINALLY\x20(%s)\x20block','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20found','getData','maxdigit','mindigit','hiddendigitsnum','generate','first','substr','getsecretdigits','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','Enter\x20in\x20GOAL\x20(%s)\x20block','goalname','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20%s\x20file\x20created','streamFile','aws\x20Polly\x20is\x20unreachable','awslex','no\x20valid\x20credentials\x20configured','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','Amazon\x20Lex\x20ready\x20for\x20fulfillment','message','amazonlex','Amazon\x20Lex\x20is\x20unreachable','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','no\x20key\x20configured','%s/recordings/%s','beep','NOBEEP','recordFile','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','GoogleASR\x20Result\x20%s','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','wav','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','TildeASR\x20Result\x20%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','priority','gotoif','no\x20condition\x20configured','condition','false','EVAL\x20CONDITION\x20%s\x20%s','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','no\x20interval\x20configured','interval_id','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','true','Enter\x20in\x20HANGUP\x20(%s)\x20block','hangup','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','ispeechtts','Trying\x20ispeech\x20TTS\x20%s','login','Enter\x20in\x20LOGIN\x20(%s)\x20block','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','findBy','success','failure','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','AGENT\x20%s\x20NOT\x20FOUND\x20BY','Enter\x20in\x20MATH\x20(%s)\x20block','math\x20%s','operation','variable\x20%s[key]\x20set','no\x20file\x20audio\x20selected','response','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','getPause','pause_id','agentPause','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','queue_id','no\x20queue\x20selected','indexOf','toLowerCase','QUEUE','macro','gosub','position','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','%s/recordings/%s.%s','escape_digits','restapi','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','200','%s_STATUS_MESSAGE','statusMessage','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','sayDigits','digits','saynumber','sayphonetic','sayPhonetic','sendMail','no\x20mail\x20account\x20configured','account_id','Smtp','\x22%s\x22\x20<%s>','user','subject','service','host','port','secure','auth','template_id','sendMail\x20message','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','no\x20variable\x20selected','start','START\x20CALLY\x20SQUARE','Answer','Skipped\x20Answer','subproject','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','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','system','Enter\x20in\x20SYSTEM\x20(%s)\x20block','command','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20is\x20unreachable','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Google\x20TTS\x20is\x20unreachable','unpause','VOICEMAIL','mailbox','vswitch','join','exports','path','util','lodash','shelljs','odbc','randomstring','moment','mustache','../../config/logger','agi','../../config/environment','./scripts','rawHeaders','rawBody','menu','getdigits','channel','rpc','mailRpc','getVariable','getVariableById','then','name','prototype','getVoiceQueue','catch','getSquareOdbc','getSquareOdbcById','dsn','getUser','getUserById','getTrunk','getTrunkById','getSound','getSoundById','getSoundPath','save_name','getMailAccount','getMailAccountById','sendMailMessage','getIntervalById','IntervalId','interval','map','Intervals','format','%s/sounds/converted/%s','getQueryOdbc','open','Error\x20getting\x20ODBC\x20connection\x20%s','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','getSmsAccount','createSmsMessage','createSquareDetailsReport','label','agicommand','callerid','createSquareRecording','calleridname','context','dnid','arg_1','createSquareMessage','uniqueid','createCmContact','isEmpty','isNil','callback_','random','lastName','phone','scheduledAt','callback','Callback\x20scheduled\x20at\x20','callback_priority','agent','agentUnpause','error','agentLogout','agentLogin','%s/%s@from-sip/n','LOCAL','shellCommand','exec','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','text','en-US','MALE','audioEncoding','MP3','googleTTS','google_tts_language','restAPI','url','method','number','includes','PUT','toUpperCase','body','parse','headers','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','computedVariables','sync','uri','render','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','client_email','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','isConfigured','model','awsPolly','aws_secret_access_key','aws_polly_voice','Amy','aws_text_type','awsLex','aws_access_key_id','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','appsecret','clear','clone','hasOwnProperty','replaceObjectAllVariables','replaceAllVariables','isPlainObject','recursiveNodeIndex','isArray','length','isString','saveRestApiResult','%s.%s','setVariable','split','replaceAll','toString','getAndSetVariable','result','extra','maxRetry','retry','mrcpsynth','info'];(function(_0x2219a9,_0x50c3c3){var _0x1350de=function(_0x37913c){while(--_0x37913c){_0x2219a9['push'](_0x2219a9['shift']());}};_0x1350de(++_0x50c3c3);}(_0x566f,0x124));var _0xf566=function(_0x1eae73,_0x5a029b){_0x1eae73=_0x1eae73-0x0;var _0x2714dc=_0x566f[_0x1eae73];return _0x2714dc;};'use strict';var fs=require('fs');var path=require(_0xf566('0x0'));var util=require(_0xf566('0x1'));var _=require(_0xf566('0x2'));var sh=require(_0xf566('0x3'));var odbc=require(_0xf566('0x4'))();var rs=require(_0xf566('0x5'));var moment=require(_0xf566('0x6'));var Mustache=require(_0xf566('0x7'));var rp=require('request-promise');var logger=require(_0xf566('0x8'))(_0xf566('0x9'));var config=require(_0xf566('0xa'));var scripts=require(_0xf566('0xb'));var FILES_PATH='/var/opt/motion2/server/files';var recursiveMapAttributes=[_0xf566('0xc'),_0xf566('0xd')];var verticesWithRetry=[_0xf566('0xe'),_0xf566('0xf'),'getsecretdigits'];var AGIVertices=function(_0x2dd9f6,_0x5bf147,_0x112610){this[_0xf566('0x10')]=_0x2dd9f6;this[_0xf566('0x11')]=_0x5bf147;this[_0xf566('0x12')]=_0x112610;};AGIVertices['prototype'][_0xf566('0x13')]=function(_0x45e1e6,_0x43ab5e){this[_0xf566('0x11')][_0xf566('0x14')](_0x45e1e6)[_0xf566('0x15')](function(_0x4aec5b){_0x43ab5e(null,_0x4aec5b?_0x4aec5b[_0xf566('0x16')]:![]);})['catch'](function(_0x1c1e09){_0x43ab5e(_0x1c1e09);});};AGIVertices[_0xf566('0x17')][_0xf566('0x18')]=function(_0x2a1b61,_0x5acc16){this[_0xf566('0x11')]['getVoiceQueueById'](_0x2a1b61)['then'](function(_0x1bce97){_0x5acc16(null,_0x1bce97?_0x1bce97[_0xf566('0x16')]:![]);})['catch'](function(_0xc3f761){_0x5acc16(_0xc3f761);});};AGIVertices[_0xf566('0x17')]['getSquareProject']=function(_0x713a97,_0x5e208d){this[_0xf566('0x11')]['getSquareProjectById'](_0x713a97)[_0xf566('0x15')](function(_0xfb589a){_0x5e208d(null,_0xfb589a?_0xfb589a['name']:![]);})[_0xf566('0x19')](function(_0xda0dba){_0x5e208d(_0xda0dba);});};AGIVertices[_0xf566('0x17')][_0xf566('0x1a')]=function(_0x53351c,_0x21c6ba){this[_0xf566('0x11')][_0xf566('0x1b')](_0x53351c)['then'](function(_0x304f41){_0x21c6ba(null,_0x304f41?_0x304f41[_0xf566('0x1c')]:![]);})[_0xf566('0x19')](function(_0x17fc3b){_0x21c6ba(_0x17fc3b);});};AGIVertices[_0xf566('0x17')][_0xf566('0x1d')]=function(_0x2ff105,_0x1cd9d3){this[_0xf566('0x11')][_0xf566('0x1e')](_0x2ff105)[_0xf566('0x15')](function(_0x4f2a3d){_0x1cd9d3(null,_0x4f2a3d?_0x4f2a3d[_0xf566('0x16')]:![]);})[_0xf566('0x19')](function(_0x54a2c8){_0x1cd9d3(_0x54a2c8);});};AGIVertices[_0xf566('0x17')][_0xf566('0x1f')]=function(_0x2e1b4f,_0x37ae11){this[_0xf566('0x11')][_0xf566('0x20')](_0x2e1b4f)[_0xf566('0x15')](function(_0x575113){_0x37ae11(null,_0x575113?_0x575113['name']:![]);})[_0xf566('0x19')](function(_0x368fa0){_0x37ae11(_0x368fa0);});};AGIVertices[_0xf566('0x17')][_0xf566('0x21')]=function(_0x27bbb2,_0x1ae085){var _0x4f61ea=this;this[_0xf566('0x11')][_0xf566('0x22')](_0x27bbb2)[_0xf566('0x15')](function(_0x47b559){_0x1ae085(null,_0x47b559?_0x4f61ea[_0xf566('0x23')](_0x47b559[_0xf566('0x24')]):![]);})['catch'](function(_0x440308){_0x1ae085(_0x440308);});};AGIVertices[_0xf566('0x17')][_0xf566('0x25')]=function(_0x527669,_0x44fbcc){this[_0xf566('0x11')][_0xf566('0x26')](_0x527669)['then'](function(_0x3f885d){_0x44fbcc(null,_0x3f885d?_0x3f885d:![]);})[_0xf566('0x19')](function(_0x5694b0){_0x44fbcc(_0x5694b0);});};AGIVertices['prototype'][_0xf566('0x27')]=function(_0x23d328,_0x2043f2,_0x2a1026){this[_0xf566('0x12')][_0xf566('0x27')](_0x23d328,_0x2043f2)[_0xf566('0x15')](function(){_0x2a1026(null);})[_0xf566('0x19')](function(_0x2d7de5){_0x2a1026(_0x2d7de5);});};AGIVertices[_0xf566('0x17')]['getIntervals']=function(_0x39f379,_0x4b53dc){this[_0xf566('0x11')][_0xf566('0x28')](_0x39f379)[_0xf566('0x15')](function(_0x113a02){if(_0x113a02){if(_0x113a02[_0xf566('0x29')]){_0x4b53dc(null,[_0x113a02[_0xf566('0x2a')]]);}else{_0x4b53dc(null,_[_0xf566('0x2b')](_0x113a02[_0xf566('0x2c')],_0xf566('0x2a')));}}else{_0x4b53dc(null,![]);}})[_0xf566('0x19')](function(_0x385fd1){_0x4b53dc(_0x385fd1);});};AGIVertices[_0xf566('0x17')][_0xf566('0x23')]=function(_0x44424b){return util[_0xf566('0x2d')](_0xf566('0x2e'),FILES_PATH,_0x44424b);};AGIVertices[_0xf566('0x17')][_0xf566('0x2f')]=function(_0x134bf4,_0x6c3b3e,_0x838a5b){odbc[_0xf566('0x30')](_0x134bf4,function(_0xe9f91e){if(_0xe9f91e){logger['error'](_0xf566('0x31'),_0xe9f91e);_0x838a5b(_0xe9f91e);}else{logger['info']('ODBC\x20connection\x20successfully');odbc['query'](_0x6c3b3e,function(_0x44e05a,_0x4bcf98){if(_0x44e05a){logger['info'](_0xf566('0x32'),_0x6c3b3e);_0x838a5b(_0x44e05a);}else{logger['info'](_0xf566('0x33'),_0x6c3b3e);odbc['close'](function(_0x311fa7){if(_0x311fa7){logger['error']('Error\x20closing\x20connection\x20to\x20odbc\x20%s',_0x311fa7);}_0x838a5b(null,_0x4bcf98);});}});}});};AGIVertices[_0xf566('0x17')][_0xf566('0x34')]=function(_0xdabd78,_0x47eb90){this[_0xf566('0x11')]['getSmsAccountById'](_0xdabd78)['then'](function(_0x44533f){_0x47eb90(null,_0x44533f?_0x44533f:![]);})[_0xf566('0x19')](function(_0x57fecf){_0x47eb90(_0x57fecf);});};AGIVertices[_0xf566('0x17')][_0xf566('0x35')]=function(_0x44b6b7,_0x26574d){this[_0xf566('0x11')]['createSmsMessage'](_0x44b6b7)['then'](function(_0x1444f5){_0x26574d(null,_0x1444f5);})[_0xf566('0x19')](function(_0x3caabe){_0x26574d(_0x3caabe);});};AGIVertices[_0xf566('0x17')]['createSquareDetailsReport']=function(_0x2c1930,_0x2554af,_0x1a3bbc){this[_0xf566('0x11')][_0xf566('0x36')]({'uniqueid':this[_0xf566('0x10')]['uniqueid'],'node':_0x2c1930[_0xf566('0x37')],'application':_0x2c1930[_0xf566('0x38')],'data':_0x2554af||null,'project_name':this['channel']['arg_1'],'callerid':this['channel'][_0xf566('0x39')]})[_0xf566('0x15')](function(_0x29ba5c){if(_0x1a3bbc){_0x1a3bbc(null,_0x29ba5c);}})[_0xf566('0x19')](function(_0x1f9648){if(_0x1a3bbc){_0x1a3bbc(_0x1f9648);}});};AGIVertices[_0xf566('0x17')]['createSquareRecording']=function(_0x2671d1,_0x4d549f,_0x8e9fb9,_0x4fd5d9){this[_0xf566('0x11')][_0xf566('0x3a')]({'uniqueid':this[_0xf566('0x10')]['uniqueid'],'callerid':this[_0xf566('0x10')][_0xf566('0x39')],'calleridname':this['channel'][_0xf566('0x3b')],'context':this[_0xf566('0x10')][_0xf566('0x3c')],'extension':this['channel']['extension'],'priority':this[_0xf566('0x10')]['priority'],'accountcode':this[_0xf566('0x10')]['accountcode'],'dnid':this[_0xf566('0x10')][_0xf566('0x3d')],'projectName':this['channel'][_0xf566('0x3e')],'saveName':_0x4d549f,'filename':_0x2671d1['file']||_0x4d549f,'savePath':_0x8e9fb9})[_0xf566('0x15')](function(_0x3b154f){_0x4fd5d9(null,_0x3b154f);})[_0xf566('0x19')](function(_0x49e81a){_0x4fd5d9(_0x49e81a);});};AGIVertices['prototype'][_0xf566('0x3f')]=function(_0x1e9c1b,_0x437ad2,_0x86e6d6,_0x5aad73,_0x12f5db){this[_0xf566('0x11')][_0xf566('0x3f')]({'uniqueid':this['channel'][_0xf566('0x40')],'body':_0x1e9c1b,'direction':_0x437ad2,'providerName':_0x86e6d6,'providerResponse':_0x5aad73})[_0xf566('0x15')](function(_0xa48f14){if(_0x12f5db){_0x12f5db(null,_0xa48f14);}})[_0xf566('0x19')](function(_0x53d3e3){if(_0x12f5db){_0x12f5db(_0x53d3e3);}});};AGIVertices[_0xf566('0x17')][_0xf566('0x41')]=function(_0x562c00,_0x3b9337){this[_0xf566('0x11')]['createCmContact']({'firstName':_[_0xf566('0x42')](_0x562c00['name'])||_[_0xf566('0x43')](_0x562c00[_0xf566('0x16')])?_0xf566('0x44')+Math[_0xf566('0x45')]():_0x562c00[_0xf566('0x16')],'lastName':_[_0xf566('0x42')](_0x562c00[_0xf566('0x46')])||_[_0xf566('0x43')](_0x562c00[_0xf566('0x46')])?null:_0x562c00['lastName'],'phone':_0x562c00[_0xf566('0x47')],'ListId':_0x562c00['list_id'],'scheduledat':_0x562c00[_0xf566('0x48')],'callbackUniqueid':this[_0xf566('0x10')][_0xf566('0x40')],'tags':_0xf566('0x49'),'description':_0xf566('0x4a')+_0x562c00['scheduledAt']['toString'](),'priority':_0x562c00[_0xf566('0x4b')]})['then'](function(_0x5edd8a){_0x3b9337(null,_0x5edd8a);})[_0xf566('0x19')](function(_0xe87fc){_0x3b9337(_0xe87fc);});};AGIVertices[_0xf566('0x17')]['getPause']=function(_0x4468f3,_0x8df32d){this[_0xf566('0x11')]['getPauseById'](_0x4468f3)[_0xf566('0x15')](function(_0x4d0f4e){_0x8df32d(null,_0x4d0f4e?_0x4d0f4e[_0xf566('0x16')]:![]);})[_0xf566('0x19')](function(_0x206a1c){_0x8df32d(_0x206a1c);});};AGIVertices[_0xf566('0x17')]['agentPause']=function(_0x288473,_0x240847,_0x3b8445){var _0x586a70={'role':_0xf566('0x4c')};_0x586a70[_0x288473]=this[_0xf566('0x10')][_0xf566('0x39')];this[_0xf566('0x11')]['agentPause'](_0x586a70,_0x240847,this[_0xf566('0x10')][_0xf566('0x40')])['then'](function(_0x51f213){_0x3b8445(null,_[_0xf566('0x43')](_0x51f213)?![]:!![]);})[_0xf566('0x19')](function(_0x51cff1){logger['error'](_0x51cff1);_0x3b8445(null,![]);});};AGIVertices[_0xf566('0x17')][_0xf566('0x4d')]=function(_0x24b65d,_0x28dba2){var _0x15fa73={'role':'agent'};_0x15fa73[_0x24b65d]=this[_0xf566('0x10')][_0xf566('0x39')];this[_0xf566('0x11')][_0xf566('0x4d')](_0x15fa73)[_0xf566('0x15')](function(_0x14ac65){_0x28dba2(null,_['isNil'](_0x14ac65)?![]:!![]);})[_0xf566('0x19')](function(_0x3aa80c){logger[_0xf566('0x4e')](_0x3aa80c);_0x28dba2(null,![]);});};AGIVertices[_0xf566('0x17')][_0xf566('0x4f')]=function(_0x45ce9e,_0x5aa719){var _0x3bffe3={'role':'agent'};_0x3bffe3[_0x45ce9e]=this[_0xf566('0x10')][_0xf566('0x39')];this[_0xf566('0x11')][_0xf566('0x4f')](_0x3bffe3)[_0xf566('0x15')](function(_0x9fb1ce){_0x5aa719(null,_[_0xf566('0x43')](_0x9fb1ce)?![]:!![]);})[_0xf566('0x19')](function(_0x3d1901){logger[_0xf566('0x4e')](_0x3d1901);_0x5aa719(null,![]);});};AGIVertices[_0xf566('0x17')][_0xf566('0x50')]=function(_0xddf166,_0x36894c){var _0x5c678d={'role':_0xf566('0x4c')};_0x5c678d[_0xddf166]=this['channel'][_0xf566('0x39')];var _0x40931e=_0xddf166!='internal'?util[_0xf566('0x2d')](_0xf566('0x51'),_0xf566('0x52'),this[_0xf566('0x10')][_0xf566('0x39')]):undefined;this[_0xf566('0x11')][_0xf566('0x50')](_0x5c678d,_0x40931e)[_0xf566('0x15')](function(_0x1c13a4){_0x36894c(null,_['isNil'](_0x1c13a4)?![]:!![]);})[_0xf566('0x19')](function(_0x3f1e6a){logger[_0xf566('0x4e')](_0x3f1e6a);_0x36894c(null,![]);});};AGIVertices[_0xf566('0x17')][_0xf566('0x53')]=function(_0x11e25c,_0x334f00){sh[_0xf566('0x54')](_['trim'](_0x11e25c),function(_0x2ace1b,_0x36cffe){var _0x343a0f=_0x36cffe[_0xf566('0x55')](/(\r\n|\n|\r)/gm,'');_0x334f00(null,_0x343a0f);});};AGIVertices[_0xf566('0x17')][_0xf566('0x56')]=function(_0x329151,_0x30f104){scripts[_0xf566('0x56')](_0x329151[_0xf566('0x57')],_0x329151[_0xf566('0x58')]||_0xf566('0x59'),_0x329151[_0xf566('0x59')],_0x329151['languageCode']||_0xf566('0x5a'),_0x329151['ssmlGender']||_0xf566('0x5b'),_0x329151[_0xf566('0x5c')]||_0xf566('0x5d'))[_0xf566('0x15')](function(_0x4cc109){_0x30f104(null,_0x4cc109);})[_0xf566('0x19')](function(_0x32ef56){_0x30f104(_0x32ef56);});};AGIVertices[_0xf566('0x17')][_0xf566('0x5e')]=function(_0xe88f15,_0x17176b){scripts['googleTTS'](_0xe88f15[_0xf566('0x59')],_0xe88f15[_0xf566('0x5f')]||'en',0x1)['then'](function(_0x4e4232){_0x17176b(null,_0x4e4232);})[_0xf566('0x19')](function(_0x2d4dea){_0x17176b(_0x2d4dea);});};AGIVertices['prototype'][_0xf566('0x60')]=function(_0x2019ff,_0x24b5d6){var _0x325ebb={'uri':_0x2019ff[_0xf566('0x61')],'method':_0x2019ff[_0xf566('0x62')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x2019ff['timeout'])===_0xf566('0x63')&&parseInt(_0x2019ff['timeout'])>=0x1?parseInt(_0x2019ff['timeout'])*0x3e8:0x5*0x3e8};if(_[_0xf566('0x64')](['POST',_0xf566('0x65')],_0x325ebb['method'][_0xf566('0x66')]())){try{_0x325ebb[_0xf566('0x67')]=_0x2019ff[_0xf566('0xd')]?JSON[_0xf566('0x68')](_0x2019ff['rawBody']):{};}catch(_0x40ad92){logger[_0xf566('0x4e')]('An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function',_0x40ad92);}}try{_0x325ebb[_0xf566('0x69')]=_0x2019ff[_0xf566('0xc')]?JSON[_0xf566('0x68')](_0x2019ff[_0xf566('0xc')]):{};}catch(_0x152f2d){logger[_0xf566('0x4e')](_0xf566('0x6a'),_0x152f2d);}if(_0x2019ff[_0xf566('0x6b')]){try{var _0x43b018=require(_0x2019ff['computedVariables'])[_0xf566('0x6c')](this,_0x325ebb);_0x325ebb[_0xf566('0x6d')]=Mustache[_0xf566('0x6e')](_0x2019ff['url'],_0x43b018,{},['$$','$$']);if(_0x325ebb['headers']){_0x325ebb[_0xf566('0x69')]=JSON[_0xf566('0x68')](Mustache['render'](JSON['stringify'](_0x325ebb[_0xf566('0x69')]),_0x43b018,{},['$$','$$']));}if(_0x325ebb[_0xf566('0x67')]){_0x325ebb['body']=JSON[_0xf566('0x68')](Mustache['render'](JSON[_0xf566('0x6f')](_0x325ebb[_0xf566('0x67')]),_0x43b018,{},['$$','$$']));}}catch(_0x322d00){logger[_0xf566('0x4e')](_0xf566('0x70'),_0x322d00);}}rp(_0x325ebb)[_0xf566('0x15')](function(_0x401e4b){var _0x2d0b71={'statusCode':_0x401e4b[_0xf566('0x71')]||0xc8,'statusMessage':_0x401e4b['statusMessage']||'OK','headers':_0x401e4b[_0xf566('0x69')]||{},'body':_0x401e4b[_0xf566('0x67')]||{}};_0x24b5d6(null,_0x2d0b71);})[_0xf566('0x19')](function(_0x29b3e6){var _0x3a4017={'statusCode':_0x29b3e6[_0xf566('0x71')]||0x1f4,'statusMessage':_0x29b3e6['message']||'500\x20-\x20Internal\x20Server\x20Error','headers':_0x29b3e6[_0xf566('0x72')][_0xf566('0x69')]||{},'body':_0x29b3e6[_0xf566('0x72')][_0xf566('0x67')]||{}};_0x24b5d6(null,_0x3a4017);});};AGIVertices[_0xf566('0x17')][_0xf566('0x73')]=function(_0x3e41d3,_0x539a29){scripts[_0xf566('0x73')](this[_0xf566('0x10')][_0xf566('0x40')],_0x3e41d3[_0xf566('0x74')],_0x3e41d3['text'],_0x3e41d3[_0xf566('0x75')]||'en')[_0xf566('0x15')](function(_0x1e4d13){_0x539a29(null,_0x1e4d13);})['catch'](function(_0x245dd2){_0x539a29(_0x245dd2);});};AGIVertices['prototype'][_0xf566('0x76')]=function(_0x3e7fbd,_0x5247c2){scripts['googleDialogflowV2'](this[_0xf566('0x10')][_0xf566('0x40')],_0x3e7fbd[_0xf566('0x77')],_0x3e7fbd[_0xf566('0x78')],_0x3e7fbd[_0xf566('0x79')],_0x3e7fbd[_0xf566('0x59')],_0x3e7fbd[_0xf566('0x7a')]||'en')[_0xf566('0x15')](function(_0x334f38){_0x5247c2(null,_0x334f38);})[_0xf566('0x19')](function(_0x5121eb){_0x5247c2(_0x5121eb);});};AGIVertices[_0xf566('0x17')][_0xf566('0x7b')]=function(_0x2f296c,_0x5c06b4){scripts[_0xf566('0x7b')](this[_0xf566('0x10')],_0x2f296c)[_0xf566('0x15')](function(_0x204f22){_0x5c06b4(null,_0x204f22);})[_0xf566('0x19')](function(_0x1554bc){_0x5c06b4(_0x1554bc);});};AGIVertices['prototype'][_0xf566('0x7c')]=function(_0x597789,_0x5d3cb){scripts[_0xf566('0x7c')](_0x597789[_0xf566('0x74')],_0x597789[_0xf566('0x59')],_0x597789[_0xf566('0x7d')]||'en-US',_0x597789[_0xf566('0x7e')])[_0xf566('0x15')](function(_0x39a77c){_0x5d3cb(null,_0x39a77c);})['catch'](function(_0x1a595a){_0x5d3cb(_0x1a595a);});};AGIVertices[_0xf566('0x17')]['ispeechASR']=function(_0x44c707,_0x2463ab,_0x5dfcdd){scripts[_0xf566('0x7f')](_0x2463ab,_0x44c707[_0xf566('0x74')],_0x44c707['ispeech_asr_language']||_0xf566('0x5a'),this[_0xf566('0x80')](_0x44c707[_0xf566('0x81')])?_0x44c707[_0xf566('0x81')]:undefined)[_0xf566('0x15')](function(_0xf522d8){_0x5dfcdd(null,_0xf522d8);})[_0xf566('0x19')](function(_0x4b7690){_0x5dfcdd(_0x4b7690);});};AGIVertices[_0xf566('0x17')][_0xf566('0x82')]=function(_0x1df8c5,_0x4909d7){scripts[_0xf566('0x82')](_0x1df8c5['aws_access_key_id'],_0x1df8c5[_0xf566('0x83')],_0x1df8c5['aws_polly_region'],_0x1df8c5[_0xf566('0x84')]||_0xf566('0x85'),_0x1df8c5['text'],_0x1df8c5[_0xf566('0x86')]||_0xf566('0x59'))[_0xf566('0x15')](function(_0x28ba46){_0x4909d7(null,_0x28ba46);})[_0xf566('0x19')](function(_0xe75c0){_0x4909d7(_0xe75c0);});};AGIVertices[_0xf566('0x17')][_0xf566('0x87')]=function(_0x5e363e,_0x5d9ed2){scripts['awsLex'](this[_0xf566('0x10')]['uniqueid'],_0x5e363e[_0xf566('0x88')],_0x5e363e['aws_secret_access_key'],_0x5e363e[_0xf566('0x89')],_0x5e363e[_0xf566('0x59')],_0x5e363e[_0xf566('0x8a')])[_0xf566('0x15')](function(_0xf5447d){_0x5d9ed2(null,_0xf5447d);})[_0xf566('0x19')](function(_0x227da5){_0x5d9ed2(_0x227da5);});};AGIVertices['prototype'][_0xf566('0x8b')]=function(_0x29ab9e,_0x5603bd,_0xa3852c){scripts[_0xf566('0x8b')](_0x5603bd,_0x29ab9e[_0xf566('0x74')],_0x29ab9e[_0xf566('0x8c')]||_0xf566('0x5a'))[_0xf566('0x15')](function(_0x21420e){_0xa3852c(null,_0x21420e);})['catch'](function(_0x2832a3){_0xa3852c(_0x2832a3);});};AGIVertices[_0xf566('0x17')]['tildeASR']=function(_0x9f8c1a,_0x2daf34,_0x8bec2a){scripts[_0xf566('0x8d')](_0x2daf34,_0x9f8c1a[_0xf566('0x8e')],_0x9f8c1a[_0xf566('0x8f')],_0x9f8c1a['uri'])[_0xf566('0x15')](function(_0x5b1016){_0x8bec2a(null,_0x5b1016);})[_0xf566('0x19')](function(_0x6b2ab5){_0x8bec2a(_0x6b2ab5);});};AGIVertices[_0xf566('0x17')][_0xf566('0x90')]=function(_0x2e7f31){var _0x23ba11=_[_0xf566('0x64')](verticesWithRetry,_0x2e7f31[_0xf566('0x38')])?_0x2e7f31:_[_0xf566('0x91')](_0x2e7f31);for(var _0x2b0e82 in _0x23ba11){if(_0x23ba11[_0xf566('0x92')](_0x2b0e82)){if(_0x23ba11[_0x2b0e82]&&_['isString'](_0x23ba11[_0x2b0e82])){if(_[_0xf566('0x64')](recursiveMapAttributes,_0x2b0e82)){_0x23ba11[_0x2b0e82]=this[_0xf566('0x93')](_0x23ba11[_0x2b0e82]);}else{_0x23ba11[_0x2b0e82]=this[_0xf566('0x94')](_0x23ba11[_0x2b0e82]);}}}}return _0x23ba11;};AGIVertices[_0xf566('0x17')]['recursiveNodeIndex']=function(_0xb86a6){for(var _0x388837 in _0xb86a6){if(_0xb86a6[_0xf566('0x92')](_0x388837)){if(_[_0xf566('0x95')](_0xb86a6[_0x388837])){this[_0xf566('0x96')](_0xb86a6[_0x388837]);}else if(_[_0xf566('0x97')](_0xb86a6[_0x388837])){for(var _0x16b4b8=0x0;_0x16b4b8<_0xb86a6[_0x388837][_0xf566('0x98')];_0x16b4b8++){this[_0xf566('0x96')](_0xb86a6[_0x388837][_0x16b4b8]);}}else if(_[_0xf566('0x99')](_0xb86a6[_0x388837])){_0xb86a6[_0x388837]=this[_0xf566('0x94')](_0xb86a6[_0x388837]);}}}};AGIVertices['prototype'][_0xf566('0x9a')]=function(_0x2d5d8e,_0x48220d){for(var _0x56d733 in _0x2d5d8e){if(_0x2d5d8e[_0xf566('0x92')](_0x56d733)){if(_[_0xf566('0x95')](_0x2d5d8e[_0x56d733])){if(!_[_0xf566('0x42')](_0x2d5d8e[_0x56d733])){this[_0xf566('0x9a')](_0x2d5d8e[_0x56d733],util[_0xf566('0x2d')](_0xf566('0x9b'),_0x48220d,_0x56d733));}}else if(_['isArray'](_0x2d5d8e[_0x56d733])){for(var _0x24150c=0x0;_0x24150c<_0x2d5d8e[_0x56d733][_0xf566('0x98')];_0x24150c++){this[_0xf566('0x9a')](_0x2d5d8e[_0x56d733][_0x24150c],util[_0xf566('0x2d')](_0xf566('0x9b'),_0x48220d,_0x56d733+'['+_0x24150c+']'));}}else{if(!_['isNil'](_0x2d5d8e[_0x56d733])){this['channel'][_0xf566('0x9c')](util['format'](_0xf566('0x9b'),_0x48220d,_0x56d733),_0x2d5d8e[_0x56d733]);}}}}};AGIVertices[_0xf566('0x17')]['replaceObjectAllVariables']=function(_0x5d4a31){try{var _0x51251f=JSON[_0xf566('0x68')](_0x5d4a31);this[_0xf566('0x96')](_0x51251f);return JSON[_0xf566('0x6f')](_0x51251f);}catch(_0x287778){return this[_0xf566('0x94')](_0x5d4a31);}};AGIVertices[_0xf566('0x17')][_0xf566('0x94')]=function(_0xde52c){var _0x311fe4=_0xde52c[_0xf566('0x9d')]('{');for(var _0x259fd4=0x1;_0x259fd4<_0x311fe4['length'];_0x259fd4+=0x1){var _0x598c47=_0x311fe4[_0x259fd4]['split']('}');if(_0x598c47[_0xf566('0x98')]>0x1){_0xde52c=_0xde52c[_0xf566('0x9e')]('{'+_0x598c47[0x0]+'}',this[_0xf566('0x10')]['getVariable'](_0x598c47[0x0])['extra']||_0x598c47[0x0]);}}if(_0x311fe4['length']===0x1){return _0xde52c[_0xf566('0x9f')]();}return this[_0xf566('0x94')](_0xde52c);};AGIVertices[_0xf566('0x17')][_0xf566('0xa0')]=function(_0x590dbd,_0x5d24aa){var _0x3508f8=this[_0xf566('0x10')]['getVariable'](_0x590dbd);if(_0x3508f8[_0xf566('0xa1')]===-0x1){return _0x3508f8;}logger['info'](util[_0xf566('0x2d')]('The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s',_0x5d24aa,_0x3508f8['extra']));return this[_0xf566('0x10')]['setVariable'](_0x5d24aa,_0x3508f8[_0xf566('0xa2')]);};AGIVertices[_0xf566('0x17')][_0xf566('0x80')]=function(_0x59c3cf){return _0x59c3cf&&_0x59c3cf!=='0'&&_0x59c3cf!=='-1'&&_0x59c3cf!=='';};AGIVertices[_0xf566('0x17')][_0xf566('0xa3')]=function(_0x54a63b){this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x54a63b,'-');_0x54a63b[_0xf566('0xa4')]=_0x54a63b[_0xf566('0xa3')];return{'code':0xc8,'result':'-'};};AGIVertices[_0xf566('0x17')][_0xf566('0xa5')]=function(_0x383925){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xa7'),_0x383925[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x383925['text'])){return this[_0xf566('0x10')][_0xf566('0xa8')]('no\x20text\x20configured');}var _0x11d3ac='\x22'+_0x383925[_0xf566('0x59')]+'\x22';if(this[_0xf566('0x80')](_0x383925[_0xf566('0x72')])){_0x11d3ac+=','+_0x383925['options'];}var _0x362dfc=this[_0xf566('0x10')][_0xf566('0x54')](_0xf566('0xa9'),_0x11d3ac);if(_0x362dfc['result']===-0x1){return _0x362dfc;}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xaa'),_0x11d3ac));};AGIVertices[_0xf566('0x17')][_0xf566('0xab')]=function(_0x415b42){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xac'),_0x415b42[_0xf566('0x37')]));if(!this['isConfigured'](_0x415b42[_0xf566('0xad')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xae'));}var _0x3a8508=_0x415b42['grammar'];if(this[_0xf566('0x80')](_0x415b42[_0xf566('0x72')])){_0x3a8508+=','+_0x415b42[_0xf566('0x72')];}var _0x3636f2=this[_0xf566('0x10')][_0xf566('0x54')](_0xf566('0xaf'),_0x3a8508);if(_0x3636f2[_0xf566('0xa1')]===-0x1){return _0x3636f2;}var _0x5a0343=this[_0xf566('0xa0')](_0xf566('0xb0'),_0xf566('0xb1'));if(_0x5a0343['result']===-0x1){return _0x5a0343;}var _0x4c4eb8=this[_0xf566('0xa0')](_0xf566('0xb2'),_0xf566('0xb3'));if(_0x4c4eb8[_0xf566('0xa1')]===-0x1){return _0x4c4eb8;}var _0x289fb4=this[_0xf566('0xa0')](_0xf566('0xb4'),_0xf566('0xb5'));if(_0x289fb4[_0xf566('0xa1')]===-0x1){return _0x289fb4;}return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xb6'),_0x3a8508));};AGIVertices[_0xf566('0x17')][_0xf566('0x9')]=function(_0x102605){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20AGI\x20(%s)\x20block',_0x102605[_0xf566('0x37')]));return this['channel'][_0xf566('0x9')]([_0x102605['command'],_0x102605[_0xf566('0xb7')]]);};AGIVertices[_0xf566('0x17')][_0xf566('0xb8')]=function(_0x332990){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xb9'),_0x332990[_0xf566('0x37')]));if(this[_0xf566('0x80')](_0x332990[_0xf566('0xba')])){logger['info'](util['format'](_0xf566('0xbb'),_0x332990[_0xf566('0xba')]));var _0x475a14=this['channel'][_0xf566('0xbc')](_0x332990[_0xf566('0xba')]);if(_0x475a14[_0xf566('0xa1')]===-0x1){return _0x475a14;}}return this[_0xf566('0x10')]['answer']();};AGIVertices['prototype'][_0xf566('0x49')]=function(_0x49d840){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xbd'),_0x49d840[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x49d840[_0xf566('0xbe')])){return this['channel'][_0xf566('0x4e')](_0x49d840,_0xf566('0xbf'));}_0x49d840['scheduledAt']=moment();if(this['isConfigured'](_0x49d840[_0xf566('0xc0')])){_0x49d840['scheduledAt']=moment()['add'](_0x49d840[_0xf566('0xc0')],'minutes');}if(!this['isConfigured'](_0x49d840[_0xf566('0x4b')])){_0x49d840[_0xf566('0x4b')]=0x2;}this[_0xf566('0x41')][_0xf566('0x6c')](this,_0x49d840);return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xc1'),_0x49d840[_0xf566('0x47')],_0x49d840[_0xf566('0xbe')],_0x49d840[_0xf566('0x48')]));};AGIVertices[_0xf566('0x17')][_0xf566('0xc2')]=function(_0x1ba588){logger[_0xf566('0xa6')](util['format'](_0xf566('0xc3'),_0x1ba588[_0xf566('0x37')]));var _0x53e305=this['channel'][_0xf566('0x54')](_0x1ba588[_0xf566('0xc4')],_0x1ba588[_0xf566('0x72')]);if(_0x53e305[_0xf566('0xa1')]===-0x1){return _0x53e305;}return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xc5'),_0x1ba588[_0xf566('0xc4')],_0x1ba588[_0xf566('0x72')]));};AGIVertices[_0xf566('0x17')][_0xf566('0xc6')]=function(_0x254dd2){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xc7'),_0x254dd2[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x254dd2[_0xf566('0x59')])){return this['channel'][_0xf566('0xa8')](_0xf566('0xc8'));}var _0x35ac9d='\x22'+_0x254dd2[_0xf566('0x59')]+'\x22';if(this['isConfigured'](_0x254dd2[_0xf566('0x72')])){_0x35ac9d+=','+_0x254dd2[_0xf566('0x72')];}var _0x57d504=this[_0xf566('0x10')][_0xf566('0x54')](_0xf566('0xa9'),_0x35ac9d);if(_0x57d504[_0xf566('0xa1')]===-0x1){return _0x57d504;}return this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')]('Executed\x20command\x20MRCPSynth\x20%s',_0x35ac9d));};AGIVertices[_0xf566('0x17')][_0xf566('0xc9')]=function(_0xd66c1e){logger[_0xf566('0xa6')](util['format'](_0xf566('0xca'),_0xd66c1e['label']));if(!this['isConfigured'](_0xd66c1e[_0xf566('0x59')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xc8'));}var _0x1b08de='\x22'+_0xd66c1e[_0xf566('0x59')]+'\x22';if(this['isConfigured'](_0xd66c1e[_0xf566('0x72')])){_0x1b08de+=','+_0xd66c1e[_0xf566('0x72')];}var _0x1c0f51=this[_0xf566('0x10')][_0xf566('0x54')]('MRCPSynth',_0x1b08de);if(_0x1c0f51['result']===-0x1){return _0x1c0f51;}return this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')](_0xf566('0xaa'),_0x1b08de));};AGIVertices[_0xf566('0x17')][_0xf566('0xcb')]=function(_0x22d2d5){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xcc'),_0x22d2d5[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x22d2d5[_0xf566('0xad')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xae'));}var _0x2615d0=_0x22d2d5[_0xf566('0xad')];if(this['isConfigured'](_0x22d2d5['options'])){_0x2615d0+=','+_0x22d2d5['options'];}var _0x4f2ed7=this['channel']['exec'](_0xf566('0xaf'),_0x2615d0);if(_0x4f2ed7[_0xf566('0xa1')]===-0x1){return _0x4f2ed7;}var _0x2466b8=this[_0xf566('0xa0')](_0xf566('0xb0'),_0xf566('0xcd'));if(_0x2466b8[_0xf566('0xa1')]===-0x1){return _0x2466b8;}var _0xec6f74=this[_0xf566('0xa0')]('RECOG_INPUT()','LUMENVOX_ASR_TRANSCRIPT');if(_0xec6f74['result']===-0x1){return _0xec6f74;}var _0x59c233=this[_0xf566('0xa0')]('RECOG_INSTANCE()',_0xf566('0xce'));if(_0x59c233[_0xf566('0xa1')]===-0x1){return _0x59c233;}return this[_0xf566('0x10')][_0xf566('0xa8')](util['format'](_0xf566('0xb6'),_0x2615d0));};AGIVertices[_0xf566('0x17')][_0xf566('0xcf')]=function(_0x392fb9){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xd0'),_0x392fb9[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x392fb9[_0xf566('0xad')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xae'));}var _0x77932b=_0x392fb9[_0xf566('0xad')];if(this[_0xf566('0x80')](_0x392fb9[_0xf566('0x72')])){_0x77932b+=','+_0x392fb9[_0xf566('0x72')];}var _0x25a90b=this[_0xf566('0x10')][_0xf566('0x54')]('MRCPRecog',_0x77932b);if(_0x25a90b['result']===-0x1){return _0x25a90b;}var _0x12d496=this[_0xf566('0xa0')](_0xf566('0xb0'),_0xf566('0xd1'));if(_0x12d496[_0xf566('0xa1')]===-0x1){return _0x12d496;}var _0x12df9c=this[_0xf566('0xa0')](_0xf566('0xb2'),_0xf566('0xd2'));if(_0x12df9c[_0xf566('0xa1')]===-0x1){return _0x12df9c;}var _0x131113=this[_0xf566('0xa0')](_0xf566('0xb4'),_0xf566('0xd3'));if(_0x131113[_0xf566('0xa1')]===-0x1){return _0x131113;}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')]('Executed\x20command\x20MRCPRecog\x20%s',_0x77932b));};AGIVertices[_0xf566('0x17')][_0xf566('0xd4')]=function(_0x4c0922){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xd5'),_0x4c0922[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x4c0922['odbc_id'])){return this['channel'][_0xf566('0x4e')](_0x4c0922,_0xf566('0xd6'));}var _0x35ea12=this[_0xf566('0x1a')][_0xf566('0x6c')](this,_0x4c0922[_0xf566('0xd7')]);if(!_0x35ea12){return this[_0xf566('0x10')]['error'](_0x4c0922,_0xf566('0xd8'));}if(!this[_0xf566('0x80')](_0x4c0922[_0xf566('0xd9')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x4c0922,_0xf566('0xda'));}var _0x5ab8ba=_0x4c0922[_0xf566('0xd9')][_0xf566('0x55')](/(\r\n|\n|\r)/gm,'\x20');this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xdb'),_0x5ab8ba));var _0x469b5f=this[_0xf566('0x2f')][_0xf566('0x6c')](this,_0x35ea12,_0x5ab8ba);this[_0xf566('0x36')]['sync'](this,_0x4c0922,_0x5ab8ba);if(!this[_0xf566('0x80')](_0x4c0922[_0xf566('0xdc')])){return this['channel'][_0xf566('0xa8')](_0xf566('0xdd'));}var _0x144ab4=this[_0xf566('0x13')][_0xf566('0x6c')](this,_0x4c0922[_0xf566('0xdc')]);if(!_0x144ab4){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x4c0922,_0xf566('0xde'));}var _0x46e45a=this;_0x469b5f['forEach'](function(_0x364cdf,_0x4e8ae2){Object[_0xf566('0xdf')](_0x364cdf)[_0xf566('0xe0')](function(_0x13235e){_0x46e45a[_0xf566('0x10')][_0xf566('0x9c')](util[_0xf566('0x2d')](_0xf566('0xe1'),_0x144ab4,_0x4e8ae2,_0x13235e),_0x364cdf[_0x13235e]);});});this[_0xf566('0x10')][_0xf566('0x9c')](util['format'](_0xf566('0xe2'),_0x144ab4),_0x469b5f['length']);return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xe3'),_0x144ab4));};AGIVertices[_0xf566('0x17')][_0xf566('0xe4')]=function(_0xbe9b99){logger[_0xf566('0xe5')](util[_0xf566('0x2d')](_0xf566('0xe6'),_0xbe9b99[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0xbe9b99['sip_id'])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0xbe9b99,_0xf566('0xe7'));}var _0x33d82b=this[_0xf566('0x1d')][_0xf566('0x6c')](this,_0xbe9b99[_0xf566('0xe8')]);if(!_0x33d82b){return this['channel'][_0xf566('0x4e')](_0xbe9b99,_0xf566('0xe9'));}var _0x335a39=this[_0xf566('0x10')]['exec'](_0xf566('0xea'),[util['format'](_0xf566('0xeb'),_0x33d82b),_0xbe9b99[_0xf566('0xba')],_0xbe9b99[_0xf566('0xec')],_0xbe9b99[_0xf566('0x61')]]);if(_0x335a39[_0xf566('0xa1')]===-0x1){return _0x335a39;}return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xed'),_0xf566('0xea')));};AGIVertices[_0xf566('0x17')][_0xf566('0xee')]=function(_0x5d1181){logger['info'](util[_0xf566('0x2d')](_0xf566('0xef'),_0x5d1181[_0xf566('0x37')]));if(!this['isConfigured'](_0x5d1181[_0xf566('0x74')])){return this['channel']['noop']('no\x20key\x20configured');}if(!this[_0xf566('0x80')](_0x5d1181[_0xf566('0x59')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xc8'));}this[_0xf566('0x10')][_0xf566('0xf0')]=!![];this[_0xf566('0x36')](_0x5d1181);this[_0xf566('0x3f')](_0x5d1181[_0xf566('0x59')],'in','','');this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xf1'),_0x5d1181[_0xf566('0x59')]));var _0x54c6c8=this[_0xf566('0x73')][_0xf566('0x6c')](this,_0x5d1181);if(_0x54c6c8){for(var _0x2a9245 in _0x54c6c8){if(_0x54c6c8[_0xf566('0x92')](_0x2a9245)){this[_0xf566('0x10')][_0xf566('0x9c')](util['format']('DIALOGFLOW_%s',_0x2a9245[_0xf566('0x66')]()),_0x54c6c8[_0x2a9245]);}}this[_0xf566('0x3f')](_0x54c6c8[_0xf566('0xf2')],_0xf566('0xf3'),_0xf566('0xee'),'');return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xf4'),_0x54c6c8['speech']));}return this[_0xf566('0x10')][_0xf566('0x4e')](_0x5d1181,'Dialogflow\x20is\x20unreachable');};AGIVertices[_0xf566('0x17')][_0xf566('0xf5')]=function(_0x4912fb){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0xf6'),_0x4912fb[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x4912fb[_0xf566('0x77')])){return this['channel'][_0xf566('0xa8')](_0xf566('0xf7'));}if(!this['isConfigured'](_0x4912fb[_0xf566('0x78')])){return this[_0xf566('0x10')]['noop']('no\x20client_email\x20configured');}if(!this[_0xf566('0x80')](_0x4912fb[_0xf566('0x79')])){return this[_0xf566('0x10')]['noop'](_0xf566('0xf8'));}if(!this[_0xf566('0x80')](_0x4912fb[_0xf566('0x7a')])){return this[_0xf566('0x10')][_0xf566('0xa8')]('no\x20anguage\x20configured');}if(!this[_0xf566('0x80')](_0x4912fb['text'])){return this['channel'][_0xf566('0xa8')](_0xf566('0xc8'));}this[_0xf566('0x10')][_0xf566('0xf0')]=!![];this['createSquareDetailsReport'](_0x4912fb);this[_0xf566('0x3f')](_0x4912fb[_0xf566('0x59')],'in','','');this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xf9'),_0x4912fb[_0xf566('0x59')]));var _0x2cd7de=this[_0xf566('0x76')]['sync'](this,_0x4912fb);if(_0x2cd7de){for(var _0x594e69 in _0x2cd7de){if(_0x2cd7de['hasOwnProperty'](_0x594e69)){if(_0x594e69!==_0xf566('0xfa')){this[_0xf566('0x10')][_0xf566('0x9c')](util['format'](_0xf566('0xfb'),_0x594e69['toUpperCase']()),_0x2cd7de[_0x594e69]);}}}this['createSquareMessage'](_0x2cd7de[_0xf566('0xf2')],_0xf566('0xf3'),_0xf566('0xf5'),_0x2cd7de[_0xf566('0xfa')]);return this['channel'][_0xf566('0xa8')](util['format'](_0xf566('0xfc'),_0x2cd7de[_0xf566('0xf2')]));}return this[_0xf566('0x10')][_0xf566('0x4e')](_0x4912fb,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0xf566('0x17')][_0xf566('0xfd')]=function(_0x5b745b){logger[_0xf566('0xa6')](util['format']('Enter\x20in\x20SESTEKNDA\x20(%s)\x20block',_0x5b745b[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x5b745b[_0xf566('0xfe')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xff'));}if(!this[_0xf566('0x80')](_0x5b745b[_0xf566('0x100')])){return this[_0xf566('0x10')][_0xf566('0xa8')]('no\x20username\x20configured');}if(!this['isConfigured'](_0x5b745b[_0xf566('0x101')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x102'));}if(!this[_0xf566('0x80')](_0x5b745b['ndassistant_url'])){return this[_0xf566('0x10')]['noop'](_0xf566('0xc8'));}this[_0xf566('0x10')][_0xf566('0xf0')]=!![];this[_0xf566('0x36')](_0x5b745b);this[_0xf566('0x3f')](_0x5b745b[_0xf566('0x59')],'in','','');this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x103'),_0x5b745b[_0xf566('0x59')]));var _0x1803aa=this[_0xf566('0x7b')]['sync'](this,_0x5b745b);if(_0x1803aa){for(var _0x54a05f in _0x1803aa){if(_0x1803aa[_0xf566('0x92')](_0x54a05f)){this[_0xf566('0x10')]['setVariable'](util['format'](_0xf566('0x104'),_0x54a05f['toUpperCase']()),_0x1803aa[_0x54a05f]);}}this[_0xf566('0x3f')](_0x1803aa['speech'],_0xf566('0xf3'),_0xf566('0xfd'),'');if(_0x1803aa[_0xf566('0x105')]){this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x106'),_0x1803aa[_0xf566('0x105')]));var _0x264ea0=this[_0xf566('0x10')]['streamFile'](_0x1803aa[_0xf566('0x105')]);try{fs[_0xf566('0x107')](_0x1803aa['audiofile']+_0xf566('0x108'));}catch(_0x218b0b){logger[_0xf566('0x4e')](_0x218b0b);}return _0x264ea0;}else{return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x109'),_0x1803aa['speech']));}}return this['channel'][_0xf566('0x4e')](_0x5b745b,_0xf566('0x10a'));};AGIVertices['prototype']['end']=function(_0x44b19d){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x10b'),_0x44b19d[_0xf566('0x37')]));return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x10c'));};AGIVertices[_0xf566('0x17')][_0xf566('0x10d')]=function(_0x1fbabb){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block',_0x1fbabb[_0xf566('0x37')]));var _0x2c35b1='';if(_0x1fbabb[_0xf566('0x10e')]){if(!this[_0xf566('0x80')](_0x1fbabb[_0xf566('0x10e')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x1fbabb,_0xf566('0x10f'));}else{var _0x1cdba3=parseInt(_0x1fbabb[_0xf566('0x10e')],0xa);if(isNaN(_0x1cdba3)){_0x2c35b1=_0x1fbabb[_0xf566('0x10e')];}else{_0x2c35b1=this['getTrunk'][_0xf566('0x6c')](this,_0x1fbabb['trunk_id']);if(!_0x2c35b1){return this['channel'][_0xf566('0x4e')](_0x1fbabb,_0xf566('0x110'));}}}}else if(_0x1fbabb[_0xf566('0x111')]){_0x2c35b1=_0x1fbabb['trunk_name'];}else{return this[_0xf566('0x10')]['error'](_0x1fbabb,_0xf566('0x10f'));}var _0x3c6760=this[_0xf566('0x10')][_0xf566('0x54')](_0xf566('0xea'),[util[_0xf566('0x2d')](_0xf566('0x112'),_0x2c35b1,_0x1fbabb[_0xf566('0x47')]),_0x1fbabb[_0xf566('0xba')],_0x1fbabb[_0xf566('0xec')],_0x1fbabb[_0xf566('0x61')]]);if(_0x3c6760[_0xf566('0xa1')]===-0x1){return _0x3c6760;}return this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')](_0xf566('0xed'),_0xf566('0xea')));};AGIVertices['prototype']['finally']=function(_0x22f7ac){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x113'),_0x22f7ac[_0xf566('0x37')]));return this[_0xf566('0x10')][_0xf566('0xa8')]('finally');};AGIVertices[_0xf566('0x17')][_0xf566('0xf')]=function(_0x222d32){logger['info'](util['format'](_0xf566('0x114'),_0x222d32[_0xf566('0x37')]));if(_0x222d32[_0xf566('0xa4')]===0x0){return this[_0xf566('0xa3')](_0x222d32);}_0x222d32[_0xf566('0xa4')]-=0x1;if(!this[_0xf566('0x80')](_0x222d32[_0xf566('0x115')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x222d32,'no\x20file\x20audio\x20selected');}var _0x40fd72=this['getSound'][_0xf566('0x6c')](this,_0x222d32[_0xf566('0x115')]);if(!_0x40fd72){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x222d32,_0xf566('0x116'));}if(!this['isConfigured'](_0x222d32[_0xf566('0xdc')])){return this['channel'][_0xf566('0x4e')](_0xf566('0xdd'));}var _0x26e733=this['channel'][_0xf566('0x117')](_0x40fd72,_0x222d32['response'],_0x222d32[_0xf566('0x118')]);var _0x37905f=_0x26e733[_0xf566('0xa1')]?_0x26e733['result'][_0xf566('0x9f')]():'';logger[_0xf566('0xa6')]('test',JSON['stringify'](_0x26e733));if(_0x26e733['result']===-0x1){this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x222d32,_0x37905f);return _0x26e733;}else if(_0x26e733[_0xf566('0xa2')]===_0xf566('0xba')){_0x26e733['result']=_0x37905f[_0xf566('0x98')]>=parseInt(_0x222d32[_0xf566('0x119')])?'x':'i';}else{_0x26e733[_0xf566('0xa1')]=_0x37905f[_0xf566('0x98')]>=parseInt(_0x222d32[_0xf566('0x119')])&&_0x37905f[_0xf566('0x98')]<=parseInt(_0x222d32[_0xf566('0x118')])?'x':'i';}var _0x3a14c3=this[_0xf566('0x13')][_0xf566('0x6c')](this,_0x222d32[_0xf566('0xdc')]);if(!_0x3a14c3){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x222d32,'no\x20variable\x20found');}this[_0xf566('0x10')]['setVariable'](_0x3a14c3,_0x37905f);if(this[_0xf566('0x80')](_0x222d32[_0xf566('0x11a')])){var _0x157720=parseInt(_0x222d32[_0xf566('0x11a')],0xa);var _0x27dd3f=rs[_0xf566('0x11b')]({'charset':'*','length':_0x157720});var _0x5b9442=_0x37905f[_0xf566('0x98')];if(_0x5b9442>0x0){if(_0x5b9442>_0x157720){this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x222d32,_0x222d32['hiddendigitspos']===_0xf566('0x11c')?_0x27dd3f+_0x37905f[_0xf566('0x11d')](_0x157720):_0x37905f['substr'](0x0,_0x5b9442-_0x157720)+_0x27dd3f);}else{this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x222d32,rs['generate']({'charset':'*','length':_0x5b9442}));}}else{this['createSquareDetailsReport']['sync'](this,_0x222d32,'');}}else{this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x222d32,_0x37905f);}return _0x26e733;};AGIVertices[_0xf566('0x17')][_0xf566('0x11e')]=function(_0x3af292){logger[_0xf566('0xa6')](util['format'](_0xf566('0x11f'),_0x3af292[_0xf566('0x37')]));return this[_0xf566('0xf')](_0x3af292);};AGIVertices[_0xf566('0x17')]['goal']=function(_0x3b0011){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x120'),_0x3b0011[_0xf566('0x37')]));this[_0xf566('0x36')]['sync'](this,_0x3b0011,_0x3b0011[_0xf566('0x121')]);return this['channel']['noop'](util['format'](_0xf566('0x122'),_0x3b0011[_0xf566('0x121')]));};AGIVertices[_0xf566('0x17')][_0xf566('0x123')]=function(_0x35b34a){logger[_0xf566('0xa6')](util['format'](_0xf566('0x124'),_0x35b34a[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x35b34a['aws_access_key_id'])||!this[_0xf566('0x80')](_0x35b34a[_0xf566('0x83')])){return this[_0xf566('0x10')]['noop']('no\x20valid\x20credentials\x20configured');}if(!this['isConfigured'](_0x35b34a['text'])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xc8'));}this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x125'),_0x35b34a[_0xf566('0x59')]));var _0x4fdde1=this[_0xf566('0x82')][_0xf566('0x6c')](this,_0x35b34a);if(_0x4fdde1){this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x126'),_0x4fdde1));var _0x46d4de=this[_0xf566('0x10')][_0xf566('0x127')](_0x4fdde1);try{fs[_0xf566('0x107')](_0x4fdde1+_0xf566('0x108'));}catch(_0x193b63){logger['error'](_0x193b63);}return _0x46d4de;}return this[_0xf566('0x10')]['error'](_0x35b34a,_0xf566('0x128'));};AGIVertices[_0xf566('0x17')][_0xf566('0x129')]=function(_0x2bfbe7){logger['info'](util[_0xf566('0x2d')]('Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block',_0x2bfbe7[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x2bfbe7[_0xf566('0x88')])||!this[_0xf566('0x80')](_0x2bfbe7[_0xf566('0x83')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x12a'));}if(!this[_0xf566('0x80')](_0x2bfbe7[_0xf566('0x8a')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x12b'));}if(!this[_0xf566('0x80')](_0x2bfbe7[_0xf566('0x59')])){return this['channel'][_0xf566('0xa8')]('no\x20text\x20configured');}this[_0xf566('0x10')][_0xf566('0xf0')]=!![];this[_0xf566('0x36')](_0x2bfbe7);this[_0xf566('0x3f')](_0x2bfbe7[_0xf566('0x59')],'in','','');this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x12c'),_0x2bfbe7[_0xf566('0x59')]));var _0x4c9350=this[_0xf566('0x87')][_0xf566('0x6c')](this,_0x2bfbe7);if(_0x4c9350){for(var _0x444215 in _0x4c9350){if(_0x4c9350[_0xf566('0x92')](_0x444215)&&_[_0xf566('0x99')](_0x4c9350[_0x444215])){this[_0xf566('0x10')]['setVariable'](util['format'](_0xf566('0x12d'),_0x444215[_0xf566('0x66')]()),_0x4c9350[_0x444215]);}}if(_[_0xf566('0x43')](_0x4c9350['message'])){return this['channel']['noop'](_0xf566('0x12e'));}else{this[_0xf566('0x3f')](_0x4c9350[_0xf566('0x12f')],_0xf566('0xf3'),_0xf566('0x130'),'');return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')]('Amazon\x20Lex\x20Result\x20%s',_0x4c9350['message']));}}return this[_0xf566('0x10')]['error'](_0x2bfbe7,_0xf566('0x131'));};AGIVertices[_0xf566('0x17')]['googleasr']=function(_0x3c371f){logger['info'](util[_0xf566('0x2d')](_0xf566('0x132'),_0x3c371f[_0xf566('0x37')],_0x3c371f[_0xf566('0xba')]));if(!this[_0xf566('0x80')](_0x3c371f['key'])){return this[_0xf566('0x10')]['noop'](_0xf566('0x133'));}var _0xc19e7c='wav';var _0x241cfc=util[_0xf566('0x2d')](_0xf566('0x134'),FILES_PATH,rs[_0xf566('0x11b')](0x4));var _0x51349b=util[_0xf566('0x2d')](_0xf566('0x9b'),_0x241cfc,_0xc19e7c);var _0x513513=!![];if(_0x3c371f[_0xf566('0x135')]===_0xf566('0x136')){_0x513513=![];}var _0x23eaa7=this[_0xf566('0x10')][_0xf566('0x137')](_0x241cfc,_0xc19e7c,_0x3c371f[_0xf566('0x138')],_0x3c371f[_0xf566('0xba')],undefined,_0x513513);if(_0x23eaa7[_0xf566('0xa1')]!==-0x1){this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x139'),_0x51349b));var _0x3915d1=this['googleASR'][_0xf566('0x6c')](this,_0x3c371f,_0x51349b);if(_0x3915d1){for(var _0x3c91d1 in _0x3915d1){if(_0x3915d1[_0xf566('0x92')](_0x3c91d1)){this[_0xf566('0x10')]['setVariable'](util['format'](_0xf566('0x13a'),_0x3c91d1[_0xf566('0x66')]()),_0x3915d1[_0x3c91d1]);}}return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x13b'),JSON[_0xf566('0x6f')](_0x3915d1)));}}return _0x23eaa7;};AGIVertices[_0xf566('0x17')]['tildeasr']=function(_0x4071de){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x13c'),_0x4071de[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x4071de[_0xf566('0x8e')])){return this['channel'][_0xf566('0xa8')](_0xf566('0x13d'));}if(!this[_0xf566('0x80')](_0x4071de[_0xf566('0x8f')])){return this['channel'][_0xf566('0xa8')](_0xf566('0x13e'));}var _0x54a3bc=_0xf566('0x13f');var _0x262263=util[_0xf566('0x2d')](_0xf566('0x134'),FILES_PATH,rs[_0xf566('0x11b')](0x4));var _0x282e34=util[_0xf566('0x2d')]('%s.%s',_0x262263,_0x54a3bc);var _0x2e88c2=!![];if(_0x4071de[_0xf566('0x135')]===_0xf566('0x136')){_0x2e88c2=![];}var _0x5b6052=this[_0xf566('0x10')][_0xf566('0x137')](_0x262263,_0x54a3bc,_0x4071de['intKey'],_0x4071de[_0xf566('0xba')],undefined,_0x2e88c2);if(_0x5b6052[_0xf566('0xa1')]!==-0x1){this[_0xf566('0x10')]['noop'](util['format'](_0xf566('0x140'),_0x282e34));var _0x36f5e1=this['tildeASR'][_0xf566('0x6c')](this,_0x4071de,_0x282e34);if(_0x36f5e1){for(var _0x34558a in _0x36f5e1){if(_0x36f5e1[_0xf566('0x92')](_0x34558a)){this[_0xf566('0x10')]['setVariable'](util[_0xf566('0x2d')](_0xf566('0x141'),_0x34558a[_0xf566('0x66')]()),_0x36f5e1[_0x34558a]);}}return this['channel']['noop'](util[_0xf566('0x2d')](_0xf566('0x142'),JSON[_0xf566('0x6f')](_0x36f5e1)));}}return _0x5b6052;};AGIVertices[_0xf566('0x17')][_0xf566('0x143')]=function(_0x13b1e8){logger[_0xf566('0xa6')](util['format'](_0xf566('0x144'),_0x13b1e8['label']));return this[_0xf566('0x10')]['continueAt'](_0x13b1e8[_0xf566('0x3c')],_0x13b1e8['extension'],_0x13b1e8[_0xf566('0x145')]);};AGIVertices[_0xf566('0x17')][_0xf566('0x146')]=function(_0x583fb1){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20GOTOIF\x20(%s)\x20block',_0x583fb1[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x583fb1['condition'])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x583fb1,_0xf566('0x147'));}try{var _0x382030=eval(_0x583fb1[_0xf566('0x148')])?'true':_0xf566('0x149');this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')](_0xf566('0x14a'),_0x583fb1[_0xf566('0x148')],_0x382030));return{'code':0xc8,'result':_0x382030};}catch(_0x24e0b8){return{'code':0xc8,'result':_0xf566('0x149')};}};AGIVertices[_0xf566('0x17')]['gotoiftime']=function(_0x41f324){logger[_0xf566('0xa6')](util['format'](_0xf566('0x14b'),_0x41f324[_0xf566('0x37')]));if(!this['isConfigured'](_0x41f324['interval_id'])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x41f324,_0xf566('0x14c'));}var _0xc4094=this['getIntervals'][_0xf566('0x6c')](this,_0x41f324[_0xf566('0x14d')]);if(!_0xc4094){return this['channel'][_0xf566('0x4e')](_0x41f324,'no\x20intervals\x20found');}for(var _0x131431=0x0;_0x131431<_0xc4094[_0xf566('0x98')];_0x131431+=0x1){var _0x1abd12=this['channel'][_0xf566('0x13')](util[_0xf566('0x2d')](_0xf566('0x14e'),_0xc4094[_0x131431]));if(_0x1abd12['result']===-0x1){return _0x1abd12;}logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x14f'),_0xc4094[_0x131431],_0x1abd12[_0xf566('0xa2')]));if(_0x1abd12[_0xf566('0xa2')]==='true'){logger[_0xf566('0xa6')](util['format'](_0xf566('0x14f'),_0xc4094[_0x131431],'true'));this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')]('IFTIME\x20%s\x20%s',_0xc4094[_0x131431],_0xf566('0x150')));return{'code':0xc8,'result':_0xf566('0x150')};}else{logger[_0xf566('0xa6')](util['format'](_0xf566('0x14f'),_0xc4094[_0x131431],'false'));this['channel']['noop'](util[_0xf566('0x2d')](_0xf566('0x14f'),_0xc4094[_0x131431],_0xf566('0x149')));}}return{'code':0xc8,'result':'false'};};AGIVertices[_0xf566('0x17')]['hangup']=function(_0x45b090){logger['info'](util[_0xf566('0x2d')](_0xf566('0x151'),_0x45b090[_0xf566('0x37')]));return this[_0xf566('0x10')][_0xf566('0x152')]();};AGIVertices['prototype'][_0xf566('0x153')]=function(_0x162f10){logger['info'](util[_0xf566('0x2d')](_0xf566('0x154'),_0x162f10['label']));if(!this['isConfigured'](_0x162f10[_0xf566('0x74')])){return this[_0xf566('0x10')]['noop']('no\x20key\x20configured');}var _0x58c1e4=_0xf566('0x13f');var _0x5c1d7c=util[_0xf566('0x2d')]('%s/recordings/%s',FILES_PATH,rs[_0xf566('0x11b')](0x4));var _0x20bf20=util[_0xf566('0x2d')](_0xf566('0x9b'),_0x5c1d7c,_0x58c1e4);var _0x10a281=!![];if(_0x162f10['beep']==='NOBEEP'){_0x10a281=![];}var _0x1b4718=this['channel'][_0xf566('0x137')](_0x5c1d7c,_0x58c1e4,_0x162f10[_0xf566('0x138')],_0x162f10[_0xf566('0xba')],undefined,_0x10a281);if(_0x1b4718[_0xf566('0xa1')]!==-0x1){this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x155'),_0x20bf20));var _0xc5486d=this[_0xf566('0x7f')][_0xf566('0x6c')](this,_0x162f10,_0x20bf20);if(_0xc5486d){for(var _0x42e683 in _0xc5486d){if(_0xc5486d[_0xf566('0x92')](_0x42e683)){this[_0xf566('0x10')][_0xf566('0x9c')](util[_0xf566('0x2d')](_0xf566('0x156'),_0x42e683['toUpperCase']()),_0xc5486d[_0x42e683]);}}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')]('IspeechASR\x20Result\x20%s',JSON[_0xf566('0x6f')](_0xc5486d)));}}return _0x1b4718;};AGIVertices[_0xf566('0x17')][_0xf566('0x157')]=function(_0x1b93b1){logger['info'](util[_0xf566('0x2d')]('Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block',_0x1b93b1[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x1b93b1[_0xf566('0x74')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x133'));}if(!this[_0xf566('0x80')](_0x1b93b1['text'])){return this[_0xf566('0x10')][_0xf566('0xa8')]('no\x20text\x20configured');}this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')](_0xf566('0x158'),_0x1b93b1[_0xf566('0x59')]));var _0x681637=this['ispeechTTS']['sync'](this,_0x1b93b1);if(_0x681637){this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x155'),_0x681637));var _0x10d38f=this[_0xf566('0x10')][_0xf566('0x127')](_0x681637,_0x1b93b1['intKey']);try{fs[_0xf566('0x107')](_0x681637+_0xf566('0x108'));}catch(_0x1ac4de){logger[_0xf566('0x4e')](_0x1ac4de);}return _0x10d38f;}return this[_0xf566('0x10')]['error'](_0x1b93b1,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0xf566('0x17')][_0xf566('0x159')]=function(_0x37ac22){logger['info'](util[_0xf566('0x2d')](_0xf566('0x15a'),_0x37ac22[_0xf566('0x37')]));if(!this['isConfigured'](_0x37ac22['findBy'])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x37ac22,_0xf566('0x15b'));}logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x15c'),this[_0xf566('0x10')][_0xf566('0x39')],_0x37ac22['findBy']));var _0x2ae75c=this[_0xf566('0x50')]['sync'](this,_0x37ac22['findBy']);if(_0x2ae75c){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x15d'),this[_0xf566('0x10')]['callerid'],_0x37ac22[_0xf566('0x15e')]));this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xf566('0x10')][_0xf566('0x39')],_0x37ac22['findBy']));return{'code':0xc8,'result':_0xf566('0x15f')};}else{logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xf566('0x10')][_0xf566('0x39')],_0x37ac22[_0xf566('0x15e')]));this['channel']['noop'](util[_0xf566('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xf566('0x10')][_0xf566('0x39')],_0x37ac22[_0xf566('0x15e')]));return{'code':0xc8,'result':_0xf566('0x160')};}};AGIVertices[_0xf566('0x17')][_0xf566('0x161')]=function(_0x571a5e){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x162'),_0x571a5e[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x571a5e[_0xf566('0x15e')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x571a5e,_0xf566('0x15b'));}logger['info'](util[_0xf566('0x2d')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0xf566('0x10')][_0xf566('0x39')],_0x571a5e[_0xf566('0x15e')]));var _0x380290=this[_0xf566('0x4f')][_0xf566('0x6c')](this,_0x571a5e[_0xf566('0x15e')]);if(_0x380290){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x15d'),this[_0xf566('0x10')][_0xf566('0x39')],_0x571a5e['findBy']));this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x15d'),this[_0xf566('0x10')]['callerid'],_0x571a5e['findBy']));return{'code':0xc8,'result':_0xf566('0x15f')};}else{logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this['channel'][_0xf566('0x39')],_0x571a5e['findBy']));this['channel']['noop'](util[_0xf566('0x2d')](_0xf566('0x163'),this[_0xf566('0x10')][_0xf566('0x39')],_0x571a5e[_0xf566('0x15e')]));return{'code':0xc8,'result':_0xf566('0x160')};}};AGIVertices[_0xf566('0x17')]['math']=function(_0x2addf3){logger['info'](util[_0xf566('0x2d')](_0xf566('0x164'),_0x2addf3['label']));if(!this[_0xf566('0x80')](_0x2addf3['operation'])){return this[_0xf566('0x10')]['error'](_0x2addf3,'no\x20operation\x20configured');}this[_0xf566('0x10')][_0xf566('0xa8')](util['format'](_0xf566('0x165'),_0x2addf3[_0xf566('0x166')]));var _0x1975f0=eval(_0x2addf3['operation']);if(!this[_0xf566('0x80')](_0x2addf3[_0xf566('0xdc')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xdd'));}var _0x1349c3=this[_0xf566('0x13')][_0xf566('0x6c')](this,_0x2addf3['variable_id']);if(!_0x1349c3){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x2addf3,'no\x20variable\x20found');}if(_[_0xf566('0x97')](_0x1975f0)){var _0xb97fd5=this;_0x1975f0[_0xf566('0xe0')](function(_0x5924ea,_0x3c219d){_0xb97fd5['channel'][_0xf566('0x9c')](util[_0xf566('0x2d')]('%s[%s]',_0x1349c3,_0x3c219d),_0x5924ea);});return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x167'),_0x1349c3));}else{return this[_0xf566('0x10')]['setVariable'](_0x1349c3,_0x1975f0);}};AGIVertices[_0xf566('0x17')][_0xf566('0xe')]=function(_0x54a367){logger['info'](util[_0xf566('0x2d')]('Enter\x20in\x20MENU\x20(%s)\x20block',_0x54a367[_0xf566('0x37')]));if(_0x54a367[_0xf566('0xa4')]===0x0){return this[_0xf566('0xa3')](_0x54a367);}_0x54a367['retry']-=0x1;if(!this[_0xf566('0x80')](_0x54a367[_0xf566('0x115')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x54a367,_0xf566('0x168'));}var _0x47dba4=this[_0xf566('0x21')]['sync'](this,_0x54a367[_0xf566('0x115')]);if(!_0x47dba4){return this['channel'][_0xf566('0x4e')](_0x54a367,_0xf566('0x116'));}var _0x4949e5=this[_0xf566('0x10')][_0xf566('0x117')](_0x47dba4,_0x54a367[_0xf566('0x169')],_0x54a367[_0xf566('0x16a')]);var _0x62404=_0x4949e5[_0xf566('0xa1')];if(_0x4949e5[_0xf566('0xa1')]===-0x1){this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x54a367,'-1');return _0x4949e5;}else if(_0x4949e5[_0xf566('0xa2')]===_0xf566('0xba')){_0x4949e5[_0xf566('0xa1')]=_0x4949e5['result'][_0xf566('0x98')]>0x0?_0x4949e5['result']:'t';}else if(_[_0xf566('0x42')](_0x4949e5[_0xf566('0xa1')])){_0x4949e5['result']='#';_0x62404='#';}if(!this[_0xf566('0x80')](_0x54a367['variable_id'])){this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xdd'));}else{var _0x16045f=this[_0xf566('0x13')][_0xf566('0x6c')](this,_0x54a367[_0xf566('0xdc')]);if(!_0x16045f){return this['channel'][_0xf566('0x4e')](_0x54a367,_0xf566('0xde'));}this['channel']['setVariable'](_0x16045f,_0x62404);}this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x54a367,_0x62404);return _0x4949e5;};AGIVertices[_0xf566('0x17')][_0xf566('0xa8')]=function(_0x12b445){logger[_0xf566('0xa6')](util['format'](_0xf566('0x16b'),_0x12b445[_0xf566('0x37')]));return this['channel'][_0xf566('0xa8')](_0x12b445[_0xf566('0x16c')]||_0x12b445[_0xf566('0x37')]);};AGIVertices['prototype'][_0xf566('0x16d')]=function(_0x88a4bd){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x16e'),_0x88a4bd[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x88a4bd[_0xf566('0x15e')])){return this[_0xf566('0x10')]['error'](_0x88a4bd,_0xf566('0x15b'));}logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x15c'),this[_0xf566('0x10')][_0xf566('0x39')],_0x88a4bd[_0xf566('0x15e')]));var _0x54c0a4=this[_0xf566('0x16f')][_0xf566('0x6c')](this,_0x88a4bd[_0xf566('0x170')]);var _0x14e3f7=this[_0xf566('0x171')]['sync'](this,_0x88a4bd['findBy'],_0x54c0a4);if(_0x14e3f7){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xf566('0x10')]['callerid'],_0x88a4bd['findBy']));this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x15d'),this[_0xf566('0x10')][_0xf566('0x39')],_0x88a4bd[_0xf566('0x15e')]));return{'code':0xc8,'result':_0xf566('0x15f')};}else{logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x163'),this[_0xf566('0x10')][_0xf566('0x39')],_0x88a4bd[_0xf566('0x15e')]));this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x15d'),this['channel'][_0xf566('0x39')],_0x88a4bd[_0xf566('0x15e')]));return{'code':0xc8,'result':'failure'};}};AGIVertices[_0xf566('0x17')][_0xf566('0x172')]=function(_0x162f2b){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x173'),_0x162f2b['label']));if(!this[_0xf566('0x80')](_0x162f2b[_0xf566('0x115')])){return this[_0xf566('0x10')]['error'](_0x162f2b,_0xf566('0x168'));}var _0x2f197d=this['getSound'][_0xf566('0x6c')](this,_0x162f2b[_0xf566('0x115')]);if(!_0x2f197d){return this['channel']['error'](_0x162f2b,'no\x20file\x20audio\x20found');}var _0x5089af=this[_0xf566('0x10')]['exec']('PLAYBACK',[_0x2f197d,_0x162f2b['opts']]);if(_0x5089af[_0xf566('0xa1')]===-0x1){return _0x5089af;}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xc5'),_0xf566('0x174'),_0x2f197d));};AGIVertices[_0xf566('0x17')][_0xf566('0x175')]=function(_0x2b4c4a){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x176'),_0x2b4c4a[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x2b4c4a[_0xf566('0x177')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x2b4c4a,_0xf566('0x178'));}var _0xc2c621='';var _0x83bd34=parseInt(_0x2b4c4a[_0xf566('0x177')],0xa);if(isNaN(_0x83bd34)){_0xc2c621=_0x2b4c4a['queue_id'];}else{_0xc2c621=this[_0xf566('0x18')][_0xf566('0x6c')](this,_0x2b4c4a[_0xf566('0x177')]);if(!_0xc2c621){return this['channel'][_0xf566('0x4e')](_0x2b4c4a,'no\x20queue\x20found');}}var _0x4b82e7='';if(this[_0xf566('0x80')](_0x2b4c4a[_0xf566('0x115')])){var _0x23b8da=this[_0xf566('0x21')][_0xf566('0x6c')](this,_0x2b4c4a[_0xf566('0x115')]);if(_0x23b8da){_0x4b82e7=_0x23b8da;}}this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x2b4c4a,_0xc2c621);if(_0x2b4c4a[_0xf566('0xec')][_0xf566('0x179')]('x')<0x0){_0x2b4c4a[_0xf566('0xec')]+='x';}if(_0x2b4c4a[_0xf566('0xec')]['indexOf']('X')<0x0){_0x2b4c4a['opts']+='X';}this[_0xf566('0x10')][_0xf566('0x9c')]('XMCS-QUEUE',_0xc2c621?_0xc2c621[_0xf566('0x17a')]():'');var _0x2c9b9e=this[_0xf566('0x10')][_0xf566('0x54')](_0xf566('0x17b'),[_0xc2c621,_0x2b4c4a[_0xf566('0xec')],_0x2b4c4a['url'],_0x4b82e7,_0x2b4c4a[_0xf566('0xba')],_0x2b4c4a[_0xf566('0x9')],_0x2b4c4a[_0xf566('0x17c')],_0x2b4c4a[_0xf566('0x17d')],'',_0x2b4c4a[_0xf566('0x17e')]]);if(_0x2c9b9e[_0xf566('0xa1')]===-0x1){return _0x2c9b9e;}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xc5'),_0xf566('0x17b'),_0xc2c621));};AGIVertices[_0xf566('0x17')]['record']=function(_0x569a46){logger['info'](util[_0xf566('0x2d')](_0xf566('0x17f'),_0x569a46['label']));var _0x2239cf=_0x569a46[_0xf566('0x180')]||_0xf566('0x13f');var _0x26fe31=util[_0xf566('0x2d')](_0xf566('0x181'),this[_0xf566('0x10')][_0xf566('0x40')],rs[_0xf566('0x11b')](0x5));var _0x4785e1=util['format'](_0xf566('0x182'),FILES_PATH,_0x26fe31,_0x2239cf);var _0x2d1846=util[_0xf566('0x2d')]('%s/recordings/%s',FILES_PATH,_0x26fe31);this[_0xf566('0x3a')][_0xf566('0x6c')](this,_0x569a46,_0x26fe31,_0x4785e1);this[_0xf566('0x10')]['setVariable']('RECORDING_SAVENAME',_0x26fe31);logger[_0xf566('0xa6')]('Recording\x20%s\x20%s\x20%s\x20%s',_0x2d1846,_0x2239cf,_0x569a46[_0xf566('0x183')],_0x569a46[_0xf566('0xba')]);return this[_0xf566('0x10')][_0xf566('0x137')](_0x2d1846,_0x2239cf,_0x569a46['escape_digits'],_0x569a46['timeout'],undefined,!![]);};AGIVertices['prototype'][_0xf566('0x184')]=function(_0x1a1956){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x185'),_0x1a1956[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x1a1956[_0xf566('0x61')])){return this['channel'][_0xf566('0xa8')](_0xf566('0x186'));}var _0x166315=this[_0xf566('0x60')][_0xf566('0x6c')](this,_0x1a1956);logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Response:',util['inspect'](_0x166315,{'showHidden':![],'depth':null})));if(!this[_0xf566('0x80')](_0x1a1956[_0xf566('0xdc')])){return this['channel'][_0xf566('0xa8')](_0xf566('0x187'));}var _0x3e55a1=this[_0xf566('0x13')]['sync'](this,_0x1a1956[_0xf566('0xdc')]);if(!_0x3e55a1){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x1a1956,_0xf566('0xde'));}this[_0xf566('0x10')][_0xf566('0x9c')](util['format'](_0xf566('0x188'),_0x3e55a1),_0x166315[_0xf566('0x71')]?_0x166315[_0xf566('0x71')]:_0xf566('0x189'));this[_0xf566('0x10')]['setVariable'](util[_0xf566('0x2d')](_0xf566('0x18a'),_0x3e55a1),_0x166315['statusMessage']?_0x166315[_0xf566('0x18b')]:'OK');if(_0x166315[_0xf566('0x67')]){try{this[_0xf566('0x9a')](_0x166315[_0xf566('0x67')],_0x3e55a1);}catch(_0xc0f19f){logger[_0xf566('0x4e')](util['format'](_0xf566('0x18c'),_0x3e55a1));}}return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')]('variable\x20%s\x20set',_0x3e55a1));};AGIVertices[_0xf566('0x17')]['saydigits']=function(_0x208a8d){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x18d'),_0x208a8d[_0xf566('0x37')]));return this['channel'][_0xf566('0x18e')](_0x208a8d[_0xf566('0x18f')]['replace'](/\s+/g,''),_0x208a8d[_0xf566('0x183')]);};AGIVertices['prototype'][_0xf566('0x190')]=function(_0x132e76){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20SAYNUMBER\x20(%s)\x20block',_0x132e76[_0xf566('0x37')]));return this['channel']['sayNumber'](_0x132e76[_0xf566('0x63')]['replace'](/\s+/g,''),_0x132e76[_0xf566('0x183')]);};AGIVertices[_0xf566('0x17')][_0xf566('0x191')]=function(_0x24ddbf){logger['info'](util[_0xf566('0x2d')]('Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block',_0x24ddbf[_0xf566('0x37')]));return this['channel'][_0xf566('0x192')](_0x24ddbf[_0xf566('0x59')],_0x24ddbf[_0xf566('0x183')]);};AGIVertices[_0xf566('0x17')][_0xf566('0x193')]=function(_0x276c63){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20SENDMAIL\x20(%s)\x20block',_0x276c63[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x276c63['account_id'])){return this[_0xf566('0x10')]['noop'](_0xf566('0x194'));}var _0x8624ec=this[_0xf566('0x25')][_0xf566('0x6c')](this,_0x276c63[_0xf566('0x195')]);if(!_0x8624ec||!_0x8624ec[_0xf566('0x196')]){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x276c63,'no\x20mail\x20account\x20found');}var _0x5a9e05={'from':util['format'](_0xf566('0x197'),_0x8624ec[_0xf566('0x16')],_0x8624ec['email']||_0x8624ec[_0xf566('0x196')][_0xf566('0x198')]),'to':_0x276c63['to']||'','cc':_0x276c63['cc']||'','bcc':_0x276c63['bcc']||'','subject':_0x276c63[_0xf566('0x199')],'html':_0x276c63[_0xf566('0x59')],'text':_0x276c63[_0xf566('0x59')]};var _0x1bf00={'tls':{'rejectUnauthorized':![]}};if(_0x8624ec[_0xf566('0x196')][_0xf566('0x19a')]){_0x1bf00['service']=_0x8624ec[_0xf566('0x196')]['service'];}else{_0x1bf00[_0xf566('0x19b')]=_0x8624ec[_0xf566('0x196')][_0xf566('0x19b')];_0x1bf00[_0xf566('0x19c')]=_0x8624ec[_0xf566('0x196')][_0xf566('0x19c')];_0x1bf00[_0xf566('0x19d')]=_0x8624ec[_0xf566('0x196')][_0xf566('0x19d')];}if(_0x8624ec[_0xf566('0x196')]['authentication']){_0x1bf00[_0xf566('0x19e')]={'user':_0x8624ec[_0xf566('0x196')][_0xf566('0x198')],'pass':_0x8624ec['Smtp']['pass']};}if(this[_0xf566('0x80')](_0x276c63[_0xf566('0x19f')])){}logger[_0xf566('0xe5')](_0xf566('0x1a0'),JSON[_0xf566('0x6f')](_0x5a9e05));this[_0xf566('0x36')]['sync'](this,_0x276c63,_0x276c63['account_id']);this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')]('Trying\x20SendMail\x20with\x20account\x20%s',_0x8624ec[_0xf566('0x16')]));this[_0xf566('0x27')][_0xf566('0x6c')](this,_0x1bf00,_0x5a9e05);return this[_0xf566('0x10')][_0xf566('0xa8')]('Mail\x20message\x20added\x20to\x20outgoing\x20process');};AGIVertices['prototype']['sendFax']=function(_0x55a7e9){logger[_0xf566('0xa6')](util['format'](_0xf566('0x1a1'),_0x55a7e9[_0xf566('0x37')]));return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x1a2'));};AGIVertices[_0xf566('0x17')][_0xf566('0x1a3')]=function(_0x44cefb){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x1a4'),_0x44cefb['label']));if(!this[_0xf566('0x80')](_0x44cefb[_0xf566('0x1a5')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x1a6'));}var _0x33c333=this[_0xf566('0x34')][_0xf566('0x6c')](this,_0x44cefb[_0xf566('0x1a5')]);if(!_0x33c333){return this['channel'][_0xf566('0x4e')](_0x44cefb,_0xf566('0x1a7'));}var _0x320ab8={'body':_0x44cefb['sms_text'],'phone':_0x44cefb['to']||'','SmsAccountId':_0x33c333['id']};logger['debug'](_0xf566('0x1a8'),JSON[_0xf566('0x6f')](_0x320ab8));this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x44cefb,_0x44cefb['sms_account_id']);this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x1a9'),_0x33c333[_0xf566('0x16')]));this['createSmsMessage'][_0xf566('0x6c')](this,_0x320ab8);return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x1aa'));};AGIVertices[_0xf566('0x17')]['set']=function(_0x8a64f5){logger['info'](util[_0xf566('0x2d')]('Enter\x20in\x20SET\x20(%s)\x20block',_0x8a64f5[_0xf566('0x37')]));if(!this['isConfigured'](_0x8a64f5['variable_id'])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x8a64f5,_0xf566('0x1ab'));}var _0x54a9fd=this[_0xf566('0x13')]['sync'](this,_0x8a64f5[_0xf566('0xdc')]);if(!_0x54a9fd){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x8a64f5,_0xf566('0xde'));}return this['channel'][_0xf566('0x9c')](_0x54a9fd,_0x8a64f5['variable_value']);};AGIVertices[_0xf566('0x17')][_0xf566('0x1ac')]=function(_0x32c8ef){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20START\x20(%s)\x20block',_0x32c8ef[_0xf566('0x37')]));this[_0xf566('0x10')]['noop'](_0xf566('0x1ad'));if(_0x32c8ef[_0xf566('0xb8')]==='yes'){this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x1ae'));return this[_0xf566('0x10')]['answer']();}return this[_0xf566('0x10')]['noop'](_0xf566('0x1af'));};AGIVertices[_0xf566('0x17')][_0xf566('0x1b0')]=function(_0x29f935){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x1b1'),_0x29f935[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x29f935[_0xf566('0x1b2')])){return this[_0xf566('0x10')]['error'](_0x29f935,'no\x20subproject\x20selected');}var _0x12b128=this['getSquareProject'][_0xf566('0x6c')](this,_0x29f935[_0xf566('0x1b2')]);if(!this[_0xf566('0x80')](_0x12b128)){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x29f935,util[_0xf566('0x2d')](_0xf566('0x1b3'),_0x29f935[_0xf566('0x1b2')]));}if(_0x12b128===this[_0xf566('0x10')][_0xf566('0x3e')]){return this['channel']['error'](_0x29f935,_0xf566('0x1b4'));}this[_0xf566('0x36')]['sync'](this,_0x29f935,_0x12b128);var _0x5018b7=this[_0xf566('0x10')]['exec'](_0xf566('0x1b5'),util[_0xf566('0x2d')](_0xf566('0x1b6'),config[_0xf566('0x9')][_0xf566('0x19b')]||_0xf566('0x1b7'),_0x12b128,this[_0xf566('0x10')]['arg_1']));if(_0x5018b7[_0xf566('0xa1')]===-0x1){return _0x5018b7;}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0xc5'),_0xf566('0x1b5'),_0x12b128));};AGIVertices['prototype'][_0xf566('0x1b8')]=function(_0x433309){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x1b9'),_0x433309['label']));var _0xc05103=this[_0xf566('0x53')][_0xf566('0x6c')](this,_0x433309['command']);this[_0xf566('0x36')][_0xf566('0x6c')](this,_0x433309,_0x433309[_0xf566('0x1ba')]);if(this[_0xf566('0x80')](_0x433309['variable_id'])){var _0x561b63=this['getVariable'][_0xf566('0x6c')](this,_0x433309[_0xf566('0xdc')]);if(_0x561b63){this[_0xf566('0x10')][_0xf566('0x9c')](_0x561b63,_0xc05103);return this['channel'][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x1bb'),_0x433309[_0xf566('0x1ba')],_0x561b63));}}return this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x1bc'),_0x433309[_0xf566('0x1ba')]));};AGIVertices['prototype'][_0xf566('0x1bd')]=function(_0xcacbdd){logger['info'](util[_0xf566('0x2d')](_0xf566('0x1be'),_0xcacbdd[_0xf566('0x37')]));_0xcacbdd[_0xf566('0x59')]=_0xcacbdd[_0xf566('0x59')][_0xf566('0x55')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xf566('0x80')](_0xcacbdd['apiKey'])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0x1bf'));}if(!this[_0xf566('0x80')](_0xcacbdd[_0xf566('0x59')])){return this[_0xf566('0x10')][_0xf566('0xa8')]('no\x20text\x20configured');}this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x1c0'),_0xcacbdd[_0xf566('0x59')]));var _0x3ef120=this['googleCloudTTS']['sync'](this,_0xcacbdd);if(_0x3ef120){this[_0xf566('0x10')][_0xf566('0xa8')](util['format']('Google\x20Cloud\x20TTS\x20%s\x20file\x20created',_0x3ef120));var _0x484320=this[_0xf566('0x10')][_0xf566('0x127')](_0x3ef120);try{fs['unlink'](_0x3ef120+_0xf566('0x108'));}catch(_0x234ef2){logger['error'](_0x234ef2);}return _0x484320;}return this['channel'][_0xf566('0x4e')](_0xcacbdd,_0xf566('0x1c1'));};AGIVertices[_0xf566('0x17')][_0xf566('0x1c2')]=function(_0x116317){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x1c3'),_0x116317['label']));_0x116317[_0xf566('0x59')]=_0x116317[_0xf566('0x59')]['replace'](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xf566('0x80')](_0x116317[_0xf566('0x59')])){return this[_0xf566('0x10')][_0xf566('0xa8')](_0xf566('0xc8'));}this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')]('Trying\x20Google\x20TTS\x20%s',_0x116317[_0xf566('0x59')]));var _0x655662=this[_0xf566('0x5e')][_0xf566('0x6c')](this,_0x116317);if(_0x655662){this[_0xf566('0x10')][_0xf566('0xa8')](util['format']('Google\x20TTS\x20%s\x20file\x20created',_0x655662));var _0x10882c=this['channel'][_0xf566('0x127')](_0x655662);try{fs['unlink'](_0x655662+_0xf566('0x108'));}catch(_0x388cd0){logger['error'](_0x388cd0);}return _0x10882c;}return this[_0xf566('0x10')][_0xf566('0x4e')](_0x116317,_0xf566('0x1c4'));};AGIVertices[_0xf566('0x17')][_0xf566('0x1c5')]=function(_0x1ff5bb){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20UNPAUSE\x20(%s)\x20block',_0x1ff5bb[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x1ff5bb[_0xf566('0x15e')])){return this[_0xf566('0x10')]['error'](_0x1ff5bb,_0xf566('0x15b'));}logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x15c'),this['channel'][_0xf566('0x39')],_0x1ff5bb['findBy']));var _0x254194=this['agentUnpause']['sync'](this,_0x1ff5bb[_0xf566('0x15e')]);if(_0x254194){logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x15d'),this[_0xf566('0x10')][_0xf566('0x39')],_0x1ff5bb[_0xf566('0x15e')]));this[_0xf566('0x10')][_0xf566('0xa8')](util[_0xf566('0x2d')](_0xf566('0x15d'),this[_0xf566('0x10')][_0xf566('0x39')],_0x1ff5bb[_0xf566('0x15e')]));return{'code':0xc8,'result':_0xf566('0x15f')};}else{logger[_0xf566('0xa6')](util[_0xf566('0x2d')](_0xf566('0x163'),this['channel']['callerid'],_0x1ff5bb[_0xf566('0x15e')]));this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xf566('0x10')][_0xf566('0x39')],_0x1ff5bb[_0xf566('0x15e')]));return{'code':0xc8,'result':'failure'};}};AGIVertices[_0xf566('0x17')]['voicemail']=function(_0x247d63){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x247d63['label']));var _0x384265=this[_0xf566('0x10')]['exec'](_0xf566('0x1c6'),[_0x247d63[_0xf566('0x1c7')],_0x247d63['options']]);if(_0x384265[_0xf566('0xa1')]===-0x1){return _0x384265;}return this[_0xf566('0x10')]['noop'](util[_0xf566('0x2d')](_0xf566('0xc5'),'VOICEMAIL',_0x247d63[_0xf566('0x1c7')]));};AGIVertices[_0xf566('0x17')][_0xf566('0x1c8')]=function(_0x363478){logger[_0xf566('0xa6')](util[_0xf566('0x2d')]('Enter\x20in\x20SWITCH\x20(%s)\x20block',_0x363478[_0xf566('0x37')]));if(!this[_0xf566('0x80')](_0x363478[_0xf566('0xdc')])){return this[_0xf566('0x10')][_0xf566('0x4e')](_0x363478,_0xf566('0x1ab'));}var _0x3d8cba=this[_0xf566('0x13')][_0xf566('0x6c')](this,_0x363478['variable_id']);if(!_0x3d8cba){return this['channel']['error'](_0x363478,_0xf566('0xde'));}var _0x3a572=this[_0xf566('0x10')]['getVariable'](_0x3d8cba);return{'code':0xc8,'result':_0x3a572['extra']?_0x3a572[_0xf566('0xa2')]:'-'};};String[_0xf566('0x17')][_0xf566('0x9e')]=function(_0x8a8409,_0x21125a){return this[_0xf566('0x9d')](_0x8a8409)[_0xf566('0x1c9')](_0x21125a);};module[_0xf566('0x1ca')]=AGIVertices;
\ No newline at end of file
+var _0x96bd=['Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','LUMENVOX_ASR_CONFIDENCE','RECOG_INSTANCE()','LUMENVOX_ASR_INSTANCE','sestekasr','MRCPRecog','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_INSTANCE','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20odbc\x20database\x20found','no\x20query\x20configured','query:\x20%s','getQueryOdbc','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','forEach','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','dial','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL','SIP/%s','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','no\x20text\x20configured','bot','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','out','Dialogflow\x20Result\x20%s','speech','Dialogflow\x20is\x20unreachable','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','no\x20project_id\x20configured','no\x20client_email\x20configured','no\x20private_key\x20configured','no\x20anguage\x20configured','Trying\x20DialogflowV2:\x20%s','providerResponse','toUpperCase','dialogflowV2','DialogflowV2\x20Result\x20%s','sesteknda','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','no\x20password\x20configured','ndassistant_url','SESTEK_NDA_%s','audiofile','Sestek\x20NDA\x20%s\x20file\x20created','streamFile','unlink','.wav','SestekNDA\x20Result\x20%s','SestekNDA\x20is\x20unreachable','end','Enter\x20in\x20END\x20(%s)\x20block','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','SIP/%s/%s','opts','Executed\x20command\x20%s','finally','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','no\x20file\x20audio\x20found','getData','response','maxdigit','test','mindigit','hiddendigitsnum','generate','hiddendigitspos','substr','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','goal','goalname','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','no\x20valid\x20credentials\x20configured','aws\x20Polly\x20%s\x20file\x20created','aws\x20Polly\x20is\x20unreachable','awslex','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','aws_bot_name','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','isString','message','amazonlex','Amazon\x20Lex\x20is\x20unreachable','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','wav','%s/recordings/%s','beep','NOBEEP','recordFile','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','GoogleASR\x20Result\x20%s','tildeasr','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','tilde\x20%s\x20file\x20created','TILDE_ASR_%s','gotoc','Enter\x20in\x20GOTO\x20(%s)\x20block','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','false','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20interval\x20configured','no\x20intervals\x20found','getVariable','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','true','hangup','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','login','Enter\x20in\x20LOGIN\x20(%s)\x20block','findBy','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','success','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','%s[%s]','variable\x20%s[key]\x20set','Enter\x20in\x20MENU\x20(%s)\x20block','Enter\x20in\x20NOOP\x20(%s)\x20block','pause','pause_id','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','PLAYBACK','queue','Enter\x20in\x20QUEUE\x20(%s)\x20block','no\x20queue\x20selected','queue_id','indexOf','XMCS-QUEUE','QUEUE','gosub','position','Enter\x20in\x20RECORD\x20(%s)\x20block','%s_%s','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','restapi','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','restAPI','Response:','inspect','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','200','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','digits','saynumber','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','number','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','sendMail','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','bcc','service','host','port','secure','user','pass','template_id','sendMail\x20message','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','Enter\x20in\x20SENDFAX\x20(%s)\x20block','sendSMS','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','sendSMS\x20message','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','no\x20variable\x20selected','variable_value','start','Enter\x20in\x20START\x20(%s)\x20block','START\x20CALLY\x20SQUARE','yes','Answer','Skipped\x20Answer','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','no\x20subproject\x20found\x20with\x20id\x20%d','project_id','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','system','Enter\x20in\x20SYSTEM\x20(%s)\x20block','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','Google\x20Cloud\x20TTS\x20is\x20unreachable','tts','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','Google\x20TTS\x20is\x20unreachable','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','Enter\x20in\x20VOICEMAIL\x20(%s)\x20block','VOICEMAIL','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','join','exports','path','lodash','shelljs','odbc','randomstring','moment','request-promise','agi','../../config/environment','./scripts','/var/opt/motion2/server/files','rawHeaders','rawBody','menu','getdigits','getsecretdigits','rpc','mailRpc','getVariableById','then','name','prototype','getVoiceQueue','getVoiceQueueById','getSquareProject','getSquareProjectById','catch','getSquareOdbc','getUser','getUserById','getTrunk','getTrunkById','getSound','getSoundById','getSoundPath','getMailAccount','sendMailMessage','IntervalId','Intervals','%s/sounds/converted/%s','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','query','Query\x20executed\x20correctly\x20%s','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','agicommand','channel','arg_1','callerid','createSquareRecording','uniqueid','context','extension','priority','accountcode','createSquareMessage','createCmContact','isEmpty','isNil','callback_','random','lastName','phone','scheduledAt','Callback\x20scheduled\x20at\x20','toString','callback_priority','getPause','getPauseById','agent','agentPause','agentUnpause','agentLogout','agentLogin','internal','%s/%s@from-sip/n','LOCAL','shellCommand','trim','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','text','languageCode','en-US','ssmlGender','audioEncoding','MP3','googleTTS','google_tts_language','url','method','timeout','POST','PUT','body','parse','headers','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','render','stringify','statusCode','statusMessage','500\x20-\x20Internal\x20Server\x20Error','options','googleDialogflow','key','googleDialogflowV2','dialogflowV2_project_id','client_email','private_key','sestekNDA','ispeechTTS','ispeech_tts_language','speed','ispeechASR','ispeech_asr_language','model','awsPolly','aws_polly_voice','Amy','aws_text_type','awsLex','aws_access_key_id','aws_secret_access_key','aws_lex_region','googleASR','google_asr_language','tildeASR','appid','appsecret','uri','hasOwnProperty','includes','replaceObjectAllVariables','replaceAllVariables','recursiveNodeIndex','isArray','saveRestApiResult','isPlainObject','%s.%s','length','format','setVariable','split','replaceAll','extra','getAndSetVariable','result','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','maxRetry','createSquareDetailsReport','sync','retry','mrcpsynth','label','isConfigured','exec','MRCPSynth','noop','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','grammar','no\x20grammar\x20configured','RECOG_CONFIDENCE()','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','wait','list_id','delay','add','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','Executed\x20command\x20%s\x20%s','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','sestektts'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x96bd,0x112));var _0xd96b=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x96bd[_0x122ef9];return _0x42fba0;};'use strict';var fs=require('fs');var path=require(_0xd96b('0x0'));var util=require('util');var _=require(_0xd96b('0x1'));var sh=require(_0xd96b('0x2'));var odbc=require(_0xd96b('0x3'))();var rs=require(_0xd96b('0x4'));var moment=require(_0xd96b('0x5'));var Mustache=require('mustache');var rp=require(_0xd96b('0x6'));var logger=require('../../config/logger')(_0xd96b('0x7'));var config=require(_0xd96b('0x8'));var scripts=require(_0xd96b('0x9'));var FILES_PATH=_0xd96b('0xa');var recursiveMapAttributes=[_0xd96b('0xb'),_0xd96b('0xc')];var verticesWithRetry=[_0xd96b('0xd'),_0xd96b('0xe'),_0xd96b('0xf')];var AGIVertices=function(_0x45fda7,_0x1dca8a,_0x480b03){this['channel']=_0x45fda7;this[_0xd96b('0x10')]=_0x1dca8a;this[_0xd96b('0x11')]=_0x480b03;};AGIVertices['prototype']['getVariable']=function(_0x3ac9ac,_0xe227f6){this[_0xd96b('0x10')][_0xd96b('0x12')](_0x3ac9ac)[_0xd96b('0x13')](function(_0x4d15fe){_0xe227f6(null,_0x4d15fe?_0x4d15fe[_0xd96b('0x14')]:![]);})['catch'](function(_0x36d681){_0xe227f6(_0x36d681);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x16')]=function(_0x5046ab,_0x3fc044){this[_0xd96b('0x10')][_0xd96b('0x17')](_0x5046ab)[_0xd96b('0x13')](function(_0x52607f){_0x3fc044(null,_0x52607f?_0x52607f[_0xd96b('0x14')]:![]);})['catch'](function(_0x36fa41){_0x3fc044(_0x36fa41);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x18')]=function(_0x286d66,_0xd7e704){this[_0xd96b('0x10')][_0xd96b('0x19')](_0x286d66)['then'](function(_0x2966f1){_0xd7e704(null,_0x2966f1?_0x2966f1[_0xd96b('0x14')]:![]);})[_0xd96b('0x1a')](function(_0xc9f000){_0xd7e704(_0xc9f000);});};AGIVertices['prototype'][_0xd96b('0x1b')]=function(_0x27f222,_0xf9a251){this[_0xd96b('0x10')]['getSquareOdbcById'](_0x27f222)[_0xd96b('0x13')](function(_0x4262f5){_0xf9a251(null,_0x4262f5?_0x4262f5['dsn']:![]);})['catch'](function(_0xe37e0f){_0xf9a251(_0xe37e0f);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1c')]=function(_0x517a32,_0x1140dc){this[_0xd96b('0x10')][_0xd96b('0x1d')](_0x517a32)[_0xd96b('0x13')](function(_0xca0368){_0x1140dc(null,_0xca0368?_0xca0368[_0xd96b('0x14')]:![]);})[_0xd96b('0x1a')](function(_0x555da9){_0x1140dc(_0x555da9);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1e')]=function(_0x493494,_0x35a921){this[_0xd96b('0x10')][_0xd96b('0x1f')](_0x493494)[_0xd96b('0x13')](function(_0x2a2875){_0x35a921(null,_0x2a2875?_0x2a2875[_0xd96b('0x14')]:![]);})['catch'](function(_0x3bd517){_0x35a921(_0x3bd517);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x20')]=function(_0xe3622b,_0x844476){var _0xf481fd=this;this[_0xd96b('0x10')][_0xd96b('0x21')](_0xe3622b)[_0xd96b('0x13')](function(_0x5c67dc){_0x844476(null,_0x5c67dc?_0xf481fd[_0xd96b('0x22')](_0x5c67dc['save_name']):![]);})[_0xd96b('0x1a')](function(_0x3b1b6b){_0x844476(_0x3b1b6b);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x23')]=function(_0x5189ae,_0x46bbb0){this[_0xd96b('0x10')]['getMailAccountById'](_0x5189ae)[_0xd96b('0x13')](function(_0x29a558){_0x46bbb0(null,_0x29a558?_0x29a558:![]);})[_0xd96b('0x1a')](function(_0x3afe73){_0x46bbb0(_0x3afe73);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x24')]=function(_0x1cacf4,_0x46612f,_0x356cee){this[_0xd96b('0x11')][_0xd96b('0x24')](_0x1cacf4,_0x46612f)['then'](function(){_0x356cee(null);})[_0xd96b('0x1a')](function(_0x36ee2e){_0x356cee(_0x36ee2e);});};AGIVertices['prototype']['getIntervals']=function(_0x14f97a,_0x4bafac){this['rpc']['getIntervalById'](_0x14f97a)[_0xd96b('0x13')](function(_0x4e82e0){if(_0x4e82e0){if(_0x4e82e0[_0xd96b('0x25')]){_0x4bafac(null,[_0x4e82e0['interval']]);}else{_0x4bafac(null,_['map'](_0x4e82e0[_0xd96b('0x26')],'interval'));}}else{_0x4bafac(null,![]);}})[_0xd96b('0x1a')](function(_0xfd8fe1){_0x4bafac(_0xfd8fe1);});};AGIVertices[_0xd96b('0x15')]['getSoundPath']=function(_0x134640){return util['format'](_0xd96b('0x27'),FILES_PATH,_0x134640);};AGIVertices['prototype']['getQueryOdbc']=function(_0x1a4377,_0x25d715,_0x4ac97b){odbc[_0xd96b('0x28')](_0x1a4377,function(_0xb0ecac){if(_0xb0ecac){logger[_0xd96b('0x29')](_0xd96b('0x2a'),_0xb0ecac);_0x4ac97b(_0xb0ecac);}else{logger[_0xd96b('0x2b')]('ODBC\x20connection\x20successfully');odbc[_0xd96b('0x2c')](_0x25d715,function(_0x104f8c,_0x101062){if(_0x104f8c){logger[_0xd96b('0x2b')]('Error\x20executing\x20query\x20%s',_0x25d715);_0x4ac97b(_0x104f8c);}else{logger[_0xd96b('0x2b')](_0xd96b('0x2d'),_0x25d715);odbc[_0xd96b('0x2e')](function(_0x3d20a9){if(_0x3d20a9){logger[_0xd96b('0x29')](_0xd96b('0x2f'),_0x3d20a9);}_0x4ac97b(null,_0x101062);});}});}});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x30')]=function(_0x500daa,_0x47a94e){this['rpc'][_0xd96b('0x31')](_0x500daa)[_0xd96b('0x13')](function(_0x22e011){_0x47a94e(null,_0x22e011?_0x22e011:![]);})[_0xd96b('0x1a')](function(_0x43527a){_0x47a94e(_0x43527a);});};AGIVertices['prototype'][_0xd96b('0x32')]=function(_0x4f0e5f,_0x312467){this[_0xd96b('0x10')][_0xd96b('0x32')](_0x4f0e5f)['then'](function(_0x468842){_0x312467(null,_0x468842);})[_0xd96b('0x1a')](function(_0x483eae){_0x312467(_0x483eae);});};AGIVertices[_0xd96b('0x15')]['createSquareDetailsReport']=function(_0x505764,_0x3016a2,_0x436151){this[_0xd96b('0x10')]['createSquareDetailsReport']({'uniqueid':this['channel']['uniqueid'],'node':_0x505764['label'],'application':_0x505764[_0xd96b('0x33')],'data':_0x3016a2||null,'project_name':this[_0xd96b('0x34')][_0xd96b('0x35')],'callerid':this[_0xd96b('0x34')][_0xd96b('0x36')]})[_0xd96b('0x13')](function(_0x398fd6){if(_0x436151){_0x436151(null,_0x398fd6);}})['catch'](function(_0x2d6f2a){if(_0x436151){_0x436151(_0x2d6f2a);}});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x37')]=function(_0x40dfcd,_0x3b14b0,_0x3aa2ec,_0x5e09c4){this['rpc'][_0xd96b('0x37')]({'uniqueid':this[_0xd96b('0x34')][_0xd96b('0x38')],'callerid':this[_0xd96b('0x34')][_0xd96b('0x36')],'calleridname':this[_0xd96b('0x34')]['calleridname'],'context':this[_0xd96b('0x34')][_0xd96b('0x39')],'extension':this[_0xd96b('0x34')][_0xd96b('0x3a')],'priority':this[_0xd96b('0x34')][_0xd96b('0x3b')],'accountcode':this[_0xd96b('0x34')][_0xd96b('0x3c')],'dnid':this['channel']['dnid'],'projectName':this[_0xd96b('0x34')][_0xd96b('0x35')],'saveName':_0x3b14b0,'filename':_0x40dfcd['file']||_0x3b14b0,'savePath':_0x3aa2ec})[_0xd96b('0x13')](function(_0x3dda78){_0x5e09c4(null,_0x3dda78);})[_0xd96b('0x1a')](function(_0x37be81){_0x5e09c4(_0x37be81);});};AGIVertices['prototype'][_0xd96b('0x3d')]=function(_0x1b2eb1,_0x39174f,_0x59f752,_0x51b110,_0x334161){this[_0xd96b('0x10')][_0xd96b('0x3d')]({'uniqueid':this[_0xd96b('0x34')]['uniqueid'],'body':_0x1b2eb1,'direction':_0x39174f,'providerName':_0x59f752,'providerResponse':_0x51b110})[_0xd96b('0x13')](function(_0x3fbd49){if(_0x334161){_0x334161(null,_0x3fbd49);}})['catch'](function(_0x49ebb2){if(_0x334161){_0x334161(_0x49ebb2);}});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x3e')]=function(_0x556dfa,_0x3e928a){this[_0xd96b('0x10')][_0xd96b('0x3e')]({'firstName':_[_0xd96b('0x3f')](_0x556dfa[_0xd96b('0x14')])||_[_0xd96b('0x40')](_0x556dfa[_0xd96b('0x14')])?_0xd96b('0x41')+Math[_0xd96b('0x42')]():_0x556dfa[_0xd96b('0x14')],'lastName':_['isEmpty'](_0x556dfa[_0xd96b('0x43')])||_[_0xd96b('0x40')](_0x556dfa[_0xd96b('0x43')])?null:_0x556dfa[_0xd96b('0x43')],'phone':_0x556dfa[_0xd96b('0x44')],'ListId':_0x556dfa['list_id'],'scheduledat':_0x556dfa[_0xd96b('0x45')],'callbackUniqueid':this[_0xd96b('0x34')][_0xd96b('0x38')],'tags':'callback','description':_0xd96b('0x46')+_0x556dfa[_0xd96b('0x45')][_0xd96b('0x47')](),'priority':_0x556dfa[_0xd96b('0x48')]})[_0xd96b('0x13')](function(_0x4580fa){_0x3e928a(null,_0x4580fa);})[_0xd96b('0x1a')](function(_0x1804ee){_0x3e928a(_0x1804ee);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x49')]=function(_0x54f1b3,_0x264735){this[_0xd96b('0x10')][_0xd96b('0x4a')](_0x54f1b3)['then'](function(_0x37ded4){_0x264735(null,_0x37ded4?_0x37ded4['name']:![]);})[_0xd96b('0x1a')](function(_0x4cf988){_0x264735(_0x4cf988);});};AGIVertices['prototype']['agentPause']=function(_0x28dca2,_0x2e5e2b,_0x3035c4){var _0x114454={'role':_0xd96b('0x4b')};_0x114454[_0x28dca2]=this[_0xd96b('0x34')][_0xd96b('0x36')];this['rpc'][_0xd96b('0x4c')](_0x114454,_0x2e5e2b,this[_0xd96b('0x34')]['uniqueid'])['then'](function(_0x58b9ef){_0x3035c4(null,_[_0xd96b('0x40')](_0x58b9ef)?![]:!![]);})[_0xd96b('0x1a')](function(_0x2cf92c){logger['error'](_0x2cf92c);_0x3035c4(null,![]);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x4d')]=function(_0x2aeb36,_0x167543){var _0x4cc718={'role':_0xd96b('0x4b')};_0x4cc718[_0x2aeb36]=this['channel'][_0xd96b('0x36')];this[_0xd96b('0x10')]['agentUnpause'](_0x4cc718)[_0xd96b('0x13')](function(_0x51375d){_0x167543(null,_['isNil'](_0x51375d)?![]:!![]);})[_0xd96b('0x1a')](function(_0x12f523){logger[_0xd96b('0x29')](_0x12f523);_0x167543(null,![]);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x4e')]=function(_0x13cb98,_0x89159f){var _0x537fc8={'role':'agent'};_0x537fc8[_0x13cb98]=this[_0xd96b('0x34')][_0xd96b('0x36')];this[_0xd96b('0x10')][_0xd96b('0x4e')](_0x537fc8)[_0xd96b('0x13')](function(_0x576a71){_0x89159f(null,_[_0xd96b('0x40')](_0x576a71)?![]:!![]);})[_0xd96b('0x1a')](function(_0x2f5ca5){logger['error'](_0x2f5ca5);_0x89159f(null,![]);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x4f')]=function(_0x36ea5d,_0x4c8790){var _0x57af76={'role':_0xd96b('0x4b')};_0x57af76[_0x36ea5d]=this[_0xd96b('0x34')]['callerid'];var _0x2f0914=_0x36ea5d!=_0xd96b('0x50')?util['format'](_0xd96b('0x51'),_0xd96b('0x52'),this['channel'][_0xd96b('0x36')]):undefined;this[_0xd96b('0x10')]['agentLogin'](_0x57af76,_0x2f0914)[_0xd96b('0x13')](function(_0x980390){_0x4c8790(null,_['isNil'](_0x980390)?![]:!![]);})[_0xd96b('0x1a')](function(_0x3a4f8a){logger['error'](_0x3a4f8a);_0x4c8790(null,![]);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x53')]=function(_0x3bb4b4,_0x4b71d4){sh['exec'](_[_0xd96b('0x54')](_0x3bb4b4),function(_0x131a2d,_0x372dbe){var _0x4a32c0=_0x372dbe[_0xd96b('0x55')](/(\r\n|\n|\r)/gm,'');_0x4b71d4(null,_0x4a32c0);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x56')]=function(_0x2fd8b2,_0x43031c){scripts['googleCloudTTS'](_0x2fd8b2[_0xd96b('0x57')],_0x2fd8b2[_0xd96b('0x58')]||_0xd96b('0x59'),_0x2fd8b2[_0xd96b('0x59')],_0x2fd8b2[_0xd96b('0x5a')]||_0xd96b('0x5b'),_0x2fd8b2[_0xd96b('0x5c')]||'MALE',_0x2fd8b2[_0xd96b('0x5d')]||_0xd96b('0x5e'))[_0xd96b('0x13')](function(_0xda8049){_0x43031c(null,_0xda8049);})[_0xd96b('0x1a')](function(_0x32bc64){_0x43031c(_0x32bc64);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x5f')]=function(_0x1a82f7,_0x497e52){scripts[_0xd96b('0x5f')](_0x1a82f7['text'],_0x1a82f7[_0xd96b('0x60')]||'en',0x1)[_0xd96b('0x13')](function(_0x4af132){_0x497e52(null,_0x4af132);})[_0xd96b('0x1a')](function(_0x59ab82){_0x497e52(_0x59ab82);});};AGIVertices['prototype']['restAPI']=function(_0x40cb60,_0x5a5175){var _0x228e74={'uri':_0x40cb60[_0xd96b('0x61')],'method':_0x40cb60[_0xd96b('0x62')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x40cb60[_0xd96b('0x63')])==='number'&&parseInt(_0x40cb60[_0xd96b('0x63')])>=0x1?parseInt(_0x40cb60['timeout'])*0x3e8:0x5*0x3e8};if(_['includes']([_0xd96b('0x64'),_0xd96b('0x65')],_0x228e74[_0xd96b('0x62')]['toUpperCase']())){try{_0x228e74[_0xd96b('0x66')]=_0x40cb60[_0xd96b('0xc')]?JSON[_0xd96b('0x67')](_0x40cb60['rawBody']):{};}catch(_0x129b51){logger[_0xd96b('0x29')]('An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function',_0x129b51);}}try{_0x228e74[_0xd96b('0x68')]=_0x40cb60[_0xd96b('0xb')]?JSON[_0xd96b('0x67')](_0x40cb60[_0xd96b('0xb')]):{};}catch(_0x1976bb){logger[_0xd96b('0x29')](_0xd96b('0x69'),_0x1976bb);}if(_0x40cb60['computedVariables']){try{var _0x5eda00=require(_0x40cb60['computedVariables'])['sync'](this,_0x228e74);_0x228e74['uri']=Mustache[_0xd96b('0x6a')](_0x40cb60['url'],_0x5eda00,{},['$$','$$']);if(_0x228e74[_0xd96b('0x68')]){_0x228e74['headers']=JSON[_0xd96b('0x67')](Mustache[_0xd96b('0x6a')](JSON[_0xd96b('0x6b')](_0x228e74[_0xd96b('0x68')]),_0x5eda00,{},['$$','$$']));}if(_0x228e74[_0xd96b('0x66')]){_0x228e74[_0xd96b('0x66')]=JSON[_0xd96b('0x67')](Mustache[_0xd96b('0x6a')](JSON[_0xd96b('0x6b')](_0x228e74[_0xd96b('0x66')]),_0x5eda00,{},['$$','$$']));}}catch(_0x407bfe){logger[_0xd96b('0x29')]('An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function',_0x407bfe);}}rp(_0x228e74)['then'](function(_0x455fc9){var _0x215610={'statusCode':_0x455fc9[_0xd96b('0x6c')]||0xc8,'statusMessage':_0x455fc9[_0xd96b('0x6d')]||'OK','headers':_0x455fc9[_0xd96b('0x68')]||{},'body':_0x455fc9[_0xd96b('0x66')]||{}};_0x5a5175(null,_0x215610);})[_0xd96b('0x1a')](function(_0x296079){var _0x5f41b4={'statusCode':_0x296079[_0xd96b('0x6c')]||0x1f4,'statusMessage':_0x296079['message']||_0xd96b('0x6e'),'headers':_0x296079[_0xd96b('0x6f')][_0xd96b('0x68')]||{},'body':_0x296079[_0xd96b('0x6f')][_0xd96b('0x66')]||{}};_0x5a5175(null,_0x5f41b4);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x70')]=function(_0x2df4f2,_0x44816c){scripts[_0xd96b('0x70')](this[_0xd96b('0x34')][_0xd96b('0x38')],_0x2df4f2[_0xd96b('0x71')],_0x2df4f2[_0xd96b('0x59')],_0x2df4f2['dialogflow_language']||'en')['then'](function(_0x5d8c7b){_0x44816c(null,_0x5d8c7b);})[_0xd96b('0x1a')](function(_0x2c0bdc){_0x44816c(_0x2c0bdc);});};AGIVertices['prototype'][_0xd96b('0x72')]=function(_0x448d24,_0x386e04){scripts['googleDialogflowV2'](this[_0xd96b('0x34')][_0xd96b('0x38')],_0x448d24[_0xd96b('0x73')],_0x448d24[_0xd96b('0x74')],_0x448d24[_0xd96b('0x75')],_0x448d24[_0xd96b('0x59')],_0x448d24['dialogflowV2_language']||'en')[_0xd96b('0x13')](function(_0x13ad7c){_0x386e04(null,_0x13ad7c);})['catch'](function(_0x529817){_0x386e04(_0x529817);});};AGIVertices['prototype'][_0xd96b('0x76')]=function(_0x3c8ec9,_0x275be4){scripts[_0xd96b('0x76')](this['channel'],_0x3c8ec9)[_0xd96b('0x13')](function(_0xa46a3){_0x275be4(null,_0xa46a3);})['catch'](function(_0x2067a1){_0x275be4(_0x2067a1);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x77')]=function(_0x294698,_0x3d8aec){scripts[_0xd96b('0x77')](_0x294698['key'],_0x294698[_0xd96b('0x59')],_0x294698[_0xd96b('0x78')]||_0xd96b('0x5b'),_0x294698[_0xd96b('0x79')])['then'](function(_0xd70c3e){_0x3d8aec(null,_0xd70c3e);})[_0xd96b('0x1a')](function(_0x8a4d76){_0x3d8aec(_0x8a4d76);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x7a')]=function(_0x25b285,_0x3fceeb,_0x293629){scripts['ispeechASR'](_0x3fceeb,_0x25b285['key'],_0x25b285[_0xd96b('0x7b')]||_0xd96b('0x5b'),this['isConfigured'](_0x25b285['model'])?_0x25b285[_0xd96b('0x7c')]:undefined)['then'](function(_0x32e8df){_0x293629(null,_0x32e8df);})[_0xd96b('0x1a')](function(_0x467170){_0x293629(_0x467170);});};AGIVertices['prototype']['awsPolly']=function(_0x1ba4aa,_0x2087db){scripts[_0xd96b('0x7d')](_0x1ba4aa['aws_access_key_id'],_0x1ba4aa['aws_secret_access_key'],_0x1ba4aa['aws_polly_region'],_0x1ba4aa[_0xd96b('0x7e')]||_0xd96b('0x7f'),_0x1ba4aa[_0xd96b('0x59')],_0x1ba4aa[_0xd96b('0x80')]||_0xd96b('0x59'))[_0xd96b('0x13')](function(_0x132c62){_0x2087db(null,_0x132c62);})[_0xd96b('0x1a')](function(_0x20b4a5){_0x2087db(_0x20b4a5);});};AGIVertices[_0xd96b('0x15')]['awsLex']=function(_0x3ead2f,_0x39efc8){scripts[_0xd96b('0x81')](this[_0xd96b('0x34')][_0xd96b('0x38')],_0x3ead2f[_0xd96b('0x82')],_0x3ead2f[_0xd96b('0x83')],_0x3ead2f[_0xd96b('0x84')],_0x3ead2f[_0xd96b('0x59')],_0x3ead2f['aws_bot_name'])[_0xd96b('0x13')](function(_0x3a8d95){_0x39efc8(null,_0x3a8d95);})[_0xd96b('0x1a')](function(_0x53fe30){_0x39efc8(_0x53fe30);});};AGIVertices['prototype']['googleASR']=function(_0x2482ec,_0x9c93a8,_0x4823d9){scripts[_0xd96b('0x85')](_0x9c93a8,_0x2482ec[_0xd96b('0x71')],_0x2482ec[_0xd96b('0x86')]||_0xd96b('0x5b'))[_0xd96b('0x13')](function(_0x496914){_0x4823d9(null,_0x496914);})[_0xd96b('0x1a')](function(_0x57243e){_0x4823d9(_0x57243e);});};AGIVertices[_0xd96b('0x15')][_0xd96b('0x87')]=function(_0x3f057c,_0x4a3c9d,_0x29c1f6){scripts[_0xd96b('0x87')](_0x4a3c9d,_0x3f057c[_0xd96b('0x88')],_0x3f057c[_0xd96b('0x89')],_0x3f057c[_0xd96b('0x8a')])[_0xd96b('0x13')](function(_0x24fc5d){_0x29c1f6(null,_0x24fc5d);})[_0xd96b('0x1a')](function(_0x112b5d){_0x29c1f6(_0x112b5d);});};AGIVertices[_0xd96b('0x15')]['clear']=function(_0x45269f){var _0x16938a=_['includes'](verticesWithRetry,_0x45269f[_0xd96b('0x33')])?_0x45269f:_['clone'](_0x45269f);for(var _0x307151 in _0x16938a){if(_0x16938a[_0xd96b('0x8b')](_0x307151)){if(_0x16938a[_0x307151]&&_['isString'](_0x16938a[_0x307151])){if(_[_0xd96b('0x8c')](recursiveMapAttributes,_0x307151)){_0x16938a[_0x307151]=this[_0xd96b('0x8d')](_0x16938a[_0x307151]);}else{_0x16938a[_0x307151]=this[_0xd96b('0x8e')](_0x16938a[_0x307151]);}}}}return _0x16938a;};AGIVertices[_0xd96b('0x15')][_0xd96b('0x8f')]=function(_0x1e01c3){for(var _0x34bbdd in _0x1e01c3){if(_0x1e01c3[_0xd96b('0x8b')](_0x34bbdd)){if(_['isPlainObject'](_0x1e01c3[_0x34bbdd])){this[_0xd96b('0x8f')](_0x1e01c3[_0x34bbdd]);}else if(_[_0xd96b('0x90')](_0x1e01c3[_0x34bbdd])){for(var _0x223de1=0x0;_0x223de1<_0x1e01c3[_0x34bbdd]['length'];_0x223de1++){this[_0xd96b('0x8f')](_0x1e01c3[_0x34bbdd][_0x223de1]);}}else if(_['isString'](_0x1e01c3[_0x34bbdd])){_0x1e01c3[_0x34bbdd]=this[_0xd96b('0x8e')](_0x1e01c3[_0x34bbdd]);}}}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x91')]=function(_0xc170b2,_0x86ef0d){for(var _0x18559f in _0xc170b2){if(_0xc170b2[_0xd96b('0x8b')](_0x18559f)){if(_[_0xd96b('0x92')](_0xc170b2[_0x18559f])){if(!_[_0xd96b('0x3f')](_0xc170b2[_0x18559f])){this['saveRestApiResult'](_0xc170b2[_0x18559f],util['format'](_0xd96b('0x93'),_0x86ef0d,_0x18559f));}}else if(_[_0xd96b('0x90')](_0xc170b2[_0x18559f])){for(var _0x3d940e=0x0;_0x3d940e<_0xc170b2[_0x18559f][_0xd96b('0x94')];_0x3d940e++){this[_0xd96b('0x91')](_0xc170b2[_0x18559f][_0x3d940e],util[_0xd96b('0x95')](_0xd96b('0x93'),_0x86ef0d,_0x18559f+'['+_0x3d940e+']'));}}else{if(!_['isNil'](_0xc170b2[_0x18559f])){this[_0xd96b('0x34')][_0xd96b('0x96')](util[_0xd96b('0x95')](_0xd96b('0x93'),_0x86ef0d,_0x18559f),_0xc170b2[_0x18559f]);}}}}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x8d')]=function(_0xe05d12){try{var _0x276b3b=JSON[_0xd96b('0x67')](_0xe05d12);this['recursiveNodeIndex'](_0x276b3b);return JSON[_0xd96b('0x6b')](_0x276b3b);}catch(_0x3b4477){return this[_0xd96b('0x8e')](_0xe05d12);}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x8e')]=function(_0x545ea6){var _0x182720=_0x545ea6[_0xd96b('0x97')]('{');for(var _0x286ece=0x1;_0x286ece<_0x182720['length'];_0x286ece+=0x1){var _0x53397f=_0x182720[_0x286ece][_0xd96b('0x97')]('}');if(_0x53397f[_0xd96b('0x94')]>0x1){_0x545ea6=_0x545ea6[_0xd96b('0x98')]('{'+_0x53397f[0x0]+'}',this[_0xd96b('0x34')]['getVariable'](_0x53397f[0x0])[_0xd96b('0x99')]||_0x53397f[0x0]);}}if(_0x182720[_0xd96b('0x94')]===0x1){return _0x545ea6[_0xd96b('0x47')]();}return this[_0xd96b('0x8e')](_0x545ea6);};AGIVertices['prototype'][_0xd96b('0x9a')]=function(_0x7b5aec,_0x340d43){var _0x4e0470=this[_0xd96b('0x34')]['getVariable'](_0x7b5aec);if(_0x4e0470[_0xd96b('0x9b')]===-0x1){return _0x4e0470;}logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x9c'),_0x340d43,_0x4e0470[_0xd96b('0x99')]));return this[_0xd96b('0x34')][_0xd96b('0x96')](_0x340d43,_0x4e0470['extra']);};AGIVertices[_0xd96b('0x15')]['isConfigured']=function(_0x2164aa){return _0x2164aa&&_0x2164aa!=='0'&&_0x2164aa!=='-1'&&_0x2164aa!=='';};AGIVertices[_0xd96b('0x15')][_0xd96b('0x9d')]=function(_0x2ecdd2){this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x2ecdd2,'-');_0x2ecdd2[_0xd96b('0xa0')]=_0x2ecdd2['maxRetry'];return{'code':0xc8,'result':'-'};};AGIVertices[_0xd96b('0x15')][_0xd96b('0xa1')]=function(_0x44bca7){logger[_0xd96b('0x2b')](util['format']('Enter\x20in\x20MRCPSynth\x20(%s)\x20block',_0x44bca7[_0xd96b('0xa2')]));if(!this['isConfigured'](_0x44bca7['text'])){return this[_0xd96b('0x34')]['noop']('no\x20text\x20configured');}var _0x14d689='\x22'+_0x44bca7[_0xd96b('0x59')]+'\x22';if(this[_0xd96b('0xa3')](_0x44bca7['options'])){_0x14d689+=','+_0x44bca7[_0xd96b('0x6f')];}var _0x7faea8=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0xa5'),_0x14d689);if(_0x7faea8['result']===-0x1){return _0x7faea8;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xa7'),_0x14d689));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xa8')]=function(_0x5c2464){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('Enter\x20in\x20MRCPRecog\x20(%s)\x20block',_0x5c2464[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x5c2464[_0xd96b('0xa9')])){return this[_0xd96b('0x34')]['noop'](_0xd96b('0xaa'));}var _0x432bff=_0x5c2464[_0xd96b('0xa9')];if(this[_0xd96b('0xa3')](_0x5c2464[_0xd96b('0x6f')])){_0x432bff+=','+_0x5c2464[_0xd96b('0x6f')];}var _0x2866b5=this[_0xd96b('0x34')][_0xd96b('0xa4')]('MRCPRecog',_0x432bff);if(_0x2866b5['result']===-0x1){return _0x2866b5;}var _0x2f3d10=this['getAndSetVariable'](_0xd96b('0xab'),'MRCP_RECOG_CONFIDENCE');if(_0x2f3d10['result']===-0x1){return _0x2f3d10;}var _0x2c21f9=this[_0xd96b('0x9a')](_0xd96b('0xac'),_0xd96b('0xad'));if(_0x2c21f9[_0xd96b('0x9b')]===-0x1){return _0x2c21f9;}var _0x2c056e=this[_0xd96b('0x9a')]('RECOG_INSTANCE()','MRCP_RECOG_INSTANCE');if(_0x2c056e['result']===-0x1){return _0x2c056e;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xae'),_0x432bff));};AGIVertices['prototype'][_0xd96b('0x7')]=function(_0x310c60){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0xaf'),_0x310c60[_0xd96b('0xa2')]));return this[_0xd96b('0x34')][_0xd96b('0x7')]([_0x310c60[_0xd96b('0xb0')],_0x310c60[_0xd96b('0xb1')]]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0xb2')]=function(_0x5676c3){logger['info'](util[_0xd96b('0x95')](_0xd96b('0xb3'),_0x5676c3[_0xd96b('0xa2')]));if(this[_0xd96b('0xa3')](_0x5676c3['timeout'])){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('Wait\x20%s\x20seconds\x20before\x20answer',_0x5676c3['timeout']));var _0x4a8d54=this['channel'][_0xd96b('0xb4')](_0x5676c3[_0xd96b('0x63')]);if(_0x4a8d54[_0xd96b('0x9b')]===-0x1){return _0x4a8d54;}}return this[_0xd96b('0x34')]['answer']();};AGIVertices[_0xd96b('0x15')]['callback']=function(_0x4950d5){logger['info'](util[_0xd96b('0x95')]('Enter\x20in\x20CALLBACK\x20(%s)\x20block',_0x4950d5[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x4950d5[_0xd96b('0xb5')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x4950d5,'no\x20list\x20selected');}_0x4950d5[_0xd96b('0x45')]=moment();if(this[_0xd96b('0xa3')](_0x4950d5[_0xd96b('0xb6')])){_0x4950d5[_0xd96b('0x45')]=moment()[_0xd96b('0xb7')](_0x4950d5[_0xd96b('0xb6')],_0xd96b('0xb8'));}if(!this[_0xd96b('0xa3')](_0x4950d5['callback_priority'])){_0x4950d5['callback_priority']=0x2;}this[_0xd96b('0x3e')][_0xd96b('0x9f')](this,_0x4950d5);return this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xb9'),_0x4950d5['phone'],_0x4950d5[_0xd96b('0xb5')],_0x4950d5[_0xd96b('0x45')]));};AGIVertices[_0xd96b('0x15')]['custom_app']=function(_0x43628f){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0xba'),_0x43628f[_0xd96b('0xa2')]));var _0x24cc67=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0x43628f[_0xd96b('0xbb')],_0x43628f[_0xd96b('0x6f')]);if(_0x24cc67['result']===-0x1){return _0x24cc67;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xbc'),_0x43628f['application'],_0x43628f[_0xd96b('0x6f')]));};AGIVertices['prototype'][_0xd96b('0xbd')]=function(_0x5cca49){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0xbe'),_0x5cca49['label']));if(!this[_0xd96b('0xa3')](_0x5cca49['text'])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20text\x20configured');}var _0x5e63b6='\x22'+_0x5cca49['text']+'\x22';if(this[_0xd96b('0xa3')](_0x5cca49[_0xd96b('0x6f')])){_0x5e63b6+=','+_0x5cca49['options'];}var _0x5243a7=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0xa5'),_0x5e63b6);if(_0x5243a7['result']===-0x1){return _0x5243a7;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xa7'),_0x5e63b6));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xbf')]=function(_0x16d979){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0xc0'),_0x16d979[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x16d979['text'])){return this[_0xd96b('0x34')]['noop']('no\x20text\x20configured');}var _0x22496e='\x22'+_0x16d979[_0xd96b('0x59')]+'\x22';if(this['isConfigured'](_0x16d979[_0xd96b('0x6f')])){_0x22496e+=','+_0x16d979['options'];}var _0x5e4f7d=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0xa5'),_0x22496e);if(_0x5e4f7d[_0xd96b('0x9b')]===-0x1){return _0x5e4f7d;}return this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xa7'),_0x22496e));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xc1')]=function(_0x5416e5){logger[_0xd96b('0x2b')](util['format']('Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block',_0x5416e5[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x5416e5[_0xd96b('0xa9')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20grammar\x20configured');}var _0x2c6bb8=_0x5416e5[_0xd96b('0xa9')];if(this[_0xd96b('0xa3')](_0x5416e5[_0xd96b('0x6f')])){_0x2c6bb8+=','+_0x5416e5[_0xd96b('0x6f')];}var _0x48899f=this[_0xd96b('0x34')][_0xd96b('0xa4')]('MRCPRecog',_0x2c6bb8);if(_0x48899f[_0xd96b('0x9b')]===-0x1){return _0x48899f;}var _0x27ab62=this[_0xd96b('0x9a')]('RECOG_CONFIDENCE()',_0xd96b('0xc2'));if(_0x27ab62[_0xd96b('0x9b')]===-0x1){return _0x27ab62;}var _0x1f8c80=this[_0xd96b('0x9a')](_0xd96b('0xac'),'LUMENVOX_ASR_TRANSCRIPT');if(_0x1f8c80['result']===-0x1){return _0x1f8c80;}var _0xeaaeb=this[_0xd96b('0x9a')](_0xd96b('0xc3'),_0xd96b('0xc4'));if(_0xeaaeb['result']===-0x1){return _0xeaaeb;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x2c6bb8));};AGIVertices['prototype'][_0xd96b('0xc5')]=function(_0x50d358){logger['info'](util[_0xd96b('0x95')]('Enter\x20in\x20SESTEKASR\x20(%s)\x20block',_0x50d358[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x50d358[_0xd96b('0xa9')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xaa'));}var _0x18a894=_0x50d358['grammar'];if(this[_0xd96b('0xa3')](_0x50d358[_0xd96b('0x6f')])){_0x18a894+=','+_0x50d358[_0xd96b('0x6f')];}var _0x2629c7=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0xc6'),_0x18a894);if(_0x2629c7[_0xd96b('0x9b')]===-0x1){return _0x2629c7;}var _0x45711c=this[_0xd96b('0x9a')](_0xd96b('0xab'),_0xd96b('0xc7'));if(_0x45711c[_0xd96b('0x9b')]===-0x1){return _0x45711c;}var _0x56d4ff=this[_0xd96b('0x9a')]('RECOG_INPUT()','SESTEK_ASR_TRANSCRIPT');if(_0x56d4ff[_0xd96b('0x9b')]===-0x1){return _0x56d4ff;}var _0x18eb39=this['getAndSetVariable'](_0xd96b('0xc3'),_0xd96b('0xc8'));if(_0x18eb39[_0xd96b('0x9b')]===-0x1){return _0x18eb39;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format']('Executed\x20command\x20MRCPRecog\x20%s',_0x18a894));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xc9')]=function(_0x12a769){logger['info'](util['format'](_0xd96b('0xca'),_0x12a769[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x12a769[_0xd96b('0xcb')])){return this['channel'][_0xd96b('0x29')](_0x12a769,'no\x20database\x20selected');}var _0x12e94d=this[_0xd96b('0x1b')][_0xd96b('0x9f')](this,_0x12a769[_0xd96b('0xcb')]);if(!_0x12e94d){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x12a769,_0xd96b('0xcc'));}if(!this[_0xd96b('0xa3')](_0x12a769[_0xd96b('0x2c')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x12a769,_0xd96b('0xcd'));}var _0x27c1fd=_0x12a769[_0xd96b('0x2c')]['replace'](/(\r\n|\n|\r)/gm,'\x20');this['channel']['noop'](util['format'](_0xd96b('0xce'),_0x27c1fd));var _0x4772ce=this[_0xd96b('0xcf')][_0xd96b('0x9f')](this,_0x12e94d,_0x27c1fd);this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x12a769,_0x27c1fd);if(!this[_0xd96b('0xa3')](_0x12a769[_0xd96b('0xd0')])){return this[_0xd96b('0x34')]['noop'](_0xd96b('0xd1'));}var _0x534b2c=this['getVariable']['sync'](this,_0x12a769[_0xd96b('0xd0')]);if(!_0x534b2c){return this['channel'][_0xd96b('0x29')](_0x12a769,_0xd96b('0xd2'));}var _0x196c9d=this;_0x4772ce['forEach'](function(_0x4cc999,_0x4102a4){Object['keys'](_0x4cc999)[_0xd96b('0xd3')](function(_0x599c9c){_0x196c9d[_0xd96b('0x34')][_0xd96b('0x96')](util['format'](_0xd96b('0xd4'),_0x534b2c,_0x4102a4,_0x599c9c),_0x4cc999[_0x599c9c]);});});this['channel'][_0xd96b('0x96')](util[_0xd96b('0x95')](_0xd96b('0xd5'),_0x534b2c),_0x4772ce[_0xd96b('0x94')]);return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xd6'),_0x534b2c));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xd7')]=function(_0x5a3f91){logger[_0xd96b('0xd8')](util[_0xd96b('0x95')](_0xd96b('0xd9'),_0x5a3f91[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x5a3f91[_0xd96b('0xda')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x5a3f91,_0xd96b('0xdb'));}var _0x38b1a4=this[_0xd96b('0x1c')][_0xd96b('0x9f')](this,_0x5a3f91['sip_id']);if(!_0x38b1a4){return this['channel'][_0xd96b('0x29')](_0x5a3f91,_0xd96b('0xdc'));}var _0x1e8276=this['channel'][_0xd96b('0xa4')](_0xd96b('0xdd'),[util[_0xd96b('0x95')](_0xd96b('0xde'),_0x38b1a4),_0x5a3f91['timeout'],_0x5a3f91['opts'],_0x5a3f91['url']]);if(_0x1e8276['result']===-0x1){return _0x1e8276;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format']('Executed\x20command\x20%s',_0xd96b('0xdd')));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xdf')]=function(_0x4fd357){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0xe0'),_0x4fd357[_0xd96b('0xa2')]));if(!this['isConfigured'](_0x4fd357[_0xd96b('0x71')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xe1'));}if(!this[_0xd96b('0xa3')](_0x4fd357[_0xd96b('0x59')])){return this[_0xd96b('0x34')]['noop'](_0xd96b('0xe2'));}this[_0xd96b('0x34')][_0xd96b('0xe3')]=!![];this[_0xd96b('0x9e')](_0x4fd357);this[_0xd96b('0x3d')](_0x4fd357[_0xd96b('0x59')],'in','','');this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xe4'),_0x4fd357['text']));var _0x448850=this[_0xd96b('0x70')]['sync'](this,_0x4fd357);if(_0x448850){for(var _0x29d50f in _0x448850){if(_0x448850['hasOwnProperty'](_0x29d50f)){this[_0xd96b('0x34')][_0xd96b('0x96')](util[_0xd96b('0x95')](_0xd96b('0xe5'),_0x29d50f['toUpperCase']()),_0x448850[_0x29d50f]);}}this[_0xd96b('0x3d')](_0x448850['speech'],_0xd96b('0xe6'),_0xd96b('0xdf'),'');return this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format'](_0xd96b('0xe7'),_0x448850[_0xd96b('0xe8')]));}return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x4fd357,_0xd96b('0xe9'));};AGIVertices['prototype']['dialogflowV2']=function(_0x3120b1){logger['info'](util[_0xd96b('0x95')](_0xd96b('0xea'),_0x3120b1[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x3120b1['dialogflowV2_project_id'])){return this['channel'][_0xd96b('0xa6')](_0xd96b('0xeb'));}if(!this[_0xd96b('0xa3')](_0x3120b1[_0xd96b('0x74')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xec'));}if(!this[_0xd96b('0xa3')](_0x3120b1[_0xd96b('0x75')])){return this[_0xd96b('0x34')]['noop'](_0xd96b('0xed'));}if(!this[_0xd96b('0xa3')](_0x3120b1['dialogflowV2_language'])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xee'));}if(!this[_0xd96b('0xa3')](_0x3120b1['text'])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xe2'));}this['channel'][_0xd96b('0xe3')]=!![];this[_0xd96b('0x9e')](_0x3120b1);this[_0xd96b('0x3d')](_0x3120b1[_0xd96b('0x59')],'in','','');this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format'](_0xd96b('0xef'),_0x3120b1[_0xd96b('0x59')]));var _0x292af7=this[_0xd96b('0x72')][_0xd96b('0x9f')](this,_0x3120b1);if(_0x292af7){for(var _0x2b40f9 in _0x292af7){if(_0x292af7[_0xd96b('0x8b')](_0x2b40f9)){if(_0x2b40f9!==_0xd96b('0xf0')){this['channel']['setVariable'](util[_0xd96b('0x95')](_0xd96b('0xe5'),_0x2b40f9[_0xd96b('0xf1')]()),_0x292af7[_0x2b40f9]);}}}this['createSquareMessage'](_0x292af7[_0xd96b('0xe8')],_0xd96b('0xe6'),_0xd96b('0xf2'),_0x292af7[_0xd96b('0xf0')]);return this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xf3'),_0x292af7[_0xd96b('0xe8')]));}return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3120b1,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0xd96b('0x15')][_0xd96b('0xf4')]=function(_0x7d0a9d){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0xf5'),_0x7d0a9d['label']));if(!this[_0xd96b('0xa3')](_0x7d0a9d[_0xd96b('0xf6')])){return this['channel']['noop'](_0xd96b('0xf7'));}if(!this[_0xd96b('0xa3')](_0x7d0a9d[_0xd96b('0xf8')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xf9'));}if(!this[_0xd96b('0xa3')](_0x7d0a9d['password'])){return this['channel'][_0xd96b('0xa6')](_0xd96b('0xfa'));}if(!this['isConfigured'](_0x7d0a9d[_0xd96b('0xfb')])){return this['channel'][_0xd96b('0xa6')](_0xd96b('0xe2'));}this[_0xd96b('0x34')]['bot']=!![];this['createSquareDetailsReport'](_0x7d0a9d);this['createSquareMessage'](_0x7d0a9d[_0xd96b('0x59')],'in','','');this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format']('Trying\x20SestekNDA:\x20%s',_0x7d0a9d[_0xd96b('0x59')]));var _0x387b47=this[_0xd96b('0x76')][_0xd96b('0x9f')](this,_0x7d0a9d);if(_0x387b47){for(var _0x50825e in _0x387b47){if(_0x387b47['hasOwnProperty'](_0x50825e)){this[_0xd96b('0x34')][_0xd96b('0x96')](util[_0xd96b('0x95')](_0xd96b('0xfc'),_0x50825e[_0xd96b('0xf1')]()),_0x387b47[_0x50825e]);}}this[_0xd96b('0x3d')](_0x387b47[_0xd96b('0xe8')],_0xd96b('0xe6'),_0xd96b('0xf4'),'');if(_0x387b47[_0xd96b('0xfd')]){this[_0xd96b('0x34')]['noop'](util[_0xd96b('0x95')](_0xd96b('0xfe'),_0x387b47[_0xd96b('0xfd')]));var _0x403a17=this[_0xd96b('0x34')][_0xd96b('0xff')](_0x387b47[_0xd96b('0xfd')]);try{fs[_0xd96b('0x100')](_0x387b47[_0xd96b('0xfd')]+_0xd96b('0x101'));}catch(_0x138632){logger['error'](_0x138632);}return _0x403a17;}else{return this[_0xd96b('0x34')]['noop'](util[_0xd96b('0x95')](_0xd96b('0x102'),_0x387b47[_0xd96b('0xe8')]));}}return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x7d0a9d,_0xd96b('0x103'));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x104')]=function(_0x4725f0){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x105'),_0x4725f0['label']));return this['channel'][_0xd96b('0xa6')]('end');};AGIVertices['prototype'][_0xd96b('0x106')]=function(_0x3ee18f){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x107'),_0x3ee18f['label']));var _0x53b792='';if(_0x3ee18f[_0xd96b('0x108')]){if(!this[_0xd96b('0xa3')](_0x3ee18f['trunk_id'])){return this['channel'][_0xd96b('0x29')](_0x3ee18f,_0xd96b('0x109'));}else{var _0x2a3472=parseInt(_0x3ee18f[_0xd96b('0x108')],0xa);if(isNaN(_0x2a3472)){_0x53b792=_0x3ee18f[_0xd96b('0x108')];}else{_0x53b792=this[_0xd96b('0x1e')][_0xd96b('0x9f')](this,_0x3ee18f['trunk_id']);if(!_0x53b792){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3ee18f,_0xd96b('0x10a'));}}}}else if(_0x3ee18f['trunk_name']){_0x53b792=_0x3ee18f[_0xd96b('0x10b')];}else{return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3ee18f,_0xd96b('0x109'));}var _0x4290ba=this[_0xd96b('0x34')][_0xd96b('0xa4')]('DIAL',[util[_0xd96b('0x95')](_0xd96b('0x10c'),_0x53b792,_0x3ee18f[_0xd96b('0x44')]),_0x3ee18f['timeout'],_0x3ee18f[_0xd96b('0x10d')],_0x3ee18f[_0xd96b('0x61')]]);if(_0x4290ba[_0xd96b('0x9b')]===-0x1){return _0x4290ba;}return this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x10e'),'DIAL'));};AGIVertices[_0xd96b('0x15')]['finally']=function(_0x1ec52d){logger['info'](util[_0xd96b('0x95')]('Enter\x20in\x20FINALLY\x20(%s)\x20block',_0x1ec52d[_0xd96b('0xa2')]));return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x10f'));};AGIVertices[_0xd96b('0x15')][_0xd96b('0xe')]=function(_0x3b2563){logger['info'](util['format'](_0xd96b('0x110'),_0x3b2563[_0xd96b('0xa2')]));if(_0x3b2563[_0xd96b('0xa0')]===0x0){return this[_0xd96b('0x9d')](_0x3b2563);}_0x3b2563['retry']-=0x1;if(!this['isConfigured'](_0x3b2563[_0xd96b('0x111')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3b2563,_0xd96b('0x112'));}var _0x3dca65=this[_0xd96b('0x20')][_0xd96b('0x9f')](this,_0x3b2563[_0xd96b('0x111')]);if(!_0x3dca65){return this[_0xd96b('0x34')]['error'](_0x3b2563,_0xd96b('0x113'));}if(!this['isConfigured'](_0x3b2563['variable_id'])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0xd96b('0xd1'));}var _0x473dc3=this['channel'][_0xd96b('0x114')](_0x3dca65,_0x3b2563[_0xd96b('0x115')],_0x3b2563[_0xd96b('0x116')]);var _0x5250b9=_0x473dc3[_0xd96b('0x9b')]?_0x473dc3['result']['toString']():'';logger['info'](_0xd96b('0x117'),JSON[_0xd96b('0x6b')](_0x473dc3));if(_0x473dc3[_0xd96b('0x9b')]===-0x1){this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x3b2563,_0x5250b9);return _0x473dc3;}else if(_0x473dc3[_0xd96b('0x99')]===_0xd96b('0x63')){_0x473dc3[_0xd96b('0x9b')]=_0x5250b9[_0xd96b('0x94')]>=parseInt(_0x3b2563[_0xd96b('0x118')])?'x':'i';}else{_0x473dc3[_0xd96b('0x9b')]=_0x5250b9[_0xd96b('0x94')]>=parseInt(_0x3b2563[_0xd96b('0x118')])&&_0x5250b9['length']<=parseInt(_0x3b2563['maxdigit'])?'x':'i';}var _0x28becf=this['getVariable']['sync'](this,_0x3b2563[_0xd96b('0xd0')]);if(!_0x28becf){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3b2563,'no\x20variable\x20found');}this[_0xd96b('0x34')][_0xd96b('0x96')](_0x28becf,_0x5250b9);if(this[_0xd96b('0xa3')](_0x3b2563[_0xd96b('0x119')])){var _0x195650=parseInt(_0x3b2563['hiddendigitsnum'],0xa);var _0x1dc073=rs[_0xd96b('0x11a')]({'charset':'*','length':_0x195650});var _0x52406a=_0x5250b9[_0xd96b('0x94')];if(_0x52406a>0x0){if(_0x52406a>_0x195650){this[_0xd96b('0x9e')]['sync'](this,_0x3b2563,_0x3b2563[_0xd96b('0x11b')]==='first'?_0x1dc073+_0x5250b9['substr'](_0x195650):_0x5250b9[_0xd96b('0x11c')](0x0,_0x52406a-_0x195650)+_0x1dc073);}else{this['createSquareDetailsReport'][_0xd96b('0x9f')](this,_0x3b2563,rs[_0xd96b('0x11a')]({'charset':'*','length':_0x52406a}));}}else{this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x3b2563,'');}}else{this[_0xd96b('0x9e')]['sync'](this,_0x3b2563,_0x5250b9);}return _0x473dc3;};AGIVertices[_0xd96b('0x15')][_0xd96b('0xf')]=function(_0x1a806d){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x11d'),_0x1a806d[_0xd96b('0xa2')]));return this[_0xd96b('0xe')](_0x1a806d);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x11e')]=function(_0x7e63a6){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('Enter\x20in\x20GOAL\x20(%s)\x20block',_0x7e63a6['label']));this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x7e63a6,_0x7e63a6[_0xd96b('0x11f')]);return this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x120'),_0x7e63a6[_0xd96b('0x11f')]));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x121')]=function(_0x276a8a){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x122'),_0x276a8a[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x276a8a['aws_access_key_id'])||!this['isConfigured'](_0x276a8a[_0xd96b('0x83')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x123'));}if(!this[_0xd96b('0xa3')](_0x276a8a['text'])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20text\x20configured');}this[_0xd96b('0x34')]['noop'](util[_0xd96b('0x95')]('Trying\x20aws\x20Polly\x20%s',_0x276a8a[_0xd96b('0x59')]));var _0x469c82=this[_0xd96b('0x7d')][_0xd96b('0x9f')](this,_0x276a8a);if(_0x469c82){this['channel']['noop'](util[_0xd96b('0x95')](_0xd96b('0x124'),_0x469c82));var _0x22f3f4=this[_0xd96b('0x34')][_0xd96b('0xff')](_0x469c82);try{fs[_0xd96b('0x100')](_0x469c82+'.wav');}catch(_0xdd8962){logger['error'](_0xdd8962);}return _0x22f3f4;}return this[_0xd96b('0x34')]['error'](_0x276a8a,_0xd96b('0x125'));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x126')]=function(_0x55cd24){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x127'),_0x55cd24['label']));if(!this['isConfigured'](_0x55cd24[_0xd96b('0x82')])||!this[_0xd96b('0xa3')](_0x55cd24[_0xd96b('0x83')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20valid\x20credentials\x20configured');}if(!this[_0xd96b('0xa3')](_0x55cd24[_0xd96b('0x128')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x129'));}if(!this['isConfigured'](_0x55cd24[_0xd96b('0x59')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20text\x20configured');}this['channel'][_0xd96b('0xe3')]=!![];this[_0xd96b('0x9e')](_0x55cd24);this['createSquareMessage'](_0x55cd24[_0xd96b('0x59')],'in','','');this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x12a'),_0x55cd24[_0xd96b('0x59')]));var _0x166946=this[_0xd96b('0x81')]['sync'](this,_0x55cd24);if(_0x166946){for(var _0x5ef52c in _0x166946){if(_0x166946[_0xd96b('0x8b')](_0x5ef52c)&&_[_0xd96b('0x12b')](_0x166946[_0x5ef52c])){this[_0xd96b('0x34')][_0xd96b('0x96')](util['format']('AWS_LEX_%s',_0x5ef52c[_0xd96b('0xf1')]()),_0x166946[_0x5ef52c]);}}if(_['isNil'](_0x166946['message'])){return this['channel'][_0xd96b('0xa6')]('Amazon\x20Lex\x20ready\x20for\x20fulfillment');}else{this[_0xd96b('0x3d')](_0x166946[_0xd96b('0x12c')],_0xd96b('0xe6'),_0xd96b('0x12d'),'');return this[_0xd96b('0x34')]['noop'](util['format']('Amazon\x20Lex\x20Result\x20%s',_0x166946[_0xd96b('0x12c')]));}}return this[_0xd96b('0x34')]['error'](_0x55cd24,_0xd96b('0x12e'));};AGIVertices[_0xd96b('0x15')]['googleasr']=function(_0x2f6e60){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x12f'),_0x2f6e60[_0xd96b('0xa2')],_0x2f6e60['timeout']));if(!this['isConfigured'](_0x2f6e60['key'])){return this[_0xd96b('0x34')]['noop'](_0xd96b('0xe1'));}var _0x24116f=_0xd96b('0x130');var _0x35bacf=util[_0xd96b('0x95')](_0xd96b('0x131'),FILES_PATH,rs[_0xd96b('0x11a')](0x4));var _0x3251df=util[_0xd96b('0x95')](_0xd96b('0x93'),_0x35bacf,_0x24116f);var _0x34177d=!![];if(_0x2f6e60[_0xd96b('0x132')]===_0xd96b('0x133')){_0x34177d=![];}var _0x3666f6=this[_0xd96b('0x34')][_0xd96b('0x134')](_0x35bacf,_0x24116f,_0x2f6e60[_0xd96b('0x135')],_0x2f6e60[_0xd96b('0x63')],undefined,_0x34177d);if(_0x3666f6[_0xd96b('0x9b')]!==-0x1){this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x136'),_0x3251df));var _0xdd1e7f=this[_0xd96b('0x85')][_0xd96b('0x9f')](this,_0x2f6e60,_0x3251df);if(_0xdd1e7f){for(var _0x3ffda1 in _0xdd1e7f){if(_0xdd1e7f['hasOwnProperty'](_0x3ffda1)){this[_0xd96b('0x34')]['setVariable'](util[_0xd96b('0x95')](_0xd96b('0x137'),_0x3ffda1[_0xd96b('0xf1')]()),_0xdd1e7f[_0x3ffda1]);}}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x138'),JSON['stringify'](_0xdd1e7f)));}}return _0x3666f6;};AGIVertices['prototype'][_0xd96b('0x139')]=function(_0x4a95d5){logger['info'](util['format'](_0xd96b('0x13a'),_0x4a95d5[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x4a95d5[_0xd96b('0x88')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x13b'));}if(!this[_0xd96b('0xa3')](_0x4a95d5[_0xd96b('0x89')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x13c'));}var _0x1aefe7=_0xd96b('0x130');var _0x336bac=util[_0xd96b('0x95')]('%s/recordings/%s',FILES_PATH,rs['generate'](0x4));var _0x550116=util['format'](_0xd96b('0x93'),_0x336bac,_0x1aefe7);var _0x350d14=!![];if(_0x4a95d5['beep']==='NOBEEP'){_0x350d14=![];}var _0x38f4d9=this['channel'][_0xd96b('0x134')](_0x336bac,_0x1aefe7,_0x4a95d5[_0xd96b('0x135')],_0x4a95d5[_0xd96b('0x63')],undefined,_0x350d14);if(_0x38f4d9[_0xd96b('0x9b')]!==-0x1){this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x13d'),_0x550116));var _0x4b1d11=this[_0xd96b('0x87')][_0xd96b('0x9f')](this,_0x4a95d5,_0x550116);if(_0x4b1d11){for(var _0x2e3b09 in _0x4b1d11){if(_0x4b1d11['hasOwnProperty'](_0x2e3b09)){this[_0xd96b('0x34')][_0xd96b('0x96')](util['format'](_0xd96b('0x13e'),_0x2e3b09['toUpperCase']()),_0x4b1d11[_0x2e3b09]);}}return this[_0xd96b('0x34')]['noop'](util['format']('TildeASR\x20Result\x20%s',JSON[_0xd96b('0x6b')](_0x4b1d11)));}}return _0x38f4d9;};AGIVertices['prototype'][_0xd96b('0x13f')]=function(_0x124431){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x140'),_0x124431[_0xd96b('0xa2')]));return this[_0xd96b('0x34')]['continueAt'](_0x124431[_0xd96b('0x39')],_0x124431[_0xd96b('0x3a')],_0x124431[_0xd96b('0x3b')]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x141')]=function(_0x461c0a){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x142'),_0x461c0a['label']));if(!this[_0xd96b('0xa3')](_0x461c0a[_0xd96b('0x143')])){return this['channel'][_0xd96b('0x29')](_0x461c0a,'no\x20condition\x20configured');}try{var _0x2347c4=eval(_0x461c0a['condition'])?'true':_0xd96b('0x144');this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('EVAL\x20CONDITION\x20%s\x20%s',_0x461c0a[_0xd96b('0x143')],_0x2347c4));return{'code':0xc8,'result':_0x2347c4};}catch(_0x408a0f){return{'code':0xc8,'result':_0xd96b('0x144')};}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x145')]=function(_0x4bfefd){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x146'),_0x4bfefd['label']));if(!this[_0xd96b('0xa3')](_0x4bfefd[_0xd96b('0x147')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x4bfefd,_0xd96b('0x148'));}var _0x302e9b=this['getIntervals'][_0xd96b('0x9f')](this,_0x4bfefd[_0xd96b('0x147')]);if(!_0x302e9b){return this['channel']['error'](_0x4bfefd,_0xd96b('0x149'));}for(var _0x1be3b8=0x0;_0x1be3b8<_0x302e9b[_0xd96b('0x94')];_0x1be3b8+=0x1){var _0x521a94=this[_0xd96b('0x34')][_0xd96b('0x14a')](util[_0xd96b('0x95')](_0xd96b('0x14b'),_0x302e9b[_0x1be3b8]));if(_0x521a94['result']===-0x1){return _0x521a94;}logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x14c'),_0x302e9b[_0x1be3b8],_0x521a94[_0xd96b('0x99')]));if(_0x521a94['extra']==='true'){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x14c'),_0x302e9b[_0x1be3b8],'true'));this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x14c'),_0x302e9b[_0x1be3b8],_0xd96b('0x14d')));return{'code':0xc8,'result':_0xd96b('0x14d')};}else{logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x14c'),_0x302e9b[_0x1be3b8],_0xd96b('0x144')));this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format']('IFTIME\x20%s\x20%s',_0x302e9b[_0x1be3b8],'false'));}}return{'code':0xc8,'result':_0xd96b('0x144')};};AGIVertices[_0xd96b('0x15')][_0xd96b('0x14e')]=function(_0x412e41){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('Enter\x20in\x20HANGUP\x20(%s)\x20block',_0x412e41[_0xd96b('0xa2')]));return this['channel']['hangup']();};AGIVertices[_0xd96b('0x15')]['ispeechasr']=function(_0x4a5098){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x14f'),_0x4a5098[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x4a5098[_0xd96b('0x71')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xe1'));}var _0x4cd069='wav';var _0x32a6a5=util[_0xd96b('0x95')]('%s/recordings/%s',FILES_PATH,rs[_0xd96b('0x11a')](0x4));var _0x211ed4=util[_0xd96b('0x95')](_0xd96b('0x93'),_0x32a6a5,_0x4cd069);var _0x1e95ec=!![];if(_0x4a5098['beep']===_0xd96b('0x133')){_0x1e95ec=![];}var _0x210789=this[_0xd96b('0x34')][_0xd96b('0x134')](_0x32a6a5,_0x4cd069,_0x4a5098[_0xd96b('0x135')],_0x4a5098[_0xd96b('0x63')],undefined,_0x1e95ec);if(_0x210789[_0xd96b('0x9b')]!==-0x1){this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x150'),_0x211ed4));var _0x215c1d=this[_0xd96b('0x7a')]['sync'](this,_0x4a5098,_0x211ed4);if(_0x215c1d){for(var _0x39b5e3 in _0x215c1d){if(_0x215c1d[_0xd96b('0x8b')](_0x39b5e3)){this[_0xd96b('0x34')]['setVariable'](util[_0xd96b('0x95')](_0xd96b('0x151'),_0x39b5e3['toUpperCase']()),_0x215c1d[_0x39b5e3]);}}return this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')]('IspeechASR\x20Result\x20%s',JSON['stringify'](_0x215c1d)));}}return _0x210789;};AGIVertices['prototype'][_0xd96b('0x152')]=function(_0x536521){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x153'),_0x536521['label']));if(!this[_0xd96b('0xa3')](_0x536521['key'])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20key\x20configured');}if(!this[_0xd96b('0xa3')](_0x536521[_0xd96b('0x59')])){return this['channel'][_0xd96b('0xa6')](_0xd96b('0xe2'));}this[_0xd96b('0x34')]['noop'](util[_0xd96b('0x95')](_0xd96b('0x154'),_0x536521[_0xd96b('0x59')]));var _0x31fb4a=this[_0xd96b('0x77')]['sync'](this,_0x536521);if(_0x31fb4a){this[_0xd96b('0x34')]['noop'](util[_0xd96b('0x95')](_0xd96b('0x150'),_0x31fb4a));var _0x147321=this[_0xd96b('0x34')][_0xd96b('0xff')](_0x31fb4a,_0x536521[_0xd96b('0x135')]);try{fs[_0xd96b('0x100')](_0x31fb4a+_0xd96b('0x101'));}catch(_0x547c1c){logger[_0xd96b('0x29')](_0x547c1c);}return _0x147321;}return this[_0xd96b('0x34')]['error'](_0x536521,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0xd96b('0x15')][_0xd96b('0x155')]=function(_0x441e40){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x156'),_0x441e40[_0xd96b('0xa2')]));if(!this['isConfigured'](_0x441e40[_0xd96b('0x157')])){return this[_0xd96b('0x34')]['error'](_0x441e40,'no\x20find\x20by\x20configured');}logger['info'](util[_0xd96b('0x95')](_0xd96b('0x158'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x441e40[_0xd96b('0x157')]));var _0x3c6e45=this[_0xd96b('0x4f')][_0xd96b('0x9f')](this,_0x441e40[_0xd96b('0x157')]);if(_0x3c6e45){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x159'),this['channel'][_0xd96b('0x36')],_0x441e40['findBy']));this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xd96b('0x34')][_0xd96b('0x36')],_0x441e40[_0xd96b('0x157')]));return{'code':0xc8,'result':_0xd96b('0x15a')};}else{logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xd96b('0x34')][_0xd96b('0x36')],_0x441e40[_0xd96b('0x157')]));this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format'](_0xd96b('0x15b'),this['channel'][_0xd96b('0x36')],_0x441e40[_0xd96b('0x157')]));return{'code':0xc8,'result':_0xd96b('0x15c')};}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x15d')]=function(_0x33502d){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x15e'),_0x33502d['label']));if(!this[_0xd96b('0xa3')](_0x33502d[_0xd96b('0x157')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x33502d,_0xd96b('0x15f'));}logger['info'](util[_0xd96b('0x95')](_0xd96b('0x158'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x33502d[_0xd96b('0x157')]));var _0x4ea8a2=this['agentLogout'][_0xd96b('0x9f')](this,_0x33502d[_0xd96b('0x157')]);if(_0x4ea8a2){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x159'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x33502d[_0xd96b('0x157')]));this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x159'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x33502d[_0xd96b('0x157')]));return{'code':0xc8,'result':'success'};}else{logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x15b'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x33502d[_0xd96b('0x157')]));this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x15b'),this['channel'][_0xd96b('0x36')],_0x33502d['findBy']));return{'code':0xc8,'result':_0xd96b('0x15c')};}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x160')]=function(_0x9e014a){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x161'),_0x9e014a[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x9e014a[_0xd96b('0x162')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x9e014a,_0xd96b('0x163'));}this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x164'),_0x9e014a['operation']));var _0x31674e=eval(_0x9e014a['operation']);if(!this[_0xd96b('0xa3')](_0x9e014a[_0xd96b('0xd0')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xd1'));}var _0x41b7f6=this[_0xd96b('0x14a')][_0xd96b('0x9f')](this,_0x9e014a[_0xd96b('0xd0')]);if(!_0x41b7f6){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x9e014a,_0xd96b('0xd2'));}if(_[_0xd96b('0x90')](_0x31674e)){var _0x2076f7=this;_0x31674e[_0xd96b('0xd3')](function(_0xdcea7f,_0x35ab74){_0x2076f7[_0xd96b('0x34')][_0xd96b('0x96')](util[_0xd96b('0x95')](_0xd96b('0x165'),_0x41b7f6,_0x35ab74),_0xdcea7f);});return this[_0xd96b('0x34')]['noop'](util[_0xd96b('0x95')](_0xd96b('0x166'),_0x41b7f6));}else{return this[_0xd96b('0x34')][_0xd96b('0x96')](_0x41b7f6,_0x31674e);}};AGIVertices[_0xd96b('0x15')][_0xd96b('0xd')]=function(_0x54a6c8){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x167'),_0x54a6c8[_0xd96b('0xa2')]));if(_0x54a6c8[_0xd96b('0xa0')]===0x0){return this[_0xd96b('0x9d')](_0x54a6c8);}_0x54a6c8[_0xd96b('0xa0')]-=0x1;if(!this['isConfigured'](_0x54a6c8['file_id'])){return this[_0xd96b('0x34')]['error'](_0x54a6c8,_0xd96b('0x112'));}var _0x29559c=this[_0xd96b('0x20')][_0xd96b('0x9f')](this,_0x54a6c8[_0xd96b('0x111')]);if(!_0x29559c){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x54a6c8,_0xd96b('0x113'));}var _0x4950d3=this[_0xd96b('0x34')][_0xd96b('0x114')](_0x29559c,_0x54a6c8[_0xd96b('0x115')],_0x54a6c8['digit']);var _0x1d953d=_0x4950d3['result'];if(_0x4950d3['result']===-0x1){this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x54a6c8,'-1');return _0x4950d3;}else if(_0x4950d3[_0xd96b('0x99')]===_0xd96b('0x63')){_0x4950d3[_0xd96b('0x9b')]=_0x4950d3['result']['length']>0x0?_0x4950d3[_0xd96b('0x9b')]:'t';}else if(_[_0xd96b('0x3f')](_0x4950d3['result'])){_0x4950d3[_0xd96b('0x9b')]='#';_0x1d953d='#';}if(!this[_0xd96b('0xa3')](_0x54a6c8['variable_id'])){this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xd1'));}else{var _0x93701a=this['getVariable'][_0xd96b('0x9f')](this,_0x54a6c8[_0xd96b('0xd0')]);if(!_0x93701a){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x54a6c8,'no\x20variable\x20found');}this[_0xd96b('0x34')]['setVariable'](_0x93701a,_0x1d953d);}this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x54a6c8,_0x1d953d);return _0x4950d3;};AGIVertices[_0xd96b('0x15')][_0xd96b('0xa6')]=function(_0x59c6ae){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x168'),_0x59c6ae[_0xd96b('0xa2')]));return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0x59c6ae['output']||_0x59c6ae[_0xd96b('0xa2')]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x169')]=function(_0x463651){logger[_0xd96b('0x2b')](util['format']('Enter\x20in\x20PAUSE\x20(%s)\x20block',_0x463651[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x463651[_0xd96b('0x157')])){return this[_0xd96b('0x34')]['error'](_0x463651,_0xd96b('0x15f'));}logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x158'),this[_0xd96b('0x34')]['callerid'],_0x463651['findBy']));var _0x2c8089=this[_0xd96b('0x49')][_0xd96b('0x9f')](this,_0x463651[_0xd96b('0x16a')]);var _0x348981=this['agentPause'][_0xd96b('0x9f')](this,_0x463651[_0xd96b('0x157')],_0x2c8089);if(_0x348981){logger['info'](util[_0xd96b('0x95')]('AGENT\x20%s\x20FOUND\x20BY',this[_0xd96b('0x34')][_0xd96b('0x36')],_0x463651[_0xd96b('0x157')]));this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('AGENT\x20%s\x20FOUND\x20BY',this['channel'][_0xd96b('0x36')],_0x463651[_0xd96b('0x157')]));return{'code':0xc8,'result':'success'};}else{logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x15b'),this['channel']['callerid'],_0x463651[_0xd96b('0x157')]));this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format'](_0xd96b('0x159'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x463651[_0xd96b('0x157')]));return{'code':0xc8,'result':_0xd96b('0x15c')};}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x16b')]=function(_0xf792f0){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x16c'),_0xf792f0[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0xf792f0[_0xd96b('0x111')])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0xf792f0,_0xd96b('0x112'));}var _0xb42cf0=this[_0xd96b('0x20')][_0xd96b('0x9f')](this,_0xf792f0[_0xd96b('0x111')]);if(!_0xb42cf0){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0xf792f0,'no\x20file\x20audio\x20found');}var _0x101595=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0x16d'),[_0xb42cf0,_0xf792f0[_0xd96b('0x10d')]]);if(_0x101595['result']===-0x1){return _0x101595;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0xbc'),_0xd96b('0x16d'),_0xb42cf0));};AGIVertices['prototype'][_0xd96b('0x16e')]=function(_0x27b575){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x16f'),_0x27b575[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x27b575['queue_id'])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x27b575,_0xd96b('0x170'));}var _0x5823b4='';var _0x12a3de=parseInt(_0x27b575['queue_id'],0xa);if(isNaN(_0x12a3de)){_0x5823b4=_0x27b575['queue_id'];}else{_0x5823b4=this['getVoiceQueue']['sync'](this,_0x27b575[_0xd96b('0x171')]);if(!_0x5823b4){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x27b575,'no\x20queue\x20found');}}var _0x525e70='';if(this[_0xd96b('0xa3')](_0x27b575[_0xd96b('0x111')])){var _0x45b056=this['getSound'][_0xd96b('0x9f')](this,_0x27b575[_0xd96b('0x111')]);if(_0x45b056){_0x525e70=_0x45b056;}}this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x27b575,_0x5823b4);if(_0x27b575[_0xd96b('0x10d')]['indexOf']('x')<0x0){_0x27b575[_0xd96b('0x10d')]+='x';}if(_0x27b575[_0xd96b('0x10d')][_0xd96b('0x172')]('X')<0x0){_0x27b575[_0xd96b('0x10d')]+='X';}this[_0xd96b('0x34')][_0xd96b('0x96')](_0xd96b('0x173'),_0x5823b4?_0x5823b4['toLowerCase']():'');var _0x4f77f6=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0x174'),[_0x5823b4,_0x27b575['opts'],_0x27b575[_0xd96b('0x61')],_0x525e70,_0x27b575[_0xd96b('0x63')],_0x27b575[_0xd96b('0x7')],_0x27b575['macro'],_0x27b575[_0xd96b('0x175')],'',_0x27b575[_0xd96b('0x176')]]);if(_0x4f77f6[_0xd96b('0x9b')]===-0x1){return _0x4f77f6;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('Executed\x20command\x20%s\x20%s','QUEUE',_0x5823b4));};AGIVertices[_0xd96b('0x15')]['record']=function(_0x19ae33){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x177'),_0x19ae33[_0xd96b('0xa2')]));var _0x51bb91=_0x19ae33['recordingFormat']||_0xd96b('0x130');var _0x16d92c=util[_0xd96b('0x95')](_0xd96b('0x178'),this[_0xd96b('0x34')][_0xd96b('0x38')],rs[_0xd96b('0x11a')](0x5));var _0x4f3338=util[_0xd96b('0x95')]('%s/recordings/%s.%s',FILES_PATH,_0x16d92c,_0x51bb91);var _0x3874ee=util[_0xd96b('0x95')](_0xd96b('0x131'),FILES_PATH,_0x16d92c);this[_0xd96b('0x37')][_0xd96b('0x9f')](this,_0x19ae33,_0x16d92c,_0x4f3338);this[_0xd96b('0x34')][_0xd96b('0x96')](_0xd96b('0x179'),_0x16d92c);logger[_0xd96b('0x2b')](_0xd96b('0x17a'),_0x3874ee,_0x51bb91,_0x19ae33['escape_digits'],_0x19ae33[_0xd96b('0x63')]);return this[_0xd96b('0x34')][_0xd96b('0x134')](_0x3874ee,_0x51bb91,_0x19ae33[_0xd96b('0x17b')],_0x19ae33[_0xd96b('0x63')],undefined,!![]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x17c')]=function(_0x41b2a5){logger['info'](util['format'](_0xd96b('0x17d'),_0x41b2a5[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x41b2a5[_0xd96b('0x61')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x17e'));}var _0x501cef=this[_0xd96b('0x17f')][_0xd96b('0x9f')](this,_0x41b2a5);logger['info'](util[_0xd96b('0x95')](_0xd96b('0x180'),util[_0xd96b('0x181')](_0x501cef,{'showHidden':![],'depth':null})));if(!this[_0xd96b('0xa3')](_0x41b2a5[_0xd96b('0xd0')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x182'));}var _0xb0aa2a=this[_0xd96b('0x14a')][_0xd96b('0x9f')](this,_0x41b2a5[_0xd96b('0xd0')]);if(!_0xb0aa2a){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x41b2a5,_0xd96b('0xd2'));}this['channel'][_0xd96b('0x96')](util['format'](_0xd96b('0x183'),_0xb0aa2a),_0x501cef[_0xd96b('0x6c')]?_0x501cef[_0xd96b('0x6c')]:_0xd96b('0x184'));this[_0xd96b('0x34')][_0xd96b('0x96')](util[_0xd96b('0x95')]('%s_STATUS_MESSAGE',_0xb0aa2a),_0x501cef[_0xd96b('0x6d')]?_0x501cef[_0xd96b('0x6d')]:'OK');if(_0x501cef[_0xd96b('0x66')]){try{this['saveRestApiResult'](_0x501cef[_0xd96b('0x66')],_0xb0aa2a);}catch(_0x39b876){logger[_0xd96b('0x29')](util[_0xd96b('0x95')](_0xd96b('0x185'),_0xb0aa2a));}}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('variable\x20%s\x20set',_0xb0aa2a));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x186')]=function(_0x5a93fe){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x187'),_0x5a93fe[_0xd96b('0xa2')]));return this['channel']['sayDigits'](_0x5a93fe[_0xd96b('0x188')]['replace'](/\s+/g,''),_0x5a93fe[_0xd96b('0x17b')]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x189')]=function(_0x47ef39){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x18a'),_0x47ef39[_0xd96b('0xa2')]));return this[_0xd96b('0x34')][_0xd96b('0x18b')](_0x47ef39[_0xd96b('0x18c')][_0xd96b('0x55')](/\s+/g,''),_0x47ef39[_0xd96b('0x17b')]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x18d')]=function(_0x237f76){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x18e'),_0x237f76[_0xd96b('0xa2')]));return this[_0xd96b('0x34')][_0xd96b('0x18f')](_0x237f76[_0xd96b('0x59')],_0x237f76[_0xd96b('0x17b')]);};AGIVertices[_0xd96b('0x15')][_0xd96b('0x190')]=function(_0x4674e3){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x191'),_0x4674e3[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x4674e3[_0xd96b('0x192')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x193'));}var _0x1f9496=this[_0xd96b('0x23')][_0xd96b('0x9f')](this,_0x4674e3['account_id']);if(!_0x1f9496||!_0x1f9496[_0xd96b('0x194')]){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x4674e3,_0xd96b('0x195'));}var _0x44be14={'from':util[_0xd96b('0x95')](_0xd96b('0x196'),_0x1f9496['name'],_0x1f9496[_0xd96b('0x197')]||_0x1f9496[_0xd96b('0x194')]['user']),'to':_0x4674e3['to']||'','cc':_0x4674e3['cc']||'','bcc':_0x4674e3[_0xd96b('0x198')]||'','subject':_0x4674e3['subject'],'html':_0x4674e3[_0xd96b('0x59')],'text':_0x4674e3[_0xd96b('0x59')]};var _0x3fbfd5={'tls':{'rejectUnauthorized':![]}};if(_0x1f9496[_0xd96b('0x194')][_0xd96b('0x199')]){_0x3fbfd5[_0xd96b('0x199')]=_0x1f9496[_0xd96b('0x194')][_0xd96b('0x199')];}else{_0x3fbfd5[_0xd96b('0x19a')]=_0x1f9496[_0xd96b('0x194')]['host'];_0x3fbfd5[_0xd96b('0x19b')]=_0x1f9496[_0xd96b('0x194')]['port'];_0x3fbfd5[_0xd96b('0x19c')]=_0x1f9496[_0xd96b('0x194')][_0xd96b('0x19c')];}if(_0x1f9496[_0xd96b('0x194')]['authentication']){_0x3fbfd5['auth']={'user':_0x1f9496['Smtp'][_0xd96b('0x19d')],'pass':_0x1f9496[_0xd96b('0x194')][_0xd96b('0x19e')]};}if(this[_0xd96b('0xa3')](_0x4674e3[_0xd96b('0x19f')])){}logger[_0xd96b('0xd8')](_0xd96b('0x1a0'),JSON[_0xd96b('0x6b')](_0x44be14));this[_0xd96b('0x9e')]['sync'](this,_0x4674e3,_0x4674e3[_0xd96b('0x192')]);this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1a1'),_0x1f9496[_0xd96b('0x14')]));this['sendMailMessage']['sync'](this,_0x3fbfd5,_0x44be14);return this['channel']['noop'](_0xd96b('0x1a2'));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1a3')]=function(_0x53d157){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x1a4'),_0x53d157[_0xd96b('0xa2')]));return this[_0xd96b('0x34')][_0xd96b('0xa6')]('SENDFAX\x20block\x20not\x20implemented');};AGIVertices['prototype'][_0xd96b('0x1a5')]=function(_0x4d7c2d){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x1a6'),_0x4d7c2d['label']));if(!this['isConfigured'](_0x4d7c2d[_0xd96b('0x1a7')])){return this[_0xd96b('0x34')]['noop'](_0xd96b('0x1a8'));}var _0x5820b2=this[_0xd96b('0x30')][_0xd96b('0x9f')](this,_0x4d7c2d[_0xd96b('0x1a7')]);if(!_0x5820b2){return this['channel'][_0xd96b('0x29')](_0x4d7c2d,_0xd96b('0x1a9'));}var _0x2c9b8e={'body':_0x4d7c2d['sms_text'],'phone':_0x4d7c2d['to']||'','SmsAccountId':_0x5820b2['id']};logger['debug'](_0xd96b('0x1aa'),JSON[_0xd96b('0x6b')](_0x2c9b8e));this[_0xd96b('0x9e')]['sync'](this,_0x4d7c2d,_0x4d7c2d[_0xd96b('0x1a7')]);this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1ab'),_0x5820b2[_0xd96b('0x14')]));this[_0xd96b('0x32')]['sync'](this,_0x2c9b8e);return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x1ac'));};AGIVertices['prototype'][_0xd96b('0x1ad')]=function(_0x2893a1){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('Enter\x20in\x20SET\x20(%s)\x20block',_0x2893a1[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x2893a1[_0xd96b('0xd0')])){return this[_0xd96b('0x34')]['error'](_0x2893a1,_0xd96b('0x1ae'));}var _0xd76108=this[_0xd96b('0x14a')]['sync'](this,_0x2893a1[_0xd96b('0xd0')]);if(!_0xd76108){return this[_0xd96b('0x34')]['error'](_0x2893a1,'no\x20variable\x20found');}return this[_0xd96b('0x34')]['setVariable'](_0xd76108,_0x2893a1[_0xd96b('0x1af')]);};AGIVertices['prototype'][_0xd96b('0x1b0')]=function(_0x42767){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x1b1'),_0x42767['label']));this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x1b2'));if(_0x42767[_0xd96b('0xb2')]===_0xd96b('0x1b3')){this['channel']['noop'](_0xd96b('0x1b4'));return this[_0xd96b('0x34')]['answer']();}return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0x1b5'));};AGIVertices[_0xd96b('0x15')]['subproject']=function(_0x3f8e15){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x1b6'),_0x3f8e15[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x3f8e15['project_id'])){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3f8e15,'no\x20subproject\x20selected');}var _0x58d1b1=this['getSquareProject']['sync'](this,_0x3f8e15['project_id']);if(!this[_0xd96b('0xa3')](_0x58d1b1)){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3f8e15,util[_0xd96b('0x95')](_0xd96b('0x1b7'),_0x3f8e15[_0xd96b('0x1b8')]));}if(_0x58d1b1===this[_0xd96b('0x34')][_0xd96b('0x35')]){return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x3f8e15,'project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project');}this['createSquareDetailsReport'][_0xd96b('0x9f')](this,_0x3f8e15,_0x58d1b1);var _0x29f6a3=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0x1b9'),util['format'](_0xd96b('0x1ba'),config[_0xd96b('0x7')][_0xd96b('0x19a')]||_0xd96b('0x1bb'),_0x58d1b1,this[_0xd96b('0x34')][_0xd96b('0x35')]));if(_0x29f6a3[_0xd96b('0x9b')]===-0x1){return _0x29f6a3;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util['format'](_0xd96b('0xbc'),'AGI',_0x58d1b1));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1bc')]=function(_0x80b40f){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x1bd'),_0x80b40f[_0xd96b('0xa2')]));var _0x4d005f=this['shellCommand'][_0xd96b('0x9f')](this,_0x80b40f['command']);this[_0xd96b('0x9e')][_0xd96b('0x9f')](this,_0x80b40f,_0x80b40f[_0xd96b('0xb0')]);if(this[_0xd96b('0xa3')](_0x80b40f['variable_id'])){var _0x5aff3d=this[_0xd96b('0x14a')][_0xd96b('0x9f')](this,_0x80b40f[_0xd96b('0xd0')]);if(_0x5aff3d){this[_0xd96b('0x34')]['setVariable'](_0x5aff3d,_0x4d005f);return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1be'),_0x80b40f[_0xd96b('0xb0')],_0x5aff3d));}}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1bf'),_0x80b40f[_0xd96b('0xb0')]));};AGIVertices['prototype'][_0xd96b('0x1c0')]=function(_0x1a4260){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x1c1'),_0x1a4260['label']));_0x1a4260[_0xd96b('0x59')]=_0x1a4260[_0xd96b('0x59')][_0xd96b('0x55')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xd96b('0xa3')](_0x1a4260[_0xd96b('0x57')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20apiKey\x20configured');}if(!this['isConfigured'](_0x1a4260[_0xd96b('0x59')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')](_0xd96b('0xe2'));}this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('Trying\x20Google\x20Cloud\x20TTS\x20%s',_0x1a4260[_0xd96b('0x59')]));var _0x584a1c=this[_0xd96b('0x56')]['sync'](this,_0x1a4260);if(_0x584a1c){this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1c2'),_0x584a1c));var _0x1799ed=this['channel'][_0xd96b('0xff')](_0x584a1c);try{fs['unlink'](_0x584a1c+'.wav');}catch(_0x3198f6){logger[_0xd96b('0x29')](_0x3198f6);}return _0x1799ed;}return this[_0xd96b('0x34')][_0xd96b('0x29')](_0x1a4260,_0xd96b('0x1c3'));};AGIVertices['prototype'][_0xd96b('0x1c4')]=function(_0x3eb608){logger['info'](util['format']('Enter\x20in\x20GOOGLETTS\x20(%s)\x20block',_0x3eb608['label']));_0x3eb608[_0xd96b('0x59')]=_0x3eb608[_0xd96b('0x59')][_0xd96b('0x55')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0xd96b('0xa3')](_0x3eb608[_0xd96b('0x59')])){return this[_0xd96b('0x34')][_0xd96b('0xa6')]('no\x20text\x20configured');}this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1c5'),_0x3eb608['text']));var _0x1de834=this[_0xd96b('0x5f')][_0xd96b('0x9f')](this,_0x3eb608);if(_0x1de834){this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x1c6'),_0x1de834));var _0x59338c=this[_0xd96b('0x34')][_0xd96b('0xff')](_0x1de834);try{fs[_0xd96b('0x100')](_0x1de834+_0xd96b('0x101'));}catch(_0x51fa8a){logger['error'](_0x51fa8a);}return _0x59338c;}return this['channel'][_0xd96b('0x29')](_0x3eb608,_0xd96b('0x1c7'));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1c8')]=function(_0x27dfb3){logger['info'](util[_0xd96b('0x95')](_0xd96b('0x1c9'),_0x27dfb3[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x27dfb3[_0xd96b('0x157')])){return this[_0xd96b('0x34')]['error'](_0x27dfb3,_0xd96b('0x15f'));}logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x158'),this['channel']['callerid'],_0x27dfb3[_0xd96b('0x157')]));var _0x10502e=this['agentUnpause'][_0xd96b('0x9f')](this,_0x27dfb3[_0xd96b('0x157')]);if(_0x10502e){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x159'),this['channel'][_0xd96b('0x36')],_0x27dfb3['findBy']));this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x159'),this['channel'][_0xd96b('0x36')],_0x27dfb3[_0xd96b('0x157')]));return{'code':0xc8,'result':_0xd96b('0x15a')};}else{logger[_0xd96b('0x2b')](util[_0xd96b('0x95')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0xd96b('0x34')][_0xd96b('0x36')],_0x27dfb3[_0xd96b('0x157')]));this['channel'][_0xd96b('0xa6')](util[_0xd96b('0x95')](_0xd96b('0x15b'),this[_0xd96b('0x34')][_0xd96b('0x36')],_0x27dfb3[_0xd96b('0x157')]));return{'code':0xc8,'result':_0xd96b('0x15c')};}};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1ca')]=function(_0x571d3f){logger[_0xd96b('0x2b')](util[_0xd96b('0x95')](_0xd96b('0x1cb'),_0x571d3f['label']));var _0xe2a512=this[_0xd96b('0x34')][_0xd96b('0xa4')](_0xd96b('0x1cc'),[_0x571d3f[_0xd96b('0x1cd')],_0x571d3f[_0xd96b('0x6f')]]);if(_0xe2a512[_0xd96b('0x9b')]===-0x1){return _0xe2a512;}return this[_0xd96b('0x34')][_0xd96b('0xa6')](util[_0xd96b('0x95')]('Executed\x20command\x20%s\x20%s',_0xd96b('0x1cc'),_0x571d3f['mailbox']));};AGIVertices[_0xd96b('0x15')][_0xd96b('0x1ce')]=function(_0x48d85e){logger[_0xd96b('0x2b')](util['format'](_0xd96b('0x1cf'),_0x48d85e[_0xd96b('0xa2')]));if(!this[_0xd96b('0xa3')](_0x48d85e[_0xd96b('0xd0')])){return this[_0xd96b('0x34')]['error'](_0x48d85e,'no\x20variable\x20selected');}var _0x38dce5=this[_0xd96b('0x14a')]['sync'](this,_0x48d85e[_0xd96b('0xd0')]);if(!_0x38dce5){return this['channel'][_0xd96b('0x29')](_0x48d85e,'no\x20variable\x20found');}var _0x5d98ff=this['channel'][_0xd96b('0x14a')](_0x38dce5);return{'code':0xc8,'result':_0x5d98ff[_0xd96b('0x99')]?_0x5d98ff['extra']:'-'};};String['prototype'][_0xd96b('0x98')]=function(_0x358333,_0x480c0c){return this['split'](_0x358333)[_0xd96b('0x1d0')](_0x480c0c);};module[_0xd96b('0x1d1')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ee8=['error','finally','[ACW][START]\x20%s','message','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','[ACW][STOP]\x20%s','queue','interface','[ACW][syncAgentConnect]\x20%s','isUndefined','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','syncHangup','transfereeuniqueid','secondtransfereruniqueid','isNil','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','[ACW][syncBlindTransfer]\x20%s','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','savePause','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','util','lodash','moment','../ami','../../../config/logger','acw','voiceQueues','agents','channels','agentconnect','syncAgentConnect','bind','hanguprequest','syncHangupRequest','hangup','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','prototype','startAcw','ACW','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','then','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','timers','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','format','uniqueid','update','[%s][UPDATE][ACWTIME:%s]','catch','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]'];(function(_0x3fb3ce,_0xdd4b8){var _0x8fd44c=function(_0x39051){while(--_0x39051){_0x3fb3ce['push'](_0x3fb3ce['shift']());}};_0x8fd44c(++_0xdd4b8);}(_0x4ee8,0x74));var _0x84ee=function(_0x5ddaac,_0x2697a8){_0x5ddaac=_0x5ddaac-0x0;var _0x2a9c58=_0x4ee8[_0x5ddaac];return _0x2a9c58;};'use strict';var util=require(_0x84ee('0x0'));var _=require(_0x84ee('0x1'));var moment=require(_0x84ee('0x2'));var ami=require(_0x84ee('0x3'));var logger=require(_0x84ee('0x4'))(_0x84ee('0x5'));var RpcUser=require('../rpc/user');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');function Acw(_0xc658e5){this[_0x84ee('0x6')]=_0xc658e5[_0x84ee('0x6')];this[_0x84ee('0x7')]=_0xc658e5[_0x84ee('0x7')];this['timers']=_0xc658e5['timers'];this[_0x84ee('0x8')]={};ami['on'](_0x84ee('0x9'),this[_0x84ee('0xa')][_0x84ee('0xb')](this));ami['on'](_0x84ee('0xc'),this[_0x84ee('0xd')][_0x84ee('0xb')](this));ami['on'](_0x84ee('0xe'),this['syncHangup']['bind'](this));ami['on']('agentringnoanswer',this[_0x84ee('0xf')][_0x84ee('0xb')](this));ami['on'](_0x84ee('0x10'),this[_0x84ee('0x11')][_0x84ee('0xb')](this));ami['on'](_0x84ee('0x12'),this[_0x84ee('0x13')][_0x84ee('0xb')](this));ami['on'](_0x84ee('0x14'),this[_0x84ee('0x15')][_0x84ee('0xb')](this));}function getDiff(_0x1e84d9){var _0x604d6b=moment()[_0x84ee('0x16')](0x0);var _0x38a4e0=moment(_0x1e84d9)[_0x84ee('0x16')](0x0);return _0x604d6b[_0x84ee('0x17')](_0x38a4e0,'seconds');}Acw[_0x84ee('0x18')][_0x84ee('0x19')]=function(_0x167727){try{var _0x3856c6=this;var _0x10c583=this[_0x84ee('0x8')][_0x167727]['interface'];var _0x36d276=this[_0x84ee('0x8')][_0x167727]['queue'];var _0x5578ec=this[_0x84ee('0x6')][_0x36d276];var _0x56524e=![];var _0x2369e2=_0x84ee('0x1a');if(_0x5578ec[_0x84ee('0x1b')]){if(_0x5578ec[_0x84ee('0x1c')][_0x84ee('0x1d')]){_0x56524e=!![];_0x2369e2=_0x5578ec[_0x84ee('0x1c')][_0x84ee('0x1d')];}}ami[_0x84ee('0x1e')]({'action':_0x84ee('0x1f'),'interface':_0x10c583,'paused':!![],'reason':_0x2369e2})[_0x84ee('0x20')](function(_0x367729){if(_0x3856c6[_0x84ee('0x7')][_0x10c583]){return RpcUser['getAgent'](_0x3856c6[_0x84ee('0x7')][_0x10c583]['id'])['then'](function(_0x2a0f56){if(_0x2a0f56&&!_0x2a0f56['voicePause']){logger[_0x84ee('0x21')](_0x84ee('0x22'),_0x167727,_0x10c583,_0x36d276);var _0x435304=_0x3856c6[_0x84ee('0x8')][_0x167727][_0x84ee('0x23')]&&_0x3856c6[_0x84ee('0x8')][_0x167727][_0x84ee('0x24')]?_0x3856c6[_0x84ee('0x8')][_0x167727][_0x84ee('0x24')]:_0x167727;return RpcUser['savePause'](_0x3856c6['agents'][_0x10c583],_0x2369e2,_0x435304)['then'](function(_0x9fd87e){if(!_0x56524e){_0x3856c6[_0x84ee('0x25')][_0x10c583]={};logger[_0x84ee('0x21')](_0x84ee('0x26'),_0x167727,_0x3856c6[_0x84ee('0x6')][_0x36d276][_0x84ee('0x27')],_0x10c583,_0x36d276);_0x3856c6['timers'][_0x10c583][_0x84ee('0x28')]=setTimeout(_0x3856c6['stopAcw'][_0x84ee('0xb')](_0x3856c6,_0x10c583),_0x3856c6[_0x84ee('0x6')][_0x36d276][_0x84ee('0x27')]*0x3e8);_0x3856c6[_0x84ee('0x25')][_0x10c583]['lastPauseAt']=moment()[_0x84ee('0x29')]('YYYY-MM-DD\x20HH:mm:ss');_0x3856c6[_0x84ee('0x25')][_0x10c583][_0x84ee('0x2a')]=_0x167727;_0x3856c6[_0x84ee('0x25')][_0x10c583]['queue']=_0x36d276;_0x3856c6['timers'][_0x10c583]['updateAcw']=function(){var _0x7fa7a5=getDiff(_0x3856c6[_0x84ee('0x25')][_0x10c583]['lastPauseAt']);clearTimeout(_0x3856c6[_0x84ee('0x25')][_0x10c583][_0x84ee('0x28')]);_0x3856c6[_0x84ee('0x25')][_0x10c583]['timer']=![];RpcVoiceAgentReport[_0x84ee('0x2b')]({'acwtime':_0x7fa7a5},_0x3856c6['timers'][_0x10c583]['uniqueid'],_0x10c583)[_0x84ee('0x20')](function(_0x15aaf0){logger[_0x84ee('0x21')](_0x84ee('0x2c'),_0x167727,_0x7fa7a5,_0x15aaf0);})[_0x84ee('0x2d')](function(_0x1d921b){logger['error'](_0x84ee('0x2e'),_0x167727,_0x1d921b);});delete _0x3856c6['timers'][_0x10c583];};}});}else{logger[_0x84ee('0x21')](_0x84ee('0x2f'),_0x167727,_0x10c583,_0x36d276);}});}})[_0x84ee('0x2d')](function(_0x369551){logger[_0x84ee('0x30')](_0x84ee('0x26'),_0x167727,_0x3856c6[_0x84ee('0x6')][_0x36d276]['acwTimeout'],_0x10c583,_0x36d276);})[_0x84ee('0x31')](function(){delete _0x3856c6[_0x84ee('0x8')][_0x167727];});}catch(_0x3327f5){logger[_0x84ee('0x30')](_0x84ee('0x32'),_0x3327f5[_0x84ee('0x33')]);}};Acw['prototype']['stopAcw']=function(_0x274039){try{var _0x1200c7=this;if(_0x1200c7[_0x84ee('0x25')][_0x274039]){_0x1200c7['timers'][_0x274039][_0x84ee('0x28')]=![];var _0x24c67a=_0x1200c7['timers'][_0x274039]['uniqueid'];var _0xa12d4d=_0x1200c7[_0x84ee('0x25')][_0x274039]['queue'];var _0x36c056=_0x1200c7['voiceQueues'][_0xa12d4d]['acwTimeout'];logger[_0x84ee('0x21')](_0x84ee('0x34'),_0x24c67a,_0x274039);RpcUser[_0x84ee('0x35')](this[_0x84ee('0x7')][_0x274039]);RpcVoiceAgentReport[_0x84ee('0x2b')]({'acwtime':_0x36c056,'agentacw':!![]},_0x24c67a,_0x274039)[_0x84ee('0x20')](function(_0x57c655){logger[_0x84ee('0x21')]('[%s][UPDATE][ACWTIME:%s]',_0x24c67a,_0x36c056,_0x57c655);})[_0x84ee('0x2d')](function(_0x4fd960){logger[_0x84ee('0x30')](_0x84ee('0x2e'),_0x24c67a,_0x4fd960);});}else{logger[_0x84ee('0x30')](_0x84ee('0x36'),_0x274039);if(_0x1200c7[_0x84ee('0x25')]){logger['info'](_0x84ee('0x37'),JSON[_0x84ee('0x38')](_0x1200c7[_0x84ee('0x25')]));}}}catch(_0x50bf62){logger[_0x84ee('0x30')](_0x84ee('0x39'),_0x50bf62[_0x84ee('0x33')]);}};Acw[_0x84ee('0x18')][_0x84ee('0xa')]=function(_0x2c1088){try{if(this[_0x84ee('0x6')][_0x2c1088[_0x84ee('0x3a')]]&&(this[_0x84ee('0x6')][_0x2c1088[_0x84ee('0x3a')]][_0x84ee('0x5')]||this[_0x84ee('0x6')][_0x2c1088['queue']][_0x84ee('0x1b')])){if(this[_0x84ee('0x7')][_0x2c1088[_0x84ee('0x3b')]]){this['channels'][_0x2c1088[_0x84ee('0x2a')]]={'queue':_0x2c1088[_0x84ee('0x3a')],'interface':_0x2c1088[_0x84ee('0x3b')],'destlinkedid':_0x2c1088[_0x84ee('0x24')]};}}}catch(_0x1b53ba){logger[_0x84ee('0x30')](_0x84ee('0x3c'),_0x1b53ba[_0x84ee('0x33')]);}};Acw[_0x84ee('0x18')]['syncAgentConnectPreview']=function(_0xbd40c3){try{if(this[_0x84ee('0x6')][_0xbd40c3['queue']]&&(this[_0x84ee('0x6')][_0xbd40c3[_0x84ee('0x3a')]][_0x84ee('0x5')]||this[_0x84ee('0x6')][_0xbd40c3['queue']][_0x84ee('0x1b')])){if(this[_0x84ee('0x7')][_0xbd40c3['interface']]){this['channels'][_0xbd40c3[_0x84ee('0x2a')]]={'queue':_0xbd40c3[_0x84ee('0x3a')],'interface':_0xbd40c3[_0x84ee('0x3b')]};}}}catch(_0x232563){logger[_0x84ee('0x30')]('[ACW][syncAgentConnectPreview]\x20%s',_0x232563['message']);}};Acw[_0x84ee('0x18')]['syncHangupRequest']=function(_0x77608e){try{if(this['channels'][_0x77608e[_0x84ee('0x2a')]]&&_[_0x84ee('0x3d')](this[_0x84ee('0x8')][_0x77608e['uniqueid']][_0x84ee('0x23')])){logger[_0x84ee('0x21')]('[%s][HANGUP:UNIQUEID]',_0x77608e[_0x84ee('0x2a')]);this['startAcw'](_0x77608e[_0x84ee('0x2a')]);}else if(this['channels'][_0x77608e[_0x84ee('0x3e')]]&&_[_0x84ee('0x3d')](this[_0x84ee('0x8')][_0x77608e[_0x84ee('0x3e')]]['attended'])){logger[_0x84ee('0x21')](_0x84ee('0x3f'),_0x77608e[_0x84ee('0x3e')]);this[_0x84ee('0x19')](_0x77608e[_0x84ee('0x3e')]);}}catch(_0x44ef40){logger[_0x84ee('0x30')](_0x84ee('0x40'),_0x44ef40[_0x84ee('0x33')]);}};Acw['prototype'][_0x84ee('0x41')]=function(_0x1f994d){try{if(this[_0x84ee('0x8')][_0x1f994d[_0x84ee('0x2a')]]&&this[_0x84ee('0x8')][_0x1f994d[_0x84ee('0x2a')]][_0x84ee('0x23')]){logger['info']('[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]',_0x1f994d['uniqueid']);this['startAcw'](_0x1f994d[_0x84ee('0x2a')]);}else if(this[_0x84ee('0x8')][_0x1f994d['linkedid']]&&this['channels'][_0x1f994d['linkedid']][_0x84ee('0x23')]){logger[_0x84ee('0x21')]('[%s][HANGUPATTENDEDTRANSFER:LINKEDID]',_0x1f994d[_0x84ee('0x3e')]);this[_0x84ee('0x19')](_0x1f994d['linkedid']);}}catch(_0x5d9896){logger['error']('[ACW][syncHangup]\x20%s',_0x5d9896['message']);}};Acw[_0x84ee('0x18')]['syncAttendedTransfer']=function(_0x3a4ed1){try{if(!_['isNil'](this['channels'][_0x3a4ed1[_0x84ee('0x42')]])){this[_0x84ee('0x19')](_0x3a4ed1['transfereeuniqueid']);if(this[_0x84ee('0x8')][_0x3a4ed1[_0x84ee('0x43')]]){this[_0x84ee('0x8')][_0x3a4ed1[_0x84ee('0x43')]][_0x84ee('0x23')]=!![];this[_0x84ee('0x8')][_0x3a4ed1['transfertargetuniqueid']]=this['channels'][_0x3a4ed1[_0x84ee('0x43')]];delete this[_0x84ee('0x8')][_0x3a4ed1[_0x84ee('0x43')]];}}else if(!_[_0x84ee('0x44')](this['channels'][_0x3a4ed1[_0x84ee('0x45')]])){this[_0x84ee('0x19')](_0x3a4ed1[_0x84ee('0x45')]);if(this['channels'][_0x3a4ed1[_0x84ee('0x46')]]){this[_0x84ee('0x8')][_0x3a4ed1['origtransfereruniqueid']]['attended']=!![];this['channels'][_0x3a4ed1[_0x84ee('0x42')]]=this[_0x84ee('0x8')][_0x3a4ed1[_0x84ee('0x46')]];delete this[_0x84ee('0x8')][_0x3a4ed1['origtransfereruniqueid']];}}}catch(_0x599fad){logger[_0x84ee('0x30')](_0x84ee('0x47'),_0x599fad[_0x84ee('0x33')]);}};Acw[_0x84ee('0x18')][_0x84ee('0x13')]=function(_0x552a11){try{if(this[_0x84ee('0x8')][_0x552a11[_0x84ee('0x48')]]){logger[_0x84ee('0x21')](_0x84ee('0x49'),JSON['stringify'](_0x552a11[_0x84ee('0x48')]));this['startAcw'](_0x552a11[_0x84ee('0x48')]);}else if(this[_0x84ee('0x8')][_0x552a11[_0x84ee('0x4a')]]){logger[_0x84ee('0x21')](_0x84ee('0x4b'),JSON[_0x84ee('0x38')](_0x552a11[_0x84ee('0x4a')]));this[_0x84ee('0x19')](_0x552a11[_0x84ee('0x4a')]);}}catch(_0x3e4805){logger[_0x84ee('0x30')](_0x84ee('0x4c'),_0x3e4805[_0x84ee('0x33')]);}};Acw[_0x84ee('0x18')]['syncAgentRingNoAnswer']=function(_0x4972d6){try{if(this[_0x84ee('0x6')][_0x4972d6[_0x84ee('0x3a')]]&&this[_0x84ee('0x6')][_0x4972d6[_0x84ee('0x3a')]]['autopause']===_0x84ee('0x4d')){if(this[_0x84ee('0x7')][_0x4972d6[_0x84ee('0x3b')]]){logger[_0x84ee('0x21')](_0x84ee('0x4e'),_0x4972d6[_0x84ee('0x2a')],_0x4972d6[_0x84ee('0x3b')],_0x4972d6[_0x84ee('0x3a')]);return RpcUser[_0x84ee('0x4f')](this[_0x84ee('0x7')][_0x4972d6[_0x84ee('0x3b')]],_0x84ee('0x50'),_0x4972d6[_0x84ee('0x2a')]);}}}catch(_0x44542d){logger[_0x84ee('0x30')](_0x84ee('0x51'),_0x44542d[_0x84ee('0x33')]);}};module['exports']=Acw;
\ No newline at end of file
+var _0x7067=['[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','message','acw','interface','[%s][HANGUP:UNIQUEID]','isUndefined','linkedid','[%s][HANGUP:LINKEDID]','syncHangup','[%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:%]','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','moment','../ami','../../../config/logger','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','agentconnect','syncAgentConnect','bind','hanguprequest','syncHangupRequest','hangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','milliseconds','diff','prototype','startAcw','channels','queue','ACW','mandatoryDisposition','name','mandatoryDispositionPause','Action','QueuePause','then','voicePause','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','savePause','info','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','stopAcw','YYYY-MM-DD\x20HH:mm:ss','updateAcw','timer','update','uniqueid','[%s][UPDATE][ACWTIME:%s]','catch','error'];(function(_0x5ed117,_0xfdbfbb){var _0x23c762=function(_0x1aa690){while(--_0x1aa690){_0x5ed117['push'](_0x5ed117['shift']());}};_0x23c762(++_0xfdbfbb);}(_0x7067,0x120));var _0x7706=function(_0x16e065,_0x47ab34){_0x16e065=_0x16e065-0x0;var _0xd8e6af=_0x7067[_0x16e065];return _0xd8e6af;};'use strict';var util=require(_0x7706('0x0'));var _=require('lodash');var moment=require(_0x7706('0x1'));var ami=require(_0x7706('0x2'));var logger=require(_0x7706('0x3'))('acw');var RpcUser=require(_0x7706('0x4'));var RpcVoiceAgentReport=require(_0x7706('0x5'));function Acw(_0x406362){this[_0x7706('0x6')]=_0x406362['voiceQueues'];this[_0x7706('0x7')]=_0x406362[_0x7706('0x7')];this[_0x7706('0x8')]=_0x406362[_0x7706('0x8')];this['channels']={};ami['on'](_0x7706('0x9'),this[_0x7706('0xa')][_0x7706('0xb')](this));ami['on'](_0x7706('0xc'),this[_0x7706('0xd')][_0x7706('0xb')](this));ami['on'](_0x7706('0xe'),this['syncHangup'][_0x7706('0xb')](this));ami['on'](_0x7706('0xf'),this[_0x7706('0x10')]['bind'](this));ami['on'](_0x7706('0x11'),this[_0x7706('0x12')][_0x7706('0xb')](this));ami['on'](_0x7706('0x13'),this[_0x7706('0x14')]['bind'](this));ami['on'](_0x7706('0x15'),this['syncAgentConnectPreview'][_0x7706('0xb')](this));}function getDiff(_0x552bfb){var _0x72e4ac=moment()[_0x7706('0x16')](0x0);var _0xbe1044=moment(_0x552bfb)['milliseconds'](0x0);return _0x72e4ac[_0x7706('0x17')](_0xbe1044,'seconds');}Acw[_0x7706('0x18')][_0x7706('0x19')]=function(_0x349ac9){try{var _0x29b210=this;var _0xd3fed6=this['channels'][_0x349ac9]['interface'];var _0x33124d=this[_0x7706('0x1a')][_0x349ac9][_0x7706('0x1b')];var _0x1eeffb=this['voiceQueues'][_0x33124d];var _0x4dad85=![];var _0xb93e93=_0x7706('0x1c');if(_0x1eeffb[_0x7706('0x1d')]){if(_0x1eeffb['mandatoryDispositionPause'][_0x7706('0x1e')]){_0x4dad85=!![];_0xb93e93=_0x1eeffb[_0x7706('0x1f')]['name'];}}ami[_0x7706('0x20')]({'action':_0x7706('0x21'),'interface':_0xd3fed6,'paused':!![],'reason':_0xb93e93})[_0x7706('0x22')](function(_0x32490e){if(_0x29b210['agents'][_0xd3fed6]){return RpcUser['getAgent'](_0x29b210[_0x7706('0x7')][_0xd3fed6]['id'])['then'](function(_0x435f93){if(_0x435f93&&!_0x435f93[_0x7706('0x23')]){logger['info'](_0x7706('0x24'),_0x349ac9,_0xd3fed6,_0x33124d);var _0x1e0632=_0x29b210[_0x7706('0x1a')][_0x349ac9][_0x7706('0x25')]&&_0x29b210[_0x7706('0x1a')][_0x349ac9][_0x7706('0x26')]?_0x29b210[_0x7706('0x1a')][_0x349ac9][_0x7706('0x26')]:_0x349ac9;return RpcUser[_0x7706('0x27')](_0x29b210[_0x7706('0x7')][_0xd3fed6],_0xb93e93,_0x1e0632)[_0x7706('0x22')](function(_0x43e6ee){if(!_0x4dad85){_0x29b210[_0x7706('0x8')][_0xd3fed6]={};logger[_0x7706('0x28')](_0x7706('0x29'),_0x349ac9,_0x29b210[_0x7706('0x6')][_0x33124d][_0x7706('0x2a')],_0xd3fed6,_0x33124d);_0x29b210[_0x7706('0x8')][_0xd3fed6]['timer']=setTimeout(_0x29b210[_0x7706('0x2b')][_0x7706('0xb')](_0x29b210,_0xd3fed6),_0x29b210['voiceQueues'][_0x33124d]['acwTimeout']*0x3e8);_0x29b210['timers'][_0xd3fed6]['lastPauseAt']=moment()['format'](_0x7706('0x2c'));_0x29b210[_0x7706('0x8')][_0xd3fed6]['uniqueid']=_0x349ac9;_0x29b210[_0x7706('0x8')][_0xd3fed6][_0x7706('0x1b')]=_0x33124d;_0x29b210[_0x7706('0x8')][_0xd3fed6][_0x7706('0x2d')]=function(){var _0x56e581=getDiff(_0x29b210[_0x7706('0x8')][_0xd3fed6]['lastPauseAt']);clearTimeout(_0x29b210['timers'][_0xd3fed6]['timer']);_0x29b210[_0x7706('0x8')][_0xd3fed6][_0x7706('0x2e')]=![];RpcVoiceAgentReport[_0x7706('0x2f')]({'acwtime':_0x56e581},_0x29b210[_0x7706('0x8')][_0xd3fed6][_0x7706('0x30')],_0xd3fed6)[_0x7706('0x22')](function(_0x2aed9e){logger[_0x7706('0x28')](_0x7706('0x31'),_0x349ac9,_0x56e581,_0x2aed9e);})[_0x7706('0x32')](function(_0x54c880){logger[_0x7706('0x33')]('[%s][UPDATE][ERRORS:%s]',_0x349ac9,_0x54c880);});delete _0x29b210[_0x7706('0x8')][_0xd3fed6];};}});}else{logger[_0x7706('0x28')](_0x7706('0x34'),_0x349ac9,_0xd3fed6,_0x33124d);}});}})['catch'](function(_0x2dd78f){logger[_0x7706('0x33')]('[%s][TIMER:%s][AGENT:%s][QUEUE:%s]',_0x349ac9,_0x29b210[_0x7706('0x6')][_0x33124d][_0x7706('0x2a')],_0xd3fed6,_0x33124d);})[_0x7706('0x35')](function(){delete _0x29b210[_0x7706('0x1a')][_0x349ac9];});}catch(_0x4d7a92){logger['error']('[ACW][START]\x20%s',_0x4d7a92['message']);}};Acw[_0x7706('0x18')]['stopAcw']=function(_0x21c81a){try{var _0x31af1b=this;if(_0x31af1b[_0x7706('0x8')][_0x21c81a]){_0x31af1b[_0x7706('0x8')][_0x21c81a]['timer']=![];var _0x441ea7=_0x31af1b[_0x7706('0x8')][_0x21c81a][_0x7706('0x30')];var _0x36005f=_0x31af1b[_0x7706('0x8')][_0x21c81a][_0x7706('0x1b')];var _0xeca69d=_0x31af1b['voiceQueues'][_0x36005f][_0x7706('0x2a')];logger[_0x7706('0x28')](_0x7706('0x36'),_0x441ea7,_0x21c81a);RpcUser[_0x7706('0x37')](this[_0x7706('0x7')][_0x21c81a]);RpcVoiceAgentReport[_0x7706('0x2f')]({'acwtime':_0xeca69d,'agentacw':!![]},_0x441ea7,_0x21c81a)[_0x7706('0x22')](function(_0x5cf878){logger[_0x7706('0x28')](_0x7706('0x31'),_0x441ea7,_0xeca69d,_0x5cf878);})['catch'](function(_0x435952){logger[_0x7706('0x33')]('[%s][UPDATE][ERRORS:%s]',_0x441ea7,_0x435952);});}else{logger[_0x7706('0x33')](_0x7706('0x38'),_0x21c81a);if(_0x31af1b['timers']){logger[_0x7706('0x28')](_0x7706('0x39'),JSON[_0x7706('0x3a')](_0x31af1b['timers']));}}}catch(_0x52c713){logger[_0x7706('0x33')]('[ACW][STOP]\x20%s',_0x52c713[_0x7706('0x3b')]);}};Acw[_0x7706('0x18')][_0x7706('0xa')]=function(_0x32ef78){try{if(this[_0x7706('0x6')][_0x32ef78['queue']]&&(this['voiceQueues'][_0x32ef78[_0x7706('0x1b')]][_0x7706('0x3c')]||this[_0x7706('0x6')][_0x32ef78[_0x7706('0x1b')]]['mandatoryDisposition'])){if(this['agents'][_0x32ef78[_0x7706('0x3d')]]){this[_0x7706('0x1a')][_0x32ef78[_0x7706('0x30')]]={'queue':_0x32ef78[_0x7706('0x1b')],'interface':_0x32ef78[_0x7706('0x3d')],'destlinkedid':_0x32ef78[_0x7706('0x26')]};}}}catch(_0x56c34f){logger[_0x7706('0x33')]('[ACW][syncAgentConnect]\x20%s',_0x56c34f['message']);}};Acw[_0x7706('0x18')]['syncAgentConnectPreview']=function(_0x27df91){try{if(this['voiceQueues'][_0x27df91[_0x7706('0x1b')]]&&(this['voiceQueues'][_0x27df91[_0x7706('0x1b')]][_0x7706('0x3c')]||this[_0x7706('0x6')][_0x27df91['queue']][_0x7706('0x1d')])){if(this[_0x7706('0x7')][_0x27df91[_0x7706('0x3d')]]){this[_0x7706('0x1a')][_0x27df91[_0x7706('0x30')]]={'queue':_0x27df91[_0x7706('0x1b')],'interface':_0x27df91[_0x7706('0x3d')]};}}}catch(_0x324dfc){logger[_0x7706('0x33')]('[ACW][syncAgentConnectPreview]\x20%s',_0x324dfc[_0x7706('0x3b')]);}};Acw['prototype'][_0x7706('0xd')]=function(_0x25d1a4){try{if(this[_0x7706('0x1a')][_0x25d1a4[_0x7706('0x30')]]&&_['isUndefined'](this[_0x7706('0x1a')][_0x25d1a4[_0x7706('0x30')]][_0x7706('0x25')])){logger[_0x7706('0x28')](_0x7706('0x3e'),_0x25d1a4['uniqueid']);this[_0x7706('0x19')](_0x25d1a4[_0x7706('0x30')]);}else if(this[_0x7706('0x1a')][_0x25d1a4['linkedid']]&&_[_0x7706('0x3f')](this[_0x7706('0x1a')][_0x25d1a4[_0x7706('0x40')]][_0x7706('0x25')])){logger['info'](_0x7706('0x41'),_0x25d1a4['linkedid']);this[_0x7706('0x19')](_0x25d1a4[_0x7706('0x40')]);}}catch(_0x3e104b){logger[_0x7706('0x33')]('[ACW][syncHangupRequest]\x20%s',_0x3e104b[_0x7706('0x3b')]);}};Acw[_0x7706('0x18')][_0x7706('0x42')]=function(_0x316957){try{if(this[_0x7706('0x1a')][_0x316957['uniqueid']]&&this[_0x7706('0x1a')][_0x316957['uniqueid']]['attended']){logger[_0x7706('0x28')](_0x7706('0x43'),_0x316957[_0x7706('0x30')]);this[_0x7706('0x19')](_0x316957[_0x7706('0x30')]);}else if(this[_0x7706('0x1a')][_0x316957[_0x7706('0x40')]]&&this[_0x7706('0x1a')][_0x316957['linkedid']]['attended']){logger[_0x7706('0x28')](_0x7706('0x44'),_0x316957[_0x7706('0x40')]);this[_0x7706('0x19')](_0x316957['linkedid']);}}catch(_0xe00f53){logger[_0x7706('0x33')](_0x7706('0x45'),_0xe00f53[_0x7706('0x3b')]);}};Acw[_0x7706('0x18')]['syncAttendedTransfer']=function(_0xe781f3){try{if(!_[_0x7706('0x46')](this[_0x7706('0x1a')][_0xe781f3[_0x7706('0x47')]])){this[_0x7706('0x19')](_0xe781f3[_0x7706('0x47')]);if(this['channels'][_0xe781f3[_0x7706('0x48')]]){this[_0x7706('0x1a')][_0xe781f3['secondtransfereruniqueid']][_0x7706('0x25')]=!![];this['channels'][_0xe781f3[_0x7706('0x49')]]=this['channels'][_0xe781f3[_0x7706('0x48')]];delete this[_0x7706('0x1a')][_0xe781f3[_0x7706('0x48')]];}}else if(!_[_0x7706('0x46')](this[_0x7706('0x1a')][_0xe781f3['transfertargetuniqueid']])){this['startAcw'](_0xe781f3[_0x7706('0x49')]);if(this[_0x7706('0x1a')][_0xe781f3[_0x7706('0x4a')]]){this[_0x7706('0x1a')][_0xe781f3['origtransfereruniqueid']][_0x7706('0x25')]=!![];this[_0x7706('0x1a')][_0xe781f3[_0x7706('0x47')]]=this[_0x7706('0x1a')][_0xe781f3[_0x7706('0x4a')]];delete this[_0x7706('0x1a')][_0xe781f3[_0x7706('0x4a')]];}}}catch(_0x517601){logger[_0x7706('0x33')](_0x7706('0x4b'),_0x517601['message']);}};Acw[_0x7706('0x18')][_0x7706('0x14')]=function(_0x2ac013){try{if(this[_0x7706('0x1a')][_0x2ac013[_0x7706('0x4c')]]){logger[_0x7706('0x28')]('[%s][BLINDTRANSFER:UNIQUEID]',JSON[_0x7706('0x3a')](_0x2ac013['transfereruniqueid']));this['startAcw'](_0x2ac013[_0x7706('0x4c')]);}else if(this['channels'][_0x2ac013[_0x7706('0x4d')]]){logger[_0x7706('0x28')](_0x7706('0x4e'),JSON[_0x7706('0x3a')](_0x2ac013[_0x7706('0x4d')]));this[_0x7706('0x19')](_0x2ac013['transfererlinkedid']);}}catch(_0x12d7ec){logger[_0x7706('0x33')](_0x7706('0x4f'),_0x12d7ec[_0x7706('0x3b')]);}};Acw[_0x7706('0x18')][_0x7706('0x10')]=function(_0x5aae6a){try{if(this['voiceQueues'][_0x5aae6a[_0x7706('0x1b')]]&&this[_0x7706('0x6')][_0x5aae6a['queue']][_0x7706('0x50')]===_0x7706('0x51')){if(this[_0x7706('0x7')][_0x5aae6a[_0x7706('0x3d')]]){logger['info'](_0x7706('0x52'),_0x5aae6a[_0x7706('0x30')],_0x5aae6a[_0x7706('0x3d')],_0x5aae6a['queue']);return RpcUser['savePause'](this[_0x7706('0x7')][_0x5aae6a[_0x7706('0x3d')]],'Auto-Pause',_0x5aae6a[_0x7706('0x30')]);}}}catch(_0x506f40){logger[_0x7706('0x33')](_0x7706('0x53'),_0x506f40['message']);}};module[_0x7706('0x54')]=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa772=['asterisk-manager','bluebird','util','lodash','../../config/logger','ami','../../config/environment','asterisk','port','username','password','keepConnected','Action','promisify','action','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','sipshowregistry','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary','actionCoreShowChannels','coreshowchannels','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','error','close','connect','shutdown','info','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','inspect','fullybooted','then','actionDeviceStateList','catch','log'];(function(_0x209941,_0x5c9988){var _0x1e8729=function(_0x51a9b8){while(--_0x51a9b8){_0x209941['push'](_0x209941['shift']());}};_0x1e8729(++_0x5c9988);}(_0xa772,0x1e0));var _0x2a77=function(_0x40b7ea,_0x550490){_0x40b7ea=_0x40b7ea-0x0;var _0x2627ec=_0xa772[_0x40b7ea];return _0x2627ec;};'use strict';var Manager=require(_0x2a77('0x0'));var BPromise=require(_0x2a77('0x1'));var moment=require('moment');var util=require(_0x2a77('0x2'));var _=require(_0x2a77('0x3'));var logger=require(_0x2a77('0x4'))(_0x2a77('0x5'));var config=require(_0x2a77('0x6'));var ami=new Manager(config[_0x2a77('0x7')][_0x2a77('0x8')],config[_0x2a77('0x7')]['ip'],config[_0x2a77('0x7')][_0x2a77('0x9')],config['asterisk'][_0x2a77('0xa')],!![]);ami[_0x2a77('0xb')]();ami[_0x2a77('0xc')]=BPromise[_0x2a77('0xd')](ami[_0x2a77('0xe')]);function error(_0x3bd65c){logger['error'](util[_0x2a77('0xf')](_0x2a77('0x10'),config[_0x2a77('0x7')][_0x2a77('0x9')],config[_0x2a77('0x7')]['ip'],config[_0x2a77('0x7')][_0x2a77('0x8')],util['inspect'](_0x3bd65c,![],null)));}function close(){logger['error'](util['format'](_0x2a77('0x11'),config[_0x2a77('0x7')][_0x2a77('0x9')],config[_0x2a77('0x7')]['ip'],config[_0x2a77('0x7')]['port']));}ami[_0x2a77('0x12')]=function(){return function(){return ami[_0x2a77('0xc')]({'action':_0x2a77('0x13')});};};ami['actionDeviceStateList']=function(){return function(){return ami[_0x2a77('0xc')]({'action':_0x2a77('0x14')});};};ami[_0x2a77('0x15')]=function(){return function(){return ami[_0x2a77('0xc')]({'action':_0x2a77('0x16')});};};ami[_0x2a77('0x17')]=function(){return function(){return ami[_0x2a77('0xc')]({'action':'queuesummary'});};};ami[_0x2a77('0x18')]=function(){return function(){return ami[_0x2a77('0xc')]({'action':_0x2a77('0x19')});};};function connect(_0x715c5b){logger['info'](util[_0x2a77('0xf')](_0x2a77('0x1a'),config[_0x2a77('0x7')][_0x2a77('0x9')],config[_0x2a77('0x7')]['ip'],config[_0x2a77('0x7')]['port']));ami[_0x2a77('0x1b')](_0x2a77('0x1c'),error);ami['once'](_0x2a77('0x1d'),close);}ami['on'](_0x2a77('0x1e'),connect);ami['on'](_0x2a77('0x1f'),function(_0x42c991){logger[_0x2a77('0x20')](util[_0x2a77('0xf')](_0x2a77('0x21'),config['asterisk'][_0x2a77('0x9')],config[_0x2a77('0x7')]['ip'],config[_0x2a77('0x7')][_0x2a77('0x8')],util[_0x2a77('0x22')](_0x42c991,![],null)));});ami['on'](_0x2a77('0x23'),function(_0x548ced){logger[_0x2a77('0x20')](util['format']('Fullybooted\x20\x22%s\x22\x20to\x20%s:%s',config[_0x2a77('0x7')][_0x2a77('0x9')],config['asterisk']['ip'],config[_0x2a77('0x7')][_0x2a77('0x8')]));return BPromise['resolve']()['then'](ami[_0x2a77('0x12')]())[_0x2a77('0x24')](ami[_0x2a77('0x25')]())['then'](ami['actionSipPeerStatus']())[_0x2a77('0x24')](ami[_0x2a77('0x17')]())[_0x2a77('0x24')](ami[_0x2a77('0x18')]())[_0x2a77('0x26')](function(_0x273d93){console[_0x2a77('0x27')](_0x273d93);});});ami[_0x2a77('0x1b')](_0x2a77('0x1c'),error);ami[_0x2a77('0x1b')](_0x2a77('0x1d'),close);module['exports']=ami;
\ No newline at end of file
+var _0xfa04=['queuesummary','actionCoreShowChannels','coreshowchannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','connect','shutdown','inspect','fullybooted','resolve','then','actionDeviceStateList','catch','log','exports','asterisk-manager','bluebird','moment','util','lodash','asterisk','port','username','password','keepConnected','Action','promisify','error','format','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','sipshowregistry','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0xfa04,0x149));var _0x4fa0=function(_0x160c73,_0x2ee678){_0x160c73=_0x160c73-0x0;var _0xd9302=_0xfa04[_0x160c73];return _0xd9302;};'use strict';var Manager=require(_0x4fa0('0x0'));var BPromise=require(_0x4fa0('0x1'));var moment=require(_0x4fa0('0x2'));var util=require(_0x4fa0('0x3'));var _=require(_0x4fa0('0x4'));var logger=require('../../config/logger')('ami');var config=require('../../config/environment');var ami=new Manager(config[_0x4fa0('0x5')][_0x4fa0('0x6')],config['asterisk']['ip'],config[_0x4fa0('0x5')][_0x4fa0('0x7')],config[_0x4fa0('0x5')][_0x4fa0('0x8')],!![]);ami[_0x4fa0('0x9')]();ami[_0x4fa0('0xa')]=BPromise[_0x4fa0('0xb')](ami['action']);function error(_0x151ae5){logger[_0x4fa0('0xc')](util[_0x4fa0('0xd')](_0x4fa0('0xe'),config[_0x4fa0('0x5')][_0x4fa0('0x7')],config[_0x4fa0('0x5')]['ip'],config[_0x4fa0('0x5')][_0x4fa0('0x6')],util['inspect'](_0x151ae5,![],null)));}function close(){logger[_0x4fa0('0xc')](util[_0x4fa0('0xd')](_0x4fa0('0xf'),config[_0x4fa0('0x5')][_0x4fa0('0x7')],config[_0x4fa0('0x5')]['ip'],config[_0x4fa0('0x5')][_0x4fa0('0x6')]));}ami[_0x4fa0('0x10')]=function(){return function(){return ami[_0x4fa0('0xa')]({'action':_0x4fa0('0x11')});};};ami['actionDeviceStateList']=function(){return function(){return ami[_0x4fa0('0xa')]({'action':_0x4fa0('0x12')});};};ami[_0x4fa0('0x13')]=function(){return function(){return ami[_0x4fa0('0xa')]({'action':_0x4fa0('0x14')});};};ami[_0x4fa0('0x15')]=function(){return function(){return ami[_0x4fa0('0xa')]({'action':_0x4fa0('0x16')});};};ami[_0x4fa0('0x17')]=function(){return function(){return ami[_0x4fa0('0xa')]({'action':_0x4fa0('0x18')});};};function connect(_0x50c5a5){logger[_0x4fa0('0x19')](util['format'](_0x4fa0('0x1a'),config[_0x4fa0('0x5')][_0x4fa0('0x7')],config[_0x4fa0('0x5')]['ip'],config[_0x4fa0('0x5')][_0x4fa0('0x6')]));ami[_0x4fa0('0x1b')]('error',error);ami[_0x4fa0('0x1b')](_0x4fa0('0x1c'),close);}ami['on'](_0x4fa0('0x1d'),connect);ami['on'](_0x4fa0('0x1e'),function(_0x30d929){logger[_0x4fa0('0x19')](util[_0x4fa0('0xd')]('Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s',config[_0x4fa0('0x5')]['username'],config['asterisk']['ip'],config[_0x4fa0('0x5')][_0x4fa0('0x6')],util[_0x4fa0('0x1f')](_0x30d929,![],null)));});ami['on'](_0x4fa0('0x20'),function(_0x48ce03){logger[_0x4fa0('0x19')](util['format']('Fullybooted\x20\x22%s\x22\x20to\x20%s:%s',config['asterisk'][_0x4fa0('0x7')],config['asterisk']['ip'],config[_0x4fa0('0x5')]['port']));return BPromise[_0x4fa0('0x21')]()[_0x4fa0('0x22')](ami[_0x4fa0('0x10')]())[_0x4fa0('0x22')](ami[_0x4fa0('0x23')]())[_0x4fa0('0x22')](ami['actionSipPeerStatus']())[_0x4fa0('0x22')](ami[_0x4fa0('0x15')]())['then'](ami[_0x4fa0('0x17')]())[_0x4fa0('0x24')](function(_0x1dea11){console[_0x4fa0('0x25')](_0x1dea11);});});ami['once']('error',error);ami[_0x4fa0('0x1b')](_0x4fa0('0x1c'),close);module[_0x4fa0('0x26')]=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4eb=['rpc','error','message','result','exports','jayson/promise','http','request','then','debug','memberReport'];(function(_0x54a154,_0x1e6a06){var _0x25d7ca=function(_0x14aa1b){while(--_0x14aa1b){_0x54a154['push'](_0x54a154['shift']());}};_0x25d7ca(++_0x1e6a06);}(_0xf4eb,0xec));var _0xbf4e=function(_0x5526bb,_0x22506a){_0x5526bb=_0x5526bb-0x0;var _0x5aaec1=_0xf4eb[_0x5526bb];return _0x5aaec1;};'use strict';var jayson=require(_0xbf4e('0x0'));var BPromise=require('bluebird');var logger=require('../../config/logger')('ami');var client=jayson['client'][_0xbf4e('0x1')]({'port':0x2329});client['Request']=function(_0x4e7fa7,_0x2e3070){return new BPromise(function(_0x1c7606,_0x32d1d7){return client[_0xbf4e('0x2')](_0x4e7fa7,_0x2e3070)[_0xbf4e('0x3')](function(_0x2fcfed){logger[_0xbf4e('0x4')]('rpc',_0xbf4e('0x5'),_0x4e7fa7,_0x2e3070,_0x2fcfed);if(_0x2fcfed['error']){logger['error'](_0xbf4e('0x6'),_0xbf4e('0x5'),_0x4e7fa7,_0x2fcfed[_0xbf4e('0x7')][_0xbf4e('0x8')],_0x2e3070);return _0x32d1d7(_0x2fcfed[_0xbf4e('0x7')][_0xbf4e('0x8')]);}else{return _0x1c7606(_0x2fcfed[_0xbf4e('0x9')]);}})['catch'](function(_0x4d9a07){logger[_0xbf4e('0x7')]('rpc',_0xbf4e('0x5'),_0x4e7fa7,_0x4d9a07,_0x2e3070);return _0x32d1d7(_0x4d9a07);});});};module[_0xbf4e('0xa')]=client;
\ No newline at end of file
+var _0xb43b=['catch','exports','jayson/promise','bluebird','ami','client','http','rpc','memberReport','error','message','result'];(function(_0x33f9c6,_0x24cc4f){var _0x1edc0d=function(_0x49dfb8){while(--_0x49dfb8){_0x33f9c6['push'](_0x33f9c6['shift']());}};_0x1edc0d(++_0x24cc4f);}(_0xb43b,0x1b2));var _0xbb43=function(_0x2f0faf,_0x3637bd){_0x2f0faf=_0x2f0faf-0x0;var _0xa0da34=_0xb43b[_0x2f0faf];return _0xa0da34;};'use strict';var jayson=require(_0xbb43('0x0'));var BPromise=require(_0xbb43('0x1'));var logger=require('../../config/logger')(_0xbb43('0x2'));var client=jayson[_0xbb43('0x3')][_0xbb43('0x4')]({'port':0x2329});client['Request']=function(_0x131e9e,_0x41aff6){return new BPromise(function(_0x351254,_0x16432a){return client['request'](_0x131e9e,_0x41aff6)['then'](function(_0x378df5){logger['debug'](_0xbb43('0x5'),_0xbb43('0x6'),_0x131e9e,_0x41aff6,_0x378df5);if(_0x378df5[_0xbb43('0x7')]){logger[_0xbb43('0x7')](_0xbb43('0x5'),'memberReport',_0x131e9e,_0x378df5[_0xbb43('0x7')][_0xbb43('0x8')],_0x41aff6);return _0x16432a(_0x378df5['error'][_0xbb43('0x8')]);}else{return _0x351254(_0x378df5[_0xbb43('0x9')]);}})[_0xbb43('0xa')](function(_0x5e3611){logger[_0xbb43('0x7')](_0xbb43('0x5'),'memberReport',_0x131e9e,_0x5e3611,_0x41aff6);return _0x16432a(_0x5e3611);});});};module[_0xbb43('0xb')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa33b=['ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','recallme','prototype','getCaller','number','exports','util','moment','isNil','string','voiceQueue','uniqueid','name','Contact','firstName','phone','queue','active','type','dialQueueTimeout','scheduledat','countbusyretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry'];(function(_0x57cc22,_0x2d351f){var _0x6f7bdc=function(_0x4935b5){while(--_0x4935b5){_0x57cc22['push'](_0x57cc22['shift']());}};_0x6f7bdc(++_0x2d351f);}(_0xa33b,0x8a));var _0xba33=function(_0x50a0c2,_0x4befab){_0x50a0c2=_0x50a0c2-0x0;var _0x5ebadd=_0xa33b[_0x50a0c2];return _0x5ebadd;};'use strict';var util=require(_0xba33('0x0'));var _=require('lodash');var moment=require(_0xba33('0x1'));function checkNameSurname(_0x56fc4b,_0x43b540,_0x5e61fd){var _0x4a44db='';if(!_['isNil'](_0x43b540)&&'string'===typeof _0x43b540){_0x4a44db+=_0x43b540;}if(!_[_0xba33('0x2')](_0x5e61fd)&&_0xba33('0x3')===typeof _0x5e61fd){_0x4a44db+='\x20'+_0x5e61fd;}if(_0x4a44db!==''){return _0x4a44db;}return _0x56fc4b;}function Action(_0x15351d,_0x852aa0,_0x339b5f){this[_0xba33('0x4')]=_0x15351d;this[_0xba33('0x5')]=_0x339b5f||undefined;this[_0xba33('0x6')]=checkNameSurname(_0x852aa0[_0xba33('0x7')]['phone'],_0x852aa0['Contact'][_0xba33('0x8')],_0x852aa0[_0xba33('0x7')]['lastName']);this['number']=_0x852aa0[_0xba33('0x7')][_0xba33('0x9')];this[_0xba33('0xa')]=_0x15351d['name'];this[_0xba33('0xb')]=_0x852aa0[_0xba33('0xb')]||![];this[_0xba33('0xc')]=_0x15351d['type'];this[_0xba33('0xd')]=_0x15351d[_0xba33('0xd')]||0x3;this[_0xba33('0xe')]=_0x852aa0[_0xba33('0xe')];this[_0xba33('0xf')]=_0x852aa0[_0xba33('0xf')];this['countcongestionretry']=_0x852aa0['countcongestionretry'];this[_0xba33('0x10')]=_0x852aa0['countnoanswerretry'];this[_0xba33('0x11')]=_0x852aa0[_0xba33('0x11')];this['countdropretry']=_0x852aa0[_0xba33('0x12')];this[_0xba33('0x13')]=_0x852aa0['countabandonedretry'];this[_0xba33('0x14')]=_0x852aa0[_0xba33('0x14')];this[_0xba33('0x15')]=_0x852aa0[_0xba33('0x15')];this[_0xba33('0x16')]=_0x852aa0[_0xba33('0x16')];this[_0xba33('0x17')]=_0x852aa0[_0xba33('0x17')];this[_0xba33('0x18')]=_0x852aa0[_0xba33('0x18')];this[_0xba33('0x19')]=_0x852aa0[_0xba33('0x19')];this[_0xba33('0x1a')]=_0x852aa0['CampaignId'];this[_0xba33('0x1b')]=_0x852aa0['id'];this[_0xba33('0x1c')]=_0x852aa0[_0xba33('0x7')][_0xba33('0x8')]||'';this[_0xba33('0x1d')]=moment()[_0xba33('0x1e')](_0xba33('0x1f'));this[_0xba33('0x20')]=_0x852aa0['callback'];this[_0xba33('0x21')]=_0x852aa0[_0xba33('0x21')];this[_0xba33('0x22')]=_0x852aa0[_0xba33('0x22')];this[_0xba33('0x23')]=_0x852aa0[_0xba33('0x23')];this['originatecalleridnum']='';this['originatecalleridname']='';}Action[_0xba33('0x24')][_0xba33('0x25')]=function(){return util['format']('\x22%s\x22\x20<%s>',this[_0xba33('0x6')],this['voiceQueue']['dialCutDigit']>0x0?this['number']['substring'](this[_0xba33('0x4')]['dialCutDigit']):this[_0xba33('0x26')]);};Action[_0xba33('0x24')]['getQueue']=function(){return this[_0xba33('0xa')];};module[_0xba33('0x27')]=Action;
\ No newline at end of file
+var _0x2731=['exports','util','lodash','moment','isNil','string','uniqueid','name','phone','Contact','firstName','lastName','number','queue','active','dialQueueTimeout','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','ListId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName','format','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','getCaller','\x22%s\x22\x20<%s>','dialCutDigit','voiceQueue','prototype','getQueue'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x2731,0x184));var _0x1273=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0x2731[_0x4565bf];return _0x5610ba;};'use strict';var util=require(_0x1273('0x0'));var _=require(_0x1273('0x1'));var moment=require(_0x1273('0x2'));function checkNameSurname(_0x2cf15a,_0xa07df7,_0x4530ae){var _0x9c0bce='';if(!_[_0x1273('0x3')](_0xa07df7)&&_0x1273('0x4')===typeof _0xa07df7){_0x9c0bce+=_0xa07df7;}if(!_[_0x1273('0x3')](_0x4530ae)&&_0x1273('0x4')===typeof _0x4530ae){_0x9c0bce+='\x20'+_0x4530ae;}if(_0x9c0bce!==''){return _0x9c0bce;}return _0x2cf15a;}function Action(_0x5d61ba,_0x4386eb,_0x256c58){this['voiceQueue']=_0x5d61ba;this[_0x1273('0x5')]=_0x256c58||undefined;this[_0x1273('0x6')]=checkNameSurname(_0x4386eb['Contact'][_0x1273('0x7')],_0x4386eb[_0x1273('0x8')][_0x1273('0x9')],_0x4386eb[_0x1273('0x8')][_0x1273('0xa')]);this[_0x1273('0xb')]=_0x4386eb['Contact'][_0x1273('0x7')];this[_0x1273('0xc')]=_0x5d61ba[_0x1273('0x6')];this[_0x1273('0xd')]=_0x4386eb['active']||![];this['type']=_0x5d61ba['type'];this[_0x1273('0xe')]=_0x5d61ba[_0x1273('0xe')]||0x3;this['scheduledat']=_0x4386eb['scheduledat'];this[_0x1273('0xf')]=_0x4386eb[_0x1273('0xf')];this[_0x1273('0x10')]=_0x4386eb[_0x1273('0x10')];this['countnoanswerretry']=_0x4386eb[_0x1273('0x11')];this[_0x1273('0x12')]=_0x4386eb[_0x1273('0x12')];this[_0x1273('0x13')]=_0x4386eb[_0x1273('0x13')];this[_0x1273('0x14')]=_0x4386eb['countabandonedretry'];this[_0x1273('0x15')]=_0x4386eb['countmachineretry'];this[_0x1273('0x16')]=_0x4386eb[_0x1273('0x16')];this[_0x1273('0x17')]=_0x4386eb[_0x1273('0x17')];this[_0x1273('0x18')]=_0x4386eb[_0x1273('0x18')];this['UserId']=_0x4386eb[_0x1273('0x19')];this[_0x1273('0x1a')]=_0x4386eb[_0x1273('0x1a')];this[_0x1273('0x1b')]=_0x4386eb[_0x1273('0x1b')];this[_0x1273('0x1c')]=_0x4386eb['id'];this[_0x1273('0x1d')]=_0x4386eb[_0x1273('0x8')][_0x1273('0x9')]||'';this['starttime']=moment()[_0x1273('0x1e')]('YYYY-MM-DD\x20HH:mm:ss');this['callback']=_0x4386eb[_0x1273('0x1f')];this[_0x1273('0x20')]=_0x4386eb[_0x1273('0x20')];this['callbackat']=_0x4386eb[_0x1273('0x21')];this[_0x1273('0x22')]=_0x4386eb[_0x1273('0x22')];this[_0x1273('0x23')]='';this['originatecalleridname']='';}Action['prototype'][_0x1273('0x24')]=function(){return util[_0x1273('0x1e')](_0x1273('0x25'),this[_0x1273('0x6')],this['voiceQueue'][_0x1273('0x26')]>0x0?this[_0x1273('0xb')]['substring'](this[_0x1273('0x27')][_0x1273('0x26')]):this['number']);};Action[_0x1273('0x28')][_0x1273('0x29')]=function(){return this[_0x1273('0xc')];};module[_0x1273('0x2a')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x722e=['ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','exports','lodash','moment','milliseconds','diff','seconds','state','statedesc','Answer','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','countabandonedretry','name','calleridnum','responsetime','answertime','endtime','format','ringtime','starttime','holdtime','talktime','queue','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0x537982,_0x47772d){var _0x5b6c8e=function(_0x4f7aa5){while(--_0x4f7aa5){_0x537982['push'](_0x537982['shift']());}};_0x5b6c8e(++_0x47772d);}(_0x722e,0xe2));var _0xe722=function(_0x4ea4d9,_0xf7da97){_0x4ea4d9=_0x4ea4d9-0x0;var _0x3b049e=_0x722e[_0x4ea4d9];return _0x3b049e;};'use strict';var util=require('util');var _=require(_0xe722('0x0'));var moment=require(_0xe722('0x1'));function getSeconds(_0x400892,_0xb1f724){var _0x134869=moment(_0x400892)[_0xe722('0x2')](0x0);var _0x22a5ea=moment(_0xb1f724)[_0xe722('0x2')](0x0);return _0x134869[_0xe722('0x3')](_0x22a5ea,_0xe722('0x4'));}function AgentComplete(_0x465064,_0x59e8bf){this[_0xe722('0x5')]=0x4;this[_0xe722('0x6')]=_0xe722('0x7');this['scheduledat']=_0x465064['scheduledat'];this[_0xe722('0x8')]=_0x465064[_0xe722('0x8')];this[_0xe722('0x9')]=_0x465064[_0xe722('0x8')]===_0xe722('0xa')?'queue':_0x465064[_0xe722('0x8')];this[_0xe722('0xb')]=_0x465064[_0xe722('0xb')];this[_0xe722('0xc')]=_0x465064[_0xe722('0xc')];this['countnoanswerretry']=_0x465064[_0xe722('0xd')];this[_0xe722('0xe')]=_0x465064['countbusyretry']+_0x465064[_0xe722('0xc')]+_0x465064[_0xe722('0xd')]+_0x465064[_0xe722('0xf')]+_0x465064[_0xe722('0x10')]+_0x465064['countabandonedretry']+_0x465064[_0xe722('0x11')]+_0x465064[_0xe722('0x12')];this[_0xe722('0xf')]=_0x465064['countnosuchnumberretry'];this[_0xe722('0x10')]=_0x465064[_0xe722('0x10')];this[_0xe722('0x13')]=_0x465064[_0xe722('0x13')];this[_0xe722('0x11')]=_0x465064[_0xe722('0x11')];this[_0xe722('0x12')]=_0x465064['countagentrejectretry'];this['uniqueid']=_0x59e8bf['uniqueid'];this['calleridname']=_0x465064[_0xe722('0x14')];this[_0xe722('0x15')]=_0x465064['number'];this['starttime']=_0x465064['starttime'];this[_0xe722('0x16')]=_0x465064['responsetime'];this[_0xe722('0x17')]=_0x465064[_0xe722('0x17')];this[_0xe722('0x18')]=moment()[_0xe722('0x19')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xe722('0x1a')]=getSeconds(_0x465064[_0xe722('0x16')],_0x465064[_0xe722('0x1b')]);this[_0xe722('0x1c')]=getSeconds(_0x465064[_0xe722('0x17')],_0x465064[_0xe722('0x16')]);this[_0xe722('0x1d')]=getSeconds(this[_0xe722('0x18')],_0x465064[_0xe722('0x17')]);this[_0xe722('0x1e')]=_0x59e8bf[_0xe722('0x1e')];this['membername']=_0x59e8bf[_0xe722('0x1f')];this[_0xe722('0x20')]=_0x59e8bf['reason'];this[_0xe722('0x21')]=_0x465064[_0xe722('0x21')];this[_0xe722('0x22')]=_0x465064[_0xe722('0x22')];this[_0xe722('0x23')]=_0x465064[_0xe722('0x23')];this['recallme']=_0x465064[_0xe722('0x24')];this[_0xe722('0x25')]=_0x465064[_0xe722('0x25')];this[_0xe722('0x26')]=_0x465064[_0xe722('0x26')];this[_0xe722('0x27')]=_0x465064[_0xe722('0x27')];this[_0xe722('0x28')]=_0x465064[_0xe722('0x28')];this[_0xe722('0x29')]=_0x465064['CampaignId'];this['originatecalleridnum']=_0x465064[_0xe722('0x2a')]||'';this['originatecalleridname']=_0x465064['originatecalleridname']||'';}module[_0xe722('0x2b')]=AgentComplete;
\ No newline at end of file
+var _0x63db=['membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','lodash','moment','milliseconds','diff','state','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','starttime','responsetime','answertime','YYYY-MM-DD\x20HH:mm:ss','ringtime','holdtime','talktime'];(function(_0x493251,_0x28babc){var _0x3c5d7f=function(_0x1ef888){while(--_0x1ef888){_0x493251['push'](_0x493251['shift']());}};_0x3c5d7f(++_0x28babc);}(_0x63db,0x132));var _0xb63d=function(_0x23e7f0,_0x5bb506){_0x23e7f0=_0x23e7f0-0x0;var _0x32b7c5=_0x63db[_0x23e7f0];return _0x32b7c5;};'use strict';var util=require(_0xb63d('0x0'));var _=require(_0xb63d('0x1'));var moment=require(_0xb63d('0x2'));function getSeconds(_0x2352f1,_0x44d3e1){var _0x14373e=moment(_0x2352f1)[_0xb63d('0x3')](0x0);var _0x2b632e=moment(_0x44d3e1)[_0xb63d('0x3')](0x0);return _0x14373e[_0xb63d('0x4')](_0x2b632e,'seconds');}function AgentComplete(_0x551de1,_0x11ad66){this[_0xb63d('0x5')]=0x4;this['statedesc']=_0xb63d('0x6');this[_0xb63d('0x7')]=_0x551de1[_0xb63d('0x7')];this[_0xb63d('0x8')]=_0x551de1['type'];this[_0xb63d('0x9')]=_0x551de1[_0xb63d('0x8')]===_0xb63d('0xa')?_0xb63d('0xb'):_0x551de1[_0xb63d('0x8')];this[_0xb63d('0xc')]=_0x551de1['countbusyretry'];this['countcongestionretry']=_0x551de1['countcongestionretry'];this[_0xb63d('0xd')]=_0x551de1['countnoanswerretry'];this[_0xb63d('0xe')]=_0x551de1[_0xb63d('0xc')]+_0x551de1['countcongestionretry']+_0x551de1['countnoanswerretry']+_0x551de1['countnosuchnumberretry']+_0x551de1[_0xb63d('0xf')]+_0x551de1[_0xb63d('0x10')]+_0x551de1[_0xb63d('0x11')]+_0x551de1[_0xb63d('0x12')];this['countnosuchnumberretry']=_0x551de1['countnosuchnumberretry'];this[_0xb63d('0xf')]=_0x551de1[_0xb63d('0xf')];this[_0xb63d('0x10')]=_0x551de1[_0xb63d('0x10')];this[_0xb63d('0x11')]=_0x551de1[_0xb63d('0x11')];this['countagentrejectretry']=_0x551de1[_0xb63d('0x12')];this[_0xb63d('0x13')]=_0x11ad66[_0xb63d('0x13')];this[_0xb63d('0x14')]=_0x551de1[_0xb63d('0x15')];this[_0xb63d('0x16')]=_0x551de1['number'];this[_0xb63d('0x17')]=_0x551de1[_0xb63d('0x17')];this['responsetime']=_0x551de1[_0xb63d('0x18')];this[_0xb63d('0x19')]=_0x551de1[_0xb63d('0x19')];this['endtime']=moment()['format'](_0xb63d('0x1a'));this[_0xb63d('0x1b')]=getSeconds(_0x551de1['responsetime'],_0x551de1['starttime']);this[_0xb63d('0x1c')]=getSeconds(_0x551de1[_0xb63d('0x19')],_0x551de1[_0xb63d('0x18')]);this[_0xb63d('0x1d')]=getSeconds(this['endtime'],_0x551de1[_0xb63d('0x19')]);this[_0xb63d('0xb')]=_0x11ad66[_0xb63d('0xb')];this['membername']=_0x11ad66[_0xb63d('0x1e')];this['reason']=_0x11ad66[_0xb63d('0x1f')];this[_0xb63d('0x20')]=_0x551de1['callback'];this[_0xb63d('0x21')]=_0x551de1[_0xb63d('0x21')];this[_0xb63d('0x22')]=_0x551de1[_0xb63d('0x22')];this[_0xb63d('0x23')]=_0x551de1['recallme'];this[_0xb63d('0x24')]=_0x551de1[_0xb63d('0x24')];this['ListId']=_0x551de1[_0xb63d('0x25')];this['UserId']=_0x551de1['UserId'];this['VoiceQueueId']=_0x551de1[_0xb63d('0x26')];this['CampaignId']=_0x551de1[_0xb63d('0x27')];this[_0xb63d('0x28')]=_0x551de1[_0xb63d('0x28')]||'';this[_0xb63d('0x29')]=_0x551de1[_0xb63d('0x29')]||'';}module['exports']=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79a8=['queue','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countabandonedretry','countmachineretry','countagentrejectretry','countdropretry'];(function(_0x343a23,_0x272d3f){var _0x215aed=function(_0x912c7f){while(--_0x912c7f){_0x343a23['push'](_0x343a23['shift']());}};_0x215aed(++_0x272d3f);}(_0x79a8,0x1d0));var _0x879a=function(_0x118e49,_0x576c16){_0x118e49=_0x118e49-0x0;var _0x528dfd=_0x79a8[_0x118e49];return _0x528dfd;};'use strict';var util=require(_0x879a('0x0'));var _=require('lodash');var moment=require(_0x879a('0x1'));function getSeconds(_0x11da0e,_0x3f1655){var _0x5bb4c9=moment(_0x11da0e)[_0x879a('0x2')](0x0);var _0x49b7c0=moment(_0x3f1655)[_0x879a('0x2')](0x0);return _0x5bb4c9[_0x879a('0x3')](_0x49b7c0,_0x879a('0x4'));}function Final(_0x129757){this[_0x879a('0x5')]=_0x129757[_0x879a('0x5')];this[_0x879a('0x6')]=_0x129757[_0x879a('0x6')];this['type']=_0x129757[_0x879a('0x7')];this['campaigntype']=_0x129757[_0x879a('0x7')]===_0x879a('0x8')?'queue':_0x129757[_0x879a('0x7')];this[_0x879a('0x9')]=_0x129757[_0x879a('0x9')];this['countcongestionretry']=_0x129757[_0x879a('0xa')];this[_0x879a('0xb')]=_0x129757['countnoanswerretry'];this['countglobal']=_0x129757[_0x879a('0x9')]+_0x129757[_0x879a('0xa')]+_0x129757[_0x879a('0xb')]+_0x129757[_0x879a('0xc')]+_0x129757['countdropretry']+_0x129757[_0x879a('0xd')]+_0x129757[_0x879a('0xe')]+_0x129757[_0x879a('0xf')];this[_0x879a('0xc')]=_0x129757[_0x879a('0xc')];this[_0x879a('0x10')]=_0x129757[_0x879a('0x10')];this[_0x879a('0xd')]=_0x129757[_0x879a('0xd')];this[_0x879a('0xe')]=_0x129757['countmachineretry'];this['countagentrejectretry']=_0x129757[_0x879a('0xf')];this[_0x879a('0x11')]=_0x129757['queue'];this[_0x879a('0x12')]=_0x129757[_0x879a('0x12')];this[_0x879a('0x13')]=_0x129757[_0x879a('0x13')];this[_0x879a('0x14')]=_0x129757[_0x879a('0x14')];this[_0x879a('0x15')]=_0x129757[_0x879a('0x15')];this[_0x879a('0x16')]=_0x129757[_0x879a('0x15')];this[_0x879a('0x17')]=_0x129757[_0x879a('0x17')]||0x0;this[_0x879a('0x18')]=_0x129757[_0x879a('0x18')]||0x0;this['talktime']=_0x129757[_0x879a('0x19')]||0x0;this[_0x879a('0x1a')]=_0x129757['callback'];this[_0x879a('0x1b')]=_0x129757[_0x879a('0x1b')];this['callbackat']=_0x129757['callbackat'];this['recallme']=_0x129757[_0x879a('0x1c')];this[_0x879a('0x1d')]=_0x129757[_0x879a('0x1d')];this[_0x879a('0x1e')]=_0x129757['ListId'];this['UserId']=_0x129757[_0x879a('0x1f')];this[_0x879a('0x20')]=_0x129757[_0x879a('0x20')];this[_0x879a('0x21')]=_0x129757[_0x879a('0x21')];this[_0x879a('0x22')]=_0x129757[_0x879a('0x22')]||'';this[_0x879a('0x23')]=_0x129757[_0x879a('0x23')]||'';}module[_0x879a('0x24')]=Final;
\ No newline at end of file
+var _0xb4c7=['countmachineretry','countagentrejectretry','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry'];(function(_0x1861e4,_0x54b326){var _0x36258a=function(_0x89cf55){while(--_0x89cf55){_0x1861e4['push'](_0x1861e4['shift']());}};_0x36258a(++_0x54b326);}(_0xb4c7,0x1ea));var _0x7b4c=function(_0xa3307f,_0x44ea6a){_0xa3307f=_0xa3307f-0x0;var _0x33c8d2=_0xb4c7[_0xa3307f];return _0x33c8d2;};'use strict';var util=require(_0x7b4c('0x0'));var _=require(_0x7b4c('0x1'));var moment=require(_0x7b4c('0x2'));function getSeconds(_0xa0d9f1,_0x286a79){var _0x4bef48=moment(_0xa0d9f1)[_0x7b4c('0x3')](0x0);var _0x149d55=moment(_0x286a79)[_0x7b4c('0x3')](0x0);return _0x4bef48[_0x7b4c('0x4')](_0x149d55,_0x7b4c('0x5'));}function Final(_0x5adec9){this[_0x7b4c('0x6')]=_0x5adec9[_0x7b4c('0x6')];this[_0x7b4c('0x7')]=_0x5adec9['scheduledat'];this[_0x7b4c('0x8')]=_0x5adec9[_0x7b4c('0x8')];this['campaigntype']=_0x5adec9[_0x7b4c('0x8')]===_0x7b4c('0x9')?_0x7b4c('0xa'):_0x5adec9[_0x7b4c('0x8')];this[_0x7b4c('0xb')]=_0x5adec9[_0x7b4c('0xb')];this[_0x7b4c('0xc')]=_0x5adec9[_0x7b4c('0xc')];this[_0x7b4c('0xd')]=_0x5adec9[_0x7b4c('0xd')];this['countglobal']=_0x5adec9['countbusyretry']+_0x5adec9[_0x7b4c('0xc')]+_0x5adec9[_0x7b4c('0xd')]+_0x5adec9[_0x7b4c('0xe')]+_0x5adec9[_0x7b4c('0xf')]+_0x5adec9[_0x7b4c('0x10')]+_0x5adec9[_0x7b4c('0x11')]+_0x5adec9[_0x7b4c('0x12')];this[_0x7b4c('0xe')]=_0x5adec9[_0x7b4c('0xe')];this[_0x7b4c('0xf')]=_0x5adec9['countdropretry'];this[_0x7b4c('0x10')]=_0x5adec9[_0x7b4c('0x10')];this[_0x7b4c('0x11')]=_0x5adec9[_0x7b4c('0x11')];this[_0x7b4c('0x12')]=_0x5adec9[_0x7b4c('0x12')];this[_0x7b4c('0xa')]=_0x5adec9[_0x7b4c('0xa')];this['calleridname']=_0x5adec9[_0x7b4c('0x13')];this[_0x7b4c('0x14')]=_0x5adec9[_0x7b4c('0x14')];this[_0x7b4c('0x15')]=_0x5adec9['starttime'];this[_0x7b4c('0x16')]=_0x5adec9[_0x7b4c('0x16')];this[_0x7b4c('0x17')]=_0x5adec9[_0x7b4c('0x16')];this[_0x7b4c('0x18')]=_0x5adec9[_0x7b4c('0x18')]||0x0;this[_0x7b4c('0x19')]=_0x5adec9[_0x7b4c('0x19')]||0x0;this[_0x7b4c('0x1a')]=_0x5adec9['talktime']||0x0;this[_0x7b4c('0x1b')]=_0x5adec9[_0x7b4c('0x1b')];this[_0x7b4c('0x1c')]=_0x5adec9[_0x7b4c('0x1c')];this[_0x7b4c('0x1d')]=_0x5adec9[_0x7b4c('0x1d')];this[_0x7b4c('0x1e')]=_0x5adec9[_0x7b4c('0x1e')];this[_0x7b4c('0x1f')]=_0x5adec9[_0x7b4c('0x1f')];this['ListId']=_0x5adec9[_0x7b4c('0x20')];this[_0x7b4c('0x21')]=_0x5adec9[_0x7b4c('0x21')];this[_0x7b4c('0x22')]=_0x5adec9[_0x7b4c('0x22')];this[_0x7b4c('0x23')]=_0x5adec9[_0x7b4c('0x23')];this[_0x7b4c('0x24')]=_0x5adec9[_0x7b4c('0x24')]||'';this[_0x7b4c('0x25')]=_0x5adec9[_0x7b4c('0x25')]||'';}module[_0x7b4c('0x26')]=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8497=['YYYY-MM-DD\x20HH:mm:ss','talktime','endtime','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','exports','lodash','moment','milliseconds','diff','state','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','countabandonedretry','uniqueid','name','calleridnum','number','starttime','responsetime','format'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x8497,0xc1));var _0x7849=function(_0x6102e1,_0x7979db){_0x6102e1=_0x6102e1-0x0;var _0x564d95=_0x8497[_0x6102e1];return _0x564d95;};'use strict';var util=require('util');var _=require(_0x7849('0x0'));var moment=require(_0x7849('0x1'));function getSeconds(_0x1def84,_0x1868ad){var _0x2e7b1d=moment(_0x1def84)[_0x7849('0x2')](0x0);var _0x4384a1=moment(_0x1868ad)[_0x7849('0x2')](0x0);return _0x2e7b1d[_0x7849('0x3')](_0x4384a1,'seconds');}function Hangup(_0x168c6f,_0x21d45c){this[_0x7849('0x4')]=0x4;this['statedesc']=_0x7849('0x5');this[_0x7849('0x6')]=_0x168c6f[_0x7849('0x6')];this[_0x7849('0x7')]=_0x168c6f[_0x7849('0x7')];this[_0x7849('0x8')]=_0x168c6f['type']===_0x7849('0x9')?_0x7849('0xa'):_0x168c6f[_0x7849('0x7')];this[_0x7849('0xb')]=_0x168c6f[_0x7849('0xb')];this[_0x7849('0xc')]=_0x168c6f[_0x7849('0xc')];this[_0x7849('0xd')]=_0x168c6f[_0x7849('0xd')];this[_0x7849('0xe')]=_0x168c6f['countbusyretry']+_0x168c6f[_0x7849('0xc')]+_0x168c6f['countnoanswerretry']+_0x168c6f[_0x7849('0xf')]+_0x168c6f[_0x7849('0x10')]+_0x168c6f['countabandonedretry']+_0x168c6f[_0x7849('0x11')]+_0x168c6f[_0x7849('0x12')];this[_0x7849('0xf')]=_0x168c6f['countnosuchnumberretry'];this[_0x7849('0x10')]=_0x168c6f[_0x7849('0x10')];this[_0x7849('0x13')]=_0x168c6f[_0x7849('0x13')];this[_0x7849('0x11')]=_0x168c6f[_0x7849('0x11')];this[_0x7849('0x12')]=_0x168c6f[_0x7849('0x12')];this[_0x7849('0x14')]=_0x21d45c[_0x7849('0x14')];this['calleridname']=_0x168c6f[_0x7849('0x15')];this[_0x7849('0x16')]=_0x168c6f[_0x7849('0x17')];this[_0x7849('0x18')]=_0x168c6f['starttime'];this[_0x7849('0x19')]=_0x168c6f['responsetime'];this['endtime']=moment()[_0x7849('0x1a')](_0x7849('0x1b'));this['ringtime']=getSeconds(_0x168c6f[_0x7849('0x19')],_0x168c6f[_0x7849('0x18')]);this['holdtime']=0x0;this[_0x7849('0x1c')]=getSeconds(this[_0x7849('0x1d')],_0x168c6f[_0x7849('0x19')]);this[_0x7849('0xa')]=_0x168c6f[_0x7849('0xa')];this[_0x7849('0x1e')]=_0x7849('0x1f');this[_0x7849('0x20')]=_0x21d45c[_0x7849('0x21')];this[_0x7849('0x22')]=_0x168c6f[_0x7849('0x22')];this[_0x7849('0x23')]=_0x168c6f['callbackuniqueid'];this[_0x7849('0x24')]=_0x168c6f[_0x7849('0x24')];this[_0x7849('0x25')]=_0x168c6f[_0x7849('0x25')];this[_0x7849('0x26')]=_0x168c6f[_0x7849('0x26')];this[_0x7849('0x27')]=_0x168c6f[_0x7849('0x27')];this[_0x7849('0x28')]=_0x168c6f[_0x7849('0x28')];this['VoiceQueueId']=_0x168c6f[_0x7849('0x29')];this[_0x7849('0x2a')]=_0x168c6f[_0x7849('0x2a')];}module[_0x7849('0x2b')]=Hangup;
\ No newline at end of file
+var _0x4c4f=['countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','name','calleridnum','number','starttime','responsetime','endtime','format','YYYY-MM-DD\x20HH:mm:ss','holdtime','talktime','queue','membername','IVR','reason','cause-txt','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','exports','util','lodash','milliseconds','seconds','Answer','scheduledat','type','countbusyretry','countcongestionretry'];(function(_0x3f4bb2,_0x1fe283){var _0x113328=function(_0xdb325f){while(--_0xdb325f){_0x3f4bb2['push'](_0x3f4bb2['shift']());}};_0x113328(++_0x1fe283);}(_0x4c4f,0x75));var _0xf4c4=function(_0x40587b,_0x3e886a){_0x40587b=_0x40587b-0x0;var _0x4ad337=_0x4c4f[_0x40587b];return _0x4ad337;};'use strict';var util=require(_0xf4c4('0x0'));var _=require(_0xf4c4('0x1'));var moment=require('moment');function getSeconds(_0x360690,_0x51f51d){var _0x43815c=moment(_0x360690)[_0xf4c4('0x2')](0x0);var _0x51cd95=moment(_0x51f51d)['milliseconds'](0x0);return _0x43815c['diff'](_0x51cd95,_0xf4c4('0x3'));}function Hangup(_0x4abde9,_0x64b056){this['state']=0x4;this['statedesc']=_0xf4c4('0x4');this['scheduledat']=_0x4abde9[_0xf4c4('0x5')];this[_0xf4c4('0x6')]=_0x4abde9[_0xf4c4('0x6')];this['campaigntype']=_0x4abde9[_0xf4c4('0x6')]==='outbound'?'queue':_0x4abde9['type'];this[_0xf4c4('0x7')]=_0x4abde9[_0xf4c4('0x7')];this['countcongestionretry']=_0x4abde9[_0xf4c4('0x8')];this[_0xf4c4('0x9')]=_0x4abde9['countnoanswerretry'];this[_0xf4c4('0xa')]=_0x4abde9['countbusyretry']+_0x4abde9['countcongestionretry']+_0x4abde9['countnoanswerretry']+_0x4abde9[_0xf4c4('0xb')]+_0x4abde9[_0xf4c4('0xc')]+_0x4abde9[_0xf4c4('0xd')]+_0x4abde9[_0xf4c4('0xe')]+_0x4abde9[_0xf4c4('0xf')];this[_0xf4c4('0xb')]=_0x4abde9[_0xf4c4('0xb')];this[_0xf4c4('0xc')]=_0x4abde9[_0xf4c4('0xc')];this[_0xf4c4('0xd')]=_0x4abde9[_0xf4c4('0xd')];this['countmachineretry']=_0x4abde9['countmachineretry'];this[_0xf4c4('0xf')]=_0x4abde9['countagentrejectretry'];this['uniqueid']=_0x64b056['uniqueid'];this[_0xf4c4('0x10')]=_0x4abde9[_0xf4c4('0x11')];this[_0xf4c4('0x12')]=_0x4abde9[_0xf4c4('0x13')];this[_0xf4c4('0x14')]=_0x4abde9[_0xf4c4('0x14')];this[_0xf4c4('0x15')]=_0x4abde9[_0xf4c4('0x15')];this[_0xf4c4('0x16')]=moment()[_0xf4c4('0x17')](_0xf4c4('0x18'));this['ringtime']=getSeconds(_0x4abde9[_0xf4c4('0x15')],_0x4abde9[_0xf4c4('0x14')]);this[_0xf4c4('0x19')]=0x0;this[_0xf4c4('0x1a')]=getSeconds(this['endtime'],_0x4abde9['responsetime']);this[_0xf4c4('0x1b')]=_0x4abde9['queue'];this[_0xf4c4('0x1c')]=_0xf4c4('0x1d');this[_0xf4c4('0x1e')]=_0x64b056[_0xf4c4('0x1f')];this[_0xf4c4('0x20')]=_0x4abde9[_0xf4c4('0x20')];this[_0xf4c4('0x21')]=_0x4abde9[_0xf4c4('0x21')];this['callbackat']=_0x4abde9[_0xf4c4('0x22')];this[_0xf4c4('0x23')]=_0x4abde9[_0xf4c4('0x23')];this[_0xf4c4('0x24')]=_0x4abde9[_0xf4c4('0x24')];this[_0xf4c4('0x25')]=_0x4abde9[_0xf4c4('0x25')];this['UserId']=_0x4abde9[_0xf4c4('0x26')];this[_0xf4c4('0x27')]=_0x4abde9[_0xf4c4('0x27')];this[_0xf4c4('0x28')]=_0x4abde9[_0xf4c4('0x28')];}module[_0xf4c4('0x29')]=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc46=['talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','milliseconds','seconds','uniqueid','scheduledat','type','campaigntype','queue','countcongestionretry','countnoanswerretry','countglobal','countbusyretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','number','starttime','responsetime','ringtime','holdtime'];(function(_0x55914b,_0x5d2e20){var _0x42884e=function(_0x42341f){while(--_0x42341f){_0x55914b['push'](_0x55914b['shift']());}};_0x42884e(++_0x5d2e20);}(_0xfc46,0x108));var _0x6fc4=function(_0x5bfa44,_0x76dacc){_0x5bfa44=_0x5bfa44-0x0;var _0x43815f=_0xfc46[_0x5bfa44];return _0x43815f;};'use strict';var util=require(_0x6fc4('0x0'));var _=require(_0x6fc4('0x1'));var moment=require('moment');function getSeconds(_0x59fb73,_0x598f3c){var _0x19ebf6=moment(_0x59fb73)[_0x6fc4('0x2')](0x0);var _0x598c42=moment(_0x598f3c)[_0x6fc4('0x2')](0x0);return _0x19ebf6['diff'](_0x598c42,_0x6fc4('0x3'));}function History(_0x5d36be){this[_0x6fc4('0x4')]=_0x5d36be['uniqueid'];this['scheduledat']=_0x5d36be[_0x6fc4('0x5')]||undefined;this[_0x6fc4('0x6')]=_0x5d36be[_0x6fc4('0x6')];this[_0x6fc4('0x7')]=_0x5d36be[_0x6fc4('0x6')]==='outbound'?_0x6fc4('0x8'):_0x5d36be[_0x6fc4('0x6')];this['countbusyretry']=_0x5d36be['countbusyretry'];this[_0x6fc4('0x9')]=_0x5d36be[_0x6fc4('0x9')];this[_0x6fc4('0xa')]=_0x5d36be['countnoanswerretry'];this[_0x6fc4('0xb')]=_0x5d36be[_0x6fc4('0xc')]+_0x5d36be['countcongestionretry']+_0x5d36be[_0x6fc4('0xa')]+_0x5d36be[_0x6fc4('0xd')]+_0x5d36be[_0x6fc4('0xe')]+_0x5d36be[_0x6fc4('0xf')]+_0x5d36be[_0x6fc4('0x10')]+_0x5d36be[_0x6fc4('0x11')];this['countnosuchnumberretry']=_0x5d36be[_0x6fc4('0xd')];this['countdropretry']=_0x5d36be[_0x6fc4('0xe')];this[_0x6fc4('0xf')]=_0x5d36be[_0x6fc4('0xf')];this[_0x6fc4('0x10')]=_0x5d36be[_0x6fc4('0x10')];this[_0x6fc4('0x11')]=_0x5d36be[_0x6fc4('0x11')];this['queue']=_0x5d36be[_0x6fc4('0x8')];this[_0x6fc4('0x12')]=_0x5d36be['name'];this['calleridnum']=_0x5d36be[_0x6fc4('0x13')];this[_0x6fc4('0x14')]=_0x5d36be['starttime'];this[_0x6fc4('0x15')]=_0x5d36be[_0x6fc4('0x15')];this['endtime']=_0x5d36be[_0x6fc4('0x15')];this[_0x6fc4('0x16')]=getSeconds(_0x5d36be[_0x6fc4('0x15')],_0x5d36be[_0x6fc4('0x14')]);this[_0x6fc4('0x17')]=0x0;this[_0x6fc4('0x18')]=0x0;this[_0x6fc4('0x19')]=_0x5d36be[_0x6fc4('0x19')];this[_0x6fc4('0x1a')]=_0x5d36be[_0x6fc4('0x1a')];this['callbackat']=_0x5d36be[_0x6fc4('0x1b')];this[_0x6fc4('0x1c')]=_0x5d36be[_0x6fc4('0x1c')];this['ContactId']=_0x5d36be[_0x6fc4('0x1d')];this['ListId']=_0x5d36be['ListId'];this[_0x6fc4('0x1e')]=_0x5d36be[_0x6fc4('0x1e')];this[_0x6fc4('0x1f')]=_0x5d36be[_0x6fc4('0x1f')];this[_0x6fc4('0x20')]=_0x5d36be[_0x6fc4('0x20')];this[_0x6fc4('0x21')]=_0x5d36be['originatecalleridnum']||'';this[_0x6fc4('0x22')]=_0x5d36be['originatecalleridname']||'';}module[_0x6fc4('0x23')]=History;
\ No newline at end of file
+var _0x17d0=['starttime','responsetime','endtime','ringtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','milliseconds','diff','uniqueid','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','countdropretry','queue','calleridname','name','number'];(function(_0x5660f6,_0x5646db){var _0x4bf573=function(_0x12a85){while(--_0x12a85){_0x5660f6['push'](_0x5660f6['shift']());}};_0x4bf573(++_0x5646db);}(_0x17d0,0x7f));var _0x017d=function(_0x97c6ea,_0x4cffce){_0x97c6ea=_0x97c6ea-0x0;var _0x2d7f50=_0x17d0[_0x97c6ea];return _0x2d7f50;};'use strict';var util=require(_0x017d('0x0'));var _=require('lodash');var moment=require('moment');function getSeconds(_0x4b21a7,_0x5744f8){var _0x481664=moment(_0x4b21a7)[_0x017d('0x1')](0x0);var _0x421c1a=moment(_0x5744f8)[_0x017d('0x1')](0x0);return _0x481664[_0x017d('0x2')](_0x421c1a,'seconds');}function History(_0x3915c1){this[_0x017d('0x3')]=_0x3915c1[_0x017d('0x3')];this[_0x017d('0x4')]=_0x3915c1[_0x017d('0x4')]||undefined;this[_0x017d('0x5')]=_0x3915c1['type'];this[_0x017d('0x6')]=_0x3915c1[_0x017d('0x5')]===_0x017d('0x7')?'queue':_0x3915c1[_0x017d('0x5')];this[_0x017d('0x8')]=_0x3915c1['countbusyretry'];this['countcongestionretry']=_0x3915c1[_0x017d('0x9')];this[_0x017d('0xa')]=_0x3915c1['countnoanswerretry'];this[_0x017d('0xb')]=_0x3915c1[_0x017d('0x8')]+_0x3915c1['countcongestionretry']+_0x3915c1[_0x017d('0xa')]+_0x3915c1['countnosuchnumberretry']+_0x3915c1['countdropretry']+_0x3915c1[_0x017d('0xc')]+_0x3915c1[_0x017d('0xd')]+_0x3915c1[_0x017d('0xe')];this[_0x017d('0xf')]=_0x3915c1[_0x017d('0xf')];this['countdropretry']=_0x3915c1[_0x017d('0x10')];this[_0x017d('0xc')]=_0x3915c1[_0x017d('0xc')];this[_0x017d('0xd')]=_0x3915c1[_0x017d('0xd')];this[_0x017d('0xe')]=_0x3915c1[_0x017d('0xe')];this['queue']=_0x3915c1[_0x017d('0x11')];this[_0x017d('0x12')]=_0x3915c1[_0x017d('0x13')];this['calleridnum']=_0x3915c1[_0x017d('0x14')];this[_0x017d('0x15')]=_0x3915c1[_0x017d('0x15')];this['responsetime']=_0x3915c1[_0x017d('0x16')];this[_0x017d('0x17')]=_0x3915c1[_0x017d('0x16')];this[_0x017d('0x18')]=getSeconds(_0x3915c1[_0x017d('0x16')],_0x3915c1[_0x017d('0x15')]);this['holdtime']=0x0;this[_0x017d('0x19')]=0x0;this[_0x017d('0x1a')]=_0x3915c1[_0x017d('0x1a')];this[_0x017d('0x1b')]=_0x3915c1[_0x017d('0x1b')];this[_0x017d('0x1c')]=_0x3915c1[_0x017d('0x1c')];this[_0x017d('0x1d')]=_0x3915c1[_0x017d('0x1d')];this[_0x017d('0x1e')]=_0x3915c1['ContactId'];this['ListId']=_0x3915c1['ListId'];this[_0x017d('0x1f')]=_0x3915c1['UserId'];this[_0x017d('0x20')]=_0x3915c1[_0x017d('0x20')];this[_0x017d('0x21')]=_0x3915c1['CampaignId'];this[_0x017d('0x22')]=_0x3915c1[_0x017d('0x22')]||'';this['originatecalleridname']=_0x3915c1[_0x017d('0x23')]||'';}module[_0x017d('0x24')]=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x073e=['clearing\x20variable\x20handle\x20predictive','preview','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','stack','length','undefined','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','sendMessageOneNotActive','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','statedesc','endtime','starttime','[uniqueid]','clearZombieChannels','[actions]','sequence','isNil','Action','status','catch','queue','updateOriginated','[Dialer][checkChannel][ivr]','countReScheduled','resolve','then','[countReScheduled]\x20','checkIsBlackList','[checkIsBlackList]\x20','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','averageHandleTime','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','unlockContact','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','emptyContact','notFound','saveInDb','ContactId','ListId','UserId','VoiceQueueId','CampaignId','[emptyContact]','Success','isTrunkReachable','SIP/%s','reachable','unmonitored','uniqueid','variable','amdstatus','xcally-motion-dialer','dialAMDActive','HANGUP','outboundAnswerCallsDay','state','HangupInAMD','membername','AMD','custom:amd','amd','[syncHangupInAMD][createHistory]','[syncHangupInAMD]','Machine','countmachineretry','buildObj','[syncAgentComplete][createHistory][0]','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countagentrejectretry','dialGlobalMaxRetry','reason19\x20machine....','dialMachineMaxRetry','createStateFinal','reason\x2019\x20machine....','add','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','[rescheduleContact][Machine]','value','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','MACHINE','countglobal','stateGlobal','[syncHangupIvr]','dialQueueProject','AnswerAGI','AGI','[syncHangupIvr][createHistory]','outboundUnknownCallsDay','reason','agent','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','[syncAgentComplete]','answertime','[syncQueueCallerAbandon]\x20[Drop]','droptime','Drop','dropreason','TIMEOUT','agiafterat','dialDropMaxRetry','queueCallerAbandonCreateState','dialDropRetryFrequency','[rescheduleContact][Drop]','calleridname','calleridnum','Abandoned','CALLEREXIT','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[syncAgentComplete][createHistory][11]','channel','actionid','locked','paused','stateinterface','push','pick','idHopper','queueStatusComplete','[unlockQueueStatus][undefined]','[booked][unlockQueueStatus]','run','queueBookedRR','_rr','unlockRR','Agent:\x20','[Catch][Preview][syncQueueStatusComplete]','[booked][RR][finaly]','contactAgent-idHopper:\x20','[booked][unlock]','[unlock][syncQueueStatusComplete]','[booked][unlock2]','[unlock2][syncQueueStatusComplete]','syncCampaigns','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','checkIfTime','ifTime','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','timezones','\x20Timezone\x20unknow\x20','command','iftime\x20%s,%s','interval','content','indexOf','true','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','\x20Interval\x20is\x20overtime:\x20','progressive','power','dialPowerLevel','handlePower','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','dialGlobalInterval','dialTimezone','checkIfTimeIntervals','checkDialMethod','[syncCampaigns]','\x5cw{0,','pow','replace','random','match','actionOriginate','object','originate','voiceQueue\x20is\x20undefine','Contact','phone','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','dialQueueOptions','dialQueueTimeout','dialer','XMD-AMDINITIALSILENCE','XMD-AMDGREETING','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-CAMPAIGNID','tags','createdAt','%s%s','toUpper','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','originatecalleridnum','dialPrefix','trim','dialCutDigit','SIP/%s/%s%s','from-sip','[originateError]:\x20%s','OriginateError','[originate][error]','originate\x20action\x20Error','syncOriginateResponse','responsetime','getQueue','callProgressDetecting','[callProgressDetecting]\x20','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','dialBusyRetryFrequency','[rescheduleContact]\x20[Busy]','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialNoSuchNumberRetryFrequency','[rescheduleContact][Abandoned]','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','[callProgressDetecting]','entity\x20is\x20undefine','custom:agentnosuchnumber','nosuchnumber','checkRetriveMax','dialNoSuchNumberMaxRetry','reason\x200\x20no\x20such\x20number....','NoAnswer','custom:agentnoanswer','noanswer','[syncAgentComplete][createHistory][3]','reason\x203\x20ringing\x20no\x20answer','busy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','Congestion','congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','outboundAbandonedCallsDay','reason\x2011\x20abandoned','AgentReject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','Global','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','round','predictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','floor','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','dialPredictiveInterval','predictiveIntervalErlangCallsDroppedCalls','dialPredictiveOptimization','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','Dropped\x20calls\x20day','Max\x20Drop\x20','Drop\x20in\x20this\x20interval','started\x20in\x20predictive\x20at','recalculate\x20predictive\x20at','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','getDataPredictive','agentBusyFactor','busyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','Queue:\x20','[booked][checkContactBlack][else]','[unlockOriginate][syncQueueStatusComplete]','scheduledat','dialRecallMeTimeout','Agent','voicePause','dialRecallInQueue','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','Blacklist','[Originate][historyBlacklist]','inBlackList','limitCalls','dialOrderByScheduledAt','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','Contact.phone','loggerHandler','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','ACTIVE','[getContactDialer2]','tryOriginatePredictive','[handlePredictive][limitChannel]','not_inuse','[actionOriginatePredictive]\x20','abandonmentRate','--------\x20Drop\x20Rate\x20--------','M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Error','m\x20=\x20','[abandonmentRate]','Ts\x20=\x20','p\x20=\x20','----\x20Agent\x20Busy\x20Factor\x20----','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','Umin\x20=\x20','exports','util','lodash','bluebird','uuid','../preview/util/util','../../../config/environment/','../../../config/logger','predictive','predictiveCalls','syncQueueSummary','redis','defaults','localhost','../rpc/cmHopper','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./action','./final','./queueCallerAbandon','env','127.0.0.1','rrmemory','roundrobin','prototype','enqueue','tail','finally','voiceQueues','campaigns','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','optionPredictive','startPredictive','startProgressive','ivrOriginated','queueBooked','agentconnect','syncAgentConnect','bind','queuecallerabandon','syncQueueCallerAbandon','hangup','syncHangup','newexten','syncNewExten','syncVarSet','queuemember','syncQueueMember','syncQueueStatusComplete','loopCampaigns','loopClearZombieChannels','isUndefined','AGENTS_NOT_LOGGED','name','message','NOT_ACTIVE','Interval','\x20INTERVAL_IS_NULL','isEmpty','INTERVAL_IS_NULL','[ifTime][Action]','stringify','milliseconds','diff','seconds','emit','type','outbound','strategy','answered','available','loggedIn','pTalking','sumBillable','sumDuration','talking','unmanaged','abandoned','waiting','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangAbandonmentRate','erlangBusyFactor','Trunk','active','callerid','md5','voice:queue:%s','voice_queue:save','ivr','format','campaign:ivr:%s','info','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','predictiveIntervalAnsweredCalls','Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','History\x20information\x20are\x20empty','---------\x20ErlangB\x20---------','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','erlangCalls','One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','erlangCallToSecond','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','merge','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive'];(function(_0xce1a87,_0x372c44){var _0x26669d=function(_0x215038){while(--_0x215038){_0xce1a87['push'](_0xce1a87['shift']());}};_0x26669d(++_0x372c44);}(_0x073e,0x181));var _0xe073=function(_0x430a6d,_0x13591a){_0x430a6d=_0x430a6d-0x0;var _0x529444=_0x073e[_0x430a6d];return _0x529444;};'use strict';var util=require(_0xe073('0x0'));var _=require(_0xe073('0x1'));var BPromise=require(_0xe073('0x2'));var uuid=require(_0xe073('0x3'));var moment=require('moment');var rr=require('rr');var md5=require('md5');var Redis=require('ioredis');var ut=require(_0xe073('0x4'));var config=require(_0xe073('0x5'));var logger=require(_0xe073('0x6'))('dialer');var loggerBooked=require('../../../config/logger')('booked');var loggerPredictive=require(_0xe073('0x6'))(_0xe073('0x7'));var loggerPredictiveCalls=require(_0xe073('0x6'))(_0xe073('0x8'));var loggerSyncQueueSummary=require(_0xe073('0x6'))(_0xe073('0x9'));var ami=require('../ami');config[_0xe073('0xa')]=_[_0xe073('0xb')](config[_0xe073('0xa')],{'host':_0xe073('0xc'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xe073('0xa')]));var cmHopper=require(_0xe073('0xd'));var cmHopperHistory=require(_0xe073('0xe'));var cmHopperBlack=require(_0xe073('0xf'));var voiceQueueRt=require(_0xe073('0x10'));var Action=require(_0xe073('0x11'));var History=require('./history');var Final=require(_0xe073('0x12'));var AgentComplete=require('./agentComplete');var QueueCallerAbandon=require(_0xe073('0x13'));var Hangup=require('./hangup');var ipAgi=process[_0xe073('0x14')]['XCALLY_IP_AGI']||_0xe073('0x15');var strategy={'rrmemory':_0xe073('0x16'),'roundrobin':_0xe073('0x17')};var Sequence=function(){};Sequence[_0xe073('0x18')][_0xe073('0x19')]=function(_0x2ff692){this[_0xe073('0x1a')]=this[_0xe073('0x1a')]?this[_0xe073('0x1a')][_0xe073('0x1b')](_0x2ff692):_0x2ff692();};function Dialer(_0x38f9e5,_0x512fe8){this['sequence']=new Sequence();this['preview']=_0x512fe8;this[_0xe073('0x1c')]=_0x38f9e5[_0xe073('0x1c')];this[_0xe073('0x1d')]=_0x38f9e5[_0xe073('0x1d')];this['agents']=_0x38f9e5[_0xe073('0x1e')];this[_0xe073('0x1f')]=_0x38f9e5[_0xe073('0x1f')];this['maxNumberOriginate']=config[_0xe073('0x20')]||0x2;this[_0xe073('0x21')]={};this[_0xe073('0x22')]={};this[_0xe073('0x23')]={};this[_0xe073('0x24')]={};this[_0xe073('0x25')]={};this[_0xe073('0x26')]={};this[_0xe073('0x27')]={};this[_0xe073('0x28')]={};this[_0xe073('0x29')]={};this['queueBookedRR']={};ami['on'](_0xe073('0x2a'),this[_0xe073('0x2b')][_0xe073('0x2c')](this));ami['on'](_0xe073('0x2d'),this[_0xe073('0x2e')][_0xe073('0x2c')](this));ami['on']('originateresponse',this['syncOriginateResponse'][_0xe073('0x2c')](this));ami['on']('agentcomplete',this['syncAgentComplete']['bind'](this));ami['on']('custom:queuesummary',this['syncQueueSummary']['bind'](this));ami['on'](_0xe073('0x2f'),this[_0xe073('0x30')]['bind'](this));ami['on'](_0xe073('0x31'),this[_0xe073('0x32')][_0xe073('0x2c')](this));ami['on']('varset',this[_0xe073('0x33')]['bind'](this));ami['on'](_0xe073('0x34'),this[_0xe073('0x35')]['bind'](this));ami['on']('queuestatuscomplete',this[_0xe073('0x36')][_0xe073('0x2c')](this));this[_0xe073('0x37')]();this[_0xe073('0x38')]();}function isNotNull(_0x20fabe){return _0x20fabe!==null&&!_[_0xe073('0x39')](_0x20fabe);}function checkIsLoggedIn(_0x4f60dd,_0x2a206a){return function(){if(_0x2a206a<=0x0){_0x4f60dd['message']=_0xe073('0x3a');throw _0x4f60dd[_0xe073('0x3b')]+'\x20AGENTS\x20NOT\x20LOGGED';}};}function isActive(_0x5c4300){return _0x5c4300;}function checkIsActive(_0x417dbb,_0x5afd92){return function(){if(!isActive(_0x5afd92)){_0x417dbb[_0xe073('0x3c')]=_0xe073('0x3d');throw _0x417dbb[_0xe073('0x3b')]+'\x20NOT\x20Active';}};}function checkInterval(_0x4b1e0a){return function(){if(!isNotNull(_0x4b1e0a[_0xe073('0x3e')])){_0x4b1e0a[_0xe073('0x3c')]='INTERVAL_IS_NULL';throw _0x4b1e0a[_0xe073('0x3b')]+_0xe073('0x3f');}if(!isNotNull(_0x4b1e0a[_0xe073('0x3e')]['Intervals'])){_0x4b1e0a[_0xe073('0x3c')]='INTERVAL_IS_NULL';throw _0x4b1e0a['name']+_0xe073('0x3f');}if(!isNotNull(_[_0xe073('0x40')](_0x4b1e0a[_0xe073('0x3e')]['Intervals']))){_0x4b1e0a[_0xe073('0x3c')]=_0xe073('0x41');throw _0x4b1e0a[_0xe073('0x3b')]+'\x20INTERVAL_IS_NULL';}};}function msgResponse(_0x341bab,_0x40cc1c,_0x46a384){return{'action':_0x341bab,'response':_0x40cc1c,'message':_0x46a384,'stack':_0x46a384};}function myreject(_0x156d68){return function(_0x441f97){return _0x156d68(msgResponse(_0xe073('0x42'),'Error',JSON[_0xe073('0x43')](_0x441f97)));};}function getSeconds(_0xda04b8,_0xcb0397){var _0x539099=moment(_0xda04b8)[_0xe073('0x44')](0x0);var _0x16a4ba=moment(_0xcb0397)[_0xe073('0x44')](0x0);return _0x539099[_0xe073('0x45')](_0x16a4ba,_0xe073('0x46'));}function emit(_0x4de55f,_0x2b7cc3,_0x5abc09){io['to'](_0x4de55f)[_0xe073('0x47')](_0x2b7cc3,_0x5abc09);}function emitVoiceQueueSummary(_0x22d278){if(_0x22d278[_0xe073('0x48')]===_0xe073('0x49')){var _0x40f991={'id':_0x22d278['id'],'name':_0x22d278[_0xe073('0x3b')],'strategy':_0x22d278[_0xe073('0x4a')],'answered':_0x22d278[_0xe073('0x4b')],'available':_0x22d278[_0xe073('0x4c')],'loggedIn':_0x22d278[_0xe073('0x4d')],'pTalking':_0x22d278[_0xe073('0x4e')],'sumBillable':_0x22d278[_0xe073('0x4f')],'sumDuration':_0x22d278[_0xe073('0x50')],'sumHoldTime':_0x22d278['sumHoldTime']||0x0,'talking':_0x22d278[_0xe073('0x51')],'total':_0x22d278['total'],'type':_0x22d278[_0xe073('0x48')],'unmanaged':_0x22d278[_0xe073('0x52')],'abandoned':_0x22d278[_0xe073('0x53')],'waiting':_0x22d278[_0xe073('0x54')],'loggedInDb':_0x22d278['loggedInDb'],'dialActive':_0x22d278[_0xe073('0x55')],'dialMethod':_0x22d278[_0xe073('0x56')],'dialOriginateCallerIdName':_0x22d278[_0xe073('0x57')],'dialOriginateCallerIdNumber':_0x22d278[_0xe073('0x58')],'dialOriginateTimeout':_0x22d278[_0xe073('0x59')],'dialPrefix':_0x22d278['dialPrefix'],'outboundAnswerAgiCallsDay':_0x22d278[_0xe073('0x5a')],'outboundAnswerCallsDay':_0x22d278['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x22d278[_0xe073('0x5b')],'outboundBusyCallsDay':_0x22d278[_0xe073('0x5c')],'outboundCongestionCallsDay':_0x22d278[_0xe073('0x5d')],'outboundDropCallsDayACS':_0x22d278[_0xe073('0x5e')],'outboundDropCallsDayCallersExit':_0x22d278[_0xe073('0x5f')],'outboundDropCallsDayTimeout':_0x22d278[_0xe073('0x60')],'outboundNoAnswerCallsDay':_0x22d278[_0xe073('0x61')],'outboundNoSuchCallsDay':_0x22d278[_0xe073('0x62')],'outboundOriginateFailureCallsDay':_0x22d278[_0xe073('0x63')],'outboundReCallsDay':_0x22d278[_0xe073('0x64')],'outboundRejectCallsDay':_0x22d278[_0xe073('0x65')],'outboundUnknownCallsDay':_0x22d278['outboundUnknownCallsDay'],'predictiveIntervalAnsweredCalls':_0x22d278['predictiveIntervalAnsweredCalls'],'predictiveIntervalAvgHoldtime':_0x22d278[_0xe073('0x66')],'predictiveIntervalAvgTalktime':_0x22d278[_0xe073('0x67')],'predictiveIntervalDroppedCallsCallersExit':_0x22d278[_0xe073('0x68')],'predictiveIntervalDroppedCallsTimeout':_0x22d278[_0xe073('0x69')],'predictiveIntervalErlangCalls':_0x22d278[_0xe073('0x6a')],'predictiveIntervalErlangCallsDroppedCalls':_0x22d278['predictiveIntervalErlangCallsDroppedCalls'],'predictiveIntervalHitRate':_0x22d278[_0xe073('0x6b')],'predictiveIntervalMultiplicativeFactor':_0x22d278[_0xe073('0x6c')],'predictiveIntervalPauses':_0x22d278[_0xe073('0x6d')],'predictiveIntervalAvailable':_0x22d278[_0xe073('0x6e')],'predictiveIntervalTotalCalls':_0x22d278[_0xe073('0x6f')],'message':_0x22d278['message'],'originated':_0x22d278[_0xe073('0x70')],'erlangCalls':_0x22d278['erlangCalls'],'erlangCallToSecond':_0x22d278['erlangCallToSecond'],'erlangAbandonmentRate':_0x22d278[_0xe073('0x71')],'erlangBusyFactor':_0x22d278[_0xe073('0x72')],'startPredictive':_0x22d278['startPredictive'],'startProgressive':_0x22d278['startProgressive']};if(_0x22d278[_0xe073('0x73')]){_0x40f991[_0xe073('0x73')]={'id':_0x22d278[_0xe073('0x73')]['id'],'name':_0x22d278[_0xe073('0x73')][_0xe073('0x3b')],'active':_0x22d278[_0xe073('0x73')][_0xe073('0x74')],'callerid':_0x22d278['Trunk'][_0xe073('0x75')]};}if(_0x22d278['Interval']){_0x40f991[_0xe073('0x3e')]={'id':_0x22d278[_0xe073('0x3e')]['id'],'name':_0x22d278[_0xe073('0x3e')]['name']};}var _0x4d5bcd=md5(JSON[_0xe073('0x43')](_0x40f991));if(_0x22d278[_0xe073('0x76')]!==_0x4d5bcd){_0x22d278[_0xe073('0x76')]=_0x4d5bcd;emit(util['format'](_0xe073('0x77'),_0x40f991[_0xe073('0x3b')]),_0xe073('0x78'),_0x40f991);}}}function emitCampaignSummary(_0x3a4fc1){if(_0x3a4fc1[_0xe073('0x48')]===_0xe073('0x79')){emit(util[_0xe073('0x7a')](_0xe073('0x7b'),_0x3a4fc1[_0xe073('0x3b')]),'campaign:save',_0x3a4fc1);}}function checkGetDataPredictive(_0x90cc0){if(isNotNull(_0x90cc0)&&!_['isEmpty'](_0x90cc0)){loggerPredictive[_0xe073('0x7c')]('-----\x20Stats\x20Predictive\x20---');loggerPredictive[_0xe073('0x7c')](_0xe073('0x7d'),_0x90cc0[_0xe073('0x6f')]);loggerPredictive[_0xe073('0x7c')]('Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x90cc0[_0xe073('0x7e')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x7f'),_0x90cc0['predictiveIntervalDroppedCallsTimeout']);loggerPredictive['info'](_0xe073('0x80'),_0x90cc0[_0xe073('0x68')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x81'),_0x90cc0[_0xe073('0x66')]);loggerPredictive['info'](_0xe073('0x82'),_0x90cc0[_0xe073('0x67')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x83'));if(_0x90cc0[_0xe073('0x6f')]>0x0){if(!_[_0xe073('0x39')](_0x90cc0[_0xe073('0x67')])&&_0x90cc0[_0xe073('0x67')]>0x0){return!![];}loggerPredictive[_0xe073('0x7c')](_0xe073('0x84'));if(!_['isUndefined'](_0x90cc0[_0xe073('0x66')])&&_0x90cc0['predictiveIntervalAvgHoldtime']>0x0){return!![];}loggerPredictive['info'](_0xe073('0x85'));}else{loggerPredictive[_0xe073('0x7c')](_0xe073('0x86'));}}else{loggerPredictive['info'](_0xe073('0x87'));}return![];}function mergeDataErlangB(_0x37e892){return function(_0x19a1d0){loggerPredictive['info'](_0xe073('0x88'));loggerPredictive['info'](_0xe073('0x89'),_0x19a1d0[_0xe073('0x8a')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x8b'),_0x19a1d0[_0xe073('0x8c')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x8d'),_0x19a1d0[_0xe073('0x71')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x8e'),_0x19a1d0[_0xe073('0x72')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x8d'),_0x19a1d0[_0xe073('0x71')]);loggerPredictive[_0xe073('0x7c')](_0xe073('0x83'));_[_0xe073('0x8f')](_0x37e892,_0x19a1d0);};}function getDiff(_0x21ac98){var _0x275631=moment()[_0xe073('0x44')](0x0);var _0x4bf270=moment(_0x21ac98)[_0xe073('0x44')](0x0);return _0x275631[_0xe073('0x45')](_0x4bf270,_0xe073('0x46'));}function ifInterval(_0x423f50,_0xed38f1){if(_['isUndefined'](_0xed38f1)){return![];}return getDiff(_0xed38f1)<_0x423f50*0x3c;}function freeVariablesPredictive(_0x2fde71){if(isNotNull(_0x2fde71)){if(!_[_0xe073('0x39')](_0x2fde71[_0xe073('0x27')])){_0x2fde71[_0xe073('0x27')]=undefined;loggerPredictive[_0xe073('0x7c')](_0x2fde71['name'],_0xe073('0x90'));}if(!_['isUndefined'](_0x2fde71[_0xe073('0x26')])){_0x2fde71[_0xe073('0x26')]=undefined;loggerPredictive[_0xe073('0x7c')](_0x2fde71[_0xe073('0x3b')],_0xe073('0x91'));}if(!_[_0xe073('0x39')](_0x2fde71['handlePredictive'])){clearInterval(_0x2fde71[_0xe073('0x92')]);_0x2fde71['handlePredictive']=undefined;loggerPredictive[_0xe073('0x7c')](_0x2fde71['name'],_0xe073('0x93'));}}}function erlangb(_0x10f6eb,_0x28a343){if(_0x28a343===0x0){return 0x0;}var _0xae8bac=0x1;for(var _0xa1f768=0x1;_0xa1f768<=_0x28a343;_0xa1f768+=0x1){_0xae8bac=0x1+_0xae8bac*_0xa1f768/_0x10f6eb;}return 0x1/_0xae8bac;}function isVoiceQueueOutbound(_0x17db84){return _0x17db84===_0xe073('0x49');}function isNotPreview(_0x4030a2){return _0x4030a2!==_0xe073('0x94');}function isCampaignIvr(_0x3264fb){return _0x3264fb===_0xe073('0x79');}function getCallerId(_0x5e1579,_0x4e3453,_0x3b7cae){if(!_[_0xe073('0x39')](_0x3b7cae)&&typeof _0x3b7cae==='string'&&!_['isEmpty'](_0x3b7cae)){if(!_[_0xe073('0x39')](_0x4e3453)&&typeof _0x4e3453===_0xe073('0x95')&&!_[_0xe073('0x40')](_0x4e3453)){return util[_0xe073('0x7a')](_0xe073('0x96'),_0x4e3453,_0x3b7cae);}return util['format'](_0xe073('0x96'),_0x3b7cae,_0x3b7cae);}if(!_[_0xe073('0x39')](_0x5e1579)&&typeof _0x5e1579===_0xe073('0x95')&&!_[_0xe073('0x40')](_0x5e1579)){return _0x5e1579;}return _0xe073('0x97');}function loggerCatchQueueSummary(_0x2ebe37,_0x5642d3){return function(_0x42b71f){freeVariablesPredictive(_0x5642d3);emitVoiceQueueSummary(_0x5642d3);emitCampaignSummary(_0x5642d3);loggerSyncQueueSummary[_0xe073('0x98')](_0x2ebe37,util[_0xe073('0x99')](_0x42b71f,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x512cd5,_0x19a3e7){return function(_0x509fd5){loggerPredictive['error'](_0x19a3e7[_0xe073('0x3b')],_0x512cd5);loggerPredictive[_0xe073('0x98')](_0x509fd5[_0xe073('0x9a')]);freeVariablesPredictive(_0x19a3e7);};}function loggerCatch(_0x27974a){return function(_0x22f21b){logger[_0xe073('0x98')](_0x27974a,util[_0xe073('0x99')](_0x22f21b,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x148dd4){return _0x148dd4&&!_[_0xe073('0x39')](_0x148dd4)&&_0x148dd4[_0xe073('0x9b')]>0x0;}function decremetOriginate(_0x5d4f1a){if(!_[_0xe073('0x39')](_0x5d4f1a)&&_0x5d4f1a!==null){if(typeof _0x5d4f1a[_0xe073('0x70')]!==_0xe073('0x9c')){if(_0x5d4f1a[_0xe073('0x70')]>0x0){_0x5d4f1a[_0xe073('0x70')]-=0x1;}else{logger['error']('[decremetOriginate]\x20object\x20originated\x20is\x20negative');}}}else{logger[_0xe073('0x98')](_0xe073('0x9d'));}}function checkContactLowerLimitOriginate(_0x2e3ace,_0x455ec9,_0x5230eb){if(_0x455ec9>_0x5230eb){for(var _0x5225e2=0x0;_0x5225e2<_0x455ec9-_0x5230eb;_0x5225e2+=0x1){decremetOriginate(_0x2e3ace);}}}function loggerGetContactDialer(_0x40a351,_0x164a8f,_0x1e7f5e){return function(_0x2013cc){checkContactLowerLimitOriginate(_0x164a8f,_0x1e7f5e,0x0);logger['error'](_0x40a351,util['inspect'](_0x2013cc,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x4e7421){return function(_0x41d356){if(isNotNull(_0x41d356)&&isNotNull(_0x41d356[0x0])){if(_0x41d356[0x0][_0xe073('0x9e')]>0x0){_0x4e7421[_0xe073('0x3c')]=_0xe073('0x9f');logger[_0xe073('0x7c')](_0xe073('0xa0')+_0x4e7421[_0xe073('0x3b')],_0x41d356[0x0]['contactsRescheduled'],'contacts');}else{_0x4e7421[_0xe073('0x3c')]=_0xe073('0xa1');logger[_0xe073('0x7c')](_0xe073('0xa2')+_0x4e7421[_0xe073('0x3b')]);}}};}function notSendMessagesQueue(_0x562041){if(_0x562041[_0xe073('0xa3')]){freeVariablesPredictive(_0x562041);if(_0x562041['originated']===0x0&&_0x562041['talking']===0x0&&_0x562041[_0xe073('0x54')]===0x0&&(_0x562041[_0xe073('0x4e')]||0x0)===0x0){_0x562041[_0xe073('0xa3')]=![];_0x562041[_0xe073('0x4c')]=0x0;_0x562041['message']='NOT_ACTIVE';loggerSyncQueueSummary[_0xe073('0x98')](_0xe073('0xa4'),_0x562041['name'],_0xe073('0xa5'));}else{_0x562041[_0xe073('0x3c')]=_0xe073('0xa6');loggerSyncQueueSummary[_0xe073('0x98')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x562041[_0xe073('0x3b')],_0xe073('0xa7'));}emitVoiceQueueSummary(_0x562041);}}function notSendMessagesCampaign(_0x526b2b){if(_0x526b2b[_0xe073('0xa3')]){if(_0x526b2b[_0xe073('0x70')]===0x0){_0x526b2b['sendMessageOneNotActive']=![];_0x526b2b[_0xe073('0x3c')]=_0xe073('0x3d');loggerSyncQueueSummary[_0xe073('0x98')](_0xe073('0xa8'),_0x526b2b[_0xe073('0x3b')],'is\x20not\x20active');}else{_0x526b2b[_0xe073('0x3c')]=_0xe073('0xa6');loggerSyncQueueSummary['error'](_0xe073('0xa8'),_0x526b2b[_0xe073('0x3b')],_0xe073('0xa7'));}emitCampaignSummary(_0x526b2b);}}function createObjHistory(_0x4102c1,_0x20ac68,_0x1ace13,_0x210e01,_0x16040b){_0x4102c1[_0xe073('0x3c')]=_0x1ace13;var _0x4bc169=new Action(_0x4102c1,_0x20ac68);var _0x21aaea=new History(_0x4bc169);_0x21aaea['state']=_0x210e01;_0x21aaea[_0xe073('0xa9')]=_0x16040b;_0x21aaea[_0xe073('0xaa')]=_0x4bc169[_0xe073('0xab')];return _0x21aaea;}Dialer['prototype'][_0xe073('0x38')]=function(){var _0x330184=this;setInterval(function(){_0x330184['clearZombieChannels'](_0x330184[_0xe073('0x24')],_0xe073('0xac'));_0x330184[_0xe073('0xad')](_0x330184[_0xe073('0x22')],_0xe073('0xae'));},0x32c8);};Dialer[_0xe073('0x18')][_0xe073('0xad')]=function(_0x55360a,_0x3aadd3){var _0x57eaeb=this;for(var _0x1f6a02 in _0x55360a){if(typeof _0x55360a[_0x1f6a02]!==_0xe073('0x9c')){this[_0xe073('0xaf')][_0xe073('0x19')](function(){if(!_[_0xe073('0xb0')](_0x55360a[_0x1f6a02])){return ami[_0xe073('0xb1')]({'action':_0xe073('0xb2'),'channel':_0x55360a[_0x1f6a02]['channel']})[_0xe073('0xb3')](function(_0x4a36a3){if(_0x4a36a3[_0xe073('0x3c')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x55360a[_0x1f6a02]&&_0x55360a[_0x1f6a02][_0xe073('0x48')]!==_0xe073('0x79')){_0x57eaeb['updateOriginated'](_0x57eaeb[_0xe073('0x1c')][_0x55360a[_0x1f6a02][_0xe073('0xb4')]]);logger[_0xe073('0x98')]('[Dialer][checkChannel]',_0x3aadd3,_0x1f6a02,_0x55360a[_0x1f6a02][_0xe073('0xb4')]);delete _0x55360a[_0x1f6a02];}if(_0x55360a[_0x1f6a02]&&_0x55360a[_0x1f6a02][_0xe073('0x48')]===_0xe073('0x79')){_0x57eaeb[_0xe073('0xb5')](_0x57eaeb[_0xe073('0x1d')][_0x55360a[_0x1f6a02][_0xe073('0xb4')]]);logger[_0xe073('0x98')](_0xe073('0xb6'),_0x3aadd3,_0x1f6a02,_0x55360a[_0x1f6a02][_0xe073('0xb4')]);delete _0x55360a[_0x1f6a02];}},0x2328);}});}});}}};Dialer[_0xe073('0x18')][_0xe073('0xb7')]=function(_0x11bc08){return BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](cmHopper[_0xe073('0xb7')](_0x11bc08))[_0xe073('0xb3')](loggerCatch(_0xe073('0xba')));};Dialer['prototype'][_0xe073('0xbb')]=function(_0x16144e){return BPromise[_0xe073('0xb8')]()['then'](cmHopperBlack[_0xe073('0xbb')](_0x16144e))[_0xe073('0xb3')](loggerCatch(_0xe073('0xbc')));};Dialer[_0xe073('0x18')][_0xe073('0xbd')]=function(_0x3c1d9e){return BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](cmHopperBlack[_0xe073('0xbd')](_0x3c1d9e))[_0xe073('0xb3')](loggerCatch(_0xe073('0xbe')));};Dialer['prototype'][_0xe073('0xbf')]=function(_0x31acf5){return BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](cmHopperHistory[_0xe073('0xc0')](_0x31acf5))[_0xe073('0xb3')](loggerCatch(_0xe073('0xc1')));};Dialer['prototype'][_0xe073('0xc2')]=function(_0x292b0f){return BPromise['resolve']()[_0xe073('0xb9')](cmHopper[_0xe073('0xc2')](_0x292b0f))[_0xe073('0xb3')](loggerCatch('[rescheduleContact]\x20'));};Dialer[_0xe073('0x18')]['unlockContact']=function(_0x1e649a,_0x197056,_0x182298){return BPromise[_0xe073('0xb8')]()['then'](cmHopper[_0xe073('0xc3')](_0x1e649a,_0x197056,_0x182298))[_0xe073('0xb3')](loggerCatch('[unlockContact]\x20'));};Dialer[_0xe073('0x18')][_0xe073('0xc4')]=function(_0xb08d6d,_0x237a95,_0xefac10,_0x213df1,_0x505715){return BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](cmHopper['getContactDialer'](_0xb08d6d,_0x237a95,_0xefac10,_0x213df1))[_0xe073('0xb3')](function(_0x1467ea){_0x505715[_0xe073('0xc5')]-=_0xefac10;_0x505715[_0xe073('0xc5')]=_0x505715[_0xe073('0xc5')]>0x0?_0x505715[_0xe073('0xc5')]:0x0;loggerCatch(_0xe073('0xc6'))(_0x1467ea);});};Dialer[_0xe073('0x18')][_0xe073('0xc7')]=function(_0x40d9bf,_0x3b631a,_0xf3f939,_0x121d7c){return BPromise['resolve']()[_0xe073('0xb9')](cmHopper[_0xe073('0xc7')](_0x40d9bf,_0x3b631a,_0xf3f939))[_0xe073('0xb3')](function(_0x5eee8b){_0x121d7c[_0xe073('0xc5')]-=_0x3b631a;_0x121d7c['temp']=_0x121d7c[_0xe073('0xc5')]>0x0?_0x121d7c[_0xe073('0xc5')]:0x0;loggerCatch(_0xe073('0xc8'))(_0x5eee8b);});};Dialer['prototype'][_0xe073('0xc9')]=function(_0x237938){return BPromise['resolve']()[_0xe073('0xb9')](voiceQueueRt[_0xe073('0xc9')](_0x237938))[_0xe073('0xb3')](loggerCatch(_0xe073('0xca')));};Dialer['prototype'][_0xe073('0xcb')]=function(_0x1df57f){return BPromise['resolve']()[_0xe073('0xb9')](cmHopper[_0xe073('0xcb')](_0x1df57f))[_0xe073('0xb3')](loggerCatch(_0xe073('0xcc')));};Dialer['prototype'][_0xe073('0xcd')]=function(_0x253122){return BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](cmHopperHistory[_0xe073('0xcd')](_0x253122))[_0xe073('0xb3')](loggerCatch(_0xe073('0xce')));};Dialer[_0xe073('0x18')][_0xe073('0xb5')]=function(_0x24ac7b){if(!_[_0xe073('0x39')](_0x24ac7b)&&_0x24ac7b!==null){if(typeof _0x24ac7b['originated']!==_0xe073('0x9c')){if(_0x24ac7b['originated']>0x0){_0x24ac7b[_0xe073('0x70')]-=0x1;}else{logger['error'](_0xe073('0xcf'));}}}else{logger['error'](_0xe073('0xd0'));}};Dialer[_0xe073('0x18')]['loggerHandler']=function(_0x4d356b,_0x2d40f0){var _0x5bf511=this;return function(_0x3ad3e1){_0x5bf511[_0xe073('0xb5')](_0x2d40f0);logger[_0xe073('0x98')](_0x4d356b,util[_0xe073('0x99')](_0x3ad3e1,{'showHidden':![],'depth':null}));};};Dialer['prototype'][_0xe073('0xd1')]=function(_0x45ed95,_0x3e28de,_0x588efc){var _0x25c0d3={'state':0x19,'statedesc':_0xe073('0xd2')};this[_0xe073('0xb5')](_0x3e28de);this[_0xe073('0xd3')](_[_0xe073('0x8f')](_0x25c0d3,_['pick'](_0x588efc,[_0xe073('0xd4'),_0xe073('0xd5'),_0xe073('0xd6'),_0xe073('0xd7'),_0xe073('0xd8')])),'[emptyContact][createHistory]',_0xe073('0xd9'));logger[_0xe073('0x98')](_0x45ed95);};Dialer['prototype']['isSuccess']=function(_0x4821fd){return _0x4821fd===_0xe073('0xda');};Dialer[_0xe073('0x18')][_0xe073('0xdb')]=function(_0x1f593f){return!_[_0xe073('0x39')](_0x1f593f)&&_0x1f593f&&!_[_0xe073('0x39')](_0x1f593f[_0xe073('0x3b')])&&!_[_0xe073('0x39')](_0x1f593f[_0xe073('0x74')])&&_0x1f593f[_0xe073('0x74')]&&(this[_0xe073('0x1f')][util[_0xe073('0x7a')](_0xe073('0xdc'),_0x1f593f[_0xe073('0x3b')])]['status']===_0xe073('0xdd')||this[_0xe073('0x1f')][util['format']('SIP/%s',_0x1f593f[_0xe073('0x3b')])][_0xe073('0xb2')]===_0xe073('0xde'));};Dialer['prototype'][_0xe073('0xd3')]=function(_0x22c30d,_0x57e207,_0x40b5bb){this[_0xe073('0xcd')](_0x22c30d)[_0xe073('0xb3')](loggerCatch(_0x57e207));this[_0xe073('0xcb')](_0x22c30d)['catch'](loggerCatch(_0x40b5bb));};Dialer[_0xe073('0x18')][_0xe073('0x33')]=function(_0x14b643){var _0x4eee21=this['uniqueId'][_0x14b643[_0xe073('0xdf')]];var _0x211076;if(!_[_0xe073('0xb0')](_0x14b643)&&!_['isNil'](_0x14b643[_0xe073('0xe0')])&&!_[_0xe073('0xb0')](_0x14b643[_0xe073('0xe0')][_0xe073('0xe1')])&&_0x14b643['exten']===_0xe073('0xe2')&&_0x4eee21){if(_0x4eee21[_0xe073('0x48')]!==_0xe073('0x79')&&this['voiceQueues'][_0x4eee21[_0xe073('0xb4')]][_0xe073('0xe3')]&&_0x14b643['value']===_0xe073('0xe4')){delete this[_0xe073('0x24')][_0x14b643[_0xe073('0xdf')]];this['updateOriginated'](this[_0xe073('0x1c')][_0x4eee21[_0xe073('0xb4')]]);this['voiceQueues'][_0x4eee21['queue']][_0xe073('0xe5')]+=0x1;this[_0xe073('0x1c')][_0x4eee21[_0xe073('0xb4')]][_0xe073('0x5a')]+=0x1;_0x211076=new Hangup(_0x4eee21,_0x14b643);_0x211076[_0xe073('0xe6')]=0x12;_0x211076[_0xe073('0xa9')]=_0xe073('0xe7');_0x211076[_0xe073('0xe8')]=_0xe073('0xe9');ami[_0xe073('0x47')](_0xe073('0xea'),ut['buildObj'](_0x211076,_0xe073('0xeb')));this['saveInDb'](_0x211076,_0xe073('0xec'),_0xe073('0xed'));}if(_0x4eee21[_0xe073('0x48')]!=='ivr'&&this[_0xe073('0x1c')][_0x4eee21[_0xe073('0xb4')]]['dialAMDActive']&&_0x14b643['value']==='MACHINE'){var _0x46cbfd=this;return new BPromise(function(_0xdb757b,_0x309231){delete _0x46cbfd[_0xe073('0x24')][_0x14b643[_0xe073('0xdf')]];_0x46cbfd[_0xe073('0xb5')](_0x46cbfd[_0xe073('0x1c')][_0x4eee21[_0xe073('0xb4')]]);_0x46cbfd['voiceQueues'][_0x4eee21['queue']][_0xe073('0xe5')]+=0x1;_0x46cbfd[_0xe073('0x1c')][_0x4eee21[_0xe073('0xb4')]][_0xe073('0x5a')]+=0x1;var _0x51839e=_0x46cbfd[_0xe073('0x1c')][_0x4eee21[_0xe073('0xb4')]];var _0x4c7880=new Hangup(_0x4eee21,_0x14b643);_0x4c7880[_0xe073('0xe6')]=0x13;_0x4c7880[_0xe073('0xa9')]=_0xe073('0xee');_0x4c7880['membername']=_0xe073('0xe9');_0x4c7880[_0xe073('0xef')]+=0x1;_0x4c7880['countglobal']+=0x1;_0x4c7880[_0xe073('0xeb')]=!![];ami['emit'](_0xe073('0xea'),ut[_0xe073('0xf0')](_0x4c7880,_0xe073('0xeb')));_0x46cbfd[_0xe073('0xcd')](_0x4c7880)[_0xe073('0xb3')](loggerCatch(_0xe073('0xf1')));if(_0x4c7880[_0xe073('0xf2')]+_0x4c7880[_0xe073('0xf3')]+_0x4c7880[_0xe073('0xf4')]+_0x4c7880[_0xe073('0xf5')]+_0x4c7880[_0xe073('0xf6')]+_0x4c7880[_0xe073('0xf7')]+_0x4c7880[_0xe073('0xef')]+_0x4c7880[_0xe073('0xf8')]>=_0x51839e[_0xe073('0xf9')]){_0x46cbfd['stateGlobal'](_0x4c7880,_0xdb757b,_0x309231,_0xe073('0xfa'));}else{if(_0x4c7880[_0xe073('0xef')]>=_0x51839e[_0xe073('0xfb')]){_0x46cbfd[_0xe073('0xfc')](_0x4c7880,_0xdb757b,_0x309231,_0xe073('0xfd'));}else{_0x46cbfd[_0xe073('0xc2')]({'active':![],'countmachineretry':_0x4c7880['countmachineretry'],'scheduledat':moment()[_0xe073('0xfe')](_0x51839e[_0xe073('0xff')],_0xe073('0x100'))[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0x4c7880[_0xe073('0xd4')],'ListId':_0x4c7880['ListId'],'VoiceQueueId':_0x4c7880[_0xe073('0xd7')]||undefined,'CampaignId':_0x4c7880[_0xe073('0xd8')]||undefined})['catch'](loggerCatch(_0xe073('0x102')));_0xdb757b({'reschedule':0x1});}}});}if(_0x4eee21[_0xe073('0x48')]===_0xe073('0x79')&&this[_0xe073('0x1d')][_0x4eee21[_0xe073('0xb4')]][_0xe073('0xe3')]&&_0x14b643[_0xe073('0x103')]===_0xe073('0xe4')){delete this[_0xe073('0x24')][_0x14b643[_0xe073('0xdf')]];this[_0xe073('0xb5')](this[_0xe073('0x1d')][_0x4eee21[_0xe073('0xb4')]]);_0x211076=new Hangup(_0x4eee21,_0x14b643);_0x211076[_0xe073('0xe6')]=0x12;_0x211076['statedesc']=_0xe073('0xe7');_0x211076[_0xe073('0xe8')]='AMD';ami[_0xe073('0x47')](_0xe073('0xea'),ut['buildObj'](_0x211076,_0xe073('0xeb')));this['saveInDb'](_0x211076,_0xe073('0x104'),_0xe073('0x105'));}if(_0x4eee21[_0xe073('0x48')]===_0xe073('0x79')&&this[_0xe073('0x1d')][_0x4eee21[_0xe073('0xb4')]]['dialAMDActive']&&_0x14b643[_0xe073('0x103')]===_0xe073('0x106')){var _0x46cbfd=this;return new BPromise(function(_0x1d6c1b,_0x4732d5){delete _0x46cbfd['uniqueId'][_0x14b643['uniqueid']];_0x46cbfd['updateOriginated'](_0x46cbfd['campaigns'][_0x4eee21['queue']]);_0x46cbfd[_0xe073('0x1d')][_0x4eee21['queue']]['outboundAnswerCallsDay']+=0x1;_0x46cbfd['campaigns'][_0x4eee21[_0xe073('0xb4')]][_0xe073('0x5a')]+=0x1;var _0x40d1a8=_0x46cbfd[_0xe073('0x1d')][_0x4eee21['queue']];var _0x399471=new Hangup(_0x4eee21,_0x14b643);_0x399471['state']=0x13;_0x399471['statedesc']=_0xe073('0xee');_0x399471[_0xe073('0xe8')]=_0xe073('0xe9');_0x399471['countmachineretry']+=0x1;_0x399471[_0xe073('0x107')]+=0x1;_0x399471['amd']=!![];ami[_0xe073('0x47')](_0xe073('0xea'),ut[_0xe073('0xf0')](_0x399471,_0xe073('0xeb')));_0x46cbfd[_0xe073('0xcd')](_0x399471)[_0xe073('0xb3')](loggerCatch(_0xe073('0xf1')));if(_0x399471[_0xe073('0xf2')]+_0x399471[_0xe073('0xf3')]+_0x399471[_0xe073('0xf4')]+_0x399471['countnosuchnumberretry']+_0x399471['countdropretry']+_0x399471[_0xe073('0xf7')]+_0x399471[_0xe073('0xef')]+_0x399471['countagentrejectretry']>=_0x40d1a8[_0xe073('0xf9')]){_0x46cbfd[_0xe073('0x108')](_0x399471,_0x1d6c1b,_0x4732d5,'reason19\x20machine....');}else{if(_0x399471[_0xe073('0xef')]>=_0x40d1a8['dialMachineMaxRetry']){_0x46cbfd[_0xe073('0xfc')](_0x399471,_0x1d6c1b,_0x4732d5,'reason\x2019\x20machine....');}else{_0x46cbfd[_0xe073('0xc2')]({'active':![],'countmachineretry':_0x399471[_0xe073('0xef')],'scheduledat':moment()[_0xe073('0xfe')](_0x40d1a8[_0xe073('0xff')],_0xe073('0x100'))[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0x399471[_0xe073('0xd4')],'ListId':_0x399471[_0xe073('0xd5')],'VoiceQueueId':_0x399471[_0xe073('0xd7')]||undefined,'CampaignId':_0x399471[_0xe073('0xd8')]||undefined})[_0xe073('0xb3')](loggerCatch(_0xe073('0x102')));_0x1d6c1b({'reschedule':0x1});}}});}}};Dialer['prototype'][_0xe073('0x30')]=function(_0x59afdc){var _0x2b6e99=this[_0xe073('0x24')][_0x59afdc[_0xe073('0xdf')]];var _0x2c3f65=this;var _0x36d9ae;if(_0x2b6e99&&_0x2b6e99[_0xe073('0x48')]===_0xe073('0x79')){delete this[_0xe073('0x24')][_0x59afdc['uniqueid']];this[_0xe073('0xb5')](this['campaigns'][_0x2b6e99[_0xe073('0xb4')]]);this[_0xe073('0x1d')][_0x2b6e99[_0xe073('0xb4')]]['ivrAnswerCallsDay']+=0x1;_0x36d9ae=new Hangup(_0x2b6e99,_0x59afdc);this[_0xe073('0xcd')](_0x36d9ae)['catch'](loggerCatch('[syncHangupIvr][createHistory]'));this[_0xe073('0xcb')](_0x36d9ae)[_0xe073('0xb3')](loggerCatch(_0xe073('0x109')));}if(_0x2b6e99&&_0x2b6e99[_0xe073('0x48')]!==_0xe073('0x79')&&isNotNull(this['voiceQueues'][_0x2b6e99[_0xe073('0xb4')]][_0xe073('0x10a')])){delete this[_0xe073('0x24')][_0x59afdc['uniqueid']];this[_0xe073('0xb5')](this[_0xe073('0x1c')][_0x2b6e99['queue']]);this['voiceQueues'][_0x2b6e99[_0xe073('0xb4')]][_0xe073('0xe5')]+=0x1;this[_0xe073('0x1c')][_0x2b6e99[_0xe073('0xb4')]][_0xe073('0x5a')]+=0x1;_0x36d9ae=new Hangup(_0x2b6e99,_0x59afdc);_0x36d9ae['state']=0x10;_0x36d9ae['statedesc']=_0xe073('0x10b');_0x36d9ae[_0xe073('0xe8')]=_0xe073('0x10c');this[_0xe073('0xcd')](_0x36d9ae)[_0xe073('0xb3')](loggerCatch(_0xe073('0x10d')));this[_0xe073('0xcb')](_0x36d9ae)[_0xe073('0xb3')](loggerCatch('[syncHangupIvr]'));}if(_0x2b6e99&&_0x2b6e99[_0xe073('0x48')]!==_0xe073('0x79')&&!isNotNull(this[_0xe073('0x1c')][_0x2b6e99[_0xe073('0xb4')]][_0xe073('0x10a')])){delete this[_0xe073('0x24')][_0x59afdc[_0xe073('0xdf')]];this[_0xe073('0xb5')](this['voiceQueues'][_0x2b6e99[_0xe073('0xb4')]]);this[_0xe073('0x1c')][_0x2b6e99[_0xe073('0xb4')]][_0xe073('0x10e')]+=0x1;_0x36d9ae=new Hangup(_0x2b6e99,_0x59afdc);_0x36d9ae[_0xe073('0xe6')]=0xc;_0x36d9ae[_0xe073('0xa9')]=_0x59afdc['cause-txt'];_0x36d9ae['membername']='Unknow';this['createHistory'](_0x36d9ae)[_0xe073('0xb3')](loggerCatch(_0xe073('0x10d')));this[_0xe073('0xcb')](_0x36d9ae)['catch'](loggerCatch(_0xe073('0x109')));}};Dialer[_0xe073('0x18')]['syncAgentComplete']=function(_0x16dc20){var _0x2d4263=this[_0xe073('0x24')][_0x16dc20['uniqueid']];var _0xddc6f8=this;if(this[_0xe073('0x1c')][_0x16dc20[_0xe073('0xb4')]]){if(_0x2d4263&&_0x2d4263[_0xe073('0x48')]!==_0xe073('0x79')){delete this[_0xe073('0x24')][_0x16dc20[_0xe073('0xdf')]];this[_0xe073('0x1c')][_0x16dc20[_0xe073('0xb4')]][_0xe073('0xe5')]+=0x1;var _0x76102a=new AgentComplete(_0x2d4263,_0x16dc20);if(_0x16dc20[_0xe073('0x10f')]===_0xe073('0x110')){_0x76102a['agiafterat']=this[_0xe073('0x1c')][_0x16dc20[_0xe073('0xb4')]][_0xe073('0x111')]&&this['voiceQueues'][_0x16dc20['queue']][_0xe073('0x112')]?moment()[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;}this[_0xe073('0xcd')](_0x76102a)[_0xe073('0xb3')](loggerCatch(_0xe073('0x113')));this[_0xe073('0xcb')](_0x76102a)[_0xe073('0xb3')](loggerCatch(_0xe073('0x114')));}}};Dialer[_0xe073('0x18')][_0xe073('0x2b')]=function(_0x24e4d3){if(this[_0xe073('0x1c')][_0x24e4d3[_0xe073('0xb4')]]){if(this[_0xe073('0x24')][_0x24e4d3[_0xe073('0xdf')]]&&this[_0xe073('0x24')][_0x24e4d3[_0xe073('0xdf')]]['type']!==_0xe073('0x79')){this[_0xe073('0xb5')](this[_0xe073('0x1c')][_0x24e4d3['queue']]);this[_0xe073('0x24')][_0x24e4d3[_0xe073('0xdf')]][_0xe073('0x115')]=moment()['format'](_0xe073('0x101'));}}};Dialer[_0xe073('0x18')]['queueCallerAbandonCreateState']=function(_0x4d1b39){this[_0xe073('0xcd')](_0x4d1b39)[_0xe073('0xb3')](loggerCatch(_0xe073('0x113')));this[_0xe073('0xcb')](_0x4d1b39)[_0xe073('0xb3')](loggerCatch(_0xe073('0x116')));};Dialer[_0xe073('0x18')][_0xe073('0x2e')]=function(_0x365ec5){var _0x11a3a1=this[_0xe073('0x24')][_0x365ec5[_0xe073('0xdf')]];var _0xe7e8e9=this;if(this['voiceQueues'][_0x365ec5['queue']]){if(_0x11a3a1&&_0x11a3a1[_0xe073('0x48')]!=='ivr'){delete this[_0xe073('0x24')][_0x365ec5[_0xe073('0xdf')]];this['updateOriginated'](this['voiceQueues'][_0x365ec5[_0xe073('0xb4')]]);_0x11a3a1[_0xe073('0x117')]=moment()[_0xe073('0x7a')](_0xe073('0x101'));var _0x25954c=new QueueCallerAbandon(_0x11a3a1,_0x365ec5);if(getSeconds(_0x11a3a1['droptime'],_0x11a3a1['responsetime'])>=_0x11a3a1['dialQueueTimeout']){this['voiceQueues'][_0x365ec5[_0xe073('0xb4')]][_0xe073('0x69')]+=0x1;this[_0xe073('0x1c')][_0x365ec5['queue']][_0xe073('0x60')]+=0x1;this[_0xe073('0x1c')][_0x365ec5[_0xe073('0xb4')]]['predictiveIntervalErlangCallsDroppedCalls']+=0x1;_0x25954c[_0xe073('0xe6')]=0xa;_0x25954c[_0xe073('0xa9')]=_0xe073('0x118');_0x25954c[_0xe073('0x119')]=_0xe073('0x11a');_0x25954c[_0xe073('0x11b')]=this['voiceQueues'][_0x365ec5[_0xe073('0xb4')]][_0xe073('0x111')]?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined;_0x25954c[_0xe073('0xf6')]+=0x1;_0x25954c[_0xe073('0x107')]+=0x1;if(_0x25954c['countdropretry']>=this[_0xe073('0x1c')][_0x365ec5[_0xe073('0xb4')]][_0xe073('0x11c')]){this[_0xe073('0x11d')](_0x25954c);}else{this['rescheduleContact']({'active':![],'countdropretry':_0x25954c[_0xe073('0xf6')],'scheduledat':moment()[_0xe073('0xfe')](this[_0xe073('0x1c')][_0x365ec5[_0xe073('0xb4')]][_0xe073('0x11e')],_0xe073('0x100'))[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x11a3a1[_0xe073('0xd4')],'ListId':_0x11a3a1[_0xe073('0xd5')],'VoiceQueueId':_0x11a3a1[_0xe073('0xd7')]||undefined,'CampaignId':_0x11a3a1['CampaignId']||undefined})['catch'](loggerCatch(_0xe073('0x11f')));var _0x345ca4=new History(_0x25954c);_0x345ca4[_0xe073('0xe6')]=0xa;_0x345ca4[_0xe073('0xa9')]='Drop';_0x345ca4[_0xe073('0xab')]=moment()[_0xe073('0x7a')](_0xe073('0x101'));_0x345ca4[_0xe073('0xaa')]=_0x345ca4[_0xe073('0xab')];_0x345ca4[_0xe073('0x120')]=_0x25954c[_0xe073('0x120')];_0x345ca4[_0xe073('0x121')]=_0x25954c[_0xe073('0x121')];this['createHistory'](_0x345ca4)[_0xe073('0xb3')](loggerCatch('[syncAgentComplete][createHistory][10]'));}}else{this[_0xe073('0x1c')][_0x365ec5['queue']][_0xe073('0x68')]+=0x1;this[_0xe073('0x1c')][_0x365ec5['queue']][_0xe073('0x5f')]+=0x1;_0x25954c['state']=0xb;_0x25954c[_0xe073('0xa9')]=_0xe073('0x122');_0x25954c[_0xe073('0x119')]=_0xe073('0x123');_0x25954c[_0xe073('0xf7')]+=0x1;_0x25954c[_0xe073('0x107')]+=0x1;if(_0x25954c[_0xe073('0xf7')]>=this[_0xe073('0x1c')][_0x365ec5['queue']][_0xe073('0x124')]){this[_0xe073('0x11d')](_0x25954c);}else{this['rescheduleContact']({'active':![],'countabandonedretry':_0x25954c[_0xe073('0xf7')],'scheduledat':moment()[_0xe073('0xfe')](this[_0xe073('0x1c')][_0x365ec5[_0xe073('0xb4')]][_0xe073('0x125')],'minutes')[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0x11a3a1[_0xe073('0xd4')],'ListId':_0x11a3a1[_0xe073('0xd5')],'VoiceQueueId':_0x11a3a1[_0xe073('0xd7')]||undefined,'CampaignId':_0x11a3a1[_0xe073('0xd8')]||undefined})['catch'](loggerCatch('[rescheduleContact][Abandoned]'));var _0x345ca4=new History(_0x25954c);_0x345ca4['state']=0xb;_0x345ca4[_0xe073('0xa9')]=_0xe073('0x122');_0x345ca4[_0xe073('0xab')]=moment()[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');_0x345ca4[_0xe073('0xaa')]=_0x345ca4[_0xe073('0xab')];_0x345ca4[_0xe073('0x120')]=_0x25954c['calleridname'];_0x345ca4[_0xe073('0x121')]=_0x25954c[_0xe073('0x121')];this[_0xe073('0xcd')](_0x345ca4)['catch'](loggerCatch(_0xe073('0x126')));}}}}};Dialer['prototype']['syncNewExten']=function(_0x3dceb1){if(this[_0xe073('0x22')][_0x3dceb1['uniqueid']]){this['actions'][_0x3dceb1['uniqueid']][_0xe073('0x127')]=_0x3dceb1[_0xe073('0x127')];}if(this['uniqueId'][_0x3dceb1[_0xe073('0xdf')]]){this[_0xe073('0x24')][_0x3dceb1[_0xe073('0xdf')]][_0xe073('0x127')]=_0x3dceb1[_0xe073('0x127')];}};Dialer[_0xe073('0x18')]['syncQueueMember']=function(_0x3731c9){if(strategy[this[_0xe073('0x1c')][this['actions'][_0x3731c9[_0xe073('0x128')]][_0xe073('0xb4')]]['strategy']]===_0xe073('0x17')){if(this[_0xe073('0x22')][_0x3731c9[_0xe073('0x128')]]&&_[_0xe073('0xb0')](this[_0xe073('0x22')][_0x3731c9['actionid']][_0xe073('0x129')])&&_0x3731c9[_0xe073('0xb2')]==='1'&&_0x3731c9[_0xe073('0x12a')]==='0'){if(this[_0xe073('0x1e')][_0x3731c9[_0xe073('0x12b')]]){if(!this[_0xe073('0x1e')][_0x3731c9['stateinterface']]['locked']){this[_0xe073('0x1e')][_0x3731c9['stateinterface']][_0xe073('0x129')]=!![];this[_0xe073('0x22')][_0x3731c9[_0xe073('0x128')]][_0xe073('0x129')]=!![];this[_0xe073('0x22')][_0x3731c9[_0xe073('0x128')]][_0xe073('0x12b')]=_0x3731c9[_0xe073('0x12b')];}}}}else if((strategy[this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x3731c9['actionid']][_0xe073('0xb4')]][_0xe073('0x4a')]]||_0xe073('0x16'))===_0xe073('0x16')){if(this['actions'][_0x3731c9[_0xe073('0x128')]]){if(this['agents'][_0x3731c9[_0xe073('0x12b')]]){this[_0xe073('0x22')][_0x3731c9[_0xe073('0x128')]][_0xe073('0x12b')]=_0x3731c9['stateinterface'];if(_[_0xe073('0xb0')](this[_0xe073('0x29')][this['actions'][_0x3731c9[_0xe073('0x128')]][_0xe073('0xb4')]])){this[_0xe073('0x29')][this['actions'][_0x3731c9[_0xe073('0x128')]][_0xe073('0xb4')]]=[];}this[_0xe073('0x29')][this[_0xe073('0x22')][_0x3731c9[_0xe073('0x128')]][_0xe073('0xb4')]][_0xe073('0x12c')](_[_0xe073('0x8f')](_[_0xe073('0x12d')](this['actions'][_0x3731c9[_0xe073('0x128')]],[_0xe073('0x12e'),_0xe073('0x12b')]),{'status':_0x3731c9[_0xe073('0xb2')],'paused':_0x3731c9[_0xe073('0x12a')]}));}}}};function unlockQueueStatus(_0x38fa55,_0x11369d){setTimeout(function(){if(_[_0xe073('0x39')](_0x38fa55[_0xe073('0x12f')])){loggerBooked['error'](_0xe073('0x130'),_0x11369d);}_0x38fa55[_0xe073('0x12f')]=!![];loggerBooked['info'](_0xe073('0x131'),_0x11369d,JSON['stringify'](_['pick'](_0x38fa55,[_0xe073('0x3b'),_0xe073('0x12f')])));},0x1f3);}Dialer['prototype'][_0xe073('0x36')]=function(_0x2c9e4f){var _0x2d506a=this;var _0x45f1f7=_0x2d506a[_0xe073('0x1c')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['queue']];if(strategy[this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]['strategy']]===_0xe073('0x17')){if(this[_0xe073('0x22')][_0x2c9e4f['actionid']]&&this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0x12b')]){this[_0xe073('0x94')][_0xe073('0x132')](this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0x12e')],this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0x12b')])[_0xe073('0xb3')](function(_0x30c93f){logger[_0xe073('0x98')]('[Catch][Preview][syncQueueStatusComplete]',util['inspect'](_0x30c93f,{'showHidden':![],'depth':null}));})['finally'](function(){_0x2d506a['updateOriginated'](_0x2d506a['voiceQueues'][_0x2d506a[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]);_0x2d506a[_0xe073('0x1e')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0x12b')]][_0xe073('0x129')]=![];delete _0x2d506a['actions'][_0x2c9e4f[_0xe073('0x128')]];unlockQueueStatus(_0x45f1f7);});}else{this['updateOriginated'](this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]);this[_0xe073('0xc2')]({'active':![],'ContactId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd4')],'ListId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['ListId'],'VoiceQueueId':this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd7')]||undefined,'CampaignId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd8')]||undefined})[_0xe073('0xb3')](loggerCatch('[unlock][syncQueueStatusComplete]'));delete this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]];unlockQueueStatus(_0x45f1f7);}}else if((strategy[this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]][_0xe073('0x4a')]]||_0xe073('0x16'))===_0xe073('0x16')){var _0x50c8f6;if(this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]&&!_[_0xe073('0x40')](this['queueBooked'][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['queue']])){if(this[_0xe073('0x133')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['queue']]){this[_0xe073('0x133')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]=this[_0xe073('0x133')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]?this[_0xe073('0x133')][this[_0xe073('0x22')][_0x2c9e4f['actionid']][_0xe073('0xb4')]]:this[_0xe073('0x29')][this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]?this['queueBooked'][this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]['_rr']||0x0:0x0;}this[_0xe073('0x29')][this[_0xe073('0x22')][_0x2c9e4f['actionid']][_0xe073('0xb4')]][_0xe073('0x134')]=this['queueBookedRR'][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]];for(var _0xc96cf8=0x0;_0xc96cf8<this[_0xe073('0x29')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]][_0xe073('0x9b')];_0xc96cf8+=0x1){_0x50c8f6=rr(this['queueBooked'][this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]);this[_0xe073('0x133')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['queue']]=this[_0xe073('0x29')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['queue']]['_rr'];if(_0x50c8f6[_0xe073('0xb2')]==='1'&&_0x50c8f6['paused']==='0'){break;}}if(!_[_0xe073('0xb0')](_0x50c8f6)){this[_0xe073('0x1e')][_0x50c8f6[_0xe073('0x12b')]]['unlockRR']=_[_0xe073('0x39')](this[_0xe073('0x1e')][_0x50c8f6[_0xe073('0x12b')]][_0xe073('0x135')])?!![]:this['agents'][_0x50c8f6['stateinterface']]['unlockRR'];}loggerBooked['info']('[booked][RR]',_0x2c9e4f['actionid'],_0xe073('0x136'),JSON['stringify'](_[_0xe073('0x12d')](this['agents'][_0x50c8f6['stateinterface']],['name',_0xe073('0x135')])),'contactAgent-idHopper:\x20',JSON['stringify'](_0x50c8f6[_0xe073('0x12e')]));if(!_['isNil'](_0x50c8f6)&&_0x50c8f6['status']==='1'&&_0x50c8f6[_0xe073('0x12a')]==='0'&&this['agents'][_0x50c8f6[_0xe073('0x12b')]][_0xe073('0x135')]){this[_0xe073('0x1e')][_0x50c8f6['stateinterface']]['unlockRR']=![];this[_0xe073('0x29')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f['actionid']][_0xe073('0xb4')]]=[];this['preview']['run'](_0x50c8f6['idHopper'],_0x50c8f6[_0xe073('0x12b')])['catch'](function(_0x58af0f){logger[_0xe073('0x98')](_0xe073('0x137'),util['inspect'](_0x58af0f,{'showHidden':![],'depth':null}));})[_0xe073('0x1b')](function(){_0x2d506a['updateOriginated'](_0x2d506a[_0xe073('0x1c')][_0x2d506a[_0xe073('0x22')][_0x2c9e4f['actionid']]['queue']]);setTimeout(function(){_0x2d506a[_0xe073('0x1e')][_0x50c8f6['stateinterface']][_0xe073('0x135')]=!![];loggerBooked['info'](_0xe073('0x138'),_0x2c9e4f[_0xe073('0x128')],'Agent:\x20',JSON[_0xe073('0x43')](_['pick'](_0x2d506a[_0xe073('0x1e')][_0x50c8f6['stateinterface']],[_0xe073('0x3b'),_0xe073('0x135')])),_0xe073('0x139'),JSON[_0xe073('0x43')](_0x50c8f6[_0xe073('0x12e')]));},0xc7);delete _0x2d506a['actions'][_0x2c9e4f[_0xe073('0x128')]];unlockQueueStatus(_0x45f1f7,_0x2c9e4f[_0xe073('0x128')]);});}else{loggerBooked['info'](_0xe073('0x13a'));this[_0xe073('0xb5')](this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xb4')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd4')],'ListId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd5')],'VoiceQueueId':this[_0xe073('0x22')][_0x2c9e4f['actionid']][_0xe073('0xd7')]||undefined,'CampaignId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd8')]||undefined})['catch'](loggerCatch(_0xe073('0x13b')));delete this[_0xe073('0x22')][_0x2c9e4f['actionid']];unlockQueueStatus(_0x45f1f7);}}else{loggerBooked[_0xe073('0x7c')](_0xe073('0x13c'));this[_0xe073('0xb5')](this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x2c9e4f['actionid']][_0xe073('0xb4')]]);this[_0xe073('0xc2')]({'active':![],'ContactId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd4')],'ListId':this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd5')],'VoiceQueueId':this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd7')]||undefined,'CampaignId':this[_0xe073('0x22')][_0x2c9e4f['actionid']]['CampaignId']||undefined})[_0xe073('0xb3')](loggerCatch(_0xe073('0x13d')));delete this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]];unlockQueueStatus(_0x45f1f7);}}else{loggerBooked[_0xe073('0x7c')]('[booked][unlock3]');this['updateOriginated'](this[_0xe073('0x1c')][this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['queue']]);this[_0xe073('0xc2')]({'active':![],'ContactId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['ContactId'],'ListId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['ListId'],'VoiceQueueId':this['actions'][_0x2c9e4f[_0xe073('0x128')]][_0xe073('0xd7')]||undefined,'CampaignId':this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]]['CampaignId']||undefined})['catch'](loggerCatch('[unlock3][syncQueueStatusComplete]'));delete this[_0xe073('0x22')][_0x2c9e4f[_0xe073('0x128')]];unlockQueueStatus(_0x45f1f7);}};Dialer['prototype']['loopCampaigns']=function(){var _0xa82144=this;setInterval(function(){_0xa82144[_0xe073('0x13e')]();},0x3e8);};Dialer[_0xe073('0x18')]['checkIsTrunkReachable']=function(_0x5a18ad){var _0x4b5caf=this;return function(){if(!_0x4b5caf['isTrunkReachable'](_0x5a18ad['Trunk'])){if(!_0x4b5caf[_0xe073('0xdb')](_0x5a18ad[_0xe073('0x13f')])){_0x5a18ad[_0xe073('0x3c')]=_0xe073('0x140');throw _0x5a18ad['name']+_0xe073('0x141');}}};};Dialer[_0xe073('0x18')][_0xe073('0x142')]=function(_0x7e9edd,_0x5a0697,_0x46588c,_0x43f323){var _0x2a663b=this;return function(){var _0x210928=!![];return _0x2a663b[_0xe073('0x143')](_0x7e9edd,_0x5a0697,_0x46588c,_0x43f323,_0x210928);};};Dialer[_0xe073('0x18')]['checkIfTimeIntervals']=function(_0xd9092,_0x5a503b,_0x25c867,_0x59c2ff){var _0x42a7cf=this;return function(){var _0x149e3f=![];return _0x42a7cf[_0xe073('0x143')](_0xd9092['Intervals'],_0x5a503b,_0x25c867,_0x59c2ff,_0x149e3f);};};Dialer[_0xe073('0x18')][_0xe073('0x143')]=function(_0x4c7393,_0x4c0a94,_0x4a2ae7,_0x381670,_0x272af7){var _0x4bc129=[];return new BPromise(function(_0xfc93d0,_0x4359df){if(!isNotNull(_0x4c7393)){_0x381670['message']=_0xe073('0x41');return _0x4359df(msgResponse('ifTime',_0xe073('0x144'),_0x4a2ae7+_0xe073('0x145')));}if(_[_0xe073('0x40')](_0x4c7393)){_0x381670[_0xe073('0x3c')]=_0xe073('0x146');return _0x4359df(msgResponse(_0xe073('0x143'),_0xe073('0x144'),_0x4a2ae7+_0xe073('0x147')));}if(_0x4c0a94&&_[_0xe073('0x39')](config[_0xe073('0x148')][_0x4c0a94])){_0x381670[_0xe073('0x3c')]='TIMEZONE_UNKNOW';return _0x4359df(msgResponse('ifTime',_0xe073('0x144'),_0x4a2ae7+_0xe073('0x149')+_0x4c0a94));}if(_['isArray'](_0x4c7393)){for(var _0x1b86fb=0x0;_0x1b86fb<_0x4c7393['length'];_0x1b86fb+=0x1){_0x4bc129['push'](ami[_0xe073('0xb1')]({'action':_0xe073('0x14a'),'command':util[_0xe073('0x7a')](_0xe073('0x14b'),_0x4c7393[_0x1b86fb][_0xe073('0x14c')],!_[_0xe073('0x39')](config[_0xe073('0x148')][_0x4c0a94])?_0x4c0a94:'')})[_0xe073('0xb9')](function(_0x2100a8){return _0x2100a8[_0xe073('0x14d')][_0xe073('0x14e')](_0xe073('0x14f'))>=0x0;})['catch'](myreject(_0x4359df)));}}else{_0x4bc129[_0xe073('0x12c')](ami[_0xe073('0xb1')]({'action':'command','command':util[_0xe073('0x7a')](_0xe073('0x14b'),_0x4c7393,!_['isUndefined'](config[_0xe073('0x148')][_0x4c0a94])?_0x4c0a94:'')})[_0xe073('0xb9')](function(_0x14e976){return _0x14e976[_0xe073('0x14d')][_0xe073('0x14e')](_0xe073('0x14f'))>=0x0;})[_0xe073('0xb3')](myreject(_0x4359df)));}BPromise['all'](_0x4bc129)['then'](function(_0x330aad){var _0x55318f=_['some'](_0x330aad);if(_0x55318f){return _0xfc93d0(_0x55318f);}else{_0x381670['message']=_0x272af7?_0xe073('0x150'):_0xe073('0x151');return _0x4359df(msgResponse('[ifTime][promiseAll]',_0xe073('0x144'),'Global:\x20'+_0x272af7+'\x20'+_0x4a2ae7+_0xe073('0x152')+util[_0xe073('0x99')](_0x4c7393,{'showHidden':![],'depth':null})+'Timezone:\x20'+_0x4c0a94));}})[_0xe073('0xb3')](function(_0x2b101b){return _0x4359df(msgResponse(_0xe073('0x143'),_0xe073('0x144'),JSON[_0xe073('0x43')](_0x2b101b)));});});};Dialer['prototype']['checkDialMethod']=function(_0x1d4ff9){var _0x5c55dd=this;return function(){switch(_0x1d4ff9[_0xe073('0x56')]){case _0xe073('0x153'):freeVariablesPredictive(_0x1d4ff9);_0x5c55dd['handlePower'](_0x1d4ff9,0x1);break;case _0xe073('0x154'):freeVariablesPredictive(_0x1d4ff9);_0x5c55dd['handlePower'](_0x1d4ff9,_0x1d4ff9[_0xe073('0x155')]);break;case _0xe073('0x7'):_0x5c55dd[_0xe073('0x7')](_0x1d4ff9);break;case'booked':freeVariablesPredictive(_0x1d4ff9);_0x5c55dd[_0xe073('0x156')](_0x1d4ff9,0x1);break;default:freeVariablesPredictive(_0x1d4ff9);logger[_0xe073('0x98')](_0xe073('0x157'),_0x1d4ff9[_0xe073('0x3b')],_0xe073('0x158'));}};};Dialer[_0xe073('0x18')][_0xe073('0x159')]=function(_0x4cd11b){var _0x59712e=this;return function(){_0x59712e[_0xe073('0x15a')](_0x4cd11b);};};Dialer['prototype'][_0xe073('0x9')]=function(_0x56e677){var _0x303378=this;if(isNotPreview(_0x56e677[_0xe073('0x56')])){if(isVoiceQueueOutbound(_0x56e677[_0xe073('0x48')])&&isActive(_0x56e677['dialActive'])){_0x56e677['sendMessageOneNotActive']=!![];BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](checkIsLoggedIn(_0x56e677,_0x56e677[_0xe073('0x4d')]))[_0xe073('0xb9')](checkIsActive(_0x56e677,_0x56e677['dialActive']))[_0xe073('0xb9')](checkInterval(_0x56e677))[_0xe073('0xb9')](_0x303378['checkIsTrunkReachable'](_0x56e677))[_0xe073('0xb9')](_0x303378[_0xe073('0x142')](_0x56e677[_0xe073('0x15b')],_0x56e677[_0xe073('0x15c')],_0x56e677['name'],_0x56e677))['then'](_0x303378[_0xe073('0x15d')](_0x56e677[_0xe073('0x3e')],_0x56e677[_0xe073('0x15c')],_0x56e677[_0xe073('0x3b')],_0x56e677))[_0xe073('0xb9')](_0x303378[_0xe073('0x15e')](_0x56e677))[_0xe073('0xb3')](loggerCatchQueueSummary('[syncQueueSummary]',_0x56e677));}else{notSendMessagesQueue(_0x56e677);}}else{freeVariablesPredictive(_0x56e677);}};Dialer[_0xe073('0x18')]['syncCampaigns']=function(){var _0x1c3ad7=this;var _0x439d2a;for(var _0x461307 in this[_0xe073('0x1d')]){if(typeof this['campaigns'][_0x461307]!=='undefined'){_0x439d2a=this[_0xe073('0x1d')][_0x461307];if(isCampaignIvr(_0x439d2a[_0xe073('0x48')])&&isActive(_0x439d2a['active'])){_0x439d2a[_0xe073('0xa3')]=!![];BPromise[_0xe073('0xb8')]()[_0xe073('0xb9')](checkIsActive(_0x439d2a,_0x439d2a['active']))['then'](checkInterval(_0x439d2a))[_0xe073('0xb9')](_0x1c3ad7['checkIsTrunkReachable'](_0x439d2a))[_0xe073('0xb9')](_0x1c3ad7[_0xe073('0x142')](_0x439d2a[_0xe073('0x15b')],_0x439d2a[_0xe073('0x15c')],_0x439d2a[_0xe073('0x3b')],_0x439d2a))[_0xe073('0xb9')](_0x1c3ad7[_0xe073('0x15d')](_0x439d2a[_0xe073('0x3e')],_0x439d2a[_0xe073('0x15c')],_0x439d2a[_0xe073('0x3b')],_0x439d2a))['then'](_0x1c3ad7[_0xe073('0x159')](_0x439d2a))[_0xe073('0xb3')](loggerCatchQueueSummary(_0xe073('0x15f'),_0x439d2a));}else{notSendMessagesCampaign(_0x439d2a);}}}};function getCallerIdRandom(_0x1cd940,_0x502f95){var _0x223138;var _0x168a59;var _0x19e597;if(_0x502f95<=0x0){_0x502f95=0x1;}_0x223138=new RegExp(_0xe073('0x160')+_0x502f95+'}$');_0x168a59=Math[_0xe073('0x161')](0xa,_0x502f95-0x1);_0x19e597=Math[_0xe073('0x161')](0xa,_0x502f95)-0x1;return util['format']('%s',_[_0xe073('0x162')](_0x1cd940,_0x223138,_[_0xe073('0x163')](_0x168a59,_0x19e597)));}function extractCalleridName(_0x2590f6){var _0x5f036c=_0x2590f6[_0xe073('0x164')](/"(.*?)"/);return _0x5f036c?_0x5f036c[0x1]:_0x2590f6;}function extractCalleridNumber(_0x42a19a){var _0x4a142a=_0x42a19a[_0xe073('0x164')](/<(.*?)>/);return _0x4a142a?_0x4a142a[0x1]:_0x42a19a;}Dialer[_0xe073('0x18')][_0xe073('0x165')]=function(_0x42c9df,_0x30215b){var _0x357785=this;var _0x3ec313=uuid['v4']();this[_0xe073('0x22')][_0x3ec313]=new Action(_0x42c9df,_0x30215b,_0x3ec313);return new BPromise(function(_0x2077e1,_0x5d6890){if(_[_0xe073('0x39')](_0x42c9df)&&typeof _0x42c9df!==_0xe073('0x166')){return _0x5d6890(msgResponse(_0xe073('0x167'),_0xe073('0x144'),_0xe073('0x168')));}if(_[_0xe073('0x39')](_0x30215b[_0xe073('0x169')][_0xe073('0x16a')])||_0x30215b['Contact'][_0xe073('0x16a')]===null){return _0x5d6890(msgResponse(_0xe073('0x167'),_0xe073('0x144'),_0xe073('0x16b')));}var _0x1452a5={'XMD-CALLERID':_0x357785['actions'][_0x3ec313][_0xe073('0x16c')](),'XMD-AGI':_0x42c9df['dialQueueProject']?util[_0xe073('0x7a')](_0xe073('0x16d'),ipAgi,_0x42c9df[_0xe073('0x10a')]):_0xe073('0x16e'),'XMD-AGIAFTER':_0x42c9df[_0xe073('0x111')]?util['format']('\x22agi://%s/square,%s\x22',ipAgi,_0x42c9df[_0xe073('0x111')]):_0xe073('0x16e'),'XMD-QUEUE':_0x42c9df['type']===_0xe073('0x49')?util[_0xe073('0x7a')](_0xe073('0x16f'),_0x42c9df[_0xe073('0x3b')],_0x42c9df[_0xe073('0x170')]||'',_0x42c9df[_0xe073('0x112')]?'c':'',_0x42c9df[_0xe073('0x171')]||0x3):'NONE','XMD-CONTACTID':_0x30215b[_0xe073('0xd4')],'XMD-CDRTYPE':_0xe073('0x172'),'CALLERID(all)':_0x357785[_0xe073('0x22')][_0x3ec313][_0xe073('0x16c')](),'XMD-AMD':_0x42c9df[_0xe073('0xe3')]?'ACTIVE':'NONE','XMD-DESTINATION':_0xe073('0xe2')};if(_0x42c9df[_0xe073('0xe3')]){_0x1452a5[_0xe073('0x173')]=_0x42c9df['dialAMDInitialSilence']||0x9c4;_0x1452a5[_0xe073('0x174')]=_0x42c9df['dialAMDGreeting']||0x5dc;_0x1452a5[_0xe073('0x175')]=_0x42c9df[_0xe073('0x176')]||0x320;_0x1452a5['XMD-AMDTOTALANALYSISTIME']=_0x42c9df[_0xe073('0x177')]||0x1388;_0x1452a5[_0xe073('0x178')]=_0x42c9df['dialAMDMinWordLength']||0x64;_0x1452a5[_0xe073('0x179')]=_0x42c9df[_0xe073('0x17a')]||0x32;_0x1452a5['XMD-AMDMAXIMUMNUMBEROFWORDS']=_0x42c9df[_0xe073('0x17b')]||0x3;_0x1452a5[_0xe073('0x17c')]=_0x42c9df[_0xe073('0x17d')]||0x100;_0x1452a5[_0xe073('0x17e')]=_0x42c9df[_0xe073('0x17f')]||0x1388;}if(_0x42c9df[_0xe073('0x48')]===_0xe073('0x49')){_0x1452a5['XMD-VOICEQUEUEID']=_0x30215b[_0xe073('0xd7')];}else{_0x1452a5[_0xe073('0x180')]=_0x30215b[_0xe073('0xd8')];}for(var _0x31c89b in _0x30215b[_0xe073('0x169')]){if(typeof _0x30215b[_0xe073('0x169')][_0x31c89b]!==_0xe073('0x9c')){if(isNotNull(_0x30215b[_0xe073('0x169')][_0x31c89b])&&_0x31c89b!=='id'&&_0x31c89b!==_0xe073('0x181')&&_0x31c89b!==_0xe073('0x182')&&_0x31c89b!=='updatedAt'){_0x1452a5[util[_0xe073('0x7a')](_0xe073('0x183'),'XMD-',_[_0xe073('0x184')](_0x31c89b))]=_0x30215b[_0xe073('0x169')][_0x31c89b];}}}var _0x15ad0f=_0x357785[_0xe073('0xdb')](_0x42c9df['Trunk'])?getCallerId(_0x42c9df[_0xe073('0x73')][_0xe073('0x75')],_0x42c9df[_0xe073('0x57')],_0x42c9df[_0xe073('0x185')]>0x0?getCallerIdRandom(_0x42c9df[_0xe073('0x58')],_0x42c9df[_0xe073('0x185')]):_0x42c9df[_0xe073('0x58')]):getCallerId(_['isNil'](_0x42c9df[_0xe073('0x13f')])?_0x42c9df[_0xe073('0x73')]['callerid']:_0x42c9df[_0xe073('0x13f')][_0xe073('0x75')],_0x42c9df[_0xe073('0x57')],_0x42c9df[_0xe073('0x185')]>0x0?getCallerIdRandom(_0x42c9df[_0xe073('0x58')],_0x42c9df[_0xe073('0x185')]):_0x42c9df[_0xe073('0x58')]);if(_0x15ad0f){_0x1452a5[_0xe073('0x186')]=_0x357785['actions'][_0x3ec313][_0xe073('0x187')]=extractCalleridName(_0x15ad0f);_0x1452a5[_0xe073('0x188')]=_0x357785[_0xe073('0x22')][_0x3ec313][_0xe073('0x189')]=extractCalleridNumber(_0x15ad0f);}return ami[_0xe073('0xb1')]({'actionid':_0x3ec313,'action':_0xe073('0x167'),'channel':_0x357785[_0xe073('0xdb')](_0x42c9df[_0xe073('0x73')])?util['format']('SIP/%s/%s%s',_0x42c9df[_0xe073('0x73')][_0xe073('0x3b')],isNotNull(_0x42c9df[_0xe073('0x18a')])?_0x42c9df[_0xe073('0x18a')][_0xe073('0x18b')]()||'':'',_0x42c9df[_0xe073('0x18c')]>0x0?_0x30215b[_0xe073('0x169')][_0xe073('0x16a')]['substring'](_0x42c9df[_0xe073('0x18c')]):_0x30215b['Contact'][_0xe073('0x16a')]):util[_0xe073('0x7a')](_0xe073('0x18d'),_[_0xe073('0xb0')](_0x42c9df[_0xe073('0x13f')])?_0x42c9df[_0xe073('0x73')][_0xe073('0x3b')]:_0x42c9df['TrunkBackup']['name'],isNotNull(_0x42c9df[_0xe073('0x18a')])?_0x42c9df['dialPrefix'][_0xe073('0x18b')]()||'':'',_0x42c9df[_0xe073('0x18c')]>0x0?_0x30215b[_0xe073('0x169')][_0xe073('0x16a')]['substring'](_0x42c9df['dialCutDigit']):_0x30215b[_0xe073('0x169')][_0xe073('0x16a')]),'callerid':_0x15ad0f,'Exten':_0xe073('0xe2'),'Context':_0xe073('0x18e'),'Priority':'1','variable':_0x1452a5,'timeout':(_0x42c9df['dialOriginateTimeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x3ec313})[_0xe073('0xb9')](function(_0xc2a5ea){return _0x2077e1(_0xc2a5ea);})[_0xe073('0xb3')](function(_0x2ec54c){_0x42c9df[_0xe073('0x63')]+=0x1;var _0x5b71be=new History(_0x357785[_0xe073('0x22')][_0x3ec313]);logger['error'](util[_0xe073('0x7a')](_0xe073('0x18f'),JSON[_0xe073('0x43')](_0x2ec54c)));_0x5b71be[_0xe073('0xe6')]=0xe;_0x5b71be[_0xe073('0xa9')]=_0xe073('0x190');_0x5b71be[_0xe073('0xab')]=moment()[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');_0x5b71be[_0xe073('0xaa')]=_0x5b71be[_0xe073('0xab')];_0x357785[_0xe073('0xcd')](_0x5b71be)[_0xe073('0xb3')](loggerCatch(_0xe073('0x191')));_0x357785[_0xe073('0xcb')](_0x5b71be)[_0xe073('0xb3')](loggerCatch(_0xe073('0x191')))['finally'](function(){delete _0x357785['actions'][_0x3ec313];return _0x5d6890(msgResponse(_0xe073('0x167'),'Error',_0xe073('0x192')));});});});};Dialer['prototype'][_0xe073('0x193')]=function(_0x253cc1){var _0x285c33=this['actions'][_0x253cc1[_0xe073('0x128')]];if(_0x285c33){delete this[_0xe073('0x22')][_0x253cc1[_0xe073('0x128')]];_0x285c33[_0xe073('0x194')]=moment()['format'](_0xe073('0x101'));var _0x24f36f=_0x285c33[_0xe073('0x48')]===_0xe073('0x79')?this['campaigns'][_0x285c33[_0xe073('0xb4')]]:this['voiceQueues'][_0x285c33[_0xe073('0x195')]()];if(!this['isSuccess'](_0x253cc1['response'])){this[_0xe073('0xb5')](_0x24f36f);return this[_0xe073('0x196')](_0x285c33,_0x24f36f,_0x253cc1)[_0xe073('0xb3')](loggerCatch(_0xe073('0x197')));}this[_0xe073('0x24')][_0x253cc1[_0xe073('0xdf')]]=_0x285c33;}};Dialer[_0xe073('0x18')]['checkRetriveMax']=function(_0x1a31b7,_0x51a2ce,_0x2a52af){var _0xb21cce=new History(_0x51a2ce);if(_0xb21cce[_0xe073('0xf2')]+_0xb21cce['countcongestionretry']+_0xb21cce[_0xe073('0xf4')]+_0xb21cce[_0xe073('0xf5')]+_0xb21cce[_0xe073('0xf6')]+_0xb21cce[_0xe073('0xf7')]+_0xb21cce['countmachineretry']+_0xb21cce[_0xe073('0xf8')]>=_0x2a52af[_0xe073('0xf9')]-0x1){return!![];}switch(_0x1a31b7){case 0x3:if(_0xb21cce[_0xe073('0xf4')]>=_0x2a52af[_0xe073('0x198')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countnoanswerretry':_0xb21cce[_0xe073('0xf4')]+=0x1,'scheduledat':moment()[_0xe073('0xfe')](_0x2a52af[_0xe073('0x199')],'minutes')[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0xb21cce['ContactId'],'ListId':_0xb21cce[_0xe073('0xd5')],'VoiceQueueId':_0xb21cce[_0xe073('0xd7')]||undefined,'CampaignId':_0xb21cce['CampaignId']||undefined})[_0xe073('0xb3')](loggerCatch(_0xe073('0x19a')));break;case 0x5:if(_0xb21cce[_0xe073('0xf2')]>=_0x2a52af[_0xe073('0x19b')]-0x1){return!![];}this[_0xe073('0xc2')]({'active':![],'countbusyretry':_0xb21cce['countbusyretry']+=0x1,'scheduledat':moment()[_0xe073('0xfe')](_0x2a52af[_0xe073('0x19c')],_0xe073('0x100'))[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0xb21cce[_0xe073('0xd4')],'ListId':_0xb21cce[_0xe073('0xd5')],'VoiceQueueId':_0xb21cce[_0xe073('0xd7')]||undefined,'CampaignId':_0xb21cce[_0xe073('0xd8')]||undefined})['catch'](loggerCatch(_0xe073('0x19d')));break;case 0x8:if(_0xb21cce[_0xe073('0xf3')]>=_0x2a52af[_0xe073('0x19e')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countcongestionretry':_0xb21cce['countcongestionretry']+=0x1,'scheduledat':moment()[_0xe073('0xfe')](_0x2a52af[_0xe073('0x19f')],'minutes')[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0xb21cce[_0xe073('0xd4')],'ListId':_0xb21cce['ListId'],'VoiceQueueId':_0xb21cce[_0xe073('0xd7')]||undefined,'CampaignId':_0xb21cce['CampaignId']||undefined})[_0xe073('0xb3')](loggerCatch('[rescheduleContact]\x20[Congestion]'));break;case 0x0:if(_0xb21cce[_0xe073('0xf5')]>=_0x2a52af['dialNoSuchNumberMaxRetry']-0x1){return!![];}else{this[_0xe073('0xc2')]({'active':![],'countnosuchnumberretry':_0xb21cce[_0xe073('0xf5')]+=0x1,'scheduledat':moment()[_0xe073('0xfe')](_0x2a52af[_0xe073('0x1a0')],_0xe073('0x100'))['format'](_0xe073('0x101')),'ContactId':_0xb21cce[_0xe073('0xd4')],'ListId':_0xb21cce[_0xe073('0xd5')],'VoiceQueueId':_0xb21cce[_0xe073('0xd7')]||undefined,'CampaignId':_0xb21cce[_0xe073('0xd8')]||undefined})['catch'](loggerCatch('[rescheduleContact][NoSuchNumber]'));}break;case 0xa:if(_0xb21cce[_0xe073('0xf6')]>=_0x2a52af['dialDropMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0xb21cce[_0xe073('0xf6')]+=0x1,'scheduledat':moment()[_0xe073('0xfe')](_0x2a52af[_0xe073('0x11e')],'minutes')['format'](_0xe073('0x101')),'ContactId':_0xb21cce[_0xe073('0xd4')],'ListId':_0xb21cce[_0xe073('0xd5')],'VoiceQueueId':_0xb21cce[_0xe073('0xd7')]||undefined,'CampaignId':_0xb21cce[_0xe073('0xd8')]||undefined})['catch'](loggerCatch(_0xe073('0x11f')));break;case 0xb:if(_0xb21cce[_0xe073('0xf7')]>=_0x2a52af[_0xe073('0x124')]-0x1){return!![];}this[_0xe073('0xc2')]({'active':![],'countabandonedretry':_0xb21cce[_0xe073('0xf7')]+=0x1,'scheduledat':moment()['add'](_0x2a52af[_0xe073('0x125')],'minutes')[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0xb21cce['ContactId'],'ListId':_0xb21cce[_0xe073('0xd5')],'VoiceQueueId':_0xb21cce[_0xe073('0xd7')]||undefined,'CampaignId':_0xb21cce[_0xe073('0xd8')]||undefined})['catch'](loggerCatch(_0xe073('0x1a1')));break;case 0x13:if(_0xb21cce['countmachineretry']>=_0x2a52af[_0xe073('0xfb')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countmachineretry':_0xb21cce[_0xe073('0xef')]+=0x1,'scheduledat':moment()[_0xe073('0xfe')](_0x2a52af['dialMachineRetryFrequency'],_0xe073('0x100'))[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0xb21cce[_0xe073('0xd4')],'ListId':_0xb21cce[_0xe073('0xd5')],'VoiceQueueId':_0xb21cce['VoiceQueueId']||undefined,'CampaignId':_0xb21cce['CampaignId']||undefined})[_0xe073('0xb3')](loggerCatch(_0xe073('0x102')));break;case 0x14:if(_0xb21cce[_0xe073('0xf8')]>=_0x2a52af[_0xe073('0x1a2')]-0x1){return!![];}this[_0xe073('0xc2')]({'active':![],'countagentrejectretry':_0xb21cce[_0xe073('0xf8')]+=0x1,'scheduledat':moment()['add'](_0x2a52af[_0xe073('0x1a3')],'minutes')[_0xe073('0x7a')](_0xe073('0x101')),'ContactId':_0xb21cce[_0xe073('0xd4')],'ListId':_0xb21cce['ListId'],'VoiceQueueId':_0xb21cce['VoiceQueueId']||undefined,'CampaignId':_0xb21cce['CampaignId']||undefined})[_0xe073('0xb3')](loggerCatch(_0xe073('0x1a4')));break;default:return!![];}};Dialer[_0xe073('0x18')][_0xe073('0x196')]=function(_0x320908,_0x3a7392,_0x18bc79){var _0x20570b=this;var _0x1a27c4=new History(_0x320908);return new BPromise(function(_0x46431f,_0x35134e){if(_[_0xe073('0x39')](_0x3a7392)&&typeof _0x3a7392!=='object'){return _0x35134e(msgResponse(_0xe073('0x1a5'),_0xe073('0x144'),_0xe073('0x1a6')));}if(_[_0xe073('0x39')](_0x18bc79)&&typeof _0x18bc79!==_0xe073('0x166')){return _0x35134e(msgResponse(_0xe073('0x1a5'),_0xe073('0x144'),'evt\x20is\x20undefine'));}switch(_0x18bc79[_0xe073('0x10f')]){case'0':_0x3a7392[_0xe073('0x62')]+=0x1;_0x1a27c4[_0xe073('0xe6')]=0x0;_0x1a27c4['statedesc']='NoSuchNumber';_0x1a27c4[_0xe073('0xf5')]+=0x1;_0x1a27c4[_0xe073('0x107')]+=0x1;ami[_0xe073('0x47')](_0xe073('0x1a7'),ut['buildObj'](_0x320908,_0xe073('0x1a8')));_0x20570b[_0xe073('0xcd')](_0x1a27c4)[_0xe073('0xb3')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x20570b[_0xe073('0x1a9')](0x0,_0x320908,_0x3a7392)){if(_0x1a27c4[_0xe073('0xf5')]>=_0x3a7392[_0xe073('0x1aa')]){_0x20570b[_0xe073('0xfc')](_0x1a27c4,_0x46431f,_0x35134e,'reason\x200\x20no\x20such\x20number....');}else{_0x20570b['stateGlobal'](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1ab'));}}break;case'3':_0x3a7392['outboundNoAnswerCallsDay']+=0x1;_0x1a27c4[_0xe073('0xe6')]=0x3;_0x1a27c4['statedesc']=_0xe073('0x1ac');_0x1a27c4[_0xe073('0xf4')]+=0x1;_0x1a27c4[_0xe073('0x107')]+=0x1;ami[_0xe073('0x47')](_0xe073('0x1ad'),ut['buildObj'](_0x320908,_0xe073('0x1ae')));_0x20570b['createHistory'](_0x1a27c4)[_0xe073('0xb3')](loggerCatch(_0xe073('0x1af')));if(_0x20570b[_0xe073('0x1a9')](0x3,_0x320908,_0x3a7392)){if(_0x1a27c4[_0xe073('0xf4')]>=_0x3a7392[_0xe073('0x198')]){_0x20570b['createStateFinal'](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1b0'));}else{_0x20570b['stateGlobal'](_0x1a27c4,_0x46431f,_0x35134e,'reason\x203\x20ringing\x20no\x20answer');}}break;case'5':_0x3a7392[_0xe073('0x5c')]+=0x1;_0x1a27c4['state']=0x5;_0x1a27c4[_0xe073('0xa9')]='Busy';_0x1a27c4[_0xe073('0xf2')]+=0x1;_0x1a27c4[_0xe073('0x107')]+=0x1;ami[_0xe073('0x47')]('custom:agentbusy',ut[_0xe073('0xf0')](_0x320908,_0xe073('0x1b1')));_0x20570b[_0xe073('0xcd')](_0x1a27c4)[_0xe073('0xb3')](loggerCatch(_0xe073('0x1b2')));if(_0x20570b[_0xe073('0x1a9')](0x5,_0x320908,_0x3a7392)){if(_0x1a27c4[_0xe073('0xf2')]>=_0x3a7392['dialBusyMaxRetry']){_0x20570b['createStateFinal'](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1b3'));}else{_0x20570b[_0xe073('0x108')](_0x1a27c4,_0x46431f,_0x35134e,'reason\x205\x20busy');}}break;case'8':_0x3a7392['outboundCongestionCallsDay']+=0x1;_0x1a27c4[_0xe073('0xe6')]=0x8;_0x1a27c4[_0xe073('0xa9')]=_0xe073('0x1b4');_0x1a27c4[_0xe073('0xf3')]+=0x1;_0x1a27c4[_0xe073('0x107')]+=0x1;ami[_0xe073('0x47')]('custom:agentcongestion',ut[_0xe073('0xf0')](_0x320908,_0xe073('0x1b5')));_0x20570b[_0xe073('0xcd')](_0x1a27c4)[_0xe073('0xb3')](loggerCatch(_0xe073('0x1b6')));if(_0x20570b[_0xe073('0x1a9')](0x8,_0x320908,_0x3a7392)){if(_0x1a27c4['countcongestionretry']>=_0x3a7392[_0xe073('0x19e')]){_0x20570b[_0xe073('0xfc')](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1b7'));}else{_0x20570b[_0xe073('0x108')](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1b7'));}}break;case'11':_0x3a7392[_0xe073('0x1b8')]+=0x1;_0x1a27c4[_0xe073('0xe6')]=0xb;_0x1a27c4[_0xe073('0xa9')]=_0xe073('0x122');_0x1a27c4[_0xe073('0xf7')]+=0x1;_0x1a27c4['countglobal']+=0x1;_0x20570b['createHistory'](_0x1a27c4)[_0xe073('0xb3')](loggerCatch(_0xe073('0x126')));if(_0x20570b[_0xe073('0x1a9')](0xb,_0x320908,_0x3a7392)){if(_0x1a27c4[_0xe073('0xf7')]>=_0x3a7392[_0xe073('0x124')]){_0x20570b[_0xe073('0xfc')](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1b9'));}else{_0x20570b[_0xe073('0x108')](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1b9'));}}break;case'20':_0x3a7392[_0xe073('0x65')]+=0x1;_0x1a27c4['state']=0x14;_0x1a27c4['statedesc']=_0xe073('0x1ba');_0x1a27c4['countagentrejectretry']+=0x1;_0x1a27c4['countglobal']+=0x1;ami['emit']('custom:agentreject',ut[_0xe073('0xf0')](_0x320908,'agentreject'));_0x20570b[_0xe073('0xcd')](_0x1a27c4)['catch'](loggerCatch(_0xe073('0x1bb')));if(_0x20570b[_0xe073('0x1a9')](0x14,_0x320908,_0x3a7392)){if(_0x1a27c4[_0xe073('0xf8')]>=_0x3a7392[_0xe073('0x1a2')]){_0x20570b[_0xe073('0xfc')](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1bc'));}else{_0x20570b[_0xe073('0x108')](_0x1a27c4,_0x46431f,_0x35134e,_0xe073('0x1bc'));}}break;default:_0x3a7392[_0xe073('0x10e')]+=0x1;_0x1a27c4[_0xe073('0xe6')]=0xc;_0x1a27c4['statedesc']=_0x18bc79[_0xe073('0x10f')];_0x20570b[_0xe073('0xcd')](_0x1a27c4)[_0xe073('0xb3')](loggerCatch(_0xe073('0x1bd')));if(_0x20570b[_0xe073('0x1a9')](_0x18bc79['reason'],_0x320908,_0x3a7392)){if(_0x1a27c4['countbusyretry']+_0x1a27c4[_0xe073('0xf3')]+_0x1a27c4[_0xe073('0xf4')]+_0x1a27c4[_0xe073('0xf5')]+_0x1a27c4[_0xe073('0xf6')]+_0x1a27c4[_0xe073('0xf7')]+_0x1a27c4['countmachineretry']+_0x1a27c4[_0xe073('0xf8')]>=_0x3a7392[_0xe073('0xf9')]){_0x20570b['stateGlobal'](_0x1a27c4,_0x46431f,_0x35134e,_0x18bc79[_0xe073('0x10f')]);}else{_0x20570b['createStateFinal'](_0x1a27c4,_0x46431f,_0x35134e,_0x18bc79[_0xe073('0x10f')]);}}}});};Dialer[_0xe073('0x18')][_0xe073('0x108')]=function(_0xfcb031,_0xd6e1ee,_0x4333d7,_0x50fbbe){var _0x3cfdcf=new Final(_0xfcb031);_0x3cfdcf[_0xe073('0xe6')]=0xf;_0x3cfdcf['statedesc']=_0xe073('0x1be');this['createStateFinal'](_0x3cfdcf,_0xd6e1ee,_0x4333d7,_0x50fbbe);};Dialer['prototype'][_0xe073('0xfc')]=function(_0xff7218,_0x34471f,_0x743624,_0x32a2d6){this['moveContactManagedDialer'](_0xff7218)['then'](function(){return _0x34471f(msgResponse(_0xe073('0x1a5'),_0xe073('0xda'),_0x32a2d6));})[_0xe073('0xb3')](function(){return _0x743624(msgResponse('[moveContactManagedDialer][0]','Failure',_0xe073('0x1bf')));});};Dialer[_0xe073('0x18')]['predictive']=function(_0x408ce5){var _0x3c55a2=_0x408ce5[_0xe073('0x1c0')]/0x64;var _0x434dab=_0x408ce5[_0xe073('0x60')]/(_0x408ce5[_0xe073('0x60')]+_0x408ce5[_0xe073('0xe5')]);var _0x25db53=Math[_0xe073('0x1c1')](_0x408ce5[_0xe073('0x6e')]*(_0x408ce5[_0xe073('0x1c2')]/0x64));var _0x42d055=Math[_0xe073('0x1c1')](_0x408ce5['predictiveIntervalAvailable']*(_0x408ce5[_0xe073('0x1c3')]/0x64));var _0x5a3cd0=_0x408ce5[_0xe073('0x4c')]+_0x408ce5[_0xe073('0x51')];var _0x36298f=Math[_0xe073('0x1c4')](_0x408ce5[_0xe073('0x8a')]*_0x408ce5['erlangAbandonmentRate']*_0x408ce5[_0xe073('0x6b')]*_0x408ce5['predictiveIntervalMultiplicativeFactor']);if(_['isUndefined'](_0x408ce5[_0xe073('0x27')])){if(!_[_0xe073('0x39')](_0x408ce5[_0xe073('0x26')])){_0x408ce5[_0xe073('0x26')]=undefined;loggerPredictive[_0xe073('0x98')](_0xe073('0x1c5'),_0xe073('0x1c6'));}if(!_[_0xe073('0x39')](_0x408ce5['handlePredictive'])){loggerPredictive[_0xe073('0x98')]('[startMethodPredictive][StartProgressive]',_0xe073('0x1c7'));clearInterval(_0x408ce5[_0xe073('0x92')]);_0x408ce5[_0xe073('0x92')]=undefined;}_0x408ce5[_0xe073('0x27')]=moment()['format'](_0xe073('0x101'));loggerPredictive[_0xe073('0x7c')](_0x408ce5[_0xe073('0x3b')],_0xe073('0x1c8'),_0x408ce5['startProgressive']);this[_0xe073('0x156')](_0x408ce5,0x1);}else if(ifInterval(_0x408ce5[_0xe073('0x1c9')],_0x408ce5[_0xe073('0x27')])){this['handlePower'](_0x408ce5,0x1);loggerPredictiveCalls[_0xe073('0x7c')]('[startMethodPredictive][StartProgressive][Loop]',_0x408ce5[_0xe073('0x27')],_0x408ce5[_0xe073('0x3b')]);_0x408ce5[_0xe073('0x8a')]=0x0;_0x408ce5[_0xe073('0x1ca')]=0x0;}else if(_0x3c55a2<_0x434dab&&_0x408ce5[_0xe073('0x1cb')]===_0xe073('0x1cc')){freeVariablesPredictive(_0x408ce5);loggerPredictive['info'](_0xe073('0x1cd'),_0xe073('0x1ce'),_0x434dab,_0xe073('0x27'),_0x408ce5[_0xe073('0x3b')]);}else if(_0x36298f<_0x408ce5[_0xe073('0x1ca')]&&_0x408ce5[_0xe073('0x1cb')]==='dropRate'){freeVariablesPredictive(_0x408ce5);loggerPredictive[_0xe073('0x7c')]('[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]',_0xe073('0x1cf'),_0x36298f,_0xe073('0x1d0'),_0x408ce5[_0xe073('0x1ca')],_0xe073('0x27'),_0x408ce5[_0xe073('0x3b')]);}else if(!ifInterval(_0x408ce5[_0xe073('0x1c9')],_0x408ce5[_0xe073('0x27')])&&_[_0xe073('0x39')](_0x408ce5[_0xe073('0x26')])&&!_[_0xe073('0x39')](_0x408ce5['startProgressive'])){_0x408ce5[_0xe073('0x26')]=moment()[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xe073('0x7c')](_0x408ce5[_0xe073('0x3b')],_0xe073('0x1d1'),_0x408ce5[_0xe073('0x26')]);this['averageHandleTime'](_0x408ce5['dialPredictiveInterval'])[_0xe073('0xb9')](this['getDataPredictive'](_0x408ce5))[_0xe073('0xb9')](mergeDataErlangB(_0x408ce5))[_0xe073('0xb9')](this['startMethodPredictive'](_0x408ce5))[_0xe073('0xb3')](loggerCatchPredictive('Predictive\x20after\x20first\x20interval',_0x408ce5));}else if(!ifInterval(_0x408ce5[_0xe073('0x1c9')],_0x408ce5['startPredictive'])){_0x408ce5['predictiveIntervalErlangCallsDroppedCalls']=0x0;_0x408ce5[_0xe073('0x26')]=moment()[_0xe073('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xe073('0x7c')](_0x408ce5[_0xe073('0x3b')],_0xe073('0x1d2'),_0x408ce5['startPredictive']);clearInterval(_0x408ce5[_0xe073('0x92')]);_0x408ce5['handlePredictive']=undefined;this[_0xe073('0xbf')](_0x408ce5[_0xe073('0x1c9')])['then'](this['getDataPredictive'](_0x408ce5))[_0xe073('0xb9')](mergeDataErlangB(_0x408ce5))['then'](this['startMethodPredictive'](_0x408ce5))['catch'](loggerCatchPredictive(_0xe073('0x1d3'),_0x408ce5));}else if(_0x408ce5[_0xe073('0x6e')]&&_0x5a3cd0<_0x408ce5[_0xe073('0x6e')]-_0x42d055){freeVariablesPredictive(_0x408ce5);loggerPredictive[_0xe073('0x7c')](_0x408ce5[_0xe073('0x3b')],_0xe073('0x1d4'),_0x5a3cd0,_0xe073('0x1d5'),_0x408ce5['predictiveIntervalAvailable'],'-',_0x42d055,'=',_0x408ce5['predictiveIntervalAvailable']-_0x42d055,')');}else if(_0x408ce5[_0xe073('0x6e')]&&_0x5a3cd0>_0x408ce5['predictiveIntervalAvailable']+_0x25db53){freeVariablesPredictive(_0x408ce5);loggerPredictive['info'](_0x408ce5[_0xe073('0x3b')],_0xe073('0x1d4'),_0x5a3cd0,_0xe073('0x1d6'),_0x408ce5[_0xe073('0x6e')],'+',_0x25db53,'=',_0x408ce5[_0xe073('0x6e')]+_0x25db53,')');}};Dialer[_0xe073('0x18')][_0xe073('0x1d7')]=function(_0x15c7f0){var _0x260a50=this;return function(_0x20e926){return new BPromise(function(_0x520aa2,_0x5f25c7){_[_0xe073('0x8f')](_0x15c7f0,_0x20e926[0x0]);if(checkGetDataPredictive(_0x20e926[0x0])){var _0x283e31=_0x15c7f0[_0xe073('0x6e')]=_0x15c7f0[_0xe073('0x51')]+_0x15c7f0[_0xe073('0x4c')];var _0x85b456=_0x15c7f0['dialPredictiveInterval']*0x3c;var _0x182df2=_0x20e926[0x0][_0xe073('0x67')]+_0x20e926[0x0]['predictiveIntervalAvgHoldtime'];var _0x449336=(_0x20e926[0x0][_0xe073('0x7e')]+_0x20e926[0x0][_0xe073('0x69')]+_0x20e926[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x20e926[0x0]['predictiveIntervalTotalCalls'];_0x15c7f0[_0xe073('0x6b')]=_0x449336>0x0?_0x449336:0x1;switch(_0x15c7f0[_0xe073('0x1cb')]){case _0xe073('0x1cc'):var _0x514b9e=_0x15c7f0[_0xe073('0x1c0')]/0x64;return _0x260a50['abandonmentRate'](_0x283e31,_0x85b456,_0x182df2,_0x449336,_0x514b9e)[_0xe073('0xb9')](function(_0x568815){return _0x520aa2(_0x568815);});case _0xe073('0x1d8'):var _0x1d5ca7=_0x15c7f0[_0xe073('0x1c0')]/0x64;return _0x260a50[_0xe073('0x1d9')](_0x283e31,_0x85b456,_0x182df2,_0x449336,_0x1d5ca7)[_0xe073('0xb9')](function(_0xf12ea4){return _0x520aa2(_0xf12ea4);});default:return _0x5f25c7(msgResponse(_0xe073('0x1da'),_0xe073('0x144'),_0xe073('0x1db')));}}else{return _0x5f25c7(msgResponse(_0xe073('0x1da'),_0xe073('0x144'),_0xe073('0x1dc')));}});};};Dialer['prototype'][_0xe073('0x1dd')]=function(_0x8457bc){var _0x244988=this;return function(_0x52c168){return new BPromise(function(_0x3c3ac1,_0x33ec8c){_['merge'](_0x8457bc,_0x52c168[0x0]);if(checkGetDataPredictive(_0x52c168[0x0])){loggerPredictive['info'](JSON[_0xe073('0x43')](_0x52c168[0x0]));if(_0x8457bc[_0xe073('0x1cb')]===_0xe073('0x1cc')){return _0x244988['getVoiceQueueRtPauses'](_0x8457bc['id'])['then'](function(_0x4c58b0){var _0x44bef7=_0x8457bc['loggedIn']-_0x4c58b0[0x0][_0xe073('0x1de')];var _0x216d83=_0x8457bc[_0xe073('0x1c9')]*0x3c;var _0x2364e3=_0x52c168[0x0][_0xe073('0x67')]+_0x52c168[0x0][_0xe073('0x66')];var _0x1ada9d=(_0x52c168[0x0][_0xe073('0x7e')]+_0x52c168[0x0]['predictiveIntervalDroppedCallsTimeout']+_0x52c168[0x0][_0xe073('0x68')])/_0x52c168[0x0]['predictiveIntervalTotalCalls'];var _0x4bb14c=_0x8457bc['dialPredictiveOptimizationPercentage']/0x64;_0x8457bc[_0xe073('0x6d')]=_0x4c58b0[0x0][_0xe073('0x1de')]||0x0;_0x8457bc['predictiveIntervalHitRate']=_0x1ada9d>0x0?_0x1ada9d:0x1;return _0x244988['abandonmentRate'](_0x44bef7,_0x216d83,_0x2364e3,_0x1ada9d,_0x4bb14c);})[_0xe073('0xb9')](function(_0x316d6c){return _0x3c3ac1(_0x316d6c);})[_0xe073('0xb3')](function(_0xbd8a2d){return _0x33ec8c(msgResponse(_0xe073('0x1df'),'Failure',JSON[_0xe073('0x43')](_0xbd8a2d)));});}if(_0x8457bc[_0xe073('0x1cb')]==='agentBusyFactor'){return _0x244988[_0xe073('0xc9')](_0x8457bc['id'])[_0xe073('0xb9')](function(_0x5a0c95){var _0x4d58da=_0x8457bc['loggedIn']-_0x5a0c95[0x0]['outboundQueuePauses'];var _0x4d78c5=_0x8457bc['dialPredictiveInterval']*0x3c;var _0x170378=_0x52c168[0x0][_0xe073('0x67')]+_0x52c168[0x0]['predictiveIntervalAvgHoldtime'];var _0x4ed618=(_0x52c168[0x0]['predictiveIntervalAnsweredCalls']+_0x52c168[0x0][_0xe073('0x69')]+_0x52c168[0x0][_0xe073('0x68')])/_0x52c168[0x0][_0xe073('0x6f')];var _0x514fbd=_0x8457bc['dialPredictiveOptimizationPercentage']/0x64;_0x8457bc[_0xe073('0x6d')]=_0x5a0c95[0x0][_0xe073('0x1de')]||0x0;_0x8457bc['predictiveIntervalHitRate']=_0x4ed618>0x0?_0x4ed618:0x1;return _0x244988[_0xe073('0x1d9')](_0x4d58da,_0x4d78c5,_0x170378,_0x4ed618,_0x514fbd);})['then'](function(_0xc014ab){return _0x3c3ac1(_0xc014ab);})[_0xe073('0xb3')](function(_0x17b57c){return _0x33ec8c(msgResponse(_0xe073('0x1df'),_0xe073('0x144'),JSON[_0xe073('0x43')](_0x17b57c)));});}}else{return _0x33ec8c(msgResponse(_0xe073('0x1da'),_0xe073('0x144'),_0xe073('0x1dc')));}});};};Dialer['prototype']['startMethodPredictive']=function(_0x4600f5){var _0x10d0a3=this;return function(){var _0x5bb85b=0x0;var _0x9b33ca=Math['floor'](_0x4600f5['erlangCallToSecond']*0x3e8);if(_0x9b33ca>0x0){_0x9b33ca=_0x9b33ca<0x64?0x64:_0x9b33ca;loggerPredictive[_0xe073('0x7c')](_0x4600f5[_0xe073('0x3b')],_0xe073('0x1e0'),_0x9b33ca,'milliseconds');_0x4600f5[_0xe073('0x92')]=setInterval(function(){_0x10d0a3[_0xe073('0x92')](_0x4600f5);loggerPredictiveCalls[_0xe073('0x7c')](_0xe073('0x1e1'),_0x5bb85b+=0x1);},_0x9b33ca);}else{loggerPredictive['info'](_0x4600f5[_0xe073('0x3b')],_0xe073('0x1e2'));}};};Dialer[_0xe073('0x18')][_0xe073('0x1e3')]=function(_0x3e6a8a,_0xfba39){var _0x380abf=this;return function(_0x3e0efc){if(_[_0xe073('0x40')](_0x3e0efc)){if(_['isNil'](_0xfba39['UserId'])||!_0xfba39['recallme']){if(_0x3e6a8a[_0xe073('0x56')]==='booked'){_0x3e6a8a['queueStatusComplete']=_[_0xe073('0x39')](_0x3e6a8a[_0xe073('0x12f')])?!![]:_0x3e6a8a[_0xe073('0x12f')];var _0x50bf4b=uuid['v4']();_0x380abf['actions'][_0x50bf4b]=new Action(_0x3e6a8a,_0xfba39,_0x50bf4b);loggerBooked[_0xe073('0x7c')]('[booked][checkContactBlack]',_0x50bf4b,'queueStatusComplete:\x20',JSON['stringify'](_0x3e6a8a['queueStatusComplete']),_0xe073('0x1e4'),_0x3e6a8a[_0xe073('0x3b')]);if(_0x3e6a8a[_0xe073('0x12f')]){_0x3e6a8a[_0xe073('0x12f')]=![];_0x380abf[_0xe073('0x29')][_0x380abf[_0xe073('0x22')][_0x50bf4b][_0xe073('0xb4')]]=[];ami[_0xe073('0xb1')]({'actionid':_0x50bf4b,'action':'queuestatus','queue':_0x3e6a8a[_0xe073('0x3b')]})['catch'](function(){_0x380abf[_0xe073('0xb5')](_0x3e6a8a);_0x380abf['rescheduleContact']({'active':![],'ContactId':_0x380abf['actions'][_0x50bf4b][_0xe073('0xd4')],'ListId':_0x380abf[_0xe073('0x22')][_0x50bf4b][_0xe073('0xd5')],'VoiceQueueId':_0x380abf[_0xe073('0x22')][_0x50bf4b][_0xe073('0xd7')]||undefined,'CampaignId':_0x380abf[_0xe073('0x22')][_0x50bf4b][_0xe073('0xd8')]||undefined})[_0xe073('0xb3')](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x380abf[_0xe073('0x22')][_0x50bf4b];});}else{loggerBooked[_0xe073('0x7c')](_0xe073('0x1e5'),JSON[_0xe073('0x43')](_0x3e6a8a[_0xe073('0x12f')]),_0xe073('0x1e4'),_0x3e6a8a[_0xe073('0x3b')]);_0x380abf['updateOriginated'](_0x3e6a8a);_0x380abf[_0xe073('0xc2')]({'active':![],'ContactId':_0x380abf['actions'][_0x50bf4b][_0xe073('0xd4')],'ListId':_0x380abf['actions'][_0x50bf4b][_0xe073('0xd5')],'VoiceQueueId':_0x380abf['actions'][_0x50bf4b][_0xe073('0xd7')]||undefined,'CampaignId':_0x380abf[_0xe073('0x22')][_0x50bf4b][_0xe073('0xd8')]||undefined})[_0xe073('0xb3')](loggerCatch(_0xe073('0x1e6')));delete _0x380abf[_0xe073('0x22')][_0x50bf4b];}}else{return _0x380abf[_0xe073('0x165')](_0x3e6a8a,_0xfba39);}}else{if(getDiff(_0xfba39[_0xe073('0x1e7')])<_0x3e6a8a[_0xe073('0x1e8')]*0x3c){if(_0xfba39[_0xe073('0x1e9')]&&!_0xfba39[_0xe073('0x1e9')][_0xe073('0x1ea')]){_0x380abf[_0xe073('0x94')][_0xe073('0x132')](_0xfba39['id'])[_0xe073('0x1b')](function(){_0x380abf[_0xe073('0xb5')](_0x3e6a8a);});}else{_0x380abf['unlockContact']({'active':![]},_0xfba39['id'],0x1)[_0xe073('0x1b')](function(){_0x380abf[_0xe073('0xb5')](_0x3e6a8a);});}}else{_0x3e6a8a[_0xe073('0x64')]+=0x1;_0x380abf[_0xe073('0xb5')](_0x3e6a8a);if(_0x3e6a8a[_0xe073('0x1eb')]){_0x380abf[_0xe073('0xc2')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0xfba39['ContactId'],'ListId':_0xfba39[_0xe073('0xd5')],'VoiceQueueId':_0xfba39[_0xe073('0xd7')]||undefined,'CampaignId':_0xfba39[_0xe073('0xd8')]||undefined})[_0xe073('0xb3')](loggerCatch('[rescheduleContact][dialRecallInQueue]'));_0x380abf[_0xe073('0xcd')](createObjHistory(_0x3e6a8a,_0xfba39,'RECALLINQUEUE',0x17,_0xe073('0x1ec')))[_0xe073('0xb3')](loggerCatch(_0xe073('0x1ed')));}else{_0x380abf[_0xe073('0xd3')](createObjHistory(_0x3e6a8a,_0xfba39,'RECALLFAILEDTIMEOUT',0x16,'RecallFailedTimeout'),'[Originate][HistoryRecallClose][historyCatch]',_0xe073('0x1ee'));}}}}else{_0x3e6a8a[_0xe073('0x5b')]+=0x1;_0x380abf[_0xe073('0xd3')](createObjHistory(_0x3e6a8a,_0xfba39,_0xe073('0x1ef'),0xd,_0xe073('0x1f0')),_0xe073('0x1f1'),'[Originate][MoveBlacklist]');throw _0xe073('0x1f2');}};};Dialer['prototype']['handleIvr']=function(_0x209cdf){var _0x151faf=this;var _0x106db6=_0x209cdf[_0xe073('0x1f3')]-_0x209cdf[_0xe073('0x70')]-_0x209cdf[_0xe073('0xc5')];emitCampaignSummary(_0x209cdf);if(_0x106db6>0x0){if(_0x106db6>this['maxNumberOriginate']){_0x106db6=this['maxNumberOriginate'];}_0x209cdf['temp']+=_0x106db6;this[_0xe073('0xc7')](_0x209cdf['id'],_0x106db6,_0x209cdf[_0xe073('0x1f4')],_0x209cdf)['then'](function(_0x2a8b56){_0x209cdf[_0xe073('0xc5')]-=_0x106db6;_0x209cdf[_0xe073('0xc5')]=_0x209cdf['temp']>0x0?_0x209cdf['temp']:0x0;if(!checkContactEmpty(_0x2a8b56)){_0x209cdf[_0xe073('0x3c')]='AVAILABLE_CONTACTS_FINISHED';logger[_0xe073('0x7c')](_0xe073('0x1f5')+_0x209cdf['name']);}else{_0x209cdf[_0xe073('0x70')]+=_0x2a8b56[_0xe073('0x9b')];_0x209cdf[_0xe073('0x3c')]=_0xe073('0x1f6');for(var _0x253880=0x0;_0x253880<_0x2a8b56[_0xe073('0x9b')];_0x253880+=0x1){_0x209cdf[_0xe073('0x1f7')]+=0x1;if(_[_0xe073('0xb0')](_0x2a8b56[_0x253880])||_[_0xe073('0xb0')](_0x2a8b56[_0x253880][_0xe073('0x169')])||_[_0xe073('0xb0')](_0x2a8b56[_0x253880][_0xe073('0x169')]['phone'])){_0x151faf[_0xe073('0xd1')](_0xe073('0x1f8'),_0x209cdf,_0x2a8b56[_0x253880]);}else{_0x151faf['checkIsBlackListIvr'](_[_0xe073('0x12d')](_0x2a8b56[_0x253880],[_0xe073('0xd8'),_0xe073('0x1f9')]))[_0xe073('0xb9')](_0x151faf[_0xe073('0x1e3')](_0x209cdf,_0x2a8b56[_0x253880]))[_0xe073('0xb3')](_0x151faf[_0xe073('0x1fa')](_0xe073('0x1fb'),_0x209cdf));}}}})['catch'](loggerGetContactDialer(_0xe073('0x1fc'),_0x209cdf,_0x106db6));}};Dialer[_0xe073('0x18')]['handlePower']=function(_0x39c699,_0x59af0c){var _0xc9db9c=this;var _0x363f2b=[];var _0x49daf6=_0x59af0c>=0x1?_0x59af0c:0x1;if(_0x39c699[_0xe073('0x56')]==='booked'){_0x49daf6=0x1;}var _0x2409fc=Math[_0xe073('0x1c4')](_0x39c699[_0xe073('0x4c')]*_0x49daf6)-_0x39c699[_0xe073('0x70')]-_0x39c699[_0xe073('0xc5')];emitVoiceQueueSummary(_0x39c699);if(_0x39c699[_0xe073('0x1fd')]>0x0){var _0xa35fcf=_0x39c699[_0xe073('0x1fd')]-_0x39c699[_0xe073('0x70')]-_0x39c699[_0xe073('0x51')]-_0x39c699[_0xe073('0xc5')]-_0x39c699[_0xe073('0x4e')];if(_0x2409fc>_0xa35fcf){_0x2409fc=_0xa35fcf;}}if(_0x2409fc>0x0){if(_0x39c699[_0xe073('0x56')]==='booked'){_0x2409fc=0x1;}if(_0x2409fc>this[_0xe073('0x20')]){_0x2409fc=this[_0xe073('0x20')];}_0x39c699['temp']+=_0x2409fc;for(var _0x1971ad in this['agents']){if(typeof this[_0xe073('0x1e')][_0x1971ad]!==_0xe073('0x9c')){if(this[_0xe073('0x1e')][_0x1971ad][_0xe073('0xe6')]==='not_inuse'&&this[_0xe073('0x1e')][_0x1971ad][_0xe073('0xb2')]===_0xe073('0xdd')){_0x363f2b[_0xe073('0x12c')](this[_0xe073('0x1e')][_0x1971ad]['id']);}}}this[_0xe073('0xc4')](_0x39c699['id'],_0x363f2b,_0x2409fc,_0x39c699[_0xe073('0x1f4')],_0x39c699)[_0xe073('0xb9')](function(_0x2e56b6){_0x39c699[_0xe073('0xc5')]-=_0x2409fc;_0x39c699[_0xe073('0xc5')]=_0x39c699[_0xe073('0xc5')]>0x0?_0x39c699[_0xe073('0xc5')]:0x0;if(!checkContactEmpty(_0x2e56b6)){_0xc9db9c[_0xe073('0xb7')](_0x39c699)[_0xe073('0xb9')](sendMessageReschedule(_0x39c699))[_0xe073('0xb3')](loggerCatch('[countReScheduled]\x20'));}else{_0x39c699[_0xe073('0x70')]+=_0x2e56b6[_0xe073('0x9b')];_0x39c699[_0xe073('0x3c')]=_0x39c699[_0xe073('0x56')]==='booked'?_0xe073('0x1fe'):'RUNNING';for(var _0x1f9733=0x0;_0x1f9733<_0x2e56b6[_0xe073('0x9b')];_0x1f9733+=0x1){if(_[_0xe073('0xb0')](_0x2e56b6[_0x1f9733])||_[_0xe073('0xb0')](_0x2e56b6[_0x1f9733][_0xe073('0x169')])||_[_0xe073('0xb0')](_0x2e56b6[_0x1f9733][_0xe073('0x169')]['phone'])){_0xc9db9c['emptyContact'](_0xe073('0x1f8'),_0x39c699,_0x2e56b6[_0x1f9733]);}else{_0xc9db9c['checkIsBlackList'](_[_0xe073('0x12d')](_0x2e56b6[_0x1f9733],[_0xe073('0xd7'),'Contact.phone']))[_0xe073('0xb9')](_0xc9db9c[_0xe073('0x1e3')](_0x39c699,_0x2e56b6[_0x1f9733]))['catch'](_0xc9db9c[_0xe073('0x1fa')](_0xe073('0x1f8'),_0x39c699));}}}})['catch'](loggerGetContactDialer(_0xe073('0x1ff'),_0x39c699,_0x2409fc));}};Dialer[_0xe073('0x18')][_0xe073('0x92')]=function(_0x6c206f){if(_0x6c206f['dialLimitQueue']>0x0){var _0x2d51bd=_0x6c206f['dialLimitQueue']-_0x6c206f[_0xe073('0x70')]-_0x6c206f[_0xe073('0x51')];if(_0x2d51bd>0x0){this[_0xe073('0x200')](_0x6c206f);}else{loggerPredictiveCalls['info'](_0xe073('0x201'));}}else{this[_0xe073('0x200')](_0x6c206f);}};Dialer['prototype'][_0xe073('0x200')]=function(_0x21d1ce){var _0x115016=this;var _0x3f2b2b=[];_0x21d1ce['originated']+=0x1;for(var _0x2e0fc9 in this[_0xe073('0x1e')]){if(typeof this['agents'][_0x2e0fc9]!==_0xe073('0x9c')){if(this['agents'][_0x2e0fc9][_0xe073('0xe6')]===_0xe073('0x202')&&this[_0xe073('0x1e')][_0x2e0fc9][_0xe073('0xb2')]===_0xe073('0xdd')){_0x3f2b2b[_0xe073('0x12c')](this[_0xe073('0x1e')][_0x2e0fc9]['id']);}}}this[_0xe073('0xc4')](_0x21d1ce['id'],_0x3f2b2b,0x1,_0x21d1ce[_0xe073('0x1f4')],_0x21d1ce)[_0xe073('0xb9')](function(_0x334c08){if(!checkContactEmpty(_0x334c08)){checkContactLowerLimitOriginate(_0x21d1ce,0x1,0x0);_0x115016[_0xe073('0xb7')](_0x21d1ce)[_0xe073('0xb9')](sendMessageReschedule(_0x21d1ce))[_0xe073('0xb3')](loggerCatch(_0xe073('0xba')));}else{_0x21d1ce['message']='RUNNING';if(_[_0xe073('0xb0')](_0x334c08[0x0])||_[_0xe073('0xb0')](_0x334c08[0x0][_0xe073('0x169')])||_['isNil'](_0x334c08[0x0]['Contact']['phone'])){_0x115016[_0xe073('0xd1')](_0xe073('0x1f8'),_0x21d1ce,_0x334c08[0x0]);}else{_0x115016[_0xe073('0xbb')](_['pick'](_0x334c08[0x0],[_0xe073('0xd7'),'Contact.phone']))[_0xe073('0xb9')](_0x115016[_0xe073('0x1e3')](_0x21d1ce,_0x334c08[0x0]))[_0xe073('0xb3')](_0x115016[_0xe073('0x1fa')](_0xe073('0x203'),_0x21d1ce));}}})[_0xe073('0xb3')](loggerGetContactDialer('[getContactDialerPredictive]',_0x21d1ce,0x1));emitVoiceQueueSummary(_0x21d1ce);};Dialer[_0xe073('0x18')][_0xe073('0x204')]=function(_0x464447,_0x55c7f2,_0x4358a7,_0xce4902,_0x506281,_0x1c8516){loggerPredictive[_0xe073('0x7c')](_0xe073('0x205'));loggerPredictive['info'](_0xe073('0x206'),_0x464447);loggerPredictive[_0xe073('0x7c')](_0xe073('0x207'),_0x55c7f2);loggerPredictive[_0xe073('0x7c')]('Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4358a7);loggerPredictive[_0xe073('0x7c')](_0xe073('0x208'),_0xce4902);loggerPredictive[_0xe073('0x7c')]('Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x506281);loggerPredictive['info']('---------------------------');return new BPromise(function(_0x3da8b5,_0x1ad190){if(_0x464447<=0x0||isNaN(_0x464447)){return _0x1ad190(msgResponse('[abandonmentRate]',_0xe073('0x209'),_0xe073('0x20a')+_0x464447));}if(_0x4358a7<=0x0||isNaN(_0x4358a7)){return _0x1ad190(msgResponse(_0xe073('0x20b'),_0xe073('0x209'),_0xe073('0x20c')+_0x4358a7));}if(_0xce4902<=0x0||isNaN(_0xce4902)){return _0x1ad190(msgResponse('[abandonmentRate]',_0xe073('0x209'),_0xe073('0x20d')+_0xce4902));}if(_0x55c7f2<=0x0||isNaN(_0x55c7f2)){return _0x1ad190(msgResponse(_0xe073('0x20b'),_0xe073('0x209'),'interval\x20=\x20'+_0x55c7f2));}if(_0x506281<=0x0||isNaN(_0x506281)){return _0x1ad190(msgResponse(_0xe073('0x20b'),_0xe073('0x209'),'Amax\x20=\x20'+_0x506281));}_0x1c8516=_0x1c8516||0x0;var _0x283616=0x1/_0x4358a7;var _0x537098=0x0;var _0x5dfcb6=0x0;var _0x15fed3=0x0;var _0x8140e2=0x0;for(var _0x313f58=0x0;_0x15fed3<_0x506281;_0x313f58+=0x1){_0x5dfcb6=_0x313f58/_0x55c7f2;_0x537098=(_0xce4902*_0x5dfcb6+_0x1c8516)/_0x283616;_0x15fed3=erlangb(_0x537098,_0x464447);_0x8140e2=_0x537098/_0x464447*(0x1-erlangb(_0x537098,_0x464447));}return _0x3da8b5({'erlangCalls':_0x313f58,'erlangCallToSecond':_0x55c7f2/_0x313f58,'erlangAbandonmentRate':_0x15fed3,'erlangBusyFactor':_0x8140e2});});};Dialer[_0xe073('0x18')][_0xe073('0x1d9')]=function(_0x364ea9,_0x19a9ca,_0x17592f,_0x50b26e,_0x2bfb43,_0x3562d8){loggerPredictive[_0xe073('0x7c')](_0xe073('0x20e'));loggerPredictive[_0xe073('0x7c')](_0xe073('0x206'),_0x364ea9);loggerPredictive['info']('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x19a9ca);loggerPredictive[_0xe073('0x7c')](_0xe073('0x20f'),_0x17592f);loggerPredictive[_0xe073('0x7c')](_0xe073('0x208'),_0x50b26e);loggerPredictive[_0xe073('0x7c')](_0xe073('0x210'),_0x2bfb43);loggerPredictive[_0xe073('0x7c')](_0xe073('0x83'));return new BPromise(function(_0x299f2f,_0x1bb388){if(_0x364ea9<=0x0||isNaN(_0x364ea9)){return _0x1bb388(msgResponse('[busyFactor]','Error',_0xe073('0x20a')+_0x364ea9));}if(_0x17592f<=0x0||isNaN(_0x17592f)){return _0x1bb388(msgResponse(_0xe073('0x211'),'Error','Ts\x20=\x20'+_0x17592f));}if(_0x50b26e<=0x0||isNaN(_0x50b26e)){return _0x1bb388(msgResponse(_0xe073('0x211'),_0xe073('0x209'),'p\x20=\x20'+_0x50b26e));}if(_0x19a9ca<=0x0||isNaN(_0x19a9ca)){return _0x1bb388(msgResponse(_0xe073('0x211'),_0xe073('0x209'),'interval\x20=\x20'+_0x19a9ca));}if(_0x2bfb43<=0x0||isNaN(_0x2bfb43)){return _0x1bb388(msgResponse('[busyFactor]',_0xe073('0x209'),_0xe073('0x212')+_0x2bfb43));}_0x3562d8=_0x3562d8||0x0;var _0x2a95a9=0x1/_0x17592f;var _0x1bc8a5=0x0;var _0x42c170=0x0;var _0x54aad3=0x0;var _0xd3a83a=0x0;for(var _0x4fd31b=0x0;_0xd3a83a<_0x2bfb43;_0x4fd31b+=0x1){_0x42c170=_0x4fd31b/_0x19a9ca;_0x1bc8a5=(_0x50b26e*_0x42c170+_0x3562d8)/_0x2a95a9;_0x54aad3=erlangb(_0x1bc8a5,_0x364ea9);_0xd3a83a=_0x1bc8a5/_0x364ea9*(0x1-erlangb(_0x1bc8a5,_0x364ea9));}return _0x299f2f({'erlangCalls':_0x4fd31b,'erlangCallToSecond':_0x19a9ca/_0x4fd31b,'erlangAbandonmentRate':_0x54aad3,'erlangBusyFactor':_0xd3a83a});});};module[_0xe073('0x213')]=Dialer;
\ No newline at end of file
+var _0x4fef=['AnswerAGI','AGI','cause-txt','Unknow','reason','agent','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','[syncAgentComplete]','syncAgentConnect','answertime','queueCallerAbandonCreateState','syncQueueCallerAbandon','droptime','responsetime','dialQueueTimeout','Drop','dropreason','TIMEOUT','dialDropMaxRetry','[rescheduleContact][Drop]','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','CALLEREXIT','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[rescheduleContact][Abandoned]','Abandoned','[syncAgentComplete][createHistory][11]','syncQueueMember','actionid','locked','stateinterface','rrmemory','queueBooked','push','paused','queueStatusComplete','syncQueueStatusComplete','run','idHopper','[Catch][Preview][syncQueueStatusComplete]','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','Agent:\x20','contactAgent-idHopper:\x20','[booked][RR][finaly]','[booked][unlock2]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','checkIsTrunkReachable','isTrunkReachable','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','ifTime','checkIfTimeIntervals','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','timezones','TIMEZONE_UNKNOW','\x20Timezone\x20unknow\x20','iftime\x20%s,%s','interval','content','indexOf','command','true','all','some','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','checkDialMethod','progressive','handlePower','power','dialPowerLevel','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','checkIfTime','dialGlobalInterval','dialTimezone','\x5cw{0,','pow','replace','match','actionOriginate','originate','Contact','phone','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','dialQueueOptions','ACTIVE','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDGREETING','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','dialAMDMinWordLength','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','createdAt','%s%s','XMD-','toUpper','callerid','dialRandomLastDigitCallerIdNumber','dialOriginateCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','SIP/%s/%s%s','dialCutDigit','substring','TrunkBackup','trim','from-sip','OriginateError','[originate][error]','originate\x20action\x20Error','getQueue','callProgressDetecting','[callProgressDetecting]\x20','checkRetriveMax','countbusyretry','countnoanswerretry','dialNoAnswerRetryFrequency','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','dialCongestionRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropRetryFrequency','dialAgentRejectMaxRetry','[rescheduleContact][AgentReject]','object','entity\x20is\x20undefine','nosuchnumber','reason\x200\x20no\x20such\x20number....','noanswer','[syncAgentComplete][createHistory][3]','dialNoAnswerMaxRetry','Busy','busy','reason\x205\x20busy','Congestion','custom:agentcongestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','reason\x2011\x20abandoned','AgentReject','agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','[callProgressDetecting]','[moveContactManagedDialer][0]','contact\x20not\x20moved','round','predictiveIntervalMinThreshold','predictiveIntervalHitRate','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','Dropped\x20calls\x20day','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Max\x20Drop\x20','started\x20in\x20predictive\x20at','averageHandleTime','recalculate\x20predictive\x20at','getDataPredictive','startMethodPredictive',')\x20are\x20less\x20than\x20threshold\x20(','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20more\x20than\x20threshold\x20(','dialPredictiveOptimizationPercentage','abandonmentRate','agentBusyFactor','busyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','floor','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','recallme','[booked][checkContactBlack]','queueStatusComplete:\x20','Queue:\x20','queuestatus','[unlockOriginate][syncQueueStatusComplete]','[booked][checkContactBlack][else]','Agent','voicePause','dialRecallInQueue','RECALLINQUEUE','RecallInQueue','RECALLFAILEDTIMEOUT','RecallFailedTimeout','[Originate][HistoryRecallClose]','BLACKLIST','[Originate][historyBlacklist]','[Originate][MoveBlacklist]','inBlackList','limitCalls','getContactDialerIvr','dialOrderByScheduledAt','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','[actionOriginate]\x20','Contact.phone','loggerHandler','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','not_inuse','[getContactDialer2]','[handlePredictive][limitChannel]','[getContactDialerPredictive]','--------\x20Drop\x20Rate\x20--------','M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[abandonmentRate]','m\x20=\x20','Ts\x20=\x20','p\x20=\x20','interval\x20=\x20','----\x20Agent\x20Busy\x20Factor\x20----','P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','Umin\x20=\x20','exports','util','lodash','uuid','md5','ioredis','../preview/util/util','../../../config/environment/','../../../config/logger','dialer','booked','predictive','syncQueueSummary','../ami','redis','defaults','localhost','socket.io-emitter','../rpc/cmHopper','../rpc/cmHopperBlack','../rpc/voiceQueueRt','./action','./history','./final','./queueCallerAbandon','./hangup','env','127.0.0.1','roundrobin','prototype','enqueue','tail','finally','voiceQueues','agents','trunks','maxNumberOriginate','channels','actions','contactsId','uniqueId','optionPredictive','startPredictive','startProgressive','ivrOriginated','queueBookedRR','queuecallerabandon','originateresponse','syncOriginateResponse','bind','agentcomplete','syncAgentComplete','hangup','syncHangup','newexten','syncNewExten','varset','syncVarSet','loopCampaigns','loopClearZombieChannels','message','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','\x20NOT\x20Active','Interval','INTERVAL_IS_NULL','\x20INTERVAL_IS_NULL','isEmpty','Intervals','[ifTime][Action]','Error','milliseconds','seconds','emit','outbound','strategy','answered','loggedIn','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalMultiplicativeFactor','predictiveIntervalAvailable','predictiveIntervalTotalCalls','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','Trunk','stringify','format','voice:queue:%s','voice_queue:save','type','ivr','campaign:save','info','-----\x20Stats\x20Predictive\x20---','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','---------\x20ErlangB\x20---------','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','diff','isUndefined','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','preview','string','\x22%s\x22\x20<%s>','error','inspect','stack','length','originated','undefined','[decremetOriginate]\x20object\x20originated\x20is\x20negative','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','contacts','AVAILABLE_CONTACTS_FINISHED','waiting','pTalking','available','IS_DISACTIVED','[syncQueueSummary]\x20Campaign\x20Queue:\x20','is\x20disactive','sendMessageOneNotActive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','state','endtime','starttime','clearZombieChannels','[uniqueid]','[actions]','sequence','isNil','Action','status','channel','catch','updateOriginated','queue','campaigns','countReScheduled','resolve','then','[countReScheduled]\x20','checkIsBlackList','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','avgHandleTime','rescheduleContact','[rescheduleContact]\x20','unlockContact','getContactDialer','temp','[getContactDialer]\x20','getVoiceQueueRtPauses','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','emptyContact','merge','pick','ContactId','UserId','VoiceQueueId','CampaignId','[emptyContact][createHistory]','[emptyContact]','isSuccess','Success','active','SIP/%s','reachable','unmonitored','saveInDb','uniqueid','variable','amdstatus','xcally-motion-dialer','dialAMDActive','value','HANGUP','outboundAnswerCallsDay','statedesc','HangupInAMD','membername','AMD','custom:amd','buildObj','amd','[syncHangupInAMD]','MACHINE','Machine','countmachineretry','countglobal','[syncAgentComplete][createHistory][0]','countcongestionretry','countnosuchnumberretry','countdropretry','countabandonedretry','countagentrejectretry','stateGlobal','reason19\x20machine....','createStateFinal','reason\x2019\x20machine....','add','ListId','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','dialGlobalMaxRetry','dialMachineMaxRetry','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','[rescheduleContact][Machine]','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','[syncHangupIvr]','dialQueueProject'];(function(_0x20f1fd,_0xdf9c4e){var _0x56eb37=function(_0x46a260){while(--_0x46a260){_0x20f1fd['push'](_0x20f1fd['shift']());}};_0x56eb37(++_0xdf9c4e);}(_0x4fef,0x10f));var _0xf4fe=function(_0x45bd40,_0x582be3){_0x45bd40=_0x45bd40-0x0;var _0x567cd3=_0x4fef[_0x45bd40];return _0x567cd3;};'use strict';var util=require(_0xf4fe('0x0'));var _=require(_0xf4fe('0x1'));var BPromise=require('bluebird');var uuid=require(_0xf4fe('0x2'));var moment=require('moment');var rr=require('rr');var md5=require(_0xf4fe('0x3'));var Redis=require(_0xf4fe('0x4'));var ut=require(_0xf4fe('0x5'));var config=require(_0xf4fe('0x6'));var logger=require(_0xf4fe('0x7'))(_0xf4fe('0x8'));var loggerBooked=require(_0xf4fe('0x7'))(_0xf4fe('0x9'));var loggerPredictive=require('../../../config/logger')(_0xf4fe('0xa'));var loggerPredictiveCalls=require(_0xf4fe('0x7'))('predictiveCalls');var loggerSyncQueueSummary=require(_0xf4fe('0x7'))(_0xf4fe('0xb'));var ami=require(_0xf4fe('0xc'));config[_0xf4fe('0xd')]=_[_0xf4fe('0xe')](config[_0xf4fe('0xd')],{'host':_0xf4fe('0xf'),'port':0x18eb});var io=require(_0xf4fe('0x10'))(new Redis(config['redis']));var cmHopper=require(_0xf4fe('0x11'));var cmHopperHistory=require('../rpc/cmHopperHistory');var cmHopperBlack=require(_0xf4fe('0x12'));var voiceQueueRt=require(_0xf4fe('0x13'));var Action=require(_0xf4fe('0x14'));var History=require(_0xf4fe('0x15'));var Final=require(_0xf4fe('0x16'));var AgentComplete=require('./agentComplete');var QueueCallerAbandon=require(_0xf4fe('0x17'));var Hangup=require(_0xf4fe('0x18'));var ipAgi=process[_0xf4fe('0x19')]['XCALLY_IP_AGI']||_0xf4fe('0x1a');var strategy={'rrmemory':'rrmemory','roundrobin':_0xf4fe('0x1b')};var Sequence=function(){};Sequence[_0xf4fe('0x1c')][_0xf4fe('0x1d')]=function(_0x4eb042){this[_0xf4fe('0x1e')]=this[_0xf4fe('0x1e')]?this['tail'][_0xf4fe('0x1f')](_0x4eb042):_0x4eb042();};function Dialer(_0x362e4d,_0x3493cd){this['sequence']=new Sequence();this['preview']=_0x3493cd;this[_0xf4fe('0x20')]=_0x362e4d[_0xf4fe('0x20')];this['campaigns']=_0x362e4d['campaigns'];this[_0xf4fe('0x21')]=_0x362e4d[_0xf4fe('0x21')];this[_0xf4fe('0x22')]=_0x362e4d[_0xf4fe('0x22')];this[_0xf4fe('0x23')]=config[_0xf4fe('0x23')]||0x2;this[_0xf4fe('0x24')]={};this[_0xf4fe('0x25')]={};this[_0xf4fe('0x26')]={};this[_0xf4fe('0x27')]={};this[_0xf4fe('0x28')]={};this[_0xf4fe('0x29')]={};this[_0xf4fe('0x2a')]={};this[_0xf4fe('0x2b')]={};this['queueBooked']={};this[_0xf4fe('0x2c')]={};ami['on']('agentconnect',this['syncAgentConnect']['bind'](this));ami['on'](_0xf4fe('0x2d'),this['syncQueueCallerAbandon']['bind'](this));ami['on'](_0xf4fe('0x2e'),this[_0xf4fe('0x2f')][_0xf4fe('0x30')](this));ami['on'](_0xf4fe('0x31'),this[_0xf4fe('0x32')][_0xf4fe('0x30')](this));ami['on']('custom:queuesummary',this[_0xf4fe('0xb')][_0xf4fe('0x30')](this));ami['on'](_0xf4fe('0x33'),this[_0xf4fe('0x34')][_0xf4fe('0x30')](this));ami['on'](_0xf4fe('0x35'),this[_0xf4fe('0x36')]['bind'](this));ami['on'](_0xf4fe('0x37'),this[_0xf4fe('0x38')][_0xf4fe('0x30')](this));ami['on']('queuemember',this['syncQueueMember'][_0xf4fe('0x30')](this));ami['on']('queuestatuscomplete',this['syncQueueStatusComplete'][_0xf4fe('0x30')](this));this[_0xf4fe('0x39')]();this[_0xf4fe('0x3a')]();}function isNotNull(_0x1ffadb){return _0x1ffadb!==null&&!_['isUndefined'](_0x1ffadb);}function checkIsLoggedIn(_0x50a6a3,_0x4b4832){return function(){if(_0x4b4832<=0x0){_0x50a6a3[_0xf4fe('0x3b')]='AGENTS_NOT_LOGGED';throw _0x50a6a3[_0xf4fe('0x3c')]+_0xf4fe('0x3d');}};}function isActive(_0x394785){return _0x394785;}function checkIsActive(_0x1e7fbd,_0x171f83){return function(){if(!isActive(_0x171f83)){_0x1e7fbd[_0xf4fe('0x3b')]=_0xf4fe('0x3e');throw _0x1e7fbd[_0xf4fe('0x3c')]+_0xf4fe('0x3f');}};}function checkInterval(_0x1d65c6){return function(){if(!isNotNull(_0x1d65c6[_0xf4fe('0x40')])){_0x1d65c6[_0xf4fe('0x3b')]=_0xf4fe('0x41');throw _0x1d65c6['name']+_0xf4fe('0x42');}if(!isNotNull(_0x1d65c6[_0xf4fe('0x40')]['Intervals'])){_0x1d65c6[_0xf4fe('0x3b')]=_0xf4fe('0x41');throw _0x1d65c6['name']+_0xf4fe('0x42');}if(!isNotNull(_[_0xf4fe('0x43')](_0x1d65c6[_0xf4fe('0x40')][_0xf4fe('0x44')]))){_0x1d65c6[_0xf4fe('0x3b')]=_0xf4fe('0x41');throw _0x1d65c6['name']+_0xf4fe('0x42');}};}function msgResponse(_0x10f729,_0x584be8,_0x21034d){return{'action':_0x10f729,'response':_0x584be8,'message':_0x21034d,'stack':_0x21034d};}function myreject(_0x2d97fd){return function(_0x35fed3){return _0x2d97fd(msgResponse(_0xf4fe('0x45'),_0xf4fe('0x46'),JSON['stringify'](_0x35fed3)));};}function getSeconds(_0x572a19,_0x40d1b3){var _0x66db2d=moment(_0x572a19)['milliseconds'](0x0);var _0x7454ee=moment(_0x40d1b3)[_0xf4fe('0x47')](0x0);return _0x66db2d['diff'](_0x7454ee,_0xf4fe('0x48'));}function emit(_0x5e2948,_0x5511a8,_0x392729){io['to'](_0x5e2948)[_0xf4fe('0x49')](_0x5511a8,_0x392729);}function emitVoiceQueueSummary(_0x75baf4){if(_0x75baf4['type']===_0xf4fe('0x4a')){var _0x3ffbe5={'id':_0x75baf4['id'],'name':_0x75baf4[_0xf4fe('0x3c')],'strategy':_0x75baf4[_0xf4fe('0x4b')],'answered':_0x75baf4[_0xf4fe('0x4c')],'available':_0x75baf4['available'],'loggedIn':_0x75baf4[_0xf4fe('0x4d')],'pTalking':_0x75baf4['pTalking'],'sumBillable':_0x75baf4['sumBillable'],'sumDuration':_0x75baf4[_0xf4fe('0x4e')],'sumHoldTime':_0x75baf4[_0xf4fe('0x4f')]||0x0,'talking':_0x75baf4[_0xf4fe('0x50')],'total':_0x75baf4[_0xf4fe('0x51')],'type':_0x75baf4['type'],'unmanaged':_0x75baf4[_0xf4fe('0x52')],'abandoned':_0x75baf4[_0xf4fe('0x53')],'waiting':_0x75baf4['waiting'],'loggedInDb':_0x75baf4[_0xf4fe('0x54')],'dialActive':_0x75baf4[_0xf4fe('0x55')],'dialMethod':_0x75baf4[_0xf4fe('0x56')],'dialOriginateCallerIdName':_0x75baf4[_0xf4fe('0x57')],'dialOriginateCallerIdNumber':_0x75baf4['dialOriginateCallerIdNumber'],'dialOriginateTimeout':_0x75baf4[_0xf4fe('0x58')],'dialPrefix':_0x75baf4[_0xf4fe('0x59')],'outboundAnswerAgiCallsDay':_0x75baf4[_0xf4fe('0x5a')],'outboundAnswerCallsDay':_0x75baf4['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x75baf4[_0xf4fe('0x5b')],'outboundBusyCallsDay':_0x75baf4[_0xf4fe('0x5c')],'outboundCongestionCallsDay':_0x75baf4[_0xf4fe('0x5d')],'outboundDropCallsDayACS':_0x75baf4[_0xf4fe('0x5e')],'outboundDropCallsDayCallersExit':_0x75baf4['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x75baf4[_0xf4fe('0x5f')],'outboundNoAnswerCallsDay':_0x75baf4[_0xf4fe('0x60')],'outboundNoSuchCallsDay':_0x75baf4[_0xf4fe('0x61')],'outboundOriginateFailureCallsDay':_0x75baf4[_0xf4fe('0x62')],'outboundReCallsDay':_0x75baf4[_0xf4fe('0x63')],'outboundRejectCallsDay':_0x75baf4['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x75baf4[_0xf4fe('0x64')],'predictiveIntervalAnsweredCalls':_0x75baf4[_0xf4fe('0x65')],'predictiveIntervalAvgHoldtime':_0x75baf4[_0xf4fe('0x66')],'predictiveIntervalAvgTalktime':_0x75baf4[_0xf4fe('0x67')],'predictiveIntervalDroppedCallsCallersExit':_0x75baf4[_0xf4fe('0x68')],'predictiveIntervalDroppedCallsTimeout':_0x75baf4[_0xf4fe('0x69')],'predictiveIntervalErlangCalls':_0x75baf4[_0xf4fe('0x6a')],'predictiveIntervalErlangCallsDroppedCalls':_0x75baf4[_0xf4fe('0x6b')],'predictiveIntervalHitRate':_0x75baf4['predictiveIntervalHitRate'],'predictiveIntervalMultiplicativeFactor':_0x75baf4[_0xf4fe('0x6c')],'predictiveIntervalPauses':_0x75baf4['predictiveIntervalPauses'],'predictiveIntervalAvailable':_0x75baf4[_0xf4fe('0x6d')],'predictiveIntervalTotalCalls':_0x75baf4[_0xf4fe('0x6e')],'message':_0x75baf4[_0xf4fe('0x3b')],'originated':_0x75baf4['originated'],'erlangCalls':_0x75baf4[_0xf4fe('0x6f')],'erlangCallToSecond':_0x75baf4[_0xf4fe('0x70')],'erlangAbandonmentRate':_0x75baf4[_0xf4fe('0x71')],'erlangBusyFactor':_0x75baf4[_0xf4fe('0x72')],'startPredictive':_0x75baf4['startPredictive'],'startProgressive':_0x75baf4[_0xf4fe('0x2a')]};if(_0x75baf4['Trunk']){_0x3ffbe5[_0xf4fe('0x73')]={'id':_0x75baf4[_0xf4fe('0x73')]['id'],'name':_0x75baf4[_0xf4fe('0x73')][_0xf4fe('0x3c')],'active':_0x75baf4[_0xf4fe('0x73')]['active'],'callerid':_0x75baf4[_0xf4fe('0x73')]['callerid']};}if(_0x75baf4[_0xf4fe('0x40')]){_0x3ffbe5[_0xf4fe('0x40')]={'id':_0x75baf4[_0xf4fe('0x40')]['id'],'name':_0x75baf4['Interval']['name']};}var _0x59dcdf=md5(JSON[_0xf4fe('0x74')](_0x3ffbe5));if(_0x75baf4[_0xf4fe('0x3')]!==_0x59dcdf){_0x75baf4[_0xf4fe('0x3')]=_0x59dcdf;emit(util[_0xf4fe('0x75')](_0xf4fe('0x76'),_0x3ffbe5[_0xf4fe('0x3c')]),_0xf4fe('0x77'),_0x3ffbe5);}}}function emitCampaignSummary(_0x57acfa){if(_0x57acfa[_0xf4fe('0x78')]===_0xf4fe('0x79')){emit(util[_0xf4fe('0x75')]('campaign:ivr:%s',_0x57acfa[_0xf4fe('0x3c')]),_0xf4fe('0x7a'),_0x57acfa);}}function checkGetDataPredictive(_0x478edc){if(isNotNull(_0x478edc)&&!_[_0xf4fe('0x43')](_0x478edc)){loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x7c'));loggerPredictive['info']('Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x478edc[_0xf4fe('0x6e')]);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x7d'),_0x478edc[_0xf4fe('0x65')]);loggerPredictive['info'](_0xf4fe('0x7e'),_0x478edc[_0xf4fe('0x69')]);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x7f'),_0x478edc[_0xf4fe('0x68')]);loggerPredictive[_0xf4fe('0x7b')]('AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x478edc[_0xf4fe('0x66')]);loggerPredictive[_0xf4fe('0x7b')]('AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x478edc[_0xf4fe('0x67')]);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x80'));if(_0x478edc[_0xf4fe('0x6e')]>0x0){if(!_['isUndefined'](_0x478edc['predictiveIntervalAvgTalktime'])&&_0x478edc['predictiveIntervalAvgTalktime']>0x0){return!![];}loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x81'));if(!_['isUndefined'](_0x478edc[_0xf4fe('0x66')])&&_0x478edc[_0xf4fe('0x66')]>0x0){return!![];}loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x82'));}else{loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x83'));}}else{loggerPredictive[_0xf4fe('0x7b')]('History\x20information\x20are\x20empty');}return![];}function mergeDataErlangB(_0x3a1cae){return function(_0x229c0c){loggerPredictive['info'](_0xf4fe('0x84'));loggerPredictive['info'](_0xf4fe('0x85'),_0x229c0c['erlangCalls']);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x86'),_0x229c0c[_0xf4fe('0x70')]);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x87'),_0x229c0c[_0xf4fe('0x71')]);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x88'),_0x229c0c[_0xf4fe('0x72')]);loggerPredictive['info']('Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x229c0c[_0xf4fe('0x71')]);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x80'));_['merge'](_0x3a1cae,_0x229c0c);};}function getDiff(_0x21331d){var _0x274b79=moment()[_0xf4fe('0x47')](0x0);var _0x126c33=moment(_0x21331d)['milliseconds'](0x0);return _0x274b79[_0xf4fe('0x89')](_0x126c33,_0xf4fe('0x48'));}function ifInterval(_0xea110b,_0x5e35ba){if(_['isUndefined'](_0x5e35ba)){return![];}return getDiff(_0x5e35ba)<_0xea110b*0x3c;}function freeVariablesPredictive(_0x1c3b42){if(isNotNull(_0x1c3b42)){if(!_[_0xf4fe('0x8a')](_0x1c3b42[_0xf4fe('0x2a')])){_0x1c3b42['startProgressive']=undefined;loggerPredictive['info'](_0x1c3b42[_0xf4fe('0x3c')],_0xf4fe('0x8b'));}if(!_[_0xf4fe('0x8a')](_0x1c3b42[_0xf4fe('0x29')])){_0x1c3b42[_0xf4fe('0x29')]=undefined;loggerPredictive[_0xf4fe('0x7b')](_0x1c3b42[_0xf4fe('0x3c')],_0xf4fe('0x8c'));}if(!_['isUndefined'](_0x1c3b42[_0xf4fe('0x8d')])){clearInterval(_0x1c3b42[_0xf4fe('0x8d')]);_0x1c3b42['handlePredictive']=undefined;loggerPredictive['info'](_0x1c3b42[_0xf4fe('0x3c')],_0xf4fe('0x8e'));}}}function erlangb(_0x225e79,_0x3efa3a){if(_0x3efa3a===0x0){return 0x0;}var _0x5af151=0x1;for(var _0x37c740=0x1;_0x37c740<=_0x3efa3a;_0x37c740+=0x1){_0x5af151=0x1+_0x5af151*_0x37c740/_0x225e79;}return 0x1/_0x5af151;}function isVoiceQueueOutbound(_0x499235){return _0x499235===_0xf4fe('0x4a');}function isNotPreview(_0x3f5deb){return _0x3f5deb!==_0xf4fe('0x8f');}function isCampaignIvr(_0x4b0f3d){return _0x4b0f3d==='ivr';}function getCallerId(_0x54148f,_0x2e625e,_0x39d75a){if(!_[_0xf4fe('0x8a')](_0x39d75a)&&typeof _0x39d75a==='string'&&!_[_0xf4fe('0x43')](_0x39d75a)){if(!_[_0xf4fe('0x8a')](_0x2e625e)&&typeof _0x2e625e===_0xf4fe('0x90')&&!_[_0xf4fe('0x43')](_0x2e625e)){return util[_0xf4fe('0x75')](_0xf4fe('0x91'),_0x2e625e,_0x39d75a);}return util['format'](_0xf4fe('0x91'),_0x39d75a,_0x39d75a);}if(!_[_0xf4fe('0x8a')](_0x54148f)&&typeof _0x54148f==='string'&&!_['isEmpty'](_0x54148f)){return _0x54148f;}return'\x22\x22\x20<>';}function loggerCatchQueueSummary(_0x48b160,_0x247263){return function(_0x46a68d){freeVariablesPredictive(_0x247263);emitVoiceQueueSummary(_0x247263);emitCampaignSummary(_0x247263);loggerSyncQueueSummary[_0xf4fe('0x92')](_0x48b160,util[_0xf4fe('0x93')](_0x46a68d,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x3c1cd0,_0xa6d2cd){return function(_0x4fc967){loggerPredictive[_0xf4fe('0x92')](_0xa6d2cd[_0xf4fe('0x3c')],_0x3c1cd0);loggerPredictive[_0xf4fe('0x92')](_0x4fc967[_0xf4fe('0x94')]);freeVariablesPredictive(_0xa6d2cd);};}function loggerCatch(_0xf36306){return function(_0xed4eb1){logger[_0xf4fe('0x92')](_0xf36306,util['inspect'](_0xed4eb1,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x44f74c){return _0x44f74c&&!_['isUndefined'](_0x44f74c)&&_0x44f74c[_0xf4fe('0x95')]>0x0;}function decremetOriginate(_0x47e65a){if(!_[_0xf4fe('0x8a')](_0x47e65a)&&_0x47e65a!==null){if(typeof _0x47e65a[_0xf4fe('0x96')]!==_0xf4fe('0x97')){if(_0x47e65a[_0xf4fe('0x96')]>0x0){_0x47e65a[_0xf4fe('0x96')]-=0x1;}else{logger['error'](_0xf4fe('0x98'));}}}else{logger[_0xf4fe('0x92')]('[decremetOriginate]\x20is\x20null\x20or\x20undefined');}}function checkContactLowerLimitOriginate(_0x1f7e34,_0x5a9cbd,_0x4ebe5f){if(_0x5a9cbd>_0x4ebe5f){for(var _0x1779b3=0x0;_0x1779b3<_0x5a9cbd-_0x4ebe5f;_0x1779b3+=0x1){decremetOriginate(_0x1f7e34);}}}function loggerGetContactDialer(_0x4580f8,_0x648b14,_0x25401b){return function(_0x59a174){checkContactLowerLimitOriginate(_0x648b14,_0x25401b,0x0);logger[_0xf4fe('0x92')](_0x4580f8,util[_0xf4fe('0x93')](_0x59a174,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0xf1858e){return function(_0x480988){if(isNotNull(_0x480988)&&isNotNull(_0x480988[0x0])){if(_0x480988[0x0][_0xf4fe('0x99')]>0x0){_0xf1858e[_0xf4fe('0x3b')]=_0xf4fe('0x9a');logger[_0xf4fe('0x7b')](_0xf4fe('0x9b')+_0xf1858e[_0xf4fe('0x3c')],_0x480988[0x0][_0xf4fe('0x99')],_0xf4fe('0x9c'));}else{_0xf1858e[_0xf4fe('0x3b')]=_0xf4fe('0x9d');logger[_0xf4fe('0x7b')]('[getContactDialer2][Empty]'+_0xf1858e[_0xf4fe('0x3c')]);}}};}function notSendMessagesQueue(_0x1ca327){if(_0x1ca327['sendMessageOneNotActive']){freeVariablesPredictive(_0x1ca327);if(_0x1ca327['originated']===0x0&&_0x1ca327[_0xf4fe('0x50')]===0x0&&_0x1ca327[_0xf4fe('0x9e')]===0x0&&(_0x1ca327[_0xf4fe('0x9f')]||0x0)===0x0){_0x1ca327['sendMessageOneNotActive']=![];_0x1ca327[_0xf4fe('0xa0')]=0x0;_0x1ca327['message']=_0xf4fe('0x3e');loggerSyncQueueSummary[_0xf4fe('0x92')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x1ca327[_0xf4fe('0x3c')],'is\x20not\x20active');}else{_0x1ca327['message']=_0xf4fe('0xa1');loggerSyncQueueSummary['error'](_0xf4fe('0xa2'),_0x1ca327['name'],_0xf4fe('0xa3'));}emitVoiceQueueSummary(_0x1ca327);}}function notSendMessagesCampaign(_0x1d8431){if(_0x1d8431[_0xf4fe('0xa4')]){if(_0x1d8431[_0xf4fe('0x96')]===0x0){_0x1d8431[_0xf4fe('0xa4')]=![];_0x1d8431[_0xf4fe('0x3b')]=_0xf4fe('0x3e');loggerSyncQueueSummary[_0xf4fe('0x92')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x1d8431[_0xf4fe('0x3c')],'is\x20not\x20active');}else{_0x1d8431[_0xf4fe('0x3b')]='IS_DISACTIVED';loggerSyncQueueSummary[_0xf4fe('0x92')](_0xf4fe('0xa5'),_0x1d8431[_0xf4fe('0x3c')],_0xf4fe('0xa3'));}emitCampaignSummary(_0x1d8431);}}function createObjHistory(_0x4ac731,_0x11ff8d,_0x21ca88,_0x4f50a1,_0x3e5fcf){_0x4ac731[_0xf4fe('0x3b')]=_0x21ca88;var _0x181e51=new Action(_0x4ac731,_0x11ff8d);var _0x5b423c=new History(_0x181e51);_0x5b423c[_0xf4fe('0xa6')]=_0x4f50a1;_0x5b423c['statedesc']=_0x3e5fcf;_0x5b423c[_0xf4fe('0xa7')]=_0x181e51[_0xf4fe('0xa8')];return _0x5b423c;}Dialer[_0xf4fe('0x1c')][_0xf4fe('0x3a')]=function(){var _0x3a8b8b=this;setInterval(function(){_0x3a8b8b[_0xf4fe('0xa9')](_0x3a8b8b['uniqueId'],_0xf4fe('0xaa'));_0x3a8b8b[_0xf4fe('0xa9')](_0x3a8b8b['actions'],_0xf4fe('0xab'));},0x32c8);};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xa9')]=function(_0x39cc6e,_0x154079){var _0x509c7d=this;for(var _0x3453c3 in _0x39cc6e){if(typeof _0x39cc6e[_0x3453c3]!==_0xf4fe('0x97')){this[_0xf4fe('0xac')][_0xf4fe('0x1d')](function(){if(!_[_0xf4fe('0xad')](_0x39cc6e[_0x3453c3])){return ami[_0xf4fe('0xae')]({'action':_0xf4fe('0xaf'),'channel':_0x39cc6e[_0x3453c3][_0xf4fe('0xb0')]})[_0xf4fe('0xb1')](function(_0x26bbc8){if(_0x26bbc8[_0xf4fe('0x3b')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x39cc6e[_0x3453c3]&&_0x39cc6e[_0x3453c3][_0xf4fe('0x78')]!==_0xf4fe('0x79')){_0x509c7d[_0xf4fe('0xb2')](_0x509c7d[_0xf4fe('0x20')][_0x39cc6e[_0x3453c3][_0xf4fe('0xb3')]]);logger['error']('[Dialer][checkChannel]',_0x154079,_0x3453c3,_0x39cc6e[_0x3453c3]['queue']);delete _0x39cc6e[_0x3453c3];}if(_0x39cc6e[_0x3453c3]&&_0x39cc6e[_0x3453c3][_0xf4fe('0x78')]===_0xf4fe('0x79')){_0x509c7d[_0xf4fe('0xb2')](_0x509c7d[_0xf4fe('0xb4')][_0x39cc6e[_0x3453c3][_0xf4fe('0xb3')]]);logger[_0xf4fe('0x92')]('[Dialer][checkChannel][ivr]',_0x154079,_0x3453c3,_0x39cc6e[_0x3453c3][_0xf4fe('0xb3')]);delete _0x39cc6e[_0x3453c3];}},0x2328);}});}});}}};Dialer['prototype'][_0xf4fe('0xb5')]=function(_0x25893e){return BPromise[_0xf4fe('0xb6')]()[_0xf4fe('0xb7')](cmHopper[_0xf4fe('0xb5')](_0x25893e))[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xb8')));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xb9')]=function(_0x9e3b84){return BPromise[_0xf4fe('0xb6')]()[_0xf4fe('0xb7')](cmHopperBlack[_0xf4fe('0xb9')](_0x9e3b84))['catch'](loggerCatch('[checkIsBlackList]\x20'));};Dialer['prototype']['checkIsBlackListIvr']=function(_0x291682){return BPromise['resolve']()[_0xf4fe('0xb7')](cmHopperBlack[_0xf4fe('0xba')](_0x291682))[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xbb')));};Dialer[_0xf4fe('0x1c')]['averageHandleTime']=function(_0x99ea2b){return BPromise['resolve']()[_0xf4fe('0xb7')](cmHopperHistory[_0xf4fe('0xbc')](_0x99ea2b))[_0xf4fe('0xb1')](loggerCatch('[averageHandleTime]\x20'));};Dialer['prototype'][_0xf4fe('0xbd')]=function(_0x39681d){return BPromise[_0xf4fe('0xb6')]()['then'](cmHopper['rescheduleContact'](_0x39681d))[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xbe')));};Dialer['prototype'][_0xf4fe('0xbf')]=function(_0x347583,_0x5de4e5,_0x4dcef3){return BPromise[_0xf4fe('0xb6')]()[_0xf4fe('0xb7')](cmHopper[_0xf4fe('0xbf')](_0x347583,_0x5de4e5,_0x4dcef3))['catch'](loggerCatch('[unlockContact]\x20'));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xc0')]=function(_0x6ebda6,_0x1a2a1b,_0x35cce8,_0x1c07da,_0x44f33f){return BPromise[_0xf4fe('0xb6')]()['then'](cmHopper[_0xf4fe('0xc0')](_0x6ebda6,_0x1a2a1b,_0x35cce8,_0x1c07da))[_0xf4fe('0xb1')](function(_0x8523f2){_0x44f33f[_0xf4fe('0xc1')]-=_0x35cce8;_0x44f33f['temp']=_0x44f33f['temp']>0x0?_0x44f33f['temp']:0x0;loggerCatch(_0xf4fe('0xc2'))(_0x8523f2);});};Dialer[_0xf4fe('0x1c')]['getContactDialerIvr']=function(_0x4d1637,_0x379c03,_0x37f476,_0x4a40cb){return BPromise[_0xf4fe('0xb6')]()[_0xf4fe('0xb7')](cmHopper['getContactDialerIvr'](_0x4d1637,_0x379c03,_0x37f476))[_0xf4fe('0xb1')](function(_0x49f627){_0x4a40cb['temp']-=_0x379c03;_0x4a40cb[_0xf4fe('0xc1')]=_0x4a40cb['temp']>0x0?_0x4a40cb['temp']:0x0;loggerCatch('[getContactDialerIvr]\x20')(_0x49f627);});};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xc3')]=function(_0x36dbfa){return BPromise[_0xf4fe('0xb6')]()['then'](voiceQueueRt[_0xf4fe('0xc3')](_0x36dbfa))[_0xf4fe('0xb1')](loggerCatch('[getVoiceQueueRtPauses]\x20'));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xc4')]=function(_0x54947c){return BPromise[_0xf4fe('0xb6')]()[_0xf4fe('0xb7')](cmHopper[_0xf4fe('0xc4')](_0x54947c))[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xc5')));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xc6')]=function(_0x373c94){return BPromise['resolve']()[_0xf4fe('0xb7')](cmHopperHistory[_0xf4fe('0xc6')](_0x373c94))[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xc7')));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xb2')]=function(_0x4dc035){if(!_[_0xf4fe('0x8a')](_0x4dc035)&&_0x4dc035!==null){if(typeof _0x4dc035[_0xf4fe('0x96')]!==_0xf4fe('0x97')){if(_0x4dc035['originated']>0x0){_0x4dc035['originated']-=0x1;}else{logger[_0xf4fe('0x92')](_0xf4fe('0xc8'));}}}else{logger['error'](_0xf4fe('0xc9'));}};Dialer[_0xf4fe('0x1c')]['loggerHandler']=function(_0x460ffb,_0x3a16d9){var _0x3c9b71=this;return function(_0x57fe8d){_0x3c9b71['updateOriginated'](_0x3a16d9);logger[_0xf4fe('0x92')](_0x460ffb,util['inspect'](_0x57fe8d,{'showHidden':![],'depth':null}));};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xca')]=function(_0x3422c8,_0x4bca0c,_0x44523d){var _0x15ac6a={'state':0x19,'statedesc':'notFound'};this['updateOriginated'](_0x4bca0c);this['saveInDb'](_[_0xf4fe('0xcb')](_0x15ac6a,_[_0xf4fe('0xcc')](_0x44523d,[_0xf4fe('0xcd'),'ListId',_0xf4fe('0xce'),_0xf4fe('0xcf'),_0xf4fe('0xd0')])),_0xf4fe('0xd1'),_0xf4fe('0xd2'));logger[_0xf4fe('0x92')](_0x3422c8);};Dialer['prototype'][_0xf4fe('0xd3')]=function(_0x541daf){return _0x541daf===_0xf4fe('0xd4');};Dialer[_0xf4fe('0x1c')]['isTrunkReachable']=function(_0x6ee6c0){return!_[_0xf4fe('0x8a')](_0x6ee6c0)&&_0x6ee6c0&&!_['isUndefined'](_0x6ee6c0[_0xf4fe('0x3c')])&&!_[_0xf4fe('0x8a')](_0x6ee6c0[_0xf4fe('0xd5')])&&_0x6ee6c0[_0xf4fe('0xd5')]&&(this[_0xf4fe('0x22')][util[_0xf4fe('0x75')](_0xf4fe('0xd6'),_0x6ee6c0[_0xf4fe('0x3c')])]['status']===_0xf4fe('0xd7')||this[_0xf4fe('0x22')][util['format'](_0xf4fe('0xd6'),_0x6ee6c0[_0xf4fe('0x3c')])][_0xf4fe('0xaf')]===_0xf4fe('0xd8'));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xd9')]=function(_0x16dd29,_0x46c8df,_0x25c0f3){this[_0xf4fe('0xc6')](_0x16dd29)[_0xf4fe('0xb1')](loggerCatch(_0x46c8df));this['moveContactManagedDialer'](_0x16dd29)['catch'](loggerCatch(_0x25c0f3));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x38')]=function(_0x4e736b){var _0x1f8fe5=this['uniqueId'][_0x4e736b[_0xf4fe('0xda')]];var _0x26e5b1;if(!_[_0xf4fe('0xad')](_0x4e736b)&&!_['isNil'](_0x4e736b['variable'])&&!_[_0xf4fe('0xad')](_0x4e736b[_0xf4fe('0xdb')][_0xf4fe('0xdc')])&&_0x4e736b['exten']===_0xf4fe('0xdd')&&_0x1f8fe5){if(_0x1f8fe5[_0xf4fe('0x78')]!==_0xf4fe('0x79')&&this[_0xf4fe('0x20')][_0x1f8fe5[_0xf4fe('0xb3')]][_0xf4fe('0xde')]&&_0x4e736b[_0xf4fe('0xdf')]===_0xf4fe('0xe0')){delete this['uniqueId'][_0x4e736b[_0xf4fe('0xda')]];this['updateOriginated'](this['voiceQueues'][_0x1f8fe5[_0xf4fe('0xb3')]]);this['voiceQueues'][_0x1f8fe5[_0xf4fe('0xb3')]][_0xf4fe('0xe1')]+=0x1;this[_0xf4fe('0x20')][_0x1f8fe5['queue']][_0xf4fe('0x5a')]+=0x1;_0x26e5b1=new Hangup(_0x1f8fe5,_0x4e736b);_0x26e5b1[_0xf4fe('0xa6')]=0x12;_0x26e5b1[_0xf4fe('0xe2')]=_0xf4fe('0xe3');_0x26e5b1[_0xf4fe('0xe4')]=_0xf4fe('0xe5');ami['emit'](_0xf4fe('0xe6'),ut[_0xf4fe('0xe7')](_0x26e5b1,_0xf4fe('0xe8')));this[_0xf4fe('0xd9')](_0x26e5b1,'[syncHangupInAMD][createHistory]',_0xf4fe('0xe9'));}if(_0x1f8fe5[_0xf4fe('0x78')]!==_0xf4fe('0x79')&&this[_0xf4fe('0x20')][_0x1f8fe5[_0xf4fe('0xb3')]][_0xf4fe('0xde')]&&_0x4e736b['value']===_0xf4fe('0xea')){var _0x1f631d=this;return new BPromise(function(_0x442199,_0xc782fd){delete _0x1f631d[_0xf4fe('0x27')][_0x4e736b['uniqueid']];_0x1f631d[_0xf4fe('0xb2')](_0x1f631d[_0xf4fe('0x20')][_0x1f8fe5[_0xf4fe('0xb3')]]);_0x1f631d[_0xf4fe('0x20')][_0x1f8fe5['queue']][_0xf4fe('0xe1')]+=0x1;_0x1f631d[_0xf4fe('0x20')][_0x1f8fe5['queue']][_0xf4fe('0x5a')]+=0x1;var _0x28738d=_0x1f631d['voiceQueues'][_0x1f8fe5[_0xf4fe('0xb3')]];var _0x507803=new Hangup(_0x1f8fe5,_0x4e736b);_0x507803[_0xf4fe('0xa6')]=0x13;_0x507803[_0xf4fe('0xe2')]=_0xf4fe('0xeb');_0x507803[_0xf4fe('0xe4')]='AMD';_0x507803[_0xf4fe('0xec')]+=0x1;_0x507803[_0xf4fe('0xed')]+=0x1;_0x507803[_0xf4fe('0xe8')]=!![];ami[_0xf4fe('0x49')](_0xf4fe('0xe6'),ut['buildObj'](_0x507803,_0xf4fe('0xe8')));_0x1f631d[_0xf4fe('0xc6')](_0x507803)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xee')));if(_0x507803['countbusyretry']+_0x507803[_0xf4fe('0xef')]+_0x507803['countnoanswerretry']+_0x507803[_0xf4fe('0xf0')]+_0x507803[_0xf4fe('0xf1')]+_0x507803[_0xf4fe('0xf2')]+_0x507803[_0xf4fe('0xec')]+_0x507803[_0xf4fe('0xf3')]>=_0x28738d['dialGlobalMaxRetry']){_0x1f631d[_0xf4fe('0xf4')](_0x507803,_0x442199,_0xc782fd,_0xf4fe('0xf5'));}else{if(_0x507803[_0xf4fe('0xec')]>=_0x28738d['dialMachineMaxRetry']){_0x1f631d[_0xf4fe('0xf6')](_0x507803,_0x442199,_0xc782fd,_0xf4fe('0xf7'));}else{_0x1f631d[_0xf4fe('0xbd')]({'active':![],'countmachineretry':_0x507803[_0xf4fe('0xec')],'scheduledat':moment()[_0xf4fe('0xf8')](_0x28738d['dialMachineRetryFrequency'],'minutes')[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x507803[_0xf4fe('0xcd')],'ListId':_0x507803[_0xf4fe('0xf9')],'VoiceQueueId':_0x507803[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x507803['CampaignId']||undefined})['catch'](loggerCatch('[rescheduleContact][Machine]'));_0x442199({'reschedule':0x1});}}});}if(_0x1f8fe5[_0xf4fe('0x78')]==='ivr'&&this[_0xf4fe('0xb4')][_0x1f8fe5[_0xf4fe('0xb3')]]['dialAMDActive']&&_0x4e736b[_0xf4fe('0xdf')]==='HANGUP'){delete this[_0xf4fe('0x27')][_0x4e736b[_0xf4fe('0xda')]];this[_0xf4fe('0xb2')](this['campaigns'][_0x1f8fe5[_0xf4fe('0xb3')]]);_0x26e5b1=new Hangup(_0x1f8fe5,_0x4e736b);_0x26e5b1[_0xf4fe('0xa6')]=0x12;_0x26e5b1['statedesc']=_0xf4fe('0xe3');_0x26e5b1['membername']=_0xf4fe('0xe5');ami[_0xf4fe('0x49')]('custom:amd',ut['buildObj'](_0x26e5b1,_0xf4fe('0xe8')));this[_0xf4fe('0xd9')](_0x26e5b1,_0xf4fe('0xfa'),_0xf4fe('0xfb'));}if(_0x1f8fe5[_0xf4fe('0x78')]===_0xf4fe('0x79')&&this[_0xf4fe('0xb4')][_0x1f8fe5[_0xf4fe('0xb3')]][_0xf4fe('0xde')]&&_0x4e736b['value']===_0xf4fe('0xea')){var _0x1f631d=this;return new BPromise(function(_0x3f89f2,_0x2a81a9){delete _0x1f631d[_0xf4fe('0x27')][_0x4e736b['uniqueid']];_0x1f631d[_0xf4fe('0xb2')](_0x1f631d[_0xf4fe('0xb4')][_0x1f8fe5[_0xf4fe('0xb3')]]);_0x1f631d[_0xf4fe('0xb4')][_0x1f8fe5['queue']]['outboundAnswerCallsDay']+=0x1;_0x1f631d[_0xf4fe('0xb4')][_0x1f8fe5[_0xf4fe('0xb3')]][_0xf4fe('0x5a')]+=0x1;var _0x8c4c38=_0x1f631d[_0xf4fe('0xb4')][_0x1f8fe5['queue']];var _0x10f67e=new Hangup(_0x1f8fe5,_0x4e736b);_0x10f67e['state']=0x13;_0x10f67e[_0xf4fe('0xe2')]=_0xf4fe('0xeb');_0x10f67e[_0xf4fe('0xe4')]=_0xf4fe('0xe5');_0x10f67e['countmachineretry']+=0x1;_0x10f67e[_0xf4fe('0xed')]+=0x1;_0x10f67e[_0xf4fe('0xe8')]=!![];ami[_0xf4fe('0x49')](_0xf4fe('0xe6'),ut[_0xf4fe('0xe7')](_0x10f67e,_0xf4fe('0xe8')));_0x1f631d[_0xf4fe('0xc6')](_0x10f67e)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0xee')));if(_0x10f67e['countbusyretry']+_0x10f67e[_0xf4fe('0xef')]+_0x10f67e['countnoanswerretry']+_0x10f67e[_0xf4fe('0xf0')]+_0x10f67e[_0xf4fe('0xf1')]+_0x10f67e['countabandonedretry']+_0x10f67e[_0xf4fe('0xec')]+_0x10f67e[_0xf4fe('0xf3')]>=_0x8c4c38[_0xf4fe('0xfc')]){_0x1f631d['stateGlobal'](_0x10f67e,_0x3f89f2,_0x2a81a9,_0xf4fe('0xf5'));}else{if(_0x10f67e[_0xf4fe('0xec')]>=_0x8c4c38[_0xf4fe('0xfd')]){_0x1f631d['createStateFinal'](_0x10f67e,_0x3f89f2,_0x2a81a9,_0xf4fe('0xf7'));}else{_0x1f631d[_0xf4fe('0xbd')]({'active':![],'countmachineretry':_0x10f67e['countmachineretry'],'scheduledat':moment()[_0xf4fe('0xf8')](_0x8c4c38[_0xf4fe('0xfe')],_0xf4fe('0xff'))[_0xf4fe('0x75')](_0xf4fe('0x100')),'ContactId':_0x10f67e[_0xf4fe('0xcd')],'ListId':_0x10f67e[_0xf4fe('0xf9')],'VoiceQueueId':_0x10f67e['VoiceQueueId']||undefined,'CampaignId':_0x10f67e[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x101')));_0x3f89f2({'reschedule':0x1});}}});}}};Dialer[_0xf4fe('0x1c')]['syncHangup']=function(_0x257b7d){var _0xd1541d=this['uniqueId'][_0x257b7d[_0xf4fe('0xda')]];var _0x2ea2f6=this;var _0xe3c778;if(_0xd1541d&&_0xd1541d[_0xf4fe('0x78')]==='ivr'){delete this[_0xf4fe('0x27')][_0x257b7d[_0xf4fe('0xda')]];this[_0xf4fe('0xb2')](this['campaigns'][_0xd1541d[_0xf4fe('0xb3')]]);this['campaigns'][_0xd1541d[_0xf4fe('0xb3')]][_0xf4fe('0x102')]+=0x1;_0xe3c778=new Hangup(_0xd1541d,_0x257b7d);this[_0xf4fe('0xc6')](_0xe3c778)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x103')));this['moveContactManagedDialer'](_0xe3c778)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x104')));}if(_0xd1541d&&_0xd1541d[_0xf4fe('0x78')]!==_0xf4fe('0x79')&&isNotNull(this['voiceQueues'][_0xd1541d[_0xf4fe('0xb3')]][_0xf4fe('0x105')])){delete this['uniqueId'][_0x257b7d[_0xf4fe('0xda')]];this['updateOriginated'](this['voiceQueues'][_0xd1541d['queue']]);this[_0xf4fe('0x20')][_0xd1541d['queue']][_0xf4fe('0xe1')]+=0x1;this[_0xf4fe('0x20')][_0xd1541d['queue']][_0xf4fe('0x5a')]+=0x1;_0xe3c778=new Hangup(_0xd1541d,_0x257b7d);_0xe3c778['state']=0x10;_0xe3c778[_0xf4fe('0xe2')]=_0xf4fe('0x106');_0xe3c778['membername']=_0xf4fe('0x107');this[_0xf4fe('0xc6')](_0xe3c778)['catch'](loggerCatch(_0xf4fe('0x103')));this[_0xf4fe('0xc4')](_0xe3c778)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x104')));}if(_0xd1541d&&_0xd1541d[_0xf4fe('0x78')]!==_0xf4fe('0x79')&&!isNotNull(this['voiceQueues'][_0xd1541d[_0xf4fe('0xb3')]][_0xf4fe('0x105')])){delete this[_0xf4fe('0x27')][_0x257b7d['uniqueid']];this[_0xf4fe('0xb2')](this['voiceQueues'][_0xd1541d[_0xf4fe('0xb3')]]);this['voiceQueues'][_0xd1541d[_0xf4fe('0xb3')]][_0xf4fe('0x64')]+=0x1;_0xe3c778=new Hangup(_0xd1541d,_0x257b7d);_0xe3c778['state']=0xc;_0xe3c778[_0xf4fe('0xe2')]=_0x257b7d[_0xf4fe('0x108')];_0xe3c778[_0xf4fe('0xe4')]=_0xf4fe('0x109');this[_0xf4fe('0xc6')](_0xe3c778)['catch'](loggerCatch(_0xf4fe('0x103')));this[_0xf4fe('0xc4')](_0xe3c778)['catch'](loggerCatch('[syncHangupIvr]'));}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x32')]=function(_0x312176){var _0x196ae3=this[_0xf4fe('0x27')][_0x312176['uniqueid']];var _0x53d8a8=this;if(this[_0xf4fe('0x20')][_0x312176[_0xf4fe('0xb3')]]){if(_0x196ae3&&_0x196ae3['type']!==_0xf4fe('0x79')){delete this['uniqueId'][_0x312176[_0xf4fe('0xda')]];this[_0xf4fe('0x20')][_0x312176[_0xf4fe('0xb3')]][_0xf4fe('0xe1')]+=0x1;var _0x17a479=new AgentComplete(_0x196ae3,_0x312176);if(_0x312176[_0xf4fe('0x10a')]===_0xf4fe('0x10b')){_0x17a479[_0xf4fe('0x10c')]=this['voiceQueues'][_0x312176[_0xf4fe('0xb3')]][_0xf4fe('0x10d')]&&this[_0xf4fe('0x20')][_0x312176[_0xf4fe('0xb3')]][_0xf4fe('0x10e')]?moment()[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss'):undefined;}this[_0xf4fe('0xc6')](_0x17a479)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x10f')));this[_0xf4fe('0xc4')](_0x17a479)['catch'](loggerCatch(_0xf4fe('0x110')));}}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x111')]=function(_0x513ae9){if(this[_0xf4fe('0x20')][_0x513ae9[_0xf4fe('0xb3')]]){if(this[_0xf4fe('0x27')][_0x513ae9['uniqueid']]&&this['uniqueId'][_0x513ae9[_0xf4fe('0xda')]]['type']!=='ivr'){this[_0xf4fe('0xb2')](this[_0xf4fe('0x20')][_0x513ae9[_0xf4fe('0xb3')]]);this['uniqueId'][_0x513ae9[_0xf4fe('0xda')]][_0xf4fe('0x112')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x113')]=function(_0x4e1d4b){this[_0xf4fe('0xc6')](_0x4e1d4b)['catch'](loggerCatch('[syncAgentComplete][createHistory]'));this[_0xf4fe('0xc4')](_0x4e1d4b)['catch'](loggerCatch('[syncQueueCallerAbandon]\x20[Drop]'));};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x114')]=function(_0x5a7f15){var _0x40a227=this[_0xf4fe('0x27')][_0x5a7f15[_0xf4fe('0xda')]];var _0x432d74=this;if(this[_0xf4fe('0x20')][_0x5a7f15[_0xf4fe('0xb3')]]){if(_0x40a227&&_0x40a227[_0xf4fe('0x78')]!==_0xf4fe('0x79')){delete this[_0xf4fe('0x27')][_0x5a7f15[_0xf4fe('0xda')]];this[_0xf4fe('0xb2')](this[_0xf4fe('0x20')][_0x5a7f15[_0xf4fe('0xb3')]]);_0x40a227[_0xf4fe('0x115')]=moment()[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss');var _0x229052=new QueueCallerAbandon(_0x40a227,_0x5a7f15);if(getSeconds(_0x40a227['droptime'],_0x40a227[_0xf4fe('0x116')])>=_0x40a227[_0xf4fe('0x117')]){this['voiceQueues'][_0x5a7f15['queue']][_0xf4fe('0x69')]+=0x1;this[_0xf4fe('0x20')][_0x5a7f15['queue']][_0xf4fe('0x5f')]+=0x1;this[_0xf4fe('0x20')][_0x5a7f15[_0xf4fe('0xb3')]][_0xf4fe('0x6b')]+=0x1;_0x229052[_0xf4fe('0xa6')]=0xa;_0x229052[_0xf4fe('0xe2')]=_0xf4fe('0x118');_0x229052[_0xf4fe('0x119')]=_0xf4fe('0x11a');_0x229052['agiafterat']=this[_0xf4fe('0x20')][_0x5a7f15['queue']]['dialQueueProject2']?moment()[_0xf4fe('0x75')](_0xf4fe('0x100')):undefined;_0x229052[_0xf4fe('0xf1')]+=0x1;_0x229052['countglobal']+=0x1;if(_0x229052[_0xf4fe('0xf1')]>=this['voiceQueues'][_0x5a7f15['queue']][_0xf4fe('0x11b')]){this[_0xf4fe('0x113')](_0x229052);}else{this['rescheduleContact']({'active':![],'countdropretry':_0x229052['countdropretry'],'scheduledat':moment()[_0xf4fe('0xf8')](this['voiceQueues'][_0x5a7f15[_0xf4fe('0xb3')]]['dialDropRetryFrequency'],_0xf4fe('0xff'))[_0xf4fe('0x75')](_0xf4fe('0x100')),'ContactId':_0x40a227['ContactId'],'ListId':_0x40a227[_0xf4fe('0xf9')],'VoiceQueueId':_0x40a227[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x40a227[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x11c')));var _0x3c5707=new History(_0x229052);_0x3c5707[_0xf4fe('0xa6')]=0xa;_0x3c5707[_0xf4fe('0xe2')]=_0xf4fe('0x118');_0x3c5707[_0xf4fe('0xa8')]=moment()['format'](_0xf4fe('0x100'));_0x3c5707['endtime']=_0x3c5707[_0xf4fe('0xa8')];_0x3c5707[_0xf4fe('0x11d')]=_0x229052[_0xf4fe('0x11d')];_0x3c5707[_0xf4fe('0x11e')]=_0x229052['calleridnum'];this[_0xf4fe('0xc6')](_0x3c5707)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x11f')));}}else{this[_0xf4fe('0x20')][_0x5a7f15[_0xf4fe('0xb3')]][_0xf4fe('0x68')]+=0x1;this[_0xf4fe('0x20')][_0x5a7f15[_0xf4fe('0xb3')]]['outboundDropCallsDayCallersExit']+=0x1;_0x229052[_0xf4fe('0xa6')]=0xb;_0x229052[_0xf4fe('0xe2')]='Abandoned';_0x229052[_0xf4fe('0x119')]=_0xf4fe('0x120');_0x229052[_0xf4fe('0xf2')]+=0x1;_0x229052[_0xf4fe('0xed')]+=0x1;if(_0x229052[_0xf4fe('0xf2')]>=this[_0xf4fe('0x20')][_0x5a7f15[_0xf4fe('0xb3')]][_0xf4fe('0x121')]){this[_0xf4fe('0x113')](_0x229052);}else{this[_0xf4fe('0xbd')]({'active':![],'countabandonedretry':_0x229052[_0xf4fe('0xf2')],'scheduledat':moment()[_0xf4fe('0xf8')](this[_0xf4fe('0x20')][_0x5a7f15['queue']][_0xf4fe('0x122')],_0xf4fe('0xff'))[_0xf4fe('0x75')](_0xf4fe('0x100')),'ContactId':_0x40a227[_0xf4fe('0xcd')],'ListId':_0x40a227[_0xf4fe('0xf9')],'VoiceQueueId':_0x40a227[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x40a227[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x123')));var _0x3c5707=new History(_0x229052);_0x3c5707[_0xf4fe('0xa6')]=0xb;_0x3c5707[_0xf4fe('0xe2')]=_0xf4fe('0x124');_0x3c5707[_0xf4fe('0xa8')]=moment()['format'](_0xf4fe('0x100'));_0x3c5707[_0xf4fe('0xa7')]=_0x3c5707[_0xf4fe('0xa8')];_0x3c5707[_0xf4fe('0x11d')]=_0x229052[_0xf4fe('0x11d')];_0x3c5707['calleridnum']=_0x229052[_0xf4fe('0x11e')];this[_0xf4fe('0xc6')](_0x3c5707)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x125')));}}}}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x36')]=function(_0x454f3d){if(this['actions'][_0x454f3d[_0xf4fe('0xda')]]){this[_0xf4fe('0x25')][_0x454f3d[_0xf4fe('0xda')]][_0xf4fe('0xb0')]=_0x454f3d[_0xf4fe('0xb0')];}if(this[_0xf4fe('0x27')][_0x454f3d[_0xf4fe('0xda')]]){this[_0xf4fe('0x27')][_0x454f3d[_0xf4fe('0xda')]][_0xf4fe('0xb0')]=_0x454f3d[_0xf4fe('0xb0')];}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x126')]=function(_0x28a948){if(strategy[this['voiceQueues'][this[_0xf4fe('0x25')][_0x28a948[_0xf4fe('0x127')]][_0xf4fe('0xb3')]][_0xf4fe('0x4b')]]===_0xf4fe('0x1b')){if(this['actions'][_0x28a948['actionid']]&&_['isNil'](this['actions'][_0x28a948[_0xf4fe('0x127')]][_0xf4fe('0x128')])&&_0x28a948[_0xf4fe('0xaf')]==='1'&&_0x28a948['paused']==='0'){if(this['agents'][_0x28a948[_0xf4fe('0x129')]]){if(!this[_0xf4fe('0x21')][_0x28a948[_0xf4fe('0x129')]]['locked']){this[_0xf4fe('0x21')][_0x28a948[_0xf4fe('0x129')]][_0xf4fe('0x128')]=!![];this[_0xf4fe('0x25')][_0x28a948['actionid']][_0xf4fe('0x128')]=!![];this['actions'][_0x28a948[_0xf4fe('0x127')]][_0xf4fe('0x129')]=_0x28a948[_0xf4fe('0x129')];}}}}else if((strategy[this[_0xf4fe('0x20')][this[_0xf4fe('0x25')][_0x28a948[_0xf4fe('0x127')]][_0xf4fe('0xb3')]][_0xf4fe('0x4b')]]||_0xf4fe('0x12a'))===_0xf4fe('0x12a')){if(this[_0xf4fe('0x25')][_0x28a948[_0xf4fe('0x127')]]){if(this[_0xf4fe('0x21')][_0x28a948[_0xf4fe('0x129')]]){this['actions'][_0x28a948[_0xf4fe('0x127')]]['stateinterface']=_0x28a948['stateinterface'];if(_['isNil'](this[_0xf4fe('0x12b')][this['actions'][_0x28a948[_0xf4fe('0x127')]][_0xf4fe('0xb3')]])){this[_0xf4fe('0x12b')][this[_0xf4fe('0x25')][_0x28a948['actionid']][_0xf4fe('0xb3')]]=[];}this['queueBooked'][this[_0xf4fe('0x25')][_0x28a948[_0xf4fe('0x127')]]['queue']][_0xf4fe('0x12c')](_[_0xf4fe('0xcb')](_[_0xf4fe('0xcc')](this[_0xf4fe('0x25')][_0x28a948[_0xf4fe('0x127')]],['idHopper',_0xf4fe('0x129')]),{'status':_0x28a948['status'],'paused':_0x28a948[_0xf4fe('0x12d')]}));}}}};function unlockQueueStatus(_0x2662b7,_0x513545){setTimeout(function(){if(_[_0xf4fe('0x8a')](_0x2662b7[_0xf4fe('0x12e')])){loggerBooked[_0xf4fe('0x92')]('[unlockQueueStatus][undefined]',_0x513545);}_0x2662b7[_0xf4fe('0x12e')]=!![];loggerBooked['info']('[booked][unlockQueueStatus]',_0x513545,JSON[_0xf4fe('0x74')](_[_0xf4fe('0xcc')](_0x2662b7,[_0xf4fe('0x3c'),_0xf4fe('0x12e')])));},0x1f3);}Dialer['prototype'][_0xf4fe('0x12f')]=function(_0x45e4f2){var _0x551f7e=this;var _0x30d3f9=_0x551f7e['voiceQueues'][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xb3')]];if(strategy[this[_0xf4fe('0x20')][this[_0xf4fe('0x25')][_0x45e4f2['actionid']]['queue']][_0xf4fe('0x4b')]]===_0xf4fe('0x1b')){if(this['actions'][_0x45e4f2[_0xf4fe('0x127')]]&&this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['stateinterface']){this['preview'][_0xf4fe('0x130')](this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0x131')],this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0x129')])[_0xf4fe('0xb1')](function(_0x45c6d2){logger[_0xf4fe('0x92')](_0xf4fe('0x132'),util['inspect'](_0x45c6d2,{'showHidden':![],'depth':null}));})[_0xf4fe('0x1f')](function(){_0x551f7e[_0xf4fe('0xb2')](_0x551f7e[_0xf4fe('0x20')][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xb3')]]);_0x551f7e[_0xf4fe('0x21')][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['stateinterface']]['locked']=![];delete _0x551f7e['actions'][_0x45e4f2[_0xf4fe('0x127')]];unlockQueueStatus(_0x30d3f9);});}else{this[_0xf4fe('0xb2')](this['voiceQueues'][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['queue']]);this[_0xf4fe('0xbd')]({'active':![],'ContactId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcd')],'ListId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]]['ListId'],'VoiceQueueId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcf')]||undefined,'CampaignId':this[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x133')));delete this['actions'][_0x45e4f2['actionid']];unlockQueueStatus(_0x30d3f9);}}else if((strategy[this[_0xf4fe('0x20')][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]][_0xf4fe('0x4b')]]||_0xf4fe('0x12a'))===_0xf4fe('0x12a')){var _0xfb9b19;if(this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]&&!_[_0xf4fe('0x43')](this['queueBooked'][this[_0xf4fe('0x25')][_0x45e4f2['actionid']]['queue']])){if(this[_0xf4fe('0x2c')][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['queue']]){this['queueBookedRR'][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]]=this['queueBookedRR'][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]]?this[_0xf4fe('0x2c')][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['queue']]:this['queueBooked'][this['actions'][_0x45e4f2['actionid']]['queue']]?this[_0xf4fe('0x12b')][this['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]][_0xf4fe('0x134')]||0x0:0x0;}this[_0xf4fe('0x12b')][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]][_0xf4fe('0x134')]=this[_0xf4fe('0x2c')][this[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xb3')]];for(var _0x10fb8c=0x0;_0x10fb8c<this[_0xf4fe('0x12b')][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]][_0xf4fe('0x95')];_0x10fb8c+=0x1){_0xfb9b19=rr(this[_0xf4fe('0x12b')][this[_0xf4fe('0x25')][_0x45e4f2['actionid']]['queue']]);this['queueBookedRR'][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]]=this[_0xf4fe('0x12b')][this[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xb3')]][_0xf4fe('0x134')];if(_0xfb9b19[_0xf4fe('0xaf')]==='1'&&_0xfb9b19[_0xf4fe('0x12d')]==='0'){break;}}if(!_[_0xf4fe('0xad')](_0xfb9b19)){this['agents'][_0xfb9b19[_0xf4fe('0x129')]][_0xf4fe('0x135')]=_[_0xf4fe('0x8a')](this['agents'][_0xfb9b19['stateinterface']][_0xf4fe('0x135')])?!![]:this[_0xf4fe('0x21')][_0xfb9b19[_0xf4fe('0x129')]][_0xf4fe('0x135')];}loggerBooked[_0xf4fe('0x7b')](_0xf4fe('0x136'),_0x45e4f2['actionid'],_0xf4fe('0x137'),JSON['stringify'](_['pick'](this[_0xf4fe('0x21')][_0xfb9b19['stateinterface']],['name','unlockRR'])),_0xf4fe('0x138'),JSON[_0xf4fe('0x74')](_0xfb9b19[_0xf4fe('0x131')]));if(!_[_0xf4fe('0xad')](_0xfb9b19)&&_0xfb9b19[_0xf4fe('0xaf')]==='1'&&_0xfb9b19[_0xf4fe('0x12d')]==='0'&&this['agents'][_0xfb9b19[_0xf4fe('0x129')]]['unlockRR']){this[_0xf4fe('0x21')][_0xfb9b19[_0xf4fe('0x129')]][_0xf4fe('0x135')]=![];this[_0xf4fe('0x12b')][_0x551f7e[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xb3')]]=[];this[_0xf4fe('0x8f')][_0xf4fe('0x130')](_0xfb9b19['idHopper'],_0xfb9b19[_0xf4fe('0x129')])[_0xf4fe('0xb1')](function(_0x575eb7){logger[_0xf4fe('0x92')](_0xf4fe('0x132'),util['inspect'](_0x575eb7,{'showHidden':![],'depth':null}));})['finally'](function(){_0x551f7e['updateOriginated'](_0x551f7e[_0xf4fe('0x20')][_0x551f7e['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]]);setTimeout(function(){_0x551f7e[_0xf4fe('0x21')][_0xfb9b19['stateinterface']]['unlockRR']=!![];loggerBooked['info'](_0xf4fe('0x139'),_0x45e4f2[_0xf4fe('0x127')],'Agent:\x20',JSON['stringify'](_[_0xf4fe('0xcc')](_0x551f7e['agents'][_0xfb9b19[_0xf4fe('0x129')]],[_0xf4fe('0x3c'),_0xf4fe('0x135')])),_0xf4fe('0x138'),JSON[_0xf4fe('0x74')](_0xfb9b19[_0xf4fe('0x131')]));},0xc7);delete _0x551f7e[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]];unlockQueueStatus(_0x30d3f9,_0x45e4f2[_0xf4fe('0x127')]);});}else{loggerBooked['info']('[booked][unlock]');this[_0xf4fe('0xb2')](this['voiceQueues'][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcd')],'ListId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]]['ListId'],'VoiceQueueId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['VoiceQueueId']||undefined,'CampaignId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x133')));delete this['actions'][_0x45e4f2[_0xf4fe('0x127')]];unlockQueueStatus(_0x30d3f9);}}else{loggerBooked['info'](_0xf4fe('0x13a'));this[_0xf4fe('0xb2')](this['voiceQueues'][this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xb3')]]);this[_0xf4fe('0xbd')]({'active':![],'ContactId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcd')],'ListId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xf9')],'VoiceQueueId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcf')]||undefined,'CampaignId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x13b')));delete this['actions'][_0x45e4f2[_0xf4fe('0x127')]];unlockQueueStatus(_0x30d3f9);}}else{loggerBooked[_0xf4fe('0x7b')](_0xf4fe('0x13c'));this[_0xf4fe('0xb2')](this[_0xf4fe('0x20')][this[_0xf4fe('0x25')][_0x45e4f2['actionid']][_0xf4fe('0xb3')]]);this['rescheduleContact']({'active':![],'ContactId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcd')],'ListId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]]['ListId'],'VoiceQueueId':this['actions'][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xcf')]||undefined,'CampaignId':this[_0xf4fe('0x25')][_0x45e4f2[_0xf4fe('0x127')]][_0xf4fe('0xd0')]||undefined})['catch'](loggerCatch(_0xf4fe('0x13d')));delete this['actions'][_0x45e4f2['actionid']];unlockQueueStatus(_0x30d3f9);}};Dialer[_0xf4fe('0x1c')]['loopCampaigns']=function(){var _0x28c1a8=this;setInterval(function(){_0x28c1a8[_0xf4fe('0x13e')]();},0x3e8);};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x13f')]=function(_0x129abf){var _0x1f3419=this;return function(){if(!_0x1f3419[_0xf4fe('0x140')](_0x129abf['Trunk'])){if(!_0x1f3419[_0xf4fe('0x140')](_0x129abf['TrunkBackup'])){_0x129abf[_0xf4fe('0x3b')]=_0xf4fe('0x141');throw _0x129abf[_0xf4fe('0x3c')]+_0xf4fe('0x142');}}};};Dialer[_0xf4fe('0x1c')]['checkIfTime']=function(_0x2ba605,_0x22cafa,_0x685588,_0x3c732d){var _0x1332ee=this;return function(){var _0x4dd46a=!![];return _0x1332ee[_0xf4fe('0x143')](_0x2ba605,_0x22cafa,_0x685588,_0x3c732d,_0x4dd46a);};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x144')]=function(_0x3422f3,_0x32c03e,_0xb38921,_0x6aa748){var _0x1fad3b=this;return function(){var _0x402135=![];return _0x1fad3b['ifTime'](_0x3422f3[_0xf4fe('0x44')],_0x32c03e,_0xb38921,_0x6aa748,_0x402135);};};Dialer[_0xf4fe('0x1c')]['ifTime']=function(_0x5c4e88,_0x49b110,_0x43e9b1,_0x1b12cc,_0x200f27){var _0xe3f43c=[];return new BPromise(function(_0x4d3b95,_0x401baa){if(!isNotNull(_0x5c4e88)){_0x1b12cc[_0xf4fe('0x3b')]=_0xf4fe('0x41');return _0x401baa(msgResponse(_0xf4fe('0x143'),_0xf4fe('0x145'),_0x43e9b1+_0xf4fe('0x146')));}if(_[_0xf4fe('0x43')](_0x5c4e88)){_0x1b12cc['message']=_0xf4fe('0x147');return _0x401baa(msgResponse(_0xf4fe('0x143'),_0xf4fe('0x145'),_0x43e9b1+_0xf4fe('0x148')));}if(_0x49b110&&_[_0xf4fe('0x8a')](config[_0xf4fe('0x149')][_0x49b110])){_0x1b12cc['message']=_0xf4fe('0x14a');return _0x401baa(msgResponse(_0xf4fe('0x143'),_0xf4fe('0x145'),_0x43e9b1+_0xf4fe('0x14b')+_0x49b110));}if(_['isArray'](_0x5c4e88)){for(var _0xf678f8=0x0;_0xf678f8<_0x5c4e88[_0xf4fe('0x95')];_0xf678f8+=0x1){_0xe3f43c[_0xf4fe('0x12c')](ami[_0xf4fe('0xae')]({'action':'command','command':util[_0xf4fe('0x75')](_0xf4fe('0x14c'),_0x5c4e88[_0xf678f8][_0xf4fe('0x14d')],!_[_0xf4fe('0x8a')](config[_0xf4fe('0x149')][_0x49b110])?_0x49b110:'')})[_0xf4fe('0xb7')](function(_0x1b0582){return _0x1b0582[_0xf4fe('0x14e')][_0xf4fe('0x14f')]('true')>=0x0;})[_0xf4fe('0xb1')](myreject(_0x401baa)));}}else{_0xe3f43c['push'](ami[_0xf4fe('0xae')]({'action':_0xf4fe('0x150'),'command':util[_0xf4fe('0x75')]('iftime\x20%s,%s',_0x5c4e88,!_[_0xf4fe('0x8a')](config['timezones'][_0x49b110])?_0x49b110:'')})[_0xf4fe('0xb7')](function(_0x2aa037){return _0x2aa037[_0xf4fe('0x14e')][_0xf4fe('0x14f')](_0xf4fe('0x151'))>=0x0;})[_0xf4fe('0xb1')](myreject(_0x401baa)));}BPromise[_0xf4fe('0x152')](_0xe3f43c)[_0xf4fe('0xb7')](function(_0x3933a4){var _0xfac5b8=_[_0xf4fe('0x153')](_0x3933a4);if(_0xfac5b8){return _0x4d3b95(_0xfac5b8);}else{_0x1b12cc[_0xf4fe('0x3b')]=_0x200f27?_0xf4fe('0x154'):_0xf4fe('0x155');return _0x401baa(msgResponse(_0xf4fe('0x156'),_0xf4fe('0x145'),_0xf4fe('0x157')+_0x200f27+'\x20'+_0x43e9b1+_0xf4fe('0x158')+util[_0xf4fe('0x93')](_0x5c4e88,{'showHidden':![],'depth':null})+_0xf4fe('0x159')+_0x49b110));}})[_0xf4fe('0xb1')](function(_0x2c1ef7){return _0x401baa(msgResponse(_0xf4fe('0x143'),_0xf4fe('0x145'),JSON[_0xf4fe('0x74')](_0x2c1ef7)));});});};Dialer['prototype'][_0xf4fe('0x15a')]=function(_0x1e0cd7){var _0x4dc133=this;return function(){switch(_0x1e0cd7[_0xf4fe('0x56')]){case _0xf4fe('0x15b'):freeVariablesPredictive(_0x1e0cd7);_0x4dc133[_0xf4fe('0x15c')](_0x1e0cd7,0x1);break;case _0xf4fe('0x15d'):freeVariablesPredictive(_0x1e0cd7);_0x4dc133['handlePower'](_0x1e0cd7,_0x1e0cd7[_0xf4fe('0x15e')]);break;case _0xf4fe('0xa'):_0x4dc133[_0xf4fe('0xa')](_0x1e0cd7);break;case _0xf4fe('0x9'):freeVariablesPredictive(_0x1e0cd7);_0x4dc133['handlePower'](_0x1e0cd7,0x1);break;default:freeVariablesPredictive(_0x1e0cd7);logger['error'](_0xf4fe('0x15f'),_0x1e0cd7[_0xf4fe('0x3c')],_0xf4fe('0x160'));}};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x161')]=function(_0x26d3d8){var _0x3300be=this;return function(){_0x3300be[_0xf4fe('0x162')](_0x26d3d8);};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xb')]=function(_0x3def7b){var _0x3661aa=this;if(isNotPreview(_0x3def7b[_0xf4fe('0x56')])){if(isVoiceQueueOutbound(_0x3def7b[_0xf4fe('0x78')])&&isActive(_0x3def7b[_0xf4fe('0x55')])){_0x3def7b['sendMessageOneNotActive']=!![];BPromise['resolve']()[_0xf4fe('0xb7')](checkIsLoggedIn(_0x3def7b,_0x3def7b['loggedIn']))['then'](checkIsActive(_0x3def7b,_0x3def7b[_0xf4fe('0x55')]))[_0xf4fe('0xb7')](checkInterval(_0x3def7b))[_0xf4fe('0xb7')](_0x3661aa[_0xf4fe('0x13f')](_0x3def7b))[_0xf4fe('0xb7')](_0x3661aa[_0xf4fe('0x163')](_0x3def7b[_0xf4fe('0x164')],_0x3def7b[_0xf4fe('0x165')],_0x3def7b[_0xf4fe('0x3c')],_0x3def7b))[_0xf4fe('0xb7')](_0x3661aa[_0xf4fe('0x144')](_0x3def7b[_0xf4fe('0x40')],_0x3def7b[_0xf4fe('0x165')],_0x3def7b[_0xf4fe('0x3c')],_0x3def7b))[_0xf4fe('0xb7')](_0x3661aa[_0xf4fe('0x15a')](_0x3def7b))[_0xf4fe('0xb1')](loggerCatchQueueSummary('[syncQueueSummary]',_0x3def7b));}else{notSendMessagesQueue(_0x3def7b);}}else{freeVariablesPredictive(_0x3def7b);}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x13e')]=function(){var _0x4dd962=this;var _0x1517bb;for(var _0x4af9a8 in this[_0xf4fe('0xb4')]){if(typeof this[_0xf4fe('0xb4')][_0x4af9a8]!==_0xf4fe('0x97')){_0x1517bb=this[_0xf4fe('0xb4')][_0x4af9a8];if(isCampaignIvr(_0x1517bb[_0xf4fe('0x78')])&&isActive(_0x1517bb['active'])){_0x1517bb['sendMessageOneNotActive']=!![];BPromise[_0xf4fe('0xb6')]()[_0xf4fe('0xb7')](checkIsActive(_0x1517bb,_0x1517bb['active']))['then'](checkInterval(_0x1517bb))[_0xf4fe('0xb7')](_0x4dd962[_0xf4fe('0x13f')](_0x1517bb))[_0xf4fe('0xb7')](_0x4dd962[_0xf4fe('0x163')](_0x1517bb[_0xf4fe('0x164')],_0x1517bb['dialTimezone'],_0x1517bb[_0xf4fe('0x3c')],_0x1517bb))[_0xf4fe('0xb7')](_0x4dd962[_0xf4fe('0x144')](_0x1517bb['Interval'],_0x1517bb['dialTimezone'],_0x1517bb['name'],_0x1517bb))[_0xf4fe('0xb7')](_0x4dd962[_0xf4fe('0x161')](_0x1517bb))[_0xf4fe('0xb1')](loggerCatchQueueSummary('[syncCampaigns]',_0x1517bb));}else{notSendMessagesCampaign(_0x1517bb);}}}};function getCallerIdRandom(_0x3ddf53,_0x390dd2){var _0x4c4c23;var _0x3b700b;var _0x17ee17;if(_0x390dd2<=0x0){_0x390dd2=0x1;}_0x4c4c23=new RegExp(_0xf4fe('0x166')+_0x390dd2+'}$');_0x3b700b=Math[_0xf4fe('0x167')](0xa,_0x390dd2-0x1);_0x17ee17=Math[_0xf4fe('0x167')](0xa,_0x390dd2)-0x1;return util[_0xf4fe('0x75')]('%s',_[_0xf4fe('0x168')](_0x3ddf53,_0x4c4c23,_['random'](_0x3b700b,_0x17ee17)));}function extractCalleridName(_0x3bd158){var _0x1ca05c=_0x3bd158[_0xf4fe('0x169')](/"(.*?)"/);return _0x1ca05c?_0x1ca05c[0x1]:_0x3bd158;}function extractCalleridNumber(_0x3395dc){var _0x5c8d2d=_0x3395dc[_0xf4fe('0x169')](/<(.*?)>/);return _0x5c8d2d?_0x5c8d2d[0x1]:_0x3395dc;}Dialer[_0xf4fe('0x1c')][_0xf4fe('0x16a')]=function(_0x2bdeb8,_0x15845f){var _0x2562a5=this;var _0x8b727=uuid['v4']();this['actions'][_0x8b727]=new Action(_0x2bdeb8,_0x15845f,_0x8b727);return new BPromise(function(_0x464ba2,_0x1badde){if(_[_0xf4fe('0x8a')](_0x2bdeb8)&&typeof _0x2bdeb8!=='object'){return _0x1badde(msgResponse(_0xf4fe('0x16b'),'Failure','voiceQueue\x20is\x20undefine'));}if(_[_0xf4fe('0x8a')](_0x15845f[_0xf4fe('0x16c')]['phone'])||_0x15845f['Contact'][_0xf4fe('0x16d')]===null){return _0x1badde(msgResponse(_0xf4fe('0x16b'),_0xf4fe('0x145'),_0xf4fe('0x16e')));}var _0x194b39={'XMD-CALLERID':_0x2562a5[_0xf4fe('0x25')][_0x8b727][_0xf4fe('0x16f')](),'XMD-AGI':_0x2bdeb8[_0xf4fe('0x105')]?util[_0xf4fe('0x75')](_0xf4fe('0x170'),ipAgi,_0x2bdeb8[_0xf4fe('0x105')]):'NONE','XMD-AGIAFTER':_0x2bdeb8[_0xf4fe('0x10d')]?util[_0xf4fe('0x75')](_0xf4fe('0x170'),ipAgi,_0x2bdeb8['dialQueueProject2']):_0xf4fe('0x171'),'XMD-QUEUE':_0x2bdeb8[_0xf4fe('0x78')]===_0xf4fe('0x4a')?util[_0xf4fe('0x75')](_0xf4fe('0x172'),_0x2bdeb8[_0xf4fe('0x3c')],_0x2bdeb8[_0xf4fe('0x173')]||'',_0x2bdeb8['dialAgiAfterHangupAgent']?'c':'',_0x2bdeb8[_0xf4fe('0x117')]||0x3):'NONE','XMD-CONTACTID':_0x15845f[_0xf4fe('0xcd')],'XMD-CDRTYPE':_0xf4fe('0x8'),'CALLERID(all)':_0x2562a5[_0xf4fe('0x25')][_0x8b727][_0xf4fe('0x16f')](),'XMD-AMD':_0x2bdeb8[_0xf4fe('0xde')]?_0xf4fe('0x174'):_0xf4fe('0x171'),'XMD-DESTINATION':_0xf4fe('0xdd')};if(_0x2bdeb8[_0xf4fe('0xde')]){_0x194b39[_0xf4fe('0x175')]=_0x2bdeb8[_0xf4fe('0x176')]||0x9c4;_0x194b39[_0xf4fe('0x177')]=_0x2bdeb8[_0xf4fe('0x178')]||0x5dc;_0x194b39[_0xf4fe('0x179')]=_0x2bdeb8[_0xf4fe('0x17a')]||0x320;_0x194b39['XMD-AMDTOTALANALYSISTIME']=_0x2bdeb8[_0xf4fe('0x17b')]||0x1388;_0x194b39[_0xf4fe('0x17c')]=_0x2bdeb8[_0xf4fe('0x17d')]||0x64;_0x194b39['XMD-AMDBETWEENWORDSSILENCE']=_0x2bdeb8['dialAMDBetweenWordsSilence']||0x32;_0x194b39[_0xf4fe('0x17e')]=_0x2bdeb8[_0xf4fe('0x17f')]||0x3;_0x194b39[_0xf4fe('0x180')]=_0x2bdeb8[_0xf4fe('0x181')]||0x100;_0x194b39[_0xf4fe('0x182')]=_0x2bdeb8[_0xf4fe('0x183')]||0x1388;}if(_0x2bdeb8[_0xf4fe('0x78')]==='outbound'){_0x194b39[_0xf4fe('0x184')]=_0x15845f[_0xf4fe('0xcf')];}else{_0x194b39[_0xf4fe('0x185')]=_0x15845f[_0xf4fe('0xd0')];}for(var _0x2894d7 in _0x15845f['Contact']){if(typeof _0x15845f[_0xf4fe('0x16c')][_0x2894d7]!==_0xf4fe('0x97')){if(isNotNull(_0x15845f['Contact'][_0x2894d7])&&_0x2894d7!=='id'&&_0x2894d7!=='tags'&&_0x2894d7!==_0xf4fe('0x186')&&_0x2894d7!=='updatedAt'){_0x194b39[util['format'](_0xf4fe('0x187'),_0xf4fe('0x188'),_[_0xf4fe('0x189')](_0x2894d7))]=_0x15845f[_0xf4fe('0x16c')][_0x2894d7];}}}var _0x17743a=_0x2562a5['isTrunkReachable'](_0x2bdeb8[_0xf4fe('0x73')])?getCallerId(_0x2bdeb8[_0xf4fe('0x73')][_0xf4fe('0x18a')],_0x2bdeb8['dialOriginateCallerIdName'],_0x2bdeb8[_0xf4fe('0x18b')]>0x0?getCallerIdRandom(_0x2bdeb8['dialOriginateCallerIdNumber'],_0x2bdeb8[_0xf4fe('0x18b')]):_0x2bdeb8['dialOriginateCallerIdNumber']):getCallerId(_[_0xf4fe('0xad')](_0x2bdeb8['TrunkBackup'])?_0x2bdeb8[_0xf4fe('0x73')][_0xf4fe('0x18a')]:_0x2bdeb8['TrunkBackup']['callerid'],_0x2bdeb8[_0xf4fe('0x57')],_0x2bdeb8[_0xf4fe('0x18b')]>0x0?getCallerIdRandom(_0x2bdeb8[_0xf4fe('0x18c')],_0x2bdeb8[_0xf4fe('0x18b')]):_0x2bdeb8['dialOriginateCallerIdNumber']);if(_0x17743a){_0x194b39[_0xf4fe('0x18d')]=_0x2562a5[_0xf4fe('0x25')][_0x8b727][_0xf4fe('0x18e')]=extractCalleridName(_0x17743a);_0x194b39[_0xf4fe('0x18f')]=_0x2562a5[_0xf4fe('0x25')][_0x8b727]['originatecalleridnum']=extractCalleridNumber(_0x17743a);}return ami[_0xf4fe('0xae')]({'actionid':_0x8b727,'action':_0xf4fe('0x16b'),'channel':_0x2562a5['isTrunkReachable'](_0x2bdeb8[_0xf4fe('0x73')])?util[_0xf4fe('0x75')](_0xf4fe('0x190'),_0x2bdeb8[_0xf4fe('0x73')][_0xf4fe('0x3c')],isNotNull(_0x2bdeb8[_0xf4fe('0x59')])?_0x2bdeb8[_0xf4fe('0x59')]['trim']()||'':'',_0x2bdeb8[_0xf4fe('0x191')]>0x0?_0x15845f[_0xf4fe('0x16c')][_0xf4fe('0x16d')][_0xf4fe('0x192')](_0x2bdeb8['dialCutDigit']):_0x15845f['Contact'][_0xf4fe('0x16d')]):util['format'](_0xf4fe('0x190'),_['isNil'](_0x2bdeb8[_0xf4fe('0x193')])?_0x2bdeb8[_0xf4fe('0x73')][_0xf4fe('0x3c')]:_0x2bdeb8[_0xf4fe('0x193')][_0xf4fe('0x3c')],isNotNull(_0x2bdeb8['dialPrefix'])?_0x2bdeb8[_0xf4fe('0x59')][_0xf4fe('0x194')]()||'':'',_0x2bdeb8[_0xf4fe('0x191')]>0x0?_0x15845f[_0xf4fe('0x16c')][_0xf4fe('0x16d')][_0xf4fe('0x192')](_0x2bdeb8[_0xf4fe('0x191')]):_0x15845f['Contact'][_0xf4fe('0x16d')]),'callerid':_0x17743a,'Exten':_0xf4fe('0xdd'),'Context':_0xf4fe('0x195'),'Priority':'1','variable':_0x194b39,'timeout':(_0x2bdeb8[_0xf4fe('0x58')]||0x1e)*0x3e8,'async':!![],'channelid':_0x8b727})['then'](function(_0x572632){return _0x464ba2(_0x572632);})[_0xf4fe('0xb1')](function(_0x5cef50){_0x2bdeb8[_0xf4fe('0x62')]+=0x1;var _0x25c959=new History(_0x2562a5['actions'][_0x8b727]);logger[_0xf4fe('0x92')](util[_0xf4fe('0x75')]('[originateError]:\x20%s',JSON[_0xf4fe('0x74')](_0x5cef50)));_0x25c959['state']=0xe;_0x25c959[_0xf4fe('0xe2')]=_0xf4fe('0x196');_0x25c959[_0xf4fe('0xa8')]=moment()[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss');_0x25c959[_0xf4fe('0xa7')]=_0x25c959[_0xf4fe('0xa8')];_0x2562a5[_0xf4fe('0xc6')](_0x25c959)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x197')));_0x2562a5[_0xf4fe('0xc4')](_0x25c959)['catch'](loggerCatch(_0xf4fe('0x197')))[_0xf4fe('0x1f')](function(){delete _0x2562a5[_0xf4fe('0x25')][_0x8b727];return _0x1badde(msgResponse(_0xf4fe('0x16b'),_0xf4fe('0x46'),_0xf4fe('0x198')));});});});};Dialer['prototype'][_0xf4fe('0x2f')]=function(_0x57dda0){var _0x45ac54=this[_0xf4fe('0x25')][_0x57dda0[_0xf4fe('0x127')]];if(_0x45ac54){delete this[_0xf4fe('0x25')][_0x57dda0[_0xf4fe('0x127')]];_0x45ac54['responsetime']=moment()['format'](_0xf4fe('0x100'));var _0x267fad=_0x45ac54['type']===_0xf4fe('0x79')?this[_0xf4fe('0xb4')][_0x45ac54[_0xf4fe('0xb3')]]:this['voiceQueues'][_0x45ac54[_0xf4fe('0x199')]()];if(!this[_0xf4fe('0xd3')](_0x57dda0['response'])){this[_0xf4fe('0xb2')](_0x267fad);return this[_0xf4fe('0x19a')](_0x45ac54,_0x267fad,_0x57dda0)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x19b')));}this[_0xf4fe('0x27')][_0x57dda0['uniqueid']]=_0x45ac54;}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x19c')]=function(_0x4efb41,_0x4fcf92,_0x36b685){var _0x34ae24=new History(_0x4fcf92);if(_0x34ae24[_0xf4fe('0x19d')]+_0x34ae24[_0xf4fe('0xef')]+_0x34ae24[_0xf4fe('0x19e')]+_0x34ae24['countnosuchnumberretry']+_0x34ae24[_0xf4fe('0xf1')]+_0x34ae24[_0xf4fe('0xf2')]+_0x34ae24[_0xf4fe('0xec')]+_0x34ae24[_0xf4fe('0xf3')]>=_0x36b685[_0xf4fe('0xfc')]-0x1){return!![];}switch(_0x4efb41){case 0x3:if(_0x34ae24['countnoanswerretry']>=_0x36b685['dialNoAnswerMaxRetry']-0x1){return!![];}this[_0xf4fe('0xbd')]({'active':![],'countnoanswerretry':_0x34ae24[_0xf4fe('0x19e')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685[_0xf4fe('0x19f')],_0xf4fe('0xff'))[_0xf4fe('0x75')](_0xf4fe('0x100')),'ContactId':_0x34ae24[_0xf4fe('0xcd')],'ListId':_0x34ae24[_0xf4fe('0xf9')],'VoiceQueueId':_0x34ae24['VoiceQueueId']||undefined,'CampaignId':_0x34ae24['CampaignId']||undefined})['catch'](loggerCatch(_0xf4fe('0x1a0')));break;case 0x5:if(_0x34ae24['countbusyretry']>=_0x36b685[_0xf4fe('0x1a1')]-0x1){return!![];}this[_0xf4fe('0xbd')]({'active':![],'countbusyretry':_0x34ae24[_0xf4fe('0x19d')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685['dialBusyRetryFrequency'],_0xf4fe('0xff'))['format'](_0xf4fe('0x100')),'ContactId':_0x34ae24['ContactId'],'ListId':_0x34ae24[_0xf4fe('0xf9')],'VoiceQueueId':_0x34ae24[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x34ae24[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch('[rescheduleContact]\x20[Busy]'));break;case 0x8:if(_0x34ae24['countcongestionretry']>=_0x36b685['dialCongestionMaxRetry']-0x1){return!![];}this[_0xf4fe('0xbd')]({'active':![],'countcongestionretry':_0x34ae24[_0xf4fe('0xef')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685[_0xf4fe('0x1a2')],'minutes')['format'](_0xf4fe('0x100')),'ContactId':_0x34ae24['ContactId'],'ListId':_0x34ae24['ListId'],'VoiceQueueId':_0x34ae24[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x34ae24['CampaignId']||undefined})[_0xf4fe('0xb1')](loggerCatch('[rescheduleContact]\x20[Congestion]'));break;case 0x0:if(_0x34ae24[_0xf4fe('0xf0')]>=_0x36b685[_0xf4fe('0x1a3')]-0x1){return!![];}else{this[_0xf4fe('0xbd')]({'active':![],'countnosuchnumberretry':_0x34ae24[_0xf4fe('0xf0')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685[_0xf4fe('0x1a4')],'minutes')[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x34ae24[_0xf4fe('0xcd')],'ListId':_0x34ae24['ListId'],'VoiceQueueId':_0x34ae24[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x34ae24['CampaignId']||undefined})['catch'](loggerCatch('[rescheduleContact][NoSuchNumber]'));}break;case 0xa:if(_0x34ae24[_0xf4fe('0xf1')]>=_0x36b685[_0xf4fe('0x11b')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countdropretry':_0x34ae24[_0xf4fe('0xf1')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685[_0xf4fe('0x1a5')],_0xf4fe('0xff'))[_0xf4fe('0x75')](_0xf4fe('0x100')),'ContactId':_0x34ae24['ContactId'],'ListId':_0x34ae24[_0xf4fe('0xf9')],'VoiceQueueId':_0x34ae24['VoiceQueueId']||undefined,'CampaignId':_0x34ae24['CampaignId']||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x11c')));break;case 0xb:if(_0x34ae24[_0xf4fe('0xf2')]>=_0x36b685[_0xf4fe('0x121')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countabandonedretry':_0x34ae24[_0xf4fe('0xf2')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685['dialAbandonedRetryFrequency'],_0xf4fe('0xff'))['format'](_0xf4fe('0x100')),'ContactId':_0x34ae24[_0xf4fe('0xcd')],'ListId':_0x34ae24['ListId'],'VoiceQueueId':_0x34ae24[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x34ae24[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch('[rescheduleContact][Abandoned]'));break;case 0x13:if(_0x34ae24[_0xf4fe('0xec')]>=_0x36b685[_0xf4fe('0xfd')]-0x1){return!![];}this['rescheduleContact']({'active':![],'countmachineretry':_0x34ae24[_0xf4fe('0xec')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685[_0xf4fe('0xfe')],_0xf4fe('0xff'))[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x34ae24[_0xf4fe('0xcd')],'ListId':_0x34ae24[_0xf4fe('0xf9')],'VoiceQueueId':_0x34ae24['VoiceQueueId']||undefined,'CampaignId':_0x34ae24[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch('[rescheduleContact][Machine]'));break;case 0x14:if(_0x34ae24[_0xf4fe('0xf3')]>=_0x36b685[_0xf4fe('0x1a6')]-0x1){return!![];}this[_0xf4fe('0xbd')]({'active':![],'countagentrejectretry':_0x34ae24[_0xf4fe('0xf3')]+=0x1,'scheduledat':moment()[_0xf4fe('0xf8')](_0x36b685['dialAgentRejectRetryFrequency'],_0xf4fe('0xff'))['format']('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x34ae24[_0xf4fe('0xcd')],'ListId':_0x34ae24['ListId'],'VoiceQueueId':_0x34ae24['VoiceQueueId']||undefined,'CampaignId':_0x34ae24[_0xf4fe('0xd0')]||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1a7')));break;default:return!![];}};Dialer['prototype'][_0xf4fe('0x19a')]=function(_0x4a6f86,_0xb721d3,_0x312bbb){var _0x26f9f0=this;var _0x5c399e=new History(_0x4a6f86);return new BPromise(function(_0x1352dc,_0x4a9039){if(_[_0xf4fe('0x8a')](_0xb721d3)&&typeof _0xb721d3!==_0xf4fe('0x1a8')){return _0x4a9039(msgResponse('[callProgressDetecting]',_0xf4fe('0x145'),_0xf4fe('0x1a9')));}if(_[_0xf4fe('0x8a')](_0x312bbb)&&typeof _0x312bbb!==_0xf4fe('0x1a8')){return _0x4a9039(msgResponse('[callProgressDetecting]',_0xf4fe('0x145'),'evt\x20is\x20undefine'));}switch(_0x312bbb['reason']){case'0':_0xb721d3[_0xf4fe('0x61')]+=0x1;_0x5c399e[_0xf4fe('0xa6')]=0x0;_0x5c399e[_0xf4fe('0xe2')]='NoSuchNumber';_0x5c399e[_0xf4fe('0xf0')]+=0x1;_0x5c399e['countglobal']+=0x1;ami[_0xf4fe('0x49')]('custom:agentnosuchnumber',ut[_0xf4fe('0xe7')](_0x4a6f86,_0xf4fe('0x1aa')));_0x26f9f0[_0xf4fe('0xc6')](_0x5c399e)['catch'](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x26f9f0[_0xf4fe('0x19c')](0x0,_0x4a6f86,_0xb721d3)){if(_0x5c399e[_0xf4fe('0xf0')]>=_0xb721d3[_0xf4fe('0x1a3')]){_0x26f9f0['createStateFinal'](_0x5c399e,_0x1352dc,_0x4a9039,'reason\x200\x20no\x20such\x20number....');}else{_0x26f9f0['stateGlobal'](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1ab'));}}break;case'3':_0xb721d3[_0xf4fe('0x60')]+=0x1;_0x5c399e[_0xf4fe('0xa6')]=0x3;_0x5c399e[_0xf4fe('0xe2')]='NoAnswer';_0x5c399e['countnoanswerretry']+=0x1;_0x5c399e[_0xf4fe('0xed')]+=0x1;ami[_0xf4fe('0x49')]('custom:agentnoanswer',ut['buildObj'](_0x4a6f86,_0xf4fe('0x1ac')));_0x26f9f0['createHistory'](_0x5c399e)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1ad')));if(_0x26f9f0[_0xf4fe('0x19c')](0x3,_0x4a6f86,_0xb721d3)){if(_0x5c399e['countnoanswerretry']>=_0xb721d3[_0xf4fe('0x1ae')]){_0x26f9f0[_0xf4fe('0xf6')](_0x5c399e,_0x1352dc,_0x4a9039,'reason\x203\x20ringing\x20no\x20answer');}else{_0x26f9f0[_0xf4fe('0xf4')](_0x5c399e,_0x1352dc,_0x4a9039,'reason\x203\x20ringing\x20no\x20answer');}}break;case'5':_0xb721d3[_0xf4fe('0x5c')]+=0x1;_0x5c399e[_0xf4fe('0xa6')]=0x5;_0x5c399e['statedesc']=_0xf4fe('0x1af');_0x5c399e[_0xf4fe('0x19d')]+=0x1;_0x5c399e[_0xf4fe('0xed')]+=0x1;ami[_0xf4fe('0x49')]('custom:agentbusy',ut[_0xf4fe('0xe7')](_0x4a6f86,_0xf4fe('0x1b0')));_0x26f9f0[_0xf4fe('0xc6')](_0x5c399e)[_0xf4fe('0xb1')](loggerCatch('[syncAgentComplete][createHistory][5]'));if(_0x26f9f0['checkRetriveMax'](0x5,_0x4a6f86,_0xb721d3)){if(_0x5c399e[_0xf4fe('0x19d')]>=_0xb721d3[_0xf4fe('0x1a1')]){_0x26f9f0[_0xf4fe('0xf6')](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1b1'));}else{_0x26f9f0[_0xf4fe('0xf4')](_0x5c399e,_0x1352dc,_0x4a9039,'reason\x205\x20busy');}}break;case'8':_0xb721d3[_0xf4fe('0x5d')]+=0x1;_0x5c399e[_0xf4fe('0xa6')]=0x8;_0x5c399e[_0xf4fe('0xe2')]=_0xf4fe('0x1b2');_0x5c399e[_0xf4fe('0xef')]+=0x1;_0x5c399e['countglobal']+=0x1;ami[_0xf4fe('0x49')](_0xf4fe('0x1b3'),ut[_0xf4fe('0xe7')](_0x4a6f86,'congestion'));_0x26f9f0[_0xf4fe('0xc6')](_0x5c399e)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1b4')));if(_0x26f9f0[_0xf4fe('0x19c')](0x8,_0x4a6f86,_0xb721d3)){if(_0x5c399e[_0xf4fe('0xef')]>=_0xb721d3['dialCongestionMaxRetry']){_0x26f9f0[_0xf4fe('0xf6')](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1b5'));}else{_0x26f9f0['stateGlobal'](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1b5'));}}break;case'11':_0xb721d3['outboundAbandonedCallsDay']+=0x1;_0x5c399e['state']=0xb;_0x5c399e[_0xf4fe('0xe2')]='Abandoned';_0x5c399e[_0xf4fe('0xf2')]+=0x1;_0x5c399e[_0xf4fe('0xed')]+=0x1;_0x26f9f0['createHistory'](_0x5c399e)['catch'](loggerCatch(_0xf4fe('0x125')));if(_0x26f9f0[_0xf4fe('0x19c')](0xb,_0x4a6f86,_0xb721d3)){if(_0x5c399e[_0xf4fe('0xf2')]>=_0xb721d3[_0xf4fe('0x121')]){_0x26f9f0['createStateFinal'](_0x5c399e,_0x1352dc,_0x4a9039,'reason\x2011\x20abandoned');}else{_0x26f9f0[_0xf4fe('0xf4')](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1b6'));}}break;case'20':_0xb721d3['outboundRejectCallsDay']+=0x1;_0x5c399e['state']=0x14;_0x5c399e[_0xf4fe('0xe2')]=_0xf4fe('0x1b7');_0x5c399e[_0xf4fe('0xf3')]+=0x1;_0x5c399e[_0xf4fe('0xed')]+=0x1;ami[_0xf4fe('0x49')]('custom:agentreject',ut[_0xf4fe('0xe7')](_0x4a6f86,_0xf4fe('0x1b8')));_0x26f9f0[_0xf4fe('0xc6')](_0x5c399e)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1b9')));if(_0x26f9f0['checkRetriveMax'](0x14,_0x4a6f86,_0xb721d3)){if(_0x5c399e[_0xf4fe('0xf3')]>=_0xb721d3[_0xf4fe('0x1a6')]){_0x26f9f0['createStateFinal'](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1ba'));}else{_0x26f9f0['stateGlobal'](_0x5c399e,_0x1352dc,_0x4a9039,_0xf4fe('0x1ba'));}}break;default:_0xb721d3[_0xf4fe('0x64')]+=0x1;_0x5c399e[_0xf4fe('0xa6')]=0xc;_0x5c399e[_0xf4fe('0xe2')]=_0x312bbb[_0xf4fe('0x10a')];_0x26f9f0['createHistory'](_0x5c399e)[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1bb')));if(_0x26f9f0[_0xf4fe('0x19c')](_0x312bbb[_0xf4fe('0x10a')],_0x4a6f86,_0xb721d3)){if(_0x5c399e[_0xf4fe('0x19d')]+_0x5c399e[_0xf4fe('0xef')]+_0x5c399e[_0xf4fe('0x19e')]+_0x5c399e[_0xf4fe('0xf0')]+_0x5c399e[_0xf4fe('0xf1')]+_0x5c399e[_0xf4fe('0xf2')]+_0x5c399e['countmachineretry']+_0x5c399e['countagentrejectretry']>=_0xb721d3[_0xf4fe('0xfc')]){_0x26f9f0[_0xf4fe('0xf4')](_0x5c399e,_0x1352dc,_0x4a9039,_0x312bbb[_0xf4fe('0x10a')]);}else{_0x26f9f0['createStateFinal'](_0x5c399e,_0x1352dc,_0x4a9039,_0x312bbb[_0xf4fe('0x10a')]);}}}});};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xf4')]=function(_0x6a2972,_0x56a76e,_0x119326,_0x292693){var _0x4ac0ac=new Final(_0x6a2972);_0x4ac0ac[_0xf4fe('0xa6')]=0xf;_0x4ac0ac[_0xf4fe('0xe2')]='Global';this[_0xf4fe('0xf6')](_0x4ac0ac,_0x56a76e,_0x119326,_0x292693);};Dialer[_0xf4fe('0x1c')][_0xf4fe('0xf6')]=function(_0x557f99,_0x7dbc4b,_0x408427,_0x378254){this[_0xf4fe('0xc4')](_0x557f99)[_0xf4fe('0xb7')](function(){return _0x7dbc4b(msgResponse(_0xf4fe('0x1bc'),_0xf4fe('0xd4'),_0x378254));})[_0xf4fe('0xb1')](function(){return _0x408427(msgResponse(_0xf4fe('0x1bd'),_0xf4fe('0x145'),_0xf4fe('0x1be')));});};Dialer['prototype']['predictive']=function(_0x5aa623){var _0x2968e1=_0x5aa623['dialPredictiveOptimizationPercentage']/0x64;var _0x3bdb0f=_0x5aa623[_0xf4fe('0x5f')]/(_0x5aa623[_0xf4fe('0x5f')]+_0x5aa623[_0xf4fe('0xe1')]);var _0x5e79de=Math[_0xf4fe('0x1bf')](_0x5aa623[_0xf4fe('0x6d')]*(_0x5aa623['predictiveIntervalMaxThreshold']/0x64));var _0x2fa578=Math[_0xf4fe('0x1bf')](_0x5aa623[_0xf4fe('0x6d')]*(_0x5aa623[_0xf4fe('0x1c0')]/0x64));var _0x20a27e=_0x5aa623['available']+_0x5aa623[_0xf4fe('0x50')];var _0x58b1cb=Math['floor'](_0x5aa623[_0xf4fe('0x6f')]*_0x5aa623['erlangAbandonmentRate']*_0x5aa623[_0xf4fe('0x1c1')]*_0x5aa623[_0xf4fe('0x6c')]);if(_[_0xf4fe('0x8a')](_0x5aa623[_0xf4fe('0x2a')])){if(!_['isUndefined'](_0x5aa623['startPredictive'])){_0x5aa623[_0xf4fe('0x29')]=undefined;loggerPredictive[_0xf4fe('0x92')](_0xf4fe('0x1c2'),_0xf4fe('0x1c3'));}if(!_[_0xf4fe('0x8a')](_0x5aa623[_0xf4fe('0x8d')])){loggerPredictive['error'](_0xf4fe('0x1c2'),_0xf4fe('0x1c4'));clearInterval(_0x5aa623[_0xf4fe('0x8d')]);_0x5aa623[_0xf4fe('0x8d')]=undefined;}_0x5aa623[_0xf4fe('0x2a')]=moment()['format'](_0xf4fe('0x100'));loggerPredictive[_0xf4fe('0x7b')](_0x5aa623[_0xf4fe('0x3c')],'collection\x20data\x20in\x20progressive\x20at',_0x5aa623[_0xf4fe('0x2a')]);this[_0xf4fe('0x15c')](_0x5aa623,0x1);}else if(ifInterval(_0x5aa623[_0xf4fe('0x1c5')],_0x5aa623[_0xf4fe('0x2a')])){this['handlePower'](_0x5aa623,0x1);loggerPredictiveCalls[_0xf4fe('0x7b')](_0xf4fe('0x1c6'),_0x5aa623['startProgressive'],_0x5aa623[_0xf4fe('0x3c')]);_0x5aa623['erlangCalls']=0x0;_0x5aa623[_0xf4fe('0x6b')]=0x0;}else if(_0x2968e1<_0x3bdb0f&&_0x5aa623[_0xf4fe('0x1c7')]==='dropRate'){freeVariablesPredictive(_0x5aa623);loggerPredictive['info'](_0xf4fe('0x1c8'),_0xf4fe('0x1c9'),_0x3bdb0f,_0xf4fe('0x2a'),_0x5aa623[_0xf4fe('0x3c')]);}else if(_0x58b1cb<_0x5aa623[_0xf4fe('0x6b')]&&_0x5aa623[_0xf4fe('0x1c7')]===_0xf4fe('0x1ca')){freeVariablesPredictive(_0x5aa623);loggerPredictive['info'](_0xf4fe('0x1cb'),_0xf4fe('0x1cc'),_0x58b1cb,'Drop\x20in\x20this\x20interval',_0x5aa623['predictiveIntervalErlangCallsDroppedCalls'],'startProgressive',_0x5aa623[_0xf4fe('0x3c')]);}else if(!ifInterval(_0x5aa623['dialPredictiveInterval'],_0x5aa623['startProgressive'])&&_[_0xf4fe('0x8a')](_0x5aa623['startPredictive'])&&!_[_0xf4fe('0x8a')](_0x5aa623[_0xf4fe('0x2a')])){_0x5aa623['startPredictive']=moment()[_0xf4fe('0x75')](_0xf4fe('0x100'));loggerPredictive[_0xf4fe('0x7b')](_0x5aa623[_0xf4fe('0x3c')],_0xf4fe('0x1cd'),_0x5aa623['startPredictive']);this[_0xf4fe('0x1ce')](_0x5aa623['dialPredictiveInterval'])['then'](this['getDataPredictive'](_0x5aa623))['then'](mergeDataErlangB(_0x5aa623))[_0xf4fe('0xb7')](this['startMethodPredictive'](_0x5aa623))[_0xf4fe('0xb1')](loggerCatchPredictive('Predictive\x20after\x20first\x20interval',_0x5aa623));}else if(!ifInterval(_0x5aa623[_0xf4fe('0x1c5')],_0x5aa623[_0xf4fe('0x29')])){_0x5aa623['predictiveIntervalErlangCallsDroppedCalls']=0x0;_0x5aa623[_0xf4fe('0x29')]=moment()[_0xf4fe('0x75')]('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xf4fe('0x7b')](_0x5aa623['name'],_0xf4fe('0x1cf'),_0x5aa623[_0xf4fe('0x29')]);clearInterval(_0x5aa623['handlePredictive']);_0x5aa623[_0xf4fe('0x8d')]=undefined;this['averageHandleTime'](_0x5aa623['dialPredictiveInterval'])['then'](this[_0xf4fe('0x1d0')](_0x5aa623))['then'](mergeDataErlangB(_0x5aa623))[_0xf4fe('0xb7')](this[_0xf4fe('0x1d1')](_0x5aa623))[_0xf4fe('0xb1')](loggerCatchPredictive('Predictive\x20for\x20every\x20interval',_0x5aa623));}else if(_0x5aa623[_0xf4fe('0x6d')]&&_0x20a27e<_0x5aa623[_0xf4fe('0x6d')]-_0x2fa578){freeVariablesPredictive(_0x5aa623);loggerPredictive[_0xf4fe('0x7b')](_0x5aa623[_0xf4fe('0x3c')],'switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',_0x20a27e,_0xf4fe('0x1d2'),_0x5aa623[_0xf4fe('0x6d')],'-',_0x2fa578,'=',_0x5aa623[_0xf4fe('0x6d')]-_0x2fa578,')');}else if(_0x5aa623[_0xf4fe('0x6d')]&&_0x20a27e>_0x5aa623['predictiveIntervalAvailable']+_0x5e79de){freeVariablesPredictive(_0x5aa623);loggerPredictive[_0xf4fe('0x7b')](_0x5aa623[_0xf4fe('0x3c')],_0xf4fe('0x1d3'),_0x20a27e,_0xf4fe('0x1d4'),_0x5aa623[_0xf4fe('0x6d')],'+',_0x5e79de,'=',_0x5aa623[_0xf4fe('0x6d')]+_0x5e79de,')');}};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x1d0')]=function(_0x3cf22f){var _0x5afe0b=this;return function(_0x402035){return new BPromise(function(_0x4c01c7,_0x2cab74){_[_0xf4fe('0xcb')](_0x3cf22f,_0x402035[0x0]);if(checkGetDataPredictive(_0x402035[0x0])){var _0x58fb86=_0x3cf22f[_0xf4fe('0x6d')]=_0x3cf22f[_0xf4fe('0x50')]+_0x3cf22f['available'];var _0x3bcd30=_0x3cf22f[_0xf4fe('0x1c5')]*0x3c;var _0x21e30a=_0x402035[0x0][_0xf4fe('0x67')]+_0x402035[0x0]['predictiveIntervalAvgHoldtime'];var _0x2a6d05=(_0x402035[0x0][_0xf4fe('0x65')]+_0x402035[0x0][_0xf4fe('0x69')]+_0x402035[0x0][_0xf4fe('0x68')])/_0x402035[0x0][_0xf4fe('0x6e')];_0x3cf22f['predictiveIntervalHitRate']=_0x2a6d05>0x0?_0x2a6d05:0x1;switch(_0x3cf22f['dialPredictiveOptimization']){case _0xf4fe('0x1ca'):var _0x5e9ff6=_0x3cf22f[_0xf4fe('0x1d5')]/0x64;return _0x5afe0b[_0xf4fe('0x1d6')](_0x58fb86,_0x3bcd30,_0x21e30a,_0x2a6d05,_0x5e9ff6)[_0xf4fe('0xb7')](function(_0x22f949){return _0x4c01c7(_0x22f949);});case _0xf4fe('0x1d7'):var _0x3cca0f=_0x3cf22f['dialPredictiveOptimizationPercentage']/0x64;return _0x5afe0b[_0xf4fe('0x1d8')](_0x58fb86,_0x3bcd30,_0x21e30a,_0x2a6d05,_0x3cca0f)[_0xf4fe('0xb7')](function(_0x35a224){return _0x4c01c7(_0x35a224);});default:return _0x2cab74(msgResponse(_0xf4fe('0x1d9'),_0xf4fe('0x145'),_0xf4fe('0x1da')));}}else{return _0x2cab74(msgResponse('[getDataPredictive]',_0xf4fe('0x145'),_0xf4fe('0x1db')));}});};};Dialer['prototype'][_0xf4fe('0x1dc')]=function(_0x479b73){var _0x46be87=this;return function(_0x354a65){return new BPromise(function(_0x484dab,_0x35583a){_['merge'](_0x479b73,_0x354a65[0x0]);if(checkGetDataPredictive(_0x354a65[0x0])){loggerPredictive['info'](JSON[_0xf4fe('0x74')](_0x354a65[0x0]));if(_0x479b73[_0xf4fe('0x1c7')]===_0xf4fe('0x1ca')){return _0x46be87[_0xf4fe('0xc3')](_0x479b73['id'])[_0xf4fe('0xb7')](function(_0x282088){var _0x6a5ba8=_0x479b73['loggedIn']-_0x282088[0x0]['outboundQueuePauses'];var _0x3f6ef3=_0x479b73[_0xf4fe('0x1c5')]*0x3c;var _0x17cf06=_0x354a65[0x0][_0xf4fe('0x67')]+_0x354a65[0x0][_0xf4fe('0x66')];var _0x4ccd3b=(_0x354a65[0x0][_0xf4fe('0x65')]+_0x354a65[0x0][_0xf4fe('0x69')]+_0x354a65[0x0][_0xf4fe('0x68')])/_0x354a65[0x0][_0xf4fe('0x6e')];var _0x359ae6=_0x479b73[_0xf4fe('0x1d5')]/0x64;_0x479b73['predictiveIntervalPauses']=_0x282088[0x0][_0xf4fe('0x1dd')]||0x0;_0x479b73['predictiveIntervalHitRate']=_0x4ccd3b>0x0?_0x4ccd3b:0x1;return _0x46be87[_0xf4fe('0x1d6')](_0x6a5ba8,_0x3f6ef3,_0x17cf06,_0x4ccd3b,_0x359ae6);})[_0xf4fe('0xb7')](function(_0x51df04){return _0x484dab(_0x51df04);})[_0xf4fe('0xb1')](function(_0x82419b){return _0x35583a(msgResponse('[CatchErlangB]',_0xf4fe('0x145'),JSON[_0xf4fe('0x74')](_0x82419b)));});}if(_0x479b73[_0xf4fe('0x1c7')]===_0xf4fe('0x1d7')){return _0x46be87[_0xf4fe('0xc3')](_0x479b73['id'])[_0xf4fe('0xb7')](function(_0x13942b){var _0x1c0756=_0x479b73['loggedIn']-_0x13942b[0x0]['outboundQueuePauses'];var _0x222d37=_0x479b73['dialPredictiveInterval']*0x3c;var _0x2663c6=_0x354a65[0x0]['predictiveIntervalAvgTalktime']+_0x354a65[0x0][_0xf4fe('0x66')];var _0x30d361=(_0x354a65[0x0]['predictiveIntervalAnsweredCalls']+_0x354a65[0x0][_0xf4fe('0x69')]+_0x354a65[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x354a65[0x0][_0xf4fe('0x6e')];var _0x35d84c=_0x479b73[_0xf4fe('0x1d5')]/0x64;_0x479b73['predictiveIntervalPauses']=_0x13942b[0x0]['outboundQueuePauses']||0x0;_0x479b73[_0xf4fe('0x1c1')]=_0x30d361>0x0?_0x30d361:0x1;return _0x46be87[_0xf4fe('0x1d8')](_0x1c0756,_0x222d37,_0x2663c6,_0x30d361,_0x35d84c);})[_0xf4fe('0xb7')](function(_0x4df061){return _0x484dab(_0x4df061);})[_0xf4fe('0xb1')](function(_0xe6ac7a){return _0x35583a(msgResponse(_0xf4fe('0x1de'),_0xf4fe('0x145'),JSON[_0xf4fe('0x74')](_0xe6ac7a)));});}}else{return _0x35583a(msgResponse(_0xf4fe('0x1d9'),_0xf4fe('0x145'),'check\x20failure'));}});};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x1d1')]=function(_0x59f8c8){var _0x4d1038=this;return function(){var _0x2cb33f=0x0;var _0xca446d=Math[_0xf4fe('0x1df')](_0x59f8c8[_0xf4fe('0x70')]*0x3e8);if(_0xca446d>0x0){_0xca446d=_0xca446d<0x64?0x64:_0xca446d;loggerPredictive[_0xf4fe('0x7b')](_0x59f8c8[_0xf4fe('0x3c')],_0xf4fe('0x1e0'),_0xca446d,_0xf4fe('0x47'));_0x59f8c8[_0xf4fe('0x8d')]=setInterval(function(){_0x4d1038[_0xf4fe('0x8d')](_0x59f8c8);loggerPredictiveCalls[_0xf4fe('0x7b')](_0xf4fe('0x1e1'),_0x2cb33f+=0x1);},_0xca446d);}else{loggerPredictive[_0xf4fe('0x7b')](_0x59f8c8['name'],_0xf4fe('0x1e2'));}};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x1e3')]=function(_0x25c927,_0x3e8885){var _0x4f3a41=this;return function(_0x139d9e){if(_[_0xf4fe('0x43')](_0x139d9e)){if(_['isNil'](_0x3e8885[_0xf4fe('0xce')])||!_0x3e8885[_0xf4fe('0x1e4')]){if(_0x25c927[_0xf4fe('0x56')]===_0xf4fe('0x9')){_0x25c927[_0xf4fe('0x12e')]=_[_0xf4fe('0x8a')](_0x25c927[_0xf4fe('0x12e')])?!![]:_0x25c927[_0xf4fe('0x12e')];var _0xb54e3=uuid['v4']();_0x4f3a41['actions'][_0xb54e3]=new Action(_0x25c927,_0x3e8885,_0xb54e3);loggerBooked['info'](_0xf4fe('0x1e5'),_0xb54e3,_0xf4fe('0x1e6'),JSON[_0xf4fe('0x74')](_0x25c927[_0xf4fe('0x12e')]),_0xf4fe('0x1e7'),_0x25c927[_0xf4fe('0x3c')]);if(_0x25c927['queueStatusComplete']){_0x25c927[_0xf4fe('0x12e')]=![];_0x4f3a41['queueBooked'][_0x4f3a41['actions'][_0xb54e3][_0xf4fe('0xb3')]]=[];ami['Action']({'actionid':_0xb54e3,'action':_0xf4fe('0x1e8'),'queue':_0x25c927[_0xf4fe('0x3c')]})['catch'](function(){_0x4f3a41[_0xf4fe('0xb2')](_0x25c927);_0x4f3a41['rescheduleContact']({'active':![],'ContactId':_0x4f3a41[_0xf4fe('0x25')][_0xb54e3][_0xf4fe('0xcd')],'ListId':_0x4f3a41[_0xf4fe('0x25')][_0xb54e3][_0xf4fe('0xf9')],'VoiceQueueId':_0x4f3a41['actions'][_0xb54e3][_0xf4fe('0xcf')]||undefined,'CampaignId':_0x4f3a41[_0xf4fe('0x25')][_0xb54e3]['CampaignId']||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1e9')));delete _0x4f3a41['actions'][_0xb54e3];});}else{loggerBooked[_0xf4fe('0x7b')](_0xf4fe('0x1ea'),JSON[_0xf4fe('0x74')](_0x25c927[_0xf4fe('0x12e')]),_0xf4fe('0x1e7'),_0x25c927[_0xf4fe('0x3c')]);_0x4f3a41[_0xf4fe('0xb2')](_0x25c927);_0x4f3a41[_0xf4fe('0xbd')]({'active':![],'ContactId':_0x4f3a41[_0xf4fe('0x25')][_0xb54e3]['ContactId'],'ListId':_0x4f3a41['actions'][_0xb54e3]['ListId'],'VoiceQueueId':_0x4f3a41['actions'][_0xb54e3]['VoiceQueueId']||undefined,'CampaignId':_0x4f3a41[_0xf4fe('0x25')][_0xb54e3]['CampaignId']||undefined})[_0xf4fe('0xb1')](loggerCatch(_0xf4fe('0x1e9')));delete _0x4f3a41[_0xf4fe('0x25')][_0xb54e3];}}else{return _0x4f3a41['actionOriginate'](_0x25c927,_0x3e8885);}}else{if(getDiff(_0x3e8885['scheduledat'])<_0x25c927['dialRecallMeTimeout']*0x3c){if(_0x3e8885['Agent']&&!_0x3e8885[_0xf4fe('0x1eb')][_0xf4fe('0x1ec')]){_0x4f3a41['preview'][_0xf4fe('0x130')](_0x3e8885['id'])['finally'](function(){_0x4f3a41[_0xf4fe('0xb2')](_0x25c927);});}else{_0x4f3a41[_0xf4fe('0xbf')]({'active':![]},_0x3e8885['id'],0x1)[_0xf4fe('0x1f')](function(){_0x4f3a41[_0xf4fe('0xb2')](_0x25c927);});}}else{_0x25c927[_0xf4fe('0x63')]+=0x1;_0x4f3a41[_0xf4fe('0xb2')](_0x25c927);if(_0x25c927[_0xf4fe('0x1ed')]){_0x4f3a41['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0x3e8885[_0xf4fe('0xcd')],'ListId':_0x3e8885[_0xf4fe('0xf9')],'VoiceQueueId':_0x3e8885[_0xf4fe('0xcf')]||undefined,'CampaignId':_0x3e8885[_0xf4fe('0xd0')]||undefined})['catch'](loggerCatch('[rescheduleContact][dialRecallInQueue]'));_0x4f3a41['createHistory'](createObjHistory(_0x25c927,_0x3e8885,_0xf4fe('0x1ee'),0x17,_0xf4fe('0x1ef')))[_0xf4fe('0xb1')](loggerCatch('[Originate][HistoryDialRecallInQueue][historyCatch]'));}else{_0x4f3a41[_0xf4fe('0xd9')](createObjHistory(_0x25c927,_0x3e8885,_0xf4fe('0x1f0'),0x16,_0xf4fe('0x1f1')),'[Originate][HistoryRecallClose][historyCatch]',_0xf4fe('0x1f2'));}}}}else{_0x25c927[_0xf4fe('0x5b')]+=0x1;_0x4f3a41[_0xf4fe('0xd9')](createObjHistory(_0x25c927,_0x3e8885,_0xf4fe('0x1f3'),0xd,'Blacklist'),_0xf4fe('0x1f4'),_0xf4fe('0x1f5'));throw _0xf4fe('0x1f6');}};};Dialer[_0xf4fe('0x1c')][_0xf4fe('0x162')]=function(_0x5aeb5a){var _0x3dcbe7=this;var _0x3044f8=_0x5aeb5a[_0xf4fe('0x1f7')]-_0x5aeb5a[_0xf4fe('0x96')]-_0x5aeb5a[_0xf4fe('0xc1')];emitCampaignSummary(_0x5aeb5a);if(_0x3044f8>0x0){if(_0x3044f8>this['maxNumberOriginate']){_0x3044f8=this[_0xf4fe('0x23')];}_0x5aeb5a[_0xf4fe('0xc1')]+=_0x3044f8;this[_0xf4fe('0x1f8')](_0x5aeb5a['id'],_0x3044f8,_0x5aeb5a[_0xf4fe('0x1f9')],_0x5aeb5a)['then'](function(_0x4c9d77){_0x5aeb5a['temp']-=_0x3044f8;_0x5aeb5a['temp']=_0x5aeb5a[_0xf4fe('0xc1')]>0x0?_0x5aeb5a[_0xf4fe('0xc1')]:0x0;if(!checkContactEmpty(_0x4c9d77)){_0x5aeb5a[_0xf4fe('0x3b')]='AVAILABLE_CONTACTS_FINISHED';logger['info'](_0xf4fe('0x1fa')+_0x5aeb5a['name']);}else{_0x5aeb5a['originated']+=_0x4c9d77[_0xf4fe('0x95')];_0x5aeb5a['message']=_0xf4fe('0x1fb');for(var _0x1b8dd2=0x0;_0x1b8dd2<_0x4c9d77[_0xf4fe('0x95')];_0x1b8dd2+=0x1){_0x5aeb5a[_0xf4fe('0x1fc')]+=0x1;if(_[_0xf4fe('0xad')](_0x4c9d77[_0x1b8dd2])||_['isNil'](_0x4c9d77[_0x1b8dd2]['Contact'])||_[_0xf4fe('0xad')](_0x4c9d77[_0x1b8dd2]['Contact'][_0xf4fe('0x16d')])){_0x3dcbe7[_0xf4fe('0xca')](_0xf4fe('0x1fd'),_0x5aeb5a,_0x4c9d77[_0x1b8dd2]);}else{_0x3dcbe7[_0xf4fe('0xba')](_[_0xf4fe('0xcc')](_0x4c9d77[_0x1b8dd2],[_0xf4fe('0xd0'),_0xf4fe('0x1fe')]))[_0xf4fe('0xb7')](_0x3dcbe7[_0xf4fe('0x1e3')](_0x5aeb5a,_0x4c9d77[_0x1b8dd2]))['catch'](_0x3dcbe7[_0xf4fe('0x1ff')](_0xf4fe('0x200'),_0x5aeb5a));}}}})[_0xf4fe('0xb1')](loggerGetContactDialer(_0xf4fe('0x201'),_0x5aeb5a,_0x3044f8));}};Dialer['prototype']['handlePower']=function(_0x2e43e4,_0xf52c05){var _0x3aca0e=this;var _0x6053e7=[];var _0x22c18a=_0xf52c05>=0x1?_0xf52c05:0x1;if(_0x2e43e4['dialMethod']===_0xf4fe('0x9')){_0x22c18a=0x1;}var _0x212b8d=Math[_0xf4fe('0x1df')](_0x2e43e4['available']*_0x22c18a)-_0x2e43e4[_0xf4fe('0x96')]-_0x2e43e4[_0xf4fe('0xc1')];emitVoiceQueueSummary(_0x2e43e4);if(_0x2e43e4[_0xf4fe('0x202')]>0x0){var _0x1518d2=_0x2e43e4[_0xf4fe('0x202')]-_0x2e43e4[_0xf4fe('0x96')]-_0x2e43e4[_0xf4fe('0x50')]-_0x2e43e4[_0xf4fe('0xc1')]-_0x2e43e4[_0xf4fe('0x9f')];if(_0x212b8d>_0x1518d2){_0x212b8d=_0x1518d2;}}if(_0x212b8d>0x0){if(_0x2e43e4['dialMethod']===_0xf4fe('0x9')){_0x212b8d=0x1;}if(_0x212b8d>this[_0xf4fe('0x23')]){_0x212b8d=this[_0xf4fe('0x23')];}_0x2e43e4[_0xf4fe('0xc1')]+=_0x212b8d;for(var _0x22e4c1 in this[_0xf4fe('0x21')]){if(typeof this[_0xf4fe('0x21')][_0x22e4c1]!==_0xf4fe('0x97')){if(this[_0xf4fe('0x21')][_0x22e4c1][_0xf4fe('0xa6')]===_0xf4fe('0x203')&&this[_0xf4fe('0x21')][_0x22e4c1][_0xf4fe('0xaf')]===_0xf4fe('0xd7')){_0x6053e7[_0xf4fe('0x12c')](this['agents'][_0x22e4c1]['id']);}}}this[_0xf4fe('0xc0')](_0x2e43e4['id'],_0x6053e7,_0x212b8d,_0x2e43e4[_0xf4fe('0x1f9')],_0x2e43e4)['then'](function(_0x455827){_0x2e43e4[_0xf4fe('0xc1')]-=_0x212b8d;_0x2e43e4[_0xf4fe('0xc1')]=_0x2e43e4['temp']>0x0?_0x2e43e4['temp']:0x0;if(!checkContactEmpty(_0x455827)){_0x3aca0e[_0xf4fe('0xb5')](_0x2e43e4)[_0xf4fe('0xb7')](sendMessageReschedule(_0x2e43e4))[_0xf4fe('0xb1')](loggerCatch('[countReScheduled]\x20'));}else{_0x2e43e4[_0xf4fe('0x96')]+=_0x455827[_0xf4fe('0x95')];_0x2e43e4[_0xf4fe('0x3b')]=_0x2e43e4['dialMethod']===_0xf4fe('0x9')?_0xf4fe('0x174'):_0xf4fe('0x1fb');for(var _0x4e7865=0x0;_0x4e7865<_0x455827['length'];_0x4e7865+=0x1){if(_[_0xf4fe('0xad')](_0x455827[_0x4e7865])||_[_0xf4fe('0xad')](_0x455827[_0x4e7865]['Contact'])||_['isNil'](_0x455827[_0x4e7865][_0xf4fe('0x16c')][_0xf4fe('0x16d')])){_0x3aca0e[_0xf4fe('0xca')](_0xf4fe('0x1fd'),_0x2e43e4,_0x455827[_0x4e7865]);}else{_0x3aca0e['checkIsBlackList'](_['pick'](_0x455827[_0x4e7865],[_0xf4fe('0xcf'),'Contact.phone']))[_0xf4fe('0xb7')](_0x3aca0e[_0xf4fe('0x1e3')](_0x2e43e4,_0x455827[_0x4e7865]))[_0xf4fe('0xb1')](_0x3aca0e[_0xf4fe('0x1ff')](_0xf4fe('0x1fd'),_0x2e43e4));}}}})['catch'](loggerGetContactDialer(_0xf4fe('0x204'),_0x2e43e4,_0x212b8d));}};Dialer['prototype'][_0xf4fe('0x8d')]=function(_0x108c75){if(_0x108c75[_0xf4fe('0x202')]>0x0){var _0x59901d=_0x108c75[_0xf4fe('0x202')]-_0x108c75[_0xf4fe('0x96')]-_0x108c75[_0xf4fe('0x50')];if(_0x59901d>0x0){this['tryOriginatePredictive'](_0x108c75);}else{loggerPredictiveCalls[_0xf4fe('0x7b')](_0xf4fe('0x205'));}}else{this['tryOriginatePredictive'](_0x108c75);}};Dialer[_0xf4fe('0x1c')]['tryOriginatePredictive']=function(_0x4b36c9){var _0x1188f2=this;var _0x24be1f=[];_0x4b36c9['originated']+=0x1;for(var _0x1e1e8d in this[_0xf4fe('0x21')]){if(typeof this[_0xf4fe('0x21')][_0x1e1e8d]!=='undefined'){if(this['agents'][_0x1e1e8d][_0xf4fe('0xa6')]==='not_inuse'&&this[_0xf4fe('0x21')][_0x1e1e8d][_0xf4fe('0xaf')]===_0xf4fe('0xd7')){_0x24be1f[_0xf4fe('0x12c')](this['agents'][_0x1e1e8d]['id']);}}}this[_0xf4fe('0xc0')](_0x4b36c9['id'],_0x24be1f,0x1,_0x4b36c9[_0xf4fe('0x1f9')],_0x4b36c9)[_0xf4fe('0xb7')](function(_0x12bfc3){if(!checkContactEmpty(_0x12bfc3)){checkContactLowerLimitOriginate(_0x4b36c9,0x1,0x0);_0x1188f2[_0xf4fe('0xb5')](_0x4b36c9)[_0xf4fe('0xb7')](sendMessageReschedule(_0x4b36c9))['catch'](loggerCatch(_0xf4fe('0xb8')));}else{_0x4b36c9['message']='RUNNING';if(_[_0xf4fe('0xad')](_0x12bfc3[0x0])||_[_0xf4fe('0xad')](_0x12bfc3[0x0][_0xf4fe('0x16c')])||_[_0xf4fe('0xad')](_0x12bfc3[0x0][_0xf4fe('0x16c')][_0xf4fe('0x16d')])){_0x1188f2[_0xf4fe('0xca')]('[actionOriginate]\x20',_0x4b36c9,_0x12bfc3[0x0]);}else{_0x1188f2[_0xf4fe('0xb9')](_[_0xf4fe('0xcc')](_0x12bfc3[0x0],[_0xf4fe('0xcf'),_0xf4fe('0x1fe')]))[_0xf4fe('0xb7')](_0x1188f2[_0xf4fe('0x1e3')](_0x4b36c9,_0x12bfc3[0x0]))[_0xf4fe('0xb1')](_0x1188f2[_0xf4fe('0x1ff')]('[actionOriginatePredictive]\x20',_0x4b36c9));}}})[_0xf4fe('0xb1')](loggerGetContactDialer(_0xf4fe('0x206'),_0x4b36c9,0x1));emitVoiceQueueSummary(_0x4b36c9);};Dialer['prototype'][_0xf4fe('0x1d6')]=function(_0x448e72,_0xf294fe,_0x5d984c,_0x45b34e,_0x3ea0f3,_0x324180){loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x207'));loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x208'),_0x448e72);loggerPredictive['info'](_0xf4fe('0x209'),_0xf294fe);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x20a'),_0x5d984c);loggerPredictive[_0xf4fe('0x7b')]('P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x45b34e);loggerPredictive['info']('Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x3ea0f3);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x80'));return new BPromise(function(_0x475c78,_0xb9f1e3){if(_0x448e72<=0x0||isNaN(_0x448e72)){return _0xb9f1e3(msgResponse(_0xf4fe('0x20b'),_0xf4fe('0x46'),_0xf4fe('0x20c')+_0x448e72));}if(_0x5d984c<=0x0||isNaN(_0x5d984c)){return _0xb9f1e3(msgResponse(_0xf4fe('0x20b'),_0xf4fe('0x46'),_0xf4fe('0x20d')+_0x5d984c));}if(_0x45b34e<=0x0||isNaN(_0x45b34e)){return _0xb9f1e3(msgResponse('[abandonmentRate]',_0xf4fe('0x46'),_0xf4fe('0x20e')+_0x45b34e));}if(_0xf294fe<=0x0||isNaN(_0xf294fe)){return _0xb9f1e3(msgResponse(_0xf4fe('0x20b'),'Error',_0xf4fe('0x20f')+_0xf294fe));}if(_0x3ea0f3<=0x0||isNaN(_0x3ea0f3)){return _0xb9f1e3(msgResponse(_0xf4fe('0x20b'),_0xf4fe('0x46'),'Amax\x20=\x20'+_0x3ea0f3));}_0x324180=_0x324180||0x0;var _0x3971da=0x1/_0x5d984c;var _0x31269b=0x0;var _0x4f203a=0x0;var _0x1383c1=0x0;var _0x1f2a41=0x0;for(var _0x282468=0x0;_0x1383c1<_0x3ea0f3;_0x282468+=0x1){_0x4f203a=_0x282468/_0xf294fe;_0x31269b=(_0x45b34e*_0x4f203a+_0x324180)/_0x3971da;_0x1383c1=erlangb(_0x31269b,_0x448e72);_0x1f2a41=_0x31269b/_0x448e72*(0x1-erlangb(_0x31269b,_0x448e72));}return _0x475c78({'erlangCalls':_0x282468,'erlangCallToSecond':_0xf294fe/_0x282468,'erlangAbandonmentRate':_0x1383c1,'erlangBusyFactor':_0x1f2a41});});};Dialer[_0xf4fe('0x1c')]['busyFactor']=function(_0x5e1387,_0x397482,_0x2eb7bf,_0x2dc34e,_0x2218a7,_0x49d1aa){loggerPredictive['info'](_0xf4fe('0x210'));loggerPredictive['info'](_0xf4fe('0x208'),_0x5e1387);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x209'),_0x397482);loggerPredictive['info'](_0xf4fe('0x20a'),_0x2eb7bf);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x211'),_0x2dc34e);loggerPredictive['info']('Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x2218a7);loggerPredictive[_0xf4fe('0x7b')](_0xf4fe('0x80'));return new BPromise(function(_0x169460,_0x29a32c){if(_0x5e1387<=0x0||isNaN(_0x5e1387)){return _0x29a32c(msgResponse('[busyFactor]',_0xf4fe('0x46'),_0xf4fe('0x20c')+_0x5e1387));}if(_0x2eb7bf<=0x0||isNaN(_0x2eb7bf)){return _0x29a32c(msgResponse(_0xf4fe('0x212'),_0xf4fe('0x46'),_0xf4fe('0x20d')+_0x2eb7bf));}if(_0x2dc34e<=0x0||isNaN(_0x2dc34e)){return _0x29a32c(msgResponse(_0xf4fe('0x212'),_0xf4fe('0x46'),_0xf4fe('0x20e')+_0x2dc34e));}if(_0x397482<=0x0||isNaN(_0x397482)){return _0x29a32c(msgResponse(_0xf4fe('0x212'),_0xf4fe('0x46'),_0xf4fe('0x20f')+_0x397482));}if(_0x2218a7<=0x0||isNaN(_0x2218a7)){return _0x29a32c(msgResponse(_0xf4fe('0x212'),_0xf4fe('0x46'),_0xf4fe('0x213')+_0x2218a7));}_0x49d1aa=_0x49d1aa||0x0;var _0x5c5362=0x1/_0x2eb7bf;var _0x43e591=0x0;var _0x5e6a1d=0x0;var _0x10b58a=0x0;var _0x28fcc2=0x0;for(var _0x4224c4=0x0;_0x28fcc2<_0x2218a7;_0x4224c4+=0x1){_0x5e6a1d=_0x4224c4/_0x397482;_0x43e591=(_0x2dc34e*_0x5e6a1d+_0x49d1aa)/_0x5c5362;_0x10b58a=erlangb(_0x43e591,_0x5e1387);_0x28fcc2=_0x43e591/_0x5e1387*(0x1-erlangb(_0x43e591,_0x5e1387));}return _0x169460({'erlangCalls':_0x4224c4,'erlangCallToSecond':_0x397482/_0x4224c4,'erlangAbandonmentRate':_0x10b58a,'erlangBusyFactor':_0x28fcc2});});};module[_0xf4fe('0x214')]=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x800f=['scheduledat','type','campaigntype','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','starttime','responsetime','droptime','ringtime','holdtime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','moment','milliseconds','diff'];(function(_0x30aec9,_0x49c280){var _0x3af972=function(_0x56ded2){while(--_0x56ded2){_0x30aec9['push'](_0x30aec9['shift']());}};_0x3af972(++_0x49c280);}(_0x800f,0x18c));var _0xf800=function(_0x3bc44e,_0x48c023){_0x3bc44e=_0x3bc44e-0x0;var _0x22557c=_0x800f[_0x3bc44e];return _0x22557c;};'use strict';var util=require(_0xf800('0x0'));var _=require('lodash');var moment=require(_0xf800('0x1'));function getSeconds(_0x2d9e8e,_0x29d869){var _0x285c64=moment(_0x2d9e8e)['milliseconds'](0x0);var _0x1f96b9=moment(_0x29d869)[_0xf800('0x2')](0x0);return _0x285c64[_0xf800('0x3')](_0x1f96b9,'seconds');}function QueueCallerAbandon(_0xab7a9c,_0x4e6055){this[_0xf800('0x4')]=_0xab7a9c[_0xf800('0x4')];this[_0xf800('0x5')]=_0xab7a9c[_0xf800('0x5')];this[_0xf800('0x6')]=_0xab7a9c[_0xf800('0x5')]==='outbound'?_0xf800('0x7'):_0xab7a9c[_0xf800('0x5')];this[_0xf800('0x8')]=_0xab7a9c[_0xf800('0x8')];this[_0xf800('0x9')]=_0xab7a9c['countcongestionretry'];this[_0xf800('0xa')]=_0xab7a9c[_0xf800('0xa')];this[_0xf800('0xb')]=_0xab7a9c[_0xf800('0x8')]+_0xab7a9c[_0xf800('0x9')]+_0xab7a9c['countnoanswerretry']+_0xab7a9c[_0xf800('0xc')]+_0xab7a9c[_0xf800('0xd')]+_0xab7a9c[_0xf800('0xe')]+_0xab7a9c[_0xf800('0xf')]+_0xab7a9c[_0xf800('0x10')];this[_0xf800('0xc')]=_0xab7a9c[_0xf800('0xc')];this[_0xf800('0xd')]=_0xab7a9c['countdropretry'];this[_0xf800('0xe')]=_0xab7a9c['countabandonedretry'];this[_0xf800('0xf')]=_0xab7a9c['countmachineretry'];this[_0xf800('0x10')]=_0xab7a9c[_0xf800('0x10')];this['uniqueid']=_0x4e6055[_0xf800('0x11')];this[_0xf800('0x12')]=_0xab7a9c[_0xf800('0x13')];this[_0xf800('0x14')]=_0xab7a9c['number'];this[_0xf800('0x15')]=_0xab7a9c[_0xf800('0x15')];this['responsetime']=_0xab7a9c[_0xf800('0x16')];this['droptime']=_0xab7a9c[_0xf800('0x17')];this['endtime']=this[_0xf800('0x17')];this[_0xf800('0x18')]=getSeconds(_0xab7a9c[_0xf800('0x16')],_0xab7a9c[_0xf800('0x15')]);this[_0xf800('0x19')]=getSeconds(this['droptime'],_0xab7a9c['responsetime']);this['talktime']=0x0;this[_0xf800('0x7')]=_0x4e6055[_0xf800('0x7')];this[_0xf800('0x1a')]=_0x4e6055['connectedlinename'];this[_0xf800('0x1b')]=_0x4e6055[_0xf800('0x1b')];this[_0xf800('0x1c')]=_0xab7a9c[_0xf800('0x1c')];this[_0xf800('0x1d')]=_0xab7a9c[_0xf800('0x1d')];this[_0xf800('0x1e')]=_0xab7a9c[_0xf800('0x1e')];this[_0xf800('0x1f')]=_0xab7a9c['recallme'];this[_0xf800('0x20')]=_0xab7a9c[_0xf800('0x20')];this[_0xf800('0x21')]=_0xab7a9c['ListId'];this[_0xf800('0x22')]=_0xab7a9c[_0xf800('0x22')];this[_0xf800('0x23')]=_0xab7a9c['VoiceQueueId'];this['CampaignId']=_0xab7a9c[_0xf800('0x24')];this['originatecalleridnum']=_0xab7a9c[_0xf800('0x25')]||'';this[_0xf800('0x26')]=_0xab7a9c[_0xf800('0x26')]||'';}module[_0xf800('0x27')]=QueueCallerAbandon;
\ No newline at end of file
+var _0xf058=['countagentrejectretry','uniqueid','calleridname','name','calleridnum','starttime','responsetime','droptime','endtime','ringtime','holdtime','talktime','connectedlinename','reason','callback','callbackuniqueid','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','exports','util','lodash','moment','milliseconds','scheduledat','type','queue','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countmachineretry','countnosuchnumberretry','countabandonedretry'];(function(_0x593564,_0x43583f){var _0x211a89=function(_0x40afd6){while(--_0x40afd6){_0x593564['push'](_0x593564['shift']());}};_0x211a89(++_0x43583f);}(_0xf058,0x13f));var _0x8f05=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf058[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x8f05('0x0'));var _=require(_0x8f05('0x1'));var moment=require(_0x8f05('0x2'));function getSeconds(_0x1766d9,_0x34f4ec){var _0xa1d26=moment(_0x1766d9)[_0x8f05('0x3')](0x0);var _0x1cd2b3=moment(_0x34f4ec)['milliseconds'](0x0);return _0xa1d26['diff'](_0x1cd2b3,'seconds');}function QueueCallerAbandon(_0x179ce4,_0x321e54){this[_0x8f05('0x4')]=_0x179ce4[_0x8f05('0x4')];this[_0x8f05('0x5')]=_0x179ce4['type'];this['campaigntype']=_0x179ce4[_0x8f05('0x5')]==='outbound'?_0x8f05('0x6'):_0x179ce4[_0x8f05('0x5')];this[_0x8f05('0x7')]=_0x179ce4[_0x8f05('0x7')];this[_0x8f05('0x8')]=_0x179ce4[_0x8f05('0x8')];this[_0x8f05('0x9')]=_0x179ce4['countnoanswerretry'];this['countglobal']=_0x179ce4[_0x8f05('0x7')]+_0x179ce4['countcongestionretry']+_0x179ce4[_0x8f05('0x9')]+_0x179ce4['countnosuchnumberretry']+_0x179ce4[_0x8f05('0xa')]+_0x179ce4['countabandonedretry']+_0x179ce4[_0x8f05('0xb')]+_0x179ce4['countagentrejectretry'];this[_0x8f05('0xc')]=_0x179ce4['countnosuchnumberretry'];this[_0x8f05('0xa')]=_0x179ce4[_0x8f05('0xa')];this[_0x8f05('0xd')]=_0x179ce4[_0x8f05('0xd')];this['countmachineretry']=_0x179ce4[_0x8f05('0xb')];this[_0x8f05('0xe')]=_0x179ce4[_0x8f05('0xe')];this[_0x8f05('0xf')]=_0x321e54['uniqueid'];this[_0x8f05('0x10')]=_0x179ce4[_0x8f05('0x11')];this[_0x8f05('0x12')]=_0x179ce4['number'];this[_0x8f05('0x13')]=_0x179ce4[_0x8f05('0x13')];this[_0x8f05('0x14')]=_0x179ce4[_0x8f05('0x14')];this[_0x8f05('0x15')]=_0x179ce4[_0x8f05('0x15')];this[_0x8f05('0x16')]=this[_0x8f05('0x15')];this[_0x8f05('0x17')]=getSeconds(_0x179ce4[_0x8f05('0x14')],_0x179ce4[_0x8f05('0x13')]);this[_0x8f05('0x18')]=getSeconds(this[_0x8f05('0x15')],_0x179ce4[_0x8f05('0x14')]);this[_0x8f05('0x19')]=0x0;this[_0x8f05('0x6')]=_0x321e54[_0x8f05('0x6')];this['membername']=_0x321e54[_0x8f05('0x1a')];this[_0x8f05('0x1b')]=_0x321e54[_0x8f05('0x1b')];this[_0x8f05('0x1c')]=_0x179ce4[_0x8f05('0x1c')];this[_0x8f05('0x1d')]=_0x179ce4['callbackuniqueid'];this['callbackat']=_0x179ce4['callbackat'];this[_0x8f05('0x1e')]=_0x179ce4[_0x8f05('0x1e')];this[_0x8f05('0x1f')]=_0x179ce4[_0x8f05('0x1f')];this[_0x8f05('0x20')]=_0x179ce4[_0x8f05('0x20')];this[_0x8f05('0x21')]=_0x179ce4[_0x8f05('0x21')];this['VoiceQueueId']=_0x179ce4[_0x8f05('0x22')];this['CampaignId']=_0x179ce4['CampaignId'];this['originatecalleridnum']=_0x179ce4[_0x8f05('0x23')]||'';this['originatecalleridname']=_0x179ce4['originatecalleridname']||'';}module[_0x8f05('0x24')]=QueueCallerAbandon;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x12a67b,_0x431bb1){var _0x587f55=function(_0x5cfb75){while(--_0x5cfb75){_0x12a67b['push'](_0x12a67b['shift']());}};_0x587f55(++_0x431bb1);}(_0xa9e0,0x123));var _0x0a9e=function(_0x134c2e,_0x3573c4){_0x134c2e=_0x134c2e-0x0;var _0x2825db=_0xa9e0[_0x134c2e];return _0x2825db;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
+var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x10f49d,_0x123ce0){var _0x197602=function(_0x185fe6){while(--_0x185fe6){_0x10f49d['push'](_0x10f49d['shift']());}};_0x197602(++_0x123ce0);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90db=['%s/%s.tif','XMF-PATH','Convert\x20pdf\x20to\x20tif','Action','.pdf','isTrunkReachable','isNil','active','SIP/%s','reachable','unmonitored','checkTrunk','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','Empty\x20Fax','[Fax][checkTrunk][Empty\x20path]','Empty\x20path','Is\x20Valid','exports','util','lodash','bluebird','uuid','moment','path','tiff2pdf','./util/gs','../../../config/logger','../ami','./rpcDb','./channel','./util/util','./action','../rpc/faxAccount','../rpc/faxMessage','channels','faxAccounts','trunks','actions','syncNewchannel','bind','varset','newstate','newexten','syncNewExten','faxstatus','receivefax','syncReceiveFax','hangup','syncHangup','originateresponse','syncOriginateResponse','prototype','from-voip-provider','hasOwnProperty','exten','localstationid','uniqueid','channel','name','\x20syncNewchannel\x20','info','syncVarSet','variable','value','syncNewState','channelstate','channelstatedesc','operation','status','\x20syncFaxStatus\x20','remotestationid','pagestransferred','resolution','transferrate','filename','calleridnum','\x20result\x20conversion\x20file\x20','create','parse','then','notify','catch','error','stringify','\x20receiveFax\x20','merge','pick','reason','AttachmentId','update','SENDING\x20FAILED\x20','logger','[Fax][Message][Error][Updated]','[Fax][Message][Error][NoUpdate2]','updateStatus','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','faxpages','faxstatusstring','SENDING\x20FAILED:\x20','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','message','Fax\x20received','[Fax][execOriginate][failure]','Fax\x20failed','checkAfterSend','Trunk','isValid','Trunk\x20Reachable','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','execute','format'];(function(_0x300d39,_0x2a7f61){var _0x13650f=function(_0x27a3df){while(--_0x27a3df){_0x300d39['push'](_0x300d39['shift']());}};_0x13650f(++_0x2a7f61);}(_0x90db,0x179));var _0xb90d=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0x90db[_0x1da04e];return _0xdd8c41;};'use strict';var util=require(_0xb90d('0x0'));var _=require(_0xb90d('0x1'));var BPromise=require(_0xb90d('0x2'));var uuid=require(_0xb90d('0x3'));var moment=require(_0xb90d('0x4'));var path=require(_0xb90d('0x5'));var tiff2pdf=require(_0xb90d('0x6'));var gs=require(_0xb90d('0x7'));var logger=require(_0xb90d('0x8'))('fax');var ami=require(_0xb90d('0x9'));var rpcDb=require(_0xb90d('0xa'));var Channel=require(_0xb90d('0xb'));var ut=require(_0xb90d('0xc'));var Action=require(_0xb90d('0xd'));var faxAccount=require(_0xb90d('0xe'));var attachment=require('../rpc/attachment');var faxMessage=require(_0xb90d('0xf'));function Fax(_0x38e12c){this[_0xb90d('0x10')]={};this['faxAccounts']=_0x38e12c[_0xb90d('0x11')];this[_0xb90d('0x12')]=_0x38e12c[_0xb90d('0x12')];this[_0xb90d('0x13')]={};ami['on']('newchannel',this[_0xb90d('0x14')][_0xb90d('0x15')](this));ami['on'](_0xb90d('0x16'),this['syncVarSet'][_0xb90d('0x15')](this));ami['on'](_0xb90d('0x17'),this['syncNewState']['bind'](this));ami['on'](_0xb90d('0x18'),this[_0xb90d('0x19')][_0xb90d('0x15')](this));ami['on'](_0xb90d('0x1a'),this['syncFaxStatus']['bind'](this));ami['on'](_0xb90d('0x1b'),this[_0xb90d('0x1c')]['bind'](this));ami['on'](_0xb90d('0x1d'),this[_0xb90d('0x1e')][_0xb90d('0x15')](this));ami['on'](_0xb90d('0x1f'),this[_0xb90d('0x20')][_0xb90d('0x15')](this));}Fax[_0xb90d('0x21')]['syncNewchannel']=function(_0xb684e7){if(_0xb684e7['context']===_0xb90d('0x22')){for(var _0x574cb5 in this['faxAccounts']){if(this[_0xb90d('0x11')][_0xb90d('0x23')](_0x574cb5)){if(_0xb684e7[_0xb90d('0x24')]===this[_0xb90d('0x11')][_0x574cb5][_0xb90d('0x25')]){this[_0xb90d('0x10')][_0xb684e7[_0xb90d('0x26')]]={};this[_0xb90d('0x10')][_0xb684e7['uniqueid']]['channel']=_0xb684e7[_0xb90d('0x27')];this[_0xb90d('0x10')][_0xb684e7[_0xb90d('0x26')]]['id']=this[_0xb90d('0x11')][_0x574cb5]['id'];this['channels'][_0xb684e7[_0xb90d('0x26')]][_0xb90d('0x28')]=this[_0xb90d('0x11')][_0x574cb5][_0xb90d('0x28')];logger['info'](_0xb684e7['uniqueid'],_0xb90d('0x29'));}}}}if(this['actions'][_0xb684e7['uniqueid']]){this[_0xb90d('0x10')][_0xb684e7[_0xb90d('0x26')]]={};this['channels'][_0xb684e7[_0xb90d('0x26')]][_0xb90d('0x27')]=_0xb684e7[_0xb90d('0x27')];logger[_0xb90d('0x2a')](_0xb684e7['uniqueid'],_0xb90d('0x29'));}};Fax['prototype'][_0xb90d('0x2b')]=function(_0x2948e4){if(this[_0xb90d('0x10')][_0x2948e4[_0xb90d('0x26')]]){for(var _0x480556 in _0x2948e4['variable']){if(_0x2948e4[_0xb90d('0x2c')][_0xb90d('0x23')](_0x480556)){this['channels'][_0x2948e4[_0xb90d('0x26')]][_0x480556]=_0x2948e4[_0xb90d('0x2d')];}}}};Fax['prototype'][_0xb90d('0x2e')]=function(_0x55d906){if(this[_0xb90d('0x10')][_0x55d906[_0xb90d('0x26')]]){this[_0xb90d('0x10')][_0x55d906['uniqueid']][_0xb90d('0x2f')]=_0x55d906[_0xb90d('0x2f')];this[_0xb90d('0x10')][_0x55d906[_0xb90d('0x26')]][_0xb90d('0x30')]=_0x55d906[_0xb90d('0x30')];}};Fax[_0xb90d('0x21')][_0xb90d('0x19')]=function(_0x252f71){if(this[_0xb90d('0x10')][_0x252f71[_0xb90d('0x26')]]){for(var _0x53169a in _0x252f71[_0xb90d('0x2c')]){if(_0x252f71[_0xb90d('0x2c')]['hasOwnProperty'](_0x53169a)){this['channels'][_0x252f71[_0xb90d('0x26')]][_0x53169a]=_0x252f71[_0xb90d('0x2d')];}}}};Fax[_0xb90d('0x21')]['syncFaxStatus']=function(_0x4915f7){if(this['channels'][_0x4915f7[_0xb90d('0x26')]]){this[_0xb90d('0x10')][_0x4915f7[_0xb90d('0x26')]][_0xb90d('0x31')]=_0x4915f7[_0xb90d('0x31')];this['channels'][_0x4915f7[_0xb90d('0x26')]][_0xb90d('0x32')]=_0x4915f7[_0xb90d('0x32')];this[_0xb90d('0x10')][_0x4915f7[_0xb90d('0x26')]]['localstationid']=_0x4915f7[_0xb90d('0x25')];this['channels'][_0x4915f7[_0xb90d('0x26')]]['filename']=_0x4915f7['filename'];logger[_0xb90d('0x2a')](_0x4915f7[_0xb90d('0x26')],_0xb90d('0x33'));}};Fax[_0xb90d('0x21')]['syncReceiveFax']=function(_0x7988da){var _0xb3d33d=this;if(this[_0xb90d('0x10')][_0x7988da['uniqueid']]){var _0x3c3ccb=this[_0xb90d('0x10')][_0x7988da['uniqueid']]['id'];this[_0xb90d('0x10')][_0x7988da[_0xb90d('0x26')]][_0xb90d('0x34')]=_0x7988da['remotestationid'];this[_0xb90d('0x10')][_0x7988da['uniqueid']][_0xb90d('0x35')]=_0x7988da[_0xb90d('0x35')];this['channels'][_0x7988da[_0xb90d('0x26')]]['localstationid']=_0x7988da[_0xb90d('0x25')];this[_0xb90d('0x10')][_0x7988da[_0xb90d('0x26')]][_0xb90d('0x36')]=_0x7988da[_0xb90d('0x36')];this[_0xb90d('0x10')][_0x7988da[_0xb90d('0x26')]][_0xb90d('0x37')]=_0x7988da[_0xb90d('0x37')];this['channels'][_0x7988da[_0xb90d('0x26')]]['filename']=_0x7988da[_0xb90d('0x38')];this[_0xb90d('0x10')][_0x7988da[_0xb90d('0x26')]][_0xb90d('0x39')]=_0x7988da[_0xb90d('0x39')];if(this[_0xb90d('0x10')][_0x7988da[_0xb90d('0x26')]][_0xb90d('0x35')]>0x0){tiff2pdf(_0x7988da[_0xb90d('0x38')],'/var/opt/motion2/server/files/attachments/',function(_0x5d594d){logger[_0xb90d('0x2a')](_0x7988da[_0xb90d('0x26')],_0xb90d('0x3a'),_0x5d594d['message']);attachment[_0xb90d('0x3b')]({'name':path[_0xb90d('0x3c')](_0x7988da[_0xb90d('0x38')])[_0xb90d('0x28')],'basename':path[_0xb90d('0x3c')](_0x7988da[_0xb90d('0x38')])[_0xb90d('0x28')]+'.pdf','type':'application/pdf'})[_0xb90d('0x3d')](function(_0x56d6c7){faxAccount[_0xb90d('0x3e')](_0x3c3ccb,{'from':_0x7988da[_0xb90d('0x39')],'mapKey':'fax','body':path[_0xb90d('0x3c')](_0x7988da[_0xb90d('0x38')])[_0xb90d('0x28')]+'.pdf','AttachmentId':_0x56d6c7['id']})[_0xb90d('0x3f')](function(_0x25bedb){logger[_0xb90d('0x40')](_0x7988da[_0xb90d('0x26')],'\x20notify\x20',JSON[_0xb90d('0x41')](_0x25bedb));});})['catch'](function(_0x1f8bfc){logger[_0xb90d('0x40')](_0x7988da[_0xb90d('0x26')],'\x20receiveFax\x20',JSON[_0xb90d('0x41')](_0x1f8bfc));});});}logger[_0xb90d('0x2a')](_0x7988da[_0xb90d('0x26')],_0xb90d('0x42'));}};Fax['prototype'][_0xb90d('0x20')]=function(_0x468ad6){if(this['actions'][_0x468ad6[_0xb90d('0x26')]]){_[_0xb90d('0x43')](this['channels'][_0x468ad6['uniqueid']],_[_0xb90d('0x44')](_0x468ad6,['response',_0xb90d('0x45')]));}};function updateStatus(_0x556025){if(_0x556025[_0xb90d('0x46')]){faxMessage[_0xb90d('0x47')](_0x556025['AttachmentId'],{'failMessage':_0xb90d('0x48')})[_0xb90d('0x3d')](function(_0x31bf88){ut[_0xb90d('0x49')](_0xb90d('0x4a'),_0x31bf88);})[_0xb90d('0x3f')](function(_0x4937f1){ut['logger']('[Fax][Message][Error][NoUpdate1]',_0x4937f1);});}else{ut[_0xb90d('0x49')](_0xb90d('0x4b'));}}Fax[_0xb90d('0x21')][_0xb90d('0x4c')]=function(_0x1803f4,_0x49f364,_0x519fbb){var _0x1ef5d=this;var _0x243b2f={};if(_0x49f364){_0x243b2f={'read':_0x49f364};}else{_0x243b2f={'failMessage':_0x519fbb};}if(this['actions'][_0x1803f4][_0xb90d('0x46')]){faxMessage[_0xb90d('0x47')](this['actions'][_0x1803f4]['AttachmentId'],_0x243b2f)['then'](function(_0x19712f){ut['logger'](_0xb90d('0x4d'),_0x19712f);})[_0xb90d('0x3f')](function(_0x2b8d5e){ut['logger'](_0xb90d('0x4e'),_0x2b8d5e);})['finally'](function(){delete _0x1ef5d[_0xb90d('0x10')][_0x1803f4];delete _0x1ef5d[_0xb90d('0x13')][_0x1803f4];});}else{ut[_0xb90d('0x49')](_0xb90d('0x4f'));delete this[_0xb90d('0x10')][_0x1803f4];delete this[_0xb90d('0x13')][_0x1803f4];}};Fax[_0xb90d('0x21')][_0xb90d('0x1e')]=function(_0x776d73){var _0x445225=this;if(this[_0xb90d('0x10')][_0x776d73[_0xb90d('0x26')]]){if(this[_0xb90d('0x13')][_0x776d73[_0xb90d('0x26')]]){this['channels'][_0x776d73[_0xb90d('0x26')]]['id']=this[_0xb90d('0x13')][_0x776d73[_0xb90d('0x26')]]['id'];this[_0xb90d('0x10')][_0x776d73[_0xb90d('0x26')]]['name']=this[_0xb90d('0x13')][_0x776d73[_0xb90d('0x26')]][_0xb90d('0x28')];}logger[_0xb90d('0x2a')](_0x776d73['uniqueid'],this[_0xb90d('0x13')][_0x776d73['uniqueid']]?_0xb90d('0x50'):'\x20hangup\x20faxRiceive\x20',JSON['stringify'](this['channels'][_0x776d73[_0xb90d('0x26')]]));if(this[_0xb90d('0x13')][_0x776d73[_0xb90d('0x26')]]){if(this[_0xb90d('0x10')][_0x776d73['uniqueid']][_0xb90d('0x51')]>0x0&&this[_0xb90d('0x10')][_0x776d73['uniqueid']][_0xb90d('0x1a')]==='SUCCESS'){this[_0xb90d('0x4c')](_0x776d73[_0xb90d('0x26')],!![]);}else{this[_0xb90d('0x4c')](_0x776d73['uniqueid'],![],this['channels'][_0x776d73['uniqueid']][_0xb90d('0x52')]?_0xb90d('0x53')+this[_0xb90d('0x10')][_0x776d73[_0xb90d('0x26')]][_0xb90d('0x52')]:'SENDING\x20FAILED');}}}};Fax[_0xb90d('0x21')][_0xb90d('0x54')]=function(_0xe88d23){var _0x1d6871=this;return new BPromise(function(_0x1d24f8,_0x4cc162){_0x1d6871[_0xb90d('0x55')](_0xe88d23,_0x1d6871['faxAccounts'][_0xe88d23[_0xb90d('0x56')]])[_0xb90d('0x3d')](function(_0x571673){ut[_0xb90d('0x49')](_0xb90d('0x57'),_0x571673);_0x1d24f8(ut[_0xb90d('0x58')](_0xb90d('0x59')));})[_0xb90d('0x3f')](function(_0x2bd433){ut[_0xb90d('0x49')](_0xb90d('0x5a'),_0x2bd433);updateStatus(_0xe88d23);_0x4cc162(ut[_0xb90d('0x58')](_0xb90d('0x5b')));});});};Fax['prototype'][_0xb90d('0x5c')]=function(_0x19c682){var _0x48833e=this;return new BPromise(function(_0x351bfe,_0x35c902){var _0x166359=_0x48833e['checkTrunk'](_0x48833e[_0xb90d('0x11')][_0x19c682[_0xb90d('0x56')]][_0xb90d('0x5d')],_0x19c682);if(_0x166359[_0xb90d('0x5e')]){_0x351bfe(ut[_0xb90d('0x58')](_0xb90d('0x5f')));}else{_0x35c902(ut['message'](_0x166359[_0xb90d('0x58')]));}});};function originate(_0x3cfba9,_0x3a7be4,_0x39cf40){return new BPromise(function(_0x23fb27,_0x377e56){if(_0x39cf40){var _0x2b97fc=util['format'](_0xb90d('0x60'),path[_0xb90d('0x3c')](_0x3cfba9[_0xb90d('0x5')])[_0xb90d('0x28')],_0x3cfba9[_0xb90d('0x5')]);gs[_0xb90d('0x61')](_0x2b97fc)[_0xb90d('0x3d')](function(){_0x3cfba9['path']=util[_0xb90d('0x62')](_0xb90d('0x63'),path[_0xb90d('0x3c')](_0x3cfba9[_0xb90d('0x5')])['dir'],path[_0xb90d('0x3c')](_0x3cfba9['path'])[_0xb90d('0x28')]);_0x3a7be4[_0xb90d('0x64')]=_0x3cfba9[_0xb90d('0x5')];ut[_0xb90d('0x49')](_0xb90d('0x65'),'');ami[_0xb90d('0x66')](ut['variablesAction'](_0x3cfba9,_0x3a7be4))[_0xb90d('0x3d')](function(_0x15800f){_0x23fb27(_0x15800f);})[_0xb90d('0x3f')](function(_0x4df1d8){_0x377e56(_0x4df1d8);});})[_0xb90d('0x3f')](function(_0x2ed3fa){_0x377e56(_0x2ed3fa);});}else{ami[_0xb90d('0x66')](ut['variablesAction'](_0x3cfba9,_0x3a7be4))['then'](function(_0x34aceb){_0x23fb27(_0x34aceb);})[_0xb90d('0x3f')](function(_0x46c153){_0x377e56(_0x46c153);});}});}Fax[_0xb90d('0x21')]['execOriginate']=function(_0x58b109,_0x349a73){var _0x1c7581=this;return new BPromise(function(_0x5322c6,_0x471037){var _0x1d1517=uuid['v4']();var _0x370cdb=ut['addVariables'](_0x58b109,_0x349a73);_0x1c7581[_0xb90d('0x13')][_0x1d1517]=new Action(_0x1d1517,_0x349a73,_0x58b109);var _0x211415=_0x1c7581[_0xb90d('0x13')][_0x1d1517];if(path[_0xb90d('0x3c')](_0x58b109[_0xb90d('0x5')])['ext']===_0xb90d('0x67')){originate(_0x211415,_0x370cdb,!![])[_0xb90d('0x3d')](function(_0x5c990b){_0x5322c6(_0x5c990b);})[_0xb90d('0x3f')](function(_0x3546a5){_0x471037(_0x3546a5);});}else{originate(_0x211415,_0x370cdb,![])['then'](function(_0x4e7062){_0x5322c6(_0x4e7062);})[_0xb90d('0x3f')](function(_0x411fa6){_0x471037(_0x411fa6);});}});};Fax[_0xb90d('0x21')][_0xb90d('0x68')]=function(_0xdf12b8){return!_['isNil'](_0xdf12b8)&&!_[_0xb90d('0x69')](_0xdf12b8[_0xb90d('0x28')])&&!_[_0xb90d('0x69')](_0xdf12b8[_0xb90d('0x6a')])&&_0xdf12b8[_0xb90d('0x6a')]&&!_[_0xb90d('0x69')](this[_0xb90d('0x12')][util[_0xb90d('0x62')](_0xb90d('0x6b'),_0xdf12b8[_0xb90d('0x28')])])&&!_[_0xb90d('0x69')](this[_0xb90d('0x12')][util[_0xb90d('0x62')](_0xb90d('0x6b'),_0xdf12b8[_0xb90d('0x28')])]['status'])&&(this[_0xb90d('0x12')][util[_0xb90d('0x62')]('SIP/%s',_0xdf12b8['name'])]['status']===_0xb90d('0x6c')||this[_0xb90d('0x12')][util[_0xb90d('0x62')](_0xb90d('0x6b'),_0xdf12b8[_0xb90d('0x28')])]['status']===_0xb90d('0x6d'));};Fax[_0xb90d('0x21')][_0xb90d('0x6e')]=function(_0x5c397a,_0x45e452){if(!this[_0xb90d('0x68')](_0x5c397a)){ut[_0xb90d('0x49')]('[Fax][checkTrunk][Trunk\x20not\x20work]',_[_0xb90d('0x69')](_0x5c397a)?'':_0x5c397a[_0xb90d('0x28')]+_0xb90d('0x6f'));return{'isValid':![],'message':_0xb90d('0x70')};}if(_[_0xb90d('0x69')](_0x45e452['fax'])){ut[_0xb90d('0x49')](_0xb90d('0x71'),JSON[_0xb90d('0x41')](_0x45e452));return{'isValid':![],'message':_0xb90d('0x72')};}if(_[_0xb90d('0x69')](_0x45e452['path'])){ut[_0xb90d('0x49')](_0xb90d('0x73'),JSON[_0xb90d('0x41')](_0x45e452));return{'isValid':![],'message':_0xb90d('0x74')};}return{'isValid':!![],'message':_0xb90d('0x75')};};module[_0xb90d('0x76')]=Fax;
\ No newline at end of file
+var _0x8efe=['filename','remotestationid','pagestransferred','transferrate','calleridnum','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','create','parse','application/pdf','then','notify','.pdf','catch','\x20notify\x20','error','\x20receiveFax\x20','stringify','merge','response','reason','AttachmentId','[Fax][Message][Error][Updated]','[Fax][Message][Error][NoUpdate1]','logger','[Fax][Message][Error][NoUpdate2]','updateStatus','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','faxpages','faxstatusstring','SENDING\x20FAILED:\x20','SENDING\x20FAILED','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','message','Fax\x20received','checkTrunk','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','execute','%s/%s.tif','dir','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','isTrunkReachable','isNil','active','SIP/%s','unmonitored','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','[Fax][checkTrunk][Empty\x20Fax]','Is\x20Valid','exports','util','lodash','bluebird','uuid','moment','path','./util/gs','../../../config/logger','fax','../ami','./channel','./util/util','./action','../rpc/faxAccount','../rpc/attachment','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','varset','syncVarSet','newstate','syncNewState','faxstatus','syncFaxStatus','receivefax','syncReceiveFax','hangup','syncHangup','originateresponse','syncOriginateResponse','prototype','from-voip-provider','exten','localstationid','uniqueid','name','info','\x20syncNewchannel\x20','channel','variable','hasOwnProperty','value','channelstate','syncNewExten','operation','status'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x8efe,0x192));var _0xe8ef=function(_0x17fe6c,_0x43e33c){_0x17fe6c=_0x17fe6c-0x0;var _0x3ad7c2=_0x8efe[_0x17fe6c];return _0x3ad7c2;};'use strict';var util=require(_0xe8ef('0x0'));var _=require(_0xe8ef('0x1'));var BPromise=require(_0xe8ef('0x2'));var uuid=require(_0xe8ef('0x3'));var moment=require(_0xe8ef('0x4'));var path=require(_0xe8ef('0x5'));var tiff2pdf=require('tiff2pdf');var gs=require(_0xe8ef('0x6'));var logger=require(_0xe8ef('0x7'))(_0xe8ef('0x8'));var ami=require(_0xe8ef('0x9'));var rpcDb=require('./rpcDb');var Channel=require(_0xe8ef('0xa'));var ut=require(_0xe8ef('0xb'));var Action=require(_0xe8ef('0xc'));var faxAccount=require(_0xe8ef('0xd'));var attachment=require(_0xe8ef('0xe'));var faxMessage=require('../rpc/faxMessage');function Fax(_0x366b81){this[_0xe8ef('0xf')]={};this[_0xe8ef('0x10')]=_0x366b81['faxAccounts'];this[_0xe8ef('0x11')]=_0x366b81['trunks'];this[_0xe8ef('0x12')]={};ami['on'](_0xe8ef('0x13'),this[_0xe8ef('0x14')][_0xe8ef('0x15')](this));ami['on'](_0xe8ef('0x16'),this[_0xe8ef('0x17')][_0xe8ef('0x15')](this));ami['on'](_0xe8ef('0x18'),this[_0xe8ef('0x19')]['bind'](this));ami['on']('newexten',this['syncNewExten'][_0xe8ef('0x15')](this));ami['on'](_0xe8ef('0x1a'),this[_0xe8ef('0x1b')][_0xe8ef('0x15')](this));ami['on'](_0xe8ef('0x1c'),this[_0xe8ef('0x1d')][_0xe8ef('0x15')](this));ami['on'](_0xe8ef('0x1e'),this[_0xe8ef('0x1f')][_0xe8ef('0x15')](this));ami['on'](_0xe8ef('0x20'),this[_0xe8ef('0x21')]['bind'](this));}Fax[_0xe8ef('0x22')][_0xe8ef('0x14')]=function(_0x174414){if(_0x174414['context']===_0xe8ef('0x23')){for(var _0x23ef64 in this[_0xe8ef('0x10')]){if(this[_0xe8ef('0x10')]['hasOwnProperty'](_0x23ef64)){if(_0x174414[_0xe8ef('0x24')]===this[_0xe8ef('0x10')][_0x23ef64][_0xe8ef('0x25')]){this[_0xe8ef('0xf')][_0x174414[_0xe8ef('0x26')]]={};this['channels'][_0x174414[_0xe8ef('0x26')]]['channel']=_0x174414['channel'];this[_0xe8ef('0xf')][_0x174414[_0xe8ef('0x26')]]['id']=this[_0xe8ef('0x10')][_0x23ef64]['id'];this[_0xe8ef('0xf')][_0x174414[_0xe8ef('0x26')]][_0xe8ef('0x27')]=this[_0xe8ef('0x10')][_0x23ef64][_0xe8ef('0x27')];logger[_0xe8ef('0x28')](_0x174414[_0xe8ef('0x26')],_0xe8ef('0x29'));}}}}if(this[_0xe8ef('0x12')][_0x174414['uniqueid']]){this[_0xe8ef('0xf')][_0x174414[_0xe8ef('0x26')]]={};this[_0xe8ef('0xf')][_0x174414[_0xe8ef('0x26')]][_0xe8ef('0x2a')]=_0x174414[_0xe8ef('0x2a')];logger[_0xe8ef('0x28')](_0x174414[_0xe8ef('0x26')],_0xe8ef('0x29'));}};Fax[_0xe8ef('0x22')][_0xe8ef('0x17')]=function(_0x569eb7){if(this[_0xe8ef('0xf')][_0x569eb7[_0xe8ef('0x26')]]){for(var _0x521e41 in _0x569eb7['variable']){if(_0x569eb7[_0xe8ef('0x2b')][_0xe8ef('0x2c')](_0x521e41)){this[_0xe8ef('0xf')][_0x569eb7[_0xe8ef('0x26')]][_0x521e41]=_0x569eb7[_0xe8ef('0x2d')];}}}};Fax[_0xe8ef('0x22')][_0xe8ef('0x19')]=function(_0x42792c){if(this[_0xe8ef('0xf')][_0x42792c[_0xe8ef('0x26')]]){this['channels'][_0x42792c[_0xe8ef('0x26')]][_0xe8ef('0x2e')]=_0x42792c[_0xe8ef('0x2e')];this[_0xe8ef('0xf')][_0x42792c['uniqueid']]['channelstatedesc']=_0x42792c['channelstatedesc'];}};Fax['prototype'][_0xe8ef('0x2f')]=function(_0x119b1f){if(this[_0xe8ef('0xf')][_0x119b1f[_0xe8ef('0x26')]]){for(var _0x256d19 in _0x119b1f[_0xe8ef('0x2b')]){if(_0x119b1f[_0xe8ef('0x2b')][_0xe8ef('0x2c')](_0x256d19)){this['channels'][_0x119b1f[_0xe8ef('0x26')]][_0x256d19]=_0x119b1f[_0xe8ef('0x2d')];}}}};Fax[_0xe8ef('0x22')]['syncFaxStatus']=function(_0x3f9bf6){if(this[_0xe8ef('0xf')][_0x3f9bf6[_0xe8ef('0x26')]]){this[_0xe8ef('0xf')][_0x3f9bf6['uniqueid']]['operation']=_0x3f9bf6[_0xe8ef('0x30')];this[_0xe8ef('0xf')][_0x3f9bf6[_0xe8ef('0x26')]][_0xe8ef('0x31')]=_0x3f9bf6[_0xe8ef('0x31')];this[_0xe8ef('0xf')][_0x3f9bf6['uniqueid']]['localstationid']=_0x3f9bf6[_0xe8ef('0x25')];this[_0xe8ef('0xf')][_0x3f9bf6[_0xe8ef('0x26')]][_0xe8ef('0x32')]=_0x3f9bf6[_0xe8ef('0x32')];logger[_0xe8ef('0x28')](_0x3f9bf6[_0xe8ef('0x26')],'\x20syncFaxStatus\x20');}};Fax[_0xe8ef('0x22')][_0xe8ef('0x1d')]=function(_0x5c38af){var _0x275486=this;if(this['channels'][_0x5c38af['uniqueid']]){var _0x2224a0=this[_0xe8ef('0xf')][_0x5c38af[_0xe8ef('0x26')]]['id'];this['channels'][_0x5c38af[_0xe8ef('0x26')]][_0xe8ef('0x33')]=_0x5c38af[_0xe8ef('0x33')];this[_0xe8ef('0xf')][_0x5c38af[_0xe8ef('0x26')]][_0xe8ef('0x34')]=_0x5c38af[_0xe8ef('0x34')];this[_0xe8ef('0xf')][_0x5c38af[_0xe8ef('0x26')]]['localstationid']=_0x5c38af['localstationid'];this[_0xe8ef('0xf')][_0x5c38af['uniqueid']]['resolution']=_0x5c38af['resolution'];this['channels'][_0x5c38af[_0xe8ef('0x26')]][_0xe8ef('0x35')]=_0x5c38af[_0xe8ef('0x35')];this[_0xe8ef('0xf')][_0x5c38af[_0xe8ef('0x26')]]['filename']=_0x5c38af[_0xe8ef('0x32')];this[_0xe8ef('0xf')][_0x5c38af['uniqueid']][_0xe8ef('0x36')]=_0x5c38af['calleridnum'];if(this[_0xe8ef('0xf')][_0x5c38af[_0xe8ef('0x26')]][_0xe8ef('0x34')]>0x0){tiff2pdf(_0x5c38af['filename'],_0xe8ef('0x37'),function(_0x51fe81){logger[_0xe8ef('0x28')](_0x5c38af[_0xe8ef('0x26')],_0xe8ef('0x38'),_0x51fe81['message']);attachment[_0xe8ef('0x39')]({'name':path[_0xe8ef('0x3a')](_0x5c38af[_0xe8ef('0x32')])[_0xe8ef('0x27')],'basename':path[_0xe8ef('0x3a')](_0x5c38af[_0xe8ef('0x32')])['name']+'.pdf','type':_0xe8ef('0x3b')})[_0xe8ef('0x3c')](function(_0x2d41b5){faxAccount[_0xe8ef('0x3d')](_0x2224a0,{'from':_0x5c38af[_0xe8ef('0x36')],'mapKey':_0xe8ef('0x8'),'body':path[_0xe8ef('0x3a')](_0x5c38af[_0xe8ef('0x32')])[_0xe8ef('0x27')]+_0xe8ef('0x3e'),'AttachmentId':_0x2d41b5['id']})[_0xe8ef('0x3f')](function(_0x2a69dc){logger['error'](_0x5c38af[_0xe8ef('0x26')],_0xe8ef('0x40'),JSON['stringify'](_0x2a69dc));});})['catch'](function(_0x33cdfe){logger[_0xe8ef('0x41')](_0x5c38af['uniqueid'],_0xe8ef('0x42'),JSON[_0xe8ef('0x43')](_0x33cdfe));});});}logger[_0xe8ef('0x28')](_0x5c38af[_0xe8ef('0x26')],'\x20receiveFax\x20');}};Fax[_0xe8ef('0x22')][_0xe8ef('0x21')]=function(_0x18171b){if(this[_0xe8ef('0x12')][_0x18171b['uniqueid']]){_[_0xe8ef('0x44')](this['channels'][_0x18171b['uniqueid']],_['pick'](_0x18171b,[_0xe8ef('0x45'),_0xe8ef('0x46')]));}};function updateStatus(_0x4fb21c){if(_0x4fb21c[_0xe8ef('0x47')]){faxMessage['update'](_0x4fb21c['AttachmentId'],{'failMessage':'SENDING\x20FAILED\x20'})[_0xe8ef('0x3c')](function(_0x55bb0c){ut['logger'](_0xe8ef('0x48'),_0x55bb0c);})[_0xe8ef('0x3f')](function(_0xc37653){ut['logger'](_0xe8ef('0x49'),_0xc37653);});}else{ut[_0xe8ef('0x4a')](_0xe8ef('0x4b'));}}Fax['prototype'][_0xe8ef('0x4c')]=function(_0x46f310,_0x29af8c,_0x1fb9c9){var _0x369c5d=this;var _0x999b3f={};if(_0x29af8c){_0x999b3f={'read':_0x29af8c};}else{_0x999b3f={'failMessage':_0x1fb9c9};}if(this[_0xe8ef('0x12')][_0x46f310][_0xe8ef('0x47')]){faxMessage['update'](this[_0xe8ef('0x12')][_0x46f310][_0xe8ef('0x47')],_0x999b3f)['then'](function(_0x5d4f9a){ut['logger']('[Fax][Message][Updated]',_0x5d4f9a);})[_0xe8ef('0x3f')](function(_0x506d7f){ut[_0xe8ef('0x4a')]('[Fax][Message][NoUpdate1]',_0x506d7f);})[_0xe8ef('0x4d')](function(){delete _0x369c5d[_0xe8ef('0xf')][_0x46f310];delete _0x369c5d[_0xe8ef('0x12')][_0x46f310];});}else{ut['logger'](_0xe8ef('0x4e'));delete this[_0xe8ef('0xf')][_0x46f310];delete this[_0xe8ef('0x12')][_0x46f310];}};Fax[_0xe8ef('0x22')][_0xe8ef('0x1f')]=function(_0x5c4f9a){var _0x3f414e=this;if(this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]]){if(this[_0xe8ef('0x12')][_0x5c4f9a['uniqueid']]){this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]]['id']=this[_0xe8ef('0x12')][_0x5c4f9a['uniqueid']]['id'];this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]]['name']=this[_0xe8ef('0x12')][_0x5c4f9a['uniqueid']][_0xe8ef('0x27')];}logger[_0xe8ef('0x28')](_0x5c4f9a['uniqueid'],this[_0xe8ef('0x12')][_0x5c4f9a[_0xe8ef('0x26')]]?_0xe8ef('0x4f'):'\x20hangup\x20faxRiceive\x20',JSON[_0xe8ef('0x43')](this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]]));if(this[_0xe8ef('0x12')][_0x5c4f9a[_0xe8ef('0x26')]]){if(this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]][_0xe8ef('0x50')]>0x0&&this[_0xe8ef('0xf')][_0x5c4f9a['uniqueid']]['faxstatus']==='SUCCESS'){this[_0xe8ef('0x4c')](_0x5c4f9a[_0xe8ef('0x26')],!![]);}else{this['updateStatus'](_0x5c4f9a[_0xe8ef('0x26')],![],this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]][_0xe8ef('0x51')]?_0xe8ef('0x52')+this[_0xe8ef('0xf')][_0x5c4f9a[_0xe8ef('0x26')]][_0xe8ef('0x51')]:_0xe8ef('0x53'));}}}};Fax['prototype'][_0xe8ef('0x54')]=function(_0x44ddbd){var _0x5a73c1=this;return new BPromise(function(_0x1f0176,_0x228439){_0x5a73c1[_0xe8ef('0x55')](_0x44ddbd,_0x5a73c1['faxAccounts'][_0x44ddbd[_0xe8ef('0x56')]])[_0xe8ef('0x3c')](function(_0x1435bd){ut['logger'](_0xe8ef('0x57'),_0x1435bd);_0x1f0176(ut[_0xe8ef('0x58')](_0xe8ef('0x59')));})[_0xe8ef('0x3f')](function(_0x52eff2){ut[_0xe8ef('0x4a')]('[Fax][execOriginate][failure]',_0x52eff2);updateStatus(_0x44ddbd);_0x228439(ut[_0xe8ef('0x58')]('Fax\x20failed'));});});};Fax['prototype']['checkAfterSend']=function(_0x5a6166){var _0x5aef6a=this;return new BPromise(function(_0x2e231f,_0x581ed9){var _0x172344=_0x5aef6a[_0xe8ef('0x5a')](_0x5aef6a[_0xe8ef('0x10')][_0x5a6166[_0xe8ef('0x56')]][_0xe8ef('0x5b')],_0x5a6166);if(_0x172344[_0xe8ef('0x5c')]){_0x2e231f(ut[_0xe8ef('0x58')](_0xe8ef('0x5d')));}else{_0x581ed9(ut[_0xe8ef('0x58')](_0x172344['message']));}});};function originate(_0x17be2f,_0x23f4c6,_0x56b333){return new BPromise(function(_0x11dd36,_0x2bb9f6){if(_0x56b333){var _0x44a196=util[_0xe8ef('0x5e')](_0xe8ef('0x5f'),path[_0xe8ef('0x3a')](_0x17be2f[_0xe8ef('0x5')])[_0xe8ef('0x27')],_0x17be2f['path']);gs[_0xe8ef('0x60')](_0x44a196)[_0xe8ef('0x3c')](function(){_0x17be2f[_0xe8ef('0x5')]=util[_0xe8ef('0x5e')](_0xe8ef('0x61'),path[_0xe8ef('0x3a')](_0x17be2f['path'])[_0xe8ef('0x62')],path[_0xe8ef('0x3a')](_0x17be2f[_0xe8ef('0x5')])['name']);_0x23f4c6['XMF-PATH']=_0x17be2f[_0xe8ef('0x5')];ut['logger'](_0xe8ef('0x63'),'');ami[_0xe8ef('0x64')](ut[_0xe8ef('0x65')](_0x17be2f,_0x23f4c6))['then'](function(_0x9d447e){_0x11dd36(_0x9d447e);})[_0xe8ef('0x3f')](function(_0x4ef3be){_0x2bb9f6(_0x4ef3be);});})[_0xe8ef('0x3f')](function(_0x16823f){_0x2bb9f6(_0x16823f);});}else{ami[_0xe8ef('0x64')](ut['variablesAction'](_0x17be2f,_0x23f4c6))[_0xe8ef('0x3c')](function(_0x14ceb8){_0x11dd36(_0x14ceb8);})[_0xe8ef('0x3f')](function(_0x1e86bf){_0x2bb9f6(_0x1e86bf);});}});}Fax['prototype'][_0xe8ef('0x55')]=function(_0x12b4b3,_0x217bde){var _0x4f895d=this;return new BPromise(function(_0x538b63,_0x342984){var _0x52fca3=uuid['v4']();var _0x47d146=ut[_0xe8ef('0x66')](_0x12b4b3,_0x217bde);_0x4f895d[_0xe8ef('0x12')][_0x52fca3]=new Action(_0x52fca3,_0x217bde,_0x12b4b3);var _0x578397=_0x4f895d[_0xe8ef('0x12')][_0x52fca3];if(path['parse'](_0x12b4b3[_0xe8ef('0x5')])['ext']===_0xe8ef('0x3e')){originate(_0x578397,_0x47d146,!![])['then'](function(_0x417636){_0x538b63(_0x417636);})[_0xe8ef('0x3f')](function(_0x28e64a){_0x342984(_0x28e64a);});}else{originate(_0x578397,_0x47d146,![])['then'](function(_0x47abbb){_0x538b63(_0x47abbb);})['catch'](function(_0x59e7a7){_0x342984(_0x59e7a7);});}});};Fax[_0xe8ef('0x22')][_0xe8ef('0x67')]=function(_0x459ad3){return!_['isNil'](_0x459ad3)&&!_[_0xe8ef('0x68')](_0x459ad3['name'])&&!_['isNil'](_0x459ad3['active'])&&_0x459ad3[_0xe8ef('0x69')]&&!_[_0xe8ef('0x68')](this[_0xe8ef('0x11')][util[_0xe8ef('0x5e')](_0xe8ef('0x6a'),_0x459ad3[_0xe8ef('0x27')])])&&!_[_0xe8ef('0x68')](this[_0xe8ef('0x11')][util[_0xe8ef('0x5e')](_0xe8ef('0x6a'),_0x459ad3['name'])][_0xe8ef('0x31')])&&(this[_0xe8ef('0x11')][util[_0xe8ef('0x5e')](_0xe8ef('0x6a'),_0x459ad3['name'])]['status']==='reachable'||this[_0xe8ef('0x11')][util[_0xe8ef('0x5e')](_0xe8ef('0x6a'),_0x459ad3[_0xe8ef('0x27')])][_0xe8ef('0x31')]===_0xe8ef('0x6b'));};Fax['prototype'][_0xe8ef('0x5a')]=function(_0x5d0960,_0xa71bd9){if(!this[_0xe8ef('0x67')](_0x5d0960)){ut[_0xe8ef('0x4a')](_0xe8ef('0x6c'),_['isNil'](_0x5d0960)?'':_0x5d0960[_0xe8ef('0x27')]+_0xe8ef('0x6d'));return{'isValid':![],'message':'Trunk\x20not\x20working'};}if(_[_0xe8ef('0x68')](_0xa71bd9['fax'])){ut['logger'](_0xe8ef('0x6e'),JSON[_0xe8ef('0x43')](_0xa71bd9));return{'isValid':![],'message':'Empty\x20Fax'};}if(_['isNil'](_0xa71bd9[_0xe8ef('0x5')])){ut[_0xe8ef('0x4a')]('[Fax][checkTrunk][Empty\x20path]',JSON['stringify'](_0xa71bd9));return{'isValid':![],'message':'Empty\x20path'};}return{'isValid':!![],'message':_0xe8ef('0x6f')};};module[_0xe8ef('0x70')]=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeeea=['catch','[Notify]\x20','bluebird','../../../config/logger','preview','../rpc/faxAccount','inspect','notify','resolve','then'];(function(_0x58da8d,_0x462e9d){var _0x549771=function(_0x79c9e1){while(--_0x79c9e1){_0x58da8d['push'](_0x58da8d['shift']());}};_0x549771(++_0x462e9d);}(_0xeeea,0x8e));var _0xaeee=function(_0x56a6ce,_0x3a7b9e){_0x56a6ce=_0x56a6ce-0x0;var _0x2fc2eb=_0xeeea[_0x56a6ce];return _0x2fc2eb;};'use strict';var util=require('util');var BPromise=require(_0xaeee('0x0'));var logger=require(_0xaeee('0x1'))(_0xaeee('0x2'));var _=require('lodash');var faxAccount=require(_0xaeee('0x3'));function loggerCatch(_0x27fe6c){return function(_0xd73ff){logger['error'](_0x27fe6c,util[_0xaeee('0x4')](_0xd73ff,{'showHidden':![],'depth':null}));};}exports[_0xaeee('0x5')]=function(_0x53413f,_0x50c11d){return BPromise[_0xaeee('0x6')]()[_0xaeee('0x7')](faxAccount[_0xaeee('0x5')](_0x53413f,_0x50c11d))[_0xaeee('0x8')](loggerCatch(_0xaeee('0x9')));};
\ No newline at end of file
+var _0xc1e2=['../rpc/faxAccount','error','inspect','notify','resolve','then','[Notify]\x20','util','bluebird','../../../config/logger'];(function(_0xc51450,_0x33470c){var _0x1b0be2=function(_0x3fd815){while(--_0x3fd815){_0xc51450['push'](_0xc51450['shift']());}};_0x1b0be2(++_0x33470c);}(_0xc1e2,0xbb));var _0x2c1e=function(_0x4d1377,_0x2fd6e3){_0x4d1377=_0x4d1377-0x0;var _0x1fac77=_0xc1e2[_0x4d1377];return _0x1fac77;};'use strict';var util=require(_0x2c1e('0x0'));var BPromise=require(_0x2c1e('0x1'));var logger=require(_0x2c1e('0x2'))('preview');var _=require('lodash');var faxAccount=require(_0x2c1e('0x3'));function loggerCatch(_0x1d75d9){return function(_0x398f54){logger[_0x2c1e('0x4')](_0x1d75d9,util[_0x2c1e('0x5')](_0x398f54,{'showHidden':![],'depth':null}));};}exports[_0x2c1e('0x6')]=function(_0x11a086,_0x56d876){return BPromise[_0x2c1e('0x7')]()[_0x2c1e('0x8')](faxAccount[_0x2c1e('0x6')](_0x11a086,_0x56d876))['catch'](loggerCatch(_0x2c1e('0x9')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e62=['bluebird','child_process','execute','info','Exec\x20gs','\x20Error\x20:','inspect','../../../../config/logger'];(function(_0x58b46e,_0x38a2b2){var _0x3b4b35=function(_0x27ca69){while(--_0x27ca69){_0x58b46e['push'](_0x58b46e['shift']());}};_0x3b4b35(++_0x38a2b2);}(_0x9e62,0x97));var _0x29e6=function(_0x444f91,_0x2a61f2){_0x444f91=_0x444f91-0x0;var _0x3248ab=_0x9e62[_0x444f91];return _0x3248ab;};'use strict';var util=require('util');var logger=require(_0x29e6('0x0'))('fax');var BPromise=require(_0x29e6('0x1'));var exec=require(_0x29e6('0x2'))['exec'];exports[_0x29e6('0x3')]=function(_0x1a521d){return new BPromise(function(_0x2f6042,_0x3a3acc){exec(_0x1a521d,function(_0x50ad39,_0xb7bbbd,_0x4b97c5){logger[_0x29e6('0x4')](_0x29e6('0x5'),_0xb7bbbd);if(_0x50ad39){logger[_0x29e6('0x4')]('Exec\x20gs',_0x29e6('0x6'),util[_0x29e6('0x7')](_0x50ad39,{'showHidden':![],'depth':null}),_0xb7bbbd,_0x4b97c5);_0x3a3acc(_0x50ad39);}_0x2f6042(_0xb7bbbd);});});};
\ No newline at end of file
+var _0x5a93=['inspect','util','../../../../config/logger','fax','child_process','exec','execute','info','Exec\x20gs','\x20Error\x20:'];(function(_0x15fbde,_0x5098a1){var _0x5786a5=function(_0x2c3524){while(--_0x2c3524){_0x15fbde['push'](_0x15fbde['shift']());}};_0x5786a5(++_0x5098a1);}(_0x5a93,0x15f));var _0x35a9=function(_0x54a3ba,_0x1c0f27){_0x54a3ba=_0x54a3ba-0x0;var _0x2bd8e1=_0x5a93[_0x54a3ba];return _0x2bd8e1;};'use strict';var util=require(_0x35a9('0x0'));var logger=require(_0x35a9('0x1'))(_0x35a9('0x2'));var BPromise=require('bluebird');var exec=require(_0x35a9('0x3'))[_0x35a9('0x4')];exports[_0x35a9('0x5')]=function(_0x195b02){return new BPromise(function(_0x3812b9,_0xe1a115){exec(_0x195b02,function(_0x54e7ee,_0xc0ce20,_0x127139){logger[_0x35a9('0x6')](_0x35a9('0x7'),_0xc0ce20);if(_0x54e7ee){logger['info'](_0x35a9('0x7'),_0x35a9('0x8'),util[_0x35a9('0x9')](_0x54e7ee,{'showHidden':![],'depth':null}),_0xc0ce20,_0x127139);_0xe1a115(_0x54e7ee);}_0x3812b9(_0xc0ce20);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf922=['localstationid','path','uniqueid','originate','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>','util','lodash','../../../../config/logger','fax','message','logger','inspect','headerinfo','format','gateway','faxdetect'];(function(_0x13df9a,_0x94dfb6){var _0x3d296d=function(_0x2174ed){while(--_0x2174ed){_0x13df9a['push'](_0x13df9a['shift']());}};_0x3d296d(++_0x94dfb6);}(_0xf922,0x1aa));var _0x2f92=function(_0x249c57,_0x104d62){_0x249c57=_0x249c57-0x0;var _0x1bf725=_0xf922[_0x249c57];return _0x1bf725;};'use strict';var util=require(_0x2f92('0x0'));var _=require(_0x2f92('0x1'));var moment=require('moment');var logger=require(_0x2f92('0x2'))(_0x2f92('0x3'));exports[_0x2f92('0x4')]=function(_0x377ddc){return{'message':_0x377ddc};};exports[_0x2f92('0x5')]=function(_0x23b541,_0x5dc7c7){logger['info'](_0x23b541,util[_0x2f92('0x6')](_0x5dc7c7,{'showHidden':![],'depth':null}));};exports['addVariables']=function(_0x11c7b6,_0x49cdae){var _0x13fc22={'XMF-ECM':_0x49cdae['ecm'],'XMF-HEADERINFO':_0x49cdae[_0x2f92('0x7')],'XMF-MINRATE':_0x49cdae['minrate'],'XMF-MAXRATE':_0x49cdae['maxrate'],'XMF-MODEM':util[_0x2f92('0x8')]('\x22%s\x22',_0x49cdae['modem']),'XMF-GATEWAY':_0x49cdae[_0x2f92('0x9')],'XMF-FAXDETECT':_0x49cdae[_0x2f92('0xa')],'XMF-T38TIMEOUT':_0x49cdae['t38timeout'],'XMF-LOCALSTATIONID':_0x49cdae[_0x2f92('0xb')],'XMF-PATH':_0x11c7b6[_0x2f92('0xc')]};return _0x13fc22;};exports['variablesAction']=function(_0x596156,_0x282bf4){return{'actionid':_0x596156[_0x2f92('0xd')],'action':_0x2f92('0xe'),'channel':_0x596156[_0x2f92('0xf')],'Exten':_0x2f92('0x10'),'Context':_0x2f92('0x11'),'Priority':'1','callerid':util[_0x2f92('0x8')](_0x2f92('0x12'),_0x596156[_0x2f92('0x7')]?_0x596156[_0x2f92('0x7')]:'',_0x596156[_0x2f92('0xb')]),'variable':_0x282bf4,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x596156[_0x2f92('0xd')]};};
\ No newline at end of file
+var _0x6dcd=['uniqueid','originate','channel','xcally-motion-fax','\x22%s\x22\x20<%s>','headerinfo','util','lodash','moment','../../../../config/logger','fax','logger','inspect','addVariables','format','\x22%s\x22','modem','gateway','faxdetect','t38timeout','localstationid','path','variablesAction'];(function(_0x3c4423,_0x46eaa4){var _0x445ed7=function(_0x374372){while(--_0x374372){_0x3c4423['push'](_0x3c4423['shift']());}};_0x445ed7(++_0x46eaa4);}(_0x6dcd,0x15f));var _0xd6dc=function(_0x430810,_0x363337){_0x430810=_0x430810-0x0;var _0x4947c9=_0x6dcd[_0x430810];return _0x4947c9;};'use strict';var util=require(_0xd6dc('0x0'));var _=require(_0xd6dc('0x1'));var moment=require(_0xd6dc('0x2'));var logger=require(_0xd6dc('0x3'))(_0xd6dc('0x4'));exports['message']=function(_0x25df7e){return{'message':_0x25df7e};};exports[_0xd6dc('0x5')]=function(_0x320330,_0x3b4c29){logger['info'](_0x320330,util[_0xd6dc('0x6')](_0x3b4c29,{'showHidden':![],'depth':null}));};exports[_0xd6dc('0x7')]=function(_0x3f0422,_0xb8e0e1){var _0x34dcc6={'XMF-ECM':_0xb8e0e1['ecm'],'XMF-HEADERINFO':_0xb8e0e1['headerinfo'],'XMF-MINRATE':_0xb8e0e1['minrate'],'XMF-MAXRATE':_0xb8e0e1['maxrate'],'XMF-MODEM':util[_0xd6dc('0x8')](_0xd6dc('0x9'),_0xb8e0e1[_0xd6dc('0xa')]),'XMF-GATEWAY':_0xb8e0e1[_0xd6dc('0xb')],'XMF-FAXDETECT':_0xb8e0e1[_0xd6dc('0xc')],'XMF-T38TIMEOUT':_0xb8e0e1[_0xd6dc('0xd')],'XMF-LOCALSTATIONID':_0xb8e0e1[_0xd6dc('0xe')],'XMF-PATH':_0x3f0422[_0xd6dc('0xf')]};return _0x34dcc6;};exports[_0xd6dc('0x10')]=function(_0x25fb51,_0x1aaff2){return{'actionid':_0x25fb51[_0xd6dc('0x11')],'action':_0xd6dc('0x12'),'channel':_0x25fb51[_0xd6dc('0x13')],'Exten':_0xd6dc('0x14'),'Context':'from-sip','Priority':'1','callerid':util[_0xd6dc('0x8')](_0xd6dc('0x15'),_0x25fb51['headerinfo']?_0x25fb51[_0xd6dc('0x16')]:'',_0x25fb51[_0xd6dc('0xe')]),'variable':_0x1aaff2,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x25fb51[_0xd6dc('0x11')]};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x26ec=['get','then','initAgents','getTelephones','getTrunks','initTrunks','getVoiceQueues','getTriggers','getTemplates','initTemplates','getZendeskAccounts','initZendeskAccounts','getSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','initDeskAccounts','getZohoAccounts','initZohoAccounts','getVtigerAccounts','initVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','initServicenowAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns','initCampaigns','initVoiceExtensions','getFaxAccounts','initFaxAccounts','initVoiceQueueReports','getCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports','log','listen','sync','catch','bluebird','util','moment','./server','./realtime','./report','./acw','./dialer','./preview','./fax','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/cmHopperHistory','./rpc/campaign','./rpc/faxAccount','./rpc/integrations/sugarcrm','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/freshsales','./rpc/integrations/dynamics365'];(function(_0x300a00,_0x5412f9){var _0x1c6759=function(_0x47d935){while(--_0x47d935){_0x300a00['push'](_0x300a00['shift']());}};_0x1c6759(++_0x5412f9);}(_0x26ec,0x173));var _0xc26e=function(_0x59c1f8,_0x41ab2d){_0x59c1f8=_0x59c1f8-0x0;var _0x41e2b4=_0x26ec[_0x59c1f8];return _0x41e2b4;};'use strict';var BPromise=require(_0xc26e('0x0'));var util=require(_0xc26e('0x1'));var moment=require(_0xc26e('0x2'));var server=require(_0xc26e('0x3'));var Realtime=require(_0xc26e('0x4'));var Report=require(_0xc26e('0x5'));var Acw=require(_0xc26e('0x6'));var Trigger=require('./trigger');var Dialer=require(_0xc26e('0x7'));var Preview=require(_0xc26e('0x8'));var Fax=require(_0xc26e('0x9'));var user=require('./rpc/user');var voiceQueue=require(_0xc26e('0xa'));var voiceQueueReport=require(_0xc26e('0xb'));var voiceCallReport=require(_0xc26e('0xc'));var trunk=require(_0xc26e('0xd'));var trigger=require(_0xc26e('0xe'));var template=require(_0xc26e('0xf'));var cmHopperHistory=require(_0xc26e('0x10'));var campaign=require(_0xc26e('0x11'));var voiceExtension=require('./rpc/voiceExtension');var faxAccount=require(_0xc26e('0x12'));var zendesk=require('./rpc/integrations/zendesk');var salesforce=require('./rpc/integrations/salesforce');var sugarcrm=require(_0xc26e('0x13'));var freshdesk=require(_0xc26e('0x14'));var desk=require(_0xc26e('0x15'));var zoho=require(_0xc26e('0x16'));var vtiger=require('./rpc/integrations/vtiger');var freshsales=require(_0xc26e('0x17'));var servicenow=require('./rpc/integrations/servicenow');var dynamics365=require(_0xc26e('0x18'));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()[_0xc26e('0x19')]('hour')===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0xc26e('0x19')]('hour')===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise['resolve']()[_0xc26e('0x1a')](user['getAgents']())[_0xc26e('0x1a')](realtime[_0xc26e('0x1b')]())[_0xc26e('0x1a')](user[_0xc26e('0x1c')]())['then'](realtime['initTelephones']())[_0xc26e('0x1a')](trunk[_0xc26e('0x1d')]())['then'](realtime[_0xc26e('0x1e')]())[_0xc26e('0x1a')](voiceQueue[_0xc26e('0x1f')]())[_0xc26e('0x1a')](realtime['initVoiceQueues']())['then'](trigger[_0xc26e('0x20')]())[_0xc26e('0x1a')](realtime['initTriggers']())[_0xc26e('0x1a')](template[_0xc26e('0x21')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x22')]())[_0xc26e('0x1a')](zendesk[_0xc26e('0x23')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x24')]())[_0xc26e('0x1a')](salesforce[_0xc26e('0x25')]())[_0xc26e('0x1a')](realtime['initSalesforceAccounts']())[_0xc26e('0x1a')](sugarcrm[_0xc26e('0x26')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x27')]())['then'](freshdesk[_0xc26e('0x28')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x29')]())['then'](desk[_0xc26e('0x2a')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x2b')]())[_0xc26e('0x1a')](zoho[_0xc26e('0x2c')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x2d')]())[_0xc26e('0x1a')](vtiger[_0xc26e('0x2e')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x2f')]())[_0xc26e('0x1a')](freshsales[_0xc26e('0x30')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x31')]())[_0xc26e('0x1a')](servicenow['getServicenowAccounts']())[_0xc26e('0x1a')](realtime[_0xc26e('0x32')]())['then'](dynamics365[_0xc26e('0x33')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x34')]())[_0xc26e('0x1a')](campaign[_0xc26e('0x35')]())['then'](realtime[_0xc26e('0x36')]())['then'](voiceExtension['getVoiceExtensions']())[_0xc26e('0x1a')](realtime[_0xc26e('0x37')]())[_0xc26e('0x1a')](faxAccount[_0xc26e('0x38')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x39')]())[_0xc26e('0x1a')](function(){return realtime;});}function initParams(){return BPromise['resolve']()[_0xc26e('0x1a')](voiceQueueReport['getVoiceQueueReports']())[_0xc26e('0x1a')](realtime[_0xc26e('0x3a')]())[_0xc26e('0x1a')](cmHopperHistory['getVoiceQueueHopperHistory']())[_0xc26e('0x1a')](realtime['initVoiceQueueHopperHistory']())[_0xc26e('0x1a')](cmHopperHistory[_0xc26e('0x3b')]())[_0xc26e('0x1a')](realtime['initCampaignHopperHistory']())['then'](voiceCallReport[_0xc26e('0x3c')]())[_0xc26e('0x1a')](realtime[_0xc26e('0x3d')]())[_0xc26e('0x1a')](function(_0x2ba2b9){})['catch'](function(_0xae3144){console[_0xc26e('0x3e')](_0xae3144);});}function main(){return server[_0xc26e('0x3f')](realtime,preview,fax)[_0xc26e('0x1a')](function(_0x4200a9){return initRealtime();})[_0xc26e('0x1a')](function(){return initParams();})['then'](function(){report[_0xc26e('0x40')]();setInterval(initRealtime,0x1388);})[_0xc26e('0x41')](function(_0x432382){console[_0xc26e('0x3e')](_0x432382);});}main();
\ No newline at end of file
+var _0x6dc8=['initSalesforceAccounts','getSugarcrmAccounts','initSugarcrmAccounts','getFreshdeskAccounts','initFreshdeskAccounts','getDeskAccounts','initDeskAccounts','getZohoAccounts','initZohoAccounts','initVtigerAccounts','getFreshsalesAccounts','getServicenowAccounts','initServicenowAccounts','getCampaigns','initCampaigns','getVoiceExtensions','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','getVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','getVoiceCallReports','log','listen','sync','catch','bluebird','./server','./realtime','./report','./acw','./trigger','./dialer','./preview','./fax','./rpc/user','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trunk','./rpc/trigger','./rpc/cmHopperHistory','./rpc/campaign','./rpc/voiceExtension','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/servicenow','./rpc/integrations/dynamics365','get','hour','resolve','getAgents','initAgents','getTelephones','initTelephones','then','initTrunks','getVoiceQueues','initVoiceQueues','getTriggers','initTriggers','initTemplates','getZendeskAccounts','initZendeskAccounts','getSalesforceAccounts'];(function(_0x403c20,_0x4a7b99){var _0x2b271a=function(_0x106ecb){while(--_0x106ecb){_0x403c20['push'](_0x403c20['shift']());}};_0x2b271a(++_0x4a7b99);}(_0x6dc8,0x1bb));var _0x86dc=function(_0xd13a88,_0x3c5269){_0xd13a88=_0xd13a88-0x0;var _0x1c993c=_0x6dc8[_0xd13a88];return _0x1c993c;};'use strict';var BPromise=require(_0x86dc('0x0'));var util=require('util');var moment=require('moment');var server=require(_0x86dc('0x1'));var Realtime=require(_0x86dc('0x2'));var Report=require(_0x86dc('0x3'));var Acw=require(_0x86dc('0x4'));var Trigger=require(_0x86dc('0x5'));var Dialer=require(_0x86dc('0x6'));var Preview=require(_0x86dc('0x7'));var Fax=require(_0x86dc('0x8'));var user=require(_0x86dc('0x9'));var voiceQueue=require(_0x86dc('0xa'));var voiceQueueReport=require(_0x86dc('0xb'));var voiceCallReport=require(_0x86dc('0xc'));var trunk=require(_0x86dc('0xd'));var trigger=require(_0x86dc('0xe'));var template=require('./rpc/template');var cmHopperHistory=require(_0x86dc('0xf'));var campaign=require(_0x86dc('0x10'));var voiceExtension=require(_0x86dc('0x11'));var faxAccount=require('./rpc/faxAccount');var zendesk=require('./rpc/integrations/zendesk');var salesforce=require('./rpc/integrations/salesforce');var sugarcrm=require('./rpc/integrations/sugarcrm');var freshdesk=require(_0x86dc('0x12'));var desk=require(_0x86dc('0x13'));var zoho=require(_0x86dc('0x14'));var vtiger=require('./rpc/integrations/vtiger');var freshsales=require('./rpc/integrations/freshsales');var servicenow=require(_0x86dc('0x15'));var dynamics365=require(_0x86dc('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()[_0x86dc('0x17')](_0x86dc('0x18'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x86dc('0x17')](_0x86dc('0x18'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x86dc('0x19')]()['then'](user[_0x86dc('0x1a')]())['then'](realtime[_0x86dc('0x1b')]())['then'](user[_0x86dc('0x1c')]())['then'](realtime[_0x86dc('0x1d')]())[_0x86dc('0x1e')](trunk['getTrunks']())[_0x86dc('0x1e')](realtime[_0x86dc('0x1f')]())['then'](voiceQueue[_0x86dc('0x20')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x21')]())[_0x86dc('0x1e')](trigger[_0x86dc('0x22')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x23')]())['then'](template['getTemplates']())[_0x86dc('0x1e')](realtime[_0x86dc('0x24')]())[_0x86dc('0x1e')](zendesk[_0x86dc('0x25')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x26')]())['then'](salesforce[_0x86dc('0x27')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x28')]())[_0x86dc('0x1e')](sugarcrm[_0x86dc('0x29')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x2a')]())['then'](freshdesk[_0x86dc('0x2b')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x2c')]())['then'](desk[_0x86dc('0x2d')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x2e')]())['then'](zoho[_0x86dc('0x2f')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x30')]())[_0x86dc('0x1e')](vtiger['getVtigerAccounts']())[_0x86dc('0x1e')](realtime[_0x86dc('0x31')]())['then'](freshsales[_0x86dc('0x32')]())[_0x86dc('0x1e')](realtime['initFreshsalesAccounts']())[_0x86dc('0x1e')](servicenow[_0x86dc('0x33')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x34')]())['then'](dynamics365['getDynamics365Accounts']())[_0x86dc('0x1e')](realtime['initDynamics365Accounts']())[_0x86dc('0x1e')](campaign[_0x86dc('0x35')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x36')]())['then'](voiceExtension[_0x86dc('0x37')]())['then'](realtime[_0x86dc('0x38')]())[_0x86dc('0x1e')](faxAccount[_0x86dc('0x39')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x3a')]())[_0x86dc('0x1e')](function(){return realtime;});}function initParams(){return BPromise[_0x86dc('0x19')]()['then'](voiceQueueReport[_0x86dc('0x3b')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x3c')]())['then'](cmHopperHistory[_0x86dc('0x3d')]())[_0x86dc('0x1e')](realtime['initVoiceQueueHopperHistory']())[_0x86dc('0x1e')](cmHopperHistory[_0x86dc('0x3e')]())[_0x86dc('0x1e')](realtime[_0x86dc('0x3f')]())[_0x86dc('0x1e')](voiceCallReport[_0x86dc('0x40')]())[_0x86dc('0x1e')](realtime['initVoiceCallReports']())[_0x86dc('0x1e')](function(_0x1b3054){})['catch'](function(_0xb7cd18){console[_0x86dc('0x41')](_0xb7cd18);});}function main(){return server[_0x86dc('0x42')](realtime,preview,fax)[_0x86dc('0x1e')](function(_0xe54710){return initRealtime();})['then'](function(){return initParams();})[_0x86dc('0x1e')](function(){report[_0x86dc('0x43')]();setInterval(initRealtime,0x1388);})[_0x86dc('0x44')](function(_0x1ddfe0){console[_0x86dc('0x41')](_0x1ddfe0);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['phone','mobile','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','prototype','updateStatusRealtime','state','toLowerCase','idle','inuse','talking','statePause','toNumber','interface','format','user:%s','user:save','emit','user:presence','exports','util','moment','md5','ioredis','../../../config/environment','redis','defaults','socket.io-emitter','name','email','accountcode','fullname','unknown','status'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0xedd9,0xfc));var _0x9edd=function(_0xbc84c9,_0x3ed028){_0xbc84c9=_0xbc84c9-0x0;var _0x589310=_0xedd9[_0xbc84c9];return _0x589310;};'use strict';var _=require('lodash');var util=require(_0x9edd('0x0'));var moment=require(_0x9edd('0x1'));var md5=require(_0x9edd('0x2'));var Redis=require(_0x9edd('0x3'));var config=require(_0x9edd('0x4'));config[_0x9edd('0x5')]=_[_0x9edd('0x6')](config[_0x9edd('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x9edd('0x7'))(new Redis(config[_0x9edd('0x5')]));function Agent(_0x268f9e){this['id']=_0x268f9e['id']||0x0;this[_0x9edd('0x8')]=_0x268f9e['name']||'';this[_0x9edd('0x9')]=_0x268f9e['email']||'';this[_0x9edd('0xa')]=_0x268f9e[_0x9edd('0xa')]||'';this[_0x9edd('0xb')]=_0x268f9e[_0x9edd('0xb')]||'';this['state']=_0x9edd('0xc');this['stateTime']=0x0;this[_0x9edd('0xd')]=_0x9edd('0xc');this['address']='';this[_0x9edd('0xe')]='';this[_0x9edd('0xf')]='';this['interface']='';this[_0x9edd('0x10')]=_0x268f9e[_0x9edd('0x10')]||![];this[_0x9edd('0x11')]=_0x9edd('0xc');this[_0x9edd('0x12')]=0x0;this[_0x9edd('0x13')]='';this[_0x9edd('0x14')]='';this[_0x9edd('0x15')]=![];this['local']=![];this[_0x9edd('0x2')]='';}Agent[_0x9edd('0x16')][_0x9edd('0x17')]=function(_0x4d9a7){var _0x13b6b6;if(_0x4d9a7&&_0x4d9a7[_0x9edd('0x18')]){_0x13b6b6=_0x4d9a7[_0x9edd('0x18')][_0x9edd('0x19')]();switch(_0x13b6b6){case'not_inuse':_0x13b6b6=_0x9edd('0x1a');break;case _0x9edd('0x1b'):_0x13b6b6=_0x9edd('0x1c');break;}}if(_0x13b6b6&&this['voiceStatus']!==_0x13b6b6||_0x4d9a7[_0x9edd('0x1d')]){this[_0x9edd('0x12')]=_[_0x9edd('0x1e')](moment()['format']('x'));}if(_0x13b6b6){this[_0x9edd('0x11')]=_0x13b6b6;}var _0x5d879c={'id':this['id'],'name':this[_0x9edd('0x8')],'email':this[_0x9edd('0x9')],'accountcode':this['accountcode'],'fullname':this['fullname'],'state':this[_0x9edd('0x18')],'stateTime':this['stateTime'],'status':this[_0x9edd('0xd')],'address':this['address'],'online':this['online'],'voiceStatus':this[_0x9edd('0x11')],'voiceStatusTime':this[_0x9edd('0x12')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this['voiceStatusQueue'],'interface':this[_0x9edd('0x1f')],'onhold':this[_0x9edd('0x15')]};var _0x477878=md5(JSON['stringify'](_0x5d879c));if(this[_0x9edd('0x2')]!==_0x477878){this[_0x9edd('0x2')]=_0x477878;io['to'](util[_0x9edd('0x20')](_0x9edd('0x21'),_0x5d879c[_0x9edd('0x8')]))['emit'](_0x9edd('0x22'),_0x5d879c);io[_0x9edd('0x23')](_0x9edd('0x24'),_0x5d879c);}};module[_0x9edd('0x25')]=Agent;
\ No newline at end of file
+var _0xcb91=['name','email','accountcode','fullname','unknown','stateTime','status','address','mobile','interface','online','voiceStatus','voiceStatusQueue','onhold','local','updateStatusRealtime','state','idle','inuse','talking','statePause','voiceStatusTime','toNumber','voiceStatusCallerIdNumber','stringify','format','emit','user:presence','exports','moment','md5','ioredis','../../../config/environment','defaults','redis','socket.io-emitter'];(function(_0x9b3bd3,_0x2c0f16){var _0x4c0c81=function(_0x113858){while(--_0x113858){_0x9b3bd3['push'](_0x9b3bd3['shift']());}};_0x4c0c81(++_0x2c0f16);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x31ced5,_0x5d5415){_0x31ced5=_0x31ced5-0x0;var _0x10d9e5=_0xcb91[_0x31ced5];return _0x10d9e5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1cb9('0x0'));var md5=require(_0x1cb9('0x1'));var Redis=require(_0x1cb9('0x2'));var config=require(_0x1cb9('0x3'));config['redis']=_[_0x1cb9('0x4')](config[_0x1cb9('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0x1cb9('0x6'))(new Redis(config[_0x1cb9('0x5')]));function Agent(_0x53ffbd){this['id']=_0x53ffbd['id']||0x0;this[_0x1cb9('0x7')]=_0x53ffbd[_0x1cb9('0x7')]||'';this['email']=_0x53ffbd[_0x1cb9('0x8')]||'';this[_0x1cb9('0x9')]=_0x53ffbd['accountcode']||'';this[_0x1cb9('0xa')]=_0x53ffbd['fullname']||'';this['state']=_0x1cb9('0xb');this[_0x1cb9('0xc')]=0x0;this[_0x1cb9('0xd')]=_0x1cb9('0xb');this[_0x1cb9('0xe')]='';this['phone']='';this[_0x1cb9('0xf')]='';this[_0x1cb9('0x10')]='';this[_0x1cb9('0x11')]=_0x53ffbd[_0x1cb9('0x11')]||![];this[_0x1cb9('0x12')]='unknown';this['voiceStatusTime']=0x0;this['voiceStatusCallerIdNumber']='';this[_0x1cb9('0x13')]='';this[_0x1cb9('0x14')]=![];this[_0x1cb9('0x15')]=![];this[_0x1cb9('0x1')]='';}Agent['prototype'][_0x1cb9('0x16')]=function(_0x6ef389){var _0x1b3cd7;if(_0x6ef389&&_0x6ef389[_0x1cb9('0x17')]){_0x1b3cd7=_0x6ef389[_0x1cb9('0x17')]['toLowerCase']();switch(_0x1b3cd7){case'not_inuse':_0x1b3cd7=_0x1cb9('0x18');break;case _0x1cb9('0x19'):_0x1b3cd7=_0x1cb9('0x1a');break;}}if(_0x1b3cd7&&this[_0x1cb9('0x12')]!==_0x1b3cd7||_0x6ef389[_0x1cb9('0x1b')]){this[_0x1cb9('0x1c')]=_[_0x1cb9('0x1d')](moment()['format']('x'));}if(_0x1b3cd7){this['voiceStatus']=_0x1b3cd7;}var _0x1b2fa6={'id':this['id'],'name':this[_0x1cb9('0x7')],'email':this[_0x1cb9('0x8')],'accountcode':this[_0x1cb9('0x9')],'fullname':this[_0x1cb9('0xa')],'state':this[_0x1cb9('0x17')],'stateTime':this[_0x1cb9('0xc')],'status':this['status'],'address':this['address'],'online':this[_0x1cb9('0x11')],'voiceStatus':this['voiceStatus'],'voiceStatusTime':this[_0x1cb9('0x1c')],'voiceStatusCallerIdNumber':this[_0x1cb9('0x1e')],'voiceStatusQueue':this['voiceStatusQueue'],'interface':this['interface'],'onhold':this[_0x1cb9('0x14')]};var _0x325637=md5(JSON[_0x1cb9('0x1f')](_0x1b2fa6));if(this[_0x1cb9('0x1')]!==_0x325637){this[_0x1cb9('0x1')]=_0x325637;io['to'](util[_0x1cb9('0x20')]('user:%s',_0x1b2fa6['name']))[_0x1cb9('0x21')]('user:save',_0x1b2fa6);io[_0x1cb9('0x21')](_0x1cb9('0x22'),_0x1b2fa6);}};module[_0x1cb9('0x23')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cce=['exports','name','type','campaign','originated','temp','ivrAnswerCallsDay','ivrTotalCallsDays','message','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength'];(function(_0x33c606,_0x511337){var _0x490887=function(_0x4f5bf0){while(--_0x4f5bf0){_0x33c606['push'](_0x33c606['shift']());}};_0x490887(++_0x511337);}(_0x1cce,0x67));var _0xe1cc=function(_0x146214,_0x13482f){_0x146214=_0x146214-0x0;var _0x2c2acb=_0x1cce[_0x146214];return _0x2c2acb;};'use strict';function Campaign(_0x2104b7){this['id']=_0x2104b7['id']||0x0;this[_0xe1cc('0x0')]=_0x2104b7[_0xe1cc('0x0')]||'';this[_0xe1cc('0x1')]=_0x2104b7['type']||_0xe1cc('0x2');this[_0xe1cc('0x3')]=0x0;this[_0xe1cc('0x4')]=0x0;this[_0xe1cc('0x5')]=0x0;this[_0xe1cc('0x6')]=0x0;this[_0xe1cc('0x7')]='';this['sendMessageOneNotActive']=!![];this[_0xe1cc('0x8')]=_0x2104b7['active'];this[_0xe1cc('0x9')]=_0x2104b7[_0xe1cc('0x9')];this[_0xe1cc('0xa')]=_0x2104b7['dialTimezone']||null;this[_0xe1cc('0xb')]=_0x2104b7[_0xe1cc('0xb')]?_0x2104b7[_0xe1cc('0xb')]:null;this[_0xe1cc('0xc')]=_0x2104b7['dialOriginateCallerIdName'];this['dialOriginateCallerIdNumber']=_0x2104b7[_0xe1cc('0xd')];this[_0xe1cc('0xe')]=_0x2104b7['dialOriginateTimeout']||0x1e;this['dialCongestionMaxRetry']=_0x2104b7[_0xe1cc('0xf')];this[_0xe1cc('0x10')]=_0x2104b7[_0xe1cc('0x10')];this[_0xe1cc('0x11')]=_0x2104b7['dialBusyMaxRetry'];this[_0xe1cc('0x12')]=_0x2104b7['dialBusyRetryFrequency'];this[_0xe1cc('0x13')]=_0x2104b7[_0xe1cc('0x13')];this[_0xe1cc('0x14')]=_0x2104b7[_0xe1cc('0x14')];this['dialGlobalMaxRetry']=_0x2104b7['dialGlobalMaxRetry'];this[_0xe1cc('0x15')]=_0x2104b7[_0xe1cc('0x15')]||0x3;this[_0xe1cc('0x16')]=_0x2104b7['dialNoSuchNumberRetryFrequency']||0x96;this[_0xe1cc('0x17')]=_0x2104b7[_0xe1cc('0x17')]||0x3;this['dialDropRetryFrequency']=_0x2104b7[_0xe1cc('0x18')]||0x96;this[_0xe1cc('0x19')]=_0x2104b7[_0xe1cc('0x19')]||0x3;this[_0xe1cc('0x1a')]=_0x2104b7[_0xe1cc('0x1a')]||0x96;this[_0xe1cc('0x1b')]=_0x2104b7[_0xe1cc('0x1b')]||0x3;this[_0xe1cc('0x1c')]=_0x2104b7[_0xe1cc('0x1c')]||0x96;this[_0xe1cc('0x1d')]=_0x2104b7['dialAgentRejectMaxRetry']||0x3;this[_0xe1cc('0x1e')]=_0x2104b7[_0xe1cc('0x1e')]||0x96;this[_0xe1cc('0x1f')]=_0x2104b7[_0xe1cc('0x1f')]||_0xe1cc('0x20');this['dialPrefix']=_0x2104b7[_0xe1cc('0x21')]||undefined;this[_0xe1cc('0x22')]=_0x2104b7['dialRandomLastDigitCallerIdNumber']||undefined;this['dialCutDigit']=_0x2104b7[_0xe1cc('0x23')]||undefined;this['TrunkBackup']=_0x2104b7[_0xe1cc('0x24')]?_0x2104b7[_0xe1cc('0x24')]:undefined;this['Trunk']=_0x2104b7['Trunk']?_0x2104b7[_0xe1cc('0x25')]:undefined;this['Interval']=_0x2104b7[_0xe1cc('0x26')]?_0x2104b7[_0xe1cc('0x26')]:undefined;this[_0xe1cc('0x27')]=_0x2104b7[_0xe1cc('0x27')]?_0x2104b7[_0xe1cc('0x27')]:undefined;this['dialQueueProject']=_0x2104b7[_0xe1cc('0x27')]?_0x2104b7[_0xe1cc('0x27')][_0xe1cc('0x0')]:undefined;this[_0xe1cc('0x28')]=_0x2104b7[_0xe1cc('0x28')]||![];this[_0xe1cc('0x29')]=_0x2104b7[_0xe1cc('0x29')];this['dialAMDGreeting']=_0x2104b7[_0xe1cc('0x2a')];this[_0xe1cc('0x2b')]=_0x2104b7[_0xe1cc('0x2b')];this[_0xe1cc('0x2c')]=_0x2104b7[_0xe1cc('0x2c')];this[_0xe1cc('0x2d')]=_0x2104b7[_0xe1cc('0x2d')];this['dialAMDBetweenWordsSilence']=_0x2104b7[_0xe1cc('0x2e')];this[_0xe1cc('0x2f')]=_0x2104b7[_0xe1cc('0x2f')];this['dialAMDSilenceThreshold']=_0x2104b7[_0xe1cc('0x30')];this[_0xe1cc('0x31')]=_0x2104b7['dialAMDMaximumWordLength'];}module[_0xe1cc('0x32')]=Campaign;
\ No newline at end of file
+var _0xbfc2=['dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialOrderByScheduledAt','DESC','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialQueueProject','dialAMDActive','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','ivrAnswerCallsDay','ivrTotalCallsDays','message','sendMessageOneNotActive','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency'];(function(_0x3b39d0,_0x429165){var _0x340e8e=function(_0x445669){while(--_0x445669){_0x3b39d0['push'](_0x3b39d0['shift']());}};_0x340e8e(++_0x429165);}(_0xbfc2,0x7d));var _0x2bfc=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0xbfc2[_0x53ccf2];return _0x5a2964;};'use strict';function Campaign(_0x22fb13){this['id']=_0x22fb13['id']||0x0;this[_0x2bfc('0x0')]=_0x22fb13[_0x2bfc('0x0')]||'';this[_0x2bfc('0x1')]=_0x22fb13[_0x2bfc('0x1')]||_0x2bfc('0x2');this[_0x2bfc('0x3')]=0x0;this['temp']=0x0;this[_0x2bfc('0x4')]=0x0;this[_0x2bfc('0x5')]=0x0;this[_0x2bfc('0x6')]='';this[_0x2bfc('0x7')]=!![];this['active']=_0x22fb13['active'];this[_0x2bfc('0x8')]=_0x22fb13[_0x2bfc('0x8')];this['dialTimezone']=_0x22fb13[_0x2bfc('0x9')]||null;this['dialGlobalInterval']=_0x22fb13[_0x2bfc('0xa')]?_0x22fb13[_0x2bfc('0xa')]:null;this[_0x2bfc('0xb')]=_0x22fb13[_0x2bfc('0xb')];this['dialOriginateCallerIdNumber']=_0x22fb13[_0x2bfc('0xc')];this[_0x2bfc('0xd')]=_0x22fb13['dialOriginateTimeout']||0x1e;this[_0x2bfc('0xe')]=_0x22fb13[_0x2bfc('0xe')];this[_0x2bfc('0xf')]=_0x22fb13['dialCongestionRetryFrequency'];this['dialBusyMaxRetry']=_0x22fb13[_0x2bfc('0x10')];this[_0x2bfc('0x11')]=_0x22fb13[_0x2bfc('0x11')];this[_0x2bfc('0x12')]=_0x22fb13['dialNoAnswerMaxRetry'];this[_0x2bfc('0x13')]=_0x22fb13[_0x2bfc('0x13')];this['dialGlobalMaxRetry']=_0x22fb13[_0x2bfc('0x14')];this[_0x2bfc('0x15')]=_0x22fb13[_0x2bfc('0x15')]||0x3;this['dialNoSuchNumberRetryFrequency']=_0x22fb13[_0x2bfc('0x16')]||0x96;this['dialDropMaxRetry']=_0x22fb13[_0x2bfc('0x17')]||0x3;this[_0x2bfc('0x18')]=_0x22fb13[_0x2bfc('0x18')]||0x96;this[_0x2bfc('0x19')]=_0x22fb13['dialAbandonedMaxRetry']||0x3;this['dialAbandonedRetryFrequency']=_0x22fb13[_0x2bfc('0x1a')]||0x96;this[_0x2bfc('0x1b')]=_0x22fb13[_0x2bfc('0x1b')]||0x3;this[_0x2bfc('0x1c')]=_0x22fb13[_0x2bfc('0x1c')]||0x96;this[_0x2bfc('0x1d')]=_0x22fb13[_0x2bfc('0x1d')]||0x3;this['dialAgentRejectRetryFrequency']=_0x22fb13['dialAgentRejectRetryFrequency']||0x96;this[_0x2bfc('0x1e')]=_0x22fb13[_0x2bfc('0x1e')]||_0x2bfc('0x1f');this[_0x2bfc('0x20')]=_0x22fb13[_0x2bfc('0x20')]||undefined;this['dialRandomLastDigitCallerIdNumber']=_0x22fb13[_0x2bfc('0x21')]||undefined;this[_0x2bfc('0x22')]=_0x22fb13[_0x2bfc('0x22')]||undefined;this[_0x2bfc('0x23')]=_0x22fb13[_0x2bfc('0x23')]?_0x22fb13[_0x2bfc('0x23')]:undefined;this[_0x2bfc('0x24')]=_0x22fb13[_0x2bfc('0x24')]?_0x22fb13['Trunk']:undefined;this[_0x2bfc('0x25')]=_0x22fb13[_0x2bfc('0x25')]?_0x22fb13[_0x2bfc('0x25')]:undefined;this['SquareProject']=_0x22fb13[_0x2bfc('0x26')]?_0x22fb13[_0x2bfc('0x26')]:undefined;this[_0x2bfc('0x27')]=_0x22fb13[_0x2bfc('0x26')]?_0x22fb13[_0x2bfc('0x26')][_0x2bfc('0x0')]:undefined;this[_0x2bfc('0x28')]=_0x22fb13[_0x2bfc('0x28')]||![];this['dialAMDInitialSilence']=_0x22fb13['dialAMDInitialSilence'];this['dialAMDGreeting']=_0x22fb13[_0x2bfc('0x29')];this[_0x2bfc('0x2a')]=_0x22fb13[_0x2bfc('0x2a')];this[_0x2bfc('0x2b')]=_0x22fb13[_0x2bfc('0x2b')];this[_0x2bfc('0x2c')]=_0x22fb13[_0x2bfc('0x2c')];this['dialAMDBetweenWordsSilence']=_0x22fb13[_0x2bfc('0x2d')];this['dialAMDMaximumNumberOfWords']=_0x22fb13[_0x2bfc('0x2e')];this[_0x2bfc('0x2f')]=_0x22fb13[_0x2bfc('0x2f')];this[_0x2bfc('0x30')]=_0x22fb13[_0x2bfc('0x30')];}module[_0x2bfc('0x31')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f81=['monitorFilename','queue','monitors','transfercalleridnum','transferconnectedlinenum','transferType','mohtime','exports','destinationchannel','calleridname','connectedlinenum','connectedlinename','accountcode','context','uniqueid','linkedid','answered','endtime','unmanaged','lastapplication','lastdata','billableseconds','tag','disposition','monitor'];(function(_0x19efbc,_0x10b7d7){var _0x205c5e=function(_0x49daa4){while(--_0x49daa4){_0x19efbc['push'](_0x19efbc['shift']());}};_0x205c5e(++_0x10b7d7);}(_0x4f81,0x1e3));var _0x14f8=function(_0x17ea8a,_0x39defd){_0x17ea8a=_0x17ea8a-0x0;var _0x2acf1c=_0x4f81[_0x17ea8a];return _0x2acf1c;};'use strict';function Channel(){this['starttime']=null;this['channel']='';this[_0x14f8('0x0')]='';this['calleridnum']=0x0;this[_0x14f8('0x1')]='';this[_0x14f8('0x2')]=undefined;this[_0x14f8('0x3')]=undefined;this[_0x14f8('0x4')]=0x0;this[_0x14f8('0x5')]='';this[_0x14f8('0x6')]=0x0;this[_0x14f8('0x7')]=0x0;this['exten']=0x0;this[_0x14f8('0x8')]=![];this['answertime']=null;this[_0x14f8('0x9')]=null;this[_0x14f8('0xa')]=![];this['abandoned']=![];this[_0x14f8('0xb')]='';this[_0x14f8('0xc')]='';this['duration']=0x0;this[_0x14f8('0xd')]=0x0;this['holdtime']=0x0;this['type']=null;this[_0x14f8('0xe')]=null;this[_0x14f8('0xf')]=null;this[_0x14f8('0x10')]=![];this[_0x14f8('0x11')]=null;this[_0x14f8('0x12')]=null;this[_0x14f8('0x13')]=[];this[_0x14f8('0x14')]=undefined;this[_0x14f8('0x15')]=undefined;this[_0x14f8('0x16')]=undefined;this[_0x14f8('0x17')]=0x0;}module[_0x14f8('0x18')]=Channel;
\ No newline at end of file
+var _0x6d4b=['answered','answertime','endtime','unmanaged','lastapplication','lastdata','duration','billableseconds','holdtime','type','tag','disposition','monitor','monitorFilename','transferType','exports','starttime','channel','destinationchannel','calleridname','connectedlinenum','context','uniqueid','linkedid','exten'];(function(_0x4828e6,_0x79cc0a){var _0x39d389=function(_0x5ae31c){while(--_0x5ae31c){_0x4828e6['push'](_0x4828e6['shift']());}};_0x39d389(++_0x79cc0a);}(_0x6d4b,0xbf));var _0xb6d4=function(_0x57a550,_0x1a3d6f){_0x57a550=_0x57a550-0x0;var _0x2f2d5b=_0x6d4b[_0x57a550];return _0x2f2d5b;};'use strict';function Channel(){this[_0xb6d4('0x0')]=null;this[_0xb6d4('0x1')]='';this[_0xb6d4('0x2')]='';this['calleridnum']=0x0;this[_0xb6d4('0x3')]='';this[_0xb6d4('0x4')]=undefined;this['connectedlinename']=undefined;this['accountcode']=0x0;this[_0xb6d4('0x5')]='';this[_0xb6d4('0x6')]=0x0;this[_0xb6d4('0x7')]=0x0;this[_0xb6d4('0x8')]=0x0;this[_0xb6d4('0x9')]=![];this[_0xb6d4('0xa')]=null;this[_0xb6d4('0xb')]=null;this[_0xb6d4('0xc')]=![];this['abandoned']=![];this[_0xb6d4('0xd')]='';this[_0xb6d4('0xe')]='';this[_0xb6d4('0xf')]=0x0;this[_0xb6d4('0x10')]=0x0;this[_0xb6d4('0x11')]=0x0;this[_0xb6d4('0x12')]=null;this[_0xb6d4('0x13')]=null;this[_0xb6d4('0x14')]=null;this[_0xb6d4('0x15')]=![];this[_0xb6d4('0x16')]=null;this['queue']=null;this['monitors']=[];this['transfercalleridnum']=undefined;this['transferconnectedlinenum']=undefined;this[_0xb6d4('0x17')]=undefined;this['mohtime']=0x0;}module[_0xb6d4('0x18')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0477=['name','username','remoteUri','authType','consumerKey','consumerSecret','token','tokenSecret','type','Configurations','exports'];(function(_0x444dfa,_0x4477da){var _0x21a157=function(_0x47888d){while(--_0x47888d){_0x444dfa['push'](_0x444dfa['shift']());}};_0x21a157(++_0x4477da);}(_0x0477,0x79));var _0x7047=function(_0x188c88,_0x210793){_0x188c88=_0x188c88-0x0;var _0x4e4c38=_0x0477[_0x188c88];return _0x4e4c38;};'use strict';function DeskAccount(_0x1cc3f2){this['id']=_0x1cc3f2['id']||0x0;this[_0x7047('0x0')]=_0x1cc3f2['name']||'';this[_0x7047('0x1')]=_0x1cc3f2[_0x7047('0x1')]||'';this['remoteUri']=_0x1cc3f2[_0x7047('0x2')]||'';this[_0x7047('0x3')]=_0x1cc3f2[_0x7047('0x3')]||'';this['password']=_0x1cc3f2['password']||'';this[_0x7047('0x4')]=_0x1cc3f2[_0x7047('0x4')]||'';this[_0x7047('0x5')]=_0x1cc3f2[_0x7047('0x5')]||'';this[_0x7047('0x6')]=_0x1cc3f2[_0x7047('0x6')]||'';this[_0x7047('0x7')]=_0x1cc3f2[_0x7047('0x7')]||'';this[_0x7047('0x8')]=_0x1cc3f2[_0x7047('0x8')]||'';this['serverUrl']=_0x1cc3f2['serverUrl']||'';this[_0x7047('0x9')]=_0x1cc3f2[_0x7047('0x9')]||{};}module[_0x7047('0xa')]=DeskAccount;
\ No newline at end of file
+var _0x43b8=['Configurations','exports','name','username','remoteUri','authType','password','consumerKey','consumerSecret','token','tokenSecret','type','serverUrl'];(function(_0x58fdfd,_0x46f063){var _0x3a4613=function(_0x4b6a77){while(--_0x4b6a77){_0x58fdfd['push'](_0x58fdfd['shift']());}};_0x3a4613(++_0x46f063);}(_0x43b8,0x120));var _0x843b=function(_0x2ceaff,_0x3574b2){_0x2ceaff=_0x2ceaff-0x0;var _0x2db04a=_0x43b8[_0x2ceaff];return _0x2db04a;};'use strict';function DeskAccount(_0x5e0e9d){this['id']=_0x5e0e9d['id']||0x0;this[_0x843b('0x0')]=_0x5e0e9d[_0x843b('0x0')]||'';this['username']=_0x5e0e9d[_0x843b('0x1')]||'';this['remoteUri']=_0x5e0e9d[_0x843b('0x2')]||'';this[_0x843b('0x3')]=_0x5e0e9d[_0x843b('0x3')]||'';this[_0x843b('0x4')]=_0x5e0e9d[_0x843b('0x4')]||'';this[_0x843b('0x5')]=_0x5e0e9d[_0x843b('0x5')]||'';this[_0x843b('0x6')]=_0x5e0e9d['consumerSecret']||'';this['token']=_0x5e0e9d[_0x843b('0x7')]||'';this['tokenSecret']=_0x5e0e9d[_0x843b('0x8')]||'';this[_0x843b('0x9')]=_0x5e0e9d['type']||'';this[_0x843b('0xa')]=_0x5e0e9d[_0x843b('0xa')]||'';this[_0x843b('0xb')]=_0x5e0e9d[_0x843b('0xb')]||{};}module[_0x843b('0xc')]=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13f6=['clientId','clientSecret','Configurations','exports','name','username','password','remoteUri','tenantId'];(function(_0x2c29df,_0x379b0d){var _0x149ce4=function(_0x8f54a1){while(--_0x8f54a1){_0x2c29df['push'](_0x2c29df['shift']());}};_0x149ce4(++_0x379b0d);}(_0x13f6,0x124));var _0x613f=function(_0x104553,_0x32a3c0){_0x104553=_0x104553-0x0;var _0x3faae0=_0x13f6[_0x104553];return _0x3faae0;};'use strict';function Dynamics365Account(_0xf31e04){this['id']=_0xf31e04['id']||0x0;this[_0x613f('0x0')]=_0xf31e04['name']||'';this['username']=_0xf31e04[_0x613f('0x1')]||'';this[_0x613f('0x2')]=_0xf31e04[_0x613f('0x2')]||'';this['remoteUri']=_0xf31e04[_0x613f('0x3')]||'';this[_0x613f('0x4')]=_0xf31e04[_0x613f('0x4')]||'';this['clientId']=_0xf31e04[_0x613f('0x5')]||'';this[_0x613f('0x6')]=_0xf31e04['clientSecret']||{};this['serverUrl']=_0xf31e04['serverUrl']||'';this['Configurations']=_0xf31e04[_0x613f('0x7')]||{};}module[_0x613f('0x8')]=Dynamics365Account;
\ No newline at end of file
+var _0x3c81=['Configurations','exports','name','username','tenantId','clientId','clientSecret','serverUrl'];(function(_0x3e1a2f,_0x297970){var _0xe4f36e=function(_0x6e6642){while(--_0x6e6642){_0x3e1a2f['push'](_0x3e1a2f['shift']());}};_0xe4f36e(++_0x297970);}(_0x3c81,0x102));var _0x13c8=function(_0x469bde,_0xef7393){_0x469bde=_0x469bde-0x0;var _0x2668aa=_0x3c81[_0x469bde];return _0x2668aa;};'use strict';function Dynamics365Account(_0x55010d){this['id']=_0x55010d['id']||0x0;this[_0x13c8('0x0')]=_0x55010d['name']||'';this[_0x13c8('0x1')]=_0x55010d[_0x13c8('0x1')]||'';this['password']=_0x55010d['password']||'';this['remoteUri']=_0x55010d['remoteUri']||'';this[_0x13c8('0x2')]=_0x55010d[_0x13c8('0x2')]||'';this[_0x13c8('0x3')]=_0x55010d[_0x13c8('0x3')]||'';this[_0x13c8('0x4')]=_0x55010d[_0x13c8('0x4')]||{};this[_0x13c8('0x5')]=_0x55010d['serverUrl']||'';this[_0x13c8('0x6')]=_0x55010d['Configurations']||{};}module[_0x13c8('0x7')]=Dynamics365Account;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcaa4=['modem','v17,v27,v29','gateway','faxdetect','t38timeout','tech','Trunk','ListId','key','exports','name','description','ecm','headerinfo','localstationid','minrate','maxrate'];(function(_0xe92524,_0x16c3c2){var _0xc43f31=function(_0x1c7685){while(--_0x1c7685){_0xe92524['push'](_0xe92524['shift']());}};_0xc43f31(++_0x16c3c2);}(_0xcaa4,0x109));var _0x4caa=function(_0x5ec171,_0x27600a){_0x5ec171=_0x5ec171-0x0;var _0x5edacf=_0xcaa4[_0x5ec171];return _0x5edacf;};'use strict';function FaxAccount(_0xb34277){this['id']=_0xb34277['id']||0x0;this[_0x4caa('0x0')]=_0xb34277[_0x4caa('0x0')]||'';this[_0x4caa('0x1')]=_0xb34277[_0x4caa('0x1')];this['ecm']=_0xb34277[_0x4caa('0x2')];this[_0x4caa('0x3')]=_0xb34277[_0x4caa('0x3')];this[_0x4caa('0x4')]=_0xb34277[_0x4caa('0x4')];this[_0x4caa('0x5')]=_0xb34277['minrate']||0x960;this[_0x4caa('0x6')]=_0xb34277[_0x4caa('0x6')]||0x3840;this[_0x4caa('0x7')]=_0xb34277[_0x4caa('0x7')]||_0x4caa('0x8');this[_0x4caa('0x9')]=_0xb34277[_0x4caa('0x9')]||'no';this[_0x4caa('0xa')]=_0xb34277[_0x4caa('0xa')]||'no';this[_0x4caa('0xb')]=_0xb34277['t38timeout']||0x1388;this[_0x4caa('0xc')]=_0xb34277[_0x4caa('0xc')]||'SIP';this[_0x4caa('0xd')]=_0xb34277['Trunk']?_0xb34277[_0x4caa('0xd')]:undefined;this[_0x4caa('0xe')]=_0xb34277[_0x4caa('0xe')];this[_0x4caa('0xf')]=_0xb34277[_0x4caa('0xf')];}module[_0x4caa('0x10')]=FaxAccount;
\ No newline at end of file
+var _0xa8a8=['maxrate','modem','v17,v27,v29','gateway','faxdetect','t38timeout','tech','SIP','Trunk','ListId','key','exports','name','description','ecm','headerinfo','localstationid','minrate'];(function(_0x18b513,_0x190cfc){var _0x59053f=function(_0x32e756){while(--_0x32e756){_0x18b513['push'](_0x18b513['shift']());}};_0x59053f(++_0x190cfc);}(_0xa8a8,0x198));var _0x8a8a=function(_0x454b10,_0x1af8f4){_0x454b10=_0x454b10-0x0;var _0x3a4279=_0xa8a8[_0x454b10];return _0x3a4279;};'use strict';function FaxAccount(_0x58dbf7){this['id']=_0x58dbf7['id']||0x0;this[_0x8a8a('0x0')]=_0x58dbf7[_0x8a8a('0x0')]||'';this[_0x8a8a('0x1')]=_0x58dbf7[_0x8a8a('0x1')];this['ecm']=_0x58dbf7[_0x8a8a('0x2')];this[_0x8a8a('0x3')]=_0x58dbf7[_0x8a8a('0x3')];this[_0x8a8a('0x4')]=_0x58dbf7[_0x8a8a('0x4')];this[_0x8a8a('0x5')]=_0x58dbf7[_0x8a8a('0x5')]||0x960;this[_0x8a8a('0x6')]=_0x58dbf7[_0x8a8a('0x6')]||0x3840;this[_0x8a8a('0x7')]=_0x58dbf7['modem']||_0x8a8a('0x8');this['gateway']=_0x58dbf7[_0x8a8a('0x9')]||'no';this[_0x8a8a('0xa')]=_0x58dbf7['faxdetect']||'no';this[_0x8a8a('0xb')]=_0x58dbf7[_0x8a8a('0xb')]||0x1388;this[_0x8a8a('0xc')]=_0x58dbf7[_0x8a8a('0xc')]||_0x8a8a('0xd');this[_0x8a8a('0xe')]=_0x58dbf7['Trunk']?_0x58dbf7[_0x8a8a('0xe')]:undefined;this[_0x8a8a('0xf')]=_0x58dbf7[_0x8a8a('0xf')];this[_0x8a8a('0x10')]=_0x58dbf7[_0x8a8a('0x10')];}module[_0x8a8a('0x11')]=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b52=['remoteUri','serverUrl','Configurations','exports','name','username','apiKey','token'];(function(_0x149e69,_0x4ba2c1){var _0x49343d=function(_0x45dcc3){while(--_0x45dcc3){_0x149e69['push'](_0x149e69['shift']());}};_0x49343d(++_0x4ba2c1);}(_0x7b52,0x11c));var _0x27b5=function(_0x5f55b5,_0x372ef9){_0x5f55b5=_0x5f55b5-0x0;var _0x489ba1=_0x7b52[_0x5f55b5];return _0x489ba1;};'use strict';function FreshdeskAccount(_0x517517){this['id']=_0x517517['id']||0x0;this['name']=_0x517517[_0x27b5('0x0')]||'';this['username']=_0x517517[_0x27b5('0x1')]||'';this[_0x27b5('0x2')]=_0x517517[_0x27b5('0x3')]||'';this['remoteUri']=_0x517517[_0x27b5('0x4')]||'';this[_0x27b5('0x5')]=_0x517517[_0x27b5('0x5')]||'';this[_0x27b5('0x6')]=_0x517517[_0x27b5('0x6')]||{};}module[_0x27b5('0x7')]=FreshdeskAccount;
\ No newline at end of file
+var _0x5265=['username','remoteUri','serverUrl','Configurations','exports','name'];(function(_0x307086,_0x3bfe4e){var _0x699043=function(_0x1a7677){while(--_0x1a7677){_0x307086['push'](_0x307086['shift']());}};_0x699043(++_0x3bfe4e);}(_0x5265,0xe3));var _0x5526=function(_0x418bc9,_0x2676e9){_0x418bc9=_0x418bc9-0x0;var _0x104944=_0x5265[_0x418bc9];return _0x104944;};'use strict';function FreshdeskAccount(_0x45b3d0){this['id']=_0x45b3d0['id']||0x0;this[_0x5526('0x0')]=_0x45b3d0[_0x5526('0x0')]||'';this[_0x5526('0x1')]=_0x45b3d0[_0x5526('0x1')]||'';this['apiKey']=_0x45b3d0['token']||'';this[_0x5526('0x2')]=_0x45b3d0[_0x5526('0x2')]||'';this[_0x5526('0x3')]=_0x45b3d0[_0x5526('0x3')]||'';this['Configurations']=_0x45b3d0[_0x5526('0x4')]||{};}module[_0x5526('0x5')]=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe548=['name','username','serverUrl','Configurations'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0xe548,0x184));var _0x8e54=function(_0x4dc0c8,_0x48d51f){_0x4dc0c8=_0x4dc0c8-0x0;var _0x26bf81=_0xe548[_0x4dc0c8];return _0x26bf81;};'use strict';function FreshsalesAccount(_0x180734){this['id']=_0x180734['id']||0x0;this[_0x8e54('0x0')]=_0x180734[_0x8e54('0x0')]||'';this[_0x8e54('0x1')]=_0x180734[_0x8e54('0x1')]||'';this['apiKey']=_0x180734['token']||'';this['remoteUri']=_0x180734['remoteUri']||'';this['serverUrl']=_0x180734[_0x8e54('0x2')]||'';this['Configurations']=_0x180734[_0x8e54('0x3')]||{};}module['exports']=FreshsalesAccount;
\ No newline at end of file
+var _0x102b=['apiKey','token','remoteUri','serverUrl','Configurations','exports','name','username'];(function(_0x110c3d,_0x12ee06){var _0x226d67=function(_0x1fb6e1){while(--_0x1fb6e1){_0x110c3d['push'](_0x110c3d['shift']());}};_0x226d67(++_0x12ee06);}(_0x102b,0x1be));var _0xb102=function(_0x262c16,_0x331538){_0x262c16=_0x262c16-0x0;var _0x53f422=_0x102b[_0x262c16];return _0x53f422;};'use strict';function FreshsalesAccount(_0x18269b){this['id']=_0x18269b['id']||0x0;this[_0xb102('0x0')]=_0x18269b['name']||'';this[_0xb102('0x1')]=_0x18269b[_0xb102('0x1')]||'';this[_0xb102('0x2')]=_0x18269b[_0xb102('0x3')]||'';this[_0xb102('0x4')]=_0x18269b[_0xb102('0x4')]||'';this[_0xb102('0x5')]=_0x18269b[_0xb102('0x5')]||'';this['Configurations']=_0x18269b[_0xb102('0x6')]||{};}module[_0xb102('0x7')]=FreshsalesAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a17=['type','inbound','uniqueid','calleridnum','calleridname','queuecallerjoinAt','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','originalposition','channel','connectedlinenum','connectedlinename','accountcode','context','exten','priority','holdtime','assigned','motionChannel','voice','mohtime','variables','exports'];(function(_0x2eb215,_0x22a9f0){var _0x5ec397=function(_0x5d038e){while(--_0x5d038e){_0x2eb215['push'](_0x2eb215['shift']());}};_0x5ec397(++_0x22a9f0);}(_0x9a17,0x186));var _0x79a1=function(_0x77ae89,_0x2b65a7){_0x77ae89=_0x77ae89-0x0;var _0x19d79c=_0x9a17[_0x77ae89];return _0x19d79c;};'use strict';function QueueReport(){this[_0x79a1('0x0')]=_0x79a1('0x1');this[_0x79a1('0x2')]='';this[_0x79a1('0x3')]='';this[_0x79a1('0x4')]='';this['queue']='';this[_0x79a1('0x5')]=null;this['queuecallerleaveAt']=null;this['position']=0x1;this['count']=0x1;this['queuecallerabandon']=![];this[_0x79a1('0x6')]=null;this[_0x79a1('0x7')]=![];this[_0x79a1('0x8')]=null;this[_0x79a1('0x9')]=![];this[_0x79a1('0xa')]=null;this[_0x79a1('0xb')]=0x1;this[_0x79a1('0xc')]='';this[_0x79a1('0xd')]='';this[_0x79a1('0xe')]='';this[_0x79a1('0xf')]='';this[_0x79a1('0x10')]='';this[_0x79a1('0x11')]='';this[_0x79a1('0x12')]='';this[_0x79a1('0x13')]=0x0;this[_0x79a1('0x14')]=![];this['lastAssignedTo']='';this[_0x79a1('0x15')]=_0x79a1('0x16');this[_0x79a1('0x17')]=0x0;this[_0x79a1('0x18')]={};}module[_0x79a1('0x19')]=QueueReport;
\ No newline at end of file
+var _0x64f6=['queuecallerjoinAt','queuecallerleaveAt','position','count','queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallerexitAt','originalposition','channel','connectedlinenum','connectedlinename','accountcode','context','exten','holdtime','assigned','mohtime','type','uniqueid','calleridnum','calleridname','queue'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x64f6,0x199));var _0x664f=function(_0x22f53f,_0x14ef66){_0x22f53f=_0x22f53f-0x0;var _0x57bc67=_0x64f6[_0x22f53f];return _0x57bc67;};'use strict';function QueueReport(){this[_0x664f('0x0')]='inbound';this[_0x664f('0x1')]='';this[_0x664f('0x2')]='';this[_0x664f('0x3')]='';this[_0x664f('0x4')]='';this[_0x664f('0x5')]=null;this[_0x664f('0x6')]=null;this[_0x664f('0x7')]=0x1;this[_0x664f('0x8')]=0x1;this[_0x664f('0x9')]=![];this[_0x664f('0xa')]=null;this[_0x664f('0xb')]=![];this['queuecallercompleteAt']=null;this['queuecallerexit']=![];this[_0x664f('0xc')]=null;this[_0x664f('0xd')]=0x1;this[_0x664f('0xe')]='';this[_0x664f('0xf')]='';this[_0x664f('0x10')]='';this[_0x664f('0x11')]='';this[_0x664f('0x12')]='';this[_0x664f('0x13')]='';this['priority']='';this[_0x664f('0x14')]=0x0;this[_0x664f('0x15')]=![];this['lastAssignedTo']='';this[_0x664f('0x16')]=0x0;this['variables']={};}module['exports']=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeec6=['integrationTab','serverUrl','Configurations','username','remoteUri','password','clientId','clientSecret','securityToken','type'];(function(_0x3eea2d,_0x4b913b){var _0x1f4046=function(_0x462e04){while(--_0x462e04){_0x3eea2d['push'](_0x3eea2d['shift']());}};_0x1f4046(++_0x4b913b);}(_0xeec6,0x125));var _0x6eec=function(_0x1fd437,_0x2c0b47){_0x1fd437=_0x1fd437-0x0;var _0x40d9e6=_0xeec6[_0x1fd437];return _0x40d9e6;};'use strict';function SalesforceAccount(_0xa57194){this['id']=_0xa57194['id']||0x0;this['name']=_0xa57194['name']||'';this[_0x6eec('0x0')]=_0xa57194[_0x6eec('0x0')]||'';this[_0x6eec('0x1')]=_0xa57194[_0x6eec('0x1')]||'';this['password']=_0xa57194[_0x6eec('0x2')]||'';this[_0x6eec('0x3')]=_0xa57194['clientId']||'';this[_0x6eec('0x4')]=_0xa57194[_0x6eec('0x4')]||'';this['securityToken']=_0xa57194[_0x6eec('0x5')]||'';this[_0x6eec('0x6')]=_0xa57194[_0x6eec('0x6')]||_0x6eec('0x7');this['serverUrl']=_0xa57194[_0x6eec('0x8')]||'';this[_0x6eec('0x9')]=_0xa57194[_0x6eec('0x9')]||{};}module['exports']=SalesforceAccount;
\ No newline at end of file
+var _0xc8f2=['serverUrl','Configurations','exports','name','username','remoteUri','password','clientId','clientSecret','securityToken','type','integrationTab'];(function(_0x23d2bf,_0x1b1f6a){var _0x48ad94=function(_0x16d30e){while(--_0x16d30e){_0x23d2bf['push'](_0x23d2bf['shift']());}};_0x48ad94(++_0x1b1f6a);}(_0xc8f2,0xc3));var _0x2c8f=function(_0x5cf31d,_0x159233){_0x5cf31d=_0x5cf31d-0x0;var _0x3a157a=_0xc8f2[_0x5cf31d];return _0x3a157a;};'use strict';function SalesforceAccount(_0x13e7d9){this['id']=_0x13e7d9['id']||0x0;this[_0x2c8f('0x0')]=_0x13e7d9[_0x2c8f('0x0')]||'';this['username']=_0x13e7d9[_0x2c8f('0x1')]||'';this[_0x2c8f('0x2')]=_0x13e7d9['remoteUri']||'';this[_0x2c8f('0x3')]=_0x13e7d9['password']||'';this[_0x2c8f('0x4')]=_0x13e7d9[_0x2c8f('0x4')]||'';this[_0x2c8f('0x5')]=_0x13e7d9[_0x2c8f('0x5')]||'';this[_0x2c8f('0x6')]=_0x13e7d9['securityToken']||'';this[_0x2c8f('0x7')]=_0x13e7d9[_0x2c8f('0x7')]||_0x2c8f('0x8');this[_0x2c8f('0x9')]=_0x13e7d9[_0x2c8f('0x9')]||'';this['Configurations']=_0x13e7d9[_0x2c8f('0xa')]||{};}module[_0x2c8f('0xb')]=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e26=['Configurations','exports','name','username','password','remoteUri','serverUrl'];(function(_0x383079,_0x6391db){var _0xc7594=function(_0x2eb8c0){while(--_0x2eb8c0){_0x383079['push'](_0x383079['shift']());}};_0xc7594(++_0x6391db);}(_0x3e26,0x183));var _0x63e2=function(_0x334815,_0xf2a410){_0x334815=_0x334815-0x0;var _0x48ede9=_0x3e26[_0x334815];return _0x48ede9;};'use strict';function ServicenowAccount(_0x293013){this['id']=_0x293013['id']||0x0;this[_0x63e2('0x0')]=_0x293013[_0x63e2('0x0')]||'';this[_0x63e2('0x1')]=_0x293013[_0x63e2('0x1')]||'';this[_0x63e2('0x2')]=_0x293013['password']||'';this[_0x63e2('0x3')]=_0x293013[_0x63e2('0x3')]||'';this[_0x63e2('0x4')]=_0x293013[_0x63e2('0x4')]||'';this['Configurations']=_0x293013[_0x63e2('0x5')]||{};}module[_0x63e2('0x6')]=ServicenowAccount;
\ No newline at end of file
+var _0x9297=['password','remoteUri','serverUrl','Configurations','name','username'];(function(_0x571440,_0x31619d){var _0x5b0802=function(_0x537c72){while(--_0x537c72){_0x571440['push'](_0x571440['shift']());}};_0x5b0802(++_0x31619d);}(_0x9297,0x7c));var _0x7929=function(_0x1436f7,_0x2017ab){_0x1436f7=_0x1436f7-0x0;var _0xec42ca=_0x9297[_0x1436f7];return _0xec42ca;};'use strict';function ServicenowAccount(_0x4d312b){this['id']=_0x4d312b['id']||0x0;this[_0x7929('0x0')]=_0x4d312b[_0x7929('0x0')]||'';this[_0x7929('0x1')]=_0x4d312b['username']||'';this[_0x7929('0x2')]=_0x4d312b[_0x7929('0x2')]||'';this[_0x7929('0x3')]=_0x4d312b[_0x7929('0x3')]||'';this[_0x7929('0x4')]=_0x4d312b['serverUrl']||'';this[_0x7929('0x5')]=_0x4d312b[_0x7929('0x5')]||{};}module['exports']=ServicenowAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9d8=['Configurations','name','username','password','remoteUri','serverUrl'];(function(_0x554ff1,_0x291851){var _0x161020=function(_0x475e17){while(--_0x475e17){_0x554ff1['push'](_0x554ff1['shift']());}};_0x161020(++_0x291851);}(_0xa9d8,0xc1));var _0x8a9d=function(_0x305cb0,_0x5d3fab){_0x305cb0=_0x305cb0-0x0;var _0x489c87=_0xa9d8[_0x305cb0];return _0x489c87;};'use strict';function SugarcrmAccount(_0x43dd43){this['id']=_0x43dd43['id']||0x0;this[_0x8a9d('0x0')]=_0x43dd43['name']||'';this[_0x8a9d('0x1')]=_0x43dd43['username']||'';this[_0x8a9d('0x2')]=_0x43dd43['password']||'';this[_0x8a9d('0x3')]=_0x43dd43[_0x8a9d('0x3')]||'';this[_0x8a9d('0x4')]=_0x43dd43[_0x8a9d('0x4')]||'';this[_0x8a9d('0x5')]=_0x43dd43[_0x8a9d('0x5')]||{};}module['exports']=SugarcrmAccount;
\ No newline at end of file
+var _0x771a=['name','username','password','remoteUri','serverUrl','Configurations','exports'];(function(_0x30e54a,_0x5000b7){var _0x277cc2=function(_0x2bae2f){while(--_0x2bae2f){_0x30e54a['push'](_0x30e54a['shift']());}};_0x277cc2(++_0x5000b7);}(_0x771a,0x1c7));var _0xa771=function(_0x403c20,_0x4a7b99){_0x403c20=_0x403c20-0x0;var _0x2b271a=_0x771a[_0x403c20];return _0x2b271a;};'use strict';function SugarcrmAccount(_0x313681){this['id']=_0x313681['id']||0x0;this[_0xa771('0x0')]=_0x313681[_0xa771('0x0')]||'';this[_0xa771('0x1')]=_0x313681['username']||'';this[_0xa771('0x2')]=_0x313681[_0xa771('0x2')]||'';this[_0xa771('0x3')]=_0x313681[_0xa771('0x3')]||'';this[_0xa771('0x4')]=_0x313681[_0xa771('0x4')]||'';this[_0xa771('0x5')]=_0x313681[_0xa771('0x5')]||{};}module[_0xa771('0x6')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb47f=['accountcode','unknown','status','address','exports','name'];(function(_0x5a8756,_0xb886f4){var _0x73d83a=function(_0x248d5a){while(--_0x248d5a){_0x5a8756['push'](_0x5a8756['shift']());}};_0x73d83a(++_0xb886f4);}(_0xb47f,0x15b));var _0xfb47=function(_0x5dbd4b,_0x2fb8fe){_0x5dbd4b=_0x5dbd4b-0x0;var _0x5d2723=_0xb47f[_0x5dbd4b];return _0x5d2723;};'use strict';function Telephone(_0x5abe87){this['id']=_0x5abe87['id']||0x0;this[_0xfb47('0x0')]=_0x5abe87[_0xfb47('0x0')]||'';this[_0xfb47('0x1')]=_0x5abe87[_0xfb47('0x1')]||'';this['state']=_0xfb47('0x2');this['stateTime']=0x0;this[_0xfb47('0x3')]=_0xfb47('0x2');this[_0xfb47('0x4')]='';}module[_0xfb47('0x5')]=Telephone;
\ No newline at end of file
+var _0xdcf9=['exports','name','accountcode','state','unknown','stateTime','status','address'];(function(_0x174642,_0x4d31d6){var _0x3e1afe=function(_0x4341d8){while(--_0x4341d8){_0x174642['push'](_0x174642['shift']());}};_0x3e1afe(++_0x4d31d6);}(_0xdcf9,0x101));var _0x9dcf=function(_0x31c8d0,_0x35837c){_0x31c8d0=_0x31c8d0-0x0;var _0x29934c=_0xdcf9[_0x31c8d0];return _0x29934c;};'use strict';function Telephone(_0x167a02){this['id']=_0x167a02['id']||0x0;this[_0x9dcf('0x0')]=_0x167a02[_0x9dcf('0x0')]||'';this[_0x9dcf('0x1')]=_0x167a02[_0x9dcf('0x1')]||'';this[_0x9dcf('0x2')]=_0x9dcf('0x3');this[_0x9dcf('0x4')]=0x0;this[_0x9dcf('0x5')]=_0x9dcf('0x3');this[_0x9dcf('0x6')]='';}module[_0x9dcf('0x7')]=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['name','html'];(function(_0x3dc1f8,_0x228a70){var _0x312b15=function(_0x5aeaad){while(--_0x5aeaad){_0x3dc1f8['push'](_0x3dc1f8['shift']());}};_0x312b15(++_0x228a70);}(_0xb10b,0x12a));var _0xbb10=function(_0x4e5af1,_0x1dfc1f){_0x4e5af1=_0x4e5af1-0x0;var _0x357f9d=_0xb10b[_0x4e5af1];return _0x357f9d;};'use strict';function template(_0x13ce8d){this['id']=_0x13ce8d['id']||0x0;this['name']=_0x13ce8d[_0xbb10('0x0')]||'';this[_0xbb10('0x1')]=_0x13ce8d[_0xbb10('0x1')]||'';}module['exports']=template;
\ No newline at end of file
+var _0xb10b=['name','html'];(function(_0x190769,_0x5e309e){var _0x1bbcd2=function(_0x13da70){while(--_0x13da70){_0x190769['push'](_0x190769['shift']());}};_0x1bbcd2(++_0x5e309e);}(_0xb10b,0x12a));var _0xbb10=function(_0x36e059,_0x19ee27){_0x36e059=_0x36e059-0x0;var _0x52ee13=_0xb10b[_0x36e059];return _0x52ee13;};'use strict';function template(_0x13ce8d){this['id']=_0x13ce8d['id']||0x0;this['name']=_0x13ce8d[_0xbb10('0x0')]||'';this[_0xbb10('0x1')]=_0x13ce8d[_0xbb10('0x1')]||'';}module['exports']=template;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14a0=['voice','status','AnyConditions','Actions','name','channel'];(function(_0x42614f,_0x5cadb1){var _0x3d7d6a=function(_0x1b2ae2){while(--_0x1b2ae2){_0x42614f['push'](_0x42614f['shift']());}};_0x3d7d6a(++_0x5cadb1);}(_0x14a0,0x8e));var _0x014a=function(_0x16f125,_0x359f0e){_0x16f125=_0x16f125-0x0;var _0x4f5dde=_0x14a0[_0x16f125];return _0x4f5dde;};'use strict';function Trigger(_0x1ee939){this['id']=_0x1ee939['id']||0x0;this[_0x014a('0x0')]=_0x1ee939[_0x014a('0x0')]||'';this[_0x014a('0x1')]=_0x1ee939[_0x014a('0x1')]||_0x014a('0x2');this[_0x014a('0x3')]=_0x1ee939[_0x014a('0x3')]||![];this['AllConditions']=_0x1ee939['AllConditions']||[];this[_0x014a('0x4')]=_0x1ee939[_0x014a('0x4')]||[];this[_0x014a('0x5')]=_0x1ee939['Actions']||[];}module['exports']=Trigger;
\ No newline at end of file
+var _0x9ffd=['Actions','exports','name','channel','voice','status','AllConditions','AnyConditions'];(function(_0x13eb9c,_0x53815a){var _0x23bfb8=function(_0x11d307){while(--_0x11d307){_0x13eb9c['push'](_0x13eb9c['shift']());}};_0x23bfb8(++_0x53815a);}(_0x9ffd,0xaa));var _0xd9ff=function(_0x2a1b2f,_0x278c49){_0x2a1b2f=_0x2a1b2f-0x0;var _0x4166d8=_0x9ffd[_0x2a1b2f];return _0x4166d8;};'use strict';function Trigger(_0x4c26a1){this['id']=_0x4c26a1['id']||0x0;this[_0xd9ff('0x0')]=_0x4c26a1[_0xd9ff('0x0')]||'';this['channel']=_0x4c26a1[_0xd9ff('0x1')]||_0xd9ff('0x2');this[_0xd9ff('0x3')]=_0x4c26a1[_0xd9ff('0x3')]||![];this['AllConditions']=_0x4c26a1[_0xd9ff('0x4')]||[];this[_0xd9ff('0x5')]=_0x4c26a1['AnyConditions']||[];this[_0xd9ff('0x6')]=_0x4c26a1[_0xd9ff('0x6')]||[];}module[_0xd9ff('0x7')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7ee=['port','domainport','refresh','stateRegistry','registrationtime','address','defaultuser','active','name','state','unknown','status','registry','indexOf','host'];(function(_0x11e05d,_0x3a4491){var _0x335588=function(_0x35ec3f){while(--_0x35ec3f){_0x11e05d['push'](_0x11e05d['shift']());}};_0x335588(++_0x3a4491);}(_0xc7ee,0x9d));var _0xec7e=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xc7ee[_0x3ab51d];return _0x29a04e;};'use strict';function Trunk(_0x17ca82){this['id']=_0x17ca82['id']||0x0;this[_0xec7e('0x0')]=_0x17ca82['active']||![];this[_0xec7e('0x1')]=_0x17ca82[_0xec7e('0x1')]||'';this[_0xec7e('0x2')]=_0xec7e('0x3');this['stateTime']=0x0;this[_0xec7e('0x4')]='unknown';this[_0xec7e('0x5')]=_0x17ca82[_0xec7e('0x5')]&&_0x17ca82[_0xec7e('0x5')][_0xec7e('0x6')](':')?_0x17ca82[_0xec7e('0x5')]['split'](':')[0x0]:'';this[_0xec7e('0x7')]='';this[_0xec7e('0x8')]='';this['domain']='';this[_0xec7e('0x9')]='';this[_0xec7e('0xa')]='';this[_0xec7e('0xb')]=_0xec7e('0x3');this[_0xec7e('0xc')]='';this[_0xec7e('0xd')]='';this[_0xec7e('0xe')]=_0x17ca82[_0xec7e('0xe')]||'';}module['exports']=Trunk;
\ No newline at end of file
+var _0xd83e=['address','defaultuser','exports','active','name','state','unknown','status','registry','indexOf','port','domain','refresh','stateRegistry','registrationtime'];(function(_0x29bab6,_0x3a5e45){var _0x425406=function(_0x3860e6){while(--_0x3860e6){_0x29bab6['push'](_0x29bab6['shift']());}};_0x425406(++_0x3a5e45);}(_0xd83e,0x17a));var _0xed83=function(_0x4ebce6,_0x2b27bc){_0x4ebce6=_0x4ebce6-0x0;var _0x51ac30=_0xd83e[_0x4ebce6];return _0x51ac30;};'use strict';function Trunk(_0x5d3077){this['id']=_0x5d3077['id']||0x0;this[_0xed83('0x0')]=_0x5d3077[_0xed83('0x0')]||![];this['name']=_0x5d3077[_0xed83('0x1')]||'';this[_0xed83('0x2')]=_0xed83('0x3');this['stateTime']=0x0;this[_0xed83('0x4')]=_0xed83('0x3');this[_0xed83('0x5')]=_0x5d3077[_0xed83('0x5')]&&_0x5d3077[_0xed83('0x5')][_0xed83('0x6')](':')?_0x5d3077[_0xed83('0x5')]['split'](':')[0x0]:'';this['host']='';this[_0xed83('0x7')]='';this[_0xed83('0x8')]='';this['domainport']='';this[_0xed83('0x9')]='';this[_0xed83('0xa')]=_0xed83('0x3');this[_0xed83('0xb')]='';this[_0xed83('0xc')]='';this[_0xed83('0xd')]=_0x5d3077[_0xed83('0xd')]||'';}module[_0xed83('0xe')]=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31bd=['recordingFormat','none','mandatoryDisposition','exports','exten'];(function(_0x43e2b5,_0x40cf62){var _0xa1675c=function(_0x4fd081){while(--_0x4fd081){_0x43e2b5['push'](_0x43e2b5['shift']());}};_0xa1675c(++_0x40cf62);}(_0x31bd,0x1e9));var _0xd31b=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x31bd[_0x501510];return _0x1e6ee5;};'use strict';function voiceExtension(_0x539a5c){this['id']=_0x539a5c['id']||0x0;this[_0xd31b('0x0')]=_0x539a5c[_0xd31b('0x0')]||'';this[_0xd31b('0x1')]=_0x539a5c['recordingFormat']||_0xd31b('0x2');this[_0xd31b('0x3')]=_0x539a5c['mandatoryDisposition']||![];}module[_0xd31b('0x4')]=voiceExtension;
\ No newline at end of file
+var _0x3861=['recordingFormat','none','mandatoryDisposition','exports','exten'];(function(_0x30abf3,_0x520318){var _0x3f20f5=function(_0x2fa82d){while(--_0x2fa82d){_0x30abf3['push'](_0x30abf3['shift']());}};_0x3f20f5(++_0x520318);}(_0x3861,0xcc));var _0x1386=function(_0x1c2aea,_0x5698c4){_0x1c2aea=_0x1c2aea-0x0;var _0x5a6be9=_0x3861[_0x1c2aea];return _0x5a6be9;};'use strict';function voiceExtension(_0x51b061){this['id']=_0x51b061['id']||0x0;this[_0x1386('0x0')]=_0x51b061[_0x1386('0x0')]||'';this[_0x1386('0x1')]=_0x51b061[_0x1386('0x1')]||_0x1386('0x2');this[_0x1386('0x3')]=_0x51b061[_0x1386('0x3')]||![];}module[_0x1386('0x4')]=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a71=['DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','rrmemory','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundDropCallsDayACS','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialRecallInQueue','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDispositionPause','exports','unknown','not_inuse','inuse','invalid','unavailable','onhold','gsm','name','monitor_format','type','talking','total','answered','sumDuration','sumHoldTime','sumBillable','unmanaged','abandoned','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','temp','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x7a71,0xad));var _0x17a7=function(_0x73f73f,_0x3770d3){_0x73f73f=_0x73f73f-0x0;var _0x3f8f23=_0x7a71[_0x73f73f];return _0x3f8f23;};'use strict';var statusDesc=[_0x17a7('0x0'),_0x17a7('0x1'),_0x17a7('0x2'),'busy',_0x17a7('0x3'),_0x17a7('0x4'),'ringing','ringinuse',_0x17a7('0x5')];var monitorFormat={'wav':'wav','wav49':'wav49','gsm':_0x17a7('0x6')};var strategy={'rrmemory':'rrmemory','roundrobin':'roundrobin'};function VoiceQueue(_0x224277){this['id']=_0x224277['id']||0x0;this[_0x17a7('0x7')]=_0x224277[_0x17a7('0x7')]||'';this[_0x17a7('0x8')]=_0x224277[_0x17a7('0x8')]||'';this[_0x17a7('0x9')]=_0x224277[_0x17a7('0x9')]||'inbound';this['waiting']=0x0;this[_0x17a7('0xa')]=0x0;this[_0x17a7('0xb')]=0x0;this[_0x17a7('0xc')]=0x0;this[_0x17a7('0xd')]=0x0;this[_0x17a7('0xe')]=0x0;this[_0x17a7('0xf')]=0x0;this[_0x17a7('0x10')]=0x0;this[_0x17a7('0x11')]=0x0;this[_0x17a7('0x12')]=0x0;this[_0x17a7('0x13')]=0x0;this[_0x17a7('0x14')]=_0x224277['acw']||![];this[_0x17a7('0x15')]=_0x224277[_0x17a7('0x15')]||0xa;this['autopause']=_0x224277[_0x17a7('0x16')]||'no';this[_0x17a7('0x17')]=!![];this[_0x17a7('0x18')]='';this[_0x17a7('0x19')]=0x0;this[_0x17a7('0x1a')]=0x0;this[_0x17a7('0x1b')]=_0x224277[_0x17a7('0x1b')]||null;this[_0x17a7('0x1c')]=_0x224277[_0x17a7('0x1c')]?_0x224277['dialGlobalInterval']:null;this['dialActive']=_0x224277[_0x17a7('0x1d')];this[_0x17a7('0x1e')]=_0x224277[_0x17a7('0x1e')]||_0x17a7('0x1f');this[_0x17a7('0x20')]=_0x224277[_0x17a7('0x20')]||0x0;this[_0x17a7('0x21')]=_0x224277[_0x17a7('0x21')]||0x0;this[_0x17a7('0x22')]=_0x224277[_0x17a7('0x22')]||0x1;this['dialPredictiveOptimization']=_0x224277[_0x17a7('0x23')]||'dropRate';this[_0x17a7('0x24')]=_0x224277['dialPredictiveOptimizationPercentage']||0.03;this['dialPredictiveInterval']=_0x224277[_0x17a7('0x25')]||0x258;this[_0x17a7('0x26')]=_0x224277['dialOriginateCallerIdName']||_0x17a7('0x27');this['dialOriginateCallerIdNumber']=_0x224277[_0x17a7('0x28')]||'anonymous';this[_0x17a7('0x29')]=_0x224277[_0x17a7('0x29')]||0x1e;this[_0x17a7('0x2a')]=_0x224277[_0x17a7('0x2a')]||_0x17a7('0x2b');this[_0x17a7('0x2c')]=_0x224277[_0x17a7('0x2c')]||0x3;this[_0x17a7('0x2d')]=_0x224277['dialQueueProject']||undefined;this[_0x17a7('0x2e')]=_0x224277['dialCongestionMaxRetry']||0x3;this[_0x17a7('0x2f')]=_0x224277[_0x17a7('0x2f')]||0x96;this[_0x17a7('0x30')]=_0x224277['dialBusyMaxRetry']||0x3;this['dialBusyRetryFrequency']=_0x224277[_0x17a7('0x31')]||0x96;this[_0x17a7('0x32')]=_0x224277[_0x17a7('0x32')]||0x3;this[_0x17a7('0x33')]=_0x224277['dialNoAnswerRetryFrequency']||0x96;this['dialNoSuchNumberMaxRetry']=_0x224277['dialNoSuchNumberMaxRetry']||0x3;this[_0x17a7('0x34')]=_0x224277[_0x17a7('0x34')]||0x96;this[_0x17a7('0x35')]=_0x224277['dialDropMaxRetry']||0x3;this[_0x17a7('0x36')]=_0x224277[_0x17a7('0x36')]||0x96;this[_0x17a7('0x37')]=_0x224277[_0x17a7('0x37')]||0x3;this[_0x17a7('0x38')]=_0x224277[_0x17a7('0x38')]||0x96;this[_0x17a7('0x39')]=_0x224277[_0x17a7('0x39')]||0x3;this[_0x17a7('0x3a')]=_0x224277[_0x17a7('0x3a')]||0x96;this[_0x17a7('0x3b')]=_0x224277[_0x17a7('0x3b')]||0x3;this['dialAgentRejectRetryFrequency']=_0x224277[_0x17a7('0x3c')]||0x96;this[_0x17a7('0x3d')]=_0x224277[_0x17a7('0x3d')]||0x4;this['Trunk']=_0x224277['Trunk']?_0x224277[_0x17a7('0x3e')]:undefined;this[_0x17a7('0x3f')]=_0x224277[_0x17a7('0x3f')]?_0x224277['TrunkBackup']:undefined;this[_0x17a7('0x40')]=_0x224277['dialPrefix']||undefined;this[_0x17a7('0x41')]=_0x224277[_0x17a7('0x41')]?_0x224277[_0x17a7('0x41')]:undefined;this[_0x17a7('0x42')]=_0x224277['dialOrderByScheduledAt']||_0x17a7('0x43');this[_0x17a7('0x44')]=_0x224277[_0x17a7('0x44')]||undefined;this[_0x17a7('0x45')]=_0x224277['dialCutDigit']||undefined;this[_0x17a7('0x46')]=strategy[_0x224277[_0x17a7('0x46')]]||_0x17a7('0x47');this[_0x17a7('0x48')]=!![];this['dialAMDActive']=_0x224277[_0x17a7('0x49')]||![];this[_0x17a7('0x4a')]=_0x224277[_0x17a7('0x4a')];this['dialAMDGreeting']=_0x224277[_0x17a7('0x4b')];this[_0x17a7('0x4c')]=_0x224277['dialAMDAfterGreetingSilence'];this[_0x17a7('0x4d')]=_0x224277['dialAMDTotalAnalysisTime'];this[_0x17a7('0x4e')]=_0x224277['dialAMDMinWordLength'];this['dialAMDBetweenWordsSilence']=_0x224277['dialAMDBetweenWordsSilence'];this[_0x17a7('0x4f')]=_0x224277[_0x17a7('0x4f')];this[_0x17a7('0x50')]=_0x224277[_0x17a7('0x50')];this['dialAMDMaximumWordLength']=_0x224277[_0x17a7('0x51')];this[_0x17a7('0x52')]=0x0;this[_0x17a7('0x53')]=0x0;this[_0x17a7('0x54')]=_0x224277[_0x17a7('0x54')];this[_0x17a7('0x55')]=0x0;this['outboundAnswerAgiCallsDay']=0x0;this[_0x17a7('0x56')]=0x0;this[_0x17a7('0x57')]=0x0;this[_0x17a7('0x58')]=0x0;this[_0x17a7('0x59')]=0x0;this[_0x17a7('0x5a')]=0x0;this[_0x17a7('0x5b')]=0x0;this[_0x17a7('0x5c')]=0x0;this[_0x17a7('0x5d')]=0x0;this[_0x17a7('0x5e')]=0x0;this[_0x17a7('0x5f')]=0x0;this[_0x17a7('0x60')]=0x0;this[_0x17a7('0x61')]=0x0;this[_0x17a7('0x62')]=undefined;this[_0x17a7('0x63')]=undefined;this['handlePredictive']=undefined;this[_0x17a7('0x64')]=1.05;this['predictiveIntervalTotalCalls']=0x0;this[_0x17a7('0x65')]=0x0;this['predictiveIntervalDroppedCallsCallersExit']=0x0;this[_0x17a7('0x66')]=0x0;this[_0x17a7('0x67')]=0x0;this['predictiveIntervalAvgTalktime']=0x0;this['predictiveIntervalPauses']=0x0;this['predictiveIntervalAvailable']=0x0;this[_0x17a7('0x68')]=_0x224277[_0x17a7('0x69')]||0x14;this[_0x17a7('0x6a')]=_0x224277[_0x17a7('0x69')]||0xa;this[_0x17a7('0x6b')]=0x0;this[_0x17a7('0x6c')]=0x0;this['predictiveIntervalHitRate']=0x1;this[_0x17a7('0x6d')]=0x0;this[_0x17a7('0x6e')]=0x0;this[_0x17a7('0x6f')]=0x0;this[_0x17a7('0x70')]=0x0;this['dialRecallMeTimeout']=_0x224277[_0x17a7('0x71')]||0x1e;this['dialRecallInQueue']=_0x224277[_0x17a7('0x72')]||![];this[_0x17a7('0x73')]=_0x224277[_0x17a7('0x73')]||undefined;this[_0x17a7('0x74')]=_0x224277[_0x17a7('0x74')]||![];this[_0x17a7('0x75')]=_0x224277[_0x17a7('0x75')]||![];this[_0x17a7('0x8')]=monitorFormat[_0x224277[_0x17a7('0x8')]]?monitorFormat[_0x224277['monitor_format']]:undefined;this['mandatoryDisposition']=_0x224277['mandatoryDisposition']||![];this[_0x17a7('0x76')]=_0x224277[_0x17a7('0x76')]?_0x224277[_0x17a7('0x76')]:undefined;}module[_0x17a7('0x77')]=VoiceQueue;
\ No newline at end of file
+var _0xcebb=['predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalHitRate','erlangCalls','erlangAbandonmentRate','erlangBusyFactor','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','not_inuse','invalid','unavailable','ringinuse','onhold','wav','wav49','gsm','rrmemory','roundrobin','name','monitor_format','type','inbound','waiting','talking','total','answered','sumDuration','sumHoldTime','sumBillable','unmanaged','loggedIn','acw','acwTimeout','autopause','sendMessageOneNotActive','message','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundReCallsDay','outboundAbandonedDay','startPredictive','handlePredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout'];(function(_0x29d94e,_0xf386d6){var _0x106237=function(_0x327501){while(--_0x327501){_0x29d94e['push'](_0x29d94e['shift']());}};_0x106237(++_0xf386d6);}(_0xcebb,0x8c));var _0xbceb=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0xcebb[_0x5c2e3e];return _0x53f64a;};'use strict';var statusDesc=[_0xbceb('0x0'),_0xbceb('0x1'),'inuse','busy',_0xbceb('0x2'),_0xbceb('0x3'),'ringing',_0xbceb('0x4'),_0xbceb('0x5')];var monitorFormat={'wav':_0xbceb('0x6'),'wav49':_0xbceb('0x7'),'gsm':_0xbceb('0x8')};var strategy={'rrmemory':_0xbceb('0x9'),'roundrobin':_0xbceb('0xa')};function VoiceQueue(_0xcdc7ac){this['id']=_0xcdc7ac['id']||0x0;this[_0xbceb('0xb')]=_0xcdc7ac['name']||'';this['monitor_format']=_0xcdc7ac[_0xbceb('0xc')]||'';this[_0xbceb('0xd')]=_0xcdc7ac[_0xbceb('0xd')]||_0xbceb('0xe');this[_0xbceb('0xf')]=0x0;this[_0xbceb('0x10')]=0x0;this[_0xbceb('0x11')]=0x0;this[_0xbceb('0x12')]=0x0;this[_0xbceb('0x13')]=0x0;this[_0xbceb('0x14')]=0x0;this[_0xbceb('0x15')]=0x0;this[_0xbceb('0x16')]=0x0;this['abandoned']=0x0;this[_0xbceb('0x17')]=0x0;this['available']=0x0;this[_0xbceb('0x18')]=_0xcdc7ac[_0xbceb('0x18')]||![];this[_0xbceb('0x19')]=_0xcdc7ac[_0xbceb('0x19')]||0xa;this[_0xbceb('0x1a')]=_0xcdc7ac[_0xbceb('0x1a')]||'no';this[_0xbceb('0x1b')]=!![];this[_0xbceb('0x1c')]='';this['originated']=0x0;this['temp']=0x0;this[_0xbceb('0x1d')]=_0xcdc7ac[_0xbceb('0x1d')]||null;this['dialGlobalInterval']=_0xcdc7ac['dialGlobalInterval']?_0xcdc7ac[_0xbceb('0x1e')]:null;this[_0xbceb('0x1f')]=_0xcdc7ac[_0xbceb('0x1f')];this['dialMethod']=_0xcdc7ac[_0xbceb('0x20')]||_0xbceb('0x21');this['dialLimitChannel']=_0xcdc7ac[_0xbceb('0x22')]||0x0;this[_0xbceb('0x23')]=_0xcdc7ac[_0xbceb('0x23')]||0x0;this['dialPowerLevel']=_0xcdc7ac[_0xbceb('0x24')]||0x1;this[_0xbceb('0x25')]=_0xcdc7ac['dialPredictiveOptimization']||_0xbceb('0x26');this[_0xbceb('0x27')]=_0xcdc7ac[_0xbceb('0x27')]||0.03;this[_0xbceb('0x28')]=_0xcdc7ac[_0xbceb('0x28')]||0x258;this[_0xbceb('0x29')]=_0xcdc7ac[_0xbceb('0x29')]||_0xbceb('0x2a');this[_0xbceb('0x2b')]=_0xcdc7ac[_0xbceb('0x2b')]||'anonymous';this[_0xbceb('0x2c')]=_0xcdc7ac[_0xbceb('0x2c')]||0x1e;this[_0xbceb('0x2d')]=_0xcdc7ac[_0xbceb('0x2d')]||_0xbceb('0x2e');this[_0xbceb('0x2f')]=_0xcdc7ac[_0xbceb('0x2f')]||0x3;this['dialQueueProject']=_0xcdc7ac['dialQueueProject']||undefined;this['dialCongestionMaxRetry']=_0xcdc7ac[_0xbceb('0x30')]||0x3;this[_0xbceb('0x31')]=_0xcdc7ac[_0xbceb('0x31')]||0x96;this['dialBusyMaxRetry']=_0xcdc7ac[_0xbceb('0x32')]||0x3;this[_0xbceb('0x33')]=_0xcdc7ac[_0xbceb('0x33')]||0x96;this[_0xbceb('0x34')]=_0xcdc7ac[_0xbceb('0x34')]||0x3;this['dialNoAnswerRetryFrequency']=_0xcdc7ac[_0xbceb('0x35')]||0x96;this[_0xbceb('0x36')]=_0xcdc7ac[_0xbceb('0x36')]||0x3;this[_0xbceb('0x37')]=_0xcdc7ac[_0xbceb('0x37')]||0x96;this[_0xbceb('0x38')]=_0xcdc7ac[_0xbceb('0x38')]||0x3;this[_0xbceb('0x39')]=_0xcdc7ac['dialDropRetryFrequency']||0x96;this[_0xbceb('0x3a')]=_0xcdc7ac[_0xbceb('0x3a')]||0x3;this[_0xbceb('0x3b')]=_0xcdc7ac[_0xbceb('0x3b')]||0x96;this[_0xbceb('0x3c')]=_0xcdc7ac[_0xbceb('0x3c')]||0x3;this['dialMachineRetryFrequency']=_0xcdc7ac['dialMachineRetryFrequency']||0x96;this[_0xbceb('0x3d')]=_0xcdc7ac['dialAgentRejectMaxRetry']||0x3;this[_0xbceb('0x3e')]=_0xcdc7ac['dialAgentRejectRetryFrequency']||0x96;this[_0xbceb('0x3f')]=_0xcdc7ac[_0xbceb('0x3f')]||0x4;this[_0xbceb('0x40')]=_0xcdc7ac[_0xbceb('0x40')]?_0xcdc7ac[_0xbceb('0x40')]:undefined;this[_0xbceb('0x41')]=_0xcdc7ac[_0xbceb('0x41')]?_0xcdc7ac[_0xbceb('0x41')]:undefined;this[_0xbceb('0x42')]=_0xcdc7ac[_0xbceb('0x42')]||undefined;this[_0xbceb('0x43')]=_0xcdc7ac['Interval']?_0xcdc7ac[_0xbceb('0x43')]:undefined;this['dialOrderByScheduledAt']=_0xcdc7ac[_0xbceb('0x44')]||_0xbceb('0x45');this[_0xbceb('0x46')]=_0xcdc7ac[_0xbceb('0x46')]||undefined;this[_0xbceb('0x47')]=_0xcdc7ac[_0xbceb('0x47')]||undefined;this[_0xbceb('0x48')]=strategy[_0xcdc7ac[_0xbceb('0x48')]]||_0xbceb('0x9');this['queueStatusComplete']=!![];this[_0xbceb('0x49')]=_0xcdc7ac[_0xbceb('0x49')]||![];this[_0xbceb('0x4a')]=_0xcdc7ac['dialAMDInitialSilence'];this[_0xbceb('0x4b')]=_0xcdc7ac[_0xbceb('0x4b')];this[_0xbceb('0x4c')]=_0xcdc7ac[_0xbceb('0x4c')];this[_0xbceb('0x4d')]=_0xcdc7ac[_0xbceb('0x4d')];this[_0xbceb('0x4e')]=_0xcdc7ac['dialAMDMinWordLength'];this[_0xbceb('0x4f')]=_0xcdc7ac[_0xbceb('0x4f')];this[_0xbceb('0x50')]=_0xcdc7ac[_0xbceb('0x50')];this[_0xbceb('0x51')]=_0xcdc7ac[_0xbceb('0x51')];this[_0xbceb('0x52')]=_0xcdc7ac[_0xbceb('0x52')];this[_0xbceb('0x53')]=0x0;this[_0xbceb('0x54')]=0x0;this[_0xbceb('0x55')]=_0xcdc7ac[_0xbceb('0x55')];this[_0xbceb('0x56')]=0x0;this[_0xbceb('0x57')]=0x0;this[_0xbceb('0x58')]=0x0;this[_0xbceb('0x59')]=0x0;this[_0xbceb('0x5a')]=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0xbceb('0x5b')]=0x0;this[_0xbceb('0x5c')]=0x0;this[_0xbceb('0x5d')]=0x0;this[_0xbceb('0x5e')]=0x0;this[_0xbceb('0x5f')]=0x0;this['outboundDropCallsDayACS']=0x0;this[_0xbceb('0x60')]=0x0;this[_0xbceb('0x61')]=0x0;this['startProgressive']=undefined;this[_0xbceb('0x62')]=undefined;this[_0xbceb('0x63')]=undefined;this[_0xbceb('0x64')]=1.05;this[_0xbceb('0x65')]=0x0;this[_0xbceb('0x66')]=0x0;this['predictiveIntervalDroppedCallsCallersExit']=0x0;this[_0xbceb('0x67')]=0x0;this[_0xbceb('0x68')]=0x0;this[_0xbceb('0x69')]=0x0;this[_0xbceb('0x6a')]=0x0;this[_0xbceb('0x6b')]=0x0;this[_0xbceb('0x6c')]=_0xcdc7ac[_0xbceb('0x6d')]||0x14;this[_0xbceb('0x6e')]=_0xcdc7ac[_0xbceb('0x6d')]||0xa;this[_0xbceb('0x6f')]=0x0;this['predictiveIntervalErlangCallsDroppedCalls']=0x0;this[_0xbceb('0x70')]=0x1;this[_0xbceb('0x71')]=0x0;this['erlangCallToSecond']=0x0;this[_0xbceb('0x72')]=0x0;this[_0xbceb('0x73')]=0x0;this['dialRecallMeTimeout']=_0xcdc7ac['dialRecallMeTimeout']||0x1e;this['dialRecallInQueue']=_0xcdc7ac['dialRecallInQueue']||![];this[_0xbceb('0x74')]=_0xcdc7ac[_0xbceb('0x74')]||undefined;this['dialAgiAfterHangupClient']=_0xcdc7ac[_0xbceb('0x75')]||![];this[_0xbceb('0x76')]=_0xcdc7ac[_0xbceb('0x76')]||![];this[_0xbceb('0xc')]=monitorFormat[_0xcdc7ac[_0xbceb('0xc')]]?monitorFormat[_0xcdc7ac[_0xbceb('0xc')]]:undefined;this['mandatoryDisposition']=_0xcdc7ac[_0xbceb('0x77')]||![];this[_0xbceb('0x78')]=_0xcdc7ac[_0xbceb('0x78')]?_0xcdc7ac[_0xbceb('0x78')]:undefined;}module[_0xbceb('0x79')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3013=['remoteUri','Configurations','name','username','accessKey'];(function(_0x2cc711,_0x300328){var _0x31a52e=function(_0x588378){while(--_0x588378){_0x2cc711['push'](_0x2cc711['shift']());}};_0x31a52e(++_0x300328);}(_0x3013,0x16a));var _0x3301=function(_0x4473fb,_0x5e5e01){_0x4473fb=_0x4473fb-0x0;var _0x17d524=_0x3013[_0x4473fb];return _0x17d524;};'use strict';function VtigerAccount(_0x2ab1ae){this['id']=_0x2ab1ae['id']||0x0;this[_0x3301('0x0')]=_0x2ab1ae[_0x3301('0x0')]||'';this[_0x3301('0x1')]=_0x2ab1ae[_0x3301('0x1')]||'';this[_0x3301('0x2')]=_0x2ab1ae[_0x3301('0x2')]||'';this['remoteUri']=_0x2ab1ae[_0x3301('0x3')]||'';this['serverUrl']=_0x2ab1ae['serverUrl']||'';this['Configurations']=_0x2ab1ae[_0x3301('0x4')]||{};}module['exports']=VtigerAccount;
\ No newline at end of file
+var _0xa6bf=['username','accessKey','serverUrl','Configurations','name'];(function(_0x55f48a,_0x513989){var _0xc94056=function(_0x2d0766){while(--_0x2d0766){_0x55f48a['push'](_0x55f48a['shift']());}};_0xc94056(++_0x513989);}(_0xa6bf,0x1ee));var _0xfa6b=function(_0xbcef9,_0x441d5c){_0xbcef9=_0xbcef9-0x0;var _0x3d8320=_0xa6bf[_0xbcef9];return _0x3d8320;};'use strict';function VtigerAccount(_0x2afb77){this['id']=_0x2afb77['id']||0x0;this[_0xfa6b('0x0')]=_0x2afb77[_0xfa6b('0x0')]||'';this[_0xfa6b('0x1')]=_0x2afb77[_0xfa6b('0x1')]||'';this[_0xfa6b('0x2')]=_0x2afb77[_0xfa6b('0x2')]||'';this['remoteUri']=_0x2afb77['remoteUri']||'';this[_0xfa6b('0x3')]=_0x2afb77[_0xfa6b('0x3')]||'';this[_0xfa6b('0x4')]=_0x2afb77['Configurations']||{};}module['exports']=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x61e8=['Configurations','username','password','token','remoteUri','authType','type','integrationTab','serverUrl'];(function(_0x9ded14,_0x34dbc9){var _0x20c47c=function(_0x243efd){while(--_0x243efd){_0x9ded14['push'](_0x9ded14['shift']());}};_0x20c47c(++_0x34dbc9);}(_0x61e8,0x1cc));var _0x861e=function(_0x18cab8,_0x53086f){_0x18cab8=_0x18cab8-0x0;var _0x3606ac=_0x61e8[_0x18cab8];return _0x3606ac;};'use strict';function ZendeskAccount(_0x4c7cac){this['id']=_0x4c7cac['id']||0x0;this['name']=_0x4c7cac['name']||'';this[_0x861e('0x0')]=_0x4c7cac[_0x861e('0x0')]||'';this[_0x861e('0x1')]=_0x4c7cac[_0x861e('0x1')]||'';this[_0x861e('0x2')]=_0x4c7cac[_0x861e('0x2')]||'';this[_0x861e('0x3')]=_0x4c7cac[_0x861e('0x3')]||'';this[_0x861e('0x4')]=_0x4c7cac[_0x861e('0x4')]||'';this[_0x861e('0x5')]=_0x4c7cac[_0x861e('0x5')]||_0x861e('0x6');this[_0x861e('0x7')]=_0x4c7cac[_0x861e('0x7')]||'';this[_0x861e('0x8')]=_0x4c7cac[_0x861e('0x8')]||{};}module['exports']=ZendeskAccount;
\ No newline at end of file
+var _0xfade=['remoteUri','authType','type','serverUrl','Configurations','exports','name','username','password','token'];(function(_0x890a89,_0x3f5885){var _0x591108=function(_0x58672b){while(--_0x58672b){_0x890a89['push'](_0x890a89['shift']());}};_0x591108(++_0x3f5885);}(_0xfade,0xf6));var _0xefad=function(_0x360b16,_0x50cc40){_0x360b16=_0x360b16-0x0;var _0x5c4166=_0xfade[_0x360b16];return _0x5c4166;};'use strict';function ZendeskAccount(_0x5426e7){this['id']=_0x5426e7['id']||0x0;this[_0xefad('0x0')]=_0x5426e7['name']||'';this['username']=_0x5426e7[_0xefad('0x1')]||'';this[_0xefad('0x2')]=_0x5426e7[_0xefad('0x2')]||'';this['token']=_0x5426e7[_0xefad('0x3')]||'';this[_0xefad('0x4')]=_0x5426e7[_0xefad('0x4')]||'';this[_0xefad('0x5')]=_0x5426e7[_0xefad('0x5')]||'';this['type']=_0x5426e7[_0xefad('0x6')]||'integrationTab';this[_0xefad('0x7')]=_0x5426e7[_0xefad('0x7')]||'';this[_0xefad('0x8')]=_0x5426e7[_0xefad('0x8')]||{};}module[_0xefad('0x9')]=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50c0=['refreshToken','Configurations','name','description','host','zone','clientId','clientSecret','serverUrl','code'];(function(_0x1d24eb,_0x12295b){var _0x1dc576=function(_0x4d5770){while(--_0x4d5770){_0x1d24eb['push'](_0x1d24eb['shift']());}};_0x1dc576(++_0x12295b);}(_0x50c0,0x66));var _0x050c=function(_0x246e1a,_0x30ee98){_0x246e1a=_0x246e1a-0x0;var _0x19a13c=_0x50c0[_0x246e1a];return _0x19a13c;};'use strict';function ZohoAccount(_0x595045){this['id']=_0x595045['id']||0x0;this[_0x050c('0x0')]=_0x595045[_0x050c('0x0')]||'';this[_0x050c('0x1')]=_0x595045['description']||'';this[_0x050c('0x2')]=_0x595045[_0x050c('0x2')]||'';this['zone']=_0x595045[_0x050c('0x3')]||'';this[_0x050c('0x4')]=_0x595045[_0x050c('0x4')]||'';this[_0x050c('0x5')]=_0x595045[_0x050c('0x5')]||'';this['serverUrl']=_0x595045[_0x050c('0x6')]||'';this['code']=_0x595045[_0x050c('0x7')]||'';this[_0x050c('0x8')]=_0x595045[_0x050c('0x8')]||'';this[_0x050c('0x9')]=_0x595045[_0x050c('0x9')]||{};}module['exports']=ZohoAccount;
\ No newline at end of file
+var _0x3481=['serverUrl','code','refreshToken','Configurations','exports','name','description','host','zone','clientId','clientSecret'];(function(_0x20d5ff,_0x1e6639){var _0x9d1ea1=function(_0x4259da){while(--_0x4259da){_0x20d5ff['push'](_0x20d5ff['shift']());}};_0x9d1ea1(++_0x1e6639);}(_0x3481,0xaa));var _0x1348=function(_0x1378d1,_0x4459bf){_0x1378d1=_0x1378d1-0x0;var _0x4bc18d=_0x3481[_0x1378d1];return _0x4bc18d;};'use strict';function ZohoAccount(_0x373107){this['id']=_0x373107['id']||0x0;this[_0x1348('0x0')]=_0x373107['name']||'';this[_0x1348('0x1')]=_0x373107[_0x1348('0x1')]||'';this[_0x1348('0x2')]=_0x373107[_0x1348('0x2')]||'';this[_0x1348('0x3')]=_0x373107[_0x1348('0x3')]||'';this[_0x1348('0x4')]=_0x373107[_0x1348('0x4')]||'';this['clientSecret']=_0x373107[_0x1348('0x5')]||'';this['serverUrl']=_0x373107[_0x1348('0x6')]||'';this[_0x1348('0x7')]=_0x373107['code']||'';this[_0x1348('0x8')]=_0x373107['refreshToken']||'';this[_0x1348('0x9')]=_0x373107[_0x1348('0x9')]||{};}module[_0x1348('0xa')]=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x472b=['ListId','UserId','VoiceQueueId','originatecalleridnum','prototype','\x22%s\x22\x20<%s>','number','exports','lodash','moment','isNil','string','queue','type','campaigntype','dialAnswer','membername','Agent','name','format','SIP/%s','calleridname','Contact','phone','active','calleridnum','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','callback','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0x460666,_0x24bfa0){var _0x555cbf=function(_0x3b4743){while(--_0x3b4743){_0x460666['push'](_0x460666['shift']());}};_0x555cbf(++_0x24bfa0);}(_0x472b,0x1a2));var _0xb472=function(_0x2c84bb,_0x346807){_0x2c84bb=_0x2c84bb-0x0;var _0x2aa704=_0x472b[_0x2c84bb];return _0x2aa704;};'use strict';var util=require('util');var _=require(_0xb472('0x0'));var moment=require(_0xb472('0x1'));function checkNameSurname(_0x4b73ce,_0x463f8c,_0xa5b7da){var _0x2ff4fb='';if(!_[_0xb472('0x2')](_0x463f8c)&&'string'===typeof _0x463f8c){_0x2ff4fb+=_0x463f8c;}if(!_['isNil'](_0xa5b7da)&&_0xb472('0x3')===typeof _0xa5b7da){_0x2ff4fb+='\x20'+_0xa5b7da;}if(_0x2ff4fb!==''){return _0x2ff4fb;}return _0x4b73ce;}function Action(_0x192012,_0x37538e,_0x26e007,_0x4f451c,_0x289f7c){this['uniqueid']=_0x26e007||undefined;this['idContact']=_0x192012['id'];this[_0xb472('0x4')]=_0x37538e['name'];this[_0xb472('0x5')]=_0x37538e['type'];this[_0xb472('0x6')]=_0xb472('0x4');this[_0xb472('0x7')]=![];this[_0xb472('0x8')]=_[_0xb472('0x2')](_0x192012[_0xb472('0x9')])?undefined:_0x192012[_0xb472('0x9')][_0xb472('0xa')];this['channelAgent']=this['membername']?util[_0xb472('0xb')](_0xb472('0xc'),this[_0xb472('0x8')]):_0x4f451c||undefined;this[_0xb472('0xd')]=checkNameSurname(_0x192012[_0xb472('0xe')][_0xb472('0xf')],_0x192012[_0xb472('0xe')]['firstName'],_0x192012[_0xb472('0xe')]['lastName']);this[_0xb472('0x10')]=_0x192012[_0xb472('0x10')]||![];this[_0xb472('0x11')]=_0x192012[_0xb472('0xe')][_0xb472('0xf')];this[_0xb472('0x12')]=_0x192012[_0xb472('0x12')];this[_0xb472('0x13')]=_0x192012['countbusyretry']||0x0;this['countcongestionretry']=_0x192012[_0xb472('0x14')]||0x0;this['countnoanswerretry']=_0x192012[_0xb472('0x15')]||0x0;this[_0xb472('0x16')]=(_0x192012['countbusyretry']||0x0)+(_0x192012[_0xb472('0x14')]||0x0)+(_0x192012[_0xb472('0x15')]||0x0)+(_0x192012[_0xb472('0x17')]||0x0)+(_0x192012[_0xb472('0x18')]||0x0)+(_0x192012[_0xb472('0x19')]||0x0)+(_0x192012[_0xb472('0x1a')]||0x0)+(_0x192012['countagentrejectretry']||0x0);this[_0xb472('0x17')]=_0x192012[_0xb472('0x17')]||0x0;this[_0xb472('0x18')]=_0x192012[_0xb472('0x18')]||0x0;this[_0xb472('0x19')]=_0x192012[_0xb472('0x19')]||0x0;this['countmachineretry']=_0x192012[_0xb472('0x1a')]||0x0;this['countagentrejectretry']=_0x192012[_0xb472('0x1b')]||0x0;this[_0xb472('0x1c')]=_0x192012['callback'];this[_0xb472('0x1d')]=_0x192012[_0xb472('0x1d')];this[_0xb472('0x1e')]=_0x192012[_0xb472('0x1e')];this[_0xb472('0x1f')]=_0x192012[_0xb472('0x1f')];this[_0xb472('0x20')]=_0x192012[_0xb472('0x20')];this['ListId']=_0x192012[_0xb472('0x21')];this[_0xb472('0x22')]=_['isNil'](_0x192012[_0xb472('0x9')])?_0x192012[_0xb472('0x22')]:_0x192012[_0xb472('0x9')]['id'];this['VoiceQueueId']=_0x192012[_0xb472('0x23')];this[_0xb472('0x24')]='';this['originatecalleridname']='';}Action[_0xb472('0x25')]['getCaller']=function(){return util[_0xb472('0xb')](_0xb472('0x26'),this['calleridname'],this[_0xb472('0x27')]);};module[_0xb472('0x28')]=Action;
\ No newline at end of file
+var _0xde8e=['channelAgent','membername','format','SIP/%s','calleridname','phone','Contact','firstName','lastName','active','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countmachineretry','countnosuchnumberretry','countabandonedretry','countagentrejectretry','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','prototype','getCaller','\x22%s\x22\x20<%s>','exports','lodash','moment','string','isNil','uniqueid','queue','name','type','campaigntype','dialAnswer','Agent'];(function(_0x25d14e,_0x43ccae){var _0x559538=function(_0x38ffdb){while(--_0x38ffdb){_0x25d14e['push'](_0x25d14e['shift']());}};_0x559538(++_0x43ccae);}(_0xde8e,0x129));var _0xede8=function(_0x5b697a,_0x280202){_0x5b697a=_0x5b697a-0x0;var _0x5de43b=_0xde8e[_0x5b697a];return _0x5de43b;};'use strict';var util=require('util');var _=require(_0xede8('0x0'));var moment=require(_0xede8('0x1'));function checkNameSurname(_0x5b9e30,_0x5c5557,_0x43c592){var _0x28373c='';if(!_['isNil'](_0x5c5557)&&_0xede8('0x2')===typeof _0x5c5557){_0x28373c+=_0x5c5557;}if(!_[_0xede8('0x3')](_0x43c592)&&'string'===typeof _0x43c592){_0x28373c+='\x20'+_0x43c592;}if(_0x28373c!==''){return _0x28373c;}return _0x5b9e30;}function Action(_0x3ccbec,_0x33b10d,_0x4e8f35,_0x21d1e6,_0x13b493){this[_0xede8('0x4')]=_0x4e8f35||undefined;this['idContact']=_0x3ccbec['id'];this[_0xede8('0x5')]=_0x33b10d[_0xede8('0x6')];this[_0xede8('0x7')]=_0x33b10d[_0xede8('0x7')];this[_0xede8('0x8')]=_0xede8('0x5');this[_0xede8('0x9')]=![];this['membername']=_['isNil'](_0x3ccbec[_0xede8('0xa')])?undefined:_0x3ccbec[_0xede8('0xa')]['name'];this[_0xede8('0xb')]=this[_0xede8('0xc')]?util[_0xede8('0xd')](_0xede8('0xe'),this[_0xede8('0xc')]):_0x21d1e6||undefined;this[_0xede8('0xf')]=checkNameSurname(_0x3ccbec['Contact'][_0xede8('0x10')],_0x3ccbec[_0xede8('0x11')][_0xede8('0x12')],_0x3ccbec[_0xede8('0x11')][_0xede8('0x13')]);this[_0xede8('0x14')]=_0x3ccbec['active']||![];this['calleridnum']=_0x3ccbec[_0xede8('0x11')][_0xede8('0x10')];this[_0xede8('0x15')]=_0x3ccbec[_0xede8('0x15')];this[_0xede8('0x16')]=_0x3ccbec[_0xede8('0x16')]||0x0;this[_0xede8('0x17')]=_0x3ccbec[_0xede8('0x17')]||0x0;this[_0xede8('0x18')]=_0x3ccbec[_0xede8('0x18')]||0x0;this[_0xede8('0x19')]=(_0x3ccbec[_0xede8('0x16')]||0x0)+(_0x3ccbec['countcongestionretry']||0x0)+(_0x3ccbec[_0xede8('0x18')]||0x0)+(_0x3ccbec['countnosuchnumberretry']||0x0)+(_0x3ccbec[_0xede8('0x1a')]||0x0)+(_0x3ccbec['countabandonedretry']||0x0)+(_0x3ccbec[_0xede8('0x1b')]||0x0)+(_0x3ccbec['countagentrejectretry']||0x0);this[_0xede8('0x1c')]=_0x3ccbec[_0xede8('0x1c')]||0x0;this['countdropretry']=_0x3ccbec['countdropretry']||0x0;this[_0xede8('0x1d')]=_0x3ccbec[_0xede8('0x1d')]||0x0;this[_0xede8('0x1b')]=_0x3ccbec['countmachineretry']||0x0;this[_0xede8('0x1e')]=_0x3ccbec[_0xede8('0x1e')]||0x0;this[_0xede8('0x1f')]=_0x3ccbec[_0xede8('0x1f')];this[_0xede8('0x20')]=_0x3ccbec['callbackuniqueid'];this[_0xede8('0x21')]=_0x3ccbec[_0xede8('0x21')];this[_0xede8('0x22')]=_0x3ccbec[_0xede8('0x22')];this[_0xede8('0x23')]=_0x3ccbec['ContactId'];this['ListId']=_0x3ccbec[_0xede8('0x24')];this[_0xede8('0x25')]=_[_0xede8('0x3')](_0x3ccbec[_0xede8('0xa')])?_0x3ccbec[_0xede8('0x25')]:_0x3ccbec[_0xede8('0xa')]['id'];this[_0xede8('0x26')]=_0x3ccbec[_0xede8('0x26')];this[_0xede8('0x27')]='';this['originatecalleridname']='';}Action[_0xede8('0x28')][_0xede8('0x29')]=function(){return util[_0xede8('0xd')](_0xede8('0x2a'),this[_0xede8('0xf')],this['number']);};module[_0xede8('0x2b')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cc9=['recallme','isValid','checkIsBlackList','Contact.phone','[Preview][checkIsBlackList]','Call\x20unsuccessful','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','isTrunkReachable','Trunk\x20not\x20work','\x20Not\x20Active','trim','dialCutDigit','SIP/%s/%s%s','getCallerId','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','dialOriginateCallerIdNumber','dialOriginateCallerIdName','originatecalleridname','extractCalleridName','originatecalleridnum','extractCalleridNumber','merge','toLowerVariables','variablesAction','channelAgent','calleridnum','user:%s','[originated][increment]','[originateFailure][logOriginateFailure]','syncOriginateResponse','actionid','logLookAgent','clone','isFailure','response','rejected','[syncHangup][talking]','cause','[syncHangup][talking][cause]','dialQueueProject','channelstate','transfer','[syncHangup][talking][transfer]','destlinkedid','destuniqueid','addVariable','variables','filterKey','keys','value','inspect','transfertargetlinkedid','syncBlindTransfer','transfererlinkedid','exports','util','lodash','bluebird','uuid','md5','../../../config/environment','preview','actionPreview','./rpcDb','./action','./util/util','defaults','redis','localhost','socket.io-emitter','prototype','enqueue','tail','finally','sequence','campaignsPreview','voiceQueues','trunks','actions','agents','clockClearZombieChannels','bind','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','syncAttendedTransfer','blindtransfer','loopCampaigns','emit','type','outbound','name','strategy','answered','available','loggedIn','pTalking','sumBillable','sumHoldTime','total','abandoned','waiting','dialActive','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','message','originated','erlangCalls','erlangCallToSecond','startPredictive','startProgressive','Trunk','active','callerid','Interval','format','voice:queue:%s','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','sendMessageOneNotActive','paused','NOT_ACTIVE','logger','\x20is\x20not\x20active','IS_DISACTIVED','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20disactive','syncCampaigns','hasOwnProperty','dialMethod','setMessage','recallMe','clearZombieChannel','[clearZombieChannels][talking]','originated:\x20','queue','pTalking:\x20','stringify','dialAnswer','contactId','UserId','ListId','Action','channel','catch','No\x20such\x20channel','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','clearZombieChannels','[action]','size','agentReadyId','then','isNil','length','getDiff','dialRecallMeTimeout','Agent','voicePause','run','logger2','[RecallMe]','disableContact','starttime','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createBody','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','RecallFailedTimeout','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','IsNotLoggedIn','isActive','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','countnosuchnumberretry','countglobal','totalGlobal','NoSuchNumber','buildObj','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','rescheduleContact','dialNoSuchNumberRetryFrequency','unlockAgent','linkedid','ANSWER','responsetime','[syncHangup][talking][increment]','\x20Queue','connect','acw','custom:agentConnectPreview','buildAcw','custom:agentcomplete','complete','Answer','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','sumDuration','talktime','[syncHangup][talking][decrement]','BUSY','countbusyretry','custom:agentbusy','busy','[callProgressDetectingCustomer][logBusy]','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','scheduledAt','dialBusyRetryFrequency','activeContact','custom:agentnoanswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','countnoanswerretry','dialNoAnswerMaxRetry','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','CANCEL','countagentrejectretry','AgentReject','custom:agentreject','[syncHangupRequest][logAgentReject]','[callProgressDetectingCustomer][logAgentReject]','dialAgentRejectMaxRetry','countabandonedretry','Abandoned','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','countmachineretry','cause-txt','dialstatus','custom:amd','amd','[callProgressDetectingCustomer][hangupInAMD]','[callProgressDetectingCustomer][machine]','[default]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','uniqueid','callProgressDetectingAgent','isUndefined','object','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoSuch]','NoAnswer','[callProgressDetectingAgent][logNoAnswer]','Busy','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent]','[originated][decrement][callProgressDetectingAgent]','checkInBlack','Contact','phone','VoiceQueueId','Contact\x20is\x20undefined','Queue','lookAgent','isEmpty','execCall','[Preview][execCall][success]','Queue:\x20','idContact','custom:agentcalled','Calling','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','status','execRun','pick','unlock','unlockContact','getContactPreview'];(function(_0x36d508,_0x31df7a){var _0x1f7728=function(_0x4d3187){while(--_0x4d3187){_0x36d508['push'](_0x36d508['shift']());}};_0x1f7728(++_0x31df7a);}(_0x9cc9,0x191));var _0x99cc=function(_0x390e6b,_0x376dfc){_0x390e6b=_0x390e6b-0x0;var _0x1b8980=_0x9cc9[_0x390e6b];return _0x1b8980;};'use strict';var util=require(_0x99cc('0x0'));var _=require(_0x99cc('0x1'));var BPromise=require(_0x99cc('0x2'));var uuid=require(_0x99cc('0x3'));var moment=require('moment');var md5=require(_0x99cc('0x4'));var Redis=require('ioredis');var config=require(_0x99cc('0x5'));var logger=require('../../../config/logger')(_0x99cc('0x6'));var loggerAction=require('../../../config/logger')(_0x99cc('0x7'));var ami=require('../ami');var rpcDb=require(_0x99cc('0x8'));var Action=require(_0x99cc('0x9'));var ut=require(_0x99cc('0xa'));config['redis']=_[_0x99cc('0xb')](config[_0x99cc('0xc')],{'host':_0x99cc('0xd'),'port':0x18eb});var io=require(_0x99cc('0xe'))(new Redis(config[_0x99cc('0xc')]));var Sequence=function(){};Sequence[_0x99cc('0xf')][_0x99cc('0x10')]=function(_0x1f2d68){this[_0x99cc('0x11')]=this['tail']?this[_0x99cc('0x11')][_0x99cc('0x12')](_0x1f2d68):_0x1f2d68();};function Preview(_0x20d3a4){this[_0x99cc('0x13')]=new Sequence();this[_0x99cc('0x14')]=_0x20d3a4[_0x99cc('0x15')];this[_0x99cc('0x16')]=_0x20d3a4[_0x99cc('0x16')];this[_0x99cc('0x17')]={};this[_0x99cc('0x18')]=_0x20d3a4[_0x99cc('0x18')];this[_0x99cc('0x19')]=0x0;ami['on']('originateresponse',this['syncOriginateResponse'][_0x99cc('0x1a')](this));ami['on']('hangup',this[_0x99cc('0x1b')][_0x99cc('0x1a')](this));ami['on'](_0x99cc('0x1c'),this[_0x99cc('0x1d')][_0x99cc('0x1a')](this));ami['on'](_0x99cc('0x1e'),this[_0x99cc('0x1f')][_0x99cc('0x1a')](this));ami['on'](_0x99cc('0x20'),this[_0x99cc('0x21')][_0x99cc('0x1a')](this));ami['on'](_0x99cc('0x22'),this[_0x99cc('0x23')][_0x99cc('0x1a')](this));ami['on']('attendedtransfer',this[_0x99cc('0x24')][_0x99cc('0x1a')](this));ami['on'](_0x99cc('0x25'),this['syncBlindTransfer'][_0x99cc('0x1a')](this));this[_0x99cc('0x26')](this[_0x99cc('0x14')]);}function emit(_0x5e9e00,_0x30b42f,_0x3306dd){io['to'](_0x5e9e00)[_0x99cc('0x27')](_0x30b42f,_0x3306dd);}function emitCampaignPreview(_0x1f5c7c){if(_0x1f5c7c[_0x99cc('0x28')]===_0x99cc('0x29')){var _0x501ea0={'id':_0x1f5c7c['id'],'name':_0x1f5c7c[_0x99cc('0x2a')],'strategy':_0x1f5c7c[_0x99cc('0x2b')],'answered':_0x1f5c7c[_0x99cc('0x2c')],'available':_0x1f5c7c[_0x99cc('0x2d')],'loggedIn':_0x1f5c7c[_0x99cc('0x2e')],'pTalking':_0x1f5c7c[_0x99cc('0x2f')],'sumBillable':_0x1f5c7c[_0x99cc('0x30')],'sumDuration':_0x1f5c7c['sumDuration'],'sumHoldTime':_0x1f5c7c[_0x99cc('0x31')]||0x0,'talking':_0x1f5c7c['talking'],'total':_0x1f5c7c[_0x99cc('0x32')],'type':_0x1f5c7c[_0x99cc('0x28')],'unmanaged':_0x1f5c7c['unmanaged'],'abandoned':_0x1f5c7c[_0x99cc('0x33')],'waiting':_0x1f5c7c[_0x99cc('0x34')],'loggedInDb':_0x1f5c7c['loggedInDb'],'dialActive':_0x1f5c7c[_0x99cc('0x35')],'dialMethod':_0x1f5c7c['dialMethod'],'dialOriginateCallerIdName':_0x1f5c7c['dialOriginateCallerIdName'],'dialOriginateCallerIdNumber':_0x1f5c7c['dialOriginateCallerIdNumber'],'dialOriginateTimeout':_0x1f5c7c[_0x99cc('0x36')],'dialPrefix':_0x1f5c7c[_0x99cc('0x37')],'outboundAnswerAgiCallsDay':_0x1f5c7c[_0x99cc('0x38')],'outboundAnswerCallsDay':_0x1f5c7c[_0x99cc('0x39')],'outboundBlacklistCallsDay':_0x1f5c7c[_0x99cc('0x3a')],'outboundBusyCallsDay':_0x1f5c7c[_0x99cc('0x3b')],'outboundCongestionCallsDay':_0x1f5c7c[_0x99cc('0x3c')],'outboundDropCallsDayACS':_0x1f5c7c['outboundDropCallsDayACS'],'outboundDropCallsDayCallersExit':_0x1f5c7c[_0x99cc('0x3d')],'outboundDropCallsDayTimeout':_0x1f5c7c[_0x99cc('0x3e')],'outboundNoAnswerCallsDay':_0x1f5c7c[_0x99cc('0x3f')],'outboundNoSuchCallsDay':_0x1f5c7c[_0x99cc('0x40')],'outboundOriginateFailureCallsDay':_0x1f5c7c[_0x99cc('0x41')],'outboundReCallsDay':_0x1f5c7c[_0x99cc('0x42')],'outboundRejectCallsDay':_0x1f5c7c[_0x99cc('0x43')],'outboundUnknownCallsDay':_0x1f5c7c[_0x99cc('0x44')],'outboundAbandonedCallsDay':_0x1f5c7c[_0x99cc('0x45')],'predictiveIntervalAnsweredCalls':_0x1f5c7c[_0x99cc('0x46')],'predictiveIntervalAvgHoldtime':_0x1f5c7c[_0x99cc('0x47')],'predictiveIntervalAvgTalktime':_0x1f5c7c[_0x99cc('0x48')],'predictiveIntervalDroppedCallsCallersExit':_0x1f5c7c[_0x99cc('0x49')],'predictiveIntervalDroppedCallsTimeout':_0x1f5c7c[_0x99cc('0x4a')],'predictiveIntervalErlangCalls':_0x1f5c7c[_0x99cc('0x4b')],'predictiveIntervalErlangCallsDroppedCalls':_0x1f5c7c[_0x99cc('0x4c')],'predictiveIntervalHitRate':_0x1f5c7c['predictiveIntervalHitRate'],'predictiveIntervalMultiplicativeFactor':_0x1f5c7c[_0x99cc('0x4d')],'predictiveIntervalPauses':_0x1f5c7c[_0x99cc('0x4e')],'predictiveIntervalAvailable':_0x1f5c7c[_0x99cc('0x4f')],'predictiveIntervalTotalCalls':_0x1f5c7c[_0x99cc('0x50')],'message':_0x1f5c7c[_0x99cc('0x51')],'originated':_0x1f5c7c[_0x99cc('0x52')],'erlangCalls':_0x1f5c7c[_0x99cc('0x53')],'erlangCallToSecond':_0x1f5c7c[_0x99cc('0x54')],'erlangAbandonmentRate':_0x1f5c7c['erlangAbandonmentRate'],'erlangBusyFactor':_0x1f5c7c['erlangBusyFactor'],'startPredictive':_0x1f5c7c[_0x99cc('0x55')],'startProgressive':_0x1f5c7c[_0x99cc('0x56')]};if(_0x1f5c7c[_0x99cc('0x57')]){_0x501ea0[_0x99cc('0x57')]={'id':_0x1f5c7c['Trunk']['id'],'name':_0x1f5c7c[_0x99cc('0x57')][_0x99cc('0x2a')],'active':_0x1f5c7c[_0x99cc('0x57')][_0x99cc('0x58')],'callerid':_0x1f5c7c[_0x99cc('0x57')][_0x99cc('0x59')]};}if(_0x1f5c7c[_0x99cc('0x5a')]){_0x501ea0[_0x99cc('0x5a')]={'id':_0x1f5c7c[_0x99cc('0x5a')]['id'],'name':_0x1f5c7c[_0x99cc('0x5a')][_0x99cc('0x2a')]};}var _0x598211=md5(JSON['stringify'](_0x501ea0));if(_0x1f5c7c[_0x99cc('0x4')]!==_0x598211){_0x1f5c7c[_0x99cc('0x4')]=_0x598211;emit(util[_0x99cc('0x5b')](_0x99cc('0x5c'),_0x501ea0[_0x99cc('0x2a')]),_0x99cc('0x5d'),_0x501ea0);}}}function emitVoiceQueueChannelRemove(_0x1e2242){logger[_0x99cc('0x5e')](_0x99cc('0x5f'),JSON['stringify'](_0x1e2242));emit(util['format'](_0x99cc('0x5c'),_0x1e2242['name']),'voice_queue_channel:remove',_0x1e2242);io[_0x99cc('0x27')]('voice_queue_presence:remove',_0x1e2242);}function notSendMessagesQueue(_0x539242){if(_0x539242['sendMessageOneNotActive']){if(_0x539242[_0x99cc('0x52')]===0x0&&_0x539242['pTalking']===0x0){_0x539242[_0x99cc('0x60')]=![];_0x539242[_0x99cc('0x2d')]=0x0;_0x539242[_0x99cc('0x61')]=0x0;_0x539242['message']=_0x99cc('0x62');ut[_0x99cc('0x63')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x539242['name']+_0x99cc('0x64'));}else{_0x539242['message']=_0x99cc('0x65');ut[_0x99cc('0x63')](_0x99cc('0x66'),_0x539242['name']+_0x99cc('0x67'));}emitCampaignPreview(_0x539242);}}Preview[_0x99cc('0xf')]['loopCampaigns']=function(){var _0x3c7d88=this;setInterval(function(){_0x3c7d88[_0x99cc('0x68')]();},0x7cf);};Preview[_0x99cc('0xf')]['syncCampaigns']=function(){var _0x11e47d=this[_0x99cc('0x14')];this['clockClearZombieChannels']+=0x1;for(var _0x421f7f in _0x11e47d){if(_0x11e47d[_0x99cc('0x69')](_0x421f7f)&&(_0x11e47d[_0x421f7f][_0x99cc('0x6a')]===_0x99cc('0x6')||_0x11e47d[_0x421f7f][_0x99cc('0x6a')]==='booked')&&_0x11e47d[_0x421f7f][_0x99cc('0x28')]==='outbound'){if(this[_0x99cc('0x19')]>0x7){this[_0x99cc('0x19')]=0x0;this['clearZombieChannels']();}}if(_0x11e47d[_0x99cc('0x69')](_0x421f7f)&&_0x11e47d[_0x421f7f][_0x99cc('0x6a')]===_0x99cc('0x6')&&_0x11e47d[_0x421f7f][_0x99cc('0x28')]===_0x99cc('0x29')){if(_0x11e47d[_0x421f7f]['dialActive']){this[_0x99cc('0x6b')](_0x11e47d[_0x421f7f]);this[_0x99cc('0x6c')](_0x11e47d[_0x421f7f]);}else{notSendMessagesQueue(_0x11e47d[_0x421f7f]);}}}};Preview['prototype'][_0x99cc('0x6d')]=function(_0x794dd9){var _0x4ccf1b=this;this[_0x99cc('0x13')][_0x99cc('0x10')](function(){if(!_['isNil'](_0x4ccf1b[_0x99cc('0x17')][_0x794dd9])){loggerAction[_0x99cc('0x5e')](_0x99cc('0x6e'),_0x794dd9,'Queue',_0x4ccf1b['actions'][_0x794dd9]['queue'],_0x99cc('0x6f'),JSON['stringify'](_0x4ccf1b[_0x99cc('0x14')][_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x70')]][_0x99cc('0x52')]),_0x99cc('0x71'),JSON[_0x99cc('0x72')](_0x4ccf1b[_0x99cc('0x14')][_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x70')]]['pTalking']),JSON[_0x99cc('0x72')](_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x73')]),JSON[_0x99cc('0x72')](_['pick'](_0x4ccf1b['actions'][_0x794dd9],[_0x99cc('0x74'),_0x99cc('0x75'),'VoiceQueueId',_0x99cc('0x76')])));return ami[_0x99cc('0x77')]({'action':'status','channel':_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x78')]})[_0x99cc('0x79')](function(_0x5fb289){if(_0x5fb289[_0x99cc('0x51')]===_0x99cc('0x7a')){setTimeout(function(){if(_0x4ccf1b[_0x99cc('0x17')][_0x794dd9]){ut[_0x99cc('0x7b')](_0x4ccf1b[_0x99cc('0x14')][_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x70')]],_0x99cc('0x7c'));if(_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x73')]===!![]){ut[_0x99cc('0x7d')](_0x4ccf1b['campaignsPreview'][_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x70')]],'[clearZombieChannel]');ut[_0x99cc('0x7e')](_0x99cc('0x7f')+_0x794dd9,_0x4ccf1b[_0x99cc('0x17')][_0x794dd9][_0x99cc('0x70')]);}ut[_0x99cc('0x7e')](_0x99cc('0x80')+_0x794dd9,_0x4ccf1b['actions'][_0x794dd9]['queue']);delete _0x4ccf1b[_0x99cc('0x17')][_0x794dd9];}},0x2328);}});}});};Preview['prototype'][_0x99cc('0x81')]=function(){var _0x4b5492=this;loggerAction[_0x99cc('0x5e')](_0x99cc('0x82'),_[_0x99cc('0x83')](this['actions']));for(var _0x56c3e0 in this[_0x99cc('0x17')]){if(_0x4b5492['actions'][_0x99cc('0x69')](_0x56c3e0)){_0x4b5492[_0x99cc('0x6d')](_0x56c3e0);}}};Preview[_0x99cc('0xf')][_0x99cc('0x6c')]=function(_0x1e8e02){var _0x35335f=this;rpcDb['getContactRecallMe'](_0x1e8e02['id'],ut[_0x99cc('0x84')](this[_0x99cc('0x18')]))[_0x99cc('0x85')](function(_0x4c2431){if(!_[_0x99cc('0x86')](_0x4c2431)){for(var _0x324beb=0x0;_0x324beb<_0x4c2431[_0x99cc('0x87')];_0x324beb+=0x1){if(ut[_0x99cc('0x88')](_0x4c2431[_0x324beb]['scheduledat'])<_0x1e8e02[_0x99cc('0x89')]*0x3c){if(_0x4c2431[_0x324beb][_0x99cc('0x8a')]&&!_0x4c2431[_0x324beb][_0x99cc('0x8a')][_0x99cc('0x8b')]){_0x35335f[_0x99cc('0x8c')](_0x4c2431[_0x324beb]['id'])[_0x99cc('0x85')](ut['logger2']('[RecallMe]'))[_0x99cc('0x79')](ut[_0x99cc('0x8d')](_0x99cc('0x8e')));}else{rpcDb[_0x99cc('0x8f')](_0x4c2431[_0x324beb]['id']);}}else{var _0x746358=new Action(_0x4c2431[_0x324beb],_0x1e8e02);_0x746358[_0x99cc('0x90')]=moment()['format'](_0x99cc('0x91'));_0x1e8e02['outboundReCallsDay']+=0x1;ut[_0x99cc('0x92')](_0x746358,0x17,_0x99cc('0x93'));if(_0x1e8e02[_0x99cc('0x94')]){rpcDb[_0x99cc('0x95')](ut[_0x99cc('0x96')](_0x4c2431[_0x324beb]));rpcDb[_0x99cc('0x97')](_0x746358,_0x99cc('0x98'));}else{ut['logCustomer'](_0x746358,0x16,_0x99cc('0x99'));rpcDb[_0x99cc('0x97')](_0x746358,_0x99cc('0x9a'));rpcDb[_0x99cc('0x9b')](_0x746358,_0x99cc('0x9a'));}}}}})[_0x99cc('0x79')](ut[_0x99cc('0x8d')](_0x99cc('0x9c')));};Preview[_0x99cc('0xf')][_0x99cc('0x6b')]=function(_0x57b977){_0x57b977[_0x99cc('0x60')]=!![];if(ut[_0x99cc('0x9d')](_0x57b977[_0x99cc('0x2e')])){_0x57b977[_0x99cc('0x51')]='AGENTS_NOT_LOGGED';}else if(!ut[_0x99cc('0x9e')](_0x57b977[_0x99cc('0x35')])){_0x57b977[_0x99cc('0x51')]=_0x99cc('0x62');}else if(!this['isTrunkReachable'](_0x57b977[_0x99cc('0x57')])){if(!this['isTrunkReachable'](_0x57b977[_0x99cc('0x9f')])){_0x57b977['message']=_0x99cc('0xa0');}else{_0x57b977[_0x99cc('0x51')]='ACTIVE';}}else{_0x57b977['message']=_0x99cc('0xa1');}emitCampaignPreview(_0x57b977);};Preview['prototype'][_0x99cc('0xa2')]=function(_0x103822,_0x2cc386,_0x2f7f41){var _0xcfa049=this;var _0x105f9f=this[_0x99cc('0x17')][_0x2cc386];var _0x1d7ba7=this[_0x99cc('0x14')][_0x105f9f['queue']];var _0x4fb5a0;if(_0x1d7ba7){switch(_0x2f7f41){case'1':_0x1d7ba7['outboundNoSuchCallsDay']+=0x1;_0x105f9f[_0x99cc('0xa3')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut['logCustomer'](_0x105f9f,0x0,_0x99cc('0xa6'));ami[_0x99cc('0x27')]('custom:agentnosuchnumber',ut[_0x99cc('0xa7')](_0x105f9f,'nosuchnumber'));rpcDb[_0x99cc('0x97')](_0x105f9f,_0x99cc('0xa8'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7[_0x99cc('0xa9')]){_0x4fb5a0=ut[_0x99cc('0xaa')](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xac'));}else{if(_0x105f9f[_0x99cc('0xa3')]>=_0x1d7ba7['dialNoSuchNumberMaxRetry']){rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xac'));}else{rpcDb[_0x99cc('0xad')](ut['scheduledAt'](_0x105f9f,_0x99cc('0xa3'),_0x1d7ba7[_0x99cc('0xae')]),_0x105f9f[_0x99cc('0xaf')],_0x105f9f['activeContact']);}}delete this[_0x99cc('0x17')][_0x103822[_0x99cc('0xb0')]];break;case _0x99cc('0xb1'):var _0x54548e=moment()[_0x99cc('0x5b')](_0x99cc('0x91'));_0x105f9f[_0x99cc('0xb2')]=_0x54548e;_0x105f9f['answertime']=_0x54548e;_0x105f9f['dialAnswer']=!![];_0x1d7ba7[_0x99cc('0x2f')]+=0x1;logger[_0x99cc('0x5e')](_0x99cc('0xb3'),_0x105f9f['uniqueid'],_0x99cc('0xb4'),_0x1d7ba7['name'],'pTalking:\x20',_0x1d7ba7[_0x99cc('0x2f')]);ami['emit']('custom:agentconnect',ut[_0x99cc('0xa7')](_0x105f9f,_0x99cc('0xb5'),this[_0x99cc('0x14')][_0x105f9f[_0x99cc('0x70')]]));if(_0x1d7ba7[_0x99cc('0xb6')]){ami[_0x99cc('0x27')](_0x99cc('0xb7'),ut[_0x99cc('0xb8')](_0x105f9f));}break;case'16':ami['emit'](_0x99cc('0xb9'),ut['buildObj'](_0x105f9f,'complete',this[_0x99cc('0x14')][_0x105f9f['queue']]));emitVoiceQueueChannelRemove(ut['buildObj'](_0x105f9f,_0x99cc('0xba')));_0x1d7ba7['outboundAnswerCallsDay']+=0x1;_0x1d7ba7[_0x99cc('0x32')]+=0x1;_0x1d7ba7[_0x99cc('0x2c')]+=0x1;ut[_0x99cc('0x7d')](_0x1d7ba7,'[16]');_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0x4,_0x99cc('0xbb'));rpcDb['createCustomerHistory'](_0x105f9f,'[callProgressDetectingCustomer][logAnswer]');rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xbc'));rpcDb[_0x99cc('0xbd')](_0x105f9f);_0x1d7ba7[_0x99cc('0xbe')]+=_0x105f9f[_0x99cc('0xbf')];_0x1d7ba7[_0x99cc('0x30')]+=_0x105f9f[_0x99cc('0xbf')];logger['info'](_0x99cc('0xc0'),_0x105f9f['uniqueid'],_0x99cc('0xb4'),_0x1d7ba7[_0x99cc('0x2a')],_0x99cc('0x71'),_0x1d7ba7[_0x99cc('0x2f')]);delete this['actions'][_0x103822[_0x99cc('0xb0')]];break;case _0x99cc('0xc1'):_0x1d7ba7[_0x99cc('0x3b')]+=0x1;_0x105f9f[_0x99cc('0xc2')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0x5,'Busy');ami['emit'](_0x99cc('0xc3'),ut['buildObj'](_0x105f9f,_0x99cc('0xc4')));rpcDb[_0x99cc('0x97')](_0x105f9f,_0x99cc('0xc5'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7[_0x99cc('0xa9')]){_0x4fb5a0=ut[_0x99cc('0xaa')](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xc6'));}else{if(_0x105f9f['countbusyretry']>=_0x1d7ba7[_0x99cc('0xc7')]){rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xc5'));}else{rpcDb[_0x99cc('0xad')](ut[_0x99cc('0xc8')](_0x105f9f,_0x99cc('0xc2'),_0x1d7ba7[_0x99cc('0xc9')]),_0x105f9f[_0x99cc('0xaf')],_0x105f9f[_0x99cc('0xca')]);}}break;case'NOANSWER':_0x1d7ba7[_0x99cc('0x3f')]+=0x1;_0x105f9f['countnoanswerretry']+=0x1;_0x105f9f['countglobal']=ut[_0x99cc('0xa5')](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0x3,'NoAnswer');ami['emit'](_0x99cc('0xcb'),ut[_0x99cc('0xa7')](_0x105f9f,'noanswer'));rpcDb['createCustomerHistory'](_0x105f9f,_0x99cc('0xcc'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7[_0x99cc('0xa9')]){_0x4fb5a0=ut[_0x99cc('0xaa')](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xcd'));}else{if(_0x105f9f[_0x99cc('0xce')]>=_0x1d7ba7[_0x99cc('0xcf')]){rpcDb['createCustomerFinal'](_0x105f9f,'[callProgressDetectingCustomer][logNoAnswer]');}else{rpcDb[_0x99cc('0xad')](ut[_0x99cc('0xc8')](_0x105f9f,_0x99cc('0xce'),_0x1d7ba7['dialNoAnswerRetryFrequency']),_0x105f9f['unlockAgent'],_0x105f9f[_0x99cc('0xca')]);}}break;case _0x99cc('0xd0'):_0x1d7ba7[_0x99cc('0x3c')]+=0x1;_0x105f9f[_0x99cc('0xd1')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut['logCustomer'](_0x105f9f,0x8,_0x99cc('0xd2'));ami[_0x99cc('0x27')](_0x99cc('0xd3'),ut[_0x99cc('0xa7')](_0x105f9f,_0x99cc('0xd4')));rpcDb[_0x99cc('0x97')](_0x105f9f,_0x99cc('0xd5'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7[_0x99cc('0xa9')]){_0x4fb5a0=ut['cloneAction'](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xd6'));}else{if(_0x105f9f[_0x99cc('0xd1')]>=_0x1d7ba7[_0x99cc('0xd7')]){rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xd5'));}else{rpcDb[_0x99cc('0xad')](ut[_0x99cc('0xc8')](_0x105f9f,_0x99cc('0xd1'),_0x1d7ba7[_0x99cc('0xc9')]),_0x105f9f[_0x99cc('0xaf')],_0x105f9f[_0x99cc('0xca')]);}}break;case _0x99cc('0xd8'):_0x1d7ba7['outboundRejectCallsDay']+=0x1;_0x105f9f[_0x99cc('0xd9')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0x14,_0x99cc('0xda'));ami[_0x99cc('0x27')](_0x99cc('0xdb'),ut[_0x99cc('0xa7')](_0x105f9f,'agentreject'));rpcDb[_0x99cc('0x97')](_0x105f9f,_0x99cc('0xdc'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7['dialGlobalMaxRetry']){_0x4fb5a0=ut['cloneAction'](_0x105f9f,0x14,'AgentReject');rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xdd'));}else{if(_0x105f9f[_0x99cc('0xd9')]>=_0x1d7ba7[_0x99cc('0xde')]){rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xdd'));}else{rpcDb[_0x99cc('0xad')](ut[_0x99cc('0xc8')](_0x105f9f,_0x99cc('0xd9'),_0x1d7ba7['dialAgentRejectRetryFrequency']),_0x105f9f['unlockAgent'],_0x105f9f[_0x99cc('0xca')]);}}break;case'ABANDONED':_0x1d7ba7['outboundAbandonedCallsDay']+=0x1;_0x105f9f[_0x99cc('0xdf')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut['totalGlobal'](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0xb,_0x99cc('0xe0'));rpcDb['createCustomerHistory'](_0x105f9f,_0x99cc('0xe1'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7[_0x99cc('0xa9')]){_0x4fb5a0=ut[_0x99cc('0xaa')](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb['createCustomerFinal'](_0x4fb5a0,_0x99cc('0xe1'));}else{if(_0x105f9f[_0x99cc('0xe2')]>=_0x1d7ba7['dialAbandonedMaxRety']){rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xe1'));}else{rpcDb[_0x99cc('0xad')](ut[_0x99cc('0xc8')](_0x105f9f,_0x99cc('0xdf'),_0x1d7ba7['dialAbandonedRetryFrequency']),_0x105f9f[_0x99cc('0xaf')],_0x105f9f['activeContact']);}}break;case'18':_0x1d7ba7[_0x99cc('0x44')]+=0x1;_0x105f9f[_0x99cc('0xe3')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0x12,_0x103822[_0x99cc('0xe4')]||_0x103822[_0x99cc('0xe5')]);ami[_0x99cc('0x27')](_0x99cc('0xe6'),ut[_0x99cc('0xa7')](_0x105f9f,_0x99cc('0xe7')));rpcDb[_0x99cc('0x97')](_0x105f9f,_0x99cc('0xe8'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7['dialGlobalMaxRetry']){_0x4fb5a0=ut[_0x99cc('0xaa')](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb['createCustomerFinal'](_0x4fb5a0,_0x99cc('0xe8'));}else{rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xe8'));}delete this[_0x99cc('0x17')][_0x103822[_0x99cc('0xb0')]];break;case'19':_0x1d7ba7[_0x99cc('0x44')]+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut['logCustomer'](_0x105f9f,0x13,_0x103822['cause-txt']||_0x103822[_0x99cc('0xe5')]);ami[_0x99cc('0x27')](_0x99cc('0xe6'),ut[_0x99cc('0xa7')](_0x105f9f,_0x99cc('0xe7')));rpcDb[_0x99cc('0x97')](_0x105f9f,_0x99cc('0xe9'));if(ut[_0x99cc('0xa5')](_0x105f9f)>=_0x1d7ba7['dialGlobalMaxRetry']){_0x4fb5a0=ut[_0x99cc('0xaa')](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xe9'));}else{rpcDb[_0x99cc('0x9b')](_0x105f9f,_0x99cc('0xe9'));}delete this[_0x99cc('0x17')][_0x103822['linkedid']];break;default:if(_0x105f9f[_0x99cc('0x73')]){ut['decrementTalkink'](_0x1d7ba7,_0x99cc('0xea'));ut[_0x99cc('0x7e')](_0x99cc('0xeb')+_0x1d7ba7[_0x99cc('0x2a')],_0x103822);}_0x1d7ba7['outboundUnknownCallsDay']+=0x1;_0x105f9f[_0x99cc('0xa4')]=ut[_0x99cc('0xa5')](_0x105f9f);ut[_0x99cc('0x92')](_0x105f9f,0xc,_0x103822[_0x99cc('0xe4')]||_0x103822[_0x99cc('0xe5')]);rpcDb['createCustomerHistory'](_0x105f9f,_0x99cc('0xec'));if(ut['totalGlobal'](_0x105f9f)>=_0x1d7ba7[_0x99cc('0xa9')]){_0x4fb5a0=ut['cloneAction'](_0x105f9f,0xf,_0x99cc('0xab'));rpcDb[_0x99cc('0x9b')](_0x4fb5a0,_0x99cc('0xed'));}else{rpcDb['createCustomerFinal'](_0x105f9f,_0x99cc('0xed'));}delete this[_0x99cc('0x17')][_0x103822[_0x99cc('0xb0')]];}if(!(_0x105f9f['dialAnswer']&&_0x2f7f41==='16')){ut['updateOriginated'](_0x1d7ba7,_0x99cc('0xee'));logger[_0x99cc('0x5e')](_0x99cc('0xef'),_0x105f9f[_0x99cc('0xf0')],'\x20Queue',_0x1d7ba7[_0x99cc('0x2a')],_0x99cc('0x6f'),_0x1d7ba7[_0x99cc('0x52')]);}if(_0x2f7f41!==_0x99cc('0xb1')){delete this['actions'][_0x103822[_0x99cc('0xb0')]];delete this[_0x99cc('0x17')][_0x103822['destlinkedid']];}}};Preview[_0x99cc('0xf')][_0x99cc('0xf1')]=function(_0x16e2a3,_0x1186e4,_0xcabf65){if(_[_0x99cc('0xf2')](_0x1186e4)&&_0x99cc('0xf3')!==typeof _0x1186e4){return;}if(_[_0x99cc('0xf2')](_0xcabf65)&&_0x99cc('0xf3')!==typeof _0xcabf65){return;}switch(_0xcabf65[_0x99cc('0xf4')]){case'0':ut[_0x99cc('0xf5')](_0x16e2a3,0x0,_0x99cc('0xa6'));rpcDb[_0x99cc('0xf6')](_0x16e2a3,_0x99cc('0xf7'));break;case'3':ut[_0x99cc('0xf5')](_0x16e2a3,0x3,_0x99cc('0xf8'));rpcDb[_0x99cc('0xf6')](_0x16e2a3,_0x99cc('0xf9'));break;case'5':ut['logAgent'](_0x16e2a3,0x5,_0x99cc('0xfa'));rpcDb[_0x99cc('0xf6')](_0x16e2a3,_0x99cc('0xfb'));break;case'8':ut[_0x99cc('0xf5')](_0x16e2a3,0x8,_0x99cc('0xd2'));rpcDb['createAgentHistory'](_0x16e2a3,_0x99cc('0xfc'));break;case'22':ut[_0x99cc('0xf5')](_0x16e2a3,0x16,_0x99cc('0xfd'));rpcDb['createAgentHistory'](_0x16e2a3,_0x99cc('0xfe'));break;default:ut[_0x99cc('0xf5')](_0x16e2a3,0xc,_0xcabf65[_0x99cc('0xf4')]);rpcDb[_0x99cc('0xf6')](_0x16e2a3,_0x99cc('0xfc'));}ut[_0x99cc('0x7b')](_0x1186e4,_0x99cc('0xff'));logger[_0x99cc('0x5e')](_0x99cc('0x100'),_0x16e2a3['uniqueid'],_0x99cc('0xb4'),_0x1186e4[_0x99cc('0x2a')],_0x99cc('0x6f'),_0x1186e4['originated']);delete this[_0x99cc('0x17')][_0x16e2a3['uniqueid']];};Preview['prototype'][_0x99cc('0x101')]=function(_0x4c41e6,_0x36f9da,_0x408ff0,_0x5d7fde,_0x50a4e8){var _0x2cf641=this;return new BPromise(function(_0x2fc305,_0x29e5b2){if(_[_0x99cc('0x86')](_0x36f9da)||_[_0x99cc('0x86')](_0x36f9da[_0x99cc('0x102')])||_[_0x99cc('0x86')](_0x36f9da[_0x99cc('0x102')][_0x99cc('0x103')])||_['isNil'](_0x36f9da[_0x99cc('0x104')])){_0x29e5b2(ut[_0x99cc('0x51')](_0x99cc('0x105'),_0x5d7fde,_0x50a4e8));return;}var _0x3ca2e5=uuid['v4']();var _0x5003ae=_0x2cf641['campaignsPreview'][_0x36f9da[_0x99cc('0x106')][_0x99cc('0x2a')]];var _0x12a2b2=_0x408ff0?_0x2cf641[_0x99cc('0x18')][_0x408ff0]['id']:undefined;_0x2cf641[_0x99cc('0x17')][_0x3ca2e5]=new Action(_0x36f9da,_0x5003ae,_0x3ca2e5,_0x408ff0,_0x12a2b2);var _0xdb5e0=_0x2cf641[_0x99cc('0x17')][_0x3ca2e5];_0xdb5e0[_0x99cc('0xaf')]=_0x5d7fde;_0xdb5e0[_0x99cc('0xca')]=_0x50a4e8;_0xdb5e0[_0x99cc('0x107')]=_0x408ff0;if(_[_0x99cc('0x108')](_0x4c41e6)){_0x2cf641[_0x99cc('0x109')](_0xdb5e0,_0x5003ae,_0x36f9da,_0x408ff0)[_0x99cc('0x85')](function(_0x5bbec0){logger['info'](_0x99cc('0x10a'),_0x99cc('0x10b')+_0xdb5e0[_0x99cc('0x70')]+'\x20IdHopper:\x20'+_0xdb5e0[_0x99cc('0x10c')],JSON[_0x99cc('0x72')](_0x5bbec0));ami['emit'](_0x99cc('0x10d'),ut[_0x99cc('0xa7')](_0xdb5e0,'called',_0x2cf641[_0x99cc('0x14')][_0xdb5e0['queue']]));_0x2fc305(ut[_0x99cc('0x51')](_0x99cc('0x10e')));})[_0x99cc('0x79')](function(_0x4e0bd0){ut['logger']('[Preview][execCall][failure]',_0x4e0bd0);_0x29e5b2(ut[_0x99cc('0x51')]('Call\x20failed',_0x5d7fde,_0x50a4e8));});}else{_0x5003ae[_0x99cc('0x3a')]+=0x1;ut['logBlacklist'](_0xdb5e0);rpcDb[_0x99cc('0x10f')](_0xdb5e0,_0x99cc('0x110'));delete _0x2cf641[_0x99cc('0x17')][_0x3ca2e5];_0x29e5b2(ut[_0x99cc('0x51')](_0x99cc('0x111'),_0x5d7fde,_0x50a4e8));}});};Preview[_0x99cc('0xf')]['isTrunkReachable']=function(_0x3427d0){return!_['isNil'](_0x3427d0)&&!_['isNil'](_0x3427d0['name'])&&!_[_0x99cc('0x86')](_0x3427d0[_0x99cc('0x58')])&&_0x3427d0[_0x99cc('0x58')]&&!_[_0x99cc('0x86')](this[_0x99cc('0x16')][util[_0x99cc('0x5b')](_0x99cc('0x112'),_0x3427d0[_0x99cc('0x2a')])])&&!_[_0x99cc('0x86')](this[_0x99cc('0x16')][util[_0x99cc('0x5b')](_0x99cc('0x112'),_0x3427d0['name'])]['status'])&&(this[_0x99cc('0x16')][util[_0x99cc('0x5b')](_0x99cc('0x112'),_0x3427d0[_0x99cc('0x2a')])][_0x99cc('0x113')]==='reachable'||this['trunks'][util[_0x99cc('0x5b')](_0x99cc('0x112'),_0x3427d0['name'])][_0x99cc('0x113')]==='unmonitored');};Preview[_0x99cc('0xf')][_0x99cc('0x8c')]=function(_0x58c5c0,_0x3be058){var _0x8058ba=this;return new BPromise(function(_0x332b8b,_0x2e943f){_0x8058ba[_0x99cc('0x114')](_0x58c5c0,_0x3be058)[_0x99cc('0x85')](function(_0x1f431b){_0x332b8b(_[_0x99cc('0x115')](_0x1f431b,[_0x99cc('0x51')]));})['catch'](function(_0x32b6be){if(_0x32b6be[_0x99cc('0x116')]){rpcDb[_0x99cc('0x117')](_0x58c5c0);}if(_0x32b6be[_0x99cc('0x58')]){rpcDb['disableContact'](_0x58c5c0);}_0x2e943f(_[_0x99cc('0x115')](_0x32b6be,['message']));});});};Preview[_0x99cc('0xf')][_0x99cc('0x114')]=function(_0x47ad4c,_0x25dfbe){var _0x3a2156=this;return new BPromise(function(_0x469e0c,_0x586e3a){var _0x5dcba4,_0x2ef5ca;rpcDb[_0x99cc('0x118')](_0x47ad4c)['then'](function(_0x343c14){if(!_[_0x99cc('0x86')](_0x343c14[0x0])){_0x2ef5ca=_0x343c14[0x0][_0x99cc('0x119')]?![]:!![];_0x5dcba4=_0x343c14[0x0][_0x99cc('0x119')]?!![]:![];_0x5dcba4=_0x25dfbe?!![]:_0x5dcba4;}var _0x428436=_0x3a2156['validateContact'](_0x343c14);if(_0x428436[_0x99cc('0x11a')]){rpcDb[_0x99cc('0x11b')](_[_0x99cc('0x115')](_0x343c14[0x0],['VoiceQueueId',_0x99cc('0x11c')]))['then'](function(_0x2fc7d7){_0x3a2156['checkInBlack'](_0x2fc7d7,_0x343c14[0x0],_0x25dfbe,_0x2ef5ca,_0x5dcba4)[_0x99cc('0x85')](function(_0x37bdcb){_0x469e0c(_0x37bdcb);})[_0x99cc('0x79')](function(_0x5d9a5f){_0x586e3a(_0x5d9a5f);});})['catch'](function(_0x5ea737){ut[_0x99cc('0x63')](_0x99cc('0x11d'),_0x5ea737);_0x586e3a(ut[_0x99cc('0x51')](_0x99cc('0x11e'),_0x2ef5ca,_0x5dcba4));});}else{_0x586e3a(ut[_0x99cc('0x51')](_0x428436[_0x99cc('0x51')],_0x2ef5ca,_0x5dcba4));}})[_0x99cc('0x79')](function(_0x4fca95){ut[_0x99cc('0x63')]('[Preview][getContactPreview]',_0x4fca95);_0x586e3a(ut['message']('Call\x20unsuccessful',![],!![]));});});};Preview['prototype']['validateContact']=function(_0x440f03){if(_[_0x99cc('0x86')](_0x440f03)||_['isEmpty'](_0x440f03)||!_[_0x99cc('0x86')](_0x440f03[0x0][_0x99cc('0x8a')])&&_[_0x99cc('0x86')](_0x440f03[0x0][_0x99cc('0x8a')]['name'])){ut[_0x99cc('0x63')](_0x99cc('0x11f'),_0x440f03);return{'isValid':![],'message':_0x99cc('0x120')};}var _0x5de3c0=this[_0x99cc('0x14')][_0x440f03[0x0][_0x99cc('0x106')][_0x99cc('0x2a')]];_0x5de3c0[_0x99cc('0x51')]=_0x99cc('0xa1');if(_[_0x99cc('0x86')](_0x5de3c0)){ut[_0x99cc('0x63')]('[Preview][validateContact][Empty\x20Campaign]',_0x5de3c0);return{'isValid':![],'message':'Empty\x20Campaign'};}if(!this['isTrunkReachable'](_0x5de3c0[_0x99cc('0x57')])){ut[_0x99cc('0x63')](_0x99cc('0x121'),_0x99cc('0x122')+_0x5de3c0['name']+_0x99cc('0x123'));if(!this[_0x99cc('0x124')](_0x5de3c0[_0x99cc('0x9f')])){ut[_0x99cc('0x63')](_0x99cc('0x121'),_0x5de3c0[_0x99cc('0x2a')]+'\x20Trunk\x20Backup\x20is\x20not\x20active');return{'isValid':![],'message':_0x99cc('0x125')};}}if(!ut[_0x99cc('0x9e')](_0x5de3c0[_0x99cc('0x35')])){ut[_0x99cc('0x63')]('[Preview][validateContact][Campaign\x20Active]',_0x5de3c0[_0x99cc('0x2a')]+'\x20Not\x20Active');return{'isValid':![],'message':_0x99cc('0x122')+_0x5de3c0['name']+_0x99cc('0x126')};}return{'isValid':!![],'message':'Is\x20Valid'};};Preview[_0x99cc('0xf')]['execCall']=function(_0x5ba691,_0x15a005,_0xca99f6,_0x314316){var _0x19f6b5=this;return new BPromise(function(_0x26689c,_0x37e06b){var _0x85840a=_0x5ba691[_0x99cc('0xf0')];var _0x38b3ff=_0x19f6b5[_0x99cc('0x124')](_0x15a005['Trunk'])?util[_0x99cc('0x5b')]('SIP/%s/%s%s',_0x15a005[_0x99cc('0x57')][_0x99cc('0x2a')],_[_0x99cc('0x86')](_0x15a005[_0x99cc('0x37')])?'':_0x15a005['dialPrefix'][_0x99cc('0x127')]()||'',_0x15a005[_0x99cc('0x128')]>0x0?_0xca99f6['Contact'][_0x99cc('0x103')]['substring'](_0x15a005['dialCutDigit']):_0xca99f6[_0x99cc('0x102')][_0x99cc('0x103')]):util['format'](_0x99cc('0x129'),_['isNil'](_0x15a005[_0x99cc('0x9f')])?_0x15a005['Trunk'][_0x99cc('0x2a')]:_0x15a005[_0x99cc('0x9f')][_0x99cc('0x2a')],_[_0x99cc('0x86')](_0x15a005[_0x99cc('0x37')])?'':_0x15a005['dialPrefix'][_0x99cc('0x127')]()||'',_0x15a005[_0x99cc('0x128')]>0x0?_0xca99f6[_0x99cc('0x102')]['phone']['substring'](_0x15a005[_0x99cc('0x128')]):_0xca99f6[_0x99cc('0x102')][_0x99cc('0x103')]);var _0x4b6934=_0x19f6b5['isTrunkReachable'](_0x15a005[_0x99cc('0x57')])?ut[_0x99cc('0x12a')](_0x15a005[_0x99cc('0x57')][_0x99cc('0x59')],_0x15a005['dialOriginateCallerIdName'],_0x15a005[_0x99cc('0x12b')]>0x0?ut[_0x99cc('0x12c')](_0x15a005[_0x99cc('0x12d')],_0x15a005[_0x99cc('0x12b')]):_0x15a005[_0x99cc('0x12d')]):ut[_0x99cc('0x12a')](_[_0x99cc('0x86')](_0x15a005[_0x99cc('0x9f')])?_0x15a005[_0x99cc('0x57')][_0x99cc('0x59')]:_0x15a005[_0x99cc('0x9f')][_0x99cc('0x59')],_0x15a005[_0x99cc('0x12e')],_0x15a005[_0x99cc('0x12b')]>0x0?ut[_0x99cc('0x12c')](_0x15a005[_0x99cc('0x12d')],_0x15a005[_0x99cc('0x12b')]):_0x15a005[_0x99cc('0x12d')]);if(_0x4b6934){_0x5ba691[_0x99cc('0x12f')]=ut[_0x99cc('0x130')](_0x4b6934);_0x5ba691[_0x99cc('0x131')]=ut[_0x99cc('0x132')](_0x4b6934);}var _0x5a0fcb=ut['addVariables'](_0x15a005,_0xca99f6,_0x38b3ff,_0x4b6934,_0x85840a,_0x5ba691);_[_0x99cc('0x133')](_0x5ba691,ut[_0x99cc('0x134')](_0x5a0fcb));_0x5ba691['starttime']=moment()['format'](_0x99cc('0x91'));ami[_0x99cc('0x77')](ut[_0x99cc('0x135')](_0x5ba691,_0x15a005,_0x5a0fcb,_0x5ba691[_0x99cc('0xca')],_0x314316))[_0x99cc('0x85')](function(_0x224661){var _0x56d630=_0x5ba691[_0x99cc('0x136')];if(!_[_0x99cc('0x86')](_0x56d630)){if(!_[_0x99cc('0x86')](_0x19f6b5[_0x99cc('0x18')][_0x56d630])){_0x19f6b5[_0x99cc('0x18')][_0x56d630]['destconnectedlinenum']=_0x5ba691[_0x99cc('0x137')];emit(util[_0x99cc('0x5b')](_0x99cc('0x138'),_0x19f6b5[_0x99cc('0x18')][_0x56d630]['name']),'user:agentconnect',{'destaccountcode':_0x19f6b5[_0x99cc('0x18')][_0x56d630]['accountcode'],'destconnectedlinenum':_0x5ba691[_0x99cc('0x137')]});}}_0x15a005[_0x99cc('0x52')]+=0x1;logger['info'](_0x99cc('0x139'),_0x85840a,_0x99cc('0xb4'),_0x15a005[_0x99cc('0x2a')],_0x99cc('0x6f'),_0x15a005[_0x99cc('0x52')]);_0x26689c(_0x224661);})[_0x99cc('0x79')](function(_0xfba33e){ut['logAgent'](_0x5ba691,0xe,'OriginateError');rpcDb[_0x99cc('0xf6')](_0x5ba691,_0x99cc('0x13a'));_0x37e06b(_0xfba33e);});});};Preview[_0x99cc('0xf')][_0x99cc('0x21')]=function(_0x3b8e01){if(this['actions'][_0x3b8e01[_0x99cc('0xb0')]]){this[_0x99cc('0x17')][_0x3b8e01[_0x99cc('0xb0')]][_0x99cc('0x78')]=_0x3b8e01[_0x99cc('0x78')];}};Preview[_0x99cc('0xf')][_0x99cc('0x13b')]=function(_0x34a847){var _0x23e7b7=this;var _0x11ae68=this[_0x99cc('0x17')][_0x34a847[_0x99cc('0x13c')]];if(_0x11ae68){if(_0x11ae68['lookAgent']&&this[_0x99cc('0x18')][_0x11ae68[_0x99cc('0x107')]]){ut[_0x99cc('0x13d')](_0x11ae68,this[_0x99cc('0x18')][_0x11ae68['lookAgent']]['name'],this[_0x99cc('0x18')][_0x11ae68['lookAgent']]['id']);}var _0x312a7e=_[_0x99cc('0x13e')](_0x11ae68);_0x312a7e[_0x99cc('0xb2')]=moment()[_0x99cc('0x5b')](_0x99cc('0x91'));var _0x4e5632=_0x23e7b7['campaignsPreview'][_0x11ae68[_0x99cc('0x70')]];if(ut[_0x99cc('0x13f')](_0x34a847[_0x99cc('0x140')])){if(_0x11ae68[_0x99cc('0xaf')]){rpcDb[_0x99cc('0x117')](_0x11ae68[_0x99cc('0x10c')]);}if(_0x11ae68['activeContact']){rpcDb[_0x99cc('0x8f')](_0x11ae68['idContact']);}ami[_0x99cc('0x27')]('custom:agentringnoanswer',ut[_0x99cc('0xa7')](_0x11ae68,_0x99cc('0x141'),this[_0x99cc('0x14')][_0x11ae68['queue']]));this[_0x99cc('0xf1')](_0x312a7e,_0x4e5632,_0x34a847);}else{_0x11ae68[_0x99cc('0x90')]=moment()[_0x99cc('0x5b')](_0x99cc('0x91'));ut[_0x99cc('0xf5')](_0x312a7e,0x4,_0x99cc('0xbb'));rpcDb[_0x99cc('0xf6')](_0x312a7e,'[callProgressDetectingAgent][logAnswer]');}}};Preview[_0x99cc('0xf')][_0x99cc('0x1b')]=function(_0x30bd7f){var _0x462171=this;var _0x56403e=this[_0x99cc('0x17')][_0x30bd7f[_0x99cc('0xb0')]];var _0x442d8f;if(_0x56403e){_0x442d8f=this[_0x99cc('0x14')][_0x56403e[_0x99cc('0x70')]];logger[_0x99cc('0x5e')](_0x99cc('0x142'),_0x30bd7f[_0x99cc('0xb0')],_0x99cc('0xb4'),_0x442d8f[_0x99cc('0x2a')],'pTalking:\x20',_0x442d8f[_0x99cc('0x2f')]);}if(this[_0x99cc('0x17')][_0x30bd7f[_0x99cc('0xb0')]]&&_0x30bd7f[_0x99cc('0xb0')]!==_0x30bd7f[_0x99cc('0xf0')]){if(_0x30bd7f['cause']==='16'&&this['actions'][_0x30bd7f[_0x99cc('0xb0')]][_0x99cc('0x73')]){this['callProgressDetectingCustomer'](_0x30bd7f,_0x30bd7f['linkedid'],_0x30bd7f[_0x99cc('0x143')]);}else if(this['actions'][_0x30bd7f[_0x99cc('0xb0')]][_0x99cc('0x73')]){logger[_0x99cc('0x5e')](_0x99cc('0x144'),_0x30bd7f['linkedid'],_0x30bd7f[_0x99cc('0x143')],_0x99cc('0xb4'),_0x442d8f[_0x99cc('0x2a')],_0x99cc('0x71'),_0x442d8f[_0x99cc('0x2f')]);this[_0x99cc('0xa2')](_0x30bd7f,_0x30bd7f[_0x99cc('0xb0')],_0x30bd7f[_0x99cc('0x143')]);}}else if(_0x56403e&&_['isNil'](_0x56403e['statedesc'])&&_0x442d8f[_0x99cc('0x145')]&&_0x30bd7f['linkedid']===_0x30bd7f[_0x99cc('0xf0')]&&_[_0x99cc('0x86')](_0x30bd7f['reason'])&&_0x30bd7f[_0x99cc('0x143')]==='16'&&_0x30bd7f[_0x99cc('0x146')]==='6'&&_[_0x99cc('0xf2')](_0x56403e[_0x99cc('0x147')])){if(_0x56403e[_0x99cc('0xaf')]){rpcDb[_0x99cc('0x117')](_0x56403e[_0x99cc('0x10c')]);}if(_0x56403e['activeContact']){rpcDb[_0x99cc('0x8f')](_0x56403e[_0x99cc('0x10c')]);}_0x30bd7f['reason']='22';this[_0x99cc('0xf1')](_0x56403e,_0x442d8f,_0x30bd7f);}else if(_0x56403e&&_0x56403e[_0x99cc('0x147')]){if(_0x30bd7f[_0x99cc('0x143')]==='16'&&this[_0x99cc('0x17')][_0x30bd7f['linkedid']][_0x99cc('0x73')]){logger[_0x99cc('0x5e')](_0x99cc('0x148'),_0x30bd7f['linkedid'],_0x30bd7f['cause'],_0x99cc('0xb4'),_0x442d8f[_0x99cc('0x2a')],_0x99cc('0x71'),_0x442d8f[_0x99cc('0x2f')]);this['callProgressDetectingCustomer'](_0x30bd7f,_0x30bd7f[_0x99cc('0xb0')],_0x30bd7f[_0x99cc('0x143')]);}else if(this[_0x99cc('0x17')][_0x30bd7f[_0x99cc('0xb0')]]['dialAnswer']){logger['info'](_0x99cc('0x144'),_0x30bd7f['linkedid'],_0x30bd7f[_0x99cc('0x143')],_0x99cc('0xb4'),_0x442d8f['name'],'pTalking:\x20',_0x442d8f[_0x99cc('0x2f')]);this['callProgressDetectingCustomer'](_0x30bd7f,_0x30bd7f[_0x99cc('0xb0')],_0x30bd7f['cause']);}}};Preview[_0x99cc('0xf')][_0x99cc('0x1f')]=function(_0x5a8e82){if(this[_0x99cc('0x17')][_0x5a8e82[_0x99cc('0x149')]]&&_0x5a8e82[_0x99cc('0x149')]!==_0x5a8e82[_0x99cc('0x14a')]){this[_0x99cc('0xa2')](_0x5a8e82,_0x5a8e82[_0x99cc('0x149')],_0x5a8e82[_0x99cc('0xe5')]);}};Preview['prototype']['syncHangupRequest']=function(_0xd8022){if(this[_0x99cc('0x17')][_0xd8022[_0x99cc('0xb0')]]&&_0xd8022[_0x99cc('0xb0')]!==_0xd8022[_0x99cc('0xf0')]&&!this['actions'][_0xd8022[_0x99cc('0xb0')]][_0x99cc('0x73')]){if(_0xd8022[_0x99cc('0x143')]==='1'){this[_0x99cc('0xa2')](_0xd8022,_0xd8022[_0x99cc('0xb0')],_0xd8022[_0x99cc('0x143')]);}}};Preview[_0x99cc('0xf')][_0x99cc('0x14b')]=function(_0x1b8fa9,_0x10f9cd,_0x1cff80){if(this[_0x99cc('0x17')][_0x1b8fa9]){if(_[_0x99cc('0x86')](this['actions'][_0x1b8fa9]['variables'])){this['actions'][_0x1b8fa9][_0x99cc('0x14c')]={};}this[_0x99cc('0x17')][_0x1b8fa9][_0x99cc('0x14c')][_0x10f9cd]=_0x1cff80;}};Preview[_0x99cc('0xf')][_0x99cc('0x23')]=function(_0xa1d1f3){try{if(!_[_0x99cc('0x86')](_0xa1d1f3)){if(ut[_0x99cc('0x14d')](_['keys'](_0xa1d1f3['variable'])[0x0])){this['addVariable'](_0xa1d1f3[_0x99cc('0xf0')],_[_0x99cc('0x14e')](_0xa1d1f3['variable'])[0x0],_0xa1d1f3[_0x99cc('0x14f')]);}}}catch(_0x58e3c5){logger['error']('[syncVarSet][Preview]',util[_0x99cc('0x150')](_0x58e3c5,{'showHidden':![],'depth':null}));}};Preview[_0x99cc('0xf')][_0x99cc('0x24')]=function(_0x1be91b){if(_0x1be91b){if(this[_0x99cc('0x17')][_0x1be91b[_0x99cc('0x151')]]){this[_0x99cc('0x17')][_0x1be91b[_0x99cc('0x151')]][_0x99cc('0x147')]=!![];}}};Preview[_0x99cc('0xf')][_0x99cc('0x152')]=function(_0x3be7f9){if(_0x3be7f9){if(this[_0x99cc('0x17')][_0x3be7f9[_0x99cc('0x153')]]){this[_0x99cc('0x17')][_0x3be7f9[_0x99cc('0x153')]]['transfer']=!![];}}};module[_0x99cc('0x154')]=Preview;
\ No newline at end of file
+var _0xccf0=['ACTIVE','callProgressDetectingCustomer','countnosuchnumberretry','countglobal','totalGlobal','NoSuchNumber','emit','buildObj','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','dialNoSuchNumberMaxRetry','rescheduleContact','scheduledAt','dialNoSuchNumberRetryFrequency','unlockAgent','activeContact','linkedid','ANSWER','responsetime','uniqueid','\x20Queue','custom:agentconnect','acw','custom:agentConnectPreview','buildAcw','custom:agentcomplete','complete','[16]','[callProgressDetectingCustomer][logAnswer]','crateCustomerReportQueue','sumDuration','talktime','sumBillable','BUSY','countbusyretry','Busy','custom:agentbusy','busy','[callProgressDetectingCustomer][logBusy]','cloneAction','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','dialBusyRetryFrequency','NOANSWER','countnoanswerretry','NoAnswer','[callProgressDetectingCustomer][logNoAnswerGlobal]','[callProgressDetectingCustomer][logNoAnswer]','dialNoAnswerRetryFrequency','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','CANCEL','AgentReject','agentreject','[syncHangupRequest][logAgentReject]','[callProgressDetectingCustomer][logAgentReject]','countagentrejectretry','dialAgentRejectMaxRetry','ABANDONED','countabandonedretry','Abandoned','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','countmachineretry','cause-txt','dialstatus','amd','[callProgressDetectingCustomer][hangupInAMD]','custom:amd','[callProgressDetectingCustomer][machine]','[default]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','updateOriginated','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','destlinkedid','callProgressDetectingAgent','isUndefined','object','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoSuch]','[callProgressDetectingAgent][logNoAnswer]','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','[callProgressDetectingAgent][logAnswerAGI]','[callProgressDetectingAgent]','Contact','phone','Contact\x20is\x20undefined','Queue','isEmpty','execCall','[Preview][execCall][success]','Queue:\x20','\x20IdHopper:\x20','idContact','custom:agentcalled','called','[Preview][execCall][failure]','Call\x20failed','logBlacklist','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','reachable','unmonitored','unlock','unlockContact','disableContact','recallme','isValid','Contact.phone','checkInBlack','[Preview][checkIsBlackList]','[Preview][getContactPreview]','Call\x20unsuccessful','[Preview][validateContact][Empty\x20Contact]','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20','\x20Trunk\x20is\x20not\x20active','TrunkBackup','\x20Trunk\x20Backup\x20is\x20not\x20active','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','Is\x20Valid','SIP/%s/%s%s','trim','dialCutDigit','substring','getCallerId','callerid','getCallerIdRandom','dialRandomLastDigitCallerIdNumber','originatecalleridname','extractCalleridName','originatecalleridnum','extractCalleridNumber','merge','starttime','variablesAction','channelAgent','destconnectedlinenum','calleridnum','user:%s','user:agentconnect','[originateFailure][logOriginateFailure]','actionid','lookAgent','clone','isFailure','response','Answer','[syncHangup][talking]','cause','dialQueueProject','channelstate','transfer','[syncHangup][talking][transfer]','[syncHangup][talking][cause]','destuniqueid','addVariable','variables','filterKey','keys','variable','value','error','[syncVarSet][Preview]','inspect','syncAttendedTransfer','transfertargetlinkedid','syncBlindTransfer','transfererlinkedid','util','lodash','moment','md5','ioredis','../../../config/environment','preview','actionPreview','../ami','./rpcDb','./action','redis','defaults','localhost','socket.io-emitter','prototype','tail','finally','sequence','voiceQueues','trunks','actions','agents','clockClearZombieChannels','originateresponse','syncOriginateResponse','bind','hangup','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','attendedtransfer','blindtransfer','loopCampaigns','campaignsPreview','type','outbound','name','strategy','available','loggedIn','pTalking','talking','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalPauses','predictiveIntervalTotalCalls','message','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','startProgressive','Trunk','active','Interval','stringify','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','format','voice:queue:%s','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','IS_DISACTIVED','\x20is\x20disactive','syncCampaigns','hasOwnProperty','dialMethod','booked','clearZombieChannels','setMessage','clearZombieChannel','enqueue','isNil','[clearZombieChannels][talking]','originated:\x20','queue','pTalking:\x20','dialAnswer','pick','VoiceQueueId','ListId','Action','status','channel','catch','No\x20such\x20channel','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','getContactRecallMe','agentReadyId','length','getDiff','scheduledat','Agent','voicePause','run','then','logger2','YYYY-MM-DD\x20HH:mm:ss','RecallInQueue','dialRecallInQueue','rescheduleContactInQueue','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','logCustomer','[HistoryRecallClose]','createCustomerFinal','isActive','isTrunkReachable'];(function(_0xc68ec4,_0x168e22){var _0x1b3798=function(_0x473e70){while(--_0x473e70){_0xc68ec4['push'](_0xc68ec4['shift']());}};_0x1b3798(++_0x168e22);}(_0xccf0,0xbe));var _0x0ccf=function(_0x44aed7,_0x630314){_0x44aed7=_0x44aed7-0x0;var _0x10b5a6=_0xccf0[_0x44aed7];return _0x10b5a6;};'use strict';var util=require(_0x0ccf('0x0'));var _=require(_0x0ccf('0x1'));var BPromise=require('bluebird');var uuid=require('uuid');var moment=require(_0x0ccf('0x2'));var md5=require(_0x0ccf('0x3'));var Redis=require(_0x0ccf('0x4'));var config=require(_0x0ccf('0x5'));var logger=require('../../../config/logger')(_0x0ccf('0x6'));var loggerAction=require('../../../config/logger')(_0x0ccf('0x7'));var ami=require(_0x0ccf('0x8'));var rpcDb=require(_0x0ccf('0x9'));var Action=require(_0x0ccf('0xa'));var ut=require('./util/util');config[_0x0ccf('0xb')]=_[_0x0ccf('0xc')](config[_0x0ccf('0xb')],{'host':_0x0ccf('0xd'),'port':0x18eb});var io=require(_0x0ccf('0xe'))(new Redis(config[_0x0ccf('0xb')]));var Sequence=function(){};Sequence[_0x0ccf('0xf')]['enqueue']=function(_0xa00ea3){this[_0x0ccf('0x10')]=this['tail']?this[_0x0ccf('0x10')][_0x0ccf('0x11')](_0xa00ea3):_0xa00ea3();};function Preview(_0x1df86f){this[_0x0ccf('0x12')]=new Sequence();this['campaignsPreview']=_0x1df86f[_0x0ccf('0x13')];this['trunks']=_0x1df86f[_0x0ccf('0x14')];this[_0x0ccf('0x15')]={};this[_0x0ccf('0x16')]=_0x1df86f['agents'];this[_0x0ccf('0x17')]=0x0;ami['on'](_0x0ccf('0x18'),this[_0x0ccf('0x19')][_0x0ccf('0x1a')](this));ami['on'](_0x0ccf('0x1b'),this[_0x0ccf('0x1c')][_0x0ccf('0x1a')](this));ami['on'](_0x0ccf('0x1d'),this[_0x0ccf('0x1e')]['bind'](this));ami['on'](_0x0ccf('0x1f'),this[_0x0ccf('0x20')][_0x0ccf('0x1a')](this));ami['on'](_0x0ccf('0x21'),this[_0x0ccf('0x22')][_0x0ccf('0x1a')](this));ami['on'](_0x0ccf('0x23'),this[_0x0ccf('0x24')][_0x0ccf('0x1a')](this));ami['on'](_0x0ccf('0x25'),this['syncAttendedTransfer'][_0x0ccf('0x1a')](this));ami['on'](_0x0ccf('0x26'),this['syncBlindTransfer'][_0x0ccf('0x1a')](this));this[_0x0ccf('0x27')](this[_0x0ccf('0x28')]);}function emit(_0x48a15b,_0x5e400a,_0x1b698b){io['to'](_0x48a15b)['emit'](_0x5e400a,_0x1b698b);}function emitCampaignPreview(_0x5bed17){if(_0x5bed17[_0x0ccf('0x29')]===_0x0ccf('0x2a')){var _0x628f01={'id':_0x5bed17['id'],'name':_0x5bed17[_0x0ccf('0x2b')],'strategy':_0x5bed17[_0x0ccf('0x2c')],'answered':_0x5bed17['answered'],'available':_0x5bed17[_0x0ccf('0x2d')],'loggedIn':_0x5bed17[_0x0ccf('0x2e')],'pTalking':_0x5bed17[_0x0ccf('0x2f')],'sumBillable':_0x5bed17['sumBillable'],'sumDuration':_0x5bed17['sumDuration'],'sumHoldTime':_0x5bed17['sumHoldTime']||0x0,'talking':_0x5bed17[_0x0ccf('0x30')],'total':_0x5bed17['total'],'type':_0x5bed17[_0x0ccf('0x29')],'unmanaged':_0x5bed17[_0x0ccf('0x31')],'abandoned':_0x5bed17[_0x0ccf('0x32')],'waiting':_0x5bed17[_0x0ccf('0x33')],'loggedInDb':_0x5bed17[_0x0ccf('0x34')],'dialActive':_0x5bed17[_0x0ccf('0x35')],'dialMethod':_0x5bed17['dialMethod'],'dialOriginateCallerIdName':_0x5bed17[_0x0ccf('0x36')],'dialOriginateCallerIdNumber':_0x5bed17[_0x0ccf('0x37')],'dialOriginateTimeout':_0x5bed17[_0x0ccf('0x38')],'dialPrefix':_0x5bed17[_0x0ccf('0x39')],'outboundAnswerAgiCallsDay':_0x5bed17[_0x0ccf('0x3a')],'outboundAnswerCallsDay':_0x5bed17[_0x0ccf('0x3b')],'outboundBlacklistCallsDay':_0x5bed17[_0x0ccf('0x3c')],'outboundBusyCallsDay':_0x5bed17['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x5bed17[_0x0ccf('0x3d')],'outboundDropCallsDayACS':_0x5bed17['outboundDropCallsDayACS'],'outboundDropCallsDayCallersExit':_0x5bed17[_0x0ccf('0x3e')],'outboundDropCallsDayTimeout':_0x5bed17[_0x0ccf('0x3f')],'outboundNoAnswerCallsDay':_0x5bed17[_0x0ccf('0x40')],'outboundNoSuchCallsDay':_0x5bed17[_0x0ccf('0x41')],'outboundOriginateFailureCallsDay':_0x5bed17[_0x0ccf('0x42')],'outboundReCallsDay':_0x5bed17[_0x0ccf('0x43')],'outboundRejectCallsDay':_0x5bed17[_0x0ccf('0x44')],'outboundUnknownCallsDay':_0x5bed17[_0x0ccf('0x45')],'outboundAbandonedCallsDay':_0x5bed17[_0x0ccf('0x46')],'predictiveIntervalAnsweredCalls':_0x5bed17[_0x0ccf('0x47')],'predictiveIntervalAvgHoldtime':_0x5bed17[_0x0ccf('0x48')],'predictiveIntervalAvgTalktime':_0x5bed17[_0x0ccf('0x49')],'predictiveIntervalDroppedCallsCallersExit':_0x5bed17['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x5bed17['predictiveIntervalDroppedCallsTimeout'],'predictiveIntervalErlangCalls':_0x5bed17[_0x0ccf('0x4a')],'predictiveIntervalErlangCallsDroppedCalls':_0x5bed17[_0x0ccf('0x4b')],'predictiveIntervalHitRate':_0x5bed17[_0x0ccf('0x4c')],'predictiveIntervalMultiplicativeFactor':_0x5bed17['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x5bed17[_0x0ccf('0x4d')],'predictiveIntervalAvailable':_0x5bed17['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x5bed17[_0x0ccf('0x4e')],'message':_0x5bed17[_0x0ccf('0x4f')],'originated':_0x5bed17[_0x0ccf('0x50')],'erlangCalls':_0x5bed17[_0x0ccf('0x51')],'erlangCallToSecond':_0x5bed17[_0x0ccf('0x52')],'erlangAbandonmentRate':_0x5bed17[_0x0ccf('0x53')],'erlangBusyFactor':_0x5bed17['erlangBusyFactor'],'startPredictive':_0x5bed17['startPredictive'],'startProgressive':_0x5bed17[_0x0ccf('0x54')]};if(_0x5bed17['Trunk']){_0x628f01[_0x0ccf('0x55')]={'id':_0x5bed17[_0x0ccf('0x55')]['id'],'name':_0x5bed17[_0x0ccf('0x55')]['name'],'active':_0x5bed17[_0x0ccf('0x55')][_0x0ccf('0x56')],'callerid':_0x5bed17['Trunk']['callerid']};}if(_0x5bed17[_0x0ccf('0x57')]){_0x628f01['Interval']={'id':_0x5bed17[_0x0ccf('0x57')]['id'],'name':_0x5bed17[_0x0ccf('0x57')]['name']};}var _0x3447ce=md5(JSON[_0x0ccf('0x58')](_0x628f01));if(_0x5bed17[_0x0ccf('0x3')]!==_0x3447ce){_0x5bed17['md5']=_0x3447ce;emit(util['format']('voice:queue:%s',_0x628f01['name']),'voice_queue:save',_0x628f01);}}}function emitVoiceQueueChannelRemove(_0x1741f4){logger[_0x0ccf('0x59')](_0x0ccf('0x5a'),JSON['stringify'](_0x1741f4));emit(util[_0x0ccf('0x5b')](_0x0ccf('0x5c'),_0x1741f4[_0x0ccf('0x2b')]),_0x0ccf('0x5d'),_0x1741f4);io['emit'](_0x0ccf('0x5e'),_0x1741f4);}function notSendMessagesQueue(_0x4a714c){if(_0x4a714c['sendMessageOneNotActive']){if(_0x4a714c[_0x0ccf('0x50')]===0x0&&_0x4a714c[_0x0ccf('0x2f')]===0x0){_0x4a714c[_0x0ccf('0x5f')]=![];_0x4a714c['available']=0x0;_0x4a714c['paused']=0x0;_0x4a714c[_0x0ccf('0x4f')]=_0x0ccf('0x60');ut[_0x0ccf('0x61')](_0x0ccf('0x62'),_0x4a714c['name']+'\x20is\x20not\x20active');}else{_0x4a714c['message']=_0x0ccf('0x63');ut['logger'](_0x0ccf('0x62'),_0x4a714c['name']+_0x0ccf('0x64'));}emitCampaignPreview(_0x4a714c);}}Preview['prototype'][_0x0ccf('0x27')]=function(){var _0x4c460f=this;setInterval(function(){_0x4c460f['syncCampaigns']();},0x7cf);};Preview['prototype'][_0x0ccf('0x65')]=function(){var _0x59a749=this[_0x0ccf('0x28')];this[_0x0ccf('0x17')]+=0x1;for(var _0x4a031e in _0x59a749){if(_0x59a749[_0x0ccf('0x66')](_0x4a031e)&&(_0x59a749[_0x4a031e][_0x0ccf('0x67')]===_0x0ccf('0x6')||_0x59a749[_0x4a031e][_0x0ccf('0x67')]===_0x0ccf('0x68'))&&_0x59a749[_0x4a031e][_0x0ccf('0x29')]===_0x0ccf('0x2a')){if(this[_0x0ccf('0x17')]>0x7){this['clockClearZombieChannels']=0x0;this[_0x0ccf('0x69')]();}}if(_0x59a749[_0x0ccf('0x66')](_0x4a031e)&&_0x59a749[_0x4a031e][_0x0ccf('0x67')]===_0x0ccf('0x6')&&_0x59a749[_0x4a031e][_0x0ccf('0x29')]===_0x0ccf('0x2a')){if(_0x59a749[_0x4a031e]['dialActive']){this[_0x0ccf('0x6a')](_0x59a749[_0x4a031e]);this['recallMe'](_0x59a749[_0x4a031e]);}else{notSendMessagesQueue(_0x59a749[_0x4a031e]);}}}};Preview[_0x0ccf('0xf')][_0x0ccf('0x6b')]=function(_0x6be3fb){var _0x46c586=this;this[_0x0ccf('0x12')][_0x0ccf('0x6c')](function(){if(!_[_0x0ccf('0x6d')](_0x46c586[_0x0ccf('0x15')][_0x6be3fb])){loggerAction['info'](_0x0ccf('0x6e'),_0x6be3fb,'Queue',_0x46c586[_0x0ccf('0x15')][_0x6be3fb]['queue'],_0x0ccf('0x6f'),JSON[_0x0ccf('0x58')](_0x46c586[_0x0ccf('0x28')][_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x70')]][_0x0ccf('0x50')]),_0x0ccf('0x71'),JSON[_0x0ccf('0x58')](_0x46c586[_0x0ccf('0x28')][_0x46c586['actions'][_0x6be3fb]['queue']][_0x0ccf('0x2f')]),JSON['stringify'](_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x72')]),JSON[_0x0ccf('0x58')](_[_0x0ccf('0x73')](_0x46c586[_0x0ccf('0x15')][_0x6be3fb],['contactId','UserId',_0x0ccf('0x74'),_0x0ccf('0x75')])));return ami[_0x0ccf('0x76')]({'action':_0x0ccf('0x77'),'channel':_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x78')]})[_0x0ccf('0x79')](function(_0x369668){if(_0x369668[_0x0ccf('0x4f')]===_0x0ccf('0x7a')){setTimeout(function(){if(_0x46c586['actions'][_0x6be3fb]){ut['updateOriginated'](_0x46c586['campaignsPreview'][_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x70')]],_0x0ccf('0x7b'));if(_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x72')]===!![]){ut[_0x0ccf('0x7c')](_0x46c586['campaignsPreview'][_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x70')]],'[clearZombieChannel]');ut[_0x0ccf('0x7d')](_0x0ccf('0x7e')+_0x6be3fb,_0x46c586['actions'][_0x6be3fb]['queue']);}ut[_0x0ccf('0x7d')](_0x0ccf('0x7f')+_0x6be3fb,_0x46c586[_0x0ccf('0x15')][_0x6be3fb][_0x0ccf('0x70')]);delete _0x46c586['actions'][_0x6be3fb];}},0x2328);}});}});};Preview[_0x0ccf('0xf')]['clearZombieChannels']=function(){var _0x324b69=this;loggerAction[_0x0ccf('0x59')](_0x0ccf('0x80'),_[_0x0ccf('0x81')](this[_0x0ccf('0x15')]));for(var _0x19ba41 in this['actions']){if(_0x324b69[_0x0ccf('0x15')]['hasOwnProperty'](_0x19ba41)){_0x324b69[_0x0ccf('0x6b')](_0x19ba41);}}};Preview[_0x0ccf('0xf')]['recallMe']=function(_0xd9ac35){var _0x3c3221=this;rpcDb[_0x0ccf('0x82')](_0xd9ac35['id'],ut[_0x0ccf('0x83')](this[_0x0ccf('0x16')]))['then'](function(_0x55aaac){if(!_['isNil'](_0x55aaac)){for(var _0x348176=0x0;_0x348176<_0x55aaac[_0x0ccf('0x84')];_0x348176+=0x1){if(ut[_0x0ccf('0x85')](_0x55aaac[_0x348176][_0x0ccf('0x86')])<_0xd9ac35['dialRecallMeTimeout']*0x3c){if(_0x55aaac[_0x348176][_0x0ccf('0x87')]&&!_0x55aaac[_0x348176][_0x0ccf('0x87')][_0x0ccf('0x88')]){_0x3c3221[_0x0ccf('0x89')](_0x55aaac[_0x348176]['id'])[_0x0ccf('0x8a')](ut[_0x0ccf('0x8b')]('[RecallMe]'))[_0x0ccf('0x79')](ut['logger2']('[RecallMe]'));}else{rpcDb['disableContact'](_0x55aaac[_0x348176]['id']);}}else{var _0xb937b0=new Action(_0x55aaac[_0x348176],_0xd9ac35);_0xb937b0['starttime']=moment()['format'](_0x0ccf('0x8c'));_0xd9ac35[_0x0ccf('0x43')]+=0x1;ut['logCustomer'](_0xb937b0,0x17,_0x0ccf('0x8d'));if(_0xd9ac35[_0x0ccf('0x8e')]){rpcDb[_0x0ccf('0x8f')](ut['createBody'](_0x55aaac[_0x348176]));rpcDb[_0x0ccf('0x90')](_0xb937b0,_0x0ccf('0x91'));}else{ut[_0x0ccf('0x92')](_0xb937b0,0x16,'RecallFailedTimeout');rpcDb[_0x0ccf('0x90')](_0xb937b0,_0x0ccf('0x93'));rpcDb[_0x0ccf('0x94')](_0xb937b0,'[HistoryRecallClose]');}}}}})[_0x0ccf('0x79')](ut[_0x0ccf('0x8b')]('[getContactRecallMe]'));};Preview['prototype']['setMessage']=function(_0x4b2469){_0x4b2469[_0x0ccf('0x5f')]=!![];if(ut['IsNotLoggedIn'](_0x4b2469[_0x0ccf('0x2e')])){_0x4b2469['message']='AGENTS_NOT_LOGGED';}else if(!ut[_0x0ccf('0x95')](_0x4b2469[_0x0ccf('0x35')])){_0x4b2469[_0x0ccf('0x4f')]=_0x0ccf('0x60');}else if(!this[_0x0ccf('0x96')](_0x4b2469[_0x0ccf('0x55')])){if(!this[_0x0ccf('0x96')](_0x4b2469['TrunkBackup'])){_0x4b2469[_0x0ccf('0x4f')]='TRUNK_IS_NOT_REACHABLE';}else{_0x4b2469[_0x0ccf('0x4f')]=_0x0ccf('0x97');}}else{_0x4b2469[_0x0ccf('0x4f')]=_0x0ccf('0x97');}emitCampaignPreview(_0x4b2469);};Preview['prototype'][_0x0ccf('0x98')]=function(_0x83584b,_0x249237,_0x4831d6){var _0x9e8c6c=this;var _0x3d86ca=this[_0x0ccf('0x15')][_0x249237];var _0xb36e12=this['campaignsPreview'][_0x3d86ca[_0x0ccf('0x70')]];var _0x40d428;if(_0xb36e12){switch(_0x4831d6){case'1':_0xb36e12[_0x0ccf('0x41')]+=0x1;_0x3d86ca[_0x0ccf('0x99')]+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut[_0x0ccf('0x9b')](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x0,_0x0ccf('0x9c'));ami[_0x0ccf('0x9d')]('custom:agentnosuchnumber',ut[_0x0ccf('0x9e')](_0x3d86ca,_0x0ccf('0x9f')));rpcDb['createCustomerHistory'](_0x3d86ca,_0x0ccf('0xa0'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut['cloneAction'](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb[_0x0ccf('0x94')](_0x40d428,_0x0ccf('0xa3'));}else{if(_0x3d86ca[_0x0ccf('0x99')]>=_0xb36e12[_0x0ccf('0xa4')]){rpcDb[_0x0ccf('0x94')](_0x3d86ca,_0x0ccf('0xa3'));}else{rpcDb[_0x0ccf('0xa5')](ut[_0x0ccf('0xa6')](_0x3d86ca,_0x0ccf('0x99'),_0xb36e12[_0x0ccf('0xa7')]),_0x3d86ca[_0x0ccf('0xa8')],_0x3d86ca[_0x0ccf('0xa9')]);}}delete this[_0x0ccf('0x15')][_0x83584b[_0x0ccf('0xaa')]];break;case _0x0ccf('0xab'):var _0x27c208=moment()[_0x0ccf('0x5b')](_0x0ccf('0x8c'));_0x3d86ca[_0x0ccf('0xac')]=_0x27c208;_0x3d86ca['answertime']=_0x27c208;_0x3d86ca[_0x0ccf('0x72')]=!![];_0xb36e12[_0x0ccf('0x2f')]+=0x1;logger[_0x0ccf('0x59')]('[syncHangup][talking][increment]',_0x3d86ca[_0x0ccf('0xad')],_0x0ccf('0xae'),_0xb36e12[_0x0ccf('0x2b')],_0x0ccf('0x71'),_0xb36e12[_0x0ccf('0x2f')]);ami['emit'](_0x0ccf('0xaf'),ut['buildObj'](_0x3d86ca,'connect',this['campaignsPreview'][_0x3d86ca['queue']]));if(_0xb36e12[_0x0ccf('0xb0')]){ami[_0x0ccf('0x9d')](_0x0ccf('0xb1'),ut[_0x0ccf('0xb2')](_0x3d86ca));}break;case'16':ami[_0x0ccf('0x9d')](_0x0ccf('0xb3'),ut[_0x0ccf('0x9e')](_0x3d86ca,_0x0ccf('0xb4'),this[_0x0ccf('0x28')][_0x3d86ca['queue']]));emitVoiceQueueChannelRemove(ut[_0x0ccf('0x9e')](_0x3d86ca,_0x0ccf('0xb4')));_0xb36e12['outboundAnswerCallsDay']+=0x1;_0xb36e12['total']+=0x1;_0xb36e12['answered']+=0x1;ut[_0x0ccf('0x7c')](_0xb36e12,_0x0ccf('0xb5'));_0x3d86ca['countglobal']=ut[_0x0ccf('0x9b')](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x4,'Answer');rpcDb[_0x0ccf('0x90')](_0x3d86ca,_0x0ccf('0xb6'));rpcDb['createCustomerFinal'](_0x3d86ca,'[callProgressDetectingCustomer][logAnswerGlobal]');rpcDb[_0x0ccf('0xb7')](_0x3d86ca);_0xb36e12[_0x0ccf('0xb8')]+=_0x3d86ca[_0x0ccf('0xb9')];_0xb36e12[_0x0ccf('0xba')]+=_0x3d86ca[_0x0ccf('0xb9')];logger[_0x0ccf('0x59')]('[syncHangup][talking][decrement]',_0x3d86ca[_0x0ccf('0xad')],_0x0ccf('0xae'),_0xb36e12[_0x0ccf('0x2b')],_0x0ccf('0x71'),_0xb36e12[_0x0ccf('0x2f')]);delete this['actions'][_0x83584b[_0x0ccf('0xaa')]];break;case _0x0ccf('0xbb'):_0xb36e12['outboundBusyCallsDay']+=0x1;_0x3d86ca[_0x0ccf('0xbc')]+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut['totalGlobal'](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x5,_0x0ccf('0xbd'));ami['emit'](_0x0ccf('0xbe'),ut[_0x0ccf('0x9e')](_0x3d86ca,_0x0ccf('0xbf')));rpcDb['createCustomerHistory'](_0x3d86ca,_0x0ccf('0xc0'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb['createCustomerFinal'](_0x40d428,_0x0ccf('0xc2'));}else{if(_0x3d86ca['countbusyretry']>=_0xb36e12[_0x0ccf('0xc3')]){rpcDb[_0x0ccf('0x94')](_0x3d86ca,'[callProgressDetectingCustomer][logBusy]');}else{rpcDb[_0x0ccf('0xa5')](ut[_0x0ccf('0xa6')](_0x3d86ca,'countbusyretry',_0xb36e12[_0x0ccf('0xc4')]),_0x3d86ca[_0x0ccf('0xa8')],_0x3d86ca[_0x0ccf('0xa9')]);}}break;case _0x0ccf('0xc5'):_0xb36e12[_0x0ccf('0x40')]+=0x1;_0x3d86ca[_0x0ccf('0xc6')]+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut[_0x0ccf('0x9b')](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x3,_0x0ccf('0xc7'));ami[_0x0ccf('0x9d')]('custom:agentnoanswer',ut[_0x0ccf('0x9e')](_0x3d86ca,'noanswer'));rpcDb[_0x0ccf('0x90')](_0x3d86ca,'[callProgressDetectingCustomer][logNoAnswer]');if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb[_0x0ccf('0x94')](_0x40d428,_0x0ccf('0xc8'));}else{if(_0x3d86ca['countnoanswerretry']>=_0xb36e12['dialNoAnswerMaxRetry']){rpcDb[_0x0ccf('0x94')](_0x3d86ca,_0x0ccf('0xc9'));}else{rpcDb[_0x0ccf('0xa5')](ut[_0x0ccf('0xa6')](_0x3d86ca,'countnoanswerretry',_0xb36e12[_0x0ccf('0xca')]),_0x3d86ca[_0x0ccf('0xa8')],_0x3d86ca['activeContact']);}}break;case _0x0ccf('0xcb'):_0xb36e12[_0x0ccf('0x3d')]+=0x1;_0x3d86ca[_0x0ccf('0xcc')]+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut[_0x0ccf('0x9b')](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x8,_0x0ccf('0xcd'));ami[_0x0ccf('0x9d')](_0x0ccf('0xce'),ut['buildObj'](_0x3d86ca,_0x0ccf('0xcf')));rpcDb[_0x0ccf('0x90')](_0x3d86ca,_0x0ccf('0xd0'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb[_0x0ccf('0x94')](_0x40d428,_0x0ccf('0xd1'));}else{if(_0x3d86ca[_0x0ccf('0xcc')]>=_0xb36e12[_0x0ccf('0xd2')]){rpcDb[_0x0ccf('0x94')](_0x3d86ca,_0x0ccf('0xd0'));}else{rpcDb[_0x0ccf('0xa5')](ut[_0x0ccf('0xa6')](_0x3d86ca,_0x0ccf('0xcc'),_0xb36e12[_0x0ccf('0xc4')]),_0x3d86ca[_0x0ccf('0xa8')],_0x3d86ca[_0x0ccf('0xa9')]);}}break;case _0x0ccf('0xd3'):_0xb36e12[_0x0ccf('0x44')]+=0x1;_0x3d86ca['countagentrejectretry']+=0x1;_0x3d86ca['countglobal']=ut['totalGlobal'](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x14,_0x0ccf('0xd4'));ami[_0x0ccf('0x9d')]('custom:agentreject',ut[_0x0ccf('0x9e')](_0x3d86ca,_0x0ccf('0xd5')));rpcDb[_0x0ccf('0x90')](_0x3d86ca,_0x0ccf('0xd6'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut['cloneAction'](_0x3d86ca,0x14,'AgentReject');rpcDb[_0x0ccf('0x94')](_0x40d428,_0x0ccf('0xd7'));}else{if(_0x3d86ca[_0x0ccf('0xd8')]>=_0xb36e12[_0x0ccf('0xd9')]){rpcDb[_0x0ccf('0x94')](_0x3d86ca,_0x0ccf('0xd7'));}else{rpcDb['rescheduleContact'](ut[_0x0ccf('0xa6')](_0x3d86ca,'countagentrejectretry',_0xb36e12['dialAgentRejectRetryFrequency']),_0x3d86ca[_0x0ccf('0xa8')],_0x3d86ca[_0x0ccf('0xa9')]);}}break;case _0x0ccf('0xda'):_0xb36e12[_0x0ccf('0x46')]+=0x1;_0x3d86ca[_0x0ccf('0xdb')]+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut[_0x0ccf('0x9b')](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0xb,_0x0ccf('0xdc'));rpcDb[_0x0ccf('0x90')](_0x3d86ca,_0x0ccf('0xdd'));if(ut['totalGlobal'](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb[_0x0ccf('0x94')](_0x40d428,_0x0ccf('0xdd'));}else{if(_0x3d86ca[_0x0ccf('0xde')]>=_0xb36e12[_0x0ccf('0xdf')]){rpcDb['createCustomerFinal'](_0x3d86ca,_0x0ccf('0xdd'));}else{rpcDb[_0x0ccf('0xa5')](ut[_0x0ccf('0xa6')](_0x3d86ca,_0x0ccf('0xdb'),_0xb36e12['dialAbandonedRetryFrequency']),_0x3d86ca[_0x0ccf('0xa8')],_0x3d86ca[_0x0ccf('0xa9')]);}}break;case'18':_0xb36e12['outboundUnknownCallsDay']+=0x1;_0x3d86ca[_0x0ccf('0xe0')]+=0x1;_0x3d86ca['countglobal']=ut[_0x0ccf('0x9b')](_0x3d86ca);ut['logCustomer'](_0x3d86ca,0x12,_0x83584b[_0x0ccf('0xe1')]||_0x83584b[_0x0ccf('0xe2')]);ami[_0x0ccf('0x9d')]('custom:amd',ut['buildObj'](_0x3d86ca,_0x0ccf('0xe3')));rpcDb[_0x0ccf('0x90')](_0x3d86ca,_0x0ccf('0xe4'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb[_0x0ccf('0x94')](_0x40d428,_0x0ccf('0xe4'));}else{rpcDb[_0x0ccf('0x94')](_0x3d86ca,_0x0ccf('0xe4'));}delete this[_0x0ccf('0x15')][_0x83584b[_0x0ccf('0xaa')]];break;case'19':_0xb36e12['outboundUnknownCallsDay']+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut[_0x0ccf('0x9b')](_0x3d86ca);ut[_0x0ccf('0x92')](_0x3d86ca,0x13,_0x83584b[_0x0ccf('0xe1')]||_0x83584b[_0x0ccf('0xe2')]);ami['emit'](_0x0ccf('0xe5'),ut[_0x0ccf('0x9e')](_0x3d86ca,_0x0ccf('0xe3')));rpcDb[_0x0ccf('0x90')](_0x3d86ca,_0x0ccf('0xe6'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12['dialGlobalMaxRetry']){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb[_0x0ccf('0x94')](_0x40d428,'[callProgressDetectingCustomer][machine]');}else{rpcDb['createCustomerFinal'](_0x3d86ca,_0x0ccf('0xe6'));}delete this[_0x0ccf('0x15')][_0x83584b[_0x0ccf('0xaa')]];break;default:if(_0x3d86ca[_0x0ccf('0x72')]){ut[_0x0ccf('0x7c')](_0xb36e12,_0x0ccf('0xe7'));ut['loggerError']('[Dialer][decrementTalkink][no\x20Hangup][Preview]'+_0xb36e12[_0x0ccf('0x2b')],_0x83584b);}_0xb36e12[_0x0ccf('0x45')]+=0x1;_0x3d86ca[_0x0ccf('0x9a')]=ut[_0x0ccf('0x9b')](_0x3d86ca);ut['logCustomer'](_0x3d86ca,0xc,_0x83584b[_0x0ccf('0xe1')]||_0x83584b[_0x0ccf('0xe2')]);rpcDb['createCustomerHistory'](_0x3d86ca,_0x0ccf('0xe8'));if(ut[_0x0ccf('0x9b')](_0x3d86ca)>=_0xb36e12[_0x0ccf('0xa1')]){_0x40d428=ut[_0x0ccf('0xc1')](_0x3d86ca,0xf,_0x0ccf('0xa2'));rpcDb['createCustomerFinal'](_0x40d428,_0x0ccf('0xe9'));}else{rpcDb[_0x0ccf('0x94')](_0x3d86ca,_0x0ccf('0xe9'));}delete this[_0x0ccf('0x15')][_0x83584b[_0x0ccf('0xaa')]];}if(!(_0x3d86ca['dialAnswer']&&_0x4831d6==='16')){ut[_0x0ccf('0xea')](_0xb36e12,_0x0ccf('0xeb'));logger[_0x0ccf('0x59')](_0x0ccf('0xec'),_0x3d86ca['uniqueid'],'\x20Queue',_0xb36e12[_0x0ccf('0x2b')],'originated:\x20',_0xb36e12[_0x0ccf('0x50')]);}if(_0x4831d6!==_0x0ccf('0xab')){delete this['actions'][_0x83584b[_0x0ccf('0xaa')]];delete this[_0x0ccf('0x15')][_0x83584b[_0x0ccf('0xed')]];}}};Preview[_0x0ccf('0xf')][_0x0ccf('0xee')]=function(_0x43b8ab,_0x286417,_0x1cd915){if(_['isUndefined'](_0x286417)&&'object'!==typeof _0x286417){return;}if(_[_0x0ccf('0xef')](_0x1cd915)&&_0x0ccf('0xf0')!==typeof _0x1cd915){return;}switch(_0x1cd915[_0x0ccf('0xf1')]){case'0':ut[_0x0ccf('0xf2')](_0x43b8ab,0x0,_0x0ccf('0x9c'));rpcDb[_0x0ccf('0xf3')](_0x43b8ab,_0x0ccf('0xf4'));break;case'3':ut[_0x0ccf('0xf2')](_0x43b8ab,0x3,_0x0ccf('0xc7'));rpcDb[_0x0ccf('0xf3')](_0x43b8ab,_0x0ccf('0xf5'));break;case'5':ut['logAgent'](_0x43b8ab,0x5,_0x0ccf('0xbd'));rpcDb[_0x0ccf('0xf3')](_0x43b8ab,_0x0ccf('0xf6'));break;case'8':ut[_0x0ccf('0xf2')](_0x43b8ab,0x8,'Congestion');rpcDb[_0x0ccf('0xf3')](_0x43b8ab,_0x0ccf('0xf7'));break;case'22':ut['logAgent'](_0x43b8ab,0x16,_0x0ccf('0xf8'));rpcDb[_0x0ccf('0xf3')](_0x43b8ab,_0x0ccf('0xf9'));break;default:ut['logAgent'](_0x43b8ab,0xc,_0x1cd915['reason']);rpcDb['createAgentHistory'](_0x43b8ab,_0x0ccf('0xf7'));}ut[_0x0ccf('0xea')](_0x286417,_0x0ccf('0xfa'));logger['info']('[originated][decrement][callProgressDetectingAgent]',_0x43b8ab['uniqueid'],_0x0ccf('0xae'),_0x286417[_0x0ccf('0x2b')],_0x0ccf('0x6f'),_0x286417[_0x0ccf('0x50')]);delete this[_0x0ccf('0x15')][_0x43b8ab[_0x0ccf('0xad')]];};Preview['prototype']['checkInBlack']=function(_0x5a9912,_0x15c39d,_0x21bce1,_0x36df57,_0x3b6474){var _0x4968a0=this;return new BPromise(function(_0xabcea7,_0x28fbd9){if(_[_0x0ccf('0x6d')](_0x15c39d)||_['isNil'](_0x15c39d[_0x0ccf('0xfb')])||_['isNil'](_0x15c39d[_0x0ccf('0xfb')][_0x0ccf('0xfc')])||_['isNil'](_0x15c39d[_0x0ccf('0x74')])){_0x28fbd9(ut[_0x0ccf('0x4f')](_0x0ccf('0xfd'),_0x36df57,_0x3b6474));return;}var _0x570307=uuid['v4']();var _0xdc8388=_0x4968a0[_0x0ccf('0x28')][_0x15c39d[_0x0ccf('0xfe')][_0x0ccf('0x2b')]];var _0x518bdf=_0x21bce1?_0x4968a0[_0x0ccf('0x16')][_0x21bce1]['id']:undefined;_0x4968a0[_0x0ccf('0x15')][_0x570307]=new Action(_0x15c39d,_0xdc8388,_0x570307,_0x21bce1,_0x518bdf);var _0xe2806a=_0x4968a0[_0x0ccf('0x15')][_0x570307];_0xe2806a[_0x0ccf('0xa8')]=_0x36df57;_0xe2806a[_0x0ccf('0xa9')]=_0x3b6474;_0xe2806a['lookAgent']=_0x21bce1;if(_[_0x0ccf('0xff')](_0x5a9912)){_0x4968a0[_0x0ccf('0x100')](_0xe2806a,_0xdc8388,_0x15c39d,_0x21bce1)['then'](function(_0x441e03){logger[_0x0ccf('0x59')](_0x0ccf('0x101'),_0x0ccf('0x102')+_0xe2806a[_0x0ccf('0x70')]+_0x0ccf('0x103')+_0xe2806a[_0x0ccf('0x104')],JSON['stringify'](_0x441e03));ami['emit'](_0x0ccf('0x105'),ut[_0x0ccf('0x9e')](_0xe2806a,_0x0ccf('0x106'),_0x4968a0['campaignsPreview'][_0xe2806a[_0x0ccf('0x70')]]));_0xabcea7(ut[_0x0ccf('0x4f')]('Calling'));})['catch'](function(_0x5a8572){ut[_0x0ccf('0x61')](_0x0ccf('0x107'),_0x5a8572);_0x28fbd9(ut['message'](_0x0ccf('0x108'),_0x36df57,_0x3b6474));});}else{_0xdc8388[_0x0ccf('0x3c')]+=0x1;ut[_0x0ccf('0x109')](_0xe2806a);rpcDb[_0x0ccf('0x10a')](_0xe2806a,_0x0ccf('0x10b'));delete _0x4968a0[_0x0ccf('0x15')][_0x570307];_0x28fbd9(ut[_0x0ccf('0x4f')](_0x0ccf('0x10c'),_0x36df57,_0x3b6474));}});};Preview[_0x0ccf('0xf')][_0x0ccf('0x96')]=function(_0x568dba){return!_[_0x0ccf('0x6d')](_0x568dba)&&!_[_0x0ccf('0x6d')](_0x568dba[_0x0ccf('0x2b')])&&!_['isNil'](_0x568dba[_0x0ccf('0x56')])&&_0x568dba[_0x0ccf('0x56')]&&!_[_0x0ccf('0x6d')](this['trunks'][util[_0x0ccf('0x5b')]('SIP/%s',_0x568dba[_0x0ccf('0x2b')])])&&!_[_0x0ccf('0x6d')](this[_0x0ccf('0x14')][util['format'](_0x0ccf('0x10d'),_0x568dba[_0x0ccf('0x2b')])][_0x0ccf('0x77')])&&(this['trunks'][util['format'](_0x0ccf('0x10d'),_0x568dba[_0x0ccf('0x2b')])][_0x0ccf('0x77')]===_0x0ccf('0x10e')||this[_0x0ccf('0x14')][util[_0x0ccf('0x5b')](_0x0ccf('0x10d'),_0x568dba[_0x0ccf('0x2b')])][_0x0ccf('0x77')]===_0x0ccf('0x10f'));};Preview[_0x0ccf('0xf')][_0x0ccf('0x89')]=function(_0x30c20f,_0x2b77ed){var _0x48abe0=this;return new BPromise(function(_0x1a33b3,_0x31df3b){_0x48abe0['execRun'](_0x30c20f,_0x2b77ed)[_0x0ccf('0x8a')](function(_0x233cfa){_0x1a33b3(_[_0x0ccf('0x73')](_0x233cfa,[_0x0ccf('0x4f')]));})[_0x0ccf('0x79')](function(_0x6d1b68){if(_0x6d1b68[_0x0ccf('0x110')]){rpcDb[_0x0ccf('0x111')](_0x30c20f);}if(_0x6d1b68[_0x0ccf('0x56')]){rpcDb[_0x0ccf('0x112')](_0x30c20f);}_0x31df3b(_[_0x0ccf('0x73')](_0x6d1b68,[_0x0ccf('0x4f')]));});});};Preview['prototype']['execRun']=function(_0x59faf3,_0x1da96b){var _0x533b0d=this;return new BPromise(function(_0x23a066,_0x5ed88f){var _0x1a03f5,_0x4c9b4b;rpcDb['getContactPreview'](_0x59faf3)[_0x0ccf('0x8a')](function(_0x524d39){if(!_[_0x0ccf('0x6d')](_0x524d39[0x0])){_0x4c9b4b=_0x524d39[0x0][_0x0ccf('0x113')]?![]:!![];_0x1a03f5=_0x524d39[0x0]['recallme']?!![]:![];_0x1a03f5=_0x1da96b?!![]:_0x1a03f5;}var _0x152d77=_0x533b0d['validateContact'](_0x524d39);if(_0x152d77[_0x0ccf('0x114')]){rpcDb['checkIsBlackList'](_[_0x0ccf('0x73')](_0x524d39[0x0],[_0x0ccf('0x74'),_0x0ccf('0x115')]))[_0x0ccf('0x8a')](function(_0x47100a){_0x533b0d[_0x0ccf('0x116')](_0x47100a,_0x524d39[0x0],_0x1da96b,_0x4c9b4b,_0x1a03f5)[_0x0ccf('0x8a')](function(_0x483b3b){_0x23a066(_0x483b3b);})[_0x0ccf('0x79')](function(_0x3b9133){_0x5ed88f(_0x3b9133);});})[_0x0ccf('0x79')](function(_0x17fc66){ut[_0x0ccf('0x61')](_0x0ccf('0x117'),_0x17fc66);_0x5ed88f(ut[_0x0ccf('0x4f')]('Call\x20unsuccessful',_0x4c9b4b,_0x1a03f5));});}else{_0x5ed88f(ut[_0x0ccf('0x4f')](_0x152d77[_0x0ccf('0x4f')],_0x4c9b4b,_0x1a03f5));}})[_0x0ccf('0x79')](function(_0x211d2e){ut[_0x0ccf('0x61')](_0x0ccf('0x118'),_0x211d2e);_0x5ed88f(ut[_0x0ccf('0x4f')](_0x0ccf('0x119'),![],!![]));});});};Preview[_0x0ccf('0xf')]['validateContact']=function(_0x9e8da9){if(_[_0x0ccf('0x6d')](_0x9e8da9)||_[_0x0ccf('0xff')](_0x9e8da9)||!_[_0x0ccf('0x6d')](_0x9e8da9[0x0][_0x0ccf('0x87')])&&_[_0x0ccf('0x6d')](_0x9e8da9[0x0][_0x0ccf('0x87')]['name'])){ut[_0x0ccf('0x61')](_0x0ccf('0x11a'),_0x9e8da9);return{'isValid':![],'message':_0x0ccf('0x11b')};}var _0x1342f3=this[_0x0ccf('0x28')][_0x9e8da9[0x0][_0x0ccf('0xfe')][_0x0ccf('0x2b')]];_0x1342f3[_0x0ccf('0x4f')]=_0x0ccf('0x97');if(_[_0x0ccf('0x6d')](_0x1342f3)){ut[_0x0ccf('0x61')](_0x0ccf('0x11c'),_0x1342f3);return{'isValid':![],'message':'Empty\x20Campaign'};}if(!this[_0x0ccf('0x96')](_0x1342f3['Trunk'])){ut[_0x0ccf('0x61')](_0x0ccf('0x11d'),_0x0ccf('0x11e')+_0x1342f3['name']+_0x0ccf('0x11f'));if(!this[_0x0ccf('0x96')](_0x1342f3[_0x0ccf('0x120')])){ut[_0x0ccf('0x61')](_0x0ccf('0x11d'),_0x1342f3[_0x0ccf('0x2b')]+_0x0ccf('0x121'));return{'isValid':![],'message':'Trunk\x20not\x20work'};}}if(!ut[_0x0ccf('0x95')](_0x1342f3['dialActive'])){ut['logger'](_0x0ccf('0x122'),_0x1342f3['name']+_0x0ccf('0x123'));return{'isValid':![],'message':_0x0ccf('0x11e')+_0x1342f3['name']+_0x0ccf('0x123')};}return{'isValid':!![],'message':_0x0ccf('0x124')};};Preview['prototype'][_0x0ccf('0x100')]=function(_0x53428f,_0x17bb63,_0x4c052f,_0x4406d6){var _0x3554cd=this;return new BPromise(function(_0x32dd90,_0x4c9e3e){var _0x4e98e4=_0x53428f[_0x0ccf('0xad')];var _0x2c1b73=_0x3554cd['isTrunkReachable'](_0x17bb63[_0x0ccf('0x55')])?util[_0x0ccf('0x5b')](_0x0ccf('0x125'),_0x17bb63[_0x0ccf('0x55')]['name'],_[_0x0ccf('0x6d')](_0x17bb63[_0x0ccf('0x39')])?'':_0x17bb63[_0x0ccf('0x39')][_0x0ccf('0x126')]()||'',_0x17bb63[_0x0ccf('0x127')]>0x0?_0x4c052f[_0x0ccf('0xfb')][_0x0ccf('0xfc')][_0x0ccf('0x128')](_0x17bb63[_0x0ccf('0x127')]):_0x4c052f[_0x0ccf('0xfb')][_0x0ccf('0xfc')]):util['format'](_0x0ccf('0x125'),_[_0x0ccf('0x6d')](_0x17bb63[_0x0ccf('0x120')])?_0x17bb63[_0x0ccf('0x55')]['name']:_0x17bb63[_0x0ccf('0x120')][_0x0ccf('0x2b')],_['isNil'](_0x17bb63['dialPrefix'])?'':_0x17bb63[_0x0ccf('0x39')][_0x0ccf('0x126')]()||'',_0x17bb63[_0x0ccf('0x127')]>0x0?_0x4c052f['Contact'][_0x0ccf('0xfc')][_0x0ccf('0x128')](_0x17bb63['dialCutDigit']):_0x4c052f[_0x0ccf('0xfb')]['phone']);var _0x2ff2d8=_0x3554cd['isTrunkReachable'](_0x17bb63[_0x0ccf('0x55')])?ut[_0x0ccf('0x129')](_0x17bb63['Trunk'][_0x0ccf('0x12a')],_0x17bb63['dialOriginateCallerIdName'],_0x17bb63['dialRandomLastDigitCallerIdNumber']>0x0?ut[_0x0ccf('0x12b')](_0x17bb63[_0x0ccf('0x37')],_0x17bb63['dialRandomLastDigitCallerIdNumber']):_0x17bb63[_0x0ccf('0x37')]):ut['getCallerId'](_['isNil'](_0x17bb63[_0x0ccf('0x120')])?_0x17bb63[_0x0ccf('0x55')][_0x0ccf('0x12a')]:_0x17bb63['TrunkBackup'][_0x0ccf('0x12a')],_0x17bb63['dialOriginateCallerIdName'],_0x17bb63[_0x0ccf('0x12c')]>0x0?ut[_0x0ccf('0x12b')](_0x17bb63[_0x0ccf('0x37')],_0x17bb63['dialRandomLastDigitCallerIdNumber']):_0x17bb63[_0x0ccf('0x37')]);if(_0x2ff2d8){_0x53428f[_0x0ccf('0x12d')]=ut[_0x0ccf('0x12e')](_0x2ff2d8);_0x53428f[_0x0ccf('0x12f')]=ut[_0x0ccf('0x130')](_0x2ff2d8);}var _0xcd1630=ut['addVariables'](_0x17bb63,_0x4c052f,_0x2c1b73,_0x2ff2d8,_0x4e98e4,_0x53428f);_[_0x0ccf('0x131')](_0x53428f,ut['toLowerVariables'](_0xcd1630));_0x53428f[_0x0ccf('0x132')]=moment()[_0x0ccf('0x5b')](_0x0ccf('0x8c'));ami[_0x0ccf('0x76')](ut[_0x0ccf('0x133')](_0x53428f,_0x17bb63,_0xcd1630,_0x53428f['activeContact'],_0x4406d6))[_0x0ccf('0x8a')](function(_0x2704f2){var _0x1c1b77=_0x53428f[_0x0ccf('0x134')];if(!_[_0x0ccf('0x6d')](_0x1c1b77)){if(!_['isNil'](_0x3554cd[_0x0ccf('0x16')][_0x1c1b77])){_0x3554cd[_0x0ccf('0x16')][_0x1c1b77][_0x0ccf('0x135')]=_0x53428f[_0x0ccf('0x136')];emit(util[_0x0ccf('0x5b')](_0x0ccf('0x137'),_0x3554cd[_0x0ccf('0x16')][_0x1c1b77][_0x0ccf('0x2b')]),_0x0ccf('0x138'),{'destaccountcode':_0x3554cd['agents'][_0x1c1b77]['accountcode'],'destconnectedlinenum':_0x53428f[_0x0ccf('0x136')]});}}_0x17bb63[_0x0ccf('0x50')]+=0x1;logger[_0x0ccf('0x59')]('[originated][increment]',_0x4e98e4,_0x0ccf('0xae'),_0x17bb63[_0x0ccf('0x2b')],_0x0ccf('0x6f'),_0x17bb63[_0x0ccf('0x50')]);_0x32dd90(_0x2704f2);})[_0x0ccf('0x79')](function(_0x212382){ut['logAgent'](_0x53428f,0xe,'OriginateError');rpcDb[_0x0ccf('0xf3')](_0x53428f,_0x0ccf('0x139'));_0x4c9e3e(_0x212382);});});};Preview['prototype'][_0x0ccf('0x22')]=function(_0x39a246){if(this[_0x0ccf('0x15')][_0x39a246['linkedid']]){this[_0x0ccf('0x15')][_0x39a246[_0x0ccf('0xaa')]][_0x0ccf('0x78')]=_0x39a246[_0x0ccf('0x78')];}};Preview['prototype'][_0x0ccf('0x19')]=function(_0x201be8){var _0x1e2eaf=this;var _0x3b95d7=this[_0x0ccf('0x15')][_0x201be8[_0x0ccf('0x13a')]];if(_0x3b95d7){if(_0x3b95d7[_0x0ccf('0x13b')]&&this[_0x0ccf('0x16')][_0x3b95d7['lookAgent']]){ut['logLookAgent'](_0x3b95d7,this[_0x0ccf('0x16')][_0x3b95d7['lookAgent']][_0x0ccf('0x2b')],this[_0x0ccf('0x16')][_0x3b95d7['lookAgent']]['id']);}var _0x4fa9f7=_[_0x0ccf('0x13c')](_0x3b95d7);_0x4fa9f7[_0x0ccf('0xac')]=moment()[_0x0ccf('0x5b')]('YYYY-MM-DD\x20HH:mm:ss');var _0x5310aa=_0x1e2eaf[_0x0ccf('0x28')][_0x3b95d7['queue']];if(ut[_0x0ccf('0x13d')](_0x201be8[_0x0ccf('0x13e')])){if(_0x3b95d7[_0x0ccf('0xa8')]){rpcDb[_0x0ccf('0x111')](_0x3b95d7[_0x0ccf('0x104')]);}if(_0x3b95d7[_0x0ccf('0xa9')]){rpcDb['disableContact'](_0x3b95d7[_0x0ccf('0x104')]);}ami['emit']('custom:agentringnoanswer',ut[_0x0ccf('0x9e')](_0x3b95d7,'rejected',this[_0x0ccf('0x28')][_0x3b95d7[_0x0ccf('0x70')]]));this['callProgressDetectingAgent'](_0x4fa9f7,_0x5310aa,_0x201be8);}else{_0x3b95d7[_0x0ccf('0x132')]=moment()['format'](_0x0ccf('0x8c'));ut[_0x0ccf('0xf2')](_0x4fa9f7,0x4,_0x0ccf('0x13f'));rpcDb[_0x0ccf('0xf3')](_0x4fa9f7,'[callProgressDetectingAgent][logAnswer]');}}};Preview[_0x0ccf('0xf')]['syncHangup']=function(_0x1a363d){var _0x220f92=this;var _0x3a5c74=this[_0x0ccf('0x15')][_0x1a363d['linkedid']];var _0x337f04;if(_0x3a5c74){_0x337f04=this[_0x0ccf('0x28')][_0x3a5c74[_0x0ccf('0x70')]];logger[_0x0ccf('0x59')](_0x0ccf('0x140'),_0x1a363d[_0x0ccf('0xaa')],_0x0ccf('0xae'),_0x337f04[_0x0ccf('0x2b')],_0x0ccf('0x71'),_0x337f04[_0x0ccf('0x2f')]);}if(this[_0x0ccf('0x15')][_0x1a363d[_0x0ccf('0xaa')]]&&_0x1a363d['linkedid']!==_0x1a363d[_0x0ccf('0xad')]){if(_0x1a363d[_0x0ccf('0x141')]==='16'&&this[_0x0ccf('0x15')][_0x1a363d['linkedid']][_0x0ccf('0x72')]){this[_0x0ccf('0x98')](_0x1a363d,_0x1a363d[_0x0ccf('0xaa')],_0x1a363d[_0x0ccf('0x141')]);}else if(this['actions'][_0x1a363d[_0x0ccf('0xaa')]][_0x0ccf('0x72')]){logger[_0x0ccf('0x59')]('[syncHangup][talking][cause]',_0x1a363d[_0x0ccf('0xaa')],_0x1a363d['cause'],'\x20Queue',_0x337f04[_0x0ccf('0x2b')],_0x0ccf('0x71'),_0x337f04[_0x0ccf('0x2f')]);this[_0x0ccf('0x98')](_0x1a363d,_0x1a363d['linkedid'],_0x1a363d[_0x0ccf('0x141')]);}}else if(_0x3a5c74&&_['isNil'](_0x3a5c74['statedesc'])&&_0x337f04[_0x0ccf('0x142')]&&_0x1a363d[_0x0ccf('0xaa')]===_0x1a363d['uniqueid']&&_['isNil'](_0x1a363d[_0x0ccf('0xf1')])&&_0x1a363d[_0x0ccf('0x141')]==='16'&&_0x1a363d[_0x0ccf('0x143')]==='6'&&_[_0x0ccf('0xef')](_0x3a5c74[_0x0ccf('0x144')])){if(_0x3a5c74[_0x0ccf('0xa8')]){rpcDb[_0x0ccf('0x111')](_0x3a5c74['idContact']);}if(_0x3a5c74[_0x0ccf('0xa9')]){rpcDb[_0x0ccf('0x112')](_0x3a5c74[_0x0ccf('0x104')]);}_0x1a363d['reason']='22';this[_0x0ccf('0xee')](_0x3a5c74,_0x337f04,_0x1a363d);}else if(_0x3a5c74&&_0x3a5c74['transfer']){if(_0x1a363d[_0x0ccf('0x141')]==='16'&&this[_0x0ccf('0x15')][_0x1a363d['linkedid']][_0x0ccf('0x72')]){logger[_0x0ccf('0x59')](_0x0ccf('0x145'),_0x1a363d[_0x0ccf('0xaa')],_0x1a363d[_0x0ccf('0x141')],_0x0ccf('0xae'),_0x337f04['name'],_0x0ccf('0x71'),_0x337f04[_0x0ccf('0x2f')]);this[_0x0ccf('0x98')](_0x1a363d,_0x1a363d[_0x0ccf('0xaa')],_0x1a363d[_0x0ccf('0x141')]);}else if(this['actions'][_0x1a363d['linkedid']]['dialAnswer']){logger['info'](_0x0ccf('0x146'),_0x1a363d[_0x0ccf('0xaa')],_0x1a363d['cause'],_0x0ccf('0xae'),_0x337f04['name'],_0x0ccf('0x71'),_0x337f04[_0x0ccf('0x2f')]);this[_0x0ccf('0x98')](_0x1a363d,_0x1a363d[_0x0ccf('0xaa')],_0x1a363d['cause']);}}};Preview['prototype'][_0x0ccf('0x20')]=function(_0x4ebeef){if(this[_0x0ccf('0x15')][_0x4ebeef[_0x0ccf('0xed')]]&&_0x4ebeef[_0x0ccf('0xed')]!==_0x4ebeef[_0x0ccf('0x147')]){this[_0x0ccf('0x98')](_0x4ebeef,_0x4ebeef['destlinkedid'],_0x4ebeef['dialstatus']);}};Preview['prototype'][_0x0ccf('0x1e')]=function(_0x2a0346){if(this['actions'][_0x2a0346[_0x0ccf('0xaa')]]&&_0x2a0346[_0x0ccf('0xaa')]!==_0x2a0346['uniqueid']&&!this[_0x0ccf('0x15')][_0x2a0346[_0x0ccf('0xaa')]][_0x0ccf('0x72')]){if(_0x2a0346['cause']==='1'){this[_0x0ccf('0x98')](_0x2a0346,_0x2a0346['linkedid'],_0x2a0346[_0x0ccf('0x141')]);}}};Preview[_0x0ccf('0xf')][_0x0ccf('0x148')]=function(_0x4d54e3,_0x282e66,_0x4b875d){if(this[_0x0ccf('0x15')][_0x4d54e3]){if(_[_0x0ccf('0x6d')](this['actions'][_0x4d54e3]['variables'])){this['actions'][_0x4d54e3]['variables']={};}this[_0x0ccf('0x15')][_0x4d54e3][_0x0ccf('0x149')][_0x282e66]=_0x4b875d;}};Preview[_0x0ccf('0xf')][_0x0ccf('0x24')]=function(_0x12bed6){try{if(!_[_0x0ccf('0x6d')](_0x12bed6)){if(ut[_0x0ccf('0x14a')](_[_0x0ccf('0x14b')](_0x12bed6[_0x0ccf('0x14c')])[0x0])){this['addVariable'](_0x12bed6[_0x0ccf('0xad')],_['keys'](_0x12bed6['variable'])[0x0],_0x12bed6[_0x0ccf('0x14d')]);}}}catch(_0x26a0a8){logger[_0x0ccf('0x14e')](_0x0ccf('0x14f'),util[_0x0ccf('0x150')](_0x26a0a8,{'showHidden':![],'depth':null}));}};Preview[_0x0ccf('0xf')][_0x0ccf('0x151')]=function(_0x1ed49d){if(_0x1ed49d){if(this['actions'][_0x1ed49d[_0x0ccf('0x152')]]){this[_0x0ccf('0x15')][_0x1ed49d[_0x0ccf('0x152')]][_0x0ccf('0x144')]=!![];}}};Preview[_0x0ccf('0xf')][_0x0ccf('0x153')]=function(_0xc5ba66){if(_0xc5ba66){if(this['actions'][_0xc5ba66['transfererlinkedid']]){this[_0x0ccf('0x15')][_0xc5ba66[_0x0ccf('0x154')]]['transfer']=!![];}}};module['exports']=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa67=['catch','createHistory','moveContactManagedDialer','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createAgentHistory','createCustomerFinal','rescheduleContact','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','queuecallerleaveAt','answertime','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','membername','context','from-sip','exten','xcally-motion-preview','holdtime','assigned','create','[voiceQueueReport]\x20','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueReport','error','resolve','then'];(function(_0x40bffc,_0x3a45d7){var _0x3007e9=function(_0x4c8fda){while(--_0x4c8fda){_0x40bffc['push'](_0x40bffc['shift']());}};_0x3007e9(++_0x3a45d7);}(_0xfa67,0x1c3));var _0x7fa6=function(_0xd8fed0,_0x293e81){_0xd8fed0=_0xd8fed0-0x0;var _0x2d9ec1=_0xfa67[_0xd8fed0];return _0x2d9ec1;};'use strict';var util=require('util');var BPromise=require('bluebird');var logger=require('../../../config/logger')('preview');var _=require('lodash');var cmHopper=require(_0x7fa6('0x0'));var cmHopperFinal=require(_0x7fa6('0x1'));var cmHopperHistory=require(_0x7fa6('0x2'));var cmHopperBlack=require(_0x7fa6('0x3'));var voiceQueueRt=require('../rpc/voiceQueueRt');var agentReportPreview=require('../rpc/agentReportPreview');var voiceQueueReport=require(_0x7fa6('0x4'));function loggerCatch(_0x31549c){return function(_0x10c3d4){logger[_0x7fa6('0x5')](_0x31549c,util['inspect'](_0x10c3d4,{'showHidden':![],'depth':null}));};}function create(_0x53101e){return BPromise[_0x7fa6('0x6')]()[_0x7fa6('0x7')](cmHopperHistory['createHistory'](_0x53101e))[_0x7fa6('0x8')](loggerCatch('[createHistory]\x20'));}function createAgent(_0x3d96bf){return BPromise['resolve']()['then'](agentReportPreview[_0x7fa6('0x9')](_0x3d96bf))[_0x7fa6('0x8')](loggerCatch('[createHistory]\x20'));}function moveContact(_0xf27fa0){return BPromise['resolve']()[_0x7fa6('0x7')](cmHopper[_0x7fa6('0xa')](_0xf27fa0,!![]))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0xb')));}exports['checkIsBlackList']=function(_0x1410fa){return BPromise['resolve']()[_0x7fa6('0x7')](cmHopperBlack[_0x7fa6('0xc')](_0x1410fa))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0xd')));};exports[_0x7fa6('0xe')]=function(_0xdf7ded){return BPromise[_0x7fa6('0x6')]()['then'](cmHopper[_0x7fa6('0xe')](_0xdf7ded))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0xf')));};exports['createHistory']=function(_0x29c238,_0x3395cb){create(_0x29c238)[_0x7fa6('0x8')](loggerCatch(_0x3395cb));moveContact(_0x29c238)[_0x7fa6('0x8')](loggerCatch(_0x3395cb));};exports[_0x7fa6('0x10')]=function(_0x164a57,_0x115d24){createAgent(_0x164a57)[_0x7fa6('0x8')](loggerCatch(_0x115d24));};exports['createCustomerHistory']=function(_0x9ba3de,_0x570c46){create(_0x9ba3de)[_0x7fa6('0x8')](loggerCatch(_0x570c46));};exports[_0x7fa6('0x11')]=function(_0x40e5c8,_0x502a4b){moveContact(_0x40e5c8)['catch'](loggerCatch(_0x502a4b));};exports[_0x7fa6('0x12')]=function(_0x50e7d1,_0x1eb489,_0x28a7fa){if(_0x1eb489){_0x50e7d1['UserId']=null;}if(_0x28a7fa){_0x50e7d1['active']=![];}return BPromise[_0x7fa6('0x6')]()[_0x7fa6('0x7')](cmHopper['rescheduleContact'](_0x50e7d1))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0x13')));};exports['countReScheduled']=function(_0x3e2e0d){return BPromise[_0x7fa6('0x6')]()[_0x7fa6('0x7')](cmHopper[_0x7fa6('0x14')](_0x3e2e0d))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0x15')));};exports[_0x7fa6('0x16')]=function(_0x2fb9c4){return BPromise['resolve']()['then'](cmHopper[_0x7fa6('0x16')]({'UserId':null},_0x2fb9c4,0x1))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0x17')));};exports[_0x7fa6('0x18')]=function(_0x33bb0f){return BPromise[_0x7fa6('0x6')]()['then'](cmHopper['unlockContact']({'active':![]},_0x33bb0f,0x1))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0x19')));};exports[_0x7fa6('0x1a')]=function(_0x2ba6ba){var _0x47a27d={};_0x47a27d[_0x7fa6('0x1b')]=_0x2ba6ba[_0x7fa6('0x1b')];_0x47a27d[_0x7fa6('0x1c')]=_0x2ba6ba[_0x7fa6('0x1c')];_0x47a27d['calleridnum']=_0x2ba6ba[_0x7fa6('0x1d')];_0x47a27d[_0x7fa6('0x1e')]=_0x2ba6ba[_0x7fa6('0x1e')];_0x47a27d[_0x7fa6('0x1f')]=_0x2ba6ba[_0x7fa6('0x1f')];_0x47a27d[_0x7fa6('0x20')]=_0x2ba6ba['answertime'];_0x47a27d[_0x7fa6('0x21')]=_0x2ba6ba[_0x7fa6('0x22')];_0x47a27d[_0x7fa6('0x23')]=0x1;_0x47a27d[_0x7fa6('0x24')]=_0x2ba6ba[_0x7fa6('0x25')];_0x47a27d[_0x7fa6('0x26')]=_0x2ba6ba[_0x7fa6('0x27')];_0x47a27d[_0x7fa6('0x28')]=_0x7fa6('0x29');_0x47a27d[_0x7fa6('0x2a')]=_0x7fa6('0x2b');_0x47a27d[_0x7fa6('0x2c')]=0x0;_0x47a27d[_0x7fa6('0x2d')]=0x1;_0x47a27d['lastAssignedTo']=_0x2ba6ba['membername'];_0x47a27d['queuecallerexitreason']='COMPLETED';return BPromise['resolve']()[_0x7fa6('0x7')](voiceQueueReport[_0x7fa6('0x2e')](_0x47a27d))['catch'](loggerCatch(_0x7fa6('0x2f')));};exports['getContactRecallMe']=function(_0x4bf5f6,_0x56dfda){return BPromise[_0x7fa6('0x6')]()['then'](cmHopper['getContactRecallMe'](_0x4bf5f6,_0x56dfda))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0x30')));};exports[_0x7fa6('0x31')]=function(_0x3d26e3){return BPromise[_0x7fa6('0x6')]()[_0x7fa6('0x7')](cmHopper[_0x7fa6('0x12')](_0x3d26e3,!![],!![]))[_0x7fa6('0x8')](loggerCatch(_0x7fa6('0x32')));};
\ No newline at end of file
+var _0xfc01=['countReScheduled','[countReScheduled]\x20','unlockContact','disableContact','[activeContact]\x20','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt','endtime','connectedlinename','membername','context','from-sip','exten','xcally-motion-preview','holdtime','assigned','queuecallerexitreason','COMPLETED','create','getContactRecallMe','[GetContactRecallMe]\x20','[rescheduleContactInQueue]\x20','util','../../../config/logger','preview','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/voiceQueueReport','error','resolve','then','[createHistory]\x20','createHistory','catch','moveContactManagedDialer','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','createAgentHistory','createCustomerHistory','rescheduleContact','UserId','active','[rescheduleContact]\x20'];(function(_0x62aa88,_0x5f338c){var _0x59fc65=function(_0x3a7846){while(--_0x3a7846){_0x62aa88['push'](_0x62aa88['shift']());}};_0x59fc65(++_0x5f338c);}(_0xfc01,0x8e));var _0x1fc0=function(_0x202a67,_0x3105f9){_0x202a67=_0x202a67-0x0;var _0x330046=_0xfc01[_0x202a67];return _0x330046;};'use strict';var util=require(_0x1fc0('0x0'));var BPromise=require('bluebird');var logger=require(_0x1fc0('0x1'))(_0x1fc0('0x2'));var _=require('lodash');var cmHopper=require(_0x1fc0('0x3'));var cmHopperFinal=require(_0x1fc0('0x4'));var cmHopperHistory=require(_0x1fc0('0x5'));var cmHopperBlack=require(_0x1fc0('0x6'));var voiceQueueRt=require(_0x1fc0('0x7'));var agentReportPreview=require('../rpc/agentReportPreview');var voiceQueueReport=require(_0x1fc0('0x8'));function loggerCatch(_0x3a7db6){return function(_0x476510){logger[_0x1fc0('0x9')](_0x3a7db6,util['inspect'](_0x476510,{'showHidden':![],'depth':null}));};}function create(_0x232e0f){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopperHistory['createHistory'](_0x232e0f))['catch'](loggerCatch(_0x1fc0('0xc')));}function createAgent(_0x5193ac){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](agentReportPreview[_0x1fc0('0xd')](_0x5193ac))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0xc')));}function moveContact(_0x3c56f2){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper[_0x1fc0('0xf')](_0x3c56f2,!![]))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0x10')));}exports[_0x1fc0('0x11')]=function(_0x5a3a88){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopperBlack['checkIsBlackList'](_0x5a3a88))['catch'](loggerCatch(_0x1fc0('0x12')));};exports[_0x1fc0('0x13')]=function(_0x44f1ab){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper[_0x1fc0('0x13')](_0x44f1ab))[_0x1fc0('0xe')](loggerCatch('[getContactPreview]\x20'));};exports[_0x1fc0('0xd')]=function(_0x25490e,_0x5db9be){create(_0x25490e)[_0x1fc0('0xe')](loggerCatch(_0x5db9be));moveContact(_0x25490e)['catch'](loggerCatch(_0x5db9be));};exports[_0x1fc0('0x14')]=function(_0x5430f0,_0x52e438){createAgent(_0x5430f0)[_0x1fc0('0xe')](loggerCatch(_0x52e438));};exports[_0x1fc0('0x15')]=function(_0x4948cd,_0x57ade7){create(_0x4948cd)[_0x1fc0('0xe')](loggerCatch(_0x57ade7));};exports['createCustomerFinal']=function(_0x2400ed,_0x2c0cdc){moveContact(_0x2400ed)['catch'](loggerCatch(_0x2c0cdc));};exports[_0x1fc0('0x16')]=function(_0x227ebf,_0x4e221d,_0x376b7f){if(_0x4e221d){_0x227ebf[_0x1fc0('0x17')]=null;}if(_0x376b7f){_0x227ebf[_0x1fc0('0x18')]=![];}return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper['rescheduleContact'](_0x227ebf))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0x19')));};exports[_0x1fc0('0x1a')]=function(_0x11f6e2){return BPromise['resolve']()[_0x1fc0('0xb')](cmHopper[_0x1fc0('0x1a')](_0x11f6e2))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0x1b')));};exports[_0x1fc0('0x1c')]=function(_0x2a1a90){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper['unlockContact']({'UserId':null},_0x2a1a90,0x1))[_0x1fc0('0xe')](loggerCatch('[unlockContact]\x20'));};exports[_0x1fc0('0x1d')]=function(_0x241ba3){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper[_0x1fc0('0x1c')]({'active':![]},_0x241ba3,0x1))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0x1e')));};exports['crateCustomerReportQueue']=function(_0x150fcc){var _0x28ae7c={};_0x28ae7c[_0x1fc0('0x1f')]=_0x150fcc['type'];_0x28ae7c[_0x1fc0('0x20')]=_0x150fcc[_0x1fc0('0x20')];_0x28ae7c[_0x1fc0('0x21')]=_0x150fcc['calleridnum'];_0x28ae7c[_0x1fc0('0x22')]=_0x150fcc[_0x1fc0('0x22')];_0x28ae7c[_0x1fc0('0x23')]=_0x150fcc[_0x1fc0('0x23')];_0x28ae7c[_0x1fc0('0x24')]=_0x150fcc[_0x1fc0('0x25')];_0x28ae7c[_0x1fc0('0x26')]=_0x150fcc[_0x1fc0('0x25')];_0x28ae7c[_0x1fc0('0x27')]=0x1;_0x28ae7c[_0x1fc0('0x28')]=_0x150fcc[_0x1fc0('0x29')];_0x28ae7c[_0x1fc0('0x2a')]=_0x150fcc[_0x1fc0('0x2b')];_0x28ae7c[_0x1fc0('0x2c')]=_0x1fc0('0x2d');_0x28ae7c[_0x1fc0('0x2e')]=_0x1fc0('0x2f');_0x28ae7c[_0x1fc0('0x30')]=0x0;_0x28ae7c[_0x1fc0('0x31')]=0x1;_0x28ae7c['lastAssignedTo']=_0x150fcc[_0x1fc0('0x2b')];_0x28ae7c[_0x1fc0('0x32')]=_0x1fc0('0x33');return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](voiceQueueReport[_0x1fc0('0x34')](_0x28ae7c))[_0x1fc0('0xe')](loggerCatch('[voiceQueueReport]\x20'));};exports[_0x1fc0('0x35')]=function(_0x27c4f4,_0x471137){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper[_0x1fc0('0x35')](_0x27c4f4,_0x471137))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0x36')));};exports['rescheduleContactInQueue']=function(_0x47e5d4){return BPromise[_0x1fc0('0xa')]()[_0x1fc0('0xb')](cmHopper[_0x1fc0('0x16')](_0x47e5d4,!![],!![]))[_0x1fc0('0xe')](loggerCatch(_0x1fc0('0x37')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f6f=['callbackuniqueid','callbackat','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosbridged','bridgepeer','pow','replace','random','match','lodash','preview','env','XCALLY_IP_AGI','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','info','logger2','message','getCallerId','isUndefined','string','isEmpty','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','Queue','format','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','dialQueueProject2','monitor_format','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','originatecalleridnum','xcally-motion-preview','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','createdAt','updatedAt','XMD-','toUpper','toLowerVariables','toLower','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','statedesc','Blacklist','starttime','responsetime','logAgent','YYYY-MM-DD\x20HH:mm:ss','state','ringtime','logLookAgent','membername','UserId','logCustomer','endtime','talktime','answertime','isFailure','RECALL','BOOKED','uniqueid','originate','channelAgent','timeout','totalGlobal','countbusyretry','countcongestionretry','countagentrejectretry','cloneAction','clone','Global','scheduledAt','active','add','minutes','ListId','decrementTalkink','pTalking','IsNotLoggedIn','buildObj','lastevent','name','queue','interface','motionChannel','mandatoryDisposition','buildAcw','agentReadyId','not_inuse','status','reachable','push','getDiff','createBody','CampaignId','filterKey','idContact','type','campaigntype','scheduledat','countglobal','callback'];(function(_0x20f4d0,_0x51281e){var _0x105af3=function(_0x20105e){while(--_0x20105e){_0x20f4d0['push'](_0x20f4d0['shift']());}};_0x105af3(++_0x51281e);}(_0x2f6f,0x1ba));var _0xf2f6=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x2f6f[_0x397e5f];return _0x5302b8;};'use strict';var util=require('util');var _=require(_0xf2f6('0x0'));var moment=require('moment');var logger=require('../../../../config/logger')(_0xf2f6('0x1'));var ipAgi=process[_0xf2f6('0x2')][_0xf2f6('0x3')]||'127.0.0.1';function getSeconds(_0x330681,_0x35016d){var _0x5b7b83=moment(_0x330681)[_0xf2f6('0x4')](0x0);var _0x36c938=moment(_0x35016d)[_0xf2f6('0x4')](0x0);return _0x5b7b83[_0xf2f6('0x5')](_0x36c938,_0xf2f6('0x6'));}exports[_0xf2f6('0x7')]=function(_0x439e40){return function(_0x38c096){logger[_0xf2f6('0x8')](_0x439e40,util[_0xf2f6('0x9')](_0x38c096,{'showHidden':![],'depth':null}));};};exports[_0xf2f6('0xa')]=function(_0x847e36,_0x29b3b0){logger[_0xf2f6('0xb')](_0x847e36,util['inspect'](_0x29b3b0,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x28c012,_0x29b811){logger['error'](_0x28c012,util['inspect'](_0x29b811,{'showHidden':![],'depth':null}));};exports[_0xf2f6('0xc')]=function(_0x3a6de0){return function(_0x4b304c){logger[_0xf2f6('0xb')](_0x3a6de0,util[_0xf2f6('0x9')](_0x4b304c,{'showHidden':![],'depth':null}));};};exports[_0xf2f6('0xd')]=function(_0x4080cf,_0xeec1bd,_0x258044){return{'message':_0x4080cf,'unlock':_0xeec1bd,'active':_0x258044};};exports[_0xf2f6('0xe')]=function(_0x203eba,_0x33993e,_0x410b36){if(!_[_0xf2f6('0xf')](_0x410b36)&&_0xf2f6('0x10')===typeof _0x410b36&&!_[_0xf2f6('0x11')](_0x410b36)){if(!_[_0xf2f6('0xf')](_0x33993e)&&_0xf2f6('0x10')===typeof _0x33993e&&!_[_0xf2f6('0x11')](_0x33993e)){return util['format']('\x22%s\x22\x20<%s>',_0x33993e,_0x410b36);}return util['format'](_0xf2f6('0x12'),_0x410b36,_0x410b36);}if(!_[_0xf2f6('0xf')](_0x203eba)&&_0xf2f6('0x10')===typeof _0x203eba&&!_[_0xf2f6('0x11')](_0x203eba)){return _0x203eba;}return _0xf2f6('0x13');};exports[_0xf2f6('0x14')]=function(_0x27b398){if(_[_0xf2f6('0x15')](_0x27b398)){return![];}return _0x27b398;};exports['addVariables']=function(_0x51a0f0,_0x142373,_0x4530be,_0x2de614,_0x2dadba,_0x7c8dd2){var _0x249693={'XMD-QUEUE':_0x142373['Queue']?_0x142373[_0xf2f6('0x16')]['name']:'','XMD-CALLERID':_0x2de614,'XMD-CALLERID-PREVIEW':_0x7c8dd2?util[_0xf2f6('0x17')](_0xf2f6('0x12'),_0x7c8dd2[_0xf2f6('0x18')],_0x7c8dd2[_0xf2f6('0x19')]):_0x2de614,'XMD-DIALID':_0x2dadba,'XMD-CONTACTID':_0x142373[_0xf2f6('0x1a')],'XMD-CDRTYPE':_0xf2f6('0x1b'),'CALLERID(all)':_0x2de614,'XMD-VOICEQUEUEID':_0x142373[_0xf2f6('0x1c')],'XMD-DIALCHANNEL':_0x4530be,'XMD-DIALTIMEOUT':_0x51a0f0[_0xf2f6('0x1d')]||0x1e,'XMD-DIALOPTIONS':util[_0xf2f6('0x17')]('\x22rtTxX%s%s\x22',_0x51a0f0[_0xf2f6('0x1e')]?'g':'',_[_0xf2f6('0x11')](_0x51a0f0[_0xf2f6('0x1f')])?'':'U(xcally-mixmonitor-context)'),'XMD-DIALURL':_0x51a0f0[_0xf2f6('0x20')]||'','XMD-AGI':_0x51a0f0[_0xf2f6('0x21')]?util[_0xf2f6('0x17')](_0xf2f6('0x22'),ipAgi,_0x51a0f0['dialQueueProject']):_0xf2f6('0x23'),'XMD-AGIAFTER':_0x51a0f0['dialQueueProject2']?util[_0xf2f6('0x17')](_0xf2f6('0x22'),ipAgi,_0x51a0f0[_0xf2f6('0x1e')]):'NONE','XMD-ORIGINATECALLERIDNUM':_0x7c8dd2?_0x7c8dd2[_0xf2f6('0x24')]:'','XMD-ORIGINATECALLERIDNAME':_0x7c8dd2?_0x7c8dd2['originatecalleridname']:'','XMD-DESTINATION':_0xf2f6('0x25')};if(!_[_0xf2f6('0x11')](_0x51a0f0['monitor_format'])){_0x249693[util['format']('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x51a0f0[_0xf2f6('0x1f')];_0x249693[util[_0xf2f6('0x17')]('%s',_0xf2f6('0x26'))]=_0x2dadba;}if(_0x142373&&_0x142373[_0xf2f6('0x27')]){for(var _0x5d7e46 in _0x142373[_0xf2f6('0x27')]){if(_0x142373[_0xf2f6('0x27')][_0xf2f6('0x28')](_0x5d7e46)){if(!_['isNil'](_0x142373[_0xf2f6('0x27')][_0x5d7e46])&&_0x5d7e46!=='id'&&_0x5d7e46!=='tags'&&_0x5d7e46!==_0xf2f6('0x29')&&_0x5d7e46!==_0xf2f6('0x2a')){_0x249693[util[_0xf2f6('0x17')]('%s%s',_0xf2f6('0x2b'),_[_0xf2f6('0x2c')](_0x5d7e46))]=_0x142373['Contact'][_0x5d7e46];}}}}return _0x249693;};exports[_0xf2f6('0x2d')]=function(_0x5448ba){var _0x5dfc24={};for(var _0x1f1743 in _0x5448ba){if(_0x5448ba[_0xf2f6('0x28')](_0x1f1743)){_0x5dfc24[util[_0xf2f6('0x17')]('%s',_[_0xf2f6('0x2e')](_0x1f1743))]=_0x5448ba[_0x1f1743];}}return{'variables':_0x5dfc24};};exports['updateOriginated']=function(_0x4939cd,_0x1c9266){if(!_[_0xf2f6('0x15')](_0x4939cd)){if(_0x4939cd[_0xf2f6('0x28')](_0xf2f6('0x2f'))){if(_0x4939cd['originated']>0x0){_0x4939cd[_0xf2f6('0x2f')]-=0x1;}else{logger['error']('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x1c9266);}}}else{logger['error'](_0xf2f6('0x30'),_0x1c9266);}};exports[_0xf2f6('0x31')]=function(_0x5abc6f){var _0x1f7d80=moment()[_0xf2f6('0x17')]('YYYY-MM-DD\x20HH:mm:ss');_0x5abc6f['state']=0xd;_0x5abc6f[_0xf2f6('0x32')]=_0xf2f6('0x33');_0x5abc6f[_0xf2f6('0x34')]=_0x1f7d80;_0x5abc6f[_0xf2f6('0x35')]=_0x1f7d80;_0x5abc6f['endtime']=_0x1f7d80;};exports[_0xf2f6('0x36')]=function(_0x1f728d,_0x1de871,_0x493631){var _0x2226ec=moment()['format'](_0xf2f6('0x37'));_0x1f728d[_0xf2f6('0x38')]=_0x1de871;_0x1f728d[_0xf2f6('0x32')]=_0x493631;_0x1f728d[_0xf2f6('0x35')]=_0x2226ec;_0x1f728d[_0xf2f6('0x39')]=getSeconds(_0x1f728d[_0xf2f6('0x35')],_0x1f728d[_0xf2f6('0x34')]);};exports[_0xf2f6('0x3a')]=function(_0x4c7f40,_0x57c557,_0x1739a2){_0x4c7f40[_0xf2f6('0x3b')]=_0x57c557;_0x4c7f40[_0xf2f6('0x3c')]=_0x1739a2;};exports[_0xf2f6('0x3d')]=function(_0x382101,_0x1f8cc3,_0x2237cf){var _0x1af723=moment()[_0xf2f6('0x17')](_0xf2f6('0x37'));_0x382101[_0xf2f6('0x38')]=_0x1f8cc3;_0x382101[_0xf2f6('0x32')]=_0x2237cf;_0x382101[_0xf2f6('0x35')]=_0x382101[_0xf2f6('0x35')]?_0x382101['responsetime']:_0x1af723;_0x382101[_0xf2f6('0x3e')]=_0x382101['endtime']?_0x382101[_0xf2f6('0x3e')]:_0x1af723;_0x382101[_0xf2f6('0x39')]=getSeconds(_0x382101[_0xf2f6('0x35')]||0x0,_0x382101[_0xf2f6('0x34')]||0x0);_0x382101[_0xf2f6('0x3f')]=_0x382101[_0xf2f6('0x40')]?getSeconds(_0x382101[_0xf2f6('0x3e')],_0x382101[_0xf2f6('0x40')]):0x0;};exports[_0xf2f6('0x41')]=function(_0x358d6a){return _0x358d6a==='Failure';};exports['variablesAction']=function(_0x355699,_0x4320b9,_0x594d83,_0xa6e87b,_0x566ba5){var _0x379b80=_0xa6e87b?_0xf2f6('0x42'):_0x355699[_0xf2f6('0x18')];_0x379b80=_0x566ba5?_0xf2f6('0x43'):_0x379b80;return{'actionid':_0x355699[_0xf2f6('0x44')],'action':_0xf2f6('0x45'),'channel':_0x355699[_0xf2f6('0x46')],'callerid':util[_0xf2f6('0x17')](_0xf2f6('0x12'),_0x379b80,_0x355699[_0xf2f6('0x19')]),'Exten':'xcally-motion-preview','Context':'from-sip','Priority':'1','variable':_0x594d83,'timeout':(_0x4320b9[_0xf2f6('0x47')]||0x1e)*0x3e8,'async':!![],'channelid':_0x355699['uniqueid']};};exports[_0xf2f6('0x48')]=function(_0x3b8296){return _0x3b8296[_0xf2f6('0x49')]+_0x3b8296[_0xf2f6('0x4a')]+_0x3b8296['countnoanswerretry']+_0x3b8296[_0xf2f6('0x4b')]+_0x3b8296['countnosuchnumberretry'];};exports[_0xf2f6('0x4c')]=function(_0x30d5ba){var _0x270c2c=_[_0xf2f6('0x4d')](_0x30d5ba);_0x270c2c[_0xf2f6('0x38')]=0xf;_0x270c2c[_0xf2f6('0x32')]=_0xf2f6('0x4e');return _0x270c2c;};exports[_0xf2f6('0x4f')]=function(_0x14d410,_0x2ab384,_0x4f6ce5){var _0x544e88={};_0x544e88[_0x2ab384]=_0x14d410[_0x2ab384];_0x544e88[_0xf2f6('0x50')]=![];_0x544e88['scheduledat']=moment()[_0xf2f6('0x51')](_0x4f6ce5,_0xf2f6('0x52'))[_0xf2f6('0x17')](_0xf2f6('0x37'));_0x544e88['ContactId']=_0x14d410[_0xf2f6('0x1a')];_0x544e88[_0xf2f6('0x53')]=_0x14d410[_0xf2f6('0x53')];_0x544e88['VoiceQueueId']=_0x14d410[_0xf2f6('0x1c')]||undefined;return _0x544e88;};exports[_0xf2f6('0x54')]=function(_0x2ac702,_0x4dd3b0){if(!_[_0xf2f6('0x15')](_0x2ac702)){if(_0x2ac702[_0xf2f6('0x55')]>0x0){_0x2ac702[_0xf2f6('0x55')]-=0x1;}else{logger[_0xf2f6('0x8')](_0x4dd3b0,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger['error'](_0x4dd3b0,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0xf2f6('0x56')]=function(_0xe8194){if(_0xe8194<=0x0){return!![];}return![];};exports[_0xf2f6('0x57')]=function(_0x2677f1,_0x3ee77e,_0x138982){_0x2677f1[_0xf2f6('0x58')]=_0x3ee77e;_0x2677f1[_0xf2f6('0x59')]=_0x2677f1[_0xf2f6('0x5a')];_0x2677f1[_0xf2f6('0x5b')]=_0x2677f1[_0xf2f6('0x46')];_0x2677f1[_0xf2f6('0x5c')]='voice';if(_0x138982){_0x2677f1[_0xf2f6('0x5d')]=_0x138982[_0xf2f6('0x5d')];}return _0x2677f1;};exports[_0xf2f6('0x5e')]=function(_0x4168d7){var _0x4cd96d={};_0x4cd96d['queue']=_0x4168d7[_0xf2f6('0x5a')];_0x4cd96d[_0xf2f6('0x5b')]=_0x4168d7[_0xf2f6('0x46')];_0x4cd96d[_0xf2f6('0x44')]=_0x4168d7['uniqueid'];return _0x4cd96d;};exports[_0xf2f6('0x5f')]=function(_0x558b09){var _0xce35d1=[];for(var _0x51a0e5 in _0x558b09){if(_0x558b09[_0xf2f6('0x28')](_0x51a0e5)){if(!_['isNil'](_0x558b09[_0x51a0e5])&&_0x558b09[_0x51a0e5][_0xf2f6('0x38')]===_0xf2f6('0x60')&&_0x558b09[_0x51a0e5][_0xf2f6('0x61')]===_0xf2f6('0x62')){_0xce35d1[_0xf2f6('0x63')](_0x558b09[_0x51a0e5]['id']);}}}return _0xce35d1;};exports[_0xf2f6('0x64')]=function(_0x38dae8){var _0x2c0e70=moment()['milliseconds'](0x0);var _0xf95d63=moment(_0x38dae8)[_0xf2f6('0x4')](0x0);return _0x2c0e70[_0xf2f6('0x5')](_0xf95d63,'seconds');};exports[_0xf2f6('0x65')]=function(_0x4057f9){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x4057f9['ContactId'],'ListId':_0x4057f9['ListId'],'VoiceQueueId':_0x4057f9[_0xf2f6('0x1c')]||undefined,'CampaignId':_0x4057f9[_0xf2f6('0x66')]||undefined};};exports[_0xf2f6('0x67')]=function(_0x538465){if(_0x538465==='uniqueid'||_0x538465===_0xf2f6('0x68')||_0x538465===_0xf2f6('0x5a')||_0x538465===_0xf2f6('0x69')||_0x538465===_0xf2f6('0x6a')||_0x538465==='dialAnswer'||_0x538465===_0xf2f6('0x3b')||_0x538465===_0xf2f6('0x46')||_0x538465===_0xf2f6('0x18')||_0x538465==='active'||_0x538465===_0xf2f6('0x19')||_0x538465===_0xf2f6('0x6b')||_0x538465===_0xf2f6('0x49')||_0x538465===_0xf2f6('0x4a')||_0x538465==='countnoanswerretry'||_0x538465===_0xf2f6('0x6c')||_0x538465===_0xf2f6('0x6d')||_0x538465===_0xf2f6('0x6e')||_0x538465===_0xf2f6('0x6f')||_0x538465==='recallme'||_0x538465==='ContactId'||_0x538465==='ListId'||_0x538465===_0xf2f6('0x3c')||_0x538465===_0xf2f6('0x1c')||_0x538465===_0xf2f6('0x70')||_0x538465===_0xf2f6('0x71')||_0x538465===_0xf2f6('0x72')||_0x538465===_0xf2f6('0x73')||_0x538465===_0xf2f6('0x74')||_0x538465==='xmd-dialurl'||_0x538465===_0xf2f6('0x75')||_0x538465===_0xf2f6('0x76')||_0x538465===_0xf2f6('0x77')||_0x538465===_0xf2f6('0x78')||_0x538465===_0xf2f6('0x79')||_0x538465===_0xf2f6('0x7a')||_0x538465==='xmd-callerid'||_0x538465===_0xf2f6('0x7b')||_0x538465===_0xf2f6('0x7c')||_0x538465===_0xf2f6('0x7d')||_0x538465==='rtpaudioqosbridged'||_0x538465===_0xf2f6('0x7e')||_0x538465===_0xf2f6('0x7f')||_0x538465===_0xf2f6('0x80')||_0x538465===_0xf2f6('0x81')||_0x538465===_0xf2f6('0x82')||_0x538465===_0xf2f6('0x83')||_0x538465===_0xf2f6('0x7d')||_0x538465===_0xf2f6('0x84')||_0x538465==='rtpaudioqosjitter'||_0x538465===_0xf2f6('0x7f')||_0x538465===_0xf2f6('0x80')||_0x538465===_0xf2f6('0x81')||_0x538465===_0xf2f6('0x82')||_0x538465==='rtpaudioqosrttbridged'||_0x538465===_0xf2f6('0x85')||_0x538465==='bridgepvtcallid'||_0x538465==='state'||_0x538465===_0xf2f6('0x32')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x4a9955,_0x4435c8){var _0x1f0cb3,_0x1ce479,_0x5e540a;if(_0x4435c8<=0x0){_0x4435c8=0x1;}_0x1f0cb3=new RegExp('\x5cw{0,'+_0x4435c8+'}$');_0x1ce479=Math['pow'](0xa,_0x4435c8-0x1);_0x5e540a=Math[_0xf2f6('0x86')](0xa,_0x4435c8)-0x1;return util['format']('%s',_[_0xf2f6('0x87')](_0x4a9955,_0x1f0cb3,_[_0xf2f6('0x88')](_0x1ce479,_0x5e540a)));};exports['extractCalleridName']=function(_0x2c032c){var _0x276597=_0x2c032c[_0xf2f6('0x89')](/"(.*?)"/);return _0x276597?_0x276597[0x1]:_0x2c032c;};exports['extractCalleridNumber']=function(_0x2e6a52){var _0x417550=_0x2e6a52[_0xf2f6('0x89')](/<(.*?)>/);return _0x417550?_0x417550[0x1]:_0x2e6a52;};
\ No newline at end of file
+var _0xaaa1=['rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','bridgepvtcallid','getCallerIdRandom','pow','match','util','lodash','moment','preview','env','XCALLY_IP_AGI','127.0.0.1','diff','error','inspect','logger','info','logger2','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','name','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','\x22agi://%s/square,%s\x22','NONE','dialQueueProject2','originatecalleridnum','originatecalleridname','xcally-motion-preview','monitor_format','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','%s%s','XMD-','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','endtime','logAgent','responsetime','ringtime','logLookAgent','membername','UserId','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','RECALL','uniqueid','originate','channelAgent','timeout','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','clone','Global','scheduledAt','active','scheduledat','add','minutes','ListId','decrementTalkink','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','interface','mandatoryDisposition','buildAcw','queue','agentReadyId','not_inuse','status','reachable','push','getDiff','milliseconds','seconds','createBody','CampaignId','idContact','type','dialAnswer','calleridname','countglobal','callback','callbackuniqueid','callbackat','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-dialurl','xmd-dialtimeout','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agi'];(function(_0x184654,_0x264cc3){var _0x26aeb4=function(_0x28b9a4){while(--_0x28b9a4){_0x184654['push'](_0x184654['shift']());}};_0x26aeb4(++_0x264cc3);}(_0xaaa1,0x9b));var _0x1aaa=function(_0x3917c0,_0x32034d){_0x3917c0=_0x3917c0-0x0;var _0x4c9d0c=_0xaaa1[_0x3917c0];return _0x4c9d0c;};'use strict';var util=require(_0x1aaa('0x0'));var _=require(_0x1aaa('0x1'));var moment=require(_0x1aaa('0x2'));var logger=require('../../../../config/logger')(_0x1aaa('0x3'));var ipAgi=process[_0x1aaa('0x4')][_0x1aaa('0x5')]||_0x1aaa('0x6');function getSeconds(_0x25c954,_0x1d374f){var _0x1ac16e=moment(_0x25c954)['milliseconds'](0x0);var _0x27aa7b=moment(_0x1d374f)['milliseconds'](0x0);return _0x1ac16e[_0x1aaa('0x7')](_0x27aa7b,'seconds');}exports['loggerCatch']=function(_0x42fe8e){return function(_0x5e3434){logger[_0x1aaa('0x8')](_0x42fe8e,util[_0x1aaa('0x9')](_0x5e3434,{'showHidden':![],'depth':null}));};};exports[_0x1aaa('0xa')]=function(_0x423eec,_0x3da5b9){logger[_0x1aaa('0xb')](_0x423eec,util[_0x1aaa('0x9')](_0x3da5b9,{'showHidden':![],'depth':null}));};exports['loggerError']=function(_0x502c82,_0x20bddb){logger['error'](_0x502c82,util[_0x1aaa('0x9')](_0x20bddb,{'showHidden':![],'depth':null}));};exports[_0x1aaa('0xc')]=function(_0x112510){return function(_0x46b195){logger[_0x1aaa('0xb')](_0x112510,util[_0x1aaa('0x9')](_0x46b195,{'showHidden':![],'depth':null}));};};exports['message']=function(_0x2e4b83,_0x3a6277,_0x3b8162){return{'message':_0x2e4b83,'unlock':_0x3a6277,'active':_0x3b8162};};exports[_0x1aaa('0xd')]=function(_0x1bc88e,_0xf8a820,_0x259cf6){if(!_[_0x1aaa('0xe')](_0x259cf6)&&_0x1aaa('0xf')===typeof _0x259cf6&&!_[_0x1aaa('0x10')](_0x259cf6)){if(!_['isUndefined'](_0xf8a820)&&'string'===typeof _0xf8a820&&!_[_0x1aaa('0x10')](_0xf8a820)){return util[_0x1aaa('0x11')](_0x1aaa('0x12'),_0xf8a820,_0x259cf6);}return util[_0x1aaa('0x11')](_0x1aaa('0x12'),_0x259cf6,_0x259cf6);}if(!_[_0x1aaa('0xe')](_0x1bc88e)&&_0x1aaa('0xf')===typeof _0x1bc88e&&!_[_0x1aaa('0x10')](_0x1bc88e)){return _0x1bc88e;}return _0x1aaa('0x13');};exports[_0x1aaa('0x14')]=function(_0x3ad843){if(_[_0x1aaa('0x15')](_0x3ad843)){return![];}return _0x3ad843;};exports[_0x1aaa('0x16')]=function(_0x5618f1,_0x2eac04,_0x4dec9c,_0x4ad8a5,_0x2b2653,_0x554688){var _0x579fc5={'XMD-QUEUE':_0x2eac04[_0x1aaa('0x17')]?_0x2eac04[_0x1aaa('0x17')][_0x1aaa('0x18')]:'','XMD-CALLERID':_0x4ad8a5,'XMD-CALLERID-PREVIEW':_0x554688?util[_0x1aaa('0x11')](_0x1aaa('0x12'),_0x554688['calleridname'],_0x554688[_0x1aaa('0x19')]):_0x4ad8a5,'XMD-DIALID':_0x2b2653,'XMD-CONTACTID':_0x2eac04[_0x1aaa('0x1a')],'XMD-CDRTYPE':_0x1aaa('0x1b'),'CALLERID(all)':_0x4ad8a5,'XMD-VOICEQUEUEID':_0x2eac04[_0x1aaa('0x1c')],'XMD-DIALCHANNEL':_0x4dec9c,'XMD-DIALTIMEOUT':_0x5618f1[_0x1aaa('0x1d')]||0x1e,'XMD-DIALOPTIONS':util['format'](_0x1aaa('0x1e'),_0x5618f1['dialQueueProject2']?'g':'',_[_0x1aaa('0x10')](_0x5618f1['monitor_format'])?'':_0x1aaa('0x1f')),'XMD-DIALURL':_0x5618f1[_0x1aaa('0x20')]||'','XMD-AGI':_0x5618f1[_0x1aaa('0x21')]?util[_0x1aaa('0x11')](_0x1aaa('0x22'),ipAgi,_0x5618f1['dialQueueProject']):_0x1aaa('0x23'),'XMD-AGIAFTER':_0x5618f1[_0x1aaa('0x24')]?util[_0x1aaa('0x11')](_0x1aaa('0x22'),ipAgi,_0x5618f1[_0x1aaa('0x24')]):_0x1aaa('0x23'),'XMD-ORIGINATECALLERIDNUM':_0x554688?_0x554688[_0x1aaa('0x25')]:'','XMD-ORIGINATECALLERIDNAME':_0x554688?_0x554688[_0x1aaa('0x26')]:'','XMD-DESTINATION':_0x1aaa('0x27')};if(!_[_0x1aaa('0x10')](_0x5618f1[_0x1aaa('0x28')])){_0x579fc5[util[_0x1aaa('0x11')]('%s','_XCALLY_MIXMONITOR_FORMAT')]=_0x5618f1[_0x1aaa('0x28')];_0x579fc5[util[_0x1aaa('0x11')]('%s',_0x1aaa('0x29'))]=_0x2b2653;}if(_0x2eac04&&_0x2eac04[_0x1aaa('0x2a')]){for(var _0x333036 in _0x2eac04['Contact']){if(_0x2eac04[_0x1aaa('0x2a')][_0x1aaa('0x2b')](_0x333036)){if(!_['isNil'](_0x2eac04['Contact'][_0x333036])&&_0x333036!=='id'&&_0x333036!==_0x1aaa('0x2c')&&_0x333036!==_0x1aaa('0x2d')&&_0x333036!=='updatedAt'){_0x579fc5[util[_0x1aaa('0x11')](_0x1aaa('0x2e'),_0x1aaa('0x2f'),_['toUpper'](_0x333036))]=_0x2eac04[_0x1aaa('0x2a')][_0x333036];}}}}return _0x579fc5;};exports[_0x1aaa('0x30')]=function(_0xe492f9){var _0x47ae64={};for(var _0x4f3b15 in _0xe492f9){if(_0xe492f9[_0x1aaa('0x2b')](_0x4f3b15)){_0x47ae64[util[_0x1aaa('0x11')]('%s',_[_0x1aaa('0x31')](_0x4f3b15))]=_0xe492f9[_0x4f3b15];}}return{'variables':_0x47ae64};};exports[_0x1aaa('0x32')]=function(_0x463d80,_0x4d47d4){if(!_[_0x1aaa('0x15')](_0x463d80)){if(_0x463d80[_0x1aaa('0x2b')]('originated')){if(_0x463d80[_0x1aaa('0x33')]>0x0){_0x463d80[_0x1aaa('0x33')]-=0x1;}else{logger['error'](_0x1aaa('0x34'),_0x4d47d4);}}}else{logger['error']('[updateOriginated]\x20is\x20null\x20or\x20undefined',_0x4d47d4);}};exports[_0x1aaa('0x35')]=function(_0x4d4cae){var _0x555623=moment()['format'](_0x1aaa('0x36'));_0x4d4cae[_0x1aaa('0x37')]=0xd;_0x4d4cae[_0x1aaa('0x38')]=_0x1aaa('0x39');_0x4d4cae[_0x1aaa('0x3a')]=_0x555623;_0x4d4cae['responsetime']=_0x555623;_0x4d4cae[_0x1aaa('0x3b')]=_0x555623;};exports[_0x1aaa('0x3c')]=function(_0x433e0b,_0x5d2947,_0x1a2fb4){var _0x4eebb2=moment()[_0x1aaa('0x11')]('YYYY-MM-DD\x20HH:mm:ss');_0x433e0b[_0x1aaa('0x37')]=_0x5d2947;_0x433e0b[_0x1aaa('0x38')]=_0x1a2fb4;_0x433e0b[_0x1aaa('0x3d')]=_0x4eebb2;_0x433e0b[_0x1aaa('0x3e')]=getSeconds(_0x433e0b['responsetime'],_0x433e0b[_0x1aaa('0x3a')]);};exports[_0x1aaa('0x3f')]=function(_0x51daf3,_0x2e56d0,_0x17ab19){_0x51daf3[_0x1aaa('0x40')]=_0x2e56d0;_0x51daf3[_0x1aaa('0x41')]=_0x17ab19;};exports[_0x1aaa('0x42')]=function(_0x1bbefe,_0x4d94a9,_0x1cee16){var _0x9dfc42=moment()[_0x1aaa('0x11')](_0x1aaa('0x36'));_0x1bbefe[_0x1aaa('0x37')]=_0x4d94a9;_0x1bbefe[_0x1aaa('0x38')]=_0x1cee16;_0x1bbefe[_0x1aaa('0x3d')]=_0x1bbefe['responsetime']?_0x1bbefe['responsetime']:_0x9dfc42;_0x1bbefe[_0x1aaa('0x3b')]=_0x1bbefe[_0x1aaa('0x3b')]?_0x1bbefe[_0x1aaa('0x3b')]:_0x9dfc42;_0x1bbefe[_0x1aaa('0x3e')]=getSeconds(_0x1bbefe[_0x1aaa('0x3d')]||0x0,_0x1bbefe['starttime']||0x0);_0x1bbefe[_0x1aaa('0x43')]=_0x1bbefe[_0x1aaa('0x44')]?getSeconds(_0x1bbefe['endtime'],_0x1bbefe['answertime']):0x0;};exports[_0x1aaa('0x45')]=function(_0x4e5809){return _0x4e5809===_0x1aaa('0x46');};exports[_0x1aaa('0x47')]=function(_0x4cd097,_0x34afb6,_0x2542cd,_0x372926,_0x9d7a0){var _0x3fee0a=_0x372926?_0x1aaa('0x48'):_0x4cd097['calleridname'];_0x3fee0a=_0x9d7a0?'BOOKED':_0x3fee0a;return{'actionid':_0x4cd097[_0x1aaa('0x49')],'action':_0x1aaa('0x4a'),'channel':_0x4cd097[_0x1aaa('0x4b')],'callerid':util[_0x1aaa('0x11')](_0x1aaa('0x12'),_0x3fee0a,_0x4cd097[_0x1aaa('0x19')]),'Exten':_0x1aaa('0x27'),'Context':'from-sip','Priority':'1','variable':_0x2542cd,'timeout':(_0x34afb6[_0x1aaa('0x4c')]||0x1e)*0x3e8,'async':!![],'channelid':_0x4cd097[_0x1aaa('0x49')]};};exports[_0x1aaa('0x4d')]=function(_0x3c8b58){return _0x3c8b58[_0x1aaa('0x4e')]+_0x3c8b58[_0x1aaa('0x4f')]+_0x3c8b58[_0x1aaa('0x50')]+_0x3c8b58['countagentrejectretry']+_0x3c8b58['countnosuchnumberretry'];};exports['cloneAction']=function(_0x5072df){var _0xe6e4f6=_[_0x1aaa('0x51')](_0x5072df);_0xe6e4f6['state']=0xf;_0xe6e4f6[_0x1aaa('0x38')]=_0x1aaa('0x52');return _0xe6e4f6;};exports[_0x1aaa('0x53')]=function(_0x567efa,_0x247bba,_0x4629b1){var _0x4c52ea={};_0x4c52ea[_0x247bba]=_0x567efa[_0x247bba];_0x4c52ea[_0x1aaa('0x54')]=![];_0x4c52ea[_0x1aaa('0x55')]=moment()[_0x1aaa('0x56')](_0x4629b1,_0x1aaa('0x57'))['format']('YYYY-MM-DD\x20HH:mm:ss');_0x4c52ea[_0x1aaa('0x1a')]=_0x567efa[_0x1aaa('0x1a')];_0x4c52ea[_0x1aaa('0x58')]=_0x567efa[_0x1aaa('0x58')];_0x4c52ea['VoiceQueueId']=_0x567efa[_0x1aaa('0x1c')]||undefined;return _0x4c52ea;};exports[_0x1aaa('0x59')]=function(_0x22cf80,_0x4b8fb8){if(!_[_0x1aaa('0x15')](_0x22cf80)){if(_0x22cf80[_0x1aaa('0x5a')]>0x0){_0x22cf80[_0x1aaa('0x5a')]-=0x1;}else{logger['error'](_0x4b8fb8,_0x1aaa('0x5b'));}}else{logger['error'](_0x4b8fb8,_0x1aaa('0x5c'));}};exports[_0x1aaa('0x5d')]=function(_0x4ceb7b){if(_0x4ceb7b<=0x0){return!![];}return![];};exports[_0x1aaa('0x5e')]=function(_0x3c7196,_0x249670,_0x4d4c4a){_0x3c7196[_0x1aaa('0x5f')]=_0x249670;_0x3c7196[_0x1aaa('0x18')]=_0x3c7196['queue'];_0x3c7196[_0x1aaa('0x60')]=_0x3c7196[_0x1aaa('0x4b')];if(_0x4d4c4a){_0x3c7196[_0x1aaa('0x61')]=_0x4d4c4a['mandatoryDisposition'];}return _0x3c7196;};exports[_0x1aaa('0x62')]=function(_0x5b49f7){var _0x48393d={};_0x48393d[_0x1aaa('0x63')]=_0x5b49f7[_0x1aaa('0x63')];_0x48393d[_0x1aaa('0x60')]=_0x5b49f7[_0x1aaa('0x4b')];_0x48393d[_0x1aaa('0x49')]=_0x5b49f7['uniqueid'];return _0x48393d;};exports[_0x1aaa('0x64')]=function(_0x2f9b5f){var _0x3b787c=[];for(var _0x24d8db in _0x2f9b5f){if(_0x2f9b5f[_0x1aaa('0x2b')](_0x24d8db)){if(!_[_0x1aaa('0x15')](_0x2f9b5f[_0x24d8db])&&_0x2f9b5f[_0x24d8db][_0x1aaa('0x37')]===_0x1aaa('0x65')&&_0x2f9b5f[_0x24d8db][_0x1aaa('0x66')]===_0x1aaa('0x67')){_0x3b787c[_0x1aaa('0x68')](_0x2f9b5f[_0x24d8db]['id']);}}}return _0x3b787c;};exports[_0x1aaa('0x69')]=function(_0x1d37ee){var _0x30e5cf=moment()[_0x1aaa('0x6a')](0x0);var _0x3394c0=moment(_0x1d37ee)[_0x1aaa('0x6a')](0x0);return _0x30e5cf[_0x1aaa('0x7')](_0x3394c0,_0x1aaa('0x6b'));};exports[_0x1aaa('0x6c')]=function(_0x28cec7){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x28cec7[_0x1aaa('0x1a')],'ListId':_0x28cec7[_0x1aaa('0x58')],'VoiceQueueId':_0x28cec7[_0x1aaa('0x1c')]||undefined,'CampaignId':_0x28cec7[_0x1aaa('0x6d')]||undefined};};exports['filterKey']=function(_0x2efb65){if(_0x2efb65===_0x1aaa('0x49')||_0x2efb65===_0x1aaa('0x6e')||_0x2efb65===_0x1aaa('0x63')||_0x2efb65===_0x1aaa('0x6f')||_0x2efb65==='campaigntype'||_0x2efb65===_0x1aaa('0x70')||_0x2efb65===_0x1aaa('0x40')||_0x2efb65==='channelAgent'||_0x2efb65===_0x1aaa('0x71')||_0x2efb65===_0x1aaa('0x54')||_0x2efb65===_0x1aaa('0x19')||_0x2efb65===_0x1aaa('0x55')||_0x2efb65===_0x1aaa('0x4e')||_0x2efb65===_0x1aaa('0x4f')||_0x2efb65==='countnoanswerretry'||_0x2efb65===_0x1aaa('0x72')||_0x2efb65===_0x1aaa('0x73')||_0x2efb65===_0x1aaa('0x74')||_0x2efb65===_0x1aaa('0x75')||_0x2efb65===_0x1aaa('0x76')||_0x2efb65==='ContactId'||_0x2efb65===_0x1aaa('0x58')||_0x2efb65===_0x1aaa('0x41')||_0x2efb65===_0x1aaa('0x1c')||_0x2efb65===_0x1aaa('0x77')||_0x2efb65===_0x1aaa('0x78')||_0x2efb65===_0x1aaa('0x79')||_0x2efb65===_0x1aaa('0x7a')||_0x2efb65==='xmd-listid'||_0x2efb65===_0x1aaa('0x7b')||_0x2efb65===_0x1aaa('0x7c')||_0x2efb65==='xmd-dialoptions'||_0x2efb65===_0x1aaa('0x7d')||_0x2efb65===_0x1aaa('0x7e')||_0x2efb65===_0x1aaa('0x7f')||_0x2efb65===_0x1aaa('0x80')||_0x2efb65===_0x1aaa('0x81')||_0x2efb65==='xmd-agiafter'||_0x2efb65===_0x1aaa('0x82')||_0x2efb65===_0x1aaa('0x83')||_0x2efb65===_0x1aaa('0x84')||_0x2efb65===_0x1aaa('0x85')||_0x2efb65===_0x1aaa('0x86')||_0x2efb65===_0x1aaa('0x87')||_0x2efb65===_0x1aaa('0x88')||_0x2efb65===_0x1aaa('0x89')||_0x2efb65===_0x1aaa('0x8a')||_0x2efb65===_0x1aaa('0x83')||_0x2efb65===_0x1aaa('0x84')||_0x2efb65===_0x1aaa('0x85')||_0x2efb65===_0x1aaa('0x86')||_0x2efb65==='rtpaudioqosloss'||_0x2efb65===_0x1aaa('0x88')||_0x2efb65==='rtpaudioqosrtt'||_0x2efb65===_0x1aaa('0x8a')||_0x2efb65==='bridgepeer'||_0x2efb65===_0x1aaa('0x8b')||_0x2efb65===_0x1aaa('0x37')||_0x2efb65===_0x1aaa('0x38')){return![];}return!![];};exports[_0x1aaa('0x8c')]=function(_0x538c2b,_0x9891eb){var _0x4af143,_0x19c24e,_0x3b5bb6;if(_0x9891eb<=0x0){_0x9891eb=0x1;}_0x4af143=new RegExp('\x5cw{0,'+_0x9891eb+'}$');_0x19c24e=Math[_0x1aaa('0x8d')](0xa,_0x9891eb-0x1);_0x3b5bb6=Math[_0x1aaa('0x8d')](0xa,_0x9891eb)-0x1;return util['format']('%s',_['replace'](_0x538c2b,_0x4af143,_['random'](_0x19c24e,_0x3b5bb6)));};exports['extractCalleridName']=function(_0x42cdd0){var _0x32f7cf=_0x42cdd0[_0x1aaa('0x8e')](/"(.*?)"/);return _0x32f7cf?_0x32f7cf[0x1]:_0x42cdd0;};exports['extractCalleridNumber']=function(_0x3850d4){var _0x2cd5f0=_0x3850d4[_0x1aaa('0x8e')](/<(.*?)>/);return _0x2cd5f0?_0x2cd5f0[0x1]:_0x3850d4;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb609=['string','number','boolean','queuepause','reload','voicechannel','voicequeuechannelhangup','voicequeuechannelredirect','queueadd'];(function(_0x4cf98e,_0xba4b79){var _0x1623ac=function(_0x459bc0){while(--_0x459bc0){_0x4cf98e['push'](_0x4cf98e['shift']());}};_0x1623ac(++_0xba4b79);}(_0xb609,0xf2));var _0x9b60=function(_0x224884,_0x44e534){_0x224884=_0x224884-0x0;var _0x4dc20a=_0xb609[_0x224884];return _0x4dc20a;};'use strict';exports[_0x9b60('0x0')]={'queue':{'type':_0x9b60('0x1'),'required':!![]},'interface':{'type':_0x9b60('0x1'),'required':!![]},'membername':{'type':'string','required':!![]},'penalty':{'type':_0x9b60('0x2'),'required':![]},'paused':{'type':_0x9b60('0x3'),'required':![]}};exports['queueremove']={'queue':{'type':_0x9b60('0x1'),'required':!![]},'interface':{'type':_0x9b60('0x1'),'required':!![]}};exports[_0x9b60('0x4')]={'interface':{'type':_0x9b60('0x1'),'required':!![]},'paused':{'type':'boolean'},'reason':{'type':'string','required':![]}};exports[_0x9b60('0x5')]={'module':{'type':_0x9b60('0x1'),'required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':_0x9b60('0x1'),'required':!![]}};exports[_0x9b60('0x6')]={'uniqueid':{'type':_0x9b60('0x1'),'required':!![]},'filename':{'type':'string'},'format':{'type':'string'},'mixmonitorid':{'type':'string'}};exports[_0x9b60('0x7')]={'uniqueid':{'type':_0x9b60('0x1'),'required':!![]}};exports[_0x9b60('0x8')]={'uniqueid':{'type':_0x9b60('0x1'),'required':!![]},'exten':{'type':_0x9b60('0x1'),'required':!![]},'context':{'type':_0x9b60('0x1')}};
\ No newline at end of file
+var _0x181c=['queueadd','string','queueremove','queuepause','boolean','reload','voicechannel','voicequeuechannelhangup'];(function(_0x4f23bd,_0x160dba){var _0x2d9036=function(_0x15ce19){while(--_0x15ce19){_0x4f23bd['push'](_0x4f23bd['shift']());}};_0x2d9036(++_0x160dba);}(_0x181c,0x90));var _0xc181=function(_0x24392f,_0x15a3e5){_0x24392f=_0x24392f-0x0;var _0x591e33=_0x181c[_0x24392f];return _0x591e33;};'use strict';exports[_0xc181('0x0')]={'queue':{'type':_0xc181('0x1'),'required':!![]},'interface':{'type':'string','required':!![]},'membername':{'type':_0xc181('0x1'),'required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':'boolean','required':![]}};exports[_0xc181('0x2')]={'queue':{'type':'string','required':!![]},'interface':{'type':_0xc181('0x1'),'required':!![]}};exports[_0xc181('0x3')]={'interface':{'type':_0xc181('0x1'),'required':!![]},'paused':{'type':_0xc181('0x4')},'reason':{'type':_0xc181('0x1'),'required':![]}};exports[_0xc181('0x5')]={'module':{'type':'string','required':![]}};exports['voicequeuechannel']={'uniqueid':{'type':_0xc181('0x1'),'required':!![]}};exports[_0xc181('0x6')]={'uniqueid':{'type':'string','required':!![]},'filename':{'type':'string'},'format':{'type':_0xc181('0x1')},'mixmonitorid':{'type':'string'}};exports[_0xc181('0x7')]={'uniqueid':{'type':_0xc181('0x1'),'required':!![]}};exports['voicequeuechannelredirect']={'uniqueid':{'type':_0xc181('0x1'),'required':!![]},'exten':{'type':_0xc181('0x1'),'required':!![]},'context':{'type':_0xc181('0x1')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9749=['initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','initVoiceQueueReports','groupBy','uniqueid','queue','queuecallerexit','diff','queuecallerjoinAt','seconds','queuecallercompleteAt','queuecallerabandonAt','queuecallercomplete','initVoiceCallReports','duration','disposition','billableseconds','initCampaigns','SquareProject','initVoiceExtensions','voiceExtensions','initCampaignHopperHistory','merge','faxAccounts','exports','bluebird','util','lodash','moment','../model/trunk','../model/trigger','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/sugarcrmAccount','../model/vtigerAccount','../model/servicenowAccount','../model/freshsalesAccount','agents','trunks','voiceQueues','triggers','campaigns','templates','outbound','queueChannels','outboundChannels','timers','settings','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','mapKeys','hasOwnProperty','format','SIP/%s','isNil','name','answered','sumHoldTime','sumDuration','sumBillable','ivrTotalCallsDays','ivrAnswerCallsDay','isEmpty','total','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','queueStatusComplete','prototype','mergeFromDatabase','interface','isUndefined','initTelephones','telephones','length','initTrunks','initVoiceQueues','initTriggers','initTemplates','initSalesforceAccounts','initDeskAccounts','initSugarcrmAccounts'];(function(_0x37a529,_0x2f5abe){var _0x168c9a=function(_0x3a8253){while(--_0x3a8253){_0x37a529['push'](_0x37a529['shift']());}};_0x168c9a(++_0x2f5abe);}(_0x9749,0xeb));var _0x9974=function(_0x37cbe5,_0x2f4cf9){_0x37cbe5=_0x37cbe5-0x0;var _0x4490f0=_0x9749[_0x37cbe5];return _0x4490f0;};'use strict';var BPromise=require(_0x9974('0x0'));var util=require(_0x9974('0x1'));var _=require(_0x9974('0x2'));var moment=require(_0x9974('0x3'));var Agent=require('../model/agent');var Telephone=require('../model/telephone');var Trunk=require(_0x9974('0x4'));var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0x9974('0x5'));var Template=require('../model/template');var Campaign=require(_0x9974('0x6'));var VoiceExtension=require(_0x9974('0x7'));var ZendeskAccount=require(_0x9974('0x8'));var SalesforceAccount=require(_0x9974('0x9'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x9974('0xa'));var ZohoAccount=require('../model/zohoAccount');var DeskAccount=require('../model/deskAccount');var VtigerAccount=require(_0x9974('0xb'));var ServicenowAccount=require(_0x9974('0xc'));var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require(_0x9974('0xd'));var FaxAccount=require('../model/faxAccount');var Realtime=function(){this[_0x9974('0xe')]={};this['telephones']={};this[_0x9974('0xf')]={};this[_0x9974('0x10')]={};this[_0x9974('0x11')]={};this[_0x9974('0x12')]={};this[_0x9974('0x13')]={};this[_0x9974('0x14')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this['channels']={};this[_0x9974('0x15')]={};this[_0x9974('0x16')]={};this[_0x9974('0x17')]={};this[_0x9974('0x18')]={};this[_0x9974('0x19')]={};this[_0x9974('0x1a')]={};this[_0x9974('0x1b')]={};this[_0x9974('0x1c')]={};this[_0x9974('0x1d')]={};this[_0x9974('0x1e')]={};this[_0x9974('0x1f')]={};this[_0x9974('0x20')]={};this[_0x9974('0x21')]={};this[_0x9974('0x22')]={};this['faxAccounts']={};};function freeIsNotKey(_0x479eab,_0x1f9d5c,_0x3a49bd){var _0xdc095b=_[_0x9974('0x23')](_0x479eab,function(_0x449541,_0x5ef246){return _0x449541[_0x3a49bd];});for(var _0x50f9cc in _0x1f9d5c){if(_0x1f9d5c[_0x9974('0x24')](_0x50f9cc)){if(!_0xdc095b[_0x50f9cc]){delete _0x1f9d5c[_0x50f9cc];}}}}function freeIsNotKeySip(_0x1c9904,_0x2caa05){var _0xd5ce43=_[_0x9974('0x23')](_0x1c9904,function(_0x6b712a,_0x52159e){return util[_0x9974('0x25')](_0x9974('0x26'),_0x6b712a['name']);});for(var _0x37b2fd in _0x2caa05){if(_0x2caa05[_0x9974('0x24')](_0x37b2fd)){if(!_0xd5ce43[_0x37b2fd]){delete _0x2caa05[_0x37b2fd];}}}}function freeIsNotKeyAgent(_0x852c50,_0x219f68){var _0x16522b=_[_0x9974('0x23')](_0x852c50,function(_0x2a3ddd,_0x1f0ec1){var _0x1ead68=_[_0x9974('0x27')](_0x2a3ddd['interface'])?util[_0x9974('0x25')](_0x9974('0x26'),_0x2a3ddd[_0x9974('0x28')]):_0x2a3ddd['interface'];return _0x1ead68;});for(var _0x13ae6a in _0x219f68){if(_0x219f68['hasOwnProperty'](_0x13ae6a)){if(!_0x16522b[_0x13ae6a]){delete _0x219f68[_0x13ae6a];}}}}function clearVoiceCallReports(_0x4edde4){_0x4edde4['total']=0x0;_0x4edde4[_0x9974('0x29')]=0x0;_0x4edde4[_0x9974('0x2a')]=0x0;_0x4edde4[_0x9974('0x2b')]=0x0;_0x4edde4[_0x9974('0x2c')]=0x0;}function clearCampaigns(_0x14cd7c){if(!_['isEmpty'](_0x14cd7c)){for(var _0x4898cd in _0x14cd7c){if(_0x14cd7c[_0x9974('0x24')](_0x4898cd)){_0x14cd7c[_0x4898cd][_0x9974('0x2d')]=0x0;_0x14cd7c[_0x4898cd][_0x9974('0x2e')]=0x0;}}}}function clearVoiceQueues(_0x26432c){if(!_[_0x9974('0x2f')](_0x26432c)){for(var _0x4569c5 in _0x26432c){if(_0x26432c['hasOwnProperty'](_0x4569c5)){_0x26432c[_0x4569c5][_0x9974('0x30')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x29')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x31')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x32')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x2a')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x2b')]=0x0;_0x26432c[_0x4569c5]['sumBillable']=0x0;_0x26432c[_0x4569c5][_0x9974('0x33')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x34')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x35')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x36')]=0x0;_0x26432c[_0x4569c5]['outboundNoSuchCallsDay']=0x0;_0x26432c[_0x4569c5][_0x9974('0x37')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x38')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x39')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x3a')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x3b')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x3c')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x3d')]=0x0;_0x26432c[_0x4569c5][_0x9974('0x33')]=0x0;_0x26432c[_0x4569c5]['outboundAnswerCallsDay']=0x0;_0x26432c[_0x4569c5][_0x9974('0x3e')]=!![];}}}}Realtime[_0x9974('0x3f')][_0x9974('0x40')]=function(_0x943ef2,_0x11ad1a){for(var _0xf3c897 in _0x11ad1a){if(_0x943ef2[_0x9974('0x24')](_0xf3c897)){_0x943ef2[_0xf3c897]=_0x11ad1a[_0xf3c897];}}};Realtime['prototype']['initAgents']=function(){var _0x2bada1=this;return function(_0x1ce991){if(_0x1ce991){freeIsNotKeyAgent(_0x1ce991,_0x2bada1['agents']);for(var _0x50b22e=0x0,_0x4a1066={},_0xebbaf6={};_0x50b22e<_0x1ce991['length'];_0x50b22e+=0x1){_0x4a1066=_0x1ce991[_0x50b22e];var _0x552325=_[_0x9974('0x27')](_0x4a1066['interface'])?util['format'](_0x9974('0x26'),_0x4a1066[_0x9974('0x28')]):_0x4a1066[_0x9974('0x41')];if(_[_0x9974('0x42')](_0x2bada1[_0x9974('0xe')][_0x552325])){_0x2bada1['agents'][_0x552325]=new Agent(_0x4a1066);}else{_0x2bada1[_0x9974('0x40')](_0x2bada1[_0x9974('0xe')][_0x552325],_0x4a1066);}}}return _0x2bada1[_0x9974('0xe')];};};Realtime[_0x9974('0x3f')][_0x9974('0x43')]=function(){var _0x4f147c=this;return function(_0x42620e){if(_0x42620e){freeIsNotKeySip(_0x42620e,_0x4f147c[_0x9974('0x44')]);for(var _0x13d608=0x0,_0x1bee07={},_0x587908={};_0x13d608<_0x42620e[_0x9974('0x45')];_0x13d608+=0x1){_0x1bee07=_0x42620e[_0x13d608];if(_[_0x9974('0x42')](_0x4f147c[_0x9974('0x44')][util[_0x9974('0x25')](_0x9974('0x26'),_0x1bee07['name'])])){_0x4f147c[_0x9974('0x44')][util['format'](_0x9974('0x26'),_0x1bee07[_0x9974('0x28')])]=new Telephone(_0x1bee07);}else{_0x4f147c[_0x9974('0x40')](_0x4f147c[_0x9974('0x44')][util[_0x9974('0x25')](_0x9974('0x26'),_0x1bee07['name'])],_0x1bee07);}}}return _0x4f147c[_0x9974('0x44')];};};Realtime[_0x9974('0x3f')][_0x9974('0x46')]=function(){var _0x989e0d=this;return function(_0x42a06b){if(_0x42a06b){freeIsNotKeySip(_0x42a06b,_0x989e0d['trunks']);for(var _0x24c927=0x0,_0x383130={},_0x32c4be={};_0x24c927<_0x42a06b[_0x9974('0x45')];_0x24c927+=0x1){_0x383130=_0x42a06b[_0x24c927];if(_[_0x9974('0x42')](_0x989e0d['trunks'][util[_0x9974('0x25')](_0x9974('0x26'),_0x383130[_0x9974('0x28')])])){_0x989e0d[_0x9974('0xf')][util[_0x9974('0x25')]('SIP/%s',_0x383130[_0x9974('0x28')])]=new Trunk(_0x383130);}else{_0x989e0d[_0x9974('0x40')](_0x989e0d[_0x9974('0xf')][util[_0x9974('0x25')](_0x9974('0x26'),_0x383130[_0x9974('0x28')])],_0x383130);}}}return _0x989e0d[_0x9974('0xf')];};};Realtime['prototype'][_0x9974('0x47')]=function(){var _0x5a0b1b=this;return function(_0x4f07ad){if(_0x4f07ad){freeIsNotKey(_0x4f07ad,_0x5a0b1b[_0x9974('0x10')],_0x9974('0x28'));for(var _0x331a8c=0x0,_0xe75f7={},_0x4dfe78={};_0x331a8c<_0x4f07ad['length'];_0x331a8c+=0x1){_0xe75f7=_0x4f07ad[_0x331a8c];if(_[_0x9974('0x42')](_0x5a0b1b[_0x9974('0x10')][_0xe75f7[_0x9974('0x28')]])){_0x5a0b1b[_0x9974('0x10')][_0xe75f7[_0x9974('0x28')]]=new VoiceQueue(_0xe75f7);}else{_0x5a0b1b[_0x9974('0x40')](_0x5a0b1b[_0x9974('0x10')][_0xe75f7[_0x9974('0x28')]],_0xe75f7);}}}return _0x5a0b1b[_0x9974('0x10')];};};Realtime[_0x9974('0x3f')][_0x9974('0x48')]=function(){var _0x501e5d=this;return function(_0x443c35){if(_0x443c35){freeIsNotKey(_0x443c35,_0x501e5d['triggers'],'id');for(var _0x200f38=0x0,_0x3503ca={},_0x16ded8={};_0x200f38<_0x443c35[_0x9974('0x45')];_0x200f38+=0x1){_0x3503ca=_0x443c35[_0x200f38];if(_['isUndefined'](_0x501e5d[_0x9974('0x11')][_0x3503ca['id']])){_0x501e5d[_0x9974('0x11')][_0x3503ca['id']]=new Trigger(_0x3503ca);}else{_0x501e5d[_0x9974('0x40')](_0x501e5d[_0x9974('0x11')][_0x3503ca['id']],_0x3503ca);}}}return _0x501e5d['triggers'];};};Realtime[_0x9974('0x3f')][_0x9974('0x49')]=function(){var _0x41b12d=this;return function(_0x3d5602){if(_0x3d5602){freeIsNotKey(_0x3d5602,_0x41b12d[_0x9974('0x13')],'id');for(var _0x4e7f7c=0x0,_0x579707={},_0xfb8f23={};_0x4e7f7c<_0x3d5602[_0x9974('0x45')];_0x4e7f7c+=0x1){_0x579707=_0x3d5602[_0x4e7f7c];if(_[_0x9974('0x42')](_0x41b12d[_0x9974('0x13')][_0x579707['id']])){_0x41b12d['templates'][_0x579707['id']]=new Template(_0x579707);}else{_0x41b12d['mergeFromDatabase'](_0x41b12d['templates'][_0x579707['id']],_0x579707);}}}return _0x41b12d['templates'];};};Realtime[_0x9974('0x3f')]['initZendeskAccounts']=function(){var _0x4a836d=this;return function(_0x351c10){if(_0x351c10){freeIsNotKey(_0x351c10,_0x4a836d[_0x9974('0x19')],'id');for(var _0x125812=0x0,_0x5a1275={},_0x18dc2d={};_0x125812<_0x351c10[_0x9974('0x45')];_0x125812+=0x1){_0x5a1275=_0x351c10[_0x125812];if(_[_0x9974('0x42')](_0x4a836d['zendeskAccounts'][_0x5a1275['id']])){_0x4a836d[_0x9974('0x19')][_0x5a1275['id']]=new ZendeskAccount(_0x5a1275);}else{_0x4a836d[_0x9974('0x40')](_0x4a836d[_0x9974('0x19')][_0x5a1275['id']],_0x5a1275);}}}return _0x4a836d[_0x9974('0x19')];};};Realtime[_0x9974('0x3f')][_0x9974('0x4a')]=function(){var _0x3ec194=this;return function(_0x5be8b0){if(_0x5be8b0){freeIsNotKey(_0x5be8b0,_0x3ec194['salesforceAccounts'],'id');for(var _0x9dc786=0x0,_0x2a4e30={},_0x2e0ab9={};_0x9dc786<_0x5be8b0[_0x9974('0x45')];_0x9dc786+=0x1){_0x2a4e30=_0x5be8b0[_0x9dc786];if(_[_0x9974('0x42')](_0x3ec194['salesforceAccounts'][_0x2a4e30['id']])){_0x3ec194[_0x9974('0x1a')][_0x2a4e30['id']]=new SalesforceAccount(_0x2a4e30);}else{_0x3ec194[_0x9974('0x40')](_0x3ec194['salesforceAccounts'][_0x2a4e30['id']],_0x2a4e30);}}}return _0x3ec194[_0x9974('0x1a')];};};Realtime[_0x9974('0x3f')]['initFreshdeskAccounts']=function(){var _0x4fb182=this;return function(_0x848bda){if(_0x848bda){freeIsNotKey(_0x848bda,_0x4fb182[_0x9974('0x1c')],'id');for(var _0x4263df=0x0,_0x5e0d4f={},_0x48b2fb={};_0x4263df<_0x848bda['length'];_0x4263df+=0x1){_0x5e0d4f=_0x848bda[_0x4263df];if(_[_0x9974('0x42')](_0x4fb182[_0x9974('0x1c')][_0x5e0d4f['id']])){_0x4fb182[_0x9974('0x1c')][_0x5e0d4f['id']]=new FreshdeskAccount(_0x5e0d4f);}else{_0x4fb182[_0x9974('0x40')](_0x4fb182[_0x9974('0x1c')][_0x5e0d4f['id']],_0x5e0d4f);}}}return _0x4fb182[_0x9974('0x1c')];};};Realtime[_0x9974('0x3f')]['initZohoAccounts']=function(){var _0x5511ac=this;return function(_0x2484a3){if(_0x2484a3){freeIsNotKey(_0x2484a3,_0x5511ac[_0x9974('0x1d')],'id');for(var _0x3fd370=0x0,_0x12cd61={},_0x443c5c={};_0x3fd370<_0x2484a3[_0x9974('0x45')];_0x3fd370+=0x1){_0x12cd61=_0x2484a3[_0x3fd370];if(_[_0x9974('0x42')](_0x5511ac[_0x9974('0x1d')][_0x12cd61['id']])){_0x5511ac[_0x9974('0x1d')][_0x12cd61['id']]=new ZohoAccount(_0x12cd61);}else{_0x5511ac['mergeFromDatabase'](_0x5511ac[_0x9974('0x1d')][_0x12cd61['id']],_0x12cd61);}}}return _0x5511ac[_0x9974('0x1d')];};};Realtime[_0x9974('0x3f')][_0x9974('0x4b')]=function(){var _0x279206=this;return function(_0x40e51f){if(_0x40e51f){freeIsNotKey(_0x40e51f,_0x279206[_0x9974('0x1e')],'id');for(var _0x5f4bf8=0x0,_0x515b48={},_0x4e6460={};_0x5f4bf8<_0x40e51f[_0x9974('0x45')];_0x5f4bf8+=0x1){_0x515b48=_0x40e51f[_0x5f4bf8];if(_[_0x9974('0x42')](_0x279206[_0x9974('0x1e')][_0x515b48['id']])){_0x279206[_0x9974('0x1e')][_0x515b48['id']]=new DeskAccount(_0x515b48);}else{_0x279206[_0x9974('0x40')](_0x279206[_0x9974('0x1e')][_0x515b48['id']],_0x515b48);}}}return _0x279206[_0x9974('0x1e')];};};Realtime['prototype'][_0x9974('0x4c')]=function(){var _0x31bce8=this;return function(_0x4fb63f){if(_0x4fb63f){freeIsNotKey(_0x4fb63f,_0x31bce8[_0x9974('0x1b')],'id');for(var _0x229118=0x0,_0x5d46d3={},_0x1efd0b={};_0x229118<_0x4fb63f['length'];_0x229118+=0x1){_0x5d46d3=_0x4fb63f[_0x229118];if(_[_0x9974('0x42')](_0x31bce8[_0x9974('0x1b')][_0x5d46d3['id']])){_0x31bce8[_0x9974('0x1b')][_0x5d46d3['id']]=new SugarcrmAccount(_0x5d46d3);}else{_0x31bce8[_0x9974('0x40')](_0x31bce8[_0x9974('0x1b')][_0x5d46d3['id']],_0x5d46d3);}}}return _0x31bce8[_0x9974('0x1b')];};};Realtime[_0x9974('0x3f')]['initVtigerAccounts']=function(){var _0x4449c2=this;return function(_0x2a613b){if(_0x2a613b){freeIsNotKey(_0x2a613b,_0x4449c2['vtigerAccounts'],'id');for(var _0x4868f7=0x0,_0xefd2b6={},_0x44bbfc={};_0x4868f7<_0x2a613b[_0x9974('0x45')];_0x4868f7+=0x1){_0xefd2b6=_0x2a613b[_0x4868f7];if(_[_0x9974('0x42')](_0x4449c2[_0x9974('0x1f')][_0xefd2b6['id']])){_0x4449c2[_0x9974('0x1f')][_0xefd2b6['id']]=new VtigerAccount(_0xefd2b6);}else{_0x4449c2['mergeFromDatabase'](_0x4449c2[_0x9974('0x1f')][_0xefd2b6['id']],_0xefd2b6);}}}return _0x4449c2[_0x9974('0x1f')];};};Realtime[_0x9974('0x3f')][_0x9974('0x4d')]=function(){var _0x5620ac=this;return function(_0x4d52d9){if(_0x4d52d9){freeIsNotKey(_0x4d52d9,_0x5620ac['servicenowAccounts'],'id');for(var _0x10f941=0x0,_0x4ce9dd={},_0x1537a7={};_0x10f941<_0x4d52d9[_0x9974('0x45')];_0x10f941+=0x1){_0x4ce9dd=_0x4d52d9[_0x10f941];if(_['isUndefined'](_0x5620ac[_0x9974('0x20')][_0x4ce9dd['id']])){_0x5620ac['servicenowAccounts'][_0x4ce9dd['id']]=new ServicenowAccount(_0x4ce9dd);}else{_0x5620ac['mergeFromDatabase'](_0x5620ac[_0x9974('0x20')][_0x4ce9dd['id']],_0x4ce9dd);}}}return _0x5620ac[_0x9974('0x20')];};};Realtime[_0x9974('0x3f')][_0x9974('0x4e')]=function(){var _0x1e807e=this;return function(_0x3bcb19){if(_0x3bcb19){freeIsNotKey(_0x3bcb19,_0x1e807e[_0x9974('0x21')],'id');for(var _0x147491=0x0,_0x3ec050={},_0x3d5748={};_0x147491<_0x3bcb19[_0x9974('0x45')];_0x147491+=0x1){_0x3ec050=_0x3bcb19[_0x147491];if(_['isUndefined'](_0x1e807e['dynamics365Accounts'][_0x3ec050['id']])){_0x1e807e[_0x9974('0x21')][_0x3ec050['id']]=new Dynamics365Account(_0x3ec050);}else{_0x1e807e[_0x9974('0x40')](_0x1e807e[_0x9974('0x21')][_0x3ec050['id']],_0x3ec050);}}}return _0x1e807e['dynamics365Accounts'];};};Realtime['prototype'][_0x9974('0x4f')]=function(){var _0x1841ac=this;return function(_0x5c2192){if(_0x5c2192){freeIsNotKey(_0x5c2192,_0x1841ac[_0x9974('0x22')],'id');for(var _0x5d252f=0x0,_0x238dbf={},_0x45d8d9={};_0x5d252f<_0x5c2192[_0x9974('0x45')];_0x5d252f+=0x1){_0x238dbf=_0x5c2192[_0x5d252f];if(_[_0x9974('0x42')](_0x1841ac[_0x9974('0x22')][_0x238dbf['id']])){_0x1841ac[_0x9974('0x22')][_0x238dbf['id']]=new FreshsalesAccount(_0x238dbf);}else{_0x1841ac['mergeFromDatabase'](_0x1841ac[_0x9974('0x22')][_0x238dbf['id']],_0x238dbf);}}}return _0x1841ac[_0x9974('0x22')];};};Realtime[_0x9974('0x3f')][_0x9974('0x50')]=function(){var _0x106d48=this;return function(_0x4798da){for(var _0x3e380d=0x0;_0x3e380d<_0x4798da['length'];_0x3e380d+=0x1){_['merge'](_0x106d48['voiceQueues'][_0x4798da[_0x3e380d][_0x9974('0x28')]],_0x4798da[_0x3e380d]);}return _0x106d48[_0x9974('0x10')];};};Realtime[_0x9974('0x3f')][_0x9974('0x51')]=function(){var _0x256e07=this;return function(_0x16a27c){clearVoiceQueues(_0x256e07[_0x9974('0x10')]);if(_0x16a27c){_0x16a27c=_[_0x9974('0x52')](_0x16a27c,_0x9974('0x53'));for(var _0x3a2e0f in _0x16a27c){if(_0x16a27c[_0x9974('0x24')](_0x3a2e0f)){var _0x544af2={};for(var _0x3f297e=0x0;_0x3f297e<_0x16a27c[_0x3a2e0f]['length'];_0x3f297e+=0x1){var _0xc81e0c=_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x54')];if(_0x256e07[_0x9974('0x10')][_0xc81e0c]){if(_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x55')]){_0x256e07[_0x9974('0x10')][_0xc81e0c]['unmanaged']+=0x1;}if(_0x16a27c[_0x3a2e0f][_0x3f297e]['queuecallerabandon']){_0x256e07[_0x9974('0x10')][_0xc81e0c][_0x9974('0x32')]+=0x1;}_0x256e07[_0x9974('0x10')][_0xc81e0c][_0x9974('0x2a')]+=moment(_0x16a27c[_0x3a2e0f][_0x3f297e]['queuecallerleaveAt'])[_0x9974('0x56')](moment(_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x57')]),_0x9974('0x58'))||0x0;if(_0x3f297e===_0x16a27c[_0x3a2e0f][_0x9974('0x45')]-0x1){_0x256e07[_0x9974('0x10')][_0xc81e0c][_0x9974('0x2b')]+=moment(_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x59')]||_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x5a')]||_0x16a27c[_0x3a2e0f][_0x3f297e]['queuecallerexitAt'])[_0x9974('0x56')](moment(_0x16a27c[_0x3a2e0f][_0x3f297e]['queuecallerjoinAt']),_0x9974('0x58'))||0x0;_0x256e07[_0x9974('0x10')][_0xc81e0c][_0x9974('0x30')]+=0x1;if(_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x5b')]){_0x256e07[_0x9974('0x10')][_0xc81e0c]['answered']+=0x1;_0x256e07[_0x9974('0x10')][_0xc81e0c][_0x9974('0x2c')]+=moment(_0x16a27c[_0x3a2e0f][_0x3f297e][_0x9974('0x59')])[_0x9974('0x56')](moment(_0x16a27c[_0x3a2e0f][_0x3f297e]['queuecallerleaveAt']),_0x9974('0x58'))||0x0;}}else{_0x256e07['voiceQueues'][_0xc81e0c][_0x9974('0x2b')]+=_0x256e07[_0x9974('0x10')][_0xc81e0c][_0x9974('0x2a')]||0x0;}}}}}}return _0x256e07[_0x9974('0x10')];};};Realtime[_0x9974('0x3f')][_0x9974('0x5c')]=function(){var _0x431c89=this;return function(_0x251607){clearVoiceCallReports(_0x431c89[_0x9974('0x14')]);if(_0x251607){for(var _0x3ce355=0x0;_0x3ce355<_0x251607[_0x9974('0x45')];_0x3ce355+=0x1){_0x431c89[_0x9974('0x14')][_0x9974('0x30')]+=0x1;_0x431c89[_0x9974('0x14')][_0x9974('0x2b')]+=_0x251607[_0x3ce355][_0x9974('0x5d')];if(_0x251607[_0x3ce355][_0x9974('0x5e')]==='ANSWERED'){_0x431c89[_0x9974('0x14')][_0x9974('0x29')]+=0x1;_0x431c89['outbound'][_0x9974('0x2a')]+=_0x251607[_0x3ce355][_0x9974('0x5d')]-_0x251607[_0x3ce355]['billableseconds']||0x0;_0x431c89['outbound']['sumBillable']+=_0x251607[_0x3ce355][_0x9974('0x5f')];}}}return _0x431c89['outbound'];};};Realtime[_0x9974('0x3f')][_0x9974('0x60')]=function(){var _0x61c4c4=this;return function(_0x2d77d4){if(_0x2d77d4){freeIsNotKey(_0x2d77d4,_0x61c4c4[_0x9974('0x12')],_0x9974('0x28'));for(var _0x2c962b=0x0,_0x4fa9d9={};_0x2c962b<_0x2d77d4['length'];_0x2c962b+=0x1){_0x4fa9d9=_0x2d77d4[_0x2c962b];if(_[_0x9974('0x42')](_0x61c4c4[_0x9974('0x12')][_0x4fa9d9[_0x9974('0x28')]])){_0x61c4c4['campaigns'][_0x4fa9d9[_0x9974('0x28')]]=new Campaign(_0x4fa9d9);}else{_0x61c4c4[_0x9974('0x40')](_0x61c4c4[_0x9974('0x12')][_0x4fa9d9[_0x9974('0x28')]],_0x4fa9d9);_0x61c4c4[_0x9974('0x12')][_0x4fa9d9[_0x9974('0x28')]]['dialQueueProject']=_0x4fa9d9[_0x9974('0x61')]?_0x4fa9d9[_0x9974('0x61')][_0x9974('0x28')]:undefined;}}}return _0x61c4c4[_0x9974('0x12')];};};Realtime[_0x9974('0x3f')][_0x9974('0x62')]=function(){var _0xfc54cb=this;return function(_0x553665){if(_0x553665){freeIsNotKey(_0x553665,_0xfc54cb[_0x9974('0x63')],'id');for(var _0x238252=0x0,_0x15b5e0={};_0x238252<_0x553665[_0x9974('0x45')];_0x238252+=0x1){_0x15b5e0=_0x553665[_0x238252];if(_['isUndefined'](_0xfc54cb['voiceExtensions'][_0x15b5e0['id']])){_0xfc54cb[_0x9974('0x63')][_0x15b5e0['id']]=new VoiceExtension(_0x15b5e0);}else{_0xfc54cb['mergeFromDatabase'](_0xfc54cb[_0x9974('0x63')][_0x15b5e0['id']],_0x15b5e0);}}}return _0xfc54cb[_0x9974('0x63')];};};Realtime[_0x9974('0x3f')][_0x9974('0x64')]=function(){var _0x2c5da3=this;return function(_0x460e46){clearCampaigns(_0x2c5da3[_0x9974('0x12')]);for(var _0x113cc1=0x0;_0x113cc1<_0x460e46[_0x9974('0x45')];_0x113cc1+=0x1){_[_0x9974('0x65')](_0x2c5da3[_0x9974('0x12')][_0x460e46[_0x113cc1]['name']],_0x460e46[_0x113cc1]);}return _0x2c5da3[_0x9974('0x12')];};};Realtime['prototype']['initFaxAccounts']=function(){var _0x40bc7d=this;return function(_0x424ee1){if(_0x424ee1){freeIsNotKey(_0x424ee1,_0x40bc7d[_0x9974('0x66')],'id');for(var _0x329eb9=0x0,_0x2402c7={},_0x4d575a={};_0x329eb9<_0x424ee1[_0x9974('0x45')];_0x329eb9+=0x1){_0x2402c7=_0x424ee1[_0x329eb9];if(_[_0x9974('0x42')](_0x40bc7d[_0x9974('0x66')][_0x2402c7['id']])){_0x40bc7d[_0x9974('0x66')][_0x2402c7['id']]=new FaxAccount(_0x2402c7);}else{_0x40bc7d[_0x9974('0x40')](_0x40bc7d[_0x9974('0x66')][_0x2402c7['id']],_0x2402c7);}}}return _0x40bc7d[_0x9974('0x66')];};};module[_0x9974('0x67')]=Realtime;
\ No newline at end of file
+var _0x6a83=['isUndefined','initTrunks','initVoiceQueues','initTriggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','freshdeskAccounts','initZohoAccounts','initSugarcrmAccounts','initVtigerAccounts','vtigerAccounts','initServicenowAccounts','initFreshsalesAccounts','initVoiceQueueReports','groupBy','uniqueid','queuecallerexit','unmanaged','queuecallerabandon','sumHoldTime','diff','queuecallerjoinAt','seconds','queuecallerabandonAt','queuecallerexitAt','queuecallercomplete','initVoiceCallReports','duration','disposition','ANSWERED','billableseconds','initCampaigns','campaigns','dialQueueProject','SquareProject','initVoiceExtensions','merge','initFaxAccounts','faxAccounts','bluebird','../model/agent','../model/telephone','../model/trunk','../model/trigger','../model/template','../model/campaign','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/dynamics365Account','../model/faxAccount','agents','trunks','voiceQueues','triggers','templates','outbound','voiceExtensions','channels','queueChannels','timers','settings','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','mapKeys','format','SIP/%s','name','hasOwnProperty','isNil','interface','total','answered','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundRejectCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','mergeFromDatabase','initAgents','length','telephones'];(function(_0x265187,_0x5f552b){var _0x3045c7=function(_0x521a84){while(--_0x521a84){_0x265187['push'](_0x265187['shift']());}};_0x3045c7(++_0x5f552b);}(_0x6a83,0x103));var _0x36a8=function(_0x557122,_0x9558af){_0x557122=_0x557122-0x0;var _0x442316=_0x6a83[_0x557122];return _0x442316;};'use strict';var BPromise=require(_0x36a8('0x0'));var util=require('util');var _=require('lodash');var moment=require('moment');var Agent=require(_0x36a8('0x1'));var Telephone=require(_0x36a8('0x2'));var Trunk=require(_0x36a8('0x3'));var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0x36a8('0x4'));var Template=require(_0x36a8('0x5'));var Campaign=require(_0x36a8('0x6'));var VoiceExtension=require('../model/voiceExtension');var ZendeskAccount=require(_0x36a8('0x7'));var SalesforceAccount=require(_0x36a8('0x8'));var FreshdeskAccount=require(_0x36a8('0x9'));var SugarcrmAccount=require(_0x36a8('0xa'));var ZohoAccount=require(_0x36a8('0xb'));var DeskAccount=require(_0x36a8('0xc'));var VtigerAccount=require(_0x36a8('0xd'));var ServicenowAccount=require('../model/servicenowAccount');var Dynamics365Account=require(_0x36a8('0xe'));var FreshsalesAccount=require('../model/freshsalesAccount');var FaxAccount=require(_0x36a8('0xf'));var Realtime=function(){this[_0x36a8('0x10')]={};this['telephones']={};this[_0x36a8('0x11')]={};this[_0x36a8('0x12')]={};this[_0x36a8('0x13')]={};this['campaigns']={};this[_0x36a8('0x14')]={};this[_0x36a8('0x15')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x36a8('0x16')]={};this[_0x36a8('0x17')]={};this[_0x36a8('0x18')]={};this['outboundChannels']={};this[_0x36a8('0x19')]={};this[_0x36a8('0x1a')]={};this[_0x36a8('0x1b')]={};this[_0x36a8('0x1c')]={};this[_0x36a8('0x1d')]={};this['freshdeskAccounts']={};this[_0x36a8('0x1e')]={};this[_0x36a8('0x1f')]={};this['vtigerAccounts']={};this[_0x36a8('0x20')]={};this[_0x36a8('0x21')]={};this[_0x36a8('0x22')]={};this['faxAccounts']={};};function freeIsNotKey(_0x3a4914,_0x2264e2,_0x4ef1b3){var _0x4568db=_[_0x36a8('0x23')](_0x3a4914,function(_0x4497cf,_0x517f1b){return _0x4497cf[_0x4ef1b3];});for(var _0x574047 in _0x2264e2){if(_0x2264e2['hasOwnProperty'](_0x574047)){if(!_0x4568db[_0x574047]){delete _0x2264e2[_0x574047];}}}}function freeIsNotKeySip(_0x3032e8,_0x15eb5d){var _0x19a23e=_[_0x36a8('0x23')](_0x3032e8,function(_0x39ce83,_0x2ca156){return util[_0x36a8('0x24')](_0x36a8('0x25'),_0x39ce83[_0x36a8('0x26')]);});for(var _0x1258f5 in _0x15eb5d){if(_0x15eb5d[_0x36a8('0x27')](_0x1258f5)){if(!_0x19a23e[_0x1258f5]){delete _0x15eb5d[_0x1258f5];}}}}function freeIsNotKeyAgent(_0x3a3672,_0x36c5fe){var _0x14d6a3=_[_0x36a8('0x23')](_0x3a3672,function(_0x1a670f,_0x5c06e9){var _0x471a01=_[_0x36a8('0x28')](_0x1a670f[_0x36a8('0x29')])?util['format'](_0x36a8('0x25'),_0x1a670f[_0x36a8('0x26')]):_0x1a670f[_0x36a8('0x29')];return _0x471a01;});for(var _0x5b219c in _0x36c5fe){if(_0x36c5fe[_0x36a8('0x27')](_0x5b219c)){if(!_0x14d6a3[_0x5b219c]){delete _0x36c5fe[_0x5b219c];}}}}function clearVoiceCallReports(_0x12042c){_0x12042c[_0x36a8('0x2a')]=0x0;_0x12042c[_0x36a8('0x2b')]=0x0;_0x12042c['sumHoldTime']=0x0;_0x12042c[_0x36a8('0x2c')]=0x0;_0x12042c[_0x36a8('0x2d')]=0x0;}function clearCampaigns(_0x2cce66){if(!_[_0x36a8('0x2e')](_0x2cce66)){for(var _0x2a09d4 in _0x2cce66){if(_0x2cce66[_0x36a8('0x27')](_0x2a09d4)){_0x2cce66[_0x2a09d4][_0x36a8('0x2f')]=0x0;_0x2cce66[_0x2a09d4][_0x36a8('0x30')]=0x0;}}}}function clearVoiceQueues(_0x4e65a2){if(!_[_0x36a8('0x2e')](_0x4e65a2)){for(var _0x2c1bbe in _0x4e65a2){if(_0x4e65a2[_0x36a8('0x27')](_0x2c1bbe)){_0x4e65a2[_0x2c1bbe]['total']=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x2b')]=0x0;_0x4e65a2[_0x2c1bbe]['unmanaged']=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x31')]=0x0;_0x4e65a2[_0x2c1bbe]['sumHoldTime']=0x0;_0x4e65a2[_0x2c1bbe]['sumDuration']=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x2d')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x32')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x33')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x34')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x35')]=0x0;_0x4e65a2[_0x2c1bbe]['outboundNoSuchCallsDay']=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x36')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x37')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x38')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x39')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x3a')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x3b')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x3c')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x32')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x3d')]=0x0;_0x4e65a2[_0x2c1bbe][_0x36a8('0x3e')]=!![];}}}}Realtime[_0x36a8('0x3f')][_0x36a8('0x40')]=function(_0x4e5d09,_0x14d577){for(var _0x2f97d2 in _0x14d577){if(_0x4e5d09[_0x36a8('0x27')](_0x2f97d2)){_0x4e5d09[_0x2f97d2]=_0x14d577[_0x2f97d2];}}};Realtime[_0x36a8('0x3f')][_0x36a8('0x41')]=function(){var _0x14acd4=this;return function(_0x36f731){if(_0x36f731){freeIsNotKeyAgent(_0x36f731,_0x14acd4[_0x36a8('0x10')]);for(var _0x38c0e4=0x0,_0x1287f3={},_0x985cdf={};_0x38c0e4<_0x36f731[_0x36a8('0x42')];_0x38c0e4+=0x1){_0x1287f3=_0x36f731[_0x38c0e4];var _0x44a090=_[_0x36a8('0x28')](_0x1287f3[_0x36a8('0x29')])?util['format'](_0x36a8('0x25'),_0x1287f3['name']):_0x1287f3[_0x36a8('0x29')];if(_['isUndefined'](_0x14acd4[_0x36a8('0x10')][_0x44a090])){_0x14acd4[_0x36a8('0x10')][_0x44a090]=new Agent(_0x1287f3);}else{_0x14acd4[_0x36a8('0x40')](_0x14acd4[_0x36a8('0x10')][_0x44a090],_0x1287f3);}}}return _0x14acd4['agents'];};};Realtime[_0x36a8('0x3f')]['initTelephones']=function(){var _0x2368f7=this;return function(_0x2fd706){if(_0x2fd706){freeIsNotKeySip(_0x2fd706,_0x2368f7[_0x36a8('0x43')]);for(var _0x1b9eef=0x0,_0x3e249d={},_0x4f5e0a={};_0x1b9eef<_0x2fd706[_0x36a8('0x42')];_0x1b9eef+=0x1){_0x3e249d=_0x2fd706[_0x1b9eef];if(_[_0x36a8('0x44')](_0x2368f7[_0x36a8('0x43')][util['format']('SIP/%s',_0x3e249d[_0x36a8('0x26')])])){_0x2368f7[_0x36a8('0x43')][util[_0x36a8('0x24')]('SIP/%s',_0x3e249d[_0x36a8('0x26')])]=new Telephone(_0x3e249d);}else{_0x2368f7['mergeFromDatabase'](_0x2368f7[_0x36a8('0x43')][util[_0x36a8('0x24')](_0x36a8('0x25'),_0x3e249d['name'])],_0x3e249d);}}}return _0x2368f7[_0x36a8('0x43')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x45')]=function(){var _0x548da=this;return function(_0xb5c602){if(_0xb5c602){freeIsNotKeySip(_0xb5c602,_0x548da[_0x36a8('0x11')]);for(var _0x5cca39=0x0,_0x1b0444={},_0x3f9569={};_0x5cca39<_0xb5c602['length'];_0x5cca39+=0x1){_0x1b0444=_0xb5c602[_0x5cca39];if(_['isUndefined'](_0x548da[_0x36a8('0x11')][util[_0x36a8('0x24')](_0x36a8('0x25'),_0x1b0444['name'])])){_0x548da[_0x36a8('0x11')][util[_0x36a8('0x24')](_0x36a8('0x25'),_0x1b0444[_0x36a8('0x26')])]=new Trunk(_0x1b0444);}else{_0x548da[_0x36a8('0x40')](_0x548da['trunks'][util[_0x36a8('0x24')](_0x36a8('0x25'),_0x1b0444[_0x36a8('0x26')])],_0x1b0444);}}}return _0x548da[_0x36a8('0x11')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x46')]=function(){var _0x1c90d3=this;return function(_0x543727){if(_0x543727){freeIsNotKey(_0x543727,_0x1c90d3[_0x36a8('0x12')],_0x36a8('0x26'));for(var _0x333493=0x0,_0xaa8589={},_0x58469f={};_0x333493<_0x543727['length'];_0x333493+=0x1){_0xaa8589=_0x543727[_0x333493];if(_[_0x36a8('0x44')](_0x1c90d3[_0x36a8('0x12')][_0xaa8589['name']])){_0x1c90d3[_0x36a8('0x12')][_0xaa8589['name']]=new VoiceQueue(_0xaa8589);}else{_0x1c90d3['mergeFromDatabase'](_0x1c90d3['voiceQueues'][_0xaa8589['name']],_0xaa8589);}}}return _0x1c90d3['voiceQueues'];};};Realtime['prototype'][_0x36a8('0x47')]=function(){var _0x23714f=this;return function(_0x2e19e7){if(_0x2e19e7){freeIsNotKey(_0x2e19e7,_0x23714f[_0x36a8('0x13')],'id');for(var _0x8c9a6=0x0,_0xb61100={},_0xccd0d0={};_0x8c9a6<_0x2e19e7[_0x36a8('0x42')];_0x8c9a6+=0x1){_0xb61100=_0x2e19e7[_0x8c9a6];if(_[_0x36a8('0x44')](_0x23714f[_0x36a8('0x13')][_0xb61100['id']])){_0x23714f[_0x36a8('0x13')][_0xb61100['id']]=new Trigger(_0xb61100);}else{_0x23714f[_0x36a8('0x40')](_0x23714f[_0x36a8('0x13')][_0xb61100['id']],_0xb61100);}}}return _0x23714f[_0x36a8('0x13')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x48')]=function(){var _0x5f0c53=this;return function(_0x5d0ca6){if(_0x5d0ca6){freeIsNotKey(_0x5d0ca6,_0x5f0c53[_0x36a8('0x14')],'id');for(var _0x3f2dca=0x0,_0x2d36be={},_0x455ae6={};_0x3f2dca<_0x5d0ca6[_0x36a8('0x42')];_0x3f2dca+=0x1){_0x2d36be=_0x5d0ca6[_0x3f2dca];if(_['isUndefined'](_0x5f0c53[_0x36a8('0x14')][_0x2d36be['id']])){_0x5f0c53['templates'][_0x2d36be['id']]=new Template(_0x2d36be);}else{_0x5f0c53['mergeFromDatabase'](_0x5f0c53['templates'][_0x2d36be['id']],_0x2d36be);}}}return _0x5f0c53[_0x36a8('0x14')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x49')]=function(){var _0x3f167d=this;return function(_0x5a0db3){if(_0x5a0db3){freeIsNotKey(_0x5a0db3,_0x3f167d[_0x36a8('0x1b')],'id');for(var _0x59c2fa=0x0,_0x40b17f={},_0x2206c6={};_0x59c2fa<_0x5a0db3['length'];_0x59c2fa+=0x1){_0x40b17f=_0x5a0db3[_0x59c2fa];if(_['isUndefined'](_0x3f167d['zendeskAccounts'][_0x40b17f['id']])){_0x3f167d['zendeskAccounts'][_0x40b17f['id']]=new ZendeskAccount(_0x40b17f);}else{_0x3f167d[_0x36a8('0x40')](_0x3f167d[_0x36a8('0x1b')][_0x40b17f['id']],_0x40b17f);}}}return _0x3f167d[_0x36a8('0x1b')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x4a')]=function(){var _0x50c7e5=this;return function(_0x25ded9){if(_0x25ded9){freeIsNotKey(_0x25ded9,_0x50c7e5[_0x36a8('0x1c')],'id');for(var _0x16f137=0x0,_0x948571={},_0x5f4382={};_0x16f137<_0x25ded9[_0x36a8('0x42')];_0x16f137+=0x1){_0x948571=_0x25ded9[_0x16f137];if(_['isUndefined'](_0x50c7e5[_0x36a8('0x1c')][_0x948571['id']])){_0x50c7e5[_0x36a8('0x1c')][_0x948571['id']]=new SalesforceAccount(_0x948571);}else{_0x50c7e5[_0x36a8('0x40')](_0x50c7e5['salesforceAccounts'][_0x948571['id']],_0x948571);}}}return _0x50c7e5['salesforceAccounts'];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x4b')]=function(){var _0x322a1b=this;return function(_0x18c1f1){if(_0x18c1f1){freeIsNotKey(_0x18c1f1,_0x322a1b['freshdeskAccounts'],'id');for(var _0x33b4f4=0x0,_0x4a6e66={},_0x500a5f={};_0x33b4f4<_0x18c1f1['length'];_0x33b4f4+=0x1){_0x4a6e66=_0x18c1f1[_0x33b4f4];if(_[_0x36a8('0x44')](_0x322a1b[_0x36a8('0x4c')][_0x4a6e66['id']])){_0x322a1b[_0x36a8('0x4c')][_0x4a6e66['id']]=new FreshdeskAccount(_0x4a6e66);}else{_0x322a1b[_0x36a8('0x40')](_0x322a1b[_0x36a8('0x4c')][_0x4a6e66['id']],_0x4a6e66);}}}return _0x322a1b['freshdeskAccounts'];};};Realtime['prototype'][_0x36a8('0x4d')]=function(){var _0x18d2bf=this;return function(_0x1bac1e){if(_0x1bac1e){freeIsNotKey(_0x1bac1e,_0x18d2bf['zohoAccounts'],'id');for(var _0x14a13b=0x0,_0x54873a={},_0x38b3a8={};_0x14a13b<_0x1bac1e[_0x36a8('0x42')];_0x14a13b+=0x1){_0x54873a=_0x1bac1e[_0x14a13b];if(_[_0x36a8('0x44')](_0x18d2bf[_0x36a8('0x1e')][_0x54873a['id']])){_0x18d2bf['zohoAccounts'][_0x54873a['id']]=new ZohoAccount(_0x54873a);}else{_0x18d2bf[_0x36a8('0x40')](_0x18d2bf[_0x36a8('0x1e')][_0x54873a['id']],_0x54873a);}}}return _0x18d2bf[_0x36a8('0x1e')];};};Realtime[_0x36a8('0x3f')]['initDeskAccounts']=function(){var _0x3d0102=this;return function(_0x2b09a0){if(_0x2b09a0){freeIsNotKey(_0x2b09a0,_0x3d0102['deskAccounts'],'id');for(var _0x4c1118=0x0,_0x38f7db={},_0x2a11f1={};_0x4c1118<_0x2b09a0[_0x36a8('0x42')];_0x4c1118+=0x1){_0x38f7db=_0x2b09a0[_0x4c1118];if(_[_0x36a8('0x44')](_0x3d0102['deskAccounts'][_0x38f7db['id']])){_0x3d0102[_0x36a8('0x1f')][_0x38f7db['id']]=new DeskAccount(_0x38f7db);}else{_0x3d0102[_0x36a8('0x40')](_0x3d0102[_0x36a8('0x1f')][_0x38f7db['id']],_0x38f7db);}}}return _0x3d0102['deskAccounts'];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x4e')]=function(){var _0x45875e=this;return function(_0x22e17d){if(_0x22e17d){freeIsNotKey(_0x22e17d,_0x45875e[_0x36a8('0x1d')],'id');for(var _0x497b8b=0x0,_0x314e75={},_0x5c00e2={};_0x497b8b<_0x22e17d['length'];_0x497b8b+=0x1){_0x314e75=_0x22e17d[_0x497b8b];if(_[_0x36a8('0x44')](_0x45875e[_0x36a8('0x1d')][_0x314e75['id']])){_0x45875e['sugarcrmAccounts'][_0x314e75['id']]=new SugarcrmAccount(_0x314e75);}else{_0x45875e['mergeFromDatabase'](_0x45875e[_0x36a8('0x1d')][_0x314e75['id']],_0x314e75);}}}return _0x45875e[_0x36a8('0x1d')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x4f')]=function(){var _0x43c566=this;return function(_0x44d527){if(_0x44d527){freeIsNotKey(_0x44d527,_0x43c566[_0x36a8('0x50')],'id');for(var _0x4c09fb=0x0,_0x173aac={},_0x2c6157={};_0x4c09fb<_0x44d527[_0x36a8('0x42')];_0x4c09fb+=0x1){_0x173aac=_0x44d527[_0x4c09fb];if(_[_0x36a8('0x44')](_0x43c566['vtigerAccounts'][_0x173aac['id']])){_0x43c566[_0x36a8('0x50')][_0x173aac['id']]=new VtigerAccount(_0x173aac);}else{_0x43c566[_0x36a8('0x40')](_0x43c566[_0x36a8('0x50')][_0x173aac['id']],_0x173aac);}}}return _0x43c566[_0x36a8('0x50')];};};Realtime['prototype'][_0x36a8('0x51')]=function(){var _0x5ad334=this;return function(_0x2bb150){if(_0x2bb150){freeIsNotKey(_0x2bb150,_0x5ad334[_0x36a8('0x20')],'id');for(var _0x948c5b=0x0,_0x4edd63={},_0xccd770={};_0x948c5b<_0x2bb150[_0x36a8('0x42')];_0x948c5b+=0x1){_0x4edd63=_0x2bb150[_0x948c5b];if(_[_0x36a8('0x44')](_0x5ad334['servicenowAccounts'][_0x4edd63['id']])){_0x5ad334[_0x36a8('0x20')][_0x4edd63['id']]=new ServicenowAccount(_0x4edd63);}else{_0x5ad334[_0x36a8('0x40')](_0x5ad334[_0x36a8('0x20')][_0x4edd63['id']],_0x4edd63);}}}return _0x5ad334[_0x36a8('0x20')];};};Realtime[_0x36a8('0x3f')]['initDynamics365Accounts']=function(){var _0x2eb39f=this;return function(_0x183015){if(_0x183015){freeIsNotKey(_0x183015,_0x2eb39f[_0x36a8('0x21')],'id');for(var _0x1bbfd4=0x0,_0x23f0af={},_0x5f4874={};_0x1bbfd4<_0x183015[_0x36a8('0x42')];_0x1bbfd4+=0x1){_0x23f0af=_0x183015[_0x1bbfd4];if(_[_0x36a8('0x44')](_0x2eb39f[_0x36a8('0x21')][_0x23f0af['id']])){_0x2eb39f[_0x36a8('0x21')][_0x23f0af['id']]=new Dynamics365Account(_0x23f0af);}else{_0x2eb39f[_0x36a8('0x40')](_0x2eb39f[_0x36a8('0x21')][_0x23f0af['id']],_0x23f0af);}}}return _0x2eb39f[_0x36a8('0x21')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x52')]=function(){var _0x168a7d=this;return function(_0x212995){if(_0x212995){freeIsNotKey(_0x212995,_0x168a7d[_0x36a8('0x22')],'id');for(var _0x2fe9f9=0x0,_0x48e49a={},_0xb65a1e={};_0x2fe9f9<_0x212995[_0x36a8('0x42')];_0x2fe9f9+=0x1){_0x48e49a=_0x212995[_0x2fe9f9];if(_[_0x36a8('0x44')](_0x168a7d[_0x36a8('0x22')][_0x48e49a['id']])){_0x168a7d[_0x36a8('0x22')][_0x48e49a['id']]=new FreshsalesAccount(_0x48e49a);}else{_0x168a7d[_0x36a8('0x40')](_0x168a7d[_0x36a8('0x22')][_0x48e49a['id']],_0x48e49a);}}}return _0x168a7d[_0x36a8('0x22')];};};Realtime[_0x36a8('0x3f')]['initVoiceQueueHopperHistory']=function(){var _0x2cb550=this;return function(_0x30c7fb){for(var _0x22cbcb=0x0;_0x22cbcb<_0x30c7fb['length'];_0x22cbcb+=0x1){_['merge'](_0x2cb550[_0x36a8('0x12')][_0x30c7fb[_0x22cbcb][_0x36a8('0x26')]],_0x30c7fb[_0x22cbcb]);}return _0x2cb550['voiceQueues'];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x53')]=function(){var _0x5cf685=this;return function(_0x402034){clearVoiceQueues(_0x5cf685[_0x36a8('0x12')]);if(_0x402034){_0x402034=_[_0x36a8('0x54')](_0x402034,_0x36a8('0x55'));for(var _0x2b51b9 in _0x402034){if(_0x402034[_0x36a8('0x27')](_0x2b51b9)){var _0x37a194={};for(var _0x40dc83=0x0;_0x40dc83<_0x402034[_0x2b51b9][_0x36a8('0x42')];_0x40dc83+=0x1){var _0x3c4145=_0x402034[_0x2b51b9][_0x40dc83]['queue'];if(_0x5cf685[_0x36a8('0x12')][_0x3c4145]){if(_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x56')]){_0x5cf685[_0x36a8('0x12')][_0x3c4145][_0x36a8('0x57')]+=0x1;}if(_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x58')]){_0x5cf685[_0x36a8('0x12')][_0x3c4145]['abandoned']+=0x1;}_0x5cf685['voiceQueues'][_0x3c4145][_0x36a8('0x59')]+=moment(_0x402034[_0x2b51b9][_0x40dc83]['queuecallerleaveAt'])[_0x36a8('0x5a')](moment(_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x5b')]),_0x36a8('0x5c'))||0x0;if(_0x40dc83===_0x402034[_0x2b51b9]['length']-0x1){_0x5cf685[_0x36a8('0x12')][_0x3c4145][_0x36a8('0x2c')]+=moment(_0x402034[_0x2b51b9][_0x40dc83]['queuecallercompleteAt']||_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x5d')]||_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x5e')])[_0x36a8('0x5a')](moment(_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x5b')]),_0x36a8('0x5c'))||0x0;_0x5cf685[_0x36a8('0x12')][_0x3c4145][_0x36a8('0x2a')]+=0x1;if(_0x402034[_0x2b51b9][_0x40dc83][_0x36a8('0x5f')]){_0x5cf685[_0x36a8('0x12')][_0x3c4145]['answered']+=0x1;_0x5cf685['voiceQueues'][_0x3c4145]['sumBillable']+=moment(_0x402034[_0x2b51b9][_0x40dc83]['queuecallercompleteAt'])['diff'](moment(_0x402034[_0x2b51b9][_0x40dc83]['queuecallerleaveAt']),_0x36a8('0x5c'))||0x0;}}else{_0x5cf685[_0x36a8('0x12')][_0x3c4145]['sumDuration']+=_0x5cf685[_0x36a8('0x12')][_0x3c4145][_0x36a8('0x59')]||0x0;}}}}}}return _0x5cf685[_0x36a8('0x12')];};};Realtime['prototype'][_0x36a8('0x60')]=function(){var _0x8364b7=this;return function(_0x53d462){clearVoiceCallReports(_0x8364b7[_0x36a8('0x15')]);if(_0x53d462){for(var _0x177355=0x0;_0x177355<_0x53d462[_0x36a8('0x42')];_0x177355+=0x1){_0x8364b7['outbound'][_0x36a8('0x2a')]+=0x1;_0x8364b7[_0x36a8('0x15')]['sumDuration']+=_0x53d462[_0x177355][_0x36a8('0x61')];if(_0x53d462[_0x177355][_0x36a8('0x62')]===_0x36a8('0x63')){_0x8364b7['outbound'][_0x36a8('0x2b')]+=0x1;_0x8364b7[_0x36a8('0x15')][_0x36a8('0x59')]+=_0x53d462[_0x177355][_0x36a8('0x61')]-_0x53d462[_0x177355][_0x36a8('0x64')]||0x0;_0x8364b7[_0x36a8('0x15')][_0x36a8('0x2d')]+=_0x53d462[_0x177355][_0x36a8('0x64')];}}}return _0x8364b7['outbound'];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x65')]=function(){var _0x5e5eff=this;return function(_0x218ac9){if(_0x218ac9){freeIsNotKey(_0x218ac9,_0x5e5eff[_0x36a8('0x66')],_0x36a8('0x26'));for(var _0x7969=0x0,_0x54114b={};_0x7969<_0x218ac9['length'];_0x7969+=0x1){_0x54114b=_0x218ac9[_0x7969];if(_[_0x36a8('0x44')](_0x5e5eff[_0x36a8('0x66')][_0x54114b[_0x36a8('0x26')]])){_0x5e5eff[_0x36a8('0x66')][_0x54114b[_0x36a8('0x26')]]=new Campaign(_0x54114b);}else{_0x5e5eff['mergeFromDatabase'](_0x5e5eff[_0x36a8('0x66')][_0x54114b[_0x36a8('0x26')]],_0x54114b);_0x5e5eff[_0x36a8('0x66')][_0x54114b[_0x36a8('0x26')]][_0x36a8('0x67')]=_0x54114b[_0x36a8('0x68')]?_0x54114b[_0x36a8('0x68')][_0x36a8('0x26')]:undefined;}}}return _0x5e5eff[_0x36a8('0x66')];};};Realtime[_0x36a8('0x3f')][_0x36a8('0x69')]=function(){var _0xaaf66f=this;return function(_0x33bba8){if(_0x33bba8){freeIsNotKey(_0x33bba8,_0xaaf66f[_0x36a8('0x16')],'id');for(var _0x3dfb2b=0x0,_0x5b75ae={};_0x3dfb2b<_0x33bba8[_0x36a8('0x42')];_0x3dfb2b+=0x1){_0x5b75ae=_0x33bba8[_0x3dfb2b];if(_[_0x36a8('0x44')](_0xaaf66f['voiceExtensions'][_0x5b75ae['id']])){_0xaaf66f[_0x36a8('0x16')][_0x5b75ae['id']]=new VoiceExtension(_0x5b75ae);}else{_0xaaf66f['mergeFromDatabase'](_0xaaf66f[_0x36a8('0x16')][_0x5b75ae['id']],_0x5b75ae);}}}return _0xaaf66f['voiceExtensions'];};};Realtime[_0x36a8('0x3f')]['initCampaignHopperHistory']=function(){var _0x5ccd2e=this;return function(_0x1fdcc4){clearCampaigns(_0x5ccd2e['campaigns']);for(var _0x14d689=0x0;_0x14d689<_0x1fdcc4[_0x36a8('0x42')];_0x14d689+=0x1){_[_0x36a8('0x6a')](_0x5ccd2e[_0x36a8('0x66')][_0x1fdcc4[_0x14d689][_0x36a8('0x26')]],_0x1fdcc4[_0x14d689]);}return _0x5ccd2e[_0x36a8('0x66')];};};Realtime['prototype'][_0x36a8('0x6b')]=function(){var _0x5846ae=this;return function(_0x3c24a1){if(_0x3c24a1){freeIsNotKey(_0x3c24a1,_0x5846ae[_0x36a8('0x6c')],'id');for(var _0x436982=0x0,_0x39732a={},_0x3752b5={};_0x436982<_0x3c24a1[_0x36a8('0x42')];_0x436982+=0x1){_0x39732a=_0x3c24a1[_0x436982];if(_[_0x36a8('0x44')](_0x5846ae['faxAccounts'][_0x39732a['id']])){_0x5846ae[_0x36a8('0x6c')][_0x39732a['id']]=new FaxAccount(_0x39732a);}else{_0x5846ae['mergeFromDatabase'](_0x5846ae[_0x36a8('0x6c')][_0x39732a['id']],_0x39732a);}}}return _0x5846ae['faxAccounts'];};};module['exports']=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d6f=['./userReport','realtime','agents','telephones','prototype','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceAgentReport','voiceAgentReport','voiceDialReport','blindtransfer','attendedtransfer','findAgent','find','accountcode','name','isNil','interface','format','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','match','voiceCallReport','destination','type','dialer','lastapplication','queue','lastdata','context','from-voip-provider','from-sip','xcally-motion-preview','calleridpreview','originatecalleridnum','channel','destinationchannel','callerid','calleridnum','ANSWERED','transfers','linkedid','transfereelinkedid','uniqueid','blindTransfer','monitors','monitorFilename','filename','createdAt','exten','calleridname','connectedlinename','membername','xcally-motion-dialer','isArray','forEach','Local','mobile','phone','indexOf','lastIndexOf','transfererlinkedid','attendedTransfer','moment','util','../../../config/environment','../ami','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','./voiceQueueReport','./voiceCallReport','./voiceAgentReport'];(function(_0x33f0e4,_0x2d414a){var _0x543c2e=function(_0x2c6571){while(--_0x2c6571){_0x33f0e4['push'](_0x33f0e4['shift']());}};_0x543c2e(++_0x2d414a);}(_0x4d6f,0x1f4));var _0xf4d6=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x4d6f[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var moment=require(_0xf4d6('0x0'));var util=require(_0xf4d6('0x1'));var config=require(_0xf4d6('0x2'));var ami=require(_0xf4d6('0x3'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require('../rpc/voiceCallReport');var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0xf4d6('0x4'));var RpcVoiceQueueReport=require(_0xf4d6('0x5'));var RpcVoiceRecording=require(_0xf4d6('0x6'));var RpcVoiceTransferReport=require('../rpc/voiceTransferReport');var VoiceQueueReport=require(_0xf4d6('0x7'));var VoiceCallReport=require(_0xf4d6('0x8'));var VoiceAgentReport=require(_0xf4d6('0x9'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0xf4d6('0xa'));function Report(_0xcf3cb8){this[_0xf4d6('0xb')]=_0xcf3cb8;this[_0xf4d6('0xc')]=_0xcf3cb8['agents'];this[_0xf4d6('0xd')]=_0xcf3cb8[_0xf4d6('0xd')];}Report[_0xf4d6('0xe')][_0xf4d6('0xf')]=function(_0x3e9b37){var _0x5b2022=new VoiceQueueReport(this[_0xf4d6('0xb')]);var _0x457cf2=new VoiceAgentReport(this[_0xf4d6('0xb')]);var _0x32aaac=new VoiceDialReport(this[_0xf4d6('0xb')]);var _0x3de42d=new VoiceCallReport(this[_0xf4d6('0xb')]);var _0xb932d6=new UserReport(this[_0xf4d6('0xb')]);if(config[_0xf4d6('0x10')]&&config[_0xf4d6('0x10')][_0xf4d6('0x11')]){ami['on'](_0xf4d6('0x12'),this[_0xf4d6('0x13')]['bind'](this));ami['on']('custom:voiceCallReport',this['voiceCallReport'][_0xf4d6('0x14')](this));ami['on'](_0xf4d6('0x15'),this[_0xf4d6('0x16')][_0xf4d6('0x14')](this));ami['on']('custom:voiceDialReport',this[_0xf4d6('0x17')][_0xf4d6('0x14')](this));ami['on'](_0xf4d6('0x18'),this['blindTransfer'][_0xf4d6('0x14')](this));ami['on'](_0xf4d6('0x19'),this['attendedTransfer'][_0xf4d6('0x14')](this));}};Report[_0xf4d6('0xe')][_0xf4d6('0x1a')]=function(_0x26d444){var _0x1fdadf;_0x1fdadf=_[_0xf4d6('0x1b')](this[_0xf4d6('0xc')],function(_0x5caeb8){return _0x5caeb8[_0xf4d6('0x1c')]==_0x26d444||_0x5caeb8[_0xf4d6('0x1d')]==_0x26d444;});if(_[_0xf4d6('0x1e')](_0x1fdadf)){var _0x3d9d7b=_[_0xf4d6('0x1b')](this[_0xf4d6('0xd')],function(_0x3a57e8){return _0x3a57e8[_0xf4d6('0x1c')]==_0x26d444||_0x3a57e8[_0xf4d6('0x1d')]==_0x26d444;});if(_0x3d9d7b){_0x1fdadf=_[_0xf4d6('0x1b')](this[_0xf4d6('0xc')],function(_0x1b9df9){return _0x1b9df9[_0xf4d6('0x1f')]==util[_0xf4d6('0x20')](_0xf4d6('0x21'),_0x3d9d7b['name']);});}}return _0x1fdadf;};Report[_0xf4d6('0xe')][_0xf4d6('0x13')]=function(_0x4951aa){for(var _0x17647b=0x0;_0x17647b<_0x4951aa[_0xf4d6('0x22')];_0x17647b+=0x1){var _0x487528=this[_0xf4d6('0x1a')](_0x4951aa[_0x17647b][_0xf4d6('0x23')]);if(_0x487528){_0x4951aa[_0x17647b][_0xf4d6('0x1c')]=_0x487528['accountcode'];_0x4951aa[_0x17647b][_0xf4d6('0x24')]=!![];_0x4951aa[_0x17647b][_0xf4d6('0x25')]=_0x487528[_0xf4d6('0x1d')];_0x4951aa[_0x17647b][_0xf4d6('0x1f')]=_['isNil'](_0x487528[_0xf4d6('0x1f')])?util[_0xf4d6('0x20')](_0xf4d6('0x21'),_0x487528[_0xf4d6('0x1d')]):_0x487528[_0xf4d6('0x1f')];if(_0x4951aa[_0x17647b][_0xf4d6('0x26')]){_0x4951aa[_0x17647b][_0xf4d6('0x27')]=moment()[_0xf4d6('0x20')](_0xf4d6('0x28'));}if(_0x4951aa[_0x17647b][_0xf4d6('0x29')]){_0x4951aa[_0x17647b]['queuecallerexitAt']=moment()[_0xf4d6('0x20')](_0xf4d6('0x28'));}RpcMemberReport[_0xf4d6('0x13')](_0x4951aa[_0x17647b]);}RpcVoiceQueueReport[_0xf4d6('0x2a')](_0x4951aa[_0x17647b]);}};function extractCalleridNumber(_0x15676a){var _0x45d640=_0x15676a[_0xf4d6('0x2b')](/<(.*?)>/);return _0x45d640?_0x45d640[0x1]:_0x15676a;}Report[_0xf4d6('0xe')][_0xf4d6('0x2c')]=function(_0x427b86){_0x427b86[_0xf4d6('0x2d')]=_0x427b86[_0xf4d6('0x2d')]||_0x427b86['exten'];if(_0x427b86[_0xf4d6('0x2e')]==_0xf4d6('0x2f')){_0x427b86[_0xf4d6('0x30')]=_0xf4d6('0x31');_0x427b86[_0xf4d6('0x32')]=_0x427b86[_0xf4d6('0x31')];if(_0x427b86[_0xf4d6('0x33')]==_0xf4d6('0x34')){_0x427b86[_0xf4d6('0x1c')]='';_0x427b86[_0xf4d6('0x2d')]=extractCalleridNumber(_0x427b86['callerid']);}else if(_0x427b86[_0xf4d6('0x33')]==_0xf4d6('0x35')){if(_0x427b86[_0xf4d6('0x2d')]==_0xf4d6('0x36')){_0x427b86[_0xf4d6('0x2d')]=extractCalleridNumber(_0x427b86[_0xf4d6('0x37')]);_0x427b86['calleridnum']=_0x427b86[_0xf4d6('0x38')];_0x427b86['destinationchannel']=[_0x427b86[_0xf4d6('0x39')],_0x427b86['channel']=_0x427b86[_0xf4d6('0x3a')]][0x0];_0x427b86[_0xf4d6('0x3b')]=_0x427b86['calleridpreview'];}else{_0x427b86[_0xf4d6('0x2d')]=_0x427b86[_0xf4d6('0x3c')];_0x427b86[_0xf4d6('0x3c')]=_0x427b86[_0xf4d6('0x38')];if(_0x427b86['disposition']==_0xf4d6('0x3d')){_0x427b86['accountcode']=_0x427b86['connectedlinenum'];}else{_0x427b86['accountcode']='';}}}}else{_0x427b86['callerid']=util[_0xf4d6('0x20')]('\x22%s\x22\x20<%s>',_0x427b86['calleridname'],_0x427b86[_0xf4d6('0x3c')]);}if(RpcVoiceTransferReport[_0xf4d6('0x3e')][_0x427b86[_0xf4d6('0x3f')]]){var _0x13c22d=RpcVoiceTransferReport[_0xf4d6('0x3e')][_0x427b86['linkedid']];_0x13c22d[_0xf4d6('0x40')]=_0x427b86[_0xf4d6('0x41')];RpcVoiceTransferReport[_0xf4d6('0x42')](_0x13c22d);delete RpcVoiceTransferReport[_0xf4d6('0x3e')][_0x427b86[_0xf4d6('0x3f')]];}RpcVoiceCallReport[_0xf4d6('0x2a')](_0x427b86);if(_0x427b86['monitor']){for(var _0x4c352b=0x0;_0x4c352b<_0x427b86[_0xf4d6('0x43')][_0xf4d6('0x22')];_0x4c352b+=0x1){_0x427b86[_0xf4d6('0x44')]=_0x427b86[_0xf4d6('0x43')][_0x4c352b][_0xf4d6('0x45')];_0x427b86[_0xf4d6('0x46')]=_0x427b86['monitors'][_0x4c352b]['createdAt'];if(_0x427b86[_0xf4d6('0x47')]==_0xf4d6('0x36')){_0x427b86[_0xf4d6('0x3c')]=_0x427b86[_0xf4d6('0x23')];_0x427b86[_0xf4d6('0x48')]=_0x427b86['connectedlinename'];_0x427b86[_0xf4d6('0x23')]=_0x427b86[_0xf4d6('0x1c')];_0x427b86[_0xf4d6('0x49')]=_0x427b86[_0xf4d6('0x4a')];_0x427b86[_0xf4d6('0x47')]=_0x427b86[_0xf4d6('0x38')];}else if(_0x427b86['exten']==_0xf4d6('0x4b')){_0x427b86[_0xf4d6('0x3c')]=_0x427b86['destination'];_0x427b86[_0xf4d6('0x47')]=_0x427b86['originatecalleridnum'];}RpcVoiceRecording[_0xf4d6('0x2a')](_0x427b86);}}};Report['prototype'][_0xf4d6('0x16')]=function(_0x17e969){if(_[_0xf4d6('0x4c')](_0x17e969)){_0x17e969[_0xf4d6('0x4d')](function(_0x4af11d){RpcVoiceAgentReport[_0xf4d6('0x2a')](_0x4af11d);});}else{RpcVoiceAgentReport['create'](_0x17e969);}};Report[_0xf4d6('0xe')][_0xf4d6('0x17')]=function(_0x4d93b0){RpcVoiceDialReport[_0xf4d6('0x2a')](_0x4d93b0);var _0x4a1f8c;var _0x5aedae;var _0x438344=_0x4d93b0[_0xf4d6('0x39')];if(_['startsWith'](_0x438344,_0xf4d6('0x4e'))){_0x5aedae=_0x438344['substring'](_0x438344['indexOf']('/')+0x1,_0x438344['indexOf']('@'));_0x4a1f8c=_['find'](this['agents'],function(_0x2dd7c1){return _0x2dd7c1[_0xf4d6('0x4f')]==_0x5aedae||_0x2dd7c1[_0xf4d6('0x50')]==_0x5aedae||_0x2dd7c1[_0xf4d6('0x1c')]==_0x5aedae;});}else{_0x5aedae=_0x438344['substring'](_0x438344[_0xf4d6('0x51')]('/')+0x1,_0x438344[_0xf4d6('0x52')]('-'));_0x4a1f8c=this['findAgent'](_0x5aedae);}if(_0x4a1f8c){_0x4d93b0['interface']=_['isNil'](_0x4a1f8c[_0xf4d6('0x1f')])?util[_0xf4d6('0x20')](_0xf4d6('0x21'),_0x4a1f8c[_0xf4d6('0x1d')]):_0x4a1f8c['interface'];_0x4d93b0[_0xf4d6('0x4a')]=_0x4a1f8c[_0xf4d6('0x1d')];_0x4d93b0[_0xf4d6('0x1c')]=_0x4a1f8c[_0xf4d6('0x1c')];RpcMemberReport[_0xf4d6('0x17')](_0x4d93b0);}};Report[_0xf4d6('0xe')][_0xf4d6('0x42')]=function(_0x5717b){RpcVoiceTransferReport[_0xf4d6('0x3e')][_0x5717b[_0xf4d6('0x53')]]=_0x5717b;};Report['prototype']['attendedTransfer']=function(_0x32624d){RpcVoiceTransferReport[_0xf4d6('0x54')](_0x32624d);};module['exports']=Report;
\ No newline at end of file
+var _0x83e2=['createdAt','connectedlinename','xcally-motion-dialer','voiceAgentReport','forEach','startsWith','Local','indexOf','mobile','phone','substring','transfererlinkedid','exports','lodash','moment','util','../rpc/voiceAgentReport','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceQueueReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceQueueReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedTransfer','find','accountcode','name','isNil','format','SIP/%s','prototype','length','findAgent','connectedlinenum','assigned','lastAssignedTo','interface','queuecallercomplete','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','match','destination','exten','type','dialer','lastdata','queue','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','calleridnum','originatecalleridnum','channel','destinationchannel','ANSWERED','\x22%s\x22\x20<%s>','calleridname','linkedid','transfereelinkedid','transfers','create','monitors','filename'];(function(_0xfff9cf,_0x55ad70){var _0x231718=function(_0x410e35){while(--_0x410e35){_0xfff9cf['push'](_0xfff9cf['shift']());}};_0x231718(++_0x55ad70);}(_0x83e2,0x1ac));var _0x283e=function(_0x5550b3,_0x2d0ee0){_0x5550b3=_0x5550b3-0x0;var _0x4b8fc4=_0x83e2[_0x5550b3];return _0x4b8fc4;};'use strict';var _=require(_0x283e('0x0'));var moment=require(_0x283e('0x1'));var util=require(_0x283e('0x2'));var config=require('../../../config/environment');var ami=require('../ami');var RpcVoiceAgentReport=require(_0x283e('0x3'));var RpcVoiceCallReport=require(_0x283e('0x4'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x283e('0x5'));var RpcVoiceQueueReport=require(_0x283e('0x6'));var RpcVoiceRecording=require(_0x283e('0x7'));var RpcVoiceTransferReport=require(_0x283e('0x8'));var VoiceQueueReport=require(_0x283e('0x9'));var VoiceCallReport=require('./voiceCallReport');var VoiceAgentReport=require(_0x283e('0xa'));var VoiceDialReport=require(_0x283e('0xb'));var UserReport=require(_0x283e('0xc'));function Report(_0x579cc4){this[_0x283e('0xd')]=_0x579cc4;this[_0x283e('0xe')]=_0x579cc4[_0x283e('0xe')];this[_0x283e('0xf')]=_0x579cc4[_0x283e('0xf')];}Report['prototype']['sync']=function(_0x1258ac){var _0x3ca402=new VoiceQueueReport(this[_0x283e('0xd')]);var _0xb709ca=new VoiceAgentReport(this[_0x283e('0xd')]);var _0x29505e=new VoiceDialReport(this[_0x283e('0xd')]);var _0x131019=new VoiceCallReport(this[_0x283e('0xd')]);var _0xfaee55=new UserReport(this[_0x283e('0xd')]);if(config['xdr']&&config[_0x283e('0x10')][_0x283e('0x11')]){ami['on'](_0x283e('0x12'),this[_0x283e('0x13')][_0x283e('0x14')](this));ami['on'](_0x283e('0x15'),this['voiceCallReport'][_0x283e('0x14')](this));ami['on'](_0x283e('0x16'),this['voiceAgentReport'][_0x283e('0x14')](this));ami['on'](_0x283e('0x17'),this[_0x283e('0x18')][_0x283e('0x14')](this));ami['on']('blindtransfer',this[_0x283e('0x19')][_0x283e('0x14')](this));ami['on']('attendedtransfer',this[_0x283e('0x1a')][_0x283e('0x14')](this));}};Report['prototype']['findAgent']=function(_0x2c78b0){var _0x584703;_0x584703=_[_0x283e('0x1b')](this[_0x283e('0xe')],function(_0x4a87c7){return _0x4a87c7[_0x283e('0x1c')]==_0x2c78b0||_0x4a87c7[_0x283e('0x1d')]==_0x2c78b0;});if(_[_0x283e('0x1e')](_0x584703)){var _0x167ad8=_['find'](this['telephones'],function(_0x3eb51c){return _0x3eb51c[_0x283e('0x1c')]==_0x2c78b0||_0x3eb51c[_0x283e('0x1d')]==_0x2c78b0;});if(_0x167ad8){_0x584703=_[_0x283e('0x1b')](this['agents'],function(_0x53022c){return _0x53022c['interface']==util[_0x283e('0x1f')](_0x283e('0x20'),_0x167ad8[_0x283e('0x1d')]);});}}return _0x584703;};Report[_0x283e('0x21')][_0x283e('0x13')]=function(_0x1d14c1){for(var _0x6d5bd9=0x0;_0x6d5bd9<_0x1d14c1[_0x283e('0x22')];_0x6d5bd9+=0x1){var _0x260119=this[_0x283e('0x23')](_0x1d14c1[_0x6d5bd9][_0x283e('0x24')]);if(_0x260119){_0x1d14c1[_0x6d5bd9][_0x283e('0x1c')]=_0x260119[_0x283e('0x1c')];_0x1d14c1[_0x6d5bd9][_0x283e('0x25')]=!![];_0x1d14c1[_0x6d5bd9][_0x283e('0x26')]=_0x260119[_0x283e('0x1d')];_0x1d14c1[_0x6d5bd9][_0x283e('0x27')]=_[_0x283e('0x1e')](_0x260119[_0x283e('0x27')])?util[_0x283e('0x1f')](_0x283e('0x20'),_0x260119[_0x283e('0x1d')]):_0x260119['interface'];if(_0x1d14c1[_0x6d5bd9][_0x283e('0x28')]){_0x1d14c1[_0x6d5bd9][_0x283e('0x29')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}if(_0x1d14c1[_0x6d5bd9][_0x283e('0x2a')]){_0x1d14c1[_0x6d5bd9][_0x283e('0x2b')]=moment()[_0x283e('0x1f')]('YYYY-MM-DD\x20HH:mm:ss');}RpcMemberReport[_0x283e('0x13')](_0x1d14c1[_0x6d5bd9]);}RpcVoiceQueueReport['create'](_0x1d14c1[_0x6d5bd9]);}};function extractCalleridNumber(_0x154f1c){var _0xfff33d=_0x154f1c[_0x283e('0x2c')](/<(.*?)>/);return _0xfff33d?_0xfff33d[0x1]:_0x154f1c;}Report[_0x283e('0x21')]['voiceCallReport']=function(_0x5b70ef){_0x5b70ef[_0x283e('0x2d')]=_0x5b70ef['destination']||_0x5b70ef[_0x283e('0x2e')];if(_0x5b70ef[_0x283e('0x2f')]==_0x283e('0x30')){_0x5b70ef['lastapplication']='queue';_0x5b70ef[_0x283e('0x31')]=_0x5b70ef[_0x283e('0x32')];if(_0x5b70ef[_0x283e('0x33')]==_0x283e('0x34')){_0x5b70ef[_0x283e('0x1c')]='';_0x5b70ef['destination']=extractCalleridNumber(_0x5b70ef[_0x283e('0x35')]);}else if(_0x5b70ef[_0x283e('0x33')]==_0x283e('0x36')){if(_0x5b70ef[_0x283e('0x2d')]==_0x283e('0x37')){_0x5b70ef[_0x283e('0x2d')]=extractCalleridNumber(_0x5b70ef[_0x283e('0x38')]);_0x5b70ef[_0x283e('0x39')]=_0x5b70ef[_0x283e('0x3a')];_0x5b70ef['destinationchannel']=[_0x5b70ef['channel'],_0x5b70ef[_0x283e('0x3b')]=_0x5b70ef[_0x283e('0x3c')]][0x0];_0x5b70ef[_0x283e('0x35')]=_0x5b70ef[_0x283e('0x38')];}else{_0x5b70ef['destination']=_0x5b70ef['calleridnum'];_0x5b70ef[_0x283e('0x39')]=_0x5b70ef[_0x283e('0x3a')];if(_0x5b70ef['disposition']==_0x283e('0x3d')){_0x5b70ef['accountcode']=_0x5b70ef[_0x283e('0x24')];}else{_0x5b70ef[_0x283e('0x1c')]='';}}}}else{_0x5b70ef['callerid']=util['format'](_0x283e('0x3e'),_0x5b70ef[_0x283e('0x3f')],_0x5b70ef['calleridnum']);}if(RpcVoiceTransferReport['transfers'][_0x5b70ef[_0x283e('0x40')]]){var _0xb46265=RpcVoiceTransferReport['transfers'][_0x5b70ef[_0x283e('0x40')]];_0xb46265[_0x283e('0x41')]=_0x5b70ef['uniqueid'];RpcVoiceTransferReport['blindTransfer'](_0xb46265);delete RpcVoiceTransferReport[_0x283e('0x42')][_0x5b70ef['linkedid']];}RpcVoiceCallReport[_0x283e('0x43')](_0x5b70ef);if(_0x5b70ef['monitor']){for(var _0x3c07d2=0x0;_0x3c07d2<_0x5b70ef[_0x283e('0x44')][_0x283e('0x22')];_0x3c07d2+=0x1){_0x5b70ef['monitorFilename']=_0x5b70ef[_0x283e('0x44')][_0x3c07d2][_0x283e('0x45')];_0x5b70ef[_0x283e('0x46')]=_0x5b70ef[_0x283e('0x44')][_0x3c07d2]['createdAt'];if(_0x5b70ef[_0x283e('0x2e')]==_0x283e('0x37')){_0x5b70ef[_0x283e('0x39')]=_0x5b70ef[_0x283e('0x24')];_0x5b70ef[_0x283e('0x3f')]=_0x5b70ef['connectedlinename'];_0x5b70ef[_0x283e('0x24')]=_0x5b70ef[_0x283e('0x1c')];_0x5b70ef[_0x283e('0x47')]=_0x5b70ef['membername'];_0x5b70ef[_0x283e('0x2e')]=_0x5b70ef[_0x283e('0x3a')];}else if(_0x5b70ef[_0x283e('0x2e')]==_0x283e('0x48')){_0x5b70ef['calleridnum']=_0x5b70ef[_0x283e('0x2d')];_0x5b70ef[_0x283e('0x2e')]=_0x5b70ef[_0x283e('0x3a')];}RpcVoiceRecording['create'](_0x5b70ef);}}};Report[_0x283e('0x21')][_0x283e('0x49')]=function(_0x331192){if(_['isArray'](_0x331192)){_0x331192[_0x283e('0x4a')](function(_0x100d50){RpcVoiceAgentReport[_0x283e('0x43')](_0x100d50);});}else{RpcVoiceAgentReport['create'](_0x331192);}};Report['prototype']['voiceDialReport']=function(_0x339501){RpcVoiceDialReport['create'](_0x339501);var _0x45c41e;var _0x55e7cd;var _0x4ca764=_0x339501[_0x283e('0x3b')];if(_[_0x283e('0x4b')](_0x4ca764,_0x283e('0x4c'))){_0x55e7cd=_0x4ca764['substring'](_0x4ca764[_0x283e('0x4d')]('/')+0x1,_0x4ca764['indexOf']('@'));_0x45c41e=_[_0x283e('0x1b')](this[_0x283e('0xe')],function(_0x4d82a7){return _0x4d82a7[_0x283e('0x4e')]==_0x55e7cd||_0x4d82a7[_0x283e('0x4f')]==_0x55e7cd||_0x4d82a7['accountcode']==_0x55e7cd;});}else{_0x55e7cd=_0x4ca764[_0x283e('0x50')](_0x4ca764['indexOf']('/')+0x1,_0x4ca764['lastIndexOf']('-'));_0x45c41e=this[_0x283e('0x23')](_0x55e7cd);}if(_0x45c41e){_0x339501[_0x283e('0x27')]=_[_0x283e('0x1e')](_0x45c41e[_0x283e('0x27')])?util['format'](_0x283e('0x20'),_0x45c41e[_0x283e('0x1d')]):_0x45c41e[_0x283e('0x27')];_0x339501['membername']=_0x45c41e['name'];_0x339501[_0x283e('0x1c')]=_0x45c41e['accountcode'];RpcMemberReport['voiceDialReport'](_0x339501);}};Report[_0x283e('0x21')][_0x283e('0x19')]=function(_0x145842){RpcVoiceTransferReport['transfers'][_0x145842[_0x283e('0x51')]]=_0x145842;};Report['prototype'][_0x283e('0x1a')]=function(_0x18390d){RpcVoiceTransferReport['attendedTransfer'](_0x18390d);};module[_0x283e('0x52')]=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd28a=['[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','registry','bind','syncDeviceState','syncPeerStatus','resolve','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','[userReport][devicestatelist]','[userReport][sippeerstatus]','prototype','syncRealtimeShow','isNotNull','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','find','event','actionid','debug','trunk:%s','name','trunk:save','[userReport][registry]','[userReport][devicestatechange]','device','local','inuse','toLowerCase','stateTime','format','updateStatusRealtime','toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','substring','indexOf','mobile','phone','accountcode','peerstatus','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','[userReport][peerstatus]','registered','status','address'];(function(_0x4d286d,_0x52f36c){var _0x54d1da=function(_0x370c25){while(--_0x370c25){_0x4d286d['push'](_0x4d286d['shift']());}};_0x54d1da(++_0x52f36c);}(_0xd28a,0xdd));var _0xad28=function(_0x525c7b,_0x488fcc){_0x525c7b=_0x525c7b-0x0;var _0x27b33e=_0xd28a[_0x525c7b];return _0x27b33e;};'use strict';var _=require(_0xad28('0x0'));var moment=require(_0xad28('0x1'));var util=require(_0xad28('0x2'));var Redis=require(_0xad28('0x3'));var BPromise=require('bluebird');var config=require(_0xad28('0x4'));var logger=require(_0xad28('0x5'))(_0xad28('0x6'));var ami=require('../ami');config[_0xad28('0x7')]=_[_0xad28('0x8')](config[_0xad28('0x7')],{'host':_0xad28('0x9'),'port':0x18eb});var io=require(_0xad28('0xa'))(new Redis(config[_0xad28('0x7')]));function UserReport(_0x2c6373){this[_0xad28('0xb')]=_0x2c6373['trunks'];this[_0xad28('0xc')]=_0x2c6373[_0xad28('0xc')];this[_0xad28('0xd')]=_0x2c6373[_0xad28('0xd')];ami['on'](_0xad28('0xe'),this[_0xad28('0xf')]['bind'](this));ami['on'](_0xad28('0x10'),this['syncRegistry'][_0xad28('0x11')](this));ami['on']('devicestatechange',this[_0xad28('0x12')]['bind'](this));ami['on']('peerstatus',this[_0xad28('0x13')][_0xad28('0x11')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise[_0xad28('0x14')]()[_0xad28('0x15')](ami[_0xad28('0x16')]())[_0xad28('0x17')](function(_0x131a54){logger[_0xad28('0x18')](_0xad28('0x19'),util[_0xad28('0x1a')](_0x131a54,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0xad28('0x14')]()[_0xad28('0x15')](ami[_0xad28('0x1b')]())[_0xad28('0x17')](function(_0x30bcb8){logger['error'](_0xad28('0x1c'),util[_0xad28('0x1a')](_0x30bcb8,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0xad28('0x14')]()['then'](ami['actionSipPeerStatus']())['catch'](function(_0x19bb8a){logger['error'](_0xad28('0x1d'),util['inspect'](_0x19bb8a,{'showHidden':![],'depth':null}));});}UserReport[_0xad28('0x1e')][_0xad28('0x1f')]=function(){setInterval(function(){BPromise[_0xad28('0x14')]()[_0xad28('0x15')](showSipRegistrations())[_0xad28('0x15')](listDeviceStates())['then'](showPeersStatus());},0x32c8);};UserReport[_0xad28('0x1e')][_0xad28('0x20')]=function(_0x35fee8){return _0x35fee8!==null&&!_['isUndefined'](_0x35fee8);};UserReport['prototype'][_0xad28('0x21')]=function(_0x43a5c6,_0x3d7f36,_0x55dcff){io['to'](_0x43a5c6)[_0xad28('0x21')](_0x3d7f36,_0x55dcff);};UserReport['prototype'][_0xad28('0xf')]=function(_0xb59d3f){try{if(this[_0xad28('0x20')](_0xb59d3f)){logger[_0xad28('0x22')](_0xad28('0x23'),_0xb59d3f[_0xad28('0x24')],_0xb59d3f[_0xad28('0x25')]);logger['debug']('[userReport][registry]',util['inspect'](_0xb59d3f,{'showHidden':![],'depth':null}));var _0x267c7e=_[_0xad28('0x26')](this[_0xad28('0xb')],{'defaultuser':_0xb59d3f[_0xad28('0x24')]});if(_0x267c7e){_0xb59d3f['stateRegistry']=_0xb59d3f[_0xad28('0x25')];_['merge'](_0x267c7e,_['omit'](_0xb59d3f,[_0xad28('0x27'),_0xad28('0x28'),_0xad28('0x24'),_0xad28('0x25')]));logger[_0xad28('0x29')]('[userReport][registry]\x20sending\x20trunk:save\x20event:',util[_0xad28('0x1a')](_0x267c7e,{'showHidden':![],'depth':null}));this[_0xad28('0x21')](util['format'](_0xad28('0x2a'),_0x267c7e[_0xad28('0x2b')]),_0xad28('0x2c'),_0x267c7e);}}}catch(_0x2eea6b){logger[_0xad28('0x18')](_0xad28('0x2d'),util[_0xad28('0x1a')](_0x2eea6b,{'showHidden':![],'depth':null}));}};UserReport[_0xad28('0x1e')][_0xad28('0x12')]=function(_0x1326ab){try{if(this[_0xad28('0x20')](_0x1326ab)){logger[_0xad28('0x22')]('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x1326ab['device'],_0x1326ab['state']);logger[_0xad28('0x29')](_0xad28('0x2e'),util[_0xad28('0x1a')](_0x1326ab,{'showHidden':![],'depth':null}));if(this['agents'][_0x1326ab[_0xad28('0x2f')]]){if(!this[_0xad28('0xc')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x30')]||_0x1326ab['state']['toLowerCase']()==_0xad28('0x31')){this[_0xad28('0xc')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x30')]=![];if(this[_0xad28('0xc')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x25')]!==_0x1326ab[_0xad28('0x25')][_0xad28('0x32')]()){this['agents'][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x33')]=_['toNumber'](moment()[_0xad28('0x34')]('x'));}this['agents'][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x25')]=_0x1326ab[_0xad28('0x25')][_0xad28('0x32')]();this['agents'][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x35')](_0x1326ab);}}else if(this[_0xad28('0xd')][_0x1326ab[_0xad28('0x2f')]]){if(this[_0xad28('0xd')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x25')]!==_0x1326ab[_0xad28('0x25')][_0xad28('0x32')]()){this['telephones'][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x33')]=_[_0xad28('0x36')](moment()[_0xad28('0x34')]('x'));}this[_0xad28('0xd')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x25')]=_0x1326ab[_0xad28('0x25')][_0xad28('0x32')]();logger['debug'](_0xad28('0x37'),util[_0xad28('0x1a')](this[_0xad28('0xd')][_0x1326ab[_0xad28('0x2f')]],{'showHidden':![],'depth':null}));this[_0xad28('0x21')](util['format'](_0xad28('0x38'),this['telephones'][_0x1326ab['device']][_0xad28('0x2b')]),_0xad28('0x39'),this['telephones'][_0x1326ab[_0xad28('0x2f')]]);}else if(this[_0xad28('0xb')][_0x1326ab[_0xad28('0x2f')]]){if(this[_0xad28('0xb')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x25')]!==_0x1326ab[_0xad28('0x25')][_0xad28('0x32')]()){this[_0xad28('0xb')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x33')]=_['toNumber'](moment()[_0xad28('0x34')]('x'));}this[_0xad28('0xb')][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x25')]=_0x1326ab['state'][_0xad28('0x32')]();logger[_0xad28('0x29')](_0xad28('0x3a'),util[_0xad28('0x1a')](this['trunks'][_0x1326ab[_0xad28('0x2f')]],{'showHidden':![],'depth':null}));this[_0xad28('0x21')](util['format'](_0xad28('0x2a'),this['trunks'][_0x1326ab[_0xad28('0x2f')]][_0xad28('0x2b')]),_0xad28('0x2c'),this[_0xad28('0xb')][_0x1326ab['device']]);}else if(_['startsWith'](_0x1326ab[_0xad28('0x2f')],'Local')){var _0x39dd50=_0x1326ab[_0xad28('0x2f')];var _0x338561=_0x39dd50[_0xad28('0x3b')](_0x39dd50[_0xad28('0x3c')]('/')+0x1,_0x39dd50['indexOf']('@'));var _0x3c7993=_[_0xad28('0x26')](this[_0xad28('0xc')],function(_0x5579c7){return _0x5579c7[_0xad28('0x3d')]==_0x338561||_0x5579c7[_0xad28('0x3e')]==_0x338561||_0x5579c7[_0xad28('0x3f')]==_0x338561;});if(_0x3c7993){if(_0x3c7993['state']!==_0x1326ab['state'][_0xad28('0x32')]()){_0x3c7993[_0xad28('0x33')]=_[_0xad28('0x36')](moment()[_0xad28('0x34')]('x'));}_0x3c7993[_0xad28('0x25')]=_0x1326ab['state'][_0xad28('0x32')]();_0x3c7993['local']=!![];_0x3c7993[_0xad28('0x35')](_0x1326ab);}}}}catch(_0x4ce886){logger[_0xad28('0x18')](_0xad28('0x2e'),util[_0xad28('0x1a')](_0x4ce886,{'showHidden':![],'depth':null}));}};UserReport[_0xad28('0x1e')]['syncPeerStatus']=function(_0x13f32e){try{if(this['isNotNull'](_0x13f32e)&&this['isNotNull'](_0x13f32e[_0xad28('0x40')])){logger['info'](_0xad28('0x41'),_0x13f32e[_0xad28('0x42')],_0x13f32e['address'],_0x13f32e[_0xad28('0x40')]);logger[_0xad28('0x29')](_0xad28('0x43'),util[_0xad28('0x1a')](_0x13f32e,{'showHidden':![],'depth':null}));if(this[_0xad28('0xc')][_0x13f32e['peer']]){if(!this[_0xad28('0xc')][_0x13f32e['peer']][_0xad28('0x30')]||_0x13f32e[_0xad28('0x40')][_0xad28('0x32')]()==_0xad28('0x44')){this['agents'][_0x13f32e['peer']][_0xad28('0x30')]=![];this['agents'][_0x13f32e['peer']][_0xad28('0x45')]=_0x13f32e[_0xad28('0x40')][_0xad28('0x32')]();this[_0xad28('0xc')][_0x13f32e['peer']][_0xad28('0x46')]=_0x13f32e[_0xad28('0x46')];this[_0xad28('0xc')][_0x13f32e[_0xad28('0x42')]][_0xad28('0x35')](_0x13f32e);}}else if(this[_0xad28('0xd')][_0x13f32e[_0xad28('0x42')]]){this['telephones'][_0x13f32e[_0xad28('0x42')]][_0xad28('0x45')]=_0x13f32e[_0xad28('0x40')]['toLowerCase']();this['telephones'][_0x13f32e[_0xad28('0x42')]]['address']=_0x13f32e['address'];logger['debug'](_0xad28('0x47'),util[_0xad28('0x1a')](this[_0xad28('0xd')][_0x13f32e[_0xad28('0x42')]],{'showHidden':![],'depth':null}));this[_0xad28('0x21')](util[_0xad28('0x34')](_0xad28('0x38'),this[_0xad28('0xd')][_0x13f32e[_0xad28('0x42')]][_0xad28('0x2b')]),_0xad28('0x39'),this[_0xad28('0xd')][_0x13f32e[_0xad28('0x42')]]);}else if(this[_0xad28('0xb')][_0x13f32e['peer']]){this[_0xad28('0xb')][_0x13f32e[_0xad28('0x42')]]['status']=_0x13f32e[_0xad28('0x40')][_0xad28('0x32')]();this[_0xad28('0xb')][_0x13f32e[_0xad28('0x42')]][_0xad28('0x46')]=_0x13f32e['address'];logger[_0xad28('0x29')](_0xad28('0x48'),util[_0xad28('0x1a')](this[_0xad28('0xb')][_0x13f32e['peer']],{'showHidden':![],'depth':null}));this[_0xad28('0x21')](util[_0xad28('0x34')](_0xad28('0x2a'),this['trunks'][_0x13f32e[_0xad28('0x42')]][_0xad28('0x2b')]),_0xad28('0x2c'),this[_0xad28('0xb')][_0x13f32e[_0xad28('0x42')]]);}}}catch(_0x185727){logger[_0xad28('0x18')](_0xad28('0x43'),util[_0xad28('0x1a')](_0x185727,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
+var _0x4913=['toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','name','telephone:save','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','substring','indexOf','find','mobile','phone','accountcode','updateStatusRealtime','info','peer','address','[userReport][peerstatus]','registered','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','bluebird','../../../config/environment','../../../config/logger','ami','redis','defaults','localhost','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','peerstatus','syncPeerStatus','syncRealtimeShow','resolve','then','actionSipShowRegistry','error','[userReport][sipshowregistry]','inspect','[userReport][devicestatelist]','actionSipPeerStatus','catch','[userReport][sippeerstatus]','prototype','isNotNull','isUndefined','emit','[userReport][registry]\x20registry:%s\x20state:%s','state','[userReport][registry]','username','stateRegistry','omit','event','actionid','debug','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','trunk:save','syncDeviceState','device','[userReport][devicestatechange]','local','toLowerCase','inuse','stateTime'];(function(_0x3b0731,_0xcf9925){var _0x4204d7=function(_0x635ac5){while(--_0x635ac5){_0x3b0731['push'](_0x3b0731['shift']());}};_0x4204d7(++_0xcf9925);}(_0x4913,0xb3));var _0x3491=function(_0x1bad49,_0xbe5177){_0x1bad49=_0x1bad49-0x0;var _0x4bf3bd=_0x4913[_0x1bad49];return _0x4bf3bd;};'use strict';var _=require(_0x3491('0x0'));var moment=require(_0x3491('0x1'));var util=require(_0x3491('0x2'));var Redis=require('ioredis');var BPromise=require(_0x3491('0x3'));var config=require(_0x3491('0x4'));var logger=require(_0x3491('0x5'))(_0x3491('0x6'));var ami=require('../ami');config[_0x3491('0x7')]=_[_0x3491('0x8')](config[_0x3491('0x7')],{'host':_0x3491('0x9'),'port':0x18eb});var io=require(_0x3491('0xa'))(new Redis(config[_0x3491('0x7')]));function UserReport(_0x455e25){this[_0x3491('0xb')]=_0x455e25[_0x3491('0xb')];this['agents']=_0x455e25[_0x3491('0xc')];this[_0x3491('0xd')]=_0x455e25[_0x3491('0xd')];ami['on'](_0x3491('0xe'),this[_0x3491('0xf')]['bind'](this));ami['on']('registry',this[_0x3491('0xf')][_0x3491('0x10')](this));ami['on'](_0x3491('0x11'),this['syncDeviceState'][_0x3491('0x10')](this));ami['on'](_0x3491('0x12'),this[_0x3491('0x13')][_0x3491('0x10')](this));return this[_0x3491('0x14')]();}function showSipRegistrations(){Promise[_0x3491('0x15')]()[_0x3491('0x16')](ami[_0x3491('0x17')]())['catch'](function(_0x2eacc4){logger[_0x3491('0x18')](_0x3491('0x19'),util[_0x3491('0x1a')](_0x2eacc4,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x3491('0x15')]()[_0x3491('0x16')](ami['actionDeviceStateList']())['catch'](function(_0x2586ab){logger[_0x3491('0x18')](_0x3491('0x1b'),util[_0x3491('0x1a')](_0x2586ab,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x3491('0x15')]()['then'](ami[_0x3491('0x1c')]())[_0x3491('0x1d')](function(_0x77b416){logger['error'](_0x3491('0x1e'),util[_0x3491('0x1a')](_0x77b416,{'showHidden':![],'depth':null}));});}UserReport[_0x3491('0x1f')][_0x3491('0x14')]=function(){setInterval(function(){BPromise[_0x3491('0x15')]()[_0x3491('0x16')](showSipRegistrations())[_0x3491('0x16')](listDeviceStates())[_0x3491('0x16')](showPeersStatus());},0x32c8);};UserReport[_0x3491('0x1f')][_0x3491('0x20')]=function(_0x10f899){return _0x10f899!==null&&!_[_0x3491('0x21')](_0x10f899);};UserReport['prototype'][_0x3491('0x22')]=function(_0x1a75b1,_0x50019d,_0x34dc6d){io['to'](_0x1a75b1)['emit'](_0x50019d,_0x34dc6d);};UserReport[_0x3491('0x1f')][_0x3491('0xf')]=function(_0x41ee64){try{if(this[_0x3491('0x20')](_0x41ee64)){logger['info'](_0x3491('0x23'),_0x41ee64['username'],_0x41ee64[_0x3491('0x24')]);logger['debug'](_0x3491('0x25'),util['inspect'](_0x41ee64,{'showHidden':![],'depth':null}));var _0x32bced=_['find'](this[_0x3491('0xb')],{'defaultuser':_0x41ee64[_0x3491('0x26')]});if(_0x32bced){_0x41ee64[_0x3491('0x27')]=_0x41ee64[_0x3491('0x24')];_['merge'](_0x32bced,_[_0x3491('0x28')](_0x41ee64,[_0x3491('0x29'),_0x3491('0x2a'),'username','state']));logger[_0x3491('0x2b')](_0x3491('0x2c'),util['inspect'](_0x32bced,{'showHidden':![],'depth':null}));this[_0x3491('0x22')](util[_0x3491('0x2d')](_0x3491('0x2e'),_0x32bced['name']),_0x3491('0x2f'),_0x32bced);}}}catch(_0xe76026){logger[_0x3491('0x18')](_0x3491('0x25'),util[_0x3491('0x1a')](_0xe76026,{'showHidden':![],'depth':null}));}};UserReport[_0x3491('0x1f')][_0x3491('0x30')]=function(_0x2d1408){try{if(this[_0x3491('0x20')](_0x2d1408)){logger['info']('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x2d1408[_0x3491('0x31')],_0x2d1408[_0x3491('0x24')]);logger[_0x3491('0x2b')](_0x3491('0x32'),util[_0x3491('0x1a')](_0x2d1408,{'showHidden':![],'depth':null}));if(this[_0x3491('0xc')][_0x2d1408[_0x3491('0x31')]]){if(!this['agents'][_0x2d1408[_0x3491('0x31')]][_0x3491('0x33')]||_0x2d1408['state'][_0x3491('0x34')]()==_0x3491('0x35')){this['agents'][_0x2d1408['device']][_0x3491('0x33')]=![];if(this['agents'][_0x2d1408[_0x3491('0x31')]][_0x3491('0x24')]!==_0x2d1408['state'][_0x3491('0x34')]()){this[_0x3491('0xc')][_0x2d1408[_0x3491('0x31')]][_0x3491('0x36')]=_[_0x3491('0x37')](moment()[_0x3491('0x2d')]('x'));}this['agents'][_0x2d1408[_0x3491('0x31')]][_0x3491('0x24')]=_0x2d1408[_0x3491('0x24')]['toLowerCase']();this[_0x3491('0xc')][_0x2d1408[_0x3491('0x31')]]['updateStatusRealtime'](_0x2d1408);}}else if(this[_0x3491('0xd')][_0x2d1408[_0x3491('0x31')]]){if(this[_0x3491('0xd')][_0x2d1408[_0x3491('0x31')]]['state']!==_0x2d1408[_0x3491('0x24')]['toLowerCase']()){this[_0x3491('0xd')][_0x2d1408[_0x3491('0x31')]][_0x3491('0x36')]=_[_0x3491('0x37')](moment()[_0x3491('0x2d')]('x'));}this[_0x3491('0xd')][_0x2d1408['device']][_0x3491('0x24')]=_0x2d1408[_0x3491('0x24')][_0x3491('0x34')]();logger[_0x3491('0x2b')](_0x3491('0x38'),util[_0x3491('0x1a')](this[_0x3491('0xd')][_0x2d1408[_0x3491('0x31')]],{'showHidden':![],'depth':null}));this[_0x3491('0x22')](util[_0x3491('0x2d')](_0x3491('0x39'),this[_0x3491('0xd')][_0x2d1408[_0x3491('0x31')]][_0x3491('0x3a')]),_0x3491('0x3b'),this['telephones'][_0x2d1408['device']]);}else if(this[_0x3491('0xb')][_0x2d1408['device']]){if(this[_0x3491('0xb')][_0x2d1408[_0x3491('0x31')]]['state']!==_0x2d1408[_0x3491('0x24')][_0x3491('0x34')]()){this[_0x3491('0xb')][_0x2d1408[_0x3491('0x31')]]['stateTime']=_[_0x3491('0x37')](moment()['format']('x'));}this[_0x3491('0xb')][_0x2d1408[_0x3491('0x31')]]['state']=_0x2d1408['state'][_0x3491('0x34')]();logger['debug'](_0x3491('0x3c'),util[_0x3491('0x1a')](this[_0x3491('0xb')][_0x2d1408[_0x3491('0x31')]],{'showHidden':![],'depth':null}));this['emit'](util[_0x3491('0x2d')](_0x3491('0x2e'),this[_0x3491('0xb')][_0x2d1408[_0x3491('0x31')]][_0x3491('0x3a')]),_0x3491('0x2f'),this[_0x3491('0xb')][_0x2d1408[_0x3491('0x31')]]);}else if(_[_0x3491('0x3d')](_0x2d1408[_0x3491('0x31')],_0x3491('0x3e'))){var _0x1a565a=_0x2d1408[_0x3491('0x31')];var _0x311dba=_0x1a565a[_0x3491('0x3f')](_0x1a565a[_0x3491('0x40')]('/')+0x1,_0x1a565a[_0x3491('0x40')]('@'));var _0x56e303=_[_0x3491('0x41')](this[_0x3491('0xc')],function(_0x270455){return _0x270455[_0x3491('0x42')]==_0x311dba||_0x270455[_0x3491('0x43')]==_0x311dba||_0x270455[_0x3491('0x44')]==_0x311dba;});if(_0x56e303){if(_0x56e303['state']!==_0x2d1408[_0x3491('0x24')]['toLowerCase']()){_0x56e303[_0x3491('0x36')]=_['toNumber'](moment()[_0x3491('0x2d')]('x'));}_0x56e303[_0x3491('0x24')]=_0x2d1408[_0x3491('0x24')]['toLowerCase']();_0x56e303['local']=!![];_0x56e303[_0x3491('0x45')](_0x2d1408);}}}}catch(_0x554a20){logger[_0x3491('0x18')]('[userReport][devicestatechange]',util[_0x3491('0x1a')](_0x554a20,{'showHidden':![],'depth':null}));}};UserReport[_0x3491('0x1f')][_0x3491('0x13')]=function(_0x76e460){try{if(this[_0x3491('0x20')](_0x76e460)&&this[_0x3491('0x20')](_0x76e460[_0x3491('0x12')])){logger[_0x3491('0x46')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0x76e460[_0x3491('0x47')],_0x76e460[_0x3491('0x48')],_0x76e460[_0x3491('0x12')]);logger['debug'](_0x3491('0x49'),util['inspect'](_0x76e460,{'showHidden':![],'depth':null}));if(this[_0x3491('0xc')][_0x76e460[_0x3491('0x47')]]){if(!this['agents'][_0x76e460['peer']][_0x3491('0x33')]||_0x76e460['peerstatus'][_0x3491('0x34')]()==_0x3491('0x4a')){this['agents'][_0x76e460['peer']]['local']=![];this['agents'][_0x76e460[_0x3491('0x47')]][_0x3491('0x4b')]=_0x76e460[_0x3491('0x12')][_0x3491('0x34')]();this[_0x3491('0xc')][_0x76e460[_0x3491('0x47')]][_0x3491('0x48')]=_0x76e460[_0x3491('0x48')];this['agents'][_0x76e460[_0x3491('0x47')]][_0x3491('0x45')](_0x76e460);}}else if(this[_0x3491('0xd')][_0x76e460['peer']]){this[_0x3491('0xd')][_0x76e460[_0x3491('0x47')]][_0x3491('0x4b')]=_0x76e460[_0x3491('0x12')][_0x3491('0x34')]();this[_0x3491('0xd')][_0x76e460['peer']][_0x3491('0x48')]=_0x76e460[_0x3491('0x48')];logger[_0x3491('0x2b')](_0x3491('0x4c'),util['inspect'](this['telephones'][_0x76e460[_0x3491('0x47')]],{'showHidden':![],'depth':null}));this[_0x3491('0x22')](util[_0x3491('0x2d')](_0x3491('0x39'),this[_0x3491('0xd')][_0x76e460[_0x3491('0x47')]]['name']),_0x3491('0x3b'),this[_0x3491('0xd')][_0x76e460[_0x3491('0x47')]]);}else if(this[_0x3491('0xb')][_0x76e460['peer']]){this['trunks'][_0x76e460['peer']][_0x3491('0x4b')]=_0x76e460['peerstatus'][_0x3491('0x34')]();this[_0x3491('0xb')][_0x76e460[_0x3491('0x47')]][_0x3491('0x48')]=_0x76e460[_0x3491('0x48')];logger['debug'](_0x3491('0x4d'),util[_0x3491('0x1a')](this['trunks'][_0x76e460[_0x3491('0x47')]],{'showHidden':![],'depth':null}));this[_0x3491('0x22')](util[_0x3491('0x2d')](_0x3491('0x2e'),this[_0x3491('0xb')][_0x76e460[_0x3491('0x47')]][_0x3491('0x3a')]),_0x3491('0x2f'),this[_0x3491('0xb')][_0x76e460[_0x3491('0x47')]]);}}}catch(_0x1422bc){logger[_0x3491('0x18')](_0x3491('0x49'),util['inspect'](_0x1422bc,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2564=['reason','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:','custom:agentansweredelsewhere','[%s][voiceAgentReport][agentconnect]','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20event:','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','agentringnoanswerAt','rejected','[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:','[%s][voiceAgentReport][agentringnoanswer]','hasOwnProperty','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:','custom:agentqueuecallerabandon','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20event:','agentcompleteAt','transfer','talktime','acwtime','acwTimeout','agentacw','interface','[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:','custom:agentcomplete','user:agentcomplete','[%s][voiceAgentReport][agentcomplete]','[%s][voiceAgentReport][varset]\x20event:','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','addVariable','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosrtt','sipcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','[%s][voiceAgentReport][hangup]\x20destuniqueid:%s','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','[%s][voiceAgentReport][hangup]','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','transfereruniqueid','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][musiconholdstart]\x20event:','channel','substring','lastIndexOf','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','[%s][voiceAgentReport][musiconholdstop]\x20event:','[%s][voiceAgentReport][musiconholdstop]\x20interface:%s','[%s][voiceAgentReport][musiconholdstop]','exports','moment','util','../../../config/environment','../../../config/logger','ami','../ami','defaults','redis','channels','voiceChannels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','syncAgentConnect','agentringnoanswer','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','hangup','syncHangup','musiconholdstart','syncMusicOnHoldStart','syncMusicOnHoldStop','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','prototype','emit','isNotNull','info','[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','uniqueid','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','isUndefined','format','YYYY-MM-DD\x20HH:mm:ss','called','queue','type','inbound','voice','merge','omit','event','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:','user:%s','membername','user:called','error','[%s][voiceAgentReport][agentconnect]\x20event:','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','holdtime','lastevent','routealias','destconnectedlinenum','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:','custom:agentconnect','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere','answeredelsewheredestinationuniqueid','answered_elsewhere'];(function(_0x5ac6ab,_0x31e863){var _0x3a39f=function(_0x5a7b8a){while(--_0x5a7b8a){_0x5ac6ab['push'](_0x5ac6ab['shift']());}};_0x3a39f(++_0x31e863);}(_0x2564,0x17b));var _0x4256=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x2564[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var moment=require(_0x4256('0x0'));var util=require(_0x4256('0x1'));var Redis=require('ioredis');var config=require(_0x4256('0x2'));var logger=require(_0x4256('0x3'))(_0x4256('0x4'));var ami=require(_0x4256('0x5'));config['redis']=_[_0x4256('0x6')](config[_0x4256('0x7')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4256('0x7')]));function VoiceAgentReport(_0x12501b){this[_0x4256('0x8')]={};this[_0x4256('0x9')]=_0x12501b[_0x4256('0x8')];this['voiceQueues']=_0x12501b[_0x4256('0xa')];this[_0x4256('0xb')]=_0x12501b['agents'];this[_0x4256('0xc')]={};ami['on'](_0x4256('0xd'),this[_0x4256('0xe')][_0x4256('0xf')](this));ami['on'](_0x4256('0x10'),this[_0x4256('0x11')][_0x4256('0xf')](this));ami['on'](_0x4256('0x12'),this['syncAgentRingNoAnswer'][_0x4256('0xf')](this));ami['on'](_0x4256('0x13'),this[_0x4256('0x14')][_0x4256('0xf')](this));ami['on'](_0x4256('0x15'),this[_0x4256('0x16')]['bind'](this));ami['on'](_0x4256('0x17'),this['syncVarSet'][_0x4256('0xf')](this));ami['on'](_0x4256('0x18'),this[_0x4256('0x19')][_0x4256('0xf')](this));ami['on'](_0x4256('0x1a'),this[_0x4256('0x1b')][_0x4256('0xf')](this));ami['on']('musiconholdstop',this[_0x4256('0x1c')][_0x4256('0xf')](this));ami['on'](_0x4256('0x1d'),this[_0x4256('0x1e')][_0x4256('0xf')](this));ami['on'](_0x4256('0x1f'),this[_0x4256('0x20')][_0x4256('0xf')](this));}VoiceAgentReport[_0x4256('0x21')][_0x4256('0x22')]=function(_0x5a95b6,_0x128e1d,_0x489f12){io['to'](_0x5a95b6)['emit'](_0x128e1d,_0x489f12);};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x23')]=function(_0x294bcf){return _0x294bcf!==null&&!_['isUndefined'](_0x294bcf);};VoiceAgentReport[_0x4256('0x21')][_0x4256('0xe')]=function(_0x1da701){try{if(this[_0x4256('0x23')](_0x1da701)){logger[_0x4256('0x24')](_0x4256('0x25'),_0x1da701[_0x4256('0x26')],_0x1da701['membername'],_0x1da701[_0x4256('0x27')]);logger[_0x4256('0x28')](_0x4256('0x29'),_0x1da701[_0x4256('0x26')],util[_0x4256('0x2a')](_0x1da701,{'showHidden':![],'depth':null}));if(_[_0x4256('0x2b')](this[_0x4256('0x8')][_0x1da701[_0x4256('0x26')]])){this['channels'][_0x1da701[_0x4256('0x26')]]={};}if(_[_0x4256('0x2b')](this['channels'][_0x1da701[_0x4256('0x26')]][_0x1da701[_0x4256('0x27')]])){this[_0x4256('0x8')][_0x1da701[_0x4256('0x26')]][_0x1da701[_0x4256('0x27')]]={'agentcalledAt':moment()[_0x4256('0x2c')](_0x4256('0x2d')),'lastevent':_0x4256('0x2e'),'mandatoryDisposition':this[_0x4256('0xa')][_0x1da701[_0x4256('0x2f')]]?this['voiceQueues'][_0x1da701[_0x4256('0x2f')]]['mandatoryDisposition']||![]:![],'type':this[_0x4256('0xa')][_0x1da701[_0x4256('0x2f')]]?this['voiceQueues'][_0x1da701[_0x4256('0x2f')]][_0x4256('0x30')]||_0x4256('0x31'):_0x4256('0x31'),'variables':this[_0x4256('0xc')][_0x1da701['uniqueid']],'motionChannel':_0x4256('0x32')};}_[_0x4256('0x33')](this[_0x4256('0x8')][_0x1da701['uniqueid']][_0x1da701[_0x4256('0x27')]],_[_0x4256('0x34')](_0x1da701,[_0x4256('0x35'),'privilege']));logger[_0x4256('0x28')](_0x4256('0x36'),_0x1da701[_0x4256('0x26')],util[_0x4256('0x2a')](this[_0x4256('0x8')][_0x1da701[_0x4256('0x26')]][_0x1da701[_0x4256('0x27')]],{'showHidden':![],'depth':null}));ami[_0x4256('0x22')](_0x4256('0x37'),this[_0x4256('0x8')][_0x1da701[_0x4256('0x26')]][_0x1da701[_0x4256('0x27')]]);logger[_0x4256('0x28')](_0x4256('0x38'),_0x1da701['uniqueid'],util[_0x4256('0x2a')](this[_0x4256('0x8')][_0x1da701[_0x4256('0x26')]][_0x1da701['destuniqueid']],{'showHidden':![],'depth':null}));this['emit'](util[_0x4256('0x2c')](_0x4256('0x39'),_0x1da701[_0x4256('0x3a')]),_0x4256('0x3b'),this[_0x4256('0x8')][_0x1da701[_0x4256('0x26')]][_0x1da701[_0x4256('0x27')]]);}}catch(_0xf7e394){logger[_0x4256('0x3c')]('[%s][voiceAgentReport][agentcalled]',_0x1da701[_0x4256('0x26')],util[_0x4256('0x2a')](_0xf7e394,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')]['syncAgentConnect']=function(_0x4776a4){try{if(this[_0x4256('0x23')](_0x4776a4)){if(this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]]){logger[_0x4256('0x28')](_0x4256('0x3d'),_0x4776a4[_0x4256('0x26')],util[_0x4256('0x2a')](_0x4776a4,{'showHidden':![],'depth':null}));for(var _0x2417c6 in this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]]){if(this['channels'][_0x4776a4['uniqueid']]['hasOwnProperty'](_0x2417c6)){if(_0x4776a4['destuniqueid']===_0x2417c6){logger[_0x4256('0x24')](_0x4256('0x3e'),_0x4776a4[_0x4256('0x26')],_0x4776a4[_0x4256('0x3a')],_0x4776a4[_0x4256('0x27')]);this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x3f')]=moment()[_0x4256('0x2c')](_0x4256('0x2d'));this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x40')]=_0x4776a4[_0x4256('0x40')];this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6]['connectedlinenum']=_0x4776a4[_0x4256('0x41')];this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x42')]=_0x4776a4[_0x4256('0x42')];this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6]['destchannelstatedesc']=_0x4776a4['destchannelstatedesc'];this['channels'][_0x4776a4['uniqueid']][_0x2417c6][_0x4256('0x43')]=_0x4776a4[_0x4256('0x43')];this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x44')]='connect';if(this[_0x4256('0x9')][this['channels'][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x26')]]){var _0x31415d=this['voiceChannels'][this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x26')]][_0x4256('0x45')];this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6]['routealias']=_0x31415d;_0x4776a4[_0x4256('0x45')]=_0x31415d;}_[_0x4256('0x33')](this[_0x4256('0xb')][_0x4776a4['interface']],_['pick'](_0x4776a4,[_0x4256('0x2f'),_0x4256('0x46'),_0x4256('0x45')]));logger[_0x4256('0x28')](_0x4256('0x47'),_0x4776a4[_0x4256('0x26')],util[_0x4256('0x2a')](this[_0x4256('0x8')][_0x4776a4['uniqueid']][_0x4776a4[_0x4256('0x27')]],{'showHidden':![],'depth':null}));ami[_0x4256('0x22')](_0x4256('0x48'),this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x4776a4[_0x4256('0x27')]]);logger['debug'](_0x4256('0x49'),_0x4776a4[_0x4256('0x26')],util[_0x4256('0x2a')](this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x4776a4[_0x4256('0x27')]],{'showHidden':![],'depth':null}));this[_0x4256('0x22')](util[_0x4256('0x2c')](_0x4256('0x39'),_0x4776a4['membername']),'user:agentconnect',this[_0x4256('0x8')][_0x4776a4['uniqueid']][_0x4776a4['destuniqueid']]);}else if(!this['channels'][_0x4776a4['uniqueid']][_0x2417c6][_0x4256('0x12')]&&!this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x15')]){logger[_0x4256('0x24')](_0x4256('0x4a'),_0x4776a4['uniqueid'],this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6]['membername'],_0x2417c6);this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6]['agentringnoanswer']=!![];this['channels'][_0x4776a4[_0x4256('0x26')]][_0x2417c6]['agentringnoanswerAt']=moment()[_0x4256('0x2c')](_0x4256('0x2d'));this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6][_0x4256('0x4b')]=_0x4776a4['destuniqueid'];this[_0x4256('0x8')][_0x4776a4['uniqueid']][_0x2417c6]['answeredelsewheremembername']=_0x4776a4['membername'];this[_0x4256('0x8')][_0x4776a4['uniqueid']][_0x2417c6][_0x4256('0x44')]=_0x4256('0x4c');this[_0x4256('0x8')][_0x4776a4['uniqueid']][_0x2417c6][_0x4256('0x4d')]=_0x4256('0x4c');logger[_0x4256('0x28')](_0x4256('0x4e'),_0x4776a4[_0x4256('0x26')],util['inspect'](this[_0x4256('0x8')][_0x4776a4[_0x4256('0x26')]][_0x2417c6],{'showHidden':![],'depth':null}));ami[_0x4256('0x22')](_0x4256('0x4f'),this[_0x4256('0x8')][_0x4776a4['uniqueid']][_0x2417c6]);}}}}}}catch(_0x473810){logger[_0x4256('0x3c')](_0x4256('0x50'),_0x4776a4[_0x4256('0x26')],util['inspect'](_0x473810,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x51')]=function(_0x4fa512){try{if(this[_0x4256('0x23')](_0x4fa512)){logger[_0x4256('0x28')](_0x4256('0x52'),_0x4fa512[_0x4256('0x26')],util[_0x4256('0x2a')](_0x4fa512,{'showHidden':![],'depth':null}));if(this[_0x4256('0x8')][_0x4fa512[_0x4256('0x26')]]&&this['channels'][_0x4fa512[_0x4256('0x26')]][_0x4fa512[_0x4256('0x27')]]){logger[_0x4256('0x24')](_0x4256('0x53'),_0x4fa512['uniqueid'],_0x4fa512[_0x4256('0x3a')],_0x4fa512['destuniqueid']);this[_0x4256('0x8')][_0x4fa512['uniqueid']][_0x4fa512['destuniqueid']][_0x4256('0x12')]=!![];this[_0x4256('0x8')][_0x4fa512[_0x4256('0x26')]][_0x4fa512[_0x4256('0x27')]][_0x4256('0x54')]=moment()[_0x4256('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x4256('0x8')][_0x4fa512['uniqueid']][_0x4fa512[_0x4256('0x27')]][_0x4256('0x44')]=_0x4256('0x55');this[_0x4256('0x8')][_0x4fa512['uniqueid']][_0x4fa512[_0x4256('0x27')]][_0x4256('0x4d')]=_0x4256('0x55');logger[_0x4256('0x28')](_0x4256('0x56'),_0x4fa512[_0x4256('0x26')],util[_0x4256('0x2a')](this['channels'][_0x4fa512[_0x4256('0x26')]][_0x4fa512[_0x4256('0x27')]],{'showHidden':![],'depth':null}));ami[_0x4256('0x22')]('custom:agentringnoanswer',this['channels'][_0x4fa512[_0x4256('0x26')]][_0x4fa512['destuniqueid']]);}}}catch(_0x25f21d){logger['error'](_0x4256('0x57'),_0x4fa512['uniqueid'],util['inspect'](_0x25f21d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x14')]=function(_0x57985f){try{if(this['isNotNull'](_0x57985f)){logger[_0x4256('0x28')]('[%s][voiceAgentReport][queuecallerabandon]\x20event:',_0x57985f[_0x4256('0x26')],util[_0x4256('0x2a')](_0x57985f,{'showHidden':![],'depth':null}));if(this[_0x4256('0x8')][_0x57985f[_0x4256('0x26')]]){for(var _0x33418d in this[_0x4256('0x8')][_0x57985f[_0x4256('0x26')]]){if(this['channels'][_0x57985f[_0x4256('0x26')]][_0x4256('0x58')](_0x33418d)&&!this[_0x4256('0x8')][_0x57985f[_0x4256('0x26')]][_0x33418d][_0x4256('0x12')]&&!this[_0x4256('0x8')][_0x57985f[_0x4256('0x26')]][_0x33418d]['agentcomplete']){logger[_0x4256('0x24')](_0x4256('0x59'),_0x57985f[_0x4256('0x26')],this['channels'][_0x57985f[_0x4256('0x26')]][_0x33418d]['membername'],_0x33418d);this['channels'][_0x57985f[_0x4256('0x26')]][_0x33418d][_0x4256('0x12')]=!![];this[_0x4256('0x8')][_0x57985f[_0x4256('0x26')]][_0x33418d][_0x4256('0x54')]=moment()[_0x4256('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x57985f[_0x4256('0x26')]][_0x33418d][_0x4256('0x44')]=_0x4256('0x5a');this['channels'][_0x57985f[_0x4256('0x26')]][_0x33418d]['reason']=_0x4256('0x5a');logger['debug'](_0x4256('0x5b'),_0x57985f[_0x4256('0x26')],util[_0x4256('0x2a')](this[_0x4256('0x8')][_0x57985f['uniqueid']][_0x33418d],{'showHidden':![],'depth':null}));ami[_0x4256('0x22')](_0x4256('0x5c'),this[_0x4256('0x8')][_0x57985f[_0x4256('0x26')]][_0x33418d]);}}}}}catch(_0x315ad2){logger[_0x4256('0x3c')](_0x4256('0x5d'),_0x57985f[_0x4256('0x26')],util[_0x4256('0x2a')](_0x315ad2,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x16')]=function(_0x46cf21){try{if(this[_0x4256('0x23')](_0x46cf21)){logger['debug'](_0x4256('0x5e'),_0x46cf21['uniqueid'],util['inspect'](_0x46cf21,{'showHidden':![],'depth':null}));if(this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]]){for(var _0x1b773d in this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]]){if(this['channels'][_0x46cf21[_0x4256('0x26')]][_0x4256('0x58')](_0x1b773d)){if(this[_0x4256('0x8')][_0x46cf21['uniqueid']][_0x1b773d][_0x4256('0x3f')]&&!this['channels'][_0x46cf21['uniqueid']][_0x1b773d]['agentcomplete']){logger[_0x4256('0x24')]('[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x46cf21[_0x4256('0x26')],this[_0x4256('0x8')][_0x46cf21['uniqueid']][_0x1b773d]['membername'],_0x1b773d);this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]][_0x1b773d][_0x4256('0x15')]=!![];this['channels'][_0x46cf21[_0x4256('0x26')]][_0x1b773d][_0x4256('0x5f')]=moment()[_0x4256('0x2c')](_0x4256('0x2d'));this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]][_0x1b773d][_0x4256('0x44')]='complete';this[_0x4256('0x8')][_0x46cf21['uniqueid']][_0x1b773d][_0x4256('0x4d')]=_0x46cf21['reason']==_0x4256('0x60')?'agent':_0x46cf21['reason'];this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]][_0x1b773d]['talktime']=_0x46cf21[_0x4256('0x61')];if(this[_0x4256('0xa')][_0x46cf21[_0x4256('0x2f')]]&&this[_0x4256('0xa')][_0x46cf21[_0x4256('0x2f')]]['acw']){this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]][_0x1b773d][_0x4256('0x62')]=this[_0x4256('0xa')][_0x46cf21[_0x4256('0x2f')]][_0x4256('0x63')];this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]][_0x1b773d][_0x4256('0x64')]=!![];}this[_0x4256('0xb')][_0x46cf21['interface']]=_[_0x4256('0x34')](this[_0x4256('0xb')][_0x46cf21[_0x4256('0x65')]],[_0x4256('0x2f'),'destconnectedlinenum']);logger['debug'](_0x4256('0x66'),_0x46cf21[_0x4256('0x26')],util[_0x4256('0x2a')](this[_0x4256('0x8')][_0x46cf21['uniqueid']][_0x1b773d],{'showHidden':![],'depth':null}));ami[_0x4256('0x22')](_0x4256('0x67'),this[_0x4256('0x8')][_0x46cf21['uniqueid']][_0x1b773d]);logger[_0x4256('0x28')]('[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:',_0x46cf21['uniqueid'],util['inspect'](this['channels'][_0x46cf21[_0x4256('0x26')]][_0x1b773d],{'showHidden':![],'depth':null}));this[_0x4256('0x22')](util['format'](_0x4256('0x39'),_0x46cf21['membername']),_0x4256('0x68'),this[_0x4256('0x8')][_0x46cf21[_0x4256('0x26')]][_0x1b773d]);}}}}}}catch(_0x1bb7f8){logger[_0x4256('0x3c')](_0x4256('0x69'),_0x46cf21[_0x4256('0x26')],util[_0x4256('0x2a')](_0x1bb7f8,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')]['syncVarSet']=function(_0x98eaa){try{if(this[_0x4256('0x23')](_0x98eaa)){logger[_0x4256('0x28')](_0x4256('0x6a'),_0x98eaa['uniqueid'],util[_0x4256('0x2a')](_0x98eaa,{'showHidden':![],'depth':null}));this['addVariable'](_0x98eaa[_0x4256('0x26')],_[_0x4256('0x6b')](_0x98eaa[_0x4256('0x6c')])[0x0],_0x98eaa[_0x4256('0x6d')]);if(this[_0x4256('0x8')][_0x98eaa[_0x4256('0x26')]]){for(var _0x5b9811 in this[_0x4256('0x8')][_0x98eaa[_0x4256('0x26')]]){if(this[_0x4256('0x8')][_0x98eaa[_0x4256('0x26')]][_0x4256('0x58')](_0x5b9811)){logger[_0x4256('0x24')](_0x4256('0x6e'),_0x98eaa[_0x4256('0x26')],_0x5b9811,_['keys'](_0x98eaa[_0x4256('0x6c')])[0x0],_0x98eaa[_0x4256('0x6d')]);if(_[_0x4256('0x2b')](this[_0x4256('0x8')][_0x98eaa[_0x4256('0x26')]][_0x5b9811][_0x4256('0xc')])){this[_0x4256('0x8')][_0x98eaa[_0x4256('0x26')]][_0x5b9811][_0x4256('0xc')]={};}this[_0x4256('0x8')][_0x98eaa[_0x4256('0x26')]][_0x5b9811]['variables']=this[_0x4256('0xc')][_0x98eaa[_0x4256('0x26')]];}}}}}catch(_0x3a6e72){logger[_0x4256('0x3c')](_0x4256('0x6f'),_0x98eaa[_0x4256('0x26')],util[_0x4256('0x2a')](_0x3a6e72,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x70')]=function(_0xa5ea06,_0x31831c,_0x2aed75){var _0x51b5b4=['rtpaudioqos','rtpaudioqosbridged',_0x4256('0x71'),_0x4256('0x72'),'rtpaudioqosloss','rtpaudioqoslossbridged',_0x4256('0x73'),'rtpaudioqosrttbridged',_0x4256('0x74'),'sipuri','bridgepeer','bridgepvtcallid',_0x4256('0x75'),_0x4256('0x76'),_0x4256('0x77'),_0x4256('0x78'),_0x4256('0x3a'),_0x4256('0x79'),_0x4256('0x7a')];if(!_[_0x4256('0x7b')](_0x31831c)&&!_[_0x4256('0x7c')](_0x51b5b4,_0x31831c)){if(_[_0x4256('0x2b')](this[_0x4256('0xc')][_0xa5ea06])){this[_0x4256('0xc')][_0xa5ea06]={};}this[_0x4256('0xc')][_0xa5ea06][_0x31831c]=_0x2aed75;}};VoiceAgentReport['prototype']['syncHangup']=function(_0x32b5c4){try{if(this[_0x4256('0x23')](_0x32b5c4)){logger[_0x4256('0x28')](_0x4256('0x7d'),_0x32b5c4[_0x4256('0x26')],util[_0x4256('0x2a')](_0x32b5c4,{'showHidden':![],'depth':null}));if(this[_0x4256('0x8')][_0x32b5c4[_0x4256('0x26')]]){for(var _0x602c5 in this[_0x4256('0x8')][_0x32b5c4[_0x4256('0x26')]]){if(this[_0x4256('0x8')][_0x32b5c4[_0x4256('0x26')]][_0x4256('0x58')](_0x602c5)){if(this[_0x4256('0x8')][_0x32b5c4[_0x4256('0x26')]][_0x602c5][_0x4256('0x4d')]==_0x4256('0x60')&&this['channels'][_0x32b5c4[_0x4256('0x26')]][_0x602c5][_0x4256('0x15')]){logger['info'](_0x4256('0x7e'),_0x32b5c4[_0x4256('0x26')],_0x602c5);this['channels'][_0x32b5c4[_0x4256('0x26')]][_0x602c5][_0x4256('0x5f')]=moment()[_0x4256('0x2c')](_0x4256('0x2d'));}}}logger[_0x4256('0x28')](_0x4256('0x7f'),_0x32b5c4[_0x4256('0x26')],util[_0x4256('0x2a')](_[_0x4256('0x80')](this['channels'][_0x32b5c4[_0x4256('0x26')]]),{'showHidden':![],'depth':null}));ami['emit'](_0x4256('0x81'),_[_0x4256('0x80')](this[_0x4256('0x8')][_0x32b5c4[_0x4256('0x26')]]));delete this['channels'][_0x32b5c4[_0x4256('0x26')]];}if(this[_0x4256('0xc')][_0x32b5c4[_0x4256('0x26')]]){delete this[_0x4256('0xc')][_0x32b5c4[_0x4256('0x26')]];}}}catch(_0x1031ca){logger[_0x4256('0x3c')](_0x4256('0x82'),_0x32b5c4[_0x4256('0x26')],util[_0x4256('0x2a')](_0x1031ca,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype']['syncAttendedTransfer']=function(_0x5fefb9){try{if(this[_0x4256('0x23')](_0x5fefb9)){logger['debug']('[%s][voiceAgentReport][attendedtransfer]\x20event:',_0x5fefb9[_0x4256('0x26')],util['inspect'](_0x5fefb9,{'showHidden':![],'depth':null}));if(this[_0x4256('0x8')][_0x5fefb9['transfereeuniqueid']]){for(var _0x312fc8 in this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]]){if(this['channels'][_0x5fefb9[_0x4256('0x83')]]['hasOwnProperty'](_0x312fc8)){if(_0x5fefb9[_0x4256('0x84')]===_0x312fc8){logger[_0x4256('0x24')](_0x4256('0x85'),_0x5fefb9[_0x4256('0x26')],this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]][_0x312fc8][_0x4256('0x3a')],_0x312fc8);var _0x36c5ba=moment();this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]][_0x312fc8][_0x4256('0x15')]=!![];this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]][_0x312fc8][_0x4256('0x5f')]=moment()[_0x4256('0x2c')](_0x4256('0x2d'));this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]][_0x312fc8][_0x4256('0x44')]=_0x4256('0x86');this['channels'][_0x5fefb9['transfereeuniqueid']][_0x312fc8][_0x4256('0x4d')]=_0x4256('0x60');this['channels'][_0x5fefb9['transfereeuniqueid']][_0x312fc8]['talktime']=_0x36c5ba[_0x4256('0x87')](this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]][_0x312fc8][_0x4256('0x3f')],_0x4256('0x88'));}}}}if(this[_0x4256('0x8')][_0x5fefb9['secondtransfereruniqueid']]){var _0x3b6ca1=this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x89')]];this['channels'][_0x5fefb9[_0x4256('0x89')]]=this[_0x4256('0x8')][_0x5fefb9[_0x4256('0x83')]];this['channels'][_0x5fefb9['transfereeuniqueid']]=_0x3b6ca1;}}}catch(_0x49e68c){logger['error'](_0x4256('0x8a'),_0x5fefb9[_0x4256('0x26')],util[_0x4256('0x2a')](_0x49e68c,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x20')]=function(_0x58d9a8){try{if(this['isNotNull'](_0x58d9a8)){logger['debug']('[%s][voiceAgentReport][blindtransfer]\x20event:',_0x58d9a8[_0x4256('0x26')],util[_0x4256('0x2a')](_0x58d9a8,{'showHidden':![],'depth':null}));if(this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]]){for(var _0x422433 in this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]]){if(this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x4256('0x58')](_0x422433)){if(_0x58d9a8[_0x4256('0x8b')]===_0x422433){logger[_0x4256('0x24')](_0x4256('0x8c'),_0x58d9a8[_0x4256('0x26')],this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x3a')],_0x422433);var _0x193ecc=moment();this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x15')]=!![];this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x5f')]=_0x193ecc;this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x44')]=_0x4256('0x86');this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x4d')]=_0x4256('0x60');this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x61')]=_0x193ecc[_0x4256('0x87')](this[_0x4256('0x8')][_0x58d9a8[_0x4256('0x83')]][_0x422433][_0x4256('0x3f')],_0x4256('0x88'));}}}}}}catch(_0x50d927){logger['error']('[%s][voiceAgentReport][blindtransfer]',_0x58d9a8[_0x4256('0x26')],util[_0x4256('0x2a')](_0x50d927,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x4256('0x21')][_0x4256('0x1b')]=function(_0x4204ef){var _0x5c5fbe='';try{if(this[_0x4256('0x23')](_0x4204ef)){logger['debug'](_0x4256('0x8d'),_0x4204ef[_0x4256('0x26')],util[_0x4256('0x2a')](_0x4204ef,{'showHidden':![],'depth':null}));if(_0x4204ef[_0x4256('0x8e')]){_0x5c5fbe=_0x4204ef[_0x4256('0x8e')][_0x4256('0x8f')](0x0,_0x4204ef[_0x4256('0x8e')][_0x4256('0x90')]('-'));if(this[_0x4256('0xb')][_0x5c5fbe]){logger[_0x4256('0x24')](_0x4256('0x91'),_0x4204ef[_0x4256('0x26')],_0x5c5fbe);this[_0x4256('0xb')][_0x5c5fbe][_0x4256('0x92')]=!![];}}}}catch(_0x2e56f9){logger[_0x4256('0x3c')](_0x4256('0x93'),_0x4204ef['uniqueid'],util[_0x4256('0x2a')](_0x2e56f9,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x4256('0x1c')]=function(_0x3e81c5){var _0x3d6844='';try{if(this[_0x4256('0x23')](_0x3e81c5)){logger[_0x4256('0x28')](_0x4256('0x94'),_0x3e81c5[_0x4256('0x26')],util[_0x4256('0x2a')](_0x3e81c5,{'showHidden':![],'depth':null}));if(_0x3e81c5[_0x4256('0x8e')]){_0x3d6844=_0x3e81c5[_0x4256('0x8e')]['substring'](0x0,_0x3e81c5[_0x4256('0x8e')][_0x4256('0x90')]('-'));if(this['agents'][_0x3d6844]){logger[_0x4256('0x24')](_0x4256('0x95'),_0x3e81c5[_0x4256('0x26')],_0x3d6844);this[_0x4256('0xb')][_0x3d6844][_0x4256('0x92')]=![];}}}}catch(_0xb67fe1){logger['error'](_0x4256('0x96'),_0x3e81c5[_0x4256('0x26')],util[_0x4256('0x2a')](_0xb67fe1,{'showHidden':![],'depth':null}));}};module[_0x4256('0x97')]=VoiceAgentReport;
\ No newline at end of file
+var _0xa9e0=['redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart','musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','merge','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:','format','[%s][voiceAgentReport][agentcalled]','[%s][voiceAgentReport][agentconnect]\x20event:','hasOwnProperty','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','lastevent','voiceChannels','routealias','interface','pick','destconnectedlinenum','custom:agentconnect','[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:','user:%s','user:agentconnect','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere','agentringnoanswerAt','answered_elsewhere','[%s][voiceAgentReport][agentconnect]','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','rejected','[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:','custom:agentringnoanswer','error','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','agentringnoanswer','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','reason','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','transfer','agent','talktime','acw','acwtime','agentacw','[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqoslossbridged','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','[%s][voiceAgentReport][hangup]','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','transfereruniqueid','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','channel','substring','lastIndexOf','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','[%s][voiceAgentReport][musiconholdstop]\x20event:','[%s][voiceAgentReport][musiconholdstop]','lodash','moment','util','../../../config/logger','../ami'];(function(_0x5cfdd7,_0x415006){var _0x35246b=function(_0x457060){while(--_0x457060){_0x5cfdd7['push'](_0x5cfdd7['shift']());}};_0x35246b(++_0x415006);}(_0xa9e0,0x123));var _0x0a9e=function(_0x934425,_0x5af72f){_0x934425=_0x934425-0x0;var _0x31d596=_0xa9e0[_0x934425];return _0x31d596;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]]};}_[_0x0a9e('0x2c')](this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]);logger['debug'](_0x0a9e('0x32'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x33')]('user:%s',_0x155cce[_0x0a9e('0x21')]),'user:called',this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]);}}catch(_0x3f3d41){logger['error'](_0x0a9e('0x34'),_0x155cce[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x3f3d41,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncAgentConnect']=function(_0x54135e){try{if(this[_0x0a9e('0x1e')](_0x54135e)){if(this['channels'][_0x54135e[_0x0a9e('0x26')]]){logger[_0x0a9e('0x23')](_0x0a9e('0x35'),_0x54135e[_0x0a9e('0x26')],util['inspect'](_0x54135e,{'showHidden':![],'depth':null}));for(var _0x31916f in this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]]){if(this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x31916f)){if(_0x54135e[_0x0a9e('0x22')]===_0x31916f){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect',_0x54135e[_0x0a9e('0x26')],_0x54135e[_0x0a9e('0x21')],_0x54135e['destuniqueid']);this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x37')]=moment()[_0x0a9e('0x33')]('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x38')]=_0x54135e['connectedlinename'];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x39')]=_0x54135e['connectedlinenum'];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3a')]=_0x54135e[_0x0a9e('0x3a')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3b')]=_0x54135e[_0x0a9e('0x3b')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3c')]=_0x54135e[_0x0a9e('0x3c')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3d')]='connect';if(this['voiceChannels'][this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x26')]]){var _0x315881=this[_0x0a9e('0x3e')][this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x26')]][_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x3f')]=_0x315881;_0x54135e['routealias']=_0x315881;}_[_0x0a9e('0x2c')](this[_0x0a9e('0xa')][_0x54135e[_0x0a9e('0x40')]],_[_0x0a9e('0x41')](_0x54135e,[_0x0a9e('0x28'),_0x0a9e('0x42'),_0x0a9e('0x3f')]));logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:',_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x43'),this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')](_0x0a9e('0x44'),_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x54135e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x33')](_0x0a9e('0x45'),_0x54135e[_0x0a9e('0x21')]),_0x0a9e('0x46'),this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x54135e[_0x0a9e('0x22')]]);}else if(!this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['agentringnoanswer']&&!this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')](_0x0a9e('0x47'),_0x54135e[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x21')],_0x31916f);this['channels'][_0x54135e['uniqueid']][_0x31916f]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f][_0x0a9e('0x48')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['answeredelsewheredestinationuniqueid']=_0x54135e[_0x0a9e('0x22')];this['channels'][_0x54135e[_0x0a9e('0x26')]][_0x31916f]['answeredelsewheremembername']=_0x54135e[_0x0a9e('0x21')];this[_0x0a9e('0x8')][_0x54135e[_0x0a9e('0x26')]][_0x31916f]['lastevent']=_0x0a9e('0x49');this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f]['reason']=_0x0a9e('0x49');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:',_0x54135e[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x54135e['uniqueid']][_0x31916f],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')]('custom:agentansweredelsewhere',this['channels'][_0x54135e['uniqueid']][_0x31916f]);}}}}}}catch(_0x2da03c){logger['error'](_0x0a9e('0x4a'),_0x54135e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2da03c,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x4b')]=function(_0x272738){try{if(this[_0x0a9e('0x1e')](_0x272738)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x272738[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x272738,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']]){logger[_0x0a9e('0x20')](_0x0a9e('0x4c'),_0x272738['uniqueid'],_0x272738[_0x0a9e('0x21')],_0x272738['destuniqueid']);this[_0x0a9e('0x8')][_0x272738['uniqueid']][_0x272738['destuniqueid']]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x272738['uniqueid']][_0x272738[_0x0a9e('0x22')]][_0x0a9e('0x48')]=moment()[_0x0a9e('0x33')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']][_0x0a9e('0x3d')]='rejected';this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738[_0x0a9e('0x22')]]['reason']=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4e'),_0x272738[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738['destuniqueid']],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x4f'),this[_0x0a9e('0x8')][_0x272738[_0x0a9e('0x26')]][_0x272738[_0x0a9e('0x22')]]);}}}catch(_0x4d4a35){logger[_0x0a9e('0x50')](_0x0a9e('0x51'),_0x272738[_0x0a9e('0x26')],util['inspect'](_0x4d4a35,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncQueueCallerAbandon']=function(_0x5211e3){try{if(this[_0x0a9e('0x1e')](_0x5211e3)){logger[_0x0a9e('0x23')](_0x0a9e('0x52'),_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x5211e3,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]]){for(var _0x54a37d in this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x54a37d)&&!this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x53')]&&!this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x54'),_0x5211e3[_0x0a9e('0x26')],this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x21')],_0x54a37d);this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x53')]=!![];this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x48')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this['channels'][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x3d')]=_0x0a9e('0x55');this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d][_0x0a9e('0x56')]=_0x0a9e('0x55');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:',_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x5211e3['uniqueid']][_0x54a37d],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')]('custom:agentqueuecallerabandon',this[_0x0a9e('0x8')][_0x5211e3[_0x0a9e('0x26')]][_0x54a37d]);}}}}}catch(_0x4c46c1){logger[_0x0a9e('0x50')](_0x0a9e('0x57'),_0x5211e3[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c46c1,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x13')]=function(_0x2e9552){try{if(this[_0x0a9e('0x1e')](_0x2e9552)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20event:',_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2e9552,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]]){for(var _0x4abc8f in this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x4abc8f)){if(this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x37')]&&!this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')](_0x0a9e('0x58'),_0x2e9552[_0x0a9e('0x26')],this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x21')],_0x4abc8f);this[_0x0a9e('0x8')][_0x2e9552['uniqueid']][_0x4abc8f][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x59')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]['lastevent']=_0x0a9e('0x5a');this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x56')]=_0x2e9552['reason']==_0x0a9e('0x5b')?_0x0a9e('0x5c'):_0x2e9552[_0x0a9e('0x56')];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x5d')]=_0x2e9552[_0x0a9e('0x5d')];if(this['voiceQueues'][_0x2e9552[_0x0a9e('0x28')]]&&this[_0x0a9e('0x9')][_0x2e9552[_0x0a9e('0x28')]][_0x0a9e('0x5e')]){this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x5f')]=this['voiceQueues'][_0x2e9552[_0x0a9e('0x28')]]['acwTimeout'];this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f][_0x0a9e('0x60')]=!![];}this[_0x0a9e('0xa')][_0x2e9552['interface']]=_['omit'](this[_0x0a9e('0xa')][_0x2e9552[_0x0a9e('0x40')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')](_0x0a9e('0x61'),_0x2e9552['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x2e9552['uniqueid']][_0x4abc8f],{'showHidden':![],'depth':null}));ami['emit']('custom:agentcomplete',this[_0x0a9e('0x8')][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]);logger[_0x0a9e('0x23')](_0x0a9e('0x62'),_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f],{'showHidden':![],'depth':null}));this['emit'](util[_0x0a9e('0x33')](_0x0a9e('0x45'),_0x2e9552[_0x0a9e('0x21')]),_0x0a9e('0x63'),this['channels'][_0x2e9552[_0x0a9e('0x26')]][_0x4abc8f]);}}}}}}catch(_0x32f761){logger[_0x0a9e('0x50')]('[%s][voiceAgentReport][agentcomplete]',_0x2e9552[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x32f761,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x255e49){try{if(this[_0x0a9e('0x1e')](_0x255e49)){logger[_0x0a9e('0x23')](_0x0a9e('0x64'),_0x255e49['uniqueid'],util[_0x0a9e('0x25')](_0x255e49,{'showHidden':![],'depth':null}));this[_0x0a9e('0x65')](_0x255e49['uniqueid'],_[_0x0a9e('0x66')](_0x255e49[_0x0a9e('0x67')])[0x0],_0x255e49[_0x0a9e('0x68')]);if(this['channels'][_0x255e49[_0x0a9e('0x26')]]){for(var _0x52ec10 in this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x0a9e('0x36')](_0x52ec10)){logger[_0x0a9e('0x20')](_0x0a9e('0x69'),_0x255e49[_0x0a9e('0x26')],_0x52ec10,_['keys'](_0x255e49[_0x0a9e('0x67')])[0x0],_0x255e49[_0x0a9e('0x68')]);if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')])){this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x255e49[_0x0a9e('0x26')]][_0x52ec10][_0x0a9e('0xb')]=this[_0x0a9e('0xb')][_0x255e49['uniqueid']];}}}}}catch(_0xc81b64){logger[_0x0a9e('0x50')](_0x0a9e('0x6a'),_0x255e49[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xc81b64,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x65')]=function(_0x1756c7,_0x5ce99d,_0x23b447){var _0x5e725e=[_0x0a9e('0x6b'),_0x0a9e('0x6c'),_0x0a9e('0x6d'),_0x0a9e('0x6e'),'rtpaudioqosloss',_0x0a9e('0x6f'),'rtpaudioqosrtt',_0x0a9e('0x70'),_0x0a9e('0x71'),'sipuri',_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),'memberdynamic','memberinterface',_0x0a9e('0x75'),_0x0a9e('0x21'),_0x0a9e('0x76'),_0x0a9e('0x77')];if(!_[_0x0a9e('0x78')](_0x5ce99d)&&!_[_0x0a9e('0x79')](_0x5e725e,_0x5ce99d)){if(_[_0x0a9e('0x1f')](this[_0x0a9e('0xb')][_0x1756c7])){this[_0x0a9e('0xb')][_0x1756c7]={};}this['variables'][_0x1756c7][_0x5ce99d]=_0x23b447;}};VoiceAgentReport[_0x0a9e('0x1c')]['syncHangup']=function(_0x287324){try{if(this[_0x0a9e('0x1e')](_0x287324)){logger[_0x0a9e('0x23')](_0x0a9e('0x7a'),_0x287324[_0x0a9e('0x26')],util['inspect'](_0x287324,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]){for(var _0x2791c5 in this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]){if(this['channels'][_0x287324['uniqueid']][_0x0a9e('0x36')](_0x2791c5)){if(this['channels'][_0x287324[_0x0a9e('0x26')]][_0x2791c5][_0x0a9e('0x56')]==_0x0a9e('0x5b')&&this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]][_0x2791c5][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x287324[_0x0a9e('0x26')],_0x2791c5);this['channels'][_0x287324[_0x0a9e('0x26')]][_0x2791c5]['agentcompleteAt']=moment()[_0x0a9e('0x33')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger['debug'](_0x0a9e('0x7b'),_0x287324[_0x0a9e('0x26')],util['inspect'](_[_0x0a9e('0x7c')](this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x7d'),_['values'](this['channels'][_0x287324[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x287324[_0x0a9e('0x26')]];}if(this[_0x0a9e('0xb')][_0x287324[_0x0a9e('0x26')]]){delete this['variables'][_0x287324[_0x0a9e('0x26')]];}}}catch(_0xadce3d){logger['error'](_0x0a9e('0x7e'),_0x287324[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xadce3d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x7f')]=function(_0x23b39e){try{if(this[_0x0a9e('0x1e')](_0x23b39e)){logger[_0x0a9e('0x23')](_0x0a9e('0x80'),_0x23b39e[_0x0a9e('0x26')],util['inspect'](_0x23b39e,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]]){for(var _0x2ada60 in this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]]){if(this['channels'][_0x23b39e['transfereeuniqueid']][_0x0a9e('0x36')](_0x2ada60)){if(_0x23b39e[_0x0a9e('0x82')]===_0x2ada60){logger[_0x0a9e('0x20')](_0x0a9e('0x83'),_0x23b39e[_0x0a9e('0x26')],this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x21')],_0x2ada60);var _0x3450ae=moment();this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x23b39e['transfereeuniqueid']][_0x2ada60][_0x0a9e('0x59')]=moment()[_0x0a9e('0x33')](_0x0a9e('0x27'));this['channels'][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60]['lastevent']=_0x0a9e('0x5a');this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x56')]=_0x0a9e('0x5b');this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x5d')]=_0x3450ae[_0x0a9e('0x84')](this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]][_0x2ada60][_0x0a9e('0x37')],_0x0a9e('0x85'));}}}}if(this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x86')]]){var _0x248368=this['channels'][_0x23b39e['secondtransfereruniqueid']];this[_0x0a9e('0x8')][_0x23b39e['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x23b39e[_0x0a9e('0x81')]];this['channels'][_0x23b39e[_0x0a9e('0x81')]]=_0x248368;}}}catch(_0xe2b083){logger[_0x0a9e('0x50')](_0x0a9e('0x87'),_0x23b39e['uniqueid'],util[_0x0a9e('0x25')](_0xe2b083,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1b')]=function(_0x34a791){try{if(this['isNotNull'](_0x34a791)){logger[_0x0a9e('0x23')](_0x0a9e('0x88'),_0x34a791[_0x0a9e('0x26')],util['inspect'](_0x34a791,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]]){for(var _0x17b29d in this['channels'][_0x34a791[_0x0a9e('0x81')]]){if(this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x0a9e('0x36')](_0x17b29d)){if(_0x34a791[_0x0a9e('0x89')]===_0x17b29d){logger['info'](_0x0a9e('0x8a'),_0x34a791[_0x0a9e('0x26')],this['channels'][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x21')],_0x17b29d);var _0x1f6f1c=moment();this['channels'][_0x34a791['transfereeuniqueid']][_0x17b29d]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d]['agentcompleteAt']=_0x1f6f1c;this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x3d')]='complete';this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x56')]=_0x0a9e('0x5b');this[_0x0a9e('0x8')][_0x34a791[_0x0a9e('0x81')]][_0x17b29d][_0x0a9e('0x5d')]=_0x1f6f1c[_0x0a9e('0x84')](this[_0x0a9e('0x8')][_0x34a791['transfereeuniqueid']][_0x17b29d][_0x0a9e('0x37')],'seconds');}}}}}}catch(_0x138cf5){logger[_0x0a9e('0x50')](_0x0a9e('0x8b'),_0x34a791[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x138cf5,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncMusicOnHoldStart']=function(_0x1a0314){var _0x33da81='';try{if(this[_0x0a9e('0x1e')](_0x1a0314)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstart]\x20event:',_0x1a0314[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1a0314,{'showHidden':![],'depth':null}));if(_0x1a0314[_0x0a9e('0x8c')]){_0x33da81=_0x1a0314[_0x0a9e('0x8c')][_0x0a9e('0x8d')](0x0,_0x1a0314[_0x0a9e('0x8c')][_0x0a9e('0x8e')]('-'));if(this[_0x0a9e('0xa')][_0x33da81]){logger[_0x0a9e('0x20')](_0x0a9e('0x8f'),_0x1a0314['uniqueid'],_0x33da81);this[_0x0a9e('0xa')][_0x33da81][_0x0a9e('0x90')]=!![];}}}}catch(_0x2ff265){logger[_0x0a9e('0x50')](_0x0a9e('0x91'),_0x1a0314[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2ff265,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')]['syncMusicOnHoldStop']=function(_0x3b581c){var _0xd2391='';try{if(this[_0x0a9e('0x1e')](_0x3b581c)){logger['debug'](_0x0a9e('0x92'),_0x3b581c[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x3b581c,{'showHidden':![],'depth':null}));if(_0x3b581c[_0x0a9e('0x8c')]){_0xd2391=_0x3b581c[_0x0a9e('0x8c')][_0x0a9e('0x8d')](0x0,_0x3b581c[_0x0a9e('0x8c')][_0x0a9e('0x8e')]('-'));if(this[_0x0a9e('0xa')][_0xd2391]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][musiconholdstop]\x20interface:%s',_0x3b581c[_0x0a9e('0x26')],_0xd2391);this[_0x0a9e('0xa')][_0xd2391][_0x0a9e('0x90')]=![];}}}}catch(_0x3db98f){logger[_0x0a9e('0x50')](_0x0a9e('0x93'),_0x3b581c['uniqueid'],util[_0x0a9e('0x25')](_0x3db98f,{'showHidden':![],'depth':null}));}};module['exports']=VoiceAgentReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b98=['isNil','rec','[%s][voiceCallReport][mixMonitorFilename]','syncVarSet','[%s][voiceCallReport][varset]\x20event:','variable','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','originatecalleridnum','xmd-destination','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','xmd-callerid-preview','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','sipcalluniqueid','parse','sipcalllinkedid','[%s][voiceCallReport][varset]','syncHangup','[%s][voiceCallReport][hangup]\x20event:','cause-txt','billableseconds','answertime','holdtime','omit','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','resolve','then','transferType','undefined','isEmpty','stopRecordingOnTransfer','StopMixMonitor','catch','Action','finally','webbar:stopmonitors','event','BlindTransfer','outbound','custom:voiceCallReport','syncAttendedTransfer','origtransferercalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','transfertargetcalleridnum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','origtransfererlinkedid','some','routeid','ATTENDED','[%s][voiceCallReport][attendedtransfer]','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','extension','transfererchannel','transfereruniqueid','BLIND','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','mohstarttime','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','[%s][voiceCallReport][musiconholdstop]','bluebird','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','../model/channel','../rpc/setting','unknown','not_inuse','busy','invalid','ringing','ringinuse','onhold','set','queue','agi','playback','NO\x20ANSWER','FAILED','ANSWERED','defaults','localhost','socket.io-emitter','redis','channels','agents','blindTransfers','syncNewExten','newexten','bind','syncNewChannel','newstate','syncNewCallerId','attendedtransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','info','[voiceCallReport][coreshowchannels]\x20started','actionCoreShowChannels','error','inspect','prototype','isNotNull','isUndefined','emit','calleridname','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:','uniqueid','linkedid','merge','keys','context','channel','split','exten','xcally-motion-preview','destconnectedlinenum','format','user:%s','name','user:agentconnect','connectedlinenum','[%s][voiceCallReport][newcallerid]','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','starttime','YYYY-MM-DD\x20HH:mm:ss','disposition','from-sip','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','accountcode','OutgoingSpoolFailed','application','applicationdata','appdata','CDR(routeAlias)','toLowerCase','duration','subtract','seconds','pick','lastapplication','lastdata','startsWith','match','[%s][voiceCallReport][newexten]','syncNewState','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','[%s][voiceCallReport][newstate]\x20event:','answered','diff','connectedlinename','destinationchannel','toNumber','channelstate','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','replace','.WAV','monitorFilename','find'];(function(_0x481bf7,_0x437f69){var _0x461787=function(_0xb3bc9d){while(--_0xb3bc9d){_0x481bf7['push'](_0x481bf7['shift']());}};_0x461787(++_0x437f69);}(_0x4b98,0x11c));var _0x84b9=function(_0x405d0f,_0x15924b){_0x405d0f=_0x405d0f-0x0;var _0x366e83=_0x4b98[_0x405d0f];return _0x366e83;};'use strict';var BPromise=require(_0x84b9('0x0'));var _=require(_0x84b9('0x1'));var moment=require(_0x84b9('0x2'));var util=require(_0x84b9('0x3'));var path=require('path');var Redis=require(_0x84b9('0x4'));var config=require(_0x84b9('0x5'));var logger=require(_0x84b9('0x6'))('ami');var ami=require('../ami');var Channel=require(_0x84b9('0x7'));var RpcSetting=require(_0x84b9('0x8'));var statusDesc=[_0x84b9('0x9'),_0x84b9('0xa'),'inuse',_0x84b9('0xb'),_0x84b9('0xc'),'unavailable',_0x84b9('0xd'),_0x84b9('0xe'),_0x84b9('0xf')];var applications=[_0x84b9('0x10'),_0x84b9('0x11'),_0x84b9('0x12'),'dial',_0x84b9('0x13'),'voicemail'];var dispositions=[_0x84b9('0x14'),_0x84b9('0x15'),_0x84b9('0x15'),_0x84b9('0x14'),_0x84b9('0x14'),_0x84b9('0x14'),_0x84b9('0x16'),'BUSY',_0x84b9('0x15'),_0x84b9('0x15'),_0x84b9('0x15')];var actions={};config['redis']=_[_0x84b9('0x17')](config['redis'],{'host':_0x84b9('0x18'),'port':0x18eb});var io=require(_0x84b9('0x19'))(new Redis(config[_0x84b9('0x1a')]));function VoiceCallReport(_0xdf1033){this['channels']=_0xdf1033[_0x84b9('0x1b')];this[_0x84b9('0x1c')]=_0xdf1033['agents'];this[_0x84b9('0x1d')]={};ami['on']('coreshowchannel',this[_0x84b9('0x1e')]['bind'](this));ami['on'](_0x84b9('0x1f'),this['syncNewExten'][_0x84b9('0x20')](this));ami['on']('newchannel',this[_0x84b9('0x21')]['bind'](this));ami['on'](_0x84b9('0x22'),this['syncNewState']['bind'](this));ami['on']('varset',this['syncVarSet'][_0x84b9('0x20')](this));ami['on']('hangup',this['syncHangup'][_0x84b9('0x20')](this));ami['on']('newcallerid',this[_0x84b9('0x23')]['bind'](this));ami['on'](_0x84b9('0x24'),this['syncAttendedTransfer']['bind'](this));ami['on']('blindtransfer',this[_0x84b9('0x25')][_0x84b9('0x20')](this));ami['on'](_0x84b9('0x26'),this[_0x84b9('0x27')][_0x84b9('0x20')](this));ami['on'](_0x84b9('0x28'),this['syncMusicOnHoldStop'][_0x84b9('0x20')](this));try{logger[_0x84b9('0x29')](_0x84b9('0x2a'));ami[_0x84b9('0x2b')]();}catch(_0x1be888){logger[_0x84b9('0x2c')]('[voiceCallReport][coreshowchannels]',util[_0x84b9('0x2d')](_0x1be888,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x2f')]=function(_0x5499fe){return _0x5499fe!==null&&!_[_0x84b9('0x30')](_0x5499fe);};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x31')]=function(_0x2887ef,_0x1dbf64,_0x12dffa){io['to'](_0x2887ef)[_0x84b9('0x31')](_0x1dbf64,_0x12dffa);};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x23')]=function(_0x4bf8ef){try{if(this[_0x84b9('0x2f')](_0x4bf8ef)){logger[_0x84b9('0x29')]('[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s',_0x4bf8ef['uniqueid'],_0x4bf8ef[_0x84b9('0x32')],_0x4bf8ef[_0x84b9('0x33')]);logger[_0x84b9('0x34')](_0x84b9('0x35'),_0x4bf8ef[_0x84b9('0x36')],util['inspect'](_0x4bf8ef,{'showHidden':![],'depth':null}));if(_0x4bf8ef[_0x84b9('0x36')]===_0x4bf8ef[_0x84b9('0x37')]){if(!_[_0x84b9('0x30')](this['channels'][_0x4bf8ef[_0x84b9('0x36')]])){_[_0x84b9('0x38')](this[_0x84b9('0x1b')][_0x4bf8ef['uniqueid']],_['pick'](_0x4bf8ef,_[_0x84b9('0x39')](this[_0x84b9('0x1b')][_0x4bf8ef[_0x84b9('0x36')]])));}}if(_0x4bf8ef[_0x84b9('0x3a')]==='from-sip'){if(this[_0x84b9('0x1c')][_0x4bf8ef[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]){if(_0x4bf8ef[_0x84b9('0x3d')]==_0x84b9('0x3e')){this[_0x84b9('0x1c')][_0x4bf8ef['channel'][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x3f')]=_0x4bf8ef['connectedlinenum'];this[_0x84b9('0x31')](util[_0x84b9('0x40')](_0x84b9('0x41'),this[_0x84b9('0x1c')][_0x4bf8ef[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x42')]),_0x84b9('0x43'),{'destaccountcode':this[_0x84b9('0x1c')][_0x4bf8ef['channel'][_0x84b9('0x3c')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x4bf8ef[_0x84b9('0x44')]});}}}}}catch(_0x1909bd){logger[_0x84b9('0x2c')](_0x84b9('0x45'),_0x4bf8ef[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x1909bd,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x84b9('0x21')]=function(_0x5d73f9){try{if(this[_0x84b9('0x2f')](_0x5d73f9)){logger['debug']('[%s][voiceCallReport][newchannel]\x20event:',_0x5d73f9[_0x84b9('0x36')],util['inspect'](_0x5d73f9,{'showHidden':![],'depth':null}));if(_0x5d73f9[_0x84b9('0x36')]===_0x5d73f9[_0x84b9('0x37')]&&_0x5d73f9[_0x84b9('0x3b')]!='OutgoingSpoolFailed'){if(_[_0x84b9('0x30')](this[_0x84b9('0x1b')][_0x5d73f9[_0x84b9('0x36')]])){logger[_0x84b9('0x29')](_0x84b9('0x46'),_0x5d73f9[_0x84b9('0x36')],_0x5d73f9['context'],_0x5d73f9[_0x84b9('0x3d')]);this[_0x84b9('0x1b')][_0x5d73f9[_0x84b9('0x36')]]=new Channel();this[_0x84b9('0x1b')][_0x5d73f9[_0x84b9('0x36')]][_0x84b9('0x47')]=moment()[_0x84b9('0x40')](_0x84b9('0x48'));this['channels'][_0x5d73f9[_0x84b9('0x36')]][_0x84b9('0x49')]=dispositions[_['toNumber'](_0x5d73f9['channelstate'])];_[_0x84b9('0x38')](this[_0x84b9('0x1b')][_0x5d73f9[_0x84b9('0x36')]],_['pick'](_0x5d73f9,_[_0x84b9('0x39')](this['channels'][_0x5d73f9[_0x84b9('0x36')]])));if(_0x5d73f9[_0x84b9('0x3a')]===_0x84b9('0x4a')){if(this[_0x84b9('0x1c')][_0x5d73f9[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]){if(_[_0x84b9('0x30')](this[_0x84b9('0x1c')][_0x5d73f9[_0x84b9('0x3b')]['split']('-')[0x0]]['destconnectedlinenum'])){this[_0x84b9('0x1c')][_0x5d73f9[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x3f')]=_0x5d73f9[_0x84b9('0x3d')];logger[_0x84b9('0x34')](_0x84b9('0x4b'),_0x5d73f9[_0x84b9('0x36')],util['inspect']({'destaccountcode':this[_0x84b9('0x1c')][_0x5d73f9[_0x84b9('0x3b')]['split']('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x5d73f9[_0x84b9('0x3d')]},{'showHidden':![],'depth':null}));this[_0x84b9('0x31')](util[_0x84b9('0x40')](_0x84b9('0x41'),this[_0x84b9('0x1c')][_0x5d73f9[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x42')]),_0x84b9('0x43'),{'destaccountcode':this[_0x84b9('0x1c')][_0x5d73f9[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x4c')],'destconnectedlinenum':_0x5d73f9[_0x84b9('0x3d')]});}}}}}}}catch(_0x42ab51){logger[_0x84b9('0x2c')]('[%s][voiceCallReport][newchannel]',_0x5d73f9[_0x84b9('0x36')],util['inspect'](_0x42ab51,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x1e')]=function(_0x127a12){try{if(this[_0x84b9('0x2f')](_0x127a12)){logger['debug']('[%s][voiceCallReport][newexten]\x20event:',_0x127a12[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x127a12,{'showHidden':![],'depth':null}));if(_0x127a12['uniqueid']===_0x127a12[_0x84b9('0x37')]&&_0x127a12[_0x84b9('0x3d')]!='h'&&_0x127a12[_0x84b9('0x3b')]!=_0x84b9('0x4d')){_0x127a12[_0x84b9('0x4e')]=_0x127a12[_0x84b9('0x4e')]['toLowerCase']();_0x127a12[_0x84b9('0x4f')]=_0x127a12[_0x84b9('0x50')]&&_0x127a12[_0x84b9('0x50')]['startsWith'](_0x84b9('0x51'))?_0x127a12['appdata']:(_0x127a12['appdata']||_0x127a12[_0x84b9('0x4f')])[_0x84b9('0x52')]();logger['info']('[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s',_0x127a12[_0x84b9('0x36')],_0x127a12['application'],_0x127a12[_0x84b9('0x4f')]);if(_[_0x84b9('0x30')](this[_0x84b9('0x1b')][_0x127a12['uniqueid']])){this[_0x84b9('0x1b')][_0x127a12[_0x84b9('0x36')]]=new Channel();this[_0x84b9('0x1b')][_0x127a12['uniqueid']]['starttime']=_0x127a12[_0x84b9('0x53')]?moment()[_0x84b9('0x54')](moment[_0x84b9('0x53')](_0x127a12[_0x84b9('0x53')])['seconds'](),_0x84b9('0x55'))[_0x84b9('0x40')](_0x84b9('0x48')):moment()[_0x84b9('0x40')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x84b9('0x1b')][_0x127a12[_0x84b9('0x36')]][_0x84b9('0x49')]=_0x84b9('0x14');}_['merge'](this[_0x84b9('0x1b')][_0x127a12['uniqueid']],_[_0x84b9('0x56')](_0x127a12,_[_0x84b9('0x39')](this[_0x84b9('0x1b')][_0x127a12['uniqueid']])));if(_['includes'](applications,_0x127a12[_0x84b9('0x4e')])){this[_0x84b9('0x1b')][_0x127a12['uniqueid']][_0x84b9('0x57')]=_0x127a12[_0x84b9('0x4e')];this['channels'][_0x127a12['uniqueid']][_0x84b9('0x58')]=_0x127a12[_0x84b9('0x4f')];if(_0x127a12['application']==='set'&&_[_0x84b9('0x59')](_0x127a12['applicationdata'][_0x84b9('0x52')](),'cdr(')){var _0x210d29=_0x127a12[_0x84b9('0x4f')]['split']('=');var _0xf04301=_0x210d29[0x0]['toLowerCase']()[_0x84b9('0x5a')](/cdr\((.*)\)/);if(_0xf04301){this[_0x84b9('0x1b')][_0x127a12[_0x84b9('0x36')]][_0xf04301[0x1]]=_0x210d29[0x1];}}else if(_0x127a12[_0x84b9('0x4e')]===_0x84b9('0x11')){this[_0x84b9('0x1b')][_0x127a12[_0x84b9('0x36')]][_0x84b9('0x11')]=_0x127a12[_0x84b9('0x4f')]['split'](',')[0x0];}}}}}catch(_0x15bfee){logger[_0x84b9('0x2c')](_0x84b9('0x5b'),_0x127a12['uniqueid'],util[_0x84b9('0x2d')](_0x15bfee,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x5c')]=function(_0x58da27){try{if(this[_0x84b9('0x2f')](_0x58da27)){logger[_0x84b9('0x29')](_0x84b9('0x5d'),_0x58da27[_0x84b9('0x36')],_0x58da27['linkedid'],_0x58da27[_0x84b9('0x32')],_0x58da27[_0x84b9('0x33')]);logger[_0x84b9('0x34')](_0x84b9('0x5e'),_0x58da27[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x58da27,{'showHidden':![],'depth':null}));if(_0x58da27['uniqueid']!==_0x58da27[_0x84b9('0x37')]){if(this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]]){if(_0x58da27['channelstate']==='6'){if(!this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x5f')]){var _0x225084=moment();this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]]['answered']=!![];this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]]['answertime']=_0x225084[_0x84b9('0x40')](_0x84b9('0x48'));if(this['channels'][_0x58da27[_0x84b9('0x37')]]['starttime']){this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]]['holdtime']=_0x225084[_0x84b9('0x60')](this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x47')],_0x84b9('0x55'));}}this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x37')]=_0x58da27['uniqueid'];if(_0x58da27['calleridnum']!=='xcally-motion-preview'){this['channels'][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x44')]=_0x58da27[_0x84b9('0x33')];}this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x61')]=_0x58da27['calleridname'];this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x62')]=_0x58da27['channel'];this[_0x84b9('0x1b')][_0x58da27['linkedid']]['disposition']=dispositions[_[_0x84b9('0x63')](_0x58da27[_0x84b9('0x64')])];if(this['agents'][_0x58da27[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]){this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x65')]=this['agents'][_0x58da27[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]['id'];this['channels'][_0x58da27[_0x84b9('0x37')]][_0x84b9('0x66')]=this[_0x84b9('0x1c')][_0x58da27['channel'][_0x84b9('0x3c')]('-')[0x0]]['name'];}}}}else{if(this['channels'][_0x58da27['uniqueid']]){if(_0x58da27[_0x84b9('0x64')]==='6'){if(this[_0x84b9('0x1c')][_0x58da27[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]){this['channels'][_0x58da27[_0x84b9('0x36')]][_0x84b9('0x65')]=this[_0x84b9('0x1c')][_0x58da27[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]['id'];this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x36')]]['membername']=this[_0x84b9('0x1c')][_0x58da27[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x42')];}}}}if(_0x58da27[_0x84b9('0x64')]==='6'&&_0x58da27[_0x84b9('0x3a')]===_0x84b9('0x4a')){if(this['agents'][_0x58da27['channel'][_0x84b9('0x3c')]('-')[0x0]]){this[_0x84b9('0x1c')][_0x58da27['channel'][_0x84b9('0x3c')]('-')[0x0]]['destconnectedlinenum']=_0x58da27[_0x84b9('0x3d')];var _0x2a3f18;if(this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x36')]])_0x2a3f18=this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x36')]][_0x84b9('0x67')];else if(this[_0x84b9('0x1b')][_0x58da27[_0x84b9('0x37')]])_0x2a3f18=this[_0x84b9('0x1b')][_0x58da27['linkedid']]['routealias'];logger[_0x84b9('0x34')](_0x84b9('0x68'),_0x58da27[_0x84b9('0x36')],util['inspect']({'destaccountcode':this[_0x84b9('0x1c')][_0x58da27['channel'][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x4c')],'destconnectedlinenum':_0x58da27[_0x84b9('0x3d')],'routealias':_0x2a3f18},{'showHidden':![],'depth':null}));this['emit'](util[_0x84b9('0x40')](_0x84b9('0x41'),this[_0x84b9('0x1c')][_0x58da27['channel'][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x42')]),'user:agentconnect',{'destaccountcode':this['agents'][_0x58da27[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x4c')],'destconnectedlinenum':_0x58da27[_0x84b9('0x3d')],'routealias':_0x2a3f18});}}}}catch(_0x440082){logger['error'](_0x84b9('0x69'),_0x58da27[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x440082,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x84b9('0x6a')]=function(_0x3539c6,_0x24ca11){try{if(this[_0x84b9('0x1b')][_0x3539c6]){logger[_0x84b9('0x29')](_0x84b9('0x6b'),_0x3539c6,_0x24ca11);this[_0x84b9('0x1b')][_0x3539c6]['monitor']=!![];if(_['endsWith'](_0x24ca11,'.wav49')){_0x24ca11=_0x24ca11[_0x84b9('0x6c')]('.wav49',_0x84b9('0x6d'));}this[_0x84b9('0x1b')][_0x3539c6][_0x84b9('0x6e')]=_0x24ca11;var _0x4a4168=_[_0x84b9('0x6f')](this['channels'][_0x3539c6]['monitors'],{'filename':_0x24ca11});if(_[_0x84b9('0x70')](_0x4a4168)){this[_0x84b9('0x1b')][_0x3539c6]['monitors']['push']({'filename':_0x24ca11,'createdAt':moment()[_0x84b9('0x40')](_0x84b9('0x48')),'mixmonitorid':'','status':_0x84b9('0x71')});}}}catch(_0x41fc71){logger['error'](_0x84b9('0x72'),_0x3539c6,util[_0x84b9('0x2d')](_0x41fc71,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x73')]=function(_0xa597fd){try{if(this[_0x84b9('0x2f')](_0xa597fd)){logger[_0x84b9('0x34')](_0x84b9('0x74'),_0xa597fd[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0xa597fd,{'showHidden':![],'depth':null}));if(this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]]&&_0xa597fd[_0x84b9('0x3b')]!=_0x84b9('0x4d')){if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')])){if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x76')])){logger[_0x84b9('0x29')](_0x84b9('0x77'),_0xa597fd[_0x84b9('0x36')],_0xa597fd['value']);this[_0x84b9('0x6a')](_0xa597fd['uniqueid'],_0xa597fd[_0x84b9('0x78')]);}else if(this[_0x84b9('0x2f')](_0xa597fd['variable'][_0x84b9('0x79')])){logger[_0x84b9('0x29')](_0x84b9('0x7a'),_0xa597fd[_0x84b9('0x36')],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]]['calleridnum']=_0xa597fd['value'];}else if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x7b')])){logger[_0x84b9('0x29')](_0x84b9('0x7c'),_0xa597fd[_0x84b9('0x36')],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]][_0x84b9('0x7d')]=_0xa597fd[_0x84b9('0x78')];}else if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x7e')])){logger[_0x84b9('0x29')](_0x84b9('0x7f'),_0xa597fd[_0x84b9('0x36')],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]][_0x84b9('0x80')]=_0xa597fd['value'];}else if(this['isNotNull'](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x81')])){logger[_0x84b9('0x29')](_0x84b9('0x82'),_0xa597fd[_0x84b9('0x36')],_0xa597fd[_0x84b9('0x78')][_0x84b9('0x3c')](',')[0x0]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]]['queue']=_0xa597fd['value'][_0x84b9('0x3c')](',')[0x0];}else if(this['isNotNull'](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x83')])){logger[_0x84b9('0x29')](_0x84b9('0x84'),_0xa597fd[_0x84b9('0x36')],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]][_0x84b9('0x85')]=_0xa597fd[_0x84b9('0x78')];}else if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x86')])){logger['info'](_0x84b9('0x87'),_0xa597fd[_0x84b9('0x36')],_0xa597fd['value']);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]][_0x84b9('0x88')]=_0xa597fd[_0x84b9('0x78')];}else if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x89')])){logger[_0x84b9('0x29')](_0x84b9('0x8a'),_0xa597fd['uniqueid'],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]][_0x84b9('0x8b')]=_0xa597fd[_0x84b9('0x78')];}else if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x8c')])){logger[_0x84b9('0x29')](_0x84b9('0x8d'),_0xa597fd['uniqueid'],_0xa597fd['value']);this['channels'][_0xa597fd[_0x84b9('0x36')]]['queue']=_0xa597fd[_0x84b9('0x78')];}else if(this['isNotNull'](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x8e')])){logger[_0x84b9('0x29')](_0x84b9('0x8f'),_0xa597fd[_0x84b9('0x36')],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd[_0x84b9('0x36')]][_0x84b9('0x90')]=_0xa597fd['value'];}}}else if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')]['mixmonitor_filename'])){if(_0xa597fd[_0x84b9('0x78')]){var _0x39ed0f=path[_0x84b9('0x91')](_0xa597fd[_0x84b9('0x78')])[_0x84b9('0x42')];logger[_0x84b9('0x29')](_0x84b9('0x77'),_0x39ed0f,_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x6a')](_0x39ed0f,_0xa597fd[_0x84b9('0x78')]);}}else if(this[_0x84b9('0x1b')][_0xa597fd['linkedid']]){if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')])){if(this[_0x84b9('0x2f')](_0xa597fd[_0x84b9('0x75')][_0x84b9('0x8e')])){logger[_0x84b9('0x29')](_0x84b9('0x8f'),_0xa597fd[_0x84b9('0x37')],_0xa597fd[_0x84b9('0x78')]);this[_0x84b9('0x1b')][_0xa597fd['linkedid']][_0x84b9('0x92')]=_0xa597fd[_0x84b9('0x78')];}}}}}catch(_0x3077ac){logger[_0x84b9('0x2c')](_0x84b9('0x93'),_0xa597fd[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x3077ac,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x84b9('0x94')]=function(_0x4ce0fb){try{if(this[_0x84b9('0x2f')](_0x4ce0fb)){logger[_0x84b9('0x34')](_0x84b9('0x95'),_0x4ce0fb['uniqueid'],util[_0x84b9('0x2d')](_0x4ce0fb,{'showHidden':![],'depth':null}));if(this[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]]){logger[_0x84b9('0x29')]('[%s][voiceCallReport][hangup]\x20reason:%s',_0x4ce0fb[_0x84b9('0x36')],_0x4ce0fb[_0x84b9('0x96')]);var _0x5bff4b=moment();this['channels'][_0x4ce0fb['uniqueid']]['endtime']=_0x5bff4b[_0x84b9('0x40')](_0x84b9('0x48'));this[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]][_0x84b9('0x53')]=_0x5bff4b[_0x84b9('0x60')](this[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]][_0x84b9('0x47')],_0x84b9('0x55'));if(this['channels'][_0x4ce0fb['uniqueid']][_0x84b9('0x5f')]){this[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]][_0x84b9('0x97')]=_0x5bff4b['diff'](this[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]][_0x84b9('0x98')],_0x84b9('0x55'));this[_0x84b9('0x1b')][_0x4ce0fb['uniqueid']][_0x84b9('0x99')]=this['channels'][_0x4ce0fb['uniqueid']][_0x84b9('0x53')]-this[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]]['billableseconds'];}if(_0x4ce0fb[_0x84b9('0x3a')]==='from-sip'){if(this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]){this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]=_[_0x84b9('0x9a')](this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')]['split']('-')[0x0]],[_0x84b9('0x3f')]);logger['debug'](_0x84b9('0x9b'),_0x4ce0fb[_0x84b9('0x36')],util[_0x84b9('0x2d')]({'id':this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]['id'],'destaccountcode':this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x4c')]},{'showHidden':![],'depth':null}));this[_0x84b9('0x31')](util[_0x84b9('0x40')](_0x84b9('0x41'),this[_0x84b9('0x1c')][_0x4ce0fb['channel'][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x42')]),'user:agentcomplete',{'id':this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]]['id'],'destaccountcode':this[_0x84b9('0x1c')][_0x4ce0fb[_0x84b9('0x3b')][_0x84b9('0x3c')]('-')[0x0]][_0x84b9('0x4c')]});}}var _0x296722=this;Promise[_0x84b9('0x9c')]()[_0x84b9('0x9d')](function(){var _0xb6629=_0x296722[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]];if(typeof _0xb6629[_0x84b9('0x9e')]===_0x84b9('0x9f'))return;if(_[_0x84b9('0xa0')](_0xb6629['monitors']))return;return RpcSetting['getSettings']()['then'](function(_0x251cdb){if(!_0x251cdb[_0x84b9('0xa1')])return;return Promise[_0x84b9('0x9c')]()[_0x84b9('0x9d')](function(){return ami['Action']({'action':_0x84b9('0xa2'),'channel':_0xb6629['channel']})[_0x84b9('0xa3')](function(){});})[_0x84b9('0x9d')](function(){return ami[_0x84b9('0xa4')]({'action':_0x84b9('0xa2'),'channel':_0xb6629[_0x84b9('0x62')]})['catch'](function(){})[_0x84b9('0xa5')](function(){var _0x538b78=_0x296722[_0x84b9('0x1c')][_0xb6629[_0x84b9('0x62')][_0x84b9('0x3c')]('-')[0x0]];if(!_0x538b78)return;io[_0x84b9('0x31')](_0x84b9('0xa6'),{'agentId':_0x538b78['id'],'uniqueid':_0xb6629[_0x84b9('0x36')]});});});});})[_0x84b9('0x9d')](function(){if(_0x4ce0fb[_0x84b9('0xa7')]===_0x84b9('0xa8')){_0x296722[_0x84b9('0x1d')][_0x4ce0fb[_0x84b9('0x36')]]=_0x296722[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]];}else{if(_0x296722[_0x84b9('0x1b')][_0x4ce0fb['uniqueid']][_0x84b9('0x80')]===_0x84b9('0xa9')&&_0x296722['blindTransfers'][_0x4ce0fb[_0x84b9('0x36')]]){_0x296722[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]]['uniqueid']=[_0x296722[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]][_0x84b9('0x37')],_0x296722[_0x84b9('0x1b')][_0x4ce0fb['uniqueid']][_0x84b9('0x37')]=_0x296722['channels'][_0x4ce0fb[_0x84b9('0x36')]][_0x84b9('0x36')]][0x0];delete _0x296722[_0x84b9('0x1d')][_0x4ce0fb[_0x84b9('0x36')]];}}logger[_0x84b9('0x34')]('[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:',_0x4ce0fb[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x296722[_0x84b9('0x1b')][_0x4ce0fb['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x84b9('0x31')](_0x84b9('0xaa'),_0x296722['channels'][_0x4ce0fb[_0x84b9('0x36')]]);delete _0x296722[_0x84b9('0x1b')][_0x4ce0fb[_0x84b9('0x36')]];});}}}catch(_0x3da3ef){logger[_0x84b9('0x2c')]('[%s][voiceCallReport][hangup]',_0x4ce0fb[_0x84b9('0x36')],util['inspect'](_0x3da3ef,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0xab')]=function(_0xb5e6d9){try{if(this[_0x84b9('0x2f')](_0xb5e6d9)){logger[_0x84b9('0x29')]('[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0xb5e6d9[_0x84b9('0x36')],_0xb5e6d9[_0x84b9('0xac')],_0xb5e6d9['transfertargetcalleridnum']);logger[_0x84b9('0x34')](_0x84b9('0xad'),_0xb5e6d9['uniqueid'],util[_0x84b9('0x2d')](_0xb5e6d9,{'showHidden':![],'depth':null}));if(this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xae')]]){this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xae')]][_0x84b9('0xaf')]=_0xb5e6d9[_0x84b9('0xac')];this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xae')]][_0x84b9('0xb0')]=_0xb5e6d9[_0x84b9('0xb1')];if(this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb2')]]){var _0x5013ac=this[_0x84b9('0x1b')][_0xb5e6d9['secondtransfereruniqueid']];this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb2')]]=this['channels'][_0xb5e6d9['transfereeuniqueid']];this[_0x84b9('0x1b')][_0xb5e6d9['transfereeuniqueid']]=_0x5013ac;}}else if(this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb3')]]){this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb3')]][_0x84b9('0xaf')]=_0xb5e6d9['origtransferercalleridnum'];this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb3')]][_0x84b9('0xb0')]=_0xb5e6d9[_0x84b9('0xb1')];if(this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb4')]]){var _0x5013ac=this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb4')]];this['channels'][_0xb5e6d9[_0x84b9('0xb4')]]=this['channels'][_0xb5e6d9[_0x84b9('0xb3')]];this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb3')]]=_0x5013ac;}}if((this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb4')]]||this['channels'][_0xb5e6d9[_0x84b9('0xb5')]])&&this['channels'][_0xb5e6d9[_0x84b9('0xb2')]]){var _0x77546b=_[_0x84b9('0xb6')]([this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb4')]],this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb5')]],this[_0x84b9('0x1b')][_0xb5e6d9['secondtransfereruniqueid']]],function(_0x2556cb){return _0x2556cb&&_0x2556cb[_0x84b9('0x80')]===_0x84b9('0xa9')&&_0x2556cb[_0x84b9('0xb7')];});if(_0x77546b){if(this[_0x84b9('0x1b')][_0xb5e6d9['origtransfereruniqueid']])this['channels'][_0xb5e6d9[_0x84b9('0xb4')]][_0x84b9('0x9e')]=_0x84b9('0xb8');if(this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb5')]])this[_0x84b9('0x1b')][_0xb5e6d9[_0x84b9('0xb5')]][_0x84b9('0x9e')]=_0x84b9('0xb8');this['channels'][_0xb5e6d9[_0x84b9('0xb2')]]['transferType']=_0x84b9('0xb8');}}}}catch(_0x85b49d){logger['error'](_0x84b9('0xb9'),_0xb5e6d9[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x85b49d,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x25')]=function(_0x164765){try{if(this[_0x84b9('0x2f')](_0x164765)){logger['info'](_0x84b9('0xba'),_0x164765[_0x84b9('0x36')],_0x164765[_0x84b9('0xbb')],_0x164765[_0x84b9('0xbc')]);logger[_0x84b9('0x34')]('[%s][voiceCallReport][blindtransfer]\x20event:',_0x164765[_0x84b9('0x36')],util['inspect'](_0x164765,{'showHidden':![],'depth':null}));if(this[_0x84b9('0x1b')][_0x164765[_0x84b9('0xae')]]){this['channels'][_0x164765['transfereeuniqueid']][_0x84b9('0xaf')]=_0x164765[_0x84b9('0xbb')];this[_0x84b9('0x1b')][_0x164765[_0x84b9('0xae')]][_0x84b9('0xb0')]=_0x164765[_0x84b9('0xbc')];this[_0x84b9('0x1b')][_0x164765['transfereeuniqueid']][_0x84b9('0x9e')]='BLIND';this[_0x84b9('0x94')]({'event':_0x84b9('0xa8'),'uniqueid':_0x164765['transfereeuniqueid'],'context':_0x164765['context'],'channel':_0x164765[_0x84b9('0xbd')]});}else{this[_0x84b9('0x1b')][_0x164765[_0x84b9('0xbe')]][_0x84b9('0x9e')]=_0x84b9('0xbf');}}}catch(_0x22c082){logger[_0x84b9('0x2c')]('[%s][voiceCallReport][blindtransfer]',_0x164765[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x22c082,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x84b9('0x2e')][_0x84b9('0x27')]=function(_0x455da8){try{if(this[_0x84b9('0x2f')](_0x455da8)){logger[_0x84b9('0x34')]('[%s][voiceCallReport][musiconholdstart]\x20event:',_0x455da8[_0x84b9('0x36')],util['inspect'](_0x455da8,{'showHidden':![],'depth':null}));if(this['channels'][_0x455da8[_0x84b9('0x36')]]){if(!_[_0x84b9('0x70')](this['channels'][_0x455da8[_0x84b9('0x36')]]['answertime'])){this[_0x84b9('0x1b')][_0x455da8[_0x84b9('0x36')]]['mohstarttime']=moment()[_0x84b9('0x40')](_0x84b9('0x48'));logger['info'](_0x84b9('0xc0'),_0x455da8[_0x84b9('0x36')],this[_0x84b9('0x1b')][_0x455da8[_0x84b9('0x36')]][_0x84b9('0xc1')]);}}}}catch(_0x477bbe){logger[_0x84b9('0x2c')]('[%s][voiceCallReport][musiconholdstart]',_0x455da8[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x477bbe,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncMusicOnHoldStop']=function(_0xd1a7fc){try{if(this['isNotNull'](_0xd1a7fc)){logger[_0x84b9('0x34')](_0x84b9('0xc2'),_0xd1a7fc[_0x84b9('0x36')],util['inspect'](_0xd1a7fc,{'showHidden':![],'depth':null}));if(this[_0x84b9('0x1b')][_0xd1a7fc['uniqueid']]){if(!_[_0x84b9('0x70')](this['channels'][_0xd1a7fc[_0x84b9('0x36')]][_0x84b9('0xc1')])){this[_0x84b9('0x1b')][_0xd1a7fc['uniqueid']][_0x84b9('0xc3')]+=moment()['milliseconds'](0x0)[_0x84b9('0x60')](this[_0x84b9('0x1b')][_0xd1a7fc[_0x84b9('0x36')]][_0x84b9('0xc1')],_0x84b9('0x55'));logger[_0x84b9('0x29')](_0x84b9('0xc4'),_0xd1a7fc[_0x84b9('0x36')],this['channels'][_0xd1a7fc[_0x84b9('0x36')]][_0x84b9('0xc3')]);delete this[_0x84b9('0x1b')][_0xd1a7fc[_0x84b9('0x36')]]['mohstarttime'];}}}}catch(_0x300819){logger[_0x84b9('0x2c')](_0x84b9('0xc5'),_0xd1a7fc[_0x84b9('0x36')],util[_0x84b9('0x2d')](_0x300819,{'showHidden':![],'depth':null}));}};module['exports']=VoiceCallReport;
\ No newline at end of file
+var _0xb8e4=['syncNewCallerId','attendedtransfer','blindtransfer','syncBlindTransfer','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','info','actionCoreShowChannels','[voiceCallReport][coreshowchannels]','inspect','prototype','isNotNull','isUndefined','emit','uniqueid','calleridname','calleridnum','debug','linkedid','pick','keys','context','channel','xcally-motion-preview','split','connectedlinenum','format','user:agentconnect','accountcode','error','[%s][voiceCallReport][newcallerid]','syncNewChannel','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','merge','from-sip','destconnectedlinenum','exten','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','user:%s','name','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','toLowerCase','appdata','startsWith','CDR(routeAlias)','applicationdata','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','application','starttime','subtract','duration','seconds','includes','lastdata','cdr(','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','[%s][voiceCallReport][newstate]\x20event:','answered','answertime','diff','connectedlinename','UserId','membername','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','syncMixMonitorFilename','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','endsWith','.wav49','replace','.WAV','monitorFilename','find','monitors','isNil','rec','[%s][voiceCallReport][mixMonitorFilename]','syncVarSet','[%s][voiceCallReport][varset]\x20event:','variable','mixmonitor_filename','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','value','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','xmd-callerid-preview','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','sipcalluniqueid','sipcalllinkedid','[%s][voiceCallReport][varset]','[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','holdtime','billableseconds','resolve','then','undefined','isEmpty','getSettings','stopRecordingOnTransfer','Action','StopMixMonitor','catch','destinationchannel','finally','webbar:stopmonitors','event','BlindTransfer','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','[%s][voiceCallReport][hangup]','origtransferercalleridnum','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','transfertargetcalleridnum','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','origtransfererlinkedid','some','outbound','routeid','transferType','ATTENDED','[%s][voiceCallReport][attendedtransfer]','extension','transfereecalleridnum','transfererchannel','BLIND','[%s][voiceCallReport][musiconholdstart]\x20event:','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','[%s][voiceCallReport][musiconholdstop]\x20event:','[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s','exports','bluebird','lodash','moment','util','path','ioredis','../../../config/environment','../../../config/logger','ami','../ami','unknown','not_inuse','inuse','busy','invalid','unavailable','ringing','ringinuse','onhold','queue','dial','playback','voicemail','FAILED','NO\x20ANSWER','redis','defaults','localhost','channels','agents','blindTransfers','coreshowchannel','bind','newexten','syncNewExten','newchannel','newstate','syncNewState','varset','hangup','syncHangup'];(function(_0x85a4f9,_0x3f07b7){var _0x18b7ce=function(_0x28ffbf){while(--_0x28ffbf){_0x85a4f9['push'](_0x85a4f9['shift']());}};_0x18b7ce(++_0x3f07b7);}(_0xb8e4,0xa2));var _0x4b8e=function(_0x36f78c,_0x356a3d){_0x36f78c=_0x36f78c-0x0;var _0x183bd4=_0xb8e4[_0x36f78c];return _0x183bd4;};'use strict';var BPromise=require(_0x4b8e('0x0'));var _=require(_0x4b8e('0x1'));var moment=require(_0x4b8e('0x2'));var util=require(_0x4b8e('0x3'));var path=require(_0x4b8e('0x4'));var Redis=require(_0x4b8e('0x5'));var config=require(_0x4b8e('0x6'));var logger=require(_0x4b8e('0x7'))(_0x4b8e('0x8'));var ami=require(_0x4b8e('0x9'));var Channel=require('../model/channel');var RpcSetting=require('../rpc/setting');var statusDesc=[_0x4b8e('0xa'),_0x4b8e('0xb'),_0x4b8e('0xc'),_0x4b8e('0xd'),_0x4b8e('0xe'),_0x4b8e('0xf'),_0x4b8e('0x10'),_0x4b8e('0x11'),_0x4b8e('0x12')];var applications=['set',_0x4b8e('0x13'),'agi',_0x4b8e('0x14'),_0x4b8e('0x15'),_0x4b8e('0x16')];var dispositions=['NO\x20ANSWER',_0x4b8e('0x17'),'FAILED',_0x4b8e('0x18'),'NO\x20ANSWER','NO\x20ANSWER','ANSWERED','BUSY',_0x4b8e('0x17'),_0x4b8e('0x17'),_0x4b8e('0x17')];var actions={};config[_0x4b8e('0x19')]=_[_0x4b8e('0x1a')](config[_0x4b8e('0x19')],{'host':_0x4b8e('0x1b'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4b8e('0x19')]));function VoiceCallReport(_0x1c7b31){this['channels']=_0x1c7b31[_0x4b8e('0x1c')];this[_0x4b8e('0x1d')]=_0x1c7b31[_0x4b8e('0x1d')];this[_0x4b8e('0x1e')]={};ami['on'](_0x4b8e('0x1f'),this['syncNewExten'][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x21'),this[_0x4b8e('0x22')]['bind'](this));ami['on'](_0x4b8e('0x23'),this['syncNewChannel'][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x24'),this[_0x4b8e('0x25')][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x26'),this['syncVarSet'][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x27'),this[_0x4b8e('0x28')]['bind'](this));ami['on']('newcallerid',this[_0x4b8e('0x29')][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x2a'),this['syncAttendedTransfer'][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x2b'),this[_0x4b8e('0x2c')]['bind'](this));ami['on']('musiconholdstart',this[_0x4b8e('0x2d')][_0x4b8e('0x20')](this));ami['on'](_0x4b8e('0x2e'),this[_0x4b8e('0x2f')][_0x4b8e('0x20')](this));try{logger[_0x4b8e('0x30')]('[voiceCallReport][coreshowchannels]\x20started');ami[_0x4b8e('0x31')]();}catch(_0x18f80b){logger['error'](_0x4b8e('0x32'),util[_0x4b8e('0x33')](_0x18f80b,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x35')]=function(_0x32f507){return _0x32f507!==null&&!_[_0x4b8e('0x36')](_0x32f507);};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x37')]=function(_0x8bceaa,_0x88d57,_0x44ec72){io['to'](_0x8bceaa)[_0x4b8e('0x37')](_0x88d57,_0x44ec72);};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x29')]=function(_0x26a00b){try{if(this[_0x4b8e('0x35')](_0x26a00b)){logger[_0x4b8e('0x30')]('[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s',_0x26a00b[_0x4b8e('0x38')],_0x26a00b[_0x4b8e('0x39')],_0x26a00b[_0x4b8e('0x3a')]);logger[_0x4b8e('0x3b')]('[%s][voiceCallReport][newcallerid]\x20event:',_0x26a00b[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x26a00b,{'showHidden':![],'depth':null}));if(_0x26a00b[_0x4b8e('0x38')]===_0x26a00b[_0x4b8e('0x3c')]){if(!_[_0x4b8e('0x36')](this['channels'][_0x26a00b[_0x4b8e('0x38')]])){_['merge'](this[_0x4b8e('0x1c')][_0x26a00b['uniqueid']],_[_0x4b8e('0x3d')](_0x26a00b,_[_0x4b8e('0x3e')](this[_0x4b8e('0x1c')][_0x26a00b[_0x4b8e('0x38')]])));}}if(_0x26a00b[_0x4b8e('0x3f')]==='from-sip'){if(this[_0x4b8e('0x1d')][_0x26a00b[_0x4b8e('0x40')]['split']('-')[0x0]]){if(_0x26a00b['exten']==_0x4b8e('0x41')){this['agents'][_0x26a00b[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]['destconnectedlinenum']=_0x26a00b[_0x4b8e('0x43')];this[_0x4b8e('0x37')](util[_0x4b8e('0x44')]('user:%s',this[_0x4b8e('0x1d')][_0x26a00b[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]['name']),_0x4b8e('0x45'),{'destaccountcode':this[_0x4b8e('0x1d')][_0x26a00b[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x46')],'destconnectedlinenum':_0x26a00b[_0x4b8e('0x43')]});}}}}}catch(_0x5ad78e){logger[_0x4b8e('0x47')](_0x4b8e('0x48'),_0x26a00b[_0x4b8e('0x38')],util['inspect'](_0x5ad78e,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x49')]=function(_0x20d15e){try{if(this['isNotNull'](_0x20d15e)){logger['debug']('[%s][voiceCallReport][newchannel]\x20event:',_0x20d15e['uniqueid'],util[_0x4b8e('0x33')](_0x20d15e,{'showHidden':![],'depth':null}));if(_0x20d15e[_0x4b8e('0x38')]===_0x20d15e['linkedid']&&_0x20d15e[_0x4b8e('0x40')]!=_0x4b8e('0x4a')){if(_[_0x4b8e('0x36')](this[_0x4b8e('0x1c')][_0x20d15e[_0x4b8e('0x38')]])){logger['info'](_0x4b8e('0x4b'),_0x20d15e[_0x4b8e('0x38')],_0x20d15e[_0x4b8e('0x3f')],_0x20d15e['exten']);this[_0x4b8e('0x1c')][_0x20d15e[_0x4b8e('0x38')]]=new Channel();this[_0x4b8e('0x1c')][_0x20d15e[_0x4b8e('0x38')]]['starttime']=moment()[_0x4b8e('0x44')](_0x4b8e('0x4c'));this[_0x4b8e('0x1c')][_0x20d15e[_0x4b8e('0x38')]][_0x4b8e('0x4d')]=dispositions[_[_0x4b8e('0x4e')](_0x20d15e[_0x4b8e('0x4f')])];_[_0x4b8e('0x50')](this[_0x4b8e('0x1c')][_0x20d15e['uniqueid']],_[_0x4b8e('0x3d')](_0x20d15e,_['keys'](this[_0x4b8e('0x1c')][_0x20d15e[_0x4b8e('0x38')]])));if(_0x20d15e[_0x4b8e('0x3f')]===_0x4b8e('0x51')){if(this['agents'][_0x20d15e[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]){if(_[_0x4b8e('0x36')](this[_0x4b8e('0x1d')][_0x20d15e['channel'][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x52')])){this[_0x4b8e('0x1d')][_0x20d15e[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x52')]=_0x20d15e[_0x4b8e('0x53')];logger[_0x4b8e('0x3b')](_0x4b8e('0x54'),_0x20d15e[_0x4b8e('0x38')],util[_0x4b8e('0x33')]({'destaccountcode':this[_0x4b8e('0x1d')][_0x20d15e[_0x4b8e('0x40')]['split']('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x20d15e[_0x4b8e('0x53')]},{'showHidden':![],'depth':null}));this[_0x4b8e('0x37')](util[_0x4b8e('0x44')](_0x4b8e('0x55'),this['agents'][_0x20d15e[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x56')]),_0x4b8e('0x45'),{'destaccountcode':this['agents'][_0x20d15e[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x46')],'destconnectedlinenum':_0x20d15e[_0x4b8e('0x53')]});}}}}}}}catch(_0x46f283){logger[_0x4b8e('0x47')](_0x4b8e('0x57'),_0x20d15e[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x46f283,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x22')]=function(_0x46fe36){try{if(this[_0x4b8e('0x35')](_0x46fe36)){logger[_0x4b8e('0x3b')](_0x4b8e('0x58'),_0x46fe36[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x46fe36,{'showHidden':![],'depth':null}));if(_0x46fe36[_0x4b8e('0x38')]===_0x46fe36['linkedid']&&_0x46fe36[_0x4b8e('0x53')]!='h'&&_0x46fe36[_0x4b8e('0x40')]!='OutgoingSpoolFailed'){_0x46fe36['application']=_0x46fe36['application'][_0x4b8e('0x59')]();_0x46fe36['applicationdata']=_0x46fe36[_0x4b8e('0x5a')]&&_0x46fe36[_0x4b8e('0x5a')][_0x4b8e('0x5b')](_0x4b8e('0x5c'))?_0x46fe36['appdata']:(_0x46fe36[_0x4b8e('0x5a')]||_0x46fe36[_0x4b8e('0x5d')])['toLowerCase']();logger['info'](_0x4b8e('0x5e'),_0x46fe36[_0x4b8e('0x38')],_0x46fe36[_0x4b8e('0x5f')],_0x46fe36[_0x4b8e('0x5d')]);if(_['isUndefined'](this[_0x4b8e('0x1c')][_0x46fe36['uniqueid']])){this[_0x4b8e('0x1c')][_0x46fe36[_0x4b8e('0x38')]]=new Channel();this[_0x4b8e('0x1c')][_0x46fe36['uniqueid']][_0x4b8e('0x60')]=_0x46fe36['duration']?moment()[_0x4b8e('0x61')](moment[_0x4b8e('0x62')](_0x46fe36[_0x4b8e('0x62')])['seconds'](),_0x4b8e('0x63'))[_0x4b8e('0x44')]('YYYY-MM-DD\x20HH:mm:ss'):moment()['format'](_0x4b8e('0x4c'));this[_0x4b8e('0x1c')][_0x46fe36[_0x4b8e('0x38')]][_0x4b8e('0x4d')]=_0x4b8e('0x18');}_['merge'](this[_0x4b8e('0x1c')][_0x46fe36[_0x4b8e('0x38')]],_[_0x4b8e('0x3d')](_0x46fe36,_['keys'](this[_0x4b8e('0x1c')][_0x46fe36['uniqueid']])));if(_[_0x4b8e('0x64')](applications,_0x46fe36[_0x4b8e('0x5f')])){this[_0x4b8e('0x1c')][_0x46fe36[_0x4b8e('0x38')]]['lastapplication']=_0x46fe36[_0x4b8e('0x5f')];this[_0x4b8e('0x1c')][_0x46fe36['uniqueid']][_0x4b8e('0x65')]=_0x46fe36[_0x4b8e('0x5d')];if(_0x46fe36[_0x4b8e('0x5f')]==='set'&&_[_0x4b8e('0x5b')](_0x46fe36[_0x4b8e('0x5d')]['toLowerCase'](),_0x4b8e('0x66'))){var _0x23894f=_0x46fe36[_0x4b8e('0x5d')][_0x4b8e('0x42')]('=');var _0x2e2934=_0x23894f[0x0]['toLowerCase']()['match'](/cdr\((.*)\)/);if(_0x2e2934){this[_0x4b8e('0x1c')][_0x46fe36['uniqueid']][_0x2e2934[0x1]]=_0x23894f[0x1];}}else if(_0x46fe36['application']===_0x4b8e('0x13')){this[_0x4b8e('0x1c')][_0x46fe36[_0x4b8e('0x38')]][_0x4b8e('0x13')]=_0x46fe36['applicationdata'][_0x4b8e('0x42')](',')[0x0];}}}}}catch(_0x39b63b){logger[_0x4b8e('0x47')](_0x4b8e('0x67'),_0x46fe36[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x39b63b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x25')]=function(_0x300b48){try{if(this[_0x4b8e('0x35')](_0x300b48)){logger['info'](_0x4b8e('0x68'),_0x300b48[_0x4b8e('0x38')],_0x300b48[_0x4b8e('0x3c')],_0x300b48[_0x4b8e('0x39')],_0x300b48['calleridnum']);logger[_0x4b8e('0x3b')](_0x4b8e('0x69'),_0x300b48[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x300b48,{'showHidden':![],'depth':null}));if(_0x300b48[_0x4b8e('0x38')]!==_0x300b48[_0x4b8e('0x3c')]){if(this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]]){if(_0x300b48['channelstate']==='6'){if(!this[_0x4b8e('0x1c')][_0x300b48['linkedid']][_0x4b8e('0x6a')]){var _0xa031cc=moment();this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]][_0x4b8e('0x6a')]=!![];this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]][_0x4b8e('0x6b')]=_0xa031cc[_0x4b8e('0x44')](_0x4b8e('0x4c'));if(this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]]['starttime']){this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]]['holdtime']=_0xa031cc[_0x4b8e('0x6c')](this['channels'][_0x300b48[_0x4b8e('0x3c')]][_0x4b8e('0x60')],'seconds');}}this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]]['linkedid']=_0x300b48[_0x4b8e('0x38')];if(_0x300b48['calleridnum']!==_0x4b8e('0x41')){this[_0x4b8e('0x1c')][_0x300b48['linkedid']]['connectedlinenum']=_0x300b48[_0x4b8e('0x3a')];}this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]][_0x4b8e('0x6d')]=_0x300b48[_0x4b8e('0x39')];this[_0x4b8e('0x1c')][_0x300b48['linkedid']]['destinationchannel']=_0x300b48['channel'];this['channels'][_0x300b48[_0x4b8e('0x3c')]][_0x4b8e('0x4d')]=dispositions[_[_0x4b8e('0x4e')](_0x300b48[_0x4b8e('0x4f')])];if(this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')]['split']('-')[0x0]]){this[_0x4b8e('0x1c')][_0x300b48['linkedid']][_0x4b8e('0x6e')]=this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]['id'];this['channels'][_0x300b48['linkedid']][_0x4b8e('0x6f')]=this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x56')];}}}}else{if(this[_0x4b8e('0x1c')][_0x300b48['uniqueid']]){if(_0x300b48[_0x4b8e('0x4f')]==='6'){if(this[_0x4b8e('0x1d')][_0x300b48['channel'][_0x4b8e('0x42')]('-')[0x0]]){this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x38')]][_0x4b8e('0x6e')]=this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')]['split']('-')[0x0]]['id'];this[_0x4b8e('0x1c')][_0x300b48['uniqueid']]['membername']=this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x56')];}}}}if(_0x300b48[_0x4b8e('0x4f')]==='6'&&_0x300b48[_0x4b8e('0x3f')]==='from-sip'){if(this['agents'][_0x300b48[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]){this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x52')]=_0x300b48[_0x4b8e('0x53')];var _0x4e8835;if(this[_0x4b8e('0x1c')][_0x300b48['uniqueid']])_0x4e8835=this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x38')]][_0x4b8e('0x70')];else if(this[_0x4b8e('0x1c')][_0x300b48[_0x4b8e('0x3c')]])_0x4e8835=this['channels'][_0x300b48[_0x4b8e('0x3c')]][_0x4b8e('0x70')];logger[_0x4b8e('0x3b')](_0x4b8e('0x71'),_0x300b48[_0x4b8e('0x38')],util['inspect']({'destaccountcode':this[_0x4b8e('0x1d')][_0x300b48[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x46')],'destconnectedlinenum':_0x300b48['exten'],'routealias':_0x4e8835},{'showHidden':![],'depth':null}));this[_0x4b8e('0x37')](util['format']('user:%s',this[_0x4b8e('0x1d')][_0x300b48['channel'][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x56')]),_0x4b8e('0x45'),{'destaccountcode':this[_0x4b8e('0x1d')][_0x300b48['channel'][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x46')],'destconnectedlinenum':_0x300b48[_0x4b8e('0x53')],'routealias':_0x4e8835});}}}}catch(_0x5910f9){logger[_0x4b8e('0x47')](_0x4b8e('0x72'),_0x300b48[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x5910f9,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x4b8e('0x73')]=function(_0x3cff0e,_0x13bc7e){try{if(this['channels'][_0x3cff0e]){logger[_0x4b8e('0x30')](_0x4b8e('0x74'),_0x3cff0e,_0x13bc7e);this[_0x4b8e('0x1c')][_0x3cff0e]['monitor']=!![];if(_[_0x4b8e('0x75')](_0x13bc7e,_0x4b8e('0x76'))){_0x13bc7e=_0x13bc7e[_0x4b8e('0x77')](_0x4b8e('0x76'),_0x4b8e('0x78'));}this[_0x4b8e('0x1c')][_0x3cff0e][_0x4b8e('0x79')]=_0x13bc7e;var _0x4c0539=_[_0x4b8e('0x7a')](this['channels'][_0x3cff0e][_0x4b8e('0x7b')],{'filename':_0x13bc7e});if(_[_0x4b8e('0x7c')](_0x4c0539)){this[_0x4b8e('0x1c')][_0x3cff0e]['monitors']['push']({'filename':_0x13bc7e,'createdAt':moment()[_0x4b8e('0x44')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':'','status':_0x4b8e('0x7d')});}}}catch(_0x7d650c){logger[_0x4b8e('0x47')](_0x4b8e('0x7e'),_0x3cff0e,util['inspect'](_0x7d650c,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x7f')]=function(_0x17cce2){try{if(this[_0x4b8e('0x35')](_0x17cce2)){logger['debug'](_0x4b8e('0x80'),_0x17cce2[_0x4b8e('0x38')],util['inspect'](_0x17cce2,{'showHidden':![],'depth':null}));if(this['channels'][_0x17cce2[_0x4b8e('0x38')]]&&_0x17cce2[_0x4b8e('0x40')]!=_0x4b8e('0x4a')){if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')])){if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')][_0x4b8e('0x82')])){logger[_0x4b8e('0x30')](_0x4b8e('0x83'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2['value']);this[_0x4b8e('0x73')](_0x17cce2[_0x4b8e('0x38')],_0x17cce2[_0x4b8e('0x84')]);}else if(this[_0x4b8e('0x35')](_0x17cce2['variable'][_0x4b8e('0x85')])){logger[_0x4b8e('0x30')](_0x4b8e('0x86'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2['value']);this[_0x4b8e('0x1c')][_0x17cce2[_0x4b8e('0x38')]][_0x4b8e('0x3a')]=_0x17cce2[_0x4b8e('0x84')];}else if(this['isNotNull'](_0x17cce2[_0x4b8e('0x81')]['xmd-callerid'])){logger['info'](_0x4b8e('0x87'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2[_0x4b8e('0x84')]);this[_0x4b8e('0x1c')][_0x17cce2['uniqueid']][_0x4b8e('0x88')]=_0x17cce2[_0x4b8e('0x84')];}else if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')][_0x4b8e('0x89')])){logger[_0x4b8e('0x30')](_0x4b8e('0x8a'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2['value']);this[_0x4b8e('0x1c')][_0x17cce2[_0x4b8e('0x38')]][_0x4b8e('0x8b')]=_0x17cce2[_0x4b8e('0x84')];}else if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')][_0x4b8e('0x8c')])){logger[_0x4b8e('0x30')](_0x4b8e('0x8d'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2[_0x4b8e('0x84')]['split'](',')[0x0]);this['channels'][_0x17cce2[_0x4b8e('0x38')]]['queue']=_0x17cce2[_0x4b8e('0x84')][_0x4b8e('0x42')](',')[0x0];}else if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')][_0x4b8e('0x8e')])){logger[_0x4b8e('0x30')]('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x17cce2[_0x4b8e('0x38')],_0x17cce2['value']);this['channels'][_0x17cce2[_0x4b8e('0x38')]][_0x4b8e('0x8f')]=_0x17cce2[_0x4b8e('0x84')];}else if(this['isNotNull'](_0x17cce2['variable']['xmd-destination'])){logger['info'](_0x4b8e('0x90'),_0x17cce2['uniqueid'],_0x17cce2['value']);this[_0x4b8e('0x1c')][_0x17cce2['uniqueid']][_0x4b8e('0x91')]=_0x17cce2[_0x4b8e('0x84')];}else if(this[_0x4b8e('0x35')](_0x17cce2['variable'][_0x4b8e('0x92')])){logger[_0x4b8e('0x30')](_0x4b8e('0x93'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2[_0x4b8e('0x84')]);this[_0x4b8e('0x1c')][_0x17cce2[_0x4b8e('0x38')]]['calleridpreview']=_0x17cce2[_0x4b8e('0x84')];}else if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')][_0x4b8e('0x94')])){logger[_0x4b8e('0x30')](_0x4b8e('0x95'),_0x17cce2['uniqueid'],_0x17cce2[_0x4b8e('0x84')]);this[_0x4b8e('0x1c')][_0x17cce2['uniqueid']][_0x4b8e('0x13')]=_0x17cce2['value'];}else if(this[_0x4b8e('0x35')](_0x17cce2['variable'][_0x4b8e('0x96')])){logger['info'](_0x4b8e('0x97'),_0x17cce2[_0x4b8e('0x38')],_0x17cce2['value']);this[_0x4b8e('0x1c')][_0x17cce2[_0x4b8e('0x38')]][_0x4b8e('0x98')]=_0x17cce2[_0x4b8e('0x84')];}}}else if(this[_0x4b8e('0x35')](_0x17cce2['variable'][_0x4b8e('0x82')])){if(_0x17cce2[_0x4b8e('0x84')]){var _0x350a00=path['parse'](_0x17cce2[_0x4b8e('0x84')])[_0x4b8e('0x56')];logger[_0x4b8e('0x30')](_0x4b8e('0x83'),_0x350a00,_0x17cce2[_0x4b8e('0x84')]);this['syncMixMonitorFilename'](_0x350a00,_0x17cce2[_0x4b8e('0x84')]);}}else if(this[_0x4b8e('0x1c')][_0x17cce2['linkedid']]){if(this[_0x4b8e('0x35')](_0x17cce2[_0x4b8e('0x81')])){if(this[_0x4b8e('0x35')](_0x17cce2['variable']['sipcallid'])){logger[_0x4b8e('0x30')]('[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s',_0x17cce2['linkedid'],_0x17cce2[_0x4b8e('0x84')]);this[_0x4b8e('0x1c')][_0x17cce2[_0x4b8e('0x3c')]][_0x4b8e('0x99')]=_0x17cce2[_0x4b8e('0x84')];}}}}}catch(_0x174fea){logger[_0x4b8e('0x47')](_0x4b8e('0x9a'),_0x17cce2[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x174fea,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x4b8e('0x28')]=function(_0xa95eb9){try{if(this[_0x4b8e('0x35')](_0xa95eb9)){logger[_0x4b8e('0x3b')](_0x4b8e('0x9b'),_0xa95eb9[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0xa95eb9,{'showHidden':![],'depth':null}));if(this[_0x4b8e('0x1c')][_0xa95eb9['uniqueid']]){logger[_0x4b8e('0x30')](_0x4b8e('0x9c'),_0xa95eb9[_0x4b8e('0x38')],_0xa95eb9[_0x4b8e('0x9d')]);var _0x545e1e=moment();this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x9e')]=_0x545e1e['format'](_0x4b8e('0x4c'));this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x62')]=_0x545e1e[_0x4b8e('0x6c')](this[_0x4b8e('0x1c')][_0xa95eb9['uniqueid']][_0x4b8e('0x60')],'seconds');if(this[_0x4b8e('0x1c')][_0xa95eb9['uniqueid']][_0x4b8e('0x6a')]){this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]]['billableseconds']=_0x545e1e['diff'](this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x6b')],_0x4b8e('0x63'));this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x9f')]=this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]]['duration']-this[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0xa0')];}if(_0xa95eb9['context']===_0x4b8e('0x51')){if(this[_0x4b8e('0x1d')][_0xa95eb9['channel'][_0x4b8e('0x42')]('-')[0x0]]){this['agents'][_0xa95eb9[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]=_['omit'](this[_0x4b8e('0x1d')][_0xa95eb9[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]],[_0x4b8e('0x52')]);logger[_0x4b8e('0x3b')]('[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:',_0xa95eb9['uniqueid'],util[_0x4b8e('0x33')]({'id':this[_0x4b8e('0x1d')][_0xa95eb9['channel'][_0x4b8e('0x42')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0xa95eb9[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x46')]},{'showHidden':![],'depth':null}));this[_0x4b8e('0x37')](util['format'](_0x4b8e('0x55'),this[_0x4b8e('0x1d')][_0xa95eb9[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]['name']),'user:agentcomplete',{'id':this[_0x4b8e('0x1d')][_0xa95eb9[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0xa95eb9[_0x4b8e('0x40')][_0x4b8e('0x42')]('-')[0x0]][_0x4b8e('0x46')]});}}var _0x55b8da=this;Promise[_0x4b8e('0xa1')]()[_0x4b8e('0xa2')](function(){var _0xe6cde9=_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]];if(typeof _0xe6cde9['transferType']===_0x4b8e('0xa3'))return;if(_[_0x4b8e('0xa4')](_0xe6cde9['monitors']))return;return RpcSetting[_0x4b8e('0xa5')]()[_0x4b8e('0xa2')](function(_0x960130){if(!_0x960130[_0x4b8e('0xa6')])return;return Promise[_0x4b8e('0xa1')]()[_0x4b8e('0xa2')](function(){return ami[_0x4b8e('0xa7')]({'action':_0x4b8e('0xa8'),'channel':_0xe6cde9['channel']})[_0x4b8e('0xa9')](function(){});})['then'](function(){return ami[_0x4b8e('0xa7')]({'action':_0x4b8e('0xa8'),'channel':_0xe6cde9[_0x4b8e('0xaa')]})[_0x4b8e('0xa9')](function(){})[_0x4b8e('0xab')](function(){var _0x21bbc4=_0x55b8da[_0x4b8e('0x1d')][_0xe6cde9[_0x4b8e('0xaa')]['split']('-')[0x0]];if(!_0x21bbc4)return;io['emit'](_0x4b8e('0xac'),{'agentId':_0x21bbc4['id'],'uniqueid':_0xe6cde9[_0x4b8e('0x38')]});});});});})[_0x4b8e('0xa2')](function(){if(_0xa95eb9[_0x4b8e('0xad')]===_0x4b8e('0xae')){_0x55b8da[_0x4b8e('0x1e')][_0xa95eb9['uniqueid']]=_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]];}else{if(_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]]['type']==='outbound'&&_0x55b8da[_0x4b8e('0x1e')][_0xa95eb9[_0x4b8e('0x38')]]){_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x38')]=[_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x3c')],_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9['uniqueid']][_0x4b8e('0x3c')]=_0x55b8da['channels'][_0xa95eb9[_0x4b8e('0x38')]][_0x4b8e('0x38')]][0x0];delete _0x55b8da['blindTransfers'][_0xa95eb9[_0x4b8e('0x38')]];}}logger[_0x4b8e('0x3b')](_0x4b8e('0xaf'),_0xa95eb9[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x55b8da['channels'][_0xa95eb9[_0x4b8e('0x38')]],{'showHidden':![],'depth':null}));ami[_0x4b8e('0x37')]('custom:voiceCallReport',_0x55b8da[_0x4b8e('0x1c')][_0xa95eb9[_0x4b8e('0x38')]]);delete _0x55b8da[_0x4b8e('0x1c')][_0xa95eb9['uniqueid']];});}}}catch(_0x2b7846){logger[_0x4b8e('0x47')](_0x4b8e('0xb0'),_0xa95eb9['uniqueid'],util['inspect'](_0x2b7846,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')]['syncAttendedTransfer']=function(_0x4a5795){try{if(this['isNotNull'](_0x4a5795)){logger[_0x4b8e('0x30')]('[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x4a5795['uniqueid'],_0x4a5795[_0x4b8e('0xb1')],_0x4a5795['transfertargetcalleridnum']);logger[_0x4b8e('0x3b')]('[%s][voiceCallReport][attendedtransfer]\x20event:',_0x4a5795[_0x4b8e('0x38')],util['inspect'](_0x4a5795,{'showHidden':![],'depth':null}));if(this[_0x4b8e('0x1c')][_0x4a5795['transfereeuniqueid']]){this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb2')]][_0x4b8e('0xb3')]=_0x4a5795[_0x4b8e('0xb1')];this['channels'][_0x4a5795[_0x4b8e('0xb2')]][_0x4b8e('0xb4')]=_0x4a5795[_0x4b8e('0xb5')];if(this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb6')]]){var _0x3d6a04=this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb6')]];this[_0x4b8e('0x1c')][_0x4a5795['secondtransfereruniqueid']]=this['channels'][_0x4a5795['transfereeuniqueid']];this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb2')]]=_0x3d6a04;}}else if(this['channels'][_0x4a5795['transfertargetuniqueid']]){this['channels'][_0x4a5795[_0x4b8e('0xb7')]][_0x4b8e('0xb3')]=_0x4a5795[_0x4b8e('0xb1')];this['channels'][_0x4a5795[_0x4b8e('0xb7')]][_0x4b8e('0xb4')]=_0x4a5795[_0x4b8e('0xb5')];if(this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb8')]]){var _0x3d6a04=this[_0x4b8e('0x1c')][_0x4a5795['origtransfereruniqueid']];this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb8')]]=this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb7')]];this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb7')]]=_0x3d6a04;}}if((this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb8')]]||this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb9')]])&&this['channels'][_0x4a5795[_0x4b8e('0xb6')]]){var _0x4c8c49=_[_0x4b8e('0xba')]([this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb8')]],this[_0x4b8e('0x1c')][_0x4a5795['origtransfererlinkedid']],this[_0x4b8e('0x1c')][_0x4a5795['secondtransfereruniqueid']]],function(_0x57eec6){return _0x57eec6&&_0x57eec6[_0x4b8e('0x8b')]===_0x4b8e('0xbb')&&_0x57eec6[_0x4b8e('0xbc')];});if(_0x4c8c49){if(this['channels'][_0x4a5795['origtransfereruniqueid']])this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb8')]][_0x4b8e('0xbd')]='ATTENDED';if(this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb9')]])this['channels'][_0x4a5795[_0x4b8e('0xb9')]]['transferType']='ATTENDED';this[_0x4b8e('0x1c')][_0x4a5795[_0x4b8e('0xb6')]][_0x4b8e('0xbd')]=_0x4b8e('0xbe');}}}}catch(_0x44f4d2){logger[_0x4b8e('0x47')](_0x4b8e('0xbf'),_0x4a5795[_0x4b8e('0x38')],util['inspect'](_0x44f4d2,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')]['syncBlindTransfer']=function(_0xf32c8f){try{if(this[_0x4b8e('0x35')](_0xf32c8f)){logger[_0x4b8e('0x30')]('[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0xf32c8f[_0x4b8e('0x38')],_0xf32c8f['transfereecalleridnum'],_0xf32c8f[_0x4b8e('0xc0')]);logger[_0x4b8e('0x3b')]('[%s][voiceCallReport][blindtransfer]\x20event:',_0xf32c8f['uniqueid'],util[_0x4b8e('0x33')](_0xf32c8f,{'showHidden':![],'depth':null}));if(this['channels'][_0xf32c8f[_0x4b8e('0xb2')]]){this[_0x4b8e('0x1c')][_0xf32c8f[_0x4b8e('0xb2')]]['transfercalleridnum']=_0xf32c8f[_0x4b8e('0xc1')];this[_0x4b8e('0x1c')][_0xf32c8f[_0x4b8e('0xb2')]][_0x4b8e('0xb4')]=_0xf32c8f['extension'];this[_0x4b8e('0x1c')][_0xf32c8f['transfereeuniqueid']][_0x4b8e('0xbd')]='BLIND';this['syncHangup']({'event':'BlindTransfer','uniqueid':_0xf32c8f[_0x4b8e('0xb2')],'context':_0xf32c8f[_0x4b8e('0x3f')],'channel':_0xf32c8f[_0x4b8e('0xc2')]});}else{this[_0x4b8e('0x1c')][_0xf32c8f['transfereruniqueid']][_0x4b8e('0xbd')]=_0x4b8e('0xc3');}}}catch(_0x57ddd5){logger['error']('[%s][voiceCallReport][blindtransfer]',_0xf32c8f[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x57ddd5,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x4b8e('0x2d')]=function(_0x4c6f4b){try{if(this[_0x4b8e('0x35')](_0x4c6f4b)){logger[_0x4b8e('0x3b')](_0x4b8e('0xc4'),_0x4c6f4b[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x4c6f4b,{'showHidden':![],'depth':null}));if(this[_0x4b8e('0x1c')][_0x4c6f4b[_0x4b8e('0x38')]]){if(!_[_0x4b8e('0x7c')](this['channels'][_0x4c6f4b['uniqueid']][_0x4b8e('0x6b')])){this[_0x4b8e('0x1c')][_0x4c6f4b[_0x4b8e('0x38')]][_0x4b8e('0xc5')]=moment()[_0x4b8e('0x44')](_0x4b8e('0x4c'));logger[_0x4b8e('0x30')](_0x4b8e('0xc6'),_0x4c6f4b[_0x4b8e('0x38')],this[_0x4b8e('0x1c')][_0x4c6f4b[_0x4b8e('0x38')]]['mohstarttime']);}}}}catch(_0x41dbec){logger[_0x4b8e('0x47')](_0x4b8e('0xc7'),_0x4c6f4b[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x41dbec,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x4b8e('0x34')][_0x4b8e('0x2f')]=function(_0x190444){try{if(this[_0x4b8e('0x35')](_0x190444)){logger[_0x4b8e('0x3b')](_0x4b8e('0xc8'),_0x190444[_0x4b8e('0x38')],util['inspect'](_0x190444,{'showHidden':![],'depth':null}));if(this[_0x4b8e('0x1c')][_0x190444[_0x4b8e('0x38')]]){if(!_[_0x4b8e('0x7c')](this[_0x4b8e('0x1c')][_0x190444[_0x4b8e('0x38')]][_0x4b8e('0xc5')])){this[_0x4b8e('0x1c')][_0x190444[_0x4b8e('0x38')]]['mohtime']+=moment()['milliseconds'](0x0)['diff'](this['channels'][_0x190444[_0x4b8e('0x38')]]['mohstarttime'],_0x4b8e('0x63'));logger[_0x4b8e('0x30')](_0x4b8e('0xc9'),_0x190444[_0x4b8e('0x38')],this[_0x4b8e('0x1c')][_0x190444['uniqueid']]['mohtime']);delete this['channels'][_0x190444[_0x4b8e('0x38')]][_0x4b8e('0xc5')];}}}}catch(_0x5f17c4){logger[_0x4b8e('0x47')]('[%s][voiceCallReport][musiconholdstop]',_0x190444[_0x4b8e('0x38')],util[_0x4b8e('0x33')](_0x5f17c4,{'showHidden':![],'depth':null}));}};module[_0x4b8e('0xca')]=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x847c=['startsWith','cdr(','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','split','match','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','ioredis','../../../config/logger','ami','../ami','redis','defaults','localhost','channels','outboundChannels','applications','variables','dialbegin','syncDialBegin','syncDialEnd','bind','varset','newexten','syncNewExten','syncHangup','prototype','isNotNull','isUndefined','emit','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','format','called','channel','substring','lastIndexOf','omit','event','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','merge','voice:outbound','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','[%s][voiceDialReport][dialbegin]','[%s][voiceDialReport][dialend]\x20event:','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','YYYY-MM-DD\x20HH:mm:ss','connect','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','[%s][voiceDialReport][dialend]','syncVarSet','addVariable','keys','variable','value','outboundrouteid','voice','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceDialReport][hangup]\x20event:','cause-txt','endtime','diff','starttime','seconds','lastevent','outbound','answered','holdtime','sumHoldTime','sumBillable','duration','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','destuniqueid','error','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','application','toLowerCase','set','applicationdata','appdata'];(function(_0x35f230,_0xa47cb8){var _0x41003e=function(_0x7134cd){while(--_0x7134cd){_0x35f230['push'](_0x35f230['shift']());}};_0x41003e(++_0xa47cb8);}(_0x847c,0x105));var _0xc847=function(_0x24061a,_0x1c9f4d){_0x24061a=_0x24061a-0x0;var _0x82054e=_0x847c[_0x24061a];return _0x82054e;};'use strict';var _=require(_0xc847('0x0'));var moment=require(_0xc847('0x1'));var util=require(_0xc847('0x2'));var Redis=require(_0xc847('0x3'));var config=require('../../../config/environment');var logger=require(_0xc847('0x4'))(_0xc847('0x5'));var ami=require(_0xc847('0x6'));config[_0xc847('0x7')]=_[_0xc847('0x8')](config[_0xc847('0x7')],{'host':_0xc847('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));function VoiceDialReport(_0x4f999f){this[_0xc847('0xa')]=_0x4f999f[_0xc847('0xb')];this['outbound']=_0x4f999f['outbound'];this[_0xc847('0xc')]={};this[_0xc847('0xd')]={};ami['on'](_0xc847('0xe'),this[_0xc847('0xf')]['bind'](this));ami['on']('dialend',this[_0xc847('0x10')][_0xc847('0x11')](this));ami['on'](_0xc847('0x12'),this['syncVarSet'][_0xc847('0x11')](this));ami['on'](_0xc847('0x13'),this[_0xc847('0x14')][_0xc847('0x11')](this));ami['on']('hangup',this[_0xc847('0x15')][_0xc847('0x11')](this));}VoiceDialReport[_0xc847('0x16')][_0xc847('0x17')]=function(_0x321737){return _0x321737!==null&&!_[_0xc847('0x18')](_0x321737);};VoiceDialReport['prototype']['emit']=function(_0x1fa4fe,_0x30ed2d,_0x40011f){io['to'](_0x1fa4fe)[_0xc847('0x19')](_0x30ed2d,_0x40011f);};VoiceDialReport[_0xc847('0x16')][_0xc847('0xf')]=function(_0x112de8){try{if(this['isNotNull'](_0x112de8)){logger[_0xc847('0x1a')](_0xc847('0x1b'),_0x112de8[_0xc847('0x1c')],util[_0xc847('0x1d')](_0x112de8,{'showHidden':![],'depth':null}));if(this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]]){_['merge'](this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]],{'starttime':moment()[_0xc847('0x1e')]('YYYY-MM-DD\x20HH:mm:ss'),'lastevent':_0xc847('0x1f'),'interface':_0x112de8[_0xc847('0x20')][_0xc847('0x21')](0x0,_0x112de8[_0xc847('0x20')][_0xc847('0x22')]('-')),'membername':_0x112de8[_0xc847('0x20')][_0xc847('0x21')](_0x112de8['channel'][_0xc847('0x22')]('/')+0x1,_0x112de8[_0xc847('0x20')][_0xc847('0x22')]('-'))},_[_0xc847('0x23')](_0x112de8,[_0xc847('0x24'),_0xc847('0x25')]));logger[_0xc847('0x26')](_0xc847('0x27'),_0x112de8[_0xc847('0x1c')],this[_0xc847('0xa')][_0x112de8['uniqueid']][_0xc847('0x28')],this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]]['interface']);logger['debug'](_0xc847('0x29'),_0x112de8[_0xc847('0x1c')],util['inspect'](this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));if(this[_0xc847('0xc')][_0x112de8['uniqueid']])_[_0xc847('0x2a')](this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]],this[_0xc847('0xc')][_0x112de8[_0xc847('0x1c')]]);this[_0xc847('0x19')](_0xc847('0x2b'),_0xc847('0x2c'),this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]]);logger[_0xc847('0x1a')](_0xc847('0x2d'),_0x112de8[_0xc847('0x1c')],util[_0xc847('0x1d')](this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));ami[_0xc847('0x19')](_0xc847('0x2e'),this[_0xc847('0xa')][_0x112de8[_0xc847('0x1c')]]);}}}catch(_0x29b405){logger['error'](_0xc847('0x2f'),_0x112de8['uniqueid'],util[_0xc847('0x1d')](_0x29b405,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0xc847('0x10')]=function(_0x2ad325){try{if(this[_0xc847('0x17')](_0x2ad325)){logger[_0xc847('0x1a')](_0xc847('0x30'),_0x2ad325['uniqueid'],util[_0xc847('0x1d')](_0x2ad325,{'showHidden':![],'depth':null}));if(this[_0xc847('0xa')][_0x2ad325[_0xc847('0x1c')]]){this[_0xc847('0xa')][_0x2ad325[_0xc847('0x1c')]][_0xc847('0x31')]=_0x2ad325[_0xc847('0x31')];if(_0x2ad325[_0xc847('0x31')]===_0xc847('0x32')){this[_0xc847('0xa')][_0x2ad325[_0xc847('0x1c')]]['connectedlinenum']=_0x2ad325[_0xc847('0x33')];this['channels'][_0x2ad325[_0xc847('0x1c')]][_0xc847('0x34')]=_0x2ad325[_0xc847('0x34')];this[_0xc847('0xa')][_0x2ad325['uniqueid']][_0xc847('0x35')]=moment()[_0xc847('0x1e')](_0xc847('0x36'));this[_0xc847('0xa')][_0x2ad325[_0xc847('0x1c')]]['lastevent']=_0xc847('0x37');logger[_0xc847('0x26')](_0xc847('0x38'),_0x2ad325[_0xc847('0x1c')],_0x2ad325[_0xc847('0x20')]['substring'](_0x2ad325[_0xc847('0x20')]['lastIndexOf']('/')+0x1,_0x2ad325[_0xc847('0x20')][_0xc847('0x22')]('-')));logger['debug'](_0xc847('0x39'),_0x2ad325[_0xc847('0x1c')],util['inspect'](this[_0xc847('0xa')][_0x2ad325[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));ami['emit'](_0xc847('0x3a'),this[_0xc847('0xa')][_0x2ad325[_0xc847('0x1c')]]);}logger[_0xc847('0x1a')]('[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:',_0x2ad325[_0xc847('0x1c')],util[_0xc847('0x1d')](this['channels'][_0x2ad325['uniqueid']],{'showHidden':![],'depth':null}));this[_0xc847('0x19')]('voice:outbound','voice_outbound_channel:save',this[_0xc847('0xa')][_0x2ad325['uniqueid']]);}}}catch(_0x3a8a34){logger['error'](_0xc847('0x3b'),_0x2ad325[_0xc847('0x1c')],util[_0xc847('0x1d')](_0x3a8a34,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xc847('0x16')][_0xc847('0x3c')]=function(_0x1d6057){try{if(this[_0xc847('0x17')](_0x1d6057)){logger['debug']('[%s][voiceDialReport][varset]\x20event:',_0x1d6057[_0xc847('0x1c')],util[_0xc847('0x1d')](_0x1d6057,{'showHidden':![],'depth':null}));this[_0xc847('0x3d')](_0x1d6057[_0xc847('0x1c')],_[_0xc847('0x3e')](_0x1d6057[_0xc847('0x3f')])[0x0],_0x1d6057[_0xc847('0x40')]);if(this[_0xc847('0x17')](_0x1d6057[_0xc847('0x3f')])&&this[_0xc847('0x17')](_0x1d6057[_0xc847('0x3f')][_0xc847('0x41')])){if(_['isUndefined'](this[_0xc847('0xa')][_0x1d6057[_0xc847('0x1c')]])){this[_0xc847('0xa')][_0x1d6057[_0xc847('0x1c')]]={'routeId':_0x1d6057['value'],'variables':this['variables'][_0x1d6057[_0xc847('0x1c')]],'motionChannel':_0xc847('0x42')};logger[_0xc847('0x26')](_0xc847('0x43'),_0x1d6057[_0xc847('0x1c')],_0x1d6057[_0xc847('0x3f')][_0xc847('0x41')],_[_0xc847('0x3e')](_0x1d6057[_0xc847('0x3f')])[0x0],_0x1d6057[_0xc847('0x40')]);logger[_0xc847('0x1a')](_0xc847('0x44'),_0x1d6057[_0xc847('0x1c')],util[_0xc847('0x1d')](this['channels'][_0x1d6057['uniqueid']],{'showHidden':![],'depth':null}));this['emit'](_0xc847('0x2b'),_0xc847('0x2c'),this[_0xc847('0xa')][_0x1d6057[_0xc847('0x1c')]]);}}}}catch(_0x227abd){logger['error'](_0xc847('0x45'),_0x1d6057[_0xc847('0x1c')],util[_0xc847('0x1d')](_0x227abd,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xc847('0x16')]['addVariable']=function(_0x50a72f,_0x48ba84,_0x16d470){var _0x554815=[_0xc847('0x46'),_0xc847('0x47'),'rtpaudioqosjitter',_0xc847('0x48'),_0xc847('0x49'),_0xc847('0x4a'),_0xc847('0x4b'),_0xc847('0x4c'),_0xc847('0x4d'),'sipuri',_0xc847('0x4e'),_0xc847('0x4f'),_0xc847('0x50'),_0xc847('0x51'),_0xc847('0x52'),_0xc847('0x53'),'membername',_0xc847('0x54'),_0xc847('0x55')];if(!_[_0xc847('0x56')](_0x48ba84)&&!_[_0xc847('0x57')](_0x554815,_0x48ba84)){if(_[_0xc847('0x18')](this[_0xc847('0xd')][_0x50a72f])){this[_0xc847('0xd')][_0x50a72f]={};}this[_0xc847('0xd')][_0x50a72f][_0x48ba84]=_0x16d470;}};VoiceDialReport[_0xc847('0x16')]['syncHangup']=function(_0x2a851a){try{if(this['isNotNull'](_0x2a851a)){logger[_0xc847('0x1a')](_0xc847('0x58'),_0x2a851a[_0xc847('0x1c')],util[_0xc847('0x1d')](_0x2a851a,{'showHidden':![],'depth':null}));if(this['channels'][_0x2a851a[_0xc847('0x1c')]]){logger[_0xc847('0x26')]('[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete',_0x2a851a['uniqueid'],_0x2a851a[_0xc847('0x59')]);this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x5a')]=moment()[_0xc847('0x1e')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]]['duration']=moment(this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x5a')])[_0xc847('0x5b')](this['channels'][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x5c')],_0xc847('0x5d'));this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x5e')]='complete';this[_0xc847('0x5f')]['total']+=0x1;if(this['channels'][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x35')]){this['outbound'][_0xc847('0x60')]+=0x1;this[_0xc847('0xa')][_0x2a851a['uniqueid']][_0xc847('0x61')]=moment(this['channels'][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x35')])[_0xc847('0x5b')](this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x5c')],_0xc847('0x5d'));this['channels'][_0x2a851a['uniqueid']]['billableseconds']=moment(this[_0xc847('0xa')][_0x2a851a['uniqueid']][_0xc847('0x5a')])['diff'](this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x35')],_0xc847('0x5d'));this[_0xc847('0x5f')][_0xc847('0x62')]+=this['channels'][_0x2a851a[_0xc847('0x1c')]]['holdtime']||0x0;this['outbound'][_0xc847('0x63')]+=this['channels'][_0x2a851a[_0xc847('0x1c')]]['billableseconds'];}this[_0xc847('0x5f')]['sumDuration']+=this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]][_0xc847('0x64')];logger[_0xc847('0x1a')](_0xc847('0x65'),_0x2a851a[_0xc847('0x1c')],util[_0xc847('0x1d')](this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));ami[_0xc847('0x19')](_0xc847('0x66'),this[_0xc847('0xa')][_0x2a851a['uniqueid']]);logger[_0xc847('0x1a')](_0xc847('0x67'),_0x2a851a[_0xc847('0x1c')],util[_0xc847('0x1d')](this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));ami[_0xc847('0x19')]('custom:dialend',this[_0xc847('0xa')][_0x2a851a['uniqueid']]);logger[_0xc847('0x1a')](_0xc847('0x68'),_0x2a851a['uniqueid'],util['inspect'](this['channels'][_0x2a851a[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));this[_0xc847('0x19')](_0xc847('0x2b'),_0xc847('0x69'),this['outbound']);logger['info'](_0xc847('0x6a'),JSON[_0xc847('0x6b')](this['channels'][_0x2a851a[_0xc847('0x1c')]]));logger[_0xc847('0x1a')](_0xc847('0x6c'),_0x2a851a[_0xc847('0x1c')],util[_0xc847('0x1d')](this[_0xc847('0xa')][_0x2a851a[_0xc847('0x1c')]],{'showHidden':![],'depth':null}));this[_0xc847('0x19')](_0xc847('0x2b'),_0xc847('0x6d'),this['channels'][_0x2a851a[_0xc847('0x1c')]]);delete this['channels'][_0x2a851a[_0xc847('0x1c')]];}else if(this[_0xc847('0xa')][_0x2a851a['linkedid']]){this['channels'][_0x2a851a['linkedid']][_0xc847('0x1c')]=this[_0xc847('0xa')][_0x2a851a[_0xc847('0x6e')]][_0xc847('0x6f')];}if(this[_0xc847('0xd')][_0x2a851a['uniqueid']]){delete this[_0xc847('0xd')][_0x2a851a[_0xc847('0x1c')]];}}}catch(_0x228295){logger[_0xc847('0x70')](_0xc847('0x71'),_0x2a851a['uniqueid'],util[_0xc847('0x1d')](_0x228295,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xc847('0x16')][_0xc847('0x14')]=function(_0x45eda3){try{if(this['isNotNull'](_0x45eda3)){logger['debug'](_0xc847('0x72'),_0x45eda3[_0xc847('0x1c')],util[_0xc847('0x1d')](_0x45eda3,{'showHidden':![],'depth':null}));if(_0x45eda3[_0xc847('0x73')][_0xc847('0x74')]()===_0xc847('0x75')){_0x45eda3[_0xc847('0x76')]=(_0x45eda3[_0xc847('0x77')]||_0x45eda3[_0xc847('0x76')])[_0xc847('0x74')]();if(_[_0xc847('0x78')](_0x45eda3['applicationdata'],_0xc847('0x79'))){if(_['isUndefined'](this['applications'][_0x45eda3[_0xc847('0x1c')]]))this['applications'][_0x45eda3[_0xc847('0x1c')]]={};logger[_0xc847('0x26')](_0xc847('0x7a'),_0x45eda3[_0xc847('0x1c')],_0x45eda3[_0xc847('0x73')],_0x45eda3[_0xc847('0x76')]);var _0x3cb585=_0x45eda3['applicationdata'][_0xc847('0x7b')]('=');var _0x43e5a5=_0x3cb585[0x0][_0xc847('0x7c')](/cdr\((.*)\)/);if(_0x43e5a5)this['applications'][_0x45eda3[_0xc847('0x1c')]][_0x43e5a5[0x1]]=_0x3cb585[0x1];}}}}catch(_0x5b5a6a){logger[_0xc847('0x70')](_0xc847('0x7d'),_0x45eda3[_0xc847('0x1c')],util['inspect'](_0x5b5a6a,{'showHidden':![],'depth':null}));}};module[_0xc847('0x7e')]=VoiceDialReport;
\ No newline at end of file
+var _0xd70e=['cause-txt','endtime','duration','diff','starttime','seconds','lastevent','complete','answered','sumHoldTime','holdtime','sumBillable','billableseconds','sumDuration','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','custom:dialend','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','syncNewExten','[%s][voiceDialReport][newexten]\x20event:','application','toLowerCase','set','applicationdata','cdr(','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','split','match','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','../ami','redis','defaults','localhost','outboundChannels','outbound','dialbegin','syncDialBegin','bind','syncDialEnd','varset','syncVarSet','newexten','hangup','syncHangup','isNotNull','isUndefined','prototype','emit','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','channels','format','YYYY-MM-DD\x20HH:mm:ss','called','substring','channel','lastIndexOf','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','interface','applications','merge','voice:outbound','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','[%s][voiceDialReport][dialbegin]','dialstatus','ANSWER','connectedlinenum','connectedlinename','answertime','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','error','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','addVariable','keys','variable','value','outboundrouteid','variables','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosrtt','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberpenalty','memberrealtime','isNil','includes','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete'];(function(_0x9c2427,_0x17c865){var _0x51984f=function(_0x177af6){while(--_0x177af6){_0x9c2427['push'](_0x9c2427['shift']());}};_0x51984f(++_0x17c865);}(_0xd70e,0x193));var _0xed70=function(_0x5f2872,_0x34bf62){_0x5f2872=_0x5f2872-0x0;var _0x5e9e6c=_0xd70e[_0x5f2872];return _0x5e9e6c;};'use strict';var _=require(_0xed70('0x0'));var moment=require(_0xed70('0x1'));var util=require(_0xed70('0x2'));var Redis=require(_0xed70('0x3'));var config=require(_0xed70('0x4'));var logger=require(_0xed70('0x5'))('ami');var ami=require(_0xed70('0x6'));config[_0xed70('0x7')]=_[_0xed70('0x8')](config['redis'],{'host':_0xed70('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xed70('0x7')]));function VoiceDialReport(_0x446911){this['channels']=_0x446911[_0xed70('0xa')];this[_0xed70('0xb')]=_0x446911[_0xed70('0xb')];this['applications']={};this['variables']={};ami['on'](_0xed70('0xc'),this[_0xed70('0xd')][_0xed70('0xe')](this));ami['on']('dialend',this[_0xed70('0xf')]['bind'](this));ami['on'](_0xed70('0x10'),this[_0xed70('0x11')][_0xed70('0xe')](this));ami['on'](_0xed70('0x12'),this['syncNewExten'][_0xed70('0xe')](this));ami['on'](_0xed70('0x13'),this[_0xed70('0x14')]['bind'](this));}VoiceDialReport['prototype'][_0xed70('0x15')]=function(_0x291d49){return _0x291d49!==null&&!_[_0xed70('0x16')](_0x291d49);};VoiceDialReport[_0xed70('0x17')][_0xed70('0x18')]=function(_0x452f9c,_0xeb4fc7,_0x1562c0){io['to'](_0x452f9c)[_0xed70('0x18')](_0xeb4fc7,_0x1562c0);};VoiceDialReport[_0xed70('0x17')][_0xed70('0xd')]=function(_0x545db3){try{if(this[_0xed70('0x15')](_0x545db3)){logger[_0xed70('0x19')](_0xed70('0x1a'),_0x545db3[_0xed70('0x1b')],util[_0xed70('0x1c')](_0x545db3,{'showHidden':![],'depth':null}));if(this[_0xed70('0x1d')][_0x545db3[_0xed70('0x1b')]]){_['merge'](this['channels'][_0x545db3['uniqueid']],{'starttime':moment()[_0xed70('0x1e')](_0xed70('0x1f')),'lastevent':_0xed70('0x20'),'interface':_0x545db3['channel'][_0xed70('0x21')](0x0,_0x545db3[_0xed70('0x22')][_0xed70('0x23')]('-')),'membername':_0x545db3[_0xed70('0x22')][_0xed70('0x21')](_0x545db3['channel'][_0xed70('0x23')]('/')+0x1,_0x545db3[_0xed70('0x22')][_0xed70('0x23')]('-'))},_['omit'](_0x545db3,['event',_0xed70('0x24')]));logger[_0xed70('0x25')](_0xed70('0x26'),_0x545db3[_0xed70('0x1b')],this['channels'][_0x545db3[_0xed70('0x1b')]][_0xed70('0x27')],this[_0xed70('0x1d')][_0x545db3[_0xed70('0x1b')]][_0xed70('0x28')]);logger[_0xed70('0x19')]('[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:',_0x545db3['uniqueid'],util[_0xed70('0x1c')](this['channels'][_0x545db3[_0xed70('0x1b')]],{'showHidden':![],'depth':null}));if(this[_0xed70('0x29')][_0x545db3[_0xed70('0x1b')]])_[_0xed70('0x2a')](this['channels'][_0x545db3[_0xed70('0x1b')]],this[_0xed70('0x29')][_0x545db3['uniqueid']]);this[_0xed70('0x18')](_0xed70('0x2b'),_0xed70('0x2c'),this[_0xed70('0x1d')][_0x545db3['uniqueid']]);logger['debug'](_0xed70('0x2d'),_0x545db3[_0xed70('0x1b')],util[_0xed70('0x1c')](this[_0xed70('0x1d')][_0x545db3[_0xed70('0x1b')]],{'showHidden':![],'depth':null}));ami['emit'](_0xed70('0x2e'),this['channels'][_0x545db3[_0xed70('0x1b')]]);}}}catch(_0x2bcd2b){logger['error'](_0xed70('0x2f'),_0x545db3[_0xed70('0x1b')],util[_0xed70('0x1c')](_0x2bcd2b,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xed70('0x17')][_0xed70('0xf')]=function(_0x80c757){try{if(this[_0xed70('0x15')](_0x80c757)){logger[_0xed70('0x19')]('[%s][voiceDialReport][dialend]\x20event:',_0x80c757[_0xed70('0x1b')],util[_0xed70('0x1c')](_0x80c757,{'showHidden':![],'depth':null}));if(this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]]){this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]]['dialstatus']=_0x80c757[_0xed70('0x30')];if(_0x80c757['dialstatus']===_0xed70('0x31')){this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]][_0xed70('0x32')]=_0x80c757[_0xed70('0x32')];this[_0xed70('0x1d')][_0x80c757['uniqueid']]['connectedlinename']=_0x80c757[_0xed70('0x33')];this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]][_0xed70('0x34')]=moment()[_0xed70('0x1e')](_0xed70('0x1f'));this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]]['lastevent']='connect';logger[_0xed70('0x25')]('[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect',_0x80c757['uniqueid'],_0x80c757[_0xed70('0x22')][_0xed70('0x21')](_0x80c757[_0xed70('0x22')]['lastIndexOf']('/')+0x1,_0x80c757['channel'][_0xed70('0x23')]('-')));logger[_0xed70('0x19')]('[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:',_0x80c757[_0xed70('0x1b')],util[_0xed70('0x1c')](this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]],{'showHidden':![],'depth':null}));ami['emit'](_0xed70('0x35'),this['channels'][_0x80c757[_0xed70('0x1b')]]);}logger[_0xed70('0x19')](_0xed70('0x36'),_0x80c757['uniqueid'],util[_0xed70('0x1c')](this['channels'][_0x80c757['uniqueid']],{'showHidden':![],'depth':null}));this[_0xed70('0x18')](_0xed70('0x2b'),_0xed70('0x2c'),this[_0xed70('0x1d')][_0x80c757[_0xed70('0x1b')]]);}}}catch(_0x7e6321){logger[_0xed70('0x37')](_0xed70('0x38'),_0x80c757['uniqueid'],util['inspect'](_0x7e6321,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xed70('0x17')][_0xed70('0x11')]=function(_0x59d039){try{if(this['isNotNull'](_0x59d039)){logger[_0xed70('0x19')](_0xed70('0x39'),_0x59d039[_0xed70('0x1b')],util[_0xed70('0x1c')](_0x59d039,{'showHidden':![],'depth':null}));this[_0xed70('0x3a')](_0x59d039[_0xed70('0x1b')],_[_0xed70('0x3b')](_0x59d039[_0xed70('0x3c')])[0x0],_0x59d039[_0xed70('0x3d')]);if(this[_0xed70('0x15')](_0x59d039[_0xed70('0x3c')])&&this['isNotNull'](_0x59d039[_0xed70('0x3c')][_0xed70('0x3e')])){if(_[_0xed70('0x16')](this['channels'][_0x59d039[_0xed70('0x1b')]])){this[_0xed70('0x1d')][_0x59d039['uniqueid']]={'routeId':_0x59d039[_0xed70('0x3d')],'variables':this[_0xed70('0x3f')][_0x59d039[_0xed70('0x1b')]]};logger['info'](_0xed70('0x40'),_0x59d039[_0xed70('0x1b')],_0x59d039[_0xed70('0x3c')][_0xed70('0x3e')],_[_0xed70('0x3b')](_0x59d039[_0xed70('0x3c')])[0x0],_0x59d039[_0xed70('0x3d')]);logger[_0xed70('0x19')](_0xed70('0x41'),_0x59d039[_0xed70('0x1b')],util[_0xed70('0x1c')](this[_0xed70('0x1d')][_0x59d039['uniqueid']],{'showHidden':![],'depth':null}));this[_0xed70('0x18')]('voice:outbound',_0xed70('0x2c'),this[_0xed70('0x1d')][_0x59d039[_0xed70('0x1b')]]);}}}}catch(_0x5d6466){logger[_0xed70('0x37')](_0xed70('0x42'),_0x59d039[_0xed70('0x1b')],util[_0xed70('0x1c')](_0x5d6466,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0xed70('0x3a')]=function(_0x3d73d0,_0x5dfaf5,_0x32ae4f){var _0x12b367=[_0xed70('0x43'),_0xed70('0x44'),_0xed70('0x45'),_0xed70('0x46'),'rtpaudioqosloss','rtpaudioqoslossbridged',_0xed70('0x47'),'rtpaudioqosrttbridged',_0xed70('0x48'),_0xed70('0x49'),_0xed70('0x4a'),_0xed70('0x4b'),_0xed70('0x4c'),_0xed70('0x4d'),_0xed70('0x4e'),_0xed70('0x4f'),_0xed70('0x27'),_0xed70('0x50'),_0xed70('0x51')];if(!_[_0xed70('0x52')](_0x5dfaf5)&&!_[_0xed70('0x53')](_0x12b367,_0x5dfaf5)){if(_[_0xed70('0x16')](this[_0xed70('0x3f')][_0x3d73d0])){this['variables'][_0x3d73d0]={};}this['variables'][_0x3d73d0][_0x5dfaf5]=_0x32ae4f;}};VoiceDialReport[_0xed70('0x17')]['syncHangup']=function(_0x58bfda){try{if(this[_0xed70('0x15')](_0x58bfda)){logger[_0xed70('0x19')]('[%s][voiceDialReport][hangup]\x20event:',_0x58bfda['uniqueid'],util[_0xed70('0x1c')](_0x58bfda,{'showHidden':![],'depth':null}));if(this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]]){logger[_0xed70('0x25')](_0xed70('0x54'),_0x58bfda[_0xed70('0x1b')],_0x58bfda[_0xed70('0x55')]);this['channels'][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x56')]=moment()['format'](_0xed70('0x1f'));this[_0xed70('0x1d')][_0x58bfda['uniqueid']][_0xed70('0x57')]=moment(this[_0xed70('0x1d')][_0x58bfda['uniqueid']]['endtime'])[_0xed70('0x58')](this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x59')],_0xed70('0x5a'));this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x5b')]=_0xed70('0x5c');this[_0xed70('0xb')]['total']+=0x1;if(this['channels'][_0x58bfda['uniqueid']][_0xed70('0x34')]){this[_0xed70('0xb')][_0xed70('0x5d')]+=0x1;this[_0xed70('0x1d')][_0x58bfda['uniqueid']]['holdtime']=moment(this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]]['answertime'])[_0xed70('0x58')](this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x59')],'seconds');this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]]['billableseconds']=moment(this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x56')])[_0xed70('0x58')](this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x34')],_0xed70('0x5a'));this['outbound'][_0xed70('0x5e')]+=this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x5f')]||0x0;this['outbound'][_0xed70('0x60')]+=this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x61')];}this[_0xed70('0xb')][_0xed70('0x62')]+=this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]][_0xed70('0x57')];logger['debug'](_0xed70('0x63'),_0x58bfda[_0xed70('0x1b')],util[_0xed70('0x1c')](this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]],{'showHidden':![],'depth':null}));ami[_0xed70('0x18')](_0xed70('0x64'),this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]]);logger['debug'](_0xed70('0x65'),_0x58bfda['uniqueid'],util[_0xed70('0x1c')](this['channels'][_0x58bfda[_0xed70('0x1b')]],{'showHidden':![],'depth':null}));ami['emit'](_0xed70('0x66'),this['channels'][_0x58bfda[_0xed70('0x1b')]]);logger['debug'](_0xed70('0x67'),_0x58bfda[_0xed70('0x1b')],util[_0xed70('0x1c')](this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]],{'showHidden':![],'depth':null}));this[_0xed70('0x18')](_0xed70('0x2b'),_0xed70('0x68'),this['outbound']);logger[_0xed70('0x25')](_0xed70('0x69'),JSON[_0xed70('0x6a')](this[_0xed70('0x1d')][_0x58bfda['uniqueid']]));logger[_0xed70('0x19')](_0xed70('0x6b'),_0x58bfda[_0xed70('0x1b')],util['inspect'](this['channels'][_0x58bfda['uniqueid']],{'showHidden':![],'depth':null}));this[_0xed70('0x18')](_0xed70('0x2b'),_0xed70('0x6c'),this[_0xed70('0x1d')][_0x58bfda['uniqueid']]);delete this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x1b')]];}else if(this['channels'][_0x58bfda['linkedid']]){this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x6d')]][_0xed70('0x1b')]=this[_0xed70('0x1d')][_0x58bfda[_0xed70('0x6d')]]['destuniqueid'];}if(this['variables'][_0x58bfda[_0xed70('0x1b')]]){delete this[_0xed70('0x3f')][_0x58bfda['uniqueid']];}}}catch(_0xc0b43e){logger[_0xed70('0x37')]('[%s][voiceDialReport][hangup]',_0x58bfda[_0xed70('0x1b')],util[_0xed70('0x1c')](_0xc0b43e,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xed70('0x17')][_0xed70('0x6e')]=function(_0x5164b4){try{if(this[_0xed70('0x15')](_0x5164b4)){logger[_0xed70('0x19')](_0xed70('0x6f'),_0x5164b4['uniqueid'],util[_0xed70('0x1c')](_0x5164b4,{'showHidden':![],'depth':null}));if(_0x5164b4[_0xed70('0x70')][_0xed70('0x71')]()===_0xed70('0x72')){_0x5164b4[_0xed70('0x73')]=(_0x5164b4['appdata']||_0x5164b4[_0xed70('0x73')])[_0xed70('0x71')]();if(_['startsWith'](_0x5164b4[_0xed70('0x73')],_0xed70('0x74'))){if(_[_0xed70('0x16')](this[_0xed70('0x29')][_0x5164b4[_0xed70('0x1b')]]))this['applications'][_0x5164b4[_0xed70('0x1b')]]={};logger['info'](_0xed70('0x75'),_0x5164b4[_0xed70('0x1b')],_0x5164b4[_0xed70('0x70')],_0x5164b4[_0xed70('0x73')]);var _0x3f0af1=_0x5164b4[_0xed70('0x73')][_0xed70('0x76')]('=');var _0x558dc9=_0x3f0af1[0x0][_0xed70('0x77')](/cdr\((.*)\)/);if(_0x558dc9)this['applications'][_0x5164b4[_0xed70('0x1b')]][_0x558dc9[0x1]]=_0x3f0af1[0x1];}}}}catch(_0x255ced){logger['error'](_0xed70('0x78'),_0x5164b4['uniqueid'],util[_0xed70('0x1c')](_0x255ced,{'showHidden':![],'depth':null}));}};module[_0xed70('0x79')]=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe189=['pTalking','waiting','clearZombieChannels','switch','isNil','status','channel','catch','error','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:save\x20event:','uniqueid','format','voice:queue:%s','name','voice_queue_channel:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_presence:remove','emitVoiceQueueSummary','type','inbound','answered','available','loggedIn','sumBillable','unmanaged','abandoned','Trunk','callerid','Interval','stringify','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isNotNull','isUndefined','Action','queues','[voiceQueueReport][queues]','flagQueueSummary','then','[voiceQueueReport][queuesummary]','syncQueueSummary','queue','[voiceQueueReport][queuesummary]\x20event:','info','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','loggedin','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','[%s][voiceQueueReport][queuecallerjoin]','queuecallerjoinAt','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','pick','keys','queuecallerjoin','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercomplete','queuecallercompleteAt','holdtime','originalposition','queuecallerabandon','queuecallerexitreason','ABANDONED','lastAssignedTo','[%s][voiceQueueReport][queuecallerleave]','queuecallerleaveAt','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','[%s][voiceQueueReport][agentconnect]','[%s][voiceQueueReport][agentcomplete]','queuecallerabandonAt','membername','queuecallerexitAt','transfer','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','local/','linkedid','queuecallerexit','FORWARDTRANSFER','transfertype','transferexten','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','reason','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','syncVarSet','addVariable','variable','queuestatus','value','CONTINUE','lastevent','timeout','queueposition','EXITWITHKEY','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberlastcall','memberpenalty','includes','sumHoldTime','diff','seconds','sumDuration','milliseconds','total','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','cause-txt','hangup','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','custom:voiceQueueReport','[%s][voiceQueueReport][hangup]','syncAttendedTransfer','transfereeuniqueid','secondtransfererexten','transferuniqueid','secondtransfereruniqueid','ATTENDEDTRANSFER','ATTENDED','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfereruniqueid','[%s][voiceQueueReport][attendedtransfer]','BLINDTRANSFER','BLIND','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','context','[%s][voiceQueueReport][blindtransfer]','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','mohtime','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','[%s][voiceQueueReport][newexten]\x20event:','application','toLowerCase','set','appdata','CDR(routeAlias)','applicationdata','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','split','exports','lodash','md5','ioredis','../../../config/environment','../../../config/logger','../model/queueReport','redis','defaults','localhost','prototype','enqueue','tail','sequence','queueReports','agents','channels','queueChannels','voiceQueues','campaigns','variables','queuesummary','bind','queuesummarycomplete','syncQueueSummaryComplete','syncQueueCallerJoin','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','agentconnect','syncAgentConnect','varset','syncHangup','fullybooted','syncFullyBooted','newexten','syncNewExten','musiconholdstart','musiconholdstop','syncMusicOnHoldStop','attendedtransfer','syncBlindTransfer','loopQueueSummary','loopQueueShow','isEmpty','originated','hasOwnProperty','talking'];(function(_0x559df5,_0x422f0b){var _0x6603b8=function(_0x5c422f){while(--_0x5c422f){_0x559df5['push'](_0x559df5['shift']());}};_0x6603b8(++_0x422f0b);}(_0xe189,0x194));var _0x9e18=function(_0x47560e,_0x1914ec){_0x47560e=_0x47560e-0x0;var _0x2dcc1e=_0xe189[_0x47560e];return _0x2dcc1e;};'use strict';var _=require(_0x9e18('0x0'));var moment=require('moment');var util=require('util');var md5=require(_0x9e18('0x1'));var Redis=require(_0x9e18('0x2'));var config=require(_0x9e18('0x3'));var logger=require(_0x9e18('0x4'))('ami');var ami=require('../ami');var QueueReport=require(_0x9e18('0x5'));config[_0x9e18('0x6')]=_[_0x9e18('0x7')](config[_0x9e18('0x6')],{'host':_0x9e18('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x9e18('0x6')]));var Sequence=function(){};Sequence[_0x9e18('0x9')][_0x9e18('0xa')]=function(_0x50a0ce){this[_0x9e18('0xb')]=this[_0x9e18('0xb')]?this[_0x9e18('0xb')]['finally'](_0x50a0ce):_0x50a0ce();};function VoiceQueueReport(_0x9ee9df){this[_0x9e18('0xc')]=new Sequence();this[_0x9e18('0xd')]={};this[_0x9e18('0xe')]=_0x9ee9df[_0x9e18('0xe')];this[_0x9e18('0xf')]=_0x9ee9df[_0x9e18('0x10')];this[_0x9e18('0x11')]=_0x9ee9df[_0x9e18('0x11')];this['flagQueueSummary']=!![];this[_0x9e18('0x12')]=_0x9ee9df['campaigns'];this[_0x9e18('0x13')]={};ami['on'](_0x9e18('0x14'),this['syncQueueSummary'][_0x9e18('0x15')](this));ami['on'](_0x9e18('0x16'),this[_0x9e18('0x17')][_0x9e18('0x15')](this));ami['on']('queuecallerjoin',this[_0x9e18('0x18')]['bind'](this));ami['on']('queuecallerabandon',this[_0x9e18('0x19')]['bind'](this));ami['on'](_0x9e18('0x1a'),this[_0x9e18('0x1b')][_0x9e18('0x15')](this));ami['on'](_0x9e18('0x1c'),this['syncAgentComplete']['bind'](this));ami['on'](_0x9e18('0x1d'),this[_0x9e18('0x1e')]['bind'](this));ami['on'](_0x9e18('0x1f'),this['syncVarSet'][_0x9e18('0x15')](this));ami['on']('hangup',this[_0x9e18('0x20')][_0x9e18('0x15')](this));ami['on'](_0x9e18('0x21'),this[_0x9e18('0x22')][_0x9e18('0x15')](this));ami['on'](_0x9e18('0x23'),this[_0x9e18('0x24')][_0x9e18('0x15')](this));ami['on'](_0x9e18('0x25'),this['syncMusicOnHoldStart'][_0x9e18('0x15')](this));ami['on'](_0x9e18('0x26'),this[_0x9e18('0x27')]['bind'](this));ami['on'](_0x9e18('0x28'),this['syncAttendedTransfer'][_0x9e18('0x15')](this));ami['on']('blindtransfer',this[_0x9e18('0x29')]['bind'](this));this[_0x9e18('0x2a')]();this[_0x9e18('0x2b')]();}function clearChannels(_0x49f0b1){if(!_[_0x9e18('0x2c')](_0x49f0b1)){for(var _0x4b6ab5 in _0x49f0b1){if(_0x49f0b1['hasOwnProperty'](_0x4b6ab5)){delete _0x49f0b1[_0x4b6ab5];}}}}function clearCampaigns(_0x445f10){if(!_['isEmpty'](_0x445f10)){for(var _0x4513e7 in _0x445f10){if(_0x445f10['hasOwnProperty'](_0x4513e7)){_0x445f10[_0x4513e7][_0x9e18('0x2d')]=0x0;}}}}function clearVoiceQueues(_0x413dce){if(!_[_0x9e18('0x2c')](_0x413dce)){for(var _0xd115f3 in _0x413dce){if(_0x413dce[_0x9e18('0x2e')](_0xd115f3)){_0x413dce[_0xd115f3][_0x9e18('0x2d')]=0x0;_0x413dce[_0xd115f3][_0x9e18('0x2f')]=0x0;_0x413dce[_0xd115f3][_0x9e18('0x30')]=0x0;_0x413dce[_0xd115f3][_0x9e18('0x31')]=0x0;_0x413dce[_0xd115f3]['queueStatusComplete']=!![];}}}}function clearAgentBooked(_0x2ee4da){if(!_[_0x9e18('0x2c')](_0x2ee4da)){for(var _0x284f51 in _0x2ee4da){if(_0x2ee4da[_0x9e18('0x2e')](_0x284f51)){_0x2ee4da[_0x284f51]['unlockRR']=!![];}}}}VoiceQueueReport['prototype'][_0x9e18('0x32')]=function(){var _0x1bb217=this;for(var _0x3f6510 in this[_0x9e18('0xf')]){if(this[_0x9e18('0xf')]['hasOwnProperty'](_0x3f6510)&&!this[_0x9e18('0xf')][_0x3f6510][_0x9e18('0x33')]){this[_0x9e18('0xc')][_0x9e18('0xa')](function(){if(!_[_0x9e18('0x34')](_0x1bb217[_0x9e18('0xf')][_0x3f6510])){return ami['Action']({'action':_0x9e18('0x35'),'channel':_0x1bb217[_0x9e18('0xf')][_0x3f6510][_0x9e18('0x36')]})[_0x9e18('0x37')](function(_0x29942e){if(_0x29942e['message']==='No\x20such\x20channel'){setTimeout(function(){if(_0x1bb217[_0x9e18('0xf')][_0x3f6510]){delete _0x1bb217[_0x9e18('0xf')][_0x3f6510];logger[_0x9e18('0x38')](_0x9e18('0x39'),_0x3f6510,util['inspect'](_0x29942e,{'showHidden':![],'depth':null}));}if(_0x1bb217[_0x9e18('0xd')][_0x3f6510]){delete _0x1bb217[_0x9e18('0xd')][_0x3f6510];logger[_0x9e18('0x38')]('[%s][voiceQueueReport][checkQueueReport]',_0x3f6510,util[_0x9e18('0x3a')](_0x29942e,{'showHidden':![],'depth':null}));}if(_0x1bb217['variables'][_0x3f6510]){delete _0x1bb217[_0x9e18('0x13')][_0x3f6510];logger['error'](_0x9e18('0x3b'),_0x3f6510,util[_0x9e18('0x3a')](_0x29942e,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x22')]=function(){logger[_0x9e18('0x38')](_0x9e18('0x3c'));clearChannels(this[_0x9e18('0xf')]);this[_0x9e18('0x3d')](this[_0x9e18('0xd')]);clearAgentBooked(this[_0x9e18('0xe')]);clearVoiceQueues(this[_0x9e18('0x11')]);clearCampaigns(this['campaigns']);};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x3d')]=function(_0x2e1197){var _0x368b8f=this;if(!_[_0x9e18('0x2c')](_0x2e1197)){for(var _0x1cdb5f in _0x2e1197){if(_0x2e1197[_0x9e18('0x2e')](_0x1cdb5f)){_0x368b8f[_0x9e18('0x3e')](_0x2e1197[_0x1cdb5f],_0x9e18('0x3f'));delete _0x2e1197[_0x1cdb5f];}}}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x40')]=function(_0x251376,_0x3d727d,_0x3e1e0d){io['to'](_0x251376)['emit'](_0x3d727d,_0x3e1e0d);};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x41')]=function(_0x3dc07c,_0x49ac7c){logger[_0x9e18('0x42')](_0x9e18('0x43')+_0x49ac7c+_0x9e18('0x44'),_0x3dc07c[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x3dc07c,{'showHidden':![],'depth':null}));this[_0x9e18('0x40')](util[_0x9e18('0x46')](_0x9e18('0x47'),_0x3dc07c[_0x9e18('0x48')]),_0x9e18('0x49'),_0x3dc07c);io['emit']('voice_queue_presence:save',_0x3dc07c);};VoiceQueueReport['prototype'][_0x9e18('0x3e')]=function(_0x5611a2,_0x4ad78e){logger[_0x9e18('0x42')](_0x9e18('0x43')+_0x4ad78e+_0x9e18('0x4a'),_0x5611a2['uniqueid'],util[_0x9e18('0x3a')](_0x5611a2,{'showHidden':![],'depth':null}));this[_0x9e18('0x40')](util[_0x9e18('0x46')](_0x9e18('0x47'),_0x5611a2[_0x9e18('0x48')]),'voice_queue_channel:remove',_0x5611a2);io[_0x9e18('0x40')](_0x9e18('0x4b'),_0x5611a2);};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x4c')]=function(_0x5c012e,_0x175f13){if(_0x5c012e[_0x9e18('0x4d')]===_0x9e18('0x4e')){var _0x4771f9={'id':_0x5c012e['id'],'name':_0x5c012e[_0x9e18('0x48')],'strategy':_0x5c012e['strategy'],'answered':_0x5c012e[_0x9e18('0x4f')],'available':_0x5c012e[_0x9e18('0x50')],'loggedIn':_0x5c012e[_0x9e18('0x51')],'pTalking':_0x5c012e[_0x9e18('0x30')],'sumBillable':_0x5c012e[_0x9e18('0x52')],'sumDuration':_0x5c012e['sumDuration'],'sumHoldTime':_0x5c012e['sumHoldTime']||0x0,'talking':_0x5c012e['talking'],'total':_0x5c012e['total'],'type':_0x5c012e[_0x9e18('0x4d')],'unmanaged':_0x5c012e[_0x9e18('0x53')],'abandoned':_0x5c012e[_0x9e18('0x54')],'waiting':_0x5c012e[_0x9e18('0x31')]};if(_0x5c012e[_0x9e18('0x55')]){_0x4771f9['Trunk']={'id':_0x5c012e[_0x9e18('0x55')]['id'],'name':_0x5c012e[_0x9e18('0x55')][_0x9e18('0x48')],'active':_0x5c012e[_0x9e18('0x55')]['active'],'callerid':_0x5c012e['Trunk'][_0x9e18('0x56')]};}if(_0x5c012e[_0x9e18('0x57')]){_0x4771f9[_0x9e18('0x57')]={'id':_0x5c012e[_0x9e18('0x57')]['id'],'name':_0x5c012e[_0x9e18('0x57')][_0x9e18('0x48')]};}var _0x5d7e6a=md5(JSON[_0x9e18('0x58')](_0x4771f9));if(_0x5c012e['md5']!==_0x5d7e6a){_0x5c012e[_0x9e18('0x1')]=_0x5d7e6a;logger[_0x9e18('0x42')](_0x9e18('0x59')+_0x175f13+_0x9e18('0x5a'),util[_0x9e18('0x3a')](_0x4771f9,{'showHidden':![],'depth':null}));this[_0x9e18('0x40')](util[_0x9e18('0x46')](_0x9e18('0x47'),_0x4771f9[_0x9e18('0x48')]),_0x9e18('0x5b'),_0x4771f9);}}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x5c')]=function(_0x1fb423){return _0x1fb423!==null&&!_[_0x9e18('0x5d')](_0x1fb423);};VoiceQueueReport[_0x9e18('0x9')]['loopQueueShow']=function(){var _0x210835=this;setInterval(function(){_0x210835[_0x9e18('0x32')]();ami[_0x9e18('0x5e')]({'action':_0x9e18('0x5f')})[_0x9e18('0x37')](function(_0x4ce26e){logger[_0x9e18('0x38')](_0x9e18('0x60'),util[_0x9e18('0x3a')](_0x4ce26e,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x2a')]=function(){var _0x1ffbbb=this;setInterval(function(){if(_0x1ffbbb[_0x9e18('0x61')]){return ami[_0x9e18('0x5e')]({'action':_0x9e18('0x14')})[_0x9e18('0x62')](function(_0x212c29){_0x1ffbbb[_0x9e18('0x61')]=![];})[_0x9e18('0x37')](function(_0x1f19b8){logger[_0x9e18('0x38')](_0x9e18('0x63'),util[_0x9e18('0x3a')](_0x1f19b8,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x64')]=function(_0x1c1f3f){try{if(this[_0x9e18('0x5c')](_0x1c1f3f)&&this[_0x9e18('0x5c')](_0x1c1f3f[_0x9e18('0x65')])){logger[_0x9e18('0x42')](_0x9e18('0x66'),util[_0x9e18('0x3a')](_0x1c1f3f,{'showHidden':![],'depth':null}));if(this[_0x9e18('0x11')][_0x1c1f3f['queue']]){logger[_0x9e18('0x67')](_0x9e18('0x68'),_0x1c1f3f[_0x9e18('0x65')]);var _0x7c9536=_[_0x9e18('0x69')](this[_0x9e18('0xf')],_0x9e18('0x65'))[_0x1c1f3f['queue']]||0x0;var _0x16aad5=_0x7c9536-_0x1c1f3f[_0x9e18('0x6a')];if(this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x31')]!==_[_0x9e18('0x6b')](_0x1c1f3f[_0x9e18('0x6a')])||this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]]['loggedIn']!==_[_0x9e18('0x6b')](_0x1c1f3f[_0x9e18('0x6c')])||this['voiceQueues'][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x50')]!==_[_0x9e18('0x6b')](_0x1c1f3f[_0x9e18('0x50')])||this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x2f')]!==_0x16aad5){this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]]['waiting']=_[_0x9e18('0x6b')](_0x1c1f3f[_0x9e18('0x6a')]);this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]]['loggedIn']=_[_0x9e18('0x6b')](_0x1c1f3f['loggedin']);this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x50')]=_[_0x9e18('0x6b')](_0x1c1f3f[_0x9e18('0x50')]);this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x2f')]=_0x16aad5>0x0?_0x16aad5:0x0;this['voiceQueues'][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x2f')]=this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]]['talking']>_['toNumber'](_0x1c1f3f[_0x9e18('0x6c')])?_[_0x9e18('0x6b')](_0x1c1f3f[_0x9e18('0x6c')]):this[_0x9e18('0x11')][_0x1c1f3f[_0x9e18('0x65')]][_0x9e18('0x2f')];this['emitVoiceQueueSummary'](this['voiceQueues'][_0x1c1f3f[_0x9e18('0x65')]],_0x9e18('0x14'));}logger[_0x9e18('0x42')](_0x9e18('0x6d'),util[_0x9e18('0x3a')](this[_0x9e18('0x11')][_0x1c1f3f['queue']],{'showHidden':![],'depth':null}));ami[_0x9e18('0x40')]('custom:queuesummary',this['voiceQueues'][_0x1c1f3f['queue']]);}}}catch(_0x59af1d){logger[_0x9e18('0x38')](_0x9e18('0x63'),util[_0x9e18('0x3a')](_0x59af1d,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x17')]=function(_0xd083f9){logger[_0x9e18('0x42')]('[voiceQueueReport][queuesummarycomplete]\x20event:',util[_0x9e18('0x3a')](_0xd083f9,{'showHidden':![],'depth':null}));this[_0x9e18('0x61')]=!![];};VoiceQueueReport['prototype']['syncQueueCallerJoin']=function(_0x5cb13c){try{if(this['isNotNull'](_0x5cb13c)){logger[_0x9e18('0x42')](_0x9e18('0x6e'),_0x5cb13c[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x5cb13c,{'showHidden':![],'depth':null}));if(_['isUndefined'](this['queueReports'][_0x5cb13c[_0x9e18('0x45')]]))this[_0x9e18('0xd')][_0x5cb13c[_0x9e18('0x45')]]=[];if(_[_0x9e18('0x5d')](this['channels'][_0x5cb13c['uniqueid']]))this['channels'][_0x5cb13c[_0x9e18('0x45')]]={};var _0x5a3a2a=new QueueReport();_0x5a3a2a[_0x9e18('0x48')]=_0x5cb13c[_0x9e18('0x65')];_0x5a3a2a[_0x9e18('0x4d')]=this[_0x9e18('0x11')][_0x5a3a2a[_0x9e18('0x48')]]&&this[_0x9e18('0x11')][_0x5a3a2a[_0x9e18('0x48')]][_0x9e18('0x4d')]?this[_0x9e18('0x11')][_0x5a3a2a['name']][_0x9e18('0x4d')]||'inbound':'inbound';_0x5a3a2a[_0x9e18('0x65')]=_0x5cb13c[_0x9e18('0x65')];_0x5a3a2a[_0x9e18('0x6f')]=moment()[_0x9e18('0x46')](_0x9e18('0x70'));_0x5a3a2a['position']=_0x5cb13c[_0x9e18('0x71')];_0x5a3a2a[_0x9e18('0x72')]=_0x5cb13c[_0x9e18('0x72')];_0x5a3a2a['uniqueid']=_0x5cb13c[_0x9e18('0x45')];_0x5a3a2a[_0x9e18('0x73')]=this['channels'][_0x5cb13c[_0x9e18('0x45')]]['routealias'];logger['info']('[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s',_0x5a3a2a[_0x9e18('0x48')],_0x5a3a2a[_0x9e18('0x4d')]);_['merge'](_0x5a3a2a,_[_0x9e18('0x74')](_0x5cb13c,_[_0x9e18('0x75')](_0x5a3a2a)));this[_0x9e18('0xd')][_0x5cb13c['uniqueid']]['push'](_0x5a3a2a);this[_0x9e18('0xf')][_0x5cb13c['uniqueid']]=_0x5a3a2a;this[_0x9e18('0x41')](_0x5a3a2a,_0x9e18('0x76'));}}catch(_0x54e985){logger[_0x9e18('0x38')]('[%s][voiceQueueReport][queuecallerjoin]',_0x5cb13c[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x54e985,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x9e18('0x19')]=function(_0x2a25d5){try{if(this['isNotNull'](_0x2a25d5)){logger[_0x9e18('0x42')](_0x9e18('0x77'),_0x2a25d5[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x2a25d5,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x2a25d5[_0x9e18('0x45')]]){var _0x393e5f=_[_0x9e18('0x78')](this[_0x9e18('0xd')][_0x2a25d5[_0x9e18('0x45')]]);_0x393e5f[_0x9e18('0x79')]=![];_0x393e5f[_0x9e18('0x7a')]=null;_0x393e5f[_0x9e18('0x7b')]=_0x2a25d5['holdtime'];_0x393e5f['originalposition']=_0x2a25d5[_0x9e18('0x7c')];_0x393e5f[_0x9e18('0x7d')]=!![];_0x393e5f['queuecallerabandonAt']=moment()[_0x9e18('0x46')](_0x9e18('0x70'));_0x393e5f[_0x9e18('0x7e')]=_0x9e18('0x7f');_0x393e5f[_0x9e18('0x80')]=null;logger['info']('[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s',_0x393e5f[_0x9e18('0x48')],_0x393e5f[_0x9e18('0x4d')]);this['channels'][_0x2a25d5[_0x9e18('0x45')]]=_0x393e5f;this[_0x9e18('0x3e')](_0x393e5f,_0x9e18('0x7d'));}}}catch(_0x1359f1){logger['error'](_0x9e18('0x77'),_0x2a25d5['uniqueid'],util[_0x9e18('0x3a')](_0x1359f1,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x1b')]=function(_0x13fe3d){try{if(this[_0x9e18('0x5c')](_0x13fe3d)){logger[_0x9e18('0x42')](_0x9e18('0x81'),_0x13fe3d[_0x9e18('0x45')],util['inspect'](_0x13fe3d,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x13fe3d[_0x9e18('0x45')]]){var _0x16b220=_[_0x9e18('0x78')](this['queueReports'][_0x13fe3d['uniqueid']]);_0x16b220[_0x9e18('0x82')]=moment()[_0x9e18('0x46')](_0x9e18('0x70'));_0x16b220[_0x9e18('0x83')]=_0x13fe3d[_0x9e18('0x83')];_0x16b220[_0x9e18('0x84')]=_0x13fe3d[_0x9e18('0x84')];logger[_0x9e18('0x67')](_0x9e18('0x85'),_0x16b220[_0x9e18('0x48')],_0x16b220[_0x9e18('0x4d')],_0x13fe3d[_0x9e18('0x83')],_0x13fe3d[_0x9e18('0x84')]);this['channels'][_0x13fe3d[_0x9e18('0x45')]]=_0x16b220;this[_0x9e18('0x41')](_0x16b220,'queuecallerleave');}}}catch(_0x9b1a4){logger[_0x9e18('0x38')](_0x9e18('0x81'),_0x13fe3d[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x9b1a4,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x1e')]=function(_0x5683da){try{if(this[_0x9e18('0x5c')](_0x5683da)){logger['debug'](_0x9e18('0x86'),_0x5683da[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x5683da,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x5683da[_0x9e18('0x45')]]){var _0x2a4c0f=_['last'](this['queueReports'][_0x5683da['uniqueid']]);_0x2a4c0f[_0x9e18('0x79')]=!![];_0x2a4c0f[_0x9e18('0x7e')]='COMPLETEDBYAGENT';logger[_0x9e18('0x67')]('[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT',_0x2a4c0f[_0x9e18('0x48')],_0x2a4c0f['type']);}}}catch(_0x2c4aaf){logger[_0x9e18('0x38')](_0x9e18('0x86'),_0x5683da[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x2c4aaf,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncAgentComplete']=function(_0x2b40d7){try{if(this['isNotNull'](_0x2b40d7)){logger['debug'](_0x9e18('0x87'),_0x2b40d7[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x2b40d7,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x2b40d7[_0x9e18('0x45')]]){var _0x236131=_['last'](this[_0x9e18('0xd')][_0x2b40d7[_0x9e18('0x45')]]);_0x236131['queuecallerabandon']=![];_0x236131[_0x9e18('0x88')]=null;_0x236131['assigned']=!![];_0x236131[_0x9e18('0x80')]=_0x2b40d7[_0x9e18('0x89')];_0x236131[_0x9e18('0x7b')]=_0x2b40d7[_0x9e18('0x7b')];_0x236131['queuecallercomplete']=!![];_0x236131['queuecallerexit']=![];_0x236131[_0x9e18('0x8a')]=null;if(!_0x236131['transfer']){if(_0x2b40d7['reason']==_0x9e18('0x8b')){_0x236131[_0x9e18('0x7e')]='COMPLETED';logger['info'](_0x9e18('0x8c'),_0x236131[_0x9e18('0x48')],_0x236131['type']);}else{if(_['startsWith'](_0x2b40d7[_0x9e18('0x36')]['toLowerCase'](),_0x9e18('0x8d'))){if(this['queueReports'][_0x2b40d7[_0x9e18('0x8e')]]){var _0x2e89d1=_['last'](this[_0x9e18('0xd')][_0x2b40d7['linkedid']]);_0x2e89d1['queuecallercomplete']=![];_0x2e89d1[_0x9e18('0x8f')]=!![];_0x2e89d1[_0x9e18('0x8a')]=moment(_0x236131[_0x9e18('0x6f')])['add'](_0x2b40d7['holdtime'],'seconds')['format'](_0x9e18('0x70'));_0x2e89d1['queuecallerexitreason']=_0x9e18('0x90');_0x2e89d1[_0x9e18('0x8b')]=!![];_0x2e89d1[_0x9e18('0x91')]='FORWARD';_0x2e89d1[_0x9e18('0x92')]=_0x2b40d7['destexten'];_0x2e89d1['transferuniqueid']=_0x2b40d7['uniqueid'];logger[_0x9e18('0x67')](_0x9e18('0x93'),_0x2e89d1[_0x9e18('0x48')],_0x2e89d1[_0x9e18('0x4d')]);var _0x325196=this[_0x9e18('0xd')][_0x2b40d7['linkedid']];this['queueReports'][_0x2b40d7[_0x9e18('0x8e')]]=this[_0x9e18('0xd')][_0x2b40d7[_0x9e18('0x45')]];this[_0x9e18('0xd')][_0x2b40d7[_0x9e18('0x45')]]=_0x325196;}}else{_0x236131[_0x9e18('0x7e')]=_0x9e18('0x94')+_0x2b40d7[_0x9e18('0x95')][_0x9e18('0x96')]();logger[_0x9e18('0x67')](_0x9e18('0x97'),_0x236131['name'],_0x236131[_0x9e18('0x4d')],_0x236131['queuecallerexitreason']);}}}this[_0x9e18('0xf')][_0x2b40d7[_0x9e18('0x45')]]=_0x236131;this[_0x9e18('0x3e')](_0x236131,_0x9e18('0x1c'));}}}catch(_0x58395a){logger[_0x9e18('0x38')]('[%s][voiceQueueReport][agentcomplete]',_0x2b40d7[_0x9e18('0x45')],util['inspect'](_0x58395a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x98')]=function(_0x234a64){try{if(this[_0x9e18('0x5c')](_0x234a64)){logger[_0x9e18('0x42')]('[%s][voiceQueueReport][varset]',_0x234a64[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x234a64,{'showHidden':![],'depth':null}));this[_0x9e18('0x99')](_0x234a64['uniqueid'],_[_0x9e18('0x75')](_0x234a64['variable'])[0x0],_0x234a64['value']);if(this['queueReports'][_0x234a64[_0x9e18('0x45')]]){var _0x27aae3=_[_0x9e18('0x78')](this[_0x9e18('0xd')][_0x234a64[_0x9e18('0x45')]]);if(_0x27aae3){if(this['isNotNull'](_0x234a64[_0x9e18('0x9a')])&&this[_0x9e18('0x5c')](_0x234a64['variable'][_0x9e18('0x9b')])){switch(_0x234a64[_0x9e18('0x9c')]){case _0x9e18('0x9d'):_0x27aae3[_0x9e18('0x8f')]=![];_0x27aae3['queuecallerexitAt']=null;break;case'TIMEOUT':_0x27aae3[_0x9e18('0x9e')]=_0x9e18('0x9f');_0x27aae3[_0x9e18('0x8f')]=!![];_0x27aae3[_0x9e18('0x8a')]=moment()[_0x9e18('0x46')](_0x9e18('0x70'));_0x27aae3['queuecallerleaveAt']=moment()[_0x9e18('0x46')](_0x9e18('0x70'));logger['debug']('[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:',_0x234a64[_0x9e18('0x45')],util['inspect'](_0x27aae3,{'showHidden':![],'depth':null}));ami['emit']('custom:timeout',_0x27aae3);break;default:_0x27aae3[_0x9e18('0x8f')]=!![];_0x27aae3[_0x9e18('0x8a')]=moment()['format'](_0x9e18('0x70'));_0x27aae3[_0x9e18('0x82')]=moment()['format'](_0x9e18('0x70'));}_0x27aae3[_0x9e18('0x7d')]=![];_0x27aae3['queuecallerabandonAt']=null;_0x27aae3[_0x9e18('0x7e')]=_0x234a64[_0x9e18('0x9c')];this[_0x9e18('0xf')][_0x234a64[_0x9e18('0x45')]]=_0x27aae3;this[_0x9e18('0x3e')](_0x27aae3,_0x9e18('0x1f'));}else if(this[_0x9e18('0x5c')](_0x234a64[_0x9e18('0x9a')])&&this[_0x9e18('0x5c')](_0x234a64[_0x9e18('0x9a')][_0x9e18('0xa0')])){if(!_0x27aae3[_0x9e18('0x7d')]){_0x27aae3[_0x9e18('0x8f')]=!![];_0x27aae3['queuecallerexitAt']=moment()[_0x9e18('0x46')](_0x9e18('0x70'));_0x27aae3[_0x9e18('0x7e')]=_0x9e18('0xa1');_0x27aae3[_0x9e18('0x82')]=moment()[_0x9e18('0x46')](_0x9e18('0x70'));this[_0x9e18('0xf')][_0x234a64[_0x9e18('0x45')]]=_0x27aae3;}}logger[_0x9e18('0x67')](_0x9e18('0xa2'),_0x234a64[_0x9e18('0x45')],_0x27aae3[_0x9e18('0x48')],_0x27aae3[_0x9e18('0x4d')],_['keys'](_0x234a64[_0x9e18('0x9a')])[0x0],_0x234a64['value']);_0x27aae3[_0x9e18('0x13')]=this['variables'][_0x234a64[_0x9e18('0x45')]];}}}}catch(_0x132e9c){logger['error']('[%s][voiceQueueReport][varset]',_0x234a64[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x132e9c,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')]['addVariable']=function(_0x4d20e5,_0x5f180d,_0x1d5c59){var _0x17b605=[_0x9e18('0xa3'),_0x9e18('0xa4'),_0x9e18('0xa5'),'rtpaudioqosjitterbridged',_0x9e18('0xa6'),_0x9e18('0xa7'),_0x9e18('0xa8'),_0x9e18('0xa9'),'sipcallid',_0x9e18('0xaa'),_0x9e18('0xab'),_0x9e18('0xac'),_0x9e18('0xad'),_0x9e18('0xae'),'memberinterface',_0x9e18('0xaf'),_0x9e18('0x89'),_0x9e18('0xb0'),'memberrealtime'];if(!_[_0x9e18('0x34')](_0x5f180d)&&!_[_0x9e18('0xb1')](_0x17b605,_0x5f180d)){if(_[_0x9e18('0x5d')](this['variables'][_0x4d20e5])){this[_0x9e18('0x13')][_0x4d20e5]={};}this[_0x9e18('0x13')][_0x4d20e5][_0x5f180d]=_0x1d5c59;}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x20')]=function(_0x20b465){try{if(this[_0x9e18('0x5c')](_0x20b465)){logger[_0x9e18('0x42')]('[%s][voiceQueueReport][hangup]',_0x20b465['uniqueid'],util['inspect'](_0x20b465,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x20b465['uniqueid']]){for(var _0x497622=0x0,_0xd35969={};_0x497622<this['queueReports'][_0x20b465[_0x9e18('0x45')]]['length'];_0x497622+=0x1){_0xd35969=this[_0x9e18('0xd')][_0x20b465['uniqueid']][_0x497622];if(this['voiceQueues'][_0xd35969['queue']]){if(_0xd35969[_0x9e18('0x8f')]&&_0xd35969[_0x9e18('0x8b')]!=!![]){this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]]['unmanaged']+=0x1;}if(_0xd35969['queuecallerabandon']){this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0x54')]+=0x1;}this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0xb2')]+=moment(_0xd35969[_0x9e18('0x82')])[_0x9e18('0xb3')](_0xd35969[_0x9e18('0x6f')],_0x9e18('0xb4'))||0x0;if(_0x497622===this[_0x9e18('0xd')][_0x20b465['uniqueid']]['length']-0x1){this['voiceQueues'][_0xd35969[_0x9e18('0x65')]][_0x9e18('0xb5')]+=moment()[_0x9e18('0xb6')](0x0)[_0x9e18('0xb3')](_0xd35969['queuecallerjoinAt'],_0x9e18('0xb4'));this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0xb7')]+=0x1;if(_0xd35969['queuecallercomplete']){this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0x4f')]+=0x1;this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0x52')]+=moment()[_0x9e18('0xb6')](0x0)[_0x9e18('0xb3')](_0xd35969[_0x9e18('0x82')],_0x9e18('0xb4'));_0xd35969['queuecallercompleteAt']=moment()[_0x9e18('0x46')](_0x9e18('0x70'));_0xd35969[_0x9e18('0x8f')]=![];_0xd35969[_0x9e18('0x8a')]=null;}if(_0xd35969[_0x9e18('0x8f')]&&_0xd35969[_0x9e18('0x8b')]!=!![]){_0xd35969[_0x9e18('0x9e')]=_0x9e18('0x53');logger[_0x9e18('0x42')](_0x9e18('0xb8'),_0x20b465['uniqueid'],util['inspect'](_0xd35969,{'showHidden':![],'depth':null}));ami[_0x9e18('0x40')](_0x9e18('0xb9'),_0xd35969);}if(_0xd35969[_0x9e18('0x7d')]){_0xd35969[_0x9e18('0x9e')]='abandoned';logger[_0x9e18('0x42')](_0x9e18('0xba'),_0x20b465[_0x9e18('0x45')],util['inspect'](_0xd35969,{'showHidden':![],'depth':null}));ami[_0x9e18('0x40')]('custom:queuecallerabandon',_0xd35969);}}else{this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0xb5')]+=this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]][_0x9e18('0xb2')];}logger[_0x9e18('0x67')]('[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s',_0x20b465['uniqueid'],_0xd35969[_0x9e18('0x48')],_0xd35969[_0x9e18('0x4d')],_0x20b465[_0x9e18('0xbb')]);this[_0x9e18('0xf')][_0x20b465[_0x9e18('0x45')]]=_0xd35969;this[_0x9e18('0x3e')](_0xd35969,_0x9e18('0xbc'));this['emitVoiceQueueSummary'](this[_0x9e18('0x11')][_0xd35969[_0x9e18('0x65')]],_0x9e18('0xbc'));}}logger[_0x9e18('0x42')](_0x9e18('0xbd'),_0x20b465[_0x9e18('0x45')],util[_0x9e18('0x3a')](this[_0x9e18('0xd')][_0x20b465[_0x9e18('0x45')]],{'showHidden':![],'depth':null}));ami[_0x9e18('0x40')](_0x9e18('0xbe'),this[_0x9e18('0xd')][_0x20b465[_0x9e18('0x45')]]);delete this[_0x9e18('0xd')][_0x20b465[_0x9e18('0x45')]];delete this[_0x9e18('0xf')][_0x20b465[_0x9e18('0x45')]];}if(this[_0x9e18('0x13')][_0x20b465[_0x9e18('0x45')]]){delete this[_0x9e18('0x13')][_0x20b465[_0x9e18('0x45')]];}}}catch(_0x4e0c3e){logger[_0x9e18('0x38')](_0x9e18('0xbf'),_0x20b465[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x4e0c3e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0xc0')]=function(_0x3f1ca5){try{if(this[_0x9e18('0x5c')](_0x3f1ca5)){logger[_0x9e18('0x42')]('[%s][voiceQueueReport][attendedtransfer]',_0x3f1ca5[_0x9e18('0x45')],util['inspect'](_0x3f1ca5,{'showHidden':![],'depth':null}));var _0xaa9f60;if(this['queueReports'][_0x3f1ca5[_0x9e18('0xc1')]]){_0xaa9f60=_[_0x9e18('0x78')](this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc1')]]);_0xaa9f60['transferexten']=_0x3f1ca5[_0x9e18('0xc2')];_0xaa9f60[_0x9e18('0xc3')]=_0x3f1ca5[_0x9e18('0xc4')];_0xaa9f60[_0x9e18('0x7e')]=_0x9e18('0xc5');_0xaa9f60[_0x9e18('0x8b')]=!![];_0xaa9f60[_0x9e18('0x91')]=_0x9e18('0xc6');if(this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc4')]]){var _0x104589=this['queueReports'][_0x3f1ca5[_0x9e18('0xc4')]];this[_0x9e18('0xd')][_0x3f1ca5['secondtransfereruniqueid']]=this['queueReports'][_0x3f1ca5[_0x9e18('0xc1')]];this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc1')]]=_0x104589;var _0x52c5fb=_[_0x9e18('0x78')](this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc1')]]);_0x52c5fb['switch']=!![];}logger[_0x9e18('0x67')](_0x9e18('0xc7'),_0x3f1ca5['uniqueid'],_0xaa9f60[_0x9e18('0x48')],_0xaa9f60[_0x9e18('0x4d')],_0xaa9f60[_0x9e18('0x92')],_0xaa9f60[_0x9e18('0xc3')]);}else if(this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc8')]]){_0xaa9f60=_[_0x9e18('0x78')](this['queueReports'][_0x3f1ca5[_0x9e18('0xc8')]]);_0xaa9f60[_0x9e18('0x92')]=_0x3f1ca5['origtransfererexten'];_0xaa9f60[_0x9e18('0xc3')]=_0x3f1ca5['origtransfereruniqueid'];_0xaa9f60[_0x9e18('0x7e')]='ATTENDEDTRANSFER';_0xaa9f60[_0x9e18('0x8b')]=!![];_0xaa9f60[_0x9e18('0x91')]=_0x9e18('0xc6');if(this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc9')]]){var _0x104589=this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc9')]];this[_0x9e18('0xd')][_0x3f1ca5['origtransfereruniqueid']]=this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc8')]];this[_0x9e18('0xd')][_0x3f1ca5[_0x9e18('0xc8')]]=_0x104589;var _0x52c5fb=_[_0x9e18('0x78')](this['queueReports'][_0x3f1ca5[_0x9e18('0xc8')]]);_0x52c5fb[_0x9e18('0x33')]=!![];}logger[_0x9e18('0x67')](_0x9e18('0xc7'),_0x3f1ca5[_0x9e18('0x45')],_0xaa9f60[_0x9e18('0x48')],_0xaa9f60[_0x9e18('0x4d')],_0xaa9f60[_0x9e18('0x92')],_0xaa9f60['transferuniqueid']);}}}catch(_0x110640){logger[_0x9e18('0x38')](_0x9e18('0xca'),_0x3f1ca5[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x110640,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x29')]=function(_0x46559b){try{if(this[_0x9e18('0x5c')](_0x46559b)){logger[_0x9e18('0x42')]('[%s][voiceQueueReport][blindtransfer]',_0x46559b[_0x9e18('0x45')],util['inspect'](_0x46559b,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x46559b[_0x9e18('0xc1')]]){var _0x2a6e81=_['last'](this[_0x9e18('0xd')][_0x46559b[_0x9e18('0xc1')]]);_0x2a6e81[_0x9e18('0x7e')]=_0x9e18('0xcb');_0x2a6e81[_0x9e18('0x8b')]=!![];_0x2a6e81['transfertype']=_0x9e18('0xcc');_0x2a6e81[_0x9e18('0x92')]=_0x46559b['extension'];_0x2a6e81[_0x9e18('0xc3')]=_0x46559b[_0x9e18('0xc1')];logger[_0x9e18('0x67')](_0x9e18('0xcd'),_0x46559b[_0x9e18('0x45')],_0x2a6e81['name'],_0x2a6e81[_0x9e18('0x4d')],_0x2a6e81[_0x9e18('0x92')],_0x2a6e81['transferuniqueid']);this[_0x9e18('0x20')]({'event':_0x9e18('0xce'),'uniqueid':_0x46559b['transfereeuniqueid'],'context':_0x46559b[_0x9e18('0xcf')],'channel':_0x46559b['transfererchannel']});}}}catch(_0x24374a){logger['error'](_0x9e18('0xd0'),_0x46559b[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x24374a,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')]['syncMusicOnHoldStart']=function(_0x55c986){try{if(this['isNotNull'](_0x55c986)){logger[_0x9e18('0x42')](_0x9e18('0xd1'),_0x55c986[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x55c986,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x55c986[_0x9e18('0x45')]]){var _0x35c522=_['last'](this['queueReports'][_0x55c986[_0x9e18('0x45')]]);if(!_[_0x9e18('0x34')](_0x35c522[_0x9e18('0x82')])){_0x35c522[_0x9e18('0xd2')]=moment()[_0x9e18('0x46')](_0x9e18('0x70'));logger[_0x9e18('0x67')](_0x9e18('0xd3'),_0x55c986[_0x9e18('0x45')],_0x35c522[_0x9e18('0xd2')]);}}}}catch(_0x432325){logger[_0x9e18('0x38')]('[%s][voiceQueueReport][musiconholdstart]',_0x55c986[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x432325,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x27')]=function(_0x5b2689){try{if(this[_0x9e18('0x5c')](_0x5b2689)){logger[_0x9e18('0x42')](_0x9e18('0xd4'),_0x5b2689['uniqueid'],util[_0x9e18('0x3a')](_0x5b2689,{'showHidden':![],'depth':null}));if(this[_0x9e18('0xd')][_0x5b2689[_0x9e18('0x45')]]){var _0x4431f8=_[_0x9e18('0x78')](this[_0x9e18('0xd')][_0x5b2689[_0x9e18('0x45')]]);if(!_[_0x9e18('0x34')](_0x4431f8[_0x9e18('0xd2')])){_0x4431f8[_0x9e18('0xd5')]+=moment()[_0x9e18('0xb6')](0x0)[_0x9e18('0xb3')](_0x4431f8[_0x9e18('0xd2')],'seconds');logger[_0x9e18('0x67')](_0x9e18('0xd6'),_0x5b2689[_0x9e18('0x45')],_0x4431f8[_0x9e18('0xd5')]);delete _0x4431f8[_0x9e18('0xd2')];}}}}catch(_0x31c448){logger[_0x9e18('0x38')]('[%s][voiceQueueReport][musiconholdstop]',_0x5b2689[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x31c448,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x9e18('0x9')][_0x9e18('0x24')]=function(_0x244fc1){try{if(this['isNotNull'](_0x244fc1)){logger[_0x9e18('0x42')](_0x9e18('0xd7'),_0x244fc1[_0x9e18('0x45')],util[_0x9e18('0x3a')](_0x244fc1,{'showHidden':![],'depth':null}));if(_0x244fc1[_0x9e18('0xd8')][_0x9e18('0xd9')]()===_0x9e18('0xda')){_0x244fc1['applicationdata']=_0x244fc1[_0x9e18('0xdb')]&&_0x244fc1[_0x9e18('0xdb')]['startsWith'](_0x9e18('0xdc'))?_0x244fc1[_0x9e18('0xdb')]:(_0x244fc1[_0x9e18('0xdb')]||_0x244fc1[_0x9e18('0xdd')])[_0x9e18('0xd9')]();if(_['startsWith'](_0x244fc1[_0x9e18('0xdd')][_0x9e18('0xd9')](),_0x9e18('0xde'))){logger['info'](_0x9e18('0xdf'),_0x244fc1[_0x9e18('0x45')],_0x244fc1['application'],_0x244fc1[_0x9e18('0xdd')]);if(_[_0x9e18('0x5d')](this[_0x9e18('0xf')][_0x244fc1[_0x9e18('0x45')]]))this['channels'][_0x244fc1[_0x9e18('0x45')]]={};var _0x55caa7=_0x244fc1[_0x9e18('0xdd')][_0x9e18('0xe0')]('=');var _0x4839cf=_0x55caa7[0x0][_0x9e18('0xd9')]()['match'](/cdr\((.*)\)/);if(_0x4839cf)this[_0x9e18('0xf')][_0x244fc1[_0x9e18('0x45')]][_0x4839cf[0x1]]=_0x55caa7[0x1];}}}}catch(_0x435501){logger['error']('[%s][voiceQueueReport][newexten]',_0x244fc1['uniqueid'],util[_0x9e18('0x3a')](_0x435501,{'showHidden':![],'depth':null}));}};module[_0x9e18('0xe1')]=VoiceQueueReport;
\ No newline at end of file
+var _0x2750=['queuestatus','CONTINUE','TIMEOUT','timeout','queuecallerleaveAt','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','queueposition','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberlastcall','memberpenalty','memberrealtime','includes','[%s][voiceQueueReport][hangup]','length','sumHoldTime','seconds','milliseconds','diff','queuecallercompleteAt','lastevent','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','custom:queuecallerabandon','cause-txt','custom:voiceQueueReport','transfereeuniqueid','ATTENDEDTRANSFER','ATTENDED','secondtransfereruniqueid','switch','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','origtransfererexten','origtransfereruniqueid','[%s][voiceQueueReport][blindtransfer]','extension','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','context','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstart]','syncMusicOnHoldStop','[%s][voiceQueueReport][musiconholdstop]','mohtime','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','syncNewExten','[%s][voiceQueueReport][newexten]\x20event:','application','set','applicationdata','CDR(routeAlias)','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','split','match','[%s][voiceQueueReport][newexten]','exports','lodash','util','md5','ioredis','../../../config/environment','../../../config/logger','ami','../ami','../model/queueReport','redis','defaults','localhost','socket.io-emitter','prototype','tail','queueReports','agents','channels','queueChannels','voiceQueues','flagQueueSummary','campaigns','queuesummary','syncQueueSummary','bind','queuesummarycomplete','syncQueueSummaryComplete','syncQueueCallerJoin','syncQueueCallerAbandon','syncQueueCallerLeave','varset','syncVarSet','hangup','syncHangup','syncFullyBooted','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncAttendedTransfer','syncBlindTransfer','loopQueueSummary','isEmpty','hasOwnProperty','originated','talking','pTalking','waiting','queueStatusComplete','clearZombieChannels','sequence','enqueue','isNil','status','channel','message','error','[%s][voiceQueueReport][checkChannel]','[%s][voiceQueueReport][checkQueueReport]','inspect','variables','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:save\x20event:','uniqueid','format','voice:queue:%s','name','voice_queue_presence:save',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','emitVoiceQueueSummary','type','inbound','strategy','answered','available','loggedIn','sumBillable','sumDuration','total','unmanaged','abandoned','Trunk','callerid','Interval','stringify',']\x20sending\x20voice_queue:save\x20event:','voice_queue:save','isNotNull','isUndefined','loopQueueShow','queues','catch','[voiceQueueReport][queues]','then','[voiceQueueReport][queuesummary]','queue','[voiceQueueReport][queuesummary]\x20event:','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','loggedin','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','[%s][voiceQueueReport][queuecallerjoin]','position','count','routealias','info','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','merge','pick','keys','push','queuecallerjoin','last','queuecallercomplete','holdtime','originalposition','queuecallerabandon','queuecallerabandonAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitreason','ABANDONED','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','[%s][voiceQueueReport][queuecallerleave]','connectedlinenum','connectedlinename','queuecallerleave','syncAgentConnect','[%s][voiceQueueReport][agentconnect]','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','syncAgentComplete','[%s][voiceQueueReport][agentcomplete]','assigned','lastAssignedTo','membername','queuecallerexitAt','transfer','COMPLETED','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','startsWith','toLowerCase','local/','linkedid','queuecallerexit','queuecallerjoinAt','add','FORWARDTRANSFER','transfertype','FORWARD','transferexten','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','reason','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','agentcomplete','[%s][voiceQueueReport][varset]','addVariable','variable','value'];(function(_0x4d0636,_0x35c302){var _0x49ba8e=function(_0x456a4e){while(--_0x456a4e){_0x4d0636['push'](_0x4d0636['shift']());}};_0x49ba8e(++_0x35c302);}(_0x2750,0x13b));var _0x0275=function(_0x45dd4e,_0x14274e){_0x45dd4e=_0x45dd4e-0x0;var _0x4471d1=_0x2750[_0x45dd4e];return _0x4471d1;};'use strict';var _=require(_0x0275('0x0'));var moment=require('moment');var util=require(_0x0275('0x1'));var md5=require(_0x0275('0x2'));var Redis=require(_0x0275('0x3'));var config=require(_0x0275('0x4'));var logger=require(_0x0275('0x5'))(_0x0275('0x6'));var ami=require(_0x0275('0x7'));var QueueReport=require(_0x0275('0x8'));config[_0x0275('0x9')]=_[_0x0275('0xa')](config['redis'],{'host':_0x0275('0xb'),'port':0x18eb});var io=require(_0x0275('0xc'))(new Redis(config[_0x0275('0x9')]));var Sequence=function(){};Sequence[_0x0275('0xd')]['enqueue']=function(_0x1f7c4a){this[_0x0275('0xe')]=this[_0x0275('0xe')]?this['tail']['finally'](_0x1f7c4a):_0x1f7c4a();};function VoiceQueueReport(_0x224e0f){this['sequence']=new Sequence();this[_0x0275('0xf')]={};this[_0x0275('0x10')]=_0x224e0f[_0x0275('0x10')];this[_0x0275('0x11')]=_0x224e0f[_0x0275('0x12')];this['voiceQueues']=_0x224e0f[_0x0275('0x13')];this[_0x0275('0x14')]=!![];this[_0x0275('0x15')]=_0x224e0f['campaigns'];this['variables']={};ami['on'](_0x0275('0x16'),this[_0x0275('0x17')][_0x0275('0x18')](this));ami['on'](_0x0275('0x19'),this[_0x0275('0x1a')][_0x0275('0x18')](this));ami['on']('queuecallerjoin',this[_0x0275('0x1b')][_0x0275('0x18')](this));ami['on']('queuecallerabandon',this[_0x0275('0x1c')][_0x0275('0x18')](this));ami['on']('queuecallerleave',this[_0x0275('0x1d')][_0x0275('0x18')](this));ami['on']('agentcomplete',this['syncAgentComplete']['bind'](this));ami['on']('agentconnect',this['syncAgentConnect'][_0x0275('0x18')](this));ami['on'](_0x0275('0x1e'),this[_0x0275('0x1f')]['bind'](this));ami['on'](_0x0275('0x20'),this[_0x0275('0x21')][_0x0275('0x18')](this));ami['on']('fullybooted',this[_0x0275('0x22')][_0x0275('0x18')](this));ami['on']('newexten',this['syncNewExten'][_0x0275('0x18')](this));ami['on'](_0x0275('0x23'),this[_0x0275('0x24')]['bind'](this));ami['on'](_0x0275('0x25'),this['syncMusicOnHoldStop'][_0x0275('0x18')](this));ami['on']('attendedtransfer',this[_0x0275('0x26')][_0x0275('0x18')](this));ami['on']('blindtransfer',this[_0x0275('0x27')][_0x0275('0x18')](this));this[_0x0275('0x28')]();this['loopQueueShow']();}function clearChannels(_0x2552bc){if(!_[_0x0275('0x29')](_0x2552bc)){for(var _0x24c928 in _0x2552bc){if(_0x2552bc[_0x0275('0x2a')](_0x24c928)){delete _0x2552bc[_0x24c928];}}}}function clearCampaigns(_0x1a2024){if(!_[_0x0275('0x29')](_0x1a2024)){for(var _0x56f26c in _0x1a2024){if(_0x1a2024[_0x0275('0x2a')](_0x56f26c)){_0x1a2024[_0x56f26c][_0x0275('0x2b')]=0x0;}}}}function clearVoiceQueues(_0x1d24b2){if(!_[_0x0275('0x29')](_0x1d24b2)){for(var _0x4689a3 in _0x1d24b2){if(_0x1d24b2['hasOwnProperty'](_0x4689a3)){_0x1d24b2[_0x4689a3][_0x0275('0x2b')]=0x0;_0x1d24b2[_0x4689a3][_0x0275('0x2c')]=0x0;_0x1d24b2[_0x4689a3][_0x0275('0x2d')]=0x0;_0x1d24b2[_0x4689a3][_0x0275('0x2e')]=0x0;_0x1d24b2[_0x4689a3][_0x0275('0x2f')]=!![];}}}}function clearAgentBooked(_0x49e645){if(!_[_0x0275('0x29')](_0x49e645)){for(var _0x287be3 in _0x49e645){if(_0x49e645[_0x0275('0x2a')](_0x287be3)){_0x49e645[_0x287be3]['unlockRR']=!![];}}}}VoiceQueueReport['prototype'][_0x0275('0x30')]=function(){var _0x299190=this;for(var _0x5dc2bc in this[_0x0275('0x11')]){if(this[_0x0275('0x11')][_0x0275('0x2a')](_0x5dc2bc)&&!this[_0x0275('0x11')][_0x5dc2bc]['switch']){this[_0x0275('0x31')][_0x0275('0x32')](function(){if(!_[_0x0275('0x33')](_0x299190[_0x0275('0x11')][_0x5dc2bc])){return ami['Action']({'action':_0x0275('0x34'),'channel':_0x299190['channels'][_0x5dc2bc][_0x0275('0x35')]})['catch'](function(_0x26aae0){if(_0x26aae0[_0x0275('0x36')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x299190[_0x0275('0x11')][_0x5dc2bc]){delete _0x299190[_0x0275('0x11')][_0x5dc2bc];logger[_0x0275('0x37')](_0x0275('0x38'),_0x5dc2bc,util['inspect'](_0x26aae0,{'showHidden':![],'depth':null}));}if(_0x299190[_0x0275('0xf')][_0x5dc2bc]){delete _0x299190[_0x0275('0xf')][_0x5dc2bc];logger[_0x0275('0x37')](_0x0275('0x39'),_0x5dc2bc,util[_0x0275('0x3a')](_0x26aae0,{'showHidden':![],'depth':null}));}if(_0x299190['variables'][_0x5dc2bc]){delete _0x299190[_0x0275('0x3b')][_0x5dc2bc];logger[_0x0275('0x37')](_0x0275('0x3c'),_0x5dc2bc,util[_0x0275('0x3a')](_0x26aae0,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x22')]=function(){logger[_0x0275('0x37')](_0x0275('0x3d'));clearChannels(this[_0x0275('0x11')]);this[_0x0275('0x3e')](this[_0x0275('0xf')]);clearAgentBooked(this['agents']);clearVoiceQueues(this[_0x0275('0x13')]);clearCampaigns(this[_0x0275('0x15')]);};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x3e')]=function(_0x122a1a){var _0x5a6381=this;if(!_[_0x0275('0x29')](_0x122a1a)){for(var _0x28631b in _0x122a1a){if(_0x122a1a[_0x0275('0x2a')](_0x28631b)){_0x5a6381[_0x0275('0x3f')](_0x122a1a[_0x28631b],_0x0275('0x40'));delete _0x122a1a[_0x28631b];}}}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x41')]=function(_0x22991c,_0x5b5606,_0x3c81fc){io['to'](_0x22991c)[_0x0275('0x41')](_0x5b5606,_0x3c81fc);};VoiceQueueReport['prototype'][_0x0275('0x42')]=function(_0x76b8fa,_0x19cded){logger[_0x0275('0x43')](_0x0275('0x44')+_0x19cded+_0x0275('0x45'),_0x76b8fa[_0x0275('0x46')],util['inspect'](_0x76b8fa,{'showHidden':![],'depth':null}));this[_0x0275('0x41')](util[_0x0275('0x47')](_0x0275('0x48'),_0x76b8fa[_0x0275('0x49')]),'voice_queue_channel:save',_0x76b8fa);io[_0x0275('0x41')](_0x0275('0x4a'),_0x76b8fa);};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x3f')]=function(_0x4ad75f,_0xcbfe0a){logger['debug'](_0x0275('0x44')+_0xcbfe0a+_0x0275('0x4b'),_0x4ad75f[_0x0275('0x46')],util[_0x0275('0x3a')](_0x4ad75f,{'showHidden':![],'depth':null}));this['emit'](util[_0x0275('0x47')](_0x0275('0x48'),_0x4ad75f['name']),_0x0275('0x4c'),_0x4ad75f);io[_0x0275('0x41')](_0x0275('0x4d'),_0x4ad75f);};VoiceQueueReport['prototype'][_0x0275('0x4e')]=function(_0x12b637,_0x55e1e8){if(_0x12b637[_0x0275('0x4f')]===_0x0275('0x50')){var _0x27aace={'id':_0x12b637['id'],'name':_0x12b637[_0x0275('0x49')],'strategy':_0x12b637[_0x0275('0x51')],'answered':_0x12b637[_0x0275('0x52')],'available':_0x12b637[_0x0275('0x53')],'loggedIn':_0x12b637[_0x0275('0x54')],'pTalking':_0x12b637[_0x0275('0x2d')],'sumBillable':_0x12b637[_0x0275('0x55')],'sumDuration':_0x12b637[_0x0275('0x56')],'sumHoldTime':_0x12b637['sumHoldTime']||0x0,'talking':_0x12b637[_0x0275('0x2c')],'total':_0x12b637[_0x0275('0x57')],'type':_0x12b637[_0x0275('0x4f')],'unmanaged':_0x12b637[_0x0275('0x58')],'abandoned':_0x12b637[_0x0275('0x59')],'waiting':_0x12b637[_0x0275('0x2e')]};if(_0x12b637[_0x0275('0x5a')]){_0x27aace[_0x0275('0x5a')]={'id':_0x12b637[_0x0275('0x5a')]['id'],'name':_0x12b637[_0x0275('0x5a')][_0x0275('0x49')],'active':_0x12b637['Trunk']['active'],'callerid':_0x12b637[_0x0275('0x5a')][_0x0275('0x5b')]};}if(_0x12b637[_0x0275('0x5c')]){_0x27aace[_0x0275('0x5c')]={'id':_0x12b637[_0x0275('0x5c')]['id'],'name':_0x12b637['Interval'][_0x0275('0x49')]};}var _0x55fdff=md5(JSON[_0x0275('0x5d')](_0x27aace));if(_0x12b637[_0x0275('0x2')]!==_0x55fdff){_0x12b637[_0x0275('0x2')]=_0x55fdff;logger[_0x0275('0x43')]('[voiceQueueReport]['+_0x55e1e8+_0x0275('0x5e'),util['inspect'](_0x27aace,{'showHidden':![],'depth':null}));this['emit'](util['format'](_0x0275('0x48'),_0x27aace['name']),_0x0275('0x5f'),_0x27aace);}}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x60')]=function(_0x36971e){return _0x36971e!==null&&!_[_0x0275('0x61')](_0x36971e);};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x62')]=function(){var _0x591bfd=this;setInterval(function(){_0x591bfd[_0x0275('0x30')]();ami['Action']({'action':_0x0275('0x63')})[_0x0275('0x64')](function(_0x119301){logger[_0x0275('0x37')](_0x0275('0x65'),util[_0x0275('0x3a')](_0x119301,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x28')]=function(){var _0x41429d=this;setInterval(function(){if(_0x41429d[_0x0275('0x14')]){return ami['Action']({'action':'queuesummary'})[_0x0275('0x66')](function(_0x4fe422){_0x41429d['flagQueueSummary']=![];})[_0x0275('0x64')](function(_0x23e37f){logger[_0x0275('0x37')](_0x0275('0x67'),util[_0x0275('0x3a')](_0x23e37f,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x0275('0xd')]['syncQueueSummary']=function(_0x104232){try{if(this[_0x0275('0x60')](_0x104232)&&this[_0x0275('0x60')](_0x104232[_0x0275('0x68')])){logger[_0x0275('0x43')](_0x0275('0x69'),util['inspect'](_0x104232,{'showHidden':![],'depth':null}));if(this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]]){logger['info'](_0x0275('0x6a'),_0x104232['queue']);var _0x4f4e13=_[_0x0275('0x6b')](this[_0x0275('0x11')],_0x0275('0x68'))[_0x104232[_0x0275('0x68')]]||0x0;var _0x7749c4=_0x4f4e13-_0x104232[_0x0275('0x6c')];if(this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]][_0x0275('0x2e')]!==_[_0x0275('0x6d')](_0x104232['callers'])||this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]][_0x0275('0x54')]!==_['toNumber'](_0x104232[_0x0275('0x6e')])||this[_0x0275('0x13')][_0x104232['queue']][_0x0275('0x53')]!==_['toNumber'](_0x104232[_0x0275('0x53')])||this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]][_0x0275('0x2c')]!==_0x7749c4){this['voiceQueues'][_0x104232[_0x0275('0x68')]][_0x0275('0x2e')]=_[_0x0275('0x6d')](_0x104232[_0x0275('0x6c')]);this['voiceQueues'][_0x104232[_0x0275('0x68')]][_0x0275('0x54')]=_['toNumber'](_0x104232[_0x0275('0x6e')]);this[_0x0275('0x13')][_0x104232['queue']]['available']=_[_0x0275('0x6d')](_0x104232[_0x0275('0x53')]);this['voiceQueues'][_0x104232['queue']][_0x0275('0x2c')]=_0x7749c4>0x0?_0x7749c4:0x0;this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]][_0x0275('0x2c')]=this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]][_0x0275('0x2c')]>_[_0x0275('0x6d')](_0x104232['loggedin'])?_[_0x0275('0x6d')](_0x104232[_0x0275('0x6e')]):this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]][_0x0275('0x2c')];this[_0x0275('0x4e')](this['voiceQueues'][_0x104232[_0x0275('0x68')]],'queuesummary');}logger[_0x0275('0x43')](_0x0275('0x6f'),util[_0x0275('0x3a')](this[_0x0275('0x13')][_0x104232['queue']],{'showHidden':![],'depth':null}));ami[_0x0275('0x41')](_0x0275('0x70'),this[_0x0275('0x13')][_0x104232[_0x0275('0x68')]]);}}}catch(_0x324001){logger[_0x0275('0x37')](_0x0275('0x67'),util[_0x0275('0x3a')](_0x324001,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')]['syncQueueSummaryComplete']=function(_0x5bc165){logger['debug'](_0x0275('0x71'),util[_0x0275('0x3a')](_0x5bc165,{'showHidden':![],'depth':null}));this[_0x0275('0x14')]=!![];};VoiceQueueReport['prototype'][_0x0275('0x1b')]=function(_0x31a2d9){try{if(this[_0x0275('0x60')](_0x31a2d9)){logger[_0x0275('0x43')](_0x0275('0x72'),_0x31a2d9['uniqueid'],util[_0x0275('0x3a')](_0x31a2d9,{'showHidden':![],'depth':null}));if(_['isUndefined'](this[_0x0275('0xf')][_0x31a2d9[_0x0275('0x46')]]))this[_0x0275('0xf')][_0x31a2d9[_0x0275('0x46')]]=[];if(_['isUndefined'](this[_0x0275('0x11')][_0x31a2d9[_0x0275('0x46')]]))this[_0x0275('0x11')][_0x31a2d9['uniqueid']]={};var _0x3528b9=new QueueReport();_0x3528b9[_0x0275('0x49')]=_0x31a2d9[_0x0275('0x68')];_0x3528b9[_0x0275('0x4f')]=this[_0x0275('0x13')][_0x3528b9[_0x0275('0x49')]]&&this[_0x0275('0x13')][_0x3528b9[_0x0275('0x49')]]['type']?this['voiceQueues'][_0x3528b9['name']][_0x0275('0x4f')]||_0x0275('0x50'):_0x0275('0x50');_0x3528b9[_0x0275('0x68')]=_0x31a2d9[_0x0275('0x68')];_0x3528b9['queuecallerjoinAt']=moment()[_0x0275('0x47')]('YYYY-MM-DD\x20HH:mm:ss');_0x3528b9['position']=_0x31a2d9[_0x0275('0x73')];_0x3528b9['count']=_0x31a2d9[_0x0275('0x74')];_0x3528b9[_0x0275('0x46')]=_0x31a2d9[_0x0275('0x46')];_0x3528b9[_0x0275('0x75')]=this[_0x0275('0x11')][_0x31a2d9[_0x0275('0x46')]][_0x0275('0x75')];logger[_0x0275('0x76')](_0x0275('0x77'),_0x3528b9[_0x0275('0x49')],_0x3528b9[_0x0275('0x4f')]);_[_0x0275('0x78')](_0x3528b9,_[_0x0275('0x79')](_0x31a2d9,_[_0x0275('0x7a')](_0x3528b9)));this[_0x0275('0xf')][_0x31a2d9[_0x0275('0x46')]][_0x0275('0x7b')](_0x3528b9);this[_0x0275('0x11')][_0x31a2d9[_0x0275('0x46')]]=_0x3528b9;this[_0x0275('0x42')](_0x3528b9,_0x0275('0x7c'));}}catch(_0x59fe10){logger[_0x0275('0x37')](_0x0275('0x72'),_0x31a2d9[_0x0275('0x46')],util[_0x0275('0x3a')](_0x59fe10,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x1c')]=function(_0x5c1c96){try{if(this[_0x0275('0x60')](_0x5c1c96)){logger[_0x0275('0x43')]('[%s][voiceQueueReport][queuecallerabandon]',_0x5c1c96[_0x0275('0x46')],util[_0x0275('0x3a')](_0x5c1c96,{'showHidden':![],'depth':null}));if(this[_0x0275('0xf')][_0x5c1c96[_0x0275('0x46')]]){var _0x5f360c=_[_0x0275('0x7d')](this[_0x0275('0xf')][_0x5c1c96['uniqueid']]);_0x5f360c[_0x0275('0x7e')]=![];_0x5f360c['queuecallercompleteAt']=null;_0x5f360c[_0x0275('0x7f')]=_0x5c1c96[_0x0275('0x7f')];_0x5f360c['originalposition']=_0x5c1c96[_0x0275('0x80')];_0x5f360c[_0x0275('0x81')]=!![];_0x5f360c[_0x0275('0x82')]=moment()[_0x0275('0x47')](_0x0275('0x83'));_0x5f360c[_0x0275('0x84')]=_0x0275('0x85');_0x5f360c['lastAssignedTo']=null;logger[_0x0275('0x76')](_0x0275('0x86'),_0x5f360c['name'],_0x5f360c[_0x0275('0x4f')]);this['channels'][_0x5c1c96['uniqueid']]=_0x5f360c;this[_0x0275('0x3f')](_0x5f360c,'queuecallerabandon');}}}catch(_0x4504bd){logger[_0x0275('0x37')]('[%s][voiceQueueReport][queuecallerabandon]',_0x5c1c96[_0x0275('0x46')],util[_0x0275('0x3a')](_0x4504bd,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')]['syncQueueCallerLeave']=function(_0x11099f){try{if(this['isNotNull'](_0x11099f)){logger[_0x0275('0x43')](_0x0275('0x87'),_0x11099f[_0x0275('0x46')],util['inspect'](_0x11099f,{'showHidden':![],'depth':null}));if(this[_0x0275('0xf')][_0x11099f[_0x0275('0x46')]]){var _0x3c6ee9=_[_0x0275('0x7d')](this[_0x0275('0xf')][_0x11099f[_0x0275('0x46')]]);_0x3c6ee9['queuecallerleaveAt']=moment()[_0x0275('0x47')](_0x0275('0x83'));_0x3c6ee9[_0x0275('0x88')]=_0x11099f['connectedlinenum'];_0x3c6ee9[_0x0275('0x89')]=_0x11099f[_0x0275('0x89')];logger[_0x0275('0x76')]('[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s',_0x3c6ee9[_0x0275('0x49')],_0x3c6ee9[_0x0275('0x4f')],_0x11099f[_0x0275('0x88')],_0x11099f['connectedlinename']);this[_0x0275('0x11')][_0x11099f[_0x0275('0x46')]]=_0x3c6ee9;this[_0x0275('0x42')](_0x3c6ee9,_0x0275('0x8a'));}}}catch(_0x46de67){logger[_0x0275('0x37')](_0x0275('0x87'),_0x11099f['uniqueid'],util['inspect'](_0x46de67,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x8b')]=function(_0x30d7ee){try{if(this[_0x0275('0x60')](_0x30d7ee)){logger[_0x0275('0x43')](_0x0275('0x8c'),_0x30d7ee[_0x0275('0x46')],util['inspect'](_0x30d7ee,{'showHidden':![],'depth':null}));if(this[_0x0275('0xf')][_0x30d7ee[_0x0275('0x46')]]){var _0x5498d2=_[_0x0275('0x7d')](this['queueReports'][_0x30d7ee[_0x0275('0x46')]]);_0x5498d2[_0x0275('0x7e')]=!![];_0x5498d2[_0x0275('0x84')]=_0x0275('0x8d');logger[_0x0275('0x76')](_0x0275('0x8e'),_0x5498d2['name'],_0x5498d2[_0x0275('0x4f')]);}}}catch(_0x175348){logger[_0x0275('0x37')](_0x0275('0x8c'),_0x30d7ee[_0x0275('0x46')],util[_0x0275('0x3a')](_0x175348,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x0275('0x8f')]=function(_0x215c43){try{if(this[_0x0275('0x60')](_0x215c43)){logger[_0x0275('0x43')](_0x0275('0x90'),_0x215c43['uniqueid'],util[_0x0275('0x3a')](_0x215c43,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x215c43[_0x0275('0x46')]]){var _0x431683=_[_0x0275('0x7d')](this[_0x0275('0xf')][_0x215c43[_0x0275('0x46')]]);_0x431683[_0x0275('0x81')]=![];_0x431683[_0x0275('0x82')]=null;_0x431683[_0x0275('0x91')]=!![];_0x431683[_0x0275('0x92')]=_0x215c43[_0x0275('0x93')];_0x431683['holdtime']=_0x215c43[_0x0275('0x7f')];_0x431683[_0x0275('0x7e')]=!![];_0x431683['queuecallerexit']=![];_0x431683[_0x0275('0x94')]=null;if(!_0x431683[_0x0275('0x95')]){if(_0x215c43['reason']==_0x0275('0x95')){_0x431683['queuecallerexitreason']=_0x0275('0x96');logger[_0x0275('0x76')](_0x0275('0x97'),_0x431683[_0x0275('0x49')],_0x431683[_0x0275('0x4f')]);}else{if(_[_0x0275('0x98')](_0x215c43['channel'][_0x0275('0x99')](),_0x0275('0x9a'))){if(this[_0x0275('0xf')][_0x215c43['linkedid']]){var _0x112d4b=_[_0x0275('0x7d')](this[_0x0275('0xf')][_0x215c43[_0x0275('0x9b')]]);_0x112d4b['queuecallercomplete']=![];_0x112d4b[_0x0275('0x9c')]=!![];_0x112d4b[_0x0275('0x94')]=moment(_0x431683[_0x0275('0x9d')])[_0x0275('0x9e')](_0x215c43[_0x0275('0x7f')],'seconds')[_0x0275('0x47')](_0x0275('0x83'));_0x112d4b[_0x0275('0x84')]=_0x0275('0x9f');_0x112d4b[_0x0275('0x95')]=!![];_0x112d4b[_0x0275('0xa0')]=_0x0275('0xa1');_0x112d4b[_0x0275('0xa2')]=_0x215c43[_0x0275('0xa3')];_0x112d4b[_0x0275('0xa4')]=_0x215c43['uniqueid'];logger[_0x0275('0x76')](_0x0275('0xa5'),_0x112d4b[_0x0275('0x49')],_0x112d4b[_0x0275('0x4f')]);var _0x2a280c=this[_0x0275('0xf')][_0x215c43[_0x0275('0x9b')]];this[_0x0275('0xf')][_0x215c43[_0x0275('0x9b')]]=this[_0x0275('0xf')][_0x215c43[_0x0275('0x46')]];this[_0x0275('0xf')][_0x215c43[_0x0275('0x46')]]=_0x2a280c;}}else{_0x431683[_0x0275('0x84')]=_0x0275('0xa6')+_0x215c43[_0x0275('0xa7')][_0x0275('0xa8')]();logger[_0x0275('0x76')](_0x0275('0xa9'),_0x431683[_0x0275('0x49')],_0x431683[_0x0275('0x4f')],_0x431683[_0x0275('0x84')]);}}}this[_0x0275('0x11')][_0x215c43[_0x0275('0x46')]]=_0x431683;this[_0x0275('0x3f')](_0x431683,_0x0275('0xaa'));}}}catch(_0x527ca5){logger[_0x0275('0x37')]('[%s][voiceQueueReport][agentcomplete]',_0x215c43[_0x0275('0x46')],util[_0x0275('0x3a')](_0x527ca5,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncVarSet']=function(_0x70d1b7){try{if(this[_0x0275('0x60')](_0x70d1b7)){logger[_0x0275('0x43')](_0x0275('0xab'),_0x70d1b7[_0x0275('0x46')],util[_0x0275('0x3a')](_0x70d1b7,{'showHidden':![],'depth':null}));this[_0x0275('0xac')](_0x70d1b7[_0x0275('0x46')],_[_0x0275('0x7a')](_0x70d1b7[_0x0275('0xad')])[0x0],_0x70d1b7[_0x0275('0xae')]);if(this['queueReports'][_0x70d1b7[_0x0275('0x46')]]){var _0xedddf1=_['last'](this[_0x0275('0xf')][_0x70d1b7[_0x0275('0x46')]]);if(_0xedddf1){if(this['isNotNull'](_0x70d1b7['variable'])&&this[_0x0275('0x60')](_0x70d1b7[_0x0275('0xad')][_0x0275('0xaf')])){switch(_0x70d1b7[_0x0275('0xae')]){case _0x0275('0xb0'):_0xedddf1[_0x0275('0x9c')]=![];_0xedddf1[_0x0275('0x94')]=null;break;case _0x0275('0xb1'):_0xedddf1['lastevent']=_0x0275('0xb2');_0xedddf1[_0x0275('0x9c')]=!![];_0xedddf1[_0x0275('0x94')]=moment()['format'](_0x0275('0x83'));_0xedddf1[_0x0275('0xb3')]=moment()[_0x0275('0x47')](_0x0275('0x83'));logger[_0x0275('0x43')](_0x0275('0xb4'),_0x70d1b7[_0x0275('0x46')],util[_0x0275('0x3a')](_0xedddf1,{'showHidden':![],'depth':null}));ami['emit']('custom:timeout',_0xedddf1);break;default:_0xedddf1[_0x0275('0x9c')]=!![];_0xedddf1['queuecallerexitAt']=moment()[_0x0275('0x47')]('YYYY-MM-DD\x20HH:mm:ss');_0xedddf1['queuecallerleaveAt']=moment()[_0x0275('0x47')](_0x0275('0x83'));}_0xedddf1[_0x0275('0x81')]=![];_0xedddf1[_0x0275('0x82')]=null;_0xedddf1[_0x0275('0x84')]=_0x70d1b7[_0x0275('0xae')];this['channels'][_0x70d1b7[_0x0275('0x46')]]=_0xedddf1;this['emitVoiceQueueChannelRemove'](_0xedddf1,_0x0275('0x1e'));}else if(this['isNotNull'](_0x70d1b7['variable'])&&this[_0x0275('0x60')](_0x70d1b7[_0x0275('0xad')][_0x0275('0xb5')])){if(!_0xedddf1['queuecallerabandon']){_0xedddf1[_0x0275('0x9c')]=!![];_0xedddf1[_0x0275('0x94')]=moment()[_0x0275('0x47')]('YYYY-MM-DD\x20HH:mm:ss');_0xedddf1['queuecallerexitreason']='EXITWITHKEY';_0xedddf1['queuecallerleaveAt']=moment()[_0x0275('0x47')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x0275('0x11')][_0x70d1b7['uniqueid']]=_0xedddf1;}}logger[_0x0275('0x76')]('[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s',_0x70d1b7[_0x0275('0x46')],_0xedddf1[_0x0275('0x49')],_0xedddf1['type'],_['keys'](_0x70d1b7[_0x0275('0xad')])[0x0],_0x70d1b7[_0x0275('0xae')]);_0xedddf1[_0x0275('0x3b')]=this[_0x0275('0x3b')][_0x70d1b7[_0x0275('0x46')]];}}}}catch(_0x47cad2){logger[_0x0275('0x37')](_0x0275('0xab'),_0x70d1b7[_0x0275('0x46')],util['inspect'](_0x47cad2,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0xac')]=function(_0x50ff36,_0x1d8c42,_0x8c27b1){var _0x2eebf2=[_0x0275('0xb6'),_0x0275('0xb7'),_0x0275('0xb8'),_0x0275('0xb9'),_0x0275('0xba'),_0x0275('0xbb'),_0x0275('0xbc'),_0x0275('0xbd'),_0x0275('0xbe'),_0x0275('0xbf'),_0x0275('0xc0'),_0x0275('0xc1'),_0x0275('0xc2'),'memberdynamic','memberinterface',_0x0275('0xc3'),_0x0275('0x93'),_0x0275('0xc4'),_0x0275('0xc5')];if(!_['isNil'](_0x1d8c42)&&!_[_0x0275('0xc6')](_0x2eebf2,_0x1d8c42)){if(_[_0x0275('0x61')](this[_0x0275('0x3b')][_0x50ff36])){this[_0x0275('0x3b')][_0x50ff36]={};}this[_0x0275('0x3b')][_0x50ff36][_0x1d8c42]=_0x8c27b1;}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x21')]=function(_0x1d091e){try{if(this[_0x0275('0x60')](_0x1d091e)){logger[_0x0275('0x43')](_0x0275('0xc7'),_0x1d091e['uniqueid'],util[_0x0275('0x3a')](_0x1d091e,{'showHidden':![],'depth':null}));if(this[_0x0275('0xf')][_0x1d091e[_0x0275('0x46')]]){for(var _0x1e986f=0x0,_0x820de0={};_0x1e986f<this[_0x0275('0xf')][_0x1d091e[_0x0275('0x46')]][_0x0275('0xc8')];_0x1e986f+=0x1){_0x820de0=this['queueReports'][_0x1d091e['uniqueid']][_0x1e986f];if(this[_0x0275('0x13')][_0x820de0[_0x0275('0x68')]]){if(_0x820de0[_0x0275('0x9c')]&&_0x820de0['transfer']!=!![]){this['voiceQueues'][_0x820de0[_0x0275('0x68')]][_0x0275('0x58')]+=0x1;}if(_0x820de0[_0x0275('0x81')]){this[_0x0275('0x13')][_0x820de0[_0x0275('0x68')]][_0x0275('0x59')]+=0x1;}this[_0x0275('0x13')][_0x820de0[_0x0275('0x68')]][_0x0275('0xc9')]+=moment(_0x820de0[_0x0275('0xb3')])['diff'](_0x820de0['queuecallerjoinAt'],_0x0275('0xca'))||0x0;if(_0x1e986f===this[_0x0275('0xf')][_0x1d091e['uniqueid']][_0x0275('0xc8')]-0x1){this['voiceQueues'][_0x820de0[_0x0275('0x68')]]['sumDuration']+=moment()[_0x0275('0xcb')](0x0)[_0x0275('0xcc')](_0x820de0['queuecallerjoinAt'],_0x0275('0xca'));this[_0x0275('0x13')][_0x820de0[_0x0275('0x68')]][_0x0275('0x57')]+=0x1;if(_0x820de0['queuecallercomplete']){this[_0x0275('0x13')][_0x820de0[_0x0275('0x68')]]['answered']+=0x1;this['voiceQueues'][_0x820de0[_0x0275('0x68')]][_0x0275('0x55')]+=moment()[_0x0275('0xcb')](0x0)[_0x0275('0xcc')](_0x820de0[_0x0275('0xb3')],_0x0275('0xca'));_0x820de0[_0x0275('0xcd')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x820de0['queuecallerexit']=![];_0x820de0[_0x0275('0x94')]=null;}if(_0x820de0[_0x0275('0x9c')]&&_0x820de0[_0x0275('0x95')]!=!![]){_0x820de0[_0x0275('0xce')]=_0x0275('0x58');logger[_0x0275('0x43')](_0x0275('0xcf'),_0x1d091e[_0x0275('0x46')],util[_0x0275('0x3a')](_0x820de0,{'showHidden':![],'depth':null}));ami[_0x0275('0x41')]('custom:queuecallerunmanaged',_0x820de0);}if(_0x820de0[_0x0275('0x81')]){_0x820de0[_0x0275('0xce')]=_0x0275('0x59');logger[_0x0275('0x43')](_0x0275('0xd0'),_0x1d091e[_0x0275('0x46')],util['inspect'](_0x820de0,{'showHidden':![],'depth':null}));ami['emit'](_0x0275('0xd1'),_0x820de0);}}else{this[_0x0275('0x13')][_0x820de0[_0x0275('0x68')]][_0x0275('0x56')]+=this['voiceQueues'][_0x820de0[_0x0275('0x68')]]['sumHoldTime'];}logger[_0x0275('0x76')]('[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s',_0x1d091e[_0x0275('0x46')],_0x820de0[_0x0275('0x49')],_0x820de0[_0x0275('0x4f')],_0x1d091e[_0x0275('0xd2')]);this[_0x0275('0x11')][_0x1d091e[_0x0275('0x46')]]=_0x820de0;this[_0x0275('0x3f')](_0x820de0,_0x0275('0x20'));this[_0x0275('0x4e')](this['voiceQueues'][_0x820de0[_0x0275('0x68')]],'hangup');}}logger[_0x0275('0x43')]('[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:',_0x1d091e[_0x0275('0x46')],util['inspect'](this[_0x0275('0xf')][_0x1d091e['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x0275('0x41')](_0x0275('0xd3'),this['queueReports'][_0x1d091e[_0x0275('0x46')]]);delete this['queueReports'][_0x1d091e[_0x0275('0x46')]];delete this['channels'][_0x1d091e[_0x0275('0x46')]];}if(this[_0x0275('0x3b')][_0x1d091e['uniqueid']]){delete this[_0x0275('0x3b')][_0x1d091e[_0x0275('0x46')]];}}}catch(_0x28e0cb){logger[_0x0275('0x37')](_0x0275('0xc7'),_0x1d091e[_0x0275('0x46')],util[_0x0275('0x3a')](_0x28e0cb,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0x26')]=function(_0xa95c3){try{if(this['isNotNull'](_0xa95c3)){logger[_0x0275('0x43')]('[%s][voiceQueueReport][attendedtransfer]',_0xa95c3[_0x0275('0x46')],util[_0x0275('0x3a')](_0xa95c3,{'showHidden':![],'depth':null}));var _0x2d9c77;if(this[_0x0275('0xf')][_0xa95c3[_0x0275('0xd4')]]){_0x2d9c77=_['last'](this[_0x0275('0xf')][_0xa95c3['transfereeuniqueid']]);_0x2d9c77[_0x0275('0xa2')]=_0xa95c3['secondtransfererexten'];_0x2d9c77[_0x0275('0xa4')]=_0xa95c3['secondtransfereruniqueid'];_0x2d9c77['queuecallerexitreason']=_0x0275('0xd5');_0x2d9c77[_0x0275('0x95')]=!![];_0x2d9c77[_0x0275('0xa0')]=_0x0275('0xd6');if(this[_0x0275('0xf')][_0xa95c3[_0x0275('0xd7')]]){var _0x299186=this[_0x0275('0xf')][_0xa95c3[_0x0275('0xd7')]];this[_0x0275('0xf')][_0xa95c3['secondtransfereruniqueid']]=this[_0x0275('0xf')][_0xa95c3[_0x0275('0xd4')]];this[_0x0275('0xf')][_0xa95c3[_0x0275('0xd4')]]=_0x299186;var _0x452da9=_['last'](this[_0x0275('0xf')][_0xa95c3['transfereeuniqueid']]);_0x452da9[_0x0275('0xd8')]=!![];}logger[_0x0275('0x76')](_0x0275('0xd9'),_0xa95c3[_0x0275('0x46')],_0x2d9c77[_0x0275('0x49')],_0x2d9c77[_0x0275('0x4f')],_0x2d9c77['transferexten'],_0x2d9c77[_0x0275('0xa4')]);}else if(this['queueReports'][_0xa95c3[_0x0275('0xda')]]){_0x2d9c77=_['last'](this[_0x0275('0xf')][_0xa95c3[_0x0275('0xda')]]);_0x2d9c77[_0x0275('0xa2')]=_0xa95c3[_0x0275('0xdb')];_0x2d9c77['transferuniqueid']=_0xa95c3[_0x0275('0xdc')];_0x2d9c77[_0x0275('0x84')]=_0x0275('0xd5');_0x2d9c77[_0x0275('0x95')]=!![];_0x2d9c77[_0x0275('0xa0')]='ATTENDED';if(this['queueReports'][_0xa95c3[_0x0275('0xdc')]]){var _0x299186=this[_0x0275('0xf')][_0xa95c3['origtransfereruniqueid']];this[_0x0275('0xf')][_0xa95c3[_0x0275('0xdc')]]=this[_0x0275('0xf')][_0xa95c3['transfertargetuniqueid']];this[_0x0275('0xf')][_0xa95c3[_0x0275('0xda')]]=_0x299186;var _0x452da9=_[_0x0275('0x7d')](this[_0x0275('0xf')][_0xa95c3[_0x0275('0xda')]]);_0x452da9[_0x0275('0xd8')]=!![];}logger[_0x0275('0x76')](_0x0275('0xd9'),_0xa95c3[_0x0275('0x46')],_0x2d9c77['name'],_0x2d9c77[_0x0275('0x4f')],_0x2d9c77['transferexten'],_0x2d9c77[_0x0275('0xa4')]);}}}catch(_0x122f07){logger[_0x0275('0x37')]('[%s][voiceQueueReport][attendedtransfer]',_0xa95c3[_0x0275('0x46')],util[_0x0275('0x3a')](_0x122f07,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')]['syncBlindTransfer']=function(_0xfb6fa){try{if(this['isNotNull'](_0xfb6fa)){logger[_0x0275('0x43')](_0x0275('0xdd'),_0xfb6fa[_0x0275('0x46')],util[_0x0275('0x3a')](_0xfb6fa,{'showHidden':![],'depth':null}));if(this[_0x0275('0xf')][_0xfb6fa[_0x0275('0xd4')]]){var _0x2cbf07=_['last'](this[_0x0275('0xf')][_0xfb6fa[_0x0275('0xd4')]]);_0x2cbf07['queuecallerexitreason']='BLINDTRANSFER';_0x2cbf07[_0x0275('0x95')]=!![];_0x2cbf07['transfertype']='BLIND';_0x2cbf07[_0x0275('0xa2')]=_0xfb6fa[_0x0275('0xde')];_0x2cbf07[_0x0275('0xa4')]=_0xfb6fa[_0x0275('0xd4')];logger[_0x0275('0x76')](_0x0275('0xdf'),_0xfb6fa[_0x0275('0x46')],_0x2cbf07[_0x0275('0x49')],_0x2cbf07[_0x0275('0x4f')],_0x2cbf07[_0x0275('0xa2')],_0x2cbf07[_0x0275('0xa4')]);this[_0x0275('0x21')]({'event':_0x0275('0xe0'),'uniqueid':_0xfb6fa[_0x0275('0xd4')],'context':_0xfb6fa[_0x0275('0xe1')],'channel':_0xfb6fa['transfererchannel']});}}}catch(_0x1231b0){logger[_0x0275('0x37')](_0x0275('0xdd'),_0xfb6fa[_0x0275('0x46')],util[_0x0275('0x3a')](_0x1231b0,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype']['syncMusicOnHoldStart']=function(_0x87955){try{if(this[_0x0275('0x60')](_0x87955)){logger[_0x0275('0x43')]('[%s][voiceQueueReport][musiconholdstart]',_0x87955[_0x0275('0x46')],util['inspect'](_0x87955,{'showHidden':![],'depth':null}));if(this[_0x0275('0xf')][_0x87955[_0x0275('0x46')]]){var _0x3ef28d=_['last'](this[_0x0275('0xf')][_0x87955[_0x0275('0x46')]]);if(!_['isNil'](_0x3ef28d['queuecallerleaveAt'])){_0x3ef28d[_0x0275('0xe2')]=moment()[_0x0275('0x47')](_0x0275('0x83'));logger['info'](_0x0275('0xe3'),_0x87955['uniqueid'],_0x3ef28d['mohstarttime']);}}}}catch(_0x39ddbf){logger[_0x0275('0x37')](_0x0275('0xe4'),_0x87955[_0x0275('0x46')],util[_0x0275('0x3a')](_0x39ddbf,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0xe5')]=function(_0x31d4e0){try{if(this['isNotNull'](_0x31d4e0)){logger[_0x0275('0x43')](_0x0275('0xe6'),_0x31d4e0[_0x0275('0x46')],util[_0x0275('0x3a')](_0x31d4e0,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x31d4e0['uniqueid']]){var _0x46cf76=_[_0x0275('0x7d')](this['queueReports'][_0x31d4e0[_0x0275('0x46')]]);if(!_[_0x0275('0x33')](_0x46cf76[_0x0275('0xe2')])){_0x46cf76[_0x0275('0xe7')]+=moment()[_0x0275('0xcb')](0x0)[_0x0275('0xcc')](_0x46cf76[_0x0275('0xe2')],_0x0275('0xca'));logger[_0x0275('0x76')](_0x0275('0xe8'),_0x31d4e0[_0x0275('0x46')],_0x46cf76[_0x0275('0xe7')]);delete _0x46cf76[_0x0275('0xe2')];}}}}catch(_0x1822a4){logger[_0x0275('0x37')](_0x0275('0xe6'),_0x31d4e0['uniqueid'],util['inspect'](_0x1822a4,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x0275('0xd')][_0x0275('0xe9')]=function(_0x4dfae3){try{if(this[_0x0275('0x60')](_0x4dfae3)){logger[_0x0275('0x43')](_0x0275('0xea'),_0x4dfae3[_0x0275('0x46')],util[_0x0275('0x3a')](_0x4dfae3,{'showHidden':![],'depth':null}));if(_0x4dfae3[_0x0275('0xeb')]['toLowerCase']()===_0x0275('0xec')){_0x4dfae3[_0x0275('0xed')]=_0x4dfae3['appdata']&&_0x4dfae3['appdata'][_0x0275('0x98')](_0x0275('0xee'))?_0x4dfae3['appdata']:(_0x4dfae3['appdata']||_0x4dfae3[_0x0275('0xed')])['toLowerCase']();if(_[_0x0275('0x98')](_0x4dfae3[_0x0275('0xed')][_0x0275('0x99')](),_0x0275('0xef'))){logger['info'](_0x0275('0xf0'),_0x4dfae3[_0x0275('0x46')],_0x4dfae3[_0x0275('0xeb')],_0x4dfae3['applicationdata']);if(_[_0x0275('0x61')](this['channels'][_0x4dfae3[_0x0275('0x46')]]))this[_0x0275('0x11')][_0x4dfae3[_0x0275('0x46')]]={};var _0x50cff7=_0x4dfae3[_0x0275('0xed')][_0x0275('0xf1')]('=');var _0x211ea2=_0x50cff7[0x0][_0x0275('0x99')]()[_0x0275('0xf2')](/cdr\((.*)\)/);if(_0x211ea2)this[_0x0275('0x11')][_0x4dfae3[_0x0275('0x46')]][_0x211ea2[0x1]]=_0x50cff7[0x1];}}}}catch(_0x1eedec){logger[_0x0275('0x37')](_0x0275('0xf3'),_0x4dfae3[_0x0275('0x46')],util['inspect'](_0x1eedec,{'showHidden':![],'depth':null}));}};module[_0x0275('0xf4')]=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bb1=['../client','campaign','queue'];(function(_0x231a42,_0x39f4db){var _0x3c2a56=function(_0x58002f){while(--_0x58002f){_0x231a42['push'](_0x231a42['shift']());}};_0x3c2a56(++_0x39f4db);}(_0x0bb1,0x7e));var _0x10bb=function(_0x146484,_0x27a7f0){_0x146484=_0x146484-0x0;var _0x4c7aa3=_0x0bb1[_0x146484];return _0x4c7aa3;};'use strict';var client=require(_0x10bb('0x0'));exports['createHistory']=function(_0x41e242){return function(){_0x41e242[_0x10bb('0x1')]=_0x41e242[_0x10bb('0x2')];return client['Request']('CreateReportAgentPreview',{'body':_0x41e242,'log':'CreateReportAgentPreview'});};};
\ No newline at end of file
+var _0xc68b=['Request','CreateReportAgentPreview','createHistory','queue'];(function(_0x391fc7,_0x1e2b2c){var _0x4d2630=function(_0x23feef){while(--_0x23feef){_0x391fc7['push'](_0x391fc7['shift']());}};_0x4d2630(++_0x1e2b2c);}(_0xc68b,0x96));var _0xbc68=function(_0x24fa20,_0x5ac8bc){_0x24fa20=_0x24fa20-0x0;var _0x4db02d=_0xc68b[_0x24fa20];return _0x4db02d;};'use strict';var client=require('../client');exports[_0xbc68('0x0')]=function(_0x1821b6){return function(){_0x1821b6['campaign']=_0x1821b6[_0xbc68('0x1')];return client[_0xbc68('0x2')](_0xbc68('0x3'),{'body':_0x1821b6,'log':_0xbc68('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0de3=['../client','create','Request','CreateAttachment'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x0de3,0x184));var _0x30de=function(_0x567496,_0x216e8d){_0x567496=_0x567496-0x0;var _0x45fa79=_0x0de3[_0x567496];return _0x45fa79;};'use strict';var client=require(_0x30de('0x0'));exports[_0x30de('0x1')]=function(_0x5318e3){return client[_0x30de('0x2')](_0x30de('0x3'),{'body':_0x5318e3,'log':_0x30de('0x3')});};
\ No newline at end of file
+var _0xb08b=['create','CreateAttachment','../client'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xb08b,0x116));var _0xbb08=function(_0x304146,_0x4017b1){_0x304146=_0x304146-0x0;var _0x32a688=_0xb08b[_0x304146];return _0x32a688;};'use strict';var client=require(_0xbb08('0x0'));exports[_0xbb08('0x1')]=function(_0x28b3ec){return client['Request'](_0xbb08('0x2'),{'body':_0x28b3ec,'log':_0xbb08('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','name','callerid','Interval','interval','SquareProject','getCampaign','../client','getCampaigns','Request','GetCampaign','type','active','limitCalls','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectRetryFrequency','dialTimezone','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialOrderByScheduledAt'];(function(_0x11bebd,_0x59f607){var _0x346447=function(_0x20996b){while(--_0x20996b){_0x11bebd['push'](_0x11bebd['shift']());}};_0x346447(++_0x59f607);}(_0xdb28,0x106));var _0x8db2=function(_0x3d2688,_0x1c11f6){_0x3d2688=_0x3d2688-0x0;var _0x132ce2=_0xdb28[_0x3d2688];return _0x132ce2;};'use strict';var client=require(_0x8db2('0x0'));exports[_0x8db2('0x1')]=function(){return function(){return client[_0x8db2('0x2')](_0x8db2('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x8db2('0x4'),_0x8db2('0x5'),_0x8db2('0x6'),_0x8db2('0x7'),_0x8db2('0x8'),'dialOriginateTimeout',_0x8db2('0x9'),_0x8db2('0xa'),'dialBusyMaxRetry','dialBusyRetryFrequency',_0x8db2('0xb'),_0x8db2('0xc'),_0x8db2('0xd'),_0x8db2('0xe'),_0x8db2('0xf'),_0x8db2('0x10'),_0x8db2('0x11'),'dialAbandonedMaxRetry',_0x8db2('0x12'),_0x8db2('0x13'),_0x8db2('0x14'),'dialAgentRejectMaxRetry',_0x8db2('0x15'),_0x8db2('0x16'),'dialGlobalInterval',_0x8db2('0x17'),_0x8db2('0x18'),_0x8db2('0x19'),_0x8db2('0x1a'),_0x8db2('0x1b'),'dialAMDMinWordLength','dialAMDBetweenWordsSilence',_0x8db2('0x1c'),_0x8db2('0x1d'),_0x8db2('0x1e'),_0x8db2('0x1f'),_0x8db2('0x20'),_0x8db2('0x21'),_0x8db2('0x22')],'include':[{'model':_0x8db2('0x23'),'as':_0x8db2('0x23'),'attributes':['id',_0x8db2('0x24'),'callerid',_0x8db2('0x5')]},{'model':_0x8db2('0x23'),'as':'TrunkBackup','attributes':['id',_0x8db2('0x24'),_0x8db2('0x25'),_0x8db2('0x5')]},{'model':_0x8db2('0x26'),'as':_0x8db2('0x26'),'attributes':['id',_0x8db2('0x24')],'include':[{'model':'Interval','as':'Intervals','attributes':['id',_0x8db2('0x24'),_0x8db2('0x27')]}]},{'model':_0x8db2('0x28'),'as':_0x8db2('0x28'),'attributes':['id','name']}]},'log':_0x8db2('0x29')});};};
\ No newline at end of file
+var _0x326f=['dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectRetryFrequency','dialGlobalInterval','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialPrefix','Trunk','callerid','TrunkBackup','Interval','Intervals','SquareProject','../client','GetCampaign','name','type','active','limitCalls','dialOriginateCallerIdName'];(function(_0x4add1d,_0x1fc91f){var _0x128c44=function(_0x368195){while(--_0x368195){_0x4add1d['push'](_0x4add1d['shift']());}};_0x128c44(++_0x1fc91f);}(_0x326f,0xd1));var _0xf326=function(_0x5b7656,_0x21b9f0){_0x5b7656=_0x5b7656-0x0;var _0x187208=_0x326f[_0x5b7656];return _0x187208;};'use strict';var client=require(_0xf326('0x0'));exports['getCampaigns']=function(){return function(){return client['Request'](_0xf326('0x1'),{'options':{'raw':![],'attributes':['id',_0xf326('0x2'),_0xf326('0x3'),_0xf326('0x4'),_0xf326('0x5'),_0xf326('0x6'),_0xf326('0x7'),_0xf326('0x8'),_0xf326('0x9'),_0xf326('0xa'),'dialBusyMaxRetry',_0xf326('0xb'),_0xf326('0xc'),_0xf326('0xd'),_0xf326('0xe'),'dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry',_0xf326('0xf'),_0xf326('0x10'),_0xf326('0x11'),_0xf326('0x12'),_0xf326('0x13'),'dialAgentRejectMaxRetry',_0xf326('0x14'),'dialTimezone',_0xf326('0x15'),'dialAMDActive',_0xf326('0x16'),'dialAMDGreeting',_0xf326('0x17'),_0xf326('0x18'),'dialAMDMinWordLength',_0xf326('0x19'),_0xf326('0x1a'),_0xf326('0x1b'),_0xf326('0x1c'),'dialOrderByScheduledAt',_0xf326('0x1d'),'dialRandomLastDigitCallerIdNumber','dialCutDigit'],'include':[{'model':_0xf326('0x1e'),'as':_0xf326('0x1e'),'attributes':['id',_0xf326('0x2'),_0xf326('0x1f'),_0xf326('0x4')]},{'model':_0xf326('0x1e'),'as':_0xf326('0x20'),'attributes':['id',_0xf326('0x2'),'callerid',_0xf326('0x4')]},{'model':_0xf326('0x21'),'as':_0xf326('0x21'),'attributes':['id',_0xf326('0x2')],'include':[{'model':_0xf326('0x21'),'as':_0xf326('0x22'),'attributes':['id','name','interval']}]},{'model':'SquareProject','as':_0xf326('0x23'),'attributes':['id',_0xf326('0x2')]}]},'log':'getCampaign'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad8a=['CreateCmContact','getContacts','../client','createContact','Request'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xad8a,0x110));var _0xaad8=function(_0x31c34e,_0x1ee847){_0x31c34e=_0x31c34e-0x0;var _0x29c72d=_0xad8a[_0x31c34e];return _0x29c72d;};'use strict';var client=require(_0xaad8('0x0'));exports[_0xaad8('0x1')]=function(_0x3224a7){return function(){return client[_0xaad8('0x2')](_0xaad8('0x3'),{'body':_0x3224a7,'log':_0xaad8('0x3')});};};exports[_0xaad8('0x4')]=function(_0x5df1e2){return function(){return client[_0xaad8('0x2')]('GetCmContact',{'options':_0x5df1e2,'log':'GetCmContact'});};};
\ No newline at end of file
+var _0xbf8a=['createContact','Request','CreateCmContact','getContacts','GetCmContact'];(function(_0x21c601,_0x26f456){var _0xd423f=function(_0x52bc27){while(--_0x52bc27){_0x21c601['push'](_0x21c601['shift']());}};_0xd423f(++_0x26f456);}(_0xbf8a,0xb9));var _0xabf8=function(_0x17a179,_0x9abdcc){_0x17a179=_0x17a179-0x0;var _0x384755=_0xbf8a[_0x17a179];return _0x384755;};'use strict';var client=require('../client');exports[_0xabf8('0x0')]=function(_0x599165){return function(){return client[_0xabf8('0x1')](_0xabf8('0x2'),{'body':_0x599165,'log':_0xabf8('0x2')});};};exports[_0xabf8('0x3')]=function(_0x421fb5){return function(){return client[_0xabf8('0x1')](_0xabf8('0x4'),{'options':_0x421fb5,'log':_0xabf8('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc79d=['getContactPreview','GetCmHopperPreview','User','Agent','name','VoiceQueue','Queue','unlockContact','getContactRecallMe','GetContactRecallMe','voicePause','../client','moment','lodash','getContacts','Request','GetCmHopper','Contact','getCmHopper','updateContacts','UpdateCmHopper','format','YYYY-MM-DD\x20HH:mm:ss','rescheduleContact','ContactId','VoiceQueueId','CampaignId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','priority','DESC','scheduledat','getContactDialerIvr','CmContact','ASC','campaign','MoveContactManagedDialer','countReScheduled','CountReScheduled'];(function(_0x58a9d7,_0x53c5b1){var _0x3e319f=function(_0x43aca6){while(--_0x43aca6){_0x58a9d7['push'](_0x58a9d7['shift']());}};_0x3e319f(++_0x53c5b1);}(_0xc79d,0x12a));var _0xdc79=function(_0x45b962,_0x19879d){_0x45b962=_0x45b962-0x0;var _0x3310ee=_0xc79d[_0x45b962];return _0x3310ee;};'use strict';var client=require(_0xdc79('0x0'));var moment=require(_0xdc79('0x1'));var _=require(_0xdc79('0x2'));exports[_0xdc79('0x3')]=function(_0x5ae308,_0x5b7e72){return function(){return client[_0xdc79('0x4')](_0xdc79('0x5'),{'options':{'where':{'VoiceQueueId':_0x5ae308},'include':[{'model':'CmContact','as':_0xdc79('0x6')}],'limit':_0x5b7e72,'raw':![]},'log':_0xdc79('0x7')});};};exports[_0xdc79('0x8')]=function(_0x1bca9d,_0x5cbaab,_0x4c0070){return function(){return client[_0xdc79('0x4')](_0xdc79('0x9'),{'body':_0x1bca9d,'options':{'where':{'VoiceQueueId':_0x5cbaab,'scheduledat':{'$lte':moment()[_0xdc79('0xa')](_0xdc79('0xb'))}},'limit':_0x4c0070},'log':_0xdc79('0x9')});};};exports[_0xdc79('0xc')]=function(_0x2af106){return function(){return client['Request'](_0xdc79('0x9'),{'body':_0x2af106,'options':{'where':{'ContactId':_0x2af106[_0xdc79('0xd')],'ListId':_0x2af106['ListId'],'VoiceQueueId':_0x2af106[_0xdc79('0xe')],'CampaignId':_0x2af106[_0xdc79('0xf')]}},'log':'rescheduleContact'});};};exports[_0xdc79('0x10')]=function(_0x30a038,_0x2d3e59,_0x17a1ee){return function(){return client[_0xdc79('0x4')](_0xdc79('0x11'),{'options':{'where':{'VoiceQueueId':_0x30a038,'ListId':_0x2d3e59,'ContactId':_0x17a1ee}},'log':_0xdc79('0x11')});};};exports[_0xdc79('0x12')]=function(_0x3fc36f,_0x27971d,_0x3b6e96,_0x5619ed){return function(){return client['Request'](_0xdc79('0x13'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x3fc36f,'active':![],'scheduledat':{'$lte':moment()[_0xdc79('0xa')]('YYYY-MM-DD\x20HH:mm:ss')},'$or':[{'UserId':null},{'UserId':{'$in':_0x27971d}}]},'order':[[_0xdc79('0x14'),_0xdc79('0x15')],[_0xdc79('0x16'),_0x5619ed],['id','ASC']],'raw':!![],'limit':_0x3b6e96},'log':_0xdc79('0x13')});};};exports[_0xdc79('0x17')]=function(_0x487642,_0x104c7d,_0x5d974f){return function(){return client[_0xdc79('0x4')]('GetContactDialer',{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x487642,'active':![],'scheduledat':{'$lte':moment()[_0xdc79('0xa')](_0xdc79('0xb'))}},'include':[{'model':_0xdc79('0x18'),'as':_0xdc79('0x6')}],'order':[[_0xdc79('0x14'),'DESC'],['scheduledat',_0x5d974f],['id',_0xdc79('0x19')]],'raw':!![],'limit':_0x104c7d},'log':'GetContactDialerIvr'});};};exports['moveContactManagedDialer']=function(_0x3edd30,_0x5dc89a){return function(){_0x3edd30[_0xdc79('0x1a')]=_0x3edd30['queue'];return client['Request'](_0xdc79('0x1b'),{'body':_0x3edd30,'options':{'where':{'ContactId':_0x3edd30['ContactId'],'ListId':_0x3edd30['ListId'],'VoiceQueueId':_0x3edd30[_0xdc79('0xe')],'CampaignId':_0x3edd30['CampaignId'],'active':_0x5dc89a?undefined:!![]}},'log':'MoveContactManagedDialer'});};};exports[_0xdc79('0x1c')]=function(_0x4e9a49){return function(){return client['Request'](_0xdc79('0x1d'),{'options':{'where':{'VoiceQueueId':_0x4e9a49['id']?_0x4e9a49['id']||null:null}},'log':_0xdc79('0x1c')});};};exports[_0xdc79('0x1e')]=function(_0x53a25d){return function(){return client[_0xdc79('0x4')](_0xdc79('0x1f'),{'options':{'where':{'id':_0x53a25d},'include':[{'model':'CmContact','as':_0xdc79('0x6')},{'model':_0xdc79('0x20'),'as':_0xdc79('0x21'),'attributes':['id',_0xdc79('0x22')]},{'model':_0xdc79('0x23'),'as':_0xdc79('0x24'),'attributes':['id',_0xdc79('0x22')]}],'raw':!![]},'log':_0xdc79('0x7')});};};exports[_0xdc79('0x25')]=function(_0x469629,_0x32586d,_0x58b9c1){return function(){return client[_0xdc79('0x4')](_0xdc79('0x9'),{'body':_0x469629,'options':{'where':{'id':_0x32586d},'limit':_0x58b9c1},'log':_0xdc79('0x9')});};};exports[_0xdc79('0x26')]=function(_0x28881b,_0xf75e31){return function(){return client[_0xdc79('0x4')](_0xdc79('0x27'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x28881b,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0xdc79('0xa')](_0xdc79('0xb'))},'UserId':{'$in':_0xf75e31}},'order':[[_0xdc79('0x14'),'DESC'],['scheduledat',_0xdc79('0x15')],['id',_0xdc79('0x19')]],'include':[{'model':_0xdc79('0x18'),'as':'Contact'},{'model':_0xdc79('0x20'),'as':_0xdc79('0x21'),'attributes':['id','name',_0xdc79('0x28')]}],'group':'db.CmHopper.UserId','raw':!![]},'log':_0xdc79('0x13')});};};
\ No newline at end of file
+var _0x0b69=['MoveContactManagedDialer','ListId','countReScheduled','CountReScheduled','getContactPreview','GetCmHopperPreview','User','Agent','name','VoiceQueue','Queue','unlockContact','getContactRecallMe','GetContactRecallMe','db.CmHopper.UserId','../client','lodash','getContacts','GetCmHopper','CmContact','getCmHopper','updateContacts','Request','YYYY-MM-DD\x20HH:mm:ss','UpdateCmHopper','rescheduleContact','ContactId','VoiceQueueId','CampaignId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','format','priority','DESC','Contact','scheduledat','ASC','GetContactDialerIvr','moveContactManagedDialer','queue'];(function(_0x342baa,_0x4a110f){var _0x1208f3=function(_0x56a645){while(--_0x56a645){_0x342baa['push'](_0x342baa['shift']());}};_0x1208f3(++_0x4a110f);}(_0x0b69,0x189));var _0x90b6=function(_0x559fc9,_0x4e8d53){_0x559fc9=_0x559fc9-0x0;var _0xaed737=_0x0b69[_0x559fc9];return _0xaed737;};'use strict';var client=require(_0x90b6('0x0'));var moment=require('moment');var _=require(_0x90b6('0x1'));exports[_0x90b6('0x2')]=function(_0x5b21df,_0x4d1fb1){return function(){return client['Request'](_0x90b6('0x3'),{'options':{'where':{'VoiceQueueId':_0x5b21df},'include':[{'model':_0x90b6('0x4'),'as':'Contact'}],'limit':_0x4d1fb1,'raw':![]},'log':_0x90b6('0x5')});};};exports[_0x90b6('0x6')]=function(_0x3f1b0a,_0x14678b,_0x2f80b0){return function(){return client[_0x90b6('0x7')]('UpdateCmHopper',{'body':_0x3f1b0a,'options':{'where':{'VoiceQueueId':_0x14678b,'scheduledat':{'$lte':moment()['format'](_0x90b6('0x8'))}},'limit':_0x2f80b0},'log':_0x90b6('0x9')});};};exports[_0x90b6('0xa')]=function(_0x59c1c0){return function(){return client['Request']('UpdateCmHopper',{'body':_0x59c1c0,'options':{'where':{'ContactId':_0x59c1c0[_0x90b6('0xb')],'ListId':_0x59c1c0['ListId'],'VoiceQueueId':_0x59c1c0[_0x90b6('0xc')],'CampaignId':_0x59c1c0[_0x90b6('0xd')]}},'log':_0x90b6('0xa')});};};exports[_0x90b6('0xe')]=function(_0x409d2f,_0xb54d8,_0x4b3a22){return function(){return client[_0x90b6('0x7')]('DestroyCmHopper',{'options':{'where':{'VoiceQueueId':_0x409d2f,'ListId':_0xb54d8,'ContactId':_0x4b3a22}},'log':_0x90b6('0xf')});};};exports[_0x90b6('0x10')]=function(_0x3bc5c2,_0x14dcee,_0x3a224f,_0x57ef73){return function(){return client[_0x90b6('0x7')](_0x90b6('0x11'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x3bc5c2,'active':![],'scheduledat':{'$lte':moment()[_0x90b6('0x12')](_0x90b6('0x8'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x14dcee}}]},'order':[[_0x90b6('0x13'),_0x90b6('0x14')],['scheduledat',_0x57ef73],['id','ASC']],'raw':!![],'limit':_0x3a224f},'log':_0x90b6('0x11')});};};exports['getContactDialerIvr']=function(_0x5a1e68,_0x59f6fc,_0x32acfa){return function(){return client[_0x90b6('0x7')](_0x90b6('0x11'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x5a1e68,'active':![],'scheduledat':{'$lte':moment()[_0x90b6('0x12')](_0x90b6('0x8'))}},'include':[{'model':_0x90b6('0x4'),'as':_0x90b6('0x15')}],'order':[[_0x90b6('0x13'),_0x90b6('0x14')],[_0x90b6('0x16'),_0x32acfa],['id',_0x90b6('0x17')]],'raw':!![],'limit':_0x59f6fc},'log':_0x90b6('0x18')});};};exports[_0x90b6('0x19')]=function(_0x59e2ff,_0xad004f){return function(){_0x59e2ff['campaign']=_0x59e2ff[_0x90b6('0x1a')];return client[_0x90b6('0x7')](_0x90b6('0x1b'),{'body':_0x59e2ff,'options':{'where':{'ContactId':_0x59e2ff[_0x90b6('0xb')],'ListId':_0x59e2ff[_0x90b6('0x1c')],'VoiceQueueId':_0x59e2ff[_0x90b6('0xc')],'CampaignId':_0x59e2ff['CampaignId'],'active':_0xad004f?undefined:!![]}},'log':'MoveContactManagedDialer'});};};exports[_0x90b6('0x1d')]=function(_0xffdc19){return function(){return client[_0x90b6('0x7')](_0x90b6('0x1e'),{'options':{'where':{'VoiceQueueId':_0xffdc19['id']?_0xffdc19['id']||null:null}},'log':_0x90b6('0x1d')});};};exports[_0x90b6('0x1f')]=function(_0x167f7f){return function(){return client['Request'](_0x90b6('0x20'),{'options':{'where':{'id':_0x167f7f},'include':[{'model':_0x90b6('0x4'),'as':'Contact'},{'model':_0x90b6('0x21'),'as':_0x90b6('0x22'),'attributes':['id',_0x90b6('0x23')]},{'model':_0x90b6('0x24'),'as':_0x90b6('0x25'),'attributes':['id','name']}],'raw':!![]},'log':'getCmHopper'});};};exports[_0x90b6('0x26')]=function(_0x134444,_0x528203,_0x37f008){return function(){return client['Request'](_0x90b6('0x9'),{'body':_0x134444,'options':{'where':{'id':_0x528203},'limit':_0x37f008},'log':'UpdateCmHopper'});};};exports[_0x90b6('0x27')]=function(_0x36f4b2,_0x9292a0){return function(){return client[_0x90b6('0x7')](_0x90b6('0x28'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x36f4b2,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()['format'](_0x90b6('0x8'))},'UserId':{'$in':_0x9292a0}},'order':[[_0x90b6('0x13'),_0x90b6('0x14')],[_0x90b6('0x16'),_0x90b6('0x14')],['id',_0x90b6('0x17')]],'include':[{'model':_0x90b6('0x4'),'as':_0x90b6('0x15')},{'model':'User','as':_0x90b6('0x22'),'attributes':['id',_0x90b6('0x23'),'voicePause']}],'group':_0x90b6('0x29'),'raw':!![]},'log':_0x90b6('0x11')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c9a=['GetCmHopperBlack','VoiceQueueId','Contact','checkIsBlackListIvr','Request','CampaignId','phone','GetCmHopperBlackIvr','../client'];(function(_0x112624,_0x5c736c){var _0x3a4de6=function(_0x2f11ca){while(--_0x2f11ca){_0x112624['push'](_0x112624['shift']());}};_0x3a4de6(++_0x5c736c);}(_0x1c9a,0x98));var _0xa1c9=function(_0x1cd002,_0x330e83){_0x1cd002=_0x1cd002-0x0;var _0x54867c=_0x1c9a[_0x1cd002];return _0x54867c;};'use strict';var client=require(_0xa1c9('0x0'));exports['checkIsBlackList']=function(_0x470dcd){return function(){return client['Request'](_0xa1c9('0x1'),{'options':{'where':{'VoiceQueueId':_0x470dcd[_0xa1c9('0x2')],'phone':_0x470dcd[_0xa1c9('0x3')]['phone']},'raw':![]},'log':_0xa1c9('0x1')});};};exports[_0xa1c9('0x4')]=function(_0x20f0bf){return function(){return client[_0xa1c9('0x5')]('GetCmHopperBlack',{'options':{'where':{'CampaignId':_0x20f0bf[_0xa1c9('0x6')],'phone':_0x20f0bf['Contact'][_0xa1c9('0x7')]},'raw':![]},'log':_0xa1c9('0x8')});};};
\ No newline at end of file
+var _0xe605=['VoiceQueueId','Contact','phone','checkIsBlackListIvr','CampaignId','GetCmHopperBlackIvr','../client','checkIsBlackList','Request','GetCmHopperBlack'];(function(_0x204cc1,_0x233f1f){var _0xab82d1=function(_0x2ddbde){while(--_0x2ddbde){_0x204cc1['push'](_0x204cc1['shift']());}};_0xab82d1(++_0x233f1f);}(_0xe605,0x92));var _0x5e60=function(_0x3d8b86,_0x4cb3e4){_0x3d8b86=_0x3d8b86-0x0;var _0x3512a4=_0xe605[_0x3d8b86];return _0x3512a4;};'use strict';var client=require(_0x5e60('0x0'));exports[_0x5e60('0x1')]=function(_0x5deab2){return function(){return client[_0x5e60('0x2')](_0x5e60('0x3'),{'options':{'where':{'VoiceQueueId':_0x5deab2[_0x5e60('0x4')],'phone':_0x5deab2[_0x5e60('0x5')][_0x5e60('0x6')]},'raw':![]},'log':_0x5e60('0x3')});};};exports[_0x5e60('0x7')]=function(_0x30d8fb){return function(){return client[_0x5e60('0x2')](_0x5e60('0x3'),{'options':{'where':{'CampaignId':_0x30d8fb[_0x5e60('0x8')],'phone':_0x30d8fb[_0x5e60('0x5')]['phone']},'raw':![]},'log':_0x5e60('0x9')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed5e=['CreateCmHopperFinal','createContact','campaign','queue'];(function(_0x4c321c,_0x3e9da0){var _0x25accb=function(_0x21bf7a){while(--_0x21bf7a){_0x4c321c['push'](_0x4c321c['shift']());}};_0x25accb(++_0x3e9da0);}(_0xed5e,0xf9));var _0xeed5=function(_0x5a0683,_0x49fba2){_0x5a0683=_0x5a0683-0x0;var _0x1ac947=_0xed5e[_0x5a0683];return _0x1ac947;};'use strict';var client=require('../client');exports[_0xeed5('0x0')]=function(_0xa9493e){return function(){_0xa9493e[_0xeed5('0x1')]=_0xa9493e[_0xeed5('0x2')];return client['Request'](_0xeed5('0x3'),{'body':_0xa9493e,'log':_0xeed5('0x3')});};};
\ No newline at end of file
+var _0xc85e=['Request','CreateCmHopperFinal','createContact','campaign'];(function(_0x5c0979,_0x287854){var _0x309972=function(_0x17defd){while(--_0x17defd){_0x5c0979['push'](_0x5c0979['shift']());}};_0x309972(++_0x287854);}(_0xc85e,0xd6));var _0xec85=function(_0x37c5ad,_0x56dd08){_0x37c5ad=_0x37c5ad-0x0;var _0x3adf96=_0xc85e[_0x37c5ad];return _0x3adf96;};'use strict';var client=require('../client');exports[_0xec85('0x0')]=function(_0x126dd7){return function(){_0x126dd7[_0xec85('0x1')]=_0x126dd7['queue'];return client[_0xec85('0x2')]('CreateCmHopperFinal',{'body':_0x126dd7,'log':_0xec85('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10e7=['campaign','CreateCmHopperHistory','avgHandleTime','AvgHandleTime','subtract','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','Request','GetVoiceQueueHopperHistory','startOf','day','endOf','queue','getCampaignHopperHistory','GetCampaignHopperHistory','moment'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x10e7,0xe9));var _0x710e=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0x10e7[_0x5b561d];return _0x431060;};'use strict';var client=require('../client');var moment=require(_0x710e('0x0'));exports['createHistory']=function(_0x353e76){return function(){_0x353e76[_0x710e('0x1')]=_0x353e76['queue'];return client['Request'](_0x710e('0x2'),{'body':_0x353e76,'log':_0x710e('0x2')});};};exports[_0x710e('0x3')]=function(_0x596a09){return function(){return client['Request'](_0x710e('0x4'),{'options':{'where':{'endtime':{'$between':[moment()[_0x710e('0x5')](_0x596a09,'minutes')[_0x710e('0x6')](_0x710e('0x7')),moment()[_0x710e('0x6')](_0x710e('0x7'))]}},'raw':![]},'log':_0x710e('0x8')});};};exports[_0x710e('0x9')]=function(_0xf94a7b){return function(){return client[_0x710e('0xa')](_0x710e('0xb'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x710e('0xc')](_0x710e('0xd'))[_0x710e('0x6')](_0x710e('0x7')),moment()[_0x710e('0xe')](_0x710e('0xd'))['format']('YYYY-MM-DD\x20HH:mm:ss')]},'campaigntype':_0x710e('0xf')},'raw':![]},'log':_0x710e('0xb')});};};exports[_0x710e('0x10')]=function(_0x141496){return function(){return client['Request'](_0x710e('0x11'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x710e('0xc')](_0x710e('0xd'))[_0x710e('0x6')](_0x710e('0x7')),moment()['endOf'](_0x710e('0xd'))[_0x710e('0x6')](_0x710e('0x7'))]},'campaigntype':'ivr'},'raw':![]},'log':_0x710e('0x11')});};};
\ No newline at end of file
+var _0x2574=['day','format','GetVoiceQueueHopperHistory','getCampaignHopperHistory','GetCampaignHopperHistory','startOf','endOf','ivr','../client','moment','createHistory','campaign','queue','Request','CreateCmHopperHistory','avgHandleTime','AvgHandleTime','subtract','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory'];(function(_0x204797,_0x59bcfb){var _0x45219c=function(_0x26914d){while(--_0x26914d){_0x204797['push'](_0x204797['shift']());}};_0x45219c(++_0x59bcfb);}(_0x2574,0xf8));var _0x4257=function(_0xf34b6e,_0x5df6bd){_0xf34b6e=_0xf34b6e-0x0;var _0x33e52b=_0x2574[_0xf34b6e];return _0x33e52b;};'use strict';var client=require(_0x4257('0x0'));var moment=require(_0x4257('0x1'));exports[_0x4257('0x2')]=function(_0x31e657){return function(){_0x31e657[_0x4257('0x3')]=_0x31e657[_0x4257('0x4')];return client[_0x4257('0x5')](_0x4257('0x6'),{'body':_0x31e657,'log':'CreateCmHopperHistory'});};};exports[_0x4257('0x7')]=function(_0x4f5d01){return function(){return client[_0x4257('0x5')](_0x4257('0x8'),{'options':{'where':{'endtime':{'$between':[moment()[_0x4257('0x9')](_0x4f5d01,'minutes')['format'](_0x4257('0xa')),moment()['format'](_0x4257('0xa'))]}},'raw':![]},'log':_0x4257('0xb')});};};exports['getVoiceQueueHopperHistory']=function(_0x346fb5){return function(){return client['Request']('GetVoiceQueueHopperHistory',{'options':{'where':{'createdAt':{'$between':[moment()['startOf'](_0x4257('0xc'))[_0x4257('0xd')]('YYYY-MM-DD\x20HH:mm:ss'),moment()['endOf']('day')[_0x4257('0xd')]('YYYY-MM-DD\x20HH:mm:ss')]},'campaigntype':_0x4257('0x4')},'raw':![]},'log':_0x4257('0xe')});};};exports[_0x4257('0xf')]=function(_0x47995e){return function(){return client[_0x4257('0x5')](_0x4257('0x10'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x4257('0x11')]('day')['format'](_0x4257('0xa')),moment()[_0x4257('0x12')]('day')[_0x4257('0xd')](_0x4257('0xa'))]},'campaigntype':_0x4257('0x13')},'raw':![]},'log':_0x4257('0x10')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcaef=['modem','gateway','t38timeout','ListId','key','Trunk','getFaxAccount','notify','NotifyFaxAccount','getFaxAccounts','Request','GetFaxAccount','name','ecm','localstationid','minrate'];(function(_0xf5fbed,_0x3ac172){var _0x1f35a8=function(_0x5aa3b5){while(--_0x5aa3b5){_0xf5fbed['push'](_0xf5fbed['shift']());}};_0x1f35a8(++_0x3ac172);}(_0xcaef,0x1c9));var _0xfcae=function(_0x88cd7b,_0x4c884c){_0x88cd7b=_0x88cd7b-0x0;var _0x56fcc8=_0xcaef[_0x88cd7b];return _0x56fcc8;};'use strict';var client=require('../client');exports[_0xfcae('0x0')]=function(){return function(){return client[_0xfcae('0x1')](_0xfcae('0x2'),{'options':{'raw':![],'attributes':['id',_0xfcae('0x3'),'description',_0xfcae('0x4'),'headerinfo',_0xfcae('0x5'),_0xfcae('0x6'),'maxrate',_0xfcae('0x7'),_0xfcae('0x8'),'faxdetect',_0xfcae('0x9'),'tech','TrunkId',_0xfcae('0xa'),_0xfcae('0xb')],'include':[{'model':_0xfcae('0xc'),'as':'Trunk','attributes':['id',_0xfcae('0x3'),'callerid','active']}]},'log':_0xfcae('0xd')});};};exports[_0xfcae('0xe')]=function(_0x434288,_0x207188){return client[_0xfcae('0x1')](_0xfcae('0xf'),{'account':{'id':_0x434288},'body':_0x207188,'log':_0xfcae('0xf')});};
\ No newline at end of file
+var _0x9962=['active','getFaxAccount','notify','NotifyFaxAccount','../client','Request','GetFaxAccount','name','ecm','localstationid','minrate','modem','gateway','t38timeout','tech','TrunkId','ListId','key','Trunk','callerid'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x9962,0xb8));var _0x2996=function(_0x3b36a1,_0x2081eb){_0x3b36a1=_0x3b36a1-0x0;var _0x5ea4fc=_0x9962[_0x3b36a1];return _0x5ea4fc;};'use strict';var client=require(_0x2996('0x0'));exports['getFaxAccounts']=function(){return function(){return client[_0x2996('0x1')](_0x2996('0x2'),{'options':{'raw':![],'attributes':['id',_0x2996('0x3'),'description',_0x2996('0x4'),'headerinfo',_0x2996('0x5'),_0x2996('0x6'),'maxrate',_0x2996('0x7'),_0x2996('0x8'),'faxdetect',_0x2996('0x9'),_0x2996('0xa'),_0x2996('0xb'),_0x2996('0xc'),_0x2996('0xd')],'include':[{'model':'Trunk','as':_0x2996('0xe'),'attributes':['id','name',_0x2996('0xf'),_0x2996('0x10')]}]},'log':_0x2996('0x11')});};};exports[_0x2996('0x12')]=function(_0x4f3716,_0x304bd9){return client[_0x2996('0x1')](_0x2996('0x13'),{'account':{'id':_0x4f3716},'body':_0x304bd9,'log':_0x2996('0x13')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0417=['UpdateFaxMessage','../client','update'];(function(_0x33c532,_0x6359a7){var _0x40a0f2=function(_0x29b640){while(--_0x29b640){_0x33c532['push'](_0x33c532['shift']());}};_0x40a0f2(++_0x6359a7);}(_0x0417,0x15a));var _0x7041=function(_0x57a09b,_0x3acbdc){_0x57a09b=_0x57a09b-0x0;var _0x4c5dc3=_0x0417[_0x57a09b];return _0x4c5dc3;};'use strict';var client=require(_0x7041('0x0'));exports[_0x7041('0x1')]=function(_0x3ed09c,_0x5be7d3){return client['Request'](_0x7041('0x2'),{'body':_0x5be7d3,'options':{'where':{'AttachmentId':_0x3ed09c}},'log':_0x7041('0x2')});};
\ No newline at end of file
+var _0xac95=['../client','update'];(function(_0x38674c,_0x3b48c8){var _0x5ace26=function(_0x203c3e){while(--_0x203c3e){_0x38674c['push'](_0x38674c['shift']());}};_0x5ace26(++_0x3b48c8);}(_0xac95,0x130));var _0x5ac9=function(_0x248d1b,_0x1dac16){_0x248d1b=_0x248d1b-0x0;var _0xa9b267=_0xac95[_0x248d1b];return _0xa9b267;};'use strict';var client=require(_0x5ac9('0x0'));exports[_0x5ac9('0x1')]=function(_0x46a146,_0x1f5cdb){return client['Request']('UpdateFaxMessage',{'body':_0x1f5cdb,'options':{'where':{'AttachmentId':_0x46a146}},'log':'UpdateFaxMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa298=['Tag','../../client','getDeskAccounts','Request','GetDeskAccount','name','description','username','password','authType','serverUrl','DeskConfiguration','Configurations','DeskField','Subjects','type','content','variableName','Variable','key','keyType','keyContent','Fields','idField'];(function(_0x58366a,_0x1dba5d){var _0x3bdd3d=function(_0x10444e){while(--_0x10444e){_0x58366a['push'](_0x58366a['shift']());}};_0x3bdd3d(++_0x1dba5d);}(_0xa298,0x199));var _0x8a29=function(_0x59a0e7,_0x3b282c){_0x59a0e7=_0x59a0e7-0x0;var _0x4b990c=_0xa298[_0x59a0e7];return _0x4b990c;};'use strict';var client=require(_0x8a29('0x0'));exports[_0x8a29('0x1')]=function(){return function(_0x5cdb7f){return client[_0x8a29('0x2')](_0x8a29('0x3'),{'options':{'raw':![],'attributes':['id',_0x8a29('0x4'),_0x8a29('0x5'),_0x8a29('0x6'),_0x8a29('0x7'),'remoteUri',_0x8a29('0x8'),'type',_0x8a29('0x9')],'include':[{'model':_0x8a29('0xa'),'as':_0x8a29('0xb'),'attributes':['id','name'],'include':[{'model':_0x8a29('0xc'),'as':_0x8a29('0xd'),'attributes':['id',_0x8a29('0xe'),_0x8a29('0xf'),_0x8a29('0x10')],'include':[{'model':_0x8a29('0x11'),'as':_0x8a29('0x11'),'attributes':['id','name']}]},{'model':_0x8a29('0xc'),'as':'Descriptions','attributes':['id',_0x8a29('0xe'),_0x8a29('0xf'),_0x8a29('0x12'),_0x8a29('0x13'),_0x8a29('0x14'),_0x8a29('0x10')],'include':[{'model':_0x8a29('0x11'),'as':_0x8a29('0x11'),'attributes':['id',_0x8a29('0x4')]}]},{'model':_0x8a29('0xc'),'as':_0x8a29('0x15'),'attributes':['id',_0x8a29('0xe'),_0x8a29('0xf'),_0x8a29('0x16'),'nameField','customField',_0x8a29('0x10')],'include':[{'model':_0x8a29('0x11'),'as':_0x8a29('0x11'),'attributes':['id','name']}]},{'model':_0x8a29('0x17'),'as':'Tags','attributes':['id','name']}]}]},'log':_0x8a29('0x3')});};};
\ No newline at end of file
+var _0xede9=['Tags','../../client','getDeskAccounts','Request','name','password','remoteUri','authType','type','serverUrl','Configurations','Subjects','variableName','Variable','DeskField','keyType','keyContent','content','idField','nameField','customField','Tag'];(function(_0x26393b,_0x449a84){var _0x57230a=function(_0x583888){while(--_0x583888){_0x26393b['push'](_0x26393b['shift']());}};_0x57230a(++_0x449a84);}(_0xede9,0x6f));var _0x9ede=function(_0x5ef8a8,_0x523a35){_0x5ef8a8=_0x5ef8a8-0x0;var _0x1b4bd0=_0xede9[_0x5ef8a8];return _0x1b4bd0;};'use strict';var client=require(_0x9ede('0x0'));exports[_0x9ede('0x1')]=function(){return function(_0x284a47){return client[_0x9ede('0x2')]('GetDeskAccount',{'options':{'raw':![],'attributes':['id',_0x9ede('0x3'),'description','username',_0x9ede('0x4'),_0x9ede('0x5'),_0x9ede('0x6'),_0x9ede('0x7'),_0x9ede('0x8')],'include':[{'model':'DeskConfiguration','as':_0x9ede('0x9'),'attributes':['id',_0x9ede('0x3')],'include':[{'model':'DeskField','as':_0x9ede('0xa'),'attributes':['id',_0x9ede('0x7'),'content',_0x9ede('0xb')],'include':[{'model':_0x9ede('0xc'),'as':_0x9ede('0xc'),'attributes':['id',_0x9ede('0x3')]}]},{'model':_0x9ede('0xd'),'as':'Descriptions','attributes':['id',_0x9ede('0x7'),'content','key',_0x9ede('0xe'),_0x9ede('0xf'),_0x9ede('0xb')],'include':[{'model':_0x9ede('0xc'),'as':'Variable','attributes':['id',_0x9ede('0x3')]}]},{'model':_0x9ede('0xd'),'as':'Fields','attributes':['id',_0x9ede('0x7'),_0x9ede('0x10'),_0x9ede('0x11'),_0x9ede('0x12'),_0x9ede('0x13'),_0x9ede('0xb')],'include':[{'model':_0x9ede('0xc'),'as':_0x9ede('0xc'),'attributes':['id',_0x9ede('0x3')]}]},{'model':_0x9ede('0x14'),'as':_0x9ede('0x15'),'attributes':['id',_0x9ede('0x3')]}]}]},'log':'GetDeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6730=['Descriptions','key','keyContent','Fields','idField','customField','../../client','Request','GetDynamics365Account','name','username','password','remoteUri','tenantId','clientSecret','description','Dynamics365Configuration','Configurations','ticketType','Subjects','type','content','variableName','Variable','Dynamics365Field'];(function(_0xcf148f,_0x2e91b4){var _0xa748ca=function(_0x778343){while(--_0x778343){_0xcf148f['push'](_0xcf148f['shift']());}};_0xa748ca(++_0x2e91b4);}(_0x6730,0x83));var _0x0673=function(_0x5dd52e,_0x98ee28){_0x5dd52e=_0x5dd52e-0x0;var _0x4d2f78=_0x6730[_0x5dd52e];return _0x4d2f78;};'use strict';var client=require(_0x0673('0x0'));exports['getDynamics365Accounts']=function(){return function(_0x185592){return client[_0x0673('0x1')](_0x0673('0x2'),{'options':{'raw':![],'attributes':['id',_0x0673('0x3'),_0x0673('0x4'),_0x0673('0x5'),_0x0673('0x6'),_0x0673('0x7'),'clientId',_0x0673('0x8'),'serverUrl',_0x0673('0x9')],'include':[{'model':_0x0673('0xa'),'as':_0x0673('0xb'),'attributes':['id','name',_0x0673('0xc')],'include':[{'model':'Dynamics365Field','as':_0x0673('0xd'),'attributes':['id',_0x0673('0xe'),_0x0673('0xf'),_0x0673('0x10')],'include':[{'model':_0x0673('0x11'),'as':_0x0673('0x11'),'attributes':['id',_0x0673('0x3')]}]},{'model':_0x0673('0x12'),'as':_0x0673('0x13'),'attributes':['id',_0x0673('0xe'),_0x0673('0xf'),_0x0673('0x14'),'keyType',_0x0673('0x15'),_0x0673('0x10')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x0673('0x3')]}]},{'model':_0x0673('0x12'),'as':_0x0673('0x16'),'attributes':['id',_0x0673('0xe'),_0x0673('0xf'),_0x0673('0x17'),'nameField',_0x0673('0x18'),_0x0673('0x10')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x0673('0x3')]}]}]}]},'log':_0x0673('0x2')});};};
\ No newline at end of file
+var _0x93b9=['Descriptions','key','keyContent','variableName','Fields','nameField','customField','../../client','getDynamics365Accounts','GetDynamics365Account','name','username','password','remoteUri','clientId','clientSecret','serverUrl','Dynamics365Configuration','Configurations','Dynamics365Field','Subjects','type','content','Variable'];(function(_0x3120f1,_0x4d9c46){var _0x6e3a5c=function(_0x561138){while(--_0x561138){_0x3120f1['push'](_0x3120f1['shift']());}};_0x6e3a5c(++_0x4d9c46);}(_0x93b9,0xdf));var _0x993b=function(_0x3bb5b4,_0x128455){_0x3bb5b4=_0x3bb5b4-0x0;var _0x586c60=_0x93b9[_0x3bb5b4];return _0x586c60;};'use strict';var client=require(_0x993b('0x0'));exports[_0x993b('0x1')]=function(){return function(_0x13bba0){return client['Request'](_0x993b('0x2'),{'options':{'raw':![],'attributes':['id',_0x993b('0x3'),_0x993b('0x4'),_0x993b('0x5'),_0x993b('0x6'),'tenantId',_0x993b('0x7'),_0x993b('0x8'),_0x993b('0x9'),'description'],'include':[{'model':_0x993b('0xa'),'as':_0x993b('0xb'),'attributes':['id',_0x993b('0x3'),'ticketType'],'include':[{'model':_0x993b('0xc'),'as':_0x993b('0xd'),'attributes':['id',_0x993b('0xe'),_0x993b('0xf'),'variableName'],'include':[{'model':_0x993b('0x10'),'as':'Variable','attributes':['id',_0x993b('0x3')]}]},{'model':_0x993b('0xc'),'as':_0x993b('0x11'),'attributes':['id',_0x993b('0xe'),_0x993b('0xf'),_0x993b('0x12'),'keyType',_0x993b('0x13'),_0x993b('0x14')],'include':[{'model':'Variable','as':_0x993b('0x10'),'attributes':['id',_0x993b('0x3')]}]},{'model':_0x993b('0xc'),'as':_0x993b('0x15'),'attributes':['id',_0x993b('0xe'),_0x993b('0xf'),'idField',_0x993b('0x16'),_0x993b('0x17'),_0x993b('0x14')],'include':[{'model':'Variable','as':_0x993b('0x10'),'attributes':['id','name']}]}]}]},'log':_0x993b('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x112a=['idField','nameField','../../client','getFreshdeskAccounts','Request','GetFreshdeskAccount','name','username','apiKey','remoteUri','serverUrl','FreshdeskConfiguration','Configurations','Tag','FreshdeskField','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','keyContent','Fields'];(function(_0x386e2e,_0x5351b4){var _0x1082b1=function(_0x18bcae){while(--_0x18bcae){_0x386e2e['push'](_0x386e2e['shift']());}};_0x1082b1(++_0x5351b4);}(_0x112a,0x115));var _0xa112=function(_0x1256f8,_0x461667){_0x1256f8=_0x1256f8-0x0;var _0x177260=_0x112a[_0x1256f8];return _0x177260;};'use strict';var client=require(_0xa112('0x0'));exports[_0xa112('0x1')]=function(){return function(_0xe30bf4){return client[_0xa112('0x2')](_0xa112('0x3'),{'options':{'raw':![],'attributes':['id',_0xa112('0x4'),_0xa112('0x5'),_0xa112('0x6'),_0xa112('0x7'),_0xa112('0x8')],'include':[{'model':_0xa112('0x9'),'as':_0xa112('0xa'),'attributes':['id',_0xa112('0x4')],'include':[{'model':_0xa112('0xb'),'attributes':['id',_0xa112('0x4')]},{'model':_0xa112('0xc'),'as':_0xa112('0xd'),'attributes':['id',_0xa112('0xe'),_0xa112('0xf'),_0xa112('0x10')],'include':[{'model':_0xa112('0x11'),'as':_0xa112('0x11'),'attributes':['id',_0xa112('0x4')]}]},{'model':'FreshdeskField','as':_0xa112('0x12'),'attributes':['id','type',_0xa112('0xf'),_0xa112('0x13'),_0xa112('0x14'),_0xa112('0x15'),_0xa112('0x10')],'include':[{'model':_0xa112('0x11'),'as':_0xa112('0x11'),'attributes':['id',_0xa112('0x4')]}]},{'model':_0xa112('0xc'),'as':_0xa112('0x16'),'attributes':['id',_0xa112('0xe'),_0xa112('0xf'),_0xa112('0x17'),_0xa112('0x18'),'customField',_0xa112('0x10')],'include':[{'model':_0xa112('0x11'),'as':_0xa112('0x11'),'attributes':['id',_0xa112('0x4')]}]}]}]},'log':_0xa112('0x3')});};};
\ No newline at end of file
+var _0xbaf0=['Request','GetFreshdeskAccount','name','username','remoteUri','serverUrl','FreshdeskConfiguration','Configurations','Tag','FreshdeskField','Subjects','content','Variable','Descriptions','type','key','keyType','keyContent','variableName','Fields','idField','customField','getFreshdeskAccounts'];(function(_0x3b4d4f,_0x2ae935){var _0x3cf014=function(_0x253c38){while(--_0x253c38){_0x3b4d4f['push'](_0x3b4d4f['shift']());}};_0x3cf014(++_0x2ae935);}(_0xbaf0,0x12a));var _0x0baf=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xbaf0[_0x432682];return _0x463d05;};'use strict';var client=require('../../client');exports[_0x0baf('0x0')]=function(){return function(_0x2a3620){return client[_0x0baf('0x1')](_0x0baf('0x2'),{'options':{'raw':![],'attributes':['id',_0x0baf('0x3'),_0x0baf('0x4'),'apiKey',_0x0baf('0x5'),_0x0baf('0x6')],'include':[{'model':_0x0baf('0x7'),'as':_0x0baf('0x8'),'attributes':['id',_0x0baf('0x3')],'include':[{'model':_0x0baf('0x9'),'attributes':['id',_0x0baf('0x3')]},{'model':_0x0baf('0xa'),'as':_0x0baf('0xb'),'attributes':['id','type',_0x0baf('0xc'),'variableName'],'include':[{'model':_0x0baf('0xd'),'as':_0x0baf('0xd'),'attributes':['id',_0x0baf('0x3')]}]},{'model':_0x0baf('0xa'),'as':_0x0baf('0xe'),'attributes':['id',_0x0baf('0xf'),_0x0baf('0xc'),_0x0baf('0x10'),_0x0baf('0x11'),_0x0baf('0x12'),_0x0baf('0x13')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x0baf('0x3')]}]},{'model':_0x0baf('0xa'),'as':_0x0baf('0x14'),'attributes':['id',_0x0baf('0xf'),'content',_0x0baf('0x15'),'nameField',_0x0baf('0x16'),_0x0baf('0x13')],'include':[{'model':_0x0baf('0xd'),'as':_0x0baf('0xd'),'attributes':['id',_0x0baf('0x3')]}]}]}]},'log':_0x0baf('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33af=['key','GetFreshsalesccount','getFreshsalesAccounts','Request','GetFreshsalesAccount','name','username','apiKey','remoteUri','FreshsalesConfiguration','Configurations','FreshsalesField','Subjects','type','content','variableName','Variable','Descriptions'];(function(_0x14bdaf,_0x38faf1){var _0x366db2=function(_0x4a2dee){while(--_0x4a2dee){_0x14bdaf['push'](_0x14bdaf['shift']());}};_0x366db2(++_0x38faf1);}(_0x33af,0xec));var _0xf33a=function(_0x75c3eb,_0x271b5a){_0x75c3eb=_0x75c3eb-0x0;var _0x6e6585=_0x33af[_0x75c3eb];return _0x6e6585;};'use strict';var client=require('../../client');exports[_0xf33a('0x0')]=function(){return function(_0x54b114){return client[_0xf33a('0x1')](_0xf33a('0x2'),{'options':{'raw':![],'attributes':['id',_0xf33a('0x3'),_0xf33a('0x4'),_0xf33a('0x5'),_0xf33a('0x6'),'serverUrl'],'include':[{'model':_0xf33a('0x7'),'as':_0xf33a('0x8'),'attributes':['id','name'],'include':[{'model':_0xf33a('0x9'),'as':_0xf33a('0xa'),'attributes':['id',_0xf33a('0xb'),_0xf33a('0xc'),_0xf33a('0xd')],'include':[{'model':_0xf33a('0xe'),'as':'Variable','attributes':['id',_0xf33a('0x3')]}]},{'model':_0xf33a('0x9'),'as':_0xf33a('0xf'),'attributes':['id',_0xf33a('0xb'),_0xf33a('0xc'),_0xf33a('0x10'),'keyType','keyContent',_0xf33a('0xd')],'include':[{'model':_0xf33a('0xe'),'as':_0xf33a('0xe'),'attributes':['id',_0xf33a('0x3')]}]}]}]},'log':_0xf33a('0x11')});};};
\ No newline at end of file
+var _0x4873=['getFreshsalesAccounts','GetFreshsalesAccount','apiKey','remoteUri','serverUrl','FreshsalesConfiguration','Configurations','name','FreshsalesField','Subjects','content','variableName','Variable','Descriptions','key','../../client'];(function(_0x32a6c7,_0x379190){var _0x4d59d2=function(_0x3e9152){while(--_0x3e9152){_0x32a6c7['push'](_0x32a6c7['shift']());}};_0x4d59d2(++_0x379190);}(_0x4873,0x1df));var _0x3487=function(_0x3775b4,_0x4bfda2){_0x3775b4=_0x3775b4-0x0;var _0x3b00d7=_0x4873[_0x3775b4];return _0x3b00d7;};'use strict';var client=require(_0x3487('0x0'));exports[_0x3487('0x1')]=function(){return function(_0x332e18){return client['Request'](_0x3487('0x2'),{'options':{'raw':![],'attributes':['id','name','username',_0x3487('0x3'),_0x3487('0x4'),_0x3487('0x5')],'include':[{'model':_0x3487('0x6'),'as':_0x3487('0x7'),'attributes':['id',_0x3487('0x8')],'include':[{'model':_0x3487('0x9'),'as':_0x3487('0xa'),'attributes':['id','type',_0x3487('0xb'),_0x3487('0xc')],'include':[{'model':_0x3487('0xd'),'as':_0x3487('0xd'),'attributes':['id',_0x3487('0x8')]}]},{'model':'FreshsalesField','as':_0x3487('0xe'),'attributes':['id','type',_0x3487('0xb'),_0x3487('0xf'),'keyType','keyContent',_0x3487('0xc')],'include':[{'model':_0x3487('0xd'),'as':'Variable','attributes':['id',_0x3487('0x8')]}]}]}]},'log':'GetFreshsalesccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8c2d=['Variable','SalesforceField','Descriptions','../../client','getSalesforceAccounts','Request','GetSalesforceAccount','name','username','remoteUri','clientSecret','serverUrl','type','Configurations','moduleSearch','moduleCreate','leadId','additionalSearchAccount','Subjects'];(function(_0x25cd9b,_0x13776d){var _0xc1b0a0=function(_0x397bd3){while(--_0x397bd3){_0x25cd9b['push'](_0x25cd9b['shift']());}};_0xc1b0a0(++_0x13776d);}(_0x8c2d,0x1cb));var _0xd8c2=function(_0x1e4d78,_0x4460cd){_0x1e4d78=_0x1e4d78-0x0;var _0x595a6b=_0x8c2d[_0x1e4d78];return _0x595a6b;};'use strict';var client=require(_0xd8c2('0x0'));exports[_0xd8c2('0x1')]=function(){return function(_0x444238){return client[_0xd8c2('0x2')](_0xd8c2('0x3'),{'options':{'raw':![],'attributes':['id',_0xd8c2('0x4'),_0xd8c2('0x5'),'password',_0xd8c2('0x6'),'clientId',_0xd8c2('0x7'),'securityToken',_0xd8c2('0x8'),_0xd8c2('0x9')],'include':[{'model':'SalesforceConfiguration','as':_0xd8c2('0xa'),'attributes':['id','name',_0xd8c2('0xb'),_0xd8c2('0xc'),'ticketType',_0xd8c2('0xd'),_0xd8c2('0xe'),'additionalSearchContact','additionalSearchLead'],'include':[{'model':'SalesforceField','as':_0xd8c2('0xf'),'include':[{'model':_0xd8c2('0x10'),'as':_0xd8c2('0x10'),'attributes':['id',_0xd8c2('0x4')]}]},{'model':_0xd8c2('0x11'),'as':_0xd8c2('0x12'),'include':[{'model':_0xd8c2('0x10'),'as':_0xd8c2('0x10'),'attributes':['id',_0xd8c2('0x4')]}]},{'model':_0xd8c2('0x11'),'as':'Fields','include':[{'model':_0xd8c2('0x10'),'as':_0xd8c2('0x10'),'attributes':['id',_0xd8c2('0x4')]}]}]}]},'log':_0xd8c2('0x3')});};};
\ No newline at end of file
+var _0x80c4=['password','clientId','clientSecret','securityToken','serverUrl','type','SalesforceConfiguration','Configurations','moduleSearch','ticketType','leadId','additionalSearchAccount','additionalSearchContact','additionalSearchLead','SalesforceField','Subjects','Variable','Descriptions','Fields','../../client','Request','GetSalesforceAccount','name','username'];(function(_0x213be2,_0x54176b){var _0x4d31a5=function(_0x104530){while(--_0x104530){_0x213be2['push'](_0x213be2['shift']());}};_0x4d31a5(++_0x54176b);}(_0x80c4,0xa3));var _0x480c=function(_0x1bebcf,_0x539f37){_0x1bebcf=_0x1bebcf-0x0;var _0x1f6fed=_0x80c4[_0x1bebcf];return _0x1f6fed;};'use strict';var client=require(_0x480c('0x0'));exports['getSalesforceAccounts']=function(){return function(_0x3fb16a){return client[_0x480c('0x1')](_0x480c('0x2'),{'options':{'raw':![],'attributes':['id',_0x480c('0x3'),_0x480c('0x4'),_0x480c('0x5'),'remoteUri',_0x480c('0x6'),_0x480c('0x7'),_0x480c('0x8'),_0x480c('0x9'),_0x480c('0xa')],'include':[{'model':_0x480c('0xb'),'as':_0x480c('0xc'),'attributes':['id',_0x480c('0x3'),_0x480c('0xd'),'moduleCreate',_0x480c('0xe'),_0x480c('0xf'),_0x480c('0x10'),_0x480c('0x11'),_0x480c('0x12')],'include':[{'model':_0x480c('0x13'),'as':_0x480c('0x14'),'include':[{'model':_0x480c('0x15'),'as':_0x480c('0x15'),'attributes':['id',_0x480c('0x3')]}]},{'model':_0x480c('0x13'),'as':_0x480c('0x16'),'include':[{'model':_0x480c('0x15'),'as':_0x480c('0x15'),'attributes':['id',_0x480c('0x3')]}]},{'model':_0x480c('0x13'),'as':_0x480c('0x17'),'include':[{'model':_0x480c('0x15'),'as':'Variable','attributes':['id',_0x480c('0x3')]}]}]}]},'log':_0x480c('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['variableName','Variable','Descriptions','key','keyContent','Fields','idField','nameField','customField','GetServicenowkAccount','../../client','getServicenowAccounts','Request','GetServicenowAccount','name','username','password','email','remoteUri','serverUrl','ServicenowConfiguration','ServicenowField','type','content'];(function(_0x379f32,_0x480c6d){var _0x2d3ca8=function(_0x57eb41){while(--_0x57eb41){_0x379f32['push'](_0x379f32['shift']());}};_0x2d3ca8(++_0x480c6d);}(_0x814b,0x1a2));var _0xb814=function(_0xc7348b,_0x145880){_0xc7348b=_0xc7348b-0x0;var _0x307cec=_0x814b[_0xc7348b];return _0x307cec;};'use strict';var client=require(_0xb814('0x0'));exports[_0xb814('0x1')]=function(){return function(_0x434f30){return client[_0xb814('0x2')](_0xb814('0x3'),{'options':{'raw':![],'attributes':['id',_0xb814('0x4'),'description',_0xb814('0x5'),_0xb814('0x6'),_0xb814('0x7'),_0xb814('0x8'),_0xb814('0x9')],'include':[{'model':_0xb814('0xa'),'as':'Configurations','attributes':['id',_0xb814('0x4')],'include':[{'model':_0xb814('0xb'),'as':'Subjects','attributes':['id',_0xb814('0xc'),_0xb814('0xd'),_0xb814('0xe')],'include':[{'model':_0xb814('0xf'),'as':_0xb814('0xf'),'attributes':['id',_0xb814('0x4')]}]},{'model':_0xb814('0xb'),'as':_0xb814('0x10'),'attributes':['id',_0xb814('0xc'),_0xb814('0xd'),_0xb814('0x11'),'keyType',_0xb814('0x12'),'variableName'],'include':[{'model':_0xb814('0xf'),'as':_0xb814('0xf'),'attributes':['id',_0xb814('0x4')]}]},{'model':_0xb814('0xb'),'as':_0xb814('0x13'),'attributes':['id',_0xb814('0xc'),_0xb814('0xd'),_0xb814('0x14'),_0xb814('0x15'),_0xb814('0x16'),_0xb814('0xe')],'include':[{'model':_0xb814('0xf'),'as':_0xb814('0xf'),'attributes':['id',_0xb814('0x4')]}]}]}]},'log':_0xb814('0x17')});};};
\ No newline at end of file
+var _0x687b=['Variable','Descriptions','key','keyType','variableName','nameField','customField','GetServicenowkAccount','../../client','getServicenowAccounts','Request','description','username','password','email','remoteUri','serverUrl','ServicenowConfiguration','Configurations','name','ServicenowField','type','content'];(function(_0x24b800,_0x1f3f62){var _0x48d0cf=function(_0x574911){while(--_0x574911){_0x24b800['push'](_0x24b800['shift']());}};_0x48d0cf(++_0x1f3f62);}(_0x687b,0x14a));var _0xb687=function(_0x4b13ce,_0x339cb0){_0x4b13ce=_0x4b13ce-0x0;var _0x427d4b=_0x687b[_0x4b13ce];return _0x427d4b;};'use strict';var client=require(_0xb687('0x0'));exports[_0xb687('0x1')]=function(){return function(_0xd000be){return client[_0xb687('0x2')]('GetServicenowAccount',{'options':{'raw':![],'attributes':['id','name',_0xb687('0x3'),_0xb687('0x4'),_0xb687('0x5'),_0xb687('0x6'),_0xb687('0x7'),_0xb687('0x8')],'include':[{'model':_0xb687('0x9'),'as':_0xb687('0xa'),'attributes':['id',_0xb687('0xb')],'include':[{'model':_0xb687('0xc'),'as':'Subjects','attributes':['id',_0xb687('0xd'),_0xb687('0xe'),'variableName'],'include':[{'model':_0xb687('0xf'),'as':_0xb687('0xf'),'attributes':['id',_0xb687('0xb')]}]},{'model':_0xb687('0xc'),'as':_0xb687('0x10'),'attributes':['id',_0xb687('0xd'),_0xb687('0xe'),_0xb687('0x11'),_0xb687('0x12'),'keyContent',_0xb687('0x13')],'include':[{'model':_0xb687('0xf'),'as':_0xb687('0xf'),'attributes':['id',_0xb687('0xb')]}]},{'model':'ServicenowField','as':'Fields','attributes':['id',_0xb687('0xd'),_0xb687('0xe'),'idField',_0xb687('0x14'),_0xb687('0x15'),_0xb687('0x13')],'include':[{'model':_0xb687('0xf'),'as':_0xb687('0xf'),'attributes':['id',_0xb687('0xb')]}]}]}]},'log':_0xb687('0x16')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14a0=['variableName','key','keyContent','Variable','SugarcrmField','Fields','idField','nameField','customField','getSugarcrmAccounts','Request','GetSugarcrmAccount','name','username','password','SugarcrmConfiguration','Configurations','type','content'];(function(_0x53b55f,_0x7980d0){var _0x71d9fa=function(_0x1c30c2){while(--_0x1c30c2){_0x53b55f['push'](_0x53b55f['shift']());}};_0x71d9fa(++_0x7980d0);}(_0x14a0,0x8e));var _0x014a=function(_0x365eeb,_0xf1ff53){_0x365eeb=_0x365eeb-0x0;var _0x47f6b9=_0x14a0[_0x365eeb];return _0x47f6b9;};'use strict';var client=require('../../client');exports[_0x014a('0x0')]=function(){return function(_0x451138){return client[_0x014a('0x1')](_0x014a('0x2'),{'options':{'raw':![],'attributes':['id',_0x014a('0x3'),_0x014a('0x4'),_0x014a('0x5'),'remoteUri','serverUrl'],'include':[{'model':_0x014a('0x6'),'as':_0x014a('0x7'),'attributes':['id',_0x014a('0x3')],'include':[{'model':'SugarcrmField','as':'Subjects','attributes':['id',_0x014a('0x8'),_0x014a('0x9'),_0x014a('0xa')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x014a('0x3')]}]},{'model':'SugarcrmField','as':'Descriptions','attributes':['id','type','content',_0x014a('0xb'),'keyType',_0x014a('0xc'),_0x014a('0xa')],'include':[{'model':'Variable','as':_0x014a('0xd'),'attributes':['id',_0x014a('0x3')]}]},{'model':_0x014a('0xe'),'as':_0x014a('0xf'),'attributes':['id',_0x014a('0x8'),_0x014a('0x9'),_0x014a('0x10'),_0x014a('0x11'),_0x014a('0x12'),_0x014a('0xa')],'include':[{'model':_0x014a('0xd'),'as':_0x014a('0xd'),'attributes':['id','name']}]}]}]},'log':_0x014a('0x2')});};};
\ No newline at end of file
+var _0xadb5=['idField','nameField','getSugarcrmAccounts','Request','GetSugarcrmAccount','name','password','remoteUri','serverUrl','Configurations','SugarcrmField','Subjects','type','content','variableName','Variable','Descriptions','keyContent','Fields'];(function(_0x1ab758,_0x3dbede){var _0x5788a0=function(_0x324d24){while(--_0x324d24){_0x1ab758['push'](_0x1ab758['shift']());}};_0x5788a0(++_0x3dbede);}(_0xadb5,0xad));var _0x5adb=function(_0x4b88ef,_0x11ad05){_0x4b88ef=_0x4b88ef-0x0;var _0x5c4489=_0xadb5[_0x4b88ef];return _0x5c4489;};'use strict';var client=require('../../client');exports[_0x5adb('0x0')]=function(){return function(_0x49fc17){return client[_0x5adb('0x1')](_0x5adb('0x2'),{'options':{'raw':![],'attributes':['id',_0x5adb('0x3'),'username',_0x5adb('0x4'),_0x5adb('0x5'),_0x5adb('0x6')],'include':[{'model':'SugarcrmConfiguration','as':_0x5adb('0x7'),'attributes':['id',_0x5adb('0x3')],'include':[{'model':_0x5adb('0x8'),'as':_0x5adb('0x9'),'attributes':['id',_0x5adb('0xa'),_0x5adb('0xb'),_0x5adb('0xc')],'include':[{'model':_0x5adb('0xd'),'as':_0x5adb('0xd'),'attributes':['id',_0x5adb('0x3')]}]},{'model':_0x5adb('0x8'),'as':_0x5adb('0xe'),'attributes':['id',_0x5adb('0xa'),_0x5adb('0xb'),'key','keyType',_0x5adb('0xf'),_0x5adb('0xc')],'include':[{'model':_0x5adb('0xd'),'as':'Variable','attributes':['id',_0x5adb('0x3')]}]},{'model':'SugarcrmField','as':_0x5adb('0x10'),'attributes':['id','type',_0x5adb('0xb'),_0x5adb('0x11'),_0x5adb('0x12'),'customField',_0x5adb('0xc')],'include':[{'model':_0x5adb('0xd'),'as':_0x5adb('0xd'),'attributes':['id','name']}]}]}]},'log':_0x5adb('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x527c=['VtigerConfiguration','Configurations','VtigerField','type','content','variableName','Variable','key','keyType','keyContent','Fields','customField','../../client','Request','GetVtigerAccount','name','description','username','accessKey','remoteUri'];(function(_0x37439e,_0xcc91c4){var _0x1b582a=function(_0x4bfeed){while(--_0x4bfeed){_0x37439e['push'](_0x37439e['shift']());}};_0x1b582a(++_0xcc91c4);}(_0x527c,0x19c));var _0xc527=function(_0x2d4065,_0x38dc95){_0x2d4065=_0x2d4065-0x0;var _0xef6016=_0x527c[_0x2d4065];return _0xef6016;};'use strict';var client=require(_0xc527('0x0'));exports['getVtigerAccounts']=function(){return function(_0x490077){return client[_0xc527('0x1')](_0xc527('0x2'),{'options':{'raw':![],'attributes':['id',_0xc527('0x3'),_0xc527('0x4'),_0xc527('0x5'),_0xc527('0x6'),_0xc527('0x7'),'serverUrl'],'include':[{'model':_0xc527('0x8'),'as':_0xc527('0x9'),'attributes':['id',_0xc527('0x3')],'include':[{'model':_0xc527('0xa'),'as':'Subjects','attributes':['id',_0xc527('0xb'),_0xc527('0xc'),_0xc527('0xd')],'include':[{'model':_0xc527('0xe'),'as':_0xc527('0xe'),'attributes':['id',_0xc527('0x3')]}]},{'model':_0xc527('0xa'),'as':'Descriptions','attributes':['id',_0xc527('0xb'),_0xc527('0xc'),_0xc527('0xf'),_0xc527('0x10'),_0xc527('0x11'),_0xc527('0xd')],'include':[{'model':_0xc527('0xe'),'as':'Variable','attributes':['id',_0xc527('0x3')]}]},{'model':_0xc527('0xa'),'as':_0xc527('0x12'),'attributes':['id','type',_0xc527('0xc'),'idField','nameField',_0xc527('0x13'),_0xc527('0xd')],'include':[{'model':_0xc527('0xe'),'as':_0xc527('0xe'),'attributes':['id',_0xc527('0x3')]}]}]}]},'log':_0xc527('0x2')});};};
\ No newline at end of file
+var _0xafc6=['content','variableName','Variable','Descriptions','key','keyType','keyContent','Fields','nameField','customField','getVtigerAccounts','Request','GetVtigerAccount','name','accessKey','remoteUri','Configurations','Subjects','type'];(function(_0x4e754a,_0x5b5f98){var _0x3b02d7=function(_0xa1a6e0){while(--_0xa1a6e0){_0x4e754a['push'](_0x4e754a['shift']());}};_0x3b02d7(++_0x5b5f98);}(_0xafc6,0xdb));var _0x6afc=function(_0x46d0c9,_0x526bfa){_0x46d0c9=_0x46d0c9-0x0;var _0x174506=_0xafc6[_0x46d0c9];return _0x174506;};'use strict';var client=require('../../client');exports[_0x6afc('0x0')]=function(){return function(_0x2a085b){return client[_0x6afc('0x1')](_0x6afc('0x2'),{'options':{'raw':![],'attributes':['id',_0x6afc('0x3'),'description','username',_0x6afc('0x4'),_0x6afc('0x5'),'serverUrl'],'include':[{'model':'VtigerConfiguration','as':_0x6afc('0x6'),'attributes':['id',_0x6afc('0x3')],'include':[{'model':'VtigerField','as':_0x6afc('0x7'),'attributes':['id',_0x6afc('0x8'),_0x6afc('0x9'),_0x6afc('0xa')],'include':[{'model':_0x6afc('0xb'),'as':_0x6afc('0xb'),'attributes':['id',_0x6afc('0x3')]}]},{'model':'VtigerField','as':_0x6afc('0xc'),'attributes':['id','type',_0x6afc('0x9'),_0x6afc('0xd'),_0x6afc('0xe'),_0x6afc('0xf'),'variableName'],'include':[{'model':'Variable','as':_0x6afc('0xb'),'attributes':['id',_0x6afc('0x3')]}]},{'model':'VtigerField','as':_0x6afc('0x10'),'attributes':['id',_0x6afc('0x8'),_0x6afc('0x9'),'idField',_0x6afc('0x11'),_0x6afc('0x12'),'variableName'],'include':[{'model':'Variable','as':_0x6afc('0xb'),'attributes':['id',_0x6afc('0x3')]}]}]}]},'log':_0x6afc('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x26e3=['Request','GetZendeskAccount','password','remoteUri','authType','serverUrl','ZendeskConfiguration','Configurations','name','Tag','ZendeskField','Subjects','type','content','Variable','Descriptions','keyType','variableName','Fields','idField','customField','../../client'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x26e3,0x175));var _0x326e=function(_0x576d8a,_0x2d7bde){_0x576d8a=_0x576d8a-0x0;var _0x3dc3ef=_0x26e3[_0x576d8a];return _0x3dc3ef;};'use strict';var client=require(_0x326e('0x0'));exports['getZendeskAccounts']=function(){return function(_0x42068c){return client[_0x326e('0x1')](_0x326e('0x2'),{'options':{'raw':![],'attributes':['id','name','username',_0x326e('0x3'),'token',_0x326e('0x4'),_0x326e('0x5'),_0x326e('0x6'),'type'],'include':[{'model':_0x326e('0x7'),'as':_0x326e('0x8'),'attributes':['id',_0x326e('0x9')],'include':[{'model':_0x326e('0xa'),'attributes':['id','name']},{'model':_0x326e('0xb'),'as':_0x326e('0xc'),'attributes':['id',_0x326e('0xd'),_0x326e('0xe'),'variableName'],'include':[{'model':_0x326e('0xf'),'as':'Variable','attributes':['id',_0x326e('0x9')]}]},{'model':_0x326e('0xb'),'as':_0x326e('0x10'),'attributes':['id',_0x326e('0xd'),_0x326e('0xe'),'key',_0x326e('0x11'),'keyContent',_0x326e('0x12')],'include':[{'model':_0x326e('0xf'),'as':_0x326e('0xf'),'attributes':['id',_0x326e('0x9')]}]},{'model':_0x326e('0xb'),'as':_0x326e('0x13'),'attributes':['id',_0x326e('0xd'),'content',_0x326e('0x14'),'nameField',_0x326e('0x15'),_0x326e('0x12')],'include':[{'model':_0x326e('0xf'),'as':_0x326e('0xf'),'attributes':['id',_0x326e('0x9')]}]}]}]},'log':_0x326e('0x2')});};};
\ No newline at end of file
+var _0xaba1=['Fields','nameField','customField','../../client','GetZendeskAccount','name','token','type','ZendeskConfiguration','Tag','ZendeskField','content','variableName','Variable','Descriptions','key','keyContent'];(function(_0x3c183d,_0x4a2d96){var _0x2fa628=function(_0x57ad50){while(--_0x57ad50){_0x3c183d['push'](_0x3c183d['shift']());}};_0x2fa628(++_0x4a2d96);}(_0xaba1,0xf1));var _0x1aba=function(_0x42c8e4,_0x28abe1){_0x42c8e4=_0x42c8e4-0x0;var _0x49ec6d=_0xaba1[_0x42c8e4];return _0x49ec6d;};'use strict';var client=require(_0x1aba('0x0'));exports['getZendeskAccounts']=function(){return function(_0x1bdd91){return client['Request'](_0x1aba('0x1'),{'options':{'raw':![],'attributes':['id',_0x1aba('0x2'),'username','password',_0x1aba('0x3'),'remoteUri','authType','serverUrl',_0x1aba('0x4')],'include':[{'model':_0x1aba('0x5'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0x1aba('0x6'),'attributes':['id',_0x1aba('0x2')]},{'model':_0x1aba('0x7'),'as':'Subjects','attributes':['id','type',_0x1aba('0x8'),_0x1aba('0x9')],'include':[{'model':'Variable','as':_0x1aba('0xa'),'attributes':['id','name']}]},{'model':_0x1aba('0x7'),'as':_0x1aba('0xb'),'attributes':['id','type','content',_0x1aba('0xc'),'keyType',_0x1aba('0xd'),'variableName'],'include':[{'model':_0x1aba('0xa'),'as':_0x1aba('0xa'),'attributes':['id',_0x1aba('0x2')]}]},{'model':_0x1aba('0x7'),'as':_0x1aba('0xe'),'attributes':['id','type',_0x1aba('0x8'),'idField',_0x1aba('0xf'),_0x1aba('0x10'),_0x1aba('0x9')],'include':[{'model':_0x1aba('0xa'),'as':_0x1aba('0xa'),'attributes':['id',_0x1aba('0x2')]}]}]}]},'log':_0x1aba('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a8b=['nameField','customField','../../client','getZohoAccounts','Request','GetZohoAccount','name','description','host','zone','clientId','clientSecret','serverUrl','code','refreshToken','Configurations','moduleSearch','Subjects','type','variableName','Variable','ZohoField','key','keyType','content','idField'];(function(_0x4804d7,_0x56ef10){var _0x532259=function(_0x5929e3){while(--_0x5929e3){_0x4804d7['push'](_0x4804d7['shift']());}};_0x532259(++_0x56ef10);}(_0x2a8b,0x6a));var _0xb2a8=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0x2a8b[_0x4243a3];return _0x1b2a33;};'use strict';var client=require(_0xb2a8('0x0'));exports[_0xb2a8('0x1')]=function(){return function(_0x4dfc6a){return client[_0xb2a8('0x2')](_0xb2a8('0x3'),{'options':{'raw':![],'attributes':['id',_0xb2a8('0x4'),_0xb2a8('0x5'),_0xb2a8('0x6'),_0xb2a8('0x7'),_0xb2a8('0x8'),_0xb2a8('0x9'),_0xb2a8('0xa'),_0xb2a8('0xb'),_0xb2a8('0xc')],'include':[{'model':'ZohoConfiguration','as':_0xb2a8('0xd'),'attributes':['id',_0xb2a8('0x4'),'moduleCreate',_0xb2a8('0xe'),_0xb2a8('0x5')],'include':[{'model':'ZohoField','as':_0xb2a8('0xf'),'attributes':['id',_0xb2a8('0x10'),'content',_0xb2a8('0x11')],'include':[{'model':_0xb2a8('0x12'),'as':_0xb2a8('0x12'),'attributes':['id',_0xb2a8('0x4')]}]},{'model':_0xb2a8('0x13'),'as':'Descriptions','attributes':['id',_0xb2a8('0x10'),'content',_0xb2a8('0x14'),_0xb2a8('0x15'),'keyContent',_0xb2a8('0x11')],'include':[{'model':'Variable','as':_0xb2a8('0x12'),'attributes':['id',_0xb2a8('0x4')]}]},{'model':_0xb2a8('0x13'),'as':'Fields','attributes':['id',_0xb2a8('0x10'),_0xb2a8('0x16'),_0xb2a8('0x17'),_0xb2a8('0x18'),_0xb2a8('0x19'),_0xb2a8('0x11')],'include':[{'model':_0xb2a8('0x12'),'as':_0xb2a8('0x12'),'attributes':['id',_0xb2a8('0x4')]}]}]}]},'log':_0xb2a8('0x3')});};};
\ No newline at end of file
+var _0xb707=['name','moduleCreate','moduleSearch','description','Subjects','type','variableName','Variable','ZohoField','Descriptions','content','keyType','keyContent','Fields','customField','Request','GetZohoAccount','host','zone','clientId','clientSecret','serverUrl','refreshToken','Configurations'];(function(_0x1b116c,_0x4358e0){var _0x494382=function(_0x260e90){while(--_0x260e90){_0x1b116c['push'](_0x1b116c['shift']());}};_0x494382(++_0x4358e0);}(_0xb707,0x147));var _0x7b70=function(_0x352519,_0x4028e0){_0x352519=_0x352519-0x0;var _0x523098=_0xb707[_0x352519];return _0x523098;};'use strict';var client=require('../../client');exports['getZohoAccounts']=function(){return function(_0xdf4115){return client[_0x7b70('0x0')](_0x7b70('0x1'),{'options':{'raw':![],'attributes':['id','name','description',_0x7b70('0x2'),_0x7b70('0x3'),_0x7b70('0x4'),_0x7b70('0x5'),_0x7b70('0x6'),'code',_0x7b70('0x7')],'include':[{'model':'ZohoConfiguration','as':_0x7b70('0x8'),'attributes':['id',_0x7b70('0x9'),_0x7b70('0xa'),_0x7b70('0xb'),_0x7b70('0xc')],'include':[{'model':'ZohoField','as':_0x7b70('0xd'),'attributes':['id',_0x7b70('0xe'),'content',_0x7b70('0xf')],'include':[{'model':_0x7b70('0x10'),'as':_0x7b70('0x10'),'attributes':['id','name']}]},{'model':_0x7b70('0x11'),'as':_0x7b70('0x12'),'attributes':['id',_0x7b70('0xe'),_0x7b70('0x13'),'key',_0x7b70('0x14'),_0x7b70('0x15'),_0x7b70('0xf')],'include':[{'model':_0x7b70('0x10'),'as':_0x7b70('0x10'),'attributes':['id',_0x7b70('0x9')]}]},{'model':_0x7b70('0x11'),'as':_0x7b70('0x16'),'attributes':['id',_0x7b70('0xe'),_0x7b70('0x13'),'idField','nameField',_0x7b70('0x17'),_0x7b70('0xf')],'include':[{'model':_0x7b70('0x10'),'as':_0x7b70('0x10'),'attributes':['id',_0x7b70('0x9')]}]}]}]},'log':'GetZohoAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0fc8=['calleridnum','exten','accountcode','toNumber','uniqueid','voiceDialReport','endtime','starttime','outbound','dialstring','agent','moment','lodash','util','../client','queuecallerexitAt','Request','CreateMemberReport','voice','isNil','format','SIP/%s','interface','TALKING','queuecallerleaveAt','seconds','inbound'];(function(_0x2c768b,_0x3a6dd9){var _0x5457fa=function(_0xa66149){while(--_0xa66149){_0x2c768b['push'](_0x2c768b['shift']());}};_0x5457fa(++_0x3a6dd9);}(_0x0fc8,0x77));var _0x80fc=function(_0x43d4c7,_0xe5f1ee){_0x43d4c7=_0x43d4c7-0x0;var _0x936fed=_0x0fc8[_0x43d4c7];return _0x936fed;};'use strict';var moment=require(_0x80fc('0x0'));var _=require(_0x80fc('0x1'));var util=require(_0x80fc('0x2'));var client=require(_0x80fc('0x3'));exports['voiceQueueReport']=function(_0x336954){var _0x2212bc=_0x336954['queuecallercompleteAt']||_0x336954[_0x80fc('0x4')];return client[_0x80fc('0x5')](_0x80fc('0x6'),{'body':{'channel':_0x80fc('0x7'),'membername':_0x336954['lastAssignedTo'],'interface':_[_0x80fc('0x8')](_0x336954['interface'])?util[_0x80fc('0x9')](_0x80fc('0xa'),_0x336954['lastAssignedTo']):_0x336954[_0x80fc('0xb')],'type':_0x80fc('0xc'),'enterAt':_0x336954[_0x80fc('0xd')],'exitAt':_0x2212bc,'duration':moment(_0x2212bc)['diff'](_0x336954[_0x80fc('0xd')],_0x80fc('0xe')),'data1':_0x80fc('0xf'),'data2':_0x336954[_0x80fc('0x10')],'data3':_0x336954[_0x80fc('0x11')],'data4':null,'data5':_0x336954['queue'],'role':'agent','internal':_0x336954[_0x80fc('0x12')]?_[_0x80fc('0x13')](_0x336954[_0x80fc('0x12')]):undefined,'uniqueid':_0x336954[_0x80fc('0x14')]},'log':_0x80fc('0x6')});};exports[_0x80fc('0x15')]=function(_0x2acbd4){return client[_0x80fc('0x5')]('CreateMemberReport',{'body':{'channel':_0x80fc('0x7'),'membername':_0x2acbd4['membername'],'interface':_0x2acbd4[_0x80fc('0xb')],'type':_0x80fc('0xc'),'enterAt':_0x2acbd4['starttime'],'exitAt':_0x2acbd4[_0x80fc('0x16')],'duration':moment(_0x2acbd4[_0x80fc('0x16')])['diff'](_0x2acbd4[_0x80fc('0x17')],_0x80fc('0xe'))>=0x0?moment(_0x2acbd4[_0x80fc('0x16')])['diff'](_0x2acbd4['starttime'],_0x80fc('0xe')):null,'data1':_0x80fc('0x18'),'data2':_0x2acbd4[_0x80fc('0x12')],'data3':_0x2acbd4[_0x80fc('0x11')],'data4':_0x2acbd4[_0x80fc('0x19')]||null,'role':_0x80fc('0x1a'),'internal':_0x2acbd4[_0x80fc('0x12')]?_[_0x80fc('0x13')](_0x2acbd4[_0x80fc('0x12')]):undefined,'uniqueid':_0x2acbd4[_0x80fc('0x14')]},'log':'CreateMemberReport'});};
\ No newline at end of file
+var _0xf0d8=['starttime','outbound','dialstring','agent','uniqueid','moment','../client','voiceQueueReport','queuecallerexitAt','Request','CreateMemberReport','voice','lastAssignedTo','interface','format','queuecallerleaveAt','diff','seconds','calleridnum','exten','queue','accountcode','toNumber','membername','TALKING','endtime'];(function(_0x2c80df,_0x2adf89){var _0x449149=function(_0x532c6f){while(--_0x532c6f){_0x2c80df['push'](_0x2c80df['shift']());}};_0x449149(++_0x2adf89);}(_0xf0d8,0x1a5));var _0x8f0d=function(_0x292b9e,_0x142fe9){_0x292b9e=_0x292b9e-0x0;var _0x4589e1=_0xf0d8[_0x292b9e];return _0x4589e1;};'use strict';var moment=require(_0x8f0d('0x0'));var _=require('lodash');var util=require('util');var client=require(_0x8f0d('0x1'));exports[_0x8f0d('0x2')]=function(_0x27f104){var _0x28bdd0=_0x27f104['queuecallercompleteAt']||_0x27f104[_0x8f0d('0x3')];return client[_0x8f0d('0x4')](_0x8f0d('0x5'),{'body':{'channel':_0x8f0d('0x6'),'membername':_0x27f104[_0x8f0d('0x7')],'interface':_['isNil'](_0x27f104[_0x8f0d('0x8')])?util[_0x8f0d('0x9')]('SIP/%s',_0x27f104[_0x8f0d('0x7')]):_0x27f104[_0x8f0d('0x8')],'type':'TALKING','enterAt':_0x27f104[_0x8f0d('0xa')],'exitAt':_0x28bdd0,'duration':moment(_0x28bdd0)[_0x8f0d('0xb')](_0x27f104[_0x8f0d('0xa')],_0x8f0d('0xc')),'data1':'inbound','data2':_0x27f104[_0x8f0d('0xd')],'data3':_0x27f104[_0x8f0d('0xe')],'data4':null,'data5':_0x27f104[_0x8f0d('0xf')],'role':'agent','internal':_0x27f104[_0x8f0d('0x10')]?_[_0x8f0d('0x11')](_0x27f104['accountcode']):undefined,'uniqueid':_0x27f104['uniqueid']},'log':_0x8f0d('0x5')});};exports['voiceDialReport']=function(_0x1f050b){return client[_0x8f0d('0x4')](_0x8f0d('0x5'),{'body':{'channel':_0x8f0d('0x6'),'membername':_0x1f050b[_0x8f0d('0x12')],'interface':_0x1f050b[_0x8f0d('0x8')],'type':_0x8f0d('0x13'),'enterAt':_0x1f050b['starttime'],'exitAt':_0x1f050b[_0x8f0d('0x14')],'duration':moment(_0x1f050b['endtime'])[_0x8f0d('0xb')](_0x1f050b['starttime'],_0x8f0d('0xc'))>=0x0?moment(_0x1f050b[_0x8f0d('0x14')])['diff'](_0x1f050b[_0x8f0d('0x15')],_0x8f0d('0xc')):null,'data1':_0x8f0d('0x16'),'data2':_0x1f050b[_0x8f0d('0x10')],'data3':_0x1f050b['exten'],'data4':_0x1f050b[_0x8f0d('0x17')]||null,'role':_0x8f0d('0x18'),'internal':_0x1f050b[_0x8f0d('0x10')]?_[_0x8f0d('0x11')](_0x1f050b[_0x8f0d('0x10')]):undefined,'uniqueid':_0x1f050b[_0x8f0d('0x19')]},'log':_0x8f0d('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcc94=['ShowSetting','stopRecordingOnTransfer','GetSettings','getSettings','Request'];(function(_0x2bcddb,_0x3eaf37){var _0x12a9e8=function(_0xeeb678){while(--_0xeeb678){_0x2bcddb['push'](_0x2bcddb['shift']());}};_0x12a9e8(++_0x3eaf37);}(_0xcc94,0xee));var _0x4cc9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcc94[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports[_0x4cc9('0x0')]=function(){return client[_0x4cc9('0x1')](_0x4cc9('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x4cc9('0x3')]},'log':_0x4cc9('0x4')});};
\ No newline at end of file
+var _0x8d57=['getSettings','Request','ShowSetting','stopRecordingOnTransfer','GetSettings'];(function(_0x4c7d8b,_0x572388){var _0x187158=function(_0x5e956d){while(--_0x5e956d){_0x4c7d8b['push'](_0x4c7d8b['shift']());}};_0x187158(++_0x572388);}(_0x8d57,0xaf));var _0x78d5=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0x8d57[_0x187ee1];return _0x388160;};'use strict';var client=require('../client');exports[_0x78d5('0x0')]=function(){return client[_0x78d5('0x1')](_0x78d5('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x78d5('0x3')]},'log':_0x78d5('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb21=['../client','getTemplates','Request','GetTemplate','name'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xdb21,0xcd));var _0x1db2=function(_0x4e90f0,_0x3b7e3c){_0x4e90f0=_0x4e90f0-0x0;var _0x1a2cee=_0xdb21[_0x4e90f0];return _0x1a2cee;};'use strict';var client=require(_0x1db2('0x0'));exports[_0x1db2('0x1')]=function(_0x5be389){return function(_0x2c0df7){return client[_0x1db2('0x2')](_0x1db2('0x3'),{'options':{'raw':!![],'attributes':['id',_0x1db2('0x4'),'html']},'log':_0x1db2('0x3')});};};
\ No newline at end of file
+var _0x65aa=['name','Request','GetTemplate'];(function(_0x2fbf51,_0xfec85c){var _0x20f981=function(_0x55f0f8){while(--_0x55f0f8){_0x2fbf51['push'](_0x2fbf51['shift']());}};_0x20f981(++_0xfec85c);}(_0x65aa,0x142));var _0xa65a=function(_0xa6ff4,_0x19bc12){_0xa6ff4=_0xa6ff4-0x0;var _0x6affe6=_0x65aa[_0xa6ff4];return _0x6affe6;};'use strict';var client=require('../client');exports['getTemplates']=function(_0xcc842a){return function(_0x5280e9){return client[_0xa65a('0x0')](_0xa65a('0x1'),{'options':{'raw':!![],'attributes':['id',_0xa65a('0x2'),'html']},'log':_0xa65a('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfd5=['Actions','action','data3','data4','data7','../client','getTriggers','Request','GetTrigger','name','channel','status','Condition','AllConditions','operator','value','AnyConditions','Action'];(function(_0x845268,_0x2c60dd){var _0x4618d0=function(_0x54c214){while(--_0x54c214){_0x845268['push'](_0x845268['shift']());}};_0x4618d0(++_0x2c60dd);}(_0xcfd5,0x1c7));var _0x5cfd=function(_0x2cc61e,_0x21d1d7){_0x2cc61e=_0x2cc61e-0x0;var _0x20ca5a=_0xcfd5[_0x2cc61e];return _0x20ca5a;};'use strict';var client=require(_0x5cfd('0x0'));exports[_0x5cfd('0x1')]=function(_0x397448){return function(_0x25c457){return client[_0x5cfd('0x2')](_0x5cfd('0x3'),{'options':{'raw':![],'attributes':['id',_0x5cfd('0x4'),_0x5cfd('0x5'),_0x5cfd('0x6')],'include':[{'model':_0x5cfd('0x7'),'as':_0x5cfd('0x8'),'attributes':['id','field',_0x5cfd('0x9'),_0x5cfd('0xa')]},{'model':'Condition','as':_0x5cfd('0xb'),'attributes':['id','field','operator',_0x5cfd('0xa')]},{'model':_0x5cfd('0xc'),'as':_0x5cfd('0xd'),'attributes':['id',_0x5cfd('0xe'),'data1','data2',_0x5cfd('0xf'),_0x5cfd('0x10'),'data5','data6',_0x5cfd('0x11')]}]},'log':_0x5cfd('0x3')});};};
\ No newline at end of file
+var _0x8722=['Request','GetTrigger','name','status','Condition','AllConditions','field','operator','value','AnyConditions','Action','data3','data5','data6','data7','../client'];(function(_0x29cd1e,_0x4e7512){var _0x47bb36=function(_0x38e2e8){while(--_0x38e2e8){_0x29cd1e['push'](_0x29cd1e['shift']());}};_0x47bb36(++_0x4e7512);}(_0x8722,0xef));var _0x2872=function(_0x2682b1,_0x4bbb77){_0x2682b1=_0x2682b1-0x0;var _0x5079e4=_0x8722[_0x2682b1];return _0x5079e4;};'use strict';var client=require(_0x2872('0x0'));exports['getTriggers']=function(_0x19c639){return function(_0x3f45f3){return client[_0x2872('0x1')](_0x2872('0x2'),{'options':{'raw':![],'attributes':['id',_0x2872('0x3'),'channel',_0x2872('0x4')],'include':[{'model':_0x2872('0x5'),'as':_0x2872('0x6'),'attributes':['id',_0x2872('0x7'),_0x2872('0x8'),_0x2872('0x9')]},{'model':_0x2872('0x5'),'as':_0x2872('0xa'),'attributes':['id',_0x2872('0x7'),_0x2872('0x8'),_0x2872('0x9')]},{'model':_0x2872('0xb'),'as':'Actions','attributes':['id','action','data1','data2',_0x2872('0xc'),'data4',_0x2872('0xd'),_0x2872('0xe'),_0x2872('0xf')]}]},'log':_0x2872('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a59=['registry','../client','Request','GetTrunk','name'];(function(_0x4a4b55,_0x47b168){var _0x4303d6=function(_0x4b4c02){while(--_0x4b4c02){_0x4a4b55['push'](_0x4a4b55['shift']());}};_0x4303d6(++_0x47b168);}(_0x7a59,0x16e));var _0x97a5=function(_0x556927,_0x34b53f){_0x556927=_0x556927-0x0;var _0x5f1235=_0x7a59[_0x556927];return _0x5f1235;};'use strict';var client=require(_0x97a5('0x0'));exports['getTrunks']=function(_0x5e8305){return function(_0x1f74cd){return client[_0x97a5('0x1')](_0x97a5('0x2'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0x97a5('0x3'),_0x97a5('0x4'),'defaultuser']},'log':_0x97a5('0x2')});};};
\ No newline at end of file
+var _0x1603=['defaultuser','getTrunks','Request','GetTrunk','name'];(function(_0x2080a3,_0x48acfa){var _0x8d7d17=function(_0x2dbc06){while(--_0x2dbc06){_0x2080a3['push'](_0x2080a3['shift']());}};_0x8d7d17(++_0x48acfa);}(_0x1603,0x1b4));var _0x3160=function(_0x1bf1f7,_0x156a74){_0x1bf1f7=_0x1bf1f7-0x0;var _0x5b4702=_0x1603[_0x1bf1f7];return _0x5b4702;};'use strict';var client=require('../client');exports[_0x3160('0x0')]=function(_0x2c5546){return function(_0x4a11f6){return client[_0x3160('0x1')](_0x3160('0x2'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0x3160('0x3'),'registry',_0x3160('0x4')]},'log':'GetTrunk'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['getAgent','Request','GetUser','agent','name','email','fullname','online','lastLoginAt','pauseType','lastPauseAt','voicePause','phone','mobile','interface','getAgents','getTelephones','accountcode','internal','savePause','PauseUser'];(function(_0x190ab0,_0x417f16){var _0x1094a2=function(_0x128c70){while(--_0x128c70){_0x190ab0['push'](_0x190ab0['shift']());}};_0x1094a2(++_0x417f16);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports['getAgents']=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':![],'where':{'role':_0x3071('0x2')},'attributes':['id',_0x3071('0x3'),_0x3071('0x4'),'accountcode',_0x3071('0x5'),_0x3071('0x6'),_0x3071('0x7'),_0x3071('0x8'),_0x3071('0x9'),_0x3071('0xa'),_0x3071('0xb'),_0x3071('0xc'),_0x3071('0xd')]},'log':_0x3071('0xe')});};};exports[_0x3071('0xf')]=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':!![],'where':{'role':'telephone'},'attributes':['id',_0x3071('0x3'),_0x3071('0x10'),_0x3071('0x11')]},'log':_0x3071('0xf')});};};exports[_0x3071('0x12')]=function(_0x4a470a,_0x2ace21,_0x11a7ee){return client[_0x3071('0x0')](_0x3071('0x13'),{'body':{'type':_0x2ace21,'uniqueid':_0x11a7ee},'options':{'where':{'id':_0x4a470a['id']}},'log':_0x3071('0x12')});};exports['saveUnpause']=function(_0x5330a8){return client[_0x3071('0x0')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x5330a8['id']}},'log':_0x3071('0x12')});};exports[_0x3071('0x14')]=function(_0x5d4883){return client[_0x3071('0x0')]('ShowUser',{'options':{'raw':![],'where':{'role':_0x3071('0x2'),'id':_0x5d4883},'attributes':['id',_0x3071('0x3'),_0x3071('0x4'),_0x3071('0x10'),_0x3071('0x5'),_0x3071('0x6'),_0x3071('0x7'),_0x3071('0x8'),_0x3071('0x9'),_0x3071('0xa'),'interface']},'log':_0x3071('0x14')});};
\ No newline at end of file
+var _0x0713=['getAgent','Request','GetUser','agent','name','email','fullname','online','lastLoginAt','pauseType','lastPauseAt','voicePause','phone','mobile','interface','getAgents','getTelephones','accountcode','internal','savePause','PauseUser'];(function(_0x3772d1,_0x3324ba){var _0x29c22c=function(_0x3cd150){while(--_0x3cd150){_0x3772d1['push'](_0x3772d1['shift']());}};_0x29c22c(++_0x3324ba);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports['getAgents']=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':![],'where':{'role':_0x3071('0x2')},'attributes':['id',_0x3071('0x3'),_0x3071('0x4'),'accountcode',_0x3071('0x5'),_0x3071('0x6'),_0x3071('0x7'),_0x3071('0x8'),_0x3071('0x9'),_0x3071('0xa'),_0x3071('0xb'),_0x3071('0xc'),_0x3071('0xd')]},'log':_0x3071('0xe')});};};exports[_0x3071('0xf')]=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':!![],'where':{'role':'telephone'},'attributes':['id',_0x3071('0x3'),_0x3071('0x10'),_0x3071('0x11')]},'log':_0x3071('0xf')});};};exports[_0x3071('0x12')]=function(_0x4a470a,_0x2ace21,_0x11a7ee){return client[_0x3071('0x0')](_0x3071('0x13'),{'body':{'type':_0x2ace21,'uniqueid':_0x11a7ee},'options':{'where':{'id':_0x4a470a['id']}},'log':_0x3071('0x12')});};exports['saveUnpause']=function(_0x5330a8){return client[_0x3071('0x0')]('UnpauseUser',{'body':{},'options':{'where':{'id':_0x5330a8['id']}},'log':_0x3071('0x12')});};exports[_0x3071('0x14')]=function(_0x5d4883){return client[_0x3071('0x0')]('ShowUser',{'options':{'raw':![],'where':{'role':_0x3071('0x2'),'id':_0x5d4883},'attributes':['id',_0x3071('0x3'),_0x3071('0x4'),_0x3071('0x10'),_0x3071('0x5'),_0x3071('0x6'),_0x3071('0x7'),_0x3071('0x8'),_0x3071('0x9'),_0x3071('0xa'),'interface']},'log':_0x3071('0x14')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4362=['CreateVoiceAgentReport','update','../client','create','Request'];(function(_0x4ba0b0,_0x2afbaa){var _0x1bd6db=function(_0x1152d1){while(--_0x1152d1){_0x4ba0b0['push'](_0x4ba0b0['shift']());}};_0x1bd6db(++_0x2afbaa);}(_0x4362,0x1c9));var _0x2436=function(_0x2b5062,_0x12b234){_0x2b5062=_0x2b5062-0x0;var _0x15b1e1=_0x4362[_0x2b5062];return _0x15b1e1;};'use strict';var client=require(_0x2436('0x0'));exports[_0x2436('0x1')]=function(_0x1aae30){return client[_0x2436('0x2')](_0x2436('0x3'),{'body':_0x1aae30,'log':_0x2436('0x3')});};exports[_0x2436('0x4')]=function(_0x823e1,_0x4a9636,_0x5f3562){return client[_0x2436('0x2')]('UpdateVoiceAgentReport',{'body':_0x823e1,'options':{'where':{'uniqueid':_0x4a9636,'interface':_0x5f3562,'agentcomplete':!![]}},'log':'UpdateVoiceAgentReport'});};
\ No newline at end of file
+var _0x4a5d=['CreateVoiceAgentReport','UpdateVoiceAgentReport','../client','Request'];(function(_0x33f4c7,_0x328598){var _0x56159d=function(_0x97801f){while(--_0x97801f){_0x33f4c7['push'](_0x33f4c7['shift']());}};_0x56159d(++_0x328598);}(_0x4a5d,0xe2));var _0xd4a5=function(_0x2dc96f,_0x459058){_0x2dc96f=_0x2dc96f-0x0;var _0xd012da=_0x4a5d[_0x2dc96f];return _0xd012da;};'use strict';var client=require(_0xd4a5('0x0'));exports['create']=function(_0x3c8e34){return client[_0xd4a5('0x1')](_0xd4a5('0x2'),{'body':_0x3c8e34,'log':'CreateVoiceAgentReport'});};exports['update']=function(_0x160429,_0x4d1ded,_0xe32c6d){return client[_0xd4a5('0x1')](_0xd4a5('0x3'),{'body':_0x160429,'options':{'where':{'uniqueid':_0x4d1ded,'interface':_0xe32c6d,'agentcomplete':!![]}},'log':_0xd4a5('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x435e=['moment','util','lodash','../client','create','Request','merge','calleridnum','context','callerid','getVoiceCallReports','outbound','startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','endOf','type','duration','billableseconds','GetVoiceCallReports'];(function(_0x119c9f,_0x595535){var _0x49b846=function(_0x1f93fc){while(--_0x1f93fc){_0x119c9f['push'](_0x119c9f['shift']());}};_0x49b846(++_0x595535);}(_0x435e,0x111));var _0xe435=function(_0x3c8e9a,_0x384306){_0x3c8e9a=_0x3c8e9a-0x0;var _0x2d4c57=_0x435e[_0x3c8e9a];return _0x2d4c57;};'use strict';var moment=require(_0xe435('0x0'));var util=require(_0xe435('0x1'));var _=require(_0xe435('0x2'));var client=require(_0xe435('0x3'));exports[_0xe435('0x4')]=function(_0x23c2f5){return client[_0xe435('0x5')]('CreateVoiceCallReport',{'body':_[_0xe435('0x6')](_0x23c2f5,{'source':_0x23c2f5[_0xe435('0x7')],'destinationcontext':_0x23c2f5[_0xe435('0x8')],'callerid':_0x23c2f5[_0xe435('0x9')],'amaflags':'DOCUMENTATION'}),'log':'CreateVoiceCallReport'});};exports[_0xe435('0xa')]=function(){return function(){return client[_0xe435('0x5')]('GetVoiceCallReport',{'options':{'where':{'type':[_0xe435('0xb')],'createdAt':{'$between':[moment()[_0xe435('0xc')](_0xe435('0xd'))[_0xe435('0xe')](_0xe435('0xf')),moment()[_0xe435('0x10')](_0xe435('0xd'))[_0xe435('0xe')](_0xe435('0xf'))]}},'attributes':[_0xe435('0x11'),'disposition',_0xe435('0x12'),_0xe435('0x13')]},'log':_0xe435('0x14')});};};
\ No newline at end of file
+var _0x4ab8=['merge','calleridnum','callerid','DOCUMENTATION','getVoiceCallReports','GetVoiceCallReport','startOf','day','format','YYYY-MM-DD\x20HH:mm:ss','endOf','type','disposition','duration','billableseconds','GetVoiceCallReports','moment','util','../client','create','Request'];(function(_0xe63d41,_0x1defe4){var _0x4973c5=function(_0x2ed683){while(--_0x2ed683){_0xe63d41['push'](_0xe63d41['shift']());}};_0x4973c5(++_0x1defe4);}(_0x4ab8,0xcd));var _0x84ab=function(_0x5bd182,_0x2a7911){_0x5bd182=_0x5bd182-0x0;var _0x51d8cb=_0x4ab8[_0x5bd182];return _0x51d8cb;};'use strict';var moment=require(_0x84ab('0x0'));var util=require(_0x84ab('0x1'));var _=require('lodash');var client=require(_0x84ab('0x2'));exports[_0x84ab('0x3')]=function(_0x13ca0b){return client[_0x84ab('0x4')]('CreateVoiceCallReport',{'body':_[_0x84ab('0x5')](_0x13ca0b,{'source':_0x13ca0b[_0x84ab('0x6')],'destinationcontext':_0x13ca0b['context'],'callerid':_0x13ca0b[_0x84ab('0x7')],'amaflags':_0x84ab('0x8')}),'log':'CreateVoiceCallReport'});};exports[_0x84ab('0x9')]=function(){return function(){return client[_0x84ab('0x4')](_0x84ab('0xa'),{'options':{'where':{'type':['outbound'],'createdAt':{'$between':[moment()[_0x84ab('0xb')](_0x84ab('0xc'))[_0x84ab('0xd')](_0x84ab('0xe')),moment()[_0x84ab('0xf')](_0x84ab('0xc'))[_0x84ab('0xd')](_0x84ab('0xe'))]}},'attributes':[_0x84ab('0x10'),_0x84ab('0x11'),_0x84ab('0x12'),_0x84ab('0x13')]},'log':_0x84ab('0x14')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6412=['Request','CreateVoiceDialReport','../client','create'];(function(_0x4b7b62,_0x4920a9){var _0x2280df=function(_0x21e1f8){while(--_0x21e1f8){_0x4b7b62['push'](_0x4b7b62['shift']());}};_0x2280df(++_0x4920a9);}(_0x6412,0x7a));var _0x2641=function(_0x4b26af,_0x3811fd){_0x4b26af=_0x4b26af-0x0;var _0x3da803=_0x6412[_0x4b26af];return _0x3da803;};'use strict';var client=require(_0x2641('0x0'));exports[_0x2641('0x1')]=function(_0x556f06){return client[_0x2641('0x2')](_0x2641('0x3'),{'body':_0x556f06,'log':'CreateVoiceDialReport'});};
\ No newline at end of file
+var _0xce01=['CreateVoiceDialReport','../client','create'];(function(_0x153304,_0x25da33){var _0x479c46=function(_0x3335c2){while(--_0x3335c2){_0x153304['push'](_0x153304['shift']());}};_0x479c46(++_0x25da33);}(_0xce01,0x100));var _0x1ce0=function(_0x45ee1a,_0x3236a8){_0x45ee1a=_0x45ee1a-0x0;var _0x2f7ddc=_0xce01[_0x45ee1a];return _0x2f7ddc;};'use strict';var client=require(_0x1ce0('0x0'));exports[_0x1ce0('0x1')]=function(_0x33ebed){return client['Request']('CreateVoiceDialReport',{'body':_0x33ebed,'log':_0x1ce0('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b24=['GetVoiceExtension','exten','getVoiceExtensions','Request'];(function(_0x467b46,_0x1b4742){var _0x39e3fa=function(_0xb06ada){while(--_0xb06ada){_0x467b46['push'](_0x467b46['shift']());}};_0x39e3fa(++_0x1b4742);}(_0x6b24,0x1ce));var _0x46b2=function(_0x2e0a25,_0x2da7a6){_0x2e0a25=_0x2e0a25-0x0;var _0x359873=_0x6b24[_0x2e0a25];return _0x359873;};'use strict';var client=require('../client');exports[_0x46b2('0x0')]=function(){return function(){return client[_0x46b2('0x1')](_0x46b2('0x2'),{'options':{'raw':!![],'attributes':['id',_0x46b2('0x3'),'recordingFormat'],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
+var _0x0565=['exten','recordingFormat','../client','getVoiceExtensions','Request','GetVoiceExtension'];(function(_0x5627e1,_0x1b2dbf){var _0x2f013f=function(_0x142015){while(--_0x142015){_0x5627e1['push'](_0x5627e1['shift']());}};_0x2f013f(++_0x1b2dbf);}(_0x0565,0xf2));var _0x5056=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x0565[_0x59ee6f];return _0x4c0979;};'use strict';var client=require(_0x5056('0x0'));exports[_0x5056('0x1')]=function(){return function(){return client[_0x5056('0x2')](_0x5056('0x3'),{'options':{'raw':!![],'attributes':['id',_0x5056('0x4'),_0x5056('0x5')],'where':{'VoiceExtensionId':null}},'log':_0x5056('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1874=['Pause','mandatoryDispositionPause','TrunkBackup','Interval','Intervals','getVoiceQueues','Request','GetVoiceQueue','name','acw','autopause','monitor_format','dialActive','dialMethod','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialTimezone','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','timeout','dialRecallMeTimeout','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','callerid','active'];(function(_0x15130d,_0x397e9e){var _0x3dadfb=function(_0x9c445a){while(--_0x9c445a){_0x15130d['push'](_0x15130d['shift']());}};_0x3dadfb(++_0x397e9e);}(_0x1874,0x136));var _0x4187=function(_0x59023f,_0x1725b3){_0x59023f=_0x59023f-0x0;var _0x573a00=_0x1874[_0x59023f];return _0x573a00;};'use strict';var client=require('../client');exports[_0x4187('0x0')]=function(){return function(){return client[_0x4187('0x1')](_0x4187('0x2'),{'options':{'raw':![],'attributes':['id',_0x4187('0x3'),_0x4187('0x4'),'acwTimeout',_0x4187('0x5'),_0x4187('0x6'),'type',_0x4187('0x7'),_0x4187('0x8'),_0x4187('0x9'),_0x4187('0xa'),_0x4187('0xb'),_0x4187('0xc'),_0x4187('0xd'),_0x4187('0xe'),_0x4187('0xf'),'dialOriginateCallerIdNumber','dialOriginateTimeout',_0x4187('0x10'),_0x4187('0x11'),_0x4187('0x12'),_0x4187('0x13'),_0x4187('0x14'),_0x4187('0x15'),_0x4187('0x16'),_0x4187('0x17'),_0x4187('0x18'),_0x4187('0x19'),_0x4187('0x1a'),'dialGlobalInterval',_0x4187('0x1b'),_0x4187('0x1c'),_0x4187('0x1d'),_0x4187('0x1e'),'dialAMDGreeting',_0x4187('0x1f'),_0x4187('0x20'),'dialAMDMinWordLength','dialAMDBetweenWordsSilence',_0x4187('0x21'),_0x4187('0x22'),'dialAMDMaximumWordLength',_0x4187('0x23'),_0x4187('0x24'),'dialRecallInQueue',_0x4187('0x25'),_0x4187('0x26'),_0x4187('0x27'),'dialQueueProject2',_0x4187('0x6'),'strategy',_0x4187('0x28'),_0x4187('0x29'),_0x4187('0x2a'),_0x4187('0x2b'),'dialDropMaxRetry',_0x4187('0x2c'),_0x4187('0x2d'),_0x4187('0x2e'),_0x4187('0x2f'),_0x4187('0x30'),'dialAgentRejectMaxRetry',_0x4187('0x31'),_0x4187('0x32'),_0x4187('0x33'),_0x4187('0x34')],'include':[{'model':_0x4187('0x35'),'as':_0x4187('0x35'),'attributes':['id','name',_0x4187('0x36'),_0x4187('0x37')]},{'model':_0x4187('0x38'),'as':_0x4187('0x39'),'attributes':['id','name']},{'model':_0x4187('0x35'),'as':_0x4187('0x3a'),'attributes':['id','name',_0x4187('0x36'),_0x4187('0x37')]},{'model':_0x4187('0x3b'),'as':'Interval','attributes':['id',_0x4187('0x3')],'include':[{'model':_0x4187('0x3b'),'as':_0x4187('0x3c'),'attributes':['id',_0x4187('0x3'),'interval']}]}]},'log':_0x4187('0x0')});};};
\ No newline at end of file
+var _0x08f4=['dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalInterval','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDSilenceThreshold','dialAMDMaximumWordLength','timeout','dialRecallMeTimeout','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialQueueProject2','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','Trunk','Pause','mandatoryDispositionPause','TrunkBackup','callerid','active','Interval','Intervals','interval','../client','getVoiceQueues','Request','GetVoiceQueue','name','acw','acwTimeout','monitor_format','type','dialActive','dialMethod','dialPowerLevel'];(function(_0x3c818c,_0x11055a){var _0x21594d=function(_0x30aefe){while(--_0x30aefe){_0x3c818c['push'](_0x3c818c['shift']());}};_0x21594d(++_0x11055a);}(_0x08f4,0x6e));var _0x408f=function(_0x4d4b7d,_0x24175f){_0x4d4b7d=_0x4d4b7d-0x0;var _0x504fe9=_0x08f4[_0x4d4b7d];return _0x504fe9;};'use strict';var client=require(_0x408f('0x0'));exports[_0x408f('0x1')]=function(){return function(){return client[_0x408f('0x2')](_0x408f('0x3'),{'options':{'raw':![],'attributes':['id',_0x408f('0x4'),_0x408f('0x5'),_0x408f('0x6'),'autopause',_0x408f('0x7'),_0x408f('0x8'),_0x408f('0x9'),_0x408f('0xa'),'dialLimitChannel','dialLimitQueue',_0x408f('0xb'),_0x408f('0xc'),_0x408f('0xd'),'dialPredictiveInterval',_0x408f('0xe'),_0x408f('0xf'),_0x408f('0x10'),_0x408f('0x11'),_0x408f('0x12'),_0x408f('0x13'),_0x408f('0x14'),_0x408f('0x15'),'dialBusyMaxRetry','dialBusyRetryFrequency',_0x408f('0x16'),_0x408f('0x17'),'dialGlobalMaxRetry','dialTimezone',_0x408f('0x18'),_0x408f('0x19'),_0x408f('0x1a'),_0x408f('0x1b'),_0x408f('0x1c'),_0x408f('0x1d'),'dialAMDAfterGreetingSilence',_0x408f('0x1e'),_0x408f('0x1f'),_0x408f('0x20'),'dialAMDMaximumNumberOfWords',_0x408f('0x21'),_0x408f('0x22'),_0x408f('0x23'),_0x408f('0x24'),'dialRecallInQueue',_0x408f('0x25'),_0x408f('0x26'),_0x408f('0x27'),_0x408f('0x28'),_0x408f('0x7'),_0x408f('0x29'),_0x408f('0x2a'),_0x408f('0x2b'),'dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry',_0x408f('0x2c'),_0x408f('0x2d'),_0x408f('0x2e'),'dialMachineMaxRetry','dialMachineRetryFrequency',_0x408f('0x2f'),_0x408f('0x30'),_0x408f('0x31'),_0x408f('0x32'),_0x408f('0x33')],'include':[{'model':_0x408f('0x34'),'as':_0x408f('0x34'),'attributes':['id',_0x408f('0x4'),'callerid','active']},{'model':_0x408f('0x35'),'as':_0x408f('0x36'),'attributes':['id','name']},{'model':_0x408f('0x34'),'as':_0x408f('0x37'),'attributes':['id',_0x408f('0x4'),_0x408f('0x38'),_0x408f('0x39')]},{'model':_0x408f('0x3a'),'as':_0x408f('0x3a'),'attributes':['id',_0x408f('0x4')],'include':[{'model':_0x408f('0x3a'),'as':_0x408f('0x3b'),'attributes':['id','name',_0x408f('0x3c')]}]}]},'log':_0x408f('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x22ccbd,_0x3ba58d){var _0x2d17f9=function(_0x2e7af8){while(--_0x2e7af8){_0x22ccbd['push'](_0x22ccbd['shift']());}};_0x2d17f9(++_0x3ba58d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5b78e8,_0x55096b){_0x5b78e8=_0x5b78e8-0x0;var _0xf2c321=_0xa9e0[_0x5b78e8];return _0xf2c321;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
+var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x38cfbb,_0x3805e7){var _0x47d26c=function(_0x40c6fc){while(--_0x40c6fc){_0x38cfbb['push'](_0x38cfbb['shift']());}};_0x47d26c(++_0x3805e7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xa9e0[_0x2b4411];return _0x8e41ef;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe778=['GetVoiceQueueRtPauses','../client','Request'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xe778,0x79));var _0x8e77=function(_0x5f45e3,_0x7f2017){_0x5f45e3=_0x5f45e3-0x0;var _0x49616b=_0xe778[_0x5f45e3];return _0x49616b;};'use strict';var client=require(_0x8e77('0x0'));exports['getVoiceQueueRtPauses']=function(_0x1f7faa){return function(){return client[_0x8e77('0x1')](_0x8e77('0x2'),{'options':{'where':{'VoiceQueueId':_0x1f7faa,'paused':!![]},'raw':!![]},'log':'getVoiceQueueRtPauses'});};};
\ No newline at end of file
+var _0x7e39=['GetVoiceQueueRtPauses','getVoiceQueueRtPauses'];(function(_0x53b97f,_0x3c6d25){var _0x8cf7d6=function(_0x578fa7){while(--_0x578fa7){_0x53b97f['push'](_0x53b97f['shift']());}};_0x8cf7d6(++_0x3c6d25);}(_0x7e39,0x1c4));var _0x97e3=function(_0x58f16c,_0x34d34f){_0x58f16c=_0x58f16c-0x0;var _0x620433=_0x7e39[_0x58f16c];return _0x620433;};'use strict';var client=require('../client');exports['getVoiceQueueRtPauses']=function(_0x5bf8bc){return function(){return client['Request'](_0x97e3('0x0'),{'options':{'where':{'VoiceQueueId':_0x5bf8bc,'paused':!![]},'raw':!![]},'log':_0x97e3('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['create','Request','CreateVoiceRecording','monitorFilename','lodash','../client'];(function(_0x10b5c9,_0xa81aed){var _0x333669=function(_0x24c84c){while(--_0x24c84c){_0x10b5c9['push'](_0x10b5c9['shift']());}};_0x333669(++_0xa81aed);}(_0x7a54,0x106));var _0x47a5=function(_0x12619d,_0x218372){_0x12619d=_0x12619d-0x0;var _0x2af66f=_0x7a54[_0x12619d];return _0x2af66f;};'use strict';var _=require(_0x47a5('0x0'));var client=require(_0x47a5('0x1'));exports[_0x47a5('0x2')]=function(_0x58157c){return client[_0x47a5('0x3')](_0x47a5('0x4'),{'body':_['merge'](_0x58157c,{'value':_0x58157c[_0x47a5('0x5')]}),'log':_0x47a5('0x4')});};
\ No newline at end of file
+var _0x7a54=['create','Request','CreateVoiceRecording','monitorFilename','lodash','../client'];(function(_0x1ca5d0,_0x41c150){var _0x321f4a=function(_0x533047){while(--_0x533047){_0x1ca5d0['push'](_0x1ca5d0['shift']());}};_0x321f4a(++_0x41c150);}(_0x7a54,0x106));var _0x47a5=function(_0x35fde7,_0x3811ab){_0x35fde7=_0x35fde7-0x0;var _0xbe477e=_0x7a54[_0x35fde7];return _0xbe477e;};'use strict';var _=require(_0x47a5('0x0'));var client=require(_0x47a5('0x1'));exports[_0x47a5('0x2')]=function(_0x58157c){return client[_0x47a5('0x3')](_0x47a5('0x4'),{'body':_['merge'](_0x58157c,{'value':_0x58157c[_0x47a5('0x5')]}),'log':_0x47a5('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f35=['transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','origtransfererexten','attended','../client','transfers','blindTransfer','Request','CreateVoiceTransferReport','result','transfererchannel','transferercalleridnum','transferercalleridname','transferercontext','transfereechannel','transfereecalleridnum','transfereecalleridname','transfereeconnectedlinenum','transfereeconnectedlinename','transfereecontext','transfereeexten','transfereelinkedid','isexternal','context','extension','attendedTransfer','origtransfererchannel','origtransferercalleridnum','secondtransfererconnectedlinenum','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinename'];(function(_0x38072f,_0x95978){var _0x425432=function(_0x20325e){while(--_0x20325e){_0x38072f['push'](_0x38072f['shift']());}};_0x425432(++_0x95978);}(_0x6f35,0x136));var _0x56f3=function(_0x45a6e3,_0x5cd417){_0x45a6e3=_0x45a6e3-0x0;var _0x4cff9a=_0x6f35[_0x45a6e3];return _0x4cff9a;};'use strict';var client=require(_0x56f3('0x0'));exports[_0x56f3('0x1')]={};exports[_0x56f3('0x2')]=function(_0x266ac2){return client[_0x56f3('0x3')](_0x56f3('0x4'),{'body':{'result':_0x266ac2[_0x56f3('0x5')],'transfererchannel':_0x266ac2[_0x56f3('0x6')],'transferercalleridnum':_0x266ac2[_0x56f3('0x7')],'transferercalleridname':_0x266ac2[_0x56f3('0x8')],'transfererconnectedlinenum':_0x266ac2['transfererconnectedlinenum'],'transfererconnectedlinename':_0x266ac2['transfererconnectedlinename'],'transfereraccountcode':_0x266ac2['transfereraccountcode'],'transferercontext':_0x266ac2[_0x56f3('0x9')],'transfererexten':_0x266ac2['transfererexten'],'transfererlinkedid':_0x266ac2['transfererlinkedid'],'transfereechannel':_0x266ac2[_0x56f3('0xa')],'transfereecalleridnum':_0x266ac2[_0x56f3('0xb')],'transfereecalleridname':_0x266ac2[_0x56f3('0xc')],'transfereeconnectedlinenum':_0x266ac2[_0x56f3('0xd')],'transfereeconnectedlinename':_0x266ac2[_0x56f3('0xe')],'transfereeaccountcode':_0x266ac2['transfereeaccountcode'],'transfereecontext':_0x266ac2[_0x56f3('0xf')],'transfereeexten':_0x266ac2[_0x56f3('0x10')],'transfereelinkedid':_0x266ac2[_0x56f3('0x11')],'isexternal':_0x266ac2[_0x56f3('0x12')],'context':_0x266ac2[_0x56f3('0x13')],'extension':_0x266ac2[_0x56f3('0x14')],'type':'blind'},'log':_0x56f3('0x4')});};exports[_0x56f3('0x15')]=function(_0x2bda05){return client[_0x56f3('0x3')](_0x56f3('0x4'),{'body':{'result':_0x2bda05['result'],'transfererchannel':_0x2bda05[_0x56f3('0x16')],'transferercalleridnum':_0x2bda05[_0x56f3('0x17')],'transferercalleridname':_0x2bda05['origtransferercalleridname'],'transfererconnectedlinenum':_0x2bda05[_0x56f3('0x18')],'transfererconnectedlinename':_0x2bda05['secondtransfererconnectedlinename'],'transfereraccountcode':_0x2bda05[_0x56f3('0x19')],'transferercontext':_0x2bda05[_0x56f3('0x1a')],'transfererexten':_0x2bda05[_0x56f3('0x1b')],'transfererlinkedid':_0x2bda05[_0x56f3('0x1c')],'transfereechannel':_0x2bda05['transfertargetchannel'],'transfereecalleridnum':_0x2bda05[_0x56f3('0x1d')],'transfereecalleridname':_0x2bda05[_0x56f3('0x1e')],'transfereeconnectedlinenum':_0x2bda05['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x2bda05[_0x56f3('0x1f')],'transfereeaccountcode':_0x2bda05[_0x56f3('0x20')],'transfereecontext':_0x2bda05[_0x56f3('0x21')],'transfereeexten':_0x2bda05[_0x56f3('0x22')],'transfereelinkedid':_0x2bda05[_0x56f3('0x23')],'isexternal':_0x2bda05['isexternal'],'context':_0x2bda05['origtransferercontext'],'extension':_0x2bda05[_0x56f3('0x24')],'type':_0x56f3('0x25')},'log':_0x56f3('0x4')});};
\ No newline at end of file
+var _0xd952=['extension','blind','attendedTransfer','origtransfererchannel','origtransferercalleridnum','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','origtransferercontext','../client','blindTransfer','Request','CreateVoiceTransferReport','result','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinenum','transfererconnectedlinename','transferercontext','transfererlinkedid','transfereechannel','transfereecalleridname','transfereeconnectedlinename','transfereeaccountcode','transfereecontext','transfereeexten','transfereelinkedid','isexternal'];(function(_0x1ba725,_0x48a372){var _0x25d693=function(_0x4df893){while(--_0x4df893){_0x1ba725['push'](_0x1ba725['shift']());}};_0x25d693(++_0x48a372);}(_0xd952,0xdc));var _0x2d95=function(_0x3f6bc3,_0x1bea00){_0x3f6bc3=_0x3f6bc3-0x0;var _0x508d33=_0xd952[_0x3f6bc3];return _0x508d33;};'use strict';var client=require(_0x2d95('0x0'));exports['transfers']={};exports[_0x2d95('0x1')]=function(_0xa9337e){return client[_0x2d95('0x2')](_0x2d95('0x3'),{'body':{'result':_0xa9337e[_0x2d95('0x4')],'transfererchannel':_0xa9337e[_0x2d95('0x5')],'transferercalleridnum':_0xa9337e[_0x2d95('0x6')],'transferercalleridname':_0xa9337e[_0x2d95('0x7')],'transfererconnectedlinenum':_0xa9337e[_0x2d95('0x8')],'transfererconnectedlinename':_0xa9337e[_0x2d95('0x9')],'transfereraccountcode':_0xa9337e['transfereraccountcode'],'transferercontext':_0xa9337e[_0x2d95('0xa')],'transfererexten':_0xa9337e['transfererexten'],'transfererlinkedid':_0xa9337e[_0x2d95('0xb')],'transfereechannel':_0xa9337e[_0x2d95('0xc')],'transfereecalleridnum':_0xa9337e['transfereecalleridnum'],'transfereecalleridname':_0xa9337e[_0x2d95('0xd')],'transfereeconnectedlinenum':_0xa9337e['transfereeconnectedlinenum'],'transfereeconnectedlinename':_0xa9337e[_0x2d95('0xe')],'transfereeaccountcode':_0xa9337e[_0x2d95('0xf')],'transfereecontext':_0xa9337e[_0x2d95('0x10')],'transfereeexten':_0xa9337e[_0x2d95('0x11')],'transfereelinkedid':_0xa9337e[_0x2d95('0x12')],'isexternal':_0xa9337e[_0x2d95('0x13')],'context':_0xa9337e['context'],'extension':_0xa9337e[_0x2d95('0x14')],'type':_0x2d95('0x15')},'log':_0x2d95('0x3')});};exports[_0x2d95('0x16')]=function(_0x30a16b){return client[_0x2d95('0x2')](_0x2d95('0x3'),{'body':{'result':_0x30a16b[_0x2d95('0x4')],'transfererchannel':_0x30a16b[_0x2d95('0x17')],'transferercalleridnum':_0x30a16b[_0x2d95('0x18')],'transferercalleridname':_0x30a16b[_0x2d95('0x19')],'transfererconnectedlinenum':_0x30a16b[_0x2d95('0x1a')],'transfererconnectedlinename':_0x30a16b[_0x2d95('0x1b')],'transfereraccountcode':_0x30a16b['origtransfereraccountcode'],'transferercontext':_0x30a16b[_0x2d95('0x1c')],'transfererexten':_0x30a16b[_0x2d95('0x1d')],'transfererlinkedid':_0x30a16b[_0x2d95('0x1e')],'transfereechannel':_0x30a16b[_0x2d95('0x1f')],'transfereecalleridnum':_0x30a16b[_0x2d95('0x20')],'transfereecalleridname':_0x30a16b[_0x2d95('0x21')],'transfereeconnectedlinenum':_0x30a16b[_0x2d95('0x22')],'transfereeconnectedlinename':_0x30a16b[_0x2d95('0x23')],'transfereeaccountcode':_0x30a16b[_0x2d95('0x24')],'transfereecontext':_0x30a16b[_0x2d95('0x25')],'transfereeexten':_0x30a16b[_0x2d95('0x26')],'transfereelinkedid':_0x30a16b['transfertargetlinkedid'],'isexternal':_0x30a16b[_0x2d95('0x13')],'context':_0x30a16b[_0x2d95('0x27')],'extension':_0x30a16b['origtransfererexten'],'type':'attended'},'log':'CreateVoiceTransferReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf69c=['predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','Trunk','active','callerid','Interval','length','omit','undefined','voicechannel','map','find','channels','uniqueid','%s.%s','filename','wav','MixMonitor','channel','ai(mixmonitorid)','/var/spool/asterisk/monitor/','toLowerCase','isNil','YYYY-MM-DD\x20HH:mm:ss','rec','status','MixMonitor\x20Success','mixmonitorid','resolve','StopMixMonitor','destinationchannel','stop','monitors','StopMixMonitor\x20Success','values','queueChannels','Channel\x20doesn\x27t\x20exist','voicequeuechannelhangup','Hangup','voicequeuechannelredirect','Redirect','exten','context','trunks','outboundChannels','event','emit','custom:','faxAccounts','send','server','http','127.0.0.1','RPC\x20listening\x20on\x20port:','lodash','jayson/promise','validate','moment','../properties','listen','format','SIP','name','timers','timer','updateAcw','agents','updateStatusRealtime','pause','QueuePause','username','join','pick','keys','module','Reload','Action','message','catch','error','isConnected','asterisk','ami\x20disconnected','command','action','Command','then','content','hasOwnProperty','voiceQueues','strategy','answered','available','loggedIn','pTalking','sumHoldTime','talking','total','type','abandoned','waiting','loggedInDb','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable'];(function(_0x1d6b6d,_0x1e6cc7){var _0xe29029=function(_0x322db8){while(--_0x322db8){_0x1d6b6d['push'](_0x1d6b6d['shift']());}};_0xe29029(++_0x1e6cc7);}(_0xf69c,0x151));var _0xcf69=function(_0x18f82b,_0x3ea7a0){_0x18f82b=_0x18f82b-0x0;var _0x5d8128=_0xf69c[_0x18f82b];return _0x5d8128;};'use strict';var _=require(_0xcf69('0x0'));var util=require('util');var jayson=require(_0xcf69('0x1'));var schema=require(_0xcf69('0x2'));var BPromise=require('bluebird');var moment=require(_0xcf69('0x3'));var config=require('../../../config/environment');var properties=require(_0xcf69('0x4'));var ami=require('../ami');exports[_0xcf69('0x5')]=function(_0x4d8180,_0x1c813d,_0x168197){return new BPromise(function(_0x225c65,_0x35aa67){var _0x3b7608={'QueuePause':function(_0x5f1e98){return new Promise(function(_0x38478c,_0xbeb916){var _0x46b433=util[_0xcf69('0x6')]('%s/%s',_0xcf69('0x7'),_0x5f1e98[_0xcf69('0x8')]);if(_0x4d8180[_0xcf69('0x9')]&&_0x4d8180[_0xcf69('0x9')][_0x46b433]&&_0x4d8180[_0xcf69('0x9')][_0x46b433][_0xcf69('0xa')]){_0x4d8180['timers'][_0x46b433][_0xcf69('0xb')]();}if(_0x4d8180['agents'][_0x46b433]){_0x4d8180[_0xcf69('0xc')][_0x46b433][_0xcf69('0xd')]({'statePause':_0x5f1e98[_0xcf69('0xe')]?!![]:![]});}_0x38478c({'code':0xc8,'message':_0xcf69('0xf')});});},'Reload':function(_0x329250){var _0x2981ab=this;return new Promise(function(_0x182dde,_0x34e299){if(ami['isConnected']()==![]){return _0x34e299(_0x2981ab['error'](0x1f4,[config['asterisk']['ip'],config['asterisk'][_0xcf69('0x10')],'ami\x20disconnected'][_0xcf69('0x11')]('\x20')));}_0x329250=_[_0xcf69('0x12')](_0x329250,_[_0xcf69('0x13')](properties[_0xcf69('0x14')]));_0x329250['action']=_0xcf69('0x15');return ami[_0xcf69('0x16')](_0x329250)['then'](function(_0x486e06){_0x182dde({'code':0xc8,'message':_0x486e06[_0xcf69('0x17')]});})[_0xcf69('0x18')](function(_0x39306a){_0x34e299(_0x2981ab[_0xcf69('0x19')](0x1f5,_0x39306a[_0xcf69('0x17')]));});});},'Command':function(_0xfd30d2){var _0x120980=this;return new Promise(function(_0x210630,_0x53666e){if(ami[_0xcf69('0x1a')]()==![]){return _0x53666e(_0x120980['error'](0x1f4,[config[_0xcf69('0x1b')]['ip'],config[_0xcf69('0x1b')][_0xcf69('0x10')],_0xcf69('0x1c')][_0xcf69('0x11')]('\x20')));}_0xfd30d2=_[_0xcf69('0x12')](_0xfd30d2,_0xcf69('0x1d'));_0xfd30d2[_0xcf69('0x1e')]=_0xcf69('0x1f');return ami[_0xcf69('0x16')](_0xfd30d2)[_0xcf69('0x20')](function(_0x7d86bc){_0x210630({'code':0xc8,'message':_0x7d86bc[_0xcf69('0x21')]});})[_0xcf69('0x18')](function(_0x3ec2fb){_0x53666e(_0x120980['error'](0x1f5,_0x3ec2fb[_0xcf69('0x17')]));});});},'VoiceQueues':function(_0x1abce9){return new Promise(function(_0x183067,_0x278ce3){var _0x9a006b=[];for(var _0x1a0b33 in _0x4d8180['voiceQueues']){if(_0x4d8180['voiceQueues'][_0xcf69('0x22')](_0x1a0b33)){var _0x59de98=_0x4d8180[_0xcf69('0x23')][_0x1a0b33];var _0x81a49f={'id':_0x59de98['id'],'name':_0x59de98[_0xcf69('0x8')],'strategy':_0x59de98[_0xcf69('0x24')],'answered':_0x59de98[_0xcf69('0x25')],'available':_0x59de98[_0xcf69('0x26')],'loggedIn':_0x59de98[_0xcf69('0x27')],'pTalking':_0x59de98[_0xcf69('0x28')],'sumBillable':_0x59de98['sumBillable'],'sumDuration':_0x59de98['sumDuration'],'sumHoldTime':_0x59de98[_0xcf69('0x29')]||0x0,'talking':_0x59de98[_0xcf69('0x2a')],'total':_0x59de98[_0xcf69('0x2b')],'type':_0x59de98[_0xcf69('0x2c')],'unmanaged':_0x59de98['unmanaged'],'abandoned':_0x59de98[_0xcf69('0x2d')],'waiting':_0x59de98[_0xcf69('0x2e')],'loggedInDb':_0x59de98[_0xcf69('0x2f')]};if(_0x59de98[_0xcf69('0x2c')]===_0xcf69('0x30')){_0x81a49f[_0xcf69('0x31')]=_0x59de98[_0xcf69('0x31')];_0x81a49f[_0xcf69('0x32')]=_0x59de98[_0xcf69('0x32')];_0x81a49f[_0xcf69('0x33')]=_0x59de98['dialOriginateCallerIdName'];_0x81a49f[_0xcf69('0x34')]=_0x59de98['dialOriginateCallerIdNumber'];_0x81a49f[_0xcf69('0x35')]=_0x59de98[_0xcf69('0x35')];_0x81a49f[_0xcf69('0x36')]=_0x59de98[_0xcf69('0x36')];_0x81a49f[_0xcf69('0x37')]=_0x59de98[_0xcf69('0x37')];_0x81a49f[_0xcf69('0x38')]=_0x59de98[_0xcf69('0x38')];_0x81a49f[_0xcf69('0x39')]=_0x59de98[_0xcf69('0x39')];_0x81a49f['outboundBlacklistCallsDay']=_0x59de98[_0xcf69('0x3a')];_0x81a49f[_0xcf69('0x3b')]=_0x59de98['outboundBusyCallsDay'];_0x81a49f[_0xcf69('0x3c')]=_0x59de98['outboundCongestionCallsDay'];_0x81a49f[_0xcf69('0x3d')]=_0x59de98['outboundDropCallsDayACS'];_0x81a49f['outboundDropCallsDayCallersExit']=_0x59de98[_0xcf69('0x3e')];_0x81a49f[_0xcf69('0x3f')]=_0x59de98[_0xcf69('0x3f')];_0x81a49f[_0xcf69('0x40')]=_0x59de98[_0xcf69('0x40')];_0x81a49f[_0xcf69('0x41')]=_0x59de98['outboundNoSuchCallsDay'];_0x81a49f['outboundOriginateFailureCallsDay']=_0x59de98[_0xcf69('0x42')];_0x81a49f[_0xcf69('0x43')]=_0x59de98[_0xcf69('0x43')];_0x81a49f[_0xcf69('0x44')]=_0x59de98[_0xcf69('0x44')];_0x81a49f[_0xcf69('0x45')]=_0x59de98[_0xcf69('0x45')];_0x81a49f[_0xcf69('0x46')]=_0x59de98[_0xcf69('0x46')];_0x81a49f[_0xcf69('0x47')]=_0x59de98[_0xcf69('0x47')];_0x81a49f[_0xcf69('0x48')]=_0x59de98[_0xcf69('0x48')];_0x81a49f[_0xcf69('0x49')]=_0x59de98[_0xcf69('0x49')];_0x81a49f[_0xcf69('0x4a')]=_0x59de98[_0xcf69('0x4a')];_0x81a49f[_0xcf69('0x4b')]=_0x59de98[_0xcf69('0x4b')];_0x81a49f[_0xcf69('0x4c')]=_0x59de98[_0xcf69('0x4c')];_0x81a49f['predictiveIntervalHitRate']=_0x59de98['predictiveIntervalHitRate'];_0x81a49f[_0xcf69('0x4d')]=_0x59de98[_0xcf69('0x4d')];_0x81a49f[_0xcf69('0x4e')]=_0x59de98[_0xcf69('0x4e')];_0x81a49f['predictiveIntervalAvailable']=_0x59de98[_0xcf69('0x4f')];_0x81a49f[_0xcf69('0x50')]=_0x59de98[_0xcf69('0x50')];_0x81a49f[_0xcf69('0x17')]=_0x59de98[_0xcf69('0x17')];_0x81a49f['originated']=_0x59de98[_0xcf69('0x51')];_0x81a49f[_0xcf69('0x52')]=_0x59de98['erlangCalls'];_0x81a49f[_0xcf69('0x53')]=_0x59de98[_0xcf69('0x53')];_0x81a49f[_0xcf69('0x54')]=_0x59de98['erlangAbandonmentRate'];_0x81a49f[_0xcf69('0x55')]=_0x59de98['erlangBusyFactor'];_0x81a49f[_0xcf69('0x56')]=_0x59de98[_0xcf69('0x56')];_0x81a49f['startProgressive']=_0x59de98['startProgressive'];}if(_0x59de98[_0xcf69('0x57')]){_0x81a49f[_0xcf69('0x57')]={'id':_0x59de98[_0xcf69('0x57')]['id'],'name':_0x59de98['Trunk']['name'],'active':_0x59de98[_0xcf69('0x57')][_0xcf69('0x58')],'callerid':_0x59de98['Trunk'][_0xcf69('0x59')]};}if(_0x59de98[_0xcf69('0x5a')]){_0x81a49f[_0xcf69('0x5a')]={'id':_0x59de98[_0xcf69('0x5a')]['id'],'name':_0x59de98[_0xcf69('0x5a')][_0xcf69('0x8')]};}_0x9a006b['push'](_0x81a49f);}}_0x183067({'count':_0x9a006b[_0xcf69('0x5b')],'rows':_0x9a006b});});},'UpdateVoiceQueue':function(_0x39522d){return new Promise(function(_0x3e33e6,_0x58e261){var _0x1a1270=_['find'](_0x4d8180[_0xcf69('0x23')],{'id':parseInt(_0x39522d['id'])});var _0x81d8a7=_[_0xcf69('0x5c')](_0x39522d,['id']);if(_0x1a1270){for(var _0x45c458 in _0x81d8a7){if(typeof _0x81d8a7[_0x45c458]!==_0xcf69('0x5d')&&typeof _0x1a1270[_0x45c458]!=='undefined'){_0x1a1270[_0x45c458]=_0x81d8a7[_0x45c458];}}_0x3e33e6(_0x1a1270);}else{_0x58e261();}});},'VoiceChannels':function(_0x57748d){return new Promise(function(_0xca4bc0,_0x29dfbf){var _0x43ded1=_['values'](_0x4d8180['channels']);_0xca4bc0({'count':_0x43ded1['length'],'rows':_0x43ded1});});},'VoiceChannelMixMonitor':function(_0x2f2b20){var _0x814320=this;return new Promise(function(_0x91069e,_0x4c55e4){if(ami[_0xcf69('0x1a')]()==![]){return _0x4c55e4(_0x814320['error'](0x1f4,[config[_0xcf69('0x1b')]['ip'],config['asterisk'][_0xcf69('0x10')],_0xcf69('0x1c')][_0xcf69('0x11')]('\x20')));}var _0x2f8346=schema(properties[_0xcf69('0x5e')])[_0xcf69('0x2')](_0x2f2b20);if(_0x2f8346[_0xcf69('0x5b')]>0x0){return _0x4c55e4(_0x814320[_0xcf69('0x19')](0x1f4,_[_0xcf69('0x5f')](_0x2f8346,_0xcf69('0x17'))[_0xcf69('0x11')](',\x20')));}var _0x52473a=_[_0xcf69('0x60')](_0x4d8180[_0xcf69('0x61')],{'uniqueid':_0x2f2b20[_0xcf69('0x62')]});if(_0x52473a&&_0x52473a['channel']){var _0x294e08=util['format'](_0xcf69('0x63'),_0x2f2b20[_0xcf69('0x64')]||_0x2f2b20[_0xcf69('0x62')],_0x2f2b20[_0xcf69('0x6')]||_0xcf69('0x65'));return ami[_0xcf69('0x16')]({'action':_0xcf69('0x66'),'channel':_0x52473a[_0xcf69('0x67')],'file':_0x294e08,'options':_0xcf69('0x68')})[_0xcf69('0x20')](function(_0x2f83f6){var _0x2be62c=_[_0xcf69('0x60')](_0x52473a['monitors'],{'filename':_0xcf69('0x69')+_0x294e08[_0xcf69('0x6a')]()});if(_[_0xcf69('0x6b')](_0x2be62c)){_0x52473a['monitors']['push']({'filename':_0xcf69('0x69')+_0x294e08['toLowerCase'](),'createdAt':moment()[_0xcf69('0x6')](_0xcf69('0x6c')),'mixmonitorid':_0x2f83f6['mixmonitorid'],'status':_0xcf69('0x6d')});}else{_0x2be62c['mixmonitorid']=_0x2f83f6['mixmonitorid'];_0x2be62c[_0xcf69('0x6e')]=_0xcf69('0x6d');}_0x91069e({'code':0xc8,'message':[_0x2f2b20[_0xcf69('0x62')],_0xcf69('0x6f'),_0x2f83f6['mixmonitorid']][_0xcf69('0x11')]('\x20'),'mixmonitorid':_0x2f83f6[_0xcf69('0x70')]});})[_0xcf69('0x18')](function(_0x5996eb){_0x4c55e4(_0x814320['error'](0x1f5,[_0x2f2b20[_0xcf69('0x62')],_0x5996eb[_0xcf69('0x17')][_0xcf69('0x6a')]()]['join']('\x20')));});}else{return _0x4c55e4(_0x814320['error'](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceChannelStopMixMonitor':function(_0x4ab987){var _0x5d036b=this;return new Promise(function(_0x4bfd20,_0x1ace3c){if(ami[_0xcf69('0x1a')]()==![]){return _0x1ace3c(_0x5d036b['error'](0x1f4,[config[_0xcf69('0x1b')]['ip'],config[_0xcf69('0x1b')][_0xcf69('0x10')],_0xcf69('0x1c')][_0xcf69('0x11')]('\x20')));}var _0x19310e=schema(properties['voicechannel'])['validate'](_0x4ab987);if(_0x19310e[_0xcf69('0x5b')]>0x0){return _0x1ace3c(_0x5d036b[_0xcf69('0x19')](0x1f4,_[_0xcf69('0x5f')](_0x19310e,_0xcf69('0x17'))['join'](',\x20')));}var _0x593502=_['find'](_0x4d8180['channels'],{'uniqueid':_0x4ab987[_0xcf69('0x62')]});if(_0x593502){return BPromise[_0xcf69('0x71')]()[_0xcf69('0x20')](function(){if(_0x593502[_0xcf69('0x67')]){return ami[_0xcf69('0x16')]({'action':_0xcf69('0x72'),'channel':_0x593502['channel'],'mixmonitorid':_0x4ab987[_0xcf69('0x70')]})[_0xcf69('0x18')](function(_0x111089){});}})[_0xcf69('0x20')](function(){if(_0x593502[_0xcf69('0x73')]){return ami[_0xcf69('0x16')]({'action':_0xcf69('0x72'),'channel':_0x593502[_0xcf69('0x73')],'mixmonitorid':_0x4ab987[_0xcf69('0x70')]})[_0xcf69('0x18')](function(_0x16d25d){});}})['then'](function(_0x1d5dc1){var _0x3e5450=_[_0xcf69('0x60')](_0x593502['monitors'],{'mixmonitorid':_0x4ab987[_0xcf69('0x70')]});if(_0x3e5450){_0x3e5450['status']=_0xcf69('0x74');}})['then'](function(){var _0x4b3250=util[_0xcf69('0x6')](_0xcf69('0x63'),_0x4ab987[_0xcf69('0x64')]||_0x4ab987[_0xcf69('0x62')],_0x4ab987[_0xcf69('0x6')]||'wav');var _0x5d098a=_[_0xcf69('0x60')](_0x593502[_0xcf69('0x75')],{'filename':'/var/spool/asterisk/monitor/'+_0x4b3250['toLowerCase']()});if(_0x5d098a){_0x5d098a['status']=_0xcf69('0x74');}})[_0xcf69('0x20')](function(){_0x4bfd20({'code':0xc8,'message':[_0x4ab987['uniqueid'],_0xcf69('0x76')]['join']('\x20')});})[_0xcf69('0x18')](function(_0x3b76ce){_0x1ace3c(_0x5d036b[_0xcf69('0x19')](0x1f5,[_0x4ab987[_0xcf69('0x62')],_0x3b76ce[_0xcf69('0x17')]['toLowerCase']()]['join']('\x20')));});}else{return _0x1ace3c(_0x5d036b[_0xcf69('0x19')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannels':function(_0x188d15){return new Promise(function(_0x54cf09,_0x53ee6c){var _0x5a183e=_[_0xcf69('0x77')](_0x4d8180[_0xcf69('0x78')]);_0x54cf09({'count':_0x5a183e[_0xcf69('0x5b')],'rows':_0x5a183e});});},'VoiceQueuesChannel':function(_0xbb5438){var _0x566520=this;return new Promise(function(_0x287912,_0x5658f4){var _0x243fda=schema(properties['voicequeuechannel'])[_0xcf69('0x2')](_0xbb5438);if(_0x243fda[_0xcf69('0x5b')]>0x0){return _0x5658f4(_0x566520['error'](0x1f4,_[_0xcf69('0x5f')](_0x243fda,_0xcf69('0x17'))[_0xcf69('0x11')](',\x20')));}var _0x490cce=_['find'](_0x4d8180[_0xcf69('0x78')],{'uniqueid':_0xbb5438[_0xcf69('0x62')]});if(_0x490cce){_0x287912(_0x490cce);}else{return _0x5658f4(_0x566520['error'](0x1f5,_0xcf69('0x79')));}});},'VoiceQueuesChannelHangup':function(_0x38e0b2){var _0x746a64=this;return new Promise(function(_0x4bc426,_0x48774f){if(ami[_0xcf69('0x1a')]()==![]){return _0x48774f(_0x746a64['error'](0x1f4,[config[_0xcf69('0x1b')]['ip'],config[_0xcf69('0x1b')]['username'],_0xcf69('0x1c')][_0xcf69('0x11')]('\x20')));}var _0x5b68b8=schema(properties[_0xcf69('0x7a')])['validate'](_0x38e0b2);if(_0x5b68b8[_0xcf69('0x5b')]>0x0){return _0x48774f(_0x746a64[_0xcf69('0x19')](0x1f4,_[_0xcf69('0x5f')](_0x5b68b8,_0xcf69('0x17'))[_0xcf69('0x11')](',\x20')));}var _0x52eae3=_[_0xcf69('0x60')](_0x4d8180['queueChannels'],{'uniqueid':_0x38e0b2[_0xcf69('0x62')]});if(_0x52eae3&&_0x52eae3[_0xcf69('0x67')]){return ami[_0xcf69('0x16')]({'action':_0xcf69('0x7b'),'channel':_0x52eae3['channel']})['then'](function(_0x2f97f5){_0x4bc426({'code':0xc8,'message':[_0x38e0b2[_0xcf69('0x62')],_0x2f97f5[_0xcf69('0x17')][_0xcf69('0x6a')]()][_0xcf69('0x11')]('\x20')});})[_0xcf69('0x18')](function(_0x5d5dfe){_0x48774f(_0x746a64[_0xcf69('0x19')](0x1f5,[_0x38e0b2[_0xcf69('0x62')],_0x5d5dfe[_0xcf69('0x17')][_0xcf69('0x6a')]()][_0xcf69('0x11')]('\x20')));});}else{return _0x48774f(_0x746a64['error'](0x1f5,_0xcf69('0x79')));}});},'VoiceQueuesChannelRedirect':function(_0x595e2f){var _0x4dbf4e=this;return new Promise(function(_0x96cf1d,_0x270e79){if(ami['isConnected']()==![]){return _0x270e79(_0x4dbf4e['error'](0x1f4,[config['asterisk']['ip'],config[_0xcf69('0x1b')][_0xcf69('0x10')],_0xcf69('0x1c')][_0xcf69('0x11')]('\x20')));}var _0x3d1055=schema(properties[_0xcf69('0x7c')])['validate'](_0x595e2f);if(_0x3d1055[_0xcf69('0x5b')]>0x0){return _0x270e79(_0x4dbf4e[_0xcf69('0x19')](0x1f4,_['map'](_0x3d1055,_0xcf69('0x17'))[_0xcf69('0x11')](',\x20')));}var _0x3cfb21=_[_0xcf69('0x60')](_0x4d8180[_0xcf69('0x78')],{'uniqueid':_0x595e2f[_0xcf69('0x62')]});if(_0x3cfb21&&_0x3cfb21['channel']){return ami[_0xcf69('0x16')]({'action':_0xcf69('0x7d'),'channel':_0x3cfb21[_0xcf69('0x67')],'exten':_0x595e2f[_0xcf69('0x7e')],'context':_0x595e2f['context']||_0x3cfb21[_0xcf69('0x7f')],'priority':0x1})[_0xcf69('0x20')](function(_0x2cdcc3){_0x96cf1d({'code':0xc8,'message':[_0x595e2f[_0xcf69('0x62')],_0x2cdcc3['message'][_0xcf69('0x6a')]()]['join']('\x20')});})[_0xcf69('0x18')](function(_0x1af8a0){_0x270e79(_0x4dbf4e['error'](0x1f5,[_0x595e2f['uniqueid'],_0x1af8a0['message'][_0xcf69('0x6a')]()][_0xcf69('0x11')]('\x20')));});}else{return _0x270e79(_0x4dbf4e['error'](0x1f5,_0xcf69('0x79')));}});},'Agents':function(_0x2002e1){return new Promise(function(_0x145bde,_0x2cd107){var _0x1cb7fd=_[_0xcf69('0x77')](_0x4d8180[_0xcf69('0xc')]);_0x145bde({'count':_0x1cb7fd[_0xcf69('0x5b')],'rows':_0x1cb7fd});});},'Telephones':function(_0x3f67d7){return new Promise(function(_0x4a7f65,_0x455dd0){var _0x2ca0d3=_[_0xcf69('0x77')](_0x4d8180['telephones']);_0x4a7f65({'count':_0x2ca0d3['length'],'rows':_0x2ca0d3});});},'Trunks':function(_0x57f3cb){return new Promise(function(_0x24194c,_0x587c1b){var _0x5eabdb=_[_0xcf69('0x77')](_0x4d8180[_0xcf69('0x80')]);_0x24194c({'count':_0x5eabdb[_0xcf69('0x5b')],'rows':_0x5eabdb});});},'OutboundChannels':function(_0x352d40){return new Promise(function(_0x2b79f0,_0x1fc8db){var _0xeb1b54=_['values'](_0x4d8180[_0xcf69('0x81')]);_0x2b79f0({'count':_0xeb1b54[_0xcf69('0x5b')],'rows':_0xeb1b54});});},'Outbound':function(_0x29e5fc){return new Promise(function(_0x2fbec3,_0x53438c){_0x2fbec3(_0x4d8180[_0xcf69('0x30')]);});},'Campaigns':function(_0xf339fa){return new Promise(function(_0x29d887,_0x3c7db3){var _0xac1fa9=_['values'](_0x4d8180['campaigns']);_0x29d887({'count':_0xac1fa9[_0xcf69('0x5b')],'rows':_0xac1fa9});});},'VoiceQueuesPreview':function(_0x165f37){var _0x4ece02=this;return new Promise(function(_0x14e9d6,_0x45a3a7){_0x1c813d['run'](_0x165f37['id'])[_0xcf69('0x20')](function(_0x548195){_0x14e9d6({'code':0xc8,'message':_0x548195[_0xcf69('0x17')]});})[_0xcf69('0x18')](function(_0x3d1fb0){_0x45a3a7(_0x4ece02[_0xcf69('0x19')](0x1f4,_0x3d1fb0[_0xcf69('0x17')]));});});},'EventManager':function(_0x1fe4a9){var _0x29574f=this;return new Promise(function(_0x478426,_0x3748b5){if(!_0x1fe4a9[_0xcf69('0x82')]){return _0x3748b5(_0x29574f[_0xcf69('0x19')](0x1f4,'Event\x20name\x20mandatory'));}ami[_0xcf69('0x83')](_0xcf69('0x84')+_0x1fe4a9['event'],_0x1fe4a9['message']);_0x478426({'code':0xc8,'message':_0x1fe4a9});});},'FaxAccounts':function(_0x11cdad){return new Promise(function(_0x437d15,_0x3f7b13){var _0x4c8346=_['values'](_0x4d8180[_0xcf69('0x85')]);_0x437d15({'count':_0x4c8346[_0xcf69('0x5b')],'rows':_0x4c8346});});},'SendFax':function(_0x8a4d91){var _0x47d3cb=this;return new Promise(function(_0x172362,_0x2f2ca0){_0x168197[_0xcf69('0x86')](_0x8a4d91)['then'](function(_0x363533){_0x172362({'code':0xc8,'message':_0x363533[_0xcf69('0x17')]});})[_0xcf69('0x18')](function(_0x3e73b9){_0x2f2ca0(_0x47d3cb[_0xcf69('0x19')](0x1f4,_0x3e73b9[_0xcf69('0x17')]));});});},'CheckAfterSend':function(_0x2d1bbf){var _0x4bca3d=this;return new Promise(function(_0x3e29d3,_0x1279fc){_0x168197['checkAfterSend'](_0x2d1bbf)[_0xcf69('0x20')](function(_0x17ef57){_0x3e29d3({'code':0xc8,'message':_0x17ef57[_0xcf69('0x17')]});})[_0xcf69('0x18')](function(_0x18db19){_0x1279fc(_0x4bca3d[_0xcf69('0x19')](0x1f4,_0x18db19['message']));});});}};var _0x1d7528=jayson[_0xcf69('0x87')](_0x3b7608)[_0xcf69('0x88')]();_0x1d7528['on'](_0xcf69('0x19'),function(_0x220220){return _0x35aa67(_0x220220);});_0x1d7528['listen'](0x232a,_0xcf69('0x89'),function(){console['log']('AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232a);return _0x225c65(_0xcf69('0x8a')+0x232a);});});};
\ No newline at end of file
+var _0xfb65=['SIP','timers','timer','updateAcw','agents','pause','QueuePause','isConnected','error','username','ami\x20disconnected','pick','keys','module','Reload','Action','then','message','catch','asterisk','command','Command','voiceQueues','hasOwnProperty','strategy','answered','available','pTalking','sumBillable','sumHoldTime','talking','type','abandoned','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','name','active','Interval','push','length','undefined','channels','join','validate','map','find','channel','filename','uniqueid','MixMonitor','ai(mixmonitorid)','monitors','/var/spool/asterisk/monitor/','toLowerCase','YYYY-MM-DD\x20HH:mm:ss','mixmonitorid','rec','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','voicechannel','resolve','StopMixMonitor','destinationchannel','stop','%s.%s','wav','status','StopMixMonitor\x20Success','voicequeuechannel','queueChannels','voicequeuechannelhangup','Hangup','voicequeuechannelredirect','Redirect','context','values','telephones','trunks','outboundChannels','campaigns','run','Event\x20name\x20mandatory','emit','event','send','checkAfterSend','server','http','127.0.0.1','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','util','jayson/promise','bluebird','../../../config/environment','../properties','../ami','listen','format','%s/%s'];(function(_0x3093fe,_0x5a0cff){var _0x31517d=function(_0x4a6eba){while(--_0x4a6eba){_0x3093fe['push'](_0x3093fe['shift']());}};_0x31517d(++_0x5a0cff);}(_0xfb65,0x82));var _0x5fb6=function(_0x4b8938,_0x1e8d85){_0x4b8938=_0x4b8938-0x0;var _0x196951=_0xfb65[_0x4b8938];return _0x196951;};'use strict';var _=require('lodash');var util=require(_0x5fb6('0x0'));var jayson=require(_0x5fb6('0x1'));var schema=require('validate');var BPromise=require(_0x5fb6('0x2'));var moment=require('moment');var config=require(_0x5fb6('0x3'));var properties=require(_0x5fb6('0x4'));var ami=require(_0x5fb6('0x5'));exports[_0x5fb6('0x6')]=function(_0x3a3b1b,_0x1fefe3,_0x4dec8f){return new BPromise(function(_0x50782b,_0x238914){var _0x1b586b={'QueuePause':function(_0x1f99b8){return new Promise(function(_0x840390,_0x56d6e1){var _0x381710=util[_0x5fb6('0x7')](_0x5fb6('0x8'),_0x5fb6('0x9'),_0x1f99b8['name']);if(_0x3a3b1b[_0x5fb6('0xa')]&&_0x3a3b1b[_0x5fb6('0xa')][_0x381710]&&_0x3a3b1b['timers'][_0x381710][_0x5fb6('0xb')]){_0x3a3b1b[_0x5fb6('0xa')][_0x381710][_0x5fb6('0xc')]();}if(_0x3a3b1b[_0x5fb6('0xd')][_0x381710]){_0x3a3b1b[_0x5fb6('0xd')][_0x381710]['updateStatusRealtime']({'statePause':_0x1f99b8[_0x5fb6('0xe')]?!![]:![]});}_0x840390({'code':0xc8,'message':_0x5fb6('0xf')});});},'Reload':function(_0x42285b){var _0x41d503=this;return new Promise(function(_0x6b58a2,_0x1bab1f){if(ami[_0x5fb6('0x10')]()==![]){return _0x1bab1f(_0x41d503[_0x5fb6('0x11')](0x1f4,[config['asterisk']['ip'],config['asterisk'][_0x5fb6('0x12')],_0x5fb6('0x13')]['join']('\x20')));}_0x42285b=_[_0x5fb6('0x14')](_0x42285b,_[_0x5fb6('0x15')](properties[_0x5fb6('0x16')]));_0x42285b['action']=_0x5fb6('0x17');return ami[_0x5fb6('0x18')](_0x42285b)[_0x5fb6('0x19')](function(_0x182af5){_0x6b58a2({'code':0xc8,'message':_0x182af5[_0x5fb6('0x1a')]});})[_0x5fb6('0x1b')](function(_0x50bca8){_0x1bab1f(_0x41d503[_0x5fb6('0x11')](0x1f5,_0x50bca8['message']));});});},'Command':function(_0x32f58a){var _0x54c319=this;return new Promise(function(_0x43a252,_0x3ec3b0){if(ami[_0x5fb6('0x10')]()==![]){return _0x3ec3b0(_0x54c319[_0x5fb6('0x11')](0x1f4,[config[_0x5fb6('0x1c')]['ip'],config[_0x5fb6('0x1c')][_0x5fb6('0x12')],'ami\x20disconnected']['join']('\x20')));}_0x32f58a=_[_0x5fb6('0x14')](_0x32f58a,_0x5fb6('0x1d'));_0x32f58a['action']=_0x5fb6('0x1e');return ami[_0x5fb6('0x18')](_0x32f58a)[_0x5fb6('0x19')](function(_0x36457e){_0x43a252({'code':0xc8,'message':_0x36457e['content']});})[_0x5fb6('0x1b')](function(_0x44aebe){_0x3ec3b0(_0x54c319[_0x5fb6('0x11')](0x1f5,_0x44aebe[_0x5fb6('0x1a')]));});});},'VoiceQueues':function(_0x1b6953){return new Promise(function(_0x1c1b96,_0x4e2bff){var _0x4cbdaf=[];for(var _0x298b44 in _0x3a3b1b[_0x5fb6('0x1f')]){if(_0x3a3b1b[_0x5fb6('0x1f')][_0x5fb6('0x20')](_0x298b44)){var _0x2731a3=_0x3a3b1b[_0x5fb6('0x1f')][_0x298b44];var _0x36ac58={'id':_0x2731a3['id'],'name':_0x2731a3['name'],'strategy':_0x2731a3[_0x5fb6('0x21')],'answered':_0x2731a3[_0x5fb6('0x22')],'available':_0x2731a3[_0x5fb6('0x23')],'loggedIn':_0x2731a3['loggedIn'],'pTalking':_0x2731a3[_0x5fb6('0x24')],'sumBillable':_0x2731a3[_0x5fb6('0x25')],'sumDuration':_0x2731a3['sumDuration'],'sumHoldTime':_0x2731a3[_0x5fb6('0x26')]||0x0,'talking':_0x2731a3[_0x5fb6('0x27')],'total':_0x2731a3['total'],'type':_0x2731a3[_0x5fb6('0x28')],'unmanaged':_0x2731a3['unmanaged'],'abandoned':_0x2731a3[_0x5fb6('0x29')],'waiting':_0x2731a3['waiting'],'loggedInDb':_0x2731a3['loggedInDb']};if(_0x2731a3[_0x5fb6('0x28')]===_0x5fb6('0x2a')){_0x36ac58[_0x5fb6('0x2b')]=_0x2731a3[_0x5fb6('0x2b')];_0x36ac58[_0x5fb6('0x2c')]=_0x2731a3[_0x5fb6('0x2c')];_0x36ac58['dialOriginateCallerIdName']=_0x2731a3[_0x5fb6('0x2d')];_0x36ac58[_0x5fb6('0x2e')]=_0x2731a3[_0x5fb6('0x2e')];_0x36ac58[_0x5fb6('0x2f')]=_0x2731a3[_0x5fb6('0x2f')];_0x36ac58[_0x5fb6('0x30')]=_0x2731a3[_0x5fb6('0x30')];_0x36ac58[_0x5fb6('0x31')]=_0x2731a3[_0x5fb6('0x31')];_0x36ac58[_0x5fb6('0x32')]=_0x2731a3[_0x5fb6('0x32')];_0x36ac58['outboundAnswerCallsDay']=_0x2731a3[_0x5fb6('0x33')];_0x36ac58[_0x5fb6('0x34')]=_0x2731a3['outboundBlacklistCallsDay'];_0x36ac58[_0x5fb6('0x35')]=_0x2731a3['outboundBusyCallsDay'];_0x36ac58['outboundCongestionCallsDay']=_0x2731a3[_0x5fb6('0x36')];_0x36ac58[_0x5fb6('0x37')]=_0x2731a3[_0x5fb6('0x37')];_0x36ac58['outboundDropCallsDayCallersExit']=_0x2731a3[_0x5fb6('0x38')];_0x36ac58['outboundDropCallsDayTimeout']=_0x2731a3['outboundDropCallsDayTimeout'];_0x36ac58[_0x5fb6('0x39')]=_0x2731a3[_0x5fb6('0x39')];_0x36ac58[_0x5fb6('0x3a')]=_0x2731a3[_0x5fb6('0x3a')];_0x36ac58[_0x5fb6('0x3b')]=_0x2731a3[_0x5fb6('0x3b')];_0x36ac58[_0x5fb6('0x3c')]=_0x2731a3[_0x5fb6('0x3c')];_0x36ac58[_0x5fb6('0x3d')]=_0x2731a3[_0x5fb6('0x3d')];_0x36ac58[_0x5fb6('0x3e')]=_0x2731a3[_0x5fb6('0x3e')];_0x36ac58['predictiveIntervalAnsweredCalls']=_0x2731a3[_0x5fb6('0x3f')];_0x36ac58[_0x5fb6('0x40')]=_0x2731a3[_0x5fb6('0x40')];_0x36ac58['predictiveIntervalAvgTalktime']=_0x2731a3[_0x5fb6('0x41')];_0x36ac58['predictiveIntervalDroppedCallsCallersExit']=_0x2731a3[_0x5fb6('0x42')];_0x36ac58['predictiveIntervalDroppedCallsTimeout']=_0x2731a3[_0x5fb6('0x43')];_0x36ac58[_0x5fb6('0x44')]=_0x2731a3[_0x5fb6('0x44')];_0x36ac58[_0x5fb6('0x45')]=_0x2731a3[_0x5fb6('0x45')];_0x36ac58['predictiveIntervalHitRate']=_0x2731a3[_0x5fb6('0x46')];_0x36ac58[_0x5fb6('0x47')]=_0x2731a3[_0x5fb6('0x47')];_0x36ac58[_0x5fb6('0x48')]=_0x2731a3['predictiveIntervalPauses'];_0x36ac58[_0x5fb6('0x49')]=_0x2731a3[_0x5fb6('0x49')];_0x36ac58[_0x5fb6('0x4a')]=_0x2731a3[_0x5fb6('0x4a')];_0x36ac58[_0x5fb6('0x1a')]=_0x2731a3[_0x5fb6('0x1a')];_0x36ac58['originated']=_0x2731a3[_0x5fb6('0x4b')];_0x36ac58[_0x5fb6('0x4c')]=_0x2731a3[_0x5fb6('0x4c')];_0x36ac58[_0x5fb6('0x4d')]=_0x2731a3[_0x5fb6('0x4d')];_0x36ac58[_0x5fb6('0x4e')]=_0x2731a3[_0x5fb6('0x4e')];_0x36ac58[_0x5fb6('0x4f')]=_0x2731a3[_0x5fb6('0x4f')];_0x36ac58[_0x5fb6('0x50')]=_0x2731a3[_0x5fb6('0x50')];_0x36ac58['startProgressive']=_0x2731a3[_0x5fb6('0x51')];}if(_0x2731a3['Trunk']){_0x36ac58[_0x5fb6('0x52')]={'id':_0x2731a3[_0x5fb6('0x52')]['id'],'name':_0x2731a3['Trunk'][_0x5fb6('0x53')],'active':_0x2731a3[_0x5fb6('0x52')][_0x5fb6('0x54')],'callerid':_0x2731a3['Trunk']['callerid']};}if(_0x2731a3[_0x5fb6('0x55')]){_0x36ac58[_0x5fb6('0x55')]={'id':_0x2731a3[_0x5fb6('0x55')]['id'],'name':_0x2731a3[_0x5fb6('0x55')][_0x5fb6('0x53')]};}_0x4cbdaf[_0x5fb6('0x56')](_0x36ac58);}}_0x1c1b96({'count':_0x4cbdaf[_0x5fb6('0x57')],'rows':_0x4cbdaf});});},'UpdateVoiceQueue':function(_0x3fe007){return new Promise(function(_0x29ac9f,_0x1cd003){var _0xb32da8=_['find'](_0x3a3b1b[_0x5fb6('0x1f')],{'id':parseInt(_0x3fe007['id'])});var _0x5513dd=_['omit'](_0x3fe007,['id']);if(_0xb32da8){for(var _0x2d8b10 in _0x5513dd){if(typeof _0x5513dd[_0x2d8b10]!==_0x5fb6('0x58')&&typeof _0xb32da8[_0x2d8b10]!==_0x5fb6('0x58')){_0xb32da8[_0x2d8b10]=_0x5513dd[_0x2d8b10];}}_0x29ac9f(_0xb32da8);}else{_0x1cd003();}});},'VoiceChannels':function(_0x2a751e){return new Promise(function(_0x45b244,_0x19f7da){var _0x45ba31=_['values'](_0x3a3b1b[_0x5fb6('0x59')]);_0x45b244({'count':_0x45ba31[_0x5fb6('0x57')],'rows':_0x45ba31});});},'VoiceChannelMixMonitor':function(_0x59c923){var _0x1f5a28=this;return new Promise(function(_0x7934fd,_0x1d6188){if(ami[_0x5fb6('0x10')]()==![]){return _0x1d6188(_0x1f5a28[_0x5fb6('0x11')](0x1f4,[config[_0x5fb6('0x1c')]['ip'],config[_0x5fb6('0x1c')][_0x5fb6('0x12')],'ami\x20disconnected'][_0x5fb6('0x5a')]('\x20')));}var _0xef30cc=schema(properties['voicechannel'])[_0x5fb6('0x5b')](_0x59c923);if(_0xef30cc[_0x5fb6('0x57')]>0x0){return _0x1d6188(_0x1f5a28[_0x5fb6('0x11')](0x1f4,_[_0x5fb6('0x5c')](_0xef30cc,'message')['join'](',\x20')));}var _0xd287ab=_[_0x5fb6('0x5d')](_0x3a3b1b[_0x5fb6('0x59')],{'uniqueid':_0x59c923['uniqueid']});if(_0xd287ab&&_0xd287ab[_0x5fb6('0x5e')]){var _0x5b429d=util[_0x5fb6('0x7')]('%s.%s',_0x59c923[_0x5fb6('0x5f')]||_0x59c923[_0x5fb6('0x60')],_0x59c923[_0x5fb6('0x7')]||'wav');return ami[_0x5fb6('0x18')]({'action':_0x5fb6('0x61'),'channel':_0xd287ab[_0x5fb6('0x5e')],'file':_0x5b429d,'options':_0x5fb6('0x62')})[_0x5fb6('0x19')](function(_0x39b672){var _0x108622=_[_0x5fb6('0x5d')](_0xd287ab[_0x5fb6('0x63')],{'filename':_0x5fb6('0x64')+_0x5b429d[_0x5fb6('0x65')]()});if(_['isNil'](_0x108622)){_0xd287ab[_0x5fb6('0x63')]['push']({'filename':_0x5fb6('0x64')+_0x5b429d[_0x5fb6('0x65')](),'createdAt':moment()[_0x5fb6('0x7')](_0x5fb6('0x66')),'mixmonitorid':_0x39b672[_0x5fb6('0x67')],'status':_0x5fb6('0x68')});}else{_0x108622['mixmonitorid']=_0x39b672['mixmonitorid'];_0x108622['status']='rec';}_0x7934fd({'code':0xc8,'message':[_0x59c923[_0x5fb6('0x60')],_0x5fb6('0x69'),_0x39b672[_0x5fb6('0x67')]][_0x5fb6('0x5a')]('\x20'),'mixmonitorid':_0x39b672['mixmonitorid']});})[_0x5fb6('0x1b')](function(_0x17451b){_0x1d6188(_0x1f5a28['error'](0x1f5,[_0x59c923[_0x5fb6('0x60')],_0x17451b['message'][_0x5fb6('0x65')]()][_0x5fb6('0x5a')]('\x20')));});}else{return _0x1d6188(_0x1f5a28['error'](0x1f5,_0x5fb6('0x6a')));}});},'VoiceChannelStopMixMonitor':function(_0x43919b){var _0x1b9bd8=this;return new Promise(function(_0x4da260,_0x300225){if(ami[_0x5fb6('0x10')]()==![]){return _0x300225(_0x1b9bd8[_0x5fb6('0x11')](0x1f4,[config[_0x5fb6('0x1c')]['ip'],config[_0x5fb6('0x1c')][_0x5fb6('0x12')],_0x5fb6('0x13')]['join']('\x20')));}var _0x39ff48=schema(properties[_0x5fb6('0x6b')])[_0x5fb6('0x5b')](_0x43919b);if(_0x39ff48[_0x5fb6('0x57')]>0x0){return _0x300225(_0x1b9bd8[_0x5fb6('0x11')](0x1f4,_[_0x5fb6('0x5c')](_0x39ff48,'message')[_0x5fb6('0x5a')](',\x20')));}var _0x4e6aaf=_[_0x5fb6('0x5d')](_0x3a3b1b[_0x5fb6('0x59')],{'uniqueid':_0x43919b[_0x5fb6('0x60')]});if(_0x4e6aaf){return BPromise[_0x5fb6('0x6c')]()[_0x5fb6('0x19')](function(){if(_0x4e6aaf[_0x5fb6('0x5e')]){return ami[_0x5fb6('0x18')]({'action':_0x5fb6('0x6d'),'channel':_0x4e6aaf['channel'],'mixmonitorid':_0x43919b['mixmonitorid']})[_0x5fb6('0x1b')](function(_0x3f6762){});}})[_0x5fb6('0x19')](function(){if(_0x4e6aaf[_0x5fb6('0x6e')]){return ami['Action']({'action':'StopMixMonitor','channel':_0x4e6aaf[_0x5fb6('0x6e')],'mixmonitorid':_0x43919b['mixmonitorid']})['catch'](function(_0x3038d1){});}})[_0x5fb6('0x19')](function(_0x236d8b){var _0x186744=_[_0x5fb6('0x5d')](_0x4e6aaf['monitors'],{'mixmonitorid':_0x43919b[_0x5fb6('0x67')]});if(_0x186744){_0x186744['status']=_0x5fb6('0x6f');}})[_0x5fb6('0x19')](function(){var _0x5484e0=util[_0x5fb6('0x7')](_0x5fb6('0x70'),_0x43919b[_0x5fb6('0x5f')]||_0x43919b['uniqueid'],_0x43919b[_0x5fb6('0x7')]||_0x5fb6('0x71'));var _0x3c9a55=_['find'](_0x4e6aaf['monitors'],{'filename':'/var/spool/asterisk/monitor/'+_0x5484e0[_0x5fb6('0x65')]()});if(_0x3c9a55){_0x3c9a55[_0x5fb6('0x72')]=_0x5fb6('0x6f');}})[_0x5fb6('0x19')](function(){_0x4da260({'code':0xc8,'message':[_0x43919b[_0x5fb6('0x60')],_0x5fb6('0x73')][_0x5fb6('0x5a')]('\x20')});})['catch'](function(_0x3c4a38){_0x300225(_0x1b9bd8[_0x5fb6('0x11')](0x1f5,[_0x43919b[_0x5fb6('0x60')],_0x3c4a38[_0x5fb6('0x1a')][_0x5fb6('0x65')]()]['join']('\x20')));});}else{return _0x300225(_0x1b9bd8['error'](0x1f5,_0x5fb6('0x6a')));}});},'VoiceQueuesChannels':function(_0x547006){return new Promise(function(_0x5cda26,_0x360170){var _0x539301=_['values'](_0x3a3b1b['queueChannels']);_0x5cda26({'count':_0x539301[_0x5fb6('0x57')],'rows':_0x539301});});},'VoiceQueuesChannel':function(_0x5b95b2){var _0x11ec8a=this;return new Promise(function(_0x39e103,_0x284e09){var _0x28eecc=schema(properties[_0x5fb6('0x74')])[_0x5fb6('0x5b')](_0x5b95b2);if(_0x28eecc[_0x5fb6('0x57')]>0x0){return _0x284e09(_0x11ec8a[_0x5fb6('0x11')](0x1f4,_[_0x5fb6('0x5c')](_0x28eecc,_0x5fb6('0x1a'))[_0x5fb6('0x5a')](',\x20')));}var _0x26dc0e=_[_0x5fb6('0x5d')](_0x3a3b1b[_0x5fb6('0x75')],{'uniqueid':_0x5b95b2[_0x5fb6('0x60')]});if(_0x26dc0e){_0x39e103(_0x26dc0e);}else{return _0x284e09(_0x11ec8a[_0x5fb6('0x11')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannelHangup':function(_0x5af783){var _0x377d13=this;return new Promise(function(_0x55d588,_0x5afa87){if(ami[_0x5fb6('0x10')]()==![]){return _0x5afa87(_0x377d13[_0x5fb6('0x11')](0x1f4,[config['asterisk']['ip'],config[_0x5fb6('0x1c')][_0x5fb6('0x12')],_0x5fb6('0x13')]['join']('\x20')));}var _0x3ce1ad=schema(properties[_0x5fb6('0x76')])[_0x5fb6('0x5b')](_0x5af783);if(_0x3ce1ad[_0x5fb6('0x57')]>0x0){return _0x5afa87(_0x377d13[_0x5fb6('0x11')](0x1f4,_['map'](_0x3ce1ad,'message')['join'](',\x20')));}var _0x170358=_[_0x5fb6('0x5d')](_0x3a3b1b[_0x5fb6('0x75')],{'uniqueid':_0x5af783[_0x5fb6('0x60')]});if(_0x170358&&_0x170358[_0x5fb6('0x5e')]){return ami[_0x5fb6('0x18')]({'action':_0x5fb6('0x77'),'channel':_0x170358[_0x5fb6('0x5e')]})[_0x5fb6('0x19')](function(_0x25b4c2){_0x55d588({'code':0xc8,'message':[_0x5af783[_0x5fb6('0x60')],_0x25b4c2['message']['toLowerCase']()]['join']('\x20')});})[_0x5fb6('0x1b')](function(_0xf96e9f){_0x5afa87(_0x377d13[_0x5fb6('0x11')](0x1f5,[_0x5af783[_0x5fb6('0x60')],_0xf96e9f[_0x5fb6('0x1a')]['toLowerCase']()][_0x5fb6('0x5a')]('\x20')));});}else{return _0x5afa87(_0x377d13['error'](0x1f5,_0x5fb6('0x6a')));}});},'VoiceQueuesChannelRedirect':function(_0x1d5642){var _0x5ebaf6=this;return new Promise(function(_0x151343,_0x5a66f7){if(ami[_0x5fb6('0x10')]()==![]){return _0x5a66f7(_0x5ebaf6[_0x5fb6('0x11')](0x1f4,[config[_0x5fb6('0x1c')]['ip'],config[_0x5fb6('0x1c')]['username'],_0x5fb6('0x13')][_0x5fb6('0x5a')]('\x20')));}var _0x34a69a=schema(properties[_0x5fb6('0x78')])[_0x5fb6('0x5b')](_0x1d5642);if(_0x34a69a[_0x5fb6('0x57')]>0x0){return _0x5a66f7(_0x5ebaf6[_0x5fb6('0x11')](0x1f4,_[_0x5fb6('0x5c')](_0x34a69a,_0x5fb6('0x1a'))[_0x5fb6('0x5a')](',\x20')));}var _0x2809a2=_[_0x5fb6('0x5d')](_0x3a3b1b['queueChannels'],{'uniqueid':_0x1d5642[_0x5fb6('0x60')]});if(_0x2809a2&&_0x2809a2[_0x5fb6('0x5e')]){return ami[_0x5fb6('0x18')]({'action':_0x5fb6('0x79'),'channel':_0x2809a2[_0x5fb6('0x5e')],'exten':_0x1d5642['exten'],'context':_0x1d5642[_0x5fb6('0x7a')]||_0x2809a2['context'],'priority':0x1})['then'](function(_0x55b06e){_0x151343({'code':0xc8,'message':[_0x1d5642[_0x5fb6('0x60')],_0x55b06e[_0x5fb6('0x1a')][_0x5fb6('0x65')]()]['join']('\x20')});})[_0x5fb6('0x1b')](function(_0x5793c8){_0x5a66f7(_0x5ebaf6['error'](0x1f5,[_0x1d5642[_0x5fb6('0x60')],_0x5793c8[_0x5fb6('0x1a')][_0x5fb6('0x65')]()][_0x5fb6('0x5a')]('\x20')));});}else{return _0x5a66f7(_0x5ebaf6[_0x5fb6('0x11')](0x1f5,_0x5fb6('0x6a')));}});},'Agents':function(_0x198e9e){return new Promise(function(_0x469bfb,_0xbbeca5){var _0x24cc41=_['values'](_0x3a3b1b['agents']);_0x469bfb({'count':_0x24cc41[_0x5fb6('0x57')],'rows':_0x24cc41});});},'Telephones':function(_0x817cec){return new Promise(function(_0x1fc37b,_0x419159){var _0x15b8f3=_[_0x5fb6('0x7b')](_0x3a3b1b[_0x5fb6('0x7c')]);_0x1fc37b({'count':_0x15b8f3[_0x5fb6('0x57')],'rows':_0x15b8f3});});},'Trunks':function(_0xfc13a5){return new Promise(function(_0x2eda7e,_0x2789d0){var _0x2407d0=_[_0x5fb6('0x7b')](_0x3a3b1b[_0x5fb6('0x7d')]);_0x2eda7e({'count':_0x2407d0[_0x5fb6('0x57')],'rows':_0x2407d0});});},'OutboundChannels':function(_0x498b66){return new Promise(function(_0x4dd7af,_0x4c2682){var _0xacdd1b=_[_0x5fb6('0x7b')](_0x3a3b1b[_0x5fb6('0x7e')]);_0x4dd7af({'count':_0xacdd1b[_0x5fb6('0x57')],'rows':_0xacdd1b});});},'Outbound':function(_0x4d6017){return new Promise(function(_0x4b1f02,_0x1b4f87){_0x4b1f02(_0x3a3b1b[_0x5fb6('0x2a')]);});},'Campaigns':function(_0x4bb44e){return new Promise(function(_0xc4635a,_0x12e012){var _0x1b15ae=_[_0x5fb6('0x7b')](_0x3a3b1b[_0x5fb6('0x7f')]);_0xc4635a({'count':_0x1b15ae[_0x5fb6('0x57')],'rows':_0x1b15ae});});},'VoiceQueuesPreview':function(_0x39e7f6){var _0x421ecf=this;return new Promise(function(_0xe1df32,_0x5057f4){_0x1fefe3[_0x5fb6('0x80')](_0x39e7f6['id'])[_0x5fb6('0x19')](function(_0x53d3c6){_0xe1df32({'code':0xc8,'message':_0x53d3c6[_0x5fb6('0x1a')]});})[_0x5fb6('0x1b')](function(_0x21591b){_0x5057f4(_0x421ecf[_0x5fb6('0x11')](0x1f4,_0x21591b[_0x5fb6('0x1a')]));});});},'EventManager':function(_0x29a18d){var _0x3181f1=this;return new Promise(function(_0x1c184c,_0x4f7c71){if(!_0x29a18d['event']){return _0x4f7c71(_0x3181f1[_0x5fb6('0x11')](0x1f4,_0x5fb6('0x81')));}ami[_0x5fb6('0x82')]('custom:'+_0x29a18d[_0x5fb6('0x83')],_0x29a18d[_0x5fb6('0x1a')]);_0x1c184c({'code':0xc8,'message':_0x29a18d});});},'FaxAccounts':function(_0x402a3c){return new Promise(function(_0x48459d,_0x1536c2){var _0x1d1416=_['values'](_0x3a3b1b['faxAccounts']);_0x48459d({'count':_0x1d1416[_0x5fb6('0x57')],'rows':_0x1d1416});});},'SendFax':function(_0x8c4c3){var _0x5a585f=this;return new Promise(function(_0x4610bb,_0x1cab91){_0x4dec8f[_0x5fb6('0x84')](_0x8c4c3)['then'](function(_0x595f06){_0x4610bb({'code':0xc8,'message':_0x595f06[_0x5fb6('0x1a')]});})[_0x5fb6('0x1b')](function(_0x3ee340){_0x1cab91(_0x5a585f[_0x5fb6('0x11')](0x1f4,_0x3ee340[_0x5fb6('0x1a')]));});});},'CheckAfterSend':function(_0x21a67a){var _0x127787=this;return new Promise(function(_0x1bed3c,_0x50513a){_0x4dec8f[_0x5fb6('0x85')](_0x21a67a)[_0x5fb6('0x19')](function(_0x401efd){_0x1bed3c({'code':0xc8,'message':_0x401efd[_0x5fb6('0x1a')]});})[_0x5fb6('0x1b')](function(_0x4582cc){_0x50513a(_0x127787['error'](0x1f4,_0x4582cc[_0x5fb6('0x1a')]));});});}};var _0x5e91c2=jayson[_0x5fb6('0x86')](_0x1b586b)[_0x5fb6('0x87')]();_0x5e91c2['on'](_0x5fb6('0x11'),function(_0x4d8c54){return _0x238914(_0x4d8c54);});_0x5e91c2[_0x5fb6('0x6')](0x232a,_0x5fb6('0x88'),function(){console['log'](_0x5fb6('0x89'),0x232a);return _0x50782b(_0x5fb6('0x8a')+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x032e=['format','user:%s','name','trigger:%s','action','toLowerCase','merge','lodash','ioredis','util','trigger','../../rpc/cmContact','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','stringify','emit','exec','data2','isNil','data5','xmd-contactid','ListId','data3','split','phone','$or','map','routeId','destcalleridnum','calleridnum','firstName','fax','createdAt','scheduledAt','updatedAt','union','resolve','then','isEmpty','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','calleridname','Unknown','destcalleridname','createContact','push','[CM][%s][%s]\x20Contact\x20created:%s','<unknown>'];(function(_0x129d27,_0x44e683){var _0x126d1b=function(_0x533275){while(--_0x533275){_0x129d27['push'](_0x129d27['shift']());}};_0x126d1b(++_0x44e683);}(_0x032e,0x124));var _0xe032=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x032e[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xe032('0x0'));var BPromise=require('bluebird');var Redis=require(_0xe032('0x1'));var util=require(_0xe032('0x2'));var config=require('../../../../config/environment');var logger=require('../../../../config/logger')(_0xe032('0x3'));var cmContactRpc=require(_0xe032('0x4'));config[_0xe032('0x5')]=_[_0xe032('0x6')](config[_0xe032('0x5')],{'host':_0xe032('0x7'),'port':0x18eb});var io=require(_0xe032('0x8'))(new Redis(config[_0xe032('0x5')]));function emit(_0x37432f,_0x1576c8,_0x3289b0,_0xd84027,_0xaf3907){logger[_0xe032('0x9')](_0xe032('0xa'),_0x37432f,_0x1576c8['id'],_0x3289b0,_0xd84027,JSON[_0xe032('0xb')](_0xaf3907));io['to'](_0x3289b0)[_0xe032('0xc')](_0xd84027,_0xaf3907);}exports[_0xe032('0xd')]=function(_0x4aec53,_0x1382e1,_0x1ce2ae,_0x13c126){var _0x42e2ba,_0x244f93;var _0x21883b={};var _0x2194fc=Number(_0x1ce2ae['data1']);var _0x646979=_0x1ce2ae[_0xe032('0xe')]?Boolean(Number(_0x1ce2ae[_0xe032('0xe')])):![];var _0x1a53ab;var _0x4aee44=![];if(!_[_0xe032('0xf')](_0x1ce2ae[_0xe032('0x10')])){if(_0x1ce2ae[_0xe032('0x10')]=='1')_0x4aee44=!![];}if(!_0x4aee44){if(_0x13c126[_0xe032('0x11')]){_0x21883b['id']=_0x13c126[_0xe032('0x11')];}}if(!_0x21883b['id']){_0x21883b[_0xe032('0x12')]=_0x2194fc;_0x1a53ab=_0x1ce2ae[_0xe032('0x13')]&&_0x1ce2ae['data3']!=='0'?_0x1ce2ae[_0xe032('0x13')][_0xe032('0x14')](','):[_0xe032('0x15')];_0x21883b[_0xe032('0x16')]=_[_0xe032('0x17')](_0x1a53ab,function(_0x208b00){var _0x4cdab3={};_0x4cdab3[_0x208b00]=_0x13c126[_0xe032('0x18')]?_0x13c126[_0xe032('0x19')]:_0x13c126[_0xe032('0x1a')];return _0x4cdab3;});}var _0x41d2a5=['id',_0xe032('0x1b'),'lastName','phone','mobile',_0xe032('0x1c'),'ListId',_0xe032('0x1d'),_0xe032('0x1e'),_0xe032('0x1f')];var _0x2aa342=_[_0xe032('0x20')](_0x41d2a5,_0x1a53ab);BPromise[_0xe032('0x21')]()[_0xe032('0x22')](cmContactRpc['getContacts']({'attributes':_0x2aa342,'where':_0x21883b}))[_0xe032('0x22')](function(_0x866c81){_0x244f93=_0x866c81;if(!_[_0xe032('0x23')](_0x244f93)){if(_0x244f93[_0xe032('0x24')]===0x1){_0x42e2ba=_0x244f93[0x0];logger[_0xe032('0x9')](_0xe032('0x25'),_0x13c126[_0xe032('0x26')],_0x1382e1['id'],_0x42e2ba['id']);}else{logger[_0xe032('0x9')]('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x13c126['uniqueid'],_0x1382e1['id'],_['map'](_0x244f93,'id')[_0xe032('0x27')](','));}return;}else{logger[_0xe032('0x9')](_0xe032('0x28'),_0x13c126[_0xe032('0x26')],_0x1382e1['id']);var _0x2bfe8f={'ListId':_0x2194fc};var _0x200671=_0x1ce2ae[_0xe032('0x29')]&&_0x1ce2ae[_0xe032('0x29')]!=='0'?_0x1ce2ae[_0xe032('0x29')]:_0xe032('0x15');if(_0x646979){logger['info'](_0xe032('0x2a'),_0x13c126[_0xe032('0x26')],_0x1382e1['id']);_0x2bfe8f[_0x200671]=_[_0xe032('0xf')](_0x13c126[_0xe032('0x18')])?_0x13c126['calleridnum']:_0x13c126['destcalleridnum'];if(_[_0xe032('0xf')](_0x13c126[_0xe032('0x18')])){_0x2bfe8f[_0xe032('0x1b')]=_0x13c126[_0xe032('0x2b')]&&_0x13c126['calleridname']!=='<unknown>'?_0x13c126['calleridname']:_0xe032('0x2c');}else{_0x2bfe8f[_0xe032('0x1b')]=_0x13c126[_0xe032('0x2d')]&&_0x13c126[_0xe032('0x2d')]!=='<unknown>'?_0x13c126[_0xe032('0x2d')]:_0xe032('0x2c');}return BPromise[_0xe032('0x21')]()[_0xe032('0x22')](cmContactRpc[_0xe032('0x2e')](_0x2bfe8f))['then'](function(_0xd90bd5){_0x42e2ba=_0xd90bd5;_0x244f93[_0xe032('0x2f')](_0xd90bd5);if(_0x42e2ba){logger[_0xe032('0x9')](_0xe032('0x30'),_0x13c126['uniqueid'],_0x1382e1['id'],_0x42e2ba['id']);}return;});}else{logger[_0xe032('0x9')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0x13c126[_0xe032('0x26')],_0x1382e1['id']);_0x2bfe8f[_0x200671]=_['isNil'](_0x13c126[_0xe032('0x18')])?_0x13c126['calleridnum']:_0x13c126[_0xe032('0x19')];if(_['isNil'](_0x13c126[_0xe032('0x18')])){_0x2bfe8f[_0xe032('0x1b')]=_0x13c126['calleridname']&&_0x13c126[_0xe032('0x2b')]!==_0xe032('0x31')?_0x13c126[_0xe032('0x2b')]:_0xe032('0x2c');}else{_0x2bfe8f['firstName']=_0x13c126[_0xe032('0x2d')]&&_0x13c126['destcalleridname']!==_0xe032('0x31')?_0x13c126[_0xe032('0x2d')]:'Unknown';}_0x42e2ba=_0x2bfe8f;_0x244f93[_0xe032('0x2f')](_0x2bfe8f);return;}}})[_0xe032('0x22')](function(){if(_0x4aec53){emit(_0x13c126['uniqueid'],_0x1382e1,util[_0xe032('0x32')](_0xe032('0x33'),_0x4aec53[_0xe032('0x34')]),util[_0xe032('0x32')](_0xe032('0x35'),_0x1ce2ae[_0xe032('0x36')][_0xe032('0x37')]()),{'evt':_[_0xe032('0x38')](_0x13c126,{'autoCreate':_0x646979}),'contact':_0x42e2ba===undefined?{}:_0x42e2ba,'contacts':_0x244f93[_0xe032('0x24')]===0x0?undefined:_0x244f93});}});};
\ No newline at end of file
+var _0x4018=['action','toLowerCase','merge','lodash','bluebird','ioredis','../../../../config/logger','trigger','redis','defaults','localhost','socket.io-emitter','info','[CM][%s][%s]','stringify','exec','data1','data2','xmd-contactid','ListId','data3','split','$or','map','routeId','destcalleridnum','calleridnum','firstName','phone','fax','scheduledAt','updatedAt','resolve','getContacts','then','isEmpty','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','calleridname','<unknown>','Unknown','destcalleridname','push','[CM][%s][%s]\x20Contact\x20created:%s','[CM][%s][%s]\x20Autocreate\x20disabled','format','user:%s','name','trigger:%s'];(function(_0x609988,_0x507944){var _0x159984=function(_0x39d9ce){while(--_0x39d9ce){_0x609988['push'](_0x609988['shift']());}};_0x159984(++_0x507944);}(_0x4018,0x1f2));var _0x8401=function(_0x28ecb2,_0x227b9e){_0x28ecb2=_0x28ecb2-0x0;var _0x3fea06=_0x4018[_0x28ecb2];return _0x3fea06;};'use strict';var _=require(_0x8401('0x0'));var BPromise=require(_0x8401('0x1'));var Redis=require(_0x8401('0x2'));var util=require('util');var config=require('../../../../config/environment');var logger=require(_0x8401('0x3'))(_0x8401('0x4'));var cmContactRpc=require('../../rpc/cmContact');config[_0x8401('0x5')]=_[_0x8401('0x6')](config[_0x8401('0x5')],{'host':_0x8401('0x7'),'port':0x18eb});var io=require(_0x8401('0x8'))(new Redis(config[_0x8401('0x5')]));function emit(_0x143cb2,_0x5c1be4,_0x54a5c5,_0x4b7d2d,_0x334a02){logger[_0x8401('0x9')](_0x8401('0xa'),_0x143cb2,_0x5c1be4['id'],_0x54a5c5,_0x4b7d2d,JSON[_0x8401('0xb')](_0x334a02));io['to'](_0x54a5c5)['emit'](_0x4b7d2d,_0x334a02);}exports[_0x8401('0xc')]=function(_0x4a9782,_0x1e5280,_0x3f388e,_0x3fa297){var _0x53b83b,_0x38c841;var _0x2ca7f0={};var _0x5f43d6=Number(_0x3f388e[_0x8401('0xd')]);var _0xe0c2d2=_0x3f388e['data2']?Boolean(Number(_0x3f388e[_0x8401('0xe')])):![];var _0x2b500f;if(_0x3fa297[_0x8401('0xf')]){_0x2ca7f0['id']=_0x3fa297[_0x8401('0xf')];}if(!_0x2ca7f0['id']){_0x2ca7f0[_0x8401('0x10')]=_0x5f43d6;_0x2b500f=_0x3f388e[_0x8401('0x11')]&&_0x3f388e[_0x8401('0x11')]!=='0'?_0x3f388e['data3'][_0x8401('0x12')](','):['phone'];_0x2ca7f0[_0x8401('0x13')]=_[_0x8401('0x14')](_0x2b500f,function(_0x5aed84){var _0x2f4077={};_0x2f4077[_0x5aed84]=_0x3fa297[_0x8401('0x15')]?_0x3fa297[_0x8401('0x16')]:_0x3fa297[_0x8401('0x17')];return _0x2f4077;});}var _0xb258d7=['id',_0x8401('0x18'),'lastName',_0x8401('0x19'),'mobile',_0x8401('0x1a'),'ListId','createdAt',_0x8401('0x1b'),_0x8401('0x1c')];var _0x1e9982=_['union'](_0xb258d7,_0x2b500f);BPromise[_0x8401('0x1d')]()['then'](cmContactRpc[_0x8401('0x1e')]({'attributes':_0x1e9982,'where':_0x2ca7f0}))[_0x8401('0x1f')](function(_0x8bb97){_0x38c841=_0x8bb97;if(!_[_0x8401('0x20')](_0x38c841)){if(_0x38c841[_0x8401('0x21')]===0x1){_0x53b83b=_0x38c841[0x0];logger[_0x8401('0x9')](_0x8401('0x22'),_0x3fa297[_0x8401('0x23')],_0x1e5280['id'],_0x53b83b['id']);}else{logger['info']('[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]',_0x3fa297[_0x8401('0x23')],_0x1e5280['id'],_[_0x8401('0x14')](_0x38c841,'id')[_0x8401('0x24')](','));}return;}else{logger[_0x8401('0x9')](_0x8401('0x25'),_0x3fa297[_0x8401('0x23')],_0x1e5280['id']);var _0x39d763={'ListId':_0x5f43d6};var _0x1019c6=_0x3f388e[_0x8401('0x26')]&&_0x3f388e['data4']!=='0'?_0x3f388e[_0x8401('0x26')]:_0x8401('0x19');if(_0xe0c2d2){logger[_0x8401('0x9')](_0x8401('0x27'),_0x3fa297[_0x8401('0x23')],_0x1e5280['id']);_0x39d763[_0x1019c6]=_[_0x8401('0x28')](_0x3fa297[_0x8401('0x15')])?_0x3fa297[_0x8401('0x17')]:_0x3fa297[_0x8401('0x16')];if(_[_0x8401('0x28')](_0x3fa297[_0x8401('0x15')])){_0x39d763[_0x8401('0x18')]=_0x3fa297['calleridname']&&_0x3fa297[_0x8401('0x29')]!==_0x8401('0x2a')?_0x3fa297[_0x8401('0x29')]:_0x8401('0x2b');}else{_0x39d763[_0x8401('0x18')]=_0x3fa297[_0x8401('0x2c')]&&_0x3fa297[_0x8401('0x2c')]!==_0x8401('0x2a')?_0x3fa297[_0x8401('0x2c')]:_0x8401('0x2b');}return BPromise['resolve']()['then'](cmContactRpc['createContact'](_0x39d763))['then'](function(_0x4cb9a3){_0x53b83b=_0x4cb9a3;_0x38c841[_0x8401('0x2d')](_0x4cb9a3);if(_0x53b83b){logger[_0x8401('0x9')](_0x8401('0x2e'),_0x3fa297[_0x8401('0x23')],_0x1e5280['id'],_0x53b83b['id']);}return;});}else{logger[_0x8401('0x9')](_0x8401('0x2f'),_0x3fa297[_0x8401('0x23')],_0x1e5280['id']);_0x39d763[_0x1019c6]=_[_0x8401('0x28')](_0x3fa297[_0x8401('0x15')])?_0x3fa297[_0x8401('0x17')]:_0x3fa297[_0x8401('0x16')];if(_[_0x8401('0x28')](_0x3fa297[_0x8401('0x15')])){_0x39d763['firstName']=_0x3fa297[_0x8401('0x29')]&&_0x3fa297[_0x8401('0x29')]!==_0x8401('0x2a')?_0x3fa297[_0x8401('0x29')]:_0x8401('0x2b');}else{_0x39d763[_0x8401('0x18')]=_0x3fa297[_0x8401('0x2c')]&&_0x3fa297['destcalleridname']!==_0x8401('0x2a')?_0x3fa297[_0x8401('0x2c')]:_0x8401('0x2b');}_0x53b83b=_0x39d763;_0x38c841[_0x8401('0x2d')](_0x39d763);return;}}})[_0x8401('0x1f')](function(){if(_0x4a9782){emit(_0x3fa297[_0x8401('0x23')],_0x1e5280,util[_0x8401('0x30')](_0x8401('0x31'),_0x4a9782[_0x8401('0x32')]),util[_0x8401('0x30')](_0x8401('0x33'),_0x3f388e[_0x8401('0x34')][_0x8401('0x35')]()),{'evt':_[_0x8401('0x36')](_0x3fa297,{'autoCreate':_0xe0c2d2}),'contact':_0x53b83b===undefined?{}:_0x53b83b,'contacts':_0x38c841[_0x8401('0x21')]===0x0?undefined:_0x38c841});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d25=['AnyConditions','some','field','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','interaction','message','event','queue','agent','membername','exports','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentconnect','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','motionChannel','undefined','voice','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','html','data2','render','template\x20not\x20found','uri','buildUri','isNil','data3','location','windowWidth','data5','800','data6','600','winApplication','winArguments','format','jscripty','user:%s','trigger:%s','name','exec','integration','routeId','urlforward','script','search','channel','AllConditions','every','checkConditions'];(function(_0x3e2053,_0x4e3625){var _0x5f4dbf=function(_0x4459bb){while(--_0x4459bb){_0x3e2053['push'](_0x3e2053['shift']());}};_0x5f4dbf(++_0x4e3625);}(_0x5d25,0x103));var _0x55d2=function(_0xd15bd9,_0x49656f){_0xd15bd9=_0xd15bd9-0x0;var _0x49f9af=_0x5d25[_0xd15bd9];return _0x49f9af;};'use strict';var util=require('util');var _=require(_0x55d2('0x0'));var url=require('url');var Mustache=require(_0x55d2('0x1'));var Redis=require(_0x55d2('0x2'));var urlforward=require(_0x55d2('0x3'));var integration=require(_0x55d2('0x4'));var cmContact=require(_0x55d2('0x5'));var script=require('./script');var config=require(_0x55d2('0x6'));var logger=require('../../../config/logger')(_0x55d2('0x7'));var ami=require(_0x55d2('0x8'));config[_0x55d2('0x9')]=_[_0x55d2('0xa')](config[_0x55d2('0x9')],{'host':_0x55d2('0xb'),'port':0x18eb});var io=require(_0x55d2('0xc'))(new Redis(config[_0x55d2('0x9')]));var operators={'equals':function(_0x4445e5,_0x21e38f){return _0x4445e5==_0x21e38f;},'not_equals':function(_0x33c6b1,_0x54e817){return _0x33c6b1!=_0x54e817;}};var barAndWebActions=[_0x55d2('0xd'),_0x55d2('0xe'),_0x55d2('0xf')];function Trigger(_0x5867d7){this[_0x55d2('0x10')]=_0x5867d7[_0x55d2('0x10')];this[_0x55d2('0x11')]=_0x5867d7['agents'];this[_0x55d2('0x12')]=_0x5867d7['voiceQueues'];this[_0x55d2('0x13')]=_0x5867d7['templates'];this[_0x55d2('0x14')]=_0x5867d7[_0x55d2('0x14')];this[_0x55d2('0x15')]=_0x5867d7['zendeskAccounts'];this['freshdeskAccounts']=_0x5867d7[_0x55d2('0x16')];this[_0x55d2('0x17')]=_0x5867d7[_0x55d2('0x17')];this[_0x55d2('0x18')]=_0x5867d7[_0x55d2('0x18')];this['zohoAccounts']=_0x5867d7[_0x55d2('0x19')];this['deskAccounts']=_0x5867d7[_0x55d2('0x1a')];this[_0x55d2('0x1b')]=_0x5867d7[_0x55d2('0x1b')];this[_0x55d2('0x1c')]=_0x5867d7[_0x55d2('0x1c')];this['dynamics365Accounts']=_0x5867d7[_0x55d2('0x1d')];this['freshsalesAccounts']=_0x5867d7[_0x55d2('0x1e')];this[_0x55d2('0x1f')]={'zendesk':this[_0x55d2('0x15')],'salesforce':this[_0x55d2('0x17')],'freshdesk':this[_0x55d2('0x16')],'sugarcrm':this[_0x55d2('0x18')],'zoho':this[_0x55d2('0x19')],'desk':this[_0x55d2('0x1a')],'vtiger':this[_0x55d2('0x1b')],'dynamics365':this[_0x55d2('0x1d')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x55d2('0x1c')]};ami['on']('custom:agentcalled',this['syncCustomEvent']['bind'](this));ami['on'](_0x55d2('0x20'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x23'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x24'),this['syncCustomEvent']['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0x55d2('0x21')]['bind'](this));ami['on'](_0x55d2('0x25'),this['syncCustomEvent']['bind'](this));ami['on'](_0x55d2('0x26'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x27'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on']('custom:agentreject',this['syncCustomEvent'][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x28'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x29'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x2a'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on']('custom:dialbegin',this[_0x55d2('0x2b')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x2c'),this[_0x55d2('0x2b')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x2d'),this['syncAgentDial']['bind'](this));ami['on'](_0x55d2('0x2e'),this['syncCustomEvent'][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x2f'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on']('custom:substatus',this['syncCustomEvent'][_0x55d2('0x22')](this));ami['on']('custom:incomingmessage',this[_0x55d2('0x21')]['bind'](this));ami['on'](_0x55d2('0x30'),this[_0x55d2('0x21')][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x31'),this['syncCustomEvent'][_0x55d2('0x22')](this));ami['on'](_0x55d2('0x32'),this[_0x55d2('0x21')]['bind'](this));}Trigger[_0x55d2('0x33')][_0x55d2('0x34')]=function(_0x34ac43,_0x222c68,_0x2c8f4d){logger[_0x55d2('0x35')](_0x34ac43,_0x222c68,JSON[_0x55d2('0x36')](_0x2c8f4d));io['to'](_0x34ac43)[_0x55d2('0x34')](_0x222c68,_0x2c8f4d);};Trigger[_0x55d2('0x33')]['syncCustomEvent']=function(_0x5af144){var _0x283a52=_['clone'](_0x5af144);if(typeof _0x283a52[_0x55d2('0x37')]===_0x55d2('0x38')){_0x283a52['motionChannel']=_0x55d2('0x39');}this[_0x55d2('0x3a')](_0x283a52);};Trigger[_0x55d2('0x33')][_0x55d2('0x2b')]=function(_0x2634bd){if(this['agents'][_0x2634bd[_0x55d2('0x3b')]]){this['syncCustomEvent'](_0x2634bd);}};Trigger[_0x55d2('0x33')][_0x55d2('0x3a')]=function(_0x2f2738){var _0x4bf190;for(var _0x9910e in this['triggers']){if(this['triggers'][_0x55d2('0x3c')](_0x9910e)){if(this[_0x55d2('0x10')][_0x9910e]['status']){_0x4bf190=this[_0x55d2('0x3d')](this[_0x55d2('0x10')][_0x9910e],_0x2f2738);if(_0x4bf190){_[_0x55d2('0x3e')](_0x2f2738,_0x2f2738[_0x55d2('0x3f')]);for(var _0x2ccdfa=0x0,_0x378f5d,_0x34b2aa,_0xa80d12;_0x2ccdfa<this[_0x55d2('0x10')][_0x9910e][_0x55d2('0x40')][_0x55d2('0x41')];_0x2ccdfa+=0x1){_0x378f5d=this[_0x55d2('0x10')][_0x9910e][_0x55d2('0x40')][_0x2ccdfa];if(this[_0x55d2('0x11')][_0x2f2738[_0x55d2('0x3b')]]){switch(_0x378f5d[_0x55d2('0x42')][_0x55d2('0x43')]()){case _0x55d2('0x44'):break;case _0x55d2('0x45'):case _0x55d2('0x46'):var _0x5d260b={};switch(barAndWebActions[_0x378f5d[_0x55d2('0x47')]]){case _0x55d2('0xd'):_0x5d260b[_0x55d2('0x48')]=_0x378f5d['data2'];_0x5d260b[_0x55d2('0x49')]=this[_0x55d2('0x13')][_0x378f5d[_0x55d2('0x4a')]]?Mustache[_0x55d2('0x4b')](this[_0x55d2('0x13')][_0x378f5d[_0x55d2('0x4a')]]['html'],_0x2f2738):_0x55d2('0x4c');break;case _0x55d2('0xe'):_0x5d260b[_0x55d2('0x4d')]=this[_0x55d2('0x4e')](_0x378f5d[_0x55d2('0x4a')],_0x2f2738,_[_0x55d2('0x4f')](_0x378f5d[_0x55d2('0x50')])?!![]:parseInt(_0x378f5d[_0x55d2('0x50')],0xa));if(_[_0x55d2('0x4f')](_0x378f5d['data4'])){_0x5d260b[_0x55d2('0x51')]='0';}else{_0x5d260b['uriLocation']=_0x378f5d['data4'];_0x5d260b[_0x55d2('0x52')]=_[_0x55d2('0x4f')](_0x378f5d[_0x55d2('0x53')])?_0x55d2('0x54'):_0x378f5d[_0x55d2('0x53')];_0x5d260b['windowHeight']=_[_0x55d2('0x4f')](_0x378f5d[_0x55d2('0x55')])?_0x55d2('0x56'):_0x378f5d['data6'];}break;case'winapp':_0x5d260b[_0x55d2('0x57')]=_0x378f5d[_0x55d2('0x4a')]?Mustache[_0x55d2('0x4b')](_0x378f5d[_0x55d2('0x4a')],_0x2f2738):'';_0x5d260b[_0x55d2('0x58')]=_0x378f5d['data3']?Mustache[_0x55d2('0x4b')](_0x378f5d[_0x55d2('0x50')],_0x2f2738):'';break;}this[_0x55d2('0x34')](util[_0x55d2('0x59')]('user:%s',this[_0x55d2('0x11')][_0x2f2738[_0x55d2('0x3b')]]['name']),util[_0x55d2('0x59')]('trigger:%s:%s',_0x378f5d[_0x55d2('0x42')][_0x55d2('0x43')](),barAndWebActions[_0x378f5d['data1']]),_[_0x55d2('0x3e')](_0x5d260b,_0x2f2738));break;case _0x55d2('0x5a'):this[_0x55d2('0x34')](util[_0x55d2('0x59')](_0x55d2('0x5b'),this[_0x55d2('0x11')][_0x2f2738['interface']]['name']),util[_0x55d2('0x59')](_0x55d2('0x5c'),_0x378f5d[_0x55d2('0x42')][_0x55d2('0x43')]()),_[_0x55d2('0x3e')]({'ProjectId':parseInt(_0x378f5d[_0x55d2('0x47')],0xa)},_0x2f2738));break;default:this[_0x55d2('0x34')](util['format'](_0x55d2('0x5b'),this[_0x55d2('0x11')][_0x2f2738[_0x55d2('0x3b')]][_0x55d2('0x5d')]),util[_0x55d2('0x59')](_0x55d2('0x5c'),_0x378f5d[_0x55d2('0x42')][_0x55d2('0x43')]()),_['merge']({},_0x378f5d,_0x2f2738));}}switch(_0x378f5d['action'][_0x55d2('0x43')]()){case _0x55d2('0x44'):cmContact[_0x55d2('0x5e')](this['agents'][_0x2f2738[_0x55d2('0x3b')]],this['triggers'][_0x9910e],_0x378f5d,_0x2f2738);break;case _0x55d2('0x5f'):integration[_0x55d2('0x5e')](_0x378f5d,_0x2f2738,this[_0x55d2('0x1f')],this[_0x55d2('0x11')][_0x2f2738[_0x55d2('0x3b')]],this[_0x55d2('0x12')][_0x2f2738['queue']],this[_0x55d2('0x14')][_0x2f2738[_0x55d2('0x60')]]);break;case _0x55d2('0x61'):urlforward[_0x55d2('0x5e')](_0x378f5d,_0x2f2738);break;case _0x55d2('0x62'):script[_0x55d2('0x5e')](_0x378f5d,_0x2f2738);break;}}}}}}};Trigger[_0x55d2('0x33')]['buildUri']=function(_0x4f2ddb,_0x7d5804,_0x5834d1){var _0x5cfde8=url['parse'](Mustache[_0x55d2('0x4b')](_0x4f2ddb,_0x7d5804),!![]);if(_0x5834d1){_[_0x55d2('0x3e')](_0x5cfde8['query'],_0x7d5804);}delete _0x5cfde8[_0x55d2('0x63')];var _0x254dd3=url['format'](_0x5cfde8);_0x254dd3=_0x254dd3['replace'](/\/\?/g,'?');return _0x254dd3;};Trigger[_0x55d2('0x33')][_0x55d2('0x3d')]=function(_0x31848f,_0x1bec72){var _0x1e6a36=!![];var _0xc8fa7f=!![];var _0xdaef53=![];if(_0x31848f[_0x55d2('0x64')]===_0x1bec72[_0x55d2('0x37')]){_0xdaef53=!![];}if(_0x31848f[_0x55d2('0x65')][_0x55d2('0x41')]){_0x1e6a36=_[_0x55d2('0x66')](_0x31848f['AllConditions'],this[_0x55d2('0x67')](_0x1bec72,_0x31848f[_0x55d2('0x64')]));}if(_0x31848f[_0x55d2('0x68')][_0x55d2('0x41')]){_0xc8fa7f=_[_0x55d2('0x69')](_0x31848f['AnyConditions'],this[_0x55d2('0x67')](_0x1bec72,_0x31848f[_0x55d2('0x64')]));}return _0xdaef53&&_0x1e6a36&&_0xc8fa7f;};Trigger[_0x55d2('0x33')][_0x55d2('0x67')]=function(_0x2e84b2,_0x4fdaed){return function(_0x41191a){switch(_0x41191a[_0x55d2('0x6a')]){case _0x55d2('0x6b'):if(_0x2e84b2['channel']===_0x4fdaed){if(_0x4fdaed===_0x55d2('0x6c')){return _0x2e84b2['ChatWebsiteId']?operators[_0x41191a[_0x55d2('0x6d')]](Number(_0x41191a[_0x55d2('0x6e')]),_0x2e84b2[_0x55d2('0x6f')]):![];}else{return _0x2e84b2[_[_0x55d2('0x70')](_0x4fdaed)+_0x55d2('0x71')]?operators[_0x41191a[_0x55d2('0x6d')]](Number(_0x41191a[_0x55d2('0x6e')]),_0x2e84b2[_[_0x55d2('0x70')](_0x4fdaed)+_0x55d2('0x71')]):![];}}break;case _0x55d2('0x72'):case _0x55d2('0x73'):if(_0x2e84b2[_0x55d2('0x64')]===_0x4fdaed){return _0x2e84b2[_0x55d2('0x74')]?operators[_0x41191a[_0x55d2('0x6d')]](_0x41191a[_0x55d2('0x6e')],_0x2e84b2['event']):![];}break;case _0x55d2('0x75'):return _0x2e84b2[_0x55d2('0x75')]?operators[_0x41191a[_0x55d2('0x6d')]](_0x41191a[_0x55d2('0x6e')],_0x2e84b2[_0x55d2('0x75')]):![];case _0x55d2('0x76'):return _0x2e84b2[_0x55d2('0x77')]?operators[_0x41191a['operator']](_0x41191a[_0x55d2('0x6e')],_0x2e84b2[_0x55d2('0x77')]):![];case'lastevent':return _0x2e84b2['lastevent']?operators[_0x41191a[_0x55d2('0x6d')]](_0x41191a[_0x55d2('0x6e')],_0x2e84b2['lastevent']):![];case _0x55d2('0x60'):return _0x2e84b2['routeId']?operators[_0x41191a[_0x55d2('0x6d')]](_0x41191a['value'],_0x2e84b2[_0x55d2('0x60')]):![];}return![];};};module[_0x55d2('0x78')]=Trigger;
\ No newline at end of file
+var _0x13e4=['data3','location','uriLocation','data4','windowWidth','data5','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','toLowerCase','data1','trigger:%s','integration','exec','accounts','queue','routeId','urlforward','script','parse','query','search','replace','AllConditions','checkConditions','channel','AnyConditions','field','account','chat','ChatWebsiteId','operator','value','upperFirst','interaction','message','event','agent','membername','lastevent','exports','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','salesforceAccounts','zohoAccounts','deskAccounts','vtigerAccounts','dynamics365Accounts','freshsalesAccounts','sugarcrmAccounts','servicenowAccounts','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentnosuchnumber','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','contactmanager','motionbar','browser','TemplateId','data2','html','render','buildUri','isNil'];(function(_0x382957,_0x486708){var _0x598964=function(_0xc8e15d){while(--_0xc8e15d){_0x382957['push'](_0x382957['shift']());}};_0x598964(++_0x486708);}(_0x13e4,0x194));var _0x413e=function(_0x5e93a3,_0x32e4bb){_0x5e93a3=_0x5e93a3-0x0;var _0x3d24df=_0x13e4[_0x5e93a3];return _0x3d24df;};'use strict';var util=require(_0x413e('0x0'));var _=require(_0x413e('0x1'));var url=require('url');var Mustache=require(_0x413e('0x2'));var Redis=require(_0x413e('0x3'));var urlforward=require(_0x413e('0x4'));var integration=require(_0x413e('0x5'));var cmContact=require(_0x413e('0x6'));var script=require(_0x413e('0x7'));var config=require(_0x413e('0x8'));var logger=require(_0x413e('0x9'))(_0x413e('0xa'));var ami=require(_0x413e('0xb'));config['redis']=_[_0x413e('0xc')](config[_0x413e('0xd')],{'host':_0x413e('0xe'),'port':0x18eb});var io=require(_0x413e('0xf'))(new Redis(config[_0x413e('0xd')]));var operators={'equals':function(_0x5ab30f,_0x348464){return _0x5ab30f==_0x348464;},'not_equals':function(_0x471588,_0x5ca0cd){return _0x471588!=_0x5ca0cd;}};var barAndWebActions=[_0x413e('0x10'),_0x413e('0x11'),_0x413e('0x12')];function Trigger(_0x456673){this[_0x413e('0x13')]=_0x456673[_0x413e('0x13')];this[_0x413e('0x14')]=_0x456673['agents'];this[_0x413e('0x15')]=_0x456673['voiceQueues'];this[_0x413e('0x16')]=_0x456673['templates'];this[_0x413e('0x17')]=_0x456673[_0x413e('0x17')];this['zendeskAccounts']=_0x456673[_0x413e('0x18')];this['freshdeskAccounts']=_0x456673['freshdeskAccounts'];this[_0x413e('0x19')]=_0x456673[_0x413e('0x19')];this['sugarcrmAccounts']=_0x456673['sugarcrmAccounts'];this[_0x413e('0x1a')]=_0x456673[_0x413e('0x1a')];this[_0x413e('0x1b')]=_0x456673[_0x413e('0x1b')];this['vtigerAccounts']=_0x456673[_0x413e('0x1c')];this['servicenowAccounts']=_0x456673['servicenowAccounts'];this[_0x413e('0x1d')]=_0x456673[_0x413e('0x1d')];this[_0x413e('0x1e')]=_0x456673[_0x413e('0x1e')];this['accounts']={'zendesk':this[_0x413e('0x18')],'salesforce':this[_0x413e('0x19')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x413e('0x1f')],'zoho':this['zohoAccounts'],'desk':this[_0x413e('0x1b')],'vtiger':this[_0x413e('0x1c')],'dynamics365':this[_0x413e('0x1d')],'freshsales':this[_0x413e('0x1e')],'servicenow':this[_0x413e('0x20')]};ami['on']('custom:agentcalled',this['syncCustomEvent'][_0x413e('0x21')](this));ami['on'](_0x413e('0x22'),this[_0x413e('0x23')]['bind'](this));ami['on'](_0x413e('0x24'),this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on']('custom:agentcomplete',this['syncCustomEvent'][_0x413e('0x21')](this));ami['on'](_0x413e('0x25'),this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on']('custom:agentnoanswer',this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on']('custom:agentbusy',this['syncCustomEvent'][_0x413e('0x21')](this));ami['on']('custom:agentcongestion',this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on']('custom:agentreject',this['syncCustomEvent'][_0x413e('0x21')](this));ami['on'](_0x413e('0x26'),this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on'](_0x413e('0x27'),this['syncCustomEvent'][_0x413e('0x21')](this));ami['on'](_0x413e('0x28'),this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on'](_0x413e('0x29'),this['syncAgentDial'][_0x413e('0x21')](this));ami['on'](_0x413e('0x2a'),this[_0x413e('0x2b')][_0x413e('0x21')](this));ami['on'](_0x413e('0x2c'),this['syncAgentDial'][_0x413e('0x21')](this));ami['on']('custom:newinteraction',this['syncCustomEvent'][_0x413e('0x21')](this));ami['on'](_0x413e('0x2d'),this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on'](_0x413e('0x2e'),this[_0x413e('0x23')][_0x413e('0x21')](this));ami['on'](_0x413e('0x2f'),this['syncCustomEvent'][_0x413e('0x21')](this));ami['on'](_0x413e('0x30'),this[_0x413e('0x23')]['bind'](this));ami['on'](_0x413e('0x31'),this[_0x413e('0x23')][_0x413e('0x21')](this));}Trigger[_0x413e('0x32')][_0x413e('0x33')]=function(_0x5b84c9,_0x1c1f1a,_0x5372fb){logger[_0x413e('0x34')](_0x5b84c9,_0x1c1f1a,JSON[_0x413e('0x35')](_0x5372fb));io['to'](_0x5b84c9)[_0x413e('0x33')](_0x1c1f1a,_0x5372fb);};Trigger[_0x413e('0x32')][_0x413e('0x23')]=function(_0x409e73){var _0x551263=_['clone'](_0x409e73);this[_0x413e('0x36')](_0x551263);};Trigger[_0x413e('0x32')][_0x413e('0x2b')]=function(_0x5b1492){if(this[_0x413e('0x14')][_0x5b1492[_0x413e('0x37')]]){this[_0x413e('0x23')](_0x5b1492);}};Trigger[_0x413e('0x32')]['checkTriggers']=function(_0x56d704){var _0x438578;for(var _0x4ac952 in this[_0x413e('0x13')]){if(this[_0x413e('0x13')][_0x413e('0x38')](_0x4ac952)){if(this[_0x413e('0x13')][_0x4ac952]['status']){_0x438578=this[_0x413e('0x39')](this[_0x413e('0x13')][_0x4ac952],_0x56d704);if(_0x438578){_[_0x413e('0x3a')](_0x56d704,_0x56d704[_0x413e('0x3b')]);for(var _0x1208d1=0x0,_0x57e976,_0x14308c,_0x318ecd;_0x1208d1<this['triggers'][_0x4ac952][_0x413e('0x3c')][_0x413e('0x3d')];_0x1208d1+=0x1){_0x57e976=this['triggers'][_0x4ac952][_0x413e('0x3c')][_0x1208d1];if(this[_0x413e('0x14')][_0x56d704[_0x413e('0x37')]]){switch(_0x57e976[_0x413e('0x3e')]['toLowerCase']()){case _0x413e('0x3f'):break;case _0x413e('0x40'):case _0x413e('0x41'):var _0x3fb147={};switch(barAndWebActions[_0x57e976['data1']]){case _0x413e('0x10'):_0x3fb147[_0x413e('0x42')]=_0x57e976[_0x413e('0x43')];_0x3fb147[_0x413e('0x44')]=this['templates'][_0x57e976[_0x413e('0x43')]]?Mustache[_0x413e('0x45')](this[_0x413e('0x16')][_0x57e976[_0x413e('0x43')]][_0x413e('0x44')],_0x56d704):'template\x20not\x20found';break;case _0x413e('0x11'):_0x3fb147['uri']=this[_0x413e('0x46')](_0x57e976[_0x413e('0x43')],_0x56d704,_[_0x413e('0x47')](_0x57e976[_0x413e('0x48')])?!![]:parseInt(_0x57e976[_0x413e('0x48')],0xa));if(_[_0x413e('0x47')](_0x57e976['data4'])){_0x3fb147[_0x413e('0x49')]='0';}else{_0x3fb147[_0x413e('0x4a')]=_0x57e976[_0x413e('0x4b')];_0x3fb147[_0x413e('0x4c')]=_['isNil'](_0x57e976[_0x413e('0x4d')])?'800':_0x57e976[_0x413e('0x4d')];_0x3fb147[_0x413e('0x4e')]=_[_0x413e('0x47')](_0x57e976[_0x413e('0x4f')])?_0x413e('0x50'):_0x57e976['data6'];}break;case _0x413e('0x12'):_0x3fb147[_0x413e('0x51')]=_0x57e976[_0x413e('0x43')]?Mustache[_0x413e('0x45')](_0x57e976[_0x413e('0x43')],_0x56d704):'';_0x3fb147[_0x413e('0x52')]=_0x57e976['data3']?Mustache['render'](_0x57e976[_0x413e('0x48')],_0x56d704):'';break;}this[_0x413e('0x33')](util[_0x413e('0x53')](_0x413e('0x54'),this[_0x413e('0x14')][_0x56d704[_0x413e('0x37')]][_0x413e('0x55')]),util[_0x413e('0x53')](_0x413e('0x56'),_0x57e976[_0x413e('0x3e')][_0x413e('0x57')](),barAndWebActions[_0x57e976[_0x413e('0x58')]]),_['merge'](_0x3fb147,_0x56d704));break;case'jscripty':this[_0x413e('0x33')](util[_0x413e('0x53')](_0x413e('0x54'),this[_0x413e('0x14')][_0x56d704['interface']]['name']),util[_0x413e('0x53')](_0x413e('0x59'),_0x57e976['action'][_0x413e('0x57')]()),_['merge']({'ProjectId':parseInt(_0x57e976[_0x413e('0x58')],0xa)},_0x56d704));break;default:this[_0x413e('0x33')](util[_0x413e('0x53')](_0x413e('0x54'),this[_0x413e('0x14')][_0x56d704[_0x413e('0x37')]]['name']),util[_0x413e('0x53')](_0x413e('0x59'),_0x57e976['action'][_0x413e('0x57')]()),_[_0x413e('0x3a')]({},_0x57e976,_0x56d704));}}switch(_0x57e976['action']['toLowerCase']()){case _0x413e('0x3f'):cmContact['exec'](this[_0x413e('0x14')][_0x56d704['interface']],this['triggers'][_0x4ac952],_0x57e976,_0x56d704);break;case _0x413e('0x5a'):integration[_0x413e('0x5b')](_0x57e976,_0x56d704,this[_0x413e('0x5c')],this[_0x413e('0x14')][_0x56d704[_0x413e('0x37')]],this[_0x413e('0x15')][_0x56d704[_0x413e('0x5d')]],this['voiceExtensions'][_0x56d704[_0x413e('0x5e')]]);break;case _0x413e('0x5f'):urlforward['exec'](_0x57e976,_0x56d704);break;case _0x413e('0x60'):script[_0x413e('0x5b')](_0x57e976,_0x56d704);break;}}}}}}};Trigger[_0x413e('0x32')][_0x413e('0x46')]=function(_0x211adc,_0x48e71d,_0x26c3d1){var _0x365a55=url[_0x413e('0x61')](Mustache['render'](_0x211adc,_0x48e71d),!![]);if(_0x26c3d1){_[_0x413e('0x3a')](_0x365a55[_0x413e('0x62')],_0x48e71d);}delete _0x365a55[_0x413e('0x63')];var _0x2c00fd=url['format'](_0x365a55);_0x2c00fd=_0x2c00fd[_0x413e('0x64')](/\/\?/g,'?');return _0x2c00fd;};Trigger[_0x413e('0x32')]['checkTrigger']=function(_0x4d1791,_0x1f7f04){var _0x433966=!![],_0x2bcda1=!![];if(_0x4d1791[_0x413e('0x65')]['length']){_0x433966=_['every'](_0x4d1791[_0x413e('0x65')],this[_0x413e('0x66')](_0x1f7f04,_0x4d1791[_0x413e('0x67')]));}if(_0x4d1791[_0x413e('0x68')]['length']){_0x2bcda1=_['some'](_0x4d1791['AnyConditions'],this[_0x413e('0x66')](_0x1f7f04,_0x4d1791[_0x413e('0x67')]));}return _0x433966&&_0x2bcda1;};Trigger[_0x413e('0x32')][_0x413e('0x66')]=function(_0x364356,_0xae658f){return function(_0x2b9d77){switch(_0x2b9d77[_0x413e('0x69')]){case _0x413e('0x6a'):if(_0x364356[_0x413e('0x67')]===_0xae658f){if(_0xae658f===_0x413e('0x6b')){return _0x364356[_0x413e('0x6c')]?operators[_0x2b9d77[_0x413e('0x6d')]](Number(_0x2b9d77[_0x413e('0x6e')]),_0x364356['ChatWebsiteId']):![];}else{return _0x364356[_[_0x413e('0x6f')](_0xae658f)+'AccountId']?operators[_0x2b9d77[_0x413e('0x6d')]](Number(_0x2b9d77['value']),_0x364356[_[_0x413e('0x6f')](_0xae658f)+'AccountId']):![];}}break;case _0x413e('0x70'):case _0x413e('0x71'):if(_0x364356[_0x413e('0x67')]===_0xae658f){return _0x364356['event']?operators[_0x2b9d77[_0x413e('0x6d')]](_0x2b9d77[_0x413e('0x6e')],_0x364356[_0x413e('0x72')]):![];}break;case _0x413e('0x5d'):return _0x364356[_0x413e('0x5d')]?operators[_0x2b9d77['operator']](_0x2b9d77['value'],_0x364356[_0x413e('0x5d')]):![];case _0x413e('0x73'):return _0x364356[_0x413e('0x74')]?operators[_0x2b9d77[_0x413e('0x6d')]](_0x2b9d77[_0x413e('0x6e')],_0x364356[_0x413e('0x74')]):![];case'lastevent':return _0x364356['lastevent']?operators[_0x2b9d77[_0x413e('0x6d')]](_0x2b9d77[_0x413e('0x6e')],_0x364356[_0x413e('0x75')]):![];case _0x413e('0x5e'):return _0x364356[_0x413e('0x5e')]?operators[_0x2b9d77['operator']](_0x2b9d77[_0x413e('0x6e')],_0x364356[_0x413e('0x5e')]):![];}return![];};};module[_0x413e('0x76')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55ca=['debug','[HTTP]','stringify','GET','authType','basic','%s:%s','username','token','%s/token:%s','toString','base64','Searching\x20enduser\x20with\x20phone','Enduser\x20found!','_embedded','entries','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','POST','length','forEach','includes','picklist','type','nameField','customField','toLowerCase','content','string','idField','custom_fields','variable','variableName','customVariable','Variable','name','priority','merge','xCALLY','Motion','CTI','concat','Tags','getString','Descriptions','/api/v2/users/%d','user','Fields','stripTrailingSlash','serverUrl','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','calleridname','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','integrationTab','user:%s','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','error','Desk\x20account\x20type\x20not\x20recognized','outbound','recordingFormat','none','[OUTBOUND]','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent...','%s/agent/tickets/%s','catch','unmanaged','monitor_format','lastevent','toUpperCase','Recording\x20is\x20enabled!','lodash','request-promise','./util','../../../../config/environment','desk','redis','defaults','localhost','socket.io-emitter','application/json','validateEmail','info','Getting\x20agent\x20with\x20email','format','%s/users','remoteUri','then','total_entries','find','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me'];(function(_0x338e85,_0x569027){var _0x941a5c=function(_0x2ba949){while(--_0x2ba949){_0x338e85['push'](_0x338e85['shift']());}};_0x941a5c(++_0x569027);}(_0x55ca,0x126));var _0xa55c=function(_0x12097a,_0x4c9bb3){_0x12097a=_0x12097a-0x0;var _0x215617=_0x55ca[_0x12097a];return _0x215617;};'use strict';var _=require(_0xa55c('0x0'));var rp=require(_0xa55c('0x1'));var md5=require('md5');var util=require('util');var Redis=require('ioredis');var intUtil=require(_0xa55c('0x2'));var config=require(_0xa55c('0x3'));var logger=require('../../../../config/logger')(_0xa55c('0x4'));config[_0xa55c('0x5')]=_[_0xa55c('0x6')](config[_0xa55c('0x5')],{'host':_0xa55c('0x7'),'port':0x18eb});var io=require(_0xa55c('0x8'))(new Redis(config[_0xa55c('0x5')]));function emit(_0x4d0624,_0x2121fd,_0x2537f0){io['to'](_0x4d0624)['emit'](_0x2121fd,_0x2537f0);}var headers={'Content-Type':_0xa55c('0x9'),'Accept':_0xa55c('0x9')};function getUser(_0x52a3bc,_0x5849ad){if(intUtil[_0xa55c('0xa')](_0x5849ad)===!![]){logger[_0xa55c('0xb')](_0xa55c('0xc'),_0x5849ad);return request({'uri':util[_0xa55c('0xd')](_0xa55c('0xe'),_0x52a3bc[_0xa55c('0xf')])})[_0xa55c('0x10')](function(_0x70c2de){if(_0x70c2de[_0xa55c('0x11')]){return _[_0xa55c('0x12')](_0x70c2de['_embedded']['entries'],{'email':_0x5849ad});}})[_0xa55c('0x10')](function(_0x576044){if(_0x576044){logger['info']('Agent\x20found!');return _0x576044;}else{logger[_0xa55c('0xb')](_0xa55c('0x13'));return request({'uri':util[_0xa55c('0xd')](_0xa55c('0x14'),_0x52a3bc[_0xa55c('0xf')])});}});}else{logger[_0xa55c('0xb')]('Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xa55c('0xd')](_0xa55c('0x14'),_0x52a3bc[_0xa55c('0xf')])});}}function request(_0x31e10d){logger[_0xa55c('0x15')](_0xa55c('0x16'),JSON[_0xa55c('0x17')](_0x31e10d));return rp(_[_0xa55c('0x6')](_0x31e10d,{'method':_0xa55c('0x18'),'headers':headers,'json':!![]}));}function getAuth(_0x4cee3c){var _0x3d4c9e;if(_0x4cee3c[_0xa55c('0x19')]===_0xa55c('0x1a')){_0x3d4c9e=util[_0xa55c('0xd')](_0xa55c('0x1b'),_0x4cee3c[_0xa55c('0x1c')],_0x4cee3c['password']);}else if(_0x4cee3c['authType']===_0xa55c('0x1d')){_0x3d4c9e=util[_0xa55c('0xd')](_0xa55c('0x1e'),_0x4cee3c['username'],_0x4cee3c[_0xa55c('0x1d')]);}return util[_0xa55c('0xd')]('Basic\x20%s',new Buffer(_0x3d4c9e)[_0xa55c('0x1f')](_0xa55c('0x20')));}function getEndUser(_0x940f28,_0x1965f1,_0x234372){logger['info'](_0xa55c('0x21'),_0x234372);return request({'uri':util['format']('%s/customers/search',_0x940f28['remoteUri']),'qs':{'phone':_0x234372}})[_0xa55c('0x10')](function(_0x54b038){if(_0x54b038[_0xa55c('0x11')]){logger[_0xa55c('0xb')](_0xa55c('0x22'));return _0x54b038[_0xa55c('0x23')][_0xa55c('0x24')][0x0];}else{logger[_0xa55c('0xb')](_0xa55c('0x25'));return request({'uri':util[_0xa55c('0xd')](_0xa55c('0x26'),_0x940f28[_0xa55c('0xf')]),'method':_0xa55c('0x27'),'body':{'first_name':_0x1965f1,'title':_0x1965f1,'phone_numbers':[{'type':'work','value':_0x234372}]}});}});}function getTags(_0x430d55,_0x28814f){var _0x1c9f6b=[];if(_0x430d55&&_0x430d55[_0xa55c('0x28')]>0x0){_0x1c9f6b=_['map'](_0x430d55,_0x28814f);}return _0x1c9f6b;}function getCustomFields(_0x1377b0,_0x22f6b6){var _0x1b8388=[];var _0x201941={'custom_fields':{}};if(_0x1377b0[_0xa55c('0x28')]>0x0){_[_0xa55c('0x29')](_0x1377b0,function(_0x52d37f){if(_[_0xa55c('0x2a')](['string',_0xa55c('0x2b')],_0x52d37f[_0xa55c('0x2c')])&&_0x52d37f[_0xa55c('0x2d')]&&!_0x52d37f[_0xa55c('0x2e')]){_0x201941[_0x52d37f['nameField'][_0xa55c('0x2f')]()]=_0x52d37f[_0xa55c('0x30')][_0xa55c('0x1f')]();}else if(_[_0xa55c('0x2a')]([_0xa55c('0x31'),_0xa55c('0x2b')],_0x52d37f[_0xa55c('0x2c')])&&_0x52d37f[_0xa55c('0x32')]&&_0x52d37f[_0xa55c('0x2e')]){_0x201941[_0xa55c('0x33')][_0x52d37f[_0xa55c('0x32')]]=_0x52d37f['content']['toString']();}else if(_0x52d37f[_0xa55c('0x2c')]===_0xa55c('0x34')&&_0x52d37f['variableName']&&_0x52d37f[_0xa55c('0x32')]&&_0x52d37f[_0xa55c('0x2e')]){_0x22f6b6[_0x52d37f[_0xa55c('0x35')]]&&(_0x201941[_0xa55c('0x33')][_0x52d37f[_0xa55c('0x32')]]=_0x22f6b6[_0x52d37f[_0xa55c('0x35')]][_0xa55c('0x1f')]());}else if(_0x52d37f[_0xa55c('0x2c')]===_0xa55c('0x36')&&_0x52d37f['Variable']&&_0x52d37f['Variable']['name']&&_0x52d37f[_0xa55c('0x32')]&&_0x52d37f[_0xa55c('0x2e')]){_0x22f6b6[_0x52d37f[_0xa55c('0x37')]['name'][_0xa55c('0x2f')]()]&&(_0x201941['custom_fields'][_0x52d37f[_0xa55c('0x32')]]=_0x22f6b6[_0x52d37f['Variable'][_0xa55c('0x38')][_0xa55c('0x2f')]()][_0xa55c('0x1f')]());}});}if(_0x201941['priority']){_0x201941[_0xa55c('0x39')]=Number(_0x201941[_0xa55c('0x39')]);}return _0x201941;}function getTicket(_0x47e93c,_0x6f9c4c,_0x194e78,_0x4d9083,_0x529ff8){logger[_0xa55c('0xb')]('Creating\x20new\x20ticket...');var _0x1e75dc=_[_0xa55c('0x3a')]({'subject':intUtil['getString'](_0x4d9083['Subjects'],_0x529ff8,'\x20'),'type':'phone','status':'new','labels':[_0xa55c('0x3b'),_0xa55c('0x3c'),_0xa55c('0x3d')][_0xa55c('0x3e')](getTags(_0x4d9083[_0xa55c('0x3f')],'name')),'description':intUtil[_0xa55c('0x40')](_0x4d9083[_0xa55c('0x41')],_0x529ff8,'\x0a'),'_links':{'assigned_user':{'href':util[_0xa55c('0xd')](_0xa55c('0x42'),_0x6f9c4c['id']),'class':_0xa55c('0x43')}},'message':{'direction':'in','body':intUtil[_0xa55c('0x40')](_0x4d9083['Descriptions'],_0x529ff8,'\x0a')}},getCustomFields(_0x4d9083[_0xa55c('0x44')],_0x529ff8));return request({'uri':util['format']('%s/customers/%d/cases',_0x47e93c[_0xa55c('0xf')],_0x194e78['id']),'method':_0xa55c('0x27'),'body':_0x1e75dc});}exports['queue']=function(_0x2bd98b,_0x508bd3,_0x5f25f7,_0x2f8449,_0x3fea03,_0x1630ac){var _0x540337,_0x1b2708;_0x1630ac[_0xa55c('0xf')]=intUtil['stripTrailingSlash'](_0x1630ac[_0xa55c('0xf')]);_0x1630ac['serverUrl']=intUtil[_0xa55c('0x45')](_0x1630ac[_0xa55c('0x46')]);if(_0x3fea03&&_0x3fea03['monitor_format']){logger[_0xa55c('0xb')](_0xa55c('0x47'),'Recording\x20is\x20enabled!');_0x508bd3[_0xa55c('0x48')]=util[_0xa55c('0xd')](_0xa55c('0x49'),_0x1630ac['serverUrl'],_0x508bd3[_0xa55c('0x4a')],md5(_0x508bd3['uniqueid']));}else{_0x508bd3[_0xa55c('0x48')]='';}headers[_0xa55c('0x4b')]=getAuth(_0x1630ac);return getUser(_0x1630ac,_0x2f8449[_0xa55c('0x4c')])['then'](function(_0x41eab1){_0x540337=_0x41eab1;logger[_0xa55c('0xb')]('The\x20User\x20ID\x20is:',_0x540337['id']);return getEndUser(_0x1630ac,_0x508bd3[_0xa55c('0x4d')],_0x508bd3[_0xa55c('0x4e')]);})['then'](function(_0x11ff1d){_0x1b2708=_0x11ff1d;logger[_0xa55c('0xb')]('The\x20Enduser\x20ID\x20is:',_0x1b2708['id']);return getTicket(_0x1630ac,_0x540337,_0x1b2708,_0x5f25f7,_0x508bd3);})[_0xa55c('0x10')](function(_0x81cee8){if(_0x81cee8){logger[_0xa55c('0xb')](_0xa55c('0x4f'));logger['info'](_0xa55c('0x50'),_0x81cee8['id']);switch(_0x1630ac['type']){case _0xa55c('0x51'):logger[_0xa55c('0xb')](_0xa55c('0x47'),'Displaying\x20ticket\x20to\x20agent...');emit(util[_0xa55c('0xd')](_0xa55c('0x52'),_0x2f8449['name']),_0xa55c('0x53'),{'recordId':_0x81cee8['id']});break;case _0xa55c('0x54'):logger[_0xa55c('0xb')](_0xa55c('0x47'),_0xa55c('0x55'));emit(util[_0xa55c('0xd')](_0xa55c('0x52'),_0x2f8449[_0xa55c('0x38')]),_0xa55c('0x56'),{'uri':util[_0xa55c('0xd')]('https://xcally.desk.com/web/agent/case/%d',_0x81cee8['id'])});break;default:logger[_0xa55c('0x57')](_0xa55c('0x47'),_0xa55c('0x58'));}}})['catch'](function(_0x4c3095){console[_0xa55c('0x57')](_0x4c3095);logger['error'](_0xa55c('0x47'),JSON['stringify'](_0x4c3095));});};exports[_0xa55c('0x59')]=function(_0x228df4,_0x181802,_0x3f9313,_0x2ecf79,_0x5b1cf3,_0x44b7c1,_0x4607ca){var _0x4b85cc,_0x3929a6;_0x44b7c1[_0xa55c('0xf')]=intUtil[_0xa55c('0x45')](_0x44b7c1[_0xa55c('0xf')]);_0x44b7c1['serverUrl']=intUtil['stripTrailingSlash'](_0x44b7c1[_0xa55c('0x46')]);if(_0x4607ca&&_0x4607ca[_0xa55c('0x5a')]&&_0x4607ca[_0xa55c('0x5a')]!==_0xa55c('0x5b')){logger['info'](_0xa55c('0x5c'),'Recording\x20is\x20enabled!');_0x181802[_0xa55c('0x48')]=util[_0xa55c('0xd')](_0xa55c('0x49'),_0x44b7c1[_0xa55c('0x46')],_0x181802[_0xa55c('0x4a')],md5(_0x181802['uniqueid']));}headers[_0xa55c('0x4b')]=getAuth(_0x44b7c1);return getUser(_0x44b7c1,_0x2ecf79['email'])[_0xa55c('0x10')](function(_0x157afe){_0x4b85cc=_0x157afe;logger[_0xa55c('0xb')](_0xa55c('0x5d'),_0x4b85cc['id']);return getEndUser(_0x44b7c1,_0x181802[_0xa55c('0x5e')],_0x181802[_0xa55c('0x5f')]);})[_0xa55c('0x10')](function(_0x53e2be){_0x3929a6=_0x53e2be;logger[_0xa55c('0xb')](_0xa55c('0x60'),_0x3929a6['id']);return getTicket(_0x44b7c1,_0x4b85cc,_0x3929a6,_0x3f9313,_0x181802);})[_0xa55c('0x10')](function(_0x23a30e){if(_0x23a30e){logger[_0xa55c('0xb')]('Ticket\x20created!');logger[_0xa55c('0xb')](_0xa55c('0x50'),_0x23a30e['id']);switch(_0x44b7c1[_0xa55c('0x2c')]){case _0xa55c('0x51'):logger[_0xa55c('0xb')]('[QUEUE]',_0xa55c('0x61'));emit(util[_0xa55c('0xd')](_0xa55c('0x52'),_0x2ecf79[_0xa55c('0x38')]),_0xa55c('0x53'),{'recordId':_0x23a30e['id']});break;case'newTab':logger[_0xa55c('0xb')]('[QUEUE]',_0xa55c('0x55'));emit(util['format'](_0xa55c('0x52'),_0x2ecf79['name']),_0xa55c('0x56'),{'uri':util[_0xa55c('0xd')](_0xa55c('0x62'),_0x44b7c1[_0xa55c('0xf')],_0x23a30e['id'])});break;default:logger[_0xa55c('0x57')](_0xa55c('0x5c'),_0xa55c('0x58'));}}})[_0xa55c('0x63')](function(_0x14b515){logger[_0xa55c('0x57')]('[OUTBOUND]',JSON[_0xa55c('0x17')](_0x14b515));});};exports[_0xa55c('0x64')]=function(_0x4ef914,_0x18b928,_0x2b8b88,_0x3e3b4b,_0x9fe234,_0x1b8b06){var _0xa38271,_0x3cef1f;_0x1b8b06[_0xa55c('0xf')]=intUtil['stripTrailingSlash'](_0x1b8b06[_0xa55c('0xf')]);_0x1b8b06[_0xa55c('0x46')]=intUtil[_0xa55c('0x45')](_0x1b8b06[_0xa55c('0x46')]);if(_0x9fe234&&_0x9fe234[_0xa55c('0x65')]){logger[_0xa55c('0xb')]('['+_0x18b928[_0xa55c('0x66')][_0xa55c('0x67')]()+']',_0xa55c('0x68'));_0x18b928['recordingURL']=util[_0xa55c('0xd')](_0xa55c('0x49'),_0x1b8b06[_0xa55c('0x46')],_0x18b928[_0xa55c('0x4a')],md5(_0x18b928[_0xa55c('0x4a')]));}else{_0x18b928[_0xa55c('0x48')]='';}headers[_0xa55c('0x4b')]=getAuth(_0x1b8b06);return getUser(_0x1b8b06)[_0xa55c('0x10')](function(_0x2e4cf7){_0xa38271=_0x2e4cf7;logger[_0xa55c('0xb')](_0xa55c('0x5d'),_0xa38271['id']);return getEndUser(_0x1b8b06,_0x18b928['calleridname'],_0x18b928[_0xa55c('0x4e')]);})['then'](function(_0x1228a4){_0x3cef1f=_0x1228a4;logger[_0xa55c('0xb')](_0xa55c('0x60'),_0x3cef1f['id']);return getTicket(_0x1b8b06,_0xa38271,_0x3cef1f,_0x2b8b88,_0x18b928);})['then'](function(_0x4d9722){if(_0x4d9722){logger[_0xa55c('0xb')](_0xa55c('0x4f'));logger[_0xa55c('0xb')](_0xa55c('0x50'),_0x4d9722['id']);}})['catch'](function(_0x149cb9){logger[_0xa55c('0x57')]('['+_0x18b928[_0xa55c('0x66')][_0xa55c('0x67')]()+']',JSON[_0xa55c('0x17')](_0x149cb9));});};
\ No newline at end of file
+var _0x814b=['calleridname','toUpperCase','lodash','request-promise','md5','util','ioredis','./util','../../../../config/logger','desk','redis','defaults','localhost','emit','application/json','validateEmail','info','Getting\x20agent\x20with\x20email','format','%s/users','then','total_entries','find','_embedded','entries','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','remoteUri','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','debug','[HTTP]','%s:%s','authType','token','username','Basic\x20%s','toString','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','POST','work','map','length','string','nameField','toLowerCase','content','picklist','idField','customField','custom_fields','type','variableName','customVariable','Variable','name','priority','merge','getString','Subjects','xCALLY','CTI','concat','Tags','Descriptions','/api/v2/users/%d','user','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','Authorization','email','The\x20User\x20ID\x20is:','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','integrationTab','user:%s','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://xcally.desk.com/web/agent/case/%d','catch','error','stringify','recordingFormat','none','[OUTBOUND]','destcalleridnum','Displaying\x20ticket\x20to\x20agent...','unmanaged','lastevent'];(function(_0x2cb913,_0x21a95f){var _0x5c476e=function(_0x102e12){while(--_0x102e12){_0x2cb913['push'](_0x2cb913['shift']());}};_0x5c476e(++_0x21a95f);}(_0x814b,0x1a2));var _0xb814=function(_0x38ced4,_0x24263f){_0x38ced4=_0x38ced4-0x0;var _0x547c07=_0x814b[_0x38ced4];return _0x547c07;};'use strict';var _=require(_0xb814('0x0'));var rp=require(_0xb814('0x1'));var md5=require(_0xb814('0x2'));var util=require(_0xb814('0x3'));var Redis=require(_0xb814('0x4'));var intUtil=require(_0xb814('0x5'));var config=require('../../../../config/environment');var logger=require(_0xb814('0x6'))(_0xb814('0x7'));config[_0xb814('0x8')]=_[_0xb814('0x9')](config[_0xb814('0x8')],{'host':_0xb814('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xb814('0x8')]));function emit(_0x2e6272,_0x5c8539,_0x271af9){io['to'](_0x2e6272)[_0xb814('0xb')](_0x5c8539,_0x271af9);}var headers={'Content-Type':_0xb814('0xc'),'Accept':_0xb814('0xc')};function getUser(_0x1fea33,_0x21d4a5){if(intUtil[_0xb814('0xd')](_0x21d4a5)===!![]){logger[_0xb814('0xe')](_0xb814('0xf'),_0x21d4a5);return request({'uri':util[_0xb814('0x10')](_0xb814('0x11'),_0x1fea33['remoteUri'])})[_0xb814('0x12')](function(_0x56278f){if(_0x56278f[_0xb814('0x13')]){return _[_0xb814('0x14')](_0x56278f[_0xb814('0x15')][_0xb814('0x16')],{'email':_0x21d4a5});}})[_0xb814('0x12')](function(_0x3bde14){if(_0x3bde14){logger[_0xb814('0xe')](_0xb814('0x17'));return _0x3bde14;}else{logger[_0xb814('0xe')](_0xb814('0x18'));return request({'uri':util[_0xb814('0x10')](_0xb814('0x19'),_0x1fea33[_0xb814('0x1a')])});}});}else{logger[_0xb814('0xe')](_0xb814('0x1b'));return request({'uri':util[_0xb814('0x10')](_0xb814('0x19'),_0x1fea33[_0xb814('0x1a')])});}}function request(_0x125ce2){logger[_0xb814('0x1c')](_0xb814('0x1d'),JSON['stringify'](_0x125ce2));return rp(_[_0xb814('0x9')](_0x125ce2,{'method':'GET','headers':headers,'json':!![]}));}function getAuth(_0x270598){var _0xfac75b;if(_0x270598['authType']==='basic'){_0xfac75b=util['format'](_0xb814('0x1e'),_0x270598['username'],_0x270598['password']);}else if(_0x270598[_0xb814('0x1f')]===_0xb814('0x20')){_0xfac75b=util[_0xb814('0x10')]('%s/token:%s',_0x270598[_0xb814('0x21')],_0x270598['token']);}return util[_0xb814('0x10')](_0xb814('0x22'),new Buffer(_0xfac75b)[_0xb814('0x23')](_0xb814('0x24')));}function getEndUser(_0x27352e,_0x2bd039,_0x1f5d40){logger['info'](_0xb814('0x25'),_0x1f5d40);return request({'uri':util['format'](_0xb814('0x26'),_0x27352e[_0xb814('0x1a')]),'qs':{'phone':_0x1f5d40}})[_0xb814('0x12')](function(_0x208927){if(_0x208927[_0xb814('0x13')]){logger[_0xb814('0xe')](_0xb814('0x27'));return _0x208927['_embedded'][_0xb814('0x16')][0x0];}else{logger[_0xb814('0xe')](_0xb814('0x28'));return request({'uri':util[_0xb814('0x10')](_0xb814('0x29'),_0x27352e[_0xb814('0x1a')]),'method':_0xb814('0x2a'),'body':{'first_name':_0x2bd039,'title':_0x2bd039,'phone_numbers':[{'type':_0xb814('0x2b'),'value':_0x1f5d40}]}});}});}function getTags(_0x5a6291,_0x271aa8){var _0x328a08=[];if(_0x5a6291&&_0x5a6291['length']>0x0){_0x328a08=_[_0xb814('0x2c')](_0x5a6291,_0x271aa8);}return _0x328a08;}function getCustomFields(_0x37d24d,_0x530744){var _0x499f22=[];var _0x20577b={'custom_fields':{}};if(_0x37d24d[_0xb814('0x2d')]>0x0){_['forEach'](_0x37d24d,function(_0x338a28){if(_['includes']([_0xb814('0x2e'),'picklist'],_0x338a28['type'])&&_0x338a28[_0xb814('0x2f')]&&!_0x338a28['customField']){_0x20577b[_0x338a28[_0xb814('0x2f')][_0xb814('0x30')]()]=_0x338a28[_0xb814('0x31')]['toString']();}else if(_['includes']([_0xb814('0x2e'),_0xb814('0x32')],_0x338a28['type'])&&_0x338a28[_0xb814('0x33')]&&_0x338a28[_0xb814('0x34')]){_0x20577b[_0xb814('0x35')][_0x338a28[_0xb814('0x33')]]=_0x338a28[_0xb814('0x31')][_0xb814('0x23')]();}else if(_0x338a28[_0xb814('0x36')]==='variable'&&_0x338a28[_0xb814('0x37')]&&_0x338a28[_0xb814('0x33')]&&_0x338a28[_0xb814('0x34')]){_0x530744[_0x338a28[_0xb814('0x37')]]&&(_0x20577b[_0xb814('0x35')][_0x338a28['idField']]=_0x530744[_0x338a28[_0xb814('0x37')]]['toString']());}else if(_0x338a28[_0xb814('0x36')]===_0xb814('0x38')&&_0x338a28[_0xb814('0x39')]&&_0x338a28['Variable'][_0xb814('0x3a')]&&_0x338a28[_0xb814('0x33')]&&_0x338a28['customField']){_0x530744[_0x338a28[_0xb814('0x39')][_0xb814('0x3a')][_0xb814('0x30')]()]&&(_0x20577b[_0xb814('0x35')][_0x338a28[_0xb814('0x33')]]=_0x530744[_0x338a28[_0xb814('0x39')]['name'][_0xb814('0x30')]()]['toString']());}});}if(_0x20577b[_0xb814('0x3b')]){_0x20577b['priority']=Number(_0x20577b[_0xb814('0x3b')]);}return _0x20577b;}function getTicket(_0x4b9233,_0x2f8a2e,_0x26675a,_0x54a7fb,_0x4d308a){logger['info']('Creating\x20new\x20ticket...');var _0x17549e=_[_0xb814('0x3c')]({'subject':intUtil[_0xb814('0x3d')](_0x54a7fb[_0xb814('0x3e')],_0x4d308a,'\x20'),'type':'phone','status':'new','labels':[_0xb814('0x3f'),'Motion',_0xb814('0x40')][_0xb814('0x41')](getTags(_0x54a7fb[_0xb814('0x42')],_0xb814('0x3a'))),'description':intUtil[_0xb814('0x3d')](_0x54a7fb[_0xb814('0x43')],_0x4d308a,'\x0a'),'_links':{'assigned_user':{'href':util[_0xb814('0x10')](_0xb814('0x44'),_0x2f8a2e['id']),'class':_0xb814('0x45')}},'message':{'direction':'in','body':intUtil['getString'](_0x54a7fb['Descriptions'],_0x4d308a,'\x0a')}},getCustomFields(_0x54a7fb['Fields'],_0x4d308a));return request({'uri':util[_0xb814('0x10')]('%s/customers/%d/cases',_0x4b9233[_0xb814('0x1a')],_0x26675a['id']),'method':'POST','body':_0x17549e});}exports[_0xb814('0x46')]=function(_0x44ff56,_0x9ef639,_0x2e97cc,_0x4fae23,_0x30fc57,_0x15f01a){var _0x2b23c7,_0x22cf27;_0x15f01a[_0xb814('0x1a')]=intUtil[_0xb814('0x47')](_0x15f01a['remoteUri']);_0x15f01a[_0xb814('0x48')]=intUtil[_0xb814('0x47')](_0x15f01a[_0xb814('0x48')]);if(_0x30fc57&&_0x30fc57[_0xb814('0x49')]){logger[_0xb814('0xe')](_0xb814('0x4a'),_0xb814('0x4b'));_0x9ef639['recordingURL']=util['format'](_0xb814('0x4c'),_0x15f01a[_0xb814('0x48')],_0x9ef639[_0xb814('0x4d')],md5(_0x9ef639[_0xb814('0x4d')]));}else{_0x9ef639[_0xb814('0x4e')]='';}headers[_0xb814('0x4f')]=getAuth(_0x15f01a);return getUser(_0x15f01a,_0x4fae23[_0xb814('0x50')])[_0xb814('0x12')](function(_0x2eb9b6){_0x2b23c7=_0x2eb9b6;logger[_0xb814('0xe')](_0xb814('0x51'),_0x2b23c7['id']);return getEndUser(_0x15f01a,_0x9ef639['calleridname'],_0x9ef639[_0xb814('0x52')]);})[_0xb814('0x12')](function(_0x4a76bb){_0x22cf27=_0x4a76bb;logger[_0xb814('0xe')]('The\x20Enduser\x20ID\x20is:',_0x22cf27['id']);return getTicket(_0x15f01a,_0x2b23c7,_0x22cf27,_0x2e97cc,_0x9ef639);})[_0xb814('0x12')](function(_0x37866f){if(_0x37866f){logger[_0xb814('0xe')](_0xb814('0x53'));logger[_0xb814('0xe')](_0xb814('0x54'),_0x37866f['id']);switch(_0x15f01a[_0xb814('0x36')]){case _0xb814('0x55'):logger[_0xb814('0xe')](_0xb814('0x4a'),'Displaying\x20ticket\x20to\x20agent...');emit(util['format'](_0xb814('0x56'),_0x4fae23[_0xb814('0x3a')]),_0xb814('0x57'),{'recordId':_0x37866f['id']});break;case _0xb814('0x58'):logger[_0xb814('0xe')](_0xb814('0x4a'),_0xb814('0x59'));emit(util['format'](_0xb814('0x56'),_0x4fae23[_0xb814('0x3a')]),_0xb814('0x5a'),{'uri':util['format'](_0xb814('0x5b'),_0x37866f['id'])});break;default:logger['error'](_0xb814('0x4a'),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0xb814('0x5c')](function(_0x3cf8f8){console['error'](_0x3cf8f8);logger[_0xb814('0x5d')](_0xb814('0x4a'),JSON[_0xb814('0x5e')](_0x3cf8f8));});};exports['outbound']=function(_0x3da050,_0x5f0e58,_0x13bdcf,_0x158893,_0x4aed78,_0x39952d,_0x4a3f84){var _0x539be7,_0x3b9709;_0x39952d[_0xb814('0x1a')]=intUtil[_0xb814('0x47')](_0x39952d['remoteUri']);_0x39952d[_0xb814('0x48')]=intUtil['stripTrailingSlash'](_0x39952d[_0xb814('0x48')]);if(_0x4a3f84&&_0x4a3f84[_0xb814('0x5f')]&&_0x4a3f84['recordingFormat']!==_0xb814('0x60')){logger['info'](_0xb814('0x61'),_0xb814('0x4b'));_0x5f0e58[_0xb814('0x4e')]=util[_0xb814('0x10')](_0xb814('0x4c'),_0x39952d[_0xb814('0x48')],_0x5f0e58[_0xb814('0x4d')],md5(_0x5f0e58[_0xb814('0x4d')]));}headers['Authorization']=getAuth(_0x39952d);return getUser(_0x39952d,_0x158893[_0xb814('0x50')])[_0xb814('0x12')](function(_0x5d71d5){_0x539be7=_0x5d71d5;logger[_0xb814('0xe')](_0xb814('0x51'),_0x539be7['id']);return getEndUser(_0x39952d,_0x5f0e58['destcalleridname'],_0x5f0e58[_0xb814('0x62')]);})['then'](function(_0x48362c){_0x3b9709=_0x48362c;logger[_0xb814('0xe')]('The\x20Enduser\x20ID\x20is:',_0x3b9709['id']);return getTicket(_0x39952d,_0x539be7,_0x3b9709,_0x13bdcf,_0x5f0e58);})[_0xb814('0x12')](function(_0xd1cd8b){if(_0xd1cd8b){logger[_0xb814('0xe')]('Ticket\x20created!');logger[_0xb814('0xe')]('The\x20Ticket\x20ID\x20is:',_0xd1cd8b['id']);switch(_0x39952d[_0xb814('0x36')]){case _0xb814('0x55'):logger[_0xb814('0xe')](_0xb814('0x4a'),_0xb814('0x63'));emit(util[_0xb814('0x10')](_0xb814('0x56'),_0x158893[_0xb814('0x3a')]),_0xb814('0x57'),{'recordId':_0xd1cd8b['id']});break;case'newTab':logger[_0xb814('0xe')](_0xb814('0x4a'),_0xb814('0x59'));emit(util[_0xb814('0x10')](_0xb814('0x56'),_0x158893[_0xb814('0x3a')]),'trigger:browser:url',{'uri':util[_0xb814('0x10')]('%s/agent/tickets/%s',_0x39952d[_0xb814('0x1a')],_0xd1cd8b['id'])});break;default:logger[_0xb814('0x5d')](_0xb814('0x61'),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0xb814('0x5c')](function(_0x579351){logger[_0xb814('0x5d')]('[OUTBOUND]',JSON[_0xb814('0x5e')](_0x579351));});};exports[_0xb814('0x64')]=function(_0xa03cd2,_0x1b024f,_0x3377d4,_0x167d82,_0x143518,_0x4d44e3){var _0x44088d,_0x51ca51;_0x4d44e3[_0xb814('0x1a')]=intUtil[_0xb814('0x47')](_0x4d44e3[_0xb814('0x1a')]);_0x4d44e3[_0xb814('0x48')]=intUtil[_0xb814('0x47')](_0x4d44e3[_0xb814('0x48')]);if(_0x143518&&_0x143518['monitor_format']){logger[_0xb814('0xe')]('['+_0x1b024f[_0xb814('0x65')]['toUpperCase']()+']',_0xb814('0x4b'));_0x1b024f[_0xb814('0x4e')]=util[_0xb814('0x10')](_0xb814('0x4c'),_0x4d44e3[_0xb814('0x48')],_0x1b024f['uniqueid'],md5(_0x1b024f[_0xb814('0x4d')]));}else{_0x1b024f['recordingURL']='';}headers[_0xb814('0x4f')]=getAuth(_0x4d44e3);return getUser(_0x4d44e3)[_0xb814('0x12')](function(_0x2645f6){_0x44088d=_0x2645f6;logger[_0xb814('0xe')](_0xb814('0x51'),_0x44088d['id']);return getEndUser(_0x4d44e3,_0x1b024f[_0xb814('0x66')],_0x1b024f['calleridnum']);})['then'](function(_0x5d064b){_0x51ca51=_0x5d064b;logger[_0xb814('0xe')]('The\x20Enduser\x20ID\x20is:',_0x51ca51['id']);return getTicket(_0x4d44e3,_0x44088d,_0x51ca51,_0x3377d4,_0x1b024f);})[_0xb814('0x12')](function(_0x1d3954){if(_0x1d3954){logger[_0xb814('0xe')]('Ticket\x20created!');logger[_0xb814('0xe')](_0xb814('0x54'),_0x1d3954['id']);}})[_0xb814('0x5c')](function(_0x5aabbe){logger[_0xb814('0x5d')]('['+_0x1b024f[_0xb814('0x65')][_0xb814('0x67')]()+']',JSON[_0xb814('0x5e')](_0x5aabbe));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a62=['queue','headers','ticketId','format','user:%s','trigger:browser:url','remoteUri','serverUrl','stripTrailingSlash','unmanaged','%s/api/data/v9.0/','https://login.microsoftonline.com/%s/oauth2/token','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]',']\x20The\x20User\x20ID\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','name','inspect','request-promise','util','./util','md5','ioredis','../../../../config/logger','dynamics365','../../../../config/environment','socket.io-emitter','redis','POST','clientId','password','access_token','error','toUpperCase',']\x20Wrong\x20credentials!','message','then','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','4.0','value','validateEmail','email','userEmail','length','internalemailaddress','info',']\x20Agent\x20found\x20','systemuserid','userId',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','catch','toLowerCase','outbound','destcalleridnum','calleridnum','odata-entityid','substring','lastIndexOf','enduserId','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','contactid',']\x20Enduser\x20created!',']\x20Enduser\x20Created!','forEach','string','picklist','type','nameField','customField','idField','indexOf','content','ticketType','incidents','assign','getString','/contacts(','/systemusers(','Fields','phonecall','Subjects','callDirection'];(function(_0x17676d,_0x455155){var _0x29bd4a=function(_0x18b58c){while(--_0x18b58c){_0x17676d['push'](_0x17676d['shift']());}};_0x29bd4a(++_0x455155);}(_0x7a62,0x78));var _0x27a6=function(_0x2fc55d,_0x58b808){_0x2fc55d=_0x2fc55d-0x0;var _0xf2d6ae=_0x7a62[_0x2fc55d];return _0xf2d6ae;};'use strict';var _=require('lodash');var BPromise=require('bluebird');var rp=require(_0x27a6('0x0'));var util=require(_0x27a6('0x1'));var intUtil=require(_0x27a6('0x2'));var md5=require(_0x27a6('0x3'));var Redis=require(_0x27a6('0x4'));var logger=require(_0x27a6('0x5'))(_0x27a6('0x6'));var config=require(_0x27a6('0x7'));config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x27a6('0x8'))(new Redis(config[_0x27a6('0x9')]));function getAuthToken(_0x4c08d0,_0x158a70,_0x5b970a){var _0x46bd9f={'method':_0x27a6('0xa'),'uri':_0x158a70,'form':{'client_id':_0x4c08d0[_0x27a6('0xb')],'resource':_0x4c08d0['remoteUri'],'username':_0x4c08d0['username'],'password':_0x4c08d0[_0x27a6('0xc')],'grant_type':_0x27a6('0xc'),'client_secret':_0x4c08d0['clientSecret']},'json':!![]};return rp(_0x46bd9f)['then'](function(_0x322e94){return _0x322e94[_0x27a6('0xd')];})['catch'](function(_0x599dad){logger[_0x27a6('0xe')]('['+[_0x5b970a[_0x27a6('0xf')]()]+_0x27a6('0x10'));return _0x599dad[_0x27a6('0x11')];});}function getUser(_0x29a000,_0x3b8050,_0x342a6f,_0x3bc78c,_0x326c3c,_0x3098f6){return new BPromise(function(_0x5d0fb2,_0x3c7a63){return getAuthToken(_0x3b8050,_0x3bc78c,_0x3098f6)[_0x27a6('0x12')](function(_0x3d204c){var _0x37f6c9={'method':_0x27a6('0x13'),'uri':_0x326c3c+_0x27a6('0x14'),'headers':{'Authorization':_0x27a6('0x15')+_0x3d204c,'OData-Version':_0x27a6('0x16')},'json':!![]};return rp(_0x37f6c9);})[_0x27a6('0x12')](function(_0x3c762c){var _0x5b8499=_0x3c762c[_0x27a6('0x17')];var _0x15d7a3=![];var _0x10f428=null;if(!_['isNil'](_0x342a6f)){if(intUtil[_0x27a6('0x18')](_0x342a6f[_0x27a6('0x19')])){_0x29a000[_0x27a6('0x1a')]=_0x342a6f[_0x27a6('0x19')];for(_0x10f428=0x0;_0x10f428<_0x5b8499[_0x27a6('0x1b')];_0x10f428++){if(_0x5b8499[_0x10f428][_0x27a6('0x1c')]===_0x342a6f[_0x27a6('0x19')]&&!_0x5b8499[_0x10f428]['isdisabled']){_0x15d7a3=!![];logger[_0x27a6('0x1d')]('['+[_0x3098f6['toUpperCase']()]+_0x27a6('0x1e')+_0x5b8499[_0x10f428][_0x27a6('0x1f')]+'!');_0x29a000[_0x27a6('0x20')]=_0x5b8499[_0x10f428]['systemuserid'];}}}}if(!_0x15d7a3){logger[_0x27a6('0x1d')]('['+[_0x3098f6[_0x27a6('0xf')]()]+_0x27a6('0x21'));_0x29a000[_0x27a6('0x1a')]=_0x3b8050['username'];for(_0x10f428=0x0;_0x10f428<_0x5b8499[_0x27a6('0x1b')];_0x10f428++){if(_0x5b8499[_0x10f428][_0x27a6('0x1c')]===_0x3b8050['username']){_0x29a000[_0x27a6('0x20')]=_0x5b8499[_0x10f428][_0x27a6('0x1f')];}}}_0x5d0fb2(_0x29a000);})[_0x27a6('0x22')](function(_0x45b1ec){_0x3c7a63(_0x45b1ec[_0x27a6('0x11')]);});});}function createEndUser(_0x2ca1a3,_0x540ac8,_0x1efed7,_0x221005,_0x4918ae,_0x238875){return new BPromise(function(_0x5efe30,_0x3a132e){return getAuthToken(_0x540ac8,_0x1efed7,_0x238875)[_0x27a6('0x12')](function(_0x3adcc7){var _0x4b8914=_0x238875[_0x27a6('0x23')]()===_0x27a6('0x24')?_0x4918ae[_0x27a6('0x25')]:_0x4918ae[_0x27a6('0x26')];var _0x4f3a10={'method':'POST','uri':_0x221005+'contacts','body':{'telephone1':_0x4b8914,'fullname':_0x4b8914,'firstname':_0x4b8914,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':'/systemusers('+_0x2ca1a3[_0x27a6('0x20')]+')'},'headers':{'Authorization':_0x27a6('0x15')+_0x3adcc7,'OData-Version':_0x27a6('0x16')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x4f3a10);})['then'](function(_0x309613){var _0x107d5b=_0x309613['headers'][_0x27a6('0x27')];var _0x554bfd=_0x107d5b[_0x27a6('0x28')](_0x107d5b[_0x27a6('0x29')]('(')+0x1,_0x107d5b['lastIndexOf'](')'));_0x2ca1a3[_0x27a6('0x2a')]=_0x554bfd;_0x5efe30(_0x2ca1a3);})[_0x27a6('0x22')](function(_0x4071e8){_0x3a132e(_0x4071e8['message']);});});}function getEndUser(_0x1ca617,_0x373117,_0x52d886,_0x5639ec,_0x174af7,_0x30355c){return new BPromise(function(_0x38541e,_0x432588){var _0x1b317d=_0x30355c[_0x27a6('0x23')]()===_0x27a6('0x24')?_0x174af7[_0x27a6('0x25')]:_0x174af7[_0x27a6('0x26')];return getAuthToken(_0x373117,_0x52d886,_0x30355c)[_0x27a6('0x12')](function(_0x46022c){var _0x138ba2={'method':_0x27a6('0x13'),'uri':_0x5639ec+_0x27a6('0x2b')+_0x1b317d[_0x27a6('0x2c')]('+',_0x27a6('0x2d'))+'\x27','headers':{'Authorization':_0x27a6('0x15')+_0x46022c,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x138ba2);})[_0x27a6('0x12')](function(_0x14c5c3){var _0x2f7b07=null;if(_0x14c5c3){var _0x358e9c=_0x14c5c3[_0x27a6('0x17')];var _0x8ba1c4=![];for(_0x2f7b07=0x0;_0x2f7b07<_0x358e9c[_0x27a6('0x1b')];_0x2f7b07++){if(_0x358e9c[_0x2f7b07]['telephone1']===_0x1b317d){_0x8ba1c4=!![];_0x1ca617[_0x27a6('0x2a')]=_0x358e9c[_0x2f7b07][_0x27a6('0x2e')];}}if(_0x8ba1c4){_0x38541e(_0x1ca617);}else{return createEndUser(_0x1ca617,_0x373117,_0x52d886,_0x5639ec,_0x174af7,_0x30355c)['then'](function(_0xdd822e){logger[_0x27a6('0x1d')]('['+[_0x30355c[_0x27a6('0xf')]()]+_0x27a6('0x2f'),_0xdd822e[_0x27a6('0x2a')]);_0x38541e(_0xdd822e);});}}else{return createEndUser(_0x1ca617,_0x373117,_0x52d886,_0x5639ec,_0x174af7,_0x30355c)[_0x27a6('0x12')](function(_0x5bbf87){logger['info']('['+[_0x30355c[_0x27a6('0xf')]()]+_0x27a6('0x30'),_0x5bbf87['enduserId']);_0x38541e(_0x5bbf87);});}});});}function getCustomFields(_0x5652b6,_0x2805ae,_0x2a4398){var _0x391377={};if(_0x5652b6[_0x27a6('0x1b')]>0x0){_[_0x27a6('0x31')](_0x5652b6,function(_0x554a56){if(_['includes']([_0x27a6('0x32'),_0x27a6('0x33')],_0x554a56[_0x27a6('0x34')])&&_0x554a56[_0x27a6('0x35')]&&!_0x554a56[_0x27a6('0x36')]){var _0x213e18=_0x554a56[_0x27a6('0x37')][_0x27a6('0x23')]();var _0x3e3d3e=_0x213e18[_0x27a6('0x28')](0x0,_0x213e18[_0x27a6('0x38')]('_'));var _0x4b10e4=_0x213e18['substring'](_0x213e18[_0x27a6('0x38')]('_')+0x1);if(_0x3e3d3e===_0x2a4398){_0x391377[_0x4b10e4]=_0x554a56[_0x27a6('0x39')];}}});}return _0x391377;}function getTicket(_0x2b446b,_0x236f1d,_0x56f2c1,_0x3ff8bb,_0x4cad01,_0x886c07,_0xfa1e4){return new BPromise(function(_0x283b39,_0x1f1610){var _0x43bec1;return getAuthToken(_0x236f1d,_0x56f2c1,_0xfa1e4)['then'](function(_0x593363){if(_0x886c07[_0x27a6('0x3a')]==='incident'){_0x43bec1={'method':_0x27a6('0xa'),'uri':_0x3ff8bb+_0x27a6('0x3b'),'body':Object[_0x27a6('0x3c')]({},{'title':intUtil[_0x27a6('0x3d')](_0x886c07['Subjects'],_0x4cad01,'\x20'),'description':intUtil[_0x27a6('0x3d')](_0x886c07['Descriptions'],_0x4cad01,'\x0a'),'customerid_contact@odata.bind':_0x27a6('0x3e')+_0x2b446b[_0x27a6('0x2a')]+')','ownerid@odata.bind':_0x27a6('0x3f')+_0x2b446b[_0x27a6('0x20')]+')','caseorigincode':'1'},getCustomFields(_0x886c07[_0x27a6('0x40')],_0x4cad01,_0x886c07['ticketType'])),'headers':{'Authorization':_0x27a6('0x15')+_0x593363,'OData-Version':_0x27a6('0x16')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x886c07[_0x27a6('0x3a')]===_0x27a6('0x41')){_0x43bec1={'method':'POST','uri':_0x3ff8bb+'phonecalls','body':Object['assign']({},{'subject':intUtil[_0x27a6('0x3d')](_0x886c07[_0x27a6('0x42')],_0x4cad01,'\x20'),'phonenumber':String(_0x4cad01[_0x27a6('0x26')]),'description':intUtil['getString'](_0x886c07['Descriptions'],_0x4cad01,'\x0a'),'regardingobjectid_contact@odata.bind':_0x27a6('0x3e')+_0x2b446b[_0x27a6('0x2a')]+')','ownerid@odata.bind':_0x27a6('0x3f')+_0x2b446b[_0x27a6('0x20')]+')','directioncode':_0x2b446b[_0x27a6('0x43')]===_0x27a6('0x44')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0x27a6('0x3f')+_0x2b446b[_0x27a6('0x20')]+')','participationtypemask':_0x2b446b[_0x27a6('0x43')]===_0x27a6('0x44')?0x2:0x1},{'partyid_contact@odata.bind':_0x27a6('0x3e')+_0x2b446b[_0x27a6('0x2a')]+')','participationtypemask':_0x2b446b[_0x27a6('0x43')]===_0x27a6('0x44')?0x1:0x2}]},getCustomFields(_0x886c07[_0x27a6('0x40')],_0x4cad01,_0x886c07[_0x27a6('0x3a')])),'headers':{'Authorization':_0x27a6('0x15')+_0x593363,'OData-Version':_0x27a6('0x16')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x43bec1);})[_0x27a6('0x12')](function(_0x1f6c5f){var _0x3d7816=_0x1f6c5f[_0x27a6('0x45')]['odata-entityid'];var _0x119e27=_0x3d7816[_0x27a6('0x28')](_0x3d7816[_0x27a6('0x29')]('(')+0x1,_0x3d7816[_0x27a6('0x29')](')'));_0x2b446b[_0x27a6('0x46')]=_0x119e27;_0x283b39(_0x2b446b);})[_0x27a6('0x22')](function(_0x28a448){_0x1f1610(_0x28a448['message']);});});}function emit(_0x2129e2,_0x21303f,_0x5c8945,_0xb05d93){var _0x23aa8b={'uri':util[_0x27a6('0x47')]('%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s',_0x2129e2,_0x5c8945,_0xb05d93)};io['to'](util[_0x27a6('0x47')](_0x27a6('0x48'),_0x21303f))['emit'](_0x27a6('0x49'),_0x23aa8b);}exports['cs']=function(_0x4b5111,_0x166016,_0x18f79c,_0x455077,_0x28e565,_0xbc9042,_0x297614,_0xa648b9){var _0x2a8a8a={};_0xbc9042['remoteUri']=intUtil['stripTrailingSlash'](_0xbc9042[_0x27a6('0x4a')]);_0xbc9042[_0x27a6('0x4b')]=intUtil[_0x27a6('0x4c')](_0xbc9042[_0x27a6('0x4b')]);_0x2a8a8a[_0x27a6('0x43')]=_0xa648b9===_0x27a6('0x44')||_0xa648b9===_0x27a6('0x4d')?_0x27a6('0x44'):_0x27a6('0x24');var _0x2e4fd9=util[_0x27a6('0x47')](_0x27a6('0x4e'),_0xbc9042[_0x27a6('0x4a')]);var _0x2d5989=util[_0x27a6('0x47')](_0x27a6('0x4f'),_0xbc9042[_0x27a6('0x50')]);var _0x404593=util[_0x27a6('0x47')](_0x27a6('0x51'),_0xbc9042['serverUrl'],_0x166016['uniqueid'],md5(_0x166016[_0x27a6('0x52')]));if(_0x28e565&&_0x28e565['monitor_format']){logger[_0x27a6('0x1d')]('[QUEUE]',_0x27a6('0x53'));_0x166016[_0x27a6('0x54')]=_0x404593;}else if(_0x297614&&_0x297614[_0x27a6('0x55')]&&_0x297614[_0x27a6('0x55')]!==_0x27a6('0x56')){logger[_0x27a6('0x1d')](_0x27a6('0x57'),_0x27a6('0x53'));_0x166016['recordingURL']=_0x404593;}else{_0x166016[_0x27a6('0x54')]='';}return getUser(_0x2a8a8a,_0xbc9042,_0x455077,_0x2d5989,_0x2e4fd9,_0xa648b9)['then'](function(_0x133355){logger[_0x27a6('0x1d')]('['+_0xa648b9['toUpperCase']()+_0x27a6('0x58'),_0x133355[_0x27a6('0x20')]);logger['info']('['+_0xa648b9['toUpperCase']()+']\x20The\x20User\x20email\x20is:',_0x133355[_0x27a6('0x1a')]);return getEndUser(_0x133355,_0xbc9042,_0x2d5989,_0x2e4fd9,_0x166016,_0xa648b9);})[_0x27a6('0x12')](function(_0x1b1e51){logger[_0x27a6('0x1d')]('['+_0xa648b9['toUpperCase']()+_0x27a6('0x59'),_0x1b1e51[_0x27a6('0x2a')]);logger['info']('['+_0xa648b9[_0x27a6('0xf')]()+']\x20The\x20Enduser\x20phone\x20is:',_0x166016[_0x27a6('0x26')]);return getTicket(_0x1b1e51,_0xbc9042,_0x2d5989,_0x2e4fd9,_0x166016,_0x18f79c,_0xa648b9);})['then'](function(_0x49896f){logger['info'](util['format']('['+_0xa648b9[_0x27a6('0xf')]()+_0x27a6('0x5a'),_0x18f79c[_0x27a6('0x3a')],_0x49896f[_0x27a6('0x46')]));logger[_0x27a6('0x1d')](util[_0x27a6('0x47')]('['+_0xa648b9['toUpperCase']()+_0x27a6('0x5b'),_0xa648b9));if(_0xa648b9!==_0x27a6('0x4d')){logger[_0x27a6('0x1d')]('['+_0xa648b9[_0x27a6('0xf')]()+']','Displaying\x20call\x20in\x20a\x20new\x20tab...');emit(_0xbc9042[_0x27a6('0x4a')],_0x455077[_0x27a6('0x5c')],_0x18f79c[_0x27a6('0x3a')],_0x49896f[_0x27a6('0x46')]);}})[_0x27a6('0x22')](function(_0x4e0d93){logger[_0x27a6('0xe')]('['+_0xa648b9['toUpperCase']()+']\x20Error\x20running\x20Dynamics365\x20integration',util[_0x27a6('0x5d')](_0x4e0d93,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x1f88=['serverUrl','unmanaged','format','%s/api/data/v9.0/','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','[OUTBOUND]',']\x20The\x20User\x20ID\x20is:',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Dynamics365\x20integration','inspect','lodash','bluebird','request-promise','util','./util','md5','ioredis','../../../../config/logger','dynamics365','redis','defaults','localhost','socket.io-emitter','POST','password','clientSecret','then','access_token','catch','error','toUpperCase',']\x20Wrong\x20credentials!','Bearer\x20','4.0','validateEmail','email','userEmail','info','systemuserid','userId',']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','username','internalemailaddress','message','toLowerCase','outbound','destcalleridnum','headers','substring','lastIndexOf','calleridnum','GET','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','telephone1','enduserId',']\x20Enduser\x20created!',']\x20Enduser\x20Created!','length','forEach','includes','string','indexOf','content','ticketType','incident','incidents','assign','getString','Subjects','/contacts(','/systemusers(','Fields','phonecall','phonecalls','callDirection','queue','odata-entityid','ticketId','user:%s','trigger:browser:url','remoteUri','stripTrailingSlash'];(function(_0x1d0d46,_0x2b9ded){var _0x523c3c=function(_0x1ee3c0){while(--_0x1ee3c0){_0x1d0d46['push'](_0x1d0d46['shift']());}};_0x523c3c(++_0x2b9ded);}(_0x1f88,0xd9));var _0x81f8=function(_0x2fa088,_0x3e4672){_0x2fa088=_0x2fa088-0x0;var _0x966ff3=_0x1f88[_0x2fa088];return _0x966ff3;};'use strict';var _=require(_0x81f8('0x0'));var BPromise=require(_0x81f8('0x1'));var rp=require(_0x81f8('0x2'));var util=require(_0x81f8('0x3'));var intUtil=require(_0x81f8('0x4'));var md5=require(_0x81f8('0x5'));var Redis=require(_0x81f8('0x6'));var logger=require(_0x81f8('0x7'))(_0x81f8('0x8'));var config=require('../../../../config/environment');config[_0x81f8('0x9')]=_[_0x81f8('0xa')](config[_0x81f8('0x9')],{'host':_0x81f8('0xb'),'port':0x18eb});var io=require(_0x81f8('0xc'))(new Redis(config['redis']));function getAuthToken(_0x273928,_0x42c731,_0x19e15a){var _0x1c85e0={'method':_0x81f8('0xd'),'uri':_0x42c731,'form':{'client_id':_0x273928['clientId'],'resource':_0x273928['remoteUri'],'username':_0x273928['username'],'password':_0x273928[_0x81f8('0xe')],'grant_type':'password','client_secret':_0x273928[_0x81f8('0xf')]},'json':!![]};return rp(_0x1c85e0)[_0x81f8('0x10')](function(_0x36e353){return _0x36e353[_0x81f8('0x11')];})[_0x81f8('0x12')](function(_0x3a2855){logger[_0x81f8('0x13')]('['+[_0x19e15a[_0x81f8('0x14')]()]+_0x81f8('0x15'));return _0x3a2855['message'];});}function getUser(_0x5c7e4b,_0x55c049,_0x2ed0ba,_0x250b61,_0x46c257,_0x46bb5d){return new BPromise(function(_0x4187a4,_0x5bc79f){return getAuthToken(_0x55c049,_0x250b61,_0x46bb5d)[_0x81f8('0x10')](function(_0x16c4b8){var _0x330ac1={'method':'GET','uri':_0x46c257+'systemusers?$select=internalemailaddress,isdisabled,systemuserid','headers':{'Authorization':_0x81f8('0x16')+_0x16c4b8,'OData-Version':_0x81f8('0x17')},'json':!![]};return rp(_0x330ac1);})[_0x81f8('0x10')](function(_0x520b72){var _0x19e6ae=_0x520b72['value'];var _0xcacc58=![];var _0x25b499=null;if(!_['isNil'](_0x2ed0ba)){if(intUtil[_0x81f8('0x18')](_0x2ed0ba[_0x81f8('0x19')])){_0x5c7e4b[_0x81f8('0x1a')]=_0x2ed0ba['email'];for(_0x25b499=0x0;_0x25b499<_0x19e6ae['length'];_0x25b499++){if(_0x19e6ae[_0x25b499]['internalemailaddress']===_0x2ed0ba['email']&&!_0x19e6ae[_0x25b499]['isdisabled']){_0xcacc58=!![];logger[_0x81f8('0x1b')]('['+[_0x46bb5d[_0x81f8('0x14')]()]+']\x20Agent\x20found\x20'+_0x19e6ae[_0x25b499][_0x81f8('0x1c')]+'!');_0x5c7e4b[_0x81f8('0x1d')]=_0x19e6ae[_0x25b499][_0x81f8('0x1c')];}}}}if(!_0xcacc58){logger['info']('['+[_0x46bb5d[_0x81f8('0x14')]()]+_0x81f8('0x1e'));_0x5c7e4b['userEmail']=_0x55c049[_0x81f8('0x1f')];for(_0x25b499=0x0;_0x25b499<_0x19e6ae['length'];_0x25b499++){if(_0x19e6ae[_0x25b499][_0x81f8('0x20')]===_0x55c049[_0x81f8('0x1f')]){_0x5c7e4b['userId']=_0x19e6ae[_0x25b499][_0x81f8('0x1c')];}}}_0x4187a4(_0x5c7e4b);})[_0x81f8('0x12')](function(_0x34ae5d){_0x5bc79f(_0x34ae5d[_0x81f8('0x21')]);});});}function createEndUser(_0x3075d6,_0x62bb7b,_0x3a0470,_0x5a90fb,_0x4fe95f,_0x54ea97){return new BPromise(function(_0xa4c4cf,_0x1a6992){return getAuthToken(_0x62bb7b,_0x3a0470,_0x54ea97)[_0x81f8('0x10')](function(_0x4af109){var _0x323f07=_0x54ea97[_0x81f8('0x22')]()===_0x81f8('0x23')?_0x4fe95f[_0x81f8('0x24')]:_0x4fe95f['calleridnum'];var _0x560e27={'method':_0x81f8('0xd'),'uri':_0x5a90fb+'contacts','body':{'telephone1':_0x323f07,'fullname':_0x323f07,'firstname':_0x323f07,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':'/systemusers('+_0x3075d6[_0x81f8('0x1d')]+')'},'headers':{'Authorization':_0x81f8('0x16')+_0x4af109,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x560e27);})[_0x81f8('0x10')](function(_0x4fa792){var _0x2d99d6=_0x4fa792[_0x81f8('0x25')]['odata-entityid'];var _0x2a0ec2=_0x2d99d6[_0x81f8('0x26')](_0x2d99d6[_0x81f8('0x27')]('(')+0x1,_0x2d99d6['lastIndexOf'](')'));_0x3075d6['enduserId']=_0x2a0ec2;_0xa4c4cf(_0x3075d6);})[_0x81f8('0x12')](function(_0x5c365a){_0x1a6992(_0x5c365a[_0x81f8('0x21')]);});});}function getEndUser(_0x22e95e,_0x1298fe,_0x3a5aaf,_0x5497d0,_0x2fd0db,_0x222be3){return new BPromise(function(_0x3019ac,_0x19fa19){var _0x3fcd81=_0x222be3[_0x81f8('0x22')]()==='outbound'?_0x2fd0db['destcalleridnum']:_0x2fd0db[_0x81f8('0x28')];return getAuthToken(_0x1298fe,_0x3a5aaf,_0x222be3)['then'](function(_0x37d4ac){var _0x23154a={'method':_0x81f8('0x29'),'uri':_0x5497d0+_0x81f8('0x2a')+_0x3fcd81[_0x81f8('0x2b')]('+',_0x81f8('0x2c'))+'\x27','headers':{'Authorization':_0x81f8('0x16')+_0x37d4ac,'If-None-Match':null,'OData-Version':_0x81f8('0x17')},'json':!![]};return rp(_0x23154a);})['then'](function(_0x881bb8){var _0x3e54ca=null;if(_0x881bb8){var _0x139d28=_0x881bb8['value'];var _0x52700e=![];for(_0x3e54ca=0x0;_0x3e54ca<_0x139d28['length'];_0x3e54ca++){if(_0x139d28[_0x3e54ca][_0x81f8('0x2d')]===_0x3fcd81){_0x52700e=!![];_0x22e95e[_0x81f8('0x2e')]=_0x139d28[_0x3e54ca]['contactid'];}}if(_0x52700e){_0x3019ac(_0x22e95e);}else{return createEndUser(_0x22e95e,_0x1298fe,_0x3a5aaf,_0x5497d0,_0x2fd0db,_0x222be3)[_0x81f8('0x10')](function(_0x4c997e){logger[_0x81f8('0x1b')]('['+[_0x222be3[_0x81f8('0x14')]()]+_0x81f8('0x2f'),_0x4c997e[_0x81f8('0x2e')]);_0x3019ac(_0x4c997e);});}}else{return createEndUser(_0x22e95e,_0x1298fe,_0x3a5aaf,_0x5497d0,_0x2fd0db,_0x222be3)[_0x81f8('0x10')](function(_0x183489){logger[_0x81f8('0x1b')]('['+[_0x222be3['toUpperCase']()]+_0x81f8('0x30'),_0x183489['enduserId']);_0x3019ac(_0x183489);});}});});}function getCustomFields(_0x254819,_0x3669a9,_0x3f4e13){var _0x2b5221={};if(_0x254819[_0x81f8('0x31')]>0x0){_[_0x81f8('0x32')](_0x254819,function(_0x20511a){if(_[_0x81f8('0x33')]([_0x81f8('0x34'),'picklist'],_0x20511a['type'])&&_0x20511a['nameField']&&!_0x20511a['customField']){var _0x4328e3=_0x20511a['idField']['toLowerCase']();var _0x174fad=_0x4328e3[_0x81f8('0x26')](0x0,_0x4328e3[_0x81f8('0x35')]('_'));var _0x5a0306=_0x4328e3[_0x81f8('0x26')](_0x4328e3[_0x81f8('0x35')]('_')+0x1);if(_0x174fad===_0x3f4e13){_0x2b5221[_0x5a0306]=_0x20511a[_0x81f8('0x36')];}}});}return _0x2b5221;}function getTicket(_0x1c98ec,_0x4a64c0,_0x27a09,_0x56d81b,_0x2f24d8,_0x2a39f0,_0x2790c1){return new BPromise(function(_0x285e58,_0x321035){var _0x1b3100;return getAuthToken(_0x4a64c0,_0x27a09,_0x2790c1)['then'](function(_0xd4027c){if(_0x2a39f0[_0x81f8('0x37')]===_0x81f8('0x38')){_0x1b3100={'method':_0x81f8('0xd'),'uri':_0x56d81b+_0x81f8('0x39'),'body':Object[_0x81f8('0x3a')]({},{'title':intUtil[_0x81f8('0x3b')](_0x2a39f0[_0x81f8('0x3c')],_0x2f24d8,'\x20'),'description':intUtil[_0x81f8('0x3b')](_0x2a39f0['Descriptions'],_0x2f24d8,'\x0a'),'customerid_contact@odata.bind':_0x81f8('0x3d')+_0x1c98ec[_0x81f8('0x2e')]+')','ownerid@odata.bind':_0x81f8('0x3e')+_0x1c98ec[_0x81f8('0x1d')]+')','caseorigincode':'1'},getCustomFields(_0x2a39f0[_0x81f8('0x3f')],_0x2f24d8,_0x2a39f0[_0x81f8('0x37')])),'headers':{'Authorization':'Bearer\x20'+_0xd4027c,'OData-Version':_0x81f8('0x17')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x2a39f0[_0x81f8('0x37')]===_0x81f8('0x40')){_0x1b3100={'method':_0x81f8('0xd'),'uri':_0x56d81b+_0x81f8('0x41'),'body':Object[_0x81f8('0x3a')]({},{'subject':intUtil['getString'](_0x2a39f0[_0x81f8('0x3c')],_0x2f24d8,'\x20'),'phonenumber':String(_0x2f24d8[_0x81f8('0x28')]),'description':intUtil[_0x81f8('0x3b')](_0x2a39f0['Descriptions'],_0x2f24d8,'\x0a'),'regardingobjectid_contact@odata.bind':_0x81f8('0x3d')+_0x1c98ec['enduserId']+')','ownerid@odata.bind':_0x81f8('0x3e')+_0x1c98ec[_0x81f8('0x1d')]+')','directioncode':_0x1c98ec[_0x81f8('0x42')]===_0x81f8('0x43')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0x81f8('0x3e')+_0x1c98ec[_0x81f8('0x1d')]+')','participationtypemask':_0x1c98ec[_0x81f8('0x42')]===_0x81f8('0x43')?0x2:0x1},{'partyid_contact@odata.bind':'/contacts('+_0x1c98ec['enduserId']+')','participationtypemask':_0x1c98ec[_0x81f8('0x42')]===_0x81f8('0x43')?0x1:0x2}]},getCustomFields(_0x2a39f0[_0x81f8('0x3f')],_0x2f24d8,_0x2a39f0[_0x81f8('0x37')])),'headers':{'Authorization':_0x81f8('0x16')+_0xd4027c,'OData-Version':_0x81f8('0x17')},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x1b3100);})[_0x81f8('0x10')](function(_0x59c59e){var _0x20061c=_0x59c59e['headers'][_0x81f8('0x44')];var _0x1fbb5a=_0x20061c[_0x81f8('0x26')](_0x20061c[_0x81f8('0x27')]('(')+0x1,_0x20061c[_0x81f8('0x27')](')'));_0x1c98ec[_0x81f8('0x45')]=_0x1fbb5a;_0x285e58(_0x1c98ec);})[_0x81f8('0x12')](function(_0x38f884){_0x321035(_0x38f884[_0x81f8('0x21')]);});});}function emit(_0x5bc952,_0x180a27,_0x4b32eb,_0x10c66d){var _0x36b4d9={'uri':util['format']('%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s',_0x5bc952,_0x4b32eb,_0x10c66d)};io['to'](util['format'](_0x81f8('0x46'),_0x180a27))['emit'](_0x81f8('0x47'),_0x36b4d9);}exports['cs']=function(_0x1486cf,_0x5712a9,_0x2abc87,_0x1b5e72,_0x4901b1,_0x4c447b,_0x3edf23,_0x43db12){var _0x86aade={};_0x4c447b[_0x81f8('0x48')]=intUtil[_0x81f8('0x49')](_0x4c447b['remoteUri']);_0x4c447b[_0x81f8('0x4a')]=intUtil[_0x81f8('0x49')](_0x4c447b[_0x81f8('0x4a')]);_0x86aade[_0x81f8('0x42')]=_0x43db12===_0x81f8('0x43')||_0x43db12===_0x81f8('0x4b')?'queue':_0x81f8('0x23');var _0x2c5c1f=util[_0x81f8('0x4c')](_0x81f8('0x4d'),_0x4c447b[_0x81f8('0x48')]);var _0x265860=util[_0x81f8('0x4c')]('https://login.microsoftonline.com/%s/oauth2/token',_0x4c447b[_0x81f8('0x4e')]);var _0x372ba7=util[_0x81f8('0x4c')](_0x81f8('0x4f'),_0x4c447b['serverUrl'],_0x5712a9[_0x81f8('0x50')],md5(_0x5712a9[_0x81f8('0x50')]));if(_0x4901b1&&_0x4901b1[_0x81f8('0x51')]){logger[_0x81f8('0x1b')](_0x81f8('0x52'),_0x81f8('0x53'));_0x5712a9[_0x81f8('0x54')]=_0x372ba7;}else if(_0x3edf23&&_0x3edf23[_0x81f8('0x55')]&&_0x3edf23['recordingFormat']!=='none'){logger[_0x81f8('0x1b')](_0x81f8('0x56'),_0x81f8('0x53'));_0x5712a9[_0x81f8('0x54')]=_0x372ba7;}else{_0x5712a9['recordingURL']='';}return getUser(_0x86aade,_0x4c447b,_0x1b5e72,_0x265860,_0x2c5c1f,_0x43db12)['then'](function(_0x5750ba){logger[_0x81f8('0x1b')]('['+_0x43db12['toUpperCase']()+_0x81f8('0x57'),_0x5750ba['userId']);logger[_0x81f8('0x1b')]('['+_0x43db12[_0x81f8('0x14')]()+_0x81f8('0x58'),_0x5750ba[_0x81f8('0x1a')]);return getEndUser(_0x5750ba,_0x4c447b,_0x265860,_0x2c5c1f,_0x5712a9,_0x43db12);})[_0x81f8('0x10')](function(_0x2d232a){logger[_0x81f8('0x1b')]('['+_0x43db12['toUpperCase']()+_0x81f8('0x59'),_0x2d232a[_0x81f8('0x2e')]);logger[_0x81f8('0x1b')]('['+_0x43db12['toUpperCase']()+_0x81f8('0x5a'),_0x5712a9['calleridnum']);return getTicket(_0x2d232a,_0x4c447b,_0x265860,_0x2c5c1f,_0x5712a9,_0x2abc87,_0x43db12);})[_0x81f8('0x10')](function(_0x317f77){logger[_0x81f8('0x1b')](util[_0x81f8('0x4c')]('['+_0x43db12[_0x81f8('0x14')]()+_0x81f8('0x5b'),_0x2abc87['ticketType'],_0x317f77[_0x81f8('0x45')]));logger[_0x81f8('0x1b')](util[_0x81f8('0x4c')]('['+_0x43db12[_0x81f8('0x14')]()+_0x81f8('0x5c'),_0x43db12));if(_0x43db12!==_0x81f8('0x4b')){logger[_0x81f8('0x1b')]('['+_0x43db12['toUpperCase']()+']',_0x81f8('0x5d'));emit(_0x4c447b[_0x81f8('0x48')],_0x1b5e72[_0x81f8('0x5e')],_0x2abc87[_0x81f8('0x37')],_0x317f77[_0x81f8('0x45')]);}})[_0x81f8('0x12')](function(_0x197355){logger['error']('['+_0x43db12['toUpperCase']()+_0x81f8('0x5f'),util[_0x81f8('0x60')](_0x197355,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9fd=['uniqueid','Authorization','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','trigger:browser:url','%s/helpdesk/tickets/%d','outbound','recordingFormat','none','[OUTBOUND]','destcalleridnum','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','catch','error','unmanaged','lastevent','toUpperCase','lodash','request-promise','md5','util','ioredis','../../../../config/environment','../../../../config/logger','freshdesk','redis','application/json','emit','Creating\x20new\x20ticket...','merge','format','Caller\x20-\x20%s','calleridname','calleridnum','Subjects','<br>','name','Fields','custom_fields','value','%s/api/v2/tickets','remoteUri','POST','then','info','validateEmail','%s/api/v2/agents','length','Agent\x20found!','find','contact','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','Admin\x20account\x20selected.','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','toString','debug','[HTTP]','stringify','defaults','GET','forEach','includes','string','picklist','type','toLowerCase','idField','customField','content','variable','variableName','push','customVariable','Variable','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s'];(function(_0x32a52d,_0x7e159f){var _0x15a25c=function(_0x3c8498){while(--_0x3c8498){_0x32a52d['push'](_0x32a52d['shift']());}};_0x15a25c(++_0x7e159f);}(_0xc9fd,0xc9));var _0xdc9f=function(_0x396920,_0x12f4e5){_0x396920=_0x396920-0x0;var _0xd3abe=_0xc9fd[_0x396920];return _0xd3abe;};'use strict';var _=require(_0xdc9f('0x0'));var rp=require(_0xdc9f('0x1'));var md5=require(_0xdc9f('0x2'));var util=require(_0xdc9f('0x3'));var Redis=require(_0xdc9f('0x4'));var intUtil=require('./util');var config=require(_0xdc9f('0x5'));var logger=require(_0xdc9f('0x6'))(_0xdc9f('0x7'));config[_0xdc9f('0x8')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xdc9f('0x8')]));var headers={'Content-Type':_0xdc9f('0x9'),'Accept':_0xdc9f('0x9')};function emit(_0x265c71,_0x4c1bdb,_0x4b3155){io['to'](_0x265c71)[_0xdc9f('0xa')](_0x4c1bdb,_0x4b3155);}function getTicket(_0x4ead00,_0x2363a8,_0x3e8b1a,_0x3a764f,_0x311142){logger['info'](_0xdc9f('0xb'));var _0x4d31f1=_[_0xdc9f('0xc')]({'responder_id':_0x2363a8['id'],'requester_id':_0x3e8b1a['id'],'name':util[_0xdc9f('0xd')](_0xdc9f('0xe'),_0x311142[_0xdc9f('0xf')]),'phone':_0x311142[_0xdc9f('0x10')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil['getString'](_0x3a764f[_0xdc9f('0x11')],_0x311142,'\x20'),'description':intUtil['getString'](_0x3a764f['Descriptions'],_0x311142,_0xdc9f('0x12')),'tags':getTags(_0x3a764f['Tags'],_0xdc9f('0x13'))},getCustomFields(_0x3a764f[_0xdc9f('0x14')],_0x311142));_0x4d31f1[_0xdc9f('0x15')]=_['mapValues'](_['keyBy'](_0x4d31f1[_0xdc9f('0x15')],'id'),_0xdc9f('0x16'));return request({'uri':util['format'](_0xdc9f('0x17'),_0x4ead00[_0xdc9f('0x18')]),'method':_0xdc9f('0x19'),'body':_0x4d31f1})[_0xdc9f('0x1a')](function(_0x3687dd){logger[_0xdc9f('0x1b')]('Ticket\x20created!');return _0x3687dd;});}function getUser(_0x4fd5ae,_0x583c3b){if(intUtil[_0xdc9f('0x1c')](_0x583c3b)){return request({'uri':util[_0xdc9f('0xd')](_0xdc9f('0x1d'),_0x4fd5ae[_0xdc9f('0x18')]),'qs':{'email':_0x583c3b}})[_0xdc9f('0x1a')](function(_0x266265){if(_0x266265[_0xdc9f('0x1e')]){logger[_0xdc9f('0x1b')](_0xdc9f('0x1f'));return _[_0xdc9f('0x20')](_0x266265,function(_0x3122f3){return _0x3122f3[_0xdc9f('0x21')][_0xdc9f('0x22')]===_0x583c3b;});}else{logger[_0xdc9f('0x1b')](_0xdc9f('0x23'));return request({'uri':util[_0xdc9f('0xd')](_0xdc9f('0x24'),_0x4fd5ae[_0xdc9f('0x18')])})['then'](function(_0x3ba877){logger[_0xdc9f('0x1b')]('Admin\x20account\x20selected.');return _0x3ba877;});}});}else{logger[_0xdc9f('0x1b')](_0xdc9f('0x25'));return request({'uri':util['format'](_0xdc9f('0x24'),_0x4fd5ae[_0xdc9f('0x18')])})[_0xdc9f('0x1a')](function(_0x148c6a){logger[_0xdc9f('0x1b')](_0xdc9f('0x26'));return _0x148c6a;});}}function getEndUser(_0x5533fc,_0x55940e,_0xaef70c){logger[_0xdc9f('0x1b')](_0xdc9f('0x27'),_0xaef70c);return request({'uri':util[_0xdc9f('0xd')](_0xdc9f('0x28'),_0x5533fc[_0xdc9f('0x18')]),'qs':{'phone':_0xaef70c}})[_0xdc9f('0x1a')](function(_0x184b91){if(_0x184b91['length']){logger[_0xdc9f('0x1b')](_0xdc9f('0x29'));return _[_0xdc9f('0x20')](_0x184b91,{'phone':_0xaef70c});}else{logger[_0xdc9f('0x1b')](_0xdc9f('0x2a'));return request({'uri':util[_0xdc9f('0xd')](_0xdc9f('0x28'),_0x5533fc[_0xdc9f('0x18')]),'method':_0xdc9f('0x19'),'body':{'name':_0x55940e,'phone':_0xaef70c}})[_0xdc9f('0x1a')](function(_0x570120){logger[_0xdc9f('0x1b')](_0xdc9f('0x2b'));return _0x570120;});}});}function getAuth(_0x4c13ca){return util[_0xdc9f('0xd')](_0xdc9f('0x2c'),new Buffer(_0x4c13ca['apiKey']+':X')[_0xdc9f('0x2d')]('base64'));}function request(_0x2878d1){logger[_0xdc9f('0x2e')](_0xdc9f('0x2f'),JSON[_0xdc9f('0x30')](_0x2878d1));return rp(_[_0xdc9f('0x31')](_0x2878d1,{'method':_0xdc9f('0x32'),'headers':headers,'json':!![]}));}function getTags(_0x8e759c,_0x2eb4f9){var _0x2472bf=[];if(_0x8e759c&&_0x8e759c[_0xdc9f('0x1e')]>0x0){_0x2472bf=_['map'](_0x8e759c,_0x2eb4f9);}return _0x2472bf;}function getCustomFields(_0x333239,_0x3edd98){var _0x56b02c=[];var _0x3e8218={'custom_fields':[]};if(_0x333239['length']>0x0){_[_0xdc9f('0x33')](_0x333239,function(_0x48413e){if(_[_0xdc9f('0x34')]([_0xdc9f('0x35'),_0xdc9f('0x36')],_0x48413e[_0xdc9f('0x37')])&&_0x48413e['nameField']&&!_0x48413e['customField']){_0x3e8218[_0x48413e['nameField'][_0xdc9f('0x38')]()]=_0x48413e['content'][_0xdc9f('0x2d')]();}else if(_[_0xdc9f('0x34')]([_0xdc9f('0x35'),_0xdc9f('0x36')],_0x48413e[_0xdc9f('0x37')])&&_0x48413e[_0xdc9f('0x39')]&&_0x48413e[_0xdc9f('0x3a')]){_0x3e8218[_0xdc9f('0x15')]['push']({'id':_0x48413e['idField'],'value':_0x48413e[_0xdc9f('0x3b')]['toString']()});}else if(_0x48413e[_0xdc9f('0x37')]===_0xdc9f('0x3c')&&_0x48413e[_0xdc9f('0x3d')]&&_0x48413e[_0xdc9f('0x39')]&&_0x48413e[_0xdc9f('0x3a')]){_0x3edd98[_0x48413e[_0xdc9f('0x3d')]]&&_0x3e8218[_0xdc9f('0x15')][_0xdc9f('0x3e')]({'id':_0x48413e[_0xdc9f('0x39')],'value':_0x3edd98[_0x48413e[_0xdc9f('0x3d')]][_0xdc9f('0x2d')]()});}else if(_0x48413e['type']===_0xdc9f('0x3f')&&_0x48413e[_0xdc9f('0x40')]&&_0x48413e[_0xdc9f('0x40')][_0xdc9f('0x13')]&&_0x48413e[_0xdc9f('0x39')]&&_0x48413e[_0xdc9f('0x3a')]){_0x3edd98[_0x48413e[_0xdc9f('0x40')][_0xdc9f('0x13')]['toLowerCase']()]&&_0x3e8218[_0xdc9f('0x15')][_0xdc9f('0x3e')]({'id':_0x48413e[_0xdc9f('0x39')],'value':_0x3edd98[_0x48413e['Variable'][_0xdc9f('0x13')]['toLowerCase']()]['toString']()});}});}return _0x3e8218;}exports['queue']=function(_0x2bb0f9,_0x4121c6,_0x5dfa6c,_0x4a61da,_0xb66adc,_0x3ba474){var _0x26f5be,_0x5a176d;_0x3ba474[_0xdc9f('0x18')]=intUtil[_0xdc9f('0x41')](_0x3ba474[_0xdc9f('0x18')]);_0x3ba474[_0xdc9f('0x42')]=intUtil['stripTrailingSlash'](_0x3ba474['serverUrl']);if(_0xb66adc&&_0xb66adc[_0xdc9f('0x43')]){logger['info'](_0xdc9f('0x44'),_0xdc9f('0x45'));_0x4121c6[_0xdc9f('0x46')]=util[_0xdc9f('0xd')](_0xdc9f('0x47'),_0x3ba474[_0xdc9f('0x42')],_0x4121c6[_0xdc9f('0x48')],md5(_0x4121c6[_0xdc9f('0x48')]));}else{_0x4121c6[_0xdc9f('0x46')]='';}headers[_0xdc9f('0x49')]=getAuth(_0x3ba474);return getUser(_0x3ba474,_0x4a61da['email'])[_0xdc9f('0x1a')](function(_0x472636){_0x26f5be=_0x472636;logger[_0xdc9f('0x1b')](_0xdc9f('0x4a'),_0x26f5be['id']);return getEndUser(_0x3ba474,_0x4121c6[_0xdc9f('0xf')],_0x4121c6[_0xdc9f('0x10')]);})[_0xdc9f('0x1a')](function(_0x2f2ce4){_0x5a176d=_0x2f2ce4;logger['info'](_0xdc9f('0x4b'),_0x5a176d['id']);return getTicket(_0x3ba474,_0x26f5be,_0x5a176d,_0x5dfa6c,_0x4121c6);})[_0xdc9f('0x1a')](function(_0x154032){if(_0x154032&&_0x154032['id']){logger[_0xdc9f('0x1b')](_0xdc9f('0x4c'));logger[_0xdc9f('0x1b')](_0xdc9f('0x4d'),_0x154032['id']);logger[_0xdc9f('0x1b')](_0xdc9f('0x44'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xdc9f('0xd')]('user:%s',_0x4a61da[_0xdc9f('0x13')]),_0xdc9f('0x4e'),{'uri':util['format'](_0xdc9f('0x4f'),_0x3ba474[_0xdc9f('0x18')],_0x154032['id'])});}})['catch'](function(_0x24802a){logger['error'](_0xdc9f('0x44'),JSON['stringify'](_0x24802a));});};exports[_0xdc9f('0x50')]=function(_0x42df33,_0x1366d0,_0x4d579a,_0x4d3a22,_0x5a64cb,_0x327123,_0x36f667){var _0x32229c,_0xbcbb3d;_0x327123[_0xdc9f('0x18')]=intUtil[_0xdc9f('0x41')](_0x327123[_0xdc9f('0x18')]);_0x327123[_0xdc9f('0x42')]=intUtil[_0xdc9f('0x41')](_0x327123[_0xdc9f('0x42')]);if(_0x36f667&&_0x36f667[_0xdc9f('0x51')]&&_0x36f667[_0xdc9f('0x51')]!==_0xdc9f('0x52')){logger[_0xdc9f('0x1b')](_0xdc9f('0x53'),'Recording\x20is\x20enabled!');_0x1366d0[_0xdc9f('0x46')]=util['format'](_0xdc9f('0x47'),_0x327123['serverUrl'],_0x1366d0[_0xdc9f('0x48')],md5(_0x1366d0[_0xdc9f('0x48')]));}headers[_0xdc9f('0x49')]=getAuth(_0x327123);return getUser(_0x327123,_0x4d3a22[_0xdc9f('0x22')])[_0xdc9f('0x1a')](function(_0x20d19c){_0x32229c=_0x20d19c;logger[_0xdc9f('0x1b')](_0xdc9f('0x4a'),_0x32229c['id']);return getEndUser(_0x327123,_0x1366d0['destcalleridname'],_0x1366d0[_0xdc9f('0x54')]);})[_0xdc9f('0x1a')](function(_0x4c875c){_0xbcbb3d=_0x4c875c;logger[_0xdc9f('0x1b')](_0xdc9f('0x4b'),_0xbcbb3d['id']);return getTicket(_0x327123,_0x32229c,_0xbcbb3d,_0x4d579a,_0x1366d0);})[_0xdc9f('0x1a')](function(_0x5ba888){if(_0x5ba888&&_0x5ba888['id']){logger[_0xdc9f('0x1b')](_0xdc9f('0x4c'));logger[_0xdc9f('0x1b')](_0xdc9f('0x4d'),_0x5ba888['id']);logger['info'](_0xdc9f('0x53'),_0xdc9f('0x55'));emit(util[_0xdc9f('0xd')]('user:%s',_0x4d3a22['name']),_0xdc9f('0x4e'),{'uri':util[_0xdc9f('0xd')](_0xdc9f('0x4f'),_0x327123['remoteUri'],_0x5ba888['id'])});}})[_0xdc9f('0x56')](function(_0x40983e){logger[_0xdc9f('0x57')]('[OUTBOUND]',JSON[_0xdc9f('0x30')](_0x40983e));});};exports[_0xdc9f('0x58')]=function(_0x1ea87c,_0x4f5e58,_0x2a8a3b,_0xc2b55c,_0xac2efb,_0x16bb1b){var _0x470938,_0x267122;_0x16bb1b[_0xdc9f('0x18')]=intUtil['stripTrailingSlash'](_0x16bb1b[_0xdc9f('0x18')]);_0x16bb1b[_0xdc9f('0x42')]=intUtil['stripTrailingSlash'](_0x16bb1b['serverUrl']);if(_0xac2efb&&_0xac2efb['monitor_format']){logger[_0xdc9f('0x1b')]('['+_0x4f5e58[_0xdc9f('0x59')][_0xdc9f('0x5a')]()+']',_0xdc9f('0x45'));_0x4f5e58['recordingURL']=util[_0xdc9f('0xd')](_0xdc9f('0x47'),_0x16bb1b['serverUrl'],_0x4f5e58['uniqueid'],md5(_0x4f5e58[_0xdc9f('0x48')]));}else{_0x4f5e58[_0xdc9f('0x46')]='';}headers['Authorization']=getAuth(_0x16bb1b);return getUser(_0x16bb1b,'')[_0xdc9f('0x1a')](function(_0x3bb322){_0x470938=_0x3bb322;logger['info'](_0xdc9f('0x4a'),_0x470938['id']);return getEndUser(_0x16bb1b,_0x4f5e58[_0xdc9f('0xf')],_0x4f5e58[_0xdc9f('0x10')]);})[_0xdc9f('0x1a')](function(_0x41973f){_0x267122=_0x41973f;logger['info'](_0xdc9f('0x4b'),_0x267122['id']);return getTicket(_0x16bb1b,_0x470938,_0x267122,_0x2a8a3b,_0x4f5e58);})[_0xdc9f('0x1a')](function(_0x203dd5){if(_0x203dd5){logger[_0xdc9f('0x1b')](_0xdc9f('0x4c'));logger[_0xdc9f('0x1b')](_0xdc9f('0x4d'),_0x203dd5['id']);}})[_0xdc9f('0x56')](function(_0x1d2d65){logger[_0xdc9f('0x57')]('['+_0x4f5e58[_0xdc9f('0x59')]['toUpperCase']()+']',JSON[_0xdc9f('0x30')](_0x1d2d65));});};
\ No newline at end of file
+var _0x03ec=['lodash','request-promise','md5','util','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','localhost','socket.io-emitter','info','merge','Caller\x20-\x20%s','calleridname','calleridnum','Subjects','getString','<br>','name','Fields','custom_fields','mapValues','keyBy','value','format','%s/api/v2/tickets','remoteUri','POST','then','Ticket\x20created!','validateEmail','%s/api/v2/agents','length','find','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','%s/api/v2/contacts','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Basic\x20%s','toString','[HTTP]','stringify','GET','forEach','includes','string','picklist','type','customField','toLowerCase','content','idField','push','variable','variableName','Variable','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','%s/helpdesk/tickets/%d','error','outbound','recordingFormat','none','destcalleridname','destcalleridnum','The\x20Ticket\x20ID\x20is:','[OUTBOUND]','trigger:browser:url','catch','unmanaged','lastevent','toUpperCase'];(function(_0x2828fa,_0x47c488){var _0x31683c=function(_0x12fc89){while(--_0x12fc89){_0x2828fa['push'](_0x2828fa['shift']());}};_0x31683c(++_0x47c488);}(_0x03ec,0x10e));var _0xc03e=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x03ec[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xc03e('0x0'));var rp=require(_0xc03e('0x1'));var md5=require(_0xc03e('0x2'));var util=require(_0xc03e('0x3'));var Redis=require('ioredis');var intUtil=require(_0xc03e('0x4'));var config=require(_0xc03e('0x5'));var logger=require(_0xc03e('0x6'))(_0xc03e('0x7'));config[_0xc03e('0x8')]=_[_0xc03e('0x9')](config[_0xc03e('0x8')],{'host':_0xc03e('0xa'),'port':0x18eb});var io=require(_0xc03e('0xb'))(new Redis(config[_0xc03e('0x8')]));var headers={'Content-Type':'application/json','Accept':'application/json'};function emit(_0x495c40,_0x257646,_0x1446fb){io['to'](_0x495c40)['emit'](_0x257646,_0x1446fb);}function getTicket(_0xdd7321,_0x27e730,_0x43f457,_0x503899,_0x3e3053){logger[_0xc03e('0xc')]('Creating\x20new\x20ticket...');var _0xda9987=_[_0xc03e('0xd')]({'responder_id':_0x27e730['id'],'requester_id':_0x43f457['id'],'name':util['format'](_0xc03e('0xe'),_0x3e3053[_0xc03e('0xf')]),'phone':_0x3e3053[_0xc03e('0x10')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil['getString'](_0x503899[_0xc03e('0x11')],_0x3e3053,'\x20'),'description':intUtil[_0xc03e('0x12')](_0x503899['Descriptions'],_0x3e3053,_0xc03e('0x13')),'tags':getTags(_0x503899['Tags'],_0xc03e('0x14'))},getCustomFields(_0x503899[_0xc03e('0x15')],_0x3e3053));_0xda9987[_0xc03e('0x16')]=_[_0xc03e('0x17')](_[_0xc03e('0x18')](_0xda9987[_0xc03e('0x16')],'id'),_0xc03e('0x19'));return request({'uri':util[_0xc03e('0x1a')](_0xc03e('0x1b'),_0xdd7321[_0xc03e('0x1c')]),'method':_0xc03e('0x1d'),'body':_0xda9987})[_0xc03e('0x1e')](function(_0x105cac){logger[_0xc03e('0xc')](_0xc03e('0x1f'));return _0x105cac;});}function getUser(_0x32924d,_0x305606){if(intUtil[_0xc03e('0x20')](_0x305606)){return request({'uri':util[_0xc03e('0x1a')](_0xc03e('0x21'),_0x32924d[_0xc03e('0x1c')]),'qs':{'email':_0x305606}})[_0xc03e('0x1e')](function(_0x5cb9e8){if(_0x5cb9e8[_0xc03e('0x22')]){logger[_0xc03e('0xc')]('Agent\x20found!');return _[_0xc03e('0x23')](_0x5cb9e8,function(_0x2c85ca){return _0x2c85ca['contact'][_0xc03e('0x24')]===_0x305606;});}else{logger[_0xc03e('0xc')](_0xc03e('0x25'));return request({'uri':util[_0xc03e('0x1a')](_0xc03e('0x26'),_0x32924d[_0xc03e('0x1c')])})[_0xc03e('0x1e')](function(_0x18bdbe){logger[_0xc03e('0xc')](_0xc03e('0x27'));return _0x18bdbe;});}});}else{logger[_0xc03e('0xc')](_0xc03e('0x28'));return request({'uri':util[_0xc03e('0x1a')]('%s/api/v2/agents/me',_0x32924d[_0xc03e('0x1c')])})[_0xc03e('0x1e')](function(_0x3bbb7d){logger[_0xc03e('0xc')]('Admin\x20account\x20selected.');return _0x3bbb7d;});}}function getEndUser(_0x3be3dd,_0x31616e,_0x2cd1a7){logger[_0xc03e('0xc')]('Searching\x20enduser\x20with\x20phone',_0x2cd1a7);return request({'uri':util['format'](_0xc03e('0x29'),_0x3be3dd[_0xc03e('0x1c')]),'qs':{'phone':_0x2cd1a7}})['then'](function(_0x14e4ba){if(_0x14e4ba[_0xc03e('0x22')]){logger[_0xc03e('0xc')](_0xc03e('0x2a'));return _[_0xc03e('0x23')](_0x14e4ba,{'phone':_0x2cd1a7});}else{logger[_0xc03e('0xc')](_0xc03e('0x2b'));return request({'uri':util['format'](_0xc03e('0x29'),_0x3be3dd[_0xc03e('0x1c')]),'method':_0xc03e('0x1d'),'body':{'name':_0x31616e,'phone':_0x2cd1a7}})[_0xc03e('0x1e')](function(_0x38a95a){logger[_0xc03e('0xc')]('Enduser\x20created.');return _0x38a95a;});}});}function getAuth(_0x58540b){return util[_0xc03e('0x1a')](_0xc03e('0x2c'),new Buffer(_0x58540b['apiKey']+':X')[_0xc03e('0x2d')]('base64'));}function request(_0x2dd319){logger['debug'](_0xc03e('0x2e'),JSON[_0xc03e('0x2f')](_0x2dd319));return rp(_['defaults'](_0x2dd319,{'method':_0xc03e('0x30'),'headers':headers,'json':!![]}));}function getTags(_0x1b995b,_0x4c5054){var _0x32df0e=[];if(_0x1b995b&&_0x1b995b['length']>0x0){_0x32df0e=_['map'](_0x1b995b,_0x4c5054);}return _0x32df0e;}function getCustomFields(_0x25aba5,_0x49a567){var _0x2299ad=[];var _0x4fd7e8={'custom_fields':[]};if(_0x25aba5[_0xc03e('0x22')]>0x0){_[_0xc03e('0x31')](_0x25aba5,function(_0x42e678){if(_[_0xc03e('0x32')]([_0xc03e('0x33'),_0xc03e('0x34')],_0x42e678[_0xc03e('0x35')])&&_0x42e678['nameField']&&!_0x42e678[_0xc03e('0x36')]){_0x4fd7e8[_0x42e678['nameField'][_0xc03e('0x37')]()]=_0x42e678[_0xc03e('0x38')]['toString']();}else if(_[_0xc03e('0x32')]([_0xc03e('0x33'),_0xc03e('0x34')],_0x42e678['type'])&&_0x42e678[_0xc03e('0x39')]&&_0x42e678['customField']){_0x4fd7e8[_0xc03e('0x16')][_0xc03e('0x3a')]({'id':_0x42e678[_0xc03e('0x39')],'value':_0x42e678[_0xc03e('0x38')][_0xc03e('0x2d')]()});}else if(_0x42e678[_0xc03e('0x35')]===_0xc03e('0x3b')&&_0x42e678[_0xc03e('0x3c')]&&_0x42e678[_0xc03e('0x39')]&&_0x42e678[_0xc03e('0x36')]){_0x49a567[_0x42e678[_0xc03e('0x3c')]]&&_0x4fd7e8[_0xc03e('0x16')][_0xc03e('0x3a')]({'id':_0x42e678[_0xc03e('0x39')],'value':_0x49a567[_0x42e678['variableName']][_0xc03e('0x2d')]()});}else if(_0x42e678[_0xc03e('0x35')]==='customVariable'&&_0x42e678['Variable']&&_0x42e678[_0xc03e('0x3d')]['name']&&_0x42e678[_0xc03e('0x39')]&&_0x42e678[_0xc03e('0x36')]){_0x49a567[_0x42e678[_0xc03e('0x3d')][_0xc03e('0x14')][_0xc03e('0x37')]()]&&_0x4fd7e8['custom_fields'][_0xc03e('0x3a')]({'id':_0x42e678[_0xc03e('0x39')],'value':_0x49a567[_0x42e678[_0xc03e('0x3d')][_0xc03e('0x14')][_0xc03e('0x37')]()][_0xc03e('0x2d')]()});}});}return _0x4fd7e8;}exports[_0xc03e('0x3e')]=function(_0x93a9f9,_0x41d31b,_0xc4e9db,_0x3d6f28,_0x1046c5,_0x4f7218){var _0x1dddb0,_0x257e9d;_0x4f7218[_0xc03e('0x1c')]=intUtil[_0xc03e('0x3f')](_0x4f7218[_0xc03e('0x1c')]);_0x4f7218[_0xc03e('0x40')]=intUtil[_0xc03e('0x3f')](_0x4f7218[_0xc03e('0x40')]);if(_0x1046c5&&_0x1046c5[_0xc03e('0x41')]){logger[_0xc03e('0xc')](_0xc03e('0x42'),_0xc03e('0x43'));_0x41d31b[_0xc03e('0x44')]=util['format'](_0xc03e('0x45'),_0x4f7218[_0xc03e('0x40')],_0x41d31b[_0xc03e('0x46')],md5(_0x41d31b[_0xc03e('0x46')]));}else{_0x41d31b['recordingURL']='';}headers[_0xc03e('0x47')]=getAuth(_0x4f7218);return getUser(_0x4f7218,_0x3d6f28[_0xc03e('0x24')])[_0xc03e('0x1e')](function(_0x4b597b){_0x1dddb0=_0x4b597b;logger[_0xc03e('0xc')](_0xc03e('0x48'),_0x1dddb0['id']);return getEndUser(_0x4f7218,_0x41d31b[_0xc03e('0xf')],_0x41d31b[_0xc03e('0x10')]);})[_0xc03e('0x1e')](function(_0x48b04f){_0x257e9d=_0x48b04f;logger[_0xc03e('0xc')](_0xc03e('0x49'),_0x257e9d['id']);return getTicket(_0x4f7218,_0x1dddb0,_0x257e9d,_0xc4e9db,_0x41d31b);})[_0xc03e('0x1e')](function(_0x4f273f){if(_0x4f273f&&_0x4f273f['id']){logger['info']('Ticket\x20created!');logger['info']('The\x20Ticket\x20ID\x20is:',_0x4f273f['id']);logger[_0xc03e('0xc')](_0xc03e('0x42'),_0xc03e('0x4a'));emit(util['format'](_0xc03e('0x4b'),_0x3d6f28[_0xc03e('0x14')]),'trigger:browser:url',{'uri':util[_0xc03e('0x1a')](_0xc03e('0x4c'),_0x4f7218[_0xc03e('0x1c')],_0x4f273f['id'])});}})['catch'](function(_0x167ac4){logger[_0xc03e('0x4d')](_0xc03e('0x42'),JSON[_0xc03e('0x2f')](_0x167ac4));});};exports[_0xc03e('0x4e')]=function(_0x5e1279,_0x2a5bea,_0x80d739,_0xa8f69a,_0x157da6,_0x4a0771,_0x81c8d){var _0x446341,_0x1f980f;_0x4a0771[_0xc03e('0x1c')]=intUtil[_0xc03e('0x3f')](_0x4a0771[_0xc03e('0x1c')]);_0x4a0771[_0xc03e('0x40')]=intUtil[_0xc03e('0x3f')](_0x4a0771[_0xc03e('0x40')]);if(_0x81c8d&&_0x81c8d[_0xc03e('0x4f')]&&_0x81c8d[_0xc03e('0x4f')]!==_0xc03e('0x50')){logger[_0xc03e('0xc')]('[OUTBOUND]',_0xc03e('0x43'));_0x2a5bea[_0xc03e('0x44')]=util[_0xc03e('0x1a')](_0xc03e('0x45'),_0x4a0771['serverUrl'],_0x2a5bea[_0xc03e('0x46')],md5(_0x2a5bea[_0xc03e('0x46')]));}headers[_0xc03e('0x47')]=getAuth(_0x4a0771);return getUser(_0x4a0771,_0xa8f69a['email'])[_0xc03e('0x1e')](function(_0x189d9b){_0x446341=_0x189d9b;logger[_0xc03e('0xc')](_0xc03e('0x48'),_0x446341['id']);return getEndUser(_0x4a0771,_0x2a5bea[_0xc03e('0x51')],_0x2a5bea[_0xc03e('0x52')]);})[_0xc03e('0x1e')](function(_0x2ec88c){_0x1f980f=_0x2ec88c;logger[_0xc03e('0xc')](_0xc03e('0x49'),_0x1f980f['id']);return getTicket(_0x4a0771,_0x446341,_0x1f980f,_0x80d739,_0x2a5bea);})[_0xc03e('0x1e')](function(_0x2f167c){if(_0x2f167c&&_0x2f167c['id']){logger[_0xc03e('0xc')](_0xc03e('0x1f'));logger[_0xc03e('0xc')](_0xc03e('0x53'),_0x2f167c['id']);logger[_0xc03e('0xc')](_0xc03e('0x54'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xc03e('0x1a')](_0xc03e('0x4b'),_0xa8f69a[_0xc03e('0x14')]),_0xc03e('0x55'),{'uri':util[_0xc03e('0x1a')]('%s/helpdesk/tickets/%d',_0x4a0771[_0xc03e('0x1c')],_0x2f167c['id'])});}})[_0xc03e('0x56')](function(_0x42f9ad){logger[_0xc03e('0x4d')](_0xc03e('0x54'),JSON[_0xc03e('0x2f')](_0x42f9ad));});};exports[_0xc03e('0x57')]=function(_0x55197b,_0x2cca8f,_0x28012e,_0x2c4c83,_0x386f91,_0x39ea18){var _0x253178,_0x5ecbf2;_0x39ea18['remoteUri']=intUtil[_0xc03e('0x3f')](_0x39ea18[_0xc03e('0x1c')]);_0x39ea18['serverUrl']=intUtil[_0xc03e('0x3f')](_0x39ea18[_0xc03e('0x40')]);if(_0x386f91&&_0x386f91[_0xc03e('0x41')]){logger[_0xc03e('0xc')]('['+_0x2cca8f[_0xc03e('0x58')][_0xc03e('0x59')]()+']',_0xc03e('0x43'));_0x2cca8f[_0xc03e('0x44')]=util[_0xc03e('0x1a')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x39ea18['serverUrl'],_0x2cca8f[_0xc03e('0x46')],md5(_0x2cca8f[_0xc03e('0x46')]));}else{_0x2cca8f[_0xc03e('0x44')]='';}headers[_0xc03e('0x47')]=getAuth(_0x39ea18);return getUser(_0x39ea18,'')[_0xc03e('0x1e')](function(_0x2fa7a6){_0x253178=_0x2fa7a6;logger[_0xc03e('0xc')]('The\x20User\x20ID\x20is:',_0x253178['id']);return getEndUser(_0x39ea18,_0x2cca8f[_0xc03e('0xf')],_0x2cca8f[_0xc03e('0x10')]);})[_0xc03e('0x1e')](function(_0x21dfe2){_0x5ecbf2=_0x21dfe2;logger[_0xc03e('0xc')](_0xc03e('0x49'),_0x5ecbf2['id']);return getTicket(_0x39ea18,_0x253178,_0x5ecbf2,_0x28012e,_0x2cca8f);})['then'](function(_0x39a616){if(_0x39a616){logger['info']('Ticket\x20created!');logger['info'](_0xc03e('0x53'),_0x39a616['id']);}})['catch'](function(_0x289ed4){logger[_0xc03e('0x4d')]('['+_0x2cca8f[_0xc03e('0x58')][_0xc03e('0x59')]()+']',JSON['stringify'](_0x289ed4));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc19f=['Contact\x20found\x20work_number:','Contact\x20created:','POST','contact','Creating\x20new\x20task','/api/tasks','getString','Descriptions','Contact','YYYY-MM-DDTHH:mm:ss','add','ticketId','task','Task\x20created:','/contacts/','user:%s','emit','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','outbound','destcalleridnum','calleridnum','callDirection','queue','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','lodash','request-promise','util','moment','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','socket.io-emitter','GET','/api/selector/owners','headers','info','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','error','message','users','agentEmail','Getting\x20user\x20with\x20email','userId','User\x20found:','Admin\x20selected','userEmail','catch','toUpperCase','/api/lookup?q=','&f=','&entities=contact','then','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','mobile_number','endUserId','Contact\x20found\x20mobile_number:','work_number'];(function(_0x458dd7,_0xe5602b){var _0x2a12f3=function(_0x547dee){while(--_0x547dee){_0x458dd7['push'](_0x458dd7['shift']());}};_0x2a12f3(++_0xe5602b);}(_0xc19f,0xd9));var _0xfc19=function(_0xe02ef9,_0x436a80){_0xe02ef9=_0xe02ef9-0x0;var _0x191acb=_0xc19f[_0xe02ef9];return _0x191acb;};'use strict';var _=require(_0xfc19('0x0'));var rp=require(_0xfc19('0x1'));var md5=require('md5');var util=require(_0xfc19('0x2'));var moment=require(_0xfc19('0x3'));var Promise=require(_0xfc19('0x4'));var Redis=require(_0xfc19('0x5'));var intUtil=require(_0xfc19('0x6'));var config=require(_0xfc19('0x7'));var logger=require(_0xfc19('0x8'))(_0xfc19('0x9'));config[_0xfc19('0xa')]=_[_0xfc19('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xfc19('0xc'))(new Redis(config[_0xfc19('0xa')]));function getAdminId(_0x1076ca,_0x385690,_0x56934b,_0x30a801){return new Promise(function(_0x21b125,_0x504d62){var _0x1a8f6e=![];var _0x4a7851={'method':_0xfc19('0xd'),'uri':_0x30a801+_0xfc19('0xe'),'json':!![]};_0x4a7851[_0xfc19('0xf')]=_0x56934b;logger[_0xfc19('0x10')]('Getting\x20admin\x20information');return rp(_0x4a7851)['then'](function(_0x5bb9b1){if(_0x5bb9b1){var _0x532938=_0x5bb9b1['users'];var _0xd92b3f=null;for(_0xd92b3f=0x0;_0xd92b3f<_0x532938[_0xfc19('0x11')];_0xd92b3f++){if(_0x532938[_0xd92b3f][_0xfc19('0x12')]===_0x1076ca[_0xfc19('0x13')]){_0x1076ca[_0xfc19('0x14')]=_0x532938[_0xd92b3f]['id'];_0x1a8f6e=!![];}}if(_0x1a8f6e){logger[_0xfc19('0x10')](_0xfc19('0x15'),_0x1076ca['adminId']);_0x21b125(_0x1076ca);}else{_0x504d62({'statusCode':0x194,'message':_0xfc19('0x16')});}}else{_0x504d62({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})['catch'](function(_0x1d4107){logger[_0xfc19('0x17')]('['+[_0x385690['toUpperCase']()]+']',_0x1d4107[_0xfc19('0x18')]);_0x504d62(_0x1d4107);});});}function getUser(_0x79e354,_0x24d525,_0x40e014){return function(_0x30a58d){return new Promise(function(_0x496649,_0x47f316){var _0x59dcde={'method':'GET','uri':_0x40e014+_0xfc19('0xe'),'json':!![]};_0x59dcde[_0xfc19('0xf')]=_0x24d525;logger[_0xfc19('0x10')]('Getting\x20user\x20list');return rp(_0x59dcde)['then'](function(_0x582afe){if(_0x582afe){var _0x40a14c=_0x582afe[_0xfc19('0x19')];var _0x22287d=![];var _0x1e03de=null;if(_0x30a58d[_0xfc19('0x1a')]!==null){logger['info'](_0xfc19('0x1b'),_0x30a58d[_0xfc19('0x1a')]);_0x30a58d['userEmail']=_0x30a58d[_0xfc19('0x1a')];for(_0x1e03de=0x0;_0x1e03de<_0x40a14c[_0xfc19('0x11')];_0x1e03de++){if(_0x40a14c[_0x1e03de][_0xfc19('0x12')]===_0x30a58d[_0xfc19('0x1a')]){_0x22287d=!![];_0x30a58d[_0xfc19('0x1c')]=_0x40a14c[_0x1e03de]['id'];logger[_0xfc19('0x10')](_0xfc19('0x1d'),_0x30a58d[_0xfc19('0x1c')]);}}}if(!_0x22287d){logger[_0xfc19('0x10')](_0xfc19('0x1e'));_0x30a58d[_0xfc19('0x1f')]=_0x30a58d[_0xfc19('0x13')];_0x30a58d[_0xfc19('0x1c')]=_0x30a58d[_0xfc19('0x14')];_0x22287d=!![];}if(_0x22287d){_0x496649(_0x30a58d);}else{_0x47f316({'statusCode':0x194,'message':_0xfc19('0x16')});}}else{_0x47f316({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0xfc19('0x20')](function(_0x4ae439){logger[_0xfc19('0x17')]('['+[_0x79e354[_0xfc19('0x21')]()]+']',_0x4ae439[_0xfc19('0x18')]);_0x47f316(_0x4ae439);});});};}function searchContact(_0xf56ff5,_0x498f6e,_0x32addf,_0x4161ba){return new Promise(function(_0x25a3f7,_0x32f726){var _0x7d4cb6={'method':_0xfc19('0xd'),'headers':_0x498f6e,'uri':_0xf56ff5+_0xfc19('0x22')+_0x4161ba+_0xfc19('0x23')+_0x32addf+_0xfc19('0x24'),'json':!![]};rp(_0x7d4cb6)[_0xfc19('0x25')](function(_0x1ab004){var _0x489476=_[_0xfc19('0x26')](_0x1ab004[_0xfc19('0x27')][_0xfc19('0x27')],[_0x32addf,_0x4161ba]);_0x25a3f7(_0x489476);})[_0xfc19('0x20')](function(_0x1cd547){_0x32f726(_0x1cd547);});});}function getEndUser(_0x399a91,_0x41b4d7,_0x1413bb){return function(_0x4ef46e){return new Promise(function(_0x41f649,_0x512a52){logger['info'](util[_0xfc19('0x28')](_0xfc19('0x29'),_0x4ef46e[_0xfc19('0x2a')]));searchContact(_0x1413bb,_0x41b4d7,_0xfc19('0x2b'),_0x4ef46e[_0xfc19('0x2a')])[_0xfc19('0x25')](function(_0x491b9e){if(_0x491b9e){_0x4ef46e[_0xfc19('0x2c')]=_0x491b9e['id'];logger['info'](_0xfc19('0x2d'),_0x4ef46e['endUserId']);return _0x41f649(_0x4ef46e);}searchContact(_0x1413bb,_0x41b4d7,_0xfc19('0x2e'),_0x4ef46e[_0xfc19('0x2a')])[_0xfc19('0x25')](function(_0xbaf52a){if(_0xbaf52a){_0x4ef46e[_0xfc19('0x2c')]=_0xbaf52a['id'];logger[_0xfc19('0x10')](_0xfc19('0x2f'),_0x4ef46e[_0xfc19('0x2c')]);return _0x41f649(_0x4ef46e);}createEndUser(_0x4ef46e,_0x399a91,_0x41b4d7,_0x1413bb)[_0xfc19('0x25')](function(_0xb958f0){logger['info'](_0xfc19('0x30'),_0xb958f0[_0xfc19('0x2c')]);return _0x41f649(_0xb958f0);});});})[_0xfc19('0x20')](function(_0x2b592a){_0x512a52(_0x2b592a);});});};}function createEndUser(_0x17dfe7,_0x10c8ff,_0x3638a7,_0x3a6ba1){return new Promise(function(_0x7324aa,_0x27526b){var _0x591da2=moment();var _0x21b84e={'method':_0xfc19('0x31'),'uri':_0x3a6ba1+'/api/contacts','body':{'contact':{'last_name':_0x17dfe7[_0xfc19('0x2a')],'work_number':_0x17dfe7[_0xfc19('0x2a')],'mobile_number':_0x17dfe7[_0xfc19('0x2a')],'owner_id':_0x17dfe7[_0xfc19('0x1c')],'created_at':_0x591da2[_0xfc19('0x28')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x21b84e[_0xfc19('0xf')]=_0x3638a7;logger[_0xfc19('0x10')]('Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact');return rp(_0x21b84e)[_0xfc19('0x25')](function(_0x541e42){_0x17dfe7['endUserId']=_0x541e42[_0xfc19('0x32')]['id'];_0x7324aa(_0x17dfe7);})[_0xfc19('0x20')](function(_0x309613){logger[_0xfc19('0x17')]('['+[_0x10c8ff[_0xfc19('0x21')]()]+']',_0x309613[_0xfc19('0x18')]);_0x27526b(_0x309613['message']);});});}function getTicket(_0x526832,_0x7d7f07,_0x54d627,_0x19f174,_0x99c01b){return function(_0x2acaf2){logger[_0xfc19('0x10')](_0xfc19('0x33'));return new Promise(function(_0x5ec45f,_0x57fc08){var _0x13ebc1=moment();var _0x159ff6={'method':_0xfc19('0x31'),'uri':_0x54d627+_0xfc19('0x34'),'body':{'title':intUtil[_0xfc19('0x35')](_0x19f174['Subjects'],_0x99c01b,'\x20'),'description':intUtil[_0xfc19('0x35')](_0x19f174[_0xfc19('0x36')],_0x99c01b,'\x0a'),'owner_id':_0x2acaf2[_0xfc19('0x1c')],'creater_id':_0x2acaf2['adminId'],'targetable_id':_0x2acaf2[_0xfc19('0x2c')],'targetable_type':_0xfc19('0x37'),'created_at':_0x13ebc1['format'](_0xfc19('0x38')),'due_date':_0x13ebc1[_0xfc19('0x39')](0x1e,'m')[_0xfc19('0x28')](_0xfc19('0x38'))},'json':!![]};_0x159ff6[_0xfc19('0xf')]=_0x7d7f07;return rp(_0x159ff6)[_0xfc19('0x25')](function(_0xb591a4){_0x2acaf2[_0xfc19('0x3a')]=_0xb591a4[_0xfc19('0x3b')]['id'];logger['info'](_0xfc19('0x3c'),_0x2acaf2['ticketId']);_0x5ec45f(_0x2acaf2);})[_0xfc19('0x20')](function(_0x42330d){logger[_0xfc19('0x17')]('['+[_0x526832['toUpperCase']()]+']',_0x42330d[_0xfc19('0x18')]);_0x57fc08(_0x42330d[_0xfc19('0x18')]);});});};}function emit(_0x1e9511,_0x5a6b51,_0x35149e){var _0x355750={'uri':_0x1e9511+_0xfc19('0x3d')+_0x35149e};io['to'](util[_0xfc19('0x28')](_0xfc19('0x3e'),_0x5a6b51))[_0xfc19('0x3f')]('trigger:browser:url',_0x355750);}exports['cs']=function(_0x2cd8b6,_0x18bca1,_0x2efbcb,_0x398d53,_0x638348,_0xebdc9f,_0x11ec43,_0x18fb1d){var _0x16ae41={};var _0x187589={'Authorization':'Token\x20token='+_0xebdc9f[_0xfc19('0x40')]};_0xebdc9f[_0xfc19('0x41')]=intUtil[_0xfc19('0x42')](_0xebdc9f['remoteUri']);_0xebdc9f[_0xfc19('0x43')]=intUtil[_0xfc19('0x42')](_0xebdc9f['serverUrl']);var _0x4b4e67=_0xebdc9f[_0xfc19('0x41')];_0x16ae41['adminEmail']=_0xebdc9f[_0xfc19('0x44')];_0x16ae41[_0xfc19('0x2a')]=_0x18fb1d['toLowerCase']()===_0xfc19('0x45')?_0x18bca1[_0xfc19('0x46')]:_0x18bca1[_0xfc19('0x47')];_0x16ae41[_0xfc19('0x48')]=_0x18fb1d===_0xfc19('0x49')||_0x18fb1d==='unmanaged'?_0xfc19('0x49'):_0xfc19('0x45');if(_0x398d53){_0x16ae41[_0xfc19('0x1a')]=_0x398d53[_0xfc19('0x12')];}var _0x26b3f7=util[_0xfc19('0x28')](_0xfc19('0x4a'),_0xebdc9f[_0xfc19('0x43')],_0x18bca1[_0xfc19('0x4b')],md5(_0x18bca1['uniqueid']));if(_0x638348&&_0x638348[_0xfc19('0x4c')]){logger[_0xfc19('0x10')](_0xfc19('0x4d'),'Recording\x20is\x20enabled!');_0x18bca1[_0xfc19('0x4e')]=_0x26b3f7;}else if(_0x11ec43&&_0x11ec43[_0xfc19('0x4f')]&&_0x11ec43['recordingFormat']!==_0xfc19('0x50')){logger[_0xfc19('0x10')](_0xfc19('0x51'),_0xfc19('0x52'));_0x18bca1[_0xfc19('0x4e')]=_0x26b3f7;}else{_0x18bca1[_0xfc19('0x4e')]='';}return getAdminId(_0x16ae41,_0x18fb1d,_0x187589,_0x4b4e67)['then'](getUser(_0x18fb1d,_0x187589,_0x4b4e67))[_0xfc19('0x25')](getEndUser(_0x18fb1d,_0x187589,_0x4b4e67))[_0xfc19('0x25')](getTicket(_0x18fb1d,_0x187589,_0x4b4e67,_0x2efbcb,_0x18bca1))[_0xfc19('0x25')](function(_0x20c395){logger[_0xfc19('0x10')](util[_0xfc19('0x28')](_0xfc19('0x53'),_0x20c395[_0xfc19('0x3a')]));if(_0x18fb1d!=='unmanaged'){logger[_0xfc19('0x10')]('['+[_0x18fb1d[_0xfc19('0x21')]()]+']',_0xfc19('0x54'));emit(_0x4b4e67,_0x398d53[_0xfc19('0x55')],_0x20c395[_0xfc19('0x2c')]);}})[_0xfc19('0x20')](function(_0x22ccab){logger['error']('['+[_0x18fb1d[_0xfc19('0x21')]()]+_0xfc19('0x56'),util[_0xfc19('0x57')](_0x22ccab,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x5010=['apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','calleridnum','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','Displaying\x20task\x20in\x20a\x20new\x20tab...','name','inspect','lodash','util','bluebird','ioredis','./util','../../../../config/environment','../../../../config/logger','freshsales','redis','localhost','socket.io-emitter','GET','/api/selector/owners','info','Getting\x20admin\x20information','then','length','email','adminEmail','adminId','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','Getting\x20user\x20list','users','Getting\x20user\x20with\x20email','agentEmail','userEmail','userId','User\x20found:','Admin\x20selected','/api/lookup?q=','&f=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','Contact\x20found\x20mobile_number:','endUserId','Contact\x20found\x20work_number:','POST','/api/contacts','YYYY-MM-DDTHH:mm:ss','headers','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','/api/tasks','getString','Descriptions','Contact','add','Task\x20created:','ticketId','/contacts/','user:%s','trigger:browser:url','Token\x20token='];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x5010,0xbc));var _0x0501=function(_0xcbf03b,_0x2ddbfd){_0xcbf03b=_0xcbf03b-0x0;var _0x2384a6=_0x5010[_0xcbf03b];return _0x2384a6;};'use strict';var _=require(_0x0501('0x0'));var rp=require('request-promise');var md5=require('md5');var util=require(_0x0501('0x1'));var moment=require('moment');var Promise=require(_0x0501('0x2'));var Redis=require(_0x0501('0x3'));var intUtil=require(_0x0501('0x4'));var config=require(_0x0501('0x5'));var logger=require(_0x0501('0x6'))(_0x0501('0x7'));config[_0x0501('0x8')]=_['defaults'](config[_0x0501('0x8')],{'host':_0x0501('0x9'),'port':0x18eb});var io=require(_0x0501('0xa'))(new Redis(config[_0x0501('0x8')]));function getAdminId(_0x43b2fb,_0x16e421,_0x31b045,_0x445bbd){return new Promise(function(_0x4ec65c,_0x459865){var _0x50d76d=![];var _0xf4517c={'method':_0x0501('0xb'),'uri':_0x445bbd+_0x0501('0xc'),'json':!![]};_0xf4517c['headers']=_0x31b045;logger[_0x0501('0xd')](_0x0501('0xe'));return rp(_0xf4517c)[_0x0501('0xf')](function(_0x3ad7f2){if(_0x3ad7f2){var _0x8cf148=_0x3ad7f2['users'];var _0x270e94=null;for(_0x270e94=0x0;_0x270e94<_0x8cf148[_0x0501('0x10')];_0x270e94++){if(_0x8cf148[_0x270e94][_0x0501('0x11')]===_0x43b2fb[_0x0501('0x12')]){_0x43b2fb[_0x0501('0x13')]=_0x8cf148[_0x270e94]['id'];_0x50d76d=!![];}}if(_0x50d76d){logger['info'](_0x0501('0x14'),_0x43b2fb['adminId']);_0x4ec65c(_0x43b2fb);}else{_0x459865({'statusCode':0x194,'message':_0x0501('0x15')});}}else{_0x459865({'statusCode':0x194,'message':_0x0501('0x15')});}})[_0x0501('0x16')](function(_0x898ae9){logger[_0x0501('0x17')]('['+[_0x16e421[_0x0501('0x18')]()]+']',_0x898ae9[_0x0501('0x19')]);_0x459865(_0x898ae9);});});}function getUser(_0x2f0a41,_0x41211b,_0x48063f){return function(_0xd8e127){return new Promise(function(_0x3d48f6,_0x484a06){var _0xbaf145={'method':'GET','uri':_0x48063f+_0x0501('0xc'),'json':!![]};_0xbaf145['headers']=_0x41211b;logger['info'](_0x0501('0x1a'));return rp(_0xbaf145)[_0x0501('0xf')](function(_0x1b0068){if(_0x1b0068){var _0x3bbe0b=_0x1b0068[_0x0501('0x1b')];var _0x2bb158=![];var _0x366826=null;if(_0xd8e127['agentEmail']!==null){logger['info'](_0x0501('0x1c'),_0xd8e127[_0x0501('0x1d')]);_0xd8e127[_0x0501('0x1e')]=_0xd8e127[_0x0501('0x1d')];for(_0x366826=0x0;_0x366826<_0x3bbe0b[_0x0501('0x10')];_0x366826++){if(_0x3bbe0b[_0x366826]['email']===_0xd8e127[_0x0501('0x1d')]){_0x2bb158=!![];_0xd8e127[_0x0501('0x1f')]=_0x3bbe0b[_0x366826]['id'];logger['info'](_0x0501('0x20'),_0xd8e127[_0x0501('0x1f')]);}}}if(!_0x2bb158){logger[_0x0501('0xd')](_0x0501('0x21'));_0xd8e127[_0x0501('0x1e')]=_0xd8e127[_0x0501('0x12')];_0xd8e127['userId']=_0xd8e127[_0x0501('0x13')];_0x2bb158=!![];}if(_0x2bb158){_0x3d48f6(_0xd8e127);}else{_0x484a06({'statusCode':0x194,'message':_0x0501('0x15')});}}else{_0x484a06({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x0501('0x16')](function(_0x58c3a4){logger[_0x0501('0x17')]('['+[_0x2f0a41[_0x0501('0x18')]()]+']',_0x58c3a4['message']);_0x484a06(_0x58c3a4);});});};}function searchContact(_0x411ab2,_0x2602fa,_0x597580,_0xfcde43){return new Promise(function(_0x5cad8c,_0x36204e){var _0x497caf={'method':'GET','headers':_0x2602fa,'uri':_0x411ab2+_0x0501('0x22')+_0xfcde43+_0x0501('0x23')+_0x597580+_0x0501('0x24'),'json':!![]};rp(_0x497caf)[_0x0501('0xf')](function(_0x46bed5){var _0x58338a=_[_0x0501('0x25')](_0x46bed5['contacts'][_0x0501('0x26')],[_0x597580,_0xfcde43]);_0x5cad8c(_0x58338a);})[_0x0501('0x16')](function(_0xa7ae39){_0x36204e(_0xa7ae39);});});}function getEndUser(_0x1b325f,_0x46bbab,_0x12ea24){return function(_0x3262f7){return new Promise(function(_0x34da67,_0x1da37c){logger[_0x0501('0xd')](util[_0x0501('0x27')](_0x0501('0x28'),_0x3262f7[_0x0501('0x29')]));searchContact(_0x12ea24,_0x46bbab,'mobile_number',_0x3262f7[_0x0501('0x29')])[_0x0501('0xf')](function(_0x223108){if(_0x223108){_0x3262f7['endUserId']=_0x223108['id'];logger[_0x0501('0xd')](_0x0501('0x2a'),_0x3262f7[_0x0501('0x2b')]);return _0x34da67(_0x3262f7);}searchContact(_0x12ea24,_0x46bbab,'work_number',_0x3262f7[_0x0501('0x29')])['then'](function(_0x52f0e4){if(_0x52f0e4){_0x3262f7[_0x0501('0x2b')]=_0x52f0e4['id'];logger[_0x0501('0xd')](_0x0501('0x2c'),_0x3262f7[_0x0501('0x2b')]);return _0x34da67(_0x3262f7);}createEndUser(_0x3262f7,_0x1b325f,_0x46bbab,_0x12ea24)[_0x0501('0xf')](function(_0x293b84){logger['info']('Contact\x20created:',_0x293b84[_0x0501('0x2b')]);return _0x34da67(_0x293b84);});});})[_0x0501('0x16')](function(_0x580df9){_0x1da37c(_0x580df9);});});};}function createEndUser(_0x5cdeed,_0x22d4aa,_0x3c1f2b,_0x354cca){return new Promise(function(_0x49ad3d,_0x24c3fb){var _0x52bc6b=moment();var _0x3101ea={'method':_0x0501('0x2d'),'uri':_0x354cca+_0x0501('0x2e'),'body':{'contact':{'last_name':_0x5cdeed['contactNumber'],'work_number':_0x5cdeed[_0x0501('0x29')],'mobile_number':_0x5cdeed[_0x0501('0x29')],'owner_id':_0x5cdeed['userId'],'created_at':_0x52bc6b[_0x0501('0x27')](_0x0501('0x2f'))}},'json':!![]};_0x3101ea[_0x0501('0x30')]=_0x3c1f2b;logger[_0x0501('0xd')](_0x0501('0x31'));return rp(_0x3101ea)[_0x0501('0xf')](function(_0x2edf82){_0x5cdeed[_0x0501('0x2b')]=_0x2edf82['contact']['id'];_0x49ad3d(_0x5cdeed);})[_0x0501('0x16')](function(_0x11f1b0){logger[_0x0501('0x17')]('['+[_0x22d4aa['toUpperCase']()]+']',_0x11f1b0[_0x0501('0x19')]);_0x24c3fb(_0x11f1b0[_0x0501('0x19')]);});});}function getTicket(_0x15acad,_0xa3e868,_0x39e5c1,_0x3f402d,_0x2a84c0){return function(_0x2f430b){logger[_0x0501('0xd')]('Creating\x20new\x20task');return new Promise(function(_0x38c7bc,_0x4638fc){var _0xaafd0=moment();var _0x326d40={'method':'POST','uri':_0x39e5c1+_0x0501('0x32'),'body':{'title':intUtil['getString'](_0x3f402d['Subjects'],_0x2a84c0,'\x20'),'description':intUtil[_0x0501('0x33')](_0x3f402d[_0x0501('0x34')],_0x2a84c0,'\x0a'),'owner_id':_0x2f430b[_0x0501('0x1f')],'creater_id':_0x2f430b[_0x0501('0x13')],'targetable_id':_0x2f430b[_0x0501('0x2b')],'targetable_type':_0x0501('0x35'),'created_at':_0xaafd0[_0x0501('0x27')](_0x0501('0x2f')),'due_date':_0xaafd0[_0x0501('0x36')](0x1e,'m')[_0x0501('0x27')](_0x0501('0x2f'))},'json':!![]};_0x326d40['headers']=_0xa3e868;return rp(_0x326d40)[_0x0501('0xf')](function(_0x34a198){_0x2f430b['ticketId']=_0x34a198['task']['id'];logger['info'](_0x0501('0x37'),_0x2f430b[_0x0501('0x38')]);_0x38c7bc(_0x2f430b);})[_0x0501('0x16')](function(_0x56ccfe){logger[_0x0501('0x17')]('['+[_0x15acad['toUpperCase']()]+']',_0x56ccfe[_0x0501('0x19')]);_0x4638fc(_0x56ccfe[_0x0501('0x19')]);});});};}function emit(_0x189fcd,_0xff3f89,_0x3a41a6){var _0x45867d={'uri':_0x189fcd+_0x0501('0x39')+_0x3a41a6};io['to'](util['format'](_0x0501('0x3a'),_0xff3f89))['emit'](_0x0501('0x3b'),_0x45867d);}exports['cs']=function(_0x42838a,_0x282318,_0x4b352d,_0xab997d,_0x5595d6,_0x33bb67,_0x45df32,_0x3f8425){var _0x34ecc5={};var _0x392db0={'Authorization':_0x0501('0x3c')+_0x33bb67[_0x0501('0x3d')]};_0x33bb67[_0x0501('0x3e')]=intUtil[_0x0501('0x3f')](_0x33bb67['remoteUri']);_0x33bb67[_0x0501('0x40')]=intUtil[_0x0501('0x3f')](_0x33bb67[_0x0501('0x40')]);var _0x4ec62f=_0x33bb67[_0x0501('0x3e')];_0x34ecc5['adminEmail']=_0x33bb67[_0x0501('0x41')];_0x34ecc5[_0x0501('0x29')]=_0x3f8425[_0x0501('0x42')]()===_0x0501('0x43')?_0x282318[_0x0501('0x44')]:_0x282318[_0x0501('0x45')];_0x34ecc5['callDirection']=_0x3f8425===_0x0501('0x46')||_0x3f8425===_0x0501('0x47')?'queue':_0x0501('0x43');if(_0xab997d){_0x34ecc5['agentEmail']=_0xab997d[_0x0501('0x11')];}var _0x3792f2=util[_0x0501('0x27')](_0x0501('0x48'),_0x33bb67[_0x0501('0x40')],_0x282318[_0x0501('0x49')],md5(_0x282318[_0x0501('0x49')]));if(_0x5595d6&&_0x5595d6['monitor_format']){logger['info'](_0x0501('0x4a'),'Recording\x20is\x20enabled!');_0x282318[_0x0501('0x4b')]=_0x3792f2;}else if(_0x45df32&&_0x45df32[_0x0501('0x4c')]&&_0x45df32['recordingFormat']!==_0x0501('0x4d')){logger['info'](_0x0501('0x4e'),_0x0501('0x4f'));_0x282318[_0x0501('0x4b')]=_0x3792f2;}else{_0x282318[_0x0501('0x4b')]='';}return getAdminId(_0x34ecc5,_0x3f8425,_0x392db0,_0x4ec62f)['then'](getUser(_0x3f8425,_0x392db0,_0x4ec62f))[_0x0501('0xf')](getEndUser(_0x3f8425,_0x392db0,_0x4ec62f))[_0x0501('0xf')](getTicket(_0x3f8425,_0x392db0,_0x4ec62f,_0x4b352d,_0x282318))[_0x0501('0xf')](function(_0x4d34a1){logger[_0x0501('0xd')](util[_0x0501('0x27')]('The\x20ticket\x20ID\x20is:\x20%s',_0x4d34a1['ticketId']));if(_0x3f8425!=='unmanaged'){logger[_0x0501('0xd')]('['+[_0x3f8425[_0x0501('0x18')]()]+']',_0x0501('0x50'));emit(_0x4ec62f,_0xab997d[_0x0501('0x51')],_0x4d34a1[_0x0501('0x2b')]);}})['catch'](function(_0xe0d3ec){logger[_0x0501('0x17')]('['+[_0x3f8425[_0x0501('0x18')]()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0x0501('0x52')](_0xe0d3ec,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd589=['./salesforce','./freshdesk','./zoho','./desk','./vtiger','./servicenow','salesforce','sugarcrm','zoho','desk','dynamics365','freshsales','exec','includes','data1','toLowerCase','data2','find','Configurations','data3','routeId','outbound','log','EVENT\x20UNKNOWN','unmanaged','vtiger','servicenow','unknown\x20integration','../../../../config/logger','error','[EXEC]','format','%s\x20configuration\x20#%s\x20not\x20found','%s\x20account\x20#%s\x20not\x20found','lodash','util','./zendesk'];(function(_0x4edc8c,_0x1e5cf9){var _0x478e93=function(_0x1f4bce){while(--_0x1f4bce){_0x4edc8c['push'](_0x4edc8c['shift']());}};_0x478e93(++_0x1e5cf9);}(_0xd589,0x125));var _0x9d58=function(_0x42bc7b,_0x5104d6){_0x42bc7b=_0x42bc7b-0x0;var _0x455343=_0xd589[_0x42bc7b];return _0x455343;};'use strict';var _=require(_0x9d58('0x0'));var util=require(_0x9d58('0x1'));var zendesk=require(_0x9d58('0x2'));var salesforce=require(_0x9d58('0x3'));var sugarcrm=require('./sugarcrm');var freshdesk=require(_0x9d58('0x4'));var zoho=require(_0x9d58('0x5'));var desk=require(_0x9d58('0x6'));var vtiger=require(_0x9d58('0x7'));var servicenow=require(_0x9d58('0x8'));var dynamics365=require('./dynamics365');var freshsales=require('./freshsales');var integrations=['zendesk',_0x9d58('0x9'),_0x9d58('0xa'),'freshdesk',_0x9d58('0xb'),_0x9d58('0xc'),'vtiger',_0x9d58('0xd'),_0x9d58('0xe'),'servicenow'];exports[_0x9d58('0xf')]=function(_0x27ea03,_0x6cf4a9,_0x4da444,_0x415909,_0xfa1250,_0x5f50b9){if(_0x4da444){if(_[_0x9d58('0x10')](integrations,_0x27ea03[_0x9d58('0x11')][_0x9d58('0x12')]())){try{var _0x448de0=null;var _0x1c7708='';var _0x2a5cb9=_0x4da444[_0x27ea03['data1'][_0x9d58('0x12')]()];if(_0x2a5cb9){var _0xf24d12=_0x2a5cb9[_0x27ea03[_0x9d58('0x13')]];if(_0xf24d12){var _0x2432c7=_[_0x9d58('0x14')](_0xf24d12[_0x9d58('0x15')],{'id':parseInt(_0x27ea03[_0x9d58('0x16')],0xa)});if(_0x2432c7){if(_0x415909){if(_0xfa1250&&_0x6cf4a9['queue']){_0x1c7708='queue';}else if(_0x6cf4a9[_0x9d58('0x17')]){_0x1c7708=_0x9d58('0x18');}else{console[_0x9d58('0x19')](_0x9d58('0x1a'),_0x6cf4a9);}}else{_0x1c7708=_0x9d58('0x1b');}switch(_0x27ea03[_0x9d58('0x11')][_0x9d58('0x12')]()){case'zendesk':zendesk[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case _0x9d58('0x9'):salesforce[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case _0x9d58('0xa'):sugarcrm[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case'freshdesk':freshdesk[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case _0x9d58('0xb'):zoho[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case'desk':desk[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case _0x9d58('0x1c'):vtiger[_0x1c7708](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9);break;case _0x9d58('0xe'):freshsales['cs'](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9,_0x1c7708);break;case _0x9d58('0x1d'):servicenow['cs'](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9,_0x1c7708);break;case'dynamics365':dynamics365['cs'](_0x27ea03,_0x6cf4a9,_0x2432c7,_0x415909,_0xfa1250,_0xf24d12,_0x5f50b9,_0x1c7708);break;default:console[_0x9d58('0x19')](_0x9d58('0x1e'));}}else{_0x448de0=require(_0x9d58('0x1f'))(_0x27ea03[_0x9d58('0x11')][_0x9d58('0x12')]());_0x448de0[_0x9d58('0x20')](_0x9d58('0x21'),util[_0x9d58('0x22')](_0x9d58('0x23'),_0x27ea03[_0x9d58('0x11')][_0x9d58('0x12')](),_0x27ea03[_0x9d58('0x16')]));}}else{_0x448de0=require(_0x9d58('0x1f'))(_0x27ea03['data1']['toLowerCase']());_0x448de0[_0x9d58('0x20')](_0x9d58('0x21'),util[_0x9d58('0x22')](_0x9d58('0x24'),_0x27ea03[_0x9d58('0x11')][_0x9d58('0x12')](),_0x27ea03[_0x9d58('0x13')]));}}else{}}catch(_0x4ef58b){console['error'](_0x4ef58b);}}}};
\ No newline at end of file
+var _0x80f4=['./dynamics365','zoho','desk','vtiger','dynamics365','freshsales','servicenow','exec','includes','data1','toLowerCase','data2','Configurations','data3','queue','routeId','outbound','log','EVENT\x20UNKNOWN','unmanaged','sugarcrm','freshdesk','../../../../config/logger','error','[EXEC]','format','lodash','util','./zendesk','./salesforce','./sugarcrm','./freshdesk','./zoho','./desk','./vtiger','./servicenow'];(function(_0x3e7afe,_0x5976c1){var _0x312a74=function(_0x6d1c3a){while(--_0x6d1c3a){_0x3e7afe['push'](_0x3e7afe['shift']());}};_0x312a74(++_0x5976c1);}(_0x80f4,0xaa));var _0x480f=function(_0x40f2f0,_0x724659){_0x40f2f0=_0x40f2f0-0x0;var _0x11a018=_0x80f4[_0x40f2f0];return _0x11a018;};'use strict';var _=require(_0x480f('0x0'));var util=require(_0x480f('0x1'));var zendesk=require(_0x480f('0x2'));var salesforce=require(_0x480f('0x3'));var sugarcrm=require(_0x480f('0x4'));var freshdesk=require(_0x480f('0x5'));var zoho=require(_0x480f('0x6'));var desk=require(_0x480f('0x7'));var vtiger=require(_0x480f('0x8'));var servicenow=require(_0x480f('0x9'));var dynamics365=require(_0x480f('0xa'));var freshsales=require('./freshsales');var integrations=['zendesk','salesforce','sugarcrm','freshdesk',_0x480f('0xb'),_0x480f('0xc'),_0x480f('0xd'),_0x480f('0xe'),_0x480f('0xf'),_0x480f('0x10')];exports[_0x480f('0x11')]=function(_0x18d777,_0x32b3a3,_0x551fa6,_0x154e56,_0x18da83,_0x12f9f8){if(_0x551fa6){if(_[_0x480f('0x12')](integrations,_0x18d777['data1']['toLowerCase']())){try{var _0x50a2c0=null;var _0x2a37e2='';var _0x14c6de=_0x551fa6[_0x18d777[_0x480f('0x13')][_0x480f('0x14')]()];if(_0x14c6de){var _0x151e55=_0x14c6de[_0x18d777[_0x480f('0x15')]];if(_0x151e55){var _0x22b0e7=_['find'](_0x151e55[_0x480f('0x16')],{'id':parseInt(_0x18d777[_0x480f('0x17')],0xa)});if(_0x22b0e7){if(_0x154e56){if(_0x18da83&&_0x32b3a3[_0x480f('0x18')]){_0x2a37e2=_0x480f('0x18');}else if(_0x32b3a3[_0x480f('0x19')]){_0x2a37e2=_0x480f('0x1a');}else{console[_0x480f('0x1b')](_0x480f('0x1c'),_0x32b3a3);}}else{_0x2a37e2=_0x480f('0x1d');}switch(_0x18d777[_0x480f('0x13')][_0x480f('0x14')]()){case'zendesk':zendesk[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case'salesforce':salesforce[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case _0x480f('0x1e'):sugarcrm[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case _0x480f('0x1f'):freshdesk[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case _0x480f('0xb'):zoho[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case'desk':desk[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case _0x480f('0xd'):vtiger[_0x2a37e2](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8);break;case _0x480f('0xf'):freshsales['cs'](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8,_0x2a37e2);break;case _0x480f('0x10'):servicenow['cs'](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8,_0x2a37e2);break;case _0x480f('0xe'):dynamics365['cs'](_0x18d777,_0x32b3a3,_0x22b0e7,_0x154e56,_0x18da83,_0x151e55,_0x12f9f8,_0x2a37e2);break;default:console[_0x480f('0x1b')]('unknown\x20integration');}}else{_0x50a2c0=require(_0x480f('0x20'))(_0x18d777[_0x480f('0x13')][_0x480f('0x14')]());_0x50a2c0[_0x480f('0x21')](_0x480f('0x22'),util[_0x480f('0x23')]('%s\x20configuration\x20#%s\x20not\x20found',_0x18d777[_0x480f('0x13')]['toLowerCase'](),_0x18d777['data3']));}}else{_0x50a2c0=require(_0x480f('0x20'))(_0x18d777[_0x480f('0x13')]['toLowerCase']());_0x50a2c0[_0x480f('0x21')](_0x480f('0x22'),util['format']('%s\x20account\x20#%s\x20not\x20found',_0x18d777[_0x480f('0x13')][_0x480f('0x14')](),_0x18d777[_0x480f('0x15')]));}}else{}}catch(_0x36d933){console[_0x480f('0x21')](_0x36d933);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14a6=['localhost','socket.io-emitter','emit','assign','getString','Subjects','Descriptions','ticketType','Task','ActivityDate','IsReminderSet','IsRecurrence','contact','endUserType','lead','WhoId','account','WhatId','ContactId','AccountId','leadId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','create','isNil','sobject','User','execute','then','find','Email','Agent\x20%s\x20found.','resolve','Name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','display_name','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','additionalSearchContact','merge','$or','Contact','cloneDeep','additionalSearchLead','Lead','account_contact_lead','additionalSearchAccount','Account','length','first','attributes','type','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','<unknown>','format','LastName','Caller\x20-\x20%s','No\x20Company','upperFirst','includes','picklist','idField','content','toString','variableName','customVariable','Variable','name','password','concat','securityToken','Connection','remoteUri','https://login.salesforce.com','clientSecret','login','username','Connection\x20established.','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','calleridname','calleridnum','Fields','queue','[QUEUE]\x20Ticket\x20%s\x20created','integrationTab','user:%s','trigger:salesforce:display','newTab','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','recordingFormat','none','[OUTBOUND]','email','destcalleridname','[OUTBOUND]\x20Ticket\x20%s\x20created.','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','trigger:browser:url','Salesforce\x20account\x20type\x20not\x20recognized','unmanaged','lastevent','toUpperCase',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','moment','bluebird','md5','jsforce','ioredis','./util','../../../../config/environment','../../../../config/logger','salesforce','defaults','redis'];(function(_0x1ebb10,_0x156b3e){var _0x20d709=function(_0x4cc093){while(--_0x4cc093){_0x1ebb10['push'](_0x1ebb10['shift']());}};_0x20d709(++_0x156b3e);}(_0x14a6,0xfb));var _0x614a=function(_0x5ba74f,_0x200bf4){_0x5ba74f=_0x5ba74f-0x0;var _0x534d79=_0x14a6[_0x5ba74f];return _0x534d79;};'use strict';var _=require(_0x614a('0x0'));var rp=require(_0x614a('0x1'));var moment=require(_0x614a('0x2'));var BPromise=require(_0x614a('0x3'));var md5=require(_0x614a('0x4'));var jsforce=require(_0x614a('0x5'));var util=require('util');var Redis=require(_0x614a('0x6'));var intUtil=require(_0x614a('0x7'));var config=require(_0x614a('0x8'));var logger=require(_0x614a('0x9'))(_0x614a('0xa'));config['redis']=_[_0x614a('0xb')](config[_0x614a('0xc')],{'host':_0x614a('0xd'),'port':0x18eb});var io=require(_0x614a('0xe'))(new Redis(config[_0x614a('0xc')]));function emit(_0x286529,_0x241a9c,_0x46fa6c){io['to'](_0x286529)[_0x614a('0xf')](_0x241a9c,_0x46fa6c);}function getTicket(_0x499175,_0x48dbdc,_0x4e1d64,_0x26e2f0,_0x88e550,_0x403901,_0x164803,_0x4bcdee){var _0x429a02=Object[_0x614a('0x10')]({},{'OwnerId':_0x48dbdc['id'],'Subject':intUtil[_0x614a('0x11')](_0x26e2f0[_0x614a('0x12')],_0x88e550,'\x20'),'Description':intUtil['getString'](_0x26e2f0[_0x614a('0x13')],_0x88e550,'\x0a')},getCustomFields(_0x403901,_0x88e550));if(_0x4e1d64){if(_0x26e2f0[_0x614a('0x14')]===_0x614a('0x15')){_0x429a02[_0x614a('0x16')]=moment['utc']();_0x429a02[_0x614a('0x17')]=![];_0x429a02[_0x614a('0x18')]=![];if(_0x4e1d64['endUserType']===_0x614a('0x19')||_0x4e1d64[_0x614a('0x1a')]===_0x614a('0x1b')){_0x429a02[_0x614a('0x1c')]=_0x4e1d64['id'];}else if(_0x4e1d64[_0x614a('0x1a')]===_0x614a('0x1d')){_0x429a02[_0x614a('0x1e')]=_0x4e1d64['id'];}}else if(_0x26e2f0['ticketType']==='Case'){if(_0x4e1d64[_0x614a('0x1a')]===_0x614a('0x19')){_0x429a02[_0x614a('0x1f')]=_0x4e1d64['id'];}else if(_0x4e1d64[_0x614a('0x1a')]===_0x614a('0x1d')){_0x429a02[_0x614a('0x20')]=_0x4e1d64['id'];}else if(_0x4e1d64[_0x614a('0x1a')]===_0x614a('0x1b')&&_0x26e2f0[_0x614a('0x21')]){_0x429a02[_0x26e2f0['leadId']]=_0x4e1d64['id'];}else{logger[_0x614a('0x22')](_0x614a('0x23'));}}}return _0x164803['sobject'](_0x26e2f0[_0x614a('0x14')])[_0x614a('0x24')](_0x429a02);}function getUser(_0x293de8,_0x55a87a,_0x451c3a){if(!_[_0x614a('0x25')](_0x55a87a)&&intUtil['validateEmail'](_0x55a87a)){var _0x314b18={'Email':_0x55a87a};var _0x235f6c={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x451c3a[_0x614a('0x26')](_0x614a('0x27'))['find'](_0x314b18,_0x235f6c)[_0x614a('0x28')]()[_0x614a('0x29')](function(_0x5b9508){if(_0x5b9508['length']){var _0x1ddfd1=_[_0x614a('0x2a')](_0x5b9508,function(_0x3e1258){return _0x3e1258[_0x614a('0x2b')]===_0x55a87a;});if(_0x1ddfd1){logger[_0x614a('0x22')](_0x614a('0x2c'),_0x55a87a);return BPromise[_0x614a('0x2d')]({'id':_0x1ddfd1['Id'],'name':_0x1ddfd1[_0x614a('0x2e')]});}}else{logger[_0x614a('0x22')](_0x614a('0x2f'),_0x55a87a);return _0x451c3a[_0x614a('0x30')]()[_0x614a('0x29')](function(_0x4b791e){return BPromise[_0x614a('0x2d')]({'id':_0x4b791e[_0x614a('0x31')],'name':_0x4b791e[_0x614a('0x32')]});});}});}else{logger[_0x614a('0x22')](_0x614a('0x2f'),_0x55a87a);return _0x451c3a[_0x614a('0x30')]()[_0x614a('0x29')](function(_0x3e165e){return BPromise[_0x614a('0x2d')]({'id':_0x3e165e[_0x614a('0x31')],'name':_0x3e165e[_0x614a('0x32')]});});}}function getEndUser(_0x10aa19,_0x452a44,_0x138e51,_0x1a0992,_0x7110f5){var _0x5e4570={'$or':{'Phone':_0x1a0992}};var _0x284400={'Id':!![],'Name':!![],'Phone':!![]};return BPromise['resolve']()[_0x614a('0x29')](function(){logger['info'](_0x614a('0x33'),_0x1a0992,_0x452a44[_0x614a('0x34')]);switch(_0x452a44[_0x614a('0x34')]){case'contact_lead':var _0x101d02=_['cloneDeep'](_0x5e4570);if(_0x452a44[_0x614a('0x35')]){var _0x382db9={};_0x382db9[_0x452a44[_0x614a('0x35')]]=_0x1a0992;_[_0x614a('0x36')](_0x101d02[_0x614a('0x37')],_0x382db9);}return _0x7110f5[_0x614a('0x26')](_0x614a('0x38'))[_0x614a('0x2a')](_0x101d02,_0x284400)[_0x614a('0x28')]()[_0x614a('0x29')](function(_0xb73b71){if(_0xb73b71&&_0xb73b71['length']){return _0xb73b71;}else{var _0x1deddf=_[_0x614a('0x39')](_0x5e4570);if(_0x452a44['additionalSearchLead']){var _0x11fee1={};_0x11fee1[_0x452a44[_0x614a('0x3a')]]=_0x1a0992;_[_0x614a('0x36')](_0x1deddf[_0x614a('0x37')],_0x11fee1);}return _0x7110f5[_0x614a('0x26')](_0x614a('0x3b'))[_0x614a('0x2a')](_0x1deddf,_0x284400);}});case _0x614a('0x3c'):var _0x6f488a=_[_0x614a('0x39')](_0x5e4570);if(_0x452a44[_0x614a('0x3d')]){var _0x382db9={};_0x382db9[_0x452a44[_0x614a('0x3d')]]=_0x1a0992;_['merge'](_0x6f488a['$or'],_0x382db9);}return _0x7110f5['sobject'](_0x614a('0x3e'))['find'](_0x6f488a,_0x284400)[_0x614a('0x28')]()[_0x614a('0x29')](function(_0x9d9a27){if(_0x9d9a27&&_0x9d9a27[_0x614a('0x3f')]){return _0x9d9a27;}else{var _0x229687=_[_0x614a('0x39')](_0x5e4570);if(_0x452a44['additionalSearchContact']){var _0x2f6791={};_0x2f6791[_0x452a44[_0x614a('0x35')]]=_0x1a0992;_['merge'](_0x229687[_0x614a('0x37')],_0x2f6791);}return _0x7110f5['sobject'](_0x614a('0x38'))['find'](_0x229687,_0x284400)[_0x614a('0x29')](function(_0x1cb699){if(_0x1cb699&&_0x1cb699['length']){return _0x1cb699;}else{var _0x22f610=_['cloneDeep'](_0x5e4570);if(_0x452a44[_0x614a('0x3a')]){var _0x912507={};_0x912507[_0x452a44[_0x614a('0x3a')]]=_0x1a0992;_[_0x614a('0x36')](_0x22f610[_0x614a('0x37')],_0x912507);}return _0x7110f5[_0x614a('0x26')]('Lead')['find'](_0x22f610,_0x284400);}});}});case'contact':var _0x101d02=_[_0x614a('0x39')](_0x5e4570);if(_0x452a44[_0x614a('0x35')]){var _0x382db9={};_0x382db9[_0x452a44[_0x614a('0x35')]]=_0x1a0992;_[_0x614a('0x36')](_0x101d02[_0x614a('0x37')],_0x382db9);}return _0x7110f5[_0x614a('0x26')]('Contact')[_0x614a('0x2a')](_0x101d02,_0x284400)[_0x614a('0x28')]();case _0x614a('0x1b'):var _0xe8293e=_[_0x614a('0x39')](_0x5e4570);if(_0x452a44[_0x614a('0x3a')]){var _0x382db9={};_0x382db9[_0x452a44[_0x614a('0x3a')]]=_0x1a0992;_[_0x614a('0x36')](_0xe8293e['$or'],_0x382db9);}return _0x7110f5[_0x614a('0x26')](_0x614a('0x3b'))[_0x614a('0x2a')](_0xe8293e,_0x284400);case _0x614a('0x1d'):var _0x6f488a=_[_0x614a('0x39')](_0x5e4570);if(_0x452a44[_0x614a('0x3d')]){var _0x382db9={};_0x382db9[_0x452a44['additionalSearchAccount']]=_0x1a0992;_['merge'](_0x6f488a[_0x614a('0x37')],_0x382db9);}return _0x7110f5[_0x614a('0x26')]('Account')[_0x614a('0x2a')](_0x6f488a,_0x284400);default:return null;}})[_0x614a('0x29')](function(_0x2e72e6){if(_0x2e72e6&&_0x2e72e6[_0x614a('0x3f')]){var _0x576028=_[_0x614a('0x40')](_0x2e72e6);if(_0x576028){return BPromise[_0x614a('0x2d')]({'id':_0x576028['Id'],'name':_0x576028[_0x614a('0x2e')],'phone':_0x576028['Phone'],'endUserType':_0x576028[_0x614a('0x41')][_0x614a('0x42')][_0x614a('0x43')]()});}}})[_0x614a('0x29')](function(_0x94da48){if(_0x94da48){logger[_0x614a('0x22')](_0x614a('0x44'),_0x94da48[_0x614a('0x1a')],_0x1a0992);return BPromise[_0x614a('0x2d')](_0x94da48);}else{logger[_0x614a('0x22')]('Enduser\x20with\x20phone\x20%s\x20not\x20found',_0x1a0992);var _0x11b4f5={'Phone':_0x1a0992};if(_0x452a44['moduleCreate']){if(_0x452a44[_0x614a('0x45')]===_0x614a('0x19')){logger[_0x614a('0x22')](_0x614a('0x46'),_0x1a0992,_0x452a44[_0x614a('0x45')]);_0x11b4f5['LastName']=_0x138e51!==_0x614a('0x47')?_0x138e51:util[_0x614a('0x48')]('Caller\x20-\x20%s',_0x1a0992);}else if(_0x452a44[_0x614a('0x45')]===_0x614a('0x1b')){logger[_0x614a('0x22')](_0x614a('0x46'),_0x1a0992,_0x452a44['moduleCreate']);_0x11b4f5[_0x614a('0x49')]=_0x138e51!==_0x614a('0x47')?_0x138e51:util['format'](_0x614a('0x4a'),_0x1a0992);_0x11b4f5['Company']=_0x614a('0x4b');}else if(_0x452a44[_0x614a('0x45')]===_0x614a('0x1d')){logger[_0x614a('0x22')]('Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.',_0x1a0992,_0x452a44['moduleCreate']);_0x11b4f5['Name']=_0x138e51!==_0x614a('0x47')?_0x138e51:util[_0x614a('0x48')]('Caller\x20-\x20%s',_0x1a0992);}else{return null;}}return _0x7110f5[_0x614a('0x26')](_[_0x614a('0x4c')](_0x452a44['moduleCreate']))[_0x614a('0x24')](_0x11b4f5)[_0x614a('0x29')](function(_0x1c1cc1){return BPromise[_0x614a('0x2d')]({'id':_0x1c1cc1['id'],'endUserType':_0x452a44['moduleCreate']});});}});}function getCustomFields(_0x661e12,_0x29ec){var _0x5eb2ab={};if(_0x661e12[_0x614a('0x3f')]>0x0){_['forEach'](_0x661e12,function(_0x39cddf){if(_[_0x614a('0x4d')](['string',_0x614a('0x4e')],_0x39cddf['type'])&&_0x39cddf[_0x614a('0x4f')]){_0x5eb2ab[_0x39cddf[_0x614a('0x4f')]]=_0x39cddf[_0x614a('0x50')][_0x614a('0x51')]();}else if(_0x39cddf['type']==='variable'&&_0x39cddf['variableName']&&_0x39cddf[_0x614a('0x4f')]){_0x29ec[_0x39cddf[_0x614a('0x52')]]&&(_0x5eb2ab[_0x39cddf[_0x614a('0x4f')]]=_0x29ec[_0x39cddf[_0x614a('0x52')]][_0x614a('0x51')]());}else if(_0x39cddf[_0x614a('0x42')]===_0x614a('0x53')&&_0x39cddf[_0x614a('0x54')]&&_0x39cddf[_0x614a('0x54')][_0x614a('0x55')]&&_0x39cddf[_0x614a('0x4f')]){_0x29ec[_0x39cddf[_0x614a('0x54')][_0x614a('0x55')][_0x614a('0x43')]()]&&(_0x5eb2ab[_0x39cddf['idField']]=_0x29ec[_0x39cddf[_0x614a('0x54')][_0x614a('0x55')][_0x614a('0x43')]()]['toString']());}});}return _0x5eb2ab;}function getConnection(_0x49783b){var _0x524919=_0x49783b[_0x614a('0x56')][_0x614a('0x57')](_0x49783b[_0x614a('0x58')]);var _0x2d61fa=new jsforce[(_0x614a('0x59'))]({'oauth2':{'loginUrl':_0x49783b[_0x614a('0x5a')]||_0x614a('0x5b'),'clientId':_0x49783b['clientId'],'clientSecret':_0x49783b[_0x614a('0x5c')]}});return _0x2d61fa[_0x614a('0x5d')](_0x49783b[_0x614a('0x5e')],_0x524919)[_0x614a('0x29')](function(){logger['info'](_0x614a('0x5f'));return _0x2d61fa;});}exports['queue']=function(_0x42ee72,_0x1fc87d,_0x312f2e,_0xd37c56,_0x48543f,_0x34696a){var _0x10e860,_0x188dd5,_0x3884e2,_0x38ab51;_0x34696a[_0x614a('0x60')]=intUtil[_0x614a('0x61')](_0x34696a[_0x614a('0x60')]);_0x34696a[_0x614a('0x5a')]=intUtil[_0x614a('0x61')](_0x34696a[_0x614a('0x5a')]);if(_0x48543f&&_0x48543f[_0x614a('0x62')]){logger[_0x614a('0x22')](_0x614a('0x63'),_0x614a('0x64'));_0x1fc87d[_0x614a('0x65')]=util[_0x614a('0x48')](_0x614a('0x66'),_0x34696a[_0x614a('0x60')],_0x1fc87d[_0x614a('0x67')],md5(_0x1fc87d[_0x614a('0x67')]));}else{_0x1fc87d[_0x614a('0x65')]='';}return getConnection(_0x34696a)[_0x614a('0x29')](function(_0x3ab422){_0x38ab51=_0x3ab422;return getUser(_0x34696a,_0xd37c56['email'],_0x38ab51);})[_0x614a('0x29')](function(_0x4287ea){_0x10e860=_0x4287ea;return getEndUser(_0x34696a,_0x312f2e,_0x1fc87d[_0x614a('0x68')],_0x1fc87d[_0x614a('0x69')],_0x38ab51);})['then'](function(_0x4fe4d7){_0x188dd5=_0x4fe4d7;return getTicket(_0x34696a,_0x10e860,_0x188dd5,_0x312f2e,_0x1fc87d,_0x312f2e[_0x614a('0x6a')],_0x38ab51,_0x614a('0x6b'));})[_0x614a('0x29')](function(_0x1414a9){_0x3884e2=_0x1414a9;logger[_0x614a('0x22')](_0x614a('0x6c'),_0x3884e2['id']);logger['info']('[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x3884e2['id'],_0xd37c56['name'],_0x34696a[_0x614a('0x42')]);switch(_0x34696a[_0x614a('0x42')]){case _0x614a('0x6d'):emit(util[_0x614a('0x48')](_0x614a('0x6e'),_0xd37c56['name']),_0x614a('0x6f'),{'recordId':_0x3884e2['id']});break;case _0x614a('0x70'):emit(util[_0x614a('0x48')](_0x614a('0x6e'),_0xd37c56[_0x614a('0x55')]),'trigger:browser:url',{'uri':util[_0x614a('0x48')](_0x614a('0x71'),_0x38ab51[_0x614a('0x72')],_0x3884e2['id'])});break;default:logger[_0x614a('0x73')](_0x614a('0x74'));}})[_0x614a('0x75')](function(_0x46cd47){logger[_0x614a('0x73')]('[QUEUE]',_0x46cd47);});};exports['outbound']=function(_0x15cf03,_0x1ce1c6,_0x5c391,_0x4c80dd,_0x5413fe,_0x145278,_0x2ef077){var _0x250e3c,_0x38ae94,_0x1a9f98,_0x3806e8;_0x145278[_0x614a('0x60')]=intUtil[_0x614a('0x61')](_0x145278['serverUrl']);_0x145278['remoteUri']=intUtil[_0x614a('0x61')](_0x145278['remoteUri']);if(_0x2ef077&&_0x2ef077[_0x614a('0x76')]&&_0x2ef077[_0x614a('0x76')]!==_0x614a('0x77')){logger[_0x614a('0x22')](_0x614a('0x78'),_0x614a('0x64'));_0x1ce1c6[_0x614a('0x65')]=util[_0x614a('0x48')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x145278[_0x614a('0x60')],_0x1ce1c6[_0x614a('0x67')],md5(_0x1ce1c6[_0x614a('0x67')]));}return getConnection(_0x145278)[_0x614a('0x29')](function(_0x56ab1e){_0x3806e8=_0x56ab1e;return getUser(_0x145278,_0x4c80dd[_0x614a('0x79')],_0x3806e8);})[_0x614a('0x29')](function(_0x1e344d){_0x250e3c=_0x1e344d;return getEndUser(_0x145278,_0x5c391,_0x1ce1c6[_0x614a('0x7a')],_0x1ce1c6['destcalleridnum'],_0x3806e8);})['then'](function(_0x3e7367){_0x38ae94=_0x3e7367;return getTicket(_0x145278,_0x250e3c,_0x38ae94,_0x5c391,_0x1ce1c6,_0x5c391['Fields'],_0x3806e8,'outbound');})['then'](function(_0x3df321){_0x1a9f98=_0x3df321;logger[_0x614a('0x22')](_0x614a('0x7b'),_0x1a9f98['id']);logger[_0x614a('0x22')](_0x614a('0x7c'),_0x1a9f98['id'],_0x4c80dd[_0x614a('0x55')],_0x145278['type']);switch(_0x145278[_0x614a('0x42')]){case'integrationTab':emit(util[_0x614a('0x48')](_0x614a('0x6e'),_0x4c80dd['name']),_0x614a('0x6f'),{'recordId':_0x1a9f98['id']});break;case _0x614a('0x70'):emit(util[_0x614a('0x48')]('user:%s',_0x4c80dd[_0x614a('0x55')]),_0x614a('0x7d'),{'uri':util[_0x614a('0x48')](_0x614a('0x71'),_0x3806e8[_0x614a('0x72')],_0x1a9f98['id'])});break;default:logger[_0x614a('0x73')](_0x614a('0x78'),_0x614a('0x7e'));}})['catch'](function(_0x2338a9){logger['error'](_0x614a('0x78'),_0x2338a9);});};exports[_0x614a('0x7f')]=function(_0x5025b0,_0x28a37f,_0x5857b3,_0x57c333,_0x135477,_0x127c5a){var _0x1f85ff,_0x4af4a5,_0x495a18,_0x1d63f7;_0x127c5a[_0x614a('0x60')]=intUtil['stripTrailingSlash'](_0x127c5a[_0x614a('0x60')]);_0x127c5a[_0x614a('0x5a')]=intUtil[_0x614a('0x61')](_0x127c5a[_0x614a('0x5a')]);if(_0x135477&&_0x135477[_0x614a('0x62')]){logger[_0x614a('0x22')]('['+_0x28a37f[_0x614a('0x80')][_0x614a('0x81')]()+']',_0x614a('0x64'));_0x28a37f[_0x614a('0x65')]=util[_0x614a('0x48')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x127c5a['serverUrl'],_0x28a37f['uniqueid'],md5(_0x28a37f['uniqueid']));}else{_0x28a37f['recordingURL']='';}return getConnection(_0x127c5a)['then'](function(_0x5c559b){_0x1d63f7=_0x5c559b;if(!_['isNil'](_0x57c333)){return getUser(_0x127c5a,_0x57c333[_0x614a('0x55')],_0x1d63f7);}else{return getUser(_0x127c5a,null,_0x1d63f7);}})[_0x614a('0x29')](function(_0x40ab01){_0x1f85ff=_0x40ab01;return getEndUser(_0x127c5a,_0x5857b3,_0x28a37f[_0x614a('0x68')],_0x28a37f[_0x614a('0x69')],_0x1d63f7);})[_0x614a('0x29')](function(_0x30b205){_0x4af4a5=_0x30b205;return getTicket(_0x127c5a,_0x1f85ff,_0x4af4a5,_0x5857b3,_0x28a37f,_0x5857b3[_0x614a('0x6a')],_0x1d63f7);})['then'](function(_0x302638){_0x495a18=_0x302638;logger['info']('['+_0x28a37f[_0x614a('0x80')]['toUpperCase']()+_0x614a('0x82'),_0x495a18['id']);logger['info']('['+_0x28a37f[_0x614a('0x80')][_0x614a('0x81')]()+_0x614a('0x83'),_0x127c5a[_0x614a('0x42')]);})[_0x614a('0x75')](function(_0x63bda8){logger[_0x614a('0x73')]('['+_0x28a37f[_0x614a('0x80')][_0x614a('0x81')]()+']',_0x63bda8);});};
\ No newline at end of file
+var _0x7fef=['utc','IsReminderSet','IsRecurrence','endUserType','contact','WhoId','account','WhatId','Case','ContactId','AccountId','lead','leadId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','isNil','User','find','execute','then','length','Agent\x20%s\x20found.','identity','user_id','display_name','resolve','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','cloneDeep','additionalSearchContact','merge','$or','sobject','Contact','additionalSearchLead','Lead','additionalSearchAccount','Account','first','Name','type','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','Enduser\x20with\x20phone\x20%s\x20not\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','<unknown>','format','Caller\x20-\x20%s','Company','No\x20Company','create','forEach','includes','string','picklist','content','variable','idField','variableName','toString','Variable','name','concat','securityToken','clientId','login','username','queue','stripTrailingSlash','serverUrl','remoteUri','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','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','trigger:salesforce:display','user:%s','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','recordingFormat','none','[OUTBOUND]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','outbound','[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','unmanaged','lastevent','toUpperCase',']\x20Integration\x20account\x20type\x20%s.','lodash','moment','bluebird','md5','jsforce','ioredis','./util','../../../../config/environment','salesforce','redis','defaults','localhost','socket.io-emitter','emit','assign','getString','ticketType','Task','ActivityDate'];(function(_0x231e16,_0x67347b){var _0x570a7c=function(_0x2c35b4){while(--_0x2c35b4){_0x231e16['push'](_0x231e16['shift']());}};_0x570a7c(++_0x67347b);}(_0x7fef,0x1d9));var _0xf7fe=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x7fef[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xf7fe('0x0'));var rp=require('request-promise');var moment=require(_0xf7fe('0x1'));var BPromise=require(_0xf7fe('0x2'));var md5=require(_0xf7fe('0x3'));var jsforce=require(_0xf7fe('0x4'));var util=require('util');var Redis=require(_0xf7fe('0x5'));var intUtil=require(_0xf7fe('0x6'));var config=require(_0xf7fe('0x7'));var logger=require('../../../../config/logger')(_0xf7fe('0x8'));config[_0xf7fe('0x9')]=_[_0xf7fe('0xa')](config[_0xf7fe('0x9')],{'host':_0xf7fe('0xb'),'port':0x18eb});var io=require(_0xf7fe('0xc'))(new Redis(config[_0xf7fe('0x9')]));function emit(_0x27c0a0,_0x5e7a94,_0x538711){io['to'](_0x27c0a0)[_0xf7fe('0xd')](_0x5e7a94,_0x538711);}function getTicket(_0x40420e,_0x37b7fd,_0x16d6d0,_0x48faae,_0x2c52d8,_0x1904fc,_0x22ed1e,_0x3e1694){var _0x2cd49f=Object[_0xf7fe('0xe')]({},{'OwnerId':_0x37b7fd['id'],'Subject':intUtil[_0xf7fe('0xf')](_0x48faae['Subjects'],_0x2c52d8,'\x20'),'Description':intUtil['getString'](_0x48faae['Descriptions'],_0x2c52d8,'\x0a')},getCustomFields(_0x1904fc,_0x2c52d8));if(_0x16d6d0){if(_0x48faae[_0xf7fe('0x10')]===_0xf7fe('0x11')){_0x2cd49f[_0xf7fe('0x12')]=moment[_0xf7fe('0x13')]();_0x2cd49f[_0xf7fe('0x14')]=![];_0x2cd49f[_0xf7fe('0x15')]=![];if(_0x16d6d0[_0xf7fe('0x16')]===_0xf7fe('0x17')||_0x16d6d0[_0xf7fe('0x16')]==='lead'){_0x2cd49f[_0xf7fe('0x18')]=_0x16d6d0['id'];}else if(_0x16d6d0['endUserType']===_0xf7fe('0x19')){_0x2cd49f[_0xf7fe('0x1a')]=_0x16d6d0['id'];}}else if(_0x48faae[_0xf7fe('0x10')]===_0xf7fe('0x1b')){if(_0x16d6d0[_0xf7fe('0x16')]===_0xf7fe('0x17')){_0x2cd49f[_0xf7fe('0x1c')]=_0x16d6d0['id'];}else if(_0x16d6d0[_0xf7fe('0x16')]===_0xf7fe('0x19')){_0x2cd49f[_0xf7fe('0x1d')]=_0x16d6d0['id'];}else if(_0x16d6d0[_0xf7fe('0x16')]===_0xf7fe('0x1e')&&_0x48faae[_0xf7fe('0x1f')]){_0x2cd49f[_0x48faae[_0xf7fe('0x1f')]]=_0x16d6d0['id'];}else{logger[_0xf7fe('0x20')](_0xf7fe('0x21'));}}}return _0x22ed1e['sobject'](_0x48faae[_0xf7fe('0x10')])['create'](_0x2cd49f);}function getUser(_0x346e8b,_0x75b37f,_0xbef100){if(!_[_0xf7fe('0x22')](_0x75b37f)&&intUtil['validateEmail'](_0x75b37f)){var _0xb1a8fd={'Email':_0x75b37f};var _0x2600f3={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0xbef100['sobject'](_0xf7fe('0x23'))[_0xf7fe('0x24')](_0xb1a8fd,_0x2600f3)[_0xf7fe('0x25')]()[_0xf7fe('0x26')](function(_0x3c5442){if(_0x3c5442[_0xf7fe('0x27')]){var _0x6ccf17=_[_0xf7fe('0x24')](_0x3c5442,function(_0x17766d){return _0x17766d['Email']===_0x75b37f;});if(_0x6ccf17){logger[_0xf7fe('0x20')](_0xf7fe('0x28'),_0x75b37f);return BPromise['resolve']({'id':_0x6ccf17['Id'],'name':_0x6ccf17['Name']});}}else{logger[_0xf7fe('0x20')]('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x75b37f);return _0xbef100[_0xf7fe('0x29')]()[_0xf7fe('0x26')](function(_0x5a462f){return BPromise['resolve']({'id':_0x5a462f[_0xf7fe('0x2a')],'name':_0x5a462f[_0xf7fe('0x2b')]});});}});}else{logger[_0xf7fe('0x20')]('Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.',_0x75b37f);return _0xbef100[_0xf7fe('0x29')]()[_0xf7fe('0x26')](function(_0x25ef54){return BPromise[_0xf7fe('0x2c')]({'id':_0x25ef54[_0xf7fe('0x2a')],'name':_0x25ef54[_0xf7fe('0x2b')]});});}}function getEndUser(_0x4809e4,_0x5df320,_0x43e762,_0x83fd94,_0x83715a){var _0x420098={'$or':{'Phone':_0x83fd94}};var _0x5b9ce5={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0xf7fe('0x2c')]()[_0xf7fe('0x26')](function(){logger[_0xf7fe('0x20')](_0xf7fe('0x2d'),_0x83fd94,_0x5df320['moduleSearch']);switch(_0x5df320[_0xf7fe('0x2e')]){case _0xf7fe('0x2f'):var _0xd3e70c=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320[_0xf7fe('0x31')]){var _0x3e39a5={};_0x3e39a5[_0x5df320[_0xf7fe('0x31')]]=_0x83fd94;_[_0xf7fe('0x32')](_0xd3e70c[_0xf7fe('0x33')],_0x3e39a5);}return _0x83715a[_0xf7fe('0x34')](_0xf7fe('0x35'))[_0xf7fe('0x24')](_0xd3e70c,_0x5b9ce5)[_0xf7fe('0x25')]()[_0xf7fe('0x26')](function(_0x2b0d83){if(_0x2b0d83&&_0x2b0d83['length']){return _0x2b0d83;}else{var _0x4f7603=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320[_0xf7fe('0x36')]){var _0x406042={};_0x406042[_0x5df320['additionalSearchLead']]=_0x83fd94;_[_0xf7fe('0x32')](_0x4f7603[_0xf7fe('0x33')],_0x406042);}return _0x83715a['sobject'](_0xf7fe('0x37'))['find'](_0x4f7603,_0x5b9ce5);}});case'account_contact_lead':var _0x3ad2fd=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320['additionalSearchAccount']){var _0x3e39a5={};_0x3e39a5[_0x5df320[_0xf7fe('0x38')]]=_0x83fd94;_[_0xf7fe('0x32')](_0x3ad2fd['$or'],_0x3e39a5);}return _0x83715a['sobject'](_0xf7fe('0x39'))[_0xf7fe('0x24')](_0x3ad2fd,_0x5b9ce5)['execute']()[_0xf7fe('0x26')](function(_0x4ef5e7){if(_0x4ef5e7&&_0x4ef5e7['length']){return _0x4ef5e7;}else{var _0x91e5cd=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320['additionalSearchContact']){var _0x3818cc={};_0x3818cc[_0x5df320[_0xf7fe('0x31')]]=_0x83fd94;_[_0xf7fe('0x32')](_0x91e5cd['$or'],_0x3818cc);}return _0x83715a[_0xf7fe('0x34')](_0xf7fe('0x35'))[_0xf7fe('0x24')](_0x91e5cd,_0x5b9ce5)[_0xf7fe('0x26')](function(_0x265d96){if(_0x265d96&&_0x265d96['length']){return _0x265d96;}else{var _0x55ded4=_['cloneDeep'](_0x420098);if(_0x5df320[_0xf7fe('0x36')]){var _0x3e25f2={};_0x3e25f2[_0x5df320[_0xf7fe('0x36')]]=_0x83fd94;_['merge'](_0x55ded4[_0xf7fe('0x33')],_0x3e25f2);}return _0x83715a[_0xf7fe('0x34')](_0xf7fe('0x37'))[_0xf7fe('0x24')](_0x55ded4,_0x5b9ce5);}});}});case _0xf7fe('0x17'):var _0xd3e70c=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320['additionalSearchContact']){var _0x3e39a5={};_0x3e39a5[_0x5df320['additionalSearchContact']]=_0x83fd94;_[_0xf7fe('0x32')](_0xd3e70c[_0xf7fe('0x33')],_0x3e39a5);}return _0x83715a[_0xf7fe('0x34')](_0xf7fe('0x35'))[_0xf7fe('0x24')](_0xd3e70c,_0x5b9ce5)[_0xf7fe('0x25')]();case'lead':var _0x1b6ee5=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320[_0xf7fe('0x36')]){var _0x3e39a5={};_0x3e39a5[_0x5df320[_0xf7fe('0x36')]]=_0x83fd94;_[_0xf7fe('0x32')](_0x1b6ee5[_0xf7fe('0x33')],_0x3e39a5);}return _0x83715a[_0xf7fe('0x34')](_0xf7fe('0x37'))[_0xf7fe('0x24')](_0x1b6ee5,_0x5b9ce5);case'account':var _0x3ad2fd=_[_0xf7fe('0x30')](_0x420098);if(_0x5df320[_0xf7fe('0x38')]){var _0x3e39a5={};_0x3e39a5[_0x5df320[_0xf7fe('0x38')]]=_0x83fd94;_[_0xf7fe('0x32')](_0x3ad2fd[_0xf7fe('0x33')],_0x3e39a5);}return _0x83715a[_0xf7fe('0x34')](_0xf7fe('0x39'))[_0xf7fe('0x24')](_0x3ad2fd,_0x5b9ce5);default:return null;}})[_0xf7fe('0x26')](function(_0x1184a7){if(_0x1184a7&&_0x1184a7[_0xf7fe('0x27')]){var _0x3604dd=_[_0xf7fe('0x3a')](_0x1184a7);if(_0x3604dd){return BPromise[_0xf7fe('0x2c')]({'id':_0x3604dd['Id'],'name':_0x3604dd[_0xf7fe('0x3b')],'phone':_0x3604dd['Phone'],'endUserType':_0x3604dd['attributes'][_0xf7fe('0x3c')][_0xf7fe('0x3d')]()});}}})[_0xf7fe('0x26')](function(_0x12457a){if(_0x12457a){logger['info'](_0xf7fe('0x3e'),_0x12457a[_0xf7fe('0x16')],_0x83fd94);return BPromise['resolve'](_0x12457a);}else{logger[_0xf7fe('0x20')](_0xf7fe('0x3f'),_0x83fd94);var _0x5592fb={'Phone':_0x83fd94};if(_0x5df320['moduleCreate']){if(_0x5df320[_0xf7fe('0x40')]===_0xf7fe('0x17')){logger[_0xf7fe('0x20')](_0xf7fe('0x41'),_0x83fd94,_0x5df320[_0xf7fe('0x40')]);_0x5592fb['LastName']=_0x43e762!==_0xf7fe('0x42')?_0x43e762:util[_0xf7fe('0x43')](_0xf7fe('0x44'),_0x83fd94);}else if(_0x5df320['moduleCreate']===_0xf7fe('0x1e')){logger[_0xf7fe('0x20')](_0xf7fe('0x41'),_0x83fd94,_0x5df320[_0xf7fe('0x40')]);_0x5592fb['LastName']=_0x43e762!==_0xf7fe('0x42')?_0x43e762:util['format'](_0xf7fe('0x44'),_0x83fd94);_0x5592fb[_0xf7fe('0x45')]=_0xf7fe('0x46');}else if(_0x5df320[_0xf7fe('0x40')]===_0xf7fe('0x19')){logger['info'](_0xf7fe('0x41'),_0x83fd94,_0x5df320[_0xf7fe('0x40')]);_0x5592fb['Name']=_0x43e762!=='<unknown>'?_0x43e762:util[_0xf7fe('0x43')](_0xf7fe('0x44'),_0x83fd94);}else{return null;}}return _0x83715a[_0xf7fe('0x34')](_['upperFirst'](_0x5df320['moduleCreate']))[_0xf7fe('0x47')](_0x5592fb)[_0xf7fe('0x26')](function(_0x48ecac){return BPromise['resolve']({'id':_0x48ecac['id'],'endUserType':_0x5df320['moduleCreate']});});}});}function getCustomFields(_0x57fed6,_0xb58a8b){var _0x2e5d3f={};if(_0x57fed6['length']>0x0){_[_0xf7fe('0x48')](_0x57fed6,function(_0x1bea08){if(_[_0xf7fe('0x49')]([_0xf7fe('0x4a'),_0xf7fe('0x4b')],_0x1bea08['type'])&&_0x1bea08['idField']){_0x2e5d3f[_0x1bea08['idField']]=_0x1bea08[_0xf7fe('0x4c')]['toString']();}else if(_0x1bea08[_0xf7fe('0x3c')]===_0xf7fe('0x4d')&&_0x1bea08['variableName']&&_0x1bea08[_0xf7fe('0x4e')]){_0xb58a8b[_0x1bea08[_0xf7fe('0x4f')]]&&(_0x2e5d3f[_0x1bea08[_0xf7fe('0x4e')]]=_0xb58a8b[_0x1bea08['variableName']][_0xf7fe('0x50')]());}else if(_0x1bea08[_0xf7fe('0x3c')]==='customVariable'&&_0x1bea08[_0xf7fe('0x51')]&&_0x1bea08[_0xf7fe('0x51')][_0xf7fe('0x52')]&&_0x1bea08[_0xf7fe('0x4e')]){_0xb58a8b[_0x1bea08[_0xf7fe('0x51')][_0xf7fe('0x52')]['toLowerCase']()]&&(_0x2e5d3f[_0x1bea08[_0xf7fe('0x4e')]]=_0xb58a8b[_0x1bea08[_0xf7fe('0x51')][_0xf7fe('0x52')]['toLowerCase']()][_0xf7fe('0x50')]());}});}return _0x2e5d3f;}function getConnection(_0x5ceda1){var _0x2d9368=_0x5ceda1['password'][_0xf7fe('0x53')](_0x5ceda1[_0xf7fe('0x54')]);var _0x42f298=new jsforce['Connection']({'oauth2':{'loginUrl':_0x5ceda1['remoteUri']||'https://login.salesforce.com','clientId':_0x5ceda1[_0xf7fe('0x55')],'clientSecret':_0x5ceda1['clientSecret']}});return _0x42f298[_0xf7fe('0x56')](_0x5ceda1[_0xf7fe('0x57')],_0x2d9368)['then'](function(){logger[_0xf7fe('0x20')]('Connection\x20established.');return _0x42f298;});}exports[_0xf7fe('0x58')]=function(_0x4bf203,_0x389f40,_0x4f9449,_0x3218fa,_0x1f0229,_0x561c35){var _0x3f4d6e,_0x3b12be,_0xbc7d7f,_0x270bf8;_0x561c35['serverUrl']=intUtil[_0xf7fe('0x59')](_0x561c35[_0xf7fe('0x5a')]);_0x561c35[_0xf7fe('0x5b')]=intUtil[_0xf7fe('0x59')](_0x561c35[_0xf7fe('0x5b')]);if(_0x1f0229&&_0x1f0229[_0xf7fe('0x5c')]){logger['info'](_0xf7fe('0x5d'),_0xf7fe('0x5e'));_0x389f40[_0xf7fe('0x5f')]=util[_0xf7fe('0x43')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x561c35[_0xf7fe('0x5a')],_0x389f40['uniqueid'],md5(_0x389f40[_0xf7fe('0x60')]));}else{_0x389f40['recordingURL']='';}return getConnection(_0x561c35)[_0xf7fe('0x26')](function(_0x44519c){_0x270bf8=_0x44519c;return getUser(_0x561c35,_0x3218fa[_0xf7fe('0x61')],_0x270bf8);})[_0xf7fe('0x26')](function(_0x9fbc8){_0x3f4d6e=_0x9fbc8;return getEndUser(_0x561c35,_0x4f9449,_0x389f40[_0xf7fe('0x62')],_0x389f40[_0xf7fe('0x63')],_0x270bf8);})[_0xf7fe('0x26')](function(_0x4032e4){_0x3b12be=_0x4032e4;return getTicket(_0x561c35,_0x3f4d6e,_0x3b12be,_0x4f9449,_0x389f40,_0x4f9449[_0xf7fe('0x64')],_0x270bf8,'queue');})[_0xf7fe('0x26')](function(_0xdcaca1){_0xbc7d7f=_0xdcaca1;logger[_0xf7fe('0x20')](_0xf7fe('0x65'),_0xbc7d7f['id']);logger['info'](_0xf7fe('0x66'),_0xbc7d7f['id'],_0x3218fa[_0xf7fe('0x52')],_0x561c35[_0xf7fe('0x3c')]);switch(_0x561c35[_0xf7fe('0x3c')]){case _0xf7fe('0x67'):emit(util[_0xf7fe('0x43')]('user:%s',_0x3218fa['name']),_0xf7fe('0x68'),{'recordId':_0xbc7d7f['id']});break;case'newTab':emit(util[_0xf7fe('0x43')](_0xf7fe('0x69'),_0x3218fa[_0xf7fe('0x52')]),_0xf7fe('0x6a'),{'uri':util['format'](_0xf7fe('0x6b'),_0x270bf8[_0xf7fe('0x6c')],_0xbc7d7f['id'])});break;default:logger[_0xf7fe('0x6d')](_0xf7fe('0x6e'));}})[_0xf7fe('0x6f')](function(_0xf86a30){logger[_0xf7fe('0x6d')](_0xf7fe('0x5d'),_0xf86a30);});};exports['outbound']=function(_0x48a380,_0x3a3d45,_0x169f0a,_0x2dae73,_0x2b1ec1,_0x3d178a,_0x32980b){var _0x3219c5,_0x36157d,_0x4cae21,_0x1f2879;_0x3d178a[_0xf7fe('0x5a')]=intUtil['stripTrailingSlash'](_0x3d178a['serverUrl']);_0x3d178a[_0xf7fe('0x5b')]=intUtil[_0xf7fe('0x59')](_0x3d178a[_0xf7fe('0x5b')]);if(_0x32980b&&_0x32980b['recordingFormat']&&_0x32980b[_0xf7fe('0x70')]!==_0xf7fe('0x71')){logger[_0xf7fe('0x20')](_0xf7fe('0x72'),'Recording\x20is\x20enabled!');_0x3a3d45['recordingURL']=util[_0xf7fe('0x43')](_0xf7fe('0x73'),_0x3d178a['serverUrl'],_0x3a3d45[_0xf7fe('0x60')],md5(_0x3a3d45['uniqueid']));}return getConnection(_0x3d178a)[_0xf7fe('0x26')](function(_0x3a2cbe){_0x1f2879=_0x3a2cbe;return getUser(_0x3d178a,_0x2dae73[_0xf7fe('0x61')],_0x1f2879);})[_0xf7fe('0x26')](function(_0x4f67be){_0x3219c5=_0x4f67be;return getEndUser(_0x3d178a,_0x169f0a,_0x3a3d45[_0xf7fe('0x74')],_0x3a3d45['destcalleridnum'],_0x1f2879);})[_0xf7fe('0x26')](function(_0x438824){_0x36157d=_0x438824;return getTicket(_0x3d178a,_0x3219c5,_0x36157d,_0x169f0a,_0x3a3d45,_0x169f0a['Fields'],_0x1f2879,_0xf7fe('0x75'));})[_0xf7fe('0x26')](function(_0x164f84){_0x4cae21=_0x164f84;logger[_0xf7fe('0x20')]('[OUTBOUND]\x20Ticket\x20%s\x20created.',_0x4cae21['id']);logger[_0xf7fe('0x20')](_0xf7fe('0x76'),_0x4cae21['id'],_0x2dae73[_0xf7fe('0x52')],_0x3d178a[_0xf7fe('0x3c')]);switch(_0x3d178a[_0xf7fe('0x3c')]){case _0xf7fe('0x67'):emit(util['format'](_0xf7fe('0x69'),_0x2dae73[_0xf7fe('0x52')]),'trigger:salesforce:display',{'recordId':_0x4cae21['id']});break;case'newTab':emit(util[_0xf7fe('0x43')](_0xf7fe('0x69'),_0x2dae73[_0xf7fe('0x52')]),_0xf7fe('0x6a'),{'uri':util[_0xf7fe('0x43')](_0xf7fe('0x6b'),_0x1f2879[_0xf7fe('0x6c')],_0x4cae21['id'])});break;default:logger[_0xf7fe('0x6d')](_0xf7fe('0x72'),'Salesforce\x20account\x20type\x20not\x20recognized');}})['catch'](function(_0xf7ea0a){logger[_0xf7fe('0x6d')]('[OUTBOUND]',_0xf7ea0a);});};exports[_0xf7fe('0x77')]=function(_0x2fe9e4,_0x296cbd,_0x4f3d5d,_0x10d213,_0x2bf7fc,_0x43e493){var _0x5bbfd1,_0x35cadd,_0x11da17,_0x490e37;_0x43e493['serverUrl']=intUtil[_0xf7fe('0x59')](_0x43e493[_0xf7fe('0x5a')]);_0x43e493['remoteUri']=intUtil[_0xf7fe('0x59')](_0x43e493[_0xf7fe('0x5b')]);if(_0x2bf7fc&&_0x2bf7fc[_0xf7fe('0x5c')]){logger['info']('['+_0x296cbd[_0xf7fe('0x78')]['toUpperCase']()+']',_0xf7fe('0x5e'));_0x296cbd['recordingURL']=util['format'](_0xf7fe('0x73'),_0x43e493[_0xf7fe('0x5a')],_0x296cbd[_0xf7fe('0x60')],md5(_0x296cbd[_0xf7fe('0x60')]));}else{_0x296cbd[_0xf7fe('0x5f')]='';}return getConnection(_0x43e493)[_0xf7fe('0x26')](function(_0x1f6ba6){_0x490e37=_0x1f6ba6;if(!_[_0xf7fe('0x22')](_0x10d213)){return getUser(_0x43e493,_0x10d213[_0xf7fe('0x52')],_0x490e37);}else{return getUser(_0x43e493,null,_0x490e37);}})[_0xf7fe('0x26')](function(_0x20528f){_0x5bbfd1=_0x20528f;return getEndUser(_0x43e493,_0x4f3d5d,_0x296cbd[_0xf7fe('0x62')],_0x296cbd['calleridnum'],_0x490e37);})[_0xf7fe('0x26')](function(_0x21505f){_0x35cadd=_0x21505f;return getTicket(_0x43e493,_0x5bbfd1,_0x35cadd,_0x4f3d5d,_0x296cbd,_0x4f3d5d[_0xf7fe('0x64')],_0x490e37);})['then'](function(_0xfa750b){_0x11da17=_0xfa750b;logger[_0xf7fe('0x20')]('['+_0x296cbd['lastevent']['toUpperCase']()+']\x20Ticket\x20%s\x20created.',_0x11da17['id']);logger[_0xf7fe('0x20')]('['+_0x296cbd[_0xf7fe('0x78')][_0xf7fe('0x79')]()+_0xf7fe('0x7a'),_0x43e493['type']);})[_0xf7fe('0x6f')](function(_0x1fb9b9){logger[_0xf7fe('0x6d')]('['+_0x296cbd[_0xf7fe('0x78')][_0xf7fe('0x79')]()+']',_0x1fb9b9);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8864=['variable','variableName','idField','type','Variable',']\x20getTicket\x20input\x20crm','outbound','incident','assign','getString','Subjects','Descriptions','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','Incident','Incident\x20-\x20','push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','Tags','map','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','/nav_to.do?uri=incident.do?sys_id%3D','format','user:%s','emit','trigger:browser:url','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','stripTrailingSlash','serverUrl','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','callDirection','queue','unmanaged','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','[OUTBOUND]','recordingURL','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','name','lodash','request-promise','util','ioredis','./util','../../../../config/environment','../../../../config/logger','servicenow','redis','defaults','localhost','sys_user?sysparm_query=user_name%3Dadmin','then','result','length','adminId','toUpperCase','],\x20getAdminUser\x20crm','catch','error','message','info','],\x20getUser\x20input\x20crm','validateEmail','userEmail','sys_user?sysparm_query=email%3D','],\x20getUser\x20rp\x20obj','],\x20getUser\x20entity','true','userId','sys_id','adminEmail',']\x20using\x20admin\x20profile','],\x20createEndUser\x20input\x20crm','POST','endUserNumber','user','System','endUserId','GET','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','forEach','includes','string','nameField','toLowerCase','toString','customField'];(function(_0xf8ee99,_0x4ad81a){var _0x3ed793=function(_0x4a5600){while(--_0x4a5600){_0xf8ee99['push'](_0xf8ee99['shift']());}};_0x3ed793(++_0x4ad81a);}(_0x8864,0x11c));var _0x4886=function(_0x236380,_0x25476c){_0x236380=_0x236380-0x0;var _0x2e4104=_0x8864[_0x236380];return _0x2e4104;};'use strict';var _=require(_0x4886('0x0'));var Promise=require('bluebird');var rp=require(_0x4886('0x1'));var util=require(_0x4886('0x2'));var md5=require('md5');var Redis=require(_0x4886('0x3'));var intUtil=require(_0x4886('0x4'));var config=require(_0x4886('0x5'));var logger=require(_0x4886('0x6'))(_0x4886('0x7'));config[_0x4886('0x8')]=_[_0x4886('0x9')](config[_0x4886('0x8')],{'host':_0x4886('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x4886('0x8')]));function getAdminUser(_0x5c7086,_0x173f2b,_0x4ef65d,_0xfdad46,_0x2f6319,_0x5821a5){return new Promise(function(_0x11f23a,_0x305ef9){var _0x535d75={'method':'GET','uri':_0xfdad46+_0x4886('0xb')+'&'+_0x2f6319+'&'+_0x5821a5,'auth':_0x173f2b,'json':!![]};return rp(_0x535d75)[_0x4886('0xc')](function(_0x2a3f78){if(_0x2a3f78[_0x4886('0xd')][_0x4886('0xe')]>0x0){_0x4ef65d[_0x4886('0xf')]=_0x2a3f78['result'][0x0]['sys_id'];}logger['info']('['+[_0x5c7086[_0x4886('0x10')]()]+_0x4886('0x11'),_0x4ef65d);_0x11f23a(_0x4ef65d);})[_0x4886('0x12')](function(_0x1e00f3){logger[_0x4886('0x13')]('['+[_0x5c7086[_0x4886('0x10')]()]+']',_0x1e00f3[_0x4886('0x14')]);_0x305ef9(_0x1e00f3[_0x4886('0x14')]);});});}function getUser(_0x379c2c,_0x40b430,_0x824014,_0x115347,_0x3bb474){return function(_0x30488f){logger[_0x4886('0x15')]('['+[_0x379c2c['toUpperCase']()]+_0x4886('0x16'),_0x30488f);return new Promise(function(_0x4bde87,_0x36da63){if(intUtil[_0x4886('0x17')](_0x30488f[_0x4886('0x18')])){var _0x229b89={'method':'GET','uri':_0x824014+_0x4886('0x19')+_0x30488f['userEmail']+'&'+_0x115347+'&'+_0x3bb474,'auth':_0x40b430,'json':!![]};logger[_0x4886('0x15')]('['+[_0x379c2c[_0x4886('0x10')]()]+_0x4886('0x1a'),_0x229b89);return rp(_0x229b89)[_0x4886('0xc')](function(_0x17ee8c){logger[_0x4886('0x15')]('['+[_0x379c2c[_0x4886('0x10')]()]+_0x4886('0x1b'),_0x17ee8c);if(_0x17ee8c['result'][_0x4886('0xe')]>0x0&&String(_0x17ee8c[_0x4886('0xd')][0x0]['active'])===_0x4886('0x1c')){_0x30488f[_0x4886('0x1d')]=_0x17ee8c['result'][0x0][_0x4886('0x1e')];}else{_0x30488f[_0x4886('0x1d')]=_0x30488f[_0x4886('0xf')];_0x30488f['userEmail']=_0x30488f[_0x4886('0x1f')];}logger[_0x4886('0x15')]('['+[_0x379c2c[_0x4886('0x10')]()]+'],\x20getUser\x20crm',_0x30488f);_0x4bde87(_0x30488f);})[_0x4886('0x12')](function(_0x548b40){logger[_0x4886('0x13')]('['+[_0x379c2c[_0x4886('0x10')]()]+']',_0x548b40['message']);_0x36da63(_0x548b40['message']);});}else{logger['info']('['+[_0x379c2c[_0x4886('0x10')]()]+_0x4886('0x20'));_0x30488f[_0x4886('0x1d')]=_0x30488f[_0x4886('0xf')];_0x30488f['userEmail']=_0x30488f[_0x4886('0x1f')];_0x4bde87(_0x30488f);}});};}function createEndUser(_0x44bbc1,_0x34ccd1,_0x118709,_0x3d83b8,_0x1b99a4){logger[_0x4886('0x15')]('['+[_0x44bbc1[_0x4886('0x10')]()]+_0x4886('0x21'),_0x118709);return new Promise(function(_0x4364d6,_0xd9e820){var _0x2214d5={'method':_0x4886('0x22'),'uri':_0x3d83b8+'sys_user?'+_0x1b99a4,'body':{'user_name':_0x118709[_0x4886('0x23')],'roles':_0x4886('0x24'),'first_name':_0x118709[_0x4886('0x23')],'active':_0x4886('0x1c'),'date_format':_0x4886('0x25'),'phone':_0x118709[_0x4886('0x23')]},'auth':_0x34ccd1,'json':!![]};return rp(_0x2214d5)['then'](function(_0x4aae20){logger['info']('['+[_0x44bbc1[_0x4886('0x10')]()]+'],\x20EndUser\x20schema',_0x4aae20[_0x4886('0xd')]);_0x118709[_0x4886('0x26')]=_0x4aae20['result'][_0x4886('0x1e')];_0x4364d6(_0x118709);})[_0x4886('0x12')](function(_0x2767ae){logger[_0x4886('0x13')]('['+[_0x44bbc1[_0x4886('0x10')]()]+']',_0x2767ae[_0x4886('0x14')]);_0xd9e820(_0x2767ae[_0x4886('0x14')]);});});}function getEndUser(_0x220ac6,_0x1231fe,_0x351e18,_0x311fa5,_0x2a80a5){return function(_0x16f88e){logger[_0x4886('0x15')]('['+[_0x220ac6[_0x4886('0x10')]()]+'],\x20getEndUser\x20input\x20crm',_0x16f88e);return new Promise(function(_0x337971,_0x5ec10c){var _0x1b4f26={'method':_0x4886('0x27'),'uri':_0x351e18+'sys_user?sysparm_query=phone%3D'+_0x16f88e[_0x4886('0x23')]+'&'+_0x311fa5+'&'+_0x2a80a5,'auth':_0x1231fe,'json':!![]};return rp(_0x1b4f26)[_0x4886('0xc')](function(_0x1d2253){if(_0x1d2253['result']['length']>0x0){_0x16f88e[_0x4886('0x26')]=_0x1d2253[_0x4886('0xd')][0x0]['sys_id'];logger[_0x4886('0x15')]('['+[_0x220ac6[_0x4886('0x10')]()]+_0x4886('0x28'),_0x16f88e);_0x337971(_0x16f88e);}else{return createEndUser(_0x220ac6,_0x1231fe,_0x16f88e,_0x351e18,_0x311fa5)[_0x4886('0xc')](function(_0x21ad01){logger[_0x4886('0x15')]('['+[_0x220ac6[_0x4886('0x10')]()]+_0x4886('0x29'),_0x21ad01);_0x337971(_0x21ad01);});}})[_0x4886('0x12')](function(_0x4ed12d){logger[_0x4886('0x13')]('['+[_0x220ac6[_0x4886('0x10')]()]+']',_0x4ed12d[_0x4886('0x14')]);_0x5ec10c(_0x4ed12d[_0x4886('0x14')]);});});};}function getCustomFields(_0x4c5eb2,_0x3f6433){var _0x3421c4={};if(_0x4c5eb2[_0x4886('0xe')]>0x0){_[_0x4886('0x2a')](_0x4c5eb2,function(_0x432cfd){if(_[_0x4886('0x2b')]([_0x4886('0x2c'),'picklist'],_0x432cfd['type'])&&_0x432cfd[_0x4886('0x2d')]&&!_0x432cfd['customField']){_0x3421c4[_0x432cfd[_0x4886('0x2d')][_0x4886('0x2e')]()]=_0x432cfd['content'][_0x4886('0x2f')]();}else if(_[_0x4886('0x2b')]([_0x4886('0x2c'),'picklist'],_0x432cfd['type'])&&_0x432cfd['idField']&&_0x432cfd[_0x4886('0x30')]){_0x3421c4[_0x432cfd['idField']['toLowerCase']()]=_0x432cfd['content'][_0x4886('0x2f')]();}else if(_0x432cfd['type']===_0x4886('0x31')&&_0x432cfd[_0x4886('0x32')]&&_0x432cfd[_0x4886('0x33')]&&_0x432cfd[_0x4886('0x30')]){_0x3421c4[_0x432cfd[_0x4886('0x33')][_0x4886('0x2e')]()]=_0x3f6433[_0x432cfd['variableName']][_0x4886('0x2f')]();}else if(_0x432cfd[_0x4886('0x34')]==='customVariable'&&_0x432cfd['Variable']&&_0x432cfd[_0x4886('0x35')]['name']&&_0x432cfd['idField']&&_0x432cfd[_0x4886('0x30')]){_0x3421c4[_0x432cfd[_0x4886('0x33')][_0x4886('0x2e')]()]=_0x3f6433[_0x432cfd['Variable']['name'][_0x4886('0x2e')]()][_0x4886('0x2f')]();}});}return _0x3421c4;}function getTicket(_0x4790de,_0xa0f802,_0xab40a3,_0x22afda,_0x54fa9e,_0x3745dd){return function(_0x2b6f35){logger[_0x4886('0x15')]('['+[_0x4790de['toUpperCase']()]+_0x4886('0x36'),_0x2b6f35);return new Promise(function(_0x4f4d01,_0x57236f){var _0x3db598=_0x4790de[_0x4886('0x2e')]()===_0x4886('0x37')?_0x2b6f35[_0x4886('0x1d')]:_0x2b6f35[_0x4886('0x26')];var _0x167384={'method':_0x4886('0x22'),'uri':_0xab40a3+_0x4886('0x38')+'?'+_0x3745dd,'body':Object[_0x4886('0x39')]({},{'active':_0x4886('0x1c'),'caller_id':_0x3db598,'assigned_to':_0x2b6f35[_0x4886('0x1d')],'short_description':intUtil[_0x4886('0x3a')](_0x22afda[_0x4886('0x3b')],_0x54fa9e,'\x20'),'description':intUtil[_0x4886('0x3a')](_0x22afda[_0x4886('0x3c')],_0x54fa9e,'\x0a')},getCustomFields(_0x22afda[_0x4886('0x3d')],_0x54fa9e)),'auth':_0xa0f802,'json':!![]};return rp(_0x167384)[_0x4886('0xc')](function(_0x5044d2){logger[_0x4886('0x15')]('['+[_0x4790de[_0x4886('0x10')]()]+_0x4886('0x3e'),_0x5044d2['result']);_0x2b6f35[_0x4886('0x3f')]=_0x5044d2[_0x4886('0xd')][_0x4886('0x1e')];_0x2b6f35[_0x4886('0x40')]=_0x5044d2['result'][_0x4886('0x41')];logger[_0x4886('0x15')]('['+[_0x4790de[_0x4886('0x10')]()]+_0x4886('0x42'),_0x2b6f35);_0x4f4d01(_0x2b6f35);})[_0x4886('0x12')](function(_0xe5c1){logger['error']('['+[_0x4790de[_0x4886('0x10')]()]+']',_0xe5c1['message']);_0x57236f(_0xe5c1['message']);});});};}function createRemoteTag(_0x1c3c1e,_0x76bd78,_0x1d4d07,_0x1d5945){return new Promise(function(_0x3ba5ba,_0x12d358){var _0xe3cc2={'method':'POST','uri':_0x1d4d07+_0x4886('0x43')+'?'+_0x1d5945,'body':{'short_description':_0x1c3c1e,'global':!![],'active':!![],'name':_0x1c3c1e},'auth':_0x76bd78,'json':!![]};return rp(_0xe3cc2)['then'](function(_0x197bf9){var _0x4d7106=_0x197bf9[_0x4886('0xd')][_0x4886('0x1e')];_0x3ba5ba(_0x4d7106);});});}function getRemoteTag(_0x5178f7,_0x3d1b81,_0x39d4b9,_0x2b91b6,_0x1af205){return new Promise(function(_0x10b9ee,_0x1f9f18){var _0x11f9de={'method':_0x4886('0x27'),'uri':_0x39d4b9+_0x4886('0x43')+_0x4886('0x44')+_0x5178f7+'&'+_0x2b91b6,'auth':_0x3d1b81,'json':!![]};return rp(_0x11f9de)['then'](function(_0x254e5e){if(_0x254e5e[_0x4886('0xd')]['length']>0x0){var _0x44b13a=_0x254e5e[_0x4886('0xd')][0x0][_0x4886('0x1e')];_0x10b9ee(_0x44b13a);}else{return createRemoteTag(_0x5178f7,_0x3d1b81,_0x39d4b9,_0x2b91b6)[_0x4886('0xc')](function(_0x2b4c15){_0x10b9ee(_0x2b4c15);});}});});}function assignTagToIncident(_0x4381ca,_0x475354,_0x503d29,_0x14db30,_0x5c8d64){return new Promise(function(_0x42fb8f,_0x29b852){var _0x12bb86={'method':'POST','uri':_0x503d29+_0x4886('0x45')+'?'+_0x5c8d64,'body':{'label':_0x4381ca,'table':_0x4886('0x38'),'id_type':_0x4886('0x46'),'table_key':_0x14db30[_0x4886('0x3f')],'title':_0x4886('0x47')+_0x14db30['ticketNumber'],'id_display':_0x14db30[_0x4886('0x40')]},'auth':_0x475354,'json':!![]};return rp(_0x12bb86)[_0x4886('0xc')](function(_0x2a355d){_0x42fb8f();})[_0x4886('0x12')](function(){_0x42fb8f();});});}function manageTags(_0x29d083,_0x202936,_0xe9987,_0xd73c03,_0x536133,_0x5f4482,_0x47a109){return new Promise(function(_0x4b649d,_0x3c8dea){var _0x35a8be=[];_0x202936['forEach'](function(_0x155b87){_0x35a8be[_0x4886('0x48')](getRemoteTag(_0x155b87,_0xe9987,_0xd73c03,_0x5f4482,_0x47a109));});return Promise[_0x4886('0x49')](_0x35a8be)[_0x4886('0xc')](function(_0x181d34){if(_0x181d34[_0x4886('0xe')]){logger['info']('['+[_0x29d083[_0x4886('0x10')]()]+_0x4886('0x4a'),_0x181d34);var _0x19d29b=[];_0x181d34[_0x4886('0x2a')](function(_0x177004){_0x19d29b[_0x4886('0x48')](assignTagToIncident(_0x177004,_0xe9987,_0xd73c03,_0x536133,_0x5f4482));});return Promise[_0x4886('0x49')](_0x19d29b)['then'](function(){_0x4b649d();})[_0x4886('0x12')](function(){_0x4b649d();});}else{_0x4b649d();}});});}function getTags(_0x23f68a,_0x2cc4ff,_0x33fa28,_0x52c508,_0xb1b21b,_0x248c81){return function(_0xa0f933){return new Promise(function(_0x5c6a75,_0x28abb0){var _0x4df9f0=[];var _0x46d7a3=_0x52c508[_0x4886('0x4b')];if(_0x46d7a3&&_0x46d7a3['length']>0x0){_0x4df9f0=_[_0x4886('0x4c')](_0x46d7a3,'name');}if(_0x4df9f0['length']>0x0){return manageTags(_0x23f68a,_0x4df9f0,_0x2cc4ff,_0x33fa28,_0xa0f933,_0xb1b21b,_0x248c81)[_0x4886('0xc')](function(){_0x5c6a75(_0xa0f933);});}else{_0x5c6a75(_0xa0f933);}});};}function emit(_0x15e67e,_0x1eb0c0,_0x4b3fa4){var _0xdaf876=_0x4886('0x4d')+_0x4886('0x4e')+_0x4886('0x4f')+_0x4886('0x50');var _0x323f02={'uri':_0x15e67e+_0x4886('0x51')+_0x4b3fa4+_0xdaf876};io['to'](util[_0x4886('0x52')](_0x4886('0x53'),_0x1eb0c0))[_0x4886('0x54')](_0x4886('0x55'),_0x323f02);}exports['cs']=function(_0x15c59f,_0x20175f,_0x4f99f4,_0x2720f1,_0x276719,_0x495157,_0x11cef6,_0x345e66){var _0x41abd9={};var _0x182961={'user':_0x495157[_0x4886('0x56')],'pass':_0x495157[_0x4886('0x57')]};var _0x46fb0f=_0x4886('0x58');var _0x19ce51=_0x4886('0x59');_0x495157[_0x4886('0x5a')]=intUtil[_0x4886('0x5b')](_0x495157[_0x4886('0x5a')]);_0x495157[_0x4886('0x5c')]=intUtil[_0x4886('0x5b')](_0x495157[_0x4886('0x5c')]);var _0x5ec7ce=util['format'](_0x4886('0x5d'),_0x495157['remoteUri']);_0x41abd9[_0x4886('0x18')]=!_[_0x4886('0x5e')](_0x2720f1)?_0x2720f1[_0x4886('0x5f')]:null;_0x41abd9[_0x4886('0x1f')]=_0x495157['email'];_0x41abd9['endUserNumber']=_0x345e66['toLowerCase']()===_0x4886('0x37')?_0x20175f[_0x4886('0x60')]:_0x20175f[_0x4886('0x61')];_0x41abd9[_0x4886('0x62')]=_0x345e66===_0x4886('0x63')||_0x345e66===_0x4886('0x64')?_0x4886('0x63'):_0x4886('0x37');var _0x1017b4=util[_0x4886('0x52')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x495157[_0x4886('0x5c')],_0x20175f[_0x4886('0x65')],md5(_0x20175f[_0x4886('0x65')]));if(_0x276719&&_0x276719[_0x4886('0x66')]){logger['info'](_0x4886('0x67'),_0x4886('0x68'));_0x20175f['recordingURL']=_0x1017b4;}else if(_0x11cef6&&_0x11cef6['recordingFormat']&&_0x11cef6[_0x4886('0x69')]!=='none'){logger[_0x4886('0x15')](_0x4886('0x6a'),_0x4886('0x68'));_0x20175f[_0x4886('0x6b')]=_0x1017b4;}else{_0x20175f['recordingURL']='';}return getAdminUser(_0x345e66,_0x182961,_0x41abd9,_0x5ec7ce,_0x19ce51,_0x46fb0f)[_0x4886('0xc')](getUser(_0x345e66,_0x182961,_0x5ec7ce,_0x19ce51,_0x46fb0f))[_0x4886('0xc')](getEndUser(_0x345e66,_0x182961,_0x5ec7ce,_0x19ce51,_0x46fb0f))['then'](getTicket(_0x345e66,_0x182961,_0x5ec7ce,_0x4f99f4,_0x20175f,_0x19ce51))[_0x4886('0xc')](function(_0x35cec4){logger[_0x4886('0x15')](util[_0x4886('0x52')]('The\x20ticket\x20ID\x20is:\x20%s',_0x35cec4[_0x4886('0x3f')]));logger[_0x4886('0x15')](util[_0x4886('0x52')](_0x4886('0x6c'),_0x345e66));if(_0x345e66!==_0x4886('0x64')){logger[_0x4886('0x15')]('['+[_0x345e66[_0x4886('0x10')]()]+']',_0x4886('0x6d'));emit(_0x495157[_0x4886('0x5a')],_0x2720f1[_0x4886('0x6e')],_0x35cec4[_0x4886('0x3f')]);}})[_0x4886('0x12')](function(_0x3f2953){logger[_0x4886('0x13')]('['+[_0x345e66['toUpperCase']()]+']\x20Error\x20running\x20ServiceNow\x20integration',util['inspect'](_0x3f2953,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x4897=['assign','getString','Subjects','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','Incident','Incident\x20-\x20','push','all','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','format','emit','trigger:browser:url','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','stripTrailingSlash','serverUrl','%s/api/now/table/','isNil','email','destcalleridnum','calleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','[QUEUE]','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','inspect','bluebird','request-promise','util','./util','../../../../config/environment','../../../../config/logger','redis','defaults','socket.io-emitter','GET','sys_user?sysparm_query=user_name%3Dadmin','then','result','length','adminId','sys_id','info','toUpperCase','],\x20getAdminUser\x20crm','catch','error','message','],\x20getUser\x20input\x20crm','userEmail','sys_user?sysparm_query=email%3D','],\x20getUser\x20rp\x20obj','active','true','userId','],\x20getUser\x20crm',']\x20using\x20admin\x20profile','adminEmail','],\x20createEndUser\x20input\x20crm','sys_user?','endUserNumber','System','],\x20EndUser\x20schema','endUserId','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','],\x20createEndUser\x20crm','forEach','includes','string','picklist','type','nameField','customField','toString','idField','toLowerCase','content','variable','variableName','customVariable','Variable','name',']\x20getTicket\x20input\x20crm','outbound','POST','incident'];(function(_0x42ed70,_0x58b3ef){var _0x514049=function(_0x5c6d67){while(--_0x5c6d67){_0x42ed70['push'](_0x42ed70['shift']());}};_0x514049(++_0x58b3ef);}(_0x4897,0x1e9));var _0x7489=function(_0x1cab35,_0x54fb93){_0x1cab35=_0x1cab35-0x0;var _0x4dd55c=_0x4897[_0x1cab35];return _0x4dd55c;};'use strict';var _=require('lodash');var Promise=require(_0x7489('0x0'));var rp=require(_0x7489('0x1'));var util=require(_0x7489('0x2'));var md5=require('md5');var Redis=require('ioredis');var intUtil=require(_0x7489('0x3'));var config=require(_0x7489('0x4'));var logger=require(_0x7489('0x5'))('servicenow');config[_0x7489('0x6')]=_[_0x7489('0x7')](config[_0x7489('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x7489('0x8'))(new Redis(config['redis']));function getAdminUser(_0xaffd9f,_0x668d4c,_0x19f7b8,_0x306841,_0x12adc2,_0x11bc70){return new Promise(function(_0x50f895,_0x341d77){var _0x58b903={'method':_0x7489('0x9'),'uri':_0x306841+_0x7489('0xa')+'&'+_0x12adc2+'&'+_0x11bc70,'auth':_0x668d4c,'json':!![]};return rp(_0x58b903)[_0x7489('0xb')](function(_0x82cf75){if(_0x82cf75[_0x7489('0xc')][_0x7489('0xd')]>0x0){_0x19f7b8[_0x7489('0xe')]=_0x82cf75[_0x7489('0xc')][0x0][_0x7489('0xf')];}logger[_0x7489('0x10')]('['+[_0xaffd9f[_0x7489('0x11')]()]+_0x7489('0x12'),_0x19f7b8);_0x50f895(_0x19f7b8);})[_0x7489('0x13')](function(_0x3a3d75){logger[_0x7489('0x14')]('['+[_0xaffd9f[_0x7489('0x11')]()]+']',_0x3a3d75[_0x7489('0x15')]);_0x341d77(_0x3a3d75[_0x7489('0x15')]);});});}function getUser(_0x5a1ed4,_0x307e44,_0x354bfa,_0x139b06,_0x238bc0){return function(_0x1f9d65){logger[_0x7489('0x10')]('['+[_0x5a1ed4[_0x7489('0x11')]()]+_0x7489('0x16'),_0x1f9d65);return new Promise(function(_0x52d50b,_0x44a14c){if(intUtil['validateEmail'](_0x1f9d65[_0x7489('0x17')])){var _0x43cfac={'method':_0x7489('0x9'),'uri':_0x354bfa+_0x7489('0x18')+_0x1f9d65[_0x7489('0x17')]+'&'+_0x139b06+'&'+_0x238bc0,'auth':_0x307e44,'json':!![]};logger[_0x7489('0x10')]('['+[_0x5a1ed4['toUpperCase']()]+_0x7489('0x19'),_0x43cfac);return rp(_0x43cfac)['then'](function(_0x3aa5e2){logger[_0x7489('0x10')]('['+[_0x5a1ed4[_0x7489('0x11')]()]+'],\x20getUser\x20entity',_0x3aa5e2);if(_0x3aa5e2[_0x7489('0xc')][_0x7489('0xd')]>0x0&&String(_0x3aa5e2[_0x7489('0xc')][0x0][_0x7489('0x1a')])===_0x7489('0x1b')){_0x1f9d65['userId']=_0x3aa5e2[_0x7489('0xc')][0x0]['sys_id'];}else{_0x1f9d65[_0x7489('0x1c')]=_0x1f9d65[_0x7489('0xe')];_0x1f9d65[_0x7489('0x17')]=_0x1f9d65['adminEmail'];}logger['info']('['+[_0x5a1ed4[_0x7489('0x11')]()]+_0x7489('0x1d'),_0x1f9d65);_0x52d50b(_0x1f9d65);})['catch'](function(_0x24506b){logger[_0x7489('0x14')]('['+[_0x5a1ed4[_0x7489('0x11')]()]+']',_0x24506b[_0x7489('0x15')]);_0x44a14c(_0x24506b['message']);});}else{logger[_0x7489('0x10')]('['+[_0x5a1ed4[_0x7489('0x11')]()]+_0x7489('0x1e'));_0x1f9d65[_0x7489('0x1c')]=_0x1f9d65['adminId'];_0x1f9d65['userEmail']=_0x1f9d65[_0x7489('0x1f')];_0x52d50b(_0x1f9d65);}});};}function createEndUser(_0x585b5f,_0x4b5261,_0x5eeab9,_0x2b7138,_0x362b6c){logger[_0x7489('0x10')]('['+[_0x585b5f['toUpperCase']()]+_0x7489('0x20'),_0x5eeab9);return new Promise(function(_0x3bf9a7,_0x45df3a){var _0x46ade7={'method':'POST','uri':_0x2b7138+_0x7489('0x21')+_0x362b6c,'body':{'user_name':_0x5eeab9[_0x7489('0x22')],'roles':'user','first_name':_0x5eeab9[_0x7489('0x22')],'active':_0x7489('0x1b'),'date_format':_0x7489('0x23'),'phone':_0x5eeab9[_0x7489('0x22')]},'auth':_0x4b5261,'json':!![]};return rp(_0x46ade7)['then'](function(_0x16e71e){logger[_0x7489('0x10')]('['+[_0x585b5f['toUpperCase']()]+_0x7489('0x24'),_0x16e71e['result']);_0x5eeab9[_0x7489('0x25')]=_0x16e71e['result'][_0x7489('0xf')];_0x3bf9a7(_0x5eeab9);})[_0x7489('0x13')](function(_0x59789c){logger['error']('['+[_0x585b5f[_0x7489('0x11')]()]+']',_0x59789c['message']);_0x45df3a(_0x59789c[_0x7489('0x15')]);});});}function getEndUser(_0x2f4eaa,_0x334c98,_0x539c4d,_0xb95ff1,_0x105b5e){return function(_0x231768){logger[_0x7489('0x10')]('['+[_0x2f4eaa['toUpperCase']()]+_0x7489('0x26'),_0x231768);return new Promise(function(_0xf1df6c,_0x522abc){var _0x514cf0={'method':_0x7489('0x9'),'uri':_0x539c4d+_0x7489('0x27')+_0x231768[_0x7489('0x22')]+'&'+_0xb95ff1+'&'+_0x105b5e,'auth':_0x334c98,'json':!![]};return rp(_0x514cf0)['then'](function(_0x55381d){if(_0x55381d[_0x7489('0xc')]['length']>0x0){_0x231768['endUserId']=_0x55381d[_0x7489('0xc')][0x0][_0x7489('0xf')];logger['info']('['+[_0x2f4eaa[_0x7489('0x11')]()]+'],\x20getEndUser\x20crm',_0x231768);_0xf1df6c(_0x231768);}else{return createEndUser(_0x2f4eaa,_0x334c98,_0x231768,_0x539c4d,_0xb95ff1)[_0x7489('0xb')](function(_0x543bab){logger[_0x7489('0x10')]('['+[_0x2f4eaa[_0x7489('0x11')]()]+_0x7489('0x28'),_0x543bab);_0xf1df6c(_0x543bab);});}})[_0x7489('0x13')](function(_0x4e4873){logger[_0x7489('0x14')]('['+[_0x2f4eaa[_0x7489('0x11')]()]+']',_0x4e4873[_0x7489('0x15')]);_0x522abc(_0x4e4873[_0x7489('0x15')]);});});};}function getCustomFields(_0x3ad799,_0x272008){var _0x43a458={};if(_0x3ad799['length']>0x0){_[_0x7489('0x29')](_0x3ad799,function(_0x584292){if(_[_0x7489('0x2a')]([_0x7489('0x2b'),_0x7489('0x2c')],_0x584292[_0x7489('0x2d')])&&_0x584292[_0x7489('0x2e')]&&!_0x584292[_0x7489('0x2f')]){_0x43a458[_0x584292['nameField']['toLowerCase']()]=_0x584292['content'][_0x7489('0x30')]();}else if(_['includes']([_0x7489('0x2b'),_0x7489('0x2c')],_0x584292[_0x7489('0x2d')])&&_0x584292[_0x7489('0x31')]&&_0x584292['customField']){_0x43a458[_0x584292[_0x7489('0x31')][_0x7489('0x32')]()]=_0x584292[_0x7489('0x33')][_0x7489('0x30')]();}else if(_0x584292[_0x7489('0x2d')]===_0x7489('0x34')&&_0x584292['variableName']&&_0x584292[_0x7489('0x31')]&&_0x584292[_0x7489('0x2f')]){_0x43a458[_0x584292['idField'][_0x7489('0x32')]()]=_0x272008[_0x584292[_0x7489('0x35')]][_0x7489('0x30')]();}else if(_0x584292[_0x7489('0x2d')]===_0x7489('0x36')&&_0x584292['Variable']&&_0x584292[_0x7489('0x37')][_0x7489('0x38')]&&_0x584292[_0x7489('0x31')]&&_0x584292['customField']){_0x43a458[_0x584292[_0x7489('0x31')]['toLowerCase']()]=_0x272008[_0x584292['Variable'][_0x7489('0x38')][_0x7489('0x32')]()]['toString']();}});}return _0x43a458;}function getTicket(_0x432ea,_0x7e985c,_0x3c5e49,_0x329f62,_0x544eb4,_0x3474d3){return function(_0x3b1e8a){logger[_0x7489('0x10')]('['+[_0x432ea[_0x7489('0x11')]()]+_0x7489('0x39'),_0x3b1e8a);return new Promise(function(_0x484729,_0x42f038){var _0xf78d5e=_0x432ea[_0x7489('0x32')]()===_0x7489('0x3a')?_0x3b1e8a[_0x7489('0x1c')]:_0x3b1e8a[_0x7489('0x25')];var _0x29dc6e={'method':_0x7489('0x3b'),'uri':_0x3c5e49+_0x7489('0x3c')+'?'+_0x3474d3,'body':Object[_0x7489('0x3d')]({},{'active':_0x7489('0x1b'),'caller_id':_0xf78d5e,'assigned_to':_0x3b1e8a['userId'],'short_description':intUtil[_0x7489('0x3e')](_0x329f62[_0x7489('0x3f')],_0x544eb4,'\x20'),'description':intUtil[_0x7489('0x3e')](_0x329f62['Descriptions'],_0x544eb4,'\x0a')},getCustomFields(_0x329f62[_0x7489('0x40')],_0x544eb4)),'auth':_0x7e985c,'json':!![]};return rp(_0x29dc6e)[_0x7489('0xb')](function(_0x5cae27){logger[_0x7489('0x10')]('['+[_0x432ea['toUpperCase']()]+_0x7489('0x41'),_0x5cae27[_0x7489('0xc')]);_0x3b1e8a[_0x7489('0x42')]=_0x5cae27['result']['sys_id'];_0x3b1e8a[_0x7489('0x43')]=_0x5cae27['result'][_0x7489('0x44')];logger[_0x7489('0x10')]('['+[_0x432ea['toUpperCase']()]+_0x7489('0x45'),_0x3b1e8a);_0x484729(_0x3b1e8a);})[_0x7489('0x13')](function(_0x2293b4){logger[_0x7489('0x14')]('['+[_0x432ea[_0x7489('0x11')]()]+']',_0x2293b4[_0x7489('0x15')]);_0x42f038(_0x2293b4['message']);});});};}function createRemoteTag(_0x3732a3,_0x88a72a,_0x54f385,_0xd112aa){return new Promise(function(_0x2cb932,_0x17a710){var _0x78262={'method':_0x7489('0x3b'),'uri':_0x54f385+_0x7489('0x46')+'?'+_0xd112aa,'body':{'short_description':_0x3732a3,'global':!![],'active':!![],'name':_0x3732a3},'auth':_0x88a72a,'json':!![]};return rp(_0x78262)[_0x7489('0xb')](function(_0x267dad){var _0x4f6f38=_0x267dad['result'][_0x7489('0xf')];_0x2cb932(_0x4f6f38);});});}function getRemoteTag(_0x1cff68,_0x57c2f0,_0x44981c,_0xfccdff,_0xadeea2){return new Promise(function(_0x1caffc,_0x190d3c){var _0x3f16f4={'method':_0x7489('0x9'),'uri':_0x44981c+_0x7489('0x46')+_0x7489('0x47')+_0x1cff68+'&'+_0xfccdff,'auth':_0x57c2f0,'json':!![]};return rp(_0x3f16f4)['then'](function(_0x9c88da){if(_0x9c88da[_0x7489('0xc')][_0x7489('0xd')]>0x0){var _0x524b85=_0x9c88da[_0x7489('0xc')][0x0]['sys_id'];_0x1caffc(_0x524b85);}else{return createRemoteTag(_0x1cff68,_0x57c2f0,_0x44981c,_0xfccdff)['then'](function(_0x2e19ce){_0x1caffc(_0x2e19ce);});}});});}function assignTagToIncident(_0x1027f7,_0x135016,_0x3efd17,_0x325937,_0xd5f93e){return new Promise(function(_0x352323,_0x350f11){var _0x2116b0={'method':_0x7489('0x3b'),'uri':_0x3efd17+_0x7489('0x48')+'?'+_0xd5f93e,'body':{'label':_0x1027f7,'table':_0x7489('0x3c'),'id_type':_0x7489('0x49'),'table_key':_0x325937[_0x7489('0x42')],'title':_0x7489('0x4a')+_0x325937[_0x7489('0x43')],'id_display':_0x325937['ticketNumber']},'auth':_0x135016,'json':!![]};return rp(_0x2116b0)[_0x7489('0xb')](function(_0x200e5d){_0x352323();})['catch'](function(){_0x352323();});});}function manageTags(_0x585a28,_0x1de64e,_0x44e199,_0x3c391c,_0xeaaf8b,_0x424c10,_0x15288f){return new Promise(function(_0x1b9023,_0x1f83ad){var _0x24739a=[];_0x1de64e[_0x7489('0x29')](function(_0x2a707f){_0x24739a[_0x7489('0x4b')](getRemoteTag(_0x2a707f,_0x44e199,_0x3c391c,_0x424c10,_0x15288f));});return Promise[_0x7489('0x4c')](_0x24739a)[_0x7489('0xb')](function(_0x3423dc){if(_0x3423dc['length']){logger[_0x7489('0x10')]('['+[_0x585a28['toUpperCase']()]+']\x20arrayPromises:\x20IDs\x20in\x20table\x20label',_0x3423dc);var _0x26b74c=[];_0x3423dc[_0x7489('0x29')](function(_0x5dcf2d){_0x26b74c['push'](assignTagToIncident(_0x5dcf2d,_0x44e199,_0x3c391c,_0xeaaf8b,_0x424c10));});return Promise[_0x7489('0x4c')](_0x26b74c)[_0x7489('0xb')](function(){_0x1b9023();})[_0x7489('0x13')](function(){_0x1b9023();});}else{_0x1b9023();}});});}function getTags(_0x1b2f30,_0x32cb6b,_0x3c0115,_0x1a2b49,_0xdcb38b,_0x469b9d){return function(_0x470144){return new Promise(function(_0x4e1108,_0x5ab06d){var _0x3d828f=[];var _0x24296c=_0x1a2b49['Tags'];if(_0x24296c&&_0x24296c['length']>0x0){_0x3d828f=_['map'](_0x24296c,_0x7489('0x38'));}if(_0x3d828f[_0x7489('0xd')]>0x0){return manageTags(_0x1b2f30,_0x3d828f,_0x32cb6b,_0x3c0115,_0x470144,_0xdcb38b,_0x469b9d)[_0x7489('0xb')](function(){_0x4e1108(_0x470144);});}else{_0x4e1108(_0x470144);}});};}function emit(_0x4eff0e,_0x171851,_0x54d283){var _0x30f68c=_0x7489('0x4d')+_0x7489('0x4e')+_0x7489('0x4f')+_0x7489('0x50');var _0x22f7da={'uri':_0x4eff0e+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x54d283+_0x30f68c};io['to'](util[_0x7489('0x51')]('user:%s',_0x171851))[_0x7489('0x52')](_0x7489('0x53'),_0x22f7da);}exports['cs']=function(_0xa02bdb,_0x454572,_0x2c5c20,_0xd22e6b,_0x217529,_0x25e772,_0x199fe0,_0x3e9091){var _0x338df3={};var _0x583224={'user':_0x25e772[_0x7489('0x54')],'pass':_0x25e772[_0x7489('0x55')]};var _0x4a55e4=_0x7489('0x56');var _0x2632c8=_0x7489('0x57');_0x25e772[_0x7489('0x58')]=intUtil[_0x7489('0x59')](_0x25e772[_0x7489('0x58')]);_0x25e772[_0x7489('0x5a')]=intUtil[_0x7489('0x59')](_0x25e772[_0x7489('0x5a')]);var _0x1264d9=util[_0x7489('0x51')](_0x7489('0x5b'),_0x25e772[_0x7489('0x58')]);_0x338df3[_0x7489('0x17')]=!_[_0x7489('0x5c')](_0xd22e6b)?_0xd22e6b[_0x7489('0x5d')]:null;_0x338df3[_0x7489('0x1f')]=_0x25e772['email'];_0x338df3[_0x7489('0x22')]=_0x3e9091[_0x7489('0x32')]()==='outbound'?_0x454572[_0x7489('0x5e')]:_0x454572[_0x7489('0x5f')];_0x338df3[_0x7489('0x60')]=_0x3e9091===_0x7489('0x61')||_0x3e9091===_0x7489('0x62')?_0x7489('0x61'):_0x7489('0x3a');var _0x16ae0d=util[_0x7489('0x51')](_0x7489('0x63'),_0x25e772[_0x7489('0x5a')],_0x454572[_0x7489('0x64')],md5(_0x454572['uniqueid']));if(_0x217529&&_0x217529['monitor_format']){logger[_0x7489('0x10')](_0x7489('0x65'),'Recording\x20is\x20enabled!');_0x454572['recordingURL']=_0x16ae0d;}else if(_0x199fe0&&_0x199fe0[_0x7489('0x66')]&&_0x199fe0['recordingFormat']!==_0x7489('0x67')){logger['info'](_0x7489('0x68'),_0x7489('0x69'));_0x454572['recordingURL']=_0x16ae0d;}else{_0x454572[_0x7489('0x6a')]='';}return getAdminUser(_0x3e9091,_0x583224,_0x338df3,_0x1264d9,_0x2632c8,_0x4a55e4)[_0x7489('0xb')](getUser(_0x3e9091,_0x583224,_0x1264d9,_0x2632c8,_0x4a55e4))[_0x7489('0xb')](getEndUser(_0x3e9091,_0x583224,_0x1264d9,_0x2632c8,_0x4a55e4))[_0x7489('0xb')](getTicket(_0x3e9091,_0x583224,_0x1264d9,_0x2c5c20,_0x454572,_0x2632c8))[_0x7489('0xb')](function(_0x2ee816){logger[_0x7489('0x10')](util[_0x7489('0x51')](_0x7489('0x6b'),_0x2ee816[_0x7489('0x42')]));logger[_0x7489('0x10')](util[_0x7489('0x51')]('call\x20direction:\x20%s',_0x3e9091));if(_0x3e9091!==_0x7489('0x62')){logger['info']('['+[_0x3e9091[_0x7489('0x11')]()]+']',_0x7489('0x6c'));emit(_0x25e772[_0x7489('0x58')],_0xd22e6b[_0x7489('0x38')],_0x2ee816['ticketId']);}})[_0x7489('0x13')](function(_0x2229bc){logger['error']('['+[_0x3e9091[_0x7489('0x11')]()]+']\x20Error\x20running\x20ServiceNow\x20integration',util[_0x7489('0x6d')](_0x2229bc,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa318=['set_entry','JSON','stringify','Calls','format','apiKey','toString','base64','get_server_info','isNil','Getting\x20agent\x20with\x20name','Employees','user_name','entry_list','find','name_value_list','value','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','resolve','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Contacts','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','Enduser\x20found!','first_name','then','Enduser\x20created.','debug','merge','map','type','nameField','customField','toLowerCase','custom_fields','variable','Variable','POST','login','username','PLAIN','xCALLY\x20Motion\x20integration','sessionID','Account\x20%d\x20is\x20not\x20valid','set_relationship','remoteUri','stripTrailingSlash','serverUrl','uri','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','The\x20User\x20ID\x20is:','calleridname','calleridnum','Inbound','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','catch','outbound','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridnum','The\x20Enduser\x20ID\x20is:','Fields','Outbound','Ticket\x20created!','contacts','trigger:browser:url','error','unmanaged','toUpperCase','The\x20Ticket\x20ID\x20is:','users','lodash','request-promise','md5','util','ioredis','../../../../config/logger','redis','socket.io-emitter','emit','info','Creating\x20new\x20ticket...','name','getString','Subjects','assigned_user_id','created_by','description','Descriptions','date_start','toISOString','duration_hours','duration_minutes','parent_id','parent_type','parent_name','direction','length','forEach','variableName','push','idField'];(function(_0x4fb6b4,_0x1814dd){var _0x960098=function(_0x3e2a3e){while(--_0x3e2a3e){_0x4fb6b4['push'](_0x4fb6b4['shift']());}};_0x960098(++_0x1814dd);}(_0xa318,0xc1));var _0x8a31=function(_0x11be48,_0x43ffcd){_0x11be48=_0x11be48-0x0;var _0x3ee187=_0xa318[_0x11be48];return _0x3ee187;};'use strict';var _=require(_0x8a31('0x0'));var rp=require(_0x8a31('0x1'));var BPromise=require('bluebird');var md5=require(_0x8a31('0x2'));var util=require(_0x8a31('0x3'));var Redis=require(_0x8a31('0x4'));var intUtil=require('./util');var config=require('../../../../config/environment');var logger=require(_0x8a31('0x5'))('sugarcrm');config[_0x8a31('0x6')]=_['defaults'](config[_0x8a31('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x8a31('0x7'))(new Redis(config[_0x8a31('0x6')]));var def={'method':'POST','json':!![]};function emit(_0x48114,_0x2c2448,_0x46b6ed){io['to'](_0x48114)[_0x8a31('0x8')](_0x2c2448,_0x46b6ed);}function getTicket(_0x1b8ee6,_0x32e0d9,_0x1d75af,_0x46c37c,_0x230fce,_0x463ae7,_0x29e0ad,_0x17a84e){logger[_0x8a31('0x9')](_0x8a31('0xa'));var _0x5d2c62=new Date();var _0x191292=[{'name':_0x8a31('0xb'),'value':intUtil[_0x8a31('0xc')](_0x46c37c[_0x8a31('0xd')],_0x230fce,'\x20')},{'name':_0x8a31('0xe'),'value':_0x32e0d9['id']},{'name':_0x8a31('0xf'),'value':_0x32e0d9['id']},{'name':_0x8a31('0x10'),'value':intUtil[_0x8a31('0xc')](_0x46c37c[_0x8a31('0x11')],_0x230fce,'\x0a')},{'name':_0x8a31('0x12'),'value':_0x5d2c62[_0x8a31('0x13')]()['slice'](0x0,0x13)['replace']('T','\x20')},{'name':_0x8a31('0x14'),'value':'0'},{'name':_0x8a31('0x15'),'value':'15'},{'name':_0x8a31('0x16'),'value':_0x1d75af['id']},{'name':_0x8a31('0x17'),'value':'Contacts'},{'name':_0x8a31('0x18'),'value':_0x1d75af[_0x8a31('0xb')]},{'name':_0x8a31('0x19'),'value':_0x17a84e}];if(_0x463ae7[_0x8a31('0x1a')]){_[_0x8a31('0x1b')](_0x463ae7,function(_0x3efdc8){if(_0x230fce[_0x3efdc8[_0x8a31('0x1c')]]){_0x191292[_0x8a31('0x1d')]({'name':_0x3efdc8[_0x8a31('0x1e')],'value':_0x230fce[_0x3efdc8[_0x8a31('0x1c')]]});}});}return request({'form':{'method':_0x8a31('0x1f'),'input_type':_0x8a31('0x20'),'response_type':'JSON','rest_data':JSON[_0x8a31('0x21')]({'session':_0x29e0ad['id'],'module_name':_0x8a31('0x22'),'name_value_list':_0x191292})}});}function getAuth(_0x4628ea){return util[_0x8a31('0x23')]('Basic\x20%s',new Buffer(_0x4628ea[_0x8a31('0x24')]+':X')[_0x8a31('0x25')](_0x8a31('0x26')));}function getServerInfo(_0x106679){return request({'form':{'method':_0x8a31('0x27'),'input_type':_0x8a31('0x20'),'response_type':_0x8a31('0x20'),'rest_data':JSON[_0x8a31('0x21')]({'session':_0x106679['id']})}});}function getUser(_0x22c673,_0x25f8f6,_0x5b90a9){if(!_[_0x8a31('0x28')](_0x25f8f6)){logger['info'](_0x8a31('0x29'),_0x25f8f6);return request({'form':{'method':'get_entry_list','input_type':_0x8a31('0x20'),'response_type':'JSON','rest_data':JSON[_0x8a31('0x21')]({'session':_0x5b90a9['id'],'module_name':_0x8a31('0x2a'),'query':util['format']('INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200',_0x25f8f6),'order_by':'','offset':'0','select_fields':['id',_0x8a31('0xb'),_0x8a31('0x2b')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x19b01e){if(_0x19b01e[_0x8a31('0x2c')][_0x8a31('0x1a')]){var _0x4a8264=_[_0x8a31('0x2d')](_0x19b01e[_0x8a31('0x2c')],function(_0x2b7bd6){return _0x2b7bd6[_0x8a31('0x2e')][_0x8a31('0x2b')][_0x8a31('0x2f')]===_0x25f8f6;});if(_0x4a8264){logger[_0x8a31('0x9')](_0x8a31('0x30'));return BPromise['resolve']({'id':_0x4a8264['name_value_list']['id'][_0x8a31('0x2f')],'name':_0x4a8264[_0x8a31('0x2e')][_0x8a31('0xb')][_0x8a31('0x2f')]});}}logger[_0x8a31('0x9')](_0x8a31('0x31'));return BPromise[_0x8a31('0x32')]({'id':_0x5b90a9[_0x8a31('0x2e')]['user_id']['value'],'name':_0x5b90a9[_0x8a31('0x2e')]['user_name'][_0x8a31('0x2f')]});});}else{logger['info'](_0x8a31('0x33'));return BPromise['resolve']({'id':_0x5b90a9['name_value_list']['user_id'][_0x8a31('0x2f')],'name':_0x5b90a9[_0x8a31('0x2e')]['user_name'][_0x8a31('0x2f')]});}}function getEndUser(_0x5b8fbc,_0x4e31d9,_0x1b3177,_0x281608){logger[_0x8a31('0x9')]('Searching\x20enduser\x20with\x20phone',_0x1b3177);return request({'form':{'method':'get_entry_list','input_type':_0x8a31('0x20'),'response_type':_0x8a31('0x20'),'rest_data':JSON[_0x8a31('0x21')]({'session':_0x281608['id'],'module_name':_0x8a31('0x34'),'query':util['format'](_0x8a31('0x35'),_0x1b3177),'order_by':'','offset':'0','select_fields':['id',_0x8a31('0xb'),_0x8a31('0x36')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})['then'](function(_0x584d69){if(_0x584d69['entry_list'][_0x8a31('0x1a')]){var _0x5bb5cf=_[_0x8a31('0x2d')](_0x584d69['entry_list'],function(_0x5ced42){return _0x5ced42['name_value_list']['phone_home'][_0x8a31('0x2f')]===_0x1b3177;});if(_0x5bb5cf){logger['info'](_0x8a31('0x37'));return BPromise[_0x8a31('0x32')]({'id':_0x5bb5cf['name_value_list']['id'][_0x8a31('0x2f')],'name':_0x5bb5cf['name_value_list']['name'][_0x8a31('0x2f')],'phone':_0x5bb5cf[_0x8a31('0x2e')][_0x8a31('0x36')]['value']});}}else{logger[_0x8a31('0x9')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'form':{'method':'set_entry','input_type':_0x8a31('0x20'),'response_type':_0x8a31('0x20'),'rest_data':JSON[_0x8a31('0x21')]({'session':_0x281608['id'],'module_name':'Contacts','name_value_list':[{'name':_0x8a31('0x38'),'value':_0x4e31d9!=='<unknown>'?_0x4e31d9:util[_0x8a31('0x23')]('Caller\x20-\x20%s',_0x1b3177)},{'name':_0x8a31('0x36'),'value':_0x1b3177}]})}})[_0x8a31('0x39')](function(_0x32ea3c){logger[_0x8a31('0x9')](_0x8a31('0x3a'));return BPromise[_0x8a31('0x32')]({'id':_0x32ea3c['id'],'name':_0x32ea3c['entry_list'][_0x8a31('0x38')][_0x8a31('0x2f')],'phone':_0x32ea3c[_0x8a31('0x2c')]['phone_home'][_0x8a31('0x2f')]});});}});}function request(_0x25ab1f){logger[_0x8a31('0x3b')]('[HTTP]',JSON[_0x8a31('0x21')](_0x25ab1f));return rp(_[_0x8a31('0x3c')](def,_0x25ab1f));}function getTags(_0x5a5021,_0x3f1829){var _0x29cc11=[];if(_0x5a5021&&_0x5a5021[_0x8a31('0x1a')]>0x0){_0x29cc11=_[_0x8a31('0x3d')](_0x5a5021,_0x3f1829);}return _0x29cc11;}function getCustomFields(_0x360ae5,_0xfc909){var _0x2cc34e=[];var _0x357788={'custom_fields':[]};if(_0x360ae5[_0x8a31('0x1a')]>0x0){_['forEach'](_0x360ae5,function(_0x1b4880){if(_0x1b4880[_0x8a31('0x3e')]==='string'&&_0x1b4880[_0x8a31('0x3f')]&&!_0x1b4880[_0x8a31('0x40')]){_0x357788[_0x1b4880[_0x8a31('0x3f')][_0x8a31('0x41')]()]=_0x1b4880['content'][_0x8a31('0x25')]();}else if(_0x1b4880[_0x8a31('0x3e')]==='string'&&_0x1b4880['idField']&&_0x1b4880[_0x8a31('0x40')]){_0x357788[_0x8a31('0x42')][_0x8a31('0x1d')]({'id':_0x1b4880[_0x8a31('0x1e')],'value':_0x1b4880['content']['toString']()});}else if(_0x1b4880[_0x8a31('0x3e')]===_0x8a31('0x43')&&_0x1b4880[_0x8a31('0x1c')]&&_0x1b4880['idField']&&_0x1b4880[_0x8a31('0x40')]){_0xfc909[_0x1b4880[_0x8a31('0x1c')]]&&_0x357788[_0x8a31('0x42')][_0x8a31('0x1d')]({'id':_0x1b4880[_0x8a31('0x1e')],'value':_0xfc909[_0x1b4880[_0x8a31('0x1c')]][_0x8a31('0x25')]()});}else if(_0x1b4880[_0x8a31('0x3e')]==='customVariable'&&_0x1b4880[_0x8a31('0x44')]&&_0x1b4880[_0x8a31('0x44')][_0x8a31('0xb')]&&_0x1b4880[_0x8a31('0x1e')]&&_0x1b4880[_0x8a31('0x40')]){_0xfc909[_0x1b4880['Variable'][_0x8a31('0xb')]['toLowerCase']()]&&_0x357788[_0x8a31('0x42')][_0x8a31('0x1d')]({'id':_0x1b4880[_0x8a31('0x1e')],'value':_0xfc909[_0x1b4880[_0x8a31('0x44')]['name'][_0x8a31('0x41')]()][_0x8a31('0x25')]()});}});}return _0x357788;}function getConnection(_0x45761f){return request({'method':_0x8a31('0x45'),'form':{'method':_0x8a31('0x46'),'input_type':_0x8a31('0x20'),'response_type':_0x8a31('0x20'),'rest_data':JSON['stringify']({'user_auth':{'user_name':_0x45761f[_0x8a31('0x47')],'password':_0x45761f['password'],'encryption':_0x8a31('0x48')},'application':_0x8a31('0x49')})}})[_0x8a31('0x39')](function(_0x85d534){var _0x2d6817=_0x85d534;if(_0x2d6817['id']){def[_0x8a31('0x4a')]=_0x2d6817['id'];return BPromise['resolve'](_0x2d6817);}else{throw new Error(util['format'](_0x8a31('0x4b'),_0x45761f['id']));}});}function setRelationship(_0x22d612,_0x393f4f,_0x3ab8cd,_0x13bdc5){return request({'form':{'method':_0x8a31('0x4c'),'input_type':_0x8a31('0x20'),'response_type':'JSON','rest_data':JSON[_0x8a31('0x21')]({'session':_0x22d612['id'],'module_name':_0x8a31('0x22'),'module_id':_0x3ab8cd['id'],'link_field_name':_0x13bdc5,'related_ids':[_0x393f4f['id']],'name_value_list':[],'delete':0x0})}});}exports['queue']=function(_0xff91ac,_0x422100,_0x525b03,_0x3c3b96,_0x4364f4,_0x2fb8d6){var _0x443225,_0x5969a7,_0x45d091,_0x3b2cf2;_0x2fb8d6[_0x8a31('0x4d')]=intUtil[_0x8a31('0x4e')](_0x2fb8d6[_0x8a31('0x4d')]);_0x2fb8d6[_0x8a31('0x4f')]=intUtil['stripTrailingSlash'](_0x2fb8d6['serverUrl']);def[_0x8a31('0x50')]=util['format'](_0x8a31('0x51'),_0x2fb8d6[_0x8a31('0x4d')]);if(_0x4364f4&&_0x4364f4[_0x8a31('0x52')]){logger[_0x8a31('0x9')](_0x8a31('0x53'),'Recording\x20is\x20enabled!');_0x422100[_0x8a31('0x54')]=util[_0x8a31('0x23')](_0x8a31('0x55'),_0x2fb8d6[_0x8a31('0x4f')],_0x422100[_0x8a31('0x56')],md5(_0x422100[_0x8a31('0x56')]));}else{_0x422100['recordingURL']='';}return getConnection(_0x2fb8d6)[_0x8a31('0x39')](function(_0x5505ed){_0x3b2cf2=_0x5505ed;return getUser(_0x2fb8d6,_0x3c3b96[_0x8a31('0xb')],_0x3b2cf2);})[_0x8a31('0x39')](function(_0x56c56f){_0x443225=_0x56c56f;logger[_0x8a31('0x9')](_0x8a31('0x57'),_0x443225['id']);return getEndUser(_0x2fb8d6,_0x422100[_0x8a31('0x58')],_0x422100[_0x8a31('0x59')],_0x3b2cf2);})[_0x8a31('0x39')](function(_0x4083cf){_0x5969a7=_0x4083cf;logger[_0x8a31('0x9')]('The\x20Enduser\x20ID\x20is:',_0x5969a7['id']);return getTicket(_0x2fb8d6,_0x443225,_0x5969a7,_0x525b03,_0x422100,_0x525b03['Fields'],_0x3b2cf2,_0x8a31('0x5a'));})[_0x8a31('0x39')](function(_0x4bf537){_0x45d091=_0x4bf537;logger[_0x8a31('0x9')]('Ticket\x20created!');logger[_0x8a31('0x9')]('The\x20Ticket\x20ID\x20is:',_0x45d091['id']);return setRelationship(_0x3b2cf2,_0x443225,_0x45d091,'users');})[_0x8a31('0x39')](function(){return setRelationship(_0x3b2cf2,_0x5969a7,_0x45d091,'contacts');})[_0x8a31('0x39')](function(){return getServerInfo(_0x3b2cf2);})[_0x8a31('0x39')](function(_0x4e1c3c){var _0x2311a4=parseInt(_0x4e1c3c['version']['charAt'](0x0));var _0x17634c=util['format'](_0x8a31('0x5b'),_0x2fb8d6[_0x8a31('0x4d')],_0x45d091['id']);if(_0x2311a4>0x6){_0x17634c=util[_0x8a31('0x23')](_0x8a31('0x5c'),_0x2fb8d6[_0x8a31('0x4d')],_0x45d091['id']);}logger[_0x8a31('0x9')](_0x8a31('0x53'),_0x8a31('0x5d'));emit(util[_0x8a31('0x23')]('user:%s',_0x3c3b96['name']),'trigger:browser:url',{'uri':_0x17634c});})[_0x8a31('0x5e')](function(_0xaef183){logger['error'](_0x8a31('0x53'),JSON[_0x8a31('0x21')](_0xaef183));});};exports[_0x8a31('0x5f')]=function(_0x406ae5,_0xe1bfff,_0x2005d5,_0xff515f,_0x83c595,_0x3cf331,_0xb3f8bd){var _0x46e925,_0x2e74ff,_0x52e890,_0x2123d9;_0x3cf331[_0x8a31('0x4d')]=intUtil[_0x8a31('0x4e')](_0x3cf331[_0x8a31('0x4d')]);_0x3cf331['serverUrl']=intUtil[_0x8a31('0x4e')](_0x3cf331[_0x8a31('0x4f')]);def[_0x8a31('0x50')]=util['format']('%s/service/v4_1/rest.php',_0x3cf331[_0x8a31('0x4d')]);if(_0xb3f8bd&&_0xb3f8bd[_0x8a31('0x60')]&&_0xb3f8bd['recordingFormat']!==_0x8a31('0x61')){logger[_0x8a31('0x9')](_0x8a31('0x62'),_0x8a31('0x63'));_0xe1bfff[_0x8a31('0x54')]=util[_0x8a31('0x23')](_0x8a31('0x55'),_0x3cf331['serverUrl'],_0xe1bfff[_0x8a31('0x56')],md5(_0xe1bfff['uniqueid']));}return getConnection(_0x3cf331)['then'](function(_0x465477){_0x2123d9=_0x465477;return getUser(_0x3cf331,_0xff515f[_0x8a31('0xb')],_0x2123d9);})[_0x8a31('0x39')](function(_0x6cff64){_0x46e925=_0x6cff64;logger[_0x8a31('0x9')](_0x8a31('0x57'),_0x46e925['id']);return getEndUser(_0x3cf331,_0xe1bfff['destcalleridname'],_0xe1bfff[_0x8a31('0x64')],_0x2123d9);})[_0x8a31('0x39')](function(_0x1b43cb){_0x2e74ff=_0x1b43cb;logger[_0x8a31('0x9')](_0x8a31('0x65'),_0x2e74ff['id']);return getTicket(_0x3cf331,_0x46e925,_0x2e74ff,_0x2005d5,_0xe1bfff,_0x2005d5[_0x8a31('0x66')],_0x2123d9,_0x8a31('0x67'));})[_0x8a31('0x39')](function(_0x465590){_0x52e890=_0x465590;logger[_0x8a31('0x9')](_0x8a31('0x68'));logger['info']('The\x20Ticket\x20ID\x20is:',_0x52e890['id']);return setRelationship(_0x2123d9,_0x46e925,_0x52e890,'users');})[_0x8a31('0x39')](function(){return setRelationship(_0x2123d9,_0x2e74ff,_0x52e890,_0x8a31('0x69'));})['then'](function(){return getServerInfo(_0x2123d9);})[_0x8a31('0x39')](function(_0x198f10){var _0x4f656c=parseInt(_0x198f10['version']['charAt'](0x0));var _0x494d71=util['format'](_0x8a31('0x5b'),_0x3cf331[_0x8a31('0x4d')],_0x52e890['id']);if(_0x4f656c>0x6){_0x494d71=util[_0x8a31('0x23')](_0x8a31('0x5c'),_0x3cf331[_0x8a31('0x4d')],_0x52e890['id']);}logger[_0x8a31('0x9')](_0x8a31('0x62'),_0x8a31('0x5d'));emit(util['format']('user:%s',_0xff515f[_0x8a31('0xb')]),_0x8a31('0x6a'),{'uri':_0x494d71});})[_0x8a31('0x5e')](function(_0x32fa9a){logger[_0x8a31('0x6b')](_0x8a31('0x62'),JSON[_0x8a31('0x21')](_0x32fa9a));});};exports[_0x8a31('0x6c')]=function(_0xa4130,_0x36841c,_0x4080e0,_0x28b1a1,_0x808bbc,_0x381acb){var _0x3c80d2,_0x2e1447,_0x198a34,_0x59231c;_0x381acb[_0x8a31('0x4d')]=intUtil[_0x8a31('0x4e')](_0x381acb[_0x8a31('0x4d')]);_0x381acb[_0x8a31('0x4f')]=intUtil[_0x8a31('0x4e')](_0x381acb['serverUrl']);def[_0x8a31('0x50')]=util[_0x8a31('0x23')](_0x8a31('0x51'),_0x381acb[_0x8a31('0x4d')]);if(_0x808bbc&&_0x808bbc[_0x8a31('0x52')]){logger[_0x8a31('0x9')]('['+_0x36841c['lastevent'][_0x8a31('0x6d')]()+']',_0x8a31('0x63'));_0x36841c['recordingURL']=util[_0x8a31('0x23')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x381acb[_0x8a31('0x4f')],_0x36841c[_0x8a31('0x56')],md5(_0x36841c['uniqueid']));}else{_0x36841c[_0x8a31('0x54')]='';}return getConnection(_0x381acb)[_0x8a31('0x39')](function(_0x264372){_0x59231c=_0x264372;if(!_[_0x8a31('0x28')](_0x28b1a1)){return getUser(_0x381acb,_0x28b1a1[_0x8a31('0xb')],_0x59231c);}else{return getUser(_0x381acb,null,_0x59231c);}})[_0x8a31('0x39')](function(_0x5f5d96){_0x3c80d2=_0x5f5d96;logger['info']('The\x20User\x20ID\x20is:',_0x3c80d2['id']);return getEndUser(_0x381acb,_0x36841c[_0x8a31('0x58')],_0x36841c[_0x8a31('0x59')],_0x59231c);})['then'](function(_0x2c8cab){_0x2e1447=_0x2c8cab;logger[_0x8a31('0x9')](_0x8a31('0x65'),_0x2e1447['id']);return getTicket(_0x381acb,_0x3c80d2,_0x2e1447,_0x4080e0,_0x36841c,_0x4080e0[_0x8a31('0x66')],_0x59231c,_0x8a31('0x5a'));})[_0x8a31('0x39')](function(_0x44e849){_0x198a34=_0x44e849;logger[_0x8a31('0x9')]('Ticket\x20created!');logger[_0x8a31('0x9')](_0x8a31('0x6e'),_0x198a34['id']);return setRelationship(_0x59231c,_0x3c80d2,_0x198a34,_0x8a31('0x6f'));})[_0x8a31('0x39')](function(){return setRelationship(_0x59231c,_0x2e1447,_0x198a34,'contacts');})[_0x8a31('0x39')](function(){return getServerInfo(_0x59231c);})[_0x8a31('0x5e')](function(_0x228fe6){logger['error']('['+_0x36841c['lastevent']['toUpperCase']()+']',JSON['stringify'](_0x228fe6));});};
\ No newline at end of file
+var _0xaa1c=['Account\x20%d\x20is\x20not\x20valid','Calls','queue','remoteUri','stripTrailingSlash','serverUrl','uri','%s/service/v4_1/rest.php','monitor_format','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','calleridname','calleridnum','Fields','Inbound','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','users','contacts','version','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','outbound','recordingFormat','none','Recording\x20is\x20enabled!','The\x20User\x20ID\x20is:','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','Outbound','charAt','[OUTBOUND]','unmanaged','lastevent','toUpperCase','lodash','request-promise','bluebird','util','ioredis','./util','../../../../config/logger','sugarcrm','redis','localhost','socket.io-emitter','POST','Creating\x20new\x20ticket...','name','getString','Subjects','assigned_user_id','created_by','description','date_start','toISOString','slice','replace','duration_hours','duration_minutes','parent_type','parent_name','direction','length','forEach','push','variableName','set_entry','JSON','format','Basic\x20%s','apiKey','toString','base64','get_server_info','stringify','info','Getting\x20agent\x20with\x20name','get_entry_list','Employees','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','user_name','then','entry_list','find','name_value_list','value','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','resolve','user_id','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','phone_home','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','<unknown>','Caller\x20-\x20%s','first_name','debug','string','nameField','toLowerCase','content','type','customField','custom_fields','idField','variable','customVariable','Variable','login','xCALLY\x20Motion\x20integration'];(function(_0x3064a7,_0x4efd7a){var _0x85d813=function(_0x277ccb){while(--_0x277ccb){_0x3064a7['push'](_0x3064a7['shift']());}};_0x85d813(++_0x4efd7a);}(_0xaa1c,0x196));var _0xcaa1=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xaa1c[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xcaa1('0x0'));var rp=require(_0xcaa1('0x1'));var BPromise=require(_0xcaa1('0x2'));var md5=require('md5');var util=require(_0xcaa1('0x3'));var Redis=require(_0xcaa1('0x4'));var intUtil=require(_0xcaa1('0x5'));var config=require('../../../../config/environment');var logger=require(_0xcaa1('0x6'))(_0xcaa1('0x7'));config[_0xcaa1('0x8')]=_['defaults'](config[_0xcaa1('0x8')],{'host':_0xcaa1('0x9'),'port':0x18eb});var io=require(_0xcaa1('0xa'))(new Redis(config['redis']));var def={'method':_0xcaa1('0xb'),'json':!![]};function emit(_0x4e4c54,_0x23f0aa,_0x390d72){io['to'](_0x4e4c54)['emit'](_0x23f0aa,_0x390d72);}function getTicket(_0x3b3627,_0x1ffe57,_0x3ca8f7,_0x5f4b21,_0x8d08aa,_0x527124,_0x3f61c0,_0xf681dd){logger['info'](_0xcaa1('0xc'));var _0x28524c=new Date();var _0x53f144=[{'name':_0xcaa1('0xd'),'value':intUtil[_0xcaa1('0xe')](_0x5f4b21[_0xcaa1('0xf')],_0x8d08aa,'\x20')},{'name':_0xcaa1('0x10'),'value':_0x1ffe57['id']},{'name':_0xcaa1('0x11'),'value':_0x1ffe57['id']},{'name':_0xcaa1('0x12'),'value':intUtil[_0xcaa1('0xe')](_0x5f4b21['Descriptions'],_0x8d08aa,'\x0a')},{'name':_0xcaa1('0x13'),'value':_0x28524c[_0xcaa1('0x14')]()[_0xcaa1('0x15')](0x0,0x13)[_0xcaa1('0x16')]('T','\x20')},{'name':_0xcaa1('0x17'),'value':'0'},{'name':_0xcaa1('0x18'),'value':'15'},{'name':'parent_id','value':_0x3ca8f7['id']},{'name':_0xcaa1('0x19'),'value':'Contacts'},{'name':_0xcaa1('0x1a'),'value':_0x3ca8f7[_0xcaa1('0xd')]},{'name':_0xcaa1('0x1b'),'value':_0xf681dd}];if(_0x527124[_0xcaa1('0x1c')]){_[_0xcaa1('0x1d')](_0x527124,function(_0x59c550){if(_0x8d08aa[_0x59c550['variableName']]){_0x53f144[_0xcaa1('0x1e')]({'name':_0x59c550['idField'],'value':_0x8d08aa[_0x59c550[_0xcaa1('0x1f')]]});}});}return request({'form':{'method':_0xcaa1('0x20'),'input_type':_0xcaa1('0x21'),'response_type':_0xcaa1('0x21'),'rest_data':JSON['stringify']({'session':_0x3f61c0['id'],'module_name':'Calls','name_value_list':_0x53f144})}});}function getAuth(_0x58f11a){return util[_0xcaa1('0x22')](_0xcaa1('0x23'),new Buffer(_0x58f11a[_0xcaa1('0x24')]+':X')[_0xcaa1('0x25')](_0xcaa1('0x26')));}function getServerInfo(_0x56457f){return request({'form':{'method':_0xcaa1('0x27'),'input_type':_0xcaa1('0x21'),'response_type':_0xcaa1('0x21'),'rest_data':JSON[_0xcaa1('0x28')]({'session':_0x56457f['id']})}});}function getUser(_0x584ced,_0x20f693,_0x13002b){if(!_['isNil'](_0x20f693)){logger[_0xcaa1('0x29')](_0xcaa1('0x2a'),_0x20f693);return request({'form':{'method':_0xcaa1('0x2b'),'input_type':_0xcaa1('0x21'),'response_type':_0xcaa1('0x21'),'rest_data':JSON[_0xcaa1('0x28')]({'session':_0x13002b['id'],'module_name':_0xcaa1('0x2c'),'query':util['format'](_0xcaa1('0x2d'),_0x20f693),'order_by':'','offset':'0','select_fields':['id',_0xcaa1('0xd'),_0xcaa1('0x2e')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xcaa1('0x2f')](function(_0x57ca0d){if(_0x57ca0d[_0xcaa1('0x30')][_0xcaa1('0x1c')]){var _0x4f34b7=_[_0xcaa1('0x31')](_0x57ca0d[_0xcaa1('0x30')],function(_0x1c2ce3){return _0x1c2ce3[_0xcaa1('0x32')][_0xcaa1('0x2e')]['value']===_0x20f693;});if(_0x4f34b7){logger[_0xcaa1('0x29')]('Agent\x20found!');return BPromise['resolve']({'id':_0x4f34b7[_0xcaa1('0x32')]['id'][_0xcaa1('0x33')],'name':_0x4f34b7['name_value_list'][_0xcaa1('0xd')]['value']});}}logger[_0xcaa1('0x29')](_0xcaa1('0x34'));return BPromise[_0xcaa1('0x35')]({'id':_0x13002b[_0xcaa1('0x32')][_0xcaa1('0x36')][_0xcaa1('0x33')],'name':_0x13002b[_0xcaa1('0x32')]['user_name'][_0xcaa1('0x33')]});});}else{logger[_0xcaa1('0x29')](_0xcaa1('0x37'));return BPromise[_0xcaa1('0x35')]({'id':_0x13002b[_0xcaa1('0x32')][_0xcaa1('0x36')][_0xcaa1('0x33')],'name':_0x13002b[_0xcaa1('0x32')]['user_name'][_0xcaa1('0x33')]});}}function getEndUser(_0x2e891b,_0x5e5bd4,_0x475607,_0x2687f1){logger[_0xcaa1('0x29')](_0xcaa1('0x38'),_0x475607);return request({'form':{'method':_0xcaa1('0x2b'),'input_type':_0xcaa1('0x21'),'response_type':'JSON','rest_data':JSON[_0xcaa1('0x28')]({'session':_0x2687f1['id'],'module_name':'Contacts','query':util[_0xcaa1('0x22')]('contacts.phone_home\x20=\x20\x22%s\x22',_0x475607),'order_by':'','offset':'0','select_fields':['id','name',_0xcaa1('0x39')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0xcaa1('0x2f')](function(_0x1d5615){if(_0x1d5615['entry_list']['length']){var _0x534c78=_[_0xcaa1('0x31')](_0x1d5615[_0xcaa1('0x30')],function(_0x2fda3){return _0x2fda3[_0xcaa1('0x32')][_0xcaa1('0x39')][_0xcaa1('0x33')]===_0x475607;});if(_0x534c78){logger[_0xcaa1('0x29')](_0xcaa1('0x3a'));return BPromise[_0xcaa1('0x35')]({'id':_0x534c78[_0xcaa1('0x32')]['id'][_0xcaa1('0x33')],'name':_0x534c78[_0xcaa1('0x32')][_0xcaa1('0xd')][_0xcaa1('0x33')],'phone':_0x534c78[_0xcaa1('0x32')][_0xcaa1('0x39')][_0xcaa1('0x33')]});}}else{logger[_0xcaa1('0x29')](_0xcaa1('0x3b'));return request({'form':{'method':'set_entry','input_type':_0xcaa1('0x21'),'response_type':'JSON','rest_data':JSON[_0xcaa1('0x28')]({'session':_0x2687f1['id'],'module_name':_0xcaa1('0x3c'),'name_value_list':[{'name':'first_name','value':_0x5e5bd4!==_0xcaa1('0x3d')?_0x5e5bd4:util[_0xcaa1('0x22')](_0xcaa1('0x3e'),_0x475607)},{'name':_0xcaa1('0x39'),'value':_0x475607}]})}})[_0xcaa1('0x2f')](function(_0x546a5e){logger[_0xcaa1('0x29')]('Enduser\x20created.');return BPromise['resolve']({'id':_0x546a5e['id'],'name':_0x546a5e['entry_list'][_0xcaa1('0x3f')][_0xcaa1('0x33')],'phone':_0x546a5e['entry_list'][_0xcaa1('0x39')]['value']});});}});}function request(_0x2e7891){logger[_0xcaa1('0x40')]('[HTTP]',JSON[_0xcaa1('0x28')](_0x2e7891));return rp(_['merge'](def,_0x2e7891));}function getTags(_0x5325ea,_0x28e7ce){var _0x4b07f8=[];if(_0x5325ea&&_0x5325ea['length']>0x0){_0x4b07f8=_['map'](_0x5325ea,_0x28e7ce);}return _0x4b07f8;}function getCustomFields(_0x1cc5e1,_0x2eb305){var _0x313147=[];var _0xb94d1d={'custom_fields':[]};if(_0x1cc5e1['length']>0x0){_[_0xcaa1('0x1d')](_0x1cc5e1,function(_0x200d44){if(_0x200d44['type']===_0xcaa1('0x41')&&_0x200d44['nameField']&&!_0x200d44['customField']){_0xb94d1d[_0x200d44[_0xcaa1('0x42')][_0xcaa1('0x43')]()]=_0x200d44[_0xcaa1('0x44')][_0xcaa1('0x25')]();}else if(_0x200d44[_0xcaa1('0x45')]===_0xcaa1('0x41')&&_0x200d44['idField']&&_0x200d44[_0xcaa1('0x46')]){_0xb94d1d[_0xcaa1('0x47')][_0xcaa1('0x1e')]({'id':_0x200d44[_0xcaa1('0x48')],'value':_0x200d44[_0xcaa1('0x44')][_0xcaa1('0x25')]()});}else if(_0x200d44['type']===_0xcaa1('0x49')&&_0x200d44[_0xcaa1('0x1f')]&&_0x200d44[_0xcaa1('0x48')]&&_0x200d44[_0xcaa1('0x46')]){_0x2eb305[_0x200d44[_0xcaa1('0x1f')]]&&_0xb94d1d[_0xcaa1('0x47')]['push']({'id':_0x200d44['idField'],'value':_0x2eb305[_0x200d44[_0xcaa1('0x1f')]][_0xcaa1('0x25')]()});}else if(_0x200d44[_0xcaa1('0x45')]===_0xcaa1('0x4a')&&_0x200d44[_0xcaa1('0x4b')]&&_0x200d44['Variable'][_0xcaa1('0xd')]&&_0x200d44[_0xcaa1('0x48')]&&_0x200d44[_0xcaa1('0x46')]){_0x2eb305[_0x200d44[_0xcaa1('0x4b')][_0xcaa1('0xd')][_0xcaa1('0x43')]()]&&_0xb94d1d[_0xcaa1('0x47')]['push']({'id':_0x200d44[_0xcaa1('0x48')],'value':_0x2eb305[_0x200d44['Variable']['name']['toLowerCase']()][_0xcaa1('0x25')]()});}});}return _0xb94d1d;}function getConnection(_0x372856){return request({'method':_0xcaa1('0xb'),'form':{'method':_0xcaa1('0x4c'),'input_type':'JSON','response_type':'JSON','rest_data':JSON[_0xcaa1('0x28')]({'user_auth':{'user_name':_0x372856['username'],'password':_0x372856['password'],'encryption':'PLAIN'},'application':_0xcaa1('0x4d')})}})[_0xcaa1('0x2f')](function(_0x81446c){var _0x4101e0=_0x81446c;if(_0x4101e0['id']){def['sessionID']=_0x4101e0['id'];return BPromise[_0xcaa1('0x35')](_0x4101e0);}else{throw new Error(util['format'](_0xcaa1('0x4e'),_0x372856['id']));}});}function setRelationship(_0x124c78,_0x31a2d5,_0x49fb58,_0x17d3e1){return request({'form':{'method':'set_relationship','input_type':_0xcaa1('0x21'),'response_type':'JSON','rest_data':JSON[_0xcaa1('0x28')]({'session':_0x124c78['id'],'module_name':_0xcaa1('0x4f'),'module_id':_0x49fb58['id'],'link_field_name':_0x17d3e1,'related_ids':[_0x31a2d5['id']],'name_value_list':[],'delete':0x0})}});}exports[_0xcaa1('0x50')]=function(_0x19bd50,_0xf8bdee,_0x4ab44d,_0xdb50e1,_0x47a0fd,_0x4801c4){var _0x40ec94,_0x4b6a51,_0x2b8edb,_0x497047;_0x4801c4[_0xcaa1('0x51')]=intUtil[_0xcaa1('0x52')](_0x4801c4[_0xcaa1('0x51')]);_0x4801c4['serverUrl']=intUtil[_0xcaa1('0x52')](_0x4801c4[_0xcaa1('0x53')]);def[_0xcaa1('0x54')]=util[_0xcaa1('0x22')](_0xcaa1('0x55'),_0x4801c4[_0xcaa1('0x51')]);if(_0x47a0fd&&_0x47a0fd[_0xcaa1('0x56')]){logger[_0xcaa1('0x29')](_0xcaa1('0x57'),'Recording\x20is\x20enabled!');_0xf8bdee['recordingURL']=util[_0xcaa1('0x22')](_0xcaa1('0x58'),_0x4801c4['serverUrl'],_0xf8bdee[_0xcaa1('0x59')],md5(_0xf8bdee[_0xcaa1('0x59')]));}else{_0xf8bdee[_0xcaa1('0x5a')]='';}return getConnection(_0x4801c4)[_0xcaa1('0x2f')](function(_0x499d0a){_0x497047=_0x499d0a;return getUser(_0x4801c4,_0xdb50e1[_0xcaa1('0xd')],_0x497047);})[_0xcaa1('0x2f')](function(_0x2b7fef){_0x40ec94=_0x2b7fef;logger[_0xcaa1('0x29')]('The\x20User\x20ID\x20is:',_0x40ec94['id']);return getEndUser(_0x4801c4,_0xf8bdee[_0xcaa1('0x5b')],_0xf8bdee[_0xcaa1('0x5c')],_0x497047);})[_0xcaa1('0x2f')](function(_0x4bcb10){_0x4b6a51=_0x4bcb10;logger[_0xcaa1('0x29')]('The\x20Enduser\x20ID\x20is:',_0x4b6a51['id']);return getTicket(_0x4801c4,_0x40ec94,_0x4b6a51,_0x4ab44d,_0xf8bdee,_0x4ab44d[_0xcaa1('0x5d')],_0x497047,_0xcaa1('0x5e'));})['then'](function(_0x6f2c8c){_0x2b8edb=_0x6f2c8c;logger[_0xcaa1('0x29')](_0xcaa1('0x5f'));logger['info'](_0xcaa1('0x60'),_0x2b8edb['id']);return setRelationship(_0x497047,_0x40ec94,_0x2b8edb,_0xcaa1('0x61'));})['then'](function(){return setRelationship(_0x497047,_0x4b6a51,_0x2b8edb,_0xcaa1('0x62'));})['then'](function(){return getServerInfo(_0x497047);})[_0xcaa1('0x2f')](function(_0xea72af){var _0x3347be=parseInt(_0xea72af[_0xcaa1('0x63')]['charAt'](0x0));var _0xdcfc35=util[_0xcaa1('0x22')](_0xcaa1('0x64'),_0x4801c4[_0xcaa1('0x51')],_0x2b8edb['id']);if(_0x3347be>0x6){_0xdcfc35=util[_0xcaa1('0x22')](_0xcaa1('0x65'),_0x4801c4[_0xcaa1('0x51')],_0x2b8edb['id']);}logger[_0xcaa1('0x29')]('[QUEUE]',_0xcaa1('0x66'));emit(util[_0xcaa1('0x22')](_0xcaa1('0x67'),_0xdb50e1[_0xcaa1('0xd')]),_0xcaa1('0x68'),{'uri':_0xdcfc35});})[_0xcaa1('0x69')](function(_0xb18982){logger[_0xcaa1('0x6a')]('[QUEUE]',JSON[_0xcaa1('0x28')](_0xb18982));});};exports[_0xcaa1('0x6b')]=function(_0x13d870,_0x3c7e00,_0x3b2945,_0x27bc38,_0x5cd73d,_0xf28490,_0x416c66){var _0x18bae0,_0xb6941c,_0x3eb60f,_0x24e890;_0xf28490[_0xcaa1('0x51')]=intUtil[_0xcaa1('0x52')](_0xf28490[_0xcaa1('0x51')]);_0xf28490[_0xcaa1('0x53')]=intUtil[_0xcaa1('0x52')](_0xf28490[_0xcaa1('0x53')]);def['uri']=util[_0xcaa1('0x22')](_0xcaa1('0x55'),_0xf28490[_0xcaa1('0x51')]);if(_0x416c66&&_0x416c66[_0xcaa1('0x6c')]&&_0x416c66['recordingFormat']!==_0xcaa1('0x6d')){logger[_0xcaa1('0x29')]('[OUTBOUND]',_0xcaa1('0x6e'));_0x3c7e00[_0xcaa1('0x5a')]=util[_0xcaa1('0x22')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0xf28490[_0xcaa1('0x53')],_0x3c7e00[_0xcaa1('0x59')],md5(_0x3c7e00[_0xcaa1('0x59')]));}return getConnection(_0xf28490)[_0xcaa1('0x2f')](function(_0x5aa259){_0x24e890=_0x5aa259;return getUser(_0xf28490,_0x27bc38[_0xcaa1('0xd')],_0x24e890);})[_0xcaa1('0x2f')](function(_0x4764ef){_0x18bae0=_0x4764ef;logger[_0xcaa1('0x29')](_0xcaa1('0x6f'),_0x18bae0['id']);return getEndUser(_0xf28490,_0x3c7e00[_0xcaa1('0x70')],_0x3c7e00[_0xcaa1('0x71')],_0x24e890);})[_0xcaa1('0x2f')](function(_0x4fe520){_0xb6941c=_0x4fe520;logger[_0xcaa1('0x29')](_0xcaa1('0x72'),_0xb6941c['id']);return getTicket(_0xf28490,_0x18bae0,_0xb6941c,_0x3b2945,_0x3c7e00,_0x3b2945['Fields'],_0x24e890,_0xcaa1('0x73'));})[_0xcaa1('0x2f')](function(_0x1caa4e){_0x3eb60f=_0x1caa4e;logger[_0xcaa1('0x29')]('Ticket\x20created!');logger['info'](_0xcaa1('0x60'),_0x3eb60f['id']);return setRelationship(_0x24e890,_0x18bae0,_0x3eb60f,_0xcaa1('0x61'));})[_0xcaa1('0x2f')](function(){return setRelationship(_0x24e890,_0xb6941c,_0x3eb60f,_0xcaa1('0x62'));})[_0xcaa1('0x2f')](function(){return getServerInfo(_0x24e890);})['then'](function(_0x216e76){var _0x1c3019=parseInt(_0x216e76[_0xcaa1('0x63')][_0xcaa1('0x74')](0x0));var _0x20dd85=util[_0xcaa1('0x22')](_0xcaa1('0x64'),_0xf28490['remoteUri'],_0x3eb60f['id']);if(_0x1c3019>0x6){_0x20dd85=util['format'](_0xcaa1('0x65'),_0xf28490[_0xcaa1('0x51')],_0x3eb60f['id']);}logger[_0xcaa1('0x29')](_0xcaa1('0x75'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xcaa1('0x22')](_0xcaa1('0x67'),_0x27bc38[_0xcaa1('0xd')]),_0xcaa1('0x68'),{'uri':_0x20dd85});})[_0xcaa1('0x69')](function(_0x235a4f){logger[_0xcaa1('0x6a')](_0xcaa1('0x75'),JSON['stringify'](_0x235a4f));});};exports[_0xcaa1('0x76')]=function(_0xa357d2,_0x3d5e88,_0x4a4f2c,_0x5a77d1,_0x284df2,_0x1dfba0){var _0x4dd131,_0x4eba19,_0x48c973,_0x49f9d9;_0x1dfba0[_0xcaa1('0x51')]=intUtil[_0xcaa1('0x52')](_0x1dfba0['remoteUri']);_0x1dfba0[_0xcaa1('0x53')]=intUtil['stripTrailingSlash'](_0x1dfba0[_0xcaa1('0x53')]);def[_0xcaa1('0x54')]=util[_0xcaa1('0x22')](_0xcaa1('0x55'),_0x1dfba0['remoteUri']);if(_0x284df2&&_0x284df2[_0xcaa1('0x56')]){logger['info']('['+_0x3d5e88[_0xcaa1('0x77')][_0xcaa1('0x78')]()+']',_0xcaa1('0x6e'));_0x3d5e88[_0xcaa1('0x5a')]=util[_0xcaa1('0x22')](_0xcaa1('0x58'),_0x1dfba0[_0xcaa1('0x53')],_0x3d5e88['uniqueid'],md5(_0x3d5e88[_0xcaa1('0x59')]));}else{_0x3d5e88[_0xcaa1('0x5a')]='';}return getConnection(_0x1dfba0)['then'](function(_0x2af8b3){_0x49f9d9=_0x2af8b3;if(!_['isNil'](_0x5a77d1)){return getUser(_0x1dfba0,_0x5a77d1[_0xcaa1('0xd')],_0x49f9d9);}else{return getUser(_0x1dfba0,null,_0x49f9d9);}})[_0xcaa1('0x2f')](function(_0x226d91){_0x4dd131=_0x226d91;logger[_0xcaa1('0x29')](_0xcaa1('0x6f'),_0x4dd131['id']);return getEndUser(_0x1dfba0,_0x3d5e88['calleridname'],_0x3d5e88[_0xcaa1('0x5c')],_0x49f9d9);})[_0xcaa1('0x2f')](function(_0x49250d){_0x4eba19=_0x49250d;logger[_0xcaa1('0x29')](_0xcaa1('0x72'),_0x4eba19['id']);return getTicket(_0x1dfba0,_0x4dd131,_0x4eba19,_0x4a4f2c,_0x3d5e88,_0x4a4f2c[_0xcaa1('0x5d')],_0x49f9d9,_0xcaa1('0x5e'));})['then'](function(_0x39ccef){_0x48c973=_0x39ccef;logger[_0xcaa1('0x29')](_0xcaa1('0x5f'));logger['info'](_0xcaa1('0x60'),_0x48c973['id']);return setRelationship(_0x49f9d9,_0x4dd131,_0x48c973,_0xcaa1('0x61'));})[_0xcaa1('0x2f')](function(){return setRelationship(_0x49f9d9,_0x4eba19,_0x48c973,_0xcaa1('0x62'));})[_0xcaa1('0x2f')](function(){return getServerInfo(_0x49f9d9);})[_0xcaa1('0x69')](function(_0x371723){logger[_0xcaa1('0x6a')]('['+_0x3d5e88[_0xcaa1('0x77')]['toUpperCase']()+']',JSON[_0xcaa1('0x28')](_0x371723));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c55=['type','push','content','variable','variableName','toString','customVariable','Variable','name','toLowerCase','keyValue','keyType','string','key','%s:\x20%s','keyContent','format','stripTrailingSlash','slice','substring','lastIndexOf','isNil','getString','length','sortBy'];(function(_0x353e55,_0x384e65){var _0xe1646a=function(_0x4f2877){while(--_0x4f2877){_0x353e55['push'](_0x353e55['shift']());}};_0xe1646a(++_0x384e65);}(_0x1c55,0x174));var _0x51c5=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x1c55[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var util=require('util');exports[_0x51c5('0x0')]=function(_0x2e1a2,_0x222220,_0x53086d){var _0x268e49=[];if(_0x2e1a2[_0x51c5('0x1')]>0x0){var _0x4d467a=_[_0x51c5('0x2')](_0x2e1a2,['id']);for(var _0x579dd1=0x0;_0x579dd1<_0x4d467a[_0x51c5('0x1')];_0x579dd1++){var _0x3823e5=_0x4d467a[_0x579dd1];if(_0x3823e5[_0x51c5('0x3')]==='string'){_0x268e49[_0x51c5('0x4')](_0x3823e5[_0x51c5('0x5')]);}else if(_0x3823e5[_0x51c5('0x3')]===_0x51c5('0x6')&&_0x3823e5['variableName']){_0x222220[_0x3823e5[_0x51c5('0x7')]]&&_0x268e49[_0x51c5('0x4')](_0x222220[_0x3823e5[_0x51c5('0x7')]][_0x51c5('0x8')]());}else if(_0x3823e5[_0x51c5('0x3')]===_0x51c5('0x9')&&_0x3823e5[_0x51c5('0xa')]&&_0x3823e5[_0x51c5('0xa')]['name']){_0x222220[_0x3823e5[_0x51c5('0xa')][_0x51c5('0xb')]['toLowerCase']()]&&_0x268e49[_0x51c5('0x4')](_0x222220[_0x3823e5[_0x51c5('0xa')][_0x51c5('0xb')][_0x51c5('0xc')]()][_0x51c5('0x8')]());}else if(_0x3823e5[_0x51c5('0x3')]===_0x51c5('0xd')){if(_0x3823e5[_0x51c5('0xe')]===_0x51c5('0xf')&&_0x3823e5[_0x51c5('0x10')]){_0x268e49[_0x51c5('0x4')](util['format'](_0x51c5('0x11'),_0x3823e5['key'],_0x3823e5[_0x51c5('0x12')]));}else if(_0x3823e5[_0x51c5('0xe')]===_0x51c5('0x6')&&_0x3823e5['variableName']&&_0x3823e5[_0x51c5('0x10')]){_0x222220[_0x3823e5[_0x51c5('0x7')]]&&_0x268e49['push'](util[_0x51c5('0x13')](_0x51c5('0x11'),_0x3823e5[_0x51c5('0x10')],_0x222220[_0x3823e5[_0x51c5('0x7')]]));}else if(_0x3823e5['keyType']===_0x51c5('0x9')&&_0x3823e5[_0x51c5('0xa')]&&_0x3823e5[_0x51c5('0xa')][_0x51c5('0xb')]&&_0x3823e5[_0x51c5('0x10')]){_0x222220[_0x3823e5[_0x51c5('0xa')][_0x51c5('0xb')][_0x51c5('0xc')]()]&&_0x268e49[_0x51c5('0x4')](util['format']('%s:\x20%s',_0x3823e5[_0x51c5('0x10')],_0x222220[_0x3823e5[_0x51c5('0xa')][_0x51c5('0xb')][_0x51c5('0xc')]()]));}}}}return _0x268e49['join'](_0x53086d);};exports[_0x51c5('0x14')]=function(_0x314815){var _0x3a3a94=_0x314815[_0x51c5('0x15')](-0x1);if(_0x3a3a94==='/'){_0x314815=_0x314815[_0x51c5('0x16')](0x0,_0x314815[_0x51c5('0x17')](_0x3a3a94));}return _0x314815;};exports['validateEmail']=function(_0x5e7bc8){if(!_[_0x51c5('0x18')](_0x5e7bc8)&&_0x5e7bc8!==''){var _0x21ab97=/^(([^<>()\[\]\\.,;:\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,}))$/;return _0x21ab97['test'](String(_0x5e7bc8)[_0x51c5('0xc')]());}else{return![];}};
\ No newline at end of file
+var _0xcd6e=['type','push','content','variable','variableName','customVariable','name','Variable','toLowerCase','keyValue','keyType','string','key','%s:\x20%s','keyContent','format','join','slice','substring','lastIndexOf','validateEmail','lodash','util','length','sortBy'];(function(_0x247a0d,_0xbb4651){var _0x34601e=function(_0x558706){while(--_0x558706){_0x247a0d['push'](_0x247a0d['shift']());}};_0x34601e(++_0xbb4651);}(_0xcd6e,0x1f0));var _0xecd6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcd6e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xecd6('0x0'));var util=require(_0xecd6('0x1'));exports['getString']=function(_0x35e2a,_0x1a6df9,_0x21899f){var _0x1a77bc=[];if(_0x35e2a[_0xecd6('0x2')]>0x0){var _0x13f0a3=_[_0xecd6('0x3')](_0x35e2a,['id']);for(var _0x344d3e=0x0;_0x344d3e<_0x13f0a3['length'];_0x344d3e++){var _0x5d3939=_0x13f0a3[_0x344d3e];if(_0x5d3939[_0xecd6('0x4')]==='string'){_0x1a77bc[_0xecd6('0x5')](_0x5d3939[_0xecd6('0x6')]);}else if(_0x5d3939[_0xecd6('0x4')]===_0xecd6('0x7')&&_0x5d3939[_0xecd6('0x8')]){_0x1a6df9[_0x5d3939[_0xecd6('0x8')]]&&_0x1a77bc[_0xecd6('0x5')](_0x1a6df9[_0x5d3939[_0xecd6('0x8')]]['toString']());}else if(_0x5d3939[_0xecd6('0x4')]===_0xecd6('0x9')&&_0x5d3939['Variable']&&_0x5d3939['Variable'][_0xecd6('0xa')]){_0x1a6df9[_0x5d3939[_0xecd6('0xb')]['name'][_0xecd6('0xc')]()]&&_0x1a77bc[_0xecd6('0x5')](_0x1a6df9[_0x5d3939[_0xecd6('0xb')]['name']['toLowerCase']()]['toString']());}else if(_0x5d3939[_0xecd6('0x4')]===_0xecd6('0xd')){if(_0x5d3939[_0xecd6('0xe')]===_0xecd6('0xf')&&_0x5d3939[_0xecd6('0x10')]){_0x1a77bc[_0xecd6('0x5')](util['format'](_0xecd6('0x11'),_0x5d3939[_0xecd6('0x10')],_0x5d3939[_0xecd6('0x12')]));}else if(_0x5d3939[_0xecd6('0xe')]===_0xecd6('0x7')&&_0x5d3939[_0xecd6('0x8')]&&_0x5d3939[_0xecd6('0x10')]){_0x1a6df9[_0x5d3939[_0xecd6('0x8')]]&&_0x1a77bc['push'](util[_0xecd6('0x13')](_0xecd6('0x11'),_0x5d3939[_0xecd6('0x10')],_0x1a6df9[_0x5d3939[_0xecd6('0x8')]]));}else if(_0x5d3939[_0xecd6('0xe')]===_0xecd6('0x9')&&_0x5d3939[_0xecd6('0xb')]&&_0x5d3939[_0xecd6('0xb')][_0xecd6('0xa')]&&_0x5d3939[_0xecd6('0x10')]){_0x1a6df9[_0x5d3939[_0xecd6('0xb')][_0xecd6('0xa')][_0xecd6('0xc')]()]&&_0x1a77bc[_0xecd6('0x5')](util[_0xecd6('0x13')](_0xecd6('0x11'),_0x5d3939[_0xecd6('0x10')],_0x1a6df9[_0x5d3939[_0xecd6('0xb')][_0xecd6('0xa')][_0xecd6('0xc')]()]));}}}}return _0x1a77bc[_0xecd6('0x14')](_0x21899f);};exports['stripTrailingSlash']=function(_0x931062){var _0x419ac7=_0x931062[_0xecd6('0x15')](-0x1);if(_0x419ac7==='/'){_0x931062=_0x931062[_0xecd6('0x16')](0x0,_0x931062[_0xecd6('0x17')](_0x419ac7));}return _0x931062;};exports[_0xecd6('0x18')]=function(_0x313067){if(!_['isNil'](_0x313067)&&_0x313067!==''){var _0x2d044c=/^(([^<>()\[\]\\.,;:\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,}))$/;return _0x2d044c['test'](String(_0x313067)[_0xecd6('0xc')]());}else{return![];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['variable','variableName','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','Normal','Open','Subjects','POST','format','%s/webservice.php','create','username','sessionName','HelpDesk','stringify','then','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','error','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','validateEmail','Getting\x20agent\x20with\x20email','GET','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','resolve','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','admin','statusCode','getUser','Searching\x20end\x20user\x20with\x20phone','remoteUri','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!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','getchallenge','login','token','Account\x20%d\x20is\x20not\x20valid','[HTTP]','queue','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','The\x20User\x20ID\x20is:','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','The\x20Enduser\x20ID\x20is:','Fields','split','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridname','lastevent','lodash','request-promise','bluebird','ioredis','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','localhost','socket.io-emitter','length','forEach','includes','idField','content','toString','type'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'use strict';var _=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var BPromise=require(_0x0a9e('0x2'));var md5=require('md5');var util=require('util');var Redis=require(_0x0a9e('0x3'));var intUtil=require('./util');var config=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));config[_0x0a9e('0x7')]=_[_0x0a9e('0x8')](config['redis'],{'host':_0x0a9e('0x9'),'port':0x18eb});var io=require(_0x0a9e('0xa'))(new Redis(config[_0x0a9e('0x7')]));function emit(_0x5f41ea,_0x503809,_0xe42b77){io['to'](_0x5f41ea)['emit'](_0x503809,_0xe42b77);}function getCustomFields(_0x52cace,_0x39753a){var _0xf81284={};if(_0x52cace[_0x0a9e('0xb')]>0x0){_[_0x0a9e('0xc')](_0x52cace,function(_0xfeb75b){if(_[_0x0a9e('0xd')](['string','picklist'],_0xfeb75b['type'])&&_0xfeb75b['idField']){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0xfeb75b[_0x0a9e('0xf')][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x12')&&_0xfeb75b[_0x0a9e('0x13')]&&_0xfeb75b['idField']&&_0x39753a[_0xfeb75b[_0x0a9e('0x13')]]){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0x39753a[_0xfeb75b[_0x0a9e('0x13')]][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x14')&&_0xfeb75b['Variable']&&_0xfeb75b[_0x0a9e('0x15')]['name']&&_0xfeb75b[_0x0a9e('0xe')]&&_0x39753a[_0xfeb75b['Variable'][_0x0a9e('0x16')][_0x0a9e('0x17')]()]){_0xf81284[_0xfeb75b['idField']]=_0x39753a[_0xfeb75b[_0x0a9e('0x15')]['name'][_0x0a9e('0x17')]()][_0x0a9e('0x10')]();}});}return _0xf81284;}function createTicket(_0x106033,_0x205fd6,_0x31b1ca,_0x2eb11f,_0x530eb7,_0x20559e,_0x1314ae){logger[_0x0a9e('0x18')](_0x0a9e('0x19'));var _0x105080=_['merge']({'parent_id':'','assigned_user_id':_0x205fd6['id'],'ticketpriorities':_0x0a9e('0x1a'),'ticketstatus':_0x0a9e('0x1b'),'ticket_title':intUtil['getString'](_0x2eb11f[_0x0a9e('0x1c')],_0x530eb7,'\x20'),'description':intUtil['getString'](_0x2eb11f['Descriptions'],_0x530eb7,'\x0a'),'contact_id':_0x31b1ca['id']},getCustomFields(_0x20559e,_0x530eb7));var _0x3a02e1={'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x106033['remoteUri']),'form':{'operation':_0x0a9e('0x20'),'username':_0x106033[_0x0a9e('0x21')],'sessionName':_0x1314ae[_0x0a9e('0x22')],'elementType':_0x0a9e('0x23'),'element':JSON[_0x0a9e('0x24')](_0x105080)},'json':!![]};return request(_0x3a02e1)[_0x0a9e('0x25')](function(_0x16b1ca){if(_0x16b1ca['success']){return BPromise['resolve']({'id':_0x16b1ca[_0x0a9e('0x26')]['id']});}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x27'),JSON[_0x0a9e('0x24')](_0x16b1ca['error'])));}})[_0x0a9e('0x28')](function(_0x479bc4){var _0x45a1e7=_0x479bc4['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x2b'),_0x45a1e7,JSON[_0x0a9e('0x24')](_0x479bc4));});}function getUser(_0x140511,_0x1538a4,_0x11c3b6){if(intUtil[_0x0a9e('0x2c')](_0x1538a4)){logger['info'](_0x0a9e('0x2d'),_0x1538a4);return request({'method':_0x0a9e('0x2e'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x140511['remoteUri']),'qs':{'operation':_0x0a9e('0x2f'),'username':_0x140511[_0x0a9e('0x21')],'sessionName':_0x11c3b6[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x30'),_0x1538a4)},'json':!![]})[_0x0a9e('0x25')](function(_0x296f41){if(_0x296f41[_0x0a9e('0x31')]&&_0x296f41[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')]('Agent\x20found!');return BPromise[_0x0a9e('0x32')]({'id':_0x296f41[_0x0a9e('0x26')][0x0]['id'],'email':_0x296f41[_0x0a9e('0x26')][0x0][_0x0a9e('0x33')],'name':_0x296f41[_0x0a9e('0x26')][0x0]['first_name']+'\x20'+_0x296f41[_0x0a9e('0x26')][_0x0a9e('0x34')]});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511[_0x0a9e('0x21')],'name':_0x0a9e('0x37')});}})['catch'](function(_0x44295a){var _0x5e7238=_0x44295a[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x39'),_0x5e7238,JSON['stringify'](_0x44295a));});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511['username'],'name':'admin'})[_0x0a9e('0x28')](function(_0x5640eb){var _0x24936a=_0x5640eb[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getUser',_0x24936a,JSON[_0x0a9e('0x24')](_0x5640eb));});}}function getEndUser(_0x3bfce8,_0x3cae,_0x533942,_0x1dbf74){logger[_0x0a9e('0x18')](_0x0a9e('0x3a'),_0x533942);return request({'method':'GET','uri':util['format'](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'qs':{'operation':'query','username':_0x3bfce8[_0x0a9e('0x21')],'sessionName':_0x1dbf74[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x3c'),_0x533942,_0x533942,_0x533942,_0x533942,_0x533942)},'json':!![]})['then'](function(_0x5a594b){if(_0x5a594b[_0x0a9e('0x31')]&&_0x5a594b[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')](_0x0a9e('0x3d'));return BPromise[_0x0a9e('0x32')]({'id':_0x5a594b['result'][0x0]['id'],'name':_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3e')]+'\x20'+_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3f')],'phone':_0x533942});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x40'));return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x20'),'sessionName':_0x1dbf74[_0x0a9e('0x22')],'elementType':_0x0a9e('0x41'),'element':JSON[_0x0a9e('0x24')]({'lastname':_0x3cae,'phone':_0x533942,'assigned_user_id':'\x20'})},'json':!![]})[_0x0a9e('0x25')](function(_0x4d04c8){logger['info'](_0x0a9e('0x42'));return BPromise[_0x0a9e('0x32')]({'id':_0x4d04c8[_0x0a9e('0x26')]['id'],'name':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x3f')],'phone':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x43')]});})[_0x0a9e('0x28')](function(_0x432fcc){var _0x25c6e6=_0x432fcc[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')]('[vTiger],\x20%s,\x20%s,\x20%s',_0x0a9e('0x44'),_0x25c6e6,JSON[_0x0a9e('0x24')](_0x432fcc));});}});}function getConnection(_0xdd268f){var _0xfbd5ad=_0xdd268f[_0x0a9e('0x21')];var _0xbe9d19=_0xdd268f[_0x0a9e('0x45')];return request({'method':_0x0a9e('0x2e'),'uri':util['format'](_0x0a9e('0x1f'),_0xdd268f['remoteUri']),'qs':{'operation':_0x0a9e('0x46'),'username':_0xfbd5ad},'json':!![]})[_0x0a9e('0x25')](function(_0x8d6dd1){if(_0x8d6dd1['success']){return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0xdd268f[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x47'),'username':_0xfbd5ad,'accessKey':md5(_0x8d6dd1[_0x0a9e('0x26')][_0x0a9e('0x48')]+_0xbe9d19)},'json':!![]});}})['then'](function(_0x13f44d){if(_0x13f44d[_0x0a9e('0x31')]){return BPromise[_0x0a9e('0x32')](_0x13f44d[_0x0a9e('0x26')]);}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x49'),_0xdd268f['id']));}})[_0x0a9e('0x28')](function(_0x19383e){var _0x34febd=_0x19383e['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getConnection',_0x34febd,JSON['stringify'](_0x19383e));});}function request(_0x5ddf84){logger[_0x0a9e('0x18')](_0x0a9e('0x4a'),JSON[_0x0a9e('0x24')](_0x5ddf84));return rp(_0x5ddf84);}exports[_0x0a9e('0x4b')]=function(_0x61bb17,_0x30decb,_0x2e5165,_0x375c18,_0x5d38ae,_0x4b1b9f){var _0x53975a,_0x39d77d,_0x204173,_0x14d602;_0x4b1b9f['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x4b1b9f[_0x0a9e('0x3b')]);if(_0x5d38ae&&_0x5d38ae['monitor_format']){logger['info'](_0x0a9e('0x4d'),'Recording\x20is\x20enabled!');_0x30decb[_0x0a9e('0x4e')]=util['format'](_0x0a9e('0x4f'),_0x4b1b9f[_0x0a9e('0x50')],_0x30decb[_0x0a9e('0x51')],md5(_0x30decb['uniqueid']));}else{_0x30decb[_0x0a9e('0x4e')]='';}return getConnection(_0x4b1b9f)[_0x0a9e('0x25')](function(_0x508b47){_0x14d602=_0x508b47;return getUser(_0x4b1b9f,_0x375c18['email'],_0x14d602);})[_0x0a9e('0x25')](function(_0x3aedd0){_0x53975a=_0x3aedd0;logger['info'](_0x0a9e('0x52'),_0x53975a['id']);return getEndUser(_0x4b1b9f,_0x30decb['calleridname'],_0x30decb[_0x0a9e('0x53')],_0x14d602);})['then'](function(_0xe22ccc){_0x39d77d=_0xe22ccc;logger['info']('The\x20Enduser\x20ID\x20is:',_0x39d77d['id']);return createTicket(_0x4b1b9f,_0x53975a,_0x39d77d,_0x2e5165,_0x30decb,_0x2e5165['Fields'],_0x14d602);})[_0x0a9e('0x25')](function(_0x47de4c){_0x204173=_0x47de4c;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x204173['id']);var _0x232830=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x4b1b9f[_0x0a9e('0x3b')],_['split'](_0x204173['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x4d'),_0x0a9e('0x57'));emit(util[_0x0a9e('0x1e')](_0x0a9e('0x58'),_0x375c18[_0x0a9e('0x16')]),'trigger:browser:url',{'uri':_0x232830});})[_0x0a9e('0x28')](function(_0x26bc80){logger['error'](_0x0a9e('0x4d'),JSON['stringify'](_0x26bc80));});};exports[_0x0a9e('0x59')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee,_0x273cb5,_0x49d231,_0x2244d6,_0x1fc70e){var _0x261adb,_0x7be420,_0x1cca9f,_0x26d7db;_0x2244d6['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x2244d6['remoteUri']);_0x2244d6[_0x0a9e('0x50')]=intUtil[_0x0a9e('0x4c')](_0x2244d6[_0x0a9e('0x50')]);if(_0x1fc70e&&_0x1fc70e['recordingFormat']&&_0x1fc70e[_0x0a9e('0x5a')]!==_0x0a9e('0x5b')){logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),'Recording\x20is\x20enabled!');_0x4b3c1a[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2244d6[_0x0a9e('0x50')],_0x4b3c1a[_0x0a9e('0x51')],md5(_0x4b3c1a[_0x0a9e('0x51')]));}return getConnection(_0x2244d6)[_0x0a9e('0x25')](function(_0x401837){_0x26d7db=_0x401837;return getUser(_0x2244d6,_0x273cb5['email'],_0x26d7db);})[_0x0a9e('0x25')](function(_0x2937e0){_0x261adb=_0x2937e0;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x261adb['id']);return getEndUser(_0x2244d6,_0x4b3c1a[_0x0a9e('0x5d')],_0x4b3c1a['destcalleridnum'],_0x26d7db);})['then'](function(_0x242745){_0x7be420=_0x242745;logger[_0x0a9e('0x18')](_0x0a9e('0x5e'),_0x7be420['id']);return createTicket(_0x2244d6,_0x261adb,_0x7be420,_0x5674ee,_0x4b3c1a,_0x5674ee[_0x0a9e('0x5f')],_0x26d7db);})[_0x0a9e('0x25')](function(_0xc8c264){_0x1cca9f=_0xc8c264;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1cca9f['id']);var _0x2e89b7=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x2244d6[_0x0a9e('0x3b')],_[_0x0a9e('0x60')](_0x1cca9f['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),_0x0a9e('0x57'));emit(util['format'](_0x0a9e('0x58'),_0x273cb5[_0x0a9e('0x16')]),_0x0a9e('0x61'),{'uri':_0x2e89b7});})['catch'](function(_0x1148a1){logger[_0x0a9e('0x29')]('[OUTBOUND]',JSON[_0x0a9e('0x24')](_0x1148a1));});};exports[_0x0a9e('0x62')]=function(_0x3ef315,_0x427946,_0x13b5c0,_0x4a43a8,_0x50cdce,_0x4a2438){var _0x40fb85,_0x18bf5d,_0x1104ad,_0x23a7d3;_0x4a2438[_0x0a9e('0x3b')]=intUtil[_0x0a9e('0x4c')](_0x4a2438[_0x0a9e('0x3b')]);_0x4a2438[_0x0a9e('0x50')]=intUtil['stripTrailingSlash'](_0x4a2438[_0x0a9e('0x50')]);if(_0x50cdce&&_0x50cdce[_0x0a9e('0x63')]){logger[_0x0a9e('0x18')]('['+_0x427946['lastevent'][_0x0a9e('0x64')]()+']','Recording\x20is\x20enabled!');_0x427946[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4a2438[_0x0a9e('0x50')],_0x427946[_0x0a9e('0x51')],md5(_0x427946[_0x0a9e('0x51')]));}else{_0x427946[_0x0a9e('0x4e')]='';}return getConnection(_0x4a2438)['then'](function(_0x1d442c){_0x23a7d3=_0x1d442c;return getUser(_0x4a2438,'',_0x23a7d3);})[_0x0a9e('0x25')](function(_0x371533){_0x40fb85=_0x371533;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x40fb85['id']);return getEndUser(_0x4a2438,_0x427946[_0x0a9e('0x65')],_0x427946[_0x0a9e('0x53')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0x361b21){_0x18bf5d=_0x361b21;logger['info'](_0x0a9e('0x5e'),_0x18bf5d['id']);return createTicket(_0x4a2438,_0x40fb85,_0x18bf5d,_0x13b5c0,_0x427946,_0x13b5c0[_0x0a9e('0x5f')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0xf410e5){_0x1104ad=_0xf410e5;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1104ad['id']);})[_0x0a9e('0x28')](function(_0x336dc3){logger[_0x0a9e('0x29')]('['+_0x427946[_0x0a9e('0x66')][_0x0a9e('0x64')]()+']',JSON[_0x0a9e('0x24')](_0x336dc3));});};
\ No newline at end of file
+var _0xa9e0=['variable','variableName','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','Normal','Open','Subjects','POST','format','%s/webservice.php','create','username','sessionName','HelpDesk','stringify','then','result','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','error','[vTiger],\x20%s,\x20%s,\x20%s','createTicket','validateEmail','Getting\x20agent\x20with\x20email','GET','query','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','resolve','email1','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','admin','statusCode','getUser','Searching\x20end\x20user\x20with\x20phone','remoteUri','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!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','getchallenge','login','token','Account\x20%d\x20is\x20not\x20valid','[HTTP]','queue','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','The\x20User\x20ID\x20is:','calleridnum','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','The\x20Enduser\x20ID\x20is:','Fields','split','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridname','lastevent','lodash','request-promise','bluebird','ioredis','../../../../config/environment','../../../../config/logger','vTiger','redis','defaults','localhost','socket.io-emitter','length','forEach','includes','idField','content','toString','type'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x9aada2,_0xd2d349){_0x9aada2=_0x9aada2-0x0;var _0x196dff=_0xa9e0[_0x9aada2];return _0x196dff;};'use strict';var _=require(_0x0a9e('0x0'));var rp=require(_0x0a9e('0x1'));var BPromise=require(_0x0a9e('0x2'));var md5=require('md5');var util=require('util');var Redis=require(_0x0a9e('0x3'));var intUtil=require('./util');var config=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));config[_0x0a9e('0x7')]=_[_0x0a9e('0x8')](config['redis'],{'host':_0x0a9e('0x9'),'port':0x18eb});var io=require(_0x0a9e('0xa'))(new Redis(config[_0x0a9e('0x7')]));function emit(_0x5f41ea,_0x503809,_0xe42b77){io['to'](_0x5f41ea)['emit'](_0x503809,_0xe42b77);}function getCustomFields(_0x52cace,_0x39753a){var _0xf81284={};if(_0x52cace[_0x0a9e('0xb')]>0x0){_[_0x0a9e('0xc')](_0x52cace,function(_0xfeb75b){if(_[_0x0a9e('0xd')](['string','picklist'],_0xfeb75b['type'])&&_0xfeb75b['idField']){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0xfeb75b[_0x0a9e('0xf')][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x12')&&_0xfeb75b[_0x0a9e('0x13')]&&_0xfeb75b['idField']&&_0x39753a[_0xfeb75b[_0x0a9e('0x13')]]){_0xf81284[_0xfeb75b[_0x0a9e('0xe')]]=_0x39753a[_0xfeb75b[_0x0a9e('0x13')]][_0x0a9e('0x10')]();}else if(_0xfeb75b[_0x0a9e('0x11')]===_0x0a9e('0x14')&&_0xfeb75b['Variable']&&_0xfeb75b[_0x0a9e('0x15')]['name']&&_0xfeb75b[_0x0a9e('0xe')]&&_0x39753a[_0xfeb75b['Variable'][_0x0a9e('0x16')][_0x0a9e('0x17')]()]){_0xf81284[_0xfeb75b['idField']]=_0x39753a[_0xfeb75b[_0x0a9e('0x15')]['name'][_0x0a9e('0x17')]()][_0x0a9e('0x10')]();}});}return _0xf81284;}function createTicket(_0x106033,_0x205fd6,_0x31b1ca,_0x2eb11f,_0x530eb7,_0x20559e,_0x1314ae){logger[_0x0a9e('0x18')](_0x0a9e('0x19'));var _0x105080=_['merge']({'parent_id':'','assigned_user_id':_0x205fd6['id'],'ticketpriorities':_0x0a9e('0x1a'),'ticketstatus':_0x0a9e('0x1b'),'ticket_title':intUtil['getString'](_0x2eb11f[_0x0a9e('0x1c')],_0x530eb7,'\x20'),'description':intUtil['getString'](_0x2eb11f['Descriptions'],_0x530eb7,'\x0a'),'contact_id':_0x31b1ca['id']},getCustomFields(_0x20559e,_0x530eb7));var _0x3a02e1={'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x106033['remoteUri']),'form':{'operation':_0x0a9e('0x20'),'username':_0x106033[_0x0a9e('0x21')],'sessionName':_0x1314ae[_0x0a9e('0x22')],'elementType':_0x0a9e('0x23'),'element':JSON[_0x0a9e('0x24')](_0x105080)},'json':!![]};return request(_0x3a02e1)[_0x0a9e('0x25')](function(_0x16b1ca){if(_0x16b1ca['success']){return BPromise['resolve']({'id':_0x16b1ca[_0x0a9e('0x26')]['id']});}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x27'),JSON[_0x0a9e('0x24')](_0x16b1ca['error'])));}})[_0x0a9e('0x28')](function(_0x479bc4){var _0x45a1e7=_0x479bc4['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x2b'),_0x45a1e7,JSON[_0x0a9e('0x24')](_0x479bc4));});}function getUser(_0x140511,_0x1538a4,_0x11c3b6){if(intUtil[_0x0a9e('0x2c')](_0x1538a4)){logger['info'](_0x0a9e('0x2d'),_0x1538a4);return request({'method':_0x0a9e('0x2e'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x140511['remoteUri']),'qs':{'operation':_0x0a9e('0x2f'),'username':_0x140511[_0x0a9e('0x21')],'sessionName':_0x11c3b6[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x30'),_0x1538a4)},'json':!![]})[_0x0a9e('0x25')](function(_0x296f41){if(_0x296f41[_0x0a9e('0x31')]&&_0x296f41[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')]('Agent\x20found!');return BPromise[_0x0a9e('0x32')]({'id':_0x296f41[_0x0a9e('0x26')][0x0]['id'],'email':_0x296f41[_0x0a9e('0x26')][0x0][_0x0a9e('0x33')],'name':_0x296f41[_0x0a9e('0x26')][0x0]['first_name']+'\x20'+_0x296f41[_0x0a9e('0x26')][_0x0a9e('0x34')]});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511[_0x0a9e('0x21')],'name':_0x0a9e('0x37')});}})['catch'](function(_0x44295a){var _0x5e7238=_0x44295a[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),_0x0a9e('0x39'),_0x5e7238,JSON['stringify'](_0x44295a));});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x35'));return BPromise[_0x0a9e('0x32')]({'id':_0x11c3b6[_0x0a9e('0x36')],'email':_0x140511['username'],'name':'admin'})[_0x0a9e('0x28')](function(_0x5640eb){var _0x24936a=_0x5640eb[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getUser',_0x24936a,JSON[_0x0a9e('0x24')](_0x5640eb));});}}function getEndUser(_0x3bfce8,_0x3cae,_0x533942,_0x1dbf74){logger[_0x0a9e('0x18')](_0x0a9e('0x3a'),_0x533942);return request({'method':'GET','uri':util['format'](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'qs':{'operation':'query','username':_0x3bfce8[_0x0a9e('0x21')],'sessionName':_0x1dbf74[_0x0a9e('0x22')],'query':util[_0x0a9e('0x1e')](_0x0a9e('0x3c'),_0x533942,_0x533942,_0x533942,_0x533942,_0x533942)},'json':!![]})['then'](function(_0x5a594b){if(_0x5a594b[_0x0a9e('0x31')]&&_0x5a594b[_0x0a9e('0x26')]['length']){logger[_0x0a9e('0x18')](_0x0a9e('0x3d'));return BPromise[_0x0a9e('0x32')]({'id':_0x5a594b['result'][0x0]['id'],'name':_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3e')]+'\x20'+_0x5a594b[_0x0a9e('0x26')][0x0][_0x0a9e('0x3f')],'phone':_0x533942});}else{logger[_0x0a9e('0x18')](_0x0a9e('0x40'));return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0x3bfce8[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x20'),'sessionName':_0x1dbf74[_0x0a9e('0x22')],'elementType':_0x0a9e('0x41'),'element':JSON[_0x0a9e('0x24')]({'lastname':_0x3cae,'phone':_0x533942,'assigned_user_id':'\x20'})},'json':!![]})[_0x0a9e('0x25')](function(_0x4d04c8){logger['info'](_0x0a9e('0x42'));return BPromise[_0x0a9e('0x32')]({'id':_0x4d04c8[_0x0a9e('0x26')]['id'],'name':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x3f')],'phone':_0x4d04c8[_0x0a9e('0x26')][_0x0a9e('0x43')]});})[_0x0a9e('0x28')](function(_0x432fcc){var _0x25c6e6=_0x432fcc[_0x0a9e('0x38')]||0x1f4;logger[_0x0a9e('0x29')]('[vTiger],\x20%s,\x20%s,\x20%s',_0x0a9e('0x44'),_0x25c6e6,JSON[_0x0a9e('0x24')](_0x432fcc));});}});}function getConnection(_0xdd268f){var _0xfbd5ad=_0xdd268f[_0x0a9e('0x21')];var _0xbe9d19=_0xdd268f[_0x0a9e('0x45')];return request({'method':_0x0a9e('0x2e'),'uri':util['format'](_0x0a9e('0x1f'),_0xdd268f['remoteUri']),'qs':{'operation':_0x0a9e('0x46'),'username':_0xfbd5ad},'json':!![]})[_0x0a9e('0x25')](function(_0x8d6dd1){if(_0x8d6dd1['success']){return request({'method':_0x0a9e('0x1d'),'uri':util[_0x0a9e('0x1e')](_0x0a9e('0x1f'),_0xdd268f[_0x0a9e('0x3b')]),'form':{'operation':_0x0a9e('0x47'),'username':_0xfbd5ad,'accessKey':md5(_0x8d6dd1[_0x0a9e('0x26')][_0x0a9e('0x48')]+_0xbe9d19)},'json':!![]});}})['then'](function(_0x13f44d){if(_0x13f44d[_0x0a9e('0x31')]){return BPromise[_0x0a9e('0x32')](_0x13f44d[_0x0a9e('0x26')]);}else{throw new Error(util[_0x0a9e('0x1e')](_0x0a9e('0x49'),_0xdd268f['id']));}})[_0x0a9e('0x28')](function(_0x19383e){var _0x34febd=_0x19383e['statusCode']||0x1f4;logger[_0x0a9e('0x29')](_0x0a9e('0x2a'),'getConnection',_0x34febd,JSON['stringify'](_0x19383e));});}function request(_0x5ddf84){logger[_0x0a9e('0x18')](_0x0a9e('0x4a'),JSON[_0x0a9e('0x24')](_0x5ddf84));return rp(_0x5ddf84);}exports[_0x0a9e('0x4b')]=function(_0x61bb17,_0x30decb,_0x2e5165,_0x375c18,_0x5d38ae,_0x4b1b9f){var _0x53975a,_0x39d77d,_0x204173,_0x14d602;_0x4b1b9f['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x4b1b9f[_0x0a9e('0x3b')]);if(_0x5d38ae&&_0x5d38ae['monitor_format']){logger['info'](_0x0a9e('0x4d'),'Recording\x20is\x20enabled!');_0x30decb[_0x0a9e('0x4e')]=util['format'](_0x0a9e('0x4f'),_0x4b1b9f[_0x0a9e('0x50')],_0x30decb[_0x0a9e('0x51')],md5(_0x30decb['uniqueid']));}else{_0x30decb[_0x0a9e('0x4e')]='';}return getConnection(_0x4b1b9f)[_0x0a9e('0x25')](function(_0x508b47){_0x14d602=_0x508b47;return getUser(_0x4b1b9f,_0x375c18['email'],_0x14d602);})[_0x0a9e('0x25')](function(_0x3aedd0){_0x53975a=_0x3aedd0;logger['info'](_0x0a9e('0x52'),_0x53975a['id']);return getEndUser(_0x4b1b9f,_0x30decb['calleridname'],_0x30decb[_0x0a9e('0x53')],_0x14d602);})['then'](function(_0xe22ccc){_0x39d77d=_0xe22ccc;logger['info']('The\x20Enduser\x20ID\x20is:',_0x39d77d['id']);return createTicket(_0x4b1b9f,_0x53975a,_0x39d77d,_0x2e5165,_0x30decb,_0x2e5165['Fields'],_0x14d602);})[_0x0a9e('0x25')](function(_0x47de4c){_0x204173=_0x47de4c;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x204173['id']);var _0x232830=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x4b1b9f[_0x0a9e('0x3b')],_['split'](_0x204173['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x4d'),_0x0a9e('0x57'));emit(util[_0x0a9e('0x1e')](_0x0a9e('0x58'),_0x375c18[_0x0a9e('0x16')]),'trigger:browser:url',{'uri':_0x232830});})[_0x0a9e('0x28')](function(_0x26bc80){logger['error'](_0x0a9e('0x4d'),JSON['stringify'](_0x26bc80));});};exports[_0x0a9e('0x59')]=function(_0x5ba1f9,_0x4b3c1a,_0x5674ee,_0x273cb5,_0x49d231,_0x2244d6,_0x1fc70e){var _0x261adb,_0x7be420,_0x1cca9f,_0x26d7db;_0x2244d6['remoteUri']=intUtil[_0x0a9e('0x4c')](_0x2244d6['remoteUri']);_0x2244d6[_0x0a9e('0x50')]=intUtil[_0x0a9e('0x4c')](_0x2244d6[_0x0a9e('0x50')]);if(_0x1fc70e&&_0x1fc70e['recordingFormat']&&_0x1fc70e[_0x0a9e('0x5a')]!==_0x0a9e('0x5b')){logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),'Recording\x20is\x20enabled!');_0x4b3c1a[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2244d6[_0x0a9e('0x50')],_0x4b3c1a[_0x0a9e('0x51')],md5(_0x4b3c1a[_0x0a9e('0x51')]));}return getConnection(_0x2244d6)[_0x0a9e('0x25')](function(_0x401837){_0x26d7db=_0x401837;return getUser(_0x2244d6,_0x273cb5['email'],_0x26d7db);})[_0x0a9e('0x25')](function(_0x2937e0){_0x261adb=_0x2937e0;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x261adb['id']);return getEndUser(_0x2244d6,_0x4b3c1a[_0x0a9e('0x5d')],_0x4b3c1a['destcalleridnum'],_0x26d7db);})['then'](function(_0x242745){_0x7be420=_0x242745;logger[_0x0a9e('0x18')](_0x0a9e('0x5e'),_0x7be420['id']);return createTicket(_0x2244d6,_0x261adb,_0x7be420,_0x5674ee,_0x4b3c1a,_0x5674ee[_0x0a9e('0x5f')],_0x26d7db);})[_0x0a9e('0x25')](function(_0xc8c264){_0x1cca9f=_0xc8c264;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1cca9f['id']);var _0x2e89b7=util[_0x0a9e('0x1e')](_0x0a9e('0x56'),_0x2244d6[_0x0a9e('0x3b')],_[_0x0a9e('0x60')](_0x1cca9f['id'],'x')[0x1]);logger[_0x0a9e('0x18')](_0x0a9e('0x5c'),_0x0a9e('0x57'));emit(util['format'](_0x0a9e('0x58'),_0x273cb5[_0x0a9e('0x16')]),_0x0a9e('0x61'),{'uri':_0x2e89b7});})['catch'](function(_0x1148a1){logger[_0x0a9e('0x29')]('[OUTBOUND]',JSON[_0x0a9e('0x24')](_0x1148a1));});};exports[_0x0a9e('0x62')]=function(_0x3ef315,_0x427946,_0x13b5c0,_0x4a43a8,_0x50cdce,_0x4a2438){var _0x40fb85,_0x18bf5d,_0x1104ad,_0x23a7d3;_0x4a2438[_0x0a9e('0x3b')]=intUtil[_0x0a9e('0x4c')](_0x4a2438[_0x0a9e('0x3b')]);_0x4a2438[_0x0a9e('0x50')]=intUtil['stripTrailingSlash'](_0x4a2438[_0x0a9e('0x50')]);if(_0x50cdce&&_0x50cdce[_0x0a9e('0x63')]){logger[_0x0a9e('0x18')]('['+_0x427946['lastevent'][_0x0a9e('0x64')]()+']','Recording\x20is\x20enabled!');_0x427946[_0x0a9e('0x4e')]=util[_0x0a9e('0x1e')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4a2438[_0x0a9e('0x50')],_0x427946[_0x0a9e('0x51')],md5(_0x427946[_0x0a9e('0x51')]));}else{_0x427946[_0x0a9e('0x4e')]='';}return getConnection(_0x4a2438)['then'](function(_0x1d442c){_0x23a7d3=_0x1d442c;return getUser(_0x4a2438,'',_0x23a7d3);})[_0x0a9e('0x25')](function(_0x371533){_0x40fb85=_0x371533;logger[_0x0a9e('0x18')]('The\x20User\x20ID\x20is:',_0x40fb85['id']);return getEndUser(_0x4a2438,_0x427946[_0x0a9e('0x65')],_0x427946[_0x0a9e('0x53')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0x361b21){_0x18bf5d=_0x361b21;logger['info'](_0x0a9e('0x5e'),_0x18bf5d['id']);return createTicket(_0x4a2438,_0x40fb85,_0x18bf5d,_0x13b5c0,_0x427946,_0x13b5c0[_0x0a9e('0x5f')],_0x23a7d3);})[_0x0a9e('0x25')](function(_0xf410e5){_0x1104ad=_0xf410e5;logger[_0x0a9e('0x18')](_0x0a9e('0x54'));logger[_0x0a9e('0x18')](_0x0a9e('0x55'),_0x1104ad['id']);})[_0x0a9e('0x28')](function(_0x336dc3){logger[_0x0a9e('0x29')]('['+_0x427946[_0x0a9e('0x66')][_0x0a9e('0x64')]()+']',JSON[_0x0a9e('0x24')](_0x336dc3));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xce71=['Ticket\x20created!','ticket','validateEmail','Getting\x20agent\x20with\x20email','format','remoteUri','type:user\x20role:agent\x20email:%s','count','Agent\x20found!','find','agent','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me.json','Admin\x20account\x20selected.','user','Searching\x20enduser\x20with\x20phone','%s/search.json','type:user\x20role:end-user\x20phone:%s','results','length','filter','end-user','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','POST','authType','%s:%s','username','token','%s/token:%s','Basic\x20%s','toString','base64','debug','[HTTP]','stringify','GET','map','forEach','string','picklist','type','nameField','toLowerCase','content','includes','idField','custom_fields','push','variable','variableName','customField','customVariable','Variable','name','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','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','replace','error','Zendesk\x20account\x20type\x20not\x20recognized','catch','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','integrationTab','%s/agent/tickets/%s','/api/v2','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','inspect','unmanaged','lastevent','toUpperCase','\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','zendesk','redis','defaults','localhost','emit','application/json','Creating\x20new\x20ticket...','%s/tickets.json','Tags','getString','Subjects','Descriptions','Fields','then','info'];(function(_0x198f3f,_0x541dc6){var _0x2dbd86=function(_0x43abc9){while(--_0x43abc9){_0x198f3f['push'](_0x198f3f['shift']());}};_0x2dbd86(++_0x541dc6);}(_0xce71,0x146));var _0x1ce7=function(_0xc1ab6d,_0x5a67b2){_0xc1ab6d=_0xc1ab6d-0x0;var _0x1e682a=_0xce71[_0xc1ab6d];return _0x1e682a;};'use strict';var _=require(_0x1ce7('0x0'));var rp=require(_0x1ce7('0x1'));var md5=require(_0x1ce7('0x2'));var util=require('util');var Redis=require(_0x1ce7('0x3'));var intUtil=require(_0x1ce7('0x4'));var config=require(_0x1ce7('0x5'));var logger=require(_0x1ce7('0x6'))(_0x1ce7('0x7'));config[_0x1ce7('0x8')]=_[_0x1ce7('0x9')](config[_0x1ce7('0x8')],{'host':_0x1ce7('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1ce7('0x8')]));function emit(_0x45d655,_0x27584,_0x4f9bda){io['to'](_0x45d655)[_0x1ce7('0xb')](_0x27584,_0x4f9bda);}var headers={'Content-Type':_0x1ce7('0xc'),'Accept':_0x1ce7('0xc')};function getTicket(_0x513496,_0x5bc18a,_0x22a0c9,_0x4b5744,_0x5a4291){logger['info'](_0x1ce7('0xd'));return request({'uri':util['format'](_0x1ce7('0xe'),_0x513496['remoteUri']),'method':'POST','body':{'ticket':_['merge']({'requester_id':_0x22a0c9['id'],'submitter_id':_0x5bc18a?_0x5bc18a['id']:undefined,'assignee_id':_0x5bc18a?_0x5bc18a['id']:undefined,'tags':getTags(_0x4b5744[_0x1ce7('0xf')],'name'),'subject':intUtil[_0x1ce7('0x10')](_0x4b5744[_0x1ce7('0x11')],_0x5a4291,'\x20'),'description':intUtil[_0x1ce7('0x10')](_0x4b5744[_0x1ce7('0x12')],_0x5a4291,'\x0a'),'comment':{'public':![],'body':intUtil[_0x1ce7('0x10')](_0x4b5744[_0x1ce7('0x12')],_0x5a4291,'\x0a')}},getCustomFields(_0x4b5744[_0x1ce7('0x13')],_0x5a4291))}})[_0x1ce7('0x14')](function(_0x2cc912){logger[_0x1ce7('0x15')](_0x1ce7('0x16'));return _0x2cc912[_0x1ce7('0x17')];});}function getUser(_0x36a736,_0x259993){if(intUtil[_0x1ce7('0x18')](_0x259993)){logger[_0x1ce7('0x15')](_0x1ce7('0x19'),_0x259993);return request({'uri':util[_0x1ce7('0x1a')]('%s/search.json',_0x36a736[_0x1ce7('0x1b')]),'qs':{'query':util['format'](_0x1ce7('0x1c'),_0x259993)}})['then'](function(_0x24ac28){if(_0x24ac28[_0x1ce7('0x1d')]){logger[_0x1ce7('0x15')](_0x1ce7('0x1e'));return _[_0x1ce7('0x1f')](_0x24ac28['results'],{'email':_0x259993,'role':_0x1ce7('0x20')});}else{logger[_0x1ce7('0x15')](_0x1ce7('0x21'));return request({'uri':util[_0x1ce7('0x1a')](_0x1ce7('0x22'),_0x36a736[_0x1ce7('0x1b')])})['then'](function(_0x5715c4){logger[_0x1ce7('0x15')](_0x1ce7('0x23'));return _0x5715c4[_0x1ce7('0x24')];});}});}else{logger[_0x1ce7('0x15')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0x1ce7('0x1a')]('%s/users/me.json',_0x36a736[_0x1ce7('0x1b')])})[_0x1ce7('0x14')](function(_0x2584c9){logger[_0x1ce7('0x15')](_0x1ce7('0x23'));return _0x2584c9['user'];});}}function getEndUser(_0x2a68e8,_0x16cdc7,_0x3bc480){logger['info'](_0x1ce7('0x25'),_0x3bc480);return request({'uri':util['format'](_0x1ce7('0x26'),_0x2a68e8['remoteUri']),'qs':{'query':util['format'](_0x1ce7('0x27'),_0x3bc480)}})[_0x1ce7('0x14')](function(_0x5aff6e){var _0x415d5d;if(_0x5aff6e[_0x1ce7('0x28')][_0x1ce7('0x29')]){_0x5aff6e[_0x1ce7('0x28')]=_[_0x1ce7('0x2a')](_0x5aff6e['results'],{'suspended':![],'role':_0x1ce7('0x2b')});if(_0x5aff6e['results'][_0x1ce7('0x29')]){_0x415d5d=_['first'](_0x5aff6e[_0x1ce7('0x28')]);}}if(_0x415d5d){logger[_0x1ce7('0x15')]('Enduser\x20found!');return _0x415d5d;}else{logger[_0x1ce7('0x15')](_0x1ce7('0x2c'));return request({'uri':util[_0x1ce7('0x1a')](_0x1ce7('0x2d'),_0x2a68e8[_0x1ce7('0x1b')]),'method':_0x1ce7('0x2e'),'body':{'user':{'role':_0x1ce7('0x2b'),'name':util['format']('Caller\x20-\x20%s',_0x16cdc7||_0x3bc480),'phone':_0x3bc480}}})['then'](function(_0xf0b955){logger[_0x1ce7('0x15')]('Enduser\x20created.');return _0xf0b955[_0x1ce7('0x24')];});}});}function getAuth(_0x1e9585){var _0x47793a;if(_0x1e9585[_0x1ce7('0x2f')]==='password'){_0x47793a=util[_0x1ce7('0x1a')](_0x1ce7('0x30'),_0x1e9585[_0x1ce7('0x31')],_0x1e9585['password']);}else if(_0x1e9585[_0x1ce7('0x2f')]===_0x1ce7('0x32')){_0x47793a=util[_0x1ce7('0x1a')](_0x1ce7('0x33'),_0x1e9585[_0x1ce7('0x31')],_0x1e9585[_0x1ce7('0x32')]);}return util[_0x1ce7('0x1a')](_0x1ce7('0x34'),new Buffer(_0x47793a)[_0x1ce7('0x35')](_0x1ce7('0x36')));}function request(_0x153aca){logger[_0x1ce7('0x37')](_0x1ce7('0x38'),JSON[_0x1ce7('0x39')](_0x153aca));return rp(_[_0x1ce7('0x9')](_0x153aca,{'method':_0x1ce7('0x3a'),'headers':headers,'json':!![]}));}function getTags(_0x233f2b,_0x95fb22){var _0x4c3dba=[];if(_0x233f2b&&_0x233f2b[_0x1ce7('0x29')]>0x0){_0x4c3dba=_[_0x1ce7('0x3b')](_0x233f2b,_0x95fb22);}return _0x4c3dba;}function getCustomFields(_0x93e916,_0x29bcf5){var _0x56126=[];var _0x7cfe17={'custom_fields':[]};if(_0x93e916['length']>0x0){_[_0x1ce7('0x3c')](_0x93e916,function(_0x30ddd1){if(_['includes']([_0x1ce7('0x3d'),_0x1ce7('0x3e')],_0x30ddd1[_0x1ce7('0x3f')])&&_0x30ddd1[_0x1ce7('0x40')]&&!_0x30ddd1['customField']){_0x7cfe17[_0x30ddd1[_0x1ce7('0x40')][_0x1ce7('0x41')]()]=_0x30ddd1[_0x1ce7('0x42')]['toString']();}else if(_[_0x1ce7('0x43')](['string',_0x1ce7('0x3e')],_0x30ddd1['type'])&&_0x30ddd1[_0x1ce7('0x44')]&&_0x30ddd1['customField']){_0x7cfe17[_0x1ce7('0x45')][_0x1ce7('0x46')]({'id':_0x30ddd1[_0x1ce7('0x44')],'value':_0x30ddd1[_0x1ce7('0x42')][_0x1ce7('0x35')]()});}else if(_0x30ddd1[_0x1ce7('0x3f')]===_0x1ce7('0x47')&&_0x30ddd1[_0x1ce7('0x48')]&&_0x30ddd1['idField']&&_0x30ddd1[_0x1ce7('0x49')]){_0x29bcf5[_0x30ddd1[_0x1ce7('0x48')]]&&_0x7cfe17[_0x1ce7('0x45')][_0x1ce7('0x46')]({'id':_0x30ddd1[_0x1ce7('0x44')],'value':_0x29bcf5[_0x30ddd1[_0x1ce7('0x48')]][_0x1ce7('0x35')]()});}else if(_0x30ddd1[_0x1ce7('0x3f')]===_0x1ce7('0x4a')&&_0x30ddd1[_0x1ce7('0x4b')]&&_0x30ddd1[_0x1ce7('0x4b')][_0x1ce7('0x4c')]&&_0x30ddd1[_0x1ce7('0x44')]&&_0x30ddd1['customField']){_0x29bcf5[_0x30ddd1[_0x1ce7('0x4b')][_0x1ce7('0x4c')][_0x1ce7('0x41')]()]&&_0x7cfe17[_0x1ce7('0x45')][_0x1ce7('0x46')]({'id':_0x30ddd1[_0x1ce7('0x44')],'value':_0x29bcf5[_0x30ddd1[_0x1ce7('0x4b')][_0x1ce7('0x4c')]['toLowerCase']()][_0x1ce7('0x35')]()});}});}return _0x7cfe17;}exports['queue']=function(_0x511e7b,_0x282cf6,_0x2cef7c,_0x1c82a0,_0x26f22a,_0x559522){var _0x16084f,_0x92105d;_0x559522[_0x1ce7('0x1b')]=intUtil['stripTrailingSlash'](_0x559522[_0x1ce7('0x1b')]);_0x559522[_0x1ce7('0x4d')]=intUtil[_0x1ce7('0x4e')](_0x559522[_0x1ce7('0x4d')]);if(_0x26f22a&&_0x26f22a[_0x1ce7('0x4f')]){logger[_0x1ce7('0x15')](_0x1ce7('0x50'),'Recording\x20is\x20enabled!');_0x282cf6[_0x1ce7('0x51')]=util[_0x1ce7('0x1a')](_0x1ce7('0x52'),_0x559522[_0x1ce7('0x4d')],_0x282cf6[_0x1ce7('0x53')],md5(_0x282cf6[_0x1ce7('0x53')]));}else{_0x282cf6[_0x1ce7('0x51')]='';}headers[_0x1ce7('0x54')]=getAuth(_0x559522);return getUser(_0x559522,_0x1c82a0[_0x1ce7('0x55')])[_0x1ce7('0x14')](function(_0x414550){_0x16084f=_0x414550;logger[_0x1ce7('0x15')](_0x1ce7('0x56'),_0x16084f['id']);return getEndUser(_0x559522,_0x282cf6[_0x1ce7('0x57')],_0x282cf6[_0x1ce7('0x58')]);})['then'](function(_0x3a341c){_0x92105d=_0x3a341c;logger['info'](_0x1ce7('0x59'),_0x92105d['id']);return getTicket(_0x559522,_0x16084f,_0x92105d,_0x2cef7c,_0x282cf6);})['then'](function(_0x3dc5ef){if(_0x3dc5ef){logger[_0x1ce7('0x15')](_0x1ce7('0x5a'),_0x3dc5ef['id']);switch(_0x559522[_0x1ce7('0x3f')]){case'integrationTab':logger[_0x1ce7('0x15')](_0x1ce7('0x50'),_0x1ce7('0x5b'));return request({'uri':util[_0x1ce7('0x1a')](_0x1ce7('0x5c'),_0x559522['remoteUri'],_0x16084f['id'],_0x3dc5ef['id']),'method':_0x1ce7('0x2e')});case _0x1ce7('0x5d'):logger[_0x1ce7('0x15')]('[QUEUE]',_0x1ce7('0x5e'));emit(util['format'](_0x1ce7('0x5f'),_0x1c82a0[_0x1ce7('0x4c')]),_0x1ce7('0x60'),{'uri':util[_0x1ce7('0x1a')]('%s/agent/tickets/%s',_0x559522[_0x1ce7('0x1b')][_0x1ce7('0x61')]('/api/v2',''),_0x3dc5ef['id'])});break;default:logger[_0x1ce7('0x62')](_0x1ce7('0x50'),_0x1ce7('0x63'));}}})[_0x1ce7('0x64')](function(_0x18e45a){logger['error']('[QUEUE]\x20Error\x20running\x20Zendesk\x20integration',util['inspect'](_0x18e45a,{'showHidden':!![],'depth':null}));});};exports['outbound']=function(_0xe890ec,_0xcca955,_0x359d2e,_0x5e2d92,_0xa0a8cc,_0x4bd720,_0x35fd3b){var _0x580b64,_0x1be5d3;_0x4bd720[_0x1ce7('0x1b')]=intUtil[_0x1ce7('0x4e')](_0x4bd720[_0x1ce7('0x1b')]);_0x4bd720[_0x1ce7('0x4d')]=intUtil[_0x1ce7('0x4e')](_0x4bd720[_0x1ce7('0x4d')]);if(_0x35fd3b&&_0x35fd3b[_0x1ce7('0x65')]&&_0x35fd3b[_0x1ce7('0x65')]!==_0x1ce7('0x66')){logger[_0x1ce7('0x15')](_0x1ce7('0x67'),_0x1ce7('0x68'));_0xcca955[_0x1ce7('0x51')]=util[_0x1ce7('0x1a')](_0x1ce7('0x52'),_0x4bd720['serverUrl'],_0xcca955[_0x1ce7('0x53')],md5(_0xcca955['uniqueid']));}headers[_0x1ce7('0x54')]=getAuth(_0x4bd720);return getUser(_0x4bd720,_0x5e2d92[_0x1ce7('0x55')])[_0x1ce7('0x14')](function(_0x3ca4d8){_0x580b64=_0x3ca4d8;logger[_0x1ce7('0x15')](_0x1ce7('0x56'),_0x580b64['id']);return getEndUser(_0x4bd720,_0xcca955[_0x1ce7('0x69')],_0xcca955[_0x1ce7('0x6a')]);})[_0x1ce7('0x14')](function(_0x3e3c15){_0x1be5d3=_0x3e3c15;logger[_0x1ce7('0x15')](_0x1ce7('0x59'),_0x1be5d3['id']);return getTicket(_0x4bd720,_0x580b64,_0x1be5d3,_0x359d2e,_0xcca955);})['then'](function(_0x1c39ec){if(_0x1c39ec){logger[_0x1ce7('0x15')](_0x1ce7('0x5a'),_0x1c39ec['id']);switch(_0x4bd720[_0x1ce7('0x3f')]){case _0x1ce7('0x6b'):logger[_0x1ce7('0x15')](_0x1ce7('0x67'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util[_0x1ce7('0x1a')]('%s/channels/voice/agents/%d/tickets/%d/display.json',_0x4bd720[_0x1ce7('0x1b')],_0x580b64['id'],_0x1c39ec['id']),'method':_0x1ce7('0x2e')});case _0x1ce7('0x5d'):logger[_0x1ce7('0x15')](_0x1ce7('0x67'),_0x1ce7('0x5e'));emit(util[_0x1ce7('0x1a')](_0x1ce7('0x5f'),_0x5e2d92[_0x1ce7('0x4c')]),_0x1ce7('0x60'),{'uri':util['format'](_0x1ce7('0x6c'),_0x4bd720[_0x1ce7('0x1b')][_0x1ce7('0x61')](_0x1ce7('0x6d'),''),_0x1c39ec['id'])});break;default:logger[_0x1ce7('0x62')](_0x1ce7('0x67'),'Zendesk\x20account\x20type\x20not\x20recognized');}}})[_0x1ce7('0x64')](function(_0x1f81fa){logger[_0x1ce7('0x62')](_0x1ce7('0x6e'),util[_0x1ce7('0x6f')](_0x1f81fa,{'showHidden':!![],'depth':null}));});};exports[_0x1ce7('0x70')]=function(_0x520b07,_0xb6d61c,_0x409462,_0x554501,_0x1523e5,_0x410cbd){var _0x5cbc3a,_0xf11280;_0x410cbd['remoteUri']=intUtil[_0x1ce7('0x4e')](_0x410cbd[_0x1ce7('0x1b')]);_0x410cbd[_0x1ce7('0x4d')]=intUtil[_0x1ce7('0x4e')](_0x410cbd[_0x1ce7('0x4d')]);if(_0x1523e5&&_0x1523e5[_0x1ce7('0x4f')]){logger[_0x1ce7('0x15')]('['+_0xb6d61c[_0x1ce7('0x71')]['toUpperCase']()+']',_0x1ce7('0x68'));_0xb6d61c[_0x1ce7('0x51')]=util[_0x1ce7('0x1a')](_0x1ce7('0x52'),_0x410cbd[_0x1ce7('0x4d')],_0xb6d61c[_0x1ce7('0x53')],md5(_0xb6d61c[_0x1ce7('0x53')]));}else{_0xb6d61c[_0x1ce7('0x51')]='';}headers['Authorization']=getAuth(_0x410cbd);return getUser(_0x410cbd)[_0x1ce7('0x14')](function(_0x161e54){_0x5cbc3a=_0x161e54;logger[_0x1ce7('0x15')](_0x1ce7('0x56'),_0x5cbc3a['id']);return getEndUser(_0x410cbd,_0xb6d61c['calleridname'],_0xb6d61c[_0x1ce7('0x58')]);})['then'](function(_0x211521){_0xf11280=_0x211521;logger[_0x1ce7('0x15')](_0x1ce7('0x59'),_0xf11280['id']);return getTicket(_0x410cbd,_0x5cbc3a,_0xf11280,_0x409462,_0xb6d61c);})[_0x1ce7('0x14')](function(_0x302d1d){if(_0x302d1d){logger[_0x1ce7('0x15')](_0x1ce7('0x5a'),_0x302d1d['id']);}})[_0x1ce7('0x64')](function(_0x4e9188){logger['error']('['+_0xb6d61c[_0x1ce7('0x71')][_0x1ce7('0x72')]()+']'+_0x1ce7('0x73'),util[_0x1ce7('0x6f')](_0x4e9188,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xd632=['ioredis','../../../../config/logger','redis','defaults','socket.io-emitter','emit','application/json','info','Creating\x20new\x20ticket...','format','remoteUri','POST','merge','name','Subjects','getString','Descriptions','Fields','then','Ticket\x20created!','ticket','Getting\x20agent\x20with\x20email','%s/search.json','type:user\x20role:agent\x20email:%s','count','Agent\x20found!','find','results','agent','Admin\x20account\x20selected.','user','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','type:user\x20role:end-user\x20phone:%s','length','filter','end-user','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','Enduser\x20created.','authType','password','username','token','Basic\x20%s','toString','base64','debug','stringify','GET','forEach','includes','string','picklist','type','nameField','customField','toLowerCase','content','idField','custom_fields','variableName','customVariable','Variable','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','newTab','user:%s','trigger:browser:url','replace','/api/v2','error','Zendesk\x20account\x20type\x20not\x20recognized','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','inspect','recordingFormat','none','Recording\x20is\x20enabled!','email','destcalleridname','destcalleridnum','[OUTBOUND]','%s/agent/tickets/%s','catch','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','unmanaged','calleridnum','lastevent','toUpperCase','request-promise','md5','util'];(function(_0x2dc96f,_0x459058){var _0xd012da=function(_0x38d032){while(--_0x38d032){_0x2dc96f['push'](_0x2dc96f['shift']());}};_0xd012da(++_0x459058);}(_0xd632,0x1a5));var _0x2d63=function(_0x1fb94f,_0x2812e7){_0x1fb94f=_0x1fb94f-0x0;var _0x2a1bd0=_0xd632[_0x1fb94f];return _0x2a1bd0;};'use strict';var _=require('lodash');var rp=require(_0x2d63('0x0'));var md5=require(_0x2d63('0x1'));var util=require(_0x2d63('0x2'));var Redis=require(_0x2d63('0x3'));var intUtil=require('./util');var config=require('../../../../config/environment');var logger=require(_0x2d63('0x4'))('zendesk');config[_0x2d63('0x5')]=_[_0x2d63('0x6')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x2d63('0x7'))(new Redis(config['redis']));function emit(_0xc01a4f,_0x57bba2,_0x545352){io['to'](_0xc01a4f)[_0x2d63('0x8')](_0x57bba2,_0x545352);}var headers={'Content-Type':'application/json','Accept':_0x2d63('0x9')};function getTicket(_0x486217,_0x2df748,_0x3207a0,_0x24d430,_0xf33f06){logger[_0x2d63('0xa')](_0x2d63('0xb'));return request({'uri':util[_0x2d63('0xc')]('%s/tickets.json',_0x486217[_0x2d63('0xd')]),'method':_0x2d63('0xe'),'body':{'ticket':_[_0x2d63('0xf')]({'requester_id':_0x3207a0['id'],'submitter_id':_0x2df748?_0x2df748['id']:undefined,'assignee_id':_0x2df748?_0x2df748['id']:undefined,'tags':getTags(_0x24d430['Tags'],_0x2d63('0x10')),'subject':intUtil['getString'](_0x24d430[_0x2d63('0x11')],_0xf33f06,'\x20'),'description':intUtil[_0x2d63('0x12')](_0x24d430['Descriptions'],_0xf33f06,'\x0a'),'comment':{'public':![],'body':intUtil[_0x2d63('0x12')](_0x24d430[_0x2d63('0x13')],_0xf33f06,'\x0a')}},getCustomFields(_0x24d430[_0x2d63('0x14')],_0xf33f06))}})[_0x2d63('0x15')](function(_0x28ffa4){logger[_0x2d63('0xa')](_0x2d63('0x16'));return _0x28ffa4[_0x2d63('0x17')];});}function getUser(_0x329a59,_0x508808){if(intUtil['validateEmail'](_0x508808)){logger[_0x2d63('0xa')](_0x2d63('0x18'),_0x508808);return request({'uri':util[_0x2d63('0xc')](_0x2d63('0x19'),_0x329a59[_0x2d63('0xd')]),'qs':{'query':util[_0x2d63('0xc')](_0x2d63('0x1a'),_0x508808)}})['then'](function(_0x322142){if(_0x322142[_0x2d63('0x1b')]){logger[_0x2d63('0xa')](_0x2d63('0x1c'));return _[_0x2d63('0x1d')](_0x322142[_0x2d63('0x1e')],{'email':_0x508808,'role':_0x2d63('0x1f')});}else{logger[_0x2d63('0xa')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util['format']('%s/users/me.json',_0x329a59[_0x2d63('0xd')])})[_0x2d63('0x15')](function(_0x46a5df){logger[_0x2d63('0xa')](_0x2d63('0x20'));return _0x46a5df[_0x2d63('0x21')];});}});}else{logger['info'](_0x2d63('0x22'));return request({'uri':util['format']('%s/users/me.json',_0x329a59[_0x2d63('0xd')])})[_0x2d63('0x15')](function(_0x4c4b80){logger['info'](_0x2d63('0x20'));return _0x4c4b80['user'];});}}function getEndUser(_0x1ca1c4,_0x48e5c8,_0x90037e){logger[_0x2d63('0xa')](_0x2d63('0x23'),_0x90037e);return request({'uri':util[_0x2d63('0xc')](_0x2d63('0x19'),_0x1ca1c4['remoteUri']),'qs':{'query':util[_0x2d63('0xc')](_0x2d63('0x24'),_0x90037e)}})[_0x2d63('0x15')](function(_0x702b08){var _0xb6610f;if(_0x702b08[_0x2d63('0x1e')][_0x2d63('0x25')]){_0x702b08[_0x2d63('0x1e')]=_[_0x2d63('0x26')](_0x702b08[_0x2d63('0x1e')],{'suspended':![],'role':_0x2d63('0x27')});if(_0x702b08[_0x2d63('0x1e')]['length']){_0xb6610f=_['first'](_0x702b08[_0x2d63('0x1e')]);}}if(_0xb6610f){logger[_0x2d63('0xa')](_0x2d63('0x28'));return _0xb6610f;}else{logger[_0x2d63('0xa')](_0x2d63('0x29'));return request({'uri':util[_0x2d63('0xc')](_0x2d63('0x2a'),_0x1ca1c4[_0x2d63('0xd')]),'method':_0x2d63('0xe'),'body':{'user':{'role':'end-user','name':util[_0x2d63('0xc')]('Caller\x20-\x20%s',_0x48e5c8||_0x90037e),'phone':_0x90037e}}})[_0x2d63('0x15')](function(_0x49c99a){logger[_0x2d63('0xa')](_0x2d63('0x2b'));return _0x49c99a[_0x2d63('0x21')];});}});}function getAuth(_0x135a50){var _0xe5ecc3;if(_0x135a50[_0x2d63('0x2c')]===_0x2d63('0x2d')){_0xe5ecc3=util[_0x2d63('0xc')]('%s:%s',_0x135a50['username'],_0x135a50['password']);}else if(_0x135a50[_0x2d63('0x2c')]==='token'){_0xe5ecc3=util[_0x2d63('0xc')]('%s/token:%s',_0x135a50[_0x2d63('0x2e')],_0x135a50[_0x2d63('0x2f')]);}return util['format'](_0x2d63('0x30'),new Buffer(_0xe5ecc3)[_0x2d63('0x31')](_0x2d63('0x32')));}function request(_0x35c080){logger[_0x2d63('0x33')]('[HTTP]',JSON[_0x2d63('0x34')](_0x35c080));return rp(_[_0x2d63('0x6')](_0x35c080,{'method':_0x2d63('0x35'),'headers':headers,'json':!![]}));}function getTags(_0x4375e5,_0x12f84c){var _0x171a37=[];if(_0x4375e5&&_0x4375e5['length']>0x0){_0x171a37=_['map'](_0x4375e5,_0x12f84c);}return _0x171a37;}function getCustomFields(_0x254b78,_0xdd71b){var _0x2f1e33=[];var _0x1679bb={'custom_fields':[]};if(_0x254b78['length']>0x0){_[_0x2d63('0x36')](_0x254b78,function(_0x3860d8){if(_[_0x2d63('0x37')]([_0x2d63('0x38'),_0x2d63('0x39')],_0x3860d8[_0x2d63('0x3a')])&&_0x3860d8[_0x2d63('0x3b')]&&!_0x3860d8[_0x2d63('0x3c')]){_0x1679bb[_0x3860d8[_0x2d63('0x3b')][_0x2d63('0x3d')]()]=_0x3860d8[_0x2d63('0x3e')][_0x2d63('0x31')]();}else if(_[_0x2d63('0x37')]([_0x2d63('0x38'),'picklist'],_0x3860d8['type'])&&_0x3860d8[_0x2d63('0x3f')]&&_0x3860d8[_0x2d63('0x3c')]){_0x1679bb[_0x2d63('0x40')]['push']({'id':_0x3860d8['idField'],'value':_0x3860d8['content'][_0x2d63('0x31')]()});}else if(_0x3860d8[_0x2d63('0x3a')]==='variable'&&_0x3860d8[_0x2d63('0x41')]&&_0x3860d8[_0x2d63('0x3f')]&&_0x3860d8[_0x2d63('0x3c')]){_0xdd71b[_0x3860d8['variableName']]&&_0x1679bb[_0x2d63('0x40')]['push']({'id':_0x3860d8['idField'],'value':_0xdd71b[_0x3860d8[_0x2d63('0x41')]][_0x2d63('0x31')]()});}else if(_0x3860d8['type']===_0x2d63('0x42')&&_0x3860d8[_0x2d63('0x43')]&&_0x3860d8[_0x2d63('0x43')][_0x2d63('0x10')]&&_0x3860d8[_0x2d63('0x3f')]&&_0x3860d8[_0x2d63('0x3c')]){_0xdd71b[_0x3860d8[_0x2d63('0x43')][_0x2d63('0x10')][_0x2d63('0x3d')]()]&&_0x1679bb[_0x2d63('0x40')]['push']({'id':_0x3860d8[_0x2d63('0x3f')],'value':_0xdd71b[_0x3860d8['Variable'][_0x2d63('0x10')]['toLowerCase']()]['toString']()});}});}return _0x1679bb;}exports['queue']=function(_0x21d210,_0x3e09ff,_0x140369,_0x76742e,_0x20b620,_0x3c2dc8){var _0x31bcca,_0x4f27f3;_0x3c2dc8[_0x2d63('0xd')]=intUtil[_0x2d63('0x44')](_0x3c2dc8[_0x2d63('0xd')]);_0x3c2dc8[_0x2d63('0x45')]=intUtil[_0x2d63('0x44')](_0x3c2dc8[_0x2d63('0x45')]);if(_0x20b620&&_0x20b620[_0x2d63('0x46')]){logger[_0x2d63('0xa')](_0x2d63('0x47'),'Recording\x20is\x20enabled!');_0x3e09ff[_0x2d63('0x48')]=util[_0x2d63('0xc')](_0x2d63('0x49'),_0x3c2dc8[_0x2d63('0x45')],_0x3e09ff[_0x2d63('0x4a')],md5(_0x3e09ff['uniqueid']));}else{_0x3e09ff['recordingURL']='';}headers[_0x2d63('0x4b')]=getAuth(_0x3c2dc8);return getUser(_0x3c2dc8,_0x76742e['email'])[_0x2d63('0x15')](function(_0x4f82f2){_0x31bcca=_0x4f82f2;logger[_0x2d63('0xa')](_0x2d63('0x4c'),_0x31bcca['id']);return getEndUser(_0x3c2dc8,_0x3e09ff[_0x2d63('0x4d')],_0x3e09ff['calleridnum']);})[_0x2d63('0x15')](function(_0x4bc041){_0x4f27f3=_0x4bc041;logger['info'](_0x2d63('0x4e'),_0x4f27f3['id']);return getTicket(_0x3c2dc8,_0x31bcca,_0x4f27f3,_0x140369,_0x3e09ff);})['then'](function(_0x1a5ab6){if(_0x1a5ab6){logger[_0x2d63('0xa')](_0x2d63('0x4f'),_0x1a5ab6['id']);switch(_0x3c2dc8[_0x2d63('0x3a')]){case _0x2d63('0x50'):logger[_0x2d63('0xa')](_0x2d63('0x47'),_0x2d63('0x51'));return request({'uri':util[_0x2d63('0xc')](_0x2d63('0x52'),_0x3c2dc8['remoteUri'],_0x31bcca['id'],_0x1a5ab6['id']),'method':_0x2d63('0xe')});case _0x2d63('0x53'):logger[_0x2d63('0xa')]('[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0x2d63('0x54'),_0x76742e[_0x2d63('0x10')]),_0x2d63('0x55'),{'uri':util[_0x2d63('0xc')]('%s/agent/tickets/%s',_0x3c2dc8[_0x2d63('0xd')][_0x2d63('0x56')](_0x2d63('0x57'),''),_0x1a5ab6['id'])});break;default:logger[_0x2d63('0x58')]('[QUEUE]',_0x2d63('0x59'));}}})['catch'](function(_0x32be5a){logger[_0x2d63('0x58')](_0x2d63('0x5a'),util[_0x2d63('0x5b')](_0x32be5a,{'showHidden':!![],'depth':null}));});};exports['outbound']=function(_0x13d598,_0x33fbc0,_0x3b93b0,_0x1a177c,_0x2339ff,_0x4cc09c,_0xff6474){var _0x26787f,_0x433db4;_0x4cc09c[_0x2d63('0xd')]=intUtil[_0x2d63('0x44')](_0x4cc09c[_0x2d63('0xd')]);_0x4cc09c[_0x2d63('0x45')]=intUtil[_0x2d63('0x44')](_0x4cc09c['serverUrl']);if(_0xff6474&&_0xff6474[_0x2d63('0x5c')]&&_0xff6474['recordingFormat']!==_0x2d63('0x5d')){logger[_0x2d63('0xa')]('[OUTBOUND]',_0x2d63('0x5e'));_0x33fbc0[_0x2d63('0x48')]=util[_0x2d63('0xc')](_0x2d63('0x49'),_0x4cc09c[_0x2d63('0x45')],_0x33fbc0[_0x2d63('0x4a')],md5(_0x33fbc0['uniqueid']));}headers[_0x2d63('0x4b')]=getAuth(_0x4cc09c);return getUser(_0x4cc09c,_0x1a177c[_0x2d63('0x5f')])[_0x2d63('0x15')](function(_0xf98a1b){_0x26787f=_0xf98a1b;logger['info'](_0x2d63('0x4c'),_0x26787f['id']);return getEndUser(_0x4cc09c,_0x33fbc0[_0x2d63('0x60')],_0x33fbc0[_0x2d63('0x61')]);})[_0x2d63('0x15')](function(_0x2b4ae0){_0x433db4=_0x2b4ae0;logger[_0x2d63('0xa')](_0x2d63('0x4e'),_0x433db4['id']);return getTicket(_0x4cc09c,_0x26787f,_0x433db4,_0x3b93b0,_0x33fbc0);})[_0x2d63('0x15')](function(_0xa3f4ca){if(_0xa3f4ca){logger[_0x2d63('0xa')](_0x2d63('0x4f'),_0xa3f4ca['id']);switch(_0x4cc09c[_0x2d63('0x3a')]){case _0x2d63('0x50'):logger[_0x2d63('0xa')](_0x2d63('0x62'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util['format'](_0x2d63('0x52'),_0x4cc09c['remoteUri'],_0x26787f['id'],_0xa3f4ca['id']),'method':'POST'});case'newTab':logger[_0x2d63('0xa')]('[OUTBOUND]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x2d63('0xc')]('user:%s',_0x1a177c[_0x2d63('0x10')]),_0x2d63('0x55'),{'uri':util[_0x2d63('0xc')](_0x2d63('0x63'),_0x4cc09c['remoteUri']['replace'](_0x2d63('0x57'),''),_0xa3f4ca['id'])});break;default:logger[_0x2d63('0x58')](_0x2d63('0x62'),'Zendesk\x20account\x20type\x20not\x20recognized');}}})[_0x2d63('0x64')](function(_0x2cf893){logger['error'](_0x2d63('0x65'),util[_0x2d63('0x5b')](_0x2cf893,{'showHidden':!![],'depth':null}));});};exports[_0x2d63('0x66')]=function(_0x322482,_0x5d416d,_0x42882a,_0x524d35,_0xcc21b9,_0x4b80b9){var _0xbfeb84,_0x35c9f2;_0x4b80b9[_0x2d63('0xd')]=intUtil[_0x2d63('0x44')](_0x4b80b9[_0x2d63('0xd')]);_0x4b80b9[_0x2d63('0x45')]=intUtil[_0x2d63('0x44')](_0x4b80b9[_0x2d63('0x45')]);if(_0xcc21b9&&_0xcc21b9[_0x2d63('0x46')]){logger[_0x2d63('0xa')]('['+_0x5d416d['lastevent']['toUpperCase']()+']',_0x2d63('0x5e'));_0x5d416d[_0x2d63('0x48')]=util[_0x2d63('0xc')](_0x2d63('0x49'),_0x4b80b9['serverUrl'],_0x5d416d[_0x2d63('0x4a')],md5(_0x5d416d[_0x2d63('0x4a')]));}else{_0x5d416d[_0x2d63('0x48')]='';}headers[_0x2d63('0x4b')]=getAuth(_0x4b80b9);return getUser(_0x4b80b9)[_0x2d63('0x15')](function(_0x18d7e4){_0xbfeb84=_0x18d7e4;logger[_0x2d63('0xa')](_0x2d63('0x4c'),_0xbfeb84['id']);return getEndUser(_0x4b80b9,_0x5d416d[_0x2d63('0x4d')],_0x5d416d[_0x2d63('0x67')]);})['then'](function(_0x3f91c1){_0x35c9f2=_0x3f91c1;logger[_0x2d63('0xa')]('The\x20Enduser\x20ID\x20is:',_0x35c9f2['id']);return getTicket(_0x4b80b9,_0xbfeb84,_0x35c9f2,_0x42882a,_0x5d416d);})[_0x2d63('0x15')](function(_0x3e1c19){if(_0x3e1c19){logger['info'](_0x2d63('0x4f'),_0x3e1c19['id']);}})[_0x2d63('0x64')](function(_0x39d300){logger[_0x2d63('0x58')]('['+_0x5d416d[_0x2d63('0x68')][_0x2d63('0x69')]()+']'+'\x20Error\x20running\x20Zendesk\x20integration',util['inspect'](_0x39d300,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x756a=['/api/voice/recordings/','zoho.eu','destcalleridname','destcalleridnum','Outbound','user:%s','trigger:browser:url','/crm/EntityInfo.do?module=Calls&id=','unmanaged','toUpperCase','lodash','request-promise','md5','util','./util','moment','ioredis','bluebird','../../../../config/environment','../../../../config/logger','redis','socket.io-emitter','emit','stringify','length','forEach','includes','picklist','type','idField','content','toString','variable','variableName','customVariable','Variable','name','toLowerCase','indexOf','split','isNil','isBefore','access_token','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','then','add','expires_in','seconds','catch','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Using\x20the\x20admin\x20account!','Administrator','user','profile','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','enduserType','https://www.zohoapis.','moduleCreate','role','first_name','last_name','data','startCase','Error:\x20','log','GET','moduleSearch','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','Contacts','lead','Owner','administrator','Subject','Subjects','Description','getString','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','Call_Duration','utc','format','mm:ss','answertime','endtime','diff','starttime','lastevent','called','Call_Result','complete','connect','Answered','Rejected','abandoned','Abandoned','timeout','agentcalledAt','YYYY-MM-DDTHH:mm:ss','Call_Type','Inbound','Fields','/crm/v2/Calls','code','details','err','queue','stripTrailingSlash','host','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','uniqueid','/downloads?type=uniqueid&token=','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','https://crm.','outbound','recordingFormat','none','[OUTBOUND]'];(function(_0x4e3a97,_0x48e5f3){var _0xeaead5=function(_0x2bc203){while(--_0x2bc203){_0x4e3a97['push'](_0x4e3a97['shift']());}};_0xeaead5(++_0x48e5f3);}(_0x756a,0x144));var _0xa756=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0x756a[_0x37c22c];return _0x119d79;};'use strict';var _=require(_0xa756('0x0'));var rp=require(_0xa756('0x1'));var md5=require(_0xa756('0x2'));var util=require(_0xa756('0x3'));var intUtil=require(_0xa756('0x4'));var moment=require(_0xa756('0x5'));var Redis=require(_0xa756('0x6'));var BPromise=require(_0xa756('0x7'));var config=require(_0xa756('0x8'));var logger=require(_0xa756('0x9'))('zoho');config[_0xa756('0xa')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xa756('0xb'))(new Redis(config[_0xa756('0xa')]));function emit(_0x341027,_0x2731bd,_0x3b3ee3){io['to'](_0x341027)[_0xa756('0xc')](_0x2731bd,_0x3b3ee3);}function request(_0x498e59){logger['debug']('[HTTP]',JSON[_0xa756('0xd')](_0x498e59));return rp(_0x498e59);}function getCustomFields(_0x533359,_0x196a77){var _0x3e2d73={};if(_0x533359[_0xa756('0xe')]>0x0){_[_0xa756('0xf')](_0x533359,function(_0x3df498){if(_[_0xa756('0x10')](['string',_0xa756('0x11')],_0x3df498[_0xa756('0x12')])&&_0x3df498['idField']){_0x3e2d73[_0x3df498[_0xa756('0x13')]]=_0x3df498[_0xa756('0x14')][_0xa756('0x15')]();}else if(_0x3df498['type']===_0xa756('0x16')&&_0x3df498[_0xa756('0x17')]&&_0x3df498[_0xa756('0x13')]&&_0x196a77[_0x3df498[_0xa756('0x17')]]){_0x3e2d73[_0x3df498[_0xa756('0x13')]]=_0x196a77[_0x3df498['variableName']][_0xa756('0x15')]();}else if(_0x3df498[_0xa756('0x12')]===_0xa756('0x18')&&_0x3df498[_0xa756('0x19')]&&_0x3df498[_0xa756('0x19')][_0xa756('0x1a')]&&_0x3df498['idField']&&_0x196a77[_0x3df498['Variable'][_0xa756('0x1a')]['toLowerCase']()]){_0x3e2d73[_0x3df498[_0xa756('0x13')]]=_0x196a77[_0x3df498[_0xa756('0x19')]['name'][_0xa756('0x1b')]()][_0xa756('0x15')]();}});}return _0x3e2d73;}function getName(_0x43043b){if(_0x43043b[_0xa756('0x1c')]('\x20')>0x0){var _0x3e2340=_0x43043b[_0xa756('0x1d')](/ (.+)/);if(_0x3e2340[0x1]){return _0x3e2340;}}return[_0x43043b,_0x43043b];}var accountsTokens={};function getAccessToken(_0x5bab89){return new Promise(function(_0x46c721,_0x9fb6e4){if(!_['isNil'](accountsTokens[_0x5bab89['id']])&&!_[_0xa756('0x1e')](accountsTokens[_0x5bab89['id']]['access_token'])){if(moment()[_0xa756('0x1f')](accountsTokens[_0x5bab89['id']]['expires_in'])){_0x46c721(accountsTokens[_0x5bab89['id']][_0xa756('0x20')]);}}var _0xbccef3;switch(_0x5bab89['zone']){case'US':_0xbccef3=_0xa756('0x21');break;case'AU':_0xbccef3=_0xa756('0x22');break;case'EU':_0xbccef3='https://accounts.zoho.eu';break;case'IN':_0xbccef3='https://accounts.zoho.in';break;case'CN':_0xbccef3=_0xa756('0x23');break;default:_0xbccef3=_0xa756('0x24');break;}var _0x5c59c1={'method':_0xa756('0x25'),'uri':_0xbccef3+_0xa756('0x26'),'qs':{'refresh_token':_0x5bab89[_0xa756('0x27')],'client_id':_0x5bab89[_0xa756('0x28')],'client_secret':_0x5bab89[_0xa756('0x29')],'grant_type':_0xa756('0x2a')},'json':!![]};return rp(_0x5c59c1)[_0xa756('0x2b')](function(_0x4129b7){accountsTokens[_0x5bab89['id']]={'access_token':_0x4129b7[_0xa756('0x20')],'expires_in':moment()[_0xa756('0x2c')](_0x4129b7[_0xa756('0x2d')],_0xa756('0x2e'))};_0x46c721(_0x4129b7[_0xa756('0x20')]);})[_0xa756('0x2f')](function(_0x396623){logger[_0xa756('0x30')](_0xa756('0x31'),_0x396623[_0xa756('0x32')]);_0x9fb6e4(_0x396623);});});}function getUser(_0x2a8c8d,_0x4217ac,_0x1fb403,_0x2915d9){logger[_0xa756('0x33')](_0xa756('0x34'));return request({'method':'GET','uri':util['format'](_0xa756('0x35'),_0x4217ac),'qs':{'type':_0xa756('0x36')},'headers':{'Authorization':_0xa756('0x37')+_0x2a8c8d},'json':!![]})[_0xa756('0x2b')](function(_0x3d0ca1){if(_0x3d0ca1[_0xa756('0x38')]){var _0x1ec767=-0x1;if(_[_0xa756('0x39')](_0x3d0ca1['users'])){if(!_[_0xa756('0x1e')](_0x2915d9)){_0x1ec767=_[_0xa756('0x3a')](_0x3d0ca1['users'],function(_0x3442b9){return _0x3442b9[_0xa756('0x3b')]===_0x2915d9;});}if(_0x1ec767>=0x0){logger['info']('Agent\x20found!');}else{logger['info'](_0xa756('0x3c'));_0x1ec767=_['findIndex'](_0x3d0ca1[_0xa756('0x38')],function(_0x137cdb){return _0x137cdb['profile'][_0xa756('0x1a')]===_0xa756('0x3d');});}return _0x3d0ca1[_0xa756('0x38')][_0x1ec767];}else{if(_0x3d0ca1[_0xa756('0x3e')][_0xa756('0x3f')][_0xa756('0x1a')]==='Administrator'){logger[_0xa756('0x33')](_0xa756('0x3c'));user=_0x3d0ca1[_0xa756('0x3e')];return user;}else{logger[_0xa756('0x30')](_0xa756('0x40'),JSON[_0xa756('0xd')](_0x3d0ca1));throw new Error('Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20'+JSON[_0xa756('0xd')](_0x3d0ca1));}}}else{logger['error'](_0xa756('0x40'),JSON[_0xa756('0xd')](_0x3d0ca1));throw new Error(_0xa756('0x41')+JSON[_0xa756('0xd')](_0x3d0ca1));}})[_0xa756('0x2f')](function(_0x1cd25b){console[_0xa756('0x30')](_0x1cd25b);});}function getZohoUser(_0x50a27f,_0x2cc3a7){return new BPromise(function(_0x11334d,_0x4268eb){request(_0x50a27f)[_0xa756('0x2b')](function(_0x328df4){var _0x19c5e5=null;if(_0x328df4){_0x19c5e5=_0x328df4['data'][0x0];_0x19c5e5[_0xa756('0x42')]=_0x2cc3a7;}_0x11334d(_0x19c5e5);})[_0xa756('0x2f')](function(_0x793a1a){_0x4268eb(_0x793a1a);});});}function createEndUser(_0x2b63d2,_0x447c6a,_0x1c6141,_0x140b0b,_0x204ee4,_0x3c6c69){var _0x1c6141=getName(_0x1c6141);return request({'method':'POST','uri':_0xa756('0x43')+_0x447c6a+'/crm/v2/'+_['startCase'](_0x3c6c69[_0xa756('0x44')])+'s','body':{'data':[{'Last_Name':_0x1c6141[0x1],'First_Name':_0x1c6141[0x0],'Phone':_0x140b0b,'Owner':{'name':!_[_0xa756('0x1e')](_0x204ee4[_0xa756('0x45')][_0xa756('0x1a')])?_0x204ee4[_0xa756('0x45')]['name']:!_[_0xa756('0x1e')](_0x204ee4[_0xa756('0x46')])?_0x204ee4[_0xa756('0x46')]+'\x20'+_0x204ee4[_0xa756('0x47')]:_0x204ee4[_0xa756('0x47')],'id':_0x204ee4['id']}}]},'headers':{'Authorization':_0xa756('0x37')+_0x2b63d2},'json':!![]})['then'](function(_0x5b2347){if(_0x5b2347&&_0x5b2347[_0xa756('0x48')][0x0]['code']==='SUCCESS'){var _0x51808e=_0x5b2347[_0xa756('0x48')][0x0]['details'];_0x51808e['enduserType']=_[_0xa756('0x49')](_0x3c6c69[_0xa756('0x44')])+'s';return _0x51808e;}logger[_0xa756('0x30')](_0xa756('0x40'),JSON[_0xa756('0xd')](data));throw new Error(_0xa756('0x4a')+JSON['stringify'](data));})['catch'](function(_0xb376fa){console[_0xa756('0x4b')]('CREATE\x20ERROR',_0xb376fa);});}function getEndUser(_0x2cee75,_0x3b66a1,_0x259f6c,_0x4f20a2,_0x4424fc,_0x1a6a69,_0x572c10){var _0x1d76b1={'method':_0xa756('0x4c'),'uri':'','headers':{'Authorization':_0xa756('0x37')+_0x2cee75},'json':!![]};switch(_0x572c10[_0xa756('0x4d')]){case'contact_lead':_0x1d76b1[_0xa756('0x4e')]=_0xa756('0x43')+_0x3b66a1+_0xa756('0x4f')+_0x4424fc+'))';return getZohoUser(_0x1d76b1,'Contacts')[_0xa756('0x2b')](function(_0xd6d56b){if(_0xd6d56b)return _0xd6d56b;_0x1d76b1[_0xa756('0x4e')]=_0xa756('0x43')+_0x3b66a1+_0xa756('0x50')+_0x4424fc+'))';return getZohoUser(_0x1d76b1,_0xa756('0x51'))[_0xa756('0x2b')](function(_0xaf4028){if(_0xaf4028)return _0xaf4028;if(_0x572c10['moduleCreate']!=_0xa756('0x52')){return createEndUser(_0x2cee75,_0x3b66a1,_0x4f20a2,_0x4424fc,_0x1a6a69,_0x572c10);}else{return{};}});});break;case _0xa756('0x53'):_0x1d76b1['uri']=_0xa756('0x43')+_0x3b66a1+_0xa756('0x4f')+_0x4424fc+'))';return getZohoUser(_0x1d76b1,_0xa756('0x54'))[_0xa756('0x2b')](function(_0x1afcf1){if(_0x1afcf1)return _0x1afcf1;if(_0x572c10[_0xa756('0x44')]!='nothing'){return createEndUser(_0x2cee75,_0x3b66a1,_0x4f20a2,_0x4424fc,_0x1a6a69,_0x572c10);}else{return{};}});break;case _0xa756('0x55'):_0x1d76b1[_0xa756('0x4e')]='https://www.zohoapis.'+_0x3b66a1+_0xa756('0x50')+_0x4424fc+'))';return getZohoUser(_0x1d76b1,_0xa756('0x51'))[_0xa756('0x2b')](function(_0x268c2a){if(_0x268c2a)return _0x268c2a;if(_0x572c10[_0xa756('0x44')]!='nothing'){return createEndUser(_0x2cee75,_0x3b66a1,_0x4f20a2,_0x4424fc,_0x1a6a69,_0x572c10);}else{return{};}});break;}}function getCall(_0x2712f8,_0x250981,_0x2ffbea,_0xe8bd7,_0x140b91,_0x229b18,_0x3460fb,_0x58ad69){logger[_0xa756('0x33')]('Creating\x20new\x20call...');var _0x30a14f={};_0x30a14f[_0xa756('0x56')]={'name':!_[_0xa756('0x1e')](_0xe8bd7['role'][_0xa756('0x1a')])&&!_[_0xa756('0x1e')](_0xe8bd7['profile'][_0xa756('0x1a')])&&_0xe8bd7[_0xa756('0x3f')][_0xa756('0x1a')]===_0xa756('0x57')?_0xe8bd7[_0xa756('0x45')][_0xa756('0x1a')]:!_[_0xa756('0x1e')](_0xe8bd7[_0xa756('0x46')])?_0xe8bd7[_0xa756('0x46')]+'\x20'+_0xe8bd7[_0xa756('0x47')]:_0xe8bd7[_0xa756('0x47')],'id':_0xe8bd7['id']};_0x30a14f[_0xa756('0x58')]=intUtil['getString'](_0x229b18[_0xa756('0x59')],_0x3460fb,'\x20');_0x30a14f[_0xa756('0x5a')]=intUtil[_0xa756('0x5b')](_0x229b18[_0xa756('0x5c')],_0x3460fb,'\x0a');if(_0x140b91[_0xa756('0x42')]===_0xa756('0x54')){_0x30a14f[_0xa756('0x5d')]={'name':!_[_0xa756('0x1e')](_0x140b91['Full_Name'])?_0x140b91[_0xa756('0x5e')]:!_['isNil'](_0x140b91[_0xa756('0x5f')])?_0x140b91[_0xa756('0x5f')]+'\x20'+_0x140b91[_0xa756('0x60')]:_0x140b91[_0xa756('0x60')],'id':_0x140b91['id']};}if(_0x140b91['enduserType']===_0xa756('0x51')){_0x30a14f[_0xa756('0x61')]={'name':!_[_0xa756('0x1e')](_0x140b91[_0xa756('0x5e')])?_0x140b91[_0xa756('0x5e')]:!_[_0xa756('0x1e')](_0x140b91[_0xa756('0x5f')])?_0x140b91[_0xa756('0x5f')]+'\x20'+_0x140b91['Last_Name']:_0x140b91['Last_Name'],'id':_0x140b91['id']};_0x30a14f[_0xa756('0x62')]=_['startCase'](_0x140b91[_0xa756('0x42')]);}if(_0x3460fb[_0xa756('0x63')]){_0x30a14f[_0xa756('0x64')]=moment[_0xa756('0x65')](parseInt(_0x3460fb[_0xa756('0x63')])*0x3e8)[_0xa756('0x66')](_0xa756('0x67'));}else if(_0x3460fb[_0xa756('0x68')]&&_0x3460fb['endtime']){_0x30a14f[_0xa756('0x64')]=moment['utc'](moment(_0x3460fb[_0xa756('0x69')],'YYYY-MM-DDTHH:mm:ss')[_0xa756('0x6a')](moment(_0x3460fb[_0xa756('0x6b')],'YYYY-MM-DDTHH:mm:ss')))[_0xa756('0x66')](_0xa756('0x67'));}switch(_0x3460fb[_0xa756('0x6c')]){case _0xa756('0x6d'):_0x30a14f[_0xa756('0x6e')]='Called';break;case _0xa756('0x6f'):case _0xa756('0x70'):_0x30a14f['Call_Result']=_0xa756('0x71');break;case'rejected':_0x30a14f['Call_Result']=_0xa756('0x72');break;case _0xa756('0x73'):_0x30a14f[_0xa756('0x6e')]=_0xa756('0x74');break;case _0xa756('0x75'):_0x30a14f['Call_Result']='Timeout';default:}_0x30a14f['Call_Start_Time']=(_0x58ad69==='outbound'?moment(_0x3460fb['starttime'])[_0xa756('0x66')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x3460fb[_0xa756('0x76')])['format']('YYYY-MM-DDTHH:mm:ss'))||moment()[_0xa756('0x66')](_0xa756('0x77'));_0x30a14f[_0xa756('0x78')]=_0x58ad69||_0xa756('0x79');_0x30a14f=_['merge'](_0x30a14f,getCustomFields(_0x229b18[_0xa756('0x7a')],_0x3460fb));return request({'method':_0xa756('0x25'),'uri':_0xa756('0x43')+_0x250981+_0xa756('0x7b'),'headers':{'Authorization':_0xa756('0x37')+_0x2712f8},'body':{'data':[_0x30a14f]},'json':!![]})[_0xa756('0x2b')](function(_0x1bb052){if(_0x1bb052&&_0x1bb052[_0xa756('0x48')][0x0][_0xa756('0x7c')]==='SUCCESS'){logger['info']('Call\x20created!');return{'id':_0x1bb052[_0xa756('0x48')][0x0][_0xa756('0x7d')]['id']};}})[_0xa756('0x2f')](function(_0x2d6f0c){logger['info'](_0xa756('0x7e'),_0x2d6f0c[_0xa756('0x32')]);console[_0xa756('0x4b')](_0xa756('0x7e'),_0x2d6f0c);});}exports[_0xa756('0x7f')]=function(_0xe23071,_0x213bf4,_0x5a59ea,_0x53c59e,_0x41a182,_0x261a34){var _0x1375dd,_0xebb1c6,_0x252476;_0x261a34['host']=intUtil[_0xa756('0x80')](_0x261a34[_0xa756('0x81')]);_0x261a34[_0xa756('0x82')]=intUtil[_0xa756('0x80')](_0x261a34[_0xa756('0x82')]);if(_0x41a182&&_0x41a182[_0xa756('0x83')]){logger['info'](_0xa756('0x84'),_0xa756('0x85'));_0x213bf4[_0xa756('0x86')]=_0x261a34['serverUrl']+'/api/voice/recordings/'+_0x213bf4[_0xa756('0x87')]+_0xa756('0x88')+md5(_0x213bf4[_0xa756('0x87')]);}else{_0x213bf4[_0xa756('0x86')]='';}var _0x1a0ff8=_0x261a34[_0xa756('0x81')]==='zoho.eu'?'eu':'com';return getAccessToken(_0x261a34)[_0xa756('0x2b')](function(_0x38d635){_0x252476=_0x38d635;return getUser(_0x252476,_0x1a0ff8,_0x261a34,_0x53c59e[_0xa756('0x3b')]);})['then'](function(_0x30408a){_0x1375dd=_0x30408a;logger[_0xa756('0x33')](_0xa756('0x89'),_0x1375dd['id']);return getEndUser(_0x252476,_0x1a0ff8,_0x261a34,_0x213bf4[_0xa756('0x8a')],_0x213bf4[_0xa756('0x8b')],_0x1375dd,_0x5a59ea);})[_0xa756('0x2b')](function(_0x2d4e50){_0xebb1c6=_0x2d4e50;return getCall(_0x252476,_0x1a0ff8,_0x261a34,_0x1375dd,_0xebb1c6,_0x5a59ea,_0x213bf4,_0xa756('0x79'));})[_0xa756('0x2b')](function(_0x170ced){if(_0x170ced){logger[_0xa756('0x33')](_0xa756('0x8c'),_0x170ced['id']);logger[_0xa756('0x33')](_0xa756('0x84'),_0xa756('0x8d'));emit(util[_0xa756('0x66')]('user:%s',_0x53c59e[_0xa756('0x1a')]),'trigger:browser:url',{'uri':_0xa756('0x8e')+_0x261a34['host']+'/crm/EntityInfo.do?module=Calls&id='+_0x170ced['id']});}})[_0xa756('0x2f')](function(_0x23a1b6){logger[_0xa756('0x30')]('[QUEUE]',JSON[_0xa756('0xd')](_0x23a1b6));});};exports[_0xa756('0x8f')]=function(_0x5bd404,_0x41a49f,_0x4c7988,_0x450117,_0x7f8673,_0x4c0afc,_0x1eb436){var _0x3f1abc,_0x47374e,_0x4b8ede;_0x4c0afc[_0xa756('0x81')]=intUtil[_0xa756('0x80')](_0x4c0afc[_0xa756('0x81')]);_0x4c0afc[_0xa756('0x82')]=intUtil['stripTrailingSlash'](_0x4c0afc['serverUrl']);if(_0x1eb436&&_0x1eb436[_0xa756('0x90')]&&_0x1eb436['recordingFormat']!==_0xa756('0x91')){logger[_0xa756('0x33')](_0xa756('0x92'),_0xa756('0x85'));_0x41a49f[_0xa756('0x86')]=_0x4c0afc[_0xa756('0x82')]+_0xa756('0x93')+_0x41a49f[_0xa756('0x87')]+'/downloads?type=uniqueid&token='+md5(_0x41a49f[_0xa756('0x87')]);}var _0x498602=_0x4c0afc['host']===_0xa756('0x94')?'eu':'com';return getAccessToken(_0x4c0afc)[_0xa756('0x2b')](function(_0x200118){_0x4b8ede=_0x200118;return getUser(_0x4b8ede,_0x498602,_0x4c0afc,_0x450117[_0xa756('0x3b')]);})['then'](function(_0x273f76){_0x3f1abc=_0x273f76;logger[_0xa756('0x33')]('The\x20User\x20ID\x20is:',_0x3f1abc['id']);return getEndUser(_0x4b8ede,_0x498602,_0x4c0afc,_0x41a49f[_0xa756('0x95')],_0x41a49f[_0xa756('0x96')],_0x3f1abc,_0x4c7988);})[_0xa756('0x2b')](function(_0x2462c5){_0x47374e=_0x2462c5;return getCall(_0x4b8ede,_0x498602,_0x4c0afc,_0x3f1abc,_0x47374e,_0x4c7988,_0x41a49f,_0xa756('0x97'));})[_0xa756('0x2b')](function(_0x36f0b4){if(_0x36f0b4){logger[_0xa756('0x33')](_0xa756('0x8c'),_0x36f0b4['id']);logger[_0xa756('0x33')](_0xa756('0x92'),_0xa756('0x8d'));emit(util[_0xa756('0x66')](_0xa756('0x98'),_0x450117[_0xa756('0x1a')]),_0xa756('0x99'),{'uri':'https://crm.'+_0x4c0afc[_0xa756('0x81')]+_0xa756('0x9a')+_0x36f0b4['id']});}})['catch'](function(_0x16a9fa){logger[_0xa756('0x30')]('[OUTBOUND]',JSON[_0xa756('0xd')](_0x16a9fa));});};exports[_0xa756('0x9b')]=function(_0x371a7c,_0x131d2c,_0x1aa615,_0xedadd8,_0x555e39,_0x1ad186){var _0xe1211c,_0x5c7e9d,_0x56784b;_0x1ad186[_0xa756('0x81')]=intUtil[_0xa756('0x80')](_0x1ad186['host']);_0x1ad186[_0xa756('0x82')]=intUtil[_0xa756('0x80')](_0x1ad186['serverUrl']);if(_0x555e39&&_0x555e39[_0xa756('0x83')]){logger['info']('['+_0x131d2c[_0xa756('0x6c')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x131d2c[_0xa756('0x86')]=_0x1ad186[_0xa756('0x82')]+_0xa756('0x93')+_0x131d2c[_0xa756('0x87')]+_0xa756('0x88')+md5(_0x131d2c['uniqueid']);}else{_0x131d2c[_0xa756('0x86')]='';}var _0x3267b7=_0x1ad186['host']===_0xa756('0x94')?'eu':'com';return getAccessToken(_0x1ad186)[_0xa756('0x2b')](function(_0x30b72c){_0x56784b=_0x30b72c;return getUser(_0x56784b,_0x3267b7,_0x1ad186);})[_0xa756('0x2b')](function(_0x918b87){_0xe1211c=_0x918b87;logger[_0xa756('0x33')]('The\x20User\x20ID\x20is:',_0xe1211c['id']);return getEndUser(_0x56784b,_0x3267b7,_0x1ad186,_0x131d2c[_0xa756('0x8a')],_0x131d2c[_0xa756('0x8b')],_0xe1211c,_0x1aa615);})['then'](function(_0x5edc0b){_0x5c7e9d=_0x5edc0b;return getCall(_0x56784b,_0x3267b7,_0x1ad186,_0xe1211c,_0x5c7e9d,_0x1aa615,_0x131d2c,'Inbound');})[_0xa756('0x2b')](function(_0x309d6c){if(_0x309d6c){logger['info'](_0xa756('0x8c'),_0x309d6c['id']);}})[_0xa756('0x2f')](function(_0x58a735){logger['error']('['+_0x131d2c[_0xa756('0x6c')][_0xa756('0x9c')]()+']',JSON[_0xa756('0xd')](_0x58a735));});};
\ No newline at end of file
+var _0x42a2=['GET','format','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','user','Administrator','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','The\x20failing\x20result\x20is','error','data','POST','https://www.zohoapis.','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','code','Error:\x20','log','CREATE\x20ERROR','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing','contact','lead','Creating\x20new\x20call...','Owner','administrator','getString','Subjects','Descriptions','enduserType','Full_Name','First_Name','Last_Name','What_Id','talktime','Call_Duration','endtime','diff','YYYY-MM-DDTHH:mm:ss','lastevent','called','Call_Result','Called','complete','connect','Answered','rejected','abandoned','timeout','Timeout','Call_Start_Time','agentcalledAt','Inbound','Fields','/crm/v2/Calls','SUCCESS','Call\x20created!','details','err','queue','host','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','/api/voice/recordings/','uniqueid','zoho.eu','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','https://crm.','/crm/EntityInfo.do?module=Calls&id=','outbound','recordingFormat','none','/downloads?type=uniqueid&token=','The\x20User\x20ID\x20is:','destcalleridname','Outbound','user:%s','trigger:browser:url','toUpperCase','com','lodash','md5','util','./util','ioredis','bluebird','../../../../config/environment','../../../../config/logger','zoho','redis','defaults','socket.io-emitter','emit','stringify','length','forEach','includes','picklist','type','content','toString','variable','variableName','idField','Variable','name','indexOf','split','isNil','access_token','isBefore','expires_in','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','/oauth/v2/token','refreshToken','clientId','clientSecret','refresh_token','then','add','seconds','catch','Failing\x20creating\x20the\x20access_token','info','Search\x20user'];(function(_0xa45c87,_0x783585){var _0x28579f=function(_0x4c763a){while(--_0x4c763a){_0xa45c87['push'](_0xa45c87['shift']());}};_0x28579f(++_0x783585);}(_0x42a2,0xf8));var _0x242a=function(_0x12f688,_0x585c25){_0x12f688=_0x12f688-0x0;var _0x59c3de=_0x42a2[_0x12f688];return _0x59c3de;};'use strict';var _=require(_0x242a('0x0'));var rp=require('request-promise');var md5=require(_0x242a('0x1'));var util=require(_0x242a('0x2'));var intUtil=require(_0x242a('0x3'));var moment=require('moment');var Redis=require(_0x242a('0x4'));var BPromise=require(_0x242a('0x5'));var config=require(_0x242a('0x6'));var logger=require(_0x242a('0x7'))(_0x242a('0x8'));config[_0x242a('0x9')]=_[_0x242a('0xa')](config[_0x242a('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0x242a('0xb'))(new Redis(config[_0x242a('0x9')]));function emit(_0x11c57f,_0x37f415,_0x4d1433){io['to'](_0x11c57f)[_0x242a('0xc')](_0x37f415,_0x4d1433);}function request(_0x3a8845){logger['debug']('[HTTP]',JSON[_0x242a('0xd')](_0x3a8845));return rp(_0x3a8845);}function getCustomFields(_0x5edd34,_0x4fece2){var _0x4cc3e7={};if(_0x5edd34[_0x242a('0xe')]>0x0){_[_0x242a('0xf')](_0x5edd34,function(_0x5118cb){if(_[_0x242a('0x10')](['string',_0x242a('0x11')],_0x5118cb[_0x242a('0x12')])&&_0x5118cb['idField']){_0x4cc3e7[_0x5118cb['idField']]=_0x5118cb[_0x242a('0x13')][_0x242a('0x14')]();}else if(_0x5118cb[_0x242a('0x12')]===_0x242a('0x15')&&_0x5118cb[_0x242a('0x16')]&&_0x5118cb[_0x242a('0x17')]&&_0x4fece2[_0x5118cb[_0x242a('0x16')]]){_0x4cc3e7[_0x5118cb['idField']]=_0x4fece2[_0x5118cb['variableName']][_0x242a('0x14')]();}else if(_0x5118cb[_0x242a('0x12')]==='customVariable'&&_0x5118cb[_0x242a('0x18')]&&_0x5118cb[_0x242a('0x18')]['name']&&_0x5118cb['idField']&&_0x4fece2[_0x5118cb[_0x242a('0x18')][_0x242a('0x19')]['toLowerCase']()]){_0x4cc3e7[_0x5118cb[_0x242a('0x17')]]=_0x4fece2[_0x5118cb[_0x242a('0x18')][_0x242a('0x19')]['toLowerCase']()][_0x242a('0x14')]();}});}return _0x4cc3e7;}function getName(_0x5ceae5){if(_0x5ceae5[_0x242a('0x1a')]('\x20')>0x0){var _0x380523=_0x5ceae5[_0x242a('0x1b')](/ (.+)/);if(_0x380523[0x1]){return _0x380523;}}return[_0x5ceae5,_0x5ceae5];}var accountsTokens={};function getAccessToken(_0x422fbe){return new Promise(function(_0x3ed365,_0x59eb96){if(!_[_0x242a('0x1c')](accountsTokens[_0x422fbe['id']])&&!_[_0x242a('0x1c')](accountsTokens[_0x422fbe['id']][_0x242a('0x1d')])){if(moment()[_0x242a('0x1e')](accountsTokens[_0x422fbe['id']][_0x242a('0x1f')])){_0x3ed365(accountsTokens[_0x422fbe['id']][_0x242a('0x1d')]);}}var _0x3f5590;switch(_0x422fbe[_0x242a('0x20')]){case'US':_0x3f5590=_0x242a('0x21');break;case'AU':_0x3f5590=_0x242a('0x22');break;case'EU':_0x3f5590='https://accounts.zoho.eu';break;case'IN':_0x3f5590=_0x242a('0x23');break;case'CN':_0x3f5590='https://accounts.zoho.com.cn';break;default:_0x3f5590='https://accounts.zoho.eu';break;}var _0x1ee310={'method':'POST','uri':_0x3f5590+_0x242a('0x24'),'qs':{'refresh_token':_0x422fbe[_0x242a('0x25')],'client_id':_0x422fbe[_0x242a('0x26')],'client_secret':_0x422fbe[_0x242a('0x27')],'grant_type':_0x242a('0x28')},'json':!![]};return rp(_0x1ee310)[_0x242a('0x29')](function(_0x59e1db){accountsTokens[_0x422fbe['id']]={'access_token':_0x59e1db[_0x242a('0x1d')],'expires_in':moment()[_0x242a('0x2a')](_0x59e1db[_0x242a('0x1f')],_0x242a('0x2b'))};_0x3ed365(_0x59e1db[_0x242a('0x1d')]);})[_0x242a('0x2c')](function(_0x37c73c){logger['error'](_0x242a('0x2d'),_0x37c73c['stack']);_0x59eb96(_0x37c73c);});});}function getUser(_0x54bb69,_0x5da3be,_0x377ef7,_0x32b07f){logger[_0x242a('0x2e')](_0x242a('0x2f'));return request({'method':_0x242a('0x30'),'uri':util[_0x242a('0x31')]('https://www.zohoapis.%s/crm/v2/users',_0x5da3be),'qs':{'type':'ActiveUsers'},'headers':{'Authorization':_0x242a('0x32')+_0x54bb69},'json':!![]})['then'](function(_0x266388){if(_0x266388[_0x242a('0x33')]){var _0x341322=-0x1;if(_[_0x242a('0x34')](_0x266388[_0x242a('0x33')])){if(!_['isNil'](_0x32b07f)){_0x341322=_[_0x242a('0x35')](_0x266388[_0x242a('0x33')],function(_0x2ab94e){return _0x2ab94e[_0x242a('0x36')]===_0x32b07f;});}if(_0x341322>=0x0){logger[_0x242a('0x2e')](_0x242a('0x37'));}else{logger[_0x242a('0x2e')](_0x242a('0x38'));_0x341322=_[_0x242a('0x35')](_0x266388['users'],function(_0x2d1516){return _0x2d1516[_0x242a('0x39')]['name']==='Administrator';});}return _0x266388[_0x242a('0x33')][_0x341322];}else{if(_0x266388[_0x242a('0x3a')][_0x242a('0x39')][_0x242a('0x19')]===_0x242a('0x3b')){logger[_0x242a('0x2e')]('Using\x20the\x20admin\x20account!');user=_0x266388['user'];return user;}else{logger['error']('The\x20failing\x20result\x20is',JSON[_0x242a('0xd')](_0x266388));throw new Error(_0x242a('0x3c')+JSON['stringify'](_0x266388));}}}else{logger['error'](_0x242a('0x3d'),JSON['stringify'](_0x266388));throw new Error(_0x242a('0x3c')+JSON[_0x242a('0xd')](_0x266388));}})['catch'](function(_0x103c13){console[_0x242a('0x3e')](_0x103c13);});}function getZohoUser(_0x1e3273,_0xe168a4){return new BPromise(function(_0x34262c,_0x5a053b){request(_0x1e3273)['then'](function(_0xe93869){var _0x8dd042=null;if(_0xe93869){_0x8dd042=_0xe93869[_0x242a('0x3f')][0x0];_0x8dd042['enduserType']=_0xe168a4;}_0x34262c(_0x8dd042);})[_0x242a('0x2c')](function(_0x31304c){_0x5a053b(_0x31304c);});});}function createEndUser(_0x29b2fc,_0x5c5cfc,_0x170b93,_0x29d6ed,_0x5c4db2,_0x18e5df){var _0x170b93=getName(_0x170b93);return request({'method':_0x242a('0x40'),'uri':_0x242a('0x41')+_0x5c5cfc+_0x242a('0x42')+_[_0x242a('0x43')](_0x18e5df[_0x242a('0x44')])+'s','body':{'data':[{'Last_Name':_0x170b93[0x1],'First_Name':_0x170b93[0x0],'Phone':_0x29d6ed,'Owner':{'name':!_[_0x242a('0x1c')](_0x5c4db2[_0x242a('0x45')][_0x242a('0x19')])?_0x5c4db2[_0x242a('0x45')][_0x242a('0x19')]:!_[_0x242a('0x1c')](_0x5c4db2[_0x242a('0x46')])?_0x5c4db2[_0x242a('0x46')]+'\x20'+_0x5c4db2[_0x242a('0x47')]:_0x5c4db2['last_name'],'id':_0x5c4db2['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x29b2fc},'json':!![]})[_0x242a('0x29')](function(_0x5630b4){if(_0x5630b4&&_0x5630b4['data'][0x0][_0x242a('0x48')]==='SUCCESS'){var _0x47281f=_0x5630b4[_0x242a('0x3f')][0x0]['details'];_0x47281f['enduserType']=_[_0x242a('0x43')](_0x18e5df[_0x242a('0x44')])+'s';return _0x47281f;}logger[_0x242a('0x3e')]('The\x20failing\x20result\x20is',JSON['stringify'](data));throw new Error(_0x242a('0x49')+JSON[_0x242a('0xd')](data));})[_0x242a('0x2c')](function(_0x40f1cb){console[_0x242a('0x4a')](_0x242a('0x4b'),_0x40f1cb);});}function getEndUser(_0x5be420,_0x4b592b,_0x27850d,_0x1b9ff7,_0x4ae5dd,_0x2ff4b8,_0x13b09b){var _0x2b82c2={'method':_0x242a('0x30'),'uri':'','headers':{'Authorization':_0x242a('0x32')+_0x5be420},'json':!![]};switch(_0x13b09b['moduleSearch']){case _0x242a('0x4c'):_0x2b82c2[_0x242a('0x4d')]=_0x242a('0x41')+_0x4b592b+_0x242a('0x4e')+_0x4ae5dd+'))';return getZohoUser(_0x2b82c2,_0x242a('0x4f'))[_0x242a('0x29')](function(_0x559342){if(_0x559342)return _0x559342;_0x2b82c2[_0x242a('0x4d')]='https://www.zohoapis.'+_0x4b592b+_0x242a('0x50')+_0x4ae5dd+'))';return getZohoUser(_0x2b82c2,_0x242a('0x51'))['then'](function(_0x3599d9){if(_0x3599d9)return _0x3599d9;if(_0x13b09b[_0x242a('0x44')]!=_0x242a('0x52')){return createEndUser(_0x5be420,_0x4b592b,_0x1b9ff7,_0x4ae5dd,_0x2ff4b8,_0x13b09b);}else{return{};}});});break;case _0x242a('0x53'):_0x2b82c2[_0x242a('0x4d')]='https://www.zohoapis.'+_0x4b592b+_0x242a('0x4e')+_0x4ae5dd+'))';return getZohoUser(_0x2b82c2,_0x242a('0x4f'))[_0x242a('0x29')](function(_0x3c3fd8){if(_0x3c3fd8)return _0x3c3fd8;if(_0x13b09b[_0x242a('0x44')]!=_0x242a('0x52')){return createEndUser(_0x5be420,_0x4b592b,_0x1b9ff7,_0x4ae5dd,_0x2ff4b8,_0x13b09b);}else{return{};}});break;case _0x242a('0x54'):_0x2b82c2[_0x242a('0x4d')]=_0x242a('0x41')+_0x4b592b+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x4ae5dd+'))';return getZohoUser(_0x2b82c2,_0x242a('0x51'))[_0x242a('0x29')](function(_0x188ab9){if(_0x188ab9)return _0x188ab9;if(_0x13b09b['moduleCreate']!=_0x242a('0x52')){return createEndUser(_0x5be420,_0x4b592b,_0x1b9ff7,_0x4ae5dd,_0x2ff4b8,_0x13b09b);}else{return{};}});break;}}function getCall(_0x268918,_0x5661f3,_0x13770f,_0xa51e07,_0xf9748d,_0x59ae63,_0x1943e7,_0x42818b){logger[_0x242a('0x2e')](_0x242a('0x55'));var _0x2e595a={};_0x2e595a[_0x242a('0x56')]={'name':!_[_0x242a('0x1c')](_0xa51e07[_0x242a('0x45')][_0x242a('0x19')])&&!_[_0x242a('0x1c')](_0xa51e07['profile'][_0x242a('0x19')])&&_0xa51e07['profile'][_0x242a('0x19')]===_0x242a('0x57')?_0xa51e07[_0x242a('0x45')]['name']:!_['isNil'](_0xa51e07[_0x242a('0x46')])?_0xa51e07['first_name']+'\x20'+_0xa51e07[_0x242a('0x47')]:_0xa51e07['last_name'],'id':_0xa51e07['id']};_0x2e595a['Subject']=intUtil[_0x242a('0x58')](_0x59ae63[_0x242a('0x59')],_0x1943e7,'\x20');_0x2e595a['Description']=intUtil['getString'](_0x59ae63[_0x242a('0x5a')],_0x1943e7,'\x0a');if(_0xf9748d[_0x242a('0x5b')]==='Contacts'){_0x2e595a['Who_Id']={'name':!_[_0x242a('0x1c')](_0xf9748d[_0x242a('0x5c')])?_0xf9748d[_0x242a('0x5c')]:!_[_0x242a('0x1c')](_0xf9748d[_0x242a('0x5d')])?_0xf9748d[_0x242a('0x5d')]+'\x20'+_0xf9748d[_0x242a('0x5e')]:_0xf9748d[_0x242a('0x5e')],'id':_0xf9748d['id']};}if(_0xf9748d[_0x242a('0x5b')]==='Leads'){_0x2e595a[_0x242a('0x5f')]={'name':!_[_0x242a('0x1c')](_0xf9748d[_0x242a('0x5c')])?_0xf9748d[_0x242a('0x5c')]:!_[_0x242a('0x1c')](_0xf9748d['First_Name'])?_0xf9748d[_0x242a('0x5d')]+'\x20'+_0xf9748d[_0x242a('0x5e')]:_0xf9748d[_0x242a('0x5e')],'id':_0xf9748d['id']};_0x2e595a['$se_module']=_[_0x242a('0x43')](_0xf9748d[_0x242a('0x5b')]);}if(_0x1943e7[_0x242a('0x60')]){_0x2e595a[_0x242a('0x61')]=moment['utc'](parseInt(_0x1943e7[_0x242a('0x60')])*0x3e8)['format']('mm:ss');}else if(_0x1943e7['answertime']&&_0x1943e7[_0x242a('0x62')]){_0x2e595a[_0x242a('0x61')]=moment['utc'](moment(_0x1943e7['endtime'],'YYYY-MM-DDTHH:mm:ss')[_0x242a('0x63')](moment(_0x1943e7['starttime'],_0x242a('0x64'))))[_0x242a('0x31')]('mm:ss');}switch(_0x1943e7[_0x242a('0x65')]){case _0x242a('0x66'):_0x2e595a[_0x242a('0x67')]=_0x242a('0x68');break;case _0x242a('0x69'):case _0x242a('0x6a'):_0x2e595a['Call_Result']=_0x242a('0x6b');break;case _0x242a('0x6c'):_0x2e595a[_0x242a('0x67')]='Rejected';break;case _0x242a('0x6d'):_0x2e595a['Call_Result']='Abandoned';break;case _0x242a('0x6e'):_0x2e595a[_0x242a('0x67')]=_0x242a('0x6f');default:}_0x2e595a[_0x242a('0x70')]=(_0x42818b==='outbound'?moment(_0x1943e7['starttime'])[_0x242a('0x31')](_0x242a('0x64')):moment(_0x1943e7[_0x242a('0x71')])[_0x242a('0x31')]('YYYY-MM-DDTHH:mm:ss'))||moment()[_0x242a('0x31')](_0x242a('0x64'));_0x2e595a['Call_Type']=_0x42818b||_0x242a('0x72');_0x2e595a=_['merge'](_0x2e595a,getCustomFields(_0x59ae63[_0x242a('0x73')],_0x1943e7));return request({'method':_0x242a('0x40'),'uri':_0x242a('0x41')+_0x5661f3+_0x242a('0x74'),'headers':{'Authorization':_0x242a('0x32')+_0x268918},'body':{'data':[_0x2e595a]},'json':!![]})[_0x242a('0x29')](function(_0x41c8ab){if(_0x41c8ab&&_0x41c8ab['data'][0x0][_0x242a('0x48')]===_0x242a('0x75')){logger[_0x242a('0x2e')](_0x242a('0x76'));return{'id':_0x41c8ab[_0x242a('0x3f')][0x0][_0x242a('0x77')]['id']};}})['catch'](function(_0x399e73){logger[_0x242a('0x2e')](_0x242a('0x78'),_0x399e73['stack']);console[_0x242a('0x4a')](_0x242a('0x78'),_0x399e73);});}exports[_0x242a('0x79')]=function(_0x5a5791,_0x4eca7d,_0x326837,_0x4a4cd2,_0x46a03a,_0x34314e){var _0x7f32a9,_0x126196,_0x48b875;_0x34314e[_0x242a('0x7a')]=intUtil['stripTrailingSlash'](_0x34314e['host']);_0x34314e[_0x242a('0x7b')]=intUtil[_0x242a('0x7c')](_0x34314e[_0x242a('0x7b')]);if(_0x46a03a&&_0x46a03a[_0x242a('0x7d')]){logger[_0x242a('0x2e')](_0x242a('0x7e'),_0x242a('0x7f'));_0x4eca7d[_0x242a('0x80')]=_0x34314e[_0x242a('0x7b')]+_0x242a('0x81')+_0x4eca7d[_0x242a('0x82')]+'/downloads?type=uniqueid&token='+md5(_0x4eca7d[_0x242a('0x82')]);}else{_0x4eca7d[_0x242a('0x80')]='';}var _0x4c085f=_0x34314e[_0x242a('0x7a')]===_0x242a('0x83')?'eu':'com';return getAccessToken(_0x34314e)[_0x242a('0x29')](function(_0x4bde28){_0x48b875=_0x4bde28;return getUser(_0x48b875,_0x4c085f,_0x34314e,_0x4a4cd2[_0x242a('0x36')]);})[_0x242a('0x29')](function(_0x4d4978){_0x7f32a9=_0x4d4978;logger[_0x242a('0x2e')]('The\x20User\x20ID\x20is:',_0x7f32a9['id']);return getEndUser(_0x48b875,_0x4c085f,_0x34314e,_0x4eca7d['calleridname'],_0x4eca7d[_0x242a('0x84')],_0x7f32a9,_0x326837);})[_0x242a('0x29')](function(_0x4ba68b){_0x126196=_0x4ba68b;return getCall(_0x48b875,_0x4c085f,_0x34314e,_0x7f32a9,_0x126196,_0x326837,_0x4eca7d,'Inbound');})[_0x242a('0x29')](function(_0x461434){if(_0x461434){logger[_0x242a('0x2e')](_0x242a('0x85'),_0x461434['id']);logger[_0x242a('0x2e')](_0x242a('0x7e'),_0x242a('0x86'));emit(util['format']('user:%s',_0x4a4cd2[_0x242a('0x19')]),'trigger:browser:url',{'uri':_0x242a('0x87')+_0x34314e[_0x242a('0x7a')]+_0x242a('0x88')+_0x461434['id']});}})['catch'](function(_0x121b34){logger['error'](_0x242a('0x7e'),JSON[_0x242a('0xd')](_0x121b34));});};exports[_0x242a('0x89')]=function(_0x505dad,_0x706d7d,_0x432927,_0x369bf8,_0x1dd044,_0x12785c,_0x3c89fa){var _0x159c9a,_0x3468c1,_0x2942bc;_0x12785c[_0x242a('0x7a')]=intUtil['stripTrailingSlash'](_0x12785c['host']);_0x12785c['serverUrl']=intUtil[_0x242a('0x7c')](_0x12785c[_0x242a('0x7b')]);if(_0x3c89fa&&_0x3c89fa[_0x242a('0x8a')]&&_0x3c89fa[_0x242a('0x8a')]!==_0x242a('0x8b')){logger[_0x242a('0x2e')]('[OUTBOUND]',_0x242a('0x7f'));_0x706d7d[_0x242a('0x80')]=_0x12785c[_0x242a('0x7b')]+_0x242a('0x81')+_0x706d7d[_0x242a('0x82')]+_0x242a('0x8c')+md5(_0x706d7d[_0x242a('0x82')]);}var _0x3183f1=_0x12785c['host']===_0x242a('0x83')?'eu':'com';return getAccessToken(_0x12785c)['then'](function(_0x2c4a0b){_0x2942bc=_0x2c4a0b;return getUser(_0x2942bc,_0x3183f1,_0x12785c,_0x369bf8[_0x242a('0x36')]);})[_0x242a('0x29')](function(_0x179122){_0x159c9a=_0x179122;logger[_0x242a('0x2e')](_0x242a('0x8d'),_0x159c9a['id']);return getEndUser(_0x2942bc,_0x3183f1,_0x12785c,_0x706d7d[_0x242a('0x8e')],_0x706d7d['destcalleridnum'],_0x159c9a,_0x432927);})[_0x242a('0x29')](function(_0xc99ecf){_0x3468c1=_0xc99ecf;return getCall(_0x2942bc,_0x3183f1,_0x12785c,_0x159c9a,_0x3468c1,_0x432927,_0x706d7d,_0x242a('0x8f'));})[_0x242a('0x29')](function(_0x4b4615){if(_0x4b4615){logger[_0x242a('0x2e')](_0x242a('0x85'),_0x4b4615['id']);logger['info']('[OUTBOUND]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x242a('0x31')](_0x242a('0x90'),_0x369bf8['name']),_0x242a('0x91'),{'uri':'https://crm.'+_0x12785c['host']+_0x242a('0x88')+_0x4b4615['id']});}})['catch'](function(_0x28ad84){logger['error']('[OUTBOUND]',JSON[_0x242a('0xd')](_0x28ad84));});};exports['unmanaged']=function(_0x59808a,_0x355d52,_0x5ec6d4,_0x1cf9ab,_0x57411a,_0x2c146f){var _0x1883f8,_0x1b8a3c,_0x8fc871;_0x2c146f[_0x242a('0x7a')]=intUtil[_0x242a('0x7c')](_0x2c146f[_0x242a('0x7a')]);_0x2c146f['serverUrl']=intUtil[_0x242a('0x7c')](_0x2c146f[_0x242a('0x7b')]);if(_0x57411a&&_0x57411a[_0x242a('0x7d')]){logger[_0x242a('0x2e')]('['+_0x355d52[_0x242a('0x65')][_0x242a('0x92')]()+']',_0x242a('0x7f'));_0x355d52[_0x242a('0x80')]=_0x2c146f[_0x242a('0x7b')]+_0x242a('0x81')+_0x355d52[_0x242a('0x82')]+'/downloads?type=uniqueid&token='+md5(_0x355d52['uniqueid']);}else{_0x355d52['recordingURL']='';}var _0x3700bc=_0x2c146f[_0x242a('0x7a')]===_0x242a('0x83')?'eu':_0x242a('0x93');return getAccessToken(_0x2c146f)[_0x242a('0x29')](function(_0x3d47df){_0x8fc871=_0x3d47df;return getUser(_0x8fc871,_0x3700bc,_0x2c146f);})[_0x242a('0x29')](function(_0x3df5c0){_0x1883f8=_0x3df5c0;logger['info'](_0x242a('0x8d'),_0x1883f8['id']);return getEndUser(_0x8fc871,_0x3700bc,_0x2c146f,_0x355d52['calleridname'],_0x355d52[_0x242a('0x84')],_0x1883f8,_0x5ec6d4);})[_0x242a('0x29')](function(_0x13f892){_0x1b8a3c=_0x13f892;return getCall(_0x8fc871,_0x3700bc,_0x2c146f,_0x1883f8,_0x1b8a3c,_0x5ec6d4,_0x355d52,_0x242a('0x72'));})[_0x242a('0x29')](function(_0x5a4aba){if(_0x5a4aba){logger['info'](_0x242a('0x85'),_0x5a4aba['id']);}})[_0x242a('0x2c')](function(_0x3e10ce){logger[_0x242a('0x3e')]('['+_0x355d52[_0x242a('0x65')][_0x242a('0x92')]()+']',JSON[_0x242a('0xd')](_0x3e10ce));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1492=['error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','shelljs','mustache','../../../../config/logger','exec','data2','Script','data3'];(function(_0x4f1a95,_0x1e4558){var _0x23c323=function(_0x1e83d8){while(--_0x1e83d8){_0x4f1a95['push'](_0x4f1a95['shift']());}};_0x23c323(++_0x1e4558);}(_0x1492,0x124));var _0x2149=function(_0x4f83ca,_0x46f67a){_0x4f83ca=_0x4f83ca-0x0;var _0x1fbac3=_0x1492[_0x4f83ca];return _0x1fbac3;};'use strict';var util=require(_0x2149('0x0'));var sh=require(_0x2149('0x1'));var Mustache=require(_0x2149('0x2'));var logger=require(_0x2149('0x3'))('trigger');exports[_0x2149('0x4')]=function(_0x46bc6c,_0x14d354){var _0x23340a=_0x46bc6c[_0x2149('0x5')]?_0x46bc6c[_0x2149('0x5')]:_0x2149('0x6');var _0x1255f4=_0x46bc6c[_0x2149('0x7')]?Mustache['render'](_0x46bc6c[_0x2149('0x7')],_0x14d354):_0x14d354;sh[_0x2149('0x4')](_0x1255f4,function(_0x98ef25,_0x42aeed,_0x4dcfe7){if(_0x98ef25!==0x0){logger[_0x2149('0x8')](util[_0x2149('0x9')](_0x2149('0xa'),_0x23340a,_0x1255f4,_0x98ef25,_0x4dcfe7));}else{logger['info'](util['format'](_0x2149('0xb'),_0x23340a,_0x1255f4,_0x42aeed));}});};
\ No newline at end of file
+var _0x7b0f=['exec','data2','data3','error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','shelljs','../../../../config/logger','trigger'];(function(_0x58dd84,_0x2efaf4){var _0x28766a=function(_0x385f76){while(--_0x385f76){_0x58dd84['push'](_0x58dd84['shift']());}};_0x28766a(++_0x2efaf4);}(_0x7b0f,0x1e8));var _0xf7b0=function(_0xc779a4,_0x32b786){_0xc779a4=_0xc779a4-0x0;var _0x55ae09=_0x7b0f[_0xc779a4];return _0x55ae09;};'use strict';var util=require(_0xf7b0('0x0'));var sh=require(_0xf7b0('0x1'));var Mustache=require('mustache');var logger=require(_0xf7b0('0x2'))(_0xf7b0('0x3'));exports[_0xf7b0('0x4')]=function(_0x4c441e,_0x5dccbd){var _0x572242=_0x4c441e[_0xf7b0('0x5')]?_0x4c441e[_0xf7b0('0x5')]:'Script';var _0x4ac750=_0x4c441e[_0xf7b0('0x6')]?Mustache['render'](_0x4c441e[_0xf7b0('0x6')],_0x5dccbd):_0x5dccbd;sh[_0xf7b0('0x4')](_0x4ac750,function(_0x59422b,_0x33b2eb,_0x394783){if(_0x59422b!==0x0){logger[_0xf7b0('0x7')](util[_0xf7b0('0x8')](_0xf7b0('0x9'),_0x572242,_0x4ac750,_0x59422b,_0x394783));}else{logger[_0xf7b0('0xa')](util[_0xf7b0('0x8')](_0xf7b0('0xb'),_0x572242,_0x4ac750,_0x33b2eb));}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x917c=['DELETE','POST','data7','parse','error','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','body','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','stringify',',\x20request\x20body:\x20','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s','statusCode','catch','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','name','message','request-promise','util','mustache','trigger','exec','render','data2','data5','number','headers','data6','stack','data1','toUpperCase'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x917c,0x132));var _0xc917=function(_0x49b3c2,_0x4714fc){_0x49b3c2=_0x49b3c2-0x0;var _0x2a22f0=_0x917c[_0x49b3c2];return _0x2a22f0;};'use strict';var rp=require(_0xc917('0x0'));var util=require(_0xc917('0x1'));var _=require('lodash');var Mustache=require(_0xc917('0x2'));var logger=require('../../../../config/logger')(_0xc917('0x3'));exports[_0xc917('0x4')]=function(_0x33f4fb,_0x5f5152){var _0x1d5897,_0x59365a;var _0x44b19e={'method':_0x33f4fb['data1']['toUpperCase'](),'uri':Mustache[_0xc917('0x5')](_0x33f4fb[_0xc917('0x6')],_0x5f5152),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x33f4fb[_0xc917('0x7')])===_0xc917('0x8')&&parseInt(_0x33f4fb[_0xc917('0x7')])>=0x1&&parseInt(_0x33f4fb[_0xc917('0x7')])<=0xa?parseInt(_0x33f4fb[_0xc917('0x7')])*0x3e8:0x5*0x3e8};try{_0x44b19e[_0xc917('0x9')]=_0x33f4fb[_0xc917('0xa')]?JSON['parse'](Mustache[_0xc917('0x5')](_0x33f4fb[_0xc917('0xa')],_0x5f5152)):{};}catch(_0x678a28){logger['error'](_0x678a28[_0xc917('0xb')]);}switch(_0x33f4fb[_0xc917('0xc')][_0xc917('0xd')]()){case'GET':case _0xc917('0xe'):_0x1d5897=null;_0x44b19e['qs']=_0x5f5152;break;case _0xc917('0xf'):case'PUT':if(_0x33f4fb[_0xc917('0x10')]){try{_0x1d5897=JSON[_0xc917('0x11')](Mustache[_0xc917('0x5')](_0x33f4fb[_0xc917('0x10')],_0x5f5152));_0x44b19e['body']=_0x1d5897;}catch(_0x5e1a94){logger[_0xc917('0x12')](_0x5e1a94[_0xc917('0xb')]);logger['error'](_0xc917('0x13'));}}else{_0x1d5897=_0x5f5152;_0x44b19e[_0xc917('0x14')]=_0x1d5897;}break;}logger[_0xc917('0x15')](util[_0xc917('0x16')](_0xc917('0x17'),_0x33f4fb[_0xc917('0xc')],_0x33f4fb[_0xc917('0x6')],JSON[_0xc917('0x18')](_0x44b19e)));rp(_0x44b19e)['then'](function(_0x87433){_0x1d5897=!_['isNil'](_0x1d5897)?_0xc917('0x19')+_0x1d5897:'';_0x59365a=typeof _0x87433[_0xc917('0x14')]==='object'?JSON[_0xc917('0x18')](_0x87433[_0xc917('0x14')]):_0x87433[_0xc917('0x14')];logger[_0xc917('0x15')](util[_0xc917('0x16')](_0xc917('0x1a'),_0x33f4fb[_0xc917('0xc')],_0x33f4fb[_0xc917('0x6')],_0x87433[_0xc917('0x1b')],_0x59365a));})[_0xc917('0x1c')](function(_0x51c49b){logger[_0xc917('0x12')](util['format'](_0xc917('0x1d'),_0x33f4fb[_0xc917('0xc')],_0x33f4fb['data2'],_0x51c49b[_0xc917('0x1b')],_0x51c49b[_0xc917('0x1e')],_0x51c49b[_0xc917('0x1f')]));});};
\ No newline at end of file
+var _0x97f3=['name','message','request-promise','lodash','mustache','../../../../config/logger','exec','render','data2','data5','number','headers','data6','parse','error','stack','data1','toUpperCase','POST','PUT','data7','body','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','stringify','then','isNil',',\x20request\x20body:\x20','object','statusCode','catch','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s'];(function(_0x3b973c,_0x415025){var _0x41a355=function(_0x34da47){while(--_0x34da47){_0x3b973c['push'](_0x3b973c['shift']());}};_0x41a355(++_0x415025);}(_0x97f3,0x8a));var _0x397f=function(_0x27bcce,_0x4a2188){_0x27bcce=_0x27bcce-0x0;var _0x26af0f=_0x97f3[_0x27bcce];return _0x26af0f;};'use strict';var rp=require(_0x397f('0x0'));var util=require('util');var _=require(_0x397f('0x1'));var Mustache=require(_0x397f('0x2'));var logger=require(_0x397f('0x3'))('trigger');exports[_0x397f('0x4')]=function(_0x43d472,_0x20a6f3){var _0x624218,_0x2741a2;var _0x367381={'method':_0x43d472['data1']['toUpperCase'](),'uri':Mustache[_0x397f('0x5')](_0x43d472[_0x397f('0x6')],_0x20a6f3),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x43d472[_0x397f('0x7')])===_0x397f('0x8')&&parseInt(_0x43d472[_0x397f('0x7')])>=0x1&&parseInt(_0x43d472['data5'])<=0xa?parseInt(_0x43d472[_0x397f('0x7')])*0x3e8:0x5*0x3e8};try{_0x367381[_0x397f('0x9')]=_0x43d472[_0x397f('0xa')]?JSON[_0x397f('0xb')](Mustache['render'](_0x43d472[_0x397f('0xa')],_0x20a6f3)):{};}catch(_0x45ecad){logger[_0x397f('0xc')](_0x45ecad[_0x397f('0xd')]);}switch(_0x43d472[_0x397f('0xe')][_0x397f('0xf')]()){case'GET':case'DELETE':_0x624218=null;_0x367381['qs']=_0x20a6f3;break;case _0x397f('0x10'):case _0x397f('0x11'):if(_0x43d472[_0x397f('0x12')]){try{_0x624218=JSON[_0x397f('0xb')](Mustache['render'](_0x43d472['data7'],_0x20a6f3));_0x367381[_0x397f('0x13')]=_0x624218;}catch(_0x548167){logger['error'](_0x548167[_0x397f('0xd')]);logger[_0x397f('0xc')](_0x397f('0x14'));}}else{_0x624218=_0x20a6f3;_0x367381['body']=_0x624218;}break;}logger[_0x397f('0x15')](util[_0x397f('0x16')](_0x397f('0x17'),_0x43d472[_0x397f('0xe')],_0x43d472[_0x397f('0x6')],JSON[_0x397f('0x18')](_0x367381)));rp(_0x367381)[_0x397f('0x19')](function(_0x12cf6c){_0x624218=!_[_0x397f('0x1a')](_0x624218)?_0x397f('0x1b')+_0x624218:'';_0x2741a2=typeof _0x12cf6c['body']===_0x397f('0x1c')?JSON['stringify'](_0x12cf6c['body']):_0x12cf6c[_0x397f('0x13')];logger[_0x397f('0x15')](util[_0x397f('0x16')]('%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s',_0x43d472[_0x397f('0xe')],_0x43d472[_0x397f('0x6')],_0x12cf6c[_0x397f('0x1d')],_0x2741a2));})[_0x397f('0x1e')](function(_0x25bf7f){logger[_0x397f('0xc')](util[_0x397f('0x16')](_0x397f('0x1f'),_0x43d472[_0x397f('0xe')],_0x43d472[_0x397f('0x6')],_0x25bf7f['statusCode'],_0x25bf7f[_0x397f('0x20')],_0x25bf7f[_0x397f('0x21')]));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x095e=['result','jayson/promise','bluebird','../../config/logger','client','http','Request','then','rpc','error','routing','message'];(function(_0x31172e,_0xa59e5){var _0x414ada=function(_0x37ede4){while(--_0x37ede4){_0x31172e['push'](_0x31172e['shift']());}};_0x414ada(++_0xa59e5);}(_0x095e,0x169));var _0xe095=function(_0x521245,_0x18eb6f){_0x521245=_0x521245-0x0;var _0x2e5db5=_0x095e[_0x521245];return _0x2e5db5;};'use strict';var jayson=require(_0xe095('0x0'));var BPromise=require(_0xe095('0x1'));var logger=require(_0xe095('0x2'))('routing');var client=jayson[_0xe095('0x3')][_0xe095('0x4')]({'port':0x2329});client[_0xe095('0x5')]=function(_0x504529,_0x5484ea){return new BPromise(function(_0x3f44d3,_0x552ea5){return client['request'](_0x504529,_0x5484ea)[_0xe095('0x6')](function(_0x4dc59){logger['debug'](_0xe095('0x7'),'routing',_0x504529,_0x5484ea,_0x4dc59);if(_0x4dc59[_0xe095('0x8')]){logger[_0xe095('0x8')](_0xe095('0x7'),_0xe095('0x9'),_0x504529,_0x4dc59[_0xe095('0x8')]['message'],_0x5484ea);return _0x552ea5(_0x4dc59[_0xe095('0x8')][_0xe095('0xa')]);}else{return _0x3f44d3(_0x4dc59[_0xe095('0xb')]);}})['catch'](function(_0x1e4954){logger['error'](_0xe095('0x7'),_0xe095('0x9'),_0x504529,_0x1e4954,_0x5484ea);return _0x552ea5(_0x1e4954);});});};module['exports']=client;
\ No newline at end of file
+var _0x5ffb=['../../config/logger','routing','client','http','Request','then','debug','rpc','error','message','result','catch','jayson/promise'];(function(_0x3bd2c8,_0x395b96){var _0x25374f=function(_0x5ee528){while(--_0x5ee528){_0x3bd2c8['push'](_0x3bd2c8['shift']());}};_0x25374f(++_0x395b96);}(_0x5ffb,0x81));var _0xb5ff=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x5ffb[_0x57b54c];return _0x59cc19;};'use strict';var jayson=require(_0xb5ff('0x0'));var BPromise=require('bluebird');var logger=require(_0xb5ff('0x1'))(_0xb5ff('0x2'));var client=jayson[_0xb5ff('0x3')][_0xb5ff('0x4')]({'port':0x2329});client[_0xb5ff('0x5')]=function(_0x51ab69,_0x2e4e39){return new BPromise(function(_0x538bf2,_0x4af939){return client['request'](_0x51ab69,_0x2e4e39)[_0xb5ff('0x6')](function(_0x5a5594){logger[_0xb5ff('0x7')](_0xb5ff('0x8'),_0xb5ff('0x2'),_0x51ab69,_0x2e4e39,_0x5a5594);if(_0x5a5594[_0xb5ff('0x9')]){logger[_0xb5ff('0x9')](_0xb5ff('0x8'),_0xb5ff('0x2'),_0x51ab69,_0x5a5594[_0xb5ff('0x9')]['message'],_0x2e4e39);return _0x4af939(_0x5a5594[_0xb5ff('0x9')][_0xb5ff('0xa')]);}else{return _0x538bf2(_0x5a5594[_0xb5ff('0xb')]);}})[_0xb5ff('0xc')](function(_0x5afbf1){logger[_0xb5ff('0x9')](_0xb5ff('0x8'),_0xb5ff('0x2'),_0x51ab69,_0x5afbf1,_0x2e4e39);return _0x4af939(_0x5afbf1);});});};module['exports']=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6db6=['loginMailFrequency','catch','log','bluebird','./server','./rpc/mailAccount','./rpc/setting','resolve','then','getMailAccounts','refresh','mailAccounts','listen'];(function(_0x21b45,_0xe281ab){var _0x506535=function(_0x4f71ba){while(--_0x4f71ba){_0x21b45['push'](_0x21b45['shift']());}};_0x506535(++_0xe281ab);}(_0x6db6,0x1ca));var _0x66db=function(_0x5ed064,_0x9f9ed1){_0x5ed064=_0x5ed064-0x0;var _0x1a31f5=_0x6db6[_0x5ed064];return _0x1a31f5;};'use strict';var BPromise=require(_0x66db('0x0'));var server=require(_0x66db('0x1'));var Realtime=require('./realtime');var EmailChannel=require('./lib/email');var mailAccount=require(_0x66db('0x2'));var setting=require(_0x66db('0x3'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x66db('0x4')]()[_0x66db('0x5')](mailAccount[_0x66db('0x6')]())['then'](realtime['initMailAccounts']())[_0x66db('0x5')](function(){email[_0x66db('0x7')](realtime[_0x66db('0x8')]);return realtime;});}function main(){return server[_0x66db('0x9')](realtime,email)[_0x66db('0x5')](function(){return initRealtime();})[_0x66db('0x5')](function(){return setting['getSettings']();})[_0x66db('0x5')](function(_0x332b0b){return setInterval(initRealtime,_0x332b0b[_0x66db('0xa')]*0x3e8);})[_0x66db('0xb')](function(_0x2fa8cb){console[_0x66db('0xc')](_0x2fa8cb);});}main();
\ No newline at end of file
+var _0xaa64=['then','initMailAccounts','refresh','mailAccounts','listen','catch','log','bluebird','./server','./lib/email','./rpc/setting','resolve'];(function(_0x36f641,_0x1a3063){var _0x39b299=function(_0x20c0a3){while(--_0x20c0a3){_0x36f641['push'](_0x36f641['shift']());}};_0x39b299(++_0x1a3063);}(_0xaa64,0xf7));var _0x4aa6=function(_0x19ae02,_0x32d426){_0x19ae02=_0x19ae02-0x0;var _0x575138=_0xaa64[_0x19ae02];return _0x575138;};'use strict';var BPromise=require(_0x4aa6('0x0'));var server=require(_0x4aa6('0x1'));var Realtime=require('./realtime');var EmailChannel=require(_0x4aa6('0x2'));var mailAccount=require('./rpc/mailAccount');var setting=require(_0x4aa6('0x3'));var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x4aa6('0x4')]()[_0x4aa6('0x5')](mailAccount['getMailAccounts']())[_0x4aa6('0x5')](realtime[_0x4aa6('0x6')]())[_0x4aa6('0x5')](function(){email[_0x4aa6('0x7')](realtime[_0x4aa6('0x8')]);return realtime;});}function main(){return server[_0x4aa6('0x9')](realtime,email)[_0x4aa6('0x5')](function(){return initRealtime();})['then'](function(){return setting['getSettings']();})[_0x4aa6('0x5')](function(_0x262497){return setInterval(initRealtime,_0x262497['loginMailFrequency']*0x3e8);})[_0x4aa6('0xa')](function(_0x521ae3){console[_0x4aa6('0xb')](_0x521ae3);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa393=['./imap','./smtp','../rpc/mailAccount','info','start\x20email\x20channel','mailAccounts','imapAccounts','smtp','emit','name','key','active','Imap','messageStatus','total','stringify','mailAccount:update','hasOwnProperty','box','bind','handleImapEmail','end','handleImapEnd','error','handleImapError','status','prototype','handleImapBox','connected','messages','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','lastName','from','notify','Mail\x20accepted\x20from\x20routing','catch','Mail\x20not\x20accepted\x20from\x20routing\x20%s','lastSync','sendMail','send','verifySmtp','Smtp','then','verified','exports','lodash','moment','bluebird','md5','../../../config/logger','email','redis','defaults','localhost','socket.io-emitter'];(function(_0x5867ca,_0x1177d8){var _0x37dddd=function(_0x1a4fc4){while(--_0x1a4fc4){_0x5867ca['push'](_0x5867ca['shift']());}};_0x37dddd(++_0x1177d8);}(_0xa393,0x1b6));var _0x3a39=function(_0xbf8ebe,_0x3b69a5){_0xbf8ebe=_0xbf8ebe-0x0;var _0x1e25e8=_0xa393[_0xbf8ebe];return _0x1e25e8;};'use strict';var _=require(_0x3a39('0x0'));var moment=require(_0x3a39('0x1'));var BPromise=require(_0x3a39('0x2'));var md5=require(_0x3a39('0x3'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x3a39('0x4'))(_0x3a39('0x5'));config[_0x3a39('0x6')]=_[_0x3a39('0x7')](config[_0x3a39('0x6')],{'host':_0x3a39('0x8'),'port':0x18eb});var io=require(_0x3a39('0x9'))(new Redis(config[_0x3a39('0x6')]));var EmailImap=require(_0x3a39('0xa'));var EmailSmtp=require(_0x3a39('0xb'));var mailAccount=require(_0x3a39('0xc'));var md5Accounts={};function EmailChannel(_0x506483){logger[_0x3a39('0xd')](_0x3a39('0xe'));this[_0x3a39('0xf')]=_0x506483[_0x3a39('0xf')];this[_0x3a39('0x10')]={};this[_0x3a39('0x11')]=new EmailSmtp();}EmailChannel['prototype'][_0x3a39('0x12')]=function(_0x26f24d){var _0x111a24=this[_0x3a39('0xf')][_0x26f24d];var _0x4a200b={'id':_0x111a24['id'],'name':_0x111a24[_0x3a39('0x13')],'key':_0x111a24[_0x3a39('0x14')],'active':_0x111a24[_0x3a39('0x15')],'Imap':{'status':_0x111a24['Imap']['status'],'messageStatus':_0x111a24[_0x3a39('0x16')][_0x3a39('0x17')],'total':_0x111a24[_0x3a39('0x16')][_0x3a39('0x18')]}};if(_['isNil'](md5Accounts[_0x26f24d])){md5Accounts[_0x26f24d]={};}var _0x56c34b=md5(JSON[_0x3a39('0x19')](_0x4a200b));if(md5Accounts[_0x26f24d][_0x3a39('0x3')]!==_0x56c34b){md5Accounts[_0x26f24d][_0x3a39('0x3')]=_0x56c34b;io[_0x3a39('0x12')](_0x3a39('0x1a'),_0x4a200b);}};EmailChannel['prototype']['refresh']=function(_0x29dc0a){for(var _0x25815a in _0x29dc0a){if(_0x29dc0a[_0x3a39('0x1b')](_0x25815a)){if(_0x29dc0a[_0x25815a]['Imap']&&_0x29dc0a[_0x25815a][_0x3a39('0x15')]){var _0xb072c4=_0x29dc0a[_0x25815a][_0x3a39('0x16')];if(!this[_0x3a39('0x10')][_0x3a39('0x1b')](_0xb072c4['id'])){this['imapAccounts'][_0xb072c4['id']]=new EmailImap(_0xb072c4,_0x29dc0a[_0x25815a][_0x3a39('0x5')]);this[_0x3a39('0x10')][_0xb072c4['id']]['on'](_0x3a39('0x1c'),this['handleImapBox'][_0x3a39('0x1d')](this,_0x25815a));this['imapAccounts'][_0xb072c4['id']]['on']('email',this[_0x3a39('0x1e')][_0x3a39('0x1d')](this,_0x25815a));this[_0x3a39('0x10')][_0xb072c4['id']]['on'](_0x3a39('0x1f'),this[_0x3a39('0x20')][_0x3a39('0x1d')](this,_0x25815a));this['imapAccounts'][_0xb072c4['id']]['on'](_0x3a39('0x21'),this[_0x3a39('0x22')][_0x3a39('0x1d')](this,_0x25815a));}}else{if(_['isNil'](this[_0x3a39('0xf')][_0x25815a][_0x3a39('0x16')])){this[_0x3a39('0xf')][_0x25815a][_0x3a39('0x16')]={};}this[_0x3a39('0xf')][_0x25815a][_0x3a39('0x16')][_0x3a39('0x23')]='disabled';this['mailAccounts'][_0x25815a][_0x3a39('0x16')][_0x3a39('0x17')]='';this[_0x3a39('0x12')](_0x25815a);}}}};EmailChannel[_0x3a39('0x24')][_0x3a39('0x25')]=function(_0x1ece73,_0x37d792){if(this['mailAccounts'][_0x1ece73]){this[_0x3a39('0xf')][_0x1ece73][_0x3a39('0x16')][_0x3a39('0x23')]=_0x3a39('0x26');this[_0x3a39('0xf')][_0x1ece73][_0x3a39('0x16')][_0x3a39('0x17')]=_0x37d792[_0x3a39('0x13')];if(_0x37d792['messages']){this['mailAccounts'][_0x1ece73]['Imap'][_0x3a39('0x18')]=_0x37d792[_0x3a39('0x27')][_0x3a39('0x18')];}return this[_0x3a39('0x12')](_0x1ece73);}};EmailChannel[_0x3a39('0x24')]['handleImapEmail']=function(_0x5c7147,_0x57fcb6){logger['info'](_0x3a39('0x28'),_0x57fcb6[_0x3a39('0x29')],_0x57fcb6[_0x3a39('0x2a')],_0x57fcb6[_0x3a39('0x2b')],_0x5c7147);if(this[_0x3a39('0xf')][_0x5c7147]){return mailAccount[_0x3a39('0x2c')](_0x5c7147,_0x57fcb6)['then'](function(_0x3c88c3){if(_0x3c88c3){logger['info'](_0x3a39('0x2d'));}})[_0x3a39('0x2e')](function(_0x1cafc7){logger['error'](_0x3a39('0x2f'),JSON[_0x3a39('0x19')](_0x1cafc7));});}};EmailChannel['prototype'][_0x3a39('0x20')]=function(_0x243f27){if(this[_0x3a39('0xf')][_0x243f27]&&this[_0x3a39('0xf')][_0x243f27]['Imap']){if(this['imapAccounts'][this[_0x3a39('0xf')][_0x243f27][_0x3a39('0x16')]['id']]){delete this[_0x3a39('0x10')][this[_0x3a39('0xf')][_0x243f27]['Imap']['id']];}this[_0x3a39('0xf')][_0x243f27][_0x3a39('0x16')][_0x3a39('0x30')]=moment();this[_0x3a39('0x12')](_0x243f27);}};EmailChannel[_0x3a39('0x24')]['handleImapError']=function(_0x100daf,_0x342042){if(this[_0x3a39('0xf')][_0x100daf]){this['mailAccounts'][_0x100daf]['Imap']['status']=_0x3a39('0x21');this[_0x3a39('0xf')][_0x100daf][_0x3a39('0x16')]['messageStatus']=_0x342042;return this['emit'](_0x100daf);}};EmailChannel['prototype'][_0x3a39('0x31')]=function(_0x4ca8b4,_0xb369a9){return this[_0x3a39('0x11')][_0x3a39('0x32')](_0x4ca8b4,_0xb369a9);};EmailChannel[_0x3a39('0x24')][_0x3a39('0x33')]=function(_0x3b4b12){var _0x49c83c=this;if(this[_0x3a39('0xf')][_0x3b4b12['id']]){if(_['isNil'](this['mailAccounts'][_0x3b4b12['id']][_0x3a39('0x34')])){this[_0x3a39('0xf')][_0x3b4b12['id']][_0x3a39('0x34')]={};}this[_0x3a39('0xf')][_0x3b4b12['id']][_0x3a39('0x34')][_0x3a39('0x30')]=moment();return new BPromise(function(_0x149441,_0x45416a){return _0x49c83c[_0x3a39('0x11')]['verify'](_0x3b4b12)[_0x3a39('0x35')](function(_0x50cbfa){_0x49c83c['mailAccounts'][_0x3b4b12['id']]['Smtp']['status']=_0x3a39('0x36');_0x49c83c[_0x3a39('0xf')][_0x3b4b12['id']][_0x3a39('0x34')]['messageStatus']='';_0x49c83c[_0x3a39('0x12')](_0x3b4b12['id']);_0x149441(_0x50cbfa);})[_0x3a39('0x2e')](function(_0x30d844){_0x49c83c[_0x3a39('0xf')][_0x3b4b12['id']][_0x3a39('0x34')][_0x3a39('0x23')]=_0x3a39('0x21');_0x49c83c[_0x3a39('0xf')][_0x3b4b12['id']][_0x3a39('0x34')][_0x3a39('0x17')]=_0x30d844;_0x49c83c[_0x3a39('0x12')](_0x3b4b12['id']);_0x45416a(_0x30d844);});});}return this[_0x3a39('0x11')]['verify'](_0x3b4b12);};module[_0x3a39('0x37')]=EmailChannel;
\ No newline at end of file
+var _0x3fff=['localhost','socket.io-emitter','./imap','../rpc/mailAccount','info','start\x20email\x20channel','mailAccounts','imapAccounts','emit','name','key','Imap','isNil','mailAccount:update','refresh','hasOwnProperty','active','box','handleImapBox','bind','end','handleImapEnd','error','status','disabled','messageStatus','prototype','connected','messages','total','New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s','firstName','lastName','from','notify','then','Mail\x20accepted\x20from\x20routing','catch','stringify','lastSync','handleImapError','sendMail','smtp','send','verifySmtp','Smtp','verify','verified','exports','lodash','moment','bluebird','md5','ioredis','../../../config/environment','../../../config/logger','email','redis'];(function(_0x49f2ae,_0x262bc7){var _0x2b34e7=function(_0x33669a){while(--_0x33669a){_0x49f2ae['push'](_0x49f2ae['shift']());}};_0x2b34e7(++_0x262bc7);}(_0x3fff,0x119));var _0xf3ff=function(_0x390262,_0x5ae918){_0x390262=_0x390262-0x0;var _0x22f0af=_0x3fff[_0x390262];return _0x22f0af;};'use strict';var _=require(_0xf3ff('0x0'));var moment=require(_0xf3ff('0x1'));var BPromise=require(_0xf3ff('0x2'));var md5=require(_0xf3ff('0x3'));var Redis=require(_0xf3ff('0x4'));var config=require(_0xf3ff('0x5'));var logger=require(_0xf3ff('0x6'))(_0xf3ff('0x7'));config[_0xf3ff('0x8')]=_['defaults'](config[_0xf3ff('0x8')],{'host':_0xf3ff('0x9'),'port':0x18eb});var io=require(_0xf3ff('0xa'))(new Redis(config[_0xf3ff('0x8')]));var EmailImap=require(_0xf3ff('0xb'));var EmailSmtp=require('./smtp');var mailAccount=require(_0xf3ff('0xc'));var md5Accounts={};function EmailChannel(_0x128dd1){logger[_0xf3ff('0xd')](_0xf3ff('0xe'));this[_0xf3ff('0xf')]=_0x128dd1['mailAccounts'];this[_0xf3ff('0x10')]={};this['smtp']=new EmailSmtp();}EmailChannel['prototype'][_0xf3ff('0x11')]=function(_0x1dd700){var _0x582144=this[_0xf3ff('0xf')][_0x1dd700];var _0x41b942={'id':_0x582144['id'],'name':_0x582144[_0xf3ff('0x12')],'key':_0x582144[_0xf3ff('0x13')],'active':_0x582144['active'],'Imap':{'status':_0x582144['Imap']['status'],'messageStatus':_0x582144[_0xf3ff('0x14')]['messageStatus'],'total':_0x582144['Imap']['total']}};if(_[_0xf3ff('0x15')](md5Accounts[_0x1dd700])){md5Accounts[_0x1dd700]={};}var _0x3cbadb=md5(JSON['stringify'](_0x41b942));if(md5Accounts[_0x1dd700][_0xf3ff('0x3')]!==_0x3cbadb){md5Accounts[_0x1dd700][_0xf3ff('0x3')]=_0x3cbadb;io['emit'](_0xf3ff('0x16'),_0x41b942);}};EmailChannel['prototype'][_0xf3ff('0x17')]=function(_0x36a733){for(var _0x20afa3 in _0x36a733){if(_0x36a733[_0xf3ff('0x18')](_0x20afa3)){if(_0x36a733[_0x20afa3][_0xf3ff('0x14')]&&_0x36a733[_0x20afa3][_0xf3ff('0x19')]){var _0x531e4c=_0x36a733[_0x20afa3][_0xf3ff('0x14')];if(!this[_0xf3ff('0x10')][_0xf3ff('0x18')](_0x531e4c['id'])){this[_0xf3ff('0x10')][_0x531e4c['id']]=new EmailImap(_0x531e4c,_0x36a733[_0x20afa3][_0xf3ff('0x7')]);this['imapAccounts'][_0x531e4c['id']]['on'](_0xf3ff('0x1a'),this[_0xf3ff('0x1b')][_0xf3ff('0x1c')](this,_0x20afa3));this[_0xf3ff('0x10')][_0x531e4c['id']]['on'](_0xf3ff('0x7'),this['handleImapEmail'][_0xf3ff('0x1c')](this,_0x20afa3));this['imapAccounts'][_0x531e4c['id']]['on'](_0xf3ff('0x1d'),this[_0xf3ff('0x1e')][_0xf3ff('0x1c')](this,_0x20afa3));this[_0xf3ff('0x10')][_0x531e4c['id']]['on'](_0xf3ff('0x1f'),this['handleImapError'][_0xf3ff('0x1c')](this,_0x20afa3));}}else{if(_['isNil'](this[_0xf3ff('0xf')][_0x20afa3][_0xf3ff('0x14')])){this[_0xf3ff('0xf')][_0x20afa3][_0xf3ff('0x14')]={};}this[_0xf3ff('0xf')][_0x20afa3][_0xf3ff('0x14')][_0xf3ff('0x20')]=_0xf3ff('0x21');this[_0xf3ff('0xf')][_0x20afa3][_0xf3ff('0x14')][_0xf3ff('0x22')]='';this[_0xf3ff('0x11')](_0x20afa3);}}}};EmailChannel[_0xf3ff('0x23')][_0xf3ff('0x1b')]=function(_0x5cbb1c,_0x59a350){if(this[_0xf3ff('0xf')][_0x5cbb1c]){this[_0xf3ff('0xf')][_0x5cbb1c][_0xf3ff('0x14')][_0xf3ff('0x20')]=_0xf3ff('0x24');this['mailAccounts'][_0x5cbb1c][_0xf3ff('0x14')]['messageStatus']=_0x59a350['name'];if(_0x59a350[_0xf3ff('0x25')]){this['mailAccounts'][_0x5cbb1c][_0xf3ff('0x14')][_0xf3ff('0x26')]=_0x59a350['messages'][_0xf3ff('0x26')];}return this[_0xf3ff('0x11')](_0x5cbb1c);}};EmailChannel[_0xf3ff('0x23')]['handleImapEmail']=function(_0x2ba490,_0x14a2ef){logger[_0xf3ff('0xd')](_0xf3ff('0x27'),_0x14a2ef[_0xf3ff('0x28')],_0x14a2ef[_0xf3ff('0x29')],_0x14a2ef[_0xf3ff('0x2a')],_0x2ba490);if(this['mailAccounts'][_0x2ba490]){return mailAccount[_0xf3ff('0x2b')](_0x2ba490,_0x14a2ef)[_0xf3ff('0x2c')](function(_0xf337ac){if(_0xf337ac){logger[_0xf3ff('0xd')](_0xf3ff('0x2d'));}})[_0xf3ff('0x2e')](function(_0x553aec){logger[_0xf3ff('0x1f')]('Mail\x20not\x20accepted\x20from\x20routing\x20%s',JSON[_0xf3ff('0x2f')](_0x553aec));});}};EmailChannel['prototype'][_0xf3ff('0x1e')]=function(_0x259c77){if(this['mailAccounts'][_0x259c77]&&this[_0xf3ff('0xf')][_0x259c77][_0xf3ff('0x14')]){if(this[_0xf3ff('0x10')][this[_0xf3ff('0xf')][_0x259c77][_0xf3ff('0x14')]['id']]){delete this[_0xf3ff('0x10')][this[_0xf3ff('0xf')][_0x259c77][_0xf3ff('0x14')]['id']];}this[_0xf3ff('0xf')][_0x259c77]['Imap'][_0xf3ff('0x30')]=moment();this[_0xf3ff('0x11')](_0x259c77);}};EmailChannel[_0xf3ff('0x23')][_0xf3ff('0x31')]=function(_0xe85df8,_0x104586){if(this[_0xf3ff('0xf')][_0xe85df8]){this[_0xf3ff('0xf')][_0xe85df8]['Imap'][_0xf3ff('0x20')]='error';this[_0xf3ff('0xf')][_0xe85df8][_0xf3ff('0x14')][_0xf3ff('0x22')]=_0x104586;return this[_0xf3ff('0x11')](_0xe85df8);}};EmailChannel[_0xf3ff('0x23')][_0xf3ff('0x32')]=function(_0x4ef2a9,_0x30aa0f){return this[_0xf3ff('0x33')][_0xf3ff('0x34')](_0x4ef2a9,_0x30aa0f);};EmailChannel[_0xf3ff('0x23')][_0xf3ff('0x35')]=function(_0x18df1e){var _0x4875b6=this;if(this[_0xf3ff('0xf')][_0x18df1e['id']]){if(_[_0xf3ff('0x15')](this[_0xf3ff('0xf')][_0x18df1e['id']][_0xf3ff('0x36')])){this[_0xf3ff('0xf')][_0x18df1e['id']][_0xf3ff('0x36')]={};}this[_0xf3ff('0xf')][_0x18df1e['id']]['Smtp'][_0xf3ff('0x30')]=moment();return new BPromise(function(_0x2cdb47,_0x35e6a8){return _0x4875b6[_0xf3ff('0x33')][_0xf3ff('0x37')](_0x18df1e)[_0xf3ff('0x2c')](function(_0x18a867){_0x4875b6[_0xf3ff('0xf')][_0x18df1e['id']][_0xf3ff('0x36')]['status']=_0xf3ff('0x38');_0x4875b6[_0xf3ff('0xf')][_0x18df1e['id']][_0xf3ff('0x36')][_0xf3ff('0x22')]='';_0x4875b6[_0xf3ff('0x11')](_0x18df1e['id']);_0x2cdb47(_0x18a867);})[_0xf3ff('0x2e')](function(_0x32180d){_0x4875b6[_0xf3ff('0xf')][_0x18df1e['id']]['Smtp'][_0xf3ff('0x20')]='error';_0x4875b6[_0xf3ff('0xf')][_0x18df1e['id']][_0xf3ff('0x36')]['messageStatus']=_0x32180d;_0x4875b6['emit'](_0x18df1e['id']);_0x35e6a8(_0x32180d);});});}return this[_0xf3ff('0x33')]['verify'](_0x18df1e);};module[_0xf3ff('0x39')]=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x086f=['tls','anonymous@xcally.com','mailbox','handleOpenBox','emit','readUnseen','handleCloseBox','search','UNSEEN','handleReadUnseen','length','fetch','message','closeBox','handleFetchMessage','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','handleFetchEnd','handleFetchError','handleEnd','textCode','hasOwnProperty','exports','imap','lodash','randomstring','mailparser','simpleParser','Iconv','events','EventEmitter','./utils','../../../config/logger','email','INBOX','account','once','ready','handleReady','bind','end','error','handleError','connect','prototype','getAccount','connTimeout','authTimeout','isNil','service','user','password','host','port','autotls','required','getHost'];(function(_0x55e08b,_0x421620){var _0xd1a7ff=function(_0x58c7ff){while(--_0x58c7ff){_0x55e08b['push'](_0x55e08b['shift']());}};_0xd1a7ff(++_0x421620);}(_0x086f,0xd6));var _0xf086=function(_0x2f2217,_0x29b897){_0x2f2217=_0x2f2217-0x0;var _0x10b60e=_0x086f[_0x2f2217];return _0x10b60e;};'use strict';var fs=require('fs');var path=require('path');var util=require('util');var Imap=require(_0xf086('0x0'));var _=require(_0xf086('0x1'));var rs=require(_0xf086('0x2'));var simpleParser=require(_0xf086('0x3'))[_0xf086('0x4')];var Iconv=require('iconv')[_0xf086('0x5')];var EventEmitter=require(_0xf086('0x6'))[_0xf086('0x7')];var utils=require(_0xf086('0x8'));var logger=require(_0xf086('0x9'))(_0xf086('0xa'));function EmailImap(_0x20e8ce,_0x48298e){this['mailbox']=_0xf086('0xb');this[_0xf086('0xc')]=this['getAccount'](_0x20e8ce,_0x48298e);this[_0xf086('0x0')]=new Imap(this['account']);this[_0xf086('0x0')][_0xf086('0xd')](_0xf086('0xe'),this[_0xf086('0xf')][_0xf086('0x10')](this));this[_0xf086('0x0')]['once'](_0xf086('0x11'),this['handleEnd'][_0xf086('0x10')](this));this['imap']['on'](_0xf086('0x12'),this[_0xf086('0x13')]['bind'](this));this[_0xf086('0x0')][_0xf086('0x14')]();}util['inherits'](EmailImap,EventEmitter);EmailImap[_0xf086('0x15')][_0xf086('0x16')]=function(_0x45a901,_0x5934e1){var _0x446c20={'connTimeout':_0x45a901[_0xf086('0x17')]?_0x45a901[_0xf086('0x17')]*0x3e8:0x2710,'authTimeout':_0x45a901[_0xf086('0x18')]?_0x45a901[_0xf086('0x18')]*0x3e8:0x1388};if(_[_0xf086('0x19')](_0x45a901[_0xf086('0x1a')])){if(_0x45a901['authentication']){_0x446c20[_0xf086('0x1b')]=_0x45a901[_0xf086('0x1b')];_0x446c20[_0xf086('0x1c')]=_0x45a901[_0xf086('0x1c')];}_0x446c20[_0xf086('0x1d')]=_0x45a901[_0xf086('0x1d')];_0x446c20['port']=_0x45a901[_0xf086('0x1e')]||0x3e1;if(_0x45a901['tls']){_0x446c20['tls']=!![];}else{_0x446c20['tls']=![];_0x446c20[_0xf086('0x1f')]=_0xf086('0x20');}}else{_0x446c20[_0xf086('0x1b')]=_0x45a901['user'];_0x446c20['password']=_0x45a901[_0xf086('0x1c')];_0x446c20[_0xf086('0x1d')]=utils[_0xf086('0x21')](_0x45a901['service']);_0x446c20[_0xf086('0x1e')]=0x3e1;_0x446c20[_0xf086('0x22')]=!![];}_0x446c20[_0xf086('0xa')]=_0x5934e1||_0x45a901[_0xf086('0x1b')]||_0xf086('0x23');return _0x446c20;};EmailImap[_0xf086('0x15')]['handleReady']=function(){this[_0xf086('0x0')]['openBox'](this[_0xf086('0x24')],![],this[_0xf086('0x25')][_0xf086('0x10')](this));};EmailImap[_0xf086('0x15')][_0xf086('0x25')]=function(_0x5e74c4,_0x2c1ffa){if(_0x5e74c4){this[_0xf086('0x13')](_0x5e74c4,!![]);}else{this[_0xf086('0x26')]('box',_0x2c1ffa);this[_0xf086('0x27')]();}};EmailImap['prototype'][_0xf086('0x28')]=function(_0x251607){if(_0x251607){this[_0xf086('0x13')](_0x251607,!![]);}else{this[_0xf086('0x0')]['end']();}};EmailImap[_0xf086('0x15')]['readUnseen']=function(){this[_0xf086('0x0')][_0xf086('0x29')]([_0xf086('0x2a')],this[_0xf086('0x2b')][_0xf086('0x10')](this));};EmailImap[_0xf086('0x15')][_0xf086('0x2b')]=function(_0x5801ee,_0x14f175){if(_0x5801ee){this[_0xf086('0x13')](_0x5801ee,!![]);}else{if(_0x14f175[_0xf086('0x2c')]){try{var _0x31f2ae=this[_0xf086('0x0')][_0xf086('0x2d')](_0x14f175,{'bodies':'','markSeen':!![]});_0x31f2ae['on'](_0xf086('0x2e'),this['handleFetchMessage']['bind'](this));_0x31f2ae[_0xf086('0xd')](_0xf086('0x12'),this['handleFetchError'][_0xf086('0x10')](this));_0x31f2ae[_0xf086('0xd')](_0xf086('0x11'),this['handleFetchEnd'][_0xf086('0x10')](this));}catch(_0x3e857c){logger['error'](_0x3e857c);}}else{this['imap'][_0xf086('0x2f')](!![],this['handleCloseBox'][_0xf086('0x10')](this));}}};EmailImap['prototype'][_0xf086('0x30')]=function(_0x267472,_0x3372be){_0x267472['on'](_0xf086('0x31'),this[_0xf086('0x32')][_0xf086('0x10')](this));_0x267472['once'](_0xf086('0x33'),this[_0xf086('0x34')][_0xf086('0x10')](this));_0x267472['once'](_0xf086('0x11'),this[_0xf086('0x35')][_0xf086('0x10')](this));};EmailImap[_0xf086('0x15')][_0xf086('0x32')]=function(_0x56f115,_0x41e6bd){simpleParser(_0x56f115,{'Iconv':Iconv},this[_0xf086('0x36')][_0xf086('0x10')](this));};EmailImap['prototype'][_0xf086('0x34')]=function(_0x1cc4bc){};EmailImap[_0xf086('0x15')][_0xf086('0x35')]=function(){};EmailImap['prototype'][_0xf086('0x36')]=function(_0x2c84d2,_0x417997){if(_0x2c84d2){logger[_0xf086('0x12')](_0x2c84d2);}else{var _0x2b6e1e=this;utils[_0xf086('0x37')](this[_0xf086('0xc')],_0x417997,function(_0x29161d){_0x2b6e1e[_0xf086('0x26')](_0xf086('0xa'),_0x29161d);});}};EmailImap[_0xf086('0x15')][_0xf086('0x38')]=function(){this['imap']['closeBox'](!![],this[_0xf086('0x28')][_0xf086('0x10')](this));};EmailImap[_0xf086('0x15')][_0xf086('0x39')]=function(_0x28833f){this['handleError'](_0x28833f);this[_0xf086('0x0')]['closeBox'](!![],this['handleCloseBox'][_0xf086('0x10')](this));};EmailImap[_0xf086('0x15')][_0xf086('0x3a')]=function(){this[_0xf086('0x26')](_0xf086('0x11'));};EmailImap['prototype']['handleError']=function(_0x4457d2,_0xce2537){logger['error']('handleError',this[_0xf086('0xc')][_0xf086('0xa')],JSON['stringify'](_0x4457d2));var _0x302589='';if(_0x4457d2){if(_0x4457d2[_0xf086('0x3b')]){_0x302589=_0x4457d2[_0xf086('0x3b')];}else{for(var _0x52caf8 in _0x4457d2){if(_0x4457d2[_0xf086('0x3c')](_0x52caf8)){_0x302589+=_['upperFirst'](_0x52caf8)+':\x20'+_0x4457d2[_0x52caf8]+'\x0a';}}}}if(_0xce2537){this[_0xf086('0x0')][_0xf086('0x11')]();}else{this[_0xf086('0x26')](_0xf086('0x12'),_0x302589);this[_0xf086('0x26')]('end');}};module[_0xf086('0x3d')]=EmailImap;
\ No newline at end of file
+var _0x80d9=['account','getAccount','bind','end','error','handleError','connect','inherits','prototype','connTimeout','authTimeout','service','authentication','user','password','host','port','tls','autotls','required','openBox','handleOpenBox','emit','handleCloseBox','readUnseen','search','UNSEEN','handleReadUnseen','length','fetch','message','once','handleFetchEnd','handleFetchMessage','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','handleFetchError','closeBox','handleEnd','stringify','textCode','hasOwnProperty','upperFirst','path','imap','lodash','randomstring','simpleParser','iconv','Iconv','events','EventEmitter','email','mailbox','INBOX'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x80d9,0x15c));var _0x980d=function(_0x105363,_0x18615f){_0x105363=_0x105363-0x0;var _0x1d122e=_0x80d9[_0x105363];return _0x1d122e;};'use strict';var fs=require('fs');var path=require(_0x980d('0x0'));var util=require('util');var Imap=require(_0x980d('0x1'));var _=require(_0x980d('0x2'));var rs=require(_0x980d('0x3'));var simpleParser=require('mailparser')[_0x980d('0x4')];var Iconv=require(_0x980d('0x5'))[_0x980d('0x6')];var EventEmitter=require(_0x980d('0x7'))[_0x980d('0x8')];var utils=require('./utils');var logger=require('../../../config/logger')(_0x980d('0x9'));function EmailImap(_0x50854e,_0x5d9eb0){this[_0x980d('0xa')]=_0x980d('0xb');this[_0x980d('0xc')]=this[_0x980d('0xd')](_0x50854e,_0x5d9eb0);this[_0x980d('0x1')]=new Imap(this[_0x980d('0xc')]);this[_0x980d('0x1')]['once']('ready',this['handleReady'][_0x980d('0xe')](this));this[_0x980d('0x1')]['once'](_0x980d('0xf'),this['handleEnd'][_0x980d('0xe')](this));this['imap']['on'](_0x980d('0x10'),this[_0x980d('0x11')][_0x980d('0xe')](this));this[_0x980d('0x1')][_0x980d('0x12')]();}util[_0x980d('0x13')](EmailImap,EventEmitter);EmailImap[_0x980d('0x14')][_0x980d('0xd')]=function(_0x5f524e,_0x182ff9){var _0x138882={'connTimeout':_0x5f524e[_0x980d('0x15')]?_0x5f524e[_0x980d('0x15')]*0x3e8:0x2710,'authTimeout':_0x5f524e[_0x980d('0x16')]?_0x5f524e[_0x980d('0x16')]*0x3e8:0x1388};if(_['isNil'](_0x5f524e[_0x980d('0x17')])){if(_0x5f524e[_0x980d('0x18')]){_0x138882['user']=_0x5f524e[_0x980d('0x19')];_0x138882['password']=_0x5f524e[_0x980d('0x1a')];}_0x138882[_0x980d('0x1b')]=_0x5f524e[_0x980d('0x1b')];_0x138882[_0x980d('0x1c')]=_0x5f524e[_0x980d('0x1c')]||0x3e1;if(_0x5f524e[_0x980d('0x1d')]){_0x138882[_0x980d('0x1d')]=!![];}else{_0x138882[_0x980d('0x1d')]=![];_0x138882[_0x980d('0x1e')]=_0x980d('0x1f');}}else{_0x138882[_0x980d('0x19')]=_0x5f524e['user'];_0x138882['password']=_0x5f524e[_0x980d('0x1a')];_0x138882['host']=utils['getHost'](_0x5f524e[_0x980d('0x17')]);_0x138882[_0x980d('0x1c')]=0x3e1;_0x138882[_0x980d('0x1d')]=!![];}_0x138882[_0x980d('0x9')]=_0x182ff9||_0x5f524e['user']||'anonymous@xcally.com';return _0x138882;};EmailImap[_0x980d('0x14')]['handleReady']=function(){this[_0x980d('0x1')][_0x980d('0x20')](this['mailbox'],![],this[_0x980d('0x21')]['bind'](this));};EmailImap['prototype']['handleOpenBox']=function(_0x43a28f,_0x43f278){if(_0x43a28f){this[_0x980d('0x11')](_0x43a28f,!![]);}else{this[_0x980d('0x22')]('box',_0x43f278);this['readUnseen']();}};EmailImap[_0x980d('0x14')][_0x980d('0x23')]=function(_0x97ca70){if(_0x97ca70){this[_0x980d('0x11')](_0x97ca70,!![]);}else{this[_0x980d('0x1')]['end']();}};EmailImap['prototype'][_0x980d('0x24')]=function(){this[_0x980d('0x1')][_0x980d('0x25')]([_0x980d('0x26')],this[_0x980d('0x27')][_0x980d('0xe')](this));};EmailImap['prototype'][_0x980d('0x27')]=function(_0x471f52,_0xaa9cd6){if(_0x471f52){this[_0x980d('0x11')](_0x471f52,!![]);}else{if(_0xaa9cd6[_0x980d('0x28')]){try{var _0x38470b=this[_0x980d('0x1')][_0x980d('0x29')](_0xaa9cd6,{'bodies':'','markSeen':!![]});_0x38470b['on'](_0x980d('0x2a'),this['handleFetchMessage'][_0x980d('0xe')](this));_0x38470b[_0x980d('0x2b')](_0x980d('0x10'),this['handleFetchError']['bind'](this));_0x38470b[_0x980d('0x2b')]('end',this[_0x980d('0x2c')]['bind'](this));}catch(_0x540922){logger['error'](_0x540922);}}else{this['imap']['closeBox'](!![],this['handleCloseBox']['bind'](this));}}};EmailImap[_0x980d('0x14')][_0x980d('0x2d')]=function(_0x12530d,_0x58dcc4){_0x12530d['on'](_0x980d('0x2e'),this[_0x980d('0x2f')][_0x980d('0xe')](this));_0x12530d[_0x980d('0x2b')](_0x980d('0x30'),this[_0x980d('0x31')][_0x980d('0xe')](this));_0x12530d['once'](_0x980d('0xf'),this[_0x980d('0x32')]['bind'](this));};EmailImap[_0x980d('0x14')]['handleMessageBody']=function(_0x293f7d,_0x10862f){simpleParser(_0x293f7d,{'Iconv':Iconv},this[_0x980d('0x33')]['bind'](this));};EmailImap['prototype']['handleMessageAttributes']=function(_0x1fff24){};EmailImap['prototype']['handleMessageEnd']=function(){};EmailImap[_0x980d('0x14')][_0x980d('0x33')]=function(_0x18a12a,_0x4f4d90){if(_0x18a12a){logger[_0x980d('0x10')](_0x18a12a);}else{var _0x28d8d2=this;utils[_0x980d('0x34')](this[_0x980d('0xc')],_0x4f4d90,function(_0x40d3f6){_0x28d8d2['emit']('email',_0x40d3f6);});}};EmailImap[_0x980d('0x14')]['handleFetchEnd']=function(){this['imap']['closeBox'](!![],this['handleCloseBox'][_0x980d('0xe')](this));};EmailImap[_0x980d('0x14')][_0x980d('0x35')]=function(_0x47a4ac){this[_0x980d('0x11')](_0x47a4ac);this[_0x980d('0x1')][_0x980d('0x36')](!![],this[_0x980d('0x23')][_0x980d('0xe')](this));};EmailImap[_0x980d('0x14')][_0x980d('0x37')]=function(){this['emit'](_0x980d('0xf'));};EmailImap[_0x980d('0x14')][_0x980d('0x11')]=function(_0x5f1f04,_0x2a40fd){logger[_0x980d('0x10')](_0x980d('0x11'),this[_0x980d('0xc')][_0x980d('0x9')],JSON[_0x980d('0x38')](_0x5f1f04));var _0x1ad432='';if(_0x5f1f04){if(_0x5f1f04['textCode']){_0x1ad432=_0x5f1f04[_0x980d('0x39')];}else{for(var _0x512503 in _0x5f1f04){if(_0x5f1f04[_0x980d('0x3a')](_0x512503)){_0x1ad432+=_[_0x980d('0x3b')](_0x512503)+':\x20'+_0x5f1f04[_0x512503]+'\x0a';}}}}if(_0x2a40fd){this[_0x980d('0x1')][_0x980d('0xf')]();}else{this[_0x980d('0x22')](_0x980d('0x10'),_0x1ad432);this[_0x980d('0x22')](_0x980d('0xf'));}};module['exports']=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3718=['prototype','send','createTransport','use','compile','toString','verify','exports','nodemailer','bluebird','nodemailer-plugin-inline-base64'];(function(_0x5e0bed,_0x1e8a9f){var _0x31bfd8=function(_0x54a41b){while(--_0x54a41b){_0x5e0bed['push'](_0x5e0bed['shift']());}};_0x31bfd8(++_0x1e8a9f);}(_0x3718,0x105));var _0x8371=function(_0x2a7db8,_0x1a5781){_0x2a7db8=_0x2a7db8-0x0;var _0x3e43f0=_0x3718[_0x2a7db8];return _0x3e43f0;};'use strict';var nodemailer=require(_0x8371('0x0'));var BPromise=require(_0x8371('0x1'));var inlineBase64=require(_0x8371('0x2'));function EmailSmtp(){}EmailSmtp[_0x8371('0x3')][_0x8371('0x4')]=function(_0x4e83d,_0xd67c3c){return new BPromise(function(_0x346315,_0x33cb13){var _0x1c0a75=nodemailer[_0x8371('0x5')](_0x4e83d);_0x1c0a75[_0x8371('0x6')](_0x8371('0x7'),inlineBase64());_0x1c0a75['sendMail'](_0xd67c3c,function(_0x28d6e6,_0x381d99){if(_0x28d6e6){_0x33cb13(_0x28d6e6[_0x8371('0x8')]());}else{_0x346315(_0x381d99);}});});};EmailSmtp[_0x8371('0x3')][_0x8371('0x9')]=function(_0x3df357){return new BPromise(function(_0x4581df,_0x2cdee5){var _0x35d362=nodemailer[_0x8371('0x5')](_0x3df357);_0x35d362[_0x8371('0x9')](function(_0x2964c3,_0x176b7e){if(_0x2964c3){_0x2cdee5(_0x2964c3['toString']());}else{if(_0x176b7e){_0x4581df(_0x176b7e);}else{_0x2cdee5('Not\x20verifired');}}});});};module[_0x8371('0xa')]=EmailSmtp;
\ No newline at end of file
+var _0xbd6b=['use','compile','sendMail','toString','verify','createTransport','Not\x20verifired','exports','nodemailer','bluebird','prototype','send'];(function(_0x2e8669,_0x4854f7){var _0x12678e=function(_0x410000){while(--_0x410000){_0x2e8669['push'](_0x2e8669['shift']());}};_0x12678e(++_0x4854f7);}(_0xbd6b,0x17c));var _0xbbd6=function(_0x41c0d0,_0x6cdf4c){_0x41c0d0=_0x41c0d0-0x0;var _0x979747=_0xbd6b[_0x41c0d0];return _0x979747;};'use strict';var nodemailer=require(_0xbbd6('0x0'));var BPromise=require(_0xbbd6('0x1'));var inlineBase64=require('nodemailer-plugin-inline-base64');function EmailSmtp(){}EmailSmtp[_0xbbd6('0x2')][_0xbbd6('0x3')]=function(_0x19a2e7,_0x479423){return new BPromise(function(_0x2723b2,_0x8a7937){var _0x2dd261=nodemailer['createTransport'](_0x19a2e7);_0x2dd261[_0xbbd6('0x4')](_0xbbd6('0x5'),inlineBase64());_0x2dd261[_0xbbd6('0x6')](_0x479423,function(_0x30fc6a,_0x3d3747){if(_0x30fc6a){_0x8a7937(_0x30fc6a[_0xbbd6('0x7')]());}else{_0x2723b2(_0x3d3747);}});});};EmailSmtp[_0xbbd6('0x2')][_0xbbd6('0x8')]=function(_0x465d6b){return new BPromise(function(_0x149e8d,_0x4c1729){var _0x3f2168=nodemailer[_0xbbd6('0x9')](_0x465d6b);_0x3f2168[_0xbbd6('0x8')](function(_0x35c054,_0x7f1aea){if(_0x35c054){_0x4c1729(_0x35c054[_0xbbd6('0x7')]());}else{if(_0x7f1aea){_0x149e8d(_0x7f1aea);}else{_0x4c1729(_0xbbd6('0xa'));}}});});};module[_0xbbd6('0xb')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe451=['message','originCc','originTo','bcc','attach','type','attachment','format','writeFileSync','content','push','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','line','isAutoreply','parser','from','subject','messageId','inReplyTo','date','textAsHtml','application/ms-tnef','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>','Attachments','Title','Data','gmail','yahoo','hotmail','imap-mail.outlook.com','outlook.office365.com','127.0.0.1','randomstring','../../../config/logger','email','../../../config/environment','head','value','address','anonymous','generate','name','indexOf','split','slice','join','length','isEmpty','@xcally.com','html','includes','<img','attachments','forEach','filename','replace','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body'];(function(_0x24263b,_0x132646){var _0x235b0b=function(_0x1180ef){while(--_0x1180ef){_0x24263b['push'](_0x24263b['shift']());}};_0x235b0b(++_0x132646);}(_0xe451,0xec));var _0x1e45=function(_0x3f8a69,_0x1726fb){_0x3f8a69=_0x3f8a69-0x0;var _0x4f2072=_0xe451[_0x3f8a69];return _0x4f2072;};'use strict';var _=require('lodash');var moment=require('moment');var random=require(_0x1e45('0x0'));var fs=require('fs');var path=require('path');var util=require('util');var tnef=require('node-tnef');var logger=require(_0x1e45('0x1'))(_0x1e45('0x2'));var config=require(_0x1e45('0x3'));function getAddress(_0x197c03){var _0x5cc973=_[_0x1e45('0x4')](_0x197c03[_0x1e45('0x5')]);return _0x5cc973&&_0x5cc973[_0x1e45('0x6')]?_0x5cc973['address']:_0x1e45('0x7')+random[_0x1e45('0x8')](0x6)+'@xcally.com';}function getFirstName(_0x544710){var _0x144168=_[_0x1e45('0x4')](_0x544710[_0x1e45('0x5')]);if(_0x144168&&_0x144168['name']){if(_0x144168[_0x1e45('0x9')]==_0x144168[_0x1e45('0x6')]){return _0x144168[_0x1e45('0x9')]['substring'](0x0,_0x144168['name'][_0x1e45('0xa')]('@'));}var _0x21d968=_0x144168[_0x1e45('0x9')][_0x1e45('0xb')](/\s+/);return _0x21d968['length']>0x1?_0x21d968[_0x1e45('0xc')](0x0,-0x1)[_0x1e45('0xd')]('\x20'):_0x144168[_0x1e45('0x9')];}return'Anonymous';}function getLastName(_0x2bee5d){var _0x4657c2=_[_0x1e45('0x4')](_0x2bee5d[_0x1e45('0x5')]);if(_0x4657c2&&_0x4657c2['name']){var _0x803a07=_0x4657c2['name'][_0x1e45('0xb')](/\s+/);return _0x803a07[_0x1e45('0xe')]>0x1?_0x803a07['pop']():'';}return'';}function getMails(_0xfdeae3,_0x258249){var _0x3d8420='';for(var _0x1e5b73=0x0;_0x1e5b73<_0x258249[_0x1e45('0x5')][_0x1e45('0xe')];_0x1e5b73+=0x1){if(_0x258249[_0x1e45('0x5')][_0x1e5b73][_0x1e45('0x6')]!==_0xfdeae3){if(!_[_0x1e45('0xf')](_0x3d8420)){_0x3d8420+=',';}_0x3d8420+=_0x258249['value'][_0x1e5b73][_0x1e45('0x9')]||_0x258249['value'][_0x1e5b73]['address']||'';_0x3d8420+='\x20<';_0x3d8420+=_0x258249[_0x1e45('0x5')][_0x1e5b73]['address']?_0x258249['value'][_0x1e5b73]['address']:'anonymous'+random[_0x1e45('0x8')](0x6)+_0x1e45('0x10');_0x3d8420+='>';}}return _0x3d8420;}function parseEmail(_0x4a641c,_0xc0deec,_0x47c19d){if(_0xc0deec['html']){var _0x41cfae=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x41cfae['test'](_0xc0deec['html'])){_0xc0deec[_0x1e45('0x11')]=_0xc0deec[_0x1e45('0x11')]['replace'](_0x41cfae,'');}if(_0xc0deec[_0x1e45('0x11')][_0x1e45('0x12')](_0x1e45('0x13'))){var _0x2d3b49=[];_0xc0deec[_0x1e45('0x14')][_0x1e45('0x15')](_0x39284e=>{_0x2d3b49['push'](_0x39284e[_0x1e45('0x16')]);});var _0x394f7e=/<img.*? _SRC(.*?)[^>]+>/g;var _0xb2fa51=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x25b131=_0xc0deec[_0x1e45('0x11')][_0x1e45('0x17')](_0xb2fa51,_0x1e45('0x18'));var _0x587f3f=_0x25b131[_0x1e45('0x17')](_0x394f7e,_0x1e45('0x19'));for(let _0x13ecc6=0x0;_0x13ecc6<_0x2d3b49[_0x1e45('0xe')];_0x13ecc6++){var _0x56d40a=_0x587f3f[_0x1e45('0x17')](_0x1e45('0x19'),_0x1e45('0x1a')+_0x2d3b49[_0x13ecc6]+'\x20]</span>');_0x587f3f=_0x56d40a;}_0xc0deec[_0x1e45('0x11')]=_0x587f3f;}_0x47c19d['body']=_0xc0deec[_0x1e45('0x11')];}else{_0x47c19d['body']=_0xc0deec['textAsHtml'];}if(_0x47c19d[_0x1e45('0x1b')]){_0x47c19d[_0x1e45('0x1b')]=_0x47c19d[_0x1e45('0x1b')][_0x1e45('0x17')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0xc0deec['to']){_0x47c19d[_0x1e45('0x1c')]['originTo']=getMails(null,_0xc0deec['to']);var _0x2b332d=getMails(_0x4a641c[_0x1e45('0x2')],_0xc0deec['to']);if(!_[_0x1e45('0xf')](_0x2b332d)){_0x47c19d['message']['cc']+=_0x2b332d;}}if(_0xc0deec['cc']){_0x47c19d[_0x1e45('0x1c')][_0x1e45('0x1d')]=getMails(null,_0xc0deec['cc']);var _0x38b363=getMails(_0x4a641c['email'],_0xc0deec['cc']);if(!_[_0x1e45('0xf')](_0x38b363)){if(!_[_0x1e45('0xf')](_0x47c19d[_0x1e45('0x1c')]['cc'])){_0x47c19d[_0x1e45('0x1c')]['cc']+=',';}_0x47c19d['message']['cc']+=_0x38b363;}}if(!_[_0x1e45('0x12')](_0x47c19d[_0x1e45('0x1c')][_0x1e45('0x1e')],_0x4a641c[_0x1e45('0x2')])&&!_[_0x1e45('0x12')](_0x47c19d['message']['originCc'],_0x4a641c['email'])){_0x47c19d['message'][_0x1e45('0x1f')]=_0x4a641c['email'];}if(_0xc0deec[_0x1e45('0x14')]&&_0xc0deec[_0x1e45('0x14')]['length']){_0x47c19d['message'][_0x1e45('0x20')]=_0xc0deec[_0x1e45('0x14')][_0x1e45('0xe')];for(var _0x3e3528=0x0,_0x5947b5,_0x357099,_0x26eef5;_0x3e3528<_0xc0deec[_0x1e45('0x14')][_0x1e45('0xe')];_0x3e3528+=0x1){if(_0xc0deec['attachments'][_0x3e3528][_0x1e45('0x21')]===_0x1e45('0x22')){_0x26eef5=_0xc0deec[_0x1e45('0x14')][_0x3e3528]['filename']||'attachment-'+_0x3e3528;_0x5947b5=util[_0x1e45('0x23')]('%s-%s',Date['now'](),_0x26eef5);_0x357099=path[_0x1e45('0xd')](config['root'],'server/files/attachments/',_0x5947b5);fs[_0x1e45('0x24')](_0x357099,_0xc0deec[_0x1e45('0x14')][_0x3e3528][_0x1e45('0x25')]);_0x47c19d[_0x1e45('0x1c')][_0x1e45('0x14')][_0x1e45('0x26')]({'name':_0x26eef5,'basename':_0x5947b5,'type':_0xc0deec[_0x1e45('0x14')][_0x3e3528][_0x1e45('0x27')],'filepath':_0x357099});}}}if(_0xc0deec[_0x1e45('0x28')]&&_0xc0deec['headerLines'][_0x1e45('0xe')]>0x0){var _0xe82dd7=[_0x1e45('0x29'),_0x1e45('0x2a'),'Precedence:\x20auto_reply'];for(var _0x23f4aa=0x0;_0x23f4aa<_0xc0deec[_0x1e45('0x28')][_0x1e45('0xe')];_0x23f4aa++){var _0x46e501=_['indexOf'](_0xe82dd7,_0xc0deec[_0x1e45('0x28')][_0x23f4aa][_0x1e45('0x2b')]);if(_0x46e501>=0x0){_0x47c19d[_0x1e45('0x2c')]=!![];}}}return _0x47c19d;}exports[_0x1e45('0x2d')]=function(_0x522b40,_0x460d38,_0x2057cd){var _0x143983={'from':getAddress(_0x460d38[_0x1e45('0x2e')]),'firstName':getFirstName(_0x460d38[_0x1e45('0x2e')]),'lastName':getLastName(_0x460d38[_0x1e45('0x2e')]),'mapKey':'email','message':{'from':getMails(_0x522b40[_0x1e45('0x2')],_0x460d38['from']),'to':_0x522b40[_0x1e45('0x2')],'cc':'','subject':_0x460d38[_0x1e45('0x2f')]||'','messageId':_0x460d38[_0x1e45('0x30')],'inReplyTo':_0x460d38[_0x1e45('0x31')],'sentAt':moment(_0x460d38[_0x1e45('0x32')])[_0x1e45('0x23')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x460d38[_0x1e45('0x11')]&&!_0x460d38[_0x1e45('0x33')]){var _0x37034c=_['filter'](_0x460d38[_0x1e45('0x14')],{'contentType':_0x1e45('0x34')});if(_0x37034c[_0x1e45('0xe')]){logger['info'](util['format']('Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system',_0x460d38[_0x1e45('0x30')]));tnef[_0x1e45('0x35')](_[_0x1e45('0x36')](_0x37034c)[_0x1e45('0x25')],function(_0x59c610,_0x8fb6ac){if(_0x8fb6ac){_0x460d38[_0x1e45('0x11')]=_0x8fb6ac[_0x1e45('0x37')]||_0x1e45('0x38');if(_0x8fb6ac[_0x1e45('0x39')]){for(var _0x53e41b=0x0;_0x53e41b<_0x8fb6ac[_0x1e45('0x39')][_0x1e45('0xe')];_0x53e41b++){var _0x3436c1=_0x8fb6ac[_0x1e45('0x39')][_0x53e41b];_0x143983[_0x1e45('0x1c')]['attachments'][_0x1e45('0x26')]({'filename':_0x3436c1[_0x1e45('0x3a')],'content':Buffer[_0x1e45('0x2e')](_0x3436c1[_0x1e45('0x3b')])});}}}_0x2057cd(parseEmail(_0x522b40,_0x460d38,_0x143983));});}else{_0x460d38[_0x1e45('0x11')]=_0x1e45('0x38');_0x2057cd(parseEmail(_0x522b40,_0x460d38,_0x143983));}}else{_0x2057cd(parseEmail(_0x522b40,_0x460d38,_0x143983));}};exports['getHost']=function(_0x39f124){switch(_0x39f124){case _0x1e45('0x3c'):return'imap.gmail.com';case _0x1e45('0x3d'):return'imap.mail.yahoo.com';case _0x1e45('0x3e'):return _0x1e45('0x3f');case'outlook365':return _0x1e45('0x40');}return _0x1e45('0x41');};
\ No newline at end of file
+var _0xbaf0=['Attachments','Data','getHost','gmail','imap.gmail.com','imap.mail.yahoo.com','hotmail','imap-mail.outlook.com','outlook.office365.com','127.0.0.1','moment','randomstring','path','util','node-tnef','../../../config/logger','../../../config/environment','head','value','address','anonymous','generate','name','split','length','slice','join','Anonymous','pop','isEmpty','@xcally.com','html','test','replace','includes','forEach','filename','_SRC','_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20','body','<a\x20target=\x22_blank\x22\x20','message','originTo','email','originCc','bcc','attachments','type','attachment','%s-%s','now','server/files/attachments/','writeFileSync','content','push','contentType','parser','from','subject','messageId','inReplyTo','format','YYYY-MM-DD\x20HH:mm:ss','textAsHtml','filter','info','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','parseBuffer','first','BodyHTML','<p>Empty\x20message</p>'];(function(_0x28f1bb,_0x30b5a4){var _0x1a30d5=function(_0x2aac35){while(--_0x2aac35){_0x28f1bb['push'](_0x28f1bb['shift']());}};_0x1a30d5(++_0x30b5a4);}(_0xbaf0,0x12a));var _0x0baf=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xbaf0[_0x3947c9];return _0x2e7871;};'use strict';var _=require('lodash');var moment=require(_0x0baf('0x0'));var random=require(_0x0baf('0x1'));var fs=require('fs');var path=require(_0x0baf('0x2'));var util=require(_0x0baf('0x3'));var tnef=require(_0x0baf('0x4'));var logger=require(_0x0baf('0x5'))('email');var config=require(_0x0baf('0x6'));function getAddress(_0x1c383e){var _0x2d3fa5=_[_0x0baf('0x7')](_0x1c383e[_0x0baf('0x8')]);return _0x2d3fa5&&_0x2d3fa5[_0x0baf('0x9')]?_0x2d3fa5[_0x0baf('0x9')]:_0x0baf('0xa')+random[_0x0baf('0xb')](0x6)+'@xcally.com';}function getFirstName(_0x11b947){var _0x5f20aa=_[_0x0baf('0x7')](_0x11b947[_0x0baf('0x8')]);if(_0x5f20aa&&_0x5f20aa[_0x0baf('0xc')]){var _0x2f46e8=_0x5f20aa[_0x0baf('0xc')][_0x0baf('0xd')](/\s+/);return _0x2f46e8[_0x0baf('0xe')]?_0x2f46e8[_0x0baf('0xf')](0x0,-0x1)[_0x0baf('0x10')]('\x20'):_0x5f20aa[_0x0baf('0xc')];}return _0x0baf('0x11');}function getLastName(_0x51d93c){var _0x5a53e2=_[_0x0baf('0x7')](_0x51d93c[_0x0baf('0x8')]);if(_0x5a53e2&&_0x5a53e2[_0x0baf('0xc')]){var _0x13df17=_0x5a53e2['name'][_0x0baf('0xd')](/\s+/);return _0x13df17['length']>0x1?_0x13df17[_0x0baf('0x12')]():'';}return'';}function getMails(_0x1f50c3,_0x7fbf67){var _0x2bc381='';for(var _0xb8339e=0x0;_0xb8339e<_0x7fbf67[_0x0baf('0x8')]['length'];_0xb8339e+=0x1){if(_0x7fbf67['value'][_0xb8339e][_0x0baf('0x9')]!==_0x1f50c3){if(!_[_0x0baf('0x13')](_0x2bc381)){_0x2bc381+=',';}_0x2bc381+=_0x7fbf67[_0x0baf('0x8')][_0xb8339e][_0x0baf('0xc')]||_0x7fbf67[_0x0baf('0x8')][_0xb8339e][_0x0baf('0x9')]||'';_0x2bc381+='\x20<';_0x2bc381+=_0x7fbf67['value'][_0xb8339e][_0x0baf('0x9')]?_0x7fbf67[_0x0baf('0x8')][_0xb8339e][_0x0baf('0x9')]:_0x0baf('0xa')+random[_0x0baf('0xb')](0x6)+_0x0baf('0x14');_0x2bc381+='>';}}return _0x2bc381;}function parseEmail(_0x4ff793,_0x5cff5d,_0x1410ec){if(_0x5cff5d[_0x0baf('0x15')]){var _0x32e839=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x32e839[_0x0baf('0x16')](_0x5cff5d[_0x0baf('0x15')])){_0x5cff5d[_0x0baf('0x15')]=_0x5cff5d[_0x0baf('0x15')][_0x0baf('0x17')](_0x32e839,'');}if(_0x5cff5d[_0x0baf('0x15')][_0x0baf('0x18')]('<img')){var _0x334bd6=[];_0x5cff5d['attachments'][_0x0baf('0x19')](_0x5dbf00=>{_0x334bd6['push'](_0x5dbf00[_0x0baf('0x1a')]);});var _0x48a0e9=/<img.*? _SRC(.*?)[^\>]+>/g;var _0x4be1b9=/src=\"data:image\/([a-zA-Z]*);base64,([^\"]*)\"/g;var _0x47c4b=_0x5cff5d[_0x0baf('0x15')][_0x0baf('0x17')](_0x4be1b9,_0x0baf('0x1b'));var _0x3a1ba1=_0x47c4b['replace'](_0x48a0e9,_0x0baf('0x1c'));for(let _0x4681c5=0x0;_0x4681c5<_0x334bd6[_0x0baf('0xe')];_0x4681c5++){var _0x366e71=_0x3a1ba1[_0x0baf('0x17')](_0x0baf('0x1c'),_0x0baf('0x1d')+_0x334bd6[_0x4681c5]+'\x20]</span>');_0x3a1ba1=_0x366e71;}_0x5cff5d[_0x0baf('0x15')]=_0x3a1ba1;}_0x1410ec[_0x0baf('0x1e')]=_0x5cff5d[_0x0baf('0x15')];}else{_0x1410ec[_0x0baf('0x1e')]=_0x5cff5d['textAsHtml'];}if(_0x1410ec[_0x0baf('0x1e')]){_0x1410ec[_0x0baf('0x1e')]=_0x1410ec['body'][_0x0baf('0x17')](/<a\s+/gi,_0x0baf('0x1f'));}if(_0x5cff5d['to']){_0x1410ec[_0x0baf('0x20')][_0x0baf('0x21')]=getMails(null,_0x5cff5d['to']);var _0xd14f0f=getMails(_0x4ff793[_0x0baf('0x22')],_0x5cff5d['to']);if(!_[_0x0baf('0x13')](_0xd14f0f)){_0x1410ec['message']['cc']+=_0xd14f0f;}}if(_0x5cff5d['cc']){_0x1410ec[_0x0baf('0x20')][_0x0baf('0x23')]=getMails(null,_0x5cff5d['cc']);var _0x37be4e=getMails(_0x4ff793[_0x0baf('0x22')],_0x5cff5d['cc']);if(!_[_0x0baf('0x13')](_0x37be4e)){if(!_[_0x0baf('0x13')](_0x1410ec[_0x0baf('0x20')]['cc'])){_0x1410ec[_0x0baf('0x20')]['cc']+=',';}_0x1410ec[_0x0baf('0x20')]['cc']+=_0x37be4e;}}if(!_[_0x0baf('0x18')](_0x1410ec[_0x0baf('0x20')][_0x0baf('0x21')],_0x4ff793[_0x0baf('0x22')])&&!_[_0x0baf('0x18')](_0x1410ec['message'][_0x0baf('0x23')],_0x4ff793['email'])){_0x1410ec[_0x0baf('0x20')][_0x0baf('0x24')]=_0x4ff793[_0x0baf('0x22')];}if(_0x5cff5d[_0x0baf('0x25')]&&_0x5cff5d['attachments'][_0x0baf('0xe')]){_0x1410ec[_0x0baf('0x20')]['attach']=_0x5cff5d[_0x0baf('0x25')][_0x0baf('0xe')];for(var _0x62a2ed=0x0,_0xbaa9a7,_0x1f60bd,_0x1b0991;_0x62a2ed<_0x5cff5d[_0x0baf('0x25')][_0x0baf('0xe')];_0x62a2ed+=0x1){if(_0x5cff5d['attachments'][_0x62a2ed][_0x0baf('0x26')]===_0x0baf('0x27')){_0x1b0991=_0x5cff5d['attachments'][_0x62a2ed][_0x0baf('0x1a')]||'attachment-'+_0x62a2ed;_0xbaa9a7=util['format'](_0x0baf('0x28'),Date[_0x0baf('0x29')](),_0x1b0991);_0x1f60bd=path['join'](config['root'],_0x0baf('0x2a'),_0xbaa9a7);fs[_0x0baf('0x2b')](_0x1f60bd,_0x5cff5d[_0x0baf('0x25')][_0x62a2ed][_0x0baf('0x2c')]);_0x1410ec[_0x0baf('0x20')][_0x0baf('0x25')][_0x0baf('0x2d')]({'name':_0x1b0991,'basename':_0xbaa9a7,'type':_0x5cff5d[_0x0baf('0x25')][_0x62a2ed][_0x0baf('0x2e')],'filepath':_0x1f60bd});}}}return _0x1410ec;}exports[_0x0baf('0x2f')]=function(_0x200864,_0x148540,_0x354cb1){var _0x229ea6={'from':getAddress(_0x148540['from']),'firstName':getFirstName(_0x148540[_0x0baf('0x30')]),'lastName':getLastName(_0x148540[_0x0baf('0x30')]),'mapKey':'email','message':{'from':getMails(_0x200864[_0x0baf('0x22')],_0x148540[_0x0baf('0x30')]),'to':_0x200864[_0x0baf('0x22')],'cc':'','subject':_0x148540[_0x0baf('0x31')]||'','messageId':_0x148540[_0x0baf('0x32')],'inReplyTo':_0x148540[_0x0baf('0x33')],'sentAt':moment(_0x148540['date'])[_0x0baf('0x34')](_0x0baf('0x35')),'attach':![],'attachments':[]}};if(!_0x148540['html']&&!_0x148540[_0x0baf('0x36')]){var _0x412e6f=_[_0x0baf('0x37')](_0x148540[_0x0baf('0x25')],{'contentType':'application/ms-tnef'});if(_0x412e6f[_0x0baf('0xe')]){logger[_0x0baf('0x38')](util[_0x0baf('0x34')](_0x0baf('0x39'),_0x148540[_0x0baf('0x32')]));tnef[_0x0baf('0x3a')](_[_0x0baf('0x3b')](_0x412e6f)[_0x0baf('0x2c')],function(_0xce1bf0,_0x355033){if(_0x355033){_0x148540['html']=_0x355033[_0x0baf('0x3c')]||_0x0baf('0x3d');if(_0x355033[_0x0baf('0x3e')]){for(var _0x339aff=0x0;_0x339aff<_0x355033[_0x0baf('0x3e')]['length'];_0x339aff++){var _0x1e7364=_0x355033[_0x0baf('0x3e')][_0x339aff];_0x229ea6[_0x0baf('0x20')][_0x0baf('0x25')][_0x0baf('0x2d')]({'filename':_0x1e7364['Title'],'content':new Buffer(_0x1e7364[_0x0baf('0x3f')])});}}}_0x354cb1(parseEmail(_0x200864,_0x148540,_0x229ea6));});}else{_0x148540[_0x0baf('0x15')]=_0x0baf('0x3d');_0x354cb1(parseEmail(_0x200864,_0x148540,_0x229ea6));}}else{_0x354cb1(parseEmail(_0x200864,_0x148540,_0x229ea6));}};exports[_0x0baf('0x40')]=function(_0x41599f){switch(_0x41599f){case _0x0baf('0x41'):return _0x0baf('0x42');case'yahoo':return _0x0baf('0x43');case _0x0baf('0x44'):return _0x0baf('0x45');case'outlook365':return _0x0baf('0x46');}return _0x0baf('0x47');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x18af=['Imap','Smtp','exports','lodash','name','Service','key','SERV'];(function(_0x538c54,_0x5a2e4a){var _0x504d9f=function(_0x23a3ff){while(--_0x23a3ff){_0x538c54['push'](_0x538c54['shift']());}};_0x504d9f(++_0x5a2e4a);}(_0x18af,0xd3));var _0xf18a=function(_0x3b6ed5,_0x1b3fa9){_0x3b6ed5=_0x3b6ed5-0x0;var _0x24b72d=_0x18af[_0x3b6ed5];return _0x24b72d;};'use strict';var _=require(_0xf18a('0x0'));function MailAccount(_0x58e84d){this['id']=_0x58e84d['id']||0x0;this[_0xf18a('0x1')]=_0x58e84d[_0xf18a('0x1')]||_0xf18a('0x2');this[_0xf18a('0x3')]=_0x58e84d[_0xf18a('0x3')]||_0xf18a('0x4');this['active']=_0x58e84d['active']||![];this[_0xf18a('0x5')]=_0x58e84d[_0xf18a('0x5')]||[];this[_0xf18a('0x6')]=_0x58e84d[_0xf18a('0x6')]||[];}module[_0xf18a('0x7')]=MailAccount;
\ No newline at end of file
+var _0xcca7=['SERV','active','Imap','Smtp','exports','lodash','name','Service','key'];(function(_0x1f7c12,_0x2c69f5){var _0x492d1b=function(_0x405011){while(--_0x405011){_0x1f7c12['push'](_0x1f7c12['shift']());}};_0x492d1b(++_0x2c69f5);}(_0xcca7,0x1e2));var _0x7cca=function(_0x915de9,_0xabf9e5){_0x915de9=_0x915de9-0x0;var _0x274129=_0xcca7[_0x915de9];return _0x274129;};'use strict';var _=require(_0x7cca('0x0'));function MailAccount(_0x4d5de7){this['id']=_0x4d5de7['id']||0x0;this['name']=_0x4d5de7[_0x7cca('0x1')]||_0x7cca('0x2');this[_0x7cca('0x3')]=_0x4d5de7[_0x7cca('0x3')]||_0x7cca('0x4');this[_0x7cca('0x5')]=_0x4d5de7[_0x7cca('0x5')]||![];this[_0x7cca('0x6')]=_0x4d5de7[_0x7cca('0x6')]||[];this[_0x7cca('0x7')]=_0x4d5de7[_0x7cca('0x7')]||[];}module[_0x7cca('0x8')]=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c67=['mergeFromDatabase','initMailAccounts','length','isUndefined','merge','lodash','mailAccounts','mapKeys','hasOwnProperty','prototype'];(function(_0x30a503,_0x3664f8){var _0x1ba630=function(_0x24a290){while(--_0x24a290){_0x30a503['push'](_0x30a503['shift']());}};_0x1ba630(++_0x3664f8);}(_0x4c67,0xe1));var _0x74c6=function(_0x2d7ba1,_0x3f8aa3){_0x2d7ba1=_0x2d7ba1-0x0;var _0x39317a=_0x4c67[_0x2d7ba1];return _0x39317a;};'use strict';var _=require(_0x74c6('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this[_0x74c6('0x1')]={};};function freeIsNotKey(_0x2d7990,_0x3352a3,_0x2ef7f4){var _0x183deb=_[_0x74c6('0x2')](_0x2d7990,function(_0x14da2f,_0x17cc70){return _0x14da2f[_0x2ef7f4];});for(var _0x59cc2f in _0x3352a3){if(_0x3352a3[_0x74c6('0x3')](_0x59cc2f)){if(!_0x183deb[_0x59cc2f]){delete _0x3352a3[_0x59cc2f];}}}}Realtime[_0x74c6('0x4')][_0x74c6('0x5')]=function(_0x479007,_0x1d5203){for(var _0x10fa7f in _0x1d5203){if(_0x479007[_0x74c6('0x3')](_0x10fa7f)){_0x479007[_0x10fa7f]=_0x1d5203[_0x10fa7f];}}};Realtime[_0x74c6('0x4')][_0x74c6('0x6')]=function(){var _0x5bd361=this;return function(_0x1d0322){if(_0x1d0322){freeIsNotKey(_0x1d0322,_0x5bd361[_0x74c6('0x1')],'id');for(var _0x19ebfa=0x0,_0x2bccbe={},_0x101a9e={};_0x19ebfa<_0x1d0322[_0x74c6('0x7')];_0x19ebfa+=0x1){_0x2bccbe=_0x1d0322[_0x19ebfa];if(_[_0x74c6('0x8')](_0x5bd361[_0x74c6('0x1')][_0x2bccbe['id']])){_0x5bd361[_0x74c6('0x1')][_0x2bccbe['id']]=new MailAccount(_0x2bccbe);}else{_[_0x74c6('0x9')](_0x5bd361[_0x74c6('0x1')][_0x2bccbe['id']],_0x2bccbe);}}}return _0x5bd361[_0x74c6('0x1')];};};module['exports']=Realtime;
\ No newline at end of file
+var _0x0de8=['hasOwnProperty','mergeFromDatabase','prototype','length','isUndefined','merge','exports','lodash','../model/mailAccount','mailAccounts'];(function(_0x1499d0,_0x3fdde1){var _0x176a26=function(_0x3672d6){while(--_0x3672d6){_0x1499d0['push'](_0x1499d0['shift']());}};_0x176a26(++_0x3fdde1);}(_0x0de8,0x179));var _0x80de=function(_0x928b87,_0x53480a){_0x928b87=_0x928b87-0x0;var _0x1e7638=_0x0de8[_0x928b87];return _0x1e7638;};'use strict';var _=require(_0x80de('0x0'));var MailAccount=require(_0x80de('0x1'));var Realtime=function(){this[_0x80de('0x2')]={};};function freeIsNotKey(_0x595907,_0x487f49,_0x40af4b){var _0x91e1d1=_['mapKeys'](_0x595907,function(_0x379533,_0xf6cd14){return _0x379533[_0x40af4b];});for(var _0x15c8b4 in _0x487f49){if(_0x487f49[_0x80de('0x3')](_0x15c8b4)){if(!_0x91e1d1[_0x15c8b4]){delete _0x487f49[_0x15c8b4];}}}}Realtime['prototype'][_0x80de('0x4')]=function(_0x1ae30b,_0x3e1907){for(var _0x389f77 in _0x3e1907){if(_0x1ae30b['hasOwnProperty'](_0x389f77)){_0x1ae30b[_0x389f77]=_0x3e1907[_0x389f77];}}};Realtime[_0x80de('0x5')]['initMailAccounts']=function(){var _0x52afcd=this;return function(_0x2e2930){if(_0x2e2930){freeIsNotKey(_0x2e2930,_0x52afcd['mailAccounts'],'id');for(var _0x3e33a2=0x0,_0x375d9f={},_0x5e5aca={};_0x3e33a2<_0x2e2930[_0x80de('0x6')];_0x3e33a2+=0x1){_0x375d9f=_0x2e2930[_0x3e33a2];if(_[_0x80de('0x7')](_0x52afcd[_0x80de('0x2')][_0x375d9f['id']])){_0x52afcd['mailAccounts'][_0x375d9f['id']]=new MailAccount(_0x375d9f);}else{_[_0x80de('0x8')](_0x52afcd[_0x80de('0x2')][_0x375d9f['id']],_0x375d9f);}}}return _0x52afcd['mailAccounts'];};};module[_0x80de('0x9')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14b2=['name','service','email','key','ListId','Imap','MailServerOut','Smtp','getMailAccount','notify','Request','NotifyMailAccount','../client','getMailAccounts','GetMailAccount'];(function(_0x4ead4f,_0xd20203){var _0x36c27b=function(_0x794185){while(--_0x794185){_0x4ead4f['push'](_0x4ead4f['shift']());}};_0x36c27b(++_0xd20203);}(_0x14b2,0x1a1));var _0x214b=function(_0x189288,_0x15b263){_0x189288=_0x189288-0x0;var _0x499296=_0x14b2[_0x189288];return _0x499296;};'use strict';var client=require(_0x214b('0x0'));exports[_0x214b('0x1')]=function(){return function(){return client['Request'](_0x214b('0x2'),{'options':{'attributes':['id',_0x214b('0x3'),_0x214b('0x4'),_0x214b('0x5'),'active',_0x214b('0x6'),_0x214b('0x7'),'TemplateId'],'raw':![],'include':[{'model':'MailServerIn','as':_0x214b('0x8')},{'model':_0x214b('0x9'),'as':_0x214b('0xa')}]},'log':_0x214b('0xb')});};};exports[_0x214b('0xc')]=function(_0x117ddd,_0x4cd18e){return client[_0x214b('0xd')]('NotifyMailAccount',{'account':{'id':_0x117ddd},'body':_0x4cd18e,'log':_0x214b('0xe')});};
\ No newline at end of file
+var _0xa4a9=['MailServerIn','MailServerOut','getMailAccount','notify','NotifyMailAccount','getMailAccounts','Request','GetMailAccount','name','email','key','ListId','TemplateId'];(function(_0x5d10c2,_0x4b0a49){var _0x57c7c4=function(_0x38ab70){while(--_0x38ab70){_0x5d10c2['push'](_0x5d10c2['shift']());}};_0x57c7c4(++_0x4b0a49);}(_0xa4a9,0x7a));var _0x9a4a=function(_0xc69fda,_0x367f93){_0xc69fda=_0xc69fda-0x0;var _0x721842=_0xa4a9[_0xc69fda];return _0x721842;};'use strict';var client=require('../client');exports[_0x9a4a('0x0')]=function(){return function(){return client[_0x9a4a('0x1')](_0x9a4a('0x2'),{'options':{'attributes':['id',_0x9a4a('0x3'),'service',_0x9a4a('0x4'),'active',_0x9a4a('0x5'),_0x9a4a('0x6'),_0x9a4a('0x7')],'raw':![],'include':[{'model':_0x9a4a('0x8'),'as':'Imap'},{'model':_0x9a4a('0x9'),'as':'Smtp'}]},'log':_0x9a4a('0xa')});};};exports[_0x9a4a('0xb')]=function(_0x96c0ef,_0x43b571){return client[_0x9a4a('0x1')](_0x9a4a('0xc'),{'account':{'id':_0x96c0ef},'body':_0x43b571,'log':_0x9a4a('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x68f0=['Request','loginMailFrequency','GetSettings','getSettings'];(function(_0x16ee58,_0x165eb5){var _0x4985cf=function(_0x4806bb){while(--_0x4806bb){_0x16ee58['push'](_0x16ee58['shift']());}};_0x4985cf(++_0x165eb5);}(_0x68f0,0x123));var _0x068f=function(_0x42f154,_0x32110c){_0x42f154=_0x42f154-0x0;var _0x471993=_0x68f0[_0x42f154];return _0x471993;};'use strict';var client=require('../client');exports[_0x068f('0x0')]=function(){return client[_0x068f('0x1')]('ShowSetting',{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x068f('0x2')]},'log':_0x068f('0x3')});};
\ No newline at end of file
+var _0x1752=['loginMailFrequency','GetSettings','Request','ShowSetting'];(function(_0x1d00dd,_0x239265){var _0x2f71a3=function(_0xc03c83){while(--_0xc03c83){_0x1d00dd['push'](_0x1d00dd['shift']());}};_0x2f71a3(++_0x239265);}(_0x1752,0x1da));var _0x2175=function(_0x3e4a6b,_0x878fc5){_0x3e4a6b=_0x3e4a6b-0x0;var _0x3b3ed5=_0x1752[_0x3e4a6b];return _0x3b3ed5;};'use strict';var client=require('../client');exports['getSettings']=function(){return client[_0x2175('0x0')](_0x2175('0x1'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x2175('0x2')]},'log':_0x2175('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1c546c,_0x5c57cb){_0x1c546c=_0x1c546c-0x0;var _0x2cc384=_0xa9e0[_0x1c546c];return _0x2cc384;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
+var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3a6efd,_0x2a5102){_0x3a6efd=_0x3a6efd-0x0;var _0x487b9a=_0xa9e0[_0x3a6efd];return _0x487b9a;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4930=['ioredis','../../config/environment','timeout','listen','port','websocket','polling','redis','defaults','localhost','adapter','socket.io-redis','../../config/triggers','default','listening','log','Express\x20server\x20listening\x20on\x20port\x20%d!','lodash','sticky-session'];(function(_0x2d7364,_0x2ed3f4){var _0x390e7c=function(_0x2a9eb5){while(--_0x2a9eb5){_0x2d7364['push'](_0x2d7364['shift']());}};_0x390e7c(++_0x2ed3f4);}(_0x4930,0x1d9));var _0x0493=function(_0x14c34b,_0x5440a8){_0x14c34b=_0x14c34b-0x0;var _0x49e14c=_0x4930[_0x14c34b];return _0x49e14c;};'use strict';var _=require(_0x0493('0x0'));var http=require('http');var express=require('express');var sticky=require(_0x0493('0x1'));var Redis=require(_0x0493('0x2'));var config=require(_0x0493('0x3'));var app=express();var server=http['createServer'](app);server[_0x0493('0x4')]=0xdbba0;if(sticky[_0x0493('0x5')](server,config[_0x0493('0x6')])){var socketio=require('socket.io')(server,{'transports':[_0x0493('0x7'),_0x0493('0x8')]});config[_0x0493('0x9')]=_[_0x0493('0xa')](config[_0x0493('0x9')],{'host':_0x0493('0xb'),'port':0x18eb});socketio[_0x0493('0xc')](require(_0x0493('0xd'))({'pubClient':new Redis(config[_0x0493('0x9')]),'subClient':new Redis(config[_0x0493('0x9')])}));require(_0x0493('0xe'))[_0x0493('0xf')]();require('../../config/socketio')['default'](socketio);require('../../config/express')['default'](app);require('../../routes')[_0x0493('0xf')](app);}else{server['once'](_0x0493('0x10'),function(){console[_0x0493('0x11')](_0x0493('0x12'),config[_0x0493('0x6')]);});}exports=module['exports']=app;
\ No newline at end of file
+var _0xc7b3=['../../config/environment','createServer','timeout','port','socket.io','websocket','polling','redis','adapter','socket.io-redis','../../config/triggers','default','../../config/socketio','../../config/express','../../routes','once','log','exports','lodash','http','express','sticky-session','ioredis'];(function(_0x668298,_0x1cec8d){var _0x4df90c=function(_0x46414a){while(--_0x46414a){_0x668298['push'](_0x668298['shift']());}};_0x4df90c(++_0x1cec8d);}(_0xc7b3,0x199));var _0x3c7b=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0xc7b3[_0x8c43de];return _0xa6591b;};'use strict';var _=require(_0x3c7b('0x0'));var http=require(_0x3c7b('0x1'));var express=require(_0x3c7b('0x2'));var sticky=require(_0x3c7b('0x3'));var Redis=require(_0x3c7b('0x4'));var config=require(_0x3c7b('0x5'));var app=express();var server=http[_0x3c7b('0x6')](app);server[_0x3c7b('0x7')]=0xdbba0;if(sticky['listen'](server,config[_0x3c7b('0x8')])){var socketio=require(_0x3c7b('0x9'))(server,{'transports':[_0x3c7b('0xa'),_0x3c7b('0xb')]});config[_0x3c7b('0xc')]=_['defaults'](config[_0x3c7b('0xc')],{'host':'localhost','port':0x18eb});socketio[_0x3c7b('0xd')](require(_0x3c7b('0xe'))({'pubClient':new Redis(config[_0x3c7b('0xc')]),'subClient':new Redis(config[_0x3c7b('0xc')])}));require(_0x3c7b('0xf'))[_0x3c7b('0x10')]();require(_0x3c7b('0x11'))[_0x3c7b('0x10')](socketio);require(_0x3c7b('0x12'))[_0x3c7b('0x10')](app);require(_0x3c7b('0x13'))[_0x3c7b('0x10')](app);}else{server[_0x3c7b('0x14')]('listening',function(){console[_0x3c7b('0x15')]('Express\x20server\x20listening\x20on\x20port\x20%d!',config[_0x3c7b('0x8')]);});}exports=module[_0x3c7b('0x16')]=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1527=['rpc','routing','error','message','result','catch','exports','jayson/promise','bluebird','client','http','then'];(function(_0x487b0c,_0x14ff74){var _0x1adbdc=function(_0x2e7b9d){while(--_0x2e7b9d){_0x487b0c['push'](_0x487b0c['shift']());}};_0x1adbdc(++_0x14ff74);}(_0x1527,0x157));var _0x7152=function(_0x3fc97b,_0x20ca29){_0x3fc97b=_0x3fc97b-0x0;var _0x3a0c82=_0x1527[_0x3fc97b];return _0x3a0c82;};'use strict';var jayson=require(_0x7152('0x0'));var BPromise=require(_0x7152('0x1'));var logger=require('../../config/logger')('routing');var client=jayson[_0x7152('0x2')][_0x7152('0x3')]({'port':0x2329});client['Request']=function(_0x172e3f,_0x2ae7e2){return new BPromise(function(_0x159267,_0x35082){return client['request'](_0x172e3f,_0x2ae7e2)[_0x7152('0x4')](function(_0xa70ad3){logger['debug'](_0x7152('0x5'),_0x7152('0x6'),_0x172e3f,_0x2ae7e2,_0xa70ad3);if(_0xa70ad3[_0x7152('0x7')]){logger[_0x7152('0x7')](_0x7152('0x5'),_0x7152('0x6'),_0x172e3f,_0xa70ad3[_0x7152('0x7')][_0x7152('0x8')],_0x2ae7e2);return _0x35082(_0xa70ad3[_0x7152('0x7')]['message']);}else{return _0x159267(_0xa70ad3[_0x7152('0x9')]);}})[_0x7152('0xa')](function(_0x308b14){logger[_0x7152('0x7')]('rpc',_0x7152('0x6'),_0x172e3f,_0x308b14,_0x2ae7e2);return _0x35082(_0x308b14);});});};module[_0x7152('0xb')]=client;
\ No newline at end of file
+var _0xa9f9=['message','catch','jayson/promise','bluebird','../../config/logger','routing','http','Request','then','rpc','error'];(function(_0x32bd85,_0x4a8919){var _0x45fff9=function(_0x4d8d7c){while(--_0x4d8d7c){_0x32bd85['push'](_0x32bd85['shift']());}};_0x45fff9(++_0x4a8919);}(_0xa9f9,0xde));var _0x9a9f=function(_0x151530,_0x843d28){_0x151530=_0x151530-0x0;var _0x1155f1=_0xa9f9[_0x151530];return _0x1155f1;};'use strict';var jayson=require(_0x9a9f('0x0'));var BPromise=require(_0x9a9f('0x1'));var logger=require(_0x9a9f('0x2'))(_0x9a9f('0x3'));var client=jayson['client'][_0x9a9f('0x4')]({'port':0x2329});client[_0x9a9f('0x5')]=function(_0x85f890,_0x4aa865){return new BPromise(function(_0xba8b2,_0x3b2ddd){return client['request'](_0x85f890,_0x4aa865)[_0x9a9f('0x6')](function(_0x40bf23){logger['debug'](_0x9a9f('0x7'),'routing',_0x85f890,_0x4aa865,_0x40bf23);if(_0x40bf23['error']){logger[_0x9a9f('0x8')](_0x9a9f('0x7'),'routing',_0x85f890,_0x40bf23[_0x9a9f('0x8')][_0x9a9f('0x9')],_0x4aa865);return _0x3b2ddd(_0x40bf23[_0x9a9f('0x8')][_0x9a9f('0x9')]);}else{return _0xba8b2(_0x40bf23['result']);}})[_0x9a9f('0xa')](function(_0x3a15b3){logger['error']('rpc',_0x9a9f('0x3'),_0x85f890,_0x3a15b3,_0x4aa865);return _0x3b2ddd(_0x3a15b3);});});};module['exports']=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd979=['resolve','then','getAgents','initAgents','getIntervals','initIntervals','getOpenchannelQueues','initOpenchannelQueues','getChatQueues','initChatQueues','getSmsQueues','initSmsQueues','getMailQueues','initMailQueues','initFaxQueues','getWhatsappQueues','initWhatsappQueues','listen','catch','bluebird','./server','./rpc/interval','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/smsQueue','./rpc/mailQueue','./rpc/whatsappQueue'];(function(_0x518bf2,_0x1d3a3d){var _0x3fc7f1=function(_0x4f2ae3){while(--_0x4f2ae3){_0x518bf2['push'](_0x518bf2['shift']());}};_0x3fc7f1(++_0x1d3a3d);}(_0xd979,0x1de));var _0x9d97=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xd979[_0x3dd15e];return _0x231fd0;};'use strict';var BPromise=require(_0x9d97('0x0'));var server=require(_0x9d97('0x1'));var Realtime=require('./realtime');var user=require('./rpc/user');var interval=require(_0x9d97('0x2'));var openchannelQueue=require(_0x9d97('0x3'));var chatQueue=require(_0x9d97('0x4'));var smsQueue=require(_0x9d97('0x5'));var mailQueue=require(_0x9d97('0x6'));var faxQueue=require('./rpc/faxQueue');var whatsappQueue=require(_0x9d97('0x7'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x9d97('0x8')]()[_0x9d97('0x9')](user[_0x9d97('0xa')]())['then'](realtime[_0x9d97('0xb')]())[_0x9d97('0x9')](interval[_0x9d97('0xc')]())['then'](realtime[_0x9d97('0xd')]())[_0x9d97('0x9')](openchannelQueue[_0x9d97('0xe')]())[_0x9d97('0x9')](realtime[_0x9d97('0xf')]())[_0x9d97('0x9')](chatQueue[_0x9d97('0x10')]())[_0x9d97('0x9')](realtime[_0x9d97('0x11')]())[_0x9d97('0x9')](smsQueue[_0x9d97('0x12')]())[_0x9d97('0x9')](realtime[_0x9d97('0x13')]())[_0x9d97('0x9')](mailQueue[_0x9d97('0x14')]())[_0x9d97('0x9')](realtime[_0x9d97('0x15')]())[_0x9d97('0x9')](faxQueue['getFaxQueues']())[_0x9d97('0x9')](realtime[_0x9d97('0x16')]())[_0x9d97('0x9')](whatsappQueue[_0x9d97('0x17')]())[_0x9d97('0x9')](realtime[_0x9d97('0x18')]())[_0x9d97('0x9')](function(){return realtime;});}function main(){return server[_0x9d97('0x19')](realtime)[_0x9d97('0x9')](function(_0x524eb1){return initRealtime();})[_0x9d97('0x9')](function(_0x439787){return setInterval(initRealtime,0x1388);})[_0x9d97('0x1a')](function(_0x2e125f){console['log'](_0x2e125f);});}main();
\ No newline at end of file
+var _0xfcf1=['./rpc/whatsappQueue','resolve','initAgents','then','getOpenchannelQueues','initOpenchannelQueues','getChatQueues','initChatQueues','getSmsQueues','initSmsQueues','getFaxQueues','getWhatsappQueues','initWhatsappQueues','listen','log','bluebird','./realtime','./rpc/user','./rpc/interval','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/smsQueue','./rpc/faxQueue'];(function(_0x30da51,_0x391131){var _0xc0465=function(_0x3a5f75){while(--_0x3a5f75){_0x30da51['push'](_0x30da51['shift']());}};_0xc0465(++_0x391131);}(_0xfcf1,0x196));var _0x1fcf=function(_0x229327,_0x225488){_0x229327=_0x229327-0x0;var _0x33ec21=_0xfcf1[_0x229327];return _0x33ec21;};'use strict';var BPromise=require(_0x1fcf('0x0'));var server=require('./server');var Realtime=require(_0x1fcf('0x1'));var user=require(_0x1fcf('0x2'));var interval=require(_0x1fcf('0x3'));var openchannelQueue=require(_0x1fcf('0x4'));var chatQueue=require(_0x1fcf('0x5'));var smsQueue=require(_0x1fcf('0x6'));var mailQueue=require('./rpc/mailQueue');var faxQueue=require(_0x1fcf('0x7'));var whatsappQueue=require(_0x1fcf('0x8'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x1fcf('0x9')]()['then'](user['getAgents']())['then'](realtime[_0x1fcf('0xa')]())[_0x1fcf('0xb')](interval['getIntervals']())['then'](realtime['initIntervals']())['then'](openchannelQueue[_0x1fcf('0xc')]())['then'](realtime[_0x1fcf('0xd')]())[_0x1fcf('0xb')](chatQueue[_0x1fcf('0xe')]())[_0x1fcf('0xb')](realtime[_0x1fcf('0xf')]())[_0x1fcf('0xb')](smsQueue[_0x1fcf('0x10')]())[_0x1fcf('0xb')](realtime[_0x1fcf('0x11')]())[_0x1fcf('0xb')](mailQueue['getMailQueues']())['then'](realtime['initMailQueues']())[_0x1fcf('0xb')](faxQueue[_0x1fcf('0x12')]())[_0x1fcf('0xb')](realtime['initFaxQueues']())[_0x1fcf('0xb')](whatsappQueue[_0x1fcf('0x13')]())['then'](realtime[_0x1fcf('0x14')]())[_0x1fcf('0xb')](function(){return realtime;});}function main(){return server[_0x1fcf('0x15')](realtime)['then'](function(_0x709ca7){return initRealtime();})[_0x1fcf('0xb')](function(_0x26dd46){return setInterval(initRealtime,0x1388);})['catch'](function(_0x434aa0){console[_0x1fcf('0x16')](_0x434aa0);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['init','parse','map','object','lodash','util','events','EventEmitter','isNil','register','ignoreFactChanges','inherits','prototype','rules','isArray','concat','isObject','push','sync','filter','activeRules','orderBy','asc','execute','result','clone','name','ruleRef','call','next','isEqual','nextTick','restart','length','condition','matchPath','noop','findRules','matches','turn','prioritize','priority','toJSON','toString','consequence','fromJSON'];(function(_0x34619f,_0x39ae69){var _0xb5eaf0=function(_0x5ed73f){while(--_0x5ed73f){_0x34619f['push'](_0x34619f['shift']());}};_0xb5eaf0(++_0x39ae69);}(_0x814b,0x1a2));var _0xb814=function(_0x24f31b,_0x44b8f3){_0x24f31b=_0x24f31b-0x0;var _0x488401=_0x814b[_0x24f31b];return _0x488401;};'use strict';var _=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var EventEmitter=require(_0xb814('0x2'))[_0xb814('0x3')];function RuleEngine(_0xfbb64b,_0x477725){this['init']();if(!_[_0xb814('0x4')](_0xfbb64b)){this[_0xb814('0x5')](_0xfbb64b);}if(_0x477725){this[_0xb814('0x6')]=_0x477725[_0xb814('0x6')];}return this;}util[_0xb814('0x7')](RuleEngine,EventEmitter);RuleEngine[_0xb814('0x8')]['init']=function(_0x3b0829){this[_0xb814('0x9')]=[];this['activeRules']=[];};RuleEngine[_0xb814('0x8')][_0xb814('0x5')]=function(_0x186d5a){if(Array[_0xb814('0xa')](_0x186d5a)){this[_0xb814('0x9')]=this[_0xb814('0x9')][_0xb814('0xb')](_0x186d5a);}else if(_0x186d5a!==null&&_[_0xb814('0xc')](_0x186d5a)){this[_0xb814('0x9')][_0xb814('0xd')](_0x186d5a);}this[_0xb814('0xe')]();};RuleEngine['prototype'][_0xb814('0xe')]=function(){this['activeRules']=this[_0xb814('0x9')][_0xb814('0xf')](function(_0x35b10d){if(_[_0xb814('0x4')](_0x35b10d['on'])){_0x35b10d['on']=!![];}if(_0x35b10d['on']===!![]){return _0x35b10d;}});this[_0xb814('0x10')]=_[_0xb814('0x11')](this[_0xb814('0x10')],['p'],[_0xb814('0x12')]);};RuleEngine[_0xb814('0x8')][_0xb814('0x13')]=function(_0x3f4881,_0x44fb96){var _0x17f5bd=![];_0x3f4881[_0xb814('0x14')]=!![];var _0x303aca=_[_0xb814('0x15')](_0x3f4881);var _0x45e0d0=_[_0xb814('0x15')](_0x3f4881);var _0x125ce2=this[_0xb814('0x10')];var _0x7a21ef=[];var _0x48c9df=this[_0xb814('0x6')];(function FnRuleLoop(_0x55ba16){var _0x270598={'rules':function(){return _0x125ce2;},'rule':function(){return _0x125ce2[_0x55ba16];},'when':function(_0xfac75b){if(_0xfac75b){var _0x4c3007=_0x125ce2[_0x55ba16]['consequence'];_0x4c3007['ruleRef']=_0x125ce2[_0x55ba16]['id']||_0x125ce2[_0x55ba16][_0xb814('0x16')]||'index_'+_0x55ba16;process['nextTick'](function(){_0x7a21ef[_0xb814('0xd')](_0x4c3007[_0xb814('0x17')]);_0x4c3007[_0xb814('0x18')](_0x303aca,_0x270598);});}else{process['nextTick'](function(){_0x270598[_0xb814('0x19')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x17f5bd=!![];return FnRuleLoop(0x0);},'next':function(_0x531032){if(!_0x48c9df&&!_[_0xb814('0x1a')](_0x45e0d0,_0x303aca)){_0x45e0d0=_[_0xb814('0x15')](_0x303aca);process[_0xb814('0x1b')](function(){_0x270598[_0xb814('0x1c')]();});}else{process[_0xb814('0x1b')](function(){if(_[_0xb814('0x4')](_0x531032)){return FnRuleLoop(_0x55ba16+0x1);}else{return FnRuleLoop(_0x531032);}});}}};if(_0x55ba16<_0x125ce2[_0xb814('0x1d')]&&_0x17f5bd===![]){var _0x594470=_0x125ce2[_0x55ba16][_0xb814('0x1e')];_0x594470['call'](_0x303aca,_0x270598);}else{process[_0xb814('0x1b')](function(){_0x303aca[_0xb814('0x1f')]=_0x7a21ef;return _0x44fb96?_0x44fb96(_0x303aca):_[_0xb814('0x20')]();});}}(0x0));};RuleEngine[_0xb814('0x8')][_0xb814('0x21')]=function(_0xb9e57d){if(_[_0xb814('0x4')](_0xb9e57d)){return this['rules'];}else{var _0x392222=_[_0xb814('0x22')](_0xb9e57d);return _[_0xb814('0xf')](this[_0xb814('0x9')],_0x392222);}};RuleEngine[_0xb814('0x8')][_0xb814('0x23')]=function(_0x3f0150,_0x1e4e89){var _0x5a6291=_0x3f0150==='on'||_0x3f0150==='ON'?!![]:![];var _0x271aa8=this[_0xb814('0x21')](_0x1e4e89);for(var _0x52ed64=0x0,_0x9008b2=_0x271aa8[_0xb814('0x1d')];_0x52ed64<_0x9008b2;_0x52ed64+=0x1){_0x271aa8[_0x52ed64]['on']=_0x5a6291;}this[_0xb814('0xe')]();};RuleEngine['prototype'][_0xb814('0x24')]=function(_0x2051d0,_0x58c3ca){_0x2051d0=parseInt(_0x2051d0,0xa);var _0x338a28=this['findRules'](_0x58c3ca);for(var _0x6efe9a=0x0,_0x5f3e9b=_0x338a28['length'];_0x6efe9a<_0x5f3e9b;_0x6efe9a+=0x1){_0x338a28[_0x6efe9a][_0xb814('0x25')]=_0x2051d0;}this['sync']();};RuleEngine[_0xb814('0x8')][_0xb814('0x26')]=function(){var _0x2b91bd=this['rules'];if(_0x2b91bd instanceof Array){_0x2b91bd=_0x2b91bd['map'](function(_0x26d3a9){_0x26d3a9[_0xb814('0x1e')]=_0x26d3a9['condition'][_0xb814('0x27')]();_0x26d3a9[_0xb814('0x28')]=_0x26d3a9[_0xb814('0x28')][_0xb814('0x27')]();return _0x26d3a9;});}else if(!_[_0xb814('0x4')](_0x2b91bd)){_0x2b91bd[_0xb814('0x1e')]=_0x2b91bd[_0xb814('0x1e')]['toString']();_0x2b91bd[_0xb814('0x28')]=_0x2b91bd[_0xb814('0x28')][_0xb814('0x27')]();}return _0x2b91bd;};RuleEngine[_0xb814('0x8')][_0xb814('0x29')]=function(_0x4ff31a){this[_0xb814('0x2a')]();if(_['isString'](_0x4ff31a)){_0x4ff31a=JSON[_0xb814('0x2b')](_0x4ff31a);}if(_0x4ff31a instanceof Array){_0x4ff31a=_0x4ff31a[_0xb814('0x2c')](function(_0xe0f509){_0xe0f509['condition']=eval('('+_0xe0f509[_0xb814('0x1e')]+')');_0xe0f509[_0xb814('0x28')]=eval('('+_0xe0f509['consequence']+')');return _0xe0f509;});}else if(_0x4ff31a!==null&&typeof _0x4ff31a==_0xb814('0x2d')){_0x4ff31a[_0xb814('0x1e')]=eval('('+_0x4ff31a[_0xb814('0x1e')]+')');_0x4ff31a[_0xb814('0x28')]=eval('('+_0x4ff31a[_0xb814('0x28')]+')');}this[_0xb814('0x5')](_0x4ff31a);};module['exports']=RuleEngine;
\ No newline at end of file
+var _0x326f=['orderBy','asc','result','clone','consequence','nextTick','push','isEqual','condition','call','matchPath','noop','matches','filter','turn','length','prioritize','findRules','priority','toJSON','map','toString','fromJSON','isString','lodash','EventEmitter','init','isNil','register','ignoreFactChanges','inherits','prototype','rules','activeRules','concat','isObject','sync'];(function(_0x23e3b0,_0x5f2901){var _0x13c675=function(_0x4be356){while(--_0x4be356){_0x23e3b0['push'](_0x23e3b0['shift']());}};_0x13c675(++_0x5f2901);}(_0x326f,0xd1));var _0xf326=function(_0x5563fb,_0x426dcc){_0x5563fb=_0x5563fb-0x0;var _0x10db42=_0x326f[_0x5563fb];return _0x10db42;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var EventEmitter=require('events')[_0xf326('0x1')];function RuleEngine(_0x330ddb,_0x22aabf){this[_0xf326('0x2')]();if(!_[_0xf326('0x3')](_0x330ddb)){this[_0xf326('0x4')](_0x330ddb);}if(_0x22aabf){this[_0xf326('0x5')]=_0x22aabf[_0xf326('0x5')];}return this;}util[_0xf326('0x6')](RuleEngine,EventEmitter);RuleEngine[_0xf326('0x7')]['init']=function(_0x3c254d){this[_0xf326('0x8')]=[];this[_0xf326('0x9')]=[];};RuleEngine[_0xf326('0x7')]['register']=function(_0x4c206c){if(Array['isArray'](_0x4c206c)){this[_0xf326('0x8')]=this[_0xf326('0x8')][_0xf326('0xa')](_0x4c206c);}else if(_0x4c206c!==null&&_[_0xf326('0xb')](_0x4c206c)){this[_0xf326('0x8')]['push'](_0x4c206c);}this[_0xf326('0xc')]();};RuleEngine['prototype'][_0xf326('0xc')]=function(){this['activeRules']=this[_0xf326('0x8')]['filter'](function(_0x3162f9){if(_[_0xf326('0x3')](_0x3162f9['on'])){_0x3162f9['on']=!![];}if(_0x3162f9['on']===!![]){return _0x3162f9;}});this['activeRules']=_[_0xf326('0xd')](this[_0xf326('0x9')],['p'],[_0xf326('0xe')]);};RuleEngine[_0xf326('0x7')]['execute']=function(_0x45c1b6,_0x5204ee){var _0x54bd1a=![];_0x45c1b6[_0xf326('0xf')]=!![];var _0x11f6d2=_[_0xf326('0x10')](_0x45c1b6);var _0xa63d1a=_[_0xf326('0x10')](_0x45c1b6);var _0x287a2a=this[_0xf326('0x9')];var _0x2cf2ca=[];var _0x5a682a=this[_0xf326('0x5')];(function FnRuleLoop(_0x453100){var _0x18bee3={'rules':function(){return _0x287a2a;},'rule':function(){return _0x287a2a[_0x453100];},'when':function(_0x31ffb9){if(_0x31ffb9){var _0xcef2b5=_0x287a2a[_0x453100][_0xf326('0x11')];_0xcef2b5['ruleRef']=_0x287a2a[_0x453100]['id']||_0x287a2a[_0x453100]['name']||'index_'+_0x453100;process[_0xf326('0x12')](function(){_0x2cf2ca[_0xf326('0x13')](_0xcef2b5['ruleRef']);_0xcef2b5['call'](_0x11f6d2,_0x18bee3);});}else{process[_0xf326('0x12')](function(){_0x18bee3['next']();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x54bd1a=!![];return FnRuleLoop(0x0);},'next':function(_0x5b6d3c){if(!_0x5a682a&&!_[_0xf326('0x14')](_0xa63d1a,_0x11f6d2)){_0xa63d1a=_[_0xf326('0x10')](_0x11f6d2);process['nextTick'](function(){_0x18bee3['restart']();});}else{process[_0xf326('0x12')](function(){if(_[_0xf326('0x3')](_0x5b6d3c)){return FnRuleLoop(_0x453100+0x1);}else{return FnRuleLoop(_0x5b6d3c);}});}}};if(_0x453100<_0x287a2a['length']&&_0x54bd1a===![]){var _0x337ed5=_0x287a2a[_0x453100][_0xf326('0x15')];_0x337ed5[_0xf326('0x16')](_0x11f6d2,_0x18bee3);}else{process[_0xf326('0x12')](function(){_0x11f6d2[_0xf326('0x17')]=_0x2cf2ca;return _0x5204ee?_0x5204ee(_0x11f6d2):_[_0xf326('0x18')]();});}}(0x0));};RuleEngine['prototype']['findRules']=function(_0x4f31f6){if(_[_0xf326('0x3')](_0x4f31f6)){return this[_0xf326('0x8')];}else{var _0x2cd45a=_[_0xf326('0x19')](_0x4f31f6);return _[_0xf326('0x1a')](this[_0xf326('0x8')],_0x2cd45a);}};RuleEngine['prototype'][_0xf326('0x1b')]=function(_0xa3c0b,_0x212d5d){var _0x581531=_0xa3c0b==='on'||_0xa3c0b==='ON'?!![]:![];var _0x1617d2=this['findRules'](_0x212d5d);for(var _0x4a9abf=0x0,_0x6a8e89=_0x1617d2[_0xf326('0x1c')];_0x4a9abf<_0x6a8e89;_0x4a9abf+=0x1){_0x1617d2[_0x4a9abf]['on']=_0x581531;}this[_0xf326('0xc')]();};RuleEngine['prototype'][_0xf326('0x1d')]=function(_0x292500,_0x55790d){_0x292500=parseInt(_0x292500,0xa);var _0x225776=this[_0xf326('0x1e')](_0x55790d);for(var _0xd77aba=0x0,_0x18d110=_0x225776[_0xf326('0x1c')];_0xd77aba<_0x18d110;_0xd77aba+=0x1){_0x225776[_0xd77aba][_0xf326('0x1f')]=_0x292500;}this[_0xf326('0xc')]();};RuleEngine[_0xf326('0x7')][_0xf326('0x20')]=function(){var _0x349a03=this['rules'];if(_0x349a03 instanceof Array){_0x349a03=_0x349a03[_0xf326('0x21')](function(_0x424104){_0x424104[_0xf326('0x15')]=_0x424104['condition'][_0xf326('0x22')]();_0x424104[_0xf326('0x11')]=_0x424104[_0xf326('0x11')]['toString']();return _0x424104;});}else if(!_['isNil'](_0x349a03)){_0x349a03[_0xf326('0x15')]=_0x349a03[_0xf326('0x15')][_0xf326('0x22')]();_0x349a03[_0xf326('0x11')]=_0x349a03[_0xf326('0x11')][_0xf326('0x22')]();}return _0x349a03;};RuleEngine[_0xf326('0x7')][_0xf326('0x23')]=function(_0x580374){this[_0xf326('0x2')]();if(_[_0xf326('0x24')](_0x580374)){_0x580374=JSON['parse'](_0x580374);}if(_0x580374 instanceof Array){_0x580374=_0x580374[_0xf326('0x21')](function(_0x4e5d7c){_0x4e5d7c[_0xf326('0x15')]=eval('('+_0x4e5d7c['condition']+')');_0x4e5d7c['consequence']=eval('('+_0x4e5d7c[_0xf326('0x11')]+')');return _0x4e5d7c;});}else if(_0x580374!==null&&typeof _0x580374=='object'){_0x580374[_0xf326('0x15')]=eval('('+_0x580374['condition']+')');_0x580374[_0xf326('0x11')]=eval('('+_0x580374[_0xf326('0x11')]+')');}this[_0xf326('0x4')](_0x580374);};module['exports']=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4036=['bluebird','client','http','request','then','error','message','result','catch','sendMailMessage'];(function(_0xb9d78f,_0x56ebf3){var _0x486fe2=function(_0x1c678f){while(--_0x1c678f){_0xb9d78f['push'](_0xb9d78f['shift']());}};_0x486fe2(++_0x56ebf3);}(_0x4036,0x14a));var _0x6403=function(_0xf5e2f3,_0x4531f0){_0xf5e2f3=_0xf5e2f3-0x0;var _0x35e8e2=_0x4036[_0xf5e2f3];return _0x35e8e2;};'use strict';var BPromise=require(_0x6403('0x0'));var jayson=require('jayson/promise');var client=jayson[_0x6403('0x1')][_0x6403('0x2')]({'port':0x232b});function request(_0x505059,_0x38f8f9){return new BPromise(function(_0x55992a,_0x1c026f){return client[_0x6403('0x3')](_0x505059,_0x38f8f9)[_0x6403('0x4')](function(_0x55067c){if(_0x55067c[_0x6403('0x5')]){return _0x1c026f(_0x55067c[_0x6403('0x5')][_0x6403('0x6')]);}else{return _0x55992a(_0x55067c[_0x6403('0x7')]);}})[_0x6403('0x8')](function(_0x2e4df6){return _0x1c026f(_0x2e4df6);});});}exports[_0x6403('0x9')]=function(_0x4c0e60,_0x471e29){return request('SendMail',{'account':_0x4c0e60,'message':_0x471e29});};
\ No newline at end of file
+var _0xf5af=['result','catch','SendMail','bluebird','jayson/promise','client','request','then','error','message'];(function(_0x28b7a2,_0x40aa58){var _0x404e08=function(_0x5e2894){while(--_0x5e2894){_0x28b7a2['push'](_0x28b7a2['shift']());}};_0x404e08(++_0x40aa58);}(_0xf5af,0x8f));var _0xff5a=function(_0x1069b9,_0x4b31bc){_0x1069b9=_0x1069b9-0x0;var _0x5659a2=_0xf5af[_0x1069b9];return _0x5659a2;};'use strict';var BPromise=require(_0xff5a('0x0'));var jayson=require(_0xff5a('0x1'));var client=jayson[_0xff5a('0x2')]['http']({'port':0x232b});function request(_0x16bb5b,_0x5c31a0){return new BPromise(function(_0x2bfe39,_0x44b49a){return client[_0xff5a('0x3')](_0x16bb5b,_0x5c31a0)[_0xff5a('0x4')](function(_0x49cad1){if(_0x49cad1[_0xff5a('0x5')]){return _0x44b49a(_0x49cad1['error'][_0xff5a('0x6')]);}else{return _0x2bfe39(_0x49cad1[_0xff5a('0x7')]);}})[_0xff5a('0x8')](function(_0x4c2d81){return _0x44b49a(_0x4c2d81);});});}exports['sendMailMessage']=function(_0x171325,_0x3daa04){return request(_0xff5a('0x9'),{'account':_0x171325,'message':_0x3daa04});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fbd=['smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','busy','busyQueue','prototype','CurrentCapacity','Capacity','maxcapacity','updateRealtime','mail','chat','openchannel','sms','whatsapp','length','StatusTime','format','Status','chatStatusTime','openchannelCurrentCapacity','md5','exports','lodash','moment','ioredis','../../../config/environment','redis','defaults','localhost','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','faxCurrentCapacity','smsStatus'];(function(_0x4fbf65,_0x4a3fee){var _0x1b9fcb=function(_0x4ba67f){while(--_0x4ba67f){_0x4fbf65['push'](_0x4fbf65['shift']());}};_0x1b9fcb(++_0x4a3fee);}(_0x8fbd,0x173));var _0xd8fb=function(_0x22c1e2,_0x131256){_0x22c1e2=_0x22c1e2-0x0;var _0x554458=_0x8fbd[_0x22c1e2];return _0x554458;};'use strict';var _=require(_0xd8fb('0x0'));var moment=require(_0xd8fb('0x1'));var md5=require('md5');var Redis=require(_0xd8fb('0x2'));var config=require(_0xd8fb('0x3'));config[_0xd8fb('0x4')]=_[_0xd8fb('0x5')](config['redis'],{'host':_0xd8fb('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xd8fb('0x4')]));function Agent(_0x48fb56){this['id']=_0x48fb56['id']||0x0;this['name']=_0x48fb56[_0xd8fb('0x7')]||'';this[_0xd8fb('0x8')]=_0x48fb56['online']||!![];this['voicePause']=_0x48fb56[_0xd8fb('0x9')]||![];this['chatPause']=_0x48fb56[_0xd8fb('0xa')]||![];this[_0xd8fb('0xb')]=_0x48fb56[_0xd8fb('0xb')]||![];this[_0xd8fb('0xc')]=_0x48fb56['faxPause']||![];this[_0xd8fb('0xd')]=_0x48fb56[_0xd8fb('0xd')]||![];this[_0xd8fb('0xe')]=_0x48fb56['openchannelPause']||![];this[_0xd8fb('0xf')]=_0xd8fb('0x10');this['chatStatusTime']=0x0;this[_0xd8fb('0x11')]=_0x48fb56['chatCapacity']||0x0;this[_0xd8fb('0x12')]=0x0;this[_0xd8fb('0x13')]=_0xd8fb('0x10');this[_0xd8fb('0x14')]=0x0;this[_0xd8fb('0x15')]=_0x48fb56[_0xd8fb('0x15')]||0x0;this[_0xd8fb('0x16')]=0x0;this[_0xd8fb('0x17')]='unknown';this[_0xd8fb('0x18')]=0x0;this[_0xd8fb('0x19')]=_0x48fb56[_0xd8fb('0x19')]||0x0;this[_0xd8fb('0x1a')]=0x0;this[_0xd8fb('0x1b')]=_0xd8fb('0x10');this[_0xd8fb('0x1c')]=0x0;this[_0xd8fb('0x1d')]=_0x48fb56[_0xd8fb('0x1d')]||0x0;this[_0xd8fb('0x1e')]=0x0;this['whatsappStatus']=_0xd8fb('0x10');this[_0xd8fb('0x1f')]=0x0;this['whatsappCapacity']=_0x48fb56[_0xd8fb('0x20')]||0x0;this[_0xd8fb('0x21')]=0x0;this[_0xd8fb('0x22')]=_0xd8fb('0x10');this[_0xd8fb('0x23')]=0x0;this[_0xd8fb('0x24')]=_0x48fb56[_0xd8fb('0x24')]||0x0;this['openchannelCurrentCapacity']=0x0;this[_0xd8fb('0x25')]=![];this[_0xd8fb('0x26')]=undefined;this['md5']='';this['updateRealtime']();}Agent[_0xd8fb('0x27')]['getChannelStatus']=function(_0xe0bb84){if(this[_0xe0bb84+_0xd8fb('0x28')]>0x0){if(this[_0xe0bb84+'Capacity']>0x0&&this[_0xe0bb84+_0xd8fb('0x28')]>=this[_0xe0bb84+_0xd8fb('0x29')]){return _0xd8fb('0x2a');}else{return'working';}}else{return'idle';}};Agent[_0xd8fb('0x27')][_0xd8fb('0x2b')]=function(){var _0xa3eab4=[_0xd8fb('0x2c'),_0xd8fb('0x2d'),_0xd8fb('0x2e'),'fax',_0xd8fb('0x2f'),_0xd8fb('0x30')];for(var _0xcd0d8=0x0;_0xcd0d8<_0xa3eab4[_0xd8fb('0x31')];_0xcd0d8+=0x1){var _0x7508c=this['getChannelStatus'](_0xa3eab4[_0xcd0d8]);if(this[_0xa3eab4[_0xcd0d8]+'Status']!==_0x7508c){this[_0xa3eab4[_0xcd0d8]+_0xd8fb('0x32')]=_['toNumber'](moment()[_0xd8fb('0x33')]('x'));}this[_0xa3eab4[_0xcd0d8]+_0xd8fb('0x34')]=_0x7508c;}var _0x2dc743={'id':this['id'],'name':this[_0xd8fb('0x7')],'online':this[_0xd8fb('0x8')],'voicePause':this['voicePause'],'chatPause':this['chatPause'],'mailPause':this[_0xd8fb('0xb')],'smsPause':this[_0xd8fb('0xd')],'faxPause':this[_0xd8fb('0xc')],'openchannelPause':this['openchannelPause'],'chatStatus':this[_0xd8fb('0xf')],'chatStatusTime':this[_0xd8fb('0x35')],'chatCapacity':this[_0xd8fb('0x11')],'chatCurrentCapacity':this[_0xd8fb('0x12')],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0xd8fb('0x14')],'mailCapacity':this['mailCapacity'],'mailCurrentCapacity':this[_0xd8fb('0x16')],'faxStatus':this[_0xd8fb('0x17')],'faxStatusTime':this[_0xd8fb('0x18')],'faxCapacity':this[_0xd8fb('0x19')],'faxCurrentCapacity':this[_0xd8fb('0x1a')],'smsStatus':this['smsStatus'],'smsStatusTime':this[_0xd8fb('0x1c')],'smsCapacity':this[_0xd8fb('0x1d')],'smsCurrentCapacity':this[_0xd8fb('0x1e')],'whatsappStatus':this['whatsappStatus'],'whatsappStatusTime':this[_0xd8fb('0x1f')],'whatsappCapacity':this[_0xd8fb('0x20')],'whatsappCurrentCapacity':this['whatsappCurrentCapacity'],'openchannelStatus':this[_0xd8fb('0x22')],'openchannelStatusTime':this['openchannelStatusTime'],'openchannelCapacity':this[_0xd8fb('0x24')],'openchannelCurrentCapacity':this[_0xd8fb('0x36')],'busy':this[_0xd8fb('0x25')],'busyQueue':this[_0xd8fb('0x26')]};var _0x14da26=md5(JSON['stringify'](_0x2dc743));if(this[_0xd8fb('0x37')]!==_0x14da26){this[_0xd8fb('0x37')]=_0x14da26;io['emit']('user:save',_0x2dc743);}};module[_0xd8fb('0x38')]=Agent;
\ No newline at end of file
+var _0x3166=['length','Status','StatusTime','toNumber','format','faxStatusTime','smsStatus','stringify','emit','exports','moment','md5','ioredis','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxCapacity','faxCurrentCapacity','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busy','busyQueue','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','idle','updateRealtime','chat','openchannel','fax','whatsapp'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x3166,0xbb));var _0x6316=function(_0x5e6d8b,_0x4d649e){_0x5e6d8b=_0x5e6d8b-0x0;var _0x32b9dd=_0x3166[_0x5e6d8b];return _0x32b9dd;};'use strict';var _=require('lodash');var moment=require(_0x6316('0x0'));var md5=require(_0x6316('0x1'));var Redis=require(_0x6316('0x2'));var config=require('../../../config/environment');config[_0x6316('0x3')]=_[_0x6316('0x4')](config['redis'],{'host':_0x6316('0x5'),'port':0x18eb});var io=require(_0x6316('0x6'))(new Redis(config['redis']));function Agent(_0x150a68){this['id']=_0x150a68['id']||0x0;this[_0x6316('0x7')]=_0x150a68[_0x6316('0x7')]||'';this[_0x6316('0x8')]=_0x150a68['online']||!![];this[_0x6316('0x9')]=_0x150a68[_0x6316('0x9')]||![];this['chatPause']=_0x150a68[_0x6316('0xa')]||![];this[_0x6316('0xb')]=_0x150a68[_0x6316('0xb')]||![];this[_0x6316('0xc')]=_0x150a68[_0x6316('0xc')]||![];this[_0x6316('0xd')]=_0x150a68[_0x6316('0xd')]||![];this[_0x6316('0xe')]=_0x150a68[_0x6316('0xe')]||![];this[_0x6316('0xf')]=_0x6316('0x10');this['chatStatusTime']=0x0;this[_0x6316('0x11')]=_0x150a68[_0x6316('0x11')]||0x0;this[_0x6316('0x12')]=0x0;this[_0x6316('0x13')]=_0x6316('0x10');this[_0x6316('0x14')]=0x0;this['mailCapacity']=_0x150a68[_0x6316('0x15')]||0x0;this[_0x6316('0x16')]=0x0;this[_0x6316('0x17')]=_0x6316('0x10');this['faxStatusTime']=0x0;this[_0x6316('0x18')]=_0x150a68[_0x6316('0x18')]||0x0;this[_0x6316('0x19')]=0x0;this['smsStatus']=_0x6316('0x10');this[_0x6316('0x1a')]=0x0;this['smsCapacity']=_0x150a68[_0x6316('0x1b')]||0x0;this[_0x6316('0x1c')]=0x0;this[_0x6316('0x1d')]=_0x6316('0x10');this['whatsappStatusTime']=0x0;this['whatsappCapacity']=_0x150a68[_0x6316('0x1e')]||0x0;this[_0x6316('0x1f')]=0x0;this[_0x6316('0x20')]=_0x6316('0x10');this[_0x6316('0x21')]=0x0;this[_0x6316('0x22')]=_0x150a68[_0x6316('0x22')]||0x0;this[_0x6316('0x23')]=0x0;this[_0x6316('0x24')]=![];this[_0x6316('0x25')]=undefined;this[_0x6316('0x1')]='';this['updateRealtime']();}Agent[_0x6316('0x26')][_0x6316('0x27')]=function(_0x220e6d){if(this[_0x220e6d+_0x6316('0x28')]>0x0){if(this[_0x220e6d+_0x6316('0x29')]>0x0&&this[_0x220e6d+_0x6316('0x28')]>=this[_0x220e6d+_0x6316('0x29')]){return _0x6316('0x2a');}else{return'working';}}else{return _0x6316('0x2b');}};Agent[_0x6316('0x26')][_0x6316('0x2c')]=function(){var _0x308dd7=['mail',_0x6316('0x2d'),_0x6316('0x2e'),_0x6316('0x2f'),'sms',_0x6316('0x30')];for(var _0x443260=0x0;_0x443260<_0x308dd7[_0x6316('0x31')];_0x443260+=0x1){var _0x16a64b=this[_0x6316('0x27')](_0x308dd7[_0x443260]);if(this[_0x308dd7[_0x443260]+_0x6316('0x32')]!==_0x16a64b){this[_0x308dd7[_0x443260]+_0x6316('0x33')]=_[_0x6316('0x34')](moment()[_0x6316('0x35')]('x'));}this[_0x308dd7[_0x443260]+'Status']=_0x16a64b;}var _0x7315dc={'id':this['id'],'name':this[_0x6316('0x7')],'online':this['online'],'voicePause':this[_0x6316('0x9')],'chatPause':this['chatPause'],'mailPause':this[_0x6316('0xb')],'smsPause':this[_0x6316('0xd')],'faxPause':this['faxPause'],'openchannelPause':this['openchannelPause'],'chatStatus':this[_0x6316('0xf')],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this['chatCapacity'],'chatCurrentCapacity':this['chatCurrentCapacity'],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0x6316('0x14')],'mailCapacity':this[_0x6316('0x15')],'mailCurrentCapacity':this[_0x6316('0x16')],'faxStatus':this['faxStatus'],'faxStatusTime':this[_0x6316('0x36')],'faxCapacity':this[_0x6316('0x18')],'faxCurrentCapacity':this[_0x6316('0x19')],'smsStatus':this[_0x6316('0x37')],'smsStatusTime':this[_0x6316('0x1a')],'smsCapacity':this[_0x6316('0x1b')],'smsCurrentCapacity':this[_0x6316('0x1c')],'whatsappStatus':this[_0x6316('0x1d')],'whatsappStatusTime':this['whatsappStatusTime'],'whatsappCapacity':this[_0x6316('0x1e')],'whatsappCurrentCapacity':this[_0x6316('0x1f')],'openchannelStatus':this[_0x6316('0x20')],'openchannelStatusTime':this[_0x6316('0x21')],'openchannelCapacity':this[_0x6316('0x22')],'openchannelCurrentCapacity':this['openchannelCurrentCapacity'],'busy':this[_0x6316('0x24')],'busyQueue':this[_0x6316('0x25')]};var _0x5c9ae3=md5(JSON[_0x6316('0x38')](_0x7315dc));if(this[_0x6316('0x1')]!==_0x5c9ae3){this[_0x6316('0x1')]=_0x5c9ae3;io[_0x6316('0x39')]('user:save',_0x7315dc);}};module[_0x6316('0x3a')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57e8=['map','_rr','loggedIn','paused','length','online','chatPause','available','stringify','format','chat:queue:%s','emit','exports','lodash','md5','util','ioredis','../../../config/environment','redis','defaults','socket.io-emitter','name','timeout','strategy','Agents','waiting','updateRouting','updateRealtime','prototype','mapAgentsId'];(function(_0x4eae93,_0x296c4a){var _0x161bdf=function(_0x145ad0){while(--_0x145ad0){_0x4eae93['push'](_0x4eae93['shift']());}};_0x161bdf(++_0x296c4a);}(_0x57e8,0xfd));var _0x857e=function(_0xd66e3f,_0x31f64a){_0xd66e3f=_0xd66e3f-0x0;var _0x1c6999=_0x57e8[_0xd66e3f];return _0x1c6999;};'use strict';var _=require(_0x857e('0x0'));var md5=require(_0x857e('0x1'));var util=require(_0x857e('0x2'));var Redis=require(_0x857e('0x3'));var config=require(_0x857e('0x4'));config[_0x857e('0x5')]=_[_0x857e('0x6')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x857e('0x7'))(new Redis(config[_0x857e('0x5')]));function ChatQueue(_0x24ac5e){this['id']=_0x24ac5e['id']||0x0;this['name']=_0x24ac5e[_0x857e('0x8')]||'';this[_0x857e('0x9')]=_0x24ac5e[_0x857e('0x9')]||0xa;this[_0x857e('0xa')]=_0x24ac5e[_0x857e('0xa')]||'beepall';this[_0x857e('0xb')]=_0x24ac5e[_0x857e('0xb')];this['mapAgentsId']={};this[_0x857e('0xc')]=0x0;this['md5']='';this[_0x857e('0xd')]();this[_0x857e('0xe')]();}ChatQueue[_0x857e('0xf')]['updateRouting']=function(){var _0x344db3=this[_0x857e('0x10')]['_rr'];this[_0x857e('0x10')]=_[_0x857e('0x11')](this[_0x857e('0xb')],'id');this[_0x857e('0x10')][_0x857e('0x12')]=_0x344db3;};ChatQueue['prototype'][_0x857e('0xe')]=function(){this[_0x857e('0x13')]=0x0;this[_0x857e('0x14')]=0x0;for(var _0x23f085=0x0;_0x23f085<this['Agents'][_0x857e('0x15')];_0x23f085+=0x1){if(this[_0x857e('0xb')][_0x23f085][_0x857e('0x16')]){this[_0x857e('0x13')]+=0x1;}if(this[_0x857e('0xb')][_0x23f085][_0x857e('0x17')]){this[_0x857e('0x14')]+=0x1;}}this[_0x857e('0x18')]=this[_0x857e('0x13')]-this[_0x857e('0x14')];this['available']=this[_0x857e('0x18')]>=0x0?this[_0x857e('0x18')]:0x0;var _0x52275f={'id':this['id'],'available':this[_0x857e('0x18')],'loggedIn':this[_0x857e('0x13')],'name':this[_0x857e('0x8')],'paused':this['paused'],'waiting':this[_0x857e('0xc')]};var _0x4da72e=md5(JSON[_0x857e('0x19')](_0x52275f));if(this[_0x857e('0x1')]!==_0x4da72e){this['md5']=_0x4da72e;io['to'](util[_0x857e('0x1a')](_0x857e('0x1b'),_0x52275f[_0x857e('0x8')]))[_0x857e('0x1c')]('chat_queue:save',_0x52275f);}};module[_0x857e('0x1d')]=ChatQueue;
\ No newline at end of file
+var _0xe5dd=['ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','Agents','waiting','updateRouting','updateRealtime','prototype','mapAgentsId','map','_rr','paused','online','loggedIn','chatPause','available','stringify','chat:queue:%s','emit','exports','lodash','md5','util'];(function(_0x5cb990,_0x38831c){var _0x353fd2=function(_0x31c410){while(--_0x31c410){_0x5cb990['push'](_0x5cb990['shift']());}};_0x353fd2(++_0x38831c);}(_0xe5dd,0xab));var _0xde5d=function(_0x2ab84a,_0x24cb76){_0x2ab84a=_0x2ab84a-0x0;var _0x5330e1=_0xe5dd[_0x2ab84a];return _0x5330e1;};'use strict';var _=require(_0xde5d('0x0'));var md5=require(_0xde5d('0x1'));var util=require(_0xde5d('0x2'));var Redis=require(_0xde5d('0x3'));var config=require(_0xde5d('0x4'));config[_0xde5d('0x5')]=_[_0xde5d('0x6')](config[_0xde5d('0x5')],{'host':_0xde5d('0x7'),'port':0x18eb});var io=require(_0xde5d('0x8'))(new Redis(config[_0xde5d('0x5')]));function ChatQueue(_0x2cbbba){this['id']=_0x2cbbba['id']||0x0;this[_0xde5d('0x9')]=_0x2cbbba[_0xde5d('0x9')]||'';this[_0xde5d('0xa')]=_0x2cbbba['timeout']||0xa;this['strategy']=_0x2cbbba[_0xde5d('0xb')]||'beepall';this[_0xde5d('0xc')]=_0x2cbbba['Agents'];this['mapAgentsId']={};this[_0xde5d('0xd')]=0x0;this[_0xde5d('0x1')]='';this[_0xde5d('0xe')]();this[_0xde5d('0xf')]();}ChatQueue[_0xde5d('0x10')][_0xde5d('0xe')]=function(){var _0x2303fc=this[_0xde5d('0x11')]['_rr'];this[_0xde5d('0x11')]=_[_0xde5d('0x12')](this[_0xde5d('0xc')],'id');this[_0xde5d('0x11')][_0xde5d('0x13')]=_0x2303fc;};ChatQueue[_0xde5d('0x10')][_0xde5d('0xf')]=function(){this['loggedIn']=0x0;this[_0xde5d('0x14')]=0x0;for(var _0x369fc8=0x0;_0x369fc8<this[_0xde5d('0xc')]['length'];_0x369fc8+=0x1){if(this[_0xde5d('0xc')][_0x369fc8][_0xde5d('0x15')]){this[_0xde5d('0x16')]+=0x1;}if(this[_0xde5d('0xc')][_0x369fc8][_0xde5d('0x17')]){this[_0xde5d('0x14')]+=0x1;}}this[_0xde5d('0x18')]=this[_0xde5d('0x16')]-this[_0xde5d('0x14')];this[_0xde5d('0x18')]=this[_0xde5d('0x18')]>=0x0?this['available']:0x0;var _0x7607c2={'id':this['id'],'available':this[_0xde5d('0x18')],'loggedIn':this[_0xde5d('0x16')],'name':this[_0xde5d('0x9')],'paused':this[_0xde5d('0x14')],'waiting':this[_0xde5d('0xd')]};var _0x3189cd=md5(JSON[_0xde5d('0x19')](_0x7607c2));if(this[_0xde5d('0x1')]!==_0x3189cd){this[_0xde5d('0x1')]=_0x3189cd;io['to'](util['format'](_0xde5d('0x1a'),_0x7607c2[_0xde5d('0x9')]))[_0xde5d('0x1b')]('chat_queue:save',_0x7607c2);}};module[_0xde5d('0x1c')]=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48ff=['util','ioredis','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','mapAgentsId','md5','updateRouting','updateRealtime','prototype','map','_rr','Agents','length','online','loggedIn','paused','available','waiting','stringify','format','fax:queue:%s','fax_queue:save','exports'];(function(_0xd2cbfb,_0x568fe0){var _0x1382b6=function(_0x253963){while(--_0x253963){_0xd2cbfb['push'](_0xd2cbfb['shift']());}};_0x1382b6(++_0x568fe0);}(_0x48ff,0xcb));var _0xf48f=function(_0x1ba890,_0x5f5de4){_0x1ba890=_0x1ba890-0x0;var _0x4266c4=_0x48ff[_0x1ba890];return _0x4266c4;};'use strict';var _=require('lodash');var md5=require('md5');var util=require(_0xf48f('0x0'));var Redis=require(_0xf48f('0x1'));var config=require('../../../config/environment');config[_0xf48f('0x2')]=_[_0xf48f('0x3')](config[_0xf48f('0x2')],{'host':_0xf48f('0x4'),'port':0x18eb});var io=require(_0xf48f('0x5'))(new Redis(config['redis']));function FaxQueue(_0x44824c){this['id']=_0x44824c['id']||0x0;this[_0xf48f('0x6')]=_0x44824c[_0xf48f('0x6')]||'';this[_0xf48f('0x7')]=_0x44824c[_0xf48f('0x7')]||0xa;this[_0xf48f('0x8')]=_0x44824c[_0xf48f('0x8')]||_0xf48f('0x9');this['Agents']=_0x44824c['Agents'];this[_0xf48f('0xa')]={};this['waiting']=0x0;this[_0xf48f('0xb')]='';this[_0xf48f('0xc')]();this[_0xf48f('0xd')]();}FaxQueue[_0xf48f('0xe')][_0xf48f('0xc')]=function(){var _0x338cd6=this['mapAgentsId']['_rr'];this[_0xf48f('0xa')]=_[_0xf48f('0xf')](this['Agents'],'id');this[_0xf48f('0xa')][_0xf48f('0x10')]=_0x338cd6;};FaxQueue['prototype'][_0xf48f('0xd')]=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x1ead6e=0x0;_0x1ead6e<this[_0xf48f('0x11')][_0xf48f('0x12')];_0x1ead6e+=0x1){if(this[_0xf48f('0x11')][_0x1ead6e][_0xf48f('0x13')]){this[_0xf48f('0x14')]+=0x1;}if(this[_0xf48f('0x11')][_0x1ead6e]['faxPause']){this[_0xf48f('0x15')]+=0x1;}}this[_0xf48f('0x16')]=this['loggedIn']-this[_0xf48f('0x15')];this[_0xf48f('0x16')]=this[_0xf48f('0x16')]>=0x0?this[_0xf48f('0x16')]:0x0;var _0x55eb36={'id':this['id'],'available':this[_0xf48f('0x16')],'loggedIn':this[_0xf48f('0x14')],'name':this[_0xf48f('0x6')],'paused':this['paused'],'waiting':this[_0xf48f('0x17')]};var _0x49c059=md5(JSON[_0xf48f('0x18')](_0x55eb36));if(this['md5']!==_0x49c059){this[_0xf48f('0xb')]=_0x49c059;io['to'](util[_0xf48f('0x19')](_0xf48f('0x1a'),_0x55eb36[_0xf48f('0x6')]))['emit'](_0xf48f('0x1b'),_0x55eb36);}};module[_0xf48f('0x1c')]=FaxQueue;
\ No newline at end of file
+var _0x2c76=['loggedIn','paused','length','online','faxPause','available','waiting','stringify','format','fax:queue:%s','fax_queue:save','exports','lodash','util','ioredis','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','md5','updateRealtime','updateRouting','_rr','prototype'];(function(_0x137ad9,_0x23e259){var _0x365cf9=function(_0x1a1709){while(--_0x1a1709){_0x137ad9['push'](_0x137ad9['shift']());}};_0x365cf9(++_0x23e259);}(_0x2c76,0xde));var _0x62c7=function(_0xc2c53e,_0x50bf76){_0xc2c53e=_0xc2c53e-0x0;var _0x229ca4=_0x2c76[_0xc2c53e];return _0x229ca4;};'use strict';var _=require(_0x62c7('0x0'));var md5=require('md5');var util=require(_0x62c7('0x1'));var Redis=require(_0x62c7('0x2'));var config=require('../../../config/environment');config[_0x62c7('0x3')]=_[_0x62c7('0x4')](config[_0x62c7('0x3')],{'host':_0x62c7('0x5'),'port':0x18eb});var io=require(_0x62c7('0x6'))(new Redis(config[_0x62c7('0x3')]));function FaxQueue(_0x144a7b){this['id']=_0x144a7b['id']||0x0;this[_0x62c7('0x7')]=_0x144a7b[_0x62c7('0x7')]||'';this[_0x62c7('0x8')]=_0x144a7b['timeout']||0xa;this[_0x62c7('0x9')]=_0x144a7b[_0x62c7('0x9')]||_0x62c7('0xa');this[_0x62c7('0xb')]=_0x144a7b[_0x62c7('0xb')];this[_0x62c7('0xc')]={};this['waiting']=0x0;this[_0x62c7('0xd')]='';this['updateRouting']();this[_0x62c7('0xe')]();}FaxQueue['prototype'][_0x62c7('0xf')]=function(){var _0xed1cb4=this['mapAgentsId'][_0x62c7('0x10')];this[_0x62c7('0xc')]=_['map'](this[_0x62c7('0xb')],'id');this['mapAgentsId'][_0x62c7('0x10')]=_0xed1cb4;};FaxQueue[_0x62c7('0x11')][_0x62c7('0xe')]=function(){this[_0x62c7('0x12')]=0x0;this[_0x62c7('0x13')]=0x0;for(var _0x3b1450=0x0;_0x3b1450<this[_0x62c7('0xb')][_0x62c7('0x14')];_0x3b1450+=0x1){if(this[_0x62c7('0xb')][_0x3b1450][_0x62c7('0x15')]){this[_0x62c7('0x12')]+=0x1;}if(this[_0x62c7('0xb')][_0x3b1450][_0x62c7('0x16')]){this['paused']+=0x1;}}this['available']=this[_0x62c7('0x12')]-this[_0x62c7('0x13')];this['available']=this[_0x62c7('0x17')]>=0x0?this['available']:0x0;var _0x40f7c0={'id':this['id'],'available':this[_0x62c7('0x17')],'loggedIn':this['loggedIn'],'name':this[_0x62c7('0x7')],'paused':this['paused'],'waiting':this[_0x62c7('0x18')]};var _0x579f0d=md5(JSON[_0x62c7('0x19')](_0x40f7c0));if(this[_0x62c7('0xd')]!==_0x579f0d){this[_0x62c7('0xd')]=_0x579f0d;io['to'](util[_0x62c7('0x1a')](_0x62c7('0x1b'),_0x40f7c0[_0x62c7('0x7')]))['emit'](_0x62c7('0x1c'),_0x40f7c0);}};module[_0x62c7('0x1d')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x50ac=['name','Intervals','exports'];(function(_0x2d678b,_0x2b675e){var _0x6308f8=function(_0x4ca3a8){while(--_0x4ca3a8){_0x2d678b['push'](_0x2d678b['shift']());}};_0x6308f8(++_0x2b675e);}(_0x50ac,0xe4));var _0xc50a=function(_0x1646ae,_0x2c1248){_0x1646ae=_0x1646ae-0x0;var _0x322b5c=_0x50ac[_0x1646ae];return _0x322b5c;};'use strict';function Interval(_0x1dd4fe){this['id']=_0x1dd4fe['id']||0x0;this[_0xc50a('0x0')]=_0x1dd4fe['name']||'';this[_0xc50a('0x1')]=_0x1dd4fe[_0xc50a('0x1')]||{};}module[_0xc50a('0x2')]=Interval;
\ No newline at end of file
+var _0xb02f=['Intervals','exports','name'];(function(_0x9ddd76,_0x29027){var _0x20e02c=function(_0x449b8b){while(--_0x449b8b){_0x9ddd76['push'](_0x9ddd76['shift']());}};_0x20e02c(++_0x29027);}(_0xb02f,0x1c1));var _0xfb02=function(_0x5a6b1e,_0x4f3992){_0x5a6b1e=_0x5a6b1e-0x0;var _0x529199=_0xb02f[_0x5a6b1e];return _0x529199;};'use strict';function Interval(_0x426421){this['id']=_0x426421['id']||0x0;this[_0xfb02('0x0')]=_0x426421[_0xfb02('0x0')]||'';this[_0xfb02('0x1')]=_0x426421[_0xfb02('0x1')]||{};}module[_0xfb02('0x2')]=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4d4=['socket.io-emitter','name','timeout','strategy','beepall','waiting','updateRouting','updateRealtime','prototype','mapAgentsId','_rr','map','loggedIn','Agents','length','online','paused','available','stringify','format','mail:queue:%s','emit','mail_queue:save','md5','util','ioredis','../../../config/environment','redis','localhost'];(function(_0x503e5a,_0xb2b946){var _0x15f7e7=function(_0x11ad96){while(--_0x11ad96){_0x503e5a['push'](_0x503e5a['shift']());}};_0x15f7e7(++_0xb2b946);}(_0xd4d4,0xc5));var _0x4d4d=function(_0x2e15e2,_0x3dbc7e){_0x2e15e2=_0x2e15e2-0x0;var _0xdfad61=_0xd4d4[_0x2e15e2];return _0xdfad61;};'use strict';var _=require('lodash');var md5=require(_0x4d4d('0x0'));var util=require(_0x4d4d('0x1'));var Redis=require(_0x4d4d('0x2'));var config=require(_0x4d4d('0x3'));config['redis']=_['defaults'](config[_0x4d4d('0x4')],{'host':_0x4d4d('0x5'),'port':0x18eb});var io=require(_0x4d4d('0x6'))(new Redis(config['redis']));function MailQueue(_0x4f17a6){this['id']=_0x4f17a6['id']||0x0;this[_0x4d4d('0x7')]=_0x4f17a6[_0x4d4d('0x7')]||'';this['timeout']=_0x4f17a6[_0x4d4d('0x8')]||0xa;this['strategy']=_0x4f17a6[_0x4d4d('0x9')]||_0x4d4d('0xa');this['Agents']=_0x4f17a6['Agents'];this['mapAgentsId']={};this[_0x4d4d('0xb')]=0x0;this[_0x4d4d('0x0')]='';this[_0x4d4d('0xc')]();this[_0x4d4d('0xd')]();}MailQueue[_0x4d4d('0xe')][_0x4d4d('0xc')]=function(){var _0x4a3176=this[_0x4d4d('0xf')][_0x4d4d('0x10')];this[_0x4d4d('0xf')]=_[_0x4d4d('0x11')](this['Agents'],'id');this['mapAgentsId'][_0x4d4d('0x10')]=_0x4a3176;};MailQueue[_0x4d4d('0xe')]['updateRealtime']=function(){this[_0x4d4d('0x12')]=0x0;this['paused']=0x0;for(var _0x10feaf=0x0;_0x10feaf<this[_0x4d4d('0x13')][_0x4d4d('0x14')];_0x10feaf+=0x1){if(this[_0x4d4d('0x13')][_0x10feaf][_0x4d4d('0x15')]){this[_0x4d4d('0x12')]+=0x1;}if(this[_0x4d4d('0x13')][_0x10feaf]['mailPause']){this[_0x4d4d('0x16')]+=0x1;}}this[_0x4d4d('0x17')]=this['loggedIn']-this[_0x4d4d('0x16')];this[_0x4d4d('0x17')]=this[_0x4d4d('0x17')]>=0x0?this[_0x4d4d('0x17')]:0x0;var _0x14cbc4={'id':this['id'],'available':this['available'],'loggedIn':this[_0x4d4d('0x12')],'name':this[_0x4d4d('0x7')],'paused':this[_0x4d4d('0x16')],'waiting':this[_0x4d4d('0xb')]};var _0x340213=md5(JSON[_0x4d4d('0x18')](_0x14cbc4));if(this[_0x4d4d('0x0')]!==_0x340213){this['md5']=_0x340213;io['to'](util[_0x4d4d('0x19')](_0x4d4d('0x1a'),_0x14cbc4[_0x4d4d('0x7')]))[_0x4d4d('0x1b')](_0x4d4d('0x1c'),_0x14cbc4);}};module['exports']=MailQueue;
\ No newline at end of file
+var _0x720c=['Agents','mapAgentsId','updateRouting','prototype','map','_rr','online','available','loggedIn','paused','waiting','stringify','format','mail:queue:%s','emit','mail_queue:save','exports','md5','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall'];(function(_0x41aaa5,_0x5d880b){var _0x35c60f=function(_0x4bf487){while(--_0x4bf487){_0x41aaa5['push'](_0x41aaa5['shift']());}};_0x35c60f(++_0x5d880b);}(_0x720c,0x81));var _0xc720=function(_0x53a0e4,_0x59fb74){_0x53a0e4=_0x53a0e4-0x0;var _0x248e78=_0x720c[_0x53a0e4];return _0x248e78;};'use strict';var _=require('lodash');var md5=require(_0xc720('0x0'));var util=require('util');var Redis=require(_0xc720('0x1'));var config=require(_0xc720('0x2'));config[_0xc720('0x3')]=_[_0xc720('0x4')](config['redis'],{'host':_0xc720('0x5'),'port':0x18eb});var io=require(_0xc720('0x6'))(new Redis(config['redis']));function MailQueue(_0x321cc9){this['id']=_0x321cc9['id']||0x0;this[_0xc720('0x7')]=_0x321cc9[_0xc720('0x7')]||'';this[_0xc720('0x8')]=_0x321cc9['timeout']||0xa;this[_0xc720('0x9')]=_0x321cc9['strategy']||_0xc720('0xa');this[_0xc720('0xb')]=_0x321cc9[_0xc720('0xb')];this[_0xc720('0xc')]={};this['waiting']=0x0;this[_0xc720('0x0')]='';this[_0xc720('0xd')]();this['updateRealtime']();}MailQueue[_0xc720('0xe')]['updateRouting']=function(){var _0x484a93=this['mapAgentsId']['_rr'];this[_0xc720('0xc')]=_[_0xc720('0xf')](this[_0xc720('0xb')],'id');this[_0xc720('0xc')][_0xc720('0x10')]=_0x484a93;};MailQueue[_0xc720('0xe')]['updateRealtime']=function(){this['loggedIn']=0x0;this['paused']=0x0;for(var _0x5f1677=0x0;_0x5f1677<this[_0xc720('0xb')]['length'];_0x5f1677+=0x1){if(this[_0xc720('0xb')][_0x5f1677][_0xc720('0x11')]){this['loggedIn']+=0x1;}if(this['Agents'][_0x5f1677]['mailPause']){this['paused']+=0x1;}}this[_0xc720('0x12')]=this[_0xc720('0x13')]-this['paused'];this[_0xc720('0x12')]=this[_0xc720('0x12')]>=0x0?this[_0xc720('0x12')]:0x0;var _0x1fd841={'id':this['id'],'available':this[_0xc720('0x12')],'loggedIn':this[_0xc720('0x13')],'name':this['name'],'paused':this[_0xc720('0x14')],'waiting':this[_0xc720('0x15')]};var _0x5c59c1=md5(JSON[_0xc720('0x16')](_0x1fd841));if(this['md5']!==_0x5c59c1){this[_0xc720('0x0')]=_0x5c59c1;io['to'](util[_0xc720('0x17')](_0xc720('0x18'),_0x1fd841[_0xc720('0x7')]))[_0xc720('0x19')](_0xc720('0x1a'),_0x1fd841);}};module[_0xc720('0x1b')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['prototype','map','_rr','loggedIn','paused','length','online','openchannelPause','available','format','openchannel_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime'];(function(_0x6598eb,_0x401e37){var _0x1cc04b=function(_0x584a6a){while(--_0x584a6a){_0x6598eb['push'](_0x6598eb['shift']());}};_0x1cc04b(++_0x401e37);}(_0x814b,0x1a2));var _0xb814=function(_0x24ae03,_0x334660){_0x24ae03=_0x24ae03-0x0;var _0x38a29e=_0x814b[_0x24ae03];return _0x38a29e;};'use strict';var _=require(_0xb814('0x0'));var md5=require(_0xb814('0x1'));var util=require(_0xb814('0x2'));var Redis=require(_0xb814('0x3'));var config=require(_0xb814('0x4'));config[_0xb814('0x5')]=_['defaults'](config[_0xb814('0x5')],{'host':_0xb814('0x6'),'port':0x18eb});var io=require(_0xb814('0x7'))(new Redis(config[_0xb814('0x5')]));function OpenchannelQueue(_0x44931c){this['id']=_0x44931c['id']||0x0;this[_0xb814('0x8')]=_0x44931c['name']||'';this[_0xb814('0x9')]=_0x44931c[_0xb814('0x9')]||0xa;this['strategy']=_0x44931c[_0xb814('0xa')]||_0xb814('0xb');this[_0xb814('0xc')]=_0x44931c[_0xb814('0xc')];this[_0xb814('0xd')]={};this[_0xb814('0xe')]=0x0;this[_0xb814('0x1')]='';this[_0xb814('0xf')]();this[_0xb814('0x10')]();}OpenchannelQueue[_0xb814('0x11')][_0xb814('0xf')]=function(){var _0x4b5f14=this[_0xb814('0xd')]['_rr'];this[_0xb814('0xd')]=_[_0xb814('0x12')](this[_0xb814('0xc')],'id');this[_0xb814('0xd')][_0xb814('0x13')]=_0x4b5f14;};OpenchannelQueue[_0xb814('0x11')][_0xb814('0x10')]=function(){this[_0xb814('0x14')]=0x0;this[_0xb814('0x15')]=0x0;for(var _0x2ab627=0x0;_0x2ab627<this[_0xb814('0xc')][_0xb814('0x16')];_0x2ab627+=0x1){if(this[_0xb814('0xc')][_0x2ab627][_0xb814('0x17')]){this[_0xb814('0x14')]+=0x1;}if(this[_0xb814('0xc')][_0x2ab627][_0xb814('0x18')]){this[_0xb814('0x15')]+=0x1;}}this[_0xb814('0x19')]=this[_0xb814('0x14')]-this[_0xb814('0x15')];this['available']=this[_0xb814('0x19')]>=0x0?this['available']:0x0;var _0x270598={'id':this['id'],'available':this[_0xb814('0x19')],'loggedIn':this['loggedIn'],'name':this['name'],'paused':this['paused'],'waiting':this[_0xb814('0xe')]};var _0x4d5276=md5(JSON['stringify'](_0x270598));if(this[_0xb814('0x1')]!==_0x4d5276){this[_0xb814('0x1')]=_0x4d5276;io['to'](util[_0xb814('0x1a')]('openchannel:queue:%s',_0x270598[_0xb814('0x8')]))['emit'](_0xb814('0x1b'),_0x270598);}};module[_0xb814('0x1c')]=OpenchannelQueue;
\ No newline at end of file
+var _0x326f=['exports','lodash','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','mapAgentsId','waiting','md5','updateRouting','updateRealtime','Agents','prototype','loggedIn','paused','online','openchannelPause','available','stringify','openchannel:queue:%s','openchannel_queue:save'];(function(_0x122096,_0x60c295){var _0x3d1966=function(_0x3d569e){while(--_0x3d569e){_0x122096['push'](_0x122096['shift']());}};_0x3d1966(++_0x60c295);}(_0x326f,0xd1));var _0xf326=function(_0x516278,_0x48a3f8){_0x516278=_0x516278-0x0;var _0x6bedcd=_0x326f[_0x516278];return _0x6bedcd;};'use strict';var _=require(_0xf326('0x0'));var md5=require('md5');var util=require('util');var Redis=require(_0xf326('0x1'));var config=require(_0xf326('0x2'));config[_0xf326('0x3')]=_[_0xf326('0x4')](config[_0xf326('0x3')],{'host':_0xf326('0x5'),'port':0x18eb});var io=require(_0xf326('0x6'))(new Redis(config[_0xf326('0x3')]));function OpenchannelQueue(_0x1b5a56){this['id']=_0x1b5a56['id']||0x0;this[_0xf326('0x7')]=_0x1b5a56['name']||'';this[_0xf326('0x8')]=_0x1b5a56[_0xf326('0x8')]||0xa;this[_0xf326('0x9')]=_0x1b5a56[_0xf326('0x9')]||'beepall';this['Agents']=_0x1b5a56['Agents'];this[_0xf326('0xa')]={};this[_0xf326('0xb')]=0x0;this[_0xf326('0xc')]='';this[_0xf326('0xd')]();this[_0xf326('0xe')]();}OpenchannelQueue['prototype'][_0xf326('0xd')]=function(){var _0x53cbcd=this[_0xf326('0xa')]['_rr'];this[_0xf326('0xa')]=_['map'](this[_0xf326('0xf')],'id');this[_0xf326('0xa')]['_rr']=_0x53cbcd;};OpenchannelQueue[_0xf326('0x10')][_0xf326('0xe')]=function(){this[_0xf326('0x11')]=0x0;this[_0xf326('0x12')]=0x0;for(var _0x5c8483=0x0;_0x5c8483<this[_0xf326('0xf')]['length'];_0x5c8483+=0x1){if(this['Agents'][_0x5c8483][_0xf326('0x13')]){this[_0xf326('0x11')]+=0x1;}if(this[_0xf326('0xf')][_0x5c8483][_0xf326('0x14')]){this[_0xf326('0x12')]+=0x1;}}this[_0xf326('0x15')]=this[_0xf326('0x11')]-this[_0xf326('0x12')];this['available']=this[_0xf326('0x15')]>=0x0?this[_0xf326('0x15')]:0x0;var _0x18bee3={'id':this['id'],'available':this[_0xf326('0x15')],'loggedIn':this[_0xf326('0x11')],'name':this[_0xf326('0x7')],'paused':this['paused'],'waiting':this['waiting']};var _0x56ad41=md5(JSON[_0xf326('0x16')](_0x18bee3));if(this[_0xf326('0xc')]!==_0x56ad41){this['md5']=_0x56ad41;io['to'](util['format'](_0xf326('0x17'),_0x18bee3['name']))['emit'](_0xf326('0x18'),_0x18bee3);}};module[_0xf326('0x19')]=OpenchannelQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2121=['format','sms:queue:%s','sms_queue:save','exports','lodash','md5','../../../config/environment','redis','defaults','localhost','name','timeout','strategy','Agents','mapAgentsId','waiting','updateRouting','_rr','map','prototype','updateRealtime','loggedIn','paused','length','online','available','stringify'];(function(_0x52b5d5,_0x1637b9){var _0x37e88c=function(_0x32e576){while(--_0x32e576){_0x52b5d5['push'](_0x52b5d5['shift']());}};_0x37e88c(++_0x1637b9);}(_0x2121,0x1b4));var _0x1212=function(_0x375ad0,_0x4ab628){_0x375ad0=_0x375ad0-0x0;var _0xa9310a=_0x2121[_0x375ad0];return _0xa9310a;};'use strict';var _=require(_0x1212('0x0'));var md5=require(_0x1212('0x1'));var util=require('util');var Redis=require('ioredis');var config=require(_0x1212('0x2'));config[_0x1212('0x3')]=_[_0x1212('0x4')](config[_0x1212('0x3')],{'host':_0x1212('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1212('0x3')]));function SmsQueue(_0x4c8877){this['id']=_0x4c8877['id']||0x0;this[_0x1212('0x6')]=_0x4c8877[_0x1212('0x6')]||'';this[_0x1212('0x7')]=_0x4c8877[_0x1212('0x7')]||0xa;this[_0x1212('0x8')]=_0x4c8877[_0x1212('0x8')]||'beepall';this[_0x1212('0x9')]=_0x4c8877[_0x1212('0x9')];this[_0x1212('0xa')]={};this[_0x1212('0xb')]=0x0;this[_0x1212('0x1')]='';this[_0x1212('0xc')]();this['updateRealtime']();}SmsQueue['prototype'][_0x1212('0xc')]=function(){var _0x2109ee=this[_0x1212('0xa')][_0x1212('0xd')];this['mapAgentsId']=_[_0x1212('0xe')](this[_0x1212('0x9')],'id');this[_0x1212('0xa')][_0x1212('0xd')]=_0x2109ee;};SmsQueue[_0x1212('0xf')][_0x1212('0x10')]=function(){this[_0x1212('0x11')]=0x0;this[_0x1212('0x12')]=0x0;for(var _0x469cf6=0x0;_0x469cf6<this[_0x1212('0x9')][_0x1212('0x13')];_0x469cf6+=0x1){if(this[_0x1212('0x9')][_0x469cf6][_0x1212('0x14')]){this[_0x1212('0x11')]+=0x1;}if(this[_0x1212('0x9')][_0x469cf6]['smsPause']){this['paused']+=0x1;}}this['available']=this[_0x1212('0x11')]-this[_0x1212('0x12')];this[_0x1212('0x15')]=this[_0x1212('0x15')]>=0x0?this[_0x1212('0x15')]:0x0;var _0x3face0={'id':this['id'],'available':this[_0x1212('0x15')],'loggedIn':this[_0x1212('0x11')],'name':this[_0x1212('0x6')],'paused':this['paused'],'waiting':this[_0x1212('0xb')]};var _0x1333ec=md5(JSON[_0x1212('0x16')](_0x3face0));if(this[_0x1212('0x1')]!==_0x1333ec){this[_0x1212('0x1')]=_0x1333ec;io['to'](util[_0x1212('0x17')](_0x1212('0x18'),_0x3face0[_0x1212('0x6')]))['emit'](_0x1212('0x19'),_0x3face0);}};module[_0x1212('0x1a')]=SmsQueue;
\ No newline at end of file
+var _0x99e9=['strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','_rr','map','loggedIn','paused','smsPause','available','format','emit','sms_queue:save','exports','md5','util','ioredis','../../../config/environment','defaults','redis','localhost','name','timeout'];(function(_0xf2628e,_0x521bf7){var _0x13863a=function(_0x2b04ab){while(--_0x2b04ab){_0xf2628e['push'](_0xf2628e['shift']());}};_0x13863a(++_0x521bf7);}(_0x99e9,0xb4));var _0x999e=function(_0x56c70f,_0x4e4493){_0x56c70f=_0x56c70f-0x0;var _0x3812ed=_0x99e9[_0x56c70f];return _0x3812ed;};'use strict';var _=require('lodash');var md5=require(_0x999e('0x0'));var util=require(_0x999e('0x1'));var Redis=require(_0x999e('0x2'));var config=require(_0x999e('0x3'));config['redis']=_[_0x999e('0x4')](config[_0x999e('0x5')],{'host':_0x999e('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x999e('0x5')]));function SmsQueue(_0x502307){this['id']=_0x502307['id']||0x0;this[_0x999e('0x7')]=_0x502307[_0x999e('0x7')]||'';this[_0x999e('0x8')]=_0x502307[_0x999e('0x8')]||0xa;this['strategy']=_0x502307[_0x999e('0x9')]||_0x999e('0xa');this[_0x999e('0xb')]=_0x502307[_0x999e('0xb')];this[_0x999e('0xc')]={};this[_0x999e('0xd')]=0x0;this[_0x999e('0x0')]='';this[_0x999e('0xe')]();this[_0x999e('0xf')]();}SmsQueue[_0x999e('0x10')][_0x999e('0xe')]=function(){var _0x1d19b0=this[_0x999e('0xc')][_0x999e('0x11')];this[_0x999e('0xc')]=_[_0x999e('0x12')](this[_0x999e('0xb')],'id');this['mapAgentsId'][_0x999e('0x11')]=_0x1d19b0;};SmsQueue['prototype'][_0x999e('0xf')]=function(){this[_0x999e('0x13')]=0x0;this[_0x999e('0x14')]=0x0;for(var _0x538a92=0x0;_0x538a92<this[_0x999e('0xb')]['length'];_0x538a92+=0x1){if(this[_0x999e('0xb')][_0x538a92]['online']){this['loggedIn']+=0x1;}if(this[_0x999e('0xb')][_0x538a92][_0x999e('0x15')]){this[_0x999e('0x14')]+=0x1;}}this[_0x999e('0x16')]=this[_0x999e('0x13')]-this[_0x999e('0x14')];this['available']=this['available']>=0x0?this['available']:0x0;var _0x3153ce={'id':this['id'],'available':this[_0x999e('0x16')],'loggedIn':this[_0x999e('0x13')],'name':this[_0x999e('0x7')],'paused':this[_0x999e('0x14')],'waiting':this[_0x999e('0xd')]};var _0x5af4c3=md5(JSON['stringify'](_0x3153ce));if(this[_0x999e('0x0')]!==_0x5af4c3){this[_0x999e('0x0')]=_0x5af4c3;io['to'](util[_0x999e('0x17')]('sms:queue:%s',_0x3153ce[_0x999e('0x7')]))[_0x999e('0x18')](_0x999e('0x19'),_0x3153ce);}};module[_0x999e('0x1a')]=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0c1=['md5','util','ioredis','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','prototype','_rr','map','updateRealtime','loggedIn','paused','online','whatsappPause','available','format','whatsapp:queue:%s','whatsapp_queue:save','lodash'];(function(_0x1f4f26,_0x16c293){var _0x4e8d43=function(_0x9af0d1){while(--_0x9af0d1){_0x1f4f26['push'](_0x1f4f26['shift']());}};_0x4e8d43(++_0x16c293);}(_0xf0c1,0x1b2));var _0x1f0c=function(_0x57486e,_0x32283b){_0x57486e=_0x57486e-0x0;var _0x5f110b=_0xf0c1[_0x57486e];return _0x5f110b;};'use strict';var _=require(_0x1f0c('0x0'));var md5=require(_0x1f0c('0x1'));var util=require(_0x1f0c('0x2'));var Redis=require(_0x1f0c('0x3'));var config=require(_0x1f0c('0x4'));config['redis']=_[_0x1f0c('0x5')](config[_0x1f0c('0x6')],{'host':_0x1f0c('0x7'),'port':0x18eb});var io=require(_0x1f0c('0x8'))(new Redis(config[_0x1f0c('0x6')]));function WhatsappQueue(_0x11eab6){this['id']=_0x11eab6['id']||0x0;this['name']=_0x11eab6[_0x1f0c('0x9')]||'';this['timeout']=_0x11eab6[_0x1f0c('0xa')]||0xa;this[_0x1f0c('0xb')]=_0x11eab6[_0x1f0c('0xb')]||_0x1f0c('0xc');this[_0x1f0c('0xd')]=_0x11eab6[_0x1f0c('0xd')];this[_0x1f0c('0xe')]={};this[_0x1f0c('0xf')]=0x0;this[_0x1f0c('0x1')]='';this[_0x1f0c('0x10')]();this['updateRealtime']();}WhatsappQueue[_0x1f0c('0x11')][_0x1f0c('0x10')]=function(){var _0x11bbff=this['mapAgentsId'][_0x1f0c('0x12')];this[_0x1f0c('0xe')]=_[_0x1f0c('0x13')](this[_0x1f0c('0xd')],'id');this[_0x1f0c('0xe')][_0x1f0c('0x12')]=_0x11bbff;};WhatsappQueue[_0x1f0c('0x11')][_0x1f0c('0x14')]=function(){this[_0x1f0c('0x15')]=0x0;this[_0x1f0c('0x16')]=0x0;for(var _0x5854c3=0x0;_0x5854c3<this['Agents']['length'];_0x5854c3+=0x1){if(this[_0x1f0c('0xd')][_0x5854c3][_0x1f0c('0x17')]){this[_0x1f0c('0x15')]+=0x1;}if(this[_0x1f0c('0xd')][_0x5854c3][_0x1f0c('0x18')]){this[_0x1f0c('0x16')]+=0x1;}}this[_0x1f0c('0x19')]=this['loggedIn']-this[_0x1f0c('0x16')];this[_0x1f0c('0x19')]=this[_0x1f0c('0x19')]>=0x0?this['available']:0x0;var _0x42c7d5={'id':this['id'],'available':this['available'],'loggedIn':this[_0x1f0c('0x15')],'name':this[_0x1f0c('0x9')],'paused':this[_0x1f0c('0x16')],'waiting':this[_0x1f0c('0xf')]};var _0x242ec3=md5(JSON['stringify'](_0x42c7d5));if(this[_0x1f0c('0x1')]!==_0x242ec3){this['md5']=_0x242ec3;io['to'](util[_0x1f0c('0x1a')](_0x1f0c('0x1b'),_0x42c7d5[_0x1f0c('0x9')]))['emit'](_0x1f0c('0x1c'),_0x42c7d5);}};module['exports']=WhatsappQueue;
\ No newline at end of file
+var _0xc1bf=['updateRealtime','prototype','updateRouting','map','_rr','loggedIn','paused','whatsappPause','available','waiting','format','whatsapp:queue:%s','exports','lodash','md5','util','ioredis','defaults','redis','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId'];(function(_0x5eb180,_0x127912){var _0xc5f79c=function(_0x28398a){while(--_0x28398a){_0x5eb180['push'](_0x5eb180['shift']());}};_0xc5f79c(++_0x127912);}(_0xc1bf,0x179));var _0xfc1b=function(_0x12ca5f,_0x223d98){_0x12ca5f=_0x12ca5f-0x0;var _0xfc3ae9=_0xc1bf[_0x12ca5f];return _0xfc3ae9;};'use strict';var _=require(_0xfc1b('0x0'));var md5=require(_0xfc1b('0x1'));var util=require(_0xfc1b('0x2'));var Redis=require(_0xfc1b('0x3'));var config=require('../../../config/environment');config['redis']=_[_0xfc1b('0x4')](config[_0xfc1b('0x5')],{'host':'localhost','port':0x18eb});var io=require(_0xfc1b('0x6'))(new Redis(config['redis']));function WhatsappQueue(_0x1f48c7){this['id']=_0x1f48c7['id']||0x0;this[_0xfc1b('0x7')]=_0x1f48c7['name']||'';this[_0xfc1b('0x8')]=_0x1f48c7[_0xfc1b('0x8')]||0xa;this[_0xfc1b('0x9')]=_0x1f48c7['strategy']||_0xfc1b('0xa');this[_0xfc1b('0xb')]=_0x1f48c7['Agents'];this[_0xfc1b('0xc')]={};this['waiting']=0x0;this[_0xfc1b('0x1')]='';this['updateRouting']();this[_0xfc1b('0xd')]();}WhatsappQueue[_0xfc1b('0xe')][_0xfc1b('0xf')]=function(){var _0x330005=this[_0xfc1b('0xc')]['_rr'];this[_0xfc1b('0xc')]=_[_0xfc1b('0x10')](this[_0xfc1b('0xb')],'id');this[_0xfc1b('0xc')][_0xfc1b('0x11')]=_0x330005;};WhatsappQueue[_0xfc1b('0xe')]['updateRealtime']=function(){this[_0xfc1b('0x12')]=0x0;this[_0xfc1b('0x13')]=0x0;for(var _0xbe4cfe=0x0;_0xbe4cfe<this['Agents']['length'];_0xbe4cfe+=0x1){if(this[_0xfc1b('0xb')][_0xbe4cfe]['online']){this[_0xfc1b('0x12')]+=0x1;}if(this['Agents'][_0xbe4cfe][_0xfc1b('0x14')]){this[_0xfc1b('0x13')]+=0x1;}}this[_0xfc1b('0x15')]=this[_0xfc1b('0x12')]-this[_0xfc1b('0x13')];this[_0xfc1b('0x15')]=this[_0xfc1b('0x15')]>=0x0?this[_0xfc1b('0x15')]:0x0;var _0x56c574={'id':this['id'],'available':this[_0xfc1b('0x15')],'loggedIn':this[_0xfc1b('0x12')],'name':this['name'],'paused':this[_0xfc1b('0x13')],'waiting':this[_0xfc1b('0x16')]};var _0x22164a=md5(JSON['stringify'](_0x56c574));if(this[_0xfc1b('0x1')]!==_0x22164a){this[_0xfc1b('0x1')]=_0x22164a;io['to'](util[_0xfc1b('0x17')](_0xfc1b('0x18'),_0x56c574[_0xfc1b('0x7')]))['emit']('whatsapp_queue:save',_0x56c574);}};module[_0xfc1b('0x19')]=WhatsappQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','mapKeys','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','isUndefined','initIntervals','length','initOpenchannelQueues','updateRealtime','initChatQueues','chatQueues','initSmsQueues','updateRouting','initMailQueues','initFaxQueues','initWhatsappQueues','exports','bluebird','lodash','moment','../model/agent','../model/openchannelQueue','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','smsQueues','mailQueues'];(function(_0x5883cd,_0x69acdc){var _0x4512e0=function(_0x45aad5){while(--_0x45aad5){_0x5883cd['push'](_0x5883cd['shift']());}};_0x4512e0(++_0x69acdc);}(_0xb10b,0x12a));var _0xbb10=function(_0x54ab1f,_0x1585d6){_0x54ab1f=_0x54ab1f-0x0;var _0x24c869=_0xb10b[_0x54ab1f];return _0x24c869;};'use strict';var BPromise=require(_0xbb10('0x0'));var util=require('util');var _=require(_0xbb10('0x1'));var moment=require(_0xbb10('0x2'));var Agent=require(_0xbb10('0x3'));var Interval=require('../model/interval');var OpenchannelQueue=require(_0xbb10('0x4'));var ChatQueue=require(_0xbb10('0x5'));var SmsQueue=require(_0xbb10('0x6'));var MailQueue=require(_0xbb10('0x7'));var FaxQueue=require(_0xbb10('0x8'));var WhatsappQueue=require(_0xbb10('0x9'));var Realtime=function(){this['agents']={};this[_0xbb10('0xa')]={};this[_0xbb10('0xb')]={};this['chatQueues']={};this[_0xbb10('0xc')]={};this[_0xbb10('0xd')]={};this[_0xbb10('0xe')]={};this[_0xbb10('0xf')]={};this[_0xbb10('0x10')]={};this[_0xbb10('0x11')]={};this[_0xbb10('0x12')]={};this[_0xbb10('0x13')]={};this['faxQueuesWaitingInteractions']={};this['whatsappQueuesWaitingInteractions']={};};function freeIsNotKey(_0x20bd61,_0x118a74,_0xce64f3){var _0x5e136d=_[_0xbb10('0x14')](_0x20bd61,function(_0x5be7e0,_0x44fb19){return _0x5be7e0[_0xce64f3];});for(var _0x916a32 in _0x118a74){if(_0x118a74[_0xbb10('0x15')](_0x916a32)){if(!_0x5e136d[_0x916a32]){delete _0x118a74[_0x916a32];}}}}Realtime[_0xbb10('0x16')][_0xbb10('0x17')]=function(_0x147230,_0x58a612){for(var _0x26e021 in _0x58a612){if(_0x147230[_0xbb10('0x15')](_0x26e021)){_0x147230[_0x26e021]=_0x58a612[_0x26e021];}}};Realtime[_0xbb10('0x16')][_0xbb10('0x18')]=function(){var _0x3df17b=this;return function(_0x2f2ebf){if(_0x2f2ebf){freeIsNotKey(_0x2f2ebf,_0x3df17b[_0xbb10('0x19')],'id');for(var _0x36b5e8=0x0,_0x3e26f4={},_0x2b184e={};_0x36b5e8<_0x2f2ebf['length'];_0x36b5e8+=0x1){_0x3e26f4=_0x2f2ebf[_0x36b5e8];if(_[_0xbb10('0x1a')](_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']])){_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']]=new Agent(_0x3e26f4);}else{_0x3df17b[_0xbb10('0x17')](_0x3df17b[_0xbb10('0x19')][_0x3e26f4['id']],_0x3e26f4);}}}return _0x3df17b[_0xbb10('0x19')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x1b')]=function(){var _0xbf2906=this;return function(_0xe1c665){if(_0xe1c665){freeIsNotKey(_0xe1c665,_0xbf2906['intervals'],'id');for(var _0x5ff0cf=0x0,_0x19f48d={},_0x388fab={};_0x5ff0cf<_0xe1c665[_0xbb10('0x1c')];_0x5ff0cf+=0x1){_0x19f48d=_0xe1c665[_0x5ff0cf];if(_[_0xbb10('0x1a')](_0xbf2906[_0xbb10('0xa')][_0x19f48d['id']])){_0xbf2906['intervals'][_0x19f48d['id']]=new Interval(_0x19f48d);}else{_0xbf2906[_0xbb10('0x17')](_0xbf2906[_0xbb10('0xa')][_0x19f48d['id']],_0x19f48d);}}}return _0xbf2906['intervals'];};};Realtime['prototype'][_0xbb10('0x1d')]=function(){var _0x311abe=this;return function(_0x2e911d){if(_0x2e911d){freeIsNotKey(_0x2e911d,_0x311abe[_0xbb10('0xb')],'id');for(var _0x445761=0x0,_0x1824b7={},_0x407cb4={};_0x445761<_0x2e911d[_0xbb10('0x1c')];_0x445761+=0x1){_0x1824b7=_0x2e911d[_0x445761];if(_[_0xbb10('0x1a')](_0x311abe[_0xbb10('0xb')][_0x1824b7['id']])){_0x311abe[_0xbb10('0xb')][_0x1824b7['id']]=new OpenchannelQueue(_0x1824b7);}else{_0x311abe[_0xbb10('0x17')](_0x311abe['openchannelQueues'][_0x1824b7['id']],_0x1824b7);}_0x311abe['openchannelQueues'][_0x1824b7['id']]['updateRouting']();_0x311abe[_0xbb10('0xb')][_0x1824b7['id']][_0xbb10('0x1e')]();}}return _0x311abe[_0xbb10('0xb')];};};Realtime['prototype'][_0xbb10('0x1f')]=function(){var _0x24d586=this;return function(_0x6ed43b){if(_0x6ed43b){freeIsNotKey(_0x6ed43b,_0x24d586[_0xbb10('0x20')],'id');for(var _0x1acce9=0x0,_0x20d946={},_0x2a0e8b={};_0x1acce9<_0x6ed43b['length'];_0x1acce9+=0x1){_0x20d946=_0x6ed43b[_0x1acce9];if(_[_0xbb10('0x1a')](_0x24d586[_0xbb10('0x20')][_0x20d946['id']])){_0x24d586[_0xbb10('0x20')][_0x20d946['id']]=new ChatQueue(_0x20d946);}else{_0x24d586[_0xbb10('0x17')](_0x24d586[_0xbb10('0x20')][_0x20d946['id']],_0x20d946);}_0x24d586[_0xbb10('0x20')][_0x20d946['id']]['updateRouting']();_0x24d586[_0xbb10('0x20')][_0x20d946['id']]['updateRealtime']();}}return _0x24d586[_0xbb10('0x20')];};};Realtime['prototype'][_0xbb10('0x21')]=function(){var _0x1dcc9c=this;return function(_0x1b59f9){if(_0x1b59f9){freeIsNotKey(_0x1b59f9,_0x1dcc9c['smsQueues'],'id');for(var _0x518d47=0x0,_0x4c3744={},_0x34f65e={};_0x518d47<_0x1b59f9['length'];_0x518d47+=0x1){_0x4c3744=_0x1b59f9[_0x518d47];if(_[_0xbb10('0x1a')](_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']])){_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']]=new SmsQueue(_0x4c3744);}else{_0x1dcc9c[_0xbb10('0x17')](_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']],_0x4c3744);}_0x1dcc9c[_0xbb10('0xc')][_0x4c3744['id']][_0xbb10('0x22')]();_0x1dcc9c['smsQueues'][_0x4c3744['id']][_0xbb10('0x1e')]();}}return _0x1dcc9c[_0xbb10('0xc')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x23')]=function(){var _0xfb2c5e=this;return function(_0x9de708){if(_0x9de708){freeIsNotKey(_0x9de708,_0xfb2c5e[_0xbb10('0xd')],'id');for(var _0x10202c=0x0,_0x3c8d7d={},_0x56943c={};_0x10202c<_0x9de708[_0xbb10('0x1c')];_0x10202c+=0x1){_0x3c8d7d=_0x9de708[_0x10202c];if(_[_0xbb10('0x1a')](_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']])){_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']]=new MailQueue(_0x3c8d7d);}else{_0xfb2c5e['mergeFromDatabase'](_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']],_0x3c8d7d);}_0xfb2c5e['mailQueues'][_0x3c8d7d['id']]['updateRouting']();_0xfb2c5e[_0xbb10('0xd')][_0x3c8d7d['id']][_0xbb10('0x1e')]();}}return _0xfb2c5e[_0xbb10('0xd')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x24')]=function(){var _0x29d11a=this;return function(_0x547062){if(_0x547062){freeIsNotKey(_0x547062,_0x29d11a[_0xbb10('0xe')],'id');for(var _0x25d72f=0x0,_0x52de31={},_0x5e3fbd={};_0x25d72f<_0x547062['length'];_0x25d72f+=0x1){_0x52de31=_0x547062[_0x25d72f];if(_[_0xbb10('0x1a')](_0x29d11a[_0xbb10('0xe')][_0x52de31['id']])){_0x29d11a[_0xbb10('0xe')][_0x52de31['id']]=new FaxQueue(_0x52de31);}else{_0x29d11a['mergeFromDatabase'](_0x29d11a[_0xbb10('0xe')][_0x52de31['id']],_0x52de31);}_0x29d11a[_0xbb10('0xe')][_0x52de31['id']][_0xbb10('0x22')]();_0x29d11a['faxQueues'][_0x52de31['id']][_0xbb10('0x1e')]();}}return _0x29d11a[_0xbb10('0xe')];};};Realtime[_0xbb10('0x16')][_0xbb10('0x25')]=function(){var _0x4f1cdd=this;return function(_0xd238e9){if(_0xd238e9){freeIsNotKey(_0xd238e9,_0x4f1cdd[_0xbb10('0xf')],'id');for(var _0x5835fd=0x0,_0xe2040f={},_0x2e3214={};_0x5835fd<_0xd238e9[_0xbb10('0x1c')];_0x5835fd+=0x1){_0xe2040f=_0xd238e9[_0x5835fd];if(_[_0xbb10('0x1a')](_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']])){_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']]=new WhatsappQueue(_0xe2040f);}else{_0x4f1cdd['mergeFromDatabase'](_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']],_0xe2040f);}_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']][_0xbb10('0x22')]();_0x4f1cdd[_0xbb10('0xf')][_0xe2040f['id']]['updateRealtime']();}}return _0x4f1cdd[_0xbb10('0xf')];};};module[_0xbb10('0x26')]=Realtime;
\ No newline at end of file
+var _0xa9e0=['isUndefined','initIntervals','updateRealtime','updateRouting','initSmsQueues','smsQueues','initMailQueues','mailQueues','initWhatsappQueues','whatsappQueues','exports','bluebird','util','lodash','../model/interval','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','chatQueues','faxQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','length'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xa9e0[_0x187ee1];return _0x388160;};'use strict';var BPromise=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require(_0x0a9e('0x3'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x0a9e('0x4'));var SmsQueue=require(_0x0a9e('0x5'));var MailQueue=require(_0x0a9e('0x6'));var FaxQueue=require(_0x0a9e('0x7'));var WhatsappQueue=require(_0x0a9e('0x8'));var Realtime=function(){this['agents']={};this[_0x0a9e('0x9')]={};this[_0x0a9e('0xa')]={};this[_0x0a9e('0xb')]={};this['smsQueues']={};this['mailQueues']={};this[_0x0a9e('0xc')]={};this['whatsappQueues']={};this['chatQueuesWaitingInteractions']={};this[_0x0a9e('0xd')]={};this[_0x0a9e('0xe')]={};this[_0x0a9e('0xf')]={};this[_0x0a9e('0x10')]={};this[_0x0a9e('0x11')]={};};function freeIsNotKey(_0xbd1168,_0x4a4c56,_0x50dfb2){var _0x527cdd=_['mapKeys'](_0xbd1168,function(_0x273d4d,_0x36471c){return _0x273d4d[_0x50dfb2];});for(var _0xd5b662 in _0x4a4c56){if(_0x4a4c56[_0x0a9e('0x12')](_0xd5b662)){if(!_0x527cdd[_0xd5b662]){delete _0x4a4c56[_0xd5b662];}}}}Realtime[_0x0a9e('0x13')][_0x0a9e('0x14')]=function(_0x5db4b0,_0x4283ce){for(var _0x239b12 in _0x4283ce){if(_0x5db4b0[_0x0a9e('0x12')](_0x239b12)){_0x5db4b0[_0x239b12]=_0x4283ce[_0x239b12];}}};Realtime[_0x0a9e('0x13')][_0x0a9e('0x15')]=function(){var _0x4d5611=this;return function(_0x52a03d){if(_0x52a03d){freeIsNotKey(_0x52a03d,_0x4d5611[_0x0a9e('0x16')],'id');for(var _0x5d0880=0x0,_0x1985b6={},_0x519dfd={};_0x5d0880<_0x52a03d[_0x0a9e('0x17')];_0x5d0880+=0x1){_0x1985b6=_0x52a03d[_0x5d0880];if(_[_0x0a9e('0x18')](_0x4d5611['agents'][_0x1985b6['id']])){_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']]=new Agent(_0x1985b6);}else{_0x4d5611['mergeFromDatabase'](_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']],_0x1985b6);}}}return _0x4d5611[_0x0a9e('0x16')];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x19')]=function(){var _0x31b1ca=this;return function(_0x2eb11f){if(_0x2eb11f){freeIsNotKey(_0x2eb11f,_0x31b1ca[_0x0a9e('0x9')],'id');for(var _0x20559e=0x0,_0x1314ae={},_0x112016={};_0x20559e<_0x2eb11f[_0x0a9e('0x17')];_0x20559e+=0x1){_0x1314ae=_0x2eb11f[_0x20559e];if(_[_0x0a9e('0x18')](_0x31b1ca['intervals'][_0x1314ae['id']])){_0x31b1ca[_0x0a9e('0x9')][_0x1314ae['id']]=new Interval(_0x1314ae);}else{_0x31b1ca[_0x0a9e('0x14')](_0x31b1ca['intervals'][_0x1314ae['id']],_0x1314ae);}}}return _0x31b1ca[_0x0a9e('0x9')];};};Realtime['prototype']['initOpenchannelQueues']=function(){var _0x3a02e1=this;return function(_0x432e56){if(_0x432e56){freeIsNotKey(_0x432e56,_0x3a02e1[_0x0a9e('0xa')],'id');for(var _0x30bae6=0x0,_0x4abc77={},_0xfb6e48={};_0x30bae6<_0x432e56[_0x0a9e('0x17')];_0x30bae6+=0x1){_0x4abc77=_0x432e56[_0x30bae6];if(_[_0x0a9e('0x18')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']])){_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']]=new OpenchannelQueue(_0x4abc77);}else{_0x3a02e1[_0x0a9e('0x14')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']],_0x4abc77);}_0x3a02e1['openchannelQueues'][_0x4abc77['id']]['updateRouting']();_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']][_0x0a9e('0x1a')]();}}return _0x3a02e1[_0x0a9e('0xa')];};};Realtime[_0x0a9e('0x13')]['initChatQueues']=function(){var _0x384319=this;return function(_0x479bc4){if(_0x479bc4){freeIsNotKey(_0x479bc4,_0x384319[_0x0a9e('0xb')],'id');for(var _0x5bfb33=0x0,_0x1dc186={},_0x34dc65={};_0x5bfb33<_0x479bc4[_0x0a9e('0x17')];_0x5bfb33+=0x1){_0x1dc186=_0x479bc4[_0x5bfb33];if(_[_0x0a9e('0x18')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']])){_0x384319[_0x0a9e('0xb')][_0x1dc186['id']]=new ChatQueue(_0x1dc186);}else{_0x384319[_0x0a9e('0x14')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']],_0x1dc186);}_0x384319['chatQueues'][_0x1dc186['id']][_0x0a9e('0x1b')]();_0x384319[_0x0a9e('0xb')][_0x1dc186['id']][_0x0a9e('0x1a')]();}}return _0x384319[_0x0a9e('0xb')];};};Realtime['prototype'][_0x0a9e('0x1c')]=function(){var _0x40e7a3=this;return function(_0x1843b2){if(_0x1843b2){freeIsNotKey(_0x1843b2,_0x40e7a3[_0x0a9e('0x1d')],'id');for(var _0x58b06f=0x0,_0x563b45={},_0x296f41={};_0x58b06f<_0x1843b2[_0x0a9e('0x17')];_0x58b06f+=0x1){_0x563b45=_0x1843b2[_0x58b06f];if(_[_0x0a9e('0x18')](_0x40e7a3['smsQueues'][_0x563b45['id']])){_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']]=new SmsQueue(_0x563b45);}else{_0x40e7a3['mergeFromDatabase'](_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']],_0x563b45);}_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1b')]();_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1a')]();}}return _0x40e7a3['smsQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x1e')]=function(){var _0x40cb85=this;return function(_0x2da5c0){if(_0x2da5c0){freeIsNotKey(_0x2da5c0,_0x40cb85[_0x0a9e('0x1f')],'id');for(var _0x409319=0x0,_0x332d35={},_0x39e565={};_0x409319<_0x2da5c0['length'];_0x409319+=0x1){_0x332d35=_0x2da5c0[_0x409319];if(_[_0x0a9e('0x18')](_0x40cb85['mailQueues'][_0x332d35['id']])){_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]=new MailQueue(_0x332d35);}else{_0x40cb85[_0x0a9e('0x14')](_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']],_0x332d35);}_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]['updateRouting']();_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']][_0x0a9e('0x1a')]();}}return _0x40cb85[_0x0a9e('0x1f')];};};Realtime[_0x0a9e('0x13')]['initFaxQueues']=function(){var _0x54135e=this;return function(_0x1e8694){if(_0x1e8694){freeIsNotKey(_0x1e8694,_0x54135e['faxQueues'],'id');for(var _0x24936a=0x0,_0x3d9717={},_0x381c37={};_0x24936a<_0x1e8694[_0x0a9e('0x17')];_0x24936a+=0x1){_0x3d9717=_0x1e8694[_0x24936a];if(_['isUndefined'](_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']])){_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]=new FaxQueue(_0x3d9717);}else{_0x54135e[_0x0a9e('0x14')](_0x54135e['faxQueues'][_0x3d9717['id']],_0x3d9717);}_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']][_0x0a9e('0x1b')]();_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]['updateRealtime']();}}return _0x54135e['faxQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x20')]=function(){var _0x5adda1=this;return function(_0x2b814e){if(_0x2b814e){freeIsNotKey(_0x2b814e,_0x5adda1[_0x0a9e('0x21')],'id');for(var _0x2e1b3a=0x0,_0x148f55={},_0x4b38d9={};_0x2e1b3a<_0x2b814e['length'];_0x2e1b3a+=0x1){_0x148f55=_0x2b814e[_0x2e1b3a];if(_[_0x0a9e('0x18')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']])){_0x5adda1['whatsappQueues'][_0x148f55['id']]=new WhatsappQueue(_0x148f55);}else{_0x5adda1[_0x0a9e('0x14')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']],_0x148f55);}_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']]['updateRouting']();_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']][_0x0a9e('0x1a')]();}}return _0x5adda1[_0x0a9e('0x21')];};};module[_0x0a9e('0x22')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf908=['UpdateChatInteraction','updateChatInteraction','addTags','Request','AddTagsToChatInteraction','../client','update'];(function(_0x29a6c3,_0x58cf03){var _0x1bc2ee=function(_0x45085e){while(--_0x45085e){_0x29a6c3['push'](_0x29a6c3['shift']());}};_0x1bc2ee(++_0x58cf03);}(_0xf908,0x1e1));var _0x8f90=function(_0x743319,_0x1f7ead){_0x743319=_0x743319-0x0;var _0x86ee15=_0xf908[_0x743319];return _0x86ee15;};'use strict';var client=require(_0x8f90('0x0'));exports[_0x8f90('0x1')]=function(_0x5ab89b,_0x22c20b){return client['Request'](_0x8f90('0x2'),{'body':_0x22c20b,'options':{'where':{'id':_0x5ab89b}},'log':_0x8f90('0x3')});};exports[_0x8f90('0x4')]=function(_0x3af602,_0x37790f){return client[_0x8f90('0x5')](_0x8f90('0x6'),{'body':_0x37790f,'options':{'where':{'id':_0x3af602}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
+var _0xe029=['addTagsToChatInteraction','../client','update','Request','UpdateChatInteraction','updateChatInteraction','addTags','AddTagsToChatInteraction'];(function(_0x595d77,_0x23b26a){var _0x1fd7bb=function(_0x53336e){while(--_0x53336e){_0x595d77['push'](_0x595d77['shift']());}};_0x1fd7bb(++_0x23b26a);}(_0xe029,0x171));var _0x9e02=function(_0x382868,_0xb5acfd){_0x382868=_0x382868-0x0;var _0x43e191=_0xe029[_0x382868];return _0x43e191;};'use strict';var client=require(_0x9e02('0x0'));exports[_0x9e02('0x1')]=function(_0x412163,_0x26e2c7){return client[_0x9e02('0x2')](_0x9e02('0x3'),{'body':_0x26e2c7,'options':{'where':{'id':_0x412163}},'log':_0x9e02('0x4')});};exports[_0x9e02('0x5')]=function(_0x3eb7c6,_0xdbf087){return client['Request'](_0x9e02('0x6'),{'body':_0xdbf087,'options':{'where':{'id':_0x3eb7c6}},'log':_0x9e02('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29e4=['CreateChatMessage','createChatMessage','../client','create','Request'];(function(_0x10772d,_0x2b2be6){var _0x7148fc=function(_0x2979df){while(--_0x2979df){_0x10772d['push'](_0x10772d['shift']());}};_0x7148fc(++_0x2b2be6);}(_0x29e4,0xd9));var _0x429e=function(_0x4cabc9,_0x4c287f){_0x4cabc9=_0x4cabc9-0x0;var _0x55720f=_0x29e4[_0x4cabc9];return _0x55720f;};'use strict';var client=require(_0x429e('0x0'));exports[_0x429e('0x1')]=function(_0x3252d4){return client[_0x429e('0x2')](_0x429e('0x3'),{'body':_0x3252d4,'log':_0x429e('0x4')});};
\ No newline at end of file
+var _0xf8b6=['Request','CreateChatMessage','createChatMessage','../client','create'];(function(_0x55ed7a,_0x34eb0e){var _0x120754=function(_0x1529e1){while(--_0x1529e1){_0x55ed7a['push'](_0x55ed7a['shift']());}};_0x120754(++_0x34eb0e);}(_0xf8b6,0x1f2));var _0x6f8b=function(_0x1da1ac,_0x314a42){_0x1da1ac=_0x1da1ac-0x0;var _0x105a8a=_0xf8b6[_0x1da1ac];return _0x105a8a;};'use strict';var client=require(_0x6f8b('0x0'));exports[_0x6f8b('0x1')]=function(_0x1bb1f2){return client[_0x6f8b('0x2')](_0x6f8b('0x3'),{'body':_0x1bb1f2,'log':_0x6f8b('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x83d3=['Agents','chatPause','../client','getChatQueues','Request','GetChatQueue','name','strategy','User'];(function(_0x3247f7,_0x3c9114){var _0x46bfe3=function(_0x50ee9f){while(--_0x50ee9f){_0x3247f7['push'](_0x3247f7['shift']());}};_0x46bfe3(++_0x3c9114);}(_0x83d3,0x17c));var _0x383d=function(_0x2265b0,_0x279abe){_0x2265b0=_0x2265b0-0x0;var _0xc4900b=_0x83d3[_0x2265b0];return _0xc4900b;};'use strict';var client=require(_0x383d('0x0'));exports[_0x383d('0x1')]=function(){return function(){return client[_0x383d('0x2')](_0x383d('0x3'),{'options':{'raw':![],'attributes':['id',_0x383d('0x4'),'timeout',_0x383d('0x5')],'include':[{'model':_0x383d('0x6'),'as':_0x383d('0x7'),'attributes':['id',_0x383d('0x4'),'online',_0x383d('0x8')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0x60c2=['Agents','online','chatPause','getChatQueues','Request','GetChatQueue','name','timeout','strategy','User'];(function(_0x3ad59e,_0x4b7ef8){var _0x33dc74=function(_0x515fe9){while(--_0x515fe9){_0x3ad59e['push'](_0x3ad59e['shift']());}};_0x33dc74(++_0x4b7ef8);}(_0x60c2,0x8f));var _0x260c=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x60c2[_0x502c7d];return _0x30b7ed;};'use strict';var client=require('../client');exports[_0x260c('0x0')]=function(){return function(){return client[_0x260c('0x1')](_0x260c('0x2'),{'options':{'raw':![],'attributes':['id',_0x260c('0x3'),_0x260c('0x4'),_0x260c('0x5')],'include':[{'model':_0x260c('0x6'),'as':_0x260c('0x7'),'attributes':['id',_0x260c('0x3'),_0x260c('0x8'),_0x260c('0x9')]}]},'log':_0x260c('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ba7=['../client','Request','CreateChatQueueReport','UpdateChatQueueReport','DESC'];(function(_0x2bbd2d,_0x37c3c4){var _0x257dc9=function(_0x1928ff){while(--_0x1928ff){_0x2bbd2d['push'](_0x2bbd2d['shift']());}};_0x257dc9(++_0x37c3c4);}(_0x0ba7,0x16d));var _0x70ba=function(_0x20ee95,_0x58436c){_0x20ee95=_0x20ee95-0x0;var _0x777ef2=_0x0ba7[_0x20ee95];return _0x777ef2;};'use strict';var client=require(_0x70ba('0x0'));exports['create']=function(_0x469795){return client[_0x70ba('0x1')](_0x70ba('0x2'),{'body':_0x469795,'log':_0x70ba('0x2')});};exports['update']=function(_0x319ca9,_0x3e20ab){return client[_0x70ba('0x1')](_0x70ba('0x3'),{'body':_0x3e20ab,'options':{'where':{'uniqueid':_0x319ca9},'order':[['id',_0x70ba('0x4')]],'limit':0x1},'log':_0x70ba('0x3')});};
\ No newline at end of file
+var _0x7119=['Request','CreateChatQueueReport','update','UpdateChatQueueReport','DESC','create'];(function(_0x4eb6ec,_0x7f2520){var _0x58881b=function(_0x4f375f){while(--_0x4f375f){_0x4eb6ec['push'](_0x4eb6ec['shift']());}};_0x58881b(++_0x7f2520);}(_0x7119,0x1c7));var _0x9711=function(_0x19f9e6,_0x4f59a6){_0x19f9e6=_0x19f9e6-0x0;var _0x45c862=_0x7119[_0x19f9e6];return _0x45c862;};'use strict';var client=require('../client');exports[_0x9711('0x0')]=function(_0x529e10){return client[_0x9711('0x1')]('CreateChatQueueReport',{'body':_0x529e10,'log':_0x9711('0x2')});};exports[_0x9711('0x3')]=function(_0x36cd4d,_0x2de7dd){return client['Request'](_0x9711('0x4'),{'body':_0x2de7dd,'options':{'where':{'uniqueid':_0x36cd4d},'order':[['id',_0x9711('0x5')]],'limit':0x1},'log':_0x9711('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0x53a7af,_0x1408a5){var _0x3cc7f6=function(_0x4bf101){while(--_0x4bf101){_0x53a7af['push'](_0x53a7af['shift']());}};_0x3cc7f6(++_0x1408a5);}(_0x7a54,0x106));var _0x47a5=function(_0x5471a1,_0x1845eb){_0x5471a1=_0x5471a1-0x0;var _0x3beaa4=_0x7a54[_0x5471a1];return _0x3beaa4;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(_0x44b31e,_0x58157c){return client[_0x47a5('0x2')](_0x47a5('0x3'),{'body':_0x58157c,'options':{'where':{'id':_0x44b31e}},'log':'updateFaxInteraction'});};exports[_0x47a5('0x4')]=function(_0x11bf85,_0x2a1a7e){return client[_0x47a5('0x2')](_0x47a5('0x5'),{'body':_0x2a1a7e,'options':{'where':{'id':_0x11bf85}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
+var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0x3054be,_0x1bdc8b){var _0x3df150=function(_0x56cfbf){while(--_0x56cfbf){_0x3054be['push'](_0x3054be['shift']());}};_0x3df150(++_0x1bdc8b);}(_0x7a54,0x106));var _0x47a5=function(_0x2ef9c5,_0x5704ba){_0x2ef9c5=_0x2ef9c5-0x0;var _0x2fcfbc=_0x7a54[_0x2ef9c5];return _0x2fcfbc;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(_0x44b31e,_0x58157c){return client[_0x47a5('0x2')](_0x47a5('0x3'),{'body':_0x58157c,'options':{'where':{'id':_0x44b31e}},'log':'updateFaxInteraction'});};exports[_0x47a5('0x4')]=function(_0x11bf85,_0x2a1a7e){return client[_0x47a5('0x2')](_0x47a5('0x5'),{'body':_0x2a1a7e,'options':{'where':{'id':_0x11bf85}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe646=['create','Request','../client'];(function(_0x569ef5,_0x239e13){var _0x24bd57=function(_0x1c2db4){while(--_0x1c2db4){_0x569ef5['push'](_0x569ef5['shift']());}};_0x24bd57(++_0x239e13);}(_0xe646,0x1c7));var _0x6e64=function(_0x94e87c,_0x485461){_0x94e87c=_0x94e87c-0x0;var _0x3bc5fb=_0xe646[_0x94e87c];return _0x3bc5fb;};'use strict';var client=require(_0x6e64('0x0'));exports[_0x6e64('0x1')]=function(_0x4653bb){return client[_0x6e64('0x2')]('CreateFaxMessage',{'body':_0x4653bb,'log':'createFaxMessage'});};
\ No newline at end of file
+var _0xa3f3=['createFaxMessage','create','CreateFaxMessage'];(function(_0x17d176,_0x45cb46){var _0x360f47=function(_0xec9f6d){while(--_0xec9f6d){_0x17d176['push'](_0x17d176['shift']());}};_0x360f47(++_0x45cb46);}(_0xa3f3,0x1d5));var _0x3a3f=function(_0x5f55c8,_0x2b6f47){_0x5f55c8=_0x5f55c8-0x0;var _0x489bc3=_0xa3f3[_0x5f55c8];return _0x489bc3;};'use strict';var client=require('../client');exports[_0x3a3f('0x0')]=function(_0x587b02){return client['Request'](_0x3a3f('0x1'),{'body':_0x587b02,'log':_0x3a3f('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf07a=['name','timeout','strategy','User','Agents','faxPause','../client','getFaxQueues','Request'];(function(_0x2b2b15,_0x13da59){var _0x2f341d=function(_0x5de819){while(--_0x5de819){_0x2b2b15['push'](_0x2b2b15['shift']());}};_0x2f341d(++_0x13da59);}(_0xf07a,0x1c8));var _0xaf07=function(_0x44b533,_0x221c8d){_0x44b533=_0x44b533-0x0;var _0x42325b=_0xf07a[_0x44b533];return _0x42325b;};'use strict';var client=require(_0xaf07('0x0'));exports[_0xaf07('0x1')]=function(){return function(){return client[_0xaf07('0x2')]('GetFaxQueue',{'options':{'raw':![],'attributes':['id',_0xaf07('0x3'),_0xaf07('0x4'),_0xaf07('0x5')],'include':[{'model':_0xaf07('0x6'),'as':_0xaf07('0x7'),'attributes':['id',_0xaf07('0x3'),'online',_0xaf07('0x8')]}]},'log':_0xaf07('0x1')});};};
\ No newline at end of file
+var _0x1f99=['../client','Request','name','timeout','User','Agents','online','faxPause','getFaxQueues'];(function(_0x2c151e,_0x3f4b4d){var _0x10a2e8=function(_0x1f2624){while(--_0x1f2624){_0x2c151e['push'](_0x2c151e['shift']());}};_0x10a2e8(++_0x3f4b4d);}(_0x1f99,0x117));var _0x91f9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1f99[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x91f9('0x0'));exports['getFaxQueues']=function(){return function(){return client[_0x91f9('0x1')]('GetFaxQueue',{'options':{'raw':![],'attributes':['id',_0x91f9('0x2'),_0x91f9('0x3'),'strategy'],'include':[{'model':_0x91f9('0x4'),'as':_0x91f9('0x5'),'attributes':['id',_0x91f9('0x2'),_0x91f9('0x6'),_0x91f9('0x7')]}]},'log':_0x91f9('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0dba=['UpdateFaxQueueReport','DESC','../client','create','Request','CreateFaxQueueReport','update'];(function(_0x51cbe5,_0x246d77){var _0x21826a=function(_0x43bcdc){while(--_0x43bcdc){_0x51cbe5['push'](_0x51cbe5['shift']());}};_0x21826a(++_0x246d77);}(_0x0dba,0x136));var _0xa0db=function(_0x5c793f,_0xd5fe38){_0x5c793f=_0x5c793f-0x0;var _0x304bfd=_0x0dba[_0x5c793f];return _0x304bfd;};'use strict';var client=require(_0xa0db('0x0'));exports[_0xa0db('0x1')]=function(_0x19a3c7){return client[_0xa0db('0x2')](_0xa0db('0x3'),{'body':_0x19a3c7,'log':_0xa0db('0x3')});};exports[_0xa0db('0x4')]=function(_0x4058e6,_0x20d00b){return client[_0xa0db('0x2')](_0xa0db('0x5'),{'body':_0x20d00b,'options':{'where':{'uniqueid':_0x4058e6},'order':[['id',_0xa0db('0x6')]],'limit':0x1},'log':'UpdateFaxQueueReport'});};
\ No newline at end of file
+var _0xd391=['Request','UpdateFaxQueueReport','DESC','../client','CreateFaxQueueReport','update'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0xd391,0xe1));var _0x1d39=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0xd391[_0x5d6456];return _0x4d66c1;};'use strict';var client=require(_0x1d39('0x0'));exports['create']=function(_0x54fc8a){return client['Request'](_0x1d39('0x1'),{'body':_0x54fc8a,'log':'CreateFaxQueueReport'});};exports[_0x1d39('0x2')]=function(_0xe730d3,_0x469fa7){return client[_0x1d39('0x3')](_0x1d39('0x4'),{'body':_0x469fa7,'options':{'where':{'uniqueid':_0xe730d3},'order':[['id',_0x1d39('0x5')]],'limit':0x1},'log':_0x1d39('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab58=['name','interval','../client','getIntervals','Request','GetInterval'];(function(_0x3f3bd7,_0x42ee29){var _0xd9dda0=function(_0x2c7d5a){while(--_0x2c7d5a){_0x3f3bd7['push'](_0x3f3bd7['shift']());}};_0xd9dda0(++_0x42ee29);}(_0xab58,0x19a));var _0x8ab5=function(_0x38d8d0,_0x596360){_0x38d8d0=_0x38d8d0-0x0;var _0x227480=_0xab58[_0x38d8d0];return _0x227480;};'use strict';var client=require(_0x8ab5('0x0'));exports[_0x8ab5('0x1')]=function(){return function(){return client[_0x8ab5('0x2')](_0x8ab5('0x3'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x8ab5('0x4')],'include':[{'model':'Interval','as':'Intervals','attributes':['id',_0x8ab5('0x4'),_0x8ab5('0x5')]}]},'log':'getIntervals'});};};
\ No newline at end of file
+var _0x87a3=['name','interval','../client','getIntervals','Request','GetInterval'];(function(_0x3614b0,_0x775ad){var _0x1ccc1c=function(_0x41114a){while(--_0x41114a){_0x3614b0['push'](_0x3614b0['shift']());}};_0x1ccc1c(++_0x775ad);}(_0x87a3,0x1dc));var _0x387a=function(_0x22f8ab,_0x15d8ff){_0x22f8ab=_0x22f8ab-0x0;var _0x2a70e5=_0x87a3[_0x22f8ab];return _0x2a70e5;};'use strict';var client=require(_0x387a('0x0'));exports[_0x387a('0x1')]=function(){return function(){return client[_0x387a('0x2')](_0x387a('0x3'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x387a('0x4')],'include':[{'model':'Interval','as':'Intervals','attributes':['id','name',_0x387a('0x5')]}]},'log':'getIntervals'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b17=['addTagsToChatInteraction','../client','Request','UpdateMailInteraction','addTags','AddTagsToMailInteraction'];(function(_0x3072eb,_0x455321){var _0x55db4b=function(_0x333eda){while(--_0x333eda){_0x3072eb['push'](_0x3072eb['shift']());}};_0x55db4b(++_0x455321);}(_0x4b17,0x10f));var _0x74b1=function(_0x550e29,_0x4047f){_0x550e29=_0x550e29-0x0;var _0x3515b6=_0x4b17[_0x550e29];return _0x3515b6;};'use strict';var client=require(_0x74b1('0x0'));exports['update']=function(_0xd6951,_0x5483a2){return client[_0x74b1('0x1')](_0x74b1('0x2'),{'body':_0x5483a2,'options':{'where':{'id':_0xd6951}},'log':'updateMailInteraction'});};exports[_0x74b1('0x3')]=function(_0x4f206f,_0x4fdea2){return client[_0x74b1('0x1')](_0x74b1('0x4'),{'body':_0x4fdea2,'options':{'where':{'id':_0x4f206f}},'log':_0x74b1('0x5')});};
\ No newline at end of file
+var _0x5464=['update','Request','updateMailInteraction','AddTagsToMailInteraction','../client'];(function(_0x40051c,_0x2f9925){var _0x32a4f9=function(_0x5471cc){while(--_0x5471cc){_0x40051c['push'](_0x40051c['shift']());}};_0x32a4f9(++_0x2f9925);}(_0x5464,0x15d));var _0x4546=function(_0x4734cb,_0x399d2f){_0x4734cb=_0x4734cb-0x0;var _0x2d9c10=_0x5464[_0x4734cb];return _0x2d9c10;};'use strict';var client=require(_0x4546('0x0'));exports[_0x4546('0x1')]=function(_0x159e14,_0x4f33fd){return client[_0x4546('0x2')]('UpdateMailInteraction',{'body':_0x4f33fd,'options':{'where':{'id':_0x159e14}},'log':_0x4546('0x3')});};exports['addTags']=function(_0x320c4d,_0x396a1d){return client[_0x4546('0x2')](_0x4546('0x4'),{'body':_0x396a1d,'options':{'where':{'id':_0x320c4d}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6730=['../client','create','Request','CreateMailMessage','createMailMessage'];(function(_0x400217,_0x505f46){var _0x2c4e04=function(_0x32d32c){while(--_0x32d32c){_0x400217['push'](_0x400217['shift']());}};_0x2c4e04(++_0x505f46);}(_0x6730,0x1b3));var _0x0673=function(_0x426ccf,_0x4fbf52){_0x426ccf=_0x426ccf-0x0;var _0x243f84=_0x6730[_0x426ccf];return _0x243f84;};'use strict';var client=require(_0x0673('0x0'));exports[_0x0673('0x1')]=function(_0x599452){return client[_0x0673('0x2')](_0x0673('0x3'),{'body':_0x599452,'log':_0x0673('0x4')});};
\ No newline at end of file
+var _0x8e32=['create','Request','createMailMessage'];(function(_0xc2d4a3,_0x60cfbd){var _0x3e5740=function(_0x501c31){while(--_0x501c31){_0xc2d4a3['push'](_0xc2d4a3['shift']());}};_0x3e5740(++_0x60cfbd);}(_0x8e32,0x186));var _0x28e3=function(_0x31f29c,_0x300853){_0x31f29c=_0x31f29c-0x0;var _0x1bb741=_0x8e32[_0x31f29c];return _0x1bb741;};'use strict';var client=require('../client');exports[_0x28e3('0x0')]=function(_0x332f6d){return client[_0x28e3('0x1')]('CreateMailMessage',{'body':_0x332f6d,'log':_0x28e3('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe510=['strategy','User','name','getMailQueues','../client','Request','timeout'];(function(_0x5a3a81,_0x5e862f){var _0x59f7fa=function(_0x445a70){while(--_0x445a70){_0x5a3a81['push'](_0x5a3a81['shift']());}};_0x59f7fa(++_0x5e862f);}(_0xe510,0x115));var _0x0e51=function(_0x2070da,_0x45e586){_0x2070da=_0x2070da-0x0;var _0x4f9fe1=_0xe510[_0x2070da];return _0x4f9fe1;};'use strict';var client=require(_0x0e51('0x0'));exports['getMailQueues']=function(){return function(){return client[_0x0e51('0x1')]('GetMailQueue',{'options':{'raw':![],'attributes':['id','name',_0x0e51('0x2'),_0x0e51('0x3')],'include':[{'model':_0x0e51('0x4'),'as':'Agents','attributes':['id',_0x0e51('0x5'),'online','mailPause']}]},'log':_0x0e51('0x6')});};};
\ No newline at end of file
+var _0x22f8=['Request','GetMailQueue','name','strategy','User','Agents','online','mailPause','../client','getMailQueues'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x22f8,0xa8));var _0x822f=function(_0x417b1a,_0x3cfce5){_0x417b1a=_0x417b1a-0x0;var _0x1e41af=_0x22f8[_0x417b1a];return _0x1e41af;};'use strict';var client=require(_0x822f('0x0'));exports[_0x822f('0x1')]=function(){return function(){return client[_0x822f('0x2')](_0x822f('0x3'),{'options':{'raw':![],'attributes':['id',_0x822f('0x4'),'timeout',_0x822f('0x5')],'include':[{'model':_0x822f('0x6'),'as':_0x822f('0x7'),'attributes':['id','name',_0x822f('0x8'),_0x822f('0x9')]}]},'log':_0x822f('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf6e=['update','Request','UpdateMailQueueReport','DESC','../client','CreateMailQueueReport'];(function(_0x34ebf3,_0x5935c5){var _0x3a634d=function(_0x4f5d92){while(--_0x4f5d92){_0x34ebf3['push'](_0x34ebf3['shift']());}};_0x3a634d(++_0x5935c5);}(_0xcf6e,0x1a2));var _0xecf6=function(_0xebabd6,_0x16d926){_0xebabd6=_0xebabd6-0x0;var _0x75e51e=_0xcf6e[_0xebabd6];return _0x75e51e;};'use strict';var client=require(_0xecf6('0x0'));exports['create']=function(_0x480fee){return client['Request'](_0xecf6('0x1'),{'body':_0x480fee,'log':_0xecf6('0x1')});};exports[_0xecf6('0x2')]=function(_0x3c5643,_0x4b060b){return client[_0xecf6('0x3')](_0xecf6('0x4'),{'body':_0x4b060b,'options':{'where':{'uniqueid':_0x3c5643},'order':[['id',_0xecf6('0x5')]],'limit':0x1},'log':'UpdateMailQueueReport'});};
\ No newline at end of file
+var _0x9c7c=['UpdateMailQueueReport','DESC','../client','create','Request','CreateMailQueueReport','update'];(function(_0x2a8094,_0xdeae2b){var _0x40e3ff=function(_0x4f13fc){while(--_0x4f13fc){_0x2a8094['push'](_0x2a8094['shift']());}};_0x40e3ff(++_0xdeae2b);}(_0x9c7c,0x175));var _0xc9c7=function(_0xcb9b7f,_0x4bebb1){_0xcb9b7f=_0xcb9b7f-0x0;var _0x1c1eb6=_0x9c7c[_0xcb9b7f];return _0x1c1eb6;};'use strict';var client=require(_0xc9c7('0x0'));exports[_0xc9c7('0x1')]=function(_0x343af7){return client[_0xc9c7('0x2')](_0xc9c7('0x3'),{'body':_0x343af7,'log':_0xc9c7('0x3')});};exports[_0xc9c7('0x4')]=function(_0x2be518,_0x11a0c5){return client[_0xc9c7('0x2')](_0xc9c7('0x5'),{'body':_0x11a0c5,'options':{'where':{'uniqueid':_0x2be518},'order':[['id',_0xc9c7('0x6')]],'limit':0x1},'log':'UpdateMailQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25e2=['addTags','AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','Request','UpdateOpenchannelInteraction'];(function(_0x5e4305,_0x51e828){var _0x5139ae=function(_0x1fceb2){while(--_0x1fceb2){_0x5e4305['push'](_0x5e4305['shift']());}};_0x5139ae(++_0x51e828);}(_0x25e2,0x93));var _0x225e=function(_0x4d6ee9,_0x49d717){_0x4d6ee9=_0x4d6ee9-0x0;var _0x315f18=_0x25e2[_0x4d6ee9];return _0x315f18;};'use strict';var client=require(_0x225e('0x0'));exports['update']=function(_0x5e2b37,_0x56ef3d){return client[_0x225e('0x1')](_0x225e('0x2'),{'body':_0x56ef3d,'options':{'where':{'id':_0x5e2b37}},'log':'updateOpenchannelInteraction'});};exports[_0x225e('0x3')]=function(_0x143838,_0x4448e3){return client[_0x225e('0x1')](_0x225e('0x4'),{'body':_0x4448e3,'options':{'where':{'id':_0x143838}},'log':_0x225e('0x5')});};
\ No newline at end of file
+var _0xdf99=['addTagsToChatInteraction','../client','update','UpdateOpenchannelInteraction','updateOpenchannelInteraction','addTags','Request','AddTagsToOpenchannelInteraction'];(function(_0xb70c7d,_0x388e41){var _0x9bd611=function(_0xf6ccc0){while(--_0xf6ccc0){_0xb70c7d['push'](_0xb70c7d['shift']());}};_0x9bd611(++_0x388e41);}(_0xdf99,0x159));var _0x9df9=function(_0x97cc12,_0x54d583){_0x97cc12=_0x97cc12-0x0;var _0x5a25d7=_0xdf99[_0x97cc12];return _0x5a25d7;};'use strict';var client=require(_0x9df9('0x0'));exports[_0x9df9('0x1')]=function(_0x35d117,_0xb2cb3d){return client['Request'](_0x9df9('0x2'),{'body':_0xb2cb3d,'options':{'where':{'id':_0x35d117}},'log':_0x9df9('0x3')});};exports[_0x9df9('0x4')]=function(_0x49d741,_0x38a7e0){return client[_0x9df9('0x5')](_0x9df9('0x6'),{'body':_0x38a7e0,'options':{'where':{'id':_0x49d741}},'log':_0x9df9('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ab8=['Request','createOpenchannelMessage','../client'];(function(_0x1a8ff0,_0x20788d){var _0x3588bf=function(_0x3b5499){while(--_0x3b5499){_0x1a8ff0['push'](_0x1a8ff0['shift']());}};_0x3588bf(++_0x20788d);}(_0x0ab8,0x158));var _0x80ab=function(_0x354454,_0x528b77){_0x354454=_0x354454-0x0;var _0x9ef36f=_0x0ab8[_0x354454];return _0x9ef36f;};'use strict';var client=require(_0x80ab('0x0'));exports['create']=function(_0x167485){return client[_0x80ab('0x1')]('CreateOpenchannelMessage',{'body':_0x167485,'log':_0x80ab('0x2')});};
\ No newline at end of file
+var _0x046a=['createOpenchannelMessage','../client','create','Request'];(function(_0x78e160,_0x4790cd){var _0x1c48a0=function(_0x345e4c){while(--_0x345e4c){_0x78e160['push'](_0x78e160['shift']());}};_0x1c48a0(++_0x4790cd);}(_0x046a,0x95));var _0xa046=function(_0x3054be,_0x1bdc8b){_0x3054be=_0x3054be-0x0;var _0x3df150=_0x046a[_0x3054be];return _0x3df150;};'use strict';var client=require(_0xa046('0x0'));exports[_0xa046('0x1')]=function(_0x4de7be){return client[_0xa046('0x2')]('CreateOpenchannelMessage',{'body':_0x4de7be,'log':_0xa046('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4ee=['name','timeout','strategy','Agents','online','getOpenchannelQueues','../client','Request','GetOpenchannelQueue'];(function(_0x1b15c3,_0x120ec7){var _0x66fd4c=function(_0x1612a1){while(--_0x1612a1){_0x1b15c3['push'](_0x1b15c3['shift']());}};_0x66fd4c(++_0x120ec7);}(_0xb4ee,0xa8));var _0xeb4e=function(_0x542350,_0xe198a9){_0x542350=_0x542350-0x0;var _0x4c4406=_0xb4ee[_0x542350];return _0x4c4406;};'use strict';var client=require(_0xeb4e('0x0'));exports['getOpenchannelQueues']=function(){return function(){return client[_0xeb4e('0x1')](_0xeb4e('0x2'),{'options':{'raw':![],'attributes':['id',_0xeb4e('0x3'),_0xeb4e('0x4'),_0xeb4e('0x5')],'include':[{'model':'User','as':_0xeb4e('0x6'),'attributes':['id',_0xeb4e('0x3'),_0xeb4e('0x7'),'openchannelPause']}]},'log':_0xeb4e('0x8')});};};
\ No newline at end of file
+var _0x900e=['GetOpenchannelQueue','name','timeout','strategy','User','Agents','online','openchannelPause','../client','getOpenchannelQueues'];(function(_0x5de1bc,_0x434be1){var _0x19f4b8=function(_0x35f764){while(--_0x35f764){_0x5de1bc['push'](_0x5de1bc['shift']());}};_0x19f4b8(++_0x434be1);}(_0x900e,0x1b6));var _0xe900=function(_0x2d0d9f,_0x22c0d8){_0x2d0d9f=_0x2d0d9f-0x0;var _0x30243d=_0x900e[_0x2d0d9f];return _0x30243d;};'use strict';var client=require(_0xe900('0x0'));exports[_0xe900('0x1')]=function(){return function(){return client['Request'](_0xe900('0x2'),{'options':{'raw':![],'attributes':['id',_0xe900('0x3'),_0xe900('0x4'),_0xe900('0x5')],'include':[{'model':_0xe900('0x6'),'as':_0xe900('0x7'),'attributes':['id',_0xe900('0x3'),_0xe900('0x8'),_0xe900('0x9')]}]},'log':_0xe900('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd0fc=['Request','CreateOpenchannelQueueReport','update','UpdateOpenchannelQueueReport','../client','create'];(function(_0x152341,_0x8f0c56){var _0x440e1b=function(_0x33918f){while(--_0x33918f){_0x152341['push'](_0x152341['shift']());}};_0x440e1b(++_0x8f0c56);}(_0xd0fc,0x1e4));var _0xcd0f=function(_0x1bb9c9,_0x2aa494){_0x1bb9c9=_0x1bb9c9-0x0;var _0x2c9e6e=_0xd0fc[_0x1bb9c9];return _0x2c9e6e;};'use strict';var client=require(_0xcd0f('0x0'));exports[_0xcd0f('0x1')]=function(_0x34971a){return client[_0xcd0f('0x2')](_0xcd0f('0x3'),{'body':_0x34971a,'log':'CreateOpenchannelQueueReport'});};exports[_0xcd0f('0x4')]=function(_0x35b7a2,_0x415787){return client[_0xcd0f('0x2')](_0xcd0f('0x5'),{'body':_0x415787,'options':{'where':{'uniqueid':_0x35b7a2},'order':[['id','DESC']],'limit':0x1},'log':_0xcd0f('0x5')});};
\ No newline at end of file
+var _0x13cf=['update','UpdateOpenchannelQueueReport','DESC','../client','create','CreateOpenchannelQueueReport'];(function(_0x46c083,_0x50af68){var _0x15a385=function(_0x2d48d7){while(--_0x2d48d7){_0x46c083['push'](_0x46c083['shift']());}};_0x15a385(++_0x50af68);}(_0x13cf,0x11d));var _0xf13c=function(_0x4bb66f,_0x3cd682){_0x4bb66f=_0x4bb66f-0x0;var _0xf2772f=_0x13cf[_0x4bb66f];return _0xf2772f;};'use strict';var client=require(_0xf13c('0x0'));exports[_0xf13c('0x1')]=function(_0x119950){return client['Request'](_0xf13c('0x2'),{'body':_0x119950,'log':_0xf13c('0x2')});};exports[_0xf13c('0x3')]=function(_0x1fb2f4,_0x59dc38){return client['Request'](_0xf13c('0x4'),{'body':_0x59dc38,'options':{'where':{'uniqueid':_0x1fb2f4},'order':[['id',_0xf13c('0x5')]],'limit':0x1},'log':_0xf13c('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf873=['addTags','AddTagsToSmsInteraction','addTagsToSmsInteraction','update','Request','UpdateSmsInteraction','updateSmsInteraction'];(function(_0x288f47,_0x37e3b2){var _0x5a3b78=function(_0x329391){while(--_0x329391){_0x288f47['push'](_0x288f47['shift']());}};_0x5a3b78(++_0x37e3b2);}(_0xf873,0xb2));var _0x3f87=function(_0x5b9145,_0x5c79eb){_0x5b9145=_0x5b9145-0x0;var _0x4fa657=_0xf873[_0x5b9145];return _0x4fa657;};'use strict';var client=require('../client');exports[_0x3f87('0x0')]=function(_0x3545ce,_0x311101){return client[_0x3f87('0x1')](_0x3f87('0x2'),{'body':_0x311101,'options':{'where':{'id':_0x3545ce}},'log':_0x3f87('0x3')});};exports[_0x3f87('0x4')]=function(_0x1d68dd,_0x3c80d6){return client['Request'](_0x3f87('0x5'),{'body':_0x3c80d6,'options':{'where':{'id':_0x1d68dd}},'log':_0x3f87('0x6')});};
\ No newline at end of file
+var _0x56e6=['AddTagsToSmsInteraction','addTagsToSmsInteraction','../client','update','Request','UpdateSmsInteraction','addTags'];(function(_0x554047,_0x46ec41){var _0x5d11e4=function(_0x5a026e){while(--_0x5a026e){_0x554047['push'](_0x554047['shift']());}};_0x5d11e4(++_0x46ec41);}(_0x56e6,0x6b));var _0x656e=function(_0x5e6c33,_0x4f157a){_0x5e6c33=_0x5e6c33-0x0;var _0x142bc9=_0x56e6[_0x5e6c33];return _0x142bc9;};'use strict';var client=require(_0x656e('0x0'));exports[_0x656e('0x1')]=function(_0x27c324,_0x75e34c){return client[_0x656e('0x2')](_0x656e('0x3'),{'body':_0x75e34c,'options':{'where':{'id':_0x27c324}},'log':'updateSmsInteraction'});};exports[_0x656e('0x4')]=function(_0x23c947,_0xe7d540){return client[_0x656e('0x2')](_0x656e('0x5'),{'body':_0xe7d540,'options':{'where':{'id':_0x23c947}},'log':_0x656e('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9ce8=['create','Request','CreateSmsMessage','../client'];(function(_0x18e6e8,_0x7f316c){var _0x4d05d6=function(_0x306b87){while(--_0x306b87){_0x18e6e8['push'](_0x18e6e8['shift']());}};_0x4d05d6(++_0x7f316c);}(_0x9ce8,0x1e3));var _0x89ce=function(_0x3c4f1f,_0x20d3ec){_0x3c4f1f=_0x3c4f1f-0x0;var _0x19cb69=_0x9ce8[_0x3c4f1f];return _0x19cb69;};'use strict';var client=require(_0x89ce('0x0'));exports[_0x89ce('0x1')]=function(_0x461782){return client[_0x89ce('0x2')](_0x89ce('0x3'),{'body':_0x461782,'log':'createSmsMessage'});};
\ No newline at end of file
+var _0x109e=['createSmsMessage','../client','Request'];(function(_0x204ad4,_0x502841){var _0x50675f=function(_0x30ad49){while(--_0x30ad49){_0x204ad4['push'](_0x204ad4['shift']());}};_0x50675f(++_0x502841);}(_0x109e,0x181));var _0xe109=function(_0x4a00f8,_0xc965ad){_0x4a00f8=_0x4a00f8-0x0;var _0x473623=_0x109e[_0x4a00f8];return _0x473623;};'use strict';var client=require(_0xe109('0x0'));exports['create']=function(_0x147293){return client[_0xe109('0x1')]('CreateSmsMessage',{'body':_0x147293,'log':_0xe109('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['online','../client','Request','name','strategy','Agents'];(function(_0x10b769,_0x46c447){var _0x357985=function(_0x3d8420){while(--_0x3d8420){_0x10b769['push'](_0x10b769['shift']());}};_0x357985(++_0x46c447);}(_0xb7e7,0x121));var _0x7b7e=function(_0x39096d,_0x51f8a0){_0x39096d=_0x39096d-0x0;var _0x13da4f=_0xb7e7[_0x39096d];return _0x13da4f;};'use strict';var client=require(_0x7b7e('0x0'));exports['getSmsQueues']=function(){return function(){return client[_0x7b7e('0x1')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id',_0x7b7e('0x2'),'timeout',_0x7b7e('0x3')],'include':[{'model':'User','as':_0x7b7e('0x4'),'attributes':['id',_0x7b7e('0x2'),_0x7b7e('0x5'),'smsPause']}]},'log':'getSmsQueues'});};};
\ No newline at end of file
+var _0x0713=['getSmsQueues','Request','GetSmsQueue','name','timeout','strategy','Agents','online','smsPause'];(function(_0x37de50,_0x27f82a){var _0x2c37dc=function(_0x325186){while(--_0x325186){_0x37de50['push'](_0x37de50['shift']());}};_0x2c37dc(++_0x27f82a);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports['getSmsQueues']=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':![],'attributes':['id',_0x3071('0x2'),_0x3071('0x3'),_0x3071('0x4')],'include':[{'model':'User','as':_0x3071('0x5'),'attributes':['id',_0x3071('0x2'),_0x3071('0x6'),_0x3071('0x7')]}]},'log':_0x3071('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['../client','create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC'];(function(_0x360319,_0x1cd1ee){var _0x4062fb=function(_0x213292){while(--_0x213292){_0x360319['push'](_0x360319['shift']());}};_0x4062fb(++_0x1cd1ee);}(_0x008c,0x188));var _0xc008=function(_0x1440ce,_0x136aee){_0x1440ce=_0x1440ce-0x0;var _0x389c35=_0x008c[_0x1440ce];return _0x389c35;};'use strict';var client=require(_0xc008('0x0'));exports[_0xc008('0x1')]=function(_0x15aadc){return client[_0xc008('0x2')](_0xc008('0x3'),{'body':_0x15aadc,'log':'CreateSmsQueueReport'});};exports[_0xc008('0x4')]=function(_0x47063f,_0x10b33c){return client[_0xc008('0x2')](_0xc008('0x5'),{'body':_0x10b33c,'options':{'where':{'uniqueid':_0x47063f},'order':[['id',_0xc008('0x6')]],'limit':0x1},'log':_0xc008('0x5')});};
\ No newline at end of file
+var _0x34e8=['create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC','../client'];(function(_0x99bfbe,_0x4e4134){var _0x301dd1=function(_0x4c6830){while(--_0x4c6830){_0x99bfbe['push'](_0x99bfbe['shift']());}};_0x301dd1(++_0x4e4134);}(_0x34e8,0x12c));var _0x834e=function(_0x525733,_0x231cb8){_0x525733=_0x525733-0x0;var _0x1ade39=_0x34e8[_0x525733];return _0x1ade39;};'use strict';var client=require(_0x834e('0x0'));exports[_0x834e('0x1')]=function(_0x8b339){return client[_0x834e('0x2')]('CreateSmsQueueReport',{'body':_0x8b339,'log':_0x834e('0x3')});};exports[_0x834e('0x4')]=function(_0x472111,_0x31bf20){return client[_0x834e('0x2')](_0x834e('0x5'),{'body':_0x31bf20,'options':{'where':{'uniqueid':_0x472111},'order':[['id',_0x834e('0x6')]],'limit':0x1},'log':'UpdateSmsQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x2b8e3c,_0x3c12c9){var _0xdfb0bc=function(_0x523082){while(--_0x523082){_0x2b8e3c['push'](_0x2b8e3c['shift']());}};_0xdfb0bc(++_0x3c12c9);}(_0xa9e0,0x123));var _0x0a9e=function(_0x28947d,_0x4cc9c6){_0x28947d=_0x28947d-0x0;var _0x12d2ee=_0xa9e0[_0x28947d];return _0x12d2ee;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
+var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x412458,_0x8db8d6){var _0x3be5f9=function(_0x599ff1){while(--_0x599ff1){_0x412458['push'](_0x412458['shift']());}};_0x3be5f9(++_0x8db8d6);}(_0xa9e0,0x123));var _0x0a9e=function(_0x24237f,_0x4cf32c){_0x24237f=_0x24237f-0x0;var _0x48298e=_0xa9e0[_0x24237f];return _0x48298e;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x975b=['AddTagsToWhatsappInteraction','addTagsToWhatsappInteraction','../client','update','Request','UpdateWhatsappInteraction','updateWhatsappInteraction'];(function(_0x52c7f2,_0x33839a){var _0x1b4eb0=function(_0x168483){while(--_0x168483){_0x52c7f2['push'](_0x52c7f2['shift']());}};_0x1b4eb0(++_0x33839a);}(_0x975b,0x1c9));var _0xb975=function(_0x5fcabc,_0x405620){_0x5fcabc=_0x5fcabc-0x0;var _0x17001d=_0x975b[_0x5fcabc];return _0x17001d;};'use strict';var client=require(_0xb975('0x0'));exports[_0xb975('0x1')]=function(_0x39f2a7,_0x354374){return client[_0xb975('0x2')](_0xb975('0x3'),{'body':_0x354374,'options':{'where':{'id':_0x39f2a7}},'log':_0xb975('0x4')});};exports['addTags']=function(_0xa92c72,_0xfb173){return client[_0xb975('0x2')](_0xb975('0x5'),{'body':_0xfb173,'options':{'where':{'id':_0xa92c72}},'log':_0xb975('0x6')});};
\ No newline at end of file
+var _0x9b0d=['addTags','AddTagsToWhatsappInteraction','addTagsToWhatsappInteraction','update','Request','updateWhatsappInteraction'];(function(_0x5ce496,_0x4d3ddf){var _0xe2325c=function(_0x38a7d5){while(--_0x38a7d5){_0x5ce496['push'](_0x5ce496['shift']());}};_0xe2325c(++_0x4d3ddf);}(_0x9b0d,0xb7));var _0xd9b0=function(_0x44c3f3,_0x5ea398){_0x44c3f3=_0x44c3f3-0x0;var _0x7adcf1=_0x9b0d[_0x44c3f3];return _0x7adcf1;};'use strict';var client=require('../client');exports[_0xd9b0('0x0')]=function(_0x2f9836,_0x21e19d){return client[_0xd9b0('0x1')]('UpdateWhatsappInteraction',{'body':_0x21e19d,'options':{'where':{'id':_0x2f9836}},'log':_0xd9b0('0x2')});};exports[_0xd9b0('0x3')]=function(_0x3168e3,_0xe33596){return client['Request'](_0xd9b0('0x4'),{'body':_0xe33596,'options':{'where':{'id':_0x3168e3}},'log':_0xd9b0('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe7df=['create','Request','CreateWhatsappMessage','createWhatsappMessage','../client'];(function(_0x1472b6,_0x1804b4){var _0x3adc5e=function(_0x5b3cb1){while(--_0x5b3cb1){_0x1472b6['push'](_0x1472b6['shift']());}};_0x3adc5e(++_0x1804b4);}(_0xe7df,0x121));var _0xfe7d=function(_0x33fb0e,_0x741daf){_0x33fb0e=_0x33fb0e-0x0;var _0x4ec447=_0xe7df[_0x33fb0e];return _0x4ec447;};'use strict';var client=require(_0xfe7d('0x0'));exports[_0xfe7d('0x1')]=function(_0x21ff7f){return client[_0xfe7d('0x2')](_0xfe7d('0x3'),{'body':_0x21ff7f,'log':_0xfe7d('0x4')});};
\ No newline at end of file
+var _0x861e=['Request','CreateWhatsappMessage'];(function(_0x382445,_0x5727ac){var _0x4219cb=function(_0x25bc48){while(--_0x25bc48){_0x382445['push'](_0x382445['shift']());}};_0x4219cb(++_0x5727ac);}(_0x861e,0x1a2));var _0xe861=function(_0x5233ea,_0x263a7d){_0x5233ea=_0x5233ea-0x0;var _0x2643a6=_0x861e[_0x5233ea];return _0x2643a6;};'use strict';var client=require('../client');exports['create']=function(_0x48bf65){return client[_0xe861('0x0')](_0xe861('0x1'),{'body':_0x48bf65,'log':'createWhatsappMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e73=['name','whatsappPause','../client','getWhatsappQueues','Request','GetWhatsappQueue','timeout','strategy','User'];(function(_0x3e8bf8,_0x4e76d6){var _0x3391ce=function(_0x4f32d6){while(--_0x4f32d6){_0x3e8bf8['push'](_0x3e8bf8['shift']());}};_0x3391ce(++_0x4e76d6);}(_0x2e73,0xd1));var _0x32e7=function(_0x38b14f,_0xd08fa8){_0x38b14f=_0x38b14f-0x0;var _0x22a324=_0x2e73[_0x38b14f];return _0x22a324;};'use strict';var client=require(_0x32e7('0x0'));exports[_0x32e7('0x1')]=function(){return function(){return client[_0x32e7('0x2')](_0x32e7('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x32e7('0x4'),_0x32e7('0x5')],'include':[{'model':_0x32e7('0x6'),'as':'Agents','attributes':['id',_0x32e7('0x7'),'online',_0x32e7('0x8')]}]},'log':_0x32e7('0x1')});};};
\ No newline at end of file
+var _0xcaea=['Agents','online','whatsappPause','getWhatsappQueues','../client','name','timeout','strategy','User'];(function(_0x14315f,_0x362bb7){var _0x2ef315=function(_0x15a3b8){while(--_0x15a3b8){_0x14315f['push'](_0x14315f['shift']());}};_0x2ef315(++_0x362bb7);}(_0xcaea,0xca));var _0xacae=function(_0x246a9f,_0x31b372){_0x246a9f=_0x246a9f-0x0;var _0x36a28b=_0xcaea[_0x246a9f];return _0x36a28b;};'use strict';var client=require(_0xacae('0x0'));exports['getWhatsappQueues']=function(){return function(){return client['Request']('GetWhatsappQueue',{'options':{'raw':![],'attributes':['id',_0xacae('0x1'),_0xacae('0x2'),_0xacae('0x3')],'include':[{'model':_0xacae('0x4'),'as':_0xacae('0x5'),'attributes':['id','name',_0xacae('0x6'),_0xacae('0x7')]}]},'log':_0xacae('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7e7f=['create','CreateWhatsappQueueReport','Request','UpdateWhatsappQueueReport','DESC'];(function(_0x17541e,_0x46df72){var _0x1c17eb=function(_0x5f1d1e){while(--_0x5f1d1e){_0x17541e['push'](_0x17541e['shift']());}};_0x1c17eb(++_0x46df72);}(_0x7e7f,0xcd));var _0xf7e7=function(_0x3a805b,_0x17a594){_0x3a805b=_0x3a805b-0x0;var _0x3127c8=_0x7e7f[_0x3a805b];return _0x3127c8;};'use strict';var client=require('../client');exports[_0xf7e7('0x0')]=function(_0x10b05a){return client['Request'](_0xf7e7('0x1'),{'body':_0x10b05a,'log':_0xf7e7('0x1')});};exports['update']=function(_0x472dbe,_0x4d21a8){return client[_0xf7e7('0x2')](_0xf7e7('0x3'),{'body':_0x4d21a8,'options':{'where':{'uniqueid':_0x472dbe},'order':[['id',_0xf7e7('0x4')]],'limit':0x1},'log':'UpdateWhatsappQueueReport'});};
\ No newline at end of file
+var _0xd99a=['Request','UpdateWhatsappQueueReport','../client','create','CreateWhatsappQueueReport'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd99a,0x13d));var _0xad99=function(_0x485d74,_0x353ef7){_0x485d74=_0x485d74-0x0;var _0x3b7be6=_0xd99a[_0x485d74];return _0x3b7be6;};'use strict';var client=require(_0xad99('0x0'));exports[_0xad99('0x1')]=function(_0x292a3e){return client['Request'](_0xad99('0x2'),{'body':_0x292a3e,'log':_0xad99('0x2')});};exports['update']=function(_0x760667,_0x2e2ea5){return client[_0xad99('0x3')](_0xad99('0x4'),{'body':_0x2e2ea5,'options':{'where':{'uniqueid':_0x760667},'order':[['id','DESC']],'limit':0x1},'log':'UpdateWhatsappQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c1d=['[%s][AGENT]\x20ROUTING\x20STOPPED','close','next','agent','[%s][QUEUE]\x20%s','stack','util','seq-queue','../../../../config/logger','routing','./strategy','string','number','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','error','[%s][AGENT]\x20%s','map','join','stop','find','agents','timeout','createQueue','atimeout','channel','START:%s','rules','end'];(function(_0xe11138,_0x3bb8e1){var _0x16b729=function(_0x36b3bf){while(--_0x36b3bf){_0xe11138['push'](_0xe11138['shift']());}};_0x16b729(++_0x3bb8e1);}(_0x1c1d,0x116));var _0xd1c1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1c1d[_0x3dd15e];return _0x231fd0;};'use strict';var schema=require('validate');var _=require('lodash');var util=require(_0xd1c1('0x0'));var seqqueue=require(_0xd1c1('0x1'));var logger=require(_0xd1c1('0x2'))(_0xd1c1('0x3'));var strategy=require(_0xd1c1('0x4'));var queue=schema({'name':{'type':_0xd1c1('0x5'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0xd1c1('0x6'),'message':_0xd1c1('0x7')}});function writeLog(_0x28d7a0,_0xb8a1d5,_0x39a4cf){return logger[_0xd1c1('0x8')](util[_0xd1c1('0x9')](_0xd1c1('0xa'),_0x28d7a0,_0xb8a1d5['name'],_0x39a4cf));}function handleFindAgent(_0x1d1932){return function(_0xc3287b){return _0xc3287b[_0xd1c1('0xb')][_0xd1c1('0xc')]()===_0x1d1932['toLowerCase']();};}exports[_0xd1c1('0xd')]=function(_0x208585,_0x4fef3e,_0x1850c1,_0x881b7f){return function(_0x5a1ba3){try{var _0x226b31={'name':_0x4fef3e[0x0],'timeout':_0x4fef3e[0x1]};var _0x2802c2=queue['validate'](_0x226b31,{'typecast':!![]});if(_0x2802c2['length']){logger[_0xd1c1('0xe')](_0xd1c1('0xf'),_0x208585,_[_0xd1c1('0x10')](_0x2802c2,'message')[_0xd1c1('0x11')](',\x20'));_0x5a1ba3[_0xd1c1('0x12')]();}else{var _0xb5a339=_[_0xd1c1('0x13')](_0x1850c1[_0xd1c1('0x14')],handleFindAgent(_0x226b31[_0xd1c1('0xb')]));if(_0xb5a339){var _0x50c886=(_0x226b31[_0xd1c1('0x15')]||0xa)*0x3e8;var _0x1946ae,_0x576be1;var _0x5bb8d3=seqqueue[_0xd1c1('0x16')](_0x50c886);_0x5bb8d3['id']=_0x208585;_0x5bb8d3[_0xd1c1('0x17')]=_0x50c886;_0x5bb8d3['channel']=_0x881b7f[_0xd1c1('0x18')];writeLog(_0x208585,_0xb5a339,util[_0xd1c1('0x9')](_0xd1c1('0x19'),_0x50c886));_0x1850c1[_0xd1c1('0x1a')][_0x208585]['on'](_0xd1c1('0x1b'),function(){logger[_0xd1c1('0x8')](_0xd1c1('0x1c'),_0x208585);clearTimeout(_0x576be1);_0x576be1=undefined;_0x5bb8d3[_0xd1c1('0x1d')]();if(_0x1850c1[_0xd1c1('0x1a')][_0x208585]){delete _0x1850c1[_0xd1c1('0x1a')][_0x208585];}_0x5a1ba3['stop']();});_0x1850c1[_0xd1c1('0x1a')][_0x208585]['on']('complete',function(){if(_0x1850c1[_0xd1c1('0x1a')][_0x208585]){delete _0x1850c1[_0xd1c1('0x1a')][_0x208585];}});_0x576be1=setTimeout(function(){logger['info']('[%s][AGENT]\x20ROUTING\x20END',_0x208585);clearTimeout(_0x576be1);_0x5bb8d3[_0xd1c1('0x1d')]();_0x5a1ba3[_0xd1c1('0x1e')]();},_0x50c886);strategy[_0xd1c1('0x1f')](_0x5bb8d3,_0xb5a339,_0x1850c1,_0x881b7f);}else{logger[_0xd1c1('0xe')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x208585,_0x226b31[_0xd1c1('0xb')]);_0x5a1ba3[_0xd1c1('0x12')]();}}}catch(_0x43aab1){console['log'](_0x43aab1);logger[_0xd1c1('0xe')](_0xd1c1('0x20'),_0x208585,_0x43aab1[_0xd1c1('0x21')]);_0x5a1ba3['stop']();}};};
\ No newline at end of file
+var _0xd3f2=['info','format','[%s][AGENT][NAME:%s][STATUS:%s]','toLowerCase','consequence','length','error','[%s][AGENT]\x20%s','message','join','stop','agents','name','timeout','createQueue','atimeout','channel','START:%s','rules','end','[%s][AGENT]\x20ROUTING\x20STOPPED','[%s][AGENT]\x20ROUTING\x20END','close','next','agent','log','[%s][QUEUE]\x20%s','stack','validate','lodash','util','seq-queue','../../../../config/logger','routing','./strategy','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number'];(function(_0x1f84cc,_0xa1b9c6){var _0x598979=function(_0x51e55d){while(--_0x51e55d){_0x1f84cc['push'](_0x1f84cc['shift']());}};_0x598979(++_0xa1b9c6);}(_0xd3f2,0x91));var _0x2d3f=function(_0x512f8c,_0x3545c1){_0x512f8c=_0x512f8c-0x0;var _0x2099f8=_0xd3f2[_0x512f8c];return _0x2099f8;};'use strict';var schema=require(_0x2d3f('0x0'));var _=require(_0x2d3f('0x1'));var util=require(_0x2d3f('0x2'));var seqqueue=require(_0x2d3f('0x3'));var logger=require(_0x2d3f('0x4'))(_0x2d3f('0x5'));var strategy=require(_0x2d3f('0x6'));var queue=schema({'name':{'type':_0x2d3f('0x7'),'required':!![],'message':_0x2d3f('0x8')},'timeout':{'type':_0x2d3f('0x9'),'message':_0x2d3f('0xa')}});function writeLog(_0x1a0608,_0x548ffc,_0x208ed3){return logger[_0x2d3f('0xb')](util[_0x2d3f('0xc')](_0x2d3f('0xd'),_0x1a0608,_0x548ffc['name'],_0x208ed3));}function handleFindAgent(_0x42f4a6){return function(_0x13319f){return _0x13319f['name'][_0x2d3f('0xe')]()===_0x42f4a6['toLowerCase']();};}exports[_0x2d3f('0xf')]=function(_0x1e760c,_0x4c3723,_0x27abf7,_0x2114c4){return function(_0x257de4){try{var _0xa4b8eb={'name':_0x4c3723[0x0],'timeout':_0x4c3723[0x1]};var _0x1a05b3=queue['validate'](_0xa4b8eb,{'typecast':!![]});if(_0x1a05b3[_0x2d3f('0x10')]){logger[_0x2d3f('0x11')](_0x2d3f('0x12'),_0x1e760c,_['map'](_0x1a05b3,_0x2d3f('0x13'))[_0x2d3f('0x14')](',\x20'));_0x257de4[_0x2d3f('0x15')]();}else{var _0x4534f1=_['find'](_0x27abf7[_0x2d3f('0x16')],handleFindAgent(_0xa4b8eb[_0x2d3f('0x17')]));if(_0x4534f1){var _0x52b2fd=(_0xa4b8eb[_0x2d3f('0x18')]||0xa)*0x3e8;var _0x5987cd,_0x244d0b;var _0x1cc903=seqqueue[_0x2d3f('0x19')](_0x52b2fd);_0x1cc903['id']=_0x1e760c;_0x1cc903[_0x2d3f('0x1a')]=_0x52b2fd;_0x1cc903[_0x2d3f('0x1b')]=_0x2114c4[_0x2d3f('0x1b')];writeLog(_0x1e760c,_0x4534f1,util[_0x2d3f('0xc')](_0x2d3f('0x1c'),_0x52b2fd));_0x27abf7[_0x2d3f('0x1d')][_0x1e760c]['on'](_0x2d3f('0x1e'),function(){logger[_0x2d3f('0xb')](_0x2d3f('0x1f'),_0x1e760c);clearTimeout(_0x244d0b);_0x244d0b=undefined;_0x1cc903['close']();if(_0x27abf7['rules'][_0x1e760c]){delete _0x27abf7[_0x2d3f('0x1d')][_0x1e760c];}_0x257de4[_0x2d3f('0x15')]();});_0x27abf7[_0x2d3f('0x1d')][_0x1e760c]['on']('complete',function(){if(_0x27abf7['rules'][_0x1e760c]){delete _0x27abf7['rules'][_0x1e760c];}});_0x244d0b=setTimeout(function(){logger['info'](_0x2d3f('0x20'),_0x1e760c);clearTimeout(_0x244d0b);_0x1cc903[_0x2d3f('0x21')]();_0x257de4[_0x2d3f('0x22')]();},_0x52b2fd);strategy[_0x2d3f('0x23')](_0x1cc903,_0x4534f1,_0x27abf7,_0x2114c4);}else{logger[_0x2d3f('0x11')]('[%s][AGENT]\x20agent\x20not\x20found\x20%s',_0x1e760c,_0xa4b8eb[_0x2d3f('0x17')]);_0x257de4[_0x2d3f('0x15')]();}}}catch(_0x282c63){console[_0x2d3f('0x24')](_0x282c63);logger[_0x2d3f('0x11')](_0x2d3f('0x25'),_0x1e760c,_0x282c63[_0x2d3f('0x26')]);_0x257de4[_0x2d3f('0x15')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fef=['UserId','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','sms','channel','whatsapp','phone','account','upperFirst','InteractionId','interaction','created','body','getMustacheRender','create','then','info','catch','stringify','finally','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','message','toString','postText','error','amazonlex','providerName','Message','dialogState','Failed','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/smsMessage','../../rpc/faxMessage','isNil'];(function(_0x28947d,_0x4cc9c6){var _0x12d2ee=function(_0x3f38fc){while(--_0x3f38fc){_0x28947d['push'](_0x28947d['shift']());}};_0x12d2ee(++_0x4cc9c6);}(_0x7fef,0xdd));var _0xf7fe=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7fef[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xf7fe('0x0'));var moment=require(_0xf7fe('0x1'));var AWS=require('aws-sdk');var utils=require(_0xf7fe('0x2'));var logger=require(_0xf7fe('0x3'))(_0xf7fe('0x4'));var rpc={'chatMessage':require(_0xf7fe('0x5')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xf7fe('0x6')),'faxMessage':require(_0xf7fe('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports['consequence']=function(_0x316749,_0x40a38c){return function(_0x4ed883){try{if(!_[_0xf7fe('0x8')](this['interaction'][_0xf7fe('0x9')])){logger['info'](_0xf7fe('0xa'),_0x316749,_0xf7fe('0xb'));return _0x4ed883[_0xf7fe('0xc')]();}var _0x49aa3b={'ContactId':this[_0xf7fe('0xd')]['id'],'sentAt':moment()[_0xf7fe('0xe')](_0xf7fe('0xf')),'direction':_0xf7fe('0x10')};if(this['channel']===_0xf7fe('0x11')||this[_0xf7fe('0x12')]===_0xf7fe('0x13')){_0x49aa3b[_0xf7fe('0x14')]=this['interaction'][_0xf7fe('0x14')];}var _0x3420f7=this[_0xf7fe('0x12')];if(_0x3420f7==='chat'){_0x49aa3b['ChatWebsiteId']=this[_0xf7fe('0x15')]['id'];}else{_0x49aa3b[_['upperFirst'](_0x3420f7)+'AccountId']=this[_0xf7fe('0x15')]['id'];}_0x49aa3b[_[_0xf7fe('0x16')](_0x3420f7)+_0xf7fe('0x17')]=this[_0xf7fe('0x18')]['id'];if(this[_0xf7fe('0x18')][_0xf7fe('0x19')]){var _0x251a45=_0x40a38c[0x4];if(!_['isEmpty'](_0x251a45)){_0x49aa3b[_0xf7fe('0x1a')]=utils[_0xf7fe('0x1b')](_0x251a45,this);return rpc[_0x3420f7+'Message'][_0xf7fe('0x1c')](_0x49aa3b)[_0xf7fe('0x1d')](function(_0x88a0e1){logger[_0xf7fe('0x1e')](_0xf7fe('0xa'),_0x316749,_0x49aa3b[_0xf7fe('0x1a')]);})[_0xf7fe('0x1f')](function(_0x252095){logger['error'](_0xf7fe('0xa'),_0x316749,JSON[_0xf7fe('0x20')](_0x252095));})[_0xf7fe('0x21')](function(){logger[_0xf7fe('0x1e')]('[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x316749);_0x4ed883[_0xf7fe('0x22')]();});}else{logger[_0xf7fe('0x1e')](_0xf7fe('0x23'),_0x316749);_0x4ed883[_0xf7fe('0x22')]();}}else{var _0x4c63bb=this;var _0x4aa485=new AWS[(_0xf7fe('0x24'))]({'accessKeyId':_0x40a38c[0x0],'secretAccessKey':_0x40a38c[0x1],'region':_0x40a38c[0x2]});var _0xd911e5={'botAlias':'$LATEST','botName':_0x40a38c[0x3],'inputText':this[_0xf7fe('0x25')][_0xf7fe('0x1a')],'userId':this[_0xf7fe('0x12')]+':'+this['interaction']['id'][_0xf7fe('0x26')]()};_0x4aa485[_0xf7fe('0x27')](_0xd911e5,function(_0x1865f6,_0x4802e5){if(_0x1865f6){logger[_0xf7fe('0x28')](_0xf7fe('0xa'),_0x316749,_0x1865f6['message']);_0x4ed883['next']();}else if(_0x4802e5&&_0x4802e5[_0xf7fe('0x25')]){_0x4c63bb[_0xf7fe('0x1a')][_0xf7fe('0x29')]=_0x4802e5;_0x49aa3b[_0xf7fe('0x1a')]=_0x4802e5[_0xf7fe('0x25')];_0x49aa3b[_0xf7fe('0x2a')]=_0xf7fe('0x29');_0x49aa3b['providerResponse']=JSON['stringify'](_0x4802e5);return rpc[_0x3420f7+_0xf7fe('0x2b')][_0xf7fe('0x1c')](_0x49aa3b)[_0xf7fe('0x1d')](function(_0x1d6d11){logger[_0xf7fe('0x1e')](_0xf7fe('0xa'),_0x316749,_0x49aa3b[_0xf7fe('0x1a')]);if(_0x4802e5[_0xf7fe('0x2c')]==_0xf7fe('0x2d')){_0x4ed883[_0xf7fe('0xc')]();}else{_0x4ed883[_0xf7fe('0x22')]();}})['catch'](function(_0x54f662){logger['error'](_0xf7fe('0xa'),_0x316749,JSON['stringify'](_0x54f662));_0x4ed883[_0xf7fe('0xc')]();});}else{_0x4ed883[_0xf7fe('0xc')]();}});}}catch(_0xa9dbb5){logger[_0xf7fe('0x28')](_0xf7fe('0xa'),_0x316749,JSON[_0xf7fe('0x20')](_0xa9dbb5));_0x4ed883['stop']();}};};
\ No newline at end of file
+var _0x16a7=['moment','aws-sdk','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','UserId','info','contact','YYYY-MM-DD\x20HH:mm:ss','out','sms','channel','phone','ChatWebsiteId','upperFirst','AccountId','account','created','isEmpty','Message','create','then','[%s][AMAZONLEX]\x20%s','body','error','stringify','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','LexRuntime','$LATEST','toString','postText','message','next','amazonlex','providerResponse','dialogState','Failed','catch','lodash'];(function(_0x5ca89d,_0x246d45){var _0x42c24f=function(_0x11c324){while(--_0x11c324){_0x5ca89d['push'](_0x5ca89d['shift']());}};_0x42c24f(++_0x246d45);}(_0x16a7,0xbf));var _0x716a=function(_0x7b93f4,_0x1117fd){_0x7b93f4=_0x7b93f4-0x0;var _0x5f7fd1=_0x16a7[_0x7b93f4];return _0x5f7fd1;};'use strict';var _=require(_0x716a('0x0'));var moment=require(_0x716a('0x1'));var AWS=require(_0x716a('0x2'));var utils=require('./utils');var logger=require(_0x716a('0x3'))(_0x716a('0x4'));var rpc={'chatMessage':require(_0x716a('0x5')),'openchannelMessage':require(_0x716a('0x6')),'mailMessage':require(_0x716a('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x716a('0x8'))};exports[_0x716a('0x9')]=function(_0x22bed7,_0x4396cd){return function(_0x286aa2){try{if(!_[_0x716a('0xa')](this[_0x716a('0xb')][_0x716a('0xc')])){logger[_0x716a('0xd')]('[%s][AMAZONLEX]\x20%s',_0x22bed7,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0x286aa2['next']();}var _0x5b5b11={'ContactId':this[_0x716a('0xe')]['id'],'sentAt':moment()['format'](_0x716a('0xf')),'direction':_0x716a('0x10')};if(this['channel']===_0x716a('0x11')||this[_0x716a('0x12')]==='whatsapp'){_0x5b5b11['phone']=this[_0x716a('0xb')][_0x716a('0x13')];}var _0x21f05c=this[_0x716a('0x12')];if(_0x21f05c==='chat'){_0x5b5b11[_0x716a('0x14')]=this['account']['id'];}else{_0x5b5b11[_[_0x716a('0x15')](_0x21f05c)+_0x716a('0x16')]=this[_0x716a('0x17')]['id'];}_0x5b5b11[_['upperFirst'](_0x21f05c)+'InteractionId']=this[_0x716a('0xb')]['id'];if(this[_0x716a('0xb')][_0x716a('0x18')]){var _0x2e3f8f=_0x4396cd[0x4];if(!_[_0x716a('0x19')](_0x2e3f8f)){_0x5b5b11['body']=utils['getMustacheRender'](_0x2e3f8f,this);return rpc[_0x21f05c+_0x716a('0x1a')][_0x716a('0x1b')](_0x5b5b11)[_0x716a('0x1c')](function(_0x321bfa){logger[_0x716a('0xd')](_0x716a('0x1d'),_0x22bed7,_0x5b5b11[_0x716a('0x1e')]);})['catch'](function(_0x2612da){logger[_0x716a('0x1f')](_0x716a('0x1d'),_0x22bed7,JSON[_0x716a('0x20')](_0x2612da));})[_0x716a('0x21')](function(){logger[_0x716a('0xd')](_0x716a('0x22'),_0x22bed7);_0x286aa2[_0x716a('0x23')]();});}else{logger[_0x716a('0xd')](_0x716a('0x24'),_0x22bed7);_0x286aa2[_0x716a('0x23')]();}}else{var _0x593517=this;var _0x185801=new AWS[(_0x716a('0x25'))]({'accessKeyId':_0x4396cd[0x0],'secretAccessKey':_0x4396cd[0x1],'region':_0x4396cd[0x2]});var _0x3af7ee={'botAlias':_0x716a('0x26'),'botName':_0x4396cd[0x3],'inputText':this['message'][_0x716a('0x1e')],'userId':this['channel']+':'+this[_0x716a('0xb')]['id'][_0x716a('0x27')]()};_0x185801[_0x716a('0x28')](_0x3af7ee,function(_0x44507e,_0x232325){if(_0x44507e){logger['error'](_0x716a('0x1d'),_0x22bed7,_0x44507e[_0x716a('0x29')]);_0x286aa2[_0x716a('0x2a')]();}else if(_0x232325&&_0x232325[_0x716a('0x29')]){_0x593517['body']['amazonlex']=_0x232325;_0x5b5b11[_0x716a('0x1e')]=_0x232325[_0x716a('0x29')];_0x5b5b11['providerName']=_0x716a('0x2b');_0x5b5b11[_0x716a('0x2c')]=JSON[_0x716a('0x20')](_0x232325);return rpc[_0x21f05c+_0x716a('0x1a')][_0x716a('0x1b')](_0x5b5b11)['then'](function(_0x48c853){logger[_0x716a('0xd')](_0x716a('0x1d'),_0x22bed7,_0x5b5b11[_0x716a('0x1e')]);if(_0x232325[_0x716a('0x2d')]==_0x716a('0x2e')){_0x286aa2[_0x716a('0x2a')]();}else{_0x286aa2[_0x716a('0x23')]();}})[_0x716a('0x2f')](function(_0x468372){logger[_0x716a('0x1f')](_0x716a('0x1d'),_0x22bed7,JSON[_0x716a('0x20')](_0x468372));_0x286aa2[_0x716a('0x2a')]();});}else{_0x286aa2[_0x716a('0x2a')]();}});}}catch(_0x5b85e1){logger[_0x716a('0x1f')]('[%s][AMAZONLEX]\x20%s',_0x22bed7,JSON[_0x716a('0x20')](_0x5b85e1));_0x286aa2[_0x716a('0x23')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98ac=['catch','error','[RPC][%s][AUTOREPLY]\x20%s','resolve','Interaction','update','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','finally','stop','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/faxMessage','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../mailRpc','channel','mail','body','isAutoreply','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','interaction','created','info','Autoreply\x20already\x20sent','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','getMustacheRender','message','from','phone','read','subject','startsWith','Re:','Re:\x20','chat','account','AccountId','upperFirst','InteractionId','Message','Smtp','service','host','port','secure','authentication','auth','user','pass','inReplyTo','messageId','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','</div>','headers','auto-replied','All','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','create','[%s][AUTOREPLY]\x20%s','stringify'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x98ac,0xa1));var _0xc98a=function(_0x24fe23,_0x133712){_0x24fe23=_0x24fe23-0x0;var _0x5ebc39=_0x98ac[_0x24fe23];return _0x5ebc39;};'use strict';var _=require('lodash');var moment=require(_0xc98a('0x0'));var utils=require(_0xc98a('0x1'));var logger=require(_0xc98a('0x2'))(_0xc98a('0x3'));var rpc={'chatMessage':require(_0xc98a('0x4')),'openchannelMessage':require(_0xc98a('0x5')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0xc98a('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0xc98a('0x7')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require('../../rpc/mailInteraction'),'smsInteraction':require(_0xc98a('0x8')),'faxInteraction':require(_0xc98a('0x9')),'whatsappInteraction':require(_0xc98a('0xa'))};var mailRpc=require(_0xc98a('0xb'));exports['consequence']=function(_0x166509,_0x206296,_0x14b851,_0x1d49b5){return function(_0x3145be){try{var _0x58cc65=this[_0xc98a('0xc')];if(_0x58cc65===_0xc98a('0xd')&&_0x1d49b5[_0xc98a('0xe')][_0xc98a('0xf')]){logger['info']('[%s][AUTOREPLY]\x20%s',_0x166509,_0xc98a('0x10'));return _0x3145be[_0xc98a('0x11')]();}if(_0x206296[0x0]==='1'&&(_['isNil'](this[_0xc98a('0x12')][_0xc98a('0x13')])||!this[_0xc98a('0x12')][_0xc98a('0x13')])){logger[_0xc98a('0x14')]('[%s][AUTOREPLY]\x20%s',_0x166509,_0xc98a('0x15'));return _0x3145be[_0xc98a('0x11')]();}if(_0x206296[0x0]==='2'&&this[_0xc98a('0x12')][_0xc98a('0x16')]){logger[_0xc98a('0x14')](_0xc98a('0x17'),_0x166509,_0xc98a('0x18'));return _0x3145be[_0xc98a('0x11')]();}var _0x36d728={'ContactId':this[_0xc98a('0x19')]['id'],'sentAt':moment()[_0xc98a('0x1a')](_0xc98a('0x1b')),'direction':_0xc98a('0x1c')};if(this[_0xc98a('0xc')]===_0xc98a('0xd')){_0x36d728[_0xc98a('0xe')]=utils['getMustacheRender'](_0x206296[0x2],this);}else{_0x36d728[_0xc98a('0xe')]=utils[_0xc98a('0x1d')](_0x206296[0x1],this);}if(this[_0xc98a('0x1e')]){_0x36d728['to']=this[_0xc98a('0x1e')][_0xc98a('0x1f')]||'';if(this['channel']==='mail'&&_0x206296[0x1]==='1'){_0x36d728['cc']=this[_0xc98a('0x1e')]['cc']||'';}_0x36d728[_0xc98a('0x1f')]=this['message']['to']||'';_0x36d728[_0xc98a('0x20')]=this[_0xc98a('0x1e')]['phone']||'';_0x36d728[_0xc98a('0x21')]=!![];if(this['message'][_0xc98a('0x22')]){_0x36d728[_0xc98a('0x22')]='';_0x36d728[_0xc98a('0x22')]+=_[_0xc98a('0x23')](this[_0xc98a('0x1e')]['subject'],_0xc98a('0x24'))?'':_0xc98a('0x25');_0x36d728[_0xc98a('0x22')]+=this['message'][_0xc98a('0x22')];}}if(this[_0xc98a('0xc')]===_0xc98a('0x26')){_0x36d728['ChatWebsiteId']=this[_0xc98a('0x27')]['id'];}else{_0x36d728[_['upperFirst'](this[_0xc98a('0xc')])+_0xc98a('0x28')]=this['account']['id'];}_0x36d728[_[_0xc98a('0x29')](this['channel'])+_0xc98a('0x2a')]=this['interaction']['id'];var _0x3b52ce=this[_0xc98a('0x12')];if(rpc[this['channel']+_0xc98a('0x2b')]){if(this[_0xc98a('0xc')]===_0xc98a('0xd')){var _0x3a2859={'tls':{'rejectUnauthorized':![]}};if(this[_0xc98a('0x27')][_0xc98a('0x2c')][_0xc98a('0x2d')]){_0x3a2859[_0xc98a('0x2d')]=this[_0xc98a('0x27')][_0xc98a('0x2c')]['service'];}else{_0x3a2859[_0xc98a('0x2e')]=this[_0xc98a('0x27')][_0xc98a('0x2c')]['host'];_0x3a2859[_0xc98a('0x2f')]=this['account']['Smtp'][_0xc98a('0x2f')];_0x3a2859[_0xc98a('0x30')]=this[_0xc98a('0x27')][_0xc98a('0x2c')]['secure'];}if(this[_0xc98a('0x27')]['Smtp'][_0xc98a('0x31')]){_0x3a2859[_0xc98a('0x32')]={'user':this[_0xc98a('0x27')]['Smtp'][_0xc98a('0x33')],'pass':this[_0xc98a('0x27')][_0xc98a('0x2c')][_0xc98a('0x34')]};}_0x36d728[_0xc98a('0x35')]=this['message'][_0xc98a('0x36')];_0x36d728['html']=_0xc98a('0x37')+_[_0xc98a('0x38')](_0x36d728[_0xc98a('0xe')],_0xc98a('0x39'),'<div')+_0xc98a('0x3a');_0x36d728[_0xc98a('0x3b')]={'Auto-Submitted':_0xc98a('0x3c'),'X-Auto-Response-Suppress':_0xc98a('0x3d'),'Precedence':'auto_reply'};return mailRpc['sendMailMessage'](_0x3a2859,_0x36d728)[_0xc98a('0x3e')](function(_0x51c572){logger[_0xc98a('0x14')](_0xc98a('0x3f'),_0x166509);_0x36d728[_0xc98a('0x36')]=_0x51c572['message']['messageId'];return rpc[_0x58cc65+_0xc98a('0x2b')][_0xc98a('0x40')](_0x36d728);})['then'](function(_0x35d980){logger[_0xc98a('0x14')](_0xc98a('0x41'),_0x166509,JSON[_0xc98a('0x42')](_0x35d980));})[_0xc98a('0x43')](function(_0x3990ee){logger[_0xc98a('0x44')](_0xc98a('0x45'),_0x166509,JSON[_0xc98a('0x42')](_0x3990ee));})['finally'](function(){Promise[_0xc98a('0x46')]()[_0xc98a('0x3e')](function(){if(_0x206296[0x0]!=='2'||_0x3b52ce[_0xc98a('0x16')])return;return rpc[_0x58cc65+_0xc98a('0x47')][_0xc98a('0x48')](_0x3b52ce['id'],{'autoreplyExecuted':!![]})['then'](function(_0xe1cef1){logger[_0xc98a('0x14')](_0xc98a('0x17'),_0x166509,JSON['stringify'](_0xe1cef1));})[_0xc98a('0x43')](function(_0x481435){logger[_0xc98a('0x44')](_0xc98a('0x49'),_0x166509,JSON[_0xc98a('0x42')](_0x481435));});})[_0xc98a('0x3e')](function(){_0x3145be['next']();});});}else{return rpc[this['channel']+_0xc98a('0x2b')][_0xc98a('0x40')](_0x36d728)[_0xc98a('0x3e')](function(_0x40aa6f){logger[_0xc98a('0x14')]('[%s][AUTOREPLY]\x20%s',_0x166509,_0x36d728[_0xc98a('0xe')]);})[_0xc98a('0x43')](function(_0x37da9a){logger[_0xc98a('0x44')](_0xc98a('0x41'),_0x166509,JSON[_0xc98a('0x42')](_0x37da9a));})[_0xc98a('0x4a')](function(){Promise['resolve']()[_0xc98a('0x3e')](function(){if(_0x206296[0x0]!=='2'||_0x3b52ce[_0xc98a('0x16')])return;return rpc[_0x58cc65+'Interaction'][_0xc98a('0x48')](_0x3b52ce['id'],{'autoreplyExecuted':!![]})[_0xc98a('0x3e')](function(_0x59ac85){logger[_0xc98a('0x14')](_0xc98a('0x17'),_0x166509,JSON[_0xc98a('0x42')](_0x59ac85));})[_0xc98a('0x43')](function(_0x3631a3){logger['error']('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x166509,JSON[_0xc98a('0x42')](_0x3631a3));});})[_0xc98a('0x3e')](function(){_0x3145be[_0xc98a('0x11')]();});});}}}catch(_0x3e5b70){logger[_0xc98a('0x44')](_0xc98a('0x41'),_0x166509,JSON['stringify'](_0x3e5b70));_0x3145be[_0xc98a('0x4b')]();}};};
\ No newline at end of file
+var _0x11d4=['isNil','created','interaction','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20already\x20sent','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','next','channel','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','body','getMustacheRender','message','from','mail','phone','read','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','account','upperFirst','AccountId','Message','Smtp','service','host','port','secure','authentication','auth','user','pass','messageId','html','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','headers','All','sendMailMessage','create','then','stringify','catch','finally','resolve','Interaction','update','error','stop','lodash','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction'];(function(_0x1c2b6f,_0x21c35b){var _0x2da67f=function(_0x531796){while(--_0x531796){_0x1c2b6f['push'](_0x1c2b6f['shift']());}};_0x2da67f(++_0x21c35b);}(_0x11d4,0xc8));var _0x411d=function(_0x5db4eb,_0xda27c9){_0x5db4eb=_0x5db4eb-0x0;var _0x5a665d=_0x11d4[_0x5db4eb];return _0x5a665d;};'use strict';var _=require(_0x411d('0x0'));var moment=require('moment');var utils=require(_0x411d('0x1'));var logger=require('../../../../config/logger')('routing');var rpc={'chatMessage':require(_0x411d('0x2')),'openchannelMessage':require(_0x411d('0x3')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x411d('0x4')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage'),'chatInteraction':require(_0x411d('0x5')),'openchannelInteraction':require(_0x411d('0x6')),'mailInteraction':require(_0x411d('0x7')),'smsInteraction':require(_0x411d('0x8')),'faxInteraction':require(_0x411d('0x9')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require('../../mailRpc');exports['consequence']=function(_0x59416a,_0x2bf295){return function(_0x287470){try{if(_0x2bf295[0x0]==='1'&&(_[_0x411d('0xa')](this['interaction'][_0x411d('0xb')])||!this[_0x411d('0xc')][_0x411d('0xb')])){logger[_0x411d('0xd')](_0x411d('0xe'),_0x59416a,_0x411d('0xf'));return _0x287470['next']();}if(_0x2bf295[0x0]==='2'&&this[_0x411d('0xc')][_0x411d('0x10')]){logger['info'](_0x411d('0x11'),_0x59416a,'One\x20Time\x20already\x20sent');return _0x287470[_0x411d('0x12')]();}var _0x1eb5f9=this[_0x411d('0x13')];var _0x25212c={'ContactId':this[_0x411d('0x14')]['id'],'sentAt':moment()[_0x411d('0x15')](_0x411d('0x16')),'direction':_0x411d('0x17')};if(this[_0x411d('0x13')]==='mail'){_0x25212c[_0x411d('0x18')]=utils[_0x411d('0x19')](_0x2bf295[0x2],this);}else{_0x25212c[_0x411d('0x18')]=utils[_0x411d('0x19')](_0x2bf295[0x1],this);}if(this[_0x411d('0x1a')]){_0x25212c['to']=this[_0x411d('0x1a')][_0x411d('0x1b')]||'';if(this[_0x411d('0x13')]===_0x411d('0x1c')&&_0x2bf295[0x1]==='1'){_0x25212c['cc']=this['message']['cc']||'';}_0x25212c[_0x411d('0x1b')]=this[_0x411d('0x1a')]['to']||'';_0x25212c[_0x411d('0x1d')]=this[_0x411d('0x1a')][_0x411d('0x1d')]||'';_0x25212c[_0x411d('0x1e')]=!![];if(this[_0x411d('0x1a')][_0x411d('0x1f')]){_0x25212c['subject']='';_0x25212c[_0x411d('0x1f')]+=_[_0x411d('0x20')](this['message'][_0x411d('0x1f')],_0x411d('0x21'))?'':_0x411d('0x22');_0x25212c[_0x411d('0x1f')]+=this[_0x411d('0x1a')][_0x411d('0x1f')];}}if(this['channel']===_0x411d('0x23')){_0x25212c[_0x411d('0x24')]=this[_0x411d('0x25')]['id'];}else{_0x25212c[_[_0x411d('0x26')](this[_0x411d('0x13')])+_0x411d('0x27')]=this['account']['id'];}_0x25212c[_[_0x411d('0x26')](this['channel'])+'InteractionId']=this[_0x411d('0xc')]['id'];var _0x249d41=this[_0x411d('0xc')];if(rpc[this[_0x411d('0x13')]+_0x411d('0x28')]){if(this[_0x411d('0x13')]===_0x411d('0x1c')){var _0x2340a4={'tls':{'rejectUnauthorized':![]}};if(this['account'][_0x411d('0x29')][_0x411d('0x2a')]){_0x2340a4[_0x411d('0x2a')]=this[_0x411d('0x25')][_0x411d('0x29')][_0x411d('0x2a')];}else{_0x2340a4[_0x411d('0x2b')]=this[_0x411d('0x25')][_0x411d('0x29')][_0x411d('0x2b')];_0x2340a4[_0x411d('0x2c')]=this[_0x411d('0x25')][_0x411d('0x29')][_0x411d('0x2c')];_0x2340a4[_0x411d('0x2d')]=this[_0x411d('0x25')]['Smtp'][_0x411d('0x2d')];}if(this[_0x411d('0x25')][_0x411d('0x29')][_0x411d('0x2e')]){_0x2340a4[_0x411d('0x2f')]={'user':this[_0x411d('0x25')][_0x411d('0x29')][_0x411d('0x30')],'pass':this[_0x411d('0x25')][_0x411d('0x29')][_0x411d('0x31')]};}_0x25212c['inReplyTo']=this['message'][_0x411d('0x32')];_0x25212c[_0x411d('0x33')]=_0x411d('0x34')+_[_0x411d('0x35')](_0x25212c[_0x411d('0x18')],_0x411d('0x36'),_0x411d('0x37'))+_0x411d('0x38');_0x25212c[_0x411d('0x39')]={'Auto-Submitted':'auto-replied','X-Auto-Response-Suppress':_0x411d('0x3a'),'Precedence':'auto_reply'};return mailRpc[_0x411d('0x3b')](_0x2340a4,_0x25212c)['then'](function(_0x5b8a66){logger[_0x411d('0xd')]('[%s][AUTOREPLY]\x20SMTP\x20SENT',_0x59416a);_0x25212c[_0x411d('0x32')]=_0x5b8a66[_0x411d('0x1a')]['messageId'];return rpc[_0x1eb5f9+_0x411d('0x28')][_0x411d('0x3c')](_0x25212c);})[_0x411d('0x3d')](function(_0x577661){logger[_0x411d('0xd')]('[%s][AUTOREPLY]\x20%s',_0x59416a,JSON[_0x411d('0x3e')](_0x577661));})[_0x411d('0x3f')](function(_0x630b70){logger['error']('[RPC][%s][AUTOREPLY]\x20%s',_0x59416a,JSON[_0x411d('0x3e')](_0x630b70));})[_0x411d('0x40')](function(){Promise[_0x411d('0x41')]()[_0x411d('0x3d')](function(){if(_0x2bf295[0x0]!=='2'||_0x249d41[_0x411d('0x10')])return;return rpc[_0x1eb5f9+_0x411d('0x42')][_0x411d('0x43')](_0x249d41['id'],{'autoreplyExecuted':!![]})['then'](function(_0x5774d0){logger[_0x411d('0xd')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x59416a,JSON[_0x411d('0x3e')](_0x5774d0));})[_0x411d('0x3f')](function(_0x3af482){logger[_0x411d('0x44')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x59416a,JSON[_0x411d('0x3e')](_0x3af482));});})[_0x411d('0x3d')](function(){_0x287470['next']();});});}else{return rpc[this[_0x411d('0x13')]+_0x411d('0x28')][_0x411d('0x3c')](_0x25212c)['then'](function(_0x3f8df3){logger[_0x411d('0xd')](_0x411d('0xe'),_0x59416a,_0x25212c['body']);})[_0x411d('0x3f')](function(_0x473e97){logger['error'](_0x411d('0xe'),_0x59416a,JSON[_0x411d('0x3e')](_0x473e97));})[_0x411d('0x40')](function(){Promise[_0x411d('0x41')]()['then'](function(){if(_0x2bf295[0x0]!=='2'||_0x249d41[_0x411d('0x10')])return;return rpc[_0x1eb5f9+_0x411d('0x42')][_0x411d('0x43')](_0x249d41['id'],{'autoreplyExecuted':!![]})['then'](function(_0x4944de){logger[_0x411d('0xd')](_0x411d('0x11'),_0x59416a,JSON[_0x411d('0x3e')](_0x4944de));})[_0x411d('0x3f')](function(_0x29a2c5){logger[_0x411d('0x44')]('[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x59416a,JSON[_0x411d('0x3e')](_0x29a2c5));});})[_0x411d('0x3d')](function(){_0x287470[_0x411d('0x12')]();});});}}}catch(_0xb3f813){logger[_0x411d('0x44')](_0x411d('0xe'),_0x59416a,JSON['stringify'](_0xb3f813));_0x287470[_0x411d('0x45')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcbf=['Interaction','update','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','interaction','error','[%s][CLOSE]\x20%s','stringify','finally','stop','moment','../../../../config/logger','../../rpc/chatInteraction','../../rpc/smsInteraction','../../rpc/whatsappInteraction','consequence','info','format','YYYY-MM-DD\x20HH:mm:ss','system','channel'];(function(_0x39e283,_0x247e6b){var _0x7de89f=function(_0x2f8c50){while(--_0x2f8c50){_0x39e283['push'](_0x39e283['shift']());}};_0x7de89f(++_0x247e6b);}(_0xbcbf,0xe5));var _0xfbcb=function(_0x1c1193,_0xf0199){_0x1c1193=_0x1c1193-0x0;var _0x39064f=_0xbcbf[_0x1c1193];return _0x39064f;};'use strict';var moment=require(_0xfbcb('0x0'));var logger=require(_0xfbcb('0x1'))('routing');var rpc={'chatInteraction':require(_0xfbcb('0x2')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require(_0xfbcb('0x3')),'mailInteraction':require('../../rpc/mailInteraction'),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0xfbcb('0x4'))};exports[_0xfbcb('0x5')]=function(_0x21cdd6,_0x1f8abb,_0x584b2,_0x2eee25){return function(_0x147608){try{logger[_0xfbcb('0x6')]('[%s][CLOSE]\x20reason\x20%s',_0x21cdd6,_0x1f8abb[0x0]);var _0x58078a={'closed':0x1,'closedAt':moment()[_0xfbcb('0x7')](_0xfbcb('0x8')),'closeReason':_0xfbcb('0x9'),'disposition':_0x1f8abb[0x0]};if(rpc[_0x2eee25[_0xfbcb('0xa')]+_0xfbcb('0xb')]){rpc[_0x2eee25[_0xfbcb('0xa')]+_0xfbcb('0xb')][_0xfbcb('0xc')](_0x2eee25['interaction']['id'],_0x58078a)['then'](function(_0x55a4f6){logger[_0xfbcb('0x6')](_0xfbcb('0xd'),_0x21cdd6,_0x2eee25[_0xfbcb('0xe')]['id']);})['catch'](function(_0x3bcff3){logger[_0xfbcb('0xf')](_0xfbcb('0x10'),_0x21cdd6,JSON[_0xfbcb('0x11')](_0x3bcff3));})[_0xfbcb('0x12')](function(){_0x147608[_0xfbcb('0x13')]();});}}catch(_0x489b64){logger[_0xfbcb('0xf')](_0xfbcb('0x10'),_0x21cdd6,JSON[_0xfbcb('0x11')](_0x489b64));_0x147608[_0xfbcb('0x13')]();}};};
\ No newline at end of file
+var _0x7266=['then','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','interaction','catch','error','stringify','finally','stop','[%s][CLOSE]\x20%s','moment','../../../../config/logger','routing','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','consequence','info','channel','Interaction','update'];(function(_0x454018,_0x46e33a){var _0x24697d=function(_0x3ec647){while(--_0x3ec647){_0x454018['push'](_0x454018['shift']());}};_0x24697d(++_0x46e33a);}(_0x7266,0x179));var _0x6726=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0x7266[_0x580576];return _0x3f55a0;};'use strict';var moment=require(_0x6726('0x0'));var logger=require(_0x6726('0x1'))(_0x6726('0x2'));var rpc={'chatInteraction':require(_0x6726('0x3')),'openchannelInteraction':require(_0x6726('0x4')),'smsInteraction':require(_0x6726('0x5')),'mailInteraction':require(_0x6726('0x6')),'faxInteraction':require(_0x6726('0x7')),'whatsappInteraction':require(_0x6726('0x8'))};exports[_0x6726('0x9')]=function(_0x62aa9e,_0x1be5cb,_0x51c859,_0x3c7444){return function(_0x16eff1){try{logger[_0x6726('0xa')]('[%s][CLOSE]\x20reason\x20%s',_0x62aa9e,_0x1be5cb[0x0]);var _0x19d5ac={'closed':0x1,'closedAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'closeReason':'system','disposition':_0x1be5cb[0x0]};if(rpc[_0x3c7444[_0x6726('0xb')]+_0x6726('0xc')]){rpc[_0x3c7444['channel']+_0x6726('0xc')][_0x6726('0xd')](_0x3c7444['interaction']['id'],_0x19d5ac)[_0x6726('0xe')](function(_0x339314){logger['info'](_0x6726('0xf'),_0x62aa9e,_0x3c7444[_0x6726('0x10')]['id']);})[_0x6726('0x11')](function(_0x517522){logger[_0x6726('0x12')]('[%s][CLOSE]\x20%s',_0x62aa9e,JSON[_0x6726('0x13')](_0x517522));})[_0x6726('0x14')](function(){_0x16eff1[_0x6726('0x15')]();});}}catch(_0x495080){logger[_0x6726('0x12')](_0x6726('0x16'),_0x62aa9e,JSON['stringify'](_0x495080));_0x16eff1[_0x6726('0x15')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe314=['ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','body','getMustacheRender','Message','then','catch','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','message','dialogflow','result','speech','providerName','providerResponse','create','metadata','error','moment','apiai-promise','md5','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','consequence','isNil','interaction','info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat'];(function(_0x1319c6,_0x5377a6){var _0x3b3a92=function(_0x19d96c){while(--_0x19d96c){_0x1319c6['push'](_0x1319c6['shift']());}};_0x3b3a92(++_0x5377a6);}(_0xe314,0x7c));var _0x4e31=function(_0x1217d9,_0x4f7ecc){_0x1217d9=_0x1217d9-0x0;var _0x47f27c=_0xe314[_0x1217d9];return _0x47f27c;};'use strict';var _=require('lodash');var moment=require(_0x4e31('0x0'));var apiai=require(_0x4e31('0x1'));var md5=require(_0x4e31('0x2'));var utils=require(_0x4e31('0x3'));var logger=require(_0x4e31('0x4'))(_0x4e31('0x5'));var rpc={'chatMessage':require(_0x4e31('0x6')),'openchannelMessage':require(_0x4e31('0x7')),'mailMessage':require(_0x4e31('0x8')),'smsMessage':require(_0x4e31('0x9')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0x4e31('0xa')]=function(_0x29d63d,_0x608c4d){return function(_0x311a10){try{if(!_[_0x4e31('0xb')](this[_0x4e31('0xc')]['UserId'])){logger[_0x4e31('0xd')](_0x4e31('0xe'),_0x29d63d,_0x4e31('0xf'));return _0x311a10[_0x4e31('0x10')]();}var _0x4e822f={'ContactId':this[_0x4e31('0x11')]['id'],'sentAt':moment()[_0x4e31('0x12')](_0x4e31('0x13')),'direction':_0x4e31('0x14')};if(this[_0x4e31('0x15')]===_0x4e31('0x16')||this[_0x4e31('0x15')]===_0x4e31('0x17')){_0x4e822f[_0x4e31('0x18')]=this[_0x4e31('0xc')][_0x4e31('0x18')];}var _0x2033df=this[_0x4e31('0x15')];if(_0x2033df===_0x4e31('0x19')){_0x4e822f[_0x4e31('0x1a')]=this[_0x4e31('0x1b')]['id'];}else{_0x4e822f[_[_0x4e31('0x1c')](_0x2033df)+_0x4e31('0x1d')]=this['account']['id'];}_0x4e822f[_[_0x4e31('0x1c')](_0x2033df)+_0x4e31('0x1e')]=this['interaction']['id'];if(this[_0x4e31('0xc')][_0x4e31('0x1f')]){var _0x10203f=_0x608c4d[0x2];if(!_['isEmpty'](_0x10203f)){_0x4e822f[_0x4e31('0x20')]=utils[_0x4e31('0x21')](_0x10203f,this);return rpc[_0x2033df+_0x4e31('0x22')]['create'](_0x4e822f)[_0x4e31('0x23')](function(_0x4264f7){logger[_0x4e31('0xd')]('[%s][DIALOGFLOW]\x20%s',_0x29d63d,_0x4e822f[_0x4e31('0x20')]);})[_0x4e31('0x24')](function(_0x5023aa){logger['error'](_0x4e31('0xe'),_0x29d63d,JSON[_0x4e31('0x25')](_0x5023aa));})[_0x4e31('0x26')](function(){logger[_0x4e31('0xd')](_0x4e31('0x27'),_0x29d63d);_0x311a10[_0x4e31('0x28')]();});}else{logger[_0x4e31('0xd')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x29d63d);_0x311a10[_0x4e31('0x28')]();}}else{var _0x31c5dc=this;var _0x240d19=apiai(_0x608c4d[0x0],{'language':_0x608c4d[0x1]||'en'});return _0x240d19['textRequest'](this[_0x4e31('0x29')][_0x4e31('0x20')],{'sessionId':md5(this[_0x4e31('0xc')]['id'])})[_0x4e31('0x23')](function(_0x12efaf){_0x31c5dc['body'][_0x4e31('0x2a')]=_0x12efaf;_0x4e822f[_0x4e31('0x20')]=_0x12efaf[_0x4e31('0x2b')]['fulfillment'][_0x4e31('0x2c')];_0x4e822f[_0x4e31('0x2d')]=_0x4e31('0x2a');_0x4e822f[_0x4e31('0x2e')]=JSON[_0x4e31('0x25')](_0x12efaf);return rpc[_0x2033df+_0x4e31('0x22')][_0x4e31('0x2f')](_0x4e822f)[_0x4e31('0x23')](function(_0x24b4e5){logger[_0x4e31('0xd')](_0x4e31('0xe'),_0x29d63d,_0x4e822f['body']);if(_0x12efaf[_0x4e31('0x2b')][_0x4e31('0x30')]['endConversation']){_0x311a10[_0x4e31('0x10')]();}else{_0x311a10[_0x4e31('0x28')]();}})['catch'](function(_0x2fb71b){logger['error'](_0x4e31('0xe'),_0x29d63d,JSON[_0x4e31('0x25')](_0x2fb71b));_0x311a10['next']();});})[_0x4e31('0x24')](function(_0x446df6){logger[_0x4e31('0x31')](_0x4e31('0xe'),_0x29d63d,_0x446df6[_0x4e31('0x29')]);_0x311a10[_0x4e31('0x10')]();});}}catch(_0x26f79b){logger[_0x4e31('0x31')](_0x4e31('0xe'),_0x29d63d,JSON[_0x4e31('0x25')](_0x26f79b));_0x311a10['stop']();}};};
\ No newline at end of file
+var _0x18af=['result','fulfillment','speech','dialogflow','providerResponse','create','catch','lodash','apiai-promise','./utils','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','consequence','isNil','interaction','UserId','info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','whatsapp','phone','chat','account','AccountId','InteractionId','created','body','getMustacheRender','then','error','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','textRequest','message'];(function(_0x10d976,_0x376295){var _0x57e020=function(_0x1f20da){while(--_0x1f20da){_0x10d976['push'](_0x10d976['shift']());}};_0x57e020(++_0x376295);}(_0x18af,0x8b));var _0xf18a=function(_0x4af49a,_0x3b7a03){_0x4af49a=_0x4af49a-0x0;var _0x33aed8=_0x18af[_0x4af49a];return _0x33aed8;};'use strict';var _=require(_0xf18a('0x0'));var moment=require('moment');var apiai=require(_0xf18a('0x1'));var md5=require('md5');var utils=require(_0xf18a('0x2'));var logger=require('../../../../config/logger')('routing');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0xf18a('0x3')),'mailMessage':require(_0xf18a('0x4')),'smsMessage':require(_0xf18a('0x5')),'faxMessage':require(_0xf18a('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports[_0xf18a('0x7')]=function(_0x2d5955,_0x3fc64b){return function(_0x4dc297){try{if(!_[_0xf18a('0x8')](this[_0xf18a('0x9')][_0xf18a('0xa')])){logger[_0xf18a('0xb')](_0xf18a('0xc'),_0x2d5955,_0xf18a('0xd'));return _0x4dc297[_0xf18a('0xe')]();}var _0x20247d={'ContactId':this[_0xf18a('0xf')]['id'],'sentAt':moment()[_0xf18a('0x10')](_0xf18a('0x11')),'direction':_0xf18a('0x12')};if(this[_0xf18a('0x13')]==='sms'||this[_0xf18a('0x13')]===_0xf18a('0x14')){_0x20247d[_0xf18a('0x15')]=this[_0xf18a('0x9')][_0xf18a('0x15')];}var _0x4e9ee9=this[_0xf18a('0x13')];if(_0x4e9ee9===_0xf18a('0x16')){_0x20247d['ChatWebsiteId']=this[_0xf18a('0x17')]['id'];}else{_0x20247d[_['upperFirst'](_0x4e9ee9)+_0xf18a('0x18')]=this[_0xf18a('0x17')]['id'];}_0x20247d[_['upperFirst'](_0x4e9ee9)+_0xf18a('0x19')]=this['interaction']['id'];if(this[_0xf18a('0x9')][_0xf18a('0x1a')]){var _0x52fcfa=_0x3fc64b[0x2];if(!_['isEmpty'](_0x52fcfa)){_0x20247d[_0xf18a('0x1b')]=utils[_0xf18a('0x1c')](_0x52fcfa,this);return rpc[_0x4e9ee9+'Message']['create'](_0x20247d)[_0xf18a('0x1d')](function(_0x1aff7c){logger[_0xf18a('0xb')]('[%s][DIALOGFLOW]\x20%s',_0x2d5955,_0x20247d[_0xf18a('0x1b')]);})['catch'](function(_0x305b74){logger[_0xf18a('0x1e')]('[%s][DIALOGFLOW]\x20%s',_0x2d5955,JSON[_0xf18a('0x1f')](_0x305b74));})[_0xf18a('0x20')](function(){logger['info'](_0xf18a('0x21'),_0x2d5955);_0x4dc297[_0xf18a('0x22')]();});}else{logger[_0xf18a('0xb')]('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x2d5955);_0x4dc297['stop']();}}else{var _0x43a50a=this;var _0x4438ed=apiai(_0x3fc64b[0x0],{'language':_0x3fc64b[0x1]||'en'});return _0x4438ed[_0xf18a('0x23')](this[_0xf18a('0x24')][_0xf18a('0x1b')],{'sessionId':md5(this[_0xf18a('0x9')]['id'])})[_0xf18a('0x1d')](function(_0x304bd4){_0x43a50a[_0xf18a('0x1b')]['dialogflow']=_0x304bd4;_0x20247d[_0xf18a('0x1b')]=_0x304bd4[_0xf18a('0x25')][_0xf18a('0x26')][_0xf18a('0x27')];_0x20247d['providerName']=_0xf18a('0x28');_0x20247d[_0xf18a('0x29')]=JSON[_0xf18a('0x1f')](_0x304bd4);return rpc[_0x4e9ee9+'Message'][_0xf18a('0x2a')](_0x20247d)[_0xf18a('0x1d')](function(_0xf7e6c2){logger[_0xf18a('0xb')]('[%s][DIALOGFLOW]\x20%s',_0x2d5955,_0x20247d[_0xf18a('0x1b')]);if(_0x304bd4[_0xf18a('0x25')]['metadata']['endConversation']){_0x4dc297[_0xf18a('0xe')]();}else{_0x4dc297[_0xf18a('0x22')]();}})[_0xf18a('0x2b')](function(_0xdc0fe9){logger['error'](_0xf18a('0xc'),_0x2d5955,JSON[_0xf18a('0x1f')](_0xdc0fe9));_0x4dc297[_0xf18a('0xe')]();});})[_0xf18a('0x2b')](function(_0x3a9b89){logger[_0xf18a('0x1e')]('[%s][DIALOGFLOW]\x20%s',_0x2d5955,_0x3a9b89['message']);_0x4dc297[_0xf18a('0xe')]();});}}catch(_0x3ea07a){logger[_0xf18a('0x1e')]('[%s][DIALOGFLOW]\x20%s',_0x2d5955,JSON['stringify'](_0x3ea07a));_0x4dc297[_0xf18a('0x22')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c00=['fields','end_conversation','DIALOGFLOWV2_INTENTNAME','name','DIALOGFLOWV2_INTENTDISPLAYNAME','intent','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','DIALOGFLOWV2_QUERYTEXT','queryText','DIALOGFLOWV2_SCORE','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','all','message','lodash','dialogflow','moment','bluebird','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error','stringify','consequence','isNil','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','channel','whatsapp','phone','interaction','upperFirst','AccountId','account','InteractionId','created','isEmpty','finally','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent'];(function(_0x5a8d12,_0x3ea2c9){var _0x364f7a=function(_0x44b03e){while(--_0x44b03e){_0x5a8d12['push'](_0x5a8d12['shift']());}};_0x364f7a(++_0x3ea2c9);}(_0x4c00,0x1c2));var _0x04c0=function(_0x41648f,_0x4a8936){_0x41648f=_0x41648f-0x0;var _0x20340a=_0x4c00[_0x41648f];return _0x20340a;};'use strict';var _=require(_0x04c0('0x0'));var dialogflow=require(_0x04c0('0x1'));var md5=require('md5');var moment=require(_0x04c0('0x2'));var Promise=require(_0x04c0('0x3'));var logger=require('../../../../config/logger')(_0x04c0('0x4'));var utils=require(_0x04c0('0x5'));var rpc={'chatMessage':require(_0x04c0('0x6')),'openchannelMessage':require(_0x04c0('0x7')),'mailMessage':require(_0x04c0('0x8')),'smsMessage':require(_0x04c0('0x9')),'faxMessage':require(_0x04c0('0xa')),'whatsappMessage':require(_0x04c0('0xb'))};function createMessage(_0x7bd094,_0x529799,_0x5465b6,_0x42f5fd){return new Promise(function(_0xefc180,_0x1e92e5){var _0x13b21b=_[_0x04c0('0xc')](_0x5465b6);_0x13b21b[_0x04c0('0xd')]=_0x42f5fd;return rpc[_0x529799+_0x04c0('0xe')][_0x04c0('0xf')](_0x13b21b)[_0x04c0('0x10')](function(){logger[_0x04c0('0x11')](_0x04c0('0x12'),_0x7bd094,_0x13b21b['body']);_0xefc180();})[_0x04c0('0x13')](function(_0x2702c3){logger[_0x04c0('0x14')](_0x04c0('0x12'),_0x7bd094,JSON[_0x04c0('0x15')](_0x2702c3));_0x1e92e5(_0x2702c3);});});}exports[_0x04c0('0x16')]=function(_0x3413d0,_0x141767){return function(_0x4b81a4){try{if(!_[_0x04c0('0x17')](this['interaction']['UserId'])){logger['info'](_0x04c0('0x12'),_0x3413d0,_0x04c0('0x18'));return _0x4b81a4[_0x04c0('0x19')]();}var _0x4bebe8={'ContactId':this[_0x04c0('0x1a')]['id'],'sentAt':moment()['format'](_0x04c0('0x1b')),'direction':'out'};if(this[_0x04c0('0x1c')]==='sms'||this['channel']===_0x04c0('0x1d')){_0x4bebe8[_0x04c0('0x1e')]=this[_0x04c0('0x1f')]['phone'];}var _0x3ba930=this['channel'];if(_0x3ba930==='chat'){_0x4bebe8['ChatWebsiteId']=this['account']['id'];}else{_0x4bebe8[_[_0x04c0('0x20')](_0x3ba930)+_0x04c0('0x21')]=this[_0x04c0('0x22')]['id'];}_0x4bebe8[_['upperFirst'](_0x3ba930)+_0x04c0('0x23')]=this[_0x04c0('0x1f')]['id'];if(this['interaction'][_0x04c0('0x24')]){var _0x8362e=_0x141767[0x4];if(!_[_0x04c0('0x25')](_0x8362e)){_0x4bebe8[_0x04c0('0xd')]=utils['getMustacheRender'](_0x8362e,this);return rpc[_0x3ba930+'Message'][_0x04c0('0xf')](_0x4bebe8)[_0x04c0('0x10')](function(_0xef2d44){logger[_0x04c0('0x11')](_0x04c0('0x12'),_0x3413d0,_0x4bebe8[_0x04c0('0xd')]);})['catch'](function(_0x315689){logger[_0x04c0('0x14')]('[%s][DIALOGFLOWV2]\x20%s',_0x3413d0,JSON[_0x04c0('0x15')](_0x315689));})[_0x04c0('0x26')](function(){logger[_0x04c0('0x11')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x3413d0);_0x4b81a4[_0x04c0('0x27')]();});}else{logger['info'](_0x04c0('0x28'),_0x3413d0);_0x4b81a4[_0x04c0('0x27')]();}}else{var _0x31299e=this;var _0x3cc934=_0x141767[0x2][_0x04c0('0x29')](/\\n/g,'\x0a');var _0x10e59a={'credentials':{'private_key':_0x3cc934,'client_email':_0x141767[0x1]}};var _0x472170=new dialogflow[(_0x04c0('0x2a'))](_0x10e59a);var _0x36ca7e=_0x472170[_0x04c0('0x2b')](_0x141767[0x0],md5(_0x31299e[_0x04c0('0x1f')]['id']));var _0x485159={'session':_0x36ca7e,'queryInput':{'text':{'text':_0x31299e['message']['body'],'languageCode':_0x141767[0x3]||'en'}}};return _0x472170[_0x04c0('0x2c')](_0x485159)[_0x04c0('0x10')](function(_0x3db30e){if(_0x3db30e&&_0x3db30e[_0x04c0('0x2d')]){_0x31299e[_0x04c0('0xd')][_0x04c0('0x2e')]=_0x3db30e;var _0x3075eb=_0x3db30e[0x0];var _0x224dcf=_0x3075eb['queryResult']['diagnosticInfo']&&_0x3075eb[_0x04c0('0x2f')]['diagnosticInfo']['fields']?_0x3075eb['queryResult'][_0x04c0('0x30')]['fields']['end_conversation'][_0x04c0('0x31')]:![];_0x31299e['body'][_0x04c0('0x32')]=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x33')];_0x31299e['body'][_0x04c0('0x34')]=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x35')];_0x31299e[_0x04c0('0xd')]['DIALOGFLOWV2_ENDCONVERSATION']=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x30')]&&_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x30')][_0x04c0('0x36')]?_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x30')][_0x04c0('0x36')][_0x04c0('0x37')][_0x04c0('0x31')]:![];_0x31299e[_0x04c0('0xd')][_0x04c0('0x38')]=_0x3075eb[_0x04c0('0x2f')]['intent'][_0x04c0('0x39')];_0x31299e['body'][_0x04c0('0x3a')]=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x3b')]['displayName'];_0x31299e[_0x04c0('0xd')][_0x04c0('0x3c')]=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x3b')][_0x04c0('0x3d')];_0x31299e[_0x04c0('0xd')]['DIALOGFLOWV2_LANGUAGECODE']=_0x3075eb[_0x04c0('0x2f')]['languageCode'];_0x31299e[_0x04c0('0xd')][_0x04c0('0x3e')]=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x3f')];_0x31299e[_0x04c0('0xd')][_0x04c0('0x40')]=_0x3075eb[_0x04c0('0x2f')][_0x04c0('0x41')];_0x4bebe8[_0x04c0('0x42')]=_0x04c0('0x2e');_0x4bebe8[_0x04c0('0x43')]=JSON['stringify'](_0x3db30e);var _0x5d0bcb=[];for(var _0x595566=0x0;_0x595566<_0x3db30e[_0x04c0('0x2d')];_0x595566++){var _0x2bbf86=_0x3db30e[_0x595566];if(_0x2bbf86&&_0x2bbf86[_0x04c0('0x2f')]&&_0x2bbf86[_0x04c0('0x2f')][_0x04c0('0x44')]){_0x5d0bcb[_0x04c0('0x45')](createMessage(_0x3413d0,_0x3ba930,_0x4bebe8,_0x2bbf86[_0x04c0('0x2f')]['fulfillmentText']));}}return Promise[_0x04c0('0x46')](_0x5d0bcb)[_0x04c0('0x10')](function(){if(_0x224dcf){_0x4b81a4[_0x04c0('0x19')]();}else{_0x4b81a4[_0x04c0('0x27')]();}})[_0x04c0('0x13')](function(_0x39123b){logger['error']('[%s][DIALOGFLOWV2]\x20%s',_0x3413d0,JSON[_0x04c0('0x15')](_0x39123b));_0x4b81a4[_0x04c0('0x19')]();});}})[_0x04c0('0x13')](function(_0x4b9149){logger[_0x04c0('0x14')]('[%s][DIALOGFLOWV2]\x20%s',_0x3413d0,_0x4b9149[_0x04c0('0x47')]);_0x4b81a4['next']();});}}catch(_0xe3fd21){logger[_0x04c0('0x14')](_0x04c0('0x12'),_0x3413d0,JSON['stringify'](_0xe3fd21));_0x4b81a4[_0x04c0('0x27')]();}};};
\ No newline at end of file
+var _0xc688=['Message','create','then','info','body','catch','[%s][DIALOGFLOWV2]\x20%s','stringify','consequence','isNil','interaction','UserId','next','format','out','channel','sms','phone','ChatWebsiteId','account','upperFirst','AccountId','created','isEmpty','getMustacheRender','error','finally','stop','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','replace','SessionsClient','sessionPath','message','detectIntent','length','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','allRequiredParamsPresent','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','isFallback','DIALOGFLOWV2_LANGUAGECODE','queryText','dialogflowV2','providerResponse','fulfillmentText','push','all','lodash','dialogflow','moment','bluebird','routing','./utils','../../rpc/openchannelMessage','../../rpc/smsMessage','clone'];(function(_0x31e29a,_0x349c9b){var _0x32d892=function(_0x41cc86){while(--_0x41cc86){_0x31e29a['push'](_0x31e29a['shift']());}};_0x32d892(++_0x349c9b);}(_0xc688,0xc0));var _0x8c68=function(_0xa026d8,_0x18ef26){_0xa026d8=_0xa026d8-0x0;var _0x1a8bbf=_0xc688[_0xa026d8];return _0x1a8bbf;};'use strict';var _=require(_0x8c68('0x0'));var dialogflow=require(_0x8c68('0x1'));var md5=require('md5');var moment=require(_0x8c68('0x2'));var Promise=require(_0x8c68('0x3'));var logger=require('../../../../config/logger')(_0x8c68('0x4'));var utils=require(_0x8c68('0x5'));var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x8c68('0x6')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x8c68('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x529400,_0x17f5a3,_0x5e62be,_0x496f4f){return new Promise(function(_0x26f8dd,_0xaec76d){var _0x5776a4=_[_0x8c68('0x8')](_0x5e62be);_0x5776a4['body']=_0x496f4f;return rpc[_0x17f5a3+_0x8c68('0x9')][_0x8c68('0xa')](_0x5776a4)[_0x8c68('0xb')](function(){logger[_0x8c68('0xc')]('[%s][DIALOGFLOWV2]\x20%s',_0x529400,_0x5776a4[_0x8c68('0xd')]);_0x26f8dd();})[_0x8c68('0xe')](function(_0x43a3f2){logger['error'](_0x8c68('0xf'),_0x529400,JSON[_0x8c68('0x10')](_0x43a3f2));_0xaec76d(_0x43a3f2);});});}exports[_0x8c68('0x11')]=function(_0x2530e5,_0xda1135){return function(_0xc3b3c1){try{if(!_[_0x8c68('0x12')](this[_0x8c68('0x13')][_0x8c68('0x14')])){logger['info'](_0x8c68('0xf'),_0x2530e5,'Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.');return _0xc3b3c1[_0x8c68('0x15')]();}var _0x5cf64d={'ContactId':this['contact']['id'],'sentAt':moment()[_0x8c68('0x16')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x8c68('0x17')};if(this[_0x8c68('0x18')]===_0x8c68('0x19')||this['channel']==='whatsapp'){_0x5cf64d[_0x8c68('0x1a')]=this['interaction'][_0x8c68('0x1a')];}var _0x7f3209=this[_0x8c68('0x18')];if(_0x7f3209==='chat'){_0x5cf64d[_0x8c68('0x1b')]=this[_0x8c68('0x1c')]['id'];}else{_0x5cf64d[_[_0x8c68('0x1d')](_0x7f3209)+_0x8c68('0x1e')]=this[_0x8c68('0x1c')]['id'];}_0x5cf64d[_[_0x8c68('0x1d')](_0x7f3209)+'InteractionId']=this[_0x8c68('0x13')]['id'];if(this[_0x8c68('0x13')][_0x8c68('0x1f')]){var _0x4d4d3a=_0xda1135[0x4];if(!_[_0x8c68('0x20')](_0x4d4d3a)){_0x5cf64d[_0x8c68('0xd')]=utils[_0x8c68('0x21')](_0x4d4d3a,this);return rpc[_0x7f3209+_0x8c68('0x9')][_0x8c68('0xa')](_0x5cf64d)['then'](function(_0x360deb){logger[_0x8c68('0xc')]('[%s][DIALOGFLOWV2]\x20%s',_0x2530e5,_0x5cf64d[_0x8c68('0xd')]);})[_0x8c68('0xe')](function(_0x568eda){logger[_0x8c68('0x22')](_0x8c68('0xf'),_0x2530e5,JSON['stringify'](_0x568eda));})[_0x8c68('0x23')](function(){logger['info']('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x2530e5);_0xc3b3c1[_0x8c68('0x24')]();});}else{logger[_0x8c68('0xc')](_0x8c68('0x25'),_0x2530e5);_0xc3b3c1[_0x8c68('0x24')]();}}else{var _0x5f2ffb=this;var _0x19b88a=_0xda1135[0x2][_0x8c68('0x26')](/\\n/g,'\x0a');var _0x3b4b92={'credentials':{'private_key':_0x19b88a,'client_email':_0xda1135[0x1]}};var _0x5e6d5d=new dialogflow[(_0x8c68('0x27'))](_0x3b4b92);var _0x35613a=_0x5e6d5d[_0x8c68('0x28')](_0xda1135[0x0],md5(_0x5f2ffb['interaction']['id']));var _0x2465de={'session':_0x35613a,'queryInput':{'text':{'text':_0x5f2ffb[_0x8c68('0x29')][_0x8c68('0xd')],'languageCode':_0xda1135[0x3]||'en'}}};return _0x5e6d5d[_0x8c68('0x2a')](_0x2465de)[_0x8c68('0xb')](function(_0x246218){if(_0x246218&&_0x246218[_0x8c68('0x2b')]){_0x5f2ffb[_0x8c68('0xd')]['dialogflowV2']=_0x246218;var _0x541b17=_0x246218[0x0];var _0x17fe7b=_0x541b17[_0x8c68('0x2c')][_0x8c68('0x2d')]&&_0x541b17[_0x8c68('0x2c')][_0x8c68('0x2d')]['fields']?_0x541b17[_0x8c68('0x2c')][_0x8c68('0x2d')][_0x8c68('0x2e')][_0x8c68('0x2f')][_0x8c68('0x30')]:![];_0x5f2ffb[_0x8c68('0xd')][_0x8c68('0x31')]=_0x541b17['queryResult'][_0x8c68('0x32')];_0x5f2ffb[_0x8c68('0xd')][_0x8c68('0x33')]=_0x541b17[_0x8c68('0x2c')][_0x8c68('0x34')];_0x5f2ffb['body'][_0x8c68('0x35')]=_0x541b17[_0x8c68('0x2c')][_0x8c68('0x2d')]&&_0x541b17[_0x8c68('0x2c')][_0x8c68('0x2d')]['fields']?_0x541b17[_0x8c68('0x2c')][_0x8c68('0x2d')][_0x8c68('0x2e')][_0x8c68('0x2f')][_0x8c68('0x30')]:![];_0x5f2ffb[_0x8c68('0xd')][_0x8c68('0x36')]=_0x541b17[_0x8c68('0x2c')][_0x8c68('0x37')][_0x8c68('0x38')];_0x5f2ffb[_0x8c68('0xd')][_0x8c68('0x39')]=_0x541b17['queryResult'][_0x8c68('0x37')][_0x8c68('0x3a')];_0x5f2ffb[_0x8c68('0xd')]['DIALOGFLOWV2_ISFALLBACKINTENT']=_0x541b17[_0x8c68('0x2c')][_0x8c68('0x37')][_0x8c68('0x3b')];_0x5f2ffb[_0x8c68('0xd')][_0x8c68('0x3c')]=_0x541b17[_0x8c68('0x2c')]['languageCode'];_0x5f2ffb[_0x8c68('0xd')]['DIALOGFLOWV2_QUERYTEXT']=_0x541b17[_0x8c68('0x2c')][_0x8c68('0x3d')];_0x5f2ffb[_0x8c68('0xd')]['DIALOGFLOWV2_SCORE']=_0x541b17['queryResult']['intentDetectionConfidence'];_0x5cf64d['providerName']=_0x8c68('0x3e');_0x5cf64d[_0x8c68('0x3f')]=JSON['stringify'](_0x246218);var _0x17da39=[];for(var _0x12a253=0x0;_0x12a253<_0x246218[_0x8c68('0x2b')];_0x12a253++){var _0x1a6720=_0x246218[_0x12a253];if(_0x1a6720&&_0x1a6720[_0x8c68('0x2c')]&&_0x1a6720[_0x8c68('0x2c')][_0x8c68('0x40')]){_0x17da39[_0x8c68('0x41')](createMessage(_0x2530e5,_0x7f3209,_0x5cf64d,_0x1a6720[_0x8c68('0x2c')]['fulfillmentText']));}}return Promise[_0x8c68('0x42')](_0x17da39)[_0x8c68('0xb')](function(){if(_0x17fe7b){_0xc3b3c1[_0x8c68('0x15')]();}else{_0xc3b3c1[_0x8c68('0x24')]();}})[_0x8c68('0xe')](function(_0x5185d1){logger['error']('[%s][DIALOGFLOWV2]\x20%s',_0x2530e5,JSON[_0x8c68('0x10')](_0x5185d1));_0xc3b3c1[_0x8c68('0x15')]();});}})['catch'](function(_0x39187c){logger[_0x8c68('0x22')](_0x8c68('0xf'),_0x2530e5,_0x39187c['message']);_0xc3b3c1[_0x8c68('0x15')]();});}}catch(_0x6b438e){logger[_0x8c68('0x22')](_0x8c68('0xf'),_0x2530e5,JSON['stringify'](_0x6b438e));_0xc3b3c1['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc13c=['error','[%s][GOTOIF]\x20%s','map','join','stop','condition','priorityFalse','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','next','findIndex','rules','info','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOIF]\x20eval\x20error:\x20%s','validate','./utils','../../../../config/logger','routing','string','priority\x20true\x20is\x20a\x20number','number','priority\x20false\x20is\x20a\x20number','consequence','fromString','getMustacheRender','length'];(function(_0x3e8cf6,_0xf2732e){var _0x586da3=function(_0x304387){while(--_0x304387){_0x3e8cf6['push'](_0x3e8cf6['shift']());}};_0x586da3(++_0xf2732e);}(_0xc13c,0x160));var _0xcc13=function(_0x4beee9,_0x1170a3){_0x4beee9=_0x4beee9-0x0;var _0x5ce1a1=_0xc13c[_0x4beee9];return _0x5ce1a1;};'use strict';var schema=require(_0xcc13('0x0'));var _=require('lodash');var htmlToText=require('html-to-text');var utils=require(_0xcc13('0x1'));var logger=require(_0xcc13('0x2'))(_0xcc13('0x3'));var gotoif=schema({'condition':{'type':_0xcc13('0x4'),'required':!![],'message':'condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'priorityTrue':{'type':'number','message':_0xcc13('0x5')},'priorityFalse':{'type':_0xcc13('0x6'),'message':_0xcc13('0x7')}});exports[_0xcc13('0x8')]=function(_0x147eea,_0x2fea15){return function(_0x5592b0){try{var _0x31d8fe={'condition':htmlToText[_0xcc13('0x9')](utils[_0xcc13('0xa')](_0x2fea15[0x0],this),{'wordwrap':![]})['replace'](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x2fea15[0x1],'priorityFalse':_0x2fea15[0x2]};var _0x22fce1=gotoif[_0xcc13('0x0')](_0x31d8fe,{'typecast':!![]});if(_0x22fce1[_0xcc13('0xb')]){logger[_0xcc13('0xc')](_0xcc13('0xd'),_0x147eea,_[_0xcc13('0xe')](_0x22fce1,'message')[_0xcc13('0xf')](',\x20'));_0x5592b0[_0xcc13('0x10')]();}else{try{var _0x1a4aee=eval('('+_0x31d8fe[_0xcc13('0x11')]+')');var _0x4b0ff3=_0x1a4aee?_0x31d8fe['priorityTrue']:_0x31d8fe[_0xcc13('0x12')];logger['info'](_0xcc13('0x13'),_0x147eea,_0x31d8fe[_0xcc13('0x11')],_0x1a4aee,_0x4b0ff3||_0xcc13('0x14'));if(_0x4b0ff3){var _0x2a359c=_[_0xcc13('0x15')](_0x5592b0[_0xcc13('0x16')](),{'p':_0x4b0ff3});if(_0x2a359c>=0x0){logger[_0xcc13('0x17')](_0xcc13('0x18'),_0x147eea,_0x4b0ff3||'next',_0x2a359c);_0x5592b0['next'](_0x2a359c);}else{logger['info']('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x147eea,_0x4b0ff3||'next');_0x5592b0['stop']();}}else{_0x5592b0[_0xcc13('0x14')]();}}catch(_0x10f178){logger[_0xcc13('0xc')](_0xcc13('0x19'),_0x147eea,_0x10f178['message']);_0x5592b0[_0xcc13('0x10')]();}}}catch(_0x3691f4){logger[_0xcc13('0xc')](_0xcc13('0xd'),_0x147eea,JSON['stringify'](_0x3691f4));_0x5592b0[_0xcc13('0x10')]();}};};
\ No newline at end of file
+var _0xa01f=['routing','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20true\x20is\x20a\x20number','priority\x20false\x20is\x20a\x20number','consequence','replace','length','error','[%s][GOTOIF]\x20%s','map','message','join','condition','priorityTrue','priorityFalse','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','next','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','stringify','stop','validate','lodash','html-to-text','./utils','../../../../config/logger'];(function(_0xb68695,_0x1881a4){var _0x15a817=function(_0x4d04d6){while(--_0x4d04d6){_0xb68695['push'](_0xb68695['shift']());}};_0x15a817(++_0x1881a4);}(_0xa01f,0xa9));var _0xfa01=function(_0x31cb5f,_0x2df766){_0x31cb5f=_0x31cb5f-0x0;var _0x586042=_0xa01f[_0x31cb5f];return _0x586042;};'use strict';var schema=require(_0xfa01('0x0'));var _=require(_0xfa01('0x1'));var htmlToText=require(_0xfa01('0x2'));var utils=require(_0xfa01('0x3'));var logger=require(_0xfa01('0x4'))(_0xfa01('0x5'));var gotoif=schema({'condition':{'type':_0xfa01('0x6'),'required':!![],'message':_0xfa01('0x7')},'priorityTrue':{'type':_0xfa01('0x8'),'message':_0xfa01('0x9')},'priorityFalse':{'type':'number','message':_0xfa01('0xa')}});exports[_0xfa01('0xb')]=function(_0x520f17,_0x4e350a){return function(_0x19f643){try{var _0x4d7587={'condition':htmlToText['fromString'](utils['getMustacheRender'](_0x4e350a[0x0],this),{'wordwrap':![]})[_0xfa01('0xc')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x4e350a[0x1],'priorityFalse':_0x4e350a[0x2]};var _0x401413=gotoif[_0xfa01('0x0')](_0x4d7587,{'typecast':!![]});if(_0x401413[_0xfa01('0xd')]){logger[_0xfa01('0xe')](_0xfa01('0xf'),_0x520f17,_[_0xfa01('0x10')](_0x401413,_0xfa01('0x11'))[_0xfa01('0x12')](',\x20'));_0x19f643['stop']();}else{try{var _0x4d4c0e=eval('('+_0x4d7587[_0xfa01('0x13')]+')');var _0x226949=_0x4d4c0e?_0x4d7587[_0xfa01('0x14')]:_0x4d7587[_0xfa01('0x15')];logger[_0xfa01('0x16')](_0xfa01('0x17'),_0x520f17,_0x4d7587[_0xfa01('0x13')],_0x4d4c0e,_0x226949||_0xfa01('0x18'));if(_0x226949){var _0x1d62f4=_['findIndex'](_0x19f643[_0xfa01('0x19')](),{'p':_0x226949});if(_0x1d62f4>=0x0){logger[_0xfa01('0x16')](_0xfa01('0x1a'),_0x520f17,_0x226949||_0xfa01('0x18'),_0x1d62f4);_0x19f643[_0xfa01('0x18')](_0x1d62f4);}else{logger[_0xfa01('0x16')]('[%s][GOTOIF]\x20priority\x20%s\x20not\x20found',_0x520f17,_0x226949||'next');_0x19f643['stop']();}}else{_0x19f643[_0xfa01('0x18')]();}}catch(_0x26805f){logger[_0xfa01('0xe')]('[%s][GOTOIF]\x20eval\x20error:\x20%s',_0x520f17,_0x26805f[_0xfa01('0x11')]);_0x19f643['stop']();}}}catch(_0x266f32){logger[_0xfa01('0xe')]('[%s][GOTOIF]\x20%s',_0x520f17,JSON[_0xfa01('0x1b')](_0x266f32));_0x19f643[_0xfa01('0x1c')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5107=['../../../../config/logger','routing','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','error','stop','info','[%s][GOTOP]\x20priority\x20%s','priority','findIndex','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','next','validate','lodash'];(function(_0x50e7e0,_0x5affce){var _0x1a0307=function(_0x32d343){while(--_0x32d343){_0x50e7e0['push'](_0x50e7e0['shift']());}};_0x1a0307(++_0x5affce);}(_0x5107,0x15c));var _0x7510=function(_0xc9b0a8,_0x30a616){_0xc9b0a8=_0xc9b0a8-0x0;var _0xee827b=_0x5107[_0xc9b0a8];return _0xee827b;};'use strict';var schema=require(_0x7510('0x0'));var _=require(_0x7510('0x1'));var logger=require(_0x7510('0x2'))(_0x7510('0x3'));var gotop=schema({'priority':{'type':_0x7510('0x4'),'required':!![],'message':_0x7510('0x5')}});exports['consequence']=function(_0x49a21c,_0x38947e){return function(_0x41c071){try{var _0x4c1462={'priority':_0x38947e[0x0]};var _0x27b4eb=gotop[_0x7510('0x0')](_0x4c1462,{'typecast':!![]});if(_0x27b4eb['length']){logger[_0x7510('0x6')]('[%s][GOTOP]\x20%s',_0x49a21c,_['map'](_0x27b4eb,'message')['join'](',\x20'));_0x41c071[_0x7510('0x7')]();}else{logger[_0x7510('0x8')](_0x7510('0x9'),_0x49a21c,_0x4c1462[_0x7510('0xa')]);if(_0x4c1462['priority']){var _0x1882b5=_[_0x7510('0xb')](_0x41c071['rules'](),{'p':_0x4c1462[_0x7510('0xa')]});if(_0x1882b5>=0x0){logger[_0x7510('0x8')]('[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s',_0x49a21c,_0x4c1462[_0x7510('0xa')]||'next',_0x1882b5);_0x41c071['next'](_0x1882b5);}else{logger[_0x7510('0x8')](_0x7510('0xc'),_0x49a21c,_0x4c1462['priority']||_0x7510('0xd'));_0x41c071['stop']();}}else{_0x41c071[_0x7510('0xd')]();}}}catch(_0x1f3234){logger[_0x7510('0x6')]('[%s][GOTOP]\x20%s',_0x49a21c,JSON['stringify'](_0x1f3234));_0x41c071[_0x7510('0x7')]();}};};
\ No newline at end of file
+var _0xbaef=['[%s][GOTOP]\x20%s','stringify','validate','../../../../config/logger','routing','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','consequence','length','error','map','[%s][GOTOP]\x20priority\x20%s','priority','rules','next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','stop'];(function(_0x401556,_0x112612){var _0x4d31da=function(_0x6e0710){while(--_0x6e0710){_0x401556['push'](_0x401556['shift']());}};_0x4d31da(++_0x112612);}(_0xbaef,0x72));var _0xfbae=function(_0x11b3f4,_0x371c17){_0x11b3f4=_0x11b3f4-0x0;var _0x47af1d=_0xbaef[_0x11b3f4];return _0x47af1d;};'use strict';var schema=require(_0xfbae('0x0'));var _=require('lodash');var logger=require(_0xfbae('0x1'))(_0xfbae('0x2'));var gotop=schema({'priority':{'type':'number','required':!![],'message':_0xfbae('0x3')}});exports[_0xfbae('0x4')]=function(_0x579373,_0x2adaee){return function(_0x25ef00){try{var _0x43fa3e={'priority':_0x2adaee[0x0]};var _0x51f87f=gotop['validate'](_0x43fa3e,{'typecast':!![]});if(_0x51f87f[_0xfbae('0x5')]){logger[_0xfbae('0x6')]('[%s][GOTOP]\x20%s',_0x579373,_[_0xfbae('0x7')](_0x51f87f,'message')['join'](',\x20'));_0x25ef00['stop']();}else{logger['info'](_0xfbae('0x8'),_0x579373,_0x43fa3e[_0xfbae('0x9')]);if(_0x43fa3e[_0xfbae('0x9')]){var _0xb31277=_['findIndex'](_0x25ef00[_0xfbae('0xa')](),{'p':_0x43fa3e['priority']});if(_0xb31277>=0x0){logger['info']('[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s',_0x579373,_0x43fa3e[_0xfbae('0x9')]||'next',_0xb31277);_0x25ef00[_0xfbae('0xb')](_0xb31277);}else{logger['info'](_0xfbae('0xc'),_0x579373,_0x43fa3e[_0xfbae('0x9')]||_0xfbae('0xb'));_0x25ef00[_0xfbae('0xd')]();}}else{_0x25ef00[_0xfbae('0xb')]();}}}catch(_0x3d4896){logger['error'](_0xfbae('0xe'),_0x579373,JSON[_0xfbae('0xf')](_0x3d4896));_0x25ef00[_0xfbae('0xd')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2396=['error','stringify','stop','lodash','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','contact','channel','chat','ChatWebsiteId','account','upperFirst','interaction','Message','create','then','info','[%s][MESSAGE]\x20%s','next','catch'];(function(_0x42d138,_0x4f5d6b){var _0x3e12bc=function(_0x5880b5){while(--_0x5880b5){_0x42d138['push'](_0x42d138['shift']());}};_0x3e12bc(++_0x4f5d6b);}(_0x2396,0xb9));var _0x6239=function(_0x256c49,_0x53f00a){_0x256c49=_0x256c49-0x0;var _0x280282=_0x2396[_0x256c49];return _0x280282;};'use strict';var _=require(_0x6239('0x0'));var utils=require('./utils');var logger=require(_0x6239('0x1'))(_0x6239('0x2'));var rpc={'chatMessage':require(_0x6239('0x3')),'openchannelMessage':require(_0x6239('0x4')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0x6239('0x5')),'faxMessage':require(_0x6239('0x6')),'whatsappMessage':require(_0x6239('0x7'))};exports[_0x6239('0x8')]=function(_0x11f58f,_0x4cb9fb){return function(_0x13bb21){try{var _0x383337={'body':utils['getMustacheRender'](_0x4cb9fb[0x0],this),'ContactId':this[_0x6239('0x9')]['id']};if(this[_0x6239('0xa')]===_0x6239('0xb')){_0x383337[_0x6239('0xc')]=this[_0x6239('0xd')]['id'];}else{_0x383337[_[_0x6239('0xe')](this[_0x6239('0xa')])+'AccountId']=this[_0x6239('0xd')]['id'];}_0x383337[_[_0x6239('0xe')](this[_0x6239('0xa')])+'InteractionId']=this[_0x6239('0xf')]['id'];if(rpc[this[_0x6239('0xa')]+_0x6239('0x10')]){return rpc[this[_0x6239('0xa')]+_0x6239('0x10')][_0x6239('0x11')](_0x383337)[_0x6239('0x12')](function(_0x598003){logger[_0x6239('0x13')](_0x6239('0x14'),_0x11f58f,_0x383337['body']);_0x13bb21[_0x6239('0x15')]();})[_0x6239('0x16')](function(_0x156283){logger[_0x6239('0x17')](_0x6239('0x14'),_0x11f58f,JSON[_0x6239('0x18')](_0x156283));_0x13bb21['stop']();});}}catch(_0xa09487){logger[_0x6239('0x17')](_0x6239('0x14'),_0x11f58f,JSON['stringify'](_0xa09487));_0x13bb21[_0x6239('0x19')]();}};};
\ No newline at end of file
+var _0x6b74=['next','error','stringify','stop','lodash','./utils','routing','../../rpc/chatMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','getMustacheRender','channel','chat','ChatWebsiteId','account','AccountId','upperFirst','InteractionId','interaction','Message','create','then','info','[%s][MESSAGE]\x20%s'];(function(_0x1875c8,_0x4e5f7a){var _0x28ed91=function(_0x326695){while(--_0x326695){_0x1875c8['push'](_0x1875c8['shift']());}};_0x28ed91(++_0x4e5f7a);}(_0x6b74,0xcc));var _0x46b7=function(_0x210603,_0x4adbac){_0x210603=_0x210603-0x0;var _0x1bcb7d=_0x6b74[_0x210603];return _0x1bcb7d;};'use strict';var _=require(_0x46b7('0x0'));var utils=require(_0x46b7('0x1'));var logger=require('../../../../config/logger')(_0x46b7('0x2'));var rpc={'chatMessage':require(_0x46b7('0x3')),'openchannelMessage':require('../../rpc/openchannelMessage'),'mailMessage':require(_0x46b7('0x4')),'smsMessage':require(_0x46b7('0x5')),'faxMessage':require(_0x46b7('0x6')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports['consequence']=function(_0x29b9e8,_0x3005ff){return function(_0x4df32f){try{var _0x158f8e={'body':utils[_0x46b7('0x7')](_0x3005ff[0x0],this),'ContactId':this['contact']['id']};if(this[_0x46b7('0x8')]===_0x46b7('0x9')){_0x158f8e[_0x46b7('0xa')]=this[_0x46b7('0xb')]['id'];}else{_0x158f8e[_['upperFirst'](this[_0x46b7('0x8')])+_0x46b7('0xc')]=this[_0x46b7('0xb')]['id'];}_0x158f8e[_[_0x46b7('0xd')](this[_0x46b7('0x8')])+_0x46b7('0xe')]=this[_0x46b7('0xf')]['id'];if(rpc[this[_0x46b7('0x8')]+_0x46b7('0x10')]){return rpc[this[_0x46b7('0x8')]+'Message'][_0x46b7('0x11')](_0x158f8e)[_0x46b7('0x12')](function(_0x118e3d){logger[_0x46b7('0x13')](_0x46b7('0x14'),_0x29b9e8,_0x158f8e['body']);_0x4df32f[_0x46b7('0x15')]();})['catch'](function(_0x252525){logger[_0x46b7('0x16')](_0x46b7('0x14'),_0x29b9e8,JSON[_0x46b7('0x17')](_0x252525));_0x4df32f[_0x46b7('0x18')]();});}}catch(_0x5f4430){logger[_0x46b7('0x16')](_0x46b7('0x14'),_0x29b9e8,JSON[_0x46b7('0x17')](_0x5f4430));_0x4df32f[_0x46b7('0x18')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeed9=['./utils','../../../../config/logger','routing','consequence','[%s][NOOP]\x20%s','error','stringify','stop'];(function(_0x1b57db,_0x4ad43a){var _0x330750=function(_0x2c25b8){while(--_0x2c25b8){_0x1b57db['push'](_0x1b57db['shift']());}};_0x330750(++_0x4ad43a);}(_0xeed9,0x1c0));var _0x9eed=function(_0x505df9,_0x14138e){_0x505df9=_0x505df9-0x0;var _0x1cc025=_0xeed9[_0x505df9];return _0x1cc025;};'use strict';var utils=require(_0x9eed('0x0'));var logger=require(_0x9eed('0x1'))(_0x9eed('0x2'));exports[_0x9eed('0x3')]=function(_0x1a989d,_0x231199){return function(_0x41f289){try{logger['info'](_0x9eed('0x4'),_0x1a989d,utils['getMustacheRender'](_0x231199[0x0],this));_0x41f289['next']();}catch(_0x59177b){logger[_0x9eed('0x5')]('[%s][NOOP]\x20%s',_0x1a989d,JSON[_0x9eed('0x6')](_0x59177b));_0x41f289[_0x9eed('0x7')]();}};};
\ No newline at end of file
+var _0xbe7b=['./utils','../../../../config/logger','routing','info','[%s][NOOP]\x20%s','getMustacheRender','next','error','stringify'];(function(_0x46fcf7,_0x211d36){var _0x7aa195=function(_0x4c5fd5){while(--_0x4c5fd5){_0x46fcf7['push'](_0x46fcf7['shift']());}};_0x7aa195(++_0x211d36);}(_0xbe7b,0x99));var _0xbbe7=function(_0x14f6db,_0x4d9f26){_0x14f6db=_0x14f6db-0x0;var _0x45344d=_0xbe7b[_0x14f6db];return _0x45344d;};'use strict';var utils=require(_0xbbe7('0x0'));var logger=require(_0xbbe7('0x1'))(_0xbbe7('0x2'));exports['consequence']=function(_0x4305c9,_0x38620c){return function(_0x38e263){try{logger[_0xbbe7('0x3')](_0xbbe7('0x4'),_0x4305c9,utils[_0xbbe7('0x5')](_0x38620c[0x0],this));_0x38e263[_0xbbe7('0x6')]();}catch(_0xb67f6d){logger[_0xbbe7('0x7')](_0xbbe7('0x4'),_0x4305c9,JSON[_0xbbe7('0x8')](_0xb67f6d));_0x38e263['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb602=['socket.io-emitter','queue_id','account','queue','from','clone','format','%sQueuesWaitingInteractions','%s:queue:%s','%s_queue_waiting_interaction:%s','save','remove','pick','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','../../rpc/whatsappQueueReport','string','number','timeout\x20is\x20a\x20number','waiting','body','YYYY-MM-DD\x20HH:mm:ss','contact','list','upperFirst','channel','interaction','MessageId','message','chat','WebsiteId','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','error','create\x20queue\x20report','accepted','info','[%s][STOP:QUEUE][NAME:%s]','update','update\x20queue\x20report','timeout','[%s][END:QUEUE][NAME:%s]','toLowerCase','consequence','[%s][QUEUE]\x20%s','map','join','find','Queues','createQueue','atimeout','end','close','rules','stop','complete','[%s][QUEUE]\x20APPLICATION\x20END','next','strategy','rrmemory','beepall','log','stack','validate','lodash','util','seq-queue','../../../../config/logger','redis','localhost'];(function(_0x593b91,_0x4507bb){var _0x3f0b32=function(_0x4e146f){while(--_0x4e146f){_0x593b91['push'](_0x593b91['shift']());}};_0x3f0b32(++_0x4507bb);}(_0xb602,0x175));var _0x2b60=function(_0x354df6,_0x4fb714){_0x354df6=_0x354df6-0x0;var _0x3b8676=_0xb602[_0x354df6];return _0x3b8676;};'use strict';var schema=require(_0x2b60('0x0'));var _=require(_0x2b60('0x1'));var util=require(_0x2b60('0x2'));var seqqueue=require(_0x2b60('0x3'));var moment=require('moment');var Redis=require('ioredis');var config=require('../../../../config/environment');var logger=require(_0x2b60('0x4'))('routing');var strategy=require('./strategy');config[_0x2b60('0x5')]=_['defaults'](config[_0x2b60('0x5')],{'host':_0x2b60('0x6'),'port':0x18eb});var io=require(_0x2b60('0x7'))(new Redis(config[_0x2b60('0x5')]));var attributes=['id',_0x2b60('0x8'),_0x2b60('0x9'),_0x2b60('0xa'),_0x2b60('0xb'),'joinAt'];function emit(_0x1dff91,_0x4ff8af,_0x3e58e5){io['to'](_0x1dff91)['emit'](_0x4ff8af,_0x3e58e5);}function emitChannelQueueInteraction(_0x240abb,_0x4f69a9,_0x5b7daf,_0x5c9c71,_0x499558,_0x3f3045,_0x2c3484,_0x16f3d6){var _0x5028d2=_[_0x2b60('0xc')](_0x5b7daf);_0x5028d2['queue_id']=_0x16f3d6;_0x5028d2[_0x2b60('0xa')]=_0x4f69a9;_0x5028d2['account']=_0x5c9c71;_0x5028d2['id']=_0x499558;if(_0x3f3045){_0x2c3484[util[_0x2b60('0xd')](_0x2b60('0xe'),_0x240abb)][_0x499558]=_['pick'](_0x5028d2,attributes);}else{delete _0x2c3484[util[_0x2b60('0xd')]('%sQueuesWaitingInteractions',_0x240abb)][_0x499558];}emit(util[_0x2b60('0xd')](_0x2b60('0xf'),_0x240abb,_0x4f69a9),util[_0x2b60('0xd')](_0x2b60('0x10'),_0x240abb,_0x3f3045?_0x2b60('0x11'):_0x2b60('0x12')),_[_0x2b60('0x13')](_0x5028d2,attributes));}var rpc={'openchannelQueueReport':require(_0x2b60('0x14')),'mailQueueReport':require(_0x2b60('0x15')),'chatQueueReport':require(_0x2b60('0x16')),'smsQueueReport':require(_0x2b60('0x17')),'faxQueueReport':require(_0x2b60('0x18')),'whatsappQueueReport':require(_0x2b60('0x19'))};var queue=schema({'name':{'type':_0x2b60('0x1a'),'required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':_0x2b60('0x1b'),'message':_0x2b60('0x1c')}});function startRouting(_0x4d0779,_0x581d65,_0x2c651b,_0x189777){if(_0x4d0779&&_0x581d65&&_0x2c651b){_0x581d65[_0x2b60('0x1d')]+=0x1;var _0x3aaa93={'uniqueid':_0x4d0779,'from':_0x2c651b['body']?_0x2c651b[_0x2b60('0x1e')][_0x2b60('0xb')]:'','joinAt':moment()['format'](_0x2b60('0x1f')),'ContactId':_0x2c651b['contact']?_0x2c651b[_0x2b60('0x20')]['id']:null,'ListId':_0x2c651b[_0x2b60('0x21')]?_0x2c651b[_0x2b60('0x21')]['id']:null};_0x3aaa93[_[_0x2b60('0x22')](_0x2c651b['channel'])+'QueueId']=_0x581d65['id']||null;_0x3aaa93[_[_0x2b60('0x22')](_0x2c651b[_0x2b60('0x23')])+'InteractionId']=_0x2c651b['interaction']?_0x2c651b[_0x2b60('0x24')]['id']:null;_0x3aaa93[_[_0x2b60('0x22')](_0x2c651b[_0x2b60('0x23')])+_0x2b60('0x25')]=_0x2c651b['message']?_0x2c651b[_0x2b60('0x26')]['id']:null;_0x3aaa93[_[_0x2b60('0x22')](_0x2c651b['channel'])+(_0x2c651b['channel']!==_0x2b60('0x27')?'AccountId':_0x2b60('0x28'))]=_0x2c651b['account']?_0x2c651b[_0x2b60('0x9')]['id']:null;logger['info'](util[_0x2b60('0xd')](_0x2b60('0x29'),_0x4d0779,_0x581d65[_0x2b60('0x2a')]));emitChannelQueueInteraction(_0x2c651b[_0x2b60('0x23')],_0x581d65['name'],_0x3aaa93,_0x2c651b['account']['name'],_0x2c651b[_0x2b60('0x26')]['id'],!![],_0x189777,_0x581d65['id']);if(rpc[_0x2c651b[_0x2b60('0x23')]+_0x2b60('0x2b')]){return rpc[_0x2c651b[_0x2b60('0x23')]+_0x2b60('0x2b')][_0x2b60('0x2c')](_0x3aaa93)[_0x2b60('0x2d')](function(_0x2d53db){logger[_0x2b60('0x2e')](_0x2b60('0x2f'));});}}}function stopRouting(_0x3bf07b,_0x4755eb,_0x52bf81,_0x93e23f){if(_0x3bf07b&&_0x4755eb){_0x4755eb[_0x2b60('0x1d')]-=0x1;var _0x17ea6b={'leaveAt':moment()[_0x2b60('0xd')](_0x2b60('0x1f')),'acceptAt':moment()[_0x2b60('0xd')](_0x2b60('0x1f')),'reason':_0x2b60('0x30')};logger[_0x2b60('0x31')](util[_0x2b60('0xd')](_0x2b60('0x32'),_0x3bf07b,_0x4755eb[_0x2b60('0x2a')]));emitChannelQueueInteraction(_0x52bf81['channel'],_0x4755eb[_0x2b60('0x2a')],_0x52bf81['body'],_0x52bf81[_0x2b60('0x9')][_0x2b60('0x2a')],_0x52bf81[_0x2b60('0x26')]['id'],![],_0x93e23f,_0x4755eb['id']);if(rpc[_0x52bf81[_0x2b60('0x23')]+_0x2b60('0x2b')]){return rpc[_0x52bf81[_0x2b60('0x23')]+_0x2b60('0x2b')][_0x2b60('0x33')](_0x3bf07b,_0x17ea6b)[_0x2b60('0x2d')](function(_0x534132){logger['error'](_0x2b60('0x34'));});}}}function endRouting(_0x5b67d2,_0x5debf9,_0x23e32c,_0x1e96ae){if(_0x5b67d2&&_0x5debf9){_0x5debf9[_0x2b60('0x1d')]-=0x1;var _0x161516={'leaveAt':moment()['format'](_0x2b60('0x1f')),'exitAt':moment()[_0x2b60('0xd')](_0x2b60('0x1f')),'reason':_0x2b60('0x35')};logger[_0x2b60('0x31')](util[_0x2b60('0xd')](_0x2b60('0x36'),_0x5b67d2,_0x5debf9['name']));emitChannelQueueInteraction(_0x23e32c[_0x2b60('0x23')],_0x5debf9['name'],_0x23e32c[_0x2b60('0x1e')],_0x23e32c[_0x2b60('0x9')][_0x2b60('0x2a')],_0x23e32c[_0x2b60('0x26')]['id'],![],_0x1e96ae);if(rpc[_0x23e32c[_0x2b60('0x23')]+_0x2b60('0x2b')]){return rpc[_0x23e32c[_0x2b60('0x23')]+'QueueReport'][_0x2b60('0x33')](_0x5b67d2,_0x161516)[_0x2b60('0x2d')](function(_0x31e94c){logger[_0x2b60('0x2e')]('update\x20queue\x20report');});}}}function handleFindQueue(_0x475735){return function(_0x53dd25){return _0x53dd25[_0x2b60('0x2a')]['toLowerCase']()===_0x475735[_0x2b60('0x37')]();};}exports[_0x2b60('0x38')]=function(_0x5daacc,_0x4dc52f,_0x1d5a83,_0x2a0a2e){return function(_0x9b268c){try{var _0x2e29d1={'name':_0x4dc52f[0x0],'timeout':_0x4dc52f[0x1]};var _0x5e36e4=queue[_0x2b60('0x0')](_0x2e29d1,{'typecast':!![]});if(_0x5e36e4['length']){logger[_0x2b60('0x2e')](_0x2b60('0x39'),_0x5daacc,_[_0x2b60('0x3a')](_0x5e36e4,'message')[_0x2b60('0x3b')](',\x20'));_0x9b268c['stop']();}else{var _0x36c3a5=_[_0x2b60('0x3c')](_0x1d5a83[_0x2a0a2e[_0x2b60('0x23')]+_0x2b60('0x3d')],handleFindQueue(_0x2e29d1[_0x2b60('0x2a')]));if(_0x36c3a5){startRouting(_0x5daacc,_0x36c3a5,_0x2a0a2e,_0x1d5a83);var _0x2a0cfe=(_0x36c3a5[_0x2b60('0x35')]||0xa)*0x3e8;var _0x179381=(_0x2e29d1[_0x2b60('0x35')]||0x14)*0x3e8;var _0xb50ea5,_0x20dc02;if(_0x2a0cfe>_0x179381){_0x179381=_0x2a0cfe;}var _0x1edb0f=seqqueue[_0x2b60('0x3e')](_0x2a0cfe);_0x1edb0f['id']=_0x5daacc;_0x1edb0f[_0x2b60('0x3f')]=_0x2a0cfe;_0x1edb0f['qtimeout']=_0x179381;_0x1edb0f[_0x2b60('0x23')]=_0x2a0a2e[_0x2b60('0x23')];_0x1d5a83['rules'][_0x5daacc]['on'](_0x2b60('0x40'),function(){logger[_0x2b60('0x31')]('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x5daacc);stopRouting(_0x5daacc,_0x36c3a5,_0x2a0a2e,_0x1d5a83);clearTimeout(_0xb50ea5);_0xb50ea5=undefined;_0x1edb0f[_0x2b60('0x41')](!![]);if(_0x1d5a83[_0x2b60('0x42')][_0x5daacc]){delete _0x1d5a83[_0x2b60('0x42')][_0x5daacc];}_0x9b268c[_0x2b60('0x43')]();});_0x1d5a83[_0x2b60('0x42')][_0x5daacc]['on'](_0x2b60('0x44'),function(){if(_0x1d5a83[_0x2b60('0x42')][_0x5daacc]){delete _0x1d5a83[_0x2b60('0x42')][_0x5daacc];}});_0xb50ea5=setTimeout(function(){logger[_0x2b60('0x31')](_0x2b60('0x45'),_0x5daacc);endRouting(_0x5daacc,_0x36c3a5,_0x2a0a2e,_0x1d5a83);clearTimeout(_0xb50ea5);_0x1edb0f[_0x2b60('0x41')](!![]);_0x9b268c[_0x2b60('0x46')]();},_0x179381);switch(_0x36c3a5[_0x2b60('0x47')]){case _0x2b60('0x48'):strategy['rrmemory'](_0x1edb0f,_0x36c3a5,_0x1d5a83,_0x2a0a2e);break;default:strategy[_0x2b60('0x49')](_0x1edb0f,_0x36c3a5,_0x1d5a83,_0x2a0a2e);}}else{logger[_0x2b60('0x2e')]('[%s][QUEUE]\x20queue\x20not\x20found\x20%s',_0x5daacc,_0x2e29d1[_0x2b60('0x2a')]);_0x9b268c[_0x2b60('0x43')]();}}}catch(_0x2152d7){console[_0x2b60('0x4a')](_0x2152d7);logger[_0x2b60('0x2e')](_0x2b60('0x39'),_0x5daacc,_0x2152d7[_0x2b60('0x4b')]);_0x9b268c['stop']();}};};
\ No newline at end of file
+var _0xbd3b=['next','strategy','rrmemory','beepall','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','log','validate','util','seq-queue','moment','ioredis','../../../../config/environment','../../../../config/logger','routing','redis','localhost','queue_id','account','queue','joinAt','emit','clone','pick','format','%sQueuesWaitingInteractions','%s:queue:%s','%s_queue_waiting_interaction:%s','save','../../rpc/openchannelQueueReport','../../rpc/mailQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','../../rpc/faxQueueReport','../../rpc/whatsappQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','timeout\x20is\x20a\x20number','waiting','body','from','YYYY-MM-DD\x20HH:mm:ss','contact','list','channel','upperFirst','interaction','message','chat','WebsiteId','name','QueueReport','catch','info','[%s][STOP:QUEUE][NAME:%s]','update','timeout','error','update\x20queue\x20report','toLowerCase','consequence','[%s][QUEUE]\x20%s','map','join','stop','Queues','createQueue','atimeout','rules','end','[%s][QUEUE]\x20ROUTING\x20STOPPED','close','complete','[%s][QUEUE]\x20APPLICATION\x20END'];(function(_0x41ec9b,_0x5bc5eb){var _0x323d79=function(_0x442189){while(--_0x442189){_0x41ec9b['push'](_0x41ec9b['shift']());}};_0x323d79(++_0x5bc5eb);}(_0xbd3b,0x9a));var _0xbbd3=function(_0x207abf,_0x33cf2e){_0x207abf=_0x207abf-0x0;var _0x481744=_0xbd3b[_0x207abf];return _0x481744;};'use strict';var schema=require(_0xbbd3('0x0'));var _=require('lodash');var util=require(_0xbbd3('0x1'));var seqqueue=require(_0xbbd3('0x2'));var moment=require(_0xbbd3('0x3'));var Redis=require(_0xbbd3('0x4'));var config=require(_0xbbd3('0x5'));var logger=require(_0xbbd3('0x6'))(_0xbbd3('0x7'));var strategy=require('./strategy');config[_0xbbd3('0x8')]=_['defaults'](config[_0xbbd3('0x8')],{'host':_0xbbd3('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var attributes=['id',_0xbbd3('0xa'),_0xbbd3('0xb'),_0xbbd3('0xc'),'from',_0xbbd3('0xd')];function emit(_0x25ab57,_0x1a4684,_0x452ab7){io['to'](_0x25ab57)[_0xbbd3('0xe')](_0x1a4684,_0x452ab7);}function emitChannelQueueInteraction(_0xa090e3,_0x564814,_0x47ed7e,_0x197724,_0x1d7646,_0x51267c,_0x6aba76,_0x2680d2){var _0x1f63eb=_[_0xbbd3('0xf')](_0x47ed7e);_0x1f63eb[_0xbbd3('0xa')]=_0x2680d2;_0x1f63eb[_0xbbd3('0xc')]=_0x564814;_0x1f63eb[_0xbbd3('0xb')]=_0x197724;_0x1f63eb['id']=_0x1d7646;if(_0x51267c){_0x6aba76[util['format']('%sQueuesWaitingInteractions',_0xa090e3)][_0x1d7646]=_[_0xbbd3('0x10')](_0x1f63eb,attributes);}else{delete _0x6aba76[util[_0xbbd3('0x11')](_0xbbd3('0x12'),_0xa090e3)][_0x1d7646];}emit(util[_0xbbd3('0x11')](_0xbbd3('0x13'),_0xa090e3,_0x564814),util[_0xbbd3('0x11')](_0xbbd3('0x14'),_0xa090e3,_0x51267c?_0xbbd3('0x15'):'remove'),_[_0xbbd3('0x10')](_0x1f63eb,attributes));}var rpc={'openchannelQueueReport':require(_0xbbd3('0x16')),'mailQueueReport':require(_0xbbd3('0x17')),'chatQueueReport':require(_0xbbd3('0x18')),'smsQueueReport':require(_0xbbd3('0x19')),'faxQueueReport':require(_0xbbd3('0x1a')),'whatsappQueueReport':require(_0xbbd3('0x1b'))};var queue=schema({'name':{'type':_0xbbd3('0x1c'),'required':!![],'message':_0xbbd3('0x1d')},'timeout':{'type':_0xbbd3('0x1e'),'message':_0xbbd3('0x1f')}});function startRouting(_0x2b24f8,_0x3b6f00,_0x49d24b,_0x50b4b2){if(_0x2b24f8&&_0x3b6f00&&_0x49d24b){_0x3b6f00[_0xbbd3('0x20')]+=0x1;var _0x34d3ba={'uniqueid':_0x2b24f8,'from':_0x49d24b[_0xbbd3('0x21')]?_0x49d24b[_0xbbd3('0x21')][_0xbbd3('0x22')]:'','joinAt':moment()[_0xbbd3('0x11')](_0xbbd3('0x23')),'ContactId':_0x49d24b['contact']?_0x49d24b[_0xbbd3('0x24')]['id']:null,'ListId':_0x49d24b[_0xbbd3('0x25')]?_0x49d24b[_0xbbd3('0x25')]['id']:null};_0x34d3ba[_['upperFirst'](_0x49d24b[_0xbbd3('0x26')])+'QueueId']=_0x3b6f00['id']||null;_0x34d3ba[_[_0xbbd3('0x27')](_0x49d24b['channel'])+'InteractionId']=_0x49d24b[_0xbbd3('0x28')]?_0x49d24b[_0xbbd3('0x28')]['id']:null;_0x34d3ba[_[_0xbbd3('0x27')](_0x49d24b[_0xbbd3('0x26')])+'MessageId']=_0x49d24b[_0xbbd3('0x29')]?_0x49d24b[_0xbbd3('0x29')]['id']:null;_0x34d3ba[_[_0xbbd3('0x27')](_0x49d24b[_0xbbd3('0x26')])+(_0x49d24b[_0xbbd3('0x26')]!==_0xbbd3('0x2a')?'AccountId':_0xbbd3('0x2b'))]=_0x49d24b[_0xbbd3('0xb')]?_0x49d24b['account']['id']:null;logger['info'](util[_0xbbd3('0x11')]('[%s][START:QUEUE][NAME:%s]',_0x2b24f8,_0x3b6f00['name']));emitChannelQueueInteraction(_0x49d24b['channel'],_0x3b6f00[_0xbbd3('0x2c')],_0x34d3ba,_0x49d24b['account'][_0xbbd3('0x2c')],_0x49d24b[_0xbbd3('0x29')]['id'],!![],_0x50b4b2,_0x3b6f00['id']);if(rpc[_0x49d24b[_0xbbd3('0x26')]+_0xbbd3('0x2d')]){return rpc[_0x49d24b[_0xbbd3('0x26')]+_0xbbd3('0x2d')]['create'](_0x34d3ba)[_0xbbd3('0x2e')](function(_0x48943a){logger['error']('create\x20queue\x20report');});}}}function stopRouting(_0x489494,_0x262989,_0x34d704,_0x2eac20){if(_0x489494&&_0x262989){_0x262989[_0xbbd3('0x20')]-=0x1;var _0x421104={'leaveAt':moment()[_0xbbd3('0x11')]('YYYY-MM-DD\x20HH:mm:ss'),'acceptAt':moment()[_0xbbd3('0x11')]('YYYY-MM-DD\x20HH:mm:ss'),'reason':'accepted'};logger[_0xbbd3('0x2f')](util[_0xbbd3('0x11')](_0xbbd3('0x30'),_0x489494,_0x262989[_0xbbd3('0x2c')]));emitChannelQueueInteraction(_0x34d704['channel'],_0x262989[_0xbbd3('0x2c')],_0x34d704[_0xbbd3('0x21')],_0x34d704[_0xbbd3('0xb')]['name'],_0x34d704[_0xbbd3('0x29')]['id'],![],_0x2eac20,_0x262989['id']);if(rpc[_0x34d704[_0xbbd3('0x26')]+'QueueReport']){return rpc[_0x34d704[_0xbbd3('0x26')]+_0xbbd3('0x2d')][_0xbbd3('0x31')](_0x489494,_0x421104)[_0xbbd3('0x2e')](function(_0x4d538d){logger['error']('update\x20queue\x20report');});}}}function endRouting(_0x1d4fd9,_0x2a11a3,_0x4f3675,_0x5ffe5a){if(_0x1d4fd9&&_0x2a11a3){_0x2a11a3['waiting']-=0x1;var _0x314d56={'leaveAt':moment()[_0xbbd3('0x11')](_0xbbd3('0x23')),'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0xbbd3('0x32')};logger[_0xbbd3('0x2f')](util['format']('[%s][END:QUEUE][NAME:%s]',_0x1d4fd9,_0x2a11a3['name']));emitChannelQueueInteraction(_0x4f3675[_0xbbd3('0x26')],_0x2a11a3[_0xbbd3('0x2c')],_0x4f3675[_0xbbd3('0x21')],_0x4f3675[_0xbbd3('0xb')]['name'],_0x4f3675[_0xbbd3('0x29')]['id'],![],_0x5ffe5a);if(rpc[_0x4f3675[_0xbbd3('0x26')]+_0xbbd3('0x2d')]){return rpc[_0x4f3675[_0xbbd3('0x26')]+_0xbbd3('0x2d')][_0xbbd3('0x31')](_0x1d4fd9,_0x314d56)[_0xbbd3('0x2e')](function(_0x540f35){logger[_0xbbd3('0x33')](_0xbbd3('0x34'));});}}}function handleFindQueue(_0x41d84a){return function(_0x177286){return _0x177286[_0xbbd3('0x2c')][_0xbbd3('0x35')]()===_0x41d84a[_0xbbd3('0x35')]();};}exports[_0xbbd3('0x36')]=function(_0x5b38eb,_0x3b0102,_0x2661a0,_0x429de3){return function(_0x5aadc9){try{var _0x1b7598={'name':_0x3b0102[0x0],'timeout':_0x3b0102[0x1]};var _0x1559f5=queue[_0xbbd3('0x0')](_0x1b7598,{'typecast':!![]});if(_0x1559f5['length']){logger[_0xbbd3('0x33')](_0xbbd3('0x37'),_0x5b38eb,_[_0xbbd3('0x38')](_0x1559f5,_0xbbd3('0x29'))[_0xbbd3('0x39')](',\x20'));_0x5aadc9[_0xbbd3('0x3a')]();}else{var _0x214eba=_['find'](_0x2661a0[_0x429de3[_0xbbd3('0x26')]+_0xbbd3('0x3b')],handleFindQueue(_0x1b7598['name']));if(_0x214eba){startRouting(_0x5b38eb,_0x214eba,_0x429de3,_0x2661a0);var _0x7b5dc3=(_0x214eba['timeout']||0xa)*0x3e8;var _0x3af561=(_0x1b7598['timeout']||0x14)*0x3e8;var _0xc53b4d,_0x2ff4d1;if(_0x7b5dc3>_0x3af561){_0x3af561=_0x7b5dc3;}var _0x10b879=seqqueue[_0xbbd3('0x3c')](_0x7b5dc3);_0x10b879['id']=_0x5b38eb;_0x10b879[_0xbbd3('0x3d')]=_0x7b5dc3;_0x10b879['qtimeout']=_0x3af561;_0x10b879[_0xbbd3('0x26')]=_0x429de3['channel'];_0x2661a0[_0xbbd3('0x3e')][_0x5b38eb]['on'](_0xbbd3('0x3f'),function(){logger['info'](_0xbbd3('0x40'),_0x5b38eb);stopRouting(_0x5b38eb,_0x214eba,_0x429de3,_0x2661a0);clearTimeout(_0xc53b4d);_0xc53b4d=undefined;_0x10b879[_0xbbd3('0x41')](!![]);if(_0x2661a0['rules'][_0x5b38eb]){delete _0x2661a0[_0xbbd3('0x3e')][_0x5b38eb];}_0x5aadc9[_0xbbd3('0x3a')]();});_0x2661a0[_0xbbd3('0x3e')][_0x5b38eb]['on'](_0xbbd3('0x42'),function(){if(_0x2661a0[_0xbbd3('0x3e')][_0x5b38eb]){delete _0x2661a0[_0xbbd3('0x3e')][_0x5b38eb];}});_0xc53b4d=setTimeout(function(){logger[_0xbbd3('0x2f')](_0xbbd3('0x43'),_0x5b38eb);endRouting(_0x5b38eb,_0x214eba,_0x429de3,_0x2661a0);clearTimeout(_0xc53b4d);_0x10b879[_0xbbd3('0x41')](!![]);_0x5aadc9[_0xbbd3('0x44')]();},_0x3af561);switch(_0x214eba[_0xbbd3('0x45')]){case _0xbbd3('0x46'):strategy[_0xbbd3('0x46')](_0x10b879,_0x214eba,_0x2661a0,_0x429de3);break;default:strategy[_0xbbd3('0x47')](_0x10b879,_0x214eba,_0x2661a0,_0x429de3);}}else{logger[_0xbbd3('0x33')](_0xbbd3('0x48'),_0x5b38eb,_0x1b7598[_0xbbd3('0x2c')]);_0x5aadc9[_0xbbd3('0x3a')]();}}}catch(_0x1dde37){console[_0xbbd3('0x49')](_0x1dde37);logger['error'](_0xbbd3('0x37'),_0x5b38eb,_0x1dde37['stack']);_0x5aadc9[_0xbbd3('0x3a')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76e3=['[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','busyQueue','STOP','TIMEOUT','exports','lodash','../../../../../config/logger','routing','notificationId','squeue','agent','realtime','bind','timeout','drained','handleDrained','handleRun','prototype','handleTimeout','info','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','push','forcedOwnership','isAgentAvailable','channel','busy','writeLog','RINGING',':FORCED','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','isNil'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x76e3,0x1b3));var _0x376e=function(_0x13c45d,_0x34f0fa){_0x13c45d=_0x13c45d-0x0;var _0xa1bf81=_0x76e3[_0x13c45d];return _0xa1bf81;};'use strict';var _=require(_0x376e('0x0'));var uuid=require('uuid');var util=require('./util');var logger=require(_0x376e('0x1'))(_0x376e('0x2'));var Agent=function(_0x192716,_0x335a95,_0x55a9de,_0x5beb9a){this[_0x376e('0x3')]=uuid['v4']();this[_0x376e('0x4')]=_0x192716;this[_0x376e('0x5')]=_0x335a95;this[_0x376e('0x6')]=_0x55a9de;this['routing']=_0x5beb9a;this[_0x376e('0x4')]['push'](this['handleRun'][_0x376e('0x7')](this),this['handleTimeout'][_0x376e('0x7')](this));this[_0x376e('0x4')]['on'](_0x376e('0x8'),this['handleTimeout'][_0x376e('0x7')](this));this['squeue']['on'](_0x376e('0x9'),this[_0x376e('0xa')][_0x376e('0x7')](this));};Agent['prototype']['push']=function(){this['squeue']['push'](this[_0x376e('0xb')][_0x376e('0x7')](this),this['handleTimeout']['bind'](this));};Agent[_0x376e('0xc')][_0x376e('0xa')]=function(){this[_0x376e('0xd')](!![]);};Agent[_0x376e('0xc')][_0x376e('0xb')]=function(_0x9aa801){logger[_0x376e('0xe')]('[%s][AGENT]\x20try\x20with\x20%s',this[_0x376e('0x4')]['id'],this[_0x376e('0x5')]['id']);if(_['isNil'](this['realtime'][_0x376e('0xf')][this['agent']['id']])){logger['info'](_0x376e('0x10'),this[_0x376e('0x4')]['id'],this[_0x376e('0x5')]['id']);setTimeout(this[_0x376e('0x11')][_0x376e('0x7')](this),0x3e8);}else{if(this['routing'][_0x376e('0x12')]||util[_0x376e('0x13')](this[_0x376e('0x4')]['id'],this[_0x376e('0x6')][_0x376e('0xf')][this[_0x376e('0x5')]['id']],this['squeue'][_0x376e('0x14')],![])){this[_0x376e('0x6')]['agents'][this[_0x376e('0x5')]['id']][_0x376e('0x15')]=!![];this['realtime'][_0x376e('0xf')][this[_0x376e('0x5')]['id']]['busyQueue']=undefined;util['showNotification'](this[_0x376e('0x3')],this['squeue']['id'],this[_0x376e('0x6')]['agents'][this[_0x376e('0x5')]['id']],null,this['routing']);util[_0x376e('0x16')](this['squeue']['id'],this[_0x376e('0x6')][_0x376e('0xf')][this[_0x376e('0x5')]['id']],_0x376e('0x17')+(this['routing'][_0x376e('0x12')]?_0x376e('0x18'):''));}else{logger['info'](_0x376e('0x19'),this[_0x376e('0x4')]['id'],this['agent']['id']);setTimeout(this[_0x376e('0x11')][_0x376e('0x7')](this),0x3e8);}}};Agent[_0x376e('0xc')][_0x376e('0xd')]=function(_0x46b95f){if(_[_0x376e('0x1a')](this[_0x376e('0x6')]['agents'][this[_0x376e('0x5')]['id']])){return logger[_0x376e('0xe')](_0x376e('0x10'),this[_0x376e('0x4')]['id'],this[_0x376e('0x5')]['id']);}else{logger[_0x376e('0xe')](_0x376e('0x1b'),this[_0x376e('0x4')]['id'],this[_0x376e('0x5')]['id']);util[_0x376e('0x1c')](this[_0x376e('0x3')],this[_0x376e('0x4')]['id'],this[_0x376e('0x6')][_0x376e('0xf')][this[_0x376e('0x5')]['id']],null,this[_0x376e('0x2')]);this[_0x376e('0x6')]['agents'][this['agent']['id']]['busy']=![];this[_0x376e('0x6')][_0x376e('0xf')][this[_0x376e('0x5')]['id']][_0x376e('0x1d')]=undefined;util[_0x376e('0x16')](this[_0x376e('0x4')]['id'],this['realtime'][_0x376e('0xf')][this[_0x376e('0x5')]['id']],_0x46b95f?_0x376e('0x1e'):_0x376e('0x1f'));}if(!_0x46b95f){setTimeout(this[_0x376e('0x11')]['bind'](this),0x3e8);}};function agent(_0x2cbb41,_0x437330,_0x33f603,_0x57bb38){return new Agent(_0x2cbb41,_0x437330,_0x33f603,_0x57bb38);}module[_0x376e('0x20')]=agent;
\ No newline at end of file
+var _0x4d88=['forcedOwnership','isAgentAvailable','channel','busy','showNotification','writeLog',':FORCED','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','busyQueue','STOP','exports','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','agent','realtime','handleRun','bind','handleTimeout','timeout','handleDrained','prototype','push','info','[%s][AGENT]\x20try\x20with\x20%s','agents','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s'];(function(_0x95aa51,_0x57a3ed){var _0x4ac62d=function(_0x3c364d){while(--_0x3c364d){_0x95aa51['push'](_0x95aa51['shift']());}};_0x4ac62d(++_0x57a3ed);}(_0x4d88,0x1be));var _0x84d8=function(_0x590941,_0x1981e0){_0x590941=_0x590941-0x0;var _0x43c7bc=_0x4d88[_0x590941];return _0x43c7bc;};'use strict';var _=require('lodash');var uuid=require(_0x84d8('0x0'));var util=require(_0x84d8('0x1'));var logger=require(_0x84d8('0x2'))(_0x84d8('0x3'));var Agent=function(_0x5d91a5,_0x161b39,_0x296d49,_0x4011b1){this[_0x84d8('0x4')]=uuid['v4']();this[_0x84d8('0x5')]=_0x5d91a5;this[_0x84d8('0x6')]=_0x161b39;this[_0x84d8('0x7')]=_0x296d49;this[_0x84d8('0x3')]=_0x4011b1;this['squeue']['push'](this[_0x84d8('0x8')][_0x84d8('0x9')](this),this[_0x84d8('0xa')][_0x84d8('0x9')](this));this['squeue']['on'](_0x84d8('0xb'),this[_0x84d8('0xa')]['bind'](this));this['squeue']['on']('drained',this[_0x84d8('0xc')]['bind'](this));};Agent[_0x84d8('0xd')]['push']=function(){this[_0x84d8('0x5')][_0x84d8('0xe')](this[_0x84d8('0x8')][_0x84d8('0x9')](this),this[_0x84d8('0xa')][_0x84d8('0x9')](this));};Agent[_0x84d8('0xd')]['handleDrained']=function(){this[_0x84d8('0xa')](!![]);};Agent['prototype'][_0x84d8('0x8')]=function(_0x48232a){logger[_0x84d8('0xf')](_0x84d8('0x10'),this[_0x84d8('0x5')]['id'],this['agent']['id']);if(_['isNil'](this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']])){logger[_0x84d8('0xf')](_0x84d8('0x12'),this[_0x84d8('0x5')]['id'],this[_0x84d8('0x6')]['id']);setTimeout(this[_0x84d8('0xe')][_0x84d8('0x9')](this),0x3e8);}else{if(this[_0x84d8('0x3')][_0x84d8('0x13')]||util[_0x84d8('0x14')](this[_0x84d8('0x5')]['id'],this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']],this[_0x84d8('0x5')][_0x84d8('0x15')],![])){this['realtime'][_0x84d8('0x11')][this['agent']['id']][_0x84d8('0x16')]=!![];this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']]['busyQueue']=undefined;util[_0x84d8('0x17')](this['notificationId'],this[_0x84d8('0x5')]['id'],this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']],null,this['routing']);util[_0x84d8('0x18')](this[_0x84d8('0x5')]['id'],this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']],'RINGING'+(this[_0x84d8('0x3')][_0x84d8('0x13')]?_0x84d8('0x19'):''));}else{logger[_0x84d8('0xf')]('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this[_0x84d8('0x5')]['id'],this[_0x84d8('0x6')]['id']);setTimeout(this['push'][_0x84d8('0x9')](this),0x3e8);}}};Agent[_0x84d8('0xd')]['handleTimeout']=function(_0x44d556){if(_['isNil'](this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']])){return logger[_0x84d8('0xf')](_0x84d8('0x12'),this[_0x84d8('0x5')]['id'],this[_0x84d8('0x6')]['id']);}else{logger[_0x84d8('0xf')](_0x84d8('0x1a'),this['squeue']['id'],this['agent']['id']);util[_0x84d8('0x1b')](this['notificationId'],this[_0x84d8('0x5')]['id'],this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']],null,this[_0x84d8('0x3')]);this[_0x84d8('0x7')][_0x84d8('0x11')][this[_0x84d8('0x6')]['id']]['busy']=![];this[_0x84d8('0x7')]['agents'][this[_0x84d8('0x6')]['id']][_0x84d8('0x1c')]=undefined;util[_0x84d8('0x18')](this['squeue']['id'],this[_0x84d8('0x7')]['agents'][this['agent']['id']],_0x44d556?_0x84d8('0x1d'):'TIMEOUT');}if(!_0x44d556){setTimeout(this[_0x84d8('0xe')][_0x84d8('0x9')](this),0x3e8);}};function agent(_0x39abc9,_0xed8a69,_0x211205,_0x1c6be7){return new Agent(_0x39abc9,_0xed8a69,_0x211205,_0x1c6be7);}module[_0x84d8('0x1e')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b7f=['lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','push','handleRun','bind','timeout','handleTimeout','drained','handleDrained','prototype','isNil','Agents','length','agents','info','isAgentAvailable','channel','writeLog','RINGING','busyQueue','name','showNotification','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','STOP','busy'];(function(_0x1f2311,_0x438a19){var _0x32e38d=function(_0x3df2f7){while(--_0x3df2f7){_0x1f2311['push'](_0x1f2311['shift']());}};_0x32e38d(++_0x438a19);}(_0x5b7f,0x8c));var _0xf5b7=function(_0x25fc95,_0x326c05){_0x25fc95=_0x25fc95-0x0;var _0x5c43cd=_0x5b7f[_0x25fc95];return _0x5c43cd;};'use strict';var _=require(_0xf5b7('0x0'));var uuid=require(_0xf5b7('0x1'));var util=require(_0xf5b7('0x2'));var logger=require(_0xf5b7('0x3'))(_0xf5b7('0x4'));var Beepall=function(_0x1efe58,_0x3bb362,_0x2ae04f,_0x2c5439){this[_0xf5b7('0x5')]=uuid['v4']();this[_0xf5b7('0x6')]=_0x1efe58;this[_0xf5b7('0x7')]=_0x3bb362;this[_0xf5b7('0x8')]=_0x2ae04f;this[_0xf5b7('0x4')]=_0x2c5439;this[_0xf5b7('0x6')][_0xf5b7('0x9')](this[_0xf5b7('0xa')][_0xf5b7('0xb')](this),this['handleTimeout']['bind'](this));this['squeue']['on'](_0xf5b7('0xc'),this[_0xf5b7('0xd')][_0xf5b7('0xb')](this));this[_0xf5b7('0x6')]['on'](_0xf5b7('0xe'),this[_0xf5b7('0xf')][_0xf5b7('0xb')](this));};Beepall[_0xf5b7('0x10')][_0xf5b7('0x9')]=function(){this[_0xf5b7('0x6')][_0xf5b7('0x9')](this[_0xf5b7('0xa')]['bind'](this),this[_0xf5b7('0xd')][_0xf5b7('0xb')](this));};Beepall[_0xf5b7('0x10')][_0xf5b7('0xf')]=function(_0x83cc83){this['handleTimeout'](!![]);};Beepall[_0xf5b7('0x10')]['handleRun']=function(_0x4b18b5){var _0x54d530=!![];if(!_['isNil'](this[_0xf5b7('0x7')])&&!_[_0xf5b7('0x11')](this[_0xf5b7('0x7')][_0xf5b7('0x12')])&&this[_0xf5b7('0x7')]['Agents'][_0xf5b7('0x13')]>0x0){for(var _0x32f697=0x0,_0x244edf;_0x32f697<this[_0xf5b7('0x7')][_0xf5b7('0x12')][_0xf5b7('0x13')];_0x32f697+=0x1){_0x244edf=this['queue'][_0xf5b7('0x12')][_0x32f697]['id'];if(_[_0xf5b7('0x11')](this[_0xf5b7('0x8')][_0xf5b7('0x14')][_0x244edf])){logger[_0xf5b7('0x15')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0xf5b7('0x6')]['id'],_0x244edf);}else{if(util[_0xf5b7('0x16')](this['squeue']['id'],this['realtime']['agents'][_0x244edf],this['squeue'][_0xf5b7('0x17')],!![])){_0x54d530=![];util[_0xf5b7('0x18')](this[_0xf5b7('0x6')]['id'],this[_0xf5b7('0x8')][_0xf5b7('0x14')][_0x244edf],_0xf5b7('0x19'));this[_0xf5b7('0x8')][_0xf5b7('0x14')][_0x244edf]['busy']=!![];this[_0xf5b7('0x8')][_0xf5b7('0x14')][_0x244edf][_0xf5b7('0x1a')]=this['queue'][_0xf5b7('0x1b')];util[_0xf5b7('0x1c')](this['notificationId'],this[_0xf5b7('0x6')]['id'],this['realtime'][_0xf5b7('0x14')][_0x244edf],this[_0xf5b7('0x7')],this['routing']);}}}if(_0x54d530){logger[_0xf5b7('0x15')](_0xf5b7('0x1d'),this[_0xf5b7('0x6')]['id']);setTimeout(this[_0xf5b7('0x9')]['bind'](this),0x3e8);}}else{logger[_0xf5b7('0x15')](_0xf5b7('0x1e'),this['squeue']['id']);setTimeout(this[_0xf5b7('0x9')][_0xf5b7('0xb')](this),0x3e8);}};Beepall[_0xf5b7('0x10')][_0xf5b7('0xd')]=function(_0x455968){if(!_[_0xf5b7('0x11')](this[_0xf5b7('0x7')])&&!_[_0xf5b7('0x11')](this[_0xf5b7('0x7')][_0xf5b7('0x12')])){for(var _0x52ec8e=0x0,_0x2e7375;_0x52ec8e<this[_0xf5b7('0x7')][_0xf5b7('0x12')][_0xf5b7('0x13')];_0x52ec8e+=0x1){_0x2e7375=this[_0xf5b7('0x7')][_0xf5b7('0x12')][_0x52ec8e]['id'];if(_[_0xf5b7('0x11')](this['realtime'][_0xf5b7('0x14')][_0x2e7375])){logger[_0xf5b7('0x15')](_0xf5b7('0x1f'),this[_0xf5b7('0x6')]['id'],_0x2e7375);}else{util[_0xf5b7('0x20')](this[_0xf5b7('0x5')],this[_0xf5b7('0x6')]['id'],this[_0xf5b7('0x8')]['agents'][_0x2e7375],this[_0xf5b7('0x7')],this[_0xf5b7('0x4')]);util[_0xf5b7('0x18')](this[_0xf5b7('0x6')]['id'],this[_0xf5b7('0x8')][_0xf5b7('0x14')][_0x2e7375],_0x455968?_0xf5b7('0x21'):'TIMEOUT');this['realtime']['agents'][_0x2e7375][_0xf5b7('0x22')]=![];this[_0xf5b7('0x8')][_0xf5b7('0x14')][_0x2e7375][_0xf5b7('0x1a')]=undefined;}}}if(!_0x455968){setTimeout(this[_0xf5b7('0x9')][_0xf5b7('0xb')](this),0x3e8);}};function beepall(_0x3f0c4d,_0x27a9a6,_0xce03c7,_0x402888){return new Beepall(_0x3f0c4d,_0x27a9a6,_0xce03c7,_0x402888);}module['exports']=beepall;
\ No newline at end of file
+var _0x6075=['queue','realtime','handleRun','bind','handleTimeout','squeue','handleDrained','push','prototype','isNil','Agents','length','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','isAgentAvailable','writeLog','RINGING','busy','busyQueue','name','info','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','STOP','uuid','./util','../../../../../config/logger','routing','notificationId'];(function(_0x137526,_0x25a25d){var _0x2ca60a=function(_0x2d7a48){while(--_0x2d7a48){_0x137526['push'](_0x137526['shift']());}};_0x2ca60a(++_0x25a25d);}(_0x6075,0x191));var _0x5607=function(_0x2b775b,_0x21ac44){_0x2b775b=_0x2b775b-0x0;var _0x429c87=_0x6075[_0x2b775b];return _0x429c87;};'use strict';var _=require('lodash');var uuid=require(_0x5607('0x0'));var util=require(_0x5607('0x1'));var logger=require(_0x5607('0x2'))(_0x5607('0x3'));var Beepall=function(_0x2bcf4e,_0x120ba2,_0xf96316,_0x100852){this[_0x5607('0x4')]=uuid['v4']();this['squeue']=_0x2bcf4e;this[_0x5607('0x5')]=_0x120ba2;this[_0x5607('0x6')]=_0xf96316;this[_0x5607('0x3')]=_0x100852;this['squeue']['push'](this[_0x5607('0x7')][_0x5607('0x8')](this),this[_0x5607('0x9')][_0x5607('0x8')](this));this[_0x5607('0xa')]['on']('timeout',this[_0x5607('0x9')][_0x5607('0x8')](this));this[_0x5607('0xa')]['on']('drained',this[_0x5607('0xb')]['bind'](this));};Beepall['prototype'][_0x5607('0xc')]=function(){this[_0x5607('0xa')][_0x5607('0xc')](this['handleRun'][_0x5607('0x8')](this),this[_0x5607('0x9')][_0x5607('0x8')](this));};Beepall[_0x5607('0xd')][_0x5607('0xb')]=function(_0x33c436){this[_0x5607('0x9')](!![]);};Beepall[_0x5607('0xd')][_0x5607('0x7')]=function(_0x4e1167){var _0x1b0720=!![];if(!_[_0x5607('0xe')](this[_0x5607('0x5')])&&!_['isNil'](this['queue'][_0x5607('0xf')])&&this['queue'][_0x5607('0xf')][_0x5607('0x10')]>0x0){for(var _0x1fa238=0x0,_0x1375e9;_0x1fa238<this[_0x5607('0x5')][_0x5607('0xf')]['length'];_0x1fa238+=0x1){_0x1375e9=this[_0x5607('0x5')]['Agents'][_0x1fa238]['id'];if(_[_0x5607('0xe')](this[_0x5607('0x6')][_0x5607('0x11')][_0x1375e9])){logger['info'](_0x5607('0x12'),this[_0x5607('0xa')]['id'],_0x1375e9);}else{if(util[_0x5607('0x13')](this['squeue']['id'],this[_0x5607('0x6')][_0x5607('0x11')][_0x1375e9],this[_0x5607('0xa')]['channel'],!![])){_0x1b0720=![];util[_0x5607('0x14')](this['squeue']['id'],this['realtime'][_0x5607('0x11')][_0x1375e9],_0x5607('0x15'));this[_0x5607('0x6')][_0x5607('0x11')][_0x1375e9][_0x5607('0x16')]=!![];this[_0x5607('0x6')][_0x5607('0x11')][_0x1375e9][_0x5607('0x17')]=this[_0x5607('0x5')][_0x5607('0x18')];util['showNotification'](this[_0x5607('0x4')],this[_0x5607('0xa')]['id'],this['realtime'][_0x5607('0x11')][_0x1375e9],this[_0x5607('0x5')],this[_0x5607('0x3')]);}}}if(_0x1b0720){logger[_0x5607('0x19')](_0x5607('0x1a'),this[_0x5607('0xa')]['id']);setTimeout(this[_0x5607('0xc')][_0x5607('0x8')](this),0x3e8);}}else{logger['info'](_0x5607('0x1b'),this[_0x5607('0xa')]['id']);setTimeout(this['push']['bind'](this),0x3e8);}};Beepall[_0x5607('0xd')][_0x5607('0x9')]=function(_0xe8788){if(!_[_0x5607('0xe')](this[_0x5607('0x5')])&&!_['isNil'](this[_0x5607('0x5')]['Agents'])){for(var _0xd6c90a=0x0,_0x15a1a2;_0xd6c90a<this[_0x5607('0x5')]['Agents'][_0x5607('0x10')];_0xd6c90a+=0x1){_0x15a1a2=this['queue'][_0x5607('0xf')][_0xd6c90a]['id'];if(_[_0x5607('0xe')](this[_0x5607('0x6')][_0x5607('0x11')][_0x15a1a2])){logger[_0x5607('0x19')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x5607('0xa')]['id'],_0x15a1a2);}else{util['hideNotification'](this[_0x5607('0x4')],this[_0x5607('0xa')]['id'],this['realtime'][_0x5607('0x11')][_0x15a1a2],this[_0x5607('0x5')],this[_0x5607('0x3')]);util['writeLog'](this[_0x5607('0xa')]['id'],this[_0x5607('0x6')][_0x5607('0x11')][_0x15a1a2],_0xe8788?_0x5607('0x1c'):'TIMEOUT');this[_0x5607('0x6')][_0x5607('0x11')][_0x15a1a2]['busy']=![];this[_0x5607('0x6')][_0x5607('0x11')][_0x15a1a2][_0x5607('0x17')]=undefined;}}}if(!_0xe8788){setTimeout(this['push'][_0x5607('0x8')](this),0x3e8);}};function beepall(_0x540152,_0x2ed4c2,_0x287430,_0x2f7a6d){return new Beepall(_0x540152,_0x2ed4c2,_0x287430,_0x2f7a6d);}module['exports']=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ecb=['./beepall','./rrmemory'];(function(_0x45d55e,_0x2fede3){var _0x29812a=function(_0x3c6830){while(--_0x3c6830){_0x45d55e['push'](_0x45d55e['shift']());}};_0x29812a(++_0x2fede3);}(_0x7ecb,0x171));var _0xb7ec=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7ecb[_0x20a584];return _0x4b41a8;};'use strict';module['exports']={'rrmemory':require(_0xb7ec('0x0')),'beepall':require(_0xb7ec('0x1')),'agent':require('./agent')};
\ No newline at end of file
+var _0x0d9d=['./agent','exports','./rrmemory','./beepall'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0x0d9d,0xe1));var _0xd0d9=function(_0x1a14c4,_0x2dabb0){_0x1a14c4=_0x1a14c4-0x0;var _0x2a407d=_0x0d9d[_0x1a14c4];return _0x2a407d;};'use strict';module[_0xd0d9('0x0')]={'rrmemory':require(_0xd0d9('0x1')),'beepall':require(_0xd0d9('0x2')),'agent':require(_0xd0d9('0x3'))};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb29f=['agents','agentId','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','done','mapAgentsId','isNil','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','busy','name','showNotification','notificationId','writeLog','TIMEOUT','exports','lodash','./util','../../../../../config/logger','routing','squeue','queue','realtime','intervals','push','handleRun','bind','handleTimeout','prototype','isAgentAvailable'];(function(_0x357f0a,_0x37aa60){var _0x10d41b=function(_0x3ef2e1){while(--_0x3ef2e1){_0x357f0a['push'](_0x357f0a['shift']());}};_0x10d41b(++_0x37aa60);}(_0xb29f,0xc4));var _0xfb29=function(_0x16ab90,_0x40be41){_0x16ab90=_0x16ab90-0x0;var _0x452ef6=_0xb29f[_0x16ab90];return _0x452ef6;};'use strict';var rr=require('rr');var _=require(_0xfb29('0x0'));var uuid=require('uuid');var util=require(_0xfb29('0x1'));var logger=require(_0xfb29('0x2'))(_0xfb29('0x3'));var RRMemory=function(_0x1d3988,_0x4f724f,_0x3e3732,_0x1b43fc){this['notificationId']=uuid['v4']();this[_0xfb29('0x4')]=_0x1d3988;this[_0xfb29('0x5')]=_0x4f724f;this[_0xfb29('0x6')]=_0x3e3732;this['routing']=_0x1b43fc;this[_0xfb29('0x7')]={};this[_0xfb29('0x4')][_0xfb29('0x8')](this[_0xfb29('0x9')][_0xfb29('0xa')](this),this['handleTimeout'][_0xfb29('0xa')](this),this['module']);this[_0xfb29('0x4')]['on']('timeout',this[_0xfb29('0xb')]['bind'](this));this[_0xfb29('0x4')]['on']('drained',this['handleDrained'][_0xfb29('0xa')](this));};RRMemory[_0xfb29('0xc')][_0xfb29('0x8')]=function(){this[_0xfb29('0x4')][_0xfb29('0x8')](this[_0xfb29('0x9')][_0xfb29('0xa')](this),this[_0xfb29('0xb')]['bind'](this));};RRMemory[_0xfb29('0xc')]['handleDrained']=function(_0x39716e){this[_0xfb29('0xb')](!![]);};RRMemory[_0xfb29('0xc')]['handleCheckReject']=function(_0x35c7f6){if(util[_0xfb29('0xd')](this[_0xfb29('0x4')]['id'],this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]],this[_0xfb29('0x4')][_0xfb29('0x10')],!![])){logger[_0xfb29('0x11')](_0xfb29('0x12'),this[_0xfb29('0x4')]['id'],this['agentId']);clearInterval(this[_0xfb29('0x7')][this[_0xfb29('0xf')]]);_0x35c7f6[_0xfb29('0x13')]();setTimeout(this[_0xfb29('0x8')][_0xfb29('0xa')](this),0x3e8);}};RRMemory[_0xfb29('0xc')][_0xfb29('0x9')]=function(_0x34f79f){this[_0xfb29('0xf')]=rr(this[_0xfb29('0x5')][_0xfb29('0x14')]);logger[_0xfb29('0x11')]('[%s][QUEUE]\x20try\x20with\x20%s',this[_0xfb29('0x4')]['id'],this[_0xfb29('0xf')]);if(_[_0xfb29('0x15')](this['realtime'][_0xfb29('0xe')][this[_0xfb29('0xf')]])){logger[_0xfb29('0x11')](_0xfb29('0x16'),this[_0xfb29('0x4')]['id'],this['agentId']);_0x34f79f['done']();setTimeout(this[_0xfb29('0x8')][_0xfb29('0xa')](this),0x3e8);}else{if(util[_0xfb29('0xd')](this[_0xfb29('0x4')]['id'],this['realtime'][_0xfb29('0xe')][this[_0xfb29('0xf')]],this[_0xfb29('0x4')]['channel'],!![])){this[_0xfb29('0x6')]['agents'][this[_0xfb29('0xf')]][_0xfb29('0x17')]=!![];this['realtime'][_0xfb29('0xe')][this[_0xfb29('0xf')]]['busyQueue']=this[_0xfb29('0x5')][_0xfb29('0x18')];util[_0xfb29('0x19')](this['notificationId'],this[_0xfb29('0x4')]['id'],this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]],this[_0xfb29('0x5')],this[_0xfb29('0x3')]);util['writeLog'](this[_0xfb29('0x4')]['id'],this[_0xfb29('0x6')]['agents'][this[_0xfb29('0xf')]],'RINGING');this['intervals'][this[_0xfb29('0xf')]]=setInterval(this['handleCheckReject'][_0xfb29('0xa')](this,_0x34f79f),0x3e8);}else{logger['info']('[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s',this['squeue']['id'],this[_0xfb29('0xf')]);_0x34f79f[_0xfb29('0x13')]();setTimeout(this[_0xfb29('0x8')][_0xfb29('0xa')](this),0x3e8);}}};RRMemory['prototype'][_0xfb29('0xb')]=function(_0x5c416f){logger[_0xfb29('0x11')]('[%s][QUEUE]\x20timeout\x20with\x20%s',this[_0xfb29('0x4')]['id'],this[_0xfb29('0xf')]);if(_[_0xfb29('0x15')](this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]])){logger[_0xfb29('0x11')](_0xfb29('0x16'),this[_0xfb29('0x4')]['id'],this[_0xfb29('0xf')]);}else{clearInterval(this[_0xfb29('0x7')][this['agentId']]);util['hideNotification'](this[_0xfb29('0x1a')],this[_0xfb29('0x4')]['id'],this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]],this[_0xfb29('0x5')],this[_0xfb29('0x3')]);util[_0xfb29('0x1b')](this[_0xfb29('0x4')]['id'],this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]],_0xfb29('0x1c'));this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]][_0xfb29('0x17')]=![];this[_0xfb29('0x6')][_0xfb29('0xe')][this[_0xfb29('0xf')]]['busyQueue']=undefined;}if(!_0x5c416f){setTimeout(this['push']['bind'](this),0x3e8);}};function rrmemory(_0x24404d,_0x32b27d,_0x3a3c66,_0x51b174){return new RRMemory(_0x24404d,_0x32b27d,_0x3a3c66,_0x51b174);}module[_0xfb29('0x1d')]=rrmemory;
\ No newline at end of file
+var _0x7c03=['mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','agents','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','name','writeLog','RINGING','[%s][QUEUE]\x20timeout\x20with\x20%s','isNil','hideNotification','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','realtime','intervals','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','push','handleCheckReject','isAgentAvailable','agentId','info','queue'];(function(_0x683430,_0x35697e){var _0x5945ce=function(_0x58c8bb){while(--_0x58c8bb){_0x683430['push'](_0x683430['shift']());}};_0x5945ce(++_0x35697e);}(_0x7c03,0x155));var _0x37c0=function(_0x477377,_0x1595bd){_0x477377=_0x477377-0x0;var _0x819fb5=_0x7c03[_0x477377];return _0x819fb5;};'use strict';var rr=require('rr');var _=require(_0x37c0('0x0'));var uuid=require(_0x37c0('0x1'));var util=require(_0x37c0('0x2'));var logger=require(_0x37c0('0x3'))(_0x37c0('0x4'));var RRMemory=function(_0x16bfc1,_0x3bf950,_0x245196,_0x1bc76f){this[_0x37c0('0x5')]=uuid['v4']();this[_0x37c0('0x6')]=_0x16bfc1;this['queue']=_0x3bf950;this[_0x37c0('0x7')]=_0x245196;this[_0x37c0('0x4')]=_0x1bc76f;this[_0x37c0('0x8')]={};this['squeue']['push'](this[_0x37c0('0x9')][_0x37c0('0xa')](this),this[_0x37c0('0xb')][_0x37c0('0xa')](this),this['module']);this['squeue']['on'](_0x37c0('0xc'),this[_0x37c0('0xb')]['bind'](this));this[_0x37c0('0x6')]['on'](_0x37c0('0xd'),this[_0x37c0('0xe')]['bind'](this));};RRMemory[_0x37c0('0xf')]['push']=function(){this[_0x37c0('0x6')][_0x37c0('0x10')](this[_0x37c0('0x9')][_0x37c0('0xa')](this),this[_0x37c0('0xb')][_0x37c0('0xa')](this));};RRMemory['prototype'][_0x37c0('0xe')]=function(_0x23402c){this[_0x37c0('0xb')](!![]);};RRMemory['prototype'][_0x37c0('0x11')]=function(_0x5f50f4){if(util[_0x37c0('0x12')](this[_0x37c0('0x6')]['id'],this[_0x37c0('0x7')]['agents'][this[_0x37c0('0x13')]],this['squeue']['channel'],!![])){logger[_0x37c0('0x14')]('[%s][QUEUE]\x20available\x20again\x20%s',this[_0x37c0('0x6')]['id'],this[_0x37c0('0x13')]);clearInterval(this[_0x37c0('0x8')][this[_0x37c0('0x13')]]);_0x5f50f4['done']();setTimeout(this[_0x37c0('0x10')][_0x37c0('0xa')](this),0x3e8);}};RRMemory['prototype'][_0x37c0('0x9')]=function(_0x3af119){this[_0x37c0('0x13')]=rr(this[_0x37c0('0x15')][_0x37c0('0x16')]);logger[_0x37c0('0x14')](_0x37c0('0x17'),this[_0x37c0('0x6')]['id'],this[_0x37c0('0x13')]);if(_['isNil'](this['realtime'][_0x37c0('0x18')][this[_0x37c0('0x13')]])){logger[_0x37c0('0x14')](_0x37c0('0x19'),this['squeue']['id'],this[_0x37c0('0x13')]);_0x3af119['done']();setTimeout(this[_0x37c0('0x10')][_0x37c0('0xa')](this),0x3e8);}else{if(util[_0x37c0('0x12')](this[_0x37c0('0x6')]['id'],this[_0x37c0('0x7')][_0x37c0('0x18')][this[_0x37c0('0x13')]],this['squeue'][_0x37c0('0x1a')],!![])){this[_0x37c0('0x7')][_0x37c0('0x18')][this['agentId']]['busy']=!![];this['realtime'][_0x37c0('0x18')][this['agentId']]['busyQueue']=this['queue'][_0x37c0('0x1b')];util['showNotification'](this[_0x37c0('0x5')],this['squeue']['id'],this[_0x37c0('0x7')][_0x37c0('0x18')][this['agentId']],this['queue'],this['routing']);util[_0x37c0('0x1c')](this[_0x37c0('0x6')]['id'],this[_0x37c0('0x7')][_0x37c0('0x18')][this['agentId']],_0x37c0('0x1d'));this[_0x37c0('0x8')][this['agentId']]=setInterval(this[_0x37c0('0x11')]['bind'](this,_0x3af119),0x3e8);}else{logger[_0x37c0('0x14')]('[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s',this[_0x37c0('0x6')]['id'],this[_0x37c0('0x13')]);_0x3af119['done']();setTimeout(this['push'][_0x37c0('0xa')](this),0x3e8);}}};RRMemory[_0x37c0('0xf')][_0x37c0('0xb')]=function(_0x4c0bd8){logger['info'](_0x37c0('0x1e'),this[_0x37c0('0x6')]['id'],this[_0x37c0('0x13')]);if(_[_0x37c0('0x1f')](this['realtime'][_0x37c0('0x18')][this['agentId']])){logger[_0x37c0('0x14')](_0x37c0('0x19'),this[_0x37c0('0x6')]['id'],this[_0x37c0('0x13')]);}else{clearInterval(this[_0x37c0('0x8')][this['agentId']]);util[_0x37c0('0x20')](this[_0x37c0('0x5')],this[_0x37c0('0x6')]['id'],this[_0x37c0('0x7')][_0x37c0('0x18')][this[_0x37c0('0x13')]],this[_0x37c0('0x15')],this[_0x37c0('0x4')]);util[_0x37c0('0x1c')](this[_0x37c0('0x6')]['id'],this['realtime'][_0x37c0('0x18')][this[_0x37c0('0x13')]],'TIMEOUT');this[_0x37c0('0x7')]['agents'][this[_0x37c0('0x13')]]['busy']=![];this['realtime'][_0x37c0('0x18')][this['agentId']]['busyQueue']=undefined;}if(!_0x4c0bd8){setTimeout(this[_0x37c0('0x10')]['bind'](this),0x3e8);}};function rrmemory(_0x32f0c5,_0x5168f9,_0x333342,_0x4131e9){return new RRMemory(_0x32f0c5,_0x5168f9,_0x333342,_0x4131e9);}module['exports']=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e24=['hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','showNotification','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/logger','routing','defaults','redis','localhost','socket.io-emitter','emit','format','name','split','\x20interaction','account','notificationSound','notificationShake','body','queue','notificationTemplate','msg','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','message','notification:%s','remove','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','online','OFFLINE','Pause','PAUSE'];(function(_0x5c7a5b,_0x35308a){var _0x242204=function(_0x3b3a1f){while(--_0x3b3a1f){_0x5c7a5b['push'](_0x5c7a5b['shift']());}};_0x242204(++_0x35308a);}(_0x3e24,0x167));var _0x43e2=function(_0x127316,_0x2774a8){_0x127316=_0x127316-0x0;var _0x34d919=_0x3e24[_0x127316];return _0x34d919;};'use strict';var _=require(_0x43e2('0x0'));var util=require(_0x43e2('0x1'));var utils=require(_0x43e2('0x2'));var Mustache=require(_0x43e2('0x3'));var Redis=require(_0x43e2('0x4'));var config=require('../../../../../config/environment');var logger=require(_0x43e2('0x5'))(_0x43e2('0x6'));config['redis']=_[_0x43e2('0x7')](config[_0x43e2('0x8')],{'host':_0x43e2('0x9'),'port':0x18eb});var io=require(_0x43e2('0xa'))(new Redis(config[_0x43e2('0x8')]));function emit(_0x121e2e,_0x23b2d8,_0x59956d){io['to'](_0x121e2e)[_0x43e2('0xb')](_0x23b2d8,_0x59956d);}function sendNotification(_0x2357bc,_0x4bd2ce,_0x1c96f9,_0x2fdf85,_0x5375d8,_0x2ed387){io['to'](util[_0x43e2('0xc')]('user:%s',_0x2fdf85[_0x43e2('0xd')]))['emit']('user:save',_0x2fdf85);var _0x5847f0=_0x2ed387||{};var _0x103220=_0x1c96f9[_0x43e2('0xe')]('.');var _0x236b88={'uniqueid':_0x4bd2ce,'channel':_0x103220[0x0],'id':_0x103220[0x1],'title':_0x103220[0x0]+_0x43e2('0xf'),'interactionId':_0x103220[0x2],'queue':_0x5375d8?_0x5375d8[_0x43e2('0xd')]:null,'sound':_0x5847f0[_0x43e2('0x10')][_0x43e2('0x11')],'shake':_0x5847f0[_0x43e2('0x10')][_0x43e2('0x12')]};try{if(!_0x5847f0[_0x43e2('0x13')]){_0x5847f0[_0x43e2('0x13')]={};}if(_0x5375d8){_0x5847f0[_0x43e2('0x13')]['queue']=_0x5375d8;}else if(_0x5847f0[_0x43e2('0x13')][_0x43e2('0x14')]){delete _0x5847f0[_0x43e2('0x13')][_0x43e2('0x14')];}_0x236b88['msg']=utils['getMustacheRender'](_0x5847f0[_0x43e2('0x10')][_0x43e2('0x15')],_0x5847f0);}catch(_0x27aa89){_0x236b88[_0x43e2('0x16')]=_0x43e2('0x17');logger[_0x43e2('0x18')](util[_0x43e2('0xc')](_0x43e2('0x19'),_0x4bd2ce,_0x27aa89[_0x43e2('0x1a')]));}io['to'](util[_0x43e2('0xc')]('user:%s',_0x2fdf85[_0x43e2('0xd')]))[_0x43e2('0xb')](util['format'](_0x43e2('0x1b'),_0x2357bc?'save':_0x43e2('0x1c')),_0x236b88);}function writeLog(_0x13610f,_0x1fac53,_0x23825c){return logger[_0x43e2('0x1d')](util['format'](_0x43e2('0x1e'),_0x13610f,_0x1fac53[_0x43e2('0xd')],_0x23825c));}exports[_0x43e2('0x1f')]=function(_0x52e361,_0x234a1d,_0x32f048,_0x43078f){if(_0x234a1d[_0x43e2('0x20')]){writeLog(_0x52e361,_0x234a1d,'BUSY');return![];}if(!_0x234a1d[_0x43e2('0x21')]){writeLog(_0x52e361,_0x234a1d,_0x43e2('0x22'));return![];}if(_0x234a1d[_0x32f048+_0x43e2('0x23')]){writeLog(_0x52e361,_0x234a1d,_0x43e2('0x24'));return![];}if(_0x43078f&&_0x234a1d[_0x43e2('0x25')](_0x32f048+_0x43e2('0x26'))&&_0x234a1d[_0x43e2('0x25')](_0x32f048+_0x43e2('0x27'))){if(_0x234a1d[_0x32f048+_0x43e2('0x26')]>0x0&&_0x234a1d[_0x32f048+_0x43e2('0x27')]>=_0x234a1d[_0x32f048+_0x43e2('0x26')]){writeLog(_0x52e361,_0x234a1d,_0x32f048[_0x43e2('0x28')]()+'\x20MAXCAPACITY');return![];}}return!![];};exports[_0x43e2('0x29')]=function(_0x2f2bd8,_0x545246,_0x163063,_0x1883c6,_0x2dffa2){return sendNotification(!![],_0x2f2bd8,_0x545246,_0x163063,_0x1883c6,_0x2dffa2);};exports[_0x43e2('0x2a')]=function(_0x3fd232,_0x5a896b,_0x42f495,_0xd1b43a,_0x1779f9){return sendNotification(![],_0x3fd232,_0x5a896b,_0x42f495,_0xd1b43a,_0x1779f9);};exports[_0x43e2('0x2b')]=writeLog;
\ No newline at end of file
+var _0x5496=['isAgentAvailable','busy','BUSY','OFFLINE','Pause','hasOwnProperty','Capacity','CurrentCapacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/logger','redis','defaults','emit','format','user:%s','user:save','split','account','notificationSound','notificationShake','body','queue','msg','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','[%s][QUEUE]\x20%s','name','notification:%s','remove','info','[%s][QUEUE][AGENT:%s][STATUS:%s]'];(function(_0x17cb83,_0x522481){var _0x386a77=function(_0x26f678){while(--_0x26f678){_0x17cb83['push'](_0x17cb83['shift']());}};_0x386a77(++_0x522481);}(_0x5496,0x175));var _0x6549=function(_0x42c8a8,_0x5cf02a){_0x42c8a8=_0x42c8a8-0x0;var _0x1a0148=_0x5496[_0x42c8a8];return _0x1a0148;};'use strict';var _=require(_0x6549('0x0'));var util=require(_0x6549('0x1'));var utils=require(_0x6549('0x2'));var Mustache=require(_0x6549('0x3'));var Redis=require(_0x6549('0x4'));var config=require('../../../../../config/environment');var logger=require(_0x6549('0x5'))('routing');config[_0x6549('0x6')]=_[_0x6549('0x7')](config[_0x6549('0x6')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x6549('0x6')]));function emit(_0x1d8cea,_0x4fcffd,_0x1ca8fc){io['to'](_0x1d8cea)[_0x6549('0x8')](_0x4fcffd,_0x1ca8fc);}function sendNotification(_0x1ef2a6,_0x5c47ba,_0xa12086,_0x35d008,_0x2ecce2,_0x135c2c){io['to'](util[_0x6549('0x9')](_0x6549('0xa'),_0x35d008['name']))['emit'](_0x6549('0xb'),_0x35d008);var _0xac828c=_0x135c2c||{};var _0x3c5f9b=_0xa12086[_0x6549('0xc')]('.');var _0x1a0f72={'uniqueid':_0x5c47ba,'channel':_0x3c5f9b[0x0],'id':_0x3c5f9b[0x1],'title':_0x3c5f9b[0x0]+'\x20interaction','interactionId':_0x3c5f9b[0x2],'queue':_0x2ecce2?_0x2ecce2['name']:null,'sound':_0xac828c[_0x6549('0xd')][_0x6549('0xe')],'shake':_0xac828c['account'][_0x6549('0xf')]};try{if(!_0xac828c[_0x6549('0x10')]){_0xac828c[_0x6549('0x10')]={};}if(_0x2ecce2){_0xac828c[_0x6549('0x10')][_0x6549('0x11')]=_0x2ecce2;}else if(_0xac828c[_0x6549('0x10')]['queue']){delete _0xac828c['body'][_0x6549('0x11')];}_0x1a0f72[_0x6549('0x12')]=utils['getMustacheRender'](_0xac828c[_0x6549('0xd')][_0x6549('0x13')],_0xac828c);}catch(_0x4608fb){_0x1a0f72[_0x6549('0x12')]=_0x6549('0x14');logger['error'](util['format'](_0x6549('0x15'),_0x5c47ba,_0x4608fb['message']));}io['to'](util['format'](_0x6549('0xa'),_0x35d008[_0x6549('0x16')]))[_0x6549('0x8')](util[_0x6549('0x9')](_0x6549('0x17'),_0x1ef2a6?'save':_0x6549('0x18')),_0x1a0f72);}function writeLog(_0x4b40c1,_0x125096,_0x72322b){return logger[_0x6549('0x19')](util[_0x6549('0x9')](_0x6549('0x1a'),_0x4b40c1,_0x125096[_0x6549('0x16')],_0x72322b));}exports[_0x6549('0x1b')]=function(_0x25bc01,_0x2be467,_0x6ae00c,_0x40d3f9){if(_0x2be467[_0x6549('0x1c')]){writeLog(_0x25bc01,_0x2be467,_0x6549('0x1d'));return![];}if(!_0x2be467['online']){writeLog(_0x25bc01,_0x2be467,_0x6549('0x1e'));return![];}if(_0x2be467[_0x6ae00c+_0x6549('0x1f')]){writeLog(_0x25bc01,_0x2be467,'PAUSE');return![];}if(_0x40d3f9&&_0x2be467[_0x6549('0x20')](_0x6ae00c+_0x6549('0x21'))&&_0x2be467[_0x6549('0x20')](_0x6ae00c+'CurrentCapacity')){if(_0x2be467[_0x6ae00c+_0x6549('0x21')]>0x0&&_0x2be467[_0x6ae00c+_0x6549('0x22')]>=_0x2be467[_0x6ae00c+_0x6549('0x21')]){writeLog(_0x25bc01,_0x2be467,_0x6ae00c[_0x6549('0x23')]()+_0x6549('0x24'));return![];}}return!![];};exports[_0x6549('0x25')]=function(_0x2f58f7,_0xa6c718,_0x4c52f1,_0x1794bc,_0x136518){return sendNotification(!![],_0x2f58f7,_0xa6c718,_0x4c52f1,_0x1794bc,_0x136518);};exports[_0x6549('0x26')]=function(_0x4c605c,_0x3f1502,_0x4acaf5,_0x4f0ad1,_0x5aa3a6){return sendNotification(![],_0x4c605c,_0x3f1502,_0x4acaf5,_0x4f0ad1,_0x5aa3a6);};exports[_0x6549('0x27')]=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef1c=['routing','string','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','error','[%s][SYSTEM]\x20%s','map','message','info','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','getMustacheRender','[%s][SYSTEM]\x20commnad:\x20%s','[%s][SYSTEM]\x20result\x20code:\x20%s','isNil','isEmpty','next','stringify','validate','shelljs','./utils','../../../../config/logger'];(function(_0x450682,_0x201a06){var _0x1c56bb=function(_0x16f37d){while(--_0x16f37d){_0x450682['push'](_0x450682['shift']());}};_0x1c56bb(++_0x201a06);}(_0xef1c,0x176));var _0xcef1=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0xef1c[_0x1035c1];return _0x308d67;};'use strict';var schema=require(_0xcef1('0x0'));var sh=require(_0xcef1('0x1'));var _=require('lodash');var utils=require(_0xcef1('0x2'));var logger=require(_0xcef1('0x3'))(_0xcef1('0x4'));var system=schema({'command':{'type':_0xcef1('0x5'),'required':!![],'message':_0xcef1('0x6')}});exports[_0xcef1('0x7')]=function(_0x58f00c,_0x1e6fd3){return function(_0x47167e){try{var _0x24638a={'command':_0x1e6fd3[0x0]};var _0x484051=system[_0xcef1('0x0')](_0x24638a,{'typecast':!![]});if(_0x484051['length']){logger[_0xcef1('0x8')](_0xcef1('0x9'),_0x58f00c,_[_0xcef1('0xa')](_0x484051,_0xcef1('0xb'))['join'](',\x20'));logger[_0xcef1('0xc')](_0xcef1('0xd'),_0x58f00c);_0x47167e['next']();}else{var _0x1352f4=this;var _0x12b227=utils[_0xcef1('0xe')](_0x1e6fd3[0x0],this);logger['info'](_0xcef1('0xf'),_0x58f00c,_0x12b227);sh['exec'](_['trim'](_0x12b227),function(_0x2a3d3e,_0x4bfd35){logger[_0xcef1('0xc')](_0xcef1('0x10'),_0x58f00c,_0x2a3d3e);if(_0x2a3d3e==0x0){var _0x2ccde6=_0x4bfd35['replace'](/(\r\n|\n|\r)/gm,'');if(_[_0xcef1('0x11')](_0x1e6fd3[0x1])||_[_0xcef1('0x12')](_0x1e6fd3[0x1])){logger[_0xcef1('0xc')]('[%s][SYSTEM]\x20no\x20variable',_0x58f00c);_0x1352f4['body'][_0x1e6fd3[0x1]]=_0x2ccde6;}else{logger[_0xcef1('0xc')]('[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s',_0x58f00c,_0x1e6fd3[0x1],_0x2ccde6);_0x1352f4['body'][_0x1e6fd3[0x1]]=_0x2ccde6;}}_0x47167e[_0xcef1('0x13')]();});}}catch(_0x193901){logger[_0xcef1('0x8')](_0xcef1('0x9'),_0x58f00c,_['isObject'](_0x193901)?JSON[_0xcef1('0x14')](_0x193901):_0x193901);logger[_0xcef1('0xc')](_0xcef1('0xd'),_0x58f00c);_0x47167e[_0xcef1('0x13')]();}};};
\ No newline at end of file
+var _0xb0c9=['error','[%s][SYSTEM]\x20%s','map','join','info','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','next','getMustacheRender','[%s][SYSTEM]\x20commnad:\x20%s','exec','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','isEmpty','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','isObject','stringify','validate','shelljs','lodash','./utils','../../../../config/logger','string','command\x20is\x20a\x20string\x20and\x20it\x20is\x20required','length'];(function(_0x1fe6d4,_0x50efee){var _0x3bca21=function(_0x5321a9){while(--_0x5321a9){_0x1fe6d4['push'](_0x1fe6d4['shift']());}};_0x3bca21(++_0x50efee);}(_0xb0c9,0xd8));var _0x9b0c=function(_0x140357,_0x6670bd){_0x140357=_0x140357-0x0;var _0x4fdf00=_0xb0c9[_0x140357];return _0x4fdf00;};'use strict';var schema=require(_0x9b0c('0x0'));var sh=require(_0x9b0c('0x1'));var _=require(_0x9b0c('0x2'));var utils=require(_0x9b0c('0x3'));var logger=require(_0x9b0c('0x4'))('routing');var system=schema({'command':{'type':_0x9b0c('0x5'),'required':!![],'message':_0x9b0c('0x6')}});exports['consequence']=function(_0x212267,_0x546faf){return function(_0x2ef7f2){try{var _0x51595b={'command':_0x546faf[0x0]};var _0x30749c=system['validate'](_0x51595b,{'typecast':!![]});if(_0x30749c[_0x9b0c('0x7')]){logger[_0x9b0c('0x8')](_0x9b0c('0x9'),_0x212267,_[_0x9b0c('0xa')](_0x30749c,'message')[_0x9b0c('0xb')](',\x20'));logger[_0x9b0c('0xc')](_0x9b0c('0xd'),_0x212267);_0x2ef7f2[_0x9b0c('0xe')]();}else{var _0x4d8724=this;var _0x26cfea=utils[_0x9b0c('0xf')](_0x546faf[0x0],this);logger[_0x9b0c('0xc')](_0x9b0c('0x10'),_0x212267,_0x26cfea);sh[_0x9b0c('0x11')](_[_0x9b0c('0x12')](_0x26cfea),function(_0x412232,_0x1dd72a){logger[_0x9b0c('0xc')](_0x9b0c('0x13'),_0x212267,_0x412232);if(_0x412232==0x0){var _0x5addbf=_0x1dd72a[_0x9b0c('0x14')](/(\r\n|\n|\r)/gm,'');if(_[_0x9b0c('0x15')](_0x546faf[0x1])||_[_0x9b0c('0x16')](_0x546faf[0x1])){logger[_0x9b0c('0xc')](_0x9b0c('0x17'),_0x212267);_0x4d8724[_0x9b0c('0x18')][_0x546faf[0x1]]=_0x5addbf;}else{logger['info'](_0x9b0c('0x19'),_0x212267,_0x546faf[0x1],_0x5addbf);_0x4d8724[_0x9b0c('0x18')][_0x546faf[0x1]]=_0x5addbf;}}_0x2ef7f2[_0x9b0c('0xe')]();});}}catch(_0x2e6d69){logger[_0x9b0c('0x8')](_0x9b0c('0x9'),_0x212267,_[_0x9b0c('0x1a')](_0x2e6d69)?JSON[_0x9b0c('0x1b')](_0x2e6d69):_0x2e6d69);logger[_0x9b0c('0xc')](_0x9b0c('0xd'),_0x212267);_0x2ef7f2[_0x9b0c('0xe')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc980=['../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/whatsappInteraction','../../../../config/logger','routing','consequence','validate','length','error','map','message','join','info','next','Interaction','channel','addTags','interaction','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','catch','stringify','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','finally','[%s][TAG]\x20%s','isObject','lodash','../../rpc/chatInteraction'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xc980,0xbb));var _0x0c98=function(_0x3d13bb,_0x262a54){_0x3d13bb=_0x3d13bb-0x0;var _0x4b5a1b=_0xc980[_0x3d13bb];return _0x4b5a1b;};'use strict';var schema=require('validate');var _=require(_0x0c98('0x0'));var rpc={'chatInteraction':require(_0x0c98('0x1')),'openchannelInteraction':require(_0x0c98('0x2')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x0c98('0x3')),'faxInteraction':require('../../rpc/faxInteraction'),'whatsappInteraction':require(_0x0c98('0x4'))};var logger=require(_0x0c98('0x5'))(_0x0c98('0x6'));var tag=schema({'tag':{'type':'number','required':!![],'message':'TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x0c98('0x7')]=function(_0x27e355,_0x559005,_0x1a9003,_0x362a5c){return function(_0x500def){try{var _0x3ec88a={'tag':_0x559005[0x0]};var _0x291d5a=tag[_0x0c98('0x8')](_0x3ec88a,{'typecast':!![]});if(_0x291d5a[_0x0c98('0x9')]){logger[_0x0c98('0xa')]('[%s][TAG]\x20%s',_0x27e355,_[_0x0c98('0xb')](_0x291d5a,_0x0c98('0xc'))[_0x0c98('0xd')](',\x20'));logger[_0x0c98('0xe')]('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x27e355);_0x500def[_0x0c98('0xf')]();}else{var _0x363cb5={'ids':[_0x559005[0x0]]};if(rpc[_0x362a5c['channel']+_0x0c98('0x10')]){rpc[_0x362a5c[_0x0c98('0x11')]+'Interaction'][_0x0c98('0x12')](_0x362a5c[_0x0c98('0x13')]['id'],_0x363cb5)['then'](function(_0x328a35){logger[_0x0c98('0xe')](_0x0c98('0x14'),_0x27e355,_0x559005[0x1],_0x362a5c['channel'],_0x362a5c[_0x0c98('0x13')]['id']);})[_0x0c98('0x15')](function(_0x4162f7){logger['error']('[%s][TAG]\x20%s',_0x27e355,JSON[_0x0c98('0x16')](_0x4162f7));logger[_0x0c98('0xe')](_0x0c98('0x17'),_0x27e355);})[_0x0c98('0x18')](function(){_0x500def[_0x0c98('0xf')]();});}}}catch(_0x5548c7){logger[_0x0c98('0xa')](_0x0c98('0x19'),_0x27e355,_[_0x0c98('0x1a')](_0x5548c7)?JSON[_0x0c98('0x16')](_0x5548c7):_0x5548c7);logger[_0x0c98('0xe')](_0x0c98('0x17'),_0x27e355);_0x500def[_0x0c98('0xf')]();}};};
\ No newline at end of file
+var _0x9e60=['catch','finally','next','isObject','info','validate','lodash','../../rpc/openchannelInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','routing','number','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','length','error','[%s][TAG]\x20%s','map','message','join','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','channel','Interaction','addTags','interaction','then','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s'];(function(_0x1d9aa0,_0x272488){var _0x226868=function(_0x17127c){while(--_0x17127c){_0x1d9aa0['push'](_0x1d9aa0['shift']());}};_0x226868(++_0x272488);}(_0x9e60,0x1e1));var _0x09e6=function(_0x3422d9,_0x161ebd){_0x3422d9=_0x3422d9-0x0;var _0x3842e5=_0x9e60[_0x3422d9];return _0x3842e5;};'use strict';var schema=require(_0x09e6('0x0'));var _=require(_0x09e6('0x1'));var rpc={'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require(_0x09e6('0x2')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require(_0x09e6('0x3')),'faxInteraction':require(_0x09e6('0x4')),'whatsappInteraction':require(_0x09e6('0x5'))};var logger=require('../../../../config/logger')(_0x09e6('0x6'));var tag=schema({'tag':{'type':_0x09e6('0x7'),'required':!![],'message':_0x09e6('0x8')}});exports[_0x09e6('0x9')]=function(_0x3fe56e,_0x55acd4,_0x24491b,_0x36e529){return function(_0x374df9){try{var _0x257df7={'tag':_0x55acd4[0x0]};var _0x2a5257=tag[_0x09e6('0x0')](_0x257df7,{'typecast':!![]});if(_0x2a5257[_0x09e6('0xa')]){logger[_0x09e6('0xb')](_0x09e6('0xc'),_0x3fe56e,_[_0x09e6('0xd')](_0x2a5257,_0x09e6('0xe'))[_0x09e6('0xf')](',\x20'));logger['info'](_0x09e6('0x10'),_0x3fe56e);_0x374df9['next']();}else{var _0x3d1118={'ids':[_0x55acd4[0x0]]};if(rpc[_0x36e529[_0x09e6('0x11')]+_0x09e6('0x12')]){rpc[_0x36e529[_0x09e6('0x11')]+_0x09e6('0x12')][_0x09e6('0x13')](_0x36e529[_0x09e6('0x14')]['id'],_0x3d1118)[_0x09e6('0x15')](function(_0x2ce13b){logger['info'](_0x09e6('0x16'),_0x3fe56e,_0x55acd4[0x1],_0x36e529['channel'],_0x36e529[_0x09e6('0x14')]['id']);})[_0x09e6('0x17')](function(_0x30a55a){logger[_0x09e6('0xb')](_0x09e6('0xc'),_0x3fe56e,JSON['stringify'](_0x30a55a));logger['info']('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x3fe56e);})[_0x09e6('0x18')](function(){_0x374df9[_0x09e6('0x19')]();});}}}catch(_0x5bd33e){logger[_0x09e6('0xb')](_0x09e6('0xc'),_0x3fe56e,_[_0x09e6('0x1a')](_0x5bd33e)?JSON['stringify'](_0x5bd33e):_0x5bd33e);logger[_0x09e6('0x1b')](_0x09e6('0x10'),_0x3fe56e);_0x374df9[_0x09e6('0x19')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['exports','render','merge','body','contact','message','account','interaction','list','mustache','lodash'];(function(_0x59f679,_0x14f5a2){var _0xf2c18c=function(_0xfb4e45){while(--_0xfb4e45){_0x59f679['push'](_0x59f679['shift']());}};_0xf2c18c(++_0x14f5a2);}(_0xe706,0xa3));var _0x6e70=function(_0x59808b,_0x448eac){_0x59808b=_0x59808b-0x0;var _0x32e13a=_0xe706[_0x59808b];return _0x32e13a;};'use strict';var Mustache=require(_0x6e70('0x0'));var _=require(_0x6e70('0x1'));module[_0x6e70('0x2')]={'getMustacheRender':function(_0x5e8446,_0x2cae77){return Mustache[_0x6e70('0x3')](_0x5e8446,_[_0x6e70('0x4')](_0x2cae77[_0x6e70('0x5')],{'contact':_0x2cae77[_0x6e70('0x6')],'message':_0x2cae77[_0x6e70('0x7')],'account':_0x2cae77[_0x6e70('0x8')],'interaction':_0x2cae77[_0x6e70('0x9')],'list':_0x2cae77[_0x6e70('0xa')]}))||'';}};
\ No newline at end of file
+var _0xd8b0=['merge','body','contact','message','list','mustache','lodash','render'];(function(_0x2c5b43,_0x2b7a8a){var _0x2ef2d6=function(_0xa4485d){while(--_0xa4485d){_0x2c5b43['push'](_0x2c5b43['shift']());}};_0x2ef2d6(++_0x2b7a8a);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Mustache=require(_0x0d8b('0x0'));var _=require(_0x0d8b('0x1'));module['exports']={'getMustacheRender':function(_0x585166,_0x4b72b0){return Mustache[_0x0d8b('0x2')](_0x585166,_[_0x0d8b('0x3')](_0x4b72b0[_0x0d8b('0x4')],{'contact':_0x4b72b0[_0x0d8b('0x5')],'message':_0x4b72b0[_0x0d8b('0x6')],'account':_0x4b72b0['account'],'interaction':_0x4b72b0['interaction'],'list':_0x4b72b0[_0x0d8b('0x7')]}))||'';}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24b5=['uuid','../../../config/logger','../rpc/openchannelQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','interval','listen','channel','message','interaction','applications','length','join','app','toLowerCase','appdata','mail','push','slice','split','dialogflowv2','tag','TagId','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','info','on\x20interval','\x20|\x20','error','Please\x20create\x20a\x20new\x20file\x20under','rules','execute','Applications\x20executed','stringify','matchPath','No\x20applications\x20to\x20execute','stack','routing\x20is\x20empty','agent','agents','busy','emit','end','QueueReport','UserId','message\x20is\x20empty','busyQueue','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','loggedIn','name','paused','mailQueues','available','waiting','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','http','127.0.0.1','log','RPC\x20listening\x20on\x20port:','lodash','util','path','jayson/promise'];(function(_0x3b2d9d,_0x190853){var _0x525a2d=function(_0x140574){while(--_0x140574){_0x3b2d9d['push'](_0x3b2d9d['shift']());}};_0x525a2d(++_0x190853);}(_0x24b5,0x1be));var _0x524b=function(_0x3b378f,_0x585dcd){_0x3b378f=_0x3b378f-0x0;var _0x1c6b60=_0x24b5[_0x3b378f];return _0x1c6b60;};'use strict';var _=require(_0x524b('0x0'));var util=require(_0x524b('0x1'));var path=require(_0x524b('0x2'));var fs=require('fs');var jayson=require(_0x524b('0x3'));var BPromise=require('bluebird');var uuid=require(_0x524b('0x4'));var config=require('../../../config/environment');var logger=require(_0x524b('0x5'))('routing');var rpc={'openchannelQueueReport':require(_0x524b('0x6')),'mailQueueReport':require('../rpc/mailQueueReport'),'chatQueueReport':require(_0x524b('0x7')),'smsQueueReport':require(_0x524b('0x8')),'faxQueueReport':require(_0x524b('0x9')),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0x524b('0xa'));function getId(_0x3d13f0,_0x12f80c,_0x2d4c70){return util[_0x524b('0xb')](_0x524b('0xc'),_0x3d13f0,_0x12f80c||0x0,_0x2d4c70||0x0);}function getIntervals(_0x3afbdf,_0x16f4d5){var _0x957976=[];if(!_[_0x524b('0xd')](_0x16f4d5[_0x524b('0xe')])&&!_[_0x524b('0xd')](_0x3afbdf[_0x16f4d5[_0x524b('0xe')]])&&!_[_0x524b('0xd')](_0x3afbdf[_0x16f4d5['IntervalId']][_0x524b('0xf')])){_0x957976=_['map'](_0x3afbdf[_0x16f4d5[_0x524b('0xe')]]['Intervals'],'interval');}else if(!_[_0x524b('0xd')](_0x16f4d5[_0x524b('0x10')])){_0x957976=[_0x16f4d5['interval']];}return _0x957976;}exports[_0x524b('0x11')]=function(_0x345510){_0x345510['rules']={};return new BPromise(function(_0x4a8ca1,_0x5a1deb){var _0x27218c={'Start':function(_0xf48312){var _0x4970cc=this;return new Promise(function(_0x344a01,_0x22f069){if(_0xf48312){try{var _0x2eea65=[];var _0x4840a1=getId(_0xf48312[_0x524b('0x12')],_0xf48312[_0x524b('0x13')]?_0xf48312[_0x524b('0x13')]['id']:0x0,_0xf48312['interaction']?_0xf48312[_0x524b('0x14')]['id']:0x0);if(_0xf48312[_0x524b('0x15')]&&_['isArray'](_0xf48312['applications'])&&_0xf48312[_0x524b('0x15')][_0x524b('0x16')]){for(var _0x323ca3=0x0;_0x323ca3<_0xf48312[_0x524b('0x15')][_0x524b('0x16')];_0x323ca3+=0x1){var _0x2664c3=_0xf48312[_0x524b('0x15')][_0x323ca3];if(fs['existsSync'](path[_0x524b('0x17')](__dirname,_0x524b('0x15'),_0x2664c3[_0x524b('0x18')]+'.js'))){var _0x1cff3f=[];switch(_0x2664c3['app'][_0x524b('0x19')]()){case'autoreply':var _0x3dde4e=_0x2664c3[_0x524b('0x1a')]['split'](',');if(_0xf48312[_0x524b('0x12')]===_0x524b('0x1b')){_0x1cff3f[_0x524b('0x1c')](_0x3dde4e[0x0]);_0x1cff3f[_0x524b('0x1c')](_0x3dde4e[0x1]);_0x1cff3f[_0x524b('0x1c')](_0x3dde4e['slice'](0x2,_0x3dde4e[_0x524b('0x16')])[_0x524b('0x17')](','));}else{_0x1cff3f[_0x524b('0x1c')](_0x3dde4e[0x0]);_0x1cff3f[_0x524b('0x1c')](_0x3dde4e[_0x524b('0x1d')](0x1,_0x3dde4e[_0x524b('0x16')])['join'](','));}break;case'dialogflow':var _0x3b3312=_0x2664c3[_0x524b('0x1a')][_0x524b('0x1e')](',');_0x1cff3f[_0x524b('0x1c')](_0x3b3312[0x0]);_0x1cff3f[_0x524b('0x1c')](_0x3b3312[0x1]);_0x1cff3f['push'](_0x3b3312[_0x524b('0x1d')](0x2,_0x3b3312[_0x524b('0x16')])['join'](','));break;case _0x524b('0x1f'):var _0x1a4681=_0x2664c3['appdata'][_0x524b('0x1e')](',');_0x1cff3f[_0x524b('0x1c')](_0x1a4681[0x0]);_0x1cff3f[_0x524b('0x1c')](_0x1a4681[0x1]);_0x1cff3f['push'](_0x1a4681[0x2]);_0x1cff3f['push'](_0x1a4681[0x3]);_0x1cff3f[_0x524b('0x1c')](_0x1a4681[_0x524b('0x1d')](0x4,_0x1a4681[_0x524b('0x16')])['join'](','));break;case'amazonlex':var _0x2ffffc=_0x2664c3[_0x524b('0x1a')][_0x524b('0x1e')](',');_0x1cff3f[_0x524b('0x1c')](_0x2ffffc[0x0]);_0x1cff3f[_0x524b('0x1c')](_0x2ffffc[0x1]);_0x1cff3f[_0x524b('0x1c')](_0x2ffffc[0x2]);_0x1cff3f[_0x524b('0x1c')](_0x2ffffc[0x3]);_0x1cff3f[_0x524b('0x1c')](_0x2ffffc['slice'](0x4,_0x2ffffc[_0x524b('0x16')])[_0x524b('0x17')](','));break;case _0x524b('0x13'):_0x1cff3f[_0x524b('0x1c')](_0x2664c3[_0x524b('0x1a')]);break;case _0x524b('0x20'):_0x1cff3f[_0x524b('0x1c')](_0x2664c3[_0x524b('0x21')]);_0x1cff3f[_0x524b('0x1c')](_0x2664c3[_0x524b('0x1a')]);break;default:_0x1cff3f=_[_0x524b('0xd')](_0x2664c3['appdata'])?[]:_0x2664c3[_0x524b('0x1a')][_0x524b('0x1e')](',');}var _0x501583={'id':util['format'](_0x524b('0x22'),_0x4840a1,_0x2664c3['id'],_0x2664c3[_0x524b('0x18')]),'condition':require(_0x524b('0x23'))[_0x524b('0x24')](_0x4840a1,getIntervals(_0x345510[_0x524b('0x25')],_0x2664c3),_0x345510),'consequence':require(_0x524b('0x26')+_0x2664c3[_0x524b('0x18')])[_0x524b('0x27')](_0x4840a1,_0x1cff3f,_0x345510,_0xf48312),'p':_0x2664c3['priority']||0x0};logger[_0x524b('0x28')]('Push\x20new\x20rule',_0x501583['id'],_0x524b('0x29'),getIntervals(_0x345510[_0x524b('0x25')],_0x2664c3)[_0x524b('0x17')](_0x524b('0x2a')));_0x2eea65[_0x524b('0x1c')](_0x501583);}else{logger[_0x524b('0x2b')](_0x524b('0x2c'),path['join'](__dirname,_0x524b('0x15'),_0x2664c3[_0x524b('0x18')]+'.js'));}}_0x345510[_0x524b('0x2d')][_0x4840a1]=new RuleEngine(_0x2eea65);_0x345510['rules'][_0x4840a1][_0x524b('0x2e')](_0xf48312,function(_0x1eeb9a){logger[_0x524b('0x28')](_0x524b('0x2f'),JSON[_0x524b('0x30')](_0x1eeb9a[_0x524b('0x31')]));if(_0x345510['rules'][_0x4840a1]){_0x345510[_0x524b('0x2d')][_0x4840a1]['emit']('complete');}});return _0x344a01({'code':0xc8,'message':_0xf48312});}else{logger['info'](_0x524b('0x32'));return _0x344a01({'code':0xc8,'message':_0xf48312});}}catch(_0x509606){logger[_0x524b('0x2b')](_0x509606[_0x524b('0x33')]);return _0x22f069(_0x4970cc[_0x524b('0x2b')](0x1f4,_0x509606));}}return _0x22f069(_0x524b('0x34'));});},'AcceptMessage':function(_0x481f23){var _0x12296a=this;return new Promise(function(_0x408d0,_0x5d90aa){if(_0x481f23[_0x524b('0x35')]&&_0x481f23[_0x524b('0x35')]['id']){if(_0x345510['agents'][_0x481f23[_0x524b('0x35')]['id']]){_0x345510[_0x524b('0x36')][_0x481f23['agent']['id']][_0x524b('0x37')]=![];_0x345510[_0x524b('0x36')][_0x481f23['agent']['id']]['busyQueue']=undefined;}}if(_0x481f23[_0x524b('0x13')]&&_0x481f23[_0x524b('0x13')]['id']){try{var _0x1072f6=getId(_0x481f23['channel'],_0x481f23[_0x524b('0x13')]?_0x481f23[_0x524b('0x13')]['id']:0x0,_0x481f23[_0x524b('0x14')]?_0x481f23[_0x524b('0x14')]['id']:0x0);if(_0x345510['rules'][_0x1072f6]){_0x345510[_0x524b('0x2d')][_0x1072f6][_0x524b('0x38')](_0x524b('0x39'));if(rpc[_0x481f23[_0x524b('0x12')]+'QueueReport']){rpc[_0x481f23[_0x524b('0x12')]+_0x524b('0x3a')]['update'](_0x1072f6,{'UserId':_0x481f23[_0x524b('0x13')][_0x524b('0x3b')]})['catch'](function(_0xdf372d){logger[_0x524b('0x2b')]('error\x20update\x20queue\x20report');});}}return _0x408d0({'code':0xc8,'message':_0x481f23});}catch(_0x4499c0){logger[_0x524b('0x2b')](_0x4499c0[_0x524b('0x33')]);return _0x5d90aa(_0x12296a[_0x524b('0x2b')](0x1f4,_0x4499c0));}}logger['error'](_0x524b('0x3c'));return _0x5d90aa(_0x12296a['error'](0x1f4,_0x524b('0x3c')));});},'RejectMessage':function(_0x587c95){var _0x27192a=this;return new Promise(function(_0xd14a33,_0x36f3e6){if(_0x587c95[_0x524b('0x35')]&&_0x587c95[_0x524b('0x35')]['id']){try{if(_0x345510[_0x524b('0x36')][_0x587c95[_0x524b('0x35')]['id']]){_0x345510[_0x524b('0x36')][_0x587c95[_0x524b('0x35')]['id']][_0x524b('0x37')]=![];_0x345510[_0x524b('0x36')][_0x587c95[_0x524b('0x35')]['id']][_0x524b('0x3d')]=undefined;}return _0xd14a33({'code':0xc8,'message':_0x587c95});}catch(_0x4b7151){logger[_0x524b('0x2b')](_0x4b7151['stack']);return _0x36f3e6(_0x27192a[_0x524b('0x2b')](0x1f4,_0x4b7151));}}logger[_0x524b('0x2b')](_0x524b('0x3c'));return _0x36f3e6(_0x27192a[_0x524b('0x2b')](0x1f4,_0x524b('0x3c')));});},'AbandonInteraction':function(_0x566f5f){var _0xbe29a8=this;return new Promise(function(_0x44296f,_0x2e0c35){if(_0x566f5f[_0x524b('0x12')]&&_0x566f5f[_0x524b('0x14')]&&_0x566f5f['interaction']['id']){try{var _0x1f1976=getId(_0x566f5f['channel'],_0x566f5f['message']?_0x566f5f['message']['id']:0x0,_0x566f5f[_0x524b('0x14')]?_0x566f5f[_0x524b('0x14')]['id']:0x0);if(_0x345510[_0x524b('0x2d')][_0x1f1976]){_0x345510[_0x524b('0x2d')][_0x1f1976][_0x524b('0x38')](_0x524b('0x39'));}return _0x44296f({'code':0xc8,'message':_0x566f5f});}catch(_0x2022a4){logger[_0x524b('0x2b')](_0x2022a4[_0x524b('0x33')]);return _0x2e0c35(_0xbe29a8[_0x524b('0x2b')](0x1f4,_0x2022a4));}}logger['error'](_0x524b('0x3c'));return _0x2e0c35(_0xbe29a8['error'](0x1f4,_0x524b('0x3c')));});},'AgentCapacity':function(_0x13a2a3){var _0x11368d=this;return new Promise(function(_0x28b6cc,_0x5603b7){if(_0x345510[_0x524b('0x36')][_0x524b('0x3e')](_0x13a2a3['id'])){for(var _0xd24efe in _0x13a2a3[_0x524b('0x3f')]){if(_0x13a2a3[_0x524b('0x3f')][_0x524b('0x3e')](_0xd24efe)){if(_0x345510[_0x524b('0x36')][_0x13a2a3['id']]['hasOwnProperty'](_0xd24efe+_0x524b('0x40'))){_0x345510[_0x524b('0x36')][_0x13a2a3['id']][_0xd24efe+'CurrentCapacity']=parseInt(_0x13a2a3[_0x524b('0x3f')][_0xd24efe],0xa);}}}_0x345510[_0x524b('0x36')][_0x13a2a3['id']][_0x524b('0x41')]();return _0x28b6cc({'code':0xc8,'message':_0x345510['agents'][_0x13a2a3['id']]});}else{return _0x5603b7(_0x11368d[_0x524b('0x2b')](0x1f4,_0x524b('0x42')));}});},'Agents':function(_0x94d13a){return new Promise(function(_0x4281ba,_0x58b90c){var _0x4be478=_[_0x524b('0x43')](_0x345510[_0x524b('0x36')]);_0x4281ba({'count':_0x4be478[_0x524b('0x16')],'rows':_0x4be478});});},'ChatQueues':function(_0x3a83d6){return new Promise(function(_0x880449,_0x459448){var _0x2348cc=[];for(var _0x299b01 in _0x345510[_0x524b('0x44')]){if(_0x345510['chatQueues'][_0x524b('0x3e')](_0x299b01)){var _0x9a4dbd=_0x345510[_0x524b('0x44')][_0x299b01];var _0x287744={'id':_0x9a4dbd['id'],'available':_0x9a4dbd['available'],'loggedIn':_0x9a4dbd[_0x524b('0x45')],'name':_0x9a4dbd[_0x524b('0x46')],'paused':_0x9a4dbd[_0x524b('0x47')],'waiting':_0x9a4dbd['waiting']};_0x2348cc['push'](_0x287744);}}_0x880449({'count':_0x2348cc[_0x524b('0x16')],'rows':_0x2348cc});});},'MailQueues':function(_0x45689d){return new Promise(function(_0x54fdd0,_0x553af6){var _0x43b656=[];for(var _0x588089 in _0x345510['mailQueues']){if(_0x345510[_0x524b('0x48')][_0x524b('0x3e')](_0x588089)){var _0x726e9f=_0x345510[_0x524b('0x48')][_0x588089];var _0x4f01d7={'id':_0x726e9f['id'],'available':_0x726e9f[_0x524b('0x49')],'loggedIn':_0x726e9f[_0x524b('0x45')],'name':_0x726e9f['name'],'paused':_0x726e9f['paused'],'waiting':_0x726e9f[_0x524b('0x4a')]};_0x43b656['push'](_0x4f01d7);}}_0x54fdd0({'count':_0x43b656['length'],'rows':_0x43b656});});},'OpenchannelQueues':function(_0x2e9d2c){return new Promise(function(_0x3ae95c,_0x2bf924){var _0x15035e=[];for(var _0x5dfb72 in _0x345510['openchannelQueues']){if(_0x345510[_0x524b('0x4b')]['hasOwnProperty'](_0x5dfb72)){var _0x100ba5=_0x345510['openchannelQueues'][_0x5dfb72];var _0x200d73={'id':_0x100ba5['id'],'available':_0x100ba5[_0x524b('0x49')],'loggedIn':_0x100ba5[_0x524b('0x45')],'name':_0x100ba5[_0x524b('0x46')],'paused':_0x100ba5[_0x524b('0x47')],'waiting':_0x100ba5['waiting']};_0x15035e[_0x524b('0x1c')](_0x200d73);}}_0x3ae95c({'count':_0x15035e[_0x524b('0x16')],'rows':_0x15035e});});},'SmsQueues':function(_0x115cc0){return new Promise(function(_0x4ffcc5,_0x1967ab){var _0x173de6=[];for(var _0x5b9919 in _0x345510['smsQueues']){if(_0x345510[_0x524b('0x4c')]['hasOwnProperty'](_0x5b9919)){var _0x4f7594=_0x345510[_0x524b('0x4c')][_0x5b9919];var _0x3ff858={'id':_0x4f7594['id'],'available':_0x4f7594[_0x524b('0x49')],'loggedIn':_0x4f7594['loggedIn'],'name':_0x4f7594['name'],'paused':_0x4f7594[_0x524b('0x47')],'waiting':_0x4f7594[_0x524b('0x4a')]};_0x173de6['push'](_0x3ff858);}}_0x4ffcc5({'count':_0x173de6[_0x524b('0x16')],'rows':_0x173de6});});},'FaxQueues':function(_0x1ddaf6){return new Promise(function(_0x5a6a4b,_0x59e7eb){var _0x312054=[];for(var _0x1cdd07 in _0x345510['faxQueues']){if(_0x345510[_0x524b('0x4d')]['hasOwnProperty'](_0x1cdd07)){var _0x4cce31=_0x345510[_0x524b('0x4d')][_0x1cdd07];var _0x28f672={'id':_0x4cce31['id'],'available':_0x4cce31[_0x524b('0x49')],'loggedIn':_0x4cce31['loggedIn'],'name':_0x4cce31['name'],'paused':_0x4cce31[_0x524b('0x47')],'waiting':_0x4cce31[_0x524b('0x4a')]};_0x312054[_0x524b('0x1c')](_0x28f672);}}_0x5a6a4b({'count':_0x312054[_0x524b('0x16')],'rows':_0x312054});});},'WhatsappQueues':function(_0x1e20bc){return new Promise(function(_0x304840,_0x111450){var _0x5bc726=[];for(var _0xefab79 in _0x345510[_0x524b('0x4e')]){if(_0x345510[_0x524b('0x4e')][_0x524b('0x3e')](_0xefab79)){var _0x54a664=_0x345510[_0x524b('0x4e')][_0xefab79];var _0x2b26db={'id':_0x54a664['id'],'available':_0x54a664[_0x524b('0x49')],'loggedIn':_0x54a664['loggedIn'],'name':_0x54a664[_0x524b('0x46')],'paused':_0x54a664[_0x524b('0x47')],'waiting':_0x54a664['waiting']};_0x5bc726[_0x524b('0x1c')](_0x2b26db);}}_0x304840({'count':_0x5bc726[_0x524b('0x16')],'rows':_0x5bc726});});},'ChatQueuesWaitingInteractions':function(_0x15653b){return new Promise(function(_0x1a084d,_0xb8c93b){var _0x5cb9e0=_[_0x524b('0x43')](_0x345510[_0x524b('0x4f')]);_0x1a084d({'count':_0x5cb9e0[_0x524b('0x16')],'rows':_0x5cb9e0});});},'MailQueuesWaitingInteractions':function(_0x53132d){return new Promise(function(_0x20cbdf,_0x2c1dbd){var _0x4961af=_[_0x524b('0x43')](_0x345510[_0x524b('0x50')]);_0x20cbdf({'count':_0x4961af[_0x524b('0x16')],'rows':_0x4961af});});},'OpenchannelQueuesWaitingInteractions':function(_0x3bf634){return new Promise(function(_0x2af3bd,_0x42efca){var _0x2d085f=_[_0x524b('0x43')](_0x345510[_0x524b('0x51')]);_0x2af3bd({'count':_0x2d085f[_0x524b('0x16')],'rows':_0x2d085f});});},'SmsQueuesWaitingInteractions':function(_0x4b3f24){return new Promise(function(_0x33d0c1,_0x219aae){var _0xf179ad=_[_0x524b('0x43')](_0x345510[_0x524b('0x52')]);_0x33d0c1({'count':_0xf179ad['length'],'rows':_0xf179ad});});},'FaxQueuesWaitingInteractions':function(_0x39320b){return new Promise(function(_0x4159b2,_0x42e890){var _0x5a76a7=_[_0x524b('0x43')](_0x345510[_0x524b('0x53')]);_0x4159b2({'count':_0x5a76a7[_0x524b('0x16')],'rows':_0x5a76a7});});},'WhatsappQueuesWaitingInteractions':function(_0xa44b60){return new Promise(function(_0x495821,_0x16ec23){var _0x2d14c1=_[_0x524b('0x43')](_0x345510[_0x524b('0x54')]);_0x495821({'count':_0x2d14c1['length'],'rows':_0x2d14c1});});}};var _0x131272=jayson[_0x524b('0x55')](_0x27218c)[_0x524b('0x56')]();_0x131272['on']('error',function(_0x41f3a6){logger[_0x524b('0x2b')](JSON['stringify'](_0x41f3a6));return _0x5a1deb(_0x41f3a6);});_0x131272['listen'](0x232c,_0x524b('0x57'),function(){console[_0x524b('0x58')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x4a8ca1(_0x524b('0x59')+0x232c);});});};
\ No newline at end of file
+var _0x5eef=['condition','intervals','consequence','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','rules','execute','Applications\x20executed','stringify','matchPath','emit','No\x20applications\x20to\x20execute','error','stack','routing\x20is\x20empty','agent','agents','busy','busyQueue','QueueReport','update','UserId','message\x20is\x20empty','capacity','hasOwnProperty','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','loggedIn','paused','waiting','mailQueues','available','openchannelQueues','name','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','util','path','bluebird','../../../config/environment','../../../config/logger','routing','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','isNil','IntervalId','interval','listen','channel','message','interaction','applications','isArray','length','join','app','toLowerCase','autoreply','appdata','mail','push','slice','dialogflow','split','dialogflowv2','amazonlex','tag','%s:%s:%s'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x5eef,0x8d));var _0xf5ee=function(_0x34a755,_0x220815){_0x34a755=_0x34a755-0x0;var _0x36aa9c=_0x5eef[_0x34a755];return _0x36aa9c;};'use strict';var _=require('lodash');var util=require(_0xf5ee('0x0'));var path=require(_0xf5ee('0x1'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0xf5ee('0x2'));var uuid=require('uuid');var config=require(_0xf5ee('0x3'));var logger=require(_0xf5ee('0x4'))(_0xf5ee('0x5'));var rpc={'openchannelQueueReport':require('../rpc/openchannelQueueReport'),'mailQueueReport':require(_0xf5ee('0x6')),'chatQueueReport':require(_0xf5ee('0x7')),'smsQueueReport':require(_0xf5ee('0x8')),'faxQueueReport':require(_0xf5ee('0x9')),'whatsappQueueReport':require(_0xf5ee('0xa'))};var RuleEngine=require(_0xf5ee('0xb'));function getId(_0x1163d5,_0x35f017,_0x992f32){return util[_0xf5ee('0xc')]('%s.%s.%s',_0x1163d5,_0x35f017||0x0,_0x992f32||0x0);}function getIntervals(_0xe01fe,_0x20885b){var _0x117a71=[];if(!_[_0xf5ee('0xd')](_0x20885b[_0xf5ee('0xe')])&&!_[_0xf5ee('0xd')](_0xe01fe[_0x20885b['IntervalId']])&&!_['isNil'](_0xe01fe[_0x20885b[_0xf5ee('0xe')]]['Intervals'])){_0x117a71=_['map'](_0xe01fe[_0x20885b['IntervalId']]['Intervals'],_0xf5ee('0xf'));}else if(!_[_0xf5ee('0xd')](_0x20885b['interval'])){_0x117a71=[_0x20885b[_0xf5ee('0xf')]];}return _0x117a71;}exports[_0xf5ee('0x10')]=function(_0x2b6953){_0x2b6953['rules']={};return new BPromise(function(_0x29f616,_0xc41571){var _0x54b0d={'Start':function(_0x3f05ca){var _0x25a628=this;return new Promise(function(_0x3dbba7,_0x1d571a){if(_0x3f05ca){try{var _0x43b3a0=[];var _0x42b663=getId(_0x3f05ca[_0xf5ee('0x11')],_0x3f05ca['message']?_0x3f05ca[_0xf5ee('0x12')]['id']:0x0,_0x3f05ca[_0xf5ee('0x13')]?_0x3f05ca[_0xf5ee('0x13')]['id']:0x0);if(_0x3f05ca[_0xf5ee('0x14')]&&_[_0xf5ee('0x15')](_0x3f05ca[_0xf5ee('0x14')])&&_0x3f05ca[_0xf5ee('0x14')][_0xf5ee('0x16')]){for(var _0xb50e4c=0x0;_0xb50e4c<_0x3f05ca['applications']['length'];_0xb50e4c+=0x1){var _0x20ceaf=_0x3f05ca[_0xf5ee('0x14')][_0xb50e4c];if(fs['existsSync'](path[_0xf5ee('0x17')](__dirname,'applications',_0x20ceaf[_0xf5ee('0x18')]+'.js'))){var _0x4d5b78=[];switch(_0x20ceaf[_0xf5ee('0x18')][_0xf5ee('0x19')]()){case _0xf5ee('0x1a'):var _0x35394e=_0x20ceaf[_0xf5ee('0x1b')]['split'](',');if(_0x3f05ca[_0xf5ee('0x11')]===_0xf5ee('0x1c')){_0x4d5b78[_0xf5ee('0x1d')](_0x35394e[0x0]);_0x4d5b78[_0xf5ee('0x1d')](_0x35394e[0x1]);_0x4d5b78[_0xf5ee('0x1d')](_0x35394e[_0xf5ee('0x1e')](0x2,_0x35394e['length'])[_0xf5ee('0x17')](','));}else{_0x4d5b78[_0xf5ee('0x1d')](_0x35394e[0x0]);_0x4d5b78[_0xf5ee('0x1d')](_0x35394e[_0xf5ee('0x1e')](0x1,_0x35394e[_0xf5ee('0x16')])[_0xf5ee('0x17')](','));}break;case _0xf5ee('0x1f'):var _0x44b569=_0x20ceaf['appdata'][_0xf5ee('0x20')](',');_0x4d5b78['push'](_0x44b569[0x0]);_0x4d5b78[_0xf5ee('0x1d')](_0x44b569[0x1]);_0x4d5b78[_0xf5ee('0x1d')](_0x44b569[_0xf5ee('0x1e')](0x2,_0x44b569['length'])[_0xf5ee('0x17')](','));break;case _0xf5ee('0x21'):var _0x7a53=_0x20ceaf['appdata'][_0xf5ee('0x20')](',');_0x4d5b78['push'](_0x7a53[0x0]);_0x4d5b78[_0xf5ee('0x1d')](_0x7a53[0x1]);_0x4d5b78[_0xf5ee('0x1d')](_0x7a53[0x2]);_0x4d5b78[_0xf5ee('0x1d')](_0x7a53[0x3]);_0x4d5b78[_0xf5ee('0x1d')](_0x7a53[_0xf5ee('0x1e')](0x4,_0x7a53['length'])[_0xf5ee('0x17')](','));break;case _0xf5ee('0x22'):var _0x329388=_0x20ceaf['appdata'][_0xf5ee('0x20')](',');_0x4d5b78[_0xf5ee('0x1d')](_0x329388[0x0]);_0x4d5b78[_0xf5ee('0x1d')](_0x329388[0x1]);_0x4d5b78[_0xf5ee('0x1d')](_0x329388[0x2]);_0x4d5b78['push'](_0x329388[0x3]);_0x4d5b78['push'](_0x329388[_0xf5ee('0x1e')](0x4,_0x329388[_0xf5ee('0x16')])['join'](','));break;case'message':_0x4d5b78[_0xf5ee('0x1d')](_0x20ceaf['appdata']);break;case _0xf5ee('0x23'):_0x4d5b78[_0xf5ee('0x1d')](_0x20ceaf['TagId']);_0x4d5b78['push'](_0x20ceaf[_0xf5ee('0x1b')]);break;default:_0x4d5b78=_['isNil'](_0x20ceaf['appdata'])?[]:_0x20ceaf[_0xf5ee('0x1b')][_0xf5ee('0x20')](',');}var _0x16d08c={'id':util[_0xf5ee('0xc')](_0xf5ee('0x24'),_0x42b663,_0x20ceaf['id'],_0x20ceaf['app']),'condition':require('./interval')[_0xf5ee('0x25')](_0x42b663,getIntervals(_0x2b6953[_0xf5ee('0x26')],_0x20ceaf),_0x2b6953),'consequence':require('./applications/'+_0x20ceaf['app'])[_0xf5ee('0x27')](_0x42b663,_0x4d5b78,_0x2b6953,_0x3f05ca),'p':_0x20ceaf['priority']||0x0};logger[_0xf5ee('0x28')](_0xf5ee('0x29'),_0x16d08c['id'],_0xf5ee('0x2a'),getIntervals(_0x2b6953[_0xf5ee('0x26')],_0x20ceaf)['join'](_0xf5ee('0x2b')));_0x43b3a0[_0xf5ee('0x1d')](_0x16d08c);}else{logger['error']('Please\x20create\x20a\x20new\x20file\x20under',path[_0xf5ee('0x17')](__dirname,_0xf5ee('0x14'),_0x20ceaf[_0xf5ee('0x18')]+'.js'));}}_0x2b6953[_0xf5ee('0x2c')][_0x42b663]=new RuleEngine(_0x43b3a0);_0x2b6953['rules'][_0x42b663][_0xf5ee('0x2d')](_0x3f05ca,function(_0x408bba){logger[_0xf5ee('0x28')](_0xf5ee('0x2e'),JSON[_0xf5ee('0x2f')](_0x408bba[_0xf5ee('0x30')]));if(_0x2b6953[_0xf5ee('0x2c')][_0x42b663]){_0x2b6953['rules'][_0x42b663][_0xf5ee('0x31')]('complete');}});return _0x3dbba7({'code':0xc8,'message':_0x3f05ca});}else{logger['info'](_0xf5ee('0x32'));return _0x3dbba7({'code':0xc8,'message':_0x3f05ca});}}catch(_0xb02cd8){logger[_0xf5ee('0x33')](_0xb02cd8[_0xf5ee('0x34')]);return _0x1d571a(_0x25a628[_0xf5ee('0x33')](0x1f4,_0xb02cd8));}}return _0x1d571a(_0xf5ee('0x35'));});},'AcceptMessage':function(_0x453c80){var _0x415005=this;return new Promise(function(_0x479b74,_0x261550){if(_0x453c80[_0xf5ee('0x36')]&&_0x453c80[_0xf5ee('0x36')]['id']){if(_0x2b6953[_0xf5ee('0x37')][_0x453c80[_0xf5ee('0x36')]['id']]){_0x2b6953[_0xf5ee('0x37')][_0x453c80[_0xf5ee('0x36')]['id']][_0xf5ee('0x38')]=![];_0x2b6953[_0xf5ee('0x37')][_0x453c80[_0xf5ee('0x36')]['id']][_0xf5ee('0x39')]=undefined;}}if(_0x453c80[_0xf5ee('0x12')]&&_0x453c80[_0xf5ee('0x12')]['id']){try{var _0x283d1c=getId(_0x453c80[_0xf5ee('0x11')],_0x453c80['message']?_0x453c80[_0xf5ee('0x12')]['id']:0x0,_0x453c80[_0xf5ee('0x13')]?_0x453c80[_0xf5ee('0x13')]['id']:0x0);if(_0x2b6953['rules'][_0x283d1c]){_0x2b6953[_0xf5ee('0x2c')][_0x283d1c][_0xf5ee('0x31')]('end');if(rpc[_0x453c80[_0xf5ee('0x11')]+_0xf5ee('0x3a')]){rpc[_0x453c80[_0xf5ee('0x11')]+_0xf5ee('0x3a')][_0xf5ee('0x3b')](_0x283d1c,{'UserId':_0x453c80[_0xf5ee('0x12')][_0xf5ee('0x3c')]})['catch'](function(_0x261589){logger[_0xf5ee('0x33')]('error\x20update\x20queue\x20report');});}}return _0x479b74({'code':0xc8,'message':_0x453c80});}catch(_0x7ffa43){logger[_0xf5ee('0x33')](_0x7ffa43['stack']);return _0x261550(_0x415005['error'](0x1f4,_0x7ffa43));}}logger[_0xf5ee('0x33')](_0xf5ee('0x3d'));return _0x261550(_0x415005[_0xf5ee('0x33')](0x1f4,_0xf5ee('0x3d')));});},'RejectMessage':function(_0x3b85bb){var _0x1db883=this;return new Promise(function(_0x268ab8,_0x4f2632){if(_0x3b85bb['agent']&&_0x3b85bb[_0xf5ee('0x36')]['id']){try{if(_0x2b6953[_0xf5ee('0x37')][_0x3b85bb[_0xf5ee('0x36')]['id']]){_0x2b6953[_0xf5ee('0x37')][_0x3b85bb[_0xf5ee('0x36')]['id']]['busy']=![];_0x2b6953[_0xf5ee('0x37')][_0x3b85bb[_0xf5ee('0x36')]['id']][_0xf5ee('0x39')]=undefined;}return _0x268ab8({'code':0xc8,'message':_0x3b85bb});}catch(_0x5c7158){logger[_0xf5ee('0x33')](_0x5c7158[_0xf5ee('0x34')]);return _0x4f2632(_0x1db883[_0xf5ee('0x33')](0x1f4,_0x5c7158));}}logger['error'](_0xf5ee('0x3d'));return _0x4f2632(_0x1db883['error'](0x1f4,_0xf5ee('0x3d')));});},'AbandonInteraction':function(_0x2648a3){var _0xbd2386=this;return new Promise(function(_0x40fff4,_0x1937f8){if(_0x2648a3[_0xf5ee('0x11')]&&_0x2648a3[_0xf5ee('0x13')]&&_0x2648a3['interaction']['id']){try{var _0x55bf7c=getId(_0x2648a3[_0xf5ee('0x11')],_0x2648a3[_0xf5ee('0x12')]?_0x2648a3[_0xf5ee('0x12')]['id']:0x0,_0x2648a3['interaction']?_0x2648a3[_0xf5ee('0x13')]['id']:0x0);if(_0x2b6953[_0xf5ee('0x2c')][_0x55bf7c]){_0x2b6953[_0xf5ee('0x2c')][_0x55bf7c][_0xf5ee('0x31')]('end');}return _0x40fff4({'code':0xc8,'message':_0x2648a3});}catch(_0x34546e){logger[_0xf5ee('0x33')](_0x34546e[_0xf5ee('0x34')]);return _0x1937f8(_0xbd2386[_0xf5ee('0x33')](0x1f4,_0x34546e));}}logger['error']('message\x20is\x20empty');return _0x1937f8(_0xbd2386['error'](0x1f4,'message\x20is\x20empty'));});},'AgentCapacity':function(_0x130c57){var _0x320387=this;return new Promise(function(_0x3b9f46,_0xb1f0ba){if(_0x2b6953[_0xf5ee('0x37')]['hasOwnProperty'](_0x130c57['id'])){for(var _0x1dab12 in _0x130c57[_0xf5ee('0x3e')]){if(_0x130c57['capacity'][_0xf5ee('0x3f')](_0x1dab12)){if(_0x2b6953['agents'][_0x130c57['id']]['hasOwnProperty'](_0x1dab12+_0xf5ee('0x40'))){_0x2b6953[_0xf5ee('0x37')][_0x130c57['id']][_0x1dab12+_0xf5ee('0x40')]=parseInt(_0x130c57['capacity'][_0x1dab12],0xa);}}}_0x2b6953[_0xf5ee('0x37')][_0x130c57['id']][_0xf5ee('0x41')]();return _0x3b9f46({'code':0xc8,'message':_0x2b6953[_0xf5ee('0x37')][_0x130c57['id']]});}else{return _0xb1f0ba(_0x320387['error'](0x1f4,_0xf5ee('0x42')));}});},'Agents':function(_0x3c94b1){return new Promise(function(_0x11819f,_0x14a464){var _0x126f7f=_[_0xf5ee('0x43')](_0x2b6953[_0xf5ee('0x37')]);_0x11819f({'count':_0x126f7f['length'],'rows':_0x126f7f});});},'ChatQueues':function(_0x1fa035){return new Promise(function(_0xac7cdc,_0x237260){var _0x4bd98b=[];for(var _0x20d27c in _0x2b6953[_0xf5ee('0x44')]){if(_0x2b6953[_0xf5ee('0x44')][_0xf5ee('0x3f')](_0x20d27c)){var _0x252a13=_0x2b6953[_0xf5ee('0x44')][_0x20d27c];var _0x14b8ab={'id':_0x252a13['id'],'available':_0x252a13['available'],'loggedIn':_0x252a13[_0xf5ee('0x45')],'name':_0x252a13['name'],'paused':_0x252a13[_0xf5ee('0x46')],'waiting':_0x252a13[_0xf5ee('0x47')]};_0x4bd98b[_0xf5ee('0x1d')](_0x14b8ab);}}_0xac7cdc({'count':_0x4bd98b[_0xf5ee('0x16')],'rows':_0x4bd98b});});},'MailQueues':function(_0xbd07bf){return new Promise(function(_0x11b4ae,_0x4a6e13){var _0x1ce00c=[];for(var _0x31feb1 in _0x2b6953['mailQueues']){if(_0x2b6953['mailQueues'][_0xf5ee('0x3f')](_0x31feb1)){var _0x2bf324=_0x2b6953[_0xf5ee('0x48')][_0x31feb1];var _0x20c2b5={'id':_0x2bf324['id'],'available':_0x2bf324[_0xf5ee('0x49')],'loggedIn':_0x2bf324[_0xf5ee('0x45')],'name':_0x2bf324['name'],'paused':_0x2bf324[_0xf5ee('0x46')],'waiting':_0x2bf324[_0xf5ee('0x47')]};_0x1ce00c[_0xf5ee('0x1d')](_0x20c2b5);}}_0x11b4ae({'count':_0x1ce00c[_0xf5ee('0x16')],'rows':_0x1ce00c});});},'OpenchannelQueues':function(_0x68d9a0){return new Promise(function(_0xfacd3c,_0x2c15e1){var _0x53f58d=[];for(var _0x4a4c73 in _0x2b6953[_0xf5ee('0x4a')]){if(_0x2b6953['openchannelQueues'][_0xf5ee('0x3f')](_0x4a4c73)){var _0xf3688f=_0x2b6953[_0xf5ee('0x4a')][_0x4a4c73];var _0x5de1ea={'id':_0xf3688f['id'],'available':_0xf3688f[_0xf5ee('0x49')],'loggedIn':_0xf3688f[_0xf5ee('0x45')],'name':_0xf3688f[_0xf5ee('0x4b')],'paused':_0xf3688f['paused'],'waiting':_0xf3688f[_0xf5ee('0x47')]};_0x53f58d[_0xf5ee('0x1d')](_0x5de1ea);}}_0xfacd3c({'count':_0x53f58d[_0xf5ee('0x16')],'rows':_0x53f58d});});},'SmsQueues':function(_0x3185a7){return new Promise(function(_0x5508b7,_0x57d12f){var _0x5dd6f7=[];for(var _0x199ea6 in _0x2b6953[_0xf5ee('0x4c')]){if(_0x2b6953[_0xf5ee('0x4c')][_0xf5ee('0x3f')](_0x199ea6)){var _0x1eecf9=_0x2b6953[_0xf5ee('0x4c')][_0x199ea6];var _0x251ab2={'id':_0x1eecf9['id'],'available':_0x1eecf9[_0xf5ee('0x49')],'loggedIn':_0x1eecf9[_0xf5ee('0x45')],'name':_0x1eecf9[_0xf5ee('0x4b')],'paused':_0x1eecf9[_0xf5ee('0x46')],'waiting':_0x1eecf9[_0xf5ee('0x47')]};_0x5dd6f7['push'](_0x251ab2);}}_0x5508b7({'count':_0x5dd6f7[_0xf5ee('0x16')],'rows':_0x5dd6f7});});},'FaxQueues':function(_0x52067a){return new Promise(function(_0x2d1fd0,_0x46a4f0){var _0x31b445=[];for(var _0xccc643 in _0x2b6953['faxQueues']){if(_0x2b6953[_0xf5ee('0x4d')][_0xf5ee('0x3f')](_0xccc643)){var _0x1a2706=_0x2b6953['faxQueues'][_0xccc643];var _0x5f4433={'id':_0x1a2706['id'],'available':_0x1a2706['available'],'loggedIn':_0x1a2706[_0xf5ee('0x45')],'name':_0x1a2706['name'],'paused':_0x1a2706[_0xf5ee('0x46')],'waiting':_0x1a2706['waiting']};_0x31b445[_0xf5ee('0x1d')](_0x5f4433);}}_0x2d1fd0({'count':_0x31b445[_0xf5ee('0x16')],'rows':_0x31b445});});},'WhatsappQueues':function(_0x4fa6ed){return new Promise(function(_0x166478,_0x2a1c7b){var _0x1a58b0=[];for(var _0x5bac5f in _0x2b6953['whatsappQueues']){if(_0x2b6953[_0xf5ee('0x4e')]['hasOwnProperty'](_0x5bac5f)){var _0x5abf65=_0x2b6953[_0xf5ee('0x4e')][_0x5bac5f];var _0x4f8f77={'id':_0x5abf65['id'],'available':_0x5abf65['available'],'loggedIn':_0x5abf65[_0xf5ee('0x45')],'name':_0x5abf65[_0xf5ee('0x4b')],'paused':_0x5abf65[_0xf5ee('0x46')],'waiting':_0x5abf65[_0xf5ee('0x47')]};_0x1a58b0[_0xf5ee('0x1d')](_0x4f8f77);}}_0x166478({'count':_0x1a58b0[_0xf5ee('0x16')],'rows':_0x1a58b0});});},'ChatQueuesWaitingInteractions':function(_0x2858ed){return new Promise(function(_0x33f26b,_0x22508d){var _0x2cc92c=_['values'](_0x2b6953[_0xf5ee('0x4f')]);_0x33f26b({'count':_0x2cc92c[_0xf5ee('0x16')],'rows':_0x2cc92c});});},'MailQueuesWaitingInteractions':function(_0x27f885){return new Promise(function(_0x57ce4e,_0x2434f6){var _0x29f614=_['values'](_0x2b6953[_0xf5ee('0x50')]);_0x57ce4e({'count':_0x29f614[_0xf5ee('0x16')],'rows':_0x29f614});});},'OpenchannelQueuesWaitingInteractions':function(_0x17467e){return new Promise(function(_0xef568c,_0x4bdc18){var _0x33bf78=_[_0xf5ee('0x43')](_0x2b6953[_0xf5ee('0x51')]);_0xef568c({'count':_0x33bf78[_0xf5ee('0x16')],'rows':_0x33bf78});});},'SmsQueuesWaitingInteractions':function(_0x5bb5bf){return new Promise(function(_0x21b6e0,_0x4c5a97){var _0x40c8a2=_[_0xf5ee('0x43')](_0x2b6953[_0xf5ee('0x52')]);_0x21b6e0({'count':_0x40c8a2[_0xf5ee('0x16')],'rows':_0x40c8a2});});},'FaxQueuesWaitingInteractions':function(_0x28298d){return new Promise(function(_0x2f3ac0,_0x10d8d9){var _0x3da380=_['values'](_0x2b6953[_0xf5ee('0x53')]);_0x2f3ac0({'count':_0x3da380['length'],'rows':_0x3da380});});},'WhatsappQueuesWaitingInteractions':function(_0x530543){return new Promise(function(_0x25342b,_0x525e34){var _0x58b78b=_[_0xf5ee('0x43')](_0x2b6953[_0xf5ee('0x54')]);_0x25342b({'count':_0x58b78b[_0xf5ee('0x16')],'rows':_0x58b78b});});}};var _0x218937=jayson['server'](_0x54b0d)['http']();_0x218937['on'](_0xf5ee('0x33'),function(_0x10a166){logger[_0xf5ee('0x33')](JSON[_0xf5ee('0x2f')](_0x10a166));return _0xc41571(_0x10a166);});_0x218937['listen'](0x232c,_0xf5ee('0x55'),function(){console[_0xf5ee('0x56')](_0xf5ee('0x57'),0x232c);return _0x29f616(_0xf5ee('0x58')+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42f1=['indexOf','true','[%s][INTERVAL]\x20%s','some','[%s][INTERVAL]\x20%s\x20%s','join','when','log','\x20|\x20','stack','util','bluebird','jayson/promise','../../../config/logger','routing','client','http','then','error','message','result','catch','condition','rules','info','[%s][INTERVAL]\x20ROUTING\x20STOPPED','stop','length','push','Command'];(function(_0x1b56b,_0x46b215){var _0x3f744a=function(_0x5a05b0){while(--_0x5a05b0){_0x1b56b['push'](_0x1b56b['shift']());}};_0x3f744a(++_0x46b215);}(_0x42f1,0x1ae));var _0x142f=function(_0x178696,_0x52a1fe){_0x178696=_0x178696-0x0;var _0x22486c=_0x42f1[_0x178696];return _0x22486c;};'use strict';var util=require(_0x142f('0x0'));var BPromise=require(_0x142f('0x1'));var jayson=require(_0x142f('0x2'));var _=require('lodash');var logger=require(_0x142f('0x3'))(_0x142f('0x4'));var client=jayson[_0x142f('0x5')][_0x142f('0x6')]({'port':0x232a});function request(_0x27e7aa,_0x4df0e1){return new BPromise(function(_0x1157a5,_0x41ebe3){return client['request'](_0x27e7aa,_0x4df0e1)[_0x142f('0x7')](function(_0x4ab56d){if(_0x4ab56d[_0x142f('0x8')]){return _0x41ebe3(_0x4ab56d[_0x142f('0x8')][_0x142f('0x9')]);}else{return _0x1157a5(_0x4ab56d[_0x142f('0xa')]);}})[_0x142f('0xb')](function(_0x2d13d3){return _0x41ebe3(_0x2d13d3);});});}exports[_0x142f('0xc')]=function(_0x569c67,_0x2826d3,_0x116583){return function(_0x307d42){if(_0x116583[_0x142f('0xd')]&&!_0x116583[_0x142f('0xd')][_0x569c67]){logger[_0x142f('0xe')](_0x142f('0xf'),_0x569c67);return _0x307d42[_0x142f('0x10')]();}var _0x5d6d13=[];for(var _0x136ae3=0x0;_0x136ae3<_0x2826d3[_0x142f('0x11')];_0x136ae3+=0x1){_0x5d6d13[_0x142f('0x12')](request(_0x142f('0x13'),{'command':util['format']('iftime\x20%s',_0x2826d3[_0x136ae3])})[_0x142f('0x7')](function(_0x3ee3fa){return _0x3ee3fa&&_0x3ee3fa[_0x142f('0x9')]&&_0x3ee3fa[_0x142f('0x9')][_0x142f('0x14')](_0x142f('0x15'))>=0x0?!![]:![];})['catch'](function(_0x4ebec8){logger[_0x142f('0x8')](_0x142f('0x16'),_0x569c67,_0x2826d3[_0x136ae3]);}));}BPromise['all'](_0x5d6d13)[_0x142f('0x7')](function(_0x4a1066){var _0x1793a6=_[_0x142f('0x17')](_0x4a1066);logger[_0x142f('0xe')](_0x142f('0x18'),_0x569c67,_0x2826d3[_0x142f('0x19')]('\x20|\x20'),_0x1793a6);_0x307d42[_0x142f('0x1a')](_0x1793a6);})[_0x142f('0xb')](function(_0x26a5a1){console[_0x142f('0x1b')](_0x26a5a1);logger['error'](_0x142f('0x18'),_0x569c67,_0x2826d3['join'](_0x142f('0x1c')),_0x26a5a1[_0x142f('0x1d')]);_0x307d42['stop']();});};};
\ No newline at end of file
+var _0x399b=['request','error','message','result','catch','condition','rules','info','length','push','format','iftime\x20%s','then','true','[%s][INTERVAL]\x20%s','all','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when','log','util','bluebird','jayson/promise','../../../config/logger','routing','client'];(function(_0x2f305f,_0x4b40ce){var _0x28a9c2=function(_0x16ff27){while(--_0x16ff27){_0x2f305f['push'](_0x2f305f['shift']());}};_0x28a9c2(++_0x4b40ce);}(_0x399b,0xa2));var _0xb399=function(_0x413736,_0x4335c8){_0x413736=_0x413736-0x0;var _0x5ba589=_0x399b[_0x413736];return _0x5ba589;};'use strict';var util=require(_0xb399('0x0'));var BPromise=require(_0xb399('0x1'));var jayson=require(_0xb399('0x2'));var _=require('lodash');var logger=require(_0xb399('0x3'))(_0xb399('0x4'));var client=jayson[_0xb399('0x5')]['http']({'port':0x232a});function request(_0x148fa1,_0x33aac1){return new BPromise(function(_0xd0c118,_0x32f398){return client[_0xb399('0x6')](_0x148fa1,_0x33aac1)['then'](function(_0x26e675){if(_0x26e675[_0xb399('0x7')]){return _0x32f398(_0x26e675[_0xb399('0x7')][_0xb399('0x8')]);}else{return _0xd0c118(_0x26e675[_0xb399('0x9')]);}})[_0xb399('0xa')](function(_0x55186c){return _0x32f398(_0x55186c);});});}exports[_0xb399('0xb')]=function(_0x31f40a,_0x2986c7,_0x55ab6a){return function(_0x3790fd){if(_0x55ab6a[_0xb399('0xc')]&&!_0x55ab6a[_0xb399('0xc')][_0x31f40a]){logger[_0xb399('0xd')]('[%s][INTERVAL]\x20ROUTING\x20STOPPED',_0x31f40a);return _0x3790fd['stop']();}var _0x493004=[];for(var _0x499075=0x0;_0x499075<_0x2986c7[_0xb399('0xe')];_0x499075+=0x1){_0x493004[_0xb399('0xf')](request('Command',{'command':util[_0xb399('0x10')](_0xb399('0x11'),_0x2986c7[_0x499075])})[_0xb399('0x12')](function(_0x2db9d0){return _0x2db9d0&&_0x2db9d0[_0xb399('0x8')]&&_0x2db9d0[_0xb399('0x8')]['indexOf'](_0xb399('0x13'))>=0x0?!![]:![];})[_0xb399('0xa')](function(_0x13aece){logger[_0xb399('0x7')](_0xb399('0x14'),_0x31f40a,_0x2986c7[_0x499075]);}));}BPromise[_0xb399('0x15')](_0x493004)['then'](function(_0x464485){var _0x2318a2=_[_0xb399('0x16')](_0x464485);logger[_0xb399('0xd')](_0xb399('0x17'),_0x31f40a,_0x2986c7[_0xb399('0x18')](_0xb399('0x19')),_0x2318a2);_0x3790fd[_0xb399('0x1a')](_0x2318a2);})[_0xb399('0xa')](function(_0x302608){console[_0xb399('0x1b')](_0x302608);logger[_0xb399('0x7')](_0xb399('0x17'),_0x31f40a,_0x2986c7['join']('\x20|\x20'),_0x302608['stack']);_0x3790fd['stop']();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x702d=['error','[%s][agents][agentringnoanswer]','agentringnoanswer','agentringnoanswerAt','now','timeout','reason','holdtime','ringtime','talktime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','agentconnect','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','isNil','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','transferexten','extension','attendedtransfer','[%s][agents][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','secondtransfereruniqueid','ATTENDED','origtransfererexten','transfereeuniqueid','agententerreason','[%s][agents][attendedtransfer]\x20agent:%s','secondtransfererexten','transferuniqueid','transfertargetuniqueid','clone','calleridname','[%s][agents][hangup]','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','diffTime','agent','lodash','util','./utils','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','membername','calleridnum','connectedlinenum','lastevent','getVoiceQueueByName','then','type','agentacw','agentcomplete','acw','acwtime','acwTimeout','request','CreateVoiceAgentReport','agentcalled','debug','[%s][agents][agentcalled]','destuniqueid','agentcalledAt','called','connectedlinename','info'];(function(_0x20036e,_0x304b10){var _0x2e4f4a=function(_0x307aa2){while(--_0x307aa2){_0x20036e['push'](_0x20036e['shift']());}};_0x2e4f4a(++_0x304b10);}(_0x702d,0x147));var _0xd702=function(_0x8dbd53,_0x442432){_0x8dbd53=_0x8dbd53-0x0;var _0x52a0bf=_0x702d[_0x8dbd53];return _0x52a0bf;};'use strict';var _=require(_0xd702('0x0'));var util=require(_0xd702('0x1'));var utils=require(_0xd702('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x33e7c5,_0x37ed5c){utils['info'](util[_0xd702('0x3')](_0xd702('0x4'),_0x33e7c5[_0xd702('0x5')],_0x33e7c5[_0xd702('0x6')],_0x33e7c5['queue'],_0x33e7c5[_0xd702('0x7')],_0x33e7c5['interface'],_0x33e7c5[_0xd702('0x8')],_0x33e7c5[_0xd702('0x9')],_0x33e7c5[_0xd702('0xa')]));if(_0x33e7c5['queue']){utils[_0xd702('0xb')](_0x33e7c5['queue'])[_0xd702('0xc')](function(_0x25423f){if(_0x25423f){_0x33e7c5[_0xd702('0xd')]=_0x25423f[_0xd702('0xd')];_0x33e7c5[_0xd702('0xe')]=_0x33e7c5[_0xd702('0xf')]?_0x25423f[_0xd702('0x10')]:![];_0x33e7c5[_0xd702('0x11')]=_0x33e7c5[_0xd702('0xe')]?_0x25423f[_0xd702('0x12')]:0x0;}utils['request']('CreateVoiceAgentReport',_0x33e7c5);});}else{utils[_0xd702('0x13')](_0xd702('0x14'),_0x33e7c5);}if(_0x37ed5c){delete transfers[_0x33e7c5[_0xd702('0x5')]];}else{delete agents[_0x33e7c5['destuniqueid']];}}exports[_0xd702('0x15')]=function(_0x128add){try{utils[_0xd702('0x16')](util[_0xd702('0x3')](_0xd702('0x17'),_0x128add[_0xd702('0x5')]),_0x128add);agents[_0x128add['destuniqueid']]=_0x128add;agents[_0x128add[_0xd702('0x18')]][_0xd702('0x19')]=utils['now']();agents[_0x128add[_0xd702('0x18')]]['lastevent']=_0xd702('0x1a');agents[_0x128add[_0xd702('0x18')]]['connectedlinenum']=null;agents[_0x128add[_0xd702('0x18')]][_0xd702('0x1b')]=null;utils[_0xd702('0x1c')](util['format']('[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x128add[_0xd702('0x5')],agents[_0x128add['destuniqueid']][_0xd702('0x7')],_0x128add[_0xd702('0x18')]));}catch(_0x37267c){utils[_0xd702('0x1d')](util[_0xd702('0x3')](_0xd702('0x17'),_0x128add[_0xd702('0x5')]),_0x37267c);}};exports['agentringnoanswer']=function(_0x4be140){try{if(!_['isNil'](agents[_0x4be140[_0xd702('0x18')]])){utils[_0xd702('0x16')](util['format'](_0xd702('0x1e'),_0x4be140['uniqueid']),_0x4be140);utils[_0xd702('0x1c')](util['format']('[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout',_0x4be140['uniqueid'],agents[_0x4be140[_0xd702('0x18')]][_0xd702('0x7')],_0x4be140[_0xd702('0x18')]));agents[_0x4be140['destuniqueid']][_0xd702('0x1f')]=!![];agents[_0x4be140[_0xd702('0x18')]][_0xd702('0x20')]=utils[_0xd702('0x21')]();agents[_0x4be140[_0xd702('0x18')]][_0xd702('0xa')]=_0xd702('0x22');agents[_0x4be140[_0xd702('0x18')]][_0xd702('0x23')]='timeout';agents[_0x4be140[_0xd702('0x18')]][_0xd702('0x24')]=_0x4be140[_0xd702('0x25')]?parseInt(_0x4be140[_0xd702('0x25')])/0x3e8:0x0;agents[_0x4be140[_0xd702('0x18')]][_0xd702('0x26')]=0x0;unanswered[_0xd702('0x27')](_0x4be140[_0xd702('0x18')]);}}catch(_0x5f1084){utils['error'](util[_0xd702('0x3')](_0xd702('0x1e'),_0x4be140['uniqueid']),_0x5f1084);}};exports[_0xd702('0x28')]=function(_0xee8bf1){try{_[_0xd702('0x29')](agents,function(_0x2946ae,_0x56e9cd){if(_0x2946ae[_0xd702('0x5')]==_0xee8bf1[_0xd702('0x5')]&&!_[_0xd702('0x2a')](unanswered,_0x2946ae[_0xd702('0x18')])){utils[_0xd702('0x16')](util['format'](_0xd702('0x2b'),_0xee8bf1[_0xd702('0x5')]),_0xee8bf1);utils[_0xd702('0x1c')](util['format'](_0xd702('0x2c'),_0xee8bf1['uniqueid'],_0x2946ae['membername'],_0x2946ae[_0xd702('0x18')]));_0x2946ae[_0xd702('0x1f')]=!![];_0x2946ae[_0xd702('0x20')]=utils['now']();_0x2946ae[_0xd702('0xa')]=_0xd702('0x2d');_0x2946ae['reason']=_0xd702('0x2d');_0x2946ae[_0xd702('0x24')]=_0xee8bf1[_0xd702('0x24')];_0x2946ae[_0xd702('0x26')]=0x0;writeDB(_0x2946ae);}});}catch(_0xa6b40a){utils[_0xd702('0x1d')](util[_0xd702('0x3')](_0xd702('0x2b'),_0xee8bf1[_0xd702('0x5')]),_0xa6b40a);}};exports[_0xd702('0x2e')]=function(_0x9f458b){try{if(agents[_0x9f458b[_0xd702('0x18')]]){utils[_0xd702('0x16')](util['format'](_0xd702('0x2f'),_0x9f458b[_0xd702('0x5')]),_0x9f458b);utils[_0xd702('0x1c')](util[_0xd702('0x3')](_0xd702('0x30'),_0x9f458b[_0xd702('0x5')],agents[_0x9f458b[_0xd702('0x18')]]['membername'],_0x9f458b['destuniqueid']));agents[_0x9f458b[_0xd702('0x18')]][_0xd702('0x31')]=utils['now']();agents[_0x9f458b['destuniqueid']][_0xd702('0x9')]=_0x9f458b[_0xd702('0x9')];agents[_0x9f458b['destuniqueid']][_0xd702('0x1b')]=_0x9f458b[_0xd702('0x1b')];agents[_0x9f458b[_0xd702('0x18')]]['holdtime']=_0x9f458b[_0xd702('0x25')];agents[_0x9f458b[_0xd702('0x18')]][_0xd702('0xa')]='connect';_[_0xd702('0x29')](agents,function(_0x512854,_0x359bbd){if(_0x512854[_0xd702('0x18')]!=_0x9f458b[_0xd702('0x18')]&&_0x512854[_0xd702('0x5')]==_0x9f458b[_0xd702('0x5')]){_0x512854[_0xd702('0x26')]=0x0;_0x512854[_0xd702('0x24')]=_0x9f458b[_0xd702('0x25')];_0x512854['agentringnoanswer']=!![];_0x512854[_0xd702('0x20')]=utils[_0xd702('0x21')]();_0x512854[_0xd702('0xa')]=_0xd702('0x32');_0x512854[_0xd702('0x23')]='answered_elsewhere';_0x512854[_0xd702('0x33')]=_0x9f458b[_0xd702('0x18')];_0x512854[_0xd702('0x34')]=_0x9f458b['membername'];writeDB(_0x512854);}});}}catch(_0xd48ad0){utils[_0xd702('0x1d')](util[_0xd702('0x3')](_0xd702('0x2f'),_0x9f458b['uniqueid']),_0xd48ad0);}};exports[_0xd702('0xf')]=function(_0xfa5e9){try{if(!_[_0xd702('0x35')](agents[_0xfa5e9[_0xd702('0x18')]])){utils[_0xd702('0x16')](util['format'](_0xd702('0x36'),_0xfa5e9[_0xd702('0x5')]),_0xfa5e9);utils['info'](util['format'](_0xd702('0x37'),_0xfa5e9[_0xd702('0x5')],agents[_0xfa5e9[_0xd702('0x18')]][_0xd702('0x7')],_0xfa5e9[_0xd702('0x18')]));agents[_0xfa5e9[_0xd702('0x18')]][_0xd702('0xf')]=!![];agents[_0xfa5e9[_0xd702('0x18')]][_0xd702('0x38')]=utils['now']();agents[_0xfa5e9['destuniqueid']][_0xd702('0x26')]=utils['diffTime'](agents[_0xfa5e9[_0xd702('0x18')]]['agentcompleteAt'],agents[_0xfa5e9[_0xd702('0x18')]]['agentconnectAt']);agents[_0xfa5e9[_0xd702('0x18')]]['reason']=_0xfa5e9[_0xd702('0x23')];agents[_0xfa5e9[_0xd702('0x18')]]['lastevent']=_0xd702('0x39');writeDB(agents[_0xfa5e9[_0xd702('0x18')]]);}}catch(_0x2c0528){utils[_0xd702('0x1d')](util[_0xd702('0x3')]('[%s][agents][agentcomplete]',_0xfa5e9[_0xd702('0x5')]),_0x2c0528);}};exports[_0xd702('0x3a')]=function(_0x2d09be){try{if(!_['isNil'](agents[_0x2d09be[_0xd702('0x3b')]])){utils['debug'](util[_0xd702('0x3')](_0xd702('0x3c'),_0x2d09be[_0xd702('0x5')]),_0x2d09be);utils['info'](util['format'](_0xd702('0x3d'),_0x2d09be[_0xd702('0x5')],agents[_0x2d09be[_0xd702('0x3b')]][_0xd702('0x7')],agents[_0x2d09be[_0xd702('0x3b')]][_0xd702('0x5')]));agents[_0x2d09be[_0xd702('0x3b')]][_0xd702('0x3e')]=!![];agents[_0x2d09be[_0xd702('0x3b')]][_0xd702('0x3f')]='blind';agents[_0x2d09be['transfereruniqueid']][_0xd702('0x40')]=_0x2d09be[_0xd702('0x41')];agents[_0x2d09be[_0xd702('0x3b')]]['transferuniqueid']=agents[_0x2d09be['transfereruniqueid']][_0xd702('0x5')];}}catch(_0x54c7e2){utils[_0xd702('0x1d')](util[_0xd702('0x3')](_0xd702('0x3c'),_0x2d09be[_0xd702('0x5')]),_0x54c7e2);}};exports[_0xd702('0x42')]=function(_0x3cd4c1){try{utils[_0xd702('0x16')](util[_0xd702('0x3')](_0xd702('0x43'),_0x3cd4c1['origtransfereruniqueid']),_0x3cd4c1);if(_0x3cd4c1[_0xd702('0x44')]==_0x3cd4c1[_0xd702('0x45')]){if(!_[_0xd702('0x35')](agents[_0x3cd4c1[_0xd702('0x46')]])){utils['info'](util[_0xd702('0x3')]('[%s][agents][attendedtransfer]\x20agent:%s',_0x3cd4c1[_0xd702('0x44')],agents[_0x3cd4c1['secondtransfereruniqueid']]['membername']));agents[_0x3cd4c1[_0xd702('0x46')]][_0xd702('0x3e')]=!![];agents[_0x3cd4c1[_0xd702('0x46')]][_0xd702('0x3f')]=_0xd702('0x47');agents[_0x3cd4c1[_0xd702('0x46')]]['transferexten']=_0x3cd4c1[_0xd702('0x48')];agents[_0x3cd4c1[_0xd702('0x46')]]['transferuniqueid']=_0x3cd4c1[_0xd702('0x44')];}if(_0x3cd4c1[_0xd702('0x49')]&&agents[_0x3cd4c1[_0xd702('0x49')]]){agents[_0x3cd4c1[_0xd702('0x49')]][_0xd702('0x4a')]=0x1;transfers[_0x3cd4c1[_0xd702('0x49')]]=_['clone'](agents[_0x3cd4c1[_0xd702('0x49')]]);transfers[_0x3cd4c1[_0xd702('0x49')]][_0xd702('0x8')]=agents[_0x3cd4c1[_0xd702('0x46')]][_0xd702('0x8')];transfers[_0x3cd4c1['transfereeuniqueid']]['calleridname']=agents[_0x3cd4c1[_0xd702('0x46')]]['calleridname'];transfers[_0x3cd4c1['transfereeuniqueid']][_0xd702('0x19')]=utils['now']();transfers[_0x3cd4c1[_0xd702('0x49')]][_0xd702('0x31')]=utils[_0xd702('0x21')]();transfers[_0x3cd4c1[_0xd702('0x49')]]['holdtime']=0x0;transfers[_0x3cd4c1[_0xd702('0x49')]]['agententerreason']=0x2;}}else if(_0x3cd4c1[_0xd702('0x46')]==_0x3cd4c1['secondtransfererlinkedid']){if(!_[_0xd702('0x35')](agents[_0x3cd4c1[_0xd702('0x44')]])){utils[_0xd702('0x1c')](util[_0xd702('0x3')](_0xd702('0x4b'),_0x3cd4c1[_0xd702('0x44')],agents[_0x3cd4c1[_0xd702('0x44')]]['membername']));agents[_0x3cd4c1['origtransfereruniqueid']][_0xd702('0x3e')]=!![];agents[_0x3cd4c1['origtransfereruniqueid']][_0xd702('0x3f')]=_0xd702('0x47');agents[_0x3cd4c1['origtransfereruniqueid']][_0xd702('0x40')]=_0x3cd4c1[_0xd702('0x4c')];agents[_0x3cd4c1['origtransfereruniqueid']][_0xd702('0x4d')]=_0x3cd4c1['secondtransfereruniqueid'];}if(_0x3cd4c1[_0xd702('0x4e')]&&agents[_0x3cd4c1[_0xd702('0x4e')]]){agents[_0x3cd4c1[_0xd702('0x4e')]][_0xd702('0x4a')]=0x1;transfers[_0x3cd4c1['transfertargetuniqueid']]=_[_0xd702('0x4f')](agents[_0x3cd4c1[_0xd702('0x4e')]]);transfers[_0x3cd4c1[_0xd702('0x4e')]][_0xd702('0x8')]=agents[_0x3cd4c1[_0xd702('0x44')]]['calleridnum'];transfers[_0x3cd4c1[_0xd702('0x4e')]][_0xd702('0x50')]=agents[_0x3cd4c1[_0xd702('0x44')]][_0xd702('0x50')];transfers[_0x3cd4c1[_0xd702('0x4e')]][_0xd702('0x19')]=utils['now']();transfers[_0x3cd4c1[_0xd702('0x4e')]]['agentconnectAt']=utils[_0xd702('0x21')]();transfers[_0x3cd4c1[_0xd702('0x4e')]][_0xd702('0x24')]=0x0;transfers[_0x3cd4c1[_0xd702('0x4e')]]['agententerreason']=0x2;}}}catch(_0x3e99ff){utils[_0xd702('0x1d')](util[_0xd702('0x3')](_0xd702('0x43'),_0x3cd4c1[_0xd702('0x44')]),_0x3e99ff);}};exports['hangup']=function(_0x5bc3dd){try{utils[_0xd702('0x16')](util[_0xd702('0x3')](_0xd702('0x51'),_0x5bc3dd[_0xd702('0x5')]),_0x5bc3dd);if(agents[_0x5bc3dd[_0xd702('0x5')]]&&agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x23')]===_0xd702('0x22')){if(_0x5bc3dd[_0xd702('0x52')]==='21'){agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x23')]=_0xd702('0x53');agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0xa')]=_0xd702('0x53');}utils[_0xd702('0x1c')](util['format'](_0xd702('0x54'),_0x5bc3dd['uniqueid'],agents[_0x5bc3dd['uniqueid']][_0xd702('0x7')],agents[_0x5bc3dd['uniqueid']][_0xd702('0x23')],agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0xa')]));writeDB(agents[_0x5bc3dd[_0xd702('0x5')]]);var _0x472e5a=unanswered[_0xd702('0x55')](_0x5bc3dd[_0xd702('0x5')]);if(_0x472e5a>-0x1){unanswered[_0xd702('0x56')](_0x472e5a,0x1);}}if(transfers[_0x5bc3dd[_0xd702('0x5')]]){transfers[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0xf')]=!![];transfers[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x38')]=utils[_0xd702('0x21')]();transfers[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x26')]=utils[_0xd702('0x57')](transfers[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x38')],transfers[_0x5bc3dd['uniqueid']][_0xd702('0x31')]);transfers[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x23')]=_0xd702('0x58');transfers[_0x5bc3dd[_0xd702('0x5')]]['lastevent']=_0xd702('0x39');utils[_0xd702('0x1c')](util['format'](_0xd702('0x54'),_0x5bc3dd[_0xd702('0x5')],transfers[_0x5bc3dd[_0xd702('0x5')]]['membername'],transfers[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x23')],transfers[_0x5bc3dd['uniqueid']][_0xd702('0xa')]));writeDB(transfers[_0x5bc3dd[_0xd702('0x5')]],!![]);}if(agents[_0x5bc3dd[_0xd702('0x5')]]&&agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x31')]){agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0xf')]=!![];agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x38')]=utils[_0xd702('0x21')]();agents[_0x5bc3dd[_0xd702('0x5')]]['talktime']=utils[_0xd702('0x57')](agents[_0x5bc3dd[_0xd702('0x5')]]['agentcompleteAt'],agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x31')]);agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x23')]=agents[_0x5bc3dd[_0xd702('0x5')]]['transfer']?'transfer':_0xd702('0x58');agents[_0x5bc3dd['uniqueid']][_0xd702('0xa')]=_0xd702('0x39');utils[_0xd702('0x1c')](util[_0xd702('0x3')](_0xd702('0x54'),_0x5bc3dd['uniqueid'],agents[_0x5bc3dd[_0xd702('0x5')]]['membername'],agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0x23')],agents[_0x5bc3dd[_0xd702('0x5')]][_0xd702('0xa')]));writeDB(agents[_0x5bc3dd[_0xd702('0x5')]]);}}catch(_0x1ea077){utils['error'](util['format'](_0xd702('0x51'),_0x5bc3dd[_0xd702('0x5')]),_0x1ea077);}};
\ No newline at end of file
+var _0x84a0=['transferexten','secondtransfererexten','transfertargetuniqueid','[%s][agents][attendedtransfer]','hangup','[%s][agents][hangup]','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','diffTime','complete','lodash','util','./utils','info','format','channel','queue','interface','calleridnum','connectedlinenum','lastevent','then','type','acw','acwtime','agentacw','acwTimeout','request','CreateVoiceAgentReport','uniqueid','destuniqueid','agentcalled','debug','[%s][agents][agentcalled]','agentcalledAt','now','called','connectedlinename','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','membername','error','agentringnoanswer','isNil','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','reason','timeout','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','holdtime','talktime','agentconnect','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','ringtime','connect','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','agentcomplete','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','blindtransfer','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfereruniqueid','transfer','transfertype','blind','extension','transferuniqueid','attendedtransfer','origtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','secondtransfereruniqueid','ATTENDED','origtransfererexten','transfereeuniqueid','agententerreason','clone','calleridname','secondtransfererlinkedid'];(function(_0x4854d6,_0x2f1264){var _0x3885c0=function(_0x4d564d){while(--_0x4d564d){_0x4854d6['push'](_0x4854d6['shift']());}};_0x3885c0(++_0x2f1264);}(_0x84a0,0x66));var _0x084a=function(_0x35a15d,_0x54963e){_0x35a15d=_0x35a15d-0x0;var _0x5511eb=_0x84a0[_0x35a15d];return _0x5511eb;};'use strict';var _=require(_0x084a('0x0'));var util=require(_0x084a('0x1'));var utils=require(_0x084a('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x1fff7f,_0x483bfa){utils[_0x084a('0x3')](util[_0x084a('0x4')]('[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x1fff7f['uniqueid'],_0x1fff7f[_0x084a('0x5')],_0x1fff7f[_0x084a('0x6')],_0x1fff7f['membername'],_0x1fff7f[_0x084a('0x7')],_0x1fff7f[_0x084a('0x8')],_0x1fff7f[_0x084a('0x9')],_0x1fff7f[_0x084a('0xa')]));if(_0x1fff7f[_0x084a('0x6')]){utils['getVoiceQueueByName'](_0x1fff7f[_0x084a('0x6')])[_0x084a('0xb')](function(_0x8198ad){if(_0x8198ad){_0x1fff7f[_0x084a('0xc')]=_0x8198ad[_0x084a('0xc')];_0x1fff7f['agentacw']=_0x1fff7f['agentcomplete']?_0x8198ad[_0x084a('0xd')]:![];_0x1fff7f[_0x084a('0xe')]=_0x1fff7f[_0x084a('0xf')]?_0x8198ad[_0x084a('0x10')]:0x0;}utils[_0x084a('0x11')]('CreateVoiceAgentReport',_0x1fff7f);});}else{utils['request'](_0x084a('0x12'),_0x1fff7f);}if(_0x483bfa){delete transfers[_0x1fff7f[_0x084a('0x13')]];}else{delete agents[_0x1fff7f[_0x084a('0x14')]];}}exports[_0x084a('0x15')]=function(_0x1bdfb8){try{utils[_0x084a('0x16')](util[_0x084a('0x4')](_0x084a('0x17'),_0x1bdfb8['uniqueid']),_0x1bdfb8);agents[_0x1bdfb8[_0x084a('0x14')]]=_0x1bdfb8;agents[_0x1bdfb8['destuniqueid']][_0x084a('0x18')]=utils[_0x084a('0x19')]();agents[_0x1bdfb8[_0x084a('0x14')]][_0x084a('0xa')]=_0x084a('0x1a');agents[_0x1bdfb8['destuniqueid']][_0x084a('0x9')]=null;agents[_0x1bdfb8['destuniqueid']][_0x084a('0x1b')]=null;utils[_0x084a('0x3')](util['format'](_0x084a('0x1c'),_0x1bdfb8[_0x084a('0x13')],agents[_0x1bdfb8[_0x084a('0x14')]][_0x084a('0x1d')],_0x1bdfb8[_0x084a('0x14')]));}catch(_0x145636){utils[_0x084a('0x1e')](util[_0x084a('0x4')](_0x084a('0x17'),_0x1bdfb8[_0x084a('0x13')]),_0x145636);}};exports[_0x084a('0x1f')]=function(_0x279e25){try{if(!_[_0x084a('0x20')](agents[_0x279e25[_0x084a('0x14')]])){utils[_0x084a('0x16')](util['format'](_0x084a('0x21'),_0x279e25[_0x084a('0x13')]),_0x279e25);utils[_0x084a('0x3')](util[_0x084a('0x4')](_0x084a('0x22'),_0x279e25['uniqueid'],agents[_0x279e25[_0x084a('0x14')]][_0x084a('0x1d')],_0x279e25[_0x084a('0x14')]));agents[_0x279e25[_0x084a('0x14')]][_0x084a('0x1f')]=!![];agents[_0x279e25[_0x084a('0x14')]]['agentringnoanswerAt']=utils[_0x084a('0x19')]();agents[_0x279e25[_0x084a('0x14')]][_0x084a('0xa')]='timeout';agents[_0x279e25[_0x084a('0x14')]][_0x084a('0x23')]=_0x084a('0x24');agents[_0x279e25['destuniqueid']]['holdtime']=_0x279e25['ringtime']?parseInt(_0x279e25['ringtime'])/0x3e8:0x0;agents[_0x279e25[_0x084a('0x14')]]['talktime']=0x0;unanswered['push'](_0x279e25['destuniqueid']);}}catch(_0x3b8176){utils[_0x084a('0x1e')](util[_0x084a('0x4')](_0x084a('0x21'),_0x279e25[_0x084a('0x13')]),_0x3b8176);}};exports[_0x084a('0x25')]=function(_0x378de6){try{_[_0x084a('0x26')](agents,function(_0x5e6ea8,_0x2ed3cd){if(_0x5e6ea8[_0x084a('0x13')]==_0x378de6['uniqueid']&&!_[_0x084a('0x27')](unanswered,_0x5e6ea8[_0x084a('0x14')])){utils[_0x084a('0x16')](util[_0x084a('0x4')](_0x084a('0x28'),_0x378de6[_0x084a('0x13')]),_0x378de6);utils[_0x084a('0x3')](util[_0x084a('0x4')](_0x084a('0x29'),_0x378de6[_0x084a('0x13')],_0x5e6ea8[_0x084a('0x1d')],_0x5e6ea8[_0x084a('0x14')]));_0x5e6ea8[_0x084a('0x1f')]=!![];_0x5e6ea8['agentringnoanswerAt']=utils['now']();_0x5e6ea8[_0x084a('0xa')]=_0x084a('0x2a');_0x5e6ea8[_0x084a('0x23')]=_0x084a('0x2a');_0x5e6ea8[_0x084a('0x2b')]=_0x378de6['holdtime'];_0x5e6ea8[_0x084a('0x2c')]=0x0;writeDB(_0x5e6ea8);}});}catch(_0x1b56ad){utils[_0x084a('0x1e')](util['format'](_0x084a('0x28'),_0x378de6[_0x084a('0x13')]),_0x1b56ad);}};exports[_0x084a('0x2d')]=function(_0x4c4c90){try{if(agents[_0x4c4c90['destuniqueid']]){utils['debug'](util[_0x084a('0x4')](_0x084a('0x2e'),_0x4c4c90[_0x084a('0x13')]),_0x4c4c90);utils['info'](util[_0x084a('0x4')](_0x084a('0x2f'),_0x4c4c90[_0x084a('0x13')],agents[_0x4c4c90[_0x084a('0x14')]][_0x084a('0x1d')],_0x4c4c90[_0x084a('0x14')]));agents[_0x4c4c90[_0x084a('0x14')]][_0x084a('0x30')]=utils[_0x084a('0x19')]();agents[_0x4c4c90[_0x084a('0x14')]][_0x084a('0x9')]=_0x4c4c90[_0x084a('0x9')];agents[_0x4c4c90[_0x084a('0x14')]][_0x084a('0x1b')]=_0x4c4c90[_0x084a('0x1b')];agents[_0x4c4c90['destuniqueid']][_0x084a('0x2b')]=_0x4c4c90[_0x084a('0x31')];agents[_0x4c4c90[_0x084a('0x14')]][_0x084a('0xa')]=_0x084a('0x32');_[_0x084a('0x26')](agents,function(_0xa7b652,_0x183e10){if(_0xa7b652[_0x084a('0x14')]!=_0x4c4c90['destuniqueid']&&_0xa7b652[_0x084a('0x13')]==_0x4c4c90[_0x084a('0x13')]){_0xa7b652[_0x084a('0x2c')]=0x0;_0xa7b652[_0x084a('0x2b')]=_0x4c4c90[_0x084a('0x31')];_0xa7b652[_0x084a('0x1f')]=!![];_0xa7b652['agentringnoanswerAt']=utils[_0x084a('0x19')]();_0xa7b652[_0x084a('0xa')]='answered_elsewhere';_0xa7b652[_0x084a('0x23')]=_0x084a('0x33');_0xa7b652[_0x084a('0x34')]=_0x4c4c90['destuniqueid'];_0xa7b652[_0x084a('0x35')]=_0x4c4c90[_0x084a('0x1d')];writeDB(_0xa7b652);}});}}catch(_0x4fe9c2){utils[_0x084a('0x1e')](util[_0x084a('0x4')]('[%s][agents][agentconnect]',_0x4c4c90['uniqueid']),_0x4fe9c2);}};exports[_0x084a('0x36')]=function(_0x17a8d4){try{if(!_[_0x084a('0x20')](agents[_0x17a8d4[_0x084a('0x14')]])){utils[_0x084a('0x16')](util[_0x084a('0x4')](_0x084a('0x37'),_0x17a8d4[_0x084a('0x13')]),_0x17a8d4);utils[_0x084a('0x3')](util[_0x084a('0x4')](_0x084a('0x38'),_0x17a8d4['uniqueid'],agents[_0x17a8d4['destuniqueid']][_0x084a('0x1d')],_0x17a8d4[_0x084a('0x14')]));agents[_0x17a8d4[_0x084a('0x14')]]['agentcomplete']=!![];agents[_0x17a8d4[_0x084a('0x14')]][_0x084a('0x39')]=utils[_0x084a('0x19')]();agents[_0x17a8d4[_0x084a('0x14')]][_0x084a('0x2c')]=utils['diffTime'](agents[_0x17a8d4[_0x084a('0x14')]]['agentcompleteAt'],agents[_0x17a8d4[_0x084a('0x14')]][_0x084a('0x30')]);agents[_0x17a8d4[_0x084a('0x14')]]['reason']=_0x17a8d4['reason'];agents[_0x17a8d4[_0x084a('0x14')]][_0x084a('0xa')]='complete';writeDB(agents[_0x17a8d4[_0x084a('0x14')]]);}}catch(_0x2c2c2e){utils[_0x084a('0x1e')](util[_0x084a('0x4')]('[%s][agents][agentcomplete]',_0x17a8d4[_0x084a('0x13')]),_0x2c2c2e);}};exports[_0x084a('0x3a')]=function(_0x31677b){try{if(!_[_0x084a('0x20')](agents[_0x31677b['transfereruniqueid']])){utils[_0x084a('0x16')](util[_0x084a('0x4')](_0x084a('0x3b'),_0x31677b[_0x084a('0x13')]),_0x31677b);utils['info'](util['format'](_0x084a('0x3c'),_0x31677b[_0x084a('0x13')],agents[_0x31677b[_0x084a('0x3d')]][_0x084a('0x1d')],agents[_0x31677b[_0x084a('0x3d')]][_0x084a('0x13')]));agents[_0x31677b[_0x084a('0x3d')]][_0x084a('0x3e')]=!![];agents[_0x31677b[_0x084a('0x3d')]][_0x084a('0x3f')]=_0x084a('0x40');agents[_0x31677b[_0x084a('0x3d')]]['transferexten']=_0x31677b[_0x084a('0x41')];agents[_0x31677b[_0x084a('0x3d')]][_0x084a('0x42')]=agents[_0x31677b[_0x084a('0x3d')]][_0x084a('0x13')];}}catch(_0x1c972c){utils[_0x084a('0x1e')](util['format'](_0x084a('0x3b'),_0x31677b[_0x084a('0x13')]),_0x1c972c);}};exports[_0x084a('0x43')]=function(_0x54aa6c){try{utils['debug'](util[_0x084a('0x4')]('[%s][agents][attendedtransfer]',_0x54aa6c[_0x084a('0x44')]),_0x54aa6c);if(_0x54aa6c[_0x084a('0x44')]==_0x54aa6c['origtransfererlinkedid']){if(!_[_0x084a('0x20')](agents[_0x54aa6c['secondtransfereruniqueid']])){utils['info'](util[_0x084a('0x4')](_0x084a('0x45'),_0x54aa6c[_0x084a('0x44')],agents[_0x54aa6c[_0x084a('0x46')]][_0x084a('0x1d')]));agents[_0x54aa6c[_0x084a('0x46')]][_0x084a('0x3e')]=!![];agents[_0x54aa6c['secondtransfereruniqueid']][_0x084a('0x3f')]=_0x084a('0x47');agents[_0x54aa6c[_0x084a('0x46')]]['transferexten']=_0x54aa6c[_0x084a('0x48')];agents[_0x54aa6c[_0x084a('0x46')]][_0x084a('0x42')]=_0x54aa6c[_0x084a('0x44')];}if(_0x54aa6c['transfereeuniqueid']&&agents[_0x54aa6c[_0x084a('0x49')]]){agents[_0x54aa6c['transfereeuniqueid']][_0x084a('0x4a')]=0x1;transfers[_0x54aa6c[_0x084a('0x49')]]=_[_0x084a('0x4b')](agents[_0x54aa6c['transfereeuniqueid']]);transfers[_0x54aa6c['transfereeuniqueid']][_0x084a('0x8')]=agents[_0x54aa6c[_0x084a('0x46')]]['calleridnum'];transfers[_0x54aa6c[_0x084a('0x49')]]['calleridname']=agents[_0x54aa6c['secondtransfereruniqueid']][_0x084a('0x4c')];transfers[_0x54aa6c[_0x084a('0x49')]][_0x084a('0x18')]=utils[_0x084a('0x19')]();transfers[_0x54aa6c[_0x084a('0x49')]][_0x084a('0x30')]=utils[_0x084a('0x19')]();transfers[_0x54aa6c[_0x084a('0x49')]][_0x084a('0x2b')]=0x0;transfers[_0x54aa6c['transfereeuniqueid']][_0x084a('0x4a')]=0x2;}}else if(_0x54aa6c[_0x084a('0x46')]==_0x54aa6c[_0x084a('0x4d')]){if(!_['isNil'](agents[_0x54aa6c[_0x084a('0x44')]])){utils[_0x084a('0x3')](util['format'](_0x084a('0x45'),_0x54aa6c['origtransfereruniqueid'],agents[_0x54aa6c['origtransfereruniqueid']][_0x084a('0x1d')]));agents[_0x54aa6c['origtransfereruniqueid']]['transfer']=!![];agents[_0x54aa6c[_0x084a('0x44')]][_0x084a('0x3f')]=_0x084a('0x47');agents[_0x54aa6c['origtransfereruniqueid']][_0x084a('0x4e')]=_0x54aa6c[_0x084a('0x4f')];agents[_0x54aa6c[_0x084a('0x44')]][_0x084a('0x42')]=_0x54aa6c[_0x084a('0x46')];}if(_0x54aa6c[_0x084a('0x50')]&&agents[_0x54aa6c[_0x084a('0x50')]]){agents[_0x54aa6c['transfertargetuniqueid']]['agententerreason']=0x1;transfers[_0x54aa6c[_0x084a('0x50')]]=_[_0x084a('0x4b')](agents[_0x54aa6c['transfertargetuniqueid']]);transfers[_0x54aa6c[_0x084a('0x50')]][_0x084a('0x8')]=agents[_0x54aa6c[_0x084a('0x44')]][_0x084a('0x8')];transfers[_0x54aa6c['transfertargetuniqueid']][_0x084a('0x4c')]=agents[_0x54aa6c[_0x084a('0x44')]][_0x084a('0x4c')];transfers[_0x54aa6c['transfertargetuniqueid']]['agentcalledAt']=utils[_0x084a('0x19')]();transfers[_0x54aa6c[_0x084a('0x50')]][_0x084a('0x30')]=utils[_0x084a('0x19')]();transfers[_0x54aa6c[_0x084a('0x50')]][_0x084a('0x2b')]=0x0;transfers[_0x54aa6c[_0x084a('0x50')]]['agententerreason']=0x2;}}}catch(_0x22efb6){utils['error'](util['format'](_0x084a('0x51'),_0x54aa6c[_0x084a('0x44')]),_0x22efb6);}};exports[_0x084a('0x52')]=function(_0x4a2745){try{utils[_0x084a('0x16')](util['format'](_0x084a('0x53'),_0x4a2745[_0x084a('0x13')]),_0x4a2745);if(agents[_0x4a2745[_0x084a('0x13')]]&&agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x23')]===_0x084a('0x24')){if(_0x4a2745['cause']==='21'){agents[_0x4a2745['uniqueid']][_0x084a('0x23')]=_0x084a('0x54');agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0xa')]=_0x084a('0x54');}utils[_0x084a('0x3')](util['format'](_0x084a('0x55'),_0x4a2745[_0x084a('0x13')],agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x1d')],agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x23')],agents[_0x4a2745[_0x084a('0x13')]]['lastevent']));writeDB(agents[_0x4a2745[_0x084a('0x13')]]);var _0x38b5b6=unanswered[_0x084a('0x56')](_0x4a2745[_0x084a('0x13')]);if(_0x38b5b6>-0x1){unanswered[_0x084a('0x57')](_0x38b5b6,0x1);}}if(transfers[_0x4a2745[_0x084a('0x13')]]){transfers[_0x4a2745[_0x084a('0x13')]][_0x084a('0x36')]=!![];transfers[_0x4a2745[_0x084a('0x13')]][_0x084a('0x39')]=utils['now']();transfers[_0x4a2745['uniqueid']]['talktime']=utils[_0x084a('0x58')](transfers[_0x4a2745[_0x084a('0x13')]]['agentcompleteAt'],transfers[_0x4a2745[_0x084a('0x13')]][_0x084a('0x30')]);transfers[_0x4a2745[_0x084a('0x13')]][_0x084a('0x23')]='agent';transfers[_0x4a2745['uniqueid']][_0x084a('0xa')]=_0x084a('0x59');utils[_0x084a('0x3')](util[_0x084a('0x4')](_0x084a('0x55'),_0x4a2745[_0x084a('0x13')],transfers[_0x4a2745[_0x084a('0x13')]]['membername'],transfers[_0x4a2745[_0x084a('0x13')]][_0x084a('0x23')],transfers[_0x4a2745[_0x084a('0x13')]][_0x084a('0xa')]));writeDB(transfers[_0x4a2745[_0x084a('0x13')]],!![]);}if(agents[_0x4a2745[_0x084a('0x13')]]&&agents[_0x4a2745[_0x084a('0x13')]]['agentconnectAt']){agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x36')]=!![];agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x39')]=utils[_0x084a('0x19')]();agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x2c')]=utils[_0x084a('0x58')](agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x39')],agents[_0x4a2745[_0x084a('0x13')]]['agentconnectAt']);agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x23')]=agents[_0x4a2745['uniqueid']][_0x084a('0x3e')]?'transfer':'agent';agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0xa')]='complete';utils[_0x084a('0x3')](util[_0x084a('0x4')](_0x084a('0x55'),_0x4a2745[_0x084a('0x13')],agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x1d')],agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0x23')],agents[_0x4a2745[_0x084a('0x13')]][_0x084a('0xa')]));writeDB(agents[_0x4a2745[_0x084a('0x13')]]);}}catch(_0x7c85e3){utils[_0x084a('0x1e')](util[_0x084a('0x4')](_0x084a('0x53'),_0x4a2745['uniqueid']),_0x7c85e3);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1585=['cdr','split','substring','lastIndexOf','noop','gotoif','application','util','./utils','./transfers.controller','FAILED','NO\x20ANSWER','ANSWERED','uniqueid','transfereeuniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','queue','membername','interface','lastevent','accountcode','getUserByInternal','then','request','CreateVoiceCallReport','debug','OutgoingSpoolFailed','[%s][calls][newchannel]\x20context:%s\x20exten:%s','context','exten','calleridnum','now','error','[%s][calls][newchannel]','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','source','value','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','appdata','toLowerCase','set'];(function(_0x2f68ca,_0x5d89c7){var _0x5d172f=function(_0x1a5e48){while(--_0x1a5e48){_0x2f68ca['push'](_0x2f68ca['shift']());}};_0x5d172f(++_0x5d89c7);}(_0x1585,0x70));var _0x5158=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x1585[_0x3b380d];return _0x54502b;};'use strict';var _=require('lodash');var util=require(_0x5158('0x0'));var utils=require(_0x5158('0x1'));var transfers=require(_0x5158('0x2'));var dispositions=['NO\x20ANSWER','FAILED',_0x5158('0x3'),_0x5158('0x4'),_0x5158('0x4'),'NO\x20ANSWER',_0x5158('0x5'),'BUSY',_0x5158('0x3'),_0x5158('0x3'),_0x5158('0x3')];var channels={};function writeDB(_0x30917f){var _0x1117cb;if(transfers['blinds'][_0x30917f['uniqueid']]){_0x1117cb=_0x30917f[_0x5158('0x6')];_0x30917f[_0x5158('0x6')]=transfers['blinds'][_0x30917f['uniqueid']][_0x5158('0x7')];}utils[_0x5158('0x8')](util[_0x5158('0x9')](_0x5158('0xa'),_0x30917f[_0x5158('0x6')],_0x30917f[_0x5158('0xb')],_0x30917f[_0x5158('0xc')],_0x30917f[_0x5158('0xd')],_0x30917f[_0x5158('0xe')],_0x30917f['calleridnum'],_0x30917f['connectedlinenum'],_0x30917f[_0x5158('0xf')]));if(_0x30917f[_0x5158('0x10')]){utils[_0x5158('0x11')](_0x30917f[_0x5158('0x10')])[_0x5158('0x12')](function(_0x40701e){if(_0x40701e){_0x30917f['UserId']=_0x40701e['id'];}utils[_0x5158('0x13')](_0x5158('0x14'),_0x30917f);});}else{utils[_0x5158('0x13')](_0x5158('0x14'),_0x30917f);}if(channels[_0x30917f[_0x5158('0x6')]]){delete channels[_0x30917f[_0x5158('0x6')]];}else if(_0x1117cb&&channels[_0x1117cb]){delete transfers['blinds'][_0x1117cb];delete channels[_0x1117cb];}}exports['newchannel']=function(_0xdb3ef6){try{utils[_0x5158('0x15')](util[_0x5158('0x9')]('[%s][calls][newchannel]',_0xdb3ef6[_0x5158('0x6')]),_0xdb3ef6);if(_0xdb3ef6[_0x5158('0x6')]==_0xdb3ef6['linkedid']&&_0xdb3ef6[_0x5158('0xb')]!=_0x5158('0x16')){utils['info'](util[_0x5158('0x9')](_0x5158('0x17'),_0xdb3ef6['uniqueid'],_0xdb3ef6[_0x5158('0x18')],_0xdb3ef6[_0x5158('0x19')]));channels[_0xdb3ef6[_0x5158('0x6')]]={'uniqueid':_0xdb3ef6[_0x5158('0x6')],'accountcode':_0xdb3ef6['accountcode'],'source':_0xdb3ef6[_0x5158('0x1a')],'destination':_0xdb3ef6[_0x5158('0x19')],'destinationcontext':_0xdb3ef6['context'],'channel':_0xdb3ef6['channel'],'starttime':utils[_0x5158('0x1b')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':'DOCUMENTATION'};}}catch(_0x1ba35f){utils[_0x5158('0x1c')](util['format'](_0x5158('0x1d'),_0xdb3ef6['uniqueid']),_0x1ba35f);}};exports[_0x5158('0x1e')]=function(_0x2b7b19){try{utils[_0x5158('0x15')](util['format'](_0x5158('0x1f'),_0x2b7b19[_0x5158('0x6')]),_0x2b7b19);if(!_[_0x5158('0x20')](channels[_0x2b7b19[_0x5158('0x6')]])&&_0x2b7b19[_0x5158('0x21')]==0x6){utils['info'](util[_0x5158('0x9')](_0x5158('0x22'),_0x2b7b19[_0x5158('0x6')],_0x2b7b19[_0x5158('0x18')],_0x2b7b19[_0x5158('0xb')]));if(_[_0x5158('0x20')](channels[_0x2b7b19[_0x5158('0x6')]][_0x5158('0x23')])){channels[_0x2b7b19[_0x5158('0x6')]][_0x5158('0x23')]=utils[_0x5158('0x1b')]();}}else if(!_[_0x5158('0x20')](channels[_0x2b7b19[_0x5158('0x24')]])&&_0x2b7b19[_0x5158('0x21')]==0x6&&_0x2b7b19[_0x5158('0x18')]!=_0x5158('0x25')){utils['info'](util[_0x5158('0x9')](_0x5158('0x26'),_0x2b7b19[_0x5158('0x6')],_0x2b7b19['linkedid'],_0x2b7b19['context'],_0x2b7b19[_0x5158('0xb')]));channels[_0x2b7b19[_0x5158('0x24')]][_0x5158('0x10')]=_0x2b7b19[_0x5158('0x10')];channels[_0x2b7b19['linkedid']][_0x5158('0x27')]=_0x2b7b19[_0x5158('0xb')];if(_[_0x5158('0x20')](channels[_0x2b7b19[_0x5158('0x24')]][_0x5158('0x28')])){channels[_0x2b7b19[_0x5158('0x24')]][_0x5158('0x28')]=utils[_0x5158('0x1b')]();}channels[_0x2b7b19[_0x5158('0x24')]][_0x5158('0x29')]=dispositions[_[_0x5158('0x2a')](_0x2b7b19[_0x5158('0x21')])]||_0x5158('0x5');}}catch(_0x1dc3c9){utils[_0x5158('0x1c')](util['format']('[%s][calls][newstate]',_0x2b7b19[_0x5158('0x6')]),_0x1dc3c9);}};exports[_0x5158('0x2b')]=function(_0x597197){try{if(!_['isNil'](channels[_0x597197[_0x5158('0x6')]])){utils[_0x5158('0x15')](util[_0x5158('0x9')](_0x5158('0x2c'),_0x597197[_0x5158('0x6')]),_0x597197);if(_['isNil'](channels[_0x597197['uniqueid']][_0x5158('0x2d')])){channels[_0x597197['uniqueid']][_0x5158('0x2d')]=_0x597197['calleridname']+'\x20<'+_0x597197[_0x5158('0x1a')]+'>';}utils[_0x5158('0x8')](util['format'](_0x5158('0x2e'),_0x597197[_0x5158('0x6')],channels[_0x597197[_0x5158('0x6')]][_0x5158('0x2d')],_0x597197[_0x5158('0x2f')]));channels[_0x597197[_0x5158('0x6')]][_0x5158('0x30')]=utils[_0x5158('0x1b')]();channels[_0x597197[_0x5158('0x6')]][_0x5158('0x31')]=utils[_0x5158('0x32')](channels[_0x597197[_0x5158('0x6')]][_0x5158('0x30')],channels[_0x597197[_0x5158('0x6')]][_0x5158('0x33')]);channels[_0x597197[_0x5158('0x6')]][_0x5158('0x34')]=channels[_0x597197[_0x5158('0x6')]]['answertime']?utils[_0x5158('0x32')](channels[_0x597197[_0x5158('0x6')]][_0x5158('0x30')],channels[_0x597197[_0x5158('0x6')]]['answertime']):0x0;writeDB(channels[_0x597197[_0x5158('0x6')]]);}}catch(_0x2b28bb){utils['error'](util[_0x5158('0x9')](_0x5158('0x2c'),_0x597197[_0x5158('0x6')]),_0x2b28bb);}};exports['attendedtransfer']=function(_0x27cc0a){try{if(!_[_0x5158('0x20')](channels[_0x27cc0a['localtwolinkedid']])){utils['debug'](util[_0x5158('0x9')](_0x5158('0x35'),_0x27cc0a[_0x5158('0x36')]),_0x27cc0a);if(channels[_0x27cc0a[_0x5158('0x37')]][_0x5158('0xb')]==_0x27cc0a['transfereechannel']){utils['info'](util[_0x5158('0x9')](_0x5158('0x38'),_0x27cc0a[_0x5158('0x36')],_0x27cc0a[_0x5158('0x37')],_0x27cc0a[_0x5158('0x39')]));channels[_0x27cc0a['localtwolinkedid']][_0x5158('0x27')]=_0x27cc0a[_0x5158('0x39')];channels[_0x27cc0a['localtwolinkedid']][_0x5158('0x3a')]=_0x5158('0x3b');}else if(channels[_0x27cc0a[_0x5158('0x37')]]['channel']=_0x27cc0a[_0x5158('0x3c')]){utils[_0x5158('0x8')](util[_0x5158('0x9')](_0x5158('0x38'),_0x27cc0a[_0x5158('0x36')],_0x27cc0a[_0x5158('0x37')],_0x27cc0a['origtransfererchannel']));channels[_0x27cc0a[_0x5158('0x37')]]['destinationchannel']=_0x27cc0a[_0x5158('0x3d')];channels[_0x27cc0a[_0x5158('0x37')]][_0x5158('0x3a')]=_0x5158('0x3b');}}}catch(_0xe0eea7){utils[_0x5158('0x1c')](util['format'](_0x5158('0x35'),_0x27cc0a[_0x5158('0x36')]),_0xe0eea7);}};exports[_0x5158('0x3e')]=function(_0x33c6ef){try{if(!_[_0x5158('0x20')](channels[_0x33c6ef['uniqueid']])){utils[_0x5158('0x15')](util[_0x5158('0x9')](_0x5158('0x3f'),_0x33c6ef[_0x5158('0x6')]),_0x33c6ef);channels[_0x33c6ef[_0x5158('0x6')]][_0x5158('0x40')]=utils[_0x5158('0x1b')]();utils[_0x5158('0x8')](util[_0x5158('0x9')]('[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s',_0x33c6ef[_0x5158('0x6')],channels[_0x33c6ef[_0x5158('0x6')]][_0x5158('0x40')]));}}catch(_0xff22db){utils['error'](util[_0x5158('0x9')]('[%s][calls][musiconholdstart]',_0x33c6ef[_0x5158('0x6')]),_0xff22db);}};exports[_0x5158('0x41')]=function(_0x1a5e97){try{if(!_[_0x5158('0x20')](channels[_0x1a5e97[_0x5158('0x6')]])){utils[_0x5158('0x15')](util[_0x5158('0x9')](_0x5158('0x42'),_0x1a5e97['uniqueid']),_0x1a5e97);if(!_[_0x5158('0x20')](channels[_0x1a5e97['uniqueid']][_0x5158('0x40')])){channels[_0x1a5e97[_0x5158('0x6')]][_0x5158('0x43')]+=utils['diffTime'](utils[_0x5158('0x1b')](),channels[_0x1a5e97[_0x5158('0x6')]]['musiconholdstartAt']);utils[_0x5158('0x8')](util['format'](_0x5158('0x44'),_0x1a5e97[_0x5158('0x6')],channels[_0x1a5e97[_0x5158('0x6')]]['mohtime']));delete channels[_0x1a5e97[_0x5158('0x6')]]['musiconholdstartAt'];}}}catch(_0x3feddc){utils[_0x5158('0x1c')](util[_0x5158('0x9')](_0x5158('0x42'),_0x1a5e97[_0x5158('0x6')]),_0x3feddc);}};exports[_0x5158('0x45')]=function(_0x2bb015){try{if(!_['isNil'](channels[_0x2bb015[_0x5158('0x6')]])){utils[_0x5158('0x15')](util[_0x5158('0x9')](_0x5158('0x46'),_0x2bb015[_0x5158('0x6')]),_0x2bb015);if(!_['isNil'](_0x2bb015[_0x5158('0x47')]['xmd-originatecalleridnum'])){utils[_0x5158('0x8')](util[_0x5158('0x9')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x2bb015[_0x5158('0x6')],_0x2bb015['value']));channels[_0x2bb015[_0x5158('0x6')]][_0x5158('0x48')]=_0x2bb015[_0x5158('0x49')];}if(!_[_0x5158('0x20')](_0x2bb015[_0x5158('0x47')][_0x5158('0x4a')])){utils['info'](util[_0x5158('0x9')](_0x5158('0x4b'),_0x2bb015['uniqueid'],_0x2bb015[_0x5158('0x49')]));channels[_0x2bb015[_0x5158('0x6')]]['destination']=_0x2bb015[_0x5158('0x49')];channels[_0x2bb015[_0x5158('0x6')]][_0x5158('0x2d')]='\x22'+_0x2bb015['value']+_0x5158('0x4c')+_0x2bb015['value']+'>';}if(!_[_0x5158('0x20')](_0x2bb015[_0x5158('0x47')][_0x5158('0x4d')])||!_['isNil'](_0x2bb015['variable'][_0x5158('0x4e')])){utils[_0x5158('0x8')](util[_0x5158('0x9')](_0x5158('0x4f'),_0x2bb015[_0x5158('0x6')],!_['isNil'](_0x2bb015[_0x5158('0x47')][_0x5158('0x4d')])?_0x5158('0x4d'):_0x5158('0x4e'),_0x2bb015['value']));channels[_0x2bb015[_0x5158('0x6')]][_0x5158('0x2d')]=_0x2bb015[_0x5158('0x49')];}if(!_[_0x5158('0x20')](_0x2bb015['variable'][_0x5158('0x50')])||!_[_0x5158('0x20')](_0x2bb015['variable']['xmcs-queue'])){utils['info'](util[_0x5158('0x9')](_0x5158('0x4f'),_0x2bb015[_0x5158('0x6')],!_['isNil'](_0x2bb015[_0x5158('0x47')][_0x5158('0x50')])?_0x5158('0x50'):_0x5158('0x51'),_0x2bb015[_0x5158('0x49')]));channels[_0x2bb015['uniqueid']][_0x5158('0x52')]=_0x5158('0x53');channels[_0x2bb015['uniqueid']][_0x5158('0x54')]=_0x2bb015[_0x5158('0x49')];channels[_0x2bb015[_0x5158('0x6')]][_0x5158('0xc')]=!![];}if(!_[_0x5158('0x20')](_0x2bb015[_0x5158('0x47')][_0x5158('0x55')])){utils[_0x5158('0x8')](util[_0x5158('0x9')](_0x5158('0x56'),_0x2bb015[_0x5158('0x6')],_0x2bb015['value']));channels[_0x2bb015[_0x5158('0x6')]]['ContactId']=_0x2bb015[_0x5158('0x49')];}if(!_[_0x5158('0x20')](_0x2bb015[_0x5158('0x47')]['xmd-cdrtype'])){utils['info'](util[_0x5158('0x9')](_0x5158('0x57'),_0x2bb015['uniqueid'],_0x2bb015[_0x5158('0x49')]));channels[_0x2bb015[_0x5158('0x6')]]['type']=_0x2bb015[_0x5158('0x49')];}if(!_['isNil'](_0x2bb015[_0x5158('0x47')]['outboundrouteid'])){utils[_0x5158('0x8')](util['format'](_0x5158('0x58'),_0x2bb015[_0x5158('0x6')],_0x2bb015[_0x5158('0x49')]));channels[_0x2bb015[_0x5158('0x6')]][_0x5158('0x59')]=_0x2bb015[_0x5158('0x49')];}if(!_['isNil'](_0x2bb015[_0x5158('0x47')][_0x5158('0x5a')])){utils[_0x5158('0x8')](util['format'](_0x5158('0x5b'),_0x2bb015[_0x5158('0x6')],_0x2bb015[_0x5158('0x49')]));channels[_0x2bb015[_0x5158('0x6')]][_0x5158('0x5a')]=_0x2bb015[_0x5158('0x49')];}}}catch(_0x46617a){utils[_0x5158('0x1c')](util[_0x5158('0x9')](_0x5158('0x46'),_0x2bb015['uniqueid']),_0x46617a);}};exports[_0x5158('0x5c')]=function(_0xc091ba){try{if(!_[_0x5158('0x20')](channels[_0xc091ba[_0x5158('0x6')]])){utils[_0x5158('0x15')](util[_0x5158('0x9')](_0x5158('0x5d'),_0xc091ba[_0x5158('0x6')]),_0xc091ba);utils[_0x5158('0x8')](util[_0x5158('0x9')](_0x5158('0x5e'),_0xc091ba['uniqueid'],_0xc091ba['application'],_0xc091ba[_0x5158('0x5f')]));if(_0xc091ba['application'][_0x5158('0x60')]()==_0x5158('0x61')&&_['startsWith'](_0xc091ba[_0x5158('0x5f')][_0x5158('0x60')](),_0x5158('0x62'))){var _0x503c99=_0xc091ba[_0x5158('0x5f')][_0x5158('0x63')]('=');var _0x1f4a15=_0x503c99[0x0][_0x5158('0x64')](_0x503c99[0x0][_0x5158('0x65')]('(')+0x1,_0x503c99[0x0][_0x5158('0x65')](')'));var _0x25ec8b=_0x503c99[0x1];channels[_0xc091ba['uniqueid']][_0x1f4a15]=_0x25ec8b;}if(!_['includes']([_0x5158('0x2b'),_0x5158('0x66'),'execif',_0x5158('0x61'),_0x5158('0x67')],_0xc091ba[_0x5158('0x68')][_0x5158('0x60')]())){channels[_0xc091ba[_0x5158('0x6')]][_0x5158('0x52')]=_0xc091ba[_0x5158('0x68')];channels[_0xc091ba[_0x5158('0x6')]][_0x5158('0x54')]=_0xc091ba[_0x5158('0x5f')];}}}catch(_0xb8d00c){utils[_0x5158('0x1c')](util[_0x5158('0x9')]('[%s][calls][newexten]',_0xc091ba[_0x5158('0x6')]),_0xb8d00c);}};
\ No newline at end of file
+var _0x1b5b=['request','CreateVoiceCallReport','newchannel','debug','linkedid','OutgoingSpoolFailed','context','exten','calleridnum','now','DOCUMENTATION','error','newstate','[%s][calls][newstate]','[%s][calls][newstate]\x20context:%s\x20channel:%s','isNil','systemanswertime','channelstate','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','duration','diffTime','billableseconds','endtime','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstartAt','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','variable','value','source','xmd-phone','destination','\x22\x20<','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastapplication','Queue','lastdata','queue','xmd-contactid','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','[%s][calls][varset]','newexten','[%s][calls][newexten]','application','toLowerCase','set','startsWith','appdata','split','substring','lastIndexOf','includes','noop','execif','gotoif','lodash','FAILED','NO\x20ANSWER','ANSWERED','blinds','uniqueid','info','format','[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','channel','membername','interface','connectedlinenum','lastevent','accountcode','getUserByInternal','UserId'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x1b5b,0xc3));var _0xb1b5=function(_0x868b7c,_0xfa438b){_0x868b7c=_0x868b7c-0x0;var _0x21683c=_0x1b5b[_0x868b7c];return _0x21683c;};'use strict';var _=require(_0xb1b5('0x0'));var util=require('util');var utils=require('./utils');var transfers=require('./transfers.controller');var dispositions=['NO\x20ANSWER',_0xb1b5('0x1'),'FAILED',_0xb1b5('0x2'),_0xb1b5('0x2'),_0xb1b5('0x2'),_0xb1b5('0x3'),'BUSY',_0xb1b5('0x1'),_0xb1b5('0x1'),_0xb1b5('0x1')];var channels={};function writeDB(_0x1f6842){var _0x33432f;if(transfers[_0xb1b5('0x4')][_0x1f6842[_0xb1b5('0x5')]]){_0x33432f=_0x1f6842[_0xb1b5('0x5')];_0x1f6842[_0xb1b5('0x5')]=transfers[_0xb1b5('0x4')][_0x1f6842[_0xb1b5('0x5')]]['transfereeuniqueid'];}utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')](_0xb1b5('0x8'),_0x1f6842[_0xb1b5('0x5')],_0x1f6842[_0xb1b5('0x9')],_0x1f6842['queue'],_0x1f6842[_0xb1b5('0xa')],_0x1f6842[_0xb1b5('0xb')],_0x1f6842['calleridnum'],_0x1f6842[_0xb1b5('0xc')],_0x1f6842[_0xb1b5('0xd')]));if(_0x1f6842[_0xb1b5('0xe')]){utils[_0xb1b5('0xf')](_0x1f6842['accountcode'])['then'](function(_0xd2da3){if(_0xd2da3){_0x1f6842[_0xb1b5('0x10')]=_0xd2da3['id'];}utils[_0xb1b5('0x11')](_0xb1b5('0x12'),_0x1f6842);});}else{utils[_0xb1b5('0x11')]('CreateVoiceCallReport',_0x1f6842);}if(channels[_0x1f6842[_0xb1b5('0x5')]]){delete channels[_0x1f6842[_0xb1b5('0x5')]];}else if(_0x33432f&&channels[_0x33432f]){delete transfers[_0xb1b5('0x4')][_0x33432f];delete channels[_0x33432f];}}exports[_0xb1b5('0x13')]=function(_0x24d122){try{utils[_0xb1b5('0x14')](util[_0xb1b5('0x7')]('[%s][calls][newchannel]',_0x24d122[_0xb1b5('0x5')]),_0x24d122);if(_0x24d122[_0xb1b5('0x5')]==_0x24d122[_0xb1b5('0x15')]&&_0x24d122[_0xb1b5('0x9')]!=_0xb1b5('0x16')){utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x24d122[_0xb1b5('0x5')],_0x24d122[_0xb1b5('0x17')],_0x24d122[_0xb1b5('0x18')]));channels[_0x24d122[_0xb1b5('0x5')]]={'uniqueid':_0x24d122[_0xb1b5('0x5')],'accountcode':_0x24d122[_0xb1b5('0xe')],'source':_0x24d122[_0xb1b5('0x19')],'destination':_0x24d122[_0xb1b5('0x18')],'destinationcontext':_0x24d122[_0xb1b5('0x17')],'channel':_0x24d122[_0xb1b5('0x9')],'starttime':utils[_0xb1b5('0x1a')](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0xb1b5('0x2'),'amaflags':_0xb1b5('0x1b')};}}catch(_0x2b783f){utils[_0xb1b5('0x1c')](util[_0xb1b5('0x7')]('[%s][calls][newchannel]',_0x24d122['uniqueid']),_0x2b783f);}};exports[_0xb1b5('0x1d')]=function(_0x3eba6b){try{utils[_0xb1b5('0x14')](util[_0xb1b5('0x7')](_0xb1b5('0x1e'),_0x3eba6b['uniqueid']),_0x3eba6b);if(!_['isNil'](channels[_0x3eba6b[_0xb1b5('0x5')]])&&_0x3eba6b['channelstate']==0x6){utils[_0xb1b5('0x6')](util['format'](_0xb1b5('0x1f'),_0x3eba6b[_0xb1b5('0x5')],_0x3eba6b[_0xb1b5('0x17')],_0x3eba6b[_0xb1b5('0x9')]));if(_[_0xb1b5('0x20')](channels[_0x3eba6b[_0xb1b5('0x5')]][_0xb1b5('0x21')])){channels[_0x3eba6b[_0xb1b5('0x5')]][_0xb1b5('0x21')]=utils[_0xb1b5('0x1a')]();}}else if(!_['isNil'](channels[_0x3eba6b['linkedid']])&&_0x3eba6b[_0xb1b5('0x22')]==0x6&&_0x3eba6b[_0xb1b5('0x17')]!=_0xb1b5('0x23')){utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')](_0xb1b5('0x24'),_0x3eba6b[_0xb1b5('0x5')],_0x3eba6b[_0xb1b5('0x15')],_0x3eba6b[_0xb1b5('0x17')],_0x3eba6b[_0xb1b5('0x9')]));channels[_0x3eba6b[_0xb1b5('0x15')]][_0xb1b5('0xe')]=_0x3eba6b[_0xb1b5('0xe')];channels[_0x3eba6b[_0xb1b5('0x15')]][_0xb1b5('0x25')]=_0x3eba6b[_0xb1b5('0x9')];if(_[_0xb1b5('0x20')](channels[_0x3eba6b[_0xb1b5('0x15')]][_0xb1b5('0x26')])){channels[_0x3eba6b[_0xb1b5('0x15')]][_0xb1b5('0x26')]=utils['now']();}channels[_0x3eba6b['linkedid']][_0xb1b5('0x27')]=dispositions[_[_0xb1b5('0x28')](_0x3eba6b[_0xb1b5('0x22')])]||'ANSWERED';}}catch(_0x28e563){utils['error'](util[_0xb1b5('0x7')]('[%s][calls][newstate]',_0x3eba6b['uniqueid']),_0x28e563);}};exports[_0xb1b5('0x29')]=function(_0x3d103c){try{if(!_[_0xb1b5('0x20')](channels[_0x3d103c[_0xb1b5('0x5')]])){utils[_0xb1b5('0x14')](util[_0xb1b5('0x7')](_0xb1b5('0x2a'),_0x3d103c[_0xb1b5('0x5')]),_0x3d103c);if(_[_0xb1b5('0x20')](channels[_0x3d103c[_0xb1b5('0x5')]][_0xb1b5('0x2b')])){channels[_0x3d103c[_0xb1b5('0x5')]][_0xb1b5('0x2b')]=_0x3d103c[_0xb1b5('0x2c')]+'\x20<'+_0x3d103c['calleridnum']+'>';}utils['info'](util[_0xb1b5('0x7')](_0xb1b5('0x2d'),_0x3d103c[_0xb1b5('0x5')],channels[_0x3d103c['uniqueid']][_0xb1b5('0x2b')],_0x3d103c['cause-txt']));channels[_0x3d103c[_0xb1b5('0x5')]]['endtime']=utils[_0xb1b5('0x1a')]();channels[_0x3d103c[_0xb1b5('0x5')]][_0xb1b5('0x2e')]=utils[_0xb1b5('0x2f')](channels[_0x3d103c[_0xb1b5('0x5')]]['endtime'],channels[_0x3d103c[_0xb1b5('0x5')]]['starttime']);channels[_0x3d103c[_0xb1b5('0x5')]][_0xb1b5('0x30')]=channels[_0x3d103c[_0xb1b5('0x5')]][_0xb1b5('0x26')]?utils[_0xb1b5('0x2f')](channels[_0x3d103c[_0xb1b5('0x5')]][_0xb1b5('0x31')],channels[_0x3d103c['uniqueid']][_0xb1b5('0x26')]):0x0;writeDB(channels[_0x3d103c[_0xb1b5('0x5')]]);}}catch(_0x2521d3){utils[_0xb1b5('0x1c')](util['format'](_0xb1b5('0x2a'),_0x3d103c[_0xb1b5('0x5')]),_0x2521d3);}};exports[_0xb1b5('0x32')]=function(_0x2f99bb){try{if(!_[_0xb1b5('0x20')](channels[_0x2f99bb[_0xb1b5('0x33')]])){utils['debug'](util[_0xb1b5('0x7')](_0xb1b5('0x34'),_0x2f99bb[_0xb1b5('0x35')]),_0x2f99bb);if(channels[_0x2f99bb['localtwolinkedid']][_0xb1b5('0x9')]==_0x2f99bb[_0xb1b5('0x36')]){utils['info'](util['format'](_0xb1b5('0x37'),_0x2f99bb[_0xb1b5('0x35')],_0x2f99bb[_0xb1b5('0x33')],_0x2f99bb[_0xb1b5('0x38')]));channels[_0x2f99bb[_0xb1b5('0x33')]][_0xb1b5('0x25')]=_0x2f99bb[_0xb1b5('0x38')];channels[_0x2f99bb['localtwolinkedid']][_0xb1b5('0x39')]=_0xb1b5('0x3a');}else if(channels[_0x2f99bb[_0xb1b5('0x33')]]['channel']=_0x2f99bb[_0xb1b5('0x3b')]){utils[_0xb1b5('0x6')](util['format'](_0xb1b5('0x37'),_0x2f99bb['origtransfereruniqueid'],_0x2f99bb[_0xb1b5('0x33')],_0x2f99bb[_0xb1b5('0x3c')]));channels[_0x2f99bb[_0xb1b5('0x33')]]['destinationchannel']=_0x2f99bb[_0xb1b5('0x3c')];channels[_0x2f99bb[_0xb1b5('0x33')]][_0xb1b5('0x39')]=_0xb1b5('0x3a');}}}catch(_0x446eec){utils[_0xb1b5('0x1c')](util[_0xb1b5('0x7')](_0xb1b5('0x34'),_0x2f99bb[_0xb1b5('0x35')]),_0x446eec);}};exports[_0xb1b5('0x3d')]=function(_0x124aaf){try{if(!_[_0xb1b5('0x20')](channels[_0x124aaf[_0xb1b5('0x5')]])){utils[_0xb1b5('0x14')](util[_0xb1b5('0x7')](_0xb1b5('0x3e'),_0x124aaf[_0xb1b5('0x5')]),_0x124aaf);channels[_0x124aaf['uniqueid']]['musiconholdstartAt']=utils[_0xb1b5('0x1a')]();utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')](_0xb1b5('0x3f'),_0x124aaf[_0xb1b5('0x5')],channels[_0x124aaf[_0xb1b5('0x5')]][_0xb1b5('0x40')]));}}catch(_0x4ce97a){utils[_0xb1b5('0x1c')](util[_0xb1b5('0x7')](_0xb1b5('0x3e'),_0x124aaf[_0xb1b5('0x5')]),_0x4ce97a);}};exports[_0xb1b5('0x41')]=function(_0x4cfce7){try{if(!_[_0xb1b5('0x20')](channels[_0x4cfce7[_0xb1b5('0x5')]])){utils[_0xb1b5('0x14')](util['format'](_0xb1b5('0x42'),_0x4cfce7[_0xb1b5('0x5')]),_0x4cfce7);if(!_[_0xb1b5('0x20')](channels[_0x4cfce7[_0xb1b5('0x5')]][_0xb1b5('0x40')])){channels[_0x4cfce7['uniqueid']][_0xb1b5('0x43')]+=utils[_0xb1b5('0x2f')](utils[_0xb1b5('0x1a')](),channels[_0x4cfce7[_0xb1b5('0x5')]][_0xb1b5('0x40')]);utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')](_0xb1b5('0x44'),_0x4cfce7[_0xb1b5('0x5')],channels[_0x4cfce7[_0xb1b5('0x5')]][_0xb1b5('0x43')]));delete channels[_0x4cfce7[_0xb1b5('0x5')]][_0xb1b5('0x40')];}}}catch(_0x4fa2d5){utils[_0xb1b5('0x1c')](util[_0xb1b5('0x7')](_0xb1b5('0x42'),_0x4cfce7[_0xb1b5('0x5')]),_0x4fa2d5);}};exports['varset']=function(_0x1e18a6){try{if(!_[_0xb1b5('0x20')](channels[_0x1e18a6[_0xb1b5('0x5')]])){utils[_0xb1b5('0x14')](util['format']('[%s][calls][varset]',_0x1e18a6[_0xb1b5('0x5')]),_0x1e18a6);if(!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')]['xmd-originatecalleridnum'])){utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')]('[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x1e18a6['uniqueid'],_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x47')]=_0x1e18a6[_0xb1b5('0x46')];}if(!_['isNil'](_0x1e18a6['variable'][_0xb1b5('0x48')])){utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x1e18a6[_0xb1b5('0x5')],_0x1e18a6['value']));channels[_0x1e18a6['uniqueid']][_0xb1b5('0x49')]=_0x1e18a6['value'];channels[_0x1e18a6[_0xb1b5('0x5')]]['callerid']='\x22'+_0x1e18a6[_0xb1b5('0x46')]+_0xb1b5('0x4a')+_0x1e18a6[_0xb1b5('0x46')]+'>';}if(!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')][_0xb1b5('0x4b')])||!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')]['xmd-callerid'])){utils[_0xb1b5('0x6')](util['format']('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x1e18a6['uniqueid'],!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')]['xmd-callerid-preview'])?'xmd-callerid-preview':_0xb1b5('0x4c'),_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x2b')]=_0x1e18a6[_0xb1b5('0x46')];}if(!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')]['xmd-queue'])||!_[_0xb1b5('0x20')](_0x1e18a6['variable']['xmcs-queue'])){utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')](_0xb1b5('0x4d'),_0x1e18a6[_0xb1b5('0x5')],!_[_0xb1b5('0x20')](_0x1e18a6['variable'][_0xb1b5('0x4e')])?_0xb1b5('0x4e'):_0xb1b5('0x4f'),_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x50')]=_0xb1b5('0x51');channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x52')]=_0x1e18a6['value'];channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x53')]=!![];}if(!_['isNil'](_0x1e18a6['variable'][_0xb1b5('0x54')])){utils[_0xb1b5('0x6')](util['format']('[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s',_0x1e18a6[_0xb1b5('0x5')],_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x55')]=_0x1e18a6['value'];}if(!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')]['xmd-cdrtype'])){utils['info'](util[_0xb1b5('0x7')](_0xb1b5('0x56'),_0x1e18a6['uniqueid'],_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x57')]=_0x1e18a6['value'];}if(!_[_0xb1b5('0x20')](_0x1e18a6[_0xb1b5('0x45')]['outboundrouteid'])){utils['info'](util[_0xb1b5('0x7')]('[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s',_0x1e18a6[_0xb1b5('0x5')],_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x58')]=_0x1e18a6[_0xb1b5('0x46')];}if(!_[_0xb1b5('0x20')](_0x1e18a6['variable'][_0xb1b5('0x59')])){utils[_0xb1b5('0x6')](util[_0xb1b5('0x7')](_0xb1b5('0x5a'),_0x1e18a6[_0xb1b5('0x5')],_0x1e18a6[_0xb1b5('0x46')]));channels[_0x1e18a6[_0xb1b5('0x5')]][_0xb1b5('0x59')]=_0x1e18a6[_0xb1b5('0x46')];}}}catch(_0x3c5add){utils[_0xb1b5('0x1c')](util['format'](_0xb1b5('0x5b'),_0x1e18a6[_0xb1b5('0x5')]),_0x3c5add);}};exports[_0xb1b5('0x5c')]=function(_0x52043d){try{if(!_[_0xb1b5('0x20')](channels[_0x52043d[_0xb1b5('0x5')]])){utils[_0xb1b5('0x14')](util[_0xb1b5('0x7')](_0xb1b5('0x5d'),_0x52043d[_0xb1b5('0x5')]),_0x52043d);utils[_0xb1b5('0x6')](util['format']('[%s][calls][newexten]\x20application:%s\x20appdata:%s',_0x52043d[_0xb1b5('0x5')],_0x52043d['application'],_0x52043d['appdata']));if(_0x52043d[_0xb1b5('0x5e')][_0xb1b5('0x5f')]()==_0xb1b5('0x60')&&_[_0xb1b5('0x61')](_0x52043d[_0xb1b5('0x62')]['toLowerCase'](),'cdr')){var _0x5164da=_0x52043d['appdata'][_0xb1b5('0x63')]('=');var _0x44d2c2=_0x5164da[0x0][_0xb1b5('0x64')](_0x5164da[0x0][_0xb1b5('0x65')]('(')+0x1,_0x5164da[0x0]['lastIndexOf'](')'));var _0x5441a2=_0x5164da[0x1];channels[_0x52043d[_0xb1b5('0x5')]][_0x44d2c2]=_0x5441a2;}if(!_[_0xb1b5('0x66')]([_0xb1b5('0x29'),_0xb1b5('0x67'),_0xb1b5('0x68'),'set',_0xb1b5('0x69')],_0x52043d[_0xb1b5('0x5e')][_0xb1b5('0x5f')]())){channels[_0x52043d[_0xb1b5('0x5')]][_0xb1b5('0x50')]=_0x52043d['application'];channels[_0x52043d[_0xb1b5('0x5')]]['lastdata']=_0x52043d[_0xb1b5('0x62')];}}}catch(_0x2cd9a9){utils[_0xb1b5('0x1c')](util['format'](_0xb1b5('0x5d'),_0x52043d[_0xb1b5('0x5')]),_0x2cd9a9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8315=['close','[core]\x20close','managerevent','./utils','info','[core]\x20connected','shutdown','[core]\x20shutdown','fullybooted','error','[core]\x20error'];(function(_0x2dccbd,_0x1cc742){var _0x38ad1c=function(_0x33e00a){while(--_0x33e00a){_0x2dccbd['push'](_0x2dccbd['shift']());}};_0x38ad1c(++_0x1cc742);}(_0x8315,0x1f2));var _0x5831=function(_0x3c2c52,_0x2d2ce5){_0x3c2c52=_0x3c2c52-0x0;var _0x1a0246=_0x8315[_0x3c2c52];return _0x1a0246;};'use strict';var utils=require(_0x5831('0x0'));exports['connect']=function(){utils[_0x5831('0x1')](_0x5831('0x2'));};exports[_0x5831('0x3')]=function(){utils[_0x5831('0x1')](_0x5831('0x4'));};exports[_0x5831('0x5')]=function(){utils[_0x5831('0x1')]('[core]\x20fullybooted');};exports['error']=function(_0x561f8a){utils[_0x5831('0x6')](_0x5831('0x7'),_0x561f8a);};exports[_0x5831('0x8')]=function(){utils[_0x5831('0x1')](_0x5831('0x9'));};exports[_0x5831('0xa')]=function(_0x20f1de){};
\ No newline at end of file
+var _0x1cbb=['managerevent','./utils','connect','info','[core]\x20connected','[core]\x20shutdown','[core]\x20fullybooted','error','[core]\x20error','close'];(function(_0x34915c,_0x438532){var _0x917265=function(_0x272db7){while(--_0x272db7){_0x34915c['push'](_0x34915c['shift']());}};_0x917265(++_0x438532);}(_0x1cbb,0x105));var _0xb1cb=function(_0x2b3544,_0x203dfa){_0x2b3544=_0x2b3544-0x0;var _0x58e445=_0x1cbb[_0x2b3544];return _0x58e445;};'use strict';var utils=require(_0xb1cb('0x0'));exports[_0xb1cb('0x1')]=function(){utils[_0xb1cb('0x2')](_0xb1cb('0x3'));};exports['shutdown']=function(){utils[_0xb1cb('0x2')](_0xb1cb('0x4'));};exports['fullybooted']=function(){utils['info'](_0xb1cb('0x5'));};exports[_0xb1cb('0x6')]=function(_0x3dbec2){utils[_0xb1cb('0x6')](_0xb1cb('0x7'),_0x3dbec2);};exports[_0xb1cb('0x8')]=function(){utils['info']('[core]\x20close');};exports[_0xb1cb('0x9')]=function(_0x1043dc){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa653=['endtime','[%s][dials][hangup]','lodash','util','./utils','info','format','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','channel','dialstring','connectedlinenum','request','CreateVoiceDialReport','application','appdata','set','startsWith','toLowerCase','cdr(routeid)','error','varset','debug','isNil','variable','value','[%s][dials][varset]','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','dialstatus','ANSWER','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','answertime','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][dialend]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridnum','cause-txt','complete','duration','diffTime','holdtime'];(function(_0x4c11f7,_0x5a0447){var _0x587d6b=function(_0x5b9bbf){while(--_0x5b9bbf){_0x4c11f7['push'](_0x4c11f7['shift']());}};_0x587d6b(++_0x5a0447);}(_0xa653,0x1ec));var _0x3a65=function(_0x5a08b3,_0x411f06){_0x5a08b3=_0x5a08b3-0x0;var _0x5b9283=_0xa653[_0x5a08b3];return _0x5b9283;};'use strict';var _=require(_0x3a65('0x0'));var util=require(_0x3a65('0x1'));var utils=require(_0x3a65('0x2'));var dials={};function writeDB(_0x43ccf9){utils[_0x3a65('0x3')](util[_0x3a65('0x4')](_0x3a65('0x5'),_0x43ccf9[_0x3a65('0x6')],_0x43ccf9[_0x3a65('0x7')],_0x43ccf9[_0x3a65('0x8')],_0x43ccf9['calleridnum'],_0x43ccf9[_0x3a65('0x9')],_0x43ccf9['dialstatus']));utils[_0x3a65('0xa')](_0x3a65('0xb'),_0x43ccf9);delete dials[_0x43ccf9[_0x3a65('0x6')]];}exports['newexten']=function(_0x20dac9){try{utils['debug'](util[_0x3a65('0x4')]('[%s][dials][newexten]',_0x20dac9[_0x3a65('0x6')]),_0x20dac9);utils[_0x3a65('0x3')](util['format']('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x20dac9[_0x3a65('0x6')],_0x20dac9[_0x3a65('0xc')],_0x20dac9[_0x3a65('0xd')]));if(_0x20dac9[_0x3a65('0xc')]['toLowerCase']()==_0x3a65('0xe')&&_[_0x3a65('0xf')](_0x20dac9['appdata'][_0x3a65('0x10')](),_0x3a65('0x11'))){var _0x4db613=_0x20dac9[_0x3a65('0xd')]['split']('=');dials[_0x20dac9[_0x3a65('0x6')]]={'routeId':_0x4db613[0x1]};}}catch(_0x2245a5){utils[_0x3a65('0x12')](util['format']('[%s][dials][newexten]',_0x20dac9[_0x3a65('0x6')]),_0x2245a5);}};exports[_0x3a65('0x13')]=function(_0x409ef7){try{utils[_0x3a65('0x14')](util['format']('[%s][dials][varset]',_0x409ef7['uniqueid']),_0x409ef7);if(!_[_0x3a65('0x15')](_0x409ef7[_0x3a65('0x16')]['outboundrouteid'])){utils[_0x3a65('0x3')](util['format']('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x409ef7[_0x3a65('0x6')],_0x409ef7['value']));dials[_0x409ef7['uniqueid']]={'routeId':_0x409ef7[_0x3a65('0x17')]};}}catch(_0x1cdc3b){utils[_0x3a65('0x12')](util['format'](_0x3a65('0x18'),_0x409ef7[_0x3a65('0x6')]),_0x1cdc3b);}};exports[_0x3a65('0x19')]=function(_0x418f03){try{if(!_[_0x3a65('0x15')](dials[_0x418f03['uniqueid']])){utils[_0x3a65('0x14')](util[_0x3a65('0x4')](_0x3a65('0x1a'),_0x418f03[_0x3a65('0x6')]),_0x418f03);dials[_0x418f03[_0x3a65('0x6')]]=_[_0x3a65('0x1b')](dials[_0x418f03[_0x3a65('0x6')]],_0x418f03);dials[_0x418f03['uniqueid']][_0x3a65('0x1c')]=utils[_0x3a65('0x1d')]();dials[_0x418f03['uniqueid']][_0x3a65('0x1e')]='called';utils[_0x3a65('0x3')](util[_0x3a65('0x4')](_0x3a65('0x1f'),_0x418f03[_0x3a65('0x6')],dials[_0x418f03[_0x3a65('0x6')]][_0x3a65('0x1c')]));}}catch(_0x5f475b){utils[_0x3a65('0x12')](util[_0x3a65('0x4')](_0x3a65('0x1a'),_0x418f03[_0x3a65('0x6')]),_0x5f475b);}};exports[_0x3a65('0x20')]=function(_0x29e2b1){try{if(!_['isNil'](dials[_0x29e2b1[_0x3a65('0x6')]])){utils[_0x3a65('0x14')](util[_0x3a65('0x4')]('[%s][dials][dialend]',_0x29e2b1[_0x3a65('0x6')]),_0x29e2b1);dials[_0x29e2b1[_0x3a65('0x6')]][_0x3a65('0x21')]=_0x29e2b1[_0x3a65('0x21')];if(_0x29e2b1[_0x3a65('0x21')]==_0x3a65('0x22')){dials[_0x29e2b1[_0x3a65('0x6')]]=_['assign'](dials[_0x29e2b1['uniqueid']],_0x29e2b1);dials[_0x29e2b1[_0x3a65('0x6')]]['answertime']=utils[_0x3a65('0x1d')]();dials[_0x29e2b1['uniqueid']][_0x3a65('0x1e')]=_0x3a65('0x23');utils[_0x3a65('0x3')](util[_0x3a65('0x4')](_0x3a65('0x24'),_0x29e2b1[_0x3a65('0x6')],_0x29e2b1[_0x3a65('0x21')],dials[_0x29e2b1[_0x3a65('0x6')]][_0x3a65('0x25')]));}else{utils[_0x3a65('0x3')](util['format'](_0x3a65('0x26'),_0x29e2b1[_0x3a65('0x6')],_0x29e2b1[_0x3a65('0x21')]));}}}catch(_0x48334f){utils[_0x3a65('0x12')](util['format'](_0x3a65('0x27'),_0x29e2b1[_0x3a65('0x6')]),_0x48334f);}};exports['hangup']=function(_0x2b824b){try{if(!_[_0x3a65('0x15')](dials[_0x2b824b['uniqueid']])){utils[_0x3a65('0x14')](util[_0x3a65('0x4')]('[%s][dials][hangup]',_0x2b824b['uniqueid']),_0x2b824b);utils[_0x3a65('0x3')](util[_0x3a65('0x4')](_0x3a65('0x28'),_0x2b824b[_0x3a65('0x6')],_0x2b824b[_0x3a65('0x29')],_0x2b824b['calleridname'],_0x2b824b[_0x3a65('0x2a')]));dials[_0x2b824b[_0x3a65('0x6')]]=_[_0x3a65('0x1b')](dials[_0x2b824b[_0x3a65('0x6')]],{'endtime':utils[_0x3a65('0x1d')](),'lastevent':_0x3a65('0x2b')});dials[_0x2b824b['uniqueid']][_0x3a65('0x2c')]=utils[_0x3a65('0x2d')](dials[_0x2b824b[_0x3a65('0x6')]]['endtime'],dials[_0x2b824b[_0x3a65('0x6')]][_0x3a65('0x1c')]);dials[_0x2b824b[_0x3a65('0x6')]][_0x3a65('0x2e')]=utils[_0x3a65('0x2d')](dials[_0x2b824b['uniqueid']]['answertime']||dials[_0x2b824b[_0x3a65('0x6')]][_0x3a65('0x2f')],dials[_0x2b824b['uniqueid']][_0x3a65('0x1c')]);dials[_0x2b824b[_0x3a65('0x6')]]['billableseconds']=dials[_0x2b824b[_0x3a65('0x6')]][_0x3a65('0x25')]?utils[_0x3a65('0x2d')](dials[_0x2b824b[_0x3a65('0x6')]][_0x3a65('0x2f')],dials[_0x2b824b[_0x3a65('0x6')]]['answertime']):0x0;writeDB(dials[_0x2b824b['uniqueid']]);}}catch(_0x527112){utils[_0x3a65('0x12')](util[_0x3a65('0x4')](_0x3a65('0x30'),_0x2b824b[_0x3a65('0x6')]),_0x527112);}};
\ No newline at end of file
+var _0xb9c4=['connect','[%s][dials][dialend]\x20dialstatus:%s','[%s][dials][hangup]','calleridnum','cause-txt','complete','duration','diffTime','endtime','holdtime','billableseconds','lodash','util','./utils','info','[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s','uniqueid','dialstring','connectedlinenum','dialstatus','debug','format','application','set','startsWith','toLowerCase','appdata','error','[%s][dials][newexten]','varset','[%s][dials][varset]','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','dialbegin','[%s][dials][dialbegin]','assign','starttime','now','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','lastevent'];(function(_0xbf07b8,_0x4fc2c6){var _0x17aef8=function(_0x443a16){while(--_0x443a16){_0xbf07b8['push'](_0xbf07b8['shift']());}};_0x17aef8(++_0x4fc2c6);}(_0xb9c4,0xfb));var _0x4b9c=function(_0x4b7895,_0x3c4f5d){_0x4b7895=_0x4b7895-0x0;var _0x264180=_0xb9c4[_0x4b7895];return _0x264180;};'use strict';var _=require(_0x4b9c('0x0'));var util=require(_0x4b9c('0x1'));var utils=require(_0x4b9c('0x2'));var dials={};function writeDB(_0x274689){utils[_0x4b9c('0x3')](util['format'](_0x4b9c('0x4'),_0x274689[_0x4b9c('0x5')],_0x274689['channel'],_0x274689[_0x4b9c('0x6')],_0x274689['calleridnum'],_0x274689[_0x4b9c('0x7')],_0x274689[_0x4b9c('0x8')]));utils['request']('CreateVoiceDialReport',_0x274689);delete dials[_0x274689[_0x4b9c('0x5')]];}exports['newexten']=function(_0x2a00ef){try{utils[_0x4b9c('0x9')](util[_0x4b9c('0xa')]('[%s][dials][newexten]',_0x2a00ef[_0x4b9c('0x5')]),_0x2a00ef);utils[_0x4b9c('0x3')](util['format']('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x2a00ef['uniqueid'],_0x2a00ef[_0x4b9c('0xb')],_0x2a00ef['appdata']));if(_0x2a00ef[_0x4b9c('0xb')]['toLowerCase']()==_0x4b9c('0xc')&&_[_0x4b9c('0xd')](_0x2a00ef['appdata'][_0x4b9c('0xe')](),'cdr(routeid)')){var _0x2efc45=_0x2a00ef[_0x4b9c('0xf')]['split']('=');dials[_0x2a00ef[_0x4b9c('0x5')]]={'routeId':_0x2efc45[0x1]};}}catch(_0x40d322){utils[_0x4b9c('0x10')](util[_0x4b9c('0xa')](_0x4b9c('0x11'),_0x2a00ef[_0x4b9c('0x5')]),_0x40d322);}};exports[_0x4b9c('0x12')]=function(_0x113d3f){try{utils['debug'](util[_0x4b9c('0xa')](_0x4b9c('0x13'),_0x113d3f[_0x4b9c('0x5')]),_0x113d3f);if(!_[_0x4b9c('0x14')](_0x113d3f[_0x4b9c('0x15')][_0x4b9c('0x16')])){utils[_0x4b9c('0x3')](util[_0x4b9c('0xa')](_0x4b9c('0x17'),_0x113d3f[_0x4b9c('0x5')],_0x113d3f[_0x4b9c('0x18')]));dials[_0x113d3f['uniqueid']]={'routeId':_0x113d3f['value']};}}catch(_0x52ccc4){utils['error'](util[_0x4b9c('0xa')](_0x4b9c('0x13'),_0x113d3f[_0x4b9c('0x5')]),_0x52ccc4);}};exports[_0x4b9c('0x19')]=function(_0x1e8b62){try{if(!_[_0x4b9c('0x14')](dials[_0x1e8b62[_0x4b9c('0x5')]])){utils[_0x4b9c('0x9')](util[_0x4b9c('0xa')](_0x4b9c('0x1a'),_0x1e8b62['uniqueid']),_0x1e8b62);dials[_0x1e8b62[_0x4b9c('0x5')]]=_[_0x4b9c('0x1b')](dials[_0x1e8b62['uniqueid']],_0x1e8b62);dials[_0x1e8b62[_0x4b9c('0x5')]][_0x4b9c('0x1c')]=utils[_0x4b9c('0x1d')]();dials[_0x1e8b62['uniqueid']]['lastevent']=_0x4b9c('0x1e');utils[_0x4b9c('0x3')](util[_0x4b9c('0xa')](_0x4b9c('0x1f'),_0x1e8b62['uniqueid'],dials[_0x1e8b62['uniqueid']][_0x4b9c('0x1c')]));}}catch(_0xa5b93e){utils[_0x4b9c('0x10')](util[_0x4b9c('0xa')](_0x4b9c('0x1a'),_0x1e8b62['uniqueid']),_0xa5b93e);}};exports[_0x4b9c('0x20')]=function(_0x47e727){try{if(!_[_0x4b9c('0x14')](dials[_0x47e727[_0x4b9c('0x5')]])){utils['debug'](util['format'](_0x4b9c('0x21'),_0x47e727[_0x4b9c('0x5')]),_0x47e727);dials[_0x47e727[_0x4b9c('0x5')]][_0x4b9c('0x8')]=_0x47e727['dialstatus'];if(_0x47e727[_0x4b9c('0x8')]==_0x4b9c('0x22')){dials[_0x47e727['uniqueid']]=_[_0x4b9c('0x1b')](dials[_0x47e727[_0x4b9c('0x5')]],_0x47e727);dials[_0x47e727['uniqueid']][_0x4b9c('0x23')]=utils['now']();dials[_0x47e727[_0x4b9c('0x5')]][_0x4b9c('0x24')]=_0x4b9c('0x25');utils[_0x4b9c('0x3')](util[_0x4b9c('0xa')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x47e727[_0x4b9c('0x5')],_0x47e727['dialstatus'],dials[_0x47e727[_0x4b9c('0x5')]]['answertime']));}else{utils[_0x4b9c('0x3')](util[_0x4b9c('0xa')](_0x4b9c('0x26'),_0x47e727[_0x4b9c('0x5')],_0x47e727['dialstatus']));}}}catch(_0x5ce23e){utils[_0x4b9c('0x10')](util[_0x4b9c('0xa')]('[%s][dials][dialend]',_0x47e727[_0x4b9c('0x5')]),_0x5ce23e);}};exports['hangup']=function(_0x31c512){try{if(!_[_0x4b9c('0x14')](dials[_0x31c512[_0x4b9c('0x5')]])){utils[_0x4b9c('0x9')](util['format'](_0x4b9c('0x27'),_0x31c512[_0x4b9c('0x5')]),_0x31c512);utils[_0x4b9c('0x3')](util[_0x4b9c('0xa')]('[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s',_0x31c512[_0x4b9c('0x5')],_0x31c512[_0x4b9c('0x28')],_0x31c512['calleridname'],_0x31c512[_0x4b9c('0x29')]));dials[_0x31c512['uniqueid']]=_[_0x4b9c('0x1b')](dials[_0x31c512[_0x4b9c('0x5')]],{'endtime':utils[_0x4b9c('0x1d')](),'lastevent':_0x4b9c('0x2a')});dials[_0x31c512[_0x4b9c('0x5')]][_0x4b9c('0x2b')]=utils[_0x4b9c('0x2c')](dials[_0x31c512[_0x4b9c('0x5')]][_0x4b9c('0x2d')],dials[_0x31c512[_0x4b9c('0x5')]][_0x4b9c('0x1c')]);dials[_0x31c512['uniqueid']][_0x4b9c('0x2e')]=utils[_0x4b9c('0x2c')](dials[_0x31c512['uniqueid']]['answertime']||dials[_0x31c512[_0x4b9c('0x5')]][_0x4b9c('0x2d')],dials[_0x31c512['uniqueid']][_0x4b9c('0x1c')]);dials[_0x31c512[_0x4b9c('0x5')]][_0x4b9c('0x2f')]=dials[_0x31c512[_0x4b9c('0x5')]][_0x4b9c('0x23')]?utils[_0x4b9c('0x2c')](dials[_0x31c512['uniqueid']][_0x4b9c('0x2d')],dials[_0x31c512['uniqueid']][_0x4b9c('0x23')]):0x0;writeDB(dials[_0x31c512[_0x4b9c('0x5')]]);}}catch(_0x5df602){utils[_0x4b9c('0x10')](util[_0x4b9c('0xa')](_0x4b9c('0x27'),_0x31c512[_0x4b9c('0x5')]),_0x5df602);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32cb=['[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','[%s][index][dialbegin]','dialbegin','dialend','[%s][index][dialend]','./utils','util','asterisk','port','username','password','xdr','disabled','info','./agents.controller','./calls.controller','./queues.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller','connect','shutdown','fullybooted','error','close','managerevent','devicestatechange','debug','format','[%s][index][devicestatechange]','device','uniqueid','agentcalled','[%s][index][agentcalled]','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','hangup','[%s][index][hangup]','cdr'];(function(_0xd53ef7,_0x2dbcdf){var _0x2a38b9=function(_0x38cd33){while(--_0x38cd33){_0xd53ef7['push'](_0xd53ef7['shift']());}};_0x2a38b9(++_0x2dbcdf);}(_0x32cb,0x15a));var _0xb32c=function(_0x3727f7,_0x264e4c){_0x3727f7=_0x3727f7-0x0;var _0x3984cd=_0x32cb[_0x3727f7];return _0x3984cd;};var AsteriskManager=require('asterisk-manager');var config=require('../../config/environment');var utils=require(_0xb32c('0x0'));var util=require(_0xb32c('0x1'));var ami=new AsteriskManager(config[_0xb32c('0x2')][_0xb32c('0x3')],config[_0xb32c('0x2')]['ip'],config['asterisk'][_0xb32c('0x4')],config[_0xb32c('0x2')][_0xb32c('0x5')],!![]);ami['keepConnected']();if(config[_0xb32c('0x6')]&&config[_0xb32c('0x6')][_0xb32c('0x7')]){utils[_0xb32c('0x8')]('XDR\x20DISABLED');}else{var agents=require(_0xb32c('0x9'));var calls=require(_0xb32c('0xa'));var queues=require(_0xb32c('0xb'));var recordings=require(_0xb32c('0xc'));var members=require(_0xb32c('0xd'));var dials=require(_0xb32c('0xe'));var transfers=require(_0xb32c('0xf'));var core=require('./core.controller');ami['on'](_0xb32c('0x10'),core[_0xb32c('0x10')]);ami['on'](_0xb32c('0x11'),core[_0xb32c('0x11')]);ami['on'](_0xb32c('0x12'),core[_0xb32c('0x12')]);ami['on'](_0xb32c('0x13'),core[_0xb32c('0x13')]);ami['on'](_0xb32c('0x14'),core['close']);ami['on']('managerevent',core[_0xb32c('0x15')]);ami['on'](_0xb32c('0x16'),function(_0x27b408){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x19'),_0x27b408[_0xb32c('0x1a')]),_0x27b408);members[_0xb32c('0x16')](_0x27b408);}catch(_0x24fced){utils[_0xb32c('0x13')](util[_0xb32c('0x18')]('[%s][index][devicestatechange]',_0x27b408[_0xb32c('0x1a')]),_0x24fced);}});ami['on']('agentcalled',function(_0x4b4acc){try{utils[_0xb32c('0x17')](util['format']('[%s][index][agentcalled]',_0x4b4acc[_0xb32c('0x1b')]),_0x4b4acc);agents[_0xb32c('0x1c')](_0x4b4acc);}catch(_0x36f3fa){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x1d'),_0x4b4acc[_0xb32c('0x1b')]),_0x36f3fa);}});ami['on'](_0xb32c('0x1e'),function(_0x4a13af){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x1f'),_0x4a13af[_0xb32c('0x1b')]),_0x4a13af);agents['agentringnoanswer'](_0x4a13af);}catch(_0x468f48){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x1f'),_0x4a13af[_0xb32c('0x1b')]),_0x468f48);}});ami['on']('agentconnect',function(_0x2b5529){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')]('[%s][index][agentconnect]',_0x2b5529[_0xb32c('0x1b')]),_0x2b5529);agents[_0xb32c('0x20')](_0x2b5529);queues[_0xb32c('0x20')](_0x2b5529);}catch(_0x53b613){utils['error'](util[_0xb32c('0x18')](_0xb32c('0x21'),_0x2b5529[_0xb32c('0x1b')]),_0x53b613);}});ami['on'](_0xb32c('0x22'),function(_0x5b71b3){try{utils[_0xb32c('0x17')](util['format'](_0xb32c('0x23'),_0x5b71b3[_0xb32c('0x1b')]),_0x5b71b3);agents[_0xb32c('0x22')](_0x5b71b3);queues[_0xb32c('0x22')](_0x5b71b3);members[_0xb32c('0x22')](_0x5b71b3);}catch(_0x55f0c7){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x23'),_0x5b71b3[_0xb32c('0x1b')]),_0x55f0c7);}});ami['on'](_0xb32c('0x24'),function(_0x730238){try{utils[_0xb32c('0x17')](util['format'](_0xb32c('0x25'),_0x730238[_0xb32c('0x1b')]),_0x730238);agents[_0xb32c('0x24')](_0x730238);queues[_0xb32c('0x24')](_0x730238);}catch(_0x5f0ea3){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x25'),_0x730238[_0xb32c('0x1b')]),_0x5f0ea3);}});ami['on'](_0xb32c('0x26'),function(_0x135015){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')]('[%s][index][queuecallerjoin]',_0x135015[_0xb32c('0x1b')]),_0x135015);queues[_0xb32c('0x26')](_0x135015);recordings['queuecallerjoin'](_0x135015);}catch(_0x4d344e){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x27'),_0x135015[_0xb32c('0x1b')]),_0x4d344e);}});ami['on']('queuecallerleave',function(_0x410db9){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x28'),_0x410db9[_0xb32c('0x1b')]),_0x410db9);queues['queuecallerleave'](_0x410db9);}catch(_0x2dee15){utils['error'](util[_0xb32c('0x18')](_0xb32c('0x28'),_0x410db9[_0xb32c('0x1b')]),_0x2dee15);}});ami['on'](_0xb32c('0x29'),function(_0xea1212){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x2a'),_0xea1212[_0xb32c('0x1b')]),_0xea1212);queues['musiconholdstart'](_0xea1212);calls['musiconholdstart'](_0xea1212);}catch(_0x2e67ad){utils['error'](util[_0xb32c('0x18')](_0xb32c('0x2a'),_0xea1212[_0xb32c('0x1b')]),_0x2e67ad);}});ami['on'](_0xb32c('0x2b'),function(_0x1adc79){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x2c'),_0x1adc79[_0xb32c('0x1b')]),_0x1adc79);queues[_0xb32c('0x2b')](_0x1adc79);calls[_0xb32c('0x2b')](_0x1adc79);}catch(_0x124585){utils[_0xb32c('0x13')](util['format'](_0xb32c('0x2c'),_0x1adc79[_0xb32c('0x1b')]),_0x124585);}});ami['on'](_0xb32c('0x2d'),function(_0x310259){try{utils['debug'](util[_0xb32c('0x18')](_0xb32c('0x2e'),_0x310259[_0xb32c('0x1b')]),_0x310259);calls[_0xb32c('0x2d')](_0x310259);recordings[_0xb32c('0x2d')](_0x310259);}catch(_0x1382c9){utils['error'](util[_0xb32c('0x18')](_0xb32c('0x2e'),_0x310259[_0xb32c('0x1b')]),_0x1382c9);}});ami['on'](_0xb32c('0x2f'),function(_0x5aceb1){try{utils[_0xb32c('0x17')](util['format'](_0xb32c('0x30'),_0x5aceb1['uniqueid']),_0x5aceb1);calls[_0xb32c('0x2f')](_0x5aceb1);recordings[_0xb32c('0x2f')](_0x5aceb1);dials[_0xb32c('0x2f')](_0x5aceb1);agents[_0xb32c('0x2f')](_0x5aceb1);queues[_0xb32c('0x2f')](_0x5aceb1);}catch(_0x80d6a8){utils['error'](util[_0xb32c('0x18')]('[%s][index][hangup]',_0x5aceb1[_0xb32c('0x1b')]),_0x80d6a8);}});ami['on'](_0xb32c('0x31'),function(_0x4e139a){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x32'),_0x4e139a[_0xb32c('0x1b')]),_0x4e139a);members[_0xb32c('0x31')](_0x4e139a);}catch(_0x399530){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x32'),_0x4e139a[_0xb32c('0x1b')]),_0x399530);}});ami['on'](_0xb32c('0x33'),function(_0x2e1de0){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x34'),_0x2e1de0['uniqueid']),_0x2e1de0);queues[_0xb32c('0x33')](_0x2e1de0);agents[_0xb32c('0x33')](_0x2e1de0);transfers['blindtransfer'](_0x2e1de0);}catch(_0x7f7783){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x34'),_0x2e1de0[_0xb32c('0x1b')]),_0x7f7783);}});ami['on'](_0xb32c('0x35'),function(_0x5bd0d3){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x36'),_0x5bd0d3[_0xb32c('0x37')]),_0x5bd0d3);queues[_0xb32c('0x35')](_0x5bd0d3);transfers[_0xb32c('0x35')](_0x5bd0d3);agents[_0xb32c('0x35')](_0x5bd0d3);calls[_0xb32c('0x35')](_0x5bd0d3);}catch(_0x3e1b1c){utils[_0xb32c('0x13')](util[_0xb32c('0x18')]('[%s][index][attendedtransfer]',_0x5bd0d3['origtransfereruniqueid']),_0x3e1b1c);}});ami['on'](_0xb32c('0x38'),function(_0x4b1064){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x39'),_0x4b1064[_0xb32c('0x1b')]),_0x4b1064);queues[_0xb32c('0x38')](_0x4b1064);recordings[_0xb32c('0x38')](_0x4b1064);calls[_0xb32c('0x38')](_0x4b1064);dials[_0xb32c('0x38')](_0x4b1064);}catch(_0x4b83cc){utils['error'](util[_0xb32c('0x18')](_0xb32c('0x39'),_0x4b1064[_0xb32c('0x1b')]),_0x4b83cc);}});ami['on'](_0xb32c('0x3a'),function(_0x27ca47){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x3b'),_0x27ca47[_0xb32c('0x1b')]),_0x27ca47);calls[_0xb32c('0x3a')](_0x27ca47);recordings[_0xb32c('0x3a')](_0x27ca47);dials['newexten'](_0x27ca47);}catch(_0x218d3a){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x3b'),_0x27ca47[_0xb32c('0x1b')]),_0x218d3a);}});ami['on'](_0xb32c('0x3c'),function(_0x554c36){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x3d'),_0x554c36['uniqueid']),_0x554c36);calls['newchannel'](_0x554c36);recordings[_0xb32c('0x3c')](_0x554c36);}catch(_0x230646){utils[_0xb32c('0x13')](util['format']('[%s][index][newchannel]',_0x554c36[_0xb32c('0x1b')]),_0x230646);}});ami['on']('dialbegin',function(_0x24f9ff){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x3e'),_0x24f9ff[_0xb32c('0x1b')]),_0x24f9ff);dials[_0xb32c('0x3f')](_0x24f9ff);}catch(_0x1bf195){utils[_0xb32c('0x13')](util['format']('[%s]dialbegin',_0x24f9ff[_0xb32c('0x1b')]),_0x1bf195);}});ami['on'](_0xb32c('0x40'),function(_0x3405a2){try{utils[_0xb32c('0x17')](util[_0xb32c('0x18')](_0xb32c('0x41'),_0x3405a2[_0xb32c('0x1b')]),_0x3405a2);dials['dialend'](_0x3405a2);}catch(_0x5579f5){utils[_0xb32c('0x13')](util[_0xb32c('0x18')](_0xb32c('0x41'),_0x3405a2[_0xb32c('0x1b')]),_0x5579f5);}});}
\ No newline at end of file
+var _0xdc26=['./core.controller','connect','shutdown','fullybooted','error','close','managerevent','debug','format','[%s][index][devicestatechange]','device','agentcalled','uniqueid','[%s][index][agentcalled]','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','[%s][index][musiconholdstop]','musiconholdstop','[%s][index][newstate]','newstate','[%s][index][hangup]','hangup','cdr','[%s][index][cdr]','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','origtransfereruniqueid','[%s][index][attendedtransfer]','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','[%s][index][dialbegin]','dialbegin','dialend','[%s][index][dialend]','../../config/environment','./utils','asterisk','port','username','keepConnected','xdr','disabled','info','./calls.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller'];(function(_0x3cb051,_0x3aac86){var _0x21dd99=function(_0x794b58){while(--_0x794b58){_0x3cb051['push'](_0x3cb051['shift']());}};_0x21dd99(++_0x3aac86);}(_0xdc26,0xb5));var _0x6dc2=function(_0x55a89e,_0x1a05ab){_0x55a89e=_0x55a89e-0x0;var _0x3aa2bd=_0xdc26[_0x55a89e];return _0x3aa2bd;};var AsteriskManager=require('asterisk-manager');var config=require(_0x6dc2('0x0'));var utils=require(_0x6dc2('0x1'));var util=require('util');var ami=new AsteriskManager(config[_0x6dc2('0x2')][_0x6dc2('0x3')],config[_0x6dc2('0x2')]['ip'],config[_0x6dc2('0x2')][_0x6dc2('0x4')],config[_0x6dc2('0x2')]['password'],!![]);ami[_0x6dc2('0x5')]();if(config[_0x6dc2('0x6')]&&config[_0x6dc2('0x6')][_0x6dc2('0x7')]){utils[_0x6dc2('0x8')]('XDR\x20DISABLED');}else{var agents=require('./agents.controller');var calls=require(_0x6dc2('0x9'));var queues=require('./queues.controller');var recordings=require(_0x6dc2('0xa'));var members=require(_0x6dc2('0xb'));var dials=require(_0x6dc2('0xc'));var transfers=require(_0x6dc2('0xd'));var core=require(_0x6dc2('0xe'));ami['on']('connect',core[_0x6dc2('0xf')]);ami['on'](_0x6dc2('0x10'),core[_0x6dc2('0x10')]);ami['on'](_0x6dc2('0x11'),core[_0x6dc2('0x11')]);ami['on']('error',core[_0x6dc2('0x12')]);ami['on'](_0x6dc2('0x13'),core[_0x6dc2('0x13')]);ami['on']('managerevent',core[_0x6dc2('0x14')]);ami['on']('devicestatechange',function(_0x4d7cd6){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x17'),_0x4d7cd6[_0x6dc2('0x18')]),_0x4d7cd6);members['devicestatechange'](_0x4d7cd6);}catch(_0x5e39f9){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')](_0x6dc2('0x17'),_0x4d7cd6[_0x6dc2('0x18')]),_0x5e39f9);}});ami['on'](_0x6dc2('0x19'),function(_0x28d847){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')]('[%s][index][agentcalled]',_0x28d847[_0x6dc2('0x1a')]),_0x28d847);agents['agentcalled'](_0x28d847);}catch(_0x59b409){utils['error'](util[_0x6dc2('0x16')](_0x6dc2('0x1b'),_0x28d847['uniqueid']),_0x59b409);}});ami['on'](_0x6dc2('0x1c'),function(_0x2cd763){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x1d'),_0x2cd763[_0x6dc2('0x1a')]),_0x2cd763);agents[_0x6dc2('0x1c')](_0x2cd763);}catch(_0x4b9235){utils['error'](util['format'](_0x6dc2('0x1d'),_0x2cd763[_0x6dc2('0x1a')]),_0x4b9235);}});ami['on'](_0x6dc2('0x1e'),function(_0x5dddb0){try{utils[_0x6dc2('0x15')](util['format'](_0x6dc2('0x1f'),_0x5dddb0[_0x6dc2('0x1a')]),_0x5dddb0);agents['agentconnect'](_0x5dddb0);queues[_0x6dc2('0x1e')](_0x5dddb0);}catch(_0x55eb2e){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')]('[%s][index][agentconnect]',_0x5dddb0[_0x6dc2('0x1a')]),_0x55eb2e);}});ami['on'](_0x6dc2('0x20'),function(_0x9253){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x21'),_0x9253[_0x6dc2('0x1a')]),_0x9253);agents[_0x6dc2('0x20')](_0x9253);queues[_0x6dc2('0x20')](_0x9253);members[_0x6dc2('0x20')](_0x9253);}catch(_0x17ab01){utils[_0x6dc2('0x12')](util['format'](_0x6dc2('0x21'),_0x9253[_0x6dc2('0x1a')]),_0x17ab01);}});ami['on'](_0x6dc2('0x22'),function(_0x1f79d){try{utils['debug'](util[_0x6dc2('0x16')]('[%s][index][queuecallerabandon]',_0x1f79d[_0x6dc2('0x1a')]),_0x1f79d);agents[_0x6dc2('0x22')](_0x1f79d);queues[_0x6dc2('0x22')](_0x1f79d);}catch(_0x1a3050){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')](_0x6dc2('0x23'),_0x1f79d[_0x6dc2('0x1a')]),_0x1a3050);}});ami['on'](_0x6dc2('0x24'),function(_0x365681){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x25'),_0x365681[_0x6dc2('0x1a')]),_0x365681);queues[_0x6dc2('0x24')](_0x365681);recordings[_0x6dc2('0x24')](_0x365681);}catch(_0x2514fa){utils['error'](util[_0x6dc2('0x16')](_0x6dc2('0x25'),_0x365681[_0x6dc2('0x1a')]),_0x2514fa);}});ami['on'](_0x6dc2('0x26'),function(_0x299ef4){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x27'),_0x299ef4[_0x6dc2('0x1a')]),_0x299ef4);queues[_0x6dc2('0x26')](_0x299ef4);}catch(_0x1e609f){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')](_0x6dc2('0x27'),_0x299ef4[_0x6dc2('0x1a')]),_0x1e609f);}});ami['on'](_0x6dc2('0x28'),function(_0x207094){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x29'),_0x207094[_0x6dc2('0x1a')]),_0x207094);queues[_0x6dc2('0x28')](_0x207094);calls[_0x6dc2('0x28')](_0x207094);}catch(_0xe4873c){utils['error'](util[_0x6dc2('0x16')](_0x6dc2('0x29'),_0x207094[_0x6dc2('0x1a')]),_0xe4873c);}});ami['on']('musiconholdstop',function(_0x3fad91){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x2a'),_0x3fad91[_0x6dc2('0x1a')]),_0x3fad91);queues[_0x6dc2('0x2b')](_0x3fad91);calls['musiconholdstop'](_0x3fad91);}catch(_0x3dec54){utils['error'](util[_0x6dc2('0x16')](_0x6dc2('0x2a'),_0x3fad91['uniqueid']),_0x3dec54);}});ami['on']('newstate',function(_0x163197){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x2c'),_0x163197[_0x6dc2('0x1a')]),_0x163197);calls[_0x6dc2('0x2d')](_0x163197);recordings[_0x6dc2('0x2d')](_0x163197);}catch(_0x52ec23){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')](_0x6dc2('0x2c'),_0x163197['uniqueid']),_0x52ec23);}});ami['on']('hangup',function(_0x4a0b5e){try{utils[_0x6dc2('0x15')](util['format'](_0x6dc2('0x2e'),_0x4a0b5e[_0x6dc2('0x1a')]),_0x4a0b5e);calls['hangup'](_0x4a0b5e);recordings[_0x6dc2('0x2f')](_0x4a0b5e);dials[_0x6dc2('0x2f')](_0x4a0b5e);agents[_0x6dc2('0x2f')](_0x4a0b5e);queues[_0x6dc2('0x2f')](_0x4a0b5e);}catch(_0x4c17b9){utils[_0x6dc2('0x12')](util['format']('[%s][index][hangup]',_0x4a0b5e[_0x6dc2('0x1a')]),_0x4c17b9);}});ami['on'](_0x6dc2('0x30'),function(_0x44ac34){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')]('[%s][index][cdr]',_0x44ac34[_0x6dc2('0x1a')]),_0x44ac34);members['cdr'](_0x44ac34);}catch(_0x996bd2){utils[_0x6dc2('0x12')](util['format'](_0x6dc2('0x31'),_0x44ac34[_0x6dc2('0x1a')]),_0x996bd2);}});ami['on'](_0x6dc2('0x32'),function(_0x24b762){try{utils[_0x6dc2('0x15')](util['format'](_0x6dc2('0x33'),_0x24b762[_0x6dc2('0x1a')]),_0x24b762);queues[_0x6dc2('0x32')](_0x24b762);agents['blindtransfer'](_0x24b762);transfers['blindtransfer'](_0x24b762);}catch(_0x36d223){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')]('[%s][index][blindtransfer]',_0x24b762[_0x6dc2('0x1a')]),_0x36d223);}});ami['on'](_0x6dc2('0x34'),function(_0x18f300){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')]('[%s][index][attendedtransfer]',_0x18f300[_0x6dc2('0x35')]),_0x18f300);queues['attendedtransfer'](_0x18f300);transfers[_0x6dc2('0x34')](_0x18f300);agents[_0x6dc2('0x34')](_0x18f300);calls[_0x6dc2('0x34')](_0x18f300);}catch(_0x7ef9da){utils['error'](util[_0x6dc2('0x16')](_0x6dc2('0x36'),_0x18f300['origtransfereruniqueid']),_0x7ef9da);}});ami['on'](_0x6dc2('0x37'),function(_0x2a684b){try{utils[_0x6dc2('0x15')](util['format'](_0x6dc2('0x38'),_0x2a684b[_0x6dc2('0x1a')]),_0x2a684b);queues['varset'](_0x2a684b);recordings[_0x6dc2('0x37')](_0x2a684b);calls[_0x6dc2('0x37')](_0x2a684b);dials[_0x6dc2('0x37')](_0x2a684b);}catch(_0x144628){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')](_0x6dc2('0x38'),_0x2a684b[_0x6dc2('0x1a')]),_0x144628);}});ami['on'](_0x6dc2('0x39'),function(_0x2043c5){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x3a'),_0x2043c5[_0x6dc2('0x1a')]),_0x2043c5);calls['newexten'](_0x2043c5);recordings['newexten'](_0x2043c5);dials['newexten'](_0x2043c5);}catch(_0x251e15){utils['error'](util[_0x6dc2('0x16')](_0x6dc2('0x3a'),_0x2043c5['uniqueid']),_0x251e15);}});ami['on'](_0x6dc2('0x3b'),function(_0x4bdb45){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')]('[%s][index][newchannel]',_0x4bdb45['uniqueid']),_0x4bdb45);calls['newchannel'](_0x4bdb45);recordings[_0x6dc2('0x3b')](_0x4bdb45);}catch(_0x19e2df){utils[_0x6dc2('0x12')](util[_0x6dc2('0x16')](_0x6dc2('0x3c'),_0x4bdb45[_0x6dc2('0x1a')]),_0x19e2df);}});ami['on']('dialbegin',function(_0x3954c4){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x3d'),_0x3954c4['uniqueid']),_0x3954c4);dials[_0x6dc2('0x3e')](_0x3954c4);}catch(_0x77e4f9){utils[_0x6dc2('0x12')](util['format']('[%s]dialbegin',_0x3954c4[_0x6dc2('0x1a')]),_0x77e4f9);}});ami['on'](_0x6dc2('0x3f'),function(_0x5bef8e){try{utils[_0x6dc2('0x15')](util[_0x6dc2('0x16')](_0x6dc2('0x40'),_0x5bef8e['uniqueid']),_0x5bef8e);dials[_0x6dc2('0x3f')](_0x5bef8e);}catch(_0x5a20d8){utils[_0x6dc2('0x12')](util['format'](_0x6dc2('0x40'),_0x5bef8e[_0x6dc2('0x1a')]),_0x5a20d8);}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9658=['error','uniqueid','some','startsWith','devicestatechange','format','[%s][members][devicestatechange]','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','agent','NOT_INUSE','isNil','now','duration','diffTime','exitAt','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','debug','[%s][members][cdr]','channel','data1','type','data2','source','data3','destination','destinationchannel','lodash','util','./utils','Local/_attended@transfer','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','interface','getUserByInterface','then','membername','internal','request','CreateMemberReport','getUserByName','split'];(function(_0x51c6c9,_0x3218a3){var _0x91bf0b=function(_0x3cf026){while(--_0x3cf026){_0x51c6c9['push'](_0x51c6c9['shift']());}};_0x91bf0b(++_0x3218a3);}(_0x9658,0xba));var _0x8965=function(_0xfbe06e,_0x2fb7ab){_0xfbe06e=_0xfbe06e-0x0;var _0x24e5b6=_0x9658[_0xfbe06e];return _0x24e5b6;};'use strict';var _=require(_0x8965('0x0'));var util=require(_0x8965('0x1'));var utils=require(_0x8965('0x2'));var members={};var exclude=[_0x8965('0x3'),'Queue:'];function writeDB(_0x4abe4d){utils['info'](util['format'](_0x8965('0x4'),_0x4abe4d['uniqueid'],_0x4abe4d[_0x8965('0x5')],_0x4abe4d['channel'],_0x4abe4d['data2'],_0x4abe4d['membername'],_0x4abe4d['type']));if(_0x4abe4d[_0x8965('0x5')]){utils[_0x8965('0x6')](_0x4abe4d[_0x8965('0x5')])[_0x8965('0x7')](function(_0x5acba2){if(_0x5acba2){_0x4abe4d[_0x8965('0x8')]=_0x5acba2['name'];_0x4abe4d[_0x8965('0x9')]=_0x5acba2[_0x8965('0x9')];utils[_0x8965('0xa')](_0x8965('0xb'),_0x4abe4d);}else{utils[_0x8965('0xc')](_0x4abe4d['interface'][_0x8965('0xd')]('/')[0x1])[_0x8965('0x7')](function(_0x4e5a46){if(_0x4e5a46){_0x4abe4d[_0x8965('0x8')]=_0x4e5a46['name'];_0x4abe4d['internal']=_0x4e5a46[_0x8965('0x9')];utils[_0x8965('0xa')](_0x8965('0xb'),_0x4abe4d);}});}})['catch'](function(_0x34edc4){utils[_0x8965('0xe')](util['format']('[%s][members][writeDB]',_0x4abe4d[_0x8965('0xf')]),_0x34edc4);});}delete members[_0x4abe4d[_0x8965('0x5')]];}function startsWith(_0x322a64,_0x306611){return _[_0x8965('0x10')](_0x322a64,function(_0x5b49ce){return _[_0x8965('0x11')](_0x306611,_0x5b49ce);});}exports[_0x8965('0x12')]=function(_0xa961a0){try{utils['debug'](util[_0x8965('0x13')](_0x8965('0x14'),members[_0xa961a0[_0x8965('0x15')]]?members[_0xa961a0['device']][_0x8965('0xf')]:_0xa961a0[_0x8965('0x15')]),_0xa961a0);utils[_0x8965('0x16')](util[_0x8965('0x13')](_0x8965('0x17'),members[_0xa961a0['device']]?members[_0xa961a0['device']][_0x8965('0xf')]:_0xa961a0[_0x8965('0x15')],_0xa961a0[_0x8965('0x18')],_0xa961a0[_0x8965('0x15')]));switch(_0xa961a0[_0x8965('0x18')]){case _0x8965('0x19'):case _0x8965('0x1a'):if(!startsWith(exclude,_0xa961a0[_0x8965('0x15')])){members[_0xa961a0[_0x8965('0x15')]]={'channel':'voice','interface':_0xa961a0['device'],'type':'TALKING','enterAt':utils['now'](),'role':_0x8965('0x1b')};}break;case _0x8965('0x1c'):if(!_[_0x8965('0x1d')](members[_0xa961a0[_0x8965('0x15')]])){members[_0xa961a0[_0x8965('0x15')]]['exitAt']=utils[_0x8965('0x1e')]();members[_0xa961a0[_0x8965('0x15')]][_0x8965('0x1f')]=utils[_0x8965('0x20')](members[_0xa961a0[_0x8965('0x15')]][_0x8965('0x21')],members[_0xa961a0[_0x8965('0x15')]]['enterAt']);if(members[_0xa961a0[_0x8965('0x15')]][_0x8965('0xf')]){writeDB(members[_0xa961a0[_0x8965('0x15')]]);}}break;default:break;}}catch(_0x499312){utils[_0x8965('0xe')](util['format']('[%s][members][devicestatechange]',members[_0xa961a0[_0x8965('0x15')]]?members[_0xa961a0[_0x8965('0x15')]][_0x8965('0xf')]:_0xa961a0[_0x8965('0x15')]),_0x499312);}};exports[_0x8965('0x22')]=function(_0x35cf59){try{if(!_['isNil'](members[_0x35cf59['interface']])){utils['debug'](util[_0x8965('0x13')](_0x8965('0x23'),_0x35cf59[_0x8965('0xf')]),_0x35cf59);utils[_0x8965('0x16')](util[_0x8965('0x13')](_0x8965('0x24'),_0x35cf59[_0x8965('0xf')],_0x35cf59[_0x8965('0x5')],_0x35cf59[_0x8965('0x25')]));members[_0x35cf59[_0x8965('0x5')]]=_[_0x8965('0x26')](members[_0x35cf59[_0x8965('0x5')]],{'data4':_0x35cf59[_0x8965('0x25')],'uniqueid':_0x35cf59[_0x8965('0xf')]});}}catch(_0x1d1f42){utils[_0x8965('0xe')](util['format']('[%s][members][agentcomplete]',_0x35cf59[_0x8965('0xf')]),_0x1d1f42);}};exports[_0x8965('0x27')]=function(_0x5c0db8){try{utils[_0x8965('0x28')](util[_0x8965('0x13')](_0x8965('0x29'),_0x5c0db8[_0x8965('0xf')]),_0x5c0db8);if(_0x5c0db8['channel']){var _0x179245=_0x5c0db8[_0x8965('0x2a')][_0x8965('0xd')]('-')[0x0];if(!_['isNil'](members[_0x179245])){members[_0x179245]=_[_0x8965('0x26')](members[_0x179245],{'data1':members[_0x179245][_0x8965('0x2b')]||_0x5c0db8[_0x8965('0x2c')],'data2':members[_0x179245][_0x8965('0x2d')]||_0x5c0db8[_0x8965('0x2e')],'data3':members[_0x179245][_0x8965('0x2f')]||_0x5c0db8[_0x8965('0x30')],'uniqueid':members[_0x179245]['uniqueid']||_0x5c0db8[_0x8965('0xf')]});utils[_0x8965('0x16')](util[_0x8965('0x13')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x5c0db8['uniqueid'],members[_0x179245]['data1'],members[_0x179245]['data2'],members[_0x179245][_0x8965('0x2f')]));if(members[_0x179245][_0x8965('0x21')]){writeDB(members[_0x179245]);}}}if(_0x5c0db8[_0x8965('0x31')]){var _0x13cbf9=_0x5c0db8[_0x8965('0x31')]['split']('-')[0x0];if(!_[_0x8965('0x1d')](members[_0x13cbf9])){members[_0x13cbf9]=_[_0x8965('0x26')](members[_0x13cbf9],{'data1':members[_0x13cbf9]['data1']||_0x5c0db8['type'],'data2':members[_0x13cbf9]['data2']||_0x5c0db8[_0x8965('0x2e')],'data3':members[_0x13cbf9]['data3']||_0x5c0db8[_0x8965('0x30')],'uniqueid':members[_0x13cbf9]['uniqueid']||_0x5c0db8[_0x8965('0xf')]});utils[_0x8965('0x16')](util[_0x8965('0x13')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x5c0db8[_0x8965('0xf')],members[_0x13cbf9]['data1'],members[_0x13cbf9][_0x8965('0x2d')],members[_0x13cbf9]['data3']));if(members[_0x13cbf9][_0x8965('0x21')]){writeDB(members[_0x13cbf9]);}}}}catch(_0x32a080){utils[_0x8965('0xe')](util[_0x8965('0x13')](_0x8965('0x29'),_0x5c0db8[_0x8965('0xf')]),_0x32a080);}};
\ No newline at end of file
+var _0xb583=['BUSY','voice','TALKING','now','NOT_INUSE','isNil','exitAt','duration','diffTime','enterAt','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','[%s][members][agentcomplete]','cdr','[%s][members][cdr]','channel','assign','data2','source','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data1','data3','destinationchannel','util','Local/_attended@transfer','Queue:','format','uniqueid','interface','type','getUserByInterface','then','membername','name','internal','request','CreateMemberReport','getUserByName','split','catch','error','some','devicestatechange','debug','[%s][members][devicestatechange]','device','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE'];(function(_0x5d684c,_0x567e53){var _0x2311bc=function(_0x202d13){while(--_0x202d13){_0x5d684c['push'](_0x5d684c['shift']());}};_0x2311bc(++_0x567e53);}(_0xb583,0x7b));var _0x3b58=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb583[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x3b58('0x0'));var utils=require('./utils');var members={};var exclude=[_0x3b58('0x1'),_0x3b58('0x2')];function writeDB(_0xdb9418){utils['info'](util[_0x3b58('0x3')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0xdb9418[_0x3b58('0x4')],_0xdb9418[_0x3b58('0x5')],_0xdb9418['channel'],_0xdb9418['data2'],_0xdb9418['membername'],_0xdb9418[_0x3b58('0x6')]));if(_0xdb9418[_0x3b58('0x5')]){utils[_0x3b58('0x7')](_0xdb9418[_0x3b58('0x5')])[_0x3b58('0x8')](function(_0x4895ea){if(_0x4895ea){_0xdb9418[_0x3b58('0x9')]=_0x4895ea[_0x3b58('0xa')];_0xdb9418[_0x3b58('0xb')]=_0x4895ea[_0x3b58('0xb')];utils[_0x3b58('0xc')](_0x3b58('0xd'),_0xdb9418);}else{utils[_0x3b58('0xe')](_0xdb9418[_0x3b58('0x5')][_0x3b58('0xf')]('/')[0x1])['then'](function(_0x16cd3e){if(_0x16cd3e){_0xdb9418['membername']=_0x16cd3e[_0x3b58('0xa')];_0xdb9418[_0x3b58('0xb')]=_0x16cd3e[_0x3b58('0xb')];utils['request'](_0x3b58('0xd'),_0xdb9418);}});}})[_0x3b58('0x10')](function(_0xd92267){utils[_0x3b58('0x11')](util['format']('[%s][members][writeDB]',_0xdb9418[_0x3b58('0x4')]),_0xd92267);});}delete members[_0xdb9418[_0x3b58('0x5')]];}function startsWith(_0x3b4302,_0x2b5994){return _[_0x3b58('0x12')](_0x3b4302,function(_0x161244){return _['startsWith'](_0x2b5994,_0x161244);});}exports[_0x3b58('0x13')]=function(_0x319e77){try{utils[_0x3b58('0x14')](util[_0x3b58('0x3')](_0x3b58('0x15'),members[_0x319e77[_0x3b58('0x16')]]?members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x4')]:_0x319e77['device']),_0x319e77);utils[_0x3b58('0x17')](util[_0x3b58('0x3')](_0x3b58('0x18'),members[_0x319e77[_0x3b58('0x16')]]?members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x4')]:_0x319e77[_0x3b58('0x16')],_0x319e77[_0x3b58('0x19')],_0x319e77['device']));switch(_0x319e77[_0x3b58('0x19')]){case _0x3b58('0x1a'):case _0x3b58('0x1b'):if(!startsWith(exclude,_0x319e77[_0x3b58('0x16')])){members[_0x319e77[_0x3b58('0x16')]]={'channel':_0x3b58('0x1c'),'interface':_0x319e77['device'],'type':_0x3b58('0x1d'),'enterAt':utils[_0x3b58('0x1e')](),'role':'agent'};}break;case _0x3b58('0x1f'):if(!_[_0x3b58('0x20')](members[_0x319e77[_0x3b58('0x16')]])){members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x21')]=utils['now']();members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x22')]=utils[_0x3b58('0x23')](members[_0x319e77['device']][_0x3b58('0x21')],members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x24')]);if(members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x4')]){writeDB(members[_0x319e77[_0x3b58('0x16')]]);}}break;default:break;}}catch(_0x372caf){utils[_0x3b58('0x11')](util[_0x3b58('0x3')](_0x3b58('0x15'),members[_0x319e77[_0x3b58('0x16')]]?members[_0x319e77[_0x3b58('0x16')]][_0x3b58('0x4')]:_0x319e77[_0x3b58('0x16')]),_0x372caf);}};exports['agentcomplete']=function(_0x3aa498){try{if(!_[_0x3b58('0x20')](members[_0x3aa498[_0x3b58('0x5')]])){utils[_0x3b58('0x14')](util['format']('[%s][members][agentcomplete]',_0x3aa498[_0x3b58('0x4')]),_0x3aa498);utils[_0x3b58('0x17')](util['format'](_0x3b58('0x25'),_0x3aa498[_0x3b58('0x4')],_0x3aa498['interface'],_0x3aa498['queue']));members[_0x3aa498[_0x3b58('0x5')]]=_['assign'](members[_0x3aa498[_0x3b58('0x5')]],{'data4':_0x3aa498['queue'],'uniqueid':_0x3aa498[_0x3b58('0x4')]});}}catch(_0x2d2bf5){utils['error'](util[_0x3b58('0x3')](_0x3b58('0x26'),_0x3aa498[_0x3b58('0x4')]),_0x2d2bf5);}};exports[_0x3b58('0x27')]=function(_0x4ddf06){try{utils[_0x3b58('0x14')](util[_0x3b58('0x3')](_0x3b58('0x28'),_0x4ddf06[_0x3b58('0x4')]),_0x4ddf06);if(_0x4ddf06[_0x3b58('0x29')]){var _0x2be41d=_0x4ddf06[_0x3b58('0x29')][_0x3b58('0xf')]('-')[0x0];if(!_['isNil'](members[_0x2be41d])){members[_0x2be41d]=_[_0x3b58('0x2a')](members[_0x2be41d],{'data1':members[_0x2be41d]['data1']||_0x4ddf06['type'],'data2':members[_0x2be41d][_0x3b58('0x2b')]||_0x4ddf06[_0x3b58('0x2c')],'data3':members[_0x2be41d]['data3']||_0x4ddf06[_0x3b58('0x2d')],'uniqueid':members[_0x2be41d][_0x3b58('0x4')]||_0x4ddf06[_0x3b58('0x4')]});utils[_0x3b58('0x17')](util[_0x3b58('0x3')](_0x3b58('0x2e'),_0x4ddf06[_0x3b58('0x4')],members[_0x2be41d][_0x3b58('0x2f')],members[_0x2be41d][_0x3b58('0x2b')],members[_0x2be41d][_0x3b58('0x30')]));if(members[_0x2be41d]['exitAt']){writeDB(members[_0x2be41d]);}}}if(_0x4ddf06[_0x3b58('0x31')]){var _0x3e34e8=_0x4ddf06[_0x3b58('0x31')][_0x3b58('0xf')]('-')[0x0];if(!_[_0x3b58('0x20')](members[_0x3e34e8])){members[_0x3e34e8]=_[_0x3b58('0x2a')](members[_0x3e34e8],{'data1':members[_0x3e34e8][_0x3b58('0x2f')]||_0x4ddf06['type'],'data2':members[_0x3e34e8]['data2']||_0x4ddf06[_0x3b58('0x2c')],'data3':members[_0x3e34e8]['data3']||_0x4ddf06[_0x3b58('0x2d')],'uniqueid':members[_0x3e34e8][_0x3b58('0x4')]||_0x4ddf06[_0x3b58('0x4')]});utils['info'](util[_0x3b58('0x3')](_0x3b58('0x2e'),_0x4ddf06[_0x3b58('0x4')],members[_0x3e34e8]['data1'],members[_0x3e34e8][_0x3b58('0x2b')],members[_0x3e34e8][_0x3b58('0x30')]));if(members[_0x3e34e8][_0x3b58('0x21')]){writeDB(members[_0x3e34e8]);}}}}catch(_0x4eec0b){utils[_0x3b58('0x11')](util[_0x3b58('0x3')](_0x3b58('0x28'),_0x4ddf06['uniqueid']),_0x4eec0b);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd253=['attendedtransfer','origtransfereruniqueid','origtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererlinkedid','origtransfererexten','ATTENDED','transfereelinkedid','queuecallerenterreason','clone','transfertargetuniqueid','calleridnum','calleridname','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','ATTENDEDTRANSFER','transfertargetlinkedid','[%s][queues][attendedtransfer]','musiconholdstartAt','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','[%s][queues][musiconholdstart]','musiconholdstop','[%s][queues][musiconholdstop]','lodash','./utils','info','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','channel','lastAssignedTo','queuecallerexitreason','queue','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','debug','format','[%s][queues][queuecallerjoin]','position','assign','now','error','isNil','[%s][queues][hangup]','queuecallerleaveAt','queuecallerabandon','queuecallerexit','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','name','varset','[%s][queues][varset]','variable','queuestatus','value','CONTINUE','queuecallerabandonAt','toUpperCase','queueposition','queuecallerexitAt','EXITWITHKEY','[%s][queues][queuecallerabandon]','ABANDONED','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]','connectedlinenum','connectedlinename','holdtime','diffTime','queuecallerjoinAt','count','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','assigned','accountcode','queuecallercomplete','queuecallercompleteAt','reason','transfer','TRANSFER','COMPLETEDBY','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','blindtransfer','transfereeuniqueid','[%s][queues][blindtransfer]','transfertype','BLIND','transferexten','transferuniqueid','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER'];(function(_0x4ae829,_0x2c842c){var _0x256b31=function(_0x34f104){while(--_0x34f104){_0x4ae829['push'](_0x4ae829['shift']());}};_0x256b31(++_0x2c842c);}(_0xd253,0xe5));var _0x3d25=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0xd253[_0x4c7fb5];return _0x2e10ac;};'use strict';var _=require(_0x3d25('0x0'));var util=require('util');var utils=require(_0x3d25('0x1'));var queues={};function writeDB(_0x1a8569){utils[_0x3d25('0x2')](util['format'](_0x3d25('0x3'),_0x1a8569[_0x3d25('0x4')],_0x1a8569[_0x3d25('0x5')],_0x1a8569['queue'],_0x1a8569[_0x3d25('0x6')],_0x1a8569['calleridnum'],_0x1a8569['accountcode'],_0x1a8569[_0x3d25('0x7')]));if(_0x1a8569[_0x3d25('0x8')]){utils[_0x3d25('0x9')](_0x1a8569['queue'])[_0x3d25('0xa')](function(_0x5e9d60){if(_0x5e9d60){_0x1a8569[_0x3d25('0xb')]=_0x5e9d60[_0x3d25('0xb')];}utils[_0x3d25('0xc')](_0x3d25('0xd'),_0x1a8569);});}else{utils[_0x3d25('0xc')](_0x3d25('0xd'),_0x1a8569);}if(_0x1a8569[_0x3d25('0xe')]){delete queues[_0x1a8569[_0x3d25('0xe')]];}else{delete queues[_0x1a8569[_0x3d25('0x4')]];}}exports[_0x3d25('0xf')]=function(_0x293d85){try{utils[_0x3d25('0x10')](util[_0x3d25('0x11')](_0x3d25('0x12'),_0x293d85[_0x3d25('0x4')]),_0x293d85);utils[_0x3d25('0x2')](util[_0x3d25('0x11')]('[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s',_0x293d85[_0x3d25('0x4')],_0x293d85[_0x3d25('0x8')],_0x293d85[_0x3d25('0x13')]));queues[_0x293d85[_0x3d25('0x4')]]=_[_0x3d25('0x14')](_0x293d85,{'originalposition':_0x293d85[_0x3d25('0x13')],'queuecallerjoinAt':utils[_0x3d25('0x15')](),'mohtime':0x0});}catch(_0x18c890){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x12'),_0x293d85[_0x3d25('0x4')]),_0x18c890);}};exports['hangup']=function(_0x16926c){try{if(!_[_0x3d25('0x17')](queues[_0x16926c[_0x3d25('0x4')]])){utils[_0x3d25('0x10')](util[_0x3d25('0x11')](_0x3d25('0x18'),_0x16926c[_0x3d25('0x4')]),_0x16926c);if(queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0x19')]){if(!queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0x1a')]&&!queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0x1b')]){queues[_0x16926c[_0x3d25('0x4')]]['queuecallercomplete']=!![];queues[_0x16926c[_0x3d25('0x4')]]['queuecallercompleteAt']=utils['now']();queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0x7')]='COMPLETEDBYAGENT';}utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x1c'),_0x16926c['uniqueid'],queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0x1d')],queues[_0x16926c['uniqueid']][_0x3d25('0x7')]));writeDB(queues[_0x16926c['uniqueid']]);}else if(queues[_0x16926c['uniqueid']][_0x3d25('0xe')]){utils[_0x3d25('0x2')](util['format']('[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s',_0x16926c['uniqueid'],queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0x1d')],queues[_0x16926c['uniqueid']][_0x3d25('0xe')]));queues[queues[_0x16926c[_0x3d25('0x4')]][_0x3d25('0xe')]]=queues[_0x16926c[_0x3d25('0x4')]];queues[queues[_0x16926c['uniqueid']][_0x3d25('0xe')]]['queuecallerenterreason']=0x2;delete queues[_0x16926c[_0x3d25('0x4')]];}}}catch(_0x18c7b0){utils[_0x3d25('0x16')](util[_0x3d25('0x11')]('[%s][queues][hangup]',_0x16926c[_0x3d25('0x4')]),_0x18c7b0);}};exports[_0x3d25('0x1e')]=function(_0x161ace){try{utils[_0x3d25('0x10')](util['format'](_0x3d25('0x1f'),_0x161ace[_0x3d25('0x4')]),_0x161ace);if(!_[_0x3d25('0x17')](_0x161ace[_0x3d25('0x20')][_0x3d25('0x21')])&&_0x161ace[_0x3d25('0x22')]['toUpperCase']()!==_0x3d25('0x23')){if(!_['isNil'](queues[_0x161ace['uniqueid']])){queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x1a')]=![];queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x24')]=null;queues[_0x161ace['uniqueid']]['queuecallerexit']=!![];queues[_0x161ace['uniqueid']]['queuecallerexitAt']=utils[_0x3d25('0x15')]();queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x7')]=_0x161ace[_0x3d25('0x22')][_0x3d25('0x25')]();utils[_0x3d25('0x2')](util[_0x3d25('0x11')]('[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s',_0x161ace[_0x3d25('0x4')],queues[_0x161ace[_0x3d25('0x4')]]['name'],_0x161ace[_0x3d25('0x22')],queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x7')]));writeDB(queues[_0x161ace[_0x3d25('0x4')]]);}}else if(!_['isNil'](_0x161ace[_0x3d25('0x20')][_0x3d25('0x26')])){if(!_[_0x3d25('0x17')](queues[_0x161ace[_0x3d25('0x4')]])&&!queues[_0x161ace['uniqueid']]['queuecallerabandon']){queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x1a')]=![];queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x24')]=null;queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x1b')]=!![];queues[_0x161ace['uniqueid']][_0x3d25('0x27')]=utils[_0x3d25('0x15')]();queues[_0x161ace[_0x3d25('0x4')]]['queuecallerexitreason']=_0x3d25('0x28');utils['info'](util[_0x3d25('0x11')]('[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s',_0x161ace[_0x3d25('0x4')],queues[_0x161ace[_0x3d25('0x4')]][_0x3d25('0x1d')],_0x161ace[_0x3d25('0x22')],queues[_0x161ace['uniqueid']][_0x3d25('0x7')]));}}}catch(_0xd3cdf2){utils[_0x3d25('0x16')](util['format'](_0x3d25('0x1f'),_0x161ace['uniqueid']),_0xd3cdf2);}};exports['queuecallerabandon']=function(_0x4e7bb7){try{if(!_[_0x3d25('0x17')](queues[_0x4e7bb7[_0x3d25('0x4')]])){utils[_0x3d25('0x10')](util[_0x3d25('0x11')](_0x3d25('0x29'),_0x4e7bb7['uniqueid']),_0x4e7bb7);queues[_0x4e7bb7[_0x3d25('0x4')]][_0x3d25('0x1b')]=![];queues[_0x4e7bb7['uniqueid']][_0x3d25('0x27')]=null;queues[_0x4e7bb7[_0x3d25('0x4')]]['queuecallerabandon']=!![];queues[_0x4e7bb7[_0x3d25('0x4')]][_0x3d25('0x24')]=utils[_0x3d25('0x15')]();queues[_0x4e7bb7[_0x3d25('0x4')]][_0x3d25('0x7')]=_0x3d25('0x2a');utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x2b'),_0x4e7bb7[_0x3d25('0x4')],queues[_0x4e7bb7[_0x3d25('0x4')]]['name'],queues[_0x4e7bb7[_0x3d25('0x4')]][_0x3d25('0x7')]));}}catch(_0x59246f){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x29'),_0x4e7bb7[_0x3d25('0x4')]),_0x59246f);}};exports[_0x3d25('0x2c')]=function(_0xce3a36){try{if(!_[_0x3d25('0x17')](queues[_0xce3a36['uniqueid']])){utils[_0x3d25('0x10')](util[_0x3d25('0x11')](_0x3d25('0x2d'),_0xce3a36[_0x3d25('0x4')]),_0xce3a36);utils['info'](util[_0x3d25('0x11')]('[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s',_0xce3a36['uniqueid'],queues[_0xce3a36[_0x3d25('0x4')]][_0x3d25('0x1d')],_0xce3a36[_0x3d25('0x2e')],_0xce3a36[_0x3d25('0x2f')]));queues[_0xce3a36[_0x3d25('0x4')]][_0x3d25('0x2c')]=!![];queues[_0xce3a36[_0x3d25('0x4')]]['queuecallerleaveAt']=utils['now']();queues[_0xce3a36[_0x3d25('0x4')]][_0x3d25('0x30')]=utils[_0x3d25('0x31')](queues[_0xce3a36['uniqueid']][_0x3d25('0x19')],queues[_0xce3a36['uniqueid']][_0x3d25('0x32')]);queues[_0xce3a36[_0x3d25('0x4')]][_0x3d25('0x13')]=_0xce3a36[_0x3d25('0x13')];queues[_0xce3a36[_0x3d25('0x4')]]['count']=_0xce3a36[_0x3d25('0x33')];queues[_0xce3a36['uniqueid']][_0x3d25('0x2e')]=_0xce3a36[_0x3d25('0x2e')];queues[_0xce3a36[_0x3d25('0x4')]][_0x3d25('0x2f')]=_0xce3a36[_0x3d25('0x2f')];}}catch(_0x3b3f8f){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x2d'),_0xce3a36['uniqueid']),_0x3b3f8f);}};exports['agentconnect']=function(_0x2cb4ef){try{if(!_[_0x3d25('0x17')](queues[_0x2cb4ef[_0x3d25('0x4')]])){utils[_0x3d25('0x10')](util[_0x3d25('0x11')](_0x3d25('0x34'),_0x2cb4ef[_0x3d25('0x4')]),_0x2cb4ef);utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x35'),_0x2cb4ef['uniqueid'],queues[_0x2cb4ef['uniqueid']]['name'],_0x2cb4ef[_0x3d25('0x36')],_0x2cb4ef[_0x3d25('0x37')]));queues[_0x2cb4ef[_0x3d25('0x4')]]['queuecallerabandon']=![];queues[_0x2cb4ef[_0x3d25('0x4')]][_0x3d25('0x1a')]=![];queues[_0x2cb4ef[_0x3d25('0x4')]][_0x3d25('0x24')]=null;queues[_0x2cb4ef[_0x3d25('0x4')]][_0x3d25('0x1b')]=![];queues[_0x2cb4ef[_0x3d25('0x4')]][_0x3d25('0x7')]=null;queues[_0x2cb4ef[_0x3d25('0x4')]]['queuecallerexitAt']=null;queues[_0x2cb4ef['uniqueid']][_0x3d25('0x38')]=!![];queues[_0x2cb4ef[_0x3d25('0x4')]][_0x3d25('0x39')]=_0x2cb4ef[_0x3d25('0x37')];queues[_0x2cb4ef['uniqueid']]['lastAssignedTo']=_0x2cb4ef['membername'];}}catch(_0x5a5081){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x34'),_0x2cb4ef[_0x3d25('0x4')]),_0x5a5081);}};exports['agentcomplete']=function(_0x51b6e7){try{if(!_[_0x3d25('0x17')](queues[_0x51b6e7[_0x3d25('0x4')]])){if(queues[_0x51b6e7['uniqueid']][_0x3d25('0x19')]){utils[_0x3d25('0x10')](util[_0x3d25('0x11')]('[%s][queues][agentcomplete]',_0x51b6e7['uniqueid']),_0x51b6e7);queues[_0x51b6e7['uniqueid']][_0x3d25('0x1a')]=![];queues[_0x51b6e7[_0x3d25('0x4')]][_0x3d25('0x1a')]=![];queues[_0x51b6e7['uniqueid']][_0x3d25('0x24')]=null;queues[_0x51b6e7[_0x3d25('0x4')]][_0x3d25('0x1b')]=![];queues[_0x51b6e7['uniqueid']][_0x3d25('0x27')]=null;queues[_0x51b6e7['uniqueid']][_0x3d25('0x38')]=!![];queues[_0x51b6e7['uniqueid']][_0x3d25('0x6')]=_0x51b6e7[_0x3d25('0x36')];queues[_0x51b6e7[_0x3d25('0x4')]][_0x3d25('0x3a')]=!![];queues[_0x51b6e7[_0x3d25('0x4')]][_0x3d25('0x3b')]=utils['now']();if(_0x51b6e7[_0x3d25('0x3c')]==_0x3d25('0x3d')){if(!queues[_0x51b6e7[_0x3d25('0x4')]][_0x3d25('0x3d')]){queues[_0x51b6e7[_0x3d25('0x4')]]['queuecallerexitreason']=_0x3d25('0x3e');}}else{queues[_0x51b6e7[_0x3d25('0x4')]][_0x3d25('0x7')]=_0x3d25('0x3f')+_0x51b6e7[_0x3d25('0x3c')][_0x3d25('0x25')]();}utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x40'),_0x51b6e7[_0x3d25('0x4')],queues[_0x51b6e7['uniqueid']][_0x3d25('0x1d')],_0x51b6e7['membername'],queues[_0x51b6e7['uniqueid']][_0x3d25('0x7')]));writeDB(queues[_0x51b6e7[_0x3d25('0x4')]]);}}}catch(_0x311f68){utils[_0x3d25('0x16')](util[_0x3d25('0x11')]('[%s][queues][agentcomplete]',_0x51b6e7[_0x3d25('0x4')]),_0x311f68);}};exports[_0x3d25('0x41')]=function(_0x1b745d){try{if(!_[_0x3d25('0x17')](queues[_0x1b745d[_0x3d25('0x42')]])){utils['debug'](util[_0x3d25('0x11')](_0x3d25('0x43'),_0x1b745d[_0x3d25('0x4')]),_0x1b745d);queues[_0x1b745d[_0x3d25('0x42')]][_0x3d25('0x3d')]=!![];queues[_0x1b745d[_0x3d25('0x42')]][_0x3d25('0x44')]=_0x3d25('0x45');queues[_0x1b745d[_0x3d25('0x42')]][_0x3d25('0x46')]=_0x1b745d['extension'];queues[_0x1b745d[_0x3d25('0x42')]][_0x3d25('0x47')]=_0x1b745d[_0x3d25('0x42')];queues[_0x1b745d[_0x3d25('0x42')]][_0x3d25('0x7')]=_0x3d25('0x48');utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x49'),_0x1b745d['uniqueid'],queues[_0x1b745d[_0x3d25('0x42')]]['name'],_0x1b745d[_0x3d25('0x42')],_0x1b745d['extension']));}}catch(_0x2c539a){utils['error'](util['format'](_0x3d25('0x43'),_0x1b745d['uniqueid']),_0x2c539a);}};exports[_0x3d25('0x4a')]=function(_0x181a30){try{utils[_0x3d25('0x10')](util['format']('[%s][queues][attendedtransfer]',_0x181a30[_0x3d25('0x4b')]),_0x181a30);if(_0x181a30[_0x3d25('0x4b')]==_0x181a30[_0x3d25('0x4c')]){if(!_['isNil'](queues[_0x181a30['secondtransfererlinkedid']])){utils['info'](util[_0x3d25('0x11')](_0x3d25('0x4d'),_0x181a30[_0x3d25('0x4b')],queues[_0x181a30[_0x3d25('0x4e')]][_0x3d25('0x1d')],_0x181a30[_0x3d25('0x4f')]));queues[_0x181a30['secondtransfererlinkedid']][_0x3d25('0x3d')]=!![];queues[_0x181a30[_0x3d25('0x4e')]][_0x3d25('0x44')]=_0x3d25('0x50');queues[_0x181a30[_0x3d25('0x4e')]][_0x3d25('0x46')]=_0x181a30[_0x3d25('0x4f')];queues[_0x181a30[_0x3d25('0x4e')]]['transferuniqueid']=_0x181a30['origtransfereruniqueid'];queues[_0x181a30['secondtransfererlinkedid']]['queuecallerexitreason']='ATTENDEDTRANSFER';}if(!_[_0x3d25('0x17')](queues[_0x181a30[_0x3d25('0x4c')]])){if(_0x181a30[_0x3d25('0x51')]&&queues[_0x181a30[_0x3d25('0x51')]]){queues[_0x181a30['transfereelinkedid']][_0x3d25('0x52')]=0x1;queues[_0x181a30['transfereeuniqueid']]=_[_0x3d25('0x53')](queues[_0x181a30[_0x3d25('0x51')]]);queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0xe')]=_0x181a30[_0x3d25('0x54')];queues[_0x181a30['transfereeuniqueid']]['queuecallerenterreason']=0x2;queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x55')]=queues[_0x181a30['secondtransfererlinkedid']][_0x3d25('0x55')];queues[_0x181a30['transfereeuniqueid']]['calleridname']=queues[_0x181a30['secondtransfererlinkedid']][_0x3d25('0x56')];queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x32')]=utils[_0x3d25('0x15')]();queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x19')]=utils[_0x3d25('0x15')]();queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x30')]=0x0;queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x57')]=0x0;utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x58'),_0x181a30[_0x3d25('0x4b')],queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x1d')],queues[_0x181a30[_0x3d25('0x42')]]['calleridnum'],queues[_0x181a30[_0x3d25('0x42')]][_0x3d25('0x56')]));}else{utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x59'),_0x181a30[_0x3d25('0x4b')],queues[_0x181a30['origtransfererlinkedid']]['name'],_0x181a30[_0x3d25('0x4e')]));queues[_0x181a30['origtransfererlinkedid']]['transfereduniqueid']=_0x181a30[_0x3d25('0x4e')];}}}else if(_0x181a30[_0x3d25('0x5a')]==_0x181a30[_0x3d25('0x4e')]){if(!_[_0x3d25('0x17')](queues[_0x181a30[_0x3d25('0x4c')]])){utils['info'](util[_0x3d25('0x11')](_0x3d25('0x5b'),_0x181a30['origtransfereruniqueid'],queues[_0x181a30[_0x3d25('0x4c')]]['name'],_0x181a30[_0x3d25('0x5a')],_0x181a30[_0x3d25('0x5c')]));queues[_0x181a30[_0x3d25('0x4c')]]['transfer']=!![];queues[_0x181a30[_0x3d25('0x4c')]]['transfertype']=_0x3d25('0x50');queues[_0x181a30['origtransfererlinkedid']][_0x3d25('0x46')]=_0x181a30['secondtransfererexten'];queues[_0x181a30[_0x3d25('0x4c')]][_0x3d25('0x47')]=_0x181a30[_0x3d25('0x5a')];queues[_0x181a30[_0x3d25('0x4c')]]['queuecallerexitreason']=_0x3d25('0x5d');}if(!_['isNil'](queues[_0x181a30[_0x3d25('0x4e')]])){if(_0x181a30[_0x3d25('0x5e')]&&queues[_0x181a30[_0x3d25('0x5e')]]){queues[_0x181a30[_0x3d25('0x5e')]][_0x3d25('0x52')]=0x1;queues[_0x181a30['transfertargetuniqueid']]=_[_0x3d25('0x53')](queues[_0x181a30[_0x3d25('0x5e')]]);queues[_0x181a30[_0x3d25('0x54')]][_0x3d25('0xe')]=_0x181a30['transfertargetuniqueid'];queues[_0x181a30[_0x3d25('0x54')]]['queuecallerenterreason']=0x2;queues[_0x181a30[_0x3d25('0x54')]]['calleridnum']=queues[_0x181a30[_0x3d25('0x4c')]][_0x3d25('0x55')];queues[_0x181a30[_0x3d25('0x54')]][_0x3d25('0x56')]=queues[_0x181a30[_0x3d25('0x4c')]][_0x3d25('0x56')];queues[_0x181a30['transfertargetuniqueid']][_0x3d25('0x32')]=utils[_0x3d25('0x15')]();queues[_0x181a30[_0x3d25('0x54')]][_0x3d25('0x19')]=utils[_0x3d25('0x15')]();queues[_0x181a30['transfertargetuniqueid']][_0x3d25('0x30')]=0x0;queues[_0x181a30['transfertargetuniqueid']]['mohtime']=0x0;utils['info'](util[_0x3d25('0x11')]('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s',_0x181a30['origtransfereruniqueid'],queues[_0x181a30[_0x3d25('0x54')]][_0x3d25('0x1d')],queues[_0x181a30['transfertargetuniqueid']][_0x3d25('0xe')],queues[_0x181a30[_0x3d25('0x54')]][_0x3d25('0x55')],queues[_0x181a30['transfertargetuniqueid']][_0x3d25('0x56')]));}else{utils['info'](util[_0x3d25('0x11')]('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s',_0x181a30[_0x3d25('0x4b')],queues[_0x181a30[_0x3d25('0x4e')]][_0x3d25('0x1d')],_0x181a30['origtransfererlinkedid']));queues[_0x181a30[_0x3d25('0x4e')]]['transfereduniqueid']=_0x181a30[_0x3d25('0x4c')];}}}}catch(_0x309fd0){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x5f'),_0x181a30[_0x3d25('0x4b')]),_0x309fd0);}};exports['musiconholdstart']=function(_0x5d7d43){try{if(!_['isNil'](queues[_0x5d7d43[_0x3d25('0x4')]])){utils[_0x3d25('0x10')](util[_0x3d25('0x11')]('[%s][queues][musiconholdstart]',_0x5d7d43[_0x3d25('0x4')]),_0x5d7d43);queues[_0x5d7d43[_0x3d25('0x4')]][_0x3d25('0x60')]=utils[_0x3d25('0x15')]();utils[_0x3d25('0x2')](util[_0x3d25('0x11')](_0x3d25('0x61'),_0x5d7d43[_0x3d25('0x4')],queues[_0x5d7d43['uniqueid']][_0x3d25('0x1d')],queues[_0x5d7d43[_0x3d25('0x4')]][_0x3d25('0x60')]));}}catch(_0x22650d){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x62'),_0x5d7d43[_0x3d25('0x4')]),_0x22650d);}};exports[_0x3d25('0x63')]=function(_0x55a4f5){try{if(!_[_0x3d25('0x17')](queues[_0x55a4f5[_0x3d25('0x4')]])){if(!_[_0x3d25('0x17')](queues[_0x55a4f5[_0x3d25('0x4')]]['musiconholdstartAt'])){utils[_0x3d25('0x10')](util['format'](_0x3d25('0x64'),_0x55a4f5[_0x3d25('0x4')]),_0x55a4f5);queues[_0x55a4f5[_0x3d25('0x4')]][_0x3d25('0x57')]+=utils[_0x3d25('0x31')](utils[_0x3d25('0x15')](),queues[_0x55a4f5[_0x3d25('0x4')]][_0x3d25('0x60')]);utils[_0x3d25('0x2')](util[_0x3d25('0x11')]('[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s',_0x55a4f5[_0x3d25('0x4')],queues[_0x55a4f5[_0x3d25('0x4')]][_0x3d25('0x1d')],queues[_0x55a4f5['uniqueid']][_0x3d25('0x57')]));delete queues[_0x55a4f5[_0x3d25('0x4')]][_0x3d25('0x60')];}}}catch(_0x1f6306){utils[_0x3d25('0x16')](util[_0x3d25('0x11')](_0x3d25('0x64'),_0x55a4f5['uniqueid']),_0x1f6306);}};
\ No newline at end of file
+var _0x8386=['./utils','info','format','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','queue','lastAssignedTo','calleridnum','accountcode','queuecallerexitreason','getVoiceQueueByName','type','request','CreateVoiceQueueReport','transfereduniqueid','queuecallerjoin','debug','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','now','hangup','[%s][queues][hangup]','queuecallerleaveAt','queuecallerabandon','queuecallerexit','queuecallercomplete','COMPLETEDBYAGENT','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s','name','queuecallerenterreason','[%s][queues][varset]','isNil','variable','queuestatus','value','toUpperCase','CONTINUE','queuecallerexitAt','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','queueposition','queuecallerabandonAt','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','error','[%s][queues][queuecallerabandon]','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinenum','diffTime','queuecallerjoinAt','count','connectedlinename','agentconnect','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','assigned','agentcomplete','[%s][queues][agentcomplete]','queuecallercompleteAt','reason','transfer','TRANSFER','COMPLETEDBY','blindtransfer','[%s][queues][blindtransfer]','transfereeuniqueid','transfertype','transferexten','extension','transferuniqueid','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','attendedtransfer','[%s][queues][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','secondtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','origtransfererexten','ATTENDEDTRANSFER','transfereelinkedid','clone','transfertargetuniqueid','calleridname','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','ATTENDED','transfertargetlinkedid','holdtime','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','musiconholdstart','musiconholdstartAt','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','[%s][queues][musiconholdstart]','musiconholdstop','[%s][queues][musiconholdstop]','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','lodash','util'];(function(_0x535d2e,_0x5392e1){var _0x1bdca5=function(_0x920f8b){while(--_0x920f8b){_0x535d2e['push'](_0x535d2e['shift']());}};_0x1bdca5(++_0x5392e1);}(_0x8386,0x148));var _0x6838=function(_0x2ed734,_0x15ef2e){_0x2ed734=_0x2ed734-0x0;var _0x5152bd=_0x8386[_0x2ed734];return _0x5152bd;};'use strict';var _=require(_0x6838('0x0'));var util=require(_0x6838('0x1'));var utils=require(_0x6838('0x2'));var queues={};function writeDB(_0x18523a){utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x5'),_0x18523a[_0x6838('0x6')],_0x18523a['channel'],_0x18523a[_0x6838('0x7')],_0x18523a[_0x6838('0x8')],_0x18523a[_0x6838('0x9')],_0x18523a[_0x6838('0xa')],_0x18523a[_0x6838('0xb')]));if(_0x18523a[_0x6838('0x7')]){utils[_0x6838('0xc')](_0x18523a[_0x6838('0x7')])['then'](function(_0x351753){if(_0x351753){_0x18523a[_0x6838('0xd')]=_0x351753[_0x6838('0xd')];}utils[_0x6838('0xe')](_0x6838('0xf'),_0x18523a);});}else{utils['request']('CreateVoiceQueueReport',_0x18523a);}if(_0x18523a[_0x6838('0x10')]){delete queues[_0x18523a['transfereduniqueid']];}else{delete queues[_0x18523a[_0x6838('0x6')]];}}exports[_0x6838('0x11')]=function(_0x307ef9){try{utils[_0x6838('0x12')](util[_0x6838('0x4')](_0x6838('0x13'),_0x307ef9['uniqueid']),_0x307ef9);utils['info'](util[_0x6838('0x4')](_0x6838('0x14'),_0x307ef9['uniqueid'],_0x307ef9[_0x6838('0x7')],_0x307ef9[_0x6838('0x15')]));queues[_0x307ef9[_0x6838('0x6')]]=_[_0x6838('0x16')](_0x307ef9,{'originalposition':_0x307ef9[_0x6838('0x15')],'queuecallerjoinAt':utils[_0x6838('0x17')](),'mohtime':0x0});}catch(_0x248f77){utils['error'](util['format'](_0x6838('0x13'),_0x307ef9[_0x6838('0x6')]),_0x248f77);}};exports[_0x6838('0x18')]=function(_0xb1b424){try{if(!_['isNil'](queues[_0xb1b424[_0x6838('0x6')]])){utils[_0x6838('0x12')](util[_0x6838('0x4')](_0x6838('0x19'),_0xb1b424['uniqueid']),_0xb1b424);if(queues[_0xb1b424['uniqueid']][_0x6838('0x1a')]){if(!queues[_0xb1b424[_0x6838('0x6')]][_0x6838('0x1b')]&&!queues[_0xb1b424[_0x6838('0x6')]][_0x6838('0x1c')]){queues[_0xb1b424[_0x6838('0x6')]][_0x6838('0x1d')]=!![];queues[_0xb1b424[_0x6838('0x6')]]['queuecallercompleteAt']=utils[_0x6838('0x17')]();queues[_0xb1b424[_0x6838('0x6')]][_0x6838('0xb')]=_0x6838('0x1e');}utils['info'](util[_0x6838('0x4')](_0x6838('0x1f'),_0xb1b424['uniqueid'],queues[_0xb1b424[_0x6838('0x6')]]['name'],queues[_0xb1b424['uniqueid']][_0x6838('0xb')]));writeDB(queues[_0xb1b424[_0x6838('0x6')]]);}else if(queues[_0xb1b424[_0x6838('0x6')]]['transfereduniqueid']){utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x20'),_0xb1b424[_0x6838('0x6')],queues[_0xb1b424['uniqueid']][_0x6838('0x21')],queues[_0xb1b424[_0x6838('0x6')]][_0x6838('0x10')]));queues[queues[_0xb1b424['uniqueid']]['transfereduniqueid']]=queues[_0xb1b424[_0x6838('0x6')]];queues[queues[_0xb1b424[_0x6838('0x6')]][_0x6838('0x10')]][_0x6838('0x22')]=0x2;delete queues[_0xb1b424['uniqueid']];}}}catch(_0xfb69b0){utils['error'](util[_0x6838('0x4')](_0x6838('0x19'),_0xb1b424['uniqueid']),_0xfb69b0);}};exports['varset']=function(_0x2696d0){try{utils['debug'](util[_0x6838('0x4')](_0x6838('0x23'),_0x2696d0[_0x6838('0x6')]),_0x2696d0);if(!_[_0x6838('0x24')](_0x2696d0[_0x6838('0x25')][_0x6838('0x26')])&&_0x2696d0[_0x6838('0x27')][_0x6838('0x28')]()!==_0x6838('0x29')){if(!_['isNil'](queues[_0x2696d0[_0x6838('0x6')]])){queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x1b')]=![];queues[_0x2696d0[_0x6838('0x6')]]['queuecallerabandonAt']=null;queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x1c')]=!![];queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x2a')]=utils['now']();queues[_0x2696d0[_0x6838('0x6')]]['queuecallerexitreason']=_0x2696d0[_0x6838('0x27')]['toUpperCase']();utils[_0x6838('0x3')](util['format'](_0x6838('0x2b'),_0x2696d0['uniqueid'],queues[_0x2696d0[_0x6838('0x6')]]['name'],_0x2696d0[_0x6838('0x27')],queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0xb')]));writeDB(queues[_0x2696d0['uniqueid']]);}}else if(!_['isNil'](_0x2696d0[_0x6838('0x25')][_0x6838('0x2c')])){if(!_[_0x6838('0x24')](queues[_0x2696d0[_0x6838('0x6')]])&&!queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x1b')]){queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x1b')]=![];queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x2d')]=null;queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x1c')]=!![];queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x2a')]=utils[_0x6838('0x17')]();queues[_0x2696d0['uniqueid']][_0x6838('0xb')]=_0x6838('0x2e');utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x2f'),_0x2696d0[_0x6838('0x6')],queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0x21')],_0x2696d0[_0x6838('0x27')],queues[_0x2696d0[_0x6838('0x6')]][_0x6838('0xb')]));}}}catch(_0x1938d3){utils[_0x6838('0x30')](util[_0x6838('0x4')]('[%s][queues][varset]',_0x2696d0[_0x6838('0x6')]),_0x1938d3);}};exports['queuecallerabandon']=function(_0x8af0a9){try{if(!_[_0x6838('0x24')](queues[_0x8af0a9[_0x6838('0x6')]])){utils[_0x6838('0x12')](util['format'](_0x6838('0x31'),_0x8af0a9[_0x6838('0x6')]),_0x8af0a9);queues[_0x8af0a9[_0x6838('0x6')]][_0x6838('0x1c')]=![];queues[_0x8af0a9['uniqueid']][_0x6838('0x2a')]=null;queues[_0x8af0a9['uniqueid']][_0x6838('0x1b')]=!![];queues[_0x8af0a9['uniqueid']][_0x6838('0x2d')]=utils[_0x6838('0x17')]();queues[_0x8af0a9['uniqueid']][_0x6838('0xb')]='ABANDONED';utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x32'),_0x8af0a9[_0x6838('0x6')],queues[_0x8af0a9['uniqueid']][_0x6838('0x21')],queues[_0x8af0a9['uniqueid']][_0x6838('0xb')]));}}catch(_0x551f69){utils[_0x6838('0x30')](util['format'](_0x6838('0x31'),_0x8af0a9['uniqueid']),_0x551f69);}};exports[_0x6838('0x33')]=function(_0x3e1403){try{if(!_[_0x6838('0x24')](queues[_0x3e1403['uniqueid']])){utils['debug'](util[_0x6838('0x4')](_0x6838('0x34'),_0x3e1403['uniqueid']),_0x3e1403);utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x35'),_0x3e1403[_0x6838('0x6')],queues[_0x3e1403[_0x6838('0x6')]][_0x6838('0x21')],_0x3e1403[_0x6838('0x36')],_0x3e1403['connectedlinename']));queues[_0x3e1403[_0x6838('0x6')]]['queuecallerleave']=!![];queues[_0x3e1403[_0x6838('0x6')]]['queuecallerleaveAt']=utils[_0x6838('0x17')]();queues[_0x3e1403[_0x6838('0x6')]]['holdtime']=utils[_0x6838('0x37')](queues[_0x3e1403[_0x6838('0x6')]][_0x6838('0x1a')],queues[_0x3e1403[_0x6838('0x6')]][_0x6838('0x38')]);queues[_0x3e1403[_0x6838('0x6')]][_0x6838('0x15')]=_0x3e1403[_0x6838('0x15')];queues[_0x3e1403['uniqueid']][_0x6838('0x39')]=_0x3e1403[_0x6838('0x39')];queues[_0x3e1403[_0x6838('0x6')]][_0x6838('0x36')]=_0x3e1403[_0x6838('0x36')];queues[_0x3e1403[_0x6838('0x6')]][_0x6838('0x3a')]=_0x3e1403[_0x6838('0x3a')];}}catch(_0xeac0eb){utils[_0x6838('0x30')](util[_0x6838('0x4')]('[%s][queues][queuecallerleave]',_0x3e1403[_0x6838('0x6')]),_0xeac0eb);}};exports[_0x6838('0x3b')]=function(_0x22169c){try{if(!_[_0x6838('0x24')](queues[_0x22169c['uniqueid']])){utils[_0x6838('0x12')](util[_0x6838('0x4')](_0x6838('0x3c'),_0x22169c['uniqueid']),_0x22169c);utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x3d'),_0x22169c['uniqueid'],queues[_0x22169c[_0x6838('0x6')]][_0x6838('0x21')],_0x22169c[_0x6838('0x3e')],_0x22169c[_0x6838('0x3f')]));queues[_0x22169c[_0x6838('0x6')]]['queuecallerabandon']=![];queues[_0x22169c['uniqueid']][_0x6838('0x1b')]=![];queues[_0x22169c[_0x6838('0x6')]]['queuecallerabandonAt']=null;queues[_0x22169c[_0x6838('0x6')]]['queuecallerexit']=![];queues[_0x22169c['uniqueid']][_0x6838('0xb')]=null;queues[_0x22169c['uniqueid']][_0x6838('0x2a')]=null;queues[_0x22169c[_0x6838('0x6')]][_0x6838('0x40')]=!![];queues[_0x22169c[_0x6838('0x6')]]['accountcode']=_0x22169c[_0x6838('0x3f')];queues[_0x22169c[_0x6838('0x6')]][_0x6838('0x8')]=_0x22169c[_0x6838('0x3e')];}}catch(_0x4a475e){utils['error'](util[_0x6838('0x4')](_0x6838('0x3c'),_0x22169c[_0x6838('0x6')]),_0x4a475e);}};exports[_0x6838('0x41')]=function(_0x324521){try{if(!_[_0x6838('0x24')](queues[_0x324521['uniqueid']])){if(queues[_0x324521[_0x6838('0x6')]][_0x6838('0x1a')]){utils['debug'](util[_0x6838('0x4')](_0x6838('0x42'),_0x324521['uniqueid']),_0x324521);queues[_0x324521[_0x6838('0x6')]][_0x6838('0x1b')]=![];queues[_0x324521['uniqueid']]['queuecallerabandon']=![];queues[_0x324521[_0x6838('0x6')]][_0x6838('0x2d')]=null;queues[_0x324521['uniqueid']][_0x6838('0x1c')]=![];queues[_0x324521[_0x6838('0x6')]]['queuecallerexitAt']=null;queues[_0x324521[_0x6838('0x6')]][_0x6838('0x40')]=!![];queues[_0x324521[_0x6838('0x6')]]['lastAssignedTo']=_0x324521[_0x6838('0x3e')];queues[_0x324521[_0x6838('0x6')]][_0x6838('0x1d')]=!![];queues[_0x324521[_0x6838('0x6')]][_0x6838('0x43')]=utils[_0x6838('0x17')]();if(_0x324521[_0x6838('0x44')]==_0x6838('0x45')){if(!queues[_0x324521[_0x6838('0x6')]][_0x6838('0x45')]){queues[_0x324521[_0x6838('0x6')]]['queuecallerexitreason']=_0x6838('0x46');}}else{queues[_0x324521[_0x6838('0x6')]][_0x6838('0xb')]=_0x6838('0x47')+_0x324521['reason'][_0x6838('0x28')]();}utils[_0x6838('0x3')](util[_0x6838('0x4')]('[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s',_0x324521['uniqueid'],queues[_0x324521[_0x6838('0x6')]]['name'],_0x324521[_0x6838('0x3e')],queues[_0x324521['uniqueid']][_0x6838('0xb')]));writeDB(queues[_0x324521['uniqueid']]);}}}catch(_0x20909f){utils[_0x6838('0x30')](util[_0x6838('0x4')](_0x6838('0x42'),_0x324521[_0x6838('0x6')]),_0x20909f);}};exports[_0x6838('0x48')]=function(_0xed5222){try{if(!_[_0x6838('0x24')](queues[_0xed5222['transfereeuniqueid']])){utils[_0x6838('0x12')](util['format'](_0x6838('0x49'),_0xed5222[_0x6838('0x6')]),_0xed5222);queues[_0xed5222[_0x6838('0x4a')]][_0x6838('0x45')]=!![];queues[_0xed5222['transfereeuniqueid']][_0x6838('0x4b')]='BLIND';queues[_0xed5222[_0x6838('0x4a')]][_0x6838('0x4c')]=_0xed5222[_0x6838('0x4d')];queues[_0xed5222[_0x6838('0x4a')]][_0x6838('0x4e')]=_0xed5222[_0x6838('0x4a')];queues[_0xed5222[_0x6838('0x4a')]][_0x6838('0xb')]=_0x6838('0x4f');utils[_0x6838('0x3')](util['format'](_0x6838('0x50'),_0xed5222['uniqueid'],queues[_0xed5222[_0x6838('0x4a')]][_0x6838('0x21')],_0xed5222[_0x6838('0x4a')],_0xed5222[_0x6838('0x4d')]));}}catch(_0x13c412){utils[_0x6838('0x30')](util[_0x6838('0x4')](_0x6838('0x49'),_0xed5222[_0x6838('0x6')]),_0x13c412);}};exports[_0x6838('0x51')]=function(_0x1112d2){try{utils[_0x6838('0x12')](util[_0x6838('0x4')](_0x6838('0x52'),_0x1112d2['origtransfereruniqueid']),_0x1112d2);if(_0x1112d2[_0x6838('0x53')]==_0x1112d2[_0x6838('0x54')]){if(!_[_0x6838('0x24')](queues[_0x1112d2[_0x6838('0x55')]])){utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x56'),_0x1112d2[_0x6838('0x53')],queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x21')],_0x1112d2[_0x6838('0x57')]));queues[_0x1112d2['secondtransfererlinkedid']][_0x6838('0x45')]=!![];queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x4b')]='ATTENDED';queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x4c')]=_0x1112d2[_0x6838('0x57')];queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x4e')]=_0x1112d2[_0x6838('0x53')];queues[_0x1112d2['secondtransfererlinkedid']][_0x6838('0xb')]=_0x6838('0x58');}if(!_[_0x6838('0x24')](queues[_0x1112d2[_0x6838('0x54')]])){if(_0x1112d2['transfereelinkedid']&&queues[_0x1112d2[_0x6838('0x59')]]){queues[_0x1112d2['transfereelinkedid']][_0x6838('0x22')]=0x1;queues[_0x1112d2[_0x6838('0x4a')]]=_[_0x6838('0x5a')](queues[_0x1112d2[_0x6838('0x59')]]);queues[_0x1112d2[_0x6838('0x4a')]]['transfereduniqueid']=_0x1112d2[_0x6838('0x5b')];queues[_0x1112d2['transfereeuniqueid']][_0x6838('0x22')]=0x2;queues[_0x1112d2[_0x6838('0x4a')]][_0x6838('0x9')]=queues[_0x1112d2['secondtransfererlinkedid']][_0x6838('0x9')];queues[_0x1112d2[_0x6838('0x4a')]][_0x6838('0x5c')]=queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x5c')];queues[_0x1112d2[_0x6838('0x4a')]]['queuecallerjoinAt']=utils[_0x6838('0x17')]();queues[_0x1112d2[_0x6838('0x4a')]][_0x6838('0x1a')]=utils[_0x6838('0x17')]();queues[_0x1112d2[_0x6838('0x4a')]]['holdtime']=0x0;queues[_0x1112d2[_0x6838('0x4a')]]['mohtime']=0x0;utils['info'](util['format'](_0x6838('0x5d'),_0x1112d2['origtransfereruniqueid'],queues[_0x1112d2[_0x6838('0x4a')]][_0x6838('0x21')],queues[_0x1112d2['transfereeuniqueid']]['calleridnum'],queues[_0x1112d2[_0x6838('0x4a')]][_0x6838('0x5c')]));}else{utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x5e'),_0x1112d2[_0x6838('0x53')],queues[_0x1112d2['origtransfererlinkedid']][_0x6838('0x21')],_0x1112d2[_0x6838('0x55')]));queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x10')]=_0x1112d2[_0x6838('0x55')];}}}else if(_0x1112d2[_0x6838('0x5f')]==_0x1112d2[_0x6838('0x55')]){if(!_[_0x6838('0x24')](queues[_0x1112d2['origtransfererlinkedid']])){utils[_0x6838('0x3')](util['format'](_0x6838('0x60'),_0x1112d2[_0x6838('0x53')],queues[_0x1112d2[_0x6838('0x54')]]['name'],_0x1112d2[_0x6838('0x5f')],_0x1112d2[_0x6838('0x61')]));queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x45')]=!![];queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x4b')]=_0x6838('0x62');queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x4c')]=_0x1112d2[_0x6838('0x61')];queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x4e')]=_0x1112d2[_0x6838('0x5f')];queues[_0x1112d2[_0x6838('0x54')]]['queuecallerexitreason']='ATTENDEDTRANSFER';}if(!_[_0x6838('0x24')](queues[_0x1112d2[_0x6838('0x55')]])){if(_0x1112d2[_0x6838('0x63')]&&queues[_0x1112d2[_0x6838('0x63')]]){queues[_0x1112d2[_0x6838('0x63')]][_0x6838('0x22')]=0x1;queues[_0x1112d2[_0x6838('0x5b')]]=_[_0x6838('0x5a')](queues[_0x1112d2['transfertargetlinkedid']]);queues[_0x1112d2[_0x6838('0x5b')]][_0x6838('0x10')]=_0x1112d2['transfertargetuniqueid'];queues[_0x1112d2['transfertargetuniqueid']]['queuecallerenterreason']=0x2;queues[_0x1112d2['transfertargetuniqueid']][_0x6838('0x9')]=queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x9')];queues[_0x1112d2[_0x6838('0x5b')]][_0x6838('0x5c')]=queues[_0x1112d2[_0x6838('0x54')]][_0x6838('0x5c')];queues[_0x1112d2[_0x6838('0x5b')]][_0x6838('0x38')]=utils[_0x6838('0x17')]();queues[_0x1112d2[_0x6838('0x5b')]][_0x6838('0x1a')]=utils[_0x6838('0x17')]();queues[_0x1112d2[_0x6838('0x5b')]][_0x6838('0x64')]=0x0;queues[_0x1112d2['transfertargetuniqueid']][_0x6838('0x65')]=0x0;utils[_0x6838('0x3')](util['format'](_0x6838('0x66'),_0x1112d2[_0x6838('0x53')],queues[_0x1112d2['transfertargetuniqueid']][_0x6838('0x21')],queues[_0x1112d2[_0x6838('0x5b')]]['transfereduniqueid'],queues[_0x1112d2[_0x6838('0x5b')]]['calleridnum'],queues[_0x1112d2[_0x6838('0x5b')]][_0x6838('0x5c')]));}else{utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x5e'),_0x1112d2[_0x6838('0x53')],queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x21')],_0x1112d2[_0x6838('0x54')]));queues[_0x1112d2[_0x6838('0x55')]][_0x6838('0x10')]=_0x1112d2[_0x6838('0x54')];}}}}catch(_0x483ee6){utils[_0x6838('0x30')](util[_0x6838('0x4')]('[%s][queues][attendedtransfer]',_0x1112d2[_0x6838('0x53')]),_0x483ee6);}};exports[_0x6838('0x67')]=function(_0x560cdc){try{if(!_[_0x6838('0x24')](queues[_0x560cdc[_0x6838('0x6')]])){utils['debug'](util['format']('[%s][queues][musiconholdstart]',_0x560cdc['uniqueid']),_0x560cdc);queues[_0x560cdc[_0x6838('0x6')]][_0x6838('0x68')]=utils[_0x6838('0x17')]();utils[_0x6838('0x3')](util['format'](_0x6838('0x69'),_0x560cdc[_0x6838('0x6')],queues[_0x560cdc['uniqueid']][_0x6838('0x21')],queues[_0x560cdc[_0x6838('0x6')]][_0x6838('0x68')]));}}catch(_0x3cf2cf){utils['error'](util[_0x6838('0x4')](_0x6838('0x6a'),_0x560cdc['uniqueid']),_0x3cf2cf);}};exports[_0x6838('0x6b')]=function(_0x2b4686){try{if(!_['isNil'](queues[_0x2b4686[_0x6838('0x6')]])){if(!_[_0x6838('0x24')](queues[_0x2b4686[_0x6838('0x6')]][_0x6838('0x68')])){utils[_0x6838('0x12')](util[_0x6838('0x4')](_0x6838('0x6c'),_0x2b4686[_0x6838('0x6')]),_0x2b4686);queues[_0x2b4686[_0x6838('0x6')]]['mohtime']+=utils[_0x6838('0x37')](utils['now'](),queues[_0x2b4686[_0x6838('0x6')]][_0x6838('0x68')]);utils[_0x6838('0x3')](util[_0x6838('0x4')](_0x6838('0x6d'),_0x2b4686[_0x6838('0x6')],queues[_0x2b4686[_0x6838('0x6')]][_0x6838('0x21')],queues[_0x2b4686[_0x6838('0x6')]]['mohtime']));delete queues[_0x2b4686[_0x6838('0x6')]]['musiconholdstartAt'];}}}catch(_0x49bc8){utils[_0x6838('0x30')](util[_0x6838('0x4')](_0x6838('0x6c'),_0x2b4686['uniqueid']),_0x49bc8);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78ff=['value','endsWith','.wav49','.WAV','find','monitors','push','hangup','calleridnum','cause-txt','calleridname','connectedlinenum','connectedlinename','forEach','clone','[%s][recordings][hangup]','[%s][recordings][newexten]','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','set','cdr','split','substring','lastIndexOf','[%s][recordings][queuecallerjoin]','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','lodash','util','info','format','[%s][recordings][writeDB]','uniqueid','accountcode','then','membername','request','CreateVoiceRecording','newchannel','debug','[%s][recordings][newchannel]','context','exten','channel','error','[%s][recordings][newstate]','isNil','[%s][recordings][newstate]\x20context:%s\x20channel:%s','linkedid','channelstate','variable','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s'];(function(_0x29a1e3,_0xa47aa4){var _0xf87559=function(_0x552070){while(--_0x552070){_0x29a1e3['push'](_0x29a1e3['shift']());}};_0xf87559(++_0xa47aa4);}(_0x78ff,0xc2));var _0xf78f=function(_0x8659d0,_0x2e0e9f){_0x8659d0=_0x8659d0-0x0;var _0xd3603c=_0x78ff[_0x8659d0];return _0xd3603c;};'use strict';var _=require(_0xf78f('0x0'));var util=require(_0xf78f('0x1'));var utils=require('./utils');var recordings={};function writeDB(_0x305123){utils[_0xf78f('0x2')](util[_0xf78f('0x3')](_0xf78f('0x4'),_0x305123[_0xf78f('0x5')]));if(_0x305123[_0xf78f('0x6')]){utils['getUserByInternal'](_0x305123['accountcode'])[_0xf78f('0x7')](function(_0x5a40ab){if(_0x5a40ab){_0x305123[_0xf78f('0x8')]=_0x5a40ab['name'];_0x305123['UserId']=_0x5a40ab['id'];}utils[_0xf78f('0x9')](_0xf78f('0xa'),_0x305123);});}else{utils[_0xf78f('0x9')](_0xf78f('0xa'),_0x305123);}}exports[_0xf78f('0xb')]=function(_0x497370){try{utils[_0xf78f('0xc')](util[_0xf78f('0x3')](_0xf78f('0xd'),_0x497370['uniqueid']),_0x497370);if(_0x497370[_0xf78f('0x5')]==_0x497370['linkedid']){utils['info'](util[_0xf78f('0x3')]('[%s][recordings][newchannel]\x20context:%s\x20exten:%s',_0x497370['uniqueid'],_0x497370[_0xf78f('0xe')],_0x497370[_0xf78f('0xf')]));recordings[_0x497370[_0xf78f('0x5')]]={'uniqueid':_0x497370[_0xf78f('0x5')],'accountcode':_0x497370['accountcode'],'exten':_0x497370['exten'],'context':_0x497370[_0xf78f('0xe')],'channel':_0x497370[_0xf78f('0x10')],'monitors':[]};}}catch(_0x551f71){utils[_0xf78f('0x11')](util[_0xf78f('0x3')](_0xf78f('0xd'),_0x497370['uniqueid']),_0x551f71);}};exports['newstate']=function(_0x3a7d47){try{utils[_0xf78f('0xc')](util['format'](_0xf78f('0x12'),_0x3a7d47['uniqueid']),_0x3a7d47);if(!_[_0xf78f('0x13')](recordings[_0x3a7d47['uniqueid']])&&_0x3a7d47['channelstate']==0x6){utils[_0xf78f('0x2')](util[_0xf78f('0x3')](_0xf78f('0x14'),_0x3a7d47[_0xf78f('0x5')],_0x3a7d47[_0xf78f('0xe')],_0x3a7d47['channel']));}else if(!_[_0xf78f('0x13')](recordings[_0x3a7d47[_0xf78f('0x15')]])&&_0x3a7d47[_0xf78f('0x16')]==0x6&&_0x3a7d47['context']!='transfer'){utils['info'](util[_0xf78f('0x3')]('[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x3a7d47[_0xf78f('0x5')],_0x3a7d47[_0xf78f('0x15')],_0x3a7d47[_0xf78f('0xe')],_0x3a7d47[_0xf78f('0x10')]));recordings[_0x3a7d47[_0xf78f('0x15')]][_0xf78f('0x6')]=_0x3a7d47['accountcode'];}}catch(_0x8b99f9){utils[_0xf78f('0x11')](util['format']('[%s][recordings][newstate]',_0x3a7d47[_0xf78f('0x5')]),_0x8b99f9);}};exports['varset']=function(_0x576958){try{if(!_[_0xf78f('0x13')](_0x576958[_0xf78f('0x17')])&&!_[_0xf78f('0x13')](_0x576958[_0xf78f('0x17')]['mixmonitor_filename'])){utils[_0xf78f('0xc')](util[_0xf78f('0x3')](_0xf78f('0x18'),_0x576958['uniqueid']),_0x576958);utils[_0xf78f('0x2')](util[_0xf78f('0x3')](_0xf78f('0x19'),_0x576958[_0xf78f('0x5')],_0x576958['variable'],_0x576958[_0xf78f('0x1a')]));if(_[_0xf78f('0x1b')](_0x576958[_0xf78f('0x1a')],_0xf78f('0x1c'))){_0x576958[_0xf78f('0x1a')]=_0x576958[_0xf78f('0x1a')]['replace'](_0xf78f('0x1c'),_0xf78f('0x1d'));}if(recordings[_0x576958[_0xf78f('0x15')]]){var _0x210912=_[_0xf78f('0x1e')](recordings[_0x576958[_0xf78f('0x15')]][_0xf78f('0x1f')],{'value':_0x576958[_0xf78f('0x1a')]});if(_['isNil'](_0x210912)){recordings[_0x576958['linkedid']][_0xf78f('0x1f')][_0xf78f('0x20')]({'value':_0x576958[_0xf78f('0x1a')]});}}}}catch(_0x5c37c0){utils[_0xf78f('0x11')](util[_0xf78f('0x3')]('[%s][recordings][varset]',_0x576958[_0xf78f('0x5')]),_0x5c37c0);}};exports[_0xf78f('0x21')]=function(_0x51b8e2){try{if(!_[_0xf78f('0x13')](recordings[_0x51b8e2[_0xf78f('0x5')]])){utils[_0xf78f('0xc')](util[_0xf78f('0x3')]('[%s][recordings][hangup]',_0x51b8e2[_0xf78f('0x5')]),_0x51b8e2);utils[_0xf78f('0x2')](util[_0xf78f('0x3')]('[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s',_0x51b8e2[_0xf78f('0x5')],_0x51b8e2[_0xf78f('0x22')],_0x51b8e2['calleridname'],_0x51b8e2[_0xf78f('0x23')]));recordings[_0x51b8e2[_0xf78f('0x5')]]['calleridnum']=_0x51b8e2['calleridnum'];recordings[_0x51b8e2[_0xf78f('0x5')]][_0xf78f('0x24')]=_0x51b8e2[_0xf78f('0x24')];recordings[_0x51b8e2[_0xf78f('0x5')]][_0xf78f('0x25')]=_0x51b8e2[_0xf78f('0x25')];recordings[_0x51b8e2[_0xf78f('0x5')]][_0xf78f('0x26')]=_0x51b8e2[_0xf78f('0x26')];if(recordings[_0x51b8e2[_0xf78f('0x5')]]['type']=='outbound'&&recordings[_0x51b8e2[_0xf78f('0x5')]][_0xf78f('0x6')]){recordings[_0x51b8e2['uniqueid']][_0xf78f('0x25')]=recordings[_0x51b8e2['uniqueid']]['accountcode'];recordings[_0x51b8e2[_0xf78f('0x5')]][_0xf78f('0x26')]='';}recordings[_0x51b8e2[_0xf78f('0x5')]]['monitors'][_0xf78f('0x27')](function(_0x1e360e){var _0x4f7102=_[_0xf78f('0x28')](recordings[_0x51b8e2[_0xf78f('0x5')]]);_0x4f7102['value']=_0x1e360e[_0xf78f('0x1a')];writeDB(_0x4f7102);});delete recordings[_0x51b8e2[_0xf78f('0x5')]];}}catch(_0x3b9516){utils['error'](util[_0xf78f('0x3')](_0xf78f('0x29'),_0x51b8e2['uniqueid']),_0x3b9516);}};exports['newexten']=function(_0x14eba4){try{if(!_[_0xf78f('0x13')](recordings[_0x14eba4[_0xf78f('0x5')]])){utils[_0xf78f('0xc')](util[_0xf78f('0x3')](_0xf78f('0x2a'),_0x14eba4[_0xf78f('0x5')]),_0x14eba4);utils[_0xf78f('0x2')](util[_0xf78f('0x3')](_0xf78f('0x2b'),_0x14eba4[_0xf78f('0x5')],_0x14eba4[_0xf78f('0x2c')],_0x14eba4[_0xf78f('0x2d')]));if(_0x14eba4['application'][_0xf78f('0x2e')]()==_0xf78f('0x2f')&&_['startsWith'](_0x14eba4['appdata'][_0xf78f('0x2e')](),_0xf78f('0x30'))){var _0x168f4d=_0x14eba4[_0xf78f('0x2d')][_0xf78f('0x31')]('=');var _0x3dd27e=_0x168f4d[0x0][_0xf78f('0x32')](_0x168f4d[0x0][_0xf78f('0x33')]('(')+0x1,_0x168f4d[0x0][_0xf78f('0x33')](')'));var _0x3fb103=_0x168f4d[0x1];recordings[_0x14eba4[_0xf78f('0x5')]][_0x3dd27e]=_0x3fb103;}}}catch(_0x2b039b){utils[_0xf78f('0x11')](util[_0xf78f('0x3')](_0xf78f('0x2a'),_0x14eba4[_0xf78f('0x5')]),_0x2b039b);}};exports['queuecallerjoin']=function(_0x58fd74){try{if(!_[_0xf78f('0x13')](recordings[_0x58fd74[_0xf78f('0x5')]])){utils[_0xf78f('0xc')](util[_0xf78f('0x3')](_0xf78f('0x34'),_0x58fd74['uniqueid']),_0x58fd74);utils[_0xf78f('0x2')](util[_0xf78f('0x3')](_0xf78f('0x35'),_0x58fd74[_0xf78f('0x5')],_0x58fd74[_0xf78f('0x36')]));recordings[_0x58fd74[_0xf78f('0x5')]][_0xf78f('0x36')]=_0x58fd74['queue'];}}catch(_0xa96555){utils[_0xf78f('0x11')](util[_0xf78f('0x3')](_0xf78f('0x34'),_0x58fd74[_0xf78f('0x5')]),_0xa96555);}};
\ No newline at end of file
+var _0xa34d=['lastIndexOf','queuecallerjoin','[%s][recordings][queuecallerjoin]','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','util','format','[%s][recordings][writeDB]','uniqueid','accountcode','getUserByInternal','then','membername','UserId','request','CreateVoiceRecording','newchannel','debug','info','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','exten','channel','error','newstate','isNil','channelstate','linkedid','transfer','[%s][recordings][newstate]','varset','variable','[%s][recordings][varset]\x20variable:%s\x20value:%s','endsWith','.wav49','value','find','monitors','push','[%s][recordings][varset]','hangup','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','cause-txt','calleridnum','connectedlinenum','connectedlinename','type','outbound','clone','[%s][recordings][hangup]','newexten','[%s][recordings][newexten]','application','appdata','toLowerCase','set','cdr','split','substring'];(function(_0x15646c,_0x4087e0){var _0x3fdb97=function(_0x194b4b){while(--_0x194b4b){_0x15646c['push'](_0x15646c['shift']());}};_0x3fdb97(++_0x4087e0);}(_0xa34d,0xb6));var _0xda34=function(_0x18a903,_0x571807){_0x18a903=_0x18a903-0x0;var _0x1d2f8c=_0xa34d[_0x18a903];return _0x1d2f8c;};'use strict';var _=require('lodash');var util=require(_0xda34('0x0'));var utils=require('./utils');var recordings={};function writeDB(_0x26c446){utils['info'](util[_0xda34('0x1')](_0xda34('0x2'),_0x26c446[_0xda34('0x3')]));if(_0x26c446[_0xda34('0x4')]){utils[_0xda34('0x5')](_0x26c446['accountcode'])[_0xda34('0x6')](function(_0xcc8291){if(_0xcc8291){_0x26c446[_0xda34('0x7')]=_0xcc8291['name'];_0x26c446[_0xda34('0x8')]=_0xcc8291['id'];}utils[_0xda34('0x9')](_0xda34('0xa'),_0x26c446);});}else{utils[_0xda34('0x9')]('CreateVoiceRecording',_0x26c446);}}exports[_0xda34('0xb')]=function(_0x3476d4){try{utils[_0xda34('0xc')](util[_0xda34('0x1')]('[%s][recordings][newchannel]',_0x3476d4[_0xda34('0x3')]),_0x3476d4);if(_0x3476d4[_0xda34('0x3')]==_0x3476d4['linkedid']){utils[_0xda34('0xd')](util['format'](_0xda34('0xe'),_0x3476d4[_0xda34('0x3')],_0x3476d4[_0xda34('0xf')],_0x3476d4[_0xda34('0x10')]));recordings[_0x3476d4[_0xda34('0x3')]]={'uniqueid':_0x3476d4[_0xda34('0x3')],'accountcode':_0x3476d4[_0xda34('0x4')],'exten':_0x3476d4[_0xda34('0x10')],'context':_0x3476d4[_0xda34('0xf')],'channel':_0x3476d4[_0xda34('0x11')],'monitors':[]};}}catch(_0x49be2f){utils[_0xda34('0x12')](util['format']('[%s][recordings][newchannel]',_0x3476d4[_0xda34('0x3')]),_0x49be2f);}};exports[_0xda34('0x13')]=function(_0x5c84e3){try{utils[_0xda34('0xc')](util['format']('[%s][recordings][newstate]',_0x5c84e3['uniqueid']),_0x5c84e3);if(!_[_0xda34('0x14')](recordings[_0x5c84e3[_0xda34('0x3')]])&&_0x5c84e3[_0xda34('0x15')]==0x6){utils[_0xda34('0xd')](util[_0xda34('0x1')]('[%s][recordings][newstate]\x20context:%s\x20channel:%s',_0x5c84e3[_0xda34('0x3')],_0x5c84e3['context'],_0x5c84e3[_0xda34('0x11')]));}else if(!_[_0xda34('0x14')](recordings[_0x5c84e3[_0xda34('0x16')]])&&_0x5c84e3[_0xda34('0x15')]==0x6&&_0x5c84e3[_0xda34('0xf')]!=_0xda34('0x17')){utils['info'](util[_0xda34('0x1')]('[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s',_0x5c84e3[_0xda34('0x3')],_0x5c84e3['linkedid'],_0x5c84e3[_0xda34('0xf')],_0x5c84e3[_0xda34('0x11')]));recordings[_0x5c84e3['linkedid']][_0xda34('0x4')]=_0x5c84e3[_0xda34('0x4')];}}catch(_0x5c79f7){utils['error'](util[_0xda34('0x1')](_0xda34('0x18'),_0x5c84e3['uniqueid']),_0x5c79f7);}};exports[_0xda34('0x19')]=function(_0x3c11de){try{if(!_[_0xda34('0x14')](_0x3c11de[_0xda34('0x1a')])&&!_['isNil'](_0x3c11de[_0xda34('0x1a')]['mixmonitor_filename'])){utils['debug'](util[_0xda34('0x1')]('[%s][recordings][varset]',_0x3c11de[_0xda34('0x3')]),_0x3c11de);utils[_0xda34('0xd')](util[_0xda34('0x1')](_0xda34('0x1b'),_0x3c11de[_0xda34('0x3')],_0x3c11de[_0xda34('0x1a')],_0x3c11de['value']));if(_[_0xda34('0x1c')](_0x3c11de['value'],_0xda34('0x1d'))){_0x3c11de[_0xda34('0x1e')]=_0x3c11de[_0xda34('0x1e')]['replace'](_0xda34('0x1d'),'.WAV');}if(recordings[_0x3c11de[_0xda34('0x16')]]){var _0x4b4041=_[_0xda34('0x1f')](recordings[_0x3c11de['linkedid']][_0xda34('0x20')],{'value':_0x3c11de['value']});if(_[_0xda34('0x14')](_0x4b4041)){recordings[_0x3c11de[_0xda34('0x16')]][_0xda34('0x20')][_0xda34('0x21')]({'value':_0x3c11de[_0xda34('0x1e')]});}}}}catch(_0x50dc37){utils[_0xda34('0x12')](util[_0xda34('0x1')](_0xda34('0x22'),_0x3c11de[_0xda34('0x3')]),_0x50dc37);}};exports[_0xda34('0x23')]=function(_0x53f422){try{if(!_[_0xda34('0x14')](recordings[_0x53f422[_0xda34('0x3')]])){utils[_0xda34('0xc')](util[_0xda34('0x1')]('[%s][recordings][hangup]',_0x53f422[_0xda34('0x3')]),_0x53f422);utils[_0xda34('0xd')](util['format'](_0xda34('0x24'),_0x53f422['uniqueid'],_0x53f422['calleridnum'],_0x53f422['calleridname'],_0x53f422[_0xda34('0x25')]));recordings[_0x53f422['uniqueid']][_0xda34('0x26')]=_0x53f422[_0xda34('0x26')];recordings[_0x53f422['uniqueid']]['calleridname']=_0x53f422['calleridname'];recordings[_0x53f422[_0xda34('0x3')]][_0xda34('0x27')]=_0x53f422[_0xda34('0x27')];recordings[_0x53f422[_0xda34('0x3')]][_0xda34('0x28')]=_0x53f422['connectedlinename'];if(recordings[_0x53f422[_0xda34('0x3')]][_0xda34('0x29')]==_0xda34('0x2a')&&recordings[_0x53f422['uniqueid']]['accountcode']){recordings[_0x53f422[_0xda34('0x3')]][_0xda34('0x27')]=recordings[_0x53f422['uniqueid']]['accountcode'];recordings[_0x53f422['uniqueid']]['connectedlinename']='';}recordings[_0x53f422[_0xda34('0x3')]][_0xda34('0x20')]['forEach'](function(_0x1c9b91){var _0x2ac84a=_[_0xda34('0x2b')](recordings[_0x53f422[_0xda34('0x3')]]);_0x2ac84a[_0xda34('0x1e')]=_0x1c9b91[_0xda34('0x1e')];writeDB(_0x2ac84a);});delete recordings[_0x53f422[_0xda34('0x3')]];}}catch(_0x560d86){utils[_0xda34('0x12')](util[_0xda34('0x1')](_0xda34('0x2c'),_0x53f422[_0xda34('0x3')]),_0x560d86);}};exports[_0xda34('0x2d')]=function(_0x4f74f2){try{if(!_[_0xda34('0x14')](recordings[_0x4f74f2[_0xda34('0x3')]])){utils['debug'](util[_0xda34('0x1')](_0xda34('0x2e'),_0x4f74f2[_0xda34('0x3')]),_0x4f74f2);utils[_0xda34('0xd')](util['format']('[%s][recordings][newexten]\x20application:%s\x20appdata:%s',_0x4f74f2[_0xda34('0x3')],_0x4f74f2[_0xda34('0x2f')],_0x4f74f2[_0xda34('0x30')]));if(_0x4f74f2[_0xda34('0x2f')][_0xda34('0x31')]()==_0xda34('0x32')&&_['startsWith'](_0x4f74f2[_0xda34('0x30')][_0xda34('0x31')](),_0xda34('0x33'))){var _0x56f16f=_0x4f74f2[_0xda34('0x30')][_0xda34('0x34')]('=');var _0x56fd72=_0x56f16f[0x0][_0xda34('0x35')](_0x56f16f[0x0][_0xda34('0x36')]('(')+0x1,_0x56f16f[0x0][_0xda34('0x36')](')'));var _0x225779=_0x56f16f[0x1];recordings[_0x4f74f2[_0xda34('0x3')]][_0x56fd72]=_0x225779;}}}catch(_0x1f19d8){utils[_0xda34('0x12')](util[_0xda34('0x1')](_0xda34('0x2e'),_0x4f74f2[_0xda34('0x3')]),_0x1f19d8);}};exports[_0xda34('0x37')]=function(_0x12ab09){try{if(!_[_0xda34('0x14')](recordings[_0x12ab09[_0xda34('0x3')]])){utils['debug'](util[_0xda34('0x1')](_0xda34('0x38'),_0x12ab09['uniqueid']),_0x12ab09);utils[_0xda34('0xd')](util['format'](_0xda34('0x39'),_0x12ab09[_0xda34('0x3')],_0x12ab09[_0xda34('0x3a')]));recordings[_0x12ab09[_0xda34('0x3')]]['queue']=_0x12ab09[_0xda34('0x3a')];}}catch(_0x4f83c0){utils[_0xda34('0x12')](util['format'](_0xda34('0x38'),_0x12ab09[_0xda34('0x3')]),_0x4f83c0);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3389=['debug','format','[%s][transfers][blindtransfer]','uniqueid','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transfereecalleridnum','transfereecalleridname','blind','blinds','transfereruniqueid','error','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridnum','transfertargetcalleridname','origtransfererchannel','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransferercontext','origtransfererexten','transfereechannel','transfertargetchannel','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetexten','transfertargetlinkedid','lodash','util','./utils','info','[%s][transfers][writeDB]\x20type:%s','type','attended','origtransfereruniqueid','request','CreateVoiceTransferReport','blindtransfer'];(function(_0x774eed,_0x7d972d){var _0x1bfbfa=function(_0x17a060){while(--_0x17a060){_0x774eed['push'](_0x774eed['shift']());}};_0x1bfbfa(++_0x7d972d);}(_0x3389,0x1d9));var _0x9338=function(_0xdebebf,_0x284b01){_0xdebebf=_0xdebebf-0x0;var _0x46029f=_0x3389[_0xdebebf];return _0x46029f;};'use strict';var _=require(_0x9338('0x0'));var util=require(_0x9338('0x1'));var utils=require(_0x9338('0x2'));function writeDB(_0x17ae6c){utils[_0x9338('0x3')](util['format'](_0x9338('0x4'),_0x17ae6c[_0x9338('0x5')]===_0x9338('0x6')?_0x17ae6c[_0x9338('0x7')]:_0x17ae6c['uniqueid'],_0x17ae6c[_0x9338('0x5')]));utils[_0x9338('0x8')](_0x9338('0x9'),_0x17ae6c);}exports['blinds']={};exports[_0x9338('0xa')]=function(_0x49077f){try{utils[_0x9338('0xb')](util[_0x9338('0xc')](_0x9338('0xd'),_0x49077f[_0x9338('0xe')]),_0x49077f);utils[_0x9338('0x3')](util[_0x9338('0xc')](_0x9338('0xf'),_0x49077f[_0x9338('0xe')],_0x49077f[_0x9338('0x10')],_0x49077f['transferercalleridname'],_0x49077f[_0x9338('0x11')],_0x49077f[_0x9338('0x12')]));_0x49077f[_0x9338('0x5')]=_0x9338('0x13');exports[_0x9338('0x14')][_0x49077f[_0x9338('0x15')]]=_0x49077f;writeDB(_0x49077f);}catch(_0xdaf526){utils[_0x9338('0x16')](util['format'](_0x9338('0xd'),_0x49077f[_0x9338('0xe')]),_0xdaf526);}};exports['attendedtransfer']=function(_0x52e564){try{utils[_0x9338('0xb')](util[_0x9338('0xc')](_0x9338('0x17'),_0x52e564[_0x9338('0x7')]),_0x52e564);utils[_0x9338('0x3')](util[_0x9338('0xc')](_0x9338('0x18'),_0x52e564[_0x9338('0x7')],_0x52e564[_0x9338('0x19')],_0x52e564[_0x9338('0x1a')],_0x52e564[_0x9338('0x1b')],_0x52e564[_0x9338('0x1c')]));_0x52e564=_['assign'](_0x52e564,{'transfererchannel':_0x52e564[_0x9338('0x1d')],'transferercalleridnum':_0x52e564[_0x9338('0x19')],'transferercalleridname':_0x52e564['origtransferercalleridname'],'transfererconnectedlinenum':_0x52e564[_0x9338('0x1e')],'transfererconnectedlinename':_0x52e564[_0x9338('0x1f')],'transfereraccountcode':_0x52e564[_0x9338('0x20')],'transferercontext':_0x52e564[_0x9338('0x21')],'transfererexten':_0x52e564[_0x9338('0x22')],'transfererlinkedid':_0x52e564['origtransfererlinkedid'],'context':_0x52e564[_0x9338('0x23')],'extension':_0x52e564[_0x9338('0x24')],'type':_0x9338('0x6')});if(_['isNil'](_0x52e564[_0x9338('0x25')])){_0x52e564=_['assign'](_0x52e564,{'transfereechannel':_0x52e564[_0x9338('0x26')],'transfereecalleridnum':_0x52e564['transfertargetcalleridnum'],'transfereecalleridname':_0x52e564[_0x9338('0x1c')],'transfereeconnectedlinenum':_0x52e564[_0x9338('0x27')],'transfereeconnectedlinename':_0x52e564[_0x9338('0x28')],'transfereeaccountcode':_0x52e564[_0x9338('0x29')],'transfereecontext':_0x52e564['transfertargetcontext'],'transfereeexten':_0x52e564[_0x9338('0x2a')],'transfereelinkedid':_0x52e564[_0x9338('0x2b')]});}writeDB(_0x52e564);}catch(_0x9fcaef){utils[_0x9338('0x16')](util['format'](_0x9338('0x17'),_0x52e564[_0x9338('0x7')]),_0x9fcaef);}};
\ No newline at end of file
+var _0xef37=['CreateVoiceTransferReport','blinds','debug','format','[%s][transfers][blindtransfer]','info','transferercalleridnum','transfereecalleridnum','transfereecalleridname','blind','transfereruniqueid','error','attendedtransfer','[%s][transfers][attendedtransfer]','[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','origtransferercalleridnum','origtransferercalleridname','transfertargetcalleridname','assign','origtransfererchannel','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransferercontext','isNil','transfereechannel','transfertargetcalleridnum','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','transfertargetexten','transfertargetlinkedid','util','./utils','[%s][transfers][writeDB]\x20type:%s','type','attended','origtransfereruniqueid','uniqueid','request'];(function(_0x283918,_0x12d1f8){var _0x570bb4=function(_0x1e7399){while(--_0x1e7399){_0x283918['push'](_0x283918['shift']());}};_0x570bb4(++_0x12d1f8);}(_0xef37,0xfa));var _0x7ef3=function(_0x353fba,_0x46db7e){_0x353fba=_0x353fba-0x0;var _0x4694e4=_0xef37[_0x353fba];return _0x4694e4;};'use strict';var _=require('lodash');var util=require(_0x7ef3('0x0'));var utils=require(_0x7ef3('0x1'));function writeDB(_0x5c50b2){utils['info'](util['format'](_0x7ef3('0x2'),_0x5c50b2[_0x7ef3('0x3')]===_0x7ef3('0x4')?_0x5c50b2[_0x7ef3('0x5')]:_0x5c50b2[_0x7ef3('0x6')],_0x5c50b2[_0x7ef3('0x3')]));utils[_0x7ef3('0x7')](_0x7ef3('0x8'),_0x5c50b2);}exports[_0x7ef3('0x9')]={};exports['blindtransfer']=function(_0xbe2df8){try{utils[_0x7ef3('0xa')](util[_0x7ef3('0xb')](_0x7ef3('0xc'),_0xbe2df8[_0x7ef3('0x6')]),_0xbe2df8);utils[_0x7ef3('0xd')](util[_0x7ef3('0xb')]('[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s',_0xbe2df8[_0x7ef3('0x6')],_0xbe2df8[_0x7ef3('0xe')],_0xbe2df8['transferercalleridname'],_0xbe2df8[_0x7ef3('0xf')],_0xbe2df8[_0x7ef3('0x10')]));_0xbe2df8[_0x7ef3('0x3')]=_0x7ef3('0x11');exports[_0x7ef3('0x9')][_0xbe2df8[_0x7ef3('0x12')]]=_0xbe2df8;writeDB(_0xbe2df8);}catch(_0x4dbba2){utils[_0x7ef3('0x13')](util[_0x7ef3('0xb')]('[%s][transfers][blindtransfer]',_0xbe2df8[_0x7ef3('0x6')]),_0x4dbba2);}};exports[_0x7ef3('0x14')]=function(_0x455427){try{utils['debug'](util[_0x7ef3('0xb')](_0x7ef3('0x15'),_0x455427[_0x7ef3('0x5')]),_0x455427);utils[_0x7ef3('0xd')](util[_0x7ef3('0xb')](_0x7ef3('0x16'),_0x455427['origtransfereruniqueid'],_0x455427[_0x7ef3('0x17')],_0x455427[_0x7ef3('0x18')],_0x455427['transfertargetcalleridnum'],_0x455427[_0x7ef3('0x19')]));_0x455427=_[_0x7ef3('0x1a')](_0x455427,{'transfererchannel':_0x455427[_0x7ef3('0x1b')],'transferercalleridnum':_0x455427[_0x7ef3('0x17')],'transferercalleridname':_0x455427[_0x7ef3('0x18')],'transfererconnectedlinenum':_0x455427['secondtransfererconnectedlinenum'],'transfererconnectedlinename':_0x455427[_0x7ef3('0x1c')],'transfereraccountcode':_0x455427[_0x7ef3('0x1d')],'transferercontext':_0x455427[_0x7ef3('0x1e')],'transfererexten':_0x455427[_0x7ef3('0x1f')],'transfererlinkedid':_0x455427[_0x7ef3('0x20')],'context':_0x455427[_0x7ef3('0x21')],'extension':_0x455427['origtransfererexten'],'type':_0x7ef3('0x4')});if(_[_0x7ef3('0x22')](_0x455427[_0x7ef3('0x23')])){_0x455427=_[_0x7ef3('0x1a')](_0x455427,{'transfereechannel':_0x455427['transfertargetchannel'],'transfereecalleridnum':_0x455427[_0x7ef3('0x24')],'transfereecalleridname':_0x455427[_0x7ef3('0x19')],'transfereeconnectedlinenum':_0x455427[_0x7ef3('0x25')],'transfereeconnectedlinename':_0x455427[_0x7ef3('0x26')],'transfereeaccountcode':_0x455427[_0x7ef3('0x27')],'transfereecontext':_0x455427[_0x7ef3('0x28')],'transfereeexten':_0x455427[_0x7ef3('0x29')],'transfereelinkedid':_0x455427[_0x7ef3('0x2a')]});}writeDB(_0x455427);}catch(_0x40992d){utils[_0x7ef3('0x13')](util[_0x7ef3('0xb')](_0x7ef3('0x15'),_0x455427['origtransfereruniqueid']),_0x40992d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fef=['getVoiceQueueByName','type','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]','add','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','seconds','format','diff','sumTime','isAfter','isBefore','bluebird','moment','../../config/logger','xdr','info','inspect','debug','error','request','then','[utils][request]\x20name:%s','catch','GetUser','name','interface','[utils][getUser]\x20where:%s','stringify','result','length','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','notfound','[utils][getUserByInternal]','getUserByInterface','[utils][getUserByInterface]\x20interface:%s\x20%s','found','[utils][getUserByInterface]','getUserByName','[utils][getUserByName]'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x7fef,0x110));var _0xf7fe=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7fef[_0x3dd15e];return _0x231fd0;};'use strict';var BPromise=require(_0xf7fe('0x0'));var jayson=require('jayson/promise');var moment=require(_0xf7fe('0x1'));var util=require('util');var client=jayson['client']['http']({'port':0x2329});var logger=require(_0xf7fe('0x2'))(_0xf7fe('0x3'));exports['info']=function(_0x3a1252,_0x14bded){logger[_0xf7fe('0x4')](_0x3a1252,_0x14bded?util[_0xf7fe('0x5')](_0x14bded,{'showHidden':![],'depth':null}):'');};exports['debug']=function(_0x4e016a,_0x198a4c){logger[_0xf7fe('0x6')](_0x4e016a,_0x198a4c?util['inspect'](_0x198a4c,{'showHidden':![],'depth':null}):'');};exports[_0xf7fe('0x7')]=function(_0x2bc293,_0x4f34c3){logger['error'](_0x2bc293,_0x4f34c3?util['inspect'](_0x4f34c3,{'showHidden':![],'depth':null}):'');};exports[_0xf7fe('0x8')]=function(_0x1d6337,_0x46eee6){return client[_0xf7fe('0x8')](_0x1d6337,{'body':_0x46eee6})[_0xf7fe('0x9')](function(_0x4b5178){logger[_0xf7fe('0x6')](_0xf7fe('0xa'),_0x1d6337,_0x4b5178?util[_0xf7fe('0x5')](_0x4b5178,{'showHidden':![],'depth':null}):'');})[_0xf7fe('0xb')](function(_0x1a9951){logger[_0xf7fe('0x7')]('[utils][request]\x20name:%s',_0x1d6337,_0x1a9951?util[_0xf7fe('0x5')](_0x1a9951,{'showHidden':![],'depth':null}):'');});};function getUser(_0x2f131e){return client[_0xf7fe('0x8')](_0xf7fe('0xc'),{'options':{'raw':!![],'attributes':['id','internal',_0xf7fe('0xd'),_0xf7fe('0xe')],'where':_0x2f131e,'limit':0x1}})[_0xf7fe('0x9')](function(_0x327044){logger[_0xf7fe('0x6')](_0xf7fe('0xf'),JSON[_0xf7fe('0x10')](_0x2f131e),_0x327044?util[_0xf7fe('0x5')](_0x327044,{'showHidden':![],'depth':null}):'');return _0x327044[_0xf7fe('0x11')][_0xf7fe('0x12')]?_0x327044[_0xf7fe('0x11')][0x0]:null;});}exports[_0xf7fe('0x13')]=function(_0x21cfba){return new BPromise(function(_0x1a304f,_0x840e8){if(_0x21cfba){return getUser({'internal':_0x21cfba})[_0xf7fe('0x9')](function(_0x235714){logger[_0xf7fe('0x4')](_0xf7fe('0x14'),_0x21cfba,_0x235714?'found':_0xf7fe('0x15'));return _0x1a304f(_0x235714);})['catch'](function(_0x2f4564){logger[_0xf7fe('0x7')](_0xf7fe('0x16'),_0x2f4564?util[_0xf7fe('0x5')](_0x2f4564,{'showHidden':![],'depth':null}):'');return _0x1a304f(null);});}return _0x1a304f(null);});};exports[_0xf7fe('0x17')]=function(_0xc30b05){return new BPromise(function(_0x52b823,_0x18af21){if(_0xc30b05){return getUser({'interface':_0xc30b05})[_0xf7fe('0x9')](function(_0x2ecc3a){logger[_0xf7fe('0x4')](_0xf7fe('0x18'),_0xc30b05,_0x2ecc3a?_0xf7fe('0x19'):_0xf7fe('0x15'));return _0x52b823(_0x2ecc3a);})[_0xf7fe('0xb')](function(_0x39ed52){logger['error'](_0xf7fe('0x1a'),_0x39ed52?util['inspect'](_0x39ed52,{'showHidden':![],'depth':null}):'');return _0x52b823(null);});}return _0x52b823(null);});};exports[_0xf7fe('0x1b')]=function(_0x4eb304){return new BPromise(function(_0x4d06db,_0x3cb3d2){if(_0x4eb304){return getUser({'name':_0x4eb304})['then'](function(_0x3df775){logger[_0xf7fe('0x4')]('[utils][getUserByName]\x20name:%s\x20%s',_0x4eb304,_0x3df775?_0xf7fe('0x19'):'notfound');return _0x4d06db(_0x3df775);})[_0xf7fe('0xb')](function(_0x52b25d){logger[_0xf7fe('0x7')](_0xf7fe('0x1c'),_0x52b25d?util['inspect'](_0x52b25d,{'showHidden':![],'depth':null}):'');return _0x4d06db(null);});}return _0x4d06db(null);});};exports[_0xf7fe('0x1d')]=function(_0x9200c1){return new BPromise(function(_0x18f49e,_0x4c6139){if(_0x9200c1){return client['request']('GetVoiceQueue',{'options':{'raw':!![],'attributes':['id',_0xf7fe('0xd'),_0xf7fe('0x1e'),'acw','acwTimeout'],'where':{'name':_0x9200c1},'limit':0x1}})['then'](function(_0xb4d507){logger['debug'](_0xf7fe('0x1f'),_0x9200c1,_0xb4d507?util['inspect'](_0xb4d507,{'showHidden':![],'depth':null}):'');logger[_0xf7fe('0x4')]('[utils][getVoiceQueueByName]\x20name:%s\x20%s',_0x9200c1,_0xb4d507?'found':'notfound');return _0x18f49e(_0xb4d507[_0xf7fe('0x11')]['length']?_0xb4d507[_0xf7fe('0x11')][0x0]:null);})['catch'](function(_0x586bc3){logger[_0xf7fe('0x7')](_0xf7fe('0x20'),_0x586bc3?util[_0xf7fe('0x5')](_0x586bc3,{'showHidden':![],'depth':null}):'');return _0x18f49e(null);});}return _0x18f49e(null);});};exports['addTime']=function(_0x2f0807,_0x4a1e39){return moment(_0x2f0807)[_0xf7fe('0x21')](_0x4a1e39,'seconds')['format'](_0xf7fe('0x22'));};exports[_0xf7fe('0x23')]=function(_0x4be92b,_0x4c1eda){return moment(_0x4be92b)[_0xf7fe('0x24')](_0x4c1eda,_0xf7fe('0x25'))[_0xf7fe('0x26')](_0xf7fe('0x22'));};exports['diffTime']=function(_0x2dcaf9,_0x5b9c48){return moment(_0x2dcaf9)[_0xf7fe('0x27')](moment(_0x5b9c48),'seconds');};exports[_0xf7fe('0x28')]=function(_0x2703a1,_0x1d3dcc){return parseInt(_0x2703a1,0xa)+parseInt(_0x1d3dcc,0xa);};exports['now']=function(){return moment()[_0xf7fe('0x26')](_0xf7fe('0x22'));};exports[_0xf7fe('0x29')]=function(_0xfe38bd,_0x37ff76){if(_0x37ff76){return moment(_0xfe38bd)[_0xf7fe('0x29')](_0x37ff76);}return!![];};exports[_0xf7fe('0x2a')]=function(_0xe94eee,_0x36a7bf){if(_0x36a7bf){return moment(_0xe94eee)[_0xf7fe('0x2a')](_0x36a7bf);}else if(_0xe94eee){return!![];}return![];};
\ No newline at end of file
+var _0x5921=['error','request','then','catch','[utils][request]\x20name:%s','GetUser','name','interface','[utils][getUser]\x20where:%s','stringify','length','getUserByInternal','found','notfound','[utils][getUserByInternal]','getUserByInterface','[utils][getUserByInterface]\x20interface:%s\x20%s','getUserByName','[utils][getUserByName]\x20name:%s\x20%s','[utils][getUserByName]','getVoiceQueueByName','GetVoiceQueue','type','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','result','[utils][getVoiceQueueByName]','addTime','add','seconds','format','subtractTime','diffTime','YYYY-MM-DD\x20HH:mm:ss','isAfter','isBefore','bluebird','jayson/promise','moment','client','http','../../config/logger','xdr','info','inspect','debug'];(function(_0x478a55,_0x20b4cd){var _0x131bc2=function(_0x45a837){while(--_0x45a837){_0x478a55['push'](_0x478a55['shift']());}};_0x131bc2(++_0x20b4cd);}(_0x5921,0x16e));var _0x1592=function(_0x2b7764,_0x2606f1){_0x2b7764=_0x2b7764-0x0;var _0x848dcb=_0x5921[_0x2b7764];return _0x848dcb;};'use strict';var BPromise=require(_0x1592('0x0'));var jayson=require(_0x1592('0x1'));var moment=require(_0x1592('0x2'));var util=require('util');var client=jayson[_0x1592('0x3')][_0x1592('0x4')]({'port':0x2329});var logger=require(_0x1592('0x5'))(_0x1592('0x6'));exports[_0x1592('0x7')]=function(_0x1db849,_0x36fda2){logger['info'](_0x1db849,_0x36fda2?util[_0x1592('0x8')](_0x36fda2,{'showHidden':![],'depth':null}):'');};exports[_0x1592('0x9')]=function(_0x1a232f,_0x715556){logger[_0x1592('0x9')](_0x1a232f,_0x715556?util[_0x1592('0x8')](_0x715556,{'showHidden':![],'depth':null}):'');};exports[_0x1592('0xa')]=function(_0x28b1b3,_0x4edd23){logger[_0x1592('0xa')](_0x28b1b3,_0x4edd23?util[_0x1592('0x8')](_0x4edd23,{'showHidden':![],'depth':null}):'');};exports[_0x1592('0xb')]=function(_0x3d3006,_0x6008d8){return client[_0x1592('0xb')](_0x3d3006,{'body':_0x6008d8})[_0x1592('0xc')](function(_0xd739d2){logger[_0x1592('0x9')]('[utils][request]\x20name:%s',_0x3d3006,_0xd739d2?util['inspect'](_0xd739d2,{'showHidden':![],'depth':null}):'');})[_0x1592('0xd')](function(_0xfa63eb){logger[_0x1592('0xa')](_0x1592('0xe'),_0x3d3006,_0xfa63eb?util[_0x1592('0x8')](_0xfa63eb,{'showHidden':![],'depth':null}):'');});};function getUser(_0x4c7f1f){return client['request'](_0x1592('0xf'),{'options':{'raw':!![],'attributes':['id','internal',_0x1592('0x10'),_0x1592('0x11')],'where':_0x4c7f1f,'limit':0x1}})[_0x1592('0xc')](function(_0x354905){logger[_0x1592('0x9')](_0x1592('0x12'),JSON[_0x1592('0x13')](_0x4c7f1f),_0x354905?util[_0x1592('0x8')](_0x354905,{'showHidden':![],'depth':null}):'');return _0x354905['result'][_0x1592('0x14')]?_0x354905['result'][0x0]:null;});}exports[_0x1592('0x15')]=function(_0x307923){return new BPromise(function(_0x2682d8,_0x1dfa5e){if(_0x307923){return getUser({'internal':_0x307923})[_0x1592('0xc')](function(_0x1b2d45){logger[_0x1592('0x7')]('[utils][getUserByInternal]\x20internal:%s\x20%s',_0x307923,_0x1b2d45?_0x1592('0x16'):_0x1592('0x17'));return _0x2682d8(_0x1b2d45);})[_0x1592('0xd')](function(_0x33536e){logger['error'](_0x1592('0x18'),_0x33536e?util[_0x1592('0x8')](_0x33536e,{'showHidden':![],'depth':null}):'');return _0x2682d8(null);});}return _0x2682d8(null);});};exports[_0x1592('0x19')]=function(_0x4797be){return new BPromise(function(_0x95a37e,_0x309f90){if(_0x4797be){return getUser({'interface':_0x4797be})[_0x1592('0xc')](function(_0x3cf1bd){logger[_0x1592('0x7')](_0x1592('0x1a'),_0x4797be,_0x3cf1bd?'found':'notfound');return _0x95a37e(_0x3cf1bd);})[_0x1592('0xd')](function(_0x2e627d){logger[_0x1592('0xa')]('[utils][getUserByInterface]',_0x2e627d?util[_0x1592('0x8')](_0x2e627d,{'showHidden':![],'depth':null}):'');return _0x95a37e(null);});}return _0x95a37e(null);});};exports[_0x1592('0x1b')]=function(_0x2d2d67){return new BPromise(function(_0x2e4867,_0x5152ee){if(_0x2d2d67){return getUser({'name':_0x2d2d67})[_0x1592('0xc')](function(_0x4752df){logger['info'](_0x1592('0x1c'),_0x2d2d67,_0x4752df?_0x1592('0x16'):'notfound');return _0x2e4867(_0x4752df);})[_0x1592('0xd')](function(_0x39c241){logger[_0x1592('0xa')](_0x1592('0x1d'),_0x39c241?util[_0x1592('0x8')](_0x39c241,{'showHidden':![],'depth':null}):'');return _0x2e4867(null);});}return _0x2e4867(null);});};exports[_0x1592('0x1e')]=function(_0x4f1823){return new BPromise(function(_0x45f72e,_0x1b7895){if(_0x4f1823){return client[_0x1592('0xb')](_0x1592('0x1f'),{'options':{'raw':!![],'attributes':['id',_0x1592('0x10'),_0x1592('0x20'),'acw',_0x1592('0x21')],'where':{'name':_0x4f1823},'limit':0x1}})[_0x1592('0xc')](function(_0x58b561){logger[_0x1592('0x9')](_0x1592('0x22'),_0x4f1823,_0x58b561?util['inspect'](_0x58b561,{'showHidden':![],'depth':null}):'');logger[_0x1592('0x7')](_0x1592('0x23'),_0x4f1823,_0x58b561?'found':_0x1592('0x17'));return _0x45f72e(_0x58b561[_0x1592('0x24')]['length']?_0x58b561[_0x1592('0x24')][0x0]:null);})[_0x1592('0xd')](function(_0x554090){logger['error'](_0x1592('0x25'),_0x554090?util['inspect'](_0x554090,{'showHidden':![],'depth':null}):'');return _0x45f72e(null);});}return _0x45f72e(null);});};exports[_0x1592('0x26')]=function(_0x247952,_0xfa827f){return moment(_0x247952)[_0x1592('0x27')](_0xfa827f,_0x1592('0x28'))[_0x1592('0x29')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0x1592('0x2a')]=function(_0x448f7d,_0x3a4e53){return moment(_0x448f7d)['subtract'](_0x3a4e53,_0x1592('0x28'))[_0x1592('0x29')]('YYYY-MM-DD\x20HH:mm:ss');};exports[_0x1592('0x2b')]=function(_0x50300a,_0x56b12d){return moment(_0x50300a)['diff'](moment(_0x56b12d),_0x1592('0x28'));};exports['sumTime']=function(_0x2f62dc,_0x5354b1){return parseInt(_0x2f62dc,0xa)+parseInt(_0x5354b1,0xa);};exports['now']=function(){return moment()[_0x1592('0x29')](_0x1592('0x2c'));};exports[_0x1592('0x2d')]=function(_0x18f672,_0x59c5b3){if(_0x59c5b3){return moment(_0x18f672)[_0x1592('0x2d')](_0x59c5b3);}return!![];};exports[_0x1592('0x2e')]=function(_0x2a1b43,_0x350311){if(_0x350311){return moment(_0x2a1b43)[_0x1592('0x2e')](_0x350311);}else if(_0x2a1b43){return!![];}return![];};
\ No newline at end of file